libspatialite-4.3.0a/0000775000175000017500000000000012573314332011513 500000000000000libspatialite-4.3.0a/examples/0000775000175000017500000000000012573314332013331 500000000000000libspatialite-4.3.0a/examples/Makefile.in0000664000175000017500000004564212573313636015337 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = demo1$(EXEEXT) demo2$(EXEEXT) demo3$(EXEEXT) \ demo4$(EXEEXT) demo5$(EXEEXT) subdir = examples ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) demo1_SOURCES = demo1.c demo1_OBJECTS = demo1.$(OBJEXT) demo1_LDADD = $(LDADD) demo1_DEPENDENCIES = AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = demo2_SOURCES = demo2.c demo2_OBJECTS = demo2.$(OBJEXT) demo2_LDADD = $(LDADD) demo2_DEPENDENCIES = demo3_SOURCES = demo3.c demo3_OBJECTS = demo3.$(OBJEXT) demo3_LDADD = $(LDADD) demo3_DEPENDENCIES = demo4_SOURCES = demo4.c demo4_OBJECTS = demo4.$(OBJEXT) demo4_LDADD = $(LDADD) demo4_DEPENDENCIES = demo5_SOURCES = demo5.c demo5_OBJECTS = demo5.$(OBJEXT) demo5_LDADD = $(LDADD) demo5_DEPENDENCIES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = demo1.c demo2.c demo3.c demo4.c demo5.c DIST_SOURCES = demo1.c demo2.c demo3.c demo4.c demo5.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = -I@srcdir@/../src/headers AM_LDFLAGS = -L../src -lspatialite -lm $(GCOV_FLAGS) LDADD = @LIBXML2_LIBS@ MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = examples.doxy all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign examples/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign examples/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list demo1$(EXEEXT): $(demo1_OBJECTS) $(demo1_DEPENDENCIES) $(EXTRA_demo1_DEPENDENCIES) @rm -f demo1$(EXEEXT) $(AM_V_CCLD)$(LINK) $(demo1_OBJECTS) $(demo1_LDADD) $(LIBS) demo2$(EXEEXT): $(demo2_OBJECTS) $(demo2_DEPENDENCIES) $(EXTRA_demo2_DEPENDENCIES) @rm -f demo2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(demo2_OBJECTS) $(demo2_LDADD) $(LIBS) demo3$(EXEEXT): $(demo3_OBJECTS) $(demo3_DEPENDENCIES) $(EXTRA_demo3_DEPENDENCIES) @rm -f demo3$(EXEEXT) $(AM_V_CCLD)$(LINK) $(demo3_OBJECTS) $(demo3_LDADD) $(LIBS) demo4$(EXEEXT): $(demo4_OBJECTS) $(demo4_DEPENDENCIES) $(EXTRA_demo4_DEPENDENCIES) @rm -f demo4$(EXEEXT) $(AM_V_CCLD)$(LINK) $(demo4_OBJECTS) $(demo4_LDADD) $(LIBS) demo5$(EXEEXT): $(demo5_OBJECTS) $(demo5_DEPENDENCIES) $(EXTRA_demo5_DEPENDENCIES) @rm -f demo5$(EXEEXT) $(AM_V_CCLD)$(LINK) $(demo5_OBJECTS) $(demo5_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/demo1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/demo2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/demo3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/demo4.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/demo5.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir 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-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/examples/demo1.c0000664000175000017500000002363312544707704014440 00000000000000/* demo1.c Author: Sandro Furieri a.furieri@lqt.it This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely */ #include #include #include #include "config.h" /* these headers are required in order to support SQLite/SpatiaLite */ #include #include #include int main (int argc, char *argv[]) { int ret; sqlite3 *handle; sqlite3_stmt *stmt; gaiaGeomCollPtr geom; char sql[256]; int i; int ic; char **results; int n_rows; int n_columns; char *err_msg = NULL; int len; char *table_name; char **p_geotables = NULL; int n_geotables = 0; int row_no; const void *blob; int blob_size; int geom_type; double measure; void *cache; if (argc != 2) { fprintf (stderr, "usage: %s test_db_path\n", argv[0]); return -1; } /* trying to connect the test DB: - this demo was designed in order to connect the standard TEST-2.3.SQLITE sample DB - but you can try to use any SQLite/SpatiaLite DB at your will Please notice: we'll establish a READ ONLY connection */ ret = sqlite3_open_v2 (argv[1], &handle, SQLITE_OPEN_READONLY, NULL); if (ret != SQLITE_OK) { printf ("cannot open '%s': %s\n", argv[1], sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } /* VERY IMPORTANT: you must initialize the SpatiaLite extension [and related] BEFORE attempting to perform any other SQLite call ========================================================== Please note: starting since 4.1.0 this is completely canged: - a separate memory block (internal cache) is required by each single connection - allocating/freeing this block falls under the responsibility of the program handling the connection - in multithreaded programs a connection can never be share by different threads; the internal-cache block must be allocated by the same thread holding the connection */ cache = spatialite_alloc_connection (); spatialite_init_ex (handle, cache, 0); /* showing the SQLite version */ printf ("SQLite version: %s\n", sqlite3_libversion ()); /* showing the SpatiaLite version */ printf ("SpatiaLite version: %s\n", spatialite_version ()); printf ("\n\n"); /* SQL query #1 we'll retrieve GEOMETRY tables from Spatial Metadata we are assuming this query will return only few rows, so this time we'll use the sqlite3_get_table() interface this interface is very simple to use the result set is returned as a rectangular array [rows/columns] allocated in a temporary memory storage so, this interface is well suited for small sized result sets, but performs badly when accessing a large sized resul set as a side effect, each column value is returned as text, and isn't possible at all to retrieve true column types (INTEGER, FLOAT ...) */ strcpy (sql, "SELECT DISTINCT f_table_name FROM geometry_columns ORDER BY 1"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, &err_msg); if (ret != SQLITE_OK) { /* some error occurred */ printf ("query#1 SQL error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } if (n_rows > 1) { /* first row always contains column names and is meaningless in this context */ n_geotables = n_rows; /* allocating a dynamic pointer array to store geotable names */ p_geotables = malloc (sizeof (char *) * n_geotables); for (i = 1; i <= n_rows; i++) { /* now we'll fetch one row at each time [and we have only one column to fetch] this one is is a simplified demo; but when writing a real application you always must check for NULL values !!!! */ table_name = results[(i * n_columns) + 0]; /* and we'll store each geotable name into the dynamic pointer array */ len = strlen (table_name); p_geotables[i - 1] = malloc (len + 1); strcpy (p_geotables[i - 1], table_name); } /* we can now free the table results */ sqlite3_free_table (results); } for (i = 0; i < n_geotables; i++) { /* now we'll scan each geotable we've found in Spatial Metadata */ printf ("========= table '%s' ========================\n", p_geotables[i]); /* SQL query #2 we'll retrieve any column from the current geotable we are assuming this query will return lots of rows, so we have to use sqlite3_prepare_v2() interface this interface is a more complex one, but is well suited in order to access huge sized result sets and true value type control is supported */ sprintf (sql, "SELECT * FROM %s", p_geotables[i]); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { /* some error occurred */ printf ("query#2 SQL error: %s\n", sqlite3_errmsg (handle)); goto abort; } /* the sqlite3_prepare_v2() call simply parses the SQL statement, checking for syntax validity, allocating internal structs etc but no result set row is really yet available */ /* we'll now save the #columns within the result set */ n_columns = sqlite3_column_count (stmt); row_no = 0; while (1) { /* this is an infinite loop, intended to fetch any row */ /* we are now trying to fetch the next available row */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) { /* there are no more rows to fetch - we can stop looping */ break; } if (ret == SQLITE_ROW) { /* ok, we've just fetched a valid row to process */ row_no++; printf ("row #%d\n", row_no); for (ic = 0; ic < n_columns; ic++) { /* and now we'll fetch column values for each column we'll then get: - the column name - a column value, that can be of type: SQLITE_NULL, SQLITE_INTEGER, SQLITE_FLOAT, SQLITE_TEXT or SQLITE_BLOB, according to internal DB storage type */ printf ("\t%-10s = ", sqlite3_column_name (stmt, ic)); switch (sqlite3_column_type (stmt, ic)) { case SQLITE_NULL: printf ("NULL"); break; case SQLITE_INTEGER: printf ("%d", sqlite3_column_int (stmt, ic)); break; case SQLITE_FLOAT: printf ("%1.4f", sqlite3_column_double (stmt, ic)); break; case SQLITE_TEXT: printf ("'%s'", sqlite3_column_text (stmt, ic)); break; case SQLITE_BLOB: blob = sqlite3_column_blob (stmt, ic); blob_size = sqlite3_column_bytes (stmt, ic); /* checking if this BLOB actually is a GEOMETRY */ geom = gaiaFromSpatiaLiteBlobWkb (blob, blob_size); if (!geom) { /* for sure this one is not a GEOMETRY */ printf ("BLOB [%d bytes]", blob_size); } else { geom_type = gaiaGeometryType (geom); if (geom_type == GAIA_UNKNOWN) printf ("EMPTY or NULL GEOMETRY"); else { char *geom_name; if (geom_type == GAIA_POINT) geom_name = "POINT"; if (geom_type == GAIA_LINESTRING) geom_name = "LINESTRING"; if (geom_type == GAIA_POLYGON) geom_name = "POLYGON"; if (geom_type == GAIA_MULTIPOINT) geom_name = "MULTIPOINT"; if (geom_type == GAIA_MULTILINESTRING) geom_name = "MULTILINESTRING"; if (geom_type == GAIA_MULTIPOLYGON) geom_name = "MULTIPOLYGON"; if (geom_type == GAIA_GEOMETRYCOLLECTION) geom_name = "GEOMETRYCOLLECTION"; printf ("%s SRID=%d", geom_name, geom->Srid); if (geom_type == GAIA_LINESTRING || geom_type == GAIA_MULTILINESTRING) { #ifndef OMIT_GEOS /* GEOS is required */ gaiaGeomCollLength (geom, &measure); printf (" length=%1.2f", measure); #else printf (" length=?? [no GEOS support available]"); #endif /* GEOS enabled/disabled */ } if (geom_type == GAIA_POLYGON || geom_type == GAIA_MULTIPOLYGON) { #ifndef OMIT_GEOS /* GEOS is required */ gaiaGeomCollArea (geom, &measure); printf (" area=%1.2f", measure); #else printf ("area=?? [no GEOS support available]"); #endif /* GEOS enabled/disabled */ } } /* we have now to free the GEOMETRY */ gaiaFreeGeomColl (geom); } break; }; printf ("\n"); } if (row_no >= 5) { /* we'll exit the loop after the first 5 rows - this is only a demo :-) */ break; } } else { /* some unexpected error occurred */ printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (handle)); sqlite3_finalize (stmt); goto abort; } } /* we have now to finalize the query [memory cleanup] */ sqlite3_finalize (stmt); printf ("\n\n"); } /* disconnecting the test DB */ ret = sqlite3_close (handle); if (ret != SQLITE_OK) { printf ("close() error: %s\n", sqlite3_errmsg (handle)); return -1; } /* freeing the internal-cache memory block */ spatialite_cleanup_ex (cache); printf ("\n\nsample successfully terminated\n"); /* we have to free the dynamic pointer array used to store geotable names */ for (i = 0; i < n_geotables; i++) { /* freeing each tablename */ free (p_geotables[i]); } free (p_geotables); spatialite_shutdown(); return 0; abort: sqlite3_close (handle); /* freeing the internal-cache memory block */ spatialite_cleanup_ex (cache); if (p_geotables) { /* we have to free the dynamic pointer array used to store geotable names */ for (i = 0; i < n_geotables; i++) { /* freeing each tablename */ free (p_geotables[i]); } free (p_geotables); } spatialite_shutdown(); return -1; } libspatialite-4.3.0a/examples/demo2.c0000664000175000017500000003405112544707704014435 00000000000000/* demo2.c Author: Sandro Furieri a.furieri@lqt.it This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely */ #include #include #include #include "config.h" /* these headers are required in order to support SQLite/SpatiaLite */ #include #include #include #include static char * geom_type (int type) { /* utility function returning corresponding GeometryType as a string */ static char *name = "EMPTY / NULL GEOMETRY"; if (type == GAIA_POINT) name = "POINT"; if (type == GAIA_LINESTRING) name = "LINESTRING"; if (type == GAIA_POLYGON) name = "POLYGON"; if (type == GAIA_MULTIPOINT) name = "MULTIPOINT"; if (type == GAIA_MULTILINESTRING) name = "MULTILINESTRING"; if (type == GAIA_MULTIPOLYGON) name = "MULTIPOLYGON"; if (type == GAIA_GEOMETRYCOLLECTION) name = "GEOMETRYCOLLECTION"; return name; } static void geometry_printout (gaiaGeomCollPtr geom) { /* utility function printing a generic Geometry object */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; int n_pts = 0; int n_lns = 0; int n_pgs = 0; int cnt; int iv; int ir; double x; double y; /* we'll now count how many POINTs are there */ pt = geom->FirstPoint; while (pt) { n_pts++; pt = pt->Next; } /* we'll now count how many LINESTRINGs are there */ ln = geom->FirstLinestring; while (ln) { n_lns++; ln = ln->Next; } /* we'll now count how many POLYGONs are there */ pg = geom->FirstPolygon; while (pg) { n_pgs++; pg = pg->Next; } if (n_pts) { /* printing POINTs coordinates */ cnt = 0; pt = geom->FirstPoint; while (pt) { /* we'll now scan the linked list of POINTs */ printf ("\t\t\tPOINT %d/%d x=%1.4f y=%1.4f\n", cnt, n_pts, pt->X, pt->Y); cnt++; pt = pt->Next; } } if (n_lns) { /* printing LINESTRINGs coordinates */ cnt = 0; ln = geom->FirstLinestring; while (ln) { /* we'll now scan the linked list of LINESTRINGs */ printf ("\t\t\tLINESTRING %d/%d has %d vertices\n", cnt, n_lns, ln->Points); for (iv = 0; iv < ln->Points; iv++) { /* we'll now retrieve coordinates for each vertex */ gaiaGetPoint (ln->Coords, iv, &x, &y); printf ("\t\t\t\tvertex %d/%d x=%1.4f y=%1.4f\n", iv, ln->Points, x, y); } cnt++; ln = ln->Next; } } if (n_pgs) { /* printing POLYGONs coordinates */ cnt = 0; pg = geom->FirstPolygon; while (pg) { /* we'll now scan the linked list of POLYGONs */ printf ("\t\t\tPOLYGON %d/%d has %d hole%c\n", cnt, n_pgs, pg->NumInteriors, (pg->NumInteriors == 1) ? ' ' : 's'); /* now we'll print out the Exterior ring [surely a POLYGON has an Exterior ring */ rng = pg->Exterior; printf ("\t\t\t\tExteriorRing has %d vertices\n", rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* we'll now retrieve coordinates for each vertex */ gaiaGetPoint (rng->Coords, iv, &x, &y); printf ("\t\t\t\t\tvertex %d/%d x=%1.4f y=%1.4f\n", iv, rng->Points, x, y); } for (ir = 0; ir < pg->NumInteriors; ir++) { /* a POLYGON can contain an arbitrary number of Interior rings (including zero) */ rng = pg->Interiors + ir; printf ("\t\t\t\tInteriorRing %d/%d has %d vertices\n", ir, pg->NumInteriors, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* we'll now retrieve coordinates for each vertex */ gaiaGetPoint (rng->Coords, iv, &x, &y); printf ("\t\t\t\t\tvertex %d/%d x=%1.4f y=%1.4f\n", iv, rng->Points, x, y); } } cnt++; pg = pg->Next; } } } int main (int argc, char *argv[]) { gaiaGeomCollPtr geo_pt = NULL; gaiaGeomCollPtr geo_ln = NULL; gaiaGeomCollPtr geo_pg = NULL; gaiaGeomCollPtr geo_mpt = NULL; gaiaGeomCollPtr geo_mln = NULL; gaiaGeomCollPtr geo_mpg = NULL; gaiaGeomCollPtr geo_coll = NULL; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr ring; gaiaOutBuffer wkt; int ret; sqlite3 *handle; void *cache; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* this demo does not strictly require any DB connection to be established However you must initialize the SpatiaLite extension [and related] and you *must* establish a "fake" DB connection in order to properly initialize SpatiaLite and GEOS libraries */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READONLY, NULL); if (ret != SQLITE_OK) { printf ("cannot open '%s': %s\n", ":memory:", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } cache = spatialite_alloc_connection (); spatialite_init_ex (handle, cache, 0); #ifndef OMIT_GEOS /* GEOS must be enabled */ /* Step #1 creating and checking a POINT Geometry */ /* we'll allocate a Geometry object */ geo_pt = gaiaAllocGeomColl (); /* then we insert a POINT, directly passing its coordinates */ gaiaAddPointToGeomColl (geo_pt, 1.5, 2.75); /* now we'll print the main attributes for this geometry */ printf ("step#1: %s\t\tDimension=%d IsValid=%d\n", geom_type (gaiaGeometryType (geo_pt)), gaiaDimension (geo_pt), gaiaIsValid (geo_pt)); geometry_printout (geo_pt); /* Step #2 creating and checking a LINESTRING Geometry */ geo_ln = gaiaAllocGeomColl (); /* then we insert a LINESTRING, specifying how many vertices it contains */ line = gaiaAddLinestringToGeomColl (geo_ln, 5); /* we've got a pointer referencing the linestring we've just inserted now we'll set coordinates for each vertex */ gaiaSetPoint (line->Coords, 0, 1.0, 1.0); gaiaSetPoint (line->Coords, 1, 2.0, 1.0); gaiaSetPoint (line->Coords, 2, 2.0, 2.0); gaiaSetPoint (line->Coords, 3, 100.0, 2.0); gaiaSetPoint (line->Coords, 4, 100.0, 100.0); printf ("\nstep#2: %s\tDimension=%d IsValid=%d\n", geom_type (gaiaGeometryType (geo_ln)), gaiaDimension (geo_ln), gaiaIsValid (geo_ln)); geometry_printout (geo_ln); /* Step #3 creating and checking a POLYGON Geometry */ geo_pg = gaiaAllocGeomColl (); /* then we insert a POLYGON, specifying: - how many vertices have to be allocated for the Exterior Ring - how many Interior Rings it has */ polyg = gaiaAddPolygonToGeomColl (geo_pg, 5, 2); /* we've got a pointer referencing the polygon we've just inserted now we'll get a pointer referencing its Exterior ring */ ring = polyg->Exterior; /* now we'll set coordinates for each Exterior ring vertex */ gaiaSetPoint (ring->Coords, 0, 0.0, 0.0); gaiaSetPoint (ring->Coords, 1, 50.0, 0.0); gaiaSetPoint (ring->Coords, 2, 50.0, 50.0); gaiaSetPoint (ring->Coords, 3, 0.0, 50.0); /* please note: a Ring is a CLOSED figure, so last and first vertex have to be coincident */ gaiaSetPoint (ring->Coords, 4, 0.0, 0.0); /* we'll now get a pointer referencing the FIRST interior ring, specifying how vertices have to be allocated */ ring = gaiaAddInteriorRing (polyg, 0, 5); /* then setting coordinates for each Interior ring vertex */ gaiaSetPoint (ring->Coords, 0, 40.0, 40.0); gaiaSetPoint (ring->Coords, 1, 41.0, 40.0); gaiaSetPoint (ring->Coords, 2, 41.0, 41.0); gaiaSetPoint (ring->Coords, 3, 40.0, 41.0); gaiaSetPoint (ring->Coords, 4, 40.0, 40.0); /* we'll now get a pointer referencing the SECOND interior ring, specifying how vertices have to be allocated */ ring = gaiaAddInteriorRing (polyg, 1, 5); /* then setting coordinates for each Interior ring vertex */ gaiaSetPoint (ring->Coords, 0, 30.0, 30.0); gaiaSetPoint (ring->Coords, 1, 31.0, 30.0); gaiaSetPoint (ring->Coords, 2, 31.0, 31.0); gaiaSetPoint (ring->Coords, 3, 30.0, 31.0); gaiaSetPoint (ring->Coords, 4, 30.0, 30.0); printf ("\nstep#3: %s\tDimension=%d IsValid=%d\n", geom_type (gaiaGeometryType (geo_pg)), gaiaDimension (geo_pg), gaiaIsValid (geo_pg)); geometry_printout (geo_pg); /* Step #4 creating and checking a MULTIPOINT Geometry */ geo_mpt = gaiaAllocGeomColl (); /* then we'll insert some POINTs */ gaiaAddPointToGeomColl (geo_mpt, 5.0, 5.0); gaiaAddPointToGeomColl (geo_mpt, 15.0, 5.0); gaiaAddPointToGeomColl (geo_mpt, 5.0, 15.0); gaiaAddPointToGeomColl (geo_mpt, 25.0, 5.0); gaiaAddPointToGeomColl (geo_mpt, 5.0, 25.0); printf ("\nstep#4: %s\tDimension=%d IsValid=%d\n", geom_type (gaiaGeometryType (geo_mpt)), gaiaDimension (geo_mpt), gaiaIsValid (geo_mpt)); geometry_printout (geo_mpt); /* Step #5 creating and checking a MULTILINESTRING Geometry */ geo_mln = gaiaAllocGeomColl (); /* then we'll insert two LINESTRINGs */ line = gaiaAddLinestringToGeomColl (geo_mln, 2); gaiaSetPoint (line->Coords, 0, 30.0, 10.0); gaiaSetPoint (line->Coords, 1, 10.0, 30.0); line = gaiaAddLinestringToGeomColl (geo_mln, 2); gaiaSetPoint (line->Coords, 0, 40.0, 50.0); gaiaSetPoint (line->Coords, 1, 50.0, 40.0); printf ("\nstep#5: %s\tDimension=%d IsValid=%d\n", geom_type (gaiaGeometryType (geo_mln)), gaiaDimension (geo_mln), gaiaIsValid (geo_mln)); geometry_printout (geo_mln); /* Step #6 creating and checking a MULTIPOLYGON Geometry */ geo_mpg = gaiaAllocGeomColl (); /* then we'll insert two POLYGONs */ polyg = gaiaAddPolygonToGeomColl (geo_mpg, 5, 0); ring = polyg->Exterior; gaiaSetPoint (ring->Coords, 0, 60.0, 60.0); gaiaSetPoint (ring->Coords, 1, 70.0, 60.0); gaiaSetPoint (ring->Coords, 2, 70.0, 70.0); gaiaSetPoint (ring->Coords, 3, 60.0, 70.0); gaiaSetPoint (ring->Coords, 4, 60.0, 60.0); polyg = gaiaAddPolygonToGeomColl (geo_mpg, 5, 0); ring = polyg->Exterior; gaiaSetPoint (ring->Coords, 0, 80.0, 80.0); gaiaSetPoint (ring->Coords, 1, 90.0, 80.0); gaiaSetPoint (ring->Coords, 2, 90.0, 90.0); gaiaSetPoint (ring->Coords, 3, 80.0, 90.0); gaiaSetPoint (ring->Coords, 4, 80.0, 80.0); printf ("\nstep#6: %s\tDimension=%d IsValid=%d\n", geom_type (gaiaGeometryType (geo_mpg)), gaiaDimension (geo_mpg), gaiaIsValid (geo_mpg)); geometry_printout (geo_mpg); /* Step #7 creating and checking a GEOMETRYCOLLECTION Geometry */ geo_coll = gaiaAllocGeomColl (); /* then we'll insert two POINTs */ gaiaAddPointToGeomColl (geo_coll, 100.0, 100.0); gaiaAddPointToGeomColl (geo_coll, 100.0, 0.0); /* then we'll insert two LINESTRINGs */ line = gaiaAddLinestringToGeomColl (geo_coll, 2); gaiaSetPoint (line->Coords, 0, 130.0, 110.0); gaiaSetPoint (line->Coords, 1, 110.0, 130.0); line = gaiaAddLinestringToGeomColl (geo_coll, 2); gaiaSetPoint (line->Coords, 0, 140.0, 150.0); gaiaSetPoint (line->Coords, 1, 150.0, 140.0); /* then we'll insert two POLYGONs */ polyg = gaiaAddPolygonToGeomColl (geo_coll, 5, 0); ring = polyg->Exterior; gaiaSetPoint (ring->Coords, 0, 160.0, 160.0); gaiaSetPoint (ring->Coords, 1, 170.0, 160.0); gaiaSetPoint (ring->Coords, 2, 170.0, 170.0); gaiaSetPoint (ring->Coords, 3, 160.0, 170.0); gaiaSetPoint (ring->Coords, 4, 160.0, 160.0); polyg = gaiaAddPolygonToGeomColl (geo_coll, 5, 0); ring = polyg->Exterior; gaiaSetPoint (ring->Coords, 0, 180.0, 180.0); gaiaSetPoint (ring->Coords, 1, 190.0, 180.0); gaiaSetPoint (ring->Coords, 2, 190.0, 190.0); gaiaSetPoint (ring->Coords, 3, 180.0, 190.0); gaiaSetPoint (ring->Coords, 4, 180.0, 180.0); printf ("\nstep#7: %s\tDimension=%d IsValid=%d\n", geom_type (gaiaGeometryType (geo_coll)), gaiaDimension (geo_coll), gaiaIsValid (geo_coll)); geometry_printout (geo_coll); /* Step #8 printing each geometry as Well Known Text (WKT) */ printf ("\nstep#8: checking WKT representations\n"); /* first we'll get the WKT corresponding to geometry */ gaiaOutBufferInitialize (&wkt); gaiaOutWkt (&wkt, geo_pt); /* we have to check wkt is not NULL */ if (wkt.Error == 0 && wkt.Buffer != NULL) { /* printing the WKT */ printf ("\n%s\n", wkt.Buffer); /* finally freeing the wkt temporary storage allocation */ gaiaOutBufferReset (&wkt); } gaiaOutBufferInitialize (&wkt); gaiaOutWkt (&wkt, geo_ln); if (wkt.Error == 0 && wkt.Buffer != NULL) { printf ("\n%s\n", wkt.Buffer); gaiaOutBufferReset (&wkt); } gaiaOutBufferInitialize (&wkt); gaiaOutWkt (&wkt, geo_pg); if (wkt.Error == 0 && wkt.Buffer != NULL) { printf ("\n%s\n", wkt.Buffer); gaiaOutBufferReset (&wkt); } gaiaOutBufferInitialize (&wkt); gaiaOutWkt (&wkt, geo_mpt); if (wkt.Error == 0 && wkt.Buffer != NULL) { printf ("\n%s\n", wkt.Buffer); gaiaOutBufferReset (&wkt); } gaiaOutBufferInitialize (&wkt); gaiaOutWkt (&wkt, geo_mln); if (wkt.Error == 0 && wkt.Buffer != NULL) { printf ("\n%s\n", wkt.Buffer); gaiaOutBufferReset (&wkt); } gaiaOutBufferInitialize (&wkt); gaiaOutWkt (&wkt, geo_mpg); if (wkt.Error == 0 && wkt.Buffer != NULL) { printf ("\n%s\n", wkt.Buffer); gaiaOutBufferReset (&wkt); } gaiaOutBufferInitialize (&wkt); gaiaOutWkt (&wkt, geo_coll); if (wkt.Error == 0 && wkt.Buffer != NULL) { printf ("\n%s\n", wkt.Buffer); gaiaOutBufferReset (&wkt); } #else printf ("no GEOS support available: skipping any test\n"); #endif /* GEOS enabled/disabled */ /* memory cleanup we have to destroy each object using temporary storage before exit */ if (geo_pt) gaiaFreeGeomColl (geo_pt); if (geo_ln) gaiaFreeGeomColl (geo_ln); if (geo_pg) gaiaFreeGeomColl (geo_pg); if (geo_mpt) gaiaFreeGeomColl (geo_mpt); if (geo_mln) gaiaFreeGeomColl (geo_mln); if (geo_mpg) gaiaFreeGeomColl (geo_mpg); if (geo_coll) gaiaFreeGeomColl (geo_coll); sqlite3_close (handle); spatialite_cleanup_ex (cache); spatialite_shutdown(); return 0; } libspatialite-4.3.0a/examples/demo3.c0000664000175000017500000002171512544707704014441 00000000000000/* demo3.c Author: Sandro Furieri a.furieri@lqt.it This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely */ #include #include #include #include /* these headers are required in order to support SQLite/SpatiaLite */ #include #include #include int main (int argc, char *argv[]) { int ret; sqlite3 *handle; sqlite3_stmt *stmt; char sql[256]; char *err_msg = NULL; double x; double y; int pk; int ix; int iy; gaiaGeomCollPtr geo = NULL; unsigned char *blob; int blob_size; int i; char **results; int n_rows; int n_columns; char *count; clock_t t0; clock_t t1; void *cache; if (argc != 2) { fprintf (stderr, "usage: %s test_db_path\n", argv[0]); return -1; } /* trying to connect the test DB: - this demo is intended to create a new, empty database */ ret = sqlite3_open_v2 (argv[1], &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { printf ("cannot open '%s': %s\n", argv[1], sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } cache = spatialite_alloc_connection (); spatialite_init_ex (handle, cache, 0); /* showing the SQLite version */ printf ("SQLite version: %s\n", sqlite3_libversion ()); /* showing the SpatiaLite version */ printf ("SpatiaLite version: %s\n", spatialite_version ()); printf ("\n\n"); /* we are supposing this one is an empty database, so we have to create the Spatial Metadata */ strcpy (sql, "SELECT InitSpatialMetadata(1)"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* now we can create the test table for simplicity we'll define only one column, the primary key */ strcpy (sql, "CREATE TABLE test ("); strcat (sql, "PK INTEGER NOT NULL PRIMARY KEY)"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("CREATE TABLE 'test' error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* ... we'll add a Geometry column of POINT type to the test table */ strcpy (sql, "SELECT AddGeometryColumn('test', 'geom', 3003, 'POINT', 2)"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("AddGeometryColumn() error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* and finally we'll enable this geo-column to have a Spatial Index based on R*Tree */ strcpy (sql, "SELECT CreateSpatialIndex('test', 'geom')"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("CreateSpatialIndex() error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } printf ("\nnow we are going to insert 1 million POINTs; wait, please ...\n\n"); t0 = clock (); /* beginning a transaction *** this step is absolutely critical *** the SQLite engine is a TRANSACTIONAL one the whole batch of INSERTs has to be performed as an unique transaction, otherwise performance will be surely very poor */ strcpy (sql, "BEGIN"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("BEGIN error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* preparing to populate the test table we'll use a Prepared Statement we can reuse in order to insert each row */ strcpy (sql, "INSERT INTO test (pk, geom) VALUES (?, ?)"); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { /* an error occurred */ printf ("INSERT SQL error: %s\n", sqlite3_errmsg (handle)); goto abort; } pk = 0; for (ix = 0; ix < 1000; ix++) { x = 1000000.0 + (ix * 10.0); for (iy = 0; iy < 1000; iy++) { /* this double loop will insert 1 million rows into the the test table */ y = 4000000.0 + (iy * 10.0); pk++; if ((pk % 25000) == 0) { t1 = clock (); printf ("insert row: %d\t\t[elapsed time: %1.3f]\n", pk, (double) (t1 - t0) / CLOCKS_PER_SEC); } /* preparing the geometry to insert */ geo = gaiaAllocGeomColl (); geo->Srid = 3003; gaiaAddPointToGeomColl (geo, x, y); /* transforming this geometry into the SpatiaLite BLOB format */ gaiaToSpatiaLiteBlobWkb (geo, &blob, &blob_size); /* we can now destroy the geometry object */ gaiaFreeGeomColl (geo); /* resetting Prepared Statement and bindings */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); /* binding parameters to Prepared Statement */ sqlite3_bind_int64 (stmt, 1, pk); sqlite3_bind_blob (stmt, 2, blob, blob_size, free); /* performing actual row insert */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { /* an unexpected error occurred */ printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (handle)); sqlite3_finalize (stmt); goto abort; } } } /* we have now to finalize the query [memory cleanup] */ sqlite3_finalize (stmt); /* committing the transaction *** this step is absolutely critical *** if we don't confirm the still pending transaction, any update will be lost */ strcpy (sql, "COMMIT"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("COMMIT error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* now we'll optimize the table */ strcpy (sql, "ANALYZE test"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("ANALYZE error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } for (ix = 0; ix < 3; ix++) { printf ("\nperforming test#%d - not using Spatial Index\n", ix); /* now we'll perform the spatial query WITHOUT using the Spatial Index we'll loop 3 times in order to avoid buffering-caching side effects */ strcpy (sql, "SELECT Count(*) FROM test "); strcat (sql, "WHERE MbrWithin(geom, BuildMbr("); strcat (sql, "1000400.5, 4000400.5, "); strcat (sql, "1000450.5, 4000450.5))"); t0 = clock (); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("NoSpatialIndex SQL error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } count = ""; for (i = 1; i <= n_rows; i++) { count = results[(i * n_columns) + 0]; } t1 = clock (); printf ("Count(*) = %d\t\t[elapsed time: %1.4f]\n", atoi (count), (double) (t1 - t0) / CLOCKS_PER_SEC); /* we can now free the table results */ sqlite3_free_table (results); } for (ix = 0; ix < 3; ix++) { printf ("\nperforming test#%d - using the R*Tree Spatial Index\n", ix); /* now we'll perform the spatial query USING the R*Tree Spatial Index we'll loop 3 times in order to avoid buffering-caching side effects */ strcpy (sql, "SELECT Count(*) FROM test "); strcat (sql, "WHERE MbrWithin(geom, BuildMbr("); strcat (sql, "1000400.5, 4000400.5, "); strcat (sql, "1000450.5, 4000450.5)) AND ROWID IN ("); strcat (sql, "SELECT pkid FROM idx_test_geom WHERE "); strcat (sql, "xmin > 1000400.5 AND "); strcat (sql, "xmax < 1000450.5 AND "); strcat (sql, "ymin > 4000400.5 AND "); strcat (sql, "ymax < 4000450.5)"); /* YES, this query is a very unhappy one the idea is simply to simulate exactly the same conditions as above */ t0 = clock (); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("SpatialIndex SQL error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } count = ""; for (i = 1; i <= n_rows; i++) { count = results[(i * n_columns) + 0]; } t1 = clock (); printf ("Count(*) = %d\t\t[elapsed time: %1.4f]\n", atoi (count), (double) (t1 - t0) / CLOCKS_PER_SEC); /* we can now free the table results */ sqlite3_free_table (results); } /* disconnecting the test DB */ ret = sqlite3_close (handle); if (ret != SQLITE_OK) { printf ("close() error: %s\n", sqlite3_errmsg (handle)); return -1; } spatialite_cleanup_ex (cache); printf ("\n\nsample successfully terminated\n"); return 0; abort: sqlite3_close (handle); spatialite_cleanup_ex (cache); spatialite_shutdown(); return -1; } libspatialite-4.3.0a/examples/demo4.c0000664000175000017500000002143012544707704014434 00000000000000/* demo4.c Author: Sandro Furieri a.furieri@lqt.it This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely */ #include #include #include #include /* these headers are required in order to support SQLite/SpatiaLite */ #include #include #include int main (int argc, char *argv[]) { int ret; sqlite3 *handle; sqlite3_stmt *stmt; char sql[256]; char *err_msg = NULL; double x; double y; int pk; int ix; int iy; gaiaGeomCollPtr geo = NULL; unsigned char *blob; int blob_size; int i; char **results; int n_rows; int n_columns; char *count; clock_t t0; clock_t t1; void *cache; if (argc != 2) { fprintf (stderr, "usage: %s test_db_path\n", argv[0]); return -1; } /* trying to connect the test DB: - this demo is intended to create a new, empty database */ ret = sqlite3_open_v2 (argv[1], &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { printf ("cannot open '%s': %s\n", argv[1], sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } cache = spatialite_alloc_connection (); spatialite_init_ex (handle, cache, 0); /* showing the SQLite version */ printf ("SQLite version: %s\n", sqlite3_libversion ()); /* showing the SpatiaLite version */ printf ("SpatiaLite version: %s\n", spatialite_version ()); printf ("\n\n"); /* we are supposing this one is an empty database, so we have to create the Spatial Metadata */ strcpy (sql, "SELECT InitSpatialMetadata(1)"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* some error occurred */ printf ("InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* now we can create the test table for simplicity we'll define only one column, the primary key */ strcpy (sql, "CREATE TABLE test ("); strcat (sql, "PK INTEGER NOT NULL PRIMARY KEY)"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("CREATE TABLE 'test' error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* ... we'll add a Geometry column of POINT type to the test table */ strcpy (sql, "SELECT AddGeometryColumn('test', 'geom', 3003, 'POINT', 2)"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("AddGeometryColumn() error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* and finally we'll enable this geo-column to have a Spatial Index based on MBR caching */ strcpy (sql, "SELECT CreateMbrCache('test', 'geom')"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("CreateMbrCache() error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } printf ("\nnow we are going to insert 1 million POINTs; wait, please ...\n\n"); t0 = clock (); /* beginning a transaction *** this step is absolutely critical *** the SQLite engine is a TRANSACTIONAL one the whole batch of INSERTs has to be performed as an unique transaction, otherwise performance will be surely very poor */ strcpy (sql, "BEGIN"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("BEGIN error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* preparing to populate the test table we'll use a Prepared Statement we can reuse in order to insert each row */ strcpy (sql, "INSERT INTO test (pk, geom) VALUES (?, ?)"); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { /* an error occurred */ printf ("INSERT SQL error: %s\n", sqlite3_errmsg (handle)); goto abort; } pk = 0; for (ix = 0; ix < 1000; ix++) { x = 1000000.0 + (ix * 10.0); for (iy = 0; iy < 1000; iy++) { /* this double loop will insert 1 million rows into the the test table */ y = 4000000.0 + (iy * 10.0); pk++; if ((pk % 25000) == 0) { t1 = clock (); printf ("insert row: %d\t\t[elapsed time: %1.3f]\n", pk, (double) (t1 - t0) / CLOCKS_PER_SEC); } /* preparing the geometry to insert */ geo = gaiaAllocGeomColl (); geo->Srid = 3003; gaiaAddPointToGeomColl (geo, x, y); /* transforming this geometry into the SpatiaLite BLOB format */ gaiaToSpatiaLiteBlobWkb (geo, &blob, &blob_size); /* we can now destroy the geometry object */ gaiaFreeGeomColl (geo); /* resetting Prepared Statement and bindings */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); /* binding parameters to Prepared Statement */ sqlite3_bind_int64 (stmt, 1, pk); sqlite3_bind_blob (stmt, 2, blob, blob_size, free); /* performing actual row insert */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { /* an unexpected error occurred */ printf ("sqlite3_step() error: %s\n", sqlite3_errmsg (handle)); sqlite3_finalize (stmt); goto abort; } } } /* we have now to finalize the query [memory cleanup] */ sqlite3_finalize (stmt); /* committing the transaction *** this step is absolutely critical *** if we don't confirm the still pending transaction, any update will be lost */ strcpy (sql, "COMMIT"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("COMMIT error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } /* now we'll optimize the table */ strcpy (sql, "ANALYZE test"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("ANALYZE error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } for (ix = 0; ix < 3; ix++) { printf ("\nperforming test#%d - not using Spatial Index\n", ix); /* now we'll perform the spatial query WITHOUT using the Spatial Index we'll loop 3 times in order to avoid buffering-caching side effects */ strcpy (sql, "SELECT Count(*) FROM test "); strcat (sql, "WHERE MbrWithin(geom, BuildMbr("); strcat (sql, "1000400.5, 4000400.5, "); strcat (sql, "1000450.5, 4000450.5))"); t0 = clock (); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("NoSpatialIndex SQL error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } count = ""; for (i = 1; i <= n_rows; i++) { count = results[(i * n_columns) + 0]; } t1 = clock (); printf ("Count(*) = %d\t\t[elapsed time: %1.4f]\n", atoi (count), (double) (t1 - t0) / CLOCKS_PER_SEC); /* we can now free the table results */ sqlite3_free_table (results); } for (ix = 0; ix < 3; ix++) { printf ("\nperforming test#%d - using the MBR cache Spatial Index\n", ix); /* now we'll perform the spatial query USING the MBR cache Spatial Index we'll loop 3 times in order to avoid buffering-caching side effects */ strcpy (sql, "SELECT Count(*) FROM test "); strcat (sql, "WHERE ROWID IN ("); strcat (sql, "SELECT rowid FROM cache_test_geom WHERE "); strcat (sql, "mbr = FilterMbrWithin(1000400.5, 4000400.5, 1000450.5, 4000450.5))"); /* YES, this query is a very unhappy one the idea is simply to simulate exactly the same conditions as above */ t0 = clock (); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, &err_msg); if (ret != SQLITE_OK) { /* an error occurred */ printf ("SpatialIndex SQL error: %s\n", err_msg); sqlite3_free (err_msg); goto abort; } count = ""; for (i = 1; i <= n_rows; i++) { count = results[(i * n_columns) + 0]; } t1 = clock (); printf ("Count(*) = %d\t\t[elapsed time: %1.4f]\n", atoi (count), (double) (t1 - t0) / CLOCKS_PER_SEC); /* we can now free the table results */ sqlite3_free_table (results); } /* disconnecting the test DB */ ret = sqlite3_close (handle); if (ret != SQLITE_OK) { printf ("close() error: %s\n", sqlite3_errmsg (handle)); return -1; } printf ("\n\nsample successfully terminated\n"); spatialite_cleanup_ex (cache); return 0; abort: sqlite3_close (handle); spatialite_cleanup_ex (cache); spatialite_shutdown(); return -1; } libspatialite-4.3.0a/examples/demo5.c0000664000175000017500000002013212544707704014433 00000000000000/* demo5.c Author: Sandro Furieri a.furieri@lqt.it This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely */ #include #include #include #include /* these headers are required in order to support SQLite/SpatiaLite */ #include #include #include #define ARG_NONE 0 #define ARG_DB_PATH 1 #define ARG_TABLE 2 #define ARG_GEOMETRY 3 static void do_print_list (gaiaVectorLayersListPtr list, int n_mode) { /* prints the layers list */ gaiaVectorLayerPtr lyr; gaiaLayerAttributeFieldPtr fld; const char *mode = "FAST"; if (n_mode == GAIA_VECTORS_LIST_OPTIMISTIC) mode = "OPTIMISTIC"; if (n_mode == GAIA_VECTORS_LIST_PESSIMISTIC) mode = "PESSIMISTIC"; printf ("\n****** VectorLayersList (mode=%s) *********\n", mode); if (list == NULL) { printf ("The VectorLayersList is empty !!!\n\n"); return; } lyr = list->First; while (lyr) { /* printing the Layer Header */ const char *lyr_type = "UnknownType"; const char *geom_type = "UnknownType"; const char *dims = "UnknownDims"; switch (lyr->LayerType) { case GAIA_VECTOR_TABLE: lyr_type = "BasedOnSqlTable"; break; case GAIA_VECTOR_VIEW: lyr_type = "BasedOnSqlView"; break; case GAIA_VECTOR_VIRTUAL: lyr_type = "BasedOnVirtualShape"; break; }; switch (lyr->GeometryType) { case GAIA_VECTOR_GEOMETRY: geom_type = "GEOMETRY"; break; case GAIA_VECTOR_POINT: geom_type = "POINT"; break; case GAIA_VECTOR_LINESTRING: geom_type = "LINESTRING"; break; case GAIA_VECTOR_POLYGON: geom_type = "POLYGON"; break; case GAIA_VECTOR_MULTIPOINT: geom_type = "MULTIPOINT"; break; case GAIA_VECTOR_MULTILINESTRING: geom_type = "MULTILINESTRING"; break; case GAIA_VECTOR_MULTIPOLYGON: geom_type = "MULTIPOLYGON"; break; case GAIA_VECTOR_GEOMETRYCOLLECTION: geom_type = "GEOMETRYCOLLECTION"; break; }; switch (lyr->Dimensions) { case GAIA_XY: dims = "XY"; break; case GAIA_XY_Z: dims = "XYZ"; break; case GAIA_XY_M: dims = "XYM"; break; case GAIA_XY_Z_M: dims = "XYXM"; break; }; printf ("VectorLayer: Type=%s TableName=%s\n", lyr_type, lyr->TableName); printf ("\tGeometryName=%s SRID=%d GeometryType=%s Dims=%s\n", lyr->GeometryName, lyr->Srid, geom_type, dims); if (lyr->ExtentInfos) { printf ("\tRowCount=%d\n", lyr->ExtentInfos->Count); printf ("\tExtentMin %f / %f\n\tExtentMax %f / %f\n", lyr->ExtentInfos->MinX, lyr->ExtentInfos->MinY, lyr->ExtentInfos->MaxX, lyr->ExtentInfos->MaxY); } if (lyr->AuthInfos) printf ("\tReadOnly=%s Hidden=%s\n", (lyr->AuthInfos->IsReadOnly == 0) ? "FALSE" : "TRUE", (lyr->AuthInfos->IsHidden == 0) ? "FALSE" : "TRUE"); fld = lyr->First; while (fld) { /* printing AttributeFields infos */ printf ("\t\tField #%d) FieldName=%s\n", fld->Ordinal, fld->AttributeFieldName); printf ("\t\t\t"); if (fld->NullValuesCount) printf ("NullValues=%d ", fld->NullValuesCount); if (fld->IntegerValuesCount) printf ("IntegerValues=%d ", fld->IntegerValuesCount); if (fld->DoubleValuesCount) printf ("DoubleValues=%d ", fld->DoubleValuesCount); if (fld->TextValuesCount) printf ("TextValues=%d ", fld->TextValuesCount); if (fld->BlobValuesCount) printf ("BlobValues=%d ", fld->BlobValuesCount); printf ("\n"); if (fld->MaxSize) printf ("\t\t\tMaxSize/Length=%d\n", fld->MaxSize->MaxSize); if (fld->IntRange) #if defined(_WIN32) || defined(__MINGW32__) /* CAVEAT: M$ runtime doesn't supports %lld for 64 bits */ printf ("\t\t\tIntRange %I64d / %I64d\n", #else printf ("\t\t\tIntRange %lld / %lld\n", #endif fld->IntRange->MinValue, fld->IntRange->MaxValue); if (fld->DoubleRange) printf ("\t\t\tDoubleRange %f / %f\n", fld->DoubleRange->MinValue, fld->DoubleRange->MaxValue); fld = fld->Next; } lyr = lyr->Next; } printf ("\n"); } static void do_help () { /* printing the argument list */ fprintf (stderr, "\n\nusage: demo5 ARGLIST\n"); fprintf (stderr, "==============================================================\n"); fprintf (stderr, "-d or --db-path pathname the SpatiaLite DB path\n"); fprintf (stderr, "-t or --table table-name the table to be checked\n"); fprintf (stderr, "-g or --geometry column_name geometry column [optional]\n\n"); fprintf (stderr, "you can specify one of the following modes:\n"); fprintf (stderr, "-o or --optimistic OPTIMISTIC mode\n"); fprintf (stderr, "-p or --pessimistic PESSIMISTIC mode\n"); } int main (int argc, char *argv[]) { int ret; sqlite3 *handle; int i; int next_arg = ARG_NONE; int mode = GAIA_VECTORS_LIST_OPTIMISTIC; int error = 0; const char *db_path = NULL; const char *table = NULL; const char *geometry = NULL; gaiaVectorLayersListPtr list; void *cache; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ for (i = 1; i < argc; i++) { /* parsing the invocation arguments */ if (next_arg != ARG_NONE) { switch (next_arg) { case ARG_DB_PATH: db_path = argv[i]; break; case ARG_TABLE: table = argv[i]; break; case ARG_GEOMETRY: geometry = argv[i]; break; }; next_arg = ARG_NONE; continue; } if (strcasecmp (argv[i], "--help") == 0 || strcmp (argv[i], "-h") == 0) { do_help (); return -1; } if (strcasecmp (argv[i], "-d") == 0 || strcasecmp (argv[i], "--db-path") == 0) { next_arg = ARG_DB_PATH; continue; } if (strcasecmp (argv[i], "-t") == 0 || strcmp (argv[i], "--table") == 0) { next_arg = ARG_TABLE; continue; } if (strcasecmp (argv[i], "-g") == 0 || strcmp (argv[i], "--geometry") == 0) { next_arg = ARG_GEOMETRY; continue; } if (strcasecmp (argv[i], "-p") == 0 || strcmp (argv[i], "--pessimistic") == 0) { mode = GAIA_VECTORS_LIST_PESSIMISTIC; next_arg = ARG_NONE; continue; } if (strcasecmp (argv[i], "-o") == 0 || strcmp (argv[i], "--optimistic") == 0) { mode = GAIA_VECTORS_LIST_OPTIMISTIC; next_arg = ARG_NONE; continue; } fprintf (stderr, "unknown argument: %s\n", argv[i]); error = 1; } if (error) { do_help (); return -1; } /* checking the arguments */ if (!db_path) { fprintf (stderr, "did you forget setting the --db-path argument ?\n"); error = 1; } if (error) { do_help (); return -1; } /* trying to connect the test DB: - this demo is intended to create an existing, already populated database */ ret = sqlite3_open_v2 (db_path, &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { printf ("cannot open '%s': %s\n", argv[1], sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } cache = spatialite_alloc_connection (); spatialite_init_ex (handle, cache, 0); /* showing the SQLite version */ printf ("SQLite version: %s\n", sqlite3_libversion ()); /* showing the SpatiaLite version */ printf ("SpatiaLite version: %s\n", spatialite_version ()); printf ("\n\n"); /* listing the requested layer(s) */ list = gaiaGetVectorLayersList (handle, table, geometry, mode); do_print_list (list, mode); gaiaFreeVectorLayersList (list); /* disconnecting the test DB */ ret = sqlite3_close (handle); if (ret != SQLITE_OK) { printf ("close() error: %s\n", sqlite3_errmsg (handle)); return -1; } spatialite_cleanup_ex (cache); printf ("\n\nsample successfully terminated\n"); spatialite_shutdown(); return 0; } libspatialite-4.3.0a/examples/examples.doxy0000664000175000017500000005453712544707704016021 00000000000000/** \example demo1.c This is a sample C source showing how to use SQLite / SpatiaLite from C. This program shows the basic functionality that will be required for most SpatiaLite programs: - how to connect an SQLite+SpatiaLite database - executing an SQL query - fetching values from a result set - transforming BLOB-values into GEOMETRY - elementary processing GEOMETRY The typical output of this demo is shown below, when run against the sample database. \verbatim $ ./demo1 test-2.3.sqlite SQLite version: 3.7.4 SpatiaLite version: 3.0.0-beta1 ========= table 'HighWays' ======================== row #1 PK_UID = 1 Name = 'Unknown' Geometry = LINESTRING SRID=32632 length=8697.57 row #2 PK_UID = 2 Name = 'Unknown' Geometry = LINESTRING SRID=32632 length=39.79 row #3 PK_UID = 3 Name = 'Unknown' Geometry = LINESTRING SRID=32632 length=14610.39 row #4 PK_UID = 4 Name = 'Unknown' Geometry = LINESTRING SRID=32632 length=878.01 row #5 PK_UID = 5 Name = 'Unknown' Geometry = LINESTRING SRID=32632 length=10.05 ========= table 'Regions' ======================== row #1 PK_UID = 1 Name = 'VENETO' Geometry = MULTIPOLYGON SRID=32632 area=646397.81 row #2 PK_UID = 2 Name = 'VENETO' Geometry = MULTIPOLYGON SRID=32632 area=1290337.69 row #3 PK_UID = 3 Name = 'VENETO' Geometry = MULTIPOLYGON SRID=32632 area=8784619.92 row #4 PK_UID = 4 Name = 'VENETO' Geometry = MULTIPOLYGON SRID=32632 area=530524.68 row #5 PK_UID = 5 Name = 'LIGURIA' Geometry = MULTIPOLYGON SRID=32632 area=5450277374.12 ========= table 'Towns' ======================== row #1 PK_UID = 1 Name = 'Brozolo' Peoples = 435 LocalCounc = 1 County = 0 Region = 0 Geometry = POINT SRID=32632 row #2 PK_UID = 2 Name = 'Campiglione-Fenile' Peoples = 1284 LocalCounc = 1 County = 0 Region = 0 Geometry = POINT SRID=32632 row #3 PK_UID = 3 Name = 'Canischio' Peoples = 274 LocalCounc = 1 County = 0 Region = 0 Geometry = POINT SRID=32632 row #4 PK_UID = 4 Name = 'Cavagnolo' Peoples = 2281 LocalCounc = 1 County = 0 Region = 0 Geometry = POINT SRID=32632 row #5 PK_UID = 5 Name = 'Magliano Alfieri' Peoples = 1674 LocalCounc = 1 County = 0 Region = 0 Geometry = POINT SRID=32632 sample successfully terminated \endverbatim */ /** \example demo2.c This is a sample C source showing how to manipulate GEOMETRY within Spatialite. It essentially follows on from the functionality shown in the demo1.c example, and covers: - creating geometries - exploring geometries - querying the basic properties of a geometry Note that this does not require a database command line argument. Here is a typical run: \verbatim $ ./demo2 step#1: POINT Dimension=0 IsValid=1 POINT 0/1 x=1.5000 y=2.7500 step#2: LINESTRING Dimension=1 IsValid=1 LINESTRING 0/1 has 5 vertices vertex 0/5 x=1.0000 y=1.0000 vertex 1/5 x=2.0000 y=1.0000 vertex 2/5 x=2.0000 y=2.0000 vertex 3/5 x=100.0000 y=2.0000 vertex 4/5 x=100.0000 y=100.0000 step#3: POLYGON Dimension=2 IsValid=1 POLYGON 0/1 has 2 holes ExteriorRing has 5 vertices vertex 0/5 x=0.0000 y=0.0000 vertex 1/5 x=50.0000 y=0.0000 vertex 2/5 x=50.0000 y=50.0000 vertex 3/5 x=0.0000 y=50.0000 vertex 4/5 x=0.0000 y=0.0000 InteriorRing 0/2 has 5 vertices vertex 0/5 x=40.0000 y=40.0000 vertex 1/5 x=41.0000 y=40.0000 vertex 2/5 x=41.0000 y=41.0000 vertex 3/5 x=40.0000 y=41.0000 vertex 4/5 x=40.0000 y=40.0000 InteriorRing 1/2 has 5 vertices vertex 0/5 x=30.0000 y=30.0000 vertex 1/5 x=31.0000 y=30.0000 vertex 2/5 x=31.0000 y=31.0000 vertex 3/5 x=30.0000 y=31.0000 vertex 4/5 x=30.0000 y=30.0000 step#4: MULTIPOINT Dimension=0 IsValid=1 POINT 0/5 x=5.0000 y=5.0000 POINT 1/5 x=15.0000 y=5.0000 POINT 2/5 x=5.0000 y=15.0000 POINT 3/5 x=25.0000 y=5.0000 POINT 4/5 x=5.0000 y=25.0000 step#5: MULTILINESTRING Dimension=1 IsValid=1 LINESTRING 0/2 has 2 vertices vertex 0/2 x=30.0000 y=10.0000 vertex 1/2 x=10.0000 y=30.0000 LINESTRING 1/2 has 2 vertices vertex 0/2 x=40.0000 y=50.0000 vertex 1/2 x=50.0000 y=40.0000 step#6: MULTIPOLYGON Dimension=2 IsValid=1 POLYGON 0/2 has 0 holes ExteriorRing has 5 vertices vertex 0/5 x=60.0000 y=60.0000 vertex 1/5 x=70.0000 y=60.0000 vertex 2/5 x=70.0000 y=70.0000 vertex 3/5 x=60.0000 y=70.0000 vertex 4/5 x=60.0000 y=60.0000 POLYGON 1/2 has 0 holes ExteriorRing has 5 vertices vertex 0/5 x=80.0000 y=80.0000 vertex 1/5 x=90.0000 y=80.0000 vertex 2/5 x=90.0000 y=90.0000 vertex 3/5 x=80.0000 y=90.0000 vertex 4/5 x=80.0000 y=80.0000 step#7: GEOMETRYCOLLECTION Dimension=2 IsValid=1 POINT 0/2 x=100.0000 y=100.0000 POINT 1/2 x=100.0000 y=0.0000 LINESTRING 0/2 has 2 vertices vertex 0/2 x=130.0000 y=110.0000 vertex 1/2 x=110.0000 y=130.0000 LINESTRING 1/2 has 2 vertices vertex 0/2 x=140.0000 y=150.0000 vertex 1/2 x=150.0000 y=140.0000 POLYGON 0/2 has 0 holes ExteriorRing has 5 vertices vertex 0/5 x=160.0000 y=160.0000 vertex 1/5 x=170.0000 y=160.0000 vertex 2/5 x=170.0000 y=170.0000 vertex 3/5 x=160.0000 y=170.0000 vertex 4/5 x=160.0000 y=160.0000 POLYGON 1/2 has 0 holes ExteriorRing has 5 vertices vertex 0/5 x=180.0000 y=180.0000 vertex 1/5 x=190.0000 y=180.0000 vertex 2/5 x=190.0000 y=190.0000 vertex 3/5 x=180.0000 y=190.0000 vertex 4/5 x=180.0000 y=180.0000 step#8: checking WKT representations GEOMETRYCOLLECTION(POINT(1.5 2.75)) GEOMETRYCOLLECTION(LINESTRING(1 1, 2 1, 2 2, 100 2, 100 100)) GEOMETRYCOLLECTION(POLYGON((0 0, 50 0, 50 50, 0 50, 0 0), (40 40, 41 40, 41 41, 40 41, 40 40), (30 30, 31 30, 31 31, 30 31, 30 30))) GEOMETRYCOLLECTION(POINT(5 5), POINT(15 5), POINT(5 15), POINT(25 5), POINT(5 25)) GEOMETRYCOLLECTION(LINESTRING(30 10, 10 30), LINESTRING(40 50, 50 40)) GEOMETRYCOLLECTION(POLYGON((60 60, 70 60, 70 70, 60 70, 60 60)), POLYGON((80 80, 90 80, 90 90, 80 90, 80 80))) GEOMETRYCOLLECTION(POINT(100 100), POINT(100 0), LINESTRING(130 110, 110 130), LINESTRING(140 150, 150 140), POLYGON((160 160, 170 160, 170 170, 160 170, 160 160)), POLYGON((180 180, 190 180, 190 190, 180 190, 180 180))) \endverbatim */ /** \example demo3.c This is a sample C source showing how to use the SQLite / SpatiaLite Spatial Index [RTree]. It follows on from demo1.c. The main steps in this example are: - creating a new database - creating a sample geo-table - inserting 1 million rows into this table - performing some spatial queries without Spatial Indexing - performing the same queries using the Spatial Index The typical output of this demo is shown below (where test.sqlite does not exist before the run). \verbatim $ ./demo3 test.sqlite SQLite version: 3.7.4 SpatiaLite version: 3.0.0-beta1 now we are going to insert 1 million POINTs; wait, please ... insert row: 25000 [elapsed time: 1.910] insert row: 50000 [elapsed time: 4.050] insert row: 75000 [elapsed time: 6.270] insert row: 100000 [elapsed time: 8.460] insert row: 125000 [elapsed time: 10.740] insert row: 150000 [elapsed time: 12.910] insert row: 175000 [elapsed time: 15.080] insert row: 200000 [elapsed time: 17.350] insert row: 225000 [elapsed time: 19.610] insert row: 250000 [elapsed time: 21.890] insert row: 275000 [elapsed time: 24.170] insert row: 300000 [elapsed time: 26.380] insert row: 325000 [elapsed time: 28.650] insert row: 350000 [elapsed time: 30.900] insert row: 375000 [elapsed time: 33.130] insert row: 400000 [elapsed time: 35.340] insert row: 425000 [elapsed time: 37.540] insert row: 450000 [elapsed time: 39.760] insert row: 475000 [elapsed time: 41.980] insert row: 500000 [elapsed time: 44.220] insert row: 525000 [elapsed time: 46.500] insert row: 550000 [elapsed time: 48.740] insert row: 575000 [elapsed time: 50.960] insert row: 600000 [elapsed time: 53.190] insert row: 625000 [elapsed time: 55.430] insert row: 650000 [elapsed time: 57.670] insert row: 675000 [elapsed time: 59.900] insert row: 700000 [elapsed time: 62.130] insert row: 725000 [elapsed time: 64.400] insert row: 750000 [elapsed time: 66.660] insert row: 775000 [elapsed time: 68.900] insert row: 800000 [elapsed time: 71.140] insert row: 825000 [elapsed time: 73.410] insert row: 850000 [elapsed time: 75.670] insert row: 875000 [elapsed time: 77.940] insert row: 900000 [elapsed time: 80.230] insert row: 925000 [elapsed time: 82.540] insert row: 950000 [elapsed time: 84.840] insert row: 975000 [elapsed time: 87.150] insert row: 1000000 [elapsed time: 89.450] performing test#0 - not using Spatial Index Count(*) = 25 [elapsed time: 1.2700] performing test#1 - not using Spatial Index Count(*) = 25 [elapsed time: 1.2700] performing test#2 - not using Spatial Index Count(*) = 25 [elapsed time: 1.2900] performing test#0 - using the R*Tree Spatial Index Count(*) = 25 [elapsed time: 0.0000] performing test#1 - using the R*Tree Spatial Index Count(*) = 25 [elapsed time: 0.0000] performing test#2 - using the R*Tree Spatial Index Count(*) = 25 [elapsed time: 0.0000] sample successfully terminated \endverbatim Note the significant difference in elapsed time associated with use of an appropriate index. */ /** \example demo4.c This is a sample C source showing how to use the SQLite / SpatiaLite Spatial Index [MbrCache]. It is very similar to demo3.c, but uses a different indexing approach The main steps in this example are: - creating a new database - creating a sample geo-table - inserting 1 million rows into this table - performing some spatial queries without Spatial Indexing - performing the same queries using the Spatial Index The typical output of this demo is shown below (where test.sqlite does not exist before the run). \verbatim $ ./demo4 test.sqlite SQLite version: 3.7.4 SpatiaLite version: 3.0.0-beta1 now we are going to insert 1 million POINTs; wait, please ... insert row: 25000 [elapsed time: 0.370] insert row: 50000 [elapsed time: 0.820] insert row: 75000 [elapsed time: 1.280] insert row: 100000 [elapsed time: 1.750] insert row: 125000 [elapsed time: 2.210] insert row: 150000 [elapsed time: 2.690] insert row: 175000 [elapsed time: 3.180] insert row: 200000 [elapsed time: 3.670] insert row: 225000 [elapsed time: 4.210] insert row: 250000 [elapsed time: 4.720] insert row: 275000 [elapsed time: 5.240] insert row: 300000 [elapsed time: 5.780] insert row: 325000 [elapsed time: 6.330] insert row: 350000 [elapsed time: 6.910] insert row: 375000 [elapsed time: 7.510] insert row: 400000 [elapsed time: 8.120] insert row: 425000 [elapsed time: 8.750] insert row: 450000 [elapsed time: 9.420] insert row: 475000 [elapsed time: 10.120] insert row: 500000 [elapsed time: 10.850] insert row: 525000 [elapsed time: 11.610] insert row: 550000 [elapsed time: 12.390] insert row: 575000 [elapsed time: 13.200] insert row: 600000 [elapsed time: 14.040] insert row: 625000 [elapsed time: 14.900] insert row: 650000 [elapsed time: 15.790] insert row: 675000 [elapsed time: 16.700] insert row: 700000 [elapsed time: 17.650] insert row: 725000 [elapsed time: 18.620] insert row: 750000 [elapsed time: 19.610] insert row: 775000 [elapsed time: 20.650] insert row: 800000 [elapsed time: 21.700] insert row: 825000 [elapsed time: 22.760] insert row: 850000 [elapsed time: 23.860] insert row: 875000 [elapsed time: 25.060] insert row: 900000 [elapsed time: 26.290] insert row: 925000 [elapsed time: 27.480] insert row: 950000 [elapsed time: 28.760] insert row: 975000 [elapsed time: 30.020] insert row: 1000000 [elapsed time: 31.280] performing test#0 - not using Spatial Index Count(*) = 25 [elapsed time: 1.2500] performing test#1 - not using Spatial Index Count(*) = 25 [elapsed time: 1.2400] performing test#2 - not using Spatial Index Count(*) = 25 [elapsed time: 1.2400] performing test#0 - using the MBR cache Spatial Index Count(*) = 25 [elapsed time: 0.0000] performing test#1 - using the MBR cache Spatial Index Count(*) = 25 [elapsed time: 0.0000] performing test#2 - using the MBR cache Spatial Index Count(*) = 25 [elapsed time: 0.0000] sample successfully terminated \endverbatim As for demo3.c, note the significant speed difference between the indexed and non-indexed queries. */ /** \example demo5.c This is a sample C source showing how to use the SpatiaLite's API gaiaGetVectorLayersList(), i.e. the one gathering statistic infos for Vector Layers. The typical output of this demo is shown below. By simply specifying a DB-path demo5 will print the complete list of all Vector Layers found in that DB: \verbatim $ ./demo5 /home/sandro/db-4.0.sqlite SQLite version: 3.7.11 SpatiaLite version: 4.0.0-RC2 ****** VectorLayersList (mode=FAST) ********* VectorLayer: Type=BasedOnSqlTable TableName=com2011 GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=8094 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220492.095518 ReadOnly=FALSE Hidden=FALSE VectorLayer: Type=BasedOnSqlTable TableName=prov2011 GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=110 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 ReadOnly=FALSE Hidden=FALSE VectorLayer: Type=BasedOnSqlTable TableName=reg2011 GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=20 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 ReadOnly=FALSE Hidden=FALSE VectorLayer: Type=BasedOnSqlView TableName=com_prov GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=8094 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220492.095518 ReadOnly=FALSE Hidden=FALSE VectorLayer: Type=BasedOnSqlView TableName=prov_reg GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=110 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 ReadOnly=TRUE Hidden=FALSE VectorLayer: Type=BasedOnVirtualShape TableName=com2011a GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=8094 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220492.095518 VectorLayer: Type=BasedOnVirtualShape TableName=prov2011a GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=110 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 VectorLayer: Type=BasedOnVirtualShape TableName=reg2011a GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=20 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 ****** VectorLayersList (mode=PRECISE) ********* VectorLayer: Type=BasedOnSqlTable TableName=com2011 GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=8094 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220492.095518 ReadOnly=FALSE Hidden=FALSE VectorLayer: Type=BasedOnSqlTable TableName=prov2011 GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=110 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 ReadOnly=FALSE Hidden=FALSE VectorLayer: Type=BasedOnSqlTable TableName=reg2011 GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=20 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 ReadOnly=FALSE Hidden=FALSE VectorLayer: Type=BasedOnSqlView TableName=com_prov GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=8094 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220492.095518 ReadOnly=FALSE Hidden=FALSE VectorLayer: Type=BasedOnSqlView TableName=prov_reg GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=110 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 ReadOnly=TRUE Hidden=FALSE VectorLayer: Type=BasedOnVirtualShape TableName=com2011a GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=8094 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220492.095518 VectorLayer: Type=BasedOnVirtualShape TableName=prov2011a GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=110 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 VectorLayer: Type=BasedOnVirtualShape TableName=reg2011a GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=20 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220491.200018 sample successfully terminated \endverbatim By optionally specifying a Layer name demo5 will print a more detailed list for that single Layer: \verbatim $ ./demo5 /home/sandro/db-4.0.sqlite com2011 SQLite version: 3.7.11 SpatiaLite version: 4.0.0-RC2 ****** VectorLayersList (mode=FAST) ********* VectorLayer: Type=BasedOnSqlTable TableName=com2011 GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=8094 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220492.095518 ReadOnly=FALSE Hidden=FALSE Field #0) FieldName=PRO_COM IntegerValues=8094 IntRange 1001 / 110010 Field #1) FieldName=COD_REG IntegerValues=8094 IntRange 1 / 20 Field #2) FieldName=COD_PRO IntegerValues=8094 IntRange 1 / 110 Field #3) FieldName=NOME_COM TextValues=8094 MaxSize/Length=35 Field #4) FieldName=NOME_TED TextValues=8094 MaxSize/Length=36 Field #5) FieldName=SHAPE_Leng DoubleValues=8094 DoubleRange 1566.303618 / 327044.574999 Field #6) FieldName=SHAPE_Area DoubleValues=8094 DoubleRange 120613.967719 / 1287358944.600000 Field #7) FieldName=Geometry BlobValues=8094 MaxSize/Length=222151 ****** VectorLayersList (mode=PRECISE) ********* VectorLayer: Type=BasedOnSqlTable TableName=com2011 GeometryName=geometry SRID=23032 GeometryType=MULTIPOLYGON Dims=XY RowCount=8094 ExtentMin 313360.999831 / 3933878.175118 ExtentMax 1312106.500031 / 5220492.095518 ReadOnly=FALSE Hidden=FALSE Field #0) FieldName=PRO_COM IntegerValues=8094 IntRange 1001 / 110010 Field #1) FieldName=COD_REG IntegerValues=8094 IntRange 1 / 20 Field #2) FieldName=COD_PRO IntegerValues=8094 IntRange 1 / 110 Field #3) FieldName=NOME_COM TextValues=8094 MaxSize/Length=35 Field #4) FieldName=NOME_TED TextValues=8094 MaxSize/Length=36 Field #5) FieldName=SHAPE_Leng DoubleValues=8094 DoubleRange 1566.303618 / 327044.574999 Field #6) FieldName=SHAPE_Area DoubleValues=8094 DoubleRange 120613.967719 / 1287358944.600000 Field #7) FieldName=Geometry BlobValues=8094 MaxSize/Length=222151 sample successfully terminated \endverbatim */ libspatialite-4.3.0a/examples/Makefile.am0000664000175000017500000000035212544707704015314 00000000000000noinst_PROGRAMS = demo1 demo2 demo3 demo4 demo5 AM_CFLAGS = -I@srcdir@/../src/headers AM_LDFLAGS = -L../src -lspatialite -lm $(GCOV_FLAGS) LDADD = @LIBXML2_LIBS@ MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = examples.doxy libspatialite-4.3.0a/Makefile.in0000664000175000017500000007054112573313636013515 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ $(am__configure_deps) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = Doxyfile spatialite.pc CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' 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 \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = src test examples am__DIST_COMMON = $(srcdir)/Doxyfile.in $(srcdir)/Makefile.in \ $(srcdir)/config.h.in $(srcdir)/spatialite.pc.in AUTHORS \ COPYING INSTALL README compile config.guess config.sub depcomp \ install-sh ltmain.sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_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__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz $(distdir).zip GZIP_ENV = --best DIST_TARGETS = dist-gzip dist-zip 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@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I m4 AUTOMAKE_OPTIONS = dist-zip foreign EXTRA_DIST = makefile.vc nmake.opt Android_3.0.2.mk Android_4.3.0.mk \ spatialite-4.3.0.mk mainpage.doxy README.coverage \ spatialite-sql-latest.html config-msvc.h @ENABLE_EXAMPLES_TRUE@EXAMPLES = examples SUBDIRS = src test $(EXAMPLES) pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = spatialite.pc MOSTLYCLEANFILES = libspatialite_cov.info all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @test -f $@ || rm -f stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in cd $(top_builddir) && $(SHELL) ./config.status $@ spatialite.pc: $(top_builddir)/config.status $(srcdir)/spatialite.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ 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. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build/sub \ && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ 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: @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)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(pkgconfigdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: 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: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pkgconfigDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pkgconfigDATA .MAKE: $(am__recursive_targets) all install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ clean-libtool cscope cscopelist-am ctags ctags-am dist \ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ dist-xz dist-zip distcheck distclean distclean-generic \ distclean-hdr 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-am uninstall \ uninstall-am uninstall-pkgconfigDATA .PRECIOUS: Makefile coverage-init: lcov --directory src --capture --initial --output-file libspatialite_cov.info coverage:: lcov --rc lcov_branch_coverage=1 --directory src --output-file libspatialite_cov.info --capture genhtml --rc lcov_branch_coverage=1 -o covresults libspatialite_cov.info # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/README.coverage0000664000175000017500000000055712544707704014123 00000000000000Coverage testing ---------------- You need to have gcov and lcov installed. Process: 1. Use --enable-gcov=yes with configure script 2. Clean and rebuild. 3. make coverage-init 4. make check (or whatever other tests you want to check coverage for) 5. make coverage 6. check summary on command line output. 7. review detailed coverage results in covresults/index.html libspatialite-4.3.0a/config.sub0000775000175000017500000010316712544707704013435 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. timestamp='2009-11-20' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 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." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | ubicom32 \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | picochip) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze) basic_machine=microblaze-xilinx ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: libspatialite-4.3.0a/makefile.vc0000664000175000017500000001136312544707704013555 00000000000000# $Id: $ # # NMAKE Makefile to build libspatialite on Windows # !INCLUDE nmake.opt LIBOBJ = src\gaiaaux\gg_sqlaux.obj src\gaiaaux\gg_utf8.obj \ src\gaiaexif\gaia_exif.obj src\gaiageo\gg_advanced.obj \ src\gaiageo\gg_endian.obj src\gaiageo\gg_ewkt.obj \ src\gaiageo\gg_geodesic.obj src\gaiageo\gg_geoJSON.obj \ src\gaiageo\gg_geometries.obj src\gaiageo\gg_geoscvt.obj \ src\gaiageo\gg_gml.obj src\gaiageo\gg_kml.obj \ src\gaiageo\gg_relations.obj src\gaiageo\gg_shape.obj \ src\gaiageo\gg_transform.obj src\gaiageo\gg_vanuatu.obj \ src\gaiageo\gg_wkb.obj src\gaiageo\gg_wkt.obj \ src\gaiageo\gg_extras.obj src\gaiageo\gg_xml.obj \ src\gaiageo\gg_voronoj.obj src\gaiageo\gg_matrix.obj \ src\gaiageo\gg_relations_ext.obj src/connection_cache/alloc_cache.obj \ src\spatialite\mbrcache.obj src\shapefiles\shapefiles.obj \ src\spatialite\spatialite.obj src\spatialite\virtualdbf.obj \ src\spatialite\virtualfdo.obj src\spatialite\virtualnetwork.obj \ src\spatialite\virtualshape.obj src\spatialite\virtualspatialindex.obj \ src\spatialite\statistics.obj src\spatialite\metatables.obj \ src\spatialite\virtualXL.obj src\spatialite\extra_tables.obj \ src\spatialite\virtualxpath.obj src\spatialite\virtualbbox.obj \ src\spatialite\spatialite_init.obj src\spatialite\se_helpers.obj \ src\spatialite\srid_aux.obj src\spatialite\table_cloner.obj \ src\spatialite\virtualelementary.obj \ src\wfs\wfs_in.obj src\srsinit\srs_init.obj \ src\dxf\dxf_parser.obj src\dxf\dxf_loader.obj src\dxf\dxf_writer.obj \ src\dxf\dxf_load_distinct.obj src\dxf\dxf_load_mixed.obj \ src\shapefiles\validator.obj src\md5\md5.obj src\md5\gaia_md5.obj \ src\srsinit\epsg_inlined_00.obj src\srsinit\epsg_inlined_01.obj \ src\srsinit\epsg_inlined_02.obj src\srsinit\epsg_inlined_03.obj \ src\srsinit\epsg_inlined_04.obj src\srsinit\epsg_inlined_05.obj \ src\srsinit\epsg_inlined_06.obj src\srsinit\epsg_inlined_07.obj \ src\srsinit\epsg_inlined_08.obj src\srsinit\epsg_inlined_09.obj \ src\srsinit\epsg_inlined_10.obj src\srsinit\epsg_inlined_11.obj \ src\srsinit\epsg_inlined_12.obj src\srsinit\epsg_inlined_13.obj \ src\srsinit\epsg_inlined_14.obj src\srsinit\epsg_inlined_15.obj \ src\srsinit\epsg_inlined_16.obj src\srsinit\epsg_inlined_17.obj \ src\srsinit\epsg_inlined_18.obj src\srsinit\epsg_inlined_19.obj \ src\srsinit\epsg_inlined_20.obj src\srsinit\epsg_inlined_21.obj \ src\srsinit\epsg_inlined_22.obj src\srsinit\epsg_inlined_23.obj \ src\srsinit\epsg_inlined_24.obj src\srsinit\epsg_inlined_25.obj \ src\srsinit\epsg_inlined_26.obj src\srsinit\epsg_inlined_27.obj \ src\srsinit\epsg_inlined_28.obj src\srsinit\epsg_inlined_29.obj \ src\srsinit\epsg_inlined_30.obj src\srsinit\epsg_inlined_31.obj \ src\srsinit\epsg_inlined_32.obj src\srsinit\epsg_inlined_33.obj \ src\srsinit\epsg_inlined_34.obj src\srsinit\epsg_inlined_35.obj \ src\srsinit\epsg_inlined_36.obj src\srsinit\epsg_inlined_37.obj \ src\srsinit\epsg_inlined_38.obj src\srsinit\epsg_inlined_39.obj \ src\srsinit\epsg_inlined_40.obj src\srsinit\epsg_inlined_41.obj \ src\srsinit\epsg_inlined_42.obj src\srsinit\epsg_inlined_43.obj \ src\srsinit\epsg_inlined_44.obj src\srsinit\epsg_inlined_45.obj \ src\srsinit\epsg_inlined_46.obj src\srsinit\epsg_inlined_extra.obj \ src\srsinit\epsg_inlined_prussian.obj \ src\srsinit\epsg_inlined_wgs84_00.obj src\srsinit\epsg_inlined_wgs84_01.obj \ src\versioninfo\version.obj src\virtualtext\virtualtext.obj SPATIALITE_DLL = spatialite$(VERSION).dll CFLAGS = /nologo -I.\src\headers -I. -IC:\OSGeo4W\include $(OPTFLAGS) default: all all: spatialite.lib spatialite_i.lib #$(EXIF_LOADER_EXE) spatialite.lib: $(LIBOBJ) if exist spatialite.lib del spatialite.lib lib /out:spatialite.lib $(LIBOBJ) $(SPATIALITE_DLL): spatialite_i.lib spatialite_i.lib: $(LIBOBJ) link /debug /dll /out:$(SPATIALITE_DLL) \ /implib:spatialite_i.lib $(LIBOBJ) \ C:\OSGeo4W\lib\proj_i.lib C:\OSGeo4W\lib\geos_c.lib \ C:\OSGeo4w\lib\freexl_i.lib C:\OSGeo4w\lib\iconv.lib \ C:\OSGeo4W\lib\sqlite3_i.lib C:\OSGeo4W\lib\zlib.lib \ C:\OSGeo4W\lib\libxml2.lib if exist $(SPATIALITE_DLL).manifest mt -manifest \ $(SPATIALITE_DLL).manifest -outputresource:$(SPATIALITE_DLL);2 .c.obj: $(CC) $(CFLAGS) /c $*.c /Fo$@ clean: del *.dll del *.exp del *.manifest del *.lib del src\gaiaaux\*.obj del src\gaiaexif\*.obj del src\gaiageo\*.obj del src\spatialite\*.obj del src\srsinit\*.obj del src\versioninfo\*.obj del src\virtualtext\*.obj del src\wfs\*.obj del src\dxf\*.obj del src\md5\*.obj del *.pdb install: all -mkdir $(INSTDIR) -mkdir $(INSTDIR)\bin -mkdir $(INSTDIR)\lib -mkdir $(INSTDIR)\include -mkdir $(INSTDIR)\include\spatialite copy *.dll $(INSTDIR)\bin copy *.lib $(INSTDIR)\lib copy src\headers\spatialite.h $(INSTDIR)\include copy src\headers\spatialite\*.h $(INSTDIR)\include\spatialite libspatialite-4.3.0a/README0000664000175000017500000001355412544707704012332 00000000000000 --------------------- libspatialite ------------------------ PLEASE read the following information. 1 - Installation 2 - Required dependencies 3 - Build notes 3.1: Building on Linux 3.2: Building on Mac OS X 3.3: Building on Windows 3.3.1: using MinGW / MSYS 3.3.2: using Visual Studio .NET ===================================================================== 1. Installation: ================= The default destination path prefix for installed files is /usr/local. Results from the installation script will be placed into subdirectories include and lib. If this default path prefix is appropriate, then execute: ./configure If another path prefix is required, then execute: ./configure --prefix=/my/path In either case, the directory of the prefix path must exist and be writable by the installer. After executing configure, execute: make make install Or even better, you can *strip* any executable binary, in order to eliminate any debugging symbol, and thus widely reducing their size: make install-strip 2. Required dependencies: ========================= The main external dependencies needed in order to build 'libspatialite' are: - SQLite 3 (http://www.sqlite.org) This is a hard dependency - you can't build libspatialite without it. SQLite version 3.7.3 or later is strongly preferred - if you have an earlier version then you will need to pass --enable-geocallbacks=no to the ./configure script. - PROJ.4 (http://trac.osgeo.org/proj/) This is strongly recommended, unless you have a particular purpose in mind for your libspatialite build, and know that you won't need it. It is usually available as a package, and libspatialite is pretty flexible about versions. - GEOS (http://trac.osgeo.org/geos/) This is strongly recommended, unless you have a particular purpose in mind for your libspatialite build, and know that you won't need it. It is usually available as a package, but libspatialite will have more capability if you use version 3.3.0 or later so make sure that the package is recent enough. Use --enable-geosadvanced=no argument to the ./configure script if you want to use an earlier version of GEOS. - FreeXL (http://www.gaia-gis.it/FreeXL/) This is recommended if you want to be able to import data from Microsoft Excel format (.xls suffix) files. If you do not wish to use it, you will need to pass --enable-freexl=no to the ./configure script. Version 0.0.4 or later is required. Note that you need development code (e.g. -dev packages on Debian Linux and derivatives such as Ubuntu, or -devel packages on most other Linux distributions). ICONV [Windows] --------------- When building on Windows, then you also need to provide iconv to ensure that appropriate character set conversions are available. This dependency is not usually an issue when building on Linux or Mac OS X, because these systems provide iconv as a standard component. For Windows the preferred solution is to download and install the pre-built iconv binaries and related files from: http://gnuwin32.sourceforge.net/packages/libiconv.htm 3 - Build notes =============== 3.1: Building on Linux and similar systems ------------------------------------------ Building libspatialite on Linux and similar systems such as BSD or other Unix variants does not require any special settings. If you have unpacked the sources as ./libspatialite-3.1.0, then the required steps are: # cd libspatialite-3.1.0 # ./configure # make # sudo make install # or (in order to save some disk space) # sudo make install-strip 3.2: Building on Mac OS X ------------------------- Building 'libspatialite' on Mac OS X very similar to Linux. You simply have to set explicitly some environment variables. If you have unpacked the sources as ./libspatialite-3.1.0, then the required steps are: # cd libspatialite-3.1.0 # export "CFLAGS=-I/opt/local/include" # export "LDFLAGS=-I/opt/local/lib" # ./configure # make # sudo make install # or (in order to save some disk space) # sudo make install-strip IMPORTANT NOTICE: this will build an executable for your specific platform. That is, when building on a PPC Mac, the resulting binary will be be for PPC. Similarly, when building on Intel Mac, resulting binary will be for Intel. 3.3: Building on Windows ------------------------ On Windows systems you can choose using two different compilers: - MinGW / MSYS This represents a smart porting of a minimalistic Linux-like development toolkit - Microsoft Visual Studio .NET This is the standard platform development toolkit from Microsoft. 3.3.1: using MinGW / MSYS ------------------------- We assume that you have already installed the MinGW compiler and the MSYS shell. Building 'libspatialite' under Windows is then more or less like building on any other UNIX-like system. If you have unpacked the sources as C:\libspatialite-3.1.0, then the required steps are: $ cd c:/libspatialite-3.1.0 $ export "CFLAGS=-I/usr/local/include" $ export "LDFLAGS=-L/usr/local/lib" $ ./configure --target=mingw32 $ make $ make install-strip $ or (in order to save some disk space) $ make install-strip 3.3.2: using Microsoft Visual Studio .NET ----------------------------------------- We assume that you have already installed Visual Studio enabling the command line tools. Note that you are expected to the Visual Studio command prompt shell rather than the GUI build environment. If you have unpacked the sources as C:\libspatialite-3.1.0, then the required steps are: > cd c:\libspatialite-3.1.0 > nmake /f makefile.vc > nmake /f makefile.vc install Please note: standard definitions in 'makefile.vc' assumes: - enabling PROJ - disabling GEOS If you want to alter the default behaviour then make modifications in 'makefile.vc'. Also note that 'libspatialite-geos.def' contains those external symbols to be exported from the DLL when you build GEOS. libspatialite-4.3.0a/test-driver0000775000175000017500000000761112544707704013645 00000000000000#! /bin/sh # test-driver - basic testsuite driver script. scriptversion=2012-06-27.10; # UTC # Copyright (C) 2011-2013 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . # Make unconditional expansion of undefined variables an error. This # helps a lot in preventing typo-related bugs. set -u usage_error () { echo "$0: $*" >&2 print_usage >&2 exit 2 } print_usage () { cat <$log_file 2>&1 estatus=$? if test $enable_hard_errors = no && test $estatus -eq 99; then estatus=1 fi case $estatus:$expect_failure in 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; 0:*) col=$grn res=PASS recheck=no gcopy=no;; 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; *:*) col=$red res=FAIL recheck=yes gcopy=yes;; esac # Report outcome to console. echo "${col}${res}${std}: $test_name" # Register the test result, and other relevant metadata. echo ":test-result: $res" > $trs_file echo ":global-test-result: $res" >> $trs_file echo ":recheck: $recheck" >> $trs_file echo ":copy-in-global-log: $gcopy" >> $trs_file # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: libspatialite-4.3.0a/m4/0000775000175000017500000000000012573314325012035 500000000000000libspatialite-4.3.0a/m4/lt~obsolete.m40000664000175000017500000001375612544707704014612 00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # 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 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) libspatialite-4.3.0a/m4/ltsugar.m40000664000175000017500000001042412544707704013706 00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # 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 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) libspatialite-4.3.0a/m4/libtool.m40000664000175000017500000104515512544707704013703 00000000000000# 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. # Written by Gordon Matzigkeit, 1996 # # 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. 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. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 57 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # `#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test $lt_write_fail = 0 && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ 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. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_REPLACE_SHELLFNS mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $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 lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi 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 save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [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 int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _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 lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _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\"`' else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script which will find a shell with a builtin # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case "$ECHO" in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified).], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([${with_sysroot}]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and in which our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # 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.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # 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 *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*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" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' 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 \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; 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 # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # 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` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux 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' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) 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 ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[123]]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; 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 hardcode_into_libs=yes ;; haiku*) version_type=linux need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" 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=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) 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' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-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' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux 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 ;; *nto* | *qnx*) version_type=qnx 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='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) 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=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux 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 case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux 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 fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. 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}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux 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 ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) 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 lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *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)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _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 ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac 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' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) # 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\ 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,' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) ;; *) _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 ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _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 _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _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'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in 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(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~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # 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(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' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _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 # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. 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 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' 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 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS="$save_LDFLAGS"]) if test "$lt_cv_irix_exported_symbol" = yes; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) 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 _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _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], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## 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_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _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 _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # 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_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # 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 # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## 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... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _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 _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # 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_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## 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... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _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 _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # 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_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## 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... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # 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=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ 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_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # 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= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) # ------------------------------------------------------ # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. m4_defun([_LT_PROG_FUNCTION_REPLACE], [dnl { sed -e '/^$1 ()$/,/^} # $1 /c\ $1 ()\ {\ m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: ]) # _LT_PROG_REPLACE_SHELLFNS # ------------------------- # Replace existing portable implementations of several shell functions with # equivalent extended shell implementations where those features are available.. m4_defun([_LT_PROG_REPLACE_SHELLFNS], [if test x"$xsi_shell" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"}]) _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl func_split_long_opt_name=${1%%=*} func_split_long_opt_arg=${1#*=}]) _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) fi if test x"$lt_shell_append" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl func_quote_for_eval "${2}" dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) fi ]) # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine which file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS libspatialite-4.3.0a/m4/ltoptions.m40000664000175000017500000002725612544707704014273 00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, # Inc. # Written by Gary V. Vaughan, 2004 # # 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 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # 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], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) libspatialite-4.3.0a/m4/ltversion.m40000664000175000017500000000126212544707704014252 00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # 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. # @configure_input@ # serial 3337 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.2]) m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], [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) ]) libspatialite-4.3.0a/spatialite.pc.in0000664000175000017500000000041512544707704014532 00000000000000# Package Information for pkg-config prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: spatialite Description: Spatial SQL database engine based on SQLite Version: @VERSION@ Libs: -L${libdir} -lspatialite Cflags: -I${includedir} libspatialite-4.3.0a/mainpage.doxy0000664000175000017500000001302012544707704014124 00000000000000/** \mainpage Introduction \section Generalities SpatiaLite is an open source library intended to extend basic SQLite core in order to support full fledged Spatial SQL capabilities. \n\n SQLite is intrinsically simple and lighweight: - a single ligthweight library implementing the full SQL engine. - standard SQL implementation: almost complete SQL-92. - no complex client/server architecture. - a whole database simply corresponds to a single monolithic file [no size limits]. - any DB-file can be safely exchanged across different platforms, because the internal architecture is universally portable. - no installation, no configuration. SpatiaLite is smoothly integrated into SQLite so to deploy a complete and powerfull Spatial DBMS [mostly OGC-SFS compliant]. \n All this fully preserving the lightness and simplicity typical of SQLite itself. \n That's not all: SpatiaLite supports direct SQL access to several commonly used \e external \e datasources, this including: - ESRI \b Shapefiles. - \b DBF Archive Files. - \b TXT/CSV structured text files. - \b Spreadsheets [.xls format]. And SpatiaLite actively supports many alternative standard Geometry notations: - \b WKT [Well Known Text] and \b WKB [Well Known Binary]. - PostGIS own \b EWKT and \b EWKB [Extended WKT / WKB]. - \b GML [Geography Markup Language, both v2 and v3]. - \b KML [Keyhole Markup Language, used by Google Maps and Google Earth]. - \b GeoJSON [Geometry Java Script Object Notation]. - \b SVG [Scalable Vector Graphics]. Conclusion: using SQLite + SpatiaLite you can deploy an alternative Spatial DBMS roughly equivalent to PostgreSQL + PostGIS. \n The main difference between them isn't in powerness, but mainly relies on architecture: - PostgrSQL + PostGIS fully supports a client/server architecture. \n This is well fit for complex and sophisticated Spatial Data infrastructures, but surely implies a certain degree of complexity. - SQLite + SpatiaLite supports a much more simplest personal architecture. \n This is most appropriate for desktop, stand-alone, personal activities. Choosing the one or the other simply depends on your very specific requirements: - no one is better than the other one: they are simply optimized for different envoronments. - both them can roughly support the same Spatial Data processing capabilities. - feel free to choose the best fit one accordingly to your effective goals. \section Building Building and installing the SpatiaLite library is straightforward: \verbatim ./configure make make install \endverbatim Please note: SpatiaLite depends on the following open source libraries: - GNU \b ICONV \n locale charset encodings support - \b GEOS \n Geometry engine - \b PROJ.4 \n Spatial Reference System handling [coordinate re-projection] - \b FreeXL \n Spreadsheet input support [.xls format] The library comes in two different flavors: - \b libspatialite \n standard, canonical library: the best and safest way to deploy SpatiaLite. \n this obviously depends on \e external \b libsqlite: thus ensuring full coherence between libraries. \n warmly reccomended, mostly on Unix-like systems.\n - \b libspatialite-amalgamation \n The whole library is \e amalgamated into a single monolithic file and includes an \e internal \e private \e copy of \b libsqlite. \n Using the \e amalgamated library may strongly simplify any following installation process, and nicely supports \b static \b linkage. \n Anyway, you can safely apply the \e amalgamated approch only to self-standing apps. \n Attempting to use the \e amalgated library on complex frameworks or on data connectors / language bindings \n may easily cause serious conflicts. \section Deployment You can deploy SpatiaLite in two alternative ways: - you can load the SpatiaLite library as a \b dynamic \b extension to SQLite. \n This allows SQLite to support SQL Spatial Data [Geometry] and SQL Spatial Functions. \n Theorically, any generic tool or language connector supporting SQLite can support this \e extension mechanism; \n sadly enough, sometimes this feature is intentionally disabled: I'm sorry for you if this is your specific case. \n\n How to load SpatiaLite as a dynamic extension to SQLite: \verbatim SELECT load_extension('spatialite_dynamic_library_name'); \endverbatim \n - you can directly link the SpatiaLite library to any application of your own. \n This allows you to ship a complete, powerfull, self-contained Spatial SQL engine directly supporting your app. \n And such Spatial SQL engine doesn't requires any installation or configuration at all. \n That's not all: linking the SpatiaLite to your own C/C++ code you aren't simply constrained to use SQL: \n adopting this approach you can directly access the complete C API. \n\n Linking SpatiaLite to your own code is usually simple: \verbatim gcc my_program.c -o my_program -lspatialite \endverbatim \n On some systems you may have to provide a slightly more complex arrangement: \verbatim gcc -I/usr/local/include my_program.c -o my_program \ -L/usr/local/lib -lpsatialite -lsqlite -lgeos_c -lgeos \ -lproj -lfreexl -liconv -lm -lstdc++ \endverbatim \n SpatiaLite also provides pkg-config support, so you can also do \verbatim gcc -I/usr/local/include my_program.c -o my_program \ `pkg-config --libs spatialite` \endverbatim \section License SpatiaLite is licensed under the MPL tri-license terms: you are free to choose the best-fit license between: - the MPL 1.1 - the GPL v2.0 or any subsequent version - the LGPL v2.1 or any subsequent version Enjoy, and happy coding */ libspatialite-4.3.0a/config.h.in0000664000175000017500000001453212544707704013472 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Should be defined in order to enable GCP support. */ #undef ENABLE_GCP /* Should be defined in order to enable GeoPackage support. */ #undef ENABLE_GEOPACKAGE /* Should be defined in order to enable LIBXML2 support. */ #undef ENABLE_LIBXML2 /* Should be defined in order to enable LWGEOM support. */ #undef ENABLE_LWGEOM /* Should be defined in order to enable GEOS_ADVANCED support. */ #undef GEOS_ADVANCED /* Should be defined in order to enable GEOS_TRUNK experimental support. */ #undef GEOS_TRUNK /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the `fdatasync' function. */ #undef HAVE_FDATASYNC /* Define to 1 if you have the header file. */ #undef HAVE_FLOAT_H /* Define to 1 if you have the header file. */ #undef HAVE_FREEXL_H /* Define to 1 if you have the `ftruncate' function. */ #undef HAVE_FTRUNCATE /* Define to 1 if you have the header file. */ #undef HAVE_GEOS_C_H /* Define to 1 if you have the `getcwd' function. */ #undef HAVE_GETCWD /* Define to 1 if you have the `gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY /* Define to 1 if you have the header file. */ #undef HAVE_ICONV_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_LIBLWGEOM_H /* Define to 1 if you have the `sqlite3' library (-lsqlite3). */ #undef HAVE_LIBSQLITE3 /* Define to 1 if you have the `z' library (-lz). */ #undef HAVE_LIBZ /* Define to 1 if you have the `localtime_r' function. */ #undef HAVE_LOCALTIME_R /* Define to 1 if `lstat' has the bug that it succeeds when given the zero-length file name argument. */ #undef HAVE_LSTAT_EMPTY_STRING_BUG /* Define to 1 if you have the header file. */ #undef HAVE_MATH_H /* Define to 1 if you have the `memmove' function. */ #undef HAVE_MEMMOVE /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have the header file. */ #undef HAVE_PROJ_API_H /* Define to 1 if you have the header file. */ #undef HAVE_SQLITE3EXT_H /* Define to 1 if you have the header file. */ #undef HAVE_SQLITE3_H /* Define to 1 if you have the `sqrt' function. */ #undef HAVE_SQRT /* Define to 1 if `stat' has the bug that it succeeds when given the zero-length file name argument. */ #undef HAVE_STAT_EMPTY_STRING_BUG /* Define to 1 if you have the header file. */ #undef HAVE_STDDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDIO_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define to 1 if you have the `strerror' function. */ #undef HAVE_STRERROR /* Define to 1 if you have the `strftime' function. */ #undef HAVE_STRFTIME /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strncasecmp' function. */ #undef HAVE_STRNCASECMP /* Define to 1 if you have the `strstr' function. */ #undef HAVE_STRSTR /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the header file. */ #undef HAVE_ZLIB_H /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Must be defined in order to disable debug mode. */ #undef NDEBUG /* Should be defined in order to disable EPSG full support. */ #undef OMIT_EPSG /* Should be defined in order to disable FREEXL support. */ #undef OMIT_FREEXL /* Should be defined in order to disable GEOCALLBACKS support. */ #undef OMIT_GEOCALLBACKS /* Should be defined in order to disable GEOS support. */ #undef OMIT_GEOS /* Should be defined in order to disable ICONV support. */ #undef OMIT_ICONV /* Should be defined in order to disable MATHSQL support. */ #undef OMIT_MATHSQL /* Should be defined in order to disable PROJ.4 support. */ #undef OMIT_PROJ /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Should be defined when linking liblwgeom from PostGIS 2.1 (or later). */ #undef POSTGIS_2_1 /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Should contain a text-string describing the intended target CPU */ #undef TARGET_CPU /* Define to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME /* Define to 1 if your declares `struct tm'. */ #undef TM_IN_SYS_TIME /* Version number of package */ #undef VERSION /* Must be =64 in order to enable huge-file support. */ #undef _FILE_OFFSET_BITS /* Must be defined in order to enable huge-file support. */ #undef _LARGEFILE_SOURCE /* Must be defined in order to enable huge-file support. */ #undef _LARGE_FILE /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `long int' if does not define. */ #undef off_t /* Define to `unsigned int' if does not define. */ #undef size_t /* Define to empty if the keyword `volatile' does not work. Warning: valid code using `volatile' can become incorrect without. Disable with care. */ #undef volatile libspatialite-4.3.0a/configure.ac0000664000175000017500000004052212573313623013726 00000000000000# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.61) AC_INIT(libspatialite, 4.3.0a, a.furieri@lqt.it) AC_LANG(C) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([foreign]) AM_MAINTAINER_MODE AM_CONFIG_HEADER(config.h) # enabling huge-file support (64 bit file pointers) AH_TEMPLATE([_LARGE_FILE], [Must be defined in order to enable huge-file support.]) AC_DEFINE(_LARGE_FILE) AH_TEMPLATE([_FILE_OFFSET_BITS], [Must be =64 in order to enable huge-file support.]) AC_DEFINE(_FILE_OFFSET_BITS, 64) AH_TEMPLATE([_LARGEFILE_SOURCE], [Must be defined in order to enable huge-file support.]) AC_DEFINE(_LARGEFILE_SOURCE) # disabling debug support AH_TEMPLATE([NDEBUG], [Must be defined in order to disable debug mode.]) AC_DEFINE(NDEBUG) # config depending options AH_TEMPLATE([OMIT_GEOS], [Should be defined in order to disable GEOS support.]) AH_TEMPLATE([GEOS_ADVANCED], [Should be defined in order to enable GEOS_ADVANCED support.]) AH_TEMPLATE([GEOS_TRUNK], [Should be defined in order to enable GEOS_TRUNK experimental support.]) AH_TEMPLATE([ENABLE_LWGEOM], [Should be defined in order to enable LWGEOM support.]) AH_TEMPLATE([ENABLE_GCP], [Should be defined in order to enable GCP support.]) AH_TEMPLATE([OMIT_PROJ], [Should be defined in order to disable PROJ.4 support.]) AH_TEMPLATE([OMIT_ICONV], [Should be defined in order to disable ICONV support.]) AH_TEMPLATE([OMIT_MATHSQL], [Should be defined in order to disable MATHSQL support.]) AH_TEMPLATE([OMIT_EPSG], [Should be defined in order to disable EPSG full support.]) AH_TEMPLATE([OMIT_GEOCALLBACKS], [Should be defined in order to disable GEOCALLBACKS support.]) AH_TEMPLATE([OMIT_FREEXL], [Should be defined in order to disable FREEXL support.]) AH_TEMPLATE([ENABLE_LIBXML2], [Should be defined in order to enable LIBXML2 support.]) AH_TEMPLATE([ENABLE_GEOPACKAGE], [Should be defined in order to enable GeoPackage support.]) AH_TEMPLATE([POSTGIS_2_1], [Should be defined when linking liblwgeom from PostGIS 2.1 (or later).]) AH_TEMPLATE([TARGET_CPU], [Should contain a text-string describing the intended target CPU]) # Checks for header files. AC_CHECK_HEADERS(stdlib.h,, [AC_MSG_ERROR([cannot find stdlib.h, bailing out])]) AC_CHECK_HEADERS(stdio.h,, [AC_MSG_ERROR([cannot find stdio.h, bailing out])]) AC_CHECK_HEADERS(string.h,, [AC_MSG_ERROR([cannot find string.h, bailing out])]) AC_CHECK_HEADERS(memory.h,, [AC_MSG_ERROR([cannot find memory.h, bailing out])]) AC_CHECK_HEADERS(math.h,, [AC_MSG_ERROR([cannot find math.h, bailing out])]) AC_CHECK_HEADERS(float.h,, [AC_MSG_ERROR([cannot find float.h, bailing out])]) AC_CHECK_HEADERS(fcntl.h,, [AC_MSG_ERROR([cannot find fcntl.h, bailing out])]) AC_CHECK_HEADERS(inttypes.h,, [AC_MSG_ERROR([cannot find inttypes.h, bailing out])]) AC_CHECK_HEADERS(stddef.h,, [AC_MSG_ERROR([cannot find stddef.h, bailing out])]) AC_CHECK_HEADERS(stdint.h,, [AC_MSG_ERROR([cannot find stdint.h, bailing out])]) AC_CHECK_HEADERS(sys/time.h,, [AC_MSG_ERROR([cannot find sys/time.h, bailing out])]) AC_CHECK_HEADERS(unistd.h,, [AC_MSG_ERROR([cannot find unistd.h, bailing out])]) AC_CHECK_HEADERS(sqlite3.h,, [AC_MSG_ERROR([cannot find sqlite3.h, bailing out])]) AC_CHECK_HEADERS(sqlite3ext.h,, [AC_MSG_ERROR([cannot find sqlite3ext.h, bailing out])]) AC_CHECK_HEADERS(zlib.h,, [AC_MSG_ERROR([cannot find zlib.h, bailing out])]) # Checks for programs. AC_PROG_CXX AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_LIBTOOL_WIN32_DLL AC_PROG_LIBTOOL # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_OFF_T AC_TYPE_SIZE_T AC_HEADER_TIME AC_STRUCT_TM AC_C_VOLATILE # Checks for library functions. AC_FUNC_LSTAT AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK AC_FUNC_MEMCMP AC_FUNC_STAT AC_FUNC_STRFTIME AC_CHECK_FUNCS([memset sqrt strcasecmp strerror strncasecmp strstr fdatasync ftruncate getcwd gettimeofday localtime_r memmove strerror]) # Checks for installed libraries AC_CHECK_LIB(sqlite3,sqlite3_prepare_v2,,AC_MSG_ERROR(['libsqlite3' is required but it doesn't seem to be installed on this system.]),-lm) AC_CHECK_LIB(z,inflateInit_,,AC_MSG_ERROR(['libz' is required but it doesn't seem to be installed on this system.]),-lm) AC_CONFIG_FILES([Makefile \ src/Makefile \ src/headers/Makefile \ src/gaiaaux/Makefile \ src/gaiaexif/Makefile \ src/gaiageo/Makefile \ src/gaiageo/flex/Makefile \ src/gaiageo/lemon/Makefile \ src/gaiageo/lemon/lemon_src/Makefile \ src/geopackage/Makefile \ src/spatialite/Makefile \ src/shapefiles/Makefile \ src/dxf/Makefile \ src/md5/Makefile \ src/control_points/Makefile \ src/srsinit/Makefile \ src/srsinit/epsg_update/Makefile \ src/connection_cache/Makefile \ src/connection_cache/generator/Makefile \ src/virtualtext/Makefile \ src/wfs/Makefile \ test/Makefile \ test/sql_stmt_tests/Makefile \ test/sql_stmt_geos_tests/Makefile \ test/sql_stmt_geosadvanced_tests/Makefile \ test/sql_stmt_geopackage_tests/Makefile \ test/sql_stmt_proj_tests/Makefile \ test/sql_stmt_mathsql_tests/Makefile \ test/sql_stmt_lwgeom_tests/Makefile \ test/sql_stmt_libxml2_tests/Makefile \ test/sql_stmt_security_tests/Makefile \ test/sql_stmt_xmlsec_tests/Makefile \ test/sql_stmt_freexl_tests/Makefile \ test/sql_stmt_cache_tests/Makefile \ test/sql_stmt_nocache_tests/Makefile \ examples/Makefile \ Doxyfile \ spatialite.pc]) # exporting the TARGET_CPU string splite_cpu=`$CC -dumpmachine` AC_DEFINE_UNQUOTED([TARGET_CPU], ["$splite_cpu"]) #----------------------------------------------------------------------- # --enable-mathsql # AC_ARG_ENABLE(mathsql, [AS_HELP_STRING( [--enable-mathsql], [enables SQL math functions [default=yes]])], [], [enable_mathsql=yes]) if test x"$enable_mathsql" != "xyes"; then AC_DEFINE(OMIT_MATHSQL) fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-geocallbacks # AC_ARG_ENABLE(geocallbacks, [AS_HELP_STRING( [--enable-geocallbacks], [enables geometry callbacks [default=no]])], [], [enable_geocallbacks=no]) if test x"$enable_geocallbacks" == "xyes"; then AC_CHECK_LIB(sqlite3,sqlite3_rtree_geometry_callback,,AC_MSG_ERROR([obsolete 'libsqlite3' (< v.3.7.3). please retry specifying: --disable-geocallbacks]),-lm) else AC_DEFINE(OMIT_GEOCALLBACKS) fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-proj # AC_ARG_ENABLE(proj, [AS_HELP_STRING( [--enable-proj], [enables PROJ.4 inclusion [default=yes]])], [], [enable_proj=yes]) if test x"$enable_proj" != "xno"; then AC_CHECK_HEADERS(proj_api.h,, [AC_MSG_ERROR([cannot find proj_api.h, bailing out])]) AC_SEARCH_LIBS(pj_init_plus,proj,,AC_MSG_ERROR(['libproj' is required but it doesn't seem to be installed on this system.]),-lm) AC_SEARCH_LIBS(pj_init_ctx,proj,,AC_MSG_ERROR(['libproj' is required but the version on this system does not support the required features (Version 4.8.0 or later is needed).]),-lm) else AC_DEFINE(OMIT_PROJ) fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-iconv # AC_ARG_ENABLE(iconv, [AS_HELP_STRING( [--enable-iconv], [enables ICONV inclusion [default=yes]])], [], [enable_iconv=yes]) if test x"$enable_iconv" != "xno"; then AC_CHECK_HEADERS(iconv.h,, [AC_MSG_ERROR([cannot find iconv.h, bailing out])]) # on some systems "iconv()" lives in libc. On others it lives in libiconv # on older systems "libiconv()" lives in libiconv AC_SEARCH_LIBS(iconv,iconv,, AC_SEARCH_LIBS(libiconv,iconv,,AC_MSG_ERROR(['libiconv' is required but it doesn't seem to be installed on this system.]),)) AC_SEARCH_LIBS(locale_charset,charset,, AC_SEARCH_LIBS(nl_langinfo,c,,AC_MSG_ERROR(['libcharset' is required but it doesn't seem to be installed on this system.]),)) else AC_DEFINE(OMIT_ICONV) fi #----------------------------------------------------------------------- # --enable-freexl # AC_ARG_ENABLE(freexl, [AS_HELP_STRING( [--enable-freexl], [enables FreeXL inclusion [default=yes]])], [], [enable_freexl=yes]) if test x"$enable_freexl" != "xno"; then AC_CHECK_HEADERS(freexl.h,, [AC_MSG_ERROR([cannot find freexl.h, bailing out])]) AC_SEARCH_LIBS(freexl_version,freexl,,AC_MSG_ERROR([could not find 'freexl' (or obsolete 'freexl' < v.1.0.1 found).]),-lm) else AC_DEFINE(OMIT_FREEXL) fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-epsg # AC_ARG_ENABLE(epsg, [AS_HELP_STRING( [--enable-epsg], [enables full EPSG dataset support [default=yes]])], [], [enable_epsg=yes]) if test x"$enable_epsg" != "xyes"; then AC_DEFINE(OMIT_EPSG) fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-geos # AC_ARG_ENABLE(geos, [AS_HELP_STRING( [--enable-geos], [enables GEOS inclusion [default=yes]])], [], [enable_geos=yes]) if test x"$enable_geos" != "xno"; then #----------------------------------------------------------------------- # --with-geosconfig # AC_ARG_WITH([geosconfig], [AS_HELP_STRING([--with-geosconfig=FILE], [specify an alternative geos-config file])], [GEOSCONFIG="$withval"], [GEOSCONFIG=""]) if test "x$GEOSCONFIG" = "x"; then # GEOSCONFIG was not specified, so search within the current path AC_PATH_PROG([GEOSCONFIG], [geos-config]) # If we couldn't find geos-config, display an error if test "x$GEOSCONFIG" = "x"; then AC_MSG_ERROR([could not find geos-config within the current path. You may need to try re-running configure with a --with-geosconfig parameter.]) fi else # GEOSCONFIG was specified; display a message to the user if test "x$GEOSCONFIG" = "xyes"; then AC_MSG_ERROR([you must specify a parameter to --with-geosconfig, e.g. --with-geosconfig=/path/to/geos-config]) else if test -f $GEOSCONFIG; then AC_MSG_RESULT([Using user-specified geos-config file: $GEOSCONFIG]) else AC_MSG_ERROR([the user-specified geos-config file $GEOSCONFIG does not exist]) fi fi fi # Extract the linker and include flags GEOS_LDFLAGS=`$GEOSCONFIG --ldflags` GEOS_CFLAGS=-I`$GEOSCONFIG --includes` AC_SUBST([GEOS_LDFLAGS]) AC_SUBST([GEOS_CFLAGS]) # Ensure that we can parse geos_c.h CPPFLAGS_SAVE="$CPPFLAGS" CPPFLAGS="$GEOS_CFLAGS" AC_CHECK_HEADERS([geos_c.h],, [AC_MSG_ERROR([could not find geos_c.h - you may need to specify the directory of a geos-config file using --with-geosconfig])]) CPPFLAGS="$CPPFLAGS_SAVE" # Ensure we can link against libgeos_c LIBS_SAVE="$LIBS" LIBS="$GEOS_LDFLAGS" AC_SEARCH_LIBS(GEOSCoveredBy,geos_c,,AC_MSG_ERROR([could not find libgeos_c (or obsolete 'libgeos_c' < v.3.3.0 found) - you may need to specify the directory of a geos-config file using --with-geosconfig])) LIBS="$LIBS_SAVE" LIBS="$LIBS $GEOS_LDFLAGS -lgeos_c" #----------------------------------------------------------------------- # --enable-controlpoints # AC_ARG_ENABLE(gcp, [AS_HELP_STRING( [--enable-gcp], [enables Control Points (from Grass GIS) [default=no]])], [], [enable_gcp=no]) if test x"$enable_gcp" != "xno"; then AC_DEFINE(ENABLE_GCP) fi #----------------------------------------------------------------------- # --enable-geosadvanced # AC_ARG_ENABLE(geosadvanced, [AS_HELP_STRING( [--enable-geosadvanced], [enables GEOS advanced features [default=yes]])], [], [enable_geosadvanced=yes]) if test x"$enable_geosadvanced" != "xno"; then AC_SEARCH_LIBS(GEOSDelaunayTriangulation,geos_c,,AC_MSG_ERROR(['libgeos_c' (>= v.3.4.0) is required but it doesn't seem to be installed on this system.])) AC_DEFINE(GEOS_ADVANCED) fi #----------------------------------------------------------------------- # --enable-lwgeom # AC_ARG_ENABLE(lwgeom, [AS_HELP_STRING( [--enable-lwgeom], [enables LWGEOM support [default=no]])], [], [enable_lwgeom=no]) if test x"$enable_lwgeom" != "xno"; then AC_CHECK_HEADERS(liblwgeom.h,, [AC_MSG_ERROR([cannot find liblwgeom.h, bailing out])]) _save_libs="$LIBS" LIBS=$LIBS' -llwgeom -lgeos_c' AC_LINK_IFELSE([AC_LANG_SOURCE([int main() { return lwgeom_make_valid(); return 0; } void lwgeom_init_allocators(void) { return; } ])], [AC_DEFINE(ENABLE_LWGEOM)], [AC_MSG_ERROR(['liblwgeom' doesn't seem to be installed on this system; unsupported lwgeom_make_valid().])]) LIBS="$_save_libs" LIBS=$LIBS' -llwgeom -lgeos_c' # # testing for PostGIS 2.1 - lwgeom_set_handlers # AC_SEARCH_LIBS(lwgeom_set_handlers,geos_c,AC_DEFINE(POSTGIS_2_1)) fi else AC_DEFINE(OMIT_GEOS) fi #----------------------------------------------------------------------- # --enable-libxml2 # AC_ARG_ENABLE(libxml2, [AS_HELP_STRING( [--enable-libxml2], [enables libxml2 inclusion [default=yes]])], [], [enable_libxml2=yes]) if test x"$enable_libxml2" != "xno"; then PKG_CHECK_MODULES([LIBXML2], [libxml-2.0], , AC_MSG_ERROR(['libxml2' is required but it doesn't seem to be installed on this system.])) AC_SUBST(LIBXML2_CFLAGS) AC_SUBST(LIBXML2_LIBS) AC_DEFINE(ENABLE_LIBXML2) fi #----------------------------------------------------------------------- # --enable-geopackage # AC_ARG_ENABLE(geopackage, [AS_HELP_STRING( [--enable-geopackage], [enables GeoPackage support [default=yes]])], [], [enable_geopackage=yes]) if test x"$enable_geopackage" != "xno"; then AC_DEFINE(ENABLE_GEOPACKAGE) fi AM_CONDITIONAL([ENABLE_GEOPACKAGE], [test x"$enable_geopackage" == "xyes"]) #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-gcov # AC_ARG_ENABLE(gcov, AC_HELP_STRING([--enable-gcov],[turn on code coverage analysis tools])) if test "x$enable_gcov" = "xyes"; then dnl Check for -fprofile-arcs and -ftest-coverage option CFLAGS=$CFLAGS" -fprofile-arcs -ftest-coverage -g" GCOV_FLAGS="-lgcov" fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-examples # AC_ARG_ENABLE(examples, [AS_HELP_STRING( [--enable-examples], [enables building examples [default=yes]])], [], [enable_examples=yes]) AM_CONDITIONAL(ENABLE_EXAMPLES, [test x"$enable_examples" != "xno"]) #----------------------------------------------------------------------- # Checking for MinGW AM_CONDITIONAL([MINGW], [test "$target_alias" = "mingw32"]) # Checking for Mac OsX AM_CONDITIONAL([MACOSX], [test "$target_alias" = "macosx"]) # Checking for Android AM_CONDITIONAL([ANDROID], [test "$target_alias" = "android"]) AC_OUTPUT #----------------------------------------------------------------------- # printing an eventual message reporting about GPL escalation #----------------------------------------------------------------------- gpl_escalation=no; if test x"$enable_lwgeom" != "xno"; then gpl_escalation=yes fi if test x"$enable_gcp" != "xno"; then gpl_escalation=yes fi if test x"$gpl_escalation" != xno; then echo echo echo "==============================================================" echo " IMPORTANT NOTICE" echo "==============================================================" echo "You have selected --enable-lwgeom and/or --enable-gcp" echo echo "Both modules strictly depend on code released under the GPLv2+" echo "license, wich is virally infective by definition." echo "Consequently the copy of libspatialite you are going to build" echo "if configured this way *must* be released under the GPLv2+ license." echo echo "If you wish better preserving the initial MPL tri-license you" echo "simply have to reconfigure by specifying the following options:" echo " --disable-lwgeom --disable-gcp" echo "==============================================================" fi libspatialite-4.3.0a/Doxyfile.in0000664000175000017500000021072212544707704013561 00000000000000# Doxyfile 1.7.3 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" "). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = SpatiaLite # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = @VERSION@ # Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = # With the PROJECT_LOGO tag one can specify an logo or icon that is # included in the documentation. The maximum height of the logo should not # exceed 55 pixels and the maximum width should not exceed 200 pixels. # Doxygen will copy the logo to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful if your file system # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this # tag. The format is ext=language, where ext is a file extension, and language # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also makes the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penalty. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will roughly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespaces are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen # will list include files with double quotes in the documentation # rather than with sharp brackets. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen # will sort the (brief and detailed) documentation of class members so that # constructors and destructors are listed first. If set to NO (the default) # the constructors will appear in the respective orders defined by # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper type resolution of all parameters of a function it will reject a # match between the prototype and the implementation of a member function even if there is only one candidate or it is obvious which candidate to choose by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen # will still accept a match between prototype and implementation in such cases. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or macro consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and macros in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. # This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. The create the layout file # that represents doxygen's defaults, run doxygen with the -l option. # You can optionally specify a file name after the option, if omitted # DoxygenLayout.xml will be used as the name of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # The WARN_NO_PARAMDOC option can be enabled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = src/headers/spatialite.h \ src/headers/spatialite/gaiaaux.h \ src/headers/spatialite/gaiaexif.h \ src/headers/spatialite/gaiageo.h \ src/headers/spatialite/gg_const.h \ src/headers/spatialite/gg_structs.h \ src/headers/spatialite/gg_core.h \ src/headers/spatialite/gg_mbr.h \ src/headers/spatialite/gg_formats.h \ src/headers/spatialite/gg_dynamic.h \ src/headers/spatialite/gg_advanced.h \ src/headers/spatialite/gg_xml.h \ src/headers/spatialite/gg_wfs.h \ src/headers/spatialite/gg_dxf.h \ examples/examples.doxy \ mainpage.doxy # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh # *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py # *.f90 *.f *.for *.vhd *.vhdl FILE_PATTERNS = # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = examples # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. # If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. # Doxygen will compare the file name with each pattern and apply the # filter if there is a match. # The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty or if # non of the patterns match the file name, INPUT_FILTER is applied. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) # and it is also possible to disable source filtering for a specific pattern # using *.ext= (so without naming a filter). This option only has effect when # FILTER_SOURCE_FILES is enabled. FILTER_SOURCE_PATTERNS = #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. # Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. # Doxygen will adjust the colors in the stylesheet and background images # according to this color. Hue is specified as an angle on a colorwheel, # see http://en.wikipedia.org/wiki/Hue for more information. # For instance the value 0 represents red, 60 is yellow, 120 is green, # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. # The allowed range is 0 to 359. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of # the colors in the HTML output. For a value of 0 the output will use # grayscales only. A value of 255 will produce the most vivid colors. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to # the luminance component of the colors in the HTML output. Values below # 100 gradually make the output lighter, whereas values above 100 make # the output darker. The value divided by 100 is the actual gamma applied, # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, # and 100 does not change the gamma. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting # this to NO can help when comparing the output of multiple runs. HTML_TIMESTAMP = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated # that can be used as input for Qt's qhelpgenerator to generate a # Qt Compressed Help (.qch) of the generated HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to # add. For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see # # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's # filter section matches. # # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files # will be generated, which together with the HTML files, form an Eclipse help # plugin. To install this plugin and make it available under the help contents # menu in Eclipse, the contents of the directory containing the HTML and XML # files needs to be copied into the plugins directory of eclipse. The name of # the directory within the plugins directory should be the same as # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before # the help appears. GENERATE_ECLIPSEHELP = NO # A unique identifier for the eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have # this name. ECLIPSE_DOC_ID = org.doxygen.Project # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [0,1..20]) # that doxygen will group on one line in the generated HTML documentation. # Note that a value of 0 will completely suppress the enum values from appearing in the overview section. ENUM_VALUES_PER_LINE = 4 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open # links to external symbols imported via tag files in a separate window. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are # not supported properly for IE 6.0, but are supported on all modern browsers. # Note that when changing this option you need to delete any form_*.png files # in the HTML output before the changes have effect. FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax # (see http://www.mathjax.org) which uses client side Javascript for the # rendering instead of using prerendered bitmaps. Use this if you do not # have LaTeX installed or if you want to formulas look prettier in the HTML # output. When enabled you also need to install MathJax separately and # configure the path to it using the MATHJAX_RELPATH option. USE_MATHJAX = NO # When MathJax is enabled you need to specify the location relative to the # HTML output directory using the MATHJAX_RELPATH option. The destination # directory should contain the MathJax.js script. For instance, if the mathjax # directory is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the mathjax.org site, so you can quickly see the result without installing # MathJax, but it is strongly recommended to install a local copy of MathJax # before deployment. MATHJAX_RELPATH = http://www.mathjax.org/mathjax # When the SEARCHENGINE tag is enabled doxygen will generate a search box # for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets # (GENERATE_DOCSET) there is already a search function so this one should # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client # using Javascript. Doxygen will generate the search PHP script and index # file to put on the web server. The advantage of the server # based approach is that it scales better to large projects and allows # full text search. The disadvantages are that it is more difficult to setup # and does not have live searching capabilities. SERVER_BASED_SEARCH = NO #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. # Note that when enabling USE_PDFLATEX this option is only used for # generating bitmaps for formulas in the HTML output, but not in the # Makefile that is written to the output directory. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4 # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include # source code with syntax highlighting in the LaTeX output. # Note that which sources are shown also depends on other settings # such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. # This is useful # if you want to understand what is going on. # On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition that overrules the definition found in the source code. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all references to function-like macros # that are alone on a line, have an all uppercase name, and do not end with a # semicolon, because these will confuse the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option also works with HAVE_DOT disabled, but it is recommended to # install and use dot, since it yields more powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = YES # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is # allowed to run in parallel. When set to 0 (the default) doxygen will # base this on the number of processors available in the system. You can set it # explicitly to a value larger than 0 to get control over the balance # between CPU load and processing speed. DOT_NUM_THREADS = 0 # By default doxygen will write a font called Helvetica to the output # directory and reference it in all dot files that doxygen generates. # When you want a differently looking font you can specify the font name # using DOT_FONTNAME. You need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = Helvetica # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will generate a graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, svg, gif or svg. # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MSCFILE_DIRS tag can be used to specify one or more directories that # contain msc files that are included in the documentation (see the # \mscfile command). MSCFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = YES # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES libspatialite-4.3.0a/aclocal.m40000664000175000017500000014702312573313634013306 00000000000000# generated automatically by aclocal 1.15 -*- Autoconf -*- # Copyright (C) 1996-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. 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'.])]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # PKG_INSTALLDIR(DIRECTORY) # ------------------------- # Substitutes the variable pkgconfigdir as the location where a module # should install pkg-config .pc files. By default the directory is # $libdir/pkgconfig, but the default can be changed by passing # DIRECTORY. The user can override through the --with-pkgconfigdir # parameter. AC_DEFUN([PKG_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([pkgconfigdir], [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, [with_pkgconfigdir=]pkg_default) AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ]) dnl PKG_INSTALLDIR # PKG_NOARCH_INSTALLDIR(DIRECTORY) # ------------------------- # Substitutes the variable noarch_pkgconfigdir as the location where a # module should install arch-independent pkg-config .pc files. By # default the directory is $datadir/pkgconfig, but the default can be # changed by passing DIRECTORY. The user can override through the # --with-noarch-pkgconfigdir parameter. AC_DEFUN([PKG_NOARCH_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([noarch-pkgconfigdir], [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, [with_noarch_pkgconfigdir=]pkg_default) AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ]) dnl PKG_NOARCH_INSTALLDIR # PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, # [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # ------------------------------------------- # Retrieves the value of the pkg-config variable for the given module. AC_DEFUN([PKG_CHECK_VAR], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl _PKG_CONFIG([$1], [variable="][$3]["], [$2]) AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl ])# PKG_CHECK_VAR # Copyright (C) 2002-2014 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. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.15' 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.15], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_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.15])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-2014 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. # 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/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2014 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. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2014 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. # 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, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # 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. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; 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. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) 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 -*- # Copyright (C) 1999-2014 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. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2014 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. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2014 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. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2014 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. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996-2014 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. # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless 'enable' is passed literally. # For symmetry, 'disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) 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], [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], am_maintainer_other[ make rules and dependencies not useful (and sometimes confusing) to the casual installer])], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2014 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. # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2014 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. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # -*- Autoconf -*- # Obsolete and "removed" macros, that must however still report explicit # error messages when used, to smooth transition. # # Copyright (C) 1996-2014 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. AC_DEFUN([AM_CONFIG_HEADER], [AC_DIAGNOSE([obsolete], ['$0': this macro is obsolete. You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl AC_CONFIG_HEADERS($@)]) AC_DEFUN([AM_PROG_CC_STDC], [AC_PROG_CC am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc AC_DIAGNOSE([obsolete], ['$0': this macro is obsolete. You should simply use the 'AC][_PROG_CC' macro instead. Also, your code should no longer depend upon 'am_cv_prog_cc_stdc', but upon 'ac_cv_prog_cc_stdc'.])]) AC_DEFUN([AM_C_PROTOTYPES], [AC_FATAL([automatic de-ANSI-fication support has been removed])]) AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2014 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. # _AM_MANGLE_OPTION(NAME) # ----------------------- 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)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999-2014 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. # _AM_PROG_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2001-2014 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. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2014 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. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2014 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. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2014 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. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2014 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. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. 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-2014 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. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_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}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) libspatialite-4.3.0a/missing0000775000175000017500000002623312544707704013047 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: libspatialite-4.3.0a/AUTHORS0000664000175000017500000000065312544707704012516 00000000000000Original Author: Alessandro Furieri Contributors: Klaus Foerster Luigi Costalli Ahmadou Dicko Brad Hards Pepijn Van Eeckhoudt The Vanuatu Team - University of Toronto - Supervisor: Greg Wilson [you can find the complete team composition in gg_wkt.c] libspatialite-4.3.0a/INSTALL0000664000175000017500000001723012544707704012476 00000000000000Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. libspatialite-4.3.0a/test/0000775000175000017500000000000012573314332012472 500000000000000libspatialite-4.3.0a/test/shapetest1.dbf0000664000175000017500000000030712544707704015157 00000000000000_a3Wtestcase1C(testcase2N windward 2 orde lees 20libspatialite-4.3.0a/test/check_gpkgInsertEpsgSRID.c0000664000175000017500000001651412544707704017347 00000000000000/* check_gpkgInsertEpsgSRID.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; #ifndef OMIT_EPSG /* only if full EPSG support is enabled */ char *sql_statement; sqlite3_stmt *stmt; #endif void *cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_gpkgInsertEpsgSRID.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -100; } #ifndef OMIT_EPSG /* only if full EPSG support is enabled */ ret = sqlite3_exec (db_handle, "SELECT gpkgInsertEpsgSRID(3857)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgInsertEpsgSRID() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -101; } /* check insert is OK */ sql_statement = "SELECT srs_name, organization, organization_coordsys_id FROM gpkg_spatial_ref_sys WHERE srs_id=3857"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "failed to prepare SELECT ... FROM gpkg_spatial_ref_sys: %i (%s)\n", ret, sqlite3_errmsg (db_handle)); return -102; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf (stderr, "unexpected return value for first step: %i (%s)\n", ret, sqlite3_errmsg (db_handle)); return -103; } if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) { fprintf (stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -104; } if (strcasecmp ((const char *) sqlite3_column_text (stmt, 0), "WGS 84 / Pseudo-Mercator") != 0) { fprintf (stderr, "wrong srs_name: %s\n", sqlite3_column_text (stmt, 0)); return -105; } if (sqlite3_column_type (stmt, 1) != SQLITE_TEXT) { fprintf (stderr, "bad type for column 1: %i\n", sqlite3_column_type (stmt, 1)); return -106; } if (strcasecmp ((const char *) sqlite3_column_text (stmt, 1), "epsg") != 0) { fprintf (stderr, "wrong organization: %s\n", sqlite3_column_text (stmt, 1)); return -107; } if (sqlite3_column_type (stmt, 2) != SQLITE_INTEGER) { fprintf (stderr, "bad type for column 2: %i\n", sqlite3_column_type (stmt, 2)); return -108; } if (sqlite3_column_int (stmt, 2) != 3857) { fprintf (stderr, "wrong organization coordinate system ID: %i\n", sqlite3_column_int (stmt, 2)); return -109; } ret = sqlite3_step (stmt); if (ret != SQLITE_DONE) { fprintf (stderr, "unexpected return value for second step: %i\n", ret); return -129; } ret = sqlite3_finalize (stmt); sqlite3_free (err_msg); /* try no WKT, something of a hack here */ ret = sqlite3_exec (db_handle, "SELECT gpkgInsertEpsgSRID(40001)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgInsertEpsgSRID(40001) result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -130; } #endif /* try some bad arguments */ ret = sqlite3_exec (db_handle, "SELECT gpkgInsertEpsgSRID(34.4)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for insert value, non-integer id, got %i\n", ret); sqlite3_free (err_msg); return -200; } if (strcmp (err_msg, "gpkgInsertEpsgSRID() error: argument 1 [srid] is not of the integer type") != 0) { fprintf (stderr, "Unexpected error message for gpkgInsertEpsgSRID arg 1 bad type: %s\n", err_msg); sqlite3_free (err_msg); return -201; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgInsertEpsgSRID(9999999)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for insert value, invalid id, got %i\n", ret); sqlite3_free (err_msg); return -202; } if (strcmp (err_msg, "gpkgInsertEpsgSRID() error: srid is not defined in the EPSG inlined dataset") != 0) { fprintf (stderr, "Unexpected error message for gpkgInsertEpsgSRID arg 1 bad value: %s\n", err_msg); sqlite3_free (err_msg); return -203; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgInsertEpsgSRID(3857)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for insert value, duplicate entry, got %i\n", ret); sqlite3_free (err_msg); return -204; } sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -400; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_dxf.c0000664000175000017500000010467212544707704014515 00000000000000/* check_dxf.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gg_dxf.h" #ifndef OMIT_GEOS /* only if GEOS is enabled */ static int check_22_auto (int cache_mode) { /* testing 22.dxf - pass #1 autoDims */ int ret; sqlite3 *handle; char *err_msg = NULL; gaiaDxfParserPtr dxf; void *cache = NULL; if (cache_mode) cache = spatialite_alloc_connection (); else spatialite_init (0); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } if (cache_mode) spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } dxf = gaiaCreateDxfParser (-2, GAIA_DXF_AUTO_2D_3D, NULL, NULL, GAIA_DXF_RING_NONE); if (dxf == NULL) { fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"22.dx\" auto)\n"); return -3; } if (cache_mode) ret = gaiaParseDxfFile_r (cache, dxf, "./22.dxf"); else ret = gaiaParseDxfFile (dxf, "./22.dxf"); if (ret == 0) { fprintf (stderr, "Unable to parse \"22.dxf\" byLayers auto\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); if (ret == 0) { fprintf (stderr, "Unable to load \"22.dxf\" auto byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"22.dxf\" auto append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); if (ret == 0) { fprintf (stderr, "Unable to load \"22.dxf\" auto mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"22.dxf\" auto append mixed\n"); return -8; } gaiaDestroyDxfParser (dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } if (cache_mode) spatialite_cleanup_ex (cache); else spatialite_cleanup (); return 0; } static int check_22_2d (int cache_mode) { /* testing 22.dxf - pass #2 force 2D */ int ret; sqlite3 *handle; char *err_msg = NULL; gaiaDxfParserPtr dxf; void *cache = NULL; if (cache_mode) cache = spatialite_alloc_connection (); else spatialite_init (0); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } if (cache_mode) spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } dxf = gaiaCreateDxfParser (3003, GAIA_DXF_FORCE_2D, "abdc_", NULL, GAIA_DXF_RING_NONE); if (dxf == NULL) { fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"22.dx\" 2D)\n"); return -3; } if (cache_mode) ret = gaiaParseDxfFile_r (cache, dxf, "./22.dxf"); else ret = gaiaParseDxfFile (dxf, "./22.dxf"); if (ret == 0) { fprintf (stderr, "Unable to parse \"22.dxf\" byLayers 2D\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); if (ret == 0) { fprintf (stderr, "Unable to load \"22.dxf\" 2D byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"22.dxf\" 2D append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); if (ret == 0) { fprintf (stderr, "Unable to load \"22.dxf\" 2D mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"22.dxf\" 2D append mixed\n"); return -8; } gaiaDestroyDxfParser (dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } if (cache_mode) spatialite_cleanup_ex (cache); else spatialite_cleanup (); return 0; } static int check_22_3d (int cache_mode) { /* testing 22.dxf - pass #3 force 3D */ int ret; sqlite3 *handle; char *err_msg = NULL; gaiaDxfParserPtr dxf; void *cache = NULL; if (cache_mode) cache = spatialite_alloc_connection (); else spatialite_init (0); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } if (cache_mode) spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } dxf = gaiaCreateDxfParser (3003, GAIA_DXF_FORCE_3D, "abdc_", NULL, GAIA_DXF_RING_NONE); if (dxf == NULL) { fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"22.dx\" 3D)\n"); return -3; } if (cache_mode) ret = gaiaParseDxfFile_r (cache, dxf, "./22.dxf"); else ret = gaiaParseDxfFile (dxf, "./22.dxf"); if (ret == 0) { fprintf (stderr, "Unable to parse \"22.dxf\" byLayers 3D\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); if (ret == 0) { fprintf (stderr, "Unable to load \"22.dxf\" 3D byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"22.dxf\" 3D append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); if (ret == 0) { fprintf (stderr, "Unable to load \"22.dxf\" 3D mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"22.dxf\" 3D append mixed\n"); return -8; } gaiaDestroyDxfParser (dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } if (cache_mode) spatialite_cleanup_ex (cache); else spatialite_cleanup (); return 0; } static int check_22_single (int cache_mode) { /* testing 22.dxf - pass #4 single layer */ int ret; sqlite3 *handle; char *err_msg = NULL; gaiaDxfParserPtr dxf; void *cache = NULL; if (cache_mode) cache = spatialite_alloc_connection (); else spatialite_init (0); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } if (cache_mode) spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } dxf = gaiaCreateDxfParser (-2, GAIA_DXF_AUTO_2D_3D, NULL, "VUOVIA", GAIA_DXF_RING_NONE); if (dxf == NULL) { fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"22.dx\" single)\n"); return -3; } if (cache_mode) ret = gaiaParseDxfFile_r (cache, dxf, "./22.dxf"); else ret = gaiaParseDxfFile (dxf, "./22.dxf"); if (ret == 0) { fprintf (stderr, "Unable to parse \"22.dxf\" byLayers single\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); if (ret == 0) { fprintf (stderr, "Unable to load \"22.dxf\" single byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"22.dxf\" single append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); if (ret == 0) { fprintf (stderr, "Unable to load \"22.dxf\" single mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"22.dxf\" single append mixed\n"); return -8; } gaiaDestroyDxfParser (dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } if (cache_mode) spatialite_cleanup_ex (cache); else spatialite_cleanup (); return 0; } static int check_merano (int cache_mode) { /* testing f06.dxf / l02.dxf / p02.dxf [merano samples] */ int ret; sqlite3 *handle; char *err_msg = NULL; gaiaDxfParserPtr dxf; void *cache = NULL; if (cache_mode) cache = spatialite_alloc_connection (); else spatialite_init (0); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } if (cache_mode) spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } dxf = gaiaCreateDxfParser (25832, GAIA_DXF_AUTO_2D_3D, NULL, NULL, GAIA_DXF_RING_UNLINKED); if (dxf == NULL) { fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"f06.dx\")\n"); return -3; } if (cache_mode) ret = gaiaParseDxfFile_r (cache, dxf, "./f06.dxf"); else ret = gaiaParseDxfFile (dxf, "./f06.dxf"); if (ret == 0) { fprintf (stderr, "Unable to parse \"f06.dxf\" byLayer\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"f06.dxf\" byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"f06.dxf\" append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"f06.dxf\" mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"f06.dxf\" append mixed\n"); return -8; } gaiaDestroyDxfParser (dxf); dxf = gaiaCreateDxfParser (25832, GAIA_DXF_AUTO_2D_3D, NULL, NULL, GAIA_DXF_RING_NONE); if (dxf == NULL) { fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"l02.dx\")\n"); return -9; } if (cache_mode) ret = gaiaParseDxfFile_r (cache, dxf, "./l02.dxf"); else ret = gaiaParseDxfFile (dxf, "./l02.dxf"); if (ret == 0) { fprintf (stderr, "Unable to parse \"l02.dxf\" byLayer\n"); return -10; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"l02.dxf\" byLayer\n"); return -11; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"l02.dxf\" append byLayer\n"); return -12; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"l02.dxf\" append mixed\n"); return -13; } gaiaDestroyDxfParser (dxf); dxf = gaiaCreateDxfParser (25832, GAIA_DXF_AUTO_2D_3D, NULL, NULL, GAIA_DXF_RING_UNLINKED); if (dxf == NULL) { fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"f06.dx\")\n"); return -14; } if (cache_mode) ret = gaiaParseDxfFile_r (cache, dxf, "./p05.dxf"); else ret = gaiaParseDxfFile (dxf, "./p05.dxf"); if (ret == 0) { fprintf (stderr, "Unable to parse \"p05.dxf\" byLayer\n"); return -15; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"p05.dxf\" byLayer\n"); return -16; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"p05.dxf\" append byLayer\n"); return -17; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"p05.dxf\" mixed\n"); return -18; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"p05.dxf\" append mixed\n"); return -19; } gaiaDestroyDxfParser (dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -20; } if (cache_mode) spatialite_cleanup_ex (cache); else spatialite_cleanup (); return 0; } static int check_archaic (int cache_mode) { /* testing archaic.dxf */ int ret; sqlite3 *handle; char *err_msg = NULL; gaiaDxfParserPtr dxf; void *cache = NULL; if (cache_mode) cache = spatialite_alloc_connection (); else spatialite_init (0); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } if (cache_mode) spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, NULL, NULL, GAIA_DXF_RING_NONE); if (dxf == NULL) { fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"archaic.dx\" auto)\n"); return -3; } if (cache_mode) ret = gaiaParseDxfFile_r (cache, dxf, "./archaic.dxf"); else ret = gaiaParseDxfFile (dxf, "./archaic.dxf"); if (ret == 0) { fprintf (stderr, "Unable to parse \"archaic.dxf\" byLayers auto\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); if (ret == 0) { fprintf (stderr, "Unable to load \"archaic.dxf\" auto byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"archaic.dxf\" auto append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); if (ret == 0) { fprintf (stderr, "Unable to load \"archaic.dxf\" auto mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"archaic.dxf\" auto append mixed\n"); return -8; } gaiaDestroyDxfParser (dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } if (cache_mode) spatialite_cleanup_ex (cache); else spatialite_cleanup (); return 0; } static int check_linked (int cache_mode) { /* testing linked.dxf */ int ret; sqlite3 *handle; char *err_msg = NULL; gaiaDxfParserPtr dxf; void *cache = NULL; if (cache_mode) cache = spatialite_alloc_connection (); else spatialite_init (0); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } if (cache_mode) spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, GAIA_DXF_RING_LINKED); if (dxf == NULL) { fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"linked.dx\" auto)\n"); return -3; } if (cache_mode) ret = gaiaParseDxfFile_r (cache, dxf, "./linked.dxf"); else ret = gaiaParseDxfFile (dxf, "./linked.dxf"); if (ret == 0) { fprintf (stderr, "Unable to parse \"linked.dxf\" byLayers auto\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); if (ret == 0) { fprintf (stderr, "Unable to load \"linked.dxf\" auto byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"linked.dxf\" auto append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); if (ret == 0) { fprintf (stderr, "Unable to load \"linked.dxf\" auto mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"linked.dxf\" auto append mixed\n"); return -8; } gaiaDestroyDxfParser (dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } if (cache_mode) spatialite_cleanup_ex (cache); else spatialite_cleanup (); return 0; } static int check_linked_legacy (int cache_mode) { /* testing linked.dxf - legacy DB */ int ret; sqlite3 *handle; gaiaDxfParserPtr dxf; void *cache = NULL; if (cache_mode) cache = spatialite_alloc_connection (); else spatialite_init (0); ret = system ("cp test-legacy-3.0.1.sqlite copy-dxf-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot copy legacy v.3.0.1 database\n"); return -1; } ret = sqlite3_open_v2 ("copy-dxf-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -2; } if (cache_mode) spatialite_init_ex (handle, cache, 0); dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, GAIA_DXF_RING_LINKED); if (dxf == NULL) { fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"linked.dx\" auto)\n"); return -3; } if (cache_mode) ret = gaiaParseDxfFile_r (cache, dxf, "./linked.dxf"); else ret = gaiaParseDxfFile (dxf, "./linked.dxf"); if (ret == 0) { fprintf (stderr, "Unable to parse \"linked.dxf\" byLayers auto legacy\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); if (ret == 0) { fprintf (stderr, "Unable to load \"linked.dxf\" auto byLayer legacy\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"linked.dxf\" auto append byLayer legacy\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); if (ret == 0) { fprintf (stderr, "Unable to load \"linked.dxf\" auto mixed legacy\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"linked.dxf\" auto append mixed legacy\n"); return -8; } gaiaDestroyDxfParser (dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } if (cache_mode) spatialite_cleanup_ex (cache); else spatialite_cleanup (); ret = unlink ("copy-dxf-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot remove legacy v.3.0.1 database\n"); return -10; } return 0; } static int check_hatch (int cache_mode) { /* testing hatch.dxf */ int ret; sqlite3 *handle; char *err_msg = NULL; gaiaDxfParserPtr dxf; void *cache = NULL; if (cache_mode) cache = spatialite_alloc_connection (); else spatialite_init (0); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } if (cache_mode) spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, GAIA_DXF_RING_LINKED); if (dxf == NULL) { fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"hatch.dx\" auto)\n"); return -3; } if (cache_mode) ret = gaiaParseDxfFile_r (cache, dxf, "./hatch.dxf"); else ret = gaiaParseDxfFile (dxf, "./hatch.dxf"); if (ret == 0) { fprintf (stderr, "Unable to parse \"hatch.dxf\" byLayers auto\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); if (ret == 0) { fprintf (stderr, "Unable to load \"hatch.dxf\" auto byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"hatch.dxf\" auto append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); if (ret == 0) { fprintf (stderr, "Unable to load \"hatch.dxf\" auto mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"hatch.dxf\" auto append mixed\n"); return -8; } gaiaDestroyDxfParser (dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } if (cache_mode) spatialite_cleanup_ex (cache); else spatialite_cleanup (); return 0; } static int check_hatch_legacy (int cache_mode) { /* testing hatch.dxf - legacy DB */ int ret; sqlite3 *handle; gaiaDxfParserPtr dxf; void *cache = NULL; if (cache_mode) cache = spatialite_alloc_connection (); else spatialite_init (0); ret = system ("cp test-legacy-3.0.1.sqlite copy-dxf-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot copy legacy v.3.0.1 database\n"); return -1; } ret = sqlite3_open_v2 ("copy-dxf-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -2; } if (cache_mode) spatialite_init_ex (handle, cache, 0); dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, GAIA_DXF_RING_LINKED); if (dxf == NULL) { fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"hatch.dx\" auto)\n"); return -3; } if (cache_mode) ret = gaiaParseDxfFile_r (cache, dxf, "./hatch.dxf"); else ret = gaiaParseDxfFile (dxf, "./hatch.dxf"); if (ret == 0) { fprintf (stderr, "Unable to parse \"hatch.dxf\" byLayers auto\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 0); if (ret == 0) { fprintf (stderr, "Unable to load \"hatch.dxf\" auto byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"hatch.dxf\" auto append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 0); if (ret == 0) { fprintf (stderr, "Unable to load \"hatch.dxf\" auto mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"hatch.dxf\" auto append mixed\n"); return -8; } gaiaDestroyDxfParser (dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } if (cache_mode) spatialite_cleanup_ex (cache); else spatialite_cleanup (); ret = unlink ("copy-dxf-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot remove legacy v.3.0.1 database\n"); return -10; } return 0; } static int check_symbol (int cache_mode) { /* testing symbol.dxf */ int ret; sqlite3 *handle; char *err_msg = NULL; gaiaDxfParserPtr dxf; void *cache = NULL; if (cache_mode) cache = spatialite_alloc_connection (); else spatialite_init (0); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } if (cache_mode) spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, GAIA_DXF_RING_LINKED); if (dxf == NULL) { fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"symbol.dx\" auto)\n"); return -3; } if (cache_mode) ret = gaiaParseDxfFile_r (cache, dxf, "./symbol.dxf"); else ret = gaiaParseDxfFile (dxf, "./symbol.dxf"); if (ret == 0) { fprintf (stderr, "Unable to parse \"symbol.dxf\" byLayers auto\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"symbol.dxf\" auto byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"symbol.dxf\" auto append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"symbol.dxf\" auto mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"symbol.dxf\" auto append mixed\n"); return -8; } gaiaDestroyDxfParser (dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } if (cache_mode) spatialite_cleanup_ex (cache); else spatialite_cleanup (); return 0; } static int check_symbol_legacy (int cache_mode) { /* testing symbol.dxf - legacy DB */ int ret; sqlite3 *handle; gaiaDxfParserPtr dxf; void *cache = NULL; if (cache_mode) cache = spatialite_alloc_connection (); else spatialite_init (0); ret = system ("cp test-legacy-3.0.1.sqlite copy-dxf-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot copy legacy v.3.0.1 database\n"); return -1; } ret = sqlite3_open_v2 ("copy-dxf-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -2; } if (cache_mode) spatialite_init_ex (handle, cache, 0); dxf = gaiaCreateDxfParser (3003, GAIA_DXF_AUTO_2D_3D, "lnk_", NULL, GAIA_DXF_RING_LINKED); if (dxf == NULL) { fprintf (stderr, "CREATE DXF PARSER: unexpected NULL \"symbol.dx\" auto)\n"); return -3; } if (cache_mode) ret = gaiaParseDxfFile_r (cache, dxf, "./symbol.dxf"); else ret = gaiaParseDxfFile (dxf, "./symbol.dxf"); if (ret == 0) { fprintf (stderr, "Unable to parse \"symbol.dxf\" byLayers auto\n"); return -4; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"symbol.dxf\" auto byLayer\n"); return -5; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_BY_LAYER, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"symbol.dxf\" auto append byLayer\n"); return -6; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"symbol.dxf\" auto mixed\n"); return -7; } ret = gaiaLoadFromDxfParser (handle, dxf, GAIA_DXF_IMPORT_MIXED, 1); if (ret == 0) { fprintf (stderr, "Unable to load \"symbol.dxf\" auto append mixed\n"); return -8; } gaiaDestroyDxfParser (dxf); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } if (cache_mode) spatialite_cleanup_ex (cache); else spatialite_cleanup (); ret = unlink ("copy-dxf-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot remove legacy v.3.0.1 database\n"); return -10; } return 0; } #endif /* GEOS enabled */ int main (int argc, char *argv[]) { int cache_mode; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ #ifndef OMIT_GEOS /* only if GEOS is enabled */ for (cache_mode = 0; cache_mode <= 1; cache_mode++) { fprintf (stderr, "\n******* Testing DXF in %s cache-mode\n\n", cache_mode ? "current" : "legacy"); if (check_22_auto (cache_mode) != 0) return -1; if (check_22_2d (cache_mode) != 0) return -2; if (check_22_3d (cache_mode) != 0) return -3; if (check_22_single (cache_mode) != 0) return 4; if (check_merano (cache_mode) != 0) return -5; if (check_archaic (cache_mode) != 0) return -6; if (check_linked (cache_mode) != 0) return -7; if (check_linked_legacy (cache_mode) != 0) return -8; if (check_hatch (cache_mode) != 0) return -9; if (check_hatch_legacy (cache_mode) != 0) return -10; if (check_symbol (cache_mode) != 0) return -11; if (check_symbol_legacy (cache_mode) != 0) return -12; } #endif /* GEOS enabled */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_dbf_load.c0000664000175000017500000000657112544707704015465 00000000000000/* check_dbf_load.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; int row_count; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory databse: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } ret = load_dbf (handle, "./shapetest1.dbf", "test1", "UTF-8", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_dbf() error: %s\n", err_msg); sqlite3_close (handle); return -3; } if (row_count != 2) { fprintf (stderr, "unexpected row count for load_dbf: %i\n", row_count); sqlite3_close (handle); return -4; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -5; } spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/books-bad.xml0000664000175000017500000000135212544707704015005 00000000000000 The Pickwick PapersOliver TwistDavid Copperfield A Christmas CarolHard Times The Scarlet Letter Vanity Fair The Luck of Barry Lyndon Lord JimThe Secret AgentHeart of Darkness libspatialite-4.3.0a/test/check_gaia_util.c0000664000175000017500000003140712544707704015665 00000000000000/* check_gaia_util.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiaaux.h" #ifdef _WIN32 #include "asprintf4win.h" #endif int main (int argc, char *argv[]) { int result; char *test_str1; char *quoted_str; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ result = gaiaIsReservedSqliteName ("AUTOINCREMENT"); if (!result) { fprintf (stderr, "gaiaIsReservedSqliteName() fail for AUTOINCREMENT: %i\n", result); return -1; } result = gaiaIsReservedSqliteName ("AUTOINCREMEN"); if (result) { fprintf (stderr, "gaiaIsReservedSqliteName() fail for AUTOINCREMEN: %i\n", result); return -2; } result = gaiaIsReservedSqliteName ("AUTOINCREMENTED"); if (result) { fprintf (stderr, "gaiaIsReservedSqliteName() fail for AUTOINCREMENT: %i\n", result); return -3; } result = gaiaIsReservedSqliteName ("foo"); if (result) { fprintf (stderr, "gaiaIsReservedSqliteName() fail for foo: %i\n", result); return -4; } result = gaiaIsReservedSqliteName ("ALL"); /* first item */ if (!result) { fprintf (stderr, "gaiaIsReservedSqliteName() fail for ALL: %i\n", result); return -5; } result = gaiaIsReservedSqliteName ("WHERE"); /* last item */ if (!result) { fprintf (stderr, "gaiaIsReservedSqliteName() fail for WHERE: %i\n", result); return -6; } result = gaiaIsReservedSqliteName ("autoincrement"); if (!result) { fprintf (stderr, "gaiaIsReservedSqliteName() fail for autoincrement: %i\n", result); return -7; } result = gaiaIsReservedSqlName ("SELECT"); if (!result) { fprintf (stderr, "gaiaIsReservedSqlName() fail for SELECT: %i\n", result); return -8; } result = gaiaIsReservedSqlName ("select"); if (!result) { fprintf (stderr, "gaiaIsReservedSqlName() fail for select: %i\n", result); return -9; } result = gaiaIsReservedSqlName ("foo"); if (result) { fprintf (stderr, "gaiaIsReservedSqlName() fail for foo: %i\n", result); return -10; } result = gaiaIsReservedSqlName ("ABSOLUTE"); if (!result) { fprintf (stderr, "gaiaIsReservedSqlName() fail for ABSOLUTE: %i\n", result); return -11; } result = gaiaIsReservedSqlName ("ZONE"); if (!result) { fprintf (stderr, "gaiaIsReservedSqlName() fail for ZONE: %i\n", result); return -12; } result = gaiaIsReservedSqlName ("SELECTED"); if (result) { fprintf (stderr, "gaiaIsReservedSqlName() fail for SELECTED: %i\n", result); return -13; } result = gaiaIsReservedSqlName ("SELEC"); if (result) { fprintf (stderr, "gaiaIsReservedSqlName() fail for SELEC: %i\n", result); return -14; } result = gaiaIllegalSqlName (NULL); if (!result) { fprintf (stderr, "gaiaIllegalSqlName() fail for (NULL): %i\n", result); return -15; } result = gaiaIllegalSqlName ("a"); if (result) { fprintf (stderr, "gaiaIllegalSqlName() fail for a: %i\n", result); return -16; } result = gaiaIllegalSqlName ("-"); if (!result) { fprintf (stderr, "gaiaIllegalSqlName() fail for -: %i\n", result); return -17; } result = gaiaIllegalSqlName ("AbbcdE0187r"); if (result) { fprintf (stderr, "gaiaIllegalSqlName() fail for AbbcdE0187r: %i\n", result); return -18; } result = gaiaIllegalSqlName ("AbbcdE0187+"); if (!result) { fprintf (stderr, "gaiaIllegalSqlName() fail for AbbcdE0187r+: %i\n", result); return -19; } result = gaiaIllegalSqlName (""); if (!result) { fprintf (stderr, "gaiaIllegalSqlName() fail for (empty): %i\n", result); return -20; } result = gaiaIllegalSqlName ("_ABCedFg"); if (!result) { fprintf (stderr, "gaiaIllegalSqlName() fail for (empty): %i\n", result); return -21; } asprintf (&test_str1, "SELECT %s from %s;", "Foo", "Bar"); gaiaCleanSqlString (test_str1); if (strcmp (test_str1, "SELECT Foo from Bar;") != 0) { fprintf (stderr, "gaiaCleanSqlString failure: %s\n", test_str1); free (test_str1); return -22; } free (test_str1); asprintf (&test_str1, "SELECT %s from %s; ", "Foo", "Bar"); gaiaCleanSqlString (test_str1); if (strcmp (test_str1, "SELECT Foo from Bar;") != 0) { fprintf (stderr, "gaiaCleanSqlString failure: %s\n", test_str1); free (test_str1); return -23; } free (test_str1); asprintf (&test_str1, "SELECT %s from %s; ", "Foo", "'"); gaiaCleanSqlString (test_str1); if (strcmp (test_str1, "SELECT Foo from '';") != 0) { fprintf (stderr, "gaiaCleanSqlString failure: %s\n", test_str1); free (test_str1); return -24; } free (test_str1); #if 0 /* TODO: This will cause a buffer overflow */ asprintf (&test_str1, "SELECT %s from %s;", "Foo", "'"); gaiaCleanSqlString (test_str1); if (strcmp (test_str1, "SELECT Foo from '';") != 0) { fprintf (stderr, "gaiaCleanSqlString failure: %s\n", test_str1); free (test_str1); return -25; } free (test_str1); #endif asprintf (&test_str1, " "); gaiaCleanSqlString (test_str1); if (strcmp (test_str1, "") != 0) { fprintf (stderr, "gaiaCleanSqlString failure: %s\n", test_str1); free (test_str1); return -26; } free (test_str1); asprintf (&test_str1, "SELECT %s from %s;", "Foo", "Bar"); quoted_str = gaiaSingleQuotedSql (test_str1); if (strcmp (quoted_str, "SELECT Foo from Bar;") != 0) { fprintf (stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); free (test_str1); free (quoted_str); return -27; } free (test_str1); free (quoted_str); asprintf (&test_str1, "SELECT %s from %s; ", "Foo", "Bar"); quoted_str = gaiaSingleQuotedSql (test_str1); if (strcmp (quoted_str, "SELECT Foo from Bar;") != 0) { fprintf (stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); free (test_str1); free (quoted_str); return -28; } free (test_str1); free (quoted_str); asprintf (&test_str1, "SELECT %s from %s;", "Foo", "'"); quoted_str = gaiaSingleQuotedSql (test_str1); if (strcmp (quoted_str, "SELECT Foo from '';") != 0) { fprintf (stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); free (test_str1); free (quoted_str); return -29; } free (test_str1); free (quoted_str); asprintf (&test_str1, "SELECT %s from %s ; ", "Foo", "Bar"); quoted_str = gaiaSingleQuotedSql (test_str1); if (strcmp (quoted_str, "SELECT Foo from Bar ;") != 0) { fprintf (stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); free (test_str1); free (quoted_str); return -30; } free (test_str1); free (quoted_str); asprintf (&test_str1, "SELECT %s from %s;", "'", "Bar"); quoted_str = gaiaSingleQuotedSql (test_str1); if (strcmp (quoted_str, "SELECT '' from Bar;") != 0) { fprintf (stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); free (test_str1); free (quoted_str); return -31; } free (test_str1); free (quoted_str); asprintf (&test_str1, "My Name"); quoted_str = gaiaDoubleQuotedSql (test_str1); if (strcmp (quoted_str, "My Name") != 0) { fprintf (stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); free (test_str1); free (quoted_str); return -32; } free (test_str1); free (quoted_str); quoted_str = gaiaDoubleQuotedSql (NULL); if (quoted_str != NULL) { fprintf (stderr, "gaiaDoubleQuotedSql NULL failure: %s\n", quoted_str); free (quoted_str); return -33; } quoted_str = gaiaSingleQuotedSql (NULL); if (quoted_str != NULL) { fprintf (stderr, "gaiaSingleQuotedSql NULL failure: %s\n", quoted_str); free (quoted_str); return -34; } quoted_str = gaiaQuotedSql ("foo", GAIA_SQL_SINGLE_QUOTE); if (strcmp (quoted_str, "foo") != 0) { fprintf (stderr, "gaiaQuotedSql failure SINGLE_QUOTE: %s\n", quoted_str); free (quoted_str); return -35; } free (quoted_str); quoted_str = gaiaQuotedSql ("foo", GAIA_SQL_DOUBLE_QUOTE); if (strcmp (quoted_str, "foo") != 0) { fprintf (stderr, "gaiaQuotedSql failure DOUBLE_QUOTE: %s\n", quoted_str); free (quoted_str); return -36; } free (quoted_str); quoted_str = gaiaQuotedSql ("foo", 1000); if (quoted_str != NULL) { fprintf (stderr, "gaiaQuotedSql failure 1000: %s\n", quoted_str); free (quoted_str); return -37; } asprintf (&test_str1, "My \"Name"); quoted_str = gaiaDoubleQuotedSql (test_str1); if (strcmp (quoted_str, "My \"\"Name") != 0) { fprintf (stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); free (test_str1); free (quoted_str); return -38; } free (test_str1); free (quoted_str); asprintf (&test_str1, "My \"Name "); quoted_str = gaiaDoubleQuotedSql (test_str1); if (strcmp (quoted_str, "My \"\"Name") != 0) { fprintf (stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); free (test_str1); free (quoted_str); return -39; } free (test_str1); free (quoted_str); asprintf (&test_str1, "%s", ""); quoted_str = gaiaDoubleQuotedSql (test_str1); if (strcmp (quoted_str, "") != 0) { fprintf (stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); free (test_str1); free (quoted_str); return -40; } free (test_str1); free (quoted_str); asprintf (&test_str1, " "); quoted_str = gaiaDoubleQuotedSql (test_str1); if (strcmp (quoted_str, "") != 0) { fprintf (stderr, "gaiaDoubleQuotedSql failure: |%s|\n", quoted_str); free (test_str1); free (quoted_str); return -41; } free (test_str1); free (quoted_str); asprintf (&test_str1, "' "); quoted_str = gaiaDoubleQuotedSql (test_str1); if (strcmp (quoted_str, "'") != 0) { fprintf (stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); free (test_str1); free (quoted_str); return -42; } free (test_str1); free (quoted_str); asprintf (&test_str1, "'"); quoted_str = gaiaDoubleQuotedSql (test_str1); if (strcmp (quoted_str, "'") != 0) { fprintf (stderr, "gaiaDoubleQuotedSql failure: %s\n", quoted_str); free (test_str1); free (quoted_str); return -43; } free (test_str1); free (quoted_str); asprintf (&test_str1, "\""); quoted_str = gaiaSingleQuotedSql (test_str1); if (strcmp (quoted_str, "\"") != 0) { fprintf (stderr, "gaiaSingleQuotedSql failure: %s\n", quoted_str); free (test_str1); free (quoted_str); return -44; } free (test_str1); free (quoted_str); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/stazioni_se.xml0000664000175000017500000000126612544707704015477 00000000000000 Railway Stations Railway Stations - blue star a simple SE Point Symbolizer star #0000ff 4.0 libspatialite-4.3.0a/test/check_get_normal_row_bad_geopackage.c0000664000175000017500000001251012544707704021713 00000000000000/* check_get_normal_row_bad_geopackage.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011, 2014 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_get_normal_row_bad_geopackage.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* create a corrupt tile_matrix_metadata table (not spec compliant) */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS gpkg_tile_matrix", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP gpkg_tile_matrix error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "CREATE TABLE gpkg_tile_matrix (table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height TEXT NOT NULL)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE gpkg_tile_matrix error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } ret = sqlite3_exec (db_handle, "INSERT INTO gpkg_tile_matrix VALUES (\"test1_matrix_tiles\", 0, 0, \"foo\")", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT tile_matrix_metadata zoom 0 error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } ret = sqlite3_exec (db_handle, "INSERT INTO gpkg_tile_matrix VALUES (\"test1_matrix_tiles\", 1, 0, \"4000000000\")", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT tile_matrix_metadata zoom 1 error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 0, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for broken geopackage, got %i\n", ret); sqlite3_free (err_msg); return -9; } if (strcmp (err_msg, "gpkgGetNormalRow: could not parse result (corrupt GeoPackage?)") != 0) { fprintf (stderr, "Unexpected error message for broken geopackage: %s\n", err_msg); sqlite3_free (err_msg); return -10; } sqlite3_free (err_msg); ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 1, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for broken geopackage zoom1, got %i\n", ret); sqlite3_free (err_msg); return -11; } if (strcmp (err_msg, "gpkgGetNormalRow: could not parse result (corrupt GeoPackage?)") != 0) { fprintf (stderr, "Unexpected error message for broken geopackage zoom1: %s\n", err_msg); sqlite3_free (err_msg); return -12; } sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.3.0a/test/l02.dxf0000664000175000017500000000471512544707704013530 00000000000000 0 SECTION 2 HEADER 9 $EXTMIN 10 663372.601 20 5165208.705 30 0.000 9 $EXTMAX 10 669268.593 20 5173521.041 30 777.470 9 $LUPREC 70 7 0 ENDSEC 0 SECTION 2 TABLES 0 TABLE 2 LAYER 70 1 0 LAYER 2 SHP_LINE 70 64 62 7 6 CONTINUOUS 0 ENDTAB 0 ENDSEC 0 SECTION 2 BLOCKS 0 BLOCK 8 SHP_LINE 2 BLK000001 70 64 10 667046.728 20 5171567.671 30 411.940 0 POLYLINE 8 SHP_LINE 66 1 70 8 0 VERTEX 8 SHP_LINE 10 667046.728 20 5171567.671 30 411.940 70 32 0 VERTEX 8 SHP_LINE 10 667044.618 20 5171569.311 30 411.670 70 32 0 VERTEX 8 SHP_LINE 10 667041.838 20 5171570.771 30 411.600 70 32 0 VERTEX 8 SHP_LINE 10 667037.168 20 5171573.241 30 411.440 70 32 0 VERTEX 8 SHP_LINE 10 667032.778 20 5171575.271 30 411.250 70 32 0 VERTEX 8 SHP_LINE 10 667029.308 20 5171577.161 30 411.110 70 32 0 VERTEX 8 SHP_LINE 10 667025.488 20 5171578.981 30 410.850 70 32 0 VERTEX 8 SHP_LINE 10 667022.308 20 5171580.511 30 410.600 70 32 0 VERTEX 8 SHP_LINE 10 667020.328 20 5171581.331 30 410.490 70 32 0 VERTEX 8 SHP_LINE 10 667019.158 20 5171582.021 30 410.260 70 32 0 VERTEX 8 SHP_LINE 10 667018.358 20 5171583.571 30 410.010 70 32 0 SEQEND 8 SHP_LINE 0 ENDBLK 0 BLOCK 8 SHP_LINE 2 BLK000002 70 64 10 666115.033 20 5171352.082 30 390.620 0 POLYLINE 8 SHP_LINE 66 1 70 8 0 VERTEX 8 SHP_LINE 10 666115.033 20 5171352.082 30 390.620 70 32 0 VERTEX 8 SHP_LINE 10 666119.793 20 5171352.632 30 388.860 70 32 0 VERTEX 8 SHP_LINE 10 666122.983 20 5171353.152 30 386.620 70 32 0 VERTEX 8 SHP_LINE 10 666124.133 20 5171353.332 30 386.100 70 32 0 SEQEND 8 SHP_LINE 0 ENDBLK 0 ENDSEC 0 SECTION 2 ENTITIES 0 INSERT 8 SHP_LINE 2 BLK000001 10 667046.728 20 5171567.671 30 411.940 0 INSERT 8 SHP_LINE 2 BLK000002 10 666115.033 20 5171352.082 30 390.620 0 ENDSEC 0 EOF libspatialite-4.3.0a/test/movies.xml0000664000175000017500000000335212544707704014450 00000000000000ÿþ<?xml version="1.0" encoding="utf-16"?> <Movies xmlns="http://www.gaia-gis.it/movies" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://gaia-gis.it/movies movies.xsd"> <director firstName="Stanley" lastName="Kubrick"> <title>2001: A Space Odyssey</title> <title>Dr. Strangelove</title> <title>A Clockwork Orange</title> <title>Full Metal Jacket</title> <title>The Shining</title> </director> <director firstName="Quentin" lastName="Tarantino"> <title>Pulp Fiction</title> </director> <director firstName="Martin" lastName="Scorsese"> <title>Taxi Driver</title> <title>Goodfellas</title> </director> <director firstName="Peter" lastName=" Weir"> <title>Picnic at Hanging Rock</title> <title>Gallipoli</title> <title>Master and Commander: The Far Side of the World</title> </director> </Movies>libspatialite-4.3.0a/test/raster_se.xml0000664000175000017500000000451012544707704015132 00000000000000 srtm_style SRTM Color Map derived from the original "srtm_plus" color rule (GRASS GIS) 1.0 Rasterdata -11000.00000000 #000000 -8000.00000000 #000032 -5000.00000000 #0a0a64 -3000.00000000 #1e1e96 -1000.00000000 #4646c8 -100.00000000 #6464e1 0.00000000 #aaaaff 0.10000000 #399769 100.00000000 #75c25d 500.00000000 #e6e680 1000.00000000 #ca9e4b 2000.00000000 #b99a64 3000.00000000 #dcdcdc 5000.00000000 #ffffff 8850.00000000 #6464c8 libspatialite-4.3.0a/test/fnmatch4win.h0000664000175000017500000000403012544707704015011 00000000000000/* Copyright (C) 1992 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. */ /* * Modified for WinCvs/MacCVS : Alexandre Parenteau --- June 1998 */ #ifndef _FNMATCH_H #define _FNMATCH_H 1 #ifdef __cplusplus extern "C" { #endif #define FNM_NOMATCH 1 /* Match failed. */ #define FNM_NOESCAPE 0x01 /* Disable backslash escaping. */ #define FNM_PATHNAME 0x02 /* Slash must be matched by slash. */ #define FNM_PERIOD 0x04 /* Period must be matched by period. */ #define FNM_LEADING_DIR 0x08 /* Ignore / after Imatch. */ #define FNM_CASEFOLD 0x10 /* Case insensitive search. */ #define FNM_PREFIX_DIRS 0x20 /* Directory prefixes of pattern match too. */ /* Value returned by `fnmatch' if STRING does not match PATTERN. */ #undef FNM_NOMATCH #define FNM_NOMATCH 1 #if !defined(__STDC__) && (defined(WIN32)|| defined(TARGET_OS_MAC)) # define __STDC__ 1 #endif /* Match STRING against the filename pattern PATTERN, returning zero if it matches, FNM_NOMATCH if not. */ #if __STDC__ extern int fnmatch (const char *pattern, const char *string, int flags); #else extern int fnmatch (); #endif #if defined (__CYGWIN32__) || defined (WIN32) /* Under Windows NT, filenames are case-insensitive, and both / and \ are path component separators. */ # define FOLD_FN_CHAR(c) (WNT_filename_classes[(unsigned char) (c)]) extern unsigned char WNT_filename_classes[]; #endif /* defined (__CYGWIN32__) || defined (WIN32) */ #ifdef __cplusplus } #endif #endif /* fnmatch.h */ libspatialite-4.3.0a/test/books.xml0000664000175000017500000000134512544707704014263 00000000000000 The Pickwick PapersOliver TwistDavid Copperfield A Christmas CarolHard Times The Scarlet Letter Vanity Fair The Luck of Barry Lyndon Lord JimThe Secret AgentHeart of Darkness libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/0000775000175000017500000000000012573314330017132 500000000000000libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_node5.testcase0000664000175000017500000000051512544707704022341 00000000000000ST_Node - Valid 2D input :memory: #use in-memory database SELECT ST_AsText(ST_Node(ST_GeomFromText('LINESTRING(0 0, 10 10, 0 10, 10 0)'))); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Node(ST_GeomFromText('LINESTRING(0 0, 10 10, 0 10, 10 0)'))) MULTILINESTRING((0 0, 5 5), (5 5, 10 10, 0 10, 5 5), (5 5, 10 0)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split7.testcase0000664000175000017500000000033112544707704022545 00000000000000ST_Split - Point-Point (error) :memory: #use in-memory database SELECT ST_Split(MakePoint(0, 0), MakePoint(1, 1)); 1 # rows (not including the header row) 1 # columns ST_Split(MakePoint(0, 0), MakePoint(1, 1)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split27.testcase0000664000175000017500000000055312544707704022635 00000000000000ST_SplitLeft - Line-Line (split) :memory: #use in-memory database SELECT AsText(ST_SplitLeft(GeomFromText('LINESTRINGM(0 1 10, 10 1 10)'), GeomFromText('LINESTRING(7 0, 7 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitLeft(GeomFromText('LINESTRINGM(0 1 10, 10 1 10)'), GeomFromText('LINESTRING(7 0, 7 3)'))) LINESTRING M(0 1 0, 7 1 0) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize6.testcase0000664000175000017500000000031612544707704023566 00000000000000ST_Segmentize - NULL BLOB (error) :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(NULL, 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(NULL, 0.5)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d2.testcase0000664000175000017500000000024112544707704022427 00000000000000ST_AsX3D - text geometry :memory: #use in-memory database SELECT ST_AsX3D('alpha'); 1 # rows (not including the header row) 1 # columns ST_AsX3D('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_area13.testcase0000664000175000017500000000061512544707704022404 00000000000000ST_Area Geodesic - valid Polygon - Ellipsoid :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((50.4 50.4, 50.4 54, 54 54, 54 50.4, 50.4 50.4),(51 51, 51 53, 53 53, 53 51, 51 51))"), 1); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((50.4 50.4, 50.4 54, 54 54, 54 50.4, 50.4 50.4),(51 51, 51 53, 53 53, 53 51, 51 51))"), 1) 67989516071.49:2 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid40.testcase0000664000175000017500000000045212544707704023645 00000000000000ST_SnapToGrid - six args - BLOB sizeZ (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, zeroblob(4), 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, zeroblob(4), 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split44.testcase0000664000175000017500000000045112544707704022631 00000000000000ST_SplitRight - Line-Point (not split) :memory: #use in-memory database SELECT AsText(ST_SplitRight(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(11, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitRight(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(11, 0))) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_project9.testcase0000664000175000017500000000040512544707704023064 00000000000000ST_Project - TEXT distance :memory: #use in-memory database SELECT ST_Project(GeomFromText('POINT(0 0)', 4326), 'alpha', Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project(GeomFromText('POINT(0 0)', 4326), 'alpha', Radians(45)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d8.testcase0000664000175000017500000000050612544707704022441 00000000000000ST_AsX3D - 2D polygon :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))')) 10 10 11 10 11 11 10 11 ' />:0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split9.testcase0000664000175000017500000000057512544707704022561 00000000000000ST_Split - Polygon-Multiline (error) :memory: #use in-memory database SELECT ST_Split(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), GeomFromText('MULTILINESTRING((3 0, 3 3), (5 0, 5 3))')); 1 # rows (not including the header row) 1 # columns ST_Split(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), GeomFromText('MULTILINESTRING((3 0, 3 3), (5 0, 5 3))')) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_self6.testcase0000664000175000017500000000053412544707704022347 00000000000000ST_SelfIntersections - Valid 3D input :memory: #use in-memory database SELECT ST_AsText(ST_SelfIntersections(ST_GeomFromText('LINESTRINGZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'))); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_SelfIntersections(ST_GeomFromText('LINESTRINGZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'))) MULTIPOINT Z(5 5 4.5) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split19.testcase0000664000175000017500000000045112544707704022633 00000000000000ST_Split - Line-Point (not split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(11, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(11, 0))) LINESTRING(0 0, 10 0) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_makevaliddiscarded6.testcase0000664000175000017500000000054512544707704025220 00000000000000ST_MakeValid - invalid MultiPolygon :memory: #use in-memory database SELECT ST_IsValid(ST_MakeValid(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 0 1, 1 1, 0 0)), ((2 2, 3 2, 3 3, 2 3, 2 2)))'))); 1 # rows (not including the header row) 1 # columns ST_IsValid(ST_MakeValid(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 0 1, 1 1, 0 0)), ((2 2, 3 2, 3 3, 2 3, 2 2)))'))) 1 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d26.testcase0000664000175000017500000000143212544707704022520 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, long SRS :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1) 15.123457 14.765432 7.654321:0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_area16.testcase0000664000175000017500000000054612544707704022412 00000000000000ST_Area Geodesic - DOUBLE use_ellipsoid :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 0.5); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_area11.testcase0000664000175000017500000000057212544707704022404 00000000000000ST_Area Geodesic - valid Polygon - Ellipsoid/Equator :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 1); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 1) 189884187084.89:2 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid46.testcase0000664000175000017500000000074012544707704023653 00000000000000ST_SnapToGrid - MultiLinestring 2D :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTILINESTRING((1.2 2.3, 1.21 2.31, 1.22 2.32, 2.1 3.9), (2.11 3.11, 2.12 3.12), (3.2 4.2, 4.2 3.2))'), 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTILINESTRING((1.2 2.3, 1.21 2.31, 1.22 2.32, 2.1 3.9), (2.11 3.11, 2.12 3.12), (3.2 4.2, 4.2 3.2))'), 0.25)) MULTILINESTRING((1.25 2.25, 2 4), (3.25 4.25, 4.25 3.25)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split36.testcase0000664000175000017500000000100312544707704022624 00000000000000ST_SplitLeft - Polygon-Line (not split) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_SplitLeft(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1), (5 5, 9 5, 9 9, 5 9, 5 5))'), GeomFromText('LINESTRING(12 0, 12 20)')))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_SplitLeft(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1), (5 5, 9 5, 9 9, 5 9, 5 5))'), GeomFromText('LINESTRING(12 0, 12 20)')))) POLYGON((0 1, 0 10, 10 10, 10 1, 0 1), (5 5, 9 5, 9 9, 5 9, 5 5)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid52.testcase0000664000175000017500000000135112544707704023647 00000000000000ST_SnapToGrid - MultiLinestring ZM :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTILINESTRINGZM((1.2 2.3 10.1 20.1, 1.21 2.31 10.11 20.11, 1.22 2.32 10.1 20.1, 2.1 3.9 10.11 20.11), (2.11 3.11 10 20, 2.12 3.12 10.1 20.1), (3.2 4.2 10.1 20.1, 4.2 3.2 10.4 20.4))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTILINESTRINGZM((1.2 2.3 10.1 20.1, 1.21 2.31 10.11 20.11, 1.22 2.32 10.1 20.1, 2.1 3.9 10.11 20.11), (2.11 3.11 10 20, 2.12 3.12 10.1 20.1), (3.2 4.2 10.1 20.1, 4.2 3.2 10.4 20.4))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) MULTILINESTRING ZM((1.25 2.25 10 20, 2 4 10 20), (3.25 4.25 10 20, 4.25 3.25 10.5 20.5)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_makevalid3.testcase0000664000175000017500000000025412544707704023347 00000000000000ST_MakeValid - text (error) :memory: #use in-memory database SELECT ST_MakeValid('alpha'); 1 # rows (not including the header row) 1 # columns ST_MakeValid('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid32.testcase0000664000175000017500000000044212544707704023645 00000000000000ST_SnapToGrid - six args - text sizeX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 'alpha', 2, 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 'alpha', 2, 3, 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_makevalid7.testcase0000664000175000017500000000043012544707704023347 00000000000000ST_MakeValid - invalid Polygon :memory: #use in-memory database SELECT ST_IsValid(ST_MakeValid(GeomFromText('POLYGON((0 0, 1 0, 0 1, 1 1, 0 0))'))); 1 # rows (not including the header row) 1 # columns ST_IsValid(ST_MakeValid(GeomFromText('POLYGON((0 0, 1 0, 0 1, 1 1, 0 0))'))) 1 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_azimuth13.testcase0000664000175000017500000000033112544707704023150 00000000000000ST_Azimuth - NULL PointB (error) :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10, 10, 4326), NULL); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10, 10, 4326), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid4.testcase0000664000175000017500000000035512544707704023567 00000000000000ST_SnapToGrid - two args - text size (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3ddistance9.testcase0000664000175000017500000000036412544707704022735 000000000000003DDistance - two 3D points :memory: #use in-memory database SELECT ST_3DDistance(MakePointZ(1, 2, 3), MakePointZ(4, 6, 5)); 1 # rows (not including the header row) 1 # columns ST_3DDistance(MakePointZ(1, 2, 3), MakePointZ(4, 6, 5)) 5.385164:6 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/maxdistance6.testcase0000664000175000017500000000033012544707704023202 00000000000000MaxDistance - bad blob second arg :memory: #use in-memory database SELECT ST_MaxDistance(MakePoint(1, 2), "hello") 1 # rows (not including the header row) 1 # columns ST_MaxDistance(MakePoint(1, 2), "hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid28.testcase0000664000175000017500000000040312544707704023647 00000000000000ST_SnapToGrid - six args - num grid origin (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1.1, 1, 2, 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1.1, 1, 2, 3, 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/Makefile.in0000664000175000017500000004625712573313637021146 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_lwgeom_tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = 3ddistance10.testcase \ 3ddistance1.testcase \ 3ddistance2.testcase \ 3ddistance3.testcase \ 3ddistance4.testcase \ 3ddistance5.testcase \ 3ddistance6.testcase \ 3ddistance7.testcase \ 3ddistance8.testcase \ 3ddistance9.testcase \ 3dmaxdistance10.testcase \ 3dmaxdistance1.testcase \ 3dmaxdistance2.testcase \ 3dmaxdistance3.testcase \ 3dmaxdistance4.testcase \ 3dmaxdistance5.testcase \ 3dmaxdistance6.testcase \ 3dmaxdistance7.testcase \ 3dmaxdistance8.testcase \ 3dmaxdistance9.testcase \ maxdistance10.testcase \ maxdistance1.testcase \ maxdistance2.testcase \ maxdistance3.testcase \ maxdistance4.testcase \ maxdistance5.testcase \ maxdistance6.testcase \ maxdistance7.testcase \ maxdistance8.testcase \ maxdistance9.testcase \ st_asx3d10.testcase \ st_asx3d11.testcase \ st_asx3d12.testcase \ st_asx3d13.testcase \ st_asx3d14.testcase \ st_asx3d15.testcase \ st_asx3d16.testcase \ st_asx3d17.testcase \ st_asx3d18.testcase \ st_asx3d19.testcase \ st_asx3d1.testcase \ st_asx3d20.testcase \ st_asx3d21.testcase \ st_asx3d22.testcase \ st_asx3d23.testcase \ st_asx3d24.testcase \ st_asx3d25.testcase \ st_asx3d26.testcase \ st_asx3d27.testcase \ st_asx3d28.testcase \ st_asx3d29.testcase \ st_asx3d2.testcase \ st_asx3d30.testcase \ st_asx3d3.testcase \ st_asx3d4.testcase \ st_asx3d5.testcase \ st_asx3d6.testcase \ st_asx3d7.testcase \ st_asx3d8.testcase \ st_asx3d9.testcase \ st_area10.testcase \ st_area11.testcase \ st_area12.testcase \ st_area13.testcase \ st_area14.testcase \ st_area15.testcase \ st_area16.testcase \ st_area17.testcase \ st_area18.testcase \ st_azimuth11.testcase \ st_azimuth12.testcase \ st_azimuth13.testcase \ st_azimuth14.testcase \ st_azimuth15.testcase \ st_azimuth16.testcase \ st_azimuth17.testcase \ st_azimuth1.testcase \ st_azimuth2.testcase \ st_azimuth3.testcase \ st_azimuth4.testcase \ st_azimuth5.testcase \ st_azimuth6.testcase \ st_azimuth7.testcase \ st_azimuth8.testcase \ st_azimuth9.testcase \ st_geohash10.testcase \ st_geohash1.testcase \ st_geohash2.testcase \ st_geohash3.testcase \ st_geohash4.testcase \ st_geohash5.testcase \ st_geohash6.testcase \ st_geohash7.testcase \ st_geohash8.testcase \ st_geohash9.testcase \ st_makevalid1.testcase \ st_makevalid2.testcase \ st_makevalid3.testcase \ st_makevalid4.testcase \ st_makevalid5.testcase \ st_makevalid6.testcase \ st_makevalid7.testcase \ st_makevalid8.testcase \ st_makevaliddiscarded1.testcase \ st_makevaliddiscarded2.testcase \ st_makevaliddiscarded3.testcase \ st_makevaliddiscarded4.testcase \ st_makevaliddiscarded5.testcase \ st_makevaliddiscarded6.testcase \ st_makevaliddiscarded7.testcase \ st_makevaliddiscarded8.testcase \ st_project1.testcase \ st_project2.testcase \ st_project3.testcase \ st_project4.testcase \ st_project5.testcase \ st_project6.testcase \ st_project7.testcase \ st_project8.testcase \ st_project9.testcase \ st_project10.testcase \ st_project11.testcase \ st_project12.testcase \ st_project13.testcase \ st_project14.testcase \ st_segmentize10.testcase \ st_segmentize11.testcase \ st_segmentize12.testcase \ st_segmentize13.testcase \ st_segmentize14.testcase \ st_segmentize15.testcase \ st_segmentize16.testcase \ st_segmentize17.testcase \ st_segmentize18.testcase \ st_segmentize19.testcase \ st_segmentize1.testcase \ st_segmentize20.testcase \ st_segmentize21.testcase \ st_segmentize22.testcase \ st_segmentize23.testcase \ st_segmentize24.testcase \ st_segmentize25.testcase \ st_segmentize26.testcase \ st_segmentize27.testcase \ st_segmentize28.testcase \ st_segmentize29.testcase \ st_segmentize2.testcase \ st_segmentize30.testcase \ st_segmentize31.testcase \ st_segmentize3.testcase \ st_segmentize4.testcase \ st_segmentize5.testcase \ st_segmentize6.testcase \ st_segmentize7.testcase \ st_segmentize8.testcase \ st_segmentize9.testcase \ st_snaptogrid10.testcase \ st_snaptogrid11.testcase \ st_snaptogrid12.testcase \ st_snaptogrid13.testcase \ st_snaptogrid14.testcase \ st_snaptogrid15.testcase \ st_snaptogrid16.testcase \ st_snaptogrid17.testcase \ st_snaptogrid18.testcase \ st_snaptogrid19.testcase \ st_snaptogrid1.testcase \ st_snaptogrid20.testcase \ st_snaptogrid21.testcase \ st_snaptogrid22.testcase \ st_snaptogrid23.testcase \ st_snaptogrid24.testcase \ st_snaptogrid25.testcase \ st_snaptogrid26.testcase \ st_snaptogrid27.testcase \ st_snaptogrid28.testcase \ st_snaptogrid29.testcase \ st_snaptogrid2.testcase \ st_snaptogrid30.testcase \ st_snaptogrid31.testcase \ st_snaptogrid32.testcase \ st_snaptogrid33.testcase \ st_snaptogrid34.testcase \ st_snaptogrid35.testcase \ st_snaptogrid36.testcase \ st_snaptogrid37.testcase \ st_snaptogrid38.testcase \ st_snaptogrid39.testcase \ st_snaptogrid3.testcase \ st_snaptogrid40.testcase \ st_snaptogrid41.testcase \ st_snaptogrid42.testcase \ st_snaptogrid43.testcase \ st_snaptogrid44.testcase \ st_snaptogrid45.testcase \ st_snaptogrid46.testcase \ st_snaptogrid47.testcase \ st_snaptogrid48.testcase \ st_snaptogrid49.testcase \ st_snaptogrid4.testcase \ st_snaptogrid50.testcase \ st_snaptogrid51.testcase \ st_snaptogrid52.testcase \ st_snaptogrid53.testcase \ st_snaptogrid54.testcase \ st_snaptogrid55.testcase \ st_snaptogrid56.testcase \ st_snaptogrid57.testcase \ st_snaptogrid58.testcase \ st_snaptogrid59.testcase \ st_snaptogrid5.testcase \ st_snaptogrid60.testcase \ st_snaptogrid61.testcase \ st_snaptogrid62.testcase \ st_snaptogrid63.testcase \ st_snaptogrid64.testcase \ st_snaptogrid65.testcase \ st_snaptogrid6.testcase \ st_snaptogrid7.testcase \ st_snaptogrid8.testcase \ st_snaptogrid9.testcase \ st_split10.testcase \ st_split11.testcase \ st_split12.testcase \ st_split13.testcase \ st_split14.testcase \ st_split15.testcase \ st_split16.testcase \ st_split17.testcase \ st_split18.testcase \ st_split19.testcase \ st_split1.testcase \ st_split20.testcase \ st_split21.testcase \ st_split22.testcase \ st_split23.testcase \ st_split24.testcase \ st_split25.testcase \ st_split26.testcase \ st_split27.testcase \ st_split28.testcase \ st_split29.testcase \ st_split2.testcase \ st_split30.testcase \ st_split31.testcase \ st_split32.testcase \ st_split33.testcase \ st_split34.testcase \ st_split35.testcase \ st_split36.testcase \ st_split37.testcase \ st_split38.testcase \ st_split39.testcase \ st_split3.testcase \ st_split40.testcase \ st_split41.testcase \ st_split42.testcase \ st_split43.testcase \ st_split44.testcase \ st_split45.testcase \ st_split46.testcase \ st_split47.testcase \ st_split48.testcase \ st_split49.testcase \ st_split4.testcase \ st_split5.testcase \ st_split6.testcase \ st_split7.testcase \ st_split8.testcase \ st_split9.testcase \ st_node1.testcase \ st_node2.testcase \ st_node3.testcase \ st_node4.testcase \ st_node5.testcase \ st_node6.testcase \ st_node7.testcase \ st_node8.testcase \ st_node9.testcase \ st_self1.testcase \ st_self2.testcase \ st_self3.testcase \ st_self4.testcase \ st_self5.testcase \ st_self6.testcase \ st_self7.testcase \ st_self8.testcase \ st_self9.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_lwgeom_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_lwgeom_tests/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid41.testcase0000664000175000017500000000044212544707704023645 00000000000000ST_SnapToGrid - six args - text sizeZ (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, 'alpha', 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, 'alpha', 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid18.testcase0000664000175000017500000000041312544707704023647 00000000000000ST_SnapToGrid - five args - text originY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 'alpha', 0.5, 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 'alpha', 0.5, 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid5.testcase0000664000175000017500000000031312544707704023562 00000000000000ST_SnapToGrid - two args - text geom (error) :memory: #use in-memory database SELECT ST_SnapToGrid('alpha', NULL); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid('alpha', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid63.testcase0000664000175000017500000000072712544707704023657 00000000000000ST_SnapToGrid - MultiPoint M :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTIPOINTM(1.2 2.3 10.1, 1.21 2.31 10.11, 2.2 3.3 21.1, 2.21 3.33 21.12)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTIPOINTM(1.2 2.3 10.1, 1.21 2.31 10.11, 2.2 3.3 21.1, 2.21 3.33 21.12)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) MULTIPOINT M(1.25 2.25 10, 2.25 3.25 21) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_node9.testcase0000664000175000017500000000046312544707704022347 00000000000000ST_Node - Invalid MultiPoint 3D input :memory: #use in-memory database SELECT ST_AsText(ST_Node(ST_GeomFromText('MULTIPOINTZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'))); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Node(ST_GeomFromText('MULTIPOINTZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'))) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid1.testcase0000664000175000017500000000030312544707704023555 00000000000000ST_SnapToGrid - two args - NULL BLOB (error) :memory: #use in-memory database SELECT ST_SnapToGrid(NULL, 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(NULL, 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_geohash9.testcase0000664000175000017500000000035412544707704023037 00000000000000ST_GeoHash - WGS84 Point, invalid precision :memory: #use in-memory database SELECT ST_GeoHash(MakePoint(10, -20, 4326), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_GeoHash(MakePoint(10, -20, 4326), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split49.testcase0000664000175000017500000000074212544707704022641 00000000000000ST_SplitRight - Collection-Line (not split) :memory: #use in-memory database SELECT ST_ForceLHR(ST_SplitRight(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1)))'), GeomFromText('LINESTRING(-1 0, -1 20)'))); 1 # rows (not including the header row) 1 # columns ST_ForceLHR(ST_SplitRight(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1)))'), GeomFromText('LINESTRING(-1 0, -1 20)'))) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_project13.testcase0000664000175000017500000000040212544707704023134 00000000000000ST_Project - BLOB bearing :memory: #use in-memory database SELECT ST_Project(GeomFromText('POINT(0 0)', 4326), 100000, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_Project(GeomFromText('POINT(0 0)', 4326), 100000, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_area18.testcase0000664000175000017500000000056412544707704022414 00000000000000ST_Area Geodesic - BLOB use_ellipsoid :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid26.testcase0000664000175000017500000000043412544707704023651 00000000000000ST_SnapToGrid - six args - invalid BLOB grid origin (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), zeroblob(4), 1, 2, 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), zeroblob(4), 1, 2, 3, 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d16.testcase0000664000175000017500000000044612544707704022523 00000000000000ST_AsX3D - 3D linestring NULL precision :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)'), NULL); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)'), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3dmaxdistance3.testcase0000664000175000017500000000034312544707704023432 00000000000000MaxDistance - bad blob first arg :memory: #use in-memory database SELECT ST_MaxDistance(zeroblob(100), MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_MaxDistance(zeroblob(100), MakePoint(1, 2)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize12.testcase0000664000175000017500000000201512544707704023641 00000000000000ST_Segmentize - Collection M :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTIONM(POINTM(0 0 10), LINESTRINGM(1 1 10, 1 2 11), POLYGONM((3 3 10, 6 3 11, 6 6 12, 3 6 13, 3 3 10), (4 4 10, 5 4 11, 5 5 12, 5 4 13, 4 4 10)))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTIONM(POINTM(0 0 10), LINESTRINGM(1 1 10, 1 2 11), POLYGONM((3 3 10, 6 3 11, 6 6 12, 3 6 13, 3 3 10), (4 4 10, 5 4 11, 5 5 12, 5 4 13, 4 4 10)))'), 0.5)) GEOMETRYCOLLECTION M(POINT M(0 0 10), LINESTRING M(1 1 10, 1 1.5 10.5, 1 2 11), POLYGON M((3 3 10, 3.5 3 10.166667, 4 3 10.333333, 4.5 3 10.5, 5 3 10.666667, 5.5 3 10.833333, 6 3 11, 6 3.5 11.166667, 6 4 11.333333, 6 4.5 11.5, 6 5 11.666667, 6 5.5 11.833333, 6 6 12, 5.5 6 12.166667, 5 6 12.333333, 4.5 6 12.5, 4 6 12.666667, 3.5 6 12.833333, 3 6 13, 3 5.5 12.5, 3 5 12, 3 4.5 11.5, 3 4 11, 3 3.5 10.5, 3 3 10), (4 4 10, 4.5 4 10.5, 5 4 11, 5 4.5 11.5, 5 5 12, 5 4.5 12.5, 5 4 13, 4.5 4 11.5, 4 4 10))) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d6.testcase0000664000175000017500000000047112544707704022440 00000000000000ST_AsX3D - 2D linestring :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRING(10 10, 11 10, 11 11)')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRING(10 10, 11 10, 11 11)')) :0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid58.testcase0000664000175000017500000000120712544707704023655 00000000000000ST_SnapToGrid - MultiLinestring Z :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTILINESTRINGZ((1.2 2.3 10.1, 1.21 2.31 10.11, 1.22 2.32 10.1, 2.1 3.9 10.11), (2.11 3.11 10, 2.12 3.12 10.1), (3.2 4.2 10.1, 4.2 3.2 10.4))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTILINESTRINGZ((1.2 2.3 10.1, 1.21 2.31 10.11, 1.22 2.32 10.1, 2.1 3.9 10.11), (2.11 3.11 10, 2.12 3.12 10.1), (3.2 4.2 10.1, 4.2 3.2 10.4))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) MULTILINESTRING Z((1.25 2.25 10, 2 4 10), (3.25 4.25 10, 4.25 3.25 10.5)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid43.testcase0000664000175000017500000000052612544707704023652 00000000000000ST_SnapToGrid - Linestring 2D :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('LINESTRING(1.2 2.3, 1.21 2.31, 1.22 2.32, 2.1 3.9)'), 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('LINESTRING(1.2 2.3, 1.21 2.31, 1.22 2.32, 2.1 3.9)'), 0.25)) LINESTRING(1.25 2.25, 2 4) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid7.testcase0000664000175000017500000000036412544707704023572 00000000000000ST_SnapToGrid - three args - NULL sizeX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), NULL, 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), NULL, 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid22.testcase0000664000175000017500000000037712544707704023653 00000000000000ST_SnapToGrid - five args - NULL sizeY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, 0.5, NULL); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, 0.5, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/maxdistance7.testcase0000664000175000017500000000050312544707704023205 00000000000000MaxDistance - parallel 2D lines :memory: #use in-memory database SELECT ST_MaxDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 1 # rows (not including the header row) 1 # columns ST_MaxDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 10.198039:6 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split18.testcase0000664000175000017500000000111512544707704022630 00000000000000ST_Split - Collection-Line (split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1)))'), GeomFromText('LINESTRING(7 0, 7 20)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1)))'), GeomFromText('LINESTRING(7 0, 7 20)'))) GEOMETRYCOLLECTION(LINESTRING(0 11, 7 11), LINESTRING(7 11, 10 11), POLYGON((7 1, 0 1, 0 10, 7 10, 7 1)), POLYGON((7 10, 10 10, 10 1, 7 1, 7 10))) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d9.testcase0000664000175000017500000000064412544707704022445 00000000000000ST_AsX3D - 3D polygon :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('POLYGONZ((10 10 101, 11 10 102, 11 11 103, 10 11 104, 10 10 101))')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('POLYGONZ((10 10 101, 11 10 102, 11 11 103, 10 11 104, 10 10 101))')) :0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split33.testcase0000664000175000017500000000054012544707704022626 00000000000000ST_SplitLeft - Line-Line (not split) :memory: #use in-memory database SELECT AsText(ST_SplitLeft(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(11 0, 11 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitLeft(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(11 0, 11 3)'))) LINESTRING(0 1, 10 1) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_node3.testcase0000664000175000017500000000024512544707704022337 00000000000000ST_Node - Invalid DOUBLE input (error) :memory: #use in-memory database SELECT ST_Node(1.1); 1 # rows (not including the header row) 1 # columns ST_Node(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/maxdistance3.testcase0000664000175000017500000000034312544707704023203 00000000000000MaxDistance - bad blob first arg :memory: #use in-memory database SELECT ST_MaxDistance(zeroblob(100), MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_MaxDistance(zeroblob(100), MakePoint(1, 2)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_makevalid5.testcase0000664000175000017500000000043612544707704023353 00000000000000ST_MakeValid - already valid Polygon :memory: #use in-memory database SELECT ST_IsValid(ST_MakeValid(GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))'))); 1 # rows (not including the header row) 1 # columns ST_IsValid(ST_MakeValid(GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))'))) 1 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_geohash3.testcase0000664000175000017500000000023212544707704023024 00000000000000ST_GeoHash - int geometry :memory: #use in-memory database SELECT ST_GeoHash(1); 1 # rows (not including the header row) 1 # columns ST_GeoHash(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize3.testcase0000664000175000017500000000054112544707704023563 00000000000000ST_Segmentize - Multilinestring :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('MULTILINESTRING((1 1, 1 2), (3 3, 4 3))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('MULTILINESTRING((1 1, 1 2), (3 3, 4 3))'), 0.5)) MULTILINESTRING((1 1, 1 1.5, 1 2), (3 3, 3.5 3, 4 3)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_self1.testcase0000664000175000017500000000033212544707704022336 00000000000000ST_SelfIntersections - Invalid BLOB input (error) :memory: #use in-memory database SELECT ST_SelfIntersections(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_SelfIntersections(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d30.testcase0000664000175000017500000000152612544707704022517 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, long SRS, refid :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1, 'test_'); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1, 'test_') 15.123457 14.765432 7.654321:0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split5.testcase0000664000175000017500000000036312544707704022550 00000000000000ST_Split - NULL BLOB blade (error) :memory: #use in-memory database SELECT ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), NULL); 1 # rows (not including the header row) 1 # columns ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid49.testcase0000664000175000017500000000101312544707704023650 00000000000000ST_SnapToGrid - Linestring ZM :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('LINESTRINGZM(1.2 2.3 10.1 20.1, 1.21 2.31 10.11 20.11, 1.22 2.32 10.12 20.12, 2.1 3.9 11.4 21.4)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('LINESTRINGZM(1.2 2.3 10.1 20.1, 1.21 2.31 10.11 20.11, 1.22 2.32 10.12 20.12, 2.1 3.9 11.4 21.4)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) LINESTRING ZM(1.25 2.25 10 20, 2 4 11.5 21.5) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid35.testcase0000664000175000017500000000044212544707704023650 00000000000000ST_SnapToGrid - six args - text sizeM (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, 3, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, 3, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_geohash1.testcase0000664000175000017500000000024112544707704023022 00000000000000ST_GeoHash - NULL geometry :memory: #use in-memory database SELECT ST_GeoHash(NULL); 1 # rows (not including the header row) 1 # columns ST_GeoHash(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_self8.testcase0000664000175000017500000000065012544707704022350 00000000000000ST_SelfIntersections - Valid MultiLinestring 3D input :memory: #use in-memory database SELECT ST_AsText(ST_SelfIntersections(ST_GeomFromText('MULTILINESTRINGZ((0 0 0, 10 10 10, 0 10 5, 10 0 3),(10 8 4, 10 12 5))'))); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_SelfIntersections(ST_GeomFromText('MULTILINESTRINGZ((0 0 0, 10 10 10, 0 10 5, 10 0 3),(10 8 4, 10 12 5))'))) MULTIPOINT Z(5 5 4.5, 10 10 10) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_project3.testcase0000664000175000017500000000031612544707704023057 00000000000000ST_Project - DOUBLE start Point :memory: #use in-memory database SELECT ST_Project(1.1, 100000, Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project(1.1, 100000, Radians(45)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d21.testcase0000664000175000017500000000061012544707704022510 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, NULL options :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6, NULL); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid14.testcase0000664000175000017500000000042312544707704023644 00000000000000ST_SnapToGrid - five args - BLOB originX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), zeroblob(0), 1, 0.5, 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), zeroblob(0), 1, 0.5, 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_makevaliddiscarded2.testcase0000664000175000017500000000030612544707704025207 00000000000000ST_MakeValidDiscarded - NULL BLOB (error) :memory: #use in-memory database SELECT ST_MakeValidDiscarded(NULL); 1 # rows (not including the header row) 1 # columns ST_MakeValidDiscarded(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_azimuth6.testcase0000664000175000017500000000032612544707704023076 00000000000000ST_Azimuth - integer PointA (error) :memory: #use in-memory database SELECT ST_Azimuth(1, MakePoint(10, 10, 4326)); 1 # rows (not including the header row) 1 # columns ST_Azimuth(1, MakePoint(10, 10, 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split48.testcase0000664000175000017500000000062512544707704022640 00000000000000ST_SplitRight - Polygon-Line (not split) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_SplitRight(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), GeomFromText('LINESTRING(12 0, 12 20)')))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_SplitRight(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), GeomFromText('LINESTRING(12 0, 12 20)')))) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split21.testcase0000664000175000017500000000055212544707704022626 00000000000000ST_Split - MultiLine-Point (not split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(-1, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(-1, 0))) MULTILINESTRING((0 2, 10 2), (0 0, 10 0)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid20.testcase0000664000175000017500000000041512544707704023642 00000000000000ST_SnapToGrid - five args - BLOB sizeX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, zeroblob(0), 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, zeroblob(0), 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_self4.testcase0000664000175000017500000000032212544707704022340 00000000000000ST_SelfIntersections - Invalid TEXT input (error) :memory: #use in-memory database SELECT ST_SelfIntersections('alpha'); 1 # rows (not including the header row) 1 # columns ST_SelfIntersections('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_project1.testcase0000664000175000017500000000031612544707704023055 00000000000000ST_Project - NULL start Point :memory: #use in-memory database SELECT ST_Project(NULL, 100000, Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project(NULL, 100000, Radians(45)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_project4.testcase0000664000175000017500000000032412544707704023057 00000000000000ST_Project - TEXT start Point :memory: #use in-memory database SELECT ST_Project('alpha', 100000, Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project('alpha', 100000, Radians(45)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid6.testcase0000664000175000017500000000030512544707704023564 00000000000000ST_SnapToGrid - two args - double geom (error) :memory: #use in-memory database SELECT ST_SnapToGrid(1.2, NULL); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(1.2, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split14.testcase0000664000175000017500000000053712544707704022633 00000000000000ST_Split - Line-Line (split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(7 0, 7 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(7 0, 7 3)'))) MULTILINESTRING((0 1, 7 1), (7 1, 10 1)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_self5.testcase0000664000175000017500000000050212544707704022341 00000000000000ST_SelfIntersections - Valid 2D input :memory: #use in-memory database SELECT ST_AsText(ST_SelfIntersections(ST_GeomFromText('LINESTRING(0 0, 10 10, 0 10, 10 0)'))); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_SelfIntersections(ST_GeomFromText('LINESTRING(0 0, 10 10, 0 10, 10 0)'))) MULTIPOINT(5 5) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_geohash7.testcase0000664000175000017500000000046212544707704023035 00000000000000ST_GeoHash - WGS84 Linestring :memory: #use in-memory database SELECT ST_GeoHash(GeomFromText('LINESTRING(10 -20, 10.0001 -19.9899, 10.0002 -19.9899)', 4326)); 1 # rows (not including the header row) 1 # columns ST_GeoHash(GeomFromText('LINESTRING(10 -20, 10.0001 -19.9899, 10.0002 -19.9899)', 4326)) khrn libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid24.testcase0000664000175000017500000000040512544707704023645 00000000000000ST_SnapToGrid - five args - text sizeY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, 0.5, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, 0.5, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid34.testcase0000664000175000017500000000045212544707704023650 00000000000000ST_SnapToGrid - six args - BLOB sizeM (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, 3, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, 3, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3dmaxdistance9.testcase0000664000175000017500000000037512544707704023445 000000000000003DMaxDistance - two 3D points :memory: #use in-memory database SELECT ST_3DMaxDistance(MakePointZ(1, 2, 3), MakePointZ(4, 6, 5)); 1 # rows (not including the header row) 1 # columns ST_3DMaxDistance(MakePointZ(1, 2, 3), MakePointZ(4, 6, 5)) 5.385164:6 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid29.testcase0000664000175000017500000000051312544707704023652 00000000000000ST_SnapToGrid - six args - not-point grid origin (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), GeomFromText('LINESTRING(0 0, 1 1)'), 1, 2, 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), GeomFromText('LINESTRING(0 0, 1 1)'), 1, 2, 3, 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid27.testcase0000664000175000017500000000041412544707704023650 00000000000000ST_SnapToGrid - six args - text grid origin (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 'alpha', 1, 2, 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 'alpha', 1, 2, 3, 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split43.testcase0000664000175000017500000000115012544707704022625 00000000000000ST_SplitRight - Collection-Line (split) :memory: #use in-memory database SELECT AsText(ST_SplitRight(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1), (5 5, 9 5, 9 9, 5 9, 5 5)))'), GeomFromText('LINESTRING(7 0, 7 20)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitRight(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1), (5 5, 9 5, 9 9, 5 9, 5 5)))'), GeomFromText('LINESTRING(7 0, 7 20)'))) GEOMETRYCOLLECTION(LINESTRING(7 11, 10 11), POLYGON((7 10, 10 10, 10 1, 7 1, 7 5, 9 5, 9 9, 7 9, 7 10))) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid8.testcase0000664000175000017500000000040212544707704023564 00000000000000ST_SnapToGrid - three args - BLOB sizeX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), zeroblob(4), 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), zeroblob(4), 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split28.testcase0000664000175000017500000000064312544707704022636 00000000000000ST_SplitLeft - MultiLine-Point (split) :memory: #use in-memory database SELECT AsText(ST_SplitLeft(GeomFromText('MULTILINESTRINGZ((0 2 10, 10 2 11), (0 0 10, 10 0 11))'), MakePointZ(7, 0, 10))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitLeft(GeomFromText('MULTILINESTRINGZ((0 2 10, 10 2 11), (0 0 10, 10 0 11))'), MakePointZ(7, 0, 10))) MULTILINESTRING Z((0 2 10, 10 2 11), (0 0 10, 7 0 10.7)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_makevaliddiscarded1.testcase0000664000175000017500000000032712544707704025211 00000000000000ST_MakeValidDiscarded - Invalid BLOB (error) :memory: #use in-memory database SELECT ST_MakeValidDiscarded(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_MakeValidDiscarded(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_area10.testcase0000664000175000017500000000056712544707704022407 00000000000000ST_Area Geodesic - valid Polygon - Sphere/Equator :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 0); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 0) 189884187084.89:2 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3ddistance1.testcase0000664000175000017500000000033412544707704022722 000000000000003DDistance - two 2D points :memory: #use in-memory database SELECT ST_3DDistance(MakePoint(1, 2), MakePoint(4, 6)) 1 # rows (not including the header row) 1 # columns ST_3DDistance(MakePoint(1, 2), MakePoint(4, 6)) 5.0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid51.testcase0000664000175000017500000000101512544707704023643 00000000000000ST_SnapToGrid - MultiPoint ZM :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTIPOINTZM(1.2 2.3 10.1 20.1, 1.21 2.31 10.11 20.11, 2.2 3.3 21.1 31.1, 2.21 3.33 21.12 31.12)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTIPOINTZM(1.2 2.3 10.1 20.1, 1.21 2.31 10.11 20.11, 2.2 3.3 21.1 31.1, 2.21 3.33 21.12 31.12)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) MULTIPOINT ZM(1.25 2.25 10 20, 2.25 3.25 21 31) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize11.testcase0000664000175000017500000000201512544707704023640 00000000000000ST_Segmentize - Collection Z :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(0 0 10), LINESTRINGZ(1 1 10, 1 2 11), POLYGONZ((3 3 10, 6 3 11, 6 6 12, 3 6 13, 3 3 10), (4 4 10, 5 4 11, 5 5 12, 5 4 13, 4 4 10)))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(0 0 10), LINESTRINGZ(1 1 10, 1 2 11), POLYGONZ((3 3 10, 6 3 11, 6 6 12, 3 6 13, 3 3 10), (4 4 10, 5 4 11, 5 5 12, 5 4 13, 4 4 10)))'), 0.5)) GEOMETRYCOLLECTION Z(POINT Z(0 0 10), LINESTRING Z(1 1 10, 1 1.5 10.5, 1 2 11), POLYGON Z((3 3 10, 3.5 3 10.166667, 4 3 10.333333, 4.5 3 10.5, 5 3 10.666667, 5.5 3 10.833333, 6 3 11, 6 3.5 11.166667, 6 4 11.333333, 6 4.5 11.5, 6 5 11.666667, 6 5.5 11.833333, 6 6 12, 5.5 6 12.166667, 5 6 12.333333, 4.5 6 12.5, 4 6 12.666667, 3.5 6 12.833333, 3 6 13, 3 5.5 12.5, 3 5 12, 3 4.5 11.5, 3 4 11, 3 3.5 10.5, 3 3 10), (4 4 10, 4.5 4 10.5, 5 4 11, 5 4.5 11.5, 5 5 12, 5 4.5 12.5, 5 4 13, 4.5 4 11.5, 4 4 10))) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize7.testcase0000664000175000017500000000042412544707704023567 00000000000000ST_Segmentize - NULL distance (error) :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('LINESTRING(1 1, 2 2)'), NULL)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('LINESTRING(1 1, 2 2)'), NULL)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split24.testcase0000664000175000017500000000106012544707704022624 00000000000000ST_Split - Collection-Line (not split) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_Split(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1)))'), GeomFromText('LINESTRING(-1 0, -1 20)')))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_Split(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1)))'), GeomFromText('LINESTRING(-1 0, -1 20)')))) GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 0 10, 10 10, 10 1, 0 1))) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_project10.testcase0000664000175000017500000000041512544707704023135 00000000000000ST_Project - BLOB distance :memory: #use in-memory database SELECT ST_Project(GeomFromText('POINT(0 0)', 4326), zeroblob(4), Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project(GeomFromText('POINT(0 0)', 4326), zeroblob(4), Radians(45)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize29.testcase0000664000175000017500000000061312544707704023653 00000000000000ST_Segmentize - Collection - three Points :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), POINT(1 1), POINT(2 2))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), POINT(1 1), POINT(2 2))'), 0.5)) GEOMETRYCOLLECTION(POINT(0 0), POINT(1 1), POINT(2 2)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid10.testcase0000664000175000017500000000036412544707704023644 00000000000000ST_SnapToGrid - three args - NULL sizeY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 0.5, NULL); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 0.5, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3ddistance2.testcase0000664000175000017500000000034612544707704022726 000000000000003DDistance - two 2D identical points :memory: #use in-memory database SELECT ST_3DDistance(MakePoint(1, 2), MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_3DDistance(MakePoint(1, 2), MakePoint(1, 2)) 0.0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split8.testcase0000664000175000017500000000053012544707704022547 00000000000000ST_Split - Line-Multiline (error) :memory: #use in-memory database SELECT ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('MULTILINESTRING((3 0, 3 3), (5 0, 5 3))')); 1 # rows (not including the header row) 1 # columns ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('MULTILINESTRING((3 0, 3 3), (5 0, 5 3))')) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split46.testcase0000664000175000017500000000050512544707704022633 00000000000000ST_SplitRigt - MultiLine-Point (not split) :memory: #use in-memory database SELECT ST_SplitRight(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(-1, 0)); 1 # rows (not including the header row) 1 # columns ST_SplitRight(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(-1, 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_azimuth9.testcase0000664000175000017500000000033112544707704023075 00000000000000ST_Azimuth - double PointB (error) :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10, 10, 4326), 1.1); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10, 10, 4326), 1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split37.testcase0000664000175000017500000000121512544707704022632 00000000000000ST_SplitLeft - Collection-Line (not split) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_SplitLeft(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1), (5 5, 9 5, 9 9, 5 9, 5 5)))'), GeomFromText('LINESTRING(-1 0, -1 20)')))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_SplitLeft(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 10 1, 10 10, 0 10, 0 1), (5 5, 9 5, 9 9, 5 9, 5 5)))'), GeomFromText('LINESTRING(-1 0, -1 20)')))) GEOMETRYCOLLECTION(LINESTRING(0 11, 10 11), POLYGON((0 1, 0 10, 10 10, 10 1, 0 1), (5 5, 9 5, 9 9, 5 9, 5 5))) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid25.testcase0000664000175000017500000000040612544707704023647 00000000000000ST_SnapToGrid - six args - NULL grid origin (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), NULL, 1, 2, 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), NULL, 1, 2, 3, 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d24.testcase0000664000175000017500000000061012544707704022513 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, double options :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6, 0.5); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6, 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_area15.testcase0000664000175000017500000000061712544707704022410 00000000000000ST_Area Geodesic - planar Polygon - Sphere :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((50.4 50.4, 50.4 54, 54 54, 54 50.4, 50.4 50.4),(51 51, 51 53, 53 53, 53 51, 51 51))", 32632), 0); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((50.4 50.4, 50.4 54, 54 54, 54 50.4, 50.4 50.4),(51 51, 51 53, 53 53, 53 51, 51 51))", 32632), 0) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid56.testcase0000664000175000017500000000172612544707704023661 00000000000000ST_SnapToGrid - Polygon Z :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('POLYGONZ((0.1 0.1 10.1, 0.2 0.2 10.11, 0.2 5.1 10.12, 4.9 4.9 10.51, 5.1 5.1 10.49, 4.9 0.15 10.1, 0.1 0.1 10.1), (3.1 3.1 10.1, 3.2 3.1 10.11, 3.2 3.2 10.12, 3.2 3.1 10.13, 3.1 3.1 10.1), (1.1 1.1 10.1, 1.1 2.1 10.2, 2.1 2.1 10.3, 2.1 1.1 10.4, 1.1 1.1 10.1))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('POLYGONZ((0.1 0.1 10.1, 0.2 0.2 10.11, 0.2 5.1 10.12, 4.9 4.9 10.51, 5.1 5.1 10.49, 4.9 0.15 10.1, 0.1 0.1 10.1), (3.1 3.1 10.1, 3.2 3.1 10.11, 3.2 3.2 10.12, 3.2 3.1 10.13, 3.1 3.1 10.1), (1.1 1.1 10.1, 1.1 2.1 10.2, 2.1 2.1 10.3, 2.1 1.1 10.4, 1.1 1.1 10.1))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) POLYGON Z((0 0 10, 0.25 0.25 10, 0.25 5 10, 5 5 10.5, 5 0.25 10, 0 0 10), (3 3 10, 3.25 3 10, 3.25 3.25 10, 3.25 3 10.25, 3 3 10), (1 1 10, 1 2 10.25, 2 2 10.25, 2 1 10.5, 1 1 10)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/maxdistance9.testcase0000664000175000017500000000036012544707704023210 00000000000000MaxDistance - two 3D points :memory: #use in-memory database SELECT ST_MaxDistance(MakePointZ(1, 2, 3), MakePointZ(4, 6, 5)); 1 # rows (not including the header row) 1 # columns ST_MaxDistance(MakePointZ(1, 2, 3), MakePointZ(4, 6, 5)) 5.0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3ddistance10.testcase0000664000175000017500000000052512544707704023004 000000000000003DDistance - two 3D linestring :memory: #use in-memory database SELECT ST_3DDistance(GeomFromText("LINESTRINGZ(0 0 1, 10 2 5)"), GeomFromText("LINESTRINGZ(0 2 3, 10 3 4)")); 1 # rows (not including the header row) 1 # columns ST_3DDistance(GeomFromText("LINESTRINGZ(0 0 1, 10 2 5)"), GeomFromText("LINESTRINGZ(0 2 3, 10 3 4)")); 1.262388:6 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_node1.testcase0000664000175000017500000000026312544707704022335 00000000000000ST_Node - Invalid BLOB input (error) :memory: #use in-memory database SELECT ST_Node(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_Node(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/maxdistance1.testcase0000664000175000017500000000033712544707704023204 00000000000000MaxDistance - two 2D points :memory: #use in-memory database SELECT ST_MaxDistance(MakePoint(1, 2), MakePoint(4, 6)) 1 # rows (not including the header row) 1 # columns ST_MaxDistance(MakePoint(1, 2), MakePoint(4, 6)) 5.0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid59.testcase0000664000175000017500000000262312544707704023661 00000000000000ST_SnapToGrid - MultiPolygon Z :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTIPOLYGONZ(((5.11 5.11 10.1, 5.12 5.11 10.11, 5.11 5.11 10.12, 5.11 5.12 10.13, 5.11 5.11 10.1)), ((0.1 0.1 10.1, 0.2 0.2 10.11, 0.2 5.1 10.12, 4.9 4.9 10.13, 5.1 5.1 10.14, 4.9 0.15 10.15, 0.1 0.1 10.1), (3.1 3.1 10.1, 3.2 3.1 10.11, 3.2 3.2 10.11, 3.2 3.1 10.12, 3.1 3.1 10.1), (1.1 1.1 10.1, 1.1 2.1 10.11, 2.1 2.1 10.12, 2.1 1.1 10.13, 1.1 1.1 10.1)), ((5.51 5.51 10.1, 6.51 5.51 10.11, 6.51 6.51 10.12, 5.51 6.51 10.13, 5.51 5.51 10.1)))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTIPOLYGONZ(((5.11 5.11 10.1, 5.12 5.11 10.11, 5.11 5.11 10.12, 5.11 5.12 10.13, 5.11 5.11 10.1)), ((0.1 0.1 10.1, 0.2 0.2 10.11, 0.2 5.1 10.12, 4.9 4.9 10.13, 5.1 5.1 10.14, 4.9 0.15 10.15, 0.1 0.1 10.1), (3.1 3.1 10.1, 3.2 3.1 10.11, 3.2 3.2 10.11, 3.2 3.1 10.12, 3.1 3.1 10.1), (1.1 1.1 10.1, 1.1 2.1 10.11, 2.1 2.1 10.12, 2.1 1.1 10.13, 1.1 1.1 10.1)), ((5.51 5.51 10.1, 6.51 5.51 10.11, 6.51 6.51 10.12, 5.51 6.51 10.13, 5.51 5.51 10.1)))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) MULTIPOLYGON Z(((0 0 10, 0.25 0.25 10, 0.25 5 10, 5 5 10.25, 5 0.25 10.25, 0 0 10), (3 3 10, 3.25 3 10, 3.25 3.25 10, 3.25 3 10, 3 3 10), (1 1 10, 1 2 10, 2 2 10, 2 1 10.25, 1 1 10)), ((5.5 5.5 10, 6.5 5.5 10, 6.5 6.5 10, 5.5 6.5 10.25, 5.5 5.5 10))) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d25.testcase0000664000175000017500000000141212544707704022515 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, short SRS :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 0); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 0) 15.123457 14.765432 7.654321:0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split2.testcase0000664000175000017500000000030712544707704022543 00000000000000ST_Split - NULL BLOB input (error) :memory: #use in-memory database SELECT ST_Split(NULL, MakePoint(5, 0)); 1 # rows (not including the header row) 1 # columns ST_Split(NULL, MakePoint(5, 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_geohash4.testcase0000664000175000017500000000032312544707704023026 00000000000000ST_GeoHash - not Long/Lat geometry :memory: #use in-memory database SELECT ST_GeoHash(MakePoint(123456, 654321)); 1 # rows (not including the header row) 1 # columns ST_GeoHash(MakePoint(123456, 654321)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid21.testcase0000664000175000017500000000040512544707704023642 00000000000000ST_SnapToGrid - five args - text sizeX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, 'alpha', 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, 'alpha', 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize13.testcase0000664000175000017500000000250212544707704023643 00000000000000ST_Segmentize - Collection ZM :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(0 0 10 11), LINESTRINGZM(1 1 10 11, 1 2 11 13), POLYGONZM((3 3 10 11, 6 3 11 12, 6 6 12 13, 3 6 13 14, 3 3 10 11), (4 4 10 11, 5 4 11 12, 5 5 12 13, 5 4 13 14, 4 4 10 11)))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(0 0 10 11), LINESTRINGZM(1 1 10 11, 1 2 11 13), POLYGONZM((3 3 10 11, 6 3 11 12, 6 6 12 13, 3 6 13 14, 3 3 10 11), (4 4 10 11, 5 4 11 12, 5 5 12 13, 5 4 13 14, 4 4 10 11)))'), 0.5)) GEOMETRYCOLLECTION ZM(POINT ZM(0 0 10 11), LINESTRING ZM(1 1 10 11, 1 1.5 10.5 12, 1 2 11 13), POLYGON ZM((3 3 10 11, 3.5 3 10.166667 11.166667, 4 3 10.333333 11.333333, 4.5 3 10.5 11.5, 5 3 10.666667 11.666667, 5.5 3 10.833333 11.833333, 6 3 11 12, 6 3.5 11.166667 12.166667, 6 4 11.333333 12.333333, 6 4.5 11.5 12.5, 6 5 11.666667 12.666667, 6 5.5 11.833333 12.833333, 6 6 12 13, 5.5 6 12.166667 13.166667, 5 6 12.333333 13.333333, 4.5 6 12.5 13.5, 4 6 12.666667 13.666667, 3.5 6 12.833333 13.833333, 3 6 13 14, 3 5.5 12.5 13.5, 3 5 12 13, 3 4.5 11.5 12.5, 3 4 11 12, 3 3.5 10.5 11.5, 3 3 10 11), (4 4 10 11, 4.5 4 10.5 11.5, 5 4 11 12, 5 4.5 11.5 12.5, 5 5 12 13, 5 4.5 12.5 13.5, 5 4 13 14, 4.5 4 11.5 12.5, 4 4 10 11))) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_makevaliddiscarded4.testcase0000664000175000017500000000055212544707704025214 00000000000000ST_MakeValid - already valid MultiPolygon :memory: #use in-memory database SELECT ST_MakeValidDiscarded(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((2 2, 3 2, 3 3, 2 3, 2 2)))')); 1 # rows (not including the header row) 1 # columns ST_MakeValidDiscarded(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((2 2, 3 2, 3 3, 2 3, 2 2)))')) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d20.testcase0000664000175000017500000000074212544707704022515 00000000000000ST_AsX3D - 3D linestring, 6 digit precision :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6) :0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3dmaxdistance6.testcase0000664000175000017500000000033612544707704023437 000000000000003DMaxDistance - bad blob second arg :memory: #use in-memory database SELECT ST_3DMaxDistance(MakePoint(1, 2), "hello") 1 # rows (not including the header row) 1 # columns ST_3DMaxDistance(MakePoint(1, 2), "hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split30.testcase0000664000175000017500000000112712544707704022625 00000000000000ST_SplitLeft - Polygon-Line (split) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_SplitLeft(GeomFromText('POLYGONZ((0 1 10, 10 1 11, 10 10 12, 0 10 13, 0 1 10), (5 5 10, 9 5 11, 9 9 12, 5 9 13, 5 5 10))'), GeomFromText('LINESTRING(7 0, 7 20)')))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_SplitLeft(GeomFromText('POLYGONZ((0 1 10, 10 1 11, 10 10 12, 0 10 13, 0 1 10), (5 5 10, 9 5 11, 9 9 12, 5 9 13, 5 5 10))'), GeomFromText('LINESTRING(7 0, 7 20)')))) POLYGON Z((7 1 10.7, 0 1 10, 0 10 13, 7 10 12.3, 7 9 12.5, 5 9 13, 5 5 10, 7 5 10.5, 7 1 10.7)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid64.testcase0000664000175000017500000000120712544707704023652 00000000000000ST_SnapToGrid - MultiLinestring M :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTILINESTRINGM((1.2 2.3 10.1, 1.21 2.31 10.11, 1.22 2.32 10.1, 2.1 3.9 10.11), (2.11 3.11 10, 2.12 3.12 10.1), (3.2 4.2 10.1, 4.2 3.2 10.4))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTILINESTRINGM((1.2 2.3 10.1, 1.21 2.31 10.11, 1.22 2.32 10.1, 2.1 3.9 10.11), (2.11 3.11 10, 2.12 3.12 10.1), (3.2 4.2 10.1, 4.2 3.2 10.4))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) MULTILINESTRING M((1.25 2.25 10, 2 4 10), (3.25 4.25 10, 4.25 3.25 10.5)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d3.testcase0000664000175000017500000000022412544707704022431 00000000000000ST_AsX3D - int geometry :memory: #use in-memory database SELECT ST_AsX3D(1); 1 # rows (not including the header row) 1 # columns ST_AsX3D(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3dmaxdistance4.testcase0000664000175000017500000000035212544707704023433 000000000000003DMaxDistance - bad blob second arg :memory: #use in-memory database SELECT ST_3DMaxDistance(MakePoint(1, 2), zeroblob(100)) 1 # rows (not including the header row) 1 # columns ST_3DMaxDistance(MakePoint(1, 2), zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split13.testcase0000664000175000017500000000046612544707704022633 00000000000000ST_Split - Line-Point (split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(7, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(7, 0))) MULTILINESTRING((0 0, 7 0), (7 0, 10 0)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid9.testcase0000664000175000017500000000037212544707704023573 00000000000000ST_SnapToGrid - three args - text sizeX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 'alpha', 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 'alpha', 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3dmaxdistance5.testcase0000664000175000017500000000032112544707704023430 000000000000003DMaxDistance - non-blob first arg :memory: #use in-memory database SELECT ST_3DMaxDistance(3, MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_3DMaxDistance(3, MakePoint(1, 2)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_azimuth3.testcase0000664000175000017500000000040612544707704023072 00000000000000ST_Azimuth - same Point :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10.5, 10.5, 4326), MakePoint(10.5, 10.5, 4326)); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10.5, 10.5, 4326), MakePoint(10.5, 10.5, 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid13.testcase0000664000175000017500000000040512544707704023643 00000000000000ST_SnapToGrid - five args - NULL originX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), NULL, 1, 0.5, 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), NULL, 1, 0.5, 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_node7.testcase0000664000175000017500000000065712544707704022352 00000000000000ST_Node - Valid MultiLinestring 2D input :memory: #use in-memory database SELECT ST_AsText(ST_Node(ST_GeomFromText('MULTILINESTRING((0 0, 10 10, 0 10, 10 0),(10 8, 10 12))'))); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Node(ST_GeomFromText('MULTILINESTRING((0 0, 10 10, 0 10, 10 0),(10 8, 10 12))'))) MULTILINESTRING((0 0, 5 5), (5 5, 10 10), (10 10, 0 10, 5 5), (5 5, 10 0), (10 8, 10 10), (10 10, 10 12)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split42.testcase0000664000175000017500000000125012544707704022625 00000000000000ST_SplitRight - Polygon-Line (split) :memory: #use in-memory database SELECT AsText(ST_SplitRight(GeomFromText('POLYGONZM((0 1 10 100, 10 1 11 101, 10 10 12 102, 0 10 13 103, 0 1 10 100), (5 5 10 100, 9 5 11 101, 9 9 12 102, 5 9 13 103, 5 5 10 100))'), GeomFromText('LINESTRING(7 0, 7 20)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitRight(GeomFromText('POLYGONZM((0 1 10 100, 10 1 11 101, 10 10 12 102, 0 10 13 103, 0 1 10 100), (5 5 10 100, 9 5 11 101, 9 9 12 102, 5 9 13 103, 5 5 10 100))'), GeomFromText('LINESTRING(7 0, 7 20)'))) POLYGON ZM((7 10 12.3 0, 10 10 12 0, 10 1 11 0, 7 1 10.7 0, 7 5 10.5 0, 9 5 11 0, 9 9 12 0, 7 9 12.5 0, 7 10 12.3 0)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize24.testcase0000664000175000017500000000146412544707704023653 00000000000000ST_Segmentize - Polygon M :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('POLYGONM((3 3 10, 6 3 11, 6 6 12, 3 6 13, 3 3 10), (4 4 10, 5 4 11, 5 5 12, 5 4 13, 4 4 10))'), 0.5)); 1 # rows (not including the header row) 1 # column ST_AsText(ST_Segmentize(GeomFromText('POLYGONM((3 3 10, 6 3 11, 6 6 12, 3 6 13, 3 3 10), (4 4 10, 5 4 11, 5 5 12, 5 4 13, 4 4 10))'), 0.5)) POLYGON M((3 3 10, 3.5 3 10.166667, 4 3 10.333333, 4.5 3 10.5, 5 3 10.666667, 5.5 3 10.833333, 6 3 11, 6 3.5 11.166667, 6 4 11.333333, 6 4.5 11.5, 6 5 11.666667, 6 5.5 11.833333, 6 6 12, 5.5 6 12.166667, 5 6 12.333333, 4.5 6 12.5, 4 6 12.666667, 3.5 6 12.833333, 3 6 13, 3 5.5 12.5, 3 5 12, 3 4.5 11.5, 3 4 11, 3 3.5 10.5, 3 3 10), (4 4 10, 4.5 4 10.5, 5 4 11, 5 4.5 11.5, 5 5 12, 5 4.5 12.5, 5 4 13, 4.5 4 11.5, 4 4 10)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_makevalid6.testcase0000664000175000017500000000054512544707704023355 00000000000000ST_MakeValid - invalid MultiPolygon :memory: #use in-memory database SELECT ST_IsValid(ST_MakeValid(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 0 1, 1 1, 0 0)), ((2 2, 3 2, 3 3, 2 3, 2 2)))'))); 1 # rows (not including the header row) 1 # columns ST_IsValid(ST_MakeValid(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 0 1, 1 1, 0 0)), ((2 2, 3 2, 3 3, 2 3, 2 2)))'))) 1 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d12.testcase0000664000175000017500000000060312544707704022512 00000000000000ST_AsX3D - 2D multilinestring :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('MULTILINESTRING((10 10, 11 10, 11 11), (20 20, 21 20, 21 21))')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('MULTILINESTRING((10 10, 11 10, 11 11), (20 20, 21 20, 21 21))')) 10 10 11 10 11 11 20 20 21 20 21 21 ' />:0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3ddistance4.testcase0000664000175000017500000000034112544707704022723 000000000000003DDistance - bad blob second arg :memory: #use in-memory database SELECT ST_3DDistance(MakePoint(1, 2), zeroblob(100)) 1 # rows (not including the header row) 1 # columns ST_3DDistance(MakePoint(1, 2), zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3dmaxdistance7.testcase0000664000175000017500000000051112544707704023433 000000000000003DMaxDistance - parallel 2D lines :memory: #use in-memory database SELECT ST_3DMaxDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 1 # rows (not including the header row) 1 # columns ST_3DMaxDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 10.198039:6 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split12.testcase0000664000175000017500000000056112544707704022626 00000000000000ST_Split - Line-Collection (error) :memory: #use in-memory database SELECT ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)')); 1 # rows (not including the header row) 1 # columns ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)')) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_azimuth2.testcase0000664000175000017500000000045012544707704023070 00000000000000ST_Azimuth - -1 SRID points :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(123456, 12345678.5, -1), MakePoint(123457, 12345679.5, -1)); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(123456, 12345678.5, -1), MakePoint(123457, 12345679.5, -1)); 0.785398:6 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize30.testcase0000664000175000017500000000066312544707704023650 00000000000000ST_Segmentize - Collection - two Linestrings :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 1 2), LINESTRING(3 3, 4 3))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 1 2), LINESTRING(3 3, 4 3))'), 0.5)) GEOMETRYCOLLECTION(LINESTRING(1 1, 1 1.5, 1 2), LINESTRING(3 3, 3.5 3, 4 3)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split47.testcase0000664000175000017500000000056112544707704022636 00000000000000ST_SplitRight - MultiLine-Line (not split) :memory: #use in-memory database SELECT ST_SplitRight(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(-1 0, -1 3)')); 1 # rows (not including the header row) 1 # columns ST_SplitRight(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(-1 0, -1 3)')) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid65.testcase0000664000175000017500000000262312544707704023656 00000000000000ST_SnapToGrid - MultiPolygon M :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTIPOLYGONM(((5.11 5.11 10.1, 5.12 5.11 10.11, 5.11 5.11 10.12, 5.11 5.12 10.13, 5.11 5.11 10.1)), ((0.1 0.1 10.1, 0.2 0.2 10.11, 0.2 5.1 10.12, 4.9 4.9 10.13, 5.1 5.1 10.14, 4.9 0.15 10.15, 0.1 0.1 10.1), (3.1 3.1 10.1, 3.2 3.1 10.11, 3.2 3.2 10.11, 3.2 3.1 10.12, 3.1 3.1 10.1), (1.1 1.1 10.1, 1.1 2.1 10.11, 2.1 2.1 10.12, 2.1 1.1 10.13, 1.1 1.1 10.1)), ((5.51 5.51 10.1, 6.51 5.51 10.11, 6.51 6.51 10.12, 5.51 6.51 10.13, 5.51 5.51 10.1)))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTIPOLYGONM(((5.11 5.11 10.1, 5.12 5.11 10.11, 5.11 5.11 10.12, 5.11 5.12 10.13, 5.11 5.11 10.1)), ((0.1 0.1 10.1, 0.2 0.2 10.11, 0.2 5.1 10.12, 4.9 4.9 10.13, 5.1 5.1 10.14, 4.9 0.15 10.15, 0.1 0.1 10.1), (3.1 3.1 10.1, 3.2 3.1 10.11, 3.2 3.2 10.11, 3.2 3.1 10.12, 3.1 3.1 10.1), (1.1 1.1 10.1, 1.1 2.1 10.11, 2.1 2.1 10.12, 2.1 1.1 10.13, 1.1 1.1 10.1)), ((5.51 5.51 10.1, 6.51 5.51 10.11, 6.51 6.51 10.12, 5.51 6.51 10.13, 5.51 5.51 10.1)))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) MULTIPOLYGON M(((0 0 10, 0.25 0.25 10, 0.25 5 10, 5 5 10.25, 5 0.25 10.25, 0 0 10), (3 3 10, 3.25 3 10, 3.25 3.25 10, 3.25 3 10, 3 3 10), (1 1 10, 1 2 10, 2 2 10, 2 1 10.25, 1 1 10)), ((5.5 5.5 10, 6.5 5.5 10, 6.5 6.5 10, 5.5 6.5 10.25, 5.5 5.5 10))) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize10.testcase0000664000175000017500000000031612544707704023641 00000000000000ST_Segmentize - NULL BLOB (error) :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(NULL, 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(NULL, 0.5)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid45.testcase0000664000175000017500000000053412544707704023653 00000000000000ST_SnapToGrid - MultiPoint 2D :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTIPOINT(1.2 2.3, 1.21 2.31, 2.2 3.3, 2.21 3.33)'), 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTIPOINT(1.2 2.3, 1.21 2.31, 2.2 3.3, 2.21 3.33)'), 0.25)) MULTIPOINT(1.25 2.25, 2.25 3.25) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_geohash5.testcase0000664000175000017500000000026312544707704023032 00000000000000ST_GeoHash - zeroblob geometry :memory: #use in-memory database SELECT ST_GeoHash(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_GeoHash(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split45.testcase0000664000175000017500000000052412544707704022633 00000000000000ST_SplitRight - Line-Line (not split) :memory: #use in-memory database SELECT AsText(ST_SplitRight(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(11 0, 11 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitRight(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(11 0, 11 3)'))) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split38.testcase0000664000175000017500000000046312544707704022637 00000000000000ST_SplitlRight - Line-Point (split) :memory: #use in-memory database SELECT AsText(ST_SplitRight(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(7, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitRight(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(7, 0))) LINESTRING(7 0, 10 0) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_project12.testcase0000664000175000017500000000037212544707704023141 00000000000000ST_Project - TEXT bearing :memory: #use in-memory database SELECT ST_Project(GeomFromText('POINT(0 0)', 4326), 100000, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_Project(GeomFromText('POINT(0 0)', 4326), 100000, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize14.testcase0000664000175000017500000000036212544707704023646 00000000000000ST_Segmentize - Point :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('POINT(0 0)'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('POINT(0 0)'), 0.5)) POINT(0 0) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split25.testcase0000664000175000017500000000045112544707704022630 00000000000000ST_Split - Line-Point (not split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(11, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(11, 0))) LINESTRING(0 0, 10 0) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid55.testcase0000664000175000017500000000072312544707704023654 00000000000000ST_SnapToGrid - Linestring Z :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('LINESTRINGZ(1.2 2.3 10.1, 1.21 2.31 10.11, 1.22 2.32 10.12, 2.1 3.9 11.4)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('LINESTRINGZ(1.2 2.3 10.1, 1.21 2.31 10.11, 1.22 2.32 10.12, 2.1 3.9 11.4)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) LINESTRING Z(1.25 2.25 10, 2 4 11.5) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize15.testcase0000664000175000017500000000040112544707704023641 00000000000000ST_Segmentize - Point Z :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('POINTZ(0 0 10)'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('POINTZ(0 0 10)'), 0.5)) POINT Z(0 0 10) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_azimuth17.testcase0000664000175000017500000000053012544707704023155 00000000000000ST_Azimuth - Collection (error) :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10, 10, 4326), GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 0, 1 1), POINT(2 2))')); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10, 10, 4326), GeomFromText('GEOMETRYCOLLECTION(LINESTRING(0 0, 1 1), POINT(2 2))')) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid60.testcase0000664000175000017500000000052512544707704023650 00000000000000ST_SnapToGrid - Point M :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('POINTM(1.2 2.3 10.1)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('POINTM(1.2 2.3 10.1)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) POINT M(1.25 2.25 10) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize25.testcase0000664000175000017500000000210212544707704023642 00000000000000ST_Segmentize - Polygon ZM :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('POLYGONZM((3 3 10 11, 6 3 11 12, 6 6 12 13, 3 6 13 14, 3 3 10 11), (4 4 10 11, 5 4 11 12, 5 5 12 13, 5 4 13 14, 4 4 10 11))'), 0.5)); 1 # rows (not including the header row) 1 # column ST_AsText(ST_Segmentize(GeomFromText('POLYGONZM((3 3 10 11, 6 3 11 12, 6 6 12 13, 3 6 13 14, 3 3 10 11), (4 4 10 11, 5 4 11 12, 5 5 12 13, 5 4 13 14, 4 4 10 11))'), 0.5)) POLYGON ZM((3 3 10 11, 3.5 3 10.166667 11.166667, 4 3 10.333333 11.333333, 4.5 3 10.5 11.5, 5 3 10.666667 11.666667, 5.5 3 10.833333 11.833333, 6 3 11 12, 6 3.5 11.166667 12.166667, 6 4 11.333333 12.333333, 6 4.5 11.5 12.5, 6 5 11.666667 12.666667, 6 5.5 11.833333 12.833333, 6 6 12 13, 5.5 6 12.166667 13.166667, 5 6 12.333333 13.333333, 4.5 6 12.5 13.5, 4 6 12.666667 13.666667, 3.5 6 12.833333 13.833333, 3 6 13 14, 3 5.5 12.5 13.5, 3 5 12 13, 3 4.5 11.5 12.5, 3 4 11 12, 3 3.5 10.5 11.5, 3 3 10 11), (4 4 10 11, 4.5 4 10.5 11.5, 5 4 11 12, 5 4.5 11.5 12.5, 5 5 12 13, 5 4.5 12.5 13.5, 5 4 13 14, 4.5 4 11.5 12.5, 4 4 10 11)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_project8.testcase0000664000175000017500000000037712544707704023073 00000000000000ST_Project - NULL distance :memory: #use in-memory database SELECT ST_Project(GeomFromText('POINT(0 0)', 4326), NULL, Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project(GeomFromText('POINT(0 0)', 4326), NULL, Radians(45)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_makevaliddiscarded7.testcase0000664000175000017500000000043012544707704025212 00000000000000ST_MakeValid - invalid Polygon :memory: #use in-memory database SELECT ST_IsValid(ST_MakeValid(GeomFromText('POLYGON((0 0, 1 0, 0 1, 1 1, 0 0))'))); 1 # rows (not including the header row) 1 # columns ST_IsValid(ST_MakeValid(GeomFromText('POLYGON((0 0, 1 0, 0 1, 1 1, 0 0))'))) 1 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize21.testcase0000664000175000017500000000052212544707704023642 00000000000000ST_Segmentize - Linestring ZM :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('LINESTRINGZM(1 1 10 11, 1 2 11 13)'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('LINESTRINGZM(1 1 10 11, 1 2 11 13)'), 0.5)) LINESTRING ZM(1 1 10 11, 1 1.5 10.5 12, 1 2 11 13) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize31.testcase0000664000175000017500000000137312544707704023650 00000000000000ST_Segmentize - Collection - two Polygons :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)), POLYGON((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4)))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)), POLYGON((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4)))'), 0.5)) GEOMETRYCOLLECTION(POLYGON((0 0, 0.5 0, 1 0, 1 0.5, 1 1, 0.5 1, 0 1, 0 0.5, 0 0)), POLYGON((3 3, 3.5 3, 4 3, 4.5 3, 5 3, 5.5 3, 6 3, 6 3.5, 6 4, 6 4.5, 6 5, 6 5.5, 6 6, 5.5 6, 5 6, 4.5 6, 4 6, 3.5 6, 3 6, 3 5.5, 3 5, 3 4.5, 3 4, 3 3.5, 3 3), (4 4, 4.5 4, 5 4, 5 4.5, 5 5, 5 4.5, 5 4, 4.5 4, 4 4))) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3ddistance6.testcase0000664000175000017500000000032512544707704022727 000000000000003DDistance - bad blob second arg :memory: #use in-memory database SELECT ST_3DDistance(MakePoint(1, 2), "hello") 1 # rows (not including the header row) 1 # columns ST_3DDistance(MakePoint(1, 2), "hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize2.testcase0000664000175000017500000000044512544707704023565 00000000000000ST_Segmentize - MultiPoint :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('MULTIPOINT(0 1, 2 3, 4 5)'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('MULTIPOINT(0 1, 2 3, 4 5)'), 0.5)) MULTIPOINT(0 1, 2 3, 4 5) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split39.testcase0000664000175000017500000000053312544707704022636 00000000000000ST_SplitRight - Line-Line (split) :memory: #use in-memory database SELECT AsText(ST_SplitRight(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(7 0, 7 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitRight(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(7 0, 7 3)'))) LINESTRING(7 1, 10 1) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid38.testcase0000664000175000017500000000044212544707704023653 00000000000000ST_SnapToGrid - six args - text sizeY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 'alpha', 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 'alpha', 3, 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split22.testcase0000664000175000017500000000062512544707704022630 00000000000000ST_Split - MultiLine-Line (not split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(-1 0, -1 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(-1 0, -1 3)'))) MULTILINESTRING((0 2, 10 2), (0 1, 10 1)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/maxdistance8.testcase0000664000175000017500000000050512544707704023210 00000000000000MaxDistance - intersecting 2D lines :memory: #use in-memory database SELECT ST_MaxDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 1 # rows (not including the header row) 1 # columns ST_MaxDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 11.180339:6 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split11.testcase0000664000175000017500000000051412544707704022623 00000000000000ST_Split - Line-Polygon (error) :memory: #use in-memory database SELECT ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')); 1 # rows (not including the header row) 1 # columns ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split41.testcase0000664000175000017500000000063412544707704022631 00000000000000ST_SplitRight - MultiLine-Line (split) :memory: #use in-memory database SELECT AsText(ST_SplitRight(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(7 0, 7 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitRight(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(7 0, 7 3)'))) MULTILINESTRING((7 2, 10 2), (7 1, 10 1)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize16.testcase0000664000175000017500000000040112544707704023642 00000000000000ST_Segmentize - Point M :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('POINTM(0 0 10)'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('POINTM(0 0 10)'), 0.5)) POINT M(0 0 10) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d4.testcase0000664000175000017500000000025712544707704022440 00000000000000ST_AsX3D - 2D point :memory: #use in-memory database SELECT ST_AsX3D(MakePoint(12, 21)); 1 # rows (not including the header row) 1 # columns ST_AsX3D(MakePoint(12, 21)) 12 21 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid12.testcase0000664000175000017500000000037212544707704023645 00000000000000ST_SnapToGrid - three args - text sizeY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 0.5, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 0.5, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d1.testcase0000664000175000017500000000023312544707704022427 00000000000000ST_AsX3D - NULL geometry :memory: #use in-memory database SELECT ST_AsX3D(NULL); 1 # rows (not including the header row) 1 # columns ST_AsX3D(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_makevalid1.testcase0000664000175000017500000000027412544707704023347 00000000000000ST_MakeValid - Invalid BLOB (error) :memory: #use in-memory database SELECT ST_MakeValid(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_MakeValid(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split35.testcase0000664000175000017500000000064112544707704022632 00000000000000ST_SplitLeft - MultiLine-Line (not split) :memory: #use in-memory database SELECT AsText(ST_SplitLeft(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(-1 0, -1 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitLeft(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(-1 0, -1 3)'))) MULTILINESTRING((0 2, 10 2), (0 1, 10 1)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_self9.testcase0000664000175000017500000000053212544707704022350 00000000000000ST_SelfIntersections - Invalid MultiPoint 3D input :memory: #use in-memory database SELECT ST_AsText(ST_SelfIntersections(ST_GeomFromText('MULTIPOINTZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'))); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_SelfIntersections(ST_GeomFromText('MULTIPOINTZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'))) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid53.testcase0000664000175000017500000000342212544707704023651 00000000000000ST_SnapToGrid - MultiPolygon ZM :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTIPOLYGONZM(((5.11 5.11 10.1 20.1, 5.12 5.11 10.11 20.11, 5.11 5.11 10.12 20.12, 5.11 5.12 10.13 20.13, 5.11 5.11 10.1 20.1)), ((0.1 0.1 10.1 20.1, 0.2 0.2 10.11 20.11, 0.2 5.1 10.12 20.12, 4.9 4.9 10.13 20.13, 5.1 5.1 10.14 20.14, 4.9 0.15 10.15 20.15, 0.1 0.1 10.1 20.1), (3.1 3.1 10.1 20.1, 3.2 3.1 10.11 20.11, 3.2 3.2 10.11 20.11, 3.2 3.1 10.12 20.12, 3.1 3.1 10.1 20.1), (1.1 1.1 10.1 20.1, 1.1 2.1 10.11 20.11, 2.1 2.1 10.12 20.12, 2.1 1.1 10.13 20.13, 1.1 1.1 10.1 20.1)), ((5.51 5.51 10.1 20.1, 6.51 5.51 10.11 20.11, 6.51 6.51 10.12 20.12, 5.51 6.51 10.13 20.13, 5.51 5.51 10.1 20.1)))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTIPOLYGONZM(((5.11 5.11 10.1 20.1, 5.12 5.11 10.11 20.11, 5.11 5.11 10.12 20.12, 5.11 5.12 10.13 20.13, 5.11 5.11 10.1 20.1)), ((0.1 0.1 10.1 20.1, 0.2 0.2 10.11 20.11, 0.2 5.1 10.12 20.12, 4.9 4.9 10.13 20.13, 5.1 5.1 10.14 20.14, 4.9 0.15 10.15 20.15, 0.1 0.1 10.1 20.1), (3.1 3.1 10.1 20.1, 3.2 3.1 10.11 20.11, 3.2 3.2 10.11 20.11, 3.2 3.1 10.12 20.12, 3.1 3.1 10.1 20.1), (1.1 1.1 10.1 20.1, 1.1 2.1 10.11 20.11, 2.1 2.1 10.12 20.12, 2.1 1.1 10.13 20.13, 1.1 1.1 10.1 20.1)), ((5.51 5.51 10.1 20.1, 6.51 5.51 10.11 20.11, 6.51 6.51 10.12 20.12, 5.51 6.51 10.13 20.13, 5.51 5.51 10.1 20.1)))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) MULTIPOLYGON ZM(((0 0 10 20, 0.25 0.25 10 20, 0.25 5 10 20, 5 5 10.25 20.25, 5 0.25 10.25 20.25, 0 0 10 20), (3 3 10 20, 3.25 3 10 20, 3.25 3.25 10 20, 3.25 3 10 20, 3 3 10 20), (1 1 10 20, 1 2 10 20, 2 2 10 20, 2 1 10.25 20.25, 1 1 10 20)), ((5.5 5.5 10 20, 6.5 5.5 10 20, 6.5 6.5 10 20, 5.5 6.5 10.25 20.25, 5.5 5.5 10 20))) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid57.testcase0000664000175000017500000000072712544707704023662 00000000000000ST_SnapToGrid - MultiPoint Z :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTIPOINTZ(1.2 2.3 10.1, 1.21 2.31 10.11, 2.2 3.3 21.1, 2.21 3.33 21.12)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTIPOINTZ(1.2 2.3 10.1, 1.21 2.31 10.11, 2.2 3.3 21.1, 2.21 3.33 21.12)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) MULTIPOINT Z(1.25 2.25 10, 2.25 3.25 21) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid33.testcase0000664000175000017500000000043412544707704023647 00000000000000ST_SnapToGrid - six args - NULL sizeM (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, 3, NULL); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, 3, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_project6.testcase0000664000175000017500000000042212544707704023060 00000000000000ST_Project - start Point (not long/lat) :memory: #use in-memory database SELECT ST_Project(GeomFromText('POINT(0 0)', 32632), 100000, Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project(GeomFromText('POINT(0 0)', 32632), 100000, Radians(45)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_azimuth4.testcase0000664000175000017500000000035312544707704023074 00000000000000ST_Azimuth - bad blob PointA (error) :memory: #use in-memory database SELECT ST_Azimuth(zeroblob(4), MakePoint(10, 10, 4326)); 1 # rows (not including the header row) 1 # columns ST_Azimuth(zeroblob(4), MakePoint(10, 10, 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3ddistance3.testcase0000664000175000017500000000034012544707704022721 000000000000003DDistance - bad blob first arg :memory: #use in-memory database SELECT ST_3DDistance(zeroblob(100), MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_3DDistance(zeroblob(100), MakePoint(1, 2)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid44.testcase0000664000175000017500000000123012544707704023644 00000000000000ST_SnapToGrid - Polygon 2D :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('POLYGON((0.1 0.1, 0.2 0.2, 0.2 5.1, 4.9 4.9, 5.1 5.1, 4.9 0.15, 0.1 0.1), (3.1 3.1, 3.2 3.1, 3.2 3.2, 3.2 3.1, 3.1 3.1), (1.1 1.1, 1.1 2.1, 2.1 2.1, 2.1 1.1, 1.1 1.1))'), 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('POLYGON((0.1 0.1, 0.2 0.2, 0.2 5.1, 4.9 4.9, 5.1 5.1, 4.9 0.15, 0.1 0.1), (3.1 3.1, 3.2 3.1, 3.2 3.2, 3.2 3.1, 3.1 3.1), (1.1 1.1, 1.1 2.1, 2.1 2.1, 2.1 1.1, 1.1 1.1))'), 0.25)) POLYGON((0 0, 0.25 0.25, 0.25 5, 5 5, 5 0.25, 0 0), (3 3, 3.25 3, 3.25 3.25, 3.25 3, 3 3), (1 1, 1 2, 2 2, 2 1, 1 1)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_makevaliddiscarded5.testcase0000664000175000017500000000044612544707704025217 00000000000000ST_MakeValidDiscarded - already valid Polygon :memory: #use in-memory database SELECT ST_MakeValidDiscarded(GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')); 1 # rows (not including the header row) 1 # columns ST_MakeValidDiscarded(GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid54.testcase0000664000175000017500000000052512544707704023653 00000000000000ST_SnapToGrid - Point Z :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('POINTZ(1.2 2.3 10.1)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('POINTZ(1.2 2.3 10.1)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) POINT Z(1.25 2.25 10) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split15.testcase0000664000175000017500000000056012544707704022630 00000000000000ST_Split - MultiLine-Point (split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(7, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(7, 0))) MULTILINESTRING((0 2, 10 2), (0 0, 7 0), (7 0, 10 0)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize9.testcase0000664000175000017500000000032412544707704023570 00000000000000ST_Segmentize - text geometry (error) :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize('alpha', 0)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize('alpha', 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_project5.testcase0000664000175000017500000000034412544707704023062 00000000000000ST_Project - invalid BLOB start Point :memory: #use in-memory database SELECT ST_Project(zeroblob(4), 100000, Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project(zeroblob(4), 100000, Radians(45)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize19.testcase0000664000175000017500000000047112544707704023654 00000000000000ST_Segmentize - Linestring Z :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('LINESTRINGZ(1 1 10, 1 2 11)'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('LINESTRINGZ(1 1 10, 1 2 11)'), 0.5)) LINESTRING Z(1 1 10, 1 1.5 10.5, 1 2 11) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split26.testcase0000664000175000017500000000057212544707704022635 00000000000000ST_SplitlLeft - Line-Point (split) :memory: #use in-memory database SELECT AsText(ST_SplitLeft(GeomFromText('LINESTRINGZM(0 0 10 100, 10 0 11 101)'), MakePointZM(7, 0, 10, 100))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitLeft(GeomFromText('LINESTRINGZM(0 0 10 100, 10 0 11 101)'), MakePointZM(7, 0, 10, 100))) LINESTRING ZM(0 0 10 100, 7 0 10.7 100.7) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3dmaxdistance8.testcase0000664000175000017500000000051312544707704023436 000000000000003DMaxDistance - intersecting 2D lines :memory: #use in-memory database SELECT ST_3DMaxDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 1 # rows (not including the header row) 1 # columns ST_3DMaxDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 11.180339:6 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize1.testcase0000664000175000017500000000132112544707704023556 00000000000000ST_Segmentize - Collection :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 1 2), POLYGON((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4)))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 1 2), POLYGON((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4)))'), 0.5)) GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 1 1.5, 1 2), POLYGON((3 3, 3.5 3, 4 3, 4.5 3, 5 3, 5.5 3, 6 3, 6 3.5, 6 4, 6 4.5, 6 5, 6 5.5, 6 6, 5.5 6, 5 6, 4.5 6, 4 6, 3.5 6, 3 6, 3 5.5, 3 5, 3 4.5, 3 4, 3 3.5, 3 3), (4 4, 4.5 4, 5 4, 5 4.5, 5 5, 5 4.5, 5 4, 4.5 4, 4 4))) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d28.testcase0000664000175000017500000000102512544707704022520 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, long SRS, int refid :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1, 1); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1, 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3ddistance5.testcase0000664000175000017500000000031012544707704022720 000000000000003DDistance - non-blob first arg :memory: #use in-memory database SELECT ST_3DDistance(3, MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_3DDistance(3, MakePoint(1, 2)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid15.testcase0000664000175000017500000000041312544707704023644 00000000000000ST_SnapToGrid - five args - text originX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 'alpha', 1, 0.5, 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 'alpha', 1, 0.5, 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_self2.testcase0000664000175000017500000000030512544707704022337 00000000000000ST_SelfIntersections - Invalid INT input (error) :memory: #use in-memory database SELECT ST_SelfIntersections(1); 1 # rows (not including the header row) 1 # columns ST_SelfIntersections(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/maxdistance10.testcase0000664000175000017500000000053112544707704023260 00000000000000MaxDistance - two 3D linestring :memory: #use in-memory database SELECT ST_MaxDistance(GeomFromText("LINESTRINGZ(0 0 1, 10 2 5)"), GeomFromText("LINESTRINGZ(0 2 3, 10 3 4)")); 1 # rows (not including the header row) 1 # columns ST_MaxDistance(GeomFromText("LINESTRINGZ(0 0 1, 10 2 5)"), GeomFromText("LINESTRINGZ(0 2 3, 10 3 4)")); 10.440306:6 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid30.testcase0000664000175000017500000000043412544707704023644 00000000000000ST_SnapToGrid - six args - NULL sizeX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), NULL, 2, 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), NULL, 2, 3, 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d22.testcase0000664000175000017500000000061612544707704022517 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, text options :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split6.testcase0000664000175000017500000000037212544707704022551 00000000000000ST_Split - text input blade (error) :memory: #use in-memory database SELECT ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_azimuth16.testcase0000664000175000017500000000046112544707704023157 00000000000000ST_Azimuth - Polygon (error) :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10, 10, 4326), GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10, 10, 4326), GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid37.testcase0000664000175000017500000000045212544707704023653 00000000000000ST_SnapToGrid - six args - BLOB sizeY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, zeroblob(4), 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, zeroblob(4), 3, 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_azimuth11.testcase0000664000175000017500000000033512544707704023152 00000000000000ST_Azimuth - text PointB (error) :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10, 10, 4326), 'beta'); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10, 10, 4326), 'beta') (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/maxdistance2.testcase0000664000175000017500000000035112544707704023201 00000000000000MaxDistance - two 2D identical points :memory: #use in-memory database SELECT ST_MaxDistance(MakePoint(1, 2), MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_MaxDistance(MakePoint(1, 2), MakePoint(1, 2)) 0.0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_project2.testcase0000664000175000017500000000031312544707704023053 00000000000000ST_Project - INTEGER start Point :memory: #use in-memory database SELECT ST_Project(1, 100000, Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project(1, 100000, Radians(45)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d27.testcase0000664000175000017500000000103412544707704022517 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, long SRS, NULL refid :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1, NULL); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid39.testcase0000664000175000017500000000043412544707704023655 00000000000000ST_SnapToGrid - six args - NULL sizeZ (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, NULL, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, 2, NULL, 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid16.testcase0000664000175000017500000000040512544707704023646 00000000000000ST_SnapToGrid - five args - NULL originY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1, NULL, 0.5, 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1, NULL, 0.5, 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize17.testcase0000664000175000017500000000041612544707704023651 00000000000000ST_Segmentize - Point ZM :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('POINTZM(0 0 10 11)'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('POINTZM(0 0 10 11)'), 0.5)) POINT ZM(0 0 10 11) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split10.testcase0000664000175000017500000000045112544707704022622 00000000000000ST_Split - Polygon-Point (error) :memory: #use in-memory database SELECT ST_Split(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), MakePoint(4, 1)); 1 # rows (not including the header row) 1 # columns ST_Split(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), MakePoint(4, 1)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d11.testcase0000664000175000017500000000052212544707704022511 00000000000000ST_AsX3D - 3D multipoint :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('MULTIPOINTZ(10 10 101, 11 10 102, 11 11 103)')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('MULTIPOINTZ(10 10 101, 11 10 102, 11 11 103)')) :0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split29.testcase0000664000175000017500000000062712544707704022641 00000000000000ST_SplitLeft - MultiLine-Line (split) :memory: #use in-memory database SELECT AsText(ST_SplitLeft(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(7 0, 7 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitLeft(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(7 0, 7 3)'))) MULTILINESTRING((0 2, 7 2), (0 1, 7 1)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid11.testcase0000664000175000017500000000040212544707704023636 00000000000000ST_SnapToGrid - three args - BLOB sizeY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 0.5, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 0.5, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split4.testcase0000664000175000017500000000040412544707704022543 00000000000000ST_Split - Invalid BLOB blade (error) :memory: #use in-memory database SELECT ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_Split(GeomFromText('LINESTRING(0 0, 10 0)'), zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d23.testcase0000664000175000017500000000062612544707704022521 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, blob options :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128)'), 6, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_area14.testcase0000664000175000017500000000034012544707704022400 00000000000000ST_Area Geodesic - Point - Ellipsoid :memory: #use in-memory database SELECT ST_Area(GeomFromText("POINT(50.4 50.4)"), 1); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POINT(50.4 50.4)"), 1) 0.0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_azimuth8.testcase0000664000175000017500000000033112544707704023074 00000000000000ST_Azimuth - double PointA (error) :memory: #use in-memory database SELECT ST_Azimuth(1.1, MakePoint(10, 10, 4326)); 1 # rows (not including the header row) 1 # columns ST_Azimuth(1.1, MakePoint(10, 10, 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid42.testcase0000664000175000017500000000037712544707704023655 00000000000000ST_SnapToGrid - Point 2D :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('POINT(1.2 2.3)'), 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('POINT(1.2 2.3)'), 0.25)) POINT(1.25 2.25) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_makevalid8.testcase0000664000175000017500000000067512544707704023363 00000000000000ST_MakeValid - invalid MultiPolygon [discarded items] :memory: #use in-memory database SELECT IsValid(v.v), NumGeometries(v.v), GeometryType(v.v) FROM (SELECT MakeValid(g.g) AS v FROM (SELECT GeomFromText ('MULTIPOLYGON(((0 0, 1 0, 1 2, 1 1, 0 1, 0 0)), ((2 2, 3 2, 3 2.5, 2.5 2.5, 3 2.5, 3 3, 2 3, 2 2)))') AS g) AS g) AS v; 1 # rows (not including the header row) 3 # columns IsValid(v.v) NumGeometries(v.v) GeometryType(v.v) 1 2 MULTIPOLYGON libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d17.testcase0000664000175000017500000000045412544707704022523 00000000000000ST_AsX3D - 3D linestring TEXT precision :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)'), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)'), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d19.testcase0000664000175000017500000000044612544707704022526 00000000000000ST_AsX3D - 3D linestring DOUBLE precision :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)'), 0.5); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)'), 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize28.testcase0000664000175000017500000000116512544707704023655 00000000000000ST_Segmentize - Collection - single Polygon :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POLYGON((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4)))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POLYGON((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4)))'), 0.5)) GEOMETRYCOLLECTION(POLYGON((3 3, 3.5 3, 4 3, 4.5 3, 5 3, 5.5 3, 6 3, 6 3.5, 6 4, 6 4.5, 6 5, 6 5.5, 6 6, 5.5 6, 5 6, 4.5 6, 4 6, 3.5 6, 3 6, 3 5.5, 3 5, 3 4.5, 3 4, 3 3.5, 3 3), (4 4, 4.5 4, 5 4, 5 4.5, 5 5, 5 4.5, 5 4, 4.5 4, 4 4))) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_area17.testcase0000664000175000017500000000055412544707704022412 00000000000000ST_Area Geodesic - TEXT use_ellipsoid :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((-0.4 -0.4, -0.4 4, 4 4, 4 -0.4, -0.4 -0.4),(1 1, 1 3, 3 3, 3 1, 1 1))"), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split16.testcase0000664000175000017500000000064512544707704022635 00000000000000ST_Split - MultiLine-Line (split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(7 0, 7 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 1, 10 1))'), GeomFromText('LINESTRING(7 0, 7 3)'))) MULTILINESTRING((0 2, 7 2), (7 2, 10 2), (0 1, 7 1), (7 1, 10 1)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize20.testcase0000664000175000017500000000047112544707704023644 00000000000000ST_Segmentize - Linestring M :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('LINESTRINGM(1 1 10, 1 2 11)'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('LINESTRINGM(1 1 10, 1 2 11)'), 0.5)) LINESTRING M(1 1 10, 1 1.5 10.5, 1 2 11) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split17.testcase0000664000175000017500000000065312544707704022635 00000000000000ST_Split - Polygon-Line (split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), GeomFromText('LINESTRING(7 0, 7 20)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), GeomFromText('LINESTRING(7 0, 7 20)'))) MULTIPOLYGON(((7 1, 0 1, 0 10, 7 10, 7 1)), ((7 10, 10 10, 10 1, 7 1, 7 10))) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_project11.testcase0000664000175000017500000000036412544707704023141 00000000000000ST_Project - NULL bearing :memory: #use in-memory database SELECT ST_Project(GeomFromText('POINT(0 0)', 4326), 100000, NULL); 1 # rows (not including the header row) 1 # columns ST_Project(GeomFromText('POINT(0 0)', 4326), 100000, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize26.testcase0000664000175000017500000000050212544707704023645 00000000000000ST_Segmentize - Collection - single Point :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0))'), 0.5)) GEOMETRYCOLLECTION(POINT(0 0)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_makevaliddiscarded3.testcase0000664000175000017500000000030712544707704025211 00000000000000ST_MakeValidDiscarded - text (error) :memory: #use in-memory database SELECT ST_MakeValidDiscarded('alpha'); 1 # rows (not including the header row) 1 # columns ST_MakeValidDiscarded('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/maxdistance5.testcase0000664000175000017500000000031312544707704023202 00000000000000MaxDistance - non-blob first arg :memory: #use in-memory database SELECT ST_MaxDistance(3, MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_MaxDistance(3, MakePoint(1, 2)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3ddistance7.testcase0000664000175000017500000000047012544707704022731 000000000000003DDistance - parallel 2D lines :memory: #use in-memory database SELECT ST_3DDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 1 # rows (not including the header row) 1 # columns ST_3DDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 2.0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid50.testcase0000664000175000017500000000232212544707704023644 00000000000000ST_SnapToGrid - Polygon ZM :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('POLYGONZM((0.1 0.1 10.1 20.1, 0.2 0.2 10.11 20.12, 0.2 5.1 10.12 20.13, 4.9 4.9 10.51 20.51, 5.1 5.1 10.49 20.49, 4.9 0.15 10.1 20.1, 0.1 0.1 10.1 20.1), (3.1 3.1 10.1 20.1, 3.2 3.1 10.11 20.11, 3.2 3.2 10.12 20.12, 3.2 3.1 10.13 20.13, 3.1 3.1 10.1 20.1), (1.1 1.1 10.1 20.1, 1.1 2.1 10.2 20.2, 2.1 2.1 10.3 20.3, 2.1 1.1 10.4 20.4, 1.1 1.1 10.1 20.1))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('POLYGONZM((0.1 0.1 10.1 20.1, 0.2 0.2 10.11 20.12, 0.2 5.1 10.12 20.13, 4.9 4.9 10.51 20.51, 5.1 5.1 10.49 20.49, 4.9 0.15 10.1 20.1, 0.1 0.1 10.1 20.1), (3.1 3.1 10.1 20.1, 3.2 3.1 10.11 20.11, 3.2 3.2 10.12 20.12, 3.2 3.1 10.13 20.13, 3.1 3.1 10.1 20.1), (1.1 1.1 10.1 20.1, 1.1 2.1 10.2 20.2, 2.1 2.1 10.3 20.3, 2.1 1.1 10.4 20.4, 1.1 1.1 10.1 20.1))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) POLYGON ZM((0 0 10 20, 0.25 0.25 10 20, 0.25 5 10 20.25, 5 5 10.5 20.5, 5 0.25 10 20, 0 0 10 20), (3 3 10 20, 3.25 3 10 20, 3.25 3.25 10 20, 3.25 3 10.25 20.25, 3 3 10 20), (1 1 10 20, 1 2 10.25 20.25, 2 2 10.25 20.25, 2 1 10.5 20.5, 1 1 10 20)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_node4.testcase0000664000175000017500000000025312544707704022337 00000000000000ST_Node - Invalid TEXT input (error) :memory: #use in-memory database SELECT ST_Node('alpha'); 1 # rows (not including the header row) 1 # columns ST_Node('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d15.testcase0000664000175000017500000000105012544707704022512 00000000000000ST_AsX3D - 3D multipolygon :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('MULTIPOLYGONZ(((10 10 1, 11 10 2, 11 11 3, 10 11 4, 10 10 1)), ((20 20 5, 21 20 6, 21 21 7, 20 21 8, 20 20 5)))')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('MULTIPOLYGONZ(((10 10 1, 11 10 2, 11 11 3, 10 11 4, 10 10 1)), ((20 20 5, 21 20 6, 21 21 7, 20 21 8, 20 20 5)))')) :0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/Makefile.am0000664000175000017500000001616112544707704021124 00000000000000 EXTRA_DIST = 3ddistance10.testcase \ 3ddistance1.testcase \ 3ddistance2.testcase \ 3ddistance3.testcase \ 3ddistance4.testcase \ 3ddistance5.testcase \ 3ddistance6.testcase \ 3ddistance7.testcase \ 3ddistance8.testcase \ 3ddistance9.testcase \ 3dmaxdistance10.testcase \ 3dmaxdistance1.testcase \ 3dmaxdistance2.testcase \ 3dmaxdistance3.testcase \ 3dmaxdistance4.testcase \ 3dmaxdistance5.testcase \ 3dmaxdistance6.testcase \ 3dmaxdistance7.testcase \ 3dmaxdistance8.testcase \ 3dmaxdistance9.testcase \ maxdistance10.testcase \ maxdistance1.testcase \ maxdistance2.testcase \ maxdistance3.testcase \ maxdistance4.testcase \ maxdistance5.testcase \ maxdistance6.testcase \ maxdistance7.testcase \ maxdistance8.testcase \ maxdistance9.testcase \ st_asx3d10.testcase \ st_asx3d11.testcase \ st_asx3d12.testcase \ st_asx3d13.testcase \ st_asx3d14.testcase \ st_asx3d15.testcase \ st_asx3d16.testcase \ st_asx3d17.testcase \ st_asx3d18.testcase \ st_asx3d19.testcase \ st_asx3d1.testcase \ st_asx3d20.testcase \ st_asx3d21.testcase \ st_asx3d22.testcase \ st_asx3d23.testcase \ st_asx3d24.testcase \ st_asx3d25.testcase \ st_asx3d26.testcase \ st_asx3d27.testcase \ st_asx3d28.testcase \ st_asx3d29.testcase \ st_asx3d2.testcase \ st_asx3d30.testcase \ st_asx3d3.testcase \ st_asx3d4.testcase \ st_asx3d5.testcase \ st_asx3d6.testcase \ st_asx3d7.testcase \ st_asx3d8.testcase \ st_asx3d9.testcase \ st_area10.testcase \ st_area11.testcase \ st_area12.testcase \ st_area13.testcase \ st_area14.testcase \ st_area15.testcase \ st_area16.testcase \ st_area17.testcase \ st_area18.testcase \ st_azimuth11.testcase \ st_azimuth12.testcase \ st_azimuth13.testcase \ st_azimuth14.testcase \ st_azimuth15.testcase \ st_azimuth16.testcase \ st_azimuth17.testcase \ st_azimuth1.testcase \ st_azimuth2.testcase \ st_azimuth3.testcase \ st_azimuth4.testcase \ st_azimuth5.testcase \ st_azimuth6.testcase \ st_azimuth7.testcase \ st_azimuth8.testcase \ st_azimuth9.testcase \ st_geohash10.testcase \ st_geohash1.testcase \ st_geohash2.testcase \ st_geohash3.testcase \ st_geohash4.testcase \ st_geohash5.testcase \ st_geohash6.testcase \ st_geohash7.testcase \ st_geohash8.testcase \ st_geohash9.testcase \ st_makevalid1.testcase \ st_makevalid2.testcase \ st_makevalid3.testcase \ st_makevalid4.testcase \ st_makevalid5.testcase \ st_makevalid6.testcase \ st_makevalid7.testcase \ st_makevalid8.testcase \ st_makevaliddiscarded1.testcase \ st_makevaliddiscarded2.testcase \ st_makevaliddiscarded3.testcase \ st_makevaliddiscarded4.testcase \ st_makevaliddiscarded5.testcase \ st_makevaliddiscarded6.testcase \ st_makevaliddiscarded7.testcase \ st_makevaliddiscarded8.testcase \ st_project1.testcase \ st_project2.testcase \ st_project3.testcase \ st_project4.testcase \ st_project5.testcase \ st_project6.testcase \ st_project7.testcase \ st_project8.testcase \ st_project9.testcase \ st_project10.testcase \ st_project11.testcase \ st_project12.testcase \ st_project13.testcase \ st_project14.testcase \ st_segmentize10.testcase \ st_segmentize11.testcase \ st_segmentize12.testcase \ st_segmentize13.testcase \ st_segmentize14.testcase \ st_segmentize15.testcase \ st_segmentize16.testcase \ st_segmentize17.testcase \ st_segmentize18.testcase \ st_segmentize19.testcase \ st_segmentize1.testcase \ st_segmentize20.testcase \ st_segmentize21.testcase \ st_segmentize22.testcase \ st_segmentize23.testcase \ st_segmentize24.testcase \ st_segmentize25.testcase \ st_segmentize26.testcase \ st_segmentize27.testcase \ st_segmentize28.testcase \ st_segmentize29.testcase \ st_segmentize2.testcase \ st_segmentize30.testcase \ st_segmentize31.testcase \ st_segmentize3.testcase \ st_segmentize4.testcase \ st_segmentize5.testcase \ st_segmentize6.testcase \ st_segmentize7.testcase \ st_segmentize8.testcase \ st_segmentize9.testcase \ st_snaptogrid10.testcase \ st_snaptogrid11.testcase \ st_snaptogrid12.testcase \ st_snaptogrid13.testcase \ st_snaptogrid14.testcase \ st_snaptogrid15.testcase \ st_snaptogrid16.testcase \ st_snaptogrid17.testcase \ st_snaptogrid18.testcase \ st_snaptogrid19.testcase \ st_snaptogrid1.testcase \ st_snaptogrid20.testcase \ st_snaptogrid21.testcase \ st_snaptogrid22.testcase \ st_snaptogrid23.testcase \ st_snaptogrid24.testcase \ st_snaptogrid25.testcase \ st_snaptogrid26.testcase \ st_snaptogrid27.testcase \ st_snaptogrid28.testcase \ st_snaptogrid29.testcase \ st_snaptogrid2.testcase \ st_snaptogrid30.testcase \ st_snaptogrid31.testcase \ st_snaptogrid32.testcase \ st_snaptogrid33.testcase \ st_snaptogrid34.testcase \ st_snaptogrid35.testcase \ st_snaptogrid36.testcase \ st_snaptogrid37.testcase \ st_snaptogrid38.testcase \ st_snaptogrid39.testcase \ st_snaptogrid3.testcase \ st_snaptogrid40.testcase \ st_snaptogrid41.testcase \ st_snaptogrid42.testcase \ st_snaptogrid43.testcase \ st_snaptogrid44.testcase \ st_snaptogrid45.testcase \ st_snaptogrid46.testcase \ st_snaptogrid47.testcase \ st_snaptogrid48.testcase \ st_snaptogrid49.testcase \ st_snaptogrid4.testcase \ st_snaptogrid50.testcase \ st_snaptogrid51.testcase \ st_snaptogrid52.testcase \ st_snaptogrid53.testcase \ st_snaptogrid54.testcase \ st_snaptogrid55.testcase \ st_snaptogrid56.testcase \ st_snaptogrid57.testcase \ st_snaptogrid58.testcase \ st_snaptogrid59.testcase \ st_snaptogrid5.testcase \ st_snaptogrid60.testcase \ st_snaptogrid61.testcase \ st_snaptogrid62.testcase \ st_snaptogrid63.testcase \ st_snaptogrid64.testcase \ st_snaptogrid65.testcase \ st_snaptogrid6.testcase \ st_snaptogrid7.testcase \ st_snaptogrid8.testcase \ st_snaptogrid9.testcase \ st_split10.testcase \ st_split11.testcase \ st_split12.testcase \ st_split13.testcase \ st_split14.testcase \ st_split15.testcase \ st_split16.testcase \ st_split17.testcase \ st_split18.testcase \ st_split19.testcase \ st_split1.testcase \ st_split20.testcase \ st_split21.testcase \ st_split22.testcase \ st_split23.testcase \ st_split24.testcase \ st_split25.testcase \ st_split26.testcase \ st_split27.testcase \ st_split28.testcase \ st_split29.testcase \ st_split2.testcase \ st_split30.testcase \ st_split31.testcase \ st_split32.testcase \ st_split33.testcase \ st_split34.testcase \ st_split35.testcase \ st_split36.testcase \ st_split37.testcase \ st_split38.testcase \ st_split39.testcase \ st_split3.testcase \ st_split40.testcase \ st_split41.testcase \ st_split42.testcase \ st_split43.testcase \ st_split44.testcase \ st_split45.testcase \ st_split46.testcase \ st_split47.testcase \ st_split48.testcase \ st_split49.testcase \ st_split4.testcase \ st_split5.testcase \ st_split6.testcase \ st_split7.testcase \ st_split8.testcase \ st_split9.testcase \ st_node1.testcase \ st_node2.testcase \ st_node3.testcase \ st_node4.testcase \ st_node5.testcase \ st_node6.testcase \ st_node7.testcase \ st_node8.testcase \ st_node9.testcase \ st_self1.testcase \ st_self2.testcase \ st_self3.testcase \ st_self4.testcase \ st_self5.testcase \ st_self6.testcase \ st_self7.testcase \ st_self8.testcase \ st_self9.testcase libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split31.testcase0000664000175000017500000000131312544707704022623 00000000000000ST_SplitLeft - Collection-Line (split) :memory: #use in-memory database SELECT AsText(ST_SplitLeft(GeomFromText('GEOMETRYCOLLECTIONM(LINESTRINGM(0 11 10, 10 11 10), POLYGONM((0 1 10, 10 1 11, 10 10 12, 0 10 13, 0 1 10), (5 5 10, 9 5 11, 9 9 12, 5 9 13, 5 5 10)))'), GeomFromText('LINESTRING(7 0, 7 20)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitLeft(GeomFromText('GEOMETRYCOLLECTIONM(LINESTRINGM(0 11 10, 10 11 10), POLYGONM((0 1 10, 10 1 11, 10 10 12, 0 10 13, 0 1 10), (5 5 10, 9 5 11, 9 9 12, 5 9 13, 5 5 10)))'), GeomFromText('LINESTRING(7 0, 7 20)'))) GEOMETRYCOLLECTION M(LINESTRING M(0 11 0, 7 11 0), POLYGON M((7 1 0, 0 1 0, 0 10 0, 7 10 0, 7 9 0, 5 9 0, 5 5 0, 7 5 0, 7 1 0))) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split32.testcase0000664000175000017500000000046512544707704022633 00000000000000ST_SplitLeft - Line-Point (not split) :memory: #use in-memory database SELECT AsText(ST_SplitLeft(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(11, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitLeft(GeomFromText('LINESTRING(0 0, 10 0)'), MakePoint(11, 0))) LINESTRING(0 0, 10 0) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d18.testcase0000664000175000017500000000046412544707704022525 00000000000000ST_AsX3D - 3D linestring BLOB precision :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)'), zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)'), zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d14.testcase0000664000175000017500000000071212544707704022515 00000000000000ST_AsX3D - 2D multipolygon :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('MULTIPOLYGON(((10 10, 11 10, 11 11, 10 11, 10 10)), ((20 20, 21 20, 21 21, 20 21, 20 20)))')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('MULTIPOLYGON(((10 10, 11 10, 11 11, 10 11, 10 10)), ((20 20, 21 20, 21 21, 20 21, 20 20)))')) 10 10 11 10 11 11 10 11 20 20 21 20 21 21 20 21 ' />:0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid23.testcase0000664000175000017500000000041512544707704023645 00000000000000ST_SnapToGrid - five args - BLOB sizeY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, 0.5, zeroblob(0)); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, 0.5, zeroblob(0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_azimuth15.testcase0000664000175000017500000000043012544707704023152 00000000000000ST_Azimuth - Linestring (error) :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10, 10, 4326), GeomFromText('LINESTRING(0 0, 1 1)')); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10, 10, 4326), GeomFromText('LINESTRING(0 0, 1 1)')) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid48.testcase0000664000175000017500000000054612544707704023661 00000000000000ST_SnapToGrid - Point ZM :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('POINTZM(1.2 2.3 10.1 20.1)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('POINTZM(1.2 2.3 10.1 20.1)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) POINT ZM(1.25 2.25 10 20) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_node2.testcase0000664000175000017500000000023612544707704022336 00000000000000ST_Node - Invalid INT input (error) :memory: #use in-memory database SELECT ST_Node(1); 1 # rows (not including the header row) 1 # columns ST_Node(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid3.testcase0000664000175000017500000000034712544707704023567 00000000000000ST_SnapToGrid - two args - NULL size (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), NULL); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid19.testcase0000664000175000017500000000037712544707704023661 00000000000000ST_SnapToGrid - five args - NULL sizeX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, NULL, 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1, 1, NULL, 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_geohash8.testcase0000664000175000017500000000047412544707704023041 00000000000000ST_GeoHash - WGS84 Polygon :memory: #use in-memory database SELECT ST_GeoHash(GeomFromText('POLYGON((7 10, 7.0001 10, 7.0001 10.0001, 7 10.0001, 7 10))', 4326)); 1 # rows (not including the header row) 1 # columns ST_GeoHash(GeomFromText('POLYGON((7 10, 7.0001 10, 7.0001 10.0001, 7 10.0001, 7 10))', 4326)) s1ubzk3 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3ddistance8.testcase0000664000175000017500000000047212544707704022734 000000000000003DDistance - intersecting 2D lines :memory: #use in-memory database SELECT ST_3DDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 1 # rows (not including the header row) 1 # columns ST_3DDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 0.0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_node8.testcase0000664000175000017500000000076312544707704022351 00000000000000ST_Node - Valid MultiLinestring 3D input :memory: #use in-memory database SELECT ST_AsText(ST_Node(ST_GeomFromText('MULTILINESTRINGZ((0 0 0, 10 10 10, 0 10 5, 10 0 3),(10 8 4, 10 12 5))'))); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Node(ST_GeomFromText('MULTILINESTRINGZ((0 0 0, 10 10 10, 0 10 5, 10 0 3),(10 8 4, 10 12 5))'))) MULTILINESTRING Z((0 0 0, 5 5 4.5), (5 5 4.5, 10 10 10), (10 10 10, 0 10 5, 5 5 4.5), (5 5 4.5, 10 0 3), (10 8 4, 10 10 10), (10 10 10, 10 12 5)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_makevalid2.testcase0000664000175000017500000000025312544707704023345 00000000000000ST_MakeValid - NULL BLOB (error) :memory: #use in-memory database SELECT ST_MakeValid(NULL); 1 # rows (not including the header row) 1 # columns ST_MakeValid(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid17.testcase0000664000175000017500000000042312544707704023647 00000000000000ST_SnapToGrid - five args - BLOB originY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), 1, zeroblob(0), 0.5, 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), 1, zeroblob(0), 0.5, 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3dmaxdistance1.testcase0000664000175000017500000000034512544707704023432 000000000000003DMaxDistance - two 2D points :memory: #use in-memory database SELECT ST_3DMaxDistance(MakePoint(1, 2), MakePoint(4, 6)) 1 # rows (not including the header row) 1 # columns ST_3DMaxDistance(MakePoint(1, 2), MakePoint(4, 6)) 5.0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid62.testcase0000664000175000017500000000172612544707704023656 00000000000000ST_SnapToGrid - Polygon M :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('POLYGONM((0.1 0.1 10.1, 0.2 0.2 10.11, 0.2 5.1 10.12, 4.9 4.9 10.51, 5.1 5.1 10.49, 4.9 0.15 10.1, 0.1 0.1 10.1), (3.1 3.1 10.1, 3.2 3.1 10.11, 3.2 3.2 10.12, 3.2 3.1 10.13, 3.1 3.1 10.1), (1.1 1.1 10.1, 1.1 2.1 10.2, 2.1 2.1 10.3, 2.1 1.1 10.4, 1.1 1.1 10.1))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('POLYGONM((0.1 0.1 10.1, 0.2 0.2 10.11, 0.2 5.1 10.12, 4.9 4.9 10.51, 5.1 5.1 10.49, 4.9 0.15 10.1, 0.1 0.1 10.1), (3.1 3.1 10.1, 3.2 3.1 10.11, 3.2 3.2 10.12, 3.2 3.1 10.13, 3.1 3.1 10.1), (1.1 1.1 10.1, 1.1 2.1 10.2, 2.1 2.1 10.3, 2.1 1.1 10.4, 1.1 1.1 10.1))'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) POLYGON M((0 0 10, 0.25 0.25 10, 0.25 5 10, 5 5 10.5, 5 0.25 10, 0 0 10), (3 3 10, 3.25 3 10, 3.25 3.25 10, 3.25 3 10.25, 3 3 10), (1 1 10, 1 2 10.25, 2 2 10.25, 2 1 10.5, 1 1 10)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_node6.testcase0000664000175000017500000000057412544707704022347 00000000000000ST_Node - Valid 3D input :memory: #use in-memory database SELECT ST_AsText(ST_Node(ST_GeomFromText('LINESTRINGZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'))); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Node(ST_GeomFromText('LINESTRINGZ(0 0 0, 10 10 10, 0 10 5, 10 0 3)'))) MULTILINESTRING Z((0 0 0, 5 5 4.5), (5 5 4.5, 10 10 10, 0 10 5, 5 5 4.5), (5 5 4.5, 10 0 3)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/maxdistance4.testcase0000664000175000017500000000034412544707704023205 00000000000000MaxDistance - bad blob second arg :memory: #use in-memory database SELECT ST_MaxDistance(MakePoint(1, 2), zeroblob(100)) 1 # rows (not including the header row) 1 # columns ST_MaxDistance(MakePoint(1, 2), zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d7.testcase0000664000175000017500000000053712544707704022444 00000000000000ST_AsX3D - 3D linestring :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('LINESTRINGZ(10 10 101, 11 10 102, 11 11 103)')) :0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split3.testcase0000664000175000017500000000031012544707704022536 00000000000000ST_Split - text input (error) :memory: #use in-memory database SELECT ST_Split('alpha', MakePoint(5, 0)); 1 # rows (not including the header row) 1 # columns ST_Split('alpha', MakePoint(5, 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_geohash2.testcase0000664000175000017500000000024712544707704023031 00000000000000ST_GeoHash - text geometry :memory: #use in-memory database SELECT ST_GeoHash('alpha'); 1 # rows (not including the header row) 1 # columns ST_GeoHash('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize27.testcase0000664000175000017500000000055412544707704023655 00000000000000ST_Segmentize - Collection - single Linestring :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 1 2))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 1 2))'), 0.5)) GEOMETRYCOLLECTION(LINESTRING(1 1, 1 1.5, 1 2)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_geohash10.testcase0000664000175000017500000000033212544707704023103 00000000000000ST_GeoHash - WGS84 Point, precision 6 :memory: #use in-memory database SELECT ST_GeoHash(MakePoint(10, -20, 4326), 6); 1 # rows (not including the header row) 1 # columns ST_GeoHash(MakePoint(10, -20, 4326), 6) khrn5x libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_area12.testcase0000664000175000017500000000061212544707704022400 00000000000000ST_Area Geodesic - valid Polygon - Sphere :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((50.4 50.4, 50.4 54, 54 54, 54 50.4, 50.4 50.4),(51 51, 51 53, 53 53, 53 51, 51 51))"), 0); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((50.4 50.4, 50.4 54, 54 54, 54 50.4, 50.4 50.4),(51 51, 51 53, 53 53, 53 51, 51 51))"), 0) 67724290215.61:2 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3dmaxdistance2.testcase0000664000175000017500000000035712544707704023436 000000000000003DMaxDistance - two 2D identical points :memory: #use in-memory database SELECT ST_3DMaxDistance(MakePoint(1, 2), MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_3DMaxDistance(MakePoint(1, 2), MakePoint(1, 2)) 0.0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid47.testcase0000664000175000017500000000171712544707704023661 00000000000000ST_SnapToGrid - MultiPolygon 2D :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('MULTIPOLYGON(((5.11 5.11, 5.12 5.11, 4.11 5.11, 5.11 5.12, 5.11 5.11)), ((0.1 0.1, 0.2 0.2, 0.2 5.1, 4.9 4.9, 5.1 5.1, 4.9 0.15, 0.1 0.1), (3.1 3.1, 3.2 3.1, 3.2 3.2, 3.2 3.1, 3.1 3.1), (1.1 1.1, 1.1 2.1, 2.1 2.1, 2.1 1.1, 1.1 1.1)), ((5.51 5.51, 6.51 5.51, 6.51 6.51, 5.51 6.51, 5.51 5.51)))'), 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('MULTIPOLYGON(((5.11 5.11, 5.12 5.11, 4.11 5.11, 5.11 5.12, 5.11 5.11)), ((0.1 0.1, 0.2 0.2, 0.2 5.1, 4.9 4.9, 5.1 5.1, 4.9 0.15, 0.1 0.1), (3.1 3.1, 3.2 3.1, 3.2 3.2, 3.2 3.1, 3.1 3.1), (1.1 1.1, 1.1 2.1, 2.1 2.1, 2.1 1.1, 1.1 1.1)), ((5.51 5.51, 6.51 5.51, 6.51 6.51, 5.51 6.51, 5.51 5.51)))'), 0.25)) MULTIPOLYGON(((0 0, 0.25 0.25, 0.25 5, 5 5, 5 0.25, 0 0), (3 3, 3.25 3, 3.25 3.25, 3.25 3, 3 3), (1 1, 1 2, 2 2, 2 1, 1 1)), ((5.5 5.5, 6.5 5.5, 6.5 6.5, 5.5 6.5, 5.5 5.5))) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize18.testcase0000664000175000017500000000043412544707704023652 00000000000000ST_Segmentize - Linestring :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('LINESTRING(1 1, 1 2)'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('LINESTRING(1 1, 1 2)'), 0.5)) LINESTRING(1 1, 1 1.5, 1 2) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize22.testcase0000664000175000017500000000104412544707704023643 00000000000000ST_Segmentize - Polygon :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('POLYGON((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4))'), 0.5)); 1 # rows (not including the header row) 1 # column ST_AsText(ST_Segmentize(GeomFromText('POLYGON((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4))'), 0.5)) POLYGON((3 3, 3.5 3, 4 3, 4.5 3, 5 3, 5.5 3, 6 3, 6 3.5, 6 4, 6 4.5, 6 5, 6 5.5, 6 6, 5.5 6, 5 6, 4.5 6, 4 6, 3.5 6, 3 6, 3 5.5, 3 5, 3 4.5, 3 4, 3 3.5, 3 3), (4 4, 4.5 4, 5 4, 5 4.5, 5 5, 5 4.5, 5 4, 4.5 4, 4 4)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize4.testcase0000664000175000017500000000126212544707704023565 00000000000000ST_Segmentize - Multipolygon :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4)))'), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((3 3, 6 3, 6 6, 3 6, 3 3), (4 4, 5 4, 5 5, 5 4, 4 4)))'), 0.5)) MULTIPOLYGON(((0 0, 0.5 0, 1 0, 1 0.5, 1 1, 0.5 1, 0 1, 0 0.5, 0 0)), ((3 3, 3.5 3, 4 3, 4.5 3, 5 3, 5.5 3, 6 3, 6 3.5, 6 4, 6 4.5, 6 5, 6 5.5, 6 6, 5.5 6, 5 6, 4.5 6, 4 6, 3.5 6, 3 6, 3 5.5, 3 5, 3 4.5, 3 4, 3 3.5, 3 3), (4 4, 4.5 4, 5 4, 5 4.5, 5 5, 5 4.5, 5 4, 4.5 4, 4 4))) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize8.testcase0000664000175000017500000000043212544707704023567 00000000000000ST_Segmentize - text distance (error) :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('LINESTRING(1 1, 2 2)'), 'alpha')); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(GeomFromText('LINESTRING(1 1, 2 2)'), 'alpha')) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d29.testcase0000664000175000017500000000105212544707704022521 00000000000000ST_AsX3D - 3D linestring, 6 digit precision, long SRS, BLOB refid :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('GEOMETRYCOLLECTIONZ(LINESTRINGZ(10.12345678 10.98765432 101.123, 11 10 102, 11.321 11.12 103.6453128), POINTZ(15.1234567 14.7654321 7.654321))', 4326), 6, 1, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split1.testcase0000664000175000017500000000033012544707704022536 00000000000000ST_Split - Invalid BLOB input (error) :memory: #use in-memory database SELECT ST_Split(zeroblob(4), MakePoint(5, 0)); 1 # rows (not including the header row) 1 # columns ST_Split(zeroblob(4), MakePoint(5, 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_project14.testcase0000664000175000017500000000042112544707704023136 00000000000000ST_Project - valid :memory: #use in-memory database SELECT AsText(ST_Project(GeomFromText('POINT(0 0)'), 100000, Radians(45))); 1 # rows (not including the header row) 1 # columns AsText(ST_Project(GeomFromText('POINT(0 0)'), 100000, Radians(45))) POINT(0.635231 0.639472) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d5.testcase0000664000175000017500000000027712544707704022443 00000000000000ST_AsX3D - 3D point :memory: #use in-memory database SELECT ST_AsX3D(MakePointZ(12, 21, 101)); 1 # rows (not including the header row) 1 # columns ST_AsX3D(MakePointZ(12, 21, 101)) 12 21 101 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split40.testcase0000664000175000017500000000053712544707704022632 00000000000000ST_SplitRight - MultiLine-Point (split) :memory: #use in-memory database SELECT AsText(ST_SplitRight(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(7, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitRight(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(7, 0))) LINESTRING(7 0, 10 0) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split23.testcase0000664000175000017500000000064612544707704022634 00000000000000ST_Split - Polygon-Line (not split) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_Split(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), GeomFromText('LINESTRING(12 0, 12 20)')))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_Split(GeomFromText('POLYGON((0 1, 10 1, 10 10, 0 10, 0 1))'), GeomFromText('LINESTRING(12 0, 12 20)')))) POLYGON((0 1, 0 10, 10 10, 10 1, 0 1)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_makevaliddiscarded8.testcase0000664000175000017500000000072312544707704025220 00000000000000ST_MakeValidDiscarded - invalid MultiPolygon [discarded items] :memory: #use in-memory database SELECT IsValid(v.v), NumGeometries(v.v), GeometryType(v.v) FROM (SELECT MakeValidDiscarded(g.g) AS v FROM (SELECT GeomFromText ('MULTIPOLYGON(((0 0, 1 0, 1 2, 1 1, 0 1, 0 0)), ((2 2, 3 2, 3 2.5, 2.5 2.5, 3 2.5, 3 3, 2 3, 2 2)))') AS g) AS g) AS v; 1 # rows (not including the header row) 3 # columns IsValid(v.v) NumGeometries(v.v) GeometryType(v.v) 1 2 MULTILINESTRING libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_azimuth7.testcase0000664000175000017500000000032612544707704023077 00000000000000ST_Azimuth - integer PointB (error) :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10, 10, 4326), 1); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10, 10, 4326), 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_azimuth14.testcase0000664000175000017500000000043012544707704023151 00000000000000ST_Azimuth - MultiPoint (error) :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10, 10, 4326), GeomFromText('MULTIPOINT(0 0, 1 1)')); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10, 10, 4326), GeomFromText('MULTIPOINT(0 0, 1 1)')) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_self7.testcase0000664000175000017500000000060312544707704022345 00000000000000ST_SelfIntersections - Valid MultiLinestring 2D input :memory: #use in-memory database SELECT ST_AsText(ST_SelfIntersections(ST_GeomFromText('MULTILINESTRING((0 0, 10 10, 0 10, 10 0),(10 8, 10 12))'))); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_SelfIntersections(ST_GeomFromText('MULTILINESTRING((0 0, 10 10, 0 10, 10 0),(10 8, 10 12))'))) MULTIPOINT(5 5, 10 10) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d10.testcase0000664000175000017500000000043012544707704022506 00000000000000ST_AsX3D - 2D multipoint :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('MULTIPOINT(10 10, 11 10, 11 11)')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('MULTIPOINT(10 10, 11 10, 11 11)')) :0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid36.testcase0000664000175000017500000000043412544707704023652 00000000000000ST_SnapToGrid - six args - NULL sizeY (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, NULL, 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), 1, NULL, 3, 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_azimuth12.testcase0000664000175000017500000000033112544707704023147 00000000000000ST_Azimuth - NULL PointA (error) :memory: #use in-memory database SELECT ST_Azimuth(NULL, MakePoint(10, 10, 4326)); 1 # rows (not including the header row) 1 # columns ST_Azimuth(NULL, MakePoint(10, 10, 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_project7.testcase0000664000175000017500000000045412544707704023066 00000000000000ST_Project - start Point (actually: Linestring) :memory: #use in-memory database SELECT ST_Project(GeomFromText('LINESTRING(0 0, 1 1)', 4326), 100000, Radians(45)); 1 # rows (not including the header row) 1 # columns ST_Project(GeomFromText('LINESTRING(0 0, 1 1)', 4326), 100000, Radians(45)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_self3.testcase0000664000175000017500000000031412544707704022340 00000000000000ST_SelfIntersections - Invalid DOUBLE input (error) :memory: #use in-memory database SELECT ST_SelfIntersections(1.1); 1 # rows (not including the header row) 1 # columns ST_SelfIntersections(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid31.testcase0000664000175000017500000000045212544707704023645 00000000000000ST_SnapToGrid - six args - BLOB sizeX (error) :memory: #use in-memory database SELECT ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), zeroblob(4), 2, 3, 4); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(MakePoint(1.25, 2.35), MakePoint(1, 1), zeroblob(4), 2, 3, 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split20.testcase0000664000175000017500000000052412544707704022624 00000000000000ST_Split - Line-Line (not split) :memory: #use in-memory database SELECT AsText(ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(11 0, 11 3)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_Split(GeomFromText('LINESTRING(0 1, 10 1)'), GeomFromText('LINESTRING(11 0, 11 3)'))) LINESTRING(0 1, 10 1) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize5.testcase0000664000175000017500000000033712544707704023570 00000000000000ST_Segmentize - Invalid BLOB (error) :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(zeroblob(4), 0.5)); 1 # rows (not including the header row) 1 # columns ST_AsText(ST_Segmentize(zeroblob(4), 0.5)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid2.testcase0000664000175000017500000000032412544707704023561 00000000000000ST_SnapToGrid - two args - invalid BLOB (error) :memory: #use in-memory database SELECT ST_SnapToGrid(zeroblob(4), 0.5); 1 # rows (not including the header row) 1 # columns ST_SnapToGrid(zeroblob(4), 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_split34.testcase0000664000175000017500000000056612544707704022637 00000000000000ST_SplitLeft - MultiLine-Point (not split) :memory: #use in-memory database SELECT AsText(ST_SplitLeft(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(-1, 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_SplitLeft(GeomFromText('MULTILINESTRING((0 2, 10 2), (0 0, 10 0))'), MakePoint(-1, 0))) MULTILINESTRING((0 2, 10 2), (0 0, 10 0)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_asx3d13.testcase0000664000175000017500000000071512544707704022517 00000000000000ST_AsX3D - 3D multilinestring :memory: #use in-memory database SELECT ST_AsX3D(GeomFromText('MULTILINESTRINGZ((10 10 1, 11 10 2, 11 11 2), (20 20 4, 21 20 5, 21 21 6))')); 1 # rows (not including the header row) 1 # columns ST_AsX3D(GeomFromText('MULTILINESTRINGZ((10 10 1, 11 10 2, 11 11 2), (20 20 4, 21 20 5, 21 21 6))')) :0 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_segmentize23.testcase0000664000175000017500000000146412544707704023652 00000000000000ST_Segmentize - Polygon Z :memory: #use in-memory database SELECT ST_AsText(ST_Segmentize(GeomFromText('POLYGONZ((3 3 10, 6 3 11, 6 6 12, 3 6 13, 3 3 10), (4 4 10, 5 4 11, 5 5 12, 5 4 13, 4 4 10))'), 0.5)); 1 # rows (not including the header row) 1 # column ST_AsText(ST_Segmentize(GeomFromText('POLYGONZ((3 3 10, 6 3 11, 6 6 12, 3 6 13, 3 3 10), (4 4 10, 5 4 11, 5 5 12, 5 4 13, 4 4 10))'), 0.5)) POLYGON Z((3 3 10, 3.5 3 10.166667, 4 3 10.333333, 4.5 3 10.5, 5 3 10.666667, 5.5 3 10.833333, 6 3 11, 6 3.5 11.166667, 6 4 11.333333, 6 4.5 11.5, 6 5 11.666667, 6 5.5 11.833333, 6 6 12, 5.5 6 12.166667, 5 6 12.333333, 4.5 6 12.5, 4 6 12.666667, 3.5 6 12.833333, 3 6 13, 3 5.5 12.5, 3 5 12, 3 4.5 11.5, 3 4 11, 3 3.5 10.5, 3 3 10), (4 4 10, 4.5 4 10.5, 5 4 11, 5 4.5 11.5, 5 5 12, 5 4.5 12.5, 5 4 13, 4.5 4 11.5, 4 4 10)) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_geohash6.testcase0000664000175000017500000000032512544707704023032 00000000000000ST_GeoHash - WGS84 Point :memory: #use in-memory database SELECT ST_GeoHash(MakePoint(10, -20, 4326)); 1 # rows (not including the header row) 1 # columns ST_GeoHash(MakePoint(10, -20, 4326)) khrn5x1g8cu2yhrn5x1g libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_azimuth1.testcase0000664000175000017500000000040512544707704023067 00000000000000ST_Azimuth - WGS84 points :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10.5, 10, 4326), MakePoint(11.5, 11, 4326)); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10.5, 10, 4326), MakePoint(11.5, 11, 4326)) 0.778630:6 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/3dmaxdistance10.testcase0000664000175000017500000000053712544707704023515 000000000000003DMaxDistance - two 3D linestring :memory: #use in-memory database SELECT ST_3DMaxDistance(GeomFromText("LINESTRINGZ(0 0 1, 10 2 5)"), GeomFromText("LINESTRINGZ(0 2 3, 10 3 4)")); 1 # rows (not including the header row) 1 # columns ST_3DMaxDistance(GeomFromText("LINESTRINGZ(0 0 1, 10 2 5)"), GeomFromText("LINESTRINGZ(0 2 3, 10 3 4)")); 10.862780:6 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_azimuth5.testcase0000664000175000017500000000035312544707704023075 00000000000000ST_Azimuth - bad blob PointB (error) :memory: #use in-memory database SELECT ST_Azimuth(MakePoint(10, 10, 4326), zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_Azimuth(MakePoint(10, 10, 4326), zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_makevalid4.testcase0000664000175000017500000000055312544707704023352 00000000000000ST_MakeValid - already valid MultiPolygon :memory: #use in-memory database SELECT ST_IsValid(ST_MakeValid(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((2 2, 3 2, 3 3, 2 3, 2 2)))'))); 1 # rows (not including the header row) 1 # columns ST_IsValid(ST_MakeValid(GeomFromText('MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((2 2, 3 2, 3 3, 2 3, 2 2)))'))) 1 libspatialite-4.3.0a/test/sql_stmt_lwgeom_tests/st_snaptogrid61.testcase0000664000175000017500000000072312544707704023651 00000000000000ST_SnapToGrid - Linestring M :memory: #use in-memory database SELECT AsText(ST_SnapToGrid(GeomFromText('LINESTRINGM(1.2 2.3 10.1, 1.21 2.31 10.11, 1.22 2.32 10.12, 2.1 3.9 11.4)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)); 1 # rows (not including the header row) 1 # columns AsText(ST_SnapToGrid(GeomFromText('LINESTRINGM(1.2 2.3 10.1, 1.21 2.31 10.11, 1.22 2.32 10.12, 2.1 3.9 11.4)'), MakePoint(0, 0), 0.25, 0.25, 0.25, 0.25)) LINESTRING M(1.25 2.25 10, 2 4 11.5) libspatialite-4.3.0a/test/test-legacy-3.0.1.sqlite0000664000175000017500000010000012544707704016511 00000000000000SQLite format 3@ P\ ØAP\-â#âûöñìçâ ú ú¡f  °_ P+E3spatial_ref_systable successfully populated2012-08-08 17:42:033.7.93.0.1O-A3geometry_columnstable successfully created2012-08-08 17:42:023.7.93.0.1N+A3spatial_ref_systable successfully created2012-08-08 17:42:013.7.93.0.1 çç1spatialite_historyxÆ   $$p[++‚mtablespatial_ref_sysspatial_ref_sysCREATE TABLE spatial_ref_sys ( srid INTEGER NOT NULL PRIMARY KEY, auth_name TEXT NOT NULL, auth_srid INTEGER NOT NULL, ref_sys_name TEXT, proj4text TEXT NOT NULL, srs_wkt TEXT)‚11ƒ]tablespatialite_historyspatialite_historyCREATE TABLE spatialite_history ( event_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, table_name TEXT NOT NULL, geometry_column TEXT, event TEXT NOT NULL, timestamp TEXT NOT NULL, ver_sqlite TEXT NOT NULL, ver_splite TEXT NOT NULL)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)ƒ --…Mtablegeometry_columnsgeometry_columnsCREATE TABLE geometry_columns ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, type TEXT NOT NULL, coord_dimension TEXT NOT NULL, srid INTEGER NOT NULL, spatial_index_enabled INTEGER NOT NULL, CONSTRAINT pk_geom_cols PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_srs FOREIGN KEY (srid) REFERENCES spatial_ref_sys (srid)) 55vW¤?S-indexsqlite_autoindex_geometry_columns_1geometry_columnsƒ^99†Wtableviews_geometry_columnsviews_geometry_columns CREATE TABLE views_geometry_columns ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, view_rowid TEXT NOT NULL, f_table_name VARCHAR(256) NOT NULL, f_geometry_column VARCHAR(256) NOT NULL, CONSTRAINT pk_geom_cols_views PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_views_geom_cols FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)K_9indexsqlite_autoindex_views_geometry_columns_1views_geometry_columns ‚Y99„Mtablevirts_geometry_columnsvirts_geometry_columns CREATE TABLE virts_geometry_columns ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, type VARCHAR(30) NOT NULL, srid INTEGER NOT NULL, CONSTRAINT pk_geom_cols_virts PRIMARY KEY (virt_name, virt_geometry), CONSTRAINT fk_vgc_srid FOREIGN KEY (srid) REFERENCES spatial_ref_sys (srid))     aa®h³K _9indexsqlite_autoindex_virts_geometry_columns_1virts_geometry_columns ƒ7 77† tablegeometry_columns_authgeometry_columns_authCREATE TABLE geometry_columns_auth ( f_table_name VARCHAR(256) NOT NULL, f_geometry_column VARCHAR(256) NOT NULL, read_only INTEGER NOT NULL, hidden INTEGER NOT NULL, CONSTRAINT pk_gc_auth PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_auth FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)I ]7indexsqlite_autoindex_geometry_columns_auth_1geometry_columns_authK %%[tablesqlite_stat1sqlite_stat1CREATE TABLE sqlite_stat1(tbl,idx,stat)   ºÓº1spatialite_history3++3spatial_ref_sysidx_spatial_ref_sys2 1 1 „„;„/!shapetest2geometryA$S“KÈíFAS¸a\]EA$[#ÂM€,AS¹{Ô=åæ;w!shapetest2GeometryA$S“KÈíFAS¸a\]EA$[#ÂM€,AS¹{Ô=åæ ÎçÎ!shapetest2geometry/!shapetest2Geometry÷ Ì̳ƒd 99†ctablevirts_layer_statisticsvirts_layer_statisticsCREATE TABLE virts_layer_statistics ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_virts_layer_statistics PRIMARY KEY (virt_name, virt_geometry), CONSTRAINT fk_virts_layer_statistics FOREIGN KEY (virt_name, virt_geometry) REFERENCES virts_geometry_columns (virt_name, virt_geometry) ON DELETE CASCADE)K_9indexsqlite_autoindex_virts_layer_statistics_1virts_layer_statistics   ¿¿¿ƒ}--‡-tablelayer_statisticslayer_statisticsCREATE TABLE layer_statistics ( raster_layer INTEGER NOT NULL, table_name TEXT NOT NULL, geometry_column TEXT NOT NULL, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_layer_statistics PRIMARY KEY (raster_layer, table_name, geometry_column), CONSTRAINT fk_layer_statistics FOREIGN KEY (table_name, geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)?S-indexsqlite_autoindex_layer_statistics_1layer_statistics ÈÈ6routeGeometry@A6ú5»£°@?Xùæ ‹@A?†O9ù÷@?o%_5½ îî routeGeometry Ì̳ƒd99†ctableviews_layer_statisticsviews_layer_statisticsCREATE TABLE views_layer_statistics ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_views_layer_statistics PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_views_layer_statistics FOREIGN KEY (view_name, view_geometry) REFERENCES views_geometry_columns (view_name, view_geometry) ON DELETE CASCADE)K_9indexsqlite_autoindex_views_layer_statistics_1views_layer_statistics    æóæ YøepsgYø æepsgæ ˆ †|ëˆa%%tableSpatialIndexSpatialIndexCREATE VIRTUAL TABLE SpatialIndex USING VirtualSpatialIndex()‚2//„viewgeom_cols_ref_sysgeom_cols_ref_sysCREATE VIEW geom_cols_ref_sys AS SELECT f_table_name, f_geometry_column, type, coord_dimension, spatial_ref_sys.srid AS srid, auth_name, auth_srid, ref_sys_name, proj4text FROM geometry_columns, spatial_ref_sys WHERE geometry_columns.srid = spatial_ref_sys.sridd--}indexidx_srid_geocolsgeometry_columnsCREATE INDEX idx_srid_geocols ON geometry_columns (srid)'99indexidx_viewsjoinviews_geometry_columnsCREATE INDEX idx_viewsjoin ON views_geometry_columns (f_table_name, f_geometry_column)k'9indexidx_virtssridvirts_geometry_columnsCREATE INDEX idx_virtssrid ON virts_geometry_columns (srid)3+1indexidx_spatial_ref_sysspatial_ref_sysCREATE UNIQUE INDEX idx_spatial_ref_sys ON spatial_ref_sys (auth_srid, auth_name) ··‚E¡fm„epsgæWGS 84+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defsGEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]] LL…/³x3m‰IepsgYøED50 / UTM zone 32N+proj=utm +zone=32 +ellps=intl +units=m +no_defsPROJCS["ED50 / UTM zone 32N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23032"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]libspatialite-4.3.0a/test/archaic.dxf0000664000175000017500000000752112544707704014523 00000000000000 0 SECTION 2 ENTITIES 0 POLYLINE 8 0708 66 1 70 136 0 VERTEX 8 0708 70 32 10 1640917.36 20 4862170.21 30 72.73 0 VERTEX 8 0708 70 32 10 1640911.27 20 4862198.25 30 72.70 0 SEQEND 8 0708 0 POLYLINE 8 0906 66 1 70 136 0 VERTEX 8 0906 70 32 10 1647065.00 20 4867860.00 30 556.52 0 VERTEX 8 0906 70 32 10 1647188.00 20 4862307.00 30 591.63 0 VERTEX 8 0906 70 32 10 1640495.00 20 4862161.00 30 633.96 0 VERTEX 8 0906 70 32 10 1640377.00 20 4867715.00 30 669.08 0 VERTEX 8 0906 70 32 10 1647065.00 20 4867860.00 30 556.52 0 SEQEND 8 0906 0 POLYLINE 8 0906 66 1 70 136 0 VERTEX 8 0201 70 32 10 1646450.28 20 4862772.46 30 54.29 0 VERTEX 8 0201 70 32 10 1646457.94 20 4862771.33 30 54.11 0 VERTEX 8 0201 70 32 10 1646455.68 20 4862761.50 30 54.49 0 SEQEND 8 0201 0 POLYLINE 8 0714 66 1 70 136 0 VERTEX 8 0714 70 32 10 1641969.01 20 4865226.08 30 518.87 0 VERTEX 8 0714 70 32 10 1641972.82 20 4865242.18 30 519.69 0 VERTEX 8 0714 70 32 10 1641975.04 20 4865250.21 30 520.89 0 VERTEX 8 0714 70 32 10 1641976.45 20 4865256.96 30 520.73 0 VERTEX 8 0714 70 32 10 1641981.46 20 4865273.74 30 518.06 0 VERTEX 8 0714 70 32 10 1641983.69 20 4865275.16 30 517.08 0 VERTEX 8 0714 70 32 10 1641987.97 20 4865277.87 30 515.20 0 VERTEX 8 0714 70 32 10 1641996.91 20 4865277.48 30 512.35 0 VERTEX 8 0714 70 32 10 1642004.36 20 4865276.13 30 509.62 0 VERTEX 8 0714 70 32 10 1642006.15 20 4865269.78 30 505.74 0 VERTEX 8 0714 70 32 10 1642004.58 20 4865257.76 30 502.83 0 VERTEX 8 0714 70 32 10 1642000.05 20 4865250.78 30 503.03 0 VERTEX 8 0714 70 32 10 1641996.31 20 4865243.13 30 503.32 0 VERTEX 8 0714 70 32 10 1641994.92 20 4865233.87 30 503.97 0 VERTEX 8 0714 70 32 10 1641994.58 20 4865229.88 30 504.11 0 VERTEX 8 0714 70 32 10 1641995.36 20 4865221.81 30 504.33 0 VERTEX 8 0714 70 32 10 1641997.57 20 4865207.30 30 505.28 0 VERTEX 8 0714 70 32 10 1642001.17 20 4865185.76 30 506.86 0 VERTEX 8 0714 70 32 10 1642005.45 20 4865159.45 30 506.90 0 VERTEX 8 0714 70 32 10 1642005.70 20 4865157.77 30 506.77 0 VERTEX 8 0714 70 32 10 1642000.11 20 4865158.99 30 510.70 0 VERTEX 8 0714 70 32 10 1641996.97 20 4865160.79 30 512.04 0 VERTEX 8 0714 70 32 10 1641993.70 20 4865165.58 30 513.18 0 VERTEX 8 0714 70 32 10 1641992.25 20 4865169.70 30 513.39 0 VERTEX 8 0714 70 32 10 1641988.16 20 4865187.15 30 513.18 0 VERTEX 8 0714 70 32 10 1641984.13 20 4865194.87 30 514.36 0 VERTEX 8 0714 70 32 10 1641975.01 20 4865209.96 30 517.48 0 VERTEX 8 0714 70 32 10 1641969.01 20 4865226.08 30 518.87 0 SEQEND 8 0714 0 POINT 8 0907 10 1645244.54 20 4866102.58 30 567.93 0 POINT 8 0231 10 1647000.63 20 4867829.22 30 272.16 0 POINT 8 0231 10 1646343.31 20 4867805.90 30 397.27 0 POINT 8 0231 10 1642506.09 20 4866841.75 30 381.54 0 POINT 8 0231 10 1642112.33 20 4864688.20 30 433.96 0 POINT 8 0231 10 1641734.62 20 4865794.25 30 603.60 0 POINT 8 0231 10 1640659.45 20 4862849.61 30 97.58 0 POINT 8 0231 10 1646492.89 20 4862739.77 30 52.88 0 TEXT 8 1014 10 1642628.16 20 4864868.39 30 299.30 40 15.00 50 .00 51 .00 1 299.3 0 TEXT 8 1016 10 1647132.59 20 4862749.38 30 34.00 40 15.00 50 26.00 51 .00 1 34 0 ENDSEC 0 EOF libspatialite-4.3.0a/test/Makefile.in0000664000175000017500000035455212573313636014503 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ check_PROGRAMS = check_endian$(EXEEXT) check_version$(EXEEXT) \ check_init$(EXEEXT) check_init2$(EXEEXT) \ check_geom_aux$(EXEEXT) check_geometry_cols$(EXEEXT) \ check_create$(EXEEXT) check_bufovflw$(EXEEXT) \ check_fdo1$(EXEEXT) check_fdo2$(EXEEXT) check_fdo3$(EXEEXT) \ check_fdo_bufovflw$(EXEEXT) check_md5$(EXEEXT) \ check_dbf_load$(EXEEXT) check_shp_load$(EXEEXT) \ check_shp_load_3d$(EXEEXT) shape_cp1252$(EXEEXT) \ shape_primitives$(EXEEXT) shape_utf8_1$(EXEEXT) \ shape_utf8_1ex$(EXEEXT) shape_utf8_2$(EXEEXT) \ shape_3d$(EXEEXT) check_clone_table$(EXEEXT) \ check_xls_load$(EXEEXT) check_math_funcs$(EXEEXT) \ check_gaia_util$(EXEEXT) check_gaia_utf8$(EXEEXT) \ check_extension$(EXEEXT) check_recover_geom$(EXEEXT) \ check_sql_stmt$(EXEEXT) check_multithread$(EXEEXT) \ check_virtualtable1$(EXEEXT) check_virtualtable2$(EXEEXT) \ check_virtualtable3$(EXEEXT) check_virtualtable4$(EXEEXT) \ check_virtualtable5$(EXEEXT) check_virtualtable6$(EXEEXT) \ check_virtual_ovflw$(EXEEXT) check_mbrcache$(EXEEXT) \ check_spatialindex$(EXEEXT) check_exif$(EXEEXT) \ check_exif2$(EXEEXT) check_relations_fncts$(EXEEXT) \ check_extra_relations_fncts$(EXEEXT) \ check_geoscvt_fncts$(EXEEXT) check_libxml2$(EXEEXT) \ check_styling$(EXEEXT) check_virtualxpath$(EXEEXT) \ check_virtualbbox$(EXEEXT) check_wfsin$(EXEEXT) \ check_dxf$(EXEEXT) check_metacatalog$(EXEEXT) \ check_virtualelem$(EXEEXT) check_srid_fncts$(EXEEXT) \ check_control_points$(EXEEXT) $(am__EXEEXT_1) @ENABLE_GEOPACKAGE_TRUE@am__append_1 = \ @ENABLE_GEOPACKAGE_TRUE@ check_createBaseTables \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgCreateTilesTable \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgCreateTilesTableMissingSRID \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgCreateTilesZoomLevel \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgInsertEpsgSRID check_gpkgMode \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgCreateFeaturesTable \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkg_base_core_container_data_file_format_application_id \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkg_base_core_spatial_ref_sys_data_table_def \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkg_base_core_spatial_ref_sys_data_values_default \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkg_base_core_contents_data_table_def \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkg_opt_extension_mechanism_extensions_data_table_def \ @ENABLE_GEOPACKAGE_TRUE@ check_add_tile_triggers \ @ENABLE_GEOPACKAGE_TRUE@ check_add_tile_triggers_bad_table_name \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_row \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_row_bad_geopackage \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_row_bad_geopackage2 \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom_extension_load \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom_bad_geopackage \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom_bad_geopackage2 \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_nonimage \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_nonblob \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_png \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_tiff \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_webp \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgConvert \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgVirtual subdir = test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @ENABLE_GEOPACKAGE_TRUE@am__EXEEXT_1 = \ @ENABLE_GEOPACKAGE_TRUE@ check_createBaseTables$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgCreateTilesTable$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgCreateTilesTableMissingSRID$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgCreateTilesZoomLevel$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgInsertEpsgSRID$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgMode$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgCreateFeaturesTable$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkg_base_core_container_data_file_format_application_id$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkg_base_core_spatial_ref_sys_data_table_def$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkg_base_core_spatial_ref_sys_data_values_default$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkg_base_core_contents_data_table_def$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkg_opt_extension_mechanism_extensions_data_table_def$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_add_tile_triggers$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_add_tile_triggers_bad_table_name$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_row$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_row_bad_geopackage$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_row_bad_geopackage2$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom_extension_load$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom_bad_geopackage$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_get_normal_zoom_bad_geopackage2$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_nonimage$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_nonblob$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_png$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_tiff$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgGetImageFormat_webp$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgConvert$(EXEEXT) \ @ENABLE_GEOPACKAGE_TRUE@ check_gpkgVirtual$(EXEEXT) check_add_tile_triggers_SOURCES = check_add_tile_triggers.c check_add_tile_triggers_OBJECTS = check_add_tile_triggers.$(OBJEXT) check_add_tile_triggers_LDADD = $(LDADD) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = check_add_tile_triggers_bad_table_name_SOURCES = \ check_add_tile_triggers_bad_table_name.c check_add_tile_triggers_bad_table_name_OBJECTS = \ check_add_tile_triggers_bad_table_name.$(OBJEXT) check_add_tile_triggers_bad_table_name_LDADD = $(LDADD) check_bufovflw_SOURCES = check_bufovflw.c check_bufovflw_OBJECTS = check_bufovflw.$(OBJEXT) check_bufovflw_LDADD = $(LDADD) check_clone_table_SOURCES = check_clone_table.c check_clone_table_OBJECTS = check_clone_table.$(OBJEXT) check_clone_table_LDADD = $(LDADD) check_control_points_SOURCES = check_control_points.c check_control_points_OBJECTS = check_control_points.$(OBJEXT) check_control_points_LDADD = $(LDADD) check_create_SOURCES = check_create.c check_create_OBJECTS = check_create.$(OBJEXT) check_create_LDADD = $(LDADD) check_createBaseTables_SOURCES = check_createBaseTables.c check_createBaseTables_OBJECTS = check_createBaseTables.$(OBJEXT) check_createBaseTables_LDADD = $(LDADD) check_dbf_load_SOURCES = check_dbf_load.c check_dbf_load_OBJECTS = check_dbf_load.$(OBJEXT) check_dbf_load_LDADD = $(LDADD) check_dxf_SOURCES = check_dxf.c check_dxf_OBJECTS = check_dxf.$(OBJEXT) check_dxf_LDADD = $(LDADD) check_endian_SOURCES = check_endian.c check_endian_OBJECTS = check_endian.$(OBJEXT) check_endian_LDADD = $(LDADD) check_exif_SOURCES = check_exif.c check_exif_OBJECTS = check_exif.$(OBJEXT) check_exif_LDADD = $(LDADD) check_exif2_SOURCES = check_exif2.c check_exif2_OBJECTS = check_exif2.$(OBJEXT) check_exif2_LDADD = $(LDADD) check_extension_SOURCES = check_extension.c check_extension_OBJECTS = check_extension.$(OBJEXT) check_extension_LDADD = $(LDADD) check_extra_relations_fncts_SOURCES = check_extra_relations_fncts.c check_extra_relations_fncts_OBJECTS = \ check_extra_relations_fncts.$(OBJEXT) check_extra_relations_fncts_LDADD = $(LDADD) check_fdo1_SOURCES = check_fdo1.c check_fdo1_OBJECTS = check_fdo1.$(OBJEXT) check_fdo1_LDADD = $(LDADD) check_fdo2_SOURCES = check_fdo2.c check_fdo2_OBJECTS = check_fdo2.$(OBJEXT) check_fdo2_LDADD = $(LDADD) check_fdo3_SOURCES = check_fdo3.c check_fdo3_OBJECTS = check_fdo3.$(OBJEXT) check_fdo3_LDADD = $(LDADD) check_fdo_bufovflw_SOURCES = check_fdo_bufovflw.c check_fdo_bufovflw_OBJECTS = check_fdo_bufovflw.$(OBJEXT) check_fdo_bufovflw_LDADD = $(LDADD) check_gaia_utf8_SOURCES = check_gaia_utf8.c check_gaia_utf8_OBJECTS = check_gaia_utf8.$(OBJEXT) check_gaia_utf8_LDADD = $(LDADD) check_gaia_util_SOURCES = check_gaia_util.c check_gaia_util_OBJECTS = check_gaia_util.$(OBJEXT) check_gaia_util_LDADD = $(LDADD) check_geom_aux_SOURCES = check_geom_aux.c check_geom_aux_OBJECTS = check_geom_aux.$(OBJEXT) check_geom_aux_LDADD = $(LDADD) check_geometry_cols_SOURCES = check_geometry_cols.c check_geometry_cols_OBJECTS = check_geometry_cols.$(OBJEXT) check_geometry_cols_LDADD = $(LDADD) check_geoscvt_fncts_SOURCES = check_geoscvt_fncts.c check_geoscvt_fncts_OBJECTS = check_geoscvt_fncts.$(OBJEXT) check_geoscvt_fncts_LDADD = $(LDADD) check_get_normal_row_SOURCES = check_get_normal_row.c check_get_normal_row_OBJECTS = check_get_normal_row.$(OBJEXT) check_get_normal_row_LDADD = $(LDADD) check_get_normal_row_bad_geopackage_SOURCES = \ check_get_normal_row_bad_geopackage.c check_get_normal_row_bad_geopackage_OBJECTS = \ check_get_normal_row_bad_geopackage.$(OBJEXT) check_get_normal_row_bad_geopackage_LDADD = $(LDADD) check_get_normal_row_bad_geopackage2_SOURCES = \ check_get_normal_row_bad_geopackage2.c check_get_normal_row_bad_geopackage2_OBJECTS = \ check_get_normal_row_bad_geopackage2.$(OBJEXT) check_get_normal_row_bad_geopackage2_LDADD = $(LDADD) check_get_normal_zoom_SOURCES = check_get_normal_zoom.c check_get_normal_zoom_OBJECTS = check_get_normal_zoom.$(OBJEXT) check_get_normal_zoom_LDADD = $(LDADD) check_get_normal_zoom_bad_geopackage_SOURCES = \ check_get_normal_zoom_bad_geopackage.c check_get_normal_zoom_bad_geopackage_OBJECTS = \ check_get_normal_zoom_bad_geopackage.$(OBJEXT) check_get_normal_zoom_bad_geopackage_LDADD = $(LDADD) check_get_normal_zoom_bad_geopackage2_SOURCES = \ check_get_normal_zoom_bad_geopackage2.c check_get_normal_zoom_bad_geopackage2_OBJECTS = \ check_get_normal_zoom_bad_geopackage2.$(OBJEXT) check_get_normal_zoom_bad_geopackage2_LDADD = $(LDADD) check_get_normal_zoom_extension_load_SOURCES = \ check_get_normal_zoom_extension_load.c check_get_normal_zoom_extension_load_OBJECTS = \ check_get_normal_zoom_extension_load.$(OBJEXT) check_get_normal_zoom_extension_load_LDADD = $(LDADD) check_gpkgConvert_SOURCES = check_gpkgConvert.c check_gpkgConvert_OBJECTS = check_gpkgConvert.$(OBJEXT) check_gpkgConvert_LDADD = $(LDADD) check_gpkgCreateFeaturesTable_SOURCES = \ check_gpkgCreateFeaturesTable.c check_gpkgCreateFeaturesTable_OBJECTS = \ check_gpkgCreateFeaturesTable.$(OBJEXT) check_gpkgCreateFeaturesTable_LDADD = $(LDADD) check_gpkgCreateTilesTable_SOURCES = check_gpkgCreateTilesTable.c check_gpkgCreateTilesTable_OBJECTS = \ check_gpkgCreateTilesTable.$(OBJEXT) check_gpkgCreateTilesTable_LDADD = $(LDADD) check_gpkgCreateTilesTableMissingSRID_SOURCES = \ check_gpkgCreateTilesTableMissingSRID.c check_gpkgCreateTilesTableMissingSRID_OBJECTS = \ check_gpkgCreateTilesTableMissingSRID.$(OBJEXT) check_gpkgCreateTilesTableMissingSRID_LDADD = $(LDADD) check_gpkgCreateTilesZoomLevel_SOURCES = \ check_gpkgCreateTilesZoomLevel.c check_gpkgCreateTilesZoomLevel_OBJECTS = \ check_gpkgCreateTilesZoomLevel.$(OBJEXT) check_gpkgCreateTilesZoomLevel_LDADD = $(LDADD) check_gpkgGetImageFormat_SOURCES = check_gpkgGetImageFormat.c check_gpkgGetImageFormat_OBJECTS = check_gpkgGetImageFormat.$(OBJEXT) check_gpkgGetImageFormat_LDADD = $(LDADD) check_gpkgGetImageFormat_nonblob_SOURCES = \ check_gpkgGetImageFormat_nonblob.c check_gpkgGetImageFormat_nonblob_OBJECTS = \ check_gpkgGetImageFormat_nonblob.$(OBJEXT) check_gpkgGetImageFormat_nonblob_LDADD = $(LDADD) check_gpkgGetImageFormat_nonimage_SOURCES = \ check_gpkgGetImageFormat_nonimage.c check_gpkgGetImageFormat_nonimage_OBJECTS = \ check_gpkgGetImageFormat_nonimage.$(OBJEXT) check_gpkgGetImageFormat_nonimage_LDADD = $(LDADD) check_gpkgGetImageFormat_png_SOURCES = check_gpkgGetImageFormat_png.c check_gpkgGetImageFormat_png_OBJECTS = \ check_gpkgGetImageFormat_png.$(OBJEXT) check_gpkgGetImageFormat_png_LDADD = $(LDADD) check_gpkgGetImageFormat_tiff_SOURCES = \ check_gpkgGetImageFormat_tiff.c check_gpkgGetImageFormat_tiff_OBJECTS = \ check_gpkgGetImageFormat_tiff.$(OBJEXT) check_gpkgGetImageFormat_tiff_LDADD = $(LDADD) check_gpkgGetImageFormat_webp_SOURCES = \ check_gpkgGetImageFormat_webp.c check_gpkgGetImageFormat_webp_OBJECTS = \ check_gpkgGetImageFormat_webp.$(OBJEXT) check_gpkgGetImageFormat_webp_LDADD = $(LDADD) check_gpkgInsertEpsgSRID_SOURCES = check_gpkgInsertEpsgSRID.c check_gpkgInsertEpsgSRID_OBJECTS = check_gpkgInsertEpsgSRID.$(OBJEXT) check_gpkgInsertEpsgSRID_LDADD = $(LDADD) check_gpkgMode_SOURCES = check_gpkgMode.c check_gpkgMode_OBJECTS = check_gpkgMode.$(OBJEXT) check_gpkgMode_LDADD = $(LDADD) check_gpkgVirtual_SOURCES = check_gpkgVirtual.c check_gpkgVirtual_OBJECTS = check_gpkgVirtual.$(OBJEXT) check_gpkgVirtual_LDADD = $(LDADD) check_gpkg_base_core_container_data_file_format_application_id_SOURCES = check_gpkg_base_core_container_data_file_format_application_id.c check_gpkg_base_core_container_data_file_format_application_id_OBJECTS = check_gpkg_base_core_container_data_file_format_application_id.$(OBJEXT) check_gpkg_base_core_container_data_file_format_application_id_LDADD = \ $(LDADD) check_gpkg_base_core_contents_data_table_def_SOURCES = \ check_gpkg_base_core_contents_data_table_def.c check_gpkg_base_core_contents_data_table_def_OBJECTS = \ check_gpkg_base_core_contents_data_table_def.$(OBJEXT) check_gpkg_base_core_contents_data_table_def_LDADD = $(LDADD) check_gpkg_base_core_spatial_ref_sys_data_table_def_SOURCES = \ check_gpkg_base_core_spatial_ref_sys_data_table_def.c check_gpkg_base_core_spatial_ref_sys_data_table_def_OBJECTS = \ check_gpkg_base_core_spatial_ref_sys_data_table_def.$(OBJEXT) check_gpkg_base_core_spatial_ref_sys_data_table_def_LDADD = $(LDADD) check_gpkg_base_core_spatial_ref_sys_data_values_default_SOURCES = \ check_gpkg_base_core_spatial_ref_sys_data_values_default.c check_gpkg_base_core_spatial_ref_sys_data_values_default_OBJECTS = check_gpkg_base_core_spatial_ref_sys_data_values_default.$(OBJEXT) check_gpkg_base_core_spatial_ref_sys_data_values_default_LDADD = \ $(LDADD) check_gpkg_opt_extension_mechanism_extensions_data_table_def_SOURCES = check_gpkg_opt_extension_mechanism_extensions_data_table_def.c check_gpkg_opt_extension_mechanism_extensions_data_table_def_OBJECTS = check_gpkg_opt_extension_mechanism_extensions_data_table_def.$(OBJEXT) check_gpkg_opt_extension_mechanism_extensions_data_table_def_LDADD = \ $(LDADD) check_init_SOURCES = check_init.c check_init_OBJECTS = check_init.$(OBJEXT) check_init_LDADD = $(LDADD) check_init2_SOURCES = check_init2.c check_init2_OBJECTS = check_init2.$(OBJEXT) check_init2_LDADD = $(LDADD) check_libxml2_SOURCES = check_libxml2.c check_libxml2_OBJECTS = check_libxml2.$(OBJEXT) check_libxml2_LDADD = $(LDADD) check_math_funcs_SOURCES = check_math_funcs.c check_math_funcs_OBJECTS = check_math_funcs.$(OBJEXT) check_math_funcs_LDADD = $(LDADD) check_mbrcache_SOURCES = check_mbrcache.c check_mbrcache_OBJECTS = check_mbrcache.$(OBJEXT) check_mbrcache_LDADD = $(LDADD) check_md5_SOURCES = check_md5.c check_md5_OBJECTS = check_md5.$(OBJEXT) check_md5_LDADD = $(LDADD) check_metacatalog_SOURCES = check_metacatalog.c check_metacatalog_OBJECTS = check_metacatalog.$(OBJEXT) check_metacatalog_LDADD = $(LDADD) check_multithread_SOURCES = check_multithread.c check_multithread_OBJECTS = check_multithread.$(OBJEXT) check_multithread_LDADD = $(LDADD) check_recover_geom_SOURCES = check_recover_geom.c check_recover_geom_OBJECTS = check_recover_geom.$(OBJEXT) check_recover_geom_LDADD = $(LDADD) check_relations_fncts_SOURCES = check_relations_fncts.c check_relations_fncts_OBJECTS = check_relations_fncts.$(OBJEXT) check_relations_fncts_LDADD = $(LDADD) check_shp_load_SOURCES = check_shp_load.c check_shp_load_OBJECTS = check_shp_load.$(OBJEXT) check_shp_load_LDADD = $(LDADD) check_shp_load_3d_SOURCES = check_shp_load_3d.c check_shp_load_3d_OBJECTS = check_shp_load_3d.$(OBJEXT) check_shp_load_3d_LDADD = $(LDADD) check_spatialindex_SOURCES = check_spatialindex.c check_spatialindex_OBJECTS = check_spatialindex.$(OBJEXT) check_spatialindex_LDADD = $(LDADD) check_sql_stmt_SOURCES = check_sql_stmt.c check_sql_stmt_OBJECTS = check_sql_stmt.$(OBJEXT) check_sql_stmt_LDADD = $(LDADD) check_srid_fncts_SOURCES = check_srid_fncts.c check_srid_fncts_OBJECTS = check_srid_fncts.$(OBJEXT) check_srid_fncts_LDADD = $(LDADD) check_styling_SOURCES = check_styling.c check_styling_OBJECTS = check_styling.$(OBJEXT) check_styling_LDADD = $(LDADD) check_version_SOURCES = check_version.c check_version_OBJECTS = check_version.$(OBJEXT) check_version_LDADD = $(LDADD) check_virtual_ovflw_SOURCES = check_virtual_ovflw.c check_virtual_ovflw_OBJECTS = check_virtual_ovflw.$(OBJEXT) check_virtual_ovflw_LDADD = $(LDADD) check_virtualbbox_SOURCES = check_virtualbbox.c check_virtualbbox_OBJECTS = check_virtualbbox.$(OBJEXT) check_virtualbbox_LDADD = $(LDADD) check_virtualelem_SOURCES = check_virtualelem.c check_virtualelem_OBJECTS = check_virtualelem.$(OBJEXT) check_virtualelem_LDADD = $(LDADD) check_virtualtable1_SOURCES = check_virtualtable1.c check_virtualtable1_OBJECTS = check_virtualtable1.$(OBJEXT) check_virtualtable1_LDADD = $(LDADD) check_virtualtable2_SOURCES = check_virtualtable2.c check_virtualtable2_OBJECTS = check_virtualtable2.$(OBJEXT) check_virtualtable2_LDADD = $(LDADD) check_virtualtable3_SOURCES = check_virtualtable3.c check_virtualtable3_OBJECTS = check_virtualtable3.$(OBJEXT) check_virtualtable3_LDADD = $(LDADD) check_virtualtable4_SOURCES = check_virtualtable4.c check_virtualtable4_OBJECTS = check_virtualtable4.$(OBJEXT) check_virtualtable4_LDADD = $(LDADD) check_virtualtable5_SOURCES = check_virtualtable5.c check_virtualtable5_OBJECTS = check_virtualtable5.$(OBJEXT) check_virtualtable5_LDADD = $(LDADD) check_virtualtable6_SOURCES = check_virtualtable6.c check_virtualtable6_OBJECTS = check_virtualtable6.$(OBJEXT) check_virtualtable6_LDADD = $(LDADD) check_virtualxpath_SOURCES = check_virtualxpath.c check_virtualxpath_OBJECTS = check_virtualxpath.$(OBJEXT) check_virtualxpath_LDADD = $(LDADD) check_wfsin_SOURCES = check_wfsin.c check_wfsin_OBJECTS = check_wfsin.$(OBJEXT) check_wfsin_LDADD = $(LDADD) check_xls_load_SOURCES = check_xls_load.c check_xls_load_OBJECTS = check_xls_load.$(OBJEXT) check_xls_load_LDADD = $(LDADD) shape_3d_SOURCES = shape_3d.c shape_3d_OBJECTS = shape_3d.$(OBJEXT) shape_3d_LDADD = $(LDADD) shape_cp1252_SOURCES = shape_cp1252.c shape_cp1252_OBJECTS = shape_cp1252.$(OBJEXT) shape_cp1252_LDADD = $(LDADD) shape_primitives_SOURCES = shape_primitives.c shape_primitives_OBJECTS = shape_primitives.$(OBJEXT) shape_primitives_LDADD = $(LDADD) shape_utf8_1_SOURCES = shape_utf8_1.c shape_utf8_1_OBJECTS = shape_utf8_1.$(OBJEXT) shape_utf8_1_LDADD = $(LDADD) shape_utf8_1ex_SOURCES = shape_utf8_1ex.c shape_utf8_1ex_OBJECTS = shape_utf8_1ex.$(OBJEXT) shape_utf8_1ex_LDADD = $(LDADD) shape_utf8_2_SOURCES = shape_utf8_2.c shape_utf8_2_OBJECTS = shape_utf8_2.$(OBJEXT) shape_utf8_2_LDADD = $(LDADD) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = check_add_tile_triggers.c \ check_add_tile_triggers_bad_table_name.c check_bufovflw.c \ check_clone_table.c check_control_points.c check_create.c \ check_createBaseTables.c check_dbf_load.c check_dxf.c \ check_endian.c check_exif.c check_exif2.c check_extension.c \ check_extra_relations_fncts.c check_fdo1.c check_fdo2.c \ check_fdo3.c check_fdo_bufovflw.c check_gaia_utf8.c \ check_gaia_util.c check_geom_aux.c check_geometry_cols.c \ check_geoscvt_fncts.c check_get_normal_row.c \ check_get_normal_row_bad_geopackage.c \ check_get_normal_row_bad_geopackage2.c check_get_normal_zoom.c \ check_get_normal_zoom_bad_geopackage.c \ check_get_normal_zoom_bad_geopackage2.c \ check_get_normal_zoom_extension_load.c check_gpkgConvert.c \ check_gpkgCreateFeaturesTable.c check_gpkgCreateTilesTable.c \ check_gpkgCreateTilesTableMissingSRID.c \ check_gpkgCreateTilesZoomLevel.c check_gpkgGetImageFormat.c \ check_gpkgGetImageFormat_nonblob.c \ check_gpkgGetImageFormat_nonimage.c \ check_gpkgGetImageFormat_png.c check_gpkgGetImageFormat_tiff.c \ check_gpkgGetImageFormat_webp.c check_gpkgInsertEpsgSRID.c \ check_gpkgMode.c check_gpkgVirtual.c \ check_gpkg_base_core_container_data_file_format_application_id.c \ check_gpkg_base_core_contents_data_table_def.c \ check_gpkg_base_core_spatial_ref_sys_data_table_def.c \ check_gpkg_base_core_spatial_ref_sys_data_values_default.c \ check_gpkg_opt_extension_mechanism_extensions_data_table_def.c \ check_init.c check_init2.c check_libxml2.c check_math_funcs.c \ check_mbrcache.c check_md5.c check_metacatalog.c \ check_multithread.c check_recover_geom.c \ check_relations_fncts.c check_shp_load.c check_shp_load_3d.c \ check_spatialindex.c check_sql_stmt.c check_srid_fncts.c \ check_styling.c check_version.c check_virtual_ovflw.c \ check_virtualbbox.c check_virtualelem.c check_virtualtable1.c \ check_virtualtable2.c check_virtualtable3.c \ check_virtualtable4.c check_virtualtable5.c \ check_virtualtable6.c check_virtualxpath.c check_wfsin.c \ check_xls_load.c shape_3d.c shape_cp1252.c shape_primitives.c \ shape_utf8_1.c shape_utf8_1ex.c shape_utf8_2.c DIST_SOURCES = check_add_tile_triggers.c \ check_add_tile_triggers_bad_table_name.c check_bufovflw.c \ check_clone_table.c check_control_points.c check_create.c \ check_createBaseTables.c check_dbf_load.c check_dxf.c \ check_endian.c check_exif.c check_exif2.c check_extension.c \ check_extra_relations_fncts.c check_fdo1.c check_fdo2.c \ check_fdo3.c check_fdo_bufovflw.c check_gaia_utf8.c \ check_gaia_util.c check_geom_aux.c check_geometry_cols.c \ check_geoscvt_fncts.c check_get_normal_row.c \ check_get_normal_row_bad_geopackage.c \ check_get_normal_row_bad_geopackage2.c check_get_normal_zoom.c \ check_get_normal_zoom_bad_geopackage.c \ check_get_normal_zoom_bad_geopackage2.c \ check_get_normal_zoom_extension_load.c check_gpkgConvert.c \ check_gpkgCreateFeaturesTable.c check_gpkgCreateTilesTable.c \ check_gpkgCreateTilesTableMissingSRID.c \ check_gpkgCreateTilesZoomLevel.c check_gpkgGetImageFormat.c \ check_gpkgGetImageFormat_nonblob.c \ check_gpkgGetImageFormat_nonimage.c \ check_gpkgGetImageFormat_png.c check_gpkgGetImageFormat_tiff.c \ check_gpkgGetImageFormat_webp.c check_gpkgInsertEpsgSRID.c \ check_gpkgMode.c check_gpkgVirtual.c \ check_gpkg_base_core_container_data_file_format_application_id.c \ check_gpkg_base_core_contents_data_table_def.c \ check_gpkg_base_core_spatial_ref_sys_data_table_def.c \ check_gpkg_base_core_spatial_ref_sys_data_values_default.c \ check_gpkg_opt_extension_mechanism_extensions_data_table_def.c \ check_init.c check_init2.c check_libxml2.c check_math_funcs.c \ check_mbrcache.c check_md5.c check_metacatalog.c \ check_multithread.c check_recover_geom.c \ check_relations_fncts.c check_shp_load.c check_shp_load_3d.c \ check_spatialindex.c check_sql_stmt.c check_srid_fncts.c \ check_styling.c check_version.c check_virtual_ovflw.c \ check_virtualbbox.c check_virtualelem.c check_virtualtable1.c \ check_virtualtable2.c check_virtualtable3.c \ check_virtualtable4.c check_virtualtable5.c \ check_virtualtable6.c check_virtualxpath.c check_wfsin.c \ check_xls_load.c shape_3d.c shape_cp1252.c shape_primitives.c \ shape_utf8_1.c shape_utf8_1ex.c shape_utf8_2.c RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ check recheck distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' 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__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` RECHECK_LOGS = $(TEST_LOGS) TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ $(top_srcdir)/test-driver DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ AM_CFLAGS = -I@srcdir@/../src/headers -I@srcdir@ @MINGW_FALSE@AM_LDFLAGS = -L../src -lpthread -lspatialite -lm -lxml2 $(GCOV_FLAGS) @MINGW_TRUE@AM_LDFLAGS = -L../src -lspatialite -lm -lxml2 $(GCOV_FLAGS) TESTS = $(check_PROGRAMS) MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = asprintf4win.h \ fnmatch_impl4win.h \ fnmatch4win.h \ scandir4win.h \ test_helpers.h \ shapetest1.dbf \ shapetest1.prj \ shapetest1.qpj \ shapetest1.shp \ shapetest1.shx \ test_under_valgrind.sh \ WritingSQLTestCase.txt \ test-legacy-2.3.1.sqlite \ test-legacy-3.0.1.sqlite \ test-invalid.sqlite \ test_geos.sqlite \ shp/new-caledonia/buildings.dbf \ shp/new-caledonia/buildings.prj \ shp/new-caledonia/buildings.shp \ shp/new-caledonia/buildings.shx \ shp/new-caledonia/points.dbf \ shp/new-caledonia/points.prj \ shp/new-caledonia/points.shp \ shp/new-caledonia/points.shx \ shp/new-caledonia/railways.dbf \ shp/new-caledonia/railways.shp \ shp/new-caledonia/railways.shx \ shp/gaza/aeroway.dbf \ shp/gaza/aeroway.prj \ shp/gaza/aeroway.shp \ shp/gaza/aeroway.shx \ shp/gaza/barrier.dbf \ shp/gaza/barrier.prj \ shp/gaza/barrier.shp \ shp/gaza/barrier.shx \ shp/gaza/route.dbf \ shp/gaza/route.prj \ shp/gaza/route.shp \ shp/gaza/route.shx \ shp/taiwan/hystoric.dbf \ shp/taiwan/hystoric.prj \ shp/taiwan/hystoric.shp \ shp/taiwan/hystoric.shx \ shp/taiwan/leisure.dbf \ shp/taiwan/leisure.prj \ shp/taiwan/leisure.shp \ shp/taiwan/leisure.shx \ shp/taiwan/route.dbf \ shp/taiwan/route.prj \ shp/taiwan/route.shp \ shp/taiwan/route.shx \ shp/merano-3d/points.dbf \ shp/merano-3d/points.prj \ shp/merano-3d/points.shp \ shp/merano-3d/points.shx \ shp/merano-3d/polygons.dbf \ shp/merano-3d/polygons.prj \ shp/merano-3d/polygons.shp \ shp/merano-3d/polygons.shx \ shp/merano-3d/roads.dbf \ shp/merano-3d/roads.prj \ shp/merano-3d/roads.shp \ shp/merano-3d/roads.shx \ shp/foggia/local_councils.dbf \ shp/foggia/local_councils.prj \ shp/foggia/local_councils.shp \ shp/foggia/local_councils.shx \ testcase1.xls \ testcase1.csv \ books.xml books.xsd opera.xml opera.xsd \ movies.xml movies.xsd books-bad.xml books-bad.xsd \ inspire-data-example.xml stazioni_se.xml \ stazioni2_se.xml raster_se.xml raster2_se.xml \ sld_sample.xml sld_sample2.xml thunderstorm_mild.svg \ tile000.jpeg tile101.jpeg tile111.jpeg \ test.webp tile100.jpeg tile110.jpeg \ Apple-iPhone-4.jpg empty.png empty.tif \ test.wfs testDescribeFeatureType.wfs \ getcapabilities-1.0.0.wfs \ getcapabilities-1.1.0.wfs \ describefeaturetype.wfs \ 22.dxf f06.dxf l02.dxf p05.dxf \ archaic.dxf linked.dxf hatch.dxf \ symbol.dxf gpkg_test.sqlite gpkg_test.gpkg \ gpkg_test_broken.gpkg gpkg_test_extrasrid.gpkg SUBDIRS = sql_stmt_geosadvanced_tests sql_stmt_geos_tests \ sql_stmt_libxml2_tests sql_stmt_lwgeom_tests \ sql_stmt_mathsql_tests sql_stmt_proj_tests \ sql_stmt_security_tests sql_stmt_tests \ sql_stmt_xmlsec_tests sql_stmt_geopackage_tests \ sql_stmt_freexl_tests sql_stmt_cache_tests \ sql_stmt_nocache_tests all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list check_add_tile_triggers$(EXEEXT): $(check_add_tile_triggers_OBJECTS) $(check_add_tile_triggers_DEPENDENCIES) $(EXTRA_check_add_tile_triggers_DEPENDENCIES) @rm -f check_add_tile_triggers$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_add_tile_triggers_OBJECTS) $(check_add_tile_triggers_LDADD) $(LIBS) check_add_tile_triggers_bad_table_name$(EXEEXT): $(check_add_tile_triggers_bad_table_name_OBJECTS) $(check_add_tile_triggers_bad_table_name_DEPENDENCIES) $(EXTRA_check_add_tile_triggers_bad_table_name_DEPENDENCIES) @rm -f check_add_tile_triggers_bad_table_name$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_add_tile_triggers_bad_table_name_OBJECTS) $(check_add_tile_triggers_bad_table_name_LDADD) $(LIBS) check_bufovflw$(EXEEXT): $(check_bufovflw_OBJECTS) $(check_bufovflw_DEPENDENCIES) $(EXTRA_check_bufovflw_DEPENDENCIES) @rm -f check_bufovflw$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_bufovflw_OBJECTS) $(check_bufovflw_LDADD) $(LIBS) check_clone_table$(EXEEXT): $(check_clone_table_OBJECTS) $(check_clone_table_DEPENDENCIES) $(EXTRA_check_clone_table_DEPENDENCIES) @rm -f check_clone_table$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_clone_table_OBJECTS) $(check_clone_table_LDADD) $(LIBS) check_control_points$(EXEEXT): $(check_control_points_OBJECTS) $(check_control_points_DEPENDENCIES) $(EXTRA_check_control_points_DEPENDENCIES) @rm -f check_control_points$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_control_points_OBJECTS) $(check_control_points_LDADD) $(LIBS) check_create$(EXEEXT): $(check_create_OBJECTS) $(check_create_DEPENDENCIES) $(EXTRA_check_create_DEPENDENCIES) @rm -f check_create$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_create_OBJECTS) $(check_create_LDADD) $(LIBS) check_createBaseTables$(EXEEXT): $(check_createBaseTables_OBJECTS) $(check_createBaseTables_DEPENDENCIES) $(EXTRA_check_createBaseTables_DEPENDENCIES) @rm -f check_createBaseTables$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_createBaseTables_OBJECTS) $(check_createBaseTables_LDADD) $(LIBS) check_dbf_load$(EXEEXT): $(check_dbf_load_OBJECTS) $(check_dbf_load_DEPENDENCIES) $(EXTRA_check_dbf_load_DEPENDENCIES) @rm -f check_dbf_load$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_dbf_load_OBJECTS) $(check_dbf_load_LDADD) $(LIBS) check_dxf$(EXEEXT): $(check_dxf_OBJECTS) $(check_dxf_DEPENDENCIES) $(EXTRA_check_dxf_DEPENDENCIES) @rm -f check_dxf$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_dxf_OBJECTS) $(check_dxf_LDADD) $(LIBS) check_endian$(EXEEXT): $(check_endian_OBJECTS) $(check_endian_DEPENDENCIES) $(EXTRA_check_endian_DEPENDENCIES) @rm -f check_endian$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_endian_OBJECTS) $(check_endian_LDADD) $(LIBS) check_exif$(EXEEXT): $(check_exif_OBJECTS) $(check_exif_DEPENDENCIES) $(EXTRA_check_exif_DEPENDENCIES) @rm -f check_exif$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_exif_OBJECTS) $(check_exif_LDADD) $(LIBS) check_exif2$(EXEEXT): $(check_exif2_OBJECTS) $(check_exif2_DEPENDENCIES) $(EXTRA_check_exif2_DEPENDENCIES) @rm -f check_exif2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_exif2_OBJECTS) $(check_exif2_LDADD) $(LIBS) check_extension$(EXEEXT): $(check_extension_OBJECTS) $(check_extension_DEPENDENCIES) $(EXTRA_check_extension_DEPENDENCIES) @rm -f check_extension$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_extension_OBJECTS) $(check_extension_LDADD) $(LIBS) check_extra_relations_fncts$(EXEEXT): $(check_extra_relations_fncts_OBJECTS) $(check_extra_relations_fncts_DEPENDENCIES) $(EXTRA_check_extra_relations_fncts_DEPENDENCIES) @rm -f check_extra_relations_fncts$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_extra_relations_fncts_OBJECTS) $(check_extra_relations_fncts_LDADD) $(LIBS) check_fdo1$(EXEEXT): $(check_fdo1_OBJECTS) $(check_fdo1_DEPENDENCIES) $(EXTRA_check_fdo1_DEPENDENCIES) @rm -f check_fdo1$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_fdo1_OBJECTS) $(check_fdo1_LDADD) $(LIBS) check_fdo2$(EXEEXT): $(check_fdo2_OBJECTS) $(check_fdo2_DEPENDENCIES) $(EXTRA_check_fdo2_DEPENDENCIES) @rm -f check_fdo2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_fdo2_OBJECTS) $(check_fdo2_LDADD) $(LIBS) check_fdo3$(EXEEXT): $(check_fdo3_OBJECTS) $(check_fdo3_DEPENDENCIES) $(EXTRA_check_fdo3_DEPENDENCIES) @rm -f check_fdo3$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_fdo3_OBJECTS) $(check_fdo3_LDADD) $(LIBS) check_fdo_bufovflw$(EXEEXT): $(check_fdo_bufovflw_OBJECTS) $(check_fdo_bufovflw_DEPENDENCIES) $(EXTRA_check_fdo_bufovflw_DEPENDENCIES) @rm -f check_fdo_bufovflw$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_fdo_bufovflw_OBJECTS) $(check_fdo_bufovflw_LDADD) $(LIBS) check_gaia_utf8$(EXEEXT): $(check_gaia_utf8_OBJECTS) $(check_gaia_utf8_DEPENDENCIES) $(EXTRA_check_gaia_utf8_DEPENDENCIES) @rm -f check_gaia_utf8$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gaia_utf8_OBJECTS) $(check_gaia_utf8_LDADD) $(LIBS) check_gaia_util$(EXEEXT): $(check_gaia_util_OBJECTS) $(check_gaia_util_DEPENDENCIES) $(EXTRA_check_gaia_util_DEPENDENCIES) @rm -f check_gaia_util$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gaia_util_OBJECTS) $(check_gaia_util_LDADD) $(LIBS) check_geom_aux$(EXEEXT): $(check_geom_aux_OBJECTS) $(check_geom_aux_DEPENDENCIES) $(EXTRA_check_geom_aux_DEPENDENCIES) @rm -f check_geom_aux$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_geom_aux_OBJECTS) $(check_geom_aux_LDADD) $(LIBS) check_geometry_cols$(EXEEXT): $(check_geometry_cols_OBJECTS) $(check_geometry_cols_DEPENDENCIES) $(EXTRA_check_geometry_cols_DEPENDENCIES) @rm -f check_geometry_cols$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_geometry_cols_OBJECTS) $(check_geometry_cols_LDADD) $(LIBS) check_geoscvt_fncts$(EXEEXT): $(check_geoscvt_fncts_OBJECTS) $(check_geoscvt_fncts_DEPENDENCIES) $(EXTRA_check_geoscvt_fncts_DEPENDENCIES) @rm -f check_geoscvt_fncts$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_geoscvt_fncts_OBJECTS) $(check_geoscvt_fncts_LDADD) $(LIBS) check_get_normal_row$(EXEEXT): $(check_get_normal_row_OBJECTS) $(check_get_normal_row_DEPENDENCIES) $(EXTRA_check_get_normal_row_DEPENDENCIES) @rm -f check_get_normal_row$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_get_normal_row_OBJECTS) $(check_get_normal_row_LDADD) $(LIBS) check_get_normal_row_bad_geopackage$(EXEEXT): $(check_get_normal_row_bad_geopackage_OBJECTS) $(check_get_normal_row_bad_geopackage_DEPENDENCIES) $(EXTRA_check_get_normal_row_bad_geopackage_DEPENDENCIES) @rm -f check_get_normal_row_bad_geopackage$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_get_normal_row_bad_geopackage_OBJECTS) $(check_get_normal_row_bad_geopackage_LDADD) $(LIBS) check_get_normal_row_bad_geopackage2$(EXEEXT): $(check_get_normal_row_bad_geopackage2_OBJECTS) $(check_get_normal_row_bad_geopackage2_DEPENDENCIES) $(EXTRA_check_get_normal_row_bad_geopackage2_DEPENDENCIES) @rm -f check_get_normal_row_bad_geopackage2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_get_normal_row_bad_geopackage2_OBJECTS) $(check_get_normal_row_bad_geopackage2_LDADD) $(LIBS) check_get_normal_zoom$(EXEEXT): $(check_get_normal_zoom_OBJECTS) $(check_get_normal_zoom_DEPENDENCIES) $(EXTRA_check_get_normal_zoom_DEPENDENCIES) @rm -f check_get_normal_zoom$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_get_normal_zoom_OBJECTS) $(check_get_normal_zoom_LDADD) $(LIBS) check_get_normal_zoom_bad_geopackage$(EXEEXT): $(check_get_normal_zoom_bad_geopackage_OBJECTS) $(check_get_normal_zoom_bad_geopackage_DEPENDENCIES) $(EXTRA_check_get_normal_zoom_bad_geopackage_DEPENDENCIES) @rm -f check_get_normal_zoom_bad_geopackage$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_get_normal_zoom_bad_geopackage_OBJECTS) $(check_get_normal_zoom_bad_geopackage_LDADD) $(LIBS) check_get_normal_zoom_bad_geopackage2$(EXEEXT): $(check_get_normal_zoom_bad_geopackage2_OBJECTS) $(check_get_normal_zoom_bad_geopackage2_DEPENDENCIES) $(EXTRA_check_get_normal_zoom_bad_geopackage2_DEPENDENCIES) @rm -f check_get_normal_zoom_bad_geopackage2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_get_normal_zoom_bad_geopackage2_OBJECTS) $(check_get_normal_zoom_bad_geopackage2_LDADD) $(LIBS) check_get_normal_zoom_extension_load$(EXEEXT): $(check_get_normal_zoom_extension_load_OBJECTS) $(check_get_normal_zoom_extension_load_DEPENDENCIES) $(EXTRA_check_get_normal_zoom_extension_load_DEPENDENCIES) @rm -f check_get_normal_zoom_extension_load$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_get_normal_zoom_extension_load_OBJECTS) $(check_get_normal_zoom_extension_load_LDADD) $(LIBS) check_gpkgConvert$(EXEEXT): $(check_gpkgConvert_OBJECTS) $(check_gpkgConvert_DEPENDENCIES) $(EXTRA_check_gpkgConvert_DEPENDENCIES) @rm -f check_gpkgConvert$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkgConvert_OBJECTS) $(check_gpkgConvert_LDADD) $(LIBS) check_gpkgCreateFeaturesTable$(EXEEXT): $(check_gpkgCreateFeaturesTable_OBJECTS) $(check_gpkgCreateFeaturesTable_DEPENDENCIES) $(EXTRA_check_gpkgCreateFeaturesTable_DEPENDENCIES) @rm -f check_gpkgCreateFeaturesTable$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkgCreateFeaturesTable_OBJECTS) $(check_gpkgCreateFeaturesTable_LDADD) $(LIBS) check_gpkgCreateTilesTable$(EXEEXT): $(check_gpkgCreateTilesTable_OBJECTS) $(check_gpkgCreateTilesTable_DEPENDENCIES) $(EXTRA_check_gpkgCreateTilesTable_DEPENDENCIES) @rm -f check_gpkgCreateTilesTable$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkgCreateTilesTable_OBJECTS) $(check_gpkgCreateTilesTable_LDADD) $(LIBS) check_gpkgCreateTilesTableMissingSRID$(EXEEXT): $(check_gpkgCreateTilesTableMissingSRID_OBJECTS) $(check_gpkgCreateTilesTableMissingSRID_DEPENDENCIES) $(EXTRA_check_gpkgCreateTilesTableMissingSRID_DEPENDENCIES) @rm -f check_gpkgCreateTilesTableMissingSRID$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkgCreateTilesTableMissingSRID_OBJECTS) $(check_gpkgCreateTilesTableMissingSRID_LDADD) $(LIBS) check_gpkgCreateTilesZoomLevel$(EXEEXT): $(check_gpkgCreateTilesZoomLevel_OBJECTS) $(check_gpkgCreateTilesZoomLevel_DEPENDENCIES) $(EXTRA_check_gpkgCreateTilesZoomLevel_DEPENDENCIES) @rm -f check_gpkgCreateTilesZoomLevel$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkgCreateTilesZoomLevel_OBJECTS) $(check_gpkgCreateTilesZoomLevel_LDADD) $(LIBS) check_gpkgGetImageFormat$(EXEEXT): $(check_gpkgGetImageFormat_OBJECTS) $(check_gpkgGetImageFormat_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_DEPENDENCIES) @rm -f check_gpkgGetImageFormat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkgGetImageFormat_OBJECTS) $(check_gpkgGetImageFormat_LDADD) $(LIBS) check_gpkgGetImageFormat_nonblob$(EXEEXT): $(check_gpkgGetImageFormat_nonblob_OBJECTS) $(check_gpkgGetImageFormat_nonblob_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_nonblob_DEPENDENCIES) @rm -f check_gpkgGetImageFormat_nonblob$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkgGetImageFormat_nonblob_OBJECTS) $(check_gpkgGetImageFormat_nonblob_LDADD) $(LIBS) check_gpkgGetImageFormat_nonimage$(EXEEXT): $(check_gpkgGetImageFormat_nonimage_OBJECTS) $(check_gpkgGetImageFormat_nonimage_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_nonimage_DEPENDENCIES) @rm -f check_gpkgGetImageFormat_nonimage$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkgGetImageFormat_nonimage_OBJECTS) $(check_gpkgGetImageFormat_nonimage_LDADD) $(LIBS) check_gpkgGetImageFormat_png$(EXEEXT): $(check_gpkgGetImageFormat_png_OBJECTS) $(check_gpkgGetImageFormat_png_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_png_DEPENDENCIES) @rm -f check_gpkgGetImageFormat_png$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkgGetImageFormat_png_OBJECTS) $(check_gpkgGetImageFormat_png_LDADD) $(LIBS) check_gpkgGetImageFormat_tiff$(EXEEXT): $(check_gpkgGetImageFormat_tiff_OBJECTS) $(check_gpkgGetImageFormat_tiff_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_tiff_DEPENDENCIES) @rm -f check_gpkgGetImageFormat_tiff$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkgGetImageFormat_tiff_OBJECTS) $(check_gpkgGetImageFormat_tiff_LDADD) $(LIBS) check_gpkgGetImageFormat_webp$(EXEEXT): $(check_gpkgGetImageFormat_webp_OBJECTS) $(check_gpkgGetImageFormat_webp_DEPENDENCIES) $(EXTRA_check_gpkgGetImageFormat_webp_DEPENDENCIES) @rm -f check_gpkgGetImageFormat_webp$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkgGetImageFormat_webp_OBJECTS) $(check_gpkgGetImageFormat_webp_LDADD) $(LIBS) check_gpkgInsertEpsgSRID$(EXEEXT): $(check_gpkgInsertEpsgSRID_OBJECTS) $(check_gpkgInsertEpsgSRID_DEPENDENCIES) $(EXTRA_check_gpkgInsertEpsgSRID_DEPENDENCIES) @rm -f check_gpkgInsertEpsgSRID$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkgInsertEpsgSRID_OBJECTS) $(check_gpkgInsertEpsgSRID_LDADD) $(LIBS) check_gpkgMode$(EXEEXT): $(check_gpkgMode_OBJECTS) $(check_gpkgMode_DEPENDENCIES) $(EXTRA_check_gpkgMode_DEPENDENCIES) @rm -f check_gpkgMode$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkgMode_OBJECTS) $(check_gpkgMode_LDADD) $(LIBS) check_gpkgVirtual$(EXEEXT): $(check_gpkgVirtual_OBJECTS) $(check_gpkgVirtual_DEPENDENCIES) $(EXTRA_check_gpkgVirtual_DEPENDENCIES) @rm -f check_gpkgVirtual$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkgVirtual_OBJECTS) $(check_gpkgVirtual_LDADD) $(LIBS) check_gpkg_base_core_container_data_file_format_application_id$(EXEEXT): $(check_gpkg_base_core_container_data_file_format_application_id_OBJECTS) $(check_gpkg_base_core_container_data_file_format_application_id_DEPENDENCIES) $(EXTRA_check_gpkg_base_core_container_data_file_format_application_id_DEPENDENCIES) @rm -f check_gpkg_base_core_container_data_file_format_application_id$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkg_base_core_container_data_file_format_application_id_OBJECTS) $(check_gpkg_base_core_container_data_file_format_application_id_LDADD) $(LIBS) check_gpkg_base_core_contents_data_table_def$(EXEEXT): $(check_gpkg_base_core_contents_data_table_def_OBJECTS) $(check_gpkg_base_core_contents_data_table_def_DEPENDENCIES) $(EXTRA_check_gpkg_base_core_contents_data_table_def_DEPENDENCIES) @rm -f check_gpkg_base_core_contents_data_table_def$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkg_base_core_contents_data_table_def_OBJECTS) $(check_gpkg_base_core_contents_data_table_def_LDADD) $(LIBS) check_gpkg_base_core_spatial_ref_sys_data_table_def$(EXEEXT): $(check_gpkg_base_core_spatial_ref_sys_data_table_def_OBJECTS) $(check_gpkg_base_core_spatial_ref_sys_data_table_def_DEPENDENCIES) $(EXTRA_check_gpkg_base_core_spatial_ref_sys_data_table_def_DEPENDENCIES) @rm -f check_gpkg_base_core_spatial_ref_sys_data_table_def$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkg_base_core_spatial_ref_sys_data_table_def_OBJECTS) $(check_gpkg_base_core_spatial_ref_sys_data_table_def_LDADD) $(LIBS) check_gpkg_base_core_spatial_ref_sys_data_values_default$(EXEEXT): $(check_gpkg_base_core_spatial_ref_sys_data_values_default_OBJECTS) $(check_gpkg_base_core_spatial_ref_sys_data_values_default_DEPENDENCIES) $(EXTRA_check_gpkg_base_core_spatial_ref_sys_data_values_default_DEPENDENCIES) @rm -f check_gpkg_base_core_spatial_ref_sys_data_values_default$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkg_base_core_spatial_ref_sys_data_values_default_OBJECTS) $(check_gpkg_base_core_spatial_ref_sys_data_values_default_LDADD) $(LIBS) check_gpkg_opt_extension_mechanism_extensions_data_table_def$(EXEEXT): $(check_gpkg_opt_extension_mechanism_extensions_data_table_def_OBJECTS) $(check_gpkg_opt_extension_mechanism_extensions_data_table_def_DEPENDENCIES) $(EXTRA_check_gpkg_opt_extension_mechanism_extensions_data_table_def_DEPENDENCIES) @rm -f check_gpkg_opt_extension_mechanism_extensions_data_table_def$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_gpkg_opt_extension_mechanism_extensions_data_table_def_OBJECTS) $(check_gpkg_opt_extension_mechanism_extensions_data_table_def_LDADD) $(LIBS) check_init$(EXEEXT): $(check_init_OBJECTS) $(check_init_DEPENDENCIES) $(EXTRA_check_init_DEPENDENCIES) @rm -f check_init$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_init_OBJECTS) $(check_init_LDADD) $(LIBS) check_init2$(EXEEXT): $(check_init2_OBJECTS) $(check_init2_DEPENDENCIES) $(EXTRA_check_init2_DEPENDENCIES) @rm -f check_init2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_init2_OBJECTS) $(check_init2_LDADD) $(LIBS) check_libxml2$(EXEEXT): $(check_libxml2_OBJECTS) $(check_libxml2_DEPENDENCIES) $(EXTRA_check_libxml2_DEPENDENCIES) @rm -f check_libxml2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_libxml2_OBJECTS) $(check_libxml2_LDADD) $(LIBS) check_math_funcs$(EXEEXT): $(check_math_funcs_OBJECTS) $(check_math_funcs_DEPENDENCIES) $(EXTRA_check_math_funcs_DEPENDENCIES) @rm -f check_math_funcs$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_math_funcs_OBJECTS) $(check_math_funcs_LDADD) $(LIBS) check_mbrcache$(EXEEXT): $(check_mbrcache_OBJECTS) $(check_mbrcache_DEPENDENCIES) $(EXTRA_check_mbrcache_DEPENDENCIES) @rm -f check_mbrcache$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_mbrcache_OBJECTS) $(check_mbrcache_LDADD) $(LIBS) check_md5$(EXEEXT): $(check_md5_OBJECTS) $(check_md5_DEPENDENCIES) $(EXTRA_check_md5_DEPENDENCIES) @rm -f check_md5$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_md5_OBJECTS) $(check_md5_LDADD) $(LIBS) check_metacatalog$(EXEEXT): $(check_metacatalog_OBJECTS) $(check_metacatalog_DEPENDENCIES) $(EXTRA_check_metacatalog_DEPENDENCIES) @rm -f check_metacatalog$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_metacatalog_OBJECTS) $(check_metacatalog_LDADD) $(LIBS) check_multithread$(EXEEXT): $(check_multithread_OBJECTS) $(check_multithread_DEPENDENCIES) $(EXTRA_check_multithread_DEPENDENCIES) @rm -f check_multithread$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_multithread_OBJECTS) $(check_multithread_LDADD) $(LIBS) check_recover_geom$(EXEEXT): $(check_recover_geom_OBJECTS) $(check_recover_geom_DEPENDENCIES) $(EXTRA_check_recover_geom_DEPENDENCIES) @rm -f check_recover_geom$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_recover_geom_OBJECTS) $(check_recover_geom_LDADD) $(LIBS) check_relations_fncts$(EXEEXT): $(check_relations_fncts_OBJECTS) $(check_relations_fncts_DEPENDENCIES) $(EXTRA_check_relations_fncts_DEPENDENCIES) @rm -f check_relations_fncts$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_relations_fncts_OBJECTS) $(check_relations_fncts_LDADD) $(LIBS) check_shp_load$(EXEEXT): $(check_shp_load_OBJECTS) $(check_shp_load_DEPENDENCIES) $(EXTRA_check_shp_load_DEPENDENCIES) @rm -f check_shp_load$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_shp_load_OBJECTS) $(check_shp_load_LDADD) $(LIBS) check_shp_load_3d$(EXEEXT): $(check_shp_load_3d_OBJECTS) $(check_shp_load_3d_DEPENDENCIES) $(EXTRA_check_shp_load_3d_DEPENDENCIES) @rm -f check_shp_load_3d$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_shp_load_3d_OBJECTS) $(check_shp_load_3d_LDADD) $(LIBS) check_spatialindex$(EXEEXT): $(check_spatialindex_OBJECTS) $(check_spatialindex_DEPENDENCIES) $(EXTRA_check_spatialindex_DEPENDENCIES) @rm -f check_spatialindex$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_spatialindex_OBJECTS) $(check_spatialindex_LDADD) $(LIBS) check_sql_stmt$(EXEEXT): $(check_sql_stmt_OBJECTS) $(check_sql_stmt_DEPENDENCIES) $(EXTRA_check_sql_stmt_DEPENDENCIES) @rm -f check_sql_stmt$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_sql_stmt_OBJECTS) $(check_sql_stmt_LDADD) $(LIBS) check_srid_fncts$(EXEEXT): $(check_srid_fncts_OBJECTS) $(check_srid_fncts_DEPENDENCIES) $(EXTRA_check_srid_fncts_DEPENDENCIES) @rm -f check_srid_fncts$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_srid_fncts_OBJECTS) $(check_srid_fncts_LDADD) $(LIBS) check_styling$(EXEEXT): $(check_styling_OBJECTS) $(check_styling_DEPENDENCIES) $(EXTRA_check_styling_DEPENDENCIES) @rm -f check_styling$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_styling_OBJECTS) $(check_styling_LDADD) $(LIBS) check_version$(EXEEXT): $(check_version_OBJECTS) $(check_version_DEPENDENCIES) $(EXTRA_check_version_DEPENDENCIES) @rm -f check_version$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_version_OBJECTS) $(check_version_LDADD) $(LIBS) check_virtual_ovflw$(EXEEXT): $(check_virtual_ovflw_OBJECTS) $(check_virtual_ovflw_DEPENDENCIES) $(EXTRA_check_virtual_ovflw_DEPENDENCIES) @rm -f check_virtual_ovflw$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_virtual_ovflw_OBJECTS) $(check_virtual_ovflw_LDADD) $(LIBS) check_virtualbbox$(EXEEXT): $(check_virtualbbox_OBJECTS) $(check_virtualbbox_DEPENDENCIES) $(EXTRA_check_virtualbbox_DEPENDENCIES) @rm -f check_virtualbbox$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_virtualbbox_OBJECTS) $(check_virtualbbox_LDADD) $(LIBS) check_virtualelem$(EXEEXT): $(check_virtualelem_OBJECTS) $(check_virtualelem_DEPENDENCIES) $(EXTRA_check_virtualelem_DEPENDENCIES) @rm -f check_virtualelem$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_virtualelem_OBJECTS) $(check_virtualelem_LDADD) $(LIBS) check_virtualtable1$(EXEEXT): $(check_virtualtable1_OBJECTS) $(check_virtualtable1_DEPENDENCIES) $(EXTRA_check_virtualtable1_DEPENDENCIES) @rm -f check_virtualtable1$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_virtualtable1_OBJECTS) $(check_virtualtable1_LDADD) $(LIBS) check_virtualtable2$(EXEEXT): $(check_virtualtable2_OBJECTS) $(check_virtualtable2_DEPENDENCIES) $(EXTRA_check_virtualtable2_DEPENDENCIES) @rm -f check_virtualtable2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_virtualtable2_OBJECTS) $(check_virtualtable2_LDADD) $(LIBS) check_virtualtable3$(EXEEXT): $(check_virtualtable3_OBJECTS) $(check_virtualtable3_DEPENDENCIES) $(EXTRA_check_virtualtable3_DEPENDENCIES) @rm -f check_virtualtable3$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_virtualtable3_OBJECTS) $(check_virtualtable3_LDADD) $(LIBS) check_virtualtable4$(EXEEXT): $(check_virtualtable4_OBJECTS) $(check_virtualtable4_DEPENDENCIES) $(EXTRA_check_virtualtable4_DEPENDENCIES) @rm -f check_virtualtable4$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_virtualtable4_OBJECTS) $(check_virtualtable4_LDADD) $(LIBS) check_virtualtable5$(EXEEXT): $(check_virtualtable5_OBJECTS) $(check_virtualtable5_DEPENDENCIES) $(EXTRA_check_virtualtable5_DEPENDENCIES) @rm -f check_virtualtable5$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_virtualtable5_OBJECTS) $(check_virtualtable5_LDADD) $(LIBS) check_virtualtable6$(EXEEXT): $(check_virtualtable6_OBJECTS) $(check_virtualtable6_DEPENDENCIES) $(EXTRA_check_virtualtable6_DEPENDENCIES) @rm -f check_virtualtable6$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_virtualtable6_OBJECTS) $(check_virtualtable6_LDADD) $(LIBS) check_virtualxpath$(EXEEXT): $(check_virtualxpath_OBJECTS) $(check_virtualxpath_DEPENDENCIES) $(EXTRA_check_virtualxpath_DEPENDENCIES) @rm -f check_virtualxpath$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_virtualxpath_OBJECTS) $(check_virtualxpath_LDADD) $(LIBS) check_wfsin$(EXEEXT): $(check_wfsin_OBJECTS) $(check_wfsin_DEPENDENCIES) $(EXTRA_check_wfsin_DEPENDENCIES) @rm -f check_wfsin$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_wfsin_OBJECTS) $(check_wfsin_LDADD) $(LIBS) check_xls_load$(EXEEXT): $(check_xls_load_OBJECTS) $(check_xls_load_DEPENDENCIES) $(EXTRA_check_xls_load_DEPENDENCIES) @rm -f check_xls_load$(EXEEXT) $(AM_V_CCLD)$(LINK) $(check_xls_load_OBJECTS) $(check_xls_load_LDADD) $(LIBS) shape_3d$(EXEEXT): $(shape_3d_OBJECTS) $(shape_3d_DEPENDENCIES) $(EXTRA_shape_3d_DEPENDENCIES) @rm -f shape_3d$(EXEEXT) $(AM_V_CCLD)$(LINK) $(shape_3d_OBJECTS) $(shape_3d_LDADD) $(LIBS) shape_cp1252$(EXEEXT): $(shape_cp1252_OBJECTS) $(shape_cp1252_DEPENDENCIES) $(EXTRA_shape_cp1252_DEPENDENCIES) @rm -f shape_cp1252$(EXEEXT) $(AM_V_CCLD)$(LINK) $(shape_cp1252_OBJECTS) $(shape_cp1252_LDADD) $(LIBS) shape_primitives$(EXEEXT): $(shape_primitives_OBJECTS) $(shape_primitives_DEPENDENCIES) $(EXTRA_shape_primitives_DEPENDENCIES) @rm -f shape_primitives$(EXEEXT) $(AM_V_CCLD)$(LINK) $(shape_primitives_OBJECTS) $(shape_primitives_LDADD) $(LIBS) shape_utf8_1$(EXEEXT): $(shape_utf8_1_OBJECTS) $(shape_utf8_1_DEPENDENCIES) $(EXTRA_shape_utf8_1_DEPENDENCIES) @rm -f shape_utf8_1$(EXEEXT) $(AM_V_CCLD)$(LINK) $(shape_utf8_1_OBJECTS) $(shape_utf8_1_LDADD) $(LIBS) shape_utf8_1ex$(EXEEXT): $(shape_utf8_1ex_OBJECTS) $(shape_utf8_1ex_DEPENDENCIES) $(EXTRA_shape_utf8_1ex_DEPENDENCIES) @rm -f shape_utf8_1ex$(EXEEXT) $(AM_V_CCLD)$(LINK) $(shape_utf8_1ex_OBJECTS) $(shape_utf8_1ex_LDADD) $(LIBS) shape_utf8_2$(EXEEXT): $(shape_utf8_2_OBJECTS) $(shape_utf8_2_DEPENDENCIES) $(EXTRA_shape_utf8_2_DEPENDENCIES) @rm -f shape_utf8_2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(shape_utf8_2_OBJECTS) $(shape_utf8_2_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_add_tile_triggers.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_add_tile_triggers_bad_table_name.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_bufovflw.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_clone_table.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_control_points.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_create.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_createBaseTables.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_dbf_load.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_dxf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_endian.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_exif.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_exif2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_extension.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_extra_relations_fncts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_fdo1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_fdo2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_fdo3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_fdo_bufovflw.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gaia_utf8.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gaia_util.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_geom_aux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_geometry_cols.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_geoscvt_fncts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_row.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_row_bad_geopackage.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_row_bad_geopackage2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_zoom.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_zoom_bad_geopackage.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_zoom_bad_geopackage2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_get_normal_zoom_extension_load.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgConvert.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgCreateFeaturesTable.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgCreateTilesTable.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgCreateTilesTableMissingSRID.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgCreateTilesZoomLevel.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgGetImageFormat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgGetImageFormat_nonblob.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgGetImageFormat_nonimage.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgGetImageFormat_png.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgGetImageFormat_tiff.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgGetImageFormat_webp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgInsertEpsgSRID.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgMode.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkgVirtual.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkg_base_core_container_data_file_format_application_id.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkg_base_core_contents_data_table_def.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkg_base_core_spatial_ref_sys_data_table_def.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkg_base_core_spatial_ref_sys_data_values_default.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_gpkg_opt_extension_mechanism_extensions_data_table_def.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_init.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_init2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_libxml2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_math_funcs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_mbrcache.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_md5.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_metacatalog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_multithread.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_recover_geom.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_relations_fncts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_shp_load.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_shp_load_3d.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_spatialindex.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_sql_stmt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_srid_fncts.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_styling.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_version.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtual_ovflw.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualbbox.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualelem.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualtable1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualtable2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualtable3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualtable4.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualtable5.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualtable6.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_virtualxpath.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_wfsin.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_xls_load.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shape_3d.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shape_cp1252.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shape_primitives.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shape_utf8_1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shape_utf8_1ex.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shape_utf8_2.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ elif test -n "$$redo_logs"; then \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all $(check_PROGRAMS) @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? check_endian.log: check_endian$(EXEEXT) @p='check_endian$(EXEEXT)'; \ b='check_endian'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_version.log: check_version$(EXEEXT) @p='check_version$(EXEEXT)'; \ b='check_version'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_init.log: check_init$(EXEEXT) @p='check_init$(EXEEXT)'; \ b='check_init'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_init2.log: check_init2$(EXEEXT) @p='check_init2$(EXEEXT)'; \ b='check_init2'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_geom_aux.log: check_geom_aux$(EXEEXT) @p='check_geom_aux$(EXEEXT)'; \ b='check_geom_aux'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_geometry_cols.log: check_geometry_cols$(EXEEXT) @p='check_geometry_cols$(EXEEXT)'; \ b='check_geometry_cols'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_create.log: check_create$(EXEEXT) @p='check_create$(EXEEXT)'; \ b='check_create'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_bufovflw.log: check_bufovflw$(EXEEXT) @p='check_bufovflw$(EXEEXT)'; \ b='check_bufovflw'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_fdo1.log: check_fdo1$(EXEEXT) @p='check_fdo1$(EXEEXT)'; \ b='check_fdo1'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_fdo2.log: check_fdo2$(EXEEXT) @p='check_fdo2$(EXEEXT)'; \ b='check_fdo2'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_fdo3.log: check_fdo3$(EXEEXT) @p='check_fdo3$(EXEEXT)'; \ b='check_fdo3'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_fdo_bufovflw.log: check_fdo_bufovflw$(EXEEXT) @p='check_fdo_bufovflw$(EXEEXT)'; \ b='check_fdo_bufovflw'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_md5.log: check_md5$(EXEEXT) @p='check_md5$(EXEEXT)'; \ b='check_md5'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_dbf_load.log: check_dbf_load$(EXEEXT) @p='check_dbf_load$(EXEEXT)'; \ b='check_dbf_load'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_shp_load.log: check_shp_load$(EXEEXT) @p='check_shp_load$(EXEEXT)'; \ b='check_shp_load'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_shp_load_3d.log: check_shp_load_3d$(EXEEXT) @p='check_shp_load_3d$(EXEEXT)'; \ b='check_shp_load_3d'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) shape_cp1252.log: shape_cp1252$(EXEEXT) @p='shape_cp1252$(EXEEXT)'; \ b='shape_cp1252'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) shape_primitives.log: shape_primitives$(EXEEXT) @p='shape_primitives$(EXEEXT)'; \ b='shape_primitives'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) shape_utf8_1.log: shape_utf8_1$(EXEEXT) @p='shape_utf8_1$(EXEEXT)'; \ b='shape_utf8_1'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) shape_utf8_1ex.log: shape_utf8_1ex$(EXEEXT) @p='shape_utf8_1ex$(EXEEXT)'; \ b='shape_utf8_1ex'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) shape_utf8_2.log: shape_utf8_2$(EXEEXT) @p='shape_utf8_2$(EXEEXT)'; \ b='shape_utf8_2'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) shape_3d.log: shape_3d$(EXEEXT) @p='shape_3d$(EXEEXT)'; \ b='shape_3d'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_clone_table.log: check_clone_table$(EXEEXT) @p='check_clone_table$(EXEEXT)'; \ b='check_clone_table'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_xls_load.log: check_xls_load$(EXEEXT) @p='check_xls_load$(EXEEXT)'; \ b='check_xls_load'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_math_funcs.log: check_math_funcs$(EXEEXT) @p='check_math_funcs$(EXEEXT)'; \ b='check_math_funcs'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gaia_util.log: check_gaia_util$(EXEEXT) @p='check_gaia_util$(EXEEXT)'; \ b='check_gaia_util'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gaia_utf8.log: check_gaia_utf8$(EXEEXT) @p='check_gaia_utf8$(EXEEXT)'; \ b='check_gaia_utf8'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_extension.log: check_extension$(EXEEXT) @p='check_extension$(EXEEXT)'; \ b='check_extension'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_recover_geom.log: check_recover_geom$(EXEEXT) @p='check_recover_geom$(EXEEXT)'; \ b='check_recover_geom'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_sql_stmt.log: check_sql_stmt$(EXEEXT) @p='check_sql_stmt$(EXEEXT)'; \ b='check_sql_stmt'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_multithread.log: check_multithread$(EXEEXT) @p='check_multithread$(EXEEXT)'; \ b='check_multithread'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_virtualtable1.log: check_virtualtable1$(EXEEXT) @p='check_virtualtable1$(EXEEXT)'; \ b='check_virtualtable1'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_virtualtable2.log: check_virtualtable2$(EXEEXT) @p='check_virtualtable2$(EXEEXT)'; \ b='check_virtualtable2'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_virtualtable3.log: check_virtualtable3$(EXEEXT) @p='check_virtualtable3$(EXEEXT)'; \ b='check_virtualtable3'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_virtualtable4.log: check_virtualtable4$(EXEEXT) @p='check_virtualtable4$(EXEEXT)'; \ b='check_virtualtable4'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_virtualtable5.log: check_virtualtable5$(EXEEXT) @p='check_virtualtable5$(EXEEXT)'; \ b='check_virtualtable5'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_virtualtable6.log: check_virtualtable6$(EXEEXT) @p='check_virtualtable6$(EXEEXT)'; \ b='check_virtualtable6'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_virtual_ovflw.log: check_virtual_ovflw$(EXEEXT) @p='check_virtual_ovflw$(EXEEXT)'; \ b='check_virtual_ovflw'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_mbrcache.log: check_mbrcache$(EXEEXT) @p='check_mbrcache$(EXEEXT)'; \ b='check_mbrcache'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_spatialindex.log: check_spatialindex$(EXEEXT) @p='check_spatialindex$(EXEEXT)'; \ b='check_spatialindex'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_exif.log: check_exif$(EXEEXT) @p='check_exif$(EXEEXT)'; \ b='check_exif'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_exif2.log: check_exif2$(EXEEXT) @p='check_exif2$(EXEEXT)'; \ b='check_exif2'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_relations_fncts.log: check_relations_fncts$(EXEEXT) @p='check_relations_fncts$(EXEEXT)'; \ b='check_relations_fncts'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_extra_relations_fncts.log: check_extra_relations_fncts$(EXEEXT) @p='check_extra_relations_fncts$(EXEEXT)'; \ b='check_extra_relations_fncts'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_geoscvt_fncts.log: check_geoscvt_fncts$(EXEEXT) @p='check_geoscvt_fncts$(EXEEXT)'; \ b='check_geoscvt_fncts'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_libxml2.log: check_libxml2$(EXEEXT) @p='check_libxml2$(EXEEXT)'; \ b='check_libxml2'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_styling.log: check_styling$(EXEEXT) @p='check_styling$(EXEEXT)'; \ b='check_styling'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_virtualxpath.log: check_virtualxpath$(EXEEXT) @p='check_virtualxpath$(EXEEXT)'; \ b='check_virtualxpath'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_virtualbbox.log: check_virtualbbox$(EXEEXT) @p='check_virtualbbox$(EXEEXT)'; \ b='check_virtualbbox'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_wfsin.log: check_wfsin$(EXEEXT) @p='check_wfsin$(EXEEXT)'; \ b='check_wfsin'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_dxf.log: check_dxf$(EXEEXT) @p='check_dxf$(EXEEXT)'; \ b='check_dxf'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_metacatalog.log: check_metacatalog$(EXEEXT) @p='check_metacatalog$(EXEEXT)'; \ b='check_metacatalog'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_virtualelem.log: check_virtualelem$(EXEEXT) @p='check_virtualelem$(EXEEXT)'; \ b='check_virtualelem'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_srid_fncts.log: check_srid_fncts$(EXEEXT) @p='check_srid_fncts$(EXEEXT)'; \ b='check_srid_fncts'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_control_points.log: check_control_points$(EXEEXT) @p='check_control_points$(EXEEXT)'; \ b='check_control_points'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_createBaseTables.log: check_createBaseTables$(EXEEXT) @p='check_createBaseTables$(EXEEXT)'; \ b='check_createBaseTables'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkgCreateTilesTable.log: check_gpkgCreateTilesTable$(EXEEXT) @p='check_gpkgCreateTilesTable$(EXEEXT)'; \ b='check_gpkgCreateTilesTable'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkgCreateTilesTableMissingSRID.log: check_gpkgCreateTilesTableMissingSRID$(EXEEXT) @p='check_gpkgCreateTilesTableMissingSRID$(EXEEXT)'; \ b='check_gpkgCreateTilesTableMissingSRID'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkgCreateTilesZoomLevel.log: check_gpkgCreateTilesZoomLevel$(EXEEXT) @p='check_gpkgCreateTilesZoomLevel$(EXEEXT)'; \ b='check_gpkgCreateTilesZoomLevel'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkgInsertEpsgSRID.log: check_gpkgInsertEpsgSRID$(EXEEXT) @p='check_gpkgInsertEpsgSRID$(EXEEXT)'; \ b='check_gpkgInsertEpsgSRID'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkgMode.log: check_gpkgMode$(EXEEXT) @p='check_gpkgMode$(EXEEXT)'; \ b='check_gpkgMode'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkgCreateFeaturesTable.log: check_gpkgCreateFeaturesTable$(EXEEXT) @p='check_gpkgCreateFeaturesTable$(EXEEXT)'; \ b='check_gpkgCreateFeaturesTable'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkg_base_core_container_data_file_format_application_id.log: check_gpkg_base_core_container_data_file_format_application_id$(EXEEXT) @p='check_gpkg_base_core_container_data_file_format_application_id$(EXEEXT)'; \ b='check_gpkg_base_core_container_data_file_format_application_id'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkg_base_core_spatial_ref_sys_data_table_def.log: check_gpkg_base_core_spatial_ref_sys_data_table_def$(EXEEXT) @p='check_gpkg_base_core_spatial_ref_sys_data_table_def$(EXEEXT)'; \ b='check_gpkg_base_core_spatial_ref_sys_data_table_def'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkg_base_core_spatial_ref_sys_data_values_default.log: check_gpkg_base_core_spatial_ref_sys_data_values_default$(EXEEXT) @p='check_gpkg_base_core_spatial_ref_sys_data_values_default$(EXEEXT)'; \ b='check_gpkg_base_core_spatial_ref_sys_data_values_default'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkg_base_core_contents_data_table_def.log: check_gpkg_base_core_contents_data_table_def$(EXEEXT) @p='check_gpkg_base_core_contents_data_table_def$(EXEEXT)'; \ b='check_gpkg_base_core_contents_data_table_def'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkg_opt_extension_mechanism_extensions_data_table_def.log: check_gpkg_opt_extension_mechanism_extensions_data_table_def$(EXEEXT) @p='check_gpkg_opt_extension_mechanism_extensions_data_table_def$(EXEEXT)'; \ b='check_gpkg_opt_extension_mechanism_extensions_data_table_def'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_add_tile_triggers.log: check_add_tile_triggers$(EXEEXT) @p='check_add_tile_triggers$(EXEEXT)'; \ b='check_add_tile_triggers'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_add_tile_triggers_bad_table_name.log: check_add_tile_triggers_bad_table_name$(EXEEXT) @p='check_add_tile_triggers_bad_table_name$(EXEEXT)'; \ b='check_add_tile_triggers_bad_table_name'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_get_normal_row.log: check_get_normal_row$(EXEEXT) @p='check_get_normal_row$(EXEEXT)'; \ b='check_get_normal_row'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_get_normal_row_bad_geopackage.log: check_get_normal_row_bad_geopackage$(EXEEXT) @p='check_get_normal_row_bad_geopackage$(EXEEXT)'; \ b='check_get_normal_row_bad_geopackage'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_get_normal_row_bad_geopackage2.log: check_get_normal_row_bad_geopackage2$(EXEEXT) @p='check_get_normal_row_bad_geopackage2$(EXEEXT)'; \ b='check_get_normal_row_bad_geopackage2'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_get_normal_zoom.log: check_get_normal_zoom$(EXEEXT) @p='check_get_normal_zoom$(EXEEXT)'; \ b='check_get_normal_zoom'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_get_normal_zoom_extension_load.log: check_get_normal_zoom_extension_load$(EXEEXT) @p='check_get_normal_zoom_extension_load$(EXEEXT)'; \ b='check_get_normal_zoom_extension_load'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_get_normal_zoom_bad_geopackage.log: check_get_normal_zoom_bad_geopackage$(EXEEXT) @p='check_get_normal_zoom_bad_geopackage$(EXEEXT)'; \ b='check_get_normal_zoom_bad_geopackage'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_get_normal_zoom_bad_geopackage2.log: check_get_normal_zoom_bad_geopackage2$(EXEEXT) @p='check_get_normal_zoom_bad_geopackage2$(EXEEXT)'; \ b='check_get_normal_zoom_bad_geopackage2'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkgGetImageFormat.log: check_gpkgGetImageFormat$(EXEEXT) @p='check_gpkgGetImageFormat$(EXEEXT)'; \ b='check_gpkgGetImageFormat'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkgGetImageFormat_nonimage.log: check_gpkgGetImageFormat_nonimage$(EXEEXT) @p='check_gpkgGetImageFormat_nonimage$(EXEEXT)'; \ b='check_gpkgGetImageFormat_nonimage'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkgGetImageFormat_nonblob.log: check_gpkgGetImageFormat_nonblob$(EXEEXT) @p='check_gpkgGetImageFormat_nonblob$(EXEEXT)'; \ b='check_gpkgGetImageFormat_nonblob'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkgGetImageFormat_png.log: check_gpkgGetImageFormat_png$(EXEEXT) @p='check_gpkgGetImageFormat_png$(EXEEXT)'; \ b='check_gpkgGetImageFormat_png'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkgGetImageFormat_tiff.log: check_gpkgGetImageFormat_tiff$(EXEEXT) @p='check_gpkgGetImageFormat_tiff$(EXEEXT)'; \ b='check_gpkgGetImageFormat_tiff'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkgGetImageFormat_webp.log: check_gpkgGetImageFormat_webp$(EXEEXT) @p='check_gpkgGetImageFormat_webp$(EXEEXT)'; \ b='check_gpkgGetImageFormat_webp'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkgConvert.log: check_gpkgConvert$(EXEEXT) @p='check_gpkgConvert$(EXEEXT)'; \ b='check_gpkgConvert'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) check_gpkgVirtual.log: check_gpkgVirtual$(EXEEXT) @p='check_gpkgVirtual$(EXEEXT)'; \ b='check_gpkgVirtual'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: 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: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) check-am install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-TESTS check-am clean clean-checkPROGRAMS clean-generic \ clean-libtool cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am recheck tags tags-am \ uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/test/check_shp_load.c0000664000175000017500000001341712544707704015521 00000000000000/* check_shp_load.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Ahmadou Dicko Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" static int do_test (sqlite3 * handle, const void *p_cache) { int ret; char *err_msg = NULL; int row_count; ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } ret = load_shapefile (handle, "./shapetest1", "test1", "UTF-8", 4326, "col1", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error: %s\n", err_msg); sqlite3_close (handle); return -3; } #ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ if (p_cache == NULL) ret = check_geometry_column (handle, "test1", "geometry", "./report.html", NULL, NULL, NULL); else ret = check_geometry_column_r (p_cache, handle, "test1", "geometry", "./report.html", NULL, NULL, NULL); if (ret) { fprintf (stderr, "check_geometry_column() error\n"); sqlite3_close (handle); return -4; } if (p_cache == NULL) ret = sanitize_geometry_column (handle, "test1", "geometry", "tmp_test1", "./report.html", NULL, NULL, NULL, NULL, NULL); else ret = sanitize_geometry_column_r (p_cache, handle, "test1", "geometry", "tmp_test1", "./report.html", NULL, NULL, NULL, NULL, NULL); if (ret) { fprintf (stderr, "sanitize_geometry_column() error\n"); sqlite3_close (handle); return -5; } if (p_cache == NULL) ret = check_geometry_column (handle, "test1", "col1", "./report.html", NULL, NULL, NULL); else ret = check_geometry_column_r (p_cache, handle, "test1", "col1", "./report.html", NULL, NULL, NULL); if (!ret) { fprintf (stderr, "check_geometry_column() error\n"); sqlite3_close (handle); return -6; } if (p_cache == NULL) ret = sanitize_geometry_column (handle, "test1", "col1", "tmp_test1", "./report.html", NULL, NULL, NULL, NULL, NULL); else ret = sanitize_geometry_column_r (p_cache, handle, "test1", "col1", "tmp_test1", "./report.html", NULL, NULL, NULL, NULL, NULL); if (!ret) { fprintf (stderr, "sanitize_geometry_column() error\n"); sqlite3_close (handle); return -7; } #endif /* end LWGEOM conditionals */ return 0; } int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = do_test (handle, cache); if (ret != 0) return ret; ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -8; } spatialite_cleanup_ex (cache); /* testing again in legacy mode */ spatialite_init (0); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -9; } ret = do_test (handle, NULL); if (ret != 0) return ret; ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -10; } spatialite_cleanup (); #endif /* end ICONV conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_virtualbbox.c0000664000175000017500000004166712544707704016301 00000000000000/* check_virtualbbox.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -2; } /* creating the BoundingBox table */ ret = sqlite3_exec (db_handle, "CREATE TABLE BBox_Test (pk_uid INTEGER, " "min_x DOUBLE, min_y DOUBLE, max_x DOUBLE, max_y DOUBLE, srid INTEGER, " "name TEXT, count INTEGER, measure DOUBLE, odd BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -3; } /* inserting few rows into the BoundingBox table */ ret = sqlite3_exec (db_handle, "INSERT INTO BBox_Test " "(pk_uid, min_x, min_y, max_x, max_y, srid, name, count, measure, odd) " "VALUES (1, 1, 2, 3, 4, 4326, 'alpha', 10, 10.1, zeroblob(4))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT #1 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -4; } ret = sqlite3_exec (db_handle, "INSERT INTO BBox_Test " "(pk_uid, min_x, min_y, max_x, max_y, srid, name, count, measure, odd) " "VALUES (2, 2, 3, 4, 5, 4326, 'beta', 20, 20.2, zeroblob(4))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT #2 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -5; } ret = sqlite3_exec (db_handle, "INSERT INTO BBox_Test " "(pk_uid, min_x, min_y, max_x, max_y, srid, name, count, measure, odd) " "VALUES (3, 3, 4, 5, 6, 3003, 'gamma', 30, 30.3, NULL)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT #3 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -6; } ret = sqlite3_exec (db_handle, "INSERT INTO BBox_Test " "(pk_uid, min_x, min_y, max_x, max_y, srid, name, count, measure, odd) " "VALUES (4, 1, 2, NULL, 4, 4326, 'delta', 40, NULL, NULL)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT #4 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -7; } ret = sqlite3_exec (db_handle, "INSERT INTO BBox_Test " "(pk_uid, min_x, min_y, max_x, max_y, srid, name, count, measure, odd) " "VALUES (5, 1, 2, 3, 4, NULL, 'epsilon', NULL, NULL, NULL)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT #5 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -8; } /* creating the VirtualBBox table #1 */ ret = sqlite3_exec (db_handle, "CREATE VIRTUAL TABLE test1 USING " "VirtualBBox('BBox_Test', 'min_x', min_y, \"max_x\", 'max_y', " "srid, 0, pk_uid, name, count, measure, odd)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE VIRTUAL TABLE #1 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -9; } /* testing the VirtualBBox table #1 */ ret = sqlite3_get_table (db_handle, "SELECT ROWID, pk_uid, name, count, measure, Length(odd), GeometryType(Geometry), Srid(Geometry) FROM test1", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != 5) || (columns != 8)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -11; } if (strcasecmp (results[0], "ROWID") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -12; } if (strcasecmp (results[1], "pk_uid") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[1]); return -13; } if (strcasecmp (results[2], "name") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[2]); return -14; } if (strcasecmp (results[3], "count") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[3]); return -15; } if (strcasecmp (results[4], "measure") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[4]); return -16; } if (strcasecmp (results[5], "Length(odd)") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[5]); return -17; } if (strcasecmp (results[6], "GeometryType(Geometry)") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[6]); return -18; } if (strcasecmp (results[7], "Srid(Geometry)") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[7]); return -19; } if (strcmp (results[8], "1") != 0) { fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n", results[8]); return -20; } if (strcmp (results[9], "1") != 0) { fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n", results[9]); return -21; } if (strcmp (results[10], "alpha") != 0) { fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n", results[10]); return -22; } if (strcmp (results[11], "10") != 0) { fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n", results[11]); return -23; } if (strcmp (results[12], "10.1") != 0) { fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n", results[12]); return -24; } if (strcmp (results[13], "4") != 0) { fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n", results[13]); return -25; } if (strcmp (results[14], "POLYGON") != 0) { fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n", results[14]); return -26; } if (strcmp (results[15], "4326") != 0) { fprintf (stderr, "Unexpected error: row-1 bad result: %s.\n", results[15]); return -27; } if (strcmp (results[16], "2") != 0) { fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n", results[16]); return -28; } if (strcmp (results[17], "2") != 0) { fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n", results[17]); return -29; } if (strcmp (results[18], "beta") != 0) { fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n", results[18]); return -30; } if (strcmp (results[19], "20") != 0) { fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n", results[19]); return -31; } if (strcmp (results[20], "20.2") != 0) { fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n", results[20]); return -32; } if (strcmp (results[21], "4") != 0) { fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n", results[21]); return -33; } if (strcmp (results[22], "POLYGON") != 0) { fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n", results[22]); return -34; } if (strcmp (results[23], "4326") != 0) { fprintf (stderr, "Unexpected error: row-2 bad result: %s.\n", results[23]); return -35; } if (strcmp (results[24], "3") != 0) { fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n", results[24]); return -36; } if (strcmp (results[25], "3") != 0) { fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n", results[25]); return -37; } if (strcmp (results[26], "gamma") != 0) { fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n", results[26]); return -38; } if (strcmp (results[27], "30") != 0) { fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n", results[27]); return -39; } if (strcmp (results[28], "30.3") != 0) { fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n", results[28]); return -40; } if (results[29] != NULL) { fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n", results[29]); return -41; } if (strcmp (results[30], "POLYGON") != 0) { fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n", results[30]); return -42; } if (strcmp (results[31], "3003") != 0) { fprintf (stderr, "Unexpected error: row-3 bad result: %s.\n", results[31]); return -43; } if (strcmp (results[32], "4") != 0) { fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n", results[33]); return -44; } if (strcmp (results[33], "4") != 0) { fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n", results[33]); return -45; } if (strcmp (results[34], "delta") != 0) { fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n", results[34]); return -46; } if (strcmp (results[35], "40") != 0) { fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n", results[35]); return -47; } if (results[36] != NULL) { fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n", results[36]); return -48; } if (results[37] != NULL) { fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n", results[37]); return -49; } if (results[38] != NULL) { fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n", results[38]); return -50; } if (results[39] != NULL) { fprintf (stderr, "Unexpected error: row-4 bad result: %s.\n", results[39]); return -51; } if (strcmp (results[40], "5") != 0) { fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n", results[40]); return -52; } if (strcmp (results[41], "5") != 0) { fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n", results[41]); return -53; } if (strcmp (results[42], "epsilon") != 0) { fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n", results[42]); return -54; } if (results[43] != NULL) { fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n", results[43]); return -55; } if (results[44] != NULL) { fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n", results[44]); return -56; } if (results[45] != NULL) { fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n", results[45]); return -57; } if (strcmp (results[46], "POLYGON") != 0) { fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n", results[46]); return -58; } if (strcmp (results[47], "0") != 0) { fprintf (stderr, "Unexpected error: row-5 bad result: %s.\n", results[47]); return -59; } sqlite3_free_table (results); /* dropping the VirtualBBox table #1 */ ret = sqlite3_exec (db_handle, "DROP TABLE test1", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE #1 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -60; } /* creating the VirtualBBox table #2 */ ret = sqlite3_exec (db_handle, "CREATE VIRTUAL TABLE test2 USING " "VirtualBBox('BBox_Test', 'min_x', min_y, \"max_x\", 'max_y', 3003, 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE VIRTUAL TABLE #2 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -61; } /* testing the VirtualBBox table #2 */ ret = sqlite3_get_table (db_handle, "SELECT DISTINCT GeometryType(Geometry), Srid(Geometry) FROM test2", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -62; } if ((rows != 2) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -63; } if (strcasecmp (results[2], "POLYGON") != 0) { fprintf (stderr, "Unexpected error: distinct-row-1 bad result: %s.\n", results[2]); return -64; } if (strcasecmp (results[3], "3003") != 0) { fprintf (stderr, "Unexpected error: distinct-row-1 bad result: %s.\n", results[3]); return -65; } if (results[4] != NULL) { fprintf (stderr, "Unexpected error: distinct-row-2 bad result: %s.\n", results[4]); return -66; } if (results[5] != NULL) { fprintf (stderr, "Unexpected error: distinct-row-2 bad result: %s.\n", results[5]); return -67; } sqlite3_free_table (results); /* dropping the VirtualBBox table #2 */ ret = sqlite3_exec (db_handle, "DROP TABLE test2", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE #2 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -68; } /* creating the VirtualBBox table #3 - failure */ ret = sqlite3_exec (db_handle, "CREATE VIRTUAL TABLE test3 USING " "VirtualBBox('BBox_Test', 'min_x', min_y, \"max_x\", 'max_y', 3003)", NULL, NULL, &err_msg); if (ret == SQLITE_OK) { fprintf (stderr, "CREATE VIRTUAL TABLE #3 unexpected result: %s\n", err_msg); sqlite3_close (db_handle); return -69; } sqlite3_free (err_msg); /* creating the VirtualBBox table #4 - failure */ ret = sqlite3_exec (db_handle, "CREATE VIRTUAL TABLE test3 USING " "VirtualBBox('BBox_Test', 'min_x', min_y, \"max_x\", 'wrong', 3003, 0)", NULL, NULL, &err_msg); if (ret == SQLITE_OK) { fprintf (stderr, "CREATE VIRTUAL TABLE #4 unexpected result: %s\n", err_msg); sqlite3_close (db_handle); return -70; } sqlite3_free (err_msg); /* creating the VirtualBBox table #46 - failure */ ret = sqlite3_exec (db_handle, "CREATE VIRTUAL TABLE test3 USING " "VirtualBBox('wrong', 'min_x', min_y, \"max_x\", 'max_y', 3003, 0)", NULL, NULL, &err_msg); if (ret == SQLITE_OK) { fprintf (stderr, "CREATE VIRTUAL TABLE #5 unexpected result: %s\n", err_msg); sqlite3_close (db_handle); return -71; } sqlite3_free (err_msg); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_gpkg_base_core_spatial_ref_sys_data_table_def.c0000664000175000017500000002605012544707704025104 00000000000000/* check_gpkg_base_core_spatial_ref_sys_data_table_def - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #define __USE_GNU #include #include "sqlite3.h" #include "spatialite.h" #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char *sql_statement; sqlite3_stmt *stmt; void *cache = spatialite_alloc_connection (); int j; char *sql; char *str; char *token; char *saveptr; bool valid_srs_name = false; bool valid_srs_id = false; bool valid_organization = false; bool valid_organization_coordsys_id = false; bool valid_definition = false; bool valid_description = false; ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_gpkg_base_core_spatial_ref_sys_data_table_def.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } /* / Test Case ID: /base/core/spatial_ref_sys/data/table_def / Test Purpose: Verify that the gpkg_spatial_ref_sys table exists and has the correct definition. / Test Method: / 1) SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'gpkg_spatial_ref_sys' / 2) Fail if returns an empty result set / 3) Pass if column names and column definitions in the returned CREATE TABLE statement in the sql column value, including data type, nullability, and primary key / constraints match all of those in the contents of C.1 Table 18. Column order, check constraint and trigger definitions, and other column definitions in the returned sql are / irrelevant. / 4) Fail otherwise. / Reference: Clause 1.1.2.1.1 Req 10: / Test Type: Basic */ sql_statement = "SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'gpkg_spatial_ref_sys'"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "failed to prepare SQL SELECT statement: %i (%s)\n", ret, sqlite3_errmsg (db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf (stderr, "unexpected return value for first step: %i (%s)\n", ret, sqlite3_errmsg (db_handle)); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) { fprintf (stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } sql = strdup (strstr ((const char *) sqlite3_column_text (stmt, 0), "(") + strlen ("(")); if (!sql) { fprintf (stderr, "unrecognised format for SQL\n"); return -33; } /* / Column Name Column Type Column Description Null Key / srs_name TEXT Human readable name of this SRS no / srs_id INTEGER Unique identifier for each Spatial Reference System within a GeoPackage no PK / organization TEXT Case-insensitive name of the defining organization e.g. EPSG or epsg no / organization_coordsys_id INTEGER Numeric ID of the Spatial Reference System assigned by the organization no / definition TEXT Well-known Text Representation of the Spatial Reference System no / description TEXT Human readable description of this SRS yes */ for (j = 1, str = sql;; j++, str = NULL) { token = strtok_r (str, ",", &saveptr); if (token == NULL) { break; } if (strstr (token, "srs_name ")) { if (!strstr (token, "TEXT")) { fprintf (stderr, "missing COLUMN TYPE TEXT for srs_name: %s\n", token); return -34; } if (!strstr (token, "NOT NULL")) { fprintf (stderr, "Missing NOT NULL constraint for srs_name: %s\n", token); return -35; } if (strstr (token, "KEY")) { fprintf (stderr, "Unexpected KEY constraint for srs_name: %s\n", token); return -36; } valid_srs_name = true; } if (strstr (token, "srs_id ")) { if (!strstr (token, "INTEGER")) { fprintf (stderr, "missing COLUMN TYPE INTEGER for srs_id: %s\n", token); return -37; } if (!strstr (token, "NOT NULL")) { fprintf (stderr, "Missing NOT NULL constraint for srs_id: %s\n", token); return -38; } if (!strstr (token, "PRIMARY KEY")) { fprintf (stderr, "Missing PRIMARY KEY constraint for srs_id: %s\n", token); return -39; } valid_srs_id = true; } if (strstr (token, "organization ")) { if (!strstr (token, "TEXT")) { fprintf (stderr, "missing COLUMN TYPE TEXT for organization: %s\n", token); return -40; } if (!strstr (token, "NOT NULL")) { fprintf (stderr, "Missing NOT NULL constraint for organization: %s\n", token); return -41; } if (strstr (token, "KEY")) { fprintf (stderr, "Unexpected KEY constraint for organization: %s\n", token); return -42; } valid_organization = true; } if (strstr (token, "organization_coordsys_id ")) { if (!strstr (token, "INTEGER")) { fprintf (stderr, "missing COLUMN TYPE INTEGER for organization_coordsys_id: %s\n", token); return -43; } if (!strstr (token, "NOT NULL")) { fprintf (stderr, "Missing NOT NULL constraint for organization_coordsys_id: %s\n", token); return -44; } if (strstr (token, "KEY")) { fprintf (stderr, "Unexpected PRIMARY KEY constraint for organization_coordsys_id: %s\n", token); return -45; } valid_organization_coordsys_id = true; } if (strstr (token, "definition ")) { if (!strstr (token, "TEXT")) { fprintf (stderr, "missing COLUMN TYPE TEXT for definition: %s\n", token); return -46; } if (!strstr (token, "NOT NULL")) { fprintf (stderr, "Missing NOT NULL constraint for definition: %s\n", token); return -47; } if (strstr (token, "KEY")) { fprintf (stderr, "Unexpected KEY constraint for definition: %s\n", token); return -48; } valid_definition = true; } if (strstr (token, "description ")) { if (!strstr (token, "TEXT")) { fprintf (stderr, "missing COLUMN TYPE TEXT for description: %s\n", token); return -49; } if (strstr (token, "NOT NULL")) { fprintf (stderr, "Unexpected NOT NULL constraint for description: %s\n", token); return -50; } if (strstr (token, "KEY")) { fprintf (stderr, "Unexpected KEY constraint for description: %s\n", token); return -51; } valid_description = true; } } free (sql); if (!valid_srs_name) { fprintf (stderr, "did not find expected srs_name column, or required properties were not found\n"); return -99; } if (!valid_srs_id) { fprintf (stderr, "did not find expected srs_id column, or required properties were not found\n"); return -100; } if (!valid_organization) { fprintf (stderr, "did not find expected organization column, or required properties were not found\n"); return -101; } if (!valid_organization_coordsys_id) { fprintf (stderr, "did not find expected organization_coordsys_id column, or required properties were not found\n"); return -102; } if (!valid_definition) { fprintf (stderr, "did not find expected definition column, or required properties were not found\n"); return -103; } if (!valid_description) { fprintf (stderr, "did not find expected description column, or required properties were not found\n"); return -104; } ret = sqlite3_step (stmt); if (ret != SQLITE_DONE) { fprintf (stderr, "unexpected return value for second step: %i\n", ret); return -199; } ret = sqlite3_finalize (stmt); sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/shapetest1.shp0000664000175000017500000000023412544707704015215 00000000000000' Nè ãÖ'_ŽJA1¾dïþ%QA0g¬i³‘JAR#‚ÃR&QA  ãÖ'_ŽJA1¾dïþ%QA 0g¬i³‘JAR#‚ÃR&QAlibspatialite-4.3.0a/test/tile000.jpeg0000664000175000017500000002166112544707704014453 00000000000000ÿØÿàJFIFÿÛC  !"$"$ÿÛCÿÂ"ÿÄÿÄÿÚ ú9yÛÅAxDÝIr!  +†,Ý5EÒŠ à)/€¦n€¤¸ ¢ñ”ˆ ¾ `"hš‰Ï§„³NŠY¹ýlh–®Íðà€%0 0B¦YI¦qÓдêÏJiÓ”%Ñú9á\N&!¦"PD LT¹m¨‰ÛšÝ@‰Û<èšèÑLÕ¬5¾¨¥¢ê,rÜýUŽÙ r™›éO «ÖÊ7j×_>×M ê~]Õ›%VºqŠí³·C=O ;Vs×sfÁz-^[¢ï¼Ïëž“ç¿YG&¥fh—W'¥“”æLœ‹.‹kNmUÖùQÅ÷Bªé-ºúj«cN¤Ä8€5Çåz®/Ÿ¥ØúqÉ¿:¹·åEFŽôITåÕ‹™­KOk˜Ô6…]aÖ#Ÿ_RÍg•WgX¿cïk\I *–Y‡LãxRÛüžŽ/}.ô¹d©“Rðu <])·uYl:Ž3åž¼\Í>ªÑÓëÃ>퀄€³²Ñ\+˺32Ù<<_}¼÷gE 'S<ÙGŸ¼Í<ü4êW“Vw­‰ö93Zó ["‡fÊÂK ˜`DaT…€OÙóyN'A´ùúë¿6ŸJ7šøý¼<åèâÙƒÒUo«ˆ#6¢^+.Ïͦm±uÄÊÏDÌHÈ$&Ñ—V 5®öÓÇA'¥ˆ´¦:eÖ2Q!¾` +¶x:òZL+¿GšÀ‘£•ÕÅϦ¶‰Þ€ ˆa –‰¤¨¥N&Æ ‚$` Dˆ`2U(õŠDv‚Ëæò’k5–¼ÑUØæ£RÜÒ©3Cµi”^Tá4eÛ¹›šÜv®&áÑ’‰r°b2Ù5§·á½Qt§LÛ[P— V®lªÀº¡d$…äIRÌ‘–Ú›"ÚMÊôÍÕZ¡\™¹µlÏHT†X«"˜ r¬!`…tf‰èça3#g³Ù[E´Ôè­B”½W²ŽeQD±¥e,ƒL(4(5.­̯^¹ÿÿÄ'! 1"02A#@PÿÚâIÄ“‰'N$œI8’q$âIÄ“‰'N$œI8’q¤âIÄ“‰'N$œI8’q$âIÄ“‰'N$œI8’q'ãênRÍïÏûÓûý‰¨­2<]ÔÌȽ´¯cþ‡¯¢143*ÜOZüǯЙìw1tz¸‘!È‘šÂ;ó0~„J2¢Â • Éé?àL'Aêw~gAfW}Å0úÆÛÞO Ðé~„Àu9¨syÊouÁ¥\îæY á›$\Ä2äNPùp¼Ý7šw"nú†ëyŠæY•>Iè!0îI»ëØ”Ê ^åT1}) ™òP^æâ[.Wcº#™f˜°<†3wØf+· ÜÞ Ó*©ñL¸ÁLª'{CÏòhîy€˜Ÿt=ønÿgÉźaÇ· n³ŽçX±4â1i–Ì@XìXqφÓRcûù|ì6¸+{`C3cƧCŒï˜W(€ŠÔ®ØïsúÙsh›z„̤ž"N±ñ58Ú>¹fì*…/üìiéÐ2gĤaøÇ#bǵZ^Ž÷0©A‹hF;J€A–% Jl¯8¿M¤¶W"SætSÇ­Ôa@FÉÇ`!?Uµ Ü"‚Ò§ÛcVÝà}}çÚ}å¬ ²*²Ò‚¼°qõÆ)¸ò"1 Iox›ÖÃ>ƒ°^ ­Díñ$ w/¡Ü?žrDÒ)'ÅÍ0íÈètÒj‘… ‚_€>Dèe¨/B/K„Ôî‹Òôg¥¸2þc80?æG1àdÈY˜ó‡*ˆîOâå" æàγ"ZñW.¢Õó20Zœ8Ó…Ž ÉÌÞ©Ü8—7ÅÄÌ,ÄÂ:õBˆ¨Ôú†ØímÓ©Û³˜áêØFÂÕº6 ¾â¥B‰¹ ‰ihÏZæÂ2½;6M¦tøF=z§\Änf@'l·î&qtÂf Ž'IŒ„ù@+ű«rfL‡sPÚgéò3ÚÆLŠhÀì TÆ¡V.\…áÆ½ÍÑZù5¦|wò#06îݱӮ;hΔÛî?ò¸^Œ¦\Øðñ0äW'iòêj\éqœŸ&çÅÜZ˜0 kGÃø­g™‡A—‘ ¯¡K-}uÍé_â¸L_Zw!sã5ꈭz3þ%ÏQŒ#JÔÁ¢úÐê¦Ü&áú©q½ø©LÿÄ*1! 0¡2A‘"@QaPqB`ÿÚ?ŽH_$rG$rG$rBù#’9!|‘É äŽH_$/“¿’9#’9#’9#“¿’9#“¿’9!|‘É‘Îó/»vSÒ…°±qýÍÕ‹­lYÛïCèø×Á\Ôê:…e÷Çïnp·í—]ÁÆÕm ‹R –¹:T}P«ò¬R9~Ú´¢éû=H*!ñ‚v=P:.¼¤•-TÏa‹„ ”ø’Ê=CŠº³£¨ÉÒ%Š©W¾ ùZ‘õ]ñl~S¦G>ɶ ©‚OÈ×QEZþOŠ~F©sÑÒ:©h.§Êh ‘ h¥evm¢› ;àÄ•0º‚åGÍ×\ê”$”=GÒŽ¨fFØêêO6dCª’F=5Š«U„Ëv3UŒ¢¥™jFbuÿž®UË6þð„Ðÿf\¾œc¤ºhv!UV ηRG¤î3j‹ªK•fFHuQ0ƒ3¶–\S(άYU SÒ¹~73`ɰ㯵H;fßœ:¸÷‹–ÛuÁ¶ª_fÃgiÕ-ûž•:Té_Ó6ÍôF›–]¨ Œ{áõ­·¯„`ÛPµVÕ+ÙD[Ù\¥žÆQj½ý¶_rÚà¿ü´ã:'D’I8I$’I$’I$’I$’ÿÄ*!1AQ a‘0q¡ñÑ@±ÁáðPÿÚ?!ó½§ì3ÊöžW´ò½§í<¯yû ò½§•í?ažW¼ý†y^óöûŒð{g•í<¯iç{Ï+Þy^ÓÊ÷žló½§•í<Ùå{ÏØg•íÐP)<À0_øˆ—yó&ÚÇxÿCpµŠ–P\  ”5®ñÓ j@êèij?(᡾دi`ßÔ«±e–åi6ÄT-'Ðdñ' a5ÔK*gvþÚŸS=«‚‘D]° ÁÎG˜ ^‹\ÒìnðmÀ™ù–.”cyc7¹¡Ö:ëÒǦˆØÜI˜-PCp\t‚ØæÀ:7ѶM³î)pÎY÷Jæ[ ºÃ=/ûËÙ—[ËÆ³ cù˜bnfágxˆ\ÊôÖ5Њ.Ãb[Í:i¿F¸Ž0††XÎ?Ô³eüÌV\¾nX%MG1T®¤ ¹¬Þ*…ˆ–Ø0°=t³µS–™†ŒðÙ}X,”t°Jwx–`Ó™€þ¦fÌZícá‰ë9RÍï BBÑ%,,†PÞ™éAšL³±vá´+cIS |°í%Û3˜A/0$+K1>z hÄ+¸Y§™uaM#Š • ÓÈÒ²P¥ë:Ê`ßsªd "Æ)P9 •µ mãÌBM Q‰™GQ KÍJo“&‹Ã˜Úƒšƒ6 ¦,иΉ|ÄVâ®YWsæ:t¼EF¶âêx:# %@ò†:n+ÆQV¹‡< PR¨-9„GJâøFÇ”Ò>ûJ›!yÄ[½BVð1@Êf„jtÕóS˜@4{i”ñ+À¶\í¼9”Êe2éçR÷zAá°ËPÎ’ž%<@¦s…߉© éR‘FZKë«zG Oª’ b¼[w†(;cFñu ¦!QJx”Êe<}Öšƒyc,ùž [ì5ñ+'ªzÿÚô-`‰ªNUÝTÔo» ¬ÌÚȳ®»-pÃòÖ“Í¢û3¨}êÞuÅE •É2W§ÄøŽ’ÆåE±¬i&®&fûvo‘{¢©â \XÖ£u§L2Ž GŽ Ga€ÕÏ0ÂÙ&ØnÿÄ0Q¤oiñ6èÙ4‚ ù€Ò C¸ÿ,µôx‡ÿH×V»tÚ=ßã²þz :í3ã© Ãè!lÁU)ɘd%¼t¤ê¾¬ÜüÃÏ]úhÒçêŒ"7|Èȵ{ê½v]l7Y®Gúî z€à¸:h¹púTëN;|t=ýmUæ)—ÐAˆœÊ„ b\“AÓ™ü’b &¨ ðfÜ9¹QÃôlÈýÄUÀ°|º)r¿ëÑA†Š¨éDÃ0KhDAªF-2àQÒMLÊòë<»UðJ³_˜MGŒKQ”¸'QyéÐ1ˆM)p®ÒÌÙæ¯:Ì*«óp-,—œPÜ“\a[*A¨–ËŒgnÅ}8¨­©Y0”^j éóÐP.úB–˜pi*fYè1Œf–>çÿÚ Ã$ߤ$kn¦ù´GÞ‡À•¤À X$m×ÀBCW€ A,‹9%ûàâA¾d›ÇÀÎÿšÖ÷”D H¥«] J§…xdÊI\1ÿøF Â'þ’±‚¯|!`„â/ˆMÖ¢0´S õc‘¼‘‡ÄÅiTQ$APòaÁ‚A @Aƒ”3м¤ÔaÊ·¥w. \B«ðØ:BßBÓ^°]^"W°âfè Gœ.ò³õ½Õ}ÿÄ !1 AQaq@ÿÚ?—‹‚›ä×xÜÜÜÞ/áHEbª^ÇâTÑÄu(Ƈ‘=†š¹R}@1£ÙI%BűH°ÓkP‡PetЏ䩖†bü£›‚šäUH׸T ÎJ²†8Œ/öŒÛ{‚[›»ˆÛ@” ™jÜà%&¢9QÆ›‰„Õê0±¸õ˾ஓ„&ª VUkQë>ç{$I‘.òAçga¨uÀêl7ÆT¦T*ÝF’£õìžûDs»"ÓªÅJñ8;.\Ó’Sµé•MF/>kÅÕƒd‡£¹Ù¼‰K^—ý”ŒŒÏQoàJó¯4y÷¦ ¹ú„ì4ä1~ñA:$»Ü ¸«„ØA›k:2åÊÁ\ë9. aKhOé„¿&QÄ9^á¥øÜ¼ÿÄ&!1 AQa‘0qÁ@¡áðÿÚ?èPÜÄÉR¦8ÄÇÕQe¨ÜMžRÉlA¸73Å—ÕF£“Rñ÷ÃÝeƱ¡G¸¹—…*%mh5o3z²2†:r#¦.æ(#¼nîêÉK¢‘y3â6S6Ī:aE&*¢˜jñ:—^½±ª;˜wn'³3€”7Ä8¿ Á)€+~#5ùá›<ößÞe5»Ïûâ2º¯˜Ç/PÀlf¸·×BW¹SvjiRKÛøåAÙ O’h÷ŸÞ'+BaÉýÇÙ„(Œ¸ÂTgÏx@˜Ô¦\pö2©ÊÛw† ¦wÄÿ~a«i2ø`;0Ë—S-Â(uPQas.Z-æ&è úÆþðÄw„ØO |ñOã¢ø·‡«loú•Ã×ÜW™w1Íè€Íbþfœ0½$†¬¸Qôh»‰x-¿Bƒp+Xxb¡ë5ˆ“¸êL’ÕšUáR<ŒU)b Ì”à”J… Ö%\Ò S_W%G1eq–`@®UÍB; hÄ©Úa.åtUʉ†gÿÄ'!1AQaq‘¡ð±ÁáÑ ñÿÚ?äÏûóÔ˜¶ÿ_Ü«÷î,~¿Þ¯ß÷uþ½ÅvŸ¯s÷ÿîfý¼'èûŠe·õæSú?™wêþ`£ù•þæ*çö}Çôæ~ÏýÏѹÁû¿0ýŸù‡è¿ÌáÅúóÑÿ˜Ý¿óÖ˜þ‹üÏܸ·ëþ`8õîZÞߟ6©ÏþWÅD` -b\%éµtaI›Œ)½-^ßGI~¸£kìK*^Q`–™²¿7ÿ">^"ïH6£šºƒp^;‚À)ó¨]8–œûÿÓŸÃãÁ‰p\º”»>Ÿû†åÜ 5²Ô0[{J¢;y©iÂÄäç4ßž<-;ß…Æq,º¼õ9ñÏ“9ƒ+ÏZÜÀ–<©Äjß©V•°íÔ¥*,9‚zAjÝ1둱îÝSÞ1V`o‚œû†À«î:ˆ"cû…Ö¡Ôu±I{@xùñÄ&¼Ôùð9W+C” ÂsPg±YŠÎ›h‡ œ°PAZþbkSkq \‡YÜVæÉ‘5C*Æ.<øx‹Qî./Päïˆvú*'Ï—>_QœÆ«3“Çqp©q*sÓsO5¢õó/0†%”Šå Ké*Éa¬AàP휲£|xÅê ¤¸4&ôWCAEcÕÌ)}Röüu ‰oFÕΡfR7'Ró/’5ÙLÍÎ`‚È¡¼€ŒædÙ¿!ļªàeˆš”ÖKÒqË>ùƒ*ßXn6cÈ8ÙÄ£Sq"†ðw5wÃÅH°î4‰ ÄZ–ñl6;Ô9œÒ(§°X) ˜ƒüÄ #E¼ tEpu. ïçþLâ*j¢Žçn¨‘ÍóIM]óƒÿn¦ÜB*ÊDzawÒu8ÔÚeЊ»¹­¾+ÃR¦i6@ ¯‰ˆõW5•]F2‡0-U/âZ©æú°g}Oö" 8õ¬‘Cîr«H+´KF»¸íYJW£3n=L¨íÂH¦Óù÷/`2Ö”QpâгqK%Ë«,-·rMr—,Uy!PßÁ,†X¼Ôf¸CS4,‰×ЂᵬY穘¹?‰yZó ¢ñƒïrÛÝKÈ~rFµ’Í'ñÛB-ªp¸UntÇ"35ÜC¬7 A1ùÇ©ôŽ‹U•€«³ G ’e‘ä‚°ß3ºÛÑiWÌ¿A67Q¸FAà£'±”ÀHË[(']F±‡ %KZ¬èr g©KÒ„Y¼5ÌM Œ%ó[Š+½bÊ;‰ƒ •+Ñ´=µ¯ÝÌQ+¢óÍz”î¨J ·Ì×*Z°íÛ(Ъ¶êjÀ5¯Óbá÷a âáPõ*ÙÔ 5onâørp’.ßÞ(ØCop;ߺù—šÀE çú”Ë#Á]0<É™ßÍ¿DaÐFÊ ekãþ’ÁJcÒ@ö\¸díf-@p]Ýëíù–î¬ê F9†_Û—P UeIPØÔEcrä@ÛiŒÆJb™É*š2‡ñ “™†O—0l½‚Æ`*'·¶s@Sñ9Žg2š/ƒ¼NÀ€m;võ.¡`iuÛÄ n2®¿«˜ª)ÁÍr=Çgce~‘SÀõ4ExF Þ—¶£¸¢AR 8j~½EîzL¤8h™ûF*ò·>HÉcmL%yÏ©•cX.[_|”F]ݨyf¿¨$7 )™·Ù*¨dåkjï [ þeʬ¥Ž^kšQùÔ»ò‚#“™dDÐjQÔ"îÝ™H<_Gæ^U°9||xçlk1ªÐäßÞ$´£Ef4¹¸IÀ¶$µG­¶m—¶«¼‰p)l³™_Ï* ‡'D* =Ë–EûL¬ŸÉ2QÀVÕ—Áú„ª{ˆ%4Œ2FF/âÅ} ÀŽÑ@ðuþ|Á…×YÆÙK×Q5Á²é/PÓ+OH%6O¤D~%g‰Ÿäx† µ¶U¦·Í徫–¡K3ƒ­Ÿih¬T$bí6øµÞïùˆ©Œ~°–¤”HÛÓ”W*ô&>û£¨‚92ïž5¨ £ÅJ™46#I еG÷+Û ÙS@ÔQJ5¦éº—‰¨çLb§#Ä¥Ø^n¥…iíwFûˆÆK.ýÕ0Ê‹@ƒ¶«Ö3ÜÌóÅŠ­ÔZ¢Ëª ÝQÇpö˵ŽÔ¤<\`äÊîÃC“™¥‚Éñ*zðõ»¨žÖê/eSÜÌØÃFe+L¤ß‡uõž§ DG jZ“`&Ø cùeä‘ š·p0üAƒ,ê T³¨…JÝú›aí.Ó€2/Ĥ±^SaP6QºÙ D J°tɽC¸¢ãÁ ¸æé íÀŸY‘©Ï03Ê{_WÜÁµóï3ÜÝ}g­ÝOSº•»n¾²ýÆîg¶^wæ[Ü.9±ÍƪŸ¤© Ò]1ã…JŽ˜% Z[|Ë{™¹d³Ó*fXÚþbC_ÜVŒŽ/¨(në}Áh°ÞkIm‡Ó› ²·nªØ€ÁW $ŠGSh,Ì+jË»wÌ"ìG#3{›­Ai~¡@ŸhÂÕÇÔAÌ-^¸–6ǯ-<\XäØÒÏÛ˜½…h9j 7 ~;ˆ½xeh–ü+w/jÝKºÝð0“"ñ[¸Ò›tˆ­º›p•Ïq½ _½TêþµàaŽqѨ:ãÜ2~° Q:¸…‹=Kb ü¤°ªWÄã1À}¾%Ô{˜–³¼Š×ps /t•ŸÍÂUÉZw‚!T»ÍTTh¶órÛ!oÏÇû>°ˆÃàÖ]q=t2‰q™arìÃ.)ìm}|E„F0§ó˜m•5MÞs FàªÖ³*Ô¿¨Å¡¢ÚÁ ílçï7º`æóã˜f î‚Fš$(%Æé­û™¦ Åçï -¡÷á«ZÌ¢ã> Ê•â-¼Ô«ž*SB!°+¢s)ê8•™ëÃ8*¯n½LêÞ}ÿÈk5|Ôܨ54+Ô2j£¨`ÏŸ^ùÜ7O>£9†……2òh¬Æ p1·üÎe«~å´cb÷©€ÀÖj÷!TêÊÕGÜ^<ó9ÿÁ1>1ç™Ïƒ_øæxŸ>/ˆÓÔÓ,ñ|ø5Ÿ^3SçÅÆs ñ~8—ߊ‰Vµ* —†˜;âõG™W>ÏoàSH3•‰X¤•êf¥2½\°B!©ñ]Á46õ3°‹¢³5ŠlâЯEÎSô•ê%Ï‚fj}eÌ÷>¾3ߊ@ò Æ"Ó7Ü¿y™î]LÒÓFÚ‹[°ø•8Ï5‰ ªïë)H¿1ØSÓ(—ÏH5íÉJ¢`9”6œ)r¥B"¬6J>Ó0«0ðÿØV48™ïË© ›Å丵‰z2µUn? £cY½Ê7Š• ¥7†¥µ}oìÿ`W/ÖQ€¶W’?0;ÀaQU‚5(¸EVÞå卨 ”Z¸'ˆ¹h€ œ¬¢0î¬ËÁЃoQÙRŠ^Ž^9¸µª’"Rû¥½n£uaˆ1h0Ë\ϸ \°û~<0Š˜¹÷êQ,¬q,߀¦ž â U( vYÌ,:\n[ˆà°+ìUnÆÒŽ9ûÊ ¢,È3úšH€¹‰À²à£˜‰ÈkÇ2ÌîtnÌ$M1ˆä °¸ÓåmžåaÉHé”@‰E´KÌK@ä+ˆB”?˜YŠ ©¥¢*‡P³Bâ DpAÏ0;N¤J’÷à C„²‡æ*€]ö%¼À«æ w’FÍ\‡œE 5^\¿–…Ö)‰{ +(†°d%…™›tâTnS›ŠÛ–ËAo‰B/1(ͦ1i‰}¤-œø¨ú†ÂÆòË\½ÂÂØ®AµŽ3–¡Ó`çMn¼z ¢]ÁÔ°÷¸>a±bn\f`–©ÄV°”1¯¸pzóê"\ߟ˜— ĦÌE0”¬”4)qCpí¢à°y „XÂÄê+l—r¶T¸:=Ë3 Œ¤O½8æ›GÜ¿‰±–`¡K£ðˆä½Â,¿ä‚A¾D¬"³8}‘+ùŽáFtýÿt‡ù¯:hn~ÊGüÔÿÿe°”éû(súPÿ5£ú#,®—’-UÒÿÙlibspatialite-4.3.0a/test/test.webp0000664000175000017500000001150012544707704014254 00000000000000RIFF8WEBPVP8 üÐ>*€€……ˆ…„ˆ‚ÁÓ/'Ug*Ngñ7ÿÝŒý¾9ýúŸçSn ü+ó/Á×­}ÏõsÉ_YZ…ü³íçê?¼þãüeþ¼ÿ’:‚ûý_оÃm£ýoüïP^ðÅÿâÛþç ß[¿ç{€ÿ2þaþÛÕOó~uÿKìýûgýoóߘß$Ÿñ™üÞöïôÏþOó_ÿ«?òÿ¼{^ÿÿ÷=û…ì±úÇÿ‡ÞüÖáÌ·Å"ó$úÑ—w/­ÿ2 Šn<•BWª}7Òãßæ’¢$B˜ …áÒÔEIþK‡¹¯§åa‹šl¹6Ï•ò&/„V/M:žÈ'çî½×½•í–7È>™´æ1ØhŽÜŸm®•xœøŠ˜š0ÎK=»ø†qF YAbÖ‡uäŽ×"[ËÈ1‰Ðª¿2¾+²!‘Ou¢þ†f"$cnËÚ.½Ñ½y s‘/"UºJž?.\«6…löÿ-ŽÂ0º©”çÿFt“úD0aC˜Ìæ `â9ÜmÌNn!믂&—¶sßwfäëD›hpË2Í1a ÿÿ,µ«uZÀ§(×ψ'”Å õ¼„ˆpN4o°LBj]î~Pù¶Ê:MX¿uß=ÕëC¥í¥÷f¸s=æ{!Øô]pz»¹ þÿþõt|Ÿÿ’ùçý^i£ÿɼ/î,i ¤pO~ñ¿>¬Üè#4@íFuñs¡ÁÄð? ¥TýTôÛÓ(äQ9:Xivo‚üÒµ‘Tž â;ô%ÄÇ¡ü®-ÿ°NË,€v'LŸôV#?eâö«êvoÖó ØYmÞIóiUº…;€·Ý}-·Fb0–{€572…¸F0ïJMˆ6uùp¦b£uap‹k}9,•ŸÊØŠ[êSÆŸÂ9ãœð¥Òe‹ugÑ/^­¶fO+XW<·ˆaøµNf¿Ößûè–v{þa“—ùD/¿î,»žéM!Y`uL  Ù"Á‘ª”•5×âj[è*Ý\ر¸§ô>8Q­¿µÿzé=4t͈Šî—uå ·Ðú2{=¼/wï ÑWéÅÓ*\G©u1ÿÁµ[cè%½Mï–Ïr6?þüD5}ÌbƒôÓóÃ*Üþs;•Ú[={¹ÿ¦eqÓVÿñ PåÚZûý¹X–â²åªÒŸAxzUÀh¦.ürç ×òú¢þ¯FæOÖQM4î êÀ'üWŒXÐ-Ì«ôjj²²ê¶½ã؂ꗊm€0Jz‹îUegßIDw€5&ôÒSÄìèüÈïÛo”oÿž˜y\‘òm¢ÝþìéÊEƒ-B±~^,Êã.u‡ˆÞšÛ÷_³WJÙð[¿†$Þ_ø€¡Â“ÁĹC6k â_À~»#Ô’ ˆ°9C4e v¨•\]µÿVù¦³t?ÓŸñ5àˆ¦Ñ ¯)9reÈÈúj^–JÉÉhMD‰¤%XqoËzxcBÏŒB°t¨2,í£ÈòiÑF¶@Q!)JœI±"†híwg÷,¥¤µè¹À’w­¬SSªßVØXÒ@Ë‘ïË7æŽ;h}ÇMäÙýô CX9È}™qïó¬ñÑ\G}„ãà1±tñnM„¡/éÙç¬Ó%m(³.uAÊ%f>ÚaÙ  !AÁmž*š˜òÜgvÛ/-ür¹zQBÜ4{Hâ:épcéé‡õT:øÏ)ƒÂÍém.ôoìZ’¹æÐ61à qCr)›sÖøs;Æþû1“M¿oo( ðZC6EfÆ«ùO– ^|Õô{iø‘Àì¹§`s ¢`ý*œ­4q ¢øYˆ:àæô?殄°â=Ø Wõ 念Úo*e q&{})%îZÓ‡¢»ÄAD?fÚ@‰‘¢<ñ=ùf8T0ÅDö,ð»N ¨Æcç†FˆÜu ]ï¢ru«ÊtMKžã%ó:«–—B…~ÅFPðGYƒùNklÂ}à¥*œØùI’[xD„gT™ºÛø¹O1º\Â&h æVbh¦^=GÚ™˜“> •d,C ø Ï×°üDñôÏ}Fï®xleŠ‚JñBõFEV’¢–¸ÜÂŒWÄ®ÈZôßæ€tœ0eÎ.è§ò±åûíKvµëò%ì‡zqæâ\KKr°h¦ŽOÏ^îl‡›"ÄÜè"&>³h§j›Œ­À‡ŒHÕ‘áF“ÞNü+B5Ï_TÁ‘ãžÆl+Y¤³kJ8–`×ò kŒPFŒö«qï|[µýøU«›è9ÁÔp^êbÿ¼›A¶³û]š1oª1ú‘ëçþ뼿Š–7!–yL¤zŸ6¬Ïɘϒsü>Î[8”MÒv°Ä\,—·I·E¸GRÌ¡ùøìþA?TUøgEö×ð4:yQROMôÌ[“¿ öPÔ<j]ÖÜ·Wa×`1Pý­ÍÁÇèLdW¸ FˆÀTº¯°¬y¡—(ôsÔ¦IŒÉ@©˜[‘÷1÷–wó˜/a_]‹q £ÎÇWG|yó›©*Wwî— û ™Øˆ‹Yy¯üTñ°‰¢Ùÿ™æ±”Šz+úwœ×î×7É "¨3× ^­Z–%xepÍ}NƒOmnõÁm߈¾B~´ð˜S!u÷ú˜XÅÃç\Õî‡3Û80oÿiüÝ?Áª«½eòû®-,ÍRÈPükV8€ã]¨ÖÍ“{&6™Ã¹t«tŽ«‰"³G…1´;JPZøÂÞ*/f š^7®ú϶¯¥Ù¨Ç o·a—&»ó2ŽÐVïœ$®‡Tà£ô-#Òÿn…f¶ÙìßL'$yY;š+eìÿ¨<¾Öp†zî]€muÍkÔù»GäDz$9aŸ.ß‘62a}ó¯Qü‚E_¦9˜>S2äO›»f¯ìaÜ!ËÚT¼èOÑÿUøE©:Æ"´QØF^~}‰<5eµÝäŸæÌéO^Û>ôAìŠó_¦–yŸþéF/<×î¹¾ƒÄÊ.¾ÊŠB¸ÍV'öâZ8u©á'„âYÁ„OK{:X!GÌèÃ%SÂ[uËrwXþódËhs0`šÈê»g´&Á´4d±WŽyÀšL]—=\H4ä$^Çxð^T#:›4¡¶ú‘aÀSôWÆz#WŽÓ´[c¾d3þQDNâ×düU¯(‘Šª‡ü/’mÊvÞdQ(z¿Å³~Ùq Í¼5öÓŸ‚ô—§ÉÅëçWà‚”ço"Ï;àØ5Ê`ã;-ïz±Ôv Êiª»Í˜h½çHÃÔÇO-›ÀN7övæ{ûnûll¿A'ì0· ŸH3ÞÀŒ7$ªüìŠ s¾§ý1ú|õ ?©œŠ#ïù-LÚ9]°&“ÓuÕvÝ)®R€´TSz[` «7Ò–Äw9Ž8ü²°4ýaqtçQW×å±L8%À ¸j%±h“]Ò¬EY®e$z˜sg“¹ûíTÓË¿!]•⺠ló‹|ÑRðKÓ›Ýh§ÊcrÏ3ñÈ«TM—À5”²óß›t¸‰ðpÌËÏ},æ: kë(xW·NTï•°òÇϱà0«N9ûІkàßä¿k¤ÖžXA7ÜçÐ*ä‘㕞‰p3cŸVq)´Îc( ûQ…ºÖeO‚<ÔçAnÀ1Ý2h]°(gx'Ó ‰qæÏšþÓ‘ðÃk.¤ù™+¥‚Ì}"UCf7þ1Eäʽ°Q2 Õ,Å€_Ü®¶YÙà5ôœžWކ?‡ ¸$Auü|u~°1Ž ÏöM¸ê™Ø·ÿ庖£ÿ”1.ÐÒeIÖáã²až Äµ)±š›¨'@Ó„7­ÑÖ»¤ÅwOSŸ 4>©x`Ëè”ÐÉfñ‰=.‘¿"s z›‡hÇ«ífl¼C?_;^»¢ðî º TÝC{ÔÊIr_æûö ¬H)±XÔÀ:IR¢"o7ŽP §bP!&399)LìÉ…dРõž%¤Dó[ϾàBÄ1`E4´*ã› 3zBÄÈöYZfúGÖ˜üúŒ¦Jµž)§WÛZõþ—OÊ_Öv¡ÑŽG部B«´Ó¢Cf™<ìy DHǹŒØ¿>²¼€ìXÆí€ÄÇ›‰ø>¾d1†NÀ‘FCg£·@g€_`€7¹M@1âÎ0ê’ëíCÛg¾RŸ”³ú±>1UGˆü™m®+PͲÎî`¯Öä†0iËr)š¼¥3GºÀŒ*`½Ç‘j̨jõà €ãP˜¬™SZ$èÉ®›ãeÆBg|ñx—øR¨ò@_Ÿv"ºì„¹b(^eP;Ú;ÐåÖtî6µLž¬’çïj|ŽÐ4"<ÕZ¸+ªF|BýyT€2ÙéÀ$z&6@Fðž†Ëž$´~îI昰s3Ç"qZ[:ÎùÓ«NnŸ2À»V<1ÁÙ÷iF#»hÁ„±¿Û²ýäU-©0ý z$}Á!ˆG %Ž¥ïFîÔ¥¿7¢tC*áÊ Tþ´<©ÔžÂ_0 ÓÌKÆQ&_|/´öA³`§qôë<ºH óű²Œ>Yüo Äo>&CslÞ)?¶ZϹ­T¾ªÕ´²ïGÎÅÈØê†FæË>:jáö84G"‡@ÐÁ.´† Z–+ËtÖ,fí⢬^„^¶¢;örk~ÊŒY—ä<‘ û¢…ý ÑåF#¡´v‘Ã]YÚHê’ž¨šHÊ=%†ÏJ„s,P©KHŸœl2¾8N ËÔp±Ñ˜¡®É+q3UyH“*”¶TĨmÌó}ä¾=jnuª(Š<b|¹BÍèþ'§^†¹F¦¬F ì ý*#Ú‡0±£ÔV_ü‚²? C 7‘' Dhî»i’€tè4ïZº³ÃçÞéIARTunknownICOP2010INAM yosemitelibspatialite-4.3.0a/test/check_bufovflw.c0000664000175000017500000017040212544707704015560 00000000000000/* check_bufovflw.c -- SpatiaLite Test Case - buffer overflows Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #include void cleanup_shapefile (const char *filename) { char nam[1000]; if (!filename) { return; } snprintf (nam, 1000, "%s.dbf", filename); unlink (nam); snprintf (nam, 1000, "%s.prj", filename); unlink (nam); snprintf (nam, 1000, "%s.shp", filename); unlink (nam); snprintf (nam, 1000, "%s.shx", filename); unlink (nam); } int main (int argc, char *argv[]) { int ret; sqlite3 *handle; sqlite3_stmt *stmt; char *err_msg = NULL; int suffix_len = 16 * 1024; /* 16 KB suffix */ char *suffix; char *xtable; char *shape; char *shape2; char *shape2geom; char *dbf; char *table_a; char *table_b; char *topology; char *auth; #ifndef OMIT_PROJ /* including PROJ.4 */ char *kml1; char *kml2; #endif /* end including PROJ.4 */ char *resvalue; char *pk; char *name; char *geom; char *sql; char **results; const char *value; int rows; int columns; char *string; int len; char frmt[2048]; int row_count; char *dumpname = __FILE__ "dump"; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } /* setting up very long table and column names */ suffix = malloc (suffix_len); memset (suffix, 'z', suffix_len); suffix[suffix_len - 1] = '\0'; table_a = sqlite3_mprintf ("table_a_%s", suffix); table_b = sqlite3_mprintf ("table_b_%s", suffix); shape2 = sqlite3_mprintf ("shape_table_2_%s", suffix); shape2geom = sqlite3_mprintf ("shape_table_2_geom_%s", suffix); shape = sqlite3_mprintf ("shape_table_%s", suffix); dbf = sqlite3_mprintf ("dbf_tbale_%s", suffix); pk = sqlite3_mprintf ("id_%s", suffix); name = sqlite3_mprintf ("name_%s", suffix); geom = sqlite3_mprintf ("geom_%s", suffix); topology = sqlite3_mprintf ("topology_%s_", suffix); /* creating table "A" */ sql = sqlite3_mprintf ("CREATE TABLE %s (\n" "%s INTEGER NOT NULL PRIMARY KEY,\n" "%s TEXT NOT NULL)", table_a, pk, name); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE-A error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -3; } /* adding a POINT Geometry to table "A" */ sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, %Q, " "4326, 'POINT', 'XY')", table_a, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -4; } /* creating a Spatial Index on table "A" */ sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, %Q)", table_a, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "CreateSpatialIndex (TABLE-A) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -5; } /* inserting few valid rows on table "A" */ sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES " "(1, 'alpha', MakePoint(1, 10, 4326))", table_a, pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -6; } sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES " "(2, 'beta', MakePoint(2, 20, 4326))", table_a, pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -106; } sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES " "(3, 'gamma', MakePoint(3, 30, 4326))", table_a, pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -206; } sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES " "(4, 'delta', MakePoint(4, 40, 4326))", table_a, pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -306; } sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES " "(5, 'epsilon', MakePoint(5, 50, 4326))", table_a, pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -406; } /* inserting few invalid geometries on table "A" */ sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES " "(6, 'zeta', MakePoint(10, 10))", table_a, pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { sql = sqlite3_mprintf ("%s.%s violates Geometry constraint " "[geom-type or SRID not allowed]", table_a, geom); ret = strcmp (sql, err_msg); sqlite3_free (err_msg); sqlite3_free (sql); if (ret == 0) goto test2; sqlite3_close (handle); return -7; } test2: sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES " "(7, 'eta', MakePointZ(20, 20, 20, 4326))", table_a, pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { sql = sqlite3_mprintf ("%s.%s violates Geometry constraint " "[geom-type or SRID not allowed]", table_a, geom); ret = strcmp (sql, err_msg); sqlite3_free (err_msg); sqlite3_free (sql); if (ret == 0) goto test3; sqlite3_close (handle); return -8; } test3: sql = sqlite3_mprintf ("INSERT INTO %s (%s, %s, %s) VALUES " "(8, 'theta', GeomFromText('LINESTRING(0 0, 1 1)', 4326))", table_a, pk, name, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { sql = sqlite3_mprintf ("%s.%s violates Geometry constraint " "[geom-type or SRID not allowed]", table_a, geom); ret = strcmp (sql, err_msg); sqlite3_free (err_msg); sqlite3_free (sql); if (ret == 0) goto test4; sqlite3_close (handle); return -9; } test4: /* checking for validity (table A) */ sql = sqlite3_mprintf ("SELECT Count(*) FROM %s WHERE ROWID IN (" "SELECT ROWID FROM SpatialIndex WHERE " "f_table_name = %Q AND f_geometry_column = %Q " "AND search_frame = BuildCircleMbr(3, 30, 1))", table_a, table_a, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Test TABLE-A error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -10; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (TABLE-A): r=%d c=%d\n", rows, columns); return -11; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (TABLE-A): %s\n", results[1]); return -12; } sqlite3_free_table (results); /* creating table "B" */ sql = sqlite3_mprintf ("CREATE TABLE %s AS " "SELECT * FROM %s", table_b, table_a); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE-B error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -13; } /* recovering Geometry for table "B" */ sql = sqlite3_mprintf ("SELECT RecoverGeometryColumn(%Q, %Q, " "4326, 'POINT', 'XY')", table_b, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -14; } /* creating a Spatial Index on table "B" */ sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, %Q)", table_b, geom); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "CreateSpatialIndex (TABLE-B) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -15; } /* checking for validity (table B) */ sql = sqlite3_mprintf ("SELECT Count(*) FROM %s WHERE ROWID IN (" "SELECT ROWID FROM SpatialIndex WHERE " "f_table_name = %Q AND f_geometry_column = %Q " "AND search_frame = BuildCircleMbr(2, 20, 1))", table_b, table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Test TABLE-B error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -16; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (TABLE-B): r=%d c=%d\n", rows, columns); return -17; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (TABLE-B): %s\n", results[1]); return -18; } sqlite3_free_table (results); /* deleting one row from Table B */ sql = sqlite3_mprintf ("DELETE FROM %s WHERE %s = 2", table_b, pk); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE (TABLE-B) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -19; } /* updating one row into Table B */ sql = sqlite3_mprintf ("UPDATE %s SET %s = MakePoint(-3, -30, 4326) " "WHERE %s = 4", table_b, geom, pk); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "UPDATE (TABLE-B) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -20; } /* invalid updates table "B" */ sql = sqlite3_mprintf ("UPDATE %s SET %s = MakePoint(-2, -20) " "WHERE %s = 2", table_b, geom, pk); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { sql = sqlite3_mprintf ("%s.%s violates Geometry constraint " "[geom-type or SRID not allowed]", table_b, geom); ret = strcmp (sql, err_msg); sqlite3_free (sql); if (ret == 0) goto test5; sqlite3_free (sql); sqlite3_free (err_msg); sqlite3_close (handle); return -21; } test5: sql = sqlite3_mprintf ("UPDATE %s SET %s = MakePointZ(-2, -20, 20, 4326) " "WHERE %s = 2", table_b, geom, pk); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { sql = sqlite3_mprintf ("%s.%s violates Geometry constraint " "[geom-type or SRID not allowed]", table_b, geom); ret = strcmp (sql, err_msg); sqlite3_free (sql); if (ret == 0) goto test6; sqlite3_free (sql); sqlite3_free (err_msg); sqlite3_close (handle); return -22; } test6: sql = sqlite3_mprintf ("UPDATE %s SET %s = GeomFromText('LINESTRING(0 0, 1 1)', 4326) " "WHERE %s = 2", table_b, geom, pk); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { sql = sqlite3_mprintf ("%s.%s violates Geometry constraint " "[geom-type or SRID not allowed]", table_b, geom); ret = strcmp (sql, err_msg); sqlite3_free (sql); if (ret == 0) goto test7; sqlite3_free (sql); sqlite3_free (err_msg); sqlite3_close (handle); return -23; } test7: /* VACUUM - thus invalidating TABLE-B Spatial Index */ ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VACUUM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -24; } /* checking the Spatial Index on table "B" */ sql = sqlite3_mprintf ("SELECT CheckSpatialIndex(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "CheckSpatialIndex TABLE-B error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -25; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (check RTree TABLE-B): r=%d c=%d\n", rows, columns); return -26; } value = results[1]; if (strcmp ("0", value) != 0) { fprintf (stderr, "Unexpected result (check RTree TABLE-B): %s\n", results[1]); return -27; } sqlite3_free_table (results); /* checking the Spatial Index all table */ ret = sqlite3_get_table (handle, "SELECT CheckSpatialIndex()", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CheckSpatialIndex ALL error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -28; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (check RTree ALL): r=%d c=%d\n", rows, columns); return -29; } value = results[1]; if (strcmp ("0", value) != 0) { fprintf (stderr, "Unexpected result (check RTree ALL): %s\n", results[1]); return -30; } sqlite3_free_table (results); /* recovering the Spatial Index all table */ ret = sqlite3_get_table (handle, "SELECT RecoverSpatialIndex()", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverSpatialIndex ALL error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -34; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (recover RTree ALL): r=%d c=%d\n", rows, columns); return -35; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (recover RTree ALL): %s\n", results[1]); return -36; } sqlite3_free_table (results); /* recovering the Spatial Index on table "B" */ sql = sqlite3_mprintf ("SELECT RecoverSpatialIndex(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverSpatialIndex TABLE-B error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -37; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (recover RTree TABLE-B): r=%d c=%d\n", rows, columns); return -38; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (recover RTree TABLE-B): %s\n", results[1]); return -39; } sqlite3_free_table (results); /* updating layer statistics for table "B" */ sql = sqlite3_mprintf ("SELECT UpdateLayerStatistics(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "UpdateLayerStatistics TABLE-B error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -40; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (statistics TABLE-B): r=%d c=%d\n", rows, columns); return -41; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (statistics TABLE-B): %s\n", results[1]); return -42; } sqlite3_free_table (results); /* retieving the LayerExtent for table "B" */ sql = sqlite3_mprintf ("SELECT ST_AsText(GetLayerExtent(%Q, %Q))", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "GetLayerExtent TABLE-B error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -140; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (GetLayerExtent TABLE-B): r=%d c=%d\n", rows, columns); return -141; } value = results[1]; if (strcmp ("POLYGON((-3 -30, 5 -30, 5 50, -3 50, -3 -30))", value) != 0) { fprintf (stderr, "Unexpected result (GetLayerExtent TABLE-B): %s\n", results[1]); return -142; } sqlite3_free_table (results); /* updating layer statistics ALL */ ret = sqlite3_get_table (handle, "SELECT UpdateLayerStatistics()", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UpdateLayerStatistics ALL error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -43; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (statistics ALL): r=%d c=%d\n", rows, columns); return -44; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (statistics ALL): %s\n", results[1]); return -45; } sqlite3_free_table (results); /* disabling the Spatial Index on table "B" */ sql = sqlite3_mprintf ("SELECT DisableSpatialIndex(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "DisableSpatialIndex TABLE-B error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -46; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (disable TABLE-B): r=%d c=%d\n", rows, columns); return -47; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (disable TABLE-B): %s\n", results[1]); return -48; } sqlite3_free_table (results); /* creating an MbrCache on table "B" */ sql = sqlite3_mprintf ("SELECT CreateMbrCache(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "CreateMbrCache TABLE-B error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -49; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (disable TABLE-B): r=%d c=%d\n", rows, columns); return -50; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (disable TABLE-B): %s\n", results[1]); return -51; } sqlite3_free_table (results); /* checking the MbrCache on table "B" */ sql = sqlite3_mprintf ("SELECT Count(*) FROM %s WHERE ROWID IN (" "SELECT ROWID FROM cache_%s_%s WHERE " "mbr = FilterMbrIntersects(0, 0, 11, 11))", table_b, table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Test MbrCache error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -52; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (MbrCache): r=%d c=%d\n", rows, columns); return -53; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (MbrCache): %s\n", results[1]); return -54; } sqlite3_free_table (results); /* disabling the Spatial Index [MbrCache] on table "B" */ sql = sqlite3_mprintf ("SELECT DisableSpatialIndex(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "DisableSpatialIndex TABLE-B error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -55; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (disable TABLE-B): r=%d c=%d\n", rows, columns); return -56; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (disable TABLE-B): %s\n", results[1]); return -57; } sqlite3_free_table (results); /* discarding geometry from table "B" */ sql = sqlite3_mprintf ("SELECT DiscardGeometryColumn(%Q, %Q)", table_b, geom); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "DiscardGeometryColumn TABLE-B error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -58; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (discard TABLE-B): r=%d c=%d\n", rows, columns); return -59; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (discard TABLE-B): %s\n", results[1]); return -60; } sqlite3_free_table (results); /* creating a topology */ sql = sqlite3_mprintf ("SELECT CreateTopologyTables(%Q, 4326, 'XY')", topology); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "CreateTopologyTables error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -61; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (CreateTopologyTables): r=%d c=%d\n", rows, columns); return -62; } value = results[1]; if (strcmp ("1", value) != 0) { fprintf (stderr, "Unexpected result (CreateTopologyTables): %s\n", results[1]); return -63; } sqlite3_free_table (results); sqlite3_free (table_a); sqlite3_free (table_b); sqlite3_free (pk); sqlite3_free (name); sqlite3_free (geom); sqlite3_free (topology); /* inserting a CRS (very long auth) */ auth = sqlite3_mprintf ("authority_%s", suffix); sql = sqlite3_mprintf ("INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid, " "ref_sys_name, proj4text, srtext) VALUES (NULL, %Q, 1122, " "'silly CRS', 'silly proj def', 'silly wkt def')", auth); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT CRS error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -64; } #ifndef OMIT_EPSG /* only if full EPSG support is enabled */ /* checking for validity (SRID from Auth) */ sql = sqlite3_mprintf ("SELECT SridFromAuthCrs(%Q, %d)", auth, 1122); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Test TABLE-A error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -65; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (SRID from Auth): r=%d c=%d\n", rows, columns); return -66; } value = results[1]; if (strcmp ("325834", value) != 0) { fprintf (stderr, "Unexpected result (SRID from Auth): %s\n", results[1]); return -67; } sqlite3_free_table (results); #endif /* deleting the odd CRS */ sql = "DELETE FROM spatial_ref_sys WHERE srid = 325834"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE (CRS) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -68; } sqlite3_free (auth); #ifndef OMIT_PROJ /* only if PROJ is supported */ /* checking AsKML (1) */ kml1 = sqlite3_mprintf ("kml_name_%s", suffix); kml2 = sqlite3_mprintf ("kml_description_%s", suffix); strcpy (frmt, "%s%s" "%1.0f,%1.0f" "0,0 " "%1.0f,%1.0f"); strcat (frmt, "" "0,0 0,%1.0f %1.0f,%1.0f %1.0f,0 0,0" "" "5,5 5,%1.0f %1.0f,%1.0f " "%1.0f,5 5,5" ""); resvalue = sqlite3_mprintf (frmt, kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf ("SELECT AsKml(%Q, %Q, GeomFromText('GEOMETRYCOLLECTION(" "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " "POLYGON((0 0, 0 %1.0f, %1.0f %1.0f, %1.0f 0, 0 0), " "(5 5, 5 %1.0f, %1.0f %1.0f, %1.0f 5, 5 5)))'" ", 4326), 300)", kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Test AsKML#1 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -69; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (AsKML#1): r=%d c=%d\n", rows, columns); return -70; } value = results[1]; if (strcmp (resvalue, value) != 0) { fprintf (stderr, "Unexpected result (AsKML#1): %s\n", results[1]); return -71; } sqlite3_free_table (results); sqlite3_free (kml1); sqlite3_free (kml2); sqlite3_free (resvalue); /* checking AsKML (2) */ kml1 = sqlite3_mprintf ("%1.0f", 1e128); kml2 = sqlite3_mprintf ("%2.0f", 2e128); strcpy (frmt, "%s%s" "%1.0f,%1.0f,%1.0f" "0,0,0 " "%1.0f,%1.0f,%1.0f"); strcat (frmt, "" "0,0,0 0,%1.0f,0 %1.0f,%1.0f,%1.0f %1.0f,0,0 0,0,0" "" "5,5,0 5,%1.0f,0 %1.0f,%1.0f,%1.0f " "%1.0f,5,0 5,5,0" ""); resvalue = sqlite3_mprintf (frmt, kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf ("SELECT AsKml(%Q, %Q, GeomFromText('GEOMETRYCOLLECTIONZ(" "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " "POLYGONZ((0 0 0, 0 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 0 0, 0 0 0), " "(5 5 0, 5 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 5 0, 5 5 0)))'" ", 4326), 300)", kml1, kml2, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Test AsKML#2 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -72; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (AsKML#2): r=%d c=%d\n", rows, columns); return -73; } value = results[1]; if (strcmp (resvalue, value) != 0) { fprintf (stderr, "Unexpected result (AsKML#2): %s\n", results[1]); return -74; } sqlite3_free_table (results); sqlite3_free (kml1); sqlite3_free (kml2); sqlite3_free (resvalue); #endif /* end including PROJ.4 */ /* checking AsGML (1) */ strcpy (frmt, "" "%1.0f,%1.0f" "" "0,0 %1.0f,%1.0f" ""); strcat (frmt, "" "0,0 0,%1.0f %1.0f,%1.0f %1.0f,0 0,0" "" "5,5 5,%1.0f %1.0f,%1.0f %1.0f,5 5,5" ""); resvalue = sqlite3_mprintf (frmt, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf ("SELECT AsGml(GeomFromText('GEOMETRYCOLLECTION(" "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " "POLYGON((0 0, 0 %1.0f, %1.0f %1.0f, %1.0f 0, 0 0), " "(5 5, 5 %1.0f, %1.0f %1.0f, %1.0f 5, 5 5)))'" ", 4326), 300)", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Test AsGML#1 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -75; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (AsGML#1): r=%d c=%d\n", rows, columns); return -76; } value = results[1]; if (strcmp (resvalue, value) != 0) { fprintf (stderr, "Unexpected result (AsGML#1): %s\n", results[1]); return -77; } sqlite3_free_table (results); sqlite3_free (resvalue); /* checking AsGML (2) */ strcpy (frmt, "" "%1.0f %1.0f %1.0f" "" "0 0 0 " "%1.0f %1.0f %1.0f" ""); strcat (frmt, "" "0 0 0 0 %1.0f 0 %1.0f %1.0f %1.0f %1.0f 0 0 0 0 0" "" "5 5 0 5 %1.0f 0 %1.0f %1.0f %1.0f " "%1.0f 5 0 5 5 0" ""); resvalue = sqlite3_mprintf (frmt, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf ("SELECT AsGml(3, GeomFromText('GEOMETRYCOLLECTIONZ(" "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " "POLYGONZ((0 0 0, 0 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 0 0, 0 0 0), " "(5 5 0, 5 %1.0f 0, %1.0f %1.0f %1.0f, %1.0f 5 0, 5 5 0)))'" ", 4326), 300)", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Test AsGML#2 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -78; } if (rows != 1 || columns != 1) { fprintf (stderr, "Unexpected rows/columns (AsGML#2): r=%d c=%d\n", rows, columns); return -79; } value = results[1]; if (strcmp (resvalue, value) != 0) { fprintf (stderr, "Unexpected result (AsGML#2): %s\n", results[1]); return -80; } sqlite3_free_table (results); sqlite3_free (resvalue); /* checking WKT 2D */ resvalue = sqlite3_mprintf ("GEOMETRYCOLLECTION(POINT(%1.0f %1.0f), " "LINESTRING(0 0, %1.0f %1.0f), " "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), " "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf ("SELECT AsText(GeomFromText('GEOMETRYCOLLECTION(" "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), " "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))'))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "WKT 2D: error \"%s\"\n", sqlite3_errmsg (handle)); return -81; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *) sqlite3_column_text (stmt, 0); len = sqlite3_column_bytes (stmt, 0); string = malloc (len + 1); strcpy (string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (WKT 2D)\n"); return -82; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (WKT 2D): %s\n", string); return -83; } free (string); sqlite3_free (resvalue); /* checking WKT 3D */ resvalue = sqlite3_mprintf ("GEOMETRYCOLLECTION Z(POINT Z(%1.0f %1.0f %1.0f), " "LINESTRING Z(0 0 0, %1.0f %1.0f %1.0f), " "POLYGON Z((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf ("SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(" "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " "POLYGONZ((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))'))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "WKT 3D: error \"%s\"\n", sqlite3_errmsg (handle)); return -84; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *) sqlite3_column_text (stmt, 0); len = sqlite3_column_bytes (stmt, 0); string = malloc (len + 1); strcpy (string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (WKT 3D)\n"); return -85; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (WKT 3D): %s\n", string); return -86; } free (string); sqlite3_free (resvalue); /* checking WKT M */ resvalue = sqlite3_mprintf ("GEOMETRYCOLLECTION M(POINT M(%1.0f %1.0f %1.0f), " "LINESTRING M(0 0 0, %1.0f %1.0f %1.0f), " "POLYGON M((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf ("SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONM(" "POINTM(%1.0f %1.0f %1.0f), LINESTRINGM(0 0 0, %1.0f %1.0f %1.0f), " "POLYGONM((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))'))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "WKT M: error \"%s\"\n", sqlite3_errmsg (handle)); return -87; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *) sqlite3_column_text (stmt, 0); len = sqlite3_column_bytes (stmt, 0); string = malloc (len + 1); strcpy (string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (WKT M)\n"); return -88; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (WKT M): %s\n", string); return -89; } free (string); sqlite3_free (resvalue); /* checking WKT 3D M */ resvalue = sqlite3_mprintf ("GEOMETRYCOLLECTION ZM(POINT ZM(%1.0f %1.0f %1.0f %1.0f), " "LINESTRING ZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), " "POLYGON ZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), " "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf ("SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(" "POINTZM(%1.0f %1.0f %1.0f %1.0f), LINESTRINGZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), " "POLYGONZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), " "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))'))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "WKT 3D M: error \"%s\"\n", sqlite3_errmsg (handle)); return -90; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *) sqlite3_column_text (stmt, 0); len = sqlite3_column_bytes (stmt, 0); string = malloc (len + 1); strcpy (string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (WKT 3D M)\n"); return -91; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (WKT 3D M): %s\n", string); return -92; } free (string); sqlite3_free (resvalue); /* checking EWKT 2D */ resvalue = sqlite3_mprintf ("SRID=4326;GEOMETRYCOLLECTION(POINT(%1.0f %1.0f)," "LINESTRING(0 0,%1.0f %1.0f)," "POLYGON((0 0,%1.0f 0,%1.0f %1.0f,0 %1.0f,0 0)," "(5 5,%1.0f 5,%1.0f %1.0f,5 %1.0f,5 5)))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf ("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTION(" "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), " "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))', 4326))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "EWKT 2D: error \"%s\"\n", sqlite3_errmsg (handle)); return -93; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *) sqlite3_column_text (stmt, 0); len = sqlite3_column_bytes (stmt, 0); string = malloc (len + 1); strcpy (string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (EWKT 2D)\n"); return -94; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (EWKT 2D): %s\n", string); return -95; } free (string); sqlite3_free (resvalue); /* checking EWKT 3D */ resvalue = sqlite3_mprintf ("SRID=4326;GEOMETRYCOLLECTION(POINT(%1.0f %1.0f %1.0f)," "LINESTRING(0 0 0,%1.0f %1.0f %1.0f)," "POLYGON((0 0 0,%1.0f 0 0,%1.0f %1.0f %1.0f,0 %1.0f 0,0 0 0)," "(5 5 0,%1.0f 5 0,%1.0f %1.0f %1.0f,5 %1.0f 0,5 5 0)))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf ("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTIONZ(" "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " "POLYGONZ((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))', 4326))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "EWKT 3D: error \"%s\"\n", sqlite3_errmsg (handle)); return -96; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *) sqlite3_column_text (stmt, 0); len = sqlite3_column_bytes (stmt, 0); string = malloc (len + 1); strcpy (string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (EWKT 3D)\n"); return -97; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (EWKT 3D): %s\n", string); return -98; } free (string); sqlite3_free (resvalue); /* checking EWKT M */ resvalue = sqlite3_mprintf ("SRID=4326;GEOMETRYCOLLECTIONM(POINTM(%1.0f %1.0f %1.0f)," "LINESTRINGM(0 0 0,%1.0f %1.0f %1.0f)," "POLYGONM((0 0 0,%1.0f 0 0,%1.0f %1.0f %1.0f,0 %1.0f 0,0 0 0)," "(5 5 0,%1.0f 5 0,%1.0f %1.0f %1.0f,5 %1.0f 0,5 5 0)))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf ("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTIONM(" "POINTM(%1.0f %1.0f %1.0f), LINESTRINGM(0 0 0, %1.0f %1.0f %1.0f), " "POLYGONM((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))', 4326))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "EWKT M: error \"%s\"\n", sqlite3_errmsg (handle)); return -99; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *) sqlite3_column_text (stmt, 0); len = sqlite3_column_bytes (stmt, 0); string = malloc (len + 1); strcpy (string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (EWKT M)\n"); return -100; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (EWKT M): %s\n", string); return -101; } free (string); sqlite3_free (resvalue); /* checking EWKT 3D M */ resvalue = sqlite3_mprintf ("SRID=4326;GEOMETRYCOLLECTION(POINT(%1.0f %1.0f %1.0f %1.0f)," "LINESTRING(0 0 0 0,%1.0f %1.0f %1.0f %1.0f)," "POLYGON((0 0 0 0,%1.0f 0 0 0,%1.0f %1.0f %1.0f %1.0f,0 %1.0f 0 0,0 0 0 0)," "(5 5 0 0,%1.0f 5 0 0,%1.0f %1.0f %1.0f %1.0f,5 %1.0f 0 0,5 5 0 0)))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf ("SELECT AsEWKT(GeomFromText('GEOMETRYCOLLECTIONZM(" "POINTZM(%1.0f %1.0f %1.0f %1.0f), LINESTRINGZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), " "POLYGONZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), " "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))', 4326))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "EWKT 3D M: error \"%s\"\n", sqlite3_errmsg (handle)); return -102; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *) sqlite3_column_text (stmt, 0); len = sqlite3_column_bytes (stmt, 0); string = malloc (len + 1); strcpy (string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (EWKT 3D M)\n"); return -103; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (EWKT 3D M): %s\n", string); return -104; } free (string); sqlite3_free (resvalue); /* checking WKT Strict */ resvalue = sqlite3_mprintf ("GEOMETRYCOLLECTION(POINT(%1.0f %1.0f)," "LINESTRING(0 0,%1.0f %1.0f)," "POLYGON((0 0,%1.0f 0,%1.0f %1.0f,0 %1.0f,0 0)," "(5 5,%1.0f 5,%1.0f %1.0f,5 %1.0f,5 5)))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf ("SELECT AsWKT(GeomFromText('GEOMETRYCOLLECTIONZM(" "POINTZM(%1.0f %1.0f %1.0f %1.0f), LINESTRINGZM(0 0 0 0, %1.0f %1.0f %1.0f %1.0f), " "POLYGONZM((0 0 0 0, %1.0f 0 0 0, %1.0f %1.0f %1.0f %1.0f, 0 %1.0f 0 0, 0 0 0 0), " "(5 5 0 0, %1.0f 5 0 0, %1.0f %1.0f %1.0f %1.0f, 5 %1.0f 0 0, 5 5 0 0)))', 4326))", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "WKT Strict: error \"%s\"\n", sqlite3_errmsg (handle)); return -105; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *) sqlite3_column_text (stmt, 0); len = sqlite3_column_bytes (stmt, 0); string = malloc (len + 1); strcpy (string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (WKT Strict)\n"); return -106; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (WKT Strict): %s\n", string); return -107; } free (string); sqlite3_free (resvalue); /* checking GeoJSON 2D */ resvalue = sqlite3_mprintf ("{\"type\":\"GeometryCollection\",\"crs\":{\"type\":\"name\",\"properties\":" "{\"name\":\"urn:ogc:def:crs:EPSG:4326\"}},\"bbox\":[0,0,%1.0f,%1.0f]," "\"geometries\":[{\"type\":\"Point\",\"coordinates\":[%1.0f,%1.0f]}," "{\"type\":\"LineString\",\"coordinates\":[[0,0],[%1.0f,%1.0f]]}," "{\"type\":\"Polygon\",\"coordinates\":" "[[[0,0],[%1.0f,0],[%1.0f,%1.0f],[0,%1.0f],[0,0]]," "[[5,5],[%1.0f,5],[%1.0f,%1.0f],[5,%1.0f],[5,5]]]}]}", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf ("SELECT AsGeoJSON(GeomFromText('GEOMETRYCOLLECTION(" "POINT(%1.0f %1.0f), LINESTRING(0 0, %1.0f %1.0f), " "POLYGON((0 0, %1.0f 0, %1.0f %1.0f, 0 %1.0f, 0 0), " "(5 5, %1.0f 5, %1.0f %1.0f, 5 %1.0f, 5 5)))', 4326), 2, 5)", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "GeoJSON 2D: error \"%s\"\n", sqlite3_errmsg (handle)); return -108; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *) sqlite3_column_text (stmt, 0); len = sqlite3_column_bytes (stmt, 0); string = malloc (len + 1); strcpy (string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (GeoJSON 2D)\n"); return -109; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (GeoJSON 2D): %s\n", string); return -110; } free (string); sqlite3_free (resvalue); /* checking GeoJSON 3D */ resvalue = sqlite3_mprintf ("{\"type\":\"GeometryCollection\",\"crs\":{\"type\":\"name\",\"properties\":" "{\"name\":\"urn:ogc:def:crs:EPSG:4326\"}},\"bbox\":[0,0,%1.0f,%1.0f]," "\"geometries\":[{\"type\":\"Point\",\"coordinates\":[%1.0f,%1.0f,%1.0f]}," "{\"type\":\"LineString\",\"coordinates\":[[0,0,0],[%1.0f,%1.0f,%1.0f]]}," "{\"type\":\"Polygon\",\"coordinates\":" "[[[0,0,0],[%1.0f,0,0],[%1.0f,%1.0f,%1.0f],[0,%1.0f,0],[0,0,0]]," "[[5,5,0],[%1.0f,5,0],[%1.0f,%1.0f,%1.0f],[5,%1.0f,0],[5,5,0]]]}]}", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); sql = sqlite3_mprintf ("SELECT AsGeoJSON(GeomFromText('GEOMETRYCOLLECTIONZ(" "POINTZ(%1.0f %1.0f %1.0f), LINESTRINGZ(0 0 0, %1.0f %1.0f %1.0f), " "POLYGONZ((0 0 0, %1.0f 0 0, %1.0f %1.0f %1.0f, 0 %1.0f 0, 0 0 0), " "(5 5 0, %1.0f 5 0, %1.0f %1.0f %1.0f, 5 %1.0f 0, 5 5 0)))', 4326), 2, 5)", 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128, 1e128); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "GeoJSON 3D: error \"%s\"\n", sqlite3_errmsg (handle)); return -111; } string = NULL; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { value = (const char *) sqlite3_column_text (stmt, 0); len = sqlite3_column_bytes (stmt, 0); string = malloc (len + 1); strcpy (string, value); } } } ret = sqlite3_finalize (stmt); if (string == NULL) { fprintf (stderr, "Unexpected NULL result (GeoJSON 3D)\n"); return -112; } if (strcmp (resvalue, string) != 0) { fprintf (stderr, "Unexpected result (GeoJSON 3D): %s\n", string); return -113; } free (string); sqlite3_free (resvalue); /* checking gaiaDequotedSql */ resvalue = gaiaDequotedSql ("'a''b''c''d''e''f''ghiklmnopqrst''u''vwy''z'"); if (strcmp (resvalue, "a'b'c'd'e'f'ghiklmnopqrst'u'vwy'z") != 0) { fprintf (stderr, "Unexpected result (Dequote 1): %s\n", resvalue); return -114; } free (resvalue); resvalue = gaiaDequotedSql ("\"abcdef\"\"ghijkmlmnopqsrt\"\"uvwy\"\"z\""); if (strcmp (resvalue, "abcdef\"ghijkmlmnopqsrt\"uvwy\"z") != 0) { fprintf (stderr, "Unexpected result (Dequote 2): %s\n", resvalue); return -115; } free (resvalue); resvalue = gaiaDequotedSql ("abcdefghijkmlnopqrtsuvwyz"); if (strcmp (resvalue, "abcdefghijkmlnopqrtsuvwyz") != 0) { fprintf (stderr, "Unexpected result (Dequote 3): %s\n", resvalue); return -116; } free (resvalue); resvalue = gaiaDequotedSql ("'a''b''c''d''e''f''ghiklmnopqrst''u'vwy''z'"); if (resvalue != NULL) { fprintf (stderr, "Unexpected result (Dequote 4): %s\n", resvalue); return -117; } /* checking load_shapefile */ ret = load_shapefile (handle, "./shp/gaza/route", shape, "UTF-8", 4326, NULL, 1, 0, 1, 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error: %s\n", err_msg); sqlite3_close (handle); return -118; } if (row_count != 2) { fprintf (stderr, "unexpected row count for load_shapefile: %i\n", row_count); sqlite3_close (handle); return -119; } /* checking dump_shapefile */ ret = dump_shapefile (handle, shape, "Geometry", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error: %s\n", err_msg); sqlite3_close (handle); return -120; } cleanup_shapefile (dumpname); if (row_count != 2) { fprintf (stderr, "unexpected dump row count for shapefile: %i\n", row_count); sqlite3_close (handle); return -121; } #ifndef OMIT_PROJ /* including PROJ.4 */ /* checking dump_kml */ ret = dump_kml (handle, shape, "geometry", dumpname, "sub_type", "name", 10); if (!ret) { fprintf (stderr, "dump_kml() error: %s\n", err_msg); sqlite3_close (handle); return -122; } unlink (dumpname); #endif /* end including PROJ.4 */ /* checking dump_geojson */ ret = dump_geojson (handle, shape, "col1", dumpname, 10, 5); if (!ret) { fprintf (stderr, "dump_geojson() error: %s\n", err_msg); sqlite3_close (handle); return -123; } unlink (dumpname); /* dropping virtual geometry */ sql = sqlite3_mprintf ("SELECT DropVirtualGeometry(%Q)", shape); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "DROP VIRTUAL GEOMETRT /shp/gaza/barrier error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -124; } sqlite3_free (shape); /* checking load_dbf */ ret = load_dbf (handle, "./shapetest1.dbf", dbf, "UTF-8", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_dbf() error: %s\n", err_msg); sqlite3_close (handle); return -125; } if (row_count != 2) { fprintf (stderr, "unexpected row count for load_dbf: %i\n", row_count); sqlite3_close (handle); return -126; } /* checking dump_dbf */ ret = dump_dbf (handle, dbf, dumpname, "CP1252", err_msg); if (!ret) { fprintf (stderr, "dump_dbf() error for points: %s\n", err_msg); sqlite3_close (handle); return -127; } unlink (dumpname); sqlite3_free (dbf); /* checking load_shapefile (2) */ ret = load_shapefile (handle, "./shp/merano-3d/polygons", shape2, "CP1252", 25832, shape2geom, 0, 1, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() #2 error: %s\n", err_msg); sqlite3_close (handle); return -128; } if (row_count != 10) { fprintf (stderr, "unexpected row count for load_shapefile #2: %i\n", row_count); sqlite3_close (handle); return -129; } xtable = gaiaDoubleQuotedSql (shape2); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (FEATURE_ID, DATUM, HAUSNR) " "VALUES (1250000, 0.1, 'alpha')", xtable); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -130; } sql = sqlite3_mprintf ("INSERT INTO \"%s\" (FEATURE_ID, DATUM, HAUSNR) " "VALUES (1250000, 0.1, 'alpha')", xtable); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -131; } sql = sqlite3_mprintf ("INSERT INTO \"%s\" (FEATURE_ID, DATUM, TEXT_I) " "VALUES (1250000, 0.1, 'alpha')", xtable); free (xtable); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -132; } remove_duplicated_rows (handle, shape2); elementary_geometries (handle, shape2, shape2geom, "elem_poly", "pk_elem", "mul_id"); sqlite3_free (shape2); sqlite3_free (shape2geom); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -133; } spatialite_cleanup_ex (cache); free (suffix); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_fdo2.c0000664000175000017500000007636512544707704014575 00000000000000/* check_fdo2.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; const char *sql; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); /* FDO initialization */ sql = "SELECT InitFDOSpatialMetadata()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } /* creating a Point 2D WKT table */ sql = "CREATE TABLE pt_2d_wkt (id INTEGER, name TEXT, value DOUBLE)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -3; } sql = "SELECT AddFDOGeometryColumn('pt_2d_wkt', 'g', -1, 1, 2, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } /* creating a Point 3D WKT table */ sql = "CREATE TABLE pt_3d_wkt (id INTEGER, pic1 BLOB, pic2 BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } sql = "SELECT AddFDOGeometryColumn('pt_3d_wkt', 'g', -1, 1, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } /* creating a Point 2D WKB table */ sql = "CREATE TABLE pt_2d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } sql = "SELECT AddFDOGeometryColumn('pt_2d_wkb', 'g', -1, 1, 2, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } /* creating a Point 3D WKB table */ sql = "CREATE TABLE pt_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } sql = "SELECT AddFDOGeometryColumn('pt_3d_wkb', 'g', -1, 1, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } /* creating a Point 3D WKB table */ sql = "CREATE TABLE pt_3d_spl (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } sql = "SELECT AddFDOGeometryColumn('pt_3d_spl', 'g', -1, 1, 3, 'SPATIALITE')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* creating a Linestring 3D WKT table */ sql = "CREATE TABLE ln_3d_wkt (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } sql = "SELECT AddFDOGeometryColumn('ln_3d_wkt', 'g', -1, 2, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } /* creating a Linestring 3D WKB table */ sql = "CREATE TABLE ln_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } sql = "SELECT AddFDOGeometryColumn('ln_3d_wkb', 'g', -1, 2, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } /* creating a Polygon 3D WKT table */ sql = "CREATE TABLE pg_3d_wkt (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } sql = "SELECT AddFDOGeometryColumn('pg_3d_wkt', 'g', -1, 3, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } /* creating a Polygon 3D WKB table */ sql = "CREATE TABLE pg_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } sql = "SELECT AddFDOGeometryColumn('pg_3d_wkb', 'g', -1, 3, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -19; } /* creating a MultiPoint 3D WKT table */ sql = "CREATE TABLE mpt_3d_wkt (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -20; } sql = "SELECT AddFDOGeometryColumn('mpt_3d_wkt', 'g', -1, 4, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } /* creating a MultiPoint 3D WKB table */ sql = "CREATE TABLE mpt_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -22; } sql = "SELECT AddFDOGeometryColumn('mpt_3d_wkb', 'g', -1, 4, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -23; } /* creating a MultiLinestring 3D WKT table */ sql = "CREATE TABLE mln_3d_wkt (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -24; } sql = "SELECT AddFDOGeometryColumn('mln_3d_wkt', 'g', -1, 5, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -25; } /* creating a MultiLinestring 3D WKB table */ sql = "CREATE TABLE mln_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -26; } sql = "SELECT AddFDOGeometryColumn('mln_3d_wkb', 'g', -1, 5, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -27; } /* creating a MultiPolygon 3D WKT table */ sql = "CREATE TABLE mpg_3d_wkt (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -28; } sql = "SELECT AddFDOGeometryColumn('mpg_3d_wkt', 'g', -1, 6, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -29; } /* creating a MultiPolygon 3D WKB table */ sql = "CREATE TABLE mpg_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -30; } sql = "SELECT AddFDOGeometryColumn('mpg_3d_wkb', 'g', -1, 6, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -31; } /* creating a GeometryCollection 3D WKT table */ sql = "CREATE TABLE gcoll_3d_wkt (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -32; } sql = "SELECT AddFDOGeometryColumn('gcoll_3d_wkt', 'g', -1, 7, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -33; } /* creating a GeometryCollection 3D WKB table */ sql = "CREATE TABLE gcoll_3d_wkb (id INTEGER)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -34; } sql = "SELECT AddFDOGeometryColumn('gcoll_3d_wkb', 'g', -1, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -35; } /* FDO start-up */ sql = "SELECT AutoFDOStart()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -36; } /* Inserting into pt_2d_wkt */ sql = "INSERT INTO fdo_pt_2d_wkt (id, name, value, g) VALUES (1, 'alpha', 0.1, GeomFromText('POINT(1 2)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -37; } /* Updating pt_2d_wkt */ sql = "UPDATE fdo_pt_2d_wkt SET name = 'beta', value = 0.2, g = GeomFromText('POINT(10 20)', -1) WHERE id = 1"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -38; } /* Deleting form pt_2d_wkt */ sql = "DELETE FROM fdo_pt_2d_wkt"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -39; } /* Inserting into pt_3d_wkt */ sql = "INSERT INTO fdo_pt_3d_wkt (id, pic1, pic2, g) VALUES (1, zeroblob(16), NULL, GeomFromText('POINTZ(1 2 3)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -40; } /* Updating pt_3d_wkt */ sql = "UPDATE fdo_pt_3d_wkt SET pic1 = NULL, pic2 = zeroblob(8), g = GeomFromText('POINTZ(10 20 30)', -1) WHERE id = 1"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -41; } /* Inserting into pt_2d_wkb */ sql = "INSERT INTO fdo_pt_2d_wkb (id, g) VALUES (1, GeomFromText('POINT(1 2)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -42; } /* Updating pt_2d_wkb */ sql = "UPDATE fdo_pt_2d_wkb SET g = GeomFromText('POINT(10 20)', -1) WHERE id = 1"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -43; } /* Inserting into pt_3d_wkb */ sql = "INSERT INTO fdo_pt_3d_wkb (id, g) VALUES (1, GeomFromText('POINTZ(1 2 3)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -44; } /* Updating pt_3d_wkb */ sql = "UPDATE fdo_pt_3d_wkb SET g = GeomFromText('POINTZ(10 20 30)', -1) WHERE id = 1"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -45; } /* Inserting into pt_3d_spl */ sql = "INSERT INTO fdo_pt_3d_spl (id, g) VALUES (1, GeomFromText('POINTZ(1 2 3)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -46; } /* Updating pt_3d_spl */ sql = "UPDATE fdo_pt_3d_spl SET g = GeomFromText('POINTZ(10 20 30)', -1) WHERE id = 1"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -47; } /* Inserting into ln_3d_wkt */ sql = "INSERT INTO fdo_ln_3d_wkt (id, g) VALUES (1, GeomFromText('LINESTRINGZ(1 2 3, 4 5 6)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -48; } /* Inserting into ln_3d_wkb */ sql = "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (1, GeomFromText('LINESTRINGZ(1 2 3, 4 5 6)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -49; } /* Inserting into ln_3d_wkb */ sql = "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (2, GeomFromText('LINESTRINGM(1 2 10, 4 5 11)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -50; } /* Inserting into ln_3d_wkb */ sql = "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (3, GeomFromText('LINESTRINGZM(1 2 3 10, 4 5 6 11)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -51; } /* Inserting into ln_3d_wkb */ sql = "INSERT INTO fdo_ln_3d_wkb (id, g) VALUES (4, GeomFromText('LINESTRING(1 2, 4 5)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -52; } /* Inserting into pg_3d_wkt */ sql = "INSERT INTO fdo_pg_3d_wkt (id, g) VALUES (1, GeomFromText('POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -53; } /* Inserting into pg_3d_wkb */ sql = "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (1, GeomFromText('POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -54; } /* Inserting into pg_3d_wkb */ sql = "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (2, GeomFromText('POLYGONZM((10 10 100 10, 15 10 101 11, 15 15 102 12, 10 15 103 13, 10 10 100 10), (11 11 100 10, 12 11 101 11, 1 12 102 12, 11 12 103 13, 11 11 100 10))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -55; } /* Inserting into pg_3d_wkb */ sql = "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (3, GeomFromText('POLYGONM((10 10 10, 15 10 11, 15 15 12, 10 15 13, 10 10 10), (11 11 10, 12 11 11, 1 12 12, 11 12 13, 11 11 10))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -56; } /* Inserting into pg_3d_wkb */ sql = "INSERT INTO fdo_pg_3d_wkb (id, g) VALUES (4, GeomFromText('POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 1 12, 11 12, 11 11))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -57; } /* Inserting into mpt_3d_wkt */ sql = "INSERT INTO fdo_mpt_3d_wkt (id, g) VALUES (1, GeomFromText('MULTIPOINTZ(1 2 3, 4 5 6)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -58; } /* Inserting into mpt_3d_wkb */ sql = "INSERT INTO fdo_mpt_3d_wkb (id, g) VALUES (1, GeomFromText('MULTIPOINTZ(1 2 3, 4 5 6)', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -59; } /* Inserting into mln_3d_wkt */ sql = "INSERT INTO fdo_mln_3d_wkt (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZ((1 2 3, 4 5 6), (7 8 9, 10 11 12))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -60; } /* Inserting into mln_3d_wkb */ sql = "INSERT INTO fdo_mln_3d_wkb (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZ((1 2 3, 4 5 6), (7 8 9, 10 11 12))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -61; } /* Inserting into mpg_3d_wkt */ sql = "INSERT INTO fdo_mpg_3d_wkt (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -62; } /* Inserting into mpg_3d_wkb */ sql = "INSERT INTO fdo_mpg_3d_wkb (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -63; } /* Inserting into gcoll_3d_wkt */ sql = "INSERT INTO fdo_gcoll_3d_wkt (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -64; } /* Inserting into gcoll_3d_wkb */ sql = "INSERT INTO fdo_gcoll_3d_wkb (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', -1))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -65; } /* checking MultiPoint 3D WKT */ sql = "SELECT AsText(g) FROM fdo_mpt_3d_wkt"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -66; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -67; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -68; } if (strcmp (results[1], "MULTIPOINT Z(1 2 3, 4 5 6)") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -69; } sqlite3_free_table (results); /* checking MultiLinestring 3D WKT */ sql = "SELECT AsText(g) FROM fdo_mln_3d_wkt"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -70; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -71; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -72; } if (strcmp (results[1], "MULTILINESTRING Z((1 2 3, 4 5 6), (7 8 9, 10 11 12))") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -73; } sqlite3_free_table (results); /* checking MultiPolygon 3D WKT */ sql = "SELECT AsText(g) FROM fdo_mpg_3d_wkt"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -74; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -75; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -76; } if (strcmp (results[1], "MULTIPOLYGON Z(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -77; } sqlite3_free_table (results); /* checking GeometryCollection 3D WKT */ sql = "SELECT AsText(g) FROM fdo_gcoll_3d_wkt"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -78; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -79; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -80; } if (strcmp (results[1], "GEOMETRYCOLLECTION Z(POINT Z(10 10 100), LINESTRING Z(5 5 10, 6 6 11), POLYGON Z((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -81; } sqlite3_free_table (results); /* dropping an FDO virtual table */ sql = "DROP TABLE fdo_mpt_3d_wkt"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -82; } /* discarding an FDO Geometry column */ sql = "SELECT DiscardFDOGeometryColumn('fdo_mpt_3d_wkt', 'g')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -83; } sql = "SELECT DiscardFDOGeometryColumn(1, 'g')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -84; } sql = "SELECT DiscardFDOGeometryColumn('mpt_3d_wkt', 2)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -85; } /* recovering an FDO Geometry column */ sql = "SELECT RecoverFDOGeometryColumn('mpt_3d_wkt', 'g', -1, 4, 3, 'WKT')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -86; } /* FDO shut-down */ sql = "SELECT AutoFDOStop()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -66; } sql = "SELECT AddFDOGeometryColumn(1, 'g', -1, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -67; } sql = "SELECT AddFDOGeometryColumn('a', 2, -1, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -68; } sql = "SELECT AddFDOGeometryColumn('a', 'g', -1.5, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -69; } sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 'a', 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -70; } sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 7, 'a', 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -71; } sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 17, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -72; } sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 7, 13, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -73; } sql = "SELECT AddFDOGeometryColumn('a', 'g', -1, 7, 3, 'DUMMY')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -74; } sql = "SELECT RecoverFDOGeometryColumn(1, 'g', -1, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -75; } sql = "SELECT RecoverFDOGeometryColumn('a', 2, -1, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -76; } sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1.5, 7, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -77; } sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 'a', 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -78; } sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 7, 'a', 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -79; } sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 17, 3, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -80; } sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 7, 13, 'WKB')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -81; } sql = "SELECT RecoverFDOGeometryColumn('a', 'g', -1, 7, 3, 'DUMMY')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -82; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -83; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_fdo1.c0000664000175000017500000003675512544707704014573 00000000000000/* check_fdo1.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiageo.h" #ifndef OMIT_GEOS /* including GEOS */ #include #endif static int do_test (int legacy_mode) { #ifndef OMIT_GEOS /* only if GEOS is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; const char *sql; int i; char **results; int rows; int columns; void *cache = NULL; if (!legacy_mode) cache = spatialite_alloc_connection (); else spatialite_init (0); ret = system ("cp sql_stmt_tests/testFDO.sqlite testFDO.sqlite"); if (ret != 0) { fprintf (stderr, "cannot copy testFDO.sqlite database\n"); return -1001; } ret = sqlite3_open_v2 ("testFDO.sqlite", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open testFDO.sqlite db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1000; } if (!legacy_mode) spatialite_init_ex (handle, cache, 0); /* FDO start-up */ sql = "SELECT AutoFDOStart()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -1; } /* testing aggregate Union() PointZ WKT "p02" */ sql = "SELECT AsText(ST_Union(WKT_GEOMETRY)) FROM fdo_p02"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -3; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -4; } if (strcmp (results[1], "MULTIPOINT Z(664350.17954 5171957.915655 314.52, 664642.363686 5169415.339218 294.37, 664964.447225 5170571.245732 318.25)") != 0) { fprintf (stderr, "Unexpected error: invalid result %s\n", results[1]); return -5; } sqlite3_free_table (results); /* testing aggregate Union() PointZ WKB "p03" */ sql = "SELECT AsText(ST_Union(GEOMETRY)) FROM fdo_p03 WHERE text_dil IS NULL AND OGC_FID < 3"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -7; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -8; } if (strcmp (results[1], "MULTIPOINT Z(665216.306643 5169825.707161 296.06, 665224.506512 5169827.907054 296.16)") != 0) { fprintf (stderr, "Unexpected error: invalid result |%s|\n", results[1]); return -9; } sqlite3_free_table (results); /* testing aggregate Union() PointZ SpatiaLite "p05" */ sql = "SELECT AsText(ST_Union(GEOMETRY)) FROM fdo_p05 WHERE text_dil IS NULL AND OGC_FID < 3"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -11; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result %s\n", results[1]); return -12; } if (strcmp (results[1], "MULTIPOINT Z(667687.978175 5169352.045712 583.140015, 667710.008189 5169402.894615 589.849976)") != 0) { fprintf (stderr, "Unexpected error: invalid result b|%s|\n", results[1]); return -13; } sqlite3_free_table (results); /* testing Sum(GLength()) LinestringZ WKT "l05" */ sql = "SELECT Sum(GLength(WKT_GEOMETRY)) FROM fdo_l05"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -15; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -16; } if (strncmp (results[1], "59.417763", 9) != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -17; } sqlite3_free_table (results); /* testing Sum(GLength()) LinestringZ WKB "l06" */ sql = "SELECT Sum(GLength(GEOMETRY)) FROM fdo_l06"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -19; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -20; } if (strncmp (results[1], "273.076064", 10) != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -21; } sqlite3_free_table (results); /* testing Sum(GLength()) LinestringZ SpatiaLite "l07" */ sql = "SELECT Sum(GLength(GEOMETRY)) FROM fdo_l07"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -22; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -23; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -24; } if (strncmp (results[1], "219.459808", 10) != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -25; } sqlite3_free_table (results); /* testing Sum(Area()) PolygonZ WKT "f04" */ sql = "SELECT Sum(Area(WKT_GEOMETRY)) FROM fdo_f04"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -26; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -27; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -28; } if (strncmp (results[1], "9960.931239", 11) != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -29; } sqlite3_free_table (results); /* testing Sum(Area()) PolygonZ WKB "f05" */ sql = "SELECT Sum(Area(GEOMETRY)) FROM fdo_f05"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -30; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -31; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -32; } if (strncmp (results[1], "69972.113393", 12) != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -33; } sqlite3_free_table (results); /* testing Sum(Area()) PolygonZ SpatiaLite "f06" */ sql = "SELECT Sum(Area(GEOMETRY)) FROM fdo_f06"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -34; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -35; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -36; } if (strncmp (results[1], "1125.064396", 11) != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -37; } sqlite3_free_table (results); /* testing IsValid() LinestringZ WKB "l06" */ sql = "SELECT IsValid(GEOMETRY) FROM fdo_l06"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -38; } if ((rows != 12) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -39; } for (i = 1; i <= rows; i++) { if (results[i] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -40; } if (strcmp (results[i], "0") == 0) { const char *geos_msg; if (legacy_mode) geos_msg = gaiaGetGeosErrorMsg (); else geos_msg = gaiaGetGeosErrorMsg_r (cache); if (geos_msg == NULL) { if (legacy_mode) geos_msg = gaiaGetGeosWarningMsg (); else geos_msg = gaiaGetGeosWarningMsg_r (cache); } if (geos_msg == NULL) { fprintf (stderr, "Unexpected error: invalid result\n"); return -41; } } } sqlite3_free_table (results); /* testing IsValid() PolygonZ WKT "f04" */ sql = "SELECT IsValid(WKT_GEOMETRY) FROM fdo_f04"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -42; } if ((rows != 16) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -43; } for (i = 1; i <= rows; i++) { if (results[i] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -44; } if (strcmp (results[i], "0") == 0) { const char *geos_msg; if (legacy_mode) geos_msg = gaiaGetGeosErrorMsg (); else geos_msg = gaiaGetGeosErrorMsg_r (cache); if (geos_msg == NULL) { if (legacy_mode) geos_msg = gaiaGetGeosWarningMsg (); else geos_msg = gaiaGetGeosWarningMsg_r (cache); } if (geos_msg == NULL) { fprintf (stderr, "Unexpected error: invalid result\n"); return -45; } } } sqlite3_free_table (results); /* testing IsValid() PolygonZ WKB "f05" */ sql = "SELECT IsValid(GEOMETRY) FROM fdo_f05"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -46; } if ((rows != 13) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -47; } for (i = 1; i <= rows; i++) { if (results[i] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -48; } if (strcmp (results[i], "0") == 0) { const char *geos_msg; if (legacy_mode) geos_msg = gaiaGetGeosErrorMsg (); else geos_msg = gaiaGetGeosErrorMsg_r (cache); if (geos_msg == NULL) { if (legacy_mode) geos_msg = gaiaGetGeosWarningMsg (); else geos_msg = gaiaGetGeosWarningMsg_r (cache); } if (geos_msg == NULL) { fprintf (stderr, "Unexpected error: invalid result\n"); return -49; } } } sqlite3_free_table (results); /* testing DOUBLE and TEXT columns */ sql = "SELECT datum, hoehe FROM fdo_p05 WHERE OGC_FID = 5"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -50; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -51; } if (results[2] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -52; } if (strcmp (results[2], "1997/03/07") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -53; } if (results[3] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -54; } if (strcmp (results[3], "277.55") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -54; } sqlite3_free_table (results); /* FDO shut-down */ sql = "SELECT AutoFDOStop()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -55; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -56; } spatialite_cleanup_ex (cache); ret = unlink ("testFDO.sqlite"); if (ret != 0) { fprintf (stderr, "cannot remove testFDO database\n"); return -57; } #endif /* end GEOS conditional */ return 0; } int main (int argc, char *argv[]) { int ret; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ fprintf (stderr, "********* testing in current mode\n"); ret = do_test (0); if (ret != 0) return ret; fprintf (stderr, "********* testing in legacy mode\n"); ret = do_test (1); if (ret != 0) return ret; spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/shape_utf8_1ex.c0000664000175000017500000003120112544707704015405 00000000000000/* shape_utf8_1.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Ahmadou Dicko Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" void cleanup_shapefile (const char *filename) { char nam[1000]; if (!filename) { return; } snprintf (nam, 1000, "%s.dbf", filename); unlink (nam); snprintf (nam, 1000, "%s.prj", filename); unlink (nam); snprintf (nam, 1000, "%s.shp", filename); unlink (nam); snprintf (nam, 1000, "%s.shx", filename); unlink (nam); } int do_test (sqlite3 * handle, int legacy) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; char *dumpname = __FILE__ "dump"; char *err_msg = NULL; int row_count; ret = load_shapefile_ex (handle, "./shp/gaza/barrier", "barrier", "UTF-8", 4326, NULL, NULL, "POINT", 1, 0, 1, 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile_ex() error for shp/gaza/barrier: %s\n", err_msg); sqlite3_close (handle); return -3; } if (row_count != 5) { fprintf (stderr, "unexpected row count for shp/gaza/barrier: %i\n", row_count); sqlite3_close (handle); return -4; } ret = load_shapefile_ex (handle, "./shp/gaza/aeroway", "aeroway", "UTF-8", 4326, "col1", NULL, "LINESTRING", 1, 0, 0, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile_ex() error for shp/gaza/aeroway: %s\n", err_msg); sqlite3_close (handle); return -5; } if (row_count != 1) { fprintf (stderr, "unexpected row count for shp/gaza/aeroway: %i\n", row_count); sqlite3_close (handle); return -6; } ret = load_shapefile_ex (handle, "./shp/gaza/route", "route", "UTF-8", 4326, NULL, NULL, "MULTILINESTRING", 1, 0, 1, 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile_ex() error for shp/gaza/route: %s\n", err_msg); sqlite3_close (handle); return -7; } if (row_count != 2) { fprintf (stderr, "unexpected row count for shp/gaza/route: %i\n", row_count); sqlite3_close (handle); return -8; } if (legacy) { sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, NULL); sqlite3_exec (handle, "DELETE FROM views_layer_statistics", NULL, NULL, NULL); } else { sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, NULL, NULL); sqlite3_exec (handle, "DELETE FROM views_geometry_columns_statistics", NULL, NULL, NULL); } ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", err_msg); sqlite3_close (handle); return -9; } cleanup_shapefile (dumpname); if (row_count != 2) { fprintf (stderr, "unexpected dump row count for UTF-8_1 route: %i\n", row_count); sqlite3_close (handle); return -10; } ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "LINESTRING", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", err_msg); sqlite3_close (handle); return -13; } cleanup_shapefile (dumpname); if (row_count != 2) { fprintf (stderr, "unexpected dump row count for UTF-8_1 route LINESTRING: %i\n", row_count); sqlite3_close (handle); return -14; } ret = sqlite3_exec (handle, "SELECT DiscardGeometryColumn('route', 'Geometry')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DiscardGeometry route error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -15; } if (legacy) ret = sqlite3_exec (handle, "INSERT INTO geometry_columns (f_table_name, f_geometry_column, type, coord_dimension, srid, spatial_index_enabled) VALUES ('beta', 'gamma', 'LINESTRING', 'XY', 4326, 0)", NULL, NULL, &err_msg); else ret = sqlite3_exec (handle, "INSERT INTO geometry_columns (f_table_name, f_geometry_column, geometry_type, coord_dimension, srid, spatial_index_enabled) VALUES (Lower('Beta'), Lower('Gamma'), 2, 2, 4326, 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "GeometryColumns route error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -16; } if (legacy) { sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, NULL); ret = sqlite3_exec (handle, "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column) VALUES ('route', 'Geometry', 'ROWID', 'beta', 'gamma')", NULL, NULL, &err_msg); } else { sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, NULL, NULL); ret = sqlite3_exec (handle, "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column, read_only) VALUES (Lower('Route'), Lower('Geometry'), Lower('ROWID'), Lower('Beta'), Lower('Gamma'), 1)", NULL, NULL, &err_msg); } if (ret != SQLITE_OK) { fprintf (stderr, "ViewsGeometryColumns route error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -17; } ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", NULL, 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for UTF-8_1 route (2): %s\n", err_msg); sqlite3_close (handle); return -17; } cleanup_shapefile (dumpname); if (row_count != 2) { fprintf (stderr, "unexpected dump row count for UTF-8_1 route LINESTRING (2): %i\n", row_count); sqlite3_close (handle); return -18; } if (legacy) { /* final DB cleanup */ ret = sqlite3_exec (handle, "DROP TABLE aeroway", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE aeroway error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -19; } ret = sqlite3_exec (handle, "DROP TABLE barrier", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE barrier error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -20; } ret = sqlite3_exec (handle, "DROP TABLE route", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE route error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -21; } ret = sqlite3_exec (handle, "DROP TABLE idx_route_Geometry", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE idx_route_Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -22; } ret = sqlite3_exec (handle, "DROP TABLE idx_barrier_Geometry", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE idx_barrier_Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -23; } ret = sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -24; } ret = sqlite3_exec (handle, "DELETE FROM views_geometry_columns", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM views_geometry_columns error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -25; } ret = sqlite3_exec (handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -26; } ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VACUUM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -27; } } #endif /* end ICONV conditional */ /* ok, succesfull termination */ return 0; } int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* testing current style metadata layout >= v.4.0.0 */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } ret = do_test (handle, 0); if (ret != 0) { fprintf (stderr, "error while testing current style metadata layout\n"); return ret; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -19; } spatialite_cleanup_ex (cache); /* testing legacy style metadata layout <= v.3.1.0 */ cache = spatialite_alloc_connection (); ret = system ("cp test-legacy-3.0.1.sqlite copy-utf8_1ex-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot copy legacy v.3.0.1 database\n"); return -1; } ret = sqlite3_open_v2 ("copy-utf8_1ex-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = do_test (handle, 1); if (ret != 0) { fprintf (stderr, "error while testing legacy style metadata layout\n"); return ret; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -19; } spatialite_cleanup_ex (cache); ret = unlink ("copy-utf8_1ex-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot remove legacy v.3.0.1 database\n"); return -20; } #endif /* end ICONV conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_mbrcache.c0000664000175000017500000004416512544707704015500 00000000000000/* check_mbrcache.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; int row_count; char **results; int rows; int columns; int pt; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } ret = load_shapefile (handle, "shp/foggia/local_councils", "Councils", "CP1252", 23032, "geom", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error: %s\n", err_msg); sqlite3_close (handle); return -3; } if (row_count != 61) { fprintf (stderr, "unexpected number of rows loaded: %i\n", row_count); sqlite3_close (handle); return -4; } ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE MbrWithin(geom, BuildMbr(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } if ((rows != 22) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -6; } if (strcmp (results[1], "Ascoli Satriano") != 0) { fprintf (stderr, "unexpected result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -7; } if (strcmp (results[22], "Zapponeta") != 0) { fprintf (stderr, "unexpected result at 22: %s\n", results[22]); sqlite3_free_table (results); sqlite3_close (handle); return -8; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "SELECT CreateMbrCache('Councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CreateMbrCache error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); sqlite3_free (err_msg); return -14; } if ((rows != 22) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -15; } if (strcmp (results[1], "Ascoli Satriano") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -16; } if (strcmp (results[22], "Zapponeta") != 0) { fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]); sqlite3_free_table (results); sqlite3_close (handle); return -17; } sqlite3_free_table (results); rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrContains(997226.750031, 4627372.000018, 997226.750031, 4627372.000018)) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT Contains: %s\n", err_msg); sqlite3_free (err_msg); return -18; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -19; } if (strcmp (results[1], "Carlantino") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -20; } sqlite3_free_table (results); rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrIntersects(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); sqlite3_free (err_msg); return -21; } if ((rows != 35) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -22; } if (strcmp (results[1], "Apricena") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -23; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "DELETE FROM Councils WHERE lc_name = 'Zapponeta';", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE error: %s\n", err_msg); sqlite3_free (err_msg); return -24; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); sqlite3_free (err_msg); return -25; } if ((rows != 21) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -26; } if (strcmp (results[1], "Ascoli Satriano") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -27; } if (strcmp (results[21], "Vieste") != 0) { fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]); sqlite3_free_table (results); sqlite3_close (handle); return -28; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "INSERT INTO Councils (lc_name, geom) VALUES ('Quairading', GeomFromText('MULTIPOLYGON(((997226.750031 4627372.000018, 997301.750031 4627332.000018, 997402.500031 4627344.000018, 997541.500031 4627326.500018,997226.750031 4627372.000018)))', 23032));", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT error: %s\n", err_msg); sqlite3_free (err_msg); return -29; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT2: %s\n", err_msg); sqlite3_free (err_msg); return -30; } if ((rows != 21) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -31; } if (strcmp (results[1], "Ascoli Satriano") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -32; } if (strcmp (results[21], "Vieste") != 0) { fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]); sqlite3_free_table (results); sqlite3_close (handle); return -33; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "UPDATE Councils SET geom = GeomFromText('MULTIPOLYGON(((987226.750031 4627372.000018, 997301.750031 4627331.000018, 997402.500032 4627344.000018, 997541.500031 4627326.500018, 987226.750031 4627372.000018)))', 23032) WHERE lc_name = \"Quairading\";", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UPDATE error: %s\n", err_msg); sqlite3_free (err_msg); return -34; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT rowid FROM cache_Councils_geom WHERE mbr = FilterMbrWithin(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT3: %s\n", err_msg); sqlite3_free (err_msg); return -35; } if ((rows != 21) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad cache result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -36; } if (strcmp (results[1], "Ascoli Satriano") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -37; } if (strcmp (results[21], "Vieste") != 0) { fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]); sqlite3_free_table (results); sqlite3_close (handle); return -38; } sqlite3_free_table (results); rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT rowid, mbr FROM cache_Councils_geom;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); sqlite3_free (err_msg); return -39; } if ((rows != 61) || (columns != 2)) { fprintf (stderr, "Unexpected error: select lc_name bad cache2 result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -40; } if (strcmp (results[2], "1") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[2]); sqlite3_free_table (results); sqlite3_close (handle); return -41; } if (strcmp (results[12], "6") != 0) { fprintf (stderr, "unexpected mbr result at 6: %s\n", results[12]); sqlite3_free_table (results); sqlite3_close (handle); return -42; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "DROP TABLE Councils;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE Councils error: %s\n", err_msg); sqlite3_free (err_msg); return -44; } /* creating and feeding a Point table */ ret = sqlite3_exec (handle, "CREATE TABLE pt (id INTEGER);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE pt error: %s\n", err_msg); sqlite3_free (err_msg); return -45; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 1, 'XY');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); sqlite3_free (err_msg); return -46; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 2.5);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); sqlite3_free (err_msg); return -47; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 'XY', 0.5);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); sqlite3_free (err_msg); return -48; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'DUMMY', 'XY');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); sqlite3_free (err_msg); return -49; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 'DUMMY');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); sqlite3_free (err_msg); return -50; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('pt', 'g', 4326, 'POINT', 2);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn pt error: %s\n", err_msg); sqlite3_free (err_msg); return -51; } ret = sqlite3_exec (handle, "SELECT CreateMbrCache('pt', 'g');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CreateMbrCache pt.g error: %s\n", err_msg); sqlite3_free (err_msg); return -52; } for (pt = 0; pt < 10000; pt++) { /* inserting Points */ char sql[1024]; sprintf (sql, "INSERT INTO pt (id, g) VALUES (%d, GeomFromText('POINT(%1.2f %1.2f)', 4326));", pt, 11.0 + (pt / 10000.0), 43.0 + (pt / 10000.0)); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO pt error: %s\n", err_msg); sqlite3_free (err_msg); return -53; } } for (pt = 5000; pt < 6000; pt++) { /* updating Points */ char sql[1024]; sprintf (sql, "UPDATE pt SET g = GeomFromText('POINT(%1.2f %1.2f)', 4326) WHERE id = %d;", 12.0 + (pt / 10000.0), 42.0 + (pt / 10000.0), pt); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UPDATE pt error: %s\n", err_msg); sqlite3_free (err_msg); return -54; } } for (pt = 7000; pt < 8000; pt++) { /* deleting Points */ char sql[1024]; sprintf (sql, "DELETE FROM pt WHERE id = %d;", pt); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UPDATE pt error: %s\n", err_msg); sqlite3_free (err_msg); return -55; } } ret = sqlite3_exec (handle, "SELECT CreateMbrCache(1, 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid CreateMbrCache error: %s\n", err_msg); sqlite3_free (err_msg); return -56; } ret = sqlite3_exec (handle, "SELECT CreateMbrCache('Councils', 2);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid CreateMbrCache error: %s\n", err_msg); sqlite3_free (err_msg); return -57; } ret = sqlite3_exec (handle, "SELECT FilterMbrWithin('a', 2, 3, 4);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg); sqlite3_free (err_msg); return -58; } ret = sqlite3_exec (handle, "SELECT FilterMbrWithin(1, 'a', 3, 4);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg); sqlite3_free (err_msg); return -59; } ret = sqlite3_exec (handle, "SELECT FilterMbrWithin(1, 2, 'a', 4);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg); sqlite3_free (err_msg); return -60; } ret = sqlite3_exec (handle, "SELECT FilterMbrWithin(1, 2, 3, 'a');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid FilterMbrWithin error: %s\n", err_msg); sqlite3_free (err_msg); return -61; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -62; } spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ return 0; } libspatialite-4.3.0a/test/books.xsd0000664000175000017500000000125712544707704014263 00000000000000 libspatialite-4.3.0a/test/sql_stmt_cache_tests/0000775000175000017500000000000012573314332016705 500000000000000libspatialite-4.3.0a/test/sql_stmt_cache_tests/precision5.testcase0000664000175000017500000000017712544707704022456 00000000000000decimal precision - TEXT :memory: SELECT SetDecimalPrecision('aleph'); 1 # rows 1 # column SetDecimalPrecision('aleph') (NULL) libspatialite-4.3.0a/test/sql_stmt_cache_tests/precision7.testcase0000664000175000017500000000021112544707704022445 00000000000000decimal precision - BLOB :memory: SELECT SetDecimalPrecision(zeroblob(10)); 1 # rows 1 # column SetDecimalPrecision(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_cache_tests/Makefile.in0000664000175000017500000003047612573313636020712 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_cache_tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = amphibious1.testcase \ amphibious2.testcase \ precision1.testcase \ precision2.testcase \ precision3.testcase \ precision4.testcase \ precision5.testcase \ precision6.testcase \ precision7.testcase \ gpkg1.testcase \ gpkg2.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_cache_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_cache_tests/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/test/sql_stmt_cache_tests/precision6.testcase0000664000175000017500000000017112544707704022451 00000000000000decimal precision - DOUBLE :memory: SELECT SetDecimalPrecision(1.5); 1 # rows 1 # column SetDecimalPrecision(1.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_cache_tests/amphibious1.testcase0000664000175000017500000000026312544707704022613 00000000000000GPKG amphibious mode - enable :memory: SELECT EnableGpkgAmphibiousMode(), GetGpkgAmphibiousMode(); 1 # rows 2 # column EnableGpkgAmphibiousMode() GetGpkgAmphibiousMode() (NULL) 1 libspatialite-4.3.0a/test/sql_stmt_cache_tests/precision4.testcase0000664000175000017500000000017112544707704022447 00000000000000decimal precision - NULL :memory: SELECT SetDecimalPrecision(NULL); 1 # rows 1 # column SetDecimalPrecision(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_cache_tests/gpkg2.testcase0000664000175000017500000000020412544707704021377 00000000000000GPKG mode - disable :memory: SELECT DisableGpkgMode(), GetGpkgMode(); 1 # rows 2 # column DisableGpkgMode() GetGpkgMode(); (NULL) 0 libspatialite-4.3.0a/test/sql_stmt_cache_tests/amphibious2.testcase0000664000175000017500000000026712544707704022620 00000000000000GPKG amphibious mode - disable :memory: SELECT DisableGpkgAmphibiousMode(), GetGpkgAmphibiousMode(); 1 # rows 2 # column DisableGpkgAmphibiousMode() GetGpkgAmphibiousMode(); (NULL) 0 libspatialite-4.3.0a/test/sql_stmt_cache_tests/precision3.testcase0000664000175000017500000000025112544707704022445 00000000000000decimal precision - -100 :memory: SELECT SetDecimalPrecision(-100), GetDecimalPrecision(); 1 # rows 2 # column SetDecimalPrecision(-100) GetDecimalPrecision() (NULL) -1 libspatialite-4.3.0a/test/sql_stmt_cache_tests/precision1.testcase0000664000175000017500000000024312544707704022444 00000000000000decimal precision - 10 :memory: SELECT SetDecimalPrecision(10), GetDecimalPrecision(); 1 # rows 2 # column SetDecimalPrecision(10) GetDecimalPrecision() (NULL) 10 libspatialite-4.3.0a/test/sql_stmt_cache_tests/precision2.testcase0000664000175000017500000000024612544707704022450 00000000000000decimal precision - 100 :memory: SELECT SetDecimalPrecision(100), GetDecimalPrecision(); 1 # rows 2 # column SetDecimalPrecision(100) GetDecimalPrecision() (NULL) 18 libspatialite-4.3.0a/test/sql_stmt_cache_tests/Makefile.am0000664000175000017500000000040412544707704020666 00000000000000 EXTRA_DIST = amphibious1.testcase \ amphibious2.testcase \ precision1.testcase \ precision2.testcase \ precision3.testcase \ precision4.testcase \ precision5.testcase \ precision6.testcase \ precision7.testcase \ gpkg1.testcase \ gpkg2.testcase libspatialite-4.3.0a/test/sql_stmt_cache_tests/gpkg1.testcase0000664000175000017500000000020012544707704021372 00000000000000GPKG mode - enable :memory: SELECT EnableGpkgMode(), GetGpkgMode(); 1 # rows 2 # column EnableGpkgMode() GetGpkgMode() (NULL) 0 libspatialite-4.3.0a/test/gpkg_test_broken.gpkg0000664000175000017500000007600012544707704016625 00000000000000SQLite format 3@ J)GP10J-æ ÓûöñìçâÝØÓ      LLK½ƒ355† tablegpkg_tile_matrix_setgpkg_tile_matrix_setCREATE TABLE [gpkg_tile_matrix_set] ([table_name] TEXT NOT NULL PRIMARY KEY, [min_x] DOUBLE NOT NULL, [max_y] DOUBLE NOT NULL, [max_x] DOUBLE NOT NULL, [srs_id] INTEGER NOT NULL, [min_y] DOUBLE NOT NULL, CONSTRAINT fk_gtms_table_name FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name), CONSTRAINT fk_gtms_srs FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys (srs_id))G[5indexsqlite_autoindex_gpkg_tile_matrix_set_1gpkg_tile_matrix_set‚o//… tablegpkg_data_columnsgpkg_data_columnsCREATE TABLE [gpkg_data_columns] ([title] TEXT, [mime_type] TEXT, [description] TEXT, [constraint_name] TEXT, [name] TEXT, [table_name] TEXT NOT NULL, [column_name] TEXT NOT NULL, CONSTRAINT pk_gdc PRIMARY KEY (table_name, column_name), CONSTRAINT fk_gdc_tn FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name))AU/indexsqlite_autoindex_gpkg_data_columns_1gpkg_data_columns  xx`Ńe;;†atablegpkg_metadata_referencegpkg_metadata_referenceCREATE TABLE [gpkg_metadata_reference] ([timestamp] DATETIME NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')), [md_file_id] INTEGER NOT NULL, [table_name] TEXT, [row_id_value] INTEGER, [md_parent_id] INTEGER, [column_name] TEXT, [reference_scope] TEXT NOT NULL, CONSTRAINT crmr_mfi_fk FOREIGN KEY (md_file_id) REFERENCES gpkg_metadata(id), CONSTRAINT crmr_mpi_fk FOREIGN KEY (md_parent_id) REFERENCES gpkg_metadata(id))‚b''…tablegpkg_metadatagpkg_metadata CREATE TABLE [gpkg_metadata] ([id] INTEGER CONSTRAINT m_pk PRIMARY KEY ASC AUTOINCREMENT NOT NULL UNIQUE, [md_scope] TEXT NOT NULL DEFAULT 'dataset', [mime_type] TEXT NOT NULL DEFAULT 'text/xml', [md_standard_URI] TEXT NOT NULL DEFAULT 'http://schemas.opengis.net/iso/19139/', [metadata] TEXT NOT NULL DEFAULT (''))9M'indexsqlite_autoindex_gpkg_metadata_1gpkg_metadata   íí'gpkg_metadata   °° LP++Ytablesqlite_sequencesqlite_sequence CREATE TABLE sqlite_sequence(name,seq)‚ ++ƒGtablegpkg_extensionsgpkg_extensions CREATE TABLE [gpkg_extensions] ([scope] TEXT NOT NULL, [definition] TEXT NOT NULL, [table_name] TEXT, [extension_name] TEXT NOT NULL, [column_name] TEXT, CONSTRAINT ge_tce UNIQUE (table_name, column_name, extension_name))= Q+indexsqlite_autoindex_gpkg_extensions_1gpkg_extensions ƒ1 ''†!tablegpkg_contentsgpkg_contentsCREATE TABLE [gpkg_contents] ([last_change] DATETIME NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')), [description] TEXT DEFAULT '', [data_type] TEXT NOT NULL, [table_name] TEXT PRIMARY KEY, [min_x] DOUBLE, [max_y] DOUBLE, [max_x] DOUBLE, [srs_id] INTEGER, [identifier] TEXT UNIQUE, [min_y] DOUBLE, CONSTRAINT fk_gc_r_srs_id FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys(srs_id))       ÚÚPjµ9 M'indexsqlite_autoindex_gpkg_contents_1gpkg_contents9 M'indexsqlite_autoindex_gpkg_contents_2gpkg_contents„77‡Mtablegpkg_geometry_columnsgpkg_geometry_columnsCREATE TABLE [gpkg_geometry_columns] ([geometry_type_name] TEXT NOT NULL, [table_name] TEXT NOT NULL, [m] TINYINT NOT NULL, [z] TINYINT NOT NULL, [srs_id] INTEGER NOT NULL, [column_name] TEXT NOT NULL, CONSTRAINT pk_geom_cols PRIMARY KEY (table_name, column_name), CONSTRAINT uk_gc_table_name UNIQUE (table_name), CONSTRAINT fk_gc_tn FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name), CONSTRAINT fk_gc_srs FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys (srs_id))I]7indexsqlite_autoindex_gpkg_geometry_columns_1gpkg_geometry_columnsI]7indexsqlite_autoindex_gpkg_geometry_columns_2gpkg_geometry_columns   GGÆ‚|EE„{tablegpkg_data_column_constraintsgpkg_data_column_constraintsCREATE TABLE [gpkg_data_column_constraints] ([min] NUMERIC, [max] NUMERIC, [minIsInclusive] BOOLEAN, [description] TEXT, [constraint_name] TEXT NOT NULL, [maxIsInclusive] BOOLEAN, [value] TEXT, [constraint_type] TEXT NOT NULL DEFAULT 'enum', CONSTRAINT gdcc_ntv UNIQUE (constraint_name, constraint_type, value))WkEindexsqlite_autoindex_gpkg_data_column_constraints_1gpkg_data_column_constraintsƒ^--†otablegpkg_tile_matrixgpkg_tile_matrixCREATE TABLE [gpkg_tile_matrix] ([pixel_y_size] DOUBLE NOT NULL, [tile_width] INTEGER NOT NULL, [tile_height] INTEGER NOT NULL, [matrix_height] INTEGER NOT NULL, [pixel_x_size] DOUBLE NOT NULL, [matrix_width] INTEGER NOT NULL, [table_name] TEXT NOT NULL, [zoom_level] INTEGER NOT NULL, CONSTRAINT pk_ttm PRIMARY KEY (table_name, zoom_level), CONSTRAINT fk_tmm_table_name FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name))   33t³?S-indexsqlite_autoindex_gpkg_tile_matrix_1gpkg_tile_matrix‚<Q-„triggergpkg_tile_matrix_zoom_level_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_zoom_level_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: zoom_level cannot be less than 0') WHERE (NEW.zoom_level < 0); END‚JQ-„!triggergpkg_tile_matrix_zoom_level_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_zoom_level_update' BEFORE UPDATE of zoom_level ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: zoom_level cannot be less than 0') WHERE (NEW.zoom_level < 0); END ^µ‚DU-„triggergpkg_tile_matrix_matrix_width_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_matrix_width_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: matrix_width cannot be less than 1') WHERE (NEW.matrix_width < 1); END‚TU-„1triggergpkg_tile_matrix_matrix_width_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_matrix_width_update' BEFORE UPDATE OF matrix_width ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: matrix_width cannot be less than 1') WHERE (NEW.matrix_width < 1); END‚HW-„triggergpkg_tile_matrix_matrix_height_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_matrix_height_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: matrix_height cannot be less than 1') WHERE (NEW.matrix_height < 1); END XX´‚YW-„9triggergpkg_tile_matrix_matrix_height_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_matrix_height_update' BEFORE UPDATE OF matrix_height ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: matrix_height cannot be less than 1') WHERE (NEW.matrix_height < 1); END‚IU-„triggergpkg_tile_matrix_pixel_x_size_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_pixel_x_size_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: pixel_x_size must be greater than 0') WHERE NOT (NEW.pixel_x_size > 0); END XX´‚YU-„;triggergpkg_tile_matrix_pixel_x_size_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_pixel_x_size_update' BEFORE UPDATE OF pixel_x_size ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: pixel_x_size must be greater than 0') WHERE NOT (NEW.pixel_x_size > 0); END‚IU-„triggergpkg_tile_matrix_pixel_y_size_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_pixel_y_size_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: pixel_y_size must be greater than 0') WHERE NOT (NEW.pixel_y_size > 0); END ¤¤‚YU-„;triggergpkg_tile_matrix_pixel_y_size_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_pixel_y_size_update' BEFORE UPDATE OF pixel_y_size ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: pixel_y_size must be greater than 0') WHERE NOT (NEW.pixel_y_size > 0); ENDlibspatialite-4.3.0a/test/check_fdo3.c0000664000175000017500000001406012544707704014556 00000000000000/* check_fdo3.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiageo.h" #ifndef OMIT_GEOS /* including GEOS */ #include #endif int main (int argc, char *argv[]) { #ifndef OMIT_GEOS /* only if GEOS is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; const char *sql; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = system ("cp sql_stmt_tests/testFGF.sqlite testFGF.sqlite"); if (ret != 0) { fprintf (stderr, "cannot copy testFGF.sqlite database\n"); return -1001; } ret = sqlite3_open_v2 ("testFGF.sqlite", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open testFGF.sqlite db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1000; } spatialite_init_ex (handle, cache, 0); /* FDO start-up */ sql = "SELECT AutoFDOStart()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -1; } /* testing aggregate Union() Point FGF "HouseNumbers" */ sql = "SELECT AsText(ST_Union(Geometry)) FROM fdo_HouseNumbers WHERE TEXT_LABEL LIKE '11%'"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -3; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -4; } if (strcmp (results[1], "MULTIPOINT(430417.1 5448290.9, 430666.6 5448125.4)") != 0) { fprintf (stderr, "Unexpected error: invalid result |%s|\n", results[1]); return -5; } sqlite3_free_table (results); /* testing Sum(GLength()) Linestring FGF "Centrerlines" */ sql = "SELECT Sum(GLength(Geometry)) FROM fdo_Centerlines"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -7; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -8; } if (strncmp (results[1], "895.3351", 7) != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -9; } sqlite3_free_table (results); /* testing Sum(Area()) Polygon FGF "AssessmentParcels" */ sql = "SELECT Sum(Area(Geometry)) FROM fdo_AssessmentParcels"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -11; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -12; } if (strncmp (results[1], "9022.1792", 9) != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -13; } sqlite3_free_table (results); /* FDO shut-down */ sql = "SELECT AutoFDOStop()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -15; } spatialite_cleanup_ex (cache); ret = unlink ("testFGF.sqlite"); if (ret != 0) { fprintf (stderr, "cannot remove testFGF database\n"); return -16; } #endif /* end GEOS conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_gpkg_base_core_container_data_file_format_application_id.c0000664000175000017500000001110412544707704027312 00000000000000/* check_gpkg_base_core_container_data_file_format_application_id.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; sqlite3_stmt *stmt; void *cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_gpkg_base_core_container_data_file_format_application_id.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } /* / Test Case ID: /base/core/container/data/file_format/application_id / Test Purpose: Verify that the SQLite database header application id field indicates GeoPackage version 1.0 / Test Method: Pass if the application id field of the SQLite database header contains “GP10†in ASCII. / Reference: Clause 1.1.1.1.1 Req 2: / Test Type: Basic */ ret = sqlite3_prepare_v2 (db_handle, "PRAGMA application_id", strlen ("PRAGMA application_id"), &stmt, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "failed to prepare SQL PRAGMA statement: %i (%s)\n", ret, sqlite3_errmsg (db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf (stderr, "unexpected return value for first step: %i (%s)\n", ret, sqlite3_errmsg (db_handle)); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_INTEGER) { fprintf (stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } if (sqlite3_column_int (stmt, 0) != 0x47503130) { fprintf (stderr, "wrong application_id: %i\n", sqlite3_column_int (stmt, 0)); return -33; } ret = sqlite3_step (stmt); if (ret != SQLITE_DONE) { fprintf (stderr, "unexpected return value for second step: %i\n", ret); return -34; } ret = sqlite3_finalize (stmt); sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/Apple-iPhone-4.jpg0000664000175000017500000122415112544707704015553 00000000000000ÿØÿàJFIFHHÿâ XICC_PROFILE HLinomntrRGB XYZ Î 1acspMSFTIEC sRGBöÖÓ-HP cprtP3desc„lwtptðbkptrXYZgXYZ,bXYZ@dmndTpdmddĈvuedL†viewÔ$lumiømeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ óQÌXYZ XYZ o¢8õXYZ b™·…ÚXYZ $ „¶ÏdescIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view¤þ_.ÏíÌ \žXYZ L VPWçmeassig CRT curv #(-27;@EJOTY^chmrw|†‹•šŸ¤©®²·¼ÁÆËÐÕÛàåëðöû %+28>ELRY`gnu|ƒ‹’š¡©±¹ÁÉÑÙáéòú &/8AKT]gqz„Ž˜¢¬¶ÁËÕàëõ !-8COZfr~Š–¢®ºÇÓàìù -;HUcq~Œš¨¶ÄÓáðþ +:IXgw†–¦µÅÕåö'7HYj{Œ¯ÀÑãõ+=Oat†™¬¿Òåø 2FZn‚–ª¾Òçû  % : O d y ¤ º Ï å û  ' = T j ˜ ® Å Ü ó " 9 Q i € ˜ ° È á ù  * C \ u Ž § À Ù ó & @ Z t Ž © Ã Þ ø.Id›¶Òî %A^z–³Ïì &Ca~›¹×õ1OmŒªÉè&Ed„£Ãã#Ccƒ¤Åå'Ij‹­Îð4Vx›½à&Il²ÖúAe‰®Ò÷@eНÕú Ek‘·Ý*QwžÅì;cвÚ*R{£ÌõGp™Ãì@j”¾é>i”¿ê  A l ˜ Ä ð!!H!u!¡!Î!û"'"U"‚"¯"Ý# #8#f#”#Â#ð$$M$|$«$Ú% %8%h%—%Ç%÷&'&W&‡&·&è''I'z'«'Ü( (?(q(¢(Ô))8)k))Ð**5*h*›*Ï++6+i++Ñ,,9,n,¢,×- -A-v-«-á..L.‚.·.î/$/Z/‘/Ç/þ050l0¤0Û11J1‚1º1ò2*2c2›2Ô3 3F33¸3ñ4+4e4ž4Ø55M5‡5Â5ý676r6®6é7$7`7œ7×88P8Œ8È99B99¼9ù:6:t:²:ï;-;k;ª;è<' >`> >à?!?a?¢?â@#@d@¦@çA)AjA¬AîB0BrBµB÷C:C}CÀDDGDŠDÎEEUEšEÞF"FgF«FðG5G{GÀHHKH‘H×IIcI©IðJ7J}JÄK KSKšKâL*LrLºMMJM“MÜN%NnN·OOIO“OÝP'PqP»QQPQ›QæR1R|RÇSS_SªSöTBTTÛU(UuUÂVV\V©V÷WDW’WàX/X}XËYYiY¸ZZVZ¦Zõ[E[•[å\5\†\Ö]']x]É^^l^½__a_³``W`ª`üaOa¢aõbIbœbðcCc—cëd@d”dée=e’eçf=f’fèg=g“géh?h–hìiCišiñjHjŸj÷kOk§kÿlWl¯mm`m¹nnknÄooxoÑp+p†pàq:q•qðrKr¦ss]s¸ttptÌu(u…uáv>v›vøwVw³xxnxÌy*y‰yçzFz¥{{c{Â|!||á}A}¡~~b~Â#„å€G€¨ kÍ‚0‚’‚ôƒWƒº„„€„ã…G…«††r†×‡;‡ŸˆˆiˆÎ‰3‰™‰þŠdŠÊ‹0‹–‹üŒcŒÊ1˜ÿŽfŽÎ6žnÖ‘?‘¨’’z’ã“M“¶” ”Š”ô•_•É–4–Ÿ— —u—à˜L˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ ¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäü儿 æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿÿáÒExifMM* † Œ–ž(14.12¦‡iºˆ% AppleiPhone 4HH2011:01:13 14:33:39‚šÈ‚Ј"ˆ'ô0221Øì’ ’’’ ’ ’ 0100   È¢¤¤¤¤ 2011:01:13 14:33:392011:01:13 14:33:39⹡MÇ»¸NzE’ªTÂ)þd  ud! êdŠÇÿÛC     ÿÛC  ÿÀÈ"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?üaINñ±U3áK|ÂqÔý)÷Ü…WfÛ…crÆÏµš賀ςhƧ¿Öƒ Mê¹pùç<¡#·cÓ½xêNÇßA´&Ä?}„JÀãŒ)ç¦jâ&ènòAÚä¹ãF}ªš$‹¬#‹ÎG|ã¯ÿ®œ&"PÒDªû~MÞ˜ÁüIéš^äþh2^WnTõœúé$Œ DàÈP *žßäTq·^6#>2}ýzš=í;$Gr–èyîxíC“’°r¡²… .„ºãq89ô÷âÇ! »@Êö霊XÁ ZD 3 Á†8=‘Û§9§; lìB!féÀõbMc(r”­`ʈY”¤êÌ`¯nù§ÂÀÒþæs‚¼œà‘×nyÅDެøa?Æ ã<jk§—·|…Ë ¤¡À>Ÿ¥O3!"´Dаír¯Ž½²{õ§|­+FÂ$wA·Ë€OlŸoOéP’79 ‚˜Sœtû¼ú çñ©«B¥Œì¼p^1Ðç¦~‡ŠjéÝrR|H‰ü² êpAüŽ:S–SLŠ6îcóºe”çôïÏjdEYh*ÉÂîëŽFIõ4àCNT;0â0$Bz÷ëTâå©kAÌR±TJ(;@<ëš—'Ë_,»žw…\ç=óíÏ£‹Í–6 ±A‘qŸ¯¥Kè¢ ¡å ÷”>;ŸNH­aî+Rû/Ûö¼Œ¤öž˜ã#=Èõ©$QµJyŠ­œ±\óŸQÒ¥‘ÑŸÍ&Ý#Æ ÇåšCsæyA eÆáë’y?áXO]Hjì’6 "¸…¶‘ƒÀìzäúñK"o`’H\Éo,€ÄÔ}ºS|ãæd"5=ð288¬ìtžHf(#dÚ:užø¬”¬R€èÑQU$„tÆüž‡žÇ9ã¨ìqŠg—ç’Ší¿‚¯œnÇo­G"4p6ã1hÆxþŸ…Ksh™ÄÊ>îÃÈÉýi·ÌËWÉm#T”È À2sÓéõô« 2†EÚÇ"XóœƒÎ8þ´ÇE·r« [.‹Î1Ðô§"ÿ£³&ò~l8$?USdZZ„ÿ‡é\s‹lp‰ )ö°DjUG>¹è0O|ÿZ›ÌŒ*+²*B²)o¡$Ž*0á˜Õ‘6_5~aÏ=Ýö<õ J#—R/Qþ"Špl¹+ÃXM€` îaÎï˜ä÷½*Ò1hˆùbòð5î?SžMEi6yaY3¹‰a½IqœñÏOZ™hî&FP…3¸…ÊñÎqýzW]œQ<È‘VO´¹@²ÄÇ —ÚAï{`Ž Mä<6q0»®rÁ>¿Cšdo&ñ€“Æ_(9ÇSúÓ‘AË,l‘©|Á÷ý85.Í\­ÉVŠ0Ò9BF$pܰÉú˜ÿƒÊcŠ/Ñ9ìqï×# EØÌjÑIŒín`vç<õ§4›ÔI#eR¤Fq÷@íô®7IJaËaϺD$ÑH±Æú{RÿII ʇ*ØÈÈô Hò(G‹ 9XÂàÀïžyÇ·5€"ógûF0K0(­vR¤¢®fÖ£Þ3ý£ª¢D',ƒ¯®=9ÿ=éK‚cSK &Ó¹†FGô#¯$›‰V#æ 9\އŽ?J@6į…òƒä‡'úý:ÔV\È,@ææV>d„‘÷ƒ®QÆ>¼TÅ•‚ $#/ÌÄg¶A?áLv:XÞHü·ƒGNAÚyÇ=~”ÆÚ±ˆ¡FXÙq¿äww5š¦¬dÝ™pχfü6À7dý{R·š—>cÄLNpF8ÛA'×ühVŒ9.YÎ_qôë“Å2é¦ùb@Â0u”Ÿ§ʦî)M1³ÊVD/w—’|„$c9O|U9 ¼ °¢Ç*YðåNÜ>Õòü³«ÌÉò!Aõ9â«´ñ‰£ýã‡;Jà1ÁÈ>œ*ë¥M¦Ó8ª¤FÈKÆx¨ÚMS+Í$#“ƒUªì ’®Ù‰3µX¹¸ÉÏ¡ü+5¥wb¡|Ý«µ[‘Åk ;™shA#¬Òæ»6‘éÀäš ^Wóf–PÓ3‡'jWy.ÂŒ36Iç<~¢ªïŸÍmØÚÜÙíœÿu¨˜IÅ+†ˆîpqè>¿áUöœdäüÛŽ‘ϧ¥=Èíi#Á8“¶1ëéô¨¶epÉ (eÏÝœcòôªH‡fÅuV 8‘8*Ú˜|¯(ïä©c¯ø}jHÙËc1’9äðëAÂÌ z ÆióX^ÊìX"ýË3^?„sr=hHL± Ç-Ÿ›;F3Ξ¨fSæeT’;þ¸ç­O'c¢¯ a‰$îÏò©”ÕŽÚåF²4d>X[$äþ± „(£û¬Ù²°Ì'r–UÚ ¦3_ñ4±I/”SrËî`…$õÇZä–§ ™(bÑ^ JòX’@߸«QTÆ ýß”úð¥C½Úˆ—ÏÞpp­Œã@hEœNr¨sµÆ ?K¹" œnCmüã< ” ß1e'oÓëQ²JBÂÍå¿sÓ?J–µ•®ðFsÔÇ­TB’ÐÕ¶·tªD¤pØr1ÇQÓúVÏ—ç\#*,Ü /lã¯5™f÷a6£ËžŸÒ¹‹¹eVìJavîÇ·B+GUÉ™IègÎ¥à,çbuNG¯AéY,ÈyDe?)^£õnmæÚIÈ»ØÿãYÛJ1W߯Ca¸úsÍk½ÈŒ‰L€³É9BùÉ=0O¥9eT‘¾TV#åÇ×ñªŽCŸ0úF1מµ: Ó(]‘îL#ŽýiͲ֥íáŠæ]ëœ($çüõ­7Ɇg$>Ãϰ$ã¦:Í€m;”ÀÃ:sÍiß*ºUNB²åO¿=8¯:´.îvÒvC×2ß2rR4.ÙŽ¿¥L>ÀÇæGåÞ¡1y‰!Ú¸;H9éÆßj›  ¨Qò±†$ ç‡øTFk–ÆÞÎîä'äÝ” àòOøS×sIˆ£3ü,§åÿ yÉ„y €X}sž¤TÊ#:K %îÕrOO˜ûÖ|‹±,è Îá•öc*[Ï rGnjC³ÈÚ1øTå Ý ³*®yÛלÔ/.Nõ* ýáíëN1d7b7š‘Ä_qlà‚M(|:6|²_3‘ùÔFVÆP íÆöç§AùÓÄŠVL>î7¨ûè}*ÚhIܲÉU‘ãŒ0ùðxÇÒ¬TÞ¦?5x)ޏÇQíUAB¦ýð)Ê+víÛ¡þ”õ íŽ/2Vl*…åøÖR½ÁÀ¿´=©0,ÜqŸÀf¡Ù± ¸,H8þ”ÕEX@Ê…æ$ýÒy~>•4‹$( «#L6äqÇQÒ®1wy 7,¼eŠœžÕ ±®ÖûÈÈŸ É$œöSK¹v ¾6ƒŒzöÏÒ›$¸‰X<›±òq‚G×½l™3M‹";Aò¹û¥ÆT~j‚«sŒ€ Ãh<ûú ‘™£ vD¥€'¸ÀãTˆ‘Effe•ø$Œ~}:jÞgÄ¢êÄî ±öavqYò!Så—%·P:âµI$²Ü+ƒ»k°íYìíf”°ªž½À­eS™5‘Š®ƒ⨂;¬Çl‘åú`íÇaR`ÙŠ òWàœŠ–RVÜ.ÖVQˇïè?ZÎÄI¨7rX®;dÿõ¹¥‘2yh;Rsƒ×4ª ‘‡b­´ü£=ñÞ¤VŒ ¨†9@à°éþMfÓ.œMQž¯ô ü­OmI6I·X wÎ09Éþ•B+pë– ŒÇåö9­…[cW¡9ÿ?ýzç©RÚq§qâ8:d’ ÜQ 0q“Î6ûÔÃËX“%Fá€ä0§z?å¦:†'Õ•:3£¤¶ÆKt•ãer»™ŽaØÕ‰V8­‰7‚Ä7nÿO"¬…Ãa™[‘¼ÝävÅ@Ñ’OÍ!Ü8 1Xâ+6%¨yÇ–Îì2È­ÔãÖše- žb9ž!xôéšžX¥†&Ž5O3‚ž=Nj¢9ÚáÙ„‡ Ò_óÖ³§ƒ‰Tƒ ެ¨<ßžÞ´ÅÄFC¹:d1à®O$Òà¾rÎÌŒú“ÓÿÕSD«åâ5 ÈÇÞöÉ­=LìÙ2ÍG/—#͹WhUÔ}zUÈÔ¬‚dŒ‘À|¿8úUvY0«¯Žá•À¿Z¿š–ÁäUŒ0fn<㯗ðLpŬœGçKœÆ‡#{ ôõã¦9ô¯³þÙAuÃq*´REºEXÁ ®y ž•òG†¶o·ÕmÙ.7©HK6Pd|ß(t>õõGÃIÎÐÈ­ÙL|ÒÅÊ;€z㹩SQšhö3ìk©†q¹‡ñƒûp4°i×ëlOÊà,dМÝ3ìs‘Ò¾ñm•åâHf¹Ê‚s‘œcˆ^ÉéŠûwâEìWºŠM¨ãd<øÏ–87¶‘Û;R2 1ÆÑïžN3ÓµyQ¹Ã\É´¼…€*7víǧoÆ­êW÷Z‰‘î³ÆN9É÷É'?¥bÜÏI%¸Vfc€`Ç?w($2¤®ŽzåšIœù •ÉéÍg4k¼—dv9àpGùõ«®Â1 TP0à“Èö¬Ðb*JÈìÇæPY€à╬r6$„eÀEÝÑK ‘ô¦ˆ™JóÀ'±?þ¼R)IRÀÈNíŠíòdØÌÁFQß×è*”.c$ ¬²ƒÁ8ÈÁî{ûÐAy•m||Òsô§ãQ!U ¡d¾Þ¾ßZ®Öc‡'oÈ3רO”h»å”°Ê/×<öZ¸‘«!rAq»ŽžÝêšÆ(ˆJìËÉfLcÔŠ·•˜åäÏ =ºsÚ³ªù#êÉ,€¡,Ø$3ôÎ:U¨Ä¾@ft\pWîñúT #ÜÌRdáC2­\f]Î’EÈ$!Gs\»3¥l*FïÕA$n9Éïž}é‹•ðTäp£§øSÒY$b! Âó‘¸sFàûаb?Ö8=}±íIǘ9G4oçÄÞ`ÝÀ2LBd[È÷lQ‚Y”äNs$BE”]Û]ÀÝœJ‘›£l'# úý*½•…%¡˜Dn›Q›œç¹ÿÕ3ìL@Èþs•lØXà¯}9ÏëOÝ0!6E/Cäƒþ±ª’cÎGvÃ8ùNϘúÿ“O]͈¹ôM£<ÿ]mJ«HNš¹e û0%£,6”-Ž=‡¹#ùTí#Œ‚D$eqÈÎ9úUHÑNYdVù œ`ž§J‘‹œÇ$žc ºOå\Òz›&"’’GˆåÅ2=>öiÞK§_%°Ýò¯ÏO§µDÑâyv!‰Xãæ;ˆcÜô'éNqå£T;r·ŸþµO+gBž„±»ŒíP±¹ éÀÏÖŒˆ¤mÈ)…Áþ]j°Ÿlçâ"MÅ>œ{wéReØ«+Dó\ õ?N*ÚÐÍÝ–fWibYØJ‡•{?:…fw‹æ ^6ñ“Ç=zTQHìü˩ܫƒÉúzòzñRJó$e•Ú ;*Œ¨#/¯Ö±”.tÓeƒ8a>AaÁËŸ)þðȸ‘üQg9 äð¸=&©¤Îcˆ\ƒ.T8HÎAôÅ] .6™0Û~nX g¨w÷¡SkSÑ¥;´¢”xFV0£FF?3ÎrzÔd2¿»ˆ#!·sÉ?çëUËf‚°1Mûdõã þT¬¬ÖÊ_|} .IéŒäÿR‡6§dZܰ­¾gó Ç7”<óœþêÁ£æ<TÎWœgOO^Ù©ÞTò˜íÐÆÑ•*ÈÇzžÙ¯µK ƶ÷ ûؽFážœ¤gç5.éQ\„»3™•C31ùœüÍïÏ qUžEóXƬ¬_Þ7=ôëD!DÒ,^^ÃËo8lg¶{{ÔóL«*®åbª]ãÎÏ'SëY¤ÙÌà™WiK§—3ÿY·¯f9=8ÍNB±XË<­•>SÆNLw¤”ºÙyCcD’®§$¶=z÷>ÕŠÛ§O¾,ïœ÷­ã}š$(»7ȦCÁT P01Ÿ\síëÚ” \ã˜ÈÂËœHô•W_–RDcx*ʃÁÎMH^b] d ÁN`1»¦zU98ìtSi@"å¿vÒõ?>GP;Ž9ÅV ä[¸‰pÒFÂPHÛÏ8Ç¿ôíHŽÅäUC&W°áp ÝÏ¥&âe`%¸Ì±„lH1?Nµj«{šÔŠ”HXÍ冶•_˜´`go§zFÍɵIB¤~^U·mÀê}³šÒœ”ŽPH#‹nÜçïzà“ùâ³Ø,ŠÐ¶ßî3;`ðsÇ|äv¦Ÿ3±çÊ6&Ç”X†B>?ÔãÒ¬´n»§Ãù^VÑósÈ 6OaŸ¥B`…¦A炪 £1ìH8õêxÏ_ZkÎQ0PùÎY$ €<~}yëV´f –fV9v#àåÙ÷€îÜdêzÔ,vÂR7¸y ÃlœöÏçO’Üc ´†¤I`XÔï›U¤P»ˆÆyü})‹°^4.$*S—^FG=*vv#ç4„,€¿Þž;äõ©’g7 dùYT–f§J„ƪ>O¸ìäcñ?áRîY²F¤`ù’çÓÐŽù¢Vhl“÷œÊë’àXã°85¦"PÎĶãòò_çPþï`òü¦È9î™ùS‹I!2Š m¬¸ã­a%¨Ò&.诜f#-ÔÞ¿#Íùˆž^쪪çõ«$_iy¾L€>\îÔóÓ&›/’’ŸÞª±l–TíŒöïÛëZ­Š¸¬7T0–%œÇ­LÅaf±OSïý*gvfO¹†8sxíúæ®>Ôv¼rÈà–C‘Œõ#š6.$aü«†´>C ’AÆ2Höö¡4s˜c#,6>¹ç‹ÝØ—yc”PAãžp>”æÞe‰ 8?7L«0zuõÇjÅ»²Eh·Kª8d8R>§­V,ÝŒ«+É@ÏrG½JC*ªä’¯», ÓúÓâ+˜’ ã'¦î zöÍ) X‘do%_$c °˜qëŽ|€ÝHò  É.Æ1ß×Y²%b¡÷–,ãgŽ*ÈgxÊCæTË ØÏN@ݞ’LÈ ‚ë#Œ…åx"”±º³É†88ÏCê*_c¡$/šÅTÁ 0aÄ“ƒŽ? ˜ª*<‹+ÇÈÉ*X¹$z9ôô¨-Ä—¸Wªÿ|{qúT¨˜»QæŠ4^ ~§ÿ×éB!¡Ð¯–²ƒ)“ ÑŸQÏë‘Vج[`y$u 0V<æ› Ëæ&ñƒ¸‚ÅŽG#úÔ°‚. \°ì2Tϰ*Üb•År¸ æ4¯cÎ$rÙ÷NjÜl^s ¢(ää°>çgõ=¨H¥7(Hî#'’܃×þãÓèâ¹v·Ýnv|Û@$©8É•({ÁÍrÙq‡w'cP`Z»Žævx”F9 œð}r?*¢ŠÆà”%ü¤”`dã<Œ“õéøÕˆRo’¨Œ·+ÎCm$‘[Ê+AòŒ…A“cD"BÙ¯FSÇåÖ¤i‚¦×”’¥AÁÝŽ¿6Eô«ÊÁ+³®X…·øïõª„hX²Ç&üœmQœ|Ùèã²+š¢ìJ•‰š7[£ž²1‹—b6¾:‘úv§»Ë;üÈ’²îûäœÇ¡çÞ¡¤œ ¦ÆÊºò 'ÓÛõ«f$XÝ_ÎVmß>þøã¯jÉG”·©É-Øï`Q—Ù°{=yÅ % fTåóŸ ì8úÓ#•>щž(H%†CýÖôü1Í9“̶’9¾¡”óù×T,âÒ2˜ùY¥ ÎH!²îÃ!‡ëQÈè.Aß“—ïžÿýz†@d·•$bĸØz®+GroqŽÜ®ÖOá<xçõ¦»Åo(`ÃrŒÍ¯Ö˜šæW•cå@÷Èôþ¿…B@e„«Š/sÓ¦{þ5ÙI%¹Ë>k‹4é$2Ê¡È2€FNÞOã=¹éÔÔ7°T˜ÙÊí*Wk9×Ú¥c“ …ËÊ«€§¼ãñã=+6C–h±©E ɰֻ*Š"ÍîDé,¨coݺ‘Áã˾jb×(gVL˵AÈçÜ µ¹äDÙ#>9;{UÇîü÷Ü<¡¤äý=? æöš™8V‘Õƒ±T`p1íߨªÄrŒjê ápB0þðÆ¿áTg*-J?™‘¸ñùšì¦“FR‹ b7Ȩ~UÏ¿olÔlØ×ˆêÄœŸÆ­m2´Dîsä¯ä>¾üÓX3—T#…'ô¡ÅÜq†¥=ªÊ+Êù§í;Þi!†#ÿ¯R•DT$d…ÊÜóëBŒäJ#bO`ƒô©ä±ÓîŽ&ÌŒr\ “üº¼=ʘٲÇå }ïj‰T˜Ô}Рw<Ôñ¨ŠëÌXÕ< ñíXMjo–©óY£hø€äƒß·9¨3¨H“lÙûŰzwïS¸¢ [{c¬yúûŠ®7Kó¶<¿Ÿ Ï?… (Ðprì®ñù²Á.:ûçüõ« 7ȸB쀒p=?ýUYÙZ?ÝÈ>aÀé·ëïM]°Û˜þF+’² à?ëG*3r±a^@Xˆä!”àŽTÙªrî²G¹ `~lÊÞÙõªÈ^'`ÈÛˆ$üÝ8î)Ö­åÈ« ‘ð2#¯”¢7Pß³Fl7 ‹±3dž{種²4쀄$Û–}ÄäŽú×/m"(‹.ÛTå‹_çøÖìFXæ‰á“È#'+Îxô÷¬“w"Jä3¨·YUY¤P2Åpxþ=z×)rYf2\r®ÆA´à.OM¿Òºk–‘w™ÝÖC‚vÈ=ýk—º‘WndÜØû› Ç\’À~®ºQW8ê&cݲŽUFw1ϱéT'š6cåœ×$ò}jñI:€ÌO*F1TvÀäàçò®Åc8¦Aò!w`/Ìʃ#ñ©•(͹So\>´»I$ W%sÈÆG½0lÈùö†9(iN7FÐZšQ·P|äüÃ9çéWÄ’=Õ*ޏ#d‘êr8=³YqÿÇúyèYˆÞ¯s#0d`¼þzWŸZ:ÔÍ8v±”™SŒ`Ž=ýéÈw>I¿/¨NÕYfD˜°,cq®p¿J’#ØUË -ƒ n[Ø×i\뎤Π‹„T|È9ÉïÉíPí[ •hÆNOÍøS•e8‘¥ä#gn˜Ï–Ú#’ mÝ[Ç`’ÐjŽL›˜¿ñƒÛ‡½W2bC€ìù=˜lØ¢X¥ÇÞSÐ}j¯˜Â÷nrÊ.Ÿ©÷§®sËrc&É@R¤¶HR›ª5Ür»[cd†e'Ôâ•cSp½8sÊIÆ1øsR¡WeTQ·?7­´C@1(Q’Nž?J¶ªä–«Žc]§ëÿר1¼âGÂõA‘’qÏåVâÃà®Q†¹9Ç?JÉêlÀWxÂ<¤¶>CéüêÀÃR‡,v¢ñÈíÏ­!CÈ“s|Üà¶Gµ>H¾øùZB§ä<±Ç¡õ¥{ Ìü¯³ ƒi¯+´ÿúûtªËÈÊ,’Fr½qíéVLMLÍ)RÝŸ$þi ™@!c=ñüé¦Û&Dm¾Hb¤…sÊ(剨㙢µ ‚ƒqr}A©¦… û•ÈÀdç®=¹ª“*"‚K±`9'úõÑʬ`ãq%€ý•2¤\(S’^«<¿–»C©EåHÇ×5®®%òÀÁ“ø—8Àè?¥BbD¸a„žG8fàjÒ(Í«<èÝ¢L¤t‘Óš®ùÈU™‰npÝAö5$ÖÁK¹yóòÈÇùâ¤y|áW%9À'?Cž•ªFv!òÿzÃtY+Ó8`jÌq4q«´«"9õZE/æ3¬iÓpSÏ=>•bØî„(1²¸ù†ÚÆ­’:!dܳ*’0£Œw¬Þt1y‰÷‚œr3œ}ïnþ”Ø#e‘ÝNYqòâõÏÒ®,]¹ÊŽÃ>ÿy²i³²ÐcÆmáLŒ#æ=µbHbùÝ1 óf6#¯5UT¬avÁ³#r;óýkÐÜlJ³Å$A$ŒŽ£L€}ªUY˜.@eû¥ð íÛ8ªè7n,¸b¼¿—ÔwÎ==}©!¤pw±HðÅŽ^¹§dˆq¸Æˆ£’1 ÷K è?J•,°Rq‚¯ó)ü=§yì²m]ÊBŸ™”t…9T¥°ªS §×ùÕ©X…GAnÁ‹`‘ÙsÏèýU}dT³-™’s¿–2k< °È Èè óŒŽO¿Zš7‰Pª"®àrœ3÷F}¹­áQX´ë$`\É*–B» ö?žkJÊXÛÄP¶2è$` ûØõàV%«þú`K* n”å¿Ù­ˆ 8Ž%%Rpr9îÝÿ>W\}+¾Ñ¯¼»¦˜›‚™“æ^FysŽøÕæVÓ¦Wí [%UXç?ŸJïô8¢V’i²£| ‚¤``äØïë^F.½“GÝeUR‚>žðf¤ÉjÂYšê(O ¼ãaSÉÉïÛ¶+è'ñå¬=¬0´F("E€›ÊŒŒõÈÕñ‡ï|«Ö“Î6¶ò@$U œ‘ÈÁïžüZÛ>#4Ùdº(Fo1dVsŸ”ñ‘Î}=)á(Ý«®!:NÆ·Ä¿‰…ä—6jY"–1’²±$8>œž½«á?k2K®Ý–…i 3†®Os· ãó¯cñ¡=ŵÕá—t{÷Œpì»»“דž¤vâ¾xÕXOª3¸WĽGÞ\ôkèé%mËqšÌ¨V,²|@Èǵdê(•ÄAˆÇÀàþ5ÞNˆŠR`w.Ì ÿjókÕòõ[ˆÌˆDyÞ¨;œÌWEEîœm™Í;<¦!å8‚õúŽõ]¤³+±n?þ¾*i¥-¸ “ßþ·øÔNèÎv±éžâ°[´˜ÕP *¬Ç?JDo”´£‡8RpiÅÿ3yLŸázv£œ˜¡°8SÛÔýjÔŒ$e"¤m%÷ÅXx—í-æ²Ê岎F¦}*8Ù·,RF¥±· à‘éSWBƒØØ('#Ìý=hp*(’4d¸(vs‚Ö¬¢°ú̼HlóU-*ª`í?qøœp?*¹XÁ,2:zÖFÉ“ C+JvD?)ëÀqô53H%ùJ5—nH`Ä€{ñÖ©®Ç˜‡ÜÁÃ2¸8 ;ñßøT®\K‘µNÿ•”ä`?JÇ—[šÅè8ì6¿qÙ•p29õÈ>•&r„ËY>éV‡“Šr b9G$³uðÇçOqsÝþí÷r?ÀSÑif1ÚA•FIT󜎞´…P¨RU  KwÁÇ'ŠTT«áT¯yäðIæ3æY|»Çå²F\wíÍhõFr y ZÄ^¼  \Ÿ_z…œº—IbuÆ0¹ÂúsV¥?ºÏÊ~]ʸËžsþ{Ô27Ê62nuþÀÎ1׎sëYò¡"5ÎÒѺ†*áêyéMwØï/ €‡¿jؤ)½Õ™]Ǧ=qÎ1Ú˜NÙü½ñã€r1Ƚª^†©‰Ñ€ÝÀØ€(íŸÒ¦‚F1ùd‚v‚p ŸSÛëMD {åï†&c—2ÎÓ£Ÿ õ¨$d6Qäc†BÙÜ;õëõ¬ä5fòp±¿Íq“íž9÷§J-³:‘V#_RUo3r‰„,Jþ9ñéR­Å7!Ù¹¸#2yíL‘$ó‘Ê$Rÿ»FùŽp8Í?bµƒü¢',Ywç9<ÓŽÕ»§¹ÄâOnìIhüŸÝƒáyôb>Þ¦£æ*ä¬jAFbjä†#'§AçÍ5R.ôEfé¶Cû £ÔœœwÊ¥– ftÙ$»Z6rà2€=[<–Ç=±ÓšjVÝ¢sÂ$B31QócŠ˜¤ÛÈ’Uò >N¾Üf”*}ø·Hc öþ^¦0yE•C2¾A'+þ¿éZóhxqC¶F×°¨  §ÁÏ_OÃñ¦ªG'˜}Áðw¸8þ”ŠäÙºH€B2§8-ü‡ëŠ2âEXÕŒc,ÊvñýFhŽ¢•î)Ž#nDn€H'?QÖ‡lÜ ",a@VeÃ{gÔR¤¹?:†*sëô«€7•€¨ªX’ª2IŸn´ÜM Â\ˆ•Jb?Àþ)ïл¦[ gך`!­6¸cæ¨%T’¤ö5gù€o´dn;‰ÿRZÊLßñë!Š]¬ Ê{TbBÞ¹Võþ§>´Õá)Rx<äT¢7[m¿¼’C ,q€¸Æ:ÿ“XÛPØ‘B»cxþ,o“þˆK´$ ßâ#GÿZ!I%™Ù•×x!±´~£½HìÒÜ$ˆ !^FÓÇŸéŠv£D>d!ã1ï Nàã?Ÿ¶}©ª²ñȪ½JùíÉâ¤Q ´ecrœ€7~˜ì)Wþ=51 `uç ôëÇ_Zsw 0…<½ûˆÉ1`1Ï'½ñKŽnËXÄ@$çëéÒˆwíâWfÂîwŒŸ`*,aWb@ÎSÜ‘\ì´‰•Sw˜€„ žOqÏ\SKF°+»ï žŒH϶qùT¨Âû¢‹…É` ŒÜÿNiø”e‘G´ úã<{ŒãúИÚ9 v ½2Ägñ=jEDi6K<ˆ®@V;G^£™íQDâä€YT¨å‰Ïôã=*QÄl‘Â1méÓ©öôå1$ DÈ%ƒ"¥ zÓ=JÙ3êò³~ìc%HF:ŽÜÔ1É)…ñŒûÎ7†éÇ¿µ+´f8„[C€NF@ëÀ#éÖ”eviky%šÊÄN3êx¸©6¸¶)½w°Ë>b@O¥ ®(PYB¡ƒÓ?‰©öɸ۹% Cno™ý8ú÷ªqÔÖÀa${Ö0ÜãN{Ƕ3Vã2‹e`“ œäc§®*—–Ä¬Šªãù“ŒAú‘އšžÛm´j™û©““ž§?\¥%bít?h,9UM§†éÉïÇnµeÛËì „€ç#ðþu"?¸,»“ àn=sŽ•:y¸e_3>_ÜTpûwãÒ¦¤t3näæF–í%Ydx<ÌÈùxù½ÇbhýâÆÙghÉóÑÏcÇByíjbù³±hŒ¢&r7ØŒU±M) ¢Uˆ?Î GwÅd§`Œë;œ´i´±“œœö«™T± . L SrßÞä{Póf4ŽU‰m¼ŒŒ6¹ÎjéMÖ>Z˜ü‘ǘ‘À9ö9ãëWó»'`G LÂY&4¡# }ðpšà-Â*î2¾U—8,ÉééùRsÜñÐÌñç*U?,õãÔþµhÊŒå•#N»ˆ$n㜓\“nƪÉ  T˜‘¹ùbì# ãIÉô¦2»ÅÌ¢FbBÆ óÎ3íïéŠy);$jgHÁŽíÿÖ¦ÉGs³˜‚NXàõâ¡È…"EO!þhŽü¯<œ˜ïgpïÔÆù$)Ìõ«76˜¬™Q”³¼€*²Ú‡¡8 çÖ' ´•\ LýjiÂ%•' xÙýÃéß5Cv>d’ß0ÝÀº~•ÑMÝjg4Dá c-g¾xëÚªÈÌÑ…–6EvásÇOÏž•(@×4«¸(Ú»rF}ô¨]]n—`WË•‡¯•bœÑ±ºhØ*à†lqþ5iÎÆÂÉÐO·µfh‚4€Å$%ŽGr?Ïj„«æ¸uV)+ÏÕ½6$ ZH™‚˜È_˜g=8¨–4’R Ý·rOÀ÷©‚–•œÇ “Çz`•£ŒÆÁ &H8öé] Ä7b°Û•VRrx\ç¹ÿ ]ŽJ4_;†ù™@ÛR„33 ùù }©ér ±*Ã88ൕY›ÓwŠYD~WîÎFHèGSôâ¬##±÷nœU‡U‰£<Å‚ €¸ù¨L‘‰‰ ßtžsëÍq9ju(è8„’2 ¦Å9(ãŸZj¤¢è•dòÐl`úc¿ÿ^•Œ£$°aü‡Aè=)#¥VbÁBœcwR@'ñªL|¢¿–ß4­$ŒcƒôšÆAp’Ë(;˜ÍóAÏéRÛˬ{`ÁÚÌ0Cvüj2¶òΨ‰Èë’}»}i)]™ÊFŽë"î|dnÛ€F1Ç·ò«Áºß™T×sÇaÿר6‘N F«•BÄd}jmÎe•PHÙP çüÉ­®Ì3jÔ4LΞVÀ«¸ýí£éøÖ²H%»mTذ~¤ûzaØ–7ÊvŒç޼qú÷®Žoæl—~þõ9$ã¿¶jlN¨ÇºÛR fP­ÀQ¹~ƒÌ^>àŽ«$lTáX`ýjé5æáÕwW;€'n=ø¬ Ó—de@ `ätëïZÓÑ™=L©_ª»«I´`czþT‡Vc”àrýsš{Y€^\cÐR E Œ˜“œ×ZÔH@Ò’<ÖpΣ?/éøÓʱ d 8Îx¨‰;;XÉçÛšq|Fq–n§*˜_Rtä°bÎë÷ @瞨«Š%Xo r¥WQæ· ‚3ÏåVU•';QÛÄ:ŠáªÓ:©ìJª«·oîÇWz1ŸL济5d*6º>R{óÜÕ10ÊŒmdïwÍOö‡*Ñ}Ÿ3líükDo`‘¤B…‡˜ÊÇæ ‚GÒ«3(b®9†T^XõïH夋ÎÆÊ¸Œ÷犅Ä.«…ÉÇR>´I"Ûek͸v 7ñøTl’Dç%irŒŸZ@¡äU\#“·¸©ɾ7dts÷Xq¿žœÖJ&2ìÿ|(RHǨ©øíA„9Ús÷}þ´" s»Í s•=ϵ L@A$§8éë×óªkB µ„™Ù™󀣓ôz¾"*ŰýTÈÏ ¤ßí $Ã)ëÐv¤?i,&ª|¼gӟαz3~PbÁØíÆâKðõ9gea˜¤<|¢!ßê{Ò¸ÙæØ ©byè éHÃj†ÜÜ 1 ‚==zæ’w`Ñ&e•ÁCæpwg¦z•šácn~^dfã5 çyPæEDÀ tÈÏ'üô©!ÉRL«°$cwã×µuÓ‚±Ï4EåÁ`ÊIPp¹ùwsøZ£p[xÝ-ÁáqƒÛ®¡QäHˆ_•Úy#ÛÛ?­W•œ–ÞÈ™?(íÔ~•¡lÍ#™v:²äƒ€ÞÃñ¬ªJÌPÊÆÇbÉÄ…@ÀwÇüõíBĈbF^!ˆ$ÿµ*Aæ3þñÛ# œsÐÕ¸„n¬d;w‘ŽKœ žÂ°“º;éÅ‘|£¼ÊŒûHåãùUÌÝʱ’ «/p?Ï: '/·£'׎õd2´Ñ¼ŽÛYC ã¿}«Š¤Έ¤O*¢íò3€ÇuÿŸ…Té$hŽYÚ¹PJ‚@ÛùUÆQ+l6`A [9^ã™ç4Ñm"Û–xb^«¼9ÚN:dwqúÒRi¦ˆ% ±ˆ€i?{ 7žµ ;>`Ìä¡Èq–>ç=ýj"²ˆÌGm ŽÝ‡Ó½)bÑy‚ŸZ…vKW"]¯VfÚç‡cùŠ¢Ž7p6BT•çÛ¿cÏOZˆ®fòUKœ|¡yQÏ?Ž)Ì$VUË)Q ç¯^˜­y4V!_²º! QCl+É\ç üø¡Yܨv1ºŒDŒÇ Ôr;wëQ6G}ó ³79§ÓŠ|by¦v2«, °í,zgž¹íS$L¢HX†©Üç¿$cëžµ$WJé„;Ðc Àö뚈!/·kùÀn ŽG85´dH'+±rHÛéõïJ4ŠF„J|È÷Pô}Æ1ÜV‚ȱ!H÷´œ•9ÁÇ¡=N}k1.cgVñƒžú qV •ÙÄnNJŒI÷=þ•¤®Ž¸«vŸ~²·“3yÀÆDÛŸ„ã»vÉíÏ5éz%ÛÜM¼1JÈb”#›¿\uæ¼a ã'Ìå®üØãüûWS¤ê&ÊC) cŠ1$·›Ó==ó‘\RnL÷p8†‘ô;É‹V™lÉ„Ë*¶A^çë\íÔ­$Ò4h ÝÉ'¥Ze6ËåÂX.NÇŒcYä5ˆmÇ\©¦}kvÎÊî˹ÝB3Žlõ¨£‘ŽÈÄd6s»<ž½)`Ü“€yÁõÿëÒº„“ '|c§aQ(èdݘ>öb¹Êã¨l•úÔI€Èß»mØ\œ}N>•Íö“ó'å95o`fF Ü© áyoÏÞ³JÌ®5 •(\²ýÔ÷¨©g³ò·@¢šAXÔìÀ`Ü¥Z‘{¨">2<ÂÇè*Üú¸è³¼ï,Sï`6rO×úTÖùi#P¼ÓówçŒv´‚2",’*6ÈsœzTFƱZI££'r†phiv@cV~6úsôü)¤n*Ï Þ ËÉ=†zâœPº¸qR0wZ“ZšÙ ¨ÒH¾vü„qž=*3ûõ!²¡³³»~ãHí##,ŒÅ3Øç'N ‘APq»8 Çdçô5i4e&„’|¿Ÿ‡TÁÚ ÈÀìp*¿šâxÉ$’»ˆ<ñΧ­HÆ6‘DÊÊJ»›?µWÛ#L†aƧ8QéÒœ‰Lœ#EY±Æ[$þTæa,|Ìä˜ØOÅF3oˆcn,‡“H¥ä¸—h< $~γQÔ´ÇŸ>(ÊA f+–Ub8»}E3kQ i· ‘“‘ÆO~½* G ¤Ò²ä®ìIÀÿ"§tÂ䉗ž ZA»±²Ï(\Pᔸ$0¥”<“†P»ˆÀŒAÇZpuBÓ98` œ ^½½±QüÎÛ‚àž3×$wõôâ•8«š]Øt„ ÆO[×4⯱Ì_*ocÇ9¨›Í1(C¬G#®­0O$˜Þ­$`ž?¥tJ=;‰#c¹#a…=ºÿžµS$Ëó°;ã¿çV›Í\©‰TyyÆzŸëUÜ2A¹Ý±Ïzd÷ö§™½@1Ü®ÔÁÝ¿æŽ*{yU÷£9dÇð® ?ç½@$hQH ^øù²Oâ¤_5æˆۉJ`õœÙÑI¤[gH“kD°ÊàŸéš‘Ù"D!Y ¹Scê}x?¥VˆàË.å˨åý)ò! š8KF˱”€v‘ØcµsÊÌô)Õ-¹+æHR,"‘¹0>aÛ©éíP¡"DÚc'gÞwãò¤Ý@ ÁÜù|àmÇjxPb‘D‘¼[GÍ»dÿýz\œ¨í…K\[ÜFÒÇ!‡ 9TÁǨ¥>´,ï7+X>¼ŒTà¸rY‰Œ*DÑîã†<úzwÖŠYd FL€áA<1óØÖ{²ÛLto ¾qåBÅØdÓüÿZ…ã á‰p]Œe9îóÛ?ýlRœ,kœmTÅÜŽqÓëÍHÆIZ¤2’`c×ò­cMÜÅTeڵĊ˜B±=Q‚G^jYc‘4ÈØ8•$PI'©ãnlwü)íæJ9dÃAXʽHÇñž¼w§2”Ýdi¢r$ *àŒ`ð­' F:ê8Fb•Ð…ŽXÇ ž6·ùÇJ¬c‚%–4,#wÓüjÂã"9d„‚Á„›X{dzcÒ›ÄhØC¸/î÷žzý0x=ñY¨ÜÛD†º¨—æ’Bpëß’;c=5÷5¶ó";;•[œžrAõçò¥e3]³·Ÿ?6<οO¡høó·t]Îç¡_LóÎk¢ŸºÖ¦.¢#;|¥ó!|žçaëÁö«ÌÑ[䢴œ É ²|À»·^¤àãÞ k€·Ë1«1P¤–ËgêÇ~¼PQ* ®"w8,‡=3€Hôã ­/vsT‘4Ъ¿ï¦‚3°¬y“øg®*¤ê·n[Ì‹qàFÙÛÛ¸Ï>¸©?*ÂÌÓBª$Êô@zŸÃ×ŽÔøÙçQiŠº±ˆ8•,"c°ìWcœLzúS³— J¬HÉZ˜À¯nÎB¶eð¹Ç\“úÖŠ¥Ê°Ø6ò¼”byq†,O>Ù÷†IÖ`NÖ ™!qŸÃ?Z…! äyyŒfàž Z€b<ÖXÛ€€Ðã?NÕ7w5¿ºZߤ5DÜ?xyÁ·n¼ÔÃtWHö;˜öÉF zŽÐgÚ˜øÊ±#Q¹]Iëéž*yƒ‰#LDûˆÜ¹oo§ÒªRæf ÷"á7;ÕTº¡ÜO©Ç9§ ‰RM¬.¸ËɆ'º‚:R“ìD=º*«åŸhY8sŸ»ÖcŒ¤1Gî,~R9íÏ^*=šÐÞ-©WŸå2‡2a•_ ´r2æž e‘Le‚Ÿ1‚ñ’8ç=jlG¸«È…Š]ÏõúT¯ K¸Ž]‡soÉL~?Ò•¨»ØSI’Æác„†2ÈÏ.ER:õzÔn$R³™Ÿ?"«ò·$cùU„óÄ®UÝ_9È>ƒÓŸ­5£‘^"”ØÆIëÐòzƒÐ:WLäšW1æ± Ç¼„XØ¢¡òÈRYÎq’ Æß§·JB»­#d"<“#aHíŸóÍN©§eV’C•#ã¡ê99úT-IY3$€FY¸Àì{cŸÆ±pÈumåQÌ|¦|Æ?tz®:ç¨#¨5LKºIcaæ˵¾ëŽxäwúÕ¹&%|±«Ã’ àñÓÛôªŒìŽà4…ÈS: Æ8Ï5¬¦'¨ÕÜvF¬X˜IgP2:Þýù¨ed'2(!*Øw`Üäò=¸§îQ °-JÛcb0­Ž¨8ÀïQ66&J`®Â¸ êE'7cµ,Í%ÃÊï+ö^6¹èOÇõ÷¨U£}ä0w–XãžÃ֔ˉ™H%VLàHíÇpj ÊÍ n`®áÏ··éXsjJÃÏ™pÅcÆÜ“¹>ÿW”¸s4€™2U £#¨üÅ!gLlZå÷Á?ËòëJëØ%Xö©—i!›‚z~Ôá³ÊÅI{™\™V-ûœ‚GnyÏ"˜ß»@Av…6íàz}MNdfÛŒüÒ~ö 9çÿ×Њ…Ì~`Ì„ªó·# Fß\jêqi +•‰ß#ÆDD©‚yúçúS·yLfXq€óÇon3øT—©X¶FSqÉcÍg1œ$|³LmÏ+χµ:i²¬ˆZè%šEÉáˆÁúûSXÝ—ýke6<ã=OÒ.J£aÈ’2síPÊ6¬‘Æ FÃ’Wîúÿ‘[¥b¸LÂ'd &™…Vó¶ÊrŽHzŒç§ÓÞ•ÚII!Þ£Óºt¨Á 6#Üb“ó.:·ÐUÙL,¨Ë°•8/'ÜãŸj¦ï$rGÏ“Èç¿·µ8;ƒÅÁ¶PÄ€pHÜy9ì:c©ÚÊ„rHNáëP¤r·–àåI8 {íëO $ˆ\áA-ƒ‘Ï¥o’?ir+4Œ œíÛµYRÂrçjímËå¡ÀçÓ®?Z©‡XŸÍÈÇ F}L (ѰQ»œÓÐç½i kCNÝc•¢™Tu@[µ–íb±·l®ðÜ6Þ00z÷ç5”‰ µ$È 0;qߟoNµ.Q#@1$"NúÕmœÒB^Ý,¯,Ë ;c×ÇŠæî GQ) ¯ó0qׯ\Ücn‘4gçb¹;¸Nµ‰µ.z "ì""Lª rO>Þõ0HþÕœ¹î–o˜}{T*›!#teGpOòüêÓyL”òÏ9‘@Á'§Zå’lë§- ãpÛU³å€sÓëHŒÇ™÷AÜ‘UÊ·’ y ^Xãÿ>ô¦IÈbX‚N8sYìmÌXcºwØ»ºí,HïƒØýjÌ÷$Õ¶tàt?™ÿ=è¦2BHS=Ï_¯¯ÒžAØ —X“œàS`ä © hˈ#`O,:úVÚ €ìÊÒøŽzsU„ЉdITòqùR Ø6×^z†ùëP¤+¤®†E,Ãzœç©Ï^)À ¾ 9 ósëÍ1b‚™H-Æy\{VcU_0FQ°~eÛÀôüiŽ2°×ˆŸ+(³•é´’¬=éû¢BÀü®WŒ/CÜzR,òT•GLIíH75ÄhWN=>£µ.FÍMIB´©&ËhÆT’pÞÙõ£r™@†ÅóbÝ+ s†É`}©"e,m 8è?Ÿ½ )årE?»l‡sÀl—¯J˜ä(hÔƒ·±ü*ºÇ½ã>a”dœã$ÏÒœ6oŽ=ä±û„'kU&c!³JûX©ù9ÃíaœçUÀ2)9pvð™8Ïj’MæP[l{W·%sM]Ì¿|oÛ¹€>¿ýjÕIØÉ•ïe‰ŽâÆ#ŒÿJb|²„f ¹ù³‘¸AS$[¤.XDøá˜qñ©Ê„9v%™q…õíZŘNìhpˆ‰+ÈÊAÙ`Oo­]ŠAmrw`›zûâ« ýðÜä ¤0QR„V;T³®2Û†X}=>µ•MM©@´UL«‡,~¤xÁV‘¤wØAÁ'å=:“Ó…$vÏ€¹xË.T0<éR¬Œ ]û[¦psëô®¶Žè@HíÑ-Y‹"¸rÅ]Ô¬‘<#K°ªô{äg¦=úÕ剥Zºª‡ Ün§%´Œ˜ïaËy€+·ä~T4 "”R¹ÜÆ<¯^:þX¨²e[Ry`ŽU—È ÍÐMžsÆsõª²ù¡äI†aŒ8øÇŸz¬Éc†7h$O´6ŒœðOùéô­(‡—´33 ø ¿ÂqÛük*ò®3寿`yÏ Ÿñ©ÄîÖò0*ÃÎÞFO Ž1Ú…©´$tÖlFÙBÌæ¹ßƒÐc Ç÷­¸ÐñÆì¶òˆ €m8ÿ=»Wj]-¢x€˜¹ùp:Ö÷ÚÌÆ)#·‘e Ñùd|ØÔþ°Ïz4™éQ‘¸ÆHá¼ã2ªyj»€m8Ç\:çu Æò#T»³«È$ŽúÓ>Òê~K¤¾î =°y¬F`gGgŽ-Üm# ñèÎk¢“´‘Í‹Ä^61µsݶP\ž‹Ç·åXQ†Éç Í‚MM1šäœ€€ŽY›‘OjÊxÝ.AåˆÀ_›¥zÐ’kCæêÍ6E5ǘîÙT P }½»Õ),GÌryÁê=*iQ…‘X6Gð9ªÒ´‹¸1Dn‹ïO–ì唬0¸mÀ–R9ô>Ô„œ(f.˜çhÈ'Ö˜¸ØA.ûûG󥃮À¥\µ»™hfÀ4ž[Ì2zš±?g Ÿâç# Ç#=ª7ýä‹ÊŸõl8Ï­83»²`¾ ±Qîj[(Ÿ 9XÛ®ÜuÛVÀòàÈXKãç$‘Ú ·Œ(Ü*@'¦z_J›yywD À§sÔÖoshÆå€œ²l /\(ú w8©Aùc·-Ÿ—'4¨¥”‡*å¾d9'‚:S#ˆ4à°Oº9>DZ“)D³Ÿ'xÜRØÜ#½LDœ0̃¨Ï|ôüê°r‹ÌÅqµQ£ãð§,›ÝÜ ‚ðFJÿõªcsD®)8¶' $PÙÜÇ×9éPˆÚK„_—!AÂ÷¦ÄÌÅ8cÏáè1A–išH‘>\ ÆQZ(šXypÒ¢PÚ@ÎÖÊÊË$N¨HVcŠ‹ÉÎÊÙ ³9fÆsÏ@zõúT98eÿHÃ6àCÛžÜÕI+³nä¡(•”2‚€«ª|¤·lúvúÕ5Ú·;yr:ŽH>•dÜ?v#n;c¯·j„ÃAÇ=±ô9¬¹X)6Ñ#Æ¢ü»Šôæ§w É8 ¹\«ûn–ÞÀãŽ×ߊl¬ ¯˜Ë"¸ÚQŽþU|¶0€F¥ev,°VÆADZ5*©e*d`˜lcøGn½x¨]ˆ‘¢Ÿ++6ÓŸsÓñ§dÌÍ•EC•CœÑËsH´”Y¤krdÚÙ#};÷äT.¬óŽ|Â:±ã>ùü*@rSw™y_AÏ9¥þ²ÕsólG'ü}ÅJ™ºi͇-ºIV<íèGlcµ;n ¨®6ñü]° ÿ ‘ÒGŒaŒa•0 ßÞªJŠÓ¬ÈqásŸÎµ0”ÅBcóbC#œŽ™Î8¨“z6vªìãçŠT`&fQ•âÙ´®Gnyê:Õ|cPòÉÁ#’8ÛÞ©E²}¥‡<“; •`8] ¿íTÌî—ƒ3èIËõÍSh™fK3¯÷Ž/þµNd G!Ú#ãÌq÷±è(tËŒîË‘¹šœîÜ9ÝÔœñš•U|é7ìdÉ"2zœc;};Õuc'Þuß"•VÁð0;P¡Ì¬á $62õ£Ù¥©× …”oô–ÎpP+sóz‘Ÿ­Mþ©òÏ£?0áyÀôïTá”  Œ çåëŸCéW£uw+*—%7 'nyíëÇù⹪+ž•) ;’$UýÛ%‘cÁú÷÷©•÷£ËÝaóQµ‰ ûö©wL…•s‚ ŸNƒð¦ cÅ …ä“°§vÖƒ¸éÁ÷§I<Žd™äÞOÌÇ>Ýý>µ£ÐIˆžc0 (•e;ˆûÌOó§Énà.$hÞ¬rÊ=IzT í1Å) ¤«¡>‡Óÿ¯ëMŽè±6Ç#¨ ’íÏ'ÛµO72/вý™Ö$,¹Þdv%J gŒg·ëJÒ¡€¸CŽFÃ’ ÎAíéô5)ƒ7Ed&gm…ø ¯àpGëT¦DHK<ž[²êNx?ç­eÌâôރä™o!<–$Ç»‡ çœzÑpU¥"bå nUûÙÆxéø÷Í7ˆ!XÔHÛÇ*[Gãž•W-åG”Œpƒ?)qôã§½is’L~ z¼¢O3Ì‘2Ã=:»ÐgØqNpê¯)/åD‰”ÀôðG¦3»p¸I`0ç½»ñVæ7ÂèäÜ>B™g?0ÝŒ.sÛ§éÛÙ6ôF1ZÖ!æÊbP;ÝÔzõ^‡9ïH ²8,å©NÎãwÀ5kû• ˆ€UQ~PAèÙç8ç'­ȰÇ<µ|È‘¾{jäï (Ù\Ì]‘ù‘Oóï$ä`‘ƒ×·H¡W»nç”ÆÓïšdeš#Ú~P72¦Aö÷õ͇ƒ-‚W±9ÆzŠÃcɧ+î!l²¸‰w°xüêÂÆé¾MÛÀÀ`}? ®d«‡`€á†xç8ÁíS!V¶vã%³Æ Ò”l"á# ¡Ø)ùØuÀíì(,²³ªó!\þðò3Å*ŽÑ>&¸`>ð¯áS–]äPT®ÕåçÔþ}½+šORºáfŽT”&tÇÃdO½¤bï–p>db9Ç=¿@#*VN<0ÏcÇëN.Яevòqêi¦MÅž3 e O  ûsN"ãFGÙ€@è{gšFªä>ÒAfÇ#Ÿo××53«yŒ ¯$—"µNåK@@טw’HÞ#-9çÓŸ¡¥G‘™v ÜýìGÈÔŠ®âHG˜ª‘ hÓׯZ¹½’,•¨Æg§Š™h…D Ñ[‰ŽYɆŽà0ç¿áO]ÞH€3yKAîF{ÕrUœ,h¨BüÄþCúÕˆÐyÁ€)•<¯Ê uÅEH”Oåݸ¡¯øö§4¤ÎÛHnÁãrA5T¡2æ5ÜP`Ë´äu뚘:a£M†ByÃå1îjV¤Ä|rB³ˆ¤*ªü¾õ<~#éÇj™J:«©Sò‘–|óÔžŸ§9ÍSmë”qƒ“‚1õê?Î*ì¬ãË’ïHÀïÀéÅ&ìh(Iš'û¢22UŽÖ\wϦ*m¡^<,Œ£¬ÙßߟlwÍ3´+…•x^¹8zÔ„+^£4žC+|Í»8 ž:Œ}=ê¡5q¤K &Ö›å!w4€ŽrE=^Ib6í"‚Jï©àvÉoB}ê³D#úmws†Áê93Ç^žªÔÈ }²E n(ÙÃáÈê>™ÍMUÌ4‰a“r%pù}0GO­=á",d’*›ÇJ…aRíƒ#pWç‡ëš´Ö’:1”ØtÀË}ø×:‹F‰„iÝym( žväp{y¦*#"(Ñ‚€Hp¡ñÔúwë׋ï&•¤eŒ`Æ3Óÿ­õ«AÂŽŠPªS"d Ž¿‡áŠÝFè[–wDÊêË`ÿs*ùî9c×®i°FÑ™2<ç+…ù‡ùì*8Ñ$Sä»9À*HÎqLŸAVpþxRgŠ0áÜìì è@8ö¢6¸ÞƒÖ8~јevu\f#´wÁçxëW“ËšôËåÃçÐä1§¡¦ÃUà‘AýáwÚFp:ô'š²UUYBºÊc' ’HÇ=¾˜=ª›b‰%2L’•P‘ž3¼€@ôèEUiw•Y~æÐF;ŽüúÕµ‰þÒÛ–9`·˜Ýã¯R:Sü±o†Tœî}ÙÆ{îtíŠÉÈ¬Š‘Ï2Nñ²¯šÄí p9#éþ²Î’FwnÜàö=rNç÷¤—O3|lˆÂãïOÔp* ­²5]øØB‚¹Ú9ÆÏåëJmèdÙaF,ÂwQò.üg8ƒŸ¯çSK8y-¬Ñà¥@ÇnGÓ?•gH Êèe‰Â ;ž<á±ëÛÜSVID¡+’¬>\rIZwv \Ðhգǖ›ŠçåûÇÏúU$¶8efàÌw¨ô©™®&nFÅBôÆ Ó"žXÂùrG#'È1¼ðqÉõéQÛWF5%ad÷‰ È©Ì2m;xŒ{ÿfHdÌÉ)`@Ãlè~„zã5¸ª‘]çaòƒ—dÜsÓÓ¹ÏöªR¼mi+BÅXÉ媲àqÐúà 붆1™“ä\I2ÊÑ¢ ;ß*çLÔ’)•d »‚– ÙÝ“Èõ© Ž4ÝŽRQ&`Y[%ùeoïcML¶òý¿|‘…Žw!ôÇ·ãÚ {dGµ¤Û|äžã?Ó)$ÁR¸ß2)fgˆ?œN¸;G çó¨˜y‘-‘s!ËE Æzuü M*§ÙŽÕ²û‡r{Õy ße‘CÇ®ÂLñÉÇ?\×C‘N6+Kܳ¯ ò¢®qÏr{ÕuW’åÃà'SîúqOt/6ã†@¤|Ç·éUÁ‰#ubrƒ0Üûg¦*¢ÕŒï¨ÄdŒ†u‚(ÊœU/™ß ¬#ÜNOZq ‘½yTÀ;ð =EV+n÷1ú¯Oþ¶x¬UÊv±`²´GÞ_Ç?…P“/¶O2'cÃ)9àp*gãhMŠCppAÛéïL,eEÚ1Œà.{õîjÞ‡3Ü.Åc\¿xç‚}jÔH¨nN2@Pj§’ÁREuù;súu­RѰR\ñ´ý~½?•dêibâ¬Ë)ø‹ 6yé=3S!dGŒ.0À|Þ¹¨†ô¼GšÌÝÎ;U³œ«°ç¡9éè+’¢¹Û E¹×!÷aÛ€9 ã§åULg͡Ÿâ^9õÇÿª¬˜]¤Ü\!Û·ålúã¥5‰ {X> :.:çëþ*J%r‘mvµ—8|\±Ÿæû³…€#ï2.r=sëRbbØ +³ƒœc¯ò¨Ì`ÃÈ4.Á"©U+#TBÏä»1#‰ÀúP"rѲ•tCƒƒ‘ëzQótIY zt'ðíR PlòÀ;$*$Ôzš¾a¥¡z+ˆ©ÝU‰ G ‘Χùâ™éþb¡9ùp:ûóU³—€ìe8$¸½†*À˜}ƒÌ]¡™p7ƒ—ÞÝiªˆç¨ˆ%21r@Q³¹ÏéÛ¥gÈä²o•FGÊpNßj»¡Sälí Ôæ³ç!n@f^Þ“·ÛÓ>µÓNg<’ Ü„™$aæ’¸ÈëPȱí2na…èAÜN•HLR"³)qÇáLu&rÛN6îP ñŠ×–è‚<mª¸änÈ9>˜«q/.ÌXàpç?áQ»Iv 2K`¯| ’(˜!%\¶å#ëÇJ–ÊJ켤/”ìçp<(N~¼SØ®×ڪȸÀ`sŸ§ÒªùlŒHr­ÓžOà*ÂÌ ²Ç*¡ÇÉÁééXÜÙDpŸÊ¶’'ýÚ¹nî݇õ§¼v©U 3ýÖ,a@ôÍZ AP)?20l÷Àê+©´Œ[¹Ÿç`Æo8I÷ƒqŽƒõïS23mwVEl’1H÷©þË !G̰}‰§F]–wWQ…Èç¦?­a9ÊD±\ˆÀ†Á=?ÏZ¬~ÎeXuÛ’¤«Ž™ÏLsÒ³móÑE-B켯?ž{Õ9c’X¤ » .·^jy(•?vEÈÞÝH<õü*äQ »®€«Ôz\×TdÜlKcâf*Ì2¬0C“Žx<ŠpV7XŒ‚þYŒc#åŒdñŽi]š;™Y~uÂðëŒóšÍÚF7 Tƒž“Çãž}k0„Ä@¾Y+)MÃæs÷ÿY@bÛ61 ç9çÿ]+\b"1ûÂùs†Æy柙۽r¡NÕqÀ'Øw­®¬9ˆå*dù“¿€§úúªeþ̦@¯äúpšc.% ¨X}Õ9'ßÚ¢„?–üK$a¹bÇøÖw°Ešð\Ò-±¼xÏïöèsÇ>™æ§Iósµ‘Á=XîÁÿ#šÆ29€eÚFs´ {tö¦Ë,‚=„”*7.XóÐþ Õ§r[RK,$¬…"uØë¹r=¹Á?Zçn®Za˜ÀëÛ¶~ž”Ùg”LA™ÈÛ¸/#¿ÿª©Í(1ÛêIÚ9ç±Ç§µtS¥sеk‘O(}ªX.2IÇÞ¿ZÍ.Þvõܧ’FþÝ? šm²:8 Èæ<ûj¬ÛÚ2ýëddõC Näc ð‡8ϵ qþ¨tÝò°þ~žÔè •¥S÷—o@ÊŒÄT21ØqÈ+œšÊ¦¢±2àÈä°Á)aHùIÎç ÷IäSv'Úˆ#'$vÇ×Þ¬ Û€Wû„(`3Å`ÓC‹Ô±Þ«µ@láºã¡5oÎì§ÊœûšE…¤Y WåãŸR:ð)¸EEÌOóô!±ÛÖ°›g\…¥$HŒ¤*‚z“SùŸ»b¤Lç-ïÏÓך§!+Åc°/#pïŒÔD²ÈP–(Ê7¯Ö²Q¸î]Ç*1Jvd†þûŽ´Årì]‚ç8dVÂôì?Ö´°Q ýÛ Ù ‚=ª ŽdeÛû IP‹ƒSîiíÔÖ,\¿vV, ¡gó¨Þ=ð!VÞÄ…(AÊðâ¥V"4;°?uÆC{To–f«`ñóIî>•pZ•ÄM$.D,Fý¥ÜaF}y=þ•]˜îÚÅ,“ïëR:É’A;€ `vÿ¬®™L.FÝß1ÇãV¬e$K$¯åÄ|Œçyɨ”Ë@( ‚02rz~ýªC½aXM¿ Æ@ÿžµ±¡ ‹()‘¹G@}¥i¢1{ŒL32“å¯AýjvHw/úÀ0p:gÒ˜bo1VWŒ|…0ã¦Ozb Îï/;G'×Û>´+\L~ö‡úÂàÏã#4 yãb2¬§ ¾ßýsQ„‚ᄪN=9ÆöÅG¹Å¸ Øid‘œã¨ó¥'¨Ó.»ïˆäW8}§Ÿ|šxNwI KÔ¾îŒ?õSÊ ì»™ùA<ð3Ðb›ædª O3£g8Ç~•I+äËQG$LÅŒg‘8SŒ€~ZŠu(ZHŠ1 ‚20O^j5p³#s¨pj2Åæfiqà0äöÇzÎÚ…Æy¿éû›,€×üæ”í;Ú„ðpCcŸÏ8¦#ÜÜÈÙù±‚¾Ô…Ày|±PGÌÃp'Œý@ôã­mc2D”FWøÀsÃN‡éMÆÛ’vn v<6}³Qo6/•8;‰ëíÛ>ÆH#ùwÈTŽœN½*¬\$8:³x߃•ǾjÌDm•‘`£$¯÷» çâ¨ð µIÏÌäþªÔ`³«móƒíÎ1S7dwRe–.ÛaPœƒµÞ?ó©Ýk)Žd* Ë/8Æ{RWØHE Œ¿®\çÚ¬#3ýL§i?79Æ9<çÌvÂ¥‰—ÍŠ‘ÊìsÈÏ^ØýjSµ¤ŽWê”.F?‹ŒýV>_žÁLg¾Íß.}3õíNPdY\ý¡ÜŒ¹ =¿ÉíRå©ÛNw&@`±eS ”¡ÄÜœœuÎ:ý9§5”Ëä¦×1ä0ÎìtÈ#§¦i«LÀlòƒ’Ä”àtõÀÇZ ©FD$, ëž{äŸóÒ‹&i«"—É–9Hbê»Oj‚x銙 ;2«Ç½Shã'ÓÛ?ãD¢&¶Œ° Ç9EþON})ä0ó§ž/4ffŒî#‚>¸õ XÕ!¡ÀU‹ä<R@Žsýiþl’Çh “æˆó‚O=x úÔjè"˜1a]ÅýzgùñLWrƱü­¸d÷õ^œTÊE5 ’¼ª¾QpK…ÆT.qúzéIå™ Ë° %F\úþ¢PTÊc’ȼaë´÷ô?&vZ:™«r Pà`ô<]]Ž QŒî-ûÀ2WcY©ëý*9aXJ}‘—ØÎ~a“×§ÏçNäHÜ•`ùnÆ?Æ¥‹h¶X¤hö°,$'¦GNœgéVä5¨0,Ò²#©ùBœä€©¨î&u‡É10¾ôÚ~ñÎ>¼~öƒý‰8BpÎ#æÀ=3’: G›F1ˆÊ.ÆÁá¸Ïžýh¦õ¸KTRI…‹Âã€98ÁÇ$f„s˜’)4cq*MD¢þT½ÈÁÎHÁÏÿ®œ¦1(mÃp$Š2rÿZF¯¡àSVÙó7–vaØÈ#LÔ?êÜFÛ·cûØ'Ö¥Vk¹1WŒð£Ÿ×éJYÄ“ŒI%¶€Ðã°ÀÏ‹6æb;&í’€pÃr=ªVŽbºDI6³=:~g­E°²0!WçsÚ¦ä˳k4`§#$œg¿Ö³h ‘â¸Pã!N§Wˆ1rıûûñ±N§~¿kL°6XßÃ×ðéM"Gˆ¿ÜB8;úûŸ¯µJåCòÇ’8ÉÇá뚆!Ì<ÀB…;pûvþSU{¡EØ—zÍ0DÜîW!XcþÕcígƒ`ÜóÖ,»™ö"°\#ŸÓ¯ëRÁž9H7Hñ¨1žÞ™Î}+«›¤*²¨2íp³œzŠ™ƒ}¡K§øˆäàpOj‰t‘iYJóÙÇ©ã¥NUåYÛ÷²•—å,¿yqÔã¿1MDv$&!å¹Vo—!ùäžù9üqQ®ØìíÖ5)+0Þ p§9ãÜ~´èüÜ£DY%;û£¿‰«a˃ `3ó0N¤OzjVMŒ{^Ø]ù‚NH$_ñ« ¦%i)à¦sÚ’ Ò²»Fëtí^:g¸ÅNÐÒÊÇœÿ:m9X´¬…Ž=å#ß(ÝœsÇ?[T&bJÎC>€ôàçŽ?¡Q Ãæ¢b»K?ŸSƵ­`O´Æó©€UŒ™ 2:þûŠOÝB™ò¢,·n§©=phÃ# róBqÆÜqÈ=¸Ï¥KnŒ³tAÚ—„8ôÇ=ó[ÛÉ#Ä…‰_¾Ñÿ®1ÏQëÍgORdÊ‚ÖËq1„D¡Q†7¶y#ÓÕc·Îy„‘/ä(äó‘Œàò:þ•«¶$òÈi›È@|eQé‘Ö²ÞúIîv((Êdv?_çùÖÑWv‘Ž$U\¸ëRJSɸ\ùqgˆ±ÉÏ¿·Ö²å¼‘”¥©A·íH_ÌU…LgƒÈÁMS¸îeT#“*d'i|uÏן§¿"¢¬i…Â7¨ÿõÔV±®ùÛWïo#vô^Üq]-Fâè4ÀààÅ3ÎÑïÚ0Û³ŒpO„‰˜ª¼*W3£ÛœóÎxö«Mi2Æ·7qœudœ`uçùwCúWM£c¬I4oòFPÆ$pU3y?ýz¢ÁšíÙ亯˴¸q×=? ¶. ÈMä«’ þ•žbùV)*q.ÜÇcü«•¥szDóI€mìZ1"îC0™­^vŒÆç«Î:qê0{R¡ûĶUS!2F9àñéíT¥™î‡È^Iÿúê}ŸSWd6%Ý9iÄÅ ã©\úÝV,²Fë*bP~FOlúæ¦ð ÈÓ7W¿ažô(‰ZF3lxÁR}qÞ­+™IèQybIe@Æá“Ó¨ÿ¤ÓȲ;dªíܧ f­Ì@(¦y$/,x?—zÉ”“p’6âŠÜ+/ ==«¦00oPf-:³Ð. >ôÁ4e⌞2b”}ÐÀ²z7§ÒªU™üÅ…ÁùpGÿ\Öê6%È·,Ûe*$õãŽEFå€ vã<¹¦”\¸9UÏP_zdîòeÀ\üÙãÞ¥¡\’5Äœ3ãÐ>•¦¡ ˆVBÒŽ¤àäÿv³O.]ä äËgëVÒVT]ã–dcþƹªÀÖ,³m<~þ`ت…pz’OùàÕ¤Îe£°*zc¯ÔÔ5¿”ØùÎrŒgŒc?Ò¬B%Ï)’Œ¼lu®c®BF‡‘è+¸‚ v9³ž¿•#à·,2I'׌Q,›[s©yÉù›i*3ÛÞ¥…ѦFÁS·`€=ë E³E¸»¤{|)“ò’ø''ÿÕNi¶(w“ܲä©õ§Jñ1Œ¨Nà°wwçßÞ¡•ä%ËÞ8#æïUµ¹«Hdqî¹Ú¤*° óŸò?­?Í ˜-€[œ&03Ï×ð¥ØÂ$ß½‚ üŸ§ò¨v‡u‹hF#, uü*“l†Ðç;å-„H±…ÁüºT.ÓQ]ËFpqÿê©§WrFÅ GCé‘Y¤ÈJîÜ ÿŽ1ùó[FÙËQ"M×äP@B€ðAPsÇ=sý+&áYåà0sŽœû欼À@UZFˆ'¾‚ªHÅÕ6 )’sÇõ®èEXâ•Å@ÊX¼iÈã#ƒíÇzfô*@Œ®@þf™r¼oHÈÏÌy?ASykäïÈd#…cž=+kÙ °ó‘¸mÁPÔ±8ß³æ ë’ª½øS‚©Ê¢•B2F9÷?άD6ÜX"ò©RI«–¡½5©:*4Lä¶wnȃJV&NX¸ŒçóòUg,Tmàì)·¡ËƒÊÄpqʃYsXéåЉ (uŽ<“Œã?áR¡edgÌ`…ã‚iå^P?verIL ¾¢™¿Ë‘‹FsÞõé“ÜÔÎwBq$c檙÷'óïUßiÞÁd Ž˜Á•ÌŒ %¢\üÝϵ;æ 7•,cðü+L=® ¼rFÙºm=Nsü¨óA·’øÆ_Jafi6bPç•$töã·iJ’€0ì1ÎJÖ¥ˆ±\QÁŽ=íÆyÈ«HƒÌÛ±¤9êyõªü*6÷Á#åìO·=èS eQ¿Í 0ÇÓ?αqEô-­Âcä¸`>¾Õa»FB¬ÉüóÍg¡#nc' þryü·Ø°‘ü9gëý?Vij"ôªï|ã9”déÏëTÝ€F°Ñƒ´' g“žçš0²Ìd dùe'½À÷éÒ”!@±ÉàƒÃcÿ®kE˜° Iå23*c¯>ùÿëSØ™Ä ªG^¼ú})¯?— 1‹·Œd{sLY9Z4yÀqþ¥.K È#]—j­ e”œxzÕZà¥;Êe:8T]‘ÈÁHÃdû“œT©n+*¶ª…ïè %¤q8‘ÝØda™Ï9ìOµkÙÛÆí»÷­±00Ç NÕ2—ºËŒnÊ© Œ—CûÖù•ÿ‹>æ­Úù‚*hvØwcœò:dzûš{BÈÈ@Rãp8Î?ÏJ± †#—¿ÃÛƒÇÓ•̪+êu–ƒãf,>C‡]­´ewg=½SéR¢ÆYË#õÍXI/cu:“†=\w­Xmt®U‹þ/¹ôîk:³ÓCª±Œ–R9H–90p2Ã@?J±s¥´[œ¨ûñ|Û²öuǵmF¦<3D¯’¡I~™<“ê@«o+^Ú4’G·kaBžF:g“ÿׯ>U,uB œlÖÿ9wn9z÷"«Km¹pÐí;2UXçCÚºKˆ#G_( ;Ø êG¯— ݦ«³®ÖbH;±šÖ•[ÆåJ9yí¼‰PˆË;öUóÇJˆ绘XÉãƒ*èÞ64)7˜€œà ôǧ9æ³dµ’7Y ”ƨ¸ù¸Æ8Ï_çÞ©JìÅÀÌÚ]‘£™ÁÇ®=½¹ªÒ€:¡–Nw’7)Ïn:±uªÚF ’c,Üö¨”;§bƒÓ㯼42œÂÊbÜCcq—8>ÞÔFͺ7$ãaßBÏØgúÔíåù$…RU»ÿ/zamÅw*ÆÛËŒ(¦}ëNk“à)(ç;IM¼‚{ >VtFY(-# 1Ï'·J±i2^¦âŠÀmmí×=ÈöõË´t™¿À wúú`ÿ…>dŠ{¼ñªÛ ¨aÉwÛñ÷ìjd“:dH’s€:{f£Q¾#˜Œg€['ÕbÅT˜[ €3“þ5¬âš0ç±q®T"‰h_¸G^ V–:|‡hö6 ÿõÓdaæ˜äó$O, „9_®?*¢Z8å2«à°z~_Öª”ÌjUЊWvÊ0 ŽIl·Ýà*±rdÎíªOF =0sO‘Ô,¬¯s†9üÏjˆ¾÷}ü®Î)ëëŸOZ §©–1ŒŒ€l;qÓ¶sUä™ö>ÕR0N{Ò©,ê0…O%è~¸¨Ã¢·ØCprH…uGS6ÊîŤÄÌ Q€Tã¯_LÓP²’Ì¡Ðõf=}1ÁÅHÎÒ) xã~îK÷5( !e;²8 ÅÊĉ.È6ÈHÎc”5Çœ¶|ØÇJªA|€¾¦s‘éHš]ÞY g õ¬ç¹JWDÈcu•‡Ýã÷yÇ¿ÿ^®F|ß3 *Ob=êL0'ïIŒ’yúcëVYÙUFsr1“Þ³¹p‰*¨[|«a±Œ+u>¾¦žŽ…3g„c×ëMX¢Œ$j›óô4±Â@yˆer1Æq‘ü«9XèJÆDKÙÆÐz?8Ïó§»o“Ë`ꈻ0IÁÅ)TŽH¤]®#RHÝ’§èzóøT.³5ȯ6×G·j˜¡;’NÑÄ@\+pžŸJ‘$apá¤c&9 äzqL“æMò7—,g'+Æ=ûc½8Yœ/–Ò9ãØü3D¢ƒ™ŒÁ\°Û#xe?ˆô¡wWŒyjü¯“žý)¤È»2€§!ˆàœôö§<ç+JìÓ7ÎFA2QúQ’1Ê«tñ€S`éŽOøÓL›GR¯žÄdÆœ²ƒ# Í üh+K2>xäÕ;X\À%ù#Ý*1ÇËÎ@×Ö¡…‰•yÜd±ÆN:Šy-$‘å `¿ÔóëL32á”eà~½ÇµO>¤nÄ “ò… %ù±Áöüiò– ×)PÆ~òœàããõªÿ1Ve€FÀ);$ç'½êr].ZDa”òæ ßSMÜ®…c¹áŒ¬A\ár8''¡ 2$Æ&eŽ@¿tà6iÊÃí<ž¹Pþ¾”ÖR7³0`œcœœw=9úÕ¸‰ÈóÝÀÁÜqý)S uòÑV6äóÏ ÇO­C(1N£÷L„`³ƒ€>¹§.ÁîæEÚß2³`Ö‰hEƳ`ˆŽA2¿75Ü1Þ¬3¸*ã?ÔY7}¡Î É`$MF÷À<†aÈQZ“&ÉdØ/‡å$ç?§ ŽTĤà!'ŽsíšHݰà ä°._;=Ͻ) ’ò0ag+×õþU¦ˆ”îèXDYF–«ÀÇ8#Òœ“áyÛÈ ŒîýoJ‰[l,7|ª:/9ǯ¯ÖžÌ¾y.vo¢ý}ªw);Û‰AÉ+^}NIëVù™ùqŽËõ¨‡˜T°W,ÁüÓÄŽ¨y+àeãqô¦þèùi)ù>§éQy¡b!XÈÇ‚»rªè?Î*ÒÐ¥"iT»ÊBôÏ5‚$-,Ÿë‚‘Bžç×z~×|•“ä|”ÀŠ®’ŽI•2íœÇ·®z}+9²ít1ZIeòÒ&gf K/sÇùþ”òHI«°!äpGLþ5Èà*ÆAØÆ::ž•#ÒyÐÄÊį˜O?/$ ~½j¡¦§U©!Ixi[™Ûå¯Èð’3øšk8 ¦GbKa•pn9üI– F× 8‘®÷@Ç1àü¬ <œUu{«¹–1Í&T¯–ÁìIãü+d®b=ËRêêI.:cðéR¢’ù}ʧ„]›˜ÿ‡?¥9™#K+…'Àvª¥cfOšXǘ0zn<Ÿn:¾K"dìŠS6åÊå“2†‘Ï\õâŸ#Æ÷Nîdór©éëƒS^ì1fw^6öÏàj'<ÍìXŒ…î3Ë5Ï}u<”´#-•Ìp¢®Ð6gœúý~”ð¬ÌŽI]É”ZD…¬dÞ*ŒcŽßz› ñ3HæLsÐôç×Ú†îh¢9@hº†r\(@íšM›×÷1ÊxêTØ8üM?q.Ù]ªAÜwt9Æ1·–yYQárãdw5*ä½ÉÀ'i˜Š]{šh,Ã;)PIïHÎØØ­òîÈÚ˜ÇnÔ’1Dl/o]£ï àšµHi‹Ý(¡ºcÒ­p«µ©`˜Áü@ÅDH0€»Â¹Þ£¶É¥ Í#«ÊŒ |Êxõ÷ïXÍ4ÁÙ‹–”ÈцA’Ü ýzöÈõæœßÞ Ç|aJ3Áê?Dè‹ç4@¨?w{Š`2oýØËçqlÀdgô­! ì^+adÌŒ xû¼ýzS^m·¼ª#|ÅòÇõ òš‘#abÁrÔϵ"ºL§Ë,ˆ¤du~z}}è›L#®„#1Äá™L$eKyϧøTûædf5•P÷8þté¾Ó ª6Îr>èëzwï$‘w>7Fsޤÿ‘ô5Œ´6Q ×1Â¥DCBrÐúQ"팦ޜ'çÛÒ¤%ɓˊ2WæUÉ íÖ¦IF™Äp¬¤Îy œg§N+fÙw¡™$„dFî ò? ™Kp‘ò©pÅŽ7äŸJj¨I×çI‚qè3Àÿ"§YŠ¡‘­àÞTà;r ö>Õ¢½†•É´ $ŠPtfÄ¿8oþµHÐù¶Á¢V7r¾2?§ÖŸqÎFÜê¿"¶we,“œút¥†?³£ ó/‚x=AõÕ2wV4I-Ib̆$w'v2œã‘“ùV‰X#Œ2¡Ã”f qOLþ8¦Cm+Éæ‡•Æ6€ •Ø£<L~ƒÞ®[,s]Ëq,(-r®Ãq•9>ãßšÔPnÊëi*¹Šdˆ#0Ãð§=~•ÓÚZ'pŠv–U™Ðm Žç¡>Ÿ¥%®$b+ÑÈža Tàdàwâº3#FÌYwÈP…2 Ï8È>ÜcëÞ´çRW+;UxùaU݂ܩ‘ÏNGZÓ”KX÷Äe˜ó‘ßúþ5\²È‘ùr?!‡¨'¿Oç}p±‹x"†_-†eÛ!œc€Έ$‰”nŒ=NÉ Ê‡÷èÖ*ÁÀ8àuëÉõª6º_ÚÆ [bdrÙÆaŽsøÖ›q$Ž|¶á¢%yõéߎçéU® H¥µ‡t1F’HÎ2úqYN«Œ´0µŒÛ©¡Q[$µCn'¿©íùU‹yCyù¿uä Ù8P’áIf•H8ÇþÍíTæŠòÝDnñ©™â8?&29Æ{ÿ:ÒŽªæsE¹àß(.@¶ò¹r*·*è€1œj¬·–¶ÖlÓ[¬Ò‘ì2o çÛÇùU %ŒyhÌw8äÆ2^~½ê!EF6í97pYFqÏ¥%s™9"yîZC ’Ë0 @¤³ž9ô¬Ï7V>¬Š?•rëúÕÛ{V‹ $‰.à¸s‘‘¤~¡!BˆÒI!ŸÂOκÚÑ“Ïqç1й$–8ÀŽ1ïš¡$ù|$ˆ˜ÈÉö«s”–XƒFІ@Ä"g*;ãŒúÕ?.T>cÆd!rv& ~|Qa4Ù#JæÁ]|¹TðU˜~ìðüqQ\Â9#<¥è§;Îr1P2F$24·ï‹Ð}=úTÞr§rÇ€U†ärsŒúqùSæE¸è¼äTEZàüø™ðÉO¨ã "ï ÞV󟕲sßÞ›ä`*BÀÎ0?zɧs5+2Ô<ŠæL¾  횣 #$ªë€[#ž?Ö¯™bGG$Lß ÆxÇ{òH"£oI$2FÂ݀ؤ;úV—ЮsÙ<çTp8Ž€ãµRÊU›zªP™Èÿ=ëZuÿJ;KbE,7gõãVk'•$¹³F2xÿëÓM ”®ŠeÀ.¡@?x—ûÇ?¥@ÈÊ7†bHÈ ÇéúÓ¦\J¸/‘Éz¹æ«–v™þQ†þÑJG<†80¶ÐÉž¸a‘“úSŒ²±ˆžxúÓ˜·˜¸ù{°-éO,ÍFV#ïŽp{ût»wfC`aö•fä^sëN%ö+3üá·×$÷4.†å‘Ö%áƒýÒN1QÇ•‹¢Î1!<õéß5-$†C]Wun¡ØÏéW"0íV,@À|žâ ð®ˆë·9'ãÞ®[DÑۼʨ © ²ç=1ŠÂ¥š6‚dé ¾O1£Q c5z1.I_40pû@ÿõUu'¨ d sïO‘„RæmÜQé\-4ÎȧbA*K& Ÿºxþñ>”øÖ3pT3a—+Ó$ã8ÏÿªDï¤dcæÏ*;~jh¦‘€™2 ê29#œg¤bi²¼Miå°eòÎrH&§H¢"»²°òñÆ:ä·­$‘˜ä_)VM½ ~™ô}éþVØØme ¹r>`¤ñÁ5£E¶VÚæI"‘v†È#Ò‘Ä e¥L.0U¹<àà•åŽ)„y~Sÿtÿ:®D•×~c…û¾¢¡AÛ"uiwáŸÉQüM´79ät'½A$¬A‡—‘ò/ÛëS j 6ån@$àúÕk†2#DiÊ: s]4ôG=FUl´ŸuIÇ÷°AúUwSö”ˆòzž*šM‚Ý8\qž¿Ò¢”ìcÃ!Á œÃÒµ†¬ç‘qºoÛ÷ýiŠ:¢•¸lƒoJå•™ãÛÄeNïÃ=©Tnu+lŸ™±š©+±ÂXðÌØ˜0ãièÕp+Éà&FЇ ŸÆ³‚Ê/—…SÓw@;çÿ­ZÑ«ù€”mãþ•ƒØÞ‘ EtT|O”6IÀô©b\¹Gec;þaííR#yq«‚WæcÉüéÛ”ÛFÅvÊ ëŒc\×<îw­†£3»›îz‘ÿê¦Ê‘oqeQÀPüþtægi˜QÉ9öõ¨¥*êJˆÆ§áX=Æã¡*ŒÛPÊu4opÃb`.Xÿ>ÜŠ˜*›tëFîZˆm‡˜oVlÿoÖ¶ƒÐç{ˆ¼¤>zgçó5,qzÿëUŒ²Úäùº)¯"¤;‚»»/<ç?JÒ¸™X#¼ˆv&s›š w”»n@@ÚOü*%ÂÜ‚™½Z®»–B½ß®+i-‰\üÒ'r¨# 3è{U_1ÙÈ;r[×¹æ§ ¶=ó´‘œzT*1©ee#?/AYEjZ&ó •TX‰Û€O¿§ùïS”VØK—# $ã­C•kw@1†ØH ?Û­Mqи=ŽücÛÿÕW°ùF΄N‰ó®r©^¾¼ûÖ¥½œ¨1±aOj¨F—ɸ žõ¸w¦•µƒìÀÜyÝžÄñS¹/AñXý–}È…—%U²3Ï?Z‚ò[ÛÙ"óœì,q·ŽÝîe‘”ùŸ7œcWÒ,\,„««/ÿÖk–qÔˆ¬íÏîJº´§;çñ“ŽýU± ›¥.DX$,Èßy³‚1ÔðEW†6@e!Põç×ÛœVå¬Ò‘qźÆßqí NßäÓ•‹¦®:×IYdV>X”7ÞaòŽy÷­Ií-ãš)nðØÎ3OÖ„‘„²ø 7ÜÀžØ©-TO+;y¾Bd*¸ÛƒŒñÓœ~uåâ¥È“G}±[F²Bñì.ÌÁð‡žxç=©}»{¶Ò›vä‘Ôñë;Ö¬¢ óL|¥TÜA“†ïÀíÇòæ®Ámþ›©Ë…¾ñ< Î@?Ҽljo©éS¢Ù‘žÅ|È”¬K޼œqž:õ?†*̶²ª– ùÀÛ9ý:ûWWk©âÃÉžØþàê =úu#$犫'—qtɱƒ6$ØÀŸ^߬#W›©ÛJŽ&öØO7•Ka¿€I<ƒž:šç/ìÔì¤J¥›zƒ‘׎ŸÊ½2HÖ&xš“å*\“Ø_éX÷Q# ðä0$²òK00zwÉöµÛF!V™çNŒò ‰ÓiÎÕëïÓÖ –0à¦òXáÀÉä cµ¯"®2Îr3³¨Ž}«%&à•thKÃ+í“]J界é-ØÍ:«gf!±ü^ÇTÄÎG–‹Ó€»O?Žx>Õ±9€ÜyA|’øRÊÜ·©ÿÕM‘£ !O)C*œÓŽOlñÞºù’FWF4±F’Ê‘« 6vç€O‡¦)î D.Ò.qúÿAS\‚GÞLªW “סG;¥Û·2?!GEÅ*±)Œci,ØÇcIÌPŠUcbFåv|Ø:ÿLÕiœÉuÄmæ!åò~RL¼Vg“–QœŒ•ÝŸëÖ£pYØ*«ã –Ï_z—"lB “°ÓáG~?ƃlI6”ÀIïëJÒ:ù§€ƒŒäƒ×Úž®Î­FòÁ wcž+E&ÑV"œ"ut!—-ܰçü9¦4KörÊ‘À!‰Á<õ¤Î! µ¸?9ëŒÔlA›Aù[¶(³¹”Xí² •‘Œdã>™ö¨† ‘)b˜ùÈéîièGŸ+,€©è8V?ýoqÍK$™`‚ê¸Ç9ÛéM\Ý"±xÌÁ BÊÊÈÙϱö¦ݽ‚®íÃ#°µeÎ&32®6çúý: ˆÆC1T#Œ(-Ç8ïZ£ÇQèû0$×x¨ã?çòª¬ª¶ •ˆ“æ*í$Tœ²)œ¾\±+ŸÀ ¨€3«dF9+ÜŠÒ)™ì8¨o,0I70ÚÏÀÇ¿½FêOõ:ÈŒŒÅK’ÿ) …ž•1Cmòܬ‘îã#¯µiÊVAç !”° ¥O¯Z±$p®cÁGŒ9n‡§øÔa‚8À)¸rHïíL13Fʼn`APýjd‚Â9o-„¶À0ŸÂ >\e@ ž2ŽÛ²;zÔ訓¢´3žW ž:òxÇÒ±Êä <þ/Έ‰ØÈÅ„aä7ÝÆxõäqÞ˜•@ ƒ«{õ$ÿJP†XV7GU?.HÎ8úñŽ9§¹(0Ž1БsÓW] v`2~érX’qÀDZ«pŠÔu`Ç ôæ««‘o-rPdç·¯±©”â.|z“ÁéÀ¬*´¦\¹™c@!ÏÞÝÆA4àˆ’°%‰ÆrâÇÛ‘íUðÆÙPÅåáÆ ¾ Ðßš¹"í"71 nH=O··Ò¹ìJœÆùûÒ~¿"ì@IõëüêÎXê0 D8(r@<ûÕCÃ0 ggʸ _Ê® |´$ 'n‹Žyùÿ˜É\íæÐ§îË"5_?}ޟέB Íº]‘„ÇP ¶;ý)âb±(•Ùv± ç<Ç<J¶#1û4’˜“ÁÎoþµW2èkÝ\¨Áüé lɰ’¤€}¸?ãOóX®f‰¤›:®OïT²¨Ü›ÊÁác8@zûuþ•åÉ;v IŸ~G¥Tcr›i æ!rªªÛXíPÈ?\õ¦«™™Ñ[*ƒ(¥‡RG'üö °¹f6åX•ÂpWÖŸçÈÒmRÌåHù†2}ñ늗dqTnä#)¦O˜³¤ò¶Ê}·­+#D%Þ ,HSÐúZb³¯Ÿ¶HËp1‡©ÆzS̈©‡"-ó¶rvã8Èúzžkª™”˜}œl/"„ ¤€ÿdöÿ|fC1ùÂT$y=0}É?áFvBЪ¨Rpdgþ^MIñ4ÂËà’¯ ýz¶¹ˆR2cò|±¾Tƒ#q'ÔŽ~•4‘Ì6VI>]À(à¯?àjº@Ë3Ø­‘ç$ûŒÔ¢V&Ù†Ê Î÷ýjâ’ižZ•Ç…bYU` Œ—qžyô©P‘"€¦&2ÛºŒãX’—9cžF ä{ñïS©.cÜÁ[8<ÖM»›_A|¸™™£Ÿq)‚ €:úÿ_zUÅ;w«.QëëMr®ÈÝ”•<ž§ëëNwv‹,¡Øàe##²þ5´,ÌœÁœHÄNðƒ%Ðþ\uêi‚áabʾÍïÍH7Ï0bgãhûØpy8yòFò$MG)QŽ'ƒëURIÅ6†D‘‡º0Ë0Ù<àŸð§Æñ,ò, ²†ÈcÆ}†zvïښѻ[*È °?.ÑÓ½éê²®éDje0H®k Ä+6å;Wœç·=É=™—j„ ’ͼ“œgÈö§,1ƒðHuïþ<:>V•c2Ë$ Îqß·¾*\µn9J,9—àl9Çרô©B¤¬%N.7 à*Œp9¨£Ö NÎWr·8aôþY©£ò¥‰Ý„eºtÆ3ÏqF¦¶¶£¤oß;¸aó|¥Ó$×Ô}GÒœ‰ænuå‰ûÉòŽþ|Ó$užwÙ^ ¸ç#·¥HŒ¡dPà–ÆG鎿Ҳ»e)\EEWa+>~œ{¹—ìå¶®Ò£fI+È ?#Ïz¬ÂUʃÍdåxnjՉ [·¶ùI”—ÉÜO>Üz ”‘V%òÖIFÈåq¸`}AÍ:c;C£:öM»A>¾ôå.ñ£Ld–6_™9þcÕ2(#W³´‘´cƒ»³g¹ÅtÆ*ÃŒ‡+B‘¬Må‚W,ÇÏqœâ­¥´BO-‹Îz•ÿgŠŠ7hã‘DЙ8ir2wOCüëIV5´IزgiMù8ëøâ¢Êãi’ÛAÚ„i¥ò÷®…Ý鎸éõô­Û[}ò*$‹à™÷¸g§r1ŸéTáòR•íÓÌP$V#ý“Á>‡¯ŒV³5äî“å)åNÜ‘Ž:ý+›ïà¬i¥ÄpÇ ’÷+÷rà©`I<ãû`óÝí<“´»6“€¼ð3ôç¯AUÒF‚ý@ƒ*Õ‘‚rÏàO>Ý«~KiãÅü!R, •%Ÿ°nøŸÿW54Ý£±–¥X’e/c†Pøpà‡FG×'­IäÈVà£+©`¬9 ÁÉÿëU¦X‹ Œe¦8Ú R!OáŸÇ½Ií„»µ‘Á ¤3–ÆvŒcŒÖ¼úhT^‚ŧN4ÆåŠW2Kwˆ¸$O¨ü rò#¢fÜ*K÷@i¸É<ûztÍl]ÞÏ{{¶äù± ùh™Póü8¬³ÍnÛîˆF8Ýè=»ÔÖŽ„´eF-àp–èg’0T8bŠ㧨éÍdJòCpb,Cå‰$ð>˜­¸-l’“çÄrªê¸É\dàžœœ}*'Œ-ÜÍÈ00ñû³ÆHýG­tÐVС›öX².f*‘®[×q=R{UYKFÞ îÎíƒå·ÌG`1È5,Ž‘ì K§m»C”­Œc¯lñïQÉ$ y,9dÁwnôàvâºÐãqw$B[ÿëŠʬ‰çÆ NCciôÿëÔÊ#-«‚Hù°F1ŸÖ°öŽÅÆ3®§x¬Ä‰Ó»9w1C×—<óE:‡ >c’:ŸBøÖôë•XÒ/‘³’¿x÷r6¡1‰7c-úÕSmŠp±‘åI)ùÝØª€Gúdwâ¢br]2~\0ÏãV$ÌÅÉÁÛó°ïUÜùr8ùÀ òü½}+² ÌÁ¢»’\2¨ l)Ÿð§#™èÇ‚1šSv'¡bÝãZŒÀ2·.Á”!±jéW!–HöMÝœòÜ’~¾µ»,ÊÌíÉË>{ñ×ð¨Ñʱʳñ­ú~9¦ìaùî íÒ¥êJEÿ5]œ°_“¢‘Œæœ²$’2"€™É‡ËÇoÖ³•Øà: :€ jùIörÛ;õ ííÚ¡¤‘ÑË›×ìÈë¶@Àç#8þµ9 … ;‘íÔïYÁHÚ Œò„ ý¥hÂï+Ç Š$tÀQ½«’jìí‚Е!™U]‡,3ɾM\AŒMæ>ÜñgŽ~¢©†G›jŒ€O—œzçR)VNFÓÔ¿ ô«°7bÈTˆ2Êì£<¢í9úý) åä(9ÜØÇÿ®—÷F-Ì)A$ÿ`@õéš§+Q¸mã©Zç”õ0¬O¾2àŒí'Ûüj¼„J¦%|ªŸ•±Lý*ÃÞÙH =:ç˜õ¬¹5*SÑù2Ÿ0Ç*AÙœŒ*b°ûbÒ”Ùʲçp÷©þP¦<¿xpÇz$°e–m¸#o8ôªÒ&I]Œã3Ür¤r·µB€J7Jõ=Fßz²©¾\bÃdz})ΙS³.Ûppy#¿Ö𖥏èU¨”m ÜpœÓÙNì³ËW“ø ‘4¿;;3ƒÂœtÀô¦·,«ól$‚>¹­âîsÞ²)ŒÈ ç(ù¿¥ "#ëÛÚ‡HÀ#z2‡ùv±9㟭Y„ü¤„€p@(’6‹"mG—{FêW.}3ëøÕ˜|¤r ˜\A#×­<„0Îò;@ãëR.Ö•¾eQ‚¹# oZÉ„³Ë4êÊÅßäŒcðÿÒî1,ŽHÚpNHëþ5N;fY|žYåÉü:óZönRbÁC0ð =³êxý¨ç±œµ%·´Ä¸]¬ ܨI$¥jåITBp[†r Ï¿Ç4û{ù°U­RBx§$uéÃ{ö­ë[ëˆKya•Ü3¹A/å\•k+îiÝaµžeK2W÷²0?1<_¯qZÚnšZc"#F¥v’£‚ÜpTœŒñÅuÚnikh²]4k+&Fq“Ëw=1[[$§íBÀ]8*õCzq³9è´Ù,Ç4„¬ÑR8<¹Î{V†kèv“‡fÜÍ \ôàŒzãž•»so3D­£P#å ™Ï¯ojÖÓôIõ9SÈCH@ #á°ONݺW3¹5g¹„÷Эk¢UY#·‘‰eòÊ‚$'Ù팑ô5 ðì©rA¢ù¤*êsÏ8$ñÇ>Õè?ð‡ÞÚAÌûŽÒUWnìg9 \w®óÃÚz¿“ÄñÅ‚±¹o“ cŒuÓŠùšø¹E7ëä{Ô°‰­OŸB‘¤Š4Y%ù‹…ÚÃåã·¦EW‡Â×­v²G ’ÌÚÜŒ“Ž õõ¯¥|gá +CŽX&¶2²–‘·àr=?¥y¾—­¥’ºÉ‹¨Ä:œŒýMU*Ò²fÞÁ#È/¬g¼™¼Ûv£$\ÿs×#½`ÞX¼šò]nYU~èûûq»žÄŠôo^ çšçìÛ<Åàä8=GAþç³"ÛÛ<Ž&\²¸ùIôÆqç^Í*Ü«S ”î;Ô’âfHСl“œ‚;ÖOîZÚ8[{<_u€ÆëŸsí]&¢@ ˜ÁY>`ÍÁõà+ÈŽ7Š(Ô@NàNyÉÜs]Ôª\ò«Sf$¥|âë(#vݧœÿUVWiDi6÷ƒö=3Z.˾AAAûåF{ÖKÆêeEÊîäç’ÝÅtM˜F›[–nïÎZ3(a‘¼œ\Õ ùfB¨9qÆîO~*ÔψäHY@[“ž2 ÿ ªÅ îÃs&ÞøqÇ5µ ê+˜Îç°IsÞ/båËõãc×V$‹åi:9_•‰û¿Ò«M "I `†üŒƒÛÿ¯]©œuJDdÈ«• ŸwÐsÆjŒŠwæ319;ÁÉÏpsúR¼¸ Hœ«0y8þ•û¶yÁ ÑAþ•qG çb#Fù†À?!çŸJð³Ÿ/æŽvŸ\wôæ•ä ì0ÎOÊû±‚=j¡ßÈ&×nIÅvÓ¦rT¨).O˜Ò 7VÎ0sǹ¤$„.Å\’B3¦Fʆ1 ËÝÊ7‡p“~JáFà[<×RI63÷JNÕ8nAÎ{zUvFóp¥‘ àðÞµ2>‹¦޾¿JK’þìò)4e$&Q‘Uœ0Éïþ{ÓˆO/r¶ætýj$!"ìTÁ諟Ċ›dhqº0£!±Œtâ²lI‚"³0U“Žõ¢±´ä(•HÃ7^Ö©¤kö`±ˆÉ<¶Tàš¹lwLÛYNÞãÒ°“Ôèc$ÉX}ãÕ}LìþS¼H¨é‚Ù<óÆGãQǵ¥ù¤À'nÖàþU2$á¾é^O¯5„ÕΘ±ŒØ…L„ÛJã'Òœü¤ ³1êsï‘L‘ãŽ@ÁPÆãæ!7pG¯Ò¦ÉR>XK€Ldžµ’†¥KaäaË 2|¤¾ÎÃÞ¡XW|`mSÓúv F‚ ï|äøÎ}}¿{„XÃ(ùHÃ0=}é¸XÍ;¨ Î⬸-Üú{sJZ4 '›( rà ð£j´§hr02pNïñ¤Q$e¹Äo-Î1Î)¦:GX®¿wŒ/<ŸçÒ’fL€Âã¨ãëìiÛ£ÜÄ´cs€F2x¡Ù_*ªÃør={+F•ˆlª‡p+æ<„GË?ST'– « !›ûqOmûÄgi#%Šò¸ξçVf1ÆcÜYŽKË4"$î)Á´ å´Sm8*OÍ“Çáô¨Y”E¹Ù]Ž 6ûsS·6û•KÆhôxõZ€)òÁO¾Fví9ã+KŠ1ÔFF!w‚ÀòBdÒ»0p[æùsµyÁ¦’Œ[Ìê¿{¶) ÆÓ¹"8ð˜Â”Ü’i-‡´žT`| <Ž{}3I,ŠNP®@äg¡ªÂU_¼æ@ ú€>ž´ÖR-‚• ‡!Ž:óùŠÖ›2”•É £[…cfŒ„ñŽý{§½F͘\¼r•^H$Œ…/ÌQs‘ïÇ­5ßΜŒoz!ÍwFÉ9\rª › •TùIQ€½³RŒD|½² n댟óéHÿ-º2…@GÞÉûŒüάX“è«ô¦ÈæêòJÇ Áä)û¹õ¦•`껲Aà)èzóM!™œ ‰nÍíŠ#‘RICªeÏ\uïëŸJN7a[ ¿w ¦Ì`ÎÞ_q»“þqIfAžŸyyÆ’A8%PÉœNü}Z‡Ž`âÊ–~ös”gÊmÅWŽ[ò=¨FX£`¿2ŽùÊãߎ޾õ2 )ûè8çžzö§‚`ý™ -°¨*KrHëÓÞž1]èç²äöÖ¢#yL}Óž1‚~”ä'±nq‰þ_×Þ¢µ©Üž\¬ð„¸Î⣿AÍZˆ»Ü¨˜Å˜;Á@½{öªàd“!]HÛæ=xýM a祙IÞÎ;×»; Ú.FÑŒ¸…œ’‰ôÉ>µ<¢_ÝÍ2îÀTG=;tàŒÕY%‰õMÑŒ±dî9þ‚¥“ ;Q€•‚ÝÀfu<û`Ô{9P¨Éä–Pø#hا*?»èG¥$ÜìD„ÜÜcœÓp=:VÔ’F]øœ"@0ù»ÔRù[€ ‚„`ãÔŸ_oj~¢3‚ó*áY{žÂšêÉtèBË‚ ;‚£þùïW+(•RJÀ®#¶‰vDzR6•ät9>äþUÒª3Ì%F•у.ß›ñ'¹õ)Æ_&B«>æsˆÈŽ9è8æªùQïÃ3’Hg ЮyÁ¬Rmœ2³b~îh0Ì,…±Ô÷þ¦®<+#©;AeÌxBCêAé×·^j-²°dB»·áp>¼qOi%I#Ø®ehpø §tΧ8ëŠÞ$É$FªªÎ]e`Tïݼç¸è=©êcò¢iC˜Y‰f@ÝAïëœTjæ= Ê¥òpÇßoãI´„}Íä!@ûØãŽBŽyöéšé‡ºs2¹†5ÆôÀdq×#üô E.†FN[¨ÍOàªl6«+õºÿú©Yq mæºm%~aó0þ•ÍRJçÈÑ ¤D•`O;Hç¯ÿZ§Ž&¨>f×Á ç>˜=¹¦…„ÜFÃ,T NxÿroGG÷‡ÍòžÙèÏzÉ¥cAåºí*Pdgwlž€Ô/ H÷|¨J…ÏÍ:~4í­æ®Šì~UýrjÃn’ $óXGÃ6={ïÅB•™$-€ï¶Êx<Tg3Rùe]†é P=ÍXóÀÄŠD’)Ü€XcPg 2HQ批±±sÏN_ªRº6ƒD‘ùp±‘Â€Š§îö÷ÿëSY7jå¾S»Ëë·Ó?…Œl[z³J»vg”•e#Êy“a˜9Wç¾;zÅ•Ì$e<³ó1 ˆW?‡NJ”@å"1¹9Ü€u'·¹úÓÂÃÎý#uúæ¥uÚªä9$[;qÍ 4Æéû¢òïl)\·qN›Cî僎¹éþzÔ‰$dŒî{æÇåþ.Èͨ`\Ä+G¨÷<Õ¶T‘E+¢¸XÔnà’Coÿ]I&<‰¼¹÷:`„A¼dž›»ã½J»U#Ã;1l°†zuÏJF Ó¾CLeH,NïŠQ±1ˆ›]f3¬ûc©Ü'5r7ó‰$$gÍÚyçùÿõèmé,Kýä1œ•ןóÍL†3 '™@À4`÷ë€G~sŠÆm#FIÜŒp#JažŸäÔÆÝ»dF̧$AÚˆƘI2-µÀ- eY%Lîg Éä3úÕ¥æ5–Q•X‚®ùpT{ztëéW ¦+X’$ÿHPL(¬¥Ælœc¯¥M -¬j¡ÕÜÈWpœ£v:{þ$1JטÂC³ASëþM\Ù­–Á:Á~ýø'Ž?I\Óœ°Ž‚ú(ÝŒ­È‘oËÏ^üûÕ›8Îb ŒÞ¤ð9àgÐþµN 6Hv£N %z{c¯j¿n,ÒyÚS±H ©ôÉ=OÓŽ}« ¦„æuq^ZÚ"@öûæÙ´eÉW#ŒŽ1ëÇZH®¥¹@‰¿ % è:õpG#éëY\I•½Ë\F@ˆH$.]y<ç©Ç|r@¦C$uäY2F*Òc*yÏŒÿŸh»NÆ-Üè„Öð°½]ÜH‘䓜3ëÆ^OûMä°Ï0´Hâå_‰ÈÆyÇsßéX–fÞÖÝ./æi%$e£rûz“ݾ¼žãTg½bd‹æRÝ_¾‡Ô¥+H¥+WQÚÃcÉUïÜ ÷\úžµq1¾³0C(–ÊÒ:£N}xÉéô©–ÚK«¤¸ÔÚ8";\G·8ü[ÿÖ*ÔðÌZÝQ¡¶Š= 2ü²`c+€޾•<îS°9èd]\ÊeŠ8ØZZðPdy'ïùsT呥ڥݜw»´cÛÿ­Ok¨íí&#*QFØŸî±ï–<⢚vu/ >T%wõ `úûñ^¤"Ò¹Îä›+$q˳<ÛÈ\``×·èy¬Ž’Í1q*2 îá@ìWÞ®Ë "Sr.ÒdGÁñŸ¥Vx×Ë  êÙ20á·zäzçšÚ6q2½™E‘a8Fc³ià’zþ̨Á^5s´ý¿¡ô©A&y”n~F?7'Ò–+yæs Qªß2g*Üp~¸®YÏ•ØßFˆ¼¿™Ämò„%þéÏn=? …¶Mq´3K>X~C8 Ï^•¯—k̫ʣl81éÏn•‘tѰO,m”ÌàsÉ5µ+ÎÂ;™c/ʃ†nÔ§¥TeXå’0Ø wc‘úþ8÷«’ì)ƒï H9Ë:ãÓ½QT Œ€þó9‰Æ:Õ;°lVlÊX–a´Øãóöª¯”FÚËœí%¾l{Ôá£A±ÉÛü#¨5Y [Ö6,ëÏSþ8§i+ +² 7…2°ã yÀÉäÿõªUeU+*Û‰CÓØÚ ó‚J gi6zþ4±:4èXêÀôÿ>µÊà‘«‘d4žX‰˜ìvùNì cŽ*¿ûé ŒÊœŽ8téNBK 0¬ûpåŽH=84çP,föu\ldµÑF3fc‚·€3ÌÊÃå#ƒõ5_åË3#å ?ÐT¾cH_xù3•ÈáøéÖ i8”1ì£ëIœsbo³·\c*ÿ*w˜…†íÄùcv{ó×¥Cœ’Šw(#r€@ÔD‰#v2 ®I=+eS0GÊBxM˜8úô¨Ù¿Ö.P`¹õ&¬GõÜÎò å‡M§ÞœÑü»‚çÑxõÿëÕr¢ŠÈU¶#1z°éÒ¥UÝ!`Ê÷î?*vÄTbrøq÷OåJª’ê@àþ'?Z¢4ƒ/ƹ³Œ_væÏÞÇåNUó6¶öU'9ÁÁöæ‘A¸ˆ˜°Àïƒô«j¢"€NH NÒkŽJÇ\dÉVÜ2ÁÛÈã¥H×Ê0;rI#úzT.#šˆHBA#®:~f¥Š"]a¸à½vž§¯jŸhmq¤âQåÿ/9}p*L•$nw2퀣8çÿ¯I€ãvÁÊã'žý;t«lšMöì„íUg ÅŽ8ò¦k.TÙ›V -|S H.H>Þµ]ÂFÄ+)þ%÷ÇòëVHýêå6ì à/=*#,L‰ arpYqŒõÿõVñI)ÓÉË’Ã;rÜ;Õ7iÀîŽ=ªFáÃU©…º[º·¶åùs’;û £˜Žƒ§ã]1iœ²½ÆobÆ'bÈÂrrj2eŒrŒœ` —nç\ GVïøPÐf !À u­.MÙ*“%sÇ#4±¶ÐÏœñ“Æ}º~•#”àç Eæ'aeæã'ÖŽQÅD}ÉAË“ÁaÒ­VÝCùEÊçäú[ïcŒGâzt«³;o#{ `îëÛÚ¦Q¹Ó"X]”´§bLÊÅr*ÚXïûçÛ‚¥£yYb Îw28ÓúÔ2„3s¹ŽÞI$œ÷®yÅ¢Û¬ŸihQX€88ÎN=úúR©PÌTî`£ žŸ•Mm@þ_ï­íÁãÒšŠøÜ‹Ë69ÈÍJ@®BT‡#aìYpßäTd !ÈM¿)bÝ}þ¿JšàyrÄ7~Üw÷Í ÛãòР*2_gÐàžÕ-3X« Sæ\Œž¸ùzw4èùµ`Š’ÈÎx¸§¢€Œ#¶2«·ïÚ£C•R¶Ib=¿ýTâ’îÐF“õ€, ÏêO¦i‘ª4Y*Å”ÅåãÞ¤L,AՑѳ•÷öö§!UC¾·PÌz`wÅ_=Žuq¨í­Á<Ày©#ÁG<3±}n´ÄŒ 1žr¤1àúŸ­JÙO"N¸UëÜzšNWGDc ðÓ€»Ùw¸§J»–ò8Ã6?„ñŸBj9 FÆ7O,mÚJ¯Êúõ$npÒsòaSƒP¢L’,à Œl=1ÛÖ·ìíѦ>c¸”ëøÖÕ´„pÍÇCŒÓt­ãP±g¸‰˜ÆÌÁÆÜ–Î1×^3ּ撥¢HúšXHÍ]³äæ±ÕÆŸp’^Í1RT¬‹¸‚ÇòpõçrÖšEüw.g‘v<… œ±<žsž+ë[¿ $7»ãµ€Ì"b·Ì€:sïÅyÖ© Ï­$¶ªÊÍŒ§8Ç^=EwasIT’M,[){ ­Ä,Éo“!#pˆ3Œ¼õ)®:ïEŸÉRÚ\¢ùfG$®=óÀ¸íÚ½¢îÖK7Tû,¢òî9l–ý±Ç\çµs—qÕüõy#8…Ÿ—cÀ9öã9ô¯NæåfKÀ¤¶>q¾·" ¯âÉŒcV€çÚ¹««FûBÊ]@;T}ì{qï^ÓªÁos*šÛÌ'-\ç<çó¯:Õln"#ä”2î.àm¸öÎ+èp˜¸Nǃ‹À¸np[ÈÒ;²œϨ‡zÈs 2_˜0ØKÀêOLõ½ë¥»@ F¯.@8QÉÝéý+bÈz+`àý9 Ž>•ìÓ\Ç…Z ؈3–x\òŸ™3Î3ëƒLEýû5¸%Yx1Ëߎ¸§O{¦Ã烞G×§éM*‹q ,QÀ qÛ¥t¥c†£±RT-š=ÓmáB cõÿ§&Ô‰ÁwÂÆ2»s‘×5<:€$ä•nI9àçõª»Ù¤,FG`ßA)}FW$ª¢ª‚›w.îI$uVwÿY{Æ!ÊÀû½ÿ:–BÂ+7œœÿ:Žz ‡…ç*Àà2÷ÿë{×o³I}VW#÷ÌÀE€FòFvþ^M¡ƒ4Ž8Á<Û5wsK3H€N=¹íU匮ùóF29ã½\8äT.û@`,“ÙíÞ£Ã,›O9^Sþ¾•)¢áXWã4ŽK#î ª Á jìû¦!o20X’ az}EC·ýoVÎ0í¿þºxI€N¡HÎXsCrX®ðW;²@úã½R¸›…i %ë’GáR]ÎþW<‚çÕr΀1ŒcŠ•+…ˆœŽ 1'§¸íS(•ë"HÅ ¤pT~˜« é–è <€t£‰Jùl븠~™«y^VES¸N Âp5‰!s*‰µÎ“ô>”­! O—`s½$Ãl}=)ÀF#“ ‡eÈ<œŸZE_Ê#ÜÍŒÜý{W;ÜÙwÍÜ[æ@:tÅV”£H‹ ]Ì,[`R8ÿ­\<ÚÉŒAßÜŠ„-]Cì FN:÷Bzš\BJeUP¾HwåÌùÜN=ª,…f2±,Iù6ç'¯™­\nD…óü ·–‘ŸÂœehÆv¡~Ï4Ä !>j¬Œ_ùÿJk0ØC·o'Ÿ®+'NÄÆDÛÑu ±“° ÿ6|Ê¢/Æ à2ž´ÄGiB¶ØsÐ2Ï![¨Un‚U¹¾=GëY¶]Ñ"ç%|Â1»=zv¨^Œ’F~~ôxÚÇÔSd‘ÃáÔòY™¿#HXæ'GlÆ™pØ çÖª±; ½T˜ÒáT’2î; a·͂ßÂÛ¸#~•,¸òR@Ñ™‡ÈJÆTz;ðzÔlTÊS7.Iã8Ïô­Ü—=ˆüµfYžHò«Œœòi·$|‘Æ_ø»Ÿð©@Ul²´lO1íôÁúPÁ¾Î~dEÜÅN\çõ¢0AÏr¼ìÞ=£ç‡àñý*)Ö_ÝÅ´ÿ|ð­Jeß D‹,ÇZ†Yž¤R»p­Œg½«~DŒæ#6ª¸<©æ£TÁ‰‘°@ã<ý} ?…>Xä¼nÛOW8>”Ô"5‹’ÌݨNæC$YÏ ×ÐÓÀ_œIžƒ·:‰†z–Ü:©^‡Ó53ݹð8ãƒU´ÄÞò»—ù@êH9튨Aˆ@ ?y› GQþ~•;† ûì¸'Ø j"7$… 8ëdØ®&Ðå· ²’FÖ8ßÇ\ôϽ8º @¬Þa\¸äqÏù4Ñ2­Ã”§w {zy,ÏœŽWä8çe»”%&duÁ~|þõwAvUÛµU1…É ãÔã­Z‚Z<ˆØ–T Æç¸ý:}j# ò–)$6Ï7p\•^@þ¸§–&#"‰ƒgte™K0ô?]5¡„å©jnÖòFZlõ$Œ¾¾Ô‘ !¥Ù°$,¤F6ï=±Žý2=±O 4m3îdE@v¢ƒÎq´ÿžÔG$«raØVÙ¤Á äªôœ÷ôþu¬cg©3•Êòcy‘N "‚ÀOn)²bSnÈaB |øÈtÁïR³Eµð|¥UÇ'=ð3ǵC!ŒM1cmù·`uþ_S]WGž¤%—1Æ®Ò"Œ0$d ç­;sÆÃø†2 ÷Z#UH×j>q»#Ãß=»Ò,a|Àƒ‚p ¹!Aï¸õÇ­yòަ)O1å;š$g$€‰ŸOéJ»ÀÂ2 eG?7ÓZ "áQIì§QƒüêfÎØÛæ ¼nã§ÿ\ÖMê7F¶t ?§¸ÏCœŠžc¹†\†wÈpzð;qÇáG”~ϸÆ7/Ìy>§ŽÕ:Ç€Æ'Ê‘ÂÀðI=G¶*Z3I¦@ª‹n#l…² v§”·ó0ròp2zŒ÷Òª—wy…ðX²€=1òñŒÓÒmŽé 6å#9õõéPåcT‡d¢6Ã(lä¾qÃéý)‘cVhËaú;>ÜcÖœd˜P ³W*Häãüý*Q[†ŒN!<ï$ôõÏä/hŠåc€eŽMጎ­ïžŸ=J)•‡ñ“¯oóô¦ Êx„Íç3îuãjŸO¯Æ¥ˆ–Œ.øÁ Û¿oZ9ͤ›jÏ€³y#§>žõ>FÀ*FÁX·9Î}ÿJŽEòî#¦& 2rFjPâXÛ®dÙ¸<õþ}ES¹W,ˆË$‘¦g×!['õ–¦š6ò÷–ŒçFp8äê1Q««lOøö,ÁUT`{:ç=ª`±Áó¸ßМ•÷õ Ð$쇦UFÌayØê }M<ùo.¦"ÁyÛÓѨö¥M­&ÈSc·rô>þÄþ"ñÇ4j¦Cµñ·¨Æyü+ ¦Ì”îÁÚÛ 1FË Á,:Ç8Ïoñ«ˆÙœ«Ç#9Û…ÜÔ})­å++:x‚Tô#>ãŸlšdWQ¼°¼l±Å#\œã¯?Z¨Sh©LÐUÉ.òHÁÀP{b¦rŒaâU çnCwãçÓæªFå/Z&Vݼ‚‚@qôüýjÂIµÄŒî$i׃ߎëX;=IM–‘óä¢<Š7¹uÛòç“üªW0yQnmà08E%ƒt?CŠXñ6õX#biÚÙfê 'ÐôÇ=;欼‹‰¡ QË6æÿkéïYOY‰É•àVrò½¼D£pg8è=?Ïv{ø’æHÒÖæDÚDj¯‚?>§8çëÍ2V³y!òìÐG–’Y1óg;qŒàŽüúÖ¥½Ì)¤½Šùi¬7ÝààŽø<öÀÆj'nJ™o=ÍÒˆà‹|’¦ÕÚ-Ç#Ïþ½ušm½îu{‰¥Dc‚8RGpzõöªCWÑô}64¤KÒÑ@ùé׎?ýyªoâmA¬ „[¡W`@U䜒rO\ƒŠ¨AÈË——ð9‹3–˜no³…l Ü}1޹ˉķጱÈäŽSÄð> ’zU™®e¸µ1[ØKlʾdîçîŸî±=1ïëQæÜy°¾!ƒ$±ÁP;d~u á%&O=ɤ±X#æûjœ(bP;wþ]*µÔ˜üËlŽqê9?Ö•ŒÞdöñH%m‡%¤ûÜðäsžâ¡1u Ç2²ï;Ÿn;=þ•Ý žî¦[3$£¢EÞBŒyÀ>ž´Š“2y·$öŸNy«Æ –î(¡Nè[c“ÂŽ=O­i=”H’^¾èˆ-6žzéÁÈïš^hR–¦µ›1xØl˜ça ë ©'¸— ™q´í±ôçß“­%ýé•Ss) FÅ€¼ûz *‚FûÃæÒ‚# ÇòO¡ãšÎnìÒœˆZGÕåG·ßw1÷ã¿­FZG`w¼DÿËXÈ {p?ÎsS˜Î÷,¯´ª–`éœz¯5Ìi¼J-Ãï—kcÃή=«¦œUŠ”Š×+ÎÏ—ÇÃO_¦8ªªy¥ŠÉôÀ#úÕ¹R;$-#€±ä9ã ÷ïš Îÿk-"ªv±dù°{ç¶1B²dZä\É*ã•lô'ò¦Ê 1áÀ@që“Çj²dH̪ªêAùX³}*L’¡pÍÛ¡OJÑDŠ æý¨ °9É''=~‚¥XÁŒnQ$‡Ñ¶äqBÁ(ffHÎܰç éßéSÈãBë¹vÏ­K…Ù¢©tVHÙ¹å©ËH»XnÁÁü*ú{leÑñž=*%Ø€ˆØÛ´o^Ÿýz±)r­ e±d# ®˜S²9§#"u+rv1e ÈÛÈãùàþUM¢V³!éØÛß½ld™•åe¿Þ‡©\Bâv0’¶ÖÆ:ÔÁ•Ò›£,$)ü¿…‘Öç.ÕÁ Ÿº¥YX6@\¡¸Ê7J"l!-Aãœb·”¬ "ÛÉ• ²ŽåÏùêÆýéóDÛ–CÍ@ÇåŒíØÁþx©Šä«0ÁÏ3€= ©r6ŒPãhhË,¬1•œŒ žJ¨»Þ7RŠîOpÀ÷'¥\âIÎãæ.1åWéZ d »:D]ÀVÆyéÍcÍ©VHÏC‰J¥{Ôï•eEPZAËg¿:€D ÿzt;Ž0}9©ã÷@cNû{ûÖucusH²âʤ fŽ…ïþqOUc!ß`ä.{ççÞªÅNÒ…±„Ê®jÆC)fU/QÆO§=qÊçDe¡2Ä…’ÁÎ6‘Ûõ¤7°à•ÇV< ƒí2G3$d0` +Çü O4[ôÒÛä,›Üãµ$¤™I/”)ûħ¨ì9â«´¬¡·|‘È2}ý±VùçŸÝà—.9õüj•Â4ûNëšê‰…Ìḕ}†„•ä‚¢_,³å€d:¿¹1W92¹Ï¾sÖ³ç?Œþ?§zÒ1%«ˆìT”:Tç;[ÿ¯N‰rê1Î[\ c)^HàŒzñAPѳ¢–%[—õµq'”yS¼ }ÙRÇóǵFÁä,2§€Ã$ ž´Ÿ6ÆÚŽÒ ²ä-J…Œ¾c‘JŽþ™ªÐ,1vËû¦n]ǧãޯƪ„ ŽWªòT%·mH‹)9ÇçS" |¬€ùéõ¬ù¬Â7-ycœ¶Pœäp?y,ÏÊóÇ Ó=ªÃ@~éyO$çùTÌ£v~xÓwË““õ…I¦tÅ|6Ð/#Ö¥R±Ì­(ò¸Ú1È#®iÅnã—ù€GÎ1ÜñÜÓ,M2¹pÀ<÷öþµ*JÆÉuWyAŽ<±ù˜ƒÐûÔiÄD‰2äqÎE8aŠª‚Guäw4Ö #pK(äùqî=ê†#y×>»KrÒ¤!P£neÚŸ0#ô¦ÅXAc‚Äp9ëÅ9ƒ”“ £®à‡-BÃc… 7â2¼Ž¿†)è¤ÆTDÃ8b2HÏLR˜€Øë–cÏÊy'ò© lØV ^I\{þ?8§rZD¦ y>øÂ© ‚NrOåMû0( Y“¡'€}3Ú¥ ó7‘[ çw^ßÒœ¯ˆš9 .À8ÇQþsD– ž„ù†8”,ygà“ëõïN]é)P¬œG9úS!Xæ‰LŽsœ¾ÏOʸ­×˜@(œ–Ý÷ñÛÞ­le)j[K™’'>gû*ãÚ½?þºŸI[ǰÝnÙ ]NÓŽàû{W9áÍ=KX·Š5_™þþìdzäû1_RÞÛC¢|4’$We„oÆIàœœà×*¢ŒKƒLùö{h¶M”i ê np0ã’ àcƒ×­u6–‘ÚZà Ì`íQž3Óž?¯5ÍiW[üOw-ìQÂÌünNÄœàö8ãùW iVñÝÝ‚Ÿ¼dS€ïëÆrN+šI5sK'‡41%ä³ÝÌJ³¬Q qœ°À,=A}±Š÷O èwm/qçäcºtÇ<ýEp~ÐÞóV‚%ÉŠI—‡ŽËמ¿Ó­}?àï Þ[jQ/—0ùB±ýz×çÌSwlõªf+“GÇ:ÏÃýVÑ™l`UV £Çê'Šà#†ûFÕ.­çŽPÄîʰ ǧCß<{æ¾üÖô™?³”Ae„™ˆÛ´gßé^âO Æ·wsk,S&]7®NO¿9#5àV”ê»E[T}MŸC£v>s›PK›Ò—‘KÜTº©Só“ƒÀî?Zç5‹ËfIY,¥vÙĦeÎ@ä‚8äóÏlW_¬sÛÇkeÙH Œçà÷Žºñ^i«­ÚK4bBãÌ Çü ž;ýk³ ŽQŠ’w>Ö„UK¯Æ/tù£1̃åWÂÅ‘Ïo¨\v¯0Õ,Ò#9ˆnFÛ’™nõÏÔ ôMn+Ÿ9³ne1 .,ÞŸŽ1õçµyÔ÷ÙóV$VP>P`¯¿®}:×±Oå©ëGÜO9¾¶`þjw± ´[†q¸0éõúŠóIeÝZU›p'åàIn¹ÁÇAŠõ-cË[Ó•ö¨à3Žr žŸQéÍyF«4já£.]]” ¿pçÏnkê2Ê–K¹òÙµ &ÕŽåå’_Ÿh@‰sŸp?¡®z`ûåLÜNæ… 1œÊ»³šîór«™˜œFèk'Y‚;q$Œ„Lñäï9Çlduô¯´ÂUщ¥mNVwåN䕇\6JûñÐýj›8rrêpÓ’UÄVËàœ «~‡²z“O¹òÂǽ<µc—@AJîM¶|ö!»˜Œ‡y,²»~Rzõæ¢(#‰BŽ7n}ñVäÙ/ÀÁfϽUrŸhÃÄ… ÙäwÍwRM.F\êDÂI•ß+Œ’i›™gŸ—pÚAêøÕç.¹P}8æ³°Â"eîqž?ô®ºnì⬈‰\ÞD{°NÜ‘Ÿ\u5 ß.Ôf n$qÍN"+wŸw’¯ÎHL¨'2ç>¼WW-Ž)"—~ lvœ†äÔ,ƶ2r?<õÏ¥NÊÀ?|œ‚>¾µ‹ûõ+î5¬^¤òŒË« eÈùæ•`ÙrÝpÏz Ä^E.T6zöéH9Y@?t×ëÞ«• «‡,yÛò峯>žÕ¾µeR6œ"ey9Æ:T ƒr²ïn¥Ï"¬³!ˆðã+» d{“\Ó’G\ 9q†Yb:9OÓ4 ²AµXò9P§ = <ÓŠœFngÀRpKàô¢EØH*É··l~óXî\´Db(–6WJªAᾞþÕʘ£o—– 0=WñÏéVq“Iê1ý*W7ClÁbªïÇjÏ“Ry†°ó'+Œ òä _z+±™SŒI•äŸLvúÓ×+#ʲ¾3ÀŒôÏåMݲá<É%eêH¢·Œ¬)+l8N˜-Ê3Ô˜„w+3ið@⇠ƒ+3zdàÜÔ`ɹ_ ’b=8äVÚ4Je‚Ìr±ÆÓ€ƒ%HüúPÓy¶¿+ewd1íôô櫳(cœb3Ñ‹ãñ8þTW™PŸ%_ì<êEs¸ê “§–¿12EíÜI9ªeÔ¥HR2I'Њ”Eû•a ùмºž‡¥(œ‘‡BŒ°éííT£a\TÌ“§(Œcùr0GãÚšÄ=Á’%+“‡Ëd>5aËüà^z¾Øõ¨¢dò¤.«¿dm8úÓZ¤È„F;’ßk –';GÓ¿åHT™B†rñä.ု5¶¸ Ž…ù(ÿ|‰€ä“Æ£?½*ÛW à6{~Ô¨î­ÉùºäI+ÆZUeòüÓ îŽþÞÔõ—<‡àg=Gó÷¤ó.~p›A† ýZ!‘|â>ó2îB«Ó:Ó”ô)I…ó% „“Ž…ˆÛì}ê7ÜŽÌ˃·+g=MH’pN?xÃ…9óœw¡# û¹‰ó¹”ç×ÿÕ\U[lÖ3,…ÎÈþGÁ÷˜ rzúñIä°g2óÜ`¶})Èÿ&C <·ÊØÉ÷Ïó§¤D\òM¹3¼> õô5”QФîB¾tR“ÍÛ·Ã$ ñÆ}¿X €àlu  ú޵|Éå¬p¬CÁ°Iú~5fP¾[¼„HZNv·öÁúcñ­$šGe91 fFòÉ€;øHéJÃBÊB°°Uºy ãüjL(bŽÊÀÊÿJ›ä*§ÉDb9•Èî=ñXks®5ÆÙA$®Ýª›A3L™Ñ·dáç*:{Š›r‹¢ªŒ’Œc zóÛéMX„l$*®Ø.6¶ãƒØvô¦ÍÈÑCÌ]7àF 9üÿ:•Ы,ˆØ¡2Ù±Ôuü©]ÓfæYAÚ΀qaÞ¢Fm€Ìp9™ÉÔ翵\™-²# {ÝË—n#cqÉü¿­JÑ“7•åǰþó‰KÃK˜ã“8Q ¡ö þ?ç4ÙV6¸H9%Ëm¸#Œò8õ>µm‘%b@¨7Ås–g##œþêr±ý“ $…B€ê‡9_p9ÏJ‹ý€ÅdF ¨ŒüëÇ'ÜÓ›nޖѯ9ïÒºpõ^Ç$‘\ÌpYcRrHnN?:ˆÅˆRØÜæ21ùƒŸÒl–iJ»Ï!P£s==)¸„‘Æ÷ÛÉn1ƒ^dª\ 䫽?&öPŇ9'ŽõÒA€¸0êï¯ZMîmþNcÏV É© dĉå¹ÚP¸ÁÁöÈSй£²& +âÚ̓œǹ©NÙ,c>k/’%µwwgÛl'êO¡©!2l ÑÚgseKsÛ¤e\J÷’l¥ÇÊFÜcÛ®}Zc»ÆØBHÉ žŸSëÅrTÜW°è¼ÕƒvWþ# >*›Ï•Ûd’2¿¯ãQ)±+“#©RG;qÓÙþuf¬§~$%¾O5r«Œ‘øþ’»5O@ù-wH9am¹i˸ñŒwžiYÙ"Kcå•_”#½Ôç±êx¨Ðù{UÝd@ÞyëÈö=êgŠMÕ³"0©$m;»ñ¦+hÀžk æ$(Ây#i‚¾CÆýqëVV@Ö²!11 ¸(sÆ}úãÖ³LEŠ•xö‘Ë'¯ëõ©àF g‹qRÈýì?¨ç¥n¢¬4Ë;Q„a˜¦?| 8ÅI@ÚŽ÷åÊ’ /ʼðqéPBîwyÅãGïµK¤úã;Õ¨¼­žab³£íPÀœ ãõúÖšöA-K˜™Œí$¨`sÓžýu1‘ –dlÃ&Ôê¨Qä Í#’1ò”`“•ÀätçÜRE€›ÎYR ¤žŸQÓúÖ±]œS-eäX優¡ &ÇbG·Lý:Ô²'O>[ì•Yw9Éü©¡ ‚Ì ®ð¥dûgÔqN• ïMÑÆ8ŒDß éÎVa4ÆC²JÈ#’u“lD'^9-Û­^[†ÃóâLóžAàsØ}k9®NÐá ÜÛŒŽ˜Çõ§yÒ=„˜•ÌÀmOQ¾½úšÊM\Wм’²F<„baD›±Û¡Ò¤K‰ÒÁ¶NOÈÏ?xŽzsAm¥†hv(!Õ£l©#Œ}xç5m­Í½’H͹`J‡ÜÇÐã×ò­cNæwD±˜¢¸Yns);W`rFHî¾F iÉ©µå‚Z¬‘¤kʦ܅>™'¾ZĈ³ºE,‚~c‡ËØüsÞ®ÈZª³ÞC,˜Ý"»€#¨úý:V3¦Èlt³œ2„eèùü*HåbGxAH$ ŒgëŸjÇy„²®ôAæ1ÜXàŒò?»äÙˆ"Û2ÆO $œ~ŸÓÒµÃGv\­“ ³ Œ[™ –;zŸ®zÓ¤ºšäˆ\+nù]H9>ŸJ͆;X˜<©æä• ’TyÏê;S®L¯s&hÈÜÓƒÐjÚ¢lsD­0yãYP ’¼ƒéSXi×·òD¾T[¶´U2FzŸåÅ^¶Ó4ëu’ïP–P¨£#†Þ:“·±íùVÍû<-§an ,Êäq‚}N>žõŒ ÞÆ7w6n5=,5µ”p_^°#ÎÜN3Žç®>œþÏHì×£Íaw"C@î0`zUדËUˆ’ „à0±ÊûñŸ¨ªÊÅ­7ï+´çx §^zÖŽ-n6JSeÛ®âÄîݸçŸÀÔÁ™lã“å^x`È™È+ÀÀ½‡ó¦Íq¶Ñ¡†6Ãu<ò;QwÔi—r¬q"c-Ib{ôéè*›9>[Mçùç¿%x=¿úÞ´¯"8…g]¸8÷Ǧi’ɹÖ92@? $`A\ztª¦ÚvdÎä—7¾ÙXl+òª®‘¬é¦ÙÐí†C 8ÈȧÌ®¨Ñœõlà9ßJ£&K†d*Ý$l {V’I"àÙr9bX7eЀЮ{ä~5šÌŒ¥I}¸\õ#ëëPD®Ò²Y_<ã>œTYÄÂ$‘—iê‹…àži)šrƒºRÏ,ÀªpOÍžzu¦«9”ÊÍ´¼ýîx›(PçÊlóŒ‚zñÞ› +$‘îv$í|ß' å%ß í%¢ëŽËô§Ås—ØÊÆp7qõÿõÔ3t6H<äC+Á)0PIàà“Z²"PÐ’âFvBA“aÉb 1ÓóÍ9v´nrpH \Ô—"5ù•£eÚ7±À8=jš¹†Ý¡Ø„¹áy$ã¶?¯µmsÉHÈdc–S×÷{F1Ú¡ŸËùpJœŽ3Àü}*@¹%¼Ô'Õžk*«å`“·>ôõ„<*Êe|}àF?áPÞ¥—^HBìÙÀù8$ÛˆqåüÈû3»v{Õ“´‚sóÛê}jÊò2 ±Æx=9©nêÀ‹¸ …agsn œž54SynXb7ÝžqõªÈÒy*žX“#÷çÞ¥ŒÊÄ}ÌdœW3†§JØ®L’j ÁmÝsÏZÛEu•c,c‚9'üõ¬­-1©†!ñƒÎ>èÈÉ#é])û)™òd“dŸ»ÈíëïZ5df£y·ѦB³áyPàéÿצdlwBü™v§éúÖÐ/Áaa ˜;œa°:~g?…Q²xÍ¿–ÅÈÚJÿ3z“ëúTÆNãœ49Û§e ¨ùt§A,+hŠ[ã'w ý[¼‹mü#åè' õÆqúÖb°Y„€íÉÀ%F­vÒ³2Qmá*¢ÎXœŸ¥Lˆ¦Ót“ 8Q“ÛÔÓg?» ˆvŒàà~©Ü2oò—f2lgükZ@{“$ÅÔ—2ÌxÆ@©s¿ Ø¤e˜ uîyÁçôª)àÈÛ{®FyúUÔrm˜ ï ó ãJÅ;\ªNvä§$J™yT 1QÂv¯Ì£ç?Ä9Æ8æ¥Ú …n£ Ÿñ®J³×CzpE…‘< Lm¸ ÿ<Q¼—©é¸Õ|†Þ¢ç’qÂ¥v¡‹ãœF+jâ=¼ãhÈ 9\O_§z$òO–§ç+œc4€/™!ݸްOÕÒêLÀ“Œ“Lþ´£‰#º„,ˆUGB’ãéžôã—´1õE9žsŽHþT4…û¥và²ã¦Jn#Kl-wgï7$ûû{ŠÚ0/”O5Ä€°ž€`äzŸz°Íˆ|¦ vOçùÕpS ÇÝ_Lgü*Þÿ2ÔC7E'±Ç¥)h RP¨»@åƒÓ8«+°|¡T®gÞª8p!mØ\m§<~• à dÚûšBzñŒV\ö&h¶Ñî@è‹·#ŸÒ¡ 2™s–_˜)ç4‡ÎÞ“;NàH_zœ,fmåY»ÛRöŒÍ2!"ìeq÷Y`ƒÉ©íÝ“jI$rA_½øúÔ±)²·6ô,{öúÑ›¬#/Éè7—Ô¶G5\á;3®ÑµQeyçù¤( –#9ÁéŽ:µî¿ðšÇu¢”¶`Ìc]Êønþ½º×Ω–J‰(UlíÞxíï^¢ièÖ—7 ¸LuáN:W!s j²OâdŽÂÄü‡å€È<;{Wªø>Î9.£{›¸`\f0­½Oý[¨® éÏy­&È"RÇ̧œ`õéžkê¿‚ßíîï!¿¹÷D¤ ÆNÁ‚O|žxÏ×#ŠäÅb=û#¦”T™î? <1¤Ûë0\j²mUet …’2‡ëŒÈ×Ú⟇ÚFƒayA3ÄîÌ8Áã<àö#¿kÆ<à«{Íè^Å5«—ù` £;ŽÆ@85õO†¾xnãÃ1X]Ø}¥ –v8à7\ð? }Oåy¦"¥y­z³« Q¹è?5¿ ëzX½°û jÉó¯w§c‘jöˆ£Ška' ¤pqŽ+”ð×€´?Ú+ivæØ°ù×Gä+±6iS4Á}â¾£ È3 -Ît“Œ•×}{»þ‡çù¶2•j®Pl†dŒZä õÃx@¶Õ­v¼b3÷ˆRFà9í^Š-×ÈD|>Þ„ŠÏ¼±Vˆyk—É5ÙÄ\=Š©AÔ¤–‹n¿‘É‚Æ:5“³î|wâXÙ´“4M*yŒP3dã<œÇ õüóà¾%Ð"I‰û:™Šùj£@8qžFkîOè«“$žZ¶X($‚{ý+æéö’î‘mU6¶åÀ q“œóê=+ùï0¯V”Ôe}­Û­Ïè. ÎÞ"1Œåv|Ÿªé6Vº|’M>dlƒ!ùxäÇnqþ½x&¯áò—RÝAäÆã£¨ã“Ç·Ö¾ñ}Ì–— vë5 J¾þ›qÇNGzómgVÓ5- ˜åA‹1ƒÁ^¸èIZöp8ÚÕTZj߉ûf1œ.|Óyl÷6á˜y) º?¹»‘žäñëÚ¸Ÿè­e, +‚ °Ø˜qœqÇ®êÞ*{U46¥6;Xã+·»øyÆsÇâÄ °À<žþا¨®6M˹ åºä“Î1M €æÆW“º¤gg!ˆýÂ=ý!'æ‘Á<ŒsÈ®ØÙ¢†ð3µ›!xx¨K4lÌvKßJœ£ ¤a£–9$;ûuªùÌþ¨ªðA<ŸzÊZÊbJËû°Y·à9ÇóéQ:B¨wí9Ý´Ÿñ« )P|Ø9IÎ{gÒ™#8¥‘SËØÛàžO<Ÿ¦+Jr3Ün6Å*¦às­BҪɇf%ÌHçéRºJÑ’¬ Ž0ÍÏÿ_ð¦/•æFe]í‚vŽ™ÇòÏZ¹êfÖ¢±ýÒ¶é0¿xÅ4¼xÎѼ”òsÞž”í–ù€ «·qÞÕy’$™^ƒ qž*b Tf;Y¶2–ç-ƒŸ§Â¥`U‚²…}£žÙã¿a²»,+žøïÍX)"ƒç;–°a޼{ÒzSIh¿x¥»:­LvðVGãpqØv§`Â9ÝË’Hîo˜¡Ð !Xò3øÒzš¥bÂLÅŽc&CÎÖÎ:NG‘dF9, gíP»Ž m?ÃÀ©ÌdÈ *™AûªÊÜöSïY4l·'ÜBð¹Tgñ¦,ŒÒ—yˆ‘ñ&#ŸÃUm²•ráwà€…¹=xþU:—máÇ™D ½z`ן¥g©½ËHìñ |#6!wôëK+€Hs±F*['9÷¦BK:ƨNÄ+ødd}?*Ž&ıy­Ó˜ØÏ¿ÿZªz›R©bˆÚ]Æ'oº\ß'§ãN/ç\ìLùEC¬?ç¸&« -!³áÒ7 tÎyçúTÑ¿˜H_³”‘†K¹÷à~‚¥S:ÔÇ*˜¯•KÈá“ dàŒóOตs¹yíÿ×ö¨YÝËH#cÀU8çúgÞœÄJ«æ2À­ó“éXÍY›Âw_u°…ÙÙ°Ns’sÀLRÂKŽ'X‹Dѳ{¸?çµ6<‡`ûWh ¤``‘€yêA¥­ ‡G` ÀÀã’!U M‘øÄa”7 ½Ç^p?ÃÒ¬•UÖGÝ’Ž»@b\rHõ¨¡XÜ•Ü<ÜædŸnœzRJ†9†F–0X)Ï=ë[YTDÀ¯ÚL®Áº*¨b£ÓÐ ÔX‰æÝ¾`qœ²—Ôû~t¬_ËÙŸ0ì ’ÜçžÞj¾ì¤›%W\lÆp=Hÿ<Ó‚ÔålMÇprÈ»œ•]€'onzÒ‹ÜHw32ª$;ã±ïBgϘÚP …VÆOÃ5+3 ÜU |lÃzgÓʼ¦ìsè„X÷<€ W ‘ÃsÓÿ­NÌ "4U$ÿTã=9ì>´y©¾9<¦nÈÇô©#ÏpX+0OÊsÛü÷­áRÃZ<]‡*ˆHù°½;þýz¹ãï$Î @ïÀé\T"$˜ •†åžôÙ\Çor£qÙãv@ŸZ¹I³D¬‰‹±‰Ë|ÛÏuëõöëŠ{öæ7ß÷sÏÿ«Šœ$Ì»ÇÍ$»³ÇLëÈÏj–'c!Ác rAà±þ•‡+2¨…‰BÆÑ•/…Ëpy?QéO–ÙmBÑ€C,ìŽNzŽõlQÚ]”äü§Àÿ:± Š.•!šF18Ç8ã½;/A±ßäE 9Ø 3~=jbågC¶Â¿2ØêpíÇ^MC²T—j†u'•Ú8÷íÅ/šÁŒˆÅx±xwçÒ•¤j•Ëm-¸·W‚c,sŸséQœ9ò‘Ðù¾CÔ‘ÊôÁe’ù•¤&6PÛÛÇŒdƒÓŸ_åI±ã¸•˜©rÛP?PsÉÏz¸Ý è8ÆËq!†\6N qR¹$+0ýáÁPÜ’H?‡cUÒa,ò.Ñ×ùX‡z°Öû¼ˆØîuù„AH<õ¥ÈæDÃyGºgŒ•ù±»&0) ¿ÚmÄÈœ¶Õîƒ×ðéô¨ÖXSË2ª~ðî3ŒsÇ522ªàˆŠníÏqŽßÖ²•Ozã¾…õYe»1Ç,N»ˆŒ!ê9÷ãÚ¡cY,¶÷s†ä`c¿®iR%k@JÄÒ(ÜÁºã=韭G(ŠFËFv©'ðóõ¦¯6g) ~v,—…8ëÏaŒúвÒȰ¤’çÜîæÏ½:qÞ –6yÖS•B~BÀto­HÒ+iîc Ä6ÖFààŽ§Ó5«§k6>)dHd Ã;r€OOLçRù%›±Ž/7'`’yèHü+0ÈaH™£*>VÚqè;sWãVx|Åó"âAóuîFzsÛWZK”A ¼©wçy»D™RØáx=AöéVc†n–HؾF:œ“œç=jx’UXá„:)}ø'¸f9ÿ<ѲHå.Œ’ý×ÞøÆqéÛ¯­`Þ­ ĵs¯”„Kæ°ìÃsКC+$XaVN0Çåç±Ï?E4r4¨‘Â#Le”±cŒŒ¶O8ç•Dˆ¶·rÉ,q—f ¾ÞÕ pŠÔ›l͉f0¡?{~Y×ÛùSDòÛH“)W¸Wb™>PG|TÈŠÛœ/L^vöëÞª£,’¶âYIÆr?ÏZêZ¡¶ìhK{usvVIWiV òäãñ=+=UÝåßr%pãÚ˜ÒbåJ±B "ç'=±Ò£F>RŽð#Þ´Œ3 Llä™p§ýXRvnÈ=}ϵ #4…·)c³=±×"¢Qåw)+8!Š«d(cÛzóQN<òfetÊ–Ç_l}:TÛU¶8ûž`Üóœ }*6E †FäŽàœjÆSlÚV©Ù¶YT: ®WŽÔÔ‡‚g’5ÊàˆÆx÷?¥3Ê!·FY[(l zõ¥ÉûARÙ9å†pÜuÇ¥;•pLô.ìÛs´6åR6b¶xËo±ÀaÇéýidxªº1Pr:œg>Ôß1|ÊÌFIÜyÑq‘2$ˆX²œÛþx¦®VëÍ =p¿®*RÌÀÌÈ+ÁÿëSD–~Xðs‘ߠǥ]¬)lN±ùá݈:‚ÅŸ!ÏsÏCíP”p[æá[žzqÒ¦-­ fBå~a»ÏòÍWó"–I#ŽN­\j²Jå7Éi72…bŽÀÔFTÜQ[ gúR³–ùK(#Œ¡È8?çš]©ŒçyÏ×Úº „Ú±4dº 2ÝžÇÓ¦;Lˆ’B‚ANzqß½J¢1†Â©+œ>ôÕP¾jÈêA;¾^:zÑ2‰OÊUÕ¾nH9Æ{~,8ò[:H8ÞêqPF…%<¡‹LŸ\Õ²±±Ø­ÎÞB’@ÿëT¨èZdƒi·BB B“Ÿ­XŒ®ñä‚>ï·¯Ò«Dè®WÍÜ¡îQíSÇ;$Y+…a•ÈÇøVl´O$¢4®Gnõe7I ª³Jàg¯VTVE•FnæçüàV„2,PÄòrø\sì}+&ÍbÈ`‹eÒ#2„Pp\`ñëÔÖüÊ· û]àcµ2Ü‚;œc={TVÖÿh¿Iã†ÝÇâkWm½¼±É#–!¸RãØþ™¬çPÕ+ [V’Í€MÃwlçñ'ùW;wi%¯ï¶:· müu^ÈYÈ·‹y%†ÄÀl÷Íc^3M ´¨ÍèI__Æ•2g©œWíZZ4dFʸbO-øûW32ù°d ò85Ôé3•½’ÞàîýÚ¦2:óŸéXzœ[/]¸VßÇÉÏ\šî§s¹J'2îF|¸T`õê)£+3FN0AõÏΘ®DûØ'˜Œc~þubVß “/œuâ´”´3l¦Hü;î ƒ†Æ~žŸ_‡?hRJ¸ýæ@ÍQûª8K¼ñþzÕ¨ü³"O˜àŽâ(´wó>n;ç<Ô*ªÎ0ÌnHsSE,lLŠª ˜u¬Ý4rò„] rA$ý1S®!ÀaŒ1Ä™öïUÝãeGÀY@ N8ïWcä¶'o”¡‡®G¿ôÅO"¹)¡ @7–ø„Ÿéþ}jËÅ&Õ\6HÀ èyëôíTUÿÐ6£º1’1“žßJžÙ „°€9!¹ëœúwªp3‘~ÖÚí¿xfPv˜(88õ¯L¶´“þrbo.eQå/†‡Ò¼ÿKYËùÛÛbàFG¥z^›r²0O½1N>\3Ó>œ~~•ÍQX¹£ é:›J/R)<Ô1Ý÷sŽÜ‘“ŽÿZýý–í--õ{ÙµpÎ^,ÇÃí>¼žØ<Èñ‡‡®¡ÓRÓÍ‘£ó†2»º÷Ï\Œžµô×Ã뻨b7úd»šHÉX‘;síÛžœûWÌf’rŒ—‘ÓEXûÇÁ>mWâÝÜm$ÿÙ,ÙnÎØýø{æ¾²ðæ„4íV)Hñ¢‘xÎÑžç¹ã­|Ãð‹íf]5.Ç•ä‚~ìÈÇ ç‘Üw¯¶ôå?aFecå9Éǽ|žGX¼ÁS½­®×ØòsÜT©FË©¤¼ŒÓéÝ¥¯ÜéEXøf!Ó礦7ô©©4ÎsZÓ­® ^=ß7AÅxWÄ é·^º;g†AlÏ8ëߟëÚ½æâI¼¹“òŸ”‘^1ñvÑ,kXyLç ‚{gò¯æ®>¯†úÍJªòk®ÇÙð½zÑÅRQ•µ>'ñŸ‡,Ž…"O4ÖÈIFS/Ì|’qOAÚ¾iÔ´{X-šêÙÕFH„—gçjŽG$qÓšûÅMñÔrXîH”|ÂÛ[-åî#“Óßõ­-'HðÍσ㸼¸?i ù`ðÜyàc c ­ÏZÛ\,¾|p˜Y™@‰ ‘ç#w^Ü{šñûË™ ¼¶ÐÅq Nrzûb¿FÊñ0«N.;™æØ}dÞÇ#ãm+H³Õž{ù H _¸êIì9÷¯$¿iß,ˆåp‡ÈÅz©tÎåLÆRß0É$o€=F{q\&¡Ì][sÎì‘“žOO­~‹–¶©®gsò,òö•Xãä™FŒ°SÉ,2ÞõQö4@”Éà.yô9üëRíck¤…Ws1ÆTòGô¬Ì#l Üíä/Q×±¯£†§ÅUVd;0#ÛÈ«È ÙÏ<ÔWDÉ)f‰ÔòàôïÐuôª·ö‚r¤˜¥S7nÒ»otù1ŽOó®ØRVØó+L´øDa­æíÜè99éžG¥U‘О2cæoºAÇ5%¸–Y€,ÞX‹ðÏ¥HöÍä,© 'nï”äcßÒ¶…E‡?²æ3q!i|°¡T 8´’ciÚû¥êcÚœçÛ@XÜŒääuÍ2L¿ÌvpÞ€Ÿ Åm~dsI4ì)'>C6î!JÑ»*0§ósøÓÕ‹´LX¾ ÓËFrQƒ«Ôúýk6Ú)- dÊï|iÊcRåßqaµ¶’_åN‘z¾bȼãŒcJ®JŽ0OÆ®1lÆL¶QZHÜ:¤/ÎŒät×=sV<²(Å[»Ðõª¢uuvWwcN9«êçÎˢɌÚNvöü«9Å£HDz,¿ÝT|vÇò¦·E" ‡òyÒœ®æ!œ1bIéÅ+à¨ùpqŽØÿç“7Zå·))‘ göëU›x½)Žÿ<àU¬æJ(“=0~ïçPÈqÌÜ1áwôïY\Ž£”¸`ÍÁúЍP>&_(c Øo®:cß­L[ ˜ä;¸É\óÏ*¡”;¾ œŸ”cϦkH­MÐY …0`…ºÿTwü¡Q:²œÕ,ç÷Ù„žyàTrĦ<Ç»8ë×Þº¢ÎiËR2ÿ1mòQ’Óž"eR…ŽW+Æ6þt…qpW/Œ’ ðJj» ¢ØdŒå>ñ¥-jYP…C…Q(áI=ÿÆ, F®Šà[#ùÿˆÍÝÛ "’ÝùäSÚFbÛƒdà=‡P}+7vËC·de*̽x$¿=ÿȨYr›ð½ßÇã¥NÕ‘¤ ò’ØÏ¥4ÌÀ:ï8ç9Çùö¬Ú%±KEIóyd/,¤žqØt¦}É~RBǹôâ‚ÊÑF£sñŒí G ™Ûó9éÀ?Ï¥T"ÄØŸf9rJ±lÊý8É'ü*¹g}ÍÕû¹$ã±5*¡æù€= êXŽiÒTCœn/qéøW\$a-ÈËbq"“d+óïÇ¥@á|ÀÊ6£s“ŠPŒPddçn?úõ퉘|˸ãåùÎ?¥)ų92C,qÜ(RwKt¤vÚŸiÏO—<Ó E*nù8\³mcÇb)¬SÏcã¡*Z’` ¸É(¨Ë¸F~´ŒTÛl+Žr1Ó>£ð¦;—C—ÚT|¤/ÞöÍ<ŠXÈBž£ÿ>kH»°1ƒ˜arCùTJ¹‘ –cѽÿýU4j¯;árÊ£tE›·ÈGÊ3Î}k¢)XVå‘0' ·¯$š°#}…‰‡£óÁôúÔ »æm¡‚à«‚yÔb`áxUS&N8õúÖ$c¡"ðÈ$ TçŸqÎ)È~@£é³ïÇëMÉÝ·$•㿈íB¼Œ„ˆÀ. ð=?Î%–D¬w¶é<ííéQ‡zDq ÁN}Áǧ4Å%¶ÆR#Á»ãÓ"¥Wc;b€7±ÏAõïÛ4¦Á6;ÊR Ì)‚vžOçÉ©q/š« 0f$ŒŸ¥1@cî(î6…ÈÆ:ñÇëH]Û+6lþ•‚FˆxijÈ“.âA¼õÏéI¸s6ɘ“òŽ£ÉíÞšò(PàÈ¥ÎNQÍZBÄÆŒ ííëÔóZ/B“Ôj¨\É 99RXƒ×¯¥Fæ/rÆGÈ`“ŒØ «,ªÏû²T˜Îî€ú{Ów9gÙ !ŽO5Lé‹Ð°Uâ…_Þ’xÈÏó“ÅLŒÿhmòýÙAµ‹(Ç}?J¬w-¾@0APù#¥=ef“å‰>oá@@°ÏOÇÞ±š¹ÓMê,ޝ¸÷’1¼qÓÒžãcˆBgÀó(ÏO§zbÏ$K6ØÐî­ÓÇÿ=ªI”;¯’ÅW,£¸þ•„tgKž…¿."¬‰´ä1ÎpG_¯ZPÛƒþî6m£qEÚ¸¿OZd†9dgB³È©÷O§¤’䙚0Žžÿýzèƒæ2•M”ò¦fI¶FàÂáƒwÇ<ñô¨ŽÆe*`üËò•Ýïïý*;š JÌÙ%Ù¸êñR€Mˆ¸fа'õ'Øü«UîÈär¸Š¨—êd' 7ã8æ¤Ä‚òM²æ=§¾=‰¨cGkÍÈ»bþ)Îßñþy©å–iÆ’,{²X“€Þ£Ûéë^\ BÜ` $›@K°îlþ¿©à|0M‘«y|ï`>Þ¢¡ c“ËxöÁ]½Å9ßå¶Ç~B2¯:sÓükÙ›-‡ùJÐLJ;òpHþ!ýïžÀÇ?”ùfŒc26’9þ´…$ù6˜Ä gç<€R}i  ™"ŽRœîÚpðç9ïZ&'-€—DýÀ|ÄÀ,;{Œúûâ’=±ÈÈi˜qšÉ#”‘˜ÈEÝÛŒ–àþY§DÁ]~DpËÊ`J§-‰VdlòErÑ*‡ÛÂçŒOJ¾3çÂÙ1±ã×ùTLÊ.£`ææ6Rçøõ¤ áƒDìCte<ŠÔvÐHn‘ƒ“Ê•ÀéþG5r4i%(óæ`Œ`t5PFb…Ą܎ƒ#€;‚;Ó’ÝŠJYC ÊíbBý=êL‘·¤q¬ ®HÉÀ«Jx™ÀŒº®HA‚vàdŸÇõªðZ¤BMÒmÀB½zäõ©C#“ª8Ï_^½ ­,LæÉ#‘Vi¤R¡pÌr~cÜ{UµF\J¸UaóŸò*в›­ŠòÜfQÁã ö§ÇC4ê„ù¸ÜÛŽxþŸ…gtJd‰Ú-ŽÀg.¼Ã#ä´aÙ²úú`Æ›+µe#m¬¡¶ç…n@÷<“SÄŽñ<…NìòGl:ÅÆàæM#Ý©Ë^¹.ßLžô@Q ãc“ž9×#ùw¦€þdˆ‘UÔ. ǯÐz|l8—æ 7@8Æ=ú ÚƒQfi¦$²©ÊB9f €:^j;ëh¢5ùÁÈûÃ<Œu#óK±¥´âßjƒæ8W-“ݧ.Ô€±O.>2%G ô­êMt 2ź;ÊzøT܈X4`÷9ÆG)]ÒLo™’C‘†bGnH^E¹ ‘FÇ8E“ùôç§±¦§˜êþQŽFÀ•ëÏn+>{oC6R4܃µpHÏ~zwÍ, q ‰J<ôÇùõ¨JÉ,E’’1 µz‘õíÒ¦' ^๠}«†n8üz~U+VØå Ã;£#KµWæUßýqê)™æJT7îò ž3޹‰õ¤*H²Å¹Ñ°~^¼qƒÓÔ…ÙB¤VÑÈ›ùŽsZAXÆöcR8Úʃ&Ês÷‡aŸñªŠ®ÃyŽ­´  r £Ó¿Ò”™¤I$S>`Iœã?•@fts$€1;—nqŽzöÏJè§aMQ\1òÔÈ*ê}y#èiGšn0‘ì|dœáH¨"YîÈuUv8eÊŒãžI•4‡ìѹ•Üb>…N?–}kD̓ԜÈÿa–0…9Ý+’23ÇÓðëÅS2D…¹™¥ûÌc#µéÅAö£/îä8ÊŒöêGéQ˜š;X³)èSÝ¿¥>bïa²ÊÌH$¢±Ë€Fñ¨Î×°,åèE5ˆc’3žŠ§ÏZšsvÈù ÀR tü+K; ™\­æÈùk8Œqœ‘Üö©J¯œ%—“¸có=꺀͌àgIçš‘åɘb=Ä|êÎI$t×ÍQÜÞ; *Ÿ4I“´Ç¸È4’ͽ˜°eg-Æ¥1•Ñø#sóãéŸð©bŽ6r nùÜ6FO·zÅSFÑ‘…rÎÛ™xk{÷«ÃÈ‚F"£xÄEY› x8\Ä›‰!Cuè=q×½7l$‘ä@¬ÌÜä ¹¨”`Så°~G=ýéÒ\³™brN1Få۸ع…\"‘< a9ØÌXOQP³¸Ê¯ §8+O\ã EYxÏ?†i€«ÛŒ²m ´.Ì~¾¾ôírdîE¹åU2]•¾|ô1ÿë¨å‡—øÂ`çŒçúñR‡Ž(Øm•]†ÒqÆ~µc$ŽÒà€0 “ëWìl`È>a¼.…ŠllaÝßžqþ}*=ª8ç8È gó©”bWáù+¨àœñZEØDÆLJ@;GÕƒŽ¥&,E· ¤€Ï>ýkF=X¤ƒ€«“’xàÕ‚n#Ø È9Éö«¸7`¹À;p05‰i²ò™ ›ˆ@Ú¤‚kFÌ*ÊÆDŽIYr«ýïÃÜÕî|ÆdÁ#iþ%ÅX »:e‰È#wQÖ³t‘ºi£¢K+ŒdÉ .¡•c+n#€sÓÚŸqå &H›ð*¿+/oÏŽj•¦ª~ÌVhÌØääg§óéLžø\Å+µ·ïX|­³¯¶{UÆ) ”âÝZÏWŠcÝÐ`w«Ô‘ÊRU*N›=±Uõ#’à‡ÊÛœåvŸÎª¬s>Ÿæ,[ÕHÊ’ýjÞ;óvfd‹· ާŒÓØ  úaºô·¬ÓòÌj£æPxϵ"È®YNÆb0;1ßò¤ÕÙ—0ÄæÛAnrHéô©: ,w n3‘U›‚Õlõ¿Ö”»(¨$¸AÛ"‡h™¥)Ø«€£’‘ÿë¤CM#2¨‘ÇÊ{/=zûTPó$˜<ä` –iG–%~`ìH¬” nOåüû÷F"eÌl£<Ä„†YV°žŸž*k*FLÜ|ÊOCøw©›{2+¢ªò?ô?áC€)X•7<çpÎv¨éÇòŸ"…NI`[·8#ëÅ!Å#FÅ™[å¶ '¶i©å¤¥ˆi]Fxäê}*dÒeó]'+±Šc€Ã’=èC‘…]Ùåȧ–)ØIn®H¿åI"‰!8lŒ¢ ƒõ'¥J…Âì\‘0VM»x*‡9>´¤&YÕz˜¼oòi¿0¹TA‘´nŒdúŸJåä,v#8Ç•÷Œü7kw¤]C寮«ÆHÜXt:s_ øÎêGžxP¤3ZÜ–ÇÊ=ò08ý=ëã2‡VP§ |ìSðVa M-â|å¯ÛN.'»D«÷QYIާÜóëǧJñ}brÄÄ$‰P‚Yr¿/=@ï^Åâ)å—Lœy” mVo'8dpyúv5á÷ñF’%¾óË=óùsÍ~½‘`eíg8ÈÆ›<Þú3%äÛòw7n9Ðz7øW?xnc• !TòʲÈÇ óמJèî|²JŸ+$!àÈ0A;k”»™Ü»òÙ:ç¿ã_¦ài¸ÆÌüƒ7ª§+£™ºAæ$Ȭ3žßSšªvŠ”!‡?snÇëZ. ÈèÉ…ÎHn€8ªs¢GÆB’Pœ€J÷i­Ž®ì`\ÀË4²ã'ãj·ÊÇ+m#–'óüªôþŽÜ Ý×'?çµRI±!Á„3ŒäÔf½(KCǪõ4íü¸cȯ.9 sÏôãùVšê6qéÆ)"G}à‡mÿª¹=ÆK§X«nûÇ€?^´×Rd!Ú_1y*ÌvoÿU Š5,‚uMòí)ÇüñURå÷znÈ4­¸!,±íÀàv>œÔ[]×(„ +ß¼ec–¦¬‘f]ÛˆâÙÆ>µ.÷£&À'ÇÖªÛ,Á¿v{©ÇÔ°±)·wÈ#Ú©êHÙ7²’‘‚ÊI?_zt1æU¤`:ñŒÿ…52³ˆÛqI}>´ôP%c 20Aüªã4‘Ÿ%ÙuVD‹åÀlå‰9}ô©`Œya yaÌò3Ø‘U“åP‘F3×–$úêÎwª3¸`ÈëúÔN¢:adƒ˜c’=é¦M±„s d.ßOJE!db7ÈJdySžôýÌ-÷È’ ää~Å'©bDý—îI0 “ž}ý)ÍèÕqÁVêÏ­DUD!X‚•NO×¥5Ã&¢±oºŒþ½gÊÙ-{3+ÕAÛÆr}ûœúÕg4¬7¡ãîøê)ñä‰È¿.‘À?^Õ^HÀ-‚8aƒ‚qÆ+¦*ÆmŒeÜ[.P™ݞþÔÁ±%ÈȦɓJvŒ›'ÿëÓ™wÀ²œzð+xÆèÍ¡È1 äà¶0vŸéKµU>è`œ{☨QPű÷{ŸN*FÂÈ¥”±9ÎF+)èÊŠb€Šì±€|³œ“–ÇáÐS€ŒÆd‹w\77¡>”åY$BB!U±•JbþíBž=…!§a¢98³nÆp;Æ¢R¥bO8RWõ#G»æHßi$ŸäÓ]Bǀϒ¹qÔu«ŒH’&>få`>PçŒè=©‡lŸ3G+!äççñ¦2»AWàÈT{sÔg,§©qš¾RS¤ù™d`œ}ME<`LIÇ<–cž1Øbœ¥‰çs® ‡qÔT¸FÙ¿oñ09ÀïøµL™1GØÏ¸HG' ž8ïùTLå³/ÎAÁã¿×½4€Ð›‰ éI"©òÃ:´E8Áçwz«#™ê ?táÆ JMª±©‘‹<ƒœõJU!b;NÜ6ìg'Óð 3e†GLrªP¸ˆÜ?”¿#€HÏóOé&NXùyàrGÓ½C¼ä!{Ž~î ï:F¢F'ÐýiòØãòlyåÀ;ÙF@ퟥ=‹”aµR\Œ«‚E#c û¸Ë9ϵ=Ìi˜Jª¥@8ú§= "Jd ÎØÎ{wÏøãÎVó¡q–=³šŽ6VSÊÆ0qfžŠ»ÝX¯9cÁç=¿Jåž¬Ñ x›¶¹mÀ{Ó”@±vÚNw``}?ýT܆VGPÓ1ù·ò®:|æš$&PªÙqüíUì]ÉV$/!T ·%W±Ïj¶ØH΂Jn`W$¨VÎ}:ñAEòÕ¤_3<  ’sÚ›Šã_fÖ,…P€Å™~U'×?Ïð—åxÀÛÈR{ôíQ¿úÁ´Y0@#ðä÷¨Ð•‰—k²É€răŸÇéY­]¢É"4Âù†6ûà°À펞¹4¥ïÊ;’qŸCJWQ²2C4„~l;dÓ-æ.ÿ¸?ÝÎé[[B£-I"Øcòˆ‘“‘íQ¨ç!¶²ìÛžõ#ò¥bËY™¦8ÙŒgúR‘%[™26•nŸJÆLÝHTùfÜQþQ“€FqÇ9íïWbhÚ#rÁ6£ÉÎ=ÿ¥C*,ˆ$iwC´ð°8=}x¦£FóF™Pœ¸S“߃ïÒ±æ³6Œ˜7Ÿ¸;m‘ÀÛ±2I'œzÃÐÑo¤@£ý¤%Ol{~´Ÿé")`­Á'¾1Š– “,È™HdR@nxȧ8ÜÓÚ1Atw á"AEQÀµ<²’Y¥?2ár»¸äþhM{ntËx¡I9 Ô1õéŒúÖg–ÒÂÅã‘r8^ƒ¡ÏΪkS9T›‘üÂÈ®°¬Š9Î2<œ sÓ5#+ùð+(l¯ Îy•\yR,©Ãç¦8ïÓ§¥:Uи[…RH-Ôv8ì5Òá}L”ÊÛ³"•p~Pyþ\Õ‚†8ÆVá·“’9ì;¬ÒF$12J%UÁõÎzöæ¬“Ê 3.ߘ«ç'±>½3Ö¼Ö¬Åy$û;‰ Š»·ßt™üqÖ¦û;ºœ3ƒ·öô>•00²†NOÌ $z{Š'Uûž\e£ BO½Ž?:æäÔÓ˜s6@¬Ç,Ãù ˆÌAš=ªÇ ]Ž1Ç?OåNþ>#wNsœç'¯ÒžË—åày›°OE#=Íháb9‚„nѯÌF厷Lô¥g+BœŽ0›Šþ=©±ê‘¢J«“¹>ðü)1 UX¸ pã§QÇ9©ådûBfi‚®ôewGÁ?^:ûûT 2ÆW–OÍܱ'õ¨\J6 6!èÌxäööíšz4fæ¢.óó %O¾{ãŒ~5Z¢ý¦„É&ë´2å™FÒ8úU‘ÙŠ±Sò|‰€×®=ÉÍ@¿gó˜Èp „È#§ó§Æ©(}“¦W;ˆáŒ}:sZE\ËžÃÇúÒÙ(œ‚Aäzê?ÎjV‘÷Äm%(ü£ŸÐ h*"Â<{@+Œîä£ÜÔ^dݲîD”&äTm¸ƒž3Žô¦¬´:eô‚Y£Eç Áõ÷úS¹ŠG,¬Ñð{üÙëþsÖ¢Œ)µÜTʸÜò¤§c ‚1èF:ôÁ44±­:§8Xùg€r8ýë's.wqþimò‡BÅw¼p2.y=:U€ß+…eßH?ÅØ€>§Š¡*m‘d’ƒcrŽ›‡j¶“ ³™ÕŠÀÜ@' >Ýiò´†õ'Fææ7u;OÉœñÓû}*ï`‰» Îxúæ‘0HRÅ PWÍ-ÔšGÇ0Y äT?@;tíQtÕ‰£œxÚ ‚øù€z0çµK™|èÖD|”ÜžZr?3ך„~òb»]»hÛ=2}±RŽ+…þúM˜»•ôÏaÀ«“m—'a•Ÿï3H ddàçÒpò›çû(‘¦Öp£O~­+¢‰ŠÉûÌH 'N‡úŠ•Ì wƹwÜíÆÒºo¥ GpÉj¨&b¹ÜѪü¡±Œÿž*”SŸµ0 ˜‘~ê·_rMN«PpÜâüG¥0*7a p=1šë¦ù˜ÊlMÅ»£,Â=Á÷÷O@ÇJ°‘[ÂÍ$­½†ÕSß\‹ƒt¨¾i;pÆpê{öªBÑÂä¸ÍÃ"ñSšéQdJEß¶†I4br íóÅg1AæHbœ’ÃÐvô=jÆ›DˆI\1àTA˜»n$ŽÛ½ë^S4Z oµAA¸ ¸Éçñ¦³¬pª#’‡æÛÓo'¿åõªÄ1PÛv.ì9õþµRòÄH¬@VsÖ²h$îNåYã~Š ÆGÖ¥’?-ƒùs¸©Å@·[&“l…OwdqëV‚I4òIä¤Hzž€wþº×™XIƒZù{Üd6Â_Êžë¹o²2 ÆO­Lû ŸzÊ’>ÜÆ=(1ĘľããÐg\ן&ÜÓ+™ŠÉ*C0#æï\úÔÌ<»}ñ¸!†n SíKµØ YsŽxçsRΙ†&Be'#æ¿Ç­n®¢kŸÎ­É Ê“÷¸Æ)§lùl~XØnÏ¿µNŽ­2ôØ6@þªlѯûÄŒ©'¡ô®g'sF@v‹ÀÁ•Æx^§ñ§‘¸2œ¦IpF=þtÖ*FÄHpIÇó©#B«ÅT’OEooñ®ˆHžR7Eò b@ Áã¥F +7^yž¡ã°Û ãŒzþt¢<; Õ€Úz2ã¿ÿZµk¨4@îY`‹½Îqý*9_1C‘Æá“ü©Å|©à ¼Ö¤h†äEv|ž¿…7= Z3ßpà³(9ä·ëŠ‘34¡$™‰ëÅ\h¤xš$M§̓ژ¨2;ÈÉ篵(êA³ *6©'Œâó÷3ã½ JÆ3±~`$qG–¦C‚ïŽøëíNhv"Á’"@ /Cî=ªDI˜å!â=FÜÂ¥ ,2aU Æ6ñ«*ªvFA† ò=¾œR¸XrD¶$ä aÏáÜÓcbêWÜ€Ø=*D ]ªÄõù³ß­ ¾c®?ñù5›f±±2«>ÖC°Žê„žÜÆ´ÑX1ivÊÛNN3Î*È‘¼lW`Ááryÿ"´•265-ó…ãw×ÔwªE²óHB<J°0ç¸ïÒ­ÁõÚÁÎ[Øüu¨ ´̃`*Ë!`8÷«!BÞ0½e\…ÙÔÿJM1¦]¶°†+²-¢mÏÙT•þ¢´5KKhÂÀ…ÙOL0ÇJ¯öجö!YÃó #oõLî8\îZpX∠ùƒ’8éžâ¬ÝIܹÃÏ?QUŒã³0Á+»;¿úÔµ$ˆ¨ßµÌ‡Ž6 `P ddŒeˆl•úU™õŠ(‹Øõê< 2@‡¥C»*%„ Ç:óŒçÚ4‹°0Aµ†A<CLO1b*£vO$3žÔï(OÞ2ǃ•ã¿ZÓ”·!Sw1mÜNséS±\—$Fìæ¡ ¶¸í÷x© 9Ü8=E;© bc.Ùlœn@1ÿë©Jˆ·šÊÈ'¨ÿˆ•Ùì2qŽ?‘§.÷,vœ)ùƒu?qÔŽ¦ÑdªIˆÈÝÿÏzf0w(‚vnçßÚœDJrÇ#wÞã­Nª7I¸àl!UGSéW’-nDY¼ærà›äZ|¾H¥Þªv¹O½W |â&õNzs@nÛqž˜ÃëëšS±ªe”ÂÉå‡;ûàôõ©ã בÀ!‘]ÎÜ©ã¦OáH… T&åãž§§^Ãõ“Ë—`’C“Œ$Ž¾ÕšvC½ÍŽ!4¹ˆ(9þØ{Ô ÆàAÃÜ ŽFs$eAÀî©Ï¯éÍXG;dudÝûy#éWs)$-¼—Ú5gØ8ýï·m˜yD‡ÚYFßcŸQYFÊ« b2vúzó]%³BÑs+(U%Sÿ´¹HÒåÛe—PáÀ”¶ä\Ù9\gŽ@ãÒ»Ô•­V žBQpÍü§8ç9ü ãá­ óÕq#>Á•%ÁÇ_jëm'KˆÌlÓÊÙØ ÉÇ`õ5ÁZ]ËJç®x%ã—SI.ƒBÒ®QcN™¨í×ò¯ª<xÑÝ%…¼¬,Ë(ñV98=:õ?…|‹á‹ãm,[-ŠH˜°ÅXdóž½³ƒ_KxKU’óY´ŽhVÝ#\ Çhã‘ߦxè+ás«Ùž®Ø~¹¹Ð5Xÿ³.]˜¶6Ë’v±õíøç¯Zú“ÃúõÕ¸•D¥äûØc‘Œ ž™ïÀÍ|ùà‹M9m ëHÓ¼kÎNBç8Ïcùý+ܬ"H¡f‚€`‘ÀÎyü~•ø¾aöuàû³Ô­„„¡ï#Ðlücpó5³ùê¡r½Iâ»=/ÆݺÛɾ;€ óÎïÒ¼ŽÅL­=Æèvï>™k¨‚{F±ˆ5è…—rc>Çò¯KÅ9• Štkh×–§ËfNZr}ǧ\ë1ÅjXÊÀ=«&]bÓÍ$ >ÍÁr >µäÞ,ÜžžêÚõï¼±ó&Ò=ÿ*á4›Ø/­–ï|ñJŸ$¬³NN½:þuÑ›qvaVÊ£ºõý5#ÂÔªÓçæqô4ÚÕ´ö¡¢—teþfS·hï\·ˆ¼J–6Ù#z…lr2ÈüEy}æ¹”¦ .d¶“åhÂüâNNAÞÕæ¾'ñ$ñÚBÖ‡Ï.ä͹ˆ,3ۑʾO(´çÕk¯ôϥʸ.UjÅ'§õò9ÿˆ¾4šKi ŽdÝÀàn¼±îÉãé_øºpšmÔI4Óɹœ»g#ûÞÇ<þ>Õê%Ög¼žîy bÄ)8SÆ2Iç‚sÆzä×ÏÞ"ÔdØìÈ|ä;UÛ—e$| z߱Ͻe‘Röø¤ïdÏ鼓!†£ôÔò¯j2o–XŽÄKbAìOsœíô¯‘‹F<Ñ#4jHbÀ†äîOÐv®¯ZÖŒrÝ-„­ñË…ôc=*áo¯¡ò¿p©1 °óó¸n¼8÷¯ÝòŒ=Úk¡ñÙ".Ã~ÕÆà~UÝ’Äp¤5Hè€ÜÇÆÐ1¸ÿõê¹]ÌÓ+! ÜW$#çñö¤C€6Ú ‘¸ŸÆ‡Lp7cæäqÒ¥eò×xÞ¡¸ Ä·¥kìô%f0îã<ž¾˜þ´äu `Üô¥PFXáAç.I÷‘·`É‚pÄ ÀsÔõ›ˆh8;4¡Àå=úõ8Ì“»ÓU IWjª>>oAÿÖ«Û‰Ý" 1¸ä+)-F‘oÿU0ïD2Ã9oLTÅÂ[%@2 Ϧ8ÿõÕVmò4%$ñוúãñ­ ÆFù[`C,`ýÕ݃ŸoZ®ù*ÌÎÊMà÷ëƒÛ?ά†ÏÊ ûy?Qýi¤ÅÎX|Í×è8®ƒ)FÃ"r˜4YC õG¡÷¨£pÌD›³Œnãò¥ÉU?º%ºàŽ£Ò€ ÂæPË“´cõõõ­bì@ÒùmÁŽ­ýà•LHݼÈΧ¦N™¨cÍ«mù³ÇOz°du—©Ð*žk9Ù±¡Žò%ÉPzÊ8©K€F6mï9êZ…Qü|ØÃƒÈVÆ=3ë@yÕC(èÃ#4EÈp æìù‹®vÆÍ€ DùØÊI;ÑNvýi“ÈÆV”»XqAÍMûÒG 2øÀõük¡- §b7™GîÏ8 ÓØúTo‚«4h¿tä’ÿëÒÈAÀV\õ'm4æFÞ<úšÑ$̈ãw µ_œlçéø÷¨I•¦2»ÆWsðjÁPL†>IPÀwüé q…¬$l¢O ~ÕPv€æÆùÍIjÙ$°!²rGÿZ E-nÈÍ÷NrG-ŽÙ©Œr$»°œp#¥JÜ»hHïþŒT†D9#¯®i¬H”0Œ:2ü¢,Ð ŸJW(Ø;]GÝïqÒ”†Ü»A1ŽÇ=óý+W»&vó!Y"—‘»G®G~(ÜË3>â8pïŠO4p¨_x÷ïÔüèRtóüÔÀÞÇvÇÚƒX"oÞ̤¼Ÿ<€¿‡½Bw:œLK±Ë†R°VÛË×¾?¤3L²£ ;ÊmLœûñüé9hb®˜öwòŠlmØ#'c=j £ŒFL…°rx+7“$O´³®[v SžÆ—ÌRœÈ§t·ãUsxɬ„¸,W1&s³—9ëNY£8d-–àíî>´Ögº¼Uo& TÎHQÿ꤅£•w# ŒöëøÖr¥©ºš˜‹`2pà òTž?ȧ´Í–’,v`«69ü¿)R_6"HË„àŽ =±þEFr¶¨qœñƒÔŸ§jn:’$Rà"\¶UIÈ$tέ+‡5Aû¿à`ÄgŽr{Œ÷ï@ÜÌ‚@ꉜªœsÆH8úÒì›ÌMÓFÍ·qÜ)ôÏã[AÔŠ‡Ê eÚìNÖÀãžsùõ¢y]o¢¿êÕp~ëtñÆ{â˜BÇ|HÎ èÜØzzuÆZBYv¨Ýò÷£éŽýs] 7Ñ󨝳çäÉÊnn\úc¨«-#07|Œ~ù\€xä}UwcrÌ0±àŽÇSÏ&¦/$aJœ áp{ã¸þ•âò›)]“¨,»4øäãùšDVéDŽá¶–VhÁì6޽ê¬R«ç)œŸ›—öú{SŸx/¶B”<Ž3޵)X¾bãÜ:‚blR¼qMYy8[‚™Éã¯oJ® H»&9óŒuàqèæHã!{oê™7eαO,Ht€1Æzqß­F³"\ P##O§µ2Ð(fåã8!YyÏ~ž”0²‹$¥ÓqÇ' ~¹¢êÂÔÈ­æ‘Pãp%rqÿ×ÿ |rÆ$ ü¯ÌpyÇÒª¤­j‰…O3+Œý*u¸¢dÚd1r{ ÿJ\ˆm–WfÀìÆ6 …)’猟ëVs ‰¤<¶1€ÄýÒ~½9ëYiµ[|¤¶Â”1À¾Ÿ…N›i܈K mŒr|UÅ4Cw.Û´XÛ+c`%Âí=‡Òš.<ˇ ôqó98þ\ã]'pe!°sÁ I"Ÿ³±B¾^îH N>„“ùÔÔli±ñܦøÁre%·®Ý¤‡ÛÛ¦*rĹ£˜› ‚3‘ÓéÒ•†?šU]ÃÛ>¿•1~E c‰äœ)Á5Š4H½nóy“GH7©q×·çõ¨PÆÒ¹_“hùb W#½;})7ñ_ÉÚ8)ëRmg€–,Í–ÚsÐþ™Å2ÔI6C;ÊȲñó1$ŒžžÙÅ .Ó"‚¨[€üô¤ó-ÐŒJì2¨HÜy ú …"\Å3©h3äìÝŒç°üy«+”Ø¡[írª3í&Ny>ÝiòÑÆ ù©"€¤1$œö§ˆDžTŒ©Á°û½ûаxòCD NìdcŒt óõ¦ãg±•V&i%ˆIÁ 3žÜsSFñ­À§124Ž6àzç®;~4‘Û«]`@ª»¶ž¦¬Ð›†Só1%vÿŸjÙ>†ªÉfÖÊWY'¼™WhßåF¥Üg®O·Ö§¼]ßj-¼…ž2DnÃvïÀdV7-žˆ”À¼Ž½•S»ŸtÂ\—‘AØ­Žy沜 ›»6çÖmÂÈ-´Ý>)N2eÙF>ñ÷Ïo§5™s¬Ý<ä‘`±¬@a:“ïøúÖzÂnfˆ¹m¸‡cÜžÿÒ§»µ{[mÒÆß1à p0z t¦Ör´—2Msæ$Ì챜àóŒò{qš¦èÉäŸ.HÂò¥›åëÏó¦b&¹pta’˜éŽâ¬]4Y$Ø€œ(Ç5Ø¢¨òWaû¸ùÈä÷÷íO`žz7,̼¼ã8ϱ©^=©!1»mPY{uü?žv›pŽAÉÇÒ›‘›)º~üå¤Ààd}=Å=,g’=ËÆd,: ö©$šÚÞ[=ÍÑågÀ?<`š©%Ô†H—{íB0«žÃ=êî9|˜el…¹uàŒ §Øcœb‡ºšâÝ£‘¨Aµc!WóêT×ËyŽ2?0iÄ+yGGÀsôô§m Htl×7.Füyõ«ˆÆ;A¿qR¹R}3éTŽåPÄm`Fæ5i„žQ%Ù‘Îí ÿõë™ÅÜÚ&ÞñƼðĪœž‚Ÿ¹”£nde;”¯ðãÛ¯j§æåŠí#<òôüé²;3Ús»ån‡áZÞèÓ”¼Ò¢+˜ÊÙbFqPmì&´Nz{qR4j ÈR ®;Õbå,ÍåÇÈÙž¿O"( +FzHp-ÀþtÄóIR¨Š zÿ…9‹Å÷KËц¢mÓÆ<¸Ø62ݳ½˜®&[Æx¡»)ÈÿëñOŒ¸Ÿr±-€O­/Ù¸fWÙŸCŸjkF[å –aólϵtCQ·q²©XÜ—rrÌ£S,sˆÕJÍ€IQŽ:÷íüéìq¼¤eb\˜ò?­@ÌÞqÀäJþ™=kg $O"Ï$€’6AÇN)¥fF–)Ÿº‚:R&"MˆÇo`}é’`HäÆªÇ¨ÈéJ)¦J#—rK©EÛÙ*ûR«’dœ)Çõ•àcÝ'˜­žýߥ"—Ø Œg‚ ?çÖ¯–ä9jNHY660@*{ýsR'ž$7%2:œb«,"AÃwW¦XЯ<1Y±“ô¬æ¬RdéŸccÎ lǾžµ$pª¬JŒðp3ïØÔ€´&ãÇPØþµ,P ó ;Ãa»uÅfËIŽUbBº”ÚŸ)Ü@+ª: D^ožƒ÷™_”ÿžãµaY\V¸Ëvûd±» …`ûAê2?NGç^§¡[îÓmÜDïuò$g˜øÀǨ9¯,Ð%’ÃU\D³Û•+½±úÖ½ïÃZz¶¢·¶Å¥] ¤ e`tÏO¯ò¯QÁ\Þ”uÔôÍIHMŸÚæç¨hBçÓ©Ç_z÷¿èÂóÄl#(‘¤r>§ëÒ¼ËBÒfÕmæDTŸ!-åjä·,>•ô—,ìôK(/4É$mEÁ‚x»‚{ŸNƒóÍ~oÄ-)4®ì{Ø*)´}á…µŽÞü‰CÏ Q´r@ÁÀ9©¯XŠ)d½ØX$2E†bÇŽ?˜õ¯ð=¾¤štÈPå†Âòã†ätúúf½vÖÞê;8ÚS4‘ð ããµüùšNUê&ô·f{5’б¥ ^B¶öv›2óלsžØ¬ûëÉ`°qDÒ ŸQ׿z°–“˜$‰y…ŽN÷Ébzÿ‘T.âÌdÊÑK"üˆ]zsõäñÞ°ÃT©rÁjrÓ„e-J–Y¤¹º*TpQO'Ï'$‘QKw§Ù[º­Áóœ£G»Ÿ|{*®RO³°8h¢;‘xõíŽs׊æ5+Ã5Ì’¬LÆ5ÁVRªß§ ëë^ÌsÔUXò»^×¹ìápJN×+ê ¶›}v[ÌuL‰T|ËœäAéôü«ç_ë·~žfž9Cùn¹ p0AÓñ¯iÔo„W“ZÁ™#!ݽÏÊsÔÛ­yoФWÓšÐZw‰Ì0WƒÓ=¨ÏZÆ…Z©[Ëï>û(¸+Ÿ>Þø¶+†xÌÞM¸l"´„2Iºûvô¯?Ö…’iwÁ$w2ñ³’Áç'õÑx£Ã¡^çì{¢Pß4A°ÌûáO^8=z85âZå½î™« -õÓ.XnÆçüàwëÍ}æ)9)Rv·Cîéç3§K–kCŽÕá&Út†Ýár¹‹<+ÆtÀü>µÂéMk¼æà;"‚²òߟâÁé×nõÚk—fMQíÛwÊf x~I*ÃÓ§=ëÎ…¤¾l‘Dê—EI…÷\g< ~BP¤Ô·?1â Ê®#™lt¬–rÛ C,l7¹ÈÀèsÇ<ã«Ë¯B²8È™G!Ž¿=ϧlWK4÷öÍo\¹uÝÉ<ž};ž=+›–/ô©n·£’ öOƾÃKÞ>5ªœt9«‰!g–ë¶ 9éÀÿëÖ4’oWŒ´`:ä|¤}~µµqjÌÓIDE¾lŒdw ­bÊ 3sµÛœóëõ5ôt ’®Êd]ƒs•«qíHURù‰ î@É-Èͤå[#‚zúŠ…Ø«ª´l¥›·9°ô¯IGC˨µUóÜWiäyx¨€-´9u ¤Œt?HØWd wà†íü© Kö}¤°Sü$ ®}=*¹Qš"É”oÊãv)\ÆÒÄG»íøÔ«•]¬ÌÀõnœUV‹24‡,¡¿‹šM\Rc°¢"¼†õoË¥$A7fRÛ—Œlÿ< i?2|½É?áO€T…,Jò21R ŒÓc|–;¶‘ó¶ ÆHN¦DÈÈ«ƒ‚ç“ëÒ¤‰F7g \9Á¡$`+) Žýu”àmJûÖO)ЫœŒgœŸçÍJûb ‰7lÃ:ÿõ¸úÔ‹¾`ìO³Ö¥º>æ*ŸddQü«- ê"Å$œïó ô©’(ÄÎLdŒ ±$õúS*ÌFâXös×+¢3l ¼õåð2}{×4â‚ú Ø4,¬@Æާ¿5_aggA'¯µM(pêAÁþ j²(æ Œ'šq€&"ˆÃ ¡y9Û»§óL’&Ê `F3ß§njYB*Gî~aÓð¡WrÊ" ɑמk°“¹[„Č̿3 üÿ•DA¶ãÉ;·©ÆÞ*á‰YÿÕËœ“îáMf0ÚA,02+g&WÊù»x‘Á§€þ^7ÄÍÔ‡\àzgµ)F<¾;¸Áô§Ì@ᆠÉùsíX´ÁlFc Ú Œ‚%»}I¦—Üùl£àÓXdòÈ ;AÛ×ñþ”âJ"Æ?›†'ÓÖ©&&ÉÌk«®í¡~îxéP0Ùk)„•p3° {g4§aÆgÏÉÆ9ôíM`DN6)~êNsÏw3‘»ˆaƒ0ÀZ¨_|LXÛ²½Ž*y#‘—Ìå—n8==êÒI&«°[ ô÷æ¶‹¸øG˜»Š‚=ù?ãMùò–;Aê ¦…o-2²#/RÄäÿ‘CüGÊ뜌 DÚãæˆ„,\ì+òØü(9‚’˜^ î~µù‘•ç<8ü +õT€Êpãšv[ dfbçï€ biHb tè7qÓ¿øÓˆ9Ã<­Û‘ƒŽsÍFÀA áŽ2©'rn>@±p¡œ ÅGzV# $¡› …è3Ó½Ti2ÁTn]¡y$œúÔÀ2n‡=7Õ3•™¤Péͽ!Q‚9zæ“´EIéü “ëQg;FÜ|ß0äûÿžÕ2’¾XGƒÈnœö¨Nè¡©…ÆA$ðÃ{âžRE@¬HO˜–å¹ã9²# 0HàNO<Šs8y™¼Ó( Ìsì éNó†1Â2Ny tã×½=c äì‘£DË(8ïJ .òn%3Êxp2(åÙê t-S6Í%¤·ÜÏ!ã çíêx¨Q·!€Ç°ã8;óßÐâ¡.VtÛ?6mÜ=©T—ËE!AäuϿ֫º¨¸Ù²ÃhÁ9ïÖ¡ÀÊ奒4“-æ´ãïdãçô¥.Íè‘gpbNN}éÊŠ}É6Ö?ÄTeMD<Ãrò3U•VMʶQă=F1ÅB¦"Œí!Œ¶Ð#oâ=Ž~•`$H±•Y<ï›p þ‡¯$õ5½$Ô•ÌìŒæDªÌÞ`\mÁ=Nx§ÄàÎ2ü¸ÚGn’®Î»:Ý?úôã岌³9çv@9ÿëבÊ4ËÊ#*쉔žÒÇÉ#Ÿþ¿Zh5ÜXŒžÃŽù¦Â#Œ++ƒº=¡·Gû#ò¦2™Ú tµ•µ4',“,1árã§äúš|ˆ™ó žl`cç ú“ß5¼e12:Èß1ub;÷ÇÖ›¿c|¬®£“ÏëÉÇÿZ›Z šÅ‰#‘mÌ„"€ Æ-è:ñõ¤a5Ø™\¯œ_&Su‡óVO/îF{óž”2ñ ŒD«#ØœŠJ ‹šì ˆÒ~ñ¼¦ :·_ðÿëÔCÌIÖdMÄ‚kgúSÕÙ¦V0£"K7^Ù÷ïOeŒE.Ýܶv¨Àǧ^œt­! rÐtN‰Œ”só(œñùUõA%¼Ì¡¥eÇÎã•ï“Y¨Jñ#†!NÑ·iÁÆG#µMa0•w/ËòåN=û‘ZF)™Å–£IØ ™ÉàÓ¯¿áWíã@V07®6¨vÁÆ}ª´ŽL1ÇkòÈ8õãÞ§1ÊŽÝð»w:Ÿ˜äqǶk:°GDc øÕk!R킌ÏO¡¢HãPÛœ,jÃ$6HÉéô©äž1#ãh%Qæ«è~é=ÏOšI#u .p3Žç¬ãMX´‘#G+í‘0í>|ç=xôõ;yp+.ÞdfFIÏQœŽ¼ŒU$ò£Dgw*ô^äõïÐc¯zRfòä#—™ÇúñÍfÓL¦\1æ÷™a; ‚ c‚:và“ÅVfTn%‘c-¹OlsŸ¥T&ì8ß1f#jåAÇçÖ•ðѱvä`üÃ>¿ZÒ3.Ãp© ŽþXóO+“–áªgg;xtxÀÜ£œ°ÁÏn€V6ñ,{á`C(O”rÞäÓVy2±¹<ÆFWÙ¾´ÝÛ);„•‘“ç‰AÆP½³Š@ñ»¯1\„À(>ç?Ö«ý¡ÞIQ‹+? —éõªï˼M(Ú¸bFŸoåZFcrи&ò ó2¨ª­ãgŒñéƒÍg¼ÌŒÃ!ø|d}=zR4çt…Âòp3Îê1èiIš\BK‰20ç ôÝiÊž„êiÚ]-³¯ „0‘ÀYÔoä) ÄÛc •‰ˆ$oι¢ÂHvïߕ瞞ãòÆjs˜þµI6 rB0SžÏ¿ô§ËÜUåêÌTfšÒ$;¢ò›q(+ž?Îi[šP3„\ uáNPF¼ÍªÉ6⻈'‘œc¥;÷‚lœ/`8'ÈуԳýr1QÈ®Ãï´…?61ëõƒI6;zÈÚ³žýM!?¾óѰû€*1ÓÔÔ.#ò˜”aƒ• qõµ+ÅB¸ Ÿ‘ŒþUœ¥¡£Øs€ó…,Y¶‚Iäéÿê¢Y ®A@ÀaGåøûÐñHÊ v G/ŒJVB¨€1Ã%Þ¦w3ÚbcNWùv¨wa©'jüµaÑV6 •SÈ\{S IO\ËÓÞ·RH®m Õ]Ǹ3¸sTþV•˜ÁîxÍ,‘ªÌ£s,PŒcéÞ£ò²¥‘‰ÉÐ}+x»˜IêLŠˆŠŽÊ¬N~ïœÊ&@CF%~^£Úš[sygø\Ú8ñ«(‘bÒ nT;z¶ˆr*söpà›qãÿ­Qbà*£9#œûUÌ1_42•årN0j”T®Ò½ÏÊJ¨èE®Z, üþfÜÇ¡íïŸj!ÚÍ£7SÜñÚ£B¿fVŒ™<©~5d1XË2€»ÿZ³ª®ŠH’(Ý™‰Ü²€¡ Ýë“ÛŽsOG‘UÏ:,ˆ†ï0ñØǭDÄ•£`8dïŸLW:‹:"¸2DFç 1çúg½F‘†µdŒ)2I=y¤]¬É·å(6±ú÷¬Ú˱H*YTà18õé[F,§b8¥Æ ŒцÉý;V¬Ñ¶õÆ3‘ó3뚦Â9 ~Zw1©¡VH‘ó gwéRÖ¢±´e•Üìsó‡qŽ>‡ùUIf‚IfØ %‡(‰µ=ð?¨É…ž9&…v|Éгgð¨/fQ"«·$dõô¥Nz£9&ŒÙPFÛ¦sŽGÊ1ÿëúÖd› ˆãy‰À>ý:Õ‰L’ÜåFrüòpEFÑË „u”ddzïM%be}›â;wOZnÔÇ•ëÎWÞ¬Gù(’Oÿ^«HD“·W…]”œ¹D ùYBäžjP£É+“´ã9íÿê¨Þ"#ä‡\üÝZGûìwùc#éB¨U‰òÒ2«ÉŽpØ8?ç4˜C°9=sŒFY˜å—¦zÔ’mc!6àƒúPÝʨE261ãûñš‘#&ݸ#¢Ó³î"\`‡ÿõ µqX±ì1Ö¹åpKQ|µXwÒrw`ûbˆ¤8óÊ1ÀëD‘†‰ätfìð÷ ²2³©+ò¤'ÕHíïX·~†ëbug3¹óUIŒ¥IŒØ‚ çw'ŠˆŽàG;ùàf¤,­.ð\œŠ·bo©"íAæ> Æv¹ÈÇÒ£à‘>BÌPîlpIïøT`·˜¬­´°Ãýz™6,n„¤’¼çŠÉ$™¬EBŒ¬A%Ã`•_óïHˆ eËà`¯o¤F n#*¥¸ÛƒÀ÷'Ö¡T Ÿ-‹ì9Í Z‰Ç˜±¾cËøÿJšA4FFŽ]Š«ÆW9ú ¬€´‘ª£AÈ=?Ƭ‹: €!|vÜG#§ÇjE#OL’XïE¸  däíçê>µêm©Ew¡©,"8ÏýzñèX2Þb„~9äúg§ùõ®†ž{~7ÇÌIÏ#ÜW5zl˜½M»iÚD¤/”‡2&àwsήGã^ÙáËãn‚HʤƒðONÇ~;ñ^-al^hŠÆ'áQsòŸ_aü«×ô}(-¥¹‘Ø–mÌ·‘ØžqÉ÷¯¢ãnçu(\ö¸5AuYlgH˜ªæ†FHŽØâ¾ºøia{ªKgwp7 E7 >êö Èù‰ ñî+ç?‡^±Ô-&͆4H€Y€>fzçiè ,nz×Õ¼ŽÛEŽ Y6†@€É RñíëïŸZü_‹k8Ó”i·Ì}.Y‡mÝì}M¡ÂÚGå•b…@G9bÀ5Ø$VìåÂÈø+t=}{ôæ¼’ÇRh<»]·i8ù9ã;²µz.Ÿ$Rhn·òùS,ëžØ=? ŸÂ¿ ÄUœoÍnvc©4ïrGºµ³óœ6|¦ÄnÀ¯ÌÜ€}¸ëéTfÕc:l·On²ÈOîÔ67ЃÛð«Ú@ÚŠ™‚´l£j’0Àô'±Ów2I0bW >¯Lq‘ŒW wql±‰¤’%—aU dã9k¥Öi xà#ï:`w$qõ¯=Ôb[Kqö$›7à¶}ÿÏZýg(¡û³ñ%¬¡YØ¡qv^àrUàgÓÿ\gü+Ÿ¹¸Ëd(|`*Œ v§ÜÜ(RÉp…6—ÀàŽsϾk›–yýaŒÈç§§=E}–Ž—±ùî.³“±mÜ»²– Ž <‚3X×;̤„”FÊãÖºàwg!—b¨AàqÇáÖ³dO*DÜ£$ç(FìWt*YÙžmJwW2ÆMº¸o”¾~£ßÚ©Ë PÇËŒ:gëZÓ¦ÒÎCeyÇOÇКÏfMÛ¤èA'¾{W«IÝEe©@$Á†JÙã‚F*Db&Õó?‹-ƒøSÄl›Q )$“ÈöÅ,j>t~Ã!ÊñŸ\ýj™’L„¦×“Ï%½»S]#iƒ±{¨8ÿ>µ,íûÂ[n:ãÁö¨˜uЏù†G þOb$†FËæ¸»c€jbvJG˜ rpNßòj"qÝÊÃw=øôâŸH#÷¨ ‚¤íê—½@•†¡Üü»·ul主‚«<‹€ÿñ{b£jc÷‘2¡(çåg?Ö¥ ›²²§ ‘×Ö¡»š¤9‹?š0 îp¢žêX°f(Cþåvhí^˜,0p?Æ'Í9bÊÃÇã\õ‹ˆè£.rÈD˜ÈùÉþ‚¤ë)g]ž´úT+Þ„²ÎÙã £Üþ|SÝ%hÎÅù2X.Fsëî+™«±=·Èçxu e°V©y¹HÖ6ŒŠîÙÉô5` †;¿/Σ*+…o»ƒÂº©ÅXͲ2¦G"M»•²Œrò©fEŒ`ç~ü)á€G¸/#'†ÍFãslÏȯLôÇøR“H¤Û.'yÇ%FOÿ®žô &å'æÜ9”FȦ5C,H$ƒëRºÈI`ÛÛh,¨:`úUFz‰^DáQIã¾~™ö¨yx±°ÜIç¶1߀&´"F$‚»C =ÏqƪùY%D„õ$)ÇÿJM’ÑNXÊÆÊœÙÓüûS@r›ŽXÔ“Â¥R¸LAê3ü¨²«Ô¸ÓȬf÷#VEv!ðØÀNþàÓ$fTè®Ã…=ùt¤tÑœ`{1Ç$3 w-†Ê‚Üü«rn,#Å <¹îätÏb@¬sÈÛÖ•‚ºdÚrªíëëǧÝÖøb(9-»Ž½û×Lcde+p;¤P¸åSï B˜ Èþ~§Ú›#F‘\p?Ï¥&ØÙ2`çò¤Ñq ¸ÎÝßéNeSò„ù|ŸLÓNÖˆ»ç c 1ÎzÒ°À‘ÉeùA?皸¤'2=¥`;±»vùðUH"5ÆÍŒšiF‘ €îÂà²ò@ ,„e‰ÎK ÒåQûC*|ĸp9¿•#(’E%ØIÎTôÿ?J\1„‚Û” ¶…çÓ½8*@Fÿ—å8àÔVR\Ã£Ý “´¨Xäã9ã?©¨×d„Ÿ•H\ì ˜&%dU`Yp»Ž@Ȧ¢9U bRÇj–ÇÍøÖÖÆ‘cU°0Ë‘Ž™ïÒ¤”+ÆÜ‚F23B*2(ÁÃ)þ/óïJÈTgêÝ:úVöV+˜@ùe@vžÀt5;â4‹{4Œ¸äšaÆøÊ2£9e<õ©Éó92FÜ£ºÞ½:ͤØ9±‚&(7· Ç÷‘“×ç¥F¥”62¸^Ÿýz°ÂMŒÑª:…˽ÎqQÄ8ŽPwÁúœÑÊ8ÈjdH¬O˜ÁpÙŸqéÞŸ¿Ë]¡6»YNùíMe’5‚NÒ:LxÕ†bb®ÃݹÏsþE èrzÛ‰Õùfûªtü2ifýÛeÉ .Ôÿ,Òv‰¥ŠeAÆúÓcO‘¼ÀÒ`œñØ*ì`#2aË‘8o»’{ãéš•˜*|Û Ú™0 ³!ãùûÓ•‹ƒ‘™r®28VÐ[ ”9c‘žH¢Uˆü¦2ÒpQBýã‘Áö5&a[ˆ˜y?:eò¤`ÿwÖš  fS±‡!”r0riÜ®bA2þóo\²€8#ÛÞšï4’mÜ« j†Æüw§žqé@D °‚ÏžUF)亢²˜ö²d+rFzRÓBî4+³òcï ln=ΧáRûxXÍþç¦|ÛB“œ‚3Ô“íŸj–5ýÌxe$ð8cøÕµ($K“$e*ñ#ÆV\€†¡úpi¬îÁ‚f6¨=03’Ä{ÓV3²!#4NI,ÅÃŽ?O‘ !ÚR7U$;®wéê*ÜÒd)35$ýóØ€ªN[=)'Ùì‚áÁAÏùúÔ 6Ë©Ê+~öÀõúSUš^Yw88;8õÇÒ¼rni%Ë/–䋌.ìƒÆ I'ËH°Êq´¯~†±Žå¹M˰gjf¯+Ʋ3üçî’ÜTò;šÂe…žA"ª‚ÀŽqïëH¥V6E`p]€ÀÏéRU@÷„GÊr}ê<ùŽÖ0<ã×ëÓzo@”‹­,Äp¬/,A$çÒŸºC—’Πã§J¢DÊ6JQT `ÄûT„•¸fVw„ ðØÀúSMX‹¢ÄE@]T©$‡\®oÖ¤ ¾!ÃF ýÝØ=1z¬•›ç,Au{ûv©¤3@#+yÿY=v“í“Ô÷©_pŒC&ÝꡘƒøçN‘„È(£sðAýz¦7Ɔ%HÓiäc<|óChè„KQü«#´ldÜ6ŒàœžOáW"ò“z”eä…<]¹ý*´e7#’„`ñÎiÈc! \÷cÒ¢NæÉؼ—qItQ£bâ"[{ƒíúÔ‘Ü»DC«rÏ\r:úÕx$ßDñ²‚ÒãÎxÆkBK”º·rmŠÎÉ·haÀè?,SƒÐ›<Ðyi‡AÛœr9Êš¦Id-ãi æ$ç‚sÎ;UI×ÊTp„60Ò ÿüÿ•9 ipW¢²ðXÔÊ1z•rÜ…Öá]*A¾üUiByѲº”c· ?\÷© ï"ye{dv=*ªI.8P#)?;zœñY(«Û¹x„ÈB‚  õúaeÛ”—3`d*ýÓôïQ¤R½ÊEæ ‘—æçŒÇß5z¶±±“ÌHÞVMœ‚vúŸ®3×ë]*‘"˜Ý¤3y¥¶‚0 ǵVyÀ•‘rÐÆ0 8ã©Å@óuò—X™°#-¸…'€=zu¤žB²¾I œd ñïŽ\;°ù˜à¼e× i9Ï9çÚ£GyUC\?RÛð[}ªÚJHÙX€û«’IéÚ§Ü:HÆHÎ}qé[´¬c)—·ïµË¹ [îŒtÏéùSË+îé»3´ÿõꚤÈ3¬…ÛÁ¯¥"LÊ…Ø#uÒ¹o¨&O2¸M²3*ìÁã=Ò‘¿ÕF¤“G?—éQ•f”°ó#$ó°'˜íZ/búÉœ®é¾ìúqÛúÕ»²Ô´" #G*yR}¿çL-¸ÞÊcè0~½êgŒ´k.$uÝ…@ñ—EX!ìïÔöÍ8¡Í{¤XîNÖåIü©VÞ_·D<ÀŽ@Œ·^ƒêôq®Ñ¼€ùÆà¸#ÛO{x^ 9u*ã¨öç­U¶΄³L‘²ãqQÜz†hÕàtV<ñ€1ƒŽŸZx´hà D»†0ÝÏáÎ}j=Òý§Ë,ë7{Žæ¶¶ƒƒ)˜®adv%]¢AƒŸaúÔ#l³(ݘöaÉ^ƒ×ßµh7™*;€å“ŒðsÀϽW}Áü[–Lÿ¬R;çÔ{W;¨Ó5!,…ùuU'…ÈÁéJ]¬y–?äQ&Kà,J«Ø¾ƒÛšhŠE2’‡päíozrW*.ÀÌÕ˜(½3ÏN♸™#y_Ê,2?‘ô«'qµ€ê¿˜þµ!¥]ñnu8S‘‚>•œ¡dlÄXÇÉ€Ë×'$ÿ…>6ùw,+Æã»$T$•Õ#Ì9\ úž”ÅvE©¥€ÈÍDd2¬Yض9=FJ—y;”°*ÍƒŽ€ŽA:ÀÊÛŽFG#ëR¬Kö|,ûœŽx8£L‰22T>ícžFAE/˜¹aƒÏ#ŸÇÖ´Ä[Ý ˆå }êào#îc8 qÞ®ÌÉÄÌĆ"rÆ 3ϯz’ß~Pľ÷+×ÐTÛgûNÒ Âü¹ä7°« fI@Ãc =ùíZ¹hÌáŽ=¤ÌìGÝÇ9¯#Š®Òe•K2“Æéõ«’¬k&A·¦â«+ćIñ]¼{Ô)܇ڠásëÉ5md2^ ªC€>cž~žôÉ#ˆ|Þ[ît9Ïn¿Jµk*®à¨Cnóõç¥jš`ß0ºä³ÉÆÐ:Óæ\ Ý´…áz’=©›”ÈQØ¿;˜úš²‡{G8*yÿ$¢âGáXª‚¼¶:ÿõêF£RBå½x´¦0ÅÀ0Sœ…À÷ü)à‡µ\)à*9õxÅ)‘A`ÀϨÿ?ZIþÓÎDR ÇŸ¼EE)2_r` 6qþ¥"˜“ŽùP*T“"ö ³„Y¾VOZ¦ñF Ãïd`sVFcŒ¼åsÏÓŠ…Ô··ÌÄÈqížÕ´tB–£^î(Ãò*!íŒç®yª p᜖Ãç9à­ý®þZ)œñša¸Äk88Á Î{õö¨æÔɲĒ…!Bè­’Ëœztª C¹-OLŽïSÆ<ÉUT™œléž ãÔSžâª9ç½hÓhŽb #“q‚€¿¾îç;‰Åjš*ÌŠ`S¡â•T®çùGÊHéOPFe¶Ö$aE #s‚»{ãÓéÍ !¶ª†;Hln#/¥\Aºmı,¸àƒô¨¤@vÑ–ºóÓÒ–0ê†2äÀ©#×°üëŠQÔÚúƒá‡þ"ñ,Ék¤éó\ÝHûcŒGr2§ã]Vµð3â/‡ìÚmCÃz¥ªìÞ]­ÉÇÎzcƒø×Û±¯‰|4?gñ–°kVs ¶iÉ p8äŸSÓùWê›Ú¿Ä­2-*ÒÞÂ.F q/–­•äž:çÚʭI&‘Ìçf/rÛͧÎÐM+¡ÁNr¤úæ£ Þ@!¸ýâŽ3þZýmøÕû ø›Tý¢¯cð•²:â5Wäˆàäuü=?*ùË[ý†>2é7[AừÀ®K¼dIÁÁŽøÏéB½c\øƒfYÊïV^†Çò 2³aÕÙÂmR¼kÑü]ðÏžÖÏ^Ò/-eîdL/á’ > ;×›´N.OÊ7ƒÆF>´é«³uQ44Ȭ¾Z 9œ‘ß?Ò¤k9%äe – ,zŽ)$dS·åÿk#wn•<‹öz¤|:¸ëž¸ÿ èjȇ4kAxÄÌí¾sÆ~ŸÒ®Û4qß“pÈŽEdé÷CÛ•=§§­m‘ÄÅ‹¸P]Äõö=Î}ëÊè"Ñèš\Ö¦²JcRYTÙ?\÷¯AÑå}Fö0›-mBì:`‘ëÔW‚XNc½y„²`p»}ý»ó^£ ^ÜGu»•!œŒàrqÆsŽ3œWÍfTÚÏC W[jø"ëOƒF´77lÓ*bHÀäœgÛ¯"½³AWk´¸2Yv‰b€YA'îN}3Šù+Âw {]@FKÊ»Ímʳœcξ•ðÕÕø¹ŠwΉÈÞÅ‚—ÇUè0¶3ŠüO‰áË6ûŸk—;ÅSx~Ý¡ººq€ túõçé^§hÐ]Ç ’H°6—?7OÀŸ¥xf™©]"a‰Ëÿƒý@ê8ÅtözµÒù™tûT(&A,OCϳŸå_fxw&šîw× æW½–S—$séÎ8íU'…í%Š2ež`7:> #àG{×®ê*,Z[‹äŽáøXÖP£¨¡¯WiÖk-µËh'auÝf/–XíáH"`«³;AÏ yôÇ#ž¼×’ëz½ä÷²ÌH]7F¨Ó'†GùÅX×5)¥ÓYÒƒjw+0b0qÁ=zð~•åzõ÷ÚJ¤k1óY|¶is·##Ž¿§^µôù~^éÔqhû¼$c¡«Þ]Ý]<“\ÄyÆÑ…Ž9ü«Î¯Ljò¼`Î’FQË?ÉÏŒô#úÖæµq:I "æk§‡kª zî?N;ûWÆ÷ìRy˜Œ#3»¯ÞÏàkôL§ù¢–ŒÃ0®¡I¶®UÔáZ-±±R@%¹PAÁ8çÔf¼wY¸‘¯äQæ„ ô9Æ?®=«·¿k»ƒ*l–|Œ“·;ZãgÒ5›tq<Ž>m¸è}zWêy& té>gsñ^(ÇS©Y4¬s;dgÝ#NPá¶¡ÿ çïáÝzeŒÃAà»K­&éJÅöy¤òAF=FG^¿\Õðýü’¨OžBKËfíÆz×Öa©òŸˆ­ô)hò„“÷Š®åÛ ÎN·#éUµ O4™÷/ÍÐ( 0ÏÓô­X|/®±r–7S—ª¦éœÓŸjÜŸÃ%–Ïoöeã.9_#p½ˆüÔT§ïÜÉâ%9vwS%˜.ÜLúU)£  ò_ˆ þ>µÝ7‚|M6Ò/ŠÊI·c»Ï¥FÞñ\ñ'—£^ÜH¿ÂbçñôõéP’±æNwg½íÊ•ÚYNìã¦zЬ¥X†"2xÛÀýk´ÿ„Å’Hò@I ]ŽÜ}?*‘¾ø¡,•[D¾\ÐÄœœ›§céëW9s!„¸mŒìÄd†íßÇw@~V-šíÛÀž#Šl¶›ÎW°'Œñ‘ÏùY¼âO#Ìm&ø3pÅaÏ' ëߥš±/S“b,…yÈüéY8_)‚ñ“À•Úø€Äi·é ù˜4M‚÷÷¨ßÁÞ Œ§K¸mÊü{¾@=ñŽ0{ôïœQ{‘ª9 &|c¦rò«(ŠZ@ #.îä÷ÿ=k©Oëì›—L¾*¸Ü|¢Híßÿ×íOÁºûI,Ø÷RàR6ù†9ÇøVw³•ÎPîcvã ƒ¡>žÕ9Œ¤™V<çžk§“Àþ$ÂÄÚ=ú¶Å;LD}zŽ•¤žñlÛ#ƒA¾™ñ÷"@Ó®}ºò+$œT¬pª±”£È ¸LçI2ãnÌ‚2qJôˆ¾xÖá[.¡4„ŒÈ«œtÇQž1WOÁïyÁ°µ$`¤„ò$c¶;{ô¨•;1¹ž@¡›r3<‡iËgö¥2"¸K?Îȯd࿎VW‘´EíÕIgÙÆzp{ŽGJ•~üGiq/‡.Õ·”`ã%sÔg Àç­UìŒùùŒ9Pä`?'r=ªF…˜ƒÂŒÊ½êßöwø“,NË¢Nì§ 6;c'€Ï8Ç ®ŸJý•þ(ßß$qè.Ž ¼$s×ÜÛ=ý9ÍÙšÄùƒg™iÍ\ñ¸#H3©X‹.ÒÅå~žžõöv¥û|KÓ|1ý£q§°uRòÂ#Áù{6z˜äûWÍþ%ø}â êŸeÔl'²u$‚Ê»zœãäSŠì'#Î̘EeùW?*°ÇlsŸð 7+~lrEZ6ŽÜ‘ÈÚ3ëU2ÛÔÚØ;—o ýsü©rÊä¶Ší¼;¼€3϶;ñPÎe*XcxŽ{U£º1´±vq“úT„‰HŽBFT®k²vÔÆZÈXÖ0^Q#gx†àÔrH¤À‚¤í8ɧ:1Œ•ßÁ<º G iOÎÊÅÏZ•ñ¶'›–< zûÔJÃí`#óøÓÝ7>£MG”–vcŒÀaÏà{ÖÎZM"2Ì[IáFsýiŒLŒyžû$ãŽi]K:±€\mÎÖ£Ë#› /ðàÿZÎîÂ`;w1ܿă¯>´¯´Ë¹s†äŽãó¤ ½ J¼wÎG9æ£`C«09àó {Ši³&‡¾o Í7pG© Ä1ò×péŽÔíÁ%òØnùGöëÅHŒ²1Úr;‹uö÷ªs5ŒAr$”˜¨þ00sLLˆesžžœb¤ŒªÊ®Û ÿwçžžÿJq @‘ŸxêFGÌ3ҡȾB0ÏR¿+±°>RzÔ©#¹PÊ7yjÃóëKæ |Ñ«9¨ÏáŸ\TR»ª¨:ŸzÊ[”‘1+óM½~eÁ¸çÿÕV9PÍûBaô8bßç½6@K’ª ˜<éBG¾ QKbp–ãÐRÊ›¦v³®rŒO´Œ¤B–>`$gÉ8.ÉLa"Á°á¿N•á§´-ž>SÜúб”03´ƒ×¯ZÕµbJåV@åÏ”B¤F;ÿú©¨†må‹™Ý!~ö•I"A°l^¸e¹õ§± Ú%Ë!2Wñ¬ÚB°™O>FVBÅ6¶O.:M’ù!9ÚK1àuHŒÉ)BÀÈÎzzö©Wz²îN3€sØSSå¡6¹™Z"¥°pëÓ¥5IòÃ.Û pxéßüŠxVù‹e™~_òç¨'Û’5•bt‘dÜØçîŒúµͱóU̬ 3Éò:×ôÅH÷ÈÆ LúSr­9V‰²Ù%Tã$ãÞ”ð%1,…ˆ‹tãž½«'¹2‰Ž¿Õ)©l“Œ{ñÖ…Œ¼‡z )ù›8ú™¦OÌ £>ï—µ<³!U ‚FI-÷ˆþuÊ¢Ù›Ø1‰m"D'å$‚=})«£þôLx(99ö¨ÈušF»¹õÉJ‘¬¢iK(ç‘éøÕòØÏ˜´“,qȪʃ݆æŸÇnZ1&:cåªO".ælÏ8àÔŠëå`wœžxÍa8Ý•ÌÍGÜ„¦à:ð})"òÁ¼˜ÙÎX3üÏi‘+FÅðN`«rÛœ ÀBØoõx#=rsÀ®hµ‘¢»%b‹´ˆãØW$Œ’;qþ$›X ~ï?¡ÅVD¸ùC!ò”å3ü_áô©Q^I9še…Oï22@Ïôý}+s¦dŒây¾pvœã®~žçŠVˆ‰_Ìíó ¯ ä“éMv—Écz®Cð¥r$.¨;ò­ÌAà pôéT“6QhP ®Ð6& ž§ëO@ÑÛîù†nÉãôô§ˆ‹oÛ…W,XàzûÓÄQò¾VJ ¹cþy¦ÓLl Ú6!cl4…u F}»ýx5#“æˆÛJìíß§Z›ÊÝÂ_`-¯Ðt'ŸSÅ7É>yga èvŒ}1BÌÓ­¨‡{ 'ÊÀò=i›@$n_©=)æÞAqæF#ÚyeÎÒyéõªÒ/™0@QN6¨éÎN}i¤Ë¹ktqÊ̲nF%FMC‚)\¼M4 Ààd1ÜÒy…sà£ƒŽ‡÷ç½2Mæ3ó¸pOËѰqÏçWZ’Ú ™Ò䲕ˆ 1ǧ׃ÎI ÙÈϧ4Ì/hÝ‹z˜üéKÇc÷(7¯* ;ºúž+FM‰WòЯ(NÜ~r:ŠöOÊùx¨È¿OëP²Ç´†ÃJä ~ô˜ÃĹ6àxç¿Ö„L¤:e„»H8‰ÝŸ­\tQù¾W'’2;ð*wy2±e8¶‚£üö«ª#,r Á.Hïn~•·³Ð‡P¤¹Æï0ª6àçßš™°$ ·˜Ž}:U£ êŒ»—O”²G–È=9?Ö®AárSM2ñÚåV2r;’<ôâ±QjFФland€ºÆÅCd…N§4˽ËNãerJú×koàÉvZ-ôñ>v˜ãf§Z¾~xæâ@‹áÍfUa휇'ÓEuû4Ѳ<¤£ ðA·žE=7‚Àuô&½j/ƒ_¥–ßÁÚÿ,ƒìvïtíÇ~ÿP7íÿgߊҰ1øÄlÈv·úaOøvÏLúT:f~Õ!¹¸ù±›ËŸÂ¬«›†Ec Á;ôô$?²×Æ›·Øž×•òVKm¤ éëÁüºö=–Ÿû|o¾’"ž Õqœ2„ÝŸCé€O qŽ9âFª£äÍ€®v˜˜ãp_×¥YNà®Î66§CØ{ö¯³-ÿaŽÒÝ O…î>bSýhÀã'l:éaý€þ:\^®4Ë+u#w™%ÏËÆ{÷?ãíZ¥¡¬k#áyIlG#º /Žú玴øÒI*ß>Üíbnþ€×蕯ü»ãDà¬ÂÂ=À ½Â€ ÆNNp1žƒ'×ס´ÿ‚m|R“íWÚLlø ÿhó>Qßø#Ž0sÍc8êT±(üË-„%B²”ºš‘Fõv\l:³ zrx¯Ô¥ÿ‚hxñ”g]Ð× µ_+øzÇ¿ZÒ·ÿ‚gø³ÉËâÍ0IÎáËóØ/‡½g˜:×?'†ØœÊ –=Ö0ãùv¬éinƒˆÙJüË´¯Øgÿ‚dj£g‹ôíœäG^¾½=ÿJÔ°ÿ‚ayEžçÆ•+»Ë‹j2àðc߃éï]p†€êŸŒò,h@bù$Î;‘š,.e‰˜«,c•-ž{WîM‡üÂQÈ%½ñuãÉ·ƒ’áO=TŸÓ=»×Wügášyr^ëڼ̿4€*/ÔqÁ9ô¦âîg)Ÿ‘Á(ˆ Hààvö¤[YæMÑA#¨ä…¾*þ‡í?à?-6™5+ˆ¶®w>w0ärAéŒæº[Ø7à5¢•mâêEÚG›08 ç cž}Gj´Œy™üàEa?›¾+yLcÛ3Çz³™xÒ2E¯8Ýž úëú[¶ýŠ>F™á%‘J%ÁfÁ<öÏ1œVÇü2ÀÄ)ðV›4/ ¼rŇ9Î}@ü³Q%bÔÏæ`i¢yLåœsÈÿ?•Ø:£_´fÎ@àoÚy`þuýAZþËÿa"x#D*q»÷D‡Àõë×ZÓ·ýžþÚ+ù~ÐãFIìôäR;šÍIÚËÊx[Y‘8Ó®sÀÎÞlqÞ®GàOºDAÔ\g€9<“_Ô·Áo†öwM%¯ƒ4 *‹E`=±ô_¶ øiàkkû7…ôˆÀ€ eã8ôªæ)T?–«O†~0˜D`ÑuiˆÚÆÙºú`÷äVý§ÁoÝ_®Ï kM».H¶`1qÁ=³øâ¿©|á«[eèúl_/T³EêF|Ê´¢ÐôÈÄmŸaŒ»mÐ÷Àå'Xþhü;û>ühB&Ó|7¯#+adXd@‡gœ‚G~õö·À›_ÚçÁ^5ÓáF±{£Çph¯ ÎW?1ÁÆN89ô¯ÙXì­|ÝÍ©`G̼©Ï^GëZG|D™ »ŠsÏøÔ5µ1“»8½*Û[Ôuõ=IÚßt*|–à© È®ãdI˜)wQ÷•6âF*ñ¨DS‚¨ƒ$äv=ªÀÀ]d9Âþ?ýjŽ^ËgŒüWø-à_‰Þ’Ó^Ñ,Ë•;fDÄ;óŽ+ó _ÿ‚skSøŽêm;[±VdŽU*<¼áG˧óý›(wEÅPzc×8ïÛš‚P˹’ Û›,xù}E5jo´~&ø|XÓ*FÇ$n9ã d`9¿…"ÿÁ9|_Ƈ[Ó]Ns!R¨÷üý+öÉãHYDxÜN ž¸÷Í@ãt{R >A\ðyô=k9;²ùŨàž^.ó0š†›•VPXp¿ÝSêr¥Xÿ‡|xÛaõ+"¡²HåöàsÛ¯Ú2«°s8#Œ äsÏ4×…w’4“¹Øã&µº‹ŸŽÿðOÛ_E4Ú•¹b1) ò0~+µÓÿ`í^Þê—S³ÆyhœŸCÀã¶AävÆ+õmã•6†L~é<¯Zp‹zà„$¡pv¯×ßÞ¹ñhTVf”븻£óæÃöMÖmíE´š§Ø *‘&¾rz¶1Á§å^£þÏ7VVím.«6ÆošL–é×ÓŽœöæ¾Â’ßz¸ÊÈ ¼.1Óz_-ƒaÉ'#å^9Á¯ÂÙ~!Z¥;ô³lL»#æ[O„Z…¬Ì#½f ‡CÓwÆ "µ,~jGPŽòym¤šAüKò¨Æ2~qÎxô@’¤yt Aå2w`ô”öU…HÃq´–Î{ úW’ü;Èdµ¡ø¿ó:¿Öm¾?ÈðUøcpoLój +çj pGƒÏOoj¬~^½÷œobâc3I=Éíôú×Ðéc¸U9ÀÙž1œô¤ŠÙ]<¼™oŸ€\ÖÐðë!Køÿ¬xå´Ï›¡ø=sÄòO~’É"üå;œã8#¡ö¬výŸ´û»¸'¸Ô²(ùʆ8#¾3œöî:â¾¥ ²’^<62)ÌáðÖhùŽçö}Ño•`¹šq™bÂîû¼ pHªþÌÞ•‹½Åãm`È*:çO§øb¾«{eÜ襰ì°®:S”1”m*䂱>ücõ®øðþ]OXÑÜŠ—f²ß/½£ãËÙGáô‡ÌXï 3–0– ±?†8íéUíÿdøÉgrSpm¨ß1!q¿¿ ïƾÉdßrçj¯Ìwð3éŸÇµ7ÉGŸbG½ýuÕKBê |‘ÉS;ÆÔV•i?›>E‹öGøg¹ÃéŽY¥!†G·§ «öŸ²gÂØ.ƒ 6“;wg9_CþȺWÕKˆÈo±†ùsúžjÈe …c*àyxï׊ípŠÑ#ŠXÚâw>t‹ögøG¸UðÕ¡P¥0ñnÚ8Æ~¾½ëJ?Ùëáu¬8ÂZn1óää“ÇQϿК÷ÈÐ,eTÈÌz!è=¸þUWg˜ÍVw ÏN=Æ’0u¤Ï(µø)ðÖVO h¡£bÔŒãÓ?ŸàMY? >F7†´ô1 àñƒéšõXàmÛ|¥ßÂÈ6Ž8ý?Æ ¶wf¹åàäûåC‰.ló)~xpDðÖšx@¼ŸR;÷éKÂ_†ôÁ#s‘oó×ý8¯Pq‰wâ3¸ƒÐî>ÙíéM!YÜù‹Ê;sŽ¿‡jÞ:Ìy£|0ðIÓÙ#ðþ–Ø`QÝ@ÈàcÓÞ “áwܶÿ鄳ngò3œžo¥z¬c…”—Ë2} ¨¼¸î¥ÜáÉö펕2»)=O"ŸáG‚f”x_Jªâ%X20zœuîHúš¦¿| ö4·ÿ„gOŸ0áYmðvà8zöÃlÛä䳑‚¹àÜT d :ld—œ±#ñÿ=ë8·prG‹·ÁK4.ÞÓARO£aèG qÈ]>x $”¿†4É£*[ÉPXÀéÈë×µ{ƒ[,vábXü÷ùÇÉÆÑéêiÂ=à.d“µ‚¯<3]V%êxø/àÞËá5_p þP:té€qõ>µQ¾ øcØžÓÀ‘Š€öêqãytÍ{£CnóŽL‚·žœþ¿Î˜-Žò%‰Ô3ŒöÀÇZå“Ôp‰ã‹ðsÀË·Ëðæ–cRA- 7lÓ¹üO­jAð¯ÁÉLJôöBO+nx·¶s^$ Öä2¢e²vœäŽçÒ¤î_a1ÈÝOÏŸË´§"ÙæIðïÂvåà] Nå|®b#vGoP:UÏø@|>åcþÃÓL{FàcÞÏ$÷ôî3^†¾ÒvFçý[qŽÃ瓚Š8–;¼ãl„–M¨z~™Æ*äîÉ{`ð6„’1M«6 [Œõã§=}i‹á-Bƒ¦Øª0ଠ}N@úóֻͮ§D3ãçùÔ,Ug-¹Ly#rsê=±ÅĤqǶlŽ(·¼ò•±€3×ô«Öz%•·îlíãÙÑQxãœ÷è:~UÒ*™:íá Èðrxç¥NÑĈCð0Nß~µ”¢]ÑÌϦ[ÍþŠèN‡Aß>Ýkȼgð+À¾2±u ÚÞâ@@•dsœãôê+ßÍ+6{9^çœpy¦¯•ž[ïel6à2xúÖM;ƒW?>0þÁ ¹Ô<"Z`â!–’OÆ1Îõ¯Ìÿ|!ñW‚õk¨¯ì&†82•àŽ08íúWõjbV‰Ñ¢Þ·˜œñÁ¯&øðkÁ4+›=cJµ†VY¼°OqÉú=¯"(l¢3d|ŸÎŸ0Sµ¾÷E㦷­1·†D8`[8ëéCŽƒypÀbx99§"§ÊÀù|•ýÛu>•áå…ÞÅ÷±Ý¿'Ÿ\ÓÒ cŸ”öǧ¿N¾Õq.d[_ÍtÙ:ÜÛ¸÷§ÅäÚÎ᱆qž1ßßü)òE'Ù÷H¯"“…'±_jDÌ…ÎX2à(Ç#þ5-;‰•y“ å}¤nô÷”‡geÜ3•ÚO'¦O¥*’J¨ä'/†=}1Û´€ÿzA€»¾Sò”Ú0ÆaÉÁBnrHôãúR‡_; /ÁëÄSÃÆ#W˜Ž™&€ È9c€Ûõ5i¶)1›F]‚•U8Ϩ©ü± ,<åm¼ŸQô¨Ô2ÌC À’zçŠvÔ.óI Vî0rÏëMÆäsŠ,DüãkòŒ>ñÆ3Ž H’‰ÉR§ïÁ^yüj„Æ31»q8Ú}>¢r9sp¬ƒ…Æ?_×5j-;–`>I&C°º²„AŽºâ¢c"“#E¸mÞŒw§" Ê©å˜ÀvçÁ8Î>¿ãJi­ÝŠˆÁùWaÓùГB¹1d#i 1%¾^7Th ¾Ô Ë®ìäñÜöÒšÕýã–0VML#wMÁ“#~ÕÉúûú~5¢…ËMêIåäåwcw<K*‘pÇX—#4Ï,}¬U6ž>aùU”á#Ý"ÊÜ’1Ž+—DrÜ¥å³6Ó•8ã`ÿ9¢ÈÒ1`#*Í!w8]äçüGò­H¦–D!ZbÊ ,ÌOôí׬v¶YÃd ÷ü{SÒp®K(sÀÆH花¿ …ÌeÞ^§€=±Ÿ­XÈ·,r6ÎÌ;×>·Aäe`vu!zþuµoufdà»D 4 ?§΢Ʊ˜6åå¾Fbw*Ÿ_óÐTŠ-Ô,r6G,AëØóÒžb‘¡IZB"É;ÂóþzTfgyÙ]J®AêHÛ<~5õ6SA ²Zía“‘»ê=ªhäa)2o G“Ï8¦‡Š`Ø(„ ÈN7õôéô¤1´³R¨«Ïæ+ŽO5«³eø® ¡_gÏ, õ©²ÁŸ5±rO8¨wÆí Ï+g’1³`ûý)€Ê‘·Ï“Æåàž”âˆ þrÊ$òòœ¦sŠ¥,$o6T’Ƨ”mb"QÉÆ=À÷¦Hê‚GhdäÉ÷éÿÖ§ ‘L¼ÅÑ™6ƒóΨ¥ósnÅ¢ :ü¿1ãÓž¦®ªÛ,ËÀB[sŸéÞ›(Ü˹®Ò0HçžjÛ²%6ÈcD2³@BùZIAŽFuƒ(ëZ±"$ƒ÷lÊžž§ÞªÊ¤±PíRž:„®ÍZ">cÙUq`N}y?‡J]ª¥€À>ùõ§ÂÄÛmîWø™¹$úÓP.UXâ`ÇæÜwÏ­,`ЪÀ1.8*Kg4âÞdŸ¼,p6œz³,ˆm6¶h” sßÿ×UÊ+1 UKãÉ8éF…'`·’<ØŽ|¾FxÇlTæMÑÁŒs“Á÷Á¢5bÊ›d2‘ч#éŽÕ7©9ŽO”Î}OjÑM÷4l-ÒãR1K¼a…9!OoÃÚ¾âðì5ñƒÇÿ,|U¥iÖ&Êõsm\Ì;œc¦9÷ûWÅþÝø¾Ö:ù×Ëz~óé_ÕÀM2-?öMðª0o+M‰•tùžµK¹„æÑø³ü{ãtÑÊ’ÀÂÂó<ú’G+£ƒþ £ñd”ŠëRðêqºA眀Çë‘ú×ï: †bÊd' yëÏzŽ8Ã[ùAÄlè}ÛêþµZ3/j~ YÁ2ü~6gÚ3’r3õæ¢Vdó³ó1?à› qÇsârBtWôç1Ær*êÿÁ7¾¼ÑG>§â,m"FiF[=ñè0:sÖ¿Iž3öà|àaI8'Üf¡’'ó~HÀUžyëIE Thüö¶ÿ‚w|ò@s¬Êä’å_k±9ïßÚº[Ø'à4 þÅÔ¦Ú |ó’0½??L×Ü#­²ªÆÑ²¡rXƒýi©æ®w)<ñÅh£b½«gÈvß±'ÀXe"O 0sæHÚ;Žœ÷­ëØ÷à$ оµÂ©* ?2ñÁôüšúv0°™^@…Ütíïš³6†hb~1=ÍgËv7QŸ=ÛþË,à€43)mÁÌ8$ž9ü5¡iû<|µPÀ^ŽU?Åk•Rxž3Œj÷‚»îÁP©Æ$þ={Ó2VA¸áyÉ÷ïÀ«NÂU<®‚ß ¡·o'ÁG ~Ȭ üñWÿáVxǃô0m”-šŽüc½z™”V8 ç$çùPó*üŒ:àœíÕ”Ú+™œ\~ðŒS‡´xd pñÚ"²Ät«éáßÂÒ$Z‚6@p¶ÈXÈíÓ¿ã]9Ž7‚ÊN?8á0s´º“?žj£SAs³4-9ÔYÀ˜Ææ( cаö6ªK­ªœ©¤`±§ò­L3;y,€}â¬G•¨5ceÄ»`®K‚qôÿëÔbÜ4fB ðüsïøUÈ€ÜCÆè Ÿ›ÇáJ<¶´,²ÊÄtU{ŸJAhQ‰¤v‘V †È§@8÷äÔ¾[ùñÿË@:œà~•+{lmËÃƒÉÆ9Á>ŸÒ <Ž *õ‚LÖŠVÐW‘Fñ’ȱ‘‚6O¿Ò¡1F@…N>nGN¼UÕÜÆÈe ß+níÛù b’·ŽTaF;ã­bç¨\„ f2Ãݨ;H>œöëM(v”‘ÏÆ8SŸhI‘w•ûÃŒÃÒ“ËRŒÛÈSÊ–#Ž=jã$XÓï¢Wˆ¡œqŸ×ô©Z)68Ìx*ÎG§ýj7©·.²oÛ€C¹'üþµ’F„¢9GÊ7/¯zRbЄØ4Œ`dÄrHàf¤~]ãR¹éŒr´G/ÌΧt…yÉϧáRyŠÍ¹ÀIÝÈ'¯çSÆ5ã@G!s·'ÇéMæþbƒ°²õÿõ p!¢/#°Úx >÷¦?–)ÊÅåÛ{ˆp0Äð1úâ­Ä.Q‰1IP8>ÝOò¦ÕerP ¬å3ÇoóÖŸ#¬’#£Qàœàþu+fF ¾k°?.X`ý?Z•4'&Tó|À™!±•í?‰Æ?ÆœdRŸ¼9‘±‘Á+ëŒr>µ+²G(bè $mÆ9ô'½FÎUJ‚¡[* ¸K>Áêws·=öÿP¹H”eå²8놫1Æ‘ÛlÛ¨þº^7Ü‚"G-ÇãJÈ®b¢¬^tq’pëÔã¶{TƒpB»ƒ‚ÛëV" U‰Ç•ö÷¨n"Œ3 º¶2Y}=}»ÔÛRyŠë‡“Éq$ƒnC‘Ôã4 +Z,„¶æÈ8ädñéœÔÅRºÈÊê['€áïïN‰-Œ¸™ÂŒç'ÿŽ*VŒ|ÄK™¶|Ê€åÉ$ÿ…<Ý‚’î‰ès»ÿ¯R«FÑ‘$XpO$í¸¨ø‰ð$cÎF=ÏLþ˜­·Bl oª±3´3nÁ<Ÿ­E$eXòÊç œû}{ÕæŒhX†~ðëôÇZ‹Èqç¾fàŠ.ÈLªÍµSpPƒåÊÄ™âžûF*“Æç\•öÏsH¸Šmœ–qÆ8$›QdO1N>S•#üisXÐ 2mh¼²ÇåeQ’¾äz~ç ¨¯ËòócØThˆó²»ÊßÂq¸ú}*I ˆy · |p?¥cÏv.%h3Üîn}ê ºHÍ—Råÿñ>•u™B³cx y8ãMhÃÈÅ\ãUøÙ­ô*,¢’ã+´ƒUó××Ú§k7N#È-“À÷'Öž±Éo¢F‰ŒbNvŽÜýhHú¼yD8'qÀvîxê(ŒØÆ 6ĶÀ£“…çëJʪ€• àw8ü;Ò-fÿ(óûùÀ<úu#ŒR£Ý‘Vu<Œwô<Õ$“ei†#‘ÆcØä9>œ{äU§X¥ˆF7¤ý@AŸl⃠?˜ Œ8£ Æ©ÕA,Ÿ@F;ç úRœ¬6Æ´Q–-;+€ÅUqÆ3ÅA°yĶ"!A@#9>¸äÕ–v6ÌV ì…ùSv» ò#>ì l‘î>¼g­cÍ©7!!¥†F‹ó¹U@ù›?^ýúT,$h¤iqÄ d/ã¨ÿJ¶ë‰b1gf1±[9ôZDýÛ,q•Æv’q“ôíõ­T‹‰2ç1Ü‹dޤñë@RÒd  ž‡ô<}j(ßÍBUIù‰Usþ*”"Mq;‹w ÓéœýGµD¤6:2Æb0$œúÿJ`–ó¹*ÊN~€úÑ"‰mÒ»¸'Ðzš‘CO{Ëo sór8'>þ•Pbe;›H/¬d‚îÙ%¶d,‰€ÙÆsÿê¯?hïØÇCøƒ¥jšß†lÖßWX™ŒQ¦<ç8#ðàqè=Í~ƒm æá¤mÃ!°OqŠc5d€@À8éÛ>õq«ÐÉÄþKþ&|+ñ€|a>‘«ØÍo$Dìb¤nPpHöé^E0#hž1‘ß×õ3ñËöyð—ÅÏÝÛÉiom¨•-ðƪ]‡Ü,qÛùë_ÏÏÆß€^%ø_ãÛ›=JÂæ8GÙp#fV¦Hú`õ?JéŠG<Õ™€·Œ0SÎËä}?ýUÛ Û)FŒûÛ³‘×>¿…]–ØFXá¾n›ëU$òÖPK ·TSž=}«F‰JänÅÙ•rç‡?Ë×Þ†„(ädЊx$NÛ7’ß›¸¥e,pw1ûÀà ¸ZÀÑoYIf“r¯zÓÎálCd§©Éÿ>ÔŒXI€™s÷‡8ô©aP“òÈ<ôZU"ORº 1ò˜x^£ü}éÈrv¢äÙüþ•/ʱ.H<n>ýi¬« :²WÀù‡JÂæñ@…]T 㜇 újdfã|AÃmÉè:ŸzŒmPŠA!r qÈõ§Rñ•ó>`Ÿj\Œr‡˜w…ó>eŒýsÿ릑‚NIgáˆn™© $‘ Ã!Fìm$ç$þW$nR ŒgÿUCz‰=²(`‘´åœ®íM 'îÖ<–Û…;HûzT¬ ÊBž¸þ¢•Ô]¢0ØÁ^ƒ>‚µŽÃlFTPÞbdí})#lôFªÜî°÷ÿI Ac—Ú{zRüŒ7¢ÙÃ8ã éS$5¨¾SHQËdä;7 êiÌòÄ*ÎÑs’£§×Gµ*á˜0‰ŽÐyRp=¸ÿ>ÔyŠ Gƒ °#(~ñôªÙÍ.Ö˜ü»ãç9Ï×OJ{º±&óŒ’ËžžÆœò+)?Ĺ9ý‡=) .èÉFv'– ùéúTF7WÍ…Lk¸÷Á'ôÇëÚš2(¹ãzW”±áÌa¾è¯¶j2ê‘…gSž6mç õö«p%Ä™¢’;`-¼rOqQǵd"3 u*w(Á¾=ªB­,LAaƒ¤çð¦´lÌ€¼yÁ#éúc5J6Båb,ƒÈnFI`À»Û­9šGGýÚcä úÓË®C©Ÿ™{ÿ…#®ø Pñ¨É‚~žôÓ%ÀLl‚T0br ŒýiŽîéµQ ùrIÅNªV5V&‘Žâs–QŽsŸZD(•£bàõϯz›»šGAEó$®Ž@ú’?–iÌBÙ©!$|Çw\Ò› ©U¬X¹aÀÈ©U”Èû£-¹‹'-ÎyüjÚ±2Bɶ8Ws8eÂí-ÏáÐU¨â 2íÜBH€ž;¶{UI$D”m …—HêpsÉ¡#§–Hf'c9ôÆrGõõªŒÒ@ŒIcw Ç,>lŸZ%ØSå,OB¾Æœ‘fiV˜3‡wgfÇ*Z‹p7,Ö'õãÚ•V2ê`NrtúÒH¬²!wg-Ó‘Û¬[°5`s¹ƒ©\¨$oîj9dRHF;r£ü)ì…™YB•#øWKµ„?0RHíéRÝÁ1ÛºXcæ=O¥H7«Ä4…ö¯=úÞõÆ|Ä*NÜœ·#ê;_5|¡&0€\ã·ãV†™«ö‰c@¦Píùƒ6qíõ«±\ìlÉ Œ®[“ùñX…VÞ§v3·ò©UKæ„õIùF:sÍe(êh¤lÍqNO冱+’85mcC ¨SÁrA ‘ÐzV˜J)Û#0Æ ó:õôíV¿˜IvE#ÐÛÚ”ã¡hÜ–8¾Ç #ˆÜ„*…fÇsÏ'Þ†µ‘ơнqøÕ[{óåä ´ã ëÏ¥^'œªab#hùw.3œgëJ”­¹H¦À+.Í¡›•üÇé‚ÝóJä¸<÷úý+^ÚÞ™þÕ*F>ñlp3Û5Pˆœ¼ˆ0ˆÝÆÞ~¸É«s±RØŽ0$›ý£¸ð2ÀúTò ‘œ¢«— ОÜÿž)2ÞKy­!)ó"€Fî==³WVù#·[Çp7“ëÇ| f•Ó&Æ ‘¬"RUXw|ØÏ¿ÿª r®ˆ|À¤¨ ‡ëŽÇõ«W1K)cÚÄ•É$úý@ÿ §¹ÛWpã𫃳-+„=Òʧcpyÿ?Z‘äpÒ¬ùˆç¶j8¦Û>Õ ´Œç1ôÖbÒI•Æ~mÌøÖµrV<é%™‹!ê RÜ`~µ4Lˆ3å¦% uã§5ä1¹Á¡Ü9ãÛ=ê=› P€‚£ 3‘óùT«8–’Q梅UÎs¹³ùŸJ£yC0dV$|›óÛ'µV‰@¯ËޤíWRGޏpÇ(ôý*yu¬t>Mž,´Y¢ fD`H篯<õô¯ëKá-“Ûþ; ˆyˆ£BTs¸€òzÏ·üœx>ê3ã5$¡§sðH€?Ž_zþ¶~£Ú|ð„3™còô¸†<|€üÞ¹ÎÃ¥tF-œuŽÑ‡•(%™TeF0}ϧ¥!…ö¹Q·{`Rc9íÓµYÊA‡8àžß^?2YŸå_1cäü¸$ûö­9,ŒÆ×?"°áÊœõíÓ‘ÏëMUÚÌD²ü£h#,3ß¿áSåã• °  ‘Q‘G¿ÍÈBHÏ~£ÓÓÔ±eŽo·ØŒCÀ¾6œŽžµĆçs:óŒzúÔì£È‰T)àÆIϦXž})ÑÈ701ª>ÐXð¥)´$È㈪»*(WäŽ7ê)Z=€‡V<ž1‚{õ÷©KH°´¸F>eàž§ééP픲ªâE¯Êç {ûç5ÎäHŽ#*m-ÇÏÉè@çùûšv(Úãy,HgùQzíü=jI  ¼cníÃëO¡¤f{‘¼'Nã-Úµƒ$­û„®ÕN>b»xàr=Ï5mWrTÇ.N9ä÷ÏéUÝÙ%Fh‘‡;É|wôÎiVV{­«l'’>¾ÕNZ\Xü¹/¢r»‡&ì·È©Uüĉ @_Þ(ã÷ÇŠlˆ¾yuÚÌ.xïëùþC–¸Î œœä€zúSر\H` + ]Ür?|TróYLaÇ'p$Œzw©c…?,³3—'§|æ†fhÔlr>`üÇõõ ‘Ÿ3}3ÍC$ ±ì€$‘úÓÑ”ò¼Ó8b@(þŸZY™·DÅOL6Ó»ž¿þºÆIšY]dV ¨z+Ý´úSÕÔÆÃh2W¨ÍA Ó3d<¼añרÏ­H¬Çs0Æ0àqÀèI¡&ˆh]±ÂÝcf<»É=¿ S i#hüï-ˆ%võ_¦zÔ¥¢Ue#.«Œ)íëúþ”ù#‡)ƒ‘ó}@¡&Ø"ݧvHK A!Ø·ý»Ô’‘XìU*rAaƒB,h#:Œð¬ñŒúž•gÀ ©ò0‘ÏÐwÅn¢Q,ª$Ž_-”.2Aç<Ž˜¦E#É0 „¦ïœS‘†U€ÙÈãø¤pìÛA8ʤÆ;þ4Û°ÊΫ‚ʃ§·Ö™·`pJù8qêÜãò§3™\ÆÀ•#'ýi¡S협”ƒ¹n@9çò¨³e' ®NèA‘þFýÛ ‘Ö¬*‚^B®ˆß.AÁ_Sô'?5‚ˆ™¤1zÀÍ1¼Ö…R`cÈÉÚ¿)ç§ÿ^­+ »–"]àƒôé»ÿ'Þ£’Í ~ ¤Fo¿¿Òš³eÏÊêǨ+ÁíÓ·­0(%ò ›~Pû"«F,:Ÿ!‹®@ùv•á€5YÖHÎâ8ÀÎAÀéý*Úù¢AûÁå¶Þù÷ö¦L¹•U>|¢†Î¯N•”“¸Ÿ»„)`[v@<ûw¤‚ á6ªç;²ëMhò.Ka¸ažiy1FX3ï8 Ï_åŸþ½CÀHݸ2®ÎI\0ü*À‹Ì1œäc…sÕ»tëQÁ9bT€Ì³Ï¡§mM¬¸òО00{*¥­"ì„– x'¹õ¨ÈáÄk$‰‚7Lÿ†jGÆ| @ÏÞ§F¨„£±uS×'9ê¥HÓ"XÊ.n ކ›´-ǘØ`ÃåÎ Çiì‡`•Ã( ”fg•—Èd ‘»þxüyª¸sn,¶wü£§<ñZE&'±8åP(êÛ~?ýjk¡Øð®ÇÎóŒ°'ÿ×CÊ™òˆ!¶œ5F ÉnÀPÙ%w3й$“#I¶—P"®K!9¿¯6ITPîCŽ»x#Ôæ£ˆ†@Ñì.ÒdéëÅ"‚ŠvàHù#?Ï‹hÑ®¤­KÁL¯8üiÇËtã.G†õý•8+Œ–=ÄùÎãJâåFÚHz Œÿõ©à±Œ"bíPØ,æ•0–eY6·%ºãxíQH¨Ó|Ï,[Nä*0 <`OjJCÑqÄæÁlä9?LÓ-×d©Ä`–Ï\äpõ­C¾)lÑHòŽwã=ª\É‚¸MÃ)>ã·5@°…Zâ¹$¶Üõ=‰úÔk44ñàƒ‚yô«[›|ŠË#sƒóqØ}j$eÒ&ä®àåP¤Æ˜Í« •Ãe•7¤“Û>µ!Ü¡²sH›>gn¿2DC$fE ì§cÈùÁ3Øõ5#2älqêÀz3Ò”¤ÀÕv¶ð© Ž>öìuüóMa+Ú… #“Ì8ÂŒÁ<úÕ¨Ã]”Å•%·‹ëŠ­$qòÀ•X8!võþ®kHËA¦DŒÊêèÑl$ ' >„uïV!`ÈK… ÔÛ±êO¥!!g p¬0λAõôÅ,Msòô<“Gçùæ’Þãrš=Ù&hœp1É€N3õ¯ø¹ðsÃüu¥ëVñ5Ë¡Eœ)>;ê@úšöd¥#c8*Xõ9:=íûU›VFÚx=kuTÊq¹üÇþÑ?³WŠ>|A½Ime“O vÍ$Æ2Ý8á†RÇR@VãîbÄ7=ǯµ^Ÿ~è?<u£ëv‘˺2‘ÈpJ“’?*þz¿iÿÙw\øGñöh¬ZM\´S !@,xÈÈdgy¼*\åi¦|6§d;ƒ)S‚ªOL÷Ç¥4¶$;:žäuöúU¹íÚ Êpƒƒ¼Ó”¸$FûB‚K7_Ïë]°6G¹e, (3òä}ÚoÞ$±Lcæ9ÎHô§°^’ÅzOëëM*Ê,¸&Ó“YÎWbIŠç…erIϰ¥ØÞy9gÈüE9÷#nÑò‘OÒ² yÌ»Èa†Gâ*6HG+åZ=ÀŽ¡¥À_›åTmÏöö c–E8³€:à{ž)¹r¢2ÀÀÝœñ×Mè&‡ÆwM9XÇ0 šˆ„l‚ }xÓ½9Õüì¨fP¿{$稤„[r•…;ssXËR€ì‘›ˆ=sž¿—j »Ì f)3†uÉ-ù pI[j†xR¤àw$ŸJkÄÉo!Áù¶¯ÝßÚª,mˆ–¸tìWgøšjíX*²äçhlŸÎ(‘T»8]Ä=è0f&dÙ#,jåó¹p>µ38ܬPü¥“æäu éøÿ…<¼X‘@•S¿ AŽ8Æsš†>øR¹#p}ÇåOÁS!"6b0UóÈõã ö­©%k±=Ý¥ˆ *l,K}<Ô{ŽHtÌ ƒ¸séìjUÙ«—,þ^ÑòŒ÷÷¤}òYº‘*'QÁë9œãrcv0–ˆØdn|1ê?¦‹÷›WxV íVRx_åLÚ`Š8é·§äÒ°rTºáJ2œdŽ£Û¯J´Õ‡)¥å•3`E°:ï$³  g<ŠRê³0UL``«ïõ¤ 6o,(ÊD€–ÇãŽÝë =Hæ$ÀÒOݽs’xõïQ¾ÅŒ…€°íÆ8<ô’lØþoÁÊã·â8©BÛ̬Vâ@ ÜI?­Uìfå¨Å• ãç(~RÏŒsÁó¥)æÜϸn6)'޼þñÞ•c6$Õ2ÜŸjr¶áç™â8åO~3Î1ÍtBÒÜi¶HT¼ƒq\"€„Æ@éœgõ¨öFÈ ÇÜ‚I>Äã§O¦3O*]±"ù@FÅdá{Ÿ­E!^ð#Á\‘Ÿ—ž8÷¬¥=Œý„©eW qÁäþ½9–Xî² ä þ¸«¡cÃ&å•ÎÐxúÒÈ2q"ŒÜãÛé^EÑÓX ŒížILäãŒþŒBÈp‚¸'Ö¤, ÜFرbqŸéPÉ#—”žƒŽ=¸¦¤T´"*QDФäp­:g&8”m#<ž•!HPf7Œ.cÀï­D³>UB¯ð“øúÖŠW1å¸×l¢¨VÛ·ä*ÜSØ7Q‡˜HÜœ~¾XùdpÁ'åö¥$*]@?{ Æ=… †µ*•˜JÁa#‘Û÷©Ä™” NNSÀÏ­"ᙸ*Ácœæ–?%d”[w±ùÓ½„âH%s:Œ)*»yçŒÿ*FâWo,/ü¸Îj8ÝQ‚u\dœƒõïVZÝv 3òœt¨”Íi¡ídWVJ3¹˜õö¦ ÌЬ~L…îïô©k˳a+· Э=2‘ §Øn«“üésÜÙÄzP¯å…QÔ–ÏÓ5qƒeY™@Ïå_ñôÅV($àå•rs¸ Š|Š¿epXím¼Žo?+…‹_½lá— ¿6Fp^¿ÓÚY7À¨^l¨|)éÿëâ¡' H «Îå;›5¬CÛIUêEÊi}½ÚET·‚W ‚䑟¯¯ÿZ«Mtò"¡ËŒž¨—-oæ4›@VŒŒý*)ƒ 9‰pæwc·9ªˆ]"P­¸¹™º®ÓíõúÔ‘Æ>ÖÉ0‘“wÊO_¦j¼r ÊXÁ<â§i‹ 6ðx\ù›éíTîY$ÌžihchþQÆ—øU?¾ì¿>N1‘žžýª×ˆ€ÝrHü)$‹r¨]«À$c ÿëÕ+¶]Bü¤mêsןÿ]+¡ˆ¢³—¯~ßãKû²¸T»K7õ÷§ïŠ7#€Æâß6?—åI¶ˆ"E2M†d?-É+FòOiÆõ¦M,žpÛ°€yk#É6_pÇ W޾´á'ÔRGqá0OŽ4¶Æcq¯£xÉì=Í\¾ Á¯ ì Á´«aó."%ãžžž•üŒx(<,]dYwÊ®ùÇrO ãô¯ëËÀ¨ÿð§¼*¬yÒ ¯ûù ꌑÅXê£bÒ¼«Än`¦r±éQl"ì¡w(ƒÆSNTqtâ=³†Á8à‚yÏåHøYI1åœ(#žpzr©¡Ê™ä¾dÃFËž $jI(°<›0A9æ’5(€¨eÜøýäy?ýzD’giSnÉÏ@Aµœf[Ø›&×ôÈÀÉ\ö"‘UŠ3°eQò9{k"VmʈB¸*ì¹éHèçj¬hΣCÛ ±¹ž&%O¸äœôža—.À#©#§SžßýzÞ3¹) ¿åƒ„`3tã©Å;yX\ùŠdÝóc¾y¨Ó—U‘¤ “ŒýÜ9Ï 1üõ2Oä+M‹h•²²„p$b2p¼|÷íõ¢i$*oÞIËvÇOjŒ‚'*X•$Å¥*$eŒyÊÀ'#ü(bJÃ"E™˜¸cÃT`òHì»Kí9í銘MäF[†n€óØžj"£^XòwrV|Å\”íYŽã)fçàñLf2$e%!°2ÉõÇ4nÞ¾c;mP@*½Çl~+ÛV9NÏÖ§žì @¨˜¯1žpI늊`Â0È ¸ ¿ì9æHÊ °Ê•ýlÓƒ#mÚUQ ±úûžjgqØguÈ!YFArxü†sM#z‚ªI Aè#<ÒnE”Æ!wvåˆài]£S·%PA\’iÆV)‡¶Þª®‰p0==éÛʤÀÉ^Hµ_>bÆ08@Ï+õÍ\ @ñ¶N{Tó\› ½£Û$²3J€ì:>¼š“ÎóTŸ)À%p¸Ýžø¦ 3:0cœ›îñÇá×üâ†p$ÚΪ͜òGõ«¸Xs1w2#¼ ÙçÒ—ÌQfˆ°ÆÐ=*³4 Bo">a•çÞ­9o$ Jýá¹þ÷p¥.d I¸E¼ì$ÂÖ™’»í-´uüj ‹tn `ÓÁBD .0˜È#ðëœÒabPŠöÈËÀÛ´œàñÉþ•Ç8$ç‘ÏAïÞ¢‹÷JwÇž>lž2O´òYU•cC¹ñò¿Ý÷5bFTƒ¸–Á<ãÿ¯L‘×jº3ã#gÎWçÆ?Îjs¼ê2˜OåMY •Æ‘óœÕ ñ…—͕ѰI ÏÒš~Ycf!œpw7@Þǯÿ®ž&Hàd]¥†KبLÅÛæQ´(ݑϮj$$˜>U862A9Çn”a‹"²‚à“÷yí=ýéË+8È Q†wmã q‘Bɲ×¹+’I ýqKšÅXWóAùÔ#PŒR;Ð\=ÁÈÀ  NsþqCí?:o,G ¤/¯ÓŠHж¡ù‰õɪNâèJåÌXsÆO8♹òѯúÀ£ïãR¡ÁY<ß4«g¡ÇjŠIÀ—q–3þŸ»“ÎilEÉŸlbd™ÂíÞO§ãPŒ6v„ aÉÏÍ­JÊ©p¡fS¸ Œò?¯J‚à³Ê²!ØØú TJm–ˆŠ;Û¶J21ù@9ü*MåÜ‘üƒh+š’2òDeDŒ¼ÏÍÅV¹@ÞIÂ9 §ŸãX¸È»¢f‘Â)RÅ›aÚHàzã4òs2–v,Fç@rAî?úõYYyb –wŒv¥i bȲY¶üßֺ)ŲYrc´å˜|¸çÿ/JdJ‰#3°çfNNzqž*«ÝÄ®e’eò–þ!ÛýêÕ¬c‰Ò{Ø6?žQ‘Ó¸íZJ ›š#3´hA#÷ÿõS QœFmá”ßÞ¹ù¼[ Y²‰u­5`É7C üë–¾ø·ðÓNæñ¯†âQ’Û£äcýî¾Õ²w‘éM¶k`DĸàqùŸZ`Ï”"'$gçøW‡ß~ѴѺãÇþ‰Ãn+Ò–rzuëé\–©û`|ÓÀcã½.C³~ïs¦Ü€9úçZ¥H«Üú^7ub Ë`ïS·ê})²6./œ ¼•ŠøÒóöïøo0’=nö|žDŒÄñÇ¿#Þ¹Iÿà  €e±³×®›qb!µ<œàz}O¥5M$#ï4 ¨àVvÏBx+Î1Fåsó° §ÍøcùÁ}ÿ ðš_;éþ×¥9 ÆR±Ÿ§^½yéÈê+˜¼ÿ‚ˆn“uýLr¨­v¡Û‘“íÇ×9â²kQó¨R8Q„ “Œ¸õþ\Sä,bz \ í©?t×äÍ÷íåñò(ÿ³>¬³Ig•Ø…Àã¯Z ÿ¶í ©ÄÒéþ·‚=à«­«°èGÞÆ ÇN'½h’±IŸ­ò§Î#ûHEÎÜqþy¤i"3áðÊ Tt5ù7Ç?Û W™F“á¹ì¡$î+¥±OÊI=zc#ééHu/Ûs^¸S ¾µbà`²Yª+±+Á8Œž9¥Jå6ì~¼™âbB± 0݃úŸJ.µ(ì6ò)L…FŽIþ•ùoðóöÓ×ì Oâ Z10É%Ê.ÞsÐ(Ç¡<ŸçVìÙûVj÷ .¡ã™í•Ž É©0+·± ޼wÕn)¶ÏÕ…ñƒ,ÚŲ°–ó×1ÀëX÷>ð¸y¹¦(  œ;Ž‡ØŽ=«óB/Ø·ã•íâK©üHs2ï%ôÎàã±{qëí[QþÀÞ%¼µ/ˆ×21Oõi¿ç8lžùãŒÔÝXiê}å?ÆŸ‡6w »Åz((ê‹þ–§‚;×uö¬[¿Ú/á«¿›ã–‰²ù¸SŽÀ¯<ô¯-?àžºTÝx¾þy#p»–ß ô ‚99ÇcÚ»+OØáÄ[>Ӭ듲®×eeÉ`zãŸÊ±eÜö{¿ÚÓà¬w³øÆÕß~Ñ.ô8ô種JëöÖø7þ¾nvä“ ;ÁÇQ‘ÔûJÏ´ý†þZ]1ž BõYHàvǯþ>º+/Øãà­´ŠWAûPÀ\6°œu8ö¾¹æ¾„ÑüG¡ëŠÒi:­½â†;¤I7¯‘œðzøÇÿ°ÿ†5?´]øFúçDÙqÓƒîxî@íšø§\Ó>:~Ì~4ií5 F]9$ ¥Ð¼>\ñÀ9íø¥9µ?sÙv#ùoÐùU FqÏ>¼f¤ýò]eÏ÷¶¶~Ÿ|-û>þ×z'Äuµð÷ˆbþÌñŽWËá' pTžøçÝI¯º-fŽáQÑÚhA àûz ”͈šp¨Y’/7v \“:ôÿ*Ë)JÃ"ÿ« q‘ÍG)‰ò>yJ”<3õçñ¤G_-䕉nzdóéÖ–¨«º-) §Ç‘êqÓšóŸˆÿ ü5ñáíþƒ­ZEq°²ÜPGÞÝ+ÐV@eóˆá˜uõ÷ý*ËŸÜF2Jàoè2zöö4ÝKÊ'óûN~Îú×Â_‰³«Ú”Ò§bÐ82gïÇŸLcŒ×ÇòG4mäÁüÃN•ýe|kø=áÿ‹ fÑõ kQ}±Å´¾Xo(í#¡äòs×°¯çãçÁáoÄû‹-VÒî;rÎ"”€†áƒÛæéN+¦VÑ‹V>o¹…A,CŸ•ºçõ¦’¡Gï  Á>ôù‹&3´ÄmÚ <úÓdÃ6NÍ¸É 8ã 5°âˆÙeûH*¹çžƒŽ•'mß: 28摲ДRÄnÛ‚úR6Aù³Œà`íÏ=I¦¬Dj§b…A~IZ–U%É%Ù–écQ+H/XŽO,uü¨T (mŠÅ‡1‚TO¥wq “°òHä úûô§ì#lc21 ÁÉî æ˜JìØ Ý’@4›±û¢ÌÎ«É ¬/¨‰Ÿ&”¿ÞÇÍøJŽ',Œ…@ 1Ö‘æde1`œÅIÈôällßiPƒòzûÕ"”‰chÌ!6HÊ ^ü Xâ“?*7LeO={ÓV?,Åç$)äÓÄŠ@&0%H$‚}8ªi…Ñ(‹i©lg;~¾Ýè1 ‘«oÁ±¸3Àù€9ùe:€GNÿ…0¬€ím¼r>Qž¹þµ v'å°Á£-Œ+2£TužA£ŽÜz næY6WŒä@ëMvA‘m¹ì§éZ©«µÖK|aYI`¤pqê $’m“pî8;éž¿AVü’áãçnúš‚¤L‘ì+“»'¦={Vww!Øu‡ËÀØIäŽNxôÍ? þñÚ8GÿZ•Cžd8äóÉ÷çÿÕQ¤˜r tub¥2;F}±Z)³n wÀ œ–Qœ~u8v‹hHО Ü ö9¤ èòe'gÊOS늆2\ØIŒÀ…RÕrDRW »Hx\s׿4Šÿg¸”31!sÈ9žŸ04iŒn,GÊ@`ÏóÍLÅšå‹tÛÂê{ŸÖ•“‘>b<‡R@bAu=Bä`þt¤̤ŽxfÈçóæ„_)£”ÄcœóßךžY#6ûBE£$¾1œúç·}MmËdh~h™$™ƒí+ÄC?¯v⥭ *06gaÏçQ@êÇÁÊç Ó=jÆð‹Ý:ØÇ$ŸsÛÚ”¥}„å©ˆ× Ò‰[*;Ž¿†zUŸ-^)PVræ59|fM£8*Ž€÷Ç­E!Ü’00È3ùWƒ³Ôå#!;·€MVxª«`°Žzj•Î-ÑqŽïа% òäc‚»Xó×­ig(•Š2ÙoïóQHpW:f§;IáÎIëÜ}=©ÅUDª[kpT2üÜÖ¶±“ 14ÑÓå'ïƒÒ‘J²èX´qÊž•:à/ g=Ô>Z²¾9íÈÏp(rFm\Pmm‘î Á¿Â–hY€¨B8÷þ¢§H¤DÃŽI÷¨T>Юò@Ú~R=)9×%µ‚i¥Éut'—#œ~u`¶`0‚ã)Á-ôö¨ŠL-"DgÅIÅLVFÁ7‘…{ƒÛ­dÕÍ!‡ÅbwgmØÚ çëÏQOß\Ʋ4n˜ 0|íç¿‹‰ †bX–aŒûr;RˆZa´'—‘Îü)Ù›2Èdq¸HîÝ›})Á#"ä§Ðg¥$eAd ¹ÎF3ÏÖ"¸€ÅÖLV#°?*ÊîåÆ$3±˜Lãí9}ñÅ4áZ5òðˆžœvÇzµI5´jÎ/ÞÚ8UàǠ棑B6BÄ.0ª~nxÿèRÐÎL…²[ÌÁ\Zˆ]wÇ·çlã*Â@DmÂÊHúsëHm¤.á†ånÉÉ?Jµ2h#FH ,O³äUïíŸz’c²2dPò/É?‰¨ q!?3 ¼²Œzt©"0rH!Háõ´u-¬å¤rd+ÜgÿZ~3:î@È9@£ƒøUFäfAÈ ¸;óŠ]Ž2ÃnFÓ’Õ¥6[tÝØ# êØÝéÖ¥Œ¸”¬‡ËÉ#äUÊçØÕdln#OXäÿUN^9cV$W©äþ4‰byA£,J®S¦Iç½5F#hÐ(PG%9>Õ0´!9\rÝ sÔÒ¢2ïXí9ù¹$â¢À‘Óx@'ü&ºc²;¸vñÁ,9çùWõåàËðWÂÀÅ´«rŽAýÚð1ú×ò)á7 â½9ä9UÆNÜ éÏý³_×?åGø9áy-ÄF?ì‹-ÓîàÆ¼;{çœVÈ㮎Â2¦v(_Ëdùƒ&ÐHÇ<ÿ*ãß$k)h„g •Æ*Xåp]pO‰#ù ¯ó¼…ó–RyNæì ¤™Ê.ýw³&xFN}x¥Ë Ã;;ï~QÆIã¥,®¥Yw˸ä’§€÷¦M󕂨" =\çüiµa¦É ®Wk,y'÷kÜsÉö LÒ R §# 8íùu¡x…2TDœ¨à¦hûD~kodÎÜ`v©æ.¤¼¸bW\õÚHÿ9ïR1Ê(Éðwdr;‚qQÇûÖf°ƒ -ƒœzç¦)ì¡íò¥²©–ÜyÜv4Ó¸\2r|ß(œ€ çëŸz@Ñ2º†d+»³“üê9¦Ql{¸véÇÿ¯ñªcqcóvQ³†ç5­„XL  [9êXdœñíÒ‚Ê&o'Ì'Œž9Ÿð¨åýì’~°nüò=èOÞE„E,~óø?.(öz\½ÉQâ>c Œƒƒ“ø÷©b”âFVÜËÓúН"yV%"R„©Ûôôÿ=*¥uC¤S´ÃÓéÓ¯¿JÍÊÚ×/™Q•É1îÉÀ>þ•Ʊl³"ð6ç’3ÀïøÔ(`™¨„sþ½9¤Žiq¹$•Z•‰ÒGI™åq€GqŽ€POÙüÓòî~Žzõüé…Ô\°O,G `d÷'éùÓÂ<ŽÛrÅÏöÅs´ @Ò; ²ùãjœíéÀ?€¨JH0‘cÎv©ö=qJ›7³¦'†~sÏ<¥5˜Í3$EO'q#>ÃÒ¶¤4I¼´®ü‡EØ@äcÿ×D’ªG1lÝŒÏæ(xÏÍ–9/nG½!Ç•åî-ÉÜYxOjémÑ,cìé™LŽXÿ?ŸãD, ³nVPv³©<‘üºÔ›Ç–kHã’ùG8Î?*«¹P$vB )çòïY¶&LU ¦îW®âÝýÇçQ×™„ˆÅ;·>§jʰ •ÛüXѵƒ)V\·a(¶ Fe—Ì,ìÄ„#§ùëK<µY¿sŒÿõù¨Ì¡ƒŸõn¹ žœûTÊq:*ùh­¼2ðÄŽR‹] ¸Ã)ìe]¤mŒŽ{Ò; Whó÷sŒã®}*#>éãBȨ£æË7ñô§© ó·@FÕAäÔó6Ç̇Ÿ˜2²Ë`’ >¹?ŸSNüÛ>eB0:wÇ9䊮óÄ¡DorÛ‡o|þ4¬Ûá£Ëà ¤c¹õæ¯ÙÊÀ¤‰ ïÄ¥È`1&pid+¦#ߌ+m䓸ôªÃP³‰%ó®„e¬ýFjŒþ"ÑáÉŸWÒáÁ/p‹¸ã§^ üê•&HÖiT@ÍæËÃä¨?O¥>'Sb¢Uʇ1î}GOʸ+߉_ìëíÞ/ð½–73É©F99<C~UÉ]þП´Û‡Žëâ?…Dr#ME Éúÿúª]'qs\öÖg°¸cþ¬t<ÓP°]ä0ËpËŽ3ïï_2ê¶À9$ø‰¢ÜáÃiæJ®1Ÿ”"óߥq×·'ÀkTð‘ßÞ•p A¦JÄdun3Ÿn¦¯ÙY d¼ÊŽí#2¦~\[ØñëSgËVÜŽã?3œw¯‚.¿à ß-¥+iŠu#å"ÀGƒÔ ³¸ü뚸ÿ‚‹x Ï,6¾ ñmÖxEcîÏü =;Ô*z”~çt铵; Ï©ïP0 |È™äùOoº9éï_—òÁEìRmúwÃ}Gû¯çjäsŽ6ç½r÷ßðQ|ÃNøs§Ã1Ü¥å¾gPqÉôêZÓØÜͳõ±›d(ÌÀ®:÷=èE³ਠyäžN}+ñ¶ûöûøÃ|â_á Þ_-YZ%–L½¹ÁõÿõV+þØ´¶¥+Ea¦Y*¬>Í¡ÈÍ“Ó'' qéëOêéj;ŸµO$,à*d^zÓ Ti" qûȾA´ž¼Žµø¶¿¿lMHxì­¼Tf“'´Ðö„“–S‘×Ò û'í½âV•þ!¢ÎrJ·'9qøt§¤ Ÿ´¿l·Žå£2«¡@ÈÃ1ýrj½Ö¯§ÄÂIîíaRK6ôǽ~2AðöÅÖ65å߉âˆ7ü¼k[Gð¶1Œôÿ+Ëû þÓZÉ:޳´'Mq¯Êàèrp§§JÆZ²×)ümáFÅLjt‹`Xî’Käàc¿ÍÇ<~5yñ‡á…œfk¯xf)Î¥9'€îÿã_˜0þÁµ=«qâ$±‘ä–WsŸ›šÖ²ÿ‚qø–Ea}ã}FÇ!a´rËž2I#Ÿ SŠ÷¥ßí5ðNÙ%Šãâ†÷3m —#æò8ôÿZåîÿlŸ€v,ãkgE?òÎ6nA8ÁÛú×Ízoü§LYà–óÇú„Ž«†Š5\cƒžAçŒJìm?àž­ž½ñOˆå; }žRuëÐú¨²BÜïoÿo?6– Ç©êת7c˰|ê2¯ÿXs\ußü7áD!þÁ¤x–ì.³Ú®<’ 9õý+fÏöø,·*ó\ø¢ú2ƒrÉu´3èý+±ÓÿbO€6w›ÛÃWd†ÊÍvÜîêÏ®1Öžâq1±ý…¾ÛYm’ÇV¿)•}éã$ç‘Ôð:ýk¥¶ý>ÙìÁñÍ‚ï)$ zõãëÞ¾¨]«ó¤‘¡‚þYíM1“°¨rHëŸO¥sΨùO´ýœ~ زýŸÀº†LñfàqútqÍtÖ¿>Y]‚|7fÎ"¶QÁÀÈã‘“êkÒÖÚCH89ãh?þ¼sN~]JŒ™Bá‰ç®>¦ª›¸¬rvÞðµ•Ô²Ãáí&Ö`ÅãÝÆIÛœtÇjчJÒâûš}„j¿*ô=«P…xÈYã…dÈÀÇ9Çÿªž$ çè NäöÏjÙT)"¤qÆ £Ånʼ À¯P*žD‰2F¡¶äåÏÍèÅ>S3 ÝžA!{vç_nC_1Kt*H×Ûñ¬åQ$Éâ>`9 ÀŠÿ{ëQ´j÷-¾N;z‘‘ù}qLPÑLÞLg˜À…iLììUx‚sôü« Ö“*%B‘“ˆÝc‚8'¨¦Jɹܮå$ d žý=DòÈc*˜iÞ'Ðöÿ>µ?ήO·ÞÝ’sŽ{UBNÁʈ„ˆ%Ualç 6’O¡ôâœÈ®*|à ‡^H=94y@”hþIÉûøïNfbc c(­òŽsœuþu¤u‘Lè|¿=žC’»†öéÞ†cæº&ÆwqÓš”adCóJÊ¿/‘Ó>•nYÈË$—ù¸î(š°Xp‹|A™#$® -ž´¤:í@Áâ$ï$Ã9çúÒC"$ÀF'QýиÇãR62Þ$Œ¯$œçðgš„ÉÝÄÑ‚ØmÎï\G<¤øßáõÞ¨ÚÇ:N…Š|ÊNpßÌ}+¹‘”L±®YÉÆÙ~?ãQ´‹öqºd%‰Ã(#'œ jV!ųùòøÇð³Ä~7Í5±¹±²Y7ÚL„þð‚#ÃÎz€Â¿O¿e?Ú"ÏâOÃøt]^x‰,bhÛÌÇ÷†ò¯KøùðkNø§ð›S²šƒTŠl¤ ÊçøWâ=–¡âÏß´:Íh×Z^£§Ý2ùr ¢TÜ VìËÛ§_jï§(ÐþUšÙg"0σò¨ ‚zu¤l™”3 J‚ ³qÁëÓÓúWŠüø¹¥|QøG§ëz|±5ËÆ±c所žÀÿ{Hš/µ.IbÎâJ¡¯2£±©,L¤òFÖÀDZ&ã2àLöçÖ¿žOxjûÞ-½Ó/ 0\ÛÈá•‡Ý ‘Ï¥vFWBQÔå2ù±c׊‘£,„+:œv¤`B+³Æœ ÙãŒS¶¶ñ–Êã œ7=iÜ«Xc¢Uƒ0_˜/`°¦Td/qׯëK"F¯‚Ïòœl‚zÿžÔÍíò.ÐbÚÎÒ}j”DHà‹í rIàT~ZÈ ‚¨½U‰éô¯ÆÇ¦§©.ì£mʨÚ¿Ï5]‡$wœc×5u™UDNõQ·¯ÓôªLHO4!ÀîW>ôEŠNâ¢ýÐIù[’ (T†|ðC7síÖïåI „ÝÆwr3BÆÂuÃofõäZÓ›B9G‚nlƒ 3ÅJ¯½ÙZEgü*$Üщ%³ŠfÔŽ6 ¸61•ïùÖRcå&.á7UPÝóíR!hä k,cï3Δ|ªÛ2ð‘‚G\ñǵYbE!¢?y dTÜi"UÛåy¯?Ò¦|«¼²ñünIéßÛÒ« ì‹™ 'ûÈâ¬$NÑ“#I¿Ÿº7öïTiÊK‡ … ¨O›i8ë×=ǽM¹8¤‘TÄŠ®_mÃÆ…$¨bØÉÀàÿ…X–HžÞ%x‹'œcð´¤ÂÚ•‰w d8#9ÛÎ*ÞAV}å:í…]ǦM,3.eÎXŸàdc53\Föûm†21–|㞃>µÇС#á¡fÞx…å˜ÿJ³;]›Bð‡#pϯl³²Bê¥ 0Cnú&mìÈèY”½‰ãß>ô”™›‰š…“i@àg›ƒž¤zúÐÌ×O˜ZÞ3‚[œóŽýup-ÈP1ÔùQåBÖÁ¼À+SÎzç©àV—D'sùnŒÊqÎFO¥@±.YSžnçÒ¬²„]ê ?#Œ°þ¼Òù²5“ ‡Ë£ùûÿõëXÊÅ»XŽ5›$`㜠j0YG˜§898;HÈ#)圫GˆÓääóRE|á£(Ýœûý+U;£;•pÄŒ«`œÕ­ÌbSÔ)ã' 8¤}Æã>[ ‚1Í:B~dÊrFF:Z%qõËVö>àãŸz™£ù¾ðܽ³“Å4ƾV2¬Û‡×ŽI©ŒŠ yDÆþ™ëÇJ˜JƼªÆ×‡ü¤ñ»nÚA$Èsò2êyú_×OÃYü ðŒÐ¬„"×…#§” öÁõ¯äSCy¿ €Ä1 Y@SŸï{þ¶>\´¿³_€gBñG.…hWx$äÆ>\žüb»™çâK„9ŽUÏ'!±‚yÅ1ß r®  ØÎO9üz~T­˜ÝNï/¨Æ d’súSšUŠ<ºÈ£$–ÛÀsRìŽ" ´¹T‰“ž}±ßçNfid›ÊÏÞ^¹ôã­H 2†e(\’ އ8êp:Õt 3Å“6ìrA;A¨¨l»"Éýìêdí©PÎCÇëQˆÖ›æ/0Üqž=Ï×ÿ×Nó$DRÙfÛvnüýé‹rL® ¶ô‚ç<~qˆ‰|×kb͹؞T¶Ö˜÷¨šW)ÊìØÜÊ8QÏ©õ©­·=ª»†WQÃzöéÉ\hÛF3ýÓÇŸÏŸÖ‹1+ l<€ÁV|núãµCæHoAÌx^Ç<÷þu,®ßeÙ¿k(Á!ˆ$z¥8ÌŒ›þp2ØÈþ½{UÅ2‹k´¼ŒÁ9Áý 1NæŽb¨Ð·s»<÷Uxöy". LÍ´{S¶‘,ë ¾D`\zÖí´†=ÙÞê5yk޼žp(ó €²ÀÊ»A<óŸZ¨×*ˆò±‹xVäŸÇ¦jªê°K1k»dEUÝæÈN篥aÊäÊF¿ž±—e%B‡ëŒrGÿ¯­)r$;²ä ã^ÕÎÜx¿ÂÖ7/-׊4{yFI3j&@1º¹ÿ ìd?mø“àËRŒ[Émb.1Œ“óq×½h¢Ð¹T •“ ‘•äÈOÞ#Û¥5U7"æ,†ÛŽžý+çkÏÚÏöy´%%øá˜1"8®|ÂÞØPIÉþµÊß~Û³µŠ«¯Ž Æìö-:iOÔ€™È¦é]\jzŸZ9T«æ>w†ÙéíéFP˜Ò;tü€ü |7wÿýŸáI½ïŠîÜ9UèG»’wèOÞÇ®&ïþ 7ðº¶6ñ•ê¤G`Š5ÈÎY¸®M(ÆÌ$ÏÑf2™Ÿ#ƒÑöv¦3Ÿ%€W`¨lO\æ¿0¯?फ़y6X|4×]²X J¦6íÏsøW¨ÁHõ”º#Løe¦á +yÚ´‡$žGú¡´{óÈ­³õµ&óU {òrÒiÊYU‹Íœp6Nséøæ¿îÿà¡¿dº‚7Â^Óc €ŽóJ$ÿhŒƒÀÈÇOʹ]Cöéøÿ¨ÀæÊ ØËk-,»sݲäŒt8¥È‹¹ûˆ[FB¿ÎN$ý})„_0©Á8Çø×á<ßµ?íQ©¹ŽËZÕÎÎÆ°Ð2sŒ±CÓùöªcâ?í™®b5Š÷ÈwM%âÈ`pF"N£ŒÔ4‰ægï+M@åP*®í¨@8ïõÅV7ÖbN.ÓË$®r@íŸ~^µøZþý³|Em—âÝëm 7]H `çæåp?~ϵ®µkýÆè¦#½.õð¹R9É3d‘žâ¥Â ®~áKâ= 7ûn­§ÚƇç\ªzwÏÓÚ¹ûŸ‰ÓbžKïxjÔ;¼íR%ŽÀîâ¿âý‹?i{Ùâk½"Á$uUó/õ¥ G_áÝœwÏë]‡üßã=âÃ$÷~ Ò˜Ëó§4ê3„õëÎ{Ó‚³~©j´ÁM,³]|MðlH¼]Uàã NNqÅrz‡ísû=ØÏ¶O‰º Çió¢·•¤ ~ª0¶kà]/þ Çñ í·j>9ð®›'8K{YgÜݲr¼ƒŸÄú Wagÿݽ‘c“QøyX4“¸ŸrÏÓ>Õ¦ì“é«Ûwö~µñUÝìn¥¶[ØÌã¹ÂçßÒ¹mCþ ðJÚ;QâÛöˆ³’Ë“òåŽ1ß ãÖ¸ /þ Éà¨aXu/ˆ:ý©'ZD»A n yã¾=…uöðO?‚ñ+ [ź‘+€Ïx±ûgäwãéU-õf>©ÿø] {¬—cᘠF º&YG?.ÝùƒÏÒ³¤ý¤?lm„V2ëÏ+}ϰx_˜—¯ÊY¿® ý ‹Âþ´Ž²èÚT^Rñ ·IAéë[qÙÀ¶Ñà0ÁFüEBQL,Ùøx|Eûpë—èò|OÝ Á1Y¬*@9Ç*¸úŽÝ{T)àÛ{V"[¥ø›"ç/çj‹ç¡9Þ1×ñàÜñøã5ªš±<¬ü:‹öhý¯µm.¾Àœ¤ø¤©Ç9èüqÏÒ´¬aÏÚ#YF]RûL°VÉcs­´œž€úÖ¿l˜"¼jBÂU°ÛŸåô«îb3Ý~`1žüsY¹¡¨¶~:ØÿÁ<~(ÊuOøfѽ!È}}¿×®k³±ÿ‚që!’ÿâf–‹´á"Óp}rÜŸÃæ¿Vã%©FŒ¦ Cg#מ•1ÌGÚŠÝbÝÆÒujåݯüGûbI«üHÕ?$[Ø(ã=y'·Qšî­ÿà¿ -&Suâ?Þ í*|…gŸîžxïÓµ}ý,ƒíila¡õ'·ãVpÌ„J¹#œ’r`(ö¦Š'ÄÖ¿°oÀØ«rûœ¼©2‚©ë]µ—ìuðÊö £ðHyQ†|ûéh€b2=}~µôðÌP À–-ž=Ô“Qº0‘ˆÖDl“éÇZ—0hð»Ù›àu«ÄÐü7ðÖèÔ©2@Xu$‚y®«Oø/ð§L ö‡Þ…P‹þ%êN;H<Ú½#Éù˜y®3È+éÔU´%•ØÈˆ¸ppIõçŠN³%Äæí|àËTˆÚøoE¶U_”®Ÿe2+^ßIÓ ·kxl, RêqŒœw«æŒÄ¶C‚Fxœö§<¡n2ª/Lþýiµ#»Ç žª,óPî-‡UV}¸gfǹÿ \Í !7(—*N$ÜW#¶E"¬T‘¹f…Tä1Ùý;ÑŸè‘‚Z?ábzõ?ýjvU¾j.Ñ€ù³žÿDË%è¤ch †à}j9–6b;¨ÆH=¿ýt,rùŒbB ³/LޏžôG´Br܃ÐÇÐÓ„’GD‚70=Aüð})òÈÈÊB°LŒßþqPùÊÒmE ½9ÛÆy…x7í ñÆÃà‡Áeñ4ÖÐêÚ¬— ¥ƒÏå<›RpHs¸ïM»³7¡ï&ã2)d!T®IúSBæâB6ÊôÙ‚ ýkæ?Ù×ö„Ó~”ˆèÌñÆå™@ ‰:ŸË5ç1»xÕ”ð=²9§(Ût Ü}Û«[6Æv‡o›¯zŒy†5FpÇ=ðGò:Sœù±nÀXøÏ¡ö¨ªŒ¯rF:“Ü÷ô„£sN„wz¾Ÿ¦X<·×––Ðd’i‚¯<`’G?ýzÀÓ9ð÷týBkm3ìk{wÏ”J\„$ã;° öôç#ókIñµ£j"ïG×oôë¤+[Êc“ž¥_¨ôüzW}k”ÆOSú“iÒhP#3£Èåúg×Ú‘¤_Ý– ód±=ê:qŠünøûtxƒD_øGâ _M7Q@ú´ŒUí!ûŸ>ߎ 8è9æ¿SuŸÿh|ÔÖ¤IÙVY.QQKrØÎN}¦kò×âŒ<[â߉7÷~/Õ.u ˆç“1ÈÛÖÍ’ òàñŽÃŽÕç xßhª¤„ª(cƒ´ƒ‚; ƒW)ÄéÃáßÄ/ üIðŸˆü3uýŒÈFØøeqü,:‚8> ×|á£eýÖçÇnkó‡þ ëos?Âj2êäG%â¡Ó7!*9“rÇ<ô#Zýn!ã\ƒ÷Às§õþµÃR Hµ&"«–<€pJcƒê{ô§ñ%ʇq»GÊ®súS>îí®»‡ Äã9Î;z~I&ÐÁU†AÜØÜz‡cAp~Ú‡äg÷ÇN)ÎòK‡Ui'Ø8Î… ³2°dìÁVü 7?“¸¡Ž~éã=sÚ¦œš‰ÆÁ9eÀm¤“Ï”Æ h¯¹ÔÇÎÓ1‚}zþµY˜¥+Ç`Ìrxç§Ò¥‰¼¼¬`/$Ó¶}ÿ¥k)\¿˜c9_ ‘…%¹bG·=3øÔbBk*๟Æ?RjM¡ºÈŽ~òpp:õ‘¦äWBdÎ>P2=Iþ}«õ^=Ï~wDTaY Y!wœÊ7l#aÏný;SD±Ìe0ç ü¥¹ëô¨üç¡–UthÉgØ=ȪÜdæO:Þ0Ì;Hîjüôý°¾Xx³À·^6ðþŸåjö(^í L‰ó6vœ§·¿¿AÑ [4ŠP6ÐA ô#Ó¹¨/ ‚óK–Þs±ËŒPW¦;õtQ«Ê÷"Hüýž>6ë~:®™{<ŸØW“ˆõŽ~O›ïß)ÏnþµûÉáýkO×|o©éóC<2Æ­ŒO÷²:ö¯Å/Û/à4¾ø«?‰4Xßû"õŒ±ln9*qоùí^ÙûþÑó4Ñ|4ñMó HÒ.$¾1Ÿ-É8ÏÞ#ºì*+E=Q ZŸ«îF“/åŒgùÉÎz•ecI"ý⫸Áá¿úõZ)€l•%LŒpG==ãQ;y*¬r#`Aó˜’Ùú{×.¦‰\|åÝüÁ1›|ÇüŽGåK¬ë$rvlÇCéQ—šXcdXÏ$|¥}מjFŽmÒ”Hœ¾I §Þž·-FÄRFv´eU-Já¹è}ɯÇÛŸö[ŠÊK¿ˆ^°cg*îºò·þí‰ä÷ÉcÓ½~Dzùh¨ù# «(ž¼{w¬oxsOñWƒ5 W·‚ãOºgrNG?LWM:–&kCù½´š+}м ô¬¼º«4ŒÎO÷GJû¯ö·ýžõ_„¿¯eŠß>½v’ÒDŒ Æ9ÏNØGzøv[m²®ZH÷6‚0íÅtî`¤@¼‘¨r€@Ç@(HÑäA @ å›9ëíRw0F-žúSUˆ‰YÖ"KcŽ«M7q±Ê±¤¥YšfÆ}Áô¨¾hQÇ8ÉüFjVÚb©v*GÌØÇçMÛµÀ|(Æž•œïq$?îË£ þ¹ÇÕBáƒ*m'8 “íúPÒlڬ˒½½?­M<˜fT\§ Ì3ŠÒž¥=r Pª@ÃØ+þqP…èË–S‚[=3ïJåÆÈSz¼x#89>´õȹ}Ÿ:à7d¯½l鉲%ò]HRÜØúñQ?ÎøÞ¬¸ÀeR9úÿõªR@•Yö!$Œ?ëëŠzÍ…DÚw\†¬È‘; 4„À? =yïþsHß4…£!ØÜõ÷¤bÌû•qÐ!=9çžåKH=?õ¼l‘ƒNãnõÁeÆsØŒŽ)wí•7 ½99ÍI1ÙxêÑ#ʸ;œœ·ê29TCbà eÄŠ=O·<ŸZ¢»6‹±+©*mÆB•Èëžjì’Wyµ;B’v»qÓœø¢ R•Ñ;Ý1|nÆFåýµ(VØ"$®6€0Gæ=)…C²‚Ƴ´Ó$_•ñ·w–qƒŽ­hÒÜÌ•¢lÊQpÀïOÆ—t‚)&\#a©ì3éÏ^ôˆ ˆžZ 00œ‚W¨\"üÐà`üägߌªÙ‰«‘¶Zfpu÷ïžõa >àGÊNXóÐcñ¦D2î’H”r®0?NƒÚ”enG˜˜< 6çŸ~ß^µ´jhf£©0VÛ²·%DŸ)¹íþ4á3K'#nÀ¼ƒÛëK*1›l’¼Œ¨á†nÜTÈ!fVO2M™ùAù‡ãÞ´§-N…£ \™÷+Á'…Àö§;eá}½)§ËL¨>\`w?çÞ‚Èï¸Èãd@.áÈÇcþ5áÌ¹¹bqœn'x=}éÊCÆrä99N‡°¦ãÌEÀ@ãŸ_ÆŸ³åUù²«ó í?_OjÉI£NMö£®eýnzcó¤dÅCŒU'åúûÔ„’ÌÊ™ œò”±D‹ G Ùã§­>bZ剈$㧸©2AŒ¯ ÓHHp­Ç9@½L­‰FëŸ2?á aÛžÞµ7&äjÓ•‡fá°JãðèiàÈÍœnAÂ;çÇÿª”’hÚFØx0©6«IŸ•Šãf[ôúPäÔ`Så—ÅKpPþ¼Uèãg¡bBí8ALH†å.ÌTç寭J›÷€„wü{Ô9¶tE+‡WçbÈT`8ŽiË /9#?…I+«©ùо:‘Èç¦j4’7²W±ÜyõÅR‘‰cc¹ŽS¡RØã¿ãü¨EŒï,7"ð?Ûß­FYX‡b­O»œ†o^(SºV0€©'qÂŽæ„õ1±i‰µÁB…°N¾èãŸcUŸFÙ ›¤åqÈúRHw©e‘Éà*Àǹ¤ †]¿4„U±µG®Gz Rû´‰c@Nr=AõÏ­9£Äj¨ e »«fžwàÈa•ÏQïRÈ‘J²JÒo;Fä`>†š’!¡”†ÀŽþÝENÂ#l3ewAÇSP¤nÁvˆÁEÀ¾Ô¡º©Yl äþ”\\¬~Æü7œFV0pyÎzt¤™ÊS·ýà?#Ú™, …œîyÿ8«,¬7Ú™^sóVôä&´*°ˆ·–È ¥IwJwÏ9(e=©óa¼–$`î}sQ(fxÚ^Nó€OÖººŠ…’PTˆË‚zsÚ¥`ŒÀLv|RÈ‘‰B(Lg œÿ,SâRò´€88*¸!p1Ó®McÊŠæ: $ÅV圢 —æŒ*9䃾•ýh|!Çü3?€Ê "è}áŒ28=ÎG\×òc¢F?´‘¥Iw•ùø<{õéŒc5ýXþÏâåc…Íqr· <=n^d\+¶ÏCÓžÕסÁˆzžÆÒ6<³'Ë·““øŠ{«ý”ðÎêËFròõ¤Lý¥ÁH€ &GyY­öL‚§øxª¯=´ æ]O q¨Ýæ7ʃ®s¸çÒ°õÿið~¥¯ê÷VÚv›g Ï5Ä’@Š2y$lz×áÏí ûbøÇâóMáke øA¯•’ÚÞFi¯cÁ(“¶8Ãc;3Œ’3šP)è~ªøëö¯ø'à;¦¶ºñ…¦¹¨®GönˆZêSƒÎãU?àDqõ¯ž5Oø)'ÃHSÌÒüã BÃd™†5'o#‰ñî9Í~QøGÁÞ;ø‹ã…Òô T×µûCyCÏsö~â’qï_¥¿àžzbiï«|aÕ¯^îUBtm:B¿gb̤‰t£Ôâ´qIÙŸ{ÿ0·FvÓ~ÞIrÃ;&Õ•Px<)Ço^kˆŸþ Qã—¸ ¥ü;ðõ˜#wúF§$§99PBçv1íÍ}™cû þÏVŠ]ü9¬_5nµYYYýjèìÿdÙçHY-×á–‰ 2o-pï7<2ýu¤P’gç>©ÿøÊ׬-<3à› éŸßC, {rËùñÇÖ¸{ŸÛÇö€»y¢³Ö<'c–|:Z¯Œ„rs“íœWëýŸìõðBÎÞÃ_¬Ý›û=Y‰À=HéƒßŠë­~øÄãOð_„íBƒ—+Ø»Üg=©Æ¤M?dý¬?j}NY™#þÖþ%ň>+ÝÛ™c´–cœ‡%"R¼g…À ò:c÷†-G†m–ÚM”H[x)l¸Aß8å[Ûù0ª* N@Ý?*jJè®V?ð†þ×~&g6?nçÎ@{«˜‘À$‚K2éÏå§ìÉûSjpù~ñ¤—âïWÀÇÚc‘Î0¯¯ß­‘£îe2> úSY™q˜˜©ÈÀ'ñò+ž³ø=aû ~Ðú¤ ך.…lÛ¶ù׺Òùj # íÏ=É뎵ÙiðN_‹²ì:÷ô¨P3!Žif<ûykÏ|gñ5û`¬Æcó1Õ:‚A會y8ÝæåsžLóÖºT“Gä ŸügÅÛ¾%xz&eÛþ‹¤NË‘ï½Hçwõâºí;þ ±n.ĺ·ÄË Wš×K r0ìNsøWêl’2;¨ãå*7=úškÞ¬d•œ¦€z{Ž•n¢±Jç=Ÿü‡áôj¯©øëÅwg¹ŠTg¾öéüë¬Ó¿àŸŸì-Ò+¹üi«|ß1›QÙ’zŒF÷É<#y¨¦ °ºÖg‘Jg<®à§œ~¹®ºÃöSýž´çàø[á™I/sJHô!‰à™öô¯¡üô2±ÎIÚ£ûŸZ@ã͈äïrvë×{KFšéŸ¾hᆙðçÁ¶Ã®SJŒœö#­uðx?ÃV©µðÎne¼­:4: è^Yâ5®x ½€yü<…O]áÔíèÄàŽõ”ª±4RK-6Þ!µ³‡æÏª¨ÎÀÇÓš±å¢á„Y €ú’?Ï­+s¸!ù\d‚”²‡ù×)@Á'ÛÛŠ˜Ôc2»¯™:¬‘ìï œã¸àûþ• )C’¹#=3œðsR*ìˆO!Ã’ƒ>œÕs.Ûfy]R3æ)ãÆIôR“ÚH{&Õ 2c, üÙõ© L¡ù™Ž]±óÇëOx~í­éï)u } ÔÎy÷ö­Bë*»!ÏFn9J¨¹-ÉIå.ÐŽ6ƒ´¼Ô  SmÁ¿ÌþU+¹6ù ¹fÆ7gŸéQˆØ‚ŠÏ•þ"=AýE5;ŽÈföTÀYA2zðÞœþ´íê ˆÌa˜q´r÷y§O)š6ÞJ•Ãÿ®=±FLR1 (8ÀǰÉÇoNi·p²CyË ®ÒàòrBý{fƒfDÌ…JîÜ9'ߦjerbPȪBnô9¶«°%žYvŒôéõÍKºÌå1'ËóÄ ¬I÷=é‰)i]Ô¦íÜ«vã<ŽÕ5Ää[î…Äò„çÛ'°¨ ·% È M!ùˆ?(>ã½%v Ü— $jUã$c îF*f* dËÇ2sÞ£•hdˆ(i@Á]Ä ý3Mkˆ^snÌ c=óžü*|š”åbYKdoÿXTï$c—JdeV]€Óž3õ#ðü+6M_L[ˆa–îÒfÇ—•|É:ð=xì+E¥Ýh‡ 8O”äqÞ´TØ”“&„²,»Øç’¢A¹íŸJG`,÷Hø-°Æq¯CÒ«»´¬¨X©À;×8n¢¹ÿxŸFð—„5=o^¾·±Òì {‹—”¸‹–*:–Ça’{ J-@ÅévœôÉ¥=¶²2|Û1Ð>síšø‡Pý¾¾Z ¦©â}^_/1¥¾‰*å ØýN+êüEðÄ/ OÁºþ™¯[¨A:ZÜ’Ý™C”ºÀ‘MÒis³”‡*LNò^ètI-voóŒ€y?JlgÌœ¹>ÐAúžõ0IJ²ÊrÀ|€àqÓë\òv)1 ‘£Ìx\ã¸ÀÆxúçuPþX 1éïQ¤kœ“´1?xAõçñü骨³9hÈÆ3œƒøtýh(”4av¢Hã;JG½5$Ë2ùÒä¸ç§·_“f,Ý|½ÿ1À®8ǨåTK‡,» ¦GCïY\ï)Vâ5¾*ÙëŠ$e{¶!¤]É’o§¯áAD%‹¿.IÎw}§$j©ȇ;rOaþ?J‡¨Y ìC®à»'$~UI¶ÝÌÆ8‚òY¾\pqSN‚ìi“æÎ°>§Ú¸¯ˆËà‹îm&’Îâ-âDöF7!SíÞ·¥ FÑøÙûUþÔÇÄïêÑãm;ÂeóÄDS%ô±´‘33dAÂÁäô¯‰šGY¢hgq%Ùc“*1ãÛ“QÜ_³ê<æfÆB1 Ü“õÎyþu÷OìGð_À_ügã‹éGXµÒ¬mÒÞ W•Û/• ïxŒs^ªVFVÔùOÁÿ|iàÉ®âðψu_\NŠ&ky6PtÜ;Œ>¼ûöwý®¼IáOŠ–ºGÄÝêþ½f^Þ¡žkg b@Ç’ ¹þ×+ê‹_°×ØSŒ÷Á­¿ÚoöŒÑ¾ü166É-ïŽõ{G:U²qµ8V™œ .ÂWýéÓ÷¬j}\Òˆ¡3m ËŒ"u<ãé׊‡ÎgÊJ‘îáƒcŽy~uüïÞþ×´õijOñ^*ÌA[X¢yÈîsÅ}MðöïÕíïôï|N7:zݦ·),D—œmÀ$wçiO¥Â2?_Y\ ™X“‚Oå‘U/5;]:Îk­RòÚÆÒ#™&•Ö4\ñžxô¬kè÷_×Å6·‚ûK[t'µÍ]Ù\rG OøyûM~Õ)ø£ã½[FÐïî´Ÿ¬‚8¬`m~ÈܬzíÎ×Ñm”Þ‡î–âÍ\±{Z²Õ"€•’Ki–U@ÈÊ“Ï#éÆkÌ­¿h/„7Ç…-|yáûÍq® ºZAr ÞÖSÓ¿õ5ø»û=þÓüð‡t;«ÍRÓX³f´Ž)X®pT;g¢`Œíêy¯—õ Û‰/_T^MÔ³yäÈw†êN}I=*êŽB9¬Sê0]Ù´¶÷TuÞ'ï‘×Jü ýµ~/X|Eý¨î,ô{»Ã¦è›€­ f2:žF ãþÚ½_ö0ý¡o,|Owð×Ç!ÿ‰-í’àÍu0T¶”ä•®FêO^Õá?g?ŠÅOÜiþñ­¡[Þ=Äœp Ñ6X1lŒñÔcƒ×µ£Ë-G¹Ê~Ï®~übÜZlÚ¶4-æž³„óÔàƒ“À!²séëšý ðíÿeãŽÚ†õ/âéw×Kmö±|Yâ,8Ü0ˆüëñ™¡^È&ó`‘wY~_,g¯±â¾“ø#ð â'ÆKK[Á/¤¤:tê†[‹ý“,Ÿ+ƒÐàò9=>•½T¹@þˆ/oì­t oîåÙÛÂÓK&ï• “Žàšüzøçûuøý¾.jzà FÏMðÕ”†(nMºÜ=ÐÏúÕc€Ž@ê3í_x|LÓ¼o¡ÿÁ/µÛ=NêÎçÅ6Þòï.!sµÔ(W|·%¶ƒ@ÉÍ=W*Òë/½ùg$†Æ õ<¼Z碓dÜûkÀ?·OÅß xÂêï^Ô“Å·a¶»Q‡i#jõÇ×ëÁ?ÚÁ|) î‘©ÅmªCÿhi’¸ó­Ë çppGa_pþÊ:Ρûi_t-I53N{½KOˆ œ +³Õ‰é_4xgÅ^&ðŒíuS›GÖ¬d!. rpTà2窞§µh]hT[Gõ'žl`1Vm»“jç ôÎ:Ô`Æ]Á1ò°qHÿ=+åÙ‹ö…Ñþ4|/·f¸žiÖÑ.©i"Én\pAÇ8Æõ v‘ðXç$ão|å\m8½M“º?¿à¢†ÏâO‡ü[—/q¨Ú0¸WS²2Œ {pzJøá–…¢xã׆ôoë §hw÷©·)>PlàžV*?~?zÿiß„‰ñSöcÕtë+[{vÎ3y`òXºƒ¹>Œ \Wóçyiw¤xŠXxæ…°9Øáç“Èo§WU9]Mßñóà­ïÁ¯‰ë¥ÛÎo´ù¡[‹±<Ô'=·qê=«Ø?doÚN_‡Ÿ‡†üc«Îþ ºFåÖÖFçõøÍû@ü&¼øEñïXðÜ»X†i¬%`I’6©Æ9ëÈõ¿Oÿa¯gÆŸgð&µp²kÞb2I“5©å_¯;r·?l߃ßð°¿g9ÓS¹hü=­m¶¿`ÿ*>rŽ˜ ž8=ë÷ÒÞâ+«XeGVIbWGCÀŽ9çŽý9¯å`‰­µ—ˆ‚,ÄíÚAÒ¿vcoŒÑ|EýŸ­ôMNìÉâ  y|Ò7H™ù\âãƒÛ?•,M$—0FZŸl,˜hnvì »åö'ŒƒUÜ”ýë[É6æFC‘ƒÜwü©ñ)?9b0#Åè¦?­8••L‚FcèTåG ÇQ\\ÚÙæM"”v Ø\Fª¢9£;F$ä¸P¿¿òÙÂFÜ€3ÀzÒo1üû‰@xÝ€'¸î=+$®[Ø”fhY|È]ÙpqŸPõ¨ó ‚©"G#`'hlú{TLî¯.wÞ äwS•L…UN{Ž09ÕOGar“F«å:¼q† •nzãüóJ XA `ÄÏ·=*¡”ùFD#x"“‘í‘Ç­:6q3¤HÀ€ á²; ö5ŒØ4X ‹ÄVè=xçÛ¯ò©ävÃ.cÐÿR* ¤…•3–Î×ãw9ÆqÒ•®#ÜUºã€ ñúþu¤_BòÎeFRJàœóÀíӞ晿te®HÆFäÿZb0Š7„ÇÊíà“ϯ­14Û¤0²Ï–ÍŒqÇ\sïO Ñæ¿>èÿ¾êš£s‘žÕÙpa|a_޽Hã+ùûñ‡‡|Ið{ö†š 'Óõ *ü˜e_”±BvœÀ'¿NÜWô˜d!ÙB4sà`}=+óÃöÝø'?‰üÿ ¶‰jÃY±ÿ¯)@/#{qœ¯\óôïWN|ÚNO~ýš>5Ûüaø-aq%Ú.¯h+øŒ™o0|¹Áä©Ç~9×Ó±§®Êsë_ÏìÕñŽÿáíjnŒ–ú È6Ú’3cËLòÇœ‚ ëQé_ЇõË sÃö:•ÂOg%ºÉ+œÃ#žã¿ãSU(±Ó•Íi<Ĺ-ÒÝØnfǯ^çò§¢)il•H0ë€3C'˜…°¨X¸`~¸¢žI‡j ð¬ÝI=Á5-ÜÜvðQ·CŽNÞPœt^Þõt²€îêÃ)ƒòcœŒ“ÓžŸS ¬äyMå¾÷ÓëR"²7˜H®~èÁç çüóSͨ¤®ø÷ðƒKø»ðGRÐïa?oòK[ÜÃ21#¡ÇøäWóAñ[ÀÏ€~'j­e46Ó$dzq‘ÏOë_Ö“¸b{Ëú׿ïíÏû5Åã/‡7^?ðæž²kvq¹Ž6#í9$ž¼.qï]”+&ìÎYÆÇóîß=ÎTÇîáI'ç½2"¼& ?\Žø­‹ý2KMFkVC‰!XÏqê1ïY2¤i9p>|u 1zè•‘š•ÊîpIhÀ‹ ±$~U9‘de@¤:‚B‘Ë4Õ Ý00ÊJ®)àmÜ[å*:ÈÆúÔhÍ’¹S8b£æpA÷4ö+äªÇäs¸·'üõ©‡Ïl¥‘<’¸&‘\}¨e°Fc¯|zv¥°˜¬èêªýãëíQDmÛ ÒI¿áŽõ*±ÆaŽYp9Ýé; ¦AÀ †éþ5qª!’JÌ¿:s·Ûƒõ ‰#‘¢ùÀ"RÄ0olŠ1…‹+Ã)^Gâ)ßì"†v •dº°*’FʪƒÉïK˜NÃU_c˜c8PHǯ¨T$ÈÌÊYw0În<¸ô§eUÀŒPí†?.ïz_3ù9û¼œÓLÈS»kÈFÌr?Ïʇtò1‘Ã…,¿ëOP>SÖ“*¬¥›{„ ~uWlL@ÅÎ_5Ÿ) #øOøÕ¦bѣʫa–ÉÇ·¿?•D»ÐÄGµîŒxyîMHŸ5«¡egOâfû£=lÖ2§+Üh{ x¦)å¶ ý÷äþBŸæ„¦wIž6ÉÇ­@Ѐñ¶œ0-žqVJ9‘æHá|73ê}•kúš¨\j•ŽÊ,/8gn@ç#?äÔës¼ìGPvªóŸRz♵՜•‰‰cÎÜÿWj· 2Ûí¸tQÔúÖ©¤l s+™YÚHÔ ìpO¶=)K+ 9ON™õ¤‰# ™ ‚yÏLô1"G!Ãà–\W‰¹p˜åÚʯL0à{ÔÈw‘°‚1Á隉#a—‘º_üñNQ‚ÆEU @8϶)J(èL–Au•dž*%òÚf·(ËÞ—c·; Ø=¨?Lv¥Ú’ÛÈálúÞ³@Ò b݇š#Aü Èýjlc|!:/'ðõ§Õw{žrKj™9 z' zã֬ή<æVÀN Œ{ŽÇÞ¥bd¸v™ävq•!‡_|T:1VF 1ïú½ª}ƒz…]ÝðïÓéŠÆFÉ0˜çÓ¡¡wmÌCç€9üô ÇùKno•ƒô¦B$ŠC0ùNìýïè* µÔ´Y“Ÿ)l`¯Í¸úóÓ¥65\1³aWßùR X²+£qÝÔíãùRìe'Ìf2/^z‚jåÅܲ¨‘Â¥Ðã#–ƒÜSäGŽÛ{€±ô0üxëÅUIPĹ gó©T¤Ó $$€^¢<‡?xI–a'·j™`Y,¥vSr¿Ûóÿ<Õg2,SpybùÏùô¦•ë1m¨0o^*ÖÀ‘¥mn¦’H#Ê‚UFH¿Y–Ò'tpËüC<1×ëYGÏ9Œùeú§LŒt&­îwC¹Ã0Æ2I¿áX4î;!Â8a,UƒÊª|Ç'ØÒ4PÙ™~eÁ-×r=°{ÕfÞ@]»g*2 `SäÉŸº·4Ó`Њ¥ããËõûØÇ§4â®å2ÌX™ÏëC*ª¼…ÏÊ*M:96\Ë•`…‘[Óz™4W–Ԗᓆ'4’ v FV }3øÖ§Ûla²ì«4œüòd…ÿëç¶*³˜^ž5²¨Þ¡q‚sÐw¯B)4fÙ ÆÆ%Ææ#œç·¥eu¢BЬ~ëøàûU9"hŽ69n2O^Üt¥ŠÑK–2Â÷Á÷¨‹°Ò:xuY5m Øw:‚/^ÀŽýº×õ5û>Ldý†~yk+„ðí²¸#îäñþ{f¿•ÔɪZ´p•çd’8í_Ôì¥z$ÿ‚yü%º–AvþÀ“ßêzõ5²g t} »U± Sû¾ÍN{ÒîŒÇ¹dcó »‡_þ½GŸ2'!L‘¾v±P¸÷ª²Èí Ä›¥€(*­Û¯¯øÕ+˜¥¡ù]ÿø£ªYøw¿ ¬ZKk-Guö¥4w‰ÁÆv’Ûû£>•ùg£éŸÚºÝ¥¾{‹™D[åË– ª¤ÿ{=»×Ó¶áž?ø(ÛÍíŒ6nFÆÀ"ù€ÏNrqÓ­r?³V··wÃý?R²¶ºˆëð´\*º8(å29?x#uº`´¹”ž§î‡ìëðcHø5ðJÑà¶¶ŸÄ·H—Íôqžb§åVÆí¨8ëÏ­{¯˜ì¬ƒ~ì ç*±'*V[o)™£p˜§éÓƒô¨‰û=Îö.Û “ϯâ+9ê4‰ƒ´{÷ È>\䎄ñÛ󪥕\GPåp8¦3éÞ,®òGÉ»åÚ8ëùŠñÏŒŸôƒŸµø‰d¸ò±­Œ,·³1;aFÁ›å°šÅÁ¶;žÆÊÇ,±//·Û½Qi÷9Br­Œž¸'ùkªÁIïÌzWÂë…‘ƒ2½æªŠ¸2#V<ãŽ;þçw¿ðROM‰m¾øBÖ2[ù¤ÝÈ)(¾ã8ëíB£$ÇÎ~ÉK)R\1^sÜ9ÇlSÕ¼ÙUaÃ&2@$žOøq?ü?ã“ÙJÿÙ‡j~õVÎI—'‘™8ê298®Bëöèý£Y’Ú_id3&Òm´Tƒ‚J³1㦌õï]*…ÐsŸ¿!íX“&ððX~ìz{œTqùío½T•ÆÆOÿZ¾[ý—h?ã™cž6´ñV—c]µEm£%•%V g~Âx/Jú”\Ó$•iYlè=3X8j+Ü0±Šà8<ž3í×½.3 «fØw/˜8úþ|Ó¢ÂÊåUKn=rõ8à÷4J‘MÃ9ôb@ã ÏjÕBƉ vŒ EI7à4d=Çן¥$E^%ìŒÁÿ=j2BƪådJ¾AQ îÌ¢6RÍŽÝÈý:ÖsfÈЋlÁ@F™•yþR=9¦¤pE»rlç$çh9ëÛš”L^D ÌÛ““éY)Ü–ì@Â3p'0ÂÛcòã>çŒâ™)iÁh\®ÑP1ÏZzɵäS“Œð@ÿhT/9U(ð¡XånÞ¹­cÂä˜s ˆÈØWcýÞÝúqÅJÓ¬±ÆMŠp@N}ÇZ_,ŠX«o$¯/§·cQRuXægßœ«0=¿Ï5<¥X¶fóIþ Œ¢·$ÿŸZbÁ, ³•;¶Çšo˜±Î® #êïSFÁâ ?yà}ì†9ôþ´åMÛ@r9Ïø£LðgÃmwÅšÕÔ6zF•f÷WS?Ý “ž=ˆükñ»ãgíÕâÏÇ›ðêÖëÁº öO£è‚â{äýÒ¹¤Ž '#Å~½|Cð²xßáŠ|+,’yz®—=‘ÜÌ  ®I^@ŽE7?>ø“áÄ­K¾0²’=kOp0ÂÅtTOSå¾ÒFkj•õ3rÐÌÒµMF=zÚk}BS¨G*ÉæÈåÊ8*UÇ=AQÏçÖ¿¥ŸkçÄÿ<'âa…]SI·¹ã’è\óÎkùŒ„HÉ4ˆ“ÈRp$=6ãß¿¥F_³dPZþÂß ‚åµ4m&GòöŽK*xÚ¹Úz-kZšH#-vFd”Æ¥@ ç#iúÒ£oÝ2y¦IÉÚäœgÐëJÉzåØy˜<þy¯—¾)þØ ~üJ ksêú¦±I,±éV¾|hv1&໾^FxïÍs‹cæ>¦W˜à‡d 9SÉÔ Gyóû°:•OsùWÞý¿~ x“â3hÚ¤ZÇ„tóŒúƸcŠØ*€@b¬HÜ¿JûGJÖtÝ{FÓõò+Í:uIíg…òA 8èsš'FQ&æÈ_*éwl#ª’Ü0ô¦n%%ÀFR@Î1€zŠŽH÷HYÙÂ9#b€zž´1!¤0î0à3ϯµJ4H˜xÇ Ø9Éç¦sÅ *ûÊÝÆG^)¯¹È_¾íÙAü~ƒάëp‘ D‚©äŒg<ÓvC±ÈxóÅšWÃï„úÿµÉDZve-Ì›Sr¨áFxäár}E~ |}ý¦|Oñwâ二ž«áÍN×F³µífŽ'ØÌ&hd+#îSƒéÇvÏïÄ Áãï‚(ðu㯕¬isØåÆv# 6=Žá_ö_ðNíþÎ2Ûj^'¹O‰2§™öè£Í„'vB›æ ŒÙGÓI¦Ì¥{Ÿ—ú'Ä/xoÆŠtßjÛÖ3‰-næ˜ÈaÈÜO\œö9æ¾ÿý™mOAñFߟïîuý'V¾Ž]JDA-¼óIc'*¢œí9*%çt¯…:tÓyZtQÖJ´fY¨êw( OO¼8¯Õß =ìß´c©ËÕð±‡í2«a^C’Ëìz×á?íÖ4Ûø(OŠˆa+YZIzvÍÁŒ†Áþ PD7z‚;qÏ&Z‘ñìsÊb‘70“x!¾ò±ÆɯWømñ{Ç_ r*Á%¶ÆÀÈ˹HÈéÏ?Z€³3‰J8eQ†cÎzvë@Û°4¾òräk9-JH°ó)€Œ2€~ftǶi비CrnÏ,08韥D²9ûˆ0·aëšzÛÿ¥lì ÷Pd?$ö«ŒA« fòä[ˆÐ¦ÖÙœãœs\ÿ‰ôí¿‡ÚÖÌ–²ßéÓÀ&†R’©d*Xr'5¾Ä-ò¹È(9ÇoçL•âZH@uê>øÇªÑü¹xŸ@Ô4/êz6¢jvwSYÝ ŸÇ>ÿÂHöÅ}¹û|H‹Ã´¤þ ¾¸H´ïÚîF–R¹º‡&<û•™}FÑÇ9¬ÛËáÔÞý°¯¼CgnÐé^#³Kø$ ²uQêG~ˆüuÜsŽÿhzÆ­¡xOÖ´‹Ë‹-JÆá%Šê'ÚÑ0î¸èG¨ë]ÛÄV?¨õŒ‘’É*ºcäíÉéž•òÿíû4xsãg‡ öÓG¡xÆÙOÙ5\‰.%Ä£’;ŽÔÏÙ“öŠðÿÆ?„u…Ö¢SÇöɧi)Û%ÁT¦‹Ÿ™ pÙ¾§ S/ïVBq»A?\×%çϘeï€÷þjZ^±}§ê:ö¥~nn/mƒ(ª4PÜœòÙ¯Ì/Û×WÔoÿnÝZÊðBÖÖšU¬vK¡ÿrÛÛ-îX·¶×ìï‹>%xKÁºï†´ßjðé—ZíËZiÍ2­ Ábç¢(È$ ‘_”ßðPO þø‰¦Áæéšå¨¶’hØ2µÄCŽr~ôg#=“Œó¢®îÉM3~Î߬þ5|vÁ׺¼š‘Ó§»{ˆ™ „¢ª¨U`Aù˜gÐ\ׯ_„zïÁŸŒ÷žÕ¦·žX#]Bp&‰†T¯ê0}µSø/ãû¯†ÿ´w„ü1ñCáÆ£y¨Å¡Eyª£e¾$~õÓ'1•ù°¸#Œq_x—GÔ<7â{ýT·k]NÚåâ•Ú+HQ×Þ¿S¿`ˆÖÞ#øYâ„:Û’%k‹H^]Ë-¼ƒlÈ£<€Ç$q÷úbœªX–ɘn.´ë¨'W0Ë Á²FÒAõèkúýš> Eñkö<Ðõ+ù`ŸSŽÛû?S·“'÷Џl÷!ßu~(~Ðß®>~Ô>'ðÁʵK³sb[î´R³4`çÑxãŽ=«èïØâ±ðçÇ»¿j·¿eÑ|E6y8 w%Gü m¢¦K™\z1ûQ|.ÿ…eûQkzTvΚUÉûM‰Rpb“ºË§&½öø¯€¿j[ ênÖÚˆÔ@ÈqòÏ‘å±br9;xõ÷íÕð³þ¯ÙÖׯZu¼²êº3LB?g¼IôVžÃž9¯Å[Kùt=r ëiÎæàu#ät9 ;Ž@8éIC™XRgôëãNñ§ÂÍoÃѬ¶z¤–ÓFä0*à }ˆ8Å6¼!àŒÿ‡5¤ŽòÆöX6„xVùXB _¨ÿ‚‚xFÛàDWZÞ||kˆþÅLðÈw(dã—-ŽÇŠòoÚSÁúwÇ_…–Ÿ´/ÃØôϲˆµ«iT%Â2±PĀ˜0<ã ¬Õ>AÄÓý„þ:xzÏE»ø;ã Bßmüßñ#K¦,²–Ï›8ç<÷&¼oöÈø%að·âÝ­÷†-æO j±4–Ù„R)ËG»$u®ô¯¬®®ôÚj6-smyk2½¬‘à*AÝŒuÊ¾ÚøŸûYxKâ÷ìU…üW¡ÞŸˆPʦ+‹e…—#Ì.Ä1™T˜úsZÆÍ0nÇŠ~Ìßî>þÔ:¯4Ò.‹q(³Ô£U8òœ€Ó†Øs_Ñm¥Ò]è¶÷ÜRd«/ñ†ôì9æ¿•í̗ĶÏn¬—JêaÀêá\¯×¿§¿µü¿ ´7½®äÓáiC)BËRsõëXâ)¢©»«æ,»¸/Ÿ¼AÀöúzv¯ÅŸÛ'ösÔ|!ñ÷⊫sá½^ð»¤kóÚJT³!Ài<ƒîFkö Ü2ܾ5bÁ¾eàrN{Ö‰<=§x§Â÷ú>­ooav†à•)R0~ðÎ~+–³5”OæÿáÄ=Ká‡í x®Æy¥Š ÔÜ@®BÝDr ÷ã8÷Ç5é_´ïŒ~xÛ㕯Œ| ²¬z®·:Šd«C1;H!O ÆO|×WûI~Ì"øIâ˽_M†M_ÂW3³ZÝaŒç,Qð008ø±Í|y4l÷Ò+FÐb¥~î=kµJ69esê¿ØÃZ“ÿ·_…­Ð\Iò½¼ˆ“`ÉÁ8ê:{ûWï=ߨît׳¹…^) a!#‡R0sÛ¦zŠþ~?e_ êÞ)ýµü ,m¦’;[áw},2hጙ¹.í£9ÏNõû'ûIøSÆ~"ýšõð¥«išý’‰¡Kp󪃾.9,AÈ÷Í).kš+ØüFý <5má?Ú“ÆZ­³[ZC©H Ž\|ŠI*~^9Î/ Ôýž¾0Ïðoö†Ó¼Ja–óJ˜˜µ8íÀ.cb¹Âç¨ 29ýx/xÆzn·$Þ.Óõxu‰²í6§…æÆü¸ÉÁàpG=Åqöö²ÝG¤ò…ݼ`–^¸ú×g4g3;4ÏèÛôWÂ?Zè_cñ—‡¥ÔuSìöfõ|àä}Æ›9Èõ¯eI"ž!q ƒ \ïÉPG§å_Ì·†|ãmkX´‹Hѵg•’(œ”fÇ9¨®þƒ¾xOÅžýœü=¡xÏQMSU´€¡•q)œ¨$’2Ö¼êðŒv7¦Ùì,BŒHe$?vOéÞ«±mШ]ðó¹ödŒgœw=é yoµ7)åØÜŸzŒÊ~Îè’*`Øå»ãë\Ñ7¶‚Ê\ÂαƬ Æ*3žþ¹?Gï£PQ¡P¼o$~¾ÞÕißÈϘý‹obF;g¦=ê!ò.ð<¸Ý,Ç<,tÅ9jÅqAÁ ûÐÊädzzúf¤;LüÂ#q'†'?¥F<²Ò—š<“Œ+0={ q•u0ǹT—=³ýÑß·åXò«Ý¬–EýÄe™€ Æh Œóú~t…eòà éórœ·C×ÚšÁÖ1æ<¢FLÐý@ǤBÒ±wgÊáC1å»ò ÉÏÒŽ·*Úm•#óÁlXc¯ùíÚ’98Ü­Á`zzبŠñ¢³!È Ïë×4ª¥•cÆÃ€È““ëÒœ¦.Qd}̾NÆ 0É»¡ç©#ñú ÈÔtë]cIÔl.ü››9bd‘d^+È#©9ÿëÖ¨ñÌØÉ'¦FA>´åCä1h–É 8Èç ÿ•$˜5¡üöþÓ§øqñêîÚÎÛ|Ò´Ö’Œ§Ø’=ëîŸØ_ãqÔüß õûµVÓFÛ9'”šÀSÓ,9õÈô5￵g¾'|Ô.ìmÕõÍ1h±ÜT”ÝÔƒÅ~'x?Ä:ÇÃ/Ž6ZÕŒ³Gw¥Ý3ÜéNxÏ•ºŠš9¯ÊÏéŠ3¶1/ÍΫ&<ŒùRIp¥T ÇÐ7×ðýkÊþø÷Oø‹ð{Añ„‰)¼´Rñƒó#t*}ÁÎ}1ŠõXØT`ŒÝNIÇôõö®j—NÆñ•Ç*™mQ´N1ÉÎ;tâ•H؇Û2†*7éÉÀï×¥48YvfCœ§·µH]¼­›;?*Ü9}ñÚ³WÕQ4޼œ7“°{wíÔûTW©Ý­Æ4Þ[MF¦C) ¡ãéR©lÎÁNÜçqÆÑøŽÔàåäÞ‚EpJ7_§½(ÊQ`ãt~~Ü?³¥çÃïˆÓø‡A°i´;ÇóHTü¥‰;ON¼šüÞš u‘„O–Ý€>èïÇô¯ê÷ãgÃÝ3â¯ìÿ­øjþ$’YbÍ«:€c´ó@+ùƒøŸàËß|SÔô=R ­®-®pàƒÇñׯnÝ+Ô£>s–p±æÈëöƒ"!·8ÝíLge¹òä›2ïøóÍ0íûq¶ìrCÜjU¸H‹€:õǽjÓCNÂ7ÎIXß “Üb+Ì*deKrvò:YÖ6@7¹r6•V‘ׯqÅDcr€ 2JíÇp>¾µqw Ü–YT¨ÄŒx\pNi~èvPwÜùRj€‰´™½ íM` ¢¨< õ=é8ê° È‘‚Iç,6ãõ¦Ècóþxc,[-œ÷ôǵF~m‘³íR2rÝiô àÆTubp}*Õ=.c-ÉIÚøTi²ƒæâ«Ñº–ÆÂx$g>Ôðªªå>fãr¸ üòpHùSœãùT¨Ü­‡‹$´j8ù@ ¨äÃÎíܸªäôëÇZ—ÈŒ—'hÃ8íœõ¨WjÆò€á/_¨9BÄ7qʬĒˆl ?9ÿ=骿è¿p¶XócJjùgo ¸RN_P*C D&]˜üÝ7tïÎ3Åf•™);„„FQäûĪppyÿ>ÔäG29MŠIõÆq뚌ï‡(p铨úš— "î}ÀíÞº"W)è=êDwyd ãÞµ J£Ç·a<ƒŽ§§åÀ©Ùdd…ß‚IÃt¬±Ò•©¸ÄBK0¡'?¥_c ¤^0UÏ#ØŠdŠ$1‘°Àƒ»iÎrïš½nÍlÈFç9(0ÍÛ·­Cr4LâÝÿt#%ã ’6·oðëOHÂ&²¶Î\ûÿõ©¤0 ÜÈ€c+Ô{TÑȱ¾ÏpqÈ'ð>•çD! .éUÎÀ­´*âÙÕŠÄ¥@ùºRO­D‘3¯– €ÝÜ€ø© .É… aóŽ”ä›5º.ßb8e ŸoÀÓ™‘£Uù›yÆ 0…hÈbLda¾^r?JHEÄ{@R ·^•(Ïa•vö;[$ã¾jUlÏ ì ¬vã®OΫ®Å%›™ ïÏzq%C€w:÷ÍU˜n6l ä€ßéüêb Š~mÙ—J@<Ëlx#oëIå4d§ÝÆI;‡Î;Ö2¹¼RHhŠîL‘ò°È?J—Î>ae¢íÎOôõ2K#$Ç69õÅ=xÊ©à*àö¢Ù –ÔK‰nŒ{~´¾ahäi63’7Á8úÔbF**¨Rr2þœÿúª97°dB°ûÅ9ð+f®ŠH¸ŒlÃjªýÑÇÿÕM*ϵý@~µ3YAøˆ{c­)ˆæL( ©“•¯¥EŒÜ¬Ë æHí™J¸_™˜Žþئl‰7ayCüU *í6õ˜Æºén•¯—¹±Š'Ž5hÓåf_˜är?ŸçTÇÏdPd†-’xCÐuéR>K<Ž£Ó¯4²—JI#UŠäŽÕ ±ƒ|ˆ@9¶i¨³7=FÀá•0w/ ìxVàõöúSÝ/.GXZsóŒ|ÀŽœãëO‰”y$-Ϧ0;¥@™P§<îÁÈôöéÅ&µ1ibÎÁÕ#P¤œŽ8îML#,Ndi##Œœ.=¸ªÐ£´Ê7’JáW$‚¯½JûáfÌ;˜.ÉõÆ;VÑ…ê1ÑwíPFôãRì*Wˆp)˜ü±éHwID‹/ãkp2p?*±»5°%Ñ\3nŸ`?ií2åþí\¼q)ù£õéŒÿ^†ÞáæymäÊ“k…?Ê«‹EóãFy3’Î~•(¶g%ž H=8zàúl´Ò4-g›û]'’g’El´Œ8>žÕý1~È×2ÜÁ<>¸àÿe…ØTHvÉúgœvàWóE§¬‘Ü 2´b¢œu$ñëž?þÿbÛÁuÿåðF oƒí1>òIù&a’Où5ÓJì㬓>¬òÜÞg~öÛ’áº{TJ¨" °$›Ê2:ýiÅÈ`¤~ôŒLàcðôþTÉF¦<‰hFAãÐóúWM¬Îkh~~Þ\ðQï mÌvóø{N‘†Ó±²g\úž˜úcé^Qû;^5í¡ðÖúK™<Æñ¸‘‡¡p€îö 3Û¯|ÿ‚…ÛÇiûpÁ.Ó¶çÃp+Á c’m§§qü‡­|¹ð~êK?ÚÁ—¯m]zÆSç.PbuÃ~søZÖ*è穹ý>ù±lÜå@Û“ÇÎáÒ¡óI»Ù! nùW•Àã<ÕX›íù ìŒ“·±ÁŒzû}ji¤Hî"8+œcÛ#¥rNéš@‰¤°†%ÔŸ›¦Üƒž0?•~~Û_µþ×·ž]·—ÂÞ·û[³lûA§ßÎ$0E|ƒpæa_º’ƒ3³eq9ùŽ×Ú¿/ÚKAÔ´oÛƒâm¥ÅÌM®Iwo+ÄU%…•129Lçž3†=è„ìÊ’Ÿa¬Êl¯­‡Ü½‘ö+ÿºÜ|õûä°¼±ìhÜÁRØ'Ž3ÛŠü@ýžf‹kûaø2ÿÄž×¼)£iºš^Ï©^Ú¦Ô’â5ýæX±P™ûÙ¯ØÏxëDðŸø»Ä71Úiºe«É:™UZFv$ÜFç$áG'ÍfÍbweÒ™CmŒÁrdç9>ÝqXÓø›Ã–N±ÝëzM¼Q!Vg¼Ž<žü±ö¯ÂÚ'öœñ¯ÇOˆV~ðrÞiÞµÕéV¥â¿¸cˆ,æ)1 %تtÜTö¯5xµ;=_PÑ 72ÛÞÜA¯sd™“Í2J¤l).§!IÅe:WeBlé¼[ûjüð§Ž5oßx“T¸ÔtÛ–µº[M"g@èØd ‚1‘œþuÂGÿø'ÿ %¦›mkâ©Õî#w%ªÅ ÍŒ±/£$;Wáø¶˜Gw;:$“¸yL“©,Ǿ}sùžµ­¤Ò^F°^'Ú#0ó/9Ææ3ë\UÇ ¥#úIñOÇŸ‡º/ìÃ⊚F»§ø£@ÓQ•$´”4sLA¸ \…ç¦y¯‚µ/ø)4®‘ð¾y02·:×Ê£¸ùQŽsZŸgïëßðIøRöãC³¼ñjŪxo3<ëcŽDóT³(8ãvIɯÉY-g‡[ºÓ\2ÞÛݼW([%eF(èþ ÈÃÜÓQ°EŸÒÁ_‹:'Æ€–^/ÒÝã æëvVÝÊ«½Nî Áî9¨þ.ügðoÁ¿‡Wþ ñ6¡nš„vÒ¶¦´Ë÷òF ùP†<¹ÈöëÄ¿bo†ž,økû*_¿Š ŸGº×5·Zé×8ó-“ËXÄ‚v—îžGóÀüÊý®¾*]|Ký®õûoµÝ·†¼;u.—§ZÌ<²’ÆÅ&—nH,Òþê­O³m—Í¡½ã/ÛWã^µã}jçCñÅÿ‡t«‹‰M²‚ ÛDƒ~ÎHŧ­'Ã_Û_ã„ |ñÇ/Œ¶~ðÍÌvR›Fº¼¾žÑÚB¼|pI ç'=s¿~ø“áGÆmKÁÞ'±’ÇP´pÊ¡ÄXí™H8Úø$wìqŠêTÕ‰?¢O„ß¼3ñá5¯‹<%½¢•Óm&•ZâÊNÑÈ8Ï Šù'þ à ;Wý—ôï‹+q«hÚ¬K5âG‰³#Õ2¶B29¯ÎÙçㆷð—ã……å­éµÑ®®VßU´vi-žÝž0ï°<ÕQò¿8Æ+öCãÕ®ñ7þ ÙãåЯ¬µ+ ï É{¦^ÛñÎUDˆÊsÉ,ƒŽÞ•šV=Ïç’òu5š9 S†Œ¬™9Ï_np+÷»ö#ñckÿ°?†-î yš5Å͉xVV(£ÛiZü”(ºm«²&º üΧžßZýiÿ‚pø€\x_â/†&¹2&·Ô-ð¹ ²˜Û÷'ÜÕWWˆD÷?Û#ã–±ðƒàµµ¯…ul¼c­M²ÊFE*Á–O- ÁTÝ,8Å~Ü]5ýû£G¾Y¤œãc9%›Ž2X’HÆNkí/ÛÛZKÿÛ¦êÒ {ë94ýÚ)iwE;6ç ä…8ýÀ¯Z¼D´?zþ ~Ù? >'ê¶ž½3øÄS^ ]3NÔX:](MÊË*epFqŸŒÿà£K/^ñÝ•¾ÛmoG{k‰©Ý5³å{òJHOݯÎh¥)*²ÜÞ —%Œ岞çÓ¡ãœ×ê£}âÚûþ s(Òílî¾#x'Y†&ŽK›¤[p¯"¶ß’G„±ÛŽXmÏ!«žjÌVÔüÅðî¹áÏi¾"³%æz—PG €3ŒF߯¿m?kÏ hßà›ßð³ôX-µSHÓ­õí:ê8ÃHmö–5#œ2;|½2£¸¯Ã§‰#fFv.Nr›—ܺ}º×é‡ìWñ‡Ã ðâ/Â/kbÊ J ßIŽWbµasd1°¾ÞÜqÏé¦ËV?3¢Ê|©>À¤2ÈyÜs÷zç¯>õûëûøàx¿öÒt¹fŠ[ï ^Í¥Ï$”ˆ1’ žù‰Ôû~µø ï Ï"YÜI5¨F0;!RêÚH<Œ›‘œz×ëOüE<ñFä6§[»4 ‚mr#cœtó¾lÉÙ°ž¢£OMBÇê‹û\D3ùyÇÞ'Ÿ¯­$„ª<{X÷C‘¸þ4Õ(‘¢ªÊûzåÿsõ4ÅýîÄU ƒ’Kr¥yŽ65ŠÐq.NP‡È=¿]ò<¸€q€xúQ–3´AZY2#¯Oo­7«c ø}©$RcÄ¡I "œÆAÏ<þ´¡²pH@¹*Crj‰“k|ñ³9Æ8ëÅ@\ºÆ˜p¿áJ2³(¶»ÖuU9ÝŸ™A Øì1NL»‰ûã<~zÔy¤²08ê®ü}}iî¨T2}þâi¹øíð“IøÓð'WðµÄÖ–:¤ñnÒõµY~Ç>AWõ q† FGüéx¿ÃÚ¿ƒþ$ø‹Ã´þ•}-•ìd‘†F+ŸeeÃPÀ÷¯êWËYm•P‘¨ÎÞ g‘_þÓ?²æñ›Áw:Þ€-´ßˆvðm´¼Ûµ/ÉËϾ‘òQÅvQ­¥ŒÙø_àïë¾ñ–³¡Þ\麌ZÞ[i n† òƒÔu¯ÔOÁGôë?†º`ñƒuMWÅBûö|ñC>v£¢³eCÍß¡"¿0ücá?ø#Ç:‡‡|Ma{¥êV“® ‘He`q·#†ö# ö®y"’9=†`ÃåLúsžàõúWJQnäññÃã߈~7ü_jCìz=£ºhšZ&Ò&ÚYK€ ’˸“ëÀçô[ž ×ÿh?ø#nƒ¤]ÍfÞ'·‡Eijpßf”¤~c`”b¡—'$wä×ä—„|3­x·â™ h:l÷úæ¥t#³¶\_“ž¸'5ý~ÌÞ¾øqûxKÃ:ÕªZk‚.5(Ndò¾ö·þÓXbjÆ jƒ?ŸoM½Ð¼K¦Þ¬k{mta–7Ž«!êÇ_¾âý”jíágõ‡ž;¤ðœ’Íqm{-<;ºýåb Îzö¯±¿iÏÙEø™§Ýø»ÁñYé;Ž'i!Eª–ùñÿ-zá½°kñûÅÿ |sðþ+/øK|'¬èkzÌÖßlhðIÄ:úñÒµ¥UI ÁÜËñÖ¥áÛŸ%»ð£\.ƒ6§3éÉuÖÎYU—±ÁýE~§ÿÁ7aº_†ß¤žÄgBЧ{L"—$rª ñØŸzüÍøaðƒÆÿ¾#[xcÃS>£4rJ^Rc„,`n,Ø8?0Çzýøøð‚×àÇìõ¦x:ÞæK›>¡p\|÷2rø ¨#<ãiô)ù1ûwøcAÐÿmÍUtED’ÿO·¼¼ §ls>àT ô!ú’kç‚ÿõ„´?‡¼ebnf†Æv[»håý¢6R¯,0G=øÊŒ×ê¿ígû)j¿|MñÂ7QÉâ4²Tm,Â3vÑŒ ¯‘†# às_Û~Ç?´ Ý×ËàKÛR\ÜÝ@2HûäñÍL$šÔ¦{íÓ}¥øóá·Â‰: ±ºÓõ9÷jQãî²ÆÃ®GÍצÇç&“¬êˆ­otÛË›+ë9–k{ˆ[Fã¡SØŠýÌømû1›ø'í¿ÂŠËu«­ÍÍͬâäÈ,¤gcÆF:ƾy&¾m‡þ µ«Kâi…çÄ-)mQr‘[éìòqÉ$ëǧ½o‰+Ø÷ÙCãdß¾k~ñÔ°Ýë¶V¢ÞQžn­]6[9ÃnÎìwç½~pþП³—‹¾ üA¸7vÿoðÔÌÇNÕbŒ¬rn ìÿeÔdã¶=+õsöxý•ô¯>/ԵؼEy­^]éâÑã{4‹hÞœŽsÀôõ­£éZæ™%–·c¡g&smud'‘œóï\oË"¹;ŸË!‚Dh#8ÚÃëÓ§=Gç_º°×ƒ5M;ö#û7‰ôkÓ5[énlÒH~{¨_ï4ªFÈ!G÷Eu¯û| ÿ„Škñዹ‰`ÞK_JÈ¿6ã…Ý×¥}AgŽ‹kgkÙ¬á‰R#nÔôUÄ)%aÆ™ùkûKþÄsË«Mâ?„vR\¤Òm¸Ñí*_ïI3` ?ÁŸ— ÏJüâ×þøÛÂ^*—ÃÚdžux5ˆï![fgÀä`™èkúsÚ3!i#ç$cúÖ]Æ‹¤\^´×v“˱DR< HÆî£ó¢ž/•Xn‘øŸû.þÊúß>&Ùx³Äp\i¾Ò¯q<¾‰¥@²/”H#'=ˆ¯ÛøQØ¡Q#ÄnXúQo µ”F8-`„Œ(TG°ì=ªS€Apväc' sÆ8"¢¥g1Æ£9švPJ³¬6ò1ßùRÂO1¼ àq¼Oשc?¾VGÞ3ÊÇ=OÖ‰#`veNT`~éô ×6¦©™:¦—§ëº Þ“¬XÚê:uÌF;›Kæ,Šx#sÛƒøWÈ~=ýˆ>x  4ô›ÁÍÂɇ•.æ :œuÏ\â¾ÑG‰†Ò”˜O ½iìÒýÿJèM؉CSçïÿ³·ƒ¾ izŸö—Zþ£0yon‚Û*œ½òkè]ŠcesŒ–<‘ÿÖ¦ ›b›Â8oAÀ¤‰¦TÁ 9ÚΣæÃ?—Ò¹§'rTN'ľð‡‹mlæñG‡4oy´&ææ0FN ¯­EiðÃÀzvŸ›_ h)bÁ£´\g¾N0yÏ=«»Áó–-ÈÿˆŒ63×ßüóNB¾b¦âO–rŒO¸äV°« åE´Í:Ô3Cci y"P@Æ9À­¤[p¹ªãýb¨ëí“ߥRVÊaÃG W¨#ü;T°ìP>WuGVm§îöúgéíS6ÞåÚÅyNÒ›6ö©lCÇ_ž¢Ÿ‘B´' œþ¹Æ>µ&é<ðC¦ãŽG®Iã¯lGtgcnŸÒ›$‚Iü⋳Üçð¥1š?±£BpÈ@oÓ3&[h(Úd óÇ$c¿?¥L¬Í°ä@ˆ¤=p à¨ÏqŸOçDlÊLA !(:nÏãϯçL…TNÊ’ˆr9É?ÞùÒ»H¿4xL¨úÎ:ö±,Žm³,‘H¬Am² £a/jüKý³þ Üx#ã„Þ#Óãš= Ufœ: &T•È=³úzý³Ý'—’Êï½K(l¯à9¯ øùð‰¿³¾±£uâym&Uù˨9QÁ<ƒŽã8®œ<®Îz´úŸ›¿°·Æ!á‰gÀ¥õÂiú¹3X À¦%NzóŸCÇ5û?ouæ[ÄÑ hÛ<€éÉþ]ëùºŸ‚>'—Ä–Z–™vª¾jãlŠÜgý¡×#¾k÷¿ö}ø«ÄßÙ÷BÖœ¯ÛMµêÊJ‡'Ðõ¹£O•sÓzØú$‰î2eÝ0 9üºpyÍ9$Ú"©æ\÷öýj¤ªáQØ0v]É·€O?1§ž×?¸&XŸ øÇP8ïÏjâuÕ³mäó`Ý´!#näP}~•@ϲÖ|à®æÎC`ŽŸOJϹ» xŒv«c-´gׯ~1T¤”K(X÷ǽí`9Ç==MîÍ”KézZãªAùUÈÀúý>œWãÏü7áLêÖ>Òl q]±7Ì#ʇyã×צxãŠýoŸˆÊÉn™Q˜ÉcÉ>çq^7ñËÀ°|Jýš7h*IŒ ŸZ"µ/”@ÊB™|ßã,Ä®O·J»ŠÒÈĦÖ8ð1ê*¼Z«HVD Iù¹R:3S@­ó±^R o)NTqÈÇæœÒ±¤ G»a‘˜m ½9ê:f¬¸V,È;), ä…ÈǵI Ê1õÇ>ç=±N’5wì”… ÆÊ§Žz`síY%£7äÑÖ9'É(…HWêxÆGP:þU«jÊ.Jè‰mî¥ò}OOË5’°Ê×»H“ÃÇ ×ô­‘ÄrI Š7Ü8%‡SëõÅ:iIˆâå(ÌÄm)·æŒ÷(9rá3òà ôõ¨‰Ì¤º ÍØÿõêo;1€e!{…«È¸¹†7–.AŒ–eÀ/áOgF1¦60ÌAÃPO–ŒjÇnôÿP¥çUw‰‡F\þ5¬$…vBÛŽâ zìý85&IŽ-å™BôqéùÓJ¬¤( ÆW>¸«/±¢FÛåy`qßÖœš-2â=àî`vŒŒìjl²1ùЧ’1‘ü½iŸvVCº0AÁÇÊÍè?Z±Yß‚TžF[ñöüèL¤îFHxÂeP8ÉëúÔŒehÛ1žNÑ’¸ã'Ò¢•&„ErK9ïì§aZTV ®òAý8¬'k”›%ÂÊŽ&&1»Àu"Ì Mæ]ç§ “회Jîùq’O^=è9óJʯQžqßsY]&HÈ…pC†<(ÝÏãAH•¶àúýFY™ú¿8ü}hݵĒdeË€3þ½jž…²E;y–¬£® ëøÔ'™æ•‡Hù'sùT+,‚6åƒq’H?¦¹ÜÆfÁëÛ>•v1‘)båc{gå ÆaOŽá†6‘”]ª@#ê9Î)¹”ˆþâó´(Óš'h‚Tg Tò§ò¨[“º,18 aS&sÛÛ—z†/õ[$WfQÙóùR ‚LbpŒìxÆA§È¾]âí8,¸b z{ÖòjÆd§ËóHþg°ÀïךµÀ“F`K€G'®jŽæi;R3Ã7­Xó"_+$3¦K8#ž? Î&±dñÄÒ[ïå8`2ç ŒôÈäjz@’Þ$/FÊNX¾J‚}}8¨àßç60 pz ÷©"¥Âˆâ-÷wç9®¥5bž†„—0GL$ŽÊ_ uÇÿ^¢„,Ò°V¸ÆIù}sùgUKK-éù¿{ü;†§ù5sæ>ZMÊÈ9\â°rW'snÇMMBhÔNT+ã,ÁBŒ÷ÿ ê"Ñlí/Ä—7H|)U 2>¿žsï\,6Ò(fGÇîVÚ=óÏlW³ub»\~èœ:b¿š›O1ãI¥ž1³“·*v‚ãøkúý’õÔàŸ$‘X½¾öwƒäòÝ—n}“Ïç]5dŒ¡èØœ} '–L3´ØÆyíŸþµ|%ûxcÅZÿì‡a6ƒçO¤iÚÊÞx‚ÃkBˆÅ¦>eY 0 q_y”‹#Nõ;°xÎ+/X—N³ðÖ£}©aì ¶’iLÑäÔd“ëÇnø®xÊÆÎ6?!?`Ókßï>*ø‡N‰ô=}¶—ð’fº!X°G"]¤8'ælq¶­ÿÁH¼/§Ø|Cøwâ«=2 k«Ø®í¯&Ž5Svë²@Òc«ª†’N çŸÿmxÛÂóøsÀºpð†º“Kiªh×òÅsul…Ö=ÈQ6£‘“Ž'šøÛÄ'ñЇÚüQâø’Þ)º•Ì×) 0…ÞÅUˆçŒWB‘‹Ž¬Ë†hÙ-rÛbdäô˜cÞ¿¢ÙÚæÛÇðO‡-­C¥ ºvwÝG¾9¼ b ƒÁû˜ ×ó¡lc[yÍ"ΡH€(Ú¬ps“ŸoÖ¿x¿`ÝmµØCMµ3î¸ÒõÛÛV̼D ‰ç•Æ=±Jri|aûv~ÏZGuíâ'‚ôv±Ð/ØÛjöv°µ³™0 >A&H>¬~rŠ9'‘,« b«“ŒŽFÞqž?*þœ>.|>Òþ&~Ïþ ð³wxºn« C=³m$rH§Ù‚ðGjþm<[á½SÃu¯j¶·ºv©¥ÝµµÊO–K)ûØ<…a†ä†sZS«¦¦+¡_³?í?¥øcö.ñY©ëWÚÆ¤ÜÝ訓Æ$šÔBª¶°³² bv'÷Fséóçìcà›þÝ^‡Z·¿ÕítøåÔ/.IÞâÁY&Ï CóûŸæ¾O@~ÞÞTFã 1‘Óùà×ê7ücÖMñ[âˆ^k”¹´Ò ´tYŽE–FvÜqŒ,`dqŠÎ«HHýd¹´žMhlü¸ç,NÒz{`œ×óã§üLuruU×/!»’f%å™.dŽGn¿yÕã_ÔY2ÚÒÜü¼6;ñ_ÍÏí#á¡áŸÛ¯â–‚‘„H¼E-ÄJ‹€tK…lV”þF•¦Ð÷OØ7Äh¿·Æ¦£Åo¯£ÝZHªI.È‚dÈèqå°õËz÷Ïø(—Â÷¸Óü1ñz ‘ökTMþСÎdrÑLp?.1ÎàsÆ+òïú֫ xÂßYÓo¯,µ+9°Ko;DûІÆå à•Á89ɯÜÚVÑ>-Á%<_â]úZÕt©A-¡ó Ü[’T>ެ¬¤v9ÍtYÜÂk}¿hvL£dÎqë‚k÷Wö9ñ¿¿àœ–-ék›‹ n´»–—º–b¹ú£Ž½Gã_…ËåC©„XÁ?sê0?Jý»ý³þXüZýn|U¡\Ϫj~3ê6éQ‹‘|6í–,Í·,y܃¿áSiÊ»†6çà7±ÇáX½ ̱K·ÊN‡ù> T~YtRÂ=œY ¿æ)­€á6¦ X|¤çôÖv·«iÞð~©®j·PXiv¯ss<òlHѳcÐc­8»°a6…£ÝG?¥és´êVBöÑüÊz‚Hî3Áë_ˆŸ¶¿ìù¡ü ñæâÉ-¯‡r3Ö½:2d«ŸîŽ ÉYŒ.¹ÊŒƒß§ÔWéüvûX_Ú#ÇúdVÓÜè·>†[Ö3ãì²G3ˆ‰LÆ@ò¡8à é_œŒ®¬ÆXâ_›qgØ}+ô·þ ³ /ljò!¿’ÿ|:F¥Ãû‡ncYA ²’$r«È,I®zUlõ-—q‡{@A —$“‘ëù÷¯Ûø'7ƒõöTñ‰®g"×_ÖKXõv bqÌÊFI#:WËŸ ÿ`/ˆs|XÓ.¾([éGƒã¹?k‚ßT/wp6¨¡F[®O@kö_LÓí´¨ ´´¶ŽÚÞ¤h@Àîx©¯Y1ÜÓmÀŸ™ZEN$÷Æ:uõªþ[†ÃÑq‚NqÓŸ®zU³,¾fÀ›ú {g¿µDS{„V(¤º~èü~µÄöc•lÄ[˜Ê¤3cüj7>cÜ­[ƒ‚ãçHc&5 2ǼŸ|÷¨æp—N¢=¡³—OåÇÒ”QW&Âñ#4ÓæÎÀõüªG›lÇ*Ä2žGj®…߇Õ³^ŸJ‘Q¾å˜äƒ‚:sÀ϶DÐÛ•LŒ(à„~sÅ=å`ÿ1wþ,˜”Ûu‘e•8$Ÿ•±–ëÜ{ÓÙ†ößò2›+¸}}Lcq©G‘£h×vãë·f9éQ2Æ¿9ËG‚àsëŸqO‘ŠÚ™#w!Ü~óúcÜ C H¤UÚ å~÷ÓVhmoãï…>ø™¡G§xË–Zݬ m¼ÔÃ+ô'w ƒ“Ò¾"ñ'üÃÁ:§¯µ=/ÅúÖ¤K/î4Ø­o³GÀØ®H%F3Î;×é˜åQœ $Œž˜ü½*3!YŠÈH΄àqžŸhª´J‰à_ÿfÿüð›ÚiGûsP’èÈuè‘eP@'EÇPrM}²·hBí!H9óŸsNRdXeOðœduçô§áVñ åG3ž:×=I9=Jبñ|›˜)Ù×=±ÐƳoô-VhÓXÒ´íPEþ¤][,Ás×V¼n7 "ßå0!²x?­#"bXÄìˆ<}3ZS|¨w¹•k¤éš]Ú ;[@T¨Àª€Ôm¶ØH1³¼\ÏŠŠb΢5 cVvœóÅ2FQÇ# ƒœžzcœvç4Ü´ ]ˆ€yÌ®K»wÏ›' ?KÇ$ØdB0¨ÛߟóÛŠX3HJ° 1‚¹ÍKÖó"ÊmíócŒc?¯J‡RÛâ‰bÂ9VX„ƒ;~|ãšl±#f\´htuþáU7 îL`6C)r2Ý€«KÃQžÞüúTdF-Ä¥™×n~^™ïÿꦖh†Hp%A,zuö튎tWFQ .v¯ О½i" ‡FVåvpòœƒÇõü©§¬¹É] ¨9ÀãüR†V‰K>rîñŒÿ\{Ò;ºòíPœ.9aÛ½)G¨å D¡%V‰¾ñΑێjeKªË»8 ôüjª« ;#Üà{ÿžÕ.\Ág<)'ôà®mF£d)\‚yã­Ui¤I‹*2©÷mêjÊÅn^rÍ Ÿ,qØ7Ýö¹<óQcf¹\œüÛx£IY[Ÿ;JSNy³EŸ1 üü ‘Î9¤ìÑ eUGfs(e% ä{ûŽ”£{2³‘Àànÿ>õ”ýJ3ÇqÇ­,„¬`F ‡r†ÈV uÅb÷5¸àÉö1Ôç9úï^˜?ΧGd©»!ry>•œá¼ØÔHU‚í ¹*Oãž*÷ž'LŸ4`c•Ë}8ãÖ’€„Ž<˹Õ¶Àqz½*dÇ!ÎÒYðpÀò?Æ¥y@¹Y$Ê•7 ½sž*”Òy±–9H‰Æ1×ÓëK–ÃZy®Õó¶n,¹ª_=¼é#…›@ÚYInãéJ© *†‹„ã9QÂ~3Þ¦•BÆŒ°÷¹<ŸÇ¥D›E^ãâ’R@}Œ%FX‚}¹¦Né+:†RÜIçæã8úb™´F ¡ÑÙ‰ClûsŸñ¤iIös½GÌH'¡=ÈïïB–€Ñ=ÊÁ-S墱21c×ñ=…DAñ’`nÁãŽ?:„ܰ¹S:G¹00Ù'éßüæ,/8Ú¥$7ûCƒŽÔF¯#¹Õ·ÂAá/‹–ž/Ò-„z^²å¦ÉùVUää|ÄNÞõÍþÄÿσhi<+3HÚ^µî÷`•sóc=Xqî@õçô·ö‹ð^>ýš5Û,y×¶Ñ}ªÊIC0Ç@:’8~ [ßjø‘i}iºÎþÊñ$@ª@GVÊŽøÉ㇯EJ5iXä·,é›íže¤L¬d@ŒÉÃÔúñïHò¸”žYJýÄ žýëÆ¾øæÏÇŸ³îƒâHFn-¦Ž6¬@‘}ŠxçµêpùmåÙ†B‘ÔR« ¶ÝxŽ0£=séïØý*˜ù‘!ÜûAÃdžNºÓÝ]¢òÄnØ!ØŽHÏ$Œ}*T•ö4cØ'Kº,§pÚÇ¡sži' <,±,…›r`pxäçÖ¡Á/3çÍhÁ·go=ÏÓ±õ§E;mÈQÛä>XÇ=±Ð}sëZ¹´L•ÏÂÛ›áXðoíw¨é¶B-3Q_´§—œ ÌI#ã'““Šüý–P¤¦õ]À“‚~¾Õý~Û #ñŸì±.©m o¨h‰æ³¢C`‡ýZþ~5 skªMo–_,”ea‚y×­FMÁ|ãi&b$`f‡QœØíš¨­$rýÖx^„ñПóšvm.­•¼æœª¯rÜ äà‚pAíõ®ÚZÜ$ å«HÌ7Œõ'ý*|½ÌÌ£§^õ3ºý¥£ä›pîûUg‹vÖêÊyÝÒ·uQ.:ÙxÕNIÎÐcéþ&œBìXˆ 8aÁozDÚÊÁÝÄ·ÊƆr±ÇúÜ(8ú{ÖRÌí`e*¥¶ÊT Œ¦@úÿõ©ß;R›.yî>¦«3Ä©g(B±^úzUŽ³Ù—‚`ƒŒñùþ´Ð¯¨Äa „Ç8a÷‰—j¶+^€ŽOô¨Q¤(Ï”bNòóøâ¦sçLY ¬ÊrUOËŽüJÅî]®JB(îåsÂnéïJ€™ˆ[ @Æ ÍFÊ‚m£|²oÎJðjRŠ;ËnXg‘íG5‹Š€11Œ'=8=³éÞ§0–s±‹£/,Ø$Í0‡xß *#c Ï®?úôåÛ¿‹»æ<‘ß>Ôù‘²Dˆ¨6³e½?úݪuf¿0’0Så@8‘Iê—Z†,HCcŒ‚[¸ÀKGHÆpIž{w©œ‘¬Y4#”¬m6 }9éÖ§f‘n"to/,>e9öíúÓ<”’C"tqŒ{zTÛÔ2<‘Ü2–;~@GäútýiJ^áºw$`ÒȬÐ+Sµ~fÏqŽžõjÜ(&(•a.¡0pÃO­0&׎6xâb3¼ãj‚IÁ'ùŸZÐ #g;%ÿeóÆ:ØÅgJvÔÎQÔàÙóiRyÜ~ñþ”îc•ǺBúÕeòâP¬N LúÔÌJî"#{°ê­y’%E ÷gkH¤çæçô1áüŒ ô럦*61ªÇ'ŸAÄÓâ8F(qàwÏÿ^¡2Ô/˜PÅÀ …‰æúSºÊ$Âão˜’Ý€9¢0¬Ä«pÌ`úÿ:²-À–‘#$÷Ö­)  t µWj’Äpª?:j…ÈP°  z`ýj‹{3+\|Ýr8¤Ú®Š$„cn1ôëøÕ[A¨†! ÄìvŒ“Ÿº=êâ˜Û–\ÇoΡe'?.1Ž:qøÔáÒ8ÌG™÷íÀõ'žÿʲämšÝ$VuX¤x€2øñO"a1ü™ŽóüêbnRÌ’goÝéQnY¥bÛ™”9<ñJP± Z—.šÖVÊB%#•#ƒúÕU êÁÞ1œsí@Á*01ƒR£gÍg`ˆƒ¡\ƒÿ×­)Æè¶Ê¬ÇÉýáˆÛ°¹ÂŒcÚ¥bãEQ 331 äcâŸ"F÷;YÔÆí cZ-òIÂcqÚWsŸ¯cTÙ“Õ‰±™Â¢yc‡>¨L‰C¹Šn;‡'‘Í?iº²D (229<ú©«ˆÎæ<‡œ*îÈ#µ&„Ñ2Çĸß! óznõßZqU’Üoeû@ ON:qÞ‘T(dŽVM¸Î‚Oõô» ,™EÜ‘¿.:zÒÔJ#÷3ÂÆUHýß­IøìÊç#•9àSâf’ÎÅ‚F(Ý€¼w¨¥VùY¼ÐJžxãW¶ÍlXV™­O™ˆÐŸá^ø«p,®íäÄr§îŽFzüUE&8Ö1€f½OcZ¦!“\I±ŽÅ+Ôu<óßlÖŽ6BÜ–ÊÅZþÒ!¼ª ’77rO`+Váí£¾Å®ò럙>PAã·_Ʋ­UŠbXX‚B¾ìn*qŒó[O ±ž"žfÆ1§,ç>ü{W,Û¸r¢æ—÷7aa™%ò¹úŸç]DZi°³:”Û®¤/“<`Çßò®…-äÐì$–=ðÛlY#»–3—=pÏ>¸ãóçWòëW‘ y"P6÷ÇfӟҪ׉ìÍK¿M=ëH¶VžZ·a ËÆ; g~è~À÷Zì1!sKˆ.R1{×ddÏ>¼æ¿ -´kS*-íÔ`p#¹?ÏéøWí—üî[y¿d¿Zéë2Åi¯Üô º6T9<Žÿ•tá[¶§>"Gßã{oŒ©”ņ2?ýt‚L"„ùÃ6ܲã?þ¾)»ãP{Ó…à‚9çúTWc2yr$HØa'Ž:zt¯FÐóî~UÿÁLtÿ2ÃáV¤ª…>Õ{cVäwÉùk»ë #Ž<2?˜°\ƒŒu9éÓ§Q_¬¿ðR»3/¿…“FU’Í»Ìõ²—GOþ½~JE´ðÍo7Í9N1ϧ§ÓšÚ*Û ]éÇáMàÕf_]4ži}Ù¾C伻tÿ=k¸y‚Ü©D„îTèOlgñý+Ã?gE®`ß…7!^Eo [Þ¦<»HÁçu5ƒ ÜÉ÷y\t?e)5#HDgŒ·É¹›–NÀïÓ¯ôª[ʬ±0W;Î y÷$‘š›Ìy fŒº)È' G¯éÁ¨dý¤ËPœª¾2}ÈíÓš%#Tì5¥1Ê©‡S´†bã#8ïþü4ý¿F›'íè.´¹¬/oööú€‚2H¤W—j8#ƒÈ¦¯ÛÝ[Q±Ó<5u¬j$Vv–ï=Á#„³× æ¿Ú+Æ^ñÇíÍâÿx>õ5j·0Íg¨*’ôxј.#+ÔöÇl¼=®cRW<}ËÛ4@…‰eF9;°zg·ô5û©ûëm©~ÀzU©å]?W¼‚_”¨˜8Î@ù±þE~8¶k&*Ó4¢feU“¾}ÿ—µ~Š~Ã_Â_aøW­Ä÷z/ˆïPXKPm¯][sJÄŒ©Xñ´óã¸Þ´t".Çìâ?“q¶'ŸøT ¼רz×ÂðPøƒÃ?°Ô¶ºÐÛÙëz´^¨ÒÄÌ͇fT`F dPO»¤_éš„'™mvÛç„ psÏQ_FþÈŸ 5?‰¶…m 3[i5ÂêÚ­Ìr”).6¤Òùk´ã*XƒÅE[Xq¹ý –s$‘~ïrŒøÿ…~dÁ@þ¶«à[_‹>Ò´»k­ ‰ïpcšâÜ#cÙ¼¶Ï=@'¨¯ÓPW/Á;ý+™ñW†4_øQðÞ½ck«ið´–WîŽx˜a”Ž{t÷渣/xØþ\¡2 È›b0d+Œgh$ŒŒýíÛ¦k÷ö ø«x3öE¸×õH¤´O_hZA*(sƱG)`H)"¨u kó'ã'À›ÿ~Ú·Ÿ ü,×Ú”ww–ãB{èÛ÷Ës-X¨ä+¬W$ÜGjýòøkàè|ðKÂ^·{«¨ô-$–gÞÇË\ŸâäqÒº*+Ä#¡×.Ù&]†œ8ýqëÒ¿:?n€ºß޼'§üDð¥¬Ú–‡k0Õ­mmÒo-Ë# 1Wb$†8ä`þŠûÕ† ¤ƒƒÆ3לÑuM¢à’sÇ<XÓÑ”õ?”ÆŽ?8¸ù“h%Æ@9ô½t–þ.ñ]—†%ÐmüA®Z裬Úr_Ë«œ¶èÃ;»ä|ÝëöWâßì#àoÅâ¿x&ýü;âíFW¸²·–Li©;`¶cA HÜWÌ7üâ=Þ«æk4ðv™0(ãšåäQÇ Ïb½‡L× «$ˆå> ðG‚|Gãÿiz…ô;íWWº—q´µ‹|‚ U^Sœa0f#·@Iþ>øMøkðÃ>Ò¢x­4½1 ƒÌÒð]‰lõlžO§¥q_~ø3ூ4Û}'K±—ÄãMH5Mu­‚OxØœ >QÀÀ¯|\=²£${¹“{{+ Õ¸Õ;ÌÄxu›_ž7‹Z2ͪG®^‹É'B˜\Hw‘Œüßǎ+‘òeò§R‘©fݼÇ‘íÅC?¿e߃þ)Üx·Å>¿Ÿ\’5‚â[+ùmÒULíÞŠpxr9öçTtÏØûöyÒõ‹y¡øy§\Ì„17“Ë8 ¸f Á#¹÷¢5º‘ã?ðOíJoÙ‡ÅUõ˜:]¦¸’XJ¸ÅáC"…„g=>o­p¿´ÿìA¨x«âñ·Â;=:ÖêýÉÖ´‡t¶ŒœÈæhð?Ö;7Î pÁÎE|àï xÃÒi>Ð4ÍI2´†ÞÊ0ˆXà u<ŸlWUÂ;ïÜ@€aÆqÛ'ô©s°ZÇó=©|ø¦øÏQð¥Ç‚¼^5;†‚X¡Òç—OTtR®§³)Ç^x¯ªgÏØËÄ/æÖücý©à½ÇP.-îôÂ’ßÆ¡]„E9‰$v5ûb>Óæªƒ1àevñŒ‘ŸÀ~Tà¡·0M뜻ƒ€O·ækIb)Q‡áo ø{ÁÓ<7á­2×HÐ-–ÞÒÕ0‘‚I8ä’súÖú ºG  ƒøúb™¥-Ö5 &ÏLãþT+H!t,O$ðü’G®kš-\¶‰·4vÿÝB€7ȼ:õö¡ ‹d[p7*œ/‘UÂÈIÜ’@ ôç½Xƒîv³¡WÛÔÖU]ÙqD ‹a¸p”’xç¯ãX>,ÐÇŠ~ëº Ë9MKMžÊpùĈW8çŽs[Í"²`Ë…$äåØŠ’=²@îB¸þ,vò8ç“ÇjªR³’?—ÿø/Äø‰}áYO£kÚk®í¤a¹ÈÞ¤}åa†ì‘޹Ć/² ÇŽCqdœ ²äÇ«úfñÃoxÿÃú®•âß iºµ¾¡f-.$¹·gŒ€aÔƒ†\AÁ¾w´ý…ÿgø­–áÝ^iÕ‰V›XüÀxÁöÀ»dŒÚ±ø“áïø»Å«[xcFÕ5›˜š) ;F” •‚®â:n<Hk÷/öEø)mðŸöu·Ô5}9¬ü{¯B“x€Ë6LD34vàr£Ë ƒŽ§9¯bøkð{á÷½2òøvÃD{Ñ¿–2Ì×.#ÞX’Hæ½&8ÄÂiF͹Hž™VU«¶¬$®\ò˜¨m‘ùa·g~y¥x— »j¶ì‚[=õ¨Áˆ¶Á*–ÁÉ>˜ü¿:Œ¼ms*³ƒ•??LzåˆÚ$#M®C>~}êx9ÿ=¿@ƒ ŽS9ý>´×*#¸ ÁÊ0=xýÆ¢V/Ìp!rcÜúÒi•–d•¥•“ÊÈ ôsÇ?çši *2IÂ=1úÓ…o•‘ÀN[ïçñ烘Å@Ž0KGÔ}(æeؘ9–óß?/' Èìje,¤®³eySÓ~´E#G3|Í&é:àpÏ>ø˜YwímË‘•àý=+DŸa+!m£g UÔ <üýjo7|C,J•†8ûúTD€QË)EÉ žG~½§>ÒD(©´#Ö²qoa7qêˆ5s*8\¯–tÇÔÖ¤VU–F@Ãû¸=03éP–ýÑ“ Èy%¹ãÓ­BÒÄ%aÜÃh<õÿ•_+*#ËHÁUR-ÑðÜ.?ÏzXD¢ì ƒ_ªƒõþ•Z)⑉"î8ó±8yÆ~´¾lkr‡ÏqŸ¼Ï$ZÎIš9!Í"±·&C$=€òG¯4ÄS\9¶$òCdÓŸ_oAR†ògÊhÊäúœžµy/Œþ7ü-øwâ¨ôxïCðþ¯$i(²¹›²1!YF9kwãi¨Qd)°d2˜ÉùIÉõÍY, `,†b§$„Ý‘íßõRÞH¯tõ¼¶tšÞDFáw|¤dÀóEXv 3¢•XÎ8Æ+¢“¹!hŒ%ÑLa€‚3íß­VwÛ/ü²œ‚9ÿõâì…—ýTX9ØsœðséÿÖ¦ÉZ2AußøP®Ù$ÒJ|Ò±0_›å>g9èHã5•Š–¹r{s_“_µ?Å‹ÿ n›Iôÿkëàà –©g§¤`tÜDÖÄ–§rÖ~ú‘ánÃľÒðãþ „üs§E®xcLñCÇ£à hÚ%ãA°]ÁI ¾9-ÔîÀÈõWb³†ó À°VÇæZ®Œ¨„¨­6ù£#è{Žy§0!åùÈ !J ¬NYƒ’‡–<ƒùžŸJcÌ«>ðʽÁÈoaXrö6ƒ òå!@ ¯Œ##µ>÷–B6ÚGB{OqŽ€÷¨Ð‘,‘:87c~”‚`x+´yyÀîþ½;ècKƒzÑÌL.§Ð{{É)QºEb«óm¬ 1I(*Zcàc¿óë\ò•žÃìi–ݤÁ'#kg út¨Ã–ºÁbQ¹sÉïÐúúêhB¬±òÇk¸†RÿçMi E„ ®GÝÏËÎs×ôúÓå³/]Àv'ëè?>½ªMíå¢>Ù 9 ̹P`? Ô©jW)ÉK»EŒœ¨äåL‰ÄŒe–-û:m;Uˆôõã½5¾[ò¢Y# •?^=ÿúôÑ1û3Æì?ê±ÔàžzýiûK”¾ËµO1Û‘ó0_•Fr?>•Uæ2G´~é›8+œ/®qMk—9WŒ.àœ{~4E¹1H4™ç#¯ÿ^¡MßQr–AUQnÌqËp2FqƒíÓ”Ävk§xà‰9õÆÞŸÔ⪩*<´Ï#åRÏ¢ÿZ™',³«1W'KîF8²?¥kËt4‰am«¸:…É–è¹Á<ý)KRòYY—#q8>£…8ÿ<ÔÃr7|ÿ1ÈÉøíÿÖª÷?ÚÀvqó(ÀÁ±#Ê¡«äçl¢7u*ªŸ½<ÔéPOs1µdA \‚0CgåêyÅRyËÈĪÆC>d'×sžÝj´Ì#‘²…sÁç'=†­sU‹hÑG@º–+‘$3ª ëî}3_„µG€?áýª5«[(c†ÆñÍÕ²£@lqÏ×?á_º2K©C(bÜg©Jøöåð<šÏÃ-3Åð[J÷k=¼Í‚2Ž2 9ä sÚ»réÚ霕âr°ÄyeðÞ±àKÃ#7Z)”|°¿¸=0@ävÙËëV×@̈ÀÿnN}=;µMYƒ†3¸1ùy'Ž¹ãž½i܇‚a”H uÈçð®jtµ¹Ôöe"#–€(ÁY6“´çòÇJ•ÊîP ÈùÞª88á½»ñÚŸ+G䘀É uÇ=¸äUi•£³” ÝaòÃu'?wûu«œh„ìÌŸé–Úï‚5-&âÑe³ºŠHÉÆUÁÈÏ9õú þi¾:ø"~Ð>!Ñäb±Cy ù>ù޵ý8Ãå@årÛŒ®@Èàçüûó_ðP¯†ÂÓÆ–~7³µ•† ¥.|µÈ.sßû¸9=³í]˜it9«.§å ghv ”ÏCü#Öš7¼º ©$mVoá׫FñMó+¨qè}ª,S!c üÀdŠïzÍ"d,Ê6Èr øöþ\ÓKaQT3>fûV „1 dƒÇ<úÕl8—!šE±Œ“×ùÔ$Ù<ãwщPÒàp1 3…%ÊlÀ8ÀÇ\p9¥)» åÚ3Ÿlõ¥ù¤o‘ϳ§Ó? {ÎHœ*ðÜg†Qƒ~Æ¢dÚêUþFå¿:Ž%m žX’9©v1 »úm!†ãT…=eŽ=ŒOlªÉÉÏ ¡|Õc%†1ógè(ra‡Œ ‰FðùÍ=¼Æ+µ‘³È# ~T¥¡ª% dlÌJâŒöÎ?­H#íZ"èûFîàuúôöÅBB#ÊHì@ýâ¿ Ï8§.ÁpFvÓ«Ž«;š¥rT>ѱH\§* 99íØ~>ôåGX$wPŠ~_›$ c+,N*K´1Á#Œÿ…Oi”Éö…Ëœàuÿõ…&-¡a—j†/$l£’A=0}õ¦¼A@ÂX“ÇÊ9z š‰aó.ź:‡0ŰI÷ÏNjUi]c}¬ªÿ1až¿çµ'&Ç©i¦q GTûw%‡¯·^ž˜§[¾o—ª…2 '޹àvÅG3"ùÕ¹…zAçãž~µf8·ÊóÈûØ¿qÏ47ÐèJÈG’9d ´ @ËÙ‘ƒÔqŸÆµ¬Œ’\Ãqf¢O*L1’:÷äžßJÈß7œ yKc%vã>§5·§Ü¦r³* v¡,À…'Ó=5ÊDµ<õR²y$iàHF_ËüûTZâ@ÛÈFFã€0)WqŽ7Œ¶[³ÀëJRQ3)æg¦:ô5ÃÐÕÂË ï 'P01Œg>ôõvóƒÊÄãž1Ó¾ DWîÙòã…Uü?úõ)ÚêŽA808ö¤•йϵÉM€p¤f•)·Ìîª8$ÿ:š8‹íÁÏñ–Æ}…DѬ¡âC¸‚aÜ÷ãô¦æPèü¦¼‘6Få{/#Ó5z&â?˜J²ÆÐBílœœ\þGgÌÁÑXå‰'57šòJYX„#¹œ}zSŒ´‹—É“;I\Œà•ävôÿ ¢‚Uâ9óúÔ…‚ÒogaµAÉ$`äÿ*WO(&«0ÜK. ÈÀ4Ôµ3½Ä‡Ê’æ@ò´kËyƒ’O¥)‰‰vR(>oïý=ª6]ª.K’ à`“ô§ÀÛcmðùŒÉ¸czÒ³©+²Ò°èTL–vÆ3×üiS±ƒìc°ÀúséA™CˆÕyë½þ4Ä÷§dJÍÇÐ~f·§¢,šÚÅV!9=˜`g ã?Zf#,wž å¦)톎I9è@ÈäN*ªUmûHûücµDž¤ØHä);tdôÇ¡ô©Kü¡¢Œ‘€38=éF#Pfc™ÝCÐgý¥;çîãvHÁüè°ìÿ‚ˆÃß²/†®¬Kg⨠cܪ­±œàŽpp+ñr&ö6öŸh±U‘ËwÇOç_µðP¸~Àïw9 ñø“Mt+Ë+ö ûÿzüVµ! sŸ9àF‹ÙêI'¦kÐ¥c9§súý‘o’óþ Ûð½‹5ËC§ÉjìÌNÖŽgSëéÞ¾Žx×'ÈŸ$Î ýqÇ+ã/Ø[Rì ¥Ë»Yë±·˜¸#—Àǰ=€Ïõo1™$V˶Q¶å‡¿ÓêÇQ½QB¾äg‘ÇLéDkæÌ²²J’Ãüñ\-³Wª¹óÏí1àüLý|Màÿ4‡\¿òŒ­Ù·,r£º3Ñ•X`ðIÁà×óÝ®xW^м{¨ø{VÑ®lõ+ ÞÞâ)cÞѸà‚9 ‘‚qÈÎs_Ô›nWmè ù\äoNœÖ÷‡ô›Éæ»:V˜·oË]dgoÄAÖ´¥&™„‘üÏiþñ%Ýš4 fê)äxô©YBÛ•yy«ì¯Ù[öeñ—‰h7ÄšÞ®x+FðÕíµòÜÞØ2›ç[É‹$`€ –#aŒóØhô{H ¶XX ·ÞvBO\zgÓÍoYy¬'+‡îÆåÀû¼*ìsVÔ˜¤[tvLH"· .@îÀý;Sd¶ÁörcRÌ89Èõý)!7{‚nFÉ 8ÁÏ_¯ÐÔÏ:üÛ¢ îúÿë®u-MÐøã·ì;á¿ø x“áýÆ“àÝn÷Q–ë[ó¡–Xï Œüª CÂà`’sÞÙûöÑ>|Bÿ„â-߇¼w%ºÓ,ŸM&&WIfÜÇs¡U c¯=@¯¿Ý®Îè÷DØÞÌN*Å»Fé°(Tår¸ã8ÑÌùD‘óGÇ/ÙGÀŸáN+RZ$„îŠ%ä.ò<8ëUÚ]ÎÛÙù¥29L”R€a|¾™ÿëTÀaC¨ï{}9§…*EÛ`‚ýNsÆ?+6ŠLcxÒØe dû{w¨^Q;Täp™<ŽàïD¥Öa.6JŽŽO×Ú…DÚw0BX“žÜ_ÿ_5<Éd¨Ó4ÛCûùèxÇ”é¤O‘L¤Ãî‘·Ÿ_­VY71w‘Ÿ”¯F#Œc9ü¡‹–°£¹|½©“ì;zÔ½KL&qäž`߆qŒçžßáM“koeHÎqŒsÀçÿÖ*´òC {‰V p™i7ì ½ŽsÇ×ð¯þ(~Ûÿ þëWºVšÚ—޵˜$h¤ƒJUBèÁX4Î@cÔ¹Î*£Ùœ¦}¤³|¨¬Küÿ>9Ïn2h1Žòù¹€è3ëé_˜¶ÿðR-oXÅ'Ãf=0ͶâFÔ¢’H”¸¬h1Ó<E}=ð“ö«øcñƒÅV¾ÑîuK?Ü[Mu—snC,Q2†;Ô”' ¬p}A­=›¹×>œŸ}Ì1•uŽD?&ñÏþ•ÒÈ%aÁÚ6ðztÏ´Õ™¨J§~ô7@=ÇNj)äšÞÒâqndXÑŠyk’ÅT£?ÄqÅ=€ŠC¸QËäçwµ.òÖ©˜üÌ…|®0sþ ÎQw~lj?ðR ÚO*Û|6ñ=¹ÈXþ«m f{åRßw×*k‹ø(·‹õ(¥O ü*Ò¥(ÄÁ¿Sšá‚ÆôHÇÎF0;ûšýƒá/Âý?Ä7šµ§|+k©]Éæ\NštaÚFmē޹úœ×[†ü?ek¶ÓIÒí`ìmì£@ÇÉ rqßÚ¶ŒŒÙù‡ð§öéñï‹ÿk_xSÆZ‡tO ê×ßÙ·PÁk ž ¥\BÆGo•K…R6äï1ÏÜàøÁuû>ÊŸ¯ ŸŒ“R·b…âͶÉYW2+(+á8ÆFkò«öÖð€ø}ûÉâ" ‡\¶¶Ö¬ÎÐ<«ØN×e^œI bÙ5ûAàOZøÇà·…¼QÖ³ÙëZU½èhÛ*æH•Ž×#ð¬åk\Jçä7Ä Û³Høw©x·Æž'ñE·‡ôëcq¨ -^"¥¶Ä unx£5å?üñ‹öŠñoˆ´Í/âv¹ÙXGsv5oÞ‘*+DWÁÃrxãðýÔñ?†´ÿü8×ü9} \XêÖRÙ̘ÆRD*@ÏëñOöNñÇÃ/ø(Ž—áDÏiö‰®¼3æcPÄGÈ<âH†3Œù„ú jJÆ‘î~˜þμgð“àWˆ|%ãÿÂWsªÞ´öÍ2"éÈñ,lŠÎÌÎÛ·6â@ù/áo‹¾~Ô>,/¤ñ»¥ý¯J’Û[»šX.£ŽbŠòù³ˆÑÆßïgœ×ïø,°Fv¤dœdzçÓ©÷â¿ÿn/7ƒn[rÊFŽ?XÇy |–YÕ|‰qà ‘ÓÏ99­!i0½Ñ÷—ÃÛá_ŽuDÓî9VB„Ê9æ*VU'»±ŽõÒxö"øeñ'ö_ð?‹<âxkYÕ´¨..fþÕ ‘”y ÆpUƒn9ëâ߉_³?Æo‡šÖ¥o}á=cWÒ-nfû­¦Ä×ò[ƒ“)’J€X`÷8Íhá&™úíûøúO~Á¾–k”¸Õtdm#Pb>rÐðŒÀ7FP€yÁêz×Ô(¾ÕUŒáFïƒ_‘ÿðN¿>Ÿñ+Ç>¼uÚŬzµƒ,$–!•`L{ö“_­å%ùFc$Î PGA\u£sH2Q&æ,\2Œ†ägííHYÄŸ,έ‚Û6žM7‰rͲ&uŽFì{útT1K0të†É$õíY$Ñ«Øü÷ÿ‚øê¿|9ñÆÕ æ~-ï[gÍöiqéÜH«ŽÜšëÿaˆ^*ý#ðõÓï¿ð¶¥&žQ£ DLÖëEGÛž™R:ƒ_J|_ð}·Ä/ÙßÇ> ¹6£¤MÃ")vät`áN=ü[ýž¾:Þ~Ï¿üGyy¡_kö:¯Øî¬!b+ãÀÆd®s]“±Î÷?{c–R­±Váä<¨Æx›uâ=+Âúnñ/5i¥IøNÈð øŽp_{~ÍŸ|UðSÂÞâ/¿Š~Ýr·6ñ$,«lÁ±ÜÄ“»óü誴¸é¶}B¬!›å$‘–LS £òí<•ÏçÐýj13 RÛƒÇpéŠ~UUÕ@ûÝ ä{÷ÿ š€/Ì…3—œ¡?…XIAºYл ±eÁ=rqëŸåTB²ÊIƒ8QÊàìxüéñÉÄÁBÆ@À p}ϯBhäb“Dóe`Vófæë“À©Û 4L÷œœ¹ôñ¬ö•c‘÷T ªŒ·ãÇ8¦›°Qñq´aNÐ žµ¤i´Cž¥éþwÿTÈ0`^Oøa>B`Ë峃À<öÏ·Z‚9ÉŠ)Báÿ„‘œã¡ú:tóÆ-Ñä!º7M‡Ü}úõ3ÕrEˆ¶à²n~RWïà~´­2£È’+QÈôíüª¥ý£`9ˆ(%ˆÀúb Wó!;ɃBO^Ù<Öj™dΦ›æy%LE‡ïëÏëOˆçÊc»‚ÈãùTe¡F1Ä܆gúúŠ’W2Æ6¡1G§=0x¨µ˜ïq÷Ì·˜É#’ð3ÍBd‘-s3qƒÎqÀãò¦ Ò ç8Ê«ž@ÀÀÍ7•É·É•râxþ´¤ô&Ú’;à¾óÒ6‘‘ŸÃüŠdÓBŠ$~p¹ÉÁÇÛ¥6@‚ɤrí·vîÝ9úõ¤IckLÓ-Á‘›  `ñëYÅjj†2˜ˆ¸2¶ ¤±žƒ¦:Ôrüì’E†SAM‡§çùÓØ€±>ÅS À(ÙROóÆ*™Ùµ¤‘))' yý?¯­Lâ4ÝŰ Ÿwžøêhy$YÕdEx×Ià\ÿž*|®òyNPmîzœþ÷ôªrlžR¬Ò”¸Q¼­ç99ëÓ°ÇùæªnEù¾ZÈ[c F9çüžµ^iåÅQ!@À᳃Æ1ϦjÂ;eu@ÙÁ8Î=‡åY¸¶k{dÛ Ë ûˆq“ý+†ø›á+?ü×t9bw–æÍÒ Ç¤ nVÏLŒc¹é]lÏ")H¤1ò0ñãç8ôüqL-ü¹$,ªI䜆ŸËô­('Q^'ó‡âKyô/ÞÚÏ-Å­ÁIzçpb íÜWî§ìûã¨üyû/xQ;ßEj]np\H¹í‚q»àü¸ý¯<þý§õ‹»k[t³Õ#ûTi#ôÉãæÉür=ëÛ?`Oˆe5{ÁwIæ(»µVÂîå‘€þðÊú`W§Zš”npS“R±ú¾&ôuÆC>Ö†©Î>*R²Þ ù²Ê™í×Û­B ”¦f]¿+lÇ™žF};óDáãEtD@NÆRã‘ëÀúö¯6NÇz³D’6e2Ê1º<ÃHü©ÂFseˆ o.͹íøÕs:´Ĥ€[d Æ1õuðѤPB0C1 »€;ç©÷5É9»–âGæ Îϲ5••íëÇá_=þÓÿÓÇ¿²Wˆ­ã³\ÙÂ×6¢Ë|™ÈõÁ×Ðòm–áž&vEPX0Ã0zóý*ÒG6“uer<Øåˆ ŒòJ°=±ß'±­hU´•ÌëAØþPõ»9íüG$S 2+2¹ s€>•ÅÌÀLJP@àéÏ¿½}+ûNxþoÚwÄÚ\PùKrdSÜŒ`túþWÌèN¸¿=¿õíF\Èó^âÆ|¸Ý ñ÷›§ôßùf7…VߌŽüv¦¸;v‡PXpAÁÇ¡¦°ómŠlL`¾NO¿\VñZI .Þ+€«ÁíI•UŒ@ ÀÞ¢;›ia"c‚F1øÔÄæ7BØ Ô†<ä~´¥Lšw mÏïO#ϵN3¿j®W# Žž™â¢Fýö$ŒŒ7Üž:çëSmß+)'ålŒõãWcHH\FÁ?:ôc¸©Ç°ý*HÕvðBG·q1©^éòðpUQ†\“Æ:O­:Vy–e>_ÙÎ?å™ ôþ\Ñ$¬['@³Å"fQ€ü|¿çúÔñoå^­ócë‘ÐTaU &4b ãDZÿëU¸"ž1™÷GàzwÅdÒFÔã¨èöDîà6dqœ^:UvB$fS¼y^wþqN’TkW·Êì0R¬rz çééR3Ehã’Fb'Ó¹s×ñ©Š»6›)—YpãÍŒn(¯ÈíÎG×ëWcY–UuÜêÈ–!×¾=±ž´žVÆh¼—’-Å£p™+»¨úw«.¢Ì‘0R}íùWSÛDs¹XâÜ“sÆØÝÀÆBŠ™ Û‹a”‚U‰ÎúÕ˜yi·h@NÁŸ˜zçŠD$D®g©õþuæF&Œ{¹‘z(cÁ8ã§jWr'åeN>^ýé mîøÇooÃúÒ²# ™ gÁ›¦z€¥)“qûÁB¡€B0<äóšc·Éá¹cÎÌc±éš®òåUŸqs÷Žî>•:·Í’»Ã.7gïVsf™d!cç9`Í‘Š{>l˜Œ.HÇË‘î=óM’RЬ‚8#qãôÉÿ=¨bD'keŠä(cÉõǵUì…ºÙiäpO*+@÷&1T!NfnªBñõϧ·½!!`³ì6ã==òjMÑä ïsÃ2Ž1ê¥Bwd­ y›Y™†B‘Á摯̛NïŸñ§üŠvÊ‘×ã?ŸáG–—±J®Ð¤ëùÖ‹SD8.\3íUQžp=yïNùLÄLX“È<íÛžin+Â’m1qòªŽ¹î­' Ò`€‘ÇéÒ¶z"ÉU¼¨@y3&1•ÝïUй!ÉÁÀã’*oÝ-¢a›Ì9<¶1L#k1BAêOÞö®fÝÅqþg—$Biù¶ñíÇ­=Љ‘÷nãi9ÇáÚ¡—a‘¾\–{c”¿ r‚‘|¥NG.íh™7d2pKG‚8É {ã¥X ïòä)·î0åU­ÀWd;Ü» ¸{”ßß*:1 (a€@éW7²ÏµKapǘ»V)Ù”cB ~Xß6W¿§ÓÞ§…R+—cÃ/Þù¸Š†è0+â-Ãä-ÔçñéÅ8È‘«9@_á3Œžyü3Zó](°ÌEÎXîY2p3׃ïMR|ºü¤nGœ ¨‚GW’ßrFÄlB2Hç¨î:Ôc帞M¬¸Æ×1ô¬¥+ZtÝ’HB†r2æ\}:~4à ™f;·‘Æî§à:Sg'/†*ã;Y²3ßøWÌŸ¿jÏ…_ີÔõFñŠ ,:.•ûùŠgl#'cëÇ­6䉿±ôœ’3áUU 9àä‘ϯZš Ȇ=Ì2ìîç§:×ãî¥ÿ#ñŠßJšoÃ_ XG¿l2ÞjÒ»¸ J ɯ$€+¦ðGü~íˈ<}à¨ÉîJGu¡\Öè¨2¥—rØÉÈzs£§rGsõu‹‹‚Wv*z`rô¦‚ÈÀ)E¹ónç=3éü«Íþ|Iо*|Ò|wáó=®—}â ­¢hZ71²º‚@;”ð{}k²U°¸ÔÞ5 YgÇÎUfLz€{q“Ú³Tš4U WošWó!o3 èÿô ’„Bc,9ds‚ÙGù5æž,ø¥ðëÀ:ÝŸó <ú÷¬mãßÁÍwWšÏIøáî¢dM±ê7³6Å'–ÀãÔzÑ*mƒ‘ì"WcÉbôúf£,»„eXï ½BŒpx8&ªÛÞCs.m®‘[ !”2¯¨È'ü:ño‰ÿ´W¿„©-¯‹ðY[ÊQ˜SóïYªM‚¨{ªM½¤gAÎ9È?‘4ÀÉ(%FWЊüŸÖ?ࣞ*–ötðç½' Ä"ãT–FrN0R8ñžÙÝÖ¯è¿ðPOé÷qÉñ áŸÙìn¸±ómÝTãv<äöÜ0‡OzÝRw¨~§G½¥! 휴¾trÝ£¦ì‡*;†8=;ç½xÃ/ÚÀ|csáMZßOñÜsЯ¥A{ÂP;F¤ätqÉ"¿&4Ú×ãß„~6_j:ÏŒ5E¦Ý]X6“«ª¥£”‘£ÜË©2nï`‘œTÊ“¨™ûÎÅV-ó´[@:)Ï®}¿•d\x‡ÃÚd“½î¹¥XF€s%ê" ÆrrFGSÿê¯È{O~Õßµw—â«ýNëBð¶É›L2ÊöxiT‰#ùßxwÝòƒƒÎO#ñ³ö?øðßà[øòÿ_]è%½Ý­…¬ó¼»mGÜîŽÀUSžÇ%¬…{³öÓIÖ4­sE†‹¨išÅ˜¯ÚmgYP°?2†\ò;óZ9Ú\…ùH!èOP}2=kóçþ í&±ìçã- QÒ¯ì4ëMtM¦ÍuhÐÆÂHÀ‘QNá'Ûžs_  ylE´ Œ?ÏJãùÐâ¾$|@Ð~|)ÕüuâE½mK…wµ_2L³„õa\ÁOÞ øñ¡k×Þ²Õ¬ÓF½[K„¼Œ#$~b¸Ÿ”䌞¤Ó»ÿøÃÿþ k¾ ñL3Ë¢jyQDí€nS•‘H!‚5Â|$øðóàŒúÁðdz¬ª…Ó^_´û‚TÜ77#žƒ8VÑNÀÞ‡‡þݾ>Ô|ûO¡ØiÞÛøºY´;«™ed6jÖòH@se8Šù öSý•¼/ño°üEñ~µöBkY4KUd“Ήԯ™.ãò2ÛêqÅ}½ûoøqüIÿôñUÊK4wºÐjÊéb<©pÜp<²ÀžÂ¾Zýƒ>,xS¾ñÿƒ|QâA7ºÍ­ö’nîÖ»’Hüƒ {ÌàÆ§ï{äõÁ6}Ϭ~Οµ­t‹ÿ†þ[1(yBÚDlm8tÃFF{ä×å¯íAðvÙ§ã/ƒ¬ý˜¾#Íñöð?‰5­JKírÖÙí5›©T÷3$ŽÇ=H Ié’kóö²øíâŠ?´f£à}&â=?º^¢úe¼:f¬ïk¬‚ñùsÏÑK+eF Q“œû ö#ð?‹-?aïi>(†{MĵƄX¡g·žÙQØ`œ!`Xw<ñ_)Û~Àg»’Ûí¾µ±±‰ µ»ûc7Ú‚8Qòl0Sœtô5 I3eª0~0üðß‚bï‡úÇö‡†cøe¨5Ÿ‰­´ýQna.ö‰¶ðsÔRv‚zàW×_°oÆoÃû8iß |Aâ«_Ç®]¦¥O8\ÂäÜ Œ“#¯ÊOJù«Å_°?Ä ü+ñ7‰¤ñ‡µK+Mžý4ûGó§òÔ6Å$’I€út¯<ý¼¢øóöåðÅ•î«}¥ :Ö¬R.ç¶hÙbÉ!VbqÉ F@&µ«$Ö‚‚ÔýõR$¶>V#QÑóœ×ñ¥Œ¶Å•˜årG$úé#(Tìžb€K gêGò¨6£ÏÌÉ»Pàdþ{×3GMô.È®dV$3½Øã=3Q±fŒƒ€Œ€U>ùÍ|#ûfhµ¼ «ü%¼ñœ‘Û4öú¥†…pQ‰;d†Y0$ Œ€Õ¹ã§Ð³ññÉý“¼kñ*ÎúÏÆ¶ö†ÞðßI\KµÙRiJºcŽç±ÈÚd#ÙÖæÎk§…§·–TÇ™Ê zÊç±5VçZÓ¬m jZ­„!Žé.o#<´FéøWçOíû*|Qñ¿íO¬xëáþ³g¦iݵ¼—ùÖ&±˜ÜDžY-°èUP€zúמEÿûøƒ­Z[üI°I€Ý&ø$¼A¸ôäd€sÍDV£’,þß¾7øsâwð†áïXê¾4ÑîšKˆ­Sχìw7&uÊnEÉ’yä ×Òÿ°oˆo5oØRËK¾¶CÕ'ÓíàdI!b&@„ŒO0.WŒŒv® áïüëá΄—2xëWÔ|c9Eò ÚÊøù›÷dIè ãó_søcBÓ<#à]+Þ´†ÇE°³K[H“²$Ty'r~½è–ˆÎljüVý¨þüñuφøY÷Ÿ1’X‰ã éíÓ98É5)Ü«ŸÏÿ"½½Ž$оGsxÌË»×^Q€,qä’8ÉÉÆ uÿµ®yñ›ö"øoñoÃ:©q}n‘ÝÜ@mXO¥Ük¼4{wü’%q‘‚kî=áÇ€<>!:‚<1£”?›k§Ä…p0¸;sœz+¯Ž¡·ò#H’\¬h˜éøu§4ÇcãÿØcPñ)ýïtèúþŸ{¢k“Åiý£hð<±M‹€P8¨22çÚ¾¾žÖÞïN¹‚áEÄ#$±8da‚cÁ«Ë3l¢E³,Ã’;àÝj¹|Å$\¨)– cúö¢u*Èü»øYû$|Xøaû}i3±»Ð›Àºv±4Ëqöæóæ²e•Do^X+ªõÆWwlWº~Ó?´‡~ xûÃz/†|¦ø‡NÕ´é'Kë£)ò¦I6´Xå#i–šû(-°$.æ‹Nµ³DÈȾsÛ-ÏÐýumLR¤/L¢ªÈ݇æ1WA€ýÂe‹æ$ö?OzÒRH¨ÊçåW߇¶t´7…©Ó<á-"ïváÍLfrÒ4‰îsÕ@ïü«~;x„±¬h"G$(ŸaÚ¿<µŸø(Ø#fмãc`¿’K{däÝÉïúT6ðQ/ ™õø¹urÎÂÚÚHdˆÆ2yŒËœ‘ÈÆGNœÖ5lI£ôx˺b{m |£ÔãÒ‘Qã²UmÁÔÝ´ÉäWžxâw‚þ"èæÿš冸¤¹¶µ˜4¶žjnTºØÎAô®òF_?Ëb©8`ã¸÷úö¬­(š(¦=‘V` àõÜc~½D@[qû¶ÇD`ä:“PÞ0"&Y6õ`€§s^C®üzø?á û«O|EðΓ{ h¦´{íó«)Á]Š Èéëí[+ÉɾÎc‘š?0\’FOÿ_½C5Ìê&º–+e÷’É!UAêIàzÇÐ|A¥x›ÁZ~¹¢\&£¤_ۥŴ¨ø# «sÏN½Åfø×ÃVž<ø=âÞ9¶²Õ¬%´yGÌcÞ¥wsÝzÖ…˜ï¡â>(ý¯¾xwP¿²»ñ¢]ÜC;[ËŸh÷2ÅF0‡µy¾§ÿø5oª4z~ŸãZ%ñi«ãŽ@‘—Ž;ã¥qÚ7ì7ð¯CÒÖOˆ^*Ôu;òÅ£‘/…„=xÚ:žƒ<ÖÃ| ýм7`é«\øž%ç¾Ö„’Hq¥·ŸRBú×|#sžr'Óà _ /të—Ô4Ÿé.H™Ýqþ°•;W·Êy¯ªt_ˆú>/ˆ¼©Øki_l·¶(• ¡1¬¨T’ ãœ×á¿ÆÍ_àµßÄèm~è7ÚM”1fêòîíü©Î1džïÝÎzw¯wý‚4GûLßêšmo I¦K³<¬²– Ïï²°Æ;n™ª©IÛC8ORŸˆ¿no§Ä÷±ÛÛøSAû4Ì’C ‘“aSµÀ.ýCÔpsí\ÏícûFø†dK_ßE$äíNÒ#àò …lœ‚89äŠýšáGÃøJ'Õá ðÌ—óN.oìèüà ßÓ½Vñ]ÿ>|4ÕÐÎð UϦN‚­Ë(•Î6àãï“×§óæ¢v P*bDäûÙôç×…Jedr R@Ú23ŽóôüëÇ”£ÌwE´ˆHkù˜•G, g¿N™¢ÊHQœ¨äóK.׳+‘†?7P3Çoñ¨‰P¡X€~á8<hç/VYGŠM¬ÌÙ`274æ[‡Q¢B£sîeéPî# ¸ã+÷¹õÏÒ¢ËK %˯Mƒ<ù÷«žrée1‡.Ê" •8àب䙚ãp`øÚÿ7¯9ô‘It Wù¾Fn ö㑪rJZÙþV9ã* nÉ'Ó¥a&Û)"è`1e*FW©ËŽÝ»f›$ˆí °‘@G°ôýz¨¤´¡ˆ‹ha•\3Øúw©$›æÛ“$XÉAôϧáéZFEØr„Ožl‰ç<ãÿÕÖæ#Æ"“çf\y'ùTm*‰^ZÆ®7&F>¿Ž{R³…Fˆ¬€–'<í ùûÖm½‰¾¤‹!…FR‹Ñ˜ðŒŽÝª`’ã±nê„| óøñU<´Kó° Q™³ÜU¢a†edS’y 8çÖ®$Ⱥ  C© B‘ž„Nƒò÷¢{•’GŒ¨rêNsÜt'üô¨¦¹_™ÌmòüÍ»˜dŒ‘žõ¬×»/òÙÍÁÛS“ÿŽ÷çÚ‰ÚÉjI!é3¨RÙ+€A=½GÔ÷¬ár*#••ÆäUޱªÒ]JcŒ†„¹ À?/ÏOþ½F‘“n$\– ¼: ÷V=™vEÆ”Bоý¨rc!°¤`’=Pªi /Ý uü{ÔN9`3+#6á»oåÇLjs*ɱ'Žà™ÆFqéÚ²çåcÜ’bVUýÔ>wŸpN:tÅI› Á[B0ʾ2; ôüÅG J[Ê3óHÜžÏò¢D6»Ä›U”œGžáëùWdìÅ%t|)ûoø&MWàî›â‹xC_é2„•Ï–²¼xí·§NþÕùÏðKÅÏàÚ‹Ãéw‚ÝuŠó+¹J8(Iøw2“è£=«÷⇆âñgÁ?èo"3ÜÙŸ)É%•”£¯\ðOlñ_ÏÆ¹¦Üè¾2šÂhB<3± FJîVì=2ùæ½'*gãiÒ=„ëu¦ÁwFÛãÌ~Q8Àä/>½jÑÅ dºq,Œ >àA€sþs_=þÎ>;Ç_²ÿ†5¶º”^­°†Us‚’!Ú܆Èéü\ú׿*[4ŒŒÛN99 õÏ ‚?•y“™Ó ]Å*lˉf‹Ÿ-Ì{Œöçÿ×J’I,ChŸh>Yný¾‡õª´«¨;qƒ°† ¾¾¿—Ò­HÛªÆYŽH @o”c±¬œS5‹±aŒ‚6u1ªJ0P¥ŽxãóBê['1áÂóôÍUi™gW%äóEÊ€£=Iô#ÿy\—ŠHÁ\‚¥ãÆ:àûäç’åf²Šgåwü?áüiáÿÚG;y¡ ¹e2 ü:“Óé_NÑnŒF¾\ª§€0 =H¯é_ö“ø|ž;ý•¼I¦$"[«[¶ZymÕÔöçò+ù»Ö¬ž×Ä76Ó«¢Äì¸r:† ŒœôéÇjöð“¼O²åfEÁeûøÇ=?B@ˆ*ŒË€ŸÆœdÝr¹Á*Tž8þtÖ¡\”XÈà0ÿ•ßÌ`?l„X†øž)…dóÎÿ›Ç+Ž;SPÆ9^¾‡‡½4oá†Áó÷Ï·4]36Ë»ûAÚë#²gæ#ƒŽœvýi¢LEÔ!'iÎyïÏ4Ö ³Pc#œc½KI0…I@sÉÈïÐÒr* \XJ-£ m|õ‰©ŠïYX0U-ýì6qžqïPB” Œ€}ÿ[tS6m”ÃkõéÐqDfjцË1™,Œ÷àþu ÇË#ž§'sIº6ºwÜ0œ“íRC&àhÇ'vG_çÅe9êmJ,°!? »ðïëÍH ;¨¨ Ãõö¦2†xÀf*«Æ8ÇùÍYµU$F k.x¯èkµ4:£–BK&ñœ®döÏ·ÒUW2ʑ˷ïÉÜtéƒÍ$j¯;_…bÞZîÈœvÇ^Õc ³Éps× :æU®ìt(Yç1C26:!ù L( >¼uâ¡,ñ¼sFˆ„½æp:ðp "ƒ/(@íÀ“iõïÇcŠ‘EÌxÃS¼Ú †ÎGQÒº"­fsÔ/ÛÇ3Ê’y",ÁÉëžÞǯ”Æ”n(]ü½ä€@GLc¦yõü*ͤ»B+,‘.D@3×Ó¿|â§û,wF‘–,û¢È#×#¦kU;ãtyÚíYvÄØÂÇ ô¥vXáß$‡¨~¹?ΑÁI~VF‘NàW'ëÜÔlû¥‡Rwd5ps$Ù#öÁ¼¢ÁFT äã“ßð¡‚y CªÉœù{³ùSU¿wû yÁ§‚<æ'‚Ú[“ŠoRYA,h rÀnŒúþqS¸P­ÈÈ8$ûÓË»Ì Dda²½*E}È7Jä·÷~µ“‹Šv„RW#, 99çÛŠUŒ4.ÑÈ2c¨ÇZWeÉmïʪvñž¾‡ëéHR/µ¾EùIVÚ*†Š^`+“¼r;Rº·kªK÷AÇðÍD¬…B’å߃@þU7îŒêXª±M “Ÿj#6/c‹%B±äØÏ?Êž¾~ß67õÇ9üi¬¬êAÞNß™•†ª@ƦñååUÏé‘T“@˜a„\FQ”‚¡¿Zj¡.Z1ƒœ'''ßÒ˜U2¡Y.7ž½iî±ì>T…Û# r1ŽÕªw.ú e£w/P¹=y53£ ‘´¦Lu ôíÎ)-g†;È^â™c™BH ™þGCS]Ëi$òKg¶–„ $’ne'˜÷çðœ‘)ܯµZÁÐɹl`R°ÅI]Ø=ÿU9I‹rÊCas’søf‘ãwˆcГߊKRšD¨£‚2¸;q‘S >fF „à`õÿ §–‘Î:±ÁävÅYx¶À›ó·p9=ý+bIUc#b^ p7?­!p°ªo, 8$¦zžÞ/߇\3‘ón_O¥ÆŒ% «,†A#’}ª/f jWRìDCs!Š…Ã`þƒšØòçT2¬„¸''OçX৘ÏäP‚vHéWaÔg‰$‚CŠB¶F=~‡‘[¨¦[zœj4϶ÙIpŸº’Ê:Ö­ZÏwis$v·±¤NÄI"‘’çi=ùõ®JÊíb}Ñ·Ù\¾A'®Gƺ8|£l¥'ŽI¥–,•BTväp1Ó¡¦àŒgoi˜ (Ž{©‘I"B \ð8ïÓô­µHÆ™qmÜKiáÉá[ƒ´àeyÉÏÒ¹Ý+R¸³³…5k+†y ³‘‚zñŽ=Ï­hJÁ£—eÍ«ÄûXl“†ê ÷ ñßФ“¹p‘§g©Þä†Ý¾Í"ªygi>ccÐuüÆkôcö½žoÚÄÐ\µËLþ$ÆòÕ„À±Æ;’0Iþ+ó–9#Lx#×-!w”Œ€¥W¶8äv¯¾ÿ`{¨íj«ë¯Rå¦ðäë6e އ\zc¹®ì=4™ž'XŸ¯ ‘Él‹œ¼j1žxÆ})³ ›Æ5ÃGqŽÆ’'òç~[i%¦=@·ëR¡‰ç"l€¬¸ Èç#ù×TásÏ<öÓÆ­û|a° òÍá{Ï3?0\DNÐ8ÎHd}kùÜòÕÇö†Áö­ÛBÆÙ »ëéÏÿZ¿¥¿‹úö—ìÉñÆwR“øvò1„ÉQä±Î;ö¯æ‚Ô³ÚX;"l§rÈr€R£þªÖ…6‘”õ?S¿àœ7ñ g⽄D²Ïoe8 þbã¦A Çê ~¬F²ÆHÂ’§©Cë_Ž_ðNYšÓö„ñΟ3¥Ó^ørÙÇ$’ÐÌäñØ~ôã׊ý‡bR7€—' §¶y#ß×ëSˆWw.”lÈo5›ríÛ¸/Þ>Ÿ_Óò¥•žpF ’@ãžzõ¨£•|Ù6ÈNvçx#®yþµ<Ž s'ðíÈ{Ü÷Æ}+•7aÓ´Cl†8ËðÀ+î#Ž~”“åR'HÄq•çd}èsþy¨˜»œG¸¨%¶ã 9cÇAÖ§fe!˜¾Ü|«¸ð>¿ZÑ- nâ‡2*2åMÍû¿^þ˜£Í'jík¥Xð ªNXÆþ^ØÈÀÀ9$gœ}iH˜\0ÌÍÈQ&6ñއ¿Ò[}Þ<„æHÆ‹ç> sÅV‚â?$¼¬Ù ’0O劀Aû·ýÒ4]y8ÀîOL~|Э1¹â4P2£ ãœwÀªP¾¢¹4sui1TO˸žÜzÔ±<+i2.>þIÎzT>\mmži-ÛŒ€§¹¦íÝ´`“*¦y ‘×Ò›V)\›å]²É.$þâžÞ¼~j34‹híyª>m»‡#¡ þ)£quÚAËt~ç®:SV|û^<¸#O¾zþRQLnçñoÆ7¾ý™¼uã‹ >-N÷CЧ¿‚ÚRU$h°RW ã·8Í~ü/ðÅÇíEûyxŠÃX»OIâ“s«ê3éð"1*±n'†ÎXž„÷¿v¼¦.½ðKÅúÏ?öއunêª7иÁÏ^µøû(xÎÇáïí¡à-kÄ:•¾•¦…’ÛU½‘ØGËlêYûà>ÁÈâº`ã7©ûàOƒ_~|?þÄð·‡4è#3¥¸–ÐI4²í \–äœ׿å¿ÿeOƒ~9𮥨Ká;m#Ä?bsþ“Å»+H£€s’1^ÿáøCÆz%µÿ†|G¦xŠÖ{Uš/±Ý+¶ÆådÀ9ìH¯øÿûAxSà§€.î§—OñŠUa1xsûE"¼»ŠIV6uôUËöÚª-¹ ”üoýžüi¯Y|P³ð´úíý½¦»ám[G–Î)œAÔ¶0“fph0¬yùºó\‡Â?|IÑüU¦OðæïUÓ<_âakvyÜHÌ{dÈÜOCÔ9®Ëà„µoþÙ:¥á½ o­É­j1Ëq˜¬m¤¸0ÆYq)W›Žœšç|+«?ÂÛ//!tøÆo2 •c o„S½¸qZI!;ô>çðì)ãOX^küa«éW÷±¤–öÐ\}²ãæ>c‰¤“pQ“þ­Iœ5zgˆàž¿äð\ £x«^°Õ*Ë-Ôk,r(R1å’6òs•=0ÜØ~Þ¿.üåÌÞ(°¾Úßñ.m1Ý£ OFL§#sÎOWüOý½<1©ü(×t†ºo‹,<[4hºf§yi ¤ ]HfBÌpT3ÍgmF›g̳ïÇü/øß¤ü,ÄQøFO\ØÞÙy!‚ND°‰±¼2Æqœdt¯žu¯ë>,øÓ'о$ãMri÷Âí¯ÚVxÂ(.Ф³qŽI¯£¿gÙßÇþ5Úx·Äöšæ‡áÔ¾mqµ÷²·Ó-È•cv.ûòê¤È9ÀµñÇöñ5¯‹.|Qðšáµï·_\\Oew"E-£;ù«µ°X·_›îuÖñQLv<ºÃö°ø§q£[éþøUà !<„µQ§è2]<¸P±‚F7cäàý(Ôþ)~Ù9²¸Ñ.|-y—Ë6ÖÞ ò#»Á•H qÔt?€®oJ—ö³øOñ F·Óüe®ð‘¶M(^÷pÁÚªQ[ ùN@Î}kÓîïÿoBí4^=±·™UåÇkfÈè2 úõ¥7᥎ökø{ñ+À_¶çÃ?ë^—Âö'U{+—ÖÜZù¨ÖìaÎçbZ>rHç­pô•ð/üOâ,º’†²±ñOöšDFcxÛʺ`S*ÅqßWÓ¾ ý“¿h_ücðn»ñ{Å7PXiC¨[K{ª6¡s Eq«Œà$„¨;·mç8õÚ'ö7ñWÅ_Ú¶øw]Ð-4ûý.{ø/a“΂Hë¸ üêÊÉòŒ}μÔó+ 0³?Gt“hž±}>[m‘¢Ž5( ½0 YÌ·ª©ÁpyÇÿëW'à­"ãAø9á½îàjWÚ~—¤×%J+´q„Ü$ŒíÎ3šë^GÑ„rS`Èn3þ8æ¸j^æôбó[ÇwäªpX㎟€¤‘Ø’xË¿c¿sõ¦3üÛ·mr0s“‚M!bÈ퇦q×§zÉÅ›ØcHÑDXbù‡ŽzlvõúWå'‚¾=~Щÿ.±ðg‹$×.<0¾.¸Ó.4ø´B#ÅåX\¸O”*˜\¾à¾E~«1.ó ù·qê;T onoZèņ”àÊÛøºã¼S…ÄìK{iöSÛ\,Vó®×Šo˜IÇ#tÀï_œ_aK_|Uñ~ø–ÛÃײGq%ˆBÀ($‘í+–Pã¯ÌOlWèñ™RÛk–02²’ÇÏzsìdÌíÞpÏá]7²'‘3ñ×Pý”ÿkŸjO­âùo-Òa¸ºñ¥ÎÇA’"¯OÀwö5èžý5[ÏÅ«|]ñhÕ! Œ¶:tÏ#9Ý–Yf—'n86žIÍ~Ÿ—/6_iPpåFwÿWj’8±4òîQ’¤lôÅ'SB}™‹á? høy¦x[ÖúN‰¥[ˆtûBÌâ$8ÉÉ={ú×D±ò$2¬FèÔgüšŒÜ&õXO–›NU£ÜHÁÈÏõ¨ Ìò)‚krTà¬m¸©R Î8ã5‡¾Ùª²-Õ5«½sZBë}e¢Åöƒi"%äc» N¥|û¨ÿÁFüm9M/áß‹.ŽâïoíáÆîûY›ðþ¼TΤ~’ÝÌXŒð¹ c߯ô§•Ę×å;p+à?~ß¿|Au^0Òu_Ͳg••Mä ©4Rƒyg\ÿf¾Ðð—hÑT(b@¹ã>FEG<ÂNÁŒS’Gà)»ØLS#ŽPå‡oÿ]8JEÎâYÙ†1ß ¨œ„N ‹† ËüzïëJÄã|ŒJ’02ëÐÕgŒ¢´‚0ÉËÉ9# ü鹕ˆ‘UÜm`H=r§Ò”[*)RnÇ|‡‚vóÇ=>œUUh yù’A÷Y½GoztLê0ü®rNNTUS"£ÎQƒå¸êÝúSri# Ä9—æ:ôõãÙ$ÿTÜžQz{ôëÚ‡™AŒ€yYëô§Ò¡dQl±¹oT9™çœóVž„þÕ?¾:ü0ø› éŸ ¼7¡£êºqž;ïìi¯‘öK Úvò2½ø<ßšÿ~.~Ðz·ˆ-õ¿ëž.Ðf¹Ë¶‚¸Òà)ùŠÄŒŸ™»ðOjþ‚$‰^t2B³ÛdîÇ®9Èäf¾&ý½üˆ?c„ñ=”"{Ÿ êPÝÏå¡ Ö’ƒo0'…Y7ãÕkhJ-X™Ež{ÿùø¡¬[xûÀ&Öïµè$‹TÓÅÜÍ+ùr“îK½Q±“÷ýëôâE;•Ì¥Ø/ÊHõÇÔ×óñû+xÑ| ûuü?½”Ç“«]¶›v%l,ipž\g'¸‘"Á-øèg/¸ù#˜.ÒvòO¯ôü+г¸¢Ï'øáð·MøÍð÷À—÷k¦‰çŠ{{–€J-æ…Ĉøö#žAÁâ¾Y‡öLý˜üáËhqå2FÈSƒÖ¾ø.eOÝáY q×¾A¯‡?i?Ù4üjø·Œ´oiú¬šdVWK{f]fXÙÚ6õ„`qŠšr4{%›öð•»Èò|%žC<€æi µTÙlƒ¯zü½øÇâÿø£â„º‡<€t>b@dÝ4›±»ÌU&5 Ö¾å?ðO;È<;w*üM·—Ux²ŠÚ~!f бbß°ã­xÏŽÿb?x3ÂVoxW[ÚŒó#\‹6Rr¦C†ög×µuSÞÇ;G®~Àñ…·|IãXotû_ÞXµ”ÖæoÞÜÌZ7 'ï>c×< s_ªŠßéŠ(^w'wlzžæ¿…_<{ð§ÄQßx3[žÆÒûìó_Ù4Héu ¬n ‚ëòá†êþ„ü3¬Câéåžèìõ+®¢;‹’ q‚yA¬«Å\Ú›±¶]7å“åÆÃÎ?úÇšüâøÙûø«âí5®x¿Ã>!Ñ4û U…ËÅ|¸ñî…¨ëv6“GÖÖR*:y­µ\—þÌ ÷ç¥a´µAðáÆ¯ð«ösÒ<¬ëëךy‘VTŒ¬p«H[ÊPIÈPzñÇ¥zô’”,‚ !pÇŽxý3_ |ý´m~+~ÒZW®|.<9o|³-…Ó_¦A¼FFÅûÊœðWæ¾ì ¼ª‡iBŒåG^{qJpFw>Zý¨g˯ŽðòézÕŽ¬isÊÁîc/Èñãgà§>‚¾6´ÿ‚zxŠkc%÷Ä]$ܬ ±E˜î¡‰îÄŒ.=^yé_l~Ò¿ÅÿøÞ øQhú½Õ•ÿ›ªé‘[‰Úâ ¹ÎÒAÚ¬9 r~lWÁÿ¶í¬À‡Fðݶœñü“ù:Ò.òÜrßu—€S×’:WU^¦3ƒgâÏØ›âÿ‡4™nEŸ‡õè£ýmµöÙdç®$Ú÷ÆãÇå^àˆÞ=ø1ñ/UÕ|%ª;P6ÿe¹Šâ$–òØ¥OñdGQ^±ãGö¤øËuaŠ4jVð´’[[C¢¼¡*0½{8â½À°×Ä=gSÓ'ñí҇ôKˆ¼ÉÞÚà\]Æ@RˆAPªI<œœ}Aq!AŸ«¼gŽþøOÆ60ˆ†¯§Erû°LlÀN;) =x¯ÌÛâ~­ªühµø{k=ŠiZe²Ü-n™Œï0;¢™s·)³p펕úàoèÞøY¥xKöÿÙúM„~\ÜÇ,YŽOrʼnú×Ãßÿb[¿üsñ‹´oAi¯v÷Mmsi¹bÎܪàŽáãù󥩫M£'þ ýáO\xGÆž6Ž—Äbÿû5ÌêLKT“ä$m-“’Töé_¥ åý—by[@)PH<óõ¯ø%ðäü*ø  ø¯mõ!§îóo<‘šY™²<žq’sÀ¯dó9 …Ð#}ò˜ϧ­qb*¹I¤:tí¸Á°Ë²B¬¬øY‹œqíÞ¤ÞûdUÌ€° ¶“Ÿ_š5•²3ï³ñ·¨ã°<Ò›-É’$UfÂõ äŽzŸoñ®(ÆIJ(lÊÏñpQ±€2TäœsÒ”Ìb„±%¹RÁwý¿Jªå0ϸ6%‚‚Ùô8>õ)‘dw‡sžAÎÐ;qÔçúÖÊCjÈ[rÓF6|¨i'žÍƒÚ¬FÈâŠå·*à+.3Î1ëž1øŠÉ–U’EtV;†xn?Ã=êâ$m+ÌÒ´x,8ÛÏ$~êZL ³³À–=r=8ÿ8§²¤Ø)1@€+¢ò <?Z·ܘڹ݀A~yǾ3MY¢6mù‘&ÑÉ#†q××?§zQI ƒª3ƬH3ÇáÏãšV‘ÅÔɽHPÞàê„Ï:°ÁáÁaÇlgùqR!X®“Ì*IùIfžøãÓÓµR¶Æ›¢ig…®U†íü)RÊ{äÔÒ qþ»ÌØHÜãcƒøtªn!RJ$òð2:ñè@äþU rnÞì34m¸œãßôæ¹ý‘CkÎ å¹>[ÈLPpõõ¬‹ûØí<Ç#Í íb½@õéÔzÓ¤¹Žy\Lí¨Uûþ¼ä{ûVõ¢à2oÇ(ÌÆ:ðõ5¦Ì•¨ï´=Æ×3‚P‚Ï·ŒäLñƒŠ¤Ò}¥Ê]ÛiËg—o]½øúûT6ò ¥1>áæ’å¶ýÏ\ß50hcØc, …ÝŽ œ}}+:·±ªH–7Qoº) h¹UÚO<ž}süêXåÎâ%œ¢©@F0{þŸPí \ï‘H\®1Žp8õ÷æ­ÃlËpªÙhÜÊŒóߦ>¿þºç„eØS’E(i 2¸9X÷g‚§Sþ5<•¤ØdDÉœg¯8ÀªŽòo29œ€Ö—dRÉ*@Žc$yˆ£$î3ÏçTé6J’.4¡e.{Lp¤uëØvæ˜ò…‰Ù’5DmÎ g<ã¹ìsUO"êM¬Ê (Dv!í“Øw¨uVËKÒeŸQ¹Dˆ’d’YB‚O÷‰éÓLf¶¦žÀë$%õÉ]2ríˆâÝ&;yäñè;~uüøüSÕ#¾øÑâ ¥yUVþR $y‡1Ž8ë×­~“þПµ.á­Tð¯‚î"Õ5™ hn/apÑÚ»HSüMÎ??jüžÔ&’êðÌgy>Ñ'ÌÎÉÿ'½wP‹ŒÎ:³R–‡ê—ì©+|&ñ$+4:«H"™#Ýt'$ާ׭~ˆÈ|ÆŽBâ6p‘11×½9¯‚am;ö|¸¾tŽ©Èêq‚û@\dЌ眜s_zÍ$‘Ȭª ²Æ@Ǽy®Jß7¤†j2/3$€ÈFþ ‚{­B@ÆTó)$ŽN=l“×­9[¯ÍÆÜà÷=y?…%°F¼hÉiÓp|ÝzãÒ¹yšgB±yòÀ1’@ÍÉœíäô#¨ã­FæU‹v–<ä䎹UVU +´Œ¤¹£# àÇLþ\Ô¿=Åë,±—hrèÝ@9 ÿL×5yÜÑ1÷6öóÙÏhn<°w+)‰Ê‘ÐŽx&¿›ÿÚ[ÀWý§> &ESÉQÐ{óÍ ë´*Tò–ápyéÖ¤ˆÀ×Í3vr¨?Z™« Q»WrŠ€úÒï!d‰öïQœzã·ÿªŸ&X]‚°ƒ Èõç¿niŒªFæ@­ó=zÒŒnl ><ɱ•#Ë TòþöÍ 0+¸ä~\Ty ‡ˆ¡! >™â®íT”dÇ+®å![ ôéøñšn4Q±N6DeÇ( úþ{Tñ(Ëò_yä‚p×ð§ådæF¹0®:°Tyq0è ÌÜ€yô®YØê¦K_èD"ÚåA’ÄŒvàöÁ­m¾ÐÅKº…²œ`8=걌^á@†ÀBHÛžÙ=±ÍlÁ;G5° !b3´ ¼ûvèk†½KÔà;hV;o&?0:}ÖÊ £¦3YwÍÿ&X‘²@Wa’£=ˆ=ëNæï ÓËp±²—@ ž€÷ïÉõp¯ù4n¬~fn§Ðþ5ŽÞ•Ç]òìRy#ŠFBT–Sò×°?‡ò¨äØ‘d•%ò÷`pÝ¿—óï, ¶(3I‚U׎y£ ‚Þ2 `¹2ê«õ×®ã¡ÀçrR%Œ–ŠåòQCñ¸ëÔsÆ2>•ÜxvÞ}NúÞ4§ ò˜á– Ú@É=‡9®-#¤{Ræ5|¦rWמZúྡ©ÙüTÓ"Òô¡©M#ùju9ä¨äv9ö¬jü-— +ê|¨­#¼bf$äÐß§ÒŸº? ¡Œó1gëëǽ@Le¸ˆõÃ=8¦ù[¦Êˆ¤dü…‡å\¬…"Ò·î–b]y#±9ôüh‘\ÙPÇÔ’=j2GŽ&%|ÀGÈ$wÍ,hûØT(Ïoóš¤+‹æ¨Òl ˆÃ~¤zûИ8EP08ÁàqžêGCå!£€x Ã/±ö¥(ZOõ¨¸Nqùt5Z[ l+·k€pqO•T,À0±ÛœÔ{@ØŒÈÎÊ9QüêA¹¥Á—UúVRܤ=cfóX»üG°ôÍ#;4ñE°±ÚFÏn´ÿxJïo—åP¼æœ\G!pù'¦îX{UÆHN#rB2—Ž”»‰‰ÆdVwàþUlÜv ˜å9äžœÓã“dÌûÐ;Q ›°éSm’JWÁ`2AþƒÞŒ* æTÆX±§yÆP]““Ûƒ×$¸ Ÿ˜F}Áæ]±!b±´RHG|ŸÇ×Þœ€+ÆMÊFÑËý}:R1*²);ºÉãµ8…Øœ8l`¶ÞÓ¿J„®U¬<.p[ cv2Wú~&°RªêZ/áÁœwqQG íÁWó;þÐÔÊÒoÜ€:n®kG!¶ÉÍÃesÉž´åŽ6*ƒx8ÜŒ1üÄ~•,MÚHT¸VùÇ1î?P£#'ª†²»BEøäHßzŒ}ælûp(æ9R%+”‘‘ÇZ«šÑìt£ózU…HâuŠUÚüþó{äը݉ÈÐ³Ž ‰ã‰#—Î#æhº?§¾io-d³™­ßÍEŽOœ²|Ê}ÎyëT!&Þð¤ÚK `©Ï×êZƒëz i!A{*ùñ7QËÓ=³ÜÖéY ;³ÛìÍæ <2m8éøó[o§\%ø6‰çÈŸ: ˜nÈÈ=ˆã¾k˜¨—1£Ï2ÝV3·Énçé[p/šëäó° |·I;H÷éQ)8]¨Og&-.îâIN÷Œ1 {só}+¢:®“äR¾MÌ4›£Ëg¾:äô®Ô?Êþtˆü €@Ïþµi­¼>r¼Ò#bLlI'8è3Û¥úµc¸þØŽì#Ø1ŠÅ æÅóHs“ž2Gô5öçì-¨1ý¼ô¸–úÙËh—¨¶ð¦6ÆØù‡ªòzŒ{šø ÞG†–â6¶qF–ÝFõ8àw sÐu¯²¿b RÊÛöçð±·¹¶žéín’ÛÍá¤&6[§` vÒmjgUݼQÊDo ô,Ï4*‡ êßë)#òjŠÊ%˜UþPr©ŒzuïVÄP‚d`¤Ï~þ¢¶uNNSĬnþj–üÇ¿OšCŒceÁü=kùt‚Þ[ éPŹmmÖ'Þ@aµUpBŸáÆ8=s_ÔŽ£í|ítueÜÇçŒ=ùÅ1:äPYx£Z²xȹ·×ufQƒ Ü©ƒ\t®ª-òV>àÿ‚~_$·Ù|èk¯ Þ3ÄîÈ̱<<¨OÍú“‘_µm¼Äæü¶c’ÅGñ§=ëð‡öº‚ø(?…9®í]ü~W`Le€é–&}zq_»[º—(À€Àn%‰#þµgZF)*£ÊÈ¨ó ­„òqëÛ¯¥M êÌ»Nöc@ÏÞö¨Yd7Š‹Œ.ÉÇ_aQ¼Ë!œ± r¸ÇÓéYhhõ.îÚ‚90ùÌ=Ï~æ–G̬1Œ8Á?.?½(cæ“8Á㑇AÆr:zUxÃÍ(E Æ2€Ø<ôÉõÖ´N蔈òa”&èÂn • |ÇÔž•(Q¼û†ÜÄ!† Éû\Ô»ÙP»ÁYOºÇÞ¢!8X”·Ì…‰#sÁ¶k;jî]–ÌÀ°9P9èxÅ$q…¾Ø³7’0?‡zHŠÊnX #“D}r}Måij¦Ð~E';Gà9«z"R-Äp®D{7OA·8Æ=¿Îj7+l%Ù~íA³¿Ú y@/€#‘õþTØu C~ïÜtõö'ƒofÅMíä—s_\zø?û;xàO‡näðÅÝþ«sj‘jÔ¹šp j€Np  üaý£ôi4ïø(ÆH75³®²÷q°;RA%¼2®9àañ“Üþ‡†þ"d2…PCc ŸCêrI¯ñ÷ìÇðâ/ÅsãoøY¯õi¬–Þ÷²GqdíWE8<1êG±ZB¡<§‘hÿ±ÀoiñDzí°¹Ò-žH4ÝBX­® ŒÛ“œŸ_­z§…e~¼¶¼³ø£j7ðʲ¥Þ¡3ÜH$0?1 ã÷¯zÒímôí.ÒÊÚlì EŠÞÚö¢"€(`Þ¬îqÌJ?™ó#sõÅK«©q€ÖŠ [e†Ú†8*}ÅÉÉãÇ<{ŠXö‰ÁI°ƒœ®9ã§?_åVK7’¸b_••»žvôÈàÕXîKˆ#¿’>Nz䎤b«Ú²œRŽ ]Z3µŸs–N1—ñÍ?ËiRœâRyÏâzñéÖ–6•ÖDui¦ã©ô(~Ñ¿ ¾Í§Šµß;]vÇö^ŸÚn¢wè§(¤‚Ç5óïüGá·äé^ ñÆ¢*|Ó*ƒŸ¼r;zó_~Îß³®¿ûAøÃQ×u}jþÓÃV3ˆ5MFk6£;˜Ã"¯˜³ci.ùÀóÇêf…û!|Ðl­Q~é•Â[å¹ÔA™å;pY‰<± àPéØJMž)áOø(7ÃMcV‚ÇÄ×ü.àÄ.&ÍqõHTî䓃ÐW×~øŸà?ÇþñF¬O-§ÚVÞÞ`ó${‚îhÉÜqÔµòGÄŸØOáv½o=׃ÒïÀú™i%ò,TKg1d Fclí]ÃøqÖ¿-¾üKñÁ_ÇÄK }`Z\i·^¯šªÅ•d R­ã·ËïRÕÑi´E×7æ×Mººº‘Ìvñˆ¼_¿ÿoOMã_Z|.Ô´dðEÊÅý­M¤º\5»@Ûk°ÚÛ™°Ì£zWéßÃÏZüLý™¼#âß #x‡C‚æxÈUå‹çŒƒÐ‚XcœWâ'íð?€ÿt½-~ÃÄ:. ³Ëa@{(â`¢)P19Ê7Ã` UÓŠh§-5=ÿà—ímâ?†‘øºMgÅZޜ֑Mo ñDuq Wl!À<?xÿ_ðÇÅ_Œß ¼wk§x“Äž»³Ôœê:]Ä­ v7™Üäcïg¢žx¬}â׎ E¸Óü1ãïØÚ¼i˜ ¼'åPBHfŒ ‘òàv9År««¾±ãù5>¯­Íu)¸Ôîì}ªåØg>cdd9#8éÐ éP“–§ï·ìãñ&ëâì‡àÿjW"ë_t–ÏU”dz7¹ßh ÅC aò29¯†¿mÚwÄQxóSøCà÷×<1&™4–^$ž']º„Rç”àïˆå‡#Ä85ï_³Ÿí û;iÿôxeâø{vo"¶ƒKÕæÙ=õÔÁK2HIóxv—;~lqÈÏÇŸ·¿†×Jý·añq®ør Ê„äKlòDÄŸâÈhøçî“Þ¸ª+Iš§¡ÏþÌß³ÏÇŸk)×|EqcáKϳêf”µõÅÆ@»¤*²’ÎX猚ý[пfÿ‚ºèÚ_Ã_ ÆËò‰%²Ym?3¤pM|!ÿçñZÃâ߉^ º¸·‰î`·Õí¢•Â©eDAêBùMzý[’`È™NIGʼwãß53‹%£óçãGì?ðè|%ñ_‰~[ßx{ÄZl×:|wlöÓ”Ê`vç ‚:q_œþ>x×à‡‰/uO ‘u¥jÕ,¦‹p#mûFHÛ)MàŒäg€1ýx³Äú†<{­xŸV³Ò|?m{ÛÛ¹v¤Q3~8Àë_ÍÏŠ-´µø›âH´K­"=NëìS•d…§(í8ÚmçP†š•±ý0išÅ¶±á]?ZÓd¶½µŽæ7SÃ+¢²ŸÀ0­Z]Åòç£Ü1œ~µóÿìÆ5åý‚>Zø«L»Óu+M-Ìw‡hc,‘:®c pyï…Ô6òÀäóÐcÏúW-HêmRîPÛŠ =J¯#"ì R£ ´rëÀàŒTbTûp¸àÉê{u§8ê4RñóÃÆG®1ÇzÍ¥`¸ù¦ŒÁ¹–EÞ8aÐ/\gÖžc†#‡ùðAÉʶ;ÕüÊW–PÀªŸPx?çŠN "Å) GQÇOz‘¢Ì^TjÃÌoš3Ðg=3ÇjŽgœïÙF3Œà8¨%+#åϘPäoÁééïMUÁŒÈœdŒô>¤ö5Qƒc»'/‘äaÁÏ9QÓ õô¨eï+emûL˜ éÀüjB\Oa&ÍÃ+œ‘ÊõëIûÈ >Zq•>Zà0ã$ûÖ®Eˆû–í6rGM¾¼Ÿþ·5ò?Åïßuoƒ~9ðf©ñ#Ãý¿Mº±½Ž×n„«FËå %Ý*ó•=ëëc Vfñ·%xÉ`>¸Èú×çωÿàŸþñÅwÄoãÿéÖZäןÙÐÛÁ²šC+rÊI]ìxô8ëƒQ´Ëm4~DZ]]G^ìÔ¬öùSÉFRdëýànGN+õ¶Ûþ àXü-iü!~-Ô5„†1p…àT2mÁ`ÛþîAä€pzV¦•ÿûøQcp†ó\ñv³nÊ °½âC½‚áXù`‚s÷»ñÅz÷†d/€>H#oÛxŠëË %Æ«;\´ÄŒnvƒŽ8Ž+ªzÅüºžÉð»ÇÖ?>èž5Óá0[jV¾kÙK ó-›;^7#Œ«=úô¯–?hï~Ð?>3Øk¿ ¬/¼Cà¹t—6Á.­ìîU²dÚ¤K¸©`•À#¸¯°´ èþÐlôOéöš>—j Akl›9Éüúžæ·¥uÊ“ lIÚŸ½ê}¹õ®n[$ì~*ŸÚCö½ñ5´‘Ø'ˆmeË4ϲ"vÎZ6õ8ç·|W+¨|ý¨>+k:}߉¼9âÝ\Olm¢¹Ö qG!þbˆØ£$ôÎ3_¹qÁs‚m•رrªq2z¸Ïáš°ñŹ×Ë@A 2Àñ×§õïÅW=‘‡æ_ߨÏMñ=¥ÏÄ_Áâ+Kp†=7I…àŽF,ÖBä—ŒŒ—sÏ<~‘éÚm–™á»-2ÆÚÖÊÆÙ@©hUàÒ´®%d—”(Jçîéš^7ˆHÄ$c•<î¶1þx®yM³U£;µ 3+æ1~1ê=ñ\·<%£xûáf»áÛI6‹©Àaº$ íÎT«u ¤ï]²£ºF¬ù’¤dsÏcðìjH9­ÌL³tîxôô¤¥b¬Ïšüû*üø}âí7Äš>ƒ}?ˆ4Û¶¹²½¼¿–c”eáÊ8' ãŒWÒ»ÑR2Óoly;O¡ÏÊ¡ûTæáœ!‘ò¿x`Ý} O˜¦2E2”é…ùsþ5µîEµw{R™}áŽÀ}i¶ÚN›hd,á‰üævUˆ#7%Î8ÝÉæ¬[²ý©AÜ­å€[ g­:iÔ÷ Ý-&ïo±œÜMÔð@PGå‚_, nOm§ž:´®#ŽÝUDhí•‚ä`tíÎ{ROæ‹f7PÑì›8Æ:ôèHâˆç-o#oÇRp8÷8©g"e¡ÿ ˆ¸á@Æ~æ>¿J«sŸ5¤o7cãoaŸLÂ<î#DVsŽ7`zûtôªsܯٶ¾OÜ6íä }yÍT¦íaEDXå”/Î?6ÞËÓúž*O5š7ˆ·$ÜpsÉç§XK–0Ü»0X¨Ã9Î /›ƨYÃŒåG8çÖ°\רr”QvI„J£íÂeÔ¦ìû{uéíQª+Ú¥ÓnzcæÎsøz{Õe›Ì‘ÑÂÆF.ÑŒóóÅ0ÞªNάŸºÂºãyÏZèPlJ¢-y cç/–90;àw=9¦M"í0±ÜB¹ÚËž˜+Ö°ï5m2Æ0×¶°†}ß¾ Ÿñ®cXø“à ÈÏ«øÃö‘»aüíB/˜ã€Äÿ…'E’ëíÂ(‡lgËyO F3ßž¥$XXˆ¿{´ü­œƒ‘’= |õ©þÔ_´øÌñE»e ³—í'©R0™äc§jó½WöÛø!¦Isö]_XÔä ®•!Y8Èu,@*0G8ê*=‹dûkgJdûI‘ÑŠç‘ÏÓžùïíT$•>Ì¢C2t+éÜÿú«óûZÿ‚„ø þÎðˆõS‚žXâG|dõÀãŽ}+ƒ×?ࡲËq»Eðo‚ëöíXníŒ*¡üsSìÃëý>I+RÏ·Êsò†;ñUahÍè`͵dfH×އ9â¿õoÛïâeÙ‹û3Ã~°Q‰¶I1öå†NNzp8íÏûjülÔ-¥ŒkZ=˜/ÊZégøA$ð;N¦º!„rz ëi·óÉÜOÄè6Œ‚IBCއ5Fæú5•$ûBF#ÂΣ¼sïŠüÕ?i¯Œš‰q/üD»‰ªÈª:Êœc®sè9®#Pø«ãÝ^Q%ߌ$x -UüeáàU‚Ÿø™Æ7Æ$Wóãu­jw7k¸¾½¹™Ü)ši™ÜèI'>õJ{™d*§~L3ŽKzž:û÷¤ð°¹+Ïß;ß l®¶ÝxçÃAáB7ý­Il`ãê:æ5Ú§à­ŒƒËã Ké-˜°†Þ#)$d/¦ìôö'Ú¿ ¢¸¹01•®H@܃–ô­<Ð, ²‰‹.]&#å8'sŸAYTÃFÅÆ»?^Ïí£ð¶=Bæ;DÖîæEù;@ü 1äò9à{רþßžûNË/jêU°Û®Ð¤}ïLý>œWåzZjw ñÛÃ5À“’#„¹8;‰è}¹œVåŸ|s«NRÇÃ"¼—p*cÓ¤!½ÔíÁàãõ§J2I3ïÝKþ r®Ði^ ¶ ¯À¹».N?‰°0þŸ—œßþÝ$gƒJÓ´H˜í‹ý¹EëÁ'ñ'Ð ð;OÙëã&©4dð¾d‘2¾d!:çs€F3Šî4ÏØçãn ±ÎÚ µˆ,WÌžíU×ß1Ϫ’¤–¶!9²Ý×íñ¦îI¼ßÅiªAXŒ¡ã‘ƒÁ'=;+Éü]ñ£â/ŒlfµñŠumNÕääO3ltùF>„ç>µô®û|O»ÔåmK^Ð4Å„³kK½ð ŽïÓ¶+ЬàŸú­ÍòGÆö‘‚ÇiŠÄ•Æî„–ù}@?­`å±\“–çæúý¦{’òIrâR†|–<·çɯ«¾~Ì>*ø¬A«ê¶m¤xVÞTg¹„ï¼Á Šxeê·Ö¿Güû'ü(ð…Ε©Úøiu-JÙpn'É¼Ž 9<[óãšú"ÃN³Ó#Š („PŸ‘#SòFèF=ºq\Õ1)4pì¥áýOÐ<;g¦i–VÖ–ÐÃåÃQmPN¨ãJßr’Û°ˆ°Ý'8\ V¶!7 Ë«&|´#*Hã·æ§ŽyVmØ'aO\aî}+Š¥[ª%ŠhàMïµ¾ÕD%Šü¸ÈÈö¨¡*·—[ñå±TRÜH8<ú¨•’H¦FÂlùX¸6lzQÊò ´LÈWÁ#98==éÆZŽä®T˜£S'ÚTna×< žÕ*ººŒë÷]™¸BO^: ¦Î ñRÇ;HíÎ3’;ñÜôÅ*·’È£jïbŒ[zŽHÅrNoÈw, ˆå¹Xãmêq€òÃŒò;zùö´ðQñ—ì®C ´’_Ø(¹ŽN2È<žãžG>µô¡ÎŒÀNÜÄñøóÛG[±²Ö¼u¥_"Ioy ‰‹°*¹Œc×¹­pÓ’š0­ £ù\Ô‘£ÕäS—*– áXq‚{ô•"Dng ·¢Ž»wõ¥›!<–ÜAeÇ\ûS”’P…lÇÌx+šŠ’¸u|™¾L˜nzzv§œFªp9éü©[ÌÚËvÆ8íùS‹<Œ¥[®p_Aýk.{@°d“à¦BŒã>œÔ,ÊáSfÐvðzú©ÀGþ´»pT©P*\†q¾(\:’e ·Ê> dÔû[›!pžg–±‘e• ßëVÓb`†Ì°*TÜ~ª{ŒWpáNI\ÃÚ¬/ÙÝX¨! åIè1í׊£f‘f¨‡ÌD“hpî·8'$ÿOZ²$Š—„!XÈ%A~ãŸ_ÿWZ¨ªãk7”w/Þ,2Gn¸§°’4W•œr¼ÁéHät5ÅRÎêr&™He i™SÛžùô¬é™ä½Š0ûÙ—W×?–MZ–á€òc(Q̲:öôíT»/`ü`t#¿Ö´¤¹Y\dì¸I@m„˜€g#ù§+l’P#b\crŸº3‘ŽÿŸµ;{yH;t@§ËO×5,4W!ü¶RW2NãÎ[ƒ§=k¾5=ÓΖ嵆m™÷ȳ#pÄ8Ç=G×é]ÿÃï^xCâ5¦­måÌ"˜6Ù mÉ#$0#ŸCëé^u™÷EÑZ<|À&G¡ãµIlÑÅ||â›w`¶Awa߯¥Ò–Œ9Î0ÛBº•ÂÜ8«A ÄÈ0]±ó–ÛÓ4€$xlÊ€ü/±1.UÀC"d³“À#¯Ö¸$Õ„ V†Vè0}¿È¡[lÅ|Â%nA~™ôúR•CÉ6>UsÈç(ýy4ª›dLyŒ»²Jã‚LÔê …‹ÈXgô±Êï"¶s€@)/«dØo_éڣ•d$OÝ?ÐÓ¸‰˜í•vª®ÕÎOL}}*I¤Gœâ@Wpsœw#Ú¢m›H??l/\”­hQÉW@SŸº¢¦ED{'”é"HÄälr?:xlF@<É7õ-Æ1È>ù¨–±9ÿ–$``{gô«\7(Sw°ã§=ª¢")9c. *;~•#&ÆÌ•ŽSúzÔm_hÛrÒnéíŽæ¬;± #ØŽç¨ö¦Ø8¦F$Ù!P eƒn=¿ÀS\¼w Åâ$®ß•sŸÆŸ…ò¢°lñƒùÐ4…–B³>Ï‘s§<œŠ¸³9+ª@Y˱,0[ßÞ¬bL¼íêX‘Ö£,$› ƃ¡=¸æœ¬R×t^a ß6Þà*¤Ñ*ZÏò Ê¥c=ùëŠvCI m¤äg£ëéQy~eÈ á·ŽUzòiâ8s‚Œ„‚8ÜE_2*$Ìá°Y€#/ÆšZi¤˜¦öM¼1<zp÷Û²"=~^ýóZ“Gg fTšÃåÈ$÷Áþu Ó”ÈC"lRÒ•ÎÀFﯜÍHÍ#1ÉÔ‘Ôã=ÒÆÅ¦·(±¶p Æ=ü*¨söT”ǽÁ!²O«}kH£7t†´Œ¬œ.‚ M ´,$’/Žüôãñ¨ÁØ…|Ï3¯$:T\—,à¦PÀð«wcZ|çŽ0UVD@2G\ŸéW>Ý<%÷»Æ@Àíô¬ÈÖEÄŽT€2ã5\,óL»¨ûÂR õÿ=뜋3 þuŽ7*¿2´ ãbŽ£ßÚ­Æ—,ŒÊ D®2£¾î1éÒ§–W%«šM5Ì“²½Ä¤3+`žüŽçÞ¾­ý¯à£ß gŒ°s©ùo†6µµÀÁïß’A8¯c1%Ç“,%×x† Œد¤ÿe»ˆbý½>]¤iñE±‘@q’¤g°ÃvçðÍwFNÈÊjÇôŸQ2Œ=L„þ<‘V@>hÁå¶±À'®*¶HV Fwt‘‡AèOqŠP›PË(AµÈNÜ {ýp1[r³’冓cïÙó(+•ÀàÿŸzþhþ(ØÛiÿ´?Ä&4¸WÆšŠÆŒŸs}Ô’sŸPqýx¯éztŒ¤eâL7Aœ•ÈëÏCÀçÚ¿?Ãkûtüc±òÒ9m¼U3ª*vÉNHï‚eÎ}ëz5,ìaRçUû(\Oø(ß›˜Iêí[ÆÔ6ó)Ï?Þ+í¥A†Hþy#V}êvzuÅ8Ÿo¡ÑlŸ†Z„28™|Igµ±¹ˆwØ=ŽŒþd,›$9SÆ2õ­êB-\ÎdKÄ °©wp¥˜ãŽƒqÓ>Õ*’mLRíÌÁ»ŒðsÛÛü*© “B3¸0ùC.}:Çòæ¦IœòÈÚŒ£#yÏÍ\®'Ifr#àHØ   ÿ95°²H›eV#iéôÈíì)’È>Äè€~bÊø8<çéÿצª²G+\aÀ+»l»‡é×ÕÂ#‰ v`N!#ÏëšpqÊ‘„WÜNpsøT„*ÀªcV8áBž˜™˜˜8…È`KÄç=¹ãÒ‚[A+/Þe,[ŸVFAïô¤ ­8dÛ¹H“Ðvõü*8ØùÛcic‡ çvúÒ²¡D2ÿ»' .pGáÖ­Fæq%•–[…òãàp­Œ+g©¦+0óÃG‘ÈŸ)N8éÍGòA:|ÈC `qŽ:žùÏ¥†3$¯¼˜ÉláNì‘ßÐSqiå»m«fÇw˜|Ê:žzóMg ÂÜ…Á' Ȩ£R‘6ÖEoãÃqíÆM=ÚL삹#‚:bzâ²JæŠBÆ‘Hlu¥Iî}=jšGo1Ê ÁA#<DZ©|ÈÕ Ë(BTrè qÓÒ 0°ØÎä6rçvÉëúf¦P±ª‘#JñÛmœ3» Æ=qô¦Ž.¤u Œ ò=¿Z‰^8òLRŒãaçÓ·áïR¨Sn6Å~Fåî;}(Šcnâ#¸s¶f»{ÉÇâid-µY]H wƒßŽ>½¿¥$FHÛ #Çù‹¨Go§J€­åL»•¡ã¯<Õ½µÙ8Ø–¹ ømøêOj‘OÚ$ S€I`C0ƒÆz~´ÒAbé$H¸Â’»¿<ýEWHÊK¶9ÇRû@SÈÊû Â÷˰³ÊH¬‡$;~Aq*¨DRΉqŽœÔù$Ü‘¢$H»Âϯÿª£Œ‡Q$h±œ*¼pyüù­’¸Ð;7,›½†G¿Ò‰¶7F3Ì3´çßÐÒŸ"ÈІòÉ'±`ǧjIdC|ªåcÌgs0ŽøüH›M14=ÿµ'ˆð¯ÇŸ„¾'ðì:¶•ã­’IeŠÝg¹Jæ1ó|† sŒÍx7ÆÿÛ7á÷<,að¥eãÏ\ÆÆÈXN%²¶pFÏ´ºà…'#äû`XFœ®Rz‰·¶£xœéy­wbÓXÎäaÙ¢Äû‰îv1ÿõפüD•õµðG‰I乿ðm•¤Ò1èöM5¼…ÏMØCÆZÓÃ~8ø»ñcZºÐ<;u®ë:¥ìú„ÖZu®Øâi%2 8U øå»ŽO&¿LuØG»ý–tÝ&/ß?Žt¸.æ†ê]¾D­>Ù>Êà}ÔB ^{œ×Zj(OVq?ðNÿy~;ø‘áògj66×ö¸mÊÏd#ßkGøt¯ÕUpÐŒÁdÆÒI'§95øªü ý¢~Ï-Ôñ.šñˆãŽóD”È€ã~ Fwž6äŽáèú'í™ûDèº%ï†ï ²ñºó« µ=0›˜p0„h22 äõÅC÷FÈý¦Ö5 M7Ã7—דC¥¤FI§•Ž(ÕrÌÜðžÕüÞ|aþÁ—ö¶øwá}BßWðôºíÄúUݤ€Ã$sbRÉ·Œw^;Ž+èxóö©øõá{MïFñ\Z3ß"¤Z>‘5”#(M’1ÆèÉlís·8&½³àïìwy-¾»ñwP:\a#Ãz{‚ò¡ M7ðÿ 9ã­L­;ž·û4Ýx¶ïþë¯éÚTº–‰®ZÙêñøzÿo’@å…Ð:ÿ bµ°HÈÅ~Ckzî¯âŸj^ ×5‰u­gS·i×P¹”J÷22å2F8ç8Zþ˜4½MÑNÊVþ=*Æ3ÃXH”…`Izf¢2wG+ð_â÷ì¡áÏ…Všf—u£xncj/¯@UÞi߉$RYwgò¯ ;WδïŽ?e½gOšO‡šE¶±ã à’+{½ÔÛÚ[Êçp¹‘À`+´s†=:Roø'DþUâMÐÓò°Ë§¡—‚HËgÐc5ÙiÿðNï‡p­›ßx·ÅÓ2ÉæH‘ãÝ’:¹¯¯8­ÚÌxSÆ~3ø—c¥xH¹Ö™íÇ·z¤®j ~êÿ²7ÇÏFÚ®Ÿc«,h#fÒoÊÍ»©+ÚÅ~SßÓŠè4¿¿µ¦ƒo7„ì¿á)»¸¶¹f’kßKut€¾Y‘—2:rIÜs_´Ki¨HóZì]Û‘ž<“Çþº»µœK3"xRù#ï/N½àî7ðÓÆšíoñ¶}7þm ÇZÔ(îm¡’´‚&v @PWà 08Úõ¯°> þÂ~Ðíà×>+Iÿ · Ÿò „•³UÂ$ÏÍ!V©Úp8¯Ðý‘¼ÆFˆG•Úäp>§š°g ç1l›i%›¶?§ùâ•I¥°Ôt¢(´øÕY*3ÇLœþCZ`Aœ²Œà~¦Ÿ!g…Ê0`Ãs;HÏ^?Ö«Eæ1(A\¶AÈãüGµq9êRV'f¬aGd%1ŸnzšljÌÌffê*.N1Ôõé¹"8ãp\äe¯ÎrGAL’UVŠ2 –a€£!O=qô©m²Ò$T‘7K'ßÀ,ƒŒûñP¥ØŠ|+üÊ›†¿O§J™äÜ褅,OÎà ©ÇoÇÒª3F·Œ„á±÷”žôïÏåŠÒêʱnUÏ•†:î²pO¡4+†Y Æ7rGn}9ªÊY#T`ŸÇ9ÁÏ3©2XÀ.Ðä’xÿž•²±K„xC9eU€A?­<ÎRíÔðû¶àó´u$ç°¨ÔÇ^WÄåq„ᇃ‘ÿÖ¨]’Hælá‹FÓßßü)I²®…” $W²¸ÓöëÞ›&vsò…LÀ’Ȧ–v-) eFqÛמœ÷¦ùÙbB°byeP@úû{Ô«Ø\Ê㔣•PÇ%>C¼qéÒ…Gky ùŽÍ‚§²öéߥVtsvdŒ«B[„#¶z{I6ì n;cÒ…vZ³,,d¨!æl6qÃÈïÞžûŒ¤nY”ð¤¿\‡×¿5L²µÈ9 Ø2 ãŽ=zpiíw °™¤šÉ,˜)Lý n©JÀä‘;nf1ä9BC8ÎqŽŸÒ¬1ey[a ÝÀà×ùש|Að>‰ožÓ·,%ÔcRG|üÞÇ=ºúWšj´çÀ­Ýä—âO†î ŠO-ÖÖo4«Óc=+9Ð2u}‘ÙÛ岂z>7ŸJ…¤Þ“|ÒF0Ý»p½0}ryþµò­ûpü °ší-µ-kU@›¢km.]’·]ªÍ›Ž§zómWþ ðÎÒcý›áojrIíó,P(' Ã6qŽsŠ`Øý©úórŒ%ËÀvN1Û3ŽM²£iBŒ$µïÇÓœkòãWÿ‚‰¼·>n‡ðñ µ¡©mvÀ¿Õ£Ï¿Ozó-Wöÿø©¨64íÂföB’”yÛ ä– @ Ž=@Öj~ÅJaEÞÑ—<1P0pjBë¸äºîˆvÁöüZü4ºý·><Ük qý½¢ZÃ…„qiˆ©Žàä’AïÏå\®³ûUümÕïo%oë––sÊæ(à1Ä-‘›;Tª‚@ÎIàsÍiV6§ïØUsªøIe±Íe_ø«D´›7:¾‹c"ƒ¿Ì½Œt<ŒÛ×µ:zÏÅ¿‰:¸6ú—|[{j¿:¤Ú¬› Æ0Ü×ÚÎ¥1šYn®ävs´ÌìIîsÛ·§'Ö®xhÉílDZ÷Ç_„^‡þ&ß<:›”ɺ+‘'‚“òg¹ó=«ËuOÛ'à•w/üVj.¸ ÙØË2’Ê”gŒwÅ~›‰Ö4; Œa@·Ðt†y¡•Æä1àÎUO`rn*!ƒŒu0u›?aõ/ø(¸&uÓt¯ßí~ÑÒ%+ŽJ–nO·Zó½sþ §›ö:gÃkç@Ç-w©,oŒõÚ¡»vþµùie½ Šçžc‰Ã¸#ŽùþbºÍ/á÷µ»‚º„|Ut[æV]2gz’&w¨tUõ´ih}ŪÁC¼ip¦=ÁZ €Ûµ¥šæY䞀jóÝKöåøÙ|÷Omá­& ÆÖzR´‹ê73wïúb¼VÃözø×©Ù†Ó~øœ’»•¥¶d`ò Œ3ÀÏã]͇ìyñæýcÿŠJÞÉæŒe¯õHQ21’ îÂû‘þq§ ‹Þf6«ûQüoÔ¸ˆZÞš¥U€´HSh'8ÉCÔŽ}=«„Ô~2üSÔ-÷ÞxóÅ3¹]¯»R” ‚´ç õ¯§ì¿`/‹3³-æ·á+DE2Í+¶p9,xÏ·CÛÑ4Oø'~¥-ëÉ­üC²‰†Ð~Á¦gŸú{â­ò Q‘ùÛ/‰u‹ÈÏÚu]Fîc€Éqpòî7ŸéYßjšId‘®b ä:á²@ùKcô¿W´ßø'Ï-¦€ë4ñ6¦s—,Q!`00Üd‘Ž§Þ£ÛEìdÏçŠÛMÕ/®YYêLX‡KxF¶6ƒœóùWO¥ü.ø‹«Jd°ð7ŠfB¥–C¦J23× ~õýA¢ipMÛXiÑ$`0†Q6àôùFqúÔ’Áh²Oäù «.H@Çlp3XK®o>‡àÖ™û1üqÔnÁàMh 'hÑ[=9-üñÞ½Ûö-øÕur›ô½'NÎK5Ýú–CÏE'·|~ûU±yÂ=øu;YŠ q‘øôõëLw +æ¥*© än%°{ñϽ5pzêÉŸ’úwì ã™®n¼[á¨(ÜbI$äã€HäçÐ]½¿ì¤*êŸc ¯óÃm¤í d³psßF9¯ÓšEˆù`9+Ôgîƒß¶j¤{Z}ÉÉ|®W?xž¼ýZ9ȯ«Yé¿°gÃÛQç_ø—_Ô§Ln(ÑÁær>QŽ@ëßŠí´ŸØËà…ƒÆí¤ê򠀾K½FI’IÉëÐ WÖÈÍ'í^ŽÌ mÆ:Ÿ~ž§ ±BÑdÉåí!X3ýìõ>æ¢XÉ!ÆàšGì§ðFÂ4Ž_Ù\&é¼Íêxçqè3Û‘ø×s¦|ø[¤´ ¥ø?Ö‘F’*ªXÆÃ’¡äã¯ã^š¼wiæœCœrÎjt·A4¥#EÊK:®zžÜÕ„±2zû£øn âX4'V­þð_cô&¶bÓÖÞ•Ô,@ˆÔœt$~¥Z™o¶™“` |Ü1œê:ž})Á¾\©b±à.ØÁ c¿°¿Â³•v–ƒTS(Q’(0¬pûH¸ÇNþ¼*t‘«£âIˆÊÈÜõǾ;â‘g3å€ë•eLo\pC Œíœâ–à9¹-œ)uF]ª{rn•„êɋآ7xu20Oñ§'ú©ñM„‚C–ŒVã%³þJ®íåÃa¶cò“’ ìyö<ÒâÐ\GbÀÛœ± ={Ô©²ÔR4$d{C+Fv8aò p0;~½½ê‚áf%¼ÍÅ%T z÷úûÕ§UhЙ#9Êž˜ìíÖª™™@b¸‚}ÁŒçÞ²ª¯cX1IhÞåYO³’¹üÆ®Fgd”üÌcY6Ü:ž¸ÁíøÕT‘]™ã•FrÜ0OoZXѤ‚I »þd(BîŽs“ߌý*£K˜«–äš6 öˆü¦!T¨PsƒÓ§=™ªÒbeÊIž7ë÷ºüÀöç¯ôª­pæê8×w2öPyjj`È&º1„+»wb}ùϵUI¨JÈÎQv-2J <—j±`Äü½ù543Å5“•\—b͑Ӝd~ Õ)Cw,YÜø ùcó={võ ‘9%ÕYp8Ï^˜ zf¢-jû²9˜çD1‘ߢÇÏ=°?µ$ˆï‘’&ŒáWsWûÇ1Å5‹ý°RYã*YøFFz÷Ǧh’X|Ö—ÍGˆ®ÒW8úsÆ0qÒ­ÁsNèüKý¼üºGí;w­Âµ¦§o¥';°qŽÃéÍ~ܺ5X›gð’p¯ÛÛçÁ3ꟳµ‡‰cE‘ô™ÈÞ[£aœýî>ÀWâKy‹tå†@È-¸à{sßš÷)T÷6¤uñÄÑÆ9Üq¹áéïQÅXÐÈûöðw6ö§áH|zqî:ô§•`TË/NO­&ÅbUþÈà)UÎS'%¡Ï=óÒ¦ŽÝ‰HTÜp;cŽçµW1+¦ ”ÇCR¨¢HÝdgl± 1ù~¼ÖsF±CK¦ØÄÀ®6²Ùlç°«BfX'ýà(ù%û§ŽqëøöªÌ[/ï¢ÝŒ·’?.õ F ÚÙå—îàÿZÎ1f‰\³€1—yFÆÒ{çØU¨îDnd&çÌP@Ë×Ò«[1Š"8|å~ µ8M±>ÖŠIrÃqoaD’.(°0^I Q˶FA'¦_J•‡îÄ~lŠWï,Ÿ0Q×v5MUm¦gÛ÷ÔËÊ“è{÷ô©ˆF%rK2 êOÊ}ɬ$o{m©h‰æ*w|¸#éž½ê´F(ï ¨ëŸáÖ“{¤X%µëÄܳ¼‚9$œqÎ=}øç‰öZ8z7gá W0†Œî`©lƒÏZqÙä–Ë 8É'äÇ׿oNôÕ2Kí ©Áõô§ Dá”1.[#[ÜÍ¢4 d¡Ë•ã5*¯î É©=~˜éÞ›­ žf\Éü8?éMòÛ\˜Ù²T¨ÏÿZŸ-Ê‹'Ç•rÒ•IX‘•vÉ5¤¾VíÈÄÿ 8ÇqÈééH¤†ê]‰Ê©\P]€?+Fƒ±^¬ç¡   Œ?3),U¹ÏùÅ,2[üG#§~žÔÒ~ðÆH ò¯ñùÍ?b.ñF(¹ÞsÏÿZ£pV\"—ÎÕÁ,?AQ—+>ÏŸaìýTˆbFÇ?Üúó@ØÒ3$†#‚8Ïÿ.ý©¨–݇Æ79£*UN>@MI¦&ÊÆ àä9è?Æ¡ $G“ÍÉN1“ÿÖ¥VtŸ9YÆ>ðÆê>µ|¦>Ð3ˆv‘„ ŒçžGsïR*2Á,.T[·Ì0ü¶;‘íU|÷f ' qž½ºS—/J7pÀÇÔšmÕËmŽï;³Ï/ß§CžÕ"€±0fACþRI—‡pqœ9ÁíøQæ#[sØŒ3ŸoZ•(ذѬ%‰Y*çÐéO,€+n“h\”Àç4ç.ÁP»²mã§ùõª­ -'ȧpäã꘦¢ÁèXÉ0”Ã0|c<óL}È™gUÛÀºÿµ"‰97|Ø\õê?Æ—2á€f Ÿ™H?Jkr”Éã›÷»v‚JàŸÂ¥DmŠŠ °<×8ëôãœÕ5§ï/ÍÈÆ8éÓÒ£22³ƒ¿k©gN;VñI’ä_IZH†Æ <íÇùüªxgUÞ x^Ë·½g!0ì#¯ÐŸz”–’X‰fÞ§°åqÏ>Þõ¯.‚LЬaœcq%€Ç$ÿJS!2³ÎxùOÝü?ƨ“ÌÞYNߺ?/JVÞ²‚UºsµˆÜqü«=ÄÓ¹¢²ùl îÃo‰«þU˜+`FâsïŒÈÈàí£ þ{Sdc凎=¥ŽàIÁÆyÇ¿#\ÛÍ wM’DÛêÓÓž .YGÈìAÞ¨ç=ˆý+M<^d— ,çqÉS¸…Lc¹ëïV’IDÑ~ñÀeùp¹¼ŸZ¤¦\”Œ2•èQéôÁ¨Â.˜9VŒã2IàÿŽ=«5™q¹4‹]¡“s„nÝ’XŸåN”³áIà«NON{T+.û¦R€Àp£?ÈÓÑHyte퓜ªQ¹¨8·Î¹‡<£ä=¶‘ÛçC½0³: C´ëïõªÊæ#+Ãdc<þO º…ä# pÊ$g¦{~ͳ/¬¥¦ ÆÜ‚Ü!ëùýi’KP£$¬Ï»ç ÂŽqþµ$^SN@ÜÌrØß’~¿Ê¢`Át žnïž3U-P‰ˆ›í~YHYBáO@=Ç~Þ•çïa1†Ï };c­:fÛ l8ÀD8>Ùõ¨¥'ìãæ, eÈ\qŒ J0©ò,†&¶0F7cØõ§'G¢¨  é·¿½UISÏ…K6ÆPÇzò§×§áš“pfEH÷ Û[¯J–õ,žßj[Å0‰U3’ Rì}‡ýí+3}R0(äý€ù+l"“>cºœœp;Œ{Õ›™ÄQÇ<™(Ûü0kôV5•#‘?AÏ+Ÿ§5f&™_"\3m-»—¶3ïíZF®¤¨\à~ü(ðoÃÁúJØYG;Ï#æÉ,Řòz:»÷FùŠcŒ…,éÈ¿JF‘e†DExò2YǨH‘R¸fhänöïÒŠ’¹¬ )U1¡ó>v„…ó‚£±‚š²oŸIÓ ÜÏæÍ/’€“ް3;ŸQï[ ÆÒØJ¨à's‚IúSãÀ„³í]͆dŸCÇ’lˆâ…"bT&p›GÊ9éÇsN(6|Á†IU9*TgŽ1!\”l1bv*g»F]ç’X}Üz‘ÔT9Ý™ò¢$t2–"Y€¸ÛÉ8ãœñïLË4EŸÞ!|aúšTa! nZTfË2¯×Ò¥ic6˜`¼K°éÏzç¼,¨Š Ž$ßûŇЂ1çõ©•³¦G_—žIü>•RKœÅ·&8˜G½!ßöfŒòÆJç¹ÀÎ= *ˆ,‡;?™/•¹21 <çîç=êf/,ø8e8Àçuô¨ ¨´ž^ä8eÏòâ 3HL…‚ ¯óí6:`ý8¨„]y‘;74³#°¼ü½?¥6WpÆ7Häç £«ñþ4Ô‘Zê?½·;|³êõÿ£-ýœ2™.%‚£å 8\€pN[ÿ×Q8´G9§æ.®çcpŒëÛŸçN¸fIcUãáù9ú“Ú¸gâG€/žxÕBªÞùhÀq÷U@$ý>”ÖÆœÈþ‡ÞêÕ.\ùöѱŒ–0Nœçüy®WRñׄ4˜%mKÅ^´Ž>d2êG‚¤\õÇüìÜxëÅ×ÚÌ“Ýx^ž&ö›ùeÊç;I-ÔgŒtÍr÷7S\^äo6èàn'“Ÿ¦r9ö¤(#'#úÕjO:<³,ß<;sƒ¹´q–ÆJ|€üç°ï‘\¯ûr| °I%‹Tñ¤å£[}&B_¯$mèzà×á´rM%áòÝÃ#pTr‡Ó sMÉ,™b…ùÎé6ýÞüš©P‰Ÿ;?^µ¯ø(_ëK±™à¯êhñ«ùò´p(ÈÎÞXœöÏOS^ªÁD¯î šßHøm§Å„Y#’óT/±w †U\Ç#<ôçóÞÂóPº‘m­ooÈ;G— Ëל)PFxèy"½MøYñ3ZDþÌðŒndd ²"up eÏz=ŒR Èú£Uÿ‚|Z¹»sa¡xCL 1)å#êK€p;לjÿ¶‡í ¨Ä x¶=6nÃNŽ.NyÃþ¸®_Oý”~=k mþê°ÊEÔÐÀÈr 'xÁÎG\ÇÐôÏØoãö¡^ÇÂúl;wFn5Ïïò¤gœvÏqÍsÞ)”œ‘æZ¯íñ£U°[-SâW‹§Ô0TºXXøõ¯.¼ñgŠï5ÿˆ|E~Àåž]RgÎx#øìO¯âkîÍ#þ ïãkˆÑµÏxnÄä« KIfbÃçPOn>•ýé¾èvÆá¿„,£P yzt;A^Aü?:í#ðö…c :ÆÁGEnŠ;}=«lÕ;ŸÎ=Ã?ë1+é¾ ñ•Ò3¬º%ÀQÏ#,ƒšô=ömøç©]Eäü2ñ4>jìóeXQ@l|Ì ƒcœwíÍ~þ¥ªÅl‹¢í^¦CŽO埭_Is7 »wØúvÿ>•Ä.…*Vgáž•û|}Ô§Ž7Ð>#ͤÂo¼cáM*NO²Kpª€öm˃žœ~}kõâW)"‘‘;©-¹y8ç®Î)©æOå•!Ã ß á¸=9íõ¬•v_'‘ù¡£ÿÁ9´å½„ëï§¶ù†-lcIÿ ùàgîÈÝi¿°ÂûS,–¹ã=FH¹%.âý=ÇN+ïœÄ¬¤€æcòsœ‘Žz÷©™Ø\3´Ž±¨F9 ñÁÏsÇ5ªÄ; BçÈzGìWðEºßÞ©V×òÌ›† ‘yéë^¦þÏ¿|7M'áÇ…íH 5_Œü£qÎ{;H¾bH¿1ûÂFp~SŒãëM›rÜ2®Ó…Î21üé{yu+ÙmŸ‚ü-£}š?Ãú™V$‡O‰8r™­øllÖÚO. x7(T* ç îJ¤A$k$ˆBã-'È<}jŽT)¨îl+s“CŠæ[ìÃÙ£‹Ë;<øÇ@ñ†=rÏ·zƒÉ_$4«©äþëæÆíÈ÷¥ýÔqõy2NÂ}qÓÿ­PO; ]‰TÆqŽs‘ÏlsPê5Ô¥Zi·¹ ± ÄÏ^=¹õšˆÅ¢o—9\ôó×¢¶‘C3n L`÷Ž{óøUo?Ë…D ’FùTu8ïùÔ¹¶i¢Ò2¨e`ìç ÁÏr:gŠiöÉQGΜ’ŽøïŸaT›æibÇœJÆwÐóÿ꡼¿±3…Ê|B7g©'ÜV:¦jÒ±h°[Ø –pÀ¤qÀúVbJQWÊŽ@Y¶ªªàvè?™þµ$›’ßgïLa‰ÎÎØc=3Þª,Žd&V8 ‚ `c‘Ÿ®kD®‰åE¼$M>ÉRâ¿)”䇿Sùb£VDÓFÔ#p,:g¯âMW[„جL…áÙô'õÅL6”rËŒäôêD©´®+•À—í–%dØ~aŽ;ðOZ{4Þ\¢9UX?B¿0dã=zŽ”ÅIq*¸WÖÎIaÆsÔ*Y”d_Ýäè€dçßÖ¹&ÝËVb¤ŠÖÊ©$n£•$ô\‚:B:ÐòºË! Å€ÜXŽƒÿZ¯±Ëþ²=ã%6ð¸úzŽióÉû–G´/š7@ÎAŽ˜<’iµË©H ÊÚcKdG*à³rÝ;g®;ûÓ„2›£_-@ÈUì}ÈÇù5^g¹¾”:1@dÊŽqB1þ5m½'òXü˜¨¿@}ªáfL•ÝŠ±ƒ#Kå÷UzoëÞ­0s´m"¯ÊYy@@ÀÇQÓ'zÕXÕd@wgk—®p=:gúÕ©öîi7:¿ Üg·[J1HÈ{ÜHþS~úi ;ì/sÛŒ_j™V4´9}‘Ò¢*eXÉ’=Û@òâõ<òÜöã>ÔÕ—lÇj²0¶þ õ=0•rÍ3DJàAuïpYþdÞaœàñPï–Id©ò˜•r„äã#¶:RM18ó r±í…\Àw4¦ib‘щÈÁ`÷ëÇçøÔ¨Ü«‘Îòƪ¸ó .žàŽNNIJ—÷sˆšCó('"\z;”ÖFŽæf jùíÝÛ®Fxã×µTeS$˜–[w<„Ûø2xÇøVŠ™ì·¼1‘Y×væV0eP8ãyéQ,xŒªÃ#B½\É’«ƒŸ\óéOØþH—j:å‰q•`üq‘ÓéQ@|Æ.ù$;€/¿¹Ý޼ŽqRÕ™¤I7¼¥Â#FK§Íìÿ[ÔÓ¢’e˜ù[â`™\¡ ¸ÇN~œi»ˆ±ˆÅ¼³¹¸9=1žàJyýÓ»2L}àAõôÁÏåV´Ä.©n\›srÍ÷ùÇÓ¯zl{ʬ“Æ_|d²’0}ˆ8ÿ΢–DK¢Ì’:ã÷ŒHÛž™8éïRÃ(1Êå‹£ÊêÆGAÓ=~¦¹jݱ§rA(KS{ZbÁv(ʲŽzç>};Ò5Ù K–só \8äãÖ³ÙDTÆ’ç!cv_z²JÉä´nŠF\ò\‚>†¢”5,ÎÍq"G,[y.NÒFr8xÏJŽ6ó6Ƥ¿”2C¦FáÎzU•ÚF v HÜ1Ÿl}sO¸C5ª˜Î–n-‘×ßðý+¢¥NTT`yÇÆÿ Âaû-x§C*æS§™|´ ïdçzœAƒ_νc5‡‰îaÊ¡ÊË‚9ç>þþ¢¿§ë¨a¼Óf†GÿY ,‹È»‘ê1Î~•üíüð´žý¥üQ¤4Fëì@K n8Á=zŽœŽàW£‚Ÿ´Gzv<(nxX4J®Ýá°Ç?Ò•b+ WQÎ9ÉÃÀÔœª3†P£ï»Þ•.ÆFÖÁåºàûzw®©FÌçV p²3 ìP@àE )cÆ2@#ñÍI¦$…RBåAp q×=i› CüznÏ·©>õj7E!ÂfFÁl8Ï=ù©ŸkKç"ȈM½þ½Å8Bø†FR¼eˆ}¸¾i¦BИÙC`’TãžÃ4ùU‹a‘T•í!Xž¶ç¦+AÖ& ‘#rÛˆ÷öÍTŸÉyåW+‘rG§Ö†+ö…h`P‹@8 ?Jå©Ùq‘8PØ,vÀཱིLž4X(É*üà±Î{’)d„Èå‘@Süy#‚Ç|g>çÚšÀqÎ|ÖêòJãÜÿ f©êSw#W‘J,Œ±…\¯A‘éõëR¢gOvGß á¹ÏâzÔLD‘œùŒyùÈÈlôúÔÍÆ‘¡cS’[9÷qÆsÅZ˜å —yçø~yKc¿^ÿýz™P „›“o˜Fàp·_äx¨P‘ _.5_‘7nÚ}½+bÒØÈʤ2¸Â¿Ë†Èêp?‚¿kô/¯|?gù.X×`›îAÈÏcõ¯7ª%èvá$’?•€á`İAçð¤Þ0ei .q·œwäš`ÚT±òÀç ŸëS ¹i#ôÚÞ¸ëÅzŒóµˆ e•XméÔŸzt{V5“<®FìóÎ1UÕ³ ªªHέJ›Ô–bÀqž1ü³B’rÙv12üЧï2Aü²?:‰de¶v f£r­#;m>¿.=½êB¡ v…ê»øü>¸©–¬Òú ӉЅö9ê3þ4×.±6#ëךqRYÌÛ¸JàãÖ„M’#r uþF¦ÅD|ŒdŽ2W¹8'w§áíKÃfÁÝÆÐ?ZYˆóB+» ª…Ç>ŸJ…IÊ’²d&æ'“×ô¡;õÇÍ*Î71ëSáU”ÚMÙ ì9éô©©Ë`²H›H+sÇSÞ£ŽR¨Ä1F`C'·ÿ®¯™18Ø’8ó9>bÆT–UÇ íךqu‰Ó~`ù‰ô'“ïL™UUJ–ãq~ÙéNŒyvâH€Æ $ŽƒžÔ®Zz,R’K8$ƒ=èÚc‰[òÜø­»¶üáW»…$Ãü)‹ãyæB8'¨ü: Þ-X–ÉÙ”ÊÏ´,Œ |À:õ¨ÖU,À0à`|¿tûŒð)YÃH ÔÀÝŽþ£Ö›€n\¢ìpxÉÈ{Ôs\, ß±vï#"6À8÷ëNP¢OšE\Ž£ŸzÒœlÈ©µënÎvºÑlõTšÞÜ ²¾äRqßœ÷«i¿|Ѝ‡w!˜ŒäõÍs>¸ûO ]²,r\i®èŒn †k¡‘H™¾s…8Ã(ã#¶Ò» ô8ÔFŒ^ Îñ†àlqÇ=ºWâü Nk?ÛºÏR ¼w¾ ´ qŒðÏ?þþ ÿ…~Ü4Ĺm±ìásœŒ¸¨ÏNÜ×ãïübÆ(ÿj/‡wÍ$qáKÅ”º‡hõϘùç°­iêÅ8Üüó·¹’M:T¸b7Úº„@NÝócê3Žæ¿¦Ï‡7cRøà]B?ô‰ot9¾V?10& æ¿™+ŽmiDW¢³ˆxÏ#>žƒ­FŸ³v oÿa…7>wøfÖÐÇûý¡Ž¹æº%¶¦mhK±1FQ¶T6O·|cÛÚ«ºB±ùG<}ÔÔ³BÒ]–Á’M»Ënq9ÉÇåJ!†(¿ÒÌØUuÎr:žzäkŠv¹ÑÙ^ ܨ7mP`;g¸9ö­Ý‚1$VO³¤m&YN ’qëÓéþ g->ÂݹÁcŸË=éø‹tHÅ$?p§iã9䜟zqwcù ÚB¡ãûÇü)ÝšÚÄ,"Š0ó%8 üjN9è3óÚˆ™ %‰p»÷£aÈïëGÂA*í#ëÏ·$sÅ V’0$sæÂI?È£‰Ül¦6¸eA">?J#iÃ:ÈL~^7¼ô‡ámHÕeVû<³à’NæÈ=ÿ*ÙQlngìŒÓÆ»<ÿ›‘†u*A=¾¸Ó,Ky@СܥäÓ=1þsÅ~êß¶OÇ­An'_D«°Çk`‘ÉppkÌõÚã­g-ž©ñÅÓÆòؼx÷eqƒ°ÞžÙ«ú»±<çô[6£mË{kÛº@»qÏ~•ÂjŸ¾h¸m_ÇžÓ¦Bs š¤Yäñ»ñç¥:¾*ñMÛy÷šÞ³;%Ì·Ò³ÈqŒ»óÅs²HÒÜeUbc3åc‘ü9Å(ÑKqÜþ„õÚ‡à^ŽÎ.~"ø}§1o k1˜‘ÐA' i±Ce¨kZÎãºsmbY"çæln<ŒœŠü;¶Èæâ1’<µä°éÇqúÒOu"ÝIÌ-ål3nÀbzëÏJ~ÏR®~ÀßÿÁB¼gª¼6> ñEã´dÆÓÏBAÇ?x‘‘ù~uæšÇü[P^^ƒðöÄ\—;Åþ¤ìª§ "ä㟯5ùŸd¯y$ l_QRHaÞÙÏ žxéëÅtÖ?ümâ ÖþÉð_‰oŠ“ÿÚTì½Æí¸sc§Ç~g8êzzWi_²ÿǽj*ÏᯈáWUòæ¹1‡'å²1ŸJôý?ö ø÷y,k}¤x{L‚^’\j „=ƒC‚pzÖ’ŒI¼"Ô¿hOŒº½Óÿˆþ(’'Ì {å†9í´ qÆ3\.§ãŸë~tº‰5ËÙ ,mJg g˜õô¯´ôÿø'¿Äˢϩx¯Â6KÊÑÛÅ,ÏÛ¡È{ëÏéº_ü®Æ1êßïçe8•,tÈÐßÃ`g<ÔO–áf~[­Ôò°˜09ë8%Op=ºž´Õy<ÂÜHÄdùxeäõÈí_²ÚWüëàí¥¸:®­ã]fEŒ€N¥ö|Žx"  õã#=úó^£~Æß³þ‡àÙuB¨~Ý=Ã:Œ~fë“Ïsß ©²°ì~9ÙxYßÉÆP;ðxÉëëŒÕý>ÆçT¸1ÙÛ^]¶ÑenÓlí–Ø©=ñ_О…ðoá>ˆÄé?¼hpvéq‚ø8î3žÿ5è¶žðΓkåXhuŒÁš*·=>Qê3U–%Àþw,þüHÕ좛JðŒîÕ‰Xš="U2Ÿî©p«ÔuÎ=ëÑtÙw㾸/øW:朓.Z}Bh!LöÏï g¯P>µûêÖéª*ÈcF8,r9ôêo³DÏÁbÀ‰’½pk*•¬ÍRÐüIÓ¿aŽ*$žÓºy$ “êe»ýáµaž}@¯GÓ?àž>6¹¾óu¿ˆ>±ˆœ²[é“HÈ~R&@Aà~¯ÖàŠgqòG” ­´žÔ€$—*PîíAãú ¸VL´Î7þ åá…Š¿øâ‰6âd´²w^2¤…ÆsÔž9èö°gÀèu÷§Åú‘IjÍȇî† û8#±BH#o}¿­,è©n—¿'h+–#¡9éÚ“«mŠå>eÓ¿cÿÙëK[‡>±¾ÞÛÛd’U\€0ªÍ€ ã©9¯KÑ~ |(ðõŒI£|=ð½´E€óÂ6n8Îæþ½…zt»¿³ãš'E2&B"ðìOõç¥JW‘9»I+¤çКÉÕlN™‡oáýOc¾—¥ÛÇ×1Ú"êGA×5|$30X„çtéíŽÃϵOæ,²mFÜÁ—cúÒ«˜®%EPœv'ëJUˆÔ ê‘„•°ì6‰vŒdð?:e°FŠF‰rÊ¡fÚ¤€G9ü?*J†•PFr2Þƒéôþ•TeÔ`Fê]¦sÛð>Ýó\2m‘ÈX«FÛ¥P:•ÂŒõéJ¨æ$J.Ï”0ä}}úÔFdòÕYŒr“–çÛ§°¥R£*3Ƀó{óŸZJ#åB¬Ht×PW’2:cߎ¹úTÃË så½.y‰ÿNµG|›ä ¹*  „…ã×DË_h/l¢NÀrÒíÆî= Wi™™ ‘,ŠÏò•l8cðÅX÷¤² ŽSÏSúRF@HÊ¢—Ø­éôíÍ &‹Š±ÃÆ3Æì3Žsú}jHd²QÁÛ†—îgëô¨xXÚ&ù2p‰æ–Üsß¿=ê9v˜ŒÉ'îðG–§$c¯O­f£©E¼ÆóK#)ÄHÉÇ·ùÍ@Ó$ríò²“•÷ãô2»í*±²rs»<õª241ÛÈcŽ™ÞHÅPšÐ¼fc îXÆ>`N1ÀÒšÈ^ ?Rsø~^ôö>^öˆny#=0xàzâªNñÈåd72cr†`T‚0:ž˜ÀD†!o2®«Œ³’O§áŠ‘äÌcÞRÛ¼Â8=9ü3P8v–<:à‘‘–' úŸ¯jÊ Û±_zªK(±ÊOÍœ=ñך«s2°“ ³ÆÆŸ\Ôº‰M$ÏRãêÝzÒÜFZb¨±aTñŽÇ€3é××¥e7yl BÆÅ¥Ûn‚1»¨ŒòOL§¿­N-d†è™Zd$’¤Þ½ð¥SÙçIÞ±ÈFРð÷#‘ïSø¬jÕi ”Yn6Y3 …?½* –<äàwÈ(—d±-Ç˹œ¨Ãc>ã)`ÎŽ¼( €ØÎ>½¨qc–pX 8c»?NÞþœÖìÙD Ï’0p“»œ©ù‹/`sÏÿ®£1ÝKnä³m‘dp¿§¯5y†åeŒy*‡%$ÉÏLc…TCå*,›d@…]²¸#ØdúVµ•ÈC :ÛMÃå²AéÐuôýjëÆJ~e |Ù éúT6ª]˜#©cžÃŽçðüiï#;FÌÁÛ’¸=N:ò=éA´‡ruB!ù%Aæ©UÀ=:RÄíR³â!ÐÇמ½é»(CÅ9q»€}A>¼ý)¨éq$yEC…#8b3Óò=½+ ÊWØ,[Œo’u æH‹•ÙƒÉì:ŠBÀvs‡aʦ:1çž§š®ß4ád‰Q‡<“ž2HôÿëÓ³˜ØÃ€<Ì//ÆìdtèOãŠj-¡ÜsÞJnÙQK²ªì,ÿ3N2>†¦fTQ+DSw\œã ª3*C+ìd‘+#Ӟԅ晸ˆ3®;˜d“·qš˜?xDâ}’2Æî¬ŠÃcG‘îqž¸…iK˜…Ÿ »ðÉϨü©¬Å­p"Ø1‰Jt=<úwèsL‘KD¤:ì߇†=ÁäŒWS²@1fŒ;9EË6Ò7Œóòÿœ WÌ·É"áÜp2:dz{Uy–‹1Ø'+µUJœŒúƒ¥81f˜±yABaIŽÝÿ*ç’¸'©:”’Þ1çQʳ¸ àúžG?Z{Næ5ù¾Ñ bc¢ç¨ç=¹ÍP-°ª‰X!Ïñ(ëÛð4ô+i^2<ͼí8È¥4´-¢ÌM»Sr’ÅÂc¡ç¨#ðïøPí;\ùlw’ÇÊ`2È8äÃ銤dIJBL“ áÏ÷8¨ìxü)øŒ];4n›  ’Wð02zõÅbÒl…+£†Wi0²íÜI† èGsœ~)‘Ç<Àþ\!Š‚ùçÏ_äy¦H,²GördÇă“Èç'åTÄÒ%¼d }í»zt*8Î~ƒš#JÆ—¹;‘ 3FŠ ,òv ñǧOÈS^RÑŶo(` mÏçëŸÆ›§í;yR! ²’AÆ=‡ô¦,»¡ibDH es³ƒÉõñ\õ.ôšF€ Ñ”\LÈe_˜=zÇ×5øóû}xFæÏã姈ÄLmõl—Ûò† waÏ8Ï<÷Å~ÂÆÑ´I.AU-æu8ôö÷÷¯‡?nÏ[öl²ÖáˆI.—w‰£èŒ•oAŒã’{W«€j.ç.!»‰?î±î¿6F?_ʤ ‹tÞ>Nƒ¹Î:lðˆ/6¨XÖ5ÃÃ¥9°±©ÁÏcòî¹ïý+º¤îÎ(jõ†'rìl‡ÀäûSã’EW‚G®ÑïP6J‡àg–³¸ûÕÈØùaCŸ/3}iÂgG* UD-Fa¹ã®x朎̡Äa@áÇN1ÓÓßñ¤HGîäs»1=ÀïD¥Ze‘]rW’½õ¥9Ä[œ"ÆÂ6ã ¹¡ü:ƒŠ!YZí|Â$HßçdŒ{S†Z „§9aÆH#9ü=iÒ ’>×|$©|~9ŠQw"Öccc¹€m²H¥_sa@'ŽjÁ E¶«©äsžzý*ýõÆòŠfP>PHÀõ'ñ¥ù†7‘™öâ2Hޤf©£XR|Î@w#©=?úÕITL¯œÈÁ=x53Ú£$±ù•¹Ê÷zv¥p˜˜6ØÀ’0 ÙëƒÛ‡áYTv)!Ы´¤Ç±Ô7;ŽÒê}ëQ†u‘ÜH¹iJî\ôÏåùVTeÔ©99`P~~0xŸZÐzK·Ê% pPŒÓ?äÕr'Žîö>Ðýt¯j?,»}5½ê¾lJJWk cžw#<Žx¯Þák(¾C »Ï*¬CÊ’27²žKg°Éçè{×òùàÏk~ñ=®§¥]4B9|Ò n¾¿çý þÏíüqû<Ø[jǨ\)›íž@À`¶ 8$¦q_?›ÓVç6¤žÈþ_¡·%ŸËØÜe‡Ý)Ϲd.N× dÓYˆ¶ã“ÜMÀbAÎâ¼gû~Uè&s6„`^-¤ØçѸïKº¹åòð2Ü’=3Ú€¯æ¤¥<´UíÎ1RÆÉ c°“•Éúð¨wAt,±˜Ü |ÆCú`Õ›•šÞXMŽ€+FØÜ¤Ýø<€j„¥ÏÝ ˆ0Nyõ§M3ùˆà`8Æà“ß…kA‹.crÊÈÄ`c#ŸÂÒ³1Š<)ûÇÿס’YNB>ñЀ8õ&¢Ž%i ù^X$“Ïÿª¥„[/&ÉL›œF:}?Z|’íón;†>lǪ' Ãädì)ʱˆw ÊFq“×'¦qK”®a<çi›çgŒ†ÆqÆ1Ï¥=‚…eRpP:õé3åÈA9É9jq#•'i-Œdg>´8ØŽk‡1É»Œô9>õ! C´Èñ’>o“™õ¨dxŒ 2®ÙÆàzñÐÓZi%…Ë›;Ka¾¼õ©åeÞÄ +±FTrÃ'o>ÜôÅDÄij¶Ó¹lž)¸,7€nqßžÔÕ!Žå‹=1Í4Ø'©ck²>àqÛŒŠ™œGŸ8ÞÃåQÓØóÞª2 bŠ?3*gõ§ªÆàw=G?_j¤¬!`¡å}ùǵH¼SHbƒäÀQÝœ·CŠ‹1†óÄýr?/Zˆ!uq#©$dc½J]†Fp¿…>fM‘:ÈLB$j:±ëÿê­;&9¼»¥ŒÆU³œm'ŒóÇlÖœtÏ5éåÄÓ2’7ãjãpëÉÏ¿~>•àß³=ô—ŸðO/‚×?h»øFÍw9ä°ŒpÊsŸ—p+Þ‰lÃ'k>,YøûíëY NEo6ÞV_61‘Õ„`þÏ®zå- ØþŽâA)ý6¶\léØ öªÞZ¸¨$9ÎO^{W˜|6øÅà‹~¶×<'¬ÙÜ¡„5íƒÊÅ”œ’PN2Rzô˜¦ÅuF*@nºzu*|5Ò ×:¿ü-l‰Ë3êQàcØçñU LNjÇ¢¼›¦(FÆ^6ôãçŒÓ¢–9"ž=¤na–e<ž¹ëú×ÍÏí_ð L¸š7ø…¥^e4øÞv9\ó±O¯NÞÕ店íûðWO»š->ÇÅZäcîl–%>ŸëÀïÏîÛ¶x·ºnö#Ž?N}Á-É*pNÐÇ¿§ù©ÁE4²L4OêÆð†1 ýA#BÝ'hcž9=x&¼âÿþ !ñ[¶6~ 𽤶À]嘠Ç铞IÀãÒ´öz*‡ë¶XËŒÄEå”g¾zã?ãKö‚fgJäîÛŽÞ~ Þþß¿.,æt›ÃVry™Ým¥eŒdçq9éÅyæ§ûWüvÔ­W<×-ÜÑV£ ªŽ?úÕ‹¦Ú¾mrÌy#T8p§<äçÐ~b±o¼aá :ÂcuâOÚùJ^A-üJu,yçßú×ó“¨üGñæ­k4‡ŒüMu;—I5)Xaúõ8lä’}뎎îgwýö騽ØñÛ-þ=q]T º“súÕ¿hƒD2Gñ3ÃåΥǞs×£’@À^¤Ž9®Qý³>XéÍsŠ®uÞBÁm§HŽÙè0G'ǯÂ[§if;_wk·v yÆ EW„\Im4¡¥„7C’G·=¨%½Šæ?e5ø(ÃTðï›§xwÅ——«?—öv¢¸Éç-€‰ö¯,×à¢wWs‡| ¸VÅ5íñbüg•Q€yçë_™ÒƯ¤o‰veb‘‚ç‘Û­_Ó´ sX±Km3B×5%•ÉYm,eœ c €Ž~¾•pJ(.ϵüAÿø¡qj‘iÚw„´q B'û+NÜ/L“ŽsÇ=kŒºýµ¾9jZiñkú}˜p¸šÆÁ#x”ry9Ï8Ôzñm'àWÆ-rhNðËÅóDTùNÖ&%b:©ÞAçžÜw#­z~›û~ÐWð7Áº^< ûNªˆϰ>ÓØòqëÞ‡b½ãŒÕhïzõÄ‚çâOˆXÄe`œC€sžÿ‡N+Ì5x—S¿ž}CÄö£3¸’vkéKÆCÜŒàújû#Kÿ‚}ü_¹ÒêûÄ~ Ó~]Â%’YÙÙÈ óøzú&™ÿêÕä» ©|IÒž[ìúsº…frƒžÜñSt˜“w?6e»¹ŸTk™]¦.þaWrä’NNXäŸþ½Vy ;•iŒi¬œsëÇnد×Ý#þ ïðÂËUŒë¾'ñ¦¹k#(‰æ+pª¹È݆Žàúcšôm?ö#øazŽ|=¨êh$;Eæ¯,¡†F zjNQÃa$Þ_•;¬ŽVF LäŸSÒ‹xžá-#¶x¦óDžW”๠@Æ|“Ó'ó¯è[Jý›> èÖÏà G©{A#–ÛµFæ'Ozô«‡þ Òá³û„ü9e P°ØÄ à`sŒgü*‘qÔþr-|ã}^δÿx¢öÝ&_ì‹§œf=˜dÕê7ì×ñÏ[²·’ÛῈ-ðÁUî„pçxá°Î=OAŠþ‚š ?´B!··Geʘêx*x†ä}†0˜?Éâ´T‡Ê~蟱/íyi"Ïáí+JŠ6ÇúN¨›‰Æq…Œõ9êF3^—£ÿÁ<þ'_§Õ<[á &.8 ,î9mÆ>õû da‘³Ü¹™ç=iwÒ`2§§ Ÿ¥S¬R‰ùs§ÿÁ9ìØ¬ºïÄËòŒÙxtí248õVrÙ'ùëÓ´ÿø'÷ ke]C]ñ–¯°’<ËÕƒäÀÀýÚ¯9ÉÍ}èx¶• ›@läŒñDZQ ¸ævn ’¼óØ=?ƹ%UßBì|¯¥þÅß´{»y[ÁI¬JŠU_QºšefÏ,C?×ð¯NÒþüÑáuÓþxZ²nV}66ÉÚ *xÀâ½mÎ%Tp;A>Øý{Ô˜SvŒ¡C´ ñßüâ—¶h«Ň„|'a ;ú=–mìR Ààr3Œ­m*¤jé³ìÅæ`˜=G·<Õ¢U-ÂÜ~õ—$`ÿNŸLÓLØ”†›F#ÓßÖµSv*!XÚÂK,‡…'·ÌOéM{xÞ/,ó9éÜg½K`(pá$ì‘·rzñùñQ0r$(Ò/¸íO!NGN•£"%R¾b67Œï?)ž:‘Ôu∙,¬LeW©ÆÜpGüóP C±î;¤V(#¦}³K"­¼°«+çøIéÜëYÊò`¢\L¢‡ Ý$?\wÇòªFÞà”S–fVÀéžIØ«„ÄEGdn9ûÞÙïÏò¦ µÎB*>Yô‡×ð¤¥m BF‚4 dèJ€¿†iÒ– ]]'çRû›ƒÖôt‰$R¨pHÈú {šŒd…ù"DÉÛþx­¢´ +¢ê1X!påȇ`t Gr1Ø:Õ7¸wdC¿lgëÎ=Èü)Y”F‘ïqt±€YÇ¿qëøâ¡„åg*Kìp[w@ã\µÖ¨”Må‰ÕCÄF9õü;~5+2E”‘ŒÝ·'ž˜?‡IÏïY˜Æ ¨gh>¾Â¤‚ضÇdj€1ÓÓÐR¦ô/b}È"*ØbÃv èq×ðâšËhvF¡· yÏÊ«Áï–$ð¹'¯ÿ…+HÁ73;ñƒ…%OOzìÊL”°’hÙZ5¸y‡áéLؼ‚FYv¨ÛÈØzþÿÕU£_.5Ä’ýÌ´Çÿ•Ên~vS‚bÇŽŸZ¾k d‘ª¼±Ê3cteß ƒÊŸ»tÂ9ñ¹óÎSøÿ…Vl¡„|‡olýÒZ°ÅÎÁå«mR9-Ç=èç±bÈ~À‚=ŠÌrОÀži³—£ft+&8ݧ¾O@{þ5!0Fƒ!O9$מ1Þ¨È×FvgËÌOCžÃ5Ë=͒Жfv‹vð ŸQ8ê$‘®Ü2"€1°A<ǯ_Ö˜­ªFñ´`6àçùëQŸi’EÜñ„õË.A[SÔ‰Y|ÿie )œÁRyϧHÇ9\` Ô÷®tše&5ä~U‘‰ØXãÝÂãÚ’w0ÀbOÝÿxã#¯éÚ—hb±§Ì rç¿®{þVE0‘·¶;Ž9Áªˆvqq,à’|³·9#ÔÔ>ióÑ™ÙUŸ”ž:÷¥ûˆÎâ å¿OR:Õw †$ˆBË&0|géÏ^ôä—BÕÄÜ^gÛm Ë«T{{ŸÊΌɻÎU1Èù9“ÔS|É™‚±' ÂŒñß‘þ4ÒÊÒ(”àݰc¨ÍO)œ¯qÊæ+½’ pT`(¿Â¬Æ?<–‡kðAïéíšÏÉù÷nbí…Èþñõö¥K¥ƒÏ%+ÄnÆÓžÇÓçš·×%{„’ëc–•AÆp§¯^~”Éч ^H?ç­C%Îï½½Ö5åÁçƒéǽ0\E+\Eáp ‚xÉ<þ÷Ⳋlv%*ÃKWu''N0¼_ÀTlÀE"¢œ`cÃë•6y¢D6èd7 IÜ1ÈÇ~µlQ&Û¼%~\.Áñú žV˜ÔF,q‹‰ÌÕOYO@1ÇÖ˜þb¤Ê-Ÿ,Û—8+Û<õ•D²4nûÄ{ƒa@á;ƒŸ~¯ÿ-ÙvÆfÆBóƒžAÇùâ”ÛhÙ+!í$¿jS’‘íÃFsŽ=EWPÏ"¶ì&2A'äŒg¾§4ï5LªÒ‚¡HØ6‘Ørj'š6#WÇ  Êûú~ D)²ZMÝ–“tÃåGÍè8þZ\Ü9Œù!–/œ¸Ü¡ü)cv…‰S:(V;z¶îaSE4pBMê„íÁ!pIÏ5J÷°%¡1ÈIt•‘²V"9 󚙑÷¨>|ËÔ(,«òCA³µ$ àãüôàóT$Ä€Rܪ°P¸ÇŸÃ·jŠ”“BlGY2гme’6ÿµîOÊ¢` 2±Þã„mØã¯>”¸J³¬3a·sJ29Æ@þžôâäL³€P’À`àz’>ƒ¥cJ›AqA$»•LEЍà‚0 õ¨ÕU­Kù²Ä ‚2TŒƒŒ8¨ÞAöVóÿˆ`ÐG®ryà⥸·lÂá°ëÀ} p3Ó®{~µ´£vQìáŸcûðªWpη9*ÛÍ2Ÿ/Îãp'®ry©ç98üj£I6é¾èþðÆrÏaMËMe“.0 ´ÉÇáê+:‰Eܶ…¾Ì¢B’±`'rGÍÁ¡Žay¾Ê]ÃíB[Èç8Ö³äò™óZ> ¡ëøgóÊ­±gc$nC)íëJæV&/# áä}Ä F?Ç}ªH¥"„’Bß(gž}¸ÿ?g†_µId,€>Ó“ÏÞü•$b" 1Œ`qŒ þ=N9úÖöIÉ“²¼Ä–…bX°¡S,HëÛ©9Ï2΢(Áò÷ƪZLîf~À99ëš®Ó4h‘½}ê+fF~2Ù,KÝû,â¸Ô_5Æhe¦¼gŽ`!ÜrÁ‡~^üÕ9ždlòÇ&üº¼üØôëÞ.>׉5ÀBǾ}yçñ¤n wb$IEQžä’z§=IlIŽÒËœaWi烜}yÍN²Lepòd^$Ú2¤víÐqøš«”’Ìü¹ }Ñ‘Žœãß=ª9¾-ºYg–9ÚNÏâIY©jiI\EöhóOÍ×סïøÕy€–ïl[J…Ó–Ǿ8Ó¸ªYVü¢ïL°Ü»zñ“ÐñÏJšGxX‘wQÁ$þ˜úÒ„•ù®‰`i$hãòØ+^2>1Ï¡©|æ•È…ã˜ÇËŒžsž1úô5àHÁFÌsµÓ%pzØ<š_ô¶HM‚]å²3ŒçÆ?¥E*jM2G30HöLÑðrÊ9¯LŽ*#™Ì Àgi7uÀìxãJ ±¼¹rUˆbA x§¨úSD9C²ápÉl?öÅvÊFV'++Gq+쪅ù¹.=éÏÒ¥FÜ] ñœv—î!‚xèÇ¥Bev*Ù*ÀŽ ç¿J"YD*æT\óCãwNFxÁæ¸=„½£ÓAJZLA.#ti¦—nAã08듟JòŸZ#x›ö_ñ^˜Ð’[&x/;—æÀÜc8#5éÐ6'i%8›!vÛA#Œûúv©.SíVOhÛeˆÄI*;íÏ ŽßZÖëF55Gó ­[oÜÛJr¨Äà®w>¿ˆÅd«¶ÍÁ.BÇ<}kÚ>:xdøgöŒñ^ŸöU·hïåUE|l³€sŒ õxëme óFTãrœŽÜZî<ôìÈЇý؇ŽJއëþ53 wÆ\ ®:¹âû¸ü´VIÉü¹=;æš#I~gWiu>¸¦®bËiȃSaÁÀÁëÖˆÂɹ ãoB{äöþJ­Ö$É%ÊíÝœ¶:çÿ¯VTùE&P%*ä‚9 t2næ±;DT‡ /PI;yç¯NÝ?*FòžBˆ…J°õ‡qß§µF6’¬ÙD<…ÎG„‘%Ù¼+‚~óØÑ!½KJé$È’4) œ7QŽ=}r;SUQ,Ü’2Ç› =½ý:ÕC•‡(Ç<óôÓê*y1Rä *‚À:\Ú‚v$Kˆ¾Ð»Q\gŽÜ}já™EÑnW …8'Øã©éЍc…/·ýš'UÆ7g=ñüñZV“`¬Ë]·¬G^½xÍ5€ØÎo0“òt\gŒ7·Ò®"5Ûþî@!‹?^;Ô26¤ÓËŒîÀHø0{õù¯Køqá |gñ*ÇFû<Ûnßl­ £88=?g5•zü°~BŒ5À|Sã?›M"Ò;¸¡ˆÍ.ì ¨0;·¯çÍ~ÎþÍ:^á?„PiÒéi¢jP²$ªÐ·ÎøÜ0xÜ:`{Oº?¿³O†~iÑÝÛ[O¬ÝK–žå7q×ÎÓÉíÇß?DÚx^ËK”Nö­ÜÛ‹ìSµOcîvn:WÊfÉT÷Ç¥Bµgòt’CçÆ¬ È͸ ¿LcÞ®ÞÚØý =”“+œIëÜ*€¢Æøãmø'·ñJTÄÛc•$p29û¿Zúž*M²±,ca‰ tÉÆN”ÂUPûJŸ•‡åS¢®pÑf0 -R‚¶ï÷>ø8܃œŽ¼÷÷«6åXÉYsÂíL`*žÜžÕEW¸`¸þ y5;(‹Ê1ć Žíôô§ †"¤àöUä ûU!¤ˆîŒÓ‚ þ»<ñÇzV\îvQFBç>”¦$s¹"ûààýH¥eÄl% ͌䚛Fr°Ô‘Îùaܼœç=*h×/³æ–V9< =ñU”FÑ•ÙT}â9<)ápƒrƒ–Ï?\û{TÙ™\¾†(‰’;¨ŒÊ»T“‚1ŒãÓô¨ÄqÜmBÐdÉéíP–ÍϘ™ÚÜ18cõÿë{S‚ÎÈÁÙŽAüx4¤ÙºH‹äfc¤‚8ú•8Vl ÌÀ€ŽõþTÈÝ•$VHLœì6²óÿÖÅL¥Ü¼»²¸É £Ž½h¸œu#@ÑüÊUÙdà{t鎞õ+ì·wþóT÷üýi臒᜹‡?ýj€4FB¸2&\qÉêÎiXÒ"¡ÀeË4]ÇËíùÓ‚.ݬRÐu¦”PtÎQW€qÉúÕ†`JVRr’8Æ0OøŸj°¥¹YU6Y°NAN§ëMufS:.åq€þi#/œ9PTõªìp«(#6AíZ¦š3r'f$dåx$ŸlTq6ζ‘–㎟‡çL>l²ylU€6yÇÕ€‰å¦Ä@[˜òØöíQmAMŒ;»“¸Ëœþy¨â$Üï^¸Á,¼Ãð§4Ѭ«ò,@Œ’§ ÿõèíhŠ‚NX2ŒŸ¡­à‘\â*9„…²ʹ=}sO|—Y6’»x'ŽOÒŸ„ˆ³´°ù±ó}5—„9nA yÿëV’h—&+* nxÉ(2›úœÓ@É(Hû£ gåúžjᶨ @YHÇÒ¬‚ÆÕ`žOëÅeËpç# XªíŸâê}½«RÇþB°#¬Ñ‘ süë%ÕO&ìãh8ö­KgXo,ñ•Ú1·žáZSƒ¹wGô³ûL’ÿÁ3¾ˆf˜Im¡ˆY1Ç—#†Prz=F:ñšú^2­±clôÎñÃwú×ǰuè¿ÿ‚eøFS2Oö-GR´_$“½RîM¼úí#>§5ö<$‹×c2ä.JrN{cÐõÅzwG4£g©:®#@#VÈ‹ði$ìðUq&C†$:ž™Çó§‰TºH<·/¹zžF?­Fé¡Rî…º¨ÏsŸüv‰Å™¶~:~ÛÿßÂÞ?½ø»á‹º.¯vƒ]UQ¶Úm©r®Þ~|?í*ú×À‘_¥¶›©Úcì·N«“ïpyÁ#Ôgœ×ôçy¦Zj:uÅìP]ÛËñ¸ 8Ào~~£5ñŸÆŸØóáïÄ¿[k]ÍÇ„õÁi$ é° ·–Mő䈎 ±Æ99ëNbzŸŠÚˆ5 *ä6ûSÑ™ŠžÚW„°˜ƒó@8>+éÏ~ÛŸ¼;au§[k†IšmRÐNð…p¤#’1Ï+«ñïì'ñ[Ã)=dž›Kñ¶•¯îb&â@Ç B7/S†äsí^âÙïâäjüFn¨¹ßmoö„òÎr7!*1ŽrG=3‘]\©˜Îèûãþ 9ãItûk{oxb;ѱæ{‡hØàd„2Ù8'ŒŽ˜ÁóKöüøévŒm.<7¦fC´A§ Ë@õ÷¯Žm¼%â-F6M/CÖ¦*F!Ó¦-#g‘€¤†du^3ÔW¢é_~0jÎlô¿†^,¸f“¥±0¸±i6Î9©{•#¸Ôÿl?ºž§0ÿ„þöÁ2 VIhzg™íõ<ôε_õ-W¾ñ„Ê5Ibç¤!/^:õ'ö*øûªH× à¨tä݆º‚Fà ¸.î>™¯PÑàŸ_/a#PÖ< ™€,¥¹Û´à€¹Ç\çz SÒå;ŸÏâ]oR²oµVôÄ3ºâéØÉ<–9ë×ü*¢Ï,ò¨‘åYÈ… €O¯Ôw¯ÒÝþ ǩͯˆ~!Y—gö-0†\v_1ÛŽ§ ν3ÃßðNŸX錚njiÉ#xjëU—bîmCP’U#>å'>˜èkÐôÙ“à‡z¦|3ðÌmùdjÅT㌜àq‘éÅiIüô-­ÈÕÖÚ K·…‰[Ì9äg×'¯¥vúÃïø éžñ6¡µ‘] Ò§sÓûÛq^xã8Ïô[gàï iê#±ðî‘nЏÄVq«^‹¼Ûšé¬0HÑ­´+ Ç\ÞÜqÞªMXÕ$<ú_ì§ñãUÔáŠ×ᇉ#iwn{Á!÷›/;t'Ú½GEý†?h ùâû]¶‰¢[ƒ±Åî¢fxNp~HÁÝØã#¨¯ÜuŠ$»6ÄG!•·c#†úTÛ]åŽf}à©+)àžÜïÜõ®GU_BùOÈ þ ÝñæY¤Ö¼yáÝ=½œ’òqÎY‡¸uõÅzw‡ÿà›þ·›wˆ¾$øŠèJ mµ´…3œ«0'8ãŸZý9o-ŸåwŒã¯êsõªÍ>|’¥þ.ªœ÷­UB¬Ïˆ´ïØà…«Du6ñ^«>>f“Tq¸ÁÂýÓŽ00:žµèÚì“û=éÉöSðëI½Y6âKö{‡§Þrzõ5õÞÒÄå‰eAòçi錓þzÓQ‡†$yCä–èùþU3¨ì8¦yÍ—Â/‡Z]ˆµ±ð7…!²‚-¦ôØÆîx?w¨®¶ßJÓmæ0Çk ¢ýí±Æž„0? Õ±y_,ÎÖb1ž2=;Ó#m÷n@2̾SËc®?\Ö.re¨‘,xºu-”p ÆpG$z R¨Æ8Ø4 |à{wôüªSòÌYÌñ"wÈÏ=>ƒðªå‚NÊd.ØFƯš“L¡È쬱K “ŽpO{t«2Ëçä“•áWŸÇ¥Pò‘ 0Ü$1®]á¨ÏNÔÕŒ$,£ @Ü9¶yú Îwl9 I`ñÆ¡öz6O| ûÚš¾`ƒ2nòÀR8ôéLv 1ˆd©~09éúwÿŠ7H$(p ‚S®ÿ[ü)¦Ðr–0Ð6ⱌgr¿çô¨|èRdÌŒåI O'9éƒÐõ4#3Áå¦FÃòá6ÆpGãLuY.‹¨œ±I>ï׎´îÙI"YĒʲVB1Éô0¼f=Ųw†éŸÃÓ½FáÞY7Tùr£ŽyüúsQólÜ\¤d`{÷Ï¡ö¡EO¨ó6åEÈÉÚ8Oþ±¨•Éi]1ÉÎ}Åç¨ëß5Í ‹´—q€lq϶)‘¨Ye¶Ÿ›o8ïÁïC†õbèádò÷ÚH¹‡Zs+ ’¯‚Œcžð¨a#JøåŽzœS×”%'nG^zÿŸzˆÄ–ìHäHl.9^€:søÓðMšÈÃçÆA#•=¿¯/˜Ž­„R¬ ¸?Ï •%w ”yÉwž¦¦Vlw&y6ÝD³ ÛÇ,SœžÝqÛ5Uäš $>kÆÊv»ØR\¿˜«qؤ± e±Æúþ•™ûîVÝ›îìRv¯ûG<þ5ÓkEÐ-± •îÝ¿úÔÄut*Çï6æÇO?TÉÜ˸ù1Η#°Î1ØU’ÅVV&?‘~â‚0{OùÍ'õ2ew”0hÊ›aÁQÓ¯Jgž‚áZÓÛ¸#.O¼£=Ç¥E$ß¹+Îó‚výìAÚŸ!Y5DfËSœ~?AÒ¥[¨'rÔjRp﹘œ¨ÛÆ1Ô£žO­8ˆÒ'ddä³2ŽG¨E‹ âxsßÌQÒ­ÂÀ—;•b`c 6ñý)[R[d¿(±•ܹ'–Bp1ŸÔÒ·ü|ä‡vØ® Ç ç?¬ø8²”¸x·IµWps’zóR¡Þñ¿Ë4ˆ?ÖÔ/×?¥[µ‹.L£Î,Ò•òÔ»,G8¨DŒÀGîΗï(ã¯ÔóQ6ÒFɬ͜úNO“'Ê73 ¯L ç– E#–*¤5¼Œ\I×'§ãSG ªü€ç– ãÿ­Pyr4ƒx"6XŽøÈǽ"Æ|•’€ž¹>øïQËcD…ýß”BÚL“—œý)Þ[‹O.6ÜÁÉòö˜ ƒëÔSA o9 sßœsÖ™$N"óBÄ‘±™úç§NÙ¨”uX£Æ„±%ÁqÎ9#üæ¤UVÓÝ£Y €Ø9éïÓñ¤ffŒ%qß2,` çžÿþª„—–Y6HqÎîùú“N"dV³M±Š Œ9\œS¢u3¦Pƒ–Ei,ŒáAÉ<’{g±ýj¡äD‹4’È»×î“ÕTNGjËæÆÁXBëÁrªr8=Ïæ©Åso,a#xå—yBQò“ž¥N:ƒù{SVXÕ6£Å&O‘ÎGãÆ)Í»•ÇM+ì`û–26ïFcïMûSw‹iPŽÈÏåšc‰',Û‘ÝêÄäñéGîËù:F>ù$0z`} eêVň‹Í;G°Àù¢|ôý:PIº;’È¡˜™‰'œ§Ó¹5ð¿ÆÛü-øã­ø)<º‚iûDw3j;bÑ+‚¨ËO=8Ÿ@ü ø¹ÅÿÙÞÃÆ-e—v×3ZÝY¤¦A‘·by‚¤g¨9ª•;ìO9íM$aåˆ1bTøœýsIå܆FD$Œgœ=øªk:È HÛd …$`ãÔ~§žiÙÊ‘³c€–!›ðþu–ZšÁܰYÑ!ð‡y‡ïz’=1Pþ匱±YW*äz};ÔN<¸ÿ|Œ˜o‘—#¡î? u«².XÄÌcùºœ×šZÆÌcš"ðÛ‚Tò-ßõD­¤¬Îä—,ÒI8NÕ$έ netäœ:ý|}=èI6]±1Fc Cå°zð=ýy¢.ìM‘°~镹ɽ¾þ¼QlÆÌ Ìfo™~lzç¶§jŒ¬†Y%Y•Øws£Ó>¾´¨Ë"¿Ì%bûÁ Éàÿúð+uNÈW,¶ãn’Ä¡Š!$0Áéþ=ª ¦Ã{PÆsÀÈp>ý?ZA‡ð§<¾`f—r¦P .Wàzç?¢ $Sw4ef†”£|àãw¶?•Gäæ}à™8Üót çvÇçJ\yÖáùf=¸ ¼g¡ÿëvÍ#H¦ÑNbf}ß+ ÀÇôÏ5’f\ºŽ%⿼6æi)ôÇozHC=¯™åù[rÃÈ`zã=y5BKˆB~B䌕Èl g¯~™5bG ø`qœÏ<Œ~"´ŒU®Y7ÚÏ*ò¼ÕOµMö…Êù—r8>‡ÿ& I<ÅFÌ™l 玽úq‘ÅsÊ7l–‘h®èÄdl Èžf7`{ñþÔ¸ÙWÎE}ä—`Ü®zôÇON3P;…¿ŒÆf)0(K¯Ê:œã½@XFÎȉ€HÊ€O=9ëÏ_¥*±D¨šQÜ.ZX•Z%Èc$eÏAìE>9²í Úç'±ÊýIzYŠ<è’7RHå;1ë×9“VÖ`“IBñ†!¥éœõÁö4áK™hSÐÖI$c#œ±2r9ç ÏÿXP‡í2ªªeXÊ6w#Ÿnžõ²F¶ë##Êñ«d` “ŸÒšîÿ3†!¸$½Óð¬Ôœ"ô Œ/Óå§ÝTPx~@íÎr?´ö–=ñ†Ó°ù«ƒÂð2Hì3Ò£æIÌâB€1Vçמ =Q„’4NȾ«LŠxãžý+¦5/¹/qÖ‰廫H]Ä„1°ý1O"æ@¦9eˆ4¼ Qߎ{qíQ4ŠÌ% l7“v 9=}N(V v0†RYp9Èç÷ÁÆMLëÅI.ä´hÆœÉö… f!n¼çùþœsV£»xÑ•£V –=Èõ<}+.#†Vù†J/ÊW¹ÆÜŽÙ÷â¾P®»ÕeòžÜœNýkõÇþ áÉ®üáE Dcv·•öåŠÏ?€=¯É…„ ¶6A^ç±=«µMrœn:•WäBÅÕ¢#?0ê{ ”¸ì².7y§˜•-ßbO¸Ã*8ì:“ïSç/·n"T“Ôß4£$TFC„R¬|øÇ8É9ÃþÕ0Å“å°c€7§>´ Ž`#iȸ'%Aü:T“ WD³³…SÀ‰4hE¹ÚVÉgîñùûÔH%krÛYyaÀÎ}ÏêK,g;±´mÊîûÃ=OÔñ¬K4Íå>áåóËêJž`»ò×b˜úìþzÔæ1dÇ"–:“óN=úõ¦Æ‹ö¤–a€^¹>ý)Öðy·0V;[n ·§§øÕy€!wJí´c¾}Ïò«érš§h=‚Ž9$ž½Ïj˜Äñp»å1—1ó/ášÙ…Qôå”Ê‘b0J.“”`õÎ?Jž£NÅ5`v¶ŒÆ£,ï†l°n¹ëŠýOý޼)·áW½{];6î­¼G‡<“–|ÈöÆAŽÿ–‘Z¬Ù“iÞü`Ž}ò=+õëöhºðå—Âû9ü/äÁ0 x…‹d¨_ŸãN1ÏJãÌè´ºXgïy^xÄxM‚ÌÌï&Ta˜3rFön;qß­‹¯ø“V²‚çE±G¹ØÅN9ç¡àœñéÅxí®y¯xˆ»<³JeWT-ò·R:äàúת®·­i–v–“Zå̲íØé×`<ô÷ÆOÈU|Üõmu¡ü£cl¡Õ÷n¸Ü‡ÐŽ•qUÚFBBÉåþññÉ#ÓðÅS1í‰T:ÂrrÃӚ<2ÊIa’OáÛÖ¾ÅÙ#ÃZ r6¤{FNÌ®ÒG¹O֜҆±åÈÀ,q´žÿZ7¯š¥Øzîçò¡¦Oº¬L/!‘‚HÇ¥JµÆä1\Ë 8³JX©%C}Þ2}i†BVY"‡`< y÷¦©”²)v]ëóqŸ\öúÕ\‡&J\-£b8\¶ù¿ÏøQ´ìGi–\œ&IÏ­W1‰yŽT7Ý.Zò¦‚ˆ[-Ïÿ «R1¹Î$UR ëüªÐˆ,eˆ,vüÌÓjhb­.OÊp3Ç?ZS¸Dvvà( œäŒÐÝ€zE'™»ä'FMK(;œ‚¬Øîýj?9Ý£Ôc€1ŸÀúÒa.ã?w<{â“4MF>n3¹€Àlr ú{_zzÉ ;âbžäT[Tc÷ŒÇ‘ÇðúSÞHá‹>ñÀ\Ù=±Ú®1Vh@¥¢‘ó·ø™‡ò#¥=‚,a#Úeã•9À÷žâ¢ ñÊ|¹·…<äc'¿Ò¤L(Π†$d¯9©v'›RO—r;„Úãw–pWè})‡‘ÉrÝIcŸ­D íbY¶’2ÄŽN)7È#%Ñ[wVÏ4® Ý\ù-°­¨Î}x¥Y¶nsŸlÓ2‘ ®3´£TûÒo͵\ŽHõëš{ØÉ…'ä$¨n„â†P›Î7JϧéMW_-° ŒÄa§óÚ¥ïÕYƒŸ¾ }±RZC7gª")þ™SäIC.åàíM'lªÈw8^çõ©VÞNVmÊAä9÷5¢v@ÑSk‹Œ¬H瞢…Œ”އ#éÍMí{¦áX ?ÈR*¤{¼½Á?0'òª‹¸ro”©# ¸ÉÉæ˜ ¹2G$r§ÐTÉÅÊ<,ûáçJF(ɹ•[æËp}Íi$ÌÜE ‚F,±í#”+ÔôëW¢qçäUÿlöª¬6†%@ùzƒøÓâÁ¸)<›o õô®˜Ù‰­è7þ Ù!›þ Ëk›!X¼M¨*•L䳫±í˜±Ý+îð|©cQ‚™$o™KQ×8ï_œÿðMk«©ÿbïiÀá¶ñP‘P°Ëï´…Ž=p}ºæ¿E3Óî›~á·†ÈSÁ=zÞ•Õ+•¥¹Ž8ã\m H:ÛßZŒFI$d2\çÐÊœ™í‚=£S‘Œd*qr–û°;Éaѹ¨ïŽjœnMÈ·F-Q•ù$6 Èzf£vR —ãÓÎyâ¤Vôõ£ºNåÀbý~Ýj¹p-*ÈŒ1 8Ï>¾ÜRT™Ÿ6£¢‰ a‰<H#’8à zÒ5ºI Õ ‹÷ÊÏ9çÛЬ'wÑv¯œgg×·åV[§ò㕡œíP=¹õë[-åèÌXt2ÅÕ­,¬âs'Ì ¼ñ“À?þ®jãÁ d…ÏR²#ŽÞŸ_J²ª|Ç•9ÀÏSÐÐÓ†hš9ÞL1D’îL ߌ7|¦4ØìPäõjÀŸÒµJÈÍ-I¼¹F$£ãõþ”×òŒ0nMìÑ•U>™Á?Ÿ×Ú”HÛ¯úŒ (pÄžú f£ˆîò‹†Â#oTÆqÛ’@=ÅUô5ˆéR07Ý@gÎC8ý)ÊPF¨Ÿ8aÑNqŽúÕ]Œ)7’îwp®I÷`:`Sb)ä;:Êò x{û×3Z›«ÄÊ]$Ü„€Òg“Øuö<Ó`Ьq0i•~l.OOZC2<’¯ïK•hùƒσÛð¦c—÷Ec”pTc§õúæªZ!"À”¤%fŒ;+)*©éÀïɦÇ":ª2¸Îr9ä{súTR\2Ÿ1ˆ- òž@݃üª3"Œ±icÚ™!”`:JM¦R$‘¶j+OrÌ=¸úžh\,[cdQó°cÈ9ýi1ñ—Î/)À1œsÿëÎh‰‚M—’§ Ë÷³ê{b¥!2“ý.@Ê™+¸®â@8çõªìRI ¸Œ´'g€ñôúÿ*{³e¤pxªϧãžy¨™@·C$eH =}*™n4†ClCDì€ÁÀ$“Š» oæ#%br=úóœ*–3/’ÈTÈØ9 fˆTJcRs•ÚAPOÈ<œWÜw°òækiw¤ÊF *Àìi¨žahlå]ã<þ|®iRT€‡Ú/œÙªìUîѤ‘ÞL3Ðè0q߃U(XŽb[i|Ÿ,þñO\€pFIþ£šE”4#´²!ÏSÆHàŸ§ÖœÉ˜RBç,çrÇÓ'Ÿòj’6½V #p2xÀéüê”F™)•ÚéAo$t'xÊ:{Œqš濉%RÒ8ý㇑ӱúÕc#¼’)bêŽ|¶Rçð©1#s$$î>§<1õü³I•ÌM´¼S™Ž4ùp¸RÞÝÅ+· ¨Nï/j½Ï9ö5• K‘ÜŽ´‚iÔH²nS’>lséëÇ^*’ÓSH–¤InÍqû–çv:à=zÒõ[AAŸ›æ`;0GZ…Þ?&W“†VÈêKB– å·+½T¡¯¶+4µ&deš4Äû×î«çùÒæ³¸!L#Jž½9ÿëÓ 4Ä"°nçcÉì?*­$Œ±tÄŒrΟ(þ+9BÂL•‰í,[ó‚çæ9õî8­4yK1Xä‘åÆâPíÛÁÈÆ}©ìfÅ:œÊ‡$nžœç§^•òœ‘ßàg9çÖ«™”¤*¸v+hBÆT·<`sÇ¿Zyve}†@ù òª¾ø=ÏJ®²Æ#ˆ£¶X°%p=3ëQ…™ÝÑ'2ØË qÏJz »—P ™Uß2·È6ãóJ<¥ºqÌ˽Ž0HzžúÕDL2]ñ lÍÉÆ?Ïÿª”pUÎâ!y'®2Jž¢¹#*$êþZºíVR­Ã¸æ­ÊÓŸ5F\í\§éT"|ÆåÎï,áƒ6wž»yëPϨéö©*ÝÝYÛF¤ ÆuQÄúÓql9‘¬±¼WØ1»7=ýÅJˆ>΃ʑP±Wbpqן‡ZòËÿŠÿ ôYåþ×ñ·…ì/™†Ô‘O“€z ó»ïÚ¿à.™hÂOˆeäˆrb±W•ö qПáïT ì'QK`v™Ú0°’r8ã9¨wnU‘‹¤mÎA;²cúâ¼ÏáÆß|`¹×ÓÁwzËéK\¥Å®Íë&vºäd®U#½z§«éÚV›{©êw)cilóÏ+…TE“ÿÖîp+>K2£Q3DeIö6º¿'¡ÿõTcEdîóÈeÏ.1ž:üÒø»ûs]iþ6¹Ð¾iÖ·¶Ö34w¶¨ŒbŸ…ÃDœ¸ÝÇçà×?´ÇíA¯é² >ãTXÎ$ݤè ¹ÁãcÔþU|·´?iÖPöeâff@vaÆ:÷<ýjF öœs°ž«ñ+ÁŸ¶Æïk«»©Ëâk8.Ìš•¦³o²à‚»Jy€Œx?Zû»à×í௉>,_x‚Ù<¬Éd·k¼¸O³Ï.ì<1u9Q†ç†p8Åg:cU³ƒIåíÜá~ùÀã‘úŒ÷¦–Arbˆ‡àzç3ëMvAjU˜ ùOc=ÏZq;äFýàäT“žÕ‹‡{ž;ñkâÿ‡~xÏ_ñ%¾«skst,mÒÊ0Äɱä½p{ô¯1øKûXø'â߯{OišF·¥jóM_íÌ#Ub ©?6 8ÿdÕoÛkÃ’ë_°~¿{—Ý£ÞZjLß.QL9$p>W ãkòwáŠfðGígðÿĬïþâ;e‘Ña˜ýžRÄJ¨•œö=«¦ XÍÏSú #ˆyLÁ[ŽŽ?Î¥ù'1xJaNìœÓóúÕXßÌVv¹‚p@(±ñëƒ×¡ãŽhŽXضõÄŽ2»AПOþµsÔ•™½;4+á.Úb_/í¸8î3Þ¿5okŸé|8×t}WZÒôû”¼´»¶²ºtF“1ɰB°U”së_¥2/™’  r@Áãðõçð¯Œn u¯ØŸPÕÕ®›BÕmoYcÀdŒ·“!üRO¶”•õ&®ÇÌŸ°Ž5hŸøgTÕ.äM[FY­¡žBÊf·sæs†e”ÏÌÚ¿WðB«8O¸Éãðí_³ß‰¿áý´>ëÒÜ5¤CZŽÚð–ùL7(m€Úx$´‰èxã þ÷",uàäò=Aã¥iU#Rw' òFG-¸t+Œ޵¬»§ ‚ç!p¹äiÒ’H6³1 §?‡¿_΢ˆª¦Y‹s’·ç5’i2?"ÿo G¥þÔº±oèüA¡ç:}×¶,©'Ž“!ôjõ/ø'þ½º7ÄŸÏ, -®mµ+{g` ‰U¡“jõûÐÏv5Õ~ß>‹PøáŸÆ$gÑõ¡i,Á9Hî#*Ï@dX¿Ž+æOØ»R¿±ý¶¬mml®¦Óõ=ê;© ¿îÆÂ޲û¤), äåÆ;×T"·9›ÔýYNvI•-…Üœý:ryëQ(PP0I;s·ûØÿ<Ñ~È„̓å>ðqסô÷¥ó.ÐGæ+»œäŒ MaRGE9h,Òª˜ŽÛó‡VÉàúw©'‘^8Ê1è[’~_¥T8>`%Ñ!ÁQŽGÀ¦C ¦Z@±ílnf˜v8ôÿëÖ-«äMåLY£+˜×ˆÇcÜ}:Ó]åš)di°˜Îâ=ž{Õ}òN¥¢s2m;p>f÷ǧ½:S•<1XÞŽ¼z c®Où£¸®+È#ÓÜ–óšN#ïds׃Çj«ÏŽþ[«1 §hôÆâ;{S¤e&ãpf‰y»¡úŸÖ¡GVc*,ÆÒFk ¤ËÄÊdeÜÑ@‡³•bA“øÒ‰vîRï "MÉÆ}zgfr=*äkíÚ±í$v_°Ç=ý©¦IYË¡ˆœ d•<`ƹç+²Ül+·Q9ýã²ü˜ÈcÇöÅ9Ȥ1ÔtÏ­F×^6ŠE„1mîïùxÿ<Ô|ýŽY%G Ѐ{çóëÎ)SÑܸ²L$7 ew2ž \t=:ã½OnÌm<¢Í’¤” „V8àó“íïTÌ7"EÝ"!{g'êÁ!n4RA!X‘ó‚9ÀçÐV«Þbz"ÃÍ›p®ƒ`Bíåy9ÈÎO·Z¤Çç‘£Q¹mì9ÀëíjTÚ?ß0#ó¸çóî>¾ôŒ¸!deåQ€èOn}Gô§RihgÜŒ’E$eÖ¬œàäŽçÛØÑ#[Hv“!·€Xg9 Œ÷ϧb“"cÇÏëõªA¦YÝÞ âM›vH:sÈ wϤ¹ ò+%Ë,çxÎvä zñœt¬dÊS'‡-}ó<6m ³0úSF ÌËųæÉ“çéëÛŽÕ^7•¥twĤd£pÿOKƒ¿ÉXR‡ËÄ7àëÒ¸¥uaè9UþÚÅ&1ÏÉåϧo¥G#©Š6e¾w¾ONNŸ¡§Qa~é|óÕH;œƒQË4â4Ý”L¶ãƒòŽ™þ]{ÖЖ–%ȵ [²,ëË$¼p1ž¹ö=Zd±ªAå¶õ.¾fsÐuöϧ­@ »2E:dmU$àcå?__ëD§b·™T„tìOãýk§Ùét Ü™%›Ê\K'—°.C÷ã&ª·ÈK§—µ€TsÓŽÝ:ýi"F2åñ"ƒ—ûÙê “Ç#ÖžAH”,ñBìq„;‰# `ÿOzä­{•€JD;‘<Ó÷qd“œqÆ#íWÑT2ùË K)8 Iäʳ#ò[PUa$‘Ër€sœsŸz!Kxdy—,7–(¤6G~µ•*®;‘sL8 dVr…‰Ø@^¿ÓŸóŠŽÞ[‘«@%+ɇ$œI=yü*‘¸ o¤nÏÆèØüǹÆN3Qþü_°2m‰rF§r†Àè8îIÇ¥)»»šA@IbŽBùÁKæDVW,#Q€T€ÅWŽqŽŸÊª¤1•f´RLO÷wãŸÃß-šñK´ 8#9^¸èOB;*ÝÓi\—¹4“ ½0£Â¿¼ùø(Ý9Ç\ôéæ\²¤j¯+(òÉp~cüGúñÍTó‘fŽv*ò1'n ÛÆsÇ|ÔÅUÌÂB#Q—竎ç•ÊH´óÜç”3ü /O”sþy«©;; |À‘®®8`rzÿSÞ²â*ÎgÚ7È9'·޽1ô¢!²%‚fe'jG´{ðúäšÊaË¡óçím ~Éþ – ùÖæ;ˆˆ@Ü3œtnµøQu‘zWÎ É‘õâ¿£ˆºJëüK¥šçÏÒå;ò6’3ÈÎ?þyj4%$…zrôä sšù L…Ïv„‘üÅÞHA.Ô6× \F²çkyƒ€ÃŒǨ¨\• ¥O†ä}iÃÌû9â"çeî3Ž•ô®W<'t8\¹;Âà`§ç?^ŸZpeòÊ–v˜õ=r=* M毙$ŒÈôÿõÔ›Yí¤ ÄãäБ¦ýàû•äíì=êUVYøáÇ*ò7 ‘e‚íVÁäñíHNÉVDC·¡n¸=Húã+Ø—Gõc䣻uEˆÅ_ÎC€v¦2½½?S÷K³#®8ÿ&¦R¡”—åßúÓ|¯Ý—Ú#€9ëéÜTá”N’„`ÞØ?AJ²1DvP91ðqõ4Ó!» Hʳp02øS<•1³(z¨2Ç5!š%aMØû¤àƒè>´Æ`±®Þ˜å1ÏÐÖ‰°æ¸|®þF·Uú‘HVfWP«³pÏJ|,¨¾a‡Í\pòiUØHðÄæ@A?Ê„ÐÖ¤O’pÙÈ]¤6úþõq•DDŽqÈüj²2™Ã`íÎêE)•Œx QJ1n¼zR4°ï³®ý /a‘þx§$1"¡ÀÂîÏ~þôápl1–Pp*•÷®T±n7ɢࢋrF‘2ˆTº``©É>¼ÔD“!=°ß7·Z;.Ìa”ðW öϽDów]Êÿ/<}MK*Ãóv$hÛíþ,`8!T¶Ó—¸úÕp×!Ÿ#$ã ñ×éN.Ò»Èel7 09#ÓÞ‘c¸ßµ°HàtúÒ>I$È«”À]Ž6*¢Œr µ>Ö)½ÆC´pxÉà÷«¦ìBz‘®"ˆ¸“i)ÁPyæžHù\ g–ûÔ‘.cÆÔÀ8ý(\ìV$‰ ^þœUÊí–?ï€1÷³Ö¥KpÊàœà pFw†Ü7™;0oæ)‘º3ü°´„røªŒÚ%ÇC÷þ …©K7ìûñ/MyI‚=zÞE–RlããŽqœž™ç¯ÓŸ0ôPņÒrã““ßœw¯ÈŸø%þ­<š‡Æ-'Í[Åa¦Ül'åÝæÜF×vo¸Ô×ëË–FÜåpKE£Ð\Ízt'îž}efIXÈWYÈtÈlS„‘Å>à%̬w“÷FÑúzsQ¢JdE²“™*þGZšF‰,Õ $„NàNß\Œö=+¢2Ôɲ¬Š¥”©GË’­»åõçÜŽ”‘ïŽFbà¶r>l°¹ïÁëÚ¦Pò*H º¡ÂŽ8õªì%óZ3,[sÕ€©ôªvB%,¯3°Þ0À pÇÞ¢ÏÏ•Œùoœ`• Ž u¥y ZF‘G!fà`a@öÀöíQæXš ¢CÁÞÄ–ÏαœŠ‰,~b^0bBŸ»†` ‘žýj;…2B22ç%¢m£üqHc…£wüÛTa2o¦iÛä’â!ò¤Àcn2>¦ˆIØÞ2^UAÆÕù@îsßéM’pñ¾âÐÄUFHúúÿ^µiüØåÁYYX&n¹Àxüª•À-a/ ’„ výkdŒÜŠËæ4*‡g,~ó‘´ð6ó×ÒžäOÍåo uÆ¿JíY›ÌÆà#ÿX^ŸLQv²W yùA\þáI[˜µ"hYW&)9|ŒŒllç§½L g£`rÊ0Fܟ׵Sˆsº €œ 8ÎzûÓâ-´ì #‘Û°ëÒº\UŒÛ»p±¬ÈÑh‹\Œqê:ži¨æBR±¡Qð»@ÎzúUK‡/yq‹¦@׎žœÒÃXXnÉ ±"Cíõ¬5E£BWLy µö³¬Däc‘Çó¨sŸ${·Üzp{™ðeÊãœôÈý3U•ÝîYç 1†p œcƒÓŠÉ½MâiDþäH®›É¦9Áç§"¡'dªZUÏ.p1þ>´Z;ÒÄœn{¯z…˜Ç gÆN@ü£ëøŒf‰NâkRi]&e,˽$â£Ëþéb.§$;ï?\c¨„‰-˜¤aws´°îqÛ‘JÓŸËu€]Øà’¯ô§dÑJEŽFìm=•Aäûæ«ùy¶h‹åBð2@Oÿ[ŸQPi ' Û<Œþ¿T܆æBFÙ1“²EÛ´ò‘ާ±ÅM¬=ËbYJ´¾[ÆCÎ3žqÖš|Ä…:ß3ÖÇoÖ«Èæ ™! 0‹ò•$žƒ¹üi%“Ëq±‚,C\p=ø¤‘lMâ’7“tñÏaýi¥D\˜žMÌÛ8ãåü;ô¦Éæ`+óví`1ÉÏ9üYg‚e\$É4n#æÁÏà8Z» dF(ÑB†U …1¹#,:qùýjRˆ—ˆÁ ¹äcKwtÞ©™„ŒÌ­ ±$g<ñM†ôƒ†Â²ÀŒ7N;qùÒnä¦YGe… « ÷ ãלŒñTÙØÊð«ºlrXà©lãåüéã"rYB.2ÌíøgëÿÖ¦JWÌIËUdáOÔ÷þuQØND·"®ÏËåAëÓ^? °Œ2­-›ï«1ã’}xê p~(ñç„|+á™ukÖzN›,o4÷*9}ª£’[¨5âZ·í‰ð+CTY<^.v“äÉig#î tÈ’zc4ãÇÕnÒ4Qy½€À$AÇ^ž¾µ$qÃ̬€í{G¾¦¾Öoï†v²ì­Äzº#iòã.ÃêO㞘÷í³÷í §|uðÿŠ/-ô;¯Þi·‘ÀñÏq¼ºKõ“ÀÈeýš'+ŸF4˜;Eœes€2zƒßš>`È —8/^_N}ëæ/?´×>è×PMt5¿5¼¯g§Ún;äM ¬²|®N2y<úüç×ÿkÿ3ñ~¤<+y}¤ÛÜ©6únŸh&’Þ2FyØXúî8ÆîÜVJg퇚±LÞl†MÙ Tn*y9ÁêiÆõ$0…£êÎ…OB3Ÿzü×n?j-S«k²|S}(ed’TdO¼?†<62x8ÇáZ^ý¬þ2øXšýf]sh‰ÏZçŠ5<…R…€ÚIóœg®–æ3r±ûƒ¬ëÖð­î­«ÜÛØi¶6íqqs1ÂÃŒ³±žµËxoâ7ƒ‚k•‰7Ë€\FxàgÜZü·ðÏí}ñ=ÿnÁ¾&¿Ò­|4<].“qm¢¡hÌòA,@9ÜÑ6|ó_¨ðÞÃw w— q©xÙ2¸ Aäxéõ¯ÁÏÚGJ~ßß®wZëñjÖË)¾\7%†?ÛG½8ÅHû«ö³Ò>>]ügЛáñîw£§¶Ón–(â¹Iz»d,¯p¾Õò-ïìåûHê6·3_éz½ÎÛv˜u}ûÕ{˜îs´‘ÜñœWìþ‡}¹àí#WŽ4t¹µ†àó)W@Àç¹ç¯½jOc$eЦÒqŒmõõ­Ò܉j4“=ÃKfðƒçí PAú`:ô¯¿¾~Æ6?ÿgÿ øîóÇvpkGyöX-4!K1#wbqÛÞ¾'ø‡ ¿ƒ¾9øãÃsÛ¦,§{bÈÕ&2D1×vɰõ銩TFjû?ÃOƒ:ÀM]Â]êš¶±Åw¨ß¸2ãbÈ  ¬çÕ½|_û]üOñ߉õûoN‘èÇDÕ^P¶—/þ”Æìu@$ ‚ qšý^ò#t&KspC<Ì9—øýûpÚÝxgöÐÒuû'+±á¤uŒ.WÍ·”Å)ë×lõþèô5)óY¤/ì‘û?xkãšæµâ«›û« *ñ`ºÒÒB~Ô%pv½·%²8É_¨¯Ø;=M°Ò!³°³¶µ†Ý(bD0¤AùŠü¬ýŠ|Uq¤üfñ,V6Ñ®‰¯XDÎ'—³A!߆Ne`F{q_«Vº¦~“¤WP\¼8à`€FAØÏåÍ)],y'ÄOÿþ$øWS±Ö¼=§=ÕÔR,wqD#žHÂ8p Î⿟ûÝ6óMÔõM öO*öÞIì§xIeGh™öÃ)ÇR+úNžöÅ-®˜p!noá$Ÿnµøñžû÷ÿµÄ CÂw6úÇ…¯õ‰o4©í?Õ8š5bÃ=zÒs߯LRN軸|VÞ:ý‘~ø±äˆ¶§áû[‰G7””òNA§¿5éã0r§fÑŸ½ÔŸsõ¯Š¿`ísûcö1¿Ñ ´ÒxÄ6I¿*K¶å#”I·Ü{×Ú2.Vˆçj.Z@q’OOz®ŒÒ ñ?ÃñøÃözñ¿†ncf]_Dº¶Ù“ËèÞ%Ó»)m®"’@d]…¶<àí Á=M\¬âsÆ6g³³‘3&à… œ þ†¤’h•-cX˜·ÍÎA, 篰ëP‰‘üñá:Ü w4½$À’PÉ“îBœtÇé\÷±Òž‡œ|Y»—OøãJ#K×f³Ñ§ž;Es å"cµûí'®9ô¯Êÿ~Õ^4Ó~2è¶™á½Ã'Y.íí,¶I¼²*È7“ÑU‹véÒ¿bïí¬®t+«+˜C[Ï –òÇ*î¬e9#¶:øÖÃö0ø;aâ(o>ëÜÚFаÙMxþX*áÔ¶$Ç9µ´fìg(bù‹&Õ‰ƒ²Ç‡UÀß¡ÉüêÃn¶‘ãFiQÈ`ÌØ8ùO±ª+² 6fä•K`·d{ R1 oÏÆ]­Ž»ÈÖ¹¤¯sJjŲB¨vŽTvlbN3úþ?¥@ҔϜñÈí„$«×<‚së­D_uØH·*8þîU0sÁüê=°4Óüê…ɘ}§Ö²M¦]‹ëµí¡q3D’£vÀç“ý>•M^&@7Ü``}ÒI=IÿëÕXϦfòI '?‡^*i¤…'‘ã…Y¿å¢ƒ§8þ™®Ž}”l÷5¶ß•*xVN§ÓÑÖ[„Œ)˜)Üä 8qôôª§Êß6ѹä;Ô ï—2ÈË–æ@APÝÃ*=£¹A+‚+î8éœ v=S|òFÐ’£¡è)<¶yPïýÒwUç= ëÞ Õc*íF#æ,ëïZ7tf®…yD˜aäÇ,¹$ôè{To! ¨¤~ýù¶q‚r}G®)Òm1Æ€Ä2aI*0?‡§_JFV?,!”ŒoVÉÀsÇZÁÆÌÝ;‘ÌÒå™ùwã€Üõú –F•2¬QaÜöü8üê%?è™ó€f…ˆmܸã¿ùïK$¨ÚvUUäîÚŽ nÝÿC˜bÜÊC´j 4Žæ2>žõ:´‘ãc«º³n^…Tsž3ž„Õ5–O±“ ˜œ³;g·$ç¶}*ÆX­Y¤ îáw²‚2~^:J¨Ï”ÍËSI¥qqp)a3¨Øc9:ûÕv —‘QN`ÊpOn¼¿­V–“ hþ}ÄîŠMÜòÝ‘ž{TÉp$¶RÉ·hÌr*–/íŸLzVr|Ò4DÒC3Û¾Aq°mSÇ<ä~• óP«ˆÁŒ0À'jöoëÞ¥iÑ"v“‹Ÿ¼yzñªÐ¿Î\n‘K@¼éž¹=:ñÖ‰ÊÚ ”iq‹SfæLžƒÓ>˜ýêÓ’¶ñJ¬&mÄ às‘ÓƒÛ=GóNVìwÄÅ׬`^>™çð¨à¸"ÝÁ—|à ñ€9½3þ4àÉjÄ«,Fy<·c$œŒªð1ïÈÿ=jÀýÚŒcRpÛÔe;Iíž; ÎÉ”a8\Æ$;ïŒwïøÓÄÊQ€LAÇÝã¯n¢¯šì«h\{–T\ǘcÚÎrù?¥Hó.ÅvùQ~S±ºçvþ€U&•c“züë°´dÏSFùGùJ*üŽ#,1èO¯~:ý)8ìfÕ‡ÌÀ"6È‘1ÚçƒÉÉ<~ëL2H¶×YYzH7g<íϦ)æP° ë$¸FWl`?9Ç=9ãƪF yÕå†ò§¸¾•”Ò¹¢lIŠ vhü©_iÕñŽ:c>ÞéÁ¥³Cä²2•fÃ| Ä;õëPÜÈUŒ«É¼ml÷ëž9=xëVòm×c3¶ 2@#‘íßéY´Ke¦"8vhÇ;pBàppsÏ©f&5?2î+”m¬8àù=¾µJ)£›Ì󃧜·uÏ ¨d±$›"u'ÌMÒ qŽp1ÐñšI&f¹hØáÆ7)ÆxàóÐõÏÓµsNšbÜÏl» ˆVP~eaÁb¿ãÏãïI 2û‰ ä`ãœtç§åU¢º(iL~Y ©ºà’sÛü*ÃF¿èæ8lò7d‘Ü{~¼ÖR¡mFµ&Y‘-âWLñ–.Ø2©úœÿž)Ë.ð$òå;|ïæáÀ'>„mÇ>¦ªÈZæcå¤MóR ‚:útì;Ò<Âu&ak½Ê|»†}O"³œ,‘|Ö.Û1C!òæäO›n=^ŸáR‚¢V.ŠÊFÞã>Ø#óªo4F5E{¯¼Ì2~‡ÙïUÖæ mÚ9f1²ã$÷<õ=k²å%µ¹¦·[`Ò6ÕyrøBäüÙÏa뎴ôxž$U/q—ýÒÆ…v·×ßßµdLʱƒ'ÊD–(×änî½9çƒVm¡ŠH!Dï`«œ®Ð}úpxÕƒµÇaÍ€2™À¤ üÄdsÁ8ô¤ ®»ŸË‚ÛÂòqëE«ªC"È|ÛZ'\g¨Àö<~µ§–.ÛhÉÁlŒžp0;}x¬*EµØ¹2yc†çMûIlÉóïgcµÁã/ŒcØ:þ}¾7hçAý¤ý8¬£33å][÷6ÊCzn!r@ËoöŽº³k²~òo)@Ämò@ã®8Ç~›[ø[¤xúÅe^Ç|‘y¯qæFl3`ãœÏÿZ¾¤ýœ> èv^)â/ Y½ãòçBÊÄ+IÎHÎ{O=+]¥c|=+Èú[Àwºç†ô‹x-/Rú+Vn±åG ç÷ï^Å¥ÛË⼺i¼Ë†?~Xö´8ëøt¥ršw‡­­®à[x$ev\n`2N=°:~µÞÜÏoáÍdò.ÕIW„e÷¬=@ÏSë_;^òM†±?‘ 1V™¶¾Èã€;ŠpFXˆÏÏŽýsô5U3 £HTË0qϵ9–C²çÌ+‚äÛô5ôJ'™Ì™«!ÞvŒÿ dcÐñ¤i¢¨ÝòœnCÏ>þ• lˆ$fìWíÆxÏojVtšxÓåñó ð=>R•„Te¸ÊÈI•^£ë‘R®ï!£PU6™ úç×Òšê…]D¥d Œ1ï“O.`9FQ¸€Ø÷¬å!(Å„j‰#»Î3ø÷ ß®x*:Œu'Ðzj̹(-ÛvZF9 “×Þžö’Òc9 G®hZ"yˆä3Âr6 ¸çßùÕ€Hþl{zd çÓª¼ß½¶HüÖÛ´»œ´é\ ºß»°õàâ‹ÜnC˜+a¼¥b˜û¾˜ëÉý*'‘|¯˜lLcñ§à)ÅKÿ3â :ûÔ§ç…¾pŠG$¯+ôõ5´Q‹i‘»â5PÙSóÉ…HòH‘$ä}Ñ•çŸÎ›Ÿœ(i>àOñZsÑ„Ý3Þ¶¶€â*FΪIcÈÆF3ÏÒ£gQ ¤žÜduäÒ¢•Ê«]ÛFAÈ4Џ’A´ä”Y+ÜqÐyB‡aŽ5ÊdõýN)›# B´Œ©È÷¦âRªÛH±aÇçDH­ Fp»_ž€ÿœÓ“5‹C¼ÐómeÓò‘À<{R…8P¢£­ÕOµH#>\¿(V#åþéÎjÁmÝÉä3ôëJ:’äÇ–Ý1<ÆÈzîçð¦nEH9W ãÞ•bÈy ®ôèÝÛ½FÄáy<ž é֮ȗ&I–dÜ̼FX‚·j,s¨!Áà¾zP‚Z<£eHÃ+ t?­I30=IÆ2óôªåD7qâH„€(tSÈPqÏSÅ9$ùƒo˜–æ™–x˜¦Å §ÐzÒ1‘UãLgG8ïR•‹ŒG±Ý±|Ïœä8ÀüjN ¢*ù§µ «4勆-ÐïOX6¨w §€ØÏã[$ж£ºFVVqÀ1ñƒRGÂYÙ׎æ£ÆÙàÝ#xþy©QH*@/+¯È¿ÒˆFì´?Rÿà˜ÚâE¦öhî|) ³nèbº'ÿjŽ¿‡|þÕDàºe†Ç“I'¦úØøEÿÜÔ¤¶ý¹îmé µç„uÙY2Ò°’Шÿ€áºc©ëÛ÷Š=¬­°ápAœÇ?J領±çÖÜš7·ïK OÞÀããÇj>uË(ŒÞ\ާæ'?Ö¢·Ÿ|ŽžjÆ `ã >ç5mH­|°Á£Js‘ž˜öàšéŒUŒ¾ Ë1WR¬@ÚÀ ëõ¬«µ )€í匄äzð3žHõ«#Ïû4aÔ‘Î; ëÇ9¨‚Ƴ¾èÄlpÍÄŽ:ôÇõ«e¤<#«"ùjcI0 œdv ž$‚ÞC"´#mÀØ{ã ƒÐSÙšK°RTŒ);0=½yª’î@®FÝ÷†ÞŸ¯jÆM¶\I„ ö°’0LŒ˜äñÈüª\ÆŠ¡4³òúßš¥Öf;mPK1û§·¾p(3:ܧ–fX¯O¦1ǯ?Ò•²uFI]™ØÈX„P3Ï¿?w½U‘§%²² ®ÜÇbAëO2H%‘ËrHÀ!IÝÏãQ̘‰0è-É™­ ̤…KäŤ*¤”Ï¿Ó<÷ª¯  °O*ÆC´óÛ58›˜Ü«í +õúzT[“ÈíãTC(ÜQrÆpO\V©­ÌÑeŠ´jÉ)\©muª¦!¹Ãí¾e;‡nwgŽÀô¤s'œŸ(òÙp”`ñÔzÿõê8ܤ!˜³’w°åGû£§ÿ^©ÔOa¨Ž‰Sævm¹nÏL}>•< *É*¬L£Ž’:}jŽ$RµÃ)èœcŽ»}:ŠHvØ\¦ì• ywÿ ÎH¤ìËÄ™ä?8\ª—ù¶•'œÜðy¨\ùºQQ…Ùnマµåž/øßðÃÀÞ(M/Ä^.Ñ´›è³[O&dU 2¸É¸è(ðLJ_IE”ªu@9ïP¼Û¦ ¨T)$sj#ýóÅ ‡çë‘“êx8õ¬ä™ªC·5Lrd Ú¥•O#Ðþ=©\ˆn·¦årAmãLýyúÔ[¥Œ©ù „Êñ€:z÷úR3ÜG“‘¶%pïZA4Dåb(ʆi$PÒ,vŒ»×¥NwÛÜÊ쟼bØÚ=~¿OAUaÚA ‹ò:ŒNµB÷[Ò¬QEÖ©anQŽõžu‘É'·ô5rUBñÞl— ý¨sŽqÓƒÏz8$FLƒg9n?žkÍ5_‹¿ ´‹ú¯¼+`唀58Én ô<šóKßÚÇà]”­l!ó­<£|”*×wdñœŠùSá/Ãõø§ûGx_Âw÷ãH­Ô‰ü½Ø)o$£Ž‡ýYâ¶Œ!ÊçSðßáÅ/$µ·Óîu+½ÈóZ½’I!·Âî!²ß3÷ã8Ü Í}“¤ÿÁ>lΑ ê¾<Õå»ZÛ&Äà€@9Ï=AíÓÒ¾õðoƒ´_ü7±ðÿ‡¬a´·´¶Ž4ÙÝ)E Yˆ·“Ú»P®¨pïæžüzñýjdì5ª>ðßì#ð›G´yµË¿k³+)O2ãÊHñŒœ&7g¡Îzð(Õ>X~ÉŸ³§Æ_ˆ¿/&¾ÔnaŠæ+;æÝki 3ú Ÿæê@Áû¢¾à³ÄÊÒîP9'€¦}«Ë¾5ølx›öHø“áÑ’;¿ÝÄ…W~ìDHqê+&îVÌþ5 wVñŒuýWVÅÔÚŒóÝLû†Õw‘°; ,@€¿q~|ðÂߨßhB=k^¼±ãVÍ–)¸Œ`q `~|ó_ƒ6s›Ë`W2ÃwUä‰À×ô-ð/ÄKâoØóᶯò›‰¼?n&Ê‘ó¢la뜎ªetMÏVšd„y‹ˆ×ÀÝ€GqšøGöÐøOá–ý–uïh~ÓlüQ¥iyªÞAjY¢Þ±>öNÒ¸P1_vI1Šæ>AVÈçŽOó—íE¯xbÓö&ñÞ…â={LÓnu½â 1‰Õ ª(x’çZSnú”âÅŸj“øw㯃µÕ•-ÿ³µ»iegN Š’ð=byãRÞèÚ~ŸûEêMÛcKƒÅ&ÚèVÕîÆ1ƒÁ°ŽqÅqU/næþôÄı (8$óƒÀçkÕ>.é—Z7ŽNçtQÞ_i6z¬jÇ“çZDê2?Ú ž¹9çµuèÐEŸ¡>'ý‚<#¦ÞÏàïjú=ÓH^ÎÞíDÑD¸?!ÝÏ$ç5ùáâÿ„~ÝÝYk>ÖaÍ K¨-‹ÆÊ0:‚<pyâ¿z¼¬Ùø—à§„uø'ûR]èöÓ½Êá÷B…¹îrNk§º°Óî¥kk¨æÞ_¾v€ãOóÍsì_-Ñø࿎<rËá¿ßIÃ2[ÏpfƒdD•C(ä©ÛƒŒ¹?‰õ¯Šß®ãJÔÎâ \5¡žâà8ÄÝ×,«ÈéÜWÕòÆ<̺¾ü!îàgóÕÍ–Á±¼|ÎC6AèÏbsõ§tèÝ‚_†þ%xÒiµ‹ox+Oµ@“Ïz¦äW !Ý•8Èú×¥§íSã?Ë/“i$±ïo!üÒ¡ãà g ŸnÝkõ÷Xð¶‡â8®ãÖô»=N  ù7)½@ `ñŒãž¤×ˆßþËŸnüOi{áX..Víî<†vÂŒc _—;Ny¬åRär™þ#ý þ'üJðZþ)kH%‰âÚ!äK MŒ3'®sÜ89®»à_ìÏ?Å ‹K]×¢[M’ÞЉ.Ÿ~s¿|+ÓÜ7ÁØ eãŽüAÅZ·ø{†lå¿ðt›þw¦ß’ï-Ÿ-‡÷KÉÀ ZصzßxoáçÂý?¾ˆXi–Ѫ…¹,ÍüLNXŸZíˆx¢s$|ÏÐýuòü$ߣ”´šsD±ÈÞd C:±aƒÏR1Æz ô?‹—Öß?âw£¹ñ,%¤H7Žå0oL~$Šrw@ÓGºd›L®Ç†.‹€Hã¿zø“ãO실|QøûªxÑõÝSE—PŽ!simee(žXpÄn€™ëȯ±tíUu&Öêܪ™¡ID&D.…—!HÉÇÓòÆè«;4MÁ³D4)+ž/ðCেþ ü<Ô´- âæé/ï¾ßz÷ ÎÆQp£wdj§½{3€Ç `hq´Œ}åîyü±M•a’ÊR¿ê”Ó;Ô2û2Ì’.U¸ß“ÇÓü)½Íc r#»ÞïŠX*•øîZ™¤‘í£•ã‡x·˜üpN™õªåä1¨9Y]þ}­€Üÿ_j6ùiå¨ ±Àç<œàñž•YÚÆŽ:ç¶ŠîÎê'VehþgØ0yÎ=xý*Äl†0 óná:ðxÏ­A3º£:"5Á§ÝôãüžsTí_Q “æpr6öèSúTÆ£dr¤__0Å©lŸuXœÃœñV™ "ݘúŒ²àûrk8I–c)¸BùÈ<ÓÈ;ÔJ]•Fv‘Ïç×¥_.„¡Ï4&ÎIvbÁ× ;²Ï#Æ/"Þê q€¼ð@ý}êr€$ˆƒ‘"žBg 'Ò«/Ëoåù™c Ê¿ÌÜÏãóŠ–Õ˱ždó/— †2…NNrzŒÐqOV‘cŽ6V~yÚ~\>˜ÿ€È]ËÈU[q 8cŽåÎë;ïù¢R?wÎHöºŽ› ÓÌ#J!Á9$«rsÈÏ ëU†ÿ³FÉ@¡ ¹ væ•H0\$9)‚_œ=z¸ªä‘{û•V ‘žp}s\²Š¹§1$¿»‡s;JªA%‰PÁÓ¨èi$–IÕßÏGLáÕ“sêGPzUxÄÍfs€Î噆HÏB:T"\4ŠX2"ó´ã8ãÜ~&’€]Â/˜m¨ÜÍÆ1Ç?_š%\  #áISåldgßÿ­UçËËþ³åÈe qÇ ö§¬‘¡FuBûÿÕ¦HÛƒŒû{ÕJ àJò!IBn]¡X‡‚ žI#®­Ã3 ²8Àܯ|wëT¤qæ6Äò&F[œ`NzûUY—ʬIPGÎۈɞÿþºiÅ#2ô²Hò¶Ù”D€ª>£¯nÃ5+¼q×͸31l·ïÓŸéYù„ÀZUpžQß‘4ömüÉ„€cã`éËsù{ÕPMèË¢¤D¦3Ã0Vù‰ï·ž1Ïò«Ð»ùjÓH®NЮ0\`tì=z¤Î°Ëöhâa‚Lxù{ŒË5è•öºÍ’6ƒó žŸ§^Ø÷­*C•ÜObì[‘.7•Š5lÊÍ'oo^?I ¯+°FFen ŽÅ‰íT×nÄŸ8ƒŒ~AúàvíVFZ#ó2–F'kA‘Ï8šÈl™§ÝiLäœðàsÐv=sT-o嬨‘’·—†€£~j™âû,R²ˆ:ù_ëpGãÓ¯æ=‚FY#`|· ‘Ð2OòÏzÑÂúŠäæA¦IV&ù„ óÔcåZYd–=0–”ÈeÔ1‰ã'z ‘g‘.V1™@É IÈ냞•¸Y$bßêÎÐv÷Ï?tŽ™úŽj¹,®C‹âHíÞ(Ø€>øîŽýÁüECøåce †ŽAÔc Æxúi7†óÊä©ÜYØa™ˆëïÉè:Ue–pR"’Œ _§= 1¼È.U$x‚…Îï¾°Ó©úšH߈í¢,"«°Æd|‘ß§áQ3GÁ‘DQ†Ao sêO­k)]2£$\3ÜÀÒoŒÈù@ VÞÇáÚ£24«šY˹ùI‚>¼ôÎ*¡0=ãDÁ(9É^@ç¿N¼‘ÅX[˜³ä‰ ¸ »ùèAüºúVN`æ‹þk á!%+íÜúžIú{Ò=¿Í+,Ž£!Š*r{Ž{1ÆOù5öÈ’áD’|¬¥xngüzUÏh:=»Ï«jº~˜¹%L²)f8çhõþŸZÕ¦‘„ª"@±ŠªùܽGzþTøcgŒ6ÇÙ¹‚ñœ3ù:òkïŽÿ ô{f—Rñ–‹ iǘÇ m>üô¯4Ô¿l/ƒÚ}ËõÍGP’2Û~ÍöK;½3ùãzjB«cë\µ­Ê4²É!?6Ý»@ÏçŒúu4Òd7m$räáHT.1œž¤vÍ| ªþÝÞXš]'úã`F‰}Žy Åxþ·ûvxÉæ1èþЬ FeÌìÓé€zœÖþÙ,BKSõqnÒ8Ä ˜à oÉòþcœdp§Óü+òãöò°Š/ˆª%ÇÚ¬J²‚ûÑŽ€zà=1^'«~Ø_¯íØnÚÅw$µ·Tm¼ädç±ãüšðüDñwçiüO¯]ê®0c’àåú ý°),:‹9'W™œb±1Í!;sŒ~=)˜c1· åw|§éNGY%Ý)'iÏÜûÃÖ¤ó$/åØqÉ Gùýk¢š@¯bXž'D;ö> á‡N‘§™I¸óQ´yq½{ôëéP•?f!ÌX‘Ï4ø”.ÿ™˜?$HÈïùQ9¤8niÛ|ðÊÄ(Rùô»zØì®‹Mhã›{ÌYAæ&çñÇ¥sðC‰$ŽC²ŒÈxϰ®›MY ü1Ha@c>[žw(éŒwàÖ1š¹¼duVÒM-ªÂDpÅ•\’Ì@<`68?ÔW]¡x~úîhQLaX• tŽO8ëß·&¹í" ¿´|¬.Ïâ_cßæÈ¯UðÅ’½Â[y’6—È%¶¸ëÔvH9R¬íckÝú˜µÖ¬mnfÒ&ù‘@Ž,2÷úgÖ½Rëáìš­µ•†µch“¸$Ú»)ã sÜm9Î0A=x5SÂz »xžÍõX.šÂ)£Xg·#åËn“Èç=w^8ø©s­þÐ.‡pÑ1,ˆ/nm’9|£òíUSØžƒ¯$gwr`¬õ=ëáìÍcá¹ôßéþ+Ô§ºr¦úÖM¯nûxÆXn É9sÇ"¾·ðäV§°Š8 2·–ª»ðx޼u¯=ðÏÚôÀ¿Ú-5¼¨6#8' àgóò­¥ƒYû\²-ÓIÈÛc‹!Î3Žzuíß=kÈÅÔmê{XjqHë5íRÖÃS´ò¤šáY±'QŸæ@íVÿ±uRå.RîæKvRZ9Ô—^¹8‡ç\´òióÜÁö™%góv‡ƒ`°ú`q^¹£›„°¶xÏÚ­Ld#ƒA~× *+›U‚±ü† ñpÑ‘˜ÝÚ9ëô§2îhÀÜ¡@^`Oùõ¤FhÁ@ ÿëSÂJI/ÇÍþq_Iv|õ¬0yˆûÎæ9É÷ù¡NòåHL¯à’3Ó4ÆÌl^=« ÇçV~o³+à)$ïÊà“ÁÉõãó§Ì\Y4&&YUŠ1PÏlŽ¥q#à…Ûò. ‚^*sÈ 1ù€®OÊG¯ÐÓdß$Ô¤Ç!dc÷—<~†—0Þ¤LÅbÝžH9ÏqøÕˆ<ùdŽ ïŒ‚N:ž¨t#È˹yDÎäâ2ÜWñõö¬äE¬(PŸ»vÜ€äçOo¥+yˆ©ä³ƒ¦¥#1*ˆÜ9bl<¬„ØÏ݆:TÉ)„0)8W‘õ¨@Nàp1·üæž]ŽÃ´ž£¿µTlWLû¿þ ûr‘ÿÁD|-¨ÆkÍ>ö ¸!¼Ÿ1vŸûfxÆN:ñ_ÐH’3n¬ˆSå ÃJõûçë_Í÷ì[«Mcÿ4øG/žÐÇ6ºÐ6I!Õ­.oCÎHü¯èé0BåïK,3œ€MzØx¶Ž*öùp6ܨÜ6ü “Ó'œÒ­ÂµÎÅŸkœ–Y={g¶i+ïWß„€Ç»éŽÿ…W,›æù†àªAè3œ{ ç#Ò®zE"ð’c)óËçpÀä} @ÁVÕžR„³ä³Bã×ôüª!b¾Ñï8rg3ǧãD’1µÙHåf8*FXž:wÿ=«8ÍÈOAÍv±ÜÄœI‚àOR:óÛéó‚ö±È †'¹à/=_­f0’h¼Ù‚HWå[‰î0? ±"—Y |¹`¹9ü»qÖœ®‹‰`ÈÐÛD°m ='?ýoÌÕYÞWUˆ¢îÆ lžxÏ9¦ßYƒf€|nÏBxçÓÖžvÊ Œ¼ŸqË5¤oÊ q“2~ñX:€0cÎ #¿Ò P±Ï-¸ˆ“æaÀ#[ž=ÀÖ•U’^QÔ–#w§Ïäj‚ ¦—s²–ª“ÆGëÆ+%'rg°“s&%r¥[_8>£>”’ª­º_dlƒÓÛ¿JS+–•IF eYdÁÓnÞ•^D%’0í<‚¹ÈÀ'==}ê¡Á²îLŠ H *7mfþu \õô¯Ã/xËöÖ~,x·IŠëâ<öÖZÍô0Åc ¾Th·L"”ÿW°ó“‚>µûŽ$t,eŒð êOéÏ­Q’ÎÏk›Xb\Æàd‘œú“Ö®Q°ͧ‹£ñ•—oá3·Ö“ÄÅÝG©÷#)¸±„ÕCTLÕÏ„ÿá=ý§ü_§Ëj?/-¥Q¸¥´È0[%TcŸNOCÓ‚ËàGí âé"‘ôŸ¬¬åDº–¢È¹È?RNsÆom]Wö¿øÉ¨2›9|=§Z†>R[ihL'ÀgØôÇžkŒŸ´GŠ5E’Û[ñ…â ĺXÐö¢€3ž;OJ‰@Í#±³ýŽ>-^ܴڵ߇ôvIÕnL—M)H‰ ÉÐ  óî=ÎKÿ  é–‘\x»âï„t·mÒO.Š0€0ÌGN§×Ö¼b? þÐ^%¼–wѾ%j=âI®nl€Øp[çëǃÒiŸ²ŸÇ?L.®4;{]aI/î³µXüÄãߨöükXò ’0~.ü<øaàçÓmüãø|s¬É#-ͤ*£ >V]£Œó^[àŸjþ5xoÅö6ë.§¢^}¦¥I±Ñ•]¤;oJýøûx¿Â_ü/ã_i §YÉ,’Ù¨/#H#+%¸)–'±}ÈçÄoØÁÞ&ñö³áíZãAšîò[‹‹uHË9-”œe‰;F:ž8\³=à¯íeàOü?Ó ñ>¯¦xoÅÿg•õ+ys ¼"72¹ÂQ”ã;²[Ð×¼é_üâ û›}ÅZ¢Öj¦íã¹U£giÉ=>Æ¿"õÏØ¿ã‘®-–“c§ë±MoºK¸'òÕð»0üóÁôÀæ¸Äýš¾:ÛüC¼Ð-ü'©¸çT7Iµ`o—#÷œ‚£<äpO~µ,RÐýªÕ~.|/Ðnj>:ðÕ´7*‹ô‘ÉèN~ƒ­x7ŒkO…Ö>7ðdž4F×ʼn¯_%ÝÍ£í†É%B‹ ³ch穯ƒì¿b¿·wö¾tz%°ºo1¦–ì¹DZ3Óµ}%ðÏö±Ð> Ûë¾2ׯ¿gm–ÒÓa„yÁ•bHR0Ö+AŸ9|lý”üaðûÄRê> Óµoøua’ᤎØÆ% äÚprEy‚>:üNø[ªM†õÝB>È<›[…/ÉâU¦Oñ|w¯ß+¤YlżŒ˜°2Œc8üëËüQð“á÷tË›x_DÔT_ùvUxÂä*†w©çÞ¥6ØÔÍí[öøø›z¬4Í @Òç‘?‰žGã9㌓ÏåÒ¾e×µŠÿ¾.†¼þÚñf¿4y·´Ž!Â' FÒHÆx5ûCáÿÙïá…Ü&à$0zhÄ’Hœå›“Ž@Ïnz•‡†tU{}"ÆÉ•J+ÁnªUz…ÈÇSŸS[ò« DøGà?ìW§xy,|Sñoí}]eŠâ-- ·!CçøÎqxÍ`~ן¼~’®$T6ÑŽGÏ™œ…÷aýji•¤‘P囋³òï×ô¬ãR̾CÊþxcZðì…àox–8!Ötí)-îK&O  gÚ½ZU ±”bÍüùPOÔóÒ§PÑídPÀœ¹'§súsTžUò™L-ó`3“ÐzúQ¥ÍS².[…3I©æÈ2eÎ3ƒé\Ž|áψžþÁñF›£cÚJ6”l¯ÌwÉ®à<8ؼ¯”™[ ŸO\€*œ¯æN$f+°ª…GÚ÷õéžjÂÉœ×ü áo‡þþÄðž‹¥iö,ÞcˆcU.ýÙ±‚Zºç% K •—ïæéÇ©úúÓ#a=” l(<žü}ûT“ǰ•[.?çŸ\t#ŠÊqlVI݈®!µ/n#9Úê0qòŒqߊHíü¢&Ç+(Œ ÝrxôéúU™$ EQD@œ;Ÿñüø¨$u%Xä0°éÎøÒ¦¥_"e”8ÏÞ«`2&9ïÇÖ¢‘QÑ–ÁQ[Îz{b‰Ø-„¬#’` ªp¹ÏO~+?•c¼fiI`Od8èsS:Œ-a›ò˜sì#æ£Ôã½#1]í+²ú1Üs×'§AzÔFSæ4 ìcuá±Ï~ &éZTÅœ©éŒdw>ÏZÂ+Q¶JàyÀ*ÈX¡ç?\žž¦²]ÝcÝ™Û ¹ˆŒüÝ?ÄzsZÇç²f;Á?ÅÏ·=}j)#‘Y ‰a”’N01ŸN9«NÅEœäöÐ]BÐÉ}ÜJ¹`Bß^Zâ¼O XkV_lŸ6B1¢pÑ®cž„…ŒqŠïä™BÞXy7€ã§ßô¬KȤ’oß“-›oQÀ>^î8>˜ôý(•D9$σÄÏÞãÄ‘É6~ Aå†h¡®WžNAÇ"¾µ´¿ƒUÐì59–{i¡Å"ÆE`ý3ùb¼©ôûk··Ž(¢O“Ì*€GN€½y¬ ë/áoÙxjÉAÑpJIq&638ÁÏEQ– ¾´FìKCÙæ¸ŽÑ"n2Ù\)Á9üûúÔ’Ò IÂ6²ãŒËÞõÍ=FÙuÄr@¤£Œ)*GdsÁç»UG,y’4’ ’O#Iý?ZŽQ°HvFaÎ⣌=³Ú”e„),­D¸}ý}:ÔEXžbâÊD@ÉåȾu''> wÎ «p|”&7-¼ªYHë×N=1éQ»îR€HØÝO_ò~”Ò•¬ˆ]ÀùTÆ09ãߎzÖÎZ$‡3[ƒɼ£œà dTWŽÞMÆÇxç1”(]ÄóúR d’è&Ã`r¸<œÃTÜT%™>O—ã?¯5„]ŠEhd’<+ÎÑdÎS¹ì1Ó=éì@Òv„ EÁü8ÿ9§É»Ì˜ O<Ž¼ç¿·×­6å‹XLr„Ú ž¸?0ê8ÓÌÚ/d8NÉjR52¨S¸[| ƒ&àyèzgñõÌÞ¦M»’£Ü Y@ùD›²G “ÓÜc½F~}i[l*ÛÏÈ?Œ ûõÅVk‚¥ƒùß"BW=úJ«opŸhãÛ,™#-ß¶Aþu¼vЫ–îNèã’FP¡³´ü¸ sý;÷¨Ì¤¸¶[Ìb±KuÏ=@®j¹• 프‹‚…ŒàÔ<‘…ò¶Ê]‹y¢wnAϯZDÞà(>§qËtÛÛ=;[(© YùÑÈd“Ì‹pÃß¿)’?´®ÞeY€F èAïÆ?#Q«‹iaeiãîÉ@í‘מ(žè}¸Æ8*ÅŒüg9ôÅg(r³EQ[rU]ð#<ÆW*r½‡ÎzdSmFëòä`£wœÅ²G p:ÿ‡z‰ \%Žñ&‰<çÓ¿NتrjVßÚlŠÊ°©Ú^6 ãžøÇoήW“ª¬mŒÈîÈdãçì)ÀñÌO)å#Á9QÔAßù×3q¯iöÐ$—:•¥´9'l²¢îdŽ}Æ9®STø·ðûF€6£ã?Bæ>])sžÜØæ¹åM©Jhôi¦‘`9 4® ŒƒÙGçÞ¥¥…œ5¼2É*‚ë»gÊx+ß#sôæ¾kÖ¿j߃:sÏ+·¿ü’XÄÓ#s´@Ç_SØ×›jß·/í=¥‡KÒu­]˜ 3ư¡ÏcÛ>˜öè‚îL«òŸq[‰ ~|‡ 7nÀàr1íŽ)ÍæÏ]òJʪ’yéž½Í~hj_·Ò‹S•àÜ)Mñ}¦ä3FqŒex>ü1Á¯4ÖÿnO‰7¸KÓô-4oÊæ#)pwr{rZ·±ŸÖ|Ï×`¦ag}¾X+–8g=:¯5ô0(k‡µµu9f.p™OP:æ¿5?ÚËãV¨ŒŸð•Mc´1ÿG õ#ƒŠòýSâçÄMkÊ:Œ€#iÞÔn ,v™&HÙ˜rã<ŸÂ¿.ÕÈ K¡NA84HÌ‘‘!ÎC}ßñ¡FÅ©Èû·[ýº<[x$6ÑlKm %f”¯s{“ŠóMOö¼øÇ}0huˆô¤`2- @3õ`xçß ¯•·YXrFâ2§~Tåvò‚£o TqNé“ÌÏdÕ¾;|QÕo#’çÆºäÀ°%EÀE.ÕŒ€kˆÕÞÆ¬K4’º‡,NîÃÖ«Ç Ücy‰?7=y¢wd¨ê§0óLž\J2ãøsÓ9ÎPE}½§èösê£W·c§\HªÒÁŒc xí_=˜SmÙ• ÖFEï‡ì®êú[ϳ¯Ìñ¼Ë‚pI׌ñQøHkzv£s3 §(+·q dà€;qWüQ£j·úŒâÖH^'v¢a\ ôçƒÎ3žÕÉxbãWѼ@-®TH# †âL·ñ}ÒpFO®~¸"¼ÿ«Ê7¹Õí“?˜$!ƒ 9sžôô¦ˆË;${ƒçi¹ÈõöäÓòBITEîy =>•2Í"Ì%VgÈåP†¾­Øñµ•åmÅARdlp=ªFŠC^`WpÝÁüOÖ”–ÞÀÆTŽý F’J¨RIT&Ò ƒÇ'¡ÇQÓ­+ bÙ²‚Y².бfŒv£ŠÞ“Ë,ç àŽ¼ÕdS$H£&@ãÄ~>´Ñæ8Ã3Üs´uúšV4EÖKq7̤2IÜCÏÿ\TXÿKvVQÆGnaþ ®÷Ÿ ¼9Ï¥*ã®â£ å»âŸ)œì<–eŸ1ã«rOn?B¥w¹-#z`«{{REä>ä2ç®W­=ÆÙ0;Iê9¡3¦Ç!9ìpƒŽ½¨2ì“o˜î?w·ÔR)@bVFùGsëO0“+ !OÌ ·àj‹H<¦”ÄTfM¤à1ß5 j¤2–ˆì7ÊN3ÔýhECæ‘…n½ûÿœÓ•cÙ†bF~v=¿ L•ÕfDó ÈéÀ¤\ #å9ÆI¡Øv²É,›{ŽŸ…;#øØl?)ã;íi ¤ˆ§dáÕQFÓ€§§°ÿxTu1®Ð|¼®¡úúTaÕŽÄR1Ü7üûR*VÊ`rKzuõ¥'q¨ 4h#b )'Ôf£>c\;±Êž8äþ…Hk†“9 1ž0)Ä"8i•ðG N~´$ÔjaÊ¡¡wa©Çåbªa€&1œTÁ¢YÆ™žŽG#¥UóeÒœó!åWŽ=¶{ÑÊ!‹+‡%‰hØçy5,r)wÉQ€BœOáþ5l  »y{»g“ëÚ¬Ën±‡`6Èüå‡*L~¯5€ŠY1•3| uõÿ>ôyȉŸiœT+Á?3É‘Å( YâÜnq•Ю„ ûÌe”…Ž1ÿ֩бüžfæÈÃsƒëô¤Eß.×`¼áøÒnT‘Œl—×#§J‰-C˜•Û’ù8;sÆ?,š’¤+/û$œþ\¼èdmǰ§$¡®ÐP¶Nx϶kzn(‹6}û/ji¥þÜß ï¥}‚ÛÅAd=äCôé+uö¯éºX¾y".['•+¿ /í૸ãìúþ>×l %ä,N~™ü9¯ê‰·´©!U—q*0qŒçñϾ5ìгÎ*ú çGì@¬«‚?\d~4Å‘ãÒJ™s埙@ãSÆi¾X‘›qÚã p}ú{ÔŸí —háŽ@­åã êsÔ}?ýUœä›±’“D»NÀ|…Ž(ÚÕDJã,>|n×$ÿ*Ë•ÚMXT>ë7ÓëZ/+*›ƒ2⎸õª§I"ܮ̭€¥KÃñ“ëŠl¥„­µÖVÙ’01ô§ÒžŒT4™‘U(8Ç@yÏ­V/Ú5Á ¬ê ±nn˜ý~´U€£!ÅÖKxɆ\8fùºòíÓ5+ɶ?-£a•àÿƒÇéÅDžRIîÚO—aÀb1Á=sP»y¥mÊp«’xíŸj¸RÐmÝ–¦o$H¤£¹!²F3“ßžª%‘ôW`ãŽyÁäÕ<¼‘D…×tDäc¨Çüÿ*7JD‘#I?ÂWºpzûÖÉ\RLl¬$¸‘„[ÈUÛÁ:u5p±ÿo•öNÞþǨǥJÒǑƢ9²p~R #£­C4àãÊFÙŸ—ŽsÛü+¥CC Q$ÞHp²°‹~zGL÷ãµaåÂo]¹mÇqÿÏzh@Sd¨¸Ø ÆzžzÓä›Ê#áú= ŸAŸ×55™ºW —bX#&௜gwëR±ˆÛ¢Ì\Ç0åTs‘ÈþtÐvIð#ÜÙe g’=ÀÏN¿??kÚâ7Áß‹ð÷ƒî´ûM/QÑZsqqj%a(›f‚Àtžj¥;’ÕŽ#þ #¦‰ì~kF!<£R¼Ó˜»…ÛÂ'9=¾kÚøSàŽ¥‰ûZ|9Ö¦“ʵ±ñ©•ä$*¡“ÊbqØ9úsÅKñâïį‹ÐxÓY¿×,l.|ë{t·UŽÜB.?¼qÔ×1 øÆÖºèñ§(ùȲnKÜîpÎ3Ïé³6õ?¡¹ü[á]5YüQ Ánù $š’ *IR[ž9­‹-JßQÒ-uIÒòÚê’¨~e‘Xc<Aúü<Ò¿eßZ¨·¼?,P»+lº½òö¡V ²ôÇã$Ý ~Á|ð·ˆ< û+xÃ^#¸ŽïYÒô˜­&xùVÛÓž2T`t‘ÓU©½;ž¡¾ÑÕÊ©Súzõ9ÈÏ¥;ÍΉÃü±œƒ»9_@3žµó$Šr±°A¸ ñ€N}Æ¢•UìáX§Œcœ÷çŠJ,ÚL,›Á,3“$†çùué@”ÚT„EËúžžžø¨Y¼¨¤_/c–>Zm#±;þU\†¶’Ù׊lqœí<±öJÀ‘ èr<­äœo$ñ·×ƒŽý+Ì> ü%ðoÄSd¾3ѬõÕ³lÚ?¼‡?1 G%OëФ–E‰ M"™Ìg‘éÁ•q"fV+Œ·ËŒœqõ¡4˜KSÍ´/„tÛLðV…Ä¥w5š³wI<1ÚÚx[DÓ,ä[.ËM…þø·…@ §Ž~•¯3î›ËÀŠ[æe¸àýzË0.wÚ$.xÉèb8ªrDØ–5¶ŽBC"BªQ'¹Î>©G—$r0&87ˆ'Ûù¨“ÌM=0]¯É»Ðw4­!k,dPQmöàŽµ”lm†g–ØÆÁ@`B+‚§ØT JÏUi\#¾:ñÐ}jBïÌ!•O…q¼¡ê*i¼ö(àù£ç±8­IH·o…º+ B-ž>^ûH²;Tø,’Jïlãî¶H'¯OÆ©,¬ì÷®Û@+ óÀ©ƒ¸SæbE$9Û“Óœ~8ø¨š.€öà+4E@2FàgŒzqÓ¥-ħ|‡ËbÇ`3Ó¯µËŒ§°¨2O÷àô§:”¸ŠH™ÈÏVïÓŒzž(äÐQÜÏ]pNd žO ëÓ“ýiѼqYLѿ͑ÀÉÜ=ûã¿Ö£À‘‘_"0†6ç‚HÏñ¦œ$b6òÁç=ò+5sb{²ëŸ,4¡†¾P‡99ퟩ¦2Í% å´;©8lg#žØæ£b³G€ÒFK°Vó1מÇõ4±³¯ÙؤrD¨CdäÝ’séÐþ&µh[Ç JɽxWŒñÀôõ§„hþy@ÜAçóÏÒ«½Ä“yg' à˜aHZ5¸óY”Á!þPÀõǯ#¯¥agr“¹(š6;1Ä €à’x8>”Æ•&Qkæ(…Whäóןñ¨„Á­ÔaDÈ2ÞaÏáMódv“˜fÚŸ('aëõ«rÐ.H$Œ„c—R è0~˜î=’à!Rä*—.1»<Ÿ¥VWf;äyS$à¸Üà ÿõée”Ǹ+”8GßÕ‡÷AÇ g·1™IX‘¤ AF¤¨\psÌSÉÄ¥A2;–¶©>ƒ·UxÂímûw!*AÈíÏj±ïçü­rc"2~ñ>ùÆ?ƺck˜ó1±Dc»Ý-Éùq¸þ•;%d¸l,‹À=ùã×ó5]Žò1"@K~2O®Æ=Í+*ó” ùI …AÐ{~••I#¢2а^D‹æE.Ç nõàŸnŸ¥:UV²ePƒû¼ò1Ç_Zcm*®¥XäáŒ|°Á<ýIíH¤·‚ŸiÀ<ààòà~uÏʘ6(I þl«]ËŒ‘ó.9üyôörÒÊ€2IäŸ_Oòy¨7$€æ_  sÆrÆ=j5¾ÖꡉÇÉ’TsÐëÔQÊKCŒámä?)‹x;£à°þ§µC湂2œoeÀ ö?Ë¥:I]ídßå:¾PÇœdŒ§?•C#ä¸Þ‘?—´H OrsÚ¢ q3®Éå¢ìí, ¡G¯"³äùPBKÅ?G#§ÍøóšÔybÛ! ³jnL¾O¯aœäb³\7ÛAu6pHÊÐz‘\²ŒŸR¯c å£I 0D¬Š ’2Ç·@r~Ÿy§Ž,-ŸD¹šùŠÐ¼f6À½½¸8â½S‘¡‰Õñ$y¾l3Óò®a$Žwh¤HÊ€\ŽÞ¸õ®Ø+DRØì< ªÝê ²Óõ{‘rÊv îz0<{û×mwän…„©ò€BÈP;ûùæ}{Vð.»}«Ú\Eu¥Üª(‚V Mß‹¼`rkÐ<'ñ DñÅœßÙú¬÷…I n2Çú‚W§©¢¦m™)YÄÒâG8‘Ø¡ @ü²;@³,sÎ7>à‹Ôdtöã5‰+Hdi±¿€¸À${Î}êºìšàû˜‚Ÿ—nà1Ÿ”cZÆ“Rm6º/€ÒLÀ€ÈF[äa¸ÈO^£§ô¨Wlw ‹ #ÈrÈÜÛŽÆsõè?«€Ý3³SÊ–\îç•9éÓõ¦ý©<˜¶ô\§Ê¤*Ô à’xëT¥“}Û:ÅûÅåT¾ZÓÚ4¬Išbtk c$‘FÕW C¼=9ý*4šHçòÑHËß¼¯SòûñÉ5›%ÔsH "ÈÑFO®qÔ}}ªU¹UžPî6Æ,z ägxÏ_­eÊæg)ÅLæf‘XÛO™Ï(1‘ǯ©­87â'*§H<9ýW=ꄳÀ$Y0¥$bÁƒ\ã¶zqŽý« óÅZŸa»Ö4ÛT~òáa'Œçžq] 8¡*Šç\.~AŽ6aûÖ`Ç\údô¦–HæY‰Y ŒÆs–`[̨0HÀÉçZ·í‰ð?M¼‘­µëÝV8ÀSö[0qÔ@ã¾9©•õ+ë #ê±½-•·À¬òdò:y=}þtù/ Ҙܪº’ìr#Û¶kà-Wöïð-¤Ï&á}júE]î"tÀ'žG| ó]oöúÖe†‘àÛp!®nw° vÀà{sZÂŒ^%ÜýEgÄYR `'\œúpzÕI'™äŒ<{@|mPä{gòæ¿õ/ÛCâ® eû'öN˜%2[Ú–ÎGÞb?+Í5Ú?ã&±,ßiñÖ·î<¨$HÆs×!2Óõ¬=Lå^G}m Ç,÷ðLí•:mì1ëÍr·ž=ð^Í}âÒ8ÁRÓÝÆ­€y\NkðkQñ狵[·—RñN¿zλ]§Ô$9=zgϹinç–V’Yv ´³¶N$ÔƒïZ{5}D«³÷7Sý¥~ é10ºñ¾“2‡ÜëYÀ#œÓñéšógöÒøQ¥4ñÙ.¿©8 o”ž£%_]دǧ™üϼđÛÿ]4¸e;²sÆO$>[;껟§º§íã¤ùŒú?ƒï®OQö»”Ul˜œgœã¾;q^YâÛ{Æš“Mö hÖm·JÌÍ"{ä:ÿ^¾8òЃü¨ıdõ§(ÜFϪ5oÚçâþ¢Ž¶Ú½–›æG‡û°B¸÷b@ö ~œWšê?>+j0âk)½pËÂ5ö8Ÿ§JòS#oÃ0rűúÓK·daƒr¤œãêãÜ鮼Sâ NVšÎ«r{T=㲃€>n:šÃk—™Òi_ ùÆsÛñªndHBà.æäãüæ˜ ‡9äòÔÊû,™®Nùà¶âH>Ùü©fiƒ;;þ5(Ë‚qÔœñÓô4£ÚK1 Ypx¬Væn$¬¸ˆÌ2БÈü* 4Šv*•žAž²¨€"¨'¨$à`v¦&î§Ë#¶_œ“ ³¬£ Ç §0oíÁ“É4â72ÈÛƒm0¤“h•Bcqã†À?•TS)$‡©“’­½YpIÈZ`,%;KË#7)#2ˆ>Œã&•K‡@'uçÞ‡chÉùr„M#m%N:zþ2”U`ðœƒM•’H‚°Ž~U_òj=ùÞ 0€2oÝ®yrv|ÀAp}ê1ü©èr¡×2mnŽZ®™(TÇÆƒÍJå[ ²€=*"µ1ÚìÑ0AÔnPOò¦$d9Š5(Hɺúži0”bŽ8ÿg§LÓPrT°Œ©$ôïŒ×B’!«³åܾcÀcÆY(x9àñëRß0Âr$äý(N㵑2¤«–M¤íÉ;ó×ð¤Fñ½Ës’*i H>mÁsü œ`wâ˜yŒÌj9#Úµ‚¹”äI³ÍÌEÂʃ…'cÒ•¢,åU×eÛ=qïÍ<‰dáˆRW<½1Ÿ\O%ZÄ0Œ’p=?ZÒP%;‘4h‘»Ë‚CeÂôÏlZ—í”2³ 8*Ë“ƒJ±H²¬YË“™— §Ó=‰ $¡UØ›T2ðŒ:/'Ï>õ“±¥x#–X׌÷öëM Ë3aÔe@›ÛÒ›#omÑÀ#ß½ DÓ8“攳&<œ¤ã½CjãHÙ„Ç ÂÊòn1Ÿ™É®{þµkÙêÅw° ò² 7[>WšÝW{¶r¤pJãñÇ?Ÿzâ­®4ÍOVin¬®-¥"9!€íJŒ}Gæ)žÕ¤‡B[A,—6wnh]‰œ|Þ8䯷á]Ô?ÙðAq9Œ¬ÌNÿ“*r1´“ÛW“^WNÇLc#ùÙ†òÝœGÌ0.h•—yLœ Ã8lzT9>`2$‹¸aˆlúç BIÉb)#wSúþµí5c…0I—+»ËõaÓ¾)¥Ì“¢´’‘±Àþžµ+-Äj<Å^™aß¹¨1°ïB¿1oð­"Nì´Í´Ê:Œ téR"£Æï+Kåc ã=ý¾µYP9qν=éÊFÀ¿2®ÝÁúâ²½™¬ƒÙã’2។î‰'ƒéÅ0³²«1ÏUà{âŒä0Ï.¸ åéJp§ ¹£\}q×49$ìXÚE°pÊX.Ò3œç®µAûÓ2$Ò³²¡ \g Nz{U¨‘ $H— C€OCšgîÕ|Çi9 å ã®hFJäl‡,s·j¶xÏszvÉUe*®ŠÞ™ú;ðj"Ý,n7²n;ÿ¡§¬ŽB*¶€ÜðÞøõªº5OB7›vÜÈ£Žr9úÓÉuUyY˜œÆ=xëP”\•™2sÇó)#œˆÁçŒãëT˜¤‰Håªå:ž ê=ib$·@§òǨ¦.ÙNì±elŒN¿AFÿßnòس)Èãõù¬ŒÒ—’]±…FV61øš‘B,d1Y[v@€F:~y¨V5H*»qœgô¦1˸TU\`/÷~˜£šå¹$J̱© Ý«&âÍØ{Škr‰–VROÍŒŸoÊ‘NÕP‘…¸eÕqŸ­Wvó§Ë\ð¸à…4õDÁ^6ܤí#ŽÕ"ýÞðä|¼­B±²g&Þ-’ßI¼ˆ¬gå’sùsÒ¨vB–ó2Ç;{œSòå[võ^8íž” Æ®ÅFÐy- â—yòÛ'z“Ô·«Z¡4>I¶vmÈàãüj¹L`áN <³ù›|µ*y ³ôÍ!Þ“± ‚Á¤¤Ð¹F¢8%9aónhËY3”‹\|Æ¥ŠFʈ6†ÀÉÎáøÔDeŠÚ„a¾^G~½ª\ˆ”X²d2ã~z–-úsS•u?ÖŒƒÓó\bi#m²… ûÑÁÇçÞ•GbìÊ9>Ÿç5Jì"ìuþ˜ÃãÍ.bavŽîÁ-Æä‘\ué‚ ×õkb>ÙáËk°J)‚4øpTž¼ŸÊ¿’»c,ÞH…Öo³Hc;ˆ*vÛžýkúªð.¡©ð{ÂúºÈ º-´Ê¤†$ÏëÖ½\5F£c–ºMÜê¶»Ã6TªmbÊ‹€·lç Iy;¹îO=~µaÌE7)+ó|Ã>Ý;ã¯j¨d(ñ¹i6ÿ(RN2F9öÏ­l·9ÜF PðÌbü­éÏ<Ô²JŠŠãnÐýŸ®sÎ?™úU;•Ÿ|j‘Æ ¶ß“åãòüjf’/)QŠ?Í«ò€;Ÿ§óô5~уVD¥M2ÀˆY2¤ã¶NiùP«Ø»@ÝÎ@ïèsõõ¨DÊÚÍ>P>€Œýx§±‘Üï")Y0ÄCèz{sYT¨ÅK0Ý•FßttŽÇç‘ùT-3Éh’²F¼ä27]¸1éëõ¨•ÉPþbyá—•Ú®}ò*ŒP¨Içæ\î@öž•­·F‰YŠÓù—Ò‚By` œ¯OƦWˆÉ"E$®@%ç9äçך€'såYxltçÓ –ú̲c Üîç<}1ÏøSsWØ«,²·r[HÍÒO˜Û¦pH?JhºÝ7”cü‹‡‡ÓÜÑ38ÔW1çk¨oCü__ÈUt]ÍJFp ,O'¹~ÔÂQ.›€ŒJeŽ‘Içü⇑T"Hù‚0})r’jxî¼Ë™ŸXò€ãÏQ銋0æC s¾œËòyÊ™p§¯9 ñÐGåI&ægb%p>R€ñÜ~Óç‚6ä§GÜ@# ‚ùõ¦ç™!FU'æäð8àI;˜IÚ7;‘Ù¾Uñ“ØTíûËVm‘¤ŠÌ9Èõöª›c:«€ß3?¨–õ§ÎçÊ‘ Ìæ(,8ëß·cš¦›ÕˆgiD̦Y¼·‘›®{ c=ªB Ó²êÄ*yn;ð9ëPE,B „Aœ^FÑÓ¡õ”Ô™Úg` l%·œÇ|ÿž”â’'s!!æŒÆ-ÆÞ¼Éÿë j³‡)²íåp O9Ç××¥B^9uTo,*çôéïž¼ý)K£3)¤” ]êÜ`/§lÕ-‰l´$û; eTó20Sž ÷¦Ãp¥VÚOÊãÓòüj½Û¬r@LŒ þ,ü´±Ìêv¢D§vFN}1ØT=Ç©!"ò+¤Œ¯$õ8>ž”ç•^èë˜6¤„c°½ÆMS‘•.î.ŒÇåbå×·cÓ¯æjÀ¸o²1a$d`Ž w­¬ZÜRDe¢ÝÎð[Þ~¿ýz‘î6 xôÛ†íÓñÆ1Yq0WW‘·K”WL…9ïë׿J|΋,qF’D$¹¯<ôïY(êj™pL»|º°ð}~”u‹Á)3¦?ƒay÷«åVÆß;ÈbrñL‹t²”+ˆ?w&äööÿõÖ— $¼”Û£íò\6ÔT'gäz‘îeŽÐïO1‘w6xïíÛÒ«ìq¼oBYSh ¨ì1Ͻ[’3×9È#ÀÂàdã¦{ñŠHÑØi¢Êò›†Òܧ§ŸãX«°Üµ#J-FÕ·êp3Œv¸"œû~Ö­Îþ¯¸ü,Us+ËtcRYXm·\?Z~ø|ߺdÂá_îœäóëÚ©E£[èÂ2'ròÃèjÎ{N³m‘U†ÌdÇÁç¯J¤îÆEˆ à¸,ÜúŠ‘¶)&œ·²¾ÄzVŠF.:“„”ÈmÅV V,yþ_Žiá—íLÅK8ÆÕ…ùÍ@óD8$d’§ï`ã·Js0eW”G¹û»;Sq¸Ñ ‘ ™RB…O +‚r@«òËûÂCM»I<ãœþ^µŽ¬Ëwl#ÉvF ЃÏ?Z¹+¢1TiÌjÇ8ÜGLlŽ•”âÒ4ºlW%˜nhœe”ñ´g<þµ+Jþi4²€MùñŽùÇZ†pVsâ]ÄÏ®:Œ~ukç2ábÛ† y#§_¥*l—")ç.Ï ÚêGwÀäíõüy*¡%ÅÁuTLI œ¾Ùô©4‚#;ðúôË –!ùB2Øç·=½úW‘jŸ¾èÊïã_ Ã*³+Ê×ÀFT<÷Çõ¯5ÕÿlO€ú0™¿á0R¸‰t²…®Ž?–+D®™o‘õ fI\¤NX uëÏ?ëRªÈöxäw/!qê.ýkàmgþ ðº¤þÉðï‰u©`3[­°|¹dç#ƒÍyF©ÿ¹Hš€Ñd²jüÉÓ('¶G¡®U¸¥ŠVÐýDy¼¹` jû‹ #u<¿®=_ñÍFeÌ“#›u“!¤pœã#¥~7ê?·ïÅ{´?ÙšO…tòÚÍlóº·ÆïŠ:󴚇üQrØÁ&ùã ` ¤c§^µÂ]x“\ÔYÖ«ªÞȼækÉ%oüy‰ÿõJÍÒD¬K?¡ _ã'Ã- íjÞ5ð嫪„HÚý[s›Bþ5åz¿íkð3MµÿÂ[©a°l`’L¶@8ÀÉ>øô¯ÂåiEË4f0Aþ“ŒgjpyLÇ/Éí9«4D«ÈýrÖ?n†ÖþgØ´ÏêÑ€XÆ–ëî˜åØcóúך꿷ÎÅ#Að"²ù$»½Æû«Ÿ|JüÒ ”eÜp¾ü|ª¹#{þT{8ßQ{IôgÚÚÇíÃñBòîC§Øx{K^y6ï9ûn\ãž¾¾Õçš·í_ñÇSŽaÿ Í•¹ÆÕ³´Ž=¸AÉçÖ¾o ØZ”=øäⵕv¦Oð¸ô梖Í7¹èÚŸÅ߉ÙÙ{ão\¡mÛ û¨cŒs´Ž0~™ç¯5ÅÜêÚ½ñ?mÔînw?Ú%iYÈ÷œ`uôª1£yl~áÀÁÏô ÜY±Ó‚8ÿ¯J3E(ɉûÄhüµ*àb0ú”ÔWiˆ¦îŸJv2ƒf0z€sGÝ—fX(èAéùûÔNz Ø€6Њ àóÏ$}{SòQJ…?/\ŽM9–=ïÏŒçëKû¦ÉsÁȬ•BÕ»ybÝOLŽ”ÆÊ’ ‚ùÁ`qǰ§»0…I@¤¶ïùR¢XüÅ ÄpOó«R+Ù¢B'9ÆOT;œ  ¡cË8ǽK´ Œo$`)==Ï¥ Ir6±l`|Ý?•(¡ŽŽ›”=ÁÏâZ'^Û|¹?JFå'aàpsÁ¦)ùBäocØt¦ˆšÀÛJ‡}sþ}i¹&,îfr>cF0ü}ÐN}©ª*îG‡úT¦®(­G—S…#‘ÎxÁõÍ!ŸýzMÛà Ì~Â'0“=›ŠÉ²EÏï $ç5*°1HW8뵎0j ­ç à°ÚCg>µ1?¸hÂã¨Áü=j9†ÅmŒªê[åΠ¤ ²XIÇUç¥8»6;StrG½#~íPäÉ‘÷Oo­&î!s²P$ôÂð¥H]Bɺ6,Ün< w H{Gü'£p=±ëO žt9䚤Հ~æ{Ô¾6àsòãÖœd̸$³€@ã­F¤•R¡OW=ÇÒš«±ÝŒ€ü£#¯'0Y¥`¥•ª1ƒOq„Ã6#-ž¿—J‹ægPYåÀð1ýjÉØB“±U{äçÖ“W¨O-ÀCòã ©â•£e˜oœçÒ¡BÈs¹ÉÏ;¸˜©ÕdÞaÞ©Àè{õ?…B‹.2Й]¤Y<È˱û¤?.æ¢ ¾ —ù:àóøSðªÆO'–Á¦ì.Åܨ$g4ä˜ï©)ÃH#Î?½ÆeAX­ÔPÐåïÇSPCû¹ÂË0ıäÿ*¼ŒÂ䀌ãaPÀçp=Å](¤XC[ï æ>_”žãúT‘Ã)¸/4h›ðÈÜ{zÓÄ&ÕU¸1Ãp`tÏlûÕÔ·¹•Äs2 â4ÆF~`÷9Éõ­ù\LV¥$a QDÅc›*NALþ52E·÷‚\+[ý*ÕÕ²£$ʪŒQ[{s×·N­ÍżŒŠîáy(Fx"¯›Ýe¨Ø%û; 6…D3+œž:ŸÇ5CÍA" ¥FäÀü½êÕËF#C·v2„8Á'Ïp:ûÖUÀFLYSÃ4ªÃükŽM¶mM!X¤Œ¨‘$#ïÈx$u9þ”Ç•SvÕ™#{‘ÓÒ«Ü–ö†L/˜YåóÐ{ÓŠ9Ùæ£ø†pG#9ê*jhŠcÙ‰¼“ËûpÄÀôÞ¬ÙÌÞk&`8R Èð=ñš¦"-åÎኀAã··øS%†f‰”®2Hlm×5Øùt7¢ywÆæ«Gæ Ú:ŒæŸöû„Ýinž c¾sŠóÍÃ\<« ŒÊ~PØÜW®9õäf½Wá¼Bûâ•„V ¨—¡ ;¶Ý×®ãYUšHÖ-Üýø)à? ´»¹.­šÃÇ´2Œô9#¾zv¯¨eðÉð­¹²kO3J|˜˜í#=;vÆW§5Çü(ðÕŽá­"ImÖòUá`ôVíÛ'å_C_]Úê ŠÚwT§WØr8útÅym·#º2´˜fºðË]B‰£UT|}þä?ÈÏZß´¿yÑíï<ëvš&Ug$Äd žß†=)ÞòãÓ#KÄÅŽáAÏRG÷ˆÇ"®Û^+kÎýÅűÜc˜tQØãûN+ž¥4k)YÇÂù†/ݨ݌¶ÓÆž@Ú3Ääî8OSDrCöÄ „¢`±àgØf•ÝÙðûr9N}ëÖÕž_AŽ7K"ˆÁÎC~T(t.I)‘Á šûHU³’xo¦w?cÁÏÝó#?uHéϵj‘)»;wD-̇$•ñNey&ód”NIÎ7óíÍWF²§RýJœo¥hD±y]Y0*23ßʹæor°XãìˆG%q˜͎\ƒæ ®ÒvØàRÊÎó” j¼|¸'è3Q‘¶d+:ðG¨§ÜllfP|ÍùÀë·®=sHÒA•†=ù`ä`sÖžªD™óX‘Ãô©óµÀ  ÏÍ€=*ž„4@òbÜ(å@Éï׸ÇÐSä%ã$ò¨éœ/¹ö£1»¬¸rª9qZ‘TId|¤.×lã?í~>”&fÑYK$eÉf9`Þ¿Ö’0Á*ÜŒ('õ«1…B>x#—ãëPB«ÚXgÍàgÓQÔ ù­Ã«·\z ~õ#iBH.8—JsBä±P¬¥~W8à½yϽªÖ¾g+"jóøÖžÎæW³ò×hã}ÎÙö÷¥xP ÚÞ[·D^üþ`ýhÃu'æ“vç#ô§º•˜™HSÀÏœ*Ž[%q ˜îü·=•eÏ8éŽÕ',©ò LqÓêOAP"QÆ£#e<·>ô¯,À´9ÀÇ .Þ§œÑÔb1)#á„…W€EL%-yoå ©‚síýjZW]þb2"íî?Çó"@1Ã…9ÖƒKQÒ®Èò«â9$ñô¦<»|³$\•©Èǿ֥XÔ–.7Žý©ä¡>gÎ’ãÀgŠKBì"#7$~\óOu‘B¹È~™Ï•3älK´® t#¿Ò£`,&6“¾ƒúRh¤ÒÌé–0OSR#ó(Ú ôÖ¡ÞË*±¦Î ÏŠ‘e®ö8eb:šžVˆm0i±ýÐ~qÿÖ§ýÏ™@\Œ°\’ÞÕœÅÎÀL›RÃî_J9’\d·(Ié럭mM=;dÚ€ÄmádßÎTœùWôÍû=êO¬þÄ5pèuá+'idÉvN>fNG?Jþc¬”­ÄO¿;¤/?®kú4ýõI.¿à›¿ >p>ϧËlîq€"™”ß®y#œ×£A\á­¦çÓwg2¨wr6½ < ´ÉZvºY!<áÚA´)ǧ|“þqC)Ù3I°%FâÜr3ùð?J­ ýÜBœ«H8g`\l’ Ó—À>½2GSíëU(»jã•$iÑ2¿ ÔdzNÕfWaùJÒ1Á-ÎOä~¾ÕYmãTò¡Œ,pg,¬ 䎙>Ãòï‰òŽ˜#†ç¶{ vþU ´U‘-žawGeØ@eÚ¤1$tÁàô¥™“2’¡ÚCU³ƒÀ8ÍWŠuÛjIÚ£æòò}‡·©þuiYâÁ•~\œ^ b¬€³!òîdÛ&®P)àƒÏ>¾Ý*»<2o l€»ø9$“מԌþ]ÌqÌÆR£ †çïǵ1_5’E>s.ÕL»üæªW± É!ŽY’0žP±ÆrHôªAòÔ¤1ƒò‡!‡×˜â¢iI–uv#,‘íŒÇó¦,…F‹Î“ «dƸ+Œ;ŽGéP•ЉaåÄ`F d…-€TŽsíúÕ7” Ù¥`{çsŸLþuY~è 1De99þ#×ðiäˆÙ¤¸Tóhbz×9ê~µTæ6ƒtñ«¸XÙx$®zgëéJ¬Í¹¥ŒB¯ÔcžÝx4ÍÑ,ÐˆÎæ‘Bœœ×<}(æäH­ÔýÜŒu÷Éǧnh©$2ʤ?fóÖß)¼™0Ý[€#òâ£g’d¸Ë•I‘PœŽ8è9Ç@^µÒZZt*¼÷=³ßµP‰ž;°P«F±ñ™:·=ˆú °¥Ë –U£Àݰñßžy=)©©1’ßz2ÄÄ€B69ç=¿?¥@n.€ êØ'Ô(ÁïœwþUUïí%Ýr¡ÜnXvÇ'ÛÒ›nÞ]»°Ú„7Žø=3ý>•Y\¤®,ÌV6ù ~»w¶KŸN¾¾†¦.¢‘­ÃûË…=lþœÕVœ½’}žT“t˜}Û±Ç> üj8YÕ¢2¶áœ¯~½éB)éÇä"_)”¦@ ÈQŸOÆ“rÜ[³Ú0W+\–98¤cõúUMÒ¼}VhÐü ã'ôÈþ~”Æ‘â.6È,ãŽ:uPÙ.eì¬vìÈ¥B©_™ˆÏËÎrzgúÒ¤Ò#ÊYå‡N;vZ)#‘ƒlßü#åè?ˆÏãIÆ‘)ª60pHÇ}•hì•Èö‘/4‘£+HŒÊN@=:ýO~´ÄÞZ1…(ä°øHéõõI'XŒÏ‡b,§ƒƒÇ#9µ>¿¤Ú4†ûPÓ¬1œù³ÙžGR=øt§q:‰ß.Äs$€ÁCÏ¿J™ <ˆ%mÇh]²œxã߹㯭x¦¹ñßàþ€ý¯ñÃip ³B—Jì™ç ¿çÒ¼{Xý»~èR1ƒ_Ôu§FÉfŸ#)ŒcÛÓ$ñSUë#혚á è6Œï䃒;gÓüæ ;–Û£ÁÈÞ$ÆãžAü«ó/]ÿ‚“øZÒcðçõ­@çlMsw!Â}{sž~µã"ÿ‚|E¿iNáéÄo+´²Ó“Œz‡¡kÂæ~ÞÇì÷˜Æ8|æŠU ¬ÄtÏ~犊æ{bò\¼ñÄU€›¿nãëùú׿moZÛK øµ4Ë~‹…’ÄÉÎ@ éøf¼kZøÝñKÄ çWñ)áõAŸ¢m½ªeKR~²ÏèÏXñ†,¢ÿ‰‰4}9BO:ý;d‚KÐW‘x‡öŠø9¥y‰{ñáÇTŽùgíœazc ÿ:þy.u½JòBn®în™†_Ì™œ~ “ŸÆª™îdÈÎÞjá‰x†~àꟶÀ{†-âKQ‹ZéòNI†Hd™R¦äWµ"±wêáÛ{¯Ò’z‚C!\Û»Kí-ŒñAS++¶å-æ3´›T`T2åÁÛ“ŸëšJ1e))Àüª*H¤_ó¡-ó8#Çâ*ÔºÛhX`d¹ÛŸ_cYðɽLŠ¡€Sz?¥ZŽpÖ%6¤B1ÚÞÙ§NCqF©µUÂ’ 0V` ǯzÕ€aʬD}â@29öü« ÚrXÈfQ(Û´±è?ÐËNY£óÓhUp€‚?ü+¦êÄò¤\á¾`p»FGQ_ʳdfûLE•a2.ూ~˜íÿê«W 2‡x–9qÈäŸÇüóT^XfdÉm¾\Y!qîAS&¬À¯&ùî ía(9 ÈAÈÿ=)aIJ)8c#æçëŽã4Ó>%UÊAÎò}1MgŒÏq#Þe „ÁÚÇ=:`W;i'aŒFQF;³,{xÇ?ÅúUydf¹m¤Ä¡FN3žžô+È8e`TÐóøcüj@0f ÛNÉ céÐVl¸ê;~Wyˆ$ñ×#,N© Ž#÷gòpzôݪ;™•ãFUÆÖeÉϨ?áéRἨ¤ÌŽ¥Nà8÷Çjà‹v®e»1ím¹ç=°¨¯²?dëkdøåcu{ižJ‚Á£Ýò73òç Ÿ¦=k㨠HíÕáAÜìcÛðüëßþüIüd°ÔoãŠ{ÿ¾Š¨“¸äsŒŽy÷íÌÕ…àô™ýøM£¿ÐíÌ–ëE(Ý ¹=ùë[º¸’­¯lÐE&YXÅò¨ÏE99 Ÿ¥r? üK§x“ᆹa-»YÍ4Gp9ÇaÓ?uÚoŠuS¦,SÊ€–Î AëÛééšñëBôù_S¾Öäúpº‹Tó¢šY$v 0WcñÎy¤uT—]žKy[#÷Áp¨#èZçuJþÏÆ~eç—·–²Ÿ” õcŒ¯#¿>7ÓDµNMZ[˺if uÉÏ_aèzV«rE•&¬"±$›Ü¡Þ2Aþµ0@2ÝŽØ~414Rù‚C‚ª3ÑF8ôÇ=)<ÐñŒ«1nì@ž+ß±å\Y_É7;ÅŽÒ¿wÐ}0%‰*<ÜŒ Ã!O\ c¡ (uàüÊ: Eñ‚CnïPØDçj?”ªÛNI §Ÿ~”ß‘$>òNA9ÏJÈÆ2À •ò51VBÒc¾LÖLÒ,šTuº*ÊRMßw®>‚£*Ï#6é—rßtûT¡‘’yÆ _ZaVxÒ5O*Unwnâ„Ê“HÊsóžX2`)îM6ùÙW,`wö¨ÛÍR€ÀŽ˜ýieTÇR@ÇÌsùÒw#˜XäýÔ¥Ž_£uvâ…ÚÒ#8hä ´±î?¥Û÷ù’ ¬:'þµ`4bÍ óÜôǸ­n&îV v6#\õüÍ$ŒJ¼aHÈùcš´Å•#³FNzñÉ÷¨QÉ@ÈA | ®GãUb·+«yq8VÞîÚW$g¯5;&×8Ú¼aŽNOOzlŽªæ@çqùW8?…"åJ³ngÆCÍkÏb\PçùFb9SÉúÒ€½KI·å!~éÁw3Ë¿?/;†1Ï^¾ýj´óz¨oëY·pæ±&ØÖasÐG'µ9Šè‘™lœûR¼’΄ç8Èg¶)†I™¾eSŽçqýz‹ØIÜrå%,2¹#ºgÔÒÈáPŒt^ t翽1–êKu üþ´‚2FÖ*ŠAƒíž¹«Œ‹z;#åìÏR¿ž*I¼ÂK¨r¿/õ©>Ï9‡Ì¼¢x|ƒƒþ Œ®ªÀ‡pv—Aú}j›BR%ãÊ|nf¼}*L¾~›†? œñ?('Á[þtE@Ä$ŒÃO¿Òª- É•Ú5{sä ŸlлY[Ìbؾ9¤2•cî Àü?K#Ì%@ ðXç8È8úsWeb9˜òìuÜìãdƒ‘&’4*‡xbÿÂ1Æ;Ô.3# ®Fà3õ§ÂáWæU'¹9è(Ø\åÛo/p†$‚àãÿÕ_¿°¾¤·?ðNϣ߳¨Å³~öÿ¦n{ó2z_€1b9·ašLg%~í~äÿÁ¥·Œ ßzÉÆÌ,XEH>rT.ìnPÄÈxÊÓŠ_2YlšBû‚ÌY|°;tÆ@õ¬Àïö¾\ºÆ†Ü–Î3Ð{SælBѳ«4˜Rþƒ<ã¾1Þµw°¹Ê ¾YT¤pOAÏpzþÀÄ ‘™SË@ `ÀóÄŸÊ©Í<†q€<‘ï$\`8þ˜õª°O6ÉT+0òä!Yp§‚AéÓ¿µbÓ¹ª‘¤ˆ·Êûxl.Ttè}½Ž*»\5Ç–vcÎ1®O¿ÿªŒÎÓyžj„tÀÇ ŽHǰü¨‘L¶™±ÈÊ"W9êÏáZ)èg&Ûù¶„´¨^6!ÈìqüÀïS«¬Öéã–XþXÏ¥S‰n"O½˜\àÕGlœsœšœyrù 3ló:·ÊôüûTÇRãxŸÍw“ošîÛa†ÃÐúàýÏÖf’Ø[c;2¸ü}úþ”Ï–B…¦˜–ØTí¯OÃùUi£ÚËå•'—n˜ã‘üläúš–ã¹Ë*í$ÆäpsÉéøÕrvÜZHˆ\|¸8SŽ„uÉÎ9¥v#LDB‚CžœzöúU6Rª‹ç9QÉ$öõ<~•›Õ€ö˜¬‘J¸Q»l|g¸þ´A0Ps°.æÂù\õ»Óg•‘€Ý¹Äc(X›ˆ=º``f†xf¶òš2̤íÝÀ§_Ǧ–Wþ®!G–i22Äãëø÷÷§n*êÒ¬G ÚN2=8SøU%2Ip¦D[pƒÌÁ,yÿ?Jpßç…ù”F™YÌsߎ>µ†¬¸$hÛ—ŠÈ3(‘¤RCs’1ÇÅPLBÛK#ï»;Hè 8=?ZbH~Ñû¦X[xòÛo‡?ç½Wó y‚EMÇåMǸÀÆzbª1°ž…´Sö“Œ¬d3È­ücg±UxÜ­’£,á—-£8Qž€~]•G½"`¥L§h%œ“ÆxÇëCÉ#] Éxèz¹ëÏ+ÍHµŒc2â<‚ÁU:c§<ÿ/J¯»Ëùp~SûÀÍž§Œzã¯4ÅŒ*dŵÀoôÎMBŒÏ,ÒlxÝqœ·zçüó\ðm3NT͸ˆ‡“ 8Ž0s޽?P™pŠû@T]¾`'ž góªŠLqœ¬‡hMÄüÙ*2sÜÿ3M–¹IX}ÿ–5aÓ%¾‡ŒÖîWDó$\'Ì%À`«‚«ÇP}09õÝ7.J;lQÜ $rO­#YK‚q°q»±:sLšx ™Žè÷,`2¿\óëÈãU h%UW"Â&ŒyXŽAaŸ¡&”ªH/ü*Jç 3ódg$•É_x×ÂZTlºŸˆô[!3y—hA+“ŒÉ‚Ú pª…¿Íêp;öÅ,LÒ ˆÐ^Yƒtãßükáÿ~Þ¿´äh´ó¯k7õ0ØÔØ3c‚ñ=sþ -kçþß\ÊËÊ=õâc¾xSì°=ë QÖÌýBÞMØ µ²„ã$㜜qžxôÙî7/–ûœ9 Æ÷xîÏJüb×?à ?5É¥Øø{Eãm±•”€äß^:WŒkŸµ§Ç/¼¿hñ­ôE!b³QN¿wo8ç¿ÿ^§Qºçï•Íì$I-޲òÎê ÇqùŠåõ‰¾ðô6©â¿ÙÄ×2ߦâØã¿dŽâ¿}câ7uÙ¼ÍOÅzýûgqY¯äÚÇÔ¢§ò®JYn'tšéãšM¤ $ù›ŸöÖ·‹3ö­ŸÐˆÿk¿>Øln”´Gw`9 Á##Û·S^A¬ÿÁBþXµËhú'ˆõ™60ìâläö5ø®‰+¸ØíãÀã§áJ-åiJ³àc%zµlýAÖà£Ú‰‡þÚ…Ü¥ZþøåG|…Ï=ý:}kÆb5Q© ­&{n³ûL|i×w­ïÄ/Ç œ´6²¬#Óø@úuì+ʵ?ø›[v}W\Ö¯Ë Íä’ìA'#Ö²"¼pÝØæ£UE™‰.Þ˜íB’CäÖº¸w6Í£ È0>•’Y$EBÜqƒœšÑ&%ù{\/B8ÇãQîAò’Tè¥g:—dÊøybÜá³Ð€zÿõ©<¦9BÆz®OJœcÏ,X¨#†éHÈÂô²t< tüêcP¯bÆG«ì9ûÇ9'J‹c*Ø ŽëV÷u ½G<~¾ô,l“€J€ S¨G±+”ýÙÈ#wNÇó§aÁ´c§\Ô…_È%@#ÎEF¤’§vv®•C›4HÌÞr“ `žr)ñ #ä˜aHn¿Oñ¨ÓÆòwúÔ¹wUù\}ÓÓhôªŒû¦ƒ ¿ÞÀÆO R¤ ߃ÍHòF3ýÑÁsH Œ ‹¢ŽGN+*“:Â/”›ËE‘´ç‘A,ÃÂOjcŸ”dqÇZä i»ç1¨DòHÐy# ¦Æ²3¶s»¯¾}¨LlÞx‘×4™€Êõ#¨‡j¾pH˜¹%w>RhÇÌJ»ÆvŒRÆv ÊiÛŸ*®GNÃÞŽfÍl)\–ïÆx÷¤BÀ¯€zÓXíVûá˜vn1éPn!†ç²“Î)ìe)“›–Ù»''ÓŸJF'Íb±Œžyz€‘³„r»×>ôìð@è¤sRäf˜ªä¼Œ01ÐsOGe‡Ë+!CÕúôŠT¯ ŒŽO·R)wIBçåþ¾Ô^åXYèÈ(²žÛÆpiB¡‰[ƒpÄö¨ÆN[qÈ<ŒänÛ´6áëŸóÅ]´ã)*Žztíëÿ×¥(â|»)lg$ò~µðŒX ôÀ\ c ë˜ö‚GU½j\BãÙÎâQƒx52¿Í–ÆèëPo Œùã wô§ÈLhŽÐG@zŠ¥¡wÐ ˆýô{sS&$QòüÄ|¤ÿ:¦Y¡R¸¯Z–7Q œvP8D.ª[£ê0sš)ùÕO‘À¤Ë­¹8^ž„໕I瑌duª¸Ûóæ…tü)T+Û°a·<Ž;ÓÑ]˜;í#ÊóšG,“aFøÖReÆ$Ê3fc½¨ÍB­ºB[+†$g?ýz]»¤;’YˆòX1=@ïIãaŒÝÁÁ ÿŸ_aQ™ YWo|ä ”ò Œ)nOÖ‰ÜË"0bªPäŒVsÜ‚-¹—Œàûph9òöëȦí)’“/'Æž €AÀ-÷OÓ×Ö´DI`f |žh$œ²¦O`}h;°ÁË3Ácm|ÁÁ,¨êJBð®®HÛsž€u⛂¬ (%¸}áQôDù8ÈäÔ«æ~WÙèqNâlföi‚ÿç“Ö¬~h* ç•f?¥ $¢ávƒÏ|Ô›v‡&$faÎ9'ÜzR5´]ç]Ö¢Ólf¶[—VtûD»œnÁÁãSU/´ÛÝ:þ[KûY­oSÖA‚3ß=Ç‘éML· èØ ‚èGqé^ùà}{Âþ:°ÿ„_â Ákp±ÓµhÕUѳ÷ûÙäç={VR“FÝž—]ªN'ëßÒ¥f&wˆ(R8Î?­vž<ðTžñ¤ºI¸Žâßá™y©$~`õÇã~Í´)Û¸*ðn• ´RƱùcå8c€#œ}i2äîÛ½P`wo¦iÒ!UviÖTÎßÇ=is;`—z² V@m¸ÛÏ÷Ȫü¼À– m)9ÿ<Ô‡ªGÈþ´ÈÐÊÊ d``¹~ãŠÞ÷G3–§ì¿ìgñ¿D½ø5cáã§ëVŠªö˜Ü€Îw®sÇÊ3Žú×ÞSCs¥ê¶:µÄ‘),C²±g<`g® 'è:×óËðK^¹Ð>8hPYÝ}ŒÏvŠÓù`äœO‚= @ ¨Zj~ ´µmVÑžhƒ3mR±|¡sïÐççbiÙ\é¡RìÖñ¯i®ø’8 ifoR«"Œ÷ãæÎG¿=1]'‡µE´Á§ÙÜKN}=OP©ë^''=K=ŽÆ®å%Ó»]ÌhoÇÿ¯š…Am‰aÆç<ŒzdûÓ ƒ.Œ¸9>õ)vØÊòƒÉ@ª9 ¯¥ç»<´ˆ—`ê‹´Œ[sS–€ÆÍ1”e\¶F×ðôéUv3"§ 8ciÞþ´4FÃd.W •ÂO^Ôé$‰I1|dûsüéû–)C¨@á9¾‚’YĖ첇B¯´öϧ~k7X‘ÕÁóg¢àcëŸÿU1pñ| 3 8c¥W‰¤•cFTë‘ÔÖ§”¬JPÇç.‰Óž™íN)!6ʃæSû±/Uéýh)˜ à“•ÈÈ#¾ &ÆhÔªEþÓñõ¦ !™ÜŒßLTÉ¢Ô]…u;°ÒÚÀäqëM€âRÆÕŒþHÊ!PˆPôÉ©¼´x]ÏÏ»•ÍTd.QÅ€M£Ì±üª\ÆI$–aÀ8Æ8ïQ¶F' nH<ž1íJÅÃ+ó×Ó¯¡²„O,\€8#Ëù¤bÅÝÔì®tÔI©dHÕ‚JçŒúõëíQ”<©mñ‚>žô“!±«(eP¿ ÜG9#¿×šsF¡$‘Û’G99÷5e¶»“ÆJãj¶ÇNÝê1k$—GÉØ8ÀdžÔÑ“‰sL–ÏÏArïm(209Ú½Î?•_Ôg°ž´0\Û+,íYû#ûÇ5ˆ¨ÑHS…ã¢í#®}EHæ¡Ø38;¸Ð:bNÃC&ì«0wm<ÐóéR&Ò„${!·äiá7 pÃæ`¹qȨÖ8ãe ÔEÜïbS?J´ÏåÅ„l¹zõãªÚ¨Ù£ ôvëÈ9öüý{T{AG#¸Süé¶Ô! å^‡ëI y2¬CHN?þµ8¢[bü±ì!Èg' NjM¸”’¡¥ÄIÈù¦ƒ•aÊí\z}riÙ&B\õÏp=+X¡ØŒ3ÈÊ;vŽ~¿ýzlHP©à"àõ럭:RW99SÓ ñïíKò±Â¾r8PáùÐÈå& í"ò/sÏZý“ÿ‚lê­'Â?ˆºVõž³nê€ã*öë–ãÝHü~5#üçsÆŽ|ß•~±Á5õ—Yø—¤œù©act.~V–d$þKÇn½ë³%tcZ:¬2mŽSŒ2¡ùAÁî9=h@d@òG7•œŒÀ¿N}jpŸ.Âî`Êà(?×#?¥ þ\r£I™7ápTãÉÏáï^£²GŸmI^E%üÙ-ã‘pƒ–]ÙÆè8"£ ¸‰€ÈeRãôì3Ú™ª ±´‘«q…ùIÆy<õ9¨ÕQãŠ9Z#æ‚ÈÈÄãüúW ¥w¡v±zYFëw»ç #åà÷þ•𲤲•e wmPéÉÇ-Á8ÏøRyrc"Y$¨Ø8Î8$qÛ·­B²€Ë<™t P“'s`r{séëÚ·MʼndRdg|r3“Ówrj¼’H$—ìîó3 ÂËŒ¨òêsš%˜¼±¦cÆNá à~\ã?Ϋ1V¼šY™Æâ¤c#=ùÏæ1]0ر(‘‘×pجÙ-³q8äñß­<^'Yš1½ÏÝÆ¿ôªÒ¤KfÌÁ`foº<ã¤ôã¦*ÂË$ž\j&v,¡ºŸË­e+6L¤"½À»biß0Áà`Ô}=¢V&2v`FëÎ2:ŒñÅArü‰$­Ð¢ýÎ短D’WY0YÁ»èsœã8üiÝ&î ²âO2"0FÝÍ‚F:ÿõêÆQ™ü¥ ™€“ zÿ1ïU&:fÜìTƒ°o'<ÿž¾´‚'‚T4‘©¾ú“Æ8 s×ÖsHéŽÁ ÂKfÍœC®<³ŒÀrA÷«—ÄOØÑd}ÇvÂ~éœNGjŒ3ld!‰uù\NÀüö© t33yr’ÉÃ0ÁçêyçÒ®šV)"Õ¼¸óRmÛ‹|ÞŸ^9튩/›4r-²€¬ã×äˆéžÿP(Ž0"kƒ#äFV7p2ì{íëJ¦˜G¼ÊBer0#¦=8âœ,W9$l(“W…n,9ç¹þ´'Ȥ,­<”ǹ9ííÒ«™´ H\8ÀùAžž¿•PpEÚ¢3Hà•wgÁ'ŽqØ`ý*QpÑX†IQ•@ pàŽ§ƒÐzÕI.#k«y x÷ïlðxŽ¿†;Ö’êä…Šº˜íÌ‹æá˜ävþYô©KÈÉ(íÈÎÒØÇ$cÌV-Þ£¦Ú[+^ÞAhK»¦TÃcÔžG_ʸ­cãÃ=Å[TñŸ‡âXÎÇFºäP>ñ%Oãêzuâ´çBç=A,ÊAb¿tÆF0{u?  »† ‹qM¤¹ IÉë_'ë?¶GÀˆ‹ÆQjW‚ÙÂdç•R1ÏOÈúWëðP†övlºƒ­ëÞ Ñ4 œóó?϶pï5QŸ¡ÂVt‰‘ß9V”ØéÎ3ž˜‚× Cq³Ï9ÀŒ~Uù3âø(oˆnd1øÀzUºFr³^^8fãå‡?^?ŸkŸ·ÆíJB¶×Ú.‰_•m¬þaœôbxü=ùçuP¤äÏ܉ïP!WlL2¶7c°=k#Rñ‹¦¬—–±¦éÈýÏvŠÍ‘ÉÁ5ü÷ë_´Æ-~éåÔ<}â»'d3ˆÇ<‘€1Ïú b¼Â÷Äž ÕÆ£­êú‚°"_µ^É1|ö%‰Èö5ŒšbIÜþ…5ÿ ôš-Câ‡!xã cKµ‘‡Ldyô¯×?m¿‚:{k¯\kÓĘ §BY03œc8οҿ ŒåÛÉ\iAõüM:0X¯™&'úÖJæ¼ÎÇë~±ÿð…­ó®á+ë¹Cá&¸”*žè3׎Iõô¯Öÿࡾ?»WMžÓЃ,Ï&Þx>oÏŸQ_žëy¤ÊðÀ®2sJBüÊÊ¡UNJúôÛHɦÙõN·ûfüv×d˜ÂSŽ#v`‘9À·`Ž=zw¯Ö¾2|OׂWÇ~#™B’í†0Ù\Jã9`ñÓŠótãj`än,xÿ&žÛZ5Á2`szQ¨.VOu¬êšŠ³ÝßÜÝîýüŒù÷äœÕ07H33ù¿ÞÓÀÀ©æ@¨TàƒnxÈÿ&œŸ!RC‚Àà1ÏÓ‚íóáqÐóŸÂ¤£r@çqõö£˜ÑQH "¯$GøQ÷cÁ³`84¥)èÃíç¯?IóuÛžàšÎmšªHC8Ž; sQ³8”A·°ž"¤G=ÿ‡=©Ñà¨R@¾§éY©1ºi–mËp8ȧ )‚/J“iò”ç~::ˆL7ld1Z)‚‰‘çn †Æsÿ]"‘³€sŽA¥ Á=y úTj{—~{‘œ ¶®;"d;U‹(?½žO§?x!C6Ì÷sE) Ž>}½W'Ÿlâ’&Ú‚F8èã"¡«ì@YÜ`¹m½<Æ€ÂEnG8ÏáÖ‘˜*€ìÙlç+ßëM_™Ë8@à†•ØX|Œ ÉbGS·o;µ*2´¨í•À 祂£…V#4ŠªgË¿ü?­;«Çk© Œv#8õÅLË™˜Ž®qŒ¢š#Ã’²¶zrøQ¹Ö"À¡Èã#Ÿ~´&P„'`8 ŽjO•$ ¿ÉÍ(}‘‰Ü‚¼o5$“’9çúR‘Q%Ìm>Uld†ëŸ 4¼žw(à`øf£Â™r Œã“Ð Y(ù2Êy'Šh—a óà qš™‘à÷qŠnWÎg2cÓ)Üî?&IÝÚ®ÄXCµ²Œ¬8çùÔ‹åˆö`—“ƒL ‚ßåL9 È¶6¶:÷ü«H lF*Á»aN1ïP•$¸d ŒœR0˜Œ9#ŽiÅÇ—† ¼ò3ÜUÉ¢,ÙNNâAÇBx>ÕlVC»¦Üj°]°ç éˆÊbS¸œñŒ Æ×dÚ†_•‰$“ùT©¶9YÁ‰N9ã<úÓCm{r1ÒœpJ6P ¼§šÒ) \Ay±Ÿ›¹šxþ ¬›²yîJíj©a““Å`* 9R½ ScHU ¨ PIlóÏøÐ¸'%_h8<ô¥mÎŒÈJ¡?tqÏ­1GîNá°Ž™ç5›Ñ aó¸Ú}zŠF)£ÇË“Å*¦bä†QÃêE5”¨9=#Œv¨æv$`<ÀNÊ‘ŒÐΠрO (þ4‘¨YIgl㜎ò¤•9LüØÈèU-ŠZŒ ”9c“ËsÓÚŸc #<äE0%OÜûŠ"G•ÞHàƒÈ5ڎ†EÃÀÚœåCaŽÀ¿tŒsùÔ-¹Ð:’<óÒŒ†•ƒcvyéJEE“ïQÉ%·uËqõ )(U99ùy¤1ûÂK½Èü¨È^wg<F?M ”†²­ŽìeT“–÷ü}©ƒÌ Ͱ °µ3*Û¹báˆÉ÷ü)@ ±LòzÖ+C&Åó9fTä{“K¹D£$¯wÔÔnê%ÝSƒŒãüúS‹u ^¸'š<Â4™B Tg=@ß3äÃS‘´óÍ;{¸ÈV3wAÇJ`d1mVÚøäú @8>%@ùxÂóN_,e•‡'qÁ?ýjj°dÀe :ãŠvHŸr‡cŽ­Ûßë@šÛ‹`2a’~ŸJ&7·LƒB—ÇRH#¯å,UÜr[Œäcó©r$bmÚŒ„“»¹©€6iy=²):Dd‹$ãœ}x§D¿~E¶óŒT»2ËS__^°{§šfòð+–(?º éT™£p£yÉç“Ð{R¸,Ã{>} §_#º`óŽIü)YÝ„%v¨…‚àsŸsKµBíùìÇ;•J°ºm+ž sžâ”8*®@ÎâJgŸZ$Ò.A2I#=ºv§'ï .p1ÆvóÅB#E ¤#’K{çéR‰ðeÃg¦ýU𑥨åbü ²¹^™ éš@¤HU™ÁÆ#4»Woîþq¹Ïòëô§A"ïUo” íÀÇ?ãMj4Ù-»"ÈÊìFp@Î8ïQÆàÜ3.£ƒž3B1Áe‘‚>cÎ{céA]¯É‚ äóõ­ ÂäŠI™•]g8$ öàÕA8ÚŠ1Ës“ëÛ5@’ò̫ЌŒƒüªl2#œ#ƒ• CŽkI=rh§r­Nsó2/JpØUeFE’#ÝUOþ¿µG ˜gÞŒ@ÀÜtéÅ:9 O•™Ü˜g€=k%rù´,ùd$Š©óe¹'ñàš|‚0"+)@ào@û°{òyëÓŠª¬$¡ÚG+üUj\­Ñ VC" Ë·¡úvÿM¢/©¸F §%zÈ9-ß¿Lr)¨ªe.Du]ùaž=O½J9eXÉÁmÊ>”Æw[WÚû¤îÀŽ>k÷F—uKB£aa–ß¿ê?:U‘^Û ÐLî>PËœ}*7MÒmóD‘c!¶ŒŒ‘üêUx>ÐK 1•Øä–=ÿnkžUXY“ÛG;D[`îãh{Óxö«ñÁWaŒ(s÷F9aßÔ ÏK‚#Fu’Y‚°ýÿZ¯@ÂÛcÜáw1e ׯ9éíR¦oN,ŒìûA„§ÅY*Š“&é‚«’¤(댎G_Ƙd¶xc Uˆ@»Kn éÏo¯j«,­ ,l²&ø‚0elà•úñŒõéT•Ç7bwF™˜@õÿêü1áí_S×’ÓHÒçÔnfAå®Îƒöÿ€Ÿ ¬m>K¯¿t–ìçpg*¹Éç #¥~ÈþÊ_ ¼kð>ÛÄ·öð^ê·vªpÑ’ ¸;áKŽ>jmÙÎ'懃|©ŽZn›«™t}¬¤KsÜr€WL¯çúßðßS²C±ÓƧ¤#·ËbÎÃnB€rIÐCºTa…_€ðÎ3ŽŸ^•ÙiÞ$Óm–[»àúiHmˆr:dŽA9GM²|¬ÑOœsÐ'>Øô¯ÍC#”XÀ>ªOá_pþÀ:›ÛÁ@ôh™•ãE¿µ¡<0‰ÉÈÿpñêyí]˜Sš©û¤ïâT%Ý“Ýç¿z†CÍ#¨F]ªKûËÛ­" ªÔCåäy™8#¨<ð:ô÷¦“*R@PWf·~@ëß§ë]µ§¥ŽÑ#Ç"‚íÁïÞÈÇsÐwçµA‚Y#v€I±NYdÀëÆ¯O­IÅœ¨ƒ­¥€È9à¤uïIå¤z¤rE ($£üªW¨ÏaŒ§JÂŒ]´Æ‡wy÷ ÚØXrO#8íÜb£‰„¶Q ¸ w8ýjApRÕ¥gIW#'¯Aùf«¤xf6ÎÑ"à’XŒ€I瞤ã“]›#˜sEDÓ#)BÃdƒ#É#¿ÿ^£”´º€•Ù¼µ`2p1ù~œÓ$˜ƒ—Ìf'¤€.Â{zt¦Ëuö|±…ò T†ãŽý:ãü«¡4ù‰ÓdF7ºù£rLúûΞ…ÄŸ˜ç©àÈßçµbË©YÚDöòι(ÓJй8ŒŒðN ãuŠÞÑvÿiø£A¶rØu[Å`?‡Ö²rCi³Ðü葦]øàlÎöÏLþi fÝR5ˆÈ]@Ârç¹Î3ú×Í!ý­~i•¼gopûr©mqÔs€8íמµãZ÷íïðªÕc~¹©1Ë;ˆ@ãs“Ðp:æ„î(Ógß"PocŽDË+åÝÛØà§¯­)¸Ž+E)þ¨ÐNy<àdãž¹¯Ê]oþ s°&ƒà˜Ðmeî/ dÏ=‡ò¯*×?o¿‹÷Ï'öd&‹VUx`,ø<`‚pxïïíÊ•Eý›?jÞWŠGu‰#NGzöük.]N8ä{›Øy!‡šêr #ÖJ1(ÁØÛÐûv¯!×?à¢WÏiäèþ¶Fë˭è# }LòE~e¼QKTÿ{ŒÓ6 ÜÈQ»'¢sZJ³±§²>××?n–¡hHÄ‘žé=†æ8éê?*ñíwöœøÓâWí^9Õ`1dV5Ï9'¯éÇ®|K"ŒÄ€Ã¯¿Z¿{}-óZùŒ †Ùa@Š ½?cíZeªLÖÕ|yâýqÙuo뺓0ù…ÍäŒ8ã¡8®vy%žRÒ±šC÷Œ­¹¸ô’nTŒìFÑ×ëSv5M däd9Æ844`’ÄàÏZnò89Ïž*F˜Õ0QŽN² 53HÁŒüÇVÝŽ7tl!×s g¨ö4ÒÁ¿Œc'<Ò+È&ÈÀ$÷?αFSŠ$!Uq#n$p00¿çÖšOM§h]yDZ÷§1ýàÚWa^=Í K¡Ú QÎÂ}›{™ò¡¨¢<¨Ù†E(la â¡9VêÉ´ýÐrãNó7¨Šž8Ï_ðªnÃQþX“lȤܘÚǯ8¢O•ÈÛ¸ƒœ÷üé+É» /ú¡÷¤¦Êp"¢6|Äd÷Í 1ýrÜt'ÚœN㇀pzÐ]Š 3cÓüjùŒùG-¶#íŒ)Ç4¥P’˜b£¿J„nÆá·ñéõ©T¨˜\Ï_ñ©m–ôù®Ì|ƒÏÔÒ#ÊLŸ1úÿ…3ïHU@©ÚrúÔå g‘œƒšI²ì81,22ÌIv#µ8i +ÏOÓÖ¢RÁ÷PßZib'8;YŽsÉ­/¨ö$3a|€—~´‚EO˜wúÔn]ß6xÀëOBç ÏŽŸáY»’Ú ¢ýå•HüIþTÝÙ`3†ýœrkár08ÿõª¼®˜u!Xç‚& W…Q°W Ÿ—ŽM:20X/”»±µFGÿ^šN€jB¹e*ÛŽH<Zè…Ȳ²4Í@<=Í!ØC}ã¸çÅ+  0 #psƒõ¤Þ0ÜÇw#~ŸJ™ LhÚÞ¤øãÿ¯Rgæ\+•#?7ÕùÉÀn8Œö¥ "1dîÆÒ(¹BÆ˹BŒ `+“¨3ÀÇøÓ²ËåQ³°-œSÚ¡Î7gv \‰@Ù£#½FÇ-ÎÇÿª¥b²J噜8éÇ¿|Q´m™w(Ï'“B¬~Á¹ˆŽ:bƒà©QÎ09y‡ŽD}ðsœTÜ¡±…?Âi7rÓ,’ûðAcŒrrëMTWfÁÁUù}Í  Æ]d'®}~”Öm¡X±r@Ï4•ÆÙ#;ÜN99¦Ÿ–"LlcpÐÇ{U³f”¹a”>ü­RÆc0Fà3€zSÑwç8WeÝì?*BÒîR.WU¸þu[„ÅP±,À9ÅZ‘rC lAÝÜóëHÀoÈ%˜ú·Rà"«ŸásÏáM<–ùH4¥"n=¶ÄŽÊ¿1ô}y£nc ¾™õ8õ¨”*¾w1UÇÞ< Ž7ª¡àŽ•Ã"%]I^¹Ç¯çNÌ`‚ƒ Œg4í…7c íÈaýj>BDlÆAëU0Øs DÃ/ÞëÍi‚@ã'­*ªƒÀGR¿*Í"2•i'9ãñ«LäbGsÓ•Ì¥—‚88ô§².KщéMfi€ G”¤ª–\C!?(ÍH$ PúžE3rŸº¥võÏ|v§3>cl*†®;ûzÔÅ «ƒBœó`*©Î)wa‰9Q»€4¡¦RW‘÷YºcúRŸ0ã8AŒ¸þ5ReEo™ðÇ`ÛÐdàz{ÔL£Îù¹ÛüôüjEaŽ¥€‘Î}ù¨Ü)gT üÃ%Oøõ¬¹µ)Økª Ÿ3wP¤ UwØÛÑ'vü)e˜xÆAþUÈà¦Ä$O!‡õ¡±“'JÚy$SY•áX•=³Å&PGåá (ÿ Ó«(e$È?‹8ëW ȹ=U˜(늖G@ªÙ\ÏJŒ–P¡@,«È<Ὡì¢)0¤°ÛÆXŸ­hå¡#,fBç‘ÇcÞ‘‹ÊŽ|ь緿¨–ËrQ‘Ç­;Ïp­ÆÓÉ>õ“‰åØírÄÙÿ¯Iœ¶9=I8üi䫆ÈÎì)X¨vÏ–A­5;‰‘eS…û¸ãŸ¥H‡}»˜èXˆ ¶àÃ'ž j’9ÙcÛ0‹`Ïn? R¹dÊÊê»aAÈȤe*¡rs„aÅC¸6p;gŠvAoõ›sùã­f›¹\¤îÛb P76*-»˜”<ãÅ8¸" ÅY–éõ§ ªpÐ@WˆÇ |¬:–sC1H[Ëuê;y­¹·mç1â™ü[U}òxªR!Äž ›˜eÏ9#¡úzSdË)Æ6ä09Àô¦þgU$sÉëR;äŒùL-'+”£b(ÙŠœFCžøÎ~•gËQ 91…PÊy"¡A"¶ì 9^Äz}jf 1Êä®>fÏùúÖ½ËèC¼F¸8 FOÓÖ§ó8l¯Vÿ‰@ŒíEˆÃÃüiI]¨YãøÃóî¥TdMÉdfQ)‘7(8;i o‡Ò¬ÆÞtn`ë½sÇãT´Q…*ÁŽ…Ãþ{Ò²HÁ0ÊÎ{û Ât˹ªUMÛ4@×oÈão±ÈýiÒK‘d“lHÃ1ž¾¤ Ìi^HÈ> —} ²ŒÎs,¡‘c sŸLZt5§"Ô³¡Ó ¤0¹$æDç?íETÞÂÛp‰]ÂzlÚIíîó¢VŒ:pÏ…Àü{õçš|nK°.8en‡>ƒ¿øT©4:,nÞê)„EFãžIb¾¤Õûsû6üMÒ›ö\Ó´[Xöô[Ûd‰¾%*0Bú«§LdW⮞št¶²Cs;[Å('ß‘Ç8À>µôgÂýoP𗋬ob¹X­-ÙVç/¸C*‘• tÆ3ÏZs’³9œ™ûá½>ê}|ëŠEIÄo1ÁàÐã¨ý+Û|;¨ÛêZzÙOö«k'…î†K6Þ¹=:‘Ï·¥|ùðëÄW^7ýžÛWÄ1êñ) äÑ¿#(ÎÏq]÷†µ ¹ä´”£¬sm<ãžAÀÇ‘ï^L”Û•Öš”lÒ;M2ÒóHñIÇ&¡¦¿Êê‘䍯;{2j+ë%²ñ¬¥Œe8@Àƒ¹~\}8Ï·5×ÞéXi×z‚Ýì‰-„²%€H$ýßsïÉÅsºŽ>×¢ik;PUžä¡—.ãÓ'“ÇLb¸êPRºîtÉØþTD¬óÁY¾ï–¿Ò¤ £ÍŒ +¸íßÅ4,K1,:m\“ïÿש$wØ·åÜ3±sž=ëè¹1È…¢=Ù–_»Ó޼ãµ5p±¢©]ÙÁ#9_oj$‰Zc#2mÉÇÜõéñîpsìÚ7:oSLW¸ó¾K‰K ¶[œtéÚ­¤ ÀªäápFAǧ­,1ÇçÈÊYÔ†8éƒÚ¢3—A vdA¹xÁÏr*ZÉqo³Ë%×*ÌOzmªJñ€2Hp¡N>µ~k‰¾ÌÛÙö1áXî#ןz ¥Dã$ää’ÜþÐÓèY$2A$à:ã* _LýiŒ…&[,O(1×ëNR‹oó°Ï ‚¸ã×=雎ì™ùà.1õ¥bÂcPãq<¯\âžvðÛAÂãk1þT²}™Da–-—c“š‘™ 4È7!ùG`ܦ[?‡ÒŸ„ù€p¡°N{žÆ›³»oV(hmÞÝ}ÇëY¹ê ã7ƒ ò õ8=zf¦¸•FC¦Ü)šÞ`ˆ*¨Àzafyw1Úƒ`çÖ °Y3 ùIb00Ÿ¾¬ýµY4ÿÛÿá±djÔ%¶tfÀ}öÓpHíÀ'è+åHÐgieÚsógŸÎº kúŸ…üUcâ í¬uk)V{;˜Û Œ‘žx'ñ®ª5,sÔ…ÑýC‹«8-Öif„¹Ê à‚ ãÜߌ™.¥®évØ`Ò#\…ÙØsž¹#â¿Mkã·Å=b"ú‡¼A6à6´•ŽøÚçžH9ÉÅÞø¿Äöë5Þ¯©ÎʘS%ÓëŒÿZêu‘Äé;ŸÐÞ¯ñÿáN…pÒj^<ÐQî · #¹Î1œúN+ËüAûhüÓndhuçÕBZÛ³)8ªÿ{òãõ¯Á¿µÝHà´ÌÅÏ$pI=xõªRÏæÌÂRø)S!9÷>þ—ÖQQ¢ÏØýSþ ðúÒÜ&•¡ê÷à3ly-€%qÁŒ(íëžzW”kðQ]qC¡ø7M±~Õvü×ø9‡jüÅ* ‹ºLáz•ëíD ˜òŽyCžÒ­£UCÈûkZýºþ/êvª¶¯£éŠ1¸Çk»Ø‘“Ç· ÇZò}_ö øÕ¬ÜΗþ4¾¸ÁXHN``ÇñäsÍ|ð²[¸Îšc+ó°ç~•2ÅÜŸ«Üï5ˆÞ5ÖÜ GÅõì·;K¨Lw `îÁ£§zæ%Õoef{‰¤’"~bîIfÀ\þ@/ÐYÅIbÈCÇqýiÀ’ mf,Þä}Mbë›Æ†ƒüÒdeùG,£¡÷£z¶Axúàcø©çzƪ»Ê0äãëMR›T ”œuQD1 ÕQHaÀSŸ› ÉöÍ9Ÿ™`@þ[úSTHK) §úÒG¶@ÄKòìR;{Òsº+’6 ‡”«¢í4ý˜ÝPÙRxE `ÒUTÎHltÿëÐXîP îäp3ùÖ|ÆN*ã†ZÝK… ÊGz ¯˜@,¼|ÙééPÉ1Ws¯8`N´öe`Füž­•ëV¤HYcb¹Œ¨4‹4ˆ¸ ã ·_¢fB©#&@ "¸Lñ÷xϧåYÊNáp˾ÖUA9àûQ¿w,w ¨¶1@äàÿèT𬡙Nâ9ÆpGçSp¸år$f!Ø€?­7*ñýâ¹ÉÇ\Ÿzk<•Éë¹OJP¬Bàÿtn{äÕ¦G0ðŸº&M§û¸íÇJO19%°:}}é[n0„óÙKgô¦Îç ¬¿Â â”îÞ'®:Õ9« Q§hݰ璟֦‘™cFhÔe[$b›åá¾LèÃÔóL÷#0Ë"áFp+9Jæ±EsÔwƒŒÜÔ€ù®wãÌÚ ŒqÚž¤ríûÜŽ?Ͻ!,€#f)éRš¹£M‘(Çjílàvüª@2͇ ÆÞ¤úQÐüûG±üi˜.ÎÁ°“UryD(Hà™:œŽ~™§ˆÇšÀãÒ3HíbÛ“¿sQáI Y£n™Îy¦ÁÆÄŒ¤l.zf}ÌûFŽ 8¶fF@¦&Â固`Ji$EÄ8l¶Nvä)êM<ùfÜrQúžOô¦!˜PG^Ò¡=D1€í€Úš•V5vÉž¸ý)Tª¨}ÿ0ÝQǢx;¹ëõ¢JàJïÉÂç<±ãQ´5¾ðœñƒ€? b¦Y˰b½ô§îPÛ–Pr ïšQVTþér¼dõnŸJjÑQÇ'#¨¥Û+°T#>€‘ôõ¤UÊ¡Â!nÁ5n@™‰Î3Ó&‘¢c)!”œdSÎKžP­Ó4Öm±åFx!kkš—./ŽïLˆÈ †4¬£ìÁPlpB“õǽ3Hlð c“EÚãßjŽBÜÿõé -º<8šk`©,Ã`îØüéÌ7äíŒs¶—3!ŠX —pïõïOÜa‡šq÷±¶¡;ÂŒœ¹ïëùTŠ#®$$’1ÀéÏ×­"®>7<…EhˆÈ9ïéN%bÈÜBåÕc>ßýj…ù»cäóÇNŸçŠ{„$6Sy\ùv©lžb6\3…”.F žÔôÀBãËdŽ¿µ1—‘÷ò2IéÚšÛÔ6õÉ+۟Ƙ‹:¹#œñ×Oµ16ª1¼ci GRÙéô÷¦í`ÜŒvòCrE)f1¬ãŒ†~\ÕEئń>dvÁJŒžúZîkpB®ÀNj"XÇ»ÌÚ»yÇÜÔƒq·Â?•w+‘ÓMêÄlø%7.?ïš™dfv…— ”¾õ6"OÝaÆî[#¬©,Ä®2Àòõ©”‘­6;ýRFp˜Qò‘Îã×éS!¶ã9—ÿõÕPP ÈøuÏ\šyÞÎß2ùg€ùÏŽ?Ȭ.hËŽA^¶Xãæ„™™JùˆÛ‚àÃ=3ýá×5%.Û‘p+Œþt4‚EC…ÛqÁQ÷‡§·ó­ÐKRVrá™w"ç ÷<ž•4E…¢…)»r§ñý V¶no2žõ]aWóˆÍ#ç*€’y=1ÈÿëU‡”Í4“Î@¡= dp8é‚O­D&'ƒljÒ¢’£äÏnןҥSÔ‰½Kæ­Ôr¿šZA½8ÏOLy­‹ jK-Nà–ñF#;¶©öJåUË}Âæ?˜ò>lÿ“Š #¶ì¢~Q×>ÿÏÚ§Ùô9ª3õö@ø×5—Ľ7Âü 5¾¦|,3†Pÿ1Ë/'ŽxÇ>¹¯Õ ?Ce¼c;µ½¼›™@ù#'¤dŸÃß¾+ù ð_o<ñ+K×lRßṲ̀·ÎÁà}pqî+öãöVý¥¡ñ—¯lõ(­ Õc¶ÝFòùŠÛØca8ÜHÝß#™¨©A§¦Å᪴ì}‹{³4>¸­ÔÆVD)1T m$tÎG=?žía¤Ë'‡ PÅ?{û 6äôîèÞ)†ÖãÃZ.µ`&ó‚ü¬2FrçÆ?à5wƒÄ÷–¯e4pîÞåqާ·=;ãּʱå¼^-4*$yƒs<€Îåû¥Ƙ‰+!tl¡;w0þµ3³I#Å”8éI. t,2q»µz©bbfC BÆàÀ±8SÎî|Õ#®ìïLvf†#) •ÀLüØü©ÞYX”¢üÙéž‚ì]‰+,ÅTýì·&•¸ U‚ß7~ÿÒ™–9,à2}à>é©Xæm pq×µ"Ã6(eg}Ã;I-×éRÊŽ±…Lí)–$gãÒª³†‘W 'åÃp}±ùÕ•Øöé´e³œŸZ¢¬È\H줶øÓjã…ÇQëHDÞJ…#æbÎÜSJ[*»rÀ¯,ü)í)#k8œƒþ FZÔ‡hÊÆÄïêR*gGÞÂL0SÀ_ñ¡Ê¶ÐAGËó`ã¶EÊ\£ÉˆˆûÛqU¸O0ðÛ‚ŒçΦØc ;ÈòF7 ¯Nݪ¬Á œ6bÀÃ3Oj„‰)VýÓ–FÁêPÓ[ŠÅÆ`ŒÛI“8ù›¿øóQ–i“j¢µùïÎ?:Ô%Ü©ËmÛ‚Ýôúõ¡Ñ°(²>÷<~tÖ¨›I#ÌÅÝ9 Š˜UÒ0fn r9úÑo“8S#ç¯óÒ˜ ”ɸ–ºv©qÔÕ!ìáö¢îŒ(Ê€3ž!³ã~$ÇåLHä2íUs`cj–@€Æd%Èþ%/§=èÈB[qR 9À5;Æ%MË€NÐ8Î=iŠÎgùór ?ýu?Ë’™È§¡’`™WÊ rê~ÁÃó5+”U1 »*ÜŸ¥5C+6G<†ÝšoÈѳ#<¯±Íhö(ˆ«¢(,¾Yäüêl/”AÈh*dBØãiôýiÑ3e ,¹ØUú÷¦VÜÊÄr r}êVª–L°àõ⛓fn*âàNÿp±ŸvÇzhÆU6ž3Æ9æžTp¤)Î0 ¦³Ÿ £¢¨\˜þ5ž£QC‹DdP«>G'#Šn°ùUíëý*!'îù|ހɤe;7!]y=áM\¦„>J‚±ýÜ÷äÓ£ÌÚÃi#ñôÅ,EK:…0>nŸ‡Nhýʘ퓸ãI±(ŽB¨Æ7+œvþ´¬å¤VV*€;‘ëM®ô\—Î~ltúž”ªH€H8 §Œ{Ö­&U†©Ë¡ŸpåˆééQnÛglü¦žÅv>àFH Ò‘åVE`Š˜d3õ¨ŠÔ%"L©,ÛB ŸÝnÇùü*$i£u\7̽@>Õ**¡›Ëlä䜚ˆaØ8)“Ïá])èdäH±¿žøi^wp3ëMåZDÁ-݇áQÉ#dÆF‘r6·šˆïTm¬‘÷}+9&Ke‡ey¼²ä¹?Ý`u¥_á ®'¸ïQª©›j¨ ªÒãl‡$xž”ã¹#_8VùFz:{Ò!b„0ˆè½£qmã €GZRû7ÈÄó¸ðWm ±OÏCäô ûÔ[˜FèËœŽrzŽôÿ0Ë)rÇœ¯=(NÆÄöëS¢!j @¤K€NyéC.ØF „úóR &^Ëcô °Èù°@$€ÿZj&¼¢àøPGÌ çþ”$Jx}峌v?ýjqvTìóWÀýï|ÐË1`€['ŸóÒµKA¨€PÐŒpCp:Óƒ2ÆØ"5€<ŽzÔe¤òNÕ €sŸñô§œyXœöÎH³ìo•ò1Œóô¥‚9Þ88?v†P[æ 0CsB¶ì `01Ž™grâpcÚ\m;›ÿëP±<üÈ pp éH~èÝ’‡Ûš“#.«Ç9l~Z Hh(&ÚQd$dp(^T¶SËgµ1ð£ HcÔ®y4õ'ðíM-=•pB8Ø–CG¹6‘Œcq†j4u ±]Ç?1__|Sa€ €¸#õ©nÂm–ÂX̸f8üi…KL ©Œ Ç¿PI (qŒf—ÌÊm]Œàƒ»®QV§¡“H`Eû<µw/@T‚GøÐÇå$ï@@àó‘íI–ó  ãßëLbÒÑKpyàôÅbDP>sÂnqô¦62YdÆî*EûÀ'€¤pá•‹|Á³1ÚµM"¹QYi¾\Æã¶3Bª·Ìí´àãŒ~4åq‘ÆåÇ<ŸjxUrÛUŽ:ô©æ%¡7ÙÁêqšU;¢FTuÁÚ€¦`|ÿ{¸¥*V4Ûò£ëõîj¬CŒUß‚[®r8"†E8rCuÀ¤ÞUU‰`GÝç&…2Þ@Ь•ð@~¹ Ã#Ó¸R:œ¿˜Ãn9ÚÝ)7)@±²±Æ4¢‚R²Å,\œf—z‘ó!dt¦yd#—8Uâ†RPm9Ï#hÀfäŽ0ݾ•-ŒjÊë·æOp8ÞôÄÉgfãnÜT‘ M–ÛÐŽ´‹å—ÁÎFhjàHc(³….šŒ)UÀNàZŒ+Û’ Tê±°;ÔŒž„óô¨°ì r&;£Çý)®ÃcððWÛÖšTyÄg'aåJàAAÏÍ·9Ç?¥iddÐ I‰b9<­¼“†Xô,Àç?Zvpûv vÉéMfÚ­œ‘è®? Ü¥@b¥”í9Lg'€«ÇÔÔg¸ƒÓMX‹¶àÊ<“ŒƒL*L»KcAÚ@qœŸ_oj–šnL lUeÉlàæ£u%†Ùì:‰¤ Ä ùˆëØþ´1PÁáœòRˆÜIXF<¢ÁXÔð1¼¸æ]²eúä ‘šadpO”61è?iÊ„³ÈÑ©\g9Ç=¨å±ž£üÍÀ¡\ןƀ² ø8Â3ü©&˘ü•úÏ“Fµƒü¸%W’=*&´.#„ƒ¸äÎï cäN’‘çAqž {¶`‚sùÓvô;x#‡aü©Ä™2G £~Z «òŒãôïL`Ï’Äg˜7_­Z¶¹šÙ̱4l8f ŸLÿ…U ·a.XàÇÕ¶f<114ŽÂE+ÁcŽ{SÀÿGÚ2™ÀGCLdym]UQv¼£;Øœ€ßçµH ´eUF©ÀüEe(ê\eaàn…xl>0zÐ »d€ÜL“ÅEÔ.øó€_—ϯ­+JÆ'*2H Jœð­Eš5L³µÊì?¾,H 9÷õ¥$µ]Œ‘J¼mÙ?þ½GÄlb0?2Éó/½?ýeÀH!MÜasÀUó ÌŒP`¹ U0ç¡ÅXóÚ74î# 8Ár)»°à)iWnëÇõ«Lb\íÏÝÀ9ïCf±$ aßÇ̪OôÏ"lHÝehÓ€UJà€OoëÍUŠEYšF á÷TàûqZDÆlƒ«£»¯&7ÈoAÏzI\¹l0(Þ +ùkó*à¸pH=ùìjƒOæFt¢*r¤tÿzÐgh s/ÊQ]ðI$wÿ=ª„»¤×ä‚@RÍÇ t÷ôëWìí¹ÉQŒŽvÙu‰>b\Ž_ÿW5ï_|coàŸÚƒÃ>#ŠëÝ=ePÈ®ÌFÜH³Ït ø›¦é–ðÉmu$c71•D¹aéÇ$ŒSö‘jÆ F~äøãü%žµÔtíRÎïLž"ñdG'h@z¡pAèr+Ûì<Ùao-®a†UÉa“¹¸ß“ÏO¥~{|7øñ'ῒ室ºðÀ³Y&Øçib¬¥6ñ—dœ×Þ^×EÄÖщZIJ •$Ÿ ª¼ž ë×Ò¾o4©ËÊ{Xwu©ü¶?X©Á á8?\U‰gÞùÞ\LŽþù¨…_·.Üg9ÉúÔNi@@ ÀÉßñ¯nç"Ðt“H #¾#U;0¼äûÔ€lU Û±ÇÖ›ÌD1 äpTúéB8xÚ6f$ýâ0I¨‘} ÔÑÈÎK³ ‚Œp>˜¦à}œ (~nýqƒùsQH’™T¼d1êÎÔÆ7R¥Îí«÷‹äz÷ã½IÈ$*‘)E,¬?»“œÔ’)v4–§LÆåâR78^(Œý)ënˆå\aŽÚr==(LkR@“’osó`})í •TFƒ+÷€ïVÖÙ’üˆø-ÒS×ê1Šlzt’[Ë.ô ¤†'ÓßëCzš+"¬²*äDmGÍúS%™Á!~Q´ cŽÝjÏ”Ã%bB±.ù¶¶1ÛñëPeZ&fñÛzâ©2%¨©³È;FnA*})`ì@a†ÝÆOøSJEöU.¡W+À¸Á©ÈHÕˆE(ÃÎ9Çô§)\#¡ó™1bùGÒ—+öÂqÝÇcô¨yæ…bB#åã#¦jñ¶Ž8âXßzò\m'ÛÖ²rH¶SUÄLȘmaüCÜ1”2ç{‰gæ\oéSH<¸¶FUžG<žßJGû¨å–L–¿qŠJA(¶«àu]¼ÔìbóØüØòþ@sòŸóëJ­û¹©;sÉ÷éÚaãÚ‘|ß{p=zU’âî>%O˜·˜7)ÈÁ탚— -³¯-¨®;óU‰Rš™%SqZ{¶È\)*dÉæ³fÊ"3íñ‚Ä}Ò:ý2h³¶Ü€o;‡¯z@r¡ÈVåŽ?RHyc¡Ï½hž‚c·m’`[wsßÓ“OÀwÃч9¨ü½èÌJñîàô4©opäÂÄœ9àõ+V!îv‰Uc9Ϩ÷ªêBÈ!É* Çÿª¤Ø ‘“ÆKrqíÇzhÚ$EÇ9ÉÃ`ƒþhQ`€‹ †4hÑA(Ýž¹ö¨Šù°¨FSÐbó°aÁQ÷ NP¾IesèzгF‘HÕwG£qô©1fe;†@fÇò¤(¤’ü§'çš{K–Ü&P da†?—Z‹±6†G˜ëŸžBGÊœ€}}êgæìyAƒ’NÆgÐsÒ« €» ¯4äÞ 6å LuZ«˜ÊȶÜ2·V¯Lõéë†VûáIÈÇzd§3hØää89ÏáJÛwÂÀÁNŒ½qØûÓ1 @%@xE:Ô˜Mê`!zàzÐË'ƒØddSCÎÿäã½h¬$î8XÉÀ)Ž€çëH­û³»ä8 =}óF6e·Nx¦m8ó rxïíïYÉêh´CšPÖßyƒÏ'ühûÞU“ ûTK¼rÏ”·aVQ R¥äº8=Í7 ¸™Ži[sÜd¨À§û¡–,¸$È'ÜÓ©¶BP»ú/ð÷ÇéªÑùŒ„ÃÐzsëJ,Í«Šêe(C—]Ù XË=¨x‚Ä 4Œy9Ýž?çÞ•¶ °P,)„[ƒœ¿çšÝHžPVe@Ç™œ‚=i€í‘˜Å‚:ü¦˜‘eYT8äJ  ¶·÷yéïO˜Í¢A+Cþì8Ž3ÐÒ>ó;+>Öþã H@bRX÷ãûç4ïÝ»wDA<úPä ´+6îÚw6>QPœ‰Ã0µKåêdcòó¹§FP•@@û¥#üúS曜‡ù°@ù†:{ÓÕ I$mÁÇCëH j\–ù†3•Ï(.AGÛŽüuçôíXÊL¸ÆÄK¹F”pZC÷™•×p9Æü)ÊàÈÞ»²ryö¦º´§;PÎsúÖªz é¡!Ñ—¨ÖœYw¨{Î}i€ˆÔÖBÀebP6•m£ У»ïOÚ‡î(7q°žìŸÿ]FÍó ¿tŒ’Ni‰Ìc#pŒœS‚ @›q»$ØúPæKCUK9êÃ3ÍLÉ™b(vçQ»ËhÊ¥Šò? n,BîÎòxöëR„‡9xÁ`BàñÏ?Z ü‹»ïž qL ‡bÄdžG_ò)äo—‘¼¨ê[·øU¤>qÙͳr6·ëMäÂTÔJXÈÛ±Zq ’îhñÇ zlW I¥NÝŒ‘N*\±êx¥%†}sNÁüØ`NsŒgñ¤£r[do³fÕòqŽžžÔPª¥¿»ÎßÊœrÄ—ßž þµE&>Ð hÈçžhjûå,{[œŠ\˳†ÂéÆ)Øgß•]€}àG?ýz>tR7£wÈŸ¥H"5É$|Àex´Œ\©ù×#‘Á¥Ü eI'£v"ƒ±@y@þ¹ªW°ÅÈLñœ`㹤$ˆ×8 Oô§4¬„ddçÆ0à6pAãŽ*­brÛ~EÃû°AëéNW`ªˆAV*Æ­H–3yó[|@‘Óè)ä²|Šˆ†y@Ït>Ôõ Œ–,á#Ž;Rr¸–ã2Z|7F<ñëL +Ÿ1Àà•Oµ@-æ3`ôÛ÷¿Â«ã¢zdIØE†%²h<ž*"Á–¹,[ŒëJËûÝêA_âÑ·h n\ó–Î(æì9…ûÑ‘ýÜóøSŠ‚ÄòÁ=½½i¤åv‚BzS9$±o—¨©0¹+c”PNF7Öšv´eAl(Æ3÷ju2ä¨Vó:f RªÍœ)¯Š›²ÅšžŸýzY (JHnX®?J¸î62ª‡ Ûž”Ò+# Ûç4ŠÄ²°È|r@àúÓÌŽÄŒ;’;zD R|À?x qJÎþN0T‘ÔÍG°³ ì-Ÿ\b¥ ¡IƒèÃ¥ BÔ™•A9$qÍXGùöûTi´$™ 09\œR†ÌcnÕ@89¡ê8Ù{mÜ9ldý)A%e c°çñ¦…P‡ÌPê_œÒdï¢î^åhlÕ+ƒ òFæ@½‰úôâê¥S†É`zŽÔÆì œóïNUPȪã…^ŸŸ­f"ˈ`”mþ´Í¥L0nùê)Çhq€6ç€Xåj`˜_vþ2r:ŸZE‚è玦¥Ã¬À$¨a‚çæPqþEI•ûB°(FÜrýýêî¥ aXa¹ÜÉô¦|ÃÁm§*; V(.æ\‘÷GzqÏŸ‚XÇÊz\P7¡ I—ÿVÜ|ÇTˆA²üÄq·ï cªòNBä°M+ìFùŽòp^Ã53v%=G¡"E`ìqÎAú”ÒX®3ÁƒNlÀFü*DªTÝÙTÿZÍI’œìÛåÊd<üØüj$}¨YÑ÷nùy§‚«~˜à}jÂ¸Ú ‘ä6óŒ}M&Å,…l«:ä¯JV߯I,Ni§;YT©ëÛ¥NÜ’ªÁp¿/ä(R) û² e| u±Å+”|¶I8‚I>üÒ•e@¤!qÇÃ"°$pK{U-IW¶býÙO—ª§=iK—+åäà|ÄŸÏð¨ðÜw%¹ãëO߈†PÃÔõÒ®HMˆÎA*YJtÎ:T«òàìåA(Ûx÷¨W/ò•à@_ÔQ¸mP6çoÓÚ³hJE±&ãûÍʤmP<ûTAÏ™†(Oš Öñï$¨çÃæÐÃ0,½~´¬W0àÇ`fi0IÚ ãóÞ£bÃK*·Ò¤W!ØWhÀ ßÒ£vR y¹ Ö‘v$v`ž¸çB¥)bŒÂBªvñëJ`uV,Ht‚)Ϋ8Ø08¿ÏåNI1¦);¦Ý*Œs’3šxÁ,¯»~܆Uãëý*TÇ€€íÜG8AO“+¿÷]9<Î¥;1¦D‚Í¿· ž§Ú§RFDŠIÏÝÎ?…F´(pØðIêi’ÌwççëZsÇò§.`à¨^ANiÅ4Sa‡%˜d~?Zb9r€‡Ïñ íøjÌx*ç•'…=ê^ ®8…Û¼1Vî[Œÿ&ãª[d¶21øÐÄù‘’Ѹ¸ëÇjYóﺎsŒséŽØ¬Ú°Ú¸ï/ÌBIHÀ|qÇçAM¡ ‚>^ÝÏÖ›¸€T ÿ£ÈÞ6qK™‡ ösægf;r¤‘׃RîÆcDm팂I?AQ&û€epÅçÿ¯R݆Œn$dü'éK˜R‡‰#3à:¢ä(Ò+ 2œ’z€G§ùõ¥Ë ”&@E9^3ÿë?Ö£‘~U]Šq†ã?Z®Tʇ™hœÛÆØûvä(z}iænp ¦ÕÜW9ôϯøÐŒDG(©wH"’FˆžX8ÿ’Ô•EB7eÈzŠQ"¯ïËÏ!äzõëP.ªv”mÙÉ=~*Ì`n æ`ƒ‡çï§­&“5Z‚Æ""ÆïƒÒ¬)i,¢ÝÂÿë×÷WiÇæyƒ#%Ta·?Jµo,‘BÏ")†ª‚AÇN©Âj$7r' äqmY 8Ã)$ôOoÇÚ¬ªº)IËm<ŽAÀÏ$ŸóŠŽXˆ·Bš9A$–¿§,è,V)#•ƒüªË'’9 榵m41pw>‡ø àø|ñ^ ÝÙNMÕœ¦ÒXWb£¨ÎâýG cêzâ¿R>øKX´ïköVrk"Ùc¸cO7i]¤ŽIÿ ù/ö¶îüetn,Òæ;ŽÙváœ98o—’=Ö¿@¼=áÛ¿øGmeºÕîácÅ%¶È÷9Æ8í^W;UnÆôèó+žÄ¯¹ûTbf‘O’’œ†nyÜ:ŸÊ¼×O²gŽïÊ’ K«9r\eÂ@a˼œc5ؽÔÚ‡Ûí‰rÌÛS/‚zŽÇ·ů…5 >ùu(e7zmô˜*²A$ôýÒr[¿é^V.îg|l£cù°Ea*lØN2ãn@ÆFO½Fb™œBœŒ€ÜŸ¯ãS’í¡b§nFò3è;ýÖ¡i›‚íªœ62@éÍ}ZG˜¯´Û¬›³Á\ŸoéC9•”1*váN1Ó¿½=K‡BvHˆ€ œSçs Tgç—cŒVR"÷%YXBŠÊÄ€F Æ=)"²áQ’ yÖ—Ïq{p[‚3‘ëÍ0Q€;Ÿ Î8éßß½BBnÀ÷ "ÂŒþa%F3Ôçõ©¼Â’– @vûÄmŽ•CÏò䯧ÕÈIKnxÇ?­¬¤ËQ˲Ϲ&Ñ–9,zÀSLó¬‹"¡LƒƒŸN‡SÏr¨…ÜòO-îOøR’d,lH˜ð éUÈÉç1vG+¨B‘È휓ޕî6±>Xà3×ñ¤’$XU7 ‡ÓÔz~>Õ€J£#2Ž·ðLÒh´ì‹â0¥˜Ž†¡r"g%a@¿ÞËcËÚYÑ9ÁÉÔü’»ÐBãpÇ}Ù,îŒävõüjXÌ[SLÉ?…h®Eõe,CoP¹!¸Ï:T`‰µ™AÆy8Áþ´"ƒ0Rs®9ùc^™Ç÷¥rÛ\É(PB窅àTf1±°0O9ÆjL…/‚®JäsÉ$R¬åK¹Þ«Ã°ôÿëU¤EÀnåv† rpyüi'.² Èû™sÓ‚}}©‚Fß•UݱëÏ_jY3ò9|ð zT´Dµ‰Øæ4Œ±÷iÀâFÚ0ü= >µc% /ÐñíJG $¯¿ïà‚6äät«¶ƒQ#1î¾òÛ³œÕ+ʬUq‹Ãã}>•rH²aHPz©þu+Èùg3иÇò¤>R?˜ŽGËÆLŽiûU@»Ðÿ:]Îc.§# 1$d÷40Yœ&áƒÕúõªâlc±ÁDg€Ý•bÉSóz‚xÔÒŸ;0R‘`gjsšjœÞ«3Oïdàæ­&MÅÇï†dßÇL`qþzÓ•I<(çñÍN¤,8aòìî* H »+Ï=ºw«JÃ0f”‡ÚgêMøEUùœ»³Ÿn*6b»‚1@nIühW9s´Ž…@àš½Å-ãp,Ŷº“¸àç½5€WÜnF>ÔI2‹pŠÁGññŽ{ÓŽâpp8zpjÑ ‘¶YÁu2z…+H­!t÷{‚)¼®1þÞÑÅ*H–î=i‰‘ìa÷ù #ï)ïéR"¬ H\d‚—½=™ /’ǪNy§c"B@]«ó*Ÿ_zz¢lDBH¬¹TÇ<÷ühX‹/ÌŰÏj`Âm§,0I©6Ï”)Œ€AÎ~œö Ð„åBç9`Cdv§)£ÚŽ8éOÌÎa@ûÛ±RíÝ×ERŒvqúz~4q± ±÷ýi º±Ç–ù{ç·Ö¡ËP½…(L#ç(§;y¥Lˆ× «Õ¿Ï à À—+€3Nóê¶‹¡ª`_’bÅI`1Žù¦|Å|ÑêÇùTÉ!$93Ž3šFbNݧ cÏ¿j¨”We.Ko8ÇðñMhÛËü u'­JX‚äøèÙíRd7UÞô&¶µÉå*mýÎÐúñÀ©\~qà‘þE+0(¦G'8"¢ ƒ’Xã€I?7ãYJ$Í|÷¾^£9Í!"F@ƒ ŸÖ0Ç÷b‡¢ç¯µDŒ É,0Hè)Å3+ؙݘ•,zÈëŽÔøùC ÞêI$à=ª<”c…c’£#ñ©¹C ÊGÕm @#o »«c¨v·Pr8lu©w’€YOECƒúÓ €ãåÆÞpNqõ©±|¢2.CeIÆX'SNܪXòU†jV9Úä.:¯Í&d Tr6ŽH¢Ã°¸U]ù UÜ ¤ß‡ù˜®FG9?C€ “´ŸN¸õ©B³p£™¹ÅZŠ~U.yÓÞ–5Ã, žäu¥MÛ@ ìvóBI¹Û„“å?|w¦Ñ-±gPÑDsëŒÿ…:Däe³…àŠ…>E w[€Ã¥8ä0 äc&¥¤TCåÊ®3œ¹Úy8Áj¶nà1žƒno/’ÌÃ_𦤠’$ʆéƒÈÎqP»¹Ëy©2wî8E#-š”gÜ…Wå댓þœ®2$+m Ĥâ§l9bAàëP–ýóxãoSAvT9\€}j¢‰Ý ØI ¸<~´Õ'ÏÚN7sÏZz’_®WÀšD¹Ü÷§c;“n»ÁFIÍ 7&ª¹õ¤Îð­´lÉ'¡§îÃ4œ Ž= L‹Ž¢(ýÙ` zŽqLáíÙ\zäþTù@`·4åF€C÷qȤ“¹M!¨Xà *ž½L§ ®{ب̮!‰aÀRAJe&P ž{ V°îZVù‹É÷£–²JéÈÿa—%ò[}àÀn¤w ²@9Æy©ljD£ËÞ¤‚Îx\ñHÙòØäÏ N3Mù]@u'ŒpØÿ&£Éa·nќǭK.6ªàôà/|Órᜓ҇pÊI `ü«ëùÒÉ6Z<•ÁGjÒ†õA*OÎsÑHäZr&íÌaÁÉn3ÍFÌÛXv`c<Óã‘Þl¬Í÷˜õúsDÐ)h†™BÀv<NuŒÉ ‘UHà„})X g.8=³¥3çY„ˆ‚Ù9ãE…À ÝàF»—³‚ˆqøÓC†Èäzdç>¿­+’$uùWhõšÎz“Ì;#!2AÇ kdHÈWéƒÉ¦€ $Ƨ +tÅL, íuw&„‹M4A›ËêxË‚;Ôù\· yÇO£.lp¼räR¶ý¿*å1ó)ØâcjŽ\1ìÂ¥`›GU`½ <ŸSþÍÀ‘”ÚÊ4Šë$e1ÀÈ*8>Ø©‘l€ä–RÉÇ8 `Æì:ªÇךw– žIld)ŒW9ÉcÆIÈ¡ÔsŠ6–-þÐïN'{e€”ån>i8Æ(-$HÔ€U7cÓZˆÄQ‚“æŽA?¥.å$>Ì)ÝÔR|ŸgàÈ®}ê’d±TÄ:ÆxcçštŒ¹Â1ÆÞ_Èý)K~óy2™;äškº¬lªcïŒæ©1\B>ë67cååÌ—MÝÜT“ßþ±'hÙŽ¤Ž TáŽà g–ê>½©1ÞÂIµ® ßt‚ þ4€å6ùå_iè­Hª²`á„XàóLùYw¤ôÜSYÊL•©ckeC1 @9â¡Tœ¬~þO_jyHÊÌSŽXšnÕ'$–]ÙÜxçã"†Œms¿®Ò7üsüªu FìÜ3õÜi¥™¤"Ám˜/qß5çóƒb7+Ý”ð{Õ7q¦J#ó®ì'_½ÇÒ¦X¶DãaeNücž¸î?Æ¡I39U,vùqžN?J’F̾qùCtçzv¬Â$‹-ÁvÞ‘2½SéD,#›z»8?xއ‘íHr2®0@ÜY{dw§Àí4N‰œícŒ~•KC½ÁÃå †;†çÀ ¨ÿ PTÄ‘³€‹Ñˆ9'ß½kɱ¨Èƒì=¨!ÑNz0ëÏZ¨²–ƒÂþïž›£${û vïRù¬cåŸ$à™=ùüETÎù°È ¼Ê~YX?*0HØ÷O¯o¥LÒcRÔ˜ùjU•ʳ3J¥I ©6q#F?ÞõªD¿3§$:c?aVµ |¢6nØÝùëŸëÒ”†’eè„sÅæòJ0`8'#=êü2†fe(>ò™½IéÔóùÖwÏ Æ@báC®@ýñnŸáû=2…òe™BZ¼ŒÍ3t9Èú j»àë{ ^[Ëqla nŠ2¹#î‚2õ÷¯!ñe½åÎ¥e©Ú,×ëå…‘~ñQ“ÎãÈè8éÒ´I# ¼‚8ëÁÕ&TÆA13í.ìš‚4t`d_ýâGåQJÏ‘8Æì¹¨v,vîeòÔð;äNj o)bîÝÙ”œôàcÿ­Hd7•…qÁ'޽úÔÙbä4Lrù‰àöSØpc•qÏlzÒ™F å[9^Ø>•Á>bŸP2ž7«ó¶8Ë})Ù HþòÈÁYQøõ§ù¤Ë†ÈqȯáM).Y^UÌ'>µ,‡÷ ®JtÚ玢œ†¨_(` !€= ëü©¤v9ÛØ'ÔÓüårÜ;üÙË`éI t”—Ó·¯ò¡c|ÈÄ U'<ƒì ü¿I#“ýX >ó©ƒùÒ¤`ÈPØ£$`R9Sm¨‡¦äP1×ëŸÂ­¡XŒ,N$©ù©­Éuǰ'ŸNiå×Ë «c Ztm²PçÊ‘ÿ¼NGL}ekŽú ò÷Kód:tæœS.ÈÚ>n:sй¼¬áQU[h%·w5X3º…É$ãŸoñ«Zâ„m\g<’iëË| ¢‚cvÁ„çëM#r¨€=[ïRm ’\²óŒñŠOÖ1ùYâÀŒ‘Ò‡E-„u$6r«ÁÅH%l”Ï8ëU¦î*)iJP p1éÍJR)#P~ïBSÜUeÇœÊÇä4ø›ÊºÛ¼(ìqÇÒ‡#t®; Tn=ù㱈Ú"¾fâ[$g §™LŠK—Œ‚:ãµF"!·l±ÇQŸZ›j!¹¤æ^xb8Çaÿ×§!HÊÇ»Ÿ¯¥DÄ“ÆAüóéOÂeNà‘“žOôÅhÙƒCY•y¨¬Ã¡NŸ@i˜‰•w†òO;‡R*yrfÚN6‘Š‹árÅx`: •{”´–FR¨£8äžÃõ¨[hvùXårp3R¶ñ¹ÄAÆz¯_ÒšD¡ÎÒíÊ‚?¥i&®=”ïr•¦yϦ1R6J–`«Ø2u?áô¨ãɶ&Có($`ΤndÎyÎ091"”)SîaŽzsL8U«×¨9Éúš”2"àŸÏO•ÆÑówÇÒ® Beb,É™dR›x P&Ü‹¸çæqô§ƒÃ# ŒmÊ›… åTPÞTŒƒŒçùR¦UÖ6XH+µ‰Á?Qþ"«6U‘Byƒ š{¸üÛ Q‘ž„q×ÖŽvgpl‰BÆ”u=E/cž¿/Ê8СØß/\ò}EY%Ljª­„m$ÃÚ¡Êâ+®ámƒÐò[<ŠW*Ê ##€éIŸê׿BÝ}©qóÐ+t==êXù…’2IÄqŠ˜ÅÌ»1È“P<‹‚0A#õü©ÊPíãFÐj’Ð9‰©]Å=œópI$Ž}ªd,YDŠBà g½5ƒBr:žÔɹ.Ð6ªƒ×ojv2ì2\}x¨C·œ ¿Â?ÎiÂLàçƒïKQ’>Öû¹¹Ûž>”ÝÊQ <Ïzc1.˜ÚØç®9©›å@Î{ÿ]9hƒ¨èÀ2|¸fÛë@lÇûÆ;OBݹ¥y@#î°<|½qý*?•¶© ªI ¸sùÒƒÔÐ’9!Hd¯9¦àyy”äù ë(ã%1À?…Sؘ¢bÑ.;6N0Ïzk6Ù —Vb2~IúŽÜR…V· gŸ›’Fk0žI)““þ{VW4µ‡ìg,ä#g›<·ãN.›Ê¨m£Ùü)¢?-±À,r@lî ÿJX†õT/ßçÀ¤Z#c"*Lƒßðþµ/˜Ï»¨CÇú™"Èw´ko_ºO\sÇåøÒ dª¼7@ ŸéM±½©eY¢;2àn,ˆŠ5)Ï#øR„ˆ#"6âp9úqWa†³ó%UtøŽv’yü¸úÔʼn°·Œh`ò¹]›³×9üzô«®±gáWÉžÿ ¨–8ã»Â)'nxç¯üæ¬JVxU ’:tü3øV—3w)G#ÉŸïpŸÏ(u0ÈbÜnÞ[*}ÜgñϨƒ*ÊÆB±Â»@{w÷©Á@[`©$(sý+K\ÉèAn%o Þ ÀƒŸ¡ÿë×ÕŸ²‹¼3ៗsø•ã¶¹žËËÓ®0¶î$å²9mÊ9ì>µòãGÅå]¡@m o8äþgò«zUíņ±ÌNb’",2 ƒœŒûÿ“Pé]Ôþ˜<9©YjÞÑ®,!Ó¬•ÁmË)õÉÇøV¾µhöº\v’ÛÈÚTd‚Ö±Á—àxðzŒúø—öUøë'Ä/ Ý.¢Êšž“å¤ÖÑ9(ÊË…`IÉÁŒÖ¿AΩj¾ –Ù¼”KÇY•LÜ–Œ Œóšð3*q¼´=\¹äãËWuVM s÷¶ñQË?™òåü´ ´7f«ÒE’¢ d.rùôô¨®as:F‰]Î:c ÿVEz±VF.Ä@;……CÈç9öüª6Ã\+ D>XnàŸ_άÂ9Y :¿8ÿzTÀ›‚Ÿ0äBv?sZÆh›u¸\•˜¯Í·wüúÓähc‹27$çš¬å—æû¤ ›œSãu1–bÌœœ:M‘Ôb€7+aÔŒóéõô¦u•@ ¬¾Á‘ÐŒóéW€òyGb¸ p{fŸpÀD¹(fòðÁyÏøÔs›(2²#ylÍ`(#hÉÁ8éÞšàÅtU‘ËãžXþR,»r¢È:7úSã7¤»š%y®o­¡-2ºÆâ2ª–9'!½r:3$͹ó!’£#¿Ö¥IÁýçÁ ×Ð{šXÂ,ÀH†æí8©ç‰ V/ó|ä/%›å ù©ÂeáIã þÔlˆ’#*nE“ë×ô©]‹9?urJ®A'Ö‰Iš¦BdÎÜÃ,\©ÏãCþñ¾fànõáC•ic‘–Pü˜ä?¥=#E$‡ÇEEäŠFM«P× Þ[Æ£#p9'ŽÀQ!…·n ŒyMÁãüæ˜vÆÏ*~_/ÿkdp˜=ÅÈ•xª1ÊžGQJG‘#B‹fÎ6ÈAÜÆ£]êØIù€&¥;ÜÊdU\Žƒ=*$ìÊŒn8$yvÞ¬‡–ÛÎ=ÇÿZ›Èû™9Î8Š¥äw«c§åR8ÕJÌ@;qIL©Dƒ1›’ìI`8÷ü}iè "ªßì¿Nj&MÒÜ3p¸Å=@ó¹`©éš»è%r_®Ãƒ®~¿ýjt,Õ_Ì`>öAã֕ʼM³ä$m8ç" Ev© ~ê©ä^:U-É–ƒƒ8QT*ò;ãëÞ•ÔeURêåÞ¢b±¢dù’u šy8bÊüu_©éþÓ‘<ÀÑØÇ$ŸºÞ€Ì#XÔ¨›qÓëÞ•$’GT©fÈÇêzÓXì}ÌÀüÇ-Œ7à: Pcz‚¢´»x*Ç,¤ŒŠ°­ÒF áNÞIËð¨T›xVg=Î9ÿ œ®çÚìFAlç8>†©´Æ’§š¡^=Ä7Ó?çÒ¢v*|¶ ¯'8©d26üÛIîã8¦Î¬ö'Ì=Ãp?OëS&ÚDHÎv©Çž¢œ[gʇ2§øS•K òÝH ÷\˜ThnV©ãh=ûqÔÒ¾„Y!r]€?*ã÷gƒõõ§H$“÷…£Ý€Uùxöõ§+2ƒ¿ï0äNÔÝì%‘ƒŸâä}hHµ"hÕæãËÇPyÇ¿§4ìI &AhÜ.NÑõ´Ö”¡]¥€þ) o1Ôd*\숨ŽÃ8ã‘Bcå°ºc#$g×53)xÎ@ÛÏãRÚÊ¡pÀ|Åi…ÜL26íÍZbjÀÀoåYN:3Ÿð¤…™$WB@ ýhSÃ(ä9<à}i9L!$–ôì)6EõæaCm ë“ÇÖž¶I,rj„nóvŒn3¶œÌWi\c<±ìj\ŠAó «ú´Íûd qòôÀéK¸á›ž‡¾3S,±-‚†ULr09&²æ)+ ¸±Ú>f’JfqÊ·BAäýhˆ´##¨8ëœb„Ýæ2nù†I9ÈÓ(nv`¬¸çÚ™÷”•1ÉÎGÒ¤b»Ï)޼·ZvHÎà±qòÕÒÈ¥T Î: s.# ¨ÆsÁÀͶ@ÎGz“ˆÇ/ #‘ô¡« ”†„‘…ƒ¨¨ÈÝ¡98&š0ä°É>þ”ýŸºe‘¸îõ&•ìQr¥Ÿáçš` Á˜‚1ŽÝjLå—»îýßóý)IÜ2æÁºcÚ—;!"ÀǼ! S†\`¨àóBå& ÊöñŸëM$ Û´¯9ôãÒ„î'¸¥KE½öÀôí@B"'9ïšYT ’ÈG#¬Ç(ÀôR–(¾¥&«Ñ¼‘Ð{R³ à\÷Èã”›¿xJî@)Ë ÚÌÄ–à05NBC„¹²îŽqNÌŒîØ à“КDes#>àpFFn=éUˆ§Œc…êj«• ŒF Ç¥R¬Êù(Ge<š`ÛÉùXcž;Ó¸iwcØöŠÓ™kŽ8`®I(õÍ4…|ùŒÛ¶ç…íôô¦á<×l–Âàs×ëJ¹U;‚£ƒòÖr`3*‹ÌŒy ¸•I#‘ üÁˆûÀñô9¦º‚˼NÖ§•Ü‹¥€èx'üiÅêfȶ³œpØàÆá@u_—ü)>1¾ðí:w¥U,0 ¸'šÑì5ÌQØ,TÃqǵ#I´ñÀÜ@4ª™-†çÒ™¸FÁ”³½3Œb÷-,¼ŽsƒÒ‚w0_•s‘ÀÆi8cÈž¸ŠIF);ŽAÆh¸7rL ¸UùÉã#&„Xw¹‘7c+ŸçQã3}þ`ííøÒ+ïû¿0·NsŸZ¸´&:7Ë4x;Cn ÝH4ƒ p»A®1“Æ“ ‡ÞŒrG§§;‰eÇñTŒš×j*°>YÉõÏáH nŒ à€MF‹* †r cúv©Â)P¾f êAȬùƒ•ŠÄ´NÁ†@Àãó¡Âo8|À=ÏZ`UidVÁ=pW‘ô©v¨>a ¼9ÓÖšw-+ 1çoÍ·#…Ï8©# êpTs†ÇO­9„b ª±¹'Žz®:Ò_¸­ƒ¸(à{ñªLÑj„,\œ2Ç%¹ã°§G€äHÁ‰èAéõÅ!P6¯–‹•n<Ô„æV‘IF^€>”Û¸ZÃc–% ¾FT=Op{qõ¡¤ýÉØd“!I8ÁÃc?Zb”(}  žö¬š1aƉ¼–`:¿9ô?­I+ÆÛ€H‡ÞfcœúsU˜c ÇåØH\œg¥J@DÎÒ€­’úýi{åå£îPÊöíOw_(¼™dba{zb€„VÜÛ”°,1ÿëíJ›™Ä~Eã¨õ¤Èr»®À2*ìãnkNÉØæŠH•÷> 0ÉÛŒgéõæ³£O6@dÄ­ÎÍݱÏ^‡ÿ¯ZR¬2é½CBô#N:òsŽõ—5™w-]/ïpcÂy·¦OLƒÈª`‹{Fƒp~fÉôúU™dyKä«yåïÁª€>p¨ü,Øzÿ:Ö3F|Ì•äF‰äL3t†1Óžim8îÒíRp;žÜö¤ÚòŶx€åU‚ýáØàû*|p˜Š°1ýœ<}ñM:ž‹§I£Ntå´§;_fá·’IéƒÁ7)޾µ*I!äax\ç©«/#0Pî3ó€xõé»qh„É\g8—ñ÷ëL¾B±wÜ€N6®~èö¦8+ÃænÛýp=+C÷ %Tm¿t(ç>ƪî´jî79/€¯áVŒ¥ Ä”‹FF*ªž§{?:•™ð 0 ß*dpYŠ»Fxb‡å#Þ¬E"²± å…ºö>´š²3W¹’A7–<Óò‘ݽ~Ô R>aÜ.i¡ó*™wôǧ×Þ¥œ” ›ÁcÁÚ¹'õ&ÚžEV •9É`1Ï~Ôí¡Ô^ œääŸÂ˜ž`}±Ü“À d~u*‚@gNW%X/\öM\Ö Å#¢\°$aIÀ÷Ö¤&f·e…9,I_Ê¢y‚îÝ!+ò•è9ô¦p„·+ŽOzÎÚ–äJ§tê È屜~tÙFËŽ¸éÍ"àK¼±Çaã?€©“w0Cœ‚-íô­ÐÍÈnÅXAfÃc1ëL Œ›rñœchãOjŽ3å³H¥Á<œãž þ”¬Á€;w+œu>ÿç­R3lX‚ ªùyÚxoNÿZ“;dù1žN2r¥F°DP[’>´Œ¤–2»uàÿZm܇ ªwʲym¿3d`ŠWÜà¶Å.óßÖ‘ö”eÚ:‚<‘R.Ô@[õÏ zR±q@ÂTQ³nϯ´ªêP³£6ÕÆ<Óå™HXø^ ׯJyPñ6ÖýØùB“Áö¦Û±'™¸çi‡N9=Àÿ"‰Œ7"ô'=*‹)FÛ+yN™\gšp™ÈüN:ê~”Ú¹<â·€7¼g§½âÀ#ålg8ëô4’>d Ãpì 02…O•U™~Vçåã§Ö•´0ìù„îk}ã¸õ©<Æ«°hö“„<æ˜ÊÜ>Õ”ägÇ4ṡ,dünÇóÍ8äÄÈIÀ!‹IZxeFfec‘ü'ËÒšŒƒ•Q¸p ã>õ"” &IÜcNjå¦J ˆ‹1Ú…x'¸ÿ öHÙ<˜Ëzš# Á"dePA?­\H‚6#! šÍ±”Îß5²œcòÍHŠJ€ ƒÈ'n)ò d\‘Ügëô¦ !ÆÛ02¥@ïaG½Wô,xüéÊ?ttÁ#vy={zúÐD~j”±<1lù¦ÄÏ ßÂqŒV°"C €£þí”9ç©þ}©OH¤S‚AÉ<Ó×p#KÆNÐ[§áM Àg%A< ÚâNÄNåi œ:çúÒNTwaÉ¥ÎOj“ÔŽjwýê2\+sž)] êD¬‚Ei|¹‘©<½Êü¨Ã¯@Ͻ1XFÙîGsJ¥Ì„8àõ9¡ÈMX–8„’e×=aQ픣+27ÏœdqNó™$ù‰B:m'ŠwÌÈÁœ#Œ3JìKQÂ!R»Î00pGøUw3ª3ÔqR–ýâ“€ `6q“Q;¸ )猂Qf#*¨Ç#ø fBMûÀútçÕ2F ®Íÿ1;²ÀŸÂ£cˆÜDXùr2m¹–ÂC!PÁrqžjHæ‘ÊpÀÉÎ{f«Ã œp5"#ù!²C7{Ž3Îjoan)(d=ãœ}ãÞžª +´ÿµŒôÆP²³áËcµ;$E´¨\|Üš‹£X¡Å¶£ ¸ëž¨£˜ÙH 9èiêPϵ€^¹Àô§ƒò17CŸåéM‡1Ë8ÁÏxøÓrøcaÉã•1¤Cåõ$õÏo¯øR1%pÜÃÚ’Ž¤ËQLlX#iä¨üé䯝)9dÛ‚Põö¥Ø¥•Ùˆ'øqÁÅ@6™˜‡`÷†+DˆZ]xnFx ü¸ #'<‚iò•Ø 7Ìæê=)®Ù Ù` p½¾´›esÞEª@¼òGzFãæè1ך_6Y€'‚Ç4¥• »ëõ暸¹…ß„Ë!nx;i!Ì‚L±èOZí‚0T±>¼Ó‘YWs ÄðìjîM‡mÜ»rű×8)P#껺g<~´¤°¶JŸîŽþ¦šK)À+éÐVmÝ›Åhͽ GTÒ‚"ÜÛ‰Ïb…%_ÁﹸÅf “¹ºóޥī”mûˆ#ŸsP¡Ä ª»(ï4ðå“òÈ*3øR¾Eu=²sÛ4’3™! ø` ïŠF\)B Œg®M<©•Ë+uTlÆ6ó0À¦fC°°à6ç½.g)óí,iÒiGúÃŽ +”iH\x㊻ wè[À8ü(2I‡læšÌI@áFÑŽ:S [vw3p01L®Qı”? Ç'<NÇÊ6eîÀp§Ö³1 †=Í(dhÂä&9÷¨“)D„¤«œ¦î˜ÎM5É39 X…ã…;8Vù2[ÇãNa–P»XõbsUCŽ£71À¨ì7sšk>Д Ûµ9ÝÏÈéúSs# ä:®f ¬;°Ç€PAØÈÔÆ Œ‘”UçŒC²¸YÛ¡)Y ˜R¤e˜î ãýzw”¦GLÒ¢€FC`÷íÿ×§máÈLõ4X—¨ÅÞ@È#>ŒÓó´NF{‚H>”Xät…4†wûä¹$~Tu)¶ß”9àqNÜžZœg#§ÿZ¬‰Õ²~ŸD˜gc8ã5W‰o-ÁPxÎâØÍ7bÊÀÐõ4ªÄʤ®ü• ÁX°sž§$ÿ… ?k<@E¿jǹ¦†'{'ޏÆ~´ŒÇs(o-Oðç‚i»þE‚wrªçC&ì(¡îyÍ8El°ÿ¥C½Œ…;‡$Ҳ6^BHÎARÐÈö»F_pFÑÎ)>o7r©ô裱ɸ`dñÈãõÔ–„ÚãŠÈ¤º9Áû£¥=JœÈÊÙìÃùSTªœ:…$`þ½ *v;€§žãßœ¤;ØWS…êÄŽqÈÆŸZ%¤&%öädô§m• o( ÇN;S&e$ÈwcµM…ÌHÈȹ—Ü>\ãýj~Ÿq*F~lŸJ‹wÝ̘ã(æ•ec3ÆP„Ï Žx¦¢5!ë¹®a)î½~´™`Ì­ÙÌRnUA 2tàr(|ÌËå¶GVÇmX$Ç+lW;¶•nwzöÅ!lÅ‚Íó/@z÷éNÙåpˆÀƒß€(w~Iè¹éÁ©æÒ©F]˜ÉÊ÷¤V‘œ;ÆORDÇ%9ÝÄkƒƒíŠh2 ·†Á;²?Èô© ¢D,r+(³ŒúÒ¸ ²@…þ\åOzF•VDGlœM;Ìå”E‡#ƒ×õ¥rî˜Ø†dýØWr9ÝÐûûr$9§8Ö•˜q“­·£¸>¿Jx&'2DîP!RÄgŽŸ¦i­Bé ä* Cw3FQ¶¡V9瞹Ͳ¨É¸e ¤“–©çŒ1på“BlU’H̽ž›}ý¨ZϹ¨<ïõÇ_zi‘¸pt'Ö”>ò#dbÀm ¼gëÜÒNà+*‹“|¸l†-žÏzj‚ó 3œg§ãR<‰À}¹SÊÎ?Ÿ8üéˆÔ8Ûß‚?^­ l™‘Ð;þá ‚çÒ¤ÁS@vß^Ýé¨ÌIb¥—–õÇj°ÌÙ•rNð0? NÃH”ºnVXÊ’xÈAßšŠ. ˜Êcv0Hõ8ëU•—fØö†Q sþqRC |Ò‰Ù#ð®išr—™ÛìÒ$n cä~ñÆ{ÔQ4ñDX/ÊFI< 3Ž ûÔâF+!Q†3±'tÿ>´À¡ã&Vev8تNIë“Ú¥HÊQD¯  ™ §QÑñëëQ ªî›wnÎ$€àñS3Û-»*#ò 1NxÈÇqÏZÐÐìîµmz+{(.®.ÀŽ(Ó,çD«²˜Ôí-Èö>´ñ$¤¢CÎíÏZW*2°)Î× e˜ž¿‡~µÄÿaY› 3mpØþ_Z¶Uû̃r[u'¦}ªdsËG¼¸üM5©NM¢OÙ‘/Ì;[æÇlþ¼Ó“Ë\°l*ŒmÇëUÉ-ƒ—Ø€ÅLùLƒžS8Å[!6XŽQ±ÿvv0Úìx ÅVŽ3$Å€~ð±±ûI軸ã=}1Rnc0A¼À±î)^Å%r5U%³HFúôà}ûÙH<ÓÖ¦ÿ–`Èäè¸ôïM•ÿ‚ÌÊØbrsÀééJìnYœ³¸|ž€â§(7ƧvÒIç¿àÔ ê’† S¦õ©".Ò’ß2cŒñ¶™vÐB›``üÈï‘ÓŠš&F å³®9ç1ÿëzT°²§=HN”ØdqiR Âã¯JjäH4Í2?Ë,3À¨þè>ääûÔ“2°R¬ÄŽ8?Ÿ¥ŒmîÜE#§ãW{™=vËÆÜ`6Ñœõú{Tþð¶2ÃŽGzÒ«€Å •ÂÝA4ð¦AØcÝ—½SC½Ð‰YÜä…8•86q¸:ÊÜ`Œ‚)ÊX3oŽ'~ê¡ÇçŸÖ˜¡ßæ`ÅO Ž‚³z -I rfô°ÊTd…8=O­K½˜ä‡+ÓïnÍDîÈ›0‰Û…äÒQÔ¹j‡—C•¶Ñ‚ïíëQ¨ÁrØÆ~ñ<ôéHଽcЩëëJ»X|íî®9­¹š9í¨ÐÅùsØZpû«»plsïB* !‰3‚?j-½S%³Ž=ùúf‘YpT–*Y¬@`ƒ€F•BýAy»Žþ´2P¬¡ä …ú´ÕòÓvU”Ÿ½éùúûR¹}å8èqÁíQ¨A†Á;Çù5q˜ælHI-´œdÐ Afy÷¦³5Š’qÉä~è9_•˜œñCl†Æ»Q×#ïMw>QQÈÈ'Š0 ’¤ãÝêEn£¹`~î}ª– He]¨ƒ•£±§üÂP; dtÏ^)ónQÁ£ íʹãÖ”"I?.îÇ-MN#q‚˜8hùŒyåP óÎ=ª%‘ðj€yÉ¡;‰»ï€r6cp'üæ€B¡(Û”õ㟡¨Ù[Ìùr点ý*\d†ÀbG8íH´ÅÛº0I#°ÉšUUŽ[åá}}*" e=U¥;ô ¿ ÿ=j“b‚ ÛNß 4¤€¹áA´›T”ÊùޤsùT£i—‘´ó‘ÍUбvTîdƒý)0΃æêz¤Â}§89#åç­0îyÊTóšV3h“{7aÒšC,˜*ýs•©LC)à÷ÝÎ*6”¹ £o\Ô0[\¡ùV9ÁïH±°€ÚØ t§)쪀c¦)Ä9$»ÙëOTj‘vî!GÝÁÀëJûzàŒcÚ¤ ä ƒÃ­@Nõ#.9ù‰¥NåŒ4£ï 4ÅÈ•p0Iê©ÊÊá°@cž*4eÛ¸1$ç RÜÎZ‹ (ÿ0%Î8éLÜù˜äõÈã4²ïäç'ÖšÛK`dð0IäûU™Ž ä:'œD|u&‘ʲ¨çÓ®}©®ŒŒ¤¨É¸íà‡^ON9Fr!à2F0E9Ü´ù`MÀýîíÁ€Îsš/as©“ü8n@lŸz—b`I#鶢Üä޽M=œù¬>è뀹çñ£˜/qˆÜ>í×Ò›†ÆùxRŠÀùŽp0 œ»Œˆ§‚:äõ÷§{‰¡<À§<€ÄñOV,lÔ¡ýiŽë»È{ÿõ©UÖ69fÆHÏéI¡&8¢/–Ç`@¤+´¹aêÓ¥;såv+F{Óvà7ÏŒƒY—Ì9±åíV8'= àƒ¡lv8¦89ùUùlçLvQµU_^´™?È6–ϘÂ_sPçd€… þ£ŸÎ¥œ >lƒÁ¦9À1|.[#õ«H.G¸¬³Á8ç€hÜ “ó„þ,ŒæŸÃÆ¥NåÏݨŸsž@šw3d¡‰@AÓ9¡¹+^Ý­00À uÃR•pQ˜˜×ð2=ª›ÐCdÉó1QÏRN)Ëò¨U!†z©È¤,¹vÏùÏ­9—'®ßAœsRÅÊî/Ì3¸@ÀlŠ{8#h ŒvŸZŒ°hÊîœ}ãŸÖ”*1Üæ\îV\Jæ‰L*“ÆOR3øû›ó2œpqœúÓÔ¨\oÇ<ŸãO,ÕH`7u#‚£š5»Œ°]ÌUǯæ9¦¡™g3« ÝFN:qÜŠ5.@DnÌ„ô\œuÈì}é’"†!?( ¸c©þY­ç½ƒS[xæeŠè¦>ÖHäg£ {çÖ²u[;Í3X0Ý$.F3eX=9ëíZ¤d÷3UWÎÕenäÔ’(Ž#Œýáô¤T3oC)à+3p=ø¥žÞx`2;«qœÉ9ô^B!‘<»÷ThÚ0 Lã½,A™e 9Én¡&™¢‰ Wî©ËÿZr¤¨³(1ܲOáþ5VFb³©% däïcÂÔ,ÄÛ("2÷ºŸ\þ”åä,$SžNyúûГdv㑟^½{œÓªUÁÈù³žõ!Ž1Lû ù¹=Ï5;È³ä ³g.ÍÇÔýMCvÞ¬öÛž=jnmò®q’Ù;3O3¢5VÁ9ž”ÜÍ—9¶ÉãœT;I…Á9É㥸ÉFUçtÑGÞ?çšpCò‰9\F:n¾¼ÔI)®ˆŽ¿& ëŸ^iªÌKb) ÆãÐÿ*, ŽÁó œ8%OøÿœÔŠ ¼…HÈ?*–>õ, )f]›Y–Î}ªÈ ˜®åuBèq‘Óô¥Ì7#-‹4!ÆÙè{z•pf—jîÜHQ1Ï_çO+›‚ü`°ÛÏäSgTSþè=}Í>c6î&Å%—瓌 9ëîhx™ãäà3`õ§´ûv“˜€ûÛˆçéŽió?”Êǃ–þ!ïí҄ٛ܉ceö©à¨Çù5Àe*¬FJ¹#'Ú¥–9E–%s€wóÖ›Hç1‚XõR@Ç×£ÒcW)þì³·9PEHd|ª„†?áM%þÔÛÙQÏ F?Jr( (lòÇÖ¡²ìÅXFOËÐò éLu …có}à¤ã>Ù(ux€#-ŽËÐgÿ¯N&%8`TpE.c7¹X¶2)?1xÏÞ”±QÔäñN©e¯zFÚÌÌB\m ÄÔ²’ÐaG„·á\SÈ,¨¤LØáSiÄŸ:.WyãÐZi•J ªÙÈÉÿëúU)Ö7îv±R£•®zS\ưd«y½<ñëŸéLvy%±Á\ž‡ëLŒŒÑÎZ&±Br>RDŽ銑 `.æÎAÎx#éQnEÞ_qìAçœúÓ\åð¾Xp ì?‘¦Ð˜ö n[%ˆ[5$o|0b õêzUe"4ÜéÈ?{8Á« U›.ÌäPsš›’Û"}Ã!víé’ qêqO,‚6EE,?ŒrãÞ’M»Ã0ØÊ;ž? ‹!¤S½ñßq¦„XRâ!ˆF•E»æa‚©Ç~~µ)Œ‚¹ 08¨Ã:¸ß»æ05Wç<‚ˆ8P=j"ÀÌ›°ƒo­J 2ä±R'päú})…oFsÐȧÌ'¨gc†•-”Wd)q½w6ÌÞµ2’B¶ý¼d´ýÛd•×$ボJ…H‘ËrØäØ{Õ)\kÄî9Àê£z<ÀU~^<qM/#I¸ž6ü¸êOøP¿ÆÈ8À?ãCÄgCÉTäp¹Å9$\mÀ9¦:æ-Û2œdÿZ‘º£`!oá^€Ò*×Cœ¦Ö%FÒr»{Tm†Çʱ’½vç4þd ä–é–Ò”¸$¨RYr8ª‰›ˆ6˜Ü0ñž¾Ø¦¨ŒäH2:uæ˜Ã<+# œy§7O$ôÇëZD[„go˜À¡'§^iñ²y@ªË¸òFp)»‚HWp ŒðqƒQ33.p ‘×½6®-‰òŒˆîÌz–ätäb£MÙL…'²¯½ÛŸAP¿*ð??z\1@ŽPqÈ·ùïR“BL˜cfÓ÷³÷sƒšfÕÙ´Ç=KqM9`B:=Ni˜}ÜØŒu©l´ôáŠy«Èô p S–?ìÐA`eŒã4a†å?/¨èqIÔƒ+exþ÷@jA‡Þ)ujîéLKð®pxù¸¤cònrÛ'>µW5¸Öl2ž1Œç8éïš‘rI W<îê?¥G»`¹÷vàùÃoUœÆ«˜†Å“+:”cõÏéš)vC¸úcš:®C.RJk–l‘‘ØÒdã(~ë§)® õçjCÐí8ƒ·To‡`ÂvÚsøPÝÂãƒ<ŨëÐþ½Ô…B>nß6ü)T7•¸mr žqŸÆ™€Ò–Æ% ’Hâ iŽØw9tëFæÈÝÀœn%zîßç½6M®)üϘ®1ÅJ ykž[ÜfšŠË Û¹74Ѱ>aÐõ¤™¢ˆ§&X öâ +™s×¢¤ìÞKÊpq÷½Å ’ ùxù…k‰·rŒìƒ?¦jT`8Übi„oEÏâ8¨Ào3ƒ¸z“€?iƒV†‹,ço<çqÊíÊ€HãG5°Þ (%zzj9ϡۜâ“Fd®§$OqA »ž™¦¶ÿ7nm¼àtô4…N ¾ì‚ëN%­‡*†ŠB1‘ƒ¸ñøPw«åü‚¥JÌ ¦×F8*s€'9=ªp…9äm^£U@8IÅ ó €qޏéïJÚ,•#…ÀÇøÔ\MÜp;«)}Þ‡4Ö]¨ûU’zŠf6¸“îœóгHÙ`ìZ­CD"Ÿ7 ŽÇƒRÜJ— À sAbS^äñMç7uÅ$É%*«+Ü€9éü©¸‹ìî 䞣5'p ]óÕ˜ÓÃRÀm ô'¯ùõ§aó1Ѫ1 nV8¥Iµ˜¨DŽþxæ«îbžc68ù±ýjE+… ·$G—(_RhÞE(Áv2 9æ¯ëY%bH‹¢HÈ?€²‚WŸ­gõÛ‘€pÙëÓÅ:IžkÏ>rV9fwÉϯ4r”˜Ù¦¸ 99éùTn6ç`Q´s‘Í.<ÅR[ï»Hè¨ûÎAªž·ò§b¹¬<ëðsÔÅ5œ,¥QØö98ôå‰C>òä ™¹K>Åq·Ÿ½Èõ¨k' «»ækuô…Qº­œÏSv1Îׯx9¤8ÇRxÿõSl‹\™¶ù"@ˆ€õÁêz“LK(T`r>”˜<U8õõæ‡SŒ:lÆ[¸ÏáNì› !¶ì_UcŒÒ¨I÷ºž ÿõêÎvóÇz3µ¶†À Ôv>™¢Äó %vü¤ƒ“ÿꧦ0«÷Ç}¾ýhX‹¯,¤(ëÐÿúé9Sò6à=qŒT–‡–ýöЕ9xè=*Kûéï®ágeP„ÛÓÖ 23(Yݱ‚zS\303 `åºÕ¢Z”-—ÀÉ\÷ç<Ó]ãdR `xÁÔ»3îSæ}ÍJÆB¤ gvGô¥!*ŒïÀÇN ÿ:q+ä“òÉ<3/OÆ¡2æV1Ècr¹ Ž˜ëš™Yœ*ˆÃg¶ìK`–Ž0Àð;žâ¤fùYÉÊávrH÷•BZRã÷G;F¥M†]Î"–ÿ:CD™”—eåå†Ò1ïÿ׍Є”ã%³ótǦjFwQ’ÃCéþ})VD%F6’sÀõ&«@rÔn§ ódìíøÔÙu‘ž%bã%»½iŸ,®<¼ã8\q€z~4+V;FNq´óÆ;ýjmr¹ÉˆÛj’¹ÆI r1Ç^•ËHÊTô àæžbØ8U¾îïéF0 Û¸ˆ=ð} ТRHß8BHAŽ£ŸÀÐ !ó`p)61my#þÅsrTªõÁÁÊóÐÿJ™ r,¸˶)ƒ^6¶Ó#ëH¿ê²îIà/ÝÏnÜóQ¤,³ hÈùN®})Å]7™æqÜ´ý=G½C) y•vìfÆ·Z˜È­ä0Ý€ØÝÏô¨AÎb•J`1îÎ}OåSgè…zB±#õïÍÔw°l,ŽÌ\àOR}ÿTñF«!W&LLØp7ê=ÀûŸû&³Áû2Yk¡–_kcÅsÜ àsÔZüÒd[[ˆ.&ŒÍe È6Ìz…$`®}{{WëÿÀ_ÚÂÚïÃÍÁšUÆŒö¶ªe#bml1A·dî$ç=ÎjÜ4M—)]Ÿ ¶Ú¦•©êЦ–w_’XÎ×*K{uªºyR.`â!ÂlP[Û†ã¶+ KÓµ y-oâ¬/»­ËB Éî€9鞟‹¥¹¸Ôõ¿.t¸Xßå„ÇÁP†ÇpzdãŒW* 1v:©MXê<;ñ*[1¸³ŽyL€³U@Pp3€çàÕ[í?Ãÿnu[›¦¼°†çlq„át/õÉ>½ù¦è¶Ôõ‹»{땹¶Ž[p†PáŒu<~UCZÑåÑ/¦U͵¼QÛ…²<Ç °ä€2{@×>»tÔѳù•ùÚð&õmÌ0¤‚ ÇJ±©X³FóÃ,VÙJŸ4˜‘ý8ª $п•"  ÃÆI>ßO­Z¶y…¨J2mõÏ¿±ÎEzi´RކOÏòåH²O.§N‡ëÒ´…³KŸ(²¸eÁ#ž;÷⛵|ÈDH##’ôÉç'µlù"D²È«‚dbxǨ­#+™]¦gy $%¼’¬Ä)ĘfÇÁã"³„OÛØ4H¹è3ßúóüëRk«iu‘ˆ‘j.@î3ÓëT®$qÄ% …ÊÑýîsÆ?Sz-F*ǰ¡¦å`‡ :çך|v­µ!Q‡TñŽç§µ#,³‘ÔívÆçŸÓÌ*²¸à.x“œúc°ã¬F¢˜²‰E³Æ]˜¸_0p½Îõ¨ÉÔ”áS“œ>ãüš–æUžQ!@T&p8Á>‡4ˆä©(è»~èÇJ¥E¼–EeOÌØäþ¦•Ùä>Z¤‹òïÜÀ’sì*¸`TåecŒH¥P8èGzÐŒá •r¨àíǸÁçµ-ˆI”ÍËo0àn8Î@úPD¬òÄU¤$n.«J³ŠIßtRó~fûÄ sźàmbcÛ¸‚úýê÷(ÏḦ‘æEv#‘ØŸLõö«éwöˆcŠïtö‘ðwõ†9ý*œÑ,wDDÁâ'÷mÆÜzCJÊ@Fe-œãW°'Ð÷¢úÅ™,î­ãV$öÍÒPr~é¼úUt“llv£ð3Œå9þu5­ä–±³ÁµK¨YT8Ç?_LUÛû{´´¿°kˆ§'÷¶Æ<§‡¯ÓúÒ¹›ÜÆ JêÛ?t[æÀ¥– TÎôÎBõÿ=©cÌq®óå© IõätéHdÉ@D…íÞ#Êý>µ\ÁÊÊŒÌ €§8é’:zÓš)–mÉ€@ÜBƒòöÍJì§7˜ÊùÈè?•H²º™27|¸gÀÏ=©©)ã È6Ÿ”Iç¯ÿª3ªÃóß—ÔzÓR—\mÚ žievkçCÓòª Óhl³¿{nÞÛñ«nް "GăäÎažxª¬ ¶òyåy?ýz½ËöS½e´®}:qžý(rL¤¬…Jº•àH‹¸ŒÌ¸ÉÎrýU}^2åƒ9ÎCÀ=qïHÈÂcu–ì qÓëYóÄ…¼Ì7CÏ늬ÒLÐ…G 1æ¬:´ŽÎÌ£ íl`uªî¡2žÃõö¦™.äŠÁÖDHÝ÷cpÚçŒ:f $ñèRÇ´’¡*x\ç>Ô*g{˹ÇÀïŽÿJv¸‡*åÄìUP`nnÄ÷ãКÅ\:–GƒŽüýï\Ò¨-Œ®?66à°éÓ¥[‰Ñ|Ì‘³$|¼ûUlfU(ÞZ>årÜ09ãÿÖ)!œáWå^ ŽX•È|*‘åpç?)"¡g‘n7•ÙÆBŽÿšÅ¢=„À‡û¥FA¥ÚËû¹ ’@ Á§ý¢VPÅw•ûÍŽø÷¤’F1³4ƒŽ8&·Ð1;Âó,lU@S‚< @KÆ g/ŽQF¤`«Ï8¸òöœJ^ÃÔXÉî+¢ˆÆqŒ~”ð]Y™²žŠ0zŠÌp§t˜ð=@íøÓq›Ý‰nØþUVÐh•H+a··%†HúÒœ2ãs©†ùºR&B¥dP@Ú ç×ëLAó”ùÈP@Áô§Ê)1ŠC©ÇÓ&1Ô;‡ã§¾A¥“Ë?Éóu ñ¤,duÎ-œl=©µbS¸Æ#ËÚÍüLN ˆƒÝ:±ëA™•›ƒ[¨íMgÉC¿1oâÇ|U'q1CIä†ÛºsïOʺ.èOûûR•¥3Y¾”ü§œ¡‹.2XŸâÿ>•2‹%45¤l]XüÙè=ª;ƒ!làa*yÆ">X]½1Æj2ê»Ac¿i¥pc0W2Ø9Ï=ý)cˆÝÛn~îFh]ÛÎÐùÆJxÿëԙÇ ¸ó¹ãÿÔh[™Œ1Ÿ‘Ìxlþ&‚7Î6ÉŒ€T Ò™±ûʾ˜ûÕi¥²_yIëTZ$PgWn¸+ÞÁF“‚Åp@8üb±g݆v_˜±éNF# ËsŸo­TF17Am œ9©[&//gÏ¡ÂpTàdýðFjf“1ùGœ'+ëS$L™]Ñ%óTÞ3úûSTÈêOE IY˂٠Øè¸§*£Å‡•qŒà5$f•Æ'úâ„3‚O"š2`(Àã>žã4ýÊ‘:&ìõ!Ž8¤;4!¾CÓ=*ìZˆ4§.«drqþò¨-7<qƒL%T*§âOQÏëMãÍ!—pêN)[Rí`RTnc¹Ï§š[Ì úcšÜÊ3Ÿ”d‘Òœr$Î:㊠ŒUxíØŒSÛ ØdSêH§kɇ-¸ ôþ´Ý™ÜJ’§­RdX`\Ÿ3`pI<Ô„"¶ý§a·9¦’ì=qËéO‘Â>ÿ¨§rE‘˜‘³8äÓ% „-¹†\P€æ<óž´Øãf~ \äUÜ9D T€®>Ôîv'!’)2P•#žyëMÝœIÃ` É”ær¯ÑÛ·¯½š0ªÁ”¯Sèh˜•UnyÚqƒLÞ۲įÂsŠh$Ë‘ÈëC¨Ç…AäÔ@±l$ãŽ?Zn$ XOcj¬O17L6ð·Ãõ¦3UH\£¯­6FfƒkqÖƒ„yG'ÒšD¹ïŒD¬98Øxüiª|Ï#šάªXqÍ<G;±œShWdŒ[~W¦9èñ¸=OAP•(£snn«ŽãL,¬W,N={â¢ÆŠE’åHop1Š|à[çèN9¦ª²î;¹?írE: e!²1Ú’ \à`“Îs‚iÌ›yOœ†áˆÀÅ4«¾àçŒc¥9ðƒÐΪÌ,;„_˜¯cëÅFF ÞªåxÍ!Ü®FàGðZNû™r^zP£q_Rf5°è3’¼Ÿz€ÅT—U8Ãc9úÓÉѱŠó‚qO”Fp£ G-E¬KdXÜÌrIž?Æ“8ïÓ¦ H v™›Žxi½A]ûñÈ 64€ 7>8©aÈosëMÉœ‡8}=éYÒ1žÖ³³4[ív—%›gÀÉ¥L Á›æÎG_ZvÂÎ]ÈŒt©‹Þr1ÎNxª Y>S€ÁÔœW­0(1€{Rnl•_»’4ÔåCe}çU&1UÓ%rIÎsÅ=T…mØÆ9 q“Q°$c8=?xe[>6îolþtH\ 2d=Olàöô4»ØÄÇ׃M^ ÎßözÒ .ÝØUÉíøRCºå¿ÖeCã¡iŒ\¯ ŽN3§¥;— ªŸâ%©Ä©S»q%}:}hlNDHŸ¸ÜN úþTŠrí¸Ô÷(Ùçªçctçò*7E2’¡å‰úЉCT†“‘‚1J® lÁY˜ {sP®''޼R”"<œîQÁ“ФÄî*· œsÏÒÇEù½ÇAþ4Ý»¢Ç¯õ –2²ð«ŽrI¢È‚V ÆÀ€U¨Á&>N8Æ)¡Ä ³€:àâ¤#vpœ(9ýMÐ9ÊŸ€A‚$Y Þw/@08÷§>èÉ@`¼Þ´ó$q%z…ÊLjGžwn<ž ©[k'rŸ\ýTÕËÜ`!znÀ>ôá“'Ì™9ïÀü©\¤ì v#Îî„®kZÖT°Ñ­m´Û=2ÛO±Keã&lLŽp2ÌNO_­sØÜ¤d€§¦8>ô!ÎU™™}@¤¸ß1sÁÈS‚O'ùS–$Þ½XÀ>¾þ´(C!(ùÈ Ò–@¡vŒ ƒÞ©! Ä5Ó0R n þT¬±Úwü@sÅ1I,Ÿ”¯ëQa£beÇQ·ùBöeàžžôð¼lN 4•!Y˜âš 6é¸3ez°?…±”›Yd T÷üª]¤Æ*‘· ñý)<³³ipr2šCNUÂ`óÜqJá8œRêß&p½>”µ]XóAf,p¯"ªd¥¿ýB˜¡€Pà°ô-Óè*Y²v$dÌQ•ì1Å!ÜT? •çiè}iP2†ùpÃÆ?ýu.ÌÄ7;Bõ÷ªŠîC |²­‘ÈÛÏ×¥H]ߘ Û1Çô§îRÈËŸ7¡ÏÆ wŸùU8¡ œñ¹°ü‘ŽåR³S0`H#¨æ˜U£òüµ í=O ú\–B0#ö¨jÀ4 ¾âʯ\оjÙ(V}ÛŽÐß$ç½BÒ³HTeW€}þ¾µ2H”|äóøÒµ€c1mûñ·žÝªÇ jWÌBÁyùئù@D²+c(Û²ÞÔR3ʳ©ÃÍ Fã•ÁPí¹å^NðH>ÞçëNhÕîG$rY—ŸÊ€ª6) ѧPTcñ¤`ä«”ýÕϨæ+w—òÈÊySÈÏ5û'˜¿2€AãïJy‘¼ þc’ª;R3»¢îVÇ}Ç;…ÃCU²§<Æ:çÓð§FJ#6Þ@ç=À Ñ(%züà ¹9ïŠQn¶ùÀ¯¦;w­pßó ÚÙÈ#$L žáÄȬÏ'Ü^@Ϧ:~UM‹ÔD›Œ@’IÇ^¸ü¿J9*Ç È »×=ª’LÒ,—k Ue‘ ¶~AÐ5 4lÈ¿1Rp\c±ÇÓBÚI`›I%»Ÿzš5‹c¸C•_œœ¼öþU,µ.[„!ÝrTí;[øO|ŽôÉ »† "H»‹ÎNFøzÔÊ34^d*å°Î \qÇõ¦Ÿ/ím»ÌÉ`>Š?.}é\%¢žÆM®>iOUSÏãõô©RLC+ÊZ,gpfÀ>Ÿ‰®ŽÓšޱâ¸ôÍÒûZÔ&9KkhL‡‘–`;*㜠“Q𯈼1}um«ØßYJ®X®mÙv’RG^NóªŒ.b´f+Ê‘é¶Gt°ÆC;ļý{Ozú«öFÐF­ûSé²Þjv66V²^JcVÄÂìc‘×xÇû§¥w?²oÀ¾.øÖ;Mu%ƒI´b÷A#´Çä“‚8WÝ^=øAáÏøÆÆËÂñYiú›H©9µùbhÉ9 ÎpÞüNo•!ò¶Ï±¼1ªiwźX¬A" [n1ƒëÔ{þßA¤i£F’|¢)ù–@~|gƒ×€>‡5òÆ™Z^Œ,4ûûõuŒn™Š´h@RJœc99ƽEz>"iºU­ÓkIz$„Æm_‘‚O¿ùæ¼¼C½‘Ó;í©x·J²¶ºŽém!·•L±6L‰µp|pïšà5]I5ǰ–ÒöÞÊ8¥Y›'w˜ÃŽü``;“Û¯57ø‰©~Ò¶šwˆÅãøv(ÌŽ¶ðâ4“å[Ÿ¼y tà` úãO𥾵©[I¥jKpÒFαÁƒîFIíúQÏ죩\ìþiÄ’À%Á¤(C ®FGøô¤Ú"º- Y%Tòü¹¸ëš±ÌÒ\} ÇqK‹,7|ª1Æ:ô¨J¼÷8W³ó8òúp=¿•k¡Ò™aFÅO!ÜÃ& ÏØzú`ŸÿUN<éalyaÊì¼…çÚ£h¥UcR9 \0?+€q»¯®j-hȯÞÁ0ôö?ZÕ4œnÂ]ÆMÈŽÊ\»ó…ôíϽ1dØò4¡ ¨Û/޹9ã'¿52®Õyf ÀdÆWò¢b^hULw8 ©ÇLôïXÊCÕ,Å­•‘ÁÛó¸#*AÀüG<Ô{ƒD±10o˜gs6qŒ摘%——‘!ù‘‹d»?¯sRùFeòc’B¸`9fÇ ¬Üµ*-X§$rX1,iʰ!qëßžÔ»nb”Ë„‘>l–ÏLñVîmSÂ4X[Œ ㊉þæYȈŸ—9Ç_ËúÕ z‘ÍnÏlpÁvòÊ­ó)ÐÍÇ/Fs”l’yëÁôÅYŽU{hd.V=¿tç+Î??jqµµ,R7|Ço´dž<8ï“ëM½A› òÎÛ‚”ÎïïN*ÁydQµ™ÙÔü²0$®s‘R-’yH¨«œzàúgŒf¡•bŽàÊu'¾í¹ëÛ­81ÉF솩D‰ ‰šDŸu[æ Ã>¸¡YVâU'`^fÆoÿ]DØ .á—ô÷©…³<ƒ‰F?­j’1ÝB¢üLqÉÏô© Ð]§ËUM¸?0?J‰m¥H%ÑŽ[gëS5Šïcæ¾Ü‘’y?­È<âe ´ ½Ai;Tü®2rp¿…\Ž¢¼ù\Có ô³éšd“$—ÊAn›°6¶å_©ëŠM ‹",<äáP| gßüóJlXŒaб$ô?•:, StÑàâB¼pHö©¦ò„ÒrFÿ¼ÝØ=~µ65OB-®]PïŽ3‚¥WJ…â’=¥U¥Œò¬ÀŠ´nväL®iTVç#µCö–3 1Û‘°“€§š’öR¦6!ÙO$` oñ©…·–äÏ¢“óf›9háI2’ÜéQ¼…™#•¹ “ƒþM4Í…ø£z¬Ÿ æ~`>´’[î²&%}ÛÈ\(9õ_-–WɹO™ŒûgÖœ·k䕳ϘÏ×ü?úÕ\Ä”¤‚hí_|nŒ éìj¾âN7áz°Î+^K”’W.Ñ€«¸ƒüU”ðÄnv¨b ƒžç¿çOšâµ„òÒ9 FRHäuŸ­;xÞë·*F9o›Òœèö©E'æfr1ÇÒšäp6³Tæª"’bŠM¬ÌªryàPzÒÃ3Ìãw ç©ôÅDÁ¤efY—æÁ9Ú;ŠY_d^øß‚)¶JE™£&0#b2<Æ,8'¿Ò©çËr̸9êN@Õ:: ¥- (Ü3ŸýqUXåÊ«Œ í~œf¥ è*ù‚]ÜçÛ·ÿZ‡Áòه͜8É'ŒÒ!Ìy_™Tãi=~¢”3f +·æ ñøÓÐ7J„?}I=‡_ΞVGbʹVÀŽ=èXù\îé'cëLO›å2*Æ@àÿZbNÂ’²Ëg!‡^ÝÅ'#þYœ}îF7‚ÑrÀ0ãæ>ý©¡¶Ä@–EEϲ3ߊ.UÇy‹ûv ¼ àR—ÌÐÄÎ'` ¬Ã7ŽÃÜÔ‰Á]Á¼§ïz äÄ p‡sÎçúÓ"B ŒŒíþ•ä8³Ó ði’°xÁW;õè)Záaá¸Ú;º3K’cP2A+ŒóíQ3aðpížßOJ“s‘ÏÝÛ÷³Lwð)ÔŒ¶W§­#a9f#ð*0ãí$>Q1ßùÓùXÀa‚W ƒÆ*Šæ¸ÀC—ë¸Ó•ñÏÞÀÇ?­0òRË’ÈÈþTâ’ìl|ì£ dàgÓ>ô¬c)q‹À`xéô¡Œy%FÒG`G™¨Â§,QÆ=iŒÁƒ"‚yÓHŽbU(÷îÞOË“’iÃMÄØÉÝQ‰« Ìþèþt¥p—Ãâ‹"“$hÏ” |dc¯ Rä„ Ôä×ó¨ÆùYp:ŸZ\tèr3’ÜçëO˜¤Ù(SÁBpZU¼ç ä˜uö¥pT«ùŠÌF0Np)ÇäaÑ@äÿž)\mØE`ä 1“À=©A;Š®ÐăHɅßìž)›"ËŘtl*’&OB$‘v—{/@(L:‚UÈ÷^¿J—$J6àü¼‘üÅFÍ–ù@ÿ¥Z1êH7ms·¾:þ€2“ ÝëQó» ‚„¬84ã€ê‹óÉ$÷¦iÊJ™2– ¿§ÿ^˜ mP3ŒàóFÐÄ…Ï<àqÏãMùÄ\|ïžÃ ÷÷¨ld‡JŒ·œsB„NaÐm¦2¾æ,XŒcß½9Š˜ÂÝã¹äš@Iû½¼^Ø#&šNdU@$šN:ðsÆÁéÛ֢ܕ•rxÈÎ}êP®Oæî9S·½&6ݰ r¹ëPº2ß7uèjV@U’¹ç$Sæ*÷Bˆ6€Cd»9Å+äDzŒò9¦µY¶«Áìî;NK`cš´ÄЊÌÇ!XÁºæ€ Ú_xÀçyà})²gÇiç4Ь¯ËeH9ÁäÒ¾¢¹#²,Aýi®¬ÎFuR $‘”ã‚­ ~]® Ω±ˆ»¶ªç ö“øÓ™ƒ>éÁæ¢2e0½vÔª6Á÷öõúԚªK3}1øSÌ€1à”ãv;tÍ1†ÓŽA<ðãMØÛ•Acž˜në@®K¼åvç$3ŒIF=vô=*»{.íê:8ü)[Ì߇ùT)Ü$Œe$ÇÊ£Z‡ýæ vÚÍ´‰lC¼0Æ×Ö˜2ø¥AØŒš{H“kÄ ¹ȧA$–ËŠkrFáš1‚Àg©â˜.6r2BŽ=¹e9Âäw¦lù7±T9ä“Up‘‚p¡±Áæ`&æÇˆ¤;•ù]ºŒpiŒ@NT–ÎFE&ö'F%yã¨è*ÀÏ$õ8íR Ûçb1Ú &åe{ž¢¤iÜrŽç#®MIüãÈíH(ü)\c± ”èv(¡æ›‘Iù˜ œT™Û"€W…äž‚1xT"°Çâ‚¥Gp=M+“!Œ<·À#'®ÞqøRÇ„Œ±bG¿áLVÜPŽXƒžØZo˜ƒrãæ= ëUrVäò82À®8Î:Š]¹„uÜNGÖ¢ù¼¿›·`/~})ÁGÞ›”öïþx¡ ²0¯´o9ÇÊ š”ƒ„¶vòªÍEó­» }Böô©U·`)wùy9Ï¥ …!<¢È°9þŠ~ݯ±°¤}ÚˆätyàåM`Ò9nIÆ1Ž£¸§ipÀOÞuÆ)A˜ ’z{þ4ÜfÜ®åÀöäS†Àbà‘ÃùU²]‡ês´.#ÜÒÀ Û¸g…&†:˜…Í—8´‘€³ÈHÛ·õD3… Œcö#ùÓoBÐ"‘Fm¤3þM*!1û#ÀÅ‚ "}¡°6’0:N ¹bmÈÚq’}³l,NÈRC†Wã¨;°=ˆïLÝž¬sØ`tô¢3TL€“ò¡ôõ ªml3 æ`2?ýu/sTÉ7º|Áþ£8SÓnÁˆH›© qïQ o¼‰*’AQž9õ©QY£ù2YGuéëI¢ïq#à: 7²®ì“êSíDfAt«$†%`3|éOáaS…o8äúÔ2Æ‚~DˆNBŽsê)«Ê,ŽÂàÜË܃ŒcV¤™ä|º¢òBÚÍÜrIèGJBÏ*#—…*3úv¢M¡rWgÞ„UFdzߊH[µˆeГÁ8LŠ…É34+3.6÷ÀíS„rUÕT®)ßÂý}øíB`ôîY×{®àÛŽÖž ¶M!\á¶.8?­Cjf+¼«w§ð©ö‡ ûK¶#ýšwBHÕÓ®¾É®A=Ä+xª1²NAÈÀÉ=:óÏ×léóIªÅ-µ¼Ëj˜%™O¼g§ÓÚ¹xÝ!s-Ä’IH#æ'°ëÏ?Jéìl‚«¼dØ=~™¯Ë«oø‹ì3YÚß\n–²‘& (É+ž£'®9 c ¾µýŸ<«ø¯R°ŸIŽYuwE2ŒÛÚª™Ǧ{a{šêI(™_SìßÙÇáoоø?XMoWŸ7²ùí° ¡ûÇÔtì^kÐõ{ïC%­û_ÜO8i§¹‘¥b uÉ?wÛ9®¯KÐoôï ­–¡y÷©+„låy<3 Û8ÎEYÓ쮆«-µÌ)$ò&ȼTíËõÆN~›I¯:¬¯c¦FÖ ¬~k{·R eT«»prÜc¶}±]Z}Ý·‡áÖ¾ÓÃm"…¶‘мJ©È>€ñëTtÉlL6º|—r}’r®"yÙ$œçžžÝ±]œZL:•¡¶ÓîÁµ¶]­„ïÉÎôÎNnk–o™hi±U.4_ÜÊ÷š|N’´É"Ù.Õ‘̹ÎO|vÇoZ„ç¨ôºl]Î~mØßß_OÆ­Fä_…rl‚Àç“ƒŽŸŸÖ©’)ó$Hžñ‘Žæ„›iuÂ9ÙŒäõ=§µ&¬&iË5«ÛÊê¹+’Ù1±%ˆõ¹ÏcŽ)¶n䔉J¼g%ÂŽH#ðü=k6SûŸ,¶ÓŒzôÿj—XÙf;v®ÛÃvÈ¡ê5îÛåGÞÆ"s…ûÞœ“Ò¡,|âÑI¹ÆJ¸À;GlZd[K,J^L•+‘ŸNi 4måã!—Ó'Ó׊¨è¥£q,·Ó8.Ê@p½1€8ïUöÉ€€ï'“’5*§ú.*’G¯|sVQ£Ž5·~ISP§·¸úÐäm«R8Ô˜öä“Ác¼zô¦°BFÅa€Ãqˆÿ ž{S¸2”,ªýà>• ¨Í²Qü „ í:uïN,Æ¢§Dµ*‘… ûÃÓ·ãP²,“~éV7*ò1‘Ž@' Å:$_Þ0ß³¡ÎO¸çŒ~4æÂTGòàà 6õ­ºXT¨*jsŒŒŠb35Ñb]Xœ€Ä‘Çj|Ò‹Ê#hÚ9)Ë8úT2eË2­Ž‡½EÍ$U€f,±±ùˆRW‚ʽóÒ¥i@ªX)ÁÈ9$óïÓÓŠfϘ;+Ý—§áRئ4·s2 Z Òb@9ç…ÇåU|Æy1m‡AÂú­Z‰2è»ËÄçÿZ“ÐÍ6‡À¬ÌÅ€#vH$ð=¨0ƈ]¿h ósGJ”æ0û[øp6·j Ë½þmÃ-ý(&KQêßtsòœîϤ.Œ…ßËlœ`Ž?Jc'P r£©¤(Æ@>bã$ãÌU HÆ%*,Aã祀UøÊHãëH¸Þżçîœõîi­"ùdïÏLð[aˆ §ïv¥lIÒ1Œr@íQä„É,NrA'ŠÀÜÙÊž»O™/BO”Ÿ¼1Ž D£lÙPÇ»#MvB‹ TvÉéøõ©‰ œÇf^ôÒ&ã8 p«’xsAbfÙ#åTô Í ÒHåHm¸ämÆô™Ì„õÚ>cýÜU¤BVã >GúªG™¼ ¾ÑËOþµB$"%˜ñÁÝš#-½Èù€ïJâ½ÃXŒ#ŒžÔôÃËmÈ}sOÈT8°9,=ip$mÍ!ÀRFG4“)$FQÀF8£sƒ‘Ô7sMó ¸`çhùÜ&xêi”=Kã.™ÜyÆ2)ì¡#@lœñøS¸@H韥8»yŒzîàzýjY`åbànbON”nÝ(Q·9<ŸÂ“(­)S»Ž@íM,B•m¹>ÝiÙ,Î|œ8P`yëQ gÝ #$LmϹ6î`:g#<¡¹XžØ5hÉêÈËÊVÇ£S£AÈSÜŠUÁ`7)RxÝК“åÞC ñÖì4†ØTîÇ'RlÆAÏÊO4Õ,ÁÀéœqSp m9ÛÀúÒrp(|¢ÊU€äñȦÁùTL.âÅIûË»¥ÜåtùTåK ‡ Êìi§s¹ qêݦ™>öÔ%ãÓJ~6`H>ðà€AÍ&‹M p­e HFA#ñ¨ÀåT±Æ>çsR–b3‘ÛŒ•¨QÜž~ù¦Œä‰2ªrU™ˆì8âÌ]H íQ¹ áW;Ç£g>Ô»zr ˜'cõ¤ÐFV&‘TɸªãÆîõÌváp¹ÆÓÎièpB“Óèi°y;î1B4nã–””³,¹Qœ®8\â€pÅ™ž˜"”e$üËÎiÅÂì ¸1Çèi@bd±õæ‘y?/9ÚHÅDY„dÚÝr¦X1²Êûð$ïI×yüØÉoJv3—ÜxfÝFæ^wù„póŠdÈyS"1íß>Ô+pùÈÆ)€¶âÄvV 9v—bNègãFÃŽ£Ä…A%†OPOZ ’àA^¤Ó9 ß,‡=8Çó¦—`ª¤lp>n:Ò‹0–‚‚¡Š°,OEc”r)¸ ærøäã©0æ-„n;r­dd ˹BºžãNûÛÁ[° ‘ëQŒà•ܬ9ëi‘³)ÜA¸ÍU‘/rvÃò’Þ¹Í)~fRØQƒîi¡Ê9 —Ï\¶i®~ªÄgŽÕÌ ÂnàxàsJÛ‚>aÜšE“?í94ï4ù{TKƒÐgµU´˜,ã[ŠG†Õ9=;ÒÅCg럥 h÷8zu?J,RИlß#: zŽ}©¬U[9Ý‘ü4Ö*¨‹zÿ<Ò ËœíïïJÌwCAP2 ùŠsÇÓƒÈ럻ÎÜ9=éx%‡Ê3Œðiýƒj|™àúÐÄõ7lýàÄ€á@Ú˜îX„û¤wÇ&žÛÎæ Ó©#R ]¡Øíã¸<ÒJ¬¸Ú û†£s±_oÍÈûÝ*A€ìXíÇQœšp(³&y€p >تLM!‹·z•b‡oÌÇÿR `¡¸WÇô¥,ÞgÊ;c$ÿœÒº³G´à•ç>ŸJ¢yF²üñŒóÉýåQÔªð¹Îr>´Õ\©'#pÈâ‡GÚlÀÿ'Ò’e !š °+ÐÔ †E!W 6±= ë“ïïQ|Ë‚ªÁˆÁÃ*^Y’u zSr…\²/–#V«ê{ûÓÀ•6íÊqš_ùa¹X2ÍÒ¢`­·ÞÀ .«,Áùqß½Mw |P¹hÊà½sÒ•QÚV µTŸ»éS&¾ë ÁÀNM1ƒÚ@œáOjBˆ†åÝÕÉ$ÐÊZL. Û–ì*@~³ƒ‘ƒŒcóüéFã);OUÀÿ>ô×ÿ^æ5"=¼+ž:c»¬xɺ9üêú.á’í‘•ÁëøR/*[w*‚zÓó˜Â†;Âäž8õ¦©!6¤‡ ÂðECzš¤„Çç&Õ$çåbÜñ¤\Äð1Ó=ý©ÁÐC³“ž v4¤åÝU^1ÇÒ“‘I¤ ^CÉÜG@FúÑò}žEtØ@Åß×Ú€… :“Í;de$ÂÁUëëœÒ¸hÇ2"©ÝœÀíR4%Xå‡Í†Î>§Öº¶¯a»$~ú©3‘ÎTúñ¥{…‹D2YŸ-Ôc®ì§9Å-³â9K¼ÿ?J%"âu}ò®ß½Æ•+LÌB¶sØã“ŸjMš$1d›•;„DåNáëÛ=é#£í,Òuä6ý3ÔÐ|¯0#´…àc¯©ö§¤ˆ²â% ñœ|øÃsž)\—+,l¸e<ò‚ý)ŽÄãÉ$l$€ tÀÈúfžK¹É‰·¢rCg" t݈ÊÄØ — ß¡^ãöšp9($ô\TÏò8Ž5FîûøûRnÝÈaå¹ÈH9é×µ= R»T‘˜ãèi‰»ŒÜÍ{FÆÝü8Î;Ö…ñ#ºJU”dmÈàõ&¨*ÂÎÛ™Ô`€AÏz±³H›Þ5çf_"Cž™ì{þT-†•†Ä NѪ„ä’¬w}qRÆ‹=¸’&‘B€œôúêH‘åŽILmˆðKO wÅ;x„—·?>0G )ÝÜ7F®Š%mz°§|€l-†V'yô8úWìÿìÅ«hú7„à°HðÙí ۹˷@NÑDZ‘‘ø©bdÑãìñ]cÌS#=sì}ó_±¿³|0Ûü/ÑíìÌªÏ ÜL6|°cn¹‚xïŽ;×U=bÑÌþ#è_.£ªxµaµ•ƒ!2¿—TÉŒЀ>µÓi6 {ðëÅW6V÷0Ïo)ŠØ6K2…Èž¹èô®ËG°µ¸µI/.‚\yC÷…Ö}ìò®yãÞºIžÚÏᮥmlâyçð„í.Øãqî8öÈãŠò½¬U+ËCѳmXòo„76šæ³i§êíu-ŒNØ—ƒ·Aç®ÂŽ={W·x¾Þ=â!Óôè¦H$œ¢Ho=G^Nz¯Aú×”|±“Køë&›q§\Ïd–æTV$®òÌ]I‚›×ÎÆ8,~BÃwÍòö=Ojt¬¥ˆy y@¯Âêy8¯=3éi;•¡I ÔGš¥lnn1Ó¿Ó*ÒÚÊϵdG ©È Žàýx©”Ç5œ‰&ÙLjY 2#ñ¢e(Â[p cSá¾§ž„ñÒ‹³¡Ø†/æ2ÅçJÿ¼f‰õÏcžMEºE³<ª¶# /=…Ztf¬{‰pÇná‘’yãÆ¡–iQ~é*ÊÅzö9{TÞäóØ%ýì¦@|ÈŸsë’}Oø×y¥'†µ? ]E–zˆAäJ­ÄòKéïÅq U˜1ŸÌbÊú©"škk–h¼’Î6H3Û×wb¨œ;çs©Ô|{¼WZ{ ë&ûïíØHÏ#<ç®GåϵÊ$a ¤Àl<ƒåÇËéÇ~¦µíübªî%TÐzsÉïV§I#˜yLÆg–vãäûñEÄ›LÙUÉ €p8úT‘üª¨HVdÓH¡óœôinDåÜ€à(ÿŸz™ÌKï´1?*ú’õôæ¢I$!Ÿ ÄŒ•è1íÿÖ ÊVe”¤œƒü_AŠ’ dw $`¬Y ÄüÄÇùâ¦ÆŠdf9Wi8£Ü6ŽOCôïQ¢DغŽN99«˜>ÖUP9à­W1ãöÈÜ«GÓ½8‘-BY8`^žqV ’91—V?òÌ1ÇûuªÐ[™àÇ÷3’:jB%†F U'äŸjl€hPøU Ÿ®:BHá»Û®)Žî¨¹ ªG¯„8œ&ìž[€‘QB’Fìž9ã8õ§#2K”Œ¯¿ÏéMgSiW²Þ‡ÒšÊÍåâ6_› •€Y¤2ÝI¹˜÷ÊtǦ*«dE¼©<✭¶C$W?tc¥[À"4챫gýãìj¶™Mü³pÍRpÊO…ØŸ™wq€9ÿõR¸AtñœíÆCqŽzhUθ=1ž1ý*£v8:e€mÌ×ÔÀÀ0*~b>è# NÙ•€a‚8 R Šê¼cØs“L¡Xƒ1Ì€0h y¦1ebGÈž¤÷¥XéWÉ¡Í3j¹ žù³Î(3ÜdfW)øÒ»7–£~G`JyVÚpsðFâ¢ÀÊŒ±9 æªäØŒ*!†y^GéR£’dVþ"z]»©Ü}ÁþBì€sÍ;–Âä— ª»@à㯽DÒ3œƒ‘Œ±¥wS!gÜ þ x#üi£>[}à¾r[ü(±d¬îW%Šúøt¦.ï0¨$÷ú W˜cpP9ÁäýhoÞCŽëÅ$0 Ú3œƒÔSË ~<­ ‡yâ6*¼~ZB§ÝSÀϱ »Š«‚àçÛ?ãJ»€­»Øœ)­·Ë<“ŒÿÖ¤.ªƒjí~ã¹ÿëR°ÛK ܇ÈÁÛü©79PT‚äúsÿצ7^>_— “Ň*ÇîëBBWN!\{ç&›†Cç-R™>pÙÈ==M8æSóƒ3ŒâX®ŽT w 1FõóFpÄóÈ8¦°`ã!Icœƒœ Cò±|ô'½U‰d›¾p8úâœìq…*@^¾§Òš ÎÇ\ä‘Q2þø Vã‚÷§b–¤ŠçÌÀ]¹8à:“pxØ ÀÙ=}Ö¢%ƒ‚¤"“ŒœÿœÑ°Ù›ràñ“š ÁW%vËÏÍÉúT‹&"9,éžM'%™Œl¼`w?…5 Td²ô'ŒÓ%Ý e*ÜdúzšEf$—9QžæŸäþÿq`{í¦ˆð¬Ù$ýhЗ!Ĩeù~B½TÐ2åx1¨\ãŒT'q?tŽ1ÅN1ç$cµ617pÞ)7þíúcØæƒå†MÇ—Ö”àmù·ó’qÈ©)1_æs¹‰î9™…XØãžä)à„ Ûü¨,¨¿ cÆGSLLzyù}óJ>a…Ëz i8›œ§G9üiÀb20H<†ÏJCH‹k4¤àïÆ•†õÚ§€3ž™ gqåpyç4Ü‘p\£p2@éÿê¦KCòyÛœp1O÷LÎC?|µ4æU_›øy¤ÁPBu#M"¢)ÄÀãÜŸ ¥)ò ‚äœm=©ƒ*wŒ¯e'­!bÜŒ©_~iJ•|®:ç4…Ç [¸? F!ò¹#ŽÄ ‚üÏVeý)HRüóÜ€@!ÖB3Ÿ¯½;—d=ÀY:0÷¨Æå' ÌwÎqNŒ8,:‚Ï37š«òýÞö¤CB|»HpyÃɦav$y©nxu‚ì¬àíªúÕ­€˜•€\=y?5“‘ó%rvÐv;);C«ÿפ8*º•ìGò¡²¹A1¹GÌÌN0Æ€å® q¼S×G#ž£i$ÈCd¶9êi^â°’)b‹”aÎ1š—q+³q$ðOáPìpƒ€àS•.ö ~Ÿ• ‰/;ƒ8 H¦>ó†8w®ÑJ$Øä•ùX|¹êFLo™ƒ~¢•’)pàŒ.G¯Zî·ð±ÎrÝM*‚À…V,\túÐÊŒ0Ê7uàu I“;˜«1ÎÓ@oãlƒŽãý)ŸzBöÀÈüé\6HàðÄäãÐÕ$MÁ÷yùwÿëR¦Yvò“@ 8r sóSŒŠNâg©ÍM€ÜýÒÎWü)@oœ(qnµÜ\©c’=…I–`¡ˆ}qNÀ(QåÇq'8ÛÒŒäü€‚0;Ó¾P¡pAþ4 ®à3ñœ“JãW"BY€`0½Í3{#oR¬sÜf£ KU±ÓžiK³&>rÆN2(ÇpÈÜ{ snØ Ê?(Îi!!v•m¸Èýj]¡#Þø2nùOµHWÀŒð¥ÀùýèÞ¾LyRÛ{(Á9¤aÊ›O˜üöúS¥Ár|Á&ÑÊò0Oj.ZбžcÏFäÕ£$‰e(òÎRHÎ8à©‘ä®Ñ$’A3RFU%.’œçœvü*Zb¯™”S´£ Ÿö}ª_-oŸfáT¶}*"N ÂŽà“×ëÚ’>¬è§#¦yúÔ¢E3±P òïL‰\M±°20ã¿?’ 0R¬¬C§;GÔw…B‘¸·V;‡ZOQ-—Ì™öáFNÔôâ¥Ú|ÜÈJåA œ?•#'î&RE\àóS# ×%\FܨÜOáýi¢„ròE¸ã©þ´¥°£qUpr@äéM!•åD ±è1Œý)êªÓ‘ìÁN@ãÿÕO”ÑHr1Ø>ã)Rsô”H\|ˆ±ä´QíÊm×c!må_žßO\gŠ–ÙZ0ícNÌ2V ©€]ùÏ5v7YmÑcpaPWî€ÏÇ»u£šæ‘L©d•U›$Ÿ¡õ­¶ hò1T‚pŒàï8íêjRÜZ;nY]— C|ÄgãÔU«y“zB!]§%rØÉÿŽM\4{‹‚¦eBÀûÀûôMŽC’Á‘G˜I 7wävéþdÂM¶ìÂ>Ž€€r}³Àõªò8h°# ©´‚9ï×ÿ­[]rÜÁ»¬ ß3HÁ02 UQÛ€2~žõûû­µçÂûˆe–ãY»‚ŠÇ6JÆXä–Qèù†0+ò …»(’2£c}íÛ²õŽ+õö*ñ4cá$º-¶›µå²™n5ˆ…•äfqcýÜœvê1Dj¸'+\ç“»?Dì탘$h<»Á;‚Ë€rûã¯SZ:Ή*j–Ù¼¸7±glåAûï=@zv­;(ÚÓÃ0j1+nEÌeÎyÏ=rHÛŽžµ±{s=öa©ˆf[(—k;íÚIês×z~µåb*FSqJÝOF—À®u^ðÝž‘.«[â4–2\ò>Í’^•éž°²û1¿¹¹«™L#$üØPz°Húw™§Ma{¢Ú=¤kge4Ûv4™ÆXä`1lãÚ›¡è‹{yu¨%àoÚ7¢ Ê$#¸=禒V¶¸YdórÍ‘ŽÇ½21ß½7Êo6Þyd2„!ä‘ÔóŒ’:‘‘š(ªL­äަ[Ëä:ˆÈùAÈÝŸ½ïT§[©FòËò±N õ=}ºQEc7iÔŠ!I'h ÈÈFKˆùÜ>½©¾UÌI‡„?2‘œçn ÀÿõQE8ÉÜçh¨’0Ža¸8l6sÚ…‘aP¬ no™ÁäqëÖŠ+·‘r›Óes$r9IQKª2MìU¹ãÓ·=ñïR…Ø&Éå›>袡è\‘]È7jüœžBú ›.ÐápÅ—8 @ÇsE-œ³Eu‰Ã™IÛ€È[ž{äô«+ïߌFrO#´QS9X˜«‰´Ç$¢Ÿ/*0NîØ:½º®Ÿ»Êx÷1Sƒ“ÜÚŠ)lŠi\£*Ë.@ªRW€=xìzæ›æo(Œ‰B©ÐöôâŠ+H»”ôD·§•”£;€7˜Ô‘“Ç?• 0¼ñn J¨Á4QTs_RH¡4¶‡ –úSž4:†"]ˆ 8'84QAÐÒ+ ÇÍùÔsT8ü?ýuNdd”.óÙÈA¢Š"bÒ˲1ЬPcvÞ¼ö¦<²+„C•Ž@¨¢ºŤ‡5Ãy1¿˜ÇbPtéLóQ­Ñ†{œäŠ)ÛC‹RºÊwmXà+‚O©ü©Qf]̸÷Ïj(¡…†¢Jò3H¯¯P¾¦Œ¨l$|'nzôý(¢™ S½[ŽGÝ¿z°ò¯Ù³¸ PíÆ:(¢ÄËBº>é@9‘vî ¤áºõ=4£ 0r3ƒÉ´QO©”dî1nbÑ qÈçéëA,³©9÷çóõ¢Š{¡Ùr Ut¿ wŠFùc.FÛ“EÚÐWùä 7"•èÀã?…0“å…ƒqÆ? (ª2¾¢¶sÑ@Æ*ž2ÊAÆß»Ó¿J( Ú(–IYVžO·áQ™fÝ‹´.8z(¬ÍZDHÁ`b£$ç Ÿ¥?wíŽã÷½Ïh¢™ ŽL3 c#‚rMK¾(Ð# ¹2x&Š)£"6 rØíÇÓ!ŽL›±‚(¢—@/G#ý•FFv0O˜úäÔY,›wn^»ˆïÒŠ+&W*uU(åxÛ…**±æbG,p:dqE­=PÒRÊsÔ8¦6[ Á€#-ž(¢´êK0 *ÛsŸ^)O™åòÀ¶GÖŠ)˜ù ,Â/¾1Ôç×ÒŸ»rŒbTÿJ(¦Äž£`Å_æúv¨ÙÙTmv ž¤rh¢’6šÐh\gzŸn;R ; öÍS¾‡,„JÛ¹'š‘Ý@T ÜœœÑEBŸ•w€LyÇ^§ê<å¤å½þTQLIˆ¹RFìsŽôÎIûÄÑEÉ\xù†N>Qj`Vã ăÀ (¤ô4I°Ûóª.@è[4Œ]¾>QÂÙüh¢†Ì¤5BçêE7‰r¥Nà®h¢šê*ƒ”ÿ–yÉ<÷§á„»ƒãŒ}h¢¦úƒv3Ó×' àùù¢Š}váõ8穃‚2{üÇ­Sè'±¨%›*<…nŸ€¥PÎl)'Œàw4QLÎ@¬ì£#rò2{S8U*ÃrÔQED„`!‹ƒµ8eFö àcÞŠ)‡†ýÛnG=³éL,DÀ+ü§ƒÅSÜs’HüŽj2ePyÏn”QJú…ÇS’øwÏHÒiôdš( 2¡`¸èpiapvÝñÒŠ*zš¤†27’0Nj4-µ‚§{uUÚÆ2b çu©€ýßËœzuÿQE+‘ÄPc΃ê;pÄŒg #Ί)^æÒZ #ç*@_¼´¤(cûµÉÆyQJú6C1;{Ôlª2[¯b9¢Š¤SDˆNÒ>PHÎ Å ßü t (¢®ÚØ›~W*2HÆIÇåQIÚÿRŽä6:=¥9žàSÂüÅNÝ—~QTTD#t˜$eWsHTy|‘Ô“È4QS"€7B6¶¼b’@åC¨cÆsëE[PFPy=éVL™r ñŠ(ª!¡.IFÆî¡»Sš2ªÀߎHéE-êKd„ÎÍÀŒéMS+ˆÙŠžHæŠ)£X+PB‘×$y`Ø`Ì }áEžâ˜„årÇAšz6Õ% .x#ÍU #‰o—Íxû£ƒõ¦3¸; Ü3ÆáÍVf²I"VÎíä(D,¤dšiÊ ŽN:ÑEW RØT¹Á zNÂa˜rz©ÏôâŠ("¼J 9ã“·Ÿj‘ceì$`NsEí KrUDK€Œ² (rU°M òJ|°‘“¸dÊŠ+)n a› Bí^¥Tpþ”æÊ¼+>ð<óØÑE\7*²²6ä. FG$ý@éQ„F3¼ž_z(­IàäÉ—v`·qÅ.8Ë7ASœv¢ŠÊCL¦è~ë À »pÔj•#*Wæp0 ”w¢ŠÆlh·É*« ½DHÆO_ΔïWs*ÆAhcþî(¢³¹½=Y$P#,M˜ÁylÅ´ñ­8 ÿM@"14«’W|ØSÚŠ*[.¦ÅÉíä‰VʰF¹F 8öÏ\zVeÛF#;ùÅNW$0À^==1š(­ ÛÐá“( Ë¨Œ~éT¼“¸u#ëÏ«ôkö)Õo5XXCqo¤hz;©šrÏs!ù™€ÁùT¸ãžEW_"hÊúŸ¸z¥…¨ðÕƒÛDÜ–^"ð3ϧOLTᵆO O'’!1Äó8 à}Üö^äõô¢ŠùÌ\Üd­ÖDZI.SJÆÇP¶øl’‡‘ZëhKSÀT<ƒž  tÎ?.}‡ÂÖ"ãÁG9h„é¾H@ÈUÎ2ëœdCE4dý»K#ÏÅ;SºîZÒôëGñ5Ä¶àÆ–l—yR7/<‰«w…×ì§[µßÀ® û«“ŽqÜ~QWˆÄNºœ´ §&™ÿÙlibspatialite-4.3.0a/test/fnmatch_impl4win.h0000664000175000017500000001377112544707704016046 00000000000000/* * Copyright (c) 1989, 1993, 1994 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Guido van Rossum. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * From FreeBSD fnmatch.c 1.11 * $Id: fnmatch.c 273994 2009-01-20 01:37:48Z pajoye $ */ #if defined(LIBC_SCCS) && !defined(lint) static char sccsid[] = "@(#)fnmatch.c 8.2 (Berkeley) 4/16/94"; #endif /* LIBC_SCCS and not lint */ /* * Function fnmatch() as specified in POSIX 1003.2-1992, section B.6. * Compares a filename or pathname to a pattern. */ #define EOS '\0' static const char *rangematch (const char *, char, int); int fnmatch (const char *pattern, const char *string, int flags) { const char *stringstart; char c, test; for (stringstart = string;;) switch (c = *pattern++) { case EOS: if ((flags & FNM_LEADING_DIR) && *string == '/') return (0); return (*string == EOS ? 0 : FNM_NOMATCH); case '?': if (*string == EOS) return (FNM_NOMATCH); if (*string == '/' && (flags & FNM_PATHNAME)) return (FNM_NOMATCH); if (*string == '.' && (flags & FNM_PERIOD) && (string == stringstart || ((flags & FNM_PATHNAME) && *(string - 1) == '/'))) return (FNM_NOMATCH); ++string; break; case '*': c = *pattern; /* Collapse multiple stars. */ while (c == '*') c = *++pattern; if (*string == '.' && (flags & FNM_PERIOD) && (string == stringstart || ((flags & FNM_PATHNAME) && *(string - 1) == '/'))) return (FNM_NOMATCH); /* Optimize for pattern with * at end or before /. */ if (c == EOS) if (flags & FNM_PATHNAME) return ((flags & FNM_LEADING_DIR) || strchr (string, '/') == NULL ? 0 : FNM_NOMATCH); else return (0); else if (c == '/' && flags & FNM_PATHNAME) { if ((string = strchr (string, '/')) == NULL) return (FNM_NOMATCH); break; } /* General case, use recursion. */ while ((test = *string) != EOS) { if (!fnmatch (pattern, string, flags & ~FNM_PERIOD)) return (0); if (test == '/' && flags & FNM_PATHNAME) break; ++string; } return (FNM_NOMATCH); case '[': if (*string == EOS) return (FNM_NOMATCH); if (*string == '/' && flags & FNM_PATHNAME) return (FNM_NOMATCH); if ((pattern = rangematch (pattern, *string, flags)) == NULL) return (FNM_NOMATCH); ++string; break; case '\\': if (!(flags & FNM_NOESCAPE)) { if ((c = *pattern++) == EOS) { c = '\\'; --pattern; } } /* FALLTHROUGH */ default: if (c == *string) ; else if ((flags & FNM_CASEFOLD) && (tolower ((unsigned char) c) == tolower ((unsigned char) *string))) ; else if ((flags & FNM_PREFIX_DIRS) && *string == EOS && (c == '/' && string != stringstart || string == stringstart + 1 && *stringstart == '/')) return (0); else return (FNM_NOMATCH); string++; break; } /* NOTREACHED */ } static const char * rangematch (const char *pattern, char test, int flags) { int negate, ok; char c, c2; /* * A bracket expression starting with an unquoted circumflex * character produces unspecified results (IEEE 1003.2-1992, * 3.13.2). This implementation treats it like '!', for * consistency with the regular expression syntax. * J.T. Conklin (conklin@ngai.kaleida.com) */ if ((negate = (*pattern == '!' || *pattern == '^'))) ++pattern; if (flags & FNM_CASEFOLD) test = tolower ((unsigned char) test); for (ok = 0; (c = *pattern++) != ']';) { if (c == '\\' && !(flags & FNM_NOESCAPE)) c = *pattern++; if (c == EOS) return (NULL); if (flags & FNM_CASEFOLD) c = tolower ((unsigned char) c); if (*pattern == '-' && (c2 = *(pattern + 1)) != EOS && c2 != ']') { pattern += 2; if (c2 == '\\' && !(flags & FNM_NOESCAPE)) c2 = *pattern++; if (c2 == EOS) return (NULL); if (flags & FNM_CASEFOLD) c2 = tolower ((unsigned char) c2); if ((unsigned char) c <= (unsigned char) test && (unsigned char) test <= (unsigned char) c2) ok = 1; } else if (c == test) ok = 1; } return (ok == negate ? NULL : pattern); } libspatialite-4.3.0a/test/sql_stmt_nocache_tests/0000775000175000017500000000000012573314332017242 500000000000000libspatialite-4.3.0a/test/sql_stmt_nocache_tests/Makefile.in0000664000175000017500000003032012573313637021234 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_nocache_tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = amphibious1.testcase \ amphibious2.testcase \ precision1.testcase \ precision2.testcase \ gpkg1.testcase \ gpkg2.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_nocache_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_nocache_tests/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/test/sql_stmt_nocache_tests/amphibious1.testcase0000664000175000017500000000026312544707704023150 00000000000000GPKG amphibious mode - enable :memory: SELECT EnableGpkgAmphibiousMode(), GetGpkgAmphibiousMode(); 1 # rows 2 # column EnableGpkgAmphibiousMode() GetGpkgAmphibiousMode() (NULL) 0 libspatialite-4.3.0a/test/sql_stmt_nocache_tests/gpkg2.testcase0000664000175000017500000000020412544707704021734 00000000000000GPKG mode - disable :memory: SELECT DisableGpkgMode(), GetGpkgMode(); 1 # rows 2 # column DisableGpkgMode() GetGpkgMode(); (NULL) 0 libspatialite-4.3.0a/test/sql_stmt_nocache_tests/amphibious2.testcase0000664000175000017500000000026712544707704023155 00000000000000GPKG amphibious mode - disable :memory: SELECT DisableGpkgAmphibiousMode(), GetGpkgAmphibiousMode(); 1 # rows 2 # column DisableGpkgAmphibiousMode() GetGpkgAmphibiousMode(); (NULL) 0 libspatialite-4.3.0a/test/sql_stmt_nocache_tests/precision1.testcase0000664000175000017500000000024312544707704023001 00000000000000decimal precision - 10 :memory: SELECT SetDecimalPrecision(10), GetDecimalPrecision(); 1 # rows 2 # column SetDecimalPrecision(10) GetDecimalPrecision() (NULL) -1 libspatialite-4.3.0a/test/sql_stmt_nocache_tests/precision2.testcase0000664000175000017500000000024612544707704023005 00000000000000decimal precision - 100 :memory: SELECT SetDecimalPrecision(100), GetDecimalPrecision(); 1 # rows 2 # column SetDecimalPrecision(100) GetDecimalPrecision() (NULL) -1 libspatialite-4.3.0a/test/sql_stmt_nocache_tests/Makefile.am0000664000175000017500000000021612544707704021224 00000000000000 EXTRA_DIST = amphibious1.testcase \ amphibious2.testcase \ precision1.testcase \ precision2.testcase \ gpkg1.testcase \ gpkg2.testcase libspatialite-4.3.0a/test/sql_stmt_nocache_tests/gpkg1.testcase0000664000175000017500000000020012544707704021727 00000000000000GPKG mode - enable :memory: SELECT EnableGpkgMode(), GetGpkgMode(); 1 # rows 2 # column EnableGpkgMode() GetGpkgMode() (NULL) 0 libspatialite-4.3.0a/test/check_gpkgCreateTilesTableMissingSRID.c0000664000175000017500000000662312544707704021772 00000000000000/* check_gpkgCreateTilesTableMissingSRID.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; void *cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_gpkgCreateTilesTableMissingSRID.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -100; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesTable(\"testtile1\", 3.14, 10.1, 20.2, 30.3, 40.4)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for bad SRID, got %i\n", ret); sqlite3_free (err_msg); return -102; } sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_exif2.c0000664000175000017500000002277512544707704014754 00000000000000/* check_exif.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include static sqlite3_int64 get_pixel_x (gaiaExifTagListPtr tag_list, int *ok) { /* trying to retrieve the ExifImageWidth */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0xA002) { /* ok, this one is the ExifImageWidth tag */ if (tag->Type == 3 && tag->Count == 1) { *ok = 1; return *(tag->ShortValues + 0); } else if (tag->Type == 4 && tag->Count == 1) { *ok = 1; return *(tag->LongValues + 0); } } tag = tag->Next; } return 0; } static sqlite3_int64 get_pixel_y (gaiaExifTagListPtr tag_list, int *ok) { /* trying to retrieve the ExifImageLength */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0xA003) { /* ok, this one is the ExifImageLength tag */ if (tag->Type == 3 && tag->Count == 1) { *ok = 1; return *(tag->ShortValues + 0); } else if (tag->Type == 4 && tag->Count == 1) { *ok = 1; return *(tag->LongValues + 0); } } tag = tag->Next; } return 0; } static void get_make (gaiaExifTagListPtr tag_list, const char **str, int *ok) { /* trying to retrieve the Make */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0x010F) { /* ok, this one is the Make tag */ if (tag->Type == 2) { *ok = 1; *str = tag->StringValue; return; } } tag = tag->Next; } return; } static void get_model (gaiaExifTagListPtr tag_list, const char **str, int *ok) { /* trying to retrieve the Model */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0x0110) { /* ok, this one is the Model tag */ if (tag->Type == 2) { *ok = 1; *str = tag->StringValue; return; } } tag = tag->Next; } return; } static void get_date (gaiaExifTagListPtr tag_list, const char **str, int *ok) { /* trying to retrieve the Date */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0x9003) { /* ok, this one is the Make tag */ if (tag->Type == 2) { *ok = 1; *str = tag->StringValue; return; } } tag = tag->Next; } return; } int main (int argc, char *argv[]) { int ret; sqlite3 *handle; FILE *fl; int sz = 0; int rd; int ok; int i; char tag_name[128]; char human[8192]; gaiaExifTagPtr pT; sqlite3_int64 val64; const char *result; unsigned char *blob = NULL; gaiaExifTagListPtr tag_list = NULL; double longitude; double latitude; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -100; } spatialite_init_ex (handle, cache, 0); fl = fopen ("Apple-iPhone-4.jpg", "rb"); if (!fl) { fprintf (stderr, "cannot open EXIF-JPEG image: Apple-iPhone-4.jpg\n"); return -100; } if (fseek (fl, 0, SEEK_END) == 0) sz = ftell (fl); if (sz <= 14) { fprintf (stderr, "invalid size EXIF-JPEG image: Apple-iPhone-4.jpg\n"); return -17; } blob = (unsigned char *) malloc (sz); rewind (fl); rd = fread (blob, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error EXIF-JPEG image: Apple-iPhone-4.jpg\n"); return -18; } tag_list = gaiaGetExifTags (blob, sz); if (tag_list == NULL) { fprintf (stderr, "cannot extract EXIF tags from JPEG image: Apple-iPhone-4.jpg\n"); return -19; } val64 = get_pixel_x (tag_list, &ok); if (!ok) { fprintf (stderr, "Apple-iPhone-4.jpg: PixelX tag not found\n"); return -20; } if (val64 != 1296) { fprintf (stderr, "Apple-iPhone-4.jpg: PixelX unexpected value: %d\n", (int) val64); return -21; } val64 = get_pixel_y (tag_list, &ok); if (!ok) { fprintf (stderr, "Apple-iPhone-4.jpg: PixelY tag not found\n"); return -22; } if (val64 != 968) { fprintf (stderr, "Apple-iPhone-4.jpg: PixelY unexpected value: %d\n", (int) val64); return -23; } get_make (tag_list, &result, &ok); if (!ok) { fprintf (stderr, "Apple-iPhone-4.jpg: Make tag not found\n"); return -24; } if (strcmp (result, "Apple") != 0) { fprintf (stderr, "Apple-iPhone-4.jpg: Make unexpected value: %s|\n", result); return -25; }; get_model (tag_list, &result, &ok); if (!ok) { fprintf (stderr, "Apple-iPhone-4.jpg: Model tag not found\n"); return -26; } if (strcmp (result, "iPhone 4") != 0) { fprintf (stderr, "Apple-iPhone-4.jpg: Model unexpected value: %s|\n", result); return -27; }; get_date (tag_list, &result, &ok); if (!ok) { fprintf (stderr, "Apple-iPhone-4.jpg: Date tag not found\n"); return -28; } if (strcmp (result, "2011:01:13 14:33:39") != 0) { fprintf (stderr, "Apple-iPhone-4.jpg: Date unexpected value: %s|\n", result); return -29; }; for (i = 0; i < gaiaGetExifTagsCount (tag_list); i++) { pT = gaiaGetExifTagByPos (tag_list, i); if (pT) { gaiaExifTagGetName (pT, tag_name, 128); gaiaExifTagGetValueType (pT); gaiaIsExifGpsTag (pT); gaiaExifTagGetValueType (pT); gaiaExifTagGetNumValues (pT); gaiaExifTagGetHumanReadable (pT, human, 8190, &ok); } } pT = gaiaGetExifTagById (tag_list, 0x0112); if (pT == NULL) { fprintf (stderr, "Apple-iPhone-4.jpg: tag Orientation not found: %s|\n", result); return -30; }; for (i = 0x0000; i < 0xffff; i++) { gaiaExifTag tag; tag.Gps = 0; tag.TagId = i; gaiaExifTagGetName (&tag, tag_name, 128); } for (i = 0x0000; i < 0xffff; i++) { gaiaExifTag tag; tag.Gps = 1; tag.TagId = i; gaiaExifTagGetName (&tag, tag_name, 128); } if (!gaiaGetGpsLatLong (blob, sz, human, 8192)) { fprintf (stderr, "cannot extract GPS coords from JPEG image: Apple-iPhone-4.jpg\n"); return -32; } if (strcmp (human, "N 41.00 51.18 0.00 / E 12.00 29.33 0.00") != 0) { fprintf (stderr, "Apple-iPhone-4.jpg: GPS coords unexpected value: %s|\n", human); return -33; }; if (!gaiaGetGpsLatLong (blob, sz, human, 18)) { fprintf (stderr, "cannot extract GPS coords(18) from JPEG image: Apple-iPhone-4.jpg\n"); return -34; } if (strcmp (human, "N 41.00 51.18 0.00") != 0) { fprintf (stderr, "Apple-iPhone-4.jpg: GPS coords(18) unexpected value: %s|\n", human); return -35; }; if (!gaiaGetGpsCoords (blob, sz, &longitude, &latitude)) { fprintf (stderr, "cannot extract GPS long/lat from JPEG image: Apple-iPhone-4.jpg\n"); return -36; } if (longitude != 12.488833000 || latitude != 41.853000000) { fprintf (stderr, "Apple-iPhone-4.jpg: GPS long/lat unexpected values: %1.9f %1.9f|\n", longitude, latitude); return -37; }; if (blob) free (blob); if (tag_list) gaiaExifTagsFree (tag_list); fclose (fl); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -133; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_virtualxpath.c0000664000175000017500000004254612544707704016470 00000000000000/* check_virtualxpath.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" static int load_xml (void *cache, sqlite3 * db_handle, sqlite3_stmt * stmt, const char *path) { #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ /* loading an XMLDocument into the DB */ FILE *fl; int sz = 0; int rd; unsigned char *xml = NULL; unsigned char *p_result = NULL; int len; int ret; /* loading the XMLDocument */ fl = fopen (path, "rb"); if (!fl) { fprintf (stderr, "cannot open \"%s\"\n", path); return 0; } if (fseek (fl, 0, SEEK_END) == 0) sz = ftell (fl); xml = malloc (sz); rewind (fl); rd = fread (xml, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error \"%s\"\n", path); return 0; } fclose (fl); /* parsing the XMLDocument */ gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &len, NULL, NULL); if (p_result == NULL) { fprintf (stderr, "\"%s\": not a well-formed XML !!!\n", path); return 0; } free (xml); /* inserting into the DB */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_blob (stmt, 1, p_result, len, free); sqlite3_bind_text (stmt, 2, path, strlen (path), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) return 1; fprintf (stderr, "INSERT error: %s\n", sqlite3_errmsg (db_handle)); return 0; #else return -1; /* no support */ #endif } int main (int argc, char *argv[]) { #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ sqlite3 *db_handle = NULL; sqlite3_stmt *stmt; char *sql_statement; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); /* creating the base XML table */ sql_statement = "CREATE TABLE test (id INTEGER PRIMARY " "KEY AUTOINCREMENT, xml BLOB, name TEXT)"; ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CreateTable error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } /* loading the XMLDocuments into the DB */ sql_statement = "INSERT INTO test (id, xml, name) VALUES (NULL, ?, ?)"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "PrepareStatement: error \"%s\"\n", sqlite3_errmsg (db_handle)); return -3; } if (!load_xml (cache, db_handle, stmt, "books.xml")) { fprintf (stderr, "Unable to load \"books.xml\""); return -4; } if (!load_xml (cache, db_handle, stmt, "opera.xml")) { fprintf (stderr, "Unable to load \"opera.xml\""); return -5; } if (!load_xml (cache, db_handle, stmt, "movies.xml")) { fprintf (stderr, "Unable to load \"movies.xml\""); return -6; } if (!load_xml (cache, db_handle, stmt, "books.xml")) { fprintf (stderr, "Unable to re-load yet again \"books.xml\""); return -7; } if (!load_xml (cache, db_handle, stmt, "inspire-data-example.xml")) { fprintf (stderr, "Unable to load \"books-bad.xml\""); return -8; } ret = sqlite3_finalize (stmt); /* checking for parse errors */ sql_statement = "SELECT XB_GetLastParseError()"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -10; } sqlite3_free_table (results); /* validating the XMLDocuments */ sql_statement = "UPDATE test SET xml = XB_SchemaValidate(xml, " "XB_GetInternalSchemaURI(XB_GetPayload(xml))) " "WHERE XB_GetInternalSchemaURI(XB_GetPayload(xml)) IS NOT NULL " "AND name <> 'inspire-data-example.xml'"; ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "SchemaValidation error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* checking for validation errors */ sql_statement = "SELECT XB_GetLastValidateError()"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -13; } sqlite3_free_table (results); /* check #1: validity */ sql_statement = "SELECT Count(*) FROM test WHERE XB_IsValid(xml) = 1"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -15; } if (strcmp (results[1], "5") != 0) { fprintf (stderr, "Unexpected error: XB_IsValid() bad result: %s.\n", results[1]); return -16; } sqlite3_free_table (results); /* check #2: validated */ sql_statement = "SELECT Count(*) FROM test WHERE XB_IsSchemaValidated(xml) = 1"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -18; } if (strcmp (results[1], "4") != 0) { fprintf (stderr, "Unexpected error: XB_IsSchemaValidated() bad result: %s.\n", results[1]); return -19; } sqlite3_free_table (results); /* freeing the Schema cache */ sql_statement = "SELECT XB_CacheFlush()"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -20; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -21; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: XB_CacheFlush() bad result: %s.\n", results[1]); return -22; } sqlite3_free_table (results); /* check #3: validated */ sql_statement = "SELECT XB_GetFileId(xml), XB_GetParentId(xml), XB_GetTitle(xml), " "XB_GetAbstract(xml), ST_Srid(XB_GetGeometry(xml)) " "FROM test WHERE XB_IsIsoMetadata(xml) = 1"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -23; } if ((rows != 1) || (columns != 5)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -24; } if (strcmp (results[5], "029097fd-2ef2-487c-a5ca-6ec7a3dbac53") != 0) { fprintf (stderr, "Unexpected error: XB_GetFileId() bad result: %s.\n", results[5]); return -25; } if (strcmp (results[6], "024027fd-3ef2-487c-a8ca-6ec8a3dfac57") != 0) { fprintf (stderr, "Unexpected error: XB_GetParentId() bad result: %s.\n", results[6]); return -26; } if (strcmp (results[7], "Image2000 Product 1 (nl2) Multispectral") != 0) { fprintf (stderr, "Unexpected error: XB_GetTitle() bad result: %s.\n", results[7]); return -27; } if (strcmp (results[8], "IMAGE2000 product 1 individual orthorectified scenes.") != 0) { fprintf (stderr, "Unexpected error: XB_GetAbstract() bad result: %s.\n", results[8]); return -28; } if (strcmp (results[9], "4326") != 0) { fprintf (stderr, "Unexpected error: ST_Srid(XB_Geometry()) bad result: %s.\n", results[9]); return -29; } sqlite3_free_table (results); /* creating the VirtualXPath table */ sql_statement = "CREATE VIRTUAL TABLE test_xp USING VirtualXPath ('test', 'xml')"; ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CreateTable error: %s\n", err_msg); sqlite3_free (err_msg); return -30; } /* test XPAth expression #1 */ sql_statement = "SELECT Count(*) FROM test_xp WHERE xpath_expr = '/*'"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -31; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -32; } if (strcmp (results[1], "5") != 0) { fprintf (stderr, "Unexpected error: XPath #1 bad result: %s.\n", results[1]); return -33; } sqlite3_free_table (results); /* test XPAth expression #2 */ sql_statement = "SELECT DISTINCT a.value, b.name FROM test_xp AS a " "JOIN test AS b ON (b.id = a.pkid) " "WHERE a.xpath_expr = '//author[@lastName=\"Conrad\"]/title/text()'"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -34; } if ((rows != 3) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -35; } if (strcmp (results[0], "value") != 0) { fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", results[0]); return -36; } if (strcmp (results[1], "name") != 0) { fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", results[1]); return -37; } if (strcmp (results[2], "Lord Jim") != 0) { fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", results[2]); return -38; } if (strcmp (results[3], "books.xml") != 0) { fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", results[3]); return -39; } if (strcmp (results[4], "The Secret Agent") != 0) { fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", results[4]); return -40; } if (strcmp (results[6], "Heart of Darkness") != 0) { fprintf (stderr, "Unexpected error: XPath #2 bad result: %s.\n", results[6]); return -41; } sqlite3_free_table (results); /* test XPAth expression #3 */ sql_statement = "SELECT value FROM test_xp WHERE xpath_expr = " "'//dflt:title[text()=\"Pulp Fiction\"]/../@lastName'"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -42; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -43; } if (strcmp (results[1], "Tarantino") != 0) { fprintf (stderr, "Unexpected error: XPath #3 bad result: %s.\n", results[1]); return -44; } sqlite3_free_table (results); /* test XPAth expression #4 */ sql_statement = "SELECT node FROM test_xp WHERE pkid = 2 AND xpath_expr = '/*'"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -45; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -46; } if (strcmp (results[1], "op:Opera") != 0) { fprintf (stderr, "Unexpected error: XPath #4 bad result: %s.\n", results[1]); return -47; } sqlite3_free_table (results); /* test XPAth expression #5 */ sql_statement = "SELECT ROWID, pkid, sub, parent, attribute FROM test_xp " "WHERE pkid > 1 AND pkid < 3 AND xpath_expr = '/*'"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -48; } if ((rows != 1) || (columns != 5)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -49; } if (strcmp (results[5], "2") != 0) { fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", results[5]); return -50; } if (strcmp (results[6], "2") != 0) { fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", results[6]); return -51; } if (strcmp (results[7], "0") != 0) { fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", results[7]); return -52; } if (results[8] != NULL) { fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", results[8]); return -53; } if (results[9] != NULL) { fprintf (stderr, "Unexpected error: XPath #5 bad result: %s.\n", results[9]); return -54; } sqlite3_free_table (results); /* test XPAth expression #6 */ sql_statement = "SELECT parent, attribute FROM test_xp " "WHERE pkid >= 1 AND pkid <= 3 AND " "xpath_expr = '//op:author[@lastName=\"Rossini\"]/@firstName'"; ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -55; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -56; } if (strcmp (results[2], "op:Opera") != 0) { fprintf (stderr, "Unexpected error: XPath #6 bad result: %s.\n", results[2]); return -57; } if (strcmp (results[3], "firstName") != 0) { fprintf (stderr, "Unexpected error: XPath #6 bad result: %s.\n", results[3]); return -58; } sqlite3_free_table (results); /* dropping the VirtualXPathL table */ sql_statement = "DROP TABLE test_xp"; ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Drop VirtualXPath Table error: %s\n", err_msg); sqlite3_free (err_msg); return -59; } sqlite3_close (db_handle); spatialite_cleanup_ex (cache); #endif /* end LIBXML2 conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/asprintf4win.h0000664000175000017500000000414412544707704015225 00000000000000/* * Copyright (C) 2001 Federico Di Gregorio * Copyright (C) 1991, 1994-1999, 2000, 2001 Free Software Foundation, Inc. * * This code has been derived from an example in the glibc2 documentation. * This file is part of the psycopg module. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2, * or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* * asprintf.c -- asprintf() implementation for braindamaged operating systems * $Id: asprintf.c 554 2004-10-30 00:19:27Z fog $ */ #ifndef _WIN32 #include #endif #include #include #ifndef _WIN32 #include #endif #include #ifdef _WIN32 #define vsnprintf _vsnprintf #endif int asprintf (char **buffer, char *fmt, ...) { /* Guess we need no more than 200 chars of space. */ int size = 200; int nchars; va_list ap; *buffer = (char *) malloc (size); if (*buffer == NULL) return -1; /* Try to print in the allocated space. */ va_start (ap, fmt); nchars = vsnprintf (*buffer, size, fmt, ap); va_end (ap); if (nchars >= size) { char *tmpbuff; /* Reallocate buffer now that we know how much space is needed. */ size = nchars + 1; tmpbuff = (char *) realloc (*buffer, size); if (tmpbuff == NULL) { /* we need to free it */ free (*buffer); return -1; } *buffer = tmpbuff; /* Try again. */ va_start (ap, fmt); nchars = vsnprintf (*buffer, size, fmt, ap); va_end (ap); } if (nchars < 0) return nchars; return size; } libspatialite-4.3.0a/test/check_gpkgCreateTilesTable.c0000664000175000017500000003340012544707704017747 00000000000000/* check_gpkgCreateTilesTable.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_gpkgCreateTilesTable.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -100; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesTable(\"testtiles1\", 4326, -180.0, -90.0, 180.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesTable() float bounds result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -101; } /* same, but using integer bounds */ ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesTable(\"testtiles2\", 4326, -180, -90, 180, 90)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesTable() integer bounds result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -102; } /* check gpkg_contents table entry is OK */ ret = sqlite3_get_table (db_handle, "SELECT data_type, identifier, description, last_change, min_x, min_y, max_x, max_y, srs_id FROM gpkg_contents WHERE table_name = 'testtiles1'", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error1: %s\n", err_msg); sqlite3_free (err_msg); return -104; } if ((rows != 1) || (columns != 9)) { sqlite3_free_table (results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -105; } if (strcmp (results[1 * columns + 0], "tiles") != 0) { fprintf (stderr, "Unexpected data_type result (got %s, expected tiles)", results[1 * columns + 0]); sqlite3_free_table (results); return -106; } if (results[1 * columns + 1] != NULL) { fprintf (stderr, "Unexpected identifier result (got %s, expected NULL)", results[1 * columns + 1]); sqlite3_free_table (results); return -107; } if (strcmp (results[1 * columns + 2], "") != 0) { fprintf (stderr, "Unexpected description result (got %s, expected an empty string)", results[1 * columns + 2]); sqlite3_free_table (results); return -108; } /* TODO: this test should be more rigorous */ if (results[1 * columns + 3] == NULL) { fprintf (stderr, "Unexpected last_change result - null)"); sqlite3_free_table (results); return -109; } if ((results[1 * columns + 4] == NULL) || (strcmp (results[1 * columns + 4], "-180.0") != 0)) { fprintf (stderr, "Unexpected min_x result (got %s, expected -180.0)", results[1 * columns + 4]); sqlite3_free_table (results); return -110; } if ((results[1 * columns + 5] == NULL) || (strcmp (results[1 * columns + 5], "-90.0") != 0)) { fprintf (stderr, "Unexpected min_y result (got %s, expected -90.0)", results[1 * columns + 5]); sqlite3_free_table (results); return -111; } if ((results[1 * columns + 6] == NULL) || (strcmp (results[1 * columns + 6], "180.0") != 0)) { fprintf (stderr, "Unexpected max_x result (got %s, expected 180.0)", results[1 * columns + 6]); sqlite3_free_table (results); return -112; } if ((results[1 * columns + 7] == NULL) || (strcmp (results[1 * columns + 7], "90.0") != 0)) { fprintf (stderr, "Unexpected max_y result (got %s, expected 90.0)", results[1 * columns + 7]); sqlite3_free_table (results); return -113; } if ((results[1 * columns + 8] == NULL) || (strcmp (results[1 * columns + 8], "4326") != 0)) { fprintf (stderr, "Unexpected srid result (got %s, expected 4326)", results[1 * columns + 8]); sqlite3_free_table (results); return -114; } sqlite3_free_table (results); /* check gpkg_tile_matrix_set table entry is OK */ ret = sqlite3_get_table (db_handle, "SELECT min_x, min_y, max_x, max_y, srs_id FROM gpkg_tile_matrix_set WHERE table_name = 'testtiles1'", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error1: %s\n", err_msg); sqlite3_free (err_msg); return -140; } if ((rows != 1) || (columns != 5)) { sqlite3_free_table (results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -141; } if ((results[1 * columns + 0] == NULL) || (strcmp (results[1 * columns + 0], "-180.0") != 0)) { fprintf (stderr, "Unexpected min_x result (got %s, expected -180.0)", results[1 * columns + 0]); sqlite3_free_table (results); return -142; } if ((results[1 * columns + 1] == NULL) || (strcmp (results[1 * columns + 1], "-90.0") != 0)) { fprintf (stderr, "Unexpected min_y result (got %s, expected -90.0)", results[1 * columns + 1]); sqlite3_free_table (results); return -143; } if ((results[1 * columns + 2] == NULL) || (strcmp (results[1 * columns + 2], "180.0") != 0)) { fprintf (stderr, "Unexpected max_x result (got %s, expected 180.0)", results[1 * columns + 2]); sqlite3_free_table (results); return -144; } if ((results[1 * columns + 3] == NULL) || (strcmp (results[1 * columns + 3], "90.0") != 0)) { fprintf (stderr, "Unexpected max_y result (got %s, expected 90.0)", results[1 * columns + 3]); sqlite3_free_table (results); return -145; } if ((results[1 * columns + 4] == NULL) || (strcmp (results[1 * columns + 4], "4326") != 0)) { fprintf (stderr, "Unexpected srid result (got %s, expected 4326)", results[1 * columns + 4]); sqlite3_free_table (results); return -146; } sqlite3_free_table (results); sqlite3_free (err_msg); /* try some bad arguments */ ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesTable(3, 4326, -180, -90, 180, 90)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add tiles table, non-string table name, got %i\n", ret); sqlite3_free (err_msg); return -150; } if (strcmp (err_msg, "gpkgCreateTilesTable() error: argument 1 [table] is not of the String type") != 0) { fprintf (stderr, "Unexpected error message for gpkgCreateTilesTable arg 1 bad type: %s\n", err_msg); sqlite3_free (err_msg); return -151; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesTable(\"test2\", \"srid\", -180, -90, 180, 90)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add tiles table, non-integer SRID value, got %i\n", ret); sqlite3_free (err_msg); return -152; } if (strcmp (err_msg, "gpkgCreateTilesTable() error: argument 2 [srid] is not of the integer type") != 0) { fprintf (stderr, "Unexpected error message for gpkgCreateTilesTable arg 2 bad type: %s\n", err_msg); sqlite3_free (err_msg); return -153; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesTable(\"test2\", 0, \"minx\", -90, 180, 90)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add tiles table, non-numeric min_x, got %i\n", ret); sqlite3_free (err_msg); return -154; } if (strcmp (err_msg, "gpkgCreateTilesTable() error: argument 3 [min_x] is not a numeric type") != 0) { fprintf (stderr, "Unexpected error message for gpkgCreateTilesTable arg 3 bad type: %s\n", err_msg); sqlite3_free (err_msg); return -155; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesTable(\"test2\", 0, -180, \"min_y\", 180, 90)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add tiles table, non-numeric min_y, got %i\n", ret); sqlite3_free (err_msg); return -156; } if (strcmp (err_msg, "gpkgCreateTilesTable() error: argument 4 [min_y] is not a numeric type") != 0) { fprintf (stderr, "Unexpected error message for gpkgCreateTilesTable arg 4 bad type: %s\n", err_msg); sqlite3_free (err_msg); return -157; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesTable(\"test2\", 0, -180, -90, \"max_x\", 90)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add tiles table, non-numeric max_x, got %i\n", ret); sqlite3_free (err_msg); return -158; } if (strcmp (err_msg, "gpkgCreateTilesTable() error: argument 5 [max_x] is not a numeric type") != 0) { fprintf (stderr, "Unexpected error message for gpkgCreateTilesTable arg 5 bad type: %s\n", err_msg); sqlite3_free (err_msg); return -159; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesTable(\"test2\", 0, -180, -90, 180, \"max_y\")", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add tiles table, non-numeric max_y, got %i\n", ret); sqlite3_free (err_msg); return -160; } if (strcmp (err_msg, "gpkgCreateTilesTable() error: argument 6 [max_y] is not a numeric type") != 0) { fprintf (stderr, "Unexpected error message for gpkgCreateTilesTable arg 6 bad type: %s\n", err_msg); sqlite3_free (err_msg); return -161; } sqlite3_free (err_msg); /* try duplicate entry */ ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesTable(\"testtiles2\", 0, -180, -85, 180, 85)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add tiles table, duplicate table, got %i\n", ret); sqlite3_free (err_msg); return -162; } sqlite3_free (err_msg); /* try duplicate entry */ ret = sqlite3_exec (db_handle, "CREATE TABLE alreadythere (id INTEGER PRIMARY KEY AUTOINCREMENT)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected error for add tiles table, existing table setup %i (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -164; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesTable(\"alreadythere\", 0, -180, -85, 180, 85)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add tiles table, duplicate table manual, got %i\n", ret); sqlite3_free (err_msg); return -165; } if (strcmp (err_msg, "table alreadythere already exists") != 0) { fprintf (stderr, "Unexpected error message for gpkgCreateTilesTable dupe manual table: %s\n", err_msg); sqlite3_free (err_msg); return -163; } sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_gpkgGetImageFormat.c0000664000175000017500000001104212544707704017424 00000000000000/* check_gpkgGetImageFormat.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ void *cache = spatialite_alloc_connection (); old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv ("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv ("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_gpkgGetImageFormat.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf ("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv (env); sqlite3_free (env); #else /* not WIN32 */ setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv ("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv ("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } sql_statement = "SELECT gpkgGetImageType(BlobFromFile(\"tile111.jpeg\"))"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg (db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf (stderr, "unexpected return value for first step: %i\n", ret); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) { fprintf (stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } if (strcmp ((const char *) sqlite3_column_text (stmt, 0), "jpeg") != 0) { fprintf (stderr, "wrong image type: %s\n", sqlite3_column_text (stmt, 0)); return -33; } ret = sqlite3_step (stmt); if (ret != SQLITE_DONE) { fprintf (stderr, "unexpected return value for second step: %i\n", ret); return -34; } ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.3.0a/test/scandir4win.h0000664000175000017500000000740112544707704015021 00000000000000/* * scandir() for win32 * this tool should make life easier for people writing for both unix and wintel * written by Tom Torfs, 2002/10/31 * donated to the public domain; use this code for anything you like as long as * it is understood there are absolutely *NO* warranties of any kind, even implied */ #ifdef _WIN32 #include #include #include #define MAXNAMLEN FILENAME_MAX /* directory entry structure */ struct dirent { char d_name[MAXNAMLEN + 1]; /* name of directory entry (0 terminated) */ ino_t d_ino; /* file serial number -- will be 0 for win32 */ short d_namlen; /* length of string in d_name */ short d_reclen; /* length of this record */ }; /* the scandir() function */ int scandir (const char *dirname, struct dirent ***namelist, int (*select) (const struct dirent *), int (*compar) (const void *, const void *)); /* compare function for scandir() for alphabetic sort (case-insensitive on Win32) */ int alphasort (const void *d1, const void *d2); /* case-insensitive strcmp() */ int istrcmp (const char *s1, const char *s2); #endif /* * scandir() for win32 * this tool should make life easier for people writing for both unix and wintel * written by Tom Torfs, 2002/10/31 * donated to the public domain; use this code for anything you like as long as * it is understood there are absolutely *NO* warranties of any kind, even implied */ int scandir (const char *dirname, struct dirent ***namelist, int (*select) (const struct dirent *), int (*compar) (const void *, const void *)) { WIN32_FIND_DATA wfd; HANDLE hf; struct dirent **plist, **newlist; struct dirent d; int numentries = 0; int allocentries = 255; int i; char path[FILENAME_MAX]; i = strlen (dirname); if (i > sizeof path - 5) return -1; strcpy (path, dirname); if (i > 0 && dirname[i - 1] != '\\' && dirname[i - 1] != '/') strcat (path, "\\"); strcat (path, "*.*"); hf = FindFirstFile (path, &wfd); if (hf == INVALID_HANDLE_VALUE) return -1; plist = malloc (sizeof *plist * allocentries); if (plist == NULL) { FindClose (hf); return -1; } do { if (numentries == allocentries) { allocentries *= 2; newlist = realloc (plist, sizeof *plist * allocentries); if (newlist == NULL) { for (i = 0; i < numentries; i++) free (plist[i]); free (plist); FindClose (hf); return -1; } plist = newlist; } strncpy (d.d_name, wfd.cFileName, sizeof d.d_name); d.d_ino = 0; d.d_namlen = strlen (wfd.cFileName); d.d_reclen = sizeof d; if (select == NULL || select (&d)) { plist[numentries] = malloc (sizeof d); if (plist[numentries] == NULL) { for (i = 0; i < numentries; i++) free (plist[i]); free (plist); FindClose (hf); return -1; }; memcpy (plist[numentries], &d, sizeof d); numentries++; } } while (FindNextFile (hf, &wfd)); FindClose (hf); if (numentries == 0) { free (plist); *namelist = NULL; } else { newlist = realloc (plist, sizeof *plist * numentries); if (newlist != NULL) plist = newlist; if (compar != NULL) qsort (plist, numentries, sizeof *plist, compar); *namelist = plist; } return numentries; } int alphasort (const void *x1, const void *x2) { const struct dirent **d1 = (const struct dirent **) x1; const struct dirent **d2 = (const struct dirent **) x2; return istrcmp ((*d1)->d_name, (*d2)->d_name); } int istrcmp (const char *s1, const char *s2) { int d; for (;;) { d = tolower (*s1) - tolower (*s2); if (d != 0 || *s1 == '\0' || *s2 == '\0') return d; s1++; s2++; } } libspatialite-4.3.0a/test/test_geos.sqlite0000664000175000017500000102400012544707704015635 00000000000000SQLite format 3@ M vM-æQk ûöñìçâÝØÓÎÉÄ¿ºµ°«¦¡œ—’ˆƒ~ytoje`[VQLGB=83.)$ ü÷òíèãÞÙÔÏÊÅÀ»¶±¬§¢˜“މ„zupk?S-indexsqlite_autoindex_geometry_columns_1geometry_columnsP++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)‚11ƒ]tablespatialite_historyspatialite_historyCREATE TABLE spatialite_history ( event_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, table_name TEXT N omjihgfeÿdþcýbüaû`ú_ù^ø]÷\ö[õZôYóXòWñVðUïTîSíRìQëPêOéNèMçLæKåJäIãHâGáFàEßDÞCÝBÜAÛ?Ú=Ù<Ø;×:Ö9Õ8Ô7Ó6Ò5Ñ4Ð3Ï2Î1Í0Ì/Ë.Ê,É*È)Ç(Æ'Å&2%+ (%"   §Ì—§…k³x 3)ŠepsgYøED50 / UTM zone 32N+proj=utm +zone=32 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_defsPROJCS["ED50 / UTM zone 32N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","23032"]]3K NONEUndefined - Geographic Long/LatUndefined*ÿÿÿÿÿÿÿÿÿ7 NONEÿUndefined - CartesianUndefinedû6û;¯#› -=#geometry_columnstrigger 'geometry_columns_geometry_type_insert' successfully created2013-10-31T19:05:10.609Z3.8.14.1.2-devel  -=#geometry_columnstrigger 'geometry_columns_f_geometry_column_update' successfully created2013-10-31T19:05:10.609Z3.8.14.1.2-devel  -=#geometry_columnstrigger 'geometry_columns_f_geometry_column_insert' successfully created2013-10-31T19:05:10.609Z3.8.14.1.2-devel -=#geometry_columnstrigger 'geometry_columns_f_table_name_update' successfully created2013-10-31T19:05:10.608Z3.8.14.1.2-devel -=#geometry_columnstrigger 'geometry_columns_f_table_name_insert' successfully created2013-10-31T19:05:10.608Z3.8.14.1.2-develZ-A=#geometry_columnstable successfully created2013-10-31T19:05:10.608Z3.8.14.1.2-develY+A=#spatial_ref_systable successfully created2013-10-31T19:05:10.607Z3.8.14.1.2-5 ÐèÐ1sql_statements_log1spatialite_history ååcomunigeometryYø íí comunigeometry }}’®88?S-indexsqlite_autoindex_geometry_columns_1geometry_columns‚++ƒ[tablespatial_ref_sysspatial_ref_sysCREATE TABLE spatial_ref_sys ( srid INTEGER NOT NULL PRIMARY KEY, auth_name TEXT NOT NULL, auth_srid INTEGER NOT NULL, ref_sys_name TEXT NOT NULL DEFAULT 'Unknown', proj4text TEXT NOT NULL, srtext TEXT NOT NULL DEFAULT 'Undefined')‚11ƒ]tablespatialite_historyspatialite_historyCREATE TABLE spatialite_history ( event_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, table_name TEXT NOT NULL, geometry_column TEXT, event TEXT NOT NULL, timestamp TEXT NOT NULL, ver_sqlite TEXT NOT NULL, ver_splite TEXT NOT NULL)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq) ßß¿ŽŽK_9indexsqlite_autoindex_views_geometry_columns_1views_geometry_columns ƒ]--†mtablegeometry_columnsgeometry_columnsCREATE TABLE geometry_columns ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, geometry_type INTEGER NOT NULL, coord_dimension INTEGER NOT NULL, srid INTEGER NOT NULL, spatial_index_enabled INTEGER NOT NULL, CONSTRAINT pk_geom_cols PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_srs FOREIGN KEY (srid) REFERENCES spatial_ref_sys (srid), CONSTRAINT ck_gc_rtree CHECK (spatial_index_enabled IN (0,1,2)))?S-indexsqlite_autoindex_geometry_columns_1geometry_columns   0}„99‡Wtableviews_geometry_columnsviews_geometry_columns CREATE TABLE views_geometry_columns ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, view_rowid TEXT NOT NULL, f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, read_only INTEGER NOT NULL, CONSTRAINT pk_geom_cols_views PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_views_geom_cols FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE, CONSTRAINT ck_vw_rdonly CHECK (read_only IN (0,1)))K_9indexsqlite_autoindex_views_geometry_columns_1views_geometry_columns ƒ99…tablevirts_geometry_columnsvirts_geometry_columns CREATE TABLE virts_geometry_columns ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, geometry_type INTEGER NOT NULL, coord_dimension INTEGER NOT NULL, srid INTEGER NOT NULL, CONSTRAINT pk_geom_cols_virts PRIMARY KEY (virt_name, virt_geometry), CONSTRAINT fk_vgc_srid FOREIGN KEY (srid) REFERENCES spatial_ref_sys (srid))   II–©ââa uOindexsqlite_autoindex_views_geometry_columns_statistics_1views_geometry_columns_statisticsK _9indexsqlite_autoindex_virts_geometry_columns_1virts_geometry_columns „ CC‡'tablegeometry_columns_statisticsgeometry_columns_statisticsCREATE TABLE geometry_columns_statistics ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, last_verified TIMESTAMP, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_gc_statistics PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_statistics FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)U iCindexsqlite_autoindex_geometry_columns_statistics_1geometry_columns_statistics çç comunigeometry ììcomunigeometry   ŠŠ##auOindexsqlite_autoindex_virts_geometry_columns_statistics_1virts_geometry_columns_statistics„ OO‡tableviews_geometry_columns_statisticsviews_geometry_columns_statisticsCREATE TABLE views_geometry_columns_statistics ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, last_verified TIMESTAMP, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_vwgc_statistics PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_vwgc_statistics FOREIGN KEY (view_name, view_geometry) REFERENCES views_geometry_columns (view_name, view_geometry) ON DELETE CASCADE)a uOindexsqlite_autoindex_views_geometry_columns_statistics_1views_geometry_columns_statistics   ˆˆ++WkEindexsqlite_autoindex_geometry_columns_field_infos_1geometry_columns_field_infos„OO‡tablevirts_geometry_columns_statisticsvirts_geometry_columns_statisticsCREATE TABLE virts_geometry_columns_statistics ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, last_verified TIMESTAMP, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_vrtgc_statistics PRIMARY KEY (virt_name, virt_geometry), CONSTRAINT fk_vrtgc_statistics FOREIGN KEY (virt_name, virt_geometry) REFERENCES virts_geometry_columns (virt_name, virt_geometry) ON DELETE CASCADE)auOindexsqlite_autoindex_virts_geometry_columns_statistics_1virts_geometry_columns_statistics   ÍͧddcwQindexsqlite_autoindex_views_geometry_columns_field_infos_1views_geometry_columns_field_infos…WEEŠ1tablegeometry_columns_field_infosgeometry_columns_field_infosCREATE TABLE geometry_columns_field_infos ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, ordinal INTEGER NOT NULL, column_name TEXT NOT NULL, null_values INTEGER NOT NULL, integer_values INTEGER NOT NULL, double_values INTEGER NOT NULL, text_values INTEGER NOT NULL, blob_values INTEGER NOT NULL, max_size INTEGER, integer_min INTEGER, integer_max INTEGER, double_min DOUBLE, double_max DOUBLE, CONSTRAINT pk_gcfld_infos PRIMARY KEY (f_table_name, f_geometry_column, ordinal, column_name), CONSTRAINT fk_gcfld_infos FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)WkEindexsqlite_autoindex_geometry_columns_field_infos_1geometry_columns_field_infos   ÁÁ›XXcwQindexsqlite_autoindex_virts_geometry_columns_field_infos_1virts_geometry_columns_field_infos…WQQŠtableviews_geometry_columns_field_infosviews_geometry_columns_field_infosCREATE TABLE views_geometry_columns_field_infos ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, ordinal INTEGER NOT NULL, column_name TEXT NOT NULL, null_values INTEGER NOT NULL, integer_values INTEGER NOT NULL, double_values INTEGER NOT NULL, text_values INTEGER NOT NULL, blob_values INTEGER NOT NULL, max_size INTEGER, integer_min INTEGER, integer_max INTEGER, double_min DOUBLE, double_max DOUBLE, CONSTRAINT pk_vwgcfld_infos PRIMARY KEY (view_name, view_geometry, ordinal, column_name), CONSTRAINT fk_vwgcfld_infos FOREIGN KEY (view_name, view_geometry) REFERENCES views_geometry_columns (view_name, view_geometry) ON DELETE CASCADE)cwQindexsqlite_autoindex_views_geometry_columns_field_infos_1views_geometry_columns_field_infos   ¿¿›ppI]7indexsqlite_autoindex_geometry_columns_time_1geometry_columns_time!…YQQŠtablevirts_geometry_columns_field_infosvirts_geometry_columns_field_infosCREATE TABLE virts_geometry_columns_field_infos ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, ordinal INTEGER NOT NULL, column_name TEXT NOT NULL, null_values INTEGER NOT NULL, integer_values INTEGER NOT NULL, double_values INTEGER NOT NULL, text_values INTEGER NOT NULL, blob_values INTEGER NOT NULL, max_size INTEGER, integer_min INTEGER, integer_max INTEGER, double_min DOUBLE, double_max DOUBLE, CONSTRAINT pk_vrtgcfld_infos PRIMARY KEY (virt_name, virt_geometry, ordinal, column_name), CONSTRAINT fk_vrtgcfld_infos FOREIGN KEY (virt_name, virt_geometry) REFERENCES virts_geometry_columns (virt_name, virt_geometry) ON DELETE CASCADE)cwQindexsqlite_autoindex_virts_geometry_columns_field_infos_1virts_geometry_columns_field_infos ¢¢\===comunigeometry2013-10-31T20:05:58.972Z0000-01-01T00:00:00.000Z2013-10-31T19:19:42.815Z ììcomunigeometry wwµ((I]7indexsqlite_autoindex_geometry_columns_auth_1geometry_columns_auth$„;77ˆtablegeometry_columns_timegeometry_columns_time CREATE TABLE geometry_columns_time ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, last_insert TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', last_update TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', last_delete TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', CONSTRAINT pk_gc_time PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_time FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)I]7indexsqlite_autoindex_geometry_columns_time_1geometry_columns_time! ëëcomunigeometry íí comunigeometry §§µLLUiCindexsqlite_autoindex_views_geometry_columns_auth_1views_geometry_columns_auth'„ 77‡5tablegeometry_columns_authgeometry_columns_auth#CREATE TABLE geometry_columns_auth ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, read_only INTEGER NOT NULL, hidden INTEGER NOT NULL, CONSTRAINT pk_gc_auth PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_auth FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE, CONSTRAINT ck_gc_ronly CHECK (read_only IN (0,1)), CONSTRAINT ck_gc_hidden CHECK (hidden IN (0,1)))I]7indexsqlite_autoindex_geometry_columns_auth_1geometry_columns_auth$   $$å<ƒ>CC†tableviews_geometry_columns_authviews_geometry_columns_auth&CREATE TABLE views_geometry_columns_auth ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, hidden INTEGER NOT NULL, CONSTRAINT pk_vwgc_auth PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_vwgc_auth FOREIGN KEY (view_name, view_geometry) REFERENCES views_geometry_columns (view_name, view_geometry) ON DELETE CASCADE, CONSTRAINT ck_vwgc_hidden CHECK (hidden IN (0,1)))UiCindexsqlite_autoindex_views_geometry_columns_auth_1views_geometry_columns_auth'ƒACC† tablevirts_geometry_columns_authvirts_geometry_columns_auth)CREATE TABLE virts_geometry_columns_auth ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, hidden INTEGER NOT NULL, CONSTRAINT pk_vrtgc_auth PRIMARY KEY (virt_name, virt_geometry), CONSTRAINT fk_vrtgc_auth FOREIGN KEY (virt_name, virt_geometry) REFERENCES virts_geometry_columns (virt_name, virt_geometry) ON DELETE CASCADE, CONSTRAINT ck_vrtgc_hidden CHECK (hidden IN (0,1)))   UU¬e³ù’e"--indexidx_srid_geocolsgeometry_columns0CREATE INDEX idx_srid_geocols ON geometry_columns (srid) Z!%%ytablesqlite_stat3sqlite_stat3/CREATE TABLE sqlite_stat3(tbl,idx,neq,nlt,ndlt,sample)UiCindexsqlite_autoindex_virts_geometry_columns_auth_1virts_geometry_columns_auth*ƒ611†tablesql_statements_logsql_statements_log,CREATE TABLE sql_statements_log ( id INTEGER PRIMARY KEY AUTOINCREMENT, time_start TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', time_end TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', user_agent TEXT NOT NULL, sql_statement TEXT NOT NULL, success INTEGER NOT NULL DEFAULT 0, error_cause TEXT NOT NULL DEFAULT 'ABORTED', CONSTRAINT sqllog_success CHECK (success IN (0,1)))Lutablecomunicomuni-CREATE TABLE comuni(code INT,name TEXT,Geometry NUM)K %%[tablesqlite_stat1sqlite_stat1.CREATE TABLE sqlite_stat1(tbl,idx,stat)ö9ûöÎ  ==) 2013-10-31T19:11:33.024Z2013-10-31T19:11:33.317Zspatialite_guiinsert into comuni select * from comuni where name = 'Arezzo'success. ==)M 2013-10-31T19:09:31.867Z2013-10-31T19:09:32.138Zspatialite_guiCREATE TABLE comuni AS SELECT pro_com AS code, nome_com AS name, Geometry from com order by namesuccesss==)Y 2013-10-31T19:07:48.049Z2013-10-31T19:07:49.543Zspatialite_guidelete FROM "com" where cod_pro != 51successn ==)‚M 2013-10-31T19:07:23.099Z2013-10-31T19:07:23.278Zspatialite_guiSELECT ROWID, "PK_UID", "COD_REG", "COD_PRO", "PRO_COM", "NOME_COM", "NOME_TED", "SHAPE_Leng", "SHAPE_Area", "Geometry" FROM "com" where nome_com like '%arezzo'success  ==) 2013-10-31T19:05:53.971Z2013-10-31T19:05:54.388Zspatialite_guidelete from spatial_ref_sys where srid > 0 and srid != 238 7â¥ûöñìçâ¼mùFÇ>CapolonaøY˜T&AlLydRA˜:Z&AlL@RpRA|i☌N&AlL@ìoRA˜€”N&AlLÞoRA˜ N&AlLÀÌoRA˜¤N&AlLÀ¬oRA˜€­N&AlL0£oRA˜ÌN&AlL…oRA˜.O&AlL€ioRA˜ÔO&AlL@NoRA˜ÀyP&AlLÐ5oRA˜àP&AlLoRA˜*Q&AlL@ünRA˜HQ&AlL€ànRA˜€@Q&AlLÚnRA˜.Q&AlL€ÉnRA˜BQ&AlL®nRA˜˜Q&AlLÀnRA˜èQ&AlL@xnRA˜LR&AlLÀ_nRA˜¶R&AlL€FnRA˜*S&AlL?nRA˜¨S&AlL0BnRA˜ÒS&AlL@CnRA˜€T&AlL°DnRA˜€T&AlLàInRA˜€¡T&AlLJnRA˜âT&AlLMnRA˜ÜU&AlLÀMnRA˜ÈV&AlL€JnRA˜„W&AlLDnRA˜€×W&AlLÐ;nRA˜ X&AlLÀ4nRA˜ºX&AlL!nRA˜ÞfÇ9AnghiariøY˜Fz&AlLÀ/^RA˜Þê&AlL„pRA|iw› ”ƒvml FòØHò´`F 1spatialite_history15RCigeometry_columns_statisticssqlite_autoindex_geometry_columns_statistics_11 1 1<-Sgeometry_columnssqlite_autoindex_geometry_columns_11 1 1'--geometry_columnsidx_srid_geocols1 1++3spatial_ref_sysidx_spatial_ref_sys3 1 1F7]geometry_columns_timesqlite_autoindex_geometry_columns_time_11 1 1F7]geometry_columns_authsqlite_autoindex_geometry_columns_auth_11 1 11sql_statements_log13 comuni13 ´h<â·uVCi geometry_columns_statisticssqlite_autoindex_geometry_columns_statistics_1comuni@-S geometry_columnssqlite_autoindex_geometry_columns_1comuni)-- geometry_columnsidx_srid_geocolsYø-+3 spatial_ref_sysidx_spatial_ref_sysYø)+3 spatial_ref_sysidx_spatial_ref_sys*+3 spatial_ref_sysidx_spatial_ref_sysÿJ7] geometry_columns_timesqlite_autoindex_geometry_columns_time_1comuniJ7] geometry_columns_authsqlite_autoindex_geometry_columns_auth_1comuni úú Yø  ÃÆ|¬(%3+1indexidx_spatial_ref_sysspatial_ref_sys4CREATE UNIQUE INDEX idx_spatial_ref_sys ON spatial_ref_sys (auth_srid, auth_name)k$'9indexidx_virtsZ!%%ytablesqlite_stat3sqlite_stat3/CREATE TABLE sqlite_stat3(tbl,idx,neq,nlt,ndlt,sample)e"--indexidx_srid_geocolsgeometry_columns0CREATE INDEX idx_srid_geocols ON geometry_columns (srid) #'99indexidx_viewsjoinviews_geometry_columns1CREATE INDEX idx_viewsjoin ON views_geometry_columns (f_table_name, f_geometry_column)k$'9indexidx_virtssridvirts_geometry_columns3CREATE INDEX idx_virtssrid ON virts_geometry_columns (srid)%3+1indexidx_spatial_ref_sysspatial_ref_sys4CREATE UNIQUE INDEX idx_spatial_ref_sys ON spatial_ref_sys (auth_srid, auth_name)  ßõìß YøepsgYøNONE ÿNONEÿ ›¥IÂ;¯#› -=#geometry_columnstrigger 'geometry_columns_geometry_type_insert' successfully created2013-10-31T19:05:10.609Z3.8.14.1.2-devel  -=#geometry_columnstrigger 'geometry_columns_f_geometry_column_update' successfully created2013-10-31T19:05:10.609Z3.8.14.1.2-devel  -=#geometry_columnstrigger 'geometry_columns_f_geometry_column_insert' successfully created2013-10-31T19:05:10.609Z3.8.14.1.2-devel -=#geometry_columnstrigger 'geometry_columns_f_table_name_update' successfully created2013-10-31T19:05:10.608Z3.8.14.1.2-devel -=#geometry_columnstrigger 'geometry_columns_f_table_name_insert' successfully created2013-10-31T19:05:10.608Z3.8.14.1.2-develZ-A=#geometry_columnstable successfully created2013-10-31T19:05:10.608Z3.8.14.1.2-develY+A=#spatial_ref_systable successfully created2013-10-31T19:05:10.607Z3.8.14.1.2-devel &xîdô—¢&z =#com2011GeometryGeometry [MULTIPOLYGON,XY,SRID=23032] successfully created2013-10-31T20:04:27.826Z3.8.14.1.2-devel{ =#comuniGeometryGeometry [MULTIPOLYGON,XY,SRID=23032] successfully recovered2013-10-31T19:09:49.655Z3.8.14.1.2-develv =#comGeometryGeometry [MULTIPOLYGON,XY,SRID=23032] successfully created2013-10-31T19:06:47.614Z3.8.14.1.2-devel[ +E=#spatial_ref_systable successfully populated2013-10-31T19:05:10.944Z3.8.14.1.2-develn /g=#geom_cols_ref_sysview 'geom_cols_ref_sys' successfully created2013-10-31T19:05:10.610Z3.8.14.1.2-devel -=#geometry_columnstrigger 'geometry_columns_coord_dimension_update' successfully created2013-10-31T19:05:10.610Z3.8.14.1.2-devel -=#geometry_columnstrigger 'geometry_columns_coord_dimension_insert' successfully created2013-10-31T19:05:10.610Z3.8.14.1.2-devel -=#geometry_columnstrigger 'geometry_columns_geometry_type_update' successfully created2013-10-31T19:05:10.610Z3.8.14.1.2-devel Îs‚ \Î  ==) 2013-10-31T19:11:33.024Z2013-10-31T19:11:33.317Zspatialite_guiinsert into comuni select * from comuni where name = 'Arezzo'success. ==)M 2013-10-31T19:09:31.867Z2013-10-31T19:09:32.138Zspatialite_guiCREATE TABLE comuni AS SELECT pro_com AS code, nome_com AS name, Geometry from com order by namesuccesss==)Y 2013-10-31T19:07:48.049Z2013-10-31T19:07:49.543Zspatialite_guidelete FROM "com" where cod_pro != 51successn ==)‚M 2013-10-31T19:07:23.099Z2013-10-31T19:07:23.278Zspatialite_guiSELECT ROWID, "PK_UID", "COD_REG", "COD_PRO", "PRO_COM", "NOME_COM", "NOME_TED", "SHAPE_Leng", "SHAPE_Area", "Geometry" FROM "com" where nome_com like '%arezzo'success  ==) 2013-10-31T19:05:53.971Z2013-10-31T19:05:54.388Zspatialite_guidelete from spatial_ref_sys where srid > 0 and srid != 23032success \@“þ'\H ==)‚ 2013-10-31T19:15:04.316Z2013-10-31T19:15:04.517Zspatialite_guiSELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.rowid = 2 AND b.rowid <> 2 AND ST_Equals(a.geometry, b.geometry) = 1successT ==)‚ 2013-10-31T19:14:29.429Z2013-10-31T19:14:29.647Zspatialite_guiSELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.name = 'Arezzo' AND a.rowid <> b.rowid AND ST_Equals(a.geometry, b.geometry) = 1success ==) 2013-10-31T19:14:02.356Z2013-10-31T19:14:02.480Zspatialite_guiSELECT ROWID, "code", "name", "Geometry" FROM "comuni" ORDER BY namesuccess* ==)K2013-10-31T19:13:55.458Z2013-10-31T19:13:55.579Zspatialite_guiSELECT ROWID, "code", "name", "Geometry" FROM "comuni" ORDER BY nomeSQL error: no such column: nome= ==)k 2013-10-31T19:13:29.747Z2013-10-31T19:13:30.027Zspatialite_guiSELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.name = 'Arezzo' AND ST_Equals(a.geometry, b.geometry) = 1success )3Ë)c ==)‚7 2013-11-07T11:40:11.360Z2013-11-07T11:40:11.379Zspatialite_guiSELECT AsText(ST_ForceLHR(GUnion(GeomFromText("POLYGON((10 10, 15 10, 15 15, 10 15, 10 10))"), GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))"))));success9 ==)c 2013-11-07T11:39:48.377Z2013-11-07T11:39:48.474Zspatialite_guiSELECT AsEwkt(BdMPolyFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))'));success1 ==)S 2013-10-31T20:05:58.849Z2013-10-31T20:05:59.116Zspatialite_guiinsert into comuni SELECT pro_com AS code, nome_com AS name, Geometry from com2011 where rowid = 4success1 ==)S 2013-10-31T20:05:39.700Z2013-10-31T20:05:39.976Zspatialite_guiinsert into comuni SELECT pro_com AS code, nome_com AS name, Geometry from com2011 where rowid = 4successJ ==)‚ 2013-10-31T19:15:15.188Z2013-10-31T19:15:15.387Zspatialite_guiSELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.rowid = 2 AND b.rowid <> 2 AND ST_Disjoint(a.geometry, b.geometry) = 1success; øoRA˜Žˆ&AlL@ÿoRA˜J‰&AlL€pRA˜€œ‰&AlLÐpRA˜,Š&AlL@pRA˜¬Š&AlL@pRA˜B‹&AlL pRA˜Œ&AlLÀpRA˜OŒ&AlLpRA˜ÐŒ&AlL€üoRA˜¼&AlLÀñoRA˜nŽ&AlL@äoRA˜&AlL€ÔoRA˜È&AlL@ÆoRA˜&AlLÂoRA˜l‘&AlL€¿oRA˜l’&AlLÀ»oRA˜V“&AlL€µoRA˜þ“&AlL€¨oRA˜””&AlLÀ•oRA˜•&AlL€~oRA˜²•&AlL@joRA˜V–&AlLVoRA˜Ú–&AlLHoRA˜N—&AlL€1oRA˜¢—&AlL€oRA˜˜&AlLünRA˜r˜&AlL€ánRA˜ö˜&AlLÍnRA˜r™&AlLÀ¾nRA˜Dš&AlL€²nRA˜ìš&AlL­nRA˜ö›&AlL€«nRA˜Øœ&AlL€©nRA˜¨&AlL€¨nRA˜bž&AlLÀ¡nRA˜Ÿ&AlL—nRA˜¶Ÿ&AlLÀ’nRA˜P &AlL@‰nRA˜Ò &AlL€nRA˜r¡&AlL@{nRA˜P¢&AlL€wnRA˜œ¢&AlLPvnRA˜,£&AlLtnRA˜ÀŸ£&AlL tnRA˜¤&AlL@tnRA˜¥&AlLÀrnRA˜ê¥&AlL€nnRA˜Œ¦&AlLÀjnRA˜B§&AlL€lnRA˜ا&AlL€nnRA˜”¨&AlL@knRA˜`©&AlL@gnRA˜ª&AlL@_nRA˜®ª&AlLÀ[nRA˜r«&AlL@XnRA˜$¬&AlL€WnRA˜¬¬&AlL€\nRA˜"­&AlL_nRA˜¬­&AlL@MnRA˜ ®&AlL?nRA˜†®&AlL@+nRA˜æ®&AlL€nRA˜(¯&AlL€nRA˜~¯<&AlL@ùmRA˜ê¯&AlLÀímRA˜b°&AlLïmRA˜è°&AlL€ömRA˜r±&AlLýmRA˜²&AlLómRA˜º²&AlL@ãmRA˜H³&AlL@ÕmRA˜¦³&AlLÀÌmRA˜æ³&AlL€ÂmRA˜ ´&AlLÀ¸mRA˜l´&AlL¸mRA˜û´&AlLðÂmRA˜Zµ&AlL@ÊmRA˜òµ&AlL@ÖmRA˜ˆ¶&AlLâmRA˜·&AlLÀÔmRA˜¤·&AlL€ÃmRA˜ ¸&AlL¹mRA˜ ¸&AlL€®mRA˜â¸&AlL@©mRA˜,¹&AlL€¡mRA˜B¹&AlL€ØmRA˜J¹&AlL`ÜmRA˜¼¹&AlLnRA˜ º&AlLÀ@nRA˜ º&AlLMnRA˜ ¸&AlLÀ^nRA˜·&AlLÀonRA˜t·&AlLˆnRA˜¶·&AlL@‘nRA˜H¸&AlL@¦nRA˜z¸&AlL±nRA˜¦¸&AlLÀ¹nRA˜¹&AlL€´nRA˜ º&AlLnRA˜¾º&AlL’nRA˜®»&AlLÀxnRA˜Ⱥ&AlL@WnRA˜ »&AlLÀOnRA˜޼&AlL€;nRA˜½&AlL@2nRA˜ì½&AlL€/nRA˜¦¾&AlLÀ.nRA˜¿&AlL€2nRA˜z¿&AlL€:nRA˜$À&AlL€AnRA˜¼À&AlLBnRA˜jÁ&AlLDnRA˜Â&AlL€GnRA˜ÚÂ&AlL€InRA˜ZÃ&AlLKnRA˜êÃ&AlL€InRA˜¦Ä&AlL€JnRA˜XÅ&AlLQnRA˜ÀÅ&AlLSnRA˜0Æ&AlL@MnRA˜ÄÆ&AlL€DnRA˜.Ç&AlL@@nRA˜–Ç&AlLÀCnRA˜ðÇ&AlLLnRA˜€È&AlL NnRA˜6È&AlL€SnRA˜€ŸÈ&AlLTnRA˜=¸È&AlL@TnRA˜\É&AlL@SnRA˜ÄÉ&AlLVnRA˜€úÉ&AlL°XnRA˜*Ê&AlL[nRA˜€‹Ê&AlLXnRA˜€òÊ&AlLÀGnRA˜>Ë&AlL@MnRA˜¥Ë&AlL@LnRA˜€²Ë&AlL€InRA˜ÈË&AlLEnRA˜îË&AlL@:nRA˜Ì&AlL.nRA˜ôË&AlL@ nRA˜€ºË&AlLPnRA˜xË&AlL€ nRA˜4Ë&AlL€ýmRA˜ÚÊ&AlL€ñmRA˜~Ê&AlL@åmRA˜Ê&AlLØmRA˜÷É&AlLÑmRA˜ÂÉ&AlL@ÆmRA˜nÉ&AlLÀ¼mRA˜àÈ&AlLÀµmRA˜€*È&AlL€²mRA˜È&AlL@²mRA˜Ç&AlLÀ®mRA˜Ç&AlL€¨mRA˜Æ&AlL€mRA˜ZÆ&AlLÀ”mRA˜Æ&AlL@mRA˜ªÅ&AlL’mRA˜4Å&AlL€mRA˜ÈÄ&AlLÀ…mRA˜`Ä&AlL@ymRA˜€8Ä&AlL qmRA˜&Ä&AlLnmRA˜Ä&AlL\mRA˜FÄ&AlLBmRA˜\Ä&AlL@7mRA˜hÄ&AlLÀ-mRA˜€Ä&AlLÀ$mRA˜€Ä&AlLÐmRA˜¬Ä&AlLÀ mRA˜¢Ä&AlL€ðlRA˜€£Ä&AlLðîlRA˜ºÄ&AlL€ÖlRA˜€òÄ&AlLÉlRA˜Å&AlLÄlRA˜€VÅ&AlL`ºlRA˜ˆÅ&AlL@´lRA˜¹Å&AlLÀ¯lRA˜NÆ&AlL¢lRA˜òÆ&AlL@žlRA˜€WÇ&AlLlRA˜ÚÇ&AlL€›lRA˜€­È&AlLà™lRA˜¼È&AlLÀ™lRA˜ŠÉ&AlL¡lRA˜€Ê&AlL­lRA˜†Ê&AlLÀµlRA˜ðÊ&AlL@´lRA˜ªË&AlL@¥lRA˜€Ì&AlLЙl>RA˜"Ì&AlL€•lRA˜¦Ì&AlLÀ„lRA˜0Í&AlLÀulRA˜¼Í&AlL@glRA˜|Î&AlL@XlRA˜,Ï&AlLPlRA˜âÏ&AlLÀLlRA˜ˆÐ&AlLÀHlRA˜ Ð&AlL€GlRA˜@Ñ&AlL?lRA˜ÄÑ&AlL3lRA˜Ò&AlL#lRA˜fÒ&AlL@ lRA˜œÒ&AlL€òkRA˜¶Ò&AlL€ìkRA˜€ãÒ&AlL âkRA˜òÒ&AlLÀÞkRA˜ŒÓ&AlL@×kRA˜¸Ó&AlLÀÕkRA˜8Ô&AlL@ÑkRA˜ÌÔ&AlLÀÆkRA˜€øÔ&AlL8ÅkRA˜bÕ&AlL€ÁkRA˜ Ö&AlL¶kRA˜äÖ&AlLÀ°kRA˜l×&AlL@²kRA˜Ò×&AlL€µkRA˜€1Ø&AlL€µkRA˜€Ø&AlLÀµkRA˜Ù&AlLÀ¼kRA˜À¢Ù&AlL¿kRA˜€ÙÙ&AlL0ÀkRA˜#Ú&AlL°ÁkRA˜4Ú&AlLÂkRA˜€3Ú&AlL@ÀkRA˜1Ú&AlL€·kRA˜(Ú&AlL™kRA˜öÙ&AlLÀ|kRA˜äÙ&AlL€nkRA˜ÖÙ&AlL]kRA˜\Ù&AlL€VkRA˜òØ&AlLÀPkRA˜šØ&AlL€IkRA˜€SØ&AlLÀBkRA˜WØ&AlL@8kRA˜ÎØ&AlL3kRA˜ZÙ&AlL@%kRA˜àÙ&AlLkRA˜BÚ&AlL@kRA˜`Ú&AlLÀ÷jRA˜ÐÚ&AlL@åjRA˜ZÛ&AlLÜjRA˜êÛ&AlLÀÐjRA˜PÜ&AlL€ÂjRA˜€†Ü&AlL`ºjRA˜ÔÜ&AlLÀ®jRA˜FÝ&AlL€jRA˜ÞÝ&AlL@ˆjRA˜lÞ&AlL@tjRA˜ÖÞ&AlL@djRA˜bß&AlL€PjRA˜äß&AlL€=jRA˜nà&AlL@)jRA˜Ýà&AlL?ðjRA˜ºá&AlL€ûiRA˜Vâ&AlLäiRA˜îâ&AlLÉiRA˜Šã&AlLÀ­iRA˜Dä&AlL€”iRA˜ˆä&AlLŒiRA˜Îä&AlLÀƒiRA˜òä&AlLkiRA˜å&AlL@MiRA˜0å&AlL@7iRA˜hå&AlL0iRA˜þå&AlL)iRA˜ç&AlL€iRA˜ç&AlLiRA˜zæ&AlLÀøhRA˜Væ&AlL@ëhRA˜`æ&AlLÀÙhRA˜Tæ&AlL@ÅhRA˜Jæ&AlLÀºhRA˜mæ&AlL°«hRA˜¼æ&AlLÀ§hRA˜âæ&AlLžhRA˜€Öæ&AlLà“hRA˜àæ&AlLà’hRA˜(ç&AlL@‹hRA˜Òç&AlL@†hRA˜øç&AlLÀ~hRA˜è&AlL€ihRA˜€è&AlL@ThRA˜èè&AlL@BhRA˜<é&AlL€7hRA˜üè&AlL€)hRA˜té&AlL€hRA˜xé&AlL€hRA˜¤é&AlL€hRA˜àé&AlLÀýgRA˜Fê&AlL€ûgRA˜„ê&AlL@úgRA˜dê&AlLÀígRA˜bê&AlL@ãgRA˜Þê&AlL@ßgRA˜Øê&AlLÀÓgRA˜’ê&AlLÀ»gRA˜lê&AlL@¨gRA˜.ê&AlL@‘gRA˜öé&AlL€ƒgRA˜€½é&AlLà~gRA€š.«é&AÀ/¦wgRA`ê¥å¥é&AÊuË,ugRA(Hñ—é&AŒñ_ogRA¸,ä­_é&AêïZgRA€£¢í)é&ADø_DgRA€£¢íéè&AB£ì_1gRA81©fè&Aêï¿gRA¸,ä îç&Aêï¿ gRAð¾¯mTç&Aú0óßúfRAØõÉ­öæ&AŒñ?ïfRApºê½Çæ&AB£ì§àfRAhÃ}Hæ&A"bû_ÒfRA`Ú¼èå&ADøÆfRAÈœ}|å&AÖwö?¶fRAŸÝFå&AÖwö?¦fRAhýAå&Aú0ógfRA`Ú¼mEå@&A"bûŸfRAð¾¯mMå&A"bû¿†fRA¸,ämXå&Aú0ó?~fRA€£¢í[å&ADøufRAƒÐ}då&A°Fî¿lfRAàÕ÷ÝSå&AhÔôodfRA`Ú¼ Eå&AêïRfRA€£¢ *å&A²¾ùoJfRAhÃÝå&AB£ì¯?fRAØ QDå&A8ˆNA8fRA`Ú¼¯ä&A°Fîÿ#fRApºêÝiä&A°Fîÿ fRApºêý)ä&AB£ìøeRA(Q{­Ïã&AB£ìàeRAH× „ã&Aú0óÅeRAXúŽ]Rã&Aú0ó­eRAÈœÝCã&ADø?¥eRApºêÝ0ã&AB£ì?šeRA(Hñã&A²¾ù_“eRAøûJƒýâ&A°FeRAŸÝ÷â&AB£ìO‚eRAØõÉMáâ&A"bû?zeRAfaßâ&AÌÂOueRAƒÐ=Ýâ&A°Fî_oeRA`Ú¼ÍÌâ&ADøßfeRAøHÏPÔâ&A’‡?[eRAXúŽÝÙâ&A²¾ù_ReRAðzµÿìâ&A†{ÝXIeRAhÃ=úâ&A²¾ù_BeRAØõÉ­ïâ&AB£ìO:eRA8¬æìâ&A´-{ 8eRA€£¢íââ&ADøß/eRAˆ•ãâ&A"bû)eRA(Q{íäâ&AB£ì_ eRA‘Íôâ&AJ- eRAð 4Ûüâ&AÚÍé eRA(Ùoiã&AÔÝíœ eRAðœ²vã&AD¬vƒeRA˜|â&AlLeRA˜Üá&AlLîdRA˜Fá&AlL€ædRA˜ºà&AlL@èdRA˜Nà&AlLÀçdRA˜à&AlL@ædRA˜èß&AlLÜdRA˜\ß&AlL€ÛdRA˜æÞ&AlL€ÝdRA˜¬Þ&AlLÒdRA˜\Þ&AlLÀdRA˜Þ&AlL µdRA˜ôÝ&AlL@³dRA˜ÂÝ&AlL€ŸdRA˜¦Ý&AlLÀ‡dRA˜ Ý&AlL€{dRA˜¼Ý&AlLldRA˜ÚÝ&AlL€`dRA˜üÝ&AlL@RdRA˜¬Ý&AlL€QdRA˜êÜ&AlLÀKdRA˜„Ü&AlLÀEdRA˜€-Ü&AlL :dRA˜ÖÛ&AlLÀ-dRA˜ˆÛ&AlLÀ#dRA˜bÛ&AlL€dRA˜A"Û&AlLÀdRA˜ÔÚ&AlLdRA˜€}Ú&AlL@öcRA˜,Ú&AlLÀècRA˜ØÙ&AlL€×cRA˜zÙ&AlL€ÁcRA˜(Ù&AlL@²cRA˜šØ&AlL€§cRA˜ä×&AlL˜cRA˜d×&AlLÀcRA˜ÎÖ&AlLÀ†cRA˜Ö&AlL@xcRA˜€äÕ&AlLÐtcRA˜pÕ&AlL€icRA˜®Ô&AlL€]cRA˜öÓ&AlLLcRA˜ŒÓ&AlL€>cRA˜>Ó&AlLÀ/cRA˜4Ó&AlLÀcRA˜hÓ&AlLÀcRA˜€Ó&AlL€ðbRA˜šÓ&AlLÀØbRA˜¦Ó&AlL@ÉbRA˜bÓ&AlL@ºbRA˜øÒ&AlL@¯bRA˜hÒ&AlLÀ¡bRA˜Ò&AlL€—bRA˜þÑ&AlLÀzbRA˜üÑ&AlL@^bRA˜îÑ&AlL@HbRA˜ÒÑ&AlL€3bRA˜þÑ&AlL+bRA˜†Ò&AlLbRA˜€èÒ&AlL(bRA˜Ó&AlLïaRA˜:Ó&AlLÔaRA˜TÓ&AlLÁaRA˜Ó&AlL€±aRA˜´Ò&AlL¥aRA˜fÒ&AlL@˜aRA˜JÒ&AlLŒaRA˜vÒ&AlL@„aRA˜ÎÒ&AlLÀzaRA˜HÓ&AlL€kaRA˜”Ó&AlLÀYaRA˜¸Ó&AlLÀBaRA˜ÒÓ&AlLÀ$aRA˜Ô&AlLú`RA˜>Ô&AlL@Ñ`RA˜ˆÔ&AlL@®`RA˜Õ&AlL€‘`RA˜¬Õ&AlL‚`RA˜bÖ&AlLl`RA˜èÖ&AlL@X`RA˜V×&AlL@]`RA˜®×&AlL€d`RA˜ö×&AlL@d`RA˜*Ø&AlL_`RA˜JØ&AlLÀP`RA˜€GØ&AlL@G`RA˜FØ&AlLÀA`RA˜zØ&AlL€1`RA˜žØ&AlL"`RA˜`Ø&AlL@ `BRA˜Ø&AlLø_RA˜ ×&AlL€ä_RA˜€×&AlL`Ø_RA˜j×&AlLÏ_RA˜ ×&AlLÀ¾_RA˜xÖ&AlL€ª_RA˜ôÕ&AlLÀ“_RA˜’Õ&AlL@t_RA˜@Õ&AlL€Y_RA˜ÈÔ&AlL€?_RA˜HÔ&AlLÀ(_RA˜œÓ&AlL_RA˜æÒ&AlL€ø^RA˜PÒ&AlLß^RA˜æÑ&AlLÉ^RA˜pÑ&AlLÀ´^RA˜Ñ&AlL@¨^RA˜ºÐ&AlL©^RA˜RÐ&AlL±^RA˜ÔÏ&AlL€µ^RA˜xÏ&AlL¯^RA˜0Ï&AlL€œ^RA˜¤Î&AlLÀ˜^RA˜ŽÎ&AlL€^RA˜.Î&AlL€^RA˜fÎ&AlL€i^RA˜NÎ&AlLÀ]^RA˜âÍ&AlL@S^RA˜¸Í&AlL€A^RA˜Í&AlLÀ/^RA˜®Ì&AlL@8^RA˜PÌ&AlL€@^RA˜ØË&AlL€J^RA˜Ë&AlLÀU^RA˜zÊ&AlLÀ\^RA˜ÞÉ&AlLf^RA˜PÉ&AlLr^RA˜"É&AlLÀ^RA˜ôÈ&AlLÀ’^RA˜ÄÈ&AlL@ ^RA˜–È&AlL@­^RA˜nÈ&AlL¾^RA˜`È&AlLÀÖ^RA˜’È&AlL€ð^RA˜ÊÈ&AlL@ _RA˜üÈ&AlL_RA˜HÉ&AlL€ô^RA˜ÔÉ&AlL@ñ^RA˜8Ê&AlL€÷^RA˜zÊ&AlL@_RA˜|Ê&AlL _RA˜DÊ&AlL_RA˜"Ê&AlLÀ#_RA˜Ê&AlL@._RA˜Ê&AlLÀ=_RA˜ Ê&AlLÀP_RA˜Ê&AlL`_RA˜0Ê&AlL@k_RA˜^Ê&AlLÀ|_RA˜ÀÊ&AlLÀŒ_RA˜6Ë&AlL™_RA˜Ë&AlL¢_RA˜Ì&AlL@­_RA˜ZÌ&AlLC¸_RA˜²Ì&AlL@Æ_RA˜þÌ&AlLÀÔ_RA˜8Í&AlLÀä_RA˜fÍ&AlL÷_RA˜žÍ&AlLÀ`RA˜ÜÍ&AlL`RA˜"Î&AlL@)`RA˜Î&AlL@4`RA˜ÜÍ&AlLÀ=`RA˜rÍ&AlL@D`RA˜æÌ&AlLK`RA˜tÌ&AlL@P`RA˜\Ì&AlLÀZ`RA˜JÌ&AlLo`RA˜&Ì&AlL`RA˜äË&AlL€`RA˜ˆË&AlL£`RA˜€xË&AlLà¥`RA˜8Ë&AlL²`RA˜åÊ&AlL`Ã`RA˜ÜÊ&AlL@Å`RA˜€Ê&AlL€Õ`RA˜"Ê&AlL€ß`RA˜ŠÉ&AlL@í`RA˜É&AlLø`RA˜RÈ&AlLÀaRA˜ˆÇ&AlL@aRA˜>Ç&AlL€aRA˜ÜÆ&AlLÀ$aRA˜zÆ&AlL@/aRA˜öÅ&AlL@:aRA˜pÅ&AlL@EaRA˜Å&AlLÀQaRA˜²Ä&AlLÀkaRA˜ŽÄ&AlL@‚aRA˜„Ä&AlL@—aRA˜hÄ&AlL¨aRA˜(Ä&AlL@µaRA˜¢Ã&AlLÀÅaRA˜Ã&AlLÀÕaRA˜,Â&AlL€çaRA˜€Á&AlL`üaRA˜€"Á&AlL@$bRA˜À&AlLð>bRA˜U¾&AlL0hbRA˜4¾&AlLmbRA˜¤½&AlL@€bRA˜½&AlL–bRA˜’¼&AlL@«bRA˜Ì»&AlL€ÁbRA˜|»&AlLÀÆbRA˜<»&AlLËbRA˜Àº&AlLÀÉbRA˜º&AlL€ÅbRA˜t¹&AlL¿bRA˜˜¸&AlL²bRA˜–·&AlL£bRA˜²¶&AlLÀ•bRA˜ ¶&AlL@ŽbRA˜.µ&AlL@‡bRA˜Ì´&AlL ‡bRA˜l´&AlL‡bRA˜Ƴ&AlL@bRA˜à²D&AlLÀ•bRA˜<²&AlL€•bRA˜l±&AlL@‘bRA˜°&AlL@‹bRA˜¼¯&AlLÀ…bRA˜¯&AlL@|bRA˜^®&AlLpbRA˜ž­&AlLÀbbRA˜ج&AlL€QbRA˜ü«&AlL@:bRA˜B«&AlL@&bRA˜¢ª&AlL€bRA˜ ª&AlLÀøaRA˜Щ&AlLæaRA˜©&AlL€×aRA˜ ©&AlL€ÏaRA˜̨&AlLÍaRA˜`¨&AlLÉaRA˜Þ§&AlLÀÄaRA˜8§&AlLÀÂaRA˜t¦&AlL½aRA˜Ô¥&AlL€µaRA˜<¥&AlL€·aRA˜¥&AlLÀÄaRA˜€É¤&AlLÀÓaRA˜¤&AlLÀÕaRA˜²¤&AlLçaRA˜’¤&AlL€ôaRA˜\¤&AlL€bRA˜€M¤&AlL`bRA˜&¤&AlLbRA˜è£&AlL€*bRA˜º£&AlL€BbRA˜ˆ£&AlL€TbRA˜h£&AlLdbRA˜n£&AlL@vbRA˜z£&AlL€†bRA˜”£&AlLÀ›bRA˜¦£&AlLÀ±bRA˜²£&AlLÀÃbRA˜¸£&AlL@ÔbRA˜°£&AlL@ïbRA˜œ£&AlLÀcRA˜P£&AlLÀ cRA˜ä¢&AlL€cRA˜@¢&AlLÀ#cRA˜f¡&AlL@4cRA˜r &AlLFcRA˜ Ÿ&AlLÀZcRA˜Ÿ&AlL°jcRA˜Ÿ&AlLÀkcRA˜dž&AlL€{cRA˜ù&AlL ‡cRA˜â&AlL@ŠcRA˜(&AlL@•cRA˜åœ&AlLà™cRA˜ˆœ&AlL@ cRA˜ê›&AlL@µcRA˜Ä›&AlL°»cRA˜<›&AlL€ÒcRA˜°š&AlLðcRA˜jš&AlL€úcRA˜š&AlL@dRA˜¢™&AlLdRA˜E™&AlL@,dRA˜œ˜&AlL@AdRA˜˜&AlL€WdRA˜Œ—&AlLmdRA˜ü–&AlL€dRA˜v–&AlLÀ˜dRA˜°•&AlLÄdRA˜î”&AlL€òdRA˜”&AlLÀ&eRA˜“&AlL€_eRA˜®’&AlLoeRA˜f’&AlLÀleRA˜Б&AlLdeRA˜N‘&AlLÀYeRA˜&AlL@UeRA˜€&AlL@IeRA˜ÐŽ&AlLIeRA˜ Ž&AlLÀFeRA˜X&AlL€@eRA˜ÀÂŒ&AlLèiRA˜*&AlLÀ9iRA˜*&AlL`7iRA˜r&AlL:iRA˜ø&AlL@HiRA˜o€&AlL PiRA˜¦€&AlL€TiRA˜&AlL@ciRA˜x&AlL€iiRA˜Ú&AlL@miRA˜ø&AlL`niRA˜‚&AlL€oiRA˜X‚&AlL€siRA˜‚&AlLviRA˜¸‚&AlLwiRA˜*ƒ&AlLG@wiRA˜€wƒ&AlL|iRA˜¦ƒ&AlLÀiRA˜"„&AlL@iRA˜Z„&AlL€”iRA˜¤„&AlL¨iRA˜Ô„&AlL€ÃiRA˜X…&AlLÀâiRA˜æ…&AlL@ôiRA˜r†&AlLÀüiRA˜€Œ†&AlL ýiRA˜6‡&AlLjRA˜ˆ&AlL€ jRA˜°ˆ&AlLjRA˜æˆ&AlLÀjRA˜>‰&AlL€5jRA˜€¢‰&AlLÀIjRA˜Š&AlLÀijRA˜4Š&AlLÀwjRA˜fŠ&AlL€‰jRA˜¾Š&AlL€œjRA˜‹&AlLÀ­jRA˜‹&AlL@ÅjRA˜\‹&AlLÀÞjRA˜€×‹&AlLàëjRA˜ð‹&AlL€îjRA˜8Œ&AlLÀÿjRA˜¦Œ&AlL€kRA˜:&AlLÀ!kRA˜€¶&AlL`5kRA˜â&AlL@bRA˜€"Á&AlL@$bRA˜€Á&AlL`MüaRA˜,Â&AlL€çaRA˜Ã&AlLÀÕaRA˜¢Ã&AlLÀÅaRA˜(Ä&AlL@µaRA˜hÄ&AlL¨aRA˜„Ä&AlL@—aRA˜ŽÄ&AlL@‚aRA˜²Ä&AlLÀkaRA˜Å&AlLÀQaRA˜pÅ&AlL@EaRA˜öÅ&AlL@:aRA˜zÆ&AlL@/aRA˜ÜÆ&AlLÀ$aRA˜>Ç&AlL€aRA˜ˆÇ&AlL@aRA˜RÈ&AlLÀaRA˜É&AlLø`RA˜ŠÉ&AlL@í`RA˜"Ê&AlL€ß`RA˜€Ê&AlL€Õ`RA˜ÜÊ&AlL@Å`RA˜åÊ&AlL`Ã`RA˜8Ë&AlL²`RA˜€xË&AlLà¥`RA˜ˆË&AlL£`RA˜äË&AlL€`RA˜&Ì&AlL`RA˜JÌ&AlLo`RA˜\Ì&AlLÀZ`RA˜tÌ&AlL@P`RA˜æÌ&AlLK`RA˜rÍ&AlL@D`RA˜ÜÍ&AlLÀ=`RA˜Î&AlL@4`RA˜"Î&AlL@)`RA˜ÜÍ&AlL`RA˜žÍ&AlLÀ`RA˜fÍ&AlL÷_RA˜8Í&AlLÀä_RA˜þÌ&AlLÀÔ_RA˜²Ì&AlL@Æ_RA˜ZÌ&AlL¸_RA˜Ì&AlL@­_RA˜Ë&AlL¢_RA˜6Ë&AlL™_RA˜ÀÊ&AlLÀŒ_RA˜^Ê&AlLÀ|_RA˜0Ê&AlL@k_RA˜Ê&AlL`_RA˜ Ê&AlLÀP_RA˜Ê&AlLÀ=_RA˜Ê&AlL@._RA˜"Ê&AlLÀ#_RA˜DÊ&AlL_RA˜|Ê&AlL _RA˜zÊ&AlL@_RA˜8Ê&AlL€÷^RA˜ÔÉ&AlL@ñ^RA˜HÉ&AlL€ô^RA˜üÈ&AlL_RA˜ÊÈ&AlL@ _RA˜’È&AlL€ð^RA˜`È&AlLÀÖ^RA˜nÈ&ANlL¾^RA˜–È&AlL@­^RA˜ÄÈ&AlL@ ^RA˜ôÈ&AlLÀ’^RA˜"É&AlLÀ^RA˜PÉ&AlLr^RA˜ÞÉ&AlLf^RA˜zÊ&AlLÀ\^RA˜Ë&AlLÀU^RA˜ØË&AlL€J^RA˜PÌ&AlL€@^RA˜®Ì&AlL@8^RA˜Í&AlLÀ/^RA˜FÍ&AlL€^RA˜Í&AlL€^RA˜êÌ&AlL@÷]RA˜"Í&AlL€â]RA˜hÍ&AlLÏ]RA˜’Í&AlLº]RA˜’Í&AlLÀ¦]RA˜~Í&AlL”]RA˜dÍ&AlLˆ]RA˜hÍ&AlLw]RA˜dÍ&AlL€f]RA˜@Í&AlL€W]RA˜Í&AlL@G]RA˜ÖÌ&AlL6]RA˜¤Ì&AlL@)]RA˜vÌ&AlLÀ]RA˜òÌ&AlL€]RA˜BÍ&AlL ]RAX!رÍ&AÖ™ó®]RA(Hñí—Í&A°Fîÿú\RApÃtývÍ&A"bû¿î\RAèÞ]ZÍ&Aú0óÿç\RA¸,äMJÍ&AÖwöß×\RAèÞÝDÍ&A"bûŸÏ\RA lˆÍ@Í&Aú0óŸÃ\RAˆ•ÍGÍ&AhÔô»\RAØõÉíKÍ&Aêïß²\RA¸,ä-<Í&A²¾ù/«\RAØõÉ /Í&A"bû¿Ÿ\RAÀP Œ Í&A¤Énš\RApºê¿Ì&AŒñŽ\RAhÃOÌ&AB£ì€\RA lˆ-Ë&A²¾ù?|\RA`Ú¼máÊ&A²¾ùÿu\RAH×mYÊ&A"bûq\RAð¾¯mÛÉ&A°Fîÿc\RAàÕ÷}iÉ&A²¾ùŸY\RAŸÝ}1É&ADø?M\RA(Hñ--É&AÔÿêÿD\RA€£¢M*É&A"bûo9\RA¸,ä 5É&A"bû1\RA¸,ä­;É&AŒñ?(\RAPyù™É&AÄô5-$\RAH×íÑÈ&AÖwöß\RAˆ•­±Ç&Aý\RA¸,ä­íÆ&A°FîŸ\RA`Ú¼íýÅ&AhÔô_\RApÃtýïÄ&Aú0óð[RApÃtýïÃ&Aú0óŸä[RApÃtý“Â&A²¾ùŸá[RA lˆ dÁ&AÔÿêÔ[RAèÞ]OvÀ&AÔÿêÿ¼[RA¸,ä­&À&A²¾ù?¬[RA𾯠ÿ¿&A"bû¿§[RAˆ•Ç¿&A²¾ù_“[RA`Ú¼m¡¿&AŒñŽ[RA¨g]¿&A²¾ù}[RA lˆ-ò¾&AŒñy[RA`Ú¼í½¾&A°FîŸf[RAØõÉí ¾&Aú0ó`[RAj†¾&A¶AW[RApºêýp¾&Aú0óP[RA¸èéÿV¾&AH“ÀL[RAÈœ}J¾&A°FîK[RA(HñÍ%¾&A¼HçA[RA¸5n-¾&AhÔô_=[RAØõɶ½&AB£ì_1[RApÃtÝ“½&Aú0ó¿+[RAŸÝq½&AhÔôë![RAð¾¯mM½&AhÔô[RA (Ž6½&AH“p[RAèMâ-½&A¢fÀ [RA¨L¶Ý½&A²¾ù [RA(Q{mÁ¼&A²¾ùoñZRA sAi¼&Ašm(ÛZRAƒÐ]V¼&ADøÿÕZRAˆ•-\¼&AÖwöÿÇZRAˆ•­x¼&A²¾ùŸÁZRAXúŽý§¼&Aú0ó?·ZRAІHé̼&Aœ˜¦Š²ZRA¸5níì¼&AB£ì_ ZRA81©Ýû¼&AhÔôߘZRAˆ•í½&AÖwöŸZRApÃtÝ(½&AhÔôÏyZRA`Ú¼í=½&Aú0ó_eZRA`Ú¼ÍL½&A²¾ù×]ZRAƒÐr½&ADøCZRAèÞÝ’½&AŒñŸ=ZRA¸5n-×½&AhÔôÿ0ZRA€V€â½&AH“ /ZRAH×íü½&ADø_,ZRA€£¢-¾&Aêï¯ZRAH×Í.¾&A²¾ùçZRAŸÝ\¾&AÖwöŸZRA€£¢-¾&AhÔôgýYRA¨L¶å¾&AhÔôŸëYRA€£¢m¿&A²¾ùÿåYRA0…Œ#.¿&AìA ÛYRA`Ú¼mS¿&Aú0óÕYRA¸5n-m¿&A°FîÏÃYRApÃt}…¿&ADø½YRAÈkª ¿&AÂ80k¹YRApºêÝâ¿&A°Fî_ŸYRA𾯠À&A²¾ù‘YRA¨L¶]%À&AŒñÏŠYRAŸÝ]cÀ&AhÔô¿yYRAèÞ}}À&A°FîÿrYRA¨L¶ýÀ&AêïŸdYRA¸,ä­ŸÀ&A²¾ùï\YRAÐ[Á’³À&AáeNYRA81©}»À&AŒñ?HYRA éXÞÀ&AÀž'CYRA81©}-Á&AhÔôÿ8YRAÈœ}µÁ&A"bû1YRA¸,ä-QÂ&AÖwöŸ2YRAPpÃt}7Ã&Aú0ó?7YRA¨L¶}óÃ&A"bûŸ8YRAhÃ}ÏÄ&AhÔôß9YRA¨L¶}¥Å&AhÔô_5YRAH×§Æ&A"bû¿/YRA¸,ä­Ç&AÖwö/YRA(Hñ×È&AÖwöß0YRAð¾¯÷É&Aú0ó0YRA€£¢ Ë&AhÔôÿ8YRAƒÐ}ùË&AŒñFYRA81©½zÌ&A"bû§NYRA81©}ûÌ&ADøß>YRAˆ•cÍ&A²¾ùÿ%YRA(Hñ­åÍ&AhÔô¿ YRA€£¢­MÎ&A°Fî÷XRAH×íõÎ&AŒñ?YRAÈœíÏ&AŒñYRAȜݑÐ&Aú0ó?/YRAˆ•cÑ&Aêï_HYRA lˆùÑ&A²¾ùJYRA€£¢¿Ò&AŒñQYRAàÕ÷}ÅÓ&AÖwößhYRA`Ú¼m“Ô&ADø_|YRAhÃÕ&AŒñ‘YRAà¡æ‡‚Ö&A¾}¤YRA¸,äMu×&AêYRA lˆMOØ&AhÔôŸÂYRAÈœý&Ù&ADøßÎYRA lˆMÙ&AB£ìÒYRA(HñM_Ú&AB£ìŸÆYRA€$òbÛ&A>+áG³YRAˆ$8ñmÛ&AæÏ/p²YRAº{¼æÛ&Atgž†¨YRA u-AÜ&AˆYà%¡YRA lˆ‡Ü&ALéÕ›YRAHøcöÌÜ&A@Vh’–YRA8Â'éÜ&A¤‘G¦”YRAÐÁ¸÷ZÝ&AnŽýYRAX¿ÏsÝ&Aº?cŒYRA8í®oÝ&A¶‰‹YRA˜ÉõR¸Ý&Aè‹5¾‡YRAˆµ¶,ÔÝ&A4å» ~YRA9æ8âÝ&AÞÖŽàtYRAÙ¸ãÝ&AŠÑëAsYRA¸,äíæÝ&ADøÿmYRAÈœ]õÝ&A²¾ùßeYRAØõÉmýÝ&ADø_[YRAŸÝÝÞ&AêïßRYRA€£¢ Þ&AhÔô?EYRAØõÉÍÞ&A²¾ùÿÜ&A"bûÏöURA0A’U_Ü&Al»€ðURA íшÜ&ABntáURA¨*¹†®Ü&A¼jªÜURA0§‰š&Ý&Aâ›bÍURAØKØZ¨Ý&A|»`·URAˆ$8‘ðÝ&AÁ­URA˜Éõ’ûÝ&AØ3üa¬URAÀ>øÌaÞ&Aï#y URA@ÿ®¯Þ&AãÿD—URAÓî3÷Þ&A„áÔ ‘URA˜ß&AlL€URA˜€îÞ&AlLà}URA˜€ÇÞ&AlL@vURA˜~Þ&AlL@kURA˜<Þ&AlLÐXURA˜øÝ&AlL@QURA˜ÛÝ&AlLPRURA˜€ÃÝ&AlL SURA˜‰Ý&ARlL NURA˜€‹Ü&AlLàBURA˜8Ü&AlL=URA˜€öÛ&AlL4URA˜€ÛÛ&AlL+URA˜€yÛ&AlL`,URA˜€ðÚ&AlL01URA˜†Ú&AlL€2URA˜€<Ú&AlL00URA˜€ùÙ&AlLÐ'URA˜²Ù&AlL@URA˜rÙ&AlLöTRA˜CÙ&AlL0éTRA˜ÀØ&AlLåTRA˜hØ&AlL€çTRA˜€È×&AlLâTRA˜²×&AlL@áTRA˜€¡×&AlLáTRA˜ŠÖ&AlLÀÜTRA˜Ö&AlL0ßTRA˜€âÕ&AlLàTRA˜¤Õ&AlL@áTRA˜Õ&AlL`ÚTRA˜ØÔ&AlLÀÖTRA˜LÔ&AlL ÇTRA˜4Ô&AlLpÄTRA˜¢Ó&AlLÀ±TRA˜òÒ&AlL€¡TRA˜€UÒ&AlLðTRA˜²Ñ&AlL€tTRA˜Ñ&AlLVTRA˜€·Ð&AlLP=TRA˜fÐ&AlLÀDTRA˜ÚÏ&AlLÀPTRA˜|Ï&AlL€MTRA˜Ï&AlL@GTRA˜zÎ&AlL€NTRA˜€öÍ&AlLJTRA˜Î&AlL;TRA˜Î&AlL+TRA˜¶Í&AlLÀTRA˜mÍ&AlLÀ TRA˜ÖÌ&AlLTRA˜ªÌ&AlLTRA˜ªÌ&AlL$TRA˜¨Ì&AlLÀ2TRA˜\Ì&AlL@1TRA˜ÜË&AlL€)TRA˜bË&AlL@TRA˜$Ë&AlL@TRA˜üÊ&AlL)TRA˜²Ê&AlL@?TRA˜:Ê&AlLZTRA˜æÉ&AlL@qTRA˜xÉ&AlL€ŠTRA˜ É&AlLÀ—TRA˜ªÈ&AlL€¬TRA˜ È&AlL@ÆTRA˜†È&AlLáTRA˜>È&AlLÀúTRA˜È&AlL€ URA˜®Ç&AlL€'URA˜TÇ&AlL@BURA˜þÆ&AlL€XURA˜SÆ&AlLÀqURA˜úÅ&AlL€‹URA˜rÅ&AlL@§URA˜€,Å&AlLp¹URA˜Å&AlLÁURA˜°Ä&AlL@ÞURA˜LÄ&AlLúURA˜¦Ã&AlL€VRA˜Ã&AlLÀ1VRA˜’Â&AlL@MVRA˜òÁ&AlLdVRA˜JÁ&AlL~VRA˜ÆÀ&AlL˜VRA˜€®À&AlL`•VRA˜€À&AlL°˜VRA˜€ä¿&AlLˆVRA˜þ¾&AlL€pVRA˜¿&AlLlVRA˜ð¾&AlLiVRA˜¾&AlLÀUVRA˜$½&AlLAVRA˜B¼&AlL€,VRA˜л&AlL +VRA˜z»&AlL*VRA˜œº&AlL@3VRA˜¨¹&AlL€CVRA˜Þ¸&AlLXKVRA˜>¸&AlLÀWVRA˜„·&AlLÀeVRA˜î¶&AlLÀhVRA˜àµ&AlL@^VRA˜ª´&AlLÀWVRA˜°³&AlL€UVRA˜ ²&AlL@TVRA˜€k²&AlLSVRA˜¶±&AlLÀNVRA˜L±&AlLOVRA˜ì°&AlL@PVRA˜Ô¯&AlL€TVRA˜2¯&AlLNVRA˜t®&AlLAVRA˜²­&AlL0VRA˜Ò¬&AlL@VRA˜¬&AlL€ VRA˜ö«&AlLVRA˜Æ«&AlL VRA˜*«&AlLÀùURA˜ˆª&AlLÀøURA˜ö©&AlL VRA˜Ž©&AlLÀVRA˜©&AlLÀ,VRA˜F¨&AlL€AVRA˜ò§&AlLÀTVRA˜j§&AlLÀRVRA˜Ħ&AlL@HVRA˜þ¥&AlLÀURA˜úr&AlL€2URA˜€r&AlLp'URA˜&r&AlL@URA˜€*r&AlL€üTRA˜­q&AlLÞTRA˜q&AlLÔTRA˜€rq&AlL`ÃTRA˜xq&AlLÀ¸TRA˜€=q&AlLÀ®TRA˜€2q&AlLÀ¢TRA˜€íp&AlLp—TRA˜ˆp&AlL €TRA˜Sp&AlL vTRA˜€p&AlLpuTRA˜ão&AlLÐjTRA˜€ p&AlLðeTRA˜Øo&AlL^TRA˜lo&AlL@JTRA˜ o&AlLÀ:TRA˜p&AlL'TRA˜ p&AlLPTRA˜øo&AlL TRA˜€ƒo&AlLˆTRA˜`o&AlLð TRA˜Bo&AlL@TRA˜Ào&AlL8TRA˜ân&AlL€üSRA˜€n&AlL`úSRA˜„n&AlLúSRA˜Bn&AlLÀøSRA˜lm&AlLûSRA˜˜l&AlLøSRA˜jl&AlL õSRA˜Þk&AlL€ìSRA˜Jk&AlLÀÝSRA˜Ôj&AlLàÏSRA˜Àj&AlL€ÍSRA˜€?j&AVlLð¾SRA˜Öi&AlL@«SRA˜“i&AlL@¡SRA˜€gi&AlL°šSRA˜´h&AlL€ŽSRA˜h&AlL`‹SRA˜h&AlL€€SRA˜ˆg&AlL€pSRA˜g&AlLÀaSRA˜€~f&AlL`KSRA˜€f&AlLà=SRA˜øe&AlL@URA˜¢?&AlL@\URA˜?&AlLpiURA˜?&AlL kURA˜Š?&AlLÀmURA˜v?&AlL@|URA˜N?&AlLœURA˜ ?&AlL@¼URAX˜ø>&AlL@ßURA˜¶>&AlLVRA˜|>&AlLÀ)VRA˜">&AlL€ZVRA˜ü=&AlL€€VRA˜º=&AlL€»VRA˜Ž=&AlL@ÜVRA˜_=&AlLÐ÷VRA˜\=&AlL ùVRA˜R=&AlL€ÿVRA˜ =&AlL€'WRA˜€Ü<&AlL`DWRA˜Ú<&AlLFWRA˜È<&AlL\WRA˜§<&AlLmWRA˜€¢<&AlLðoWRA˜ˆ<&AlL@~WRA˜D<&AlLÀ¥WRA˜ <&AlLËWRA˜þ;&AlLôWRA˜Ä;&AlLXRA˜À´;&AlLØXRA˜f;&AlL€HXRA˜;&AlL@vXRA˜Æ:&AlL@©XRA˜P:&AlL@âXRA˜;:&AlLòXRA˜€8:&AlL€ôXRA˜6:&AlL`öXRA˜:&AlLÀYRA˜Ø9&AlL@4YRA˜Õ9&AlL€6YRA˜€Ñ9&AlLP9YRA˜¬9&AlLÀVYRA˜p9&AlL}YRA˜69&AlL YRA˜ü8&AlL€ÂYRA˜ö8&AlL@ÆYRA˜€Ð8&AlLÀÝYRA˜¾8&AlL@éYRA˜V8&AlL€ZRA˜ 8&AlLMZRA˜8&AlL RZRA˜€ý7&AlL0TZRA˜€Ö7&AlL€jZRA˜Í7&AlLðoZRA˜Ç7&AlL`sZRA˜«7&AlL€xZRA˜‘7&AlLP}ZRA˜„7&AlLÀZRA˜7&AlL€yZRA˜¹6&AlL@rZRA˜|6&AlLkZRA˜$6&AlL€aZRA˜´5&AlLXZRA˜€u5&AlL RZRA˜(5&AlLLZRA˜v4&AlLÀ`RA˜€ý&AlL F`RA˜ö&AlLI`RA˜â&AlLX`RA˜ &AlLÀi`RA˜. &AlL€q`RA˜€< &AlLÀq`RA˜” &AlL@s`RA˜þ &AlL€v`RA˜h &AlL}`RA˜ä &AlL@‡`RA˜h &AlL@’`RA˜Ú &AlLÀ¨`RA˜† &AlLÃ`RA˜F &AlL@Ð`RA˜ò &AlL@Î`RA˜Ð&AlLË`RA˜€á&AlL Ë`RA˜T&AlL€Ï`RA˜¨&AlL@Ù`RA˜&AlLÐé`RA˜&AlLì`RA˜~&AlLaRA\˜â&AlLÀaRA˜:&AlLÀ)aRA˜F&AlL€8aRA˜"&AlLÀ@aRA˜0&AlLMaRA˜&AlL€WaRA˜8&AlLÀcaRA˜€H&AlLmaRA˜P&AlL@qaRA˜H&AlL€vaRA˜`&AlLøyaRA˜e&AlLp|aRA˜i&AlL aRA˜€‡&AlLÀƒaRA˜–&AlL…aRA˜Ÿ&AlL°ŒaRA˜€¡&AlL€ŽaRA˜€Ò&AlL ’aRA˜ç&AlLP”aRA˜€õ&AlL •aRA˜€&AlL°—aRA˜&AlLðšaRA˜€&AlL ŸaRApÃtC&Aê¶¼ ¡aRA˜€}&AlL¤aRA˜º&AlL€¦aRA˜0&AlLÀªaRA˜l&AlL¯aRA˜Ð&AlL€´aRA˜4&AlL@¹aRA˜”&AlL@ÄaRA˜ô&AlLÕaRA˜F&AlL€àaRA˜ &AlLíaRA˜Æ&AlL€÷aRA˜â&AlL@bRA˜à&AlL@bRA˜À&AlL@)bRA˜Œ&AlL€7bRA˜&AlL@?bRA˜ô&AlL€MbRA˜Û&AlLPNbRA˜ &AlL€TbRA˜–&AlLÀ`bRA˜z&AlLTbRA˜&AlL@KbRA˜‚&AlL€GbRA˜Þ&AlLÀLbRA˜*&AlLTbRA˜„&AlLÀTbRA˜Ô&AlL€^bRA˜€v&AlL€_bRA˜@&AlL`bRA˜v &AlL€bbRA˜Ö &AlL€ebRA˜ &AlL@jbRA˜¸ &AlLqbRA˜Ú &AlLÀbRA˜Ø &AlL0bRA˜Ø &AlLÀ‘bRA˜¬ &AlL@œbRA˜b &AlL@¡bRA˜” &AlLÀ­bRA˜¼ &AlL]ÈbRA˜ &AlLòbRA˜’ &AlL cRA˜ &AlL@cRA˜p &AlL/cRA˜€€ &AlLX2cRA˜Ü &AlLEcRA˜¶&AlL@WcRA˜ð&AlL€]cRA˜€ä&AlL _cRA˜È&AlL@ccRA˜ˆ&AlL@icRA˜.&AlLÀtcRA˜&AlLwcRA˜ &AlLðycRA˜œ &AlL€‹cRA˜r &AlL˜cRA˜D &AlL¥cRA˜( &AlL@¸cRA˜ &AlLÀÒcRA˜ &AlLÀìcRA˜ &AlLdRA˜Ð &AlL@dRA˜€ &AlL:dRA˜R &AlL@RdRA˜` &AlL^dRA˜¾ &AlLmdRA˜ &AlL@|dRA˜Ê &AlL‡dRA˜R &AlL@›dRA˜ø &AlLªdRA˜ &AlL@´dRA˜~ &AlL´dRA˜Ð &AlL€²dRA˜Ø &AlL@ÈdRA˜î &AlL@ádRA˜æ &AlL€ïdRA˜’ &AlL€ùdRA˜ &AlL@eRA˜ &AlL eRA˜v &AlL@eRA˜À &AlL€ eRA˜@ &AlL3eRA˜M &AlL°5eRA˜  &AlLGeRA˜æ &AlLÀYeRA˜H &AlLmeRA˜€ &AlLàzeRA˜¢ &AlL€~eRA˜(&AlL€eRA˜€&AlLà”eRA˜›&AlLP—eRA˜Î&AlLPœeRA˜€ &AlL™eRA˜€×&AlLÀ†eRAÌ{ë&ABï||eRA˜€&AlL@xeRA˜€&AlLðoeRA˜Ö&AlLàmeRA˜ò&AlL0keRA˜€d&AlL0`eRA˜s&AlLP_eRA˜€Ï&AlL YeRA˜€&AlL@TeRA˜^&A^lL@BeRA˜¼&AlL€1eRA˜~&AlL@*eRA˜‚&AlL@'eRA˜^&AlLÀ)eRA˜d&AlL€(eRA˜Z&AlL€%eRA˜(&AlL@ eRA˜ò&AlL€eRA˜È&AlL€ eRA˜‚&AlL€eRA˜£&AlLÐeRA˜&AlL0ødRA˜€r&AlLòdRA˜´&AlL°édRA˜²&AlL€ñdRA˜¨&AlLeRA˜š&AlL€-eRA˜€›&AlLP@eRA˜€{&AlLJeRA˜€O&AlL°feRA˜Ì&AlLp¼eRA˜ò&AlLËeRA˜t&AlLpÔeRA˜H&AlLpßeRA˜€û&AlLûeRA˜ &AlLÀfRA˜€€&AlL *fRA˜Â&AlL€?fRA˜x&AlL€KfRA˜ì&AlL^fRA˜€ú&AlL`dfRA˜&AlLÀsfRA˜0&AlL‹fRA˜b&AlL¯fRA˜¤&AlLÀÊfRA˜Ö&AlL@åfRA˜Ø&AlLÀñfRA˜â&AlLÀüfRA˜ &AlL gRA˜’&AlL@ gRA˜f&AlLÀgRA˜4 &AlL@gRA˜® &AlL@gRA˜!&AlL€gRA˜v!&AlLÀgRA˜Ô!&AlL@ gRA˜,"&AlL€gRA˜†"&AlLÀøfRA˜<#&AlLÀífRA˜ö#&AlL@èfRA˜ˆ$&AlL@äfRA˜ö$&AlLØfRA˜~%&AlLÀÏfRA˜¨%&AlLÄfRA˜®%&AlL¶fRA˜ð%&AlL¯fRA˜*&&AlL€¥fRA˜P&&AlL’fRA˜Î&&AlL‚fRA˜ò&&AlLvfRA˜Š'&AlLnfRA˜Ú'&AlLÀifRA˜¢'&AlL€UfRA˜_@(&AlLÀ=fRA˜Â(&AlL.fRA˜ä(&AlL"fRA˜X(&AlLÀfRA˜ô'&AlL€þeRA˜¦'&AlLïeRA˜6(&AlL@éeRA˜–(&AlLÀÜeRA˜â(&AlLÆeRA˜ø(&AlL€¬eRA˜ú(&AlLÀ•eRA˜:)&AlL€ŒeRA˜„)&AlL€eRA˜–)&AlLÀeeRA˜Ä)&AlLÀVeRA˜€ *&AlL`VeRA˜n*&AlLVeRA˜+&AlLGeRA˜€+&AlLÀ`eRA˜j,&AlL@UeRA˜ô,&AlL@ReRA˜8-&AlL@ReRA˜@-&AlLÀ_eRA˜*-&AlLueRA˜Ð,&AlL€{eRA˜ü,&AlL@…eRA˜v-&AlLÀŠeRA˜ð-&AlL@ŠeRA˜ô-&AlL|eRA˜ù-&AlL€xeRA˜.&AlL@ieRA˜X.&AlLÀbeRA˜R/&AlLÀaeRA˜/&AlLÀeeRA˜80&AlLYeRA˜æ0&AlLÀHeRA˜‚1&AlL@LeRA˜ 2&AlLKeRA˜N2&AlL@eRA˜b2&AlLÀ0eRA˜ž2&AlLÀ-eRA˜®2&AlL@eRA˜¶2&AlLÀ eRA˜Š2&AlL€þdRA˜Ž2&AlLìdRA˜€ø2&AlLÀØdRA˜ð3&AlL­dRA˜€4&AlLÀ‘dRA˜ê4&AlLdRA˜€5&AlLà|dRA˜@%5&AlL|dRA˜d5&AlLydRA˜ê5&AlL€dRA˜Þ6&AlLÀ•dRA˜à7&AlL@¬dRA˜€ƒ8&AlL ½dRA˜æ8&AlL@ÇdRA˜€¨9&AlL`ÝdRA˜Â9&AlL@àdRA˜l:&AlL€ødRA˜þ:&AlLeRA˜l;&AlL€,eRA˜Ð;&AlL@>eRA˜<&AlLMeRA`˜À/<&AlLXeRA˜R<&AlLaeRA˜z<&AlL€peRA˜p<&AlLÀ€eRA˜€w<&AlLÀeRA˜z<&AlLÀ•eRA˜´<&AlL@£eRA˜¿<&AlL¤eRA˜à<&AlL@¦eRA˜ =&AlL@©eRA˜Š=&AlLÀ¥eRA˜þ=&AlL¢eRA˜f>&AlL@œeRA˜ˆ>&AlLPšeRA˜€›>&AlL@™eRA˜Ä>&AlL—eRA˜?&AlL@”eRA˜h?&AlLÀeRA˜€³?&AlLŒeRA˜ü?&AlL€‰eRA˜¦@&AlLeRA˜@A&AlLÀ|eRA˜ÀA&AlL€zeRA˜dB&AlLveRA˜€ÛB&AlLàseRA˜lC&AlL@qeRA˜&D&AlLÀteRA˜ìD&AlLzeRA˜^E&AlL°~eRA˜®E&AlL‚eRA˜NF&AlL@ŽeRA˜cF&AlLPeRA˜¼F&AlL™eRA˜€÷F&AlLÀ¤eRA˜G&AlLªeRA˜dG&AlL@¹eRA˜œG&AlLÏeRA˜ØG&AlLéeRA˜öG&AlLÀÿeRA˜ÚG&AlLÀfRA˜€G&AlL€'fRA˜fG&AlLP/fRA˜gRA˜šN&AlLPgRA˜ŽN&AlLÀagRA˜~N&AlL€tgRA˜ZN&AlLÀŠgRA˜ÞM&AlLÀžgRA˜\M&AlL@®gRA˜øL&AlL@ÁgRA˜ŽL&AlL@ÙgRA˜L&AlLógRA˜šK&AlL@hRA˜üJ&AlLhRA˜€ÙJ&AlL@hRA˜†J&AlLÀ*hRA˜J&AlL€;hRA˜I&AlLÀEhRA˜I&AlLShRA˜èH&AlLÀVhRA˜ÕH&AlL[hRA˜†H&AlL@lhRA˜¤H&AlLÀwhRA˜€I&AlLP…hRA˜lI&AlL“hRA˜nI&AlL@§hRA˜.I&AlL€±hRA˜šI&AlL¸hRA˜J&AlLÇhRA˜pJ&AlL@ßhRA˜BK&AlL@ôhRA˜L&AlL@iRA˜ŒL&AlLiRA˜|L&AlLÀiRA˜€L&AlLÀ(iRA˜ÀqM&AlL0;iRAø®Æ•ÔM&AœT¬ BiRA˜ŒN&AlLÀNiRA˜`O&AlL@fiRA˜êO&AlL€ziRA˜6P&AlLÀ‘iRA˜¢P&AlL€¯iRA˜Q&AlL€ÂiRA˜‚Q&AlLÀÇiRA˜HR&AlLÀ·iRAþbmRA˜8Z&AlLÉmRA˜&Z&AlL0ÅmRA˜€ÓY&AlLгmRA˜ÌY&AlL@²mRA˜‚Y&AlL™mRA˜pY&AlLumRA˜FY&AlLÀXmRA˜€5Y&AlLUmRA˜ôX&AlLÀEmRA˜tX&AlLÀ/mRA˜+X&AlL`&mRA˜îW&AlL€mRA˜8W&AlL€mRA˜þV&AlLølRA˜öV&AlL ölRA˜âV&AlL€ñlRA˜dV&AlL@âlRA˜”U&AlL@ÐlRA˜"U&AlLÀÇlRA˜À»T&AlL°¼lRA˜”T&AlLÀ²lRA˜‘T&AlLÀ°lRA˜xT&AlL@ŸlRA˜jRA˜ÎJ&AlLÀ;jRA˜pJ&AlLÀ7jRAðù¼WJ&A¤ÊÊ6jRA˜$J&AlLÀ4jRA˜ûI&AlLÀ1jRA˜äI&AlL0jRA˜·I&AlL°,jRA€ù°šDI&A‹WG$jRA˜I&AlL!jRA˜¤H&AlLjRA˜‡H&AlLjRA˜lH&AlL@jRA˜H&AlLÀúiRA˜îG&AlL€òiRA˜¾G&AlLÀæiRA˜NG&AlLÎiRA˜/G&AlL€ÆiRA˜ðF&AlL@·iRA˜€¹F&AlL¬iRA˜€F&AlL@¡iRA˜$F&AlLiRA˜€þE&AlLà~iRA˜øE&AlL|iRA˜¸E&AlL@hiRA˜\E&AlLÀRiRA˜VE&AlLàOiRA˜€GE&AlL0IiRA˜CE&AlLGiRA˜0E&AlL@>iRA˜9E&AlL 2iRA˜@E&AlL*iRA˜\E&AlLÀiRA˜¢E&AlLiRA˜ÊE&AlLýhRA˜üE&AlL€ðhRA˜VF&AlL@ÝhRA˜G&AlLÍhRA˜@H&AlL¼hRA˜¶H&AlL€µhRA˜.I&AlL€±hRA˜nI&AlL@§hRA˜lI&AlL“hRA˜€I&AlLP…hRA˜¤H&AlLÀwhRA˜†H&AlL@lhRA˜ÕH&AlL[hRA˜èH&AlLÀVhRA˜I&AlLShRA˜I&AlLÀEhRA˜J&AlL€;hRA˜†J&AlLÀ*hRA˜€ÙJ&AlL@hRA˜üJ&AlLhRA˜šK&AlL@hRA˜L&AlLógRA˜ŽL&AlL@ÙgRA˜øL&AlL@ÁgRA˜\M&AlL@®gRA˜ÞM&AlLÀžgRA˜ZdN&AlLÀŠgRA˜~N&AlL€tgRA˜ŽN&AlLÀagRA˜šN&AlLPgRA˜¸N&AlL>gRA˜èN&AlLÀ$gRA˜O&AlL@gRA˜€O&AlLþfRA˜€#O&AlL€øfRA˜€%O&AlL öfRA˜,O&AlLðfRA˜(O&AlL@ÚfRA˜2O&AlLÀËfRA˜€7O&AlL€»fRA˜&AlL—eRA˜€›>&AlL@™eRA˜ˆ>&AlLPšeRA˜f>&AlL@œeRA˜þ=&AlL¢eRA˜Š=&AlLÀ¥eRA˜ =&AlL@©eRA˜à<&AlL@¦eRA˜¿<&AlL¤eRA˜´<&AlL@£eRA˜z<&AlLÀ•eRA˜€w<&AlLÀeRA˜p<&AlLÀ€eRA˜z<&AlL€peRA˜R<&AlLaeRA˜À/<&AlLXeRA˜<&AlLMeRA˜Ð;&AlL@>eRA˜l;&AlL€,eRA˜þ:&AlLeRA˜l:&AlL€ødRA˜Â9&AlL@àdRA˜€¨9&AlL`ÝdRA˜æ8&AlL@ÇdRA˜€ƒ8&AlL ½dRA˜à7&AlL@¬dRA˜Þ6&AlLÀ•dRA˜ê5&AlL€dRA˜d5&AlLydRA˜@%5&AlL|dRA˜€5&AlLà|dRA˜ê4&AlLdRA˜€4&AlLÀ‘dRA˜ð3&AlL­dRA˜€ø2&AlLÀØdRA˜Ž2&AlLìdRA˜Š2&AlL€þdRA˜¶2&AlLÀ eRA˜®2&AlL@eRA˜ž2&AlLÀ-eRA˜b2&AlLÀ0eRA˜N2&AlL@eRA˜ 2&AlLKeRA˜‚1&AlL@LeRA˜æ0&AlLÀHeRA˜80&AlLYeRA˜/&AlLÀeeRA˜R/&AlLÀaeRA˜X.&AlLÀbeRA˜.&AlL@ieRA˜ù-&AlL€xeRA˜ô-&AlL|eRA˜ð-&AlL@ŠeRA˜v-&AlLÀŠeRA˜ü,&AlL@…eRA˜Ð,&AlL€{eRA˜*-&AlLueRA˜@-&AlLÀ_eRA˜8-&AlL@ReRA˜ô,&AlL@ReRA˜j,&AlL@UeRA˜€+&AlLÀ`feRA˜+&AlLGeRA˜n*&AlLVeRA˜€ *&AlL`VeRA˜Ä)&AlLÀVeRA˜–)&AlLÀeeRA˜„)&AlL€eRA˜:)&AlL€ŒeRA˜ú(&AlLÀ•eRA˜ø(&AlL€¬eRA˜â(&AlLÆeRA˜–(&AlLÀÜeRA˜6(&AlL@éeRA˜¦'&AlLïeRA˜ô'&AlL€þeRA˜X(&AlLÀfRA˜ä(&AlL"fRA˜Â(&AlL.fRA˜@(&AlLÀ=fRA˜¢'&AlL€UfRA˜Ú'&AlLÀifRA˜Š'&AlLnfRA˜ò&&AlLvfRA˜Î&&AlL‚fRA˜P&&AlL’fRA˜*&&AlL€¥fRA˜ð%&AlL¯fRA˜®%&AlL¶fRA˜¨%&AlLÄfRA˜~%&AlLÀÏfRA˜ö$&AlLØfRA˜ˆ$&AlL@äfRA˜ö#&AlL@èfRA˜<#&AlLÀífRA˜†"&AlLÀøfRA˜,"&AlL€gRA˜ü!&AlL@gRA˜â!&AlL€-gRA˜â!&AlL=gRA˜ì!&AlL`@gRA˜B"&AlL@]gRA˜€"&AlL@}gRA˜€~"&AlLÀ’gRA˜~"&AlLÀ™gRA˜""&AlL€±gRA˜|!&AlLÊgRA˜ž!&AlL€ßgRA˜º!&AlL€hRA˜"&AlL@%hRA˜>"&AlL€ChRA˜"&AlL_hRA˜¸!&AlL@shRA˜8!&AlL@hRA˜< &AlL@»hRA˜.&AlLiRA˜€[&AlLp5iRA˜*&AlLBiRA˜T&AlLwiRA˜Ê&AlLÀ~iRA˜„&AlLÀ’iRA˜&AlL@¦iRA˜|&AlLÀ¸iRA˜ &AlLÎiRA˜Œ &AlL€áiRA˜!&AlgLÀõiRA˜ž!&AlLjRA˜"&AlL@jRA˜Œ"&AlL*jRA˜#&AlL@=jRA˜„#&AlLQjRA˜€‘#&AlL SjRA˜$&AlLÀfjRA˜¬$&AlL{jRA˜€ %&AlLà‡jRA˜4%&AlL€jRA˜â%&AlL€¡jRA˜Š&&AlLÀµjRA˜Ò&&AlL¿jRA˜('&AlLÊjRA˜Æ'&AlLÝjRA˜z(&AlLðjRA˜)&AlL€kRA˜Œ)&AlLÀkRA˜ú)&AlLÀkRA˜|*&AlL€2kRA˜+&AlLIkRA˜C+&AlLRkRA˜˜+&AlL_kRA˜2,&AlL@skRA˜²,&AlLÀ‚kRA˜H-&AlL@™kRA˜¾-&AlL€°kRA˜>.&AlL@ÌkRA˜ª.&AlLákRA˜T/&AlL@þkRA˜ä/&AlL@lRA˜z0&AlL@2lRA˜1&AlL€HlRA˜x1&AlL@[lRA˜ä1&AlLllRA˜¸1&AlL@ŠlRA˜ö1&AlL@lRA˜^2&AlLÀ”lRA˜€t2&AlLÀ•lRA˜¸2&AlLÀ˜lRA˜23&AlL¡lRA˜’3&AlL¥lRA˜4&AlLÀ¨lRA˜°4&AlLÀ¯lRA˜D5&AlLÀºlRA˜Ø5&AlLÇlRA˜l6&AlLÓlRA˜Ú6&AlL@ÞlRA˜ç6&AlL@àlRA˜€7&AlLPèlRA˜L7&AlL€ïlRA˜¬7&AlLÀmRA˜8&AlL€mRA˜08&AlL*mRA˜<8&AlL€AmRA˜p8&AlL@UmRA˜°8&AlL@emRA˜ 9&AlLsmRA˜‚9&AlL~mRA˜Ç9&AlLÀ„mRA˜,:&AlLÀ‘mRA˜X:&AlL@˜mRA˜€:&AlL€žmRA˜~:&AlL€«mRA˜€Í:&AlLÀ®mRA˜æ:&AlLÀ¯mRA˜<;&AlL@¶mRA˜˜;&AlL@ÀmRA˜è;&AlL€ÌmRA˜Z<&AlLßmRA˜Ð<&AlLÀðmRA˜H=&AlL@úmRA˜">&AlLÀnRA˜Ä>&AlL@nRA˜n?&AlLnRA˜$@&AlL€nRA˜¤@&AlL€)nRA˜ø@&AlLÀ;nRA˜€ A&AlLÀBnRA˜2A&AlL€NnRA˜¢A&AlL€anRA˜¸A&AlL@pnRA˜¨A&AlL€‹nRA˜bA&AlLÀ¡nRA˜JA&AlL€±nRA˜jA&AlLÀÎnRA˜^A&AlL€ãnRA˜\A&AlL€únRA˜ÜA&AlLoRA˜RB&AlLÀoRA˜tB&AlL€+oRA˜¶B&AlL@7oRA˜êB&AlLÀBoRA˜ÜB&AlL€YoRA˜ØB&AlLpoRA˜ÎB&AlL€ŠoRA˜(C&AlL£oRA˜¢C&AlL@´oRA˜ D&AlL@ÊoRA˜žD&AlL€ÚoRA˜‚E&AlLáoRA˜ F&AlL€ßoRA˜œF&AlL€ßoRA˜G&AlLéoRA˜`G&AlL@øoRA˜œG&AlLpRA˜€£G&AlL pRA˜ÈG&AlL€pRA˜øG&AlLpRA˜€*H&AlLpRA˜bH&AlL(pRA˜žH&AlL€.pRA˜âH&AlL€5pRA˜|I&AlL€ApRA˜ÔI&AlLØJpRA˜J&AlL@RpRA˜XK&AlLIpRA˜–K&AlLàFpRA˜ØL&AlL"&AlL€ChRA˜"&AlL@%hRA˜º!&AlL€hRA˜ž!&AlL€ßgRA˜|!&AlLÊgRA˜""&AlL€±gRA˜~"&AlLÀ™gRA˜€~"&AlLÀ’gRA˜€"&AlL@}gRA˜B"&AlL@]gRA˜ì!&AlL`@gRA˜â!&AlL=gRA˜â!&AlL€-gRA˜ü!&AlL@gRA˜,"&AlL€gRA˜Ô!&AlL@ gRA˜v!&AlLÀgRA˜!&AlL€gRA˜® &AlL@gRA˜4 &AlL@gRA˜f&AlLÀgRA˜’&AlL@ gRA˜ &AlL gRA˜â&AlLÀüfRA˜Ø&AlLÀñfRA˜Ö&AlL@åfRA˜¤&AlLÀÊfRA˜b&AlL¯fRA˜0&AlL‹fRA˜&AlLÀsfRA˜€ú&AlL`dfRA˜ì&AlL^fRA˜x&AlL€KfRA˜Â&AlL€?fRA˜€€&AlL *jfRA˜ &AlLÀfRA˜€û&AlLûeRA˜H&AlLpßeRA˜t&AlLpÔeRA˜ò&AlLËeRA˜Ì&AlLp¼eRA˜€O&AlL°feRA˜€{&AlLJeRA˜€›&AlLP@eRA˜š&AlL€-eRA˜¨&AlLeRA˜²&AlL€ñdRA˜´&AlL°édRA˜€r&AlLòdRA˜&AlL0ødRA˜£&AlLÐeRA˜‚&AlL€eRA˜È&AlL€ eRA˜ò&AlL€eRA˜(&AlL@ eRA˜Z&AlL€%eRA˜d&AlL€(eRA˜^&AlLÀ)eRA˜‚&AlL@'eRA˜~&AlL@*eRA˜¼&AlL€1eRA˜^&AlL@BeRA˜€&AlL@TeRA˜€Ï&AlL YeRA˜s&AlLP_eRA˜€d&AlL0`eRA˜ò&AlL0keRA˜Ö&AlLàmeRA˜€&AlLðoeRA˜€&AlL@xeRAÌ{ë&ABï||eRA˜€×&AlLÀ†eRA˜€ &AlL™eRA˜Î&AlLPœeRA˜›&AlLP—eRA˜€&AlLà”eRA˜(&AlL€eRA˜¢ &AlL€~eRA˜€ &AlLàzeRA˜H &AlLmeRA˜æ &AlLÀYeRA˜  &AlLGeRA˜M &AlL°5eRA˜@ &AlL3eRA˜À &AlL€ eRA˜v &AlL@eRA˜ &AlLÀ eRA˜¾ &AlLÀ eRA˜< &AlL€eRA˜Ð &AlL!eRA˜¶ &AlL€*eRA˜Ð &AlLÀ3eRA˜€Ä &AlL`3eRA˜f &AlL@0eRA˜È&AlL+eRA˜@&AlLÀ*eRA˜À&AlL@3eRA˜l&AlLÀ.eRA˜Â&AlkLÀeRA˜È&AlL eRA˜¹&AlL eRA˜N&AlL@$eRA˜Ê&AlL@2eRA˜V&AlLÀeRA˜ &AlL@)eRA˜ú&AlL@2eRA˜Ð&AlL;eRA˜X&AlL@:eRA˜¢&AlL;eRA˜Ì&AlL€ú%AlLÀ»jRA˜hù%AlL@µjRA˜ªø%AlL@¬jRA˜4ø%AlLÀ¤jRA˜Ô÷%AlL±jRA˜p÷%AlLÄjRA˜÷%AlL€ÙjRA˜€Úö%AlLPãjRA˜ö%AlL@ôjRA˜bö%AlLkRA˜Pö%AlL€,kRA˜fö%AlL€DkRA˜žö%AlLÀ[kRA˜öö%AlLvkRA˜÷%AlL€ŒkRA˜¼ö%AlL€ kRA˜^ö%AlL¸kRA˜nö%AlLÀkRA˜¬ö%AlLÑkRA˜âö%AlLÀàkRA˜L÷%AlL@âkRA˜ø%AlLÀÜkRAþ “’#“¼mùFÇ>CapolonaøY˜T&AlLydRA˜:Z&AlL@RpRA|i☌N&AlL@ìoRA˜€”N&AlLÞoRA˜ N&AlLÀÌoRA˜¤N&AlLÀ¬oRA˜€­N&AlL0£oRA˜ÌN&AlL…oRA˜.O&AlL€ioRA˜ÔO&AlL@NoRA˜ÀyP&AlLÐ5oRA˜àP&AlLoRA˜*Q&AlL@ünRA˜HQ&AlL€ànRA˜€@Q&AlLÚnRA˜.Q&AlL€ÉnRA˜BQ&AlL®nRA˜˜Q&AlLÀnRA˜èQ&AlL@xnRA˜LR&AlLÀ_nRA˜¶R&AlL€FnRA˜*S&AlL?nRA˜¨S&AlL0BnRA˜ÒS&AlL@CnRA˜€T&AlL°DnRA˜€T&AlLàInRA˜€¡T&AlLJnRA˜âT&AlLMnRA˜ÜU&AlLÀMnRA˜ÈV&AlL€JnRA˜„W&AlLDnRA˜€×W&AlLÐ;nRA˜ X&AlLÀ4nRA˜ºX&AlL!nRA˜ÞfÇ9AnghiariøY˜Fz&AlLÀ/^RA˜Þê&AlL„pRA|iw˜z‡&AlLþoRA˜ˆ&AlL: AA¥(3Ê&ÇCCastiglion FibocchiøY˜¨õ%AlL°édRA˜€"&AlL@âkRA|i%˜ø%AlLÀÜkRA˜¸ø%AlL@ØkRA˜|ù%AlL@ÜkRA˜Bú%AlLÀÐkRA˜û%AlL@ÁkRA˜ü%AlL€²kRA˜Äü%AlL€§kRA˜bý%AlLkRA˜Òý%AlLÀ|kRA˜lþ%AlLÀdkRA˜üþ%AlLckRA˜¨ÿ%AlLÀ`kRA˜h&AlLTkRA˜&AlL€AkRA˜€ˆ&AlL@2kRA˜€¨&AlLà-kRA˜ì&AlLÀ$kRA˜J&AlLÀkRA˜ê&AlLÀkRA˜j&AlL€kRA˜V&AlL€kRA˜&AlLÀkRA˜Ä&AlL€kRA˜¾&AlL@ kRA˜”&AlL@kRA˜D&AlLÀkRA˜ &AlL@kRA˜‚ &AlL€kRA˜^ &AlL€ kRA˜ö &AlL€ûjRA˜¢ &AlL€ëjRA˜* &AlL€ÝjRA˜î &AlLÆjRA˜Æ &AlL@¯jRAhìÐÌ…&Až3SšjRA˜N&AlLÀƒjRA˜Þ&AlL@qjRA˜ &AlL kjRA˜ho¾¡&AlL€¸URA˜%¢&AlL`ºURA˜£&AlL@¾URA˜Ü£&AlLÃURA˜Τ&AlL€ÇURA˜€[¥&AlL°ÊURA˜:¥&AlL@ÙURA˜ö¤&AlL€ýURA˜Ò¤&AlL@VRA˜+¥&AlL/VRA˜þ¥&AlLÀ¸&AlLÀWVRA˜Þ¸&AlLXKVRA˜¨¹&AlL€CVRA˜œº&AlL@3VRA˜z»&AlL*VRA˜л&AlL +VRA˜B¼&AlL€,VRA˜$½&AlLAVRA˜¾&AlLÀUVRA˜ð¾&AlLiVRA˜¿&AlLlVRA˜þ¾&AlL€pVRA˜€ä¿&AlLˆVRA˜€À&AlL°˜VRA˜€®À&AlL`•VRA˜ÆÀ&AlL˜VRA˜JÁ&AlL~VRA˜òÁ&AlLdVRA˜’Â&AlL@MVRA˜Ã&AlLÀ1VRA˜¦Ã&AlL€VRA˜LÄ&AlLúURA˜°Ä&AlL@ÞURA˜Å&AlLÁURA˜€,Å&AlLp¹URA˜rÅ&AlL@§pURA˜úÅ&AlL€‹URA˜Æ&AlLÀqURA˜þÆ&AlL€XURA˜TÇ&AlL@BURA˜®Ç&AlL€'URA˜È&AlL€ URA˜>È&AlLÀúTRA˜†È&AlLáTRA˜ È&AlL@ÆTRA˜ªÈ&AlL€¬TRA˜ É&AlLÀ—TRA˜xÉ&AlL€ŠTRA˜æÉ&AlL@qTRA˜:Ê&AlLZTRA˜²Ê&AlL@?TRA˜üÊ&AlL)TRA˜$Ë&AlL@TRA˜€kË&AlL TRA˜tË&AlL@TRA˜fË&AlLþSRA˜ØÊ&AlLöSRA˜€¯Ê&AlLÀîSRA˜œÊ&AlL@ëSRA˜HÊ&AlLÞSRA˜ÎÉ&AlLÀÖSRA˜–É&AlL`ÒSRA˜€‹É&AlLÑSRA˜4É&AlLÀÊSRA˜øÈ&AlLÀ¾SRA˜ÄÈ&AlL²SRA˜€ªÈ&AlL°¬SRA˜rÈ&AlLÀ SRA˜ZÈ&AlL@SRA˜HÈ&AlL€€SRA˜ÈÇ&AlL@wSRA˜€"Ç&AlL`lSRA˜’Æ&AlLÀfSRA˜øÅ&AlL@dSRA˜òÅ&AlLXSRA˜Æ&AlLÀDSRA˜àÅ&AlL6SRA˜*Å&AlL€RRA˜¶®&AlL.RRA˜â­&AlL@!RRA˜€‘­&AlL RRA˜r­&AlL@RRA˜À=­&AlLpRRA˜Þ¬&AlL@úQRA˜€«¬&AlL@éQRA˜b¬&AlLàèQRA˜<¬&AlL@ÚQRA˜¬&AlL@ÏQRA˜€ð«&AlLÈQRA˜æ«&AlLÇQRA˜Ù«&AlL ÃQRA˜¸«&AlL€¹QRA˜®«&AlL­QRA˜ˆ«&AlL QRA˜’«&AlLÀ–QRA˜˜«&AlL@QRA˜t«&AlL@‚QRA˜ «&AlLÀdQRA˜àª&AlL€SQRA˜¸ª&AlLÀFQRA˜¬ª&AlLÀ;QRA˜Œª&AlL,QRA˜lª&AlL QRA˜2ª&AlLQRA˜ô©&AlLÀQRA˜ž©&AlL@ QRA˜:©&AlLüPRA˜²¨&AlLÀéPRA˜<¨&AlLÀÖPRA˜à§&AlL€ÉPRA˜R§&AlL@©PRA˜â¦&AlLÀ—PRA˜°¦&AlL@ŒPRA˜f¦&AlL@{PRA˜ê¥&AlL€gPRA˜ž¥&AlL€XPRA˜€t¥&AlLPPPRA˜f¥&AlL€MPRA˜.¥&AlLpGPRA˜Ör¤&AlL>PRA˜ô£&AlLÀ6PRA˜ £&AlL@1PRA˜€¢&AlLÀ#PRA˜F¢&AlL!PRA˜â¡&AlL#PRA˜q¡&AlL` PRA˜¡&AlL€PRA˜ì &AlLÀPRA˜8 &AlLPRA˜€›Ÿ&AlL PRA˜8Ÿ&AlL PRA˜fž&AlL@ÙORA˜Lž&AlLµORA˜.ž&AlL›ORA˜€ú&AlLÀORA˜®&AlLzORA˜”&AlL€dORA˜~&AlLÀOORA˜Ôœ&AlLÀ;ORA˜œ&AlLÀ,ORA˜€Úš&AlL€ORA˜¸š&AlLÀORA˜F˜&AlLORA˜¬—&AlL÷NRA˜Ÿ—&AlL öNRA˜ò–&AlL@òNRA˜€°–&AlL°ëNRA˜B–&AlLÀàNRA˜È”&AlLÉNRA˜€K”&AlLÁNRA˜”&AlLÀ¼NRA˜Z“&AlLÀ±NRA˜°’&AlL@©NRA˜,’&AlL©NRA˜‘&AlL@‰NRA˜ê&AlL@NRA˜€Ê&AlLNRA˜h&AlL@xNRA˜¾&AlL€kNRA˜¶Ž&AlLSNRA˜Ž&AlL€?NRA˜H&AlL€*NRA˜¢Œ&AlLÀNRA˜Œ&AlL@ NRA˜€‹&AlLÀóMRA˜X‹&AlL€ìMRA˜ÕŠ&AlL ÒMRA˜Š&AlL@ÎMRA˜jŠ&AlL€¾MRA˜€GŠ&AlL€¸MRA˜@Š&AlL@·MRA˜Ú‰&AlLªMRA˜€Î‰&AlL¨MRA˜–‰&AlL€¡MRA˜Öˆ&AlL¨‘MRA˜jˆ&AlLÀˆMRA˜ ‡&AlL@xMRA˜‡&AlLfMRA˜|†&AlL€_MRA˜d†&AlL `MRA˜Ô…&AlLÀcMRA˜„„&AlL@vMRA˜®‚&AlL€‰MRA˜sº&AlL)MRA˜ò€&AlL×LRA˜¤€&AlL@§LRA˜Æ&AlLÀ®LRA˜J~&AlL¸LRA˜œ|&AlL€ÄLRA˜®z&AlLÔLRA˜ôx&AlL€àLRA˜x&AlLpãLRA˜ˆv&AlL€òLRA˜Òt&AlL@ýLRA˜vt&AlL€MRA˜€kt&AlLàMRA˜ês&AlLMRA˜s&AlLÀMRA˜Æq&AlL€òLRA˜Ùp&AlL@æLRA˜\p&AlLÀßLRA˜ºo&AlLp×LRA˜€¥o&AlL`ÖLRA˜^n&AlL€ÅLRA˜ôl&AlL€ªLRA˜l&AlL@“LRA˜Øj&AlL€nLRA˜ôi&AlL€LLRA˜ci&AlLp9LRA˜8i&AlLÀ3LRA˜th&AlLLRA˜†g&AlL@øKRA˜€tf&AlLPÑKRA˜€gf&AlL€ÏKRA˜|e&AlL®KRA˜d&AlLÀ~KRA˜c&AlLÀbKRA˜€b&AlLHKRA˜Âa&AlL>KRA˜€§a&AlLÐ:KRA˜ˆ`&AlLÀKRA˜ë_&AlL€KRA˜L_&AlLõJRA˜€2_&AlL`òJRA˜^&AlL@ÕJRA˜º\&AlL€­JRA˜€k\&AlL@ŸJRA˜=\&AlLà–JRA˜,\&AlLÀ“JRA˜¬[&AlL€`JRA˜l[&AlLÀ;JRA˜D[&AlL@JRA˜[&AlLÀJRA˜žZ&AlLÀôIRA˜Z&AlL€ÞIRA˜àY&AlL€ÓIRA˜€´Y&AlL0ÏIRA˜€’Y&AlLÀËIRA˜hY&AlL€ÇIRA˜ŠX&AlLÀ°IRA˜xW&AlL@’IRA˜¤V&AlLÀzIRA˜ªV&AlLpIRA˜¬V&AlL@mIRA˜ªU&AlLÀaIRA˜U&AlL ^IRA˜tT&AlL\tIRA˜’S&AlL@UIRA˜\R&AlL@NIRA˜^Q&AlL€IIRA˜NP&AlL@@IRA˜ÀO&AlLÀOIRA˜¦N&AlLÀhIRA˜XM&AlL€€IRA˜¦L&AlLÀŽIRA˜œK&AlL0”IRA˜ŽK&AlL€”IRA˜€K&AlL0šIRA˜ŒK&AlLÀ½IRA˜€K&AlL€ JRA˜zK&AlLÀwJRA˜{K&AlLÀ{JRA˜”K&AlL€÷JRA˜’K&AlL@jKRA˜œK&AlL@ÆKRA˜¤K&AlLKLRA˜ªK&AlLÀ LRA˜€ªK&AlL«LRA˜°K&AlLùLRA˜vK&AlLDMRA˜®J&AlL€ÊMRA˜J&AlL3NRA˜€ìI&AlLðLNRA˜êI&AlLÀNNRA˜DI&AlLËNRA˜ÎH&AlL@$ORA˜€ŒH&AlLàLORA˜ZH&AlL@lORA˜H&AlLà¤ORA˜€H&AlL ®ORA˜ðG&AlLÀ¿ORA˜¶G&AlL€âORA˜PG&AlL€PRA˜ªF&AlL@8PRA˜F&AlLÀnPRA˜zE&AlL@žPRA˜€0E&AlLPÁPRA˜0E&AlLÀÂPRA˜’F&AlLÀÊPRA˜âG&AlL€ÐPRA˜ðH&AlLÕPRA˜”I&AlLÀÙPRA˜URA˜Ät&AlL@SURA˜žu&AlLdURA˜Lv&AlL@iURA˜w&AlLuURA˜€zw&AlL |URA˜–w&AlLÀ~URA˜8x&AlL@ƒURA˜úx&AlLÀ‘URA˜:y&AlLà“URA˜2y&AlL0—URA˜z&AlL°URA˜oz&AlLà£URA˜€ {&AlL°¥URA˜¯{&AlLp±URA˜ó{&AlL ­URA˜T|&AlLÀ±URA˜,}&AlLÀURA˜¢}&AlL@ÄURA˜~&AlLÀÇURA˜°~&AlL@ÆURA˜H&AlLÀÂURA˜~&AlL ÆURA˜\&AlLàURA˜(&AlLÀôURA˜"&AlLÀVRA˜@&AlLÀ.VRA˜œ&AlLÀFVRA˜;€&AlLcVRA˜Ü€&AlL€nVRA˜…&AlL°}VRA˜‚&AlLÀVRA˜€‚&AlLÀ–VRA˜B‚&AlL@ªVRA˜Æ‚&AlLðÇVRA˜`ƒ&AlLÚVRA˜"„&AlLÀåVRA˜8…&AlLÀòVRA˜†&AlL@WRA˜€¼†&AlLàWRA˜*‡&AlL@*WRA˜„‡&AlLFWRA˜à‡&AlLRWRA˜Rˆ&AlLSWRA˜‰&AlLJWRA˜ø‰&AlLBWRA˜àŠ&AlL:WRA˜²‹&AlL3WRAþ ÅK7ŠfÇDCastiglion FiorentinoøY˜0E&AlL@@IRA˜tË&AlLSWRA|i'˜²‹&AlL3WRA˜\Œ&AlLÀ.WRA˜äŒ&AlL€3WRA˜T&AlL@6WRA˜^&AlL)WRA˜D&AlL€WRA˜¬&AlL@WRA˜LŽ&AlL÷VRA˜¨Ž&AlLÀçVRA˜€ýŽ&AlL@âVRA˜€$&AlLÀßVRA˜+&AlL€ÈVRA˜²&AlL©VRA˜&AlL‹VRA˜X&AlLÀqVRA˜ª&AlLÀZVRA˜ò&AlL€GVRA˜‘&AlLAVRA˜8‘&AlL`RA˜j &AlL;`RA˜Y &AlLp)`RA˜v &AlLð"`RA˜€ &AlL `RA˜Æ &AlLÀ`RA˜ &AlL€î_RA˜n &AlL@Ñ_RA˜¼ &AlL€¶_RA˜ &AlLÀ¢_RA˜n &AlLÀ‘_RA˜° &AlL@‚_RA˜ç &AlLàw_RA˜€ð &AlLv_RA˜€³ &AlL@m_RA˜ &AlL€h_RA˜ &AlL@X_RA˜¬ &AlL@H_RA˜" &AlLÀ4_RA˜ž &AlL'_RA˜P &AlLÀ_RA˜ &AlL€_RA˜Ø&AlL€û^RA˜ª&AlLí^RA˜¦&AlL€Ý^RA˜¸&AlLÎ^RA˜Ô&AlL@¼^RA˜Š&AlLÀ^RA˜ä&AlL€Ã^RA˜€¢&AlLðÀ^RA˜&AlL@À^RA˜X&AlL°^RA˜€)&AlLÀ£^RA˜&AlL ž^RA˜\&AlLÀ›^RA˜2&AlL€^RA˜¸&AlLÀ^RA˜b &AlLÀj^RA˜ &AlLV^RA˜z &AlLB^RA˜ð &AlL€-^RA˜X &AlL^RA˜² &AlL€^RA˜P &AlL€ø]RA˜ô &AlL@ñ]RA˜~ &AlL€å]RA˜î &AlLÀ×]RA˜p&AlLÑ]RA˜æ&AlLÎ]RA˜”&AlL@Ë]RA˜@Â&AlLÌ]RA˜&AlL€Í]RA˜P&AlLÀÍ]RA˜¼&AlLÀÃ]RA˜&AlL€´]RA˜ª&AlL@¯]RA˜€ú&AlLЭ]RA˜i&AlLØ«]RA˜ &AlzL€¥]RA˜¶&AlL]RA˜b&AlL€š]RA˜Ø&AlLÀ™]RA˜&AlL€™]RA˜¾&AlL@]RA˜‚&AlLÀ„]RA˜(&AlL@|]RA˜Â&AlL@s]RA˜J&AlLi]RA˜º&AlLð^]RA˜Å&AlLð]]RA˜Ø&AlL@\]RA˜Ü&AlL?]RA˜€&AlLÀ&]RA˜è&AlLÀ]RA˜&AlL€]RA˜ &AlLÀô\RA˜€!&AlL ð\RA˜&&AlL@à\RA˜2&AlLÀÝ\RA˜î&AlL@Ü\RA˜V&AlL@á\RA˜¦&AlLÀà\RA˜¬&AlLÀÏ\RA˜Ô&AlL€¹\RA˜&AlL@£\RA˜*&AlL€Ž\RA˜9&AlLЄ\RA˜B&AlL\RA˜_&AlL`w\RA˜j&AlL€t\RA˜B&AlL@o\RA˜¼&AlL@b\RA˜F &AlLQ\RA˜Ø &AlL@<\RA˜€!&AlL@'\RA˜T"&AlL@ \RA˜è"&AlL€ù[RA˜|#&AlL€æ[RA˜$&AlLÀÒ[RA˜p$&AlL€È[RA˜Ð$&AlLÁ[RA˜p%&AlL½[RA˜&&AlL@µ[RA˜”&&AlL¬[RA˜Ø&&AlL€š[RA˜H'&AlL€Œ[RA˜¢'&AlL€†[RA˜,(&AlL@‡[RA˜Þ(&AlLÀ[RA˜Ž)&AlL€“[RA˜**&AlLÀ“[RA˜–*&AlLÀ’[RA˜ã*&AlL’[RA˜Ø*&AlLð[RA˜œ*&AlL@|[RA˜V*&AlLf[RA˜,*&AlLW[RA˜*&AlLN[RA˜ *&AlL€C[RA˜*&AlL@;[RA˜÷)&AlLÀ,[RA˜*&AlL,[RA˜€{*&AlL-[RA˜**&AlLð-[RA˜€,*&AlL€+[RA˜.*&AlLÀ)[RA˜S*&AlL`[RA˜]*&AlL0[RA˜€l*&AlL0 [RA˜€‚*&AlLðýZRA˜€*&AlL°øZRA˜ò*&AlL€ÌZRA˜+&AlLÐÁZRA˜€+&AlL¶ZRA˜7+&AlLPžZRA˜R+&AlL€”ZRA˜ÀY+&AlLp‘ZRA˜€j+&AlL@ˆZRA˜À|+&AlLX~ZRA˜€‚+&AlL@|ZRA˜€™+&AlLvZRA˜´+&AlL°nZRA˜®+&AlL°kZRA˜€ª+&AlL@jZRA˜€§+&AlL°fZRA˜€¤+&AlLðbZRA˜À³+&AlLP_ZRA˜t+&AlL€MZRA˜Ž+&AlLÀ5ZRA˜Ì+&AlL€ZRA˜€,&AlL`ZRA˜<,&AlL@ ZRA˜€,&AlL€ZRA˜¼,&AlLÀøYRA˜€B-&AlL`èYRA˜†-&AlL0àYRA˜ž-&AlL@ÝYRA˜€Á-&AlL`ØYRA˜.&AlL@ÏYRA˜-.&AlLÀÉYRA˜:.&AlLÈYRA˜€W.&AlLàÂYRA˜v.&AlL€½YRA˜Š.&AlLºYRA˜€¯.&AlL»YRA˜@Û.&AlL¼YRA˜ /&AlL€ÂYRA˜‚/&AlL@ËYRA˜20&AlLÀÙYRA˜|0&AlL áYRAП»`(1&AD=õnòYRA˜€51&AlLÀóYRA˜2&AlL@ZRA˜þ2&AlL€ZRA˜Â3&AlL€-ZRA˜v4&AlLÀë%AlL@*TRA˜êê%AlLÀ.TRA˜€wê%AlL 9TRA˜ê%AlLCTRA˜ê%AlL@DTRA˜bé%AlL€TTRA˜$é%AlL@cTRA˜òè%AlL€}TRA˜äè%AlLÀœTRA˜–è%AlLÀ¶TRA˜€è%AlLÀ¿TRA˜€è%AlL€ÀTRA˜è%AlL€ÁTRA˜€ïç%AlL ÁTRA˜@ç%AlL¾TRA˜,æ%AlL€´TRA˜Àå%AlL0´TRA˜xå%AlL´TRA˜À[å%AlL@¶TRA˜âä%AlLÀTRA˜xä%AlLÒTRA˜Øã%AlLáTRA˜^ã%AlLäTRA˜\â%AlL€ÉTRA˜ â%AlLÎTRA˜€â%AlLÏTRA˜¨á%AlL€úTRA˜(á%AlL€1URA˜æà%AlLÀLURA˜¾à%AlL€YURA˜`à%AlLÀgURA˜âß%AlL€nURA˜†ß%AlL@|URA˜ ß%AlL@’URA˜ôß%AlL§URA˜Ðß%AlLÀ±URA˜@ß%AlLêURA˜ÐÞ%AlL€VRA˜‚Þ%AlLCVRA˜ðÝ%AlL€tVRA˜FÝ%AlL@¹VRA˜ÐÜ%AlL@èVRA˜rÜ%AlL€WRA˜ðÛ%AlLÀBWRA˜¢Û%AlLdWRA˜~Û%AlLÀWRA˜¬Û%AlL€WRA˜,Ü%AlLŸWRA˜ÖÜ%AlL€³WRA˜~Ý%AlLÀÈWRA˜4Þ%AlL€âWRA˜ß%AlL@XRA˜Ôß%AlLXRA˜¤à%AlL€2XRA˜há%AlLÀLXRA˜Ðá%AlLÀ`XRA˜:â%AlLÀzXRA˜€šâ%AlLÀˆXRA˜‘â%AlLXRA˜‚â%AlL”XRA˜0â%AlL@ŸXRA˜€ÿá%AlL °XRA˜ðá%AlLÆXRA˜Òá%AlLÀÞXRA˜˜á%AlL@ðXRA˜€]á%AlLPøXRA˜Tá%AlL°ùXRA˜þà%AlL€YRA˜þß%AlL€YRA˜*ß%AlLÀ%YRA˜šÞ%AlL@4YRA˜^Þ%AlLø%AlL€û\RA˜À(ø%AlL ]RA˜Rø%AlLÀ+]RA˜Rø%AlL@H]RA˜€5ø%AlL€S]RA˜ø%Al‚L€e]RA˜â÷%AlL@}]RA˜ ø%AlLÀ‹]RA˜Jø%AlL¬]RA˜vø%AlLË]RA˜ø%AlL@ê]RA˜Àø%AlL^RA˜rø%AlL€'^RA˜ø%AlLÀ8^RA˜~÷%AlLÀI^RA˜Êö%AlLÀ[^RA˜¢ö%AlLk^RA˜÷%AlL@‚^RA˜d÷%AlL@^RA˜Ä÷%AlL@´^RA˜Â÷%AlLÁ^RA˜‚÷%AlLÀÒ^RA˜„÷%AlLÀç^RA˜~÷%AlL ñ^RA˜r÷%AlLÀ_RA˜2÷%AlL_RA˜Ôö%AlLÀ1_RA˜ºö%AlLD_RA˜Öö%AlL€Z_RA˜îö%AlLÀo_RA˜÷%AlLÀˆ_RA˜÷%AlL@_RA˜Äö%AlLÀ¶_RA˜¸ö%AlL€Õ_RA˜¢ö%AlL€ð_RA˜€ö%AlL@ `RA˜”ö%AlL€`RA˜Øö%AlL@.`RA˜šö%AlLÀE`RA˜Jö%AlLÀ``RA˜ö%AlLw`RA˜ö%AlL‰`RA˜ ö%AlLÀ‹`RA˜¸ö%AlL€“`RA˜÷%AlL@`RA˜œ÷%AlL@‡`RA˜6ø%AlL@†`RA˜ù%AlL@‰`RA˜Æù%AlL€‹`RA˜ëù%AlL°‰`RA˜"ú%AlL‡`RA˜bú%AlL‚`RA˜¾ú%AlL@˜`RA˜û%AlLÀ©`RA˜€û%AlL€¸`RA˜Öû%AlL@Í`RA˜€ëû%AlL@Ù`RA˜ü%AlLàä`RA˜ü%AlL@è`RA˜ü%AlLàï`RA˜$ü%AlL@ú`RA˜<ü%AlL@aRA˜=ü%AlLàaRA˜?ü%AlL`%aRA˜@ü%AlLÀ*aRA˜rü%AlLPî%AlLÀDfRA˜tî%AlL@>fRA˜Zî%AlLÀ0fRA˜dî%AlLÀ#fRA˜î%AlLÀfRA˜ ï%AlL@fRA˜^ï%AlLüeRA˜Êï%AlLÀúeRA˜4ð%AlLÀùeRA˜ªð%AlLÀôeRA˜üð%AlL@üeRA˜öð%AlLÀ fRA˜úð%AlL)fRA˜^ñ%AlL€&fRA˜ ò%AlLÀfRA˜¼ò%AlL€fRA˜.ó%AlLÀfRA˜Vó%AlLÀúeRA˜¦ó%AlL€õeRA˜\ô%AlL@ìeRA˜âô%AlLÀãeRA˜¢ô%AlL@ÚeRA˜tô%AlL@ÒeRA˜¶ô%AlL¾eRA˜Üô%AlLÀµeRA˜õ%AlL@¾eRA˜Žõ%AlL@°eRA˜dõ%AlL€¦eRA˜ªõ%AlL€ eRA˜àõ%AlL›eRA˜Âõ%AlL“eRA˜Îõ%AlL€‡eRA˜"ö%AlL…eRA˜xö%AlLeRA˜æö%AlL@eRA˜÷%AlL€{eRA˜@÷%AlL€oeRA˜ø%AlL€peRAÐR73bø%AÒ²f&peRA˜ù%AlLÀoeRA˜ú%AlLheRA˜û%AlLÀ_eRA˜ ü%AlL€YeRA˜Ôü%AlLÀQeRA˜Äý%AlLÀKeRA˜þ%AlL@GeRA˜¾ÿ%AlL@CeRA˜Ì&AlL€bRA˜hê%ŠAlLÀMbRA˜tê%AlL@_bRA˜Hê%AlLibRA˜"ê%AlL€ubRA˜Xê%AlLƒbRA˜nê%AlL€‹bRA˜ê%AlLÀbRA˜té%AlLÀ“bRA˜Òè%AlL˜bRA˜>è%AlL™bRA˜6ç%AlL@bRA˜^æ%AlL@›bRA˜Öå%AlL€œbRA˜nå%AlLÀ¥bRA˜å%AlL€¥bRA˜bä%AlL€§bRA˜³ã%AlL°­bRA˜œã%AlL€®bRA˜"ã%AlLºbRA˜â%AlLÎbRA˜â%AlL€ãbRA˜€£á%AlLñbRA˜€dá%AlLpóbRA˜€Yá%AlLàóbRA˜á%AlL€öbRA˜ùà%AlLöbRA˜Hà%AlLÀöbRA˜Þß%AlL@ðbRA˜‚ß%AlLÀëbRA˜ß%AlLÀñbRA˜ûÞ%AlL°óbRA˜˜Þ%AlL@cRA˜(Þ%AlL€cRA˜Þ%AlL@(cRA˜€Þ%AlL`,cRA˜èÝ%AlLÀ4cRA˜lÝ%AlL€=cRA˜ÀÜ%AlL€NcRA˜¬Ü%AlL OcRA˜:Ü%AlLVcRA˜äÛ%AlL@RcRA˜žÛ%AlLÀIcRA˜LÛ%AlL€AcRA˜ÎÚ%AlLÀ@cRA˜lÚ%AlLFcRA˜<Ú%AlL€OcRA˜Ú%AlL@bcRA˜¤Ù%AlLÀpcRA˜:Ù%AlL€cRA˜Ù%AlL‘cRA˜ÚØ%AlL­cRA˜ÀÈØ%AlLð¼cRA˜FØ%AlLÄcRA˜`×%AlLÁcRA˜ŠÖ%AlLÄcRA˜âÕ%AlLÀºcRA˜>Õ%AlL±cRA˜|Ô%AlL§cRA˜Ô%AlL@¥cRA˜¶Ó%AlL€ªcRA˜BÓ%AlL¸cRA˜:Ó%AlLÐÀcRA˜6Ó%AlL@ÅcRA˜€„Ó%AlLðÔcRA˜Ó%AlL@×cRA˜Ô%AlLÀàcRA˜|Ô%AlLîcRA˜¼Ô%AlLþcRA˜4Õ%AlL€dRA˜ÖÕ%AlL.dRA˜þÕ%AlLÀ@dRA˜ÖÕ%AlLNdRA˜ªÕ%AlL€SdRA˜äÕ%AlL€bdRA˜òÕ%AlL€jdRA˜âÕ%AlL@dRA˜ØÕ%AlLŠdRA˜Ö%AlL@—dRA˜Ö%AlL§dRA˜ Ö%AlL€·dRA˜¦Ö%AlLÖdRA˜þÖ%AlL€ädRA˜`×%AlLödRA˜Â×%AlL eRA˜8Ø%AlL€ eRA˜^Ø%AlL@eRA˜ŽØ%AlL'eRA˜òØ%AlL€,eRA˜øØ%AlL€9eRA˜RÙ%AlLÀDeRA˜öÙ%AlL€DeRA˜Ú%AlLàDeRA˜xÚ%AlL@GeRA˜ÖÚ%AlLQeRA˜nÛ%AlL€WeRA˜ïÛ%AlLpZeRA˜Ü%AlL@[eRA˜ÎÜ%AlLÀbeRA˜Ý%AlLleRA˜@Ý%AlLƒeRA˜zÝ%AlL@¦eRA˜âÝ%AlLÀÁeRA˜ˆÞ%AlLÀÕeRA˜bß%AlL@áeRA˜þß%AlL€çeRA˜–à%AlLÀéeRA˜Àçà%AlLèeRA˜ á%AlL@ßeRA˜Òà%AlL€ÏeRA˜dà%AlL¼eRA˜hà%AlL¯eRA˜¤à%AlL@¢eRA˜êà%AlLp¤eRA˜,á%AlL€¦eRA˜Èá%AlL€³eRA˜hâ%AlL@ÅeRA˜Èâ%AlLÀÔeRA˜Ââ%AlL@èeRA˜¦â%AlL€fRA˜Êâ%AlL@fRA˜8ã%AlL€3fRA˜®ã%AlL@NfRA˜ä%AlL]fRA˜€*ä%AlL]fRA˜¶ä%AlL]fRA˜Lå%AlL@XfRA˜°å%AlL€GfRAþŒ@&AlLSRA˜˜@&AlL€ôRRA˜€™@&AlLëRRA˜€š@&AlL`æRRA˜œ@&AlLÝRRA˜´@&AlL€ÃRRA˜€Ã@&AlLÈ®RRA˜Ã@&AlL ­RRA˜´@&AlLÀ™RRA˜Ä@&AlLRRA˜ð@&AlLÀ€RRA˜A&AlLzRRA˜€A&AlL€XRRA˜üA&AlL€RRA˜€UB&AlL°öQRA˜`B&AlLÀòQRA˜€B&AlLÐæQRA˜ÂB&AlLÐQRA˜C&AlL@¯QRA˜LC&AlLQRA˜~C&AlL@sQRA˜¼C&AlLÀ^QRA˜ØC&AlLÀOQRA˜`D&AlL¼4QRA˜¬C&AlL€-QRA˜îB&AlL@%QRA˜nB&AlLQRA˜ÀB&AlLÀQRA˜îA&AlLÀQRA˜ƒA&AlLÀQRA˜*A&AlLQRA˜Š@&AlL QRA˜Þ?&AlL€QRA˜Ö>&AlL€òPRA˜Ï=&AlL˜âPRA˜®=&AlL€àPRA˜x<&AlL€ÍPRA˜;&AlLÀ»PRA˜~9&AlL@«PRA˜28&AlL€›PRA˜Þ7&AlL ™PRA˜J7&AlL@–PRA˜ 6&AlL@ŒPRA˜ 5&AlL€PRA˜,4&AlL@pPRA˜q3&AlL@lPRA˜N3&AlL€kPRA˜&3&AlL€|PRA˜63&AlLÀ–PRA˜P3&AlLµPRA˜ˆ3&AlLÜPRA˜º3&AlL€QRA˜Â3&AlL€QRA˜R3&AlL@QRA˜^2&AlL€#QRA˜®1&AlL€.QRA˜,1&AlL:QRA˜,0&AlLÀJQRA˜6/&AlL€RQRA˜€ .&AlL€\QRA˜_-&AlLÀ[QRA˜‚,&AlL€cQRA˜,&AlLÀgQRA˜Œ+&AlLÀkQRA˜¼*&AlL€qQRA˜*&AlL@xQRA˜@*&AlL€†QRA˜œ*&AlLÀšQRA˜Ú*&AlL@¬QRA˜ +&AlL€ÄQRA˜p+&AlLÀËQRA˜º*&AlL€àQRA˜*&AlL@ÿQRA˜)&AlL)RRA˜f(&AlL€=RRA˜(&AlL@KRRA˜|'&AlL€]RRA˜Æ&&AlL@vRRA˜®%&AlL€–RRA˜@ %&AlL§RRA˜®$&AlL²RRA˜4$&AlLÀÅRRA˜P#&AlL€·RRA˜""&AlL£RRA˜J!&AlL€“RRA˜S &AlL€RRA˜€ &AlLÐrRRA˜ &AlLqRRA˜Ô&AlL€hRRA˜ª&AlLÀDRRA˜ &AlL#RRA˜T &AlLõQRA˜\ &AlL€ÐQRA˜t &AlLªQRA˜t &AlLÀŽQRA˜< &AlL€wQRA˜ &AlL^QRA˜;&AlLÀLQRA˜€Ù&AlL LQRA˜/&AlLP@QRA˜Þ&AlL@2QRA˜®&AlLÀQRA˜f&AlLßPRA˜\&AlL0ÚPRA˜€T&AlLÖPRA˜&AlL±PRA˜¦&AlL€zPRA_9¾–&ARŒ¤ûsPRA˜€Z&AlL@ZPRA˜S&AlLWPRA˜2&AlLÀHPRAØBN{ë&AÖuÓ2PRA˜–&AlL@PRA˜&AlL@ùORA˜€ý&AlLÀ÷ORA˜ô&AlLòORA˜°&AlLÀÉORA˜¨&AlL‹ORA˜œ&AlL@GORA˜Æ&AlLÀORA˜&AlL€ÃNRA˜K&AlL ¨NRA˜n&AlL–NRA˜Ò&AlL@“NRA˜þ&AlLð‘NRA˜ò&AlLð‘NRA˜à&AlL’NRA˜Ì&AlLŽNRA˜&AlL€ƒNRA˜ÀÌ&AlL}NRA˜&AlL€kNRA˜ &AlL€ZNRA˜€&AlLKNRA˜z&AlLÀFNRA˜ &AlLÀKNRA˜Ð&AlLÀRNRA˜ß&AlLSNRA˜Ì&AlL@SNRA˜€ü&AlL@QNRA˜b&AlLÀONRA˜R&AlL€INRA˜6&AlL€0NRA˜&AlLÀNRA˜‘ &AlL`NRA˜€a &AlL NRA˜@ &AlL€þMRA˜@å &AlL öMRA˜n &AlL@ìMRA˜° &AlLÀÙMRA˜ &AlLâMRA˜ù &AlLãMRA˜Ý &AlL çMRA˜| &AlL÷MRA˜' &AlLÀúMRA˜Œ &AlL€NRA˜&AlL@üMRA˜@v&AlL°ûMRA˜ü&AlLùMRA˜@`&AlLàþMRA˜€E&AlL`NRA˜f&AlL@ùMRA˜&AlLñMRA˜ &AlL€ãMRA˜€|&AlLÀâMRA˜€k&AlL`âMRA˜€I&AlLÀáMRA˜=&AlL€áMRA˜€+&AlL áMRA˜ú&AlL àMRA˜Ú&AlL€ßMRA˜€8&AlLPÏMRA˜î&AlLÅMRA˜€&AlLðµMRA˜ì&AlL`ªMRA˜Ñ&AlL@¨MRA˜€Ã&AlL §MRA˜€[&AlL@‹MRA˜H&AlL†MRA˜ì&AlL {MRA˜Ê&AlLÀwMRA˜€q&AlL`rMRA˜1&AlL€nMRA˜ð&AlL€jMRA˜&AlLjMRA˜’ÿ%AlL€uMRA˜æþ%AlL‡MRA˜ þ%AlLÀžMRA˜Lý%AlLÀ·MRA˜‚ü%AlLÓMRA˜ü%AlL@éMRA˜Œû%AlL@NRA˜øú%AlL@NRA˜zú%AlL€2NRA˜6ú%AlL@NNRA˜øù%AlL€cNRA˜Šù%AlL@nNRA˜Tù%AlLÀqNRA˜ ø%AlL€}NRA˜¼÷%AlL€…NRA˜`÷%AlL—NRA˜*÷%AlL¬NRA˜‚ö%AlL´NRA˜¬õ%AlLÀ°NRA˜õ%AlL@ªNRA˜rô%AlL@­NRA˜ô%AlLÀÁNRA˜€Ãó%AlLÃNRA˜Jó%AlLÀÅNRA˜€Ûò%AlL@¼NRA˜ªò%AlLÀ¶NRA˜¾ñ%AlL@µNRA˜Äð%AlL@²NRA˜ìï%AlLÀ«NRA˜ï%AlL€²NRA˜fî%AlL€ÎNRA˜öí%AlLÀêNRA˜Zí%AlLóNRA˜œì%AlLORA˜Vì%AlL ORA˜Îë%AlL@ORA˜2ë%AlL€ORA˜¼ê%AlLÀ8ORA˜ê%AlL@RORA˜Âé%AlL@qORA˜Bé%AlLÀORA˜hè%AlL¨ORA˜€×ç%AlLÀ²ORA˜€Íç%AlLp³ORA˜€Áç%AlL`´ORA˜Œç%AlL€›ORA˜Rç%AlL€xORA˜ç%AlL€PORA˜Ôæ%AlL0ORA˜æ%AlLÀORA˜€(æ%AlL þNRA˜Žå%AlL@ñNRA˜À[å%AlL€íNRA˜<å%AlL€êNRA˜zä%AlLßNRA˜~ã%AlL€×NRA˜Šá%AlL€ÀNRA˜žà%AlL±NRA˜žß%AlL@£NRA˜¾Þ%AlL@–NRA˜ÖÝ%AlL“NRA˜ÔÜ%AlL@’NRA˜ÈÛ%AlL€NRA˜žÚ%AlLNRA˜ÜÙ%AlLŠNRA˜€DÙ%AlL0NRA˜ÀØ%AlLÀNRA˜Ø%AlL@¦NRA˜p×%AlL²NRA˜œ×%AlL»NRA˜Ð×%AlL@ÊNRA˜J×%AlL€ÝNRA˜èÖ%AlL@ðNRA˜4×%AlLÀORA˜h×%AlLÀORA˜4×%AlL4ORA˜@×%AlLÀSORA˜€=×%AlL¸bORA˜:×%AlL@wORA˜D×%AlL@•ORA˜®Ö%AlLªORA˜¼Õ%AlLºORA˜DÕ%AlLÆORA˜²Ô%AlL@âORA˜¦Ó%AlLíORA˜ØÒ%AlLòORA˜¶Ñ%AlL€öORA˜Ñ%AlL PRA˜vÐ%AlL)PRA˜ÌÏ%AlL@>PRA˜äÎ%AlL€SPRA˜Î%AlL@hPRA˜ Î%AlLðhPRA˜.Í%AlLÀrPRA˜~Ì%AlL€wPRA˜ÄË%AlL€†PRA˜¬Ê%AlL€™PRA˜øÉ%AlL€¯PRA˜XÉ%AlLÈPRA˜îÈ%AlL€ÚPRA˜âÈ%AlLQRA˜ºÈ%AlLÀ QRA˜zÈ%AlLÀQRA˜âÇ%AlLÀ*QRA˜\Ç%AlLÐ9QRA˜4Ç%AlL@>QRA˜yÆ%AlL RQRA˜¸Å%AlLiQRA˜îÄ%AlL€QRA˜>Ä%AlL€•QRA˜nÃ%AlL@­QRA˜¸Â%AlL@ÃQRA˜ÔÁ%AlLÀÜQRA˜òÀ%AlL€íQRA˜Ü¿%AlLüQRA˜Ô¾%AlL RRA˜ž½%AlL@RRA˜м%AlLÀ)RRA˜´»%AlLÀ5RRA˜º%AlL@>RRA˜º%AlL€HRRA˜T¹%AlL@SRRAÀÏvH"¹%AŽÚuZRRA˜¹%AlL@eRRA˜æ¸%AlLxRRA˜¶¸%AlLÀ‡RRA˜˜¸%AlLŸRRA˜°¸%AlL@¶RRA˜Ô¸%AlL@ÉRRA˜̸%AlL€ÞRRA˜’¸%AlLÀóRRA˜¨¸%AlLSRA˜*¹%AlLSRA˜’¹%AlLÀSRA˜®¹%AlL€'SRA˜‘à¹%AlLÀ@SRA˜º%AlLÀRSRA˜ˆº%AlLÀoSRA˜»%AlL€‰SRA˜B»%AlLpšSRA˜P»%AlL@ŸSRA˜p»%AlLÀ·SRA˜^»%AlL€ÑSRA˜B»%AlL€êSRA˜úº%AlLöSRA˜Fº%AlL@øSRA˜º%AlL@ýSRA˜Žº%AlLÀ TRA˜ »%AlLTRA˜ä»%AlLÀ/TRA˜l¼%AlL€CTRA˜V½%AlL€[TRA˜ø½%AlLpTRA˜˜¾%AlL@‰TRA˜¤¿%AlL¬TRA˜¼À%AlL@¼TRA˜ÞÁ%AlL@ºTRA˜(Ã%AlL@­TRA˜ÄÃ%AlLÀ¬TRA˜‚Ä%AlL@¼TRA˜þÄ%AlLÁTRA˜€Å%AlLÆTRA˜NÆ%AlLÀÑTRA˜ÀoÆ%AlL€ÔTRA˜Ç%AlLÀâTRA˜ìÇ%AlLîTRA˜RÉ%AlL@öTRA˜¼Ê%AlL@üTRA˜ÖË%AlLURA˜€èË%AlL`URA˜Ì%AlL€URA˜€Ì%AlL€URA˜Í%AlL€URA˜Í%AlL€(URA˜hÎ%AlL€1URA˜tÏ%AlL@>URA˜ŠÐ%AlL€NURA˜²Ñ%AlL@SURA˜$Ó%AlLÀJURA˜6Ô%AlLÀ:URA˜DÕ%AlL€ URA˜€iÕ%AlLØURA˜ôÕ%AlLURA˜âÖ%AlL€îTRA˜~×%AlLÀïTRA˜Ø%AlL€øTRA˜ÔØ%AlLÀòTRA˜ÜÙ%AlLîTRA˜°Ú%AlLÀóTRA˜¤Û%AlLÀúTRA˜€1Ü%AlLÀÿTRA˜€=Ü%AlL URA˜€Ü%AlL€URA˜ÇÜ%AlL€URA˜~Ý%AlLÀURA˜dÞ%AlLÀURA˜ß%AlL€ôTRA˜Và%AlLÚTRA˜Ná%AlLÀÍ’TRA˜ â%AlLÎTRA˜\â%AlL€ÉTRA˜^ã%AlLäTRA˜Øã%AlLáTRA˜xä%AlLÒTRA˜âä%AlLÀTRA˜À[å%AlL@¶TRA˜xå%AlL´TRA˜Àå%AlL0´TRA˜,æ%AlL€´TRA˜@ç%AlL¾TRA˜€ïç%AlL ÁTRA˜è%AlL€ÁTRA˜€è%AlL€ÀTRA˜€è%AlLÀ¿TRA˜–è%AlLÀ¶TRA˜äè%AlLÀœTRA˜òè%AlL€}TRA˜$é%AlL@cTRA˜bé%AlL€TTRA˜ê%AlL@DTRA˜ê%AlLCTRA˜€wê%AlL 9TRA˜êê%AlLÀ.TRA˜€>ë%AlL@*TRA˜€Oë%AlL`)TRA˜në%AlLÀ'TRA˜ì%AlL@$TRA˜Ìì%AlL!TRA˜*í%AlL€TRA˜æí%AlL@úSRA˜jî%AlLÀðSRA˜ôî%AlL@êSRA˜vï%AlL@áSRA˜²ï%AlLÀÒSRA˜(ð%AlL€¾SRA˜Âð%AlL@¦SRA˜ñ%AlL@™SRA˜€jñ%AlL`SRA˜xñ%AlLàSRA˜Žñ%AlL€‹SRA˜¼ñ%AlL@„SRA˜òñ%AlLÀ{SRA˜xò%AlL@qSRA˜ ó%AlL€bSRA˜þó%AlL€PSRA˜žô%AlLGSRA˜\õ%AlLÀ8SRA˜úõ%AlL@3SRA˜Ìö%AlL@&SRA˜p÷%AlLSRA˜Ò÷%AlL€SRA˜ò÷%AlLÐSRA˜Òø%AlL@#SRA˜²ù%AlL@SRA˜6ú%AlLSRA˜„ú%AlLÀñRRA˜û%AlLÓRRA˜4ü%AlL@ÊRRA˜ý%AlL€ÆRRA˜”ý%AlLÄRRA˜ný%AlL€×RRA˜„ý%AlL@ñRRA˜Îý%Al“L@ SRA˜êý%AlL%SRA˜Ðý%AlL3SRA˜bý%AlL€KSRA˜ý%AlLVSRA˜Òü%AlLÀ]SRA˜šü%AlLrSRA˜`ü%AlL@…SRA˜Lü%AlLÀ•SRA˜ôü%AlLÀžSRA˜Êý%AlL¬SRA˜Bþ%AlL®SRA˜$ÿ%AlL«SRA˜&AlL€®SRA˜”&AlL­SRA˜X&AlL€²SRA˜Þ&AlL@¶SRA˜&AlLÀ®SRA˜.&AlL¦SRA˜=&AlL ¦SRA˜ &AlL¨SRA˜L&AlL¬SRA˜:&AlLÀ¯SRA˜(&AlLÀ±SRA˜€&AlLÀ¶SRA˜—&AlLÀ»SRA˜¾&AlL@ÄSRA˜â&AlLÀÕSRA˜Î&AlLÀôSRA˜®&AlLÀTRA˜&&AlLÀ TRA˜t&AlLTRA˜Ö&AlLÀTRA˜„&AlLÀ(TRA˜ &AlLÀ4TRA˜ &AlLÀ9TRA˜\ &AlL€GTRA˜P &AlL€OTRA˜L &AlLÀYTRA˜D&AlL@]TRA˜B&AlLÀbTRA˜P&AlL@fTRA˜~&AlLÀhTRA˜²&AlLÀnTRA˜ð&AlLrTRA˜˜&AlL@uTRA˜N&AlLqTRA˜&AlL€pTRA˜¾&AlLhTRA˜€&AlL dTRA˜€6&AlLcTRA˜F&AlLcTRA˜€i&AlLaTRA˜®&AlL]TRA˜ê&AlLMTRA˜&&AlLÀATRA˜ö&AlL@KTRA˜|&AlL€GTRA˜ú&AlLITRA˜f&AlL€ITRA˜ &AlL€KTRA˜ˆ&AlL@^TRA˜l&AlL€iTRA˜ô&AlL@qTRA˜:&AlL@wTRA˜”&AlL€…TRA˜ä&AlL€‰TRA˜:&AlL€€TRA˜Ö&AlL€qTRA˜ &AlLjTRA˜@#&AlL fTRA˜V&AlL“TRA˜H&AlL@ËTRA˜D&AlLÀñTRA˜â&AlL@URA˜L &AlLURA˜p &AlL€$URA˜ &AlL9URA˜2!&AlL@SURA˜z!&AlL@cURA˜ª!&AlL€~URA˜¨!&AlLÀURA˜î!&AlL@¥URA˜6"&AlL@¸URA˜x"&AlLÀÐURA˜°"&AlL€êURA˜Ø"&AlLP VRA˜Þ"&AlL@VRA˜ë"&AlLÀVRA˜Ð#&AlL@VRA˜Ð$&AlLÀûURA˜8%&AlL€úURA˜ê%&AlL€VRA˜Ø%&AlL@VRA˜'&AlL€2VRA˜V(&AlL@GVRA˜þ(&AlLYVRA˜Î)&AlL€jVRA˜è*&AlLÀ|VRA˜,&AlLÀVRA˜-&AlL@¢VRA˜®-&AlL€¢VRA˜l.&AlLÀšVRA˜ö.&AlL™VRA˜°/&AlL€œVRA˜H0&AlL€«VRA˜t0&AlLÀ¬VRA˜1&AlL€±VRA˜2&AlL€·VRA˜€«2&AlLp¹VRA˜Å2&AlLÀ¹VRA˜Ö2&AlLºVRA˜¬3&AlL€ÆVRA˜Ø4&AlL@ãVRA˜ô5&AlL€þVRA˜ð6&AlLÀWRA˜€™7&AlL`!WRA˜@¥7&AlL("WRA˜N8&AlL€WRA˜ö8&AlL€WRA˜R9&AlLÀ"WRA˜˜:&AlL7WRA˜~;&AlLÀ@WRA˜<&AlL@CWRA˜\<&AlLÀCWRA˜Ú<&AlLFWRA˜€Ü<&AlL`DWRA˜ =&AlL€'WRAþ ¿¿Î-œÇQMonte San SavinoøY˜’¸%AlLjMRA˜`D&AlLFWRA|il˜ =&AlL€'WRA˜R=&AlL€ÿVRA˜\=&AlL ùVRA˜_=&AlLÐ÷VRA˜Ž=&AlL@ÜVRA˜º=&AlL€»VRA˜ü=&AlL€€VRA˜">&AlL€ZVRA˜|>&AlLÀ)VRA˜¶>&AlLVRA˜ø>&AlL@ßURA˜ ?&AlL@¼URA˜N?&AlLœURA˜v?&AlL@|URA˜Š?&AlLÀmURA˜?&AlL kURA˜?&AlLpiURA˜¢?&AlL@\URA˜Ö?&AlLÀ>URA˜ö?&AlLURA˜ö?&AlL€ßTRA˜@&AlLÀÁTRA˜,@&AlL¥TRA˜€0@&AlL¡TRA˜€?@&AlL “TRA˜€C@&AlL0TRA˜F@&AlLÀTRA˜X@&AlLvTRA˜n@&AlLÀ]TRA˜z@&AlLETRA˜€@&AlL/TRA˜€@&AlLÀ,TRA˜@&AlL(TRA˜„@&AlL@TRA˜Ž@&AlL@þSRA˜Œ@&AlLÀçSRA˜”@&AlL€ÒSRA˜@&AlL¿SRA˜ˆ@&AlLÀªSRA˜‚@&AlL—SRA˜‚@&AlL†SRA˜€@&AlL@sSRA˜€€@&Aæ™)kSRA˜‚@&AlL\SRA˜Š@&AlLÀGSRA˜œ@&AlL0SRA˜œ‹–AFþbRA¡Ÿõ&Ap¢uöbRA(òâ ö&AB£ì3óbRAˆµ¶ Sö&A¬ÎâÇòbRAhdÜðaö&Al™„òbRA¸’Ûò?÷&AÄô5…ëbRAÀ¶ñí÷&A@xe…äbRA8ä$ð+ø&Aj!yEåbRAˆ-ÂP@ø&AÈlA…íbRAhXƒYø&A€úGå÷bRAP`†â€ø&A8ˆN¥þbRA íQÉø&A@xe¥cRA0ɆñCù&Al™„…%cRA˜Éõòú&A˜B˜E.cRA÷ò­ú&A<ZÅ/cRAxD û&A,¢…/cRAîŒò û&AølE#cRAП»û&A®gÅcRA8 *b"û&A´ ~åcRA€ šR5û&AÔLoåübRA lˆÍBû&AZ…E·ôbRAà;ï‚Pû&A¿heìbRAûÛafû&Až2¯EãbRAð-1Rû&AÈlA…ÍbRA0Ɇñ¦û&Aè­2…ÄbRAxóàû&Až2¯¥¨bRA@eºSûû&A&'‹åŸbRAøHÏp8ü&AòUE†bRAÀ¿Pfü&Aü}w€bRA`7*ÓÂü&AnŽEsbRA_â ý&Aß:EkbRAX. óþ&AG]ÅfbRA@eºóóþ&A6CibRAð-1òÏÿ&AREibRAPWü‚ˆ'A€úG…jbRA@wÎR–'AFh|ebbRAp)lb´'A@xeÅZbRA8\0ô»'Ašº£EQbRA·áó±'Af©mebRA`I>òk'Aô`ÅlbRAX. S.'A¾s åmbRAÅ0†'AJà‡e]bRA`@´Òº'AÜ<†YbRAκ‚('Af©meIbRAà”['Al™„…EbRA€ šÒŸ'A®g¥:bRAH‰âQÔ'AJà‡%7bRAØÜV'AJà‡Í'bRA€x—å'A(Ÿ–a!bRA`Ú¼ï'Aêï_bRAH×mõ'AŒñçbRAˆ•m'AŒñbRAˆ•m'AêïÿùaRA(Hñí 'A"bûðaRAø?Eñ 'Aœå*¸åaRA€£¢ ø'ADø?ÝaRA€£¢-ã'A°FîÓaRAV¯^Â'AýOËaRAð¾¯í·'A°Fîß»aRAŸÝ}ª'AÖwö²aRAX¿/£'Ahes¥aRAhÃý'A°Fîß›aRAÐ=ŵ'AŽ–{ÏaRA€£¢¿'AêïߊaRAƒÐÝÇ—'ADøÿ}aRAhÃý²'Aú0ó_uaRApºêÝ›'A°FîßkaRA 1_’'AcbaRAƒÐý‡'AB£ì_XaRApºêÝp'A"bûŸOaRAÈ ^o'A"bû¿FaRA81©ý^'AŒñ=aRApºêý['AÖwö6aRA¨L¶ÝA'Aý¿-aRA¨n³4<'AZÄZ'aRAØ2ec4'A@VhÖaRAhõZ æ'Aô¯]HaRA¨Ý4Y•'AlLè aRAo"¶7'A°FîÛ aRA2‡€'A"bûßþ`RA Â–Zú'AzWµnö`RAj]Æ»'AªÝqú`RA`I>²N'A€iÉiaRAà"| Ý'AÆAºÂaRA8(ž¦'A°µo û`RApKiY—'A «)G÷`RAX]H'Aæ™ î`RAxƒê'A´ ~Éæ`RAº{¼Y'AR#¯ß`RAh¨Ö¾ 'Aò„Ö•è`RAðh¡ 'AŠóèÄõ`RAØÞŒ'Aœv©kø`RAÐR7óÿ&AÄÒ8ÞaRAh}OHêþ&AŠÑë=aRAìa‹aþ&Aø–êð&aRAH×ÍÓý&Aà{7aRAPNr#Äý&A°Fî;9aRApÓ]‘ý&A¢<²`RAH×íüð&AŒñ_7`RA ˜lˆ²ð&A°Fîÿ3`RA81©ýð&AhÔô_-`RAŸÝýxï&Aêï"`RAXúŽý®î&AŒñÿ`RAH× §í&AÖwö?þ_RA81©í&Aêïÿò_RAØõÉ ½ì&AB£ì¿î_RAƒÐkì&ADøÿÖ_RA81©}ûë&A²¾ù?Ä_RAàÕ÷ý…ë&A²¾ù¿¨_RA˜cþ-^ë&AhÔô¿¢_RA@æO×5ë&AŠÑëA•_RAð¾¯-/ë&ADø“_RAàÕ÷} ë&Aê_RA`Ú¼M÷ê&AÖwö¿€_RAàÕ÷]Ûê&AŒñÿx_RAX¿¯Ñê&Ahes—l_RA¸,ä µê&AB£ìße_RAð 4Û©ê&A6Cc_RAø?E›ê&AЩܾ__RAÈœŠê&Aú0ó¿[_RAXúŽ]`ê&Aú0ó_V_RAP5ÿ‹Eê&A{n¯M_RA`Ú¼í6ê&AÖwößH_RA`·{ê&AyCØB_RA81©Ýê&Aêïß2_RAH×M ê&A²¾ù_*_RAPñ^ê&AÖwöÿ_RAˆ•í#ê&AŒñ__RAXúŽ]6ê&A"bû_RAˆ•íUê&AhÔôß_RA€£¢íê&A²¾ùñ^RAˆ•í•ê&A"bû_é^RAˆ•mÎê&AŒñßÙ^RAˆ•íêê&AB£ìÒ^RA€£¢ øê&AÖwöÆ^RAà‘ýïòê&Aâ,½½^RApºêýðê&Aú0ó·^RA(HñÍÞê&A"bû¿®^RAàÕ÷}Ìê&AÖwöߟ^RAŸÝ}ªê&AhÔôߘ^RA¨L¶ýˆê&A²¾ùŒ^RAxz¯_ê&A(Ÿ–Q†^RAØBN;ê&An2y^RAˆh2´é&A–õ\i^RAÅ0ƒpé&AŠbj_^RAø?E±Fé&AbS_„Y^RAàîj5‚è&Atø*N^RAˆF5Hmè&A–d•ôL^RAPîUÏç&AX :#X^RA sç&Ap%K^RA講nrç&AÞ#F^RA8 *â-ç&AÚÍÕ;^RAH#ë,ç&A¤Éú4^RA€çœ{”æ&A’ì‰à&^RA8Â'¹€æ&AÒÔcm$^RAÀr cæ&AÆÇ-^RA¡%çå&Aþ9}'^RA€_¨ÿˆå&AnÄ À^RAx³‹ÅWå&A Ì·¼ý]RAOù å&A6]ÇÚî]RA sáñä&A’0„Bê]RAT„×êä&AüÊûÒè]RA81©]Ñä&A²¾ù?ã™]RAPñþ½ä&A"bûÓ]RAXúŽ} ä&A°FîßË]RAð¾¯íwä&Aú0óŸ»]RAp˜íFSä&Aâ,µ]RA¸‚òúüã&AØÛœž]RA8:3]×ã&AÖu¯˜]RA˜ëòé~ã&Aø–êd‡]RAxîû³vã&A$ü†]RAâhÊã&A$Iˆhw]RA ~œ ã&AÆAºrt]RAŸÝ}Gâ&AT&­Î^]RA裯oá&A–õ,C]RA0Ɇñcá&A˜±²A]RA¸q–?á&A¼Ù—v=]RAÐ㵈à&A(RX)]RAPpoZÒß&ARŒ¤ï]RAX £ÜBß&A—”]RA˜Àks—Þ&A:ÕÒ*ú\RAPßð~üÝ&A*”?ù\RA±ñ\kÝ&A‹ø\RAˆéÇâæÜ&A|Æ6»õ\RAÐ=…}Ü&Ax,.Ä÷\RA˜8w—ÁÛ&A"zû\RAˆµ¶ì0Û&Ap]RA°ÍKáXÚ&Al*õ]RApcGcÙ&A܉ K]RAè£ÏuØ&A¤Éî']RA8í®/jØ&AÚ€€o(]RAˆO¿ç­×&Aþ†y0]RA˜~åñÖ&Aò„ÖÁ9]RAà÷ô4žÖ&AYqÔ=]RAp˜íÄÕ&AÊ(GE]RAð×"EªÕ&Ašº£éE]RAxÌþÊÔ&ADøKN]RA¸¤ïñXÔ&ABn R]RA8ä$ÐçÓ&Aö¸çëV]RA8Â'×Ó&Arä“W]RAô…ïÒ&AúŸtDa]RAˆéÇ¢îÑ&Aø–ê0j]RAàhL+Ñ&A Ö°m]RAx÷…sEÐ&Ap€¦j]RAرÏ_¥Ï&AnUŠ+c]RAð¾¯M¢Ï&AÖwöÿV]RAÐt4*˜Ï&A0 ,‘S]RAÀr #gÏ&Az 1QD]RA(adåÏ&A""0]RA(Q{ͺÎ&A:ÕÒv ]RA8©´EÎ&AyCø ]RAX!رÍ&AÖ™ó®]RA˜BÍ&AlL ]RA˜òÌ&AlL€]RA˜vÌ&AlLÀ]RA˜¤Ì&AlL@)]RA˜ÖÌ&AlL6]RA˜Í&AlL@G]RA˜@Í&AlL€W]RA˜dÍ&AlL€f]RA˜hÍ&AlLw]RA˜dÍ&AlLˆ]RA˜~Í&AlL”]RA˜’Í&AlLÀ¦]RA˜’Í&AlLº]RA˜hÍ&AlLÏ]RA˜"Í&AlšL€â]RA˜êÌ&AlL@÷]RA˜Í&AlL€^RA˜FÍ&AlL€^RA˜Í&AlLÀ/^RA˜¸Í&AlL€A^RA˜âÍ&AlL@S^RA˜NÎ&AlLÀ]^RA˜fÎ&AlL€i^RA˜.Î&AlL€^RA˜ŽÎ&AlL€^RA˜¤Î&AlLÀ˜^RA˜0Ï&AlL€œ^RA˜xÏ&AlL¯^RA˜ÔÏ&AlL€µ^RA˜RÐ&AlL±^RA˜ºÐ&AlL©^RA˜Ñ&AlL@¨^RA˜pÑ&AlLÀ´^RA˜æÑ&AlLÉ^RA˜PÒ&AlLß^RA˜æÒ&AlL€ø^RA˜œÓ&AlL_RA˜HÔ&AlLÀ(_RA˜ÈÔ&AlL€?_RA˜@Õ&AlL€Y_RA˜’Õ&AlL@t_RA˜ôÕ&AlLÀ“_RA˜xÖ&AlL€ª_RA˜ ×&AlLÀ¾_RA˜j×&AlLÏ_RA˜€×&AlL`Ø_RA˜ ×&AlL€ä_RA˜Ø&AlLø_RA˜`Ø&AlL@ `RA˜žØ&AlL"`RA˜zØ&AlL€1`RA˜FØ&AlLÀA`RA˜€GØ&AlL@G`RA˜JØ&AlLÀP`RA˜*Ø&AlL_`RA˜ö×&AlL@d`RA˜®×&AlL€d`RA˜V×&AlL@]`RA˜èÖ&AlL@X`RA˜bÖ&AlLl`RA˜¬Õ&AlL‚`RA˜Õ&AlL€‘`RA˜ˆÔ&AlL@®`RA˜>Ô&AlL@Ñ`RA˜Ô&AlLú`RA˜ÒÓ&AlLÀ$aRA˜¸Ó&AlLÀBaRA˜”Ó&AlLÀYaRA˜HÓ&AlL€kaRA˜ÎÒ&AlLÀzaRA˜vÒ&AlL@„aRA˜JÒ&AlLŒaRA˜fÒ&AlL@˜aRA˜´Ò&AlL¥aRA˜Ó&AlL€±aRA˜TÓ&AlLÁaRA˜:Ó&AlLÔaRA˜Ó&AlLïaRA˜€èÒ&AlL(bRA˜†Ò&AlLbRA˜þÑ&AlL+bRA˜ÒÑ&AlL€3bRA˜îÑ&AlL@HbRA˜üÑ&AlL@^bRA˜þÑ&AlLÀzbRA˜Ò&AlL€—bRA˜hÒ&AlLÀ¡bRA˜øÒ&AlL@¯bRA˜bÓ&AlL@ºbRA˜¦Ó&AlL@ÉbRA˜šÓ&AlLÀØbRA˜€Ó&AlL€ðbRA˜hÓ&AlLÀcRA˜4Ó&AlLÀcRA˜>Ó&AlLÀ/cRA˜ŒÓ&AlL€>cRA˜öÓ&AlLLcRA˜®Ô&AlL€]cRA˜pÕ&AlL€icRA˜€äÕ&AlLÐtcRA˜Ö&AlL@xcRA˜ÎÖ&AlLÀ†cRA˜d×&AlLÀcRA˜ä×&AlL˜cRA˜šØ&AlL€§cRA˜(Ù&AlL@²cRA˜zÙ&AlL€ÁcRA˜ØÙ&AlL€×cRA˜,Ú&AlLÀècRA˜€}Ú&AlL@öcRA˜ÔÚ&AlLdRA˜"Û&AlLÀdRA˜bÛ&AlL€dRA˜ˆÛ&AlLÀ#dRA˜ÖÛ&AlLÀ-dRA˜€-Ü&AlL :dRA˜„Ü&AlLÀEdRA˜êÜ&AlLÀKdRA˜¬Ý&AlL€QdRA˜üÝ&AlL@RdRA˜ÚÝ&AlL€`dRA˜¼Ý&AlLldRA˜ Ý&AlL€{dRA˜¦Ý&AlLÀ‡dRA˜ÂÝ&AlL€ŸdRA˜ôÝ&AlL@³dRA˜Þ&AlL µdRA˜\Þ&AlLÀdRA˜¬Þ&AlLÒdRA˜æÞ&AlL€ÝdRA˜\ß&AlL€ÛdRA˜èß&AlLÜdRA˜à&AlL@ædRA˜Nà&AlLÀçdRA˜ºà&AlL@èdRA˜Fá&AlL€ædRA˜Üá&AlLîdRA˜|â&AlLeRAðœ²vã&AD¬vƒeRA éXã&AÄô5…ûdRAh[Rñ0ã&AZÉ?eïdRA +ÑAã&AÔLo¥ædRAþ CC· î&ÇPMonterchiøY˜vÌ&A|Æ6»õ\RAˆ•m'AD¬vƒeRA|iµ +ÑAã&AÔLo¥ædRA¸èéß\ã&AG]ÅÖdRAµPdã&Aß:åÍdRAP`†‚rã&AVQ4ÀdRA¡Ñeã&Aì%>…·dRAh[RñMã&Aü}w¨dRApmfðKã&A¿hŸdRAxzïIã&A g/¥•dRAûÛ;ã&A¿hEdRA8©´áDã&A€úG¥dRAàéPaã&Az 1zdRAp âb‹ã&A²ˆûodRA¸¤ïñšã&A2˜7EldRA8ä$Pºã&Af©meadRA[ãïàã&A|‚EÉcRA€_¨ÿJï&AÊäLe¹cRA÷r_ï&Af©m…°cRA_â‚ï&Aì%>ÅcRAÈ{“‚£ï&ARÅ•cRA€$ÒÂï&AG]EŠcRAП»€îï&Ap„cRA8©´að&AÄô5¥zcRA¨ÿ1ð1ð&AòUÅrcRA0Òñ—ð&AZÉ?scRA˜Éõòoñ&AÀ|*…pcRA íñAò&A¨+P…ncRAØmÕñ)ó&AÊäLÅncRAP¤€P ô&Aj!y…kcRA€$òô&A¨+P…^cRA€ÅŸ„,ô&AZ…E^cRA0Ɇq ô&A¸ƒ‰…[cRA0Ɇqõ&Aü}wåPcRAø6»Qõ&Aj!y¥BcRA¼¦#õ&Aß:¥7cRAXiõ&Aølå.cRAàDy‚úô&A䤨EcRA2‡`õ&A<Ze cRAØÜVÖõ&Aì•_&AlL6sRA˜0`&AlL€7sRA˜€ö`&AlL°:sRA˜*a&AlL€;sRA˜$b&AlLGsRA˜Àc&AlLZsRA˜`d&AlLÀXsRA˜e&AlL€csRA˜¬e&AlL€ssRA˜ˆf&AlL€sRA˜‚g&AlL@‰sRA˜ˆh&AlLsRA˜Êi&AlL€‘sRA˜k&AlL€ŽsRA˜:l&AlL@‡sRA˜m&AlL@tsRA˜´m&AlL\sRA˜þm&AlL€YsRA˜Æn&AlL_sRA˜’o&AlLÀesRA˜tp&AlL€_sRA˜bq&AlL€QsRA˜Âq&AlLIsRA˜ºq&AlL€:sRA˜~q&AlL%sRA˜q&AlL@sRA˜äp&AlLsRA˜~p&AlLsRA˜üo&AlL@ôrRA˜Âo&AlL@ÞrRA˜–o&AlLÉrRA˜^o&AlL±rRA˜`o&AlL–rRA˜’o&AlLÀ‚rRA˜:p&AlLrrRA˜q&AlLbrRA˜¶q&AlL@WrRA˜r&AlLÀJrRA˜€Fr&AlLÀ5rRA˜Jr&AlL@4rRA˜xr&AlLÀrRA˜êr&AlL€ÿqRA˜^s&AlLãqRA˜Ös&AlLÀÈqRA˜€ t&AlLкqRA˜&t&AlLÀ´qRA˜ft&AlL€ŸqRA˜Üt&AlLÀqRA˜tu&AlLÀ…qRA˜qRA˜Ì&AlLÀ2qRA˜x‚&AlL$qRA˜ƒ&AlL€qRA˜ªƒ&AlL@ùpRA˜èƒ&AlLÚpRA˜„&AlLÀºpRA˜@„&AlL€›pRA˜€C„&AlL`ŒpRA˜€q„&AlL„pRA˜\„&AlL`pRA˜ˆ„&AlL€DpRA˜œ„&AlL€,pRA˜„&AlL@pRA˜öƒ&AlLÀâoRA˜܃&AlLÃoRA˜ºƒ&AlL€«oRA˜vƒ&AlL€’oRA˜Hƒ&AlL{oRA˜î‚&AlLÀioRA˜X‚&AlL€JoRA˜ ‚&AlLÀ2oRA˜@‚&AlL`oRA˜n‚&AlLÀoRA˜ø‚&AlL@oRA˜®ƒ&AlLoRA˜:„&AlL  oRA˜|„&AlL oRA˜ …&AlL€ oRA˜ò…&AlL@ oRA˜¸†&AlL€ oRA˜V‡&AlL@ oRA˜è‡&AlL€ oRA˜Hˆ&AlL` oRA˜–ˆ&AlLÀ oRA˜ž‰&AlL oRA˜Ί&AlL€oRA˜h‹&AlLÀünRA˜nŒ&AlLoRA˜6&AlL@oRA˜°&AlLónRA˜0Ž&AlL€ÓnRA˜šŽ&AlL€ºnRA˜ÊŽ&AlLÀ£nRA˜¾Ž&AlL‡nRA˜ÄŽ&AlLmnRA˜ÚŽ&AlLÀSnRA˜ðŽ&AlL8nRA˜ &AlL@!nRA˜R&AlL€ nRA˜¤&AlLömRA˜Ò&AlL@ÝmRA˜€ï&AlL°ÇmRA˜ú&AlL@ÀmRA˜.&AlLÀªmRA˜\&AlLÀ–mRA˜¬&AlLÀƒmRA˜‘&AlL€wmRA˜,‘&AlL@hmRA˜&‘&AlLTmRA˜‘&AlL=mRA˜Ü&AlLÀ*mRA˜Ç&AlLÀ#ŸmRA˜œ&AlL€mRA˜¤&AlLÀmRA˜ &AlLÀúlRA˜‡&AlL ïlRA˜ý&AlLålRA˜$‘&AlL@âlRA˜ˆ‘&AlL€ÑlRA˜Æ‘&AlLÀÁlRA˜Þ‘&AlL€¦lRA˜â‘&AlLÀ¡lRA˜H’&AlLÀvlRA˜~’&AlLÀ`lRA˜œ’&AlL€FlRA˜´’&AlL€(lRA˜ù’&AlL€lRA˜“&AlLÀ lRA˜@ “&AlLàþkRA˜,“&AlLÀ÷kRA˜`’&AlLïkRA˜*’&AlLÀÕkRA˜¸‘&AlLÀ½kRA˜L‘&AlLÀ¥kRA˜ ‘&AlL“kRA˜ø&AlL€}kRA˜Æ&AlL€nkRA˜æ&AlL€ckRA˜ÎŽ&AlL€TkRA˜â&AlL@‰&AlL€5jRA˜æˆ&AlLÀjRA˜°ˆ&AlLjRA˜ˆ&AlL€ jRA˜6‡&AlLjRA˜€Œ†&AlL ýiRA˜r†&AlLÀüiRA˜æ…&AlL@ôiRA˜X…&AlLÀâiRA˜Ô„&AlL€ÃiRA˜¤„&AlL¨iRA˜Z„&AlL€”iRA˜"„&AlL@iRA˜¦ƒ&AlLÀiRA˜€wƒ&AlL|iRA˜*ƒ&AlL@wiRA˜¸‚&AlLwiRA˜‚&AlLviRA˜X‚&AlL€siRA˜‚&AlL€oiRA˜ø&AlL`niRA˜Ú&Al L@miRA˜x&AlL€iiRA˜&AlL@ciRA˜¦€&AlL€TiRA˜o€&AlL PiRA˜ø&AlL@HiRA˜r&AlL:iRA˜*&AlL`7iRA˜*&AlLÀ9iRA˜€'&AlL0>iRA˜€&AlLHCiRA˜€ß~&AlL`CiRA˜€±~&AlLÐDiRA˜‡~&AlL0FiRA˜€n~&AlL€HiRA˜S~&AlL`MiRA˜€@~&AlL°QiRA˜€&~&AlL@WiRA˜€ ~&AlL [iRA˜€ì}&AlLÀeiRA˜½}&AlL aiRA˜L}&AlL\iRA˜€}&AlLYiRA˜€Ç|&AlL0XiRA˜|&AlLWiRA˜p|&AlLàOiRA˜€7|&AlLDiRA˜€|&AlL8iRA˜€þ{&AlLð4iRA˜€Û{&AlLp'iRA˜€Á{&AlL`iRA˜€®{&AlL iRA˜€{&AlL`ühRA˜€?{&AlLàðhRA˜€ {&AlLàèhRA˜@óz&AlLçhRA˜Þz&AlLpåhRA˜Ðz&AlLÐähRA˜ˆz&AlLÑhRA˜Fz&AlLÈhRA˜€ëy&AlL¨ÂhRA˜€éy&AlLà²hRA˜ty&AlLðªhRA˜ßx&AlL0 hRA˜€”w&AlLÀ“hRA˜€v&AlLÀ‚hRA˜u&AlLàvhRA˜Ñs&AlL`ahRA˜Ïr&AlL@OhRA˜€Ñq&AlL€7hRA˜iRA˜CE&AlLGiRA˜€GE&AlL0IiRA˜VE&AlLàOiRA˜\E&AlLÀRiRA˜¸E&AlL@hiRA˜øE&AlL|iRA˜€þE&AlLà~iRA˜$F&AlLiRA˜€F&AlL@¡iRA˜€¹F&AlL¬iRA˜ðF&AlL@·iRA˜/G&AlL€ÆiRA˜NG&AlLÎiRA˜¾G&AlLÀæiRA˜îG&AlL€òiRA˜H&AlLÀúiRA˜lH&AlL@jRA˜‡H&AlLjRA˜¤H&AlLjRA˜I&AlL!jRA€ù°šDI&A‹WG$jRA˜·I&AlL°,jRA˜äI&AlL0jRA˜ûI&AlLÀ1jRA˜$J&AlLÀ4jRAðù¼WJ&A¤ÊÊ6jRA˜pJ&AlLÀ7jRA˜ÎJ&AlLÀ;jRA˜€þJ&AlL>jRA˜*K&AlL@jRA˜€CK&AlLà@jRA˜qRA˜\H&AlLÀRqRA˜üH&AlLrqRA˜I&AlL€sqRA˜bRA˜€"Á&AlL@$bRA˜€Á&AlL`«üaRA˜,Â&AlL€çaRA˜Ã&AlLÀÕaRA˜¢Ã&AlLÀÅaRA˜(Ä&AlL@µaRA˜hÄ&AlL¨aRA˜„Ä&AlL@—aRA˜ŽÄ&AlL@‚aRA˜²Ä&AlLÀkaRA˜Å&AlLÀQaRA˜pÅ&AlL@EaRA˜öÅ&AlL@:aRA˜zÆ&AlL@/aRA˜ÜÆ&AlLÀ$aRA˜>Ç&AlL€aRA˜ˆÇ&AlL@aRA˜RÈ&AlLÀaRA˜É&AlLø`RA˜ŠÉ&AlL@í`RA˜"Ê&AlL€ß`RA˜€Ê&AlL€Õ`RA˜ÜÊ&AlL@Å`RA˜åÊ&AlL`Ã`RA˜8Ë&AlL²`RA˜€xË&AlLà¥`RA˜ˆË&AlL£`RA˜äË&AlL€`RA˜&Ì&AlL`RA˜JÌ&AlLo`RA˜\Ì&AlLÀZ`RA˜tÌ&AlL@P`RA˜æÌ&AlLK`RA˜rÍ&AlL@D`RA˜ÜÍ&AlLÀ=`RA˜Î&AlL@4`RA˜"Î&AlL@)`RA˜ÜÍ&AlL`RA˜žÍ&AlLÀ`RA˜fÍ&AlL÷_RA˜8Í&AlLÀä_RA˜þÌ&AlLÀÔ_RA˜²Ì&AlL@Æ_RA˜ZÌ&AlL¸_RA˜Ì&AlL@­_RA˜Ë&AlL¢_RA˜6Ë&AlL™_RA˜ÀÊ&AlLÀŒ_RA˜^Ê&AlLÀ|_RA˜0Ê&AlL@k_RA˜Ê&AlL`_RA˜ Ê&AlLÀP_RA˜Ê&AlLÀ=_RA˜Ê&AlL@._RA˜"Ê&AlLÀ#_RA˜DÊ&AlL_RA˜|Ê&AlL _RA˜zÊ&AlL@_RA˜8Ê&AlL€÷^RA˜ÔÉ&AlL@ñ^RA˜HÉ&AlL€ô^RA˜üÈ&AlL_RA˜ÊÈ&AlL@ _RA˜’È&AlL€ð^RA˜`È&AlLÀÖ^RA˜nÈ&A¬lL¾^RA˜–È&AlL@­^RA˜ÄÈ&AlL@ ^RA˜ôÈ&AlLÀ’^RA˜"É&AlLÀ^RA˜PÉ&AlLr^RA˜ÞÉ&AlLf^RA˜zÊ&AlLÀ\^RA˜Ë&AlLÀU^RA˜ØË&AlL€J^RA˜PÌ&AlL€@^RA˜®Ì&AlL@8^RA˜Í&AlLÀ/^RA˜FÍ&AlL€^RA˜Í&AlL€^RA˜êÌ&AlL@÷]RA˜"Í&AlL€â]RA˜hÍ&AlLÏ]RA˜’Í&AlLº]RA˜’Í&AlLÀ¦]RA˜~Í&AlL”]RA˜dÍ&AlLˆ]RA˜hÍ&AlLw]RA˜dÍ&AlL€f]RA˜@Í&AlL€W]RA˜Í&AlL@G]RA˜ÖÌ&AlL6]RA˜¤Ì&AlL@)]RA˜vÌ&AlLÀ]RA˜òÌ&AlL€]RA˜BÍ&AlL ]RAX!رÍ&AÖ™ó®]RA(Hñí—Í&A°Fîÿú\RApÃtývÍ&A"bû¿î\RAèÞ]ZÍ&Aú0óÿç\RA¸,äMJÍ&AÖwöß×\RAèÞÝDÍ&A"bûŸÏ\RA lˆÍ@Í&Aú0óŸÃ\RAˆ•ÍGÍ&AhÔô»\RAØõÉíKÍ&Aêïß²\RA¸,ä-<Í&A²¾ù/«\RAØõÉ /Í&A"bû¿Ÿ\RAÀP Œ Í&A¤Énš\RApºê¿Ì&AŒñŽ\RAhÃOÌ&AB£ì€\RA lˆ-Ë&A²¾ù?|\RA`Ú¼máÊ&A²¾ùÿu\RAH×mYÊ&A"bûq\RAð¾¯mÛÉ&A°Fîÿc\RAàÕ÷}iÉ&A²¾ùŸY\RAŸÝ}1É&ADø?M\RA(Hñ--É&AÔÿêÿD\RA€£¢M*É&A"bûo9\RA¸,ä 5É&A"bû1\RA¸,ä­;É&AŒñ?(\RAPyù™É&AÄô5-$\RAH×íÑÈ&AÖwöß\RAˆ•­±Ç&Aý\RA¸,ä­íÆ&A°FîŸ\RA`Ú¼íýÅ&AhÔô_\RApÃtýïÄ&Aú0óð[RApÃtýïÃ&Aú0óŸä[RApÃtý“Â&A²¾ùŸá[RA lˆ dÁ&AÔÿêÔ[RAèÞ]­vÀ&AÔÿêÿ¼[RA¸,ä­&À&A²¾ù?¬[RA𾯠ÿ¿&A"bû¿§[RAˆ•Ç¿&A²¾ù_“[RA`Ú¼m¡¿&AŒñŽ[RA¨g]¿&A²¾ù}[RA lˆ-ò¾&AŒñy[RA`Ú¼í½¾&A°FîŸf[RAØõÉí ¾&Aú0ó`[RAj†¾&A¶AW[RApºêýp¾&Aú0óP[RA¸èéÿV¾&AH“ÀL[RAÈœ}J¾&A°FîK[RA(HñÍ%¾&A¼HçA[RA¸5n-¾&AhÔô_=[RAØõɶ½&AB£ì_1[RApÃtÝ“½&Aú0ó¿+[RAŸÝq½&AhÔôë![RAð¾¯mM½&AhÔô[RA (Ž6½&AH“p[RAèMâ-½&A¢fÀ [RA¨L¶Ý½&A²¾ù [RA(Q{mÁ¼&A²¾ùoñZRA sAi¼&Ašm(ÛZRAƒÐ]V¼&ADøÿÕZRAˆ•-\¼&AÖwöÿÇZRAˆ•­x¼&A²¾ùŸÁZRAXúŽý§¼&Aú0ó?·ZRAІHé̼&Aœ˜¦Š²ZRA¸5níì¼&AB£ì_ ZRA81©Ýû¼&AhÔôߘZRAˆ•í½&AÖwöŸZRApÃtÝ(½&AhÔôÏyZRA`Ú¼í=½&Aú0ó_eZRA`Ú¼ÍL½&A²¾ù×]ZRAƒÐr½&ADøCZRAèÞÝ’½&AŒñŸ=ZRA¸5n-×½&AhÔôÿ0ZRA€V€â½&AH“ /ZRAH×íü½&ADø_,ZRA€£¢-¾&Aêï¯ZRAH×Í.¾&A²¾ùçZRAŸÝ\¾&AÖwöŸZRA€£¢-¾&AhÔôgýYRA¨L¶å¾&AhÔôŸëYRA€£¢m¿&A²¾ùÿåYRA0…Œ#.¿&AìA ÛYRA`Ú¼mS¿&Aú0óÕYRA¸5n-m¿&A°FîÏÃYRApÃt}…¿&ADø½YRAÈkª ¿&AÂ80k¹YRApºêÝâ¿&A°Fî_ŸYRA𾯠À&A²¾ù‘YRA¨L¶]%À&AŒñÏŠYRAŸÝ]cÀ&AhÔô¿yYRAèÞ}}À&A°FîÿrYRA¨L¶ýÀ&AêïŸdYRA¸,ä­ŸÀ&A²¾ùï\YRAÐ[Á’³À&AáeNYRA81©}»À&AŒñ?HYRA éXÞÀ&AÀž'CYRA81©}-Á&AhÔôÿ8YRAÈœ}µÁ&A"bû1YRA¸,ä-QÂ&AÖwöŸ2YRA®pÃt}7Ã&Aú0ó?7YRA¨L¶}óÃ&A"bûŸ8YRAhÃ}ÏÄ&AhÔôß9YRA¨L¶}¥Å&AhÔô_5YRAH×§Æ&A"bû¿/YRA¸,ä­Ç&AÖwö/YRA(Hñ×È&AÖwöß0YRAð¾¯÷É&Aú0ó0YRA€£¢ Ë&AhÔôÿ8YRAƒÐ}ùË&AŒñFYRA81©½zÌ&A"bû§NYRA81©}ûÌ&ADøß>YRAˆ•cÍ&A²¾ùÿ%YRA(Hñ­åÍ&AhÔô¿ YRA€£¢­MÎ&A°Fî÷XRAH×íõÎ&AŒñ?YRAÈœíÏ&AŒñYRAȜݑÐ&Aú0ó?/YRAˆ•cÑ&Aêï_HYRA lˆùÑ&A²¾ùJYRA€£¢¿Ò&AŒñQYRAàÕ÷}ÅÓ&AÖwößhYRA`Ú¼m“Ô&ADø_|YRAhÃÕ&AŒñ‘YRAà¡æ‡‚Ö&A¾}¤YRA¸,äMu×&AêYRA lˆMOØ&AhÔôŸÂYRAÈœý&Ù&ADøßÎYRA lˆMÙ&AB£ìÒYRA(HñM_Ú&AB£ìŸÆYRA€$òbÛ&A>+áG³YRAˆ$8ñmÛ&AæÏ/p²YRAº{¼æÛ&Atgž†¨YRA u-AÜ&AˆYà%¡YRA lˆ‡Ü&ALéÕ›YRAHøcöÌÜ&A@Vh’–YRA8Â'éÜ&A¤‘G¦”YRAÐÁ¸÷ZÝ&AnŽýYRAX¿ÏsÝ&Aº?cŒYRA8í®oÝ&A¶‰‹YRA˜ÉõR¸Ý&Aè‹5¾‡YRAˆµ¶,ÔÝ&A4å» ~YRA9æ8âÝ&AÞÖŽàtYRAÙ¸ãÝ&AŠÑëAsYRA¸,äíæÝ&ADøÿmYRAÈœ]õÝ&A²¾ùßeYRAØõÉmýÝ&ADø_[YRAŸÝÝÞ&AêïßRYRA€£¢ Þ&AhÔô?EYRAØõÉÍÞ&A²¾ùÿÜ&A"bûÏöURA0A’U_Ü&Al»€ðURA íшÜ&ABntáURA¨*¹†®Ü&A¼jªÜURA0§‰š&Ý&Aâ›bÍURAØKØZ¨Ý&A|»`·URAˆ$8‘ðÝ&AÁ­URA˜Éõ’ûÝ&AØ3üa¬URAÀ>øÌaÞ&Aï#y URA@ÿ®¯Þ&AãÿD—URAÓî3÷Þ&A„áÔ ‘URA˜ß&AlL€URA˜€îÞ&AlLà}URA˜€ÇÞ&AlL@vURA˜~Þ&AlL@kURA˜<Þ&AlLÐXURA˜øÝ&AlL@QURA˜ÛÝ&AlLPRURA˜€ÃÝ&AlL SURA˜‰Ý&A°lL NURA˜€‹Ü&AlLàBURA˜8Ü&AlL=URA˜€öÛ&AlL4URA˜€ÛÛ&AlL+URA˜€yÛ&AlL`,URA˜€ðÚ&AlL01URA˜†Ú&AlL€2URA˜€<Ú&AlL00URA˜€ùÙ&AlLÐ'URA˜²Ù&AlL@URA˜rÙ&AlLöTRA˜CÙ&AlL0éTRA˜ÀØ&AlLåTRA˜hØ&AlL€çTRA˜€È×&AlLâTRA˜²×&AlL@áTRA˜€¡×&AlLáTRA˜ŠÖ&AlLÀÜTRA˜Ö&AlL0ßTRA˜€âÕ&AlLàTRA˜¤Õ&AlL@áTRA˜Õ&AlL`ÚTRA˜ØÔ&AlLÀÖTRA˜LÔ&AlL ÇTRA˜4Ô&AlLpÄTRA˜¢Ó&AlLÀ±TRA˜òÒ&AlL€¡TRA˜€UÒ&AlLðTRA˜²Ñ&AlL€tTRA˜Ñ&AlLVTRA˜€·Ð&AlLP=TRA˜fÐ&AlLÀDTRA˜ÚÏ&AlLÀPTRA˜|Ï&AlL€MTRA˜Ï&AlL@GTRA˜zÎ&AlL€NTRA˜€öÍ&AlLJTRA˜Î&AlL;TRA˜Î&AlL+TRA˜¶Í&AlLÀTRA˜mÍ&AlLÀ TRA˜ÖÌ&AlLTRA˜ªÌ&AlLTRA˜ªÌ&AlL$TRA˜¨Ì&AlLÀ2TRA˜\Ì&AlL@1TRA˜ÜË&AlL€)TRA˜bË&AlL@TRA˜$Ë&AlL@TRA˜üÊ&AlL)TRA˜²Ê&AlL@?TRA˜:Ê&AlLZTRA˜æÉ&AlL@qTRA˜xÉ&AlL€ŠTRA˜ É&AlLÀ—TRA˜ªÈ&AlL€¬TRA˜ È&AlL@ÆTRA˜†È&AlLáTRA˜>È&AlLÀúTRA˜È&AlL€ URA˜®Ç&AlL€'URA˜TÇ&AlL@BURA˜þÆ&AlL€XURA˜±Æ&AlLÀqURA˜úÅ&AlL€‹URA˜rÅ&AlL@§URA˜€,Å&AlLp¹URA˜Å&AlLÁURA˜°Ä&AlL@ÞURA˜LÄ&AlLúURA˜¦Ã&AlL€VRA˜Ã&AlLÀ1VRA˜’Â&AlL@MVRA˜òÁ&AlLdVRA˜JÁ&AlL~VRA˜ÆÀ&AlL˜VRA˜€®À&AlL`•VRA˜€À&AlL°˜VRA˜€ä¿&AlLˆVRA˜þ¾&AlL€pVRA˜¿&AlLlVRA˜ð¾&AlLiVRA˜¾&AlLÀUVRA˜$½&AlLAVRA˜B¼&AlL€,VRA˜л&AlL +VRA˜z»&AlL*VRA˜œº&AlL@3VRA˜¨¹&AlL€CVRA˜Þ¸&AlLXKVRA˜>¸&AlLÀWVRA˜„·&AlLÀeVRA˜î¶&AlLÀhVRA˜àµ&AlL@^VRA˜ª´&AlLÀWVRA˜°³&AlL€UVRA˜ ²&AlL@TVRA˜€k²&AlLSVRA˜¶±&AlLÀNVRA˜L±&AlLOVRA˜ì°&AlL@PVRA˜Ô¯&AlL€TVRA˜2¯&AlLNVRA˜t®&AlLAVRA˜²­&AlL0VRA˜Ò¬&AlL@VRA˜¬&AlL€ VRA˜ö«&AlLVRA˜Æ«&AlL VRA˜*«&AlLÀùURA˜ˆª&AlLÀøURA˜ö©&AlL VRA˜Ž©&AlLÀVRA˜©&AlLÀ,VRA˜F¨&AlL€AVRA˜ò§&AlLÀTVRA˜j§&AlLÀRVRA˜Ħ&AlL@HVRA˜þ¥&AlLÀURA˜úr&AlL€2URA˜€r&AlLp'URA˜&r&AlL@URA˜€*r&AlL€üTRA˜­q&AlLÞTRA˜q&AlLÔTRA˜€rq&AlL`ÃTRA˜xq&AlLÀ¸TRA˜€=q&AlLÀ®TRA˜€2q&AlLÀ¢TRA˜€íp&AlLp—TRA˜ˆp&AlL €TRA˜Sp&AlL vTRA˜€p&AlLpuTRA˜ão&AlLÐjTRA˜€ p&AlLðeTRA˜Øo&AlL^TRA˜lo&AlL@JTRA˜ o&AlLÀ:TRA˜p&AlL'TRA˜ p&AlLPTRA˜øo&AlL TRA˜€ƒo&AlLˆTRA˜`o&AlLð TRA˜Bo&AlL@TRA˜Ào&AlL8TRA˜ân&AlL€üSRA˜€n&AlL`úSRA˜„n&AlLúSRA˜Bn&AlLÀøSRA˜lm&AlLûSRA˜˜l&AlLøSRA˜jl&AlL õSRA˜Þk&AlL€ìSRA˜Jk&AlLÀÝSRA˜Ôj&AlLàÏSRA˜Àj&AlL€ÍSRA˜€?j&A´lLð¾SRA˜Öi&AlL@«SRA˜“i&AlL@¡SRA˜€gi&AlL°šSRA˜´h&AlL€ŽSRA˜h&AlL`‹SRA˜h&AlL€€SRA˜ˆg&AlL€pSRA˜g&AlLÀaSRA˜€~f&AlL`KSRA˜€f&AlLà=SRA˜øe&AlL@URA˜¢?&AlL@\URA˜?&AlLpiURA˜?&AlL kURA˜Š?&AlLÀmURA˜v?&AlL@|URA˜N?&AlLœURA˜ ?&AlL@¼URA¶˜ø>&AlL@ßURA˜¶>&AlLVRA˜|>&AlLÀ)VRA˜">&AlL€ZVRA˜ü=&AlL€€VRA˜º=&AlL€»VRA˜Ž=&AlL@ÜVRA˜_=&AlLÐ÷VRA˜\=&AlL ùVRA˜R=&AlL€ÿVRA˜ =&AlL€'WRA˜€Ü<&AlL`DWRA˜Ú<&AlLFWRA˜È<&AlL\WRA˜§<&AlLmWRA˜€¢<&AlLðoWRA˜ˆ<&AlL@~WRA˜D<&AlLÀ¥WRA˜ <&AlLËWRA˜þ;&AlLôWRA˜Ä;&AlLXRA˜À´;&AlLØXRA˜f;&AlL€HXRA˜;&AlL@vXRA˜Æ:&AlL@©XRA˜P:&AlL@âXRA˜;:&AlLòXRA˜€8:&AlL€ôXRA˜6:&AlL`öXRA˜:&AlLÀYRA˜Ø9&AlL@4YRA˜Õ9&AlL€6YRA˜€Ñ9&AlLP9YRA˜¬9&AlLÀVYRA˜p9&AlL}YRA˜69&AlL YRA˜ü8&AlL€ÂYRA˜ö8&AlL@ÆYRA˜€Ð8&AlLÀÝYRA˜¾8&AlL@éYRA˜V8&AlL€ZRA˜ 8&AlLMZRA˜8&AlL RZRA˜€ý7&AlL0TZRA˜€Ö7&AlL€jZRA˜Í7&AlLðoZRA˜Ç7&AlL`sZRA˜«7&AlL€xZRA˜‘7&AlLP}ZRA˜„7&AlLÀZRA˜7&AlL€yZRA˜¹6&AlL@rZRA˜|6&AlLkZRA˜$6&AlL€aZRA˜´5&AlLXZRA˜€u5&AlL RZRA˜(5&AlLLZRA˜v4&AlLÀ`RA˜€ý&AlL F`RA˜ö&AlLI`RA˜â&AlLX`RA˜ &AlLÀi`RA˜. &AlL€q`RA˜€< &AlLÀq`RA˜” &AlL@s`RA˜þ &AlL€v`RA˜h &AlL}`RA˜ä &AlL@‡`RA˜h &AlL@’`RA˜Ú &AlLÀ¨`RA˜† &AlLÃ`RA˜F &AlL@Ð`RA˜ò &AlL@Î`RA˜Ð&AlLË`RA˜€á&AlL Ë`RA˜T&AlL€Ï`RA˜¨&AlL@Ù`RA˜&AlLÐé`RA˜&AlLì`RA˜~&AlLaRAº˜â&AlLÀaRA˜:&AlLÀ)aRA˜F&AlL€8aRA˜"&AlLÀ@aRA˜0&AlLMaRA˜&AlL€WaRA˜8&AlLÀcaRA˜€H&AlLmaRA˜P&AlL@qaRA˜H&AlL€vaRA˜`&AlLøyaRA˜e&AlLp|aRA˜i&AlL aRA˜€‡&AlLÀƒaRA˜–&AlL…aRA˜Ÿ&AlL°ŒaRA˜€¡&AlL€ŽaRA˜€Ò&AlL ’aRA˜ç&AlLP”aRA˜€õ&AlL •aRA˜€&AlL°—aRA˜&AlLðšaRA˜€&AlL ŸaRApÃtC&Aê¶¼ ¡aRA˜€}&AlL¤aRA˜º&AlL€¦aRA˜0&AlLÀªaRA˜l&AlL¯aRA˜Ð&AlL€´aRA˜4&AlL@¹aRA˜”&AlL@ÄaRA˜ô&AlLÕaRA˜F&AlL€àaRA˜ &AlLíaRA˜Æ&AlL€÷aRA˜â&AlL@bRA˜à&AlL@bRA˜À&AlL@)bRA˜Œ&AlL€7bRA˜&AlL@?bRA˜ô&AlL€MbRA˜Û&AlLPNbRA˜ &AlL€TbRA˜–&AlLÀ`bRA˜z&AlLTbRA˜&AlL@KbRA˜‚&AlL€GbRA˜Þ&AlLÀLbRA˜*&AlLTbRA˜„&AlLÀTbRA˜Ô&AlL€^bRA˜€v&AlL€_bRA˜@&AlL`bRA˜v &AlL€bbRA˜Ö &AlL€ebRA˜ &AlL@jbRA˜¸ &AlLqbRA˜Ú &AlLÀbRA˜Ø &AlL0bRA˜Ø &AlLÀ‘bRA˜¬ &AlL@œbRA˜b &AlL@¡bRA˜” &AlLÀ­bRA˜¼ &AlL»ÈbRA˜ &AlLòbRA˜’ &AlL cRA˜ &AlL@cRA˜p &AlL/cRA˜€€ &AlLX2cRA˜Ü &AlLEcRA˜¶&AlL@WcRA˜ð&AlL€]cRA˜€ä&AlL _cRA˜È&AlL@ccRA˜ˆ&AlL@icRA˜.&AlLÀtcRA˜&AlLwcRA˜ &AlLðycRA˜œ &AlL€‹cRA˜r &AlL˜cRA˜D &AlL¥cRA˜( &AlL@¸cRA˜ &AlLÀÒcRA˜ &AlLÀìcRA˜ &AlLdRA˜Ð &AlL@dRA˜€ &AlL:dRA˜R &AlL@RdRA˜` &AlL^dRA˜¾ &AlLmdRA˜ &AlL@|dRA˜Ê &AlL‡dRA˜R &AlL@›dRA˜ø &AlLªdRA˜ &AlL@´dRA˜~ &AlL´dRA˜Ð &AlL€²dRA˜Ø &AlL@ÈdRA˜î &AlL@ádRA˜æ &AlL€ïdRA˜’ &AlL€ùdRA˜ &AlL@eRA˜ &AlL eRA˜v &AlL@eRA˜À &AlL€ eRA˜@ &AlL3eRA˜M &AlL°5eRA˜  &AlLGeRA˜æ &AlLÀYeRA˜H &AlLmeRA˜€ &AlLàzeRA˜¢ &AlL€~eRA˜(&AlL€eRA˜€&AlLà”eRA˜›&AlLP—eRA˜Î&AlLPœeRA˜€ &AlL™eRA˜€×&AlLÀ†eRAÌ{ë&ABï||eRA˜€&AlL@xeRA˜€&AlLðoeRA˜Ö&AlLàmeRA˜ò&AlL0keRA˜€d&AlL0`eRA˜s&AlLP_eRA˜€Ï&AlL YeRA˜€&AlL@TeRA˜^&A¼lL@BeRA˜¼&AlL€1eRA˜~&AlL@*eRA˜‚&AlL@'eRA˜^&AlLÀ)eRA˜d&AlL€(eRA˜Z&AlL€%eRA˜(&AlL@ eRA˜ò&AlL€eRA˜È&AlL€ eRA˜‚&AlL€eRA˜£&AlLÐeRA˜&AlL0ødRA˜€r&AlLòdRA˜´&AlL°édRA˜²&AlL€ñdRA˜¨&AlLeRA˜š&AlL€-eRA˜€›&AlLP@eRA˜€{&AlLJeRA˜€O&AlL°feRA˜Ì&AlLp¼eRA˜ò&AlLËeRA˜t&AlLpÔeRA˜H&AlLpßeRA˜€û&AlLûeRA˜ &AlLÀfRA˜€€&AlL *fRA˜Â&AlL€?fRA˜x&AlL€KfRA˜ì&AlL^fRA˜€ú&AlL`dfRA˜&AlLÀsfRA˜0&AlL‹fRA˜b&AlL¯fRA˜¤&AlLÀÊfRA˜Ö&AlL@åfRA˜Ø&AlLÀñfRA˜â&AlLÀüfRA˜ &AlL gRA˜’&AlL@ gRA˜f&AlLÀgRA˜4 &AlL@gRA˜® &AlL@gRA˜!&AlL€gRA˜v!&AlLÀgRA˜Ô!&AlL@ gRA˜,"&AlL€gRA˜†"&AlLÀøfRA˜<#&AlLÀífRA˜ö#&AlL@èfRA˜ˆ$&AlL@äfRA˜ö$&AlLØfRA˜~%&AlLÀÏfRA˜¨%&AlLÄfRA˜®%&AlL¶fRA˜ð%&AlL¯fRA˜*&&AlL€¥fRA˜P&&AlL’fRA˜Î&&AlL‚fRA˜ò&&AlLvfRA˜Š'&AlLnfRA˜Ú'&AlLÀifRA˜¢'&AlL€UfRA˜½@(&AlLÀ=fRA˜Â(&AlL.fRA˜ä(&AlL"fRA˜X(&AlLÀfRA˜ô'&AlL€þeRA˜¦'&AlLïeRA˜6(&AlL@éeRA˜–(&AlLÀÜeRA˜â(&AlLÆeRA˜ø(&AlL€¬eRA˜ú(&AlLÀ•eRA˜:)&AlL€ŒeRA˜„)&AlL€eRA˜–)&AlLÀeeRA˜Ä)&AlLÀVeRA˜€ *&AlL`VeRA˜n*&AlLVeRA˜+&AlLGeRA˜€+&AlLÀ`eRA˜j,&AlL@UeRA˜ô,&AlL@ReRA˜8-&AlL@ReRA˜@-&AlLÀ_eRA˜*-&AlLueRA˜Ð,&AlL€{eRA˜ü,&AlL@…eRA˜v-&AlLÀŠeRA˜ð-&AlL@ŠeRA˜ô-&AlL|eRA˜ù-&AlL€xeRA˜.&AlL@ieRA˜X.&AlLÀbeRA˜R/&AlLÀaeRA˜/&AlLÀeeRA˜80&AlLYeRA˜æ0&AlLÀHeRA˜‚1&AlL@LeRA˜ 2&AlLKeRA˜N2&AlL@eRA˜b2&AlLÀ0eRA˜ž2&AlLÀ-eRA˜®2&AlL@eRA˜¶2&AlLÀ eRA˜Š2&AlL€þdRA˜Ž2&AlLìdRA˜€ø2&AlLÀØdRA˜ð3&AlL­dRA˜€4&AlLÀ‘dRA˜ê4&AlLdRA˜€5&AlLà|dRA˜@%5&AlL|dRA˜d5&AlLydRA˜ê5&AlL€dRA˜Þ6&AlLÀ•dRA˜à7&AlL@¬dRA˜€ƒ8&AlL ½dRA˜æ8&AlL@ÇdRA˜€¨9&AlL`ÝdRA˜Â9&AlL@àdRA˜l:&AlL€ødRA˜þ:&AlLeRA˜l;&AlL€,eRA˜Ð;&AlL@>eRA˜<&AlLMeRA¾˜À/<&AlLXeRA˜R<&AlLaeRA˜z<&AlL€peRA˜p<&AlLÀ€eRA˜€w<&AlLÀeRA˜z<&AlLÀ•eRA˜´<&AlL@£eRA˜¿<&AlL¤eRA˜à<&AlL@¦eRA˜ =&AlL@©eRA˜Š=&AlLÀ¥eRA˜þ=&AlL¢eRA˜f>&AlL@œeRA˜ˆ>&AlLPšeRA˜€›>&AlL@™eRA˜Ä>&AlL—eRA˜?&AlL@”eRA˜h?&AlLÀeRA˜€³?&AlLŒeRA˜ü?&AlL€‰eRA˜¦@&AlLeRA˜@A&AlLÀ|eRA˜ÀA&AlL€zeRA˜dB&AlLveRA˜€ÛB&AlLàseRA˜lC&AlL@qeRA˜&D&AlLÀteRA˜ìD&AlLzeRA˜^E&AlL°~eRA˜®E&AlL‚eRA˜NF&AlL@ŽeRA˜cF&AlLPeRA˜¼F&AlL™eRA˜€÷F&AlLÀ¤eRA˜G&AlLªeRA˜dG&AlL@¹eRA˜œG&AlLÏeRA˜ØG&AlLéeRA˜öG&AlLÀÿeRA˜ÚG&AlLÀfRA˜€G&AlL€'fRA˜fG&AlLP/fRA˜gRA˜šN&AlLPgRA˜ŽN&AlLÀagRA˜~N&AlL€tgRA˜ZN&AlLÀŠgRA˜ÞM&AlLÀžgRA˜\M&AlL@®gRA˜øL&AlL@ÁgRA˜ŽL&AlL@ÙgRA˜L&AlLógRA˜šK&AlL@hRA˜üJ&AlLhRA˜€ÙJ&AlL@hRA˜†J&AlLÀ*hRA˜J&AlL€;hRA˜I&AlLÀEhRA˜I&AlLShRA˜èH&AlLÀVhRA˜ÕH&AlL[hRA˜†H&AlL@lhRA˜¤H&AlLÀwhRA˜€I&AlLP…hRA˜lI&AlL“hRA˜nI&AlL@§hRA˜.I&AlL€±hRA˜šI&AlL¸hRA˜J&AlLÇhRA˜pJ&AlL@ßhRA˜BK&AlL@ôhRA˜L&AlL@iRA˜ŒL&AlLiRA˜|L&AlLÀiRA˜€L&AlLÀ(iRA˜ÀqM&AlL0;iRAø®Æ•ÔM&AœT¬ BiRA˜ŒN&AlLÀNiRA˜`O&AlL@fiRA˜êO&AlL€ziRA˜6P&AlLÀ‘iRA˜¢P&AlL€¯iRA˜Q&AlL€ÂiRA˜‚Q&AlLÀÇiRA˜HR&AlLÀ·iRAþÀâRAÀ#ûßq›AÚï@©âRA°cŸ¿é›Ar<à¦âRAPxß‘œA¼&À¦âRAàõj¿1Aº® ¢âRAš¹ÅAàßÀŸâRA Q‹@ŽžAÚï£âRA`ÿIŸA¶6`ŸâRAðþôžŸAšmœâRA ˆ6¿ Ašm “âRAˆ¥€° A*Ê âRAp¿¿¡A$Ú ‰âRAˆ¥€i¡A’} „âRA­<À,¢Ar<@|âRA0?n¢A™`sâRAÀ#ûy¢A(R`lâRAÀq€²¢AlL fâRApãç¾C£A¶6€^âRA ‘Àž«£A(R`\âRAàÚÌ`3¤A! YâRA@Q¿l¤Aº® RâRAàìतA™`KâRAàõj?@¥AnÄ  KâRAÐ5_¦AÚïKâRAˆ¥@¸¦A*Ê GâRA ‘À§A¼&=âRAš¹?L§Ašm4âRAPîü§A’} 4âRAm˜ f¨Ašm4âRAˆ¥ø¨A¶6€.âRA°Fy©AŠ@m†-âRApÚ]_ ©AÚï@)âRAÀq€©A! !âRA@H’©A™€âRA°Zàb©AH“ÀâRAPÿc ¡©Aº®€âRAÀq€ÎªAàß âRA¿Pÿ¹«A–õàâRApÑÓ ¬Aº®€ âRA Q‹€?¬A¶6`ÿáRAàõjc¬Aº®€óáRAàõjÿ¸¬A$Ú éáRA06~à&­A’}€ÝáRA ˆ6ÿV­A! @×áRAPx_®­A¼&ÍáRApÈIàD®AšmÌáRAPîÿÑ®A–õÀÈáRApãç~®¯AnÄ àÁáRApÑÓ?h°A–õ·áRAðþôÞ±°Ašm@²áRAðþôްAnÄ à©áRA`t°AH“à£áRA@H’&°A–õÀ˜áRAÐ5_¯ANƒ@‹áRA°l)_0®AÞg @~áRAPxŸQ­A’}ÀsáRA`?ЬAÞg `eáRA0?@<¬A! YáRApãç~.¬AšmLáRAPîÿC¬A*Ê`AáRA ˆ6H¬A’}À3áRA ‘À:¬Aàß (áRA‘/`p¬A’}ÀáRAàõj?‡¬A(R@ áRA¬Í¾D¬ANÁƒ üàRAˆ¥M¬A(R@õàRAàìàŸ@¬Ašm@òàRA`? ¬A(R@åàRAÀ#û_Õ«AH“ ÕàRA`­«AÞg `ÕàRA°cŸ7«A!àÔàRAÐ5_?ªA’} ÔàRAPÿcà™©AnÄ ÀÒàRAp¿¿ÀE©A™ ÑàRA£CßÙ¨A*Ê`ÑàRA06~ õ§A$ÚàÒàRAðþô^j§A¶6€ÖàRAðþô^ê¦AL àØàRA ¬Ÿ^¦Ar<@ÜàRApÚ]Ÿî¥Ašm ÛàRA‘/ °¥A™€ÚàRAÈÚ^@¥A¼&ÝàRAÀq²¤Ašm ÛàRAš¹ÿa¤A’} ÜàRAš¹Ó£ANƒ@ÛàRAÐ,…¿M£A’} ÜàRA0?€_¢AH“ ÝàRAÐ5¸¡A¼&ÝàRApÚ]_Ë AL ààRAPöÙ€! AÚïãàRA­<PŸA$ÚêàRApã羊žAÞg `íàRA£CßËAšm óàRA06~ .AàßÀ÷àRA06~ ÊœAº® úàRA¶ÆŸAœA!àüàRA­<Þ›A¶6€þàRApÑÓ?v›Aàß áRA°cŸÿ›Aº® áRAm˜ »šANƒ`áRAˆ¥ÀšAÚï áRA°Z`™AÚï áRApÚ]Ÿ‹™AàßÀáRA0?€_™A! @áRAš¹ŘA*Ê€áRAàõjÿñ—A¶6`áRA°cŸ¿>—AàßÀáRAp¿¿@·–A(R@áRA06~ ƒ–Aàß  áRAˆ¥ø•A’}€%áRAp¿¿0•A$Ú )áRAš¹?¾”A’}À+áRApÚ]ŸR”Aàß 0áRA Q‹”ANƒ 4áRAðþôc“AlL€7áRAÐ5ñ’A¶6@8áRA@Q?m’Ašm ;áRApÈI ’Ašm ;áRAàìàßœ‘AnÄ à9áRA v"@‘A(R >áRA06~ ¼Ašm@:áRA ¬Ÿ^ANƒ@;áRA ˆ6¿Ar< =áRA¿P¿ÀA’}€=áRAÀq€2AÞg `=áRAàõj?²ŽAr<@<áRA¿P¿$ŽANƒ`BáRApÚ]ŸRAr<@DáRA ˆ6?—ŒAº® JáRAàõj?ù‹A¼&MáRApÑÓ¿K‹AÚïSáRA­<€lŠAnÄ  [áRAÐ,…ª‰A¼&à]áRA€¨w°ÐˆA–õ báRA Q‹@ªˆAL àháRAÀq€‡ˆAH“àsáRAp¿¿iˆA! @áRAÐ5ß[ˆA! `†áRAm˜ ƒˆAr< áRA°l)_0ˆA¼&ÀžáRAš¹ÿá‡AH“À¤áRA¿P?ˆAàß ¨áRAš¹ÿá‡A’}€­áRA@H’_æ‡A™ ±áRApãç>î†AÚï ÂáRA¤²` †Aà߀éáRAàìàŸù…AÞg €ôáRA`ÿô…AàßÀ÷áRA0?@†AÞg @þáRA@H’ß;†A! `âRA°cŸ?M†A¶6€âRAPöÙÀ}†Aàß  âRAðþôdžAšm,âRAÈÚÞ܆AÚï :âRApãç>î†AH“ EâRA¤² å†A! QâRA¤²àú†AÞg `]âRApÈI Z‡A’}ÀkâRAàÚÌ ž‡A–õàwâRA¤²à%ˆAÞg @†âRAPAÚï“âRAm˜ ¼ˆA¶6@˜âRA v"€B‰Aà߀™âRA0?€&ŠA! @—âRA@H’ŸíŠAÞg `•âRA‘/à~‹A¼&à•âRAˆ¥@ÿ‹A¶6@˜âRA°u³~¯ŒA$Ú ™âRA Q‹À A™ ™âRA v"€‰Ar<à–âRA‘/ ÛAšm “âRA­<ûAº®€“âRAàãVÀ«ŽAþ¨þ¿•âRApÑÓ6AÚï›âRAàÚÌ åAÞg @žâRAPÿc`™Ar<àžâRA06~`'‘AÞg @žâRAPxŸÑ‘AÞg @žâRApãç>R’Aà߀¡âRA­<“A¼&¥âRA¬Í>‹“A*Ê §âRA06~àß“A’} ¬âRApÈI Z”A! @§âRA v"&•A(R@¥âRAàõj¿£•AÞg @¦âRA@Qÿs–AH“ ¥âRA06~à—Aº®€«âRAðþôž—Aà߀±âRAš¹ ˜AL ¸âRA¿Pr˜Ar<à¶âRA v"ÀW™Ar<®âRA¬Í~Ù™A$ÚªâRAþÃâRAÀ#ûßq›AÚï@©âRA°cŸ¿é›Ar<à¦âRAPxß‘œA¼&À¦âRAàõj¿1Aº® ¢âRAš¹ÅAàßÀŸâRA Q‹@ŽžAÚï£âRA`ÿIŸA¶6`ŸâRAðþôžŸAšmœâRA ˆ6¿ Ašm “âRAˆ¥€° A*Ê âRAp¿¿¡A$Ú ‰âRAˆ¥€i¡A’} „âRA­<À,¢Ar<@|âRA0?n¢A™`sâRAÀ#ûy¢A(R`lâRAÀq€²¢AlL fâRApãç¾C£A¶6€^âRA ‘Àž«£A(R`\âRAàÚÌ`3¤A! YâRA@Q¿l¤Aº® RâRAàìतA™`KâRAàõj?@¥AnÄ  KâRAÐ5_¦AÚïKâRAˆ¥@¸¦A*Ê GâRA ‘À§A¼&=âRAš¹?L§Ašm4âRAPîü§A’} 4âRAm˜ f¨Ašm4âRAˆ¥ø¨A¶6€.âRA°Fy©AŠ@m†-âRApÚ]_ ©AÚï@)âRAÀq€©A! !âRA@H’©A™€âRA°Zàb©AH“ÀâRAPÿc ¡©Aº®€âRAÀq€ÎªAàß âRA¿Pÿ¹«A–õàâRApÑÓ ¬Aº®€ âRA Q‹€?¬A¶6`ÿáRAàõjc¬Aº®€óáRAàõjÿ¸¬A$Ú éáRA06~à&­A’}€ÝáRA ˆ6ÿV­A! @×áRAPx_®­A¼&ÍáRApÈIàD®AšmÌáRAPîÿÑ®A–õÀÈáRApãç~®¯AnÄ àÁáRApÑÓ?h°A–õ·áRAðþôÞ±°Ašm@²áRAðþôްAnÄ à©áRA`t°AH“à£áRA@H’&°A–õÀ˜áRAÐ5_¯ANƒ@‹áRA°l)_0®AÞg @~áRAPxŸQ­A’}ÀsáRA`?ЬAÞg `eáRA0?@<¬A! YáRApãç~.¬AšmLáRAPîÿC¬A*Ê`AáRA ˆ6H¬A’}À3áRA ‘À:¬Aàß (áRA‘/`p¬A’}ÀáRAàõj?‡¬A(R@ áRA¬Í¾D¬ANă üàRAˆ¥M¬A(R@õàRAàìàŸ@¬Ašm@òàRA`? ¬A(R@åàRAÀ#û_Õ«AH“ ÕàRA`­«AÞg `ÕàRA°cŸ7«A!àÔàRAÐ5_?ªA’} ÔàRAPÿcà™©AnÄ ÀÒàRAp¿¿ÀE©A™ ÑàRA£CßÙ¨A*Ê`ÑàRA06~ õ§A$ÚàÒàRAðþô^j§A¶6€ÖàRAðþô^ê¦AL àØàRA ¬Ÿ^¦Ar<@ÜàRApÚ]Ÿî¥Ašm ÛàRA‘/ °¥A™€ÚàRAÈÚ^@¥A¼&ÝàRAÀq²¤Ašm ÛàRAš¹ÿa¤A’} ÜàRAš¹Ó£ANƒ@ÛàRAÐ,…¿M£A’} ÜàRA0?€_¢AH“ ÝàRAÐ5¸¡A¼&ÝàRApÚ]_Ë AL ààRAPöÙ€! AÚïãàRA­<PŸA$ÚêàRApã羊žAÞg `íàRA£CßËAšm óàRA06~ .AàßÀ÷àRA06~ ÊœAº® úàRA¶ÆŸAœA!àüàRA­<Þ›A¶6€þàRApÑÓ?v›Aàß áRA°cŸÿ›Aº® áRAm˜ »šANƒ`áRAˆ¥ÀšAÚï áRA°Z`™AÚï áRApÚ]Ÿ‹™AàßÀáRA0?€_™A! @áRAš¹ŘA*Ê€áRAàõjÿñ—A¶6`áRA°cŸ¿>—AàßÀáRAp¿¿@·–A(R@áRA06~ ƒ–Aàß  áRAˆ¥ø•A’}€%áRAp¿¿0•A$Ú )áRAš¹?¾”A’}À+áRApÚ]ŸR”Aàß 0áRA Q‹”ANƒ 4áRAðþôc“AlL€7áRAÐ5ñ’A¶6@8áRA@Q?m’Ašm ;áRApÈI ’Ašm ;áRAàìàßœ‘AnÄ à9áRA v"@‘A(R >áRA06~ ¼Ašm@:áRA ¬Ÿ^ANƒ@;áRA ˆ6¿Ar< =áRA¿P¿ÀA’}€=áRAÀq€2AÞg `=áRAàõj?²ŽAr<@<áRA¿P¿$ŽANƒ`BáRApÚ]ŸRAr<@DáRA ˆ6?—ŒAº® JáRAàõj?ù‹A¼&MáRApÑÓ¿K‹AÚïSáRA­<€lŠAnÄ  [áRAÐ,…ª‰A¼&à]áRA€¨w°ÐˆA–õ báRA Q‹@ªˆAL àháRAÀq€‡ˆAH“àsáRAp¿¿iˆA! @áRAÐ5ß[ˆA! `†áRAm˜ ƒˆAr< áRA°l)_0ˆA¼&ÀžáRAš¹ÿá‡AH“À¤áRA¿P?ˆAàß ¨áRAš¹ÿá‡A’}€­áRA@H’_æ‡A™ ±áRApãç>î†AÚï ÂáRA¤²` †Aà߀éáRAàìàŸù…AÞg €ôáRA`ÿô…AàßÀ÷áRA0?@†AÞg @þáRA@H’ß;†A! `âRA°cŸ?M†A¶6€âRAPöÙÀ}†Aàß  âRAðþôdžAšm,âRAÈÚÞ܆AÚï :âRApãç>î†AH“ EâRA¤² å†A! QâRA¤²àú†AÞg `]âRApÈI Z‡A’}ÀkâRAàÚÌ ž‡A–õàwâRA¤²à%ˆAÞg @†âRAPAÚï“âRAm˜ ¼ˆA¶6@˜âRA v"€B‰Aà߀™âRA0?€&ŠA! @—âRA@H’ŸíŠAÞg `•âRA‘/à~‹A¼&à•âRAˆ¥@ÿ‹A¶6@˜âRA°u³~¯ŒA$Ú ™âRA Q‹À A™ ™âRA v"€‰Ar<à–âRA‘/ ÛAšm “âRA­<ûAº®€“âRAàãVÀ«ŽAþ¨þ¿•âRApÑÓ6AÚï›âRAàÚÌ åAÞg @žâRAPÿc`™Ar<àžâRA06~`'‘AÞg @žâRAPxŸÑ‘AÞg @žâRApãç>R’Aà߀¡âRA­<“A¼&¥âRA¬Í>‹“A*Ê §âRA06~àß“A’} ¬âRApÈI Z”A! @§âRA v"&•A(R@¥âRAàõj¿£•AÞg @¦âRA@Qÿs–AH“ ¥âRA06~à—Aº®€«âRAðþôž—Aà߀±âRAš¹ ˜AL ¸âRA¿Pr˜Ar<à¶âRA v"ÀW™Ar<®âRA¬Í~Ù™A$ÚªâRAþ pp… &U-‰#triggergeometry_columns_f_table_name_insertgeometry_columnsCREATE TRIGGER geometry_columns_f_table_name_insert BEFORE INSERT ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END __…'U-‰Etriggergeometry_columns_f_table_name_updategeometry_columnsCREATE TRIGGER geometry_columns_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END CC…:(_-‰striggergeometry_columns_f_geometry_column_insertgeometry_columnsCREATE TRIGGER geometry_columns_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END --…P)_-Štriggergeometry_columns_f_geometry_column_updategeometry_columnsCREATE TRIGGER geometry_columns_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END åå„*W-‡7triggergeometry_columns_geometry_type_insertgeometry_columnsCREATE TRIGGER geometry_columns_geometry_type_insert BEFORE INSERT ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'geometry_type must be one of 0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007') WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007)); END ³³á„++W-‡]triggergeometry_columns_geometry_type_updategeometry_columnsCREATE TRIGGER geometry_columns_geometry_type_update BEFORE UPDATE OF 'geometry_type' ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'geometry_type must be one of 0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007') WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007)); END‚,[-ƒ;triggergeometry_columns_coord_dimension_insertgeometry_columnsCREATE TRIGGER geometry_columns_coord_dimension_insert BEFORE INSERT ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4') WHERE NOT(NEW.coord_dimension IN (2,3,4)); END ††º‚1-[-ƒetriggergeometry_columns_coord_dimension_updategeometry_columnsCREATE TRIGGER geometry_columns_coord_dimension_update BEFORE UPDATE OF 'coord_dimension' ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4') WHERE NOT(NEW.coord_dimension IN (2,3,4)); END‚C.//„9viewgeom_cols_ref_sysgeom_cols_ref_sysCREATE VIEW geom_cols_ref_sys AS SELECT f_table_name, f_geometry_column, geometry_type, coord_dimension, spatial_ref_sys.srid AS srid, auth_name, auth_srid, ref_sys_name, proj4text, srtext FROM geometry_columns, spatial_ref_sys WHERE geometry_columns.srid = spatial_ref_sys.srid ……„x/79‰ triggervwgc_view_name_insertviews_geometry_columnsCREATE TRIGGER vwgc_view_name_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END ww…079‰'triggervwgc_view_name_updateviews_geometry_columnsCREATE TRIGGER vwgc_view_name_update BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END aa…1?9‰Ktriggervwgc_view_geometry_insertviews_geometry_columnsCREATE TRIGGER vwgc_view_geometry_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END NN…/2?9‰qtriggervwgc_view_geometry_updateviews_geometry_columnsCREATE TRIGGER vwgc_view_geometry_update BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END ff…399‰Gtriggervwgc_view_rowid_updateviews_geometry_columnsCREATE TRIGGER vwgc_view_rowid_update BEFORE UPDATE OF 'view_rowid' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_rowid value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_rowid value must not contain a double quote') WHERE NEW.view_rowid LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_rowid value must be lower case') WHERE NEW.view_rowid <> lower(NEW.view_rowid); END ||…499‰triggervwgc_view_rowid_insertviews_geometry_columnsCREATE TRIGGER vwgc_view_rowid_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_rowid value must not contain a single quote') WHERE NEW.view_rowid LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_rowid value must not contain a double quote') WHERE NEW.view_rowid LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_rowid value must be lower case') WHERE NEW.view_rowid <> lower(NEW.view_rowid); END jj…5=9‰;triggervwgc_f_table_name_insertviews_geometry_columnsCREATE TRIGGER vwgc_f_table_name_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END YY…$6=9‰]triggervwgc_f_table_name_updateviews_geometry_columnsCREATE TRIGGER vwgc_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END ==…@7G9Š triggervwgc_f_geometry_column_insertviews_geometry_columnsCREATE TRIGGER vwgc_f_geometry_column_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END ''…V8G9Š7triggervwgc_f_geometry_column_updateviews_geometry_columnsCREATE TRIGGER vwgc_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END ……„x979‰ triggervtgc_virt_name_insertvirts_geometry_columnsCREATE TRIGGER vtgc_virt_name_insert BEFORE INSERT ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END ww…:79‰'triggervtgc_virt_name_updatevirts_geometry_columnsCREATE TRIGGER vtgc_virt_name_update BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END aa…;?9‰Ktriggervtgc_virt_geometry_insertvirts_geometry_columnsCREATE TRIGGER vtgc_virt_geometry_insert BEFORE INSERT ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END NN…/<?9‰qtriggervtgc_virt_geometry_updatevirts_geometry_columnsCREATE TRIGGER vtgc_virt_geometry_update BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END ññ„ =?9‡+triggervtgc_geometry_type_insertvirts_geometry_columnsCREATE TRIGGER vtgc_geometry_type_insert BEFORE INSERT ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'geometry_type must be one of 0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007') WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007)); END ËËí„>?9‡Qtriggervtgc_geometry_type_updatevirts_geometry_columnsCREATE TRIGGER vtgc_geometry_type_update BEFORE UPDATE OF 'geometry_type' ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'geometry_type must be one of 0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007') WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007)); END‚?C9ƒ/triggervtgc_coord_dimension_insertvirts_geometry_columnsCREATE TRIGGER vtgc_coord_dimension_insert BEFORE INSERT ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4') WHERE NOT(NEW.coord_dimension IN (2,3,4)); END ++S‚%@C9ƒYtriggervtgc_coord_dimension_updatevirts_geometry_columnsCREATE TRIGGER vtgc_coord_dimension_update BEFORE UPDATE OF 'coord_dimension' ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4') WHERE NOT(NEW.coord_dimension IN (2,3,4)); END…*A;C‰atriggergcs_f_table_name_insertgeometry_columns_statisticsCREATE TRIGGER gcs_f_table_name_insert BEFORE INSERT ON 'geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END BB…;B;CŠtriggergcs_f_table_name_updategeometry_columns_statisticsCREATE TRIGGER gcs_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END &&…WCECŠ1triggergcs_f_geometry_column_insertgeometry_columns_statisticsCREATE TRIGGER gcs_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END …mDECŠ]triggergcs_f_geometry_column_updategeometry_columns_statisticsCREATE TRIGGER gcs_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END LL…1E9O‰etriggervwgcs_view_name_insertviews_geometry_columns_statisticsCREATE TRIGGER vwgcs_view_name_insert BEFORE INSERT ON 'views_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END >>…?F9OŠtriggervwgcs_view_name_updateviews_geometry_columns_statisticsCREATE TRIGGER vwgcs_view_name_update BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END ((…UGAOŠ%triggervwgcs_view_geometry_insertviews_geometry_columns_statisticsCREATE TRIGGER vwgcs_view_geometry_insert BEFORE INSERT ON 'views_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END …hHAOŠKtriggervwgcs_view_geometry_updateviews_geometry_columns_statisticsCREATE TRIGGER vwgcs_view_geometry_update BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END LL…1I9O‰etriggervtgcs_virt_name_insertvirts_geometry_columns_statisticsCREATE TRIGGER vtgcs_virt_name_insert BEFORE INSERT ON 'virts_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END >>…?J9OŠtriggervtgcs_virt_name_updatevirts_geometry_columns_statisticsCREATE TRIGGER vtgcs_virt_name_update BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END ((…UKAOŠ%triggervtgcs_virt_geometry_insertvirts_geometry_columns_statisticsCREATE TRIGGER vtgcs_virt_geometry_insert BEFORE INSERT ON 'virts_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END …hLAOŠKtriggervtgcs_virt_geometry_updatevirts_geometry_columns_statisticsCREATE TRIGGER vtgcs_virt_geometry_update BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END LL…1M=E‰ktriggergcfi_f_table_name_insertgeometry_columns_field_infosCREATE TRIGGER gcfi_f_table_name_insert BEFORE INSERT ON 'geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END ;;…BN=EŠ triggergcfi_f_table_name_updategeometry_columns_field_infosCREATE TRIGGER gcfi_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END …^OGEŠ;triggergcfi_f_geometry_column_insertgeometry_columns_field_infosCREATE TRIGGER gcfi_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END   …tPGEŠgtriggergcfi_f_geometry_column_updategeometry_columns_field_infosCREATE TRIGGER gcfi_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END EE…8Q;Q‰otriggervwgcfi_view_name_insertviews_geometry_columns_field_infosCREATE TRIGGER vwgcfi_view_name_insert BEFORE INSERT ON 'views_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END 77…FR;QŠ triggervwgcfi_view_name_updateviews_geometry_columns_field_infosCREATE TRIGGER vwgcfi_view_name_update BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END !!…\SCQŠ/triggervwgcfi_view_geometry_insertviews_geometry_columns_field_infosCREATE TRIGGER vwgcfi_view_geometry_insert BEFORE INSERT ON 'views_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END …oTCQŠUtriggervwgcfi_view_geometry_updateviews_geometry_columns_field_infosCREATE TRIGGER vwgcfi_view_geometry_update BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END EE…8U;Q‰otriggervtgcfi_virt_name_insertvirts_geometry_columns_field_infosCREATE TRIGGER vtgcfi_virt_name_insert BEFORE INSERT ON 'virts_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END 77…FV;QŠ triggervtgcfi_virt_name_updatevirts_geometry_columns_field_infosCREATE TRIGGER vtgcfi_virt_name_update BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END !!…\WCQŠ/triggervtgcfi_virt_geometry_insertvirts_geometry_columns_field_infosCREATE TRIGGER vtgcfi_virt_geometry_insert BEFORE INSERT ON 'virts_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END …oXCQŠUtriggervtgcfi_virt_geometry_updatevirts_geometry_columns_field_infosCREATE TRIGGER vtgcfi_virt_geometry_update BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END oo…Y=7‰3triggergctm_f_table_name_insertgeometry_columns_timeCREATE TRIGGER gctm_f_table_name_insert BEFORE INSERT ON 'geometry_columns_time' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END ^^…Z=7‰Utriggergctm_f_table_name_updategeometry_columns_timeCREATE TRIGGER gctm_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_time' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END BB…;[G7Štriggergctm_f_geometry_column_insertgeometry_columns_timeCREATE TRIGGER gctm_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns_time' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END ,,…Q\G7Š/triggergctm_f_geometry_column_updategeometry_columns_timeCREATE TRIGGER gctm_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_time' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END oo…]=7‰3triggergcau_f_table_name_insertgeometry_columns_authCREATE TRIGGER gcau_f_table_name_insert BEFORE INSERT ON 'geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END ^^…^=7‰Utriggergcau_f_table_name_updategeometry_columns_authCREATE TRIGGER gcau_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END BB…;_G7Štriggergcau_f_geometry_column_insertgeometry_columns_authCREATE TRIGGER gcau_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END ,,…Q`G7Š/triggergcau_f_geometry_column_updategeometry_columns_authCREATE TRIGGER gcau_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END hh…a;C‰7triggervwgcau_view_name_insertviews_geometry_columns_authCREATE TRIGGER vwgcau_view_name_insert BEFORE INSERT ON 'views_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END ZZ…#b;C‰Striggervwgcau_view_name_updateviews_geometry_columns_authCREATE TRIGGER vwgcau_view_name_update BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END DD…9cCC‰wtriggervwgcau_view_geometry_insertviews_geometry_columns_authCREATE TRIGGER vwgcau_view_geometry_insert BEFORE INSERT ON 'views_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END 00…MdCCŠtriggervwgcau_view_geometry_updateviews_geometry_columns_authCREATE TRIGGER vwgcau_view_geometry_update BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END hh…e;C‰7triggervtgcau_virt_name_insertvirts_geometry_columns_authCREATE TRIGGER vtgcau_virt_name_insert BEFORE INSERT ON 'virts_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END ZZ…#f;C‰Striggervtgcau_virt_name_updatevirts_geometry_columns_authCREATE TRIGGER vtgcau_virt_name_update BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END DD…9gCC‰wtriggervtgcau_virt_geometry_insertvirts_geometry_columns_authCREATE TRIGGER vtgcau_virt_geometry_insert BEFORE INSERT ON 'virts_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END 11…LhCCŠtriggervtgcau_virt_geometry_updatevirts_geometry_columns_authCREATE TRIGGER vtgcau_virt_geometry_update BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END --‡Pi''Žcviewvector_layersvector_layersCREATE VIEW vector_layers AS SELECT 'SpatialTable' AS layer_type, f_table_name AS table_name, f_geometry_column AS geometry_column, geometry_type AS geometry_type, coord_dimension AS coord_dimension, srid AS srid, spatial_index_enabled AS spatial_index_enabled FROM geometry_columns UNION SELECT 'SpatialView' AS layer_type, a.view_name AS table_name, a.view_geometry AS geometry_column, b.geometry_type AS geometry_type, b.coord_dimension AS coord_dimension, b.srid AS srid, b.spatial_index_enabled AS spatial_index_enabled FROM views_geometry_columns AS a LEFT JOIN geometry_columns AS b ON (Upper(a.f_table_name) = Upper(b.f_table_name) AND Upper(a.f_geometry_column) = Upper(b.f_geometry_column)) UNION SELECT 'VirtualShape' AS layer_type, virt_name AS table_name, virt_geometry AS geometry_column, geometry_type AS geometry_type, coord_dimension AS coord_dimension, srid AS srid, 0 AS spatial_index_enabled FROM virts_geometry_columns ®ˆk==7viewvector_layers_statisticsvector_layers_statisticsCREATE VIEW vector_layers_statistics AS SELE…aj11Šqviewvector_layers_authvector_layers_authCREATE VIEW vector_layers_auth AS SELECT 'SpatialTable' AS layer_type, f_table_name AS table_name, f_geometry_column AS geometry_column, read_only AS read_only, hidden AS hidden FROM geometry_columns_auth UNION SELECT 'SpatialView' AS layer_type, a.view_name AS table_name, a.view_geometry AS geometry_column, b.read_only AS read_only, a.hidden AS hidden FROM views_geometry_columns_auth AS a JOIN views_geometry_columns AS b ON (Upper(a.view_name) = Upper(b.view_name) AND Upper(a.view_geometry) = Upper(b.view_geometry)) UNION SELECT 'VirtualShape' AS layer_type, virt_name AS table_name, virt_geometry AS geometry_column, 1 AS read_only, hidden AS hidden FROM virts_geometry_columns_authCT 'SpatialTable' AS layer_type, f_table_name AS table_name, f_geometry_column AS geometry_column, last_verified AS last_verified, row_count AS row_count, extent_min_x AS extent_min_x, extent_min_y AS extent_min_y, extent_max_x AS extent_max_x, extent_max_y AS extent_max_y FROM geometry_columns_statistics UNION SELECT 'SpatialView' AS layer_type, view_name AS table_name, view_geometry AS geometry_column, last_verified AS last_verified, row_count AS row_count, extent_min_x AS extent_min_x, extent_min_y AS extent_min_y, extent_max_x AS extent_max_x, extent_max_y AS extent_max_y FROM views_geometry_columns_statistics UNION SELECT 'VirtualShape' AS layer_type, virt_name AS table_name, virt_geometry AS geometry_column, last_verified AS last_verified, row_count AS row_count, extent_min_x AS extent_min_x, extent_min_y AS extent_min_y, extent_max_x AS extent_max_x, extent_max_y AS extent_max_y FROM virts_geometry_columns_statisticser_max, double_min AS double_min, double_max double_max FROM geometry_columns_field_infos UNION SELECT 'SpatialView' AS layer_type, view_name AS table_name, view_geometry AS geometry_column, ordinal AS ordinal, column_name AS column_name, null_values AS null_values, integer_values AS integer_values, double_values AS double_values, text_values AS text_values, blob_values AS blob_values, max_size AS max_size, integer_min AS integer_min, integer_max AS integer_max, double_min AS double_min, double_max double_max FROM views_geometry_columns_field_infos UNION SELECT 'VirtualShape' AS layer_type, virt_name AS table_name, virt_geometry AS geometry_column, ordinal AS ordinal, column_name AS column_name, null_values AS null_values, integer_values AS integer_values, double_values AS double_values, text_values AS text_values, blob_values AS blob_values, max_size AS max_size, integer_min AS integer_min, integer_max AS integer_max, double_min AS double_min, double_max double_max FROM virts_geometry_columns_field_infos OO½ˆk==7viewvector_layers_statisticsvector_layers_statisticsCREATE VIEW vector_layers_statistics AS SELE‹Ul??–=viewvector_layers_field_infosvector_layers_field_infosCREATE VIEW vector_layers_field_infos AS SELECT 'SpatialTable' AS layer_type, f_table_name AS table_name, f_geometry_column AS geometry_column, ordinal AS ordinal, column_name AS column_name, null_values AS null_values, integer_values AS integer_values, double_values AS double_values, text_values AS text_values, blob_values AS blob_values, max_size AS max_size, integer_min AS integer_min, integer_max AS integam%%tableSpatialIndexSpatialIndexCREATE VIRTUAL TABLE SpatialIndex USING VirtualSpatialIndex() €€@ƒ=n3†9triggerggi_comuni_GeometrycomuniCREATE TRIGGER "ggi_comuni_Geometry" BEFORE INSERT ON "comuni" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'comuni.Geometry violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('comuni') AND Lower(f_geometry_column) = Lower('Geometry') AND GeometryConstraints(NEW."Geometry", geometry_type, srid) = 1) IS NULL; ENDƒ=o3†9triggerggu_comuni_GeometrycomuniCREATE TRIGGER "ggu_comuni_Geometry" BEFORE UPDATE ON "comuni" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'comuni.Geometry violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('comuni') AND Lower(f_geometry_column) = Lower('Geometry') AND GeometryConstraints(NEW."Geometry", geometry_type, srid) = 1) IS NULL; END mÏžm‚.r3„triggertmd_comuni_GeometrycomuniCREATE TRIGGER "tmd_comuni_Geometry" AFTER DELETE ON "comuni" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('comuni') AND Lower(f_geometry_column) = Lower('Geometry'); END‚.q3„triggertmi_comuni_GeometrycomuniCREATE TRIGGER "tmi_comuni_Geometry" AFTER INSERT ON "comuni" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('comuni') AND Lower(f_geometry_column) = Lower('Geometry'); END‚.p3„triggertmu_comuni_GeometrycomuniCREATE TRIGGER "tmu_comuni_Geometry" AFTER UPDATE ON "comuni" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('comuni') AND Lower(f_geometry_column) = Lower('Geometry'); ENDlibspatialite-4.3.0a/test/shape_3d.c0000664000175000017500000001427412544707704014263 00000000000000/* shape_3d.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" void cleanup_shapefile (const char *filename) { char nam[1000]; if (!filename) { return; } snprintf (nam, 1000, "%s.dbf", filename); unlink (nam); snprintf (nam, 1000, "%s.prj", filename); unlink (nam); snprintf (nam, 1000, "%s.shp", filename); unlink (nam); snprintf (nam, 1000, "%s.shx", filename); unlink (nam); } int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *dumpname = __FILE__ "dump"; char *err_msg = NULL; int row_count; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } ret = load_shapefile (handle, "./shp/merano-3d/points", "points", "CP1252", 25832, "col1", 0, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/merano-3d/points: %s\n", err_msg); sqlite3_close (handle); return -3; } if (row_count != 20) { fprintf (stderr, "unexpected row count for shp/merano-3d/points: %i\n", row_count); sqlite3_close (handle); return -4; } ret = load_shapefile (handle, "./shp/merano-3d/polygons", "polygons", "CP1252", 25832, "col1", 0, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/merano-3d/polygons: %s\n", err_msg); sqlite3_close (handle); return -5; } if (row_count != 10) { fprintf (stderr, "unexpected row count for shp/merano-3d/polygons: %i\n", row_count); sqlite3_close (handle); return -6; } ret = load_shapefile (handle, "./shp/merano-3d/roads", "roads", "CP1252", 25832, "col1", 0, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/merano-3d/roads: %s\n", err_msg); sqlite3_close (handle); return -7; } if (row_count != 18) { fprintf (stderr, "unexpected row count for shp/merano-3d/roads: %i\n", row_count); sqlite3_close (handle); return -8; } ret = dump_shapefile (handle, "roads", "col1", dumpname, "CP1252", "LINESTRING", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for 3d roads: %s\n", err_msg); sqlite3_close (handle); return -9; } cleanup_shapefile (dumpname); if (row_count != 18) { fprintf (stderr, "unexpected row count for 3d roads: %i\n", row_count); sqlite3_close (handle); return -10; } ret = dump_shapefile (handle, "polygons", "col1", dumpname, "CP1252", "POLYGON", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for 3d polygons: %s\n", err_msg); sqlite3_close (handle); return -11; } cleanup_shapefile (dumpname); if (row_count != 10) { fprintf (stderr, "unexpected row count for 3d polygons: %i\n", row_count); sqlite3_close (handle); return -12; } ret = dump_shapefile (handle, "points", "col1", dumpname, "CP1252", "POINT", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for 3d points: %s\n", err_msg); sqlite3_close (handle); return -13; } cleanup_shapefile (dumpname); if (row_count != 20) { fprintf (stderr, "unexpected row count for 3d points: %i\n", row_count); sqlite3_close (handle); return -14; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -15; } spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/linked.dxf0000664000175000017500000017710012544707704014400 00000000000000 0 SECTION 2 HEADER 9 $ACADVER 1 AC1015 9 $ACADMAINTVER 70 20 9 $DWGCODEPAGE 3 ANSI_1252 9 $INSBASE 10 0.0 20 0.0 30 0.0 9 $EXTMIN 10 672969.77 20 4860404.25 30 0.0 9 $EXTMAX 10 675545.0 20 4861382.92 30 139.97 9 $LIMMIN 10 0.0 20 0.0 9 $LIMMAX 10 420.0 20 297.0 9 $ORTHOMODE 70 0 9 $REGENMODE 70 1 9 $FILLMODE 70 1 9 $QTEXTMODE 70 0 9 $MIRRTEXT 70 0 9 $LTSCALE 40 1.0 9 $ATTMODE 70 1 9 $TEXTSIZE 40 2.5 9 $TRACEWID 40 1.0 9 $TEXTSTYLE 7 romans 9 $CLAYER 8 0 9 $CELTYPE 6 ByLayer 9 $CECOLOR 62 256 9 $CELTSCALE 40 1.0 9 $DISPSILH 70 0 9 $DIMSCALE 40 1.0 9 $DIMASZ 40 2.5 9 $DIMEXO 40 0.625 9 $DIMDLI 40 3.75 9 $DIMRND 40 0.0 9 $DIMDLE 40 0.0 9 $DIMEXE 40 1.25 9 $DIMTP 40 0.0 9 $DIMTM 40 0.0 9 $DIMTXT 40 2.5 9 $DIMCEN 40 2.5 9 $DIMTSZ 40 0.0 9 $DIMTOL 70 0 9 $DIMLIM 70 0 9 $DIMTIH 70 0 9 $DIMTOH 70 0 9 $DIMSE1 70 0 9 $DIMSE2 70 0 9 $DIMTAD 70 1 9 $DIMZIN 70 8 9 $DIMBLK 1 9 $DIMASO 70 1 9 $DIMSHO 70 1 9 $DIMPOST 1 9 $DIMAPOST 1 9 $DIMALT 70 0 9 $DIMALTD 70 3 9 $DIMALTF 40 0.03937007874016 9 $DIMLFAC 40 1.0 9 $DIMTOFL 70 1 9 $DIMTVP 40 0.0 9 $DIMTIX 70 0 9 $DIMSOXD 70 0 9 $DIMSAH 70 0 9 $DIMBLK1 1 9 $DIMBLK2 1 9 $DIMSTYLE 2 ISO-25 9 $DIMCLRD 70 0 9 $DIMCLRE 70 0 9 $DIMCLRT 70 0 9 $DIMTFAC 40 1.0 9 $DIMGAP 40 0.625 9 $DIMJUST 70 0 9 $DIMSD1 70 0 9 $DIMSD2 70 0 9 $DIMTOLJ 70 0 9 $DIMTZIN 70 8 9 $DIMALTZ 70 0 9 $DIMALTTZ 70 0 9 $DIMUPT 70 0 9 $DIMDEC 70 2 9 $DIMTDEC 70 2 9 $DIMALTU 70 2 9 $DIMALTTD 70 3 9 $DIMTXSTY 7 Standard 9 $DIMAUNIT 70 0 9 $DIMADEC 70 0 9 $DIMALTRND 40 0.0 9 $DIMAZIN 70 0 9 $DIMDSEP 70 44 9 $DIMATFIT 70 3 9 $DIMFRAC 70 0 9 $DIMLDRBLK 1 9 $DIMLUNIT 70 2 9 $DIMLWD 70 -2 9 $DIMLWE 70 -2 9 $DIMTMOVE 70 0 9 $LUNITS 70 2 9 $LUPREC 70 4 9 $SKETCHINC 40 1.0 9 $FILLETRAD 40 0.0 9 $AUNITS 70 0 9 $AUPREC 70 0 9 $MENU 1 . 9 $ELEVATION 40 0.0 9 $PELEVATION 40 0.0 9 $THICKNESS 40 0.0 9 $LIMCHECK 70 0 9 $CHAMFERA 40 0.0 9 $CHAMFERB 40 0.0 9 $CHAMFERC 40 0.0 9 $CHAMFERD 40 0.0 9 $SKPOLY 70 0 9 $TDCREATE 40 2456262.062314271 9 $TDUCREATE 40 2456261.978980938 9 $TDUPDATE 40 2456409.797222755 9 $TDUUPDATE 40 2456409.713889422 9 $TDINDWG 40 0.0612841898 9 $TDUSRTIMER 40 0.0612841898 9 $USRTIMER 70 1 9 $ANGBASE 50 0.0 9 $ANGDIR 70 0 9 $PDMODE 70 2 9 $PDSIZE 40 0.5 9 $PLINEWID 40 0.0 9 $SPLFRAME 70 0 9 $SPLINETYPE 70 6 9 $SPLINESEGS 70 8 9 $HANDSEED 5 AF7 9 $SURFTAB1 70 6 9 $SURFTAB2 70 6 9 $SURFTYPE 70 6 9 $SURFU 70 6 9 $SURFV 70 6 9 $UCSBASE 2 9 $UCSNAME 2 9 $UCSORG 10 0.0 20 0.0 30 0.0 9 $UCSXDIR 10 1.0 20 0.0 30 0.0 9 $UCSYDIR 10 0.0 20 1.0 30 0.0 9 $UCSORTHOREF 2 9 $UCSORTHOVIEW 70 0 9 $UCSORGTOP 10 0.0 20 0.0 30 0.0 9 $UCSORGBOTTOM 10 0.0 20 0.0 30 0.0 9 $UCSORGLEFT 10 0.0 20 0.0 30 0.0 9 $UCSORGRIGHT 10 0.0 20 0.0 30 0.0 9 $UCSORGFRONT 10 0.0 20 0.0 30 0.0 9 $UCSORGBACK 10 0.0 20 0.0 30 0.0 9 $PUCSBASE 2 9 $PUCSNAME 2 9 $PUCSORG 10 0.0 20 0.0 30 0.0 9 $PUCSXDIR 10 1.0 20 0.0 30 0.0 9 $PUCSYDIR 10 0.0 20 1.0 30 0.0 9 $PUCSORTHOREF 2 9 $PUCSORTHOVIEW 70 0 9 $PUCSORGTOP 10 0.0 20 0.0 30 0.0 9 $PUCSORGBOTTOM 10 0.0 20 0.0 30 0.0 9 $PUCSORGLEFT 10 0.0 20 0.0 30 0.0 9 $PUCSORGRIGHT 10 0.0 20 0.0 30 0.0 9 $PUCSORGFRONT 10 0.0 20 0.0 30 0.0 9 $PUCSORGBACK 10 0.0 20 0.0 30 0.0 9 $USERI1 70 0 9 $USERI2 70 0 9 $USERI3 70 0 9 $USERI4 70 0 9 $USERI5 70 0 9 $USERR1 40 0.0 9 $USERR2 40 0.0 9 $USERR3 40 0.0 9 $USERR4 40 0.0 9 $USERR5 40 0.0 9 $WORLDVIEW 70 1 9 $SHADEDGE 70 3 9 $SHADEDIF 70 70 9 $TILEMODE 70 1 9 $MAXACTVP 70 64 9 $PINSBASE 10 0.0 20 0.0 30 0.0 9 $PLIMCHECK 70 0 9 $PEXTMIN 10 0.0 20 0.0 30 0.0 9 $PEXTMAX 10 0.0 20 0.0 30 0.0 9 $PLIMMIN 10 0.0 20 0.0 9 $PLIMMAX 10 12.0 20 9.0 9 $UNITMODE 70 0 9 $VISRETAIN 70 1 9 $PLINEGEN 70 0 9 $PSLTSCALE 70 1 9 $TREEDEPTH 70 3020 9 $CMLSTYLE 2 Standard 9 $CMLJUST 70 0 9 $CMLSCALE 40 20.0 9 $PROXYGRAPHICS 70 1 9 $MEASUREMENT 70 1 9 $CELWEIGHT 370 -1 9 $ENDCAPS 280 0 9 $JOINSTYLE 280 0 9 $LWDISPLAY 290 0 9 $INSUNITS 70 4 9 $HYPERLINKBASE 1 9 $STYLESHEET 1 9 $XEDIT 290 1 9 $CEPSNTYPE 380 0 9 $PSTYLEMODE 290 1 9 $FINGERPRINTGUID 2 {FDEAD578-A652-11D2-9A35-0060089B3A3F} 9 $VERSIONGUID 2 {930FB465-C28D-4FEE-99FE-12C9CCA164C6} 9 $EXTNAMES 290 1 9 $PSVPSCALE 40 0.0 9 $OLESTARTUP 290 0 0 ENDSEC 0 SECTION 2 CLASSES 0 CLASS 1 ACDBDICTIONARYWDFLT 2 AcDbDictionaryWithDefault 3 ObjectDBX Classes 90 0 280 0 281 0 0 CLASS 1 ACDBPLACEHOLDER 2 AcDbPlaceHolder 3 ObjectDBX Classes 90 0 280 0 281 0 0 CLASS 1 LAYOUT 2 AcDbLayout 3 ObjectDBX Classes 90 0 280 0 281 0 0 CLASS 1 DICTIONARYVAR 2 AcDbDictionaryVar 3 ObjectDBX Classes 90 0 280 0 281 0 0 CLASS 1 MATERIAL 2 AcDbMaterial 3 ObjectDBX Classes 90 32768 280 0 281 0 0 ENDSEC 0 SECTION 2 TABLES 0 TABLE 2 VPORT 5 19 330 0 100 AcDbSymbolTable 70 2 0 VPORT 5 AEF 330 19 100 AcDbSymbolTableRecord 100 AcDbViewportTableRecord 2 *Active 70 0 10 0.0 20 0.0 11 1.0 21 1.0 12 674273.3755786976 22 4860957.893425077 13 0.0 23 0.0 14 10.0 24 10.0 15 10.0 25 10.0 16 0.0 26 0.0 36 1.0 17 0.0 27 0.0 37 0.0 40 1679.347345922142 41 2.135029354207436 42 50.0 43 0.0 44 0.0 50 0.0 51 0.0 71 0 72 1000 73 1 74 3 75 0 76 0 77 0 78 0 281 0 65 1 110 0.0 120 0.0 130 0.0 111 1.0 121 0.0 131 0.0 112 0.0 122 1.0 132 0.0 79 0 146 0.0 0 ENDTAB 0 TABLE 2 LTYPE 5 14 330 0 100 AcDbSymbolTable 70 1 0 LTYPE 5 15 330 14 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 ByBlock 70 0 3 72 65 73 0 40 0.0 0 LTYPE 5 16 330 14 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 ByLayer 70 0 3 72 65 73 0 40 0.0 0 LTYPE 5 8 330 14 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 Continuous 70 0 3 Solid line 72 65 73 0 40 0.0 0 ENDTAB 0 TABLE 2 LAYER 5 10 330 0 100 AcDbSymbolTable 70 2 0 LAYER 5 6B537 102 {ACAD_XDICTIONARY 360 6D825 102 } 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 P020208 70 0 62 7 6 Continuous 370 -3 390 F 347 6C8 0 LAYER 5 1AF9 102 {ACAD_XDICTIONARY 360 6D7B5 102 } 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 A010101 70 0 62 7 6 Continuous 370 -3 390 F 347 6C8 0 LAYER 5 11F2 102 {ACAD_XDICTIONARY 360 6D7B1 102 } 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 T080201_1004 70 0 62 7 6 Continuous 370 -3 390 F 347 6C8 0 LAYER 5 4 330 10 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 0 70 0 62 7 6 Continuous 370 -3 390 5 0 LAYER 5 28 330 10 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 A020206_entra_esci_1 70 0 62 3 6 Continuous 370 -3 390 5 0 ENDTAB 0 TABLE 2 STYLE 5 11 330 0 100 AcDbSymbolTable 70 2 0 STYLE 5 12 330 11 100 AcDbSymbolTableRecord 100 AcDbTextStyleTableRecord 2 Standard 70 0 40 0.0 41 1.0 50 0.0 71 0 42 2.5 3 txt 4 0 STYLE 5 24 330 11 100 AcDbSymbolTableRecord 100 AcDbTextStyleTableRecord 2 romans 70 0 40 0.0 41 0.9 50 0.0 71 0 42 2.5 3 romans.shx 4 0 ENDTAB 0 TABLE 2 VIEW 5 17 330 0 100 AcDbSymbolTable 70 0 0 ENDTAB 0 TABLE 2 UCS 5 18 330 0 100 AcDbSymbolTable 70 0 0 ENDTAB 0 TABLE 2 APPID 5 1B 330 0 100 AcDbSymbolTable 70 5 0 APPID 5 1C 330 1B 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 ACAD 70 0 0 APPID 5 49 330 1B 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 SHP_NREC 70 0 0 APPID 5 4A 330 1B 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 SHP_FLDDSC 70 0 0 APPID 5 4B 330 1B 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 SHP_FLDVAL 70 0 0 APPID 5 AE9 330 1B 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 PIDXPTOWER 70 0 0 ENDTAB 0 TABLE 2 DIMSTYLE 5 1D 330 0 100 AcDbSymbolTable 70 1 100 AcDbDimStyleTable 71 0 0 DIMSTYLE 105 26 330 1D 100 AcDbSymbolTableRecord 100 AcDbDimStyleTableRecord 2 ISO-25 70 0 41 2.5 42 0.625 43 3.75 44 1.25 73 0 74 0 77 1 78 8 140 2.5 141 2.5 143 0.03937007874016 147 0.625 171 3 172 1 271 2 272 2 274 3 278 44 283 0 284 8 340 12 0 ENDTAB 0 TABLE 2 BLOCK_RECORD 5 1 330 0 100 AcDbSymbolTable 70 0 0 BLOCK_RECORD 5 2 330 1 100 AcDbSymbolTableRecord 100 AcDbBlockTableRecord 2 *Model_Space 340 A 0 BLOCK_RECORD 5 C 330 1 100 AcDbSymbolTableRecord 100 AcDbBlockTableRecord 2 *Paper_Space 340 F 0 ENDTAB 0 ENDSEC 0 SECTION 2 BLOCKS 0 BLOCK 5 3 330 2 100 AcDbEntity 8 0 100 AcDbBlockBegin 2 *Model_Space 70 0 10 0.0 20 0.0 30 0.0 3 *Model_Space 1 0 ENDBLK 5 9 330 2 100 AcDbEntity 8 0 100 AcDbBlockEnd 0 BLOCK 5 D 330 C 100 AcDbEntity 67 1 8 0 100 AcDbBlockBegin 2 *Paper_Space 70 0 10 0.0 20 0.0 30 0.0 3 *Paper_Space 1 0 ENDBLK 5 E 330 C 100 AcDbEntity 67 1 8 0 100 AcDbBlockEnd 0 ENDSEC 0 SECTION 2 ENTITIES 0 POLYLINE 5 21E 330 2 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDb3dPolyline 66 1 10 0.0 20 0.0 30 0.0 70 9 1001 SHP_NREC 1000 54|A020206 1001 SHP_FLDDSC 1000 OBJECTID|N|9|0;ID_ZRIL|C|12|0;AATT_TY|C|10|0;GC_CODICE|C|8|0;LIV|N|4|0;FID_|N|9|0;Classe|C|8|0;ID_Poly_FT|C|20|0;Descrizion|C|250|0;COD_Pol_FT|C|20|0;Flag_Mod|C|1|0;FeatureID|C|20|0;Origine|C|8|0;COD_ORIG|C|8|0;Shape_Leng|F|19|11;Shape_Area|F|19|11;Rip|N 1001 SHP_FLDVAL 1000 26 06 C26005 0 0020206 0 VERTEX 5 21F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 220 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673225.76 20 4860968.83 30 76.76000000000001 70 32 0 VERTEX 5 221 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673229.5999999999 20 4860967.03 30 76.70999999999998 70 32 0 VERTEX 5 222 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673242.37 20 4860961.03 30 76.52 70 32 0 VERTEX 5 223 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673260.74 20 4860952.349999998 30 76.52 70 32 0 VERTEX 5 224 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673260.2199999999 20 4860951.25 30 76.45 70 32 0 VERTEX 5 225 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673259.4500000001 20 4860949.62 30 76.34999999999998 70 32 0 VERTEX 5 226 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673258.73 20 4860948.12 30 76.25 70 32 0 VERTEX 5 227 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673256.91 20 4860944.48 30 76.25 70 32 0 VERTEX 5 228 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673255.8100000002 20 4860942.259999999 30 77.84 70 32 0 VERTEX 5 229 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673251.0300000001 20 4860932.690000001 30 77.79 70 32 0 VERTEX 5 22A 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673246.61 20 4860923.5 30 76.93999999999999 70 32 0 VERTEX 5 22B 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673243.9300000002 20 4860917.92 30 77.97 70 32 0 VERTEX 5 22C 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673240.63 20 4860910.87 30 75.67 70 32 0 VERTEX 5 22D 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673239.7 20 4860911.33 30 75.67 70 32 0 VERTEX 5 22E 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673236.5600000001 20 4860904.76 30 75.60999999999999 70 32 0 VERTEX 5 22F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673234.3100000001 20 4860900.85 30 75.98 70 32 0 VERTEX 5 230 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673232.49 20 4860898.589999999 30 76.18999999999998 70 32 0 VERTEX 5 231 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673228.8199999999 20 4860894.78 30 76.2 70 32 0 VERTEX 5 232 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673226.6 20 4860892.99 30 76.15999999999998 70 32 0 VERTEX 5 233 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673223.7399999999 20 4860890.92 30 76.09999999999998 70 32 0 VERTEX 5 234 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673220.74 20 4860889.280000001 30 76.01 70 32 0 VERTEX 5 235 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673217.7800000001 20 4860888.01 30 76.09 70 32 0 VERTEX 5 236 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673215.3499999999 20 4860887.22 30 76.05 70 32 0 VERTEX 5 237 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.48 20 4860886.46 30 75.92 70 32 0 VERTEX 5 238 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673209.2800000001 20 4860885.92 30 75.76999999999998 70 32 0 VERTEX 5 239 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673206.09 20 4860885.74 30 75.68999999999999 70 32 0 VERTEX 5 23A 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673203.6100000001 20 4860885.78 30 75.64 70 32 0 VERTEX 5 23B 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673201.1800000001 20 4860885.849999998 30 76.36 70 32 0 VERTEX 5 23C 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673201.23 20 4860886.579999999 30 77.14 70 32 0 VERTEX 5 23D 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673200.03 20 4860886.849999999 30 77.14 70 32 0 VERTEX 5 23E 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673198.4200000001 20 4860887.51 30 77.3 70 32 0 VERTEX 5 23F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673196.9499999999 20 4860888.23 30 77.43999999999998 70 32 0 VERTEX 5 240 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.98 20 4860889.059999998 30 77.67 70 32 0 VERTEX 5 241 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.17 20 4860890.35 30 77.09999999999998 70 32 0 VERTEX 5 242 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673193.25 20 4860891.45 30 75.19 70 32 0 VERTEX 5 243 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673192.25 20 4860894.24 30 75.19 70 32 0 VERTEX 5 244 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673188.7900000001 20 4860896.05 30 75.19 70 32 0 VERTEX 5 245 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673186.1800000001 20 4860895.179999999 30 75.16 70 32 0 VERTEX 5 246 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673184.04 20 4860896.26 30 75.16 70 32 0 VERTEX 5 247 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673183.6300000002 20 4860895.469999999 30 77.11 70 32 0 VERTEX 5 248 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673181.0 20 4860896.58 30 77.61 70 32 0 VERTEX 5 249 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673179.06 20 4860897.62 30 77.48999999999998 70 32 0 VERTEX 5 24A 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673178.02 20 4860898.5 30 77.43000000000002 70 32 0 VERTEX 5 24B 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673177.46 20 4860897.92 30 76.78 70 32 0 VERTEX 5 24C 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673175.65 20 4860900.21 30 75.08 70 32 0 VERTEX 5 24D 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673174.2800000001 20 4860902.13 30 75.06 70 32 0 VERTEX 5 24E 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673173.1 20 4860904.14 30 75.06 70 32 0 VERTEX 5 24F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673172.1300000001 20 4860905.9 30 75.04999999999999 70 32 0 VERTEX 5 250 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673171.37 20 4860907.639999999 30 75.04999999999999 70 32 0 VERTEX 5 251 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673170.41 20 4860910.099999999 30 75.04999999999999 70 32 0 VERTEX 5 252 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673169.7 20 4860912.56 30 75.04999999999999 70 32 0 VERTEX 5 253 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673169.11 20 4860915.150000001 30 75.04999999999999 70 32 0 VERTEX 5 254 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673168.78 20 4860917.419999998 30 75.04999999999999 70 32 0 VERTEX 5 255 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673168.5699999999 20 4860919.93 30 75.04999999999999 70 32 0 VERTEX 5 256 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673168.5500000001 20 4860922.389999998 30 75.04999999999999 70 32 0 VERTEX 5 257 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673168.64 20 4860924.96 30 75.04000000000002 70 32 0 VERTEX 5 258 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673168.9300000001 20 4860926.919999999 30 75.04000000000002 70 32 0 VERTEX 5 259 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673169.39 20 4860928.98 30 75.12999999999998 70 32 0 VERTEX 5 25A 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673169.9499999999 20 4860930.639999999 30 75.3 70 32 0 VERTEX 5 25B 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673170.4300000001 20 4860932.08 30 75.44 70 32 0 VERTEX 5 25C 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673171.0699999999 20 4860933.95 30 75.56999999999998 70 32 0 VERTEX 5 25D 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673172.0799999999 20 4860936.33 30 75.70999999999997 70 32 0 VERTEX 5 25E 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673173.39 20 4860938.95 30 75.86 70 32 0 VERTEX 5 25F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673174.9399999999 20 4860942.04 30 76.0 70 32 0 VERTEX 5 260 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673173.61 20 4860942.67 30 76.18000000000002 70 32 0 VERTEX 5 261 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673175.1700000001 20 4860945.86 30 76.97 70 32 0 VERTEX 5 262 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673191.8900000002 20 4860979.79 30 76.97 70 32 0 VERTEX 5 263 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673192.44 20 4860980.969999999 30 76.97 70 32 0 VERTEX 5 264 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673193.4599999999 20 4860983.12 30 79.87999999999998 70 32 0 VERTEX 5 265 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673211.59 20 4860974.32 30 81.34 70 32 0 VERTEX 5 266 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 267 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673215.5600000003 20 4860950.639999999 30 76.2 70 32 0 VERTEX 5 268 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673222.86 20 4860965.110000001 30 76.65 70 32 0 VERTEX 5 269 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673196.5600000001 20 4860977.6 30 76.79999999999998 70 32 0 VERTEX 5 26A 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673189.6 20 4860963.070000001 30 76.29999999999999 70 32 0 VERTEX 5 26B 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673215.5600000003 20 4860950.639999999 30 76.2 70 32 0 VERTEX 5 26C 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 26D 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673206.0 20 4860931.69 30 75.81 70 32 0 VERTEX 5 26E 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673213.2199999999 20 4860945.990000001 30 76.06 70 32 0 VERTEX 5 26F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673187.3 20 4860958.27 30 76.14 70 32 0 VERTEX 5 270 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673180.4100000001 20 4860943.889999999 30 76.0 70 32 0 VERTEX 5 271 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673206.0 20 4860931.69 30 75.81 70 32 0 VERTEX 5 272 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 273 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673191.8199999999 20 4860918.62 30 75.42 70 32 0 VERTEX 5 274 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673193.0100000001 20 4860919.9 30 75.44 70 32 0 VERTEX 5 275 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.7600000001 20 4860921.049999999 30 75.47 70 32 0 VERTEX 5 276 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673196.6400000001 20 4860921.78 30 75.53 70 32 0 VERTEX 5 277 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673198.2399999999 20 4860921.94 30 75.59999999999998 70 32 0 VERTEX 5 278 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673200.1600000001 20 4860922.17 30 75.64 70 32 0 VERTEX 5 279 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673200.7900000001 20 4860922.219999999 30 75.64 70 32 0 VERTEX 5 27A 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673202.4100000001 20 4860924.78 30 75.68000000000002 70 32 0 VERTEX 5 27B 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673203.9900000001 20 4860927.639999998 30 75.73999999999998 70 32 0 VERTEX 5 27C 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673178.4600000001 20 4860939.799999999 30 75.95 70 32 0 VERTEX 5 27D 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673176.22 20 4860935.17 30 75.75 70 32 0 VERTEX 5 27E 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673175.4999999999 20 4860933.349999998 30 75.64 70 32 0 VERTEX 5 27F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673174.6 20 4860930.74 30 75.48999999999998 70 32 0 VERTEX 5 280 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673173.2 20 4860927.53 30 75.14 70 32 0 VERTEX 5 281 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673191.8199999999 20 4860918.62 30 75.42 70 32 0 VERTEX 5 282 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 283 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673190.13 20 4860900.37 30 75.26 70 32 0 VERTEX 5 284 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673190.6000000001 20 4860900.66 30 75.26 70 32 0 VERTEX 5 285 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673192.68 20 4860905.62 30 75.34 70 32 0 VERTEX 5 286 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673191.74 20 4860906.87 30 75.35 70 32 0 VERTEX 5 287 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673190.95 20 4860908.23 30 75.34 70 32 0 VERTEX 5 288 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673190.28 20 4860909.799999999 30 75.35 70 32 0 VERTEX 5 289 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673189.9 20 4860911.549999999 30 75.35 70 32 0 VERTEX 5 28A 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673189.8499999999 20 4860913.009999999 30 75.36 70 32 0 VERTEX 5 28B 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673189.8000000001 20 4860914.1 30 75.37 70 32 0 VERTEX 5 28C 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673189.6800000001 20 4860914.78 30 75.37 70 32 0 VERTEX 5 28D 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673172.71 20 4860923.0 30 75.11 70 32 0 VERTEX 5 28E 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673172.83 20 4860920.23 30 75.12 70 32 0 VERTEX 5 28F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673172.9699999999 20 4860918.169999999 30 75.12 70 32 0 VERTEX 5 290 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673173.4900000001 20 4860915.44 30 75.12 70 32 0 VERTEX 5 291 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673175.45 20 4860910.23 30 75.12999999999998 70 32 0 VERTEX 5 292 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673176.7600000002 20 4860906.87 30 75.12 70 32 0 VERTEX 5 293 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673178.3800000001 20 4860903.94 30 75.12999999999998 70 32 0 VERTEX 5 294 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673179.85 20 4860901.88 30 75.14 70 32 0 VERTEX 5 295 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673180.5699999999 20 4860901.07 30 75.14 70 32 0 VERTEX 5 296 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673181.4599999999 20 4860900.769999998 30 75.15 70 32 0 VERTEX 5 297 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673183.1800000001 20 4860900.86 30 75.18 70 32 0 VERTEX 5 298 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673184.7900000001 20 4860901.2 30 75.20999999999998 70 32 0 VERTEX 5 299 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673186.3800000002 20 4860901.150000001 30 75.23 70 32 0 VERTEX 5 29A 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673188.5100000001 20 4860900.92 30 75.25 70 32 0 VERTEX 5 29B 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673189.7 20 4860900.4 30 75.25 70 32 0 VERTEX 5 29C 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673190.13 20 4860900.37 30 75.26 70 32 0 VERTEX 5 29D 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 29E 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673228.77 20 4860901.23 30 76.12 70 32 0 VERTEX 5 29F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673229.57 20 4860902.15 30 76.03 70 32 0 VERTEX 5 2A0 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673230.3900000002 20 4860903.099999998 30 75.94 70 32 0 VERTEX 5 2A1 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673231.63 20 4860905.309999998 30 75.73 70 32 0 VERTEX 5 2A2 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673235.22 20 4860912.78 30 75.67 70 32 0 VERTEX 5 2A3 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673208.5999999999 20 4860925.45 30 75.72 70 32 0 VERTEX 5 2A4 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673207.34 20 4860922.15 30 75.67 70 32 0 VERTEX 5 2A5 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673206.0699999999 20 4860919.44 30 75.60999999999999 70 32 0 VERTEX 5 2A6 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673207.0600000001 20 4860918.54 30 75.59000000000001 70 32 0 VERTEX 5 2A7 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673207.85 20 4860916.94 30 75.65000000000002 70 32 0 VERTEX 5 2A8 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673208.75 20 4860913.7 30 75.73999999999998 70 32 0 VERTEX 5 2A9 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673208.7599999999 20 4860910.62 30 75.73999999999998 70 32 0 VERTEX 5 2AA 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673228.77 20 4860901.23 30 76.12 70 32 0 VERTEX 5 2AB 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 2AC 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673207.6400000001 20 4860890.24 30 75.70999999999997 70 32 0 VERTEX 5 2AD 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673211.56 20 4860890.719999999 30 75.89 70 32 0 VERTEX 5 2AE 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673215.54 20 4860892.03 30 76.03 70 32 0 VERTEX 5 2AF 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673219.27 20 4860893.35 30 75.99 70 32 0 VERTEX 5 2B0 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673222.61 20 4860895.38 30 76.06999999999998 70 32 0 VERTEX 5 2B1 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673225.4799999998 20 4860897.57 30 76.12999999999998 70 32 0 VERTEX 5 2B2 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673207.17 20 4860906.32 30 75.75 70 32 0 VERTEX 5 2B3 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673206.4499999999 20 4860905.080000001 30 75.70999999999997 70 32 0 VERTEX 5 2B4 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.41 20 4860903.77 30 75.62000000000002 70 32 0 VERTEX 5 2B5 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673202.0699999999 20 4860902.99 30 75.51000000000001 70 32 0 VERTEX 5 2B6 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673199.89 20 4860902.85 30 75.41 70 32 0 VERTEX 5 2B7 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673197.6899999999 20 4860903.15 30 75.34 70 32 0 VERTEX 5 2B8 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.2099999999 20 4860898.28 30 75.26 70 32 0 VERTEX 5 2B9 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.9899999999 20 4860897.3 30 75.25 70 32 0 VERTEX 5 2BA 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673197.5900000001 20 4860895.86 30 75.28 70 32 0 VERTEX 5 2BB 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673199.1 20 4860894.32 30 75.34 70 32 0 VERTEX 5 2BC 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673200.4100000001 20 4860892.03 30 75.39 70 32 0 VERTEX 5 2BD 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673202.04 20 4860890.9 30 75.45999999999998 70 32 0 VERTEX 5 2BE 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.25 20 4860890.36 30 75.56 70 32 0 VERTEX 5 2BF 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673207.6400000001 20 4860890.24 30 75.70999999999997 70 32 0 VERTEX 5 2C0 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 2C1 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673199.25 20 4860907.019999999 30 75.4 70 32 0 VERTEX 5 2C2 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673199.75 20 4860907.03 30 75.42 70 32 0 VERTEX 5 2C3 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673200.25 20 4860907.08 30 75.44 70 32 0 VERTEX 5 2C4 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673200.74 20 4860907.17 30 75.45999999999998 70 32 0 VERTEX 5 2C5 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673201.2199999999 20 4860907.309999999 30 75.48999999999998 70 32 0 VERTEX 5 2C6 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673201.6800000001 20 4860907.49 30 75.51000000000001 70 32 0 VERTEX 5 2C7 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673202.1300000001 20 4860907.71 30 75.53 70 32 0 VERTEX 5 2C8 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673202.5600000001 20 4860907.98 30 75.54999999999998 70 32 0 VERTEX 5 2C9 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673202.96 20 4860908.28 30 75.56999999999998 70 32 0 VERTEX 5 2CA 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673203.32 20 4860908.62 30 75.59000000000001 70 32 0 VERTEX 5 2CB 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673203.66 20 4860908.99 30 75.59999999999998 70 32 0 VERTEX 5 2CC 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673203.96 20 4860909.389999998 30 75.62000000000002 70 32 0 VERTEX 5 2CD 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.23 20 4860909.809999998 30 75.62999999999998 70 32 0 VERTEX 5 2CE 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.4499999999 20 4860910.259999998 30 75.64 70 32 0 VERTEX 5 2CF 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.63 20 4860910.73 30 75.65000000000002 70 32 0 VERTEX 5 2D0 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.7700000001 20 4860911.21 30 75.65999999999998 70 32 0 VERTEX 5 2D1 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.86 20 4860911.7 30 75.67 70 32 0 VERTEX 5 2D2 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.9100000001 20 4860912.19 30 75.67 70 32 0 VERTEX 5 2D3 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.92 20 4860912.48 30 75.67 70 32 0 VERTEX 5 2D4 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.8900000002 20 4860912.980000001 30 75.67 70 32 0 VERTEX 5 2D5 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.8299999999 20 4860913.469999998 30 75.67 70 32 0 VERTEX 5 2D6 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.7099999999 20 4860913.96 30 75.67 70 32 0 VERTEX 5 2D7 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.5600000001 20 4860914.43 30 75.65999999999998 70 32 0 VERTEX 5 2D8 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.35 20 4860914.89 30 75.65999999999998 70 32 0 VERTEX 5 2D9 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673204.11 20 4860915.33 30 75.65000000000002 70 32 0 VERTEX 5 2DA 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673203.84 20 4860915.74 30 75.64 70 32 0 VERTEX 5 2DB 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673203.52 20 4860916.129999999 30 75.62000000000002 70 32 0 VERTEX 5 2DC 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673203.17 20 4860916.49 30 75.60999999999999 70 32 0 VERTEX 5 2DD 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673202.78 20 4860916.8 30 75.59000000000001 70 32 0 VERTEX 5 2DE 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673202.38 20 4860917.09 30 75.56999999999998 70 32 0 VERTEX 5 2DF 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673201.94 20 4860917.34 30 75.56 70 32 0 VERTEX 5 2E0 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673201.49 20 4860917.54 30 75.56 70 32 0 VERTEX 5 2E1 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673201.01 20 4860917.709999999 30 75.56 70 32 0 VERTEX 5 2E2 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673200.53 20 4860917.829999999 30 75.54999999999998 70 32 0 VERTEX 5 2E3 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673200.03 20 4860917.9 30 75.54999999999998 70 32 0 VERTEX 5 2E4 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673199.5300000001 20 4860917.93 30 75.54000000000002 70 32 0 VERTEX 5 2E5 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673199.0300000001 20 4860917.92 30 75.53 70 32 0 VERTEX 5 2E6 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673198.5400000001 20 4860917.849999998 30 75.51999999999998 70 32 0 VERTEX 5 2E7 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673198.05 20 4860917.74 30 75.51999999999998 70 32 0 VERTEX 5 2E8 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673197.5699999999 20 4860917.59 30 75.51000000000001 70 32 0 VERTEX 5 2E9 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673197.1099999999 20 4860917.4 30 75.5 70 32 0 VERTEX 5 2EA 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673196.67 20 4860917.17 30 75.48999999999998 70 32 0 VERTEX 5 2EB 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673196.25 20 4860916.889999999 30 75.48 70 32 0 VERTEX 5 2EC 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.86 20 4860916.58 30 75.47 70 32 0 VERTEX 5 2ED 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.5000000002 20 4860916.23 30 75.47 70 32 0 VERTEX 5 2EE 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.17 20 4860915.85 30 75.45999999999998 70 32 0 VERTEX 5 2EF 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.8800000002 20 4860915.44 30 75.45 70 32 0 VERTEX 5 2F0 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.63 20 4860915.01 30 75.45 70 32 0 VERTEX 5 2F1 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.42 20 4860914.56 30 75.44 70 32 0 VERTEX 5 2F2 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.2500000001 20 4860914.09 30 75.43000000000002 70 32 0 VERTEX 5 2F3 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.1299999999 20 4860913.61 30 75.43000000000002 70 32 0 VERTEX 5 2F4 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.04 20 4860913.12 30 75.42 70 32 0 VERTEX 5 2F5 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.01 20 4860912.62 30 75.42 70 32 0 VERTEX 5 2F6 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.0200000001 20 4860912.12 30 75.42 70 32 0 VERTEX 5 2F7 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.0699999999 20 4860911.62 30 75.41 70 32 0 VERTEX 5 2F8 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.17 20 4860911.129999998 30 75.41 70 32 0 VERTEX 5 2F9 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.3199999999 20 4860910.65 30 75.41 70 32 0 VERTEX 5 2FA 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.51 20 4860910.190000001 30 75.41 70 32 0 VERTEX 5 2FB 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673194.74 20 4860909.740000001 30 75.41 70 32 0 VERTEX 5 2FC 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.01 20 4860909.33 30 75.41 70 32 0 VERTEX 5 2FD 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.3100000001 20 4860908.929999999 30 75.4 70 32 0 VERTEX 5 2FE 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673195.6600000001 20 4860908.57 30 75.4 70 32 0 VERTEX 5 2FF 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673196.03 20 4860908.24 30 75.4 70 32 0 VERTEX 5 300 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673196.4300000001 20 4860907.94 30 75.4 70 32 0 VERTEX 5 301 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673196.86 20 4860907.679999999 30 75.4 70 32 0 VERTEX 5 302 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673197.3100000001 20 4860907.459999999 30 75.4 70 32 0 VERTEX 5 303 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673197.78 20 4860907.280000001 30 75.4 70 32 0 VERTEX 5 304 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673198.2600000002 20 4860907.15 30 75.4 70 32 0 VERTEX 5 305 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673198.7499999999 20 4860907.07 30 75.4 70 32 0 VERTEX 5 306 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673199.25 20 4860907.019999999 30 75.4 70 32 0 VERTEX 5 307 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 308 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673237.2500000001 20 4860916.92 30 75.75 70 32 0 VERTEX 5 309 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673244.32 20 4860931.309999998 30 76.01 70 32 0 VERTEX 5 30A 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673217.83 20 4860943.78 30 76.04 70 32 0 VERTEX 5 30B 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673210.6800000001 20 4860929.52 30 75.79 70 32 0 VERTEX 5 30C 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673237.2500000001 20 4860916.92 30 75.75 70 32 0 VERTEX 5 30D 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673212.05 20 4860975.28 30 79.15 70 32 0 VERTEX 5 30E 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673246.6200000001 20 4860935.910000001 30 76.18999999999998 70 32 0 VERTEX 5 30F 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673248.8899999999 20 4860940.65 30 77.40999999999998 70 32 0 VERTEX 5 310 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673252.5200000002 20 4860938.91 30 78.04000000000002 70 32 0 VERTEX 5 311 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673258.99 20 4860952.45 30 78.04000000000002 70 32 0 VERTEX 5 312 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673255.39 20 4860954.17 30 77.98999999999998 70 32 0 VERTEX 5 313 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673253.6300000001 20 4860950.5 30 77.43000000000002 70 32 0 VERTEX 5 314 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673227.5900000001 20 4860962.87 30 76.58 70 32 0 VERTEX 5 315 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673220.28 20 4860948.57 30 76.14 70 32 0 VERTEX 5 316 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 100 AcDbVertex 100 AcDb3dPolylineVertex 10 673246.6200000001 20 4860935.910000001 30 76.18999999999998 70 32 0 SEQEND 5 317 330 21E 100 AcDbEntity 8 A020206_entra_esci_1 0 POINT 5 6B538 330 1F 100 AcDbEntity 8 P020208 100 AcDbPoint 10 675645.41 20 4867515.0 30 508.06 1001 SHP_TIPM 1000 3Z NaN 1001 SHP_NREC 1000 1|P020208 1001 SHP_FLDDSC 1000 OBJECTID|N|9|0;ID_ZRIL|C|12|0;PALO_TY|C|10|0;PALO_IMP|C|10|0;GC_CODICE|C|8|0;PALO_SY|C|50|0;PALO_QE|F|19|11;PALO_ANG|F|19|11;PALO_F_SC|F|19|11;FID_|N|9|0;Classe|C|8|0;Descrizion|C|250|0;COD_SS_Pun|C|20|0;Flag_Mod|C|1|0;FeatureID|C|20|0;COD_ORIG|C|8|0;Rip 1001 SHP_FLDVAL 1000 1 11 06 C28000_ S10 5.08280000000e+002 0.00000000000e+000 1.00000000000e+000 020208 0 POINT 5 6B539 330 1F 100 AcDbEntity 8 P020208 100 AcDbPoint 10 675768.8100000001 20 4867500.02 30 490.0599999999999 1001 SHP_TIPM 1000 3Z NaN 1001 SHP_NREC 1000 2|P020208 1001 SHP_FLDDSC 1000 OBJECTID|N|9|0;ID_ZRIL|C|12|0;PALO_TY|C|10|0;PALO_IMP|C|10|0;GC_CODICE|C|8|0;PALO_SY|C|50|0;PALO_QE|F|19|11;PALO_ANG|F|19|11;PALO_F_SC|F|19|11;FID_|N|9|0;Classe|C|8|0;Descrizion|C|250|0;COD_SS_Pun|C|20|0;Flag_Mod|C|1|0;FeatureID|C|20|0;COD_ORIG|C|8|0;Rip 1001 SHP_FLDVAL 1000 2 11 06 C28000_ S10 4.90970000000e+002 0.00000000000e+000 1.00000000000e+000 020208 0 TEXT 5 11F3 330 1F 100 AcDbEntity 8 T080201_1004 100 AcDbText 10 675632.98 20 4867502.400000001 30 0.0 40 2.399999999999999 1 VIA 50 60.0 7 romans 100 AcDbText 1001 RT_INFO 1000 1004| 1001 PARAM_VEST 1000 1.20 60.00 0 TEXT 5 11F4 330 1F 100 AcDbEntity 8 T080201_1004 100 AcDbText 10 675645.0699999999 20 4867525.839999999 30 0.0 40 2.399999999999999 1 DI 50 75.0 7 romans 100 AcDbText 1001 RT_INFO 1000 1004| 1001 PARAM_VEST 1000 1.20 75.00 0 POLYLINE 5 1B0C 330 1F 100 AcDbEntity 8 A010101 100 AcDb3dPolyline 66 1 10 0.0 20 0.0 30 0.0 70 9 1001 SHP_NREC 1000 2|A010101 1001 SHP_FLDDSC 1000 OBJECTID|N|9|0;ID_ZRIL|C|12|0;GC_CODICE|C|8|0;LIV|N|4|0;FID_|N|9|0;Classe|C|8|0;ID_Poly_FT|C|20|0;Descrizion|C|250|0;COD_Pol_FT|C|20|0;COD_Strada|C|20|0;COD_Ar_Str|C|20|0;Flag_Mod|C|1|0;COD_Sup_3D|C|20|0;AR_STR_CF|C|8|0;AR_STR_STA|C|8|0;FeatureID|C|20|0; 1001 SHP_FLDVAL 1000 2 B11600 0 010101 0 VERTEX 5 1B0D 330 1B0C 100 AcDbEntity 8 A010101 100 AcDbVertex 100 AcDb3dPolylineVertex 10 675598.03 20 4867406.519999999 30 506.1799999999999 70 32 0 VERTEX 5 1B0E 330 1B0C 100 AcDbEntity 8 A010101 100 AcDbVertex 100 AcDb3dPolylineVertex 10 675593.8900000001 20 4867407.73 30 508.0899999999999 70 32 0 VERTEX 5 1B0F 330 1B0C 100 AcDbEntity 8 A010101 100 AcDbVertex 100 AcDb3dPolylineVertex 10 675595.55 20 4867413.67 30 507.86 70 32 0 VERTEX 5 1B10 330 1B0C 100 AcDbEntity 8 A010101 100 AcDbVertex 100 AcDb3dPolylineVertex 10 675599.76 20 4867412.44 30 506.12 70 32 0 VERTEX 5 1B0D 330 1B0C 100 AcDbEntity 8 A010101 100 AcDbVertex 100 AcDb3dPolylineVertex 10 675598.03 20 4867406.519999999 30 506.1799999999999 70 32 0 SEQEND 5 1B11 330 1B0C 100 AcDbEntity 8 A010101 0 POLYLINE 5 1B0C 330 1F 100 AcDbEntity 8 A010101 100 AcDb3dPolyline 66 1 10 0.0 20 0.0 30 0.0 70 8 1001 SHP_NREC 1000 2|A010101 1001 SHP_FLDDSC 1000 OBJECTID|N|9|0;ID_ZRIL|C|12|0;GC_CODICE|C|8|0;LIV|N|4|0;FID_|N|9|0;Classe|C|8|0;ID_Poly_FT|C|20|0;Descrizion|C|250|0;COD_Pol_FT|C|20|0;COD_Strada|C|20|0;COD_Ar_Str|C|20|0;Flag_Mod|C|1|0;COD_Sup_3D|C|20|0;AR_STR_CF|C|8|0;AR_STR_STA|C|8|0;FeatureID|C|20|0; 1001 SHP_FLDVAL 1000 2 B11600 0 010101 0 VERTEX 5 1B0D 330 1B0C 100 AcDbEntity 8 A010101 100 AcDbVertex 100 AcDb3dPolylineVertex 10 675598.03 20 4867406.519999999 30 506.1799999999999 70 32 0 VERTEX 5 1B0E 330 1B0C 100 AcDbEntity 8 A010101 100 AcDbVertex 100 AcDb3dPolylineVertex 10 675593.8900000001 20 4867407.73 30 508.0899999999999 70 32 0 VERTEX 5 1B0F 330 1B0C 100 AcDbEntity 8 A010101 100 AcDbVertex 100 AcDb3dPolylineVertex 10 675595.55 20 4867413.67 30 507.86 70 32 0 VERTEX 5 1B10 330 1B0C 100 AcDbEntity 8 A010101 100 AcDbVertex 100 AcDb3dPolylineVertex 10 675599.76 20 4867412.44 30 506.12 70 32 0 SEQEND 5 1B11 330 1B0C 100 AcDbEntity 8 A010101 0 ENDSEC 0 SECTION 0 EOFlibspatialite-4.3.0a/test/check_spatialindex.c0000664000175000017500000014416512544707704016422 00000000000000/* check_spatialindex.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int do_test_without_rowid_true (sqlite3 * handle) { /* testing WITHOUT ROWID - true */ char *err_msg = NULL; char **results; int rows; int columns; int ret = sqlite3_exec (handle, "CREATE TABLE without_rowid (" "id INTEGER NOT NULL PRIMARY KEY," "name TEXT NOT NULL) WITHOUT ROWID", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE without_rowid error: %s\n", err_msg); sqlite3_free (err_msg); return -313; } ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn('without_rowid', 'geom', 4326, 'POINT', 'XY')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn(without_rowid) error: %s\n", err_msg); sqlite3_free (err_msg); return -314; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: AddGeometryColumn(without_rowid) bad result: %i/%i.\n", rows, columns); sqlite3_free_table (results); return -315; } if (strcmp (results[1], "0") != 0) { fprintf (stderr, "unexpected result AddGeometryColumn(without_rowid): %s\n", results[1]); sqlite3_free_table (results); return -316; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "ALTER TABLE without_rowid ADD COLUMN geom BLOB", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "ALTER TABLE without_rowid error: %s\n", err_msg); sqlite3_free (err_msg); return -317; } ret = sqlite3_get_table (handle, "SELECT RecoverGeometryColumn('without_rowid', 'geom', 4326, 'POINT', 'XY')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn(without_rowid) error: %s\n", err_msg); sqlite3_free (err_msg); return -318; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: RecoverGeometryColumn(without_rowid) bad result: %i/%i.\n", rows, columns); sqlite3_free_table (results); return -319; } if (strcmp (results[1], "0") != 0) { fprintf (stderr, "unexpected result RecoverGeometryColumn(without_rowid): %s\n", results[1]); sqlite3_free_table (results); return -320; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT RecoverSpatialIndex('without_rowid', 'geom', 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverSpatialIndex(without_rowid) error: %s\n", err_msg); sqlite3_free (err_msg); return -321; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: RecoverSpatialIndex(without_rowid) bad result: %i/%i.\n", rows, columns); sqlite3_free_table (results); return -322; } if (strcmp (results[1], "-1") != 0) { fprintf (stderr, "unexpected result RecoverSpatialIndex(without_rowid): %s\n", results[1]); sqlite3_free_table (results); return -323; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT CheckSpatialIndex('without_rowid', 'geom')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CheckSpatialIndex(without_rowid) error: %s\n", err_msg); sqlite3_free (err_msg); return -324; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: CheckSpatialIndex(without_rowid) bad result: %i/%i.\n", rows, columns); sqlite3_free_table (results); return -325; } if (strcmp (results[1], "-1") != 0) { fprintf (stderr, "unexpected result CheckSpatialIndex(without_rowid): %s\n", results[1]); sqlite3_free_table (results); return -326; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT CheckWithoutRowid('without_rowid')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CheckWithoutRowid(without_rowid) error: %s\n", err_msg); sqlite3_free (err_msg); return -327; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: CheckWithoutRowid(without_rowid) bad result: %i/%i.\n", rows, columns); sqlite3_free_table (results); return -328; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "unexpected result CheckWithoutRowid(without_rowid): %s\n", results[1]); sqlite3_free_table (results); return -329; } sqlite3_free_table (results); return 0; } int do_test_without_rowid_false (sqlite3 * handle) { /* testing WITHOUT ROWID - false */ char *err_msg = NULL; char **results; int rows; int columns; int ret = sqlite3_exec (handle, "CREATE TABLE not_without_rowid (" "id INTEGER NOT NULL PRIMARY KEY," "name TEXT NOT NULL)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE not_without_rowid error: %s\n", err_msg); sqlite3_free (err_msg); return -327; } ret = sqlite3_exec (handle, "CREATE INDEX idx_NAME on NOT_WITHOUT_ROWID(NAME)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE not_without_rowid error: %s\n", err_msg); sqlite3_free (err_msg); return -328; } ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn('NOT_WITHOUT_ROWID', 'geom', 4326, 'POINT', 'XY')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn(NOT_WITHOUT_ROWID) error: %s\n", err_msg); sqlite3_free (err_msg); return -329; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: AddGeometryColumn(NOT_WITHOUT_ROWID) bad result: %i/%i.\n", rows, columns); sqlite3_free_table (results); return -330; } if (strcmp (results[1], "0") != 1) { fprintf (stderr, "unexpected result AddGeometryColumn(NOT_WITHOUT_ROWID): %s\n", results[1]); sqlite3_free_table (results); return -331; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "ALTER TABLE NOT_WITHOUT_ROWID ADD COLUMN geom2 BLOB", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "ALTER TABLE NOT_WITHOUT_ROWID error: %s\n", err_msg); sqlite3_free (err_msg); return -332; } ret = sqlite3_get_table (handle, "SELECT RecoverGeometryColumn('NOT_WITHOUT_ROWID', 'geom2', 4326, 'POINT', 'XY')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn(NOT_WITHOUT_ROWID) error: %s\n", err_msg); sqlite3_free (err_msg); return -333; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: RecoverGeometryColumn(NOT_WITHOUT_ROWID) bad result: %i/%i.\n", rows, columns); sqlite3_free_table (results); return -319; } if (strcmp (results[1], "0") != 1) { fprintf (stderr, "unexpected result RecoverGeometryColumn(NOT_WITHOUT_ROWID): %s\n", results[1]); sqlite3_free_table (results); return -334; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT CheckWithoutRowid('NOT_WITHOUT_ROWID')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CheckWithoutRowid(NOT_WITHOUT_ROWID) error: %s\n", err_msg); sqlite3_free (err_msg); return -335; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: CheckWithoutRowid(NOT_WITHOUT_ROWID) bad result: %i/%i.\n", rows, columns); sqlite3_free_table (results); return -336; } if (strcmp (results[1], "0") != 0) { fprintf (stderr, "unexpected result CheckWithoutRowid(NOT_WITHOUT_ROWID): %s\n", results[1]); sqlite3_free_table (results); return -337; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT CheckWithoutRowid('not_existing_table')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CheckWithoutRowid(not_existing_table) error: %s\n", err_msg); sqlite3_free (err_msg); return -338; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: CheckWithoutRowid(not_existing_table) bad result: %i/%i.\n", rows, columns); sqlite3_free_table (results); return -339; } if (results[1] != NULL) { fprintf (stderr, "unexpected result CheckWithoutRowid(not_existing_table): %s\n", results[1]); sqlite3_free_table (results); return -340; } sqlite3_free_table (results); return 0; } int do_test (sqlite3 * handle, int legacy) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; char *err_msg = NULL; int row_count; char **results; int rows; int columns; char sql[1024]; ret = load_shapefile (handle, "shp/foggia/local_councils", "Councils", "CP1252", 23032, "geom", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error: %s\n", err_msg); sqlite3_close (handle); return -3; } if (row_count != 61) { fprintf (stderr, "unexpected number of rows loaded: %i\n", row_count); sqlite3_close (handle); return -4; } ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE MbrWithin(geom, BuildMbr(1040523, 4010000, 1140523, 4850000)) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } if ((rows != 22) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -6; } if (strcmp (results[1], "Ascoli Satriano") != 0) { fprintf (stderr, "unexpected result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -7; } if (strcmp (results[22], "Zapponeta") != 0) { fprintf (stderr, "unexpected result at 22: %s\n", results[22]); sqlite3_free_table (results); sqlite3_close (handle); return -8; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "SELECT CreateSpatialIndex('Councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CreateSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } ret = sqlite3_exec (handle, "SELECT UpgradeGeometryTriggers(1);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UpgradeGeometryTriggers (1) error: %s\n", err_msg); sqlite3_free (err_msg); return -101; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT pkid FROM idx_Councils_geom;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in idx SELECT: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != 61) || (columns != 1)) { fprintf (stderr, "Unexpected error: select pkid bad idx result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -11; } sqlite3_free_table (results); rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT Contains: %s\n", err_msg); sqlite3_free (err_msg); return -12; } if ((rows != 22) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad idx result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -13; } if (strcmp (results[1], "Ascoli Satriano") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -14; } if (strcmp (results[22], "Zapponeta") != 0) { fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]); sqlite3_free_table (results); sqlite3_close (handle); return -15; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "INSERT INTO Councils (lc_name, geom) VALUES ('Quairading', GeomFromText('MULTIPOLYGON(((997226.750031 4627372.000018, 997301.750031 4627332.000018, 997402.500031 4627344.000018, 997541.500031 4627326.500018,997226.750031 4627372.000018)))', 23032));", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT2: %s\n", err_msg); sqlite3_free (err_msg); return -17; } if ((rows != 22) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad idx result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -18; } if (strcmp (results[1], "Ascoli Satriano") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -19; } if (strcmp (results[22], "Zapponeta") != 0) { fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]); sqlite3_free_table (results); sqlite3_close (handle); return -20; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "UPDATE Councils SET geom = GeomFromText('MULTIPOLYGON(((987226.750031 4627372.000018, 997301.750031 4627331.000018, 997402.500032 4627344.000018, 997541.500031 4627326.500018, 987226.750031 4627372.000018)))', 23032) WHERE lc_name = \"Quairading\";", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UPDATE error: %s\n", err_msg); sqlite3_free (err_msg); return -34; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT3: %s\n", err_msg); sqlite3_free (err_msg); return -35; } if ((rows != 22) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad idx result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -36; } if (strcmp (results[1], "Ascoli Satriano") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -37; } if (strcmp (results[22], "Zapponeta") != 0) { fprintf (stderr, "unexpected mbr result at 22: %s\n", results[22]); sqlite3_free_table (results); sqlite3_close (handle); return -38; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "DELETE FROM Councils WHERE lc_name = \"Ascoli Satriano\";", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE error: %s\n", err_msg); sqlite3_free (err_msg); return -39; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT lc_name FROM Councils WHERE ROWID IN (SELECT pkid FROM idx_Councils_geom WHERE xmin > 1040523 AND ymin > 4010000 AND xmax < 1140523 AND ymax < 4850000) ORDER BY lc_name;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT3: %s\n", err_msg); sqlite3_free (err_msg); return -40; } if ((rows != 21) || (columns != 1)) { fprintf (stderr, "Unexpected error: select lc_name bad idx result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -41; } if (strcmp (results[1], "Cagnano Varano") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -42; } if (strcmp (results[21], "Zapponeta") != 0) { fprintf (stderr, "unexpected mbr result at 21: %s\n", results[21]); sqlite3_free_table (results); sqlite3_close (handle); return -43; } sqlite3_free_table (results); rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT rowid, nodeno FROM idx_Councils_geom_rowid ORDER BY rowid;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error in Mbr SELECT: %s\n", err_msg); sqlite3_free (err_msg); return -44; } if ((rows != 61) || (columns != 2)) { fprintf (stderr, "Unexpected error: select rowid bad idx result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -45; } if (strcmp (results[2], "1") != 0) { fprintf (stderr, "unexpected mbr result at 1: %s\n", results[2]); sqlite3_free_table (results); sqlite3_close (handle); return -46; } if (strcmp (results[12], "6") != 0) { fprintf (stderr, "unexpected mbr result at 6: %s\n", results[12]); sqlite3_free_table (results); sqlite3_close (handle); return -47; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex('Councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CheckSpatialIndex (1) error: %s\n", err_msg); sqlite3_free (err_msg); return -48; } ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex();", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CheckSpatialIndex (2) error: %s\n", err_msg); sqlite3_free (err_msg); return -49; } ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('Councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverSpatialIndex (1) error: %s\n", err_msg); sqlite3_free (err_msg); return -50; } ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex();", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverSpatialIndex (2) error: %s\n", err_msg); sqlite3_free (err_msg); return -51; } /* / going to create a broken/corrupted SpatialIndex / / - we'll create a new table (with no Primary Key) / - then we'll delete some rows / - and finally we'll perform a Vacuum / - all this notoriously causes R*Tree corruption */ ret = sqlite3_exec (handle, "CREATE TABLE bad_councils AS SELECT lc_name, geom FROM Councils", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE bad_councils error: %s\n", err_msg); sqlite3_free (err_msg); return -52; } ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn(1, 'geom', 23032, 'MULTIPOLYGON', 'XY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); sqlite3_free (err_msg); return -54; } ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 1, 23032, 'MULTIPOLYGON', 'XY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); sqlite3_free (err_msg); return -55; } ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032.5, 'MULTIPOLYGON', 'XY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); sqlite3_free (err_msg); return -56; } ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 1, 'XY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); sqlite3_free (err_msg); return -57; } ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'MULTIPOLYGON', 1.5)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); sqlite3_free (err_msg); return -58; } ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'DUMMY', 'XY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); sqlite3_free (err_msg); return -59; } ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'MULTIPOLYGON', 'DUMMY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); sqlite3_free (err_msg); return -60; } ret = sqlite3_exec (handle, "SELECT RecoverGeometryColumn('bad_councils', 'geom', 23032, 'MULTIPOLYGON', 2)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverGeometryColumn(bad_councils) error: %s\n", err_msg); sqlite3_free (err_msg); return -61; } ret = sqlite3_exec (handle, "SELECT CreateSpatialIndex('bad_councils', 'geom')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CreateSpatialIndex(bad_councils) error: %s\n", err_msg); sqlite3_free (err_msg); return -62; } ret = sqlite3_exec (handle, "DELETE FROM bad_councils WHERE lc_name LIKE 'C%'", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM bad_councils error: %s\n", err_msg); sqlite3_free (err_msg); return -63; } ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VACUUM error: %s\n", err_msg); sqlite3_free (err_msg); return -64; } ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex('bad_councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CheckSpatialIndex (3) error: %s\n", err_msg); sqlite3_free (err_msg); return -65; } ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('bad_councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RecoverSpatialIndex (3) error: %s\n", err_msg); sqlite3_free (err_msg); return -66; } ret = sqlite3_exec (handle, "SELECT UpdateLayerStatistics('bad_councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UpdateLayerStatistics (1) error: %s\n", err_msg); sqlite3_free (err_msg); return -67; } ret = sqlite3_exec (handle, "SELECT UpdateLayerStatistics();", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UpdateLayerStatistics (2) error: %s\n", err_msg); sqlite3_free (err_msg); return -68; } /* END broken SpatialIndex check/recover */ ret = sqlite3_exec (handle, "SELECT Extent(geom) FROM Councils;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Extent (1) error: %s\n", err_msg); sqlite3_free (err_msg); return -69; } strcpy (sql, "SELECT Count(*) FROM Councils WHERE ROWID IN ("); strcat (sql, "SELECT ROWID FROM SpatialIndex WHERE "); strcat (sql, "f_table_name = 'Councils' AND search_frame = "); strcat (sql, "BuildMbr(10, 10, 20, 20));"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualSpatialIndex (1) error: %s\n", err_msg); sqlite3_free (err_msg); return -70; } strcpy (sql, "SELECT Count(*) FROM Councils WHERE ROWID IN ("); strcat (sql, "SELECT ROWID FROM SpatialIndex WHERE "); strcat (sql, "f_table_name = 'Councils' AND f_geometry_column = "); strcat (sql, "'geom' AND search_frame = BuildCircleMbr(1019000, "); strcat (sql, "4592000, 10000));"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualSpatialIndex (2) error: %s\n", err_msg); sqlite3_free (err_msg); return -71; } ret = sqlite3_exec (handle, "SELECT RebuildGeometryTriggers('Councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Rebuild triggers error: %s\n", err_msg); sqlite3_free (err_msg); return -72; } ret = sqlite3_exec (handle, "SELECT DisableSpatialIndex('Councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Disable index error: %s\n", err_msg); sqlite3_free (err_msg); return -73; } ret = sqlite3_exec (handle, "SELECT RebuildGeometryTriggers('Councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Disable index error: %s\n", err_msg); sqlite3_free (err_msg); return -74; } ret = sqlite3_exec (handle, "DROP TABLE Councils;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE Councils error: %s\n", err_msg); sqlite3_free (err_msg); return -75; } ret = sqlite3_exec (handle, "SELECT DiscardGeometryColumn(1, 'a');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid DiscardGeometryColumn error: %s\n", err_msg); sqlite3_free (err_msg); return -76; } ret = sqlite3_exec (handle, "SELECT DiscardGeometryColumn('a', 1);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid DiscardGeometryColumn error: %s\n", err_msg); sqlite3_free (err_msg); return -77; } ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex(1, 'a');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid CheckSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -78; } ret = sqlite3_exec (handle, "SELECT CheckSpatialIndex('a', 2);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid CheckSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -79; } ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex(1, 'a');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -80; } ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a', 2);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -81; } ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -82; } ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex(1);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -83; } ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a', 'b', 'c');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -84; } ret = sqlite3_exec (handle, "SELECT RecoverSpatialIndex('a', 'b', 1);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid RecoverSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -85; } ret = sqlite3_exec (handle, "SELECT CreateSpatialIndex(1, 'a');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid CreateSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -86; } ret = sqlite3_exec (handle, "SELECT CreateSpatialIndex('a', 2);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid CreateSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -87; } ret = sqlite3_exec (handle, "SELECT DisableSpatialIndex(1, 'a');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid DisableSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -88; } ret = sqlite3_exec (handle, "SELECT DisableSpatialIndex('a', 2);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid DisableSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -89; } ret = sqlite3_exec (handle, "SELECT RebuildGeometryTriggers(1, 'a');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid RebuildGeometryTriggers error: %s\n", err_msg); sqlite3_free (err_msg); return -90; } ret = sqlite3_exec (handle, "SELECT RebuildGeometryTriggers('a', 2);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid RebuildGeometryTriggers error: %s\n", err_msg); sqlite3_free (err_msg); return -91; } ret = sqlite3_exec (handle, "SELECT UpdateLayerStatistics('a', 2);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid UpdateLayerStatistics error: %s\n", err_msg); sqlite3_free (err_msg); return -92; } ret = sqlite3_exec (handle, "SELECT UpdateLayerStatistics(2, 'a');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "invalid UpdateLayerStatistics error: %s\n", err_msg); sqlite3_free (err_msg); return -93; } /* final DB cleanup */ ret = sqlite3_exec (handle, "DROP TABLE bad_councils", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE bad_councils error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -94; } ret = sqlite3_exec (handle, "DROP TABLE idx_bad_councils_geom", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE idx_bad_councils_geom error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -95; } ret = sqlite3_exec (handle, "DROP TABLE idx_Councils_geom", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE idx_Councils_geom error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -96; } ret = sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -97; } if (legacy) { /* only required for legacy style metadata */ ret = sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM layer_statistics error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -98; } } ret = sqlite3_exec (handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -99; } ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VACUUM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -100; } #endif /* end ICONV conditional */ /* ok, succesfull termination */ return 0; } int do_test_rowid (sqlite3 * handle) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; char *err_msg = NULL; int row_count; char **results; int rows; int columns; ret = load_shapefile (handle, "shp/foggia/local_councils", "Councils", "CP1252", 23032, "geom", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error: %s\n", err_msg); sqlite3_close (handle); return -203; } if (row_count != 61) { fprintf (stderr, "unexpected number of rows loaded: %i\n", row_count); sqlite3_close (handle); return -204; } ret = sqlite3_exec (handle, "SELECT CreateSpatialIndex('Councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CreateSpatialIndex error: %s\n", err_msg); sqlite3_free (err_msg); return -205; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT CheckSpatialIndex('Councils', 'geom');", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error CheckSpatialIndex(rowid-1): %s\n", err_msg); sqlite3_free (err_msg); return -206; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: CheckSpatialIndex(rowid-1) result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -207; } if (results[1] == NULL) { fprintf (stderr, "unexpected NULL CheckSpatialIndex(rowid-1)\n"); sqlite3_free_table (results); sqlite3_close (handle); return -208; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "unexpected CheckSpatialIndex(rowid-1): %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -209; } sqlite3_free_table (results); rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT CheckSpatialIndex('Councils', 'geom');", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error RecoverSpatialIndex(rowid-1): %s\n", err_msg); sqlite3_free (err_msg); return -210; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: RecoverSpatialIndex(rowid-1) result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -211; } if (results[1] == NULL) { fprintf (stderr, "unexpected NULL RecoverSpatialIndex(rowid-1)\n"); sqlite3_free_table (results); sqlite3_close (handle); return -212; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "unexpected RecoverSpatialIndex(rowid-1): %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -213; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "ALTER TABLE Councils ADD COLUMN rowid", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "ALTER TABLE error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -214; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT CheckSpatialIndex('Councils', 'geom');", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error CheckSpatialIndex(rowid-2): %s\n", err_msg); sqlite3_free (err_msg); return -215; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: CheckSpatialIndex(rowid-2) result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -216; } if (results[1] == NULL) { fprintf (stderr, "unexpected NULL CheckSpatialIndex(rowid-2)\n"); sqlite3_free_table (results); sqlite3_close (handle); return -217; } if (strcmp (results[1], "-1") != 0) { fprintf (stderr, "unexpected CheckSpatialIndex(rowid-2): %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -218; } sqlite3_free_table (results); rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT CheckSpatialIndex('Councils', 'geom');", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error RecoverSpatialIndex(rowid-2): %s\n", err_msg); sqlite3_free (err_msg); return -219; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: RecoverSpatialIndex(rowid-2) result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -220; } if (results[1] == NULL) { fprintf (stderr, "unexpected NULL RecoverSpatialIndex(rowid-2)\n"); sqlite3_free_table (results); sqlite3_close (handle); return -221; } if (strcmp (results[1], "-1") != 0) { fprintf (stderr, "unexpected RecoverSpatialIndex(rowid-2): %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -222; } sqlite3_free_table (results); rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT CheckShadowedRowid('Councils');", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error CheckShadowedRowid(rowid-1): %s\n", err_msg); sqlite3_free (err_msg); return -223; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: CheckShadowedRowid(rowid-1) result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -224; } if (results[1] == NULL) { fprintf (stderr, "unexpected NULL CheckShadowedRowid(rowid-1)\n"); sqlite3_free_table (results); sqlite3_close (handle); return -225; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "unexpected CheckShadowedRowid(rowid-1): %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -226; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "SELECT DisableSpatialIndex('Councils', 'geom');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DisableSpatialIndex(rowid) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -227; } ret = sqlite3_exec (handle, "DROP TABLE idx_councils_geom", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE(rowid) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -228; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT CreateSpatialIndex('Councils', 'geom');", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error CreateSpatialIndex(rowid-2): %s\n", err_msg); sqlite3_free (err_msg); return -229; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: CreateSpatialIndex(rowid-2) result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -230; } if (results[1] == NULL) { fprintf (stderr, "unexpected NULL CreateSpatialIndex(rowid-2)\n"); sqlite3_free_table (results); sqlite3_close (handle); return -231; } if (strcmp (results[1], "-1") != 0) { fprintf (stderr, "unexpected CreateSpatialIndex(rowid-2): %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -232; } sqlite3_free_table (results); rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT CheckShadowedRowid('Councils');", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error CheckShadowedRowid(rowid-2): %s\n", err_msg); sqlite3_free (err_msg); return -233; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: CheckShadowedRowid(rowid-2) result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -234; } if (results[1] == NULL) { fprintf (stderr, "unexpected NULL CheckShadowedRowid(rowid-2)\n"); sqlite3_free_table (results); sqlite3_close (handle); return -235; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "unexpected CheckShadowedRowid(rowid-2): %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -236; } sqlite3_free_table (results); rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT CheckShadowedRowid('Councils_bad_name_not_existing');", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error CheckShadowedRowid(rowid-3): %s\n", err_msg); sqlite3_free (err_msg); return -237; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: CheckShadowedRowid(rowid-3) result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -238; } if (results[1] != NULL) { fprintf (stderr, "unexpected NOT NULL CheckShadowedRowid(rowid-3): %s\n", results[1]); sqlite3_free_table (results); sqlite3_close (handle); return -239; } sqlite3_free_table (results); #endif /* end ICONV conditional */ /* ok, succesfull termination */ return 0; } int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* testing current style metadata layout >= v.4.0.0 */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } ret = do_test (handle, 0); if (ret != 0) { fprintf (stderr, "error while testing current style metadata layout\n"); return ret; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -101; } spatialite_cleanup_ex (cache); /* testing ROWID physical column */ cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -102; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -103; } ret = do_test_rowid (handle); if (ret != 0) { fprintf (stderr, "error while testing current style metadata layout (rowid column)\n"); return ret; } if (strcmp (sqlite3_libversion (), "3.8.2") >= 0) { /* testing WITHOUT ROWID (requires SQLIte 3.8.2 or later) */ ret = do_test_without_rowid_true (handle); if (ret != 0) { fprintf (stderr, "error while testing current style metadata layout (WITHOUT ROWID / true)\n"); return ret; } } ret = do_test_without_rowid_false (handle); if (ret != 0) { fprintf (stderr, "error while testing current style metadata layout (WITHOUT ROWID / false)\n"); return ret; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -104; } spatialite_cleanup_ex (cache); /* testing legacy style metadata layout <= v.3.1.0 */ cache = spatialite_alloc_connection (); ret = system ("cp test-legacy-3.0.1.sqlite copy-spatialindex-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot copy legacy v.3.0.1 database\n"); return -105; } ret = sqlite3_open_v2 ("copy-spatialindex-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -106; } spatialite_init_ex (handle, cache, 0); ret = do_test (handle, 1); if (ret != 0) { fprintf (stderr, "error while testing legacy style metadata layout\n"); return ret; } if (strcmp (sqlite3_libversion (), "3.8.2") >= 0) { /* testing WITHOUT ROWID (requires SQLIte 3.8.2 or later) */ ret = do_test_without_rowid_true (handle); if (ret != 0) { fprintf (stderr, "error while testing legacy style metadata layout (WITHOUT ROWID / true)\n"); return ret; } } ret = do_test_without_rowid_false (handle); if (ret != 0) { fprintf (stderr, "error while testing current style metadata layout (WITHOUT ROWID / false)\n"); return ret; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -107; } spatialite_cleanup_ex (cache); ret = unlink ("copy-spatialindex-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot remove legacy v.3.0.1 database\n"); return -108; } /* testing legacy style metadata layout <= v.3.1.0 (ROWID column) */ cache = spatialite_alloc_connection (); ret = system ("cp test-legacy-3.0.1.sqlite copy-spatialindex-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot copy legacy v.3.0.1 database\n"); return -109; } ret = sqlite3_open_v2 ("copy-spatialindex-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -110; } spatialite_init_ex (handle, cache, 0); ret = do_test_rowid (handle); if (ret != 0) { fprintf (stderr, "error while testing legacy style metadata layout (rowid column)\n"); return ret; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -111; } spatialite_cleanup_ex (cache); ret = unlink ("copy-spatialindex-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot remove legacy v.3.0.1 database\n"); return -112; } #endif /* end ICONV conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/0000775000175000017500000000000012573314332017135 500000000000000libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/loadxml3.testcase0000664000175000017500000000023612544707704022345 00000000000000XB_LoadXML - DOUBLE input :memory: #use in-memory database SELECT XB_LoadXML(1.1); 1 # rows (not including the header row) 1 # columns XB_LoadXML(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/loadxml6.testcase0000664000175000017500000000316112544707704022350 00000000000000XB_LoadXML - filepath input - valid :memory: #use in-memory database SELECT Hex(XB_LoadXML('books.xml')); 1 # rows (not including the header row) 1 # columns Hex(XB_LoadXML('books.xml')) 3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D227574662D38223F3E0A3C426F6F6B7320786D6C6E733A7873693D22687474703A2F2F7777772E77332E6F72672F323030312F584D4C536368656D612D696E7374616E636522207873693A6E6F4E616D657370616365536368656D614C6F636174696F6E3D22626F6F6B732E787364223E3C617574686F722066697273744E616D653D22436861726C657322206C6173744E616D653D224469636B656E73223E0A3C7469746C653E546865205069636B7769636B205061706572733C2F7469746C653E3C7469746C653E4F6C697665722054776973743C2F7469746C653E3C7469746C653E446176696420436F707065726669656C643C2F7469746C653E0A3C7469746C653E41204368726973746D6173204361726F6C3C2F7469746C653E3C7469746C653E486172642054696D65733C2F7469746C653E3C2F617574686F723E0A3C617574686F722066697273744E616D653D224E617468616E69656C22206C6173744E616D653D2248617774686F726E65223E3C7469746C653E54686520536361726C6574204C65747465723C2F7469746C653E3C2F617574686F723E0A3C617574686F722066697273744E616D653D2257696C6C69616D204D616B65706561636522206C6173744E616D653D22546861636B65726179223E3C7469746C653E56616E69747920466169723C2F7469746C653E0A3C7469746C653E546865204C75636B206F66204261727279204C796E646F6E3C2F7469746C653E3C2F617574686F723E3C617574686F722066697273744E616D653D224A6F7365706822206C6173744E616D653D22436F6E726164223E0A3C7469746C653E4C6F7264204A696D3C2F7469746C653E3C7469746C653E54686520536563726574204167656E743C2F7469746C653E3C7469746C653E4865617274206F66204461726B6E6573733C2F7469746C653E0A3C2F617574686F723E3C2F426F6F6B733E0A libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/storexml4.testcase0000664000175000017500000000030712544707704022562 00000000000000XB_LoadXML - DOUBLE payload :memory: #use in-memory database SELECT XB_StoreXML(1.2, 'xml-test-out.xml'); 1 # rows (not including the header row) 1 # columns XB_StoreXML(1.2, 'xml-test-out.xml'); -1 libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/Makefile.in0000664000175000017500000003137612573313637021143 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_xmlsec_tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = loadxml1.testcase \ loadxml2.testcase \ loadxml3.testcase \ loadxml4.testcase \ loadxml5.testcase \ loadxml6.testcase \ storexml10.testcase \ storexml11.testcase \ storexml12.testcase \ storexml13.testcase \ storexml14.testcase \ storexml15.testcase \ storexml16.testcase \ storexml1.testcase \ storexml2.testcase \ storexml3.testcase \ storexml4.testcase \ storexml5.testcase \ storexml6.testcase \ storexml7.testcase \ storexml8.testcase \ storexml9.testcase \ importwfs1.testcase \ importwfs2.testcase \ importwfs3.testcase \ importwfs4.testcase \ importwfs5.testcase \ importwfs6.testcase \ importwfs7.testcase \ importwfs8.testcase \ importwfs9.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_xmlsec_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_xmlsec_tests/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/storexml11.testcase0000664000175000017500000000044412544707704022642 00000000000000XB_LoadXML - valid BLOB payload, indent :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', 8); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', 8); 1 libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/loadxml4.testcase0000664000175000017500000000025412544707704022346 00000000000000XB_LoadXML - BLOB input :memory: #use in-memory database SELECT XB_LoadXML(zeroblob(4)); 1 # rows (not including the header row) 1 # columns XB_LoadXML(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/storexml14.testcase0000664000175000017500000000036512544707704022647 00000000000000XB_LoadXML - valid BLOB payload, INTEGER path :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 1); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 1); -1 libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/importwfs4.testcase0000664000175000017500000000033712544707704022742 00000000000000ImportWFS - NULL pk_column :memory: #use in-memory database SELECT ImportWFS('sample.wfs', 'layer', 'table', NULL); 1 # rows (not including the header row) 1 # columns ImportWFS('sample.wfs', 'layer', 'table', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/importwfs1.testcase0000664000175000017500000000027712544707704022742 00000000000000ImportWFS - NULL input :memory: #use in-memory database SELECT ImportWFS(NULL, 'layer', 'table'); 1 # rows (not including the header row) 1 # columns ImportWFS(NULL, 'layer', 'table') (NULL) libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/importwfs2.testcase0000664000175000017500000000031112544707704022730 00000000000000ImportWFS - NULL layer :memory: #use in-memory database SELECT ImportWFS('sample.wfs', NULL, 'table'); 1 # rows (not including the header row) 1 # columns ImportWFS('sample.wfs', NULL, 'table') (NULL) libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/storexml13.testcase0000664000175000017500000000037012544707704022642 00000000000000XB_LoadXML - valid BLOB payload, NULL path :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), NULL); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), NULL); -1 libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/importwfs8.testcase0000664000175000017500000000037112544707704022744 00000000000000ImportWFS - not existing input :memory: #use in-memory database SELECT ImportWFS('sample.wfs', 'layer', 'table', 'id', 0, 100, 1); 1 # rows (not including the header row) 1 # columns ImportWFS('sample.wfs', 'layer', 'table', 'id', 0, 100, 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/importwfs6.testcase0000664000175000017500000000036112544707704022741 00000000000000ImportWFS - NULL page_size :memory: #use in-memory database SELECT ImportWFS('sample.wfs', 'layer', 'table', 'id', 0, NULL); 1 # rows (not including the header row) 1 # columns ImportWFS('sample.wfs', 'layer', 'table', 'id', 0, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/storexml3.testcase0000664000175000017500000000030412544707704022556 00000000000000XB_LoadXML - INTEGER payload :memory: #use in-memory database SELECT XB_StoreXML(1, 'xml-test-out.xml'); 1 # rows (not including the header row) 1 # columns XB_StoreXML(1, 'xml-test-out.xml'); -1 libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/storexml15.testcase0000664000175000017500000000037012544707704022644 00000000000000XB_LoadXML - valid BLOB payload, DOUBLE path :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 1.1); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 1.1); -1 libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/storexml1.testcase0000664000175000017500000000030712544707704022557 00000000000000XB_LoadXML - NULL payload :memory: #use in-memory database SELECT XB_StoreXML(NULL, 'xml-test-out.xml'); 1 # rows (not including the header row) 1 # columns XB_StoreXML(NULL, 'xml-test-out.xml'); -1 libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/importwfs7.testcase0000664000175000017500000000037712544707704022751 00000000000000ImportWFS - NULL spatial_index :memory: #use in-memory database SELECT ImportWFS('sample.wfs', 'layer', 'table', 'id', 0, 100, NULL); 1 # rows (not including the header row) 1 # columns ImportWFS('sample.wfs', 'layer', 'table', 'id', 0, 100, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/storexml5.testcase0000664000175000017500000000033412544707704022563 00000000000000XB_LoadXML - invalid BLOB payload :memory: #use in-memory database SELECT XB_StoreXML(zeroblob(4), 'xml-test-out.xml'); 1 # rows (not including the header row) 1 # columns XB_StoreXML(zeroblob(4), 'xml-test-out.xml'); 0 libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/storexml10.testcase0000664000175000017500000000047612544707704022646 00000000000000XB_LoadXML - valid BLOB payload, BLOB indent :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', zeroblob(4)); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', zeroblob(4)); -1 libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/loadxml2.testcase0000664000175000017500000000023312544707704022341 00000000000000XB_LoadXML - INTEGER input :memory: #use in-memory database SELECT XB_LoadXML(1); 1 # rows (not including the header row) 1 # columns XB_LoadXML(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/storexml6.testcase0000664000175000017500000000043212544707704022563 00000000000000XB_LoadXML - valid BLOB payload :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-noindent.xml'); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-noindent.xml'); 1 libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/storexml9.testcase0000664000175000017500000000046012544707704022567 00000000000000XB_LoadXML - valid BLOB payload, DOUBLE indent :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', 1.5); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', 1.5); -1 libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/importwfs5.testcase0000664000175000017500000000035312544707704022741 00000000000000ImportWFS - NULL swap_axes :memory: #use in-memory database SELECT ImportWFS('sample.wfs', 'layer', 'table', 'id', NULL); 1 # rows (not including the header row) 1 # columns ImportWFS('sample.wfs', 'layer', 'table', 'id', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/loadxml5.testcase0000664000175000017500000000032412544707704022345 00000000000000XB_LoadXML - filepath input - invalid :memory: #use in-memory database SELECT XB_LoadXML('not-existing-books.xml'); 1 # rows (not including the header row) 1 # columns XB_LoadXML('not-existing-books.xml') (NULL) libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/storexml2.testcase0000664000175000017500000000031512544707704022557 00000000000000XB_LoadXML - TEXT payload :memory: #use in-memory database SELECT XB_StoreXML('alpha', 'xml-test-out.xml'); 1 # rows (not including the header row) 1 # columns XB_StoreXML('alpha', 'xml-test-out.xml'); -1 libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/Makefile.am0000664000175000017500000000127712544707704021127 00000000000000 EXTRA_DIST = loadxml1.testcase \ loadxml2.testcase \ loadxml3.testcase \ loadxml4.testcase \ loadxml5.testcase \ loadxml6.testcase \ storexml10.testcase \ storexml11.testcase \ storexml12.testcase \ storexml13.testcase \ storexml14.testcase \ storexml15.testcase \ storexml16.testcase \ storexml1.testcase \ storexml2.testcase \ storexml3.testcase \ storexml4.testcase \ storexml5.testcase \ storexml6.testcase \ storexml7.testcase \ storexml8.testcase \ storexml9.testcase \ importwfs1.testcase \ importwfs2.testcase \ importwfs3.testcase \ importwfs4.testcase \ importwfs5.testcase \ importwfs6.testcase \ importwfs7.testcase \ importwfs8.testcase \ importwfs9.testcase libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/importwfs9.testcase0000664000175000017500000000032412544707704022743 00000000000000ImportWFS - not existing input :memory: #use in-memory database SELECT ImportWFS('./test.wfs', 'p02', 'wfstable'); 1 # rows (not including the header row) 1 # columns ImportWFS('./test.wfs', 'p02', 'wfstable') 3 libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/storexml7.testcase0000664000175000017500000000046012544707704022565 00000000000000XB_LoadXML - valid BLOB payload, NULL indent :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', NULL); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', NULL); -1 libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/storexml12.testcase0000664000175000017500000000046312544707704022644 00000000000000XB_LoadXML - valid BLOB payload, zero-indent :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-zero-indent.xml', 0); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-zero-indent.xml', 0); 1 libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/importwfs3.testcase0000664000175000017500000000031112544707704022731 00000000000000ImportWFS - NULL table :memory: #use in-memory database SELECT ImportWFS('sample.wfs', 'layer', NULL); 1 # rows (not including the header row) 1 # columns ImportWFS('sample.wfs', 'layer', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/loadxml1.testcase0000664000175000017500000000023612544707704022343 00000000000000XB_LoadXML - NULL input :memory: #use in-memory database SELECT XB_LoadXML(NULL); 1 # rows (not including the header row) 1 # columns XB_LoadXML(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/storexml8.testcase0000664000175000017500000000046612544707704022574 00000000000000XB_LoadXML - valid BLOB payload, TEXT indent :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', 'alpha'); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), 'xml-test-out-indent.xml', 'alpha'); -1 libspatialite-4.3.0a/test/sql_stmt_xmlsec_tests/storexml16.testcase0000664000175000017500000000040612544707704022645 00000000000000XB_LoadXML - valid BLOB payload, BLOB path :memory: #use in-memory database SELECT XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), zeroblob(4)); 1 # rows (not including the header row) 1 # columns XB_StoreXML(XB_Create(XB_LoadXML('books.xml')), zeroblob(4)); -1 libspatialite-4.3.0a/test/getcapabilities-1.1.0.wfs0000664000175000017500000010367512544707704016742 00000000000000GeoServer Web Feature ServiceThis is the reference implementation of WFS 1.0.0 and WFS 1.1.0, supports all WFS operations including Transaction.WFSWMSGEOSERVERWFS1.1.0NONENONEThe ancient geographes INCClaudius PtolomaeusChief geographerAlexandriaEgypt1.0.01.1.0text/xmltext/xml; subtype=gml/3.1.1resultshitstext/xml; subtype=gml/3.1.1GML2GML2-GZIPSHAPE-ZIPcsvgml3jsontext/xml; subtype=gml/2.1.22ALLSOMEresultshitstext/xml; subtype=gml/3.1.1GML2GML2-GZIPSHAPE-ZIPcsvgml3jsontext/xml; subtype=gml/2.1.2text/xml; subtype=gml/3.1.1GenerateNewUseExistingReplaceDuplicateALLSOMEQueryInsertUpdateDeleteLocktiger:poly_landmarksManhattan (NY) landmarksManhattan landmarks, identifies water, lakes, parks, interesting buildilngslandmarksDS_poly_landmarksmanhattanpoly_landmarksurn:x-ogc:def:crs:EPSG:4326-74.047185 40.679648-73.90782 40.882078tiger:poiManhattan (NY) points of interestPoints of interest in New York, New York (on Manhattan). One of the attributes contains the name of a file with a picture of the point of interest.poiManhattanDS_poipoints_of_interesturn:x-ogc:def:crs:EPSG:4326-74.0118315772888 40.70754683896324-74.00857344353275 40.711945649065406tiger:tiger_roadsManhattan (NY) roadsHighly simplified road layout of Manhattan in New York..DS_tiger_roadstiger_roadsroadsurn:x-ogc:def:crs:EPSG:4326-74.02722 40.684221-73.907005 40.878178sf:archsitesSpearfish archeological sitesSample data from GRASS, archeological sites location, Spearfish, South Dakota, USAarchsitesspearfishsfArchsitesarcheologyurn:x-ogc:def:crs:EPSG:26713-103.8725637911543 44.37740330855979-103.63794182141925 44.48804280772808sf:bugsitesSpearfish bug locationsSample data from GRASS, bug sites location, Spearfish, South Dakota, USAspearfishsfBugsitesinsectsbugsitestiger_beetlesurn:x-ogc:def:crs:EPSG:26713-103.86796131703647 44.373938816704396-103.63773523234195 44.43418821380063sf:restrictedSpearfish restricted areasSample data from GRASS, restricted areas, Spearfish, South Dakota, USAspearfishrestrictedareassfRestrictedurn:x-ogc:def:crs:EPSG:26713-103.85057172920756 44.39436387625042-103.74741494853805 44.48215752041131sf:roadsSpearfish roadsSample data from GRASS, road layout, Spearfish, South Dakota, USAsfRoadsspearfishroadsurn:x-ogc:def:crs:EPSG:26713-103.87741691493184 44.37087275281798-103.62231404880659 44.50015918338962sf:streamsSpearfish streamsSample data from GRASS, streams, Spearfish, South Dakota, USAspearfishsfStreamsstreamsurn:x-ogc:def:crs:EPSG:26713-103.87789019829768 44.372335260095554-103.62287788915457 44.502218486214815topp:tasmania_citiesTasmania citiesCities in Tasmania (actually, just the capital)citiesTasmaniaurn:x-ogc:def:crs:EPSG:4326145.19754 -43.423512148.27298000000002 -40.852802topp:tasmania_roadsTasmania roadsMain Tasmania roadsRoadsTasmaniaurn:x-ogc:def:crs:EPSG:4326145.19754 -43.423512148.27298000000002 -40.852802topp:tasmania_state_boundariesTasmania state boundariesTasmania state boundariesboundariestasmania_state_boundariesTasmaniaurn:x-ogc:def:crs:EPSG:4326143.83482400000003 -43.648056148.47914100000003 -39.573891topp:tasmania_water_bodiesTasmania water bodiesTasmania water bodiesLakesBodiesAustraliaWaterTasmaniaurn:x-ogc:def:crs:EPSG:4326145.97161899999998 -43.031944147.219696 -41.775558topp:statesUSA PopulationThis is some census data on the states.censusunitedboundariesstatestatesurn:x-ogc:def:crs:EPSG:4326-124.731422 24.955967-66.969849 49.371735tiger:giant_polygonWorld rectangleA simple rectangular polygon covering most of the world, it's only used for the purpose of providing a background (WMS bgcolor could be used instead)DS_giant_polygongiant_polygonurn:x-ogc:def:crs:EPSG:4326-180.0 -90.0180.0 90.0topp:centri_abitati_sismacentri_abitatiurn:x-ogc:def:crs:EPSG:2583210.721 44.61311.656 44.92topp:comuni_sismacomuniurn:x-ogc:def:crs:EPSG:2583210.645 44.55311.884 44.975topp:comunicomuniurn:x-ogc:def:crs:EPSG:230326.539 35.21719.614 47.136topp:edifici_sismaedificiurn:x-ogc:def:crs:EPSG:2583210.65 44.55511.881 44.97topp:f02f02urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.691topp:f03f03urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.695topp:f04f04urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.695topp:f05f05urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.695topp:f06f06urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.694topp:f08f08urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.694topp:ferrovieferrovieurn:x-ogc:def:crs:EPSG:230326.578 36.52619.547 47.048topp:l02l02urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.695topp:l03l03urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.204 46.691topp:l05l05urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.213 46.694topp:l06l06urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.694topp:l07l07urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.695topp:l09l09urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.213 46.692topp:l10l10urn:x-ogc:def:crs:EPSG:2583211.134 46.6211.213 46.695topp:localita_sismalocalitaurn:x-ogc:def:crs:EPSG:2583210.666 44.56611.877 44.967topp:p02p02urn:x-ogc:def:crs:EPSG:2583211.148 46.65811.157 46.681topp:p03p03urn:x-ogc:def:crs:EPSG:2583211.134 46.6211.212 46.691topp:p05p05urn:x-ogc:def:crs:EPSG:2583211.134 46.6211.203 46.69topp:p06p06urn:x-ogc:def:crs:EPSG:2583211.135 46.6211.211 46.69topp:p07p07urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.214 46.695topp:p08p08urn:x-ogc:def:crs:EPSG:2583211.134 46.6211.211 46.69topp:p09p09urn:x-ogc:def:crs:EPSG:2583211.134 46.61911.213 46.691topp:p10p10urn:x-ogc:def:crs:EPSG:2583211.138 46.6211.204 46.69topp:poi_testpoi_testurn:x-ogc:def:crs:EPSG:2583211.152 46.64111.192 46.682topp:province_sismaprovinceurn:x-ogc:def:crs:EPSG:2583210.645 44.55311.884 44.975topp:provinceprovinceurn:x-ogc:def:crs:EPSG:230326.539 35.21719.614 47.136topp:regioniregioniurn:x-ogc:def:crs:EPSG:230326.539 35.21719.614 47.136topp:stazionistazioniurn:x-ogc:def:crs:EPSG:230326.632 36.53919.459 46.964topp:strade_sismastradeurn:x-ogc:def:crs:EPSG:2583210.563 44.52211.885 44.98topp:toponimi_sismatoponimiurn:x-ogc:def:crs:EPSG:2583210.675 44.56811.874 44.962topp:zona_sismicazona_sismicaurn:x-ogc:def:crs:EPSG:2583210.645 44.55311.884 44.975gml:Envelopegml:Pointgml:LineStringgml:PolygonLessThanGreaterThanLessThanEqualToGreaterThanEqualToEqualToNotEqualToLikeBetweenNullCheckabsabs_2abs_3abs_4acosAreaasinatanatan2betweenboundaryboundaryDimensionbufferbufferWithSegmentsCategorizeceilcentroidclassifyCollection_AverageCollection_BoundsCollection_CountCollection_MaxCollection_MedianCollection_MinCollection_SumCollection_UniqueConcatenatecontainsconvertconvexHullcoscrossesdateFormatdateParsedifferencedimensiondisjointdistancedouble2boolendPointenvelopeEqualIntervalequalsExactequalsExactToleranceequalToexpexteriorRingfloorgeometryTypegeomFromWKTgeomLengthgetGeometryNgetXgetYgetZgreaterEqualThangreaterThanidIEEEremainderif_then_elsein10in2in3in4in5in6in7in8in9int2bboolint2ddoubleinteriorPointinteriorRingNInterpolateintersectionintersectsisClosedisEmptyisLikeisNullisRingisSimpleisValidisWithinDistancelengthlessEqualThanlessThanlogmaxmax_2max_3max_4minmin_2min_3min_4notnotEqualTonumberFormatnumGeometriesnumInteriorRingnumPointsoverlapsparseBooleanparseDoubleparseIntparseLongpipointNpowPropertyExistsQuantilerandomRecoderelaterelatePatternrintroundround_2roundDoublesinsqrtStandardDeviationstartPointstrConcatstrEndsWithstrEqualsIgnoreCasestrIndexOfstrLastIndexOfstrLengthstrMatchesstrReplacestrStartsWithstrSubstringstrSubstringStartstrToLowerCasestrToUpperCasestrTrimsymDifferencetantoDegreestoRadianstouchestoWKTunionUniqueIntervalwithinlibspatialite-4.3.0a/test/getcapabilities-1.0.0.wfs0000664000175000017500000005555512544707704016744 00000000000000WFSGeoServer Web Feature ServiceThis is the reference implementation of WFS 1.0.0 and WFS 1.1.0, supports all WFS operations including Transaction.WFS, WMS, GEOSERVERhttp://www.gaia-gis.it:8080/geoserver/wfsNONENONEtiger:poly_landmarksManhattan (NY) landmarksManhattan landmarks, identifies water, lakes, parks, interesting buildilngslandmarks, DS_poly_landmarks, manhattan, poly_landmarksEPSG:4326tiger:poiManhattan (NY) points of interestPoints of interest in New York, New York (on Manhattan). One of the attributes contains the name of a file with a picture of the point of interest.poi, Manhattan, DS_poi, points_of_interestEPSG:4326tiger:tiger_roadsManhattan (NY) roadsHighly simplified road layout of Manhattan in New York..DS_tiger_roads, tiger_roads, roadsEPSG:4326sf:archsitesSpearfish archeological sitesSample data from GRASS, archeological sites location, Spearfish, South Dakota, USAarchsites, spearfish, sfArchsites, archeologyEPSG:26713sf:bugsitesSpearfish bug locationsSample data from GRASS, bug sites location, Spearfish, South Dakota, USAspearfish, sfBugsites, insects, bugsites, tiger_beetlesEPSG:26713sf:restrictedSpearfish restricted areasSample data from GRASS, restricted areas, Spearfish, South Dakota, USAspearfish, restricted, areas, sfRestrictedEPSG:26713sf:roadsSpearfish roadsSample data from GRASS, road layout, Spearfish, South Dakota, USAsfRoads, spearfish, roadsEPSG:26713sf:streamsSpearfish streamsSample data from GRASS, streams, Spearfish, South Dakota, USAspearfish, sfStreams, streamsEPSG:26713topp:tasmania_citiesTasmania citiesCities in Tasmania (actually, just the capital)cities, TasmaniaEPSG:4326topp:tasmania_roadsTasmania roadsMain Tasmania roadsRoads, TasmaniaEPSG:4326topp:tasmania_state_boundariesTasmania state boundariesTasmania state boundariesboundaries, tasmania_state_boundaries, TasmaniaEPSG:4326topp:tasmania_water_bodiesTasmania water bodiesTasmania water bodiesLakes, Bodies, Australia, Water, TasmaniaEPSG:4326topp:statesUSA PopulationThis is some census data on the states.census, united, boundaries, state, statesEPSG:4326tiger:giant_polygonWorld rectangleA simple rectangular polygon covering most of the world, it's only used for the purpose of providing a background (WMS bgcolor could be used instead)DS_giant_polygon, giant_polygonEPSG:4326topp:centri_abitati_sismacentri_abitatiEPSG:25832topp:comuni_sismacomuniEPSG:25832topp:comunicomuniEPSG:23032topp:edifici_sismaedificiEPSG:25832topp:f02f02EPSG:25832topp:f03f03EPSG:25832topp:f04f04EPSG:25832topp:f05f05EPSG:25832topp:f06f06EPSG:25832topp:f08f08EPSG:25832topp:ferrovieferrovieEPSG:23032topp:l02l02EPSG:25832topp:l03l03EPSG:25832topp:l05l05EPSG:25832topp:l06l06EPSG:25832topp:l07l07EPSG:25832topp:l09l09EPSG:25832topp:l10l10EPSG:25832topp:localita_sismalocalitaEPSG:25832topp:p02p02EPSG:25832topp:p03p03EPSG:25832topp:p05p05EPSG:25832topp:p06p06EPSG:25832topp:p07p07EPSG:25832topp:p08p08EPSG:25832topp:p09p09EPSG:25832topp:p10p10EPSG:25832topp:poi_testpoi_testEPSG:25832topp:province_sismaprovinceEPSG:25832topp:provinceprovinceEPSG:23032topp:regioniregioniEPSG:23032topp:stazionistazioniEPSG:23032topp:strade_sismastradeEPSG:25832topp:toponimi_sismatoponimiEPSG:25832topp:zona_sismicazona_sismicaEPSG:25832absabs_2abs_3abs_4acosAreaasinatanatan2betweenboundaryboundaryDimensionbufferbufferWithSegmentsceilcentroidclassifyCollection_AverageCollection_BoundsCollection_CountCollection_MaxCollection_MedianCollection_MinCollection_SumCollection_UniquecontainsconvertconvexHullcoscrossesdateFormatdateParsedifferencedimensiondisjointdistancedouble2boolendPointenvelopeEqualIntervalequalsExactequalsExactToleranceequalToexpexteriorRingfloorgeometryTypegeomFromWKTgeomLengthgetGeometryNgetXgetYgetZgreaterEqualThangreaterThanidIEEEremainderif_then_elsein10in2in3in4in5in6in7in8in9int2bboolint2ddoubleinteriorPointinteriorRingNintersectionintersectsisClosedisEmptyisLikeisNullisRingisSimpleisValidisWithinDistancelengthlessEqualThanlessThanlogmaxmax_2max_3max_4minmin_2min_3min_4notnotEqualTonumberFormatnumGeometriesnumInteriorRingnumPointsoverlapsparseBooleanparseDoubleparseIntparseLongpipointNpowPropertyExistsQuantilerandomrelaterelatePatternrintroundround_2roundDoublesinsqrtStandardDeviationstartPointstrConcatstrEndsWithstrEqualsIgnoreCasestrIndexOfstrLastIndexOfstrLengthstrMatchesstrReplacestrStartsWithstrSubstringstrSubstringStartstrToLowerCasestrToUpperCasestrTrimsymDifferencetantoDegreestoRadianstouchestoWKTunionUniqueIntervalwithin libspatialite-4.3.0a/test/check_md5.c0000664000175000017500000001741012544707704014412 00000000000000/* check_md5.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiaaux.h" int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; int i; double x = 0.0; double y = 0.0; char sql[256]; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } ret = sqlite3_exec (handle, "CREATE TABLE test (id INTEGER PRIMARY KEY NOT NULL, name TEXT NOT NULL)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -3; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('test', 'geom', 4326, 'POINT', 'XY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -4; } for (i = 0; i < 1000; i++) { /* inserting thousand points */ sprintf (sql, "INSERT INTO test (id, name, geom) VALUES " "(%d, 'qwertyUOIOP%d', MakePoint(%1.2f, %1.2f, 4326))", i, i, x, y); x += 0.01; y += 0.25; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Insert Point(%d) error: %s\n", i, err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -5; } } /* testing MD5Checksum() - BLOB */ strcpy (sql, "SELECT MD5Checksum(geom) FROM test WHERE id IN (10, 100, 750)"); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } if ((rows != 3) || (columns != 1)) { fprintf (stderr, "Unexpected error: MD5Checksum (blob) bad result: %i/%i.\n", rows, columns); return -7; } if (strcmp (results[1], "66db2227f970c7881b57247a28e2f893") != 0) { fprintf (stderr, "Unexpected error: MD5Checksum blob-#1 bad result: %s.\n", results[1]); return -8; } if (strcmp (results[2], "6fc5f82a0f9093c5287617cac908b557") != 0) { fprintf (stderr, "Unexpected error: MD5Checksum blob-#2 bad result: %s.\n", results[2]); return -9; } if (strcmp (results[3], "5f92e335d709c85f5858772a5072f0e3") != 0) { fprintf (stderr, "Unexpected error: MD5Checksum blob-#3 bad result: %s.\n", results[3]); return -10; } sqlite3_free_table (results); /* testing the aggregate function: MD5TotalChecksum() - BLOB */ strcpy (sql, "SELECT MD5TotalChecksum(geom) FROM test"); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: MD5TotalChecksum (blob) bad result: %i/%i.\n", rows, columns); return -12; } if (strcmp (results[1], "480b0dd7524a3bb4a75e01123a3eedf0") != 0) { fprintf (stderr, "Unexpected error: MD5TotalChecksum() (blob) bad result: %s.\n", results[1]); return -13; } sqlite3_free_table (results); /* testing MD5Checksum() - TEXT */ strcpy (sql, "SELECT MD5Checksum(name) FROM test WHERE id IN (10, 100, 750)"); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } if ((rows != 3) || (columns != 1)) { fprintf (stderr, "Unexpected error: MD5Checksum (text) bad result: %i/%i.\n", rows, columns); return -15; } if (strcmp (results[1], "05bc33eb92fb4a319da50825571358ad") != 0) { fprintf (stderr, "Unexpected error: MD5Checksum text-#1 bad result: %s.\n", results[1]); return -16; } if (strcmp (results[2], "bbf88f3dfa445ea7a37feca8959b08ed") != 0) { fprintf (stderr, "Unexpected error: MD5Checksum text-#2 bad result: %s.\n", results[2]); return -17; } if (strcmp (results[3], "97805a371d30b02f7a4ee611ff027664") != 0) { fprintf (stderr, "Unexpected error: MD5Checksum text-#3 bad result: %s.\n", results[3]); return -18; } sqlite3_free_table (results); /* testing the aggregate function: MD5TotalChecksum() - TEXT */ strcpy (sql, "SELECT MD5TotalChecksum(name) FROM test"); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -19; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: MD5TotalChecksum (text) bad result: %i/%i.\n", rows, columns); return -20; } if (strcmp (results[1], "b775beceb3ef0ee9d9c16d4ddfe81879") != 0) { fprintf (stderr, "Unexpected error: MD5TotalChecksum() (text) bad result: %s.\n", results[1]); return -21; } sqlite3_free_table (results); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -22; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.3.0a/test/check_gpkgMode.c0000664000175000017500000002036212544707704015462 00000000000000/* check_gpkgMode.c - Test case for GeoPackage Extensions Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Sandro Furieri Portions created by the Initial Developer are Copyright (C) 2014 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #ifdef ENABLE_GEOPACKAGE /* only if GEOPACKAGE is enabled */ #include "sqlite3.h" #include "spatialite.h" static int test_sql_query (sqlite3 * db_handle, const char *sql) { /* testing an SQL query in GeoPackage mode */ int ret; char *err_msg = NULL; char **results; int rows; int columns; ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Test: %s\nError: %s\n", sql, err_msg); sqlite3_free (err_msg); return 0; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Test: %s\nUnexpected error: select columns bad result: %i/%i.\n", sql, rows, columns); return 0; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Test: %s\nUnexpected error: bad result: %s.\n", sql, results[1]); return 0; } sqlite3_free_table (results); return 1; } int main (int argc, char *argv[]) { sqlite3 *db_handle; const char *sql; void *cache = NULL; int ret = 0; char *err_msg = NULL; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* directly testing GPKG */ cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 ("./gpkg_test.gpkg", &db_handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open '%s': %s\n", "copy-gpkg_test.gpkg", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } spatialite_init_ex (db_handle, cache, 0); /* enabling GeoPackage Mode */ ret = sqlite3_exec (db_handle, "SELECT EnableGpkgMode()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "EnableGpkgMode error: %s\n", err_msg); sqlite3_free (err_msg); ret = -2; goto end; } sql = "SELECT GetGpkgMode()"; if (!test_sql_query (db_handle, sql)) { ret = -3; goto end; } ret = 0; /* testing POINTs */ sql = "SELECT IsValidGPB( ShiftCoords(geom, 1.5, 2.5) ) FROM pt2d WHERE id = 3"; if (!test_sql_query (db_handle, sql)) { ret = -3; goto end; } sql = "SELECT IsValidGPB( ST_Translate(geom, 1.5, 2.5, 3.5) ) FROM pt3dz WHERE id = 3"; if (!test_sql_query (db_handle, sql)) { ret = -4; goto end; } sql = "SELECT IsValidGPB( RotateCoords(geom, 30) ) FROM pt2dm WHERE id = 3"; if (!test_sql_query (db_handle, sql)) { ret = -5; goto end; } sql = "SELECT IsValidGPB( SwapCoords(geom) ) FROM pt3dzm WHERE id = 3"; if (!test_sql_query (db_handle, sql)) { ret = -6; goto end; } /* testing LINESTRINGs */ sql = "SELECT IsValidGPB( ST_Collect(geom) ) FROM ln2d"; if (!test_sql_query (db_handle, sql)) { ret = -7; goto end; } sql = "SELECT IsValidGPB( ST_Union(geom) ) FROM ln2dm"; if (!test_sql_query (db_handle, sql)) { ret = -8; goto end; } sql = "SELECT IsValidGPB( ST_Buffer(geom, 0.01) ) FROM ln3dz WHERE id = 2"; if (!test_sql_query (db_handle, sql)) { ret = -9; goto end; } sql = "SELECT IsValidGPB( ST_OffsetCurve(geom, -0.1) ) FROM ln3dzm WHERE id = 1"; if (!test_sql_query (db_handle, sql)) { ret = -10; goto end; } /* testing POLYGONs */ sql = "SELECT IsValidGPB( ST_Collect(geom) ) FROM pg2d"; if (!test_sql_query (db_handle, sql)) { ret = -11; goto end; } sql = "SELECT IsValidGPB( ST_Union(geom) ) FROM pg2dm"; if (!test_sql_query (db_handle, sql)) { ret = -12; goto end; } sql = "SELECT IsValidGPB( ST_Buffer(geom, 0.01) ) FROM pg3dz WHERE id = 2"; if (!test_sql_query (db_handle, sql)) { ret = -13; goto end; } sql = "SELECT IsValidGPB( ST_Envelope(geom) ) FROM pg3dzm WHERE id = 1"; if (!test_sql_query (db_handle, sql)) { ret = -14; goto end; } /* testing MULTIPOINTs */ sql = "SELECT IsValidGPB( ST_ConvexHull(geom) ) FROM mpt2d WHERE id = 2"; if (!test_sql_query (db_handle, sql)) { ret = -15; goto end; } sql = "SELECT IsValidGPB( ST_UnaryUnion( ST_Buffer(geom, 1.5) ) ) FROM mpt3dz WHERE id = 2"; if (!test_sql_query (db_handle, sql)) { ret = -16; goto end; } sql = "SELECT IsValidGPB( ST_Difference( " "ST_GeomFromText('POLYGON((0 0, 0 30, 30 30, 30 0, 0 0))'), " "ST_Buffer(geom, 15) ) ) FROM mpt2dm WHERE id = 2"; if (!test_sql_query (db_handle, sql)) { ret = -17; goto end; } sql = "SELECT IsValidGPB( ST_SymDifference( " "ST_GeomFromText('POLYGON((0 0, 0 30, 30 30, 30 0, 0 0))'), " "ST_Buffer(geom, 15) ) ) FROM mpt3dzm WHERE id = 1"; if (!test_sql_query (db_handle, sql)) { ret = -18; goto end; } /* testing MULTILINESTRINGs */ sql = "SELECT IsValidGPB( ST_StartPoint( ST_GeometryN(geom, 1) ) ) FROM mln2d WHERE id = 1"; if (!test_sql_query (db_handle, sql)) { ret = -19; goto end; } sql = "SELECT IsValidGPB( ST_EndPoint( ST_GeometryN(geom, 1) ) ) FROM mln2dm WHERE id = 2"; if (!test_sql_query (db_handle, sql)) { ret = -20; goto end; } sql = "SELECT IsValidGPB( ST_Line_Interpolate_Point( ST_GeometryN(geom, 1), 0.66) ) FROM mln3dz WHERE id = 2"; if (!test_sql_query (db_handle, sql)) { ret = -21; goto end; } sql = "SELECT IsValidGPB(ST_Line_Substring( ST_GeometryN(geom, 1), 0.33, 0.66) ) FROM mln3dzm WHERE id = 1"; if (!test_sql_query (db_handle, sql)) { ret = -22; goto end; } /* testing MULTIPOLYGONs */ sql = "SELECT IsValidGPB( ST_EndPoint( ST_ExteriorRing( ST_GeometryN(geom, 1) ) ) ) FROM mpg2d WHERE id = 2"; if (!test_sql_query (db_handle, sql)) { ret = -23; goto end; } sql = "SELECT IsValidGPB( ST_DissolvePoints( geom ) ) FROM mpg2dm WHERE id = 2"; if (!test_sql_query (db_handle, sql)) { ret = -24; goto end; } sql = "SELECT IsValidGPB( ST_DissolveSegments( geom ) ) FROM mpg3dz WHERE id = 2"; if (!test_sql_query (db_handle, sql)) { ret = -25; goto end; } sql = "SELECT IsValidGPB( ST_LinesFromRings(geom) ) FROM mpg3dzm WHERE id = 1"; if (!test_sql_query (db_handle, sql)) { ret = -26; goto end; } end: sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return ret; } #endif /* endif GEOPACKAGE enabled */ libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/0000775000175000017500000000000012573314332017730 500000000000000libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointz8.testcase0000664000175000017500000000026712544707704023672 00000000000000gpkgmakepointz8 :memory: #use in-memory database SELECT gpkgMakePointZ("x", -35, 4, 4326) 1 # rows (not including the header row) 1 # columns gpkgMakePointZ("x", -35, 4, 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointm2.testcase0000664000175000017500000000054612544707704023647 00000000000000gpkgmakepointm2 :memory: #use in-memory database SELECT Hex(gpkgMakePointM(136.0, -35.0, 4.0)) 1 # rows (not including the header row) 1 # columns Hex(gpkgMakePointM(136.0, -35.0, 4.0)) 47500007000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/Makefile.in0000664000175000017500000003415312573313636021731 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_geopackage_tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = asgpb1.testcase \ asgpb2.testcase \ asgpb3.testcase \ asgpb4.testcase \ asgpb5.testcase \ asgpb6.testcase \ geomfromgpb10.testcase \ geomfromgpb11.testcase \ geomfromgpb12.testcase \ geomfromgpb13.testcase \ geomfromgpb14.testcase \ geomfromgpb15.testcase \ geomfromgpb16.testcase \ geomfromgpb17.testcase \ geomfromgpb18.testcase \ geomfromgpb19.testcase \ geomfromgpb1.testcase \ geomfromgpb2.testcase \ geomfromgpb3.testcase \ geomfromgpb4.testcase \ geomfromgpb5.testcase \ geomfromgpb6.testcase \ geomfromgpb7.testcase \ geomfromgpb8.testcase \ geomfromgpb9.testcase \ implicitgeopackagebinary1.testcase \ implicitgeopackagebinary2.testcase \ makepoint1.testcase \ makepoint2.testcase \ makepoint3.testcase \ makepoint4.testcase \ makepoint5.testcase \ makepoint6.testcase \ makepoint7.testcase \ makepoint8.testcase \ makepoint9.testcase \ makepointm10.testcase \ makepointm11.testcase \ makepointm1.testcase \ makepointm2.testcase \ makepointm3.testcase \ makepointm4.testcase \ makepointm5.testcase \ makepointm6.testcase \ makepointm7.testcase \ makepointm8.testcase \ makepointm9.testcase \ makepointz10.testcase \ makepointz11.testcase \ makepointz1.testcase \ makepointz2.testcase \ makepointz3.testcase \ makepointz4.testcase \ makepointz5.testcase \ makepointz6.testcase \ makepointz7.testcase \ makepointz8.testcase \ makepointz9.testcase \ makepointzm10.testcase \ makepointzm11.testcase \ makepointzm12.testcase \ makepointzm13.testcase \ makepointzm14.testcase \ makepointzm15.testcase \ makepointzm1.testcase \ makepointzm2.testcase \ makepointzm3.testcase \ makepointzm4.testcase \ makepointzm5.testcase \ makepointzm6.testcase \ makepointzm7.testcase \ makepointzm8.testcase \ makepointzm9.testcase \ transform_geopackage1.testcase \ transform_geopackage1.testcase \ transform_geopackage1.testcase \ transform_geopackage1.testcase \ transform_geopackage1.testcase \ transform_geopackage1.testcase \ transform_geopackage1.testcase \ transform_geopackage1.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_geopackage_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_geopackage_tests/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointzm10.testcase0000664000175000017500000000063012544707704024112 00000000000000gpkgmakepointzm10 :memory: #use in-memory database SELECT Hex(gpkgMakePointZM(136, -35, 4, 9.5)) 1 # rows (not including the header row) 1 # columns Hex(gpkgMakePointZM(136, -35, 4, 9.5)) 47500009000000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointm4.testcase0000664000175000017500000000026412544707704023646 00000000000000gpkgmakepointm4 :memory: #use in-memory database SELECT gpkgMakePointM(136.0, "y", 4.0) 1 # rows (not including the header row) 1 # columns gpkgMakePointM(136.0, "y", 4.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepoint3.testcase0000664000175000017500000000046512544707704023473 00000000000000gpkgmakepoint3 :memory: #use in-memory database SELECT Hex(gpkgMakePoint(136.0, -35.0, 4326)); 1 # rows (not including the header row) 1 # columns Hex(gpkgMakePoint(136.0, -35.0, 4326)) 47500003E61000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/asgpb2.testcase0000664000175000017500000000051512544707704022573 00000000000000asgpb2 :memory: #use in-memory database SELECT Hex(AsGPB(GeomFromText("POINT Z(136 -35 4)"))) 1 # rows (not including the header row) 1 # columns Hex(AsGPB(GeomFromText("POINT Z(136 -35 4)"))) 47500003000000000000000000006140000000000000614000000000008041C000000000008041C001E9030000000000000000614000000000008041C00000000000001040 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointzm6.testcase0000664000175000017500000000030612544707704024037 00000000000000gpkgmakepointzm6 :memory: #use in-memory database SELECT gpkgMakePointZM(136, "y", 3, 9.5, 4326) 1 # rows (not including the header row) 1 # columns gpkgMakePointZM(136, "y", 3, 9.5, 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepoint5.testcase0000664000175000017500000000024612544707704023472 00000000000000gpkgmakepoint5 :memory: #use in-memory database SELECT gpkgMakePoint("a", -35.0) 1 # rows (not including the header row) 1 # columns gpkgMakePoint("a", -35.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointz4.testcase0000664000175000017500000000056212544707704023664 00000000000000gpkgmakepointz4 :memory: #use in-memory database SELECT Hex(gpkgMakePointZ(136.0, -35.0, 4.0, 4326)) 1 # rows (not including the header row) 1 # columns Hex(gpkgMakePointZ(136.0, -35.0, 4.0, 4326)) 47500005E61000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001E9030000000000000000614000000000008041C00000000000001040 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb6.testcase0000664000175000017500000000110612544707704024004 00000000000000geomfromgpb6 :memory: #use in-memory database SELECT AsText(GeomFromGPB(x'47500003E61000000000000000C06040000000000000614000000000008041C000000000000040C0010200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGPB(x'47500003E61000000000000000C06040000000000000614000000000008041C000000000000040C0010200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0')) LINESTRING(136 -35, 134 -33, 135 -32) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointz2.testcase0000664000175000017500000000054612544707704023664 00000000000000gpkgmakepointz2 :memory: #use in-memory database SELECT Hex(gpkgMakePointZ(136, -35, 4, 4326)) 1 # rows (not including the header row) 1 # columns Hex(gpkgMakePointZ(136, -35, 4, 4326)) 47500005E61000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001E9030000000000000000614000000000008041C00000000000001040 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb18.testcase0000664000175000017500000000051012544707704024065 00000000000000geomfromgpb18 :memory: #use in-memory database SELECT GeomFromGPB(x'47500021E610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340') 1 # rows (not including the header row) 1 # columns GeomFromGPB(x'47500021E610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340') (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepoint6.testcase0000664000175000017500000000024212544707704023467 00000000000000gpkgmakepoint6 :memory: #use in-memory database SELECT gpkgMakePoint(136, "b") 1 # rows (not including the header row) 1 # columns gpkgMakePoint(136, "b") (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointzm3.testcase0000664000175000017500000000031212544707704024031 00000000000000gpkgmakepointzm3 :memory: #use in-memory database SELECT gpkgMakePointZM(136, -35, 4, 9.5, "srid") 1 # rows (not including the header row) 1 # columns gpkgMakePointZM(136, -35, 4, 9.5, "srid") (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/implicitgeopackagebinary1.testcase0000664000175000017500000000101412544707704026517 00000000000000implicit geopackage binary 1 :memory: #use in-memory database SELECT Hex(CastToLineString(CastAutomagic(AsGPB(GeomFromText("LINESTRING(136 -35, 134 -33, 135 -32)", 4326))))) 1 # rows (not including the header row) 1 # columns Hex(CastToLineString(CastAutomagic(AsGPB(GeomFromText("LINESTRING(136 -35, 134 -33, 135 -32)", 4326))))) 0001E61000000000000000C0604000000000008041C0000000000000614000000000000040C07C0200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0FE libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb17.testcase0000664000175000017500000000051012544707704024064 00000000000000geomfromgpb17 :memory: #use in-memory database SELECT GeomFromGPB(x'4750000EE610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340') 1 # rows (not including the header row) 1 # columns GeomFromGPB(x'4750000EE610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340') (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/transform_geopackage1.testcase0000664000175000017500000000022312544707704025653 00000000000000transform - null args gpkg_test.gpkg SELECT Transform(NULL, NULL) 1 # rows (not including the header row) 1 # columns Transform(NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepoint4.testcase0000664000175000017500000000045012544707704023466 00000000000000gpkgmakepoint4 :memory: #use in-memory database SELECT Hex(gpkgMakePoint(136.0, -35.0)) 1 # rows (not including the header row) 1 # columns Hex(gpkgMakePoint(136.0, -35.0)) 47500003000000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointz10.testcase0000664000175000017500000000027412544707704023741 00000000000000gpkgmakepointz10 :memory: #use in-memory database SELECT gpkgMakePointZ(135, -35, "z", 4326) 1 # rows (not including the header row) 1 # columns gpkgMakePointZ(135, -35, "z", 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/asgpb3.testcase0000664000175000017500000000053112544707704022572 00000000000000asgpb3 :memory: #use in-memory database SELECT Hex(AsGPB(GeomFromText("POINT Z(136 -35 4)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsGPB(GeomFromText("POINT Z(136 -35 4)", 4326))) 47500003E61000000000000000006140000000000000614000000000008041C000000000008041C001E9030000000000000000614000000000008041C00000000000001040 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointzm2.testcase0000664000175000017500000000064312544707704024037 00000000000000gpkgmakepointzm2 :memory: #use in-memory database SELECT Hex(gpkgMakePointZM(136, -35, 4, 9.5, 4326)) 1 # rows (not including the header row) 1 # columns Hex(gpkgMakePointZM(136, -35, 4, 9.5, 4326)) 47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/asgpb6.testcase0000664000175000017500000000022612544707704022576 00000000000000asgpb6 :memory: #use in-memory database SELECT AsGPB(zeroblob(100)) 1 # rows (not including the header row) 1 # columns AsGPB(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointm8.testcase0000664000175000017500000000027712544707704023656 00000000000000gpkgmakepointm8 :memory: #use in-memory database SELECT gpkgMakePointM("x", -35.0, 4.0, 4326) 1 # rows (not including the header row) 1 # columns gpkgMakePointM("x", -35.0, 4.0, 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointz3.testcase0000664000175000017500000000054612544707704023665 00000000000000gpkgmakepointz3 :memory: #use in-memory database SELECT Hex(gpkgMakePointZ(136.0, -35.0, 4.0)) 1 # rows (not including the header row) 1 # columns Hex(gpkgMakePointZ(136.0, -35.0, 4.0)) 47500005000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001E9030000000000000000614000000000008041C00000000000001040 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb10.testcase0000664000175000017500000000022012544707704024053 00000000000000geomfromgpb10 :memory: #use in-memory database SELECT GeomFromGPB(4) 1 # rows (not including the header row) 1 # columns GeomFromGPB(4) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb16.testcase0000664000175000017500000000115012544707704024064 00000000000000geomfromgpb16 :memory: #use in-memory database SELECT AsText(GeomFromGPB(X'47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGPB(X'47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) POINT ZM(136 -35 4 9.5) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb11.testcase0000664000175000017500000000100312544707704024054 00000000000000geomfromgpb11 :memory: #use in-memory database SELECT AsText(GeomFromGPB(X'47500007000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGPB(X'47500007000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040')) POINT M(136 -35 4) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb2.testcase0000664000175000017500000000024312544707704024001 00000000000000geomfromgpb2 :memory: #use in-memory database SELECT GeomFromGPB(zeroblob(7)) 1 # rows (not including the header row) 1 # columns GeomFromGPB(zeroblob(7)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb3.testcase0000664000175000017500000000024512544707704024004 00000000000000geomfromgpb3 :memory: #use in-memory database SELECT GeomFromGPB(zeroblob(11)) 1 # rows (not including the header row) 1 # columns GeomFromGPB(zeroblob(11)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointzm12.testcase0000664000175000017500000000027312544707704024117 00000000000000gpkgmakepointzm12 :memory: #use in-memory database SELECT gpkgMakePointZM(136, -35, "z", 9) 1 # rows (not including the header row) 1 # columns gpkgMakePointZM(136, -35, "z", 9) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointm7.testcase0000664000175000017500000000030012544707704023640 00000000000000gpkgmakepointm7 :memory: #use in-memory database SELECT gpkgMakePointM(136.0, "y", 4.0, 4326) 1 # rows (not including the header row) 1 # columns gpkgMakePointM(136.0, "y", 4.0, 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb9.testcase0000664000175000017500000000104612544707704024012 00000000000000geomfromgpb9 :memory: #use in-memory database SELECT ST_SRID(GeomFromGPB(x'47500003E61000000000000000C06040000000000000614000000000008041C000000000000040C0010200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0')) 1 # rows (not including the header row) 1 # columns ST_SRID(GeomFromGPB(x'47500003E61000000000000000C06040000000000000614000000000008041C000000000000040C0010200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0')) 4326 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepoint1.testcase0000664000175000017500000000044012544707704023462 00000000000000gpkgmakepoint1 :memory: #use in-memory database SELECT Hex(gpkgMakePoint(136, -35)) 1 # rows (not including the header row) 1 # columns Hex(gpkgMakePoint(136, -35)) 47500003000000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb19.testcase0000664000175000017500000000050712544707704024074 00000000000000geomfromgpb19 :memory: #use in-memory database SELECT AsText(GeomFromGPB(X'47500003000000000000000000006140000000000000614000000000008041C000000000008041C001')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGPB(X'47500003000000000000000000006140000000000000614000000000008041C000000000008041C001')) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointzm4.testcase0000664000175000017500000000030612544707704024035 00000000000000gpkgmakepointzm4 :memory: #use in-memory database SELECT gpkgMakePointZM(136, -35, 4, "m", 4326) 1 # rows (not including the header row) 1 # columns gpkgMakePointZM(136, -35, 4, "m", 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointzm14.testcase0000664000175000017500000000026712544707704024124 00000000000000gpkgmakepointzm14 :memory: #use in-memory database SELECT gpkgMakePointZM("x", -35, 4, 9) 1 # rows (not including the header row) 1 # columns gpkgMakePointZM("x", -35, 4, 9) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb8.testcase0000664000175000017500000000052712544707704024014 00000000000000geomfromgpb7 :memory: #use in-memory database SELECT ST_SRID(GeomFromGPB(x'47500001E610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) 1 # rows (not including the header row) 1 # columns ST_SRID(GeomFromGPB(x'47500001E610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) 4326 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/asgpb4.testcase0000664000175000017500000000021012544707704022565 00000000000000asgpb4 :memory: #use in-memory database SELECT AsGPB("blah") 1 # rows (not including the header row) 1 # columns AsGPB("blah") (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointzm13.testcase0000664000175000017500000000026712544707704024123 00000000000000gpkgmakepointzm13 :memory: #use in-memory database SELECT gpkgMakePointZM(136, "y", 4, 9) 1 # rows (not including the header row) 1 # columns gpkgMakePointZM(136, "y", 4, 9) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointm5.testcase0000664000175000017500000000026412544707704023647 00000000000000gpkgmakepointm5 :memory: #use in-memory database SELECT gpkgMakePointM(136.0, -35, "z") 1 # rows (not including the header row) 1 # columns gpkgMakePointM(136.0, -35, "z") (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointzm7.testcase0000664000175000017500000000030612544707704024040 00000000000000gpkgmakepointzm7 :memory: #use in-memory database SELECT gpkgMakePointZM("x", -35, 3, 9.5, 4326) 1 # rows (not including the header row) 1 # columns gpkgMakePointZM("x", -35, 3, 9.5, 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb14.testcase0000664000175000017500000000115712544707704024071 00000000000000geomfromgpb14 :memory: #use in-memory database SELECT AsEWKT(GeomFromGPB(X'47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) 1 # rows (not including the header row) 1 # columns AsEWKT(GeomFromGPB(X'47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) SRID=4326;POINT(136 -35 4 9.5) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointz5.testcase0000664000175000017500000000025312544707704023662 00000000000000gpkgmakepointz5 :memory: #use in-memory database SELECT gpkgMakePointZ("x", -35, 4) 1 # rows (not including the header row) 1 # columns gpkgMakePointZ("x", -35, 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb1.testcase0000664000175000017500000000063612544707704024006 00000000000000geomfromgpb1 :memory: #use in-memory database SELECT AsText(GeomFromGPB(X'47500003000000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGPB(X'47500003000000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0')) POINT(136 -35) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointzm8.testcase0000664000175000017500000000065312544707704024046 00000000000000gpkgmakepointzm8 :memory: #use in-memory database SELECT Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9, 4326)) 1 # rows (not including the header row) 1 # columns Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9, 4326)) 47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002240000000000000224001B90B0000000000000000614000000000008041C000000000000010400000000000002240 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb7.testcase0000664000175000017500000000055012544707704024007 00000000000000geomfromgpb7 :memory: #use in-memory database SELECT AsText(GeomFromGPB(x'47500001E610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGPB(x'47500001E610000001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) POINT ZM(136 -35 4 9.5) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointm9.testcase0000664000175000017500000000054612544707704023656 00000000000000gpkgmakepointm1 :memory: #use in-memory database SELECT Hex(gpkgMakePointM(136, -35, 4, 4326)) 1 # rows (not including the header row) 1 # columns Hex(gpkgMakePointM(136, -35, 4, 4326)) 47500007E61000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointm6.testcase0000664000175000017500000000030012544707704023637 00000000000000gpkgmakepointm6 :memory: #use in-memory database SELECT gpkgMakePointM(136.0, -35, "z", 4326) 1 # rows (not including the header row) 1 # columns gpkgMakePointM(136.0, -35, "z", 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb4.testcase0000664000175000017500000000026312544707704024005 00000000000000geomfromgpb4 :memory: #use in-memory database SELECT GeomFromGPB(x'4751000000000000') 1 # rows (not including the header row) 1 # columns GeomFromGPB(x'4751000000000000') (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb13.testcase0000664000175000017500000000101412544707704024060 00000000000000geomfromgpb13 :memory: #use in-memory database SELECT AsEWKT(GeomFromGPB(X'47500007E61000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040')) 1 # rows (not including the header row) 1 # columns AsEWKT(GeomFromGPB(X'47500007E61000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040')) SRID=4326;POINTM(136 -35 4) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointz1.testcase0000664000175000017500000000053212544707704023656 00000000000000gpkgmakepointz1 :memory: #use in-memory database SELECT Hex(gpkgMakePointZ(136, -35, 4)) 1 # rows (not including the header row) 1 # columns Hex(gpkgMakePointZ(136, -35, 4)) 47500005000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001E9030000000000000000614000000000008041C00000000000001040 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb5.testcase0000664000175000017500000000026312544707704024006 00000000000000geomfromgpb5 :memory: #use in-memory database SELECT GeomFromGPB(x'4750100000000000') 1 # rows (not including the header row) 1 # columns GeomFromGPB(x'4750100000000000') (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointm10.testcase0000664000175000017500000000056312544707704023725 00000000000000gpkgmakepointm10 :memory: #use in-memory database SELECT Hex(gpkgMakePointM(136.0, -35.0, 4.0, 4326)) 1 # rows (not including the header row) 1 # columns Hex(gpkgMakePointM(136.0, -35.0, 4.0, 4326)) 47500007E61000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb12.testcase0000664000175000017500000000101112544707704024054 00000000000000geomfromgpb12 :memory: #use in-memory database SELECT AsEWKT(GeomFromGPB(X'47500007000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040')) 1 # rows (not including the header row) 1 # columns AsEWKT(GeomFromGPB(X'47500007000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040')) SRID=0;POINTM(136 -35 4) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/implicitgeopackagebinary2.testcase0000664000175000017500000000077612544707704026536 00000000000000implicit geopackage binary 2 :memory: #use in-memory database SELECT Hex(CastToLineString(CastAutomagic(GeomFromText("LINESTRING(136 -35, 134 -33, 135 -32)", 4326)))) 1 # rows (not including the header row) 1 # columns Hex(CastToLineString(CastAutomagic(GeomFromText("LINESTRING(136 -35, 134 -33, 135 -32)", 4326)))) 0001E61000000000000000C0604000000000008041C0000000000000614000000000000040C07C0200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0FE libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointzm15.testcase0000664000175000017500000000064012544707704024120 00000000000000gpkgmakepointzm15 :memory: #use in-memory database SELECT Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9)) 1 # rows (not including the header row) 1 # columns Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9)) 47500009000000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002240000000000000224001B90B0000000000000000614000000000008041C000000000000010400000000000002240 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointzm5.testcase0000664000175000017500000000031212544707704024033 00000000000000gpkgmakepointzm5 :memory: #use in-memory database SELECT gpkgMakePointZM(136, -35, "z", 9.5, 4326) 1 # rows (not including the header row) 1 # columns gpkgMakePointZM(136, -35, "z", 9.5, 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointz9.testcase0000664000175000017500000000026712544707704023673 00000000000000gpkgmakepointz9 :memory: #use in-memory database SELECT gpkgMakePointZ(135, "y", 4, 4326) 1 # rows (not including the header row) 1 # columns gpkgMakePointZ(135, "y", 4, 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointzm9.testcase0000664000175000017500000000064312544707704024046 00000000000000gpkgmakepointzm9 :memory: #use in-memory database SELECT Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9.5)) 1 # rows (not including the header row) 1 # columns Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9.5)) 47500009000000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/Makefile.am0000664000175000017500000000404212544707704021713 00000000000000 EXTRA_DIST = asgpb1.testcase \ asgpb2.testcase \ asgpb3.testcase \ asgpb4.testcase \ asgpb5.testcase \ asgpb6.testcase \ geomfromgpb10.testcase \ geomfromgpb11.testcase \ geomfromgpb12.testcase \ geomfromgpb13.testcase \ geomfromgpb14.testcase \ geomfromgpb15.testcase \ geomfromgpb16.testcase \ geomfromgpb17.testcase \ geomfromgpb18.testcase \ geomfromgpb19.testcase \ geomfromgpb1.testcase \ geomfromgpb2.testcase \ geomfromgpb3.testcase \ geomfromgpb4.testcase \ geomfromgpb5.testcase \ geomfromgpb6.testcase \ geomfromgpb7.testcase \ geomfromgpb8.testcase \ geomfromgpb9.testcase \ implicitgeopackagebinary1.testcase \ implicitgeopackagebinary2.testcase \ makepoint1.testcase \ makepoint2.testcase \ makepoint3.testcase \ makepoint4.testcase \ makepoint5.testcase \ makepoint6.testcase \ makepoint7.testcase \ makepoint8.testcase \ makepoint9.testcase \ makepointm10.testcase \ makepointm11.testcase \ makepointm1.testcase \ makepointm2.testcase \ makepointm3.testcase \ makepointm4.testcase \ makepointm5.testcase \ makepointm6.testcase \ makepointm7.testcase \ makepointm8.testcase \ makepointm9.testcase \ makepointz10.testcase \ makepointz11.testcase \ makepointz1.testcase \ makepointz2.testcase \ makepointz3.testcase \ makepointz4.testcase \ makepointz5.testcase \ makepointz6.testcase \ makepointz7.testcase \ makepointz8.testcase \ makepointz9.testcase \ makepointzm10.testcase \ makepointzm11.testcase \ makepointzm12.testcase \ makepointzm13.testcase \ makepointzm14.testcase \ makepointzm15.testcase \ makepointzm1.testcase \ makepointzm2.testcase \ makepointzm3.testcase \ makepointzm4.testcase \ makepointzm5.testcase \ makepointzm6.testcase \ makepointzm7.testcase \ makepointzm8.testcase \ makepointzm9.testcase \ transform_geopackage1.testcase \ transform_geopackage1.testcase \ transform_geopackage1.testcase \ transform_geopackage1.testcase \ transform_geopackage1.testcase \ transform_geopackage1.testcase \ transform_geopackage1.testcase \ transform_geopackage1.testcase libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/asgpb5.testcase0000664000175000017500000000066712544707704022606 00000000000000asgpb5 :memory: #use in-memory database SELECT Hex(AsGPB(GeomFromText("LINESTRING(136 -35, 134 -33, 135 -32)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsGPB(GeomFromText("LINESTRING(136 -35, 134 -33, 135 -32)", 4326))) 47500003E61000000000000000C06040000000000000614000000000008041C000000000000040C0010200000003000000000000000000614000000000008041C00000000000C0604000000000008040C00000000000E0604000000000000040C0 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepoint9.testcase0000664000175000017500000000026412544707704023476 00000000000000gpkgmakepoint9 :memory: #use in-memory database SELECT gpkgMakePoint(136.0, -35.0, 3.5) 1 # rows (not including the header row) 1 # columns gpkgMakePoint(136.0, -35.0, 3.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointm1.testcase0000664000175000017500000000053212544707704023641 00000000000000gpkgmakepointm1 :memory: #use in-memory database SELECT Hex(gpkgMakePointM(136, -35, 4)) 1 # rows (not including the header row) 1 # columns Hex(gpkgMakePointM(136, -35, 4)) 47500007000000000000000000006140000000000000614000000000008041C000000000008041C00000000000001040000000000000104001D1070000000000000000614000000000008041C00000000000001040 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointm11.testcase0000664000175000017500000000031012544707704023714 00000000000000gpkgmakepointm10 :memory: #use in-memory database SELECT gpkgMakePointM(136.0, -35.0, 4.0, "srd") 1 # rows (not including the header row) 1 # columns gpkgMakePointM(136.0, -35.0, 4.0, "srd") (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/geomfromgpb15.testcase0000664000175000017500000000112712544707704024067 00000000000000geomfromgpb15 :memory: #use in-memory database SELECT ST_SRID(GeomFromGPB(X'47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) 1 # rows (not including the header row) 1 # columns ST_SRID(GeomFromGPB(X'47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340')) 4326 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointz7.testcase0000664000175000017500000000025712544707704023670 00000000000000gpkgmakepointz7 :memory: #use in-memory database SELECT gpkgMakePointZ(135, -35, "z") 1 # rows (not including the header row) 1 # columns gpkgMakePointZ(135, -35, "z") (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointz6.testcase0000664000175000017500000000025312544707704023663 00000000000000gpkgmakepointz6 :memory: #use in-memory database SELECT gpkgMakePointZ(135, "y", 4) 1 # rows (not including the header row) 1 # columns gpkgMakePointZ(135, "y", 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointzm11.testcase0000664000175000017500000000027312544707704024116 00000000000000gpkgmakepointzm11 :memory: #use in-memory database SELECT gpkgMakePointZM(136, -35, 4, "m") 1 # rows (not including the header row) 1 # columns gpkgMakePointZM(136, -35, 4, "m") (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointm3.testcase0000664000175000017500000000026312544707704023644 00000000000000gpkgmakepointm3 :memory: #use in-memory database SELECT gpkgMakePointM("x", -35.0, 4.0) 1 # rows (not including the header row) 1 # columns gpkgMakePointM("x", -35.0, 4.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepoint8.testcase0000664000175000017500000000025612544707704023476 00000000000000gpkgmakepoint8 :memory: #use in-memory database SELECT gpkgMakePoint("a", -35, 4326) 1 # rows (not including the header row) 1 # columns gpkgMakePoint("a", -35, 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepoint7.testcase0000664000175000017500000000025612544707704023475 00000000000000gpkgmakepoint7 :memory: #use in-memory database SELECT gpkgMakePoint(136, "b", 4326) 1 # rows (not including the header row) 1 # columns gpkgMakePoint(136, "b", 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointzm1.testcase0000664000175000017500000000065712544707704024043 00000000000000gpkgmakepointzm1 :memory: #use in-memory database SELECT Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9.5, 4326)) 1 # rows (not including the header row) 1 # columns Hex(gpkgMakePointZM(136.0, -35.0, 4.0, 9.5, 4326)) 47500009E61000000000000000006140000000000000614000000000008041C000000000008041C0000000000000104000000000000010400000000000002340000000000000234001B90B0000000000000000614000000000008041C000000000000010400000000000002340 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/asgpb1.testcase0000664000175000017500000000046412544707704022575 00000000000000togpb1 :memory: #use in-memory database SELECT Hex(AsGPB(GeomFromText("POINT(136 -35)"))) 1 # rows (not including the header row) 1 # columns Hex(AsGPB(GeomFromText("POINT(136 -35)"))) 47500003000000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0 libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepointz11.testcase0000664000175000017500000000027412544707704023742 00000000000000gpkgmakepointz11 :memory: #use in-memory database SELECT gpkgMakePointZ(135, -35, 4, 4326.0) 1 # rows (not including the header row) 1 # columns gpkgMakePointZ(135, -35, 4, 4326.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geopackage_tests/makepoint2.testcase0000664000175000017500000000045412544707704023470 00000000000000gpkgmakepoint2 :memory: #use in-memory database SELECT Hex(gpkgMakePoint(136, -35, 4326)) 1 # rows (not including the header row) 1 # columns Hex(gpkgMakePoint(136, -35, 4326)) 47500003E61000000000000000006140000000000000614000000000008041C000000000008041C00101000000000000000000614000000000008041C0 libspatialite-4.3.0a/test/check_fdo_bufovflw.c0000664000175000017500000002326512544707704016414 00000000000000/* check_fdo2.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; int suffix_len = 16 * 1024; /* 16 KB suffix */ char *suffix; char *pt_2d_wkt; char *pt_3d_wkt; char *geometry; char *sql; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); /* FDO initialization */ sql = "SELECT InitFDOSpatialMetadata()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } /* setting up very long table and column names */ suffix = malloc (suffix_len); memset (suffix, 'z', suffix_len); suffix[suffix_len - 1] = '\0'; pt_2d_wkt = sqlite3_mprintf ("pt_2d_wkt_%s", suffix); pt_3d_wkt = sqlite3_mprintf ("pt_3d_wkt_%s", suffix); geometry = sqlite3_mprintf ("geometry_%s", suffix); /* creating a Point 2D WKT table */ sql = sqlite3_mprintf ("CREATE TABLE %s (id INTEGER, name TEXT, value DOUBLE)", pt_2d_wkt); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -3; } sql = sqlite3_mprintf ("SELECT AddFDOGeometryColumn(%Q, %Q, -1, 1, 2, 'WKT')", pt_2d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } /* creating a Point 3D WKT table */ sql = sqlite3_mprintf ("CREATE TABLE %s (id INTEGER, pic1 BLOB, pic2 BLOB)", pt_3d_wkt); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } sql = sqlite3_mprintf ("SELECT AddFDOGeometryColumn(%Q, %Q, -1, 1, 3, 'WKT')", pt_3d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } /* FDO start-up */ sql = "SELECT AutoFDOStart()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } /* Inserting into pt_2d_wkt */ sql = sqlite3_mprintf ("INSERT INTO %s (id, name, value, %s) VALUES " "(1, 'alpha', 0.1, GeomFromText('POINT(1 2)', -1))", pt_2d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } /* Inserting (take two) into pt_2d_wkt */ sql = sqlite3_mprintf ("INSERT INTO %s (id, name, value, %s) VALUES " "(2, 'beta', 0.2, GeomFromText('POINT(2 3)', -1))", pt_2d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } /* Updating pt_2d_wkt */ sql = sqlite3_mprintf ("UPDATE %s SET name = 'beta', value = 0.2, " "%s = GeomFromText('POINT(10 20)', -1) WHERE id = 1", pt_2d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } /* Deleting form pt_2d_wkt */ sql = sqlite3_mprintf ("DELETE FROM %s WHERE id = 1", pt_2d_wkt); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* Inserting into pt_3d_wkt */ sql = sqlite3_mprintf ("INSERT INTO %s (id, pic1, pic2, %s) VALUES " "(1, zeroblob(16), NULL, GeomFromText('POINTZ(1 2 3)', -1))", pt_3d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } /* checking pt_2d_wkt */ sql = sqlite3_mprintf ("SELECT AsText(%s) FROM %s", geometry, pt_2d_wkt); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -14; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -15; } if (strcmp (results[1], "POINT(2 3)") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -16; } sqlite3_free_table (results); /* checking pt_3d_wkt */ sql = sqlite3_mprintf ("SELECT AsText(%s) FROM %s", geometry, pt_3d_wkt); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -18; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -19; } if (strcmp (results[1], "POINT Z(1 2 3)") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -20; } sqlite3_free_table (results); /* dropping an FDO virtual table */ sql = sqlite3_mprintf ("DROP TABLE %s", pt_2d_wkt); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } /* discarding an FDO Geometry column */ sql = sqlite3_mprintf ("SELECT DiscardFDOGeometryColumn(%Q, %Q)", pt_3d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -22; } /* recovering an FDO Geometry column */ sql = sqlite3_mprintf ("SELECT RecoverFDOGeometryColumn(%Q, %Q, -1, 1, 3, 'WKT')", pt_3d_wkt, geometry); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -23; } /* FDO shut-down */ sql = "SELECT AutoFDOStop()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -24; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -25; } spatialite_cleanup_ex (cache); sqlite3_free (pt_2d_wkt); sqlite3_free (pt_3d_wkt); sqlite3_free (geometry); free (suffix); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_gaia_utf8.c0000664000175000017500000000752212544707704015577 00000000000000/* check_gaia_utf8.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiaaux.h" #ifdef _WIN32 #include "asprintf4win.h" #endif int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ void *converter; char *test_str1; int err; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ asprintf (&test_str1, "Hello World"); gaiaConvertCharset (&test_str1, "ASCII", "UTF-8"); if (strcmp (test_str1, "Hello World") != 0) { fprintf (stderr, "bad ASCII to UTF-8 conversion: %s\n", test_str1); free (test_str1); return -1; } free (test_str1); #if 0 /* TODO: this will cause a buffer overflow */ asprintf (&test_str1, "Hello World"); gaiaConvertCharset (&test_str1, "ASCII", "UTF-16LE"); if (memcmp (test_str1, "H\0e\0l\0l\0o\0 \0W\0o\0r\0l\0d\0\0\0", 24) != 0) { fprintf (stderr, "bad ASCII to UTF-16LE conversion\n"); free (test_str1); return -2; } free (test_str1); #endif converter = gaiaCreateUTF8Converter ("CP1252"); if (!converter) { fprintf (stderr, "null UTF8 converter\n"); return -3; } test_str1 = gaiaConvertToUTF8 (converter, "Hello world", strlen ("Hello world"), &err); if (memcmp ("Hello world", test_str1, strlen ("Hello world") + 1) != 0) { fprintf (stderr, "bad conversion to UTF8: %s\n", test_str1); free (test_str1); return -4; } free (test_str1); gaiaFreeUTF8Converter (converter); converter = NULL; /* test null converter */ gaiaFreeUTF8Converter (converter); test_str1 = gaiaConvertToUTF8 (converter, "Hello world", strlen ("Hello world"), &err); if ((test_str1 != NULL) || (err != 1)) { fprintf (stderr, "unexpected null converter result: %s, %i\n", test_str1, err); return -5; } /* there is no sane way to test this automatically */ printf ("Local codeset: %s\n", gaiaGetLocaleCharset ()); #endif /* end ICONV conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_geometry_cols.c0000664000175000017500000001711212544707704016577 00000000000000/* check_create.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } ret = sqlite3_exec (handle, "CREATE TABLE Point_Test (Name TEXT, Description TEXT)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -3; } ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn(26, 'geomZ', 4326, 'POINT', 'XYZ', 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result AddGeometryColumn int arg1 bad result: %i/%i.\n", rows, columns); return -5; } if (strcmp (results[1], "0") != 0) { fprintf (stderr, "Unexpected result: AddGeometryColumn with non-text arg1 passed: %s.\n", results[1]); return -6; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn('Point_Test', 8, 4326, 'POINT', 'XYZ', 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result AddGeometryColumn int arg2 bad result: %i/%i.\n", rows, columns); return -8; } if (strcmp (results[1], "0") != 0) { fprintf (stderr, "Unexpected result: AddGeometryColumn with non-text arg2 passed: %s.\n", results[1]); return -9; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn('Point_Test', 'geomZ', 'sometext', 'POINT', 'XYZ', 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result AddGeometryColumn text arg3 bad result: %i/%i.\n", rows, columns); return -11; } if (strcmp (results[1], "0") != 0) { fprintf (stderr, "Unexpected result: AddGeometryColumn with non-int arg3 passed: %s.\n", results[1]); return -12; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT AddGeometryColumn('Point_Test', 'geomZ', 4326, 'POINT', 'XYZ', 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result AddGeometryColumn bad result: %i/%i.\n", rows, columns); return -14; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: AddGeometryColumn with good args failed: %s.\n", results[1]); return -15; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomZ) VALUES ('Point 1', 'Some point', GeomFromText('POINTZ(136 -33 365)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POINT XYZ error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -16; } ret = sqlite3_get_table (handle, "SELECT DiscardGeometryColumn('Point_Test', 'geomZ')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result DiscardGeometryColumn bad result: %i/%i.\n", rows, columns); return -18; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: DiscardGeometryColumn failed: %s.\n", results[1]); return -19; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT RecoverGeometryColumn('Point_Test', 'geomZ', 4326, 'POINT', 'XYZ')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -20; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result RecoverGeometryColumn bad result: %i/%i.\n", rows, columns); return -21; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: RecoverGeometryColumn failed: %s.\n", results[1]); return -22; } sqlite3_free_table (results); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -23; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/testDescribeFeatureType.wfs0000664000175000017500000000627212544707704017747 00000000000000 libspatialite-4.3.0a/test/check_gpkgGetImageFormat_webp.c0000664000175000017500000001105312544707704020443 00000000000000/* check_gpkgGetImageFormat_webp.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; void *cache = spatialite_alloc_connection (); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv ("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv ("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_webp.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf ("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv (env); sqlite3_free (env); #else /* not WIN32 */ setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv ("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv ("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } sql_statement = "SELECT gpkgGetImageType(BlobFromFile(\"test.webp\"))"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg (db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf (stderr, "unexpected return value for first step: %i\n", ret); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) { fprintf (stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } if (strcmp ((const char *) sqlite3_column_text (stmt, 0), "x-webp") != 0) { fprintf (stderr, "wrong image type: %s\n", sqlite3_column_text (stmt, 0)); return -33; } ret = sqlite3_step (stmt); if (ret != SQLITE_DONE) { fprintf (stderr, "unexpected return value for second step: %i\n", ret); return -34; } ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.3.0a/test/empty.png0000664000175000017500000000024612544707704014267 00000000000000‰PNG  IHDR&6SŽLô pHYsÅÆlA¿<XIDATxÚíÕ1 ! Q‹ÜÿÊÙvmBWx¿“8NÄ€‘™ã•sÚׇ}›í•‹â±j…ÚzÀêŒDþ“4ñH$‰lü4KIIIIIIIIIIùmi„jrÐIEND®B`‚libspatialite-4.3.0a/test/check_gpkgVirtual.c0000664000175000017500000004152612544707704016231 00000000000000/* check_gpkgVirtual.c - Test case for GeoPackage Extensions Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Sandro Furieri Portions created by the Initial Developer are Copyright (C) 2014 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #ifdef ENABLE_GEOPACKAGE /* only if GEOPACKAGE is enabled */ #include "sqlite3.h" #include "spatialite.h" static void do_unlink_all () { /* deleting all temporary files */ unlink ("./copy-gpkg_test.gpkg"); } static int test_table (sqlite3 * handle, const char *table) { /* testing a 'raw' GPKG table */ char *sql; int ret; sqlite3_stmt *stmt = NULL; sql = sqlite3_mprintf ("SELECT geom, IsValidGPB(geom), ST_Srid(geom), " "ST_MinX(geom), ST_MaxX(geom), ST_MinY(geom), ST_MaxY(geom), " "ST_Is3D(geom), ST_IsMeasured(geom), ST_MinZ(geom), ST_MaxZ(geom), " "ST_MinM(geom), ST_MaxM(geom), ST_GeometryType(geom) FROM %s", table); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free(sql); if (ret != SQLITE_OK) { fprintf (stderr, "SELECT FROM \"%s\" error: %s\n", table, sqlite3_errmsg (handle)); goto stop; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { int is_null = 0; int has_z; int has_m; if (sqlite3_column_type (stmt, 0) == SQLITE_NULL) is_null = 1; if (sqlite3_column_type (stmt, 1) != SQLITE_INTEGER) { fprintf (stderr, "Unexpected ST_IsValidGPB: not an Integer\n"); goto stop; } if (is_null) { if (sqlite3_column_int (stmt, 1) != 0) { fprintf (stderr, "Unexpected result (NULL) ST_IsValidGPB=%d\n", sqlite3_column_int (stmt, 1)); goto stop; } continue; } else { if (sqlite3_column_int (stmt, 1) != 1) { fprintf (stderr, "Unexpected result ST_IsValidGPB=%d\n", sqlite3_column_int (stmt, 1)); goto stop; } } if (sqlite3_column_type (stmt, 2) != SQLITE_INTEGER) { fprintf (stderr, "Unexpected ST_SRID: not an Integer\n"); goto stop; } if (sqlite3_column_int (stmt, 2) != 4326) { fprintf (stderr, "Unexpected result ST_SRID=%d\n", sqlite3_column_int (stmt, 2)); goto stop; } if (sqlite3_column_type (stmt, 3) != SQLITE_FLOAT) { fprintf (stderr, "Unexpected ST_MinX: not a Double\n"); goto stop; } if (sqlite3_column_type (stmt, 4) != SQLITE_FLOAT) { fprintf (stderr, "Unexpected ST_MaxX: not a Double\n"); goto stop; } if (sqlite3_column_type (stmt, 5) != SQLITE_FLOAT) { fprintf (stderr, "Unexpected ST_MinY: not a Double\n"); goto stop; } if (sqlite3_column_type (stmt, 6) != SQLITE_FLOAT) { fprintf (stderr, "Unexpected ST_MaxY: not a Double\n"); goto stop; } if (sqlite3_column_type (stmt, 7) != SQLITE_INTEGER) { fprintf (stderr, "Unexpected ST_Is3D: not an Integer\n"); goto stop; } has_z = sqlite3_column_int (stmt, 7); if (sqlite3_column_type (stmt, 8) != SQLITE_INTEGER) { fprintf (stderr, "Unexpected ST_IsMeasured: not an Integer\n"); goto stop; } has_m = sqlite3_column_int (stmt, 8); if (has_z) { if (sqlite3_column_type (stmt, 9) != SQLITE_FLOAT) { fprintf (stderr, "Unexpected ST_MinZ: not a Double\n"); goto stop; } if (sqlite3_column_type (stmt, 10) != SQLITE_FLOAT) { fprintf (stderr, "Unexpected ST_MaxZ: not a Double\n"); goto stop; } } else { if (sqlite3_column_type (stmt, 9) != SQLITE_NULL) { fprintf (stderr, "Unexpected ST_MinZ: not NULL\n"); goto stop; } if (sqlite3_column_type (stmt, 10) != SQLITE_NULL) { fprintf (stderr, "Unexpected ST_MaxZ: not NULL\n"); goto stop; } } if (has_m) { if (sqlite3_column_type (stmt, 11) != SQLITE_FLOAT) { fprintf (stderr, "Unexpected ST_MinM: not a Double\n"); goto stop; } if (sqlite3_column_type (stmt, 12) != SQLITE_FLOAT) { fprintf (stderr, "Unexpected ST_MaxM: not a Double\n"); goto stop; } } else { if (sqlite3_column_type (stmt, 11) != SQLITE_NULL) { fprintf (stderr, "Unexpected ST_MinM: not NULL\n"); goto stop; } if (sqlite3_column_type (stmt, 12) != SQLITE_NULL) { fprintf (stderr, "Unexpected ST_MaxM: not NULL\n"); goto stop; } } if (sqlite3_column_type (stmt, 13) != SQLITE_TEXT) { fprintf (stderr, "Unexpected ST_GeometryType: not TEXT\n"); goto stop; } } else { /* an unexpected error occurred */ fprintf (stderr, "Error while querying from \"%s\": %s\n", table, sqlite3_errmsg (handle)); goto stop; } } sqlite3_finalize (stmt); return 1; stop: if (stmt != NULL) sqlite3_finalize (stmt); return 0; } static int test_vtable (sqlite3 * handle, const char *table, int mode) { /* testing a VirtualGPKG table */ char *sql; int ret; sqlite3_stmt *stmt = NULL; if (mode) { sql = sqlite3_mprintf ("SELECT ROWID, first_name, " "last_name, value1, value2 FROM vgpkg_%s", table); } else { sql = sqlite3_mprintf ("SELECT geom, ST_AsText(geom), id, name " "FROM vgpkg_%s", table); } ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "SELECT FROM \"vgpkg_%s\" error: %s\n", table, sqlite3_errmsg (handle)); goto stop; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (mode) { if (sqlite3_column_type (stmt, 0) != SQLITE_INTEGER) { fprintf (stderr, "Unexpected ROWID: not an INTEGER\n"); goto stop; } if (sqlite3_column_type (stmt, 1) != SQLITE_TEXT) { fprintf (stderr, "Unexpected \"first_name\": not a TEXT string\n"); goto stop; } if (sqlite3_column_type (stmt, 2) != SQLITE_TEXT) { fprintf (stderr, "Unexpected \"first_name\": not a TEXT string\n"); goto stop; } if (sqlite3_column_type (stmt, 3) != SQLITE_FLOAT) { fprintf (stderr, "Unexpected \"first_name\": not a DOUBLE\n"); goto stop; } if (sqlite3_column_type (stmt, 4) != SQLITE_FLOAT) { fprintf (stderr, "Unexpected \"first_name\": not a DOUBLE\n"); goto stop; } } else { if (sqlite3_column_type (stmt, 0) == SQLITE_NULL) continue; if (sqlite3_column_type (stmt, 1) != SQLITE_TEXT) { fprintf (stderr, "Unexpected ST_AsText: not a TEXT string\n"); goto stop; } if (sqlite3_column_type (stmt, 2) != SQLITE_INTEGER) { fprintf (stderr, "Unexpected \"id\": not an INTEGER\n"); goto stop; } if (sqlite3_column_type (stmt, 3) != SQLITE_TEXT) { fprintf (stderr, "Unexpected \"name\": not a TEXT string\n"); goto stop; } } } else { /* an unexpected error occurred */ fprintf (stderr, "Error while querying from \"vgpkg_%s\": %s\n", table, sqlite3_errmsg (handle)); goto stop; } } sqlite3_finalize (stmt); return 1; stop: if (stmt != NULL) sqlite3_finalize (stmt); return 0; } static int test_vtable_out (sqlite3 * handle) { /* testing VirtualGPKG insert/update/delete */ const char *sql; int ret; char *sql_err = NULL; sql = "BEGIN"; ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); if (ret != SQLITE_OK) { fprintf (stderr, "BEGIN error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } sql = "INSERT INTO vgpkg_test_pk (first_name, last_name, value1, value2, geom) " "VALUES ('z1', 'charlie', 1, 2, MakePoint(3, 3, 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT #1 error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } sql = "INSERT INTO vgpkg_test_pk (first_name, last_name, value1, value2, geom) " "VALUES ('z2', 'annie', 1.1, 2.2, MakePoint(4, 4, 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT #2 error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } sql = "INSERT INTO vgpkg_test_pk (first_name, last_name, value1, value2) " "VALUES ('z3', 'peter', 2.2, 3.3)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT #3 error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } sql = "UPDATE vgpkg_test_pk SET geom = MakePoint(14, 14, 4326) " "WHERE first_name = 'z1'"; ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); if (ret != SQLITE_OK) { fprintf (stderr, "UPDATE #1 error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } sql = "UPDATE vgpkg_test_pk SET value1 = 13.4 " "WHERE ROWID = 3"; ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); if (ret != SQLITE_OK) { fprintf (stderr, "UPDATE #2 error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } sql = "UPDATE vgpkg_test_pk SET geom = NULL, value2 = 51 " "WHERE ROWID = 2"; ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); if (ret != SQLITE_OK) { fprintf (stderr, "UPDATE #3 error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } sql = "DELETE FROM vgpkg_test_pk WHERE ROWID = 1"; ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE #1 error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } sql = "DELETE FROM vgpkg_test_pk WHERE first_name > 'z'"; ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE #2 error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } sql = "ROLLBACK"; ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); if (ret != SQLITE_OK) { fprintf (stderr, "ROLLBACK error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } return 1; } int main (int argc, char *argv[]) { sqlite3 *db_handle; int ret; const char *sql; void *cache = NULL; char *sql_err = NULL; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ do_unlink_all (); /* directly testing GPKG */ ret = system ("cp ./gpkg_test.gpkg copy-gpkg_test.gpkg"); if (ret != 0) { fprintf (stderr, "cannot copy gpkg_test.gpkg database\n"); return -1; } cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 ("./copy-gpkg_test.gpkg", &db_handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open '%s': %s\n", "copy-gpkg_test.gpkg", sqlite3_errmsg (db_handle)); do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } spatialite_init_ex (db_handle, cache, 0); if (!test_table (db_handle, "pt2d")) { do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } if (!test_table (db_handle, "ln3dz")) { do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } if (!test_table (db_handle, "pg2dm")) { do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } if (!test_table (db_handle, "mpt3dzm")) { do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } if (!test_table (db_handle, "mln2dm")) { do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } if (!test_table (db_handle, "mpg3dz")) { do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } if (!test_table (db_handle, "gc3dz")) { do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } /* activating Auto GPKG Wrapping */ sql = "SELECT AutoGPKGStart()"; ret = sqlite3_exec (db_handle, sql, NULL, NULL, &sql_err); if (ret != SQLITE_OK) { fprintf (stderr, "AutoGPKGStart error: %s\n", sql_err); sqlite3_free (sql_err); do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } /* testing the Virtual Tables */ if (!test_vtable (db_handle, "pt2d", 0)) { do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } if (!test_vtable (db_handle, "ln3dz", 0)) { do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } if (!test_vtable (db_handle, "pg2dm", 0)) { do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } if (!test_vtable (db_handle, "mpt3dzm", 0)) { do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } if (!test_vtable (db_handle, "mln2dm", 0)) { do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } if (!test_vtable (db_handle, "mpg3dz", 0)) { do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } if (!test_vtable (db_handle, "gc3dz", 0)) { do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } if (!test_vtable (db_handle, "test_pk", 1)) { do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } if (!test_vtable_out (db_handle)) { do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } /* quitting Auto GPKG Wrapping */ sql = "SELECT AutoGPKGStop()"; ret = sqlite3_exec (db_handle, sql, NULL, NULL, &sql_err); if (ret != SQLITE_OK) { fprintf (stderr, "AutoGPKGStop error: %s\n", sql_err); sqlite3_free (sql_err); do_unlink_all (); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return -1; } sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); do_unlink_all (); return 0; } #endif /* endif GEOPACKAGE enabled */ libspatialite-4.3.0a/test/check_get_normal_zoom_bad_geopackage2.c0000664000175000017500000001140312544707704022152 00000000000000/* check_get_normal_zoom_bad_geopackage2 - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_get_normal_zoom_bad_geopackage2.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* create tables to support future testing */ ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesTable(\"test1_matrix_tiles\", 4326, -180.0, -90.0, 180.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesTable() float bounds result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -3; } /* create matrix levels 0, 1 and 4 */ ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesZoomLevel(0) result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -4; } /* delete the tile_matrix_metadata table (deliberately broken) */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS gpkg_tile_matrix", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP gpkg_tile_matrix error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } /* now do the query */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for broken geopackage, got %i\n", ret); sqlite3_free (err_msg); return -6; } if (strcmp (err_msg, "no such table: gpkg_tile_matrix") != 0) { fprintf (stderr, "Unexpected error message for broken geopackage: %s\n", err_msg); sqlite3_free (err_msg); return -7; } sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.3.0a/test/check_wfsin.c0000664000175000017500000005323412544707704015057 00000000000000/* check_wfsin.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gg_wfs.h" int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; int row_count; int count; int srid; gaiaWFScatalogPtr catalog = NULL; gaiaWFSitemPtr lyr; gaiaWFSschemaPtr schema; gaiaWFScolumnPtr column; char *str; const char *name; int type; int dims; int nillable; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ ret = load_from_wfs (handle, "./test.wfs", NULL, "topp:p02", 0, "test_wfs1", "objectid", 1, &row_count, &err_msg, NULL, NULL); if (!ret) { fprintf (stderr, "load_from_wfs() error for test.wfs (1): %s\n", err_msg); free (err_msg); sqlite3_close (handle); return -3; } if (row_count != 3) { fprintf (stderr, "unexpected row count for test_wfs: %i\n", row_count); sqlite3_close (handle); return -4; } ret = load_from_wfs (handle, "./test.wfs", NULL, "topp:p02", 0, "test_wfs2", NULL, 0, &row_count, &err_msg, NULL, NULL); if (!ret) { fprintf (stderr, "load_from_wfs() error for test.wfs (2): %s\n", err_msg); free (err_msg); sqlite3_close (handle); return -5; } if (row_count != 3) { fprintf (stderr, "unexpected row count for test_wfs: %i\n", row_count); sqlite3_close (handle); return -6; } catalog = create_wfs_catalog ("./getcapabilities-1.0.0.wfs", &err_msg); if (catalog == NULL) { fprintf (stderr, "create_wfs_catalog() error for getcapabilities-1.0.0.wfs: %s\n", err_msg); free (err_msg); sqlite3_close (handle); return -7; } count = get_wfs_catalog_count (catalog); if (count != 49) { fprintf (stderr, "get_wfs_catalog_count() 1.0.0 error: got %d, expected 49\n", count); sqlite3_close (handle); return -8; } lyr = get_wfs_catalog_item (catalog, 2); if (lyr == NULL) { fprintf (stderr, "get_wfs_catalog_item() 1.0.0 error (NULL)\n"); sqlite3_close (handle); return -9; } str = (char *) get_wfs_item_name (lyr); if (str == NULL) { fprintf (stderr, "get_wfs_item_name() 1.0.0 error (NULL)\n"); sqlite3_close (handle); return -10; } if (strcmp (str, "tiger:tiger_roads") != 0) { fprintf (stderr, "get_wfs_item_name() 1.0.0 error: got \"%s\", expected \"tiger:tiger_roads\"\n", str); sqlite3_close (handle); return -11; } str = (char *) get_wfs_item_title (lyr); if (str == NULL) { fprintf (stderr, "get_wfs_item_title() 1.0.0 error (NULL)\n"); sqlite3_close (handle); return -12; } if (strcmp (str, "Manhattan (NY) roads") != 0) { fprintf (stderr, "get_wfs_item_title() 1.0.0 error: got \"%s\", expected \"Manhattan (NY) roads\"\n", str); sqlite3_close (handle); return -13; } str = (char *) get_wfs_item_abstract (lyr); if (str == NULL) { fprintf (stderr, "get_wfs_item_abstract() error (NULL)\n"); sqlite3_close (handle); return -14; } if (strcmp (str, "Highly simplified road layout of Manhattan in New York..") != 0) { fprintf (stderr, "get_wfs_item_abstract() 1.0.0 error: got \"%s\", expected \"Highly simplified road layout of Manhattan in New York..\"\n", str); sqlite3_close (handle); return -15; } count = get_wfs_layer_srid_count (lyr); if (count != 1) { fprintf (stderr, "get_wfs_layer_srid_count() 1.0.0 error: got %d, expected 1\n", count); sqlite3_close (handle); return -16; } srid = get_wfs_layer_srid (lyr, 0); if (srid != 4326) { fprintf (stderr, "get_wfs_layer_srid() 1.0.0 error: got %d, expected 4326\n", srid); sqlite3_close (handle); return -17; } count = get_wfs_keyword_count (lyr); if (count != 3) { fprintf (stderr, "get_wfs_keyword_count() 1.0.0 error: got %d, expected 3\n", count); sqlite3_close (handle); return -18; } str = (char *) get_wfs_keyword (lyr, 2); if (strcmp (str, "roads") != 0) { fprintf (stderr, "get_wfs_keyword() 1.0.0 error: got \"%s\", expected \"roads\"\n", str); sqlite3_close (handle); return -19; } str = (char *) get_wfs_base_request_url (catalog); if (strcmp (str, "http://www.gaia-gis.it:8080/geoserver/wfs?") != 0) { fprintf (stderr, "get_wfs_base_request_url() 1.0.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?\"\n", str); sqlite3_close (handle); return -20; } str = (char *) get_wfs_request_url (catalog, "sf:roads", "1.0.0", 26713, -1); if (strcmp (str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=sf:roads&srsName=EPSG:26713") != 0) { fprintf (stderr, "get_wfs_request_url() 1.0.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=sf:roads&srsName=EPSG:26713\"\n", str); sqlite3_close (handle); return -21; } free (str); str = (char *) get_wfs_describe_url (catalog, "sf:roads", "1.0.0"); if (strcmp (str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=sf:roads") != 0) { fprintf (stderr, "get_wfs_describe_url() 1.0.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=sf:roads\"\n", str); sqlite3_close (handle); return -22; } free (str); destroy_wfs_catalog (catalog); catalog = create_wfs_catalog ("./getcapabilities-1.1.0.wfs", &err_msg); if (catalog == NULL) { fprintf (stderr, "create_wfs_catalog() error for getcapabilities-1.1.0.wfs: %s\n", err_msg); free (err_msg); sqlite3_close (handle); return -23; } count = get_wfs_catalog_count (catalog); if (count != 49) { fprintf (stderr, "get_wfs_catalog_count() 1.1.0 error: got %d, expected 49\n", count); sqlite3_close (handle); return -24; } lyr = get_wfs_catalog_item (catalog, 3); if (lyr == NULL) { fprintf (stderr, "get_wfs_catalog_item() 1.1.0 error (NULL)\n"); sqlite3_close (handle); return -25; } str = (char *) get_wfs_item_name (lyr); if (str == NULL) { fprintf (stderr, "get_wfs_item_name() 1.1.0 error (NULL)\n"); sqlite3_close (handle); return -26; } if (strcmp (str, "sf:archsites") != 0) { fprintf (stderr, "get_wfs_item_name() 1.1.0 error: got \"%s\", expected \"sf:archsites\"\n", str); sqlite3_close (handle); return -27; } str = (char *) get_wfs_item_title (lyr); if (str == NULL) { fprintf (stderr, "get_wfs_item_title() error (NULL)\n"); sqlite3_close (handle); return -28; } if (strcmp (str, "Spearfish archeological sites") != 0) { fprintf (stderr, "get_wfs_item_title() 1.1.0 error: got \"%s\", expected \"Spearfish archeological sites\"\n", str); sqlite3_close (handle); return -29; } str = (char *) get_wfs_item_abstract (lyr); if (str == NULL) { fprintf (stderr, "get_wfs_item_abstract() 1.1.0 error (NULL)\n"); sqlite3_close (handle); return -30; } if (strcmp (str, "Sample data from GRASS, archeological sites location, Spearfish, South Dakota, USA") != 0) { fprintf (stderr, "get_wfs_item_abstract() 1.1.0 error: got \"%s\", expected \"Sample data from GRASS, archeological sites location, Spearfish, South Dakota, USA\"\n", str); sqlite3_close (handle); return -31; } count = get_wfs_layer_srid_count (lyr); if (count != 1) { fprintf (stderr, "get_wfs_layer_srid_count() 1.1.0 error: got %d, expected 1\n", count); sqlite3_close (handle); return -32; } srid = get_wfs_layer_srid (lyr, 0); if (srid != 26713) { fprintf (stderr, "get_wfs_layer_srid() 1.1.0 error: got %d, expected 26713\n", srid); sqlite3_close (handle); return -33; } srid = get_wfs_layer_srid (lyr, 10); if (srid != -1) { fprintf (stderr, "get_wfs_layer_srid() 1.1.0 error: got %d, expected -1\n", srid); sqlite3_close (handle); return -34; } count = get_wfs_keyword_count (lyr); if (count != 4) { fprintf (stderr, "get_wfs_keyword_count() 1.1.0 error: got %d, expected 4\n", count); sqlite3_close (handle); return -35; } str = (char *) get_wfs_keyword (lyr, 1); if (strcmp (str, "spearfish") != 0) { fprintf (stderr, "get_wfs_keyword() 1.1.0 error: got \"%s\", expected \"spearfish\"\n", str); sqlite3_close (handle); return -36; } str = (char *) get_wfs_keyword (lyr, 100); if (str != NULL) { fprintf (stderr, "get_wfs_keyword() 1.1.0 error: expected NULL\n"); sqlite3_close (handle); return -37; } str = (char *) get_wfs_base_request_url (catalog); if (strcmp (str, "http://www.gaia-gis.it:8080/geoserver/wfs?") != 0) { fprintf (stderr, "get_wfs_base_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?\"\n", str); sqlite3_close (handle); return -38; } str = get_wfs_request_url (catalog, "sf:roads", "1.1.0", 26713, 100); if (strcmp (str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&srsName=urn:x-ogc:def:crs:EPSG:26713&maxFeatures=100") != 0) { fprintf (stderr, "get_wfs_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&srsName=urn:x-ogc:def:crs:EPSG:26713&maxFeatures=100\"\n", str); sqlite3_close (handle); return -39; } free (str); str = get_wfs_request_url (catalog, NULL, "1.1.0", 26713, -1); if (str != NULL) { fprintf (stderr, "get_wfs_request_url() 1.1.0 error: expected NULL\n"); sqlite3_close (handle); return -40; } free (str); str = get_wfs_request_url (catalog, "sf:roads", NULL, -1, 100); if (strcmp (str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100") != 0) { fprintf (stderr, "get_wfs_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100\"\n", str); sqlite3_close (handle); return -41; } free (str); str = get_wfs_request_url (catalog, "sf:roads", NULL, 1234, 100); if (strcmp (str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100") != 0) { fprintf (stderr, "get_wfs_request_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=sf:roads&maxFeatures=100\"\n", str); sqlite3_close (handle); return -42; } free (str); str = get_wfs_describe_url (catalog, "sf:roads", "1.1.0"); if (strcmp (str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads") != 0) { fprintf (stderr, "get_wfs_describe_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads\"\n", str); sqlite3_close (handle); return -43; } free (str); str = get_wfs_describe_url (catalog, NULL, "1.1.0"); if (str != NULL) { fprintf (stderr, "get_wfs_describe_url() 1.1.0 error: : expected NULL\n"); sqlite3_close (handle); return -44; } free (str); str = get_wfs_describe_url (catalog, "sf:roads", NULL); if (strcmp (str, "http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads") != 0) { fprintf (stderr, "get_wfs_describe_url() 1.1.0 error: got \"%s\", expected \"http://www.gaia-gis.it:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=sf:roads\"\n", str); sqlite3_close (handle); return -45; } free (str); destroy_wfs_catalog (catalog); lyr = get_wfs_catalog_item (NULL, 3); if (lyr != NULL) { fprintf (stderr, "get_wfs_catalog_item() 1.1.0 error (NULL)\n"); sqlite3_close (handle); return -46; } str = (char *) get_wfs_item_name (NULL); if (str != NULL) { fprintf (stderr, "get_wfs_item_name() 1.1.0 error (NULL)\n"); sqlite3_close (handle); return -47; } str = (char *) get_wfs_item_title (NULL); if (str != NULL) { fprintf (stderr, "get_wfs_item_title() error (NULL)\n"); sqlite3_close (handle); return -48; } str = (char *) get_wfs_item_abstract (NULL); if (str != NULL) { fprintf (stderr, "get_wfs_item_abstract() 1.1.0 error (NULL)\n"); sqlite3_close (handle); return -49; } count = get_wfs_layer_srid_count (NULL); if (count != -1) { fprintf (stderr, "get_wfs_layer_srid_count() 1.1.0 error: got %d, expected -1\n", count); sqlite3_close (handle); return -50; } srid = get_wfs_layer_srid (NULL, 0); if (srid != -1) { fprintf (stderr, "get_wfs_layer_srid() 1.1.0 error: got %d, expected -1\n", srid); sqlite3_close (handle); return -51; } count = get_wfs_keyword_count (NULL); if (count != -1) { fprintf (stderr, "get_wfs_keyword_count() 1.1.0 error: got %d, expected -1\n", count); sqlite3_close (handle); return -52; } str = (char *) get_wfs_keyword (NULL, 1); if (str != NULL) { fprintf (stderr, "get_wfs_keyword() 1.1.0 error: expected NULL\n"); sqlite3_close (handle); return -53; } str = (char *) get_wfs_keyword (NULL, 100); if (str != NULL) { fprintf (stderr, "get_wfs_keyword() 1.1.0 error: expected NULL\n"); sqlite3_close (handle); return -54; } str = (char *) get_wfs_base_request_url (NULL); if (str != NULL) { fprintf (stderr, "get_wfs_base_request_url() error: expected NULL\n"); sqlite3_close (handle); return -55; } str = (char *) get_wfs_base_describe_url (NULL); if (str != NULL) { fprintf (stderr, "get_wfs_base_describe_url() error: expected NULL\n"); sqlite3_close (handle); return -56; } str = (char *) get_wfs_request_url (NULL, "sf:roads", "1.1.0", 26713, -1); if (str != NULL) { fprintf (stderr, "get_wfs_request_url() error: expected NULL\n"); sqlite3_close (handle); return -57; } str = (char *) get_wfs_describe_url (NULL, "sf:roads", "1.1.0"); if (str != NULL) { fprintf (stderr, "get_wfs_describe_url() error: expected NULL\n"); sqlite3_close (handle); return -58; } destroy_wfs_catalog (NULL); schema = create_wfs_schema ("./describefeaturetype.wfs", "sf:roads", &err_msg); if (schema == NULL) { fprintf (stderr, "create_wfs_schema() error for describefeaturetype.wfs: %s\n", err_msg); free (err_msg); sqlite3_close (handle); return -59; } count = get_wfs_schema_column_count (schema); if (count != 8) { fprintf (stderr, "get_wfs_schema_column_count() error: got %d, expected 8\n", count); sqlite3_close (handle); return -60; } column = get_wfs_schema_column (schema, 5); if (column == NULL) { fprintf (stderr, "get_wfs_schema_column() error (NULL)\n"); sqlite3_close (handle); return -61; } if (get_wfs_schema_column_info (column, &name, &type, &nillable) == 0) { fprintf (stderr, "get_wfs_schema_column_info() error\n"); sqlite3_close (handle); return -62; } if (strcmp (name, "codcom") != 0) { fprintf (stderr, "get_wfs_schema_column_info() NAME error: got \"%s\", expected \"codcom\"\n", name); sqlite3_close (handle); return -63; } if (type != SQLITE_TEXT) { fprintf (stderr, "get_wfs_schema_column_info() TYPE error: got %d, expected %d\n", type, SQLITE_TEXT); sqlite3_close (handle); return -64; } if (nillable == 0) { fprintf (stderr, "get_wfs_schema_column_info() NILLABLE error: got %d, expected 1\n", nillable); sqlite3_close (handle); return -65; } if (get_wfs_schema_geometry_info (schema, &name, &type, &srid, &dims, &nillable) == 0) { fprintf (stderr, "get_wfs_schema_geometry_info() error\n"); sqlite3_close (handle); return -66; } if (strcmp (name, "geometry") != 0) { fprintf (stderr, "get_wfs_schema_geometry_info() NAME error: got \"%s\", expected \"geometry\"\n", name); sqlite3_close (handle); return -67; } if (type != GAIA_MULTIPOLYGON) { fprintf (stderr, "get_wfs_schema_geometry_info() TYPE error: got %d, expected %d\n", type, GAIA_MULTIPOLYGON); sqlite3_close (handle); return -68; } if (srid != -1) { fprintf (stderr, "get_wfs_schema_geometry_info() TYPE error: got %d, expected -1\n", srid); sqlite3_close (handle); return -69; } if (dims != 2) { fprintf (stderr, "get_wfs_schema_geometry_info() DIMS error: got %d, expected 2\n", dims); sqlite3_close (handle); return -70; } if (nillable == 0) { fprintf (stderr, "get_wfs_schema_geometry_info() NILLABLE error: got %d, expected 1\n", nillable); sqlite3_close (handle); return -71; } destroy_wfs_schema (schema); schema = create_wfs_schema (NULL, NULL, &err_msg); if (schema != NULL) { fprintf (stderr, "create_wfs_schema() unexpected result for NULL\n"); free (err_msg); sqlite3_close (handle); return -72; } count = get_wfs_schema_column_count (NULL); if (count != -1) { fprintf (stderr, "get_wfs_schema_column_count() unexpected result for NULL\n"); sqlite3_close (handle); return -73; } column = get_wfs_schema_column (NULL, 5); if (column != NULL) { fprintf (stderr, "get_wfs_schema_column() unexpected result for NULL\n"); sqlite3_close (handle); return -74; } if (get_wfs_schema_column_info (NULL, &name, &type, &nillable) != 0) { fprintf (stderr, "get_wfs_schema_column_info() unexpected result for NULL\n"); sqlite3_close (handle); return -75; } if (get_wfs_schema_geometry_info (NULL, &name, &type, &srid, &dims, &nillable) != 0) { fprintf (stderr, "get_wfs_schema_geometry_info() unexpected result for NULL\n"); sqlite3_close (handle); return -76; } destroy_wfs_schema (NULL); #endif /* end LIBXML2 conditional */ ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -77; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_shp_load_3d.c0000664000175000017500000006175612544707704016120 00000000000000/* check_shp_load_3d.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" static int do_test (sqlite3 * handle, const void *p_cache) { int ret; char *err_msg = NULL; int row_count; const char *sql; char **results; int rows; int columns; double tic; gaiaVectorLayersListPtr list; ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } ret = load_shapefile (handle, "shp/merano-3d/polygons", "polygons", "CP1252", 25832, "geom", 0, 1, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error: %s\n", err_msg); sqlite3_close (handle); return -3; } ret = update_layer_statistics (handle, "polygons", "geom"); if (!ret) { fprintf (stderr, "update_layer_statistics() error %s\n", err_msg); sqlite3_close (handle); return -8; } ret = load_shapefile (handle, "shp/merano-3d/roads", "roads", "CP1252", 25832, "geom", 0, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error: %s\n", err_msg); sqlite3_close (handle); return -4; } ret = load_shapefile (handle, "shp/merano-3d/points", "points", "CP1252", 25832, "geom", 0, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error: %s\n", err_msg); sqlite3_close (handle); return -5; } ret = sqlite3_exec (handle, "INSERT INTO polygons (FEATURE_ID, DATUM, HAUSNR) VALUES (1250000, 0.1, 'alpha')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -14; } ret = sqlite3_exec (handle, "INSERT INTO polygons (FEATURE_ID, DATUM, HAUSNR) VALUES (1250000, 0.1, 'alpha')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -15; } ret = sqlite3_exec (handle, "INSERT INTO polygons (FEATURE_ID, DATUM, TEXT_I) VALUES (1250000, 0.1, 'alpha')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT polygons (1) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -16; } ret = sqlite3_exec (handle, "CREATE TABLE polyg_xy (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE polyg_xy error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -17; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('polyg_xy', 'geom', 25832, 'POLYGON', 'XY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeomety polyg_xy error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -17; } ret = sqlite3_exec (handle, "INSERT INTO polyg_xy (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXY(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding polyg_xy (1) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -18; } ret = sqlite3_exec (handle, "INSERT INTO polyg_xy (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXY(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding polyg_xy (2) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -19; } ret = sqlite3_exec (handle, "CREATE TABLE polyg_xym (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE polyg_xym error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -20; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('polyg_xym', 'geom', 25832, 'POLYGON', 'XYM')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometry polyg_xym error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -21; } ret = sqlite3_exec (handle, "INSERT INTO polyg_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding polyg_xym (1) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -22; } ret = sqlite3_exec (handle, "INSERT INTO polyg_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding polyg_xym (2) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -23; } ret = sqlite3_exec (handle, "CREATE TABLE polyg_xyz (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE polyg_xyz error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -24; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('polyg_xyz', 'geom', 25832, 'POLYGON', 'XYZ')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometry polyg_xyz error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -25; } ret = sqlite3_exec (handle, "INSERT INTO polyg_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding polyg_xyz (1) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -26; } ret = sqlite3_exec (handle, "INSERT INTO polyg_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM polygons WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding polyg_xyz (2) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -27; } ret = sqlite3_exec (handle, "CREATE TABLE roads_xyz (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE roads_xyz error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -28; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('roads_xyz', 'geom', 25832, 'LINESTRING', 'XYZ')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeomety roads_xyz error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -29; } ret = sqlite3_exec (handle, "INSERT INTO roads_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding roads_xyz (1) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -30; } ret = sqlite3_exec (handle, "INSERT INTO roads_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding roads_xyz (2) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -31; } ret = sqlite3_exec (handle, "CREATE TABLE roads_xym (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE roads_xym error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -32; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('roads_xym', 'geom', 25832, 'LINESTRING', 'XYM')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometry roads_xym error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -33; } ret = sqlite3_exec (handle, "INSERT INTO roads_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding roads_xym (1) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -34; } ret = sqlite3_exec (handle, "INSERT INTO roads_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding roads_xym (2) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -35; } ret = sqlite3_exec (handle, "CREATE TABLE roads_xyzm (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE roads_xyzm error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -36; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('roads_xyzm', 'geom', 25832, 'LINESTRING', 'XYZM')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometry roads_xyzm error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -37; } ret = sqlite3_exec (handle, "INSERT INTO roads_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding roads_xyzm (1) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -38; } ret = sqlite3_exec (handle, "INSERT INTO roads_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM roads WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding roads_xyzm (2) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -39; } ret = sqlite3_exec (handle, "CREATE TABLE points_xyz (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE points_xyz error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -40; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('points_xyz', 'geom', 25832, 'POINT', 'XYZ')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeomety points_xyz error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -41; } ret = sqlite3_exec (handle, "INSERT INTO points_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding points_xyz (1) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -42; } ret = sqlite3_exec (handle, "INSERT INTO points_xyz (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZ(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding points_xyz (2) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -43; } ret = sqlite3_exec (handle, "CREATE TABLE points_xym (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE points_xym error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -44; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('points_xym', 'geom', 25832, 'POINT', 'XYM')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometry points_xym error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -45; } ret = sqlite3_exec (handle, "INSERT INTO points_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding points_xym (1) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -46; } ret = sqlite3_exec (handle, "INSERT INTO points_xym (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYM(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding points_xym (2) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -47; } ret = sqlite3_exec (handle, "CREATE TABLE points_xyzm (pk_elem INTEGER PRIMARY KEY AUTOINCREMENT, FEATURE_ID INTEGER, DATUM DOUBLE, TEXT_I TEXT, BLOB_I BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE points_xyzm error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -48; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('points_xyzm', 'geom', 25832, 'POINT', 'XYZM')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometry points_xyzm error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -49; } ret = sqlite3_exec (handle, "INSERT INTO points_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding points_xyzm (1) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -50; } ret = sqlite3_exec (handle, "INSERT INTO points_xyzm (pk_elem, FEATURE_ID, DATUM, TEXT_I, BLOB_I, geom) SELECT NULL, FEATURE_ID, DATUM, 'alpha', zeroblob(20), CastToXYZM(geom) FROM points WHERE geom IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "feeding points_xyzm (2) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -51; } elementary_geometries (handle, "points", "geom", "elem_point", "pk_elem", "mul_id"); elementary_geometries (handle, "roads", "geom", "elem_linestring", "pk_elem", "mul_id"); elementary_geometries (handle, "polygons", "geom", "elem_poly", "pk_elem", "mul_id"); elementary_geometries (handle, "polyg_xy", "geom", "elem_poly_xy", "pk_elem1", "mul_id"); elementary_geometries (handle, "polyg_xym", "geom", "elem_poly_xym", "pk_elem1", "mul_id"); elementary_geometries (handle, "polyg_xyz", "geom", "elem_poly_xyz", "pk_elem1", "mul_id"); elementary_geometries (handle, "roads_xyz", "geom", "elem_roads_xy", "pk_elem1", "mul_id"); elementary_geometries (handle, "roads_xym", "geom", "elem_roads_xym", "pk_elem1", "mul_id"); elementary_geometries (handle, "roads_xyzm", "geom", "elem_roads_xyz", "pk_elem1", "mul_id"); elementary_geometries (handle, "points_xyz", "geom", "elem_points_xy", "pk_elem1", "mul_id"); elementary_geometries (handle, "points_xym", "geom", "elem_points_xym", "pk_elem1", "mul_id"); elementary_geometries (handle, "points_xyzm", "geom", "elem_points_xyz", "pk_elem1", "mul_id"); remove_duplicated_rows (handle, "polyg_xy"); remove_duplicated_rows (handle, "polyg_xyz"); remove_duplicated_rows (handle, "polyg_xym"); remove_duplicated_rows (handle, "roads_xyz"); remove_duplicated_rows (handle, "roads_xym"); remove_duplicated_rows (handle, "roads_xyzm"); remove_duplicated_rows (handle, "points_xyz"); remove_duplicated_rows (handle, "points_xym"); remove_duplicated_rows (handle, "points_xyzm"); sql = "CREATE VIEW test_view AS " "SELECT ROWID AS ROWID, pk_elem AS id, geom AS geometry FROM roads_xyz"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test_view error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -52; } sql = "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, " "f_table_name, f_geometry_column, read_only) VALUES " "('test_view', 'geometry', 'rowid', 'roads_xyz', 'geom', 1)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Register SpatialView error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -53; } ret = update_layer_statistics (handle, NULL, NULL); if (!ret) { fprintf (stderr, "update_layer_statistics() error %s\n", err_msg); sqlite3_close (handle); return -54; } sql = "SELECT row_count, extent_min_x, extent_max_y " "FROM geometry_columns_statistics " "WHERE f_table_name LIKE 'roads' " "AND f_geometry_column LIKE 'geom'"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -55; } if (rows != 1) { fprintf (stderr, "Unexpected num of rows for GEOMETRY_COLUMNS_STATISTICS.\n"); return -56; } if (atoi (results[columns + 0]) != 18) { fprintf (stderr, "Unexpected error: GEOMETRY_COLUMNS_STATISTICS bad result row_count: %s\n", results[columns + 0]); return -57; } tic = fabs (atof (results[columns + 1]) - 666057.648017325); if (tic >= 0.00000002) { fprintf (stderr, "Unexpected error: GEOMETRY_COLUMNS_STATISTICS bad result extent_min_x: %s\n", results[columns + 1]); return -58; } tic = fabs (atof (results[columns + 2]) - 5170671.31627796); if (tic >= 0.0000002) { fprintf (stderr, "Unexpected error: GEOMETRY_COLUMNS_STATISTICS bad result extent_max_y: %s\n", results[columns + 2]); return -59; } sqlite3_free_table (results); ret = gaiaDropTable (handle, "polygons"); if (!ret) { fprintf (stderr, "DROP polygons error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -60; } /* checking gaiaGetVectorLayersList() - ALL */ list = gaiaGetVectorLayersList (handle, NULL, NULL, GAIA_VECTORS_LIST_OPTIMISTIC); gaiaFreeVectorLayersList (list); #ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ if (p_cache == NULL) ret = check_all_geometry_columns (handle, "./report", NULL, NULL); else ret = check_all_geometry_columns_r (p_cache, handle, "./report", NULL, NULL); if (!ret) { fprintf (stderr, "check_all_geometry_columns() error\n"); sqlite3_close (handle); return -61; } if (p_cache == NULL) ret = sanitize_all_geometry_columns (handle, "tmp_", "./report", NULL, NULL); else ret = sanitize_all_geometry_columns_r (p_cache, handle, "tmp_", "./report", NULL, NULL); if (!ret) { fprintf (stderr, "sanitize_all_geometry_columns() error\n"); sqlite3_close (handle); return -62; } #endif /* end LWGEOM conditionals */ /* checking gaiaGetVectorLayersList() - Table */ list = gaiaGetVectorLayersList (handle, "elem_points_xyz", NULL, GAIA_VECTORS_LIST_OPTIMISTIC); gaiaFreeVectorLayersList (list); /* checking gaiaGetVectorLayersList() - Table and Geometry */ list = gaiaGetVectorLayersList (handle, "elem_roads_xy", "geom", GAIA_VECTORS_LIST_OPTIMISTIC); gaiaFreeVectorLayersList (list); return 0; } int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = do_test (handle, cache); if (ret != 0) return ret; ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -61; } spatialite_cleanup_ex (cache); /* testing again in legacy mode */ spatialite_init (0); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -62; } ret = do_test (handle, NULL); if (ret != 0) return ret; ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -63; spatialite_cleanup (); } #endif /* end ICONV conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_geoscvt_fncts.c0000664000175000017500000000624612544707704016601 00000000000000/* check_geoscvt_fncts.c -- SpatiaLite Test Case This does "boundary conditions" and error checks for gg_geoscvt functions that are hard to test with SQL. Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiageo.h" int main (int argc, char *argv[]) { #ifndef OMIT_GEOS /* only if GEOS is supported */ gaiaGeomCollPtr result; void *resultVoid; int returnValue = 0; /* Common setup */ gaiaGeomCollPtr emptyGeometry = gaiaAllocGeomColl (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* Tests start here */ /* null input test */ result = gaiaFromGeos_XY ((const void *) NULL); if (result != NULL) { fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -1; goto exit; } resultVoid = gaiaToGeos ((gaiaGeomCollPtr) NULL); if (resultVoid != NULL) { fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -2; goto exit; } /* unknown type geometry collection */ resultVoid = gaiaToGeos (emptyGeometry); if (resultVoid != NULL) { fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -3; goto exit; } /* Cleanup and exit */ exit: gaiaFreeGeomColl (emptyGeometry); spatialite_shutdown (); return returnValue; #endif /* end GEOS conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_styling.c0000664000175000017500000014033412544707704015420 00000000000000 /* check_styling.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2013 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int execute_check (sqlite3 * sqlite, const char *sql, char **error) { /* executing an SQL statement returning True/False */ sqlite3_stmt *stmt; int ret; int retcode = 0; if (error != NULL) *error = NULL; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { if (error != NULL) *error = sqlite3_mprintf ("%s", sqlite3_errmsg (sqlite)); return SQLITE_ERROR; } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) { if (sqlite3_column_int (stmt, 0) == 1) retcode = 1; } sqlite3_finalize (stmt); if (retcode == 1) return SQLITE_OK; return SQLITE_ERROR; } static unsigned char * load_blob (const char *path, int *blob_len) { /* loading an external image */ unsigned char *blob; int sz = 0; int rd; FILE *fl = fopen (path, "rb"); if (!fl) { fprintf (stderr, "cannot open \"%s\"\n", path); return NULL; } if (fseek (fl, 0, SEEK_END) == 0) sz = ftell (fl); blob = (unsigned char *) malloc (sz); *blob_len = sz; rewind (fl); rd = fread (blob, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error \"%s\"\n", path); return NULL; } fclose (fl); return blob; } static unsigned char * load_xml (const char *path, int *len) { /* loading an external XML */ unsigned char *xml; int sz = 0; int rd; FILE *fl = fopen (path, "rb"); if (!fl) { fprintf (stderr, "cannot open \"%s\"\n", path); return NULL; } if (fseek (fl, 0, SEEK_END) == 0) sz = ftell (fl); xml = malloc (sz + 1); *len = sz; rewind (fl); rd = fread (xml, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error \"%s\"\n", path); return NULL; } fclose (fl); xml[rd] = '\0'; return xml; } static char * build_hex_blob (const unsigned char *blob, int blob_len) { /* building an HEX blob */ int i; const unsigned char *p_in = blob; char *hex = malloc ((blob_len * 2) + 1); char *p_out = hex; for (i = 0; i < blob_len; i++) { sprintf (p_out, "%02x", *p_in); p_in++; p_out += 2; } return hex; } static int check_vector (sqlite3 * handle, void *cache) { /* testing Vector Styles */ int ret; char *err_msg = NULL; char *sql; unsigned char *blob; int blob_len; char *hexBlob; unsigned char *xml; int len; /* testing External Graphic */ blob = load_blob ("empty.png", &blob_len); if (blob == NULL) return -4; hexBlob = build_hex_blob (blob, blob_len); free (blob); if (hexBlob == NULL) return -5; sql = sqlite3_mprintf ("SELECT SE_RegisterExternalGraphic('url-A', x%Q)", hexBlob); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterExternalGraphic #1: %s\n\n", err_msg); sqlite3_free (err_msg); return -6; } sql = sqlite3_mprintf ("SELECT SE_RegisterExternalGraphic('url-A', x%Q, 'title', 'abstract', 'file_name')", hexBlob); free (hexBlob); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterExternalGraphic #2: %s\n\n", err_msg); sqlite3_free (err_msg); return -7; } xml = load_xml ("thunderstorm_mild.svg", &len); if (xml == NULL) return -8; gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); free (xml); hexBlob = build_hex_blob (blob, blob_len); free (blob); if (hexBlob == NULL) return -9; sql = sqlite3_mprintf ("SELECT SE_RegisterExternalGraphic('url-A', x%Q)", hexBlob); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterExternalGraphic #3: %s\n\n", err_msg); sqlite3_free (err_msg); return -10; } sql = sqlite3_mprintf ("SELECT SE_RegisterExternalGraphic('url-B', x%Q, 'title', 'abstract', 'file_name')", hexBlob); free (hexBlob); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterExternalGraphic #4: %s\n\n", err_msg); sqlite3_free (err_msg); return -11; } /* creating two vector Tables */ sql = "CREATE TABLE table1 (id INTEGER PRIMARY KEY AUTOINCREMENT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error Create Table table1: %s\n\n", err_msg); sqlite3_free (err_msg); return -12; } sql = "CREATE TABLE table2 (id INTEGER PRIMARY KEY AUTOINCREMENT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error Create Table table2: %s\n\n", err_msg); sqlite3_free (err_msg); return -13; } sql = "SELECT AddGeometryColumn('table1', 'geom', 4326, 'POINT', 'XY')"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error AddGeometryColumn table1: %s\n\n", err_msg); sqlite3_free (err_msg); return -14; } sql = "SELECT AddGeometryColumn('table2', 'geom', 32632, 'POINT', 'XY')"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error AddGeometryColumn table2: %s\n\n", err_msg); sqlite3_free (err_msg); return -15; } /* registering two Vector Coverages */ sql = "SELECT SE_RegisterVectorCoverage('table1', 'table1', 'geom')"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterVectorCoverage table1: %s\n\n", err_msg); sqlite3_free (err_msg); return -16; } sql = "SELECT SE_RegisterVectorCoverage('table2', 'table2', 'geom', 'title-2', 'abstract-2')"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterVectorCoverage table2: %s\n\n", err_msg); sqlite3_free (err_msg); return -17; } sql = "SELECT SE_SetVectorCoverageInfos('table1', 'title-1', 'abstract-1')"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterVectorCoverage table1: %s\n\n", err_msg); sqlite3_free (err_msg); return -18; } /* testing Vector Styles */ xml = load_xml ("stazioni_se.xml", &len); if (xml == NULL) return -19; gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); free (xml); if (blob == NULL) { fprintf (stderr, "this is not a well-formed XML !!!\n"); return -20; } hexBlob = build_hex_blob (blob, blob_len); free (blob); if (hexBlob == NULL) return -21; /* Register Vector Styled Layer */ sql = sqlite3_mprintf ("SELECT SE_RegisterVectorStyle(x%Q)", hexBlob); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterVectorStyle #1: %s\n\n", err_msg); sqlite3_free (err_msg); return -22; } sql = sqlite3_mprintf ("SELECT SE_RegisterVectorStyledLayer('table1', 1)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterVectorStyledLayer #1: %s\n\n", err_msg); sqlite3_free (err_msg); return -23; } sql = sqlite3_mprintf ("SELECT SE_RegisterVectorStyledLayer('table2', 'Railway Stations')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterVectorStyledLayer #2: %s\n\n", err_msg); sqlite3_free (err_msg); return -24; } free (hexBlob); xml = load_xml ("stazioni2_se.xml", &len); if (xml == NULL) return -25; gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); free (xml); if (blob == NULL) { fprintf (stderr, "this is not a well-formed XML !!!\n"); return -26; } hexBlob = build_hex_blob (blob, blob_len); free (blob); if (hexBlob == NULL) return -27; sql = sqlite3_mprintf ("SELECT SE_RegisterVectorStyle(x%Q)", hexBlob); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterVectorStyle #2: %s\n\n", err_msg); sqlite3_free (err_msg); return -29; } sql = sqlite3_mprintf ("SELECT SE_RegisterVectorStyledLayer('table2', 2)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterVectorStyledLayer #3: %s\n\n", err_msg); sqlite3_free (err_msg); return -30; } sql = sqlite3_mprintf ("SELECT SE_RegisterVectorStyle(x%Q)", hexBlob); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error RegisterVectorStyle #3: %s\n\n", "expected failure"); return -31; } /* Reload Vector Style */ sql = sqlite3_mprintf ("SELECT SE_ReloadVectorStyle(12, x%Q)", hexBlob); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error ReloadVectorStyle #1: %s\n\n", "expected failure"); return -33; } sql = sqlite3_mprintf ("SELECT SE_ReloadVectorStyle(1, x%Q)", hexBlob); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error ReloadVectorStyle #2: %s\n\n", "expected failure"); return -34; } sql = sqlite3_mprintf ("SELECT SE_ReloadVectorStyle('Railway Stations', x%Q)", hexBlob); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error ReloadVectorStyle #4: %s\n\n", "expected failure"); return -36; } sql = sqlite3_mprintf ("SELECT SE_ReloadVectorStyle('Railway Stations', x%Q)", hexBlob); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error ReloadVectorStyle #5: %s\n\n", "expected failure"); return -37; } free (hexBlob); xml = load_xml ("stazioni_se.xml", &len); if (xml == NULL) return -35; gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); free (xml); if (blob == NULL) { fprintf (stderr, "this is not a well-formed XML !!!\n"); return -39; } hexBlob = build_hex_blob (blob, blob_len); free (blob); if (hexBlob == NULL) return -40; sql = sqlite3_mprintf ("SELECT SE_ReloadVectorStyle(1, x%Q)", hexBlob); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error ReloadVectorStyle #7: %s\n\n", err_msg); sqlite3_free (err_msg); return -41; } sql = sqlite3_mprintf ("SELECT SE_ReloadVectorStyle('Railway Stations 2', x%Q)", hexBlob); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error ReloadVectorStyle #8: %s\n\n", "expected failure"); return -42; } free (hexBlob); /* Unregister Vector Style */ sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorStyle(5)"); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error UnRegisterVectorStyle #1: %s\n\n", "expected failure"); return -43; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorStyle('alpha')"); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error UnRegisterVectorStyle #2: %s\n\n", "expected failure"); return -44; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorStyle('Railway Stations 2')"); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error UnRegisterVectorStyle #3: %s\n\n", "expected failure"); return -45; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorStyle('Railway Stations 2', 1)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnRegisterVectorStyle #5: %s\n\n", err_msg); sqlite3_free (err_msg); return -47; } /* Register Vector Styled Layer: again */ xml = load_xml ("stazioni2_se.xml", &len); if (xml == NULL) return -48; gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); free (xml); if (blob == NULL) { fprintf (stderr, "this is not a well-formed XML !!!\n"); return -49; } hexBlob = build_hex_blob (blob, blob_len); free (blob); if (hexBlob == NULL) return -50; sql = sqlite3_mprintf ("SELECT SE_RegisterVectorStyle(x%Q)", hexBlob); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterVectorStyle #3: %s\n\n", err_msg); sqlite3_free (err_msg); return -51; } free (hexBlob); sql = sqlite3_mprintf ("SELECT SE_RegisterVectorStyledLayer('table1', 'Railway Stations 2')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterVectorStyledLayer #5: %s\n\n", err_msg); sqlite3_free (err_msg); return -53; } /* Unregister Vector Style Layer */ sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorStyledLayer('table1', 'Railway Stations 2')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnregisterVectorStyledLayer #1: %s\n\n", err_msg); sqlite3_free (err_msg); return -54; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorStyledLayer('table1', 1)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnregisterVectorStyledLayer #2: %s\n\n", err_msg); sqlite3_free (err_msg); return -55; } /* unregister External Graphic */ sql = sqlite3_mprintf ("SELECT SE_UnRegisterExternalGraphic('url-A')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnRegisterExternalGraphic #1: %s\n\n", err_msg); sqlite3_free (err_msg); return -56; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterExternalGraphic('jeroboam')"); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error UnRegisterExternalGraphic #2: %s\n\n", "expected failure"); return -57; } return 0; } static int check_raster (sqlite3 * handle, void *cache) { /* testing Raster Styles */ int ret; char *err_msg = NULL; char *sql; unsigned char *blob; int blob_len; char *hexBlob; unsigned char *xml; int len; /* testing Raster Styles */ xml = load_xml ("raster_se.xml", &len); if (xml == NULL) return -4; gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); free (xml); if (blob == NULL) { fprintf (stderr, "this is not a well-formed XML !!!\n"); return -5; } hexBlob = build_hex_blob (blob, blob_len); free (blob); if (hexBlob == NULL) return -6; /* Register Raster Styled Layer */ sql = sqlite3_mprintf ("SELECT SE_RegisterRasterStyle(x%Q)", hexBlob); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterRasterStyle #1: %s\n\n", err_msg); sqlite3_free (err_msg); return -7; } sql = sqlite3_mprintf ("SELECT SE_RegisterRasterStyledLayer('coverage_srtm1', 1)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterRasterStyledLayer #1: %s\n\n", err_msg); sqlite3_free (err_msg); return -8; } sql = sqlite3_mprintf ("SELECT SE_RegisterRasterStyledLayer('coverage_srtm2', 'srtm_style')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterRasterStyledLayer #2: %s\n\n", err_msg); sqlite3_free (err_msg); return -9; } free (hexBlob); xml = load_xml ("raster2_se.xml", &len); if (xml == NULL) return -10; gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); free (xml); if (blob == NULL) { fprintf (stderr, "this is not a well-formed XML !!!\n"); return -11; } hexBlob = build_hex_blob (blob, blob_len); free (blob); if (hexBlob == NULL) return -12; sql = sqlite3_mprintf ("SELECT SE_RegisterRasterStyle(x%Q)", hexBlob); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterRasterStyle #2: %s\n\n", err_msg); sqlite3_free (err_msg); return -13; } sql = sqlite3_mprintf ("SELECT SE_RegisterRasterStyledLayer('srtm2_style', 2)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterRasterStyledLayer #3: %s\n\n", err_msg); sqlite3_free (err_msg); return -14; } sql = sqlite3_mprintf ("SELECT SE_RegisterRasterStyle(x%Q)", hexBlob); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error RegisterRasterStyle #3: %s\n\n", "expected failure"); return -15; } /* Reload Raster Style */ sql = sqlite3_mprintf ("SELECT SE_ReloadRasterStyle(12, x%Q)", hexBlob); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error ReloadRasterStyle #1: %s\n\n", "expected failure"); return -17; } sql = sqlite3_mprintf ("SELECT SE_ReloadRasterStyle(1, x%Q)", hexBlob); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error ReloadRasterStyle #2: %s\n\n", "expected failure"); return -18; } sql = sqlite3_mprintf ("SELECT SE_ReloadRasterStyle('srtm_style', x%Q)", hexBlob); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error ReloadRasterStyle #4: %s\n\n", "expected failure"); return -20; } free (hexBlob); xml = load_xml ("raster_se.xml", &len); if (xml == NULL) return -22; gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); free (xml); if (blob == NULL) { fprintf (stderr, "this is not a well-formed XML !!!\n"); return -23; } hexBlob = build_hex_blob (blob, blob_len); free (blob); if (hexBlob == NULL) return -24; sql = sqlite3_mprintf ("SELECT SE_ReloadRasterStyle(1, x%Q)", hexBlob); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error ReloadRasterStyle #6: %s\n\n", err_msg); sqlite3_free (err_msg); return -25; } sql = sqlite3_mprintf ("SELECT SE_ReloadRasterrStyle('Railway Stations 2', x%Q)", hexBlob); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error ReloadVRasterStyle #4: %s\n\n", "expected failure"); return -26; } free (hexBlob); /* Unregister Raster Style */ sql = sqlite3_mprintf ("SELECT SE_UnRegisterRasterStyle(5)"); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error UnRegisterRasterStyle #1: %s\n\n", "expected failure"); return -27; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterRasterStyle('alpha')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error UnRegisterRasterStyle #2: %s\n\n", "expected failure"); return -28; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterRasterStyle('srtm2_style')"); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error UnRegisterRasterStyle #3: %s\n\n", "expected failure"); return -29; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterRasterStyle('srtm2_style', 1)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnRegisterRasterStyle #4: %s\n\n", err_msg); sqlite3_free (err_msg); return -31; } /* Register Raster Styled Layer: again */ xml = load_xml ("raster2_se.xml", &len); if (xml == NULL) return -32; gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); free (xml); if (blob == NULL) { fprintf (stderr, "this is not a well-formed XML !!!\n"); return -33; } hexBlob = build_hex_blob (blob, blob_len); free (blob); if (hexBlob == NULL) return -34; sql = sqlite3_mprintf ("SELECT SE_RegisterRasterStyle(x%Q)", hexBlob); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterRasterStyle #5: %s\n\n", err_msg); sqlite3_free (err_msg); return -35; } free (hexBlob); sql = sqlite3_mprintf ("SELECT SE_RegisterRasterStyledLayer('coverage_srtm1', 'srtm2_style')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterRasterStyledLayer #5: %s\n\n", err_msg); sqlite3_free (err_msg); return -37; } /* Unregister Raster Style Layer */ sql = sqlite3_mprintf ("SELECT SE_UnRegisterRasterStyledLayer('coverage_srtm1', 'srtm2_style')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnregisterRasterStyledLayer #1: %s\n\n", err_msg); sqlite3_free (err_msg); return -39; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterRasterStyledLayer('coverage_srtm1', 1)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnregisterRasterStyledLayer #2: %s\n\n", err_msg); sqlite3_free (err_msg); return -40; } return 0; } static int check_group (sqlite3 * handle, void *cache) { /* testing Group Styles */ int ret; char *err_msg = NULL; char *sql; unsigned char *blob; int blob_len; char *hexBlob; unsigned char *xml; int len; /* testing Groups */ sql = sqlite3_mprintf ("SELECT SE_RegisterStyledGroupRaster('group1', 'coverage_srtm1')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroupRaster #1: %s\n\n", err_msg); sqlite3_free (err_msg); return -4; } sql = sqlite3_mprintf ("SELECT SE_SetStyledGroupInfos('group1', 'title', 'abstract')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error SetStyledGroupInfos #1: %s\n\n", err_msg); sqlite3_free (err_msg); return -5; } sql = sqlite3_mprintf ("SELECT SE_RegisterStyledGroupVector('group1', 'table1')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroupVector #1: %s\n\n", err_msg); sqlite3_free (err_msg); return -6; } sql = sqlite3_mprintf ("SELECT SE_RegisterStyledGroupVector('group1', 'table2')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroupVector #2: %s\n\n", err_msg); sqlite3_free (err_msg); return -7; } sql = sqlite3_mprintf ("SELECT SE_SetStyledGroupInfos('group1', 'changed title', 'changed abstract')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error SetStyledGroupInfos #2: %s\n\n", err_msg); sqlite3_free (err_msg); return -8; } sql = sqlite3_mprintf ("SELECT SE_SetStyledGroupInfos('group2', 'title2', 'abstract2')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error SetStyledGroupInfos #3: %s\n\n", err_msg); sqlite3_free (err_msg); return -9; } sql = sqlite3_mprintf ("SELECT SE_RegisterStyledGroupRaster('group2', 'coverage_srtm2')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroupRaster #2: %s\n\n", err_msg); sqlite3_free (err_msg); return -10; } sql = sqlite3_mprintf ("SELECT SE_RegisterStyledGroupVector('group2', 'table1')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroupVector #3: %s\n\n", err_msg); sqlite3_free (err_msg); return -11; } sql = sqlite3_mprintf ("SELECT SE_UnregisterStyledGroupVector('group2', 'table1')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnregisterStyledGroupVector #1: %s\n\n", err_msg); sqlite3_free (err_msg); return -12; } sql = sqlite3_mprintf ("SELECT SE_RegisterStyledGroupVector('group2', 'table2')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroupVector #4: %s\n\n", err_msg); sqlite3_free (err_msg); return -13; } sql = sqlite3_mprintf ("SELECT SE_RegisterStyledGroupVector('group2', 'table1')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroupVector #5: %s\n\n", err_msg); sqlite3_free (err_msg); return -14; } sql = sqlite3_mprintf ("SELECT SE_UnregisterStyledGroupRaster('group2', 'coverage_srtm2')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnregisterStyledGroupRaster #2: %s\n\n", err_msg); sqlite3_free (err_msg); return -15; } sql = sqlite3_mprintf ("SELECT SE_RegisterStyledGroupRaster('group2', 'coverage_srtm1')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroupRaster #3: %s\n\n", err_msg); sqlite3_free (err_msg); return -16; } sql = sqlite3_mprintf ("SELECT SE_RegisterStyledGroupRaster('group2', 'coverage_srtm2')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroupRaster #4: %s\n\n", err_msg); sqlite3_free (err_msg); return -17; } sql = sqlite3_mprintf ("SELECT SE_UnregisterStyledGroupLayer(8)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnregisterStyledGroupLayer #3: %s\n\n", err_msg); sqlite3_free (err_msg); return -18; } sql = sqlite3_mprintf ("SELECT SE_SetStyledGroupInfos('group3', 'title', 'abstract')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error SetStyledGroupInfos #4: %s\n\n", err_msg); sqlite3_free (err_msg); return -19; } sql = sqlite3_mprintf ("SELECT SE_RegisterStyledGroupRaster('group3', 'coverage_srtm1')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroup #10: %s\n\n", err_msg); sqlite3_free (err_msg); return -20; } /* testing Paint Order */ sql = sqlite3_mprintf ("SELECT SE_SetStyledGroupLayerPaintOrder(7, 11)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error SetStyledGroupLayerPaintOrder #1: %s\n\n", err_msg); sqlite3_free (err_msg); return -21; } sql = sqlite3_mprintf ("SELECT SE_SetStyledGroupVectorPaintOrder('group2', 'table2', 12)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error SetStyledGroupVectorPaintOrder #1: %s\n\n", err_msg); sqlite3_free (err_msg); return -22; } sql = sqlite3_mprintf ("SELECT SE_SetStyledGroupRasterPaintOrder('group2', 'coverage_srtm2', 10)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error SetStyledGroupRasterPaintOrder #1: %s\n\n", err_msg); sqlite3_free (err_msg); return -23; } sql = sqlite3_mprintf ("SELECT SE_SetStyledGroupLayerPaintOrder(3, -1)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error SetStyledGroupLayerPaintOrder #2: %s\n\n", err_msg); sqlite3_free (err_msg); return -24; } sql = sqlite3_mprintf ("SELECT SE_SetStyledGroupVectorPaintOrder('group1', 'table1', -1)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error SetStyledGroupLayerPaintOrder #3: %s\n\n", err_msg); sqlite3_free (err_msg); return -25; } sql = sqlite3_mprintf ("SELECT SE_SetStyledGroupRasterPaintOrder('group1', 'coverage_srtm1', -1)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error SetStyledGroupRasterPaintOrder #2: %s\n\n", err_msg); sqlite3_free (err_msg); return -26; } sql = sqlite3_mprintf ("SELECT SE_UnregisterStyledGroup('group2')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnregisterStyledGroup #1: %s\n\n", err_msg); sqlite3_free (err_msg); return -27; } xml = load_xml ("sld_sample.xml", &len); if (xml == NULL) return -29; gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); free (xml); if (blob == NULL) { fprintf (stderr, "this is not a well-formed XML !!!\n"); return -30; } hexBlob = build_hex_blob (blob, blob_len); free (blob); if (hexBlob == NULL) return -31; /* Register Styled Group Style */ sql = sqlite3_mprintf ("SELECT SE_RegisterGroupStyle(x%Q)", hexBlob); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterGroupStyle #1: %s\n\n", err_msg); sqlite3_free (err_msg); return -32; } free (hexBlob); xml = load_xml ("sld_sample2.xml", &len); if (xml == NULL) return -33; gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); free (xml); if (blob == NULL) { fprintf (stderr, "this is not a well-formed XML !!!\n"); return -34; } hexBlob = build_hex_blob (blob, blob_len); free (blob); if (hexBlob == NULL) return -35; sql = sqlite3_mprintf ("SELECT SE_RegisterGroupStyle(x%Q)", hexBlob); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterGroupStyle #2: %s\n\n", err_msg); sqlite3_free (err_msg); return -36; } sql = sqlite3_mprintf ("SELECT SE_ReloadGroupStyle(1, x%Q)", hexBlob); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error ReloadGroupStyle #1: %s\n\n", "expected failure"); return -37; } sql = sqlite3_mprintf ("SELECT SE_ReloadGroupStyle('group style 1', x%Q)", hexBlob); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error ReloadGroupStyle #2: %s\n\n", "expected failure"); return -38; } sql = sqlite3_mprintf ("SELECT SE_ReloadGroupStyle('group style 2', x%Q)", hexBlob); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error ReloadGroupStyle #3: %s\n\n", err_msg); sqlite3_free (err_msg); return -39; } free (hexBlob); xml = load_xml ("sld_sample.xml", &len); if (xml == NULL) return -42; gaiaXmlToBlob (cache, xml, len, 1, NULL, &blob, &blob_len, NULL, NULL); free (xml); if (blob == NULL) { fprintf (stderr, "this is not a well-formed XML !!!\n"); return -43; } hexBlob = build_hex_blob (blob, blob_len); free (blob); if (hexBlob == NULL) return -44; sql = sqlite3_mprintf ("SELECT SE_UnregisterGroupStyle('group style 1')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnregisterGroupStyle #2: %s\n\n", err_msg); sqlite3_free (err_msg); return -46; } sql = sqlite3_mprintf ("SELECT SE_RegisterGroupStyle(x%Q)", hexBlob); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterGroupStyle #4: %s\n\n", err_msg); sqlite3_free (err_msg); return -47; } free (hexBlob); /* testing Styled Group Styles */ sql = sqlite3_mprintf ("SELECT SE_RegisterStyledGroupStyle('group1', 2)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroupStyle #2: %s\n\n", err_msg); sqlite3_free (err_msg); return -50; } sql = sqlite3_mprintf ("SELECT SE_RegisterStyledGroupStyle('group1', 'group style 1')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroupStyle #3: %s\n\n", err_msg); sqlite3_free (err_msg); return -51; } sql = sqlite3_mprintf ("SELECT SE_RegisterStyledGroupStyle('group2', 'group style 1')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterStyledGroupStyle #3: %s\n\n", err_msg); sqlite3_free (err_msg); return -52; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterStyledGroupStyle('group1', 3)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnRegisterStyledGroupStyle #1: %s\n\n", err_msg); sqlite3_free (err_msg); return -53; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterStyledGroupStyle('group2', 'group style 1')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnRegisterStyledGroupStyle #2: %s\n\n", err_msg); sqlite3_free (err_msg); return -54; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterGroupStyle(2, 1)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnRegisterGroupStyle #3: %s\n\n", err_msg); sqlite3_free (err_msg); return -55; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterGroupStyle('group style 1', 1)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnRegisterGroupStyle #4: %s\n\n", err_msg); sqlite3_free (err_msg); return -56; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorStyle(1, 1)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnregisterVectorStyle #6: %s\n\n", err_msg); sqlite3_free (err_msg); return -57; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterRasterStyle(1)"); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error UnregisterRasterStyle #5: %s\n\n", "expected failure"); return -58; } return 0; } static int check_extent (sqlite3 * handle) { /* testing Vector Coverage Extents */ int ret; char *err_msg = NULL; char *sql; /* inserting more alternative SRIDs */ sql = sqlite3_mprintf ("SELECT SE_RegisterVectorCoverageSrid('table1', 32632)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterVectorCoverageSrid #1 %s\n\n", err_msg); sqlite3_free (err_msg); return -1; } sql = sqlite3_mprintf ("SELECT SE_RegisterVectorCoverageSrid('table2', 4326)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterVectorCoverageSrid #2 %s\n\n", err_msg); sqlite3_free (err_msg); return -2; } sql = sqlite3_mprintf ("SELECT SE_RegisterVectorCoverageSrid('table2', 32633)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterVectorCoverageSrid #3 %s\n\n", err_msg); sqlite3_free (err_msg); return -3; } sql = sqlite3_mprintf ("SELECT SE_RegisterVectorCoverageSrid('table2', 32632)"); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error RegisterVectorCoverageSrid #4 %s\n\n", "expected failure"); return -4; } sql = sqlite3_mprintf ("SELECT SE_RegisterVectorCoverageSrid('table99', 4326)"); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error RegisterVectorCoverageSrid #5 %s\n\n", "expected failure"); return -5; } sql = sqlite3_mprintf ("SELECT SE_RegisterVectorCoverageSrid('table99', 4326)"); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error RegisterVectorCoverageSrid #6 %s\n\n", "expected failure"); return -6; } /* inserting few Points just to set an Extent */ sql = sqlite3_mprintf ("INSERT INTO table1 (id, geom) VALUES (NULL, MakePoint(11.4, 42.3, 4326))"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error Insert Point #1 %s\n\n", err_msg); sqlite3_free (err_msg); return -7; } sql = sqlite3_mprintf ("INSERT INTO table1 (id, geom) VALUES (NULL, MakePoint(11.8, 42.3, 4326))"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error Insert Point #2 %s\n\n", err_msg); sqlite3_free (err_msg); return -8; } sql = sqlite3_mprintf ("INSERT INTO table1 (id, geom) VALUES (NULL, MakePoint(11.8, 43.2, 4326))"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error Insert Point #3 %s\n\n", err_msg); sqlite3_free (err_msg); return -9; } sql = sqlite3_mprintf ("INSERT INTO table2 (id, geom) VALUES (NULL, MakePoint(697831.5121, 4685875.1570, 32632))"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error Insert Point #4 %s\n\n", err_msg); sqlite3_free (err_msg); return -10; } sql = sqlite3_mprintf ("INSERT INTO table2 (id, geom) VALUES (NULL, MakePoint(696831.123, 4685875.456, 32632))"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error Insert Point #5 %s\n\n", err_msg); sqlite3_free (err_msg); return -11; } sql = sqlite3_mprintf ("INSERT INTO table2 (id, geom) VALUES (NULL, MakePoint(696531.9876, 4688875.4321, 32632))"); ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error Insert Point #6 %s\n\n", err_msg); sqlite3_free (err_msg); return -12; } sql = sqlite3_mprintf ("SELECT SE_UpdateVectorCoverageExtent(1)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UpdateVectorCoverageExtent #1 %s\n\n", err_msg); sqlite3_free (err_msg); return -13; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorCoverageSrid('table2', 4326)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnRegisterVectorCoverageSrid #1 %s\n\n", err_msg); sqlite3_free (err_msg); return -14; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorCoverageSrid('table2', 32632)"); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error UnRegisterVectorCoverageSrid #2 %s\n\n", "expected failure"); return -15; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorCoverageSrid('table99', 4326)"); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error UnRegisterVectorCoverageSrid #3 %s\n\n", "expected failure"); return -16; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorCoverage('table1')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UnRegisterVectorCoverage #1 %s\n\n", err_msg); sqlite3_free (err_msg); return -17; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorCoverage('table99')"); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error UnRegisterVectorCoverage #2 %s\n\n", "expected failure"); return -18; } sql = sqlite3_mprintf ("SELECT SE_UpdateVectorCoverageExtent('table2', 1)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UpdateVectorCoverageExtent #2 %s\n\n", err_msg); sqlite3_free (err_msg); return -19; } sql = sqlite3_mprintf ("SELECT SE_UnRegisterVectorCoverage('table1')"); ret = execute_check (handle, sql, NULL); sqlite3_free (sql); if (ret == SQLITE_OK) { fprintf (stderr, "Error UnRegisterVectorCoverage #3 %s\n\n", "expected failure"); return -20; } /* creating a furher vector Tables */ sql = "CREATE TABLE tablex (id INTEGER PRIMARY KEY AUTOINCREMENT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error Create Table table3: %s\n\n", err_msg); sqlite3_free (err_msg); return -21; } sql = "SELECT AddGeometryColumn('tablex', 'geom', 4326, 'POINT', 'XY')"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error AddGeometryColumn tablex: %s\n\n", err_msg); sqlite3_free (err_msg); return -22; } sql = "SELECT SE_RegisterVectorCoverage('tablex', 'tablex', 'geom')"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterVectorCoverage tablex: %s\n\n", err_msg); sqlite3_free (err_msg); return -23; } sql = sqlite3_mprintf ("SELECT SE_RegisterVectorCoverageSrid('tablex', 32632)"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error RegisterVectorCoverageSrid #7 %s\n\n", err_msg); sqlite3_free (err_msg); return -24; } sql = sqlite3_mprintf ("SELECT SE_UpdateVectorCoverageExtent('tablex')"); ret = execute_check (handle, sql, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error UpdateVectorCoverageExtent #3 %s\n\n", err_msg); sqlite3_free (err_msg); return -25; } return 0; } int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; char *sql; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); sql = "SELECT InitSpatialMetadata(1, 'WGS84')"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ /* creating the Styling Tables */ sql = "SELECT CreateStylingTables(1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error CreateStylingTables %s\n\n", err_msg); sqlite3_free (err_msg); return -3; } ret = check_vector (handle, cache); if (ret != 0) return -100 - ret; ret = check_raster (handle, cache); if (ret != 0) return -200 - ret; ret = check_group (handle, cache); if (ret != 0) return -300 - ret; ret = check_extent (handle); if (ret != 0) return -400 - ret; #endif ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -57; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/shapetest1.shx0000664000175000017500000000016412544707704015227 00000000000000' :è ãÖ'_ŽJA1¾dïþ%QA0g¬i³‘JAR#‚ÃR&QA2 @ libspatialite-4.3.0a/test/sql_stmt_tests/0000775000175000017500000000000012573314332015562 500000000000000libspatialite-4.3.0a/test/sql_stmt_tests/setendpoint10.testcase0000664000175000017500000000041712544707704021745 00000000000000ST_SetEndPoint() - BLOB Point :memory: #use in-memory database SELECT ST_SetEndPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), zeroblob(4)) 1 # rows (not including the header row) 1 # columns ST_SetEndPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector14.testcase0000664000175000017500000000035712544707704023303 00000000000000makeellipticsector14 - blob start :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, zeroblob(4), 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, zeroblob(4), 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/reflectcoords11.testcase0000664000175000017500000000052012544707704022243 00000000000000reflectcoords10 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("LINESTRINGZM(-1 -1 10 1, 1 0 11 2, 0 1 12 3)"), 1, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("LINESTRINGZM(-1 -1 10 1, 1 0 11 2, 0 1 12 3)"), 1, 1)) LINESTRING ZM(1 1 10 1, -1 0 11 2, 0 -1 12 3) libspatialite-4.3.0a/test/sql_stmt_tests/ismeasured1.testcase0000664000175000017500000000022712544707704021471 00000000000000IsMeasured- non-blob :memory: #use in-memory database SELECT ST_IsMeasured(3) 1 # rows (not including the header row) 1 # columns ST_IsMeasured(3) -1 libspatialite-4.3.0a/test/sql_stmt_tests/pointn7.testcase0000664000175000017500000000041512544707704020644 00000000000000pointN - regular LINESTRING (last point) :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), -1)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), -1)) POINT(8 4) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt3.testcase0000664000175000017500000000014112544707704021163 00000000000000From EWKT - non text :memory: SELECT GeomFromEwkt(43) 1 # rows 1 # column GeomFromEwkt(43) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/lhr5.testcase0000664000175000017500000000205612544707704020123 00000000000000forceLHR - GeometryCollection XYM :memory: #use in-memory database SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 13, 9 9 13), POLYGONM((10 10 11, 15 10 13, 13 13 13, 10 10 11), (11 10.5 10, 13 10.5 11, 13 11.3 13, 11 10.5 10)), POLYGONM((20 20 10, 24.1 20 11, 22 18 13, 20 20 10), (21 19.5 11, 23.1 19.5 13, 22 18.5 13, 21 19.5 11)))", 4326))); 1 # rows (not including the header row) 1 # columns AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 13, 9 9 13), POLYGONM((10 10 11, 15 10 13, 13 13 13, 10 10 11), (11 10.5 10, 13 10.5 11, 13 11.3 13, 11 10.5 10)), POLYGONM((20 20 10, 24.1 20 11, 22 18 13, 20 20 10), (21 19.5 11, 23.1 19.5 13, 22 18.5 13, 21 19.5 11)))", 4326))) SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 10),LINESTRINGM(3 4 10,5 6 11,7 8 13,9 9 13),POLYGONM((10 10 11,13 13 13,15 10 13,10 10 11),(11 10.5 10,13 10.5 11,13 11.3 13,11 10.5 10)),POLYGONM((20 20 10,24.1 20 11,22 18 13,20 20 10),(21 19.5 11,22 18.5 13,23.1 19.5 13,21 19.5 11))) libspatialite-4.3.0a/test/sql_stmt_tests/wkb1.testcase0000664000175000017500000000046312544707704020115 00000000000000Hex Wkb: MultiPoint XY (single point) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTIPOINT(1.2 3.4)", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTIPOINT(1.2 3.4)", 4326))); 0104000000010000000101000000333333333333F33F3333333333330B40 libspatialite-4.3.0a/test/sql_stmt_tests/asbinary6.testcase0000664000175000017500000000056612544707704021153 00000000000000asbinary - multipointm :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MultiPointM(1 2 3,2 4 4)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MultiPointM(1 2 3,2 4 4)", 4326))) 01D40700000200000001D1070000000000000000F03F0000000000000040000000000000084001D1070000000000000000004000000000000010400000000000001040 libspatialite-4.3.0a/test/sql_stmt_tests/clonetable3.testcase0000664000175000017500000000033012544707704021435 00000000000000CloneTable() - NULL output-table :memory: #use in-memory database SELECT CloneTable('prefix', 'in_table', NULL, 1) 1 # rows (not including the header row) 1 # columns CloneTable('prefix', 'in_table', NULL, 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat10.testcase0000664000175000017500000000042312544707704022620 00000000000000normalizelonlat- out of range negative lat huge :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(4 -390)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(4 -390)", 4326))) POINT(4 -30) libspatialite-4.3.0a/test/sql_stmt_tests/minm2.testcase0000664000175000017500000000024012544707704020264 00000000000000MinM - bad blob :memory: #use in-memory database SELECT ST_MinM(zeroblob(48)) 1 # rows (not including the header row) 1 # columns ST_MinM(zeroblob(48)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/gml9.testcase0000664000175000017500000000133612544707704020121 00000000000000GML GeometryCollection Z (Point, Linestring) - no SRID :memory: #use in-memory database SELECT AsGML(3, GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(3 8 100), LINESTRINGZ(1 2 100, 3 4 101))")); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(3 8 100), LINESTRINGZ(1 2 100, 3 4 101))")) 3 8 1001 2 100 3 4 101:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector13.testcase0000664000175000017500000000033412544707704023274 00000000000000makecircularsector13 - text stop :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, 30, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, 30, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/st_z8.testcase0000664000175000017500000000025612544707704020320 00000000000000ST_Z8 :memory: #use in-memory database SELECT ST_Z(MakePointM(136, -35, 635.2)); 1 # rows (not including the header row) 1 # columns ST_Z(MakePointM(136, -35, 635.2)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint25.testcase0000664000175000017500000000051612544707704021221 00000000000000ST_AddPoint() - append (no index) ZM :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRINGZM(0 0 1 3, 1 0 2 3)'), MakePoint(1, 1))) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRINGZM(0 0 1 3, 1 0 2 3)'), MakePoint(1, 1))) LINESTRING ZM(0 0 1 3, 1 0 2 3, 1 1 0 0) libspatialite-4.3.0a/test/sql_stmt_tests/buildmbr1.testcase0000664000175000017500000000030712544707704021127 00000000000000buildmbr - null args :memory: #use in-memory database SELECT BuildMbr(NULL, NULL, NULL, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildMbr(NULL, NULL, NULL, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/nrings5.testcase0000664000175000017500000000064312544707704020636 00000000000000nrings - Polygon plus linestring :memory: #use in-memory database SELECT ST_NRings(GeomFromText("GeometryCollection(POLYGON((1 2, 3 4, 5 0, 1 2), (1.6 2.1, 1.7 2.1, 1.7 2.2, 1.6 2.2, 1.6 2.1)), LINESTRING(1 3, 4 6))")) 1 # rows (not including the header row) 1 # columns ST_NRings(GeomFromText("GeometryCollection(POLYGON((1 2, 3 4, 5 0, 1 2), (1.6 2.1, 1.7 2.1, 1.7 2.2, 1.6 2.2, 1.6 2.1)), LINESTRING(1 3, 4 6))")) 2 libspatialite-4.3.0a/test/sql_stmt_tests/forcenull16.testcase0000664000175000017500000000030712544707704021406 00000000000000ForceAsNull() - BLOB/NULL :memory: #use in-memory database SELECT Hex(ForceAsNull(x'0102a1b2', NULL)) 1 # rows (not including the header row) 1 # columns Hex(ForceAsNull(x'0102a1b2', NULL)) 0102A1B2 libspatialite-4.3.0a/test/sql_stmt_tests/greatcircle-poly4.testcase0000664000175000017500000000035612544707704022603 00000000000000great circle length polygonM :memory: SELECT GreatCircleLength(GeomFromText("POLYGONM((0 0 2, 1 0 3, 0 0 2, 0 0 2))", 4326)); 1 # rows 1 # column GreatCircleLength(GeomFromText("POLYGONM((0 0 2, 1 0 3, 0 0 2, 0 0 2))", 4326)) 222390.15:9 libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints6.testcase0000664000175000017500000000043112544707704022551 00000000000000geometry constraints - 4 arg, POINT :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("Point(1 2)", 4326), "POINT", 4326, "XY") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("Point(1 2)", 4326), "POINT", 4326, "XY") 1 libspatialite-4.3.0a/test/sql_stmt_tests/atmisvalid5.testcase0000664000175000017500000000025712544707704021474 00000000000000ATM_IsValid() - invalid blob :memory: #use in-memory database SELECT ATM_IsValid(zeroblob(10)) 1 # rows (not including the header row) 1 # columns ATM_IsValid(zeroblob(10)) 0 libspatialite-4.3.0a/test/sql_stmt_tests/fromgml18.testcase0000664000175000017500000000335412544707704021067 00000000000000FromGML - GeometryCollection v3 3D :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('8 8 10.59 9 10.5 10.1 10.1 10.60 0 10 5 0 11 5 5 13 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 5')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('8 8 10.59 9 10.5 10.1 10.1 10.60 0 10 5 0 11 5 5 13 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 5')):0 SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 10.5),LINESTRING(9 9 10.5,10.1 10.1 10.6),POLYGON((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5))) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml28.testcase0000664000175000017500000000071312544707704021064 00000000000000FromGML - MULTIPOINT, single point :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2')) 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2')):0 SRID=-1;MULTIPOINT(1 2) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector3.testcase0000664000175000017500000000034312544707704023213 00000000000000makecircularsector3 - BLOB cx :memory: #use in-memory database SELECT MakeCircularSector(zeroblob(4), 0, 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(zeroblob(4), 0, 100, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/gml1.testcase0000664000175000017500000000107312544707704020107 00000000000000GML MultiPoint Z: excessive precision :memory: #use in-memory database SELECT AsGML(3, GeomFromText("MULTIPOINTZ(1 2 100, 3 4 100)", 4326), 44); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("MULTIPOINTZ(1 2 100, 3 4 100)", 4326), 44) 1 2 1003 4 100:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb2.testcase0000664000175000017500000000025112544707704020735 00000000000000fromWkb - bad blob :memory: #use in-memory database SELECT GeomFromWkb(zeroblob(50)) 1 # rows (not including the header row) 1 # columns GeomFromWkb(zeroblob(50)) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/mbrminmax3.testcase0000664000175000017500000000024212544707704021321 00000000000000MbrMaxX- bad blob :memory: #use in-memory database SELECT MbrMaxX(zeroblob(48)) 1 # rows (not including the header row) 1 # columns MbrMaxX(zeroblob(48)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt33.testcase0000664000175000017500000000126612544707704021257 00000000000000fromewkt32 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(9 9 9), GEOMETRYCOLLECTION(POINT(0 0 9), LINESTRING(1 1 9, 2 2 9)), POINT(8 8 9), GEOMETRYCOLLECTION(POINT(3 3 9), LINESTRING(4 4 9, 5 5 9)), POINT(7 7 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(9 9 9), GEOMETRYCOLLECTION(POINT(0 0 9), LINESTRING(1 1 9, 2 2 9)), POINT(8 8 9), GEOMETRYCOLLECTION(POINT(3 3 9), LINESTRING(4 4 9, 5 5 9)), POINT(7 7 9))')); GEOMETRYCOLLECTION Z(POINT Z(9 9 9), POINT Z(0 0 9), POINT Z(8 8 9), POINT Z(3 3 9), POINT Z(7 7 9), LINESTRING Z(1 1 9, 2 2 9), LINESTRING Z(4 4 9, 5 5 9)) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatescale1.testcase0000664000175000017500000000072712544707704022312 00000000000000ATM_CreateScale() - valid (int) :memory: #use in-memory database SELECT Hex(ATM_CreateScale(1, 2)) 1 # rows (not including the header row) 1 # columns Hex(ATM_CreateScale(1, 2)) 0001000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A00000000000000403A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/collect56.testcase0000664000175000017500000000134512544707704021051 00000000000000collect - PolygonZM, MULTILINESTRING :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONZM((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1),(1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1))"), GeomFromText("MULTILINESTRING((4 5, 1 2, 4 2),(2 3, 3 4, 3 3))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONZM((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1),(1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1))"), GeomFromText("MULTILINESTRING((4 5, 1 2, 4 2),(2 3, 3 4, 3 3))"))) GEOMETRYCOLLECTION ZM(LINESTRING ZM(4 5 0 0, 1 2 0 0, 4 2 0 0), LINESTRING ZM(2 3 0 0, 3 4 0 0, 3 3 0 0), POLYGON ZM((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1), (1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1))) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry26.testcase0000664000175000017500000000056112544707704023027 00000000000000CompressGeometry - LINESTRING ZM :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("LINESTRINGZM(1 2 100 10, 3 4 101 11, 5 6 102 12)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("LINESTRINGZM(1 2 100 10, 3 4 101 11, 5 6 102 12)", 4326))) LINESTRING ZM(1 2 100 10, 3 4 101 11, 5 6 102 12) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry61.testcase0000664000175000017500000000135212544707704023025 00000000000000CompressGeometry - GEOMETRYCOLLECTION ZM (2 Polygons) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((10 10 77 7, 11 10 88 8, 11 11 99 9, 10 11 88 8, 10 10 77 7)), POLYGONZM((15 15 55 5, 16 15 56 6, 16 16 57 7, 15 16 58 8, 15 15 55 5)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((10 10 77 7, 11 10 88 8, 11 11 99 9, 10 11 88 8, 10 10 77 7)), POLYGONZM((15 15 55 5, 16 15 56 6, 16 16 57 7, 15 16 58 8, 15 15 55 5)))", 4326))) GEOMETRYCOLLECTION ZM(POLYGON ZM((10 10 77 7, 11 10 88 8, 11 11 99 9, 10 11 88 8, 10 10 77 7)), POLYGON ZM((15 15 55 5, 16 15 56 6, 16 16 57 7, 15 16 58 8, 15 15 55 5))) libspatialite-4.3.0a/test/sql_stmt_tests/casttolinestring1.testcase0000664000175000017500000000027512544707704022727 00000000000000casttolinestring - bad blob :memory: #use in-memory database SELECT CastToLineString(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToLineString(zeroblob(99)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asbinary2.testcase0000664000175000017500000000024512544707704021141 00000000000000asbinary - bad blob :memory: #use in-memory database SELECT AsBinary(zeroblob(20)) 1 # rows (not including the header row) 1 # columns AsBinary(zeroblob(20)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype40.testcase0000664000175000017500000000064412544707704021247 00000000000000geometrytype - GEOMETRYCOLLECTIONZ - one polygon :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZ(POLYGONZ((4 6 0,7 10 0, 12 3 1, 4 6 0)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION Z XYZ GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/sridax2orient3.testcase0000664000175000017500000000031312544707704022123 00000000000000SridGetAxis_2_Orientation() - DOUBLE SRID :memory: #use in-memory database SELECT SridGetAxis_2_Orientation(1.0) 1 # rows (not including the header row) 1 # columns SridGetAxis_2_Orientation(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype48.testcase0000664000175000017500000000061312544707704021253 00000000000000geometrytype - MULTIPOLYGONM - one polygon :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTIPOLYGONM(((30 20 1, 10 40 1, 45 40 1, 30 20 1)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTIPOLYGON M XYM MULTIPOLYGONlibspatialite-4.3.0a/test/sql_stmt_tests/forcenull1.testcase0000664000175000017500000000024512544707704021321 00000000000000ForceAsNull() - INTEGER/DOUBLE :memory: #use in-memory database SELECT ForceAsNull(1, 1.5) 1 # rows (not including the header row) 1 # columns ForceAsNull(1, 1.5) 1 libspatialite-4.3.0a/test/sql_stmt_tests/ismeasured5.testcase0000664000175000017500000000032212544707704021471 00000000000000IsMeasured- Point XYM :memory: #use in-memory database SELECT ST_IsMeasured(GeomFromText('POINTM(1 2 10)')); 1 # rows (not including the header row) 1 # columns ST_IsMeasured(GeomFromText('POINTM(1 2 10)')) 1 libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr17.testcase0000664000175000017500000000026012544707704021051 00000000000000garsmbr - bad longitude :memory: #use in-memory database SELECT AsText(GARSMbr("001TZ4")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("001TZ4")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext26.testcase0000664000175000017500000000041512544707704022136 00000000000000geomfromtext26 :memory: #use in-memory database SELECT AsText(GeomFromText('MULTIPOINTM((0 1 9), (2 3 9), (4 5 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('MULTIPOINTM((0 1 9), (2 3 9), (4 5 9))')); MULTIPOINT M(0 1 9, 2 3 9, 4 5 9) libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson6.testcase0000664000175000017500000000044712544707704021671 00000000000000FromGeoJSON - linestring :memory: #use in-memory database SELECT AsText(GeomFromGeoJSON('{"type":"LineString","coordinates":[[1,2],[4,5]]}')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGeoJSON('{"type":"LineString","coordinates":[[1,2],[4,5]]}')):0 LINESTRING(1 2, 4 5) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint22.testcase0000664000175000017500000000046012544707704021214 00000000000000ST_AddPoint() - insert before start :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 0)) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 0)) LINESTRING(1 1, 0 0, 1 0) libspatialite-4.3.0a/test/sql_stmt_tests/collect49.testcase0000664000175000017500000000134312544707704021051 00000000000000collect - PolygonM, PolygonZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONM((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONZ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONM((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONZ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))) MULTIPOLYGON ZM(((1 2 0 4, 3 4 0 2, 3 2 0 3, 1 2 0 4), (1.5 2.5 0 4, 2.5 3.5 0 3, 2.5 2.3 0 3, 1.5 2.5 0 4)), ((4 5 3.2 0, 1 2 4.6 0, 4 2 3.1 0, 4 5 3.2 0), (2 3 4 0, 3 4 1 0, 3 3 1 0, 2 3 4 0))) libspatialite-4.3.0a/test/sql_stmt_tests/atmtrans7.testcase0000664000175000017500000000033612544707704021170 00000000000000ATM_Translate() - 3d invalid 1st arg :memory: #use in-memory database SELECT ATM_Translate(ATM_Create(), 'a', 2.0, 3.0) 1 # rows (not including the header row) 1 # columns ATM_Translate(ATM_Create(), 'a', 2.0, 3.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml23.testcase0000664000175000017500000000221112544707704021726 00000000000000From KML - MultiGeometry [Point, Line, Polygon] - 3D :memory: SELECT AsText(GeomFromKML("1,1,1002,2,100 3,3,1014,4,101 10,4,102 10,10,103 4,10,104 4,4,1015,5,100 6,5,101 6,6,102 5,6,103 5,5,100")) 1 # rows 1 # column AsText(GeomFromKML("1,1,1002,2,100 3,3,1014,4,101 10,4,102 10,10,103 4,10,104 4,4,1015,5,100 6,5,101 6,6,102 5,6,103 5,5,100")) GEOMETRYCOLLECTION Z(POINT Z(1 1 100), LINESTRING Z(2 2 100, 3 3 101), POLYGON Z((4 4 101, 10 4 102, 10 10 103, 4 10 104, 4 4 101), (5 5 100, 6 5 101, 6 6 102, 5 6 103, 5 5 100))) libspatialite-4.3.0a/test/sql_stmt_tests/casttoblob3.testcase0000664000175000017500000000035312544707704021466 00000000000000CastToBlob() - TEXT :memory: #use in-memory database SELECT Hex(CastToBlob('alpha')), TypeOf(CastToBlob('alpha')) 1 # rows (not including the header row) 2 # columns Hex(CastToBlob('alpha')) TypeOf(CastToBlob('alpha')) 616C706861 blob libspatialite-4.3.0a/test/sql_stmt_tests/expand6.testcase0000664000175000017500000000024112544707704020610 00000000000000Expand - non-geom :memory: #use in-memory database SELECT ST_Expand("hello", 1) 1 # rows (not including the header row) 1 # columns ST_Expand("hello", 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon1.testcase0000664000175000017500000000024512544707704021655 00000000000000makepolygon - NULL exterior :memory: #use in-memory database SELECT MakePolygon(NULL); 1 # rows (not including the header row) 1 # columns MakePolygon(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ring9.testcase0000664000175000017500000000050612544707704020277 00000000000000NumInteriorRings - Toxic polygon :memory: #use in-memory database SELECT NumInteriorRings(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")); 1 # rows (not including the header row) 1 # columns NumInteriorRings(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) 0 libspatialite-4.3.0a/test/sql_stmt_tests/fromgml30.testcase0000664000175000017500000000072212544707704021055 00000000000000FromGML - MULTIPOINT, single pointZ :memory: #use in-memory database SELECT AsText(GeomFromGml('1,2,3.2')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('1,2,3.2')):0 MULTIPOINT Z(1 2 3.2) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector13.testcase0000664000175000017500000000034712544707704023301 00000000000000makeellipticsector13 - text start :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, 'alpha', 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, 'alpha', 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeline18.testcase0000664000175000017500000000044512544707704021207 00000000000000makeline18 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINT(0 0)"), GeomFromText("POINTM(1 2 12.4)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINT(0 0)"), GeomFromText("POINTM(1 2 12.4)"))) LINESTRING M(0 0 0, 1 2 12.4) libspatialite-4.3.0a/test/sql_stmt_tests/m_in_us.testcase0000664000175000017500000000023012544707704020672 00000000000000metres to US inches :memory: #use in-memory database SELECT CvtToUsIn(1.0); 1 # rows (not including the header row) 1 # columns CvtToUsIn(1.0); 39.37:5 libspatialite-4.3.0a/test/sql_stmt_tests/swapcoords7.testcase0000664000175000017500000000064012544707704021521 00000000000000swapcoords7 :memory: #use in-memory database SELECT AsText(SwapCoords(GeomFromText("LINESTRINGZM(136 -35 100 1, 135.2 -34.5 101 2, 136 -35.2 102 3, 136 -36 103 4)"))); 1 # rows (not including the header row) 1 # columns AsText(SwapCoords(GeomFromText("LINESTRINGZM(136 -35 100 1, 135.2 -34.5 101 2, 136 -35.2 102 3, 136 -36 103 4)"))); LINESTRING ZM(-35 136 100 1, -34.5 135.2 101 2, -35.2 136 102 3, -36 136 103 4) libspatialite-4.3.0a/test/sql_stmt_tests/wkb7.testcase0000664000175000017500000000072212544707704020121 00000000000000Hex Wkb: GeometryCollection XYM (2 points) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1.2 3.4 12), POINTM(5.6 7.8 11))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1.2 3.4 12), POINTM(5.6 7.8 11))", 4326))); 01D70700000200000001D1070000333333333333F33F3333333333330B40000000000000284001D107000066666666666616403333333333331F400000000000002640 libspatialite-4.3.0a/test/sql_stmt_tests/geomtype4.testcase0000664000175000017500000000045312544707704021165 00000000000000geometrytype4 - POINTM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("POINTM(-71.1043443253471 42.315067601582900 3)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) POINT M XYMlibspatialite-4.3.0a/test/sql_stmt_tests/lhr4.testcase0000664000175000017500000000214512544707704020121 00000000000000forceLHR - GeometryCollection XYZ :memory: #use in-memory database SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 19), POLYGONZ((10 10 101, 15 10 102, 13 13 103, 10 10 101), (11 10.5 100, 13 10.5 101, 13 11.3 102, 11 10.5 100)), POLYGONZ((20 20 100, 24.1 20 101, 22 18 102, 20 20 100), (21 19.5 101, 23.1 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326))); 1 # rows (not including the header row) 1 # columns AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 19), POLYGONZ((10 10 101, 15 10 102, 13 13 103, 10 10 101), (11 10.5 100, 13 10.5 101, 13 11.3 102, 11 10.5 100)), POLYGONZ((20 20 100, 24.1 20 101, 22 18 102, 20 20 100), (21 19.5 101, 23.1 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326))) SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100),LINESTRING(3 4 101,5 6 102,7 8 103,9 9 19),POLYGON((10 10 101,13 13 103,15 10 102,10 10 101),(11 10.5 100,13 10.5 101,13 11.3 102,11 10.5 100)),POLYGON((20 20 100,24.1 20 101,22 18 102,20 20 100),(21 19.5 101,22 18.5 103,23.1 19.5 102,21 19.5 101))) libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb7.testcase0000664000175000017500000000066712544707704020755 00000000000000fromWkb - mandatory LINESTRING :memory: #use in-memory database SELECT Hex(LinestringFromWkb(AsBinary(GeomFromText("LINESTRING(1 2, 3 1)", 4326)))) 1 # rows (not including the header row) 1 # columns Hex(LinestringFromWkb(AsBinary(GeomFromText("LINESTRING(1 2, 3 1)", 4326)))) 000100000000000000000000F03F000000000000F03F000000000000084000000000000000407C0200000002000000000000000000F03F00000000000000400000000000000840000000000000F03FFE libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat19.testcase0000664000175000017500000000054012544707704022631 00000000000000normalizelonlat- out of range negative lat linestringz :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("LINESTRINGZ(120 -140 5, 130 -150 20)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("LINESTRINGZ(120 -140 5, 130 -150 20)", 4326))) LINESTRING Z(120 -40 5, 130 -30 20) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry17.testcase0000664000175000017500000000056512544707704023033 00000000000000CompressGeometry - POINTZ :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("POINTZ(1 2 1)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("POINTZ(1 2 1)", 4326))) 0001E6100000000000000000F03F0000000000000040000000000000F03F00000000000000407CE9030000000000000000F03F0000000000000040000000000000F03FFE libspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml4.testcase0000664000175000017500000000247512544707704021661 00000000000000From KML - LINESTRING Z :memory: SELECT AsText(GeomFromKML(" -112.2550785337791,36.07954952145647,2357 -112.2549277039738,36.08117083492122,2357 -112.2552505069063,36.08260761307279,2357 -112.2564540158376,36.08395660588506,2357 -112.2580238976449,36.08511401044813,2357 -112.2595218489022,36.08584355239394,2357 -112.262073428656,36.08626019085147,2357 -112.2633204928495,36.08621519860091,2357 -112.2644963846444,36.08627897945274,2357 -112.2656969554589,36.08649599090644,2357 ")) 1 # rows 1 # column AsText(GeomFromKML(" -112.2550785337791,36.07954952145647,2357 -112.2549277039738,36.08117083492122,2357 -112.2552505069063,36.08260761307279,2357 -112.2564540158376,36.08395660588506,2357 -112.2580238976449,36.08511401044813,2357 -112.2595218489022,36.08584355239394,2357 -112.262073428656,36.08626019085147,2357 -112.2633204928495,36.08621519860091,2357 -112.2644963846444,36.08627897945274,2357 -112.2656969554589,36.08649599090644,2357 ")) LINESTRING Z(-112.255079 36.07955 2357, -112.254928 36.081171 2357, -112.255251 36.082608 2357, -112.256454 36.083957 2357, -112.258024 36.085114 2357, -112.259522 36.085844 2357, -112.262073 36.08626 2357, -112.26332 36.086215 2357, -112.264496 36.086279 2357, -112.265697 36.086496 2357)libspatialite-4.3.0a/test/sql_stmt_tests/atmtransform1.testcase0000664000175000017500000000027412544707704022047 00000000000000ATM_Transform() - int geom :memory: #use in-memory database SELECT ATM_Transform(1, ATM_Create()) 1 # rows (not including the header row) 1 # columns ATM_Transform(1, ATM_Create()) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/removepoint4.testcase0000664000175000017500000000027412544707704021704 00000000000000ST_RemovePoint() - TEXT line :memory: #use in-memory database SELECT ST_RemovePoint('alpha', NULL) 1 # rows (not including the header row) 1 # columns ST_RemovePoint('alpha', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/srid2.testcase0000664000175000017500000000024512544707704020272 00000000000000SRID :memory: #use in-memory database SELECT SRID(GeomFromText("Point(1 2)")) 1 # rows (not including the header row) 1 # columns SRID(GeomFromText("Point(1 2)")) 0 libspatialite-4.3.0a/test/sql_stmt_tests/nrings1.testcase0000664000175000017500000000024512544707704020630 00000000000000nrings - bad blob :memory: #use in-memory database SELECT ST_NRings(zeroblob(99)) 1 # rows (not including the header row) 1 # columns ST_NRings(zeroblob(99)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/isvalidpalette2.testcase0000664000175000017500000000032012544707704022335 00000000000000IsValidRasterPalette - NULL palette NEW:memory: #use in-memory database SELECT IsValidRasterPalette(NULL, 'UINT8'); 1 # rows (not including the header row) 1 # columns IsValidRasterPalette(NULL, 'UINT8') -1 libspatialite-4.3.0a/test/sql_stmt_tests/atmscale10.testcase0000664000175000017500000000030012544707704021171 00000000000000ATM_Scale() - invalid blob :memory: #use in-memory database SELECT ATM_Scale(zeroblob(5), 1.0, 2.0) 1 # rows (not including the header row) 1 # columns ATM_Scale(zeroblob(5), 1.0, 2.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude4.testcase0000664000175000017500000000026512544707704022365 00000000000000shiftlongitude - non blob :memory: #use in-memory database SELECT ST_Shift_Longitude("hello") 1 # rows (not including the header row) 1 # columns ST_Shift_Longitude("hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collect28.testcase0000664000175000017500000000064612544707704021053 00000000000000collect - LineStringZ, LineStringZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGZ(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGZ(4 5 3.2, 1 2 4.6, 4 2 3.1)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGZ(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGZ(4 5 3.2, 1 2 4.6, 4 2 3.1)"))) MULTILINESTRING Z((1 2 4, 3 4 2), (4 5 3.2, 1 2 4.6, 4 2 3.1)) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude12.testcase0000664000175000017500000000065712544707704022451 00000000000000shiftlongitude - positive and negative longitude polygonm :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGONM((-175 0 1, -176 10 2, 175 10 3, 176 0 4, -175 0 1))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGONM((-175 0 1, -176 10 2, 175 10 3, 176 0 4, -175 0 1))", 4326))) POLYGON M((185 0 1, 184 10 2, 175 10 3, 176 0 4, 185 0 1)) libspatialite-4.3.0a/test/sql_stmt_tests/collect40.testcase0000664000175000017500000000074212544707704021042 00000000000000collect - PolygonZ, PolygonZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONZ((1 2 4, 3 4 2, 3 2 3, 1 2 4))"), GeomFromText("POLYGONZ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONZ((1 2 4, 3 4 2, 3 2 3, 1 2 4))"), GeomFromText("POLYGONZ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2))"))) MULTIPOLYGON Z(((1 2 4, 3 4 2, 3 2 3, 1 2 4)), ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2))) libspatialite-4.3.0a/test/sql_stmt_tests/isempty2.testcase0000664000175000017500000000021112544707704021014 00000000000000isempty - null :memory: #use in-memory database SELECT IsEmpty(null) 1 # rows (not including the header row) 1 # columns IsEmpty(null) -1libspatialite-4.3.0a/test/sql_stmt_tests/badKML3.testcase0000664000175000017500000000121312544707704020420 00000000000000bad KML: Polygon :memory: #use in-memory database SELECT GeomFromKML('0,0 1,0 1,1 0,1 0,00.1,0.1 0.9,0.1 0.9,0.9 0.1,0.9 0.1,0.10,0 1,0 1,1 0,1 0,00.1,0.1 0.9,0.1 0.9,0.9 0.1,0.9 0.1,0.11 2 10')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1 2 10')):0 SRID=4326;POINT(1 2 10) libspatialite-4.3.0a/test/sql_stmt_tests/mbrminmax5.testcase0000664000175000017500000000021412544707704021322 00000000000000MbrMinY- non-blob :memory: #use in-memory database SELECT MbrMinY(3) 1 # rows (not including the header row) 1 # columns MbrMinY(3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeline29.testcase0000664000175000017500000000045312544707704021210 00000000000000makeline - MULTIPOINT (XYM valid - reverse order) :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("MULTIPOINTM(1 2 10,3 4 11)"), 0)) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("MULTIPOINTM(1 2 10,3 4 11)"), 0)) LINESTRING M(3 4 11, 1 2 10) libspatialite-4.3.0a/test/sql_stmt_tests/wkb2.testcase0000664000175000017500000000051612544707704020115 00000000000000Hex Wkb: MultiPoint XYZ (single point) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTIPOINTZ(1.2 3.4 100)", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTIPOINTZ(1.2 3.4 100)", 4326))); 01EC0300000100000001E9030000333333333333F33F3333333333330B400000000000005940 libspatialite-4.3.0a/test/sql_stmt_tests/mbr3.testcase0000664000175000017500000000043712544707704020115 00000000000000MbrContains - Line + Point :memory: #use in-memory database SELECT MbrContains(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(2 1)")); 1 # rows (not including the header row) 1 # columns MbrContains(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(2 1)")) # header 0libspatialite-4.3.0a/test/sql_stmt_tests/asewkb8.testcase0000664000175000017500000000074012544707704020613 00000000000000asewkb - LINESTRINGZ :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("LINESTRINGZ(1 3 2,1 0 2)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("LINESTRINGZ(1 3 2,1 0 2)", 4326))) 3031303230303030413045363130303030303032303030303030303030303030303030303030463033463030303030303030303030303038343030303030303030303030303030303430303030303030303030303030463033463030303030303030303030303030303030303030303030303030303030303430 libspatialite-4.3.0a/test/sql_stmt_tests/envintersects3.testcase0000664000175000017500000000034312544707704022225 00000000000000ST_EnvIntersects - bad arg #3 :memory: #use in-memory database SELECT ST_EnvIntersects(zeroblob(50), 2, "alpha", 3, 3) 1 # rows (not including the header row) 1 # columns ST_EnvIntersects(zeroblob(50), 2, "alpha", 3, 3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/mbr13.testcase0000664000175000017500000000045012544707704020171 00000000000000MbrEqual - Line + Line :memory: #use in-memory database SELECT MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("LINESTRING(1 0, 0 2)")); 1 # rows (not including the header row) 1 # columns MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("LINESTRING(1 0, 0 2)")) # header 1libspatialite-4.3.0a/test/sql_stmt_tests/collect32.testcase0000664000175000017500000000060512544707704021041 00000000000000collect - LineStringM, LineString :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGM(1 2 4, 3 4 2)"), GeomFromText("LINESTRING(4 5, 1 2, 4 2)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGM(1 2 4, 3 4 2)"), GeomFromText("LINESTRING(4 5, 1 2, 4 2)"))) MULTILINESTRING M((1 2 4, 3 4 2), (4 5 0, 1 2 0, 4 2 0)) libspatialite-4.3.0a/test/sql_stmt_tests/sridprimem2.testcase0000664000175000017500000000030012544707704021474 00000000000000SridGetPrimeMeridian() - TEXT SRID :memory: #use in-memory database SELECT SridGetPrimeMeridian('srid') 1 # rows (not including the header row) 1 # columns SridGetPrimeMeridian('srid') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints19.testcase0000664000175000017500000000062212544707704022637 00000000000000geometry constraints - MULTILINESTRINGZM :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("MULTILINESTRINGZM((1 2 3 1, 4 3 1 2),(0 4 4 3, 1 9 7 4))", 4326), "MULTILINESTRING", 4326, "XYZM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("MULTILINESTRINGZM((1 2 3 1, 4 3 1 2),(0 4 4 3, 1 9 7 4))", 4326), "MULTILINESTRING", 4326, "XYZM") 1 libspatialite-4.3.0a/test/sql_stmt_tests/ring19.testcase0000664000175000017500000000060412544707704020357 00000000000000InteriorRingN - out-of-range interior (error) :memory: #use in-memory database SELECT InteriorRingN(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))"), 3); 1 # rows (not including the header row) 1 # columns InteriorRingN(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))"), 3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ring17.testcase0000664000175000017500000000064312544707704020360 00000000000000InteriorRingN - second interior :memory: #use in-memory database SELECT AsText(InteriorRingN(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))"), 2)); 1 # rows (not including the header row) 1 # columns AsText(InteriorRingN(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))"), 2)) LINESTRING(2 2, 2 3, 3 3, 3 2, 2 2) libspatialite-4.3.0a/test/sql_stmt_tests/casttolinestring7.testcase0000664000175000017500000000053612544707704022735 00000000000000casttolinestring - GEOMETRY COLLECTION, POINT and LINESTRING :memory: #use in-memory database SELECT AsText(CastToLineString(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(4 1, 3 4))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToLineString(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(4 1, 3 4))"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/NumPoints5.testcase0000664000175000017500000000035512544707704021272 00000000000000NumPoints - Simple line ZM :memory: #use in-memory database SELECT NumPoints(GeomFromText("LINESTRINGZM(0 0 0 1, 1 2 1 2)")); 1 # rows (not including the header row) 1 # column NumPoints(GeomFromText("LINESTRINGZM(0 0 0 1, 1 2 1 2)")) 2 libspatialite-4.3.0a/test/sql_stmt_tests/rtreealign1.testcase0000664000175000017500000000024612544707704021465 00000000000000rtreealign - non-text first arg :memory: #use in-memory database SELECT RTreeAlign(0, 1, 2) 1 # rows (not including the header row) 1 # columns RTreeAlign(0, 1, 2) -1libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt34.testcase0000664000175000017500000000067612544707704021264 00000000000000fromewkt34 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9))))')); GEOMETRYCOLLECTION M(POINT M(0 0 9), LINESTRING M(1 1 9, 2 2 9)) libspatialite-4.3.0a/test/sql_stmt_tests/makeline20.testcase0000664000175000017500000000032612544707704021176 00000000000000makeline - POINTM :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINTM(1 2 3)"))) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINTM(1 2 3)"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/dissolve18.testcase0000664000175000017500000000076312544707704021255 00000000000000dissolve - POLYGON :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,2 2, 2 1, 1 1))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING((0 0, 10 0), (10 0, 10 10), (10 10, 0 10), (0 10, 0 0), (1 1, 2 2), (2 2, 2 1), (2 1, 1 1)) MULTIPOINT(0 0, 10 0, 10 10, 0 10, 0 0, 1 1, 2 2, 2 1, 1 1) libspatialite-4.3.0a/test/sql_stmt_tests/makearc17.testcase0000664000175000017500000000030312544707704021015 00000000000000makearc17 - text srid :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 30, 60, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 30, 60, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson24.testcase0000664000175000017500000000241412544707704021745 00000000000000FromGeoJSON - geometry collection, SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,13,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[13,3],[4,6]]]},{"type":"LineString","coordinates":[[8,-2],[0.2,3.2]]},{"type":"Point","coordinates":[-4,2.4]},{"type":"Point","coordinates":[1,-4]},{"type":"LineString","coordinates":[[4,6],[1.2,4]]},{"type":"Polygon","coordinates":[[[1,0],[2,3],[4,3],[1,0]]]}]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,13,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[13,3],[4,6]]]},{"type":"LineString","coordinates":[[8,-2],[0.2,3.2]]},{"type":"Point","coordinates":[-4,2.4]},{"type":"Point","coordinates":[1,-4]},{"type":"LineString","coordinates":[[4,6],[1.2,4]]},{"type":"Polygon","coordinates":[[[1,0],[2,3],[4,3],[1,0]]]}]}')):0 SRID=3003;GEOMETRYCOLLECTION(POINT(4 6),POINT(-4 2.4),POINT(1 -4),LINESTRING(8 -2,0.2 3.2),LINESTRING(4 6,1.2 4),POLYGON((4 6,7 10,13 3,4 6)),POLYGON((1 0,2 3,4 3,1 0))) libspatialite-4.3.0a/test/sql_stmt_tests/atminvert2.testcase0000664000175000017500000000025712544707704021345 00000000000000ATM_Invert() - invalid BLOB :memory: #use in-memory database SELECT ATM_Invert(zeroblob(4)) 1 # rows (not including the header row) 1 # columns ATM_Invert(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/togars2.testcase0000664000175000017500000000033612544707704020631 00000000000000togars - northeast :memory: #use in-memory database SELECT ToGARS(GeomFromText("Point(179.999 89.999)", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("Point(179.999 89.999)", 4326)) 720QZ23libspatialite-4.3.0a/test/sql_stmt_tests/wkb16.testcase0000664000175000017500000000100212544707704020171 00000000000000Hex Wkb: GeometryCollection XYZM (single line) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(1.2 3.4 100 12, 5.6 7.8 101 13))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(1.2 3.4 100 12, 5.6 7.8 101 13))", 4326))); 01BF0B00000100000001BA0B000002000000333333333333F33F3333333333330B400000000000005940000000000000284066666666666616403333333333331F4000000000004059400000000000002A40 libspatialite-4.3.0a/test/sql_stmt_tests/forcenull12.testcase0000664000175000017500000000026212544707704021402 00000000000000ForceAsNull() - TEXT/NULL :memory: #use in-memory database SELECT ForceAsNull('alpha', NULL) 1 # rows (not including the header row) 1 # columns ForceAsNull('alpha', NULL) alpha libspatialite-4.3.0a/test/sql_stmt_tests/extractmultilinestring1.testcase0000664000175000017500000000031712544707704024154 00000000000000extractmultilinestring - bad blob :memory: #use in-memory database SELECT ExtractMultiLinestring(zeroblob(99)) 1 # rows (not including the header row) 1 # columns ExtractMultiLinestring(zeroblob(99)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint28.testcase0000664000175000017500000000053112544707704021221 00000000000000ST_AddPoint() - insert into the middle ZM :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRINGZM(0 0 1 3, 1 0 2 3)'), MakePoint(1, 1), 1)) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRINGZM(0 0 1 3, 1 0 2 3)'), MakePoint(1, 1), 1)) LINESTRING ZM(0 0 1 3, 1 1 0 0, 1 0 2 3) libspatialite-4.3.0a/test/sql_stmt_tests/startpoint3.testcase0000664000175000017500000000027012544707704021537 00000000000000startpoint - text input (error) :memory: #use in-memory database SELECT StartPoint("hello world"); 1 # rows (not including the header row) 1 # columns StartPoint("hello world") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat13.testcase0000664000175000017500000000040112544707704022617 00000000000000normalizelonlat- in range -290 :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(4 -290)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(4 -290)", 4326))) POINT(4 70) libspatialite-4.3.0a/test/sql_stmt_tests/collect36.testcase0000664000175000017500000000067412544707704021053 00000000000000collect - LineStringZM, LineStringZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGZM(1 2 4 1, 3 4 2 2)"), GeomFromText("LINESTRINGZ(4 5 3.2, 1 2 4.6, 4 2 3.1)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGZM(1 2 4 1, 3 4 2 2)"), GeomFromText("LINESTRINGZ(4 5 3.2, 1 2 4.6, 4 2 3.1)"))) MULTILINESTRING ZM((1 2 4 1, 3 4 2 2), (4 5 3.2 0, 1 2 4.6 0, 4 2 3.1 0)) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe3.testcase0000664000175000017500000000035312544707704023223 00000000000000makecircularstripe3 - BLOB cx :memory: #use in-memory database SELECT MakeCircularStripe(zeroblob(4), 0, 100, 90, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(zeroblob(4), 0, 100, 90, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/translate6.testcase0000664000175000017500000000041612544707704021332 00000000000000translate - text shift both (error) :memory: #use in-memory database SELECT ST_Translate(GeomFromText("POINT(1 2)"), "text", "three", "alpha"); 1 # rows (not including the header row) 1 # columns ST_Translate(GeomFromText("POINT(1 2)"), "text", "three", "alpha") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/updatestats10.testcase0000664000175000017500000000031512544707704021747 00000000000000UpdateLayerStatistics - TEXT, NULL :memory: #use in-memory database SELECT UpdateLayerStatistics('table', NULL); 1 # rows (not including the header row) 1 # columns UpdateLayerStatistics('table', NULL); 0 libspatialite-4.3.0a/test/sql_stmt_tests/updatestats9.testcase0000664000175000017500000000033312544707704021677 00000000000000UpdateLayerStatistics - TEXT, BLOB :memory: #use in-memory database SELECT UpdateLayerStatistics('table', zeroblob(4)); 1 # rows (not including the header row) 1 # columns UpdateLayerStatistics('table', zeroblob(4)); 0 libspatialite-4.3.0a/test/sql_stmt_tests/buildcirclembr10.testcase0000664000175000017500000000027612544707704022376 00000000000000buildcirclembr - null args / no SRID :memory: #use in-memory database SELECT BuildCircleMbr(5, 6, NULL) 1 # rows (not including the header row) 1 # columns BuildCircleMbr(5, 6, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/decodeurl4.testcase0000664000175000017500000000024312544707704021277 00000000000000DecodeURL - BLOB :memory: #use in-memory database SELECT DecodeURL(zeroblob(4)); 1 # rows (not including the header row) 1 # columns DecodeURL(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmtrans4.testcase0000664000175000017500000000032412544707704021162 00000000000000ATM_Translate() - 2d invalid 2nd arg :memory: #use in-memory database SELECT ATM_Translate(ATM_Create(), 1.0, 'a') 1 # rows (not including the header row) 1 # columns ATM_Translate(ATM_Create(), 1.0, 'a') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/locatemeasure13.testcase0000664000175000017500000000102612544707704022242 00000000000000ST_Locate_Between_Measures - LinestringZM :memory: #use in-memory database SELECT AsText(ST_Locate_Between_Measures(GeomFromText('LINESTRINGZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.5)'), 2, 3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Locate_Between_Measures(GeomFromText('LINESTRINGZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.5)'), 2, 3)) GEOMETRYCOLLECTION ZM(POINT ZM(0 1 100 2.1), POINT ZM(5 0 105 2.5), LINESTRING ZM(2 1 102 2.1, 3 0 103 2.2)) libspatialite-4.3.0a/test/sql_stmt_tests/atmmultiply1.testcase0000664000175000017500000000076512544707704021720 00000000000000ATM_Multiply() - valid :memory: #use in-memory database SELECT Hex(ATM_Multiply(ATM_Create(), ATM_Create())) 1 # rows (not including the header row) 1 # columns Hex(ATM_Multiply(ATM_Create(), ATM_Create())) 0001000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/getlayerextent10.testcase0000664000175000017500000000027512544707704022457 00000000000000GetLayerExtent - TEXT, NULL :memory: #use in-memory database SELECT GetLayerExtent('table', NULL); 1 # rows (not including the header row) 1 # columns GetLayerExtent('table', NULL); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt1.testcase0000664000175000017500000000023212544707704021162 00000000000000From EWKT - Point :memory: SELECT AsText(GeomFromEwkt("SRID=4326;POINT(1 2)")) 1 # rows 1 # column AsText(GeomFromEwkt("SRID=4326;POINT(1 2)")) POINT(1 2)libspatialite-4.3.0a/test/sql_stmt_tests/encodeurl2.testcase0000664000175000017500000000021612544707704021307 00000000000000EncodeURL - INT :memory: #use in-memory database SELECT EncodeURL(1); 1 # rows (not including the header row) 1 # columns EncodeURL(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector23.testcase0000664000175000017500000000036412544707704023301 00000000000000makeellipticsector23 - NULL step :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326, NULL); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype68.testcase0000664000175000017500000000063612544707704021262 00000000000000geometrytype - MULTILINESTRINGZM - one line :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTILINESTRINGZM((30 20 1 2, 10 40 1 2, 45 40 1 2, 30 20 1 2))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTILINESTRING ZM XYZM MULTILINESTRINGlibspatialite-4.3.0a/test/sql_stmt_tests/atmdeterminant3.testcase0000664000175000017500000000031712544707704022346 00000000000000ATM_Determinant() - invertible :memory: #use in-memory database SELECT ATM_Determinant(ATM_CreateScale(2,2,2)) 1 # rows (not including the header row) 1 # columns ATM_Determinant(ATM_CreateScale(2,2,2)) 8.0 libspatialite-4.3.0a/test/sql_stmt_tests/asewkb16.testcase0000664000175000017500000000077512544707704020702 00000000000000asewkb - GEOMETRYCOLLECTION, 2 points :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("GEOMETRYCOLLECTION(POINT(0 1), POINT(2 3))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("GEOMETRYCOLLECTION(POINT(0 1), POINT(2 3))", 4326))) 3031303730303030323045363130303030303032303030303030303130313030303030303030303030303030303030303030303030303030303030303030303046303346303130313030303030303030303030303030303030303030343030303030303030303030303030383430 libspatialite-4.3.0a/test/sql_stmt_tests/makearc1.testcase0000664000175000017500000000026412544707704020734 00000000000000makearc1 - NULL cx :memory: #use in-memory database SELECT MakeArc(NULL, 0, 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeArc(NULL, 0, 100, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttoblob12.testcase0000664000175000017500000000030012544707704021536 00000000000000CastToBlob() - Invalid (2) hex_input :memory: #use in-memory database SELECT CastToBlob('0129abCF7', 1) 1 # rows (not including the header row) 1 # columns CastToBlob('0129abCF7', 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt24.testcase0000664000175000017500000000063512544707704021256 00000000000000fromewkt24 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTILINESTRING((0 1 9 7, 2 3 9 7), (4 5 9 7, 6 7 9 7)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTILINESTRING((0 1 9 7, 2 3 9 7), (4 5 9 7, 6 7 9 7)))')); GEOMETRYCOLLECTION ZM(LINESTRING ZM(0 1 9 7, 2 3 9 7), LINESTRING ZM(4 5 9 7, 6 7 9 7)) libspatialite-4.3.0a/test/sql_stmt_tests/translate15.testcase0000664000175000017500000000117712544707704021417 00000000000000translate - Polygon XYZM :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("POLYGONZM((0 0 10 1, 10 0 10 2, 10 10 11 3, 0 10 11 4, 0 0 10 1), (5 5 12 1, 6 5 12 2, 6 6 13 3, 5 6 13 4, 5 5 12 1))"), 1.4, 3.9, 5.3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("POLYGONZM((0 0 10 1, 10 0 10 2, 10 10 11 3, 0 10 11 4, 0 0 10 1), (5 5 12 1, 6 5 12 2, 6 6 13 3, 5 6 13 4, 5 5 12 1))"), 1.4, 3.9, 5.3)) POLYGON ZM((1.4 3.9 15.3 1, 11.4 3.9 15.3 2, 11.4 13.9 16.3 3, 1.4 13.9 16.3 4, 1.4 3.9 15.3 1), (6.4 8.9 17.3 1, 7.4 8.9 17.3 2, 7.4 9.9 18.3 3, 6.4 9.9 18.3 4, 6.4 8.9 17.3 1)) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatetrans8.testcase0000664000175000017500000000032412544707704022352 00000000000000ATM_CreateTranslate() - 3d invalid 2nd arg :memory: #use in-memory database SELECT ATM_CreateTranslate(1.0, 'a', 3.0) 1 # rows (not including the header row) 1 # columns ATM_CreateTranslate(1.0, 'a', 3.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmscale9.testcase0000664000175000017500000000032312544707704021126 00000000000000ATM_Scale() - 3rd invalid 3nd arg :memory: #use in-memory database SELECT ATM_Scale(ATM_Create(), 1.0, 2.0, 'a') 1 # rows (not including the header row) 1 # columns ATM_Scale(ATM_Create(), 1.0, 2.0, 'a') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makearc8.testcase0000664000175000017500000000027212544707704020742 00000000000000makearc8 - text radius :memory: #use in-memory database SELECT MakeArc(0, 0, 'alpha', 30, 60); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 'alpha', 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ewkb12.testcase0000664000175000017500000000261412544707704020344 00000000000000EWkb: GeometryCollection XYZM :memory: #use in-memory database SELECT AsText(GeomFromEWkb('01070000E0E61000000400000001010000C09A9999999999F13F9A999999999901400000000000005940000000000000244001020000C002000000000000000000F03F000000000000004000000000000059400000000000002440000000000000084000000000000010400000000000405940000000000000264001030000C00200000005000000000000000000244000000000000024400000000000005940000000000000F03F0000000000002E400000000000002440000000000040594000000000000000400000000000002E400000000000002E400000000000805940000000000000084000000000000024400000000000002E400000000000C059400000000000001040000000000000244000000000000024400000000000005940000000000000F03F05000000000000000000284000000000000028400000000000405940000000000000F03F0000000000002A4000000000000028400000000000805940000000000000F03F0000000000002A400000000000002A400000000000C05940000000000000084000000000000028400000000000002A400000000000005A400000000000001040000000000000284000000000000028400000000000405940000000000000F03F01010000C0000000000000304000000000000030400000000000005940000000000000F03F')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom GEOMETRYCOLLECTION ZM(POINT ZM(1.1 2.2 100 10), POINT ZM(16 16 100 1), LINESTRING ZM(1 2 100 10, 3 4 101 11), POLYGON ZM((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 4, 10 10 100 1), (12 12 101 1, 13 12 102 1, 13 13 103 3, 12 13 104 4, 12 12 101 1))) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract19.testcase0000664000175000017500000000075412544707704022446 00000000000000Collection Extract - Extract POLYGONZM :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POLYGONZM((0 0 1 3, 10 0 2 3, 10 10 1 6, 0 0 1 3),(1 2 4 1, 4 3 1 2, 1 1 1 6, 1 2 4 1))"), 3)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POLYGONZM((0 0 1 3, 10 0 2 3, 10 10 1 6, 0 0 1 3),(1 2 4 1, 4 3 1 2, 1 1 1 6, 1 2 4 1))"), 3)) POLYGON ZM((0 0 1 3, 10 0 2 3, 10 10 1 6, 0 0 1 3), (1 2 4 1, 4 3 1 2, 1 1 1 6, 1 2 4 1)) libspatialite-4.3.0a/test/sql_stmt_tests/is3d5.testcase0000664000175000017500000000030012544707704020166 00000000000000Is3D- Point XYM :memory: #use in-memory database SELECT ST_Is3D(GeomFromText('POINTM(1 2 10)')); 1 # rows (not including the header row) 1 # columns ST_Is3D(GeomFromText('POINTM(1 2 10)')) 0 libspatialite-4.3.0a/test/sql_stmt_tests/dissolve29.testcase0000664000175000017500000000152612544707704021255 00000000000000dissolve - Overlap points POLYGON M :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGONM((-10 0 0, -10 10 0, -10 10 10, 10 10 10, 10 10 10, 10 10 -10, 10 -10 -10, -10 -10 -10, -10 0 0),(0 1 0, 0 2 1, 1 2 2, 1 2 3, 1 2 3, 1 2 3, 0 1 0))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING M((-10 0 0, -10 10 0), (-10 10 0, -10 10 10), (-10 10 10, 10 10 10), (10 10 10, 10 10 -10), (10 10 -10, 10 -10 -10), (10 -10 -10, -10 -10 -10), (-10 -10 -10, -10 0 0), (0 1 0, 0 2 1), (0 2 1, 1 2 2), (1 2 2, 1 2 3), (1 2 3, 0 1 0)) MULTIPOINT M(-10 0 0, -10 10 0, -10 10 10, 10 10 10, 10 10 10, 10 10 -10, 10 -10 -10, -10 -10 -10, -10 0 0, 0 1 0, 0 2 1, 1 2 2, 1 2 3, 1 2 3, 1 2 3, 0 1 0) libspatialite-4.3.0a/test/sql_stmt_tests/togars9.testcase0000664000175000017500000000041212544707704020633 00000000000000togars - MultiPoint (only a single Point) :memory: #use in-memory database SELECT ToGARS(GeomFromText("MULTIPOINT(11.876910 43.461390)", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("MULTIPOINT(11.876910 43.461390)", 4326)) 384MC22 libspatialite-4.3.0a/test/sql_stmt_tests/NumPoints4.testcase0000664000175000017500000000034212544707704021265 00000000000000NumPoints - Simple line M :memory: #use in-memory database SELECT NumPoints(GeomFromText("LINESTRINGM(0 0 0, 1 2 1)")); 1 # rows (not including the header row) 1 # column NumPoints(GeomFromText("LINESTRINGM(0 0 0, 1 2 1)")) 2 libspatialite-4.3.0a/test/sql_stmt_tests/reflectcoords10.testcase0000664000175000017500000000046212544707704022247 00000000000000reflectcoords10 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("LINESTRINGM(-1 -1 1, 1 0 2, 0 1 3)"), 1, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("LINESTRINGM(-1 -1 1, 1 0 2, 0 1 3)"), 1, 1)) LINESTRING M(1 1 1, -1 0 2, 0 -1 3) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry54.testcase0000664000175000017500000000071512544707704023031 00000000000000CompressGeometry - GEOMETRYCOLLECTION (2 Linestrings) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(1 2, 3 4, 5 6), LINESTRING(7 7, 8 8, 9 9))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(1 2, 3 4, 5 6), LINESTRING(7 7, 8 8, 9 9))", 4326))) GEOMETRYCOLLECTION(LINESTRING(1 2, 3 4, 5 6), LINESTRING(7 7, 8 8, 9 9)) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull7.testcase0000664000175000017500000000027012544707704021325 00000000000000ForceAsNull() - DOUBLE/BLOB :memory: #use in-memory database SELECT ForceAsNull(1.5, zeroblob(4)) 1 # rows (not including the header row) 1 # columns ForceAsNull(1.5, zeroblob(4)) 1.5 libspatialite-4.3.0a/test/sql_stmt_tests/dissolve21.testcase0000664000175000017500000000117712544707704021247 00000000000000dissolve - POLYGON ZM :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGONZM((0 0 4 1,10 0 5 1,10 10 6 1,0 10 7 1,0 0 4 1),(1 1 2 2, 2 2 3 2, 2 1 4 2, 1 1 2 2))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING ZM((0 0 4 1, 10 0 5 1), (10 0 5 1, 10 10 6 1), (10 10 6 1, 0 10 7 1), (0 10 7 1, 0 0 4 1), (1 1 2 2, 2 2 3 2), (2 2 3 2, 2 1 4 2), (2 1 4 2, 1 1 2 2)) MULTIPOINT ZM(0 0 4 1, 10 0 5 1, 10 10 6 1, 0 10 7 1, 0 0 4 1, 1 1 2 2, 2 2 3 2, 2 1 4 2, 1 1 2 2) libspatialite-4.3.0a/test/sql_stmt_tests/sridisprojected7.testcase0000664000175000017500000000024612544707704022534 00000000000000SridIsProjected() - 32632 :memory: #use in-memory database SELECT SridIsProjected(32632) 1 # rows (not including the header row) 1 # columns SridIsProjected(32632) 1 libspatialite-4.3.0a/test/sql_stmt_tests/casttomulti7.testcase0000664000175000017500000000061212544707704021704 00000000000000casttomulti - LINESTRING and POINT :memory: #use in-memory database SELECT AsText(CastToMulti(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(0 1, 2 1, 2 4, 0 4),POINT(4 2.3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMulti(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(0 1, 2 1, 2 4, 0 4),POINT(4 2.3))"))) GEOMETRYCOLLECTION(POINT(4 2.3), LINESTRING(0 1, 2 1, 2 4, 0 4)) libspatialite-4.3.0a/test/sql_stmt_tests/collect8.testcase0000664000175000017500000000046112544707704020764 00000000000000collect - two pointZs :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTZ(1 2 3)"), GeomFromText("POINTZ(4 5 3.2)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTZ(1 2 3)"), GeomFromText("POINTZ(4 5 3.2)"))) MULTIPOINT Z(1 2 3, 4 5 3.2) libspatialite-4.3.0a/test/sql_stmt_tests/dissolve12.testcase0000664000175000017500000000061012544707704021236 00000000000000dissolve - LINESTRING ZM :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("LINESTRING ZM(1 2 4.3 3, 4 1 49 2.8)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) LINESTRING ZM(1 2 4.3 3, 4 1 49 2.8) MULTIPOINT ZM(1 2 4.3 3, 4 1 49 2.8)libspatialite-4.3.0a/test/sql_stmt_tests/setendpoint16.testcase0000664000175000017500000000052712544707704021755 00000000000000ST_SetEndPoint() - ZM :memory: #use in-memory database SELECT AsText(SetEndPoint(GeomFromText('LINESTRINGZM(0 0 1 2, 1 0 2 3, 1 1 3 4)'), MakePoint(2, 3))) 1 # rows (not including the header row) 1 # columns AsText(SetEndPoint(GeomFromText('LINESTRINGZM(0 0 1 2, 1 0 2 3, 1 1 3 4)'), MakePoint(2, 3))) LINESTRING ZM(0 0 1 2, 1 0 2 3, 2 3 0 0) libspatialite-4.3.0a/test/sql_stmt_tests/casttomulti8.testcase0000664000175000017500000000076212544707704021713 00000000000000casttomulti - 2 linestrings and polygon :memory: #use in-memory database SELECT AsText(CastToMulti(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 1, 3 4),LINESTRING(4 6, 3 1),POLYGON((0 1, 2 1, 2 4, 0 4, 0 1)))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMulti(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 1, 3 4),LINESTRING(4 6, 3 1),POLYGON((0 1, 2 1, 2 4, 0 4, 0 1)))"))) GEOMETRYCOLLECTION(LINESTRING(4 1, 3 4), LINESTRING(4 6, 3 1), POLYGON((0 1, 2 1, 2 4, 0 4, 0 1)))libspatialite-4.3.0a/test/sql_stmt_tests/m_mi.testcase0000664000175000017500000000022312544707704020164 00000000000000metres to miles :memory: #use in-memory database SELECT CvtToMi(1000); 1 # rows (not including the header row) 1 # columns CvtToMi(1000); 0.6213:6 libspatialite-4.3.0a/test/sql_stmt_tests/pointn13.testcase0000664000175000017500000000045212544707704020722 00000000000000pointN - regular LINESTRINGZ out of range (error) :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("LINESTRINGZ(4 0 4.4, 4 4 2.2, 8 4 3.3)"), 4)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("LINESTRINGZ(4 0 4.4, 4 4 2.2, 8 4 3.3)"), 4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe11.testcase0000664000175000017500000000035512544707704023304 00000000000000makecircularstripe11 - BLOB start :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, zeroblob(4), 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, zeroblob(4), 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/wkb3.testcase0000664000175000017500000000051412544707704020114 00000000000000Hex Wkb: MultiPoint XYM (single point) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTIPOINTM(1.2 3.4 12)", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTIPOINTM(1.2 3.4 12)", 4326))); 01D40700000100000001D1070000333333333333F33F3333333333330B400000000000002840 libspatialite-4.3.0a/test/sql_stmt_tests/dissolve14.testcase0000664000175000017500000000056212544707704021246 00000000000000dissolve - LINESTRING M :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("LINESTRING M(1 2 4.3, 4 1 49)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) LINESTRING M(1 2 4.3, 4 1 49) MULTIPOINT M(1 2 4.3, 4 1 49)libspatialite-4.3.0a/test/sql_stmt_tests/getmimetype3.testcase0000664000175000017500000000023412544707704021661 00000000000000GetMimeType - DOUBLE :memory: #use in-memory database SELECT GetMimeType(1.1); 1 # rows (not including the header row) 1 # columns GetMimeType(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint3.testcase0000664000175000017500000000025512544707704021135 00000000000000ST_AddPoint() - DOUBLE line :memory: #use in-memory database SELECT ST_AddPoint(1.1, NULL) 1 # rows (not including the header row) 1 # columns ST_AddPoint(1.1, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml53.testcase0000664000175000017500000000132112544707704021056 00000000000000FromGML - MultiLinestring v2 3D (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2,10 3,4,11 5,6,137,8,13 9,10,13')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2,10 3,4,11 5,6,137,8,13 9,10,13')):0 SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 13),(7 8 13,9 10 13)) libspatialite-4.3.0a/test/sql_stmt_tests/casttomulti4.testcase0000664000175000017500000000034012544707704021677 00000000000000casttomulti - POINT :memory: #use in-memory database SELECT AsText(CastToMulti(GeomFromText("POINT(3 1)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMulti(GeomFromText("POINT(3 1)"))) MULTIPOINT(3 1) libspatialite-4.3.0a/test/sql_stmt_tests/sridspheroid2.testcase0000664000175000017500000000026112544707704022026 00000000000000SridGetSpheroid() - TEXT SRID :memory: #use in-memory database SELECT SridGetSpheroid('srid') 1 # rows (not including the header row) 1 # columns SridGetSpheroid('srid') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftcoords14.testcase0000664000175000017500000000100312544707704021734 00000000000000shiftcoords - Polygon XYM :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("POLYGONM((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1), (5 5 1, 6 5 2, 6 6 3, 5 6 3, 5 5 1))"), 1.4, 3.9)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("POLYGONM((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1), (5 5 1, 6 5 2, 6 6 3, 5 6 3, 5 5 1))"), 1.4, 3.9)) POLYGON M((1.4 3.9 1, 11.4 3.9 2, 11.4 13.9 3, 1.4 13.9 4, 1.4 3.9 1), (6.4 8.9 1, 7.4 8.9 2, 7.4 9.9 3, 6.4 9.9 3, 6.4 8.9 1)) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull25.testcase0000664000175000017500000000027712544707704021414 00000000000000ForceAsNull() - TEXT - mismatching :memory: #use in-memory database SELECT ForceAsNull('alpha', 'beta') 1 # rows (not including the header row) 1 # columns ForceAsNull('alpha', 'beta') alpha libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext29.testcase0000664000175000017500000000056412544707704022146 00000000000000geomfromtext29 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(MULTIPOINTZM((0 1 9 7), (2 3 9 7), (4 5 9 7)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZM(MULTIPOINTZM((0 1 9 7), (2 3 9 7), (4 5 9 7)))')); GEOMETRYCOLLECTION ZM(POINT ZM(0 1 9 7), POINT ZM(2 3 9 7), POINT ZM(4 5 9 7)) libspatialite-4.3.0a/test/sql_stmt_tests/ring5.testcase0000664000175000017500000000027212544707704020273 00000000000000ExteriorRing - Bad blob (error) :memory: #use in-memory database SELECT ExteriorRing(zeroblob(27)); 1 # rows (not including the header row) 1 # columns ExteriorRing(zeroblob(27)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/nrings3.testcase0000664000175000017500000000025012544707704020626 00000000000000nrings - single point :memory: #use in-memory database SELECT ST_NRings(MakePoint(2,3)) 1 # rows (not including the header row) 1 # columns ST_NRings(MakePoint(2,3)) 0 libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints12.testcase0000664000175000017500000000037212544707704022632 00000000000000geometry constraints - 4 arg, zeroblob 50 :memory: #use in-memory database SELECT GeometryConstraints(zeroblob(50), "POINT", 4326, "XYM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(zeroblob(50), "POINT", 4326, "XYM") -1 libspatialite-4.3.0a/test/sql_stmt_tests/makeellipse2.testcase0000664000175000017500000000030012544707704021614 00000000000000makeellipse2 - text cx :memory: #use in-memory database SELECT MakeEllipse('alpha', 0, 100, 200); 1 # rows (not including the header row) 1 # columns MakeEllipse('alpha', 0, 100, 200) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipse1.testcase0000664000175000017500000000027212544707704021623 00000000000000makeellipse1 - NULL cx :memory: #use in-memory database SELECT MakeEllipse(NULL, 0, 100, 200); 1 # rows (not including the header row) 1 # columns MakeEllipse(NULL, 0, 100, 200) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml2.testcase0000664000175000017500000000025212544707704020772 00000000000000FromGML - non-text :memory: #use in-memory database SELECT GeomFromGml(zeroblob(10)) 1 # rows (not including the header row) 1 # columns GeomFromGml(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/Makefile.in0000664000175000017500000020156412573313637017566 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = addpoint10.testcase \ addpoint11.testcase \ addpoint12.testcase \ addpoint13.testcase \ addpoint14.testcase \ addpoint15.testcase \ addpoint16.testcase \ addpoint17.testcase \ addpoint18.testcase \ addpoint19.testcase \ addpoint1.testcase \ addpoint20.testcase \ addpoint21.testcase \ addpoint22.testcase \ addpoint23.testcase \ addpoint24.testcase \ addpoint25.testcase \ addpoint26.testcase \ addpoint27.testcase \ addpoint28.testcase \ addpoint2.testcase \ addpoint3.testcase \ addpoint4.testcase \ addpoint5.testcase \ addpoint6.testcase \ addpoint7.testcase \ addpoint8.testcase \ addpoint9.testcase \ asbinary10.testcase \ asbinary11.testcase \ asbinary12.testcase \ asbinary13.testcase \ asbinary14.testcase \ asbinary15.testcase \ asbinary16.testcase \ asbinary17.testcase \ asbinary1.testcase \ asbinary2.testcase \ asbinary3.testcase \ asbinary4.testcase \ asbinary5.testcase \ asbinary6.testcase \ asbinary7.testcase \ asbinary8.testcase \ asbinary9.testcase \ asewkb10.testcase \ asewkb11.testcase \ asewkb12.testcase \ asewkb13.testcase \ asewkb14.testcase \ asewkb15.testcase \ asewkb16.testcase \ asewkb17.testcase \ asewkb1.testcase \ asewkb2.testcase \ asewkb3.testcase \ asewkb4.testcase \ asewkb5.testcase \ asewkb6.testcase \ asewkb7.testcase \ asewkb8.testcase \ asewkb9.testcase \ asfgf1.testcase \ asfgf2.testcase \ asfgf3.testcase \ asfgf4.testcase \ asfgf5.testcase \ asfgf6.testcase \ asfgf7.testcase \ asfgf8.testcase \ asfgf9.testcase \ asgeojson1.testcase \ asgeojson2.testcase \ asgeojson3.testcase \ asgeojson4.testcase \ asgeojson5.testcase \ asgeojson6.testcase \ asgeojson7.testcase \ asgeojson8.testcase \ asgml10.testcase \ asgml11.testcase \ asgml1.testcase \ asgml2.testcase \ asgml3.testcase \ asgml4.testcase \ asgml5.testcase \ asgml6.testcase \ asgml7.testcase \ asgml8.testcase \ asgml9.testcase \ assvg17.testcase \ assvg18.testcase \ assvg19.testcase \ assvg1.testcase \ assvg20.testcase \ assvg21.testcase \ assvg22.testcase \ assvg23.testcase \ assvg24.testcase \ assvg25.testcase \ assvg26.testcase \ assvg2.testcase \ assvg3.testcase \ assvg4.testcase \ assvg5.testcase \ assvg6.testcase \ assvg7.testcase \ assvg8.testcase \ assvg9.testcase \ aswkt-text.testcase \ atmastext1.testcase \ atmastext2.testcase \ atmastext3.testcase \ atmastext4.testcase \ atmastext5.testcase \ atmastext6.testcase \ atmcreate1.testcase \ atmcreate2.testcase \ atmcreate3.testcase \ atmcreate4.testcase \ atmcreate5.testcase \ atmcreate6.testcase \ atmcreate7.testcase \ atmcreate8.testcase \ atmcreate9.testcase \ atmcreate10.testcase \ atmcreate11.testcase \ atmcreate12.testcase \ atmcreate13.testcase \ atmcreate14.testcase \ atmcreate15.testcase \ atmcreate16.testcase \ atmcreate17.testcase \ atmcreate18.testcase \ atmcreate19.testcase \ atmcreate20.testcase \ atmcreate21.testcase \ atmcreate22.testcase \ atmcreate23.testcase \ atmcreatescale1.testcase \ atmcreatescale2.testcase \ atmcreatescale3.testcase \ atmcreatescale4.testcase \ atmcreatescale5.testcase \ atmcreatescale6.testcase \ atmcreatescale7.testcase \ atmcreatescale8.testcase \ atmcreatescale9.testcase \ atmcreatetrans1.testcase \ atmcreatetrans2.testcase \ atmcreatetrans3.testcase \ atmcreatetrans4.testcase \ atmcreatetrans5.testcase \ atmcreatetrans6.testcase \ atmcreatetrans7.testcase \ atmcreatetrans8.testcase \ atmcreatetrans9.testcase \ atmcreatexroll1.testcase \ atmcreatexroll2.testcase \ atmcreatexroll3.testcase \ atmcreateyroll1.testcase \ atmcreateyroll2.testcase \ atmcreateyroll3.testcase \ atmcreatezroll1.testcase \ atmcreatezroll2.testcase \ atmcreatezroll3.testcase \ atmdeterminant1.testcase \ atmdeterminant2.testcase \ atmdeterminant3.testcase \ atmdeterminant4.testcase \ atminvert1.testcase \ atminvert2.testcase \ atminvert3.testcase \ atminvert4.testcase \ atmisinvert1.testcase \ atmisinvert2.testcase \ atmisinvert3.testcase \ atmisinvert4.testcase \ atmisvalid1.testcase \ atmisvalid2.testcase \ atmisvalid3.testcase \ atmisvalid4.testcase \ atmisvalid5.testcase \ atmisvalid6.testcase \ atmmultiply1.testcase \ atmmultiply2.testcase \ atmmultiply3.testcase \ atmmultiply4.testcase \ atmmultiply5.testcase \ atmscale1.testcase \ atmscale2.testcase \ atmscale3.testcase \ atmscale4.testcase \ atmscale5.testcase \ atmscale6.testcase \ atmscale7.testcase \ atmscale8.testcase \ atmscale9.testcase \ atmscale10.testcase \ atmscale11.testcase \ atmscale12.testcase \ atmscale13.testcase \ atmtrans1.testcase \ atmtrans2.testcase \ atmtrans3.testcase \ atmtrans4.testcase \ atmtrans5.testcase \ atmtrans6.testcase \ atmtrans7.testcase \ atmtrans8.testcase \ atmtrans9.testcase \ atmtrans10.testcase \ atmtrans11.testcase \ atmtrans12.testcase \ atmtrans13.testcase \ atmtransform1.testcase \ atmtransform2.testcase \ atmtransform3.testcase \ atmtransform4.testcase \ atmtransform5.testcase \ atmtransform6.testcase \ atmtransform7.testcase \ atmtransform8.testcase \ atmxroll1.testcase \ atmxroll2.testcase \ atmxroll3.testcase \ atmxroll4.testcase \ atmxroll5.testcase \ atmyroll1.testcase \ atmyroll2.testcase \ atmyroll3.testcase \ atmyroll4.testcase \ atmyroll5.testcase \ atmzroll1.testcase \ atmzroll2.testcase \ atmzroll3.testcase \ atmzroll4.testcase \ atmzroll5.testcase \ badEWKT1.testcase \ badEWKT2.testcase \ badEWKT3.testcase \ badEWKT4.testcase \ badEWKT5.testcase \ badEWKT6.testcase \ badEWKT7.testcase \ badEWKT8.testcase \ badGeoJSON1.testcase \ badGeoJSON2.testcase \ badGeoJSON3.testcase \ badGeoJSON4.testcase \ badGeoJSON5.testcase \ badGeoJSON6.testcase \ badGeoJSON7.testcase \ badGML1.testcase \ badGML2.testcase \ badGML3.testcase \ badGML4.testcase \ badGML5.testcase \ badGML6.testcase \ badGML7.testcase \ badKML1.testcase \ badKML2.testcase \ badKML3.testcase \ badKML4.testcase \ badKML5.testcase \ badKML6.testcase \ badKML7.testcase \ badwkt1.testcase \ badwkt2.testcase \ badwkt3.testcase \ badwkt4.testcase \ badwkt5.testcase \ badwkt6.testcase \ badwkt7.testcase \ badwkt8.testcase \ badwkt9.testcase \ buildcirclembr10.testcase \ buildcirclembr11.testcase \ buildcirclembr12.testcase \ buildcirclembr1.testcase \ buildcirclembr2.testcase \ buildcirclembr3.testcase \ buildcirclembr4.testcase \ buildcirclembr5.testcase \ buildcirclembr6.testcase \ buildcirclembr7.testcase \ buildcirclembr8.testcase \ buildcirclembr9.testcase \ buildmbr10.testcase \ buildmbr11.testcase \ buildmbr12.testcase \ buildmbr13.testcase \ buildmbr14.testcase \ buildmbr1.testcase \ buildmbr2.testcase \ buildmbr3.testcase \ buildmbr4.testcase \ buildmbr5.testcase \ buildmbr6.testcase \ buildmbr7.testcase \ buildmbr8.testcase \ buildmbr9.testcase \ casttoblob10.testcase \ casttoblob12.testcase \ casttoblob13.testcase \ casttoblob14.testcase \ casttoblob1.testcase \ casttoblob2.testcase \ casttoblob3.testcase \ casttoblob4.testcase \ casttoblob5.testcase \ casttoblob6.testcase \ casttoblob7.testcase \ casttoblob8.testcase \ casttoblob9.testcase \ casttodouble1.testcase \ casttodouble2.testcase \ casttodouble3.testcase \ casttodouble4.testcase \ casttodouble5.testcase \ casttodouble6.testcase \ casttodouble7.testcase \ casttogeometrycollection2.testcase \ casttogeometrycollection3.testcase \ casttogeometrycollection4.testcase \ casttogeometrycollection5.testcase \ casttogeometrycollection6.testcase \ casttogeometrycollection.testcase \ casttoint1.testcase \ casttoint2.testcase \ casttoint3.testcase \ casttoint4.testcase \ casttoint5.testcase \ casttoint6.testcase \ casttoint7.testcase \ casttolinestring1.testcase \ casttolinestring2.testcase \ casttolinestring3.testcase \ casttolinestring4.testcase \ casttolinestring5.testcase \ casttolinestring6.testcase \ casttolinestring7.testcase \ casttolinestring8.testcase \ casttomulti11.testcase \ casttomulti1.testcase \ casttomulti2.testcase \ casttomulti3.testcase \ casttomulti4.testcase \ casttomulti5.testcase \ casttomulti6.testcase \ casttomulti7.testcase \ casttomulti8.testcase \ casttomultilinestring1.testcase \ casttomultilinestring2.testcase \ casttomultilinestring3.testcase \ casttomultilinestring4.testcase \ casttomultilinestring5.testcase \ casttomultilinestring6.testcase \ casttomultilinestring7.testcase \ casttomultipoint1.testcase \ casttomultipoint2.testcase \ casttomultipoint3.testcase \ casttomultipoint4.testcase \ casttomultipoint5.testcase \ casttomultipoint6.testcase \ casttomultipoint7.testcase \ casttomultipoint8.testcase \ casttomultipoint9.testcase \ casttomultipolygon1.testcase \ casttomultipolygon2.testcase \ casttomultipolygon3.testcase \ casttomultipolygon4.testcase \ casttomultipolygon5.testcase \ casttopoint1.testcase \ casttopoint2.testcase \ casttopoint3.testcase \ casttopoint4.testcase \ casttopoint5.testcase \ casttopoint6.testcase \ casttopoint7.testcase \ casttopoint8.testcase \ casttopoly1.testcase \ casttopoly2.testcase \ casttopoly3.testcase \ casttopoly4.testcase \ casttopoly5.testcase \ casttopoly6.testcase \ casttopoly7.testcase \ casttopoly8.testcase \ casttosingle10.testcase \ casttosingle12.testcase \ casttosingle1.testcase \ casttosingle2.testcase \ casttosingle3.testcase \ casttosingle4.testcase \ casttosingle5.testcase \ casttosingle6.testcase \ casttosingle7.testcase \ casttosingle8.testcase \ casttosingle9.testcase \ casttotext10.testcase \ casttotext11.testcase \ casttotext12.testcase \ casttotext13.testcase \ casttotext14.testcase \ casttotext15.testcase \ casttotext1.testcase \ casttotext2.testcase \ casttotext3.testcase \ casttotext4.testcase \ casttotext5.testcase \ casttotext6.testcase \ casttotext7.testcase \ casttotext8.testcase \ casttotext9.testcase \ casttoxy1.testcase \ casttoxy2.testcase \ casttoxy3.testcase \ casttoxym1.testcase \ casttoxym2.testcase \ casttoxym3.testcase \ casttoxym4.testcase \ casttoxym5.testcase \ casttoxym6.testcase \ casttoxyz1.testcase \ casttoxyz2.testcase \ casttoxyz3.testcase \ casttoxyz4.testcase \ casttoxyz5.testcase \ casttoxyz6.testcase \ casttoxyzm1.testcase \ casttoxyzm2.testcase \ casttoxyzm3.testcase \ casttoxyzm4.testcase \ casttoxyzm5.testcase \ casttoxyzm6.testcase \ checkspatialmetadata1.testcase \ checkspatialmetadata2.testcase \ checkspatialmetadata3.testcase \ checkdupl1.testcase \ checkdupl2.testcase \ checkspatialmetadata4.testcase \ checkspatialmetadata5.testcase \ clonetable1.testcase \ clonetable2.testcase \ clonetable3.testcase \ clonetable4.testcase \ clonetable5.testcase \ clonetable6.testcase \ clonetable7.testcase \ clonetable8.testcase \ clonetable9.testcase \ clonetable10.testcase \ clonetable11.testcase \ clonetable12.testcase \ clonetable13.testcase \ clonetable14.testcase \ clonetable15.testcase \ ch_m.testcase \ cm_m.testcase \ collect10.testcase \ collect11.testcase \ collect12.testcase \ collect13.testcase \ collect14.testcase \ collect15.testcase \ collect16.testcase \ collect17.testcase \ collect18.testcase \ collect19.testcase \ collect1.testcase \ collect20.testcase \ collect21.testcase \ collect23.testcase \ collect24.testcase \ collect25.testcase \ collect26.testcase \ collect27.testcase \ collect28.testcase \ collect29.testcase \ collect2.testcase \ collect30.testcase \ collect31.testcase \ collect32.testcase \ collect33.testcase \ collect34.testcase \ collect35.testcase \ collect36.testcase \ collect37.testcase \ collect38.testcase \ collect39.testcase \ collect3.testcase \ collect40.testcase \ collect41.testcase \ collect42.testcase \ collect43.testcase \ collect44.testcase \ collect45.testcase \ collect46.testcase \ collect47.testcase \ collect48.testcase \ collect49.testcase \ collect4.testcase \ collect50.testcase \ collect51.testcase \ collect52.testcase \ collect53.testcase \ collect54.testcase \ collect55.testcase \ collect56.testcase \ collect57.testcase \ collect58.testcase \ collect59.testcase \ collect5.testcase \ collect6.testcase \ collect7.testcase \ collect8.testcase \ collect9.testcase \ collectextract10.testcase \ collectextract11.testcase \ collectextract12.testcase \ collectextract13.testcase \ collectextract14.testcase \ collectextract15.testcase \ collectextract16.testcase \ collectextract17.testcase \ collectextract18.testcase \ collectextract19.testcase \ collectextract1.testcase \ collectextract20.testcase \ collectextract21.testcase \ collectextract22.testcase \ collectextract23.testcase \ collectextract24.testcase \ collectextract25.testcase \ collectextract2.testcase \ collectextract3.testcase \ collectextract4.testcase \ collectextract5.testcase \ collectextract6.testcase \ collectextract7.testcase \ collectextract8.testcase \ collectextract9.testcase \ compressgeometry10.testcase \ compressgeometry11.testcase \ compressgeometry12.testcase \ compressgeometry13.testcase \ compressgeometry14.testcase \ compressgeometry15.testcase \ compressgeometry17.testcase \ compressgeometry18.testcase \ compressgeometry19.testcase \ compressgeometry1.testcase \ compressgeometry20.testcase \ compressgeometry21.testcase \ compressgeometry22.testcase \ compressgeometry23.testcase \ compressgeometry24.testcase \ compressgeometry25.testcase \ compressgeometry26.testcase \ compressgeometry27.testcase \ compressgeometry28.testcase \ compressgeometry29.testcase \ compressgeometry2.testcase \ compressgeometry30.testcase \ compressgeometry31.testcase \ compressgeometry32.testcase \ compressgeometry33.testcase \ compressgeometry34.testcase \ compressgeometry35.testcase \ compressgeometry36.testcase \ compressgeometry37.testcase \ compressgeometry38.testcase \ compressgeometry39.testcase \ compressgeometry3.testcase \ compressgeometry40.testcase \ compressgeometry41.testcase \ compressgeometry42.testcase \ compressgeometry43.testcase \ compressgeometry44.testcase \ compressgeometry45.testcase \ compressgeometry46.testcase \ compressgeometry47.testcase \ compressgeometry48.testcase \ compressgeometry49.testcase \ compressgeometry4.testcase \ compressgeometry50.testcase \ compressgeometry51.testcase \ compressgeometry52.testcase \ compressgeometry53.testcase \ compressgeometry54.testcase \ compressgeometry55.testcase \ compressgeometry56.testcase \ compressgeometry57.testcase \ compressgeometry58.testcase \ compressgeometry59.testcase \ compressgeometry5.testcase \ compressgeometry60.testcase \ compressgeometry61.testcase \ compressgeometry62.testcase \ compressgeometry63.testcase \ compressgeometry64.testcase \ compressgeometry65.testcase \ compressgeometry66.testcase \ compressgeometry67.testcase \ compressgeometry68.testcase \ compressgeometry69.testcase \ compressgeometry6.testcase \ compressgeometry7.testcase \ compressgeometry8.testcase \ compressgeometry9.testcase \ createrastercoverages.testcase \ createvectorcoverages.testcase \ createuuid1.testcase \ decodeurl1.testcase \ decodeurl2.testcase \ decodeurl3.testcase \ decodeurl4.testcase \ decodeurl5.testcase \ dirfrompath1.testcase \ dirfrompath2.testcase \ dirfrompath3.testcase \ dirfrompath4.testcase \ dirfrompath5.testcase \ dimension1.testcase \ dimension2.testcase \ dimension3.testcase \ dimension4.testcase \ dimension5.testcase \ dimension6.testcase \ dimension7.testcase \ dimension8.testcase \ dissolve10.testcase \ dissolve11.testcase \ dissolve12.testcase \ dissolve13.testcase \ dissolve14.testcase \ dissolve15.testcase \ dissolve16.testcase \ dissolve17.testcase \ dissolve18.testcase \ dissolve19.testcase \ dissolve1.testcase \ dissolve20.testcase \ dissolve21.testcase \ dissolve22.testcase \ dissolve23.testcase \ dissolve24.testcase \ dissolve25.testcase \ dissolve26.testcase \ dissolve27.testcase \ dissolve28.testcase \ dissolve29.testcase \ dissolve2.testcase \ dissolve30.testcase \ dissolve3.testcase \ dissolve4.testcase \ dissolve5.testcase \ dissolve6.testcase \ dissolve7.testcase \ dissolve8.testcase \ dissolve9.testcase \ dm_m.testcase \ DSC_1467.JPG \ DSCN0042.JPG \ dropgeo1.testcase \ dropgeo2.testcase \ dropgeo3.testcase \ dropgeo4.testcase \ dropgeo5.testcase \ dropgeo6.testcase \ dropgeo7.testcase \ dropgeo8.testcase \ dropgeo9.testcase \ elemgeo1.testcase \ elemgeo2.testcase \ elemgeo3.testcase \ elemgeo4.testcase \ elemgeo5.testcase \ elemgeo6.testcase \ elemgeo7.testcase \ elemgeo8.testcase \ emptyfile.txt \ encodeurl1.testcase \ encodeurl2.testcase \ encodeurl3.testcase \ encodeurl4.testcase \ encodeurl5.testcase \ endpoint1.testcase \ envelope1.testcase \ envelope2.testcase \ envelope3.testcase \ envelope4.testcase \ envelope5.testcase \ envelope6.testcase \ envelope7.testcase \ envintersects10.testcase \ envintersects1.testcase \ envintersects2.testcase \ envintersects3.testcase \ envintersects4.testcase \ envintersects5.testcase \ envintersects6.testcase \ envintersects7.testcase \ envintersects8.testcase \ envintersects9.testcase \ ewkb10.testcase \ ewkb11.testcase \ ewkb12.testcase \ ewkb1.testcase \ ewkb2.testcase \ ewkb3.testcase \ ewkb4.testcase \ ewkb5.testcase \ ewkb6.testcase \ ewkb7.testcase \ ewkb8.testcase \ ewkb9.testcase \ expand1.testcase \ expand2.testcase \ expand3.testcase \ expand4.testcase \ expand5.testcase \ expand6.testcase \ expand7.testcase \ extfrompath1.testcase \ extfrompath2.testcase \ extfrompath3.testcase \ extfrompath4.testcase \ extfrompath5.testcase \ extent1.testcase \ extractmultilinestring1.testcase \ extractmultilinestring2.testcase \ extractmultilinestring3.testcase \ extractmultipoint1.testcase \ extractmultipoint2.testcase \ extractmultipoint3.testcase \ extractmultipolygon1.testcase \ extractmultipolygon2.testcase \ extractmultipolygon3.testcase \ fath_m.testcase \ fdo_ogr1.testcase \ fdo_ogr2.testcase \ fdo-wkb.sqlite_RO \ forcenull10.testcase \ forcenull11.testcase \ forcenull12.testcase \ forcenull13.testcase \ forcenull14.testcase \ forcenull15.testcase \ forcenull16.testcase \ forcenull17.testcase \ forcenull18.testcase \ forcenull19.testcase \ forcenull1.testcase \ forcenull20.testcase \ forcenull21.testcase \ forcenull22.testcase \ forcenull23.testcase \ forcenull24.testcase \ forcenull25.testcase \ forcenull26.testcase \ forcenull27.testcase \ forcenull28.testcase \ forcenull2.testcase \ forcenull3.testcase \ forcenull4.testcase \ forcenull5.testcase \ forcenull6.testcase \ forcenull7.testcase \ forcenull8.testcase \ forcenull9.testcase \ fromewkt10.testcase \ fromewkt11.testcase \ fromewkt12.testcase \ fromewkt13.testcase \ fromewkt14.testcase \ fromewkt15.testcase \ fromewkt16.testcase \ fromewkt17.testcase \ fromewkt18.testcase \ fromewkt19.testcase \ fromewkt1.testcase \ fromewkt20.testcase \ fromewkt22.testcase \ fromewkt23.testcase \ fromewkt24.testcase \ fromewkt25.testcase \ fromewkt26.testcase \ fromewkt27.testcase \ fromewkt28.testcase \ fromewkt29.testcase \ fromewkt2.testcase \ fromewkt30.testcase \ fromewkt31.testcase \ fromewkt32.testcase \ fromewkt33.testcase \ fromewkt34.testcase \ fromewkt35.testcase \ fromewkt36.testcase \ fromewkt37.testcase \ fromewkt38.testcase \ fromewkt39.testcase \ fromewkt3.testcase \ fromewkt4.testcase \ fromewkt5.testcase \ fromewkt6.testcase \ fromewkt7.testcase \ fromewkt8.testcase \ fromewkt9.testcase \ fromgeojson10.testcase \ fromgeojson11.testcase \ fromgeojson12.testcase \ fromgeojson13.testcase \ fromgeojson14.testcase \ fromgeojson15.testcase \ fromgeojson16.testcase \ fromgeojson17.testcase \ fromgeojson18.testcase \ fromgeojson19.testcase \ fromgeojson1.testcase \ fromgeojson20.testcase \ fromgeojson21.testcase \ fromgeojson22.testcase \ fromgeojson23.testcase \ fromgeojson24.testcase \ fromgeojson25.testcase \ fromgeojson26.testcase \ fromgeojson27.testcase \ fromgeojson28.testcase \ fromgeojson29.testcase \ fromgeojson2.testcase \ fromgeojson30.testcase \ fromgeojson31.testcase \ fromgeojson32.testcase \ fromgeojson3.testcase \ fromgeojson4.testcase \ fromgeojson5.testcase \ fromgeojson6.testcase \ fromgeojson7.testcase \ fromgeojson8.testcase \ fromgeojson9.testcase \ fromgml10.testcase \ fromgml11.testcase \ fromgml12.testcase \ fromgml13.testcase \ fromgml14.testcase \ fromgml15.testcase \ fromgml16.testcase \ fromgml17.testcase \ fromgml18.testcase \ fromgml19.testcase \ fromgml1.testcase \ fromgml20.testcase \ fromgml21.testcase \ fromgml22.testcase \ fromgml23.testcase \ fromgml24.testcase \ fromgml25.testcase \ fromgml26.testcase \ fromgml27.testcase \ fromgml28.testcase \ fromgml29.testcase \ fromgml2.testcase \ fromgml30.testcase \ fromgml31.testcase \ fromgml32.testcase \ fromgml33.testcase \ fromgml34.testcase \ fromgml35.testcase \ fromgml36.testcase \ fromgml37.testcase \ fromgml38.testcase \ fromgml39.testcase \ fromgml3.testcase \ fromgml40.testcase \ fromgml41.testcase \ fromgml43.testcase \ fromgml44.testcase \ fromgml45.testcase \ fromgml46.testcase \ fromgml47.testcase \ fromgml48.testcase \ fromgml49.testcase \ fromgml4.testcase \ fromgml50.testcase \ fromgml51.testcase \ fromgml52.testcase \ fromgml53.testcase \ fromgml54.testcase \ fromgml55.testcase \ fromgml56.testcase \ fromgml57.testcase \ fromgml58.testcase \ fromgml59.testcase \ fromgml5.testcase \ fromgml60.testcase \ fromgml61.testcase \ fromgml6.testcase \ fromgml7.testcase \ fromgml8.testcase \ fromgml9.testcase \ fromWkb10.testcase \ fromWkb11.testcase \ fromWkb12.testcase \ fromWkb13.testcase \ fromWkb14.testcase \ fromWkb15.testcase \ fromWkb16.testcase \ fromWkb17.testcase \ fromWkb18.testcase \ fromWkb19.testcase \ fromWkb1.testcase \ fromWkb20.testcase \ fromWkb21.testcase \ fromWkb22.testcase \ fromWkb23.testcase \ fromWkb24.testcase \ fromWkb25.testcase \ fromWkb26.testcase \ fromWkb2.testcase \ fromWkb3.testcase \ fromWkb4.testcase \ fromWkb5.testcase \ fromWkb6.testcase \ fromWkb7.testcase \ fromWkb8.testcase \ fromWkb9.testcase \ ft_m.testcase \ fullnamefrompath1.testcase \ fullnamefrompath2.testcase \ fullnamefrompath3.testcase \ fullnamefrompath4.testcase \ fullnamefrompath5.testcase \ garsmbr10.testcase \ garsmbr11.testcase \ garsmbr12.testcase \ garsmbr13.testcase \ garsmbr14.testcase \ garsmbr15.testcase \ garsmbr16.testcase \ garsmbr17.testcase \ garsmbr18.testcase \ garsmbr1.testcase \ garsmbr20.testcase \ garsmbr21.testcase \ garsmbr22.testcase \ garsmbr23.testcase \ garsmbr24.testcase \ garsmbr25.testcase \ garsmbr26.testcase \ garsmbr27.testcase \ garsmbr28.testcase \ garsmbr29.testcase \ garsmbr2.testcase \ garsmbr30.testcase \ garsmbr31.testcase \ garsmbr32.testcase \ garsmbr33.testcase \ garsmbr34.testcase \ garsmbr35.testcase \ garsmbr36.testcase \ garsmbr3.testcase \ garsmbr4.testcase \ garsmbr5.testcase \ garsmbr6.testcase \ garsmbr7.testcase \ garsmbr8.testcase \ garsmbr9.testcase \ geodesic-len1.testcase \ geodesic-len2.testcase \ geodesic-len3.testcase \ geodesic-len4.testcase \ geodesic-len5.testcase \ geodesic-len6.testcase \ geodesic-len7.testcase \ geodesic-len8.testcase \ geojson1.testcase \ geojson2.testcase \ geojson3.testcase \ geojson4.testcase \ geojson5.testcase \ geojson6.testcase \ geomcollfromtext1.testcase \ geomcollfromtext2.testcase \ geomconstraints10.testcase \ geomconstraints11.testcase \ geomconstraints12.testcase \ geomconstraints13.testcase \ geomconstraints14.testcase \ geomconstraints15.testcase \ geomconstraints16.testcase \ geomconstraints17.testcase \ geomconstraints18.testcase \ geomconstraints19.testcase \ geomconstraints1.testcase \ geomconstraints20.testcase \ geomconstraints21.testcase \ geomconstraints22.testcase \ geomconstraints23.testcase \ geomconstraints24.testcase \ geomconstraints25.testcase \ geomconstraints26.testcase \ geomconstraints27.testcase \ geomconstraints28.testcase \ geomconstraints2.testcase \ geomconstraints3.testcase \ geomconstraints4.testcase \ geomconstraints5.testcase \ geomconstraints6.testcase \ geomconstraints7.testcase \ geomconstraints8.testcase \ geomconstraints9.testcase \ geometryn10.testcase \ geometryn11.testcase \ geometryn12.testcase \ geometryn13.testcase \ geometryn14.testcase \ geometryn15.testcase \ geometryn16.testcase \ geometryn17.testcase \ geometryn18.testcase \ geometryn19.testcase \ geometryn1.testcase \ geometryn20.testcase \ geometryn2.testcase \ geometryn3.testcase \ geometryn4.testcase \ geometryn5.testcase \ geometryn6.testcase \ geometryn7.testcase \ geometryn8.testcase \ geometryn9.testcase \ geometryn.testcase \ geomfromewkb1.testcase \ geomfromewkb2.testcase \ geomfromkml10.testcase \ geomfromkml11.testcase \ geomfromkml12.testcase \ geomfromkml13.testcase \ geomfromkml14.testcase \ geomfromkml15.testcase \ geomfromkml16.testcase \ geomfromkml17.testcase \ geomfromkml18.testcase \ geomfromkml19.testcase \ geomfromkml1.testcase \ geomfromkml20.testcase \ geomfromkml21.testcase \ geomfromkml22.testcase \ geomfromkml23.testcase \ geomfromkml2.testcase \ geomfromkml3.testcase \ geomfromkml4.testcase \ geomfromkml5.testcase \ geomfromkml6.testcase \ geomfromkml7.testcase \ geomfromkml8.testcase \ geomfromkml9.testcase \ geomfromtext10.testcase \ geomfromtext11.testcase \ geomfromtext12.testcase \ geomfromtext13.testcase \ geomfromtext14.testcase \ geomfromtext15.testcase \ geomfromtext16.testcase \ geomfromtext17.testcase \ geomfromtext18.testcase \ geomfromtext19.testcase \ geomfromtext1.testcase \ geomfromtext20.testcase \ geomfromtext21.testcase \ geomfromtext22.testcase \ geomfromtext23.testcase \ geomfromtext24.testcase \ geomfromtext25.testcase \ geomfromtext26.testcase \ geomfromtext27.testcase \ geomfromtext28.testcase \ geomfromtext29.testcase \ geomfromtext2.testcase \ geomfromtext30.testcase \ geomfromtext31.testcase \ geomfromtext32.testcase \ geomfromtext33.testcase \ geomfromtext34.testcase \ geomfromtext35.testcase \ geomfromtext36.testcase \ geomfromtext37.testcase \ geomfromtext38.testcase \ geomfromtext39.testcase \ geomfromtext3.testcase \ geomfromtext40.testcase \ geomfromtext41.testcase \ geomfromtext42.testcase \ geomfromtext43.testcase \ geomfromtext44.testcase \ geomfromtext45.testcase \ geomfromtext4.testcase \ geomfromtext5.testcase \ geomfromtext6.testcase \ geomfromtext7.testcase \ geomfromtext8.testcase \ geomfromtext9.testcase \ geomtype10.testcase \ geomtype11.testcase \ geomtype12.testcase \ geomtype13.testcase \ geomtype14.testcase \ geomtype15.testcase \ geomtype16.testcase \ geomtype17.testcase \ geomtype18.testcase \ geomtype19.testcase \ geomtype1.testcase \ geomtype20.testcase \ geomtype21.testcase \ geomtype22.testcase \ geomtype23.testcase \ geomtype24.testcase \ geomtype25.testcase \ geomtype26.testcase \ geomtype27.testcase \ geomtype28.testcase \ geomtype29.testcase \ geomtype2.testcase \ geomtype30.testcase \ geomtype31.testcase \ geomtype32.testcase \ geomtype33.testcase \ geomtype34.testcase \ geomtype35.testcase \ geomtype36.testcase \ geomtype37.testcase \ geomtype38.testcase \ geomtype39.testcase \ geomtype3.testcase \ geomtype40.testcase \ geomtype41.testcase \ geomtype42.testcase \ geomtype43.testcase \ geomtype44.testcase \ geomtype45.testcase \ geomtype46.testcase \ geomtype47.testcase \ geomtype48.testcase \ geomtype49.testcase \ geomtype4.testcase \ geomtype50.testcase \ geomtype51.testcase \ geomtype52.testcase \ geomtype53.testcase \ geomtype54.testcase \ geomtype55.testcase \ geomtype56.testcase \ geomtype57.testcase \ geomtype58.testcase \ geomtype59.testcase \ geomtype5.testcase \ geomtype60.testcase \ geomtype61.testcase \ geomtype62.testcase \ geomtype63.testcase \ geomtype64.testcase \ geomtype65.testcase \ geomtype66.testcase \ geomtype67.testcase \ geomtype68.testcase \ geomtype69.testcase \ geomtype6.testcase \ geomtype7.testcase \ geomtype8.testcase \ geomtype9.testcase \ getmimetype1.testcase \ getmimetype2.testcase \ getmimetype3.testcase \ getmimetype4.testcase \ getmimetype5.testcase \ gml10.testcase \ gml11.testcase \ gml12.testcase \ gml13.testcase \ gml14.testcase \ gml15.testcase \ gml16.testcase \ gml1.testcase \ gml2.testcase \ gml3.testcase \ gml4.testcase \ gml5.testcase \ gml6.testcase \ gml7.testcase \ gml8.testcase \ gml9.testcase \ greatcircle-badblob.testcase \ greatcircle-poly2.testcase \ greatcircle-poly3.testcase \ greatcircle-poly4.testcase \ greatcircle-poly5.testcase \ greatcircle-poly6.testcase \ greatcircle-poly7.testcase \ greatcircle-poly.testcase \ greatcircle.testcase \ greatcircle-text.testcase \ ind_ch_m.testcase \ ind_ft_m.testcase \ ind_yd_m.testcase \ in_m.testcase \ is3d1.testcase \ is3d2.testcase \ is3d3.testcase \ is3d4.testcase \ is3d5.testcase \ is3d6.testcase \ isempty2.testcase \ isempty3.testcase \ isempty4.testcase \ isempty.testcase \ ismeasured1.testcase \ ismeasured2.testcase \ ismeasured3.testcase \ ismeasured4.testcase \ ismeasured5.testcase \ ismeasured6.testcase \ ispopulatedcoverage1.testcase \ ispopulatedcoverage2.testcase \ checkfontfacename1.testcase \ checkfontfacename2.testcase \ checkfontfacename3.testcase \ getfontfamily.testcase \ isfontbold.testcase \ isfontitalic.testcase \ isvalidfont1.testcase \ isvalidfont2.testcase \ isvalidnodata1.testcase \ isvalidnodata2.testcase \ isvalidnodata3.testcase \ isvalidnodata4.testcase \ isvalidpalette1.testcase \ isvalidpalette2.testcase \ isvalidpalette3.testcase \ isvalidrasterstats1.testcase \ isvalidrasterstats2.testcase \ isvalidrasterstats3.testcase \ isvalidrasterstats4.testcase \ isvalidrasterstats5.testcase \ isvalidrasterstats6.testcase \ isvalidrasterstats7.testcase \ isvalidrastertile1.testcase \ isvalidrastertile2.testcase \ isvalidrastertile3.testcase \ isvalidrastertile4.testcase \ isvalidrastertile5.testcase \ isvalidrastertile6.testcase \ isXblob5.testcase \ isXblob6.testcase \ isXblob7.testcase \ k3b-icon.png \ km_m.testcase \ ktorrent_grad1.jpg \ ktorrent_sidebar.gif \ La_folla_durante_il_Palio.jpg \ lhr1.testcase \ lhr2.testcase \ lhr3.testcase \ lhr4.testcase \ lhr5.testcase \ lhr6.testcase \ linefromtext1.testcase \ linefromtext2.testcase \ linesfromrings1.testcase \ linesfromrings2.testcase \ linesfromrings3.testcase \ linesfromrings4.testcase \ linesfromrings5.testcase \ linesfromrings6.testcase \ linesfromrings7.testcase \ link_m.testcase \ locatemeasure10.testcase \ locatemeasure11.testcase \ locatemeasure12.testcase \ locatemeasure13.testcase \ locatemeasure14.testcase \ locatemeasure15.testcase \ locatemeasure16.testcase \ locatemeasure17.testcase \ locatemeasure18.testcase \ locatemeasure19.testcase \ locatemeasure1.testcase \ locatemeasure2.testcase \ locatemeasure3.testcase \ locatemeasure4.testcase \ locatemeasure5.testcase \ locatemeasure6.testcase \ locatemeasure7.testcase \ locatemeasure8.testcase \ locatemeasure9.testcase \ makeline10.testcase \ makeline11.testcase \ makeline12.testcase \ makeline13.testcase \ makeline14.testcase \ makeline15.testcase \ makeline16.testcase \ makeline17.testcase \ makeline18.testcase \ makeline19.testcase \ makeline20.testcase \ makeline21.testcase \ makeline22.testcase \ makeline23.testcase \ makeline24.testcase \ makeline25.testcase \ makeline26.testcase \ makeline27.testcase \ makeline28.testcase \ makeline29.testcase \ makeline2.testcase \ makeline3.testcase \ makeline30.testcase \ makeline31.testcase \ makeline32.testcase \ makeline4.testcase \ makeline5.testcase \ makeline6.testcase \ makeline7.testcase \ makeline8.testcase \ makeline9.testcase \ makeline.testcase \ makepoint10.testcase \ makepoint11.testcase \ makepoint12.testcase \ makepoint13.testcase \ makepoint14.testcase \ makepoint15.testcase \ makepoint1.testcase \ makepoint2.testcase \ makepoint3.testcase \ makepoint4.testcase \ makepoint5.testcase \ makepoint6.testcase \ makepoint7.testcase \ makepoint8.testcase \ makepoint9.testcase \ makepointm-null1.testcase \ makepointm-null2.testcase \ makepointm-null3.testcase \ makepointm-null4.testcase \ makepointm-null5.testcase \ makepointm-null6.testcase \ makepointm-null7.testcase \ makepointm-null8.testcase \ makepoint-null1.testcase \ makepoint-null2.testcase \ makepoint-null3.testcase \ makepoint-null4.testcase \ makepoint-null5.testcase \ makepoint-null6.testcase \ makepoint-null7.testcase \ makepointzm-null10.testcase \ makepointzm-null1.testcase \ makepointzm-null2.testcase \ makepointzm-null3.testcase \ makepointzm-null4.testcase \ makepointzm-null5.testcase \ makepointzm-null6.testcase \ makepointzm-null7.testcase \ makepointzm-null8.testcase \ makepointzm-null9.testcase \ makepointz-null1.testcase \ makepointz-null2.testcase \ makepointz-null3.testcase \ makepointz-null4.testcase \ makepointz-null5.testcase \ makepointz-null6.testcase \ makepointz-null7.testcase \ makepointz-null8.testcase \ makepointz-null9.testcase \ makecircle1.testcase \ makecircle2.testcase \ makecircle3.testcase \ makecircle4.testcase \ makecircle5.testcase \ makecircle6.testcase \ makecircle7.testcase \ makecircle8.testcase \ makecircle9.testcase \ makeellipse1.testcase \ makeellipse2.testcase \ makeellipse3.testcase \ makeellipse4.testcase \ makeellipse5.testcase \ makeellipse6.testcase \ makeellipse7.testcase \ makeellipse8.testcase \ makeellipse9.testcase \ makeellipse10.testcase \ makeellipse11.testcase \ makeellipse12.testcase \ makeellipse14.testcase \ makeellipse15.testcase \ makeellipse16.testcase \ makeellipse18.testcase \ makeellipse19.testcase \ makeellipse20.testcase \ makearc1.testcase \ makearc2.testcase \ makearc3.testcase \ makearc4.testcase \ makearc5.testcase \ makearc6.testcase \ makearc7.testcase \ makearc8.testcase \ makearc9.testcase \ makearc10.testcase \ makearc11.testcase \ makearc12.testcase \ makearc13.testcase \ makearc14.testcase \ makearc16.testcase \ makearc17.testcase \ makearc18.testcase \ makearc20.testcase \ makearc21.testcase \ makearc22.testcase \ makeellipticarc1.testcase \ makeellipticarc2.testcase \ makeellipticarc3.testcase \ makeellipticarc4.testcase \ makeellipticarc5.testcase \ makeellipticarc6.testcase \ makeellipticarc7.testcase \ makeellipticarc8.testcase \ makeellipticarc9.testcase \ makeellipticarc10.testcase \ makeellipticarc11.testcase \ makeellipticarc12.testcase \ makeellipticarc13.testcase \ makeellipticarc14.testcase \ makeellipticarc15.testcase \ makeellipticarc16.testcase \ makeellipticarc17.testcase \ makeellipticarc19.testcase \ makeellipticarc20.testcase \ makeellipticarc21.testcase \ makeellipticarc23.testcase \ makeellipticarc24.testcase \ makeellipticarc25.testcase \ makecircularsector1.testcase \ makecircularsector2.testcase \ makecircularsector3.testcase \ makecircularsector4.testcase \ makecircularsector5.testcase \ makecircularsector6.testcase \ makecircularsector7.testcase \ makecircularsector8.testcase \ makecircularsector9.testcase \ makecircularsector10.testcase \ makecircularsector11.testcase \ makecircularsector12.testcase \ makecircularsector13.testcase \ makecircularsector14.testcase \ makecircularsector16.testcase \ makecircularsector17.testcase \ makecircularsector18.testcase \ makecircularsector20.testcase \ makecircularsector21.testcase \ makecircularsector22.testcase \ makecircularstripe1.testcase \ makecircularstripe2.testcase \ makecircularstripe3.testcase \ makecircularstripe4.testcase \ makecircularstripe5.testcase \ makecircularstripe6.testcase \ makecircularstripe7.testcase \ makecircularstripe8.testcase \ makecircularstripe9.testcase \ makecircularstripe10.testcase \ makecircularstripe11.testcase \ makecircularstripe12.testcase \ makecircularstripe13.testcase \ makecircularstripe14.testcase \ makecircularstripe16.testcase \ makecircularstripe17.testcase \ makecircularstripe18.testcase \ makecircularstripe20.testcase \ makecircularstripe21.testcase \ makecircularstripe22.testcase \ makecircularstripe24.testcase \ makecircularstripe25.testcase \ makecircularstripe26.testcase \ makeellipticsector1.testcase \ makeellipticsector2.testcase \ makeellipticsector3.testcase \ makeellipticsector4.testcase \ makeellipticsector5.testcase \ makeellipticsector6.testcase \ makeellipticsector7.testcase \ makeellipticsector8.testcase \ makeellipticsector9.testcase \ makeellipticsector10.testcase \ makeellipticsector11.testcase \ makeellipticsector12.testcase \ makeellipticsector13.testcase \ makeellipticsector14.testcase \ makeellipticsector15.testcase \ makeellipticsector16.testcase \ makeellipticsector17.testcase \ makeellipticsector19.testcase \ makeellipticsector20.testcase \ makeellipticsector21.testcase \ makeellipticsector23.testcase \ makeellipticsector24.testcase \ makeellipticsector25.testcase \ maxm1.testcase \ maxm2.testcase \ maxm3.testcase \ maxm4.testcase \ maxm5.testcase \ maxm6.testcase \ maxm7.testcase \ maxz1.testcase \ maxz2.testcase \ maxz3.testcase \ maxz4.testcase \ maxz5.testcase \ maxz6.testcase \ maxz7.testcase \ mbr10.testcase \ mbr11.testcase \ mbr12.testcase \ mbr13.testcase \ mbr14.testcase \ mbr15.testcase \ mbr16.testcase \ mbr17.testcase \ mbr18.testcase \ mbr19.testcase \ mbr1.testcase \ mbr20.testcase \ mbr21.testcase \ mbr22.testcase \ mbr23.testcase \ mbr24.testcase \ mbr25.testcase \ mbr26.testcase \ mbr27.testcase \ mbr28.testcase \ mbr29.testcase \ mbr2.testcase \ mbr30.testcase \ mbr31.testcase \ mbr32.testcase \ mbr3.testcase \ mbr4.testcase \ mbr5.testcase \ mbr6.testcase \ mbr7.testcase \ mbr8.testcase \ mbr9.testcase \ mbrminmax1.testcase \ mbrminmax2.testcase \ mbrminmax3.testcase \ mbrminmax4.testcase \ mbrminmax5.testcase \ mbrminmax6.testcase \ mbrminmax7.testcase \ mbrminmax8.testcase \ m_ch.testcase \ m_cm.testcase \ m_dm.testcase \ m_fath.testcase \ m_ft.testcase \ m_ft-text.testcase \ mi_m.testcase \ m_ind_ch.testcase \ m_ind_ft.testcase \ m_ind_yd.testcase \ minm1.testcase \ minm2.testcase \ minm3.testcase \ minm4.testcase \ minm5.testcase \ minm6.testcase \ m_in.testcase \ m_in_us.testcase \ minz1.testcase \ minz2.testcase \ minz3.testcase \ minz4.testcase \ minz5.testcase \ minz6.testcase \ m_km.testcase \ mlinefromtext1.testcase \ mlinefromtext2.testcase \ m_ln.testcase \ m_mi.testcase \ m_mm.testcase \ mm_m.testcase \ m_nm.testcase \ mpointfromtext1.testcase \ mpointfromtext2.testcase \ mpolygonfromtext1.testcase \ mpolygonfromtext2.testcase \ m_us_ch.testcase \ m_us_ft.testcase \ m_usmi.testcase \ m_yd.testcase \ m_yd_us.testcase \ namefrompath1.testcase \ namefrompath2.testcase \ namefrompath3.testcase \ namefrompath4.testcase \ namefrompath5.testcase \ ndims1.testcase \ ndims2.testcase \ ndims3.testcase \ ndims4.testcase \ ndims5.testcase \ ndims6.testcase \ nm_m.testcase \ normalizelonlat10.testcase \ normalizelonlat11.testcase \ normalizelonlat12.testcase \ normalizelonlat13.testcase \ normalizelonlat14.testcase \ normalizelonlat15.testcase \ normalizelonlat16.testcase \ normalizelonlat17.testcase \ normalizelonlat18.testcase \ normalizelonlat19.testcase \ normalizelonlat1.testcase \ normalizelonlat20.testcase \ normalizelonlat21.testcase \ normalizelonlat22.testcase \ normalizelonlat23.testcase \ normalizelonlat24.testcase \ normalizelonlat25.testcase \ normalizelonlat26.testcase \ normalizelonlat27.testcase \ normalizelonlat2.testcase \ normalizelonlat3.testcase \ normalizelonlat4.testcase \ normalizelonlat5.testcase \ normalizelonlat6.testcase \ normalizelonlat7.testcase \ normalizelonlat8.testcase \ normalizelonlat9.testcase \ npoints1.testcase \ npoints2.testcase \ npoints3.testcase \ npoints4.testcase \ npoints5.testcase \ npoints6.testcase \ nrings1.testcase \ nrings2.testcase \ nrings3.testcase \ nrings4.testcase \ nrings5.testcase \ nrings6.testcase \ numgeometries1.testcase \ numgeometries2.testcase \ numgeometries3.testcase \ numgeometries4.testcase \ numgeometries5.testcase \ numgeometries6.testcase \ NumPoints2.testcase \ NumPoints3.testcase \ NumPoints4.testcase \ NumPoints5.testcase \ NumPoints6.testcase \ NumPoints7.testcase \ NumPoints.testcase \ pointfromtext1.testcase \ pointfromtext2.testcase \ pointn10.testcase \ pointn11.testcase \ pointn12.testcase \ pointn13.testcase \ pointn14.testcase \ pointn15.testcase \ pointn1.testcase \ pointn2.testcase \ pointn3.testcase \ pointn4.testcase \ pointn5.testcase \ pointn6.testcase \ pointn7.testcase \ pointn8.testcase \ pointn9.testcase \ polygonfromtext1.testcase \ polygonfromtext2.testcase \ reflectcoords10.testcase \ reflectcoords11.testcase \ reflectcoords12.testcase \ reflectcoords13.testcase \ reflectcoords14.testcase \ reflectcoords15.testcase \ reflectcoords16.testcase \ reflectcoords17.testcase \ reflectcoords1.testcase \ reflectcoords2.testcase \ reflectcoords3.testcase \ reflectcoords4.testcase \ reflectcoords5.testcase \ reflectcoords6.testcase \ reflectcoords7.testcase \ reflectcoords8.testcase \ reflectcoords9.testcase \ removedupl1.testcase \ removedupl2.testcase \ removedupl3.testcase \ removedupl4.testcase \ removepoint10.testcase \ removepoint11.testcase \ removepoint12.testcase \ removepoint13.testcase \ removepoint14.testcase \ removepoint15.testcase \ removepoint16.testcase \ removepoint1.testcase \ removepoint2.testcase \ removepoint3.testcase \ removepoint4.testcase \ removepoint5.testcase \ removepoint6.testcase \ removepoint7.testcase \ removepoint8.testcase \ removepoint9.testcase \ reverse1.testcase \ reverse2.testcase \ reverse3.testcase \ reverse4.testcase \ reverse5.testcase \ reverse6.testcase \ ring10.testcase \ ring11.testcase \ ring12.testcase \ ring13.testcase \ ring14.testcase \ ring15.testcase \ ring16.testcase \ ring17.testcase \ ring18.testcase \ ring19.testcase \ ring1.testcase \ ring20.testcase \ ring21.testcase \ ring22.testcase \ ring23.testcase \ ring24.testcase \ ring25.testcase \ ring26.testcase \ ring27.testcase \ ring28.testcase \ ring2.testcase \ ring3.testcase \ ring4.testcase \ ring5.testcase \ ring6.testcase \ ring7.testcase \ ring8.testcase \ ring9.testcase \ rotatecoords10.testcase \ rotatecoords11.testcase \ rotatecoords12.testcase \ rotatecoords13.testcase \ rotatecoords14.testcase \ rotatecoords1.testcase \ rotatecoords2.testcase \ rotatecoords3.testcase \ rotatecoords4.testcase \ rotatecoords5.testcase \ rotatecoords6.testcase \ rotatecoords7.testcase \ rotatecoords8.testcase \ rotatecoords9.testcase \ routing1.testcase \ routing2.testcase \ routing3.testcase \ routing4.testcase \ routing5.testcase \ rtreealign1.testcase \ rtreealign2.testcase \ rtreealign3.testcase \ rtreealign4.testcase \ sandro.jpg \ sanitizeGeometry10.testcase \ sanitizeGeometry11.testcase \ sanitizeGeometry12.testcase \ sanitizeGeometry13.testcase \ sanitizeGeometry14.testcase \ sanitizeGeometry15.testcase \ sanitizeGeometry16.testcase \ sanitizeGeometry1.testcase \ sanitizeGeometry2.testcase \ sanitizeGeometry3.testcase \ sanitizeGeometry4.testcase \ sanitizeGeometry5.testcase \ sanitizeGeometry6.testcase \ sanitizeGeometry7.testcase \ sanitizeGeometry8.testcase \ sanitizeGeometry9.testcase \ scalecoords10.testcase \ scalecoords11.testcase \ scalecoords12.testcase \ scalecoords13.testcase \ scalecoords1.testcase \ scalecoords2.testcase \ scalecoords3.testcase \ scalecoords4.testcase \ scalecoords5.testcase \ scalecoords6.testcase \ scalecoords7.testcase \ scalecoords8.testcase \ scalecoords9.testcase \ seconds.wav \ setpoint10.testcase \ setpoint11.testcase \ setpoint12.testcase \ setpoint13.testcase \ setpoint14.testcase \ setpoint15.testcase \ setpoint16.testcase \ setpoint17.testcase \ setpoint18.testcase \ setpoint19.testcase \ setpoint1.testcase \ setpoint20.testcase \ setpoint21.testcase \ setpoint22.testcase \ setpoint23.testcase \ setpoint2.testcase \ setpoint3.testcase \ setpoint4.testcase \ setpoint5.testcase \ setpoint6.testcase \ setpoint7.testcase \ setpoint8.testcase \ setpoint9.testcase \ setendpoint10.testcase \ setendpoint11.testcase \ setendpoint12.testcase \ setendpoint13.testcase \ setendpoint14.testcase \ setendpoint15.testcase \ setendpoint16.testcase \ setendpoint1.testcase \ setendpoint2.testcase \ setendpoint3.testcase \ setendpoint4.testcase \ setendpoint5.testcase \ setendpoint6.testcase \ setendpoint7.testcase \ setendpoint8.testcase \ setendpoint9.testcase \ setstartpoint10.testcase \ setstartpoint11.testcase \ setstartpoint12.testcase \ setstartpoint13.testcase \ setstartpoint14.testcase \ setstartpoint15.testcase \ setstartpoint16.testcase \ setstartpoint1.testcase \ setstartpoint2.testcase \ setstartpoint3.testcase \ setstartpoint4.testcase \ setstartpoint5.testcase \ setstartpoint6.testcase \ setstartpoint7.testcase \ setstartpoint8.testcase \ setstartpoint9.testcase \ shiftcoords10.testcase \ shiftcoords11.testcase \ shiftcoords12.testcase \ shiftcoords13.testcase \ shiftcoords14.testcase \ shiftcoords15.testcase \ shiftcoords1.testcase \ shiftcoords2.testcase \ shiftcoords3.testcase \ shiftcoords4.testcase \ shiftcoords5.testcase \ shiftcoords6.testcase \ shiftcoords7.testcase \ shiftcoords8.testcase \ shiftcoords9.testcase \ shiftlongitude10.testcase \ shiftlongitude11.testcase \ shiftlongitude12.testcase \ shiftlongitude13.testcase \ shiftlongitude14.testcase \ shiftlongitude15.testcase \ shiftlongitude16.testcase \ shiftlongitude17.testcase \ shiftlongitude18.testcase \ shiftlongitude19.testcase \ shiftlongitude1.testcase \ shiftlongitude20.testcase \ shiftlongitude21.testcase \ shiftlongitude22.testcase \ shiftlongitude23.testcase \ shiftlongitude24.testcase \ shiftlongitude25.testcase \ shiftlongitude26.testcase \ shiftlongitude2.testcase \ shiftlongitude3.testcase \ shiftlongitude4.testcase \ shiftlongitude5.testcase \ shiftlongitude6.testcase \ shiftlongitude7.testcase \ shiftlongitude8.testcase \ shiftlongitude9.testcase \ spatialindex.testcase \ srid10.testcase \ srid11.testcase \ srid1.testcase \ srid2.testcase \ srid3.testcase \ srid4.testcase \ srid5.testcase \ srid6.testcase \ srid7.testcase \ srid8.testcase \ srid9.testcase \ SridFromAuthCRS2.testcase \ SridFromAuthCRS3.testcase \ SridFromAuthCRS4.testcase \ SridFromAuthCRS5.testcase \ SridFromAuthCRS6.testcase \ SridFromAuthCRS.testcase \ startpoint1.testcase \ startpoint2.testcase \ startpoint3.testcase \ st_m1.testcase \ st_m2.testcase \ st_m3.testcase \ st_m4.testcase \ st_m5.testcase \ st_m6.testcase \ st_m8.testcase \ st_x1.testcase \ st_x2.testcase \ st_x3.testcase \ st_x4.testcase \ st_x5.testcase \ st_x6.testcase \ st_x7.testcase \ st_x8.testcase \ st_x9.testcase \ st_y1.testcase \ st_y2.testcase \ st_y3.testcase \ st_y4.testcase \ st_y5.testcase \ st_y7.testcase \ st_y8.testcase \ st_y9.testcase \ st_z1.testcase \ st_z2.testcase \ st_z3.testcase \ st_z4.testcase \ st_z5.testcase \ st_z6.testcase \ st_z7.testcase \ st_z8.testcase \ st_z9.testcase \ swapcoords10.testcase \ swapcoords11.testcase \ swapcoords1.testcase \ swapcoords2.testcase \ swapcoords3.testcase \ swapcoords4.testcase \ swapcoords5.testcase \ swapcoords6.testcase \ swapcoords7.testcase \ swapcoords8.testcase \ swapcoords9.testcase \ testdb1.sqlite \ testFDO.sqlite \ testFGF.sqlite \ test.webp \ togars10.testcase \ togars11.testcase \ togars12.testcase \ togars13.testcase \ togars1.testcase \ togars2.testcase \ togars3.testcase \ togars4.testcase \ togars5.testcase \ togars6.testcase \ togars7.testcase \ togars8.testcase \ togars9.testcase \ translate10.testcase \ translate11.testcase \ translate12.testcase \ translate13.testcase \ translate14.testcase \ translate15.testcase \ translate16.testcase \ translate17.testcase \ translate18.testcase \ translate19.testcase \ translate1.testcase \ translate2.testcase \ translate3.testcase \ translate4.testcase \ translate5.testcase \ translate6.testcase \ translate7.testcase \ translate8.testcase \ translate9.testcase \ trivial.sqlite_RO \ uncompressgeom1.testcase \ uncompressgeom2.testcase \ uncompressgeom3.testcase \ unsafeTriggers1.testcase \ us_ch_m.testcase \ us_ft_m.testcase \ us_in_m.testcase \ us_mi_m.testcase \ us_yd_m.testcase \ wkb10.testcase \ wkb11.testcase \ wkb12.testcase \ wkb13.testcase \ wkb14.testcase \ wkb15.testcase \ wkb16.testcase \ wkb17.testcase \ wkb18.testcase \ wkb19.testcase \ wkb1.testcase \ wkb20.testcase \ wkb21.testcase \ wkb22.testcase \ wkb23.testcase \ wkb24.testcase \ wkb25.testcase \ wkb26.testcase \ wkb27.testcase \ wkb28.testcase \ wkb29.testcase \ wkb2.testcase \ wkb30.testcase \ wkb31.testcase \ wkb32.testcase \ wkb33.testcase \ wkb34.testcase \ wkb35.testcase \ wkb36.testcase \ wkb3.testcase \ wkb4.testcase \ wkb5.testcase \ wkb6.testcase \ wkb7.testcase \ wkb8.testcase \ wkb9.testcase \ wkbtosql1.testcase \ wkbtosql2.testcase \ wkbtosql3.testcase \ wkttosql1.testcase \ wkttosql2.testcase \ wkttosql3.testcase \ yd_m.testcase \ getlayerextent1.testcase \ getlayerextent2.testcase \ getlayerextent3.testcase \ getlayerextent4.testcase \ getlayerextent5.testcase \ getlayerextent6.testcase \ getlayerextent7.testcase \ getlayerextent8.testcase \ getlayerextent9.testcase \ getlayerextent10.testcase \ getlayerextent11.testcase \ getlayerextent12.testcase \ getlayerextent13.testcase \ getlayerextent14.testcase \ invalidatestats1.testcase \ invalidatestats2.testcase \ invalidatestats3.testcase \ invalidatestats4.testcase \ invalidatestats5.testcase \ invalidatestats6.testcase \ invalidatestats7.testcase \ invalidatestats8.testcase \ invalidatestats9.testcase \ invalidatestats10.testcase \ updatestats1.testcase \ updatestats2.testcase \ updatestats3.testcase \ updatestats4.testcase \ updatestats5.testcase \ updatestats6.testcase \ updatestats7.testcase \ updatestats8.testcase \ updatestats9.testcase \ updatestats10.testcase \ makepolygon1.testcase \ makepolygon2.testcase \ makepolygon3.testcase \ makepolygon4.testcase \ makepolygon5.testcase \ makepolygon7.testcase \ makepolygon8.testcase \ makepolygon9.testcase \ makepolygon10.testcase \ makepolygon11.testcase \ makepolygon12.testcase \ makepolygon13.testcase \ makepolygon14.testcase \ makepolygon15.testcase \ makepolygon16.testcase \ makepolygon17.testcase \ makepolygon18.testcase \ makepolygon19.testcase \ makepolygon20.testcase \ makepolygon21.testcase \ makepolygon22.testcase \ makepolygon23.testcase \ makepolygon24.testcase \ makepolygon25.testcase \ makepolygon26.testcase \ todms1.testcase \ todms2.testcase \ todms3.testcase \ todms4.testcase \ todms5.testcase \ todms6.testcase \ todms7.testcase \ todms8.testcase \ todms9.testcase \ todms10.testcase \ todms11.testcase \ todms12.testcase \ todms13.testcase \ fromdms1.testcase \ fromdms2.testcase \ fromdms3.testcase \ fromdms4.testcase \ fromdms5.testcase \ fromdms6.testcase \ fromdms7.testcase \ fromdms8.testcase \ fromdms9.testcase \ sridisgeographic1.testcase \ sridisgeographic2.testcase \ sridisgeographic3.testcase \ sridisgeographic4.testcase \ sridisgeographic5.testcase \ sridisgeographic6.testcase \ sridisgeographic7.testcase \ sridisprojected1.testcase \ sridisprojected2.testcase \ sridisprojected3.testcase \ sridisprojected4.testcase \ sridisprojected5.testcase \ sridisprojected6.testcase \ sridisprojected7.testcase \ sridflipped1.testcase \ sridflipped2.testcase \ sridflipped3.testcase \ sridflipped4.testcase \ sridflipped5.testcase \ sridflipped6.testcase \ sridflipped7.testcase \ sridspheroid1.testcase \ sridspheroid2.testcase \ sridspheroid3.testcase \ sridspheroid4.testcase \ sridspheroid5.testcase \ sridspheroid6.testcase \ sridprimem1.testcase \ sridprimem2.testcase \ sridprimem3.testcase \ sridprimem4.testcase \ sridprimem5.testcase \ sridprimem6.testcase \ sriddatum1.testcase \ sriddatum2.testcase \ sriddatum3.testcase \ sriddatum4.testcase \ sriddatum5.testcase \ sriddatum6.testcase \ sridunit1.testcase \ sridunit2.testcase \ sridunit3.testcase \ sridunit4.testcase \ sridunit5.testcase \ sridunit6.testcase \ sridprojection1.testcase \ sridprojection2.testcase \ sridprojection3.testcase \ sridprojection4.testcase \ sridprojection5.testcase \ sridprojection6.testcase \ sridax1name1.testcase \ sridax1name2.testcase \ sridax1name3.testcase \ sridax1name4.testcase \ sridax1name5.testcase \ sridax1name6.testcase \ sridax1orient1.testcase \ sridax1orient2.testcase \ sridax1orient3.testcase \ sridax1orient4.testcase \ sridax1orient5.testcase \ sridax1orient6.testcase \ sridax2name1.testcase \ sridax2name2.testcase \ sridax2name3.testcase \ sridax2name4.testcase \ sridax2name5.testcase \ sridax2name6.testcase \ sridax2orient1.testcase \ sridax2orient2.testcase \ sridax2orient3.testcase \ sridax2orient4.testcase \ sridax2orient5.testcase \ sridax2orient6.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_tests/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/test/sql_stmt_tests/collectextract7.testcase0000664000175000017500000000027512544707704022361 00000000000000Collection Extract - text arg :memory: #use in-memory database SELECT CollectionExtract("text", 1); 1 # rows (not including the header row) 1 # columns CollectionExtract("text", 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipse11.testcase0000664000175000017500000000030112544707704021675 00000000000000makeellipse11 - text y_axis :memory: #use in-memory database SELECT MakeEllipse(0, 0, 100, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, 100, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ring7.testcase0000664000175000017500000000065212544707704020277 00000000000000ExteriorRing - Simple Polygon ZM :memory: #use in-memory database SELECT AsText(ExteriorRing(GeomFromText("POLYGONZM((136 -35 4 0, 135.2 -34.5 6.5 1, 136 -35.2 9.4 2, 136 -35 4 0))"))); 1 # rows (not including the header row) 1 # columns AsText(ExteriorRing(GeomFromText("POLYGONZM((136 -35 4 0, 135.2 -34.5 6.5 1, 136 -35.2 9.4 2, 136 -35 4 0))"))) LINESTRING ZM(136 -35 4 0, 135.2 -34.5 6.5 1, 136 -35.2 9.4 2, 136 -35 4 0) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml50.testcase0000664000175000017500000000117212544707704021057 00000000000000FromGML - MultiPoint v2 (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,23,45,6')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,23,45,6')):0 SRID=4326;MULTIPOINT(1 2,3 4,5 6) libspatialite-4.3.0a/test/sql_stmt_tests/casttosingle6.testcase0000664000175000017500000000052312544707704022033 00000000000000casttosingle - LINESTRING and POINT :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(0 1, 2 1, 2 4, 0 4),POINT(4 2.3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(0 1, 2 1, 2 4, 0 4),POINT(4 2.3))"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/SridFromAuthCRS4.testcase0000664000175000017500000000027012544707704022250 00000000000000SridFromAuthCRS - gfoss.it :memory: #use in-memory database SELECT SridFromAuthCRS('epsg', 4326) 1 # rows (not including the header row) 1 # columns SridFromAuthCRS('epsg', 4326) 4326 libspatialite-4.3.0a/test/sql_stmt_tests/gml5.testcase0000664000175000017500000000055312544707704020115 00000000000000GMLv2 Linestring Z: no SRID :memory: #use in-memory database SELECT AsGML(GeomFromText("LINESTRINGZ(1 2 100, 3 4 101)")); 1 # rows (not including the header row) 1 # columns AsGML(GeomFromText("LINESTRINGZ(1 2 100, 3 4 101)")) 1,2,100 3,4,101:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext37.testcase0000664000175000017500000000065612544707704022147 00000000000000geomfromtext37 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(GEOMETRYCOLLECTIONZ(GEOMETRYCOLLECTIONZ(POINTZ(0 0 9), LINESTRINGZ(1 1 9, 2 2 9))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZ(GEOMETRYCOLLECTIONZ(GEOMETRYCOLLECTIONZ(POINTZ(0 0 9), LINESTRINGZ(1 1 9, 2 2 9))))')); GEOMETRYCOLLECTION Z(POINT Z(0 0 9), LINESTRING Z(1 1 9, 2 2 9)) libspatialite-4.3.0a/test/sql_stmt_tests/expand1.testcase0000664000175000017500000000040012544707704020600 00000000000000Expand :memory: #use in-memory database SELECT AsText(ST_Expand(GeomFromText("Point(1 2)"), 0.5)) 1 # rows (not including the header row) 1 # columns AsText(ST_Expand(GeomFromText("Point(1 2)"), 0.5)) POLYGON((0.5 1.5, 1.5 1.5, 1.5 2.5, 0.5 2.5, 0.5 1.5)) libspatialite-4.3.0a/test/sql_stmt_tests/reflectcoords8.testcase0000664000175000017500000000043312544707704022174 00000000000000reflectcoords8 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("LINESTRING(-1 -1, 1 0, 0 1)"), 1, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("LINESTRING(-1 -1, 1 0, 0 1)"), 1, 1)) LINESTRING(1 1, -1 0, 0 -1) libspatialite-4.3.0a/test/sql_stmt_tests/sridisprojected2.testcase0000664000175000017500000000026112544707704022524 00000000000000SridIsProjected() - TEXT SRID :memory: #use in-memory database SELECT SridIsProjected('srid') 1 # rows (not including the header row) 1 # columns SridIsProjected('srid') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/dissolve23.testcase0000664000175000017500000000067612544707704021254 00000000000000dissolve - Overlap points Z :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("LINESTRINGZ(0 1 0, 0 2 1, 1 2 2, 1 2 3, 1 2 3)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING Z((0 1 0, 0 2 1), (0 2 1, 1 2 2), (1 2 2, 1 2 3)) MULTIPOINT Z(0 1 0, 0 2 1, 1 2 2, 1 2 3, 1 2 3) libspatialite-4.3.0a/test/sql_stmt_tests/reflectcoords2.testcase0000664000175000017500000000035112544707704022165 00000000000000reflectcoords2 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 1, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 1, 1)) POINT(-1 -2) libspatialite-4.3.0a/test/sql_stmt_tests/casttoxyz3.testcase0000664000175000017500000000035212544707704021401 00000000000000casttoxyz - POINT :memory: #use in-memory database SELECT AsText(CastToXYZ(GeomFromText("POINTZM(4 3 10 20)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYZ(GeomFromText("POINTZM(4 3 10 20)"))) POINT Z(4 3 10) libspatialite-4.3.0a/test/sql_stmt_tests/dropgeo2.testcase0000664000175000017500000000026712544707704020774 00000000000000DropGeoTable - NULL prefix :memory: #use in-memory database SELECT DropGeoTable(NULL, 'table'); 1 # rows (not including the header row) 1 # columns DropGeoTable(NULL, 'table') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/envintersects9.testcase0000664000175000017500000000041612544707704022234 00000000000000ST_EnvIntersects - no [double coords] :memory: #use in-memory database SELECT ST_EnvIntersects(GeomFromText('POINT(3.5 3.8)'), 2.1, 2.1, 3.1, 3.1) 1 # rows (not including the header row) 1 # columns ST_EnvIntersects(GeomFromText('POINT(3.5 3.8)'), 2.1, 2.1, 3.1, 3.1) 0 libspatialite-4.3.0a/test/sql_stmt_tests/casttomultilinestring4.testcase0000664000175000017500000000057712544707704024012 00000000000000casttomultilinestring - multilinestring :memory: #use in-memory database SELECT AsText(CastToMultiLineString(GeomFromText("MULTILINESTRING((0 1, 2 3),(7 9, 4 2, 0 1, 0.3 -2))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiLineString(GeomFromText("MULTILINESTRING((0 1, 2 3),(7 9, 4 2, 0 1, 0.3 -2))"))) MULTILINESTRING((0 1, 2 3), (7 9, 4 2, 0 1, 0.3 -2)) libspatialite-4.3.0a/test/sql_stmt_tests/casttoxyz1.testcase0000664000175000017500000000025012544707704021374 00000000000000casttoxyz - bad blob :memory: #use in-memory database SELECT CastToXYZ(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToXYZ(zeroblob(99)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttoxym2.testcase0000664000175000017500000000022212544707704021357 00000000000000casttoxym - non-blob :memory: #use in-memory database SELECT CastToXYM(4) 1 # rows (not including the header row) 1 # columns CastToXYM(4) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/badKML5.testcase0000664000175000017500000000100312544707704020417 00000000000000bad KML: MultiLinestring :memory: #use in-memory database SELECT GeomFromKML('1.1,2.2 3.3,4.45.5,6.6 7.7,8.8000000000000011.1,2.2 3.3,4.45.5,6.6 7.7,8.800000000000001 :memory: #use in-memory database SELECT AsText(GeomFromGml('0 05 05 50 50 0')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('0 05 05 50 50 0')):0 LINESTRING(0 0, 5 0, 5 5, 0 5, 0 0) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull15.testcase0000664000175000017500000000031512544707704021404 00000000000000ForceAsNull() - BLOB/TEXT :memory: #use in-memory database SELECT Hex(ForceAsNull(x'0102a1b2', 'alpha')) 1 # rows (not including the header row) 1 # columns Hex(ForceAsNull(x'0102a1b2', 'alpha')) 0102A1B2 libspatialite-4.3.0a/test/sql_stmt_tests/forcenull8.testcase0000664000175000017500000000025212544707704021326 00000000000000ForceAsNull() - DOUBLE/NULL :memory: #use in-memory database SELECT ForceAsNull(1.5, NULL) 1 # rows (not including the header row) 1 # columns ForceAsNull(1.5, NULL) 1.5 libspatialite-4.3.0a/test/sql_stmt_tests/collect48.testcase0000664000175000017500000000140712544707704021051 00000000000000collect - PolygonM, PolygonZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONM((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONZM((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4),(2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONM((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONZM((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4),(2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))"))); MULTIPOLYGON ZM(((1 2 0 4, 3 4 0 2, 3 2 0 3, 1 2 0 4), (1.5 2.5 0 4, 2.5 3.5 0 3, 2.5 2.3 0 3, 1.5 2.5 0 4)), ((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4), (2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))) libspatialite-4.3.0a/test/sql_stmt_tests/st_z7.testcase0000664000175000017500000000023612544707704020315 00000000000000ST_Z7 :memory: #use in-memory database SELECT ST_Z(MakePoint(136, -35)); 1 # rows (not including the header row) 1 # columns ST_Z(MakePoint(136, -35)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/mbr10.testcase0000664000175000017500000000045712544707704020175 00000000000000MbrIntersects - Line + Point inside :memory: #use in-memory database SELECT MbrIntersects(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(0.5 1)")); 1 # rows (not including the header row) 1 # columns MbrIntersects(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(0.5 1)")) # header 1libspatialite-4.3.0a/test/sql_stmt_tests/casttopoint2.testcase0000664000175000017500000000023012544707704021672 00000000000000casttopoint - non-blob :memory: #use in-memory database SELECT CastToPoint(4) 1 # rows (not including the header row) 1 # columns CastToPoint(4) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geometryn20.testcase0000664000175000017500000000115012544707704021416 00000000000000Geometry N - multipolygonZM - second poly :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOLYGONZM(((0 0 1 2, 10 0 1 2, 10 10 1 2, 0 10 1 2, 0 0 1 2),(2 2 2 3, 8 2 2 3, 8 8 2 3, 2 8 2 3, 2 2 2 3)),((0 0 3 4, -10 0 3 4, -10 -10 3 4, 0 -10 3 4, 0 0 3 4)))"), 2)) 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOLYGONZM(((0 0 1 2, 10 0 1 2, 10 10 1 2, 0 10 1 2, 0 0 1 2),(2 2 2 3, 8 2 2 3, 8 8 2 3, 2 8 2 3, 2 2 2 3)),((0 0 3 4, -10 0 3 4, -10 -10 3 4, 0 -10 3 4, 0 0 3 4)))"), 2)) POLYGON ZM((0 0 3 4, -10 0 3 4, -10 -10 3 4, 0 -10 3 4, 0 0 3 4)) libspatialite-4.3.0a/test/sql_stmt_tests/makepoint3.testcase0000664000175000017500000000036212544707704021321 00000000000000makepoint3 :memory: #use in-memory database SELECT AsText(MakePoint(-71.1043443253471, 42.3150676015829)); 1 # rows (not including the header row) 1 # columns AsText(MakePoint(-71.1043443253471, 42.3150676015829)) POINT(-71.104344 42.315068) libspatialite-4.3.0a/test/sql_stmt_tests/extfrompath3.testcase0000664000175000017500000000024712544707704021675 00000000000000FileExtFromPath - DOUBLE :memory: #use in-memory database SELECT FileExtFromPath(1.1); 1 # rows (not including the header row) 1 # columns FileExtFromPath(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/mbr6.testcase0000664000175000017500000000036612544707704020121 00000000000000MbrContains - Point + bad blob (error) :memory: #use in-memory database SELECT MbrContains(GeomFromText("POINT(2 1)"), zeroblob(49)); 1 # rows (not including the header row) 1 # columns MbrContains(GeomFromText("POINT(2 1)"), zeroblob(49)) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/badwkt6.testcase0000664000175000017500000000063612544707704020615 00000000000000bad WKT: MultiPolygon :memory: #use in-memory database SELECT GeomFromText("MULTIPOLYGON(((11.2 12.3, 11.3 12.3, 11.3 12.4, 11.2 12.4, 11.2 12.3)), ((10.2 11.3, 10.3 11.3, 10.3 11.4, 10.2 11.4, 10.2 11.3))"); 1 # rows (not including the header row) 1 # columns GeomFromText("MULTIPOLYGON(((11.2 12.3, 11.3 12.3, 11.3 12.4, 11.2 12.4, 11.2 12.3)), ((10.2 11.3, 10.3 11.3, 10.3 11.4, 10.2 11.4, 10.2 11.3))") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/srid10.testcase0000664000175000017500000000025712544707704020354 00000000000000SetSRID - zeroblob :memory: #use in-memory database SELECT SetSRID(zeroblob(100), 4326) 1 # rows (not including the header row) 1 # columns SetSRID(zeroblob(100), 4326) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/greatcircle-poly7.testcase0000664000175000017500000000041412544707704022601 00000000000000great circle length polygonZM, invalid srid :memory: SELECT GreatCircleLength(GeomFromText("POLYGONZM((0 0 2 3, 1 0 3 4, 0 0 2 3, 0 0 2 3))", 12345)); 1 # rows 1 # column GreatCircleLength(GeomFromText("POLYGONZM((0 0 2 3, 1 0 3 4, 0 0 2 3, 0 0 2 3))", 12345)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geodesic-len4.testcase0000664000175000017500000000033312544707704021667 00000000000000geodesic length linestringM :memory: SELECT GeodesicLength(GeomFromText("LINESTRINGM(0 0 4, 1 0 2, 0 0 1)", 4326)); 1 # rows 1 # column GeodesicLength(GeomFromText("LINESTRINGM(0 0 4, 1 0 2, 0 0 1)", 4326)) 222638.98:9 libspatialite-4.3.0a/test/sql_stmt_tests/geomtype59.testcase0000664000175000017500000000044012544707704021253 00000000000000geometrytype - MULTIPOINT - one point :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("MULTIPOINT(-71 42)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) MULTIPOINT XYlibspatialite-4.3.0a/test/sql_stmt_tests/assvg4.testcase0000664000175000017500000000032312544707704020453 00000000000000assvg - 1 arg with SRID :memory: #use in-memory database SELECT assvg(GeomFromText("Point(1 2)", 4326)) 1 # rows (not including the header row) 1 # columns assvg(GeomFromText("Point(1 2)", 4326)) cx="1" cy="-2" libspatialite-4.3.0a/test/sql_stmt_tests/geomtype26.testcase0000664000175000017500000000043612544707704021252 00000000000000geometrytype - MULTIPOINTZ :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("MULTIPOINTZ(-71 42 26.2)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) MULTIPOINT Z XYZlibspatialite-4.3.0a/test/sql_stmt_tests/dimension2.testcase0000664000175000017500000000023712544707704021317 00000000000000dimension 2 - float (error) :memory: #use in-memory database SELECT Dimension(3.14); 1 # rows (not including the header row) 1 # columns Dimension(3.14) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/ring20.testcase0000664000175000017500000000060112544707704020344 00000000000000InteriorRingN - float interior (error) :memory: #use in-memory database SELECT InteriorRingN(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))"), 2.3); 1 # rows (not including the header row) 1 # columns InteriorRingN(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))"), 2.3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry63.testcase0000664000175000017500000000066712544707704023037 00000000000000CompressGeometry - MULTIPOLYGON Z (1 Polygon) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOLYGONZ(((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOLYGONZ(((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77)))", 4326))) MULTIPOLYGON Z(((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77))) libspatialite-4.3.0a/test/sql_stmt_tests/collect14.testcase0000664000175000017500000000050012544707704021033 00000000000000collect - PointZ, PointZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTZ(4 5 3.2)"), GeomFromText("POINTZM(1 2 6 4)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTZ(4 5 3.2)"), GeomFromText("POINTZM(1 2 6 4)"))) MULTIPOINT ZM(4 5 3.2 0, 1 2 6 4) libspatialite-4.3.0a/test/sql_stmt_tests/geometryn1.testcase0000664000175000017500000000037112544707704021341 00000000000000Geometry N - multipoint - out of range 0 :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOINT(1 2)"), 0)); 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOINT(1 2)"), 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/locatemeasure1.testcase0000664000175000017500000000033712544707704022163 00000000000000ST_Locate_Between_Measures - bad arg #1 :memory: #use in-memory database SELECT ST_Locate_Between_Measures("alpha", 2, 3) 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures("alpha", 2, 3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/invalidatestats1.testcase0000664000175000017500000000032312544707704022524 00000000000000InvalidateLayerStatistics - NULL, NULL :memory: #use in-memory database SELECT InvalidateLayerStatistics(NULL, NULL); 1 # rows (not including the header row) 1 # columns InvalidateLayerStatistics(NULL, NULL); 0 libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatetrans9.testcase0000664000175000017500000000032412544707704022353 00000000000000ATM_CreateTranslate() - 3d invalid 3rd arg :memory: #use in-memory database SELECT ATM_CreateTranslate(1.0, 2.0, 'a') 1 # rows (not including the header row) 1 # columns ATM_CreateTranslate(1.0, 2.0, 'a') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector8.testcase0000664000175000017500000000035512544707704023224 00000000000000makeellipticsector8 - BLOB x_axis :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, zeroblob(4), 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, zeroblob(4), 200, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/m_us_ch.testcase0000664000175000017500000000023212544707704020660 00000000000000metres to US chains :memory: #use in-memory database SELECT CvtToUsCh(1000); 1 # rows (not including the header row) 1 # columns CvtToUsCh(1000) 49.709:6 libspatialite-4.3.0a/test/sql_stmt_tests/getlayerextent9.testcase0000664000175000017500000000031312544707704022400 00000000000000GetLayerExtent - TEXT, BLOB :memory: #use in-memory database SELECT GetLayerExtent('table', zeroblob(4)); 1 # rows (not including the header row) 1 # columns GetLayerExtent('table', zeroblob(4)); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb19.testcase0000664000175000017500000000115612544707704021032 00000000000000fromWkb - MULTILINESTRING :memory: #use in-memory database SELECT Hex(MultiLinestringFromWkb(AsBinary(GeomFromText("MULTILINESTRING((1 2, 2 1),(0 0, 2 5, 4 2))", 4326)))) 1 # rows (not including the header row) 1 # columns Hex(MultiLinestringFromWkb(AsBinary(GeomFromText("MULTILINESTRING((1 2, 2 1),(0 0, 2 5, 4 2))", 4326)))) 00010000000000000000000000000000000000000000000000000000104000000000000014407C0500000002000000690200000002000000000000000000F03F00000000000000400000000000000040000000000000F03F690200000003000000000000000000000000000000000000000000000000000040000000000000144000000000000010400000000000000040FE libspatialite-4.3.0a/test/sql_stmt_tests/sridisgeographic5.testcase0000664000175000017500000000030012544707704022652 00000000000000SridIsGeographic() - BLOB SRID :memory: #use in-memory database SELECT SridIsGeographic(zeroblob(10)) 1 # rows (not including the header row) 1 # columns SridIsGeographic(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeline30.testcase0000664000175000017500000000050612544707704021177 00000000000000makeline - MULTIPOINT (XYZM valid - direct order) :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("MULTIPOINTZM(1 2 10 100,3 4 11 111)"), 1)) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("MULTIPOINTZM(1 2 10 100,3 4 11 111)"), 1)) LINESTRING ZM(1 2 10 100, 3 4 11 111) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype52.testcase0000664000175000017500000000072412544707704021251 00000000000000geometrytype - GEOMETRYCOLLECTIONZM - two linestring :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(4 6 0 1,7 10 0 1, 12 3 1 1),LINESTRINGZM(1 2 3 4,5 4 3 4, 12 3 2 1))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION ZM XYZM GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat16.testcase0000664000175000017500000000027312544707704022631 00000000000000normalizelonlat- bad blob :memory: #use in-memory database SELECT NormalizeLonLat(zeroblob(100)) 1 # rows (not including the header row) 1 # columns NormalizeLonLat(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/st_z4.testcase0000664000175000017500000000031512544707704020310 00000000000000ST_Z4 :memory: #use in-memory database SELECT ST_Z(GeomFromText("POINTZM(136 -35 635.2 10.2)")); 1 # rows (not including the header row) 1 # columns ST_Z(GeomFromText("POINTZM(136 -35 635.2 10.2)")) 635.2 libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry3.testcase0000664000175000017500000000025212544707704022737 00000000000000CompressGeometry - float :memory: #use in-memory database SELECT CompressGeometry(3.14) 1 # rows (not including the header row) 1 # columns CompressGeometry(3.14) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/translate10.testcase0000664000175000017500000000047712544707704021414 00000000000000translate - Linestring XYM :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("LINESTRINGM(1 2 20, 3 4 20)"), 1.4, 3.9, 5.3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("LINESTRINGM(1 2 20, 3 4 20)"), 1.4, 3.9, 5.3)) LINESTRING M(2.4 5.9 20, 4.4 7.9 20) libspatialite-4.3.0a/test/sql_stmt_tests/fdo-wkb.sqlite_RO0000664000175000017500000001200012544707704020656 00000000000000SQLite format 3@   -â ‘ $É‘&k!!ktableshapetest1shapetest1CREATE TABLE 'shapetest1' (OGC_FID INTEGER PRIMARY KEY,GEOMETRY BLOB, 'testcase1' VARCHAR, 'testcase2' INTEGER)"++{tablespatial_ref_sysspatial_ref_sysCREATE TABLE spatial_ref_sys ( srid INTEGER UNIQUE, auth_name TEXT, auth_srid TEXT, srtext TEXT)=Q+indexsqlite_autoindex_spatial_ref_sys_1spatial_ref_sysq--ƒtablegeometry_columnsgeometry_columnsCREATE TABLE geometry_columns ( f_table_name VARCHAR, f_geometry_column VARCHAR, geometry_type INTEGER, coord_dimension INTEGER, srid INTEGER, geometry_format VARCHAR ) ÝÝ!!shapetest1GEOMETRYÃPWKB gg‚'ÃPGEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] øøÃP µÛµ$60g¬i³‘JAR#‚ÃR&QAorde lees#6 ãÖ'_ŽJA1¾dïþ%QAwindwardlibspatialite-4.3.0a/test/sql_stmt_tests/collect44.testcase0000664000175000017500000000134312544707704021044 00000000000000collect - Polygon, PolygonZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGON((1 2, 3 4, 3 2, 1 2),(1.5 2.5, 2.5 3.5, 2.5 2.3, 1.5 2.5))"), GeomFromText("POLYGONZM((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4),(2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGON((1 2, 3 4, 3 2, 1 2),(1.5 2.5, 2.5 3.5, 2.5 2.3, 1.5 2.5))"), GeomFromText("POLYGONZM((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4),(2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))"))) MULTIPOLYGON ZM(((1 2 0 0, 3 4 0 0, 3 2 0 0, 1 2 0 0), (1.5 2.5 0 0, 2.5 3.5 0 0, 2.5 2.3 0 0, 1.5 2.5 0 0)), ((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4), (2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))) libspatialite-4.3.0a/test/sql_stmt_tests/atmtransform7.testcase0000664000175000017500000000132412544707704022052 00000000000000ATM_Transform() - XYM :memory: #use in-memory database SELECT AsText(ATM_Transform(GeomFromText('GEOMETRYCOLLECTIONM(POINTM(0 0 0), LINESTRINGM(1 1 1, 2 2 3), POLYGONM((10 10 1, 20 10 2, 20 20 3, 10 20 2, 10 10 1), (14 14 1, 16 14 2, 16 16 2, 14 16 2, 14 14 1)))'), ATM_Create())); 1 # rows (not including the header row) 1 # columns AsText(ATM_Transform(GeomFromText('GEOMETRYCOLLECTIONM(POINTM(0 0 0), LINESTRINGM(1 1 1, 2 2 3), POLYGONM((10 10 1, 20 10 2, 20 20 3, 10 20 2, 10 10 1), (14 14 1, 16 14 2, 16 16 2, 14 16 2, 14 14 1)))'), ATM_Create())); GEOMETRYCOLLECTION M(POINT M(0 0 0), LINESTRING M(1 1 1, 2 2 3), POLYGON M((10 10 1, 20 10 2, 20 20 3, 10 20 2, 10 10 1), (14 14 1, 16 14 2, 16 16 2, 14 16 2, 14 14 1))) libspatialite-4.3.0a/test/sql_stmt_tests/mbr30.testcase0000664000175000017500000000045112544707704020171 00000000000000MbrDisjoint - Line + Point left :memory: #use in-memory database SELECT MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(-0.5 1)")); 1 # rows (not including the header row) 1 # columns MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(-0.5 1)")) # header 1libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatezroll3.testcase0000664000175000017500000000073012544707704022361 00000000000000ATM_CreateZRoll() - valid double :memory: #use in-memory database SELECT Hex(ATM_CreateZRoll(15.0)) 1 # rows (not including the header row) 1 # columns Hex(ATM_CreateZRoll(15.0)) 000115BF4847DDE8EE3F3A900693C17D90D0BF3A00000000000000003A00000000000000003A900693C17D90D03F3A15BF4847DDE8EE3F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon18.testcase0000664000175000017500000000047412544707704021751 00000000000000makepolygon - Linestring TEXT interiors :memory: #use in-memory database SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), 'alpha'); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/srid5.testcase0000664000175000017500000000021212544707704020267 00000000000000SRID - non-geometry :memory: #use in-memory database SELECT SRID(100) 1 # rows (not including the header row) 1 # columns SRID(100) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/rotatecoords3.testcase0000664000175000017500000000132412544707704022041 00000000000000rotate coords - LINESTRING :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("LINESTRING(0 0, 1 1)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) LINESTRING(0 0, 1 1) LINESTRING(0 0, 1 -1) LINESTRING(0 0, -1 -1) LINESTRING(0 0, -1 1) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/badGeoJSON3.testcase0000664000175000017500000000051512544707704021205 00000000000000bad GeoJSON: Polygon :memory: #use in-memory database SELECT GeomFromGeoJSON('{"type":"Polygon","coordinates":[[[1.1,2.2],[3.3,2.2],[3.3,4.4],[1.1,4.4],[1.1,2.2]]]'); 1 # rows (not including the header row) 1 # columns GeomFromGeoJSON('{"type":"Polygon","coordinates":[[[1.1,2.2],[3.3,2.2],[3.3,4.4],[1.1,4.4],[1.1,2.2]]]'):0 (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/m_dm.testcase0000664000175000017500000000022612544707704020162 00000000000000metres to decimetres :memory: #use in-memory database SELECT CvtToDm(21.50); 1 # rows (not including the header row) 1 # columns CvtToDm(21.50); 215.0libspatialite-4.3.0a/test/sql_stmt_tests/mlinefromtext1.testcase0000664000175000017500000000056312544707704022230 00000000000000multilinefromtext1 :memory: #use in-memory database SELECT AsWkt(MLineFromText("MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))", 4326)) 1 # rows (not including the header row) 1 # columns AsWkt(MLineFromText("MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))", 4326)) MULTILINESTRING((10 10,20 20,10 40),(40 40,30 30,40 20,30 10))libspatialite-4.3.0a/test/sql_stmt_tests/setendpoint14.testcase0000664000175000017500000000050112544707704021743 00000000000000ST_SetEndPoint() - Z :memory: #use in-memory database SELECT AsText(SetEndPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2, 1 1 3)'), MakePoint(2, 3))) 1 # rows (not including the header row) 1 # columns AsText(SetEndPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2, 1 1 3)'), MakePoint(2, 3))) LINESTRING Z(0 0 1, 1 0 2, 2 3 0) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreateyroll2.testcase0000664000175000017500000000072112544707704022357 00000000000000ATM_CreateYRoll() - valid int :memory: #use in-memory database SELECT Hex(ATM_CreateYRoll(15)) 1 # rows (not including the header row) 1 # columns Hex(ATM_CreateYRoll(15)) 000115BF4847DDE8EE3F3A00000000000000003A900693C17D90D03F3A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A900693C17D90D0BF3A00000000000000003A15BF4847DDE8EE3F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/updatestats4.testcase0000664000175000017500000000031012544707704021665 00000000000000UpdateLayerStatistics - INT, TEXT :memory: #use in-memory database SELECT UpdateLayerStatistics(1, 'column'); 1 # rows (not including the header row) 1 # columns UpdateLayerStatistics(1, 'column'); 0 libspatialite-4.3.0a/test/sql_stmt_tests/casttomultilinestring6.testcase0000664000175000017500000000062512544707704024006 00000000000000casttomultilinestring - GEOMETRY COLLECTION, LINESTRING and POLYGON :memory: #use in-memory database SELECT AsText(CastToMultiLineString(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),LINESTRING(4 1, 3 4))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiLineString(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),LINESTRING(4 1, 3 4))"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt28.testcase0000664000175000017500000000063412544707704021261 00000000000000fromewkt28 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2))))')); GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)) libspatialite-4.3.0a/test/sql_stmt_tests/atmastext3.testcase0000664000175000017500000000023712544707704021345 00000000000000ATM_AsText() - text :memory: #use in-memory database SELECT ATM_AsText('alpha') 1 # rows (not including the header row) 1 # columns ATM_AsText('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geometryn18.testcase0000664000175000017500000000106112544707704021426 00000000000000Geometry N - multipolygonZ :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOLYGONZ(((0 0 1, 10 0 1, 10 10 1, 0 10 1, 0 0 1),(2 2 2, 8 2 2, 8 8 2, 2 8 2, 2 2 2)),((0 0 3, -10 0 3, -10 -10 3, 0 -10 3, 0 0 3)))"), 1)) 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOLYGONZ(((0 0 1, 10 0 1, 10 10 1, 0 10 1, 0 0 1),(2 2 2, 8 2 2, 8 8 2, 2 8 2, 2 2 2)),((0 0 3, -10 0 3, -10 -10 3, 0 -10 3, 0 0 3)))"), 1)) POLYGON Z((0 0 1, 10 0 1, 10 10 1, 0 10 1, 0 0 1), (2 2 2, 8 2 2, 8 8 2, 2 8 2, 2 2 2)) libspatialite-4.3.0a/test/sql_stmt_tests/ft_m.testcase0000664000175000017500000000021612544707704020172 00000000000000feet to metres :memory: #use in-memory database SELECT CvtFromFt(10); 1 # rows (not including the header row) 1 # columns CvtFromFt(10); 3.048libspatialite-4.3.0a/test/sql_stmt_tests/collect2.testcase0000664000175000017500000000031212544707704020751 00000000000000collect - first arg null :memory: #use in-memory database SELECT AsText(COLLECT(null, MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(null, MakePoint(2,3))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sriddatum4.testcase0000664000175000017500000000024412544707704021326 00000000000000SridGetDatum() - DOUBLE SRID :memory: #use in-memory database SELECT SridGetDatum(1.0) 1 # rows (not including the header row) 1 # columns SridGetDatum(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry40.testcase0000664000175000017500000000070312544707704023021 00000000000000CompressGeometry - MULTILINESTRING M :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTILINESTRINGM((10 10 1, 11 11 2, 12 12 3), (15 15 1, 16 16 2, 17 17 3))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTILINESTRINGM((10 10 1, 11 11 2, 12 12 3), (15 15 1, 16 16 2, 17 17 3))", 4326))) MULTILINESTRING M((10 10 1, 11 11 2, 12 12 3), (15 15 1, 16 16 2, 17 17 3)) libspatialite-4.3.0a/test/sql_stmt_tests/pointn14.testcase0000664000175000017500000000033112544707704020717 00000000000000pointN - empty LINESTRINGZ (error) :memory: #use in-memory database SELECT PointN(GeomFromText("LINESTRINGZ()"), 0); 1 # rows (not including the header row) 1 # columns PointN(GeomFromText("LINESTRINGZ()"), 0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geojson3.testcase0000664000175000017500000000064712544707704021004 00000000000000GeoJSON MultiPoint :memory: #use in-memory database SELECT AsGeoJSON(GeomFromText("MULTIPOINT(5 5, 6 6)", 4326), 2, 5); 1 # rows (not including the header row) 1 # columns AsGeoJSON(GeomFromText("MULTIPOINT(5 5, 6 6)", 4326), 2, 5) {"type":"MultiPoint","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:4326"}},"bbox":[5,5,6,6],"coordinates":[[5,5],[6,6]]}:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/ewkb4.testcase0000664000175000017500000000041712544707704020264 00000000000000EWkb: Linestring XY :memory: #use in-memory database SELECT AsText(GeomFromEWkb('0102000020E610000002000000000000000000F03F000000000000004000000000000008400000000000001040')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom LINESTRING(1 2, 3 4) libspatialite-4.3.0a/test/sql_stmt_tests/cm_m.testcase0000664000175000017500000000023312544707704020157 00000000000000centimetres to metres :memory: #use in-memory database SELECT CvtFromCm(-2100); 1 # rows (not including the header row) 1 # columns CvtFromCm(-2100); -21.0libspatialite-4.3.0a/test/sql_stmt_tests/mbr19.testcase0000664000175000017500000000046612544707704020206 00000000000000MbrOverlaps - Line + same Line :memory: #use in-memory database SELECT MbrOverlaps(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("LINESTRING(0 0, 1 2)")); 1 # rows (not including the header row) 1 # columns MbrOverlaps(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("LINESTRING(0 0, 1 2)")) # header 1libspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml19.testcase0000664000175000017500000000304512544707704021741 00000000000000From KML - MultiGeometry LINESTRING x 2 - 3D :memory: SELECT AsText(GeomFromKML(" -112.2550785337791,36.07954952145647,2357 -112.2549277039738,36.08117083492122,2357 -112.2552505069063,36.08260761307279,2357 -112.2564540158376,36.08395660588506,2357 -112.2580238976449,36.08511401044813,2357 -112.2595218489022,36.08584355239394,2357 -112.262073428656,36.08626019085147,2357 -112.2633204928495,36.08621519860091,2357 -112.2644963846444,36.08627897945274,2357 -112.2656969554589,36.08649599090644,2357 1,2,4 3,5,7")) 1 # rows 1 # column AsText(GeomFromKML(" -112.2550785337791,36.07954952145647,2357 -112.2549277039738,36.08117083492122,2357 -112.2552505069063,36.08260761307279,2357 -112.2564540158376,36.08395660588506,2357 -112.2580238976449,36.08511401044813,2357 -112.2595218489022,36.08584355239394,2357 -112.262073428656,36.08626019085147,2357 -112.2633204928495,36.08621519860091,2357 -112.2644963846444,36.08627897945274,2357 -112.2656969554589,36.08649599090644,2357 1,2,4 3,5,7")) MULTILINESTRING Z((-112.255079 36.07955 2357, -112.254928 36.081171 2357, -112.255251 36.082608 2357, -112.256454 36.083957 2357, -112.258024 36.085114 2357, -112.259522 36.085844 2357, -112.262073 36.08626 2357, -112.26332 36.086215 2357, -112.264496 36.086279 2357, -112.265697 36.086496 2357), (1 2 4, 3 5 7))libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatescale2.testcase0000664000175000017500000000074212544707704022310 00000000000000ATM_CreateScale() - valid (double) :memory: #use in-memory database SELECT Hex(ATM_CreateScale(1.0, 2.0)) 1 # rows (not including the header row) 1 # columns Hex(ATM_CreateScale(1.0, 2.0)) 0001000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A00000000000000403A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/makepointm-null2.testcase0000664000175000017500000000030712544707704022444 00000000000000makepointm-null2 :memory: #use in-memory database SELECT AsText(MakePointM(26.0, "world", 18.63)); 1 # rows (not including the header row) 1 # columns AsText(MakePointM(26.0, "world", 18.63)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/wkb6.testcase0000664000175000017500000000072612544707704020124 00000000000000Hex Wkb: GeometryCollection XYZ (2 points) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1.2 3.4 100), POINTZ(5.6 7.8 101))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1.2 3.4 100), POINTZ(5.6 7.8 101))", 4326))); 01EF0300000200000001E9030000333333333333F33F3333333333330B40000000000000594001E903000066666666666616403333333333331F400000000000405940 libspatialite-4.3.0a/test/sql_stmt_tests/casttopoly3.testcase0000664000175000017500000000043412544707704021533 00000000000000casttopolygon - POLYGON :memory: #use in-memory database SELECT AsText(CastToPolygon(GeomFromText("POLYGON((4 3, 1 1, 9 8, 4 3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToPolygon(GeomFromText("POLYGON((4 3, 1 1, 9 8, 4 3))"))) POLYGON((4 3, 1 1, 9 8, 4 3)) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry2.testcase0000664000175000017500000000027512544707704022743 00000000000000CompressGeometry - bad blob :memory: #use in-memory database SELECT CompressGeometry(zeroblob(50)) 1 # rows (not including the header row) 1 # columns CompressGeometry(zeroblob(50)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml52.testcase0000664000175000017500000000141512544707704021061 00000000000000FromGML - MultiLinestring v2 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2 3,4 5,6 7,810,10 11.3,11')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2 3,4 5,6 7,810,10 11.3,11')):0 SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.3 11)) libspatialite-4.3.0a/test/sql_stmt_tests/checkfontfacename3.testcase0000664000175000017500000000031712544707704022756 00000000000000CheckFontFaceName - standard NEW:memory: #use in-memory database SELECT CheckFontFaceName('arial', zeroblob(4)); 1 # rows (not including the header row) 1 # columns CheckFontFaceName('arial', zeroblob(4)) 0 libspatialite-4.3.0a/test/sql_stmt_tests/setstartpoint10.testcase0000664000175000017500000000042512544707704022333 00000000000000ST_SetStartPoint() - BLOB Point :memory: #use in-memory database SELECT ST_SetStartPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), zeroblob(4)) 1 # rows (not including the header row) 1 # columns ST_SetStartPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttomultipoint7.testcase0000664000175000017500000000056512544707704022765 00000000000000casttomultipoint - GEOMETRYCOLLECTION - 2 points and linestring :memory: #use in-memory database SELECT AsText(CastToMultiPoint(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2),POINT(4 8),LINESTRING(0 1, 2 3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiPoint(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2),POINT(4 8),LINESTRING(0 1, 2 3))"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttotext1.testcase0000664000175000017500000000023112544707704021525 00000000000000CastToText() - NULL :memory: #use in-memory database SELECT CastToText(NULL) 1 # rows (not including the header row) 1 # columns CastToText(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/st_m4.testcase0000664000175000017500000000022212544707704020270 00000000000000ST_M - text :memory: #use in-memory database SELECT M("hello world"); 1 # rows (not including the header row) 1 # columns M("hello world") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmtransform6.testcase0000664000175000017500000000132412544707704022051 00000000000000ATM_Transform() - XYZ :memory: #use in-memory database SELECT AsText(ATM_Transform(GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(0 0 0), LINESTRINGZ(1 1 1, 2 2 3), POLYGONZ((10 10 1, 20 10 2, 20 20 3, 10 20 2, 10 10 1), (14 14 1, 16 14 2, 16 16 2, 14 16 2, 14 14 1)))'), ATM_Create())); 1 # rows (not including the header row) 1 # columns AsText(ATM_Transform(GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(0 0 0), LINESTRINGZ(1 1 1, 2 2 3), POLYGONZ((10 10 1, 20 10 2, 20 20 3, 10 20 2, 10 10 1), (14 14 1, 16 14 2, 16 16 2, 14 16 2, 14 14 1)))'), ATM_Create())); GEOMETRYCOLLECTION Z(POINT Z(0 0 0), LINESTRING Z(1 1 1, 2 2 3), POLYGON Z((10 10 1, 20 10 2, 20 20 3, 10 20 2, 10 10 1), (14 14 1, 16 14 2, 16 16 2, 14 16 2, 14 14 1))) libspatialite-4.3.0a/test/sql_stmt_tests/makepointm-null6.testcase0000664000175000017500000000036112544707704022450 00000000000000makepointm-null6 :memory: #use in-memory database SELECT AsText(MakePointM(-26.0, 42.3150676015829, 12.6389, "WGS84")); 1 # rows (not including the header row) 1 # columns AsText(MakePointM(-26.0, 42.3150676015829, 12.6389, "WGS84")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/minz6.testcase0000664000175000017500000000041412544707704020310 00000000000000MinZ - Linestring XYZM :memory: #use in-memory database SELECT ST_MinZ(GeomFromText('LINESTRINGZM(1 2 100 10, 3 4 99 11, 5 6 101 12)')); 1 # rows (not including the header row) 1 # columns ST_MinZ(GeomFromText('LINESTRINGZM(1 2 100 10, 3 4 99 11, 5 6 101 12)')) 99.0 libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt7.testcase0000664000175000017500000000105412544707704021173 00000000000000fromewkt7 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10))))')); GEOMETRYCOLLECTION(POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))) libspatialite-4.3.0a/test/sql_stmt_tests/asbinary7.testcase0000664000175000017500000000064112544707704021146 00000000000000asbinary - multipointzm :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MultiPointZM(1 2 3 0,2 4 4 0)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MultiPointZM(1 2 3 0,2 4 4 0)", 4326))) 01BC0B00000200000001B90B0000000000000000F03F00000000000000400000000000000840000000000000000001B90B00000000000000000040000000000000104000000000000010400000000000000000 libspatialite-4.3.0a/test/sql_stmt_tests/isvalidrasterstats3.testcase0000664000175000017500000000034412544707704023265 00000000000000IsValidRasterStatistics - NULL statistics: 2 args NEW:memory: #use in-memory database SELECT IsValidRasterStatistics('alpha', NULL); 1 # rows (not including the header row) 1 # columns IsValidRasterStatistics('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_tests/m_yd_us.testcase0000664000175000017500000000023412544707704020704 00000000000000metres to US yards :memory: #use in-memory database SELECT CvtToUsYd(100.0); 1 # rows (not including the header row) 1 # columns CvtToUsYd(100.0); 109.36:6 libspatialite-4.3.0a/test/sql_stmt_tests/m_in.testcase0000664000175000017500000000022412544707704020166 00000000000000metres to inches :memory: #use in-memory database SELECT CvtToIn(1.0); 1 # rows (not including the header row) 1 # columns CvtToIn(1.0); 39.37007:8 libspatialite-4.3.0a/test/sql_stmt_tests/makearc9.testcase0000664000175000017500000000026512544707704020745 00000000000000makearc9 - NULL start :memory: #use in-memory database SELECT MakeArc(0, 0, 100, NULL, 60); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, NULL, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/st_m2.testcase0000664000175000017500000000032212544707704020267 00000000000000ST_M2 :memory: #use in-memory database SELECT ST_M(MakePointZM(136, -35, 0.0038723129645, 635.2)); 1 # rows (not including the header row) 1 # columns ST_M(MakePointZM(136, -35, 0.0038723129645, 635.2)) 635.2 libspatialite-4.3.0a/test/sql_stmt_tests/sridspheroid3.testcase0000664000175000017500000000025512544707704022032 00000000000000SridGetSpheroid() - DOUBLE SRID :memory: #use in-memory database SELECT SridGetSpheroid(1.0) 1 # rows (not including the header row) 1 # columns SridGetSpheroid(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/mbr8.testcase0000664000175000017500000000044512544707704020121 00000000000000MbrContains - Line + PointZ :memory: #use in-memory database SELECT MbrContains(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINTZ(1 2 1)")); 1 # rows (not including the header row) 1 # columns MbrContains(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINTZ(1 2 1)")) # header 1libspatialite-4.3.0a/test/sql_stmt_tests/translate7.testcase0000664000175000017500000000040412544707704021330 00000000000000translate - float shift :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("POINT(1 2)"), 1.4, 3.9, 5.3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("POINT(1 2)"), 1.4, 3.9, 5.3)) POINT(2.4 5.9) libspatialite-4.3.0a/test/sql_stmt_tests/makepointm-null4.testcase0000664000175000017500000000035712544707704022453 00000000000000makepointm-null4 :memory: #use in-memory database SELECT AsText(MakePointM("hello", 42.3150676015829, 12.6389, 4326)); 1 # rows (not including the header row) 1 # columns AsText(MakePointM("hello", 42.3150676015829, 12.6389, 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe26.testcase0000664000175000017500000000036112544707704023307 00000000000000makecircularstripe26 - BLOB radius #2 :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, zeroblob(4), 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, zeroblob(4), 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb8.testcase0000664000175000017500000000046512544707704020752 00000000000000fromWkb - mandatory LINESTRING, but POLYGON arg :memory: #use in-memory database SELECT LinestringFromWkb(AsBinary(GeomFromText("POLYGON((1 2, 3 1, 4 4, 1 2))", 4326))) 1 # rows (not including the header row) 1 # columns LinestringFromWkb(AsBinary(GeomFromText("POLYGON((1 2, 3 1, 4 4, 1 2))", 4326))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/envelope6.testcase0000664000175000017500000000023312544707704021147 00000000000000Envelope - non-geom :memory: #use in-memory database SELECT Envelope("hello") 1 # rows (not including the header row) 1 # columns Envelope("hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircle5.testcase0000664000175000017500000000026312544707704021433 00000000000000makecircle5 - text cy :memory: #use in-memory database SELECT MakeCircle(0, 'alpha', 100); 1 # rows (not including the header row) 1 # columns MakeCircle(0, 'alpha', 100) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector15.testcase0000664000175000017500000000034012544707704023274 00000000000000makeellipticsector15 - NULL stop :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, 30, NULL); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, 30, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/envelope2.testcase0000664000175000017500000000043412544707704021146 00000000000000Envelope - Polygon :memory: #use in-memory database SELECT AsText(Envelope(GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))"))) 1 # rows (not including the header row) 1 # columns AsText(Envelope(GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))"))) POLYGON((1 1, 2 1, 2 2, 1 2, 1 1)) libspatialite-4.3.0a/test/sql_stmt_tests/makepoint5.testcase0000664000175000017500000000037512544707704021327 00000000000000makepoint5 :memory: #use in-memory database SELECT AsWkt(MakePoint(-71.1043443253470, 42.3150676015829)); 1 # rows (not including the header row) 1 # columns AsWkt(MakePoint(-71.1043443253470, 42.3150676015829)) POINT(-71.104344325347 42.3150676015829) libspatialite-4.3.0a/test/sql_stmt_tests/updatestats8.testcase0000664000175000017500000000031512544707704021676 00000000000000UpdateLayerStatistics - TEXT, DOUBLE :memory: #use in-memory database SELECT UpdateLayerStatistics('table', 1.1); 1 # rows (not including the header row) 1 # columns UpdateLayerStatistics('table', 1.1); 0 libspatialite-4.3.0a/test/sql_stmt_tests/wkb15.testcase0000664000175000017500000000071512544707704020202 00000000000000Hex Wkb: GeometryCollection XYM (single line) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(1.2 3.4 12, 5.6 7.8 13))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(1.2 3.4 12, 5.6 7.8 13))", 4326))); 01D70700000100000001D207000002000000333333333333F33F3333333333330B40000000000000284066666666666616403333333333331F400000000000002A40 libspatialite-4.3.0a/test/sql_stmt_tests/getlayerextent3.testcase0000664000175000017500000000030512544707704022373 00000000000000GetLayerExtent - TEXT, TEXT :memory: #use in-memory database SELECT GetLayerExtent('table', 'column'); 1 # rows (not including the header row) 1 # columns GetLayerExtent('table', 'column'); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat5.testcase0000664000175000017500000000045112544707704022545 00000000000000normalizelonlat- out of range positive longitude to negative longitude :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(181 2)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(181 2)", 4326))) POINT(-179 2) libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon19.testcase0000664000175000017500000000051412544707704021745 00000000000000makepolygon - Linestring invalid BLOB interiors :memory: #use in-memory database SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), zeroblob(4)); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makearc13.testcase0000664000175000017500000000027312544707704021017 00000000000000makearc13 - text stop :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 30, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 30, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe25.testcase0000664000175000017500000000035112544707704023305 00000000000000makecircularstripe25 - TEXT radius #2 :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 'alpha', 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 'alpha', 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/gml10.testcase0000664000175000017500000000142512544707704020170 00000000000000GML Polygon Z: no SRID :memory: #use in-memory database SELECT AsGML(3, GeomFromText("POLYGONZ((10 10 100, 20 10 101, 20 20 102, 10 20 103, 10 10 100), (15 15 80, 16 15 90, 16 16 95, 15 16 90, 15 15 80))")); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("POLYGONZ((10 10 100, 20 10 101, 20 20 102, 10 20 103, 10 10 100), (15 15 80, 16 15 90, 16 16 95, 15 16 90, 15 15 80))")) 10 10 100 20 10 101 20 20 102 10 20 103 10 10 10015 15 80 16 15 90 16 16 95 15 16 90 15 15 80:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector10.testcase0000664000175000017500000000034612544707704023275 00000000000000makeellipticsector10 - text y_axis :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 'alpha', 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 'alpha', 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttosingle3.testcase0000664000175000017500000000033612544707704022032 00000000000000casttosingle - POINT :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("POINT(3 1)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("POINT(3 1)"))) POINT(3 1) libspatialite-4.3.0a/test/sql_stmt_tests/makeline.testcase0000664000175000017500000000041712544707704021035 00000000000000makeline1 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINT(0 0)"), GeomFromText("POINT(1 2)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINT(0 0)"), GeomFromText("POINT(1 2)"))) LINESTRING(0 0, 1 2) libspatialite-4.3.0a/test/sql_stmt_tests/extractmultilinestring2.testcase0000664000175000017500000000027112544707704024154 00000000000000extractmultilinestring - non-blob :memory: #use in-memory database SELECT ExtractMultiLinestring(4) 1 # rows (not including the header row) 1 # columns ExtractMultiLinestring(4) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/isvalidrastertile5.testcase0000664000175000017500000000035512544707704023070 00000000000000IsValidRasterTile - TEXT even-tile NEW:memory: #use in-memory database SELECT IsValidRasterTile('alpha', 0, zeroblob(4), 'beta'); 1 # rows (not including the header row) 1 # columns IsValidRasterTile('alpha', 0, zeroblob(4), 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon25.testcase0000664000175000017500000000103612544707704021742 00000000000000makepolygon - XYM hole :memory: #use in-memory database SELECT AsText(ST_MakePolygon(GeomFromText('LINESTRINGM(1 1 4, 1 20 3, 20 20 2, 20 1 3, 1 1 4)', 4326), GeomFromText('LINESTRINGM(2 2 10, 3 2 11, 3 3 12, 2 3 13, 2 2 10)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_MakePolygon(GeomFromText('LINESTRINGM(1 1 4, 1 20 3, 20 20 2, 20 1 3, 1 1 4)', 4326), GeomFromText('LINESTRINGM(2 2 10, 3 2 11, 3 3 12, 2 3 13, 2 2 10)'))) POLYGON M((1 1 4, 1 20 3, 20 20 2, 20 1 3, 1 1 4), (2 2 10, 3 2 11, 3 3 12, 2 3 13, 2 2 10)) libspatialite-4.3.0a/test/sql_stmt_tests/sridax1orient5.testcase0000664000175000017500000000033312544707704022126 00000000000000SridGetAxis_1_Orientation() - BLOB SRID :memory: #use in-memory database SELECT SridGetAxis_1_Orientation(zeroblob(10)) 1 # rows (not including the header row) 1 # columns SridGetAxis_1_Orientation(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr20.testcase0000664000175000017500000000023612544707704021046 00000000000000garsmbr - bad coords :memory: #use in-memory database SELECT GARSMbr("AA123A1") 1 # rows (not including the header row) 1 # columns GARSMbr("AA123A1") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry52.testcase0000664000175000017500000000061612544707704023027 00000000000000CompressGeometry - GEOMETRYCOLLECTION M (2 Points) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), POINTM(3 4 11))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), POINTM(3 4 11))", 4326))) GEOMETRYCOLLECTION M(POINT M(1 2 10), POINT M(3 4 11)) libspatialite-4.3.0a/test/sql_stmt_tests/st_z5.testcase0000664000175000017500000000036312544707704020314 00000000000000ST_Z5 :memory: #use in-memory database SELECT ST_Z(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")); 1 # rows (not including the header row) 1 # columns ST_Z(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttomultilinestring7.testcase0000664000175000017500000000053412544707704024006 00000000000000casttomultilinestring - GEOMETRY COLLECTION, POLYGON :memory: #use in-memory database SELECT AsText(CastToMultiLineString(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiLineString(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)))"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeline2.testcase0000664000175000017500000000031112544707704021110 00000000000000makeline2 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINT(0 0)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINT(0 0)"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry58.testcase0000664000175000017500000000107412544707704023034 00000000000000CompressGeometry - GEOMETRYCOLLECTION (2 Polygons) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)), POLYGON((15 15, 16 15, 16 16, 15 16, 15 15)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)), POLYGON((15 15, 16 15, 16 16, 15 16, 15 15)))", 4326))) GEOMETRYCOLLECTION(POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)), POLYGON((15 15, 16 15, 16 16, 15 16, 15 15))) libspatialite-4.3.0a/test/sql_stmt_tests/atmisvalid1.testcase0000664000175000017500000000022112544707704021457 00000000000000ATM_IsValid() - int :memory: #use in-memory database SELECT ATM_IsValid(1) 1 # rows (not including the header row) 1 # columns ATM_IsValid(1) -1 libspatialite-4.3.0a/test/sql_stmt_tests/mpolygonfromtext1.testcase0000664000175000017500000000061412544707704022765 00000000000000multipolygonfromtext1 :memory: #use in-memory database SELECT AsWkt(MPolyFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))")) 1 # rows (not including the header row) 1 # columns AsWkt(MPolyFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))")) MULTIPOLYGON(((30 20,10 40,45 40,30 20)),((15 5,40 10,10 20,5 10,15 5)))libspatialite-4.3.0a/test/sql_stmt_tests/todms2.testcase0000664000175000017500000000026412544707704020460 00000000000000todms - TEXT longitude :memory: #use in-memory database SELECT LongLatToDMS('alpha', 42.5); 1 # rows (not including the header row) 1 # columns LongLatToDMS('alpha', 42.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype14.testcase0000664000175000017500000000055412544707704021250 00000000000000geometrytype - MULTIPOLYGONZ :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("MULTIPOLYGONZ(((30 20 1, 10 40 1, 45 40 1, 30 20 1)),((15 5 2, 40 10 2, 10 20 2, 5 10 2, 15 5 2)))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) MULTIPOLYGON Z XYZlibspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints8.testcase0000664000175000017500000000033312544707704022554 00000000000000geometry constraints - 3 arg, text :memory: #use in-memory database SELECT GeometryConstraints("hello", "POINT", 4326) 1 # rows (not including the header row) 1 # columns GeometryConstraints("hello", "POINT", 4326) -1 libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector5.testcase0000664000175000017500000000033312544707704023214 00000000000000makecircularsector5 - text cy :memory: #use in-memory database SELECT MakeCircularSector(0, 'alpha', 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 'alpha', 100, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/dissolve5.testcase0000664000175000017500000000027612544707704021170 00000000000000dissolvePoints - zeroblob input :memory: #use in-memory database SELECT DissolvePoints(zeroblob(126)) 1 # rows (not including the header row) 1 # columns DissolvePoints(zeroblob(126)) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/routing4.testcase0000664000175000017500000000061312544707704021021 00000000000000routing: integer ids (A*, from-to) sql_stmt_tests/testdb1.sqlite UPDATE roads_net SET Algorithm = 'A*'; SELECT Algorithm, ArcRowid, NodeFrom, NodeTo, Cost FROM roads_net WHERE NodeTo = 32 AND NodeFrom = 29; 4 # rows (not including the header row) 5 # columns Algorithm ArcRowid NodeFrom NodeTo Cost A* (NULL) 29 32 0.001856:6 A* 29 29 30 0.000512:6 A* 30 30 31 0.000445:6 A* 31 31 32 0.000898:6 libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate23.testcase0000664000175000017500000000042512544707704021361 00000000000000ATM_Create() - invalid 12th arg :memory: #use in-memory database SELECT ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 'a') 1 # rows (not including the header row) 1 # columns ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 'a') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/setstartpoint4.testcase0000664000175000017500000000030212544707704022250 00000000000000ST_SetStartPoint() - TEXT line :memory: #use in-memory database SELECT ST_SetStartPoint('alpha', NULL) 1 # rows (not including the header row) 1 # columns ST_SetStartPoint('alpha', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/maxz3.testcase0000664000175000017500000000034012544707704020305 00000000000000MaxZ - Linestring XY :memory: #use in-memory database SELECT ST_MaxZ(GeomFromText('LINESTRING(1 2, 3 4, 5 6)')); 1 # rows (not including the header row) 1 # columns ST_MaxZ(GeomFromText('LINESTRING(1 2, 3 4, 5 6)')) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate12.testcase0000664000175000017500000000042612544707704021360 00000000000000ATM_Create() - invalid 7th arg :memory: #use in-memory database SELECT ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 'a', 8.0, 9.0, 10.0, 11.0, 12.0) 1 # rows (not including the header row) 1 # columns ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 'a', 8.0, 9.0, 10.0, 11.0, 12.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttoblob6.testcase0000664000175000017500000000027512544707704021474 00000000000000CastToBlob() - NULL hex_input :memory: #use in-memory database SELECT CastToBlob('0129abCF', NULL) 1 # rows (not including the header row) 1 # columns CastToBlob('0129abCF', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry48.testcase0000664000175000017500000000053412544707704023033 00000000000000CompressGeometry - GEOMETRYCOLLECTION M (1 Point) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10))", 4326))) GEOMETRYCOLLECTION M(POINT M(1 2 10)) libspatialite-4.3.0a/test/sql_stmt_tests/mpolygonfromtext2.testcase0000664000175000017500000000063012544707704022764 00000000000000multipolygonfromtext2 :memory: #use in-memory database SELECT AsWkt(MPolyFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))", 4326)) 1 # rows (not including the header row) 1 # columns AsWkt(MPolyFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))", 4326)) MULTIPOLYGON(((30 20,10 40,45 40,30 20)),((15 5,40 10,10 20,5 10,15 5)))libspatialite-4.3.0a/test/sql_stmt_tests/addpoint6.testcase0000664000175000017500000000035612544707704021142 00000000000000ST_AddPoint() - NULL Point :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), NULL) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sanitizeGeometry16.testcase0000664000175000017500000000155412544707704022764 00000000000000Sanitize Geometry - POLYGON ZM with interior :memory: #use in-memory database SELECT AsText(SanitizeGeometry(GeomFromText("POLYGONZM((-10 -10 1 0, -10 -10 1 0, 10 -10 2 2, 10 10 3 2, -10 10 4 2, -10 -10 1 2, -10 -10 1 0),(-6 -6 2 1, -6 -5 3 1, -5 -5 3 1, -5 -5 4 1, -5 -5 4 1, -5 -6 9 1, -6 -6 2 1),(6 6 0 1, 5 6 0 2, 5 6 0 1, 5 5 0 2, 6 5 0 1, 6 6 0 1))"))) 1 # rows (not including the header row) 1 # columns AsText(SanitizeGeometry(GeomFromText("POLYGONZM((-10 -10 1 0, -10 -10 1 0, 10 -10 2 2, 10 10 3 2, -10 10 4 2, -10 -10 1 2, -10 -10 1 0),(-6 -6 2 1, -6 -5 3 1, -5 -5 3 1, -5 -5 4 1, -5 -5 4 1, -5 -6 9 1, -6 -6 2 1),(6 6 0 1, 5 6 0 2, 5 6 0 1, 5 5 0 2, 6 5 0 1, 6 6 0 1))"))) POLYGON ZM((-10 -10 1 0, 10 -10 2 2, 10 10 3 2, -10 10 4 2, -10 -10 1 0), (-6 -6 2 1, -6 -5 3 1, -5 -5 3 1, -5 -5 4 1, -5 -6 9 1, -6 -6 2 1), (6 6 0 1, 5 6 0 2, 5 5 0 2, 6 5 0 1, 6 6 0 1)) libspatialite-4.3.0a/test/sql_stmt_tests/badEWKT5.testcase0000664000175000017500000000050612544707704020555 00000000000000bad EWKT: MultiLinestring :memory: #use in-memory database SELECT GeomFromEWKT("SRID=4326;MULTILINESTRING((11.2 12.3, 11.3 12.4, 11.4 12.5), (11.5 12.6, 11.6 12.7)"); 1 # rows (not including the header row) 1 # columns GeomFromEWKT("SRID=4326;MULTILINESTRING((11.2 12.3, 11.3 12.4, 11.4 12.5), (11.5 12.6, 11.6 12.7)") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridflipped7.testcase0000664000175000017500000000025712544707704021646 00000000000000SridHasFlippedAxes() - 32632 :memory: #use in-memory database SELECT SridHasFlippedAxes(32632) 1 # rows (not including the header row) 1 # columns SridHasFlippedAxes(32632) 0 libspatialite-4.3.0a/test/sql_stmt_tests/minm1.testcase0000664000175000017500000000021212544707704020262 00000000000000MinM - non-blob :memory: #use in-memory database SELECT ST_MinM(3) 1 # rows (not including the header row) 1 # columns ST_MinM(3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml18.testcase0000664000175000017500000000257412544707704021746 00000000000000From KML - MultiGeometry LINESTRING x 2 :memory: SELECT AsText(GeomFromKML(" -112.2550785337791,36.07954952145647 -112.2549277039738,36.08117083492122 -112.2552505069063,36.08260761307279 -112.2564540158376,36.08395660588506 -112.2580238976449,36.08511401044813 -112.2595218489022,36.08584355239394 -112.262073428656,36.08626019085147 -112.2633204928495,36.08621519860091 -112.2644963846444,36.08627897945274 -112.2656969554589,36.08649599090644 1,2 3,4")) 1 # rows 1 # column AsText(GeomFromKML(" -112.2550785337791,36.07954952145647 -112.2549277039738,36.08117083492122 -112.2552505069063,36.08260761307279 -112.2564540158376,36.08395660588506 -112.2580238976449,36.08511401044813 -112.2595218489022,36.08584355239394 -112.262073428656,36.08626019085147 -112.2633204928495,36.08621519860091 -112.2644963846444,36.08627897945274 -112.2656969554589,36.08649599090644 1,2 3,4")) MULTILINESTRING((-112.255079 36.07955, -112.254928 36.081171, -112.255251 36.082608, -112.256454 36.083957, -112.258024 36.085114, -112.259522 36.085844, -112.262073 36.08626, -112.26332 36.086215, -112.264496 36.086279, -112.265697 36.086496), (1 2, 3 4))libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt32.testcase0000664000175000017500000000105612544707704021253 00000000000000geomfromtext38 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(GEOMETRYCOLLECTIONZ(POINTZ(0 0 9), LINESTRINGZ(1 1 9, 2 2 9)), GEOMETRYCOLLECTIONZ(POINTZ(3 3 9), LINESTRINGZ(4 4 9, 5 5 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZ(GEOMETRYCOLLECTIONZ(POINTZ(0 0 9), LINESTRINGZ(1 1 9, 2 2 9)), GEOMETRYCOLLECTIONZ(POINTZ(3 3 9), LINESTRINGZ(4 4 9, 5 5 9)))')); GEOMETRYCOLLECTION Z(POINT Z(0 0 9), POINT Z(3 3 9), LINESTRING Z(1 1 9, 2 2 9), LINESTRING Z(4 4 9, 5 5 9)) libspatialite-4.3.0a/test/sql_stmt_tests/removedupl1.testcase0000664000175000017500000000027312544707704021513 00000000000000RemoveDuplicateRows() - NULL table :memory: #use in-memory database SELECT RemoveDuplicateRows(NULL); 1 # rows (not including the header row) 1 # columns RemoveDuplicateRows(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttoxym3.testcase0000664000175000017500000000035212544707704021364 00000000000000casttoxym - POINT :memory: #use in-memory database SELECT AsText(CastToXYM(GeomFromText("POINTZM(4 3 10 20)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYM(GeomFromText("POINTZM(4 3 10 20)"))) POINT M(4 3 20) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull9.testcase0000664000175000017500000000025712544707704021334 00000000000000ForceAsNull() - TEXT/INTEGER :memory: #use in-memory database SELECT ForceAsNull('alpha', 1) 1 # rows (not including the header row) 1 # columns ForceAsNull('alpha', 1) alpha libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon3.testcase0000664000175000017500000000024512544707704021657 00000000000000makepolygon - DOUBLE exterior :memory: #use in-memory database SELECT MakePolygon(1.5); 1 # rows (not including the header row) 1 # columns MakePolygon(1.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ring11.testcase0000664000175000017500000000051012544707704020343 00000000000000NumInteriorRings - Polygon with 1 interior :memory: #use in-memory database SELECT NumInteriorRings(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1))")); 1 # rows (not including the header row) 1 # columns NumInteriorRings(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1))")) 1 libspatialite-4.3.0a/test/sql_stmt_tests/casttoxy3.testcase0000664000175000017500000000034212544707704021206 00000000000000casttoxy - POINT :memory: #use in-memory database SELECT AsText(CastToXY(GeomFromText("POINTZM(4 3 10 20)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXY(GeomFromText("POINTZM(4 3 10 20)"))) POINT(4 3) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate13.testcase0000664000175000017500000000042612544707704021361 00000000000000ATM_Create() - invalid 8th arg :memory: #use in-memory database SELECT ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 'a', 9.0, 10.0, 11.0, 12.0) 1 # rows (not including the header row) 1 # columns ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 'a', 9.0, 10.0, 11.0, 12.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttosingle10.testcase0000664000175000017500000000043112544707704022104 00000000000000casttosingle - POLYGON :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("POLYGON((4 3, 1 1, 9 8, 4 3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("POLYGON((4 3, 1 1, 9 8, 4 3))"))) POLYGON((4 3, 1 1, 9 8, 4 3)) libspatialite-4.3.0a/test/sql_stmt_tests/encodeurl3.testcase0000664000175000017500000000022512544707704021310 00000000000000EncodeURL - DOUBLE :memory: #use in-memory database SELECT EncodeURL(1.5); 1 # rows (not including the header row) 1 # columns EncodeURL(1.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geojson5.testcase0000664000175000017500000000117612544707704021004 00000000000000GeoJSON GeometryCollection (Polygon+Point) :memory: #use in-memory database SELECT AsGeoJSON(GeomFromText("GEOMETRYCOLLECTION(POLYGON((5 5, 6 5, 6 6, 5 6, 5 5)), POINT(7 8))", 4326), 2, 5); 1 # rows (not including the header row) 1 # columns AsGeoJSON(GeomFromText("GEOMETRYCOLLECTION(POLYGON((5 5, 6 5, 6 6, 5 6, 5 5)), POINT(7 8))", 4326), 2, 5) {"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:4326"}},"bbox":[5,5,7,8],"geometries":[{"type":"Point","coordinates":[7,8]},{"type":"Polygon","coordinates":[[[5,5],[6,5],[6,6],[5,6],[5,5]]]}]}:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/geomtype45.testcase0000664000175000017500000000067012544707704021253 00000000000000geometrytype - GEOMETRYCOLLECTIONZ - point and polygon :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(4 6 0),POLYGONZ((4 6 1,7 10 1, 12 3 2, 4 6 1)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION Z XYZ GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/geomtype15.testcase0000664000175000017500000000055412544707704021251 00000000000000geometrytype - MULTIPOLYGONM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("MULTIPOLYGONM(((30 20 1, 10 40 1, 45 40 1, 30 20 1)),((15 5 2, 40 10 2, 10 20 2, 5 10 2, 15 5 2)))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) MULTIPOLYGON M XYMlibspatialite-4.3.0a/test/sql_stmt_tests/casttopoint6.testcase0000664000175000017500000000035312544707704021704 00000000000000casttopoint - LINESTRING, no points :memory: #use in-memory database SELECT CastToPoint(GeomFromText("LINESTRING(4 3, 4 1)")) 1 # rows (not including the header row) 1 # columns CastToPoint(GeomFromText("LINESTRING(4 3, 4 1)")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml31.testcase0000664000175000017500000000100712544707704021053 00000000000000FromGML - GeometryCollection, single pointZ :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2,3.2')) 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2,3.2')):0 SRID=-1;GEOMETRYCOLLECTION(POINT(1 2 3.2)) libspatialite-4.3.0a/test/sql_stmt_tests/wkb32.testcase0000664000175000017500000000160112544707704020174 00000000000000Hex Wkb: GeometryCollection XYZM (point, polygon) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 11), POLYGONZM((10 10 100 1, 11 10 101 2, 11 11 102 3, 10 11 103 3, 10 10 100 1)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 11), POLYGONZM((10 10 100 1, 11 10 101 2, 11 11 102 3, 10 11 103 3, 10 10 100 1)))", 4326))); 01BF0B00000200000001B90B0000000000000000F03F00000000000000400000000000005940000000000000264001BB0B00000100000005000000000000000000244000000000000024400000000000005940000000000000F03F00000000000026400000000000002440000000000040594000000000000000400000000000002640000000000000264000000000008059400000000000000840000000000000244000000000000026400000000000C059400000000000000840000000000000244000000000000024400000000000005940000000000000F03F libspatialite-4.3.0a/test/sql_stmt_tests/collectextract3.testcase0000664000175000017500000000037112544707704022352 00000000000000Collection Extract - Point (NULL) :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POINT(1 2)"), 3)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POINT(1 2)"), 3)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/checkfontfacename1.testcase0000664000175000017500000000031712544707704022754 00000000000000CheckFontFaceName - NULL facename NEW:memory: #use in-memory database SELECT CheckFontFaceName(NULL, zeroblob(4)); 1 # rows (not including the header row) 1 # columns CheckFontFaceName(NULL, zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_tests/gml3.testcase0000664000175000017500000000103712544707704020111 00000000000000GML MultiPoint: excessive precision :memory: #use in-memory database SELECT AsGML(3, GeomFromText("MULTIPOINT(1 2, 3 4)", 4326), 44); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("MULTIPOINT(1 2, 3 4)", 4326), 44) 1 23 4:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/makearc20.testcase0000664000175000017500000000031112544707704021006 00000000000000makearc20 - NULL step :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 30, 60, 4326, NULL); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 30, 60, 4326, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collect16.testcase0000664000175000017500000000046412544707704021046 00000000000000collect - PointM, PointM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTM(4 5 3.2)"), GeomFromText("POINTM(1 2 4)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTM(4 5 3.2)"), GeomFromText("POINTM(1 2 4)"))) MULTIPOINT M(4 5 3.2, 1 2 4) libspatialite-4.3.0a/test/sql_stmt_tests/makearc22.testcase0000664000175000017500000000032712544707704021017 00000000000000makearc21 - BLOB step :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 30, 60, 4326, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 30, 60, 4326, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asewkb12.testcase0000664000175000017500000000167012544707704020671 00000000000000asewkb - POLYGON :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,2 2, 2 1, 1 1))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,2 2, 2 1, 1 1))", 4326))) 303130333030303032304536313030303030303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030323434303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030343030303030303030303030303030303030304630334630303030303030303030303046303346303030303030303030303030303034303030303030303030303030303030343030303030303030303030303030303430303030303030303030303030463033463030303030303030303030304630334630303030303030303030303046303346 libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson26.testcase0000664000175000017500000000177412544707704021757 00000000000000FromGeoJSON - MULTIPOLYGONZ with SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"MultiPolygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[[10,10,1.2],[0,10,1.3],[0,0,1.1],[0,10,1.3],[10,10,1.2]]],[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"MultiPolygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[[10,10,1.2],[0,10,1.3],[0,0,1.1],[0,10,1.3],[10,10,1.2]]],[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]]}')):0 SRID=3003;MULTIPOLYGON(((10 10 1.2,0 10 1.3,0 0 1.1,0 10 1.3,10 10 1.2)),((-10 -10 4,-10 10 5,10 10 6,10 -10 5,-10 -10 4),(-8 -8 1,-2 -8 3,-2 -2 5,-8 -2 7,-8 -8 1),(8 8 11,2 8 13,2 2 17,8 2 13,8 8 11))) libspatialite-4.3.0a/test/sql_stmt_tests/test.webp0000664000175000017500000001150012544707704017344 00000000000000RIFF8WEBPVP8 üÐ>*€€……ˆ…„ˆ‚ÁÓ/'Ug*Ngñ7ÿÝŒý¾9ýúŸçSn ü+ó/Á×­}ÏõsÉ_YZ…ü³íçê?¼þãüeþ¼ÿ’:‚ûý_оÃm£ýoüïP^ðÅÿâÛþç ß[¿ç{€ÿ2þaþÛÕOó~uÿKìýûgýoóߘß$Ÿñ™üÞöïôÏþOó_ÿ«?òÿ¼{^ÿÿ÷=û…ì±úÇÿ‡ÞüÖáÌ·Å"ó$úÑ—w/­ÿ2 Šn<•BWª}7Òãßæ’¢$B˜ …áÒÔEIþK‡¹¯§åa‹šl¹6Ï•ò&/„V/M:žÈ'çî½×½•í–7È>™´æ1ØhŽÜŸm®•xœøŠ˜š0ÎK=»ø†qF YAbÖ‡uäŽ×"[ËÈ1‰Ðª¿2¾+²!‘Ou¢þ†f"$cnËÚ.½Ñ½y s‘/"UºJž?.\«6…löÿ-ŽÂ0º©”çÿFt“úD0aC˜Ìæ `â9ÜmÌNn!믂&—¶sßwfäëD›hpË2Í1a ÿÿ,µ«uZÀ§(×ψ'”Å õ¼„ˆpN4o°LBj]î~Pù¶Ê:MX¿uß=ÕëC¥í¥÷f¸s=æ{!Øô]pz»¹ þÿþõt|Ÿÿ’ùçý^i£ÿɼ/î,i ¤pO~ñ¿>¬Üè#4@íFuñs¡ÁÄð? ¥TýTôÛÓ(äQ9:Xivo‚üÒµ‘Tž â;ô%ÄÇ¡ü®-ÿ°NË,€v'LŸôV#?eâö«êvoÖó ØYmÞIóiUº…;€·Ý}-·Fb0–{€572…¸F0ïJMˆ6uùp¦b£uap‹k}9,•ŸÊØŠ[êSÆŸÂ9ãœð¥Òe‹ugÑ/^­¶fO+XW<·ˆaøµNf¿Ößûè–v{þa“—ùD/¿î,»žéM!Y`uL  Ù"Á‘ª”•5×âj[è*Ý\ر¸§ô>8Q­¿µÿzé=4t͈Šî—uå ·Ðú2{=¼/wï ÑWéÅÓ*\G©u1ÿÁµ[cè%½Mï–Ïr6?þüD5}ÌbƒôÓóÃ*Üþs;•Ú[={¹ÿ¦eqÓVÿñ PåÚZûý¹X–â²åªÒŸAxzUÀh¦.ürç ×òú¢þ¯FæOÖQM4î êÀ'üWŒXÐ-Ì«ôjj²²ê¶½ã؂ꗊm€0Jz‹îUegßIDw€5&ôÒSÄìèüÈïÛo”oÿž˜y\‘òm¢ÝþìéÊEƒ-B±~^,Êã.u‡ˆÞšÛ÷_³WJÙð[¿†$Þ_ø€¡Â“ÁĹC6k â_À~»#Ô’ ˆ°9C4e v¨•\]µÿVù¦³t?ÓŸñ5àˆ¦Ñ ¯)9reÈÈúj^–JÉÉhMD‰¤%XqoËzxcBÏŒB°t¨2,í£ÈòiÑF¶@Q!)JœI±"†híwg÷,¥¤µè¹À’w­¬SSªßVØXÒ@Ë‘ïË7æŽ;h}ÇMäÙýô CX9È}™qïó¬ñÑ\G}„ãà1±tñnM„¡/éÙç¬Ó%m(³.uAÊ%f>ÚaÙ  !AÁmž*š˜òÜgvÛ/-ür¹zQBÜ4{Hâ:épcéé‡õT:øÏ)ƒÂÍém.ôoìZ’¹æÐ61à qCr)›sÖøs;Æþû1“M¿oo( ðZC6EfÆ«ùO– ^|Õô{iø‘Àì¹§`s ¢`ý*œ­4q ¢øYˆ:àæô?殄°â=Ø Wõ 念Úo*e q&{})%îZÓ‡¢»ÄAD?fÚ@‰‘¢<ñ=ùf8T0ÅDö,ð»N ¨Æcç†FˆÜu ]ï¢ru«ÊtMKžã%ó:«–—B…~ÅFPðGYƒùNklÂ}à¥*œØùI’[xD„gT™ºÛø¹O1º\Â&h æVbh¦^=GÚ™˜“> •d,C ø Ï×°üDñôÏ}Fï®xleŠ‚JñBõFEV’¢–¸ÜÂŒWÄ®ÈZôßæ€tœ0eÎ.è§ò±åûíKvµëò%ì‡zqæâ\KKr°h¦ŽOÏ^îl‡›"ÄÜè"&>³h§j›Œ­À‡ŒHÕ‘áF“ÞNü+B5Ï_TÁ‘ãžÆl+Y¤³kJ8–`×ò kŒPFŒö«qï|[µýøU«›è9ÁÔp^êbÿ¼›A¶³û]š1oª1ú‘ëçþ뼿Š–7!–yL¤zŸ6¬Ïɘϒsü>Î[8”MÒv°Ä\,—·I·E¸GRÌ¡ùøìþA?TUøgEö×ð4:yQROMôÌ[“¿ öPÔ<j]ÖÜ·Wa×`1Pý­ÍÁÇèLdW¸ FˆÀTº¯°¬y¡—(ôsÔ¦IŒÉ@©˜[‘÷1÷–wó˜/a_]‹q £ÎÇWG|yó›©*Wwî— û ™Øˆ‹Yy¯üTñ°‰¢Ùÿ™æ±”Šz+úwœ×î×7É "¨3× ^­Z–%xepÍ}NƒOmnõÁm߈¾B~´ð˜S!u÷ú˜XÅÃç\Õî‡3Û80oÿiüÝ?Áª«½eòû®-,ÍRÈPükV8€ã]¨ÖÍ“{&6™Ã¹t«tŽ«‰"³G…1´;JPZøÂÞ*/f š^7®ú϶¯¥Ù¨Ç o·a—&»ó2ŽÐVïœ$®‡Tà£ô-#Òÿn…f¶ÙìßL'$yY;š+eìÿ¨<¾Öp†zî]€muÍkÔù»GäDz$9aŸ.ß‘62a}ó¯Qü‚E_¦9˜>S2äO›»f¯ìaÜ!ËÚT¼èOÑÿUøE©:Æ"´QØF^~}‰<5eµÝäŸæÌéO^Û>ôAìŠó_¦–yŸþéF/<×î¹¾ƒÄÊ.¾ÊŠB¸ÍV'öâZ8u©á'„âYÁ„OK{:X!GÌèÃ%SÂ[uËrwXþódËhs0`šÈê»g´&Á´4d±WŽyÀšL]—=\H4ä$^Çxð^T#:›4¡¶ú‘aÀSôWÆz#WŽÓ´[c¾d3þQDNâ×düU¯(‘Šª‡ü/’mÊvÞdQ(z¿Å³~Ùq Í¼5öÓŸ‚ô—§ÉÅëçWà‚”ço"Ï;àØ5Ê`ã;-ïz±Ôv Êiª»Í˜h½çHÃÔÇO-›ÀN7övæ{ûnûll¿A'ì0· ŸH3ÞÀŒ7$ªüìŠ s¾§ý1ú|õ ?©œŠ#ïù-LÚ9]°&“ÓuÕvÝ)®R€´TSz[` «7Ò–Äw9Ž8ü²°4ýaqtçQW×å±L8%À ¸j%±h“]Ò¬EY®e$z˜sg“¹ûíTÓË¿!]•⺠ló‹|ÑRðKÓ›Ýh§ÊcrÏ3ñÈ«TM—À5”²óß›t¸‰ðpÌËÏ},æ: kë(xW·NTï•°òÇϱà0«N9ûІkàßä¿k¤ÖžXA7ÜçÐ*ä‘㕞‰p3cŸVq)´Îc( ûQ…ºÖeO‚<ÔçAnÀ1Ý2h]°(gx'Ó ‰qæÏšþÓ‘ðÃk.¤ù™+¥‚Ì}"UCf7þ1Eäʽ°Q2 Õ,Å€_Ü®¶YÙà5ôœžWކ?‡ ¸$Auü|u~°1Ž ÏöM¸ê™Ø·ÿ庖£ÿ”1.ÐÒeIÖáã²až Äµ)±š›¨'@Ó„7­ÑÖ»¤ÅwOSŸ 4>©x`Ëè”ÐÉfñ‰=.‘¿"s z›‡hÇ«ífl¼C?_;^»¢ðî º TÝC{ÔÊIr_æûö ¬H)±XÔÀ:IR¢"o7ŽP §bP!&399)LìÉ…dРõž%¤Dó[ϾàBÄ1`E4´*ã› 3zBÄÈöYZfúGÖ˜üúŒ¦Jµž)§WÛZõþ—OÊ_Öv¡ÑŽG部B«´Ó¢Cf™<ìy DHǹŒØ¿>²¼€ìXÆí€ÄÇ›‰ø>¾d1†NÀ‘FCg£·@g€_`€7¹M@1âÎ0ê’ëíCÛg¾RŸ”³ú±>1UGˆü™m®+PͲÎî`¯Öä†0iËr)š¼¥3GºÀŒ*`½Ç‘j̨jõà €ãP˜¬™SZ$èÉ®›ãeÆBg|ñx—øR¨ò@_Ÿv"ºì„¹b(^eP;Ú;ÐåÖtî6µLž¬’çïj|ŽÐ4"<ÕZ¸+ªF|BýyT€2ÙéÀ$z&6@Fðž†Ëž$´~îI昰s3Ç"qZ[:ÎùÓ«NnŸ2À»V<1ÁÙ÷iF#»hÁ„±¿Û²ýäU-©0ý z$}Á!ˆG %Ž¥ïFîÔ¥¿7¢tC*áÊ Tþ´<©ÔžÂ_0 ÓÌKÆQ&_|/´öA³`§qôë<ºH óű²Œ>Yüo Äo>&CslÞ)?¶ZϹ­T¾ªÕ´²ïGÎÅÈØê†FæË>:jáö84G"‡@ÐÁ.´† Z–+ËtÖ,fí⢬^„^¶¢;örk~ÊŒY—ä<‘ û¢…ý ÑåF#¡´v‘Ã]YÚHê’ž¨šHÊ=%†ÏJ„s,P©KHŸœl2¾8N ËÔp±Ñ˜¡®É+q3UyH“*”¶TĨmÌó}ä¾=jnuª(Š<b|¹BÍèþ'§^†¹F¦¬F ì ý*#Ú‡0±£ÔV_ü‚²? C 7‘' Dhî»i’€tè4ïZº³ÃçÞéIARTunknownICOP2010INAM yosemitelibspatialite-4.3.0a/test/sql_stmt_tests/dropgeo3.testcase0000664000175000017500000000030012544707704020761 00000000000000DropGeoTable - prefix, NULL table :memory: #use in-memory database SELECT DropGeoTable('prefix', NULL); 1 # rows (not including the header row) 1 # columns DropGeoTable('prefix', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/clonetable12.testcase0000664000175000017500000000053712544707704021526 00000000000000CloneTable() - NULL option #8 :memory: #use in-memory database SELECT CloneTable('prefix', 'in_table', 'out_table', 1, 'opt1', 'opt2', 'opt3', 'opt4', 'opt5', 'opt6', 'opt7', NULL) 1 # rows (not including the header row) 1 # columns CloneTable('prefix', 'in_table', 'out_table', 1, 'opt1', 'opt2', 'opt3', 'opt4', 'opt5', 'opt6', 'opt7', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/extractmultipoint3.testcase0000664000175000017500000000064212544707704023132 00000000000000extractmultipoint - POINT :memory: #use in-memory database SELECT AsText(ExtractMultiPoint(GeomFromText("GEOMETRYCOLLECTION(POINT(4 3), LINESTRING(5 6, 6 7), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))"))) 1 # rows (not including the header row) 1 # columns AsText(ExtractMultiPoint(GeomFromText("GEOMETRYCOLLECTION(POINT(4 3), LINESTRING(5 6, 6 7), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))"))) MULTIPOINT(4 3) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc4.testcase0000664000175000017500000000032612544707704022464 00000000000000makeellipticarc4 - NULL cy :memory: #use in-memory database SELECT MakeEllipticArc(0, NULL, 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, NULL, 100, 200, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/buildcirclembr1.testcase0000664000175000017500000000031512544707704022310 00000000000000buildcirclembr - null args :memory: #use in-memory database SELECT BuildCircleMbr(NULL, NULL, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildCircleMbr(NULL, NULL, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe9.testcase0000664000175000017500000000033612544707704023232 00000000000000makecircularstripe9 - NULL start :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, NULL, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, NULL, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asgml6.testcase0000664000175000017500000000033412544707704020437 00000000000000asgml - bad args (non-int, 2 arg) :memory: #use in-memory database SELECT asgml("hello", GeomFromText("Point(1 2)")); 1 # rows (not including the header row) 1 # columns asgml("hello", GeomFromText("Point(1 2)")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/linesfromrings2.testcase0000664000175000017500000000050512544707704022371 00000000000000LinesFromRings - Simple polygon, default :memory: #use in-memory database SELECT AsText(LinesFromRings(GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))"))); 1 # rows (not including the header row) 1 # columns AsText(LinesFromRings(GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))"))) LINESTRING(0 0, 1 1, 0 2, -1 1, 0 0) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml35.testcase0000664000175000017500000000102412544707704021056 00000000000000FromGML - poslist polygon :memory: #use in-memory database SELECT AsText(GeomFromGml('0 0 -100 0 -100 100 0 100 0 0')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('0 0 -100 0 -100 100 0 100 0 0')):0 POLYGON((0 0, -100 0, -100 100, 0 100, 0 0)) libspatialite-4.3.0a/test/sql_stmt_tests/sanitizeGeometry15.testcase0000664000175000017500000000135612544707704022763 00000000000000Sanitize Geometry - POLYGONM with interior :memory: #use in-memory database SELECT AsText(SanitizeGeometry(GeomFromText("POLYGONM((-10 -10 1, -10 -10 1, 10 -10 2, 10 10 3, -10 10 4, -10 -10 1, -10 -10 1),(-6 -6 2, -6 -5 3, -5 -5 3, -5 -5 4, -5 -5 4, -5 -6 9, -6 -6 2),(6 6 0, 5 6 0, 5 6 0, 5 5 0, 6 5 0, 6 6 0))"))) 1 # rows (not including the header row) 1 # columns AsText(SanitizeGeometry(GeomFromText("POLYGONM((-10 -10 1, -10 -10 1, 10 -10 2, 10 10 3, -10 10 4, -10 -10 1, -10 -10 1),(-6 -6 2, -6 -5 3, -5 -5 3, -5 -5 4, -5 -5 4, -5 -6 9, -6 -6 2),(6 6 0, 5 6 0, 5 6 0, 5 5 0, 6 5 0, 6 6 0))"))) POLYGON M((-10 -10 1, 10 -10 2, 10 10 3, -10 10 4, -10 -10 1), (-6 -6 2, -6 -5 3, -5 -5 3, -5 -6 9, -6 -6 2), (6 6 0, 5 6 0, 5 5 0, 6 5 0, 6 6 0)) libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints27.testcase0000664000175000017500000000102512544707704022634 00000000000000geometry constraints - GEOMETRYCOLLECTION :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("GEOMETRYCOLLECTIONZM(MULTIPOLYGONZM(((0 0 4 0, 1 0 4 0, 1 1 4 0, 0 0 4 0)),((0 0 4 0, -1 0 4 0, -1 -1 4 0, 0 0 4 0))))", 4326), "GEOMETRYCOLLECTION", 4326, "XYZM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("GEOMETRYCOLLECTIONZM(MULTIPOLYGONZM(((0 0 4 0, 1 0 4 0, 1 1 4 0, 0 0 4 0)),((0 0 4 0, -1 0 4 0, -1 -1 4 0, 0 0 4 0))))", 4326), "GEOMETRYCOLLECTION", 4326, "XYZM") 1 libspatialite-4.3.0a/test/sql_stmt_tests/greatcircle-text.testcase0000664000175000017500000000017512544707704022517 00000000000000great circle length - text :memory: SELECT GreatCircleLength("Hello"); 1 # rows 1 # column GreatCircleLength("Hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype55.testcase0000664000175000017500000000074412544707704021256 00000000000000geometrytype - GEOMETRYCOLLECTION ZM - two polygons :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((4 6 0 1,7 10 0 1, 12 3 1 1, 4 6 0 1)),POLYGONZM((4 6 1 2,7 10 1 2, 12 3 2 2, 4 6 1 2)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION ZM XYZM GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/sanitizeGeometry9.testcase0000664000175000017500000000070112544707704022677 00000000000000Sanitize Geometry - LINESTRING ZM :memory: #use in-memory database SELECT AsEWkt(SanitizeGeometry(GeomFromText("LINESTRING ZM(-75 42 2 0, -70 39 2 0, -70 42 3 0, -70 42 4 0, -75 42 2 0)", 4326))) 1 # rows (not including the header row) 1 # columns AsEWkt(SanitizeGeometry(GeomFromText("LINESTRING ZM(-75 42 2 0, -70 39 2 0, -70 42 3 0, -70 42 4 0, -75 42 2 0)", 4326))) SRID=4326;LINESTRING(-75 42 2 0,-70 39 2 0,-70 42 3 0,-70 42 4 0,-75 42 2 0) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe4.testcase0000664000175000017500000000033512544707704023224 00000000000000makecircularstripe4 - NULL cy :memory: #use in-memory database SELECT MakeCircularStripe(0, NULL, 100, 90, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, NULL, 100, 90, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml38.testcase0000664000175000017500000000063112544707704021064 00000000000000FromGML - polygon, missing poslist :memory: #use in-memory database SELECT AsText(GeomFromGml('')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('')):0 (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeline4.testcase0000664000175000017500000000034512544707704021121 00000000000000makeline4 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINT(0 0)"), zeroblob(10))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINT(0 0)"), zeroblob(10))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate21.testcase0000664000175000017500000000032712544707704021360 00000000000000ATM_Create() - 2d invalid 5th arg :memory: #use in-memory database SELECT ATM_Create(1.0, 2.0, 3.0, 4.0, 'a', 6.0) 1 # rows (not including the header row) 1 # columns ATM_Create(1.0, 2.0, 3.0, 4.0, 'a', 6.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/dm_m.testcase0000664000175000017500000000022512544707704020161 00000000000000decimetres to metres :memory: #use in-memory database SELECT CvtFromDm(2.4); 1 # rows (not including the header row) 1 # columns CvtFromDm(2.4); 0.24libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon20.testcase0000664000175000017500000000055312544707704021740 00000000000000makepolygon - Linestring invalid Point interiors :memory: #use in-memory database SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('POINT(1 1)')); 1 # rows (not including the header row) 1 # columns ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('POINT(1 1)')); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/translate14.testcase0000664000175000017500000000101512544707704021405 00000000000000translate - Polygon XYM :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("POLYGONM((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1), (5 5 1, 6 5 2, 6 6 3, 5 6 3, 5 5 1))"), 1.4, 3.9, 5.3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("POLYGONM((0 0 1, 10 0 2, 10 10 3, 0 10 4, 0 0 1), (5 5 1, 6 5 2, 6 6 3, 5 6 3, 5 5 1))"), 1.4, 3.9, 5.3)) POLYGON M((1.4 3.9 1, 11.4 3.9 2, 11.4 13.9 3, 1.4 13.9 4, 1.4 3.9 1), (6.4 8.9 1, 7.4 8.9 2, 7.4 9.9 3, 6.4 9.9 3, 6.4 8.9 1)) libspatialite-4.3.0a/test/sql_stmt_tests/setendpoint2.testcase0000664000175000017500000000026312544707704021665 00000000000000ST_SetEndPoint() - INTEGER line :memory: #use in-memory database SELECT ST_SetEndPoint(1, NULL) 1 # rows (not including the header row) 1 # columns ST_SetEndPoint(1, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/setstartpoint11.testcase0000664000175000017500000000050312544707704022331 00000000000000ST_SetStartPoint() - not a line :memory: #use in-memory database SELECT ST_SetStartPoint(GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), MakePoint(2, 0)) 1 # rows (not including the header row) 1 # columns ST_SetStartPoint(GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), MakePoint(2, 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttopoly8.testcase0000664000175000017500000000057212544707704021543 00000000000000casttopoly - GEOMETRY COLLECTION, LINESTRING and POLYGON :memory: #use in-memory database SELECT AsText(CastToPolygon(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),LINESTRING(4 1, 3 4))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToPolygon(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),LINESTRING(4 1, 3 4))"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon2.testcase0000664000175000017500000000024212544707704021653 00000000000000makepolygon - INTEGER exterior :memory: #use in-memory database SELECT MakePolygon(1); 1 # rows (not including the header row) 1 # columns MakePolygon(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector12.testcase0000664000175000017500000000032612544707704023274 00000000000000makecircularsector12 - NULL stop :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, 30, NULL); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, 30, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/badGML1.testcase0000664000175000017500000000047512544707704020423 00000000000000bad GML: Point :memory: #use in-memory database SELECT GeomFromGML('1.1,2.21.1,2.28 8 10.59 9 10.5 10.1 10.1 10.60 0 10 5 0 11 5 5 13 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 5')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('8 8 10.59 9 10.5 10.1 10.1 10.60 0 10 5 0 11 5 5 13 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 5')):0 SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 10.5),LINESTRING(9 9 10.5,10.1 10.1 10.6),POLYGON((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5))) libspatialite-4.3.0a/test/sql_stmt_tests/gml7.testcase0000664000175000017500000000117112544707704020114 00000000000000GMLv2 MultiLinestring Z - no SRID :memory: #use in-memory database SELECT AsGML(GeomFromText("MULTILINESTRINGZ((1 2 100, 3 4 101), (5 5 88, 6 6 99))")); 1 # rows (not including the header row) 1 # columns AsGML(GeomFromText("MULTILINESTRINGZ((1 2 100, 3 4 101), (5 5 88, 6 6 99))")) 1,2,100 3,4,1015,5,88 6,6,99:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/invalidatestats6.testcase0000664000175000017500000000035112544707704022532 00000000000000InvalidateLayerStatistics - BLOB, TEXT :memory: #use in-memory database SELECT InvalidateLayerStatistics(zeroblob(4), 'column'); 1 # rows (not including the header row) 1 # columns InvalidateLayerStatistics(zeroblob(4), 'column'); 0 libspatialite-4.3.0a/test/sql_stmt_tests/sridisgeographic4.testcase0000664000175000017500000000026012544707704022656 00000000000000SridIsGeographic() - DOUBLE SRID :memory: #use in-memory database SELECT SridIsGeographic(1.0) 1 # rows (not including the header row) 1 # columns SridIsGeographic(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry6.testcase0000664000175000017500000000101412544707704022737 00000000000000CompressGeometry - LINESTRINGM :memory: #use in-memory database SELECT Hex(geom), AsText(geom) FROM (SELECT CompressGeometry(GeomFromText("LINESTRINGM(1 2 3, 3 4 3, 5 6 4)", 4326)) AS geom) 1 # rows (not including the header row) 2 # columns Hex(geom) AsText(geom) 0001E6100000000000000000F03F0000000000000040000000000000144000000000000018407C124A0F0003000000000000000000F03F0000000000000040000000000000084000000040000000400000000000000840000000000000144000000000000018400000000000001040FE LINESTRING M(1 2 3, 3 4 3, 5 6 4) libspatialite-4.3.0a/test/sql_stmt_tests/makepointz-null4.testcase0000664000175000017500000000037712544707704022472 00000000000000makepointz-null4 :memory: #use in-memory database SELECT AsText(MakePointZ("hello", 42.3150676015829, 0.0038723129645, 4326)); 1 # rows (not including the header row) 1 # columns AsText(MakePointZ("hello", 42.3150676015829, 0.0038723129645, 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatetrans2.testcase0000664000175000017500000000076112544707704022351 00000000000000ATM_CreateTranslate() - valid 2d (double) :memory: #use in-memory database SELECT Hex(ATM_CreateTranslate(1.0, 2.0)) 1 # rows (not including the header row) 1 # columns Hex(ATM_CreateTranslate(1.0, 2.0)) 0001000000000000F03F3A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A000000000000F03F3A00000000000000003A00000000000000403A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon8.testcase0000664000175000017500000000042012544707704021657 00000000000000makepolygon - Polygon exterior :memory: #use in-memory database SELECT MakePolygon(GeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326)); 1 # rows (not including the header row) 1 # columns MakePolygon(GeomFromText('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))', 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint26.testcase0000664000175000017500000000050712544707704021222 00000000000000ST_AddPoint() - insert into the middle Z :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2)'), MakePoint(1, 1), 1)) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2)'), MakePoint(1, 1), 1)) LINESTRING Z(0 0 1, 1 1 0, 1 0 2) libspatialite-4.3.0a/test/sql_stmt_tests/sridax1orient3.testcase0000664000175000017500000000031312544707704022122 00000000000000SridGetAxis_1_Orientation() - DOUBLE SRID :memory: #use in-memory database SELECT SridGetAxis_1_Orientation(1.0) 1 # rows (not including the header row) 1 # columns SridGetAxis_1_Orientation(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/nm_m.testcase0000664000175000017500000000023112544707704020170 00000000000000nautical miles to metres :memory: #use in-memory database SELECT CvtFromKmi(1); 1 # rows (not including the header row) 1 # columns CvtFromKmi(1); 1852.0libspatialite-4.3.0a/test/sql_stmt_tests/makepointm-null8.testcase0000664000175000017500000000033512544707704022453 00000000000000makepointm-null8 :memory: #use in-memory database SELECT AsText(MakePointM(26.0, 42.3150676015829, 'alpha')); 1 # rows (not including the header row) 1 # columns AsText(MakePointM(26.0, 42.3150676015829, 'alpha')) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridax2name1.testcase0000664000175000017500000000026512544707704021547 00000000000000SridGeAxis_2_Name() - NULL SRID :memory: #use in-memory database SELECT SridGetAxis_2_Name(NULL) 1 # rows (not including the header row) 1 # columns SridGetAxis_2_Name(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atminvert4.testcase0000664000175000017500000000034712544707704021347 00000000000000ATM_Invert() - not invertible :memory: #use in-memory database SELECT ATM_Invert(ATM_Create(1,2,3,4,5,6,7,8,9,10,11,12)) 1 # rows (not including the header row) 1 # columns ATM_Invert(ATM_Create(1,2,3,4,5,6,7,8,9,10,11,12)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc11.testcase0000664000175000017500000000034512544707704022543 00000000000000makeellipticarc11 - BLOB y_axis :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, zeroblob(4), 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, zeroblob(4), 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector2.testcase0000664000175000017500000000033312544707704023211 00000000000000makecircularsector1 - text cx :memory: #use in-memory database SELECT MakeCircularSector('alpha', 0, 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector('alpha', 0, 100, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/extent1.testcase0000664000175000017500000000021212544707704020631 00000000000000extent - non-blob :memory: #use in-memory database SELECT Extent(3) 1 # rows (not including the header row) 1 # columns Extent(3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/scalecoords9.testcase0000664000175000017500000000171012544707704021637 00000000000000scale coords - POLYGONZM :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("POLYGONZM((1 2 1 0 , 1 3 1 2, 2 3 2 4, 2 2 2 6, 1 2 1 0))") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) POLYGON ZM((0 0 1 0, 0 0 1 2, 0 0 2 4, 0 0 2 6, 0 0 1 0)) POLYGON ZM((0 0 1 0, 0 0 1 2, 0 0 2 4, 0 0 2 6, 0 0 1 0)) POLYGON ZM((2 6 1 0, 2 9 1 2, 4 9 2 4, 4 6 2 6, 2 6 1 0)) POLYGON ZM((1 -2 1 0, 1 -3 1 2, 2 -3 2 4, 2 -2 2 6, 1 -2 1 0)) (NULL) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepointz-null7.testcase0000664000175000017500000000041712544707704022470 00000000000000makepointz-null7 :memory: #use in-memory database SELECT AsWkt(MakePointZ(-71.1043443253471, 42.3150676015829, 0.0038723129645), 4.1); 1 # rows (not including the header row) 1 # columns AsWkt(MakePointZ(-71.1043443253471, 42.3150676015829, 0.0038723129645), 4.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/getlayerextent11.testcase0000664000175000017500000000033512544707704022455 00000000000000GetLayerExtent - TEXT, TEXT, TEXT :memory: #use in-memory database SELECT GetLayerExtent('table', 'column', 'alpha'); 1 # rows (not including the header row) 1 # columns GetLayerExtent('table', 'column', 'alpha'); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/NumPoints6.testcase0000664000175000017500000000024212544707704021266 00000000000000NumPoints - text (error) :memory: #use in-memory database SELECT NumPoints("hello"); 1 # rows (not including the header row) 1 # column NumPoints("hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/decodeurl3.testcase0000664000175000017500000000022512544707704021276 00000000000000DecodeURL - DOUBLE :memory: #use in-memory database SELECT DecodeURL(1.5); 1 # rows (not including the header row) 1 # columns DecodeURL(1.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr8.testcase0000664000175000017500000000024612544707704020775 00000000000000garsmbr - bad segment number 5 :memory: #use in-memory database SELECT GARSMbr("001AA5") 1 # rows (not including the header row) 1 # columns GARSMbr("001AA5") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/invalidatestats8.testcase0000664000175000017500000000033112544707704022532 00000000000000InvalidateLayerStatistics - TEXT, DOUBLE :memory: #use in-memory database SELECT InvalidateLayerStatistics('table', 1.1); 1 # rows (not including the header row) 1 # columns InvalidateLayerStatistics('table', 1.1); 0 libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt29.testcase0000664000175000017500000000100212544707704021250 00000000000000fromewkt29 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)), GEOMETRYCOLLECTION(POINT(3 3), LINESTRING(4 4, 5 5)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)), GEOMETRYCOLLECTION(POINT(3 3), LINESTRING(4 4, 5 5)))')); GEOMETRYCOLLECTION(POINT(0 0), POINT(3 3), LINESTRING(1 1, 2 2), LINESTRING(4 4, 5 5)) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype41.testcase0000664000175000017500000000071512544707704021247 00000000000000geometrytype - GEOMETRYCOLLECTIONZ - two polygons :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZ(POLYGONZ((4 6 0,7 10 0, 12 3 1, 4 6 0)),POLYGONZ((4 6 1,7 10 1, 12 3 2, 4 6 1)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION Z XYZ GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/isvalidrastertile2.testcase0000664000175000017500000000036512544707704023066 00000000000000IsValidRasterTile - NULL coverage-name NEW:memory: #use in-memory database SELECT IsValidRasterTile(NULL, 0, zeroblob(4), zeroblob(4)); 1 # rows (not including the header row) 1 # columns IsValidRasterTile(NULL, 0, zeroblob(4), zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_tests/casttoxyzm1.testcase0000664000175000017500000000025312544707704021554 00000000000000casttoxyzm - bad blob :memory: #use in-memory database SELECT CastToXYZM(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToXYZM(zeroblob(99)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/mbr32.testcase0000664000175000017500000000046712544707704020202 00000000000000MbrDisjoint - Line + Line right :memory: #use in-memory database SELECT MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("LINESTRING(3 1, 4 0)")); 1 # rows (not including the header row) 1 # columns MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("LINESTRING(3 1, 4 0)")) # header 1libspatialite-4.3.0a/test/sql_stmt_tests/atmastext6.testcase0000664000175000017500000000026712544707704021353 00000000000000ATM_AsText() - valid :memory: #use in-memory database SELECT Length(ATM_AsText(ATM_Create())) 1 # rows (not including the header row) 1 # columns Length(ATM_AsText(ATM_Create())) 208 libspatialite-4.3.0a/test/sql_stmt_tests/asbinary9.testcase0000664000175000017500000000041712544707704021151 00000000000000asbinary - POINTZ :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("POINTZ(1 2 3)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("POINTZ(1 2 3)", 4326))) 01E9030000000000000000F03F00000000000000400000000000000840 libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson19.testcase0000664000175000017500000000116112544707704021747 00000000000000FromGeoJSON - multilinestringz, SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"MultiLineString","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[-3,2,4,25],"coordinates":[[[1,2,3],[4,6,32]],[[2,3,1.4],[-3,25,0.3],[1,2,4]]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"MultiLineString","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[-3,2,4,25],"coordinates":[[[1,2,3],[4,6,32]],[[2,3,1.4],[-3,25,0.3],[1,2,4]]]}')):0 SRID=3003;MULTILINESTRING((1 2 3,4 6 32),(2 3 1.4,-3 25 0.3,1 2 4)) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate19.testcase0000664000175000017500000000032712544707704021367 00000000000000ATM_Create() - 2d invalid 3rd arg :memory: #use in-memory database SELECT ATM_Create(1.0, 2.0, 'a', 4.0, 5.0, 6.0) 1 # rows (not including the header row) 1 # columns ATM_Create(1.0, 2.0, 'a', 4.0, 5.0, 6.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt27.testcase0000664000175000017500000000237512544707704021264 00000000000000fromewkt27 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 9 7), MULTIPOLYGON(((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), ((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))), POINT(7 7 9 7), MULTILINESTRING((0 1 9 7, 2 3 9 7), (4 5 9 7, 6 7 9 7)), POINT(6 6 9 7), MULTIPOINT((0 1 9 7), (2 3 9 7), (4 5 9 7)), POINT(9 9 9 7))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 9 7), MULTIPOLYGON(((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), ((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))), POINT(7 7 9 7), MULTILINESTRING((0 1 9 7, 2 3 9 7), (4 5 9 7, 6 7 9 7)), POINT(6 6 9 7), MULTIPOINT((0 1 9 7), (2 3 9 7), (4 5 9 7)), POINT(9 9 9 7))')); GEOMETRYCOLLECTION ZM(POINT ZM(8 8 9 7), POINT ZM(7 7 9 7), POINT ZM(6 6 9 7), POINT ZM(0 1 9 7), POINT ZM(2 3 9 7), POINT ZM(4 5 9 7), POINT ZM(9 9 9 7), LINESTRING ZM(0 1 9 7, 2 3 9 7), LINESTRING ZM(4 5 9 7, 6 7 9 7), POLYGON ZM((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), POLYGON ZM((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr33.testcase0000664000175000017500000000040612544707704021051 00000000000000garsmbr - 361HN32 :memory: #use in-memory database SELECT AsText(GARSMbr("361HN32")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("361HN32")) POLYGON((0.083333 0.166667, 0.166667 0.166667, 0.166667 0.25, 0.083333 0.25, 0.083333 0.166667)) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext23.testcase0000664000175000017500000000053212544707704022133 00000000000000geomfromtext23 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONM(MULTIPOINTM((0 1 9), (2 3 9), (4 5 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONM(MULTIPOINTM((0 1 9), (2 3 9), (4 5 9)))')); GEOMETRYCOLLECTION M(POINT M(0 1 9), POINT M(2 3 9), POINT M(4 5 9)) libspatialite-4.3.0a/test/sql_stmt_tests/gml16.testcase0000664000175000017500000000135212544707704020175 00000000000000GML GeometryCollection (Point, Polygon): no SRID :memory: #use in-memory database SELECT AsGML(3, GeomFromText("GEOMETRYCOLLECTION(POINT(4 8), POLYGON((10 10, 20 10, 20 20, 10 20, 10 10)))")); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("GEOMETRYCOLLECTION(POINT(4 8), POLYGON((10 10, 20 10, 20 20, 10 20, 10 10)))")) 4 810 10 20 10 20 20 10 20 10 10:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/sridisgeographic6.testcase0000664000175000017500000000024612544707704022664 00000000000000SridIsGeographic() - 4326 :memory: #use in-memory database SELECT SridIsGeographic(4326) 1 # rows (not including the header row) 1 # columns SridIsGeographic(4326) 1 libspatialite-4.3.0a/test/sql_stmt_tests/casttosingle2.testcase0000664000175000017500000000024112544707704022024 00000000000000casttosingle - non blob :memory: #use in-memory database SELECT CastToSingle(3.42) 1 # rows (not including the header row) 1 # columns CastToSingle(3.42) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/SridFromAuthCRS2.testcase0000664000175000017500000000032012544707704022242 00000000000000SridFromAuthCRS - non-integer second arg :memory: #use in-memory database SELECT SridFromAuthCRS("EPSG", "WGS084") 1 # rows (not including the header row) 1 # columns SridFromAuthCRS("EPSG", "WGS084") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/isfontbold.testcase0000664000175000017500000000025112544707704021407 00000000000000IsFontBold - standard NEW:memory: #use in-memory database SELECT IsFontBold(zeroblob(4)); 1 # rows (not including the header row) 1 # columns IsFontBold(zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_tests/forcenull22.testcase0000664000175000017500000000025212544707704021402 00000000000000ForceAsNull() - INTEGER - matching :memory: #use in-memory database SELECT ForceAsNull(1, 1) 1 # rows (not including the header row) 1 # columns ForceAsNull(1, 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttotext2.testcase0000664000175000017500000000024712544707704021535 00000000000000CastToText() - BLOB :memory: #use in-memory database SELECT CastToText(zeroblob(4)) 1 # rows (not including the header row) 1 # columns CastToText(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/dropgeo9.testcase0000664000175000017500000000030312544707704020772 00000000000000DropGeoTable - table (not existing) + transaction :memory: #use in-memory database SELECT DropGeoTable('table', 0); 1 # rows (not including the header row) 1 # columns DropGeoTable('table', 0) 0 libspatialite-4.3.0a/test/sql_stmt_tests/mbrminmax7.testcase0000664000175000017500000000024212544707704021325 00000000000000MbrMaxY- bad blob :memory: #use in-memory database SELECT MbrMaxY(zeroblob(49)) 1 # rows (not including the header row) 1 # columns MbrMaxY(zeroblob(49)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asewkb3.testcase0000664000175000017500000000052512544707704020607 00000000000000asewkb - POINTM :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("POINTM(1 3 1)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POINTM(1 3 1)", 4326))) 303130313030303036304536313030303030303030303030303030303030463033463030303030303030303030303038343030303030303030303030303046303346 libspatialite-4.3.0a/test/sql_stmt_tests/collectextract16.testcase0000664000175000017500000000046312544707704022440 00000000000000Collection Extract - Extract linestringZ :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("LINESTRINGZ(1 2 4, 4 3 1)"), 2)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("LINESTRINGZ(1 2 4, 4 3 1)"), 2)) LINESTRING Z(1 2 4, 4 3 1) libspatialite-4.3.0a/test/sql_stmt_tests/badEWKT3.testcase0000664000175000017500000000045212544707704020553 00000000000000bad EWKT: Polygon :memory: #use in-memory database SELECT GeomFromEWKT("SRID=4326;POLYGON((11.2 12.3, 11.3 12.3, 11.3 12.4, 11.2 12.4, 11.2 12.3)"); 1 # rows (not including the header row) 1 # columns GeomFromEWKT("SRID=4326;POLYGON((11.2 12.3, 11.3 12.3, 11.3 12.4, 11.2 12.4, 11.2 12.3)") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml12.testcase0000664000175000017500000000212312544707704021052 00000000000000FromGML - MultiLinestring v3 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1 2 3 4 5 6 7 810 10 11.3 11')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1 2 3 4 5 6 7 810 10 11.3 11')):0 SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.3 11)) libspatialite-4.3.0a/test/sql_stmt_tests/sanitizeGeometry1.testcase0000664000175000017500000000053012544707704022667 00000000000000Sanitize Geometry - Multilinestring :memory: #use in-memory database SELECT AsText(SanitizeGeometry(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))'))); 1 # rows (not including the header row) 1 # columns AsText(SanitizeGeometry(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))'))) MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0)) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc10.testcase0000664000175000017500000000033512544707704022541 00000000000000makeellipticarc10 - text y_axis :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 'alpha', 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 'alpha', 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geometryn4.testcase0000664000175000017500000000027412544707704021346 00000000000000Geometry N - bad blob input (error) :memory: #use in-memory database SELECT GeometryN(zeroblob(2), 1); 1 # rows (not including the header row) 1 # columns GeometryN(zeroblob(2), 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype53.testcase0000664000175000017500000000065212544707704021252 00000000000000geometrytype - GEOMETRYCOLLECTION - two linestring :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 6,7 10, 12 3),LINESTRING(1 2, 3 4))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION XY GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/pointn6.testcase0000664000175000017500000000024412544707704020643 00000000000000pointN - text arg (error) :memory: #use in-memory database SELECT PointN("hello", 1); 1 # rows (not including the header row) 1 # columns PointN("hello", 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collect51.testcase0000664000175000017500000000120712544707704021041 00000000000000collect - PolygonM, Polygon :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONM((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGON((4 5, 1 2, 4 2, 4 5),(2 3, 3 4, 3 3, 2 3))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONM((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGON((4 5, 1 2, 4 2, 4 5),(2 3, 3 4, 3 3, 2 3))"))) MULTIPOLYGON M(((1 2 4, 3 4 2, 3 2 3, 1 2 4), (1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4)), ((4 5 0, 1 2 0, 4 2 0, 4 5 0), (2 3 0, 3 4 0, 3 3 0, 2 3 0))) libspatialite-4.3.0a/test/sql_stmt_tests/atmtrans10.testcase0000664000175000017500000000031612544707704021240 00000000000000ATM_Translate() - invalid blob :memory: #use in-memory database SELECT ATM_Translate(zeroblob(10), 1.0, 2.0) 1 # rows (not including the header row) 1 # columns ATM_Translate(zeroblob(10), 1.0, 2.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geometryn12.testcase0000664000175000017500000000053312544707704021423 00000000000000Geometry N - multilinestringz :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTILINESTRINGZ((1 2 1.6, 4 2.3 8.7, 1 2 1),(0 1 2, 8 1 1))"), 2)) 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTILINESTRINGZ((1 2 1.6, 4 2.3 8.7, 1 2 1),(0 1 2, 8 1 1))"), 2)) LINESTRING Z(0 1 2, 8 1 1) libspatialite-4.3.0a/test/sql_stmt_tests/sridprimem5.testcase0000664000175000017500000000031412544707704021504 00000000000000SridGetPrimeMeridian() - BLOB SRID :memory: #use in-memory database SELECT SridGetPrimeMeridian(zeroblob(10)) 1 # rows (not including the header row) 1 # columns SridGetPrimeMeridian(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint24.testcase0000664000175000017500000000047412544707704021223 00000000000000ST_AddPoint() - append (no index) M :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2)'), MakePoint(1, 1))) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2)'), MakePoint(1, 1))) LINESTRING M(0 0 1, 1 0 2, 1 1 0) libspatialite-4.3.0a/test/sql_stmt_tests/isvalidnodata3.testcase0000664000175000017500000000031212544707704022147 00000000000000IsValidPixel - NULL sample-type NEW:memory: #use in-memory database SELECT IsValidPixel(zeroblob(4), NULL, 1); 1 # rows (not including the header row) 1 # columns IsValidPixel(zeroblob(4), NULL, 1) -1 libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry50.testcase0000664000175000017500000000055612544707704023030 00000000000000CompressGeometry - GEOMETRYCOLLECTION (2 Points) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), POINT(3 4))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), POINT(3 4))", 4326))) GEOMETRYCOLLECTION(POINT(1 2), POINT(3 4)) libspatialite-4.3.0a/test/sql_stmt_tests/setpoint14.testcase0000664000175000017500000000041412544707704021257 00000000000000ST_SetPoint() - BLOB Point :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, zeroblob(4)) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr26.testcase0000664000175000017500000000026512544707704021056 00000000000000garsmbr - bad latitude - 7 :memory: #use in-memory database SELECT AsText(GARSMbr("001--14")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("001--14")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeline25.testcase0000664000175000017500000000042312544707704021201 00000000000000makeline - MULTIPOINT (XY valid - direct order) :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)"), 1)) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)"), 1)) LINESTRING(1 2, 3 4) libspatialite-4.3.0a/test/sql_stmt_tests/reflectcoords1.testcase0000664000175000017500000000035012544707704022163 00000000000000reflectcoords1 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 1, 0)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 1, 0)) POINT(-1 2) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatescale3.testcase0000664000175000017500000000027312544707704022310 00000000000000ATM_CreateScale() - invalid 1st arg :memory: #use in-memory database SELECT ATM_CreateScale('a', 2.0) 1 # rows (not including the header row) 1 # columns ATM_CreateScale('a', 2.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/isvalidrastertile3.testcase0000664000175000017500000000040112544707704023056 00000000000000IsValidRasterTile - NULL pyramid-level NEW:memory: #use in-memory database SELECT IsValidRasterTile('alpha', NULL, zeroblob(4), zeroblob(4)); 1 # rows (not including the header row) 1 # columns IsValidRasterTile('alpha', NULL, zeroblob(4), zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr35.testcase0000664000175000017500000000040612544707704021053 00000000000000garsmbr - 361HN36 :memory: #use in-memory database SELECT AsText(GARSMbr("361HN36")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("361HN36")) POLYGON((0.166667 0.083333, 0.25 0.083333, 0.25 0.166667, 0.166667 0.166667, 0.166667 0.083333)) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe21.testcase0000664000175000017500000000037012544707704023302 00000000000000makecircularstripe21 - TEXT step :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/badGeoJSON7.testcase0000664000175000017500000000107012544707704021206 00000000000000bad GeoJSON: GeometryCollection :memory: #use in-memory database SELECT GeomFromGeoJSON('{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[3,3]},{"type":"LineString","coordinates":[[4,4],[5,5]]},{"type":"Polygon","coordinates":[[[0,0],[1,0],[1,1],[0,1],[0,0]]]}]'); 1 # rows (not including the header row) 1 # columns GeomFromGeoJSON('{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[3,3]},{"type":"LineString","coordinates":[[4,4],[5,5]]},{"type":"Polygon","coordinates":[[[0,0],[1,0],[1,1],[0,1],[0,0]]]}]'):0 (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/wkb11.testcase0000664000175000017500000000065612544707704020202 00000000000000Hex Wkb: MultiLinestring XYM (single line) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTILINESTRINGM((1.2 3.4 12, 5.6 7.8 13))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTILINESTRINGM((1.2 3.4 12, 5.6 7.8 13))", 4326))); 01D50700000100000001D207000002000000333333333333F33F3333333333330B40000000000000284066666666666616403333333333331F400000000000002A40 libspatialite-4.3.0a/test/sql_stmt_tests/getmimetype1.testcase0000664000175000017500000000023412544707704021657 00000000000000GetMimeType - NULL :memory: #use in-memory database SELECT GetMimeType(NULL); 1 # rows (not including the header row) 1 # columns GetMimeType(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat26.testcase0000664000175000017500000000117212544707704022631 00000000000000normalizelonlat- out of range negative lat polygonm :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POLYGONM((120 -140 5, 120 -150 20, 130 -150 20, 130 -140 2, 120 -140 5), (122 -142 0, 124 -142 1, 124 -144 2, 122 -144 3, 122 -142 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POLYGONM((120 -140 5, 120 -150 20, 130 -150 20, 130 -140 2, 120 -140 5), (122 -142 0, 124 -142 1, 124 -144 2, 122 -144 3, 122 -142 0))", 4326))) POLYGON M((120 -40 5, 120 -30 20, 130 -30 20, 130 -40 2, 120 -40 5), (122 -38 0, 124 -38 1, 124 -36 2, 122 -36 3, 122 -38 0)) libspatialite-4.3.0a/test/sql_stmt_tests/is3d6.testcase0000664000175000017500000000031312544707704020173 00000000000000Is3D- Point XYZM :memory: #use in-memory database SELECT ST_Is3D(GeomFromText('POINTZM(1 2 100 10)')); 1 # rows (not including the header row) 1 # columns ST_Is3D(GeomFromText('POINTZM(1 2 100 10)')) 1 libspatialite-4.3.0a/test/sql_stmt_tests/geomtype17.testcase0000664000175000017500000000053312544707704021250 00000000000000geometrytype - MULTILINESTRING :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("MULTILINESTRING ((30 20, 10 40, 45 40, 30 20),(15 5, 40 10, 10 20, 5 10, 15 5))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) MULTILINESTRING XYlibspatialite-4.3.0a/test/sql_stmt_tests/sridspheroid1.testcase0000664000175000017500000000025512544707704022030 00000000000000SridGetSpheroid() - NULL SRID :memory: #use in-memory database SELECT SridGetSpheroid(NULL) 1 # rows (not including the header row) 1 # columns SridGetSpheroid(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/is3d2.testcase0000664000175000017500000000023312544707704020170 00000000000000Is3D- bad blob :memory: #use in-memory database SELECT ST_Is3D(zeroblob(48)) 1 # rows (not including the header row) 1 # columns ST_Is3D(zeroblob(48)) -1 libspatialite-4.3.0a/test/sql_stmt_tests/dropgeo4.testcase0000664000175000017500000000031312544707704020766 00000000000000DropGeoTable - prefix, table (not existing) :memory: #use in-memory database SELECT DropGeoTable('prefix', 'table'); 1 # rows (not including the header row) 1 # columns DropGeoTable('prefix', 'table') 0 libspatialite-4.3.0a/test/sql_stmt_tests/m_ch.testcase0000664000175000017500000000022712544707704020155 00000000000000metres to chains :memory: #use in-memory database SELECT CvtToCh(1000); 1 # rows (not including the header row) 1 # columns CvtToCh(1000) 49.7096954:9 libspatialite-4.3.0a/test/sql_stmt_tests/assvg9.testcase0000664000175000017500000000036012544707704020461 00000000000000assvg - 3 arg bad third arg :memory: #use in-memory database SELECT assvg(GeomFromText("Point(1.3759 2)", 4326), 0, "hello") 1 # rows (not including the header row) 1 # columns assvg(GeomFromText("Point(1.3759 2)", 4326), 0, "hello") (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/shiftcoords5.testcase0000664000175000017500000000036012544707704021661 00000000000000shiftcoords - text shift (error) :memory: #use in-memory database SELECT ShiftCoords(GeomFromText("POINT(1 2)"), 1, "three"); 1 # rows (not including the header row) 1 # columns ShiftCoords(GeomFromText("POINT(1 2)"), 1, "three") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makearc3.testcase0000664000175000017500000000030212544707704020727 00000000000000makearc3 - BLOB cx :memory: #use in-memory database SELECT MakeArc(zeroblob(4), 0, 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeArc(zeroblob(4), 0, 100, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint8.testcase0000664000175000017500000000035612544707704021144 00000000000000ST_AddPoint() - DOUBLE Point :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), 1.5) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), 1.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat21.testcase0000664000175000017500000000056612544707704022632 00000000000000normalizelonlat- out of range negative lat linestringzm :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("LINESTRINGZM(120 -140 5 20, 130 -150 20 30)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("LINESTRINGZM(120 -140 5 20, 130 -150 20 30)", 4326))) LINESTRING ZM(120 -40 5 20, 130 -30 20 30) libspatialite-4.3.0a/test/sql_stmt_tests/gml2.testcase0000664000175000017500000000100712544707704020105 00000000000000GML MultiPoint Z: no Srid :memory: #use in-memory database SELECT AsGML(3, GeomFromText("MULTIPOINTZ(1 2 100, 3 4 101)")); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("MULTIPOINTZ(1 2 100, 3 4 101)")) 1 2 1003 4 101:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/startpoint1.testcase0000664000175000017500000000040412544707704021534 00000000000000startpoint - regular LINESTRING :memory: #use in-memory database SELECT AsText(StartPoint(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"))); 1 # rows (not including the header row) 1 # columns AsText(StartPoint(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"))) POINT(4 0) libspatialite-4.3.0a/test/sql_stmt_tests/setendpoint15.testcase0000664000175000017500000000050112544707704021744 00000000000000ST_SetEndPoint() - M :memory: #use in-memory database SELECT AsText(SetEndPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2, 1 1 3)'), MakePoint(2, 3))) 1 # rows (not including the header row) 1 # columns AsText(SetEndPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2, 1 1 3)'), MakePoint(2, 3))) LINESTRING M(0 0 1, 1 0 2, 2 3 0) libspatialite-4.3.0a/test/sql_stmt_tests/ring21.testcase0000664000175000017500000000033412544707704020350 00000000000000InteriorRingN - POINT (error) :memory: #use in-memory database SELECT InteriorRingN(GeomFromText("POINT(1 2)"), 1); 1 # rows (not including the header row) 1 # columns InteriorRingN(GeomFromText("POINT(1 2)"), 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry36.testcase0000664000175000017500000000046712544707704023035 00000000000000CompressGeometry - MULTIPOINT M :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOINTM(10 10 1, 11 11 2)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOINTM(10 10 1, 11 11 2)", 4326))) MULTIPOINT M(10 10 1, 11 11 2) libspatialite-4.3.0a/test/sql_stmt_tests/casttogeometrycollection2.testcase0000664000175000017500000000031312544707704024452 00000000000000casttogeometrycollection - non-blob :memory: #use in-memory database SELECT CastToGeometryCollection("hello") 1 # rows (not including the header row) 1 # columns CastToGeometryCollection("hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc3.testcase0000664000175000017500000000034412544707704022463 00000000000000makeellipticarc3 - BLOB cx :memory: #use in-memory database SELECT MakeEllipticArc(zeroblob(4), 0, 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(zeroblob(4), 0, 100, 200, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/greatcircle-poly3.testcase0000664000175000017500000000035612544707704022602 00000000000000great circle length polygonZ :memory: SELECT GreatCircleLength(GeomFromText("POLYGONZ((0 0 2, 1 0 3, 0 0 2, 0 0 2))", 4326)); 1 # rows 1 # column GreatCircleLength(GeomFromText("POLYGONZ((0 0 2, 1 0 3, 0 0 2, 0 0 2))", 4326)) 222390.15:9 libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb13.testcase0000664000175000017500000000056212544707704021024 00000000000000fromWkb - POINT, 2 arg :memory: #use in-memory database SELECT Hex(GeomFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326)), 4326)) 1 # rows (not including the header row) 1 # columns Hex(GeomFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326)), 4326)) 0001E6100000000000000000F03F0000000000000040000000000000F03F00000000000000407C01000000000000000000F03F0000000000000040FE libspatialite-4.3.0a/test/sql_stmt_tests/makeline15.testcase0000664000175000017500000000045512544707704021205 00000000000000makeline15 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINTZ(0 0 4)"), GeomFromText("POINTM(1 2 0.4)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINTZ(0 0 4)"), GeomFromText("POINTM(1 2 0.4)"))) LINESTRING ZM(0 0 4 0, 1 2 0 0.4) libspatialite-4.3.0a/test/sql_stmt_tests/m_ind_ch.testcase0000664000175000017500000000024212544707704021004 00000000000000metres to Indian chains :memory: #use in-memory database SELECT CvtToIndCh(1000); 1 # rows (not including the header row) 1 # columns CvtToIndCh(1000) 49.70995:8 libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry37.testcase0000664000175000017500000000052312544707704023027 00000000000000CompressGeometry - MULTIPOINT ZM :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOINTZM(10 10 100 1, 11 11 101 2)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOINTZM(10 10 100 1, 11 11 101 2)", 4326))) MULTIPOINT ZM(10 10 100 1, 11 11 101 2) libspatialite-4.3.0a/test/sql_stmt_tests/setendpoint5.testcase0000664000175000017500000000030412544707704021664 00000000000000ST_SetEndPoint() - BLOB line :memory: #use in-memory database SELECT ST_SetEndPoint(zeroblob(4), NULL) 1 # rows (not including the header row) 1 # columns ST_SetEndPoint(zeroblob(4), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml11.testcase0000664000175000017500000000465712544707704021743 00000000000000From KML - Geometrycollection - POLYGON with interior, 2-D :memory: SELECT AsText(GeomFromKML(" -122.43193945401,37.801983684521 -122.431564131101,37.8020327731402 -122.431499536494,37.801715236748 -122.43187136387,37.8016634915437 -122.43193945401,37.801983684521 -122.431885303019,37.8019316061803 -122.431762847554,37.8019476932246 -122.431719843168,37.8017374462006 -122.431841863906,37.8017213314352 -122.431885303019,37.8019316061803 -122.431714248439,37.8019544341044 -122.431592404659,37.8019694509363 -122.431548777661,37.8017591041777 -122.431671453253,37.8017428443014 -122.431714248439,37.8019544341044 ")) 1 # rows 1 # column AsText(GeomFromKML(" -122.43193945401,37.801983684521 -122.431564131101,37.8020327731402 -122.431499536494,37.801715236748 -122.43187136387,37.8016634915437 -122.43193945401,37.801983684521 -122.431885303019,37.8019316061803 -122.431762847554,37.8019476932246 -122.431719843168,37.8017374462006 -122.431841863906,37.8017213314352 -122.431885303019,37.8019316061803 -122.431714248439,37.8019544341044 -122.431592404659,37.8019694509363 -122.431548777661,37.8017591041777 -122.431671453253,37.8017428443014 -122.431714248439,37.8019544341044 ")) MULTIPOLYGON(((-122.431939 37.801984, -122.431564 37.802033, -122.4315 37.801715, -122.431871 37.801663, -122.431939 37.801984), (-122.431885 37.801932, -122.431763 37.801948, -122.43172 37.801737, -122.431842 37.801721, -122.431885 37.801932), (-122.431714 37.801954, -122.431592 37.801969, -122.431549 37.801759, -122.431671 37.801743, -122.431714 37.801954)))libspatialite-4.3.0a/test/sql_stmt_tests/collect34.testcase0000664000175000017500000000070012544707704021037 00000000000000collect - LineStringM, LineStringZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGM(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGZM(4 5 3.2 1, 1 2 4.6 2, 4 2 3.1 3)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGM(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGZM(4 5 3.2 1, 1 2 4.6 2, 4 2 3.1 3)"))) MULTILINESTRING ZM((1 2 0 4, 3 4 0 2), (4 5 3.2 1, 1 2 4.6 2, 4 2 3.1 3)) libspatialite-4.3.0a/test/sql_stmt_tests/collect59.testcase0000664000175000017500000000030712544707704021051 00000000000000collect - step non-blob :memory: #use in-memory database SELECT AsText(Collect(geom)) FROM (SELECT 300 as geom) dummy; 1 # rows (not including the header row) 1 # columns AsText(Collect(geom)) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/setpoint21.testcase0000664000175000017500000000047612544707704021265 00000000000000ST_SetPoint() - Z :memory: #use in-memory database SELECT AsText(SetPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2, 1 1 3)'), 1, MakePoint(2, 3))) 1 # rows (not including the header row) 1 # columns AsText(SetPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2, 1 1 3)'), 1, MakePoint(2, 3))) LINESTRING Z(0 0 1, 2 3 0, 1 1 3) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatescale9.testcase0000664000175000017500000000031112544707704022307 00000000000000ATM_CreateScale() - 3rd invalid 3nd arg :memory: #use in-memory database SELECT ATM_CreateScale(1.0, 2.0, 'a') 1 # rows (not including the header row) 1 # columns ATM_CreateScale(1.0, 2.0, 'a') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircle2.testcase0000664000175000017500000000026312544707704021430 00000000000000makecircle2 - text cx :memory: #use in-memory database SELECT MakeCircle('alpha', 0, 100); 1 # rows (not including the header row) 1 # columns MakeCircle('alpha', 0, 100) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/locatemeasure4.testcase0000664000175000017500000000035312544707704022164 00000000000000ST_Locate_Between_Measures - invalid geom :memory: #use in-memory database SELECT ST_Locate_Between_Measures(zeroblob(99), 2, 3) 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures(zeroblob(99), 2, 3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/linesfromrings6.testcase0000664000175000017500000000053512544707704022400 00000000000000LinesFromRings - Simple polygon, non-int select :memory: #use in-memory database SELECT AsText(LinesFromRings(GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))"), "hello")); 1 # rows (not including the header row) 1 # columns AsText(LinesFromRings(GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))"), "hello")) LINESTRING(0 0, 1 1, 0 2, -1 1, 0 0) libspatialite-4.3.0a/test/sql_stmt_tests/maxz2.testcase0000664000175000017500000000024012544707704020303 00000000000000MaxZ - bad blob :memory: #use in-memory database SELECT ST_MaxZ(zeroblob(48)) 1 # rows (not including the header row) 1 # columns ST_MaxZ(zeroblob(48)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/dimension4.testcase0000664000175000017500000000025012544707704021314 00000000000000dimension4 - bad blob :memory: #use in-memory database SELECT Dimension(zeroblob(20)) 1 # rows (not including the header row) 1 # columns Dimension(zeroblob(20)) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/makeellipse7.testcase0000664000175000017500000000027212544707704021631 00000000000000makeellipse7 - NULL x_axis :memory: #use in-memory database SELECT MakeEllipse(0, 0, NULL, 200); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, NULL, 200) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/mbr15.testcase0000664000175000017500000000047612544707704020203 00000000000000MbrEqual - Line + Polygon :memory: #use in-memory database SELECT MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POLYGON((0 0, 0 2, 1 2, 1 0, 0 0))")); 1 # rows (not including the header row) 1 # columns MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POLYGON((0 0, 0 2, 1 2, 1 0, 0 0))")) 1libspatialite-4.3.0a/test/sql_stmt_tests/casttoxym6.testcase0000664000175000017500000000034212544707704021366 00000000000000casttoxym - POINT :memory: #use in-memory database SELECT AsText(CastToXYM(GeomFromText("POINTM(4 3 20)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYM(GeomFromText("POINTM(4 3 20)"))) POINT M(4 3 20) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype29.testcase0000664000175000017500000000056212544707704021255 00000000000000geometrytype - GEOMETRYCOLLECTIONZM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(4 6 4 1), POINTZM(3 3 29 1), LINESTRINGZM(4 6 0 0,7 10 0 0))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) GEOMETRYCOLLECTION ZM XYZMlibspatialite-4.3.0a/test/sql_stmt_tests/setpoint4.testcase0000664000175000017500000000027712544707704021205 00000000000000ST_SetPoint() - TEXT line :memory: #use in-memory database SELECT ST_SetPoint('alpha', NULL, NULL) 1 # rows (not including the header row) 1 # columns ST_SetPoint('alpha', NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridax1orient4.testcase0000664000175000017500000000031312544707704022123 00000000000000SridGetAxis_1_Orientation() - DOUBLE SRID :memory: #use in-memory database SELECT SridGetAxis_1_Orientation(1.0) 1 # rows (not including the header row) 1 # columns SridGetAxis_1_Orientation(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ndims2.testcase0000664000175000017500000000035612544707704020446 00000000000000Coord Dimensions - non-blob :memory: #use in-memory database SELECT CoordDimension(geom), ST_NDims(geom) FROM (SELECT 'alpha' AS geom); 1 # rows (not including the header row) 2 # columns CoordDimension(geom) ST_NDims(geom) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmscale12.testcase0000664000175000017500000000026212544707704021202 00000000000000ATM_Scale() - invalid matrix :memory: #use in-memory database SELECT ATM_Scale('a', 1.0, 2.0) 1 # rows (not including the header row) 1 # columns ATM_Scale('a', 1.0, 2.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/setpoint15.testcase0000664000175000017500000000043212544707704021260 00000000000000ST_SetPoint() - negative index :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), -1, MakePoint(2, 0)) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), -1, MakePoint(2, 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/mbr11.testcase0000664000175000017500000000045412544707704020173 00000000000000MbrIntersects - Line + Point outside :memory: #use in-memory database SELECT MbrIntersects(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(2 2)")); 1 # rows (not including the header row) 1 # columns MbrIntersects(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(2 2)")) # header 0libspatialite-4.3.0a/test/sql_stmt_tests/makepoint6.testcase0000664000175000017500000000040612544707704021323 00000000000000makepoint6 :memory: #use in-memory database SELECT AsEWkt(MakePoint(-71.1043443253470, 42.3150676015829)); 1 # rows (not including the header row) 1 # columns AsEWkt(MakePoint(-71.1043443253470, 42.3150676015829)) SRID=0;POINT(-71.104344325347 42.3150676015829) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype69.testcase0000664000175000017500000000060512544707704021257 00000000000000geometrytype - MULTILINESTRING - one line :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTILINESTRING((30 20, 10 40, 45 40, 30 20))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTILINESTRING XY MULTILINESTRINGlibspatialite-4.3.0a/test/sql_stmt_tests/atmxroll3.testcase0000664000175000017500000000074212544707704021176 00000000000000ATM_XRoll() - valid double :memory: #use in-memory database SELECT Hex(ATM_XRoll(ATM_Create(), 15.0)) 1 # rows (not including the header row) 1 # columns Hex(ATM_XRoll(ATM_Create(), 15.0)) 0001000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A15BF4847DDE8EE3F3A900693C17D90D0BF3A00000000000000003A00000000000000003A900693C17D90D03F3A15BF4847DDE8EE3F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatetrans4.testcase0000664000175000017500000000031212544707704022343 00000000000000ATM_CreateTranslate() - 2d invalid 2nd arg :memory: #use in-memory database SELECT ATM_CreateTranslate(1.0, 'a') 1 # rows (not including the header row) 1 # columns ATM_CreateTranslate(1.0, 'a') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract23.testcase0000664000175000017500000000106412544707704022434 00000000000000Collection Extract - Extract MULTIPOINT :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0, 1 1), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)), POINT(1 1), LINESTRING(1 1, 2 2), POLYGON((1 1, 2 1, 2 2, 1 2, 1 1)))"), 1)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0, 1 1), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)), POINT(1 1), LINESTRING(1 1, 2 2), POLYGON((1 1, 2 1, 2 2, 1 2, 1 1)))"), 1)) MULTIPOINT(0 0, 1 1) libspatialite-4.3.0a/test/sql_stmt_tests/uncompressgeom2.testcase0000664000175000017500000000026512544707704022401 00000000000000uncompressgeometry - non blob :memory: #use in-memory database SELECT UncompressGeometry("foo") 1 # rows (not including the header row) 1 # columns UncompressGeometry("foo") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makearc16.testcase0000664000175000017500000000027512544707704021024 00000000000000makearc16 - NULL srid :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 30, 60, NULL); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 30, 60, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/minz4.testcase0000664000175000017500000000036712544707704020315 00000000000000MinZ - Linestring XYZ :memory: #use in-memory database SELECT ST_MinZ(GeomFromText('LINESTRINGZ(1 2 100, 3 4 99, 5 6 101)')); 1 # rows (not including the header row) 1 # columns ST_MinZ(GeomFromText('LINESTRINGZ(1 2 100, 3 4 99, 5 6 101)')) 99.0 libspatialite-4.3.0a/test/sql_stmt_tests/todms11.testcase0000664000175000017500000000027012544707704020535 00000000000000todms - invalid positive longitude :memory: #use in-memory database SELECT LongLatToDMS(211.5, 42); 1 # rows (not including the header row) 1 # columns LongLatToDMS(211.5, 42) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr16.testcase0000664000175000017500000000025612544707704021055 00000000000000garsmbr - bad longitude :memory: #use in-memory database SELECT AsText(GARSMbr("001TZ")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("001TZ")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttotext8.testcase0000664000175000017500000000027612544707704021545 00000000000000CastToText() - INTEGER, ALPHA zero_pad :memory: #use in-memory database SELECT CastToText(123, 'alpha') 1 # rows (not including the header row) 1 # columns CastToText(123, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/clonetable5.testcase0000664000175000017500000000035712544707704021450 00000000000000CloneTable() - NULL option #1 :memory: #use in-memory database SELECT CloneTable('prefix', 'in_table', 'out_table', 1, NULL) 1 # rows (not including the header row) 1 # columns CloneTable('prefix', 'in_table', 'out_table', 1, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/linefromtext2.testcase0000664000175000017500000000050012544707704022043 00000000000000linefromtext2 :memory: #use in-memory database SELECT AsWkt(LineFromText("LINESTRING(-71.1043443253471 42.315067601582900, -71 42)", 4326), 4); 1 # rows (not including the header row) 1 # columns AsWkt(LineFromText("LINESTRING(-71.1043443253471 42.315067601582900, -71 42)", 4326), 4) LINESTRING(-71.1043 42.3151,-71 42)libspatialite-4.3.0a/test/sql_stmt_tests/geometryn.testcase0000664000175000017500000000035412544707704021261 00000000000000Geometry N - multipoint :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOINT(1 2)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOINT(1 2)"), 1)) POINT(1 2) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull20.testcase0000664000175000017500000000027312544707704021403 00000000000000ForceAsNull() - NULL/BLOB :memory: #use in-memory database SELECT ForceAsNull(NULL, zeroblob(4)) 1 # rows (not including the header row) 1 # columns ForceAsNull(NULL, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttoblob7.testcase0000664000175000017500000000027512544707704021475 00000000000000CastToBlob() - DOUBLE hex_input :memory: #use in-memory database SELECT CastToBlob('0129abCF', 2.3) 1 # rows (not including the header row) 1 # columns CastToBlob('0129abCF', 2.3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftcoords1.testcase0000664000175000017500000000034112544707704021654 00000000000000shiftcoords1 :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("POINT(1 2)"), 1, 3)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("POINT(1 2)"), 1, 3)) POINT(2 5) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe20.testcase0000664000175000017500000000036212544707704023302 00000000000000makecircularstripe20 - NULL step :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326, NULL); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/isvalidnodata2.testcase0000664000175000017500000000027412544707704022155 00000000000000IsValidPixel - NULL pixel NEW:memory: #use in-memory database SELECT IsValidPixel(NULL, 'UINT8', 1); 1 # rows (not including the header row) 1 # columns IsValidPixel(NULL, 'UINT8', 1) -1 libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb25.testcase0000664000175000017500000000246612544707704021034 00000000000000fromWkb - mixed big-little-endian sub-items (2) :memory: #use in-memory database SELECT AsText(GeomFromWkb(CastToBlob('0107000000030000000101000000000000000000F03F00000000000000400102000000020000000000000000000000000000000000000000000000000014400000000000002440000000000300000002000000050000000000000000000000000000000040240000000000000000000000000000402400000000000040240000000000000000000000000000402400000000000000000000000000000000000000000000000000054014000000000000401400000000000040180000000000004014000000000000401800000000000040180000000000004014000000000000401800000000000040140000000000004014000000000000', 1))); 1 # rows (not including the header row) 1 # columns AsText(GeomFromWkb(CastToBlob('0107000000030000000101000000000000000000F03F00000000000000400102000000020000000000000000000000000000000000000000000000000014400000000000002440000000000300000002000000050000000000000000000000000000000040240000000000000000000000000000402400000000000040240000000000000000000000000000402400000000000000000000000000000000000000000000000000054014000000000000401400000000000040180000000000004014000000000000401800000000000040180000000000004014000000000000401800000000000040140000000000004014000000000000', 1))) GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(0 0, 5 10), POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 5, 6 5, 6 6, 5 6, 5 5))) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipse19.testcase0000664000175000017500000000032512544707704021713 00000000000000makeellipse19 - text step :memory: #use in-memory database SELECT MakeEllipse(0, 0, 100, 200, 4326, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, 100, 200, 4326, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/scalecoords7.testcase0000664000175000017500000000161712544707704021643 00000000000000scale coords - POLYGONZ :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("POLYGONZ((1 2 1, 1 3 1, 2 3 2, 2 2 2, 1 2 1))") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) POLYGON Z((0 0 1, 0 0 1, 0 0 2, 0 0 2, 0 0 1)) POLYGON Z((0 0 1, 0 0 1, 0 0 2, 0 0 2, 0 0 1)) POLYGON Z((2 6 1, 2 9 1, 4 9 2, 4 6 2, 2 6 1)) POLYGON Z((1 -2 1, 1 -3 1, 2 -3 2, 2 -2 2, 1 -2 1)) (NULL) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ewkb3.testcase0000664000175000017500000000041012544707704020254 00000000000000EWkb: Point XYZM :memory: #use in-memory database SELECT AsText(GeomFromEWkb('01010000E0E61000009A9999999999F13F9A9999999999014000000000000059400000000000002440')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom POINT ZM(1.1 2.2 100 10) libspatialite-4.3.0a/test/sql_stmt_tests/npoints6.testcase0000664000175000017500000000061412544707704021027 00000000000000npoints - multipolygon :memory: #use in-memory database SELECT ST_NPoints(GeomFromText("MULTIPOLYGON(((1 2, 3 4, 5 0, 1 2),(1.6 2.1, 1.7 2.1, 1.7 2.2, 1.6 2.2, 1.6 2.1)),((0 0, 1 0, 1 1, 0 1, 0 0)))")) 1 # rows (not including the header row) 1 # columns ST_NPoints(GeomFromText("MULTIPOLYGON(((1 2, 3 4, 5 0, 1 2),(1.6 2.1, 1.7 2.1, 1.7 2.2, 1.6 2.2, 1.6 2.1)),((0 0, 1 0, 1 1, 0 1, 0 0)))")) 14 libspatialite-4.3.0a/test/sql_stmt_tests/atmzroll3.testcase0000664000175000017500000000074212544707704021200 00000000000000ATM_ZRoll() - valid double :memory: #use in-memory database SELECT Hex(ATM_ZRoll(ATM_Create(), 15.0)) 1 # rows (not including the header row) 1 # columns Hex(ATM_ZRoll(ATM_Create(), 15.0)) 000115BF4847DDE8EE3F3A900693C17D90D0BF3A00000000000000003A00000000000000003A900693C17D90D03F3A15BF4847DDE8EE3F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/ispopulatedcoverage1.testcase0000664000175000017500000000032212544707704023371 00000000000000IsPopulatedCoverage - standard not existing coverage NEW:memory: #use in-memory database SELECT IsPopulatedCoverage('alpha'); 1 # rows (not including the header row) 1 # columns IsPopulatedCoverage('alpha') 0 libspatialite-4.3.0a/test/sql_stmt_tests/geomtype25.testcase0000664000175000017500000000054112544707704021246 00000000000000geometrytype - MULTIPOINTZM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTIPOINTZM(-71 42 26.2 3)") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTIPOINT ZM XYZM MULTIPOINT libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson25.testcase0000664000175000017500000000152612544707704021751 00000000000000FromGeoJSON - MULTIPOLYGON with SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"MultiPolygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[[10,10],[0,10],[0,0],[0,10],[10,10]]],[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"MultiPolygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[[10,10],[0,10],[0,0],[0,10],[10,10]]],[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]]}')):0 SRID=3003;MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype19.testcase0000664000175000017500000000060712544707704021254 00000000000000geometrytype - MULTILINESTRINGZM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("MULTILINESTRINGZM((30 20 1 2, 10 40 1 2, 45 40 1 2, 30 20 1 2),(15 5 2 3, 40 10 2 3, 10 20 2 3, 5 10 2 3, 15 5 2 3))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) MULTILINESTRING ZM XYZMlibspatialite-4.3.0a/test/sql_stmt_tests/casttoint5.testcase0000664000175000017500000000040012544707704021335 00000000000000CastToInteger() - TEXT valid decimals :memory: #use in-memory database SELECT CastToInteger('123.88'), TypeOf(CastToInteger('123.88')) 1 # rows (not including the header row) 2 # columns CastToInteger('123.88') TypeOf(CastToInteger('123.88')) 124 integer libspatialite-4.3.0a/test/sql_stmt_tests/removedupl2.testcase0000664000175000017500000000031112544707704021505 00000000000000RemoveDuplicateRows() - not existing table :memory: #use in-memory database SELECT RemoveDuplicateRows('table'); 1 # rows (not including the header row) 1 # columns RemoveDuplicateRows('table') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext18.testcase0000664000175000017500000000056612544707704022146 00000000000000geomfromtext18 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(MULTILINESTRINGZ((0 1 9, 2 3 9), (4 5 9, 6 7 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZ(MULTILINESTRINGZ((0 1 9, 2 3 9), (4 5 9, 6 7 9)))')); GEOMETRYCOLLECTION Z(LINESTRING Z(0 1 9, 2 3 9), LINESTRING Z(4 5 9, 6 7 9)) libspatialite-4.3.0a/test/sql_stmt_tests/makepoint4.testcase0000664000175000017500000000027012544707704021320 00000000000000makepoint4 :memory: #use in-memory database SELECT AsText(MakePoint(-71, 42, 4326)); 1 # rows (not including the header row) 1 # columns AsText(MakePoint(-71, 42, 4326)) POINT(-71 42) libspatialite-4.3.0a/test/sql_stmt_tests/minz2.testcase0000664000175000017500000000024012544707704020301 00000000000000MinZ - bad blob :memory: #use in-memory database SELECT ST_MinZ(zeroblob(48)) 1 # rows (not including the header row) 1 # columns ST_MinZ(zeroblob(48)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asewkb14.testcase0000664000175000017500000000237712544707704020700 00000000000000asewkb - POLYGONM :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("POLYGONM((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 0,2 2 0, 2 1 0, 1 1 0))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POLYGONM((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 0,2 2 0, 2 1 0, 1 1 0))", 4326))) 303130333030303036304536313030303030303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030343030303030303030303030303030303030303030303030303030303030303034303030303030303030303030304630334630303030303030303030303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030 libspatialite-4.3.0a/test/sql_stmt_tests/fromdms3.testcase0000664000175000017500000000034312544707704021000 00000000000000fromdms - Double DMS expression :memory: #use in-memory database SELECT LongitudeFromDMS(1.2), LatitudeFromDMS(1.2); 1 # rows (not including the header row) 2 # columns LongitudeFromDMS(1.2) LatitudeFromDMS(1.2) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/linefromtext1.testcase0000664000175000017500000000046412544707704022053 00000000000000linefromtext1 :memory: #use in-memory database SELECT AsWkt(LineFromText("LINESTRING(-71.1043443253471 42.315067601582900, -71 42)"), 4); 1 # rows (not including the header row) 1 # columns AsWkt(LineFromText("LINESTRING(-71.1043443253471 42.315067601582900, -71 42)"), 4) LINESTRING(-71.1043 42.3151,-71 42)libspatialite-4.3.0a/test/sql_stmt_tests/fromdms1.testcase0000664000175000017500000000034512544707704021000 00000000000000fromdms - NULL DMS expression :memory: #use in-memory database SELECT LongitudeFromDMS(NULL), LatitudeFromDMS(NULL); 1 # rows (not including the header row) 2 # columns LongitudeFromDMS(NULL) LatitudeFromDMS(NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector21.testcase0000664000175000017500000000036612544707704023301 00000000000000makeellipticsector21 - BLOB srid :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, 30, 60, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, 30, 60, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collect27.testcase0000664000175000017500000000055612544707704021052 00000000000000collect - LineString, LineString :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("Linestring(1 2, 3 4)"), GeomFromText("LINESTRING(4 5, 1 2, 4 2)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("Linestring(1 2, 3 4)"), GeomFromText("LINESTRING(4 5, 1 2, 4 2)"))) MULTILINESTRING((1 2, 3 4), (4 5, 1 2, 4 2)) libspatialite-4.3.0a/test/sql_stmt_tests/casttomulti5.testcase0000664000175000017500000000045412544707704021706 00000000000000casttomulti - POLYGON :memory: #use in-memory database SELECT AsText(CastToMulti(GeomFromText("POLYGON((0 1, 2 1, 2 4, 0 4, 0 1))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMulti(GeomFromText("POLYGON((0 1, 2 1, 2 4, 0 4, 0 1))"))) MULTIPOLYGON(((0 1, 2 1, 2 4, 0 4, 0 1))) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml43.testcase0000664000175000017500000000124312544707704021060 00000000000000FromGML - multipoint, multiple SRID - bad second SRID, no namespace :memory: #use in-memory database SELECT AsText(GeomFromGml('1,2,3.22,4,4.2')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('1,2,3.22,4,4.2')):0 MULTIPOINT Z(1 2 3.2, 2 4 4.2) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude9.testcase0000664000175000017500000000065412544707704022374 00000000000000shiftlongitude - positive and negative longitude linestringm :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("LINESTRINGM(-170 0 1, -175 2 2.4, -179 4 3.2, 175.3 5 4.7)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("LINESTRINGM(-170 0 1, -175 2 2.4, -179 4 3.2, 175.3 5 4.7)", 4326))) LINESTRING M(190 0 1, 185 2 2.4, 181 4 3.2, 175.3 5 4.7) libspatialite-4.3.0a/test/sql_stmt_tests/setpoint19.testcase0000664000175000017500000000055312544707704021270 00000000000000ST_SetPoint() - not a point :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, GeomFromText('MULTILINESTRING(10 10, 11 10), (1 1, 2 2))')) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, GeomFromText('MULTILINESTRING(10 10, 11 10), (1 1, 2 2))')) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/buildcirclembr9.testcase0000664000175000017500000000030412544707704022316 00000000000000buildcirclembr - null args / no srid :memory: #use in-memory database SELECT BuildCircleMbr(5, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildCircleMbr(5, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext13.testcase0000664000175000017500000000103512544707704022131 00000000000000geomfromtext13 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10))))')); GEOMETRYCOLLECTION(POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))) libspatialite-4.3.0a/test/sql_stmt_tests/buildcirclembr5.testcase0000664000175000017500000000034312544707704022315 00000000000000buildcirclembr - int args / no srid :memory: #use in-memory database SELECT AsText(BuildCircleMbr(5, 6, 1)) 1 # rows (not including the header row) 1 # columns AsText(BuildCircleMbr(5, 6, 1)) POLYGON((4 5, 6 5, 6 7, 4 7, 4 5)) libspatialite-4.3.0a/test/sql_stmt_tests/setstartpoint1.testcase0000664000175000017500000000027412544707704022255 00000000000000ST_SetStartPoint() - NULL line :memory: #use in-memory database SELECT ST_SetStartPoint(NULL, NULL) 1 # rows (not including the header row) 1 # columns ST_SetStartPoint(NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb9.testcase0000664000175000017500000000077412544707704020756 00000000000000fromWkb - mandatory POLYGON :memory: #use in-memory database SELECT Hex(PolygonFromWkb(AsBinary(GeomFromText("POLYGON((1 2, 3 1, 4 4, 1 2))")))) 1 # rows (not including the header row) 1 # columns Hex(PolygonFromWkb(AsBinary(GeomFromText("POLYGON((1 2, 3 1, 4 4, 1 2))")))) 000100000000000000000000F03F000000000000F03F000000000000104000000000000010407C030000000100000004000000000000000000F03F00000000000000400000000000000840000000000000F03F00000000000010400000000000001040000000000000F03F0000000000000040FE libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatescale5.testcase0000664000175000017500000000074012544707704022311 00000000000000ATM_CreateScale() - valid 3d (int) :memory: #use in-memory database SELECT Hex(ATM_CreateScale(1, 2, 3)) 1 # rows (not including the header row) 1 # columns Hex(ATM_CreateScale(1, 2, 3)) 0001000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A00000000000000403A00000000000000003A00000000000000003A00000000000000003A00000000000000003A00000000000008403A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/wkb25.testcase0000664000175000017500000000147112544707704020203 00000000000000Hex Wkb: GeometryCollection XY (2 polygons) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)), POLYGON((15 15, 16 15, 16 16, 15 16, 15 15)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)), POLYGON((15 15, 16 15, 16 16, 15 16, 15 15)))", 4326))); 010700000002000000010300000001000000050000000000000000002440000000000000244000000000000026400000000000002440000000000000264000000000000026400000000000002440000000000000264000000000000024400000000000002440010300000001000000050000000000000000002E400000000000002E4000000000000030400000000000002E40000000000000304000000000000030400000000000002E4000000000000030400000000000002E400000000000002E40 libspatialite-4.3.0a/test/sql_stmt_tests/geomtype27.testcase0000664000175000017500000000043612544707704021253 00000000000000geometrytype - MULTIPOINTM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("MULTIPOINTM(-71 42 26.2)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) MULTIPOINT M XYMlibspatialite-4.3.0a/test/sql_stmt_tests/fromgml54.testcase0000664000175000017500000000202112544707704021055 00000000000000FromGML - MultiLinestring v3 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1 2 3 4 5 6 7 810 10 11.3 11')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1 2 3 4 5 6 7 810 10 11.3 11')):0 SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.3 11)) libspatialite-4.3.0a/test/sql_stmt_tests/testdb1.sqlite0000664000175000017500002004600012544707704020304 00000000000000SQLite format 3@ ´¸´-â#Ø’ûöñìçâÝØ‰#g!f  2MúôîèâÜÖÐÊľ¸²¬¦ š”†xqjc\UNG@92 çÿ ‚þ üh ¶û] Oúb çùf ëQ Ý~ ³Òs BÑt ÜÐp t¾4 ®x¨ :8¥GáMŸØ.Eœ2µ›;Aš>Ï™M\˜\è—fl–rù–†•”  “0’@š‘C™Jï ï € ŠepsgŠ ÇªSû‘7Çn#3alpha_roadsgeomGeometry [LINESTRING,XY,SRID=4326] successfully recovered2012-02-27 18:03:333.7.103.0.2X_3roadsgeomR*Tree Spatial Index successfully created2012-02-27 17:24:133.7.103.0.2h3roadsgeomGeometry [LINESTRING,XY,SRID=4326] successfully recovered2012-02-27 17:24:033.7.103.0.2V+E3#spatial_ref_systable successfully populated2011-10-24 09:00:543.7.43.0.0-beta1U-A3#geometry_columnstable successfully created2011-10-24 09:00:523.7.43.0.0-beta1T+A3#spatial_ref_systable successfully created2011-10-24 09:00:523.7.43.0.0-beta1 èè1spatialite_history ¸ß¸%#!alpha_roadsgeomLINESTRINGXYæ!roadsgeomLINESTRINGXYæ ÜÜñ#alpha_roadsgeomroadsgeom 00’®[++‚mtablespatial_ref_sysspatial_ref_sysCREATE TABLE spatial_ref_sys ( srid INTEGER NOT NULL PRIMARY KEY, auth_name TEXT NOT NULL, auth_srid INTEGER NOT NULL, ref_sys_name TEXT, proj4text TEXT NOT NULL, srs_wkt TEXT)3+1indexidx_spatial_ref_sysspatial_ref_sysCREATE UNIQUE INDEX idx_spatial_ref_sys ON spatial_ref_sys (auth_srid, auth_name)‚11ƒ]tablespatialite_historyspatialite_historyCREATE TABLE spatialite_history ( event_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, table_name TEXT NOT NULL, geometry_column TEXT, event TEXT NOT NULL, timestamp TEXT NOT NULL, ver_sqlite TEXT NOT NULL, ver_splite TEXT NOT NULL)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq) ““#dʃ --…Mtablegeometry_columnsgeometry_columnsCREATE TABLE geometry_columns ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, type TEXT NOT NULL, coord_dimension TEXT NOT NULL, srid INTEGER NOT NULL, spatial_index_enabled INTEGER NOT NULL, CONSTRAINT pk_geom_cols PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_srs FOREIGN KEY (srid) REFERENCES spatial_ref_sys (srid))?S-indexsqlite_autoindex_geometry_columns_1geometry_columnsd--}indexidx_srid_geocolsgeometry_columns CREATE INDEX idx_srid_geocols ON geometry_columns (srid)‚3//„viewgeom_cols_ref_sysgeom_cols_ref_sysCREATE VIEW geom_cols_ref_sys AS SELECT f_table_name, f_geometry_column, type, coord_dimension, spatial_ref_sys.srid AS srid, auth_name, auth_srid, ref_sys_name, proj4text FROM geometry_columns, spatial_ref_sys WHERE geometry_columns.srid = spatial_ref_sys.srid òùòææ   II*wƒ^ 99†Wtableviews_geometry_columnsviews_geometry_columns CREATE TABLE views_geometry_columns ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, view_rowid TEXT NOT NULL, f_table_name VARCHAR(256) NOT NULL, f_geometry_column VARCHAR(256) NOT NULL, CONSTRAINT pk_geom_cols_views PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_views_geom_cols FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)K _9indexsqlite_autoindex_views_geometry_columns_1views_geometry_columns  '99indexidx_viewsjoinviews_geometry_columnsCREATE INDEX idx_viewsjoin ON views_geometry_columns (f_table_name, f_geometry_column)    00ŒÙF‚Y 99„Mtablevirts_geometry_columnsvirts_geometry_columnsCREATE TABLE virts_geometry_columns ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, type VARCHAR(30) NOT NULL, srid INTEGER NOT NULL, CONSTRAINT pk_geom_cols_virts PRIMARY KEY (virt_name, virt_geometry), CONSTRAINT fk_vgc_srid FOREIGN KEY (srid) REFERENCES spatial_ref_sys (srid))K _9indexsqlite_autoindex_virts_geometry_columns_1virts_geometry_columnsk'9indexidx_virtssridvirts_geometry_columnsCREATE INDEX idx_virtssrid ON virts_geometry_columns (srid)ƒ777† tablegeometry_columns_authgeometry_columns_authCREATE TABLE geometry_columns_auth ( f_table_name VARCHAR(256) NOT NULL, f_geometry_column VARCHAR(256) NOT NULL, read_only INTEGER NOT NULL, hidden INTEGER NOT NULL, CONSTRAINT pk_gc_auth PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_auth FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)      W»o;tableroadsroadsWCREATE TABLE roads( id INT, nI]7indexsqlite_autoindex_geometry_columns_auth_1geometry_columns_authb%%tableSpatialIndexSpatialIndexCREATE VIRTUAL TABLE SpatialIndex USING VirtualSpatialIndex()Stabledata1data1VCREATE TABLE data1 (a int, b double, nulls int, blobs BLOB)o;tableroadsroadsWCREATE TABLE roads( id INT, name TEXT, geom NUM, node_from INT, node_to INT )‚|)…Atriggerggi_roads_geomroadsCREATE TRIGGER "ggi_roads_geom" BEFORE INSERT ON "roads" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'roads.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT type FROM geometry_columns WHERE f_table_name = 'roads' AND f_geometry_column = 'geom' AND GeometryConstraints(NEW."geom", type, srid, 'XY') = 1) IS NULL; END ß߆P ]]Š epsgÐAnguilla 1957 / British West Indies Grid+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defsPROJCS["Anguilla 1957 / British West Indies Grid",GEOGCS["Anguilla 1957",DATUM["Anguilla_1957",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6600"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4600"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-62],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2000"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ãã†Q []ŠepsgÑAntigua 1943 / British West Indies Grid+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defsPROJCS["Antigua 1943 / British West Indies Grid",GEOGCS["Antigua 1943",DATUM["Antigua_1943",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6601"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4601"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-62],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2001"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¥¥†WR ]‚ŠCepsgÒDominica 1945 / British West Indies Grid+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=725,685,536,0,0,0,0 +units=m +no_defsPROJCS["Dominica 1945 / British West Indies Grid",GEOGCS["Dominica 1945",DATUM["Dominica_1945",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[725,685,536,0,0,0,0],AUTHORITY["EPSG","6602"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4602"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-62],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2002"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ©©†SS [‚Š=epsgÓGrenada 1953 / British West Indies Grid+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=72,213.7,93,0,0,0,0 +units=m +no_defsPROJCS["Grenada 1953 / British West Indies Grid",GEOGCS["Grenada 1953",DATUM["Grenada_1953",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[72,213.7,93,0,0,0,0],AUTHORITY["EPSG","6603"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4603"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-62],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2003"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] †_T a‚ŠOepsgÔMontserrat 1958 / British West Indies Grid+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=174,359,365,0,0,0,0 +units=m +no_defsPROJCS["Montserrat 1958 / British West Indies Grid",GEOGCS["Montserrat 1958",DATUM["Montserrat_1958",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[174,359,365,0,0,0,0],AUTHORITY["EPSG","6604"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4604"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-62],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2004"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ü܆ U _]Š epsgÕSt. Kitts 1955 / British West Indies Grid+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defsPROJCS["St. Kitts 1955 / British West Indies Grid",GEOGCS["St. Kitts 1955",DATUM["St_Kitts_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6605"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4605"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-62],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2005"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   †\V _‚ŠIepsgÖSt. Lucia 1955 / British West Indies Grid+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=-149,128,296,0,0,0,0 +units=m +no_defsPROJCS["St. Lucia 1955 / British West Indies Grid",GEOGCS["St. Lucia 1955",DATUM["St_Lucia_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-149,128,296,0,0,0,0],AUTHORITY["EPSG","6606"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4606"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-62],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2006"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] †††vW _‚/Šgepsg×St. Vincent 45 / British West Indies Grid+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=195.671,332.517,274.607,0,0,0,0 +units=m +no_defsPROJCS["St. Vincent 45 / British West Indies Grid",GEOGCS["St. Vincent 1945",DATUM["St_Vincent_1945",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[195.671,332.517,274.607,0,0,0,0],AUTHORITY["EPSG","6607"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4607"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-62],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2007"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ûû†X CI‰epsgØNAD27(CGQ77) / SCoPQ zone 2+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / SCoPQ zone 2",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-55.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2008"],AXIS["X",EAST],AXIS["Y",NORTH]] ûû†Y CI‰epsgÙNAD27(CGQ77) / SCoPQ zone 3+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / SCoPQ zone 3",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-58.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2009"],AXIS["X",EAST],AXIS["Y",NORTH]] ûû†Z CI‰epsgÚNAD27(CGQ77) / SCoPQ zone 4+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / SCoPQ zone 4",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-61.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2010"],AXIS["X",EAST],AXIS["Y",NORTH]] ûû†[ CI‰epsgÛNAD27(CGQ77) / SCoPQ zone 5+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / SCoPQ zone 5",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-64.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2011"],AXIS["X",EAST],AXIS["Y",NORTH]] ûû†\ CI‰epsgÜNAD27(CGQ77) / SCoPQ zone 6+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / SCoPQ zone 6",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-67.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2012"],AXIS["X",EAST],AXIS["Y",NORTH]] ûû†] CI‰epsgÝNAD27(CGQ77) / SCoPQ zone 7+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / SCoPQ zone 7",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-70.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2013"],AXIS["X",EAST],AXIS["Y",NORTH]] ûû†^ CI‰epsgÞNAD27(CGQ77) / SCoPQ zone 8+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / SCoPQ zone 8",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-73.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2014"],AXIS["X",EAST],AXIS["Y",NORTH]] ûû†_ CI‰epsgßNAD27(CGQ77) / SCoPQ zone 9+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / SCoPQ zone 9",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-76.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2015"],AXIS["X",EAST],AXIS["Y",NORTH]] ùù†` EIŠepsgàNAD27(CGQ77) / SCoPQ zone 10+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / SCoPQ zone 10",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-79.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2016"],AXIS["X",EAST],AXIS["Y",NORTH]]   …sa 9I‰mepsgáNAD27(76) / MTM zone 8+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 8",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-73.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2017"],AXIS["X",EAST],AXIS["Y",NORTH]]   …sb 9I‰mepsgâNAD27(76) / MTM zone 9+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 9",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-76.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2018"],AXIS["X",EAST],AXIS["Y",NORTH]] …uc ;I‰oepsgãNAD27(76) / MTM zone 10+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 10",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-79.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2019"],AXIS["X",EAST],AXIS["Y",NORTH]] úú†d ;IŠ epsgäNAD27(76) / MTM zone 11+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 11",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-82.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2020"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] þþ…~e ;EŠepsgåNAD27(76) / MTM zone 12+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 12",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2021"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] þþ…~f ;EŠepsgæNAD27(76) / MTM zone 13+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 13",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-84],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2022"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] þþ…~g ;EŠepsgçNAD27(76) / MTM zone 14+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 14",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2023"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] þþ…~h ;EŠepsgèNAD27(76) / MTM zone 15+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 15",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-90],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2024"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] þþ…~i ;EŠepsgéNAD27(76) / MTM zone 16+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 16",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2025"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] þþ…~j ;EŠepsgêNAD27(76) / MTM zone 17+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / MTM zone 17",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-96],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2026"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…Uk=qŠepsgëNAD27(76) / UTM zone 15N+proj=utm +zone=15 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / UTM zone 15N",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2027"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…Ul=qŠepsgìNAD27(76) / UTM zone 16N+proj=utm +zone=16 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / UTM zone 16N",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2028"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…Um=qŠepsgíNAD27(76) / UTM zone 17N+proj=utm +zone=17 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / UTM zone 17N",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2029"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…Un=qŠepsgîNAD27(76) / UTM zone 18N+proj=utm +zone=18 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(76) / UTM zone 18N",GEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2030"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …_oCqŠepsgïNAD27(CGQ77) / UTM zone 17N+proj=utm +zone=17 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / UTM zone 17N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2031"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …_pCqŠepsgðNAD27(CGQ77) / UTM zone 18N+proj=utm +zone=18 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / UTM zone 18N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2032"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …_qCqŠepsgñNAD27(CGQ77) / UTM zone 19N+proj=utm +zone=19 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / UTM zone 19N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2033"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …_rCqŠepsgòNAD27(CGQ77) / UTM zone 20N+proj=utm +zone=20 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / UTM zone 20N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2034"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …_sCqŠepsgóNAD27(CGQ77) / UTM zone 21N+proj=utm +zone=21 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / UTM zone 21N",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2035"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] {{‡t o‚‹ epsgôNAD83(CSRS98) / New Brunswick Stereo (deprecated)+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=2500000 +y_0=7500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / New Brunswick Stereo (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-66.5],PARAMETER["scale_factor",0.999912],PARAMETER["false_easting",2500000],PARAMETER["false_northing",7500000],AUTHORITY["EPSG","2036"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ÔÔ†(u _Š]epsgõNAD83(CSRS98) / UTM zone 19N (deprecated)+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / UTM zone 19N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2037"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÔÔ†(v _Š]epsgöNAD83(CSRS98) / UTM zone 20N (deprecated)+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / UTM zone 20N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2038"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ‘‘†kw =‚SŠOepsg÷Israel / Israeli TM Grid+proj=tmerc +lat_0=31.73439361111111 +lon_0=35.20451694444445 +k=1.0000067 +x_0=219529.584 +y_0=626907.39 +ellps=GRS80 +towgs84=-48,55,52,0,0,0,0 +units=m +no_defsPROJCS["Israel / Israeli TM Grid",GEOGCS["Israel",DATUM["Israel",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[-48,55,52,0,0,0,0],AUTHORITY["EPSG","6141"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4141"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31.73439361111111],PARAMETER["central_meridian",35.20451694444445],PARAMETER["scale_factor",1.0000067],PARAMETER["false_easting",219529.584],PARAMETER["false_northing",626907.39],AUTHORITY["EPSG","2039"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] øø†x C+Š#epsgøLocodjo 1965 / UTM zone 30N+proj=utm +zone=30 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m +no_defsPROJCS["Locodjo 1965 / UTM zone 30N",GEOGCS["Locodjo 1965",DATUM["Locodjo_1965",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-125,53,467,0,0,0,0],AUTHORITY["EPSG","6142"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4142"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2040"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ìì†y C7Š/epsgùAbidjan 1987 / UTM zone 30N+proj=utm +zone=30 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +units=m +no_defsPROJCS["Abidjan 1987 / UTM zone 30N",GEOGCS["Abidjan 1987",DATUM["Abidjan_1987",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-124.76,53,466.79,0,0,0,0],AUTHORITY["EPSG","6143"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4143"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2041"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] øø†z C+Š#epsgúLocodjo 1965 / UTM zone 29N+proj=utm +zone=29 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m +no_defsPROJCS["Locodjo 1965 / UTM zone 29N",GEOGCS["Locodjo 1965",DATUM["Locodjo_1965",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-125,53,467,0,0,0,0],AUTHORITY["EPSG","6142"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4142"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2042"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ìì†{ C7Š/epsgûAbidjan 1987 / UTM zone 29N+proj=utm +zone=29 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +units=m +no_defsPROJCS["Abidjan 1987 / UTM zone 29N",GEOGCS["Abidjan 1987",DATUM["Abidjan_1987",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-124.76,53,466.79,0,0,0,0],AUTHORITY["EPSG","6143"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4143"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2043"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Í͆/| O‚ Š epsgüHanoi 1972 / Gauss-Kruger zone 18+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +units=m +no_defsPROJCS["Hanoi 1972 / Gauss-Kruger zone 18",GEOGCS["Hanoi 1972",DATUM["Hanoi_1972",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY["EPSG","6147"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4147"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",18500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2044"],AXIS["X",NORTH],AXIS["Y",EAST]] Í͆/} O‚ Š epsgýHanoi 1972 / Gauss-Kruger zone 19+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +units=m +no_defsPROJCS["Hanoi 1972 / Gauss-Kruger zone 19",GEOGCS["Hanoi 1972",DATUM["Hanoi_1972",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY["EPSG","6147"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4147"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",19500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2045"],AXIS["X",NORTH],AXIS["Y",EAST]] dd‡ )‚[‹5epsgCH1903+ / LV95+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defsPROJCS["CH1903+ / LV95",GEOGCS["CH1903+",DATUM["CH1903",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[674.374,15.056,405.346,0,0,0,0],AUTHORITY["EPSG","6150"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4150"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",46.95240555555556],PARAMETER["longitude_of_center",7.439583333333333],PARAMETER["azimuth",90],PARAMETER["rectified_grid_angle",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",2600000],PARAMETER["false_northing",1200000],AUTHORITY["EPSG","2056"],AXIS["Y",EAST],AXIS["X",NORTH]]lpha=0.5716611944444444 +k=0.999895934 +x_0=658377.437 +y_0=3044969.194 +ellps=intl +towgs84=-133.63,-157.5,-158.62,0,0,0,0 +units=m +no_defsPROJCS["Rassadiran / Nakhl e Taqi",GEOGCS["Rassadiran",DATUM["Rassadiran",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-133.63,-157.5,-158.62,0,0,0,0],AUTHORITY["EPSG","6153"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4153"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",27.51882880555555],PARAMETER["longitude_of_center",52.60353916666667],PARAMETER["azimuth",0.5716611944444444],PARAMETER["rectified_grid_angle",0.5716611944444444],PARAMETER["scale_factor",0.999895934],PARAMETER["false_easting",658377.437],PARAMETER["false_northing",3044969.194],AUTHORITY["EPSG","2057"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ǑDžF ?m‰kepsg ED50(ED77) / UTM zone 38N+proj=utm +zone=38 +ellps=intl +units=m +no_defsPROJCS["ED50(ED77) / UTM zone 38N",GEOGCS["ED50(ED77)",DATUM["European_Datum_1950_1977",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6154"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4154"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2058"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]ˆ ?ƒ%ŒKepsg Rassadiran / Nakhl e Taqi+proj=omerc +lat_0=27.51882880555555 +lonc=52.60353916666667 +aE 66…F ?m‰kepsg ED50(ED77) / UTM zone 39N+proj=utm +zone=39 +ellps=intl +units=m +no_defsPROJCS["ED50(ED77) / UTM zone 39N",GEOGCS["ED50(ED77)",DATUM["European_Datum_1950_1977",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6154"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4154"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2059"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66…F ?m‰kepsg ED50(ED77) / UTM zone 40N+proj=utm +zone=40 +ellps=intl +units=m +no_defsPROJCS["ED50(ED77) / UTM zone 40N",GEOGCS["ED50(ED77)",DATUM["European_Datum_1950_1977",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6154"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4154"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2060"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66…F ?m‰kepsg ED50(ED77) / UTM zone 41N+proj=utm +zone=41 +ellps=intl +units=m +no_defsPROJCS["ED50(ED77) / UTM zone 41N",GEOGCS["ED50(ED77)",DATUM["European_Datum_1950_1977",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6154"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4154"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2061"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ºº†B E‚+ŠepsgMadrid 1870 (Madrid) / Spain+proj=lcc +lat_1=40 +lat_0=40 +lon_0=0 +k_0=0.9988085293 +x_0=600000 +y_0=600000 +a=6378298.3 +b=6356657.142669561 +pm=madrid +units=m +no_defsPROJCS["Madrid 1870 (Madrid) / Spain",GEOGCS["Madrid 1870 (Madrid)",DATUM["Madrid_1870_Madrid",SPHEROID["Struve 1860",6378298.3,294.73,AUTHORITY["EPSG","7028"]],AUTHORITY["EPSG","6903"]],PRIMEM["Madrid",-3.687938888888889,AUTHORITY["EPSG","8905"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4903"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.9988085293],PARAMETER["false_easting",600000],PARAMETER["false_northing",600000],AUTHORITY["EPSG","2062"],AXIS["X",EAST],AXIS["Y",NORTH]] Ïφ- [=ŠKepsgDabola 1981 / UTM zone 28N (deprecated)+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defsPROJCS["Dabola 1981 / UTM zone 28N (deprecated)",GEOGCS["Conakry 1905",DATUM["Conakry_1905",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["EPSG","6315"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4315"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2063"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÐІ, [=ŠIepsgDabola 1981 / UTM zone 29N (deprecated)+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defsPROJCS["Dabola 1981 / UTM zone 29N (deprecated)",GEOGCS["Conakry 1905",DATUM["Conakry_1905",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["EPSG","6315"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4315"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2064"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y ;‚ ŠuepsgS-JTSK (Ferro) / Krovak+proj=krovak +lat_0=49.5 +lon_0=42.5 +alpha=30.28813972222222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["S-JTSK (Ferro) / Krovak",GEOGCS["S-JTSK (Ferro)",DATUM["S_JTSK_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6818"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4818"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Krovak"],PARAMETER["latitude_of_center",49.5],PARAMETER["longitude_of_center",42.5],PARAMETER["azimuth",30.28813972222222],PARAMETER["pseudo_standard_parallel_1",78.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2065"],AXIS["X",SOUTH],AXIS["Y",WEST]] ––†f A‚oŠ%epsgMount Dillon / Tobago Grid+proj=cass +lat_0=11.25217861111111 +lon_0=-60.68600888888889 +x_0=37718.66159325 +y_0=36209.91512952 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.201166195164 +no_defsPROJCS["Mount Dillon / Tobago Grid",GEOGCS["Mount Dillon",DATUM["Mount_Dillon",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6157"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4157"]],UNIT["Clarke's link",0.201166195164,AUTHORITY["EPSG","9039"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",11.25217861111111],PARAMETER["central_meridian",-60.68600888888889],PARAMETER["false_easting",187500],PARAMETER["false_northing",180000],AUTHORITY["EPSG","2066"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 77…EEm‰cepsgNaparima 1955 / UTM zone 20N+proj=utm +zone=20 +ellps=intl +units=m +no_defsPROJCS["Naparima 1955 / UTM zone 20N",GEOGCS["Naparima 1955",DATUM["Naparima_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6158"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4158"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2067"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((…T 5=‰?epsgELD79 / Libya zone 5+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / Libya zone 5",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2068"],AXIS["X",EAST],AXIS["Y",NORTH]] &&…V 5?‰AepsgELD79 / Libya zone 6+proj=tmerc +lat_0=0 +lon_0=11 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / Libya zone 6",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",11],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2069"],AXIS["X",EAST],AXIS["Y",NORTH]] &&…V 5?‰AepsgELD79 / Libya zone 7+proj=tmerc +lat_0=0 +lon_0=13 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / Libya zone 7",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2070"],AXIS["X",EAST],AXIS["Y",NORTH]] &&…V 5?‰AepsgELD79 / Libya zone 8+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / Libya zone 8",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2071"],AXIS["X",EAST],AXIS["Y",NORTH]] &&…V 5?‰AepsgELD79 / Libya zone 9+proj=tmerc +lat_0=0 +lon_0=17 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / Libya zone 9",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",17],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2072"],AXIS["X",EAST],AXIS["Y",NORTH]] $$…X 7?‰CepsgELD79 / Libya zone 10+proj=tmerc +lat_0=0 +lon_0=19 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / Libya zone 10",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",19],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2073"],AXIS["X",EAST],AXIS["Y",NORTH]] $$…X 7?‰CepsgELD79 / Libya zone 11+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / Libya zone 11",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2074"],AXIS["X",EAST],AXIS["Y",NORTH]] $$…X 7?‰CepsgELD79 / Libya zone 12+proj=tmerc +lat_0=0 +lon_0=23 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / Libya zone 12",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",23],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2075"],AXIS["X",EAST],AXIS["Y",NORTH]] $$…X 7?‰CepsgELD79 / Libya zone 13+proj=tmerc +lat_0=0 +lon_0=25 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / Libya zone 13",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2076"],AXIS["X",EAST],AXIS["Y",NORTH]] ?½ðßν(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæógfoss.itœCgfoss.itœBgfoss.itœAgfoss.itœ@ ÐepsgÐ ÑepsgÑ ÒepsgÒ ÓepsgÓ ÔepsgÔ ÕepsgÕ ÖepsgÖ ×epsg× ØepsgØ ÙepsgÙ ÚepsgÚ ÛepsgÛ ÜepsgÜ ÝepsgÝ ÞepsgÞ ßepsgß àepsgà áepsgá âepsgâ ãepsgã äepsgä åepsgå æepsgæ çepsgç èepsgè éepsgé êepsgê ëepsgë ìepsgì íepsgí îepsgî ïepsgï ðepsgð ñepsgñ òepsgò óepsgó ôepsgô õepsgõ öepsgö ÷epsg÷ øepsgø ùepsgù úepsgú ûepsgû üepsgü ýepsgý epsg  epsg  epsg  epsg  epsg  epsg epsg epsg epsg epsg epsg epsg epsg ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg  epsg !epsg! "epsg" #epsg# $epsg$ %epsg% &epsg& 'epsg' (epsg( )epsg) *epsg* +epsg+ ,epsg, -epsg- .epsg. /epsg/ 0epsg0 1epsg1 2epsg2 3epsg3 4epsg4 5epsg5 6epsg6 7epsg7 8epsg8 9epsg9 :epsg: ;epsg; epsg> ?epsg? @epsg@ AepsgA BepsgB CepsgC DepsgD EepsgE FepsgF GepsgG HepsgH IepsgI JepsgJ KepsgK LepsgL MepsgM NepsgN OepsgO PepsgP DD…85m‰YepsgELD79 / UTM zone 32N+proj=utm +zone=32 +ellps=intl +units=m +no_defsPROJCS["ELD79 / UTM zone 32N",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2077"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…95m‰[epsgELD79 / UTM zone 33N+proj=utm +zone=33 +ellps=intl +units=m +no_defsPROJCS["ELD79 / UTM zone 33N",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2078"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…95m‰[epsgELD79 / UTM zone 34N+proj=utm +zone=34 +ellps=intl +units=m +no_defsPROJCS["ELD79 / UTM zone 34N",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2079"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…9 5m‰[epsg ELD79 / UTM zone 35N+proj=utm +zone=35 +ellps=intl +units=m +no_defsPROJCS["ELD79 / UTM zone 35N",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2080"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …o! Q=‰Yepsg!Chos Malal 1914 / Argentina zone 2+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Chos Malal 1914 / Argentina zone 2",GEOGCS["Chos Malal 1914",DATUM["Chos_Malal_1914",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6160"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4160"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2081"],AXIS["X",NORTH],AXIS["Y",EAST]] ÃÆ9" W{Š)epsg"Pampa del Castillo / Argentina zone 2+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +towgs84=27.5,14,186.4,0,0,0,0 +units=m +no_defsPROJCS["Pampa del Castillo / Argentina zone 2",GEOGCS["Pampa del Castillo",DATUM["Pampa_del_Castillo",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[27.5,14,186.4,0,0,0,0],AUTHORITY["EPSG","6161"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4161"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2082"],AXIS["X",NORTH],AXIS["Y",EAST]]   …o# Q=‰Yepsg#Hito XVIII 1963 / Argentina zone 2+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Hito XVIII 1963 / Argentina zone 2",GEOGCS["Hito XVIII 1963",DATUM["Hito_XVIII_1963",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6254"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4254"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2083"],AXIS["X",NORTH],AXIS["Y",EAST]] !!…[$I{‰}epsg$Hito XVIII 1963 / UTM zone 19S+proj=utm +zone=19 +south +ellps=intl +units=m +no_defsPROJCS["Hito XVIII 1963 / UTM zone 19S",GEOGCS["Hito XVIII 1963",DATUM["Hito_XVIII_1963",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6254"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4254"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2084"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÀÀ†<% K‚Šepsg%NAD27 / Cuba Norte (deprecated)+proj=lcc +lat_1=22.35 +lat_0=22.35 +lon_0=-81 +k_0=0.99993602 +x_0=500000 +y_0=280296.016 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Cuba Norte (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",22.35],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.99993602],PARAMETER["false_easting",500000],PARAMETER["false_northing",280296.016],AUTHORITY["EPSG","2085"],AXIS["Y",NORTH],AXIS["X",EAST]] ‚‚†z& G‚iŠMepsg&NAD27 / Cuba Sur (deprecated)+proj=lcc +lat_1=20.71666666666667 +lat_0=20.71666666666667 +lon_0=-76.83333333333333 +k_0=0.99994848 +x_0=500000 +y_0=229126.939 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Cuba Sur (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",20.71666666666667],PARAMETER["central_meridian",-76.83333333333333],PARAMETER["scale_factor",0.99994848],PARAMETER["false_easting",500000],PARAMETER["false_northing",229126.939],AUTHORITY["EPSG","2086"],AXIS["Y",NORTH],AXIS["X",EAST]] !!…[' -?‰Sepsg'ELD79 / TM 12 NE+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ELD79 / TM 12 NE",GEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2087"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÿÿ…}( 3w‰Yepsg(Carthage / TM 11 NE+proj=tmerc +lat_0=0 +lon_0=11 +k=0.9996 +x_0=500000 +y_0=0 +a=6378249.2 +b=6356515 +datum=carthage +units=m +no_defsPROJCS["Carthage / TM 11 NE",GEOGCS["Carthage",DATUM["Carthage",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6223"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4223"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",11],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2088"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ùù†) AŠ1epsg)Yemen NGN96 / UTM zone 38N+proj=utm +zone=38 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["Yemen NGN96 / UTM zone 38N",GEOGCS["Yemen NGN96",DATUM["Yemen_National_Geodetic_Network_1996",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6163"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4163"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2089"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ùù†* AŠ1epsg*Yemen NGN96 / UTM zone 39N+proj=utm +zone=39 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["Yemen NGN96 / UTM zone 39N",GEOGCS["Yemen NGN96",DATUM["Yemen_National_Geodetic_Network_1996",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6163"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4163"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2090"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÉɆ3+ isŠepsg+South Yemen / Gauss Kruger zone 8 (deprecated)+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defsPROJCS["South Yemen / Gauss Kruger zone 8 (deprecated)",GEOGCS["South Yemen",DATUM["South_Yemen",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY["EPSG","6164"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4164"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2091"],AXIS["X",NORTH],AXIS["Y",EAST]] ÉɆ3, isŠepsg,South Yemen / Gauss Kruger zone 9 (deprecated)+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defsPROJCS["South Yemen / Gauss Kruger zone 9 (deprecated)",GEOGCS["South Yemen",DATUM["South_Yemen",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY["EPSG","6164"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4164"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",9500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2092"],AXIS["X",NORTH],AXIS["Y",EAST]] çç†- 9‚‰sepsg-Hanoi 1972 / GK 106 NE+proj=tmerc +lat_0=0 +lon_0=106 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +units=m +no_defsPROJCS["Hanoi 1972 / GK 106 NE",GEOGCS["Hanoi 1972",DATUM["Hanoi_1972",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY["EPSG","6147"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4147"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",106],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2093"],AXIS["X",NORTH],AXIS["Y",EAST]] ÐІ,. 5‚Š'epsg.WGS 72BE / TM 106 NE+proj=tmerc +lat_0=0 +lon_0=106 +k=0.9996 +x_0=500000 +y_0=0 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / TM 106 NE",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",106],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2094"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …d/ 7'‰sepsg/Bissau / UTM zone 28N+proj=utm +zone=28 +ellps=intl +towgs84=-173,253,27,0,0,0,0 +units=m +no_defsPROJCS["Bissau / UTM zone 28N",GEOGCS["Bissau",DATUM["Bissau",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-173,253,27,0,0,0,0],AUTHORITY["EPSG","6165"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4165"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2095"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …p0 GG‰[epsg0Korean 1985 / Korea East Belt+proj=tmerc +lat_0=38 +lon_0=129 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defsPROJCS["Korean 1985 / Korea East Belt",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2096"],AXIS["X",NORTH],AXIS["Y",EAST]] …v1 MG‰aepsg1Korean 1985 / Korea Central Belt+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defsPROJCS["Korean 1985 / Korea Central Belt",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",127],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2097"],AXIS["X",NORTH],AXIS["Y",EAST]]   …p2 GG‰[epsg2Korean 1985 / Korea West Belt+proj=tmerc +lat_0=38 +lon_0=125 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defsPROJCS["Korean 1985 / Korea West Belt",GEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",125],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2098"],AXIS["X",NORTH],AXIS["Y",EAST]] …u3 ;w‰Aepsg3Qatar 1948 / Qatar Grid+proj=cass +lat_0=25.38236111111111 +lon_0=50.76138888888889 +x_0=100000 +y_0=100000 +ellps=helmert +units=m +no_defsPROJCS["Qatar 1948 / Qatar Grid",GEOGCS["Qatar 1948",DATUM["Qatar_1948",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6286"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4286"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",25.38236111111111],PARAMETER["central_meridian",50.76138888888889],PARAMETER["false_easting",100000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","2099"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÛÛ†!4 3]Š;epsg4GGRS87 / Greek Grid+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=GGRS87 +units=m +no_defsPROJCS["GGRS87 / Greek Grid",GEOGCS["GGRS87",DATUM["Greek_Geodetic_Reference_System_1987",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[-199.87,74.79,246.62,0,0,0,0],AUTHORITY["EPSG","6121"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4121"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2100"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÖÖ†&5 =‚/‰iepsg5Lake / Maracaibo Grid M1+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=0 +y_0=-52684.972 +ellps=intl +units=m +no_defsPROJCS["Lake / Maracaibo Grid M1",GEOGCS["Lake",DATUM["Lake",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6249"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4249"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",10.16666666666667],PARAMETER["central_meridian",-71.60561777777777],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",-52684.972],AUTHORITY["EPSG","2101"],AXIS["X",EAST],AXIS["Y",NORTH]] ÒÒ†*6 7‚9‰mepsg6Lake / Maracaibo Grid+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=200000 +y_0=147315.028 +ellps=intl +units=m +no_defsPROJCS["Lake / Maracaibo Grid",GEOGCS["Lake",DATUM["Lake",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6249"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4249"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",10.16666666666667],PARAMETER["central_meridian",-71.60561777777777],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",147315.028],AUTHORITY["EPSG","2102"],AXIS["X",EAST],AXIS["Y",NORTH]] Ì̆07 =‚9‰sepsg7Lake / Maracaibo Grid M3+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=500000 +y_0=447315.028 +ellps=intl +units=m +no_defsPROJCS["Lake / Maracaibo Grid M3",GEOGCS["Lake",DATUM["Lake",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6249"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4249"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",10.16666666666667],PARAMETER["central_meridian",-71.60561777777777],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",447315.028],AUTHORITY["EPSG","2103"],AXIS["X",EAST],AXIS["Y",NORTH]] ÄĆ88 G‚7‰{epsg8Lake / Maracaibo La Rosa Grid+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=-17044 +y_0=-23139.97 +ellps=intl +units=m +no_defsPROJCS["Lake / Maracaibo La Rosa Grid",GEOGCS["Lake",DATUM["Lake",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6249"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4249"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",10.16666666666667],PARAMETER["central_meridian",-71.60561777777777],PARAMETER["scale_factor",1],PARAMETER["false_easting",-17044],PARAMETER["false_northing",-23139.97],AUTHORITY["EPSG","2104"],AXIS["X",EAST],AXIS["Y",NORTH]] ŒŒ†p9 A‚9Šoepsg9NZGD2000 / Mount Eden 2000+proj=tmerc +lat_0=-36.87972222222222 +lon_0=174.7641666666667 +k=0.9999 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Mount Eden 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-36.87972222222222],PARAMETER["central_meridian",174.7641666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2105"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] †l: G‚/Škepsg:NZGD2000 / Bay of Plenty 2000+proj=tmerc +lat_0=-37.76111111111111 +lon_0=176.4661111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Bay of Plenty 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-37.76111111111111],PARAMETER["central_meridian",176.4661111111111],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2106"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ””†h; C‚/Šgepsg;NZGD2000 / Poverty Bay 2000+proj=tmerc +lat_0=-38.62444444444444 +lon_0=177.8855555555556 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Poverty Bay 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-38.62444444444444],PARAMETER["central_meridian",177.8855555555556],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2107"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ––†f< A‚/Šeepsg ?‚ŠMepsg>NZGD2000 / Tuhirangi 2000+proj=tmerc +lat_0=-39.51222222222222 +lon_0=175.64 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Tuhirangi 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-39.51222222222222],PARAMETER["central_meridian",175.64],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2110"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] šš†b? =‚/Šaepsg?NZGD2000 / Wanganui 2000+proj=tmerc +lat_0=-40.24194444444444 +lon_0=175.4880555555555 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Wanganui 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-40.24194444444444],PARAMETER["central_meridian",175.4880555555555],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2111"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ˜˜†d@ ?‚/Šcepsg@NZGD2000 / Wairarapa 2000+proj=tmerc +lat_0=-40.92527777777777 +lon_0=175.6472222222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Wairarapa 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-40.92527777777777],PARAMETER["central_meridian",175.6472222222222],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2112"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ˜˜†dA A‚-ŠcepsgANZGD2000 / Wellington 2000+proj=tmerc +lat_0=-41.3011111111111 +lon_0=174.7763888888889 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Wellington 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.3011111111111],PARAMETER["central_meridian",174.7763888888889],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2113"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ””†hB C‚/ŠgepsgBNZGD2000 / Collingwood 2000+proj=tmerc +lat_0=-40.71472222222223 +lon_0=172.6719444444444 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Collingwood 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-40.71472222222223],PARAMETER["central_meridian",172.6719444444444],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2114"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] žž†^C 9‚/Š]epsgCNZGD2000 / Nelson 2000+proj=tmerc +lat_0=-41.27444444444444 +lon_0=173.2991666666667 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Nelson 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.27444444444444],PARAMETER["central_meridian",173.2991666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2115"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] œœ†`D ;‚/Š_epsgDNZGD2000 / Karamea 2000+proj=tmerc +lat_0=-41.28972222222222 +lon_0=172.1088888888889 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Karamea 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.28972222222222],PARAMETER["central_meridian",172.1088888888889],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2116"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] žž†^E 9‚/Š]epsgENZGD2000 / Buller 2000+proj=tmerc +lat_0=-41.81055555555555 +lon_0=171.5811111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Buller 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.81055555555555],PARAMETER["central_meridian",171.5811111111111],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2117"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ¢¢†ZF 5‚/ŠYepsgFNZGD2000 / Grey 2000+proj=tmerc +lat_0=-42.33361111111111 +lon_0=171.5497222222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Grey 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-42.33361111111111],PARAMETER["central_meridian",171.5497222222222],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2118"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ¶¶†FG 7‚ŠEepsgGNZGD2000 / Amuri 2000+proj=tmerc +lat_0=-42.68888888888888 +lon_0=173.01 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Amuri 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-42.68888888888888],PARAMETER["central_meridian",173.01],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2119"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ””†hH C‚/ŠgepsgHNZGD2000 / Marlborough 2000+proj=tmerc +lat_0=-41.54444444444444 +lon_0=173.8019444444444 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Marlborough 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.54444444444444],PARAMETER["central_meridian",173.8019444444444],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2120"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] šš†bI =‚/ŠaepsgINZGD2000 / Hokitika 2000+proj=tmerc +lat_0=-42.88611111111111 +lon_0=170.9797222222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Hokitika 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-42.88611111111111],PARAMETER["central_meridian",170.9797222222222],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2121"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ´´†HJ ;‚ŠGepsgJNZGD2000 / Okarito 2000+proj=tmerc +lat_0=-43.11 +lon_0=170.2608333333333 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Okarito 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-43.11],PARAMETER["central_meridian",170.2608333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2122"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ’’†jK E‚/ŠiepsgKNZGD2000 / Jacksons Bay 2000+proj=tmerc +lat_0=-43.97777777777778 +lon_0=168.6061111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Jacksons Bay 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-43.97777777777778],PARAMETER["central_meridian",168.6061111111111],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2123"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ŽŽ†nL I‚/ŠmepsgLNZGD2000 / Mount Pleasant 2000+proj=tmerc +lat_0=-43.59055555555556 +lon_0=172.7269444444445 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Mount Pleasant 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-43.59055555555556],PARAMETER["central_meridian",172.7269444444445],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2124"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] žž†^M 9‚/Š]epsgMNZGD2000 / Gawler 2000+proj=tmerc +lat_0=-43.74861111111111 +lon_0=171.3605555555555 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Gawler 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-43.74861111111111],PARAMETER["central_meridian",171.3605555555555],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2125"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] žž†^N 9‚/Š]epsgNNZGD2000 / Timaru 2000+proj=tmerc +lat_0=-44.40194444444445 +lon_0=171.0572222222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Timaru 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-44.40194444444445],PARAMETER["central_meridian",171.0572222222222],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2126"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ¼¼†@O C‚Š?epsgONZGD2000 / Lindis Peak 2000+proj=tmerc +lat_0=-44.735 +lon_0=169.4675 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Lindis Peak 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-44.735],PARAMETER["central_meridian",169.4675],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2127"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ŽŽ†nP I‚/ŠmepsgPNZGD2000 / Mount Nicholas 2000+proj=tmerc +lat_0=-45.13277777777778 +lon_0=168.3986111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Mount Nicholas 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-45.13277777777778],PARAMETER["central_meridian",168.3986111111111],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2128"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ––†fQ A‚/ŠeepsgQNZGD2000 / Mount York 2000+proj=tmerc +lat_0=-45.56361111111111 +lon_0=167.7386111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Mount York 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-45.56361111111111],PARAMETER["central_meridian",167.7386111111111],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2129"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ˆˆ†tR O‚/ŠsepsgRNZGD2000 / Observation Point 2000+proj=tmerc +lat_0=-45.81611111111111 +lon_0=170.6283333333333 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Observation Point 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-45.81611111111111],PARAMETER["central_meridian",170.6283333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2130"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ˜˜†dS E‚)ŠcepsgSNZGD2000 / North Taieri 2000+proj=tmerc +lat_0=-45.86138888888889 +lon_0=170.2825 +k=0.99996 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / North Taieri 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-45.86138888888889],PARAMETER["central_meridian",170.2825],PARAMETER["scale_factor",0.99996],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2131"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ºº†BT 7‚ŠAepsgTNZGD2000 / Bluff 2000+proj=tmerc +lat_0=-46.6 +lon_0=168.3427777777778 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Bluff 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-46.6],PARAMETER["central_meridian",168.3427777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2132"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] öö†U ;+Š/epsgUNZGD2000 / UTM zone 58S+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / UTM zone 58S",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2133"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] öö†V ;+Š/epsgVNZGD2000 / UTM zone 59S+proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / UTM zone 59S",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2134"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] öö†W ;+Š/epsgWNZGD2000 / UTM zone 60S+proj=utm +zone=60 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / UTM zone 60S",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2135"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¸¸†DX C‚GŠepsgXAccra / Ghana National Grid+proj=tmerc +lat_0=4.666666666666667 +lon_0=-1 +k=0.99975 +x_0=274319.7391633579 +y_0=0 +a=6378300 +b=6356751.689189189 +to_meter=0.3047997101815088 +no_defsPROJCS["Accra / Ghana National Grid",GEOGCS["Accra",DATUM["Accra",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],AUTHORITY["EPSG","6168"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4168"]],UNIT["Gold Coast foot",0.3047997101815088,AUTHORITY["EPSG","9094"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.666666666666667],PARAMETER["central_meridian",-1],PARAMETER["scale_factor",0.99975],PARAMETER["false_easting",900000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2136"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ,,…PY +g‰epsgYAccra / TM 1 NW+proj=tmerc +lat_0=0 +lon_0=-1 +k=0.9996 +x_0=500000 +y_0=0 +a=6378300 +b=6356751.689189189 +units=m +no_defsPROJCS["Accra / TM 1 NW",GEOGCS["Accra",DATUM["Accra",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],AUTHORITY["EPSG","6168"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4168"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-1],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2137"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÈȆ4Z GQŠYepsgZNAD27(CGQ77) / Quebec Lambert+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=clrk66 +units=m +no_defsPROJCS["NAD27(CGQ77) / Quebec Lambert",GEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",60],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",-68.5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2138"],AXIS["X",EAST],AXIS["Y",NORTH]]ofˆflrx~„Š–œ¢¨®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôúPQRSTUVWXY Z!["\#]$^%_&`'a(b)c*d+e,f-g.h/i0j1k2l3m4n5o6p7q8r9s:t;ux?y@zA{B|C}DF G H I JKLMNOPQRSTUVWX[\]^ _!`"a#b$c%d&e'f(g)h*i+j,k-l.m/n0o1p2q3r4s5t6u7v8w9x:y;z<{=|>}?~@A€BC‚DƒE„F…G†H‡Iofýflrx~„Š–œ¢¨®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôú‰KŠL‹MŒNOŽPQR‘S’T“U”V•W–X—Y˜Z›[œ\]ž^Ÿ_ `¢a£b¤c¥d¦e§f¨g©hªi«j¬k­l®m¯n°o±p²q³r´sµt¶u·v¸w¹xºy»z¼{½|¾}¿~ÀÁ‘‘ÑđőƑ Ç‘ ȑɑʑˑ̑͑ΑÏ‘БёґӑԑՑ֑בّؑڑ Û‘!Ü‘"Ý‘#Þ‘$ß‘%à‘&á‘'â‘(ã‘)ä‘+å‘,ç‘.è‘/é‘0ê‘1ë‘2ì‘3í‘4î‘5ð‘6ñ‘7ò‘8ó‘9ô‘:õ‘;ö‘<÷‘=ø‘>ù‘?ú‘@û‘Aü‘B ³³†I[ _uŠGepsg[NAD83(CSRS98) / SCoPQ zone 2 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / SCoPQ zone 2 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-55.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2139"],AXIS["X",EAST],AXIS["Y",NORTH]] ±±†K\ [uŠOepsg\NAD83(CSRS98) / MTM zone 3 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / MTM zone 3 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-58.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2140"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ±±†K] [uŠOepsg]NAD83(CSRS98) / MTM zone 4 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / MTM zone 4 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-61.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2141"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ±±†K^ [uŠOepsg^NAD83(CSRS98) / MTM zone 5 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / MTM zone 5 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-64.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2142"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ±±†K_ [uŠOepsg_NAD83(CSRS98) / MTM zone 6 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / MTM zone 6 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-67.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2143"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ±±†K` [uŠOepsg`NAD83(CSRS98) / MTM zone 7 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / MTM zone 7 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-70.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2144"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó RepsgR SepsgS TepsgT UepsgU VepsgV WepsgW XepsgX YepsgY ZepsgZ [epsg[ \epsg\ ]epsg] ^epsg^ _epsg_ `epsg` aepsga bepsgb cepsgc depsgd eepsge fepsgf gepsgg hepsgh iepsgi jepsgj kepsgk lepsgl mepsgm nepsgn oepsgo pepsgp qepsgq repsgr sepsgs tepsgt uepsgu vepsgv wepsgw xepsgx yepsgy zepsgz {epsg{ |epsg| }epsg} ~epsg~ epsg €epsg€ epsg ‚epsg‚ ƒepsgƒ „epsg„ ŒepsgŒ epsg ŽepsgŽ epsg epsg ‘epsg‘ ’epsg’ “epsg“ ±±†Ka [uŠOepsgaNAD83(CSRS98) / MTM zone 8 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / MTM zone 8 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-73.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2145"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ±±†Kb [uŠOepsgbNAD83(CSRS98) / MTM zone 9 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / MTM zone 9 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-76.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2146"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ¯¯†Mc ]uŠQepsgcNAD83(CSRS98) / MTM zone 10 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / MTM zone 10 (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-79.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2147"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ÔÔ†(d _Š]epsgdNAD83(CSRS98) / UTM zone 21N (deprecated)+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / UTM zone 21N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2148"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÔÔ†(e _Š]epsgeNAD83(CSRS98) / UTM zone 18N (deprecated)+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / UTM zone 18N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2149"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÔÔ†(f _Š]epsgfNAD83(CSRS98) / UTM zone 17N (deprecated)+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / UTM zone 17N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2150"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÓÓ†)g _Š_epsggNAD83(CSRS98) / UTM zone 13N (deprecated)+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / UTM zone 13N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2151"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÓÓ†)h _Š_epsghNAD83(CSRS98) / UTM zone 12N (deprecated)+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / UTM zone 12N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2152"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÓÓ†)i _Š_epsgiNAD83(CSRS98) / UTM zone 11N (deprecated)+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / UTM zone 11N (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2153"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¯¯†Mj 1‚ŠcepsgjRGF93 / Lambert-93+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 +no_defsPROJCS["RGF93 / Lambert-93",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",44],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",3],PARAMETER["false_easting",700000],PARAMETER["false_northing",6600000],AUTHORITY["EPSG","2154"],AXIS["X",EAST],AXIS["Y",NORTH]] ))‡Sk ‚k‹EepsgkAmerican Samoa 1962 / American Samoa Lambert (deprecated)+proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.26666666666667 +lon_0=170 +k_0=1 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +units=us-ft +no_defsPROJCS["American Samoa 1962 / American Samoa Lambert (deprecated)",GEOGCS["American Samoa 1962",DATUM["American_Samoa_1962",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-115,118,426,0,0,0,0],AUTHORITY["EPSG","6169"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4169"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",-14.26666666666667],PARAMETER["central_meridian",170],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2155"],AXIS["X",EAST],AXIS["Y",NORTH]] ýý…l[}Š1epsglNAD83(HARN) / UTM zone 59S (deprecated)+proj=utm +zone=59 +south +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 59S (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2156"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Çdž5m U‚ŠepsgmIRENET95 / Irish Transverse Mercator+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=0.99982 +x_0=600000 +y_0=750000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["IRENET95 / Irish Transverse Mercator",GEOGCS["IRENET95",DATUM["IRENET95",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6173"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4173"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",53.5],PARAMETER["central_meridian",-8],PARAMETER["scale_factor",0.99982],PARAMETER["false_easting",600000],PARAMETER["false_northing",750000],AUTHORITY["EPSG","2157"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …`n ;‰qepsgnIRENET95 / UTM zone 29N+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["IRENET95 / UTM zone 29N",GEOGCS["IRENET95",DATUM["IRENET95",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6173"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4173"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2158"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ““†io S‚=ŠKepsgoSierra Leone 1924 / New Colony Grid+proj=tmerc +lat_0=6.666666666666667 +lon_0=-12 +k=1 +x_0=152399.8550907544 +y_0=0 +a=6378300 +b=6356751.689189189 +to_meter=0.3047997101815088 +no_defsPROJCS["Sierra Leone 1924 / New Colony Grid",GEOGCS["Sierra Leone 1924",DATUM["Sierra_Leone_Colony_1924",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],AUTHORITY["EPSG","6174"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4174"]],UNIT["Gold Coast foot",0.3047997101815088,AUTHORITY["EPSG","9094"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",6.666666666666667],PARAMETER["central_meridian",-12],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2159"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] vv‡p [‚]Š]epsgpSierra Leone 1924 / New War Office Grid+proj=tmerc +lat_0=6.666666666666667 +lon_0=-12 +k=1 +x_0=243839.7681452071 +y_0=182879.8261089053 +a=6378300 +b=6356751.689189189 +to_meter=0.3047997101815088 +no_defsPROJCS["Sierra Leone 1924 / New War Office Grid",GEOGCS["Sierra Leone 1924",DATUM["Sierra_Leone_Colony_1924",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],AUTHORITY["EPSG","6174"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4174"]],UNIT["Gold Coast foot",0.3047997101815088,AUTHORITY["EPSG","9094"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",6.666666666666667],PARAMETER["central_meridian",-12],PARAMETER["scale_factor",1],PARAMETER["false_easting",800000],PARAMETER["false_northing",600000],AUTHORITY["EPSG","2160"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] çç†q M'Š?epsgqSierra Leone 1968 / UTM zone 28N+proj=utm +zone=28 +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +units=m +no_defsPROJCS["Sierra Leone 1968 / UTM zone 28N",GEOGCS["Sierra Leone 1968",DATUM["Sierra_Leone_1968",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-88,4,101,0,0,0,0],AUTHORITY["EPSG","6175"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4175"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2161"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] èè†r M'Š=epsgrSierra Leone 1968 / UTM zone 29N+proj=utm +zone=29 +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +units=m +no_defsPROJCS["Sierra Leone 1968 / UTM zone 29N",GEOGCS["Sierra Leone 1968",DATUM["Sierra_Leone_1968",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-88,4,101,0,0,0,0],AUTHORITY["EPSG","6175"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4175"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2162"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] &&ƒVs 9…aepsgsunnamed+proj=laea +lat_0=45 +lon_0=-100 +x_0=0 +y_0=0 +a=6370997 +b=6370997 +units=m +no_defsPROJCS["unnamed",GEOGCS["unnamed ellipse",DATUM["unknown",SPHEROID["unnamed",6370997,0]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",45],PARAMETER["longitude_of_center",-100],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","2163"]] ÙÙ†#t 9}ŠepsgtLocodjo 1965 / TM 5 NW+proj=tmerc +lat_0=0 +lon_0=-5 +k=0.9996 +x_0=500000 +y_0=0 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m +no_defsPROJCS["Locodjo 1965 / TM 5 NW",GEOGCS["Locodjo 1965",DATUM["Locodjo_1965",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-125,53,467,0,0,0,0],AUTHORITY["EPSG","6142"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4142"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-5],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2164"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Í͆/u 9‚ Š%epsguAbidjan 1987 / TM 5 NW+proj=tmerc +lat_0=0 +lon_0=-5 +k=0.9996 +x_0=500000 +y_0=0 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +units=m +no_defsPROJCS["Abidjan 1987 / TM 5 NW",GEOGCS["Abidjan 1987",DATUM["Abidjan_1987",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-124.76,53,466.79,0,0,0,0],AUTHORITY["EPSG","6143"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4143"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-5],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2165"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† v s7‰sepsgvPulkovo 1942(83) / Gauss Kruger zone 3 (deprecated)+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / Gauss Kruger zone 3 (deprecated)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2166"],AXIS["X",NORTH],AXIS["Y",EAST]] ðð† w s9‰uepsgwPulkovo 1942(83) / Gauss Kruger zone 4 (deprecated)+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / Gauss Kruger zone 4 (deprecated)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2167"],AXIS["X",NORTH],AXIS["Y",EAST]] ðð† x s9‰uepsgxPulkovo 1942(83) / Gauss Kruger zone 5 (deprecated)+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / Gauss Kruger zone 5 (deprecated)",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2168"],AXIS["X",NORTH],AXIS["Y",EAST]] ƒƒ†yy ;‚]ŠcepsgyLuxembourg 1930 / Gauss+proj=tmerc +lat_0=49.83333333333334 +lon_0=6.166666666666667 +k=1 +x_0=80000 +y_0=100000 +ellps=intl +towgs84=-193,13.7,-39.3,-0.41,-2.933,2.688,0.43 +units=m +no_defsPROJCS["Luxembourg 1930 / Gauss",GEOGCS["Luxembourg 1930",DATUM["Luxembourg_1930",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-193,13.7,-39.3,-0.41,-2.933,2.688,0.43],AUTHORITY["EPSG","6181"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4181"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",49.83333333333334],PARAMETER["central_meridian",6.166666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",80000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","2169"],AXIS["X",NORTH],AXIS["Y",EAST]] ··†Ez MmŠYepsgzMGI / Slovenia Grid (deprecated)+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Slovenia Grid (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2170"],AXIS["X",NORTH],AXIS["Y",EAST]] »»†A{ gyŠ+epsg{Pulkovo 1942(58) / Poland zone I (deprecated)+proj=sterea +lat_0=50.625 +lon_0=21.08333333333333 +k=0.9998 +x_0=4637000 +y_0=5647000 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Poland zone I (deprecated)",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",50.625],PARAMETER["central_meridian",21.08333333333333],PARAMETER["scale_factor",0.9998],PARAMETER["false_easting",4637000],PARAMETER["false_northing",5647000],AUTHORITY["EPSG","2171"],AXIS["X",NORTH],AXIS["Y",EAST]] ½½†?| O‚Š)epsg|Pulkovo 1942(58) / Poland zone II+proj=sterea +lat_0=53.00194444444445 +lon_0=21.50277777777778 +k=0.9998 +x_0=4603000 +y_0=5806000 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Poland zone II",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",53.00194444444445],PARAMETER["central_meridian",21.50277777777778],PARAMETER["scale_factor",0.9998],PARAMETER["false_easting",4603000],PARAMETER["false_northing",5806000],AUTHORITY["EPSG","2172"],AXIS["X",NORTH],AXIS["Y",EAST]] »»†A} Q‚Š+epsg}Pulkovo 1942(58) / Poland zone III+proj=sterea +lat_0=53.58333333333334 +lon_0=17.00833333333333 +k=0.9998 +x_0=3501000 +y_0=5999000 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Poland zone III",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",53.58333333333334],PARAMETER["central_meridian",17.00833333333333],PARAMETER["scale_factor",0.9998],PARAMETER["false_easting",3501000],PARAMETER["false_northing",5999000],AUTHORITY["EPSG","2173"],AXIS["X",NORTH],AXIS["Y",EAST]] ½½†?~ O‚Š)epsg~Pulkovo 1942(58) / Poland zone IV+proj=sterea +lat_0=51.67083333333333 +lon_0=16.67222222222222 +k=0.9998 +x_0=3703000 +y_0=5627000 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Poland zone IV",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",51.67083333333333],PARAMETER["central_meridian",16.67222222222222],PARAMETER["scale_factor",0.9998],PARAMETER["false_easting",3703000],PARAMETER["false_northing",5627000],AUTHORITY["EPSG","2174"],AXIS["X",NORTH],AXIS["Y",EAST]] ÞÞ† MqŠepsgPulkovo 1942(58) / Poland zone V+proj=tmerc +lat_0=0 +lon_0=18.95833333333333 +k=0.999983 +x_0=237000 +y_0=-4700000 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Poland zone V",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18.95833333333333],PARAMETER["scale_factor",0.999983],PARAMETER["false_easting",237000],PARAMETER["false_northing",-4700000],AUTHORITY["EPSG","2175"],AXIS["X",NORTH],AXIS["Y",EAST]] üü†‘ GG‰{epsg€ETRS89 / Poland CS2000 zone 5+proj=tmerc +lat_0=0 +lon_0=15 +k=0.999923 +x_0=5500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Poland CS2000 zone 5",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.999923],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2176"],AXIS["x",NORTH],AXIS["y",EAST]] üü†‘ GG‰{epsgETRS89 / Poland CS2000 zone 6+proj=tmerc +lat_0=0 +lon_0=18 +k=0.999923 +x_0=6500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Poland CS2000 zone 6",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",0.999923],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2177"],AXIS["x",NORTH],AXIS["y",EAST]] üü†‘ GG‰{epsg‚ETRS89 / Poland CS2000 zone 7+proj=tmerc +lat_0=0 +lon_0=21 +k=0.999923 +x_0=7500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Poland CS2000 zone 7",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.999923],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2178"],AXIS["x",NORTH],AXIS["y",EAST]] üü†‘ GG‰{epsgƒETRS89 / Poland CS2000 zone 8+proj=tmerc +lat_0=0 +lon_0=24 +k=0.999923 +x_0=8500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Poland CS2000 zone 8",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.999923],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2179"],AXIS["x",NORTH],AXIS["y",EAST]] …v‘ 5O‰qepsg„ETRS89 / Poland CS92+proj=tmerc +lat_0=0 +lon_0=19 +k=0.9993 +x_0=500000 +y_0=-5300000 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Poland CS92",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",19],PARAMETER["scale_factor",0.9993],PARAMETER["false_easting",500000],PARAMETER["false_northing",-5300000],AUTHORITY["EPSG","2180"],AXIS["x",NORTH],AXIS["y",EAST]]   …q‘ WmŠ)epsgŒAzores Occidental 1939 / UTM zone 25N+proj=utm +zone=25 +ellps=intl +units=m +no_defsPROJCS["Azores Occidental 1939 / UTM zone 25N",GEOGCS["Azores Occidental 1939",DATUM["Azores_Occidental_Islands_1939",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6182"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4182"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2188"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÚÚ†"‘ Q)ŠSepsgAzores Central 1948 / UTM zone 26N+proj=utm +zone=26 +ellps=intl +towgs84=-104,167,-38,0,0,0,0 +units=m +no_defsPROJCS["Azores Central 1948 / UTM zone 26N",GEOGCS["Azores Central 1948",DATUM["Azores_Central_Islands_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-104,167,-38,0,0,0,0],AUTHORITY["EPSG","6183"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4183"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2189"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ØØ†$‘ S'ŠWepsgŽAzores Oriental 1940 / UTM zone 26N+proj=utm +zone=26 +ellps=intl +towgs84=-203,141,53,0,0,0,0 +units=m +no_defsPROJCS["Azores Oriental 1940 / UTM zone 26N",GEOGCS["Azores Oriental 1940",DATUM["Azores_Oriental_Islands_1940",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-203,141,53,0,0,0,0],AUTHORITY["EPSG","6184"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4184"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2190"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""…Z‘]m‰uepsgMadeira 1936 / UTM zone 28N (deprecated)+proj=utm +zone=28 +ellps=intl +units=m +no_defsPROJCS["Madeira 1936 / UTM zone 28N (deprecated)",GEOGCS["Madeira 1936",DATUM["Madeira_1936",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6185"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4185"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2191"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ØØ†$‘ ?‚ŠepsgED50 / France EuroLambert+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.337229166666667 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +ellps=intl +units=m +no_defsPROJCS["ED50 / France EuroLambert",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",46.8],PARAMETER["central_meridian",2.337229166666667],PARAMETER["scale_factor",0.99987742],PARAMETER["false_easting",600000],PARAMETER["false_northing",2200000],AUTHORITY["EPSG","2192"],AXIS["X",EAST],AXIS["Y",NORTH]] šš†b‘ k‚Šaepsg‘NZGD2000 / New Zealand Transverse Mercator 2000+proj=tmerc +lat_0=0 +lon_0=173 +k=0.9996 +x_0=1600000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / New Zealand Transverse Mercator 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",173],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1600000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2193"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ''‡U‘ ‚m‹Gepsg’American Samoa 1962 / American Samoa Lambert (deprecated)+proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.26666666666667 +lon_0=-170 +k_0=1 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +units=us-ft +no_defsPROJCS["American Samoa 1962 / American Samoa Lambert (deprecated)",GEOGCS["American Samoa 1962",DATUM["American_Samoa_1962",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-115,118,426,0,0,0,0],AUTHORITY["EPSG","6169"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4169"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",-14.26666666666667],PARAMETER["central_meridian",-170],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2194"],AXIS["X",EAST],AXIS["Y",NORTH]] …c‘?{Šepsg“NAD83(HARN) / UTM zone 2S+proj=utm +zone=2 +south +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 2S",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2195"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ýý…‘ ;EŠepsg”ETRS89 / Kp2000 Jutland+proj=tmerc +lat_0=0 +lon_0=9.5 +k=0.99995 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Kp2000 Jutland",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9.5],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2196"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÿÿ…}‘ ;CŠepsg•ETRS89 / Kp2000 Zealand+proj=tmerc +lat_0=0 +lon_0=12 +k=0.99995 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Kp2000 Zealand",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2197"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …s‘ =7‰{epsg–ETRS89 / Kp2000 Bornholm+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Kp2000 Bornholm",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",900000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2198"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ûû†‘ m9‰eepsg—Albanian 1987 / Gauss Kruger zone 4 (deprecated)+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Albanian 1987 / Gauss Kruger zone 4 (deprecated)",GEOGCS["Albanian 1987",DATUM["Albanian_1987",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6191"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4191"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2199"],AXIS["X",NORTH],AXIS["Y",EAST]] ¤¤†X‘ c‚ŠSepsg˜ATS77 / New Brunswick Stereographic (ATS77)+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=300000 +y_0=800000 +a=6378135 +b=6356750.304921594 +units=m +no_defsPROJCS["ATS77 / New Brunswick Stereographic (ATS77)",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-66.5],PARAMETER["scale_factor",0.999912],PARAMETER["false_easting",300000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2200"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] …k‘ 7Š epsg™REGVEN / UTM zone 18N+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["REGVEN / UTM zone 18N",GEOGCS["REGVEN",DATUM["Red_Geodesica_Venezolana",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6189"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4189"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2201"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …k‘ 7Š epsgšREGVEN / UTM zone 19N+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["REGVEN / UTM zone 19N",GEOGCS["REGVEN",DATUM["Red_Geodesica_Venezolana",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6189"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4189"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2202"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …k‘ 7Š epsg›REGVEN / UTM zone 20N+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["REGVEN / UTM zone 20N",GEOGCS["REGVEN",DATUM["Red_Geodesica_Venezolana",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6189"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4189"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2203"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY‡#‘ /‚q‹/epsgœNAD27 / Tennessee+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.66666666666666 +lon_0=-86 +x_0=609601.2192024384 +y_0=30480.06096012192 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Tennessee",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.25],PARAMETER["standard_parallel_2",36.41666666666666],PARAMETER["latitude_of_origin",34.66666666666666],PARAMETER["central_meridian",-86],PARAMETER["false_easting",2000000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","2204"],AXIS["X",EAST],AXIS["Y",NORTH]] ””†h‘ 9‚5ŠkepsgNAD83 / Kentucky North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Kentucky North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",38.96666666666667],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-84.25],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2205"],AXIS["X",EAST],AXIS["Y",NORTH]] …d‘ S7‰GepsgžED50 / 3-degree Gauss-Kruger zone 9+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / 3-degree Gauss-Kruger zone 9",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",9500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2206"],AXIS["X",NORTH],AXIS["Y",EAST]] …h‘ U9‰KepsgŸED50 / 3-degree Gauss-Kruger zone 10+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / 3-degree Gauss-Kruger zone 10",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",10500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2207"],AXIS["X",NORTH],AXIS["Y",EAST]] …h‘ U9‰Kepsg ED50 / 3-degree Gauss-Kruger zone 11+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / 3-degree Gauss-Kruger zone 11",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",11500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2208"],AXIS["X",NORTH],AXIS["Y",EAST]] …h‘! U9‰Kepsg¡ED50 / 3-degree Gauss-Kruger zone 12+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / 3-degree Gauss-Kruger zone 12",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",36],PARAMETER["scale_factor",1],PARAMETER["false_easting",12500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2209"],AXIS["X",NORTH],AXIS["Y",EAST]] …h‘" U9‰Kepsg¢ED50 / 3-degree Gauss-Kruger zone 13+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / 3-degree Gauss-Kruger zone 13",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",13500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2210"],AXIS["X",NORTH],AXIS["Y",EAST]] …h‘# U9‰Kepsg£ED50 / 3-degree Gauss-Kruger zone 14+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / 3-degree Gauss-Kruger zone 14",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",42],PARAMETER["scale_factor",1],PARAMETER["false_easting",14500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2211"],AXIS["X",NORTH],AXIS["Y",EAST]] …h‘$ U9‰Kepsg¤ED50 / 3-degree Gauss-Kruger zone 15+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / 3-degree Gauss-Kruger zone 15",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",15500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2212"],AXIS["X",NORTH],AXIS["Y",EAST]]   …o‘% /A‰wepsg¥ETRS89 / TM 30 NE+proj=tmerc +lat_0=0 +lon_0=30 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / TM 30 NE",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2213"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ªª†R‘& S‚ŠAepsg¦Douala 1948 / AOF west (deprecated)+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_defsPROJCS["Douala 1948 / AOF west (deprecated)",GEOGCS["Douala 1948",DATUM["Douala_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-206.1,-174.7,-87.7,0,0,0,0],AUTHORITY["EPSG","6192"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4192"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",10.5],PARAMETER["scale_factor",0.999],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","2214"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ý݆‘' AMŠ9epsg§Manoca 1962 / UTM zone 32N+proj=utm +zone=32 +a=6378249.2 +b=6356515 +towgs84=-70.9,-151.8,-41.4,0,0,0,0 +units=m +no_defsPROJCS["Manoca 1962 / UTM zone 32N",GEOGCS["Manoca 1962",DATUM["Manoca_1962",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-70.9,-151.8,-41.4,0,0,0,0],AUTHORITY["EPSG","6193"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4193"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2215"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ??…=‘(Am‰Wepsg¨Qornoq 1927 / UTM zone 22N+proj=utm +zone=22 +ellps=intl +units=m +no_defsPROJCS["Qornoq 1927 / UTM zone 22N",GEOGCS["Qornoq 1927",DATUM["Qornoq_1927",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6194"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4194"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2216"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ??…=‘)Am‰Wepsg©Qornoq 1927 / UTM zone 23N+proj=utm +zone=23 +ellps=intl +units=m +no_defsPROJCS["Qornoq 1927 / UTM zone 23N",GEOGCS["Qornoq 1927",DATUM["Qornoq_1927",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6194"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4194"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2217"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …e‘+ 5Š epsg«ATS77 / UTM zone 19N+proj=utm +zone=19 +a=6378135 +b=6356750.304921594 +units=m +no_defsPROJCS["ATS77 / UTM zone 19N",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2219"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …e‘, 5Š epsg¬ATS77 / UTM zone 20N+proj=utm +zone=20 +a=6378135 +b=6356750.304921594 +units=m +no_defsPROJCS["ATS77 / UTM zone 20N",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2220"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó •epsg• –epsg– —epsg— ˜epsg˜ ™epsg™ šepsgš ›epsg› œepsgœ epsg žepsgž ŸepsgŸ  epsg  ¡epsg¡ ¢epsg¢ £epsg£ ¤epsg¤ ¥epsg¥ ¦epsg¦ §epsg§ ¨epsg¨ ©epsg© «epsg« ¬epsg¬ ®epsg® ¯epsg¯ °epsg° ±epsg± ²epsg² ³epsg³ ´epsg´ µepsgµ ¶epsg¶ ·epsg· ¸epsg¸ ¹epsg¹ ºepsgº »epsg» ¼epsg¼ ½epsg½ ¾epsg¾ ¿epsg¿ ÀepsgÀ ÁepsgÁ Âepsg Ãepsgà ÄepsgÄ ÅepsgÅ ÆepsgÆ ÇepsgÇ ÈepsgÈ ÉepsgÉ ÊepsgÊ ËepsgË ÌepsgÌ ÍepsgÍ ÎepsgÎ ÏepsgÏ ÐepsgÐ ÑepsgÑ è膑. ?‰sepsg®NAD83 / Arizona East (ft)+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Arizona East (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-110.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2222"],AXIS["X",EAST],AXIS["Y",NORTH]] â↑/ E‰yepsg¯NAD83 / Arizona Central (ft)+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Arizona Central (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-111.9166666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2223"],AXIS["X",EAST],AXIS["Y",NORTH]] ôô†‘0 ?s‰gepsg°NAD83 / Arizona West (ft)+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Arizona West (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-113.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2224"],AXIS["X",EAST],AXIS["Y",NORTH]] BB‡:‘1 M‚g‹Iepsg±NAD83 / California zone 1 (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / California zone 1 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.66666666666666],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-122],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2225"],AXIS["X",EAST],AXIS["Y",NORTH]] $$‡X‘2 Mƒ‹gepsg²NAD83 / California zone 2 (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / California zone 2 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.83333333333334],PARAMETER["standard_parallel_2",38.33333333333334],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-122],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2226"],AXIS["X",EAST],AXIS["Y",NORTH]] ::‡B‘3 M‚o‹Qepsg³NAD83 / California zone 3 (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / California zone 3 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.06666666666667],PARAMETER["latitude_of_origin",36.5],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2227"],AXIS["X",EAST],AXIS["Y",NORTH]] ZZ‡"‘4 M‚O‹1epsg´NAD83 / California zone 4 (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / California zone 4 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.25],PARAMETER["standard_parallel_2",36],PARAMETER["latitude_of_origin",35.33333333333334],PARAMETER["central_meridian",-119],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2228"],AXIS["X",EAST],AXIS["Y",NORTH]] >>‡>‘5 M‚k‹MepsgµNAD83 / California zone 5 (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / California zone 5 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.46666666666667],PARAMETER["standard_parallel_2",34.03333333333333],PARAMETER["latitude_of_origin",33.5],PARAMETER["central_meridian",-118],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2229"],AXIS["X",EAST],AXIS["Y",NORTH]]333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / California zone 6 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.88333333333333],PARAMETER["standard_parallel_2",32.78333333333333],PARAMETER["latitude_of_origin",32.16666666666666],PARAMETER["central_meridian",-116.25],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2230"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘‡^‘6 Mƒ ‹mepsg¶NAD83 / California zone 6 (ftUS)+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333ï ,,‡P‘7 Gƒ ‹Uepsg·NAD83 / Colorado North (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Colorado North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.78333333333333],PARAMETER["standard_parallel_2",39.71666666666667],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","2231"],AXIS["X",EAST],AXIS["Y",NORTH]] XX‡$‘8 K‚]‹)epsg¸NAD83 / Colorado Central (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Colorado Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.75],PARAMETER["standard_parallel_2",38.45],PARAMETER["latitude_of_origin",37.83333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","2232"],AXIS["X",EAST],AXIS["Y",NORTH]] ,,‡P‘9 Gƒ ‹Uepsg¹NAD83 / Colorado South (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Colorado South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.23333333333333],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","2233"],AXIS["X",EAST],AXIS["Y",NORTH]] MM‡/‘: A‚s‹3epsgºNAD83 / Connecticut (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Connecticut (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.86666666666667],PARAMETER["standard_parallel_2",41.2],PARAMETER["latitude_of_origin",40.83333333333334],PARAMETER["central_meridian",-72.75],PARAMETER["false_easting",1000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2234"],AXIS["X",EAST],AXIS["Y",NORTH]] ÀÀ†<‘; ;‚Š'epsg»NAD83 / Delaware (ftUS)+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Delaware (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-75.41666666666667],PARAMETER["scale_factor",0.999995],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2235"],AXIS["X",EAST],AXIS["Y",NORTH]] ²²†J‘< C‚%Š5epsg¼NAD83 / Florida East (ftUS)+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Florida East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2236"],AXIS["X",EAST],AXIS["Y",NORTH]] ²²†J‘= C‚%Š5epsg½NAD83 / Florida West (ftUS)+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Florida West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-82],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2237"],AXIS["X",EAST],AXIS["Y",NORTH]] ‡‡†u‘> E‚‹epsg¾NAD83 / Florida North (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Florida North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.75],PARAMETER["standard_parallel_2",29.58333333333333],PARAMETER["latitude_of_origin",29],PARAMETER["central_meridian",-84.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2238"],AXIS["X",EAST],AXIS["Y",NORTH]] ¼¼†@‘? C‚Š+epsg¿NAD83 / Georgia East (ftUS)+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Georgia East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-82.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2239"],AXIS["X",EAST],AXIS["Y",NORTH]] »»†A‘@ C‚Š-epsgÀNAD83 / Georgia West (ftUS)+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Georgia West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-84.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",2296583.333],PARAMETER["false_northing",0],AUTHORITY["EPSG","2240"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘†k‘A ?‚QŠOepsgÁNAD83 / Idaho East (ftUS)+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Idaho East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-112.1666666666667],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2241"],AXIS["X",EAST],AXIS["Y",NORTH]] ¦¦†V‘B E‚5Š;epsgÂNAD83 / Idaho Central (ftUS)+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Idaho Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2242"],AXIS["X",EAST],AXIS["Y",NORTH]] ­­†O‘C ?‚-Š;epsgÃNAD83 / Idaho West (ftUS)+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Idaho West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-115.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",2624666.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2243"],AXIS["X",EAST],AXIS["Y",NORTH]] †}‘D ]‚IŠ]epsgÄNAD83 / Indiana East (ftUS) (deprecated)+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249364.9987299975 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Indiana East (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-85.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",328083.333],PARAMETER["false_northing",818125],AUTHORITY["EPSG","2244"],AXIS["X",EAST],AXIS["Y",NORTH]] †o‘E ]‚3ŠWepsgÅNAD83 / Indiana West (ftUS) (deprecated)+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249364.9987299975 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Indiana West (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-87.08333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",2952750],PARAMETER["false_northing",818125],AUTHORITY["EPSG","2245"],AXIS["X",EAST],AXIS["Y",NORTH]] XX‡$‘F G‚S‹7epsgÆNAD83 / Kentucky North (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Kentucky North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",38.96666666666667],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-84.25],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2246"],AXIS["X",EAST],AXIS["Y",NORTH]] $$‡X‘G Gƒ ‹eepsgÇNAD83 / Kentucky South (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Kentucky South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.93333333333333],PARAMETER["standard_parallel_2",36.73333333333333],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2247"],AXIS["X",EAST],AXIS["Y",NORTH]] ‚‚†z‘H ;‚5‹ epsgÈNAD83 / Maryland (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Maryland (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.45],PARAMETER["standard_parallel_2",38.3],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-77],PARAMETER["false_easting",1312333.333],PARAMETER["false_northing",0],AUTHORITY["EPSG","2248"],AXIS["X",EAST],AXIS["Y",NORTH]] DD‡8‘I W‚W‹KepsgÉNAD83 / Massachusetts Mainland (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Massachusetts Mainland (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.68333333333333],PARAMETER["standard_parallel_2",41.71666666666667],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-71.5],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",2460625],AUTHORITY["EPSG","2249"],AXIS["X",EAST],AXIS["Y",NORTH]] RR‡*‘J S‚M‹=epsgÊNAD83 / Massachusetts Island (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Massachusetts Island (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.48333333333333],PARAMETER["standard_parallel_2",41.28333333333333],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-70.5],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2250"],AXIS["X",EAST],AXIS["Y",NORTH]] aa‡‘K C‚a‹epsgËNAD83 / Michigan North (ft)+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 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Michigan North (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.08333333333334],PARAMETER["standard_parallel_2",45.48333333333333],PARAMETER["latitude_of_origin",44.78333333333333],PARAMETER["central_meridian",-87],PARAMETER["false_easting",26246719.16],PARAMETER["false_northing",0],AUTHORITY["EPSG","2251"],AXIS["X",EAST],AXIS["Y",NORTH]] YY‡#‘L G‚e‹#epsgÌNAD83 / Michigan Central (ft)+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 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Michigan Central (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.7],PARAMETER["standard_parallel_2",44.18333333333333],PARAMETER["latitude_of_origin",43.31666666666667],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",19685039.37],PARAMETER["false_northing",0],AUTHORITY["EPSG","2252"],AXIS["X",EAST],AXIS["Y",NORTH]] zz‡‘M C‚E‹epsgÍNAD83 / Michigan South (ft)+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 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Michigan South (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.66666666666666],PARAMETER["standard_parallel_2",42.1],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",13123359.58],PARAMETER["false_northing",0],AUTHORITY["EPSG","2253"],AXIS["X",EAST],AXIS["Y",NORTH]] §§†U‘N K‚!ŠGepsgÎNAD83 / Mississippi East (ftUS)+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Mississippi East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-88.83333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","2254"],AXIS["X",EAST],AXIS["Y",NORTH]] ­­†O‘O K‚!Š;epsgÏNAD83 / Mississippi West (ftUS)+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Mississippi West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-90.33333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",2296583.333],PARAMETER["false_northing",0],AUTHORITY["EPSG","2255"],AXIS["X",EAST],AXIS["Y",NORTH]] ÀÀ†<‘P 5‚ Š?epsgÐNAD83 / Montana (ft)+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 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Montana (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",45],PARAMETER["latitude_of_origin",44.25],PARAMETER["central_meridian",-109.5],PARAMETER["false_easting",1968503.937],PARAMETER["false_northing",0],AUTHORITY["EPSG","2256"],AXIS["X",EAST],AXIS["Y",NORTH]] ¹¹†C‘Q I‚Š7epsgÑNAD83 / New Mexico East (ftUS)+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / New Mexico East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-104.3333333333333],PARAMETER["scale_factor",0.999909091],PARAMETER["false_easting",541337.5],PARAMETER["false_northing",0],AUTHORITY["EPSG","2257"],AXIS["X",EAST],AXIS["Y",NORTH]] Åņ7‘R O‚Š#epsgÒNAD83 / New Mexico Central (ftUS)+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / New Mexico Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-106.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2258"],AXIS["X",EAST],AXIS["Y",NORTH]] ««†Q‘S I‚%Š=epsgÓNAD83 / New Mexico West (ftUS)+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / New Mexico West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-107.8333333333333],PARAMETER["scale_factor",0.999916667],PARAMETER["false_easting",2723091.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2259"],AXIS["X",EAST],AXIS["Y",NORTH]] Åņ7‘T E‚ Š)epsgÔNAD83 / New York East (ftUS)+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / New York East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",492125],PARAMETER["false_northing",0],AUTHORITY["EPSG","2260"],AXIS["X",EAST],AXIS["Y",NORTH]] §§†U‘U K‚!ŠGepsgÕNAD83 / New York Central (ftUS)+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / New York Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-76.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",820208.3330000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","2261"],AXIS["X",EAST],AXIS["Y",NORTH]] ³³†I‘V E‚!Š5epsgÖNAD83 / New York West (ftUS)+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / New York West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-78.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",1148291.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2262"],AXIS["X",EAST],AXIS["Y",NORTH]] 22‡J‘W S‚g‹cepsg×NAD83 / New York Long Island (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / New York Long Island (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.03333333333333],PARAMETER["standard_parallel_2",40.66666666666666],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-74],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","2263"],AXIS["X",EAST],AXIS["Y",NORTH]] ``‡‘X G‚O‹+epsgØNAD83 / North Carolina (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / North Carolina (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.16666666666666],PARAMETER["standard_parallel_2",34.33333333333334],PARAMETER["latitude_of_origin",33.75],PARAMETER["central_meridian",-79],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2264"],AXIS["X",EAST],AXIS["Y",NORTH]] tt‡‘Y K‚C‹ epsgÙNAD83 / North Dakota North (ft)+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 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / North Dakota North (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.43333333333333],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",1968503.937],PARAMETER["false_northing",0],AUTHORITY["EPSG","2265"],AXIS["X",EAST],AXIS["Y",NORTH]] VV‡&‘Z K‚a‹)epsgÚNAD83 / North Dakota South (ft)+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 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / North Dakota South (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.48333333333333],PARAMETER["standard_parallel_2",46.18333333333333],PARAMETER["latitude_of_origin",45.66666666666666],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",1968503.937],PARAMETER["false_northing",0],AUTHORITY["EPSG","2266"],AXIS["X",EAST],AXIS["Y",NORTH]] qq‡ ‘[ G‚3‹%epsgÛNAD83 / Oklahoma North (ftUS)+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Oklahoma North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.76666666666667],PARAMETER["standard_parallel_2",35.56666666666667],PARAMETER["latitude_of_origin",35],PARAMETER["central_meridian",-98],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2267"],AXIS["X",EAST],AXIS["Y",NORTH]] SS‡)‘\ G‚Q‹CepsgÜNAD83 / Oklahoma South (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Oklahoma South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.23333333333333],PARAMETER["standard_parallel_2",33.93333333333333],PARAMETER["latitude_of_origin",33.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2268"],AXIS["X",EAST],AXIS["Y",NORTH]] †}‘] ?‚EŠepsgÝNAD83 / Oregon North (ft)+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 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Oregon North (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46],PARAMETER["standard_parallel_2",44.33333333333334],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",8202099.738],PARAMETER["false_northing",0],AUTHORITY["EPSG","2269"],AXIS["X",EAST],AXIS["Y",NORTH]] †}‘^ ?‚EŠepsgÞNAD83 / Oregon South (ft)+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 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Oregon South (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44],PARAMETER["standard_parallel_2",42.33333333333334],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",4921259.843],PARAMETER["false_northing",0],AUTHORITY["EPSG","2270"],AXIS["X",EAST],AXIS["Y",NORTH]] ]]‡‘_ O‚?‹9epsgßNAD83 / Pennsylvania North (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Pennsylvania North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.95],PARAMETER["standard_parallel_2",40.88333333333333],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2271"],AXIS["X",EAST],AXIS["Y",NORTH]] EE‡7‘` O‚W‹QepsgàNAD83 / Pennsylvania South (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Pennsylvania South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.96666666666667],PARAMETER["standard_parallel_2",39.93333333333333],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2272"],AXIS["X",EAST],AXIS["Y",NORTH]] ŠŠ†r‘a C‚1ŠyepsgáNAD83 / South Carolina (ft)+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 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / South Carolina (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.83333333333334],PARAMETER["standard_parallel_2",32.5],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2273"],AXIS["X",EAST],AXIS["Y",NORTH]] uu‡‘b =‚9‹!epsgâNAD83 / Tennessee (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Tennessee (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.41666666666666],PARAMETER["standard_parallel_2",35.25],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-86],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2274"],AXIS["X",EAST],AXIS["Y",NORTH]]ofqflrx~„Š–œ¢¨®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôúþ‘Dÿ‘E‘F‘G‘H‘I‘J‘K‘L‘M‘N ‘O ‘P ‘Q ‘R ‘S‘T‘U‘V‘W‘X‘Y‘Z‘[‘\‘]‘^‘_‘`‘a‘b‘c‘d!‘e"‘f#‘g$‘h%‘i'‘j(‘k)‘l*‘m+‘n,‘o-‘p.‘q/‘r0‘s1‘t2‘v3‘w4’5’6’7’8’9’ :’ ;’ <’ =’ >’?’@’A’B’C’D’E’F’G’H’I’J’K’L’M’N’O’P’ Q’!R’"S’#T’$U’%V’&W’'X’(Y’)Z’*[’+\’,]’-^’._’/`’0a’1b’2d’3e’4f’5g’6h’7i’8j’9k’:l’;m’<n’=o’>p’? aa‡‘c A‚W‹'epsgãNAD83 / Texas North (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Texas North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.18333333333333],PARAMETER["standard_parallel_2",34.65],PARAMETER["latitude_of_origin",34],PARAMETER["central_meridian",-101.5],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",3280833.333],AUTHORITY["EPSG","2275"],AXIS["X",EAST],AXIS["Y",NORTH]] --‡O‘d Q‚q‹eepsgäNAD83 / Texas North Central (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Texas North Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.96666666666667],PARAMETER["standard_parallel_2",32.13333333333333],PARAMETER["latitude_of_origin",31.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",6561666.667],AUTHORITY["EPSG","2276"],AXIS["X",EAST],AXIS["Y",NORTH]]+lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Texas Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",31.88333333333333],PARAMETER["standard_parallel_2",30.11666666666667],PARAMETER["latitude_of_origin",29.66666666666667],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",2296583.333],PARAMETER["false_northing",9842500.000000002],AUTHORITY["EPSG","2277"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘‡j‘e EƒŒepsgåNAD83 / Texas Central (ftUS)+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667  00‡L‘f Q‚m‹cepsgæNAD83 / Texas South Central (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Texas South Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.28333333333333],PARAMETER["standard_parallel_2",28.38333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",1968500],PARAMETER["false_northing",13123333.333],AUTHORITY["EPSG","2278"],AXIS["X",EAST],AXIS["Y",NORTH]] ''‡U‘g Aƒ‹kepsgçNAD83 / Texas South (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Texas South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.83333333333333],PARAMETER["standard_parallel_2",26.16666666666667],PARAMETER["latitude_of_origin",25.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",16404166.667],AUTHORITY["EPSG","2279"],AXIS["X",EAST],AXIS["Y",NORTH]] LL‡0‘h ;ƒ‹-epsgèNAD83 / Utah North (ft)+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=999999.9999960001 +ellps=GRS80 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Utah North (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.71666666666667],PARAMETER["latitude_of_origin",40.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640419.948],PARAMETER["false_northing",3280839.895],AUTHORITY["EPSG","2280"],AXIS["X",EAST],AXIS["Y",NORTH]] dd‡‘i ?‚c‹epsgéNAD83 / Utah Central (ft)+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=1999999.999992 +ellps=GRS80 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Utah Central (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.65],PARAMETER["standard_parallel_2",39.01666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640419.948],PARAMETER["false_northing",6561679.79],AUTHORITY["EPSG","2281"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó ÓepsgÓ ÔepsgÔ ÕepsgÕ ÖepsgÖ ×epsg× ØepsgØ ÙepsgÙ ÚepsgÚ ÛepsgÛ ÜepsgÜ ÝepsgÝ ÞepsgÞ ßepsgß àepsgà áepsgá âepsgâ ãepsgã äepsgä åepsgå æepsgæ çepsgç èepsgè éepsgé êepsgê ëepsgë ìepsgì íepsgí îepsgî ïepsgï ðepsgð ñepsgñ òepsgò óepsgó ôepsgô öepsgö ÷epsg÷  epsg   epsg   epsg   epsg   epsg   epsg  epsg  epsg  epsg  epsg  epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg  gg‡‘j ;‚c‹epsgêNAD83 / Utah South (ft)+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0=2999999.999988 +ellps=GRS80 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Utah South (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.35],PARAMETER["standard_parallel_2",37.21666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640419.948],PARAMETER["false_northing",9842519.685],AUTHORITY["EPSG","2282"],AXIS["X",EAST],AXIS["Y",NORTH]] CC‡9‘k G‚i‹KepsgëNAD83 / Virginia North (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Virginia North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.2],PARAMETER["standard_parallel_2",38.03333333333333],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",11482916.667],PARAMETER["false_northing",6561666.667],AUTHORITY["EPSG","2283"],AXIS["X",EAST],AXIS["Y",NORTH]] ''‡U‘l Gƒ‹eepsgìNAD83 / Virginia South (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Virginia South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",36.76666666666667],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",11482916.667],PARAMETER["false_northing",3280833.333],AUTHORITY["EPSG","2284"],AXIS["X",EAST],AXIS["Y",NORTH]] ZZ‡"‘m K‚M‹5epsgíNAD83 / Washington North (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Washington North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.5],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-120.8333333333333],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2285"],AXIS["X",EAST],AXIS["Y",NORTH]] ::‡B‘n K‚m‹UepsgîNAD83 / Washington South (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Washington South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.33333333333334],PARAMETER["standard_parallel_2",45.83333333333334],PARAMETER["latitude_of_origin",45.33333333333334],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2286"],AXIS["X",EAST],AXIS["Y",NORTH]] QQ‡+‘o I‚Q‹EepsgïNAD83 / Wisconsin North (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Wisconsin North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46.76666666666667],PARAMETER["standard_parallel_2",45.56666666666667],PARAMETER["latitude_of_origin",45.16666666666666],PARAMETER["central_meridian",-90],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2287"],AXIS["X",EAST],AXIS["Y",NORTH]] †}‘p M‚‹epsgðNAD83 / Wisconsin Central (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Wisconsin Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.5],PARAMETER["standard_parallel_2",44.25],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-90],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2288"],AXIS["X",EAST],AXIS["Y",NORTH]] oo‡ ‘q I‚3‹'epsgñNAD83 / Wisconsin South (ftUS)+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Wisconsin South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.06666666666667],PARAMETER["standard_parallel_2",42.73333333333333],PARAMETER["latitude_of_origin",42],PARAMETER["central_meridian",-90],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2289"],AXIS["X",EAST],AXIS["Y",NORTH]] ££†Y‘r m‚ŠMepsgòATS77 / Prince Edward Isl. Stereographic (ATS77)+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=700000 +y_0=400000 +a=6378135 +b=6356750.304921594 +units=m +no_defsPROJCS["ATS77 / Prince Edward Isl. Stereographic (ATS77)",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",47.25],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.999912],PARAMETER["false_easting",700000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","2290"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] xx‡‘s ‚ŠwepsgóNAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated)+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=400000 +y_0=800000 +a=6378135 +b=6356750.304921594 +units=m +no_defsPROJCS["NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated)",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",47.25],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.999912],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2291"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] __‡‘t ‚ ‹!epsgôNAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated)+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated)",GEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",47.25],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.999912],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2292"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ÓÓ†)‘v IoŠ#epsgöATS77 / MTM Nova Scotia zone 4+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=4500000 +y_0=0 +a=6378135 +b=6356750.304921594 +units=m +no_defsPROJCS["ATS77 / MTM Nova Scotia zone 4",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-61.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2294"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÓÓ†)‘w IoŠ#epsg÷ATS77 / MTM Nova Scotia zone 5+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=5500000 +y_0=0 +a=6378135 +b=6356750.304921594 +units=m +no_defsPROJCS["ATS77 / MTM Nova Scotia zone 5",GEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-64.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2295"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …g’ 3S‰Qepsg Batavia / TM 109 SE+proj=tmerc +lat_0=0 +lon_0=109 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=bessel +units=m +no_defsPROJCS["Batavia / TM 109 SE",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",109],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2308"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …j’ 1k‰Aepsg WGS 84 / TM 116 SE+proj=tmerc +lat_0=0 +lon_0=116 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / TM 116 SE",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",116],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2309"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …j’ 1k‰Aepsg WGS 84 / TM 132 SE+proj=tmerc +lat_0=0 +lon_0=132 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / TM 132 SE",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2310"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((…T’ -Y‰+epsg WGS 84 / TM 6 NE+proj=tmerc +lat_0=0 +lon_0=6 +k=0.9996 +x_0=500000 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / TM 6 NE",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",6],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2311"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK…1’7q‰Eepsg Garoua / UTM zone 33N+proj=utm +zone=33 +ellps=clrk80 +units=m +no_defsPROJCS["Garoua / UTM zone 33N",GEOGCS["Garoua",DATUM["Garoua",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6197"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4197"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2312"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…9’ ;q‰Qepsg Kousseri / UTM zone 33N+proj=utm +zone=33 +ellps=clrk80 +units=m +no_defsPROJCS["Kousseri / UTM zone 33N",GEOGCS["Kousseri",DATUM["Kousseri",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6198"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4198"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2313"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] €€†|’ W‚oŠ;epsg Trinidad 1903 / Trinidad Grid (ftCla)+proj=cass +lat_0=10.44166666666667 +lon_0=-61.33333333333334 +x_0=86501.46392052001 +y_0=65379.0134283 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.3047972654 +no_defsPROJCS["Trinidad 1903 / Trinidad Grid (ftCla)",GEOGCS["Trinidad 1903",DATUM["Trinidad_1903",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6302"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4302"]],UNIT["Clarke's foot",0.3047972654,AUTHORITY["EPSG","9005"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",10.44166666666667],PARAMETER["central_meridian",-61.33333333333334],PARAMETER["false_easting",283800],PARAMETER["false_northing",214500],AUTHORITY["EPSG","2314"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…[’ I{‰}epsg Campo Inchauspe / UTM zone 19S+proj=utm +zone=19 +south +ellps=intl +units=m +no_defsPROJCS["Campo Inchauspe / UTM zone 19S",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2315"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…[’ I{‰}epsg Campo Inchauspe / UTM zone 20S+proj=utm +zone=20 +south +ellps=intl +units=m +no_defsPROJCS["Campo Inchauspe / UTM zone 20S",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2316"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÕÕ†'’ 7[ŠEepsg PSAD56 / ICN Regional+proj=lcc +lat_1=9 +lat_2=3 +lat_0=6 +lon_0=-66 +x_0=1000000 +y_0=1000000 +ellps=intl +units=m +no_defsPROJCS["PSAD56 / ICN Regional",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",9],PARAMETER["standard_parallel_2",3],PARAMETER["latitude_of_origin",6],PARAMETER["central_meridian",-66],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","2317"],AXIS["X",EAST],AXIS["Y",NORTH]] ÖÖ†&’ CSŠ?epsg Ain el Abd / Aramco Lambert+proj=lcc +lat_1=17 +lat_2=33 +lat_0=25.08951 +lon_0=48 +x_0=0 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Ain el Abd / Aramco Lambert",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",17],PARAMETER["standard_parallel_2",33],PARAMETER["latitude_of_origin",25.08951],PARAMETER["central_meridian",48],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2318"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ…2’ #5‰epsg ED50 / TM27+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / TM27",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2319"],AXIS["X",NORTH],AXIS["Y",EAST]] JJ…2’ #5‰epsg ED50 / TM30+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / TM30",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2320"],AXIS["X",NORTH],AXIS["Y",EAST]] JJ…2’ #5‰epsg ED50 / TM33+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / TM33",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2321"],AXIS["X",NORTH],AXIS["Y",EAST]] JJ…2’ #5‰epsg ED50 / TM36+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / TM36",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",36],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2322"],AXIS["X",NORTH],AXIS["Y",EAST]] JJ…2’ #5‰epsg ED50 / TM39+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / TM39",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2323"],AXIS["X",NORTH],AXIS["Y",EAST]] JJ…2’ #5‰epsg ED50 / TM42+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / TM42",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",42],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2324"],AXIS["X",NORTH],AXIS["Y",EAST]] JJ…2’ #5‰epsg ED50 / TM45+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / TM45",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2325"],AXIS["X",NORTH],AXIS["Y",EAST]] 88‡D’ Aƒ‹9epsg Hong Kong 1980 Grid System+proj=tmerc +lat_0=22.31213333333334 +lon_0=114.1785555555556 +k=1 +x_0=836694.05 +y_0=819069.8 +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +units=m +no_defsPROJCS["Hong Kong 1980 Grid System",GEOGCS["Hong Kong 1980",DATUM["Hong_Kong_1980",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425],AUTHORITY["EPSG","6611"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4611"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",22.31213333333334],PARAMETER["central_meridian",114.1785555555556],PARAMETER["scale_factor",1],PARAMETER["false_easting",836694.05],PARAMETER["false_northing",819069.8],AUTHORITY["EPSG","2326"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] …j’ Ma‰/epsg Xian 1980 / Gauss-Kruger zone 13+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 13",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",13500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2327"],AXIS["X",NORTH],AXIS["Y",EAST]] …j’ Ma‰/epsg Xian 1980 / Gauss-Kruger zone 14+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 14",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",14500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2328"],AXIS["X",NORTH],AXIS["Y",EAST]] …j’ Ma‰/epsg Xian 1980 / Gauss-Kruger zone 15+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 15",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",15500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2329"],AXIS["X",NORTH],AXIS["Y",EAST]] …j’ Ma‰/epsg Xian 1980 / Gauss-Kruger zone 16+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 16",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",16500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2330"],AXIS["X",NORTH],AXIS["Y",EAST]] …j’ Ma‰/epsg Xian 1980 / Gauss-Kruger zone 17+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 17",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",17500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2331"],AXIS["X",NORTH],AXIS["Y",EAST]] …l’ Mc‰1epsg Xian 1980 / Gauss-Kruger zone 18+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 18",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",18500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2332"],AXIS["X",NORTH],AXIS["Y",EAST]] …l’ Mc‰1epsg Xian 1980 / Gauss-Kruger zone 19+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 19",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",19500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2333"],AXIS["X",NORTH],AXIS["Y",EAST]] …l’ Mc‰1epsg Xian 1980 / Gauss-Kruger zone 20+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 20",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",20500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2334"],AXIS["X",NORTH],AXIS["Y",EAST]] …l’ Mc‰1epsg Xian 1980 / Gauss-Kruger zone 21+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 21",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",21500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2335"],AXIS["X",NORTH],AXIS["Y",EAST]] …l’ Mc‰1epsg Xian 1980 / Gauss-Kruger zone 22+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 22",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",22500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2336"],AXIS["X",NORTH],AXIS["Y",EAST]] …l’! Mc‰1epsg !Xian 1980 / Gauss-Kruger zone 23+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger zone 23",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",23500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2337"],AXIS["X",NORTH],AXIS["Y",EAST]] …d’" K]‰)epsg "Xian 1980 / Gauss-Kruger CM 75E+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 75E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2338"],AXIS["X",NORTH],AXIS["Y",EAST]] …d’# K]‰)epsg #Xian 1980 / Gauss-Kruger CM 81E+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 81E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2339"],AXIS["X",NORTH],AXIS["Y",EAST]] …d’$ K]‰)epsg $Xian 1980 / Gauss-Kruger CM 87E+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 87E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2340"],AXIS["X",NORTH],AXIS["Y",EAST]] …d’% K]‰)epsg %Xian 1980 / Gauss-Kruger CM 93E+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 93E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2341"],AXIS["X",NORTH],AXIS["Y",EAST]] …d’& K]‰)epsg &Xian 1980 / Gauss-Kruger CM 99E+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 99E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2342"],AXIS["X",NORTH],AXIS["Y",EAST]] …h’' M_‰-epsg 'Xian 1980 / Gauss-Kruger CM 105E+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 105E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2343"],AXIS["X",NORTH],AXIS["Y",EAST]] …h’( M_‰-epsg (Xian 1980 / Gauss-Kruger CM 111E+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 111E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2344"],AXIS["X",NORTH],AXIS["Y",EAST]] …h’) M_‰-epsg )Xian 1980 / Gauss-Kruger CM 117E+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 117E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2345"],AXIS["X",NORTH],AXIS["Y",EAST]] …h’* M_‰-epsg *Xian 1980 / Gauss-Kruger CM 123E+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 123E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2346"],AXIS["X",NORTH],AXIS["Y",EAST]] …h’+ M_‰-epsg +Xian 1980 / Gauss-Kruger CM 129E+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 129E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2347"],AXIS["X",NORTH],AXIS["Y",EAST]] …h’, M_‰-epsg ,Xian 1980 / Gauss-Kruger CM 135E+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / Gauss-Kruger CM 135E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2348"],AXIS["X",NORTH],AXIS["Y",EAST]] …|’- _a‰Aepsg -Xian 1980 / 3-degree Gauss-Kruger zone 25+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 25",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",25500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2349"],AXIS["X",NORTH],AXIS["Y",EAST]] …|’. _a‰Aepsg .Xian 1980 / 3-degree Gauss-Kruger zone 26+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 26",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",26500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2350"],AXIS["X",NORTH],AXIS["Y",EAST]] …|’/ _a‰Aepsg /Xian 1980 / 3-degree Gauss-Kruger zone 27+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 27",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",27500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2351"],AXIS["X",NORTH],AXIS["Y",EAST]] …|’0 _a‰Aepsg 0Xian 1980 / 3-degree Gauss-Kruger zone 28+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 28",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",28500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2352"],AXIS["X",NORTH],AXIS["Y",EAST]] …|’1 _a‰Aepsg 1Xian 1980 / 3-degree Gauss-Kruger zone 29+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 29",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",29500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2353"],AXIS["X",NORTH],AXIS["Y",EAST]] …|’2 _a‰Aepsg 2Xian 1980 / 3-degree Gauss-Kruger zone 30+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 30",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",30500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2354"],AXIS["X",NORTH],AXIS["Y",EAST]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  epsg   epsg   epsg   epsg   epsg  !epsg !  "epsg "  #epsg #  $epsg $  %epsg %  &epsg &  'epsg '  (epsg (  )epsg )  *epsg *  +epsg +  ,epsg ,  -epsg -  .epsg .  /epsg /  0epsg 0  1epsg 1  2epsg 2  3epsg 3  4epsg 4  5epsg 5  6epsg 6  7epsg 7  8epsg 8  9epsg 9  :epsg :  ;epsg ;  epsg >  ?epsg ?  @epsg @  Aepsg A  Bepsg B  Cepsg C  Depsg D  Eepsg E  Fepsg F  Gepsg G  Hepsg H  Iepsg I  Jepsg J  Kepsg K  Lepsg L  Mepsg M  Nepsg N  Oepsg O  Pepsg P  Qepsg Q  Repsg R  Sepsg S  Tepsg T  Uepsg U  Vepsg V …|’3 _a‰Aepsg 3Xian 1980 / 3-degree Gauss-Kruger zone 31+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 31",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",31500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2355"],AXIS["X",NORTH],AXIS["Y",EAST]] …|’4 _a‰Aepsg 4Xian 1980 / 3-degree Gauss-Kruger zone 32+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 32",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",32500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2356"],AXIS["X",NORTH],AXIS["Y",EAST]] …|’5 _a‰Aepsg 5Xian 1980 / 3-degree Gauss-Kruger zone 33+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 33",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",33500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2357"],AXIS["X",NORTH],AXIS["Y",EAST]] þþ…~’6 _c‰Cepsg 6Xian 1980 / 3-degree Gauss-Kruger zone 34+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 34",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",34500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2358"],AXIS["X",NORTH],AXIS["Y",EAST]] þþ…~’7 _c‰Cepsg 7Xian 1980 / 3-degree Gauss-Kruger zone 35+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 35",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",35500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2359"],AXIS["X",NORTH],AXIS["Y",EAST]] þþ…~’8 _c‰Cepsg 8Xian 1980 / 3-degree Gauss-Kruger zone 36+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 36",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",36500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2360"],AXIS["X",NORTH],AXIS["Y",EAST]] þþ…~’9 _c‰Cepsg 9Xian 1980 / 3-degree Gauss-Kruger zone 37+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 37",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",37500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2361"],AXIS["X",NORTH],AXIS["Y",EAST]] þþ…~’: _c‰Cepsg :Xian 1980 / 3-degree Gauss-Kruger zone 38+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 38",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",38500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2362"],AXIS["X",NORTH],AXIS["Y",EAST]] þþ…~’; _c‰Cepsg ;Xian 1980 / 3-degree Gauss-Kruger zone 39+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 39",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",39500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2363"],AXIS["X",NORTH],AXIS["Y",EAST]] þþ…~’< _c‰Cepsg _c‰Cepsg >Xian 1980 / 3-degree Gauss-Kruger zone 42+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 42",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",42500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2366"],AXIS["X",NORTH],AXIS["Y",EAST]] þþ…~’? _c‰Cepsg ?Xian 1980 / 3-degree Gauss-Kruger zone 43+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 43",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",43500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2367"],AXIS["X",NORTH],AXIS["Y",EAST]] þþ…~’@ _c‰Cepsg @Xian 1980 / 3-degree Gauss-Kruger zone 44+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 44",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",1],PARAMETER["false_easting",44500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2368"],AXIS["X",NORTH],AXIS["Y",EAST]] þþ…~’A _c‰Cepsg AXian 1980 / 3-degree Gauss-Kruger zone 45+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger zone 45",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",45500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2369"],AXIS["X",NORTH],AXIS["Y",EAST]] …v’B ]]‰;epsg BXian 1980 / 3-degree Gauss-Kruger CM 75E+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 75E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2370"],AXIS["X",NORTH],AXIS["Y",EAST]] …v’C ]]‰;epsg CXian 1980 / 3-degree Gauss-Kruger CM 78E+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 78E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2371"],AXIS["X",NORTH],AXIS["Y",EAST]] …v’D ]]‰;epsg DXian 1980 / 3-degree Gauss-Kruger CM 81E+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 81E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2372"],AXIS["X",NORTH],AXIS["Y",EAST]] …v’E ]]‰;epsg EXian 1980 / 3-degree Gauss-Kruger CM 84E+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 84E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2373"],AXIS["X",NORTH],AXIS["Y",EAST]] …v’F ]]‰;epsg FXian 1980 / 3-degree Gauss-Kruger CM 87E+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 87E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2374"],AXIS["X",NORTH],AXIS["Y",EAST]] …v’G ]]‰;epsg GXian 1980 / 3-degree Gauss-Kruger CM 90E+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 90E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2375"],AXIS["X",NORTH],AXIS["Y",EAST]] …v’H ]]‰;epsg HXian 1980 / 3-degree Gauss-Kruger CM 93E+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 93E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2376"],AXIS["X",NORTH],AXIS["Y",EAST]] …v’I ]]‰;epsg IXian 1980 / 3-degree Gauss-Kruger CM 96E+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 96E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2377"],AXIS["X",NORTH],AXIS["Y",EAST]] …v’J ]]‰;epsg JXian 1980 / 3-degree Gauss-Kruger CM 99E+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 99E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2378"],AXIS["X",NORTH],AXIS["Y",EAST]] …z’K __‰?epsg KXian 1980 / 3-degree Gauss-Kruger CM 102E+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 102E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2379"],AXIS["X",NORTH],AXIS["Y",EAST]] …z’L __‰?epsg LXian 1980 / 3-degree Gauss-Kruger CM 105E+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 105E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2380"],AXIS["X",NORTH],AXIS["Y",EAST]] …z’M __‰?epsg MXian 1980 / 3-degree Gauss-Kruger CM 108E+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 108E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2381"],AXIS["X",NORTH],AXIS["Y",EAST]] …z’N __‰?epsg NXian 1980 / 3-degree Gauss-Kruger CM 111E+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 111E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2382"],AXIS["X",NORTH],AXIS["Y",EAST]] …z’O __‰?epsg OXian 1980 / 3-degree Gauss-Kruger CM 114E+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 114E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2383"],AXIS["X",NORTH],AXIS["Y",EAST]] …z’P __‰?epsg PXian 1980 / 3-degree Gauss-Kruger CM 117E+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 117E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2384"],AXIS["X",NORTH],AXIS["Y",EAST]] …z’Q __‰?epsg QXian 1980 / 3-degree Gauss-Kruger CM 120E+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 120E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",120],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2385"],AXIS["X",NORTH],AXIS["Y",EAST]] …z’R __‰?epsg RXian 1980 / 3-degree Gauss-Kruger CM 123E+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 123E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2386"],AXIS["X",NORTH],AXIS["Y",EAST]] …z’S __‰?epsg SXian 1980 / 3-degree Gauss-Kruger CM 126E+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 126E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2387"],AXIS["X",NORTH],AXIS["Y",EAST]] …z’T __‰?epsg TXian 1980 / 3-degree Gauss-Kruger CM 129E+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 129E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2388"],AXIS["X",NORTH],AXIS["Y",EAST]] …z’U __‰?epsg UXian 1980 / 3-degree Gauss-Kruger CM 132E+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 132E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2389"],AXIS["X",NORTH],AXIS["Y",EAST]] …z’V __‰?epsg VXian 1980 / 3-degree Gauss-Kruger CM 135E+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defsPROJCS["Xian 1980 / 3-degree Gauss-Kruger CM 135E",GEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2390"],AXIS["X",NORTH],AXIS["Y",EAST]] &&…V’W 57‰Iepsg WKKJ / Finland zone 1+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["KKJ / Finland zone 1",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2391"],AXIS["X",NORTH],AXIS["Y",EAST]] &&…V’X 57‰Iepsg XKKJ / Finland zone 2+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["KKJ / Finland zone 2",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2392"],AXIS["X",NORTH],AXIS["Y",EAST]] …|’Y [7‰oepsg YKKJ / Finland Uniform Coordinate System+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=3500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["KKJ / Finland Uniform Coordinate System",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2393"],AXIS["X",NORTH],AXIS["Y",EAST]] &&…V’Z 57‰Iepsg ZKKJ / Finland zone 4+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=4500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["KKJ / Finland zone 4",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2394"],AXIS["X",NORTH],AXIS["Y",EAST]] ã㆒[ Os‰yepsg [South Yemen / Gauss-Kruger zone 8+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defsPROJCS["South Yemen / Gauss-Kruger zone 8",GEOGCS["South Yemen",DATUM["South_Yemen",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY["EPSG","6164"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4164"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2395"],AXIS["X",NORTH],AXIS["Y",EAST]] ã㆒\ Os‰yepsg \South Yemen / Gauss-Kruger zone 9+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defsPROJCS["South Yemen / Gauss-Kruger zone 9",GEOGCS["South Yemen",DATUM["South_Yemen",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY["EPSG","6164"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4164"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",9500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2396"],AXIS["X",NORTH],AXIS["Y",EAST]] úú†’] k7‰kepsg ]Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2397"],AXIS["X",NORTH],AXIS["Y",EAST]] øø†’^ k9‰mepsg ^Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2398"],AXIS["X",NORTH],AXIS["Y",EAST]] øø†’_ k9‰mepsg _Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2399"],AXIS["X",NORTH],AXIS["Y",EAST]] ûû†’` CY‰oepsg `RT90 2.5 gon W (deprecated)+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT90 2.5 gon W (deprecated)",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15.80827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2400"],AXIS["X",NORTH],AXIS["Y",EAST]] …y’a e;‰[epsg aBeijing 1954 / 3-degree Gauss-Kruger zone 25+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 25",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",25500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2401"],AXIS["X",NORTH],AXIS["Y",EAST]] …y’b e;‰[epsg bBeijing 1954 / 3-degree Gauss-Kruger zone 26+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 26",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",26500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2402"],AXIS["X",NORTH],AXIS["Y",EAST]] …y’c e;‰[epsg cBeijing 1954 / 3-degree Gauss-Kruger zone 27+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 27",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",27500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2403"],AXIS["X",NORTH],AXIS["Y",EAST]] …y’d e;‰[epsg dBeijing 1954 / 3-degree Gauss-Kruger zone 28+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 28",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",28500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2404"],AXIS["X",NORTH],AXIS["Y",EAST]] …y’e e;‰[epsg eBeijing 1954 / 3-degree Gauss-Kruger zone 29+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 29",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",29500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2405"],AXIS["X",NORTH],AXIS["Y",EAST]] …y’f e;‰[epsg fBeijing 1954 / 3-degree Gauss-Kruger zone 30+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 30",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",30500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2406"],AXIS["X",NORTH],AXIS["Y",EAST]] …y’g e;‰[epsg gBeijing 1954 / 3-degree Gauss-Kruger zone 31+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 31",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",31500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2407"],AXIS["X",NORTH],AXIS["Y",EAST]] …y’h e;‰[epsg hBeijing 1954 / 3-degree Gauss-Kruger zone 32+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 32",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",32500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2408"],AXIS["X",NORTH],AXIS["Y",EAST]] …y’i e;‰[epsg iBeijing 1954 / 3-degree Gauss-Kruger zone 33+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 33",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",33500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2409"],AXIS["X",NORTH],AXIS["Y",EAST]] …{’j e=‰]epsg jBeijing 1954 / 3-degree Gauss-Kruger zone 34+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 34",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",34500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2410"],AXIS["X",NORTH],AXIS["Y",EAST]] …{’k e=‰]epsg kBeijing 1954 / 3-degree Gauss-Kruger zone 35+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 35",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",35500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2411"],AXIS["X",NORTH],AXIS["Y",EAST]] …{’l e=‰]epsg lBeijing 1954 / 3-degree Gauss-Kruger zone 36+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 36",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",36500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2412"],AXIS["X",NORTH],AXIS["Y",EAST]] …{’m e=‰]epsg mBeijing 1954 / 3-degree Gauss-Kruger zone 37+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 37",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",37500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2413"],AXIS["X",NORTH],AXIS["Y",EAST]] …{’n e=‰]epsg nBeijing 1954 / 3-degree Gauss-Kruger zone 38+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 38",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",38500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2414"],AXIS["X",NORTH],AXIS["Y",EAST]]ofäflrx~„Š–œ¢¨®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôúr’As’Bt’Cu’Dv’Ew’Fx’Gy’Hz’I{’J|’K}’L~’M’N€’O’P‚’Qƒ’R„’S…’T†’U‡’Vˆ’W‰’XŠ’Y‹’ZŒ’[’\Ž’]’^’_‘’`’’a“’b”’c•’d–’e—’f˜’g™’hš’i›’jœ’k’lž’mŸ’n¢’o£’p¤’q¥’r¦’s§’t¨’u©’vª’w«’x¬’y­’z®’{¯’|°’}±’~²’³“´“µ“¶“·“¸“¹“º“»“¼“ ½“ ¾“ ¿“ À“ Á““ÓēœƓǓȓɓʓ˓͓̓ΓÏ“Гѓғӓ Ô“!Õ“"Ö“#ד$Ø“%Ù“&Ú“'Û“(Ü“)Ý“*ß“+à“,á“-â“.ã“/ ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  Xepsg X  Yepsg Y  Zepsg Z  [epsg [  \epsg \  ]epsg ]  ^epsg ^  _epsg _  `epsg `  aepsg a  bepsg b  cepsg c  depsg d  eepsg e  fepsg f  gepsg g  hepsg h  iepsg i  jepsg j  kepsg k  lepsg l  mepsg m  nepsg n  oepsg o  pepsg p  qepsg q  repsg r  sepsg s  tepsg t  uepsg u  vepsg v  wepsg w  xepsg x  yepsg y  zepsg z  {epsg {  |epsg |  }epsg }  ~epsg ~  epsg   €epsg €  epsg  ‚epsg ‚  ƒepsg ƒ  „epsg „  …epsg …  †epsg †  ‡epsg ‡  ˆepsg ˆ  ‰epsg ‰  Šepsg Š  ‹epsg ‹  Œepsg Œ  epsg  Žepsg Ž  epsg  epsg  ‘epsg ‘  ’epsg ’ …{’o e=‰]epsg oBeijing 1954 / 3-degree Gauss-Kruger zone 39+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 39",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",39500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2415"],AXIS["X",NORTH],AXIS["Y",EAST]] …{’p e=‰]epsg pBeijing 1954 / 3-degree Gauss-Kruger zone 40+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 40",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",120],PARAMETER["scale_factor",1],PARAMETER["false_easting",40500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2416"],AXIS["X",NORTH],AXIS["Y",EAST]] …{’q e=‰]epsg qBeijing 1954 / 3-degree Gauss-Kruger zone 41+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 41",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",41500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2417"],AXIS["X",NORTH],AXIS["Y",EAST]] …{’r e=‰]epsg rBeijing 1954 / 3-degree Gauss-Kruger zone 42+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 42",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",42500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2418"],AXIS["X",NORTH],AXIS["Y",EAST]] …{’s e=‰]epsg sBeijing 1954 / 3-degree Gauss-Kruger zone 43+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 43",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",43500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2419"],AXIS["X",NORTH],AXIS["Y",EAST]] …{’t e=‰]epsg tBeijing 1954 / 3-degree Gauss-Kruger zone 44+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 44",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",1],PARAMETER["false_easting",44500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2420"],AXIS["X",NORTH],AXIS["Y",EAST]] …{’u e=‰]epsg uBeijing 1954 / 3-degree Gauss-Kruger zone 45+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger zone 45",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",45500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2421"],AXIS["X",NORTH],AXIS["Y",EAST]]   …s’v c7‰Uepsg vBeijing 1954 / 3-degree Gauss-Kruger CM 75E+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 75E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2422"],AXIS["X",NORTH],AXIS["Y",EAST]]   …s’w c7‰Uepsg wBeijing 1954 / 3-degree Gauss-Kruger CM 78E+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 78E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2423"],AXIS["X",NORTH],AXIS["Y",EAST]]   …s’x c7‰Uepsg xBeijing 1954 / 3-degree Gauss-Kruger CM 81E+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 81E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2424"],AXIS["X",NORTH],AXIS["Y",EAST]]   …s’y c7‰Uepsg yBeijing 1954 / 3-degree Gauss-Kruger CM 84E+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 84E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2425"],AXIS["X",NORTH],AXIS["Y",EAST]]   …s’z c7‰Uepsg zBeijing 1954 / 3-degree Gauss-Kruger CM 87E+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 87E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2426"],AXIS["X",NORTH],AXIS["Y",EAST]]   …s’{ c7‰Uepsg {Beijing 1954 / 3-degree Gauss-Kruger CM 90E+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 90E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2427"],AXIS["X",NORTH],AXIS["Y",EAST]]   …s’| c7‰Uepsg |Beijing 1954 / 3-degree Gauss-Kruger CM 93E+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 93E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2428"],AXIS["X",NORTH],AXIS["Y",EAST]]   …s’} c7‰Uepsg }Beijing 1954 / 3-degree Gauss-Kruger CM 96E+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 96E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2429"],AXIS["X",NORTH],AXIS["Y",EAST]]   …s’~ c7‰Uepsg ~Beijing 1954 / 3-degree Gauss-Kruger CM 99E+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 99E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2430"],AXIS["X",NORTH],AXIS["Y",EAST]] …w’ e9‰Yepsg Beijing 1954 / 3-degree Gauss-Kruger CM 102E+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 102E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2431"],AXIS["X",NORTH],AXIS["Y",EAST]] …w“ e9‰Yepsg €Beijing 1954 / 3-degree Gauss-Kruger CM 105E+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 105E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2432"],AXIS["X",NORTH],AXIS["Y",EAST]] …w“ e9‰Yepsg Beijing 1954 / 3-degree Gauss-Kruger CM 108E+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 108E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2433"],AXIS["X",NORTH],AXIS["Y",EAST]] …w“ e9‰Yepsg ‚Beijing 1954 / 3-degree Gauss-Kruger CM 111E+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 111E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2434"],AXIS["X",NORTH],AXIS["Y",EAST]] …w“ e9‰Yepsg ƒBeijing 1954 / 3-degree Gauss-Kruger CM 114E+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 114E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2435"],AXIS["X",NORTH],AXIS["Y",EAST]] …w“ e9‰Yepsg „Beijing 1954 / 3-degree Gauss-Kruger CM 117E+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 117E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2436"],AXIS["X",NORTH],AXIS["Y",EAST]] …w“ e9‰Yepsg …Beijing 1954 / 3-degree Gauss-Kruger CM 120E+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 120E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",120],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2437"],AXIS["X",NORTH],AXIS["Y",EAST]] …w“ e9‰Yepsg †Beijing 1954 / 3-degree Gauss-Kruger CM 123E+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 123E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2438"],AXIS["X",NORTH],AXIS["Y",EAST]] …w“ e9‰Yepsg ‡Beijing 1954 / 3-degree Gauss-Kruger CM 126E+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 126E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2439"],AXIS["X",NORTH],AXIS["Y",EAST]] …w“ e9‰Yepsg ˆBeijing 1954 / 3-degree Gauss-Kruger CM 129E+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 129E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2440"],AXIS["X",NORTH],AXIS["Y",EAST]] …w“ e9‰Yepsg ‰Beijing 1954 / 3-degree Gauss-Kruger CM 132E+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 132E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2441"],AXIS["X",NORTH],AXIS["Y",EAST]] …w“ e9‰Yepsg ŠBeijing 1954 / 3-degree Gauss-Kruger CM 135E+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / 3-degree Gauss-Kruger CM 135E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2442"],AXIS["X",NORTH],AXIS["Y",EAST]] Ñц+“ YmŠepsg ‹JGD2000 / Japan Plane Rectangular CS I+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS I",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",33],PARAMETER["central_meridian",129.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2443"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)“ [iŠepsg ŒJGD2000 / Japan Plane Rectangular CS II+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS II",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",33],PARAMETER["central_meridian",131],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2444"],AXIS["X",NORTH],AXIS["Y",EAST]] µµ†G“ ]‚Š5epsg JGD2000 / Japan Plane Rectangular CS III+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS III",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",132.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2445"],AXIS["X",NORTH],AXIS["Y",EAST]] Ïφ-“ [mŠepsg ŽJGD2000 / Japan Plane Rectangular CS IV+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS IV",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",33],PARAMETER["central_meridian",133.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2446"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C“ Y‚Š1epsg JGD2000 / Japan Plane Rectangular CS V+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS V",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",134.3333333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2447"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)“ [iŠepsg JGD2000 / Japan Plane Rectangular CS VI+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS VI",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",136],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2448"],AXIS["X",NORTH],AXIS["Y",EAST]] µµ†G“ ]‚Š5epsg ‘JGD2000 / Japan Plane Rectangular CS VII+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS VII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",137.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2449"],AXIS["X",NORTH],AXIS["Y",EAST]] ˈ1“ _mŠepsg ’JGD2000 / Japan Plane Rectangular CS VIII+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS VIII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",138.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2450"],AXIS["X",NORTH],AXIS["Y",EAST]] ··†E“ [‚Š3epsg “JGD2000 / Japan Plane Rectangular CS IX+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS IX",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",139.8333333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2451"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C“ Y‚Š1epsg ”JGD2000 / Japan Plane Rectangular CS X+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS X",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",140.8333333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2452"],AXIS["X",NORTH],AXIS["Y",EAST]] Í͆/“ [oŠepsg •JGD2000 / Japan Plane Rectangular CS XI+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS XI",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",140.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2453"],AXIS["X",NORTH],AXIS["Y",EAST]] ˈ1“ ]oŠepsg –JGD2000 / Japan Plane Rectangular CS XII+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS XII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",142.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2454"],AXIS["X",NORTH],AXIS["Y",EAST]] ÉɆ3“ _oŠ!epsg —JGD2000 / Japan Plane Rectangular CS XIII+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS XIII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",144.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2455"],AXIS["X",NORTH],AXIS["Y",EAST]] Ñц+“ ]iŠepsg ˜JGD2000 / Japan Plane Rectangular CS XIV+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS XIV",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",142],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2456"],AXIS["X",NORTH],AXIS["Y",EAST]] Ïφ-“ [mŠepsg ™JGD2000 / Japan Plane Rectangular CS XV+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS XV",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",127.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2457"],AXIS["X",NORTH],AXIS["Y",EAST]] Ñц+“ ]iŠepsg šJGD2000 / Japan Plane Rectangular CS XVI+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS XVI",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",124],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2458"],AXIS["X",NORTH],AXIS["Y",EAST]] Ïφ-“ _iŠepsg ›JGD2000 / Japan Plane Rectangular CS XVII+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS XVII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",131],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2459"],AXIS["X",NORTH],AXIS["Y",EAST]] Í͆/“ aiŠepsg œJGD2000 / Japan Plane Rectangular CS XVIII+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS XVIII",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",20],PARAMETER["central_meridian",136],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2460"],AXIS["X",NORTH],AXIS["Y",EAST]] Ñц+“ ]iŠepsg JGD2000 / Japan Plane Rectangular CS XIX+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / Japan Plane Rectangular CS XIX",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",154],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2461"],AXIS["X",NORTH],AXIS["Y",EAST]] …g“ S9‰Kepsg žAlbanian 1987 / Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Albanian 1987 / Gauss-Kruger zone 4",GEOGCS["Albanian 1987",DATUM["Albanian_1987",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6191"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4191"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2462"],AXIS["X",NORTH],AXIS["Y",EAST]] ½½†?“ Q‚Š!epsg ŸPulkovo 1995 / Gauss-Kruger CM 21E+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 21E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2463"],AXIS["X",NORTH],AXIS["Y",EAST]] ½½†?“ Q‚Š!epsg  Pulkovo 1995 / Gauss-Kruger CM 27E+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 27E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2464"],AXIS["X",NORTH],AXIS["Y",EAST]] ½½†?“! Q‚Š!epsg ¡Pulkovo 1995 / Gauss-Kruger CM 33E+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 33E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2465"],AXIS["X",NORTH],AXIS["Y",EAST]] ½½†?“" Q‚Š!epsg ¢Pulkovo 1995 / Gauss-Kruger CM 39E+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 39E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2466"],AXIS["X",NORTH],AXIS["Y",EAST]] ½½†?“# Q‚Š!epsg £Pulkovo 1995 / Gauss-Kruger CM 45E+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 45E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2467"],AXIS["X",NORTH],AXIS["Y",EAST]] ½½†?“$ Q‚Š!epsg ¤Pulkovo 1995 / Gauss-Kruger CM 51E+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 51E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2468"],AXIS["X",NORTH],AXIS["Y",EAST]] ½½†?“% Q‚Š!epsg ¥Pulkovo 1995 / Gauss-Kruger CM 57E+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 57E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2469"],AXIS["X",NORTH],AXIS["Y",EAST]] ½½†?“& Q‚Š!epsg ¦Pulkovo 1995 / Gauss-Kruger CM 63E+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 63E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2470"],AXIS["X",NORTH],AXIS["Y",EAST]] ½½†?“' Q‚Š!epsg §Pulkovo 1995 / Gauss-Kruger CM 69E+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 69E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2471"],AXIS["X",NORTH],AXIS["Y",EAST]] ½½†?“( Q‚Š!epsg ¨Pulkovo 1995 / Gauss-Kruger CM 75E+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 75E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2472"],AXIS["X",NORTH],AXIS["Y",EAST]] ½½†?“) Q‚Š!epsg ©Pulkovo 1995 / Gauss-Kruger CM 81E+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 81E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2473"],AXIS["X",NORTH],AXIS["Y",EAST]] ½½†?“* Q‚Š!epsg ªPulkovo 1995 / Gauss-Kruger CM 87E+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 87E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2474"],AXIS["X",NORTH],AXIS["Y",EAST]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  ”epsg ”  •epsg •  –epsg –  —epsg —  ˜epsg ˜  ™epsg ™  šepsg š  ›epsg ›  œepsg œ  epsg  žepsg ž  Ÿepsg Ÿ   epsg    ¡epsg ¡  ¢epsg ¢  £epsg £  ¤epsg ¤  ¥epsg ¥  ¦epsg ¦  §epsg §  ¨epsg ¨  ©epsg ©  ªepsg ª  «epsg «  ¬epsg ¬  ­epsg ­  ®epsg ®  ¯epsg ¯  °epsg °  ±epsg ±  ²epsg ²  ³epsg ³  ´epsg ´  µepsg µ  ¶epsg ¶  ·epsg ·  ¸epsg ¸  ¹epsg ¹  ºepsg º  »epsg »  ¼epsg ¼  ½epsg ½  ¾epsg ¾  ¿epsg ¿  Àepsg À  Áepsg Á  Âepsg   Ãepsg à  Äepsg Ä  Åepsg Å  Æepsg Æ  Çepsg Ç  Èepsg È  Éepsg É  Êepsg Ê  Ëepsg Ë  Ìepsg Ì  Íepsg Í  Îepsg Î ½½†?“+ Q‚Š!epsg «Pulkovo 1995 / Gauss-Kruger CM 93E+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 93E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2475"],AXIS["X",NORTH],AXIS["Y",EAST]] ½½†?“, Q‚Š!epsg ¬Pulkovo 1995 / Gauss-Kruger CM 99E+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 99E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2476"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C“- S‚Š%epsg ­Pulkovo 1995 / Gauss-Kruger CM 105E+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 105E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2477"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C“. S‚Š%epsg ®Pulkovo 1995 / Gauss-Kruger CM 111E+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 111E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2478"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C“/ S‚Š%epsg ¯Pulkovo 1995 / Gauss-Kruger CM 117E+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 117E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2479"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C“0 S‚Š%epsg °Pulkovo 1995 / Gauss-Kruger CM 123E+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 123E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2480"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C“1 S‚Š%epsg ±Pulkovo 1995 / Gauss-Kruger CM 129E+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 129E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2481"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C“2 S‚Š%epsg ²Pulkovo 1995 / Gauss-Kruger CM 135E+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 135E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2482"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C“3 S‚Š%epsg ³Pulkovo 1995 / Gauss-Kruger CM 141E+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 141E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2483"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C“4 S‚Š%epsg ´Pulkovo 1995 / Gauss-Kruger CM 147E+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 147E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2484"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C“5 S‚Š%epsg µPulkovo 1995 / Gauss-Kruger CM 153E+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 153E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2485"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C“6 S‚Š%epsg ¶Pulkovo 1995 / Gauss-Kruger CM 159E+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 159E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2486"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C“7 S‚Š%epsg ·Pulkovo 1995 / Gauss-Kruger CM 165E+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 165E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2487"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C“8 S‚Š%epsg ¸Pulkovo 1995 / Gauss-Kruger CM 171E+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 171E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2488"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C“9 S‚Š%epsg ¹Pulkovo 1995 / Gauss-Kruger CM 177E+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 177E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2489"],AXIS["X",NORTH],AXIS["Y",EAST]] ··†E“: S‚Š'epsg ºPulkovo 1995 / Gauss-Kruger CM 177W+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 177W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2490"],AXIS["X",NORTH],AXIS["Y",EAST]] ··†E“; S‚Š'epsg »Pulkovo 1995 / Gauss-Kruger CM 171W+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger CM 171W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2491"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%“< i5Š5epsg ¼Pulkovo 1942 / Gauss-Kruger CM 9E (deprecated)+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 9E (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2492"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)“= k7Š9epsg ½Pulkovo 1942 / Gauss-Kruger CM 15E (deprecated)+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 15E (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2493"],AXIS["X",NORTH],AXIS["Y",EAST]] í톓> Q7Šepsg ¾Pulkovo 1942 / Gauss-Kruger CM 21E+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 21E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2494"],AXIS["X",NORTH],AXIS["Y",EAST]] í톓? Q7Šepsg ¿Pulkovo 1942 / Gauss-Kruger CM 27E+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 27E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2495"],AXIS["X",NORTH],AXIS["Y",EAST]] í톓@ Q7Šepsg ÀPulkovo 1942 / Gauss-Kruger CM 33E+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 33E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2496"],AXIS["X",NORTH],AXIS["Y",EAST]] í톓A Q7Šepsg ÁPulkovo 1942 / Gauss-Kruger CM 39E+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 39E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2497"],AXIS["X",NORTH],AXIS["Y",EAST]] í톓B Q7Šepsg ÂPulkovo 1942 / Gauss-Kruger CM 45E+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 45E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2498"],AXIS["X",NORTH],AXIS["Y",EAST]] í톓C Q7Šepsg ÃPulkovo 1942 / Gauss-Kruger CM 51E+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 51E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2499"],AXIS["X",NORTH],AXIS["Y",EAST]] í톓D Q7Šepsg ÄPulkovo 1942 / Gauss-Kruger CM 57E+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 57E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2500"],AXIS["X",NORTH],AXIS["Y",EAST]] í톓E Q7Šepsg ÅPulkovo 1942 / Gauss-Kruger CM 63E+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 63E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2501"],AXIS["X",NORTH],AXIS["Y",EAST]] í톓F Q7Šepsg ÆPulkovo 1942 / Gauss-Kruger CM 69E+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 69E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2502"],AXIS["X",NORTH],AXIS["Y",EAST]] í톓G Q7Šepsg ÇPulkovo 1942 / Gauss-Kruger CM 75E+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 75E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2503"],AXIS["X",NORTH],AXIS["Y",EAST]] í톓H Q7Šepsg ÈPulkovo 1942 / Gauss-Kruger CM 81E+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 81E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2504"],AXIS["X",NORTH],AXIS["Y",EAST]] í톓I Q7Šepsg ÉPulkovo 1942 / Gauss-Kruger CM 87E+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 87E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2505"],AXIS["X",NORTH],AXIS["Y",EAST]] í톓J Q7Šepsg ÊPulkovo 1942 / Gauss-Kruger CM 93E+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 93E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2506"],AXIS["X",NORTH],AXIS["Y",EAST]] í톓K Q7Šepsg ËPulkovo 1942 / Gauss-Kruger CM 99E+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 99E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2507"],AXIS["X",NORTH],AXIS["Y",EAST]] é醓L S9Š#epsg ÌPulkovo 1942 / Gauss-Kruger CM 105E+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 105E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2508"],AXIS["X",NORTH],AXIS["Y",EAST]] é醓M S9Š#epsg ÍPulkovo 1942 / Gauss-Kruger CM 111E+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 111E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2509"],AXIS["X",NORTH],AXIS["Y",EAST]] é醓N S9Š#epsg ÎPulkovo 1942 / Gauss-Kruger CM 117E+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 117E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2510"],AXIS["X",NORTH],AXIS["Y",EAST]] é醓O S9Š#epsg ÏPulkovo 1942 / Gauss-Kruger CM 123E+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 123E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2511"],AXIS["X",NORTH],AXIS["Y",EAST]] é醓P S9Š#epsg ÐPulkovo 1942 / Gauss-Kruger CM 129E+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 129E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2512"],AXIS["X",NORTH],AXIS["Y",EAST]] é醓Q S9Š#epsg ÑPulkovo 1942 / Gauss-Kruger CM 135E+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 135E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2513"],AXIS["X",NORTH],AXIS["Y",EAST]] é醓R S9Š#epsg ÒPulkovo 1942 / Gauss-Kruger CM 141E+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 141E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2514"],AXIS["X",NORTH],AXIS["Y",EAST]] é醓S S9Š#epsg ÓPulkovo 1942 / Gauss-Kruger CM 147E+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 147E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2515"],AXIS["X",NORTH],AXIS["Y",EAST]] é醓T S9Š#epsg ÔPulkovo 1942 / Gauss-Kruger CM 153E+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 153E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2516"],AXIS["X",NORTH],AXIS["Y",EAST]] é醓U S9Š#epsg ÕPulkovo 1942 / Gauss-Kruger CM 159E+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 159E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2517"],AXIS["X",NORTH],AXIS["Y",EAST]] é醓V S9Š#epsg ÖPulkovo 1942 / Gauss-Kruger CM 165E+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 165E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2518"],AXIS["X",NORTH],AXIS["Y",EAST]] é醓W S9Š#epsg ×Pulkovo 1942 / Gauss-Kruger CM 171E+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 171E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2519"],AXIS["X",NORTH],AXIS["Y",EAST]] é醓X S9Š#epsg ØPulkovo 1942 / Gauss-Kruger CM 177E+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 177E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2520"],AXIS["X",NORTH],AXIS["Y",EAST]] ç熓Y S;Š%epsg ÙPulkovo 1942 / Gauss-Kruger CM 177W+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 177W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2521"],AXIS["X",NORTH],AXIS["Y",EAST]] ç熓Z S;Š%epsg ÚPulkovo 1942 / Gauss-Kruger CM 171W+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger CM 171W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2522"],AXIS["X",NORTH],AXIS["Y",EAST]] ÙÙ†#“[ c9Š3epsg ÛPulkovo 1942 / 3-degree Gauss-Kruger zone 7+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 7",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2523"],AXIS["X",NORTH],AXIS["Y",EAST]] ÙÙ†#“\ c9Š3epsg ÜPulkovo 1942 / 3-degree Gauss-Kruger zone 8+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 8",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",1],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2524"],AXIS["X",NORTH],AXIS["Y",EAST]] ÙÙ†#“] c9Š3epsg ÝPulkovo 1942 / 3-degree Gauss-Kruger zone 9+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 9",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",9500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2525"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“^ e;Š7epsg ÞPulkovo 1942 / 3-degree Gauss-Kruger zone 10+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 10",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",10500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2526"],AXIS["X",NORTH],AXIS["Y",EAST]]ofVflrx~„Š–œ¢¨®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôúå“1æ“2ç“3è“4é“5ê“6ë“7ì“8í“9î“:ï“;ð“<ñ“=ò“>ó“?ô“@õ“Aö“B÷“Cø“Dù“Eú“Fû“Gü“Hý“Iþ“Jÿ“K“L“M“N“O“P“Q“R“S“T “U “V “W “X “Y“Z“[“\“]“^“_“`“a“b“c“d“e“f“g“h“i “j!“k"“l#“m$“n%“o&“p'“q(“r)“s*“t+“u,“v-“w.“x/“y0“z1“{2“|3“}4“~5“6”7”8”9”:”;”<”=”>”?” @” A” B” C” D”E”F”G”H”I”J”K”L”M”N”O”P”Q”R”S”T”U” ÕÕ†'“_ e;Š7epsg ßPulkovo 1942 / 3-degree Gauss-Kruger zone 11+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 11",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",11500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2527"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“` e;Š7epsg àPulkovo 1942 / 3-degree Gauss-Kruger zone 12+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 12",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",36],PARAMETER["scale_factor",1],PARAMETER["false_easting",12500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2528"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“a e;Š7epsg áPulkovo 1942 / 3-degree Gauss-Kruger zone 13+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 13",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",13500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2529"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“b e;Š7epsg âPulkovo 1942 / 3-degree Gauss-Kruger zone 14+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 14",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",42],PARAMETER["scale_factor",1],PARAMETER["false_easting",14500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2530"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“c e;Š7epsg ãPulkovo 1942 / 3-degree Gauss-Kruger zone 15+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 15",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",15500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2531"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“d e;Š7epsg äPulkovo 1942 / 3-degree Gauss-Kruger zone 16+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 16",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",48],PARAMETER["scale_factor",1],PARAMETER["false_easting",16500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2532"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“e e;Š7epsg åPulkovo 1942 / 3-degree Gauss-Kruger zone 17+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 17",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",17500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2533"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“f e;Š7epsg æPulkovo 1942 / 3-degree Gauss-Kruger zone 18+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 18",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",54],PARAMETER["scale_factor",1],PARAMETER["false_easting",18500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2534"],AXIS["X",NORTH],AXIS["Y",EAST]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  Ðepsg Ð  Ñepsg Ñ  Òepsg Ò  Óepsg Ó  Ôepsg Ô  Õepsg Õ  Öepsg Ö  ×epsg ×  Øepsg Ø  Ùepsg Ù  Úepsg Ú  Ûepsg Û  Üepsg Ü  Ýepsg Ý  Þepsg Þ  ßepsg ß  àepsg à  áepsg á  âepsg â  ãepsg ã  äepsg ä  åepsg å  æepsg æ  çepsg ç  èepsg è  éepsg é  êepsg ê  ëepsg ë  ìepsg ì  íepsg í  îepsg î  ïepsg ï  ðepsg ð  ñepsg ñ  òepsg ò  óepsg ó  ôepsg ô  õepsg õ  öepsg ö  ÷epsg ÷  øepsg ø  ùepsg ù  úepsg ú  ûepsg û  üepsg ü  ýepsg ý  þepsg þ  ÿepsg ÿ  epsg  epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg  epsg ÕÕ†'“g e;Š7epsg çPulkovo 1942 / 3-degree Gauss-Kruger zone 19+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 19",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",19500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2535"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“h e;Š7epsg èPulkovo 1942 / 3-degree Gauss-Kruger zone 20+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 20",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",60],PARAMETER["scale_factor",1],PARAMETER["false_easting",20500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2536"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“i e;Š7epsg éPulkovo 1942 / 3-degree Gauss-Kruger zone 21+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 21",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",21500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2537"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“j e;Š7epsg êPulkovo 1942 / 3-degree Gauss-Kruger zone 22+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 22",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",66],PARAMETER["scale_factor",1],PARAMETER["false_easting",22500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2538"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“k e;Š7epsg ëPulkovo 1942 / 3-degree Gauss-Kruger zone 23+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 23",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",23500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2539"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“l e;Š7epsg ìPulkovo 1942 / 3-degree Gauss-Kruger zone 24+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 24",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",72],PARAMETER["scale_factor",1],PARAMETER["false_easting",24500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2540"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“m e;Š7epsg íPulkovo 1942 / 3-degree Gauss-Kruger zone 25+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 25",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",25500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2541"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“n e;Š7epsg îPulkovo 1942 / 3-degree Gauss-Kruger zone 26+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 26",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",26500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2542"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“o e;Š7epsg ïPulkovo 1942 / 3-degree Gauss-Kruger zone 27+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 27",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",27500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2543"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“p e;Š7epsg ðPulkovo 1942 / 3-degree Gauss-Kruger zone 28+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 28",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",28500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2544"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“q e;Š7epsg ñPulkovo 1942 / 3-degree Gauss-Kruger zone 29+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 29",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",29500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2545"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“r e;Š7epsg òPulkovo 1942 / 3-degree Gauss-Kruger zone 30+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 30",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",30500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2546"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“s e;Š7epsg óPulkovo 1942 / 3-degree Gauss-Kruger zone 31+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 31",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",31500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2547"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“t e;Š7epsg ôPulkovo 1942 / 3-degree Gauss-Kruger zone 32+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 32",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",32500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2548"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'“u e;Š7epsg õPulkovo 1942 / 3-degree Gauss-Kruger zone 33+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 33",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",33500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2549"],AXIS["X",NORTH],AXIS["Y",EAST]] ÔÔ†(“v SKŠ;epsg öSamboja / UTM zone 50S (deprecated)+proj=utm +zone=50 +south +ellps=bessel +towgs84=-404.78,685.68,45.47,0,0,0,0 +units=m +no_defsPROJCS["Samboja / UTM zone 50S (deprecated)",GEOGCS["Samboja",DATUM["Samboja",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-404.78,685.68,45.47,0,0,0,0],AUTHORITY["EPSG","6125"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4125"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2550"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÓÓ†)“w e=Š9epsg ÷Pulkovo 1942 / 3-degree Gauss-Kruger zone 34+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 34",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",34500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2551"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)“x e=Š9epsg øPulkovo 1942 / 3-degree Gauss-Kruger zone 35+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 35",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",35500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2552"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)“y e=Š9epsg ùPulkovo 1942 / 3-degree Gauss-Kruger zone 36+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 36",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",36500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2553"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)“z e=Š9epsg úPulkovo 1942 / 3-degree Gauss-Kruger zone 37+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 37",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",37500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2554"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)“{ e=Š9epsg ûPulkovo 1942 / 3-degree Gauss-Kruger zone 38+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 38",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",38500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2555"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)“| e=Š9epsg üPulkovo 1942 / 3-degree Gauss-Kruger zone 39+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 39",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",39500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2556"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)“} e=Š9epsg ýPulkovo 1942 / 3-degree Gauss-Kruger zone 40+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 40",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",120],PARAMETER["scale_factor",1],PARAMETER["false_easting",40500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2557"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)“~ e=Š9epsg þPulkovo 1942 / 3-degree Gauss-Kruger zone 41+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 41",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",41500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2558"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)“ e=Š9epsg ÿPulkovo 1942 / 3-degree Gauss-Kruger zone 42+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 42",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",42500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2559"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)” e=Š9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 43+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 43",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",43500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2560"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)” e=Š9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 44+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 44",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",1],PARAMETER["false_easting",44500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2561"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)” e=Š9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 45+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 45",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",45500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2562"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)” e=Š9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 46+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=46500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 46",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",138],PARAMETER["scale_factor",1],PARAMETER["false_easting",46500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2563"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)” e=Š9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 47+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=47500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 47",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",47500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2564"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)” e=Š9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 48+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=48500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 48",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",144],PARAMETER["scale_factor",1],PARAMETER["false_easting",48500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2565"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)” e=Š9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 49+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=49500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 49",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",49500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2566"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)” e=Š9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 50+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=50500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 50",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",150],PARAMETER["scale_factor",1],PARAMETER["false_easting",50500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2567"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)” e=Š9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 51+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=51500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 51",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",51500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2568"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)” e=Š9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 52+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=52500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 52",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",156],PARAMETER["scale_factor",1],PARAMETER["false_easting",52500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2569"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)” e=Š9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 53+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=53500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 53",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",53500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2570"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)” e=Š9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 54+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=54500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 54",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",162],PARAMETER["scale_factor",1],PARAMETER["false_easting",54500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2571"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)” e=Š9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 55+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=55500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 55",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",55500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2572"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)” e=Š9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 56+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=56500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 56",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",168],PARAMETER["scale_factor",1],PARAMETER["false_easting",56500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2573"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)” e=Š9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 57+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=57500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 57",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",1],PARAMETER["false_easting",57500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2574"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)” e=Š9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 58+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=58500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 58",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",174],PARAMETER["scale_factor",1],PARAMETER["false_easting",58500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2575"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†)” e=Š9epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 59+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=59500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 59",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",59500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2576"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C” =ŠSepsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 60 (deprecated)+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60000000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 60 (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",180],PARAMETER["scale_factor",1],PARAMETER["false_easting",60000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2577"],AXIS["X",NORTH],AXIS["Y",EAST]] Ñц+” e?Š;epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 61+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=61500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 61",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",61500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2578"],AXIS["X",NORTH],AXIS["Y",EAST]] Ñц+” e?Š;epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 62+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=62500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 62",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-174],PARAMETER["scale_factor",1],PARAMETER["false_easting",62500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2579"],AXIS["X",NORTH],AXIS["Y",EAST]] Ñц+” e?Š;epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 63+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=63500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 63",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",63500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2580"],AXIS["X",NORTH],AXIS["Y",EAST]] Ñц+” e?Š;epsg Pulkovo 1942 / 3-degree Gauss-Kruger zone 64+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=64500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 64",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-168],PARAMETER["scale_factor",1],PARAMETER["false_easting",64500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2581"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!” c7Š1epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 21E+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 21E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2582"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!” c7Š1epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 24E+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 24E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2583"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!” c7Š1epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 27E+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 27E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2584"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!” c7Š1epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 30E+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 30E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2585"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!” c7Š1epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 33E+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 33E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2586"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!” c7Š1epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 36E+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 36E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",36],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2587"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!” c7Š1epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 39E+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 39E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2588"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!” c7Š1epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 42E+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 42E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",42],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2589"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!” c7Š1epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 45E+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 45E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2590"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!” c7Š1epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 48E+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 48E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",48],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2591"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!” c7Š1epsg Pulkovo 1942 / 3-degree Gauss-Kruger CM 51E+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 51E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2592"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!”! c7Š1epsg !Pulkovo 1942 / 3-degree Gauss-Kruger CM 54E+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 54E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",54],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2593"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!”" c7Š1epsg "Pulkovo 1942 / 3-degree Gauss-Kruger CM 57E+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 57E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2594"],AXIS["X",NORTH],AXIS["Y",EAST]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  epsg  epsg  epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg  !epsg !  "epsg "  #epsg #  $epsg $  %epsg %  &epsg &  'epsg '  (epsg (  )epsg )  *epsg *  +epsg +  ,epsg ,  -epsg -  .epsg .  /epsg /  0epsg 0  1epsg 1  2epsg 2  3epsg 3  4epsg 4  5epsg 5  6epsg 6  7epsg 7  8epsg 8  9epsg 9  :epsg :  ;epsg ;  epsg >  ?epsg ?  @epsg @  Aepsg A  Bepsg B  Cepsg C  Depsg D  Eepsg E  Fepsg F ÛÛ†!”# c7Š1epsg #Pulkovo 1942 / 3-degree Gauss-Kruger CM 60E+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 60E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",60],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2595"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!”$ c7Š1epsg $Pulkovo 1942 / 3-degree Gauss-Kruger CM 63E+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 63E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2596"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!”% c7Š1epsg %Pulkovo 1942 / 3-degree Gauss-Kruger CM 66E+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 66E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",66],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2597"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!”& c7Š1epsg &Pulkovo 1942 / 3-degree Gauss-Kruger CM 69E+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 69E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2598"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!”' c7Š1epsg 'Pulkovo 1942 / 3-degree Gauss-Kruger CM 72E+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 72E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",72],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2599"],AXIS["X",NORTH],AXIS["Y",EAST]] Êʆ2”( goŠepsg (Lietuvos Koordinoei Sistema 1994 (deprecated)+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9998 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["Lietuvos Koordinoei Sistema 1994 (deprecated)",GEOGCS["LKS94",DATUM["Lithuania_1994_ETRS89",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6126"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4669"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9998],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2600"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!”) c7Š1epsg )Pulkovo 1942 / 3-degree Gauss-Kruger CM 75E+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 75E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2601"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!”* c7Š1epsg *Pulkovo 1942 / 3-degree Gauss-Kruger CM 78E+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 78E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2602"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!”+ c7Š1epsg +Pulkovo 1942 / 3-degree Gauss-Kruger CM 81E+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 81E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2603"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!”, c7Š1epsg ,Pulkovo 1942 / 3-degree Gauss-Kruger CM 84E+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 84E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2604"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!”- c7Š1epsg -Pulkovo 1942 / 3-degree Gauss-Kruger CM 87E+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 87E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2605"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!”. c7Š1epsg .Pulkovo 1942 / 3-degree Gauss-Kruger CM 90E+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 90E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2606"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!”/ c7Š1epsg /Pulkovo 1942 / 3-degree Gauss-Kruger CM 93E+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 93E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2607"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!”0 c7Š1epsg 0Pulkovo 1942 / 3-degree Gauss-Kruger CM 96E+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 96E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2608"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!”1 c7Š1epsg 1Pulkovo 1942 / 3-degree Gauss-Kruger CM 99E+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 99E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2609"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”2 e9Š5epsg 2Pulkovo 1942 / 3-degree Gauss-Kruger CM 102E+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 102E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2610"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”3 e9Š5epsg 3Pulkovo 1942 / 3-degree Gauss-Kruger CM 105E+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 105E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2611"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”4 e9Š5epsg 4Pulkovo 1942 / 3-degree Gauss-Kruger CM 108E+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 108E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2612"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”5 e9Š5epsg 5Pulkovo 1942 / 3-degree Gauss-Kruger CM 111E+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 111E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2613"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”6 e9Š5epsg 6Pulkovo 1942 / 3-degree Gauss-Kruger CM 114E+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 114E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2614"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”7 e9Š5epsg 7Pulkovo 1942 / 3-degree Gauss-Kruger CM 117E+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 117E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2615"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”8 e9Š5epsg 8Pulkovo 1942 / 3-degree Gauss-Kruger CM 120E+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 120E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",120],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2616"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”9 e9Š5epsg 9Pulkovo 1942 / 3-degree Gauss-Kruger CM 123E+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 123E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2617"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”: e9Š5epsg :Pulkovo 1942 / 3-degree Gauss-Kruger CM 126E+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 126E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2618"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”; e9Š5epsg ;Pulkovo 1942 / 3-degree Gauss-Kruger CM 129E+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 129E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2619"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”< e9Š5epsg e9Š5epsg >Pulkovo 1942 / 3-degree Gauss-Kruger CM 138E+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 138E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",138],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2622"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”? e9Š5epsg ?Pulkovo 1942 / 3-degree Gauss-Kruger CM 141E+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 141E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2623"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”@ e9Š5epsg @Pulkovo 1942 / 3-degree Gauss-Kruger CM 144E+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 144E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",144],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2624"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”A e9Š5epsg APulkovo 1942 / 3-degree Gauss-Kruger CM 147E+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 147E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2625"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”B e9Š5epsg BPulkovo 1942 / 3-degree Gauss-Kruger CM 150E+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 150E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",150],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2626"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”C e9Š5epsg CPulkovo 1942 / 3-degree Gauss-Kruger CM 153E+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 153E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2627"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”D e9Š5epsg DPulkovo 1942 / 3-degree Gauss-Kruger CM 156E+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 156E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",156],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2628"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”E e9Š5epsg EPulkovo 1942 / 3-degree Gauss-Kruger CM 159E+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 159E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2629"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”F e9Š5epsg FPulkovo 1942 / 3-degree Gauss-Kruger CM 162E+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 162E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",162],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2630"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”G e9Š5epsg GPulkovo 1942 / 3-degree Gauss-Kruger CM 165E+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 165E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2631"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”H e9Š5epsg HPulkovo 1942 / 3-degree Gauss-Kruger CM 168E+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 168E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",168],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2632"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”I e9Š5epsg IPulkovo 1942 / 3-degree Gauss-Kruger CM 171E+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 171E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2633"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”J e9Š5epsg JPulkovo 1942 / 3-degree Gauss-Kruger CM 174E+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 174E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",174],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2634"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”K e9Š5epsg KPulkovo 1942 / 3-degree Gauss-Kruger CM 177E+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 177E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2635"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆%”L e9Š5epsg LPulkovo 1942 / 3-degree Gauss-Kruger CM 180E+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 180E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",180],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2636"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'”M e;Š7epsg MPulkovo 1942 / 3-degree Gauss-Kruger CM 177W+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 177W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2637"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'”N e;Š7epsg NPulkovo 1942 / 3-degree Gauss-Kruger CM 174W+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 174W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-174],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2638"],AXIS["X",NORTH],AXIS["Y",EAST]]ofÉflrx~„Š–œ¢¨®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôúW”!X”"Z”#[”$\”%]”&^”'_”(`”)a”*b”+c”,d”-e”.f”/g”0h”1i”2j”3k”4l”5m”6n”7o”8p”9q”:r”;s”<t”=u”>v”?w”@x”Ay”Bz”C{”D|”E}”F~”G”H€”I”J‚”Kƒ”L„”M…”N‡”Oˆ”P‰”QŠ”R‹”SŒ”T”UŽ”V”W”X‘”Y’”Z“”[””\•”]–”^˜”_™”`š”a›”bœ”c”dž”eŸ”f ”g¡”h¢”i£”j¤”k¥”l¦”m§”n¨”o©”pª”q«”r¬”s­”t®”u¯”v°”w±”x²”y³”z´”{µ”|¶”}·”~¸”¹•º•»•¼•½•¾•¿•À•Á•• Õ Ä• Å• Æ• Ǖȕ ÕÕ†'”O e;Š7epsg OPulkovo 1942 / 3-degree Gauss-Kruger CM 171W+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 171W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2639"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†'”P e;Š7epsg PPulkovo 1942 / 3-degree Gauss-Kruger CM 168W+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 168W",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-168],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2640"],AXIS["X",NORTH],AXIS["Y",EAST]] ©©†S”Q c‚Š5epsg QPulkovo 1995 / 3-degree Gauss-Kruger zone 7+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 7",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2641"],AXIS["X",NORTH],AXIS["Y",EAST]] ©©†S”R c‚Š5epsg RPulkovo 1995 / 3-degree Gauss-Kruger zone 8+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 8",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",1],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2642"],AXIS["X",NORTH],AXIS["Y",EAST]] ©©†S”S c‚Š5epsg SPulkovo 1995 / 3-degree Gauss-Kruger zone 9+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 9",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",9500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2643"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”T e‚Š9epsg TPulkovo 1995 / 3-degree Gauss-Kruger zone 10+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 10",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",10500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2644"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”U e‚Š9epsg UPulkovo 1995 / 3-degree Gauss-Kruger zone 11+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 11",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",11500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2645"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”V e‚Š9epsg VPulkovo 1995 / 3-degree Gauss-Kruger zone 12+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 12",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",36],PARAMETER["scale_factor",1],PARAMETER["false_easting",12500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2646"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”W e‚Š9epsg WPulkovo 1995 / 3-degree Gauss-Kruger zone 13+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 13",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",13500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2647"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”X e‚Š9epsg XPulkovo 1995 / 3-degree Gauss-Kruger zone 14+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 14",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",42],PARAMETER["scale_factor",1],PARAMETER["false_easting",14500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2648"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”Y e‚Š9epsg YPulkovo 1995 / 3-degree Gauss-Kruger zone 15+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 15",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",15500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2649"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”Z e‚Š9epsg ZPulkovo 1995 / 3-degree Gauss-Kruger zone 16+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 16",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",48],PARAMETER["scale_factor",1],PARAMETER["false_easting",16500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2650"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”[ e‚Š9epsg [Pulkovo 1995 / 3-degree Gauss-Kruger zone 17+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 17",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",17500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2651"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”\ e‚Š9epsg \Pulkovo 1995 / 3-degree Gauss-Kruger zone 18+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 18",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",54],PARAMETER["scale_factor",1],PARAMETER["false_easting",18500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2652"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”] e‚Š9epsg ]Pulkovo 1995 / 3-degree Gauss-Kruger zone 19+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 19",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",19500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2653"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”^ e‚Š9epsg ^Pulkovo 1995 / 3-degree Gauss-Kruger zone 20+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 20",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",60],PARAMETER["scale_factor",1],PARAMETER["false_easting",20500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2654"],AXIS["X",NORTH],AXIS["Y",EAST]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  Hepsg H  Iepsg I  Jepsg J  Kepsg K  Lepsg L  Mepsg M  Nepsg N  Oepsg O  Pepsg P  Qepsg Q  Repsg R  Sepsg S  Tepsg T  Uepsg U  Vepsg V  Wepsg W  Xepsg X  Yepsg Y  Zepsg Z  [epsg [  \epsg \  ]epsg ]  ^epsg ^  _epsg _  `epsg `  aepsg a  bepsg b  cepsg c  depsg d  eepsg e  fepsg f  gepsg g  hepsg h  iepsg i  jepsg j  kepsg k  lepsg l  mepsg m  nepsg n  oepsg o  pepsg p  qepsg q  repsg r  sepsg s  tepsg t  uepsg u  vepsg v  wepsg w  xepsg x  yepsg y  zepsg z  {epsg {  |epsg |  }epsg }  ~epsg ~  epsg   €epsg €  epsg  ‚epsg ‚ ¥¥†W”_ e‚Š9epsg _Pulkovo 1995 / 3-degree Gauss-Kruger zone 21+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 21",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",21500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2655"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”` e‚Š9epsg `Pulkovo 1995 / 3-degree Gauss-Kruger zone 22+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 22",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",66],PARAMETER["scale_factor",1],PARAMETER["false_easting",22500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2656"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”a e‚Š9epsg aPulkovo 1995 / 3-degree Gauss-Kruger zone 23+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 23",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",23500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2657"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”b e‚Š9epsg bPulkovo 1995 / 3-degree Gauss-Kruger zone 24+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=24500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 24",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",72],PARAMETER["scale_factor",1],PARAMETER["false_easting",24500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2658"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”c e‚Š9epsg cPulkovo 1995 / 3-degree Gauss-Kruger zone 25+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 25",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",25500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2659"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”d e‚Š9epsg dPulkovo 1995 / 3-degree Gauss-Kruger zone 26+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 26",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",26500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2660"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”e e‚Š9epsg ePulkovo 1995 / 3-degree Gauss-Kruger zone 27+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 27",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",27500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2661"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”f e‚Š9epsg fPulkovo 1995 / 3-degree Gauss-Kruger zone 28+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 28",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",28500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2662"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”g e‚Š9epsg gPulkovo 1995 / 3-degree Gauss-Kruger zone 29+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 29",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",29500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2663"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”h e‚Š9epsg hPulkovo 1995 / 3-degree Gauss-Kruger zone 30+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 30",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",30500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2664"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”i e‚Š9epsg iPulkovo 1995 / 3-degree Gauss-Kruger zone 31+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 31",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",31500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2665"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”j e‚Š9epsg jPulkovo 1995 / 3-degree Gauss-Kruger zone 32+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 32",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",32500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2666"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W”k e‚Š9epsg kPulkovo 1995 / 3-degree Gauss-Kruger zone 33+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 33",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",33500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2667"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”l e‚Š;epsg lPulkovo 1995 / 3-degree Gauss-Kruger zone 34+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 34",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",34500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2668"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”m e‚Š;epsg mPulkovo 1995 / 3-degree Gauss-Kruger zone 35+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 35",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",35500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2669"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”n e‚Š;epsg nPulkovo 1995 / 3-degree Gauss-Kruger zone 36+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 36",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",36500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2670"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”o e‚Š;epsg oPulkovo 1995 / 3-degree Gauss-Kruger zone 37+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 37",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",37500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2671"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”p e‚Š;epsg pPulkovo 1995 / 3-degree Gauss-Kruger zone 38+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 38",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",38500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2672"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”q e‚Š;epsg qPulkovo 1995 / 3-degree Gauss-Kruger zone 39+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 39",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",39500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2673"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”r e‚Š;epsg rPulkovo 1995 / 3-degree Gauss-Kruger zone 40+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 40",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",120],PARAMETER["scale_factor",1],PARAMETER["false_easting",40500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2674"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”s e‚Š;epsg sPulkovo 1995 / 3-degree Gauss-Kruger zone 41+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 41",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",41500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2675"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”t e‚Š;epsg tPulkovo 1995 / 3-degree Gauss-Kruger zone 42+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 42",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",42500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2676"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”u e‚Š;epsg uPulkovo 1995 / 3-degree Gauss-Kruger zone 43+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 43",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",43500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2677"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”v e‚Š;epsg vPulkovo 1995 / 3-degree Gauss-Kruger zone 44+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 44",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",1],PARAMETER["false_easting",44500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2678"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”w e‚Š;epsg wPulkovo 1995 / 3-degree Gauss-Kruger zone 45+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 45",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",45500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2679"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”x e‚Š;epsg xPulkovo 1995 / 3-degree Gauss-Kruger zone 46+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=46500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 46",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",138],PARAMETER["scale_factor",1],PARAMETER["false_easting",46500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2680"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”y e‚Š;epsg yPulkovo 1995 / 3-degree Gauss-Kruger zone 47+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=47500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 47",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",47500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2681"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”z e‚Š;epsg zPulkovo 1995 / 3-degree Gauss-Kruger zone 48+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=48500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 48",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",144],PARAMETER["scale_factor",1],PARAMETER["false_easting",48500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2682"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”{ e‚Š;epsg {Pulkovo 1995 / 3-degree Gauss-Kruger zone 49+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=49500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 49",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",49500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2683"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”| e‚Š;epsg |Pulkovo 1995 / 3-degree Gauss-Kruger zone 50+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=50500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 50",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",150],PARAMETER["scale_factor",1],PARAMETER["false_easting",50500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2684"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”} e‚Š;epsg }Pulkovo 1995 / 3-degree Gauss-Kruger zone 51+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=51500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 51",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",51500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2685"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y”~ e‚Š;epsg ~Pulkovo 1995 / 3-degree Gauss-Kruger zone 52+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=52500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 52",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",156],PARAMETER["scale_factor",1],PARAMETER["false_easting",52500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2686"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y” e‚Š;epsg Pulkovo 1995 / 3-degree Gauss-Kruger zone 53+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=53500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 53",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",53500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2687"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y• e‚Š;epsg €Pulkovo 1995 / 3-degree Gauss-Kruger zone 54+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=54500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 54",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",162],PARAMETER["scale_factor",1],PARAMETER["false_easting",54500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2688"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y• e‚Š;epsg Pulkovo 1995 / 3-degree Gauss-Kruger zone 55+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=55500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 55",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",55500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2689"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y• e‚Š;epsg ‚Pulkovo 1995 / 3-degree Gauss-Kruger zone 56+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=56500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 56",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",168],PARAMETER["scale_factor",1],PARAMETER["false_easting",56500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2690"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y• e‚Š;epsg ƒPulkovo 1995 / 3-degree Gauss-Kruger zone 57+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=57500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 57",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",1],PARAMETER["false_easting",57500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2691"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y• e‚Š;epsg „Pulkovo 1995 / 3-degree Gauss-Kruger zone 58+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=58500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 58",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",174],PARAMETER["scale_factor",1],PARAMETER["false_easting",58500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2692"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Y• e‚Š;epsg …Pulkovo 1995 / 3-degree Gauss-Kruger zone 59+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=59500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 59",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",59500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2693"],AXIS["X",NORTH],AXIS["Y",EAST]] ‰‰†s• ‚ŠUepsg †Pulkovo 1995 / 3-degree Gauss-Kruger zone 60 (deprecated)+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60000000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 60 (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",180],PARAMETER["scale_factor",1],PARAMETER["false_easting",60000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2694"],AXIS["X",NORTH],AXIS["Y",EAST]] ¡¡†[• e‚Š=epsg ‡Pulkovo 1995 / 3-degree Gauss-Kruger zone 61+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=61500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 61",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",61500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2695"],AXIS["X",NORTH],AXIS["Y",EAST]] ¡¡†[• e‚Š=epsg ˆPulkovo 1995 / 3-degree Gauss-Kruger zone 62+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=62500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 62",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-174],PARAMETER["scale_factor",1],PARAMETER["false_easting",62500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2696"],AXIS["X",NORTH],AXIS["Y",EAST]] ¡¡†[• e‚Š=epsg ‰Pulkovo 1995 / 3-degree Gauss-Kruger zone 63+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=63500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 63",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",63500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2697"],AXIS["X",NORTH],AXIS["Y",EAST]] ¡¡†[• e‚Š=epsg ŠPulkovo 1995 / 3-degree Gauss-Kruger zone 64+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=64500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 64",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-168],PARAMETER["scale_factor",1],PARAMETER["false_easting",64500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2698"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg ‹Pulkovo 1995 / 3-degree Gauss-Kruger CM 21E+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 21E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2699"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg ŒPulkovo 1995 / 3-degree Gauss-Kruger CM 24E+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 24E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2700"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 27E+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 27E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2701"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg ŽPulkovo 1995 / 3-degree Gauss-Kruger CM 30E+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 30E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2702"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 33E+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 33E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2703"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 36E+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 36E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",36],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2704"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg ‘Pulkovo 1995 / 3-degree Gauss-Kruger CM 39E+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 39E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2705"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg ’Pulkovo 1995 / 3-degree Gauss-Kruger CM 42E+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 42E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",42],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2706"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg “Pulkovo 1995 / 3-degree Gauss-Kruger CM 45E+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 45E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2707"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg ”Pulkovo 1995 / 3-degree Gauss-Kruger CM 48E+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 48E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",48],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2708"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg •Pulkovo 1995 / 3-degree Gauss-Kruger CM 51E+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 51E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2709"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg –Pulkovo 1995 / 3-degree Gauss-Kruger CM 54E+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 54E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",54],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2710"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg —Pulkovo 1995 / 3-degree Gauss-Kruger CM 57E+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 57E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2711"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg ˜Pulkovo 1995 / 3-degree Gauss-Kruger CM 60E+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 60E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",60],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2712"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg ™Pulkovo 1995 / 3-degree Gauss-Kruger CM 63E+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 63E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2713"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg šPulkovo 1995 / 3-degree Gauss-Kruger CM 66E+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 66E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",66],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2714"],AXIS["X",NORTH],AXIS["Y",EAST]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  „epsg „  …epsg …  †epsg †  ‡epsg ‡  ˆepsg ˆ  ‰epsg ‰  Šepsg Š  ‹epsg ‹  Œepsg Œ  epsg  Žepsg Ž  epsg  epsg  ‘epsg ‘  ’epsg ’  “epsg “  ”epsg ”  •epsg •  –epsg –  —epsg —  ˜epsg ˜  ™epsg ™  šepsg š  ›epsg ›  œepsg œ  epsg  žepsg ž  Ÿepsg Ÿ   epsg    ¡epsg ¡  ¢epsg ¢  £epsg £  ¤epsg ¤  ¥epsg ¥  ¦epsg ¦  §epsg §  ¨epsg ¨  ©epsg ©  ªepsg ª  «epsg «  ¬epsg ¬  ­epsg ­  ®epsg ®  ¯epsg ¯  °epsg °  ±epsg ±  ²epsg ²  ³epsg ³  ´epsg ´  µepsg µ  ¶epsg ¶  ·epsg ·  ¸epsg ¸  ¹epsg ¹  ºepsg º  »epsg »  ¼epsg ¼  ½epsg ½  ¾epsg ¾ ««†Q• c‚Š3epsg ›Pulkovo 1995 / 3-degree Gauss-Kruger CM 69E+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 69E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2715"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg œPulkovo 1995 / 3-degree Gauss-Kruger CM 72E+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 72E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",72],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2716"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg Pulkovo 1995 / 3-degree Gauss-Kruger CM 75E+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 75E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2717"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg žPulkovo 1995 / 3-degree Gauss-Kruger CM 78E+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 78E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",78],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2718"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg ŸPulkovo 1995 / 3-degree Gauss-Kruger CM 81E+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 81E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2719"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q• c‚Š3epsg  Pulkovo 1995 / 3-degree Gauss-Kruger CM 84E+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 84E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",84],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2720"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q•! c‚Š3epsg ¡Pulkovo 1995 / 3-degree Gauss-Kruger CM 87E+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 87E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2721"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q•" c‚Š3epsg ¢Pulkovo 1995 / 3-degree Gauss-Kruger CM 90E+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 90E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2722"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q•# c‚Š3epsg £Pulkovo 1995 / 3-degree Gauss-Kruger CM 93E+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 93E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2723"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q•$ c‚Š3epsg ¤Pulkovo 1995 / 3-degree Gauss-Kruger CM 96E+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 96E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",96],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2724"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q•% c‚Š3epsg ¥Pulkovo 1995 / 3-degree Gauss-Kruger CM 99E+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 99E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2725"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•& e‚Š7epsg ¦Pulkovo 1995 / 3-degree Gauss-Kruger CM 102E+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 102E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",102],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2726"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•' e‚Š7epsg §Pulkovo 1995 / 3-degree Gauss-Kruger CM 105E+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 105E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2727"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•( e‚Š7epsg ¨Pulkovo 1995 / 3-degree Gauss-Kruger CM 108E+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 108E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",108],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2728"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•) e‚Š7epsg ©Pulkovo 1995 / 3-degree Gauss-Kruger CM 111E+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 111E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2729"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•* e‚Š7epsg ªPulkovo 1995 / 3-degree Gauss-Kruger CM 114E+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 114E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",114],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2730"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•+ e‚Š7epsg «Pulkovo 1995 / 3-degree Gauss-Kruger CM 117E+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 117E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2731"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•, e‚Š7epsg ¬Pulkovo 1995 / 3-degree Gauss-Kruger CM 120E+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 120E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",120],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2732"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•- e‚Š7epsg ­Pulkovo 1995 / 3-degree Gauss-Kruger CM 123E+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 123E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2733"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•. e‚Š7epsg ®Pulkovo 1995 / 3-degree Gauss-Kruger CM 126E+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 126E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",126],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2734"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•/ e‚Š7epsg ¯Pulkovo 1995 / 3-degree Gauss-Kruger CM 129E+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 129E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2735"],AXIS["X",NORTH],AXIS["Y",EAST]] CC…9•03‰Kepsg °Tete / UTM zone 36S+proj=utm +zone=36 +south +ellps=clrk66 +units=m +no_defsPROJCS["Tete / UTM zone 36S",GEOGCS["Tete",DATUM["Tete",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6127"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4127"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2736"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…9•13‰Kepsg ±Tete / UTM zone 37S+proj=utm +zone=37 +south +ellps=clrk66 +units=m +no_defsPROJCS["Tete / UTM zone 37S",GEOGCS["Tete",DATUM["Tete",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6127"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4127"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2737"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] §§†U•2 e‚Š7epsg ²Pulkovo 1995 / 3-degree Gauss-Kruger CM 132E+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 132E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",132],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2738"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•3 e‚Š7epsg ³Pulkovo 1995 / 3-degree Gauss-Kruger CM 135E+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 135E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2739"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•4 e‚Š7epsg ´Pulkovo 1995 / 3-degree Gauss-Kruger CM 138E+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 138E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",138],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2740"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•5 e‚Š7epsg µPulkovo 1995 / 3-degree Gauss-Kruger CM 141E+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 141E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2741"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•6 e‚Š7epsg ¶Pulkovo 1995 / 3-degree Gauss-Kruger CM 144E+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 144E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",144],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2742"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•7 e‚Š7epsg ·Pulkovo 1995 / 3-degree Gauss-Kruger CM 147E+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 147E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2743"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•8 e‚Š7epsg ¸Pulkovo 1995 / 3-degree Gauss-Kruger CM 150E+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 150E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",150],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2744"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•9 e‚Š7epsg ¹Pulkovo 1995 / 3-degree Gauss-Kruger CM 153E+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 153E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2745"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•: e‚Š7epsg ºPulkovo 1995 / 3-degree Gauss-Kruger CM 156E+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 156E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",156],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2746"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•; e‚Š7epsg »Pulkovo 1995 / 3-degree Gauss-Kruger CM 159E+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 159E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2747"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•< e‚Š7epsg ¼Pulkovo 1995 / 3-degree Gauss-Kruger CM 162E+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 162E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",162],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2748"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•= e‚Š7epsg ½Pulkovo 1995 / 3-degree Gauss-Kruger CM 165E+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 165E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2749"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•> e‚Š7epsg ¾Pulkovo 1995 / 3-degree Gauss-Kruger CM 168E+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 168E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",168],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2750"],AXIS["X",NORTH],AXIS["Y",EAST]]of<flrx~„Š–œ¢¨®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôúʕ˕͕̕ΕÏ•ЕѕҕӕՕ֕וٕؕڕ Û•!Ü•"Ý•#Þ•$ß•%à•&á•'â•(ã•)ä•*å•+æ•,ç•-è•.é•/ê•0ë•1ì•2í•3î•4ï•5ð•6ñ•7ò•8ó•9ô•:õ•;ö•<÷•=ø•>ú•?û•@ü•Aý•Bþ•Cÿ•D•E•F•G•H•I•J•K•L•M •N •O •P •Q •R•S•T•U•V•W•X•Y•Z•[•\•]•^•_•`•a•b•c •d!•e"•f#•g$•h%•i&•j'•k(•l)•m*•n+•o,•p-•q.•r/•s0•t1•u2•v3•w4•x5•y6•z7•{8•|9•}:•~;• §§†U•? e‚Š7epsg ¿Pulkovo 1995 / 3-degree Gauss-Kruger CM 171E+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 171E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2751"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•@ e‚Š7epsg ÀPulkovo 1995 / 3-degree Gauss-Kruger CM 174E+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 174E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",174],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2752"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•A e‚Š7epsg ÁPulkovo 1995 / 3-degree Gauss-Kruger CM 177E+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 177E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2753"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†U•B e‚Š7epsg ÂPulkovo 1995 / 3-degree Gauss-Kruger CM 180E+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 180E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",180],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2754"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W•C e‚Š9epsg ÃPulkovo 1995 / 3-degree Gauss-Kruger CM 177W+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 177W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2755"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W•D e‚Š9epsg ÄPulkovo 1995 / 3-degree Gauss-Kruger CM 174W+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 174W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-174],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2756"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W•E e‚Š9epsg ÅPulkovo 1995 / 3-degree Gauss-Kruger CM 171W+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 171W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2757"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†W•F e‚Š9epsg ÆPulkovo 1995 / 3-degree Gauss-Kruger CM 168W+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 168W",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-168],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2758"],AXIS["X",NORTH],AXIS["Y",EAST]] áᆕG AiŠepsg ÇNAD83(HARN) / Alabama East+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Alabama East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-85.83333333333333],PARAMETER["scale_factor",0.99996],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2759"],AXIS["X",EAST],AXIS["Y",NORTH]] ÷÷†•H AS‰epsg ÈNAD83(HARN) / Alabama West+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Alabama West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-87.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2760"],AXIS["X",EAST],AXIS["Y",NORTH]] ç熕I AcŠepsg ÉNAD83(HARN) / Arizona East+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Arizona East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-110.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",213360],PARAMETER["false_northing",0],AUTHORITY["EPSG","2761"],AXIS["X",EAST],AXIS["Y",NORTH]] áᆕJ GcŠepsg ÊNAD83(HARN) / Arizona Central+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Arizona Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-111.9166666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",213360],PARAMETER["false_northing",0],AUTHORITY["EPSG","2762"],AXIS["X",EAST],AXIS["Y",NORTH]] óó† •K AWŠepsg ËNAD83(HARN) / Arizona West+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Arizona West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-113.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",213360],PARAMETER["false_northing",0],AUTHORITY["EPSG","2763"],AXIS["X",EAST],AXIS["Y",NORTH]] pp‡ •L E‚/‹-epsg ÌNAD83(HARN) / Arkansas North+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_defsPROJCS["NAD83(HARN) / Arkansas North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.23333333333333],PARAMETER["standard_parallel_2",34.93333333333333],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-92],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2764"],AXIS["X",EAST],AXIS["Y",NORTH]] €€†|•M E‚‹epsg ÍNAD83(HARN) / Arkansas South+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_defsPROJCS["NAD83(HARN) / Arkansas South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.76666666666667],PARAMETER["standard_parallel_2",33.3],PARAMETER["latitude_of_origin",32.66666666666666],PARAMETER["central_meridian",-92],PARAMETER["false_easting",400000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","2765"],AXIS["X",EAST],AXIS["Y",NORTH]] zz‡•N K‚‹#epsg ÎNAD83(HARN) / California zone 1+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_defsPROJCS["NAD83(HARN) / California zone 1",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.66666666666666],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-122],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2766"],AXIS["X",EAST],AXIS["Y",NORTH]] \\‡ •O K‚=‹Aepsg ÏNAD83(HARN) / California zone 2+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_defsPROJCS["NAD83(HARN) / California zone 2",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.83333333333334],PARAMETER["standard_parallel_2",38.33333333333334],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-122],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2767"],AXIS["X",EAST],AXIS["Y",NORTH]] rr‡ •P K‚'‹+epsg ÐNAD83(HARN) / California zone 3+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_defsPROJCS["NAD83(HARN) / California zone 3",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.06666666666667],PARAMETER["latitude_of_origin",36.5],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2768"],AXIS["X",EAST],AXIS["Y",NORTH]] ’’†j•Q K‚‹ epsg ÑNAD83(HARN) / California zone 4+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_defsPROJCS["NAD83(HARN) / California zone 4",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.25],PARAMETER["standard_parallel_2",36],PARAMETER["latitude_of_origin",35.33333333333334],PARAMETER["central_meridian",-119],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2769"],AXIS["X",EAST],AXIS["Y",NORTH]] vv‡•R K‚#‹'epsg ÒNAD83(HARN) / California zone 5+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_defsPROJCS["NAD83(HARN) / California zone 5",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.46666666666667],PARAMETER["standard_parallel_2",34.03333333333333],PARAMETER["latitude_of_origin",33.5],PARAMETER["central_meridian",-118],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2770"],AXIS["X",EAST],AXIS["Y",NORTH]] VV‡&•S K‚C‹Gepsg ÓNAD83(HARN) / California zone 6+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_defsPROJCS["NAD83(HARN) / California zone 6",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.88333333333333],PARAMETER["standard_parallel_2",32.78333333333333],PARAMETER["latitude_of_origin",32.16666666666666],PARAMETER["central_meridian",-116.25],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2771"],AXIS["X",EAST],AXIS["Y",NORTH]] LL‡0•T E‚S‹Qepsg ÔNAD83(HARN) / Colorado North+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_defsPROJCS["NAD83(HARN) / Colorado North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.78333333333333],PARAMETER["standard_parallel_2",39.71666666666667],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",914401.8289],PARAMETER["false_northing",304800.6096],AUTHORITY["EPSG","2772"],AXIS["X",EAST],AXIS["Y",NORTH]] xx‡•U I‚#‹%epsg ÕNAD83(HARN) / Colorado Central+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_defsPROJCS["NAD83(HARN) / Colorado Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.75],PARAMETER["standard_parallel_2",38.45],PARAMETER["latitude_of_origin",37.83333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",914401.8289],PARAMETER["false_northing",304800.6096],AUTHORITY["EPSG","2773"],AXIS["X",EAST],AXIS["Y",NORTH]] LL‡0•V E‚S‹Qepsg ÖNAD83(HARN) / Colorado South+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_defsPROJCS["NAD83(HARN) / Colorado South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.23333333333333],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",914401.8289],PARAMETER["false_northing",304800.6096],AUTHORITY["EPSG","2774"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  Àepsg À  Áepsg Á  Âepsg   Ãepsg à  Äepsg Ä  Åepsg Å  Æepsg Æ  Çepsg Ç  Èepsg È  Éepsg É  Êepsg Ê  Ëepsg Ë  Ìepsg Ì  Íepsg Í  Îepsg Î  Ïepsg Ï  Ðepsg Ð  Ñepsg Ñ  Òepsg Ò  Óepsg Ó  Ôepsg Ô  Õepsg Õ  Öepsg Ö  ×epsg ×  Øepsg Ø  Ùepsg Ù  Úepsg Ú  Ûepsg Û  Üepsg Ü  Ýepsg Ý  Þepsg Þ  ßepsg ß  àepsg à  áepsg á  âepsg â  ãepsg ã  äepsg ä  åepsg å  æepsg æ  çepsg ç  èepsg è  éepsg é  êepsg ê  ëepsg ë  ìepsg ì  íepsg í  îepsg î  ïepsg ï  ðepsg ð  ñepsg ñ  òepsg ò  óepsg ó  ôepsg ô  õepsg õ  öepsg ö  ÷epsg ÷  øepsg ø  ùepsg ù  úepsg ú ll‡•W ?‚9‹1epsg ×NAD83(HARN) / Connecticut+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_defsPROJCS["NAD83(HARN) / Connecticut",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.86666666666667],PARAMETER["standard_parallel_2",41.2],PARAMETER["latitude_of_origin",40.83333333333334],PARAMETER["central_meridian",-72.75],PARAMETER["false_easting",304800.6096],PARAMETER["false_northing",152400.3048],AUTHORITY["EPSG","2775"],AXIS["X",EAST],AXIS["Y",NORTH]] ë놕X 9gŠ epsg ØNAD83(HARN) / Delaware+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Delaware",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-75.41666666666667],PARAMETER["scale_factor",0.999995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2776"],AXIS["X",EAST],AXIS["Y",NORTH]] Ý݆•Y AmŠepsg ÙNAD83(HARN) / Florida East+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Florida East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2777"],AXIS["X",EAST],AXIS["Y",NORTH]] Ý݆•Z AmŠepsg ÚNAD83(HARN) / Florida West+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Florida West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-82],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2778"],AXIS["X",EAST],AXIS["Y",NORTH]] ¤¤†X•[ C}Šyepsg ÛNAD83(HARN) / Florida North+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_defsPROJCS["NAD83(HARN) / Florida North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.75],PARAMETER["standard_parallel_2",29.58333333333333],PARAMETER["latitude_of_origin",29],PARAMETER["central_meridian",-84.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2779"],AXIS["X",EAST],AXIS["Y",NORTH]] ç熕\ AcŠepsg ÜNAD83(HARN) / Georgia East+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Georgia East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-82.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2780"],AXIS["X",EAST],AXIS["Y",NORTH]] ç熕] AcŠepsg ÝNAD83(HARN) / Georgia West+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Georgia West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-84.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2781"],AXIS["X",EAST],AXIS["Y",NORTH]] ÕÕ†'•^ CsŠ!epsg ÞNAD83(HARN) / Hawaii zone 1+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Hawaii zone 1",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",18.83333333333333],PARAMETER["central_meridian",-155.5],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2782"],AXIS["X",EAST],AXIS["Y",NORTH]] ½½†?•_ C‚ Š9epsg ßNAD83(HARN) / Hawaii zone 2+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Hawaii zone 2",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",20.33333333333333],PARAMETER["central_meridian",-156.6666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2783"],AXIS["X",EAST],AXIS["Y",NORTH]] áᆕ` CgŠepsg àNAD83(HARN) / Hawaii zone 3+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Hawaii zone 3",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.16666666666667],PARAMETER["central_meridian",-158],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2784"],AXIS["X",EAST],AXIS["Y",NORTH]] Ý݆•a CkŠepsg áNAD83(HARN) / Hawaii zone 4+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Hawaii zone 4",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.83333333333333],PARAMETER["central_meridian",-159.5],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2785"],AXIS["X",EAST],AXIS["Y",NORTH]] Ñц+•b CwŠ%epsg âNAD83(HARN) / Hawaii zone 5+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Hawaii zone 5",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.66666666666667],PARAMETER["central_meridian",-160.1666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2786"],AXIS["X",EAST],AXIS["Y",NORTH]] ¼¼†@•c =‚Š3epsg ãNAD83(HARN) / Idaho East+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Idaho East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-112.1666666666667],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2787"],AXIS["X",EAST],AXIS["Y",NORTH]] ÒÒ†*•d C}Šepsg äNAD83(HARN) / Idaho Central+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Idaho Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2788"],AXIS["X",EAST],AXIS["Y",NORTH]] ÙÙ†#•e =uŠepsg åNAD83(HARN) / Idaho West+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Idaho West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-115.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",800000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2789"],AXIS["X",EAST],AXIS["Y",NORTH]] ¹¹†C•f C‚Š3epsg æNAD83(HARN) / Illinois East+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Illinois East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-88.33333333333333],PARAMETER["scale_factor",0.999975],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2790"],AXIS["X",EAST],AXIS["Y",NORTH]] ½½†?•g C‚ Š9epsg çNAD83(HARN) / Illinois West+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Illinois West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-90.16666666666667],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2791"],AXIS["X",EAST],AXIS["Y",NORTH]] Ïφ-•h A{Š'epsg èNAD83(HARN) / Indiana East+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Indiana East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-85.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",100000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","2792"],AXIS["X",EAST],AXIS["Y",NORTH]] Ïφ-•i A{Š'epsg éNAD83(HARN) / Indiana West+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Indiana West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-87.08333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",900000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","2793"],AXIS["X",EAST],AXIS["Y",NORTH]] €€†|•j =‚'‹epsg êNAD83(HARN) / Iowa North+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_defsPROJCS["NAD83(HARN) / Iowa North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.26666666666667],PARAMETER["standard_parallel_2",42.06666666666667],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",1500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","2794"],AXIS["X",EAST],AXIS["Y",NORTH]] ’’†j•k =‚‹ epsg ëNAD83(HARN) / Iowa South+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_defsPROJCS["NAD83(HARN) / Iowa South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.61666666666667],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2795"],AXIS["X",EAST],AXIS["Y",NORTH]] tt‡•l A‚/‹)epsg ìNAD83(HARN) / Kansas North+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_defsPROJCS["NAD83(HARN) / Kansas North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.78333333333333],PARAMETER["standard_parallel_2",38.71666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2796"],AXIS["X",EAST],AXIS["Y",NORTH]] ff‡•m A‚=‹7epsg íNAD83(HARN) / Kansas South+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_defsPROJCS["NAD83(HARN) / Kansas South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.56666666666667],PARAMETER["standard_parallel_2",37.26666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",400000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","2797"],AXIS["X",EAST],AXIS["Y",NORTH]] „„†x•n E‚‹epsg îNAD83(HARN) / Kentucky North+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_defsPROJCS["NAD83(HARN) / Kentucky North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",38.96666666666667],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-84.25],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2798"],AXIS["X",EAST],AXIS["Y",NORTH]] ``‡•o E‚?‹=epsg ïNAD83(HARN) / Kentucky South+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_defsPROJCS["NAD83(HARN) / Kentucky South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.93333333333333],PARAMETER["standard_parallel_2",36.73333333333333],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2799"],AXIS["X",EAST],AXIS["Y",NORTH]] ‚‚†z•p G‚‹epsg ðNAD83(HARN) / Louisiana North+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_defsPROJCS["NAD83(HARN) / Louisiana North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",32.66666666666666],PARAMETER["standard_parallel_2",31.16666666666667],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-92.5],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2800"],AXIS["X",EAST],AXIS["Y",NORTH]] œœ†`•q G‚‹epsg ñNAD83(HARN) / Louisiana South+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_defsPROJCS["NAD83(HARN) / Louisiana South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.7],PARAMETER["standard_parallel_2",29.3],PARAMETER["latitude_of_origin",28.5],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2801"],AXIS["X",EAST],AXIS["Y",NORTH]] ç熕r =gŠepsg òNAD83(HARN) / Maine East+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Maine East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2802"],AXIS["X",EAST],AXIS["Y",NORTH]] ÃÆ9•s =‚ Š3epsg óNAD83(HARN) / Maine West+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Maine West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",900000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2803"],AXIS["X",EAST],AXIS["Y",NORTH]] ®®†N•t 9}Šoepsg ôNAD83(HARN) / Maryland+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_defsPROJCS["NAD83(HARN) / Maryland",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.45],PARAMETER["standard_parallel_2",38.3],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-77],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2804"],AXIS["X",EAST],AXIS["Y",NORTH]] pp‡ •u U‚‹-epsg õNAD83(HARN) / Massachusetts Mainland+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_defsPROJCS["NAD83(HARN) / Massachusetts Mainland",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.68333333333333],PARAMETER["standard_parallel_2",41.71666666666667],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-71.5],PARAMETER["false_easting",200000],PARAMETER["false_northing",750000],AUTHORITY["EPSG","2805"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~†~•v Q‚‹epsg öNAD83(HARN) / Massachusetts Island+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_defsPROJCS["NAD83(HARN) / Massachusetts Island",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.48333333333333],PARAMETER["standard_parallel_2",41.28333333333333],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-70.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2806"],AXIS["X",EAST],AXIS["Y",NORTH]] nn‡•w E‚1‹/epsg ÷NAD83(HARN) / Michigan North+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_defsPROJCS["NAD83(HARN) / Michigan North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.08333333333334],PARAMETER["standard_parallel_2",45.48333333333333],PARAMETER["latitude_of_origin",44.78333333333333],PARAMETER["central_meridian",-87],PARAMETER["false_easting",8000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2807"],AXIS["X",EAST],AXIS["Y",NORTH]] ff‡•x I‚5‹7epsg øNAD83(HARN) / Michigan Central+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_defsPROJCS["NAD83(HARN) / Michigan Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.7],PARAMETER["standard_parallel_2",44.18333333333333],PARAMETER["latitude_of_origin",43.31666666666667],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",6000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2808"],AXIS["X",EAST],AXIS["Y",NORTH]] „„†x•y E‚‹epsg ùNAD83(HARN) / Michigan South+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_defsPROJCS["NAD83(HARN) / Michigan South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.66666666666666],PARAMETER["standard_parallel_2",42.1],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",4000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2809"],AXIS["X",EAST],AXIS["Y",NORTH]] mm‡•z G‚=‹#epsg úNAD83(HARN) / Minnesota North+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_defsPROJCS["NAD83(HARN) / Minnesota North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.63333333333333],PARAMETER["standard_parallel_2",47.03333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","2810"],AXIS["X",EAST],AXIS["Y",NORTH]] †l•{ K‚ ‹ epsg ûNAD83(HARN) / Minnesota Central+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_defsPROJCS["NAD83(HARN) / Minnesota Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.05],PARAMETER["standard_parallel_2",45.61666666666667],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","2811"],AXIS["X",EAST],AXIS["Y",NORTH]] ‚‚†z•| G‚‹epsg üNAD83(HARN) / Minnesota South+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_defsPROJCS["NAD83(HARN) / Minnesota South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.21666666666667],PARAMETER["standard_parallel_2",43.78333333333333],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","2812"],AXIS["X",EAST],AXIS["Y",NORTH]] ÙÙ†#•} IiŠepsg ýNAD83(HARN) / Mississippi East+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Mississippi East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-88.83333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2813"],AXIS["X",EAST],AXIS["Y",NORTH]] ÙÙ†#•~ IiŠepsg þNAD83(HARN) / Mississippi West+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Mississippi West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-90.33333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2814"],AXIS["X",EAST],AXIS["Y",NORTH]] ×׆%• CqŠepsg ÿNAD83(HARN) / Missouri East+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933333 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Missouri East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",35.83333333333334],PARAMETER["central_meridian",-90.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2815"],AXIS["X",EAST],AXIS["Y",NORTH]] Ñц+– IqŠ%epsg NAD83(HARN) / Missouri Central+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933333 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Missouri Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",35.83333333333334],PARAMETER["central_meridian",-92.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2816"],AXIS["X",EAST],AXIS["Y",NORTH]] ×׆%– CqŠepsg NAD83(HARN) / Missouri West+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941177 +x_0=850000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Missouri West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.16666666666666],PARAMETER["central_meridian",-94.5],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",850000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2817"],AXIS["X",EAST],AXIS["Y",NORTH]] Ì̆0– 7aŠQepsg NAD83(HARN) / Montana+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_defsPROJCS["NAD83(HARN) / Montana",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",45],PARAMETER["latitude_of_origin",44.25],PARAMETER["central_meridian",-109.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2818"],AXIS["X",EAST],AXIS["Y",NORTH]] ¶¶†F– 9uŠgepsg NAD83(HARN) / Nebraska+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_defsPROJCS["NAD83(HARN) / Nebraska",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2819"],AXIS["X",EAST],AXIS["Y",NORTH]] ×׆%– ?uŠepsg NAD83(HARN) / Nevada East+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Nevada East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-115.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",8000000],AUTHORITY["EPSG","2820"],AXIS["X",EAST],AXIS["Y",NORTH]] Ñц+– EuŠ%epsg NAD83(HARN) / Nevada Central+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Nevada Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-116.6666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",6000000],AUTHORITY["EPSG","2821"],AXIS["X",EAST],AXIS["Y",NORTH]] ×׆%– ?uŠepsg NAD83(HARN) / Nevada West+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Nevada West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-118.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",800000],PARAMETER["false_northing",4000000],AUTHORITY["EPSG","2822"],AXIS["X",EAST],AXIS["Y",NORTH]] ×׆%– CqŠepsg NAD83(HARN) / New Hampshire+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / New Hampshire",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-71.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2823"],AXIS["X",EAST],AXIS["Y",NORTH]] ç熖 =gŠepsg NAD83(HARN) / New Jersey+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / New Jersey",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2824"],AXIS["X",EAST],AXIS["Y",NORTH]] ×׆%– GmŠepsg NAD83(HARN) / New Mexico East+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / New Mexico East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-104.3333333333333],PARAMETER["scale_factor",0.999909091],PARAMETER["false_easting",165000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2825"],AXIS["X",EAST],AXIS["Y",NORTH]] ññ† – MMŠepsg NAD83(HARN) / New Mexico Central+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / New Mexico Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-106.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2826"],AXIS["X",EAST],AXIS["Y",NORTH]] ×׆%– GmŠepsg NAD83(HARN) / New Mexico West+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / New Mexico West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-107.8333333333333],PARAMETER["scale_factor",0.999916667],PARAMETER["false_easting",830000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2827"],AXIS["X",EAST],AXIS["Y",NORTH]] áᆖ CgŠepsg NAD83(HARN) / New York East+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / New York East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2828"],AXIS["X",EAST],AXIS["Y",NORTH]] ÙÙ†#– IiŠepsg NAD83(HARN) / New York Central+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / New York Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-76.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2829"],AXIS["X",EAST],AXIS["Y",NORTH]] ß߆– CiŠepsg NAD83(HARN) / New York West+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / New York West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-78.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",350000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2830"],AXIS["X",EAST],AXIS["Y",NORTH]] dd‡– Q‚/‹9epsg NAD83(HARN) / New York Long Island+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_defsPROJCS["NAD83(HARN) / New York Long Island",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.03333333333333],PARAMETER["standard_parallel_2",40.66666666666666],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-74],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2831"],AXIS["X",EAST],AXIS["Y",NORTH]] €€†|– M‚‹epsg NAD83(HARN) / North Dakota North+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_defsPROJCS["NAD83(HARN) / North Dakota North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.43333333333333],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2832"],AXIS["X",EAST],AXIS["Y",NORTH]] bb‡– M‚5‹;epsg NAD83(HARN) / North Dakota South+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_defsPROJCS["NAD83(HARN) / North Dakota South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.48333333333333],PARAMETER["standard_parallel_2",46.18333333333333],PARAMETER["latitude_of_origin",45.66666666666666],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2833"],AXIS["X",EAST],AXIS["Y",NORTH]] ŽŽ†n– =‚‹epsg NAD83(HARN) / Ohio North+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_defsPROJCS["NAD83(HARN) / Ohio North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.7],PARAMETER["standard_parallel_2",40.43333333333333],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2834"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  üepsg ü  ýepsg ý  þepsg þ  ÿepsg ÿ  epsg  epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg  epsg  epsg  epsg  epsg  epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg  !epsg !  "epsg "  #epsg #  $epsg $  %epsg %  &epsg &  'epsg '  (epsg (  )epsg )  *epsg *  +epsg +  ,epsg ,  -epsg -  .epsg .  /epsg /  0epsg 0  1epsg 1  2epsg 2  3epsg 3  4epsg 4  5epsg 5  6epsg 6 ’’†j– =‚‹ epsg NAD83(HARN) / Ohio South+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_defsPROJCS["NAD83(HARN) / Ohio South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.03333333333333],PARAMETER["standard_parallel_2",38.73333333333333],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2835"],AXIS["X",EAST],AXIS["Y",NORTH]] ŽŽ†n– E‚‹epsg NAD83(HARN) / Oklahoma North+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_defsPROJCS["NAD83(HARN) / Oklahoma North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.76666666666667],PARAMETER["standard_parallel_2",35.56666666666667],PARAMETER["latitude_of_origin",35],PARAMETER["central_meridian",-98],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2836"],AXIS["X",EAST],AXIS["Y",NORTH]] pp‡ – E‚/‹-epsg NAD83(HARN) / Oklahoma South+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_defsPROJCS["NAD83(HARN) / Oklahoma South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.23333333333333],PARAMETER["standard_parallel_2",33.93333333333333],PARAMETER["latitude_of_origin",33.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2837"],AXIS["X",EAST],AXIS["Y",NORTH]] ŠŠ†r– A‚‹epsg NAD83(HARN) / Oregon North+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_defsPROJCS["NAD83(HARN) / Oregon North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46],PARAMETER["standard_parallel_2",44.33333333333334],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2838"],AXIS["X",EAST],AXIS["Y",NORTH]] ŠŠ†r– A‚‹epsg NAD83(HARN) / Oregon South+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_defsPROJCS["NAD83(HARN) / Oregon South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44],PARAMETER["standard_parallel_2",42.33333333333334],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2839"],AXIS["X",EAST],AXIS["Y",NORTH]] ÛÛ†!– AoŠepsg NAD83(HARN) / Rhode Island+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=100000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Rhode Island",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.08333333333334],PARAMETER["central_meridian",-71.5],PARAMETER["scale_factor",0.99999375],PARAMETER["false_easting",100000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2840"],AXIS["X",EAST],AXIS["Y",NORTH]] ff‡– M‚1‹7epsg NAD83(HARN) / South Dakota North+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_defsPROJCS["NAD83(HARN) / South Dakota North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.68333333333333],PARAMETER["standard_parallel_2",44.41666666666666],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2841"],AXIS["X",EAST],AXIS["Y",NORTH]] dd‡– M‚3‹9epsg NAD83(HARN) / South Dakota South+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_defsPROJCS["NAD83(HARN) / South Dakota South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.4],PARAMETER["standard_parallel_2",42.83333333333334],PARAMETER["latitude_of_origin",42.33333333333334],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2842"],AXIS["X",EAST],AXIS["Y",NORTH]] ’’†j– ;‚‹ epsg NAD83(HARN) / Tennessee+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_defsPROJCS["NAD83(HARN) / Tennessee",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.41666666666666],PARAMETER["standard_parallel_2",35.25],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-86],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2843"],AXIS["X",EAST],AXIS["Y",NORTH]] šš†b– ?‚ ‹epsg NAD83(HARN) / Texas North+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_defsPROJCS["NAD83(HARN) / Texas North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.18333333333333],PARAMETER["standard_parallel_2",34.65],PARAMETER["latitude_of_origin",34],PARAMETER["central_meridian",-101.5],PARAMETER["false_easting",200000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","2844"],AXIS["X",EAST],AXIS["Y",NORTH]] VV‡&– O‚?‹Gepsg NAD83(HARN) / Texas North Central+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_defsPROJCS["NAD83(HARN) / Texas North Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.96666666666667],PARAMETER["standard_parallel_2",32.13333333333333],PARAMETER["latitude_of_origin",31.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","2845"],AXIS["X",EAST],AXIS["Y",NORTH]] HH‡4– C‚Y‹Uepsg NAD83(HARN) / Texas Central+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_defsPROJCS["NAD83(HARN) / Texas Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",31.88333333333333],PARAMETER["standard_parallel_2",30.11666666666667],PARAMETER["latitude_of_origin",29.66666666666667],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",700000],PARAMETER["false_northing",3000000],AUTHORITY["EPSG","2846"],AXIS["X",EAST],AXIS["Y",NORTH]] ZZ‡"– O‚;‹Cepsg NAD83(HARN) / Texas South Central+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_defsPROJCS["NAD83(HARN) / Texas South Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.28333333333333],PARAMETER["standard_parallel_2",28.38333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",600000],PARAMETER["false_northing",4000000],AUTHORITY["EPSG","2847"],AXIS["X",EAST],AXIS["Y",NORTH]] ff‡– ?‚?‹7epsg NAD83(HARN) / Texas South+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_defsPROJCS["NAD83(HARN) / Texas South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.83333333333333],PARAMETER["standard_parallel_2",26.16666666666667],PARAMETER["latitude_of_origin",25.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",300000],PARAMETER["false_northing",5000000],AUTHORITY["EPSG","2848"],AXIS["X",EAST],AXIS["Y",NORTH]] ff‡–! =‚A‹7epsg !NAD83(HARN) / Utah North+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_defsPROJCS["NAD83(HARN) / Utah North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.71666666666667],PARAMETER["latitude_of_origin",40.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","2849"],AXIS["X",EAST],AXIS["Y",NORTH]] zz‡–" A‚)‹#epsg "NAD83(HARN) / Utah Central+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_defsPROJCS["NAD83(HARN) / Utah Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.65],PARAMETER["standard_parallel_2",39.01666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","2850"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~†~–# =‚)‹epsg #NAD83(HARN) / Utah South+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_defsPROJCS["NAD83(HARN) / Utah South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.35],PARAMETER["standard_parallel_2",37.21666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",3000000],AUTHORITY["EPSG","2851"],AXIS["X",EAST],AXIS["Y",NORTH]] ýý…–$ 7W‰yepsg $NAD83(HARN) / Vermont+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Vermont",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-72.5],PARAMETER["scale_factor",0.999964286],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2852"],AXIS["X",EAST],AXIS["Y",NORTH]] xx‡–% E‚'‹%epsg %NAD83(HARN) / Virginia North+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_defsPROJCS["NAD83(HARN) / Virginia North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.2],PARAMETER["standard_parallel_2",38.03333333333333],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",3500000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","2853"],AXIS["X",EAST],AXIS["Y",NORTH]] ^^‡–& E‚A‹?epsg &NAD83(HARN) / Virginia South+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_defsPROJCS["NAD83(HARN) / Virginia South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",36.76666666666667],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",3500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","2854"],AXIS["X",EAST],AXIS["Y",NORTH]] †††v–' I‚‹epsg 'NAD83(HARN) / Washington North+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_defsPROJCS["NAD83(HARN) / Washington North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.5],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-120.8333333333333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2855"],AXIS["X",EAST],AXIS["Y",NORTH]] ff‡–( I‚5‹7epsg (NAD83(HARN) / Washington South+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_defsPROJCS["NAD83(HARN) / Washington South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.33333333333334],PARAMETER["standard_parallel_2",45.83333333333334],PARAMETER["latitude_of_origin",45.33333333333334],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2856"],AXIS["X",EAST],AXIS["Y",NORTH]] ²²†J–) OcŠkepsg )NAD83(HARN) / West Virginia North+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_defsPROJCS["NAD83(HARN) / West Virginia North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.25],PARAMETER["standard_parallel_2",39],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2857"],AXIS["X",EAST],AXIS["Y",NORTH]] „„†x–* O‚‹epsg *NAD83(HARN) / West Virginia South+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_defsPROJCS["NAD83(HARN) / West Virginia South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.88333333333333],PARAMETER["standard_parallel_2",37.48333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2858"],AXIS["X",EAST],AXIS["Y",NORTH]] nn‡–+ G‚/‹/epsg +NAD83(HARN) / Wisconsin North+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_defsPROJCS["NAD83(HARN) / Wisconsin North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46.76666666666667],PARAMETER["standard_parallel_2",45.56666666666667],PARAMETER["latitude_of_origin",45.16666666666666],PARAMETER["central_meridian",-90],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2859"],AXIS["X",EAST],AXIS["Y",NORTH]] œœ†`–, K}‹epsg ,NAD83(HARN) / Wisconsin Central+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_defsPROJCS["NAD83(HARN) / Wisconsin Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.5],PARAMETER["standard_parallel_2",44.25],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-90],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2860"],AXIS["X",EAST],AXIS["Y",NORTH]] ŒŒ†p–- G‚‹epsg -NAD83(HARN) / Wisconsin South+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_defsPROJCS["NAD83(HARN) / Wisconsin South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.06666666666667],PARAMETER["standard_parallel_2",42.73333333333333],PARAMETER["latitude_of_origin",42],PARAMETER["central_meridian",-90],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2861"],AXIS["X",EAST],AXIS["Y",NORTH]] Ý݆–. AmŠepsg .NAD83(HARN) / Wyoming East+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Wyoming East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-105.1666666666667],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2862"],AXIS["X",EAST],AXIS["Y",NORTH]]of¸flrx~„Š–œ¢¨®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôú=–>–?–@–A–B–C–D–E– F– G– H– I– J–K–L–M–N–P–Q–R–S–T–U–V–W–X–Y–Z–[–\–]– ^–!_–"`–#a–$b–%c–&d–'e–(f–)g–*h–+i–,j–-k–.m–/n–0o–1p–2q–3r–4s–5t–6v–7w–8x–9y–:{–<}–=–>€–?–@‚–Aƒ–B„–C…–D†–E‡–Fˆ–G‰–HŠ–I‹–JŒ–KŽ–L–M–N’–O“–P”–Q•–R––S—–T˜–U™–Vš–W›–Xœ–Y–Zž–[Ÿ–\ –]¡–^¢–_£–`¤–a¥–b¦–c§–d©–f«–g­–h®–i¯–j°–k±–l³–m´–nµ–o¶–p·–q ÃÆ9–/ QwŠ3epsg /NAD83(HARN) / Wyoming East Central+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Wyoming East Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-107.3333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",400000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","2863"],AXIS["X",EAST],AXIS["Y",NORTH]] ã㆖0 QWŠepsg 0NAD83(HARN) / Wyoming West Central+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Wyoming West Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-108.75],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2864"],AXIS["X",EAST],AXIS["Y",NORTH]] ÓÓ†)–1 AwŠ#epsg 1NAD83(HARN) / Wyoming West+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Wyoming West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-110.0833333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","2865"],AXIS["X",EAST],AXIS["Y",NORTH]] 00‡L–2 ]‚W‹mepsg 2NAD83(HARN) / Puerto Rico and Virgin Is.+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_defsPROJCS["NAD83(HARN) / Puerto Rico and Virgin Is.",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",18.43333333333333],PARAMETER["standard_parallel_2",18.03333333333333],PARAMETER["latitude_of_origin",17.83333333333333],PARAMETER["central_meridian",-66.43333333333334],PARAMETER["false_easting",200000],PARAMETER["false_northing",200000],AUTHORITY["EPSG","2866"],AXIS["X",EAST],AXIS["Y",NORTH]] ØØ†$–3 KeŠ!epsg 3NAD83(HARN) / Arizona East (ft)+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Arizona East (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-110.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2867"],AXIS["X",EAST],AXIS["Y",NORTH]] ÒÒ†*–4 QeŠ'epsg 4NAD83(HARN) / Arizona Central (ft)+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Arizona Central (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-111.9166666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2868"],AXIS["X",EAST],AXIS["Y",NORTH]] ä䆖5 KYŠepsg 5NAD83(HARN) / Arizona West (ft)+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Arizona West (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-113.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2869"],AXIS["X",EAST],AXIS["Y",NORTH]] 22‡J–6 Y‚M‹wepsg 6NAD83(HARN) / California zone 1 (ftUS)+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_defsPROJCS["NAD83(HARN) / California zone 1 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.66666666666666],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-122],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2870"],AXIS["X",EAST],AXIS["Y",NORTH]]333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / California zone 2 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.83333333333334],PARAMETER["standard_parallel_2",38.33333333333334],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-122],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2871"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘‡h–7 Y‚kŒepsg 7NAD83(HARN) / California zone 2 (ftUS)+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333u **‡R–8 Y‚U‹epsg 8NAD83(HARN) / California zone 3 (ftUS)+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_defsPROJCS["NAD83(HARN) / California zone 3 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.06666666666667],PARAMETER["latitude_of_origin",36.5],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2872"],AXIS["X",EAST],AXIS["Y",NORTH]] JJ‡2–9 Y‚5‹_epsg 9NAD83(HARN) / California zone 4 (ftUS)+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_defsPROJCS["NAD83(HARN) / California zone 4 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.25],PARAMETER["standard_parallel_2",36],PARAMETER["latitude_of_origin",35.33333333333334],PARAMETER["central_meridian",-119],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2873"],AXIS["X",EAST],AXIS["Y",NORTH]] ..‡N–: Y‚Q‹{epsg :NAD83(HARN) / California zone 5 (ftUS)+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_defsPROJCS["NAD83(HARN) / California zone 5 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.46666666666667],PARAMETER["standard_parallel_2",34.03333333333333],PARAMETER["latitude_of_origin",33.5],PARAMETER["central_meridian",-118],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2874"],AXIS["X",EAST],AXIS["Y",NORTH]]333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / California zone 6 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.88333333333333],PARAMETER["standard_parallel_2",32.78333333333333],PARAMETER["latitude_of_origin",32.16666666666666],PARAMETER["central_meridian",-116.25],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2875"],AXIS["X",EAST],AXIS["Y",NORTH]] "‘"‡`–< S‚sŒepsg S‚sŒepsg >NAD83(HARN) / Colorado South (ftUS)+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333~ ==‡?–? M‚Y‹aepsg ?NAD83(HARN) / Connecticut (ftUS)+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_defsPROJCS["NAD83(HARN) / Connecticut (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.86666666666667],PARAMETER["standard_parallel_2",41.2],PARAMETER["latitude_of_origin",40.83333333333334],PARAMETER["central_meridian",-72.75],PARAMETER["false_easting",1000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","2879"],AXIS["X",EAST],AXIS["Y",NORTH]] °°†L–@ G‚ŠUepsg @NAD83(HARN) / Delaware (ftUS)+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_defsPROJCS["NAD83(HARN) / Delaware (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-75.41666666666667],PARAMETER["scale_factor",0.999995],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2880"],AXIS["X",EAST],AXIS["Y",NORTH]] ¢¢†Z–A O‚ Šcepsg ANAD83(HARN) / Florida East (ftUS)+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_defsPROJCS["NAD83(HARN) / Florida East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2881"],AXIS["X",EAST],AXIS["Y",NORTH]] ¢¢†Z–B O‚ Šcepsg BNAD83(HARN) / Florida West (ftUS)+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_defsPROJCS["NAD83(HARN) / Florida West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-82],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2882"],AXIS["X",EAST],AXIS["Y",NORTH]] ww‡–C Q‚‹=epsg CNAD83(HARN) / Florida North (ftUS)+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_defsPROJCS["NAD83(HARN) / Florida North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.75],PARAMETER["standard_parallel_2",29.58333333333333],PARAMETER["latitude_of_origin",29],PARAMETER["central_meridian",-84.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2883"],AXIS["X",EAST],AXIS["Y",NORTH]] ¬¬†P–D O‚ŠYepsg DNAD83(HARN) / Georgia East (ftUS)+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_defsPROJCS["NAD83(HARN) / Georgia East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-82.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2884"],AXIS["X",EAST],AXIS["Y",NORTH]] ««†Q–E O‚Š[epsg ENAD83(HARN) / Georgia West (ftUS)+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_defsPROJCS["NAD83(HARN) / Georgia West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-84.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",2296583.333],PARAMETER["false_northing",0],AUTHORITY["EPSG","2885"],AXIS["X",EAST],AXIS["Y",NORTH]] †{–F K‚7Š}epsg FNAD83(HARN) / Idaho East (ftUS)+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_defsPROJCS["NAD83(HARN) / Idaho East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-112.1666666666667],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2886"],AXIS["X",EAST],AXIS["Y",NORTH]] ––†f–G Q‚Šiepsg GNAD83(HARN) / Idaho Central (ftUS)+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_defsPROJCS["NAD83(HARN) / Idaho Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2887"],AXIS["X",EAST],AXIS["Y",NORTH]] †_–H K‚Šiepsg HNAD83(HARN) / Idaho West (ftUS)+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_defsPROJCS["NAD83(HARN) / Idaho West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-115.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",2624666.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2888"],AXIS["X",EAST],AXIS["Y",NORTH]] oo‡ –I i‚/‹ epsg INAD83(HARN) / Indiana East (ftUS) (deprecated)+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249364.9987299975 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Indiana East (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-85.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",328083.333],PARAMETER["false_northing",818125],AUTHORITY["EPSG","2889"],AXIS["X",EAST],AXIS["Y",NORTH]] }}†–J i‚‹epsg JNAD83(HARN) / Indiana West (ftUS) (deprecated)+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249364.9987299975 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Indiana West (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-87.08333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",2952750],PARAMETER["false_northing",818125],AUTHORITY["EPSG","2890"],AXIS["X",EAST],AXIS["Y",NORTH]] HH‡4–K S‚9‹eepsg KNAD83(HARN) / Kentucky North (ftUS)+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_defsPROJCS["NAD83(HARN) / Kentucky North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",38.96666666666667],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-84.25],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2891"],AXIS["X",EAST],AXIS["Y",NORTH]]333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0001016001 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Kentucky South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.93333333333333],PARAMETER["standard_parallel_2",36.73333333333333],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","2892"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘‡h–L S‚sŒepsg LNAD83(HARN) / Kentucky South (ftUS)+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333 rr‡ –M G‚‹;epsg MNAD83(HARN) / Maryland (ftUS)+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_defsPROJCS["NAD83(HARN) / Maryland (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.45],PARAMETER["standard_parallel_2",38.3],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-77],PARAMETER["false_easting",1312333.333],PARAMETER["false_northing",0],AUTHORITY["EPSG","2893"],AXIS["X",EAST],AXIS["Y",NORTH]] 44‡H–N c‚=‹yepsg NNAD83(HARN) / Massachusetts Mainland (ftUS)+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_defsPROJCS["NAD83(HARN) / Massachusetts Mainland (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.68333333333333],PARAMETER["standard_parallel_2",41.71666666666667],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-71.5],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",2460625],AUTHORITY["EPSG","2894"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  8epsg 8  9epsg 9  :epsg :  ;epsg ;  epsg >  ?epsg ?  @epsg @  Aepsg A  Bepsg B  Cepsg C  Depsg D  Eepsg E  Fepsg F  Gepsg G  Hepsg H  Iepsg I  Jepsg J  Kepsg K  Lepsg L  Mepsg M  Nepsg N  Oepsg O  Pepsg P  Qepsg Q  Repsg R  Sepsg S  Tepsg T  Uepsg U  Vepsg V  Wepsg W  Xepsg X  Yepsg Y  Zepsg Z  [epsg [  \epsg \  ]epsg ]  ^epsg ^  _epsg _  `epsg `  aepsg a  bepsg b  cepsg c  depsg d  eepsg e  fepsg f  gepsg g  hepsg h  iepsg i  jepsg j  kepsg k  lepsg l  mepsg m  nepsg n  oepsg o  pepsg p  qepsg q  repsg r BB‡:–O _‚3‹kepsg ONAD83(HARN) / Massachusetts Island (ftUS)+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_defsPROJCS["NAD83(HARN) / Massachusetts Island (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.48333333333333],PARAMETER["standard_parallel_2",41.28333333333333],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-70.5],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2895"],AXIS["X",EAST],AXIS["Y",NORTH]] QQ‡+–P O‚G‹Iepsg PNAD83(HARN) / Michigan North (ft)+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_defsPROJCS["NAD83(HARN) / Michigan North (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.08333333333334],PARAMETER["standard_parallel_2",45.48333333333333],PARAMETER["latitude_of_origin",44.78333333333333],PARAMETER["central_meridian",-87],PARAMETER["false_easting",26246719.16],PARAMETER["false_northing",0],AUTHORITY["EPSG","2896"],AXIS["X",EAST],AXIS["Y",NORTH]] II‡3–Q S‚K‹Qepsg QNAD83(HARN) / Michigan Central (ft)+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_defsPROJCS["NAD83(HARN) / Michigan Central (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.7],PARAMETER["standard_parallel_2",44.18333333333333],PARAMETER["latitude_of_origin",43.31666666666667],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",19685039.37],PARAMETER["false_northing",0],AUTHORITY["EPSG","2897"],AXIS["X",EAST],AXIS["Y",NORTH]] jj‡–R O‚+‹3epsg RNAD83(HARN) / Michigan South (ft)+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_defsPROJCS["NAD83(HARN) / Michigan South (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.66666666666666],PARAMETER["standard_parallel_2",42.1],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",13123359.58],PARAMETER["false_northing",0],AUTHORITY["EPSG","2898"],AXIS["X",EAST],AXIS["Y",NORTH]] ——†e–S W‚Šuepsg SNAD83(HARN) / Mississippi East (ftUS)+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_defsPROJCS["NAD83(HARN) / Mississippi East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-88.83333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","2899"],AXIS["X",EAST],AXIS["Y",NORTH]] †_–T W‚Šiepsg TNAD83(HARN) / Mississippi West (ftUS)+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_defsPROJCS["NAD83(HARN) / Mississippi West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-90.33333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",2296583.333],PARAMETER["false_northing",0],AUTHORITY["EPSG","2900"],AXIS["X",EAST],AXIS["Y",NORTH]] °°†L–U AsŠmepsg UNAD83(HARN) / Montana (ft)+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_defsPROJCS["NAD83(HARN) / Montana (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",45],PARAMETER["latitude_of_origin",44.25],PARAMETER["central_meridian",-109.5],PARAMETER["false_easting",1968503.937],PARAMETER["false_northing",0],AUTHORITY["EPSG","2901"],AXIS["X",EAST],AXIS["Y",NORTH]] ©©†S–V UuŠeepsg VNAD83(HARN) / New Mexico East (ftUS)+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / New Mexico East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-104.3333333333333],PARAMETER["scale_factor",0.999909091],PARAMETER["false_easting",541337.5],PARAMETER["false_northing",0],AUTHORITY["EPSG","2902"],AXIS["X",EAST],AXIS["Y",NORTH]] µµ†G–W [kŠQepsg WNAD83(HARN) / New Mexico Central (ftUS)+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_defsPROJCS["NAD83(HARN) / New Mexico Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-106.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2903"],AXIS["X",EAST],AXIS["Y",NORTH]] ››†a–X U‚ Škepsg XNAD83(HARN) / New Mexico West (ftUS)+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_defsPROJCS["NAD83(HARN) / New Mexico West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-107.8333333333333],PARAMETER["scale_factor",0.999916667],PARAMETER["false_easting",2723091.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2904"],AXIS["X",EAST],AXIS["Y",NORTH]] µµ†G–Y QoŠWepsg YNAD83(HARN) / New York East (ftUS)+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_defsPROJCS["NAD83(HARN) / New York East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",492125],PARAMETER["false_northing",0],AUTHORITY["EPSG","2905"],AXIS["X",EAST],AXIS["Y",NORTH]] ——†e–Z W‚Šuepsg ZNAD83(HARN) / New York Central (ftUS)+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_defsPROJCS["NAD83(HARN) / New York Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-76.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",820208.3330000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","2906"],AXIS["X",EAST],AXIS["Y",NORTH]] ££†Y–[ Q‚Šcepsg [NAD83(HARN) / New York West (ftUS)+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_defsPROJCS["NAD83(HARN) / New York West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-78.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",1148291.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2907"],AXIS["X",EAST],AXIS["Y",NORTH]] ""‡Z–\ _‚MŒepsg \NAD83(HARN) / New York Long Island (ftUS)+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_defsPROJCS["NAD83(HARN) / New York Long Island (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.03333333333333],PARAMETER["standard_parallel_2",40.66666666666666],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-74],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","2908"],AXIS["X",EAST],AXIS["Y",NORTH]] dd‡–] W‚)‹9epsg ]NAD83(HARN) / North Dakota North (ft)+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_defsPROJCS["NAD83(HARN) / North Dakota North (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.43333333333333],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",1968503.937],PARAMETER["false_northing",0],AUTHORITY["EPSG","2909"],AXIS["X",EAST],AXIS["Y",NORTH]] FF‡6–^ W‚G‹Wepsg ^NAD83(HARN) / North Dakota South (ft)+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_defsPROJCS["NAD83(HARN) / North Dakota South (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.48333333333333],PARAMETER["standard_parallel_2",46.18333333333333],PARAMETER["latitude_of_origin",45.66666666666666],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",1968503.937],PARAMETER["false_northing",0],AUTHORITY["EPSG","2910"],AXIS["X",EAST],AXIS["Y",NORTH]] aa‡–_ S‚‹Sepsg _NAD83(HARN) / Oklahoma North (ftUS)+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_defsPROJCS["NAD83(HARN) / Oklahoma North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.76666666666667],PARAMETER["standard_parallel_2",35.56666666666667],PARAMETER["latitude_of_origin",35],PARAMETER["central_meridian",-98],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2911"],AXIS["X",EAST],AXIS["Y",NORTH]] CC‡9–` S‚7‹qepsg `NAD83(HARN) / Oklahoma South (ftUS)+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_defsPROJCS["NAD83(HARN) / Oklahoma South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.23333333333333],PARAMETER["standard_parallel_2",33.93333333333333],PARAMETER["latitude_of_origin",33.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2912"],AXIS["X",EAST],AXIS["Y",NORTH]] oo‡ –a K‚+‹-epsg aNAD83(HARN) / Oregon North (ft)+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_defsPROJCS["NAD83(HARN) / Oregon North (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46],PARAMETER["standard_parallel_2",44.33333333333334],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",8202099.738],PARAMETER["false_northing",0],AUTHORITY["EPSG","2913"],AXIS["X",EAST],AXIS["Y",NORTH]] oo‡ –b K‚+‹-epsg bNAD83(HARN) / Oregon South (ft)+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_defsPROJCS["NAD83(HARN) / Oregon South (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44],PARAMETER["standard_parallel_2",42.33333333333334],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",4921259.843],PARAMETER["false_northing",0],AUTHORITY["EPSG","2914"],AXIS["X",EAST],AXIS["Y",NORTH]] ee‡–c I‚‹Oepsg cNAD83(HARN) / Tennessee (ftUS)+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_defsPROJCS["NAD83(HARN) / Tennessee (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.41666666666666],PARAMETER["standard_parallel_2",35.25],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-86],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2915"],AXIS["X",EAST],AXIS["Y",NORTH]] QQ‡+–d M‚=‹Uepsg dNAD83(HARN) / Texas North (ftUS)+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_defsPROJCS["NAD83(HARN) / Texas North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.18333333333333],PARAMETER["standard_parallel_2",34.65],PARAMETER["latitude_of_origin",34],PARAMETER["central_meridian",-101.5],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",3280833.333],AUTHORITY["EPSG","2916"],AXIS["X",EAST],AXIS["Y",NORTH]]33333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000.0001016 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Texas North Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.96666666666667],PARAMETER["standard_parallel_2",32.13333333333333],PARAMETER["latitude_of_origin",31.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",6561666.667],AUTHORITY["EPSG","2917"],AXIS["X",EAST],AXIS["Y",NORTH]] "‘"‡z–f Q‚wŒ5epsg fNAD83(HARN) / Texas Central (ftUS)+proj=lcc +lat_1=31.88333333333333 +lat_2=30.116666666ª‡_–e ]‚WŒepsg eNAD83(HARN) / Texas North Central (ftUS)+proj=lcc +lat_1=33.96666666666667 +lat_2=32.133¨66667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Texas Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",31.88333333333333],PARAMETER["standard_parallel_2",30.11666666666667],PARAMETER["latitude_of_origin",29.66666666666667],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",2296583.333],PARAMETER["false_northing",9842500.000000002],AUTHORITY["EPSG","2918"],AXIS["X",EAST],AXIS["Y",NORTH]]  ‡\–g ]‚SŒepsg gNAD83(HARN) / Texas South Central (ftUS)+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_defsPROJCS["NAD83(HARN) / Texas South Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.28333333333333],PARAMETER["standard_parallel_2",28.38333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",1968500],PARAMETER["false_northing",13123333.333],AUTHORITY["EPSG","2919"],AXIS["X",EAST],AXIS["Y",NORTH]]667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.0000000001 +y_0=5000000.0001016 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Texas South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.83333333333333],PARAMETER["standard_parallel_2",26.16666666666667],PARAMETER["latitude_of_origin",25.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",16404166.667],AUTHORITY["EPSG","2920"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘‡e–h M‚mŒepsg hNAD83(HARN) / Texas South (ftUS)+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666¬ <<‡@–i G‚g‹[epsg iNAD83(HARN) / Utah North (ft)+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=999999.9999960001 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Utah North (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.71666666666667],PARAMETER["latitude_of_origin",40.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640419.948],PARAMETER["false_northing",3280839.895],AUTHORITY["EPSG","2921"],AXIS["X",EAST],AXIS["Y",NORTH]] TT‡(–j K‚I‹Eepsg jNAD83(HARN) / Utah Central (ft)+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=1999999.999992 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Utah Central (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.65],PARAMETER["standard_parallel_2",39.01666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640419.948],PARAMETER["false_northing",6561679.79],AUTHORITY["EPSG","2922"],AXIS["X",EAST],AXIS["Y",NORTH]] WW‡%–k G‚I‹Cepsg kNAD83(HARN) / Utah South (ft)+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0=2999999.999988 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / Utah South (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.35],PARAMETER["standard_parallel_2",37.21666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640419.948],PARAMETER["false_northing",9842519.685],AUTHORITY["EPSG","2923"],AXIS["X",EAST],AXIS["Y",NORTH]] 33‡I–l S‚O‹yepsg lNAD83(HARN) / Virginia North (ftUS)+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_defsPROJCS["NAD83(HARN) / Virginia North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.2],PARAMETER["standard_parallel_2",38.03333333333333],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",11482916.667],PARAMETER["false_northing",6561666.667],AUTHORITY["EPSG","2924"],AXIS["X",EAST],AXIS["Y",NORTH]]666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=999999.9998983998 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Virginia South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",36.76666666666667],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",11482916.667],PARAMETER["false_northing",3280833.333],AUTHORITY["EPSG","2925"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘‡e–m S‚mŒepsg mNAD83(HARN) / Virginia South (ftUS)+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666² JJ‡2–n W‚3‹cepsg nNAD83(HARN) / Washington North (ftUS)+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_defsPROJCS["NAD83(HARN) / Washington North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.5],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-120.8333333333333],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2926"],AXIS["X",EAST],AXIS["Y",NORTH]] **‡R–o W‚SŒepsg oNAD83(HARN) / Washington South (ftUS)+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_defsPROJCS["NAD83(HARN) / Washington South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.33333333333334],PARAMETER["standard_parallel_2",45.83333333333334],PARAMETER["latitude_of_origin",45.33333333333334],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","2927"],AXIS["X",EAST],AXIS["Y",NORTH]] AA‡;–p U‚7‹sepsg pNAD83(HARN) / Wisconsin North (ftUS)+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_defsPROJCS["NAD83(HARN) / Wisconsin North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46.76666666666667],PARAMETER["standard_parallel_2",45.56666666666667],PARAMETER["latitude_of_origin",45.16666666666666],PARAMETER["central_meridian",-90],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2928"],AXIS["X",EAST],AXIS["Y",NORTH]] oo‡ –q Y‚‹Eepsg qNAD83(HARN) / Wisconsin Central (ftUS)+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_defsPROJCS["NAD83(HARN) / Wisconsin Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.5],PARAMETER["standard_parallel_2",44.25],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-90],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2929"],AXIS["X",EAST],AXIS["Y",NORTH]] __‡–r U‚‹Uepsg rNAD83(HARN) / Wisconsin South (ftUS)+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_defsPROJCS["NAD83(HARN) / Wisconsin South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.06666666666667],PARAMETER["standard_parallel_2",42.73333333333333],PARAMETER["latitude_of_origin",42],PARAMETER["central_meridian",-90],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","2930"],AXIS["X",EAST],AXIS["Y",NORTH]] àà†–s 3‚‰{epsg sBeduaram / TM 13 NE+proj=tmerc +lat_0=0 +lon_0=13 +k=0.9996 +x_0=500000 +y_0=0 +a=6378249.2 +b=6356515 +towgs84=-106,-87,188,0,0,0,0 +units=m +no_defsPROJCS["Beduaram / TM 13 NE",GEOGCS["Beduaram",DATUM["Beduaram",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-106,-87,188,0,0,0,0],AUTHORITY["EPSG","6213"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4213"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2931"],AXIS["X",EAST],AXIS["Y",NORTH]] RR‡*–t C‚y‹!epsg tQND95 / Qatar National Grid+proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.99999 +x_0=200000 +y_0=300000 +ellps=intl +towgs84=-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706 +units=m +no_defsPROJCS["QND95 / Qatar National Grid",GEOGCS["QND95",DATUM["Qatar_National_Datum_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706],AUTHORITY["EPSG","6614"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4614"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.45],PARAMETER["central_meridian",51.21666666666667],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",200000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","2932"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 77…E–u7‰_epsg uSegara / UTM zone 50S+proj=utm +zone=50 +south +ellps=bessel +units=m +no_defsPROJCS["Segara / UTM zone 50S",GEOGCS["Segara",DATUM["Gunung_Segara",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6613"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4613"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2933"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …x–v WS‰Oepsg vSegara (Jakarta) / NEIEZ (deprecated)+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +pm=jakarta +units=m +no_defsPROJCS["Segara (Jakarta) / NEIEZ (deprecated)",GEOGCS["Segara (Jakarta)",DATUM["Gunung_Segara_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6820"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4820"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",110],PARAMETER["scale_factor",0.997],PARAMETER["false_easting",3900000],PARAMETER["false_northing",900000],AUTHORITY["EPSG","2934"],AXIS["X",EAST],AXIS["Y",NORTH]] ¹¹†C–w CyŠSepsg wPulkovo 1942 / CS63 zone A1+proj=tmerc +lat_0=0.1166666666666667 +lon_0=41.53333333333333 +k=1 +x_0=1300000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone A1",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1166666666666667],PARAMETER["central_meridian",41.53333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",1300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2935"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C–x CyŠSepsg xPulkovo 1942 / CS63 zone A2+proj=tmerc +lat_0=0.1166666666666667 +lon_0=44.53333333333333 +k=1 +x_0=2300000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone A2",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1166666666666667],PARAMETER["central_meridian",44.53333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",2300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2936"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C–y CyŠSepsg yPulkovo 1942 / CS63 zone A3+proj=tmerc +lat_0=0.1166666666666667 +lon_0=47.53333333333333 +k=1 +x_0=3300000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone A3",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1166666666666667],PARAMETER["central_meridian",47.53333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",3300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2937"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C–z CyŠSepsg zPulkovo 1942 / CS63 zone A4+proj=tmerc +lat_0=0.1166666666666667 +lon_0=50.53333333333333 +k=1 +x_0=4300000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone A4",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1166666666666667],PARAMETER["central_meridian",50.53333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",4300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2938"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C–{ CyŠSepsg {Pulkovo 1942 / CS63 zone K2+proj=tmerc +lat_0=0.1333333333333333 +lon_0=50.76666666666667 +k=1 +x_0=2300000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone K2",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1333333333333333],PARAMETER["central_meridian",50.76666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",2300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2939"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C–| CyŠSepsg |Pulkovo 1942 / CS63 zone K3+proj=tmerc +lat_0=0.1333333333333333 +lon_0=53.76666666666667 +k=1 +x_0=3300000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone K3",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1333333333333333],PARAMETER["central_meridian",53.76666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",3300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2940"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†C–} CyŠSepsg }Pulkovo 1942 / CS63 zone K4+proj=tmerc +lat_0=0.1333333333333333 +lon_0=56.76666666666667 +k=1 +x_0=4300000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone K4",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1333333333333333],PARAMETER["central_meridian",56.76666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",4300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2941"],AXIS["X",NORTH],AXIS["Y",EAST]] ûû†–~ A+Šepsg ~Porto Santo / UTM zone 28N+proj=utm +zone=28 +ellps=intl +towgs84=-499,-249,314,0,0,0,0 +units=m +no_defsPROJCS["Porto Santo / UTM zone 28N",GEOGCS["Porto Santo",DATUM["Porto_Santo_1936",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-499,-249,314,0,0,0,0],AUTHORITY["EPSG","6615"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4615"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2942"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] //…M–Im‰oepsg Selvagem Grande / UTM zone 28N+proj=utm +zone=28 +ellps=intl +units=m +no_defsPROJCS["Selvagem Grande / UTM zone 28N",GEOGCS["Selvagem Grande",DATUM["Selvagem_Grande",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6616"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4616"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2943"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …|— AG‰yepsg €NAD83(CSRS) / SCoPQ zone 2+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / SCoPQ zone 2",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-55.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2944"],AXIS["X",EAST],AXIS["Y",NORTH]] þþ…~— =GŠepsg NAD83(CSRS) / MTM zone 3+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 3",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-58.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2945"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] þþ…~— =GŠepsg ‚NAD83(CSRS) / MTM zone 4+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 4",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-61.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2946"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] þþ…~— =GŠepsg ƒNAD83(CSRS) / MTM zone 5+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 5",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-64.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2947"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] þþ…~— =GŠepsg „NAD83(CSRS) / MTM zone 6+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 6",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-67.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2948"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] þþ…~— =GŠepsg …NAD83(CSRS) / MTM zone 7+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 7",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-70.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2949"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] þþ…~— =GŠepsg †NAD83(CSRS) / MTM zone 8+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 8",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-73.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2950"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] þþ…~— =GŠepsg ‡NAD83(CSRS) / MTM zone 9+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 9",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-76.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2951"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] üü†— ?GŠepsg ˆNAD83(CSRS) / MTM zone 10+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 10",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-79.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","2952"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ºº†B— _aŠMepsg ‰NAD83(CSRS) / New Brunswick Stereographic+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=2500000 +y_0=7500000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / New Brunswick Stereographic",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-66.5],PARAMETER["scale_factor",0.999912],PARAMETER["false_easting",2500000],PARAMETER["false_northing",7500000],AUTHORITY["EPSG","2953"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ­­†O— y[ŠSepsg ŠNAD83(CSRS) / Prince Edward Isl. Stereographic (NAD83)+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=400000 +y_0=800000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Prince Edward Isl. Stereographic (NAD83)",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",47.25],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.999912],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","2954"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  tepsg t  uepsg u  vepsg v  wepsg w  xepsg x  yepsg y  zepsg z  {epsg {  |epsg |  }epsg }  ~epsg ~  epsg   €epsg €  epsg  ‚epsg ‚  ƒepsg ƒ  „epsg „  …epsg …  †epsg †  ‡epsg ‡  ˆepsg ˆ  ‰epsg ‰  Šepsg Š  ‹epsg ‹  Œepsg Œ  epsg  Žepsg Ž  epsg  epsg  ‘epsg ‘  ’epsg ’  ”epsg ”  •epsg •  –epsg –  —epsg —  ˜epsg ˜  ™epsg ™  šepsg š  ›epsg ›  œepsg œ  epsg  Ÿepsg Ÿ   epsg    ¡epsg ¡  ¢epsg ¢  £epsg £  ¤epsg ¤  ¥epsg ¥  ¦epsg ¦  §epsg §  ¨epsg ¨  «epsg «  ¬epsg ¬  ­epsg ­  ®epsg ®  ¯epsg ¯  °epsg °  ±epsg ±  ²epsg ² !!…[— AoŠepsg ‹NAD83(CSRS) / UTM zone 11N+proj=utm +zone=11 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 11N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2955"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…[— AoŠepsg ŒNAD83(CSRS) / UTM zone 12N+proj=utm +zone=12 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 12N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2956"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…[— AoŠepsg NAD83(CSRS) / UTM zone 13N+proj=utm +zone=13 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 13N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2957"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""…Z—AoŠepsg ŽNAD83(CSRS) / UTM zone 17N+proj=utm +zone=17 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 17N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2958"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""…Z—AoŠepsg NAD83(CSRS) / UTM zone 18N+proj=utm +zone=18 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 18N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2959"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""…Z—AoŠepsg NAD83(CSRS) / UTM zone 19N+proj=utm +zone=19 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 19N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2960"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""…Z—AoŠepsg ‘NAD83(CSRS) / UTM zone 20N+proj=utm +zone=20 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 20N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2961"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""…Z—AoŠepsg ’NAD83(CSRS) / UTM zone 21N+proj=utm +zone=21 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 21N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2962"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ½½†?— 7qŠ_epsg ”NAD27 / Alaska Albers+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska Albers",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",55],PARAMETER["standard_parallel_2",65],PARAMETER["latitude_of_center",50],PARAMETER["longitude_of_center",-154],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","2964"],AXIS["X",EAST],AXIS["Y",NORTH]] ŽŽ†n— C‚IŠYepsg •NAD83 / Indiana East (ftUS)+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Indiana East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-85.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",328083.333],PARAMETER["false_northing",820208.3330000002],AUTHORITY["EPSG","2965"],AXIS["X",EAST],AXIS["Y",NORTH]] œœ†`— C‚3ŠSepsg –NAD83 / Indiana West (ftUS)+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Indiana West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-87.08333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",2952750],PARAMETER["false_northing",820208.3330000002],AUTHORITY["EPSG","2966"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~†~— O‚/‹epsg —NAD83(HARN) / Indiana East (ftUS)+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_defsPROJCS["NAD83(HARN) / Indiana East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-85.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",328083.333],PARAMETER["false_northing",820208.3330000002],AUTHORITY["EPSG","2967"],AXIS["X",EAST],AXIS["Y",NORTH]] ŒŒ†p— O‚‹epsg ˜NAD83(HARN) / Indiana West (ftUS)+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_defsPROJCS["NAD83(HARN) / Indiana West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-87.08333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",2952750],PARAMETER["false_northing",820208.3330000002],AUTHORITY["EPSG","2968"],AXIS["X",EAST],AXIS["Y",NORTH]] þþ…~— C)Šepsg ™Fort Marigot / UTM zone 20N+proj=utm +zone=20 +ellps=intl +towgs84=137,248,-430,0,0,0,0 +units=m +no_defsPROJCS["Fort Marigot / UTM zone 20N",GEOGCS["Fort Marigot",DATUM["Fort_Marigot",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[137,248,-430,0,0,0,0],AUTHORITY["EPSG","6621"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4621"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2969"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] //…M—Im‰oepsg šGuadeloupe 1948 / UTM zone 20N+proj=utm +zone=20 +ellps=intl +units=m +no_defsPROJCS["Guadeloupe 1948 / UTM zone 20N",GEOGCS["Guadeloupe 1948",DATUM["Guadeloupe_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6622"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4622"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2970"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …y— 5)Šepsg ›CSG67 / UTM zone 22N+proj=utm +zone=22 +ellps=intl +towgs84=-186,230,110,0,0,0,0 +units=m +no_defsPROJCS["CSG67 / UTM zone 22N",GEOGCS["CSG67",DATUM["Centre_Spatial_Guyanais_1967",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-186,230,110,0,0,0,0],AUTHORITY["EPSG","6623"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4623"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2971"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …{— 7Š)epsg œRGFG95 / UTM zone 22N+proj=utm +zone=22 +ellps=GRS80 +towgs84=2,2,-2,0,0,0,0 +units=m +no_defsPROJCS["RGFG95 / UTM zone 22N",GEOGCS["RGFG95",DATUM["Reseau_Geodesique_Francais_Guyane_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[2,2,-2,0,0,0,0],AUTHORITY["EPSG","6624"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4624"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2972"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] //…M—Im‰oepsg Martinique 1938 / UTM zone 20N+proj=utm +zone=20 +ellps=intl +units=m +no_defsPROJCS["Martinique 1938 / UTM zone 20N",GEOGCS["Martinique 1938",DATUM["Martinique_1938",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6625"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4625"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2973"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ûû†— 5+Š+epsg ŸRGR92 / UTM zone 40S+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGR92 / UTM zone 40S",GEOGCS["RGR92",DATUM["Reseau_Geodesique_de_la_Reunion_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6627"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4627"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2975"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …|— ;3Šepsg  Tahiti 52 / UTM zone 6S+proj=utm +zone=6 +south +ellps=intl +towgs84=162,117,154,0,0,0,0 +units=m +no_defsPROJCS["Tahiti 52 / UTM zone 6S",GEOGCS["Tahiti 52",DATUM["Tahiti_52",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[162,117,154,0,0,0,0],AUTHORITY["EPSG","6628"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4628"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2976"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ??…=—!9y‰Sepsg ¡Tahaa 54 / UTM zone 5S+proj=utm +zone=5 +south +ellps=intl +units=m +no_defsPROJCS["Tahaa 54 / UTM zone 5S",GEOGCS["Tahaa 54",DATUM["Tahaa_54",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6629"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4629"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2977"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ##…Y—"Gy‰}epsg ¢IGN72 Nuku Hiva / UTM zone 7S+proj=utm +zone=7 +south +ellps=intl +units=m +no_defsPROJCS["IGN72 Nuku Hiva / UTM zone 7S",GEOGCS["IGN72 Nuku Hiva",DATUM["IGN72_Nuku_Hiva",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6630"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4630"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2978"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]of+flrx~„Š–œ¢¨®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôú¹–sº–t»–u¼–v½–w¾–x¿–yÀ–zÁ–{–|Ö}Ä–~Å–Æ—Ç—È—É—Ê—Ë—Ì—Í—ΗÏ— З Ò— Ó— Ô— ՗֗חؗٗڗۗܗݗޗߗà—á—â—ã—ä—å— æ—!ç—"é—#ê—$ë—%ì—&í—'î—(ï—+ð—,ñ—-ò—.ó—/ô—0õ—1ö—2÷—3ø—4ù—5ú—6û—7ü—8ý—9þ—:ÿ—;—<—=—>—?—@—A—B—C—D —E —F —G —H —I—J—K—L—M—N—O—P—Q—R—S—T—U—V—W—X—Y—Z —[!—\"—]#—^$—_%—`&—a'—b(—c)—d*—e ë놗# S7Š!epsg £K0 1949 / UTM zone 42S (deprecated)+proj=utm +zone=42 +south +ellps=intl +towgs84=145,-187,103,0,0,0,0 +units=m +no_defsPROJCS["K0 1949 / UTM zone 42S (deprecated)",GEOGCS["K0 1949",DATUM["K0_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[145,-187,103,0,0,0,0],AUTHORITY["EPSG","6631"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4631"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2979"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ïï† —$ C9Š'epsg ¤Combani 1950 / UTM zone 38S+proj=utm +zone=38 +south +ellps=intl +towgs84=-382,-59,-262,0,0,0,0 +units=m +no_defsPROJCS["Combani 1950 / UTM zone 38S",GEOGCS["Combani 1950",DATUM["Combani_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-382,-59,-262,0,0,0,0],AUTHORITY["EPSG","6632"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4632"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2980"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 11…K—%A{‰eepsg ¥IGN56 Lifou / UTM zone 58S+proj=utm +zone=58 +south +ellps=intl +units=m +no_defsPROJCS["IGN56 Lifou / UTM zone 58S",GEOGCS["IGN56 Lifou",DATUM["IGN56_Lifou",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6633"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4633"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2981"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÿÿ…}—&g{Š#epsg ¦IGN72 Grand Terre / UTM zone 58S (deprecated)+proj=utm +zone=58 +south +ellps=intl +units=m +no_defsPROJCS["IGN72 Grand Terre / UTM zone 58S (deprecated)",GEOGCS["IGN72 Grand Terre",DATUM["IGN72_Grande_Terre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6634"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4634"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2982"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ˜˜†d—' Y}Š{epsg §ST87 Ouvea / UTM zone 58S (deprecated)+proj=utm +zone=58 +south +ellps=intl +towgs84=-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798 +units=m +no_defsPROJCS["ST87 Ouvea / UTM zone 58S (deprecated)",GEOGCS["ST87 Ouvea",DATUM["ST87_Ouvea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798],AUTHORITY["EPSG","6635"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4635"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2983"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] &&‡V—( i‚Q‹{epsg ¨RGNC 1991 / Lambert New Caledonia (deprecated)+proj=lcc +lat_1=-20.66666666666667 +lat_2=-22.33333333333333 +lat_0=-21.5 +lon_0=166 +x_0=400000 +y_0=300000 +ellps=intl +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGNC 1991 / Lambert New Caledonia (deprecated)",GEOGCS["RGNC 1991",DATUM["Reseau_Geodesique_Nouvelle_Caledonie_1991",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6645"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4645"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-20.66666666666667],PARAMETER["standard_parallel_2",-22.33333333333333],PARAMETER["latitude_of_origin",-21.5],PARAMETER["central_meridian",166],PARAMETER["false_easting",400000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","2984"],AXIS["X",EAST],AXIS["Y",NORTH]] ³³†I—+ e)‹ epsg «Saint Pierre et Miquelon 1950 / UTM zone 21N+proj=utm +zone=21 +ellps=clrk66 +towgs84=30,430,368,0,0,0,0 +units=m +no_defsPROJCS["Saint Pierre et Miquelon 1950 / UTM zone 21N",GEOGCS["Saint Pierre et Miquelon 1950",DATUM["Saint_Pierre_et_Miquelon_1950",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[30,430,368,0,0,0,0],AUTHORITY["EPSG","6638"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4638"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2987"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK…1—,3y‰Aepsg ¬MOP78 / UTM zone 1S+proj=utm +zone=1 +south +ellps=intl +units=m +no_defsPROJCS["MOP78 / UTM zone 1S",GEOGCS["MOP78",DATUM["MOP78",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6639"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4639"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2988"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† —- =ŠCepsg ­RRAF 1991 / UTM zone 20N+proj=utm +zone=20 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RRAF 1991 / UTM zone 20N",GEOGCS["RRAF 1991",DATUM["Reseau_de_Reference_des_Antilles_Francaises_1991",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6640"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4640"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2989"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ˈ1—. Y}Šepsg ®Reunion 1947 / TM Reunion (deprecated)+proj=tmerc +lat_0=-21.11666666666667 +lon_0=55.53333333333333 +k=1 +x_0=50000 +y_0=160000 +ellps=intl +units=m +no_defsPROJCS["Reunion 1947 / TM Reunion (deprecated)",GEOGCS["Reunion 1947",DATUM["Reunion_1947",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6626"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4626"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-21.11666666666667],PARAMETER["central_meridian",55.53333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",50000],PARAMETER["false_northing",160000],AUTHORITY["EPSG","2990"],AXIS["X",EAST],AXIS["Y",NORTH]] Êʆ2—/ 9Š5epsg ¯NAD83 / Oregon Lambert+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Oregon Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",45.5],PARAMETER["latitude_of_origin",41.75],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2991"],AXIS["X",EAST],AXIS["Y",NORTH]] ®®†N—0 C‚ŠQepsg °NAD83 / Oregon Lambert (ft)+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 +datum=NAD83 +units=ft +no_defsPROJCS["NAD83 / Oregon Lambert (ft)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",45.5],PARAMETER["latitude_of_origin",41.75],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",1312335.958],PARAMETER["false_northing",0],AUTHORITY["EPSG","2992"],AXIS["X",EAST],AXIS["Y",NORTH]] ºº†B—1 EeŠcepsg ±NAD83(HARN) / Oregon Lambert+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_defsPROJCS["NAD83(HARN) / Oregon Lambert",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",45.5],PARAMETER["latitude_of_origin",41.75],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","2993"],AXIS["X",EAST],AXIS["Y",NORTH]] žž†^—2 OwŠepsg ²NAD83(HARN) / Oregon Lambert (ft)+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_defsPROJCS["NAD83(HARN) / Oregon Lambert (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",45.5],PARAMETER["latitude_of_origin",41.75],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",1312335.958],PARAMETER["false_northing",0],AUTHORITY["EPSG","2994"],AXIS["X",EAST],AXIS["Y",NORTH]] 55…G—3?{‰_epsg ³IGN53 Mare / UTM zone 58S+proj=utm +zone=58 +south +ellps=intl +units=m +no_defsPROJCS["IGN53 Mare / UTM zone 58S",GEOGCS["IGN53 Mare",DATUM["IGN53_Mare",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6641"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4641"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2995"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …c—4M{Š epsg ´ST84 Ile des Pins / UTM zone 58S+proj=utm +zone=58 +south +ellps=intl +units=m +no_defsPROJCS["ST84 Ile des Pins / UTM zone 58S",GEOGCS["ST84 Ile des Pins",DATUM["ST84_Ile_des_Pins",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6642"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4642"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2996"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ²²†J—5 ?}Šaepsg µST71 Belep / UTM zone 58S+proj=utm +zone=58 +south +ellps=intl +towgs84=-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7 +units=m +no_defsPROJCS["ST71 Belep / UTM zone 58S",GEOGCS["ST71 Belep",DATUM["ST71_Belep",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7],AUTHORITY["EPSG","6643"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4643"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2997"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --…O—6C{‰kepsg ¶NEA74 Noumea / UTM zone 58S+proj=utm +zone=58 +south +ellps=intl +units=m +no_defsPROJCS["NEA74 Noumea / UTM zone 58S",GEOGCS["NEA74 Noumea",DATUM["NEA74_Noumea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6644"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4644"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2998"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **…R—7E{‰oepsg ·Grand Comoros / UTM zone 38S+proj=utm +zone=38 +south +ellps=intl +units=m +no_defsPROJCS["Grand Comoros / UTM zone 38S",GEOGCS["Grand Comoros",DATUM["Grand_Comoros",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6646"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4646"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","2999"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ^^…—8 );ˆaepsg ¸Segara / NEIEZ+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +units=m +no_defsPROJCS["Segara / NEIEZ",GEOGCS["Segara",DATUM["Gunung_Segara",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6613"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4613"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",110],PARAMETER["scale_factor",0.997],PARAMETER["false_easting",3900000],PARAMETER["false_northing",900000],AUTHORITY["EPSG","3000"],AXIS["X",EAST],AXIS["Y",NORTH]] aa…—9 +;ˆYepsg ¹Batavia / NEIEZ+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +units=m +no_defsPROJCS["Batavia / NEIEZ",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",110],PARAMETER["scale_factor",0.997],PARAMETER["false_easting",3900000],PARAMETER["false_northing",900000],AUTHORITY["EPSG","3001"],AXIS["X",EAST],AXIS["Y",NORTH]] …k—: -‚‰+epsg ºMakassar / NEIEZ+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +units=m +no_defsPROJCS["Makassar / NEIEZ",GEOGCS["Makassar",DATUM["Makassar",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],AUTHORITY["EPSG","6257"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4257"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",110],PARAMETER["scale_factor",0.997],PARAMETER["false_easting",3900000],PARAMETER["false_northing",900000],AUTHORITY["EPSG","3002"],AXIS["X",EAST],AXIS["Y",NORTH]] ##…Y—; A?‰;epsg »Monte Mario / Italy zone 1+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Monte Mario / Italy zone 1",GEOGCS["Monte Mario",DATUM["Monte_Mario",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6265"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4265"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3003"],AXIS["X",EAST],AXIS["Y",NORTH]] !!…[—< AA‰=epsg ¼Monte Mario / Italy zone 2+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Monte Mario / Italy zone 2",GEOGCS["Monte Mario",DATUM["Monte_Mario",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6265"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4265"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",2520000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3004"],AXIS["X",EAST],AXIS["Y",NORTH]] ÐІ,—= /wŠ;epsg ½NAD83 / BC Albers+proj=aea +lat_1=50 +lat_2=58.5 +lat_0=45 +lon_0=-126 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / BC Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",50],PARAMETER["standard_parallel_2",58.5],PARAMETER["latitude_of_center",45],PARAMETER["longitude_of_center",-126],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3005"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA…;—> #‰?epsg ¾SWEREF99 TM+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 TM",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3006"],AXIS["x",NORTH],AXIS["y",EAST]] …`—? )e‰;epsg ¿SWEREF99 12 00+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 +no_defsPROJCS["SWEREF99 12 00",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3007"],AXIS["x",NORTH],AXIS["y",EAST]] …d—@ )i‰?epsg ÀSWEREF99 13 30+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 +no_defsPROJCS["SWEREF99 13 30",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13.5],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3008"],AXIS["x",NORTH],AXIS["y",EAST]] …`—A )e‰;epsg ÁSWEREF99 15 00+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 +no_defsPROJCS["SWEREF99 15 00",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3009"],AXIS["x",NORTH],AXIS["y",EAST]] …d—B )i‰?epsg ÂSWEREF99 16 30+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 +no_defsPROJCS["SWEREF99 16 30",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16.5],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3010"],AXIS["x",NORTH],AXIS["y",EAST]] …`—C )e‰;epsg ÃSWEREF99 18 00+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 +no_defsPROJCS["SWEREF99 18 00",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3011"],AXIS["x",NORTH],AXIS["y",EAST]] …f—D )k‰Aepsg ÄSWEREF99 14 15+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 +no_defsPROJCS["SWEREF99 14 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",14.25],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3012"],AXIS["x",NORTH],AXIS["y",EAST]] …f—E )k‰Aepsg ÅSWEREF99 15 45+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 +no_defsPROJCS["SWEREF99 15 45",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15.75],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3013"],AXIS["x",NORTH],AXIS["y",EAST]] …f—F )k‰Aepsg ÆSWEREF99 17 15+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 +no_defsPROJCS["SWEREF99 17 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",17.25],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3014"],AXIS["x",NORTH],AXIS["y",EAST]] …f—G )k‰Aepsg ÇSWEREF99 18 45+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 +no_defsPROJCS["SWEREF99 18 45",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18.75],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3015"],AXIS["x",NORTH],AXIS["y",EAST]] …f—H )k‰Aepsg ÈSWEREF99 20 15+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 +no_defsPROJCS["SWEREF99 20 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",20.25],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3016"],AXIS["x",NORTH],AXIS["y",EAST]] …f—I )k‰Aepsg ÉSWEREF99 21 45+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 +no_defsPROJCS["SWEREF99 21 45",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21.75],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3017"],AXIS["x",NORTH],AXIS["y",EAST]] …f—J )k‰Aepsg ÊSWEREF99 23 15+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 +no_defsPROJCS["SWEREF99 23 15",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",23.25],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3018"],AXIS["x",NORTH],AXIS["y",EAST]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  ´epsg ´  µepsg µ  ¶epsg ¶  ·epsg ·  ¸epsg ¸  ¹epsg ¹  ºepsg º  »epsg »  ¼epsg ¼  ½epsg ½  ¾epsg ¾  ¿epsg ¿  Àepsg À  Áepsg Á  Âepsg   Ãepsg à  Äepsg Ä  Åepsg Å  Æepsg Æ  Çepsg Ç  Èepsg È  Éepsg É  Êepsg Ê  Ëepsg Ë  Ìepsg Ì  Íepsg Í  Îepsg Î  Ïepsg Ï  Ðepsg Ð  Ñepsg Ñ  Òepsg Ò  Óepsg Ó  Ôepsg Ô  Õepsg Õ  Öepsg Ö  ×epsg ×  Øepsg Ø  Ùepsg Ù  Úepsg Ú  Ûepsg Û  Üepsg Ü  Ýepsg Ý  Þepsg Þ  ßepsg ß  àepsg à  áepsg á  âepsg â  ãepsg ã  äepsg ä  åepsg å  æepsg æ  çepsg ç  èepsg è  éepsg é  êepsg ê  ëepsg ë  îepsg î  ïepsg ï  ðepsg ð …g—K )Y‰Uepsg ËRT90 7.5 gon V+proj=tmerc +lat_0=0 +lon_0=11.30827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT90 7.5 gon V",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",11.30827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3019"],AXIS["X",NORTH],AXIS["Y",EAST]] …c—L %Y‰Qepsg ÌRT90 5 gon V+proj=tmerc +lat_0=0 +lon_0=13.55827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT90 5 gon V",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13.55827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3020"],AXIS["X",NORTH],AXIS["Y",EAST]] …g—M )Y‰Uepsg ÍRT90 2.5 gon V+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT90 2.5 gon V",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15.80827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3021"],AXIS["X",NORTH],AXIS["Y",EAST]] …_—N !Y‰Mepsg ÎRT90 0 gon+proj=tmerc +lat_0=0 +lon_0=18.05827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT90 0 gon",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18.05827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3022"],AXIS["X",NORTH],AXIS["Y",EAST]] …g—O )Y‰Uepsg ÏRT90 2.5 gon O+proj=tmerc +lat_0=0 +lon_0=20.30827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT90 2.5 gon O",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",20.30827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3023"],AXIS["X",NORTH],AXIS["Y",EAST]] …c—P %Y‰Qepsg ÐRT90 5 gon O+proj=tmerc +lat_0=0 +lon_0=22.55827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT90 5 gon O",GEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",22.55827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3024"],AXIS["X",NORTH],AXIS["Y",EAST]] ""…Z—Q )Y‰;epsg ÑRT38 7.5 gon V+proj=tmerc +lat_0=0 +lon_0=11.30827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT38 7.5 gon V",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",11.30827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3025"],AXIS["X",NORTH],AXIS["Y",EAST]] &&…V—R %Y‰7epsg ÒRT38 5 gon V+proj=tmerc +lat_0=0 +lon_0=13.55827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT38 5 gon V",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13.55827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3026"],AXIS["X",NORTH],AXIS["Y",EAST]] ""…Z—S )Y‰;epsg ÓRT38 2.5 gon V+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT38 2.5 gon V",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15.80827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3027"],AXIS["X",NORTH],AXIS["Y",EAST]] **…R—T !Y‰3epsg ÔRT38 0 gon+proj=tmerc +lat_0=0 +lon_0=18.05827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT38 0 gon",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18.05827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3028"],AXIS["X",NORTH],AXIS["Y",EAST]] ""…Z—U )Y‰;epsg ÕRT38 2.5 gon O+proj=tmerc +lat_0=0 +lon_0=20.30827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT38 2.5 gon O",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",20.30827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3029"],AXIS["X",NORTH],AXIS["Y",EAST]] &&…V—V %Y‰7epsg ÖRT38 5 gon O+proj=tmerc +lat_0=0 +lon_0=22.55827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT38 5 gon O",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",22.55827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3030"],AXIS["X",NORTH],AXIS["Y",EAST]] ûû†—W Ya‰Qepsg ×WGS 84 / Antarctic Polar Stereographic+proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / Antarctic Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-71],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3031"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] ˈ1—X o{Šepsg ØWGS 84 / Australian Antarctic Polar Stereographic+proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=70 +k=1 +x_0=6000000 +y_0=6000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / Australian Antarctic Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-71],PARAMETER["central_meridian",70],PARAMETER["scale_factor",1],PARAMETER["false_easting",6000000],PARAMETER["false_northing",6000000],AUTHORITY["EPSG","3032"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] §§†U—Y W‚ ŠSepsg ÙWGS 84 / Australian Antarctic Lambert+proj=lcc +lat_1=-68.5 +lat_2=-74.5 +lat_0=-50 +lon_0=70 +x_0=6000000 +y_0=6000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / Australian Antarctic Lambert",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.5],PARAMETER["standard_parallel_2",-74.5],PARAMETER["latitude_of_origin",-50],PARAMETER["central_meridian",70],PARAMETER["false_easting",6000000],PARAMETER["false_northing",6000000],AUTHORITY["EPSG","3033"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÆÆ†6—Z /aŠeepsg ÚETRS89 / ETRS-LCC+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4000000 +y_0=2800000 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-LCC",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35],PARAMETER["standard_parallel_2",65],PARAMETER["latitude_of_origin",52],PARAMETER["central_meridian",10],PARAMETER["false_easting",4000000],PARAMETER["false_northing",2800000],AUTHORITY["EPSG","3034"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ((…T—[ 1;‰Eepsg ÛETRS89 / ETRS-LAEA+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-LAEA",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],AUTHORITY["EPSG","3035"],AXIS["Y",NORTH],AXIS["X",EAST]]   …q—\ 71Šepsg ÜMoznet / UTM zone 36S+proj=utm +zone=36 +south +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +units=m +no_defsPROJCS["Moznet / UTM zone 36S",GEOGCS["Moznet",DATUM["Moznet_ITRF94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,-0,-0,-0,0],AUTHORITY["EPSG","6130"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4130"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3036"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …q—] 71Šepsg ÝMoznet / UTM zone 37S+proj=utm +zone=37 +south +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +units=m +no_defsPROJCS["Moznet / UTM zone 37S",GEOGCS["Moznet",DATUM["Moznet_ITRF94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,-0,-0,-0,0],AUTHORITY["EPSG","6130"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4130"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3037"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…H—^1o‰{epsg ÞETRS89 / ETRS-TM26+proj=utm +zone=26 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM26",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3038"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 44…H—_1o‰{epsg ßETRS89 / ETRS-TM27+proj=utm +zone=27 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM27",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3039"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 44…H—`1o‰{epsg àETRS89 / ETRS-TM28+proj=utm +zone=28 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM28",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3040"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 55…G—a1o‰yepsg áETRS89 / ETRS-TM29+proj=utm +zone=29 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM29",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3041"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 55…G—b1o‰yepsg âETRS89 / ETRS-TM30+proj=utm +zone=30 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM30",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3042"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 66…F—c1o‰wepsg ãETRS89 / ETRS-TM31+proj=utm +zone=31 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM31",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3043"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 66…F—d1o‰wepsg äETRS89 / ETRS-TM32+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM32",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3044"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 55…G—e1o‰yepsg åETRS89 / ETRS-TM33+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM33",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3045"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 55…G—f1o‰yepsg æETRS89 / ETRS-TM34+proj=utm +zone=34 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM34",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3046"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 55…G—g1o‰yepsg çETRS89 / ETRS-TM35+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM35",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3047"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 55…G—h1o‰yepsg èETRS89 / ETRS-TM36+proj=utm +zone=36 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM36",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3048"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 55…G—i1o‰yepsg éETRS89 / ETRS-TM37+proj=utm +zone=37 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM37",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3049"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 55…G—j1o‰yepsg êETRS89 / ETRS-TM38+proj=utm +zone=38 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM38",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3050"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] 55…G—k1o‰yepsg ëETRS89 / ETRS-TM39+proj=utm +zone=39 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM39",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3051"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] …z—n C%Šepsg îHjorsey 1955 / UTM zone 26N+proj=utm +zone=26 +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +units=m +no_defsPROJCS["Hjorsey 1955 / UTM zone 26N",GEOGCS["Hjorsey 1955",DATUM["Hjorsey_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-73,46,-86,0,0,0,0],AUTHORITY["EPSG","6658"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4658"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3054"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …z—o C%Šepsg ïHjorsey 1955 / UTM zone 27N+proj=utm +zone=27 +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +units=m +no_defsPROJCS["Hjorsey 1955 / UTM zone 27N",GEOGCS["Hjorsey 1955",DATUM["Hjorsey_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-73,46,-86,0,0,0,0],AUTHORITY["EPSG","6658"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4658"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3055"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …z—p C%Šepsg ðHjorsey 1955 / UTM zone 28N+proj=utm +zone=28 +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +units=m +no_defsPROJCS["Hjorsey 1955 / UTM zone 28N",GEOGCS["Hjorsey 1955",DATUM["Hjorsey_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-73,46,-86,0,0,0,0],AUTHORITY["EPSG","6658"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4658"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3056"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¬¬†P—q 5‚Š[epsg ñISN93 / Lambert 1993+proj=lcc +lat_1=64.25 +lat_2=65.75 +lat_0=65 +lon_0=-19 +x_0=500000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["ISN93 / Lambert 1993",GEOGCS["ISN93",DATUM["Islands_Network_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6659"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4659"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",64.25],PARAMETER["standard_parallel_2",65.75],PARAMETER["latitude_of_origin",65],PARAMETER["central_meridian",-19],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3057"],AXIS["X",EAST],AXIS["Y",NORTH]] ——†e—r C‚KŠEepsg òHelle 1954 / Jan Mayen Grid+proj=tmerc +lat_0=0 +lon_0=-8.5 +k=1 +x_0=50000 +y_0=-7800000 +ellps=intl +towgs84=982.609,552.753,-540.873,32.3934,-153.257,-96.2266,16.805 +units=m +no_defsPROJCS["Helle 1954 / Jan Mayen Grid",GEOGCS["Helle 1954",DATUM["Helle_1954",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[982.609,552.753,-540.873,32.3934,-153.257,-96.2266,16.805],AUTHORITY["EPSG","6660"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4660"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-8.5],PARAMETER["scale_factor",1],PARAMETER["false_easting",50000],PARAMETER["false_northing",-7800000],AUTHORITY["EPSG","3058"],AXIS["x",NORTH],AXIS["y",EAST]] þþ…~—s /}‰Yepsg óLKS92 / Latvia TM+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=-6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["LKS92 / Latvia TM",GEOGCS["LKS92",DATUM["Latvia_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6661"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4661"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",-6000000],AUTHORITY["EPSG","3059"],AXIS["X",NORTH],AXIS["Y",EAST]] …g—tO{Šepsg ôIGN72 Grande Terre / UTM zone 58S+proj=utm +zone=58 +south +ellps=intl +units=m +no_defsPROJCS["IGN72 Grande Terre / UTM zone 58S",GEOGCS["IGN72 Grande Terre",DATUM["IGN72_Grande_Terre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6634"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4662"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3060"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ++…Q—uKm‰uepsg õPorto Santo 1995 / UTM zone 28N+proj=utm +zone=28 +ellps=intl +units=m +no_defsPROJCS["Porto Santo 1995 / UTM zone 28N",GEOGCS["Porto Santo 1995",DATUM["Porto_Santo_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6663"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4663"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3061"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …i—vSmŠepsg öAzores Oriental 1995 / UTM zone 26N+proj=utm +zone=26 +ellps=intl +units=m +no_defsPROJCS["Azores Oriental 1995 / UTM zone 26N",GEOGCS["Azores Oriental 1995",DATUM["Azores_Oriental_Islands_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6664"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4664"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3062"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …e—wQmŠepsg ÷Azores Central 1995 / UTM zone 26N+proj=utm +zone=26 +ellps=intl +units=m +no_defsPROJCS["Azores Central 1995 / UTM zone 26N",GEOGCS["Azores Central 1995",DATUM["Azores_Central_Islands_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6665"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4665"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3063"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …n—x 5Šepsg øIGM95 / UTM zone 32N+proj=utm +zone=32 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["IGM95 / UTM zone 32N",GEOGCS["IGM95",DATUM["Istituto_Geografico_Militaire_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6670"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4670"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3064"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …o—y 5Šepsg ùIGM95 / UTM zone 33N+proj=utm +zone=33 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["IGM95 / UTM zone 33N",GEOGCS["IGM95",DATUM["Istituto_Geografico_Militaire_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6670"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4670"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3065"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …a—z -M‰Qepsg úED50 / Jordan TM+proj=tmerc +lat_0=0 +lon_0=37 +k=0.9998 +x_0=500000 +y_0=-3000000 +ellps=intl +units=m +no_defsPROJCS["ED50 / Jordan TM",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",37],PARAMETER["scale_factor",0.9998],PARAMETER["false_easting",500000],PARAMETER["false_northing",-3000000],AUTHORITY["EPSG","3066"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] //…M—{7o‰epsg ûETRS89 / ETRS-TM35FIN+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-TM35FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3067"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] úú†—| 7‚‰Gepsg üDHDN / Soldner Berlin+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 +x_0=40000 +y_0=10000 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / Soldner Berlin",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",52.41864827777778],PARAMETER["central_meridian",13.62720366666667],PARAMETER["false_easting",40000],PARAMETER["false_northing",10000],AUTHORITY["EPSG","3068"],AXIS["x",NORTH],AXIS["y",EAST]] Ý݆—} WmŠepsg ýNAD27 / Wisconsin Transverse Mercator+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=500000 +y_0=-4500000 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Wisconsin Transverse Mercator",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-90],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",-4500000],AUTHORITY["EPSG","3069"],AXIS["X",EAST],AXIS["Y",NORTH]] ç熗~ Wk‰qepsg þNAD83 / Wisconsin Transverse Mercator+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y_0=-4480000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Wisconsin Transverse Mercator",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-90],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",520000],PARAMETER["false_northing",-4480000],AUTHORITY["EPSG","3070"],AXIS["X",EAST],AXIS["Y",NORTH]] ×׆%— cQŠepsg ÿNAD83(HARN) / Wisconsin Transverse Mercator+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y_0=-4480000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Wisconsin Transverse Mercator",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-90],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",520000],PARAMETER["false_northing",-4480000],AUTHORITY["EPSG","3071"],AXIS["X",EAST],AXIS["Y",NORTH]] ã㆘ ?‚‰uepsg NAD83 / Maine CS2000 East+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0.99998 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Maine CS2000 East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-67.875],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3072"],AXIS["X",EAST],AXIS["Y",NORTH]] áᆘ _i‰wepsg NAD83 / Maine CS2000 Central (deprecated)+proj=tmerc +lat_0=43 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Maine CS2000 Central (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-69.125],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3073"],AXIS["X",EAST],AXIS["Y",NORTH]] ã㆘ ?‚‰uepsg NAD83 / Maine CS2000 West+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0.99998 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Maine CS2000 West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.375],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3074"],AXIS["X",EAST],AXIS["Y",NORTH]] ÓÓ†)˜ KmŠ#epsg NAD83(HARN) / Maine CS2000 East+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0.99998 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Maine CS2000 East",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-67.875],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3075"],AXIS["X",EAST],AXIS["Y",NORTH]] Ñц+˜ kOŠ%epsg NAD83(HARN) / Maine CS2000 Central (deprecated)+proj=tmerc +lat_0=43 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Maine CS2000 Central (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-69.125],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3076"],AXIS["X",EAST],AXIS["Y",NORTH]] ÓÓ†)˜ KmŠ#epsg NAD83(HARN) / Maine CS2000 West+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0.99998 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Maine CS2000 West",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.375],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3077"],AXIS["X",EAST],AXIS["Y",NORTH]] [[‡!˜ O‚=‹?epsg NAD83 / Michigan Oblique Mercator+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Michigan Oblique Mercator",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",45.30916666666666],PARAMETER["longitude_of_center",-86],PARAMETER["azimuth",337.25556],PARAMETER["rectified_grid_angle",337.25556],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",2546731.496],PARAMETER["false_northing",-4354009.816],AUTHORITY["EPSG","3078"],AXIS["X",EAST],AXIS["Y",NORTH]] KK‡1˜ [‚#‹mepsg NAD83(HARN) / Michigan Oblique Mercator+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Michigan Oblique Mercator",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",45.30916666666666],PARAMETER["longitude_of_center",-86],PARAMETER["azimuth",337.25556],PARAMETER["rectified_grid_angle",337.25556],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",2546731.496],PARAMETER["false_northing",-4354009.816],AUTHORITY["EPSG","3079"],AXIS["X",EAST],AXIS["Y",NORTH]] ii‡˜ 3‚Y‹#epsg NAD27 / Shackleford+proj=lcc +lat_1=27.41666666666667 +lat_2=34.91666666666666 +lat_0=31.16666666666667 +lon_0=-100 +x_0=914400 +y_0=914400 +ellps=clrk66 +datum=NAD27 +units=ft +no_defsPROJCS["NAD27 / Shackleford",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.41666666666667],PARAMETER["standard_parallel_2",34.91666666666666],PARAMETER["latitude_of_origin",31.16666666666667],PARAMETER["central_meridian",-100],PARAMETER["false_easting",3000000],PARAMETER["false_northing",3000000],AUTHORITY["EPSG","3080"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  òepsg ò  óepsg ó  ôepsg ô  õepsg õ  öepsg ö  ÷epsg ÷  øepsg ø  ùepsg ù  úepsg ú  ûepsg û  üepsg ü  ýepsg ý  þepsg þ  ÿepsg ÿ  epsg  epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg  epsg  epsg  epsg  epsg  epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg  !epsg !  "epsg "  #epsg #  $epsg $  %epsg %  &epsg &  'epsg '  (epsg (  )epsg )  *epsg *  +epsg +  ,epsg , XX‡$˜ Q‚Y‹'epsg NAD83 / Texas State Mapping System+proj=lcc +lat_1=27.41666666666667 +lat_2=34.91666666666666 +lat_0=31.16666666666667 +lon_0=-100 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Texas State Mapping System",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.41666666666667],PARAMETER["standard_parallel_2",34.91666666666666],PARAMETER["latitude_of_origin",31.16666666666667],PARAMETER["central_meridian",-100],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3081"],AXIS["X",EAST],AXIS["Y",NORTH]] ¤¤†X˜ [‚Š[epsg NAD83 / Texas Centric Lambert Conformal+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=5000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Texas Centric Lambert Conformal",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.5],PARAMETER["standard_parallel_2",35],PARAMETER["latitude_of_origin",18],PARAMETER["central_meridian",-100],PARAMETER["false_easting",1500000],PARAMETER["false_northing",5000000],AUTHORITY["EPSG","3082"],AXIS["X",EAST],AXIS["Y",NORTH]] ¥¥†W˜ [‚ŠYepsg NAD83 / Texas Centric Albers Equal Area+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=6000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Texas Centric Albers Equal Area",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",27.5],PARAMETER["standard_parallel_2",35],PARAMETER["latitude_of_center",18],PARAMETER["longitude_of_center",-100],PARAMETER["false_easting",1500000],PARAMETER["false_northing",6000000],AUTHORITY["EPSG","3083"],AXIS["X",EAST],AXIS["Y",NORTH]] ””†h˜ gi‹ epsg NAD83(HARN) / Texas Centric Lambert Conformal+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_defsPROJCS["NAD83(HARN) / Texas Centric Lambert Conformal",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.5],PARAMETER["standard_parallel_2",35],PARAMETER["latitude_of_origin",18],PARAMETER["central_meridian",-100],PARAMETER["false_easting",1500000],PARAMETER["false_northing",5000000],AUTHORITY["EPSG","3084"],AXIS["X",EAST],AXIS["Y",NORTH]] ••†g˜ gi‹epsg NAD83(HARN) / Texas Centric Albers Equal Area+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_defsPROJCS["NAD83(HARN) / Texas Centric Albers Equal Area",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",27.5],PARAMETER["standard_parallel_2",35],PARAMETER["latitude_of_center",18],PARAMETER["longitude_of_center",-100],PARAMETER["false_easting",1500000],PARAMETER["false_northing",6000000],AUTHORITY["EPSG","3085"],AXIS["X",EAST],AXIS["Y",NORTH]] Ïφ-˜ AsŠ/epsg NAD83 / Florida GDL Albers+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Florida GDL Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",24],PARAMETER["standard_parallel_2",31.5],PARAMETER["latitude_of_center",24],PARAMETER["longitude_of_center",-84],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3086"],AXIS["X",EAST],AXIS["Y",NORTH]] ¿¿†=˜ MYŠ]epsg NAD83(HARN) / Florida GDL Albers+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_defsPROJCS["NAD83(HARN) / Florida GDL Albers",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",24],PARAMETER["standard_parallel_2",31.5],PARAMETER["latitude_of_center",24],PARAMETER["longitude_of_center",-84],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3087"],AXIS["X",EAST],AXIS["Y",NORTH]] ``‡˜ E‚]‹epsg NAD83 / Kentucky Single Zone+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Kentucky Single Zone",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.08333333333334],PARAMETER["standard_parallel_2",38.66666666666666],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",1500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3088"],AXIS["X",EAST],AXIS["Y",NORTH]] &&‡V˜ S‚y‹iepsg NAD83 / Kentucky Single Zone (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Kentucky Single Zone (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.08333333333334],PARAMETER["standard_parallel_2",38.66666666666666],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",4921250],PARAMETER["false_northing",3280833.333],AUTHORITY["EPSG","3089"],AXIS["X",EAST],AXIS["Y",NORTH]] PP‡,˜ Q‚C‹Mepsg NAD83(HARN) / Kentucky Single Zone+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_defsPROJCS["NAD83(HARN) / Kentucky Single Zone",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.08333333333334],PARAMETER["standard_parallel_2",38.66666666666666],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",1500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3090"],AXIS["X",EAST],AXIS["Y",NORTH]]666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=999999.9998983998 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Kentucky Single Zone (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.08333333333334],PARAMETER["standard_parallel_2",38.66666666666666],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",4921250],PARAMETER["false_northing",3280833.333],AUTHORITY["EPSG","3091"],AXIS["X",EAST],AXIS["Y",NORTH]] á‘á…,˜5q‰=epsg Tokyo / UTM zone 51N+proj=utm +zone=51 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / UTM zone 51N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3092"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]‡f˜ _‚_Œepsg NAD83(HARN) / Kentucky Single Zone (ftUS)+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66W PP…,˜5q‰=epsg Tokyo / UTM zone 52N+proj=utm +zone=52 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / UTM zone 52N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3093"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] PP…,˜5q‰=epsg Tokyo / UTM zone 53N+proj=utm +zone=53 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / UTM zone 53N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3094"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] PP…,˜5q‰=epsg Tokyo / UTM zone 54N+proj=utm +zone=54 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / UTM zone 54N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3095"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]ofŸflrx~„Š–œ¢¨®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôú,—g-—h.—i/—j0—k1—n2—o3—p4—q5—r6—s7—t8—u9—v:—w;—x<—y=—z>—{?—|@—}A—~B—C˜D˜E˜F˜G˜H˜I˜J˜K˜M˜ N˜ O˜ P˜ Q˜ R˜S˜T˜U˜V˜X˜Y˜Z˜[˜]˜^˜_˜`˜a˜b˜c˜d˜e˜ f˜!g˜"h˜#i˜$j˜%k˜&l˜'m˜(n˜)o˜*p˜+q˜,r˜-s˜.t˜/u˜0v˜1w˜2x˜3y˜4z˜5{˜6|˜7}˜8~˜9˜:€˜;˜<‚˜=ƒ˜>„˜?…˜@†˜A‡˜Bˆ˜D‰˜E‹˜FŒ˜G˜JŽ˜K˜L˜M‘˜N’˜O“˜P”˜Q•˜R–˜S—˜T˜˜U™˜Vš˜W›˜Xœ˜Y˜Zž˜[ PP…,˜5q‰=epsg Tokyo / UTM zone 55N+proj=utm +zone=55 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / UTM zone 55N",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3096"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …r˜ 9Šepsg JGD2000 / UTM zone 51N+proj=utm +zone=51 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / UTM zone 51N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3097"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …r˜ 9Šepsg JGD2000 / UTM zone 52N+proj=utm +zone=52 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / UTM zone 52N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3098"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …r˜ 9Šepsg JGD2000 / UTM zone 53N+proj=utm +zone=53 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / UTM zone 53N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3099"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …r˜ 9Šepsg JGD2000 / UTM zone 54N+proj=utm +zone=54 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / UTM zone 54N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3100"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …r˜ 9Šepsg JGD2000 / UTM zone 55N+proj=utm +zone=55 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JGD2000 / UTM zone 55N",GEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3101"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ))‡S˜ eƒ ‹=epsg American Samoa 1962 / American Samoa Lambert+proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.26666666666667 +lon_0=-170 +k_0=1 +x_0=152400.3048006096 +y_0=95169.31165862332 +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +units=us-ft +no_defsPROJCS["American Samoa 1962 / American Samoa Lambert",GEOGCS["American Samoa 1962",DATUM["American_Samoa_1962",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-115,118,426,0,0,0,0],AUTHORITY["EPSG","6169"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4169"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",-14.26666666666667],PARAMETER["central_meridian",-170],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",312234.65],AUTHORITY["EPSG","3102"],AXIS["X",EAST],AXIS["Y",NORTH]]   …p˜cqŠepsg Mauritania 1999 / UTM zone 28N (deprecated)+proj=utm +zone=28 +ellps=clrk80 +units=m +no_defsPROJCS["Mauritania 1999 / UTM zone 28N (deprecated)",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6681"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4681"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3103"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …o˜ cqŠepsg Mauritania 1999 / UTM zone 29N (deprecated)+proj=utm +zone=29 +ellps=clrk80 +units=m +no_defsPROJCS["Mauritania 1999 / UTM zone 29N (deprecated)",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6681"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4681"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3104"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …o˜!cqŠepsg !Mauritania 1999 / UTM zone 30N (deprecated)+proj=utm +zone=30 +ellps=clrk80 +units=m +no_defsPROJCS["Mauritania 1999 / UTM zone 30N (deprecated)",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6681"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4681"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3105"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÆÆ†6˜" emŠ#epsg "Gulshan 303 / Bangladesh Transverse Mercator+proj=tmerc +lat_0=0 +lon_0=90 +k=0.9996 +x_0=500000 +y_0=0 +a=6377276.345 +b=6356075.41314024 +units=m +no_defsPROJCS["Gulshan 303 / Bangladesh Transverse Mercator",GEOGCS["Gulshan 303",DATUM["Gulshan_303",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6682"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4682"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",90],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3106"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ——†e˜# 1‚‹ epsg #GDA94 / SA Lambert+proj=lcc +lat_1=-28 +lat_2=-36 +lat_0=-32 +lon_0=135 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / SA Lambert",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-28],PARAMETER["standard_parallel_2",-36],PARAMETER["latitude_of_origin",-32],PARAMETER["central_meridian",135],PARAMETER["false_easting",1000000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","3107"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÓÓ†)˜$ 9qŠ1epsg $ETRS89 / Guernsey Grid+proj=tmerc +lat_0=49.5 +lon_0=-2.416666666666667 +k=0.999997 +x_0=47000 +y_0=50000 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Guernsey Grid",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",49.5],PARAMETER["central_meridian",-2.416666666666667],PARAMETER["scale_factor",0.999997],PARAMETER["false_easting",47000],PARAMETER["false_northing",50000],AUTHORITY["EPSG","3108"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] †:˜% SqŠ9epsg %ETRS89 / Jersey Transverse Mercator+proj=tmerc +lat_0=49.225 +lon_0=-2.135 +k=0.9999999000000001 +x_0=40000 +y_0=70000 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Jersey Transverse Mercator",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",49.225],PARAMETER["central_meridian",-2.135],PARAMETER["scale_factor",0.9999999],PARAMETER["false_easting",40000],PARAMETER["false_northing",70000],AUTHORITY["EPSG","3109"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¼¼†@˜& /mŠmepsg &AGD66 / Vicgrid66+proj=lcc +lat_1=-36 +lat_2=-38 +lat_0=-37 +lon_0=145 +x_0=2500000 +y_0=4500000 +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / Vicgrid66",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-36],PARAMETER["standard_parallel_2",-38],PARAMETER["latitude_of_origin",-37],PARAMETER["central_meridian",145],PARAMETER["false_easting",2500000],PARAMETER["false_northing",4500000],AUTHORITY["EPSG","3110"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ™™†c˜' /‚‹ epsg 'GDA94 / Vicgrid94+proj=lcc +lat_1=-36 +lat_2=-38 +lat_0=-37 +lon_0=145 +x_0=2500000 +y_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / Vicgrid94",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-36],PARAMETER["standard_parallel_2",-38],PARAMETER["latitude_of_origin",-37],PARAMETER["central_meridian",145],PARAMETER["false_easting",2500000],PARAMETER["false_northing",2500000],AUTHORITY["EPSG","3111"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] †m˜( U{‹epsg (GDA94 / Geoscience Australia Lambert+proj=lcc +lat_1=-18 +lat_2=-36 +lat_0=0 +lon_0=134 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / Geoscience Australia Lambert",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-18],PARAMETER["standard_parallel_2",-36],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",134],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3112"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÞÞ†˜) )Šepsg )GDA94 / BCSG02+proj=tmerc +lat_0=-28 +lon_0=153 +k=0.99999 +x_0=50000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / BCSG02",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-28],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",50000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","3113"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] oo‡ ˜* W‚3‹epsg *MAGNA-SIRGAS / Colombia Far West zone+proj=tmerc +lat_0=4.596200416666666 +lon_0=-80.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["MAGNA-SIRGAS / Colombia Far West zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.596200416666666],PARAMETER["central_meridian",-80.07750791666666],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3114"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ww‡˜+ O‚3‹epsg +MAGNA-SIRGAS / Colombia West zone+proj=tmerc +lat_0=4.596200416666666 +lon_0=-77.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["MAGNA-SIRGAS / Colombia West zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.596200416666666],PARAMETER["central_meridian",-77.07750791666666],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3115"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ss‡ ˜, S‚3‹epsg ,MAGNA-SIRGAS / Colombia Bogota zone+proj=tmerc +lat_0=4.596200416666666 +lon_0=-74.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["MAGNA-SIRGAS / Colombia Bogota zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.596200416666666],PARAMETER["central_meridian",-74.07750791666666],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3116"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] gg‡˜- _‚3‹!epsg -MAGNA-SIRGAS / Colombia East Central zone+proj=tmerc +lat_0=4.596200416666666 +lon_0=-71.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["MAGNA-SIRGAS / Colombia East Central zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.596200416666666],PARAMETER["central_meridian",-71.07750791666666],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3117"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ww‡˜. O‚3‹epsg .MAGNA-SIRGAS / Colombia East zone+proj=tmerc +lat_0=4.596200416666666 +lon_0=-68.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["MAGNA-SIRGAS / Colombia East zone",GEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.596200416666666],PARAMETER["central_meridian",-68.07750791666666],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3118"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ÄĆ8˜/ 9‚Š'epsg /Douala 1948 / AEF west+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_defsPROJCS["Douala 1948 / AEF west",GEOGCS["Douala 1948",DATUM["Douala_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-206.1,-174.7,-87.7,0,0,0,0],AUTHORITY["EPSG","6192"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4192"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",10.5],PARAMETER["scale_factor",0.999],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3119"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÕÕ†'˜0 MyŠepsg 0Pulkovo 1942(58) / Poland zone I+proj=sterea +lat_0=50.625 +lon_0=21.08333333333333 +k=0.9998 +x_0=4637000 +y_0=5467000 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Poland zone I",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",50.625],PARAMETER["central_meridian",21.08333333333333],PARAMETER["scale_factor",0.9998],PARAMETER["false_easting",4637000],PARAMETER["false_northing",5467000],AUTHORITY["EPSG","3120"],AXIS["X",NORTH],AXIS["Y",EAST]] ••†g˜1 A‚7Š_epsg 1PRS92 / Philippines zone 1+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_defsPROJCS["PRS92 / Philippines zone 1",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3121"],AXIS["X",EAST],AXIS["Y",NORTH]] ••†g˜2 A‚7Š_epsg 2PRS92 / Philippines zone 2+proj=tmerc +lat_0=0 +lon_0=119 +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_defsPROJCS["PRS92 / Philippines zone 2",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",119],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3122"],AXIS["X",EAST],AXIS["Y",NORTH]] ••†g˜3 A‚7Š_epsg 3PRS92 / Philippines zone 3+proj=tmerc +lat_0=0 +lon_0=121 +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_defsPROJCS["PRS92 / Philippines zone 3",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",121],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3123"],AXIS["X",EAST],AXIS["Y",NORTH]] ••†g˜4 A‚7Š_epsg 4PRS92 / Philippines zone 4+proj=tmerc +lat_0=0 +lon_0=123 +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_defsPROJCS["PRS92 / Philippines zone 4",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3124"],AXIS["X",EAST],AXIS["Y",NORTH]] ••†g˜5 A‚7Š_epsg 5PRS92 / Philippines zone 5+proj=tmerc +lat_0=0 +lon_0=125 +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_defsPROJCS["PRS92 / Philippines zone 5",GEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",125],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3125"],AXIS["X",EAST],AXIS["Y",NORTH]] …m˜6 77‰uepsg 6ETRS89 / ETRS-GK19FIN+proj=tmerc +lat_0=0 +lon_0=19 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK19FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",19],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3126"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] …m˜7 77‰uepsg 7ETRS89 / ETRS-GK20FIN+proj=tmerc +lat_0=0 +lon_0=20 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK20FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",20],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3127"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] …m˜8 77‰uepsg 8ETRS89 / ETRS-GK21FIN+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK21FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3128"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] …m˜9 77‰uepsg 9ETRS89 / ETRS-GK22FIN+proj=tmerc +lat_0=0 +lon_0=22 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK22FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",22],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3129"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] …m˜: 77‰uepsg :ETRS89 / ETRS-GK23FIN+proj=tmerc +lat_0=0 +lon_0=23 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK23FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",23],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3130"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] …m˜; 77‰uepsg ;ETRS89 / ETRS-GK24FIN+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK24FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3131"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] …m˜< 77‰uepsg 77‰uepsg >ETRS89 / ETRS-GK27FIN+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK27FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3134"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] …m˜? 77‰uepsg ?ETRS89 / ETRS-GK28FIN+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK28FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",28],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3135"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] …m˜@ 77‰uepsg @ETRS89 / ETRS-GK29FIN+proj=tmerc +lat_0=0 +lon_0=29 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK29FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",29],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3136"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] …m˜A 77‰uepsg AETRS89 / ETRS-GK30FIN+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK30FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3137"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] …m˜B 77‰uepsg BETRS89 / ETRS-GK31FIN+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / ETRS-GK31FIN",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",31],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3138"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ¯¯†M˜D K‚;Šepsg DViti Levu 1912 / Viti Levu Grid+proj=cass +lat_0=-18 +lon_0=178 +x_0=109435.392 +y_0=141622.272 +a=6378306.3696 +b=6356571.996 +towgs84=51,391,-36,0,0,0,0 +to_meter=0.201168 +no_defsPROJCS["Viti Levu 1912 / Viti Levu Grid",GEOGCS["Viti Levu 1912",DATUM["Viti_Levu_1912",SPHEROID["Clarke 1880 (international foot)",6378306.3696,293.4663076556349,AUTHORITY["EPSG","7055"]],TOWGS84[51,391,-36,0,0,0,0],AUTHORITY["EPSG","6752"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4752"]],UNIT["link",0.201168,AUTHORITY["EPSG","9098"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",-18],PARAMETER["central_meridian",178],PARAMETER["false_easting",544000],PARAMETER["false_northing",704000],AUTHORITY["EPSG","3140"],AXIS["X",NORTH],AXIS["Y",EAST]] ä䆘E =OŠ-epsg EFiji 1956 / UTM zone 60S+proj=utm +zone=60 +south +ellps=intl +towgs84=265.025,384.929,-194.046,0,0,0,0 +units=m +no_defsPROJCS["Fiji 1956 / UTM zone 60S",GEOGCS["Fiji 1956",DATUM["Fiji_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[265.025,384.929,-194.046,0,0,0,0],AUTHORITY["EPSG","6721"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4721"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3141"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  .epsg .  /epsg /  0epsg 0  1epsg 1  2epsg 2  3epsg 3  4epsg 4  5epsg 5  6epsg 6  7epsg 7  8epsg 8  9epsg 9  :epsg :  ;epsg ;  epsg >  ?epsg ?  @epsg @  Aepsg A  Bepsg B  Depsg D  Eepsg E  Fepsg F  Gepsg G  Jepsg J  Kepsg K  Lepsg L  Mepsg M  Nepsg N  Oepsg O  Pepsg P  Qepsg Q  Repsg R  Sepsg S  Tepsg T  Uepsg U  Vepsg V  Wepsg W  Xepsg X  Yepsg Y  Zepsg Z  [epsg [  \epsg \  ]epsg ]  ^epsg ^  _epsg _  `epsg `  aepsg a  bepsg b  cepsg c  depsg d  fepsg f  gepsg g  hepsg h  iepsg i  jepsg j  kepsg k  lepsg l ææ†˜F ;MŠ-epsg FFiji 1956 / UTM zone 1S+proj=utm +zone=1 +south +ellps=intl +towgs84=265.025,384.929,-194.046,0,0,0,0 +units=m +no_defsPROJCS["Fiji 1956 / UTM zone 1S",GEOGCS["Fiji 1956",DATUM["Fiji_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[265.025,384.929,-194.046,0,0,0,0],AUTHORITY["EPSG","6721"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4721"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3142"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ß߆˜G Y]Š epsg GFiji 1986 / Fiji Map Grid (deprecated)+proj=tmerc +lat_0=-17 +lon_0=178.75 +k=0.99985 +x_0=2000000 +y_0=4000000 +ellps=WGS72 +units=m +no_defsPROJCS["Fiji 1986 / Fiji Map Grid (deprecated)",GEOGCS["Fiji 1986",DATUM["Fiji_Geodetic_Datum_1986",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6720"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4720"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-17],PARAMETER["central_meridian",178.75],PARAMETER["scale_factor",0.99985],PARAMETER["false_easting",2000000],PARAMETER["false_northing",4000000],AUTHORITY["EPSG","3143"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÙÙ†#˜J c9Š3epsg JPulkovo 1942 / 3-degree Gauss-Kruger zone 6+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger zone 6",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3146"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ†!˜K c7Š1epsg KPulkovo 1942 / 3-degree Gauss-Kruger CM 18E+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3147"],AXIS["X",NORTH],AXIS["Y",EAST]] …j˜L AŠepsg LIndian 1960 / UTM zone 48N+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +units=m +no_defsPROJCS["Indian 1960 / UTM zone 48N",GEOGCS["Indian 1960",DATUM["Indian_1960",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6131"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4131"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3148"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …j˜M AŠepsg MIndian 1960 / UTM zone 49N+proj=utm +zone=49 +a=6377276.345 +b=6356075.41314024 +units=m +no_defsPROJCS["Indian 1960 / UTM zone 49N",GEOGCS["Indian 1960",DATUM["Indian_1960",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6131"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4131"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3149"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ©©†S˜N c‚Š5epsg NPulkovo 1995 / 3-degree Gauss-Kruger zone 6+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 6",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3150"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Q˜O c‚Š3epsg OPulkovo 1995 / 3-degree Gauss-Kruger CM 18E+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3151"],AXIS["X",NORTH],AXIS["Y",EAST]] ðð† ˜P ‚%‰gepsg PST74+proj=tmerc +lat_0=0 +lon_0=18.05779 +k=0.99999425 +x_0=100178.1808 +y_0=-6500614.7836 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["ST74",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18.05779],PARAMETER["scale_factor",0.99999425],PARAMETER["false_easting",100178.1808],PARAMETER["false_northing",-6500614.7836],AUTHORITY["EPSG","3152"],AXIS["x",NORTH],AXIS["y",EAST]] ½½†?˜Q ;]Šoepsg QNAD83(CSRS) / BC Albers+proj=aea +lat_1=50 +lat_2=58.5 +lat_0=45 +lon_0=-126 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / BC Albers",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",50],PARAMETER["standard_parallel_2",58.5],PARAMETER["latitude_of_center",45],PARAMETER["longitude_of_center",-126],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3153"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$…X˜R?mŠepsg RNAD83(CSRS) / UTM zone 7N+proj=utm +zone=7 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 7N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3154"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$…X˜S?mŠepsg SNAD83(CSRS) / UTM zone 8N+proj=utm +zone=8 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 8N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3155"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$…X˜T?mŠepsg TNAD83(CSRS) / UTM zone 9N+proj=utm +zone=9 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 9N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3156"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…[˜UAoŠepsg UNAD83(CSRS) / UTM zone 10N+proj=utm +zone=10 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 10N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3157"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""…Z˜VAoŠepsg VNAD83(CSRS) / UTM zone 14N+proj=utm +zone=14 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 14N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3158"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""…Z˜WAoŠepsg WNAD83(CSRS) / UTM zone 15N+proj=utm +zone=15 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 15N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3159"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""…Z˜XAoŠepsg XNAD83(CSRS) / UTM zone 16N+proj=utm +zone=16 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 16N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3160"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ±±†K˜Y C‚Š[epsg YNAD83 / Ontario MNR Lambert+proj=lcc +lat_1=44.5 +lat_2=53.5 +lat_0=0 +lon_0=-85 +x_0=930000 +y_0=6430000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Ontario MNR Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.5],PARAMETER["standard_parallel_2",53.5],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-85],PARAMETER["false_easting",930000],PARAMETER["false_northing",6430000],AUTHORITY["EPSG","3161"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] žž†^˜Z Og‹epsg ZNAD83(CSRS) / Ontario MNR Lambert+proj=lcc +lat_1=44.5 +lat_2=53.5 +lat_0=0 +lon_0=-85 +x_0=930000 +y_0=6430000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Ontario MNR Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.5],PARAMETER["standard_parallel_2",53.5],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-85],PARAMETER["false_easting",930000],PARAMETER["false_northing",6430000],AUTHORITY["EPSG","3162"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;;‡A˜[ O‚S‹iepsg [RGNC91-93 / Lambert New Caledonia+proj=lcc +lat_1=-20.66666666666667 +lat_2=-22.33333333333333 +lat_0=-21.5 +lon_0=166 +x_0=400000 +y_0=300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGNC91-93 / Lambert New Caledonia",GEOGCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4749"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-20.66666666666667],PARAMETER["standard_parallel_2",-22.33333333333333],PARAMETER["latitude_of_origin",-21.5],PARAMETER["central_meridian",166],PARAMETER["false_easting",400000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","3163"],AXIS["X",EAST],AXIS["Y",NORTH]] å冘\ ?MŠ+epsg \ST87 Ouvea / UTM zone 58S+proj=utm +zone=58 +south +ellps=WGS84 +towgs84=-56.263,16.136,-22.856,0,0,0,0 +units=m +no_defsPROJCS["ST87 Ouvea / UTM zone 58S",GEOGCS["ST87 Ouvea",DATUM["ST87_Ouvea",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-56.263,16.136,-22.856,0,0,0,0],AUTHORITY["EPSG","6750"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4750"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3164"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] †l˜] G‚#Šwepsg ]NEA74 Noumea / Noumea Lambert+proj=lcc +lat_1=-22.24469175 +lat_2=-22.29469175 +lat_0=-22.26969175 +lon_0=166.44242575 +x_0=0.66 +y_0=1.02 +ellps=intl +units=m +no_defsPROJCS["NEA74 Noumea / Noumea Lambert",GEOGCS["NEA74 Noumea",DATUM["NEA74_Noumea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6644"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4644"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-22.24469175],PARAMETER["standard_parallel_2",-22.29469175],PARAMETER["latitude_of_origin",-22.26969175],PARAMETER["central_meridian",166.44242575],PARAMETER["false_easting",0.66],PARAMETER["false_northing",1.02],AUTHORITY["EPSG","3165"],AXIS["X",EAST],AXIS["Y",NORTH]] ^^‡˜^ K‚]‹epsg ^NEA74 Noumea / Noumea Lambert 2+proj=lcc +lat_1=-22.24472222222222 +lat_2=-22.29472222222222 +lat_0=-22.26972222222222 +lon_0=166.4425 +x_0=8.313000000000001 +y_0=-2.354 +ellps=intl +units=m +no_defsPROJCS["NEA74 Noumea / Noumea Lambert 2",GEOGCS["NEA74 Noumea",DATUM["NEA74_Noumea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6644"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4644"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-22.24472222222222],PARAMETER["standard_parallel_2",-22.29472222222222],PARAMETER["latitude_of_origin",-22.26972222222222],PARAMETER["central_meridian",166.4425],PARAMETER["false_easting",8.313],PARAMETER["false_northing",-2.354],AUTHORITY["EPSG","3166"],AXIS["X",EAST],AXIS["Y",NORTH]] 44‡H˜_ I‚1Œepsg _Kertau (RSO) / RSO Malaya (ch)+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k=0.99984 +x_0=40000 +y_0=0 +a=6377295.664 +b=6356094.667915204 +to_meter=20.116756 +no_defsPROJCS["Kertau (RSO) / RSO Malaya (ch)",GEOGCS["Kertau (RSO)",DATUM["Kertau_RSO",SPHEROID["Everest 1830 (RSO 1969)",6377295.664,300.8017,AUTHORITY["EPSG","7056"]],AUTHORITY["EPSG","6751"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4751"]],UNIT["British chain (Sears 1922 truncated)",20.116756,AUTHORITY["EPSG","9301"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",4],PARAMETER["longitude_of_center",102.25],PARAMETER["azimuth",323.0257905],PARAMETER["rectified_grid_angle",323.1301023611111],PARAMETER["scale_factor",0.99984],PARAMETER["false_easting",1988.392164223695],PARAMETER["false_northing",0],AUTHORITY["EPSG","3167"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ll‡˜` G‚#‹?epsg `Kertau (RSO) / RSO Malaya (m)+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k=0.99984 +x_0=804670.24 +y_0=0 +a=6377295.664 +b=6356094.667915204 +units=m +no_defsPROJCS["Kertau (RSO) / RSO Malaya (m)",GEOGCS["Kertau (RSO)",DATUM["Kertau_RSO",SPHEROID["Everest 1830 (RSO 1969)",6377295.664,300.8017,AUTHORITY["EPSG","7056"]],AUTHORITY["EPSG","6751"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4751"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",4],PARAMETER["longitude_of_center",102.25],PARAMETER["azimuth",323.0257905],PARAMETER["rectified_grid_angle",323.1301023611111],PARAMETER["scale_factor",0.99984],PARAMETER["false_easting",804670.24],PARAMETER["false_northing",0],AUTHORITY["EPSG","3168"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] å冘a =+ŠOepsg aRGNC91-93 / UTM zone 57S+proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGNC91-93 / UTM zone 57S",GEOGCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4749"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3169"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] å冘b =+ŠOepsg bRGNC91-93 / UTM zone 58S+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGNC91-93 / UTM zone 58S",GEOGCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4749"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3170"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] å冘c =+ŠOepsg cRGNC91-93 / UTM zone 59S+proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGNC91-93 / UTM zone 59S",GEOGCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4749"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3171"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…G˜d?{‰_epsg dIGN53 Mare / UTM zone 59S+proj=utm +zone=59 +south +ellps=intl +units=m +no_defsPROJCS["IGN53 Mare / UTM zone 59S",GEOGCS["IGN53 Mare",DATUM["IGN53_Mare",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6641"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4641"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3172"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] †m˜f A‚3Šoepsg fNAD83 / Great Lakes Albers+proj=aea +lat_1=42.122774 +lat_2=49.01518 +lat_0=45.568977 +lon_0=-84.455955 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Great Lakes Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",42.122774],PARAMETER["standard_parallel_2",49.01518],PARAMETER["latitude_of_center",45.568977],PARAMETER["longitude_of_center",-84.455955],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3174"],AXIS["X",EAST],AXIS["Y",NORTH]] oo‡ ˜g a‚3‹epsg gNAD83 / Great Lakes and St Lawrence Albers+proj=aea +lat_1=42.122774 +lat_2=49.01518 +lat_0=45.568977 +lon_0=-83.248627 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Great Lakes and St Lawrence Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",42.122774],PARAMETER["standard_parallel_2",49.01518],PARAMETER["latitude_of_center",45.568977],PARAMETER["longitude_of_center",-83.248627],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3175"],AXIS["X",EAST],AXIS["Y",NORTH]] îh ;o‰{epsg hIndian 1960 / TM 106 NE+proj=tmerc +lat_0=0 +lon_0=106 +k=0.9996 +x_0=500000 +y_0=0 +a=6377276.345 +b=6356075.41314024 +units=m +no_defsPROJCS["Indian 1960 / TM 106 NE",GEOGCS["Indian 1960",DATUM["Indian_1960",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6131"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4131"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",106],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3176"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÄĆ8˜i 1‚/Šepsg iLGD2006 / Libya TM+proj=tmerc +lat_0=0 +lon_0=17 +k=0.9965000000000001 +x_0=1000000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",17],PARAMETER["scale_factor",0.9965],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3177"],AXIS["X",EAST],AXIS["Y",NORTH]] !!…[˜j 3‰oepsg jGR96 / UTM zone 18N+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 18N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3178"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…[˜k 3‰oepsg kGR96 / UTM zone 19N+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 19N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3179"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…[˜l 3‰oepsg lGR96 / UTM zone 20N+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 20N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3180"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…[˜m 3‰oepsg mGR96 / UTM zone 21N+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 21N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3181"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…[˜n 3‰oepsg nGR96 / UTM zone 22N+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 22N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3182"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…[˜o 3‰oepsg oGR96 / UTM zone 23N+proj=utm +zone=23 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 23N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3183"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…[˜p 3‰oepsg pGR96 / UTM zone 24N+proj=utm +zone=24 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 24N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3184"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…[˜q 3‰oepsg qGR96 / UTM zone 25N+proj=utm +zone=25 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 25N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3185"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…[˜r 3‰oepsg rGR96 / UTM zone 26N+proj=utm +zone=26 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 26N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3186"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…[˜s 3‰oepsg sGR96 / UTM zone 27N+proj=utm +zone=27 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 27N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3187"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…[˜t 3‰oepsg tGR96 / UTM zone 28N+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 28N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3188"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""…Z˜u 3‰mepsg uGR96 / UTM zone 29N+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GR96 / UTM zone 29N",GEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3189"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÄĆ8˜v ?‚Š%epsg vLGD2006 / Libya TM zone 5+proj=tmerc +lat_0=0 +lon_0=9 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM zone 5",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3190"],AXIS["X",EAST],AXIS["Y",NORTH]] †:˜w ?‚Š'epsg wLGD2006 / Libya TM zone 6+proj=tmerc +lat_0=0 +lon_0=11 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM zone 6",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",11],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3191"],AXIS["X",EAST],AXIS["Y",NORTH]] †:˜x ?‚Š'epsg xLGD2006 / Libya TM zone 7+proj=tmerc +lat_0=0 +lon_0=13 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM zone 7",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3192"],AXIS["X",EAST],AXIS["Y",NORTH]] †:˜y ?‚Š'epsg yLGD2006 / Libya TM zone 8+proj=tmerc +lat_0=0 +lon_0=15 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM zone 8",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3193"],AXIS["X",EAST],AXIS["Y",NORTH]] †:˜z ?‚Š'epsg zLGD2006 / Libya TM zone 9+proj=tmerc +lat_0=0 +lon_0=17 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM zone 9",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",17],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3194"],AXIS["X",EAST],AXIS["Y",NORTH]] ÀÀ†<˜{ A‚Š)epsg {LGD2006 / Libya TM zone 10+proj=tmerc +lat_0=0 +lon_0=19 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM zone 10",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",19],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3195"],AXIS["X",EAST],AXIS["Y",NORTH]] ÀÀ†<˜| A‚Š)epsg |LGD2006 / Libya TM zone 11+proj=tmerc +lat_0=0 +lon_0=21 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM zone 11",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3196"],AXIS["X",EAST],AXIS["Y",NORTH]] ÀÀ†<˜} A‚Š)epsg }LGD2006 / Libya TM zone 12+proj=tmerc +lat_0=0 +lon_0=23 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM zone 12",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",23],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3197"],AXIS["X",EAST],AXIS["Y",NORTH]] ÀÀ†<˜~ A‚Š)epsg ~LGD2006 / Libya TM zone 13+proj=tmerc +lat_0=0 +lon_0=25 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / Libya TM zone 13",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",25],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3198"],AXIS["X",EAST],AXIS["Y",NORTH]] ç熘 9CŠ7epsg LGD2006 / UTM zone 32N+proj=utm +zone=32 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / UTM zone 32N",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3199"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] é醙 -‚‰{epsg €FD58 / Iraq zone+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.9987864078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +units=m +no_defsPROJCS["FD58 / Iraq zone",GEOGCS["FD58",DATUM["Final_Datum_1958",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6132"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4132"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",32.5],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9987864078],PARAMETER["false_easting",1500000],PARAMETER["false_northing",1166200],AUTHORITY["EPSG","3200"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ææ†™ 9CŠ9epsg LGD2006 / UTM zone 33N+proj=utm +zone=33 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / UTM zone 33N",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3201"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ææ†™ 9CŠ9epsg ‚LGD2006 / UTM zone 34N+proj=utm +zone=34 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / UTM zone 34N",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3202"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ææ†™ 9CŠ9epsg ƒLGD2006 / UTM zone 35N+proj=utm +zone=35 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defsPROJCS["LGD2006 / UTM zone 35N",GEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3203"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™ ?‚'ŠYepsg „WGS 84 / SCAR IMW SP19-20+proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.33333333333334 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SP19-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-60.66666666666666],PARAMETER["standard_parallel_2",-63.33333333333334],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-66],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3204"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  nepsg n  oepsg o  pepsg p  qepsg q  repsg r  sepsg s  tepsg t  uepsg u  vepsg v  wepsg w  xepsg x  yepsg y  zepsg z  {epsg {  |epsg |  }epsg }  ~epsg ~  epsg   €epsg €  epsg  ‚epsg ‚  ƒepsg ƒ  „epsg „  …epsg …  †epsg †  ‡epsg ‡  ˆepsg ˆ  ‰epsg ‰  Šepsg Š  ‹epsg ‹  Œepsg Œ  epsg  Žepsg Ž  epsg  epsg  ‘epsg ‘  ’epsg ’  “epsg “  ”epsg ”  •epsg •  –epsg –  —epsg —  ˜epsg ˜  ™epsg ™  šepsg š  ›epsg ›  œepsg œ  epsg  žepsg ž  Ÿepsg Ÿ   epsg    ¡epsg ¡  ¢epsg ¢  £epsg £  ¤epsg ¤  ¥epsg ¥  ¦epsg ¦  §epsg §  ¨epsg ¨ ¡¡†[™ ?‚'ŠYepsg …WGS 84 / SCAR IMW SP21-22+proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.33333333333334 +lat_0=-90 +lon_0=-54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SP21-22",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-60.66666666666666],PARAMETER["standard_parallel_2",-63.33333333333334],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-54],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3205"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™ ?‚'ŠYepsg †WGS 84 / SCAR IMW SP23-24+proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.33333333333334 +lat_0=-90 +lon_0=-42 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SP23-24",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-60.66666666666666],PARAMETER["standard_parallel_2",-63.33333333333334],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-42],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3206"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ŸŸ†]™ ?‚)Š[epsg ‡WGS 84 / SCAR IMW SQ01-02+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=-174 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ01-02",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-174],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3207"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™ ?‚'ŠYepsg ˆWGS 84 / SCAR IMW SQ19-20+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ19-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-66],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3208"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™ ?‚'ŠYepsg ‰WGS 84 / SCAR IMW SQ21-22+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=-54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ21-22",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-54],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3209"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™ ?‚%ŠWepsg ŠWGS 84 / SCAR IMW SQ37-38+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=42 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ37-38",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",42],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3210"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™ ?‚%ŠWepsg ‹WGS 84 / SCAR IMW SQ39-40+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ39-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",54],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3211"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]offlrx~„Š–œ¢¨®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôú ˜]¡˜^¢˜_£˜`¤˜a¥˜b¦˜c§˜d¨˜f©˜gª˜h«˜i¬˜j­˜k®˜l¯˜m°˜n±˜o²˜p³˜q´˜rµ˜s¶˜t·˜u¸˜v¹˜wº˜x»˜y¼˜z½˜{¾˜|¿˜}À˜~Á˜™Ùęřƙșəʙ˙̙ Í™ Ι Й Ñ™ ҙәԙՙ֙יؙٙڙۙܙݙޙߙà™á™â™ã™ä™ å™!æ™"ç™#è™$é™%ê™&ë™'ì™(í™)î™*ï™+ð™,ñ™-ò™.ó™/ô™0õ™1ö™2÷™3ø™4ù™5ú™6û™7ü™8ý™9þ™:ÿ™;™<™=™>™?™@™A™B™C ™D ™E ™F ™G ™H™I™J™K™L ££†Y™ ?‚%ŠWepsg ŒWGS 84 / SCAR IMW SQ41-42+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ41-42",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",66],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3212"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™ ?‚%ŠWepsg WGS 84 / SCAR IMW SQ43-44+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=78 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ43-44",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",78],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3213"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™ ?‚%ŠWepsg ŽWGS 84 / SCAR IMW SQ45-46+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ45-46",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",90],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3214"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™ ?‚'ŠYepsg WGS 84 / SCAR IMW SQ47-48+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=102 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ47-48",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",102],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3215"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™ ?‚'ŠYepsg WGS 84 / SCAR IMW SQ49-50+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=114 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ49-50",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",114],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3216"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™ ?‚'ŠYepsg ‘WGS 84 / SCAR IMW SQ51-52+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=126 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ51-52",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",126],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3217"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™ ?‚'ŠYepsg ’WGS 84 / SCAR IMW SQ53-54+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=138 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ53-54",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",138],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3218"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™ ?‚'ŠYepsg “WGS 84 / SCAR IMW SQ55-56+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=150 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ55-56",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",150],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3219"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™ ?‚'ŠYepsg ”WGS 84 / SCAR IMW SQ57-58+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=162 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SQ57-58",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-64.66666666666667],PARAMETER["standard_parallel_2",-67.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",162],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3220"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ŸŸ†]™ ?‚)Š[epsg •WGS 84 / SCAR IMW SR13-14+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-102 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR13-14",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-102],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3221"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™ ?‚'ŠYepsg –WGS 84 / SCAR IMW SR15-16+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR15-16",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-90],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3222"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™ ?‚'ŠYepsg —WGS 84 / SCAR IMW SR17-18+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-78 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR17-18",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-78],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3223"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™ ?‚'ŠYepsg ˜WGS 84 / SCAR IMW SR19-20+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR19-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-66],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3224"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™ ?‚'ŠYepsg ™WGS 84 / SCAR IMW SR27-28+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-18 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR27-28",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-18],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3225"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™ ?‚%ŠWepsg šWGS 84 / SCAR IMW SR29-30+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-6 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR29-30",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-6],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3226"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¥¥†W™ ?‚#ŠUepsg ›WGS 84 / SCAR IMW SR31-32+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=6 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR31-32",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",6],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3227"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™ ?‚%ŠWepsg œWGS 84 / SCAR IMW SR33-34+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=18 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR33-34",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",18],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3228"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™ ?‚%ŠWepsg WGS 84 / SCAR IMW SR35-36+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=30 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR35-36",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",30],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3229"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™ ?‚%ŠWepsg žWGS 84 / SCAR IMW SR37-38+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=42 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR37-38",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",42],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3230"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™ ?‚%ŠWepsg ŸWGS 84 / SCAR IMW SR39-40+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR39-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",54],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3231"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™ ?‚%ŠWepsg  WGS 84 / SCAR IMW SR41-42+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR41-42",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",66],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3232"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™! ?‚%ŠWepsg ¡WGS 84 / SCAR IMW SR43-44+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=78 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR43-44",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",78],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3233"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™" ?‚%ŠWepsg ¢WGS 84 / SCAR IMW SR45-46+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR45-46",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",90],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3234"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™# ?‚'ŠYepsg £WGS 84 / SCAR IMW SR47-48+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=102 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR47-48",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",102],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3235"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™$ ?‚'ŠYepsg ¤WGS 84 / SCAR IMW SR49-50+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=114 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR49-50",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",114],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3236"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™% ?‚'ŠYepsg ¥WGS 84 / SCAR IMW SR51-52+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=126 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR51-52",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",126],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3237"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™& ?‚'ŠYepsg ¦WGS 84 / SCAR IMW SR53-54+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=138 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR53-54",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",138],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3238"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™' ?‚'ŠYepsg §WGS 84 / SCAR IMW SR55-56+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=150 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR55-56",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",150],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3239"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™( ?‚'ŠYepsg ¨WGS 84 / SCAR IMW SR57-58+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=162 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR57-58",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",162],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3240"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™) ?‚'ŠYepsg ©WGS 84 / SCAR IMW SR59-60+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=174 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SR59-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-68.66666666666667],PARAMETER["standard_parallel_2",-71.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",174],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3241"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ŸŸ†]™* ?‚)Š[epsg ªWGS 84 / SCAR IMW SS04-06+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-153 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS04-06",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-153],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3242"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ŸŸ†]™+ ?‚)Š[epsg «WGS 84 / SCAR IMW SS07-09+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-135 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS07-09",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-135],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3243"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ŸŸ†]™, ?‚)Š[epsg ¬WGS 84 / SCAR IMW SS10-12+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-117 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS10-12",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-117],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3244"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™- ?‚'ŠYepsg ­WGS 84 / SCAR IMW SS13-15+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-99 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS13-15",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-99],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3245"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™. ?‚'ŠYepsg ®WGS 84 / SCAR IMW SS16-18+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-81 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS16-18",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-81],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3246"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™/ ?‚'ŠYepsg ¯WGS 84 / SCAR IMW SS19-21+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-63 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS19-21",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-63],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3247"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™0 ?‚'ŠYepsg °WGS 84 / SCAR IMW SS25-27+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-27 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS25-27",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-27],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3248"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™1 ?‚%ŠWepsg ±WGS 84 / SCAR IMW SS28-30+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-9 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS28-30",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-9],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3249"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¥¥†W™2 ?‚#ŠUepsg ²WGS 84 / SCAR IMW SS31-33+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=9 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS31-33",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",9],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3250"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™3 ?‚%ŠWepsg ³WGS 84 / SCAR IMW SS34-36+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=27 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS34-36",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",27],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3251"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™4 ?‚%ŠWepsg ´WGS 84 / SCAR IMW SS37-39+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=45 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS37-39",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",45],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3252"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™5 ?‚%ŠWepsg µWGS 84 / SCAR IMW SS40-42+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=63 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS40-42",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",63],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3253"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™6 ?‚%ŠWepsg ¶WGS 84 / SCAR IMW SS43-45+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=81 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS43-45",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",81],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3254"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™7 ?‚%ŠWepsg ·WGS 84 / SCAR IMW SS46-48+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=99 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS46-48",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",99],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3255"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™8 ?‚'ŠYepsg ¸WGS 84 / SCAR IMW SS49-51+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=117 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS49-51",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",117],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3256"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™9 ?‚'ŠYepsg ¹WGS 84 / SCAR IMW SS52-54+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=135 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS52-54",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",135],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3257"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™: ?‚'ŠYepsg ºWGS 84 / SCAR IMW SS55-57+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=153 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS55-57",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",153],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3258"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™; ?‚'ŠYepsg »WGS 84 / SCAR IMW SS58-60+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=171 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SS58-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-72.66666666666667],PARAMETER["standard_parallel_2",-75.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",171],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3259"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ŸŸ†]™< ?‚)Š[epsg ¼WGS 84 / SCAR IMW ST01-04+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-168 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST01-04",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-168],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3260"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ŸŸ†]™= ?‚)Š[epsg ½WGS 84 / SCAR IMW ST05-08+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-144 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST05-08",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-144],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3261"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ŸŸ†]™> ?‚)Š[epsg ¾WGS 84 / SCAR IMW ST09-12+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-120 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST09-12",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-120],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3262"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™? ?‚'ŠYepsg ¿WGS 84 / SCAR IMW ST13-16+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-96 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST13-16",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-96],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3263"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™@ ?‚'ŠYepsg ÀWGS 84 / SCAR IMW ST17-20+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-72 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST17-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-72],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3264"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  ªepsg ª  «epsg «  ¬epsg ¬  ­epsg ­  ®epsg ®  ¯epsg ¯  °epsg °  ±epsg ±  ²epsg ²  ³epsg ³  ´epsg ´  µepsg µ  ¶epsg ¶  ·epsg ·  ¸epsg ¸  ¹epsg ¹  ºepsg º  »epsg »  ¼epsg ¼  ½epsg ½  ¾epsg ¾  ¿epsg ¿  Àepsg À  Áepsg Á  Âepsg   Ãepsg à  Äepsg Ä  Åepsg Å  Æepsg Æ  Çepsg Ç  Èepsg È  Éepsg É  Êepsg Ê  Ëepsg Ë  Ìepsg Ì  Íepsg Í  Îepsg Î  Ïepsg Ï  Ðepsg Ð  Ñepsg Ñ  Òepsg Ò  Óepsg Ó  Ôepsg Ô  Õepsg Õ  Öepsg Ö  ×epsg ×  Øepsg Ø  Ùepsg Ù  Úepsg Ú  Ûepsg Û  Üepsg Ü  Ýepsg Ý  Þepsg Þ  àepsg à  áepsg á  âepsg â  ãepsg ã  äepsg ä  åepsg å ¡¡†[™A ?‚'ŠYepsg ÁWGS 84 / SCAR IMW ST21-24+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-48 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST21-24",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-48],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3265"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™B ?‚'ŠYepsg ÂWGS 84 / SCAR IMW ST25-28+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-24 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST25-28",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-24],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3266"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¥¥†W™C ?‚#ŠUepsg ÃWGS 84 / SCAR IMW ST29-32+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST29-32",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3267"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™D ?‚%ŠWepsg ÄWGS 84 / SCAR IMW ST33-36+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=24 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST33-36",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",24],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3268"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™E ?‚%ŠWepsg ÅWGS 84 / SCAR IMW ST37-40+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=48 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST37-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",48],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3269"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™F ?‚%ŠWepsg ÆWGS 84 / SCAR IMW ST41-44+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=72 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST41-44",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",72],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3270"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ££†Y™G ?‚%ŠWepsg ÇWGS 84 / SCAR IMW ST45-48+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=96 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST45-48",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",96],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3271"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™H ?‚'ŠYepsg ÈWGS 84 / SCAR IMW ST49-52+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=120 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST49-52",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",120],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3272"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™I ?‚'ŠYepsg ÉWGS 84 / SCAR IMW ST53-56+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=144 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST53-56",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",144],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3273"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¡¡†[™J ?‚'ŠYepsg ÊWGS 84 / SCAR IMW ST57-60+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=168 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW ST57-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",168],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3274"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ññ† ™K ?‚‰[epsg ËWGS 84 / SCAR IMW SU01-05+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-165 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU01-05",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",-165],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3275"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] ññ† ™L ?‚‰[epsg ÌWGS 84 / SCAR IMW SU06-10+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-135 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU06-10",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3276"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] ññ† ™M ?‚‰[epsg ÍWGS 84 / SCAR IMW SU11-15+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-105 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU11-15",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3277"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] óó† ™N ?‚‰Yepsg ÎWGS 84 / SCAR IMW SU16-20+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-75 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU16-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3278"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] óó† ™O ?‚‰Yepsg ÏWGS 84 / SCAR IMW SU21-25+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU21-25",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3279"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] óó† ™P ?‚‰Yepsg ÐWGS 84 / SCAR IMW SU26-30+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-15 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU26-30",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3280"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] õõ†™Q ?‚‰Wepsg ÑWGS 84 / SCAR IMW SU31-35+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=15 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU31-35",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3281"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] õõ†™R ?‚‰Wepsg ÒWGS 84 / SCAR IMW SU36-40+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=45 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU36-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3282"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] õõ†™S ?‚‰Wepsg ÓWGS 84 / SCAR IMW SU41-45+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=75 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU41-45",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3283"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] óó† ™T ?‚‰Yepsg ÔWGS 84 / SCAR IMW SU46-50+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=105 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU46-50",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3284"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] óó† ™U ?‚‰Yepsg ÕWGS 84 / SCAR IMW SU51-55+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=135 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU51-55",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3285"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] óó† ™V ?‚‰Yepsg ÖWGS 84 / SCAR IMW SU56-60+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=165 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SU56-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3286"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] ññ† ™W ?‚‰[epsg ×WGS 84 / SCAR IMW SV01-10+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-150 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SV01-10",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",-150],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3287"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] óó† ™X ?‚‰Yepsg ØWGS 84 / SCAR IMW SV11-20+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-90 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SV11-20",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",-90],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3288"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] óó† ™Y ?‚‰Yepsg ÙWGS 84 / SCAR IMW SV21-30+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-30 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SV21-30",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",-30],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3289"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] õõ†™Z ?‚‰Wepsg ÚWGS 84 / SCAR IMW SV31-40+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=30 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SV31-40",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3290"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] õõ†™[ ?‚‰Wepsg ÛWGS 84 / SCAR IMW SV41-50+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=90 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SV41-50",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3291"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] óó† ™\ ?‚‰Yepsg ÜWGS 84 / SCAR IMW SV51-60+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=150 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SV51-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",150],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3292"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] ÷÷†™] ?‰Uepsg ÝWGS 84 / SCAR IMW SW01-60+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / SCAR IMW SW01-60",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-80.23861111111111],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3293"],AXIS["Easting",UNKNOWN],AXIS["Northing",UNKNOWN]] ‡‡†u™^ Y‚'Šsepsg ÞWGS 84 / USGS Transantarctic Mountains+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-78 +lon_0=162 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / USGS Transantarctic Mountains",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-78],PARAMETER["central_meridian",162],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3294"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…U™`1{Š epsg àRGPF / UTM zone 5S+proj=utm +zone=5 +south +ellps=GRS80 +units=m +no_defsPROJCS["RGPF / UTM zone 5S",GEOGCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4687"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3296"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…U™a1{Š epsg áRGPF / UTM zone 6S+proj=utm +zone=6 +south +ellps=GRS80 +units=m +no_defsPROJCS["RGPF / UTM zone 6S",GEOGCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4687"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3297"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…U™b1{Š epsg âRGPF / UTM zone 7S+proj=utm +zone=7 +south +ellps=GRS80 +units=m +no_defsPROJCS["RGPF / UTM zone 7S",GEOGCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4687"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3298"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…U™c1{Š epsg ãRGPF / UTM zone 8S+proj=utm +zone=8 +south +ellps=GRS80 +units=m +no_defsPROJCS["RGPF / UTM zone 8S",GEOGCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4687"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3299"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""‡Z™d Qƒ‹]epsg äEstonian Coordinate System of 1992+proj=lcc +lat_1=59.33333333333334 +lat_2=58 +lat_0=57.51755393055556 +lon_0=24 +x_0=500000 +y_0=6375000 +ellps=GRS80 +towgs84=0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014 +units=m +no_defsPROJCS["Estonian Coordinate System of 1992",GEOGCS["EST92",DATUM["Estonia_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014],AUTHORITY["EPSG","6133"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4133"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",59.33333333333334],PARAMETER["standard_parallel_2",58],PARAMETER["latitude_of_origin",57.51755393055556],PARAMETER["central_meridian",24],PARAMETER["false_easting",500000],PARAMETER["false_northing",6375000],AUTHORITY["EPSG","3300"],AXIS["X",NORTH],AXIS["Y",EAST]] hh‡™e Q‚I‹epsg åEstonian Coordinate System of 1997+proj=lcc +lat_1=59.33333333333334 +lat_2=58 +lat_0=57.51755393055556 +lon_0=24 +x_0=500000 +y_0=6375000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["Estonian Coordinate System of 1997",GEOGCS["EST97",DATUM["Estonia_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6180"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4180"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",59.33333333333334],PARAMETER["standard_parallel_2",58],PARAMETER["latitude_of_origin",57.51755393055556],PARAMETER["central_meridian",24],PARAMETER["false_easting",500000],PARAMETER["false_northing",6375000],AUTHORITY["EPSG","3301"],AXIS["X",NORTH],AXIS["Y",EAST]] ++…Q™fCy‰qepsg æIGN63 Hiva Oa / UTM zone 7S+proj=utm +zone=7 +south +ellps=intl +units=m +no_defsPROJCS["IGN63 Hiva Oa / UTM zone 7S",GEOGCS["IGN63 Hiva Oa",DATUM["IGN63_Hiva_Oa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6689"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4689"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3302"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ®®†N™g ?}Šiepsg çFatu Iva 72 / UTM zone 7S+proj=utm +zone=7 +south +ellps=intl +towgs84=347.103,1078.12,2623.92,-33.8875,70.6773,-9.3943,186.074 +units=m +no_defsPROJCS["Fatu Iva 72 / UTM zone 7S",GEOGCS["Fatu Iva 72",DATUM["Fatu_Iva_72",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[347.103,1078.12,2623.92,-33.8875,70.6773,-9.3943,186.074],AUTHORITY["EPSG","6688"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4688"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3303"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;;…A™h;y‰Yepsg èTahiti 79 / UTM zone 6S+proj=utm +zone=6 +south +ellps=intl +units=m +no_defsPROJCS["Tahiti 79 / UTM zone 6S",GEOGCS["Tahiti 79",DATUM["Tahiti_79",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6690"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4690"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3304"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ºº†B™i ;yŠYepsg éMoorea 87 / UTM zone 6S+proj=utm +zone=6 +south +ellps=intl +towgs84=215.525,149.593,176.229,-3.2624,-1.692,-1.1571,10.4773 +units=m +no_defsPROJCS["Moorea 87 / UTM zone 6S",GEOGCS["Moorea 87",DATUM["Moorea_87",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[215.525,149.593,176.229,-3.2624,-1.692,-1.1571,10.4773],AUTHORITY["EPSG","6691"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4691"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3305"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] è膙j =GŠ-epsg êMaupiti 83 / UTM zone 5S+proj=utm +zone=5 +south +ellps=intl +towgs84=217.037,86.959,23.956,0,0,0,0 +units=m +no_defsPROJCS["Maupiti 83 / UTM zone 5S",GEOGCS["Maupiti 83",DATUM["Maupiti_83",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[217.037,86.959,23.956,0,0,0,0],AUTHORITY["EPSG","6692"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4692"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3306"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] øø†™k G+Šepsg ëNakhl-e Ghanem / UTM zone 39N+proj=utm +zone=39 +ellps=WGS84 +towgs84=0,-0.15,0.68,0,0,0,0 +units=m +no_defsPROJCS["Nakhl-e Ghanem / UTM zone 39N",GEOGCS["Nakhl-e Ghanem",DATUM["Nakhl_e_Ghanem",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,-0.15,0.68,0,0,0,0],AUTHORITY["EPSG","6693"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4693"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3307"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ƒƒ†y™l 3‚)‹epsg ìGDA94 / NSW Lambert+proj=lcc +lat_1=-30.75 +lat_2=-35.75 +lat_0=-33.25 +lon_0=147 +x_0=9300000 +y_0=4500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / NSW Lambert",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-30.75],PARAMETER["standard_parallel_2",-35.75],PARAMETER["latitude_of_origin",-33.25],PARAMETER["central_meridian",147],PARAMETER["false_easting",9300000],PARAMETER["false_northing",4500000],AUTHORITY["EPSG","3308"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÃÆ9™m ?yŠCepsg íNAD27 / California Albers+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / California Albers",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",34],PARAMETER["standard_parallel_2",40.5],PARAMETER["latitude_of_center",0],PARAMETER["longitude_of_center",-120],PARAMETER["false_easting",0],PARAMETER["false_northing",-4000000],AUTHORITY["EPSG","3309"],AXIS["X",EAST],AXIS["Y",NORTH]] Í͆/™n ?wŠ1epsg îNAD83 / California Albers+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / California Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",34],PARAMETER["standard_parallel_2",40.5],PARAMETER["latitude_of_center",0],PARAMETER["longitude_of_center",-120],PARAMETER["false_easting",0],PARAMETER["false_northing",-4000000],AUTHORITY["EPSG","3310"],AXIS["X",EAST],AXIS["Y",NORTH]] ½½†?™o K]Š_epsg ïNAD83(HARN) / California Albers+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_defsPROJCS["NAD83(HARN) / California Albers",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",34],PARAMETER["standard_parallel_2",40.5],PARAMETER["latitude_of_center",0],PARAMETER["longitude_of_center",-120],PARAMETER["false_easting",0],PARAMETER["false_northing",-4000000],AUTHORITY["EPSG","3311"],AXIS["X",EAST],AXIS["Y",NORTH]] …y™p 5)Šepsg ðCSG67 / UTM zone 21N+proj=utm +zone=21 +ellps=intl +towgs84=-186,230,110,0,0,0,0 +units=m +no_defsPROJCS["CSG67 / UTM zone 21N",GEOGCS["CSG67",DATUM["Centre_Spatial_Guyanais_1967",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-186,230,110,0,0,0,0],AUTHORITY["EPSG","6623"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4623"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3312"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …{™q 7Š)epsg ñRGFG95 / UTM zone 21N+proj=utm +zone=21 +ellps=GRS80 +towgs84=2,2,-2,0,0,0,0 +units=m +no_defsPROJCS["RGFG95 / UTM zone 21N",GEOGCS["RGFG95",DATUM["Reseau_Geodesique_Francais_Guyane_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[2,2,-2,0,0,0,0],AUTHORITY["EPSG","6624"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4624"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3313"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ^^‡™r c‚%‹=epsg òKatanga 1955 / Katanga Lambert (deprecated)+proj=lcc +lat_1=-6.5 +lat_2=-11.5 +lat_0=0 +lon_0=26 +x_0=0 +y_0=0 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +units=m +no_defsPROJCS["Katanga 1955 / Katanga Lambert (deprecated)",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-6.5],PARAMETER["standard_parallel_2",-11.5],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",26],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3314"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] §§†U™s Y‚ ŠMepsg óKatanga 1955 / Katanga TM (deprecated)+proj=tmerc +lat_0=-9 +lon_0=26 +k=0.9998 +x_0=0 +y_0=0 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +units=m +no_defsPROJCS["Katanga 1955 / Katanga TM (deprecated)",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-9],PARAMETER["central_meridian",26],PARAMETER["scale_factor",0.9998],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3315"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ûû†™t GQ‰sepsg ôKasai 1953 / Congo TM zone 22+proj=tmerc +lat_0=0 +lon_0=22 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["Kasai 1953 / Congo TM zone 22",GEOGCS["Kasai 1953",DATUM["Kasai_1953",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6696"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4696"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",22],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3316"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ûû†™u GQ‰sepsg õKasai 1953 / Congo TM zone 24+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["Kasai 1953 / Congo TM zone 24",GEOGCS["Kasai 1953",DATUM["Kasai_1953",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6696"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4696"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3317"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÒÒ†*™v CQŠIepsg öIGC 1962 / Congo TM zone 12+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 12",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3318"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÒÒ†*™w CQŠIepsg ÷IGC 1962 / Congo TM zone 14+proj=tmerc +lat_0=0 +lon_0=14 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 14",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",14],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3319"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÒÒ†*™x CQŠIepsg øIGC 1962 / Congo TM zone 16+proj=tmerc +lat_0=0 +lon_0=16 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 16",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3320"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÒÒ†*™y CQŠIepsg ùIGC 1962 / Congo TM zone 18+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 18",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3321"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÒÒ†*™z CQŠIepsg úIGC 1962 / Congo TM zone 20+proj=tmerc +lat_0=0 +lon_0=20 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 20",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",20],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3322"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÒÒ†*™{ CQŠIepsg ûIGC 1962 / Congo TM zone 22+proj=tmerc +lat_0=0 +lon_0=22 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 22",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",22],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3323"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÒÒ†*™| CQŠIepsg üIGC 1962 / Congo TM zone 24+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 24",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3324"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]of…flrx~„Š–œ¢¨®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôú™N™O™P™Q™R™S™T™U™V™W™X™Y™Z ™[!™\"™]#™^$™`%™a&™b'™c(™d)™e*™f+™g,™h-™i.™j/™k0™l1™m2™n3™o4™p5™q6™r7™s8™t9™u:™v;™w<™x=™y>™z?™{@™|B™}D™~E™FšGšHšIšJšKšLšMšNšOš Pš Qš Rš Sš TšUšVšWšXšYšZš[š\š]š^š_š`šašbšcšdšešfš gš!hš"iš#jš$kš%lš&mš'nš(oš)pš*qš+rš,sš-tš.uš/vš0wš1xš2yš3zš4{š5|š6}š7~š8š9š:‚š;ƒš<„š= ÒÒ†*™} CQŠIepsg ýIGC 1962 / Congo TM zone 26+proj=tmerc +lat_0=0 +lon_0=26 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 26",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",26],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3325"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  çepsg ç  èepsg è  éepsg é  êepsg ê  ëepsg ë  ìepsg ì  íepsg í  îepsg î  ïepsg ï  ðepsg ð  ñepsg ñ  òepsg ò  óepsg ó  ôepsg ô  õepsg õ  öepsg ö  ÷epsg ÷  øepsg ø  ùepsg ù  úepsg ú  ûepsg û  üepsg ü  ýepsg ý  þepsg þ  ÿepsg ÿ  epsg  epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg  epsg  epsg  epsg  epsg  epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg   epsg  !epsg ! ÒÒ†*™~ CQŠIepsg þIGC 1962 / Congo TM zone 28+proj=tmerc +lat_0=0 +lon_0=28 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 28",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",28],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3326"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÒÒ†*™ CQŠIepsg ÿIGC 1962 / Congo TM zone 30+proj=tmerc +lat_0=0 +lon_0=30 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["IGC 1962 / Congo TM zone 30",GEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3327"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÉɆ3š C‚Šepsg Pulkovo 1942(58) / GUGiK-80+proj=sterea +lat_0=52.16666666666666 +lon_0=19.16666666666667 +k=0.999714 +x_0=500000 +y_0=500000 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / GUGiK-80",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",52.16666666666666],PARAMETER["central_meridian",19.16666666666667],PARAMETER["scale_factor",0.999714],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3328"],AXIS["X",NORTH],AXIS["Y",EAST]] øø†š k9‰mepsg Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3329"],AXIS["X",NORTH],AXIS["Y",EAST]] øø†š k9‰mepsg Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 6+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 6",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3330"],AXIS["X",NORTH],AXIS["Y",EAST]] øø†š k9‰mepsg Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 7+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 7",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3331"],AXIS["X",NORTH],AXIS["Y",EAST]] øø†š k9‰mepsg Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 8+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 8",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",1],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3332"],AXIS["X",NORTH],AXIS["Y",EAST]]   …rš Y9‰[epsg Pulkovo 1942(58) / Gauss-Kruger zone 3+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Gauss-Kruger zone 3",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3333"],AXIS["X",NORTH],AXIS["Y",EAST]]   …rš Y9‰[epsg Pulkovo 1942(58) / Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3334"],AXIS["X",NORTH],AXIS["Y",EAST]]   …rš Y9‰[epsg Pulkovo 1942(58) / Gauss-Kruger zone 5+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Gauss-Kruger zone 5",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3335"],AXIS["X",NORTH],AXIS["Y",EAST]] ÙÙ†#š O7ŠIepsg IGN 1962 Kerguelen / UTM zone 42S+proj=utm +zone=42 +south +ellps=intl +towgs84=145,-187,103,0,0,0,0 +units=m +no_defsPROJCS["IGN 1962 Kerguelen / UTM zone 42S",GEOGCS["IGN 1962 Kerguelen",DATUM["IGN_1962_Kerguelen",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[145,-187,103,0,0,0,0],AUTHORITY["EPSG","6698"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4698"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3336"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] QQ‡+š Iƒ‹epsg Le Pouce 1934 / Mauritius Grid+proj=lcc +lat_1=-20.19506944444445 +lat_0=-20.19506944444445 +lon_0=57.52182777777778 +k_0=1 +x_0=1000000 +y_0=1000000 +ellps=clrk80 +towgs84=-770.1,158.4,-498.2,0,0,0,0 +units=m +no_defsPROJCS["Le Pouce 1934 / Mauritius Grid",GEOGCS["Le Pouce 1934",DATUM["Le_Pouce_1934",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-770.1,158.4,-498.2,0,0,0,0],AUTHORITY["EPSG","6699"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4699"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",-20.19506944444445],PARAMETER["central_meridian",57.52182777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3337"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] å冚 7gŠepsg NAD83 / Alaska Albers+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Alaska Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",55],PARAMETER["standard_parallel_2",65],PARAMETER["latitude_of_center",50],PARAMETER["longitude_of_center",-154],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3338"],AXIS["X",EAST],AXIS["Y",NORTH]] ™™†cš E‚Šsepsg IGCB 1955 / Congo TM zone 12+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defsPROJCS["IGCB 1955 / Congo TM zone 12",GEOGCS["IGCB 1955",DATUM["Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0],AUTHORITY["EPSG","6701"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4701"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3339"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ™™†cš E‚Šsepsg IGCB 1955 / Congo TM zone 14+proj=tmerc +lat_0=0 +lon_0=14 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defsPROJCS["IGCB 1955 / Congo TM zone 14",GEOGCS["IGCB 1955",DATUM["Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0],AUTHORITY["EPSG","6701"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4701"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",14],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3340"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ™™†cš E‚Šsepsg IGCB 1955 / Congo TM zone 16+proj=tmerc +lat_0=0 +lon_0=16 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defsPROJCS["IGCB 1955 / Congo TM zone 16",GEOGCS["IGCB 1955",DATUM["Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0],AUTHORITY["EPSG","6701"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4701"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3341"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Êʆ2š =EŠkepsg IGCB 1955 / UTM zone 33S+proj=utm +zone=33 +south +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defsPROJCS["IGCB 1955 / UTM zone 33S",GEOGCS["IGCB 1955",DATUM["Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0],AUTHORITY["EPSG","6701"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4701"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3342"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÿÿ…}š IŠepsg Mauritania 1999 / UTM zone 28N+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["Mauritania 1999 / UTM zone 28N",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6702"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4702"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3343"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …|š IŠepsg Mauritania 1999 / UTM zone 29N+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["Mauritania 1999 / UTM zone 29N",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6702"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4702"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3344"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …|š IŠepsg Mauritania 1999 / UTM zone 30N+proj=utm +zone=30 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["Mauritania 1999 / UTM zone 30N",GEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6702"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4702"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3345"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] üü†š 5o‰eepsg LKS94 / Lithuania TM+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9998 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["LKS94 / Lithuania TM",GEOGCS["LKS94",DATUM["Lithuania_1994_ETRS89",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6126"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4669"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9998],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3346"],AXIS["X",NORTH],AXIS["Y",EAST]] }}†š O‚)‹epsg NAD83 / Statistics Canada Lambert+proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675 +lon_0=-91.86666666666666 +x_0=6200000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Statistics Canada Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",77],PARAMETER["latitude_of_origin",63.390675],PARAMETER["central_meridian",-91.86666666666666],PARAMETER["false_easting",6200000],PARAMETER["false_northing",3000000],AUTHORITY["EPSG","3347"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] jj‡š [‚‹Cepsg NAD83(CSRS) / Statistics Canada Lambert+proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675 +lon_0=-91.86666666666666 +x_0=6200000 +y_0=3000000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Statistics Canada Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",77],PARAMETER["latitude_of_origin",63.390675],PARAMETER["central_meridian",-91.86666666666666],PARAMETER["false_easting",6200000],PARAMETER["false_northing",3000000],AUTHORITY["EPSG","3348"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] EE…7š Q7ˆoepsg WGS 84 / PDC Mercator (deprecated)+proj=merc +lon_0=-150 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / PDC Mercator (deprecated)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",-150],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3349"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ññ† š CAŠepsg Pulkovo 1942 / CS63 zone C0+proj=tmerc +lat_0=0.1 +lon_0=21.95 +k=1 +x_0=250000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone C0",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1],PARAMETER["central_meridian",21.95],PARAMETER["scale_factor",1],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3350"],AXIS["X",NORTH],AXIS["Y",EAST]] ïï† š CCŠepsg Pulkovo 1942 / CS63 zone C1+proj=tmerc +lat_0=0.1 +lon_0=24.95 +k=1 +x_0=1250000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone C1",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1],PARAMETER["central_meridian",24.95],PARAMETER["scale_factor",1],PARAMETER["false_easting",1250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3351"],AXIS["X",NORTH],AXIS["Y",EAST]] ïï† š CCŠepsg Pulkovo 1942 / CS63 zone C2+proj=tmerc +lat_0=0.1 +lon_0=27.95 +k=1 +x_0=2250000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / CS63 zone C2",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0.1],PARAMETER["central_meridian",27.95],PARAMETER["scale_factor",1],PARAMETER["false_easting",2250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3352"],AXIS["X",NORTH],AXIS["Y",EAST]] %%…WšI{‰uepsg Mhast (onshore) / UTM zone 32S+proj=utm +zone=32 +south +ellps=intl +units=m +no_defsPROJCS["Mhast (onshore) / UTM zone 32S",GEOGCS["Mhast (onshore)",DATUM["Mhast_onshore",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6704"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4704"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3353"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…[šK{‰{epsg Mhast (offshore) / UTM zone 32S+proj=utm +zone=32 +south +ellps=intl +units=m +no_defsPROJCS["Mhast (offshore) / UTM zone 32S",GEOGCS["Mhast (offshore)",DATUM["Mhast_offshore",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6705"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4705"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3354"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ““†iš Y‚Šqepsg Egypt Gulf of Suez S-650 TL / Red Belt+proj=tmerc +lat_0=30 +lon_0=31 +k=1 +x_0=615000 +y_0=810000 +ellps=helmert +towgs84=-146.21,112.63,4.05,0,0,0,0 +units=m +no_defsPROJCS["Egypt Gulf of Suez S-650 TL / Red Belt",GEOGCS["Egypt Gulf of Suez S-650 TL",DATUM["Egypt_Gulf_of_Suez_S_650_TL",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],TOWGS84[-146.21,112.63,4.05,0,0,0,0],AUTHORITY["EPSG","6706"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4706"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",31],PARAMETER["scale_factor",1],PARAMETER["false_easting",615000],PARAMETER["false_northing",810000],AUTHORITY["EPSG","3355"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ×׆%š M5ŠQepsg Grand Cayman 1959 / UTM zone 17N+proj=utm +zone=17 +ellps=clrk66 +towgs84=67.8,106.1,138.8,0,0,0,0 +units=m +no_defsPROJCS["Grand Cayman 1959 / UTM zone 17N",GEOGCS["Grand Cayman 1959",DATUM["Grand_Cayman_1959",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[67.8,106.1,138.8,0,0,0,0],AUTHORITY["EPSG","6723"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4723"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3356"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …dšOqŠepsg Little Cayman 1961 / UTM zone 17N+proj=utm +zone=17 +ellps=clrk66 +units=m +no_defsPROJCS["Little Cayman 1961 / UTM zone 17N",GEOGCS["Little Cayman 1961",DATUM["Little_Cayman_1961",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6726"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4726"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3357"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ‚‚†zš E‚‹epsg NAD83(HARN) / North Carolina+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_defsPROJCS["NAD83(HARN) / North Carolina",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.16666666666666],PARAMETER["standard_parallel_2",34.33333333333334],PARAMETER["latitude_of_origin",33.75],PARAMETER["central_meridian",-79],PARAMETER["false_easting",609601.22],PARAMETER["false_northing",0],AUTHORITY["EPSG","3358"],AXIS["X",EAST],AXIS["Y",NORTH]] HH‡4š m‚/‹Uepsg NAD83(HARN) / North Carolina (ftUS) (deprecated)+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024385 +y_0=0 +ellps=GRS80 +units=ft +no_defsPROJCS["NAD83(HARN) / North Carolina (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.16666666666666],PARAMETER["standard_parallel_2",34.33333333333334],PARAMETER["latitude_of_origin",33.75],PARAMETER["central_meridian",-79],PARAMETER["false_easting",2000004.000008],PARAMETER["false_northing",0],AUTHORITY["EPSG","3359"],AXIS["X",EAST],AXIS["Y",NORTH]] ŠŠ†rš E‚‹epsg NAD83(HARN) / South Carolina+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_defsPROJCS["NAD83(HARN) / South Carolina",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.83333333333334],PARAMETER["standard_parallel_2",32.5],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",609600],PARAMETER["false_northing",0],AUTHORITY["EPSG","3360"],AXIS["X",EAST],AXIS["Y",NORTH]] zz‡š! O‚‹'epsg !NAD83(HARN) / South Carolina (ft)+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_defsPROJCS["NAD83(HARN) / South Carolina (ft)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.83333333333334],PARAMETER["standard_parallel_2",32.5],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3361"],AXIS["X",EAST],AXIS["Y",NORTH]] zz‡š" M‚‹#epsg "NAD83(HARN) / Pennsylvania North+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_defsPROJCS["NAD83(HARN) / Pennsylvania North",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.95],PARAMETER["standard_parallel_2",40.88333333333333],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3362"],AXIS["X",EAST],AXIS["Y",NORTH]] MM‡/š# [‚%‹gepsg #NAD83(HARN) / Pennsylvania North (ftUS)+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_defsPROJCS["NAD83(HARN) / Pennsylvania North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.95],PARAMETER["standard_parallel_2",40.88333333333333],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3363"],AXIS["X",EAST],AXIS["Y",NORTH]] bb‡š$ M‚5‹;epsg $NAD83(HARN) / Pennsylvania South+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_defsPROJCS["NAD83(HARN) / Pennsylvania South",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.96666666666667],PARAMETER["standard_parallel_2",39.93333333333333],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3364"],AXIS["X",EAST],AXIS["Y",NORTH]] 55‡Gš% [‚=‹epsg %NAD83(HARN) / Pennsylvania South (ftUS)+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_defsPROJCS["NAD83(HARN) / Pennsylvania South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.96666666666667],PARAMETER["standard_parallel_2",39.93333333333333],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3365"],AXIS["X",EAST],AXIS["Y",NORTH]] ƒƒ†yš& [‚YŠGepsg &Hong Kong 1963 Grid System (deprecated)+proj=cass +lat_0=22.31213333333334 +lon_0=114.1785555555556 +x_0=40243.57775604237 +y_0=19069.93351512578 +a=6378293.645208759 +b=6356617.987679838 +units=m +no_defsPROJCS["Hong Kong 1963 Grid System (deprecated)",GEOGCS["Hong Kong 1963",DATUM["Hong_Kong_1963",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6738"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4738"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",22.31213333333334],PARAMETER["central_meridian",114.1785555555556],PARAMETER["false_easting",40243.57775604237],PARAMETER["false_northing",19069.93351512578],AUTHORITY["EPSG","3366"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] **…Rš'Gq‰wepsg 'IGN Astro 1960 / UTM zone 28N+proj=utm +zone=28 +ellps=clrk80 +units=m +no_defsPROJCS["IGN Astro 1960 / UTM zone 28N",GEOGCS["IGN Astro 1960",DATUM["IGN_Astro_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6700"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4700"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3367"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ++…Qš(Gq‰uepsg (IGN Astro 1960 / UTM zone 29N+proj=utm +zone=29 +ellps=clrk80 +units=m +no_defsPROJCS["IGN Astro 1960 / UTM zone 29N",GEOGCS["IGN Astro 1960",DATUM["IGN_Astro_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6700"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4700"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3368"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ++…Qš)Gq‰uepsg )IGN Astro 1960 / UTM zone 30N+proj=utm +zone=30 +ellps=clrk80 +units=m +no_defsPROJCS["IGN Astro 1960 / UTM zone 30N",GEOGCS["IGN Astro 1960",DATUM["IGN_Astro_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6700"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4700"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3369"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **…Rš* 5 ‰mepsg *NAD27 / UTM zone 59N+proj=utm +zone=59 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 59N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3370"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **…Rš+ 5 ‰mepsg +NAD27 / UTM zone 60N+proj=utm +zone=60 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 60N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3371"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…Hš, 5 ‰[epsg ,NAD83 / UTM zone 59N+proj=utm +zone=59 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / UTM zone 59N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3372"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…Hš- 5 ‰[epsg -NAD83 / UTM zone 60N+proj=utm +zone=60 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / UTM zone 60N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3373"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] PP…,š.3m‰Cepsg .FD54 / UTM zone 29N+proj=utm +zone=29 +ellps=intl +units=m +no_defsPROJCS["FD54 / UTM zone 29N",GEOGCS["FD54",DATUM["Faroe_Datum_1954",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6741"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4741"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3374"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ‡‡†uš/ ;{‹=epsg /GDM2000 / Peninsula RSO+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257964666666 +k=0.99984 +x_0=804671 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / Peninsula RSO",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",4],PARAMETER["longitude_of_center",102.25],PARAMETER["azimuth",323.0257964666666],PARAMETER["rectified_grid_angle",323.1301023611111],PARAMETER["scale_factor",0.99984],PARAMETER["false_easting",804671],PARAMETER["false_northing",0],AUTHORITY["EPSG","3375"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ™™†cš0 E_‹+epsg 0GDM2000 / East Malaysia BRSO+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.99984 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / East Malaysia BRSO",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",4],PARAMETER["longitude_of_center",115],PARAMETER["azimuth",53.31580995],PARAMETER["rectified_grid_angle",53.13010236111111],PARAMETER["scale_factor",0.99984],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3376"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ïï† š1 5}‰qepsg 1GDM2000 / Johor Grid+proj=cass +lat_0=2.121679744444445 +lon_0=103.4279362361111 +x_0=-14810.562 +y_0=8758.32 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / Johor Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",2.121679744444445],PARAMETER["central_meridian",103.4279362361111],PARAMETER["false_easting",-14810.562],PARAMETER["false_northing",8758.32],AUTHORITY["EPSG","3377"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÓÓ†)š2 Q}Š epsg 2GDM2000 / Sembilan and Melaka Grid+proj=cass +lat_0=2.682347636111111 +lon_0=101.9749050416667 +x_0=3673.785 +y_0=-4240.573 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / Sembilan and Melaka Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",2.682347636111111],PARAMETER["central_meridian",101.9749050416667],PARAMETER["false_easting",3673.785],PARAMETER["false_northing",-4240.573],AUTHORITY["EPSG","3378"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ïï† š3 5}‰qepsg 3GDM2000 / PahangGrid+proj=cass +lat_0=3.769388088888889 +lon_0=102.3682989833333 +x_0=-7368.228 +y_0=6485.858 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / PahangGrid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",3.769388088888889],PARAMETER["central_meridian",102.3682989833333],PARAMETER["false_easting",-7368.228],PARAMETER["false_northing",6485.858],AUTHORITY["EPSG","3379"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] óó† š4 ;s‰mepsg 4GDM2000 / Selangor Grid+proj=cass +lat_0=3.68464905 +lon_0=101.3891079138889 +x_0=-34836.161 +y_0=56464.049 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / Selangor Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",3.68464905],PARAMETER["central_meridian",101.3891079138889],PARAMETER["false_easting",-34836.161],PARAMETER["false_northing",56464.049],AUTHORITY["EPSG","3380"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ýý…š5 ?e‰cepsg 5GDM2000 / Terengganu Grid+proj=cass +lat_0=4.9762852 +lon_0=103.070275625 +x_0=19594.245 +y_0=3371.895 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / Terengganu Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",4.9762852],PARAMETER["central_meridian",103.070275625],PARAMETER["false_easting",19594.245],PARAMETER["false_northing",3371.895],AUTHORITY["EPSG","3381"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] õõ†š6 7u‰kepsg 6GDM2000 / Pinang Grid+proj=cass +lat_0=5.421517541666667 +lon_0=100.3443769638889 +x_0=-23.414 +y_0=62.283 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / Pinang Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",5.421517541666667],PARAMETER["central_meridian",100.3443769638889],PARAMETER["false_easting",-23.414],PARAMETER["false_northing",62.283],AUTHORITY["EPSG","3382"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÷÷†š7 K_‰iepsg 7GDM2000 / Kedah and Perlis Grid+proj=cass +lat_0=5.964672713888889 +lon_0=100.6363711111111 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / Kedah and Perlis Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",5.964672713888889],PARAMETER["central_meridian",100.6363711111111],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3383"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ññ† š8 5{‰oepsg 8GDM2000 / Perak Grid+proj=cass +lat_0=4.859063022222222 +lon_0=100.8154105861111 +x_0=-1.769 +y_0=133454.779 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / Perak Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",4.859063022222222],PARAMETER["central_meridian",100.8154105861111],PARAMETER["false_easting",-1.769],PARAMETER["false_northing",133454.779],AUTHORITY["EPSG","3384"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] é醚9 ;}‰wepsg 9GDM2000 / Kelantan Grid+proj=cass +lat_0=5.972543658333334 +lon_0=102.2952416694444 +x_0=13227.851 +y_0=8739.894 +ellps=GRS80 +units=m +no_defsPROJCS["GDM2000 / Kelantan Grid",GEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",5.972543658333334],PARAMETER["central_meridian",102.2952416694444],PARAMETER["false_easting",13227.851],PARAMETER["false_northing",8739.894],AUTHORITY["EPSG","3385"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  #epsg #  $epsg $  %epsg %  &epsg &  'epsg '  (epsg (  )epsg )  *epsg *  +epsg +  ,epsg ,  -epsg -  .epsg .  /epsg /  0epsg 0  1epsg 1  2epsg 2  3epsg 3  4epsg 4  5epsg 5  6epsg 6  7epsg 7  8epsg 8  9epsg 9  :epsg :  ;epsg ;  epsg >  ?epsg ?  @epsg @  Aepsg A  Bepsg B  Cepsg C  Depsg D  Eepsg E  Fepsg F  Gepsg G  Hepsg H  Iepsg I  Jepsg J  Kepsg K  Lepsg L  Mepsg M  Nepsg N  Oepsg O  Pepsg P  Qepsg Q  Repsg R  Sepsg S  Tepsg T  Uepsg U  Vepsg V  Wepsg W  Xepsg X  Yepsg Y  Zepsg Z  [epsg [  \epsg \  ]epsg ] ((…Tš: 55‰Gepsg :KKJ / Finland zone 0+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["KKJ / Finland zone 0",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3386"],AXIS["X",NORTH],AXIS["Y",EAST]] &&…Vš; 57‰Iepsg ;KKJ / Finland zone 5+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=5500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["KKJ / Finland zone 5",GEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3387"],AXIS["X",NORTH],AXIS["Y",EAST]] ""…Zš< S‰Qepsg e‚Š;epsg >Pulkovo 1995 / 3-degree Gauss-Kruger zone 60+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / 3-degree Gauss-Kruger zone 60",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",180],PARAMETER["scale_factor",1],PARAMETER["false_easting",60500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3390"],AXIS["X",NORTH],AXIS["Y",EAST]] ì솚? C7Š/epsg ?Karbala 1979 / UTM zone 37N+proj=utm +zone=37 +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +units=m +no_defsPROJCS["Karbala 1979 / UTM zone 37N",GEOGCS["Karbala 1979",DATUM["Karbala_1979",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[84.1,-320.1,218.7,0,0,0,0],AUTHORITY["EPSG","6743"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4743"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3391"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ì솚@ C7Š/epsg @Karbala 1979 / UTM zone 38N+proj=utm +zone=38 +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +units=m +no_defsPROJCS["Karbala 1979 / UTM zone 38N",GEOGCS["Karbala 1979",DATUM["Karbala_1979",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[84.1,-320.1,218.7,0,0,0,0],AUTHORITY["EPSG","6743"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4743"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3392"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ì솚A C7Š/epsg AKarbala 1979 / UTM zone 39N+proj=utm +zone=39 +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +units=m +no_defsPROJCS["Karbala 1979 / UTM zone 39N",GEOGCS["Karbala 1979",DATUM["Karbala_1979",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[84.1,-320.1,218.7,0,0,0,0],AUTHORITY["EPSG","6743"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4743"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3393"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÕÕ†'šB =‚Šepsg BNahrwan 1934 / Iraq zone+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.9987864078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +units=m +no_defsPROJCS["Nahrwan 1934 / Iraq zone",GEOGCS["Nahrwan 1934",DATUM["Nahrwan_1934",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6744"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4744"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",32.5],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9987864078],PARAMETER["false_easting",1500000],PARAMETER["false_northing",1166200],AUTHORITY["EPSG","3394"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] aa…šC ;1ˆSepsg CWGS 84 / World Mercator+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / World Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3395"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …išD U9‰Mepsg DPD/83 / 3-degree Gauss-Kruger zone 3+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["PD/83 / 3-degree Gauss-Kruger zone 3",GEOGCS["PD/83",DATUM["Potsdam_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6746"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4746"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3396"],AXIS["X",NORTH],AXIS["Y",EAST]] …kšE U;‰Oepsg EPD/83 / 3-degree Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["PD/83 / 3-degree Gauss-Kruger zone 4",GEOGCS["PD/83",DATUM["Potsdam_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6746"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4746"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3397"],AXIS["X",NORTH],AXIS["Y",EAST]] …mšF U;‰Sepsg FRD/83 / 3-degree Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RD/83 / 3-degree Gauss-Kruger zone 4",GEOGCS["RD/83",DATUM["Rauenberg_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6745"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4745"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3398"],AXIS["X",NORTH],AXIS["Y",EAST]] …mšG U;‰Sepsg GRD/83 / 3-degree Gauss-Kruger zone 5+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RD/83 / 3-degree Gauss-Kruger zone 5",GEOGCS["RD/83",DATUM["Rauenberg_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6745"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4745"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3399"],AXIS["X",NORTH],AXIS["Y",EAST]] ôô†šH I_‰qepsg HNAD83 / Alberta 10-TM (Forest)+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Alberta 10-TM (Forest)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-115],PARAMETER["scale_factor",0.9992],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3400"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] úú†šI MU‰kepsg INAD83 / Alberta 10-TM (Resource)+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Alberta 10-TM (Resource)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-115],PARAMETER["scale_factor",0.9992],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3401"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] áᆚJ UEŠ%epsg JNAD83(CSRS) / Alberta 10-TM (Forest)+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Alberta 10-TM (Forest)",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-115],PARAMETER["scale_factor",0.9992],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3402"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ç熚K Y;Šepsg KNAD83(CSRS) / Alberta 10-TM (Resource)+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Alberta 10-TM (Resource)",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-115],PARAMETER["scale_factor",0.9992],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3403"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] PP‡,šL S‚5‹Yepsg LNAD83(HARN) / North Carolina (ftUS)+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_defsPROJCS["NAD83(HARN) / North Carolina (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.16666666666666],PARAMETER["standard_parallel_2",34.33333333333334],PARAMETER["latitude_of_origin",33.75],PARAMETER["central_meridian",-79],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3404"],AXIS["X",EAST],AXIS["Y",NORTH]] KK…1šM9o‰Eepsg MVN-2000 / UTM zone 48N+proj=utm +zone=48 +ellps=WGS84 +units=m +no_defsPROJCS["VN-2000 / UTM zone 48N",GEOGCS["VN-2000",DATUM["Vietnam_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6756"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4756"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3405"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK…1šN9o‰Eepsg NVN-2000 / UTM zone 49N+proj=utm +zone=49 +ellps=WGS84 +units=m +no_defsPROJCS["VN-2000 / UTM zone 49N",GEOGCS["VN-2000",DATUM["Vietnam_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6756"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4756"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3406"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] †ošO A‚uŠ1epsg OHong Kong 1963 Grid System+proj=cass +lat_0=22.31213333333334 +lon_0=114.1785555555556 +x_0=40243.57775604237 +y_0=19069.93351512578 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.3047972654 +no_defsPROJCS["Hong Kong 1963 Grid System",GEOGCS["Hong Kong 1963",DATUM["Hong_Kong_1963",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6738"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4738"]],UNIT["Clarke's foot",0.3047972654,AUTHORITY["EPSG","9005"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",22.31213333333334],PARAMETER["central_meridian",114.1785555555556],PARAMETER["false_easting",132033.92],PARAMETER["false_northing",62565.96],AUTHORITY["EPSG","3407"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] V,VƒRšQ 5…]epsg Qunnamed+proj=laea +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +a=6371228 +b=6371228 +units=m +no_defsPROJCS["unnamed",GEOGCS["unnamed ellipse",DATUM["unknown",SPHEROID["unnamed",6371228,0]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",-90],PARAMETER["longitude_of_center",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","3409"]]ƒPšP 3…[epsg Punnamed+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6371228 +b=6371228 +units=m +no_defsPROJCS["unnamed",GEOGCS["unnamed ellipse",DATUM["unknown",SPHEROID["unnamed",6371228,0]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAMETER["longitude_of_center",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","3408"]] ß߆šR 93ŠWepsg RNSIDC EASE-Grid Global+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +a=6371228 +b=6371228 +units=m +no_defsPROJCS["NSIDC EASE-Grid Global",GEOGCS["Unspecified datum based upon the International 1924 Authalic Sphere",DATUM["Not_specified_based_on_International_1924_Authalic_Sphere",SPHEROID["International 1924 Authalic Sphere",6371228,0,AUTHORITY["EPSG","7057"]],AUTHORITY["EPSG","6053"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4053"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cylindrical_Equal_Area"],PARAMETER["standard_parallel_1",30],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3410"],AXIS["X",EAST],AXIS["Y",NORTH]] ©©†SšS [aŠsepsg SNSIDC Sea Ice Polar Stereographic North+proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defsPROJCS["NSIDC Sea Ice Polar Stereographic North",GEOGCS["Unspecified datum based upon the Hughes 1980 ellipsoid",DATUM["Not_specified_based_on_Hughes_1980_ellipsoid",SPHEROID["Hughes 1980",6378273,298.279411123061,AUTHORITY["EPSG","7058"]],AUTHORITY["EPSG","6054"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4054"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",70],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3411"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] ªª†RšT [aŠqepsg TNSIDC Sea Ice Polar Stereographic South+proj=stere +lat_0=-90 +lat_ts=-70 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defsPROJCS["NSIDC Sea Ice Polar Stereographic South",GEOGCS["Unspecified datum based upon the Hughes 1980 ellipsoid",DATUM["Not_specified_based_on_Hughes_1980_ellipsoid",SPHEROID["Hughes 1980",6378273,298.279411123061,AUTHORITY["EPSG","7058"]],AUTHORITY["EPSG","6054"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4054"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-70],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3412"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] óó† šU ma‰Mepsg UWGS 84 / NSIDC Sea Ice Polar Stereographic North+proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / NSIDC Sea Ice Polar Stereographic North",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",70],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3413"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] å冚V 5‚ ‰wepsg VSVY21 / Singapore TM+proj=tmerc +lat_0=1.366666666666667 +lon_0=103.8333333333333 +k=1 +x_0=28001.642 +y_0=38744.572 +ellps=WGS84 +units=m +no_defsPROJCS["SVY21 / Singapore TM",GEOGCS["SVY21",DATUM["SVY21",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6757"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4757"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",1.366666666666667],PARAMETER["central_meridian",103.8333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",28001.642],PARAMETER["false_northing",38744.572],AUTHORITY["EPSG","3414"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] qq‡ šW Q‚!‹-epsg WWGS 72BE / South China Sea Lambert+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_defsPROJCS["WGS 72BE / South China Sea Lambert",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",18],PARAMETER["standard_parallel_2",24],PARAMETER["latitude_of_origin",21],PARAMETER["central_meridian",114],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3415"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] §§†UšX =Šwepsg XETRS89 / Austria Lambert+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.33333333333333 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Austria Lambert",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",47.5],PARAMETER["central_meridian",13.33333333333333],PARAMETER["false_easting",400000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","3416"],AXIS["X",NORTH],AXIS["Y",EAST]] NN‡.šY A‚]‹Gepsg YNAD83 / Iowa North (ft US)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Iowa North (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.26666666666667],PARAMETER["standard_parallel_2",42.06666666666667],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",4921250],PARAMETER["false_northing",3280833.333300001],AUTHORITY["EPSG","3417"],AXIS["X",EAST],AXIS["Y",NORTH]] ee‡šZ A‚I‹-epsg ZNAD83 / Iowa South (ft US)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Iowa South (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.61666666666667],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3418"],AXIS["X",EAST],AXIS["Y",NORTH]] GG‡5š[ E‚c‹Kepsg [NAD83 / Kansas North (ft US)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Kansas North (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.78333333333333],PARAMETER["standard_parallel_2",38.71666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3419"],AXIS["X",EAST],AXIS["Y",NORTH]] **‡Rš\ Eƒ‹eepsg \NAD83 / Kansas South (ft US)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Kansas South (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.56666666666667],PARAMETER["standard_parallel_2",37.26666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",1312333.3333],AUTHORITY["EPSG","3420"],AXIS["X",EAST],AXIS["Y",NORTH]] ——†eš] C‚=ŠSepsg ]NAD83 / Nevada East (ft US)+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Nevada East (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-115.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",656166.6667],PARAMETER["false_northing",26246666.66670001],AUTHORITY["EPSG","3421"],AXIS["X",EAST],AXIS["Y",NORTH]] ££†Yš^ I‚)ŠIepsg ^NAD83 / Nevada Central (ft US)+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Nevada Central (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-116.6666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",19685000],AUTHORITY["EPSG","3422"],AXIS["X",EAST],AXIS["Y",NORTH]] ™™†cš_ C‚?ŠMepsg _NAD83 / Nevada West (ft US)+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Nevada West (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-118.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",13123333.3333],AUTHORITY["EPSG","3423"],AXIS["X",EAST],AXIS["Y",NORTH]] ÉɆ3š` A‚ Š%epsg `NAD83 / New Jersey (ft US)+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / New Jersey (ft US)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",492125],PARAMETER["false_northing",0],AUTHORITY["EPSG","3424"],AXIS["X",EAST],AXIS["Y",NORTH]] >>‡>ša M‚C‹uepsg aNAD83(HARN) / Iowa North (ft US)+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_defsPROJCS["NAD83(HARN) / Iowa North (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.26666666666667],PARAMETER["standard_parallel_2",42.06666666666667],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",4921250],PARAMETER["false_northing",3280833.333300001],AUTHORITY["EPSG","3425"],AXIS["X",EAST],AXIS["Y",NORTH]] UU‡'šb M‚/‹[epsg bNAD83(HARN) / Iowa South (ft US)+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_defsPROJCS["NAD83(HARN) / Iowa South (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.61666666666667],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3426"],AXIS["X",EAST],AXIS["Y",NORTH]] 77‡Ešc Q‚I‹yepsg cNAD83(HARN) / Kansas North (ft US)+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_defsPROJCS["NAD83(HARN) / Kansas North (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.78333333333333],PARAMETER["standard_parallel_2",38.71666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3427"],AXIS["X",EAST],AXIS["Y",NORTH]]66667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Kansas South (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.56666666666667],PARAMETER["standard_parallel_2",37.26666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",1312333.3333],AUTHORITY["EPSG","3428"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘†uše O‚#‹epsg eNAD83(HARN) / Nevada East (ft US)+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_defsPROJCS["NAD83(HARN) / Nevada East (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-115.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",656166.6667],PARAMETER["false_northing",26246666.66670001],AUTHORITY["EPSG","3429"],AXIS["X",EAST],AXIS["Y",NORTH]]‡bšd Q‚iŒepsg dNAD83(HARN) / Kansas South (ft US)+proj=lcc +lat_1=38.56666666666667 +lat_2=37.266666666ª ““†išf U‚Šwepsg fNAD83(HARN) / Nevada Central (ft US)+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_defsPROJCS["NAD83(HARN) / Nevada Central (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-116.6666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",19685000],AUTHORITY["EPSG","3430"],AXIS["X",EAST],AXIS["Y",NORTH]] ‰‰†sšg O‚%Š{epsg gNAD83(HARN) / Nevada West (ft US)+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_defsPROJCS["NAD83(HARN) / Nevada West (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-118.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",13123333.3333],AUTHORITY["EPSG","3431"],AXIS["X",EAST],AXIS["Y",NORTH]] ¹¹†Cšh MoŠSepsg hNAD83(HARN) / New Jersey (ft US)+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_defsPROJCS["NAD83(HARN) / New Jersey (ft US)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",492125],PARAMETER["false_northing",0],AUTHORITY["EPSG","3432"],AXIS["X",EAST],AXIS["Y",NORTH]] EE‡7ši G‚c‹Mepsg iNAD83 / Arkansas North (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Arkansas North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.23333333333333],PARAMETER["standard_parallel_2",34.93333333333333],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-92],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3433"],AXIS["X",EAST],AXIS["Y",NORTH]] FF‡6šj G‚e‹Iepsg jNAD83 / Arkansas South (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Arkansas South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.76666666666667],PARAMETER["standard_parallel_2",33.3],PARAMETER["latitude_of_origin",32.66666666666666],PARAMETER["central_meridian",-92],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",1312333.3333],AUTHORITY["EPSG","3434"],AXIS["X",EAST],AXIS["Y",NORTH]] ‡‡†ušk E‚QŠ]epsg kNAD83 / Illinois East (ftUS)+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Illinois East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-88.33333333333333],PARAMETER["scale_factor",0.999975],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","3435"],AXIS["X",EAST],AXIS["Y",NORTH]] ‹‹†qšl E‚CŠcepsg lNAD83 / Illinois West (ftUS)+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Illinois West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-90.16666666666667],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",2296583.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3436"],AXIS["X",EAST],AXIS["Y",NORTH]] ¥¥†Wšm E‚)ŠIepsg mNAD83 / New Hampshire (ftUS)+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / New Hampshire (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-71.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","3437"],AXIS["X",EAST],AXIS["Y",NORTH]] ¯¯†Mšn C‚'Š9epsg nNAD83 / Rhode Island (ftUS)+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Rhode Island (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.08333333333334],PARAMETER["central_meridian",-71.5],PARAMETER["scale_factor",0.99999375],PARAMETER["false_easting",328083.3333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3438"],AXIS["X",EAST],AXIS["Y",NORTH]]of flrx~„Š–œ¢¨®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôú†š?‡š@ˆšA‰šBŠšC‹šDŒšEšFŽšGšHšI‘šJ’šK“šL”šM•šN–šO—šQ˜šR™šSššT›šUœšVšWžšXŸšY šZ¡š[¢š\£š]¤š^¥š_¦š`§ša¨šb©šc«še¬šf­šg®šh¯ši°šj±šk²šl³šm´šn¶šo·šp¸šq¹šrºšs»št¼šu¾šv¿šwÀšxÁšyšzÚ{Äš|Åš}Æš~ǚțɛʛ˛̛͛ΛÏ›ЛÑ› Ò› Ó› Õ› ֛כ؛ٛڛۛܛݛޛߛà›á›â›ã›ä›æ›ç›é› ê›!ì›$ï›%ñ›&ò›'ô›(õ›)÷›,ú›-ü›2›3›5›6›7›8›9 ›: ??…=šo5q‰_epsg oPSD93 / UTM zone 39N+proj=utm +zone=39 +ellps=clrk80 +units=m +no_defsPROJCS["PSD93 / UTM zone 39N",GEOGCS["PSD93",DATUM["PDO_Survey_Datum_1993",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6134"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4134"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3439"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ??…=šp5q‰_epsg pPSD93 / UTM zone 40N+proj=utm +zone=40 +ellps=clrk80 +units=m +no_defsPROJCS["PSD93 / UTM zone 40N",GEOGCS["PSD93",DATUM["PDO_Survey_Datum_1993",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6134"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4134"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3440"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55‡Gšq S‚I‹{epsg qNAD83(HARN) / Arkansas North (ftUS)+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_defsPROJCS["NAD83(HARN) / Arkansas North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.23333333333333],PARAMETER["standard_parallel_2",34.93333333333333],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-92],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3441"],AXIS["X",EAST],AXIS["Y",NORTH]] 66‡Fšr S‚K‹wepsg rNAD83(HARN) / Arkansas South (ftUS)+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_defsPROJCS["NAD83(HARN) / Arkansas South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.76666666666667],PARAMETER["standard_parallel_2",33.3],PARAMETER["latitude_of_origin",32.66666666666666],PARAMETER["central_meridian",-92],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",1312333.3333],AUTHORITY["EPSG","3442"],AXIS["X",EAST],AXIS["Y",NORTH]] ww‡šs Q‚7‹ epsg sNAD83(HARN) / Illinois East (ftUS)+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_defsPROJCS["NAD83(HARN) / Illinois East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-88.33333333333333],PARAMETER["scale_factor",0.999975],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","3443"],AXIS["X",EAST],AXIS["Y",NORTH]] {{‡št Q‚)‹epsg tNAD83(HARN) / Illinois West (ftUS)+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_defsPROJCS["NAD83(HARN) / Illinois West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-90.16666666666667],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",2296583.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3444"],AXIS["X",EAST],AXIS["Y",NORTH]] ••†gšu Q‚Šwepsg uNAD83(HARN) / New Hampshire (ftUS)+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_defsPROJCS["NAD83(HARN) / New Hampshire (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-71.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","3445"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  _epsg _  `epsg `  aepsg a  bepsg b  cepsg c  depsg d  eepsg e  fepsg f  gepsg g  hepsg h  iepsg i  jepsg j  kepsg k  lepsg l  mepsg m  nepsg n  oepsg o  pepsg p  qepsg q  repsg r  sepsg s  tepsg t  uepsg u  vepsg v  wepsg w  xepsg x  yepsg y  zepsg z  {epsg {  |epsg |  }epsg }  ~epsg ~  epsg   €epsg €  epsg  ‚epsg ‚  ƒepsg ƒ  „epsg „  …epsg …  †epsg †  ‡epsg ‡  ˆepsg ˆ  ‰epsg ‰  Šepsg Š  ‹epsg ‹  Œepsg Œ  epsg  Žepsg Ž  epsg  epsg  ‘epsg ‘  ’epsg ’  “epsg “  ”epsg ”  •epsg •  –epsg –  —epsg —  ˜epsg ˜  ™epsg ™ ŸŸ†]šv O‚ Šgepsg vNAD83(HARN) / Rhode Island (ftUS)+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_defsPROJCS["NAD83(HARN) / Rhode Island (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.08333333333334],PARAMETER["central_meridian",-71.5],PARAMETER["scale_factor",0.99999375],PARAMETER["false_easting",328083.3333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3446"],AXIS["X",EAST],AXIS["Y",NORTH]] WW‡%šw G‚E‹Gepsg wETRS89 / Belgian Lambert 2005+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666666 +lat_0=50.797815 +lon_0=4.359215833333333 +x_0=150328 +y_0=166262 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Belgian Lambert 2005",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49.83333333333334],PARAMETER["standard_parallel_2",51.16666666666666],PARAMETER["latitude_of_origin",50.797815],PARAMETER["central_meridian",4.359215833333333],PARAMETER["false_easting",150328],PARAMETER["false_northing",166262],AUTHORITY["EPSG","3447"],AXIS["X",EAST],AXIS["Y",NORTH]] ÐІ,šx G‚Šepsg xJAD2001 / Jamaica Metric Grid+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=750000 +y_0=650000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JAD2001 / Jamaica Metric Grid",GEOGCS["JAD2001",DATUM["Jamaica_2001",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6758"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4758"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",18],PARAMETER["central_meridian",-77],PARAMETER["scale_factor",1],PARAMETER["false_easting",750000],PARAMETER["false_northing",650000],AUTHORITY["EPSG","3448"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …`šy 9‰sepsg yJAD2001 / UTM zone 17N+proj=utm +zone=17 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JAD2001 / UTM zone 17N",GEOGCS["JAD2001",DATUM["Jamaica_2001",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6758"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4758"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3449"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …`šz 9‰sepsg zJAD2001 / UTM zone 18N+proj=utm +zone=18 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["JAD2001 / UTM zone 18N",GEOGCS["JAD2001",DATUM["Jamaica_2001",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6758"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4758"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3450"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] RR‡*š{ I‚Q‹Cepsg {NAD83 / Louisiana North (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Louisiana North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",32.66666666666666],PARAMETER["standard_parallel_2",31.16666666666667],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-92.5],PARAMETER["false_easting",3280833.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3451"],AXIS["X",EAST],AXIS["Y",NORTH]] ll‡š| I‚7‹)epsg |NAD83 / Louisiana South (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Louisiana South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.7],PARAMETER["standard_parallel_2",29.3],PARAMETER["latitude_of_origin",28.5],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",3280833.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3452"],AXIS["X",EAST],AXIS["Y",NORTH]] 22‡Jš} O‚k‹cepsg }NAD83 / Louisiana Offshore (ftUS)+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.5 +lon_0=-91.33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Louisiana Offshore (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.83333333333333],PARAMETER["standard_parallel_2",26.16666666666667],PARAMETER["latitude_of_origin",25.5],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",3280833.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3453"],AXIS["X",EAST],AXIS["Y",NORTH]] GG‡5š~ O‚U‹Oepsg ~NAD83 / South Dakota North (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / South Dakota North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.4],PARAMETER["standard_parallel_2",42.83333333333334],PARAMETER["latitude_of_origin",42.33333333333334],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3454"],AXIS["X",EAST],AXIS["Y",NORTH]] GG‡5š O‚U‹Oepsg NAD83 / South Dakota South (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / South Dakota South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.4],PARAMETER["standard_parallel_2",42.83333333333334],PARAMETER["latitude_of_origin",42.33333333333334],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3455"],AXIS["X",EAST],AXIS["Y",NORTH]] BB‡:› U‚7‹qepsg €NAD83(HARN) / Louisiana North (ftUS)+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_defsPROJCS["NAD83(HARN) / Louisiana North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",32.66666666666666],PARAMETER["standard_parallel_2",31.16666666666667],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-92.5],PARAMETER["false_easting",3280833.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3456"],AXIS["X",EAST],AXIS["Y",NORTH]] \\‡ › U‚‹Wepsg NAD83(HARN) / Louisiana South (ftUS)+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_defsPROJCS["NAD83(HARN) / Louisiana South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.7],PARAMETER["standard_parallel_2",29.3],PARAMETER["latitude_of_origin",28.5],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",3280833.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3457"],AXIS["X",EAST],AXIS["Y",NORTH]] 99‡C› [‚9‹{epsg ‚NAD83(HARN) / South Dakota North (ftUS)+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_defsPROJCS["NAD83(HARN) / South Dakota North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.68333333333333],PARAMETER["standard_parallel_2",44.41666666666666],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3458"],AXIS["X",EAST],AXIS["Y",NORTH]] 77‡E› [‚;‹}epsg ƒNAD83(HARN) / South Dakota South (ftUS)+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_defsPROJCS["NAD83(HARN) / South Dakota South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.4],PARAMETER["standard_parallel_2",42.83333333333334],PARAMETER["latitude_of_origin",42.33333333333334],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3459"],AXIS["X",EAST],AXIS["Y",NORTH]] ùù†› ?]‰sepsg „Fiji 1986 / Fiji Map Grid+proj=tmerc +lat_0=-17 +lon_0=178.75 +k=0.99985 +x_0=2000000 +y_0=4000000 +ellps=WGS72 +units=m +no_defsPROJCS["Fiji 1986 / Fiji Map Grid",GEOGCS["Fiji 1986",DATUM["Fiji_Geodetic_Datum_1986",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6720"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4720"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-17],PARAMETER["central_meridian",178.75],PARAMETER["scale_factor",0.99985],PARAMETER["false_easting",2000000],PARAMETER["false_northing",4000000],AUTHORITY["EPSG","3460"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ë놛 A=Š-epsg …Dabola 1981 / UTM zone 28N+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-83,37,124,0,0,0,0 +units=m +no_defsPROJCS["Dabola 1981 / UTM zone 28N",GEOGCS["Dabola 1981",DATUM["Dabola_1981",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-83,37,124,0,0,0,0],AUTHORITY["EPSG","6155"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4155"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3461"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ì솛 A=Š+epsg †Dabola 1981 / UTM zone 29N+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-83,37,124,0,0,0,0 +units=m +no_defsPROJCS["Dabola 1981 / UTM zone 29N",GEOGCS["Dabola 1981",DATUM["Dabola_1981",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-83,37,124,0,0,0,0],AUTHORITY["EPSG","6155"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4155"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3462"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÷÷†› Em‰aepsg ‡NAD83 / Maine CS2000 Central+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Maine CS2000 Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.5],PARAMETER["central_meridian",-69.125],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3463"],AXIS["X",EAST],AXIS["Y",NORTH]] ç熛 QSŠepsg ˆNAD83(HARN) / Maine CS2000 Central+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Maine CS2000 Central",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.5],PARAMETER["central_meridian",-69.125],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3464"],AXIS["X",EAST],AXIS["Y",NORTH]] ŸŸ†]› I‚Šcepsg ‰NAD83(NSRS2007) / Alabama East+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alabama East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-85.83333333333333],PARAMETER["scale_factor",0.99996],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3465"],AXIS["X",EAST],AXIS["Y",NORTH]] µµ†G› I‚ŠMepsg ŠNAD83(NSRS2007) / Alabama West+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alabama West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-87.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3466"],AXIS["X",EAST],AXIS["Y",NORTH]] $“$‡c› K‚QŒ3epsg ŒNAD83(NSRS2007) / Alaska zone 1+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=323Ô†i› K{‹epsg ‹NAD83(NSRS2007) / Alaska Albers+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska Albers",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",55],PARAMETER["standard_parallel_2",65],PARAMETER["latitude_of_center",50],PARAMETER["longitude_of_center",-154],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3467"],AXIS["X",EAST],AXIS["Y",NORTH]].1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 1",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",57],PARAMETER["longitude_of_center",-133.6666666666667],PARAMETER["azimuth",323.1301023611111],PARAMETER["rectified_grid_angle",323.1301023611111],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",5000000],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","3468"],AXIS["X",EAST],AXIS["Y",NORTH]] ¿¿†=› KuŠCepsg NAD83(NSRS2007) / Alaska zone 2+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 2",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-142],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3469"],AXIS["X",EAST],AXIS["Y",NORTH]] ¿¿†=› KuŠCepsg ŽNAD83(NSRS2007) / Alaska zone 3+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 3",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-146],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3470"],AXIS["X",EAST],AXIS["Y",NORTH]] ¿¿†=› KuŠCepsg NAD83(NSRS2007) / Alaska zone 4+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 4",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-150],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3471"],AXIS["X",EAST],AXIS["Y",NORTH]] ¿¿†=› KuŠCepsg NAD83(NSRS2007) / Alaska zone 5+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 5",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-154],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3472"],AXIS["X",EAST],AXIS["Y",NORTH]] ¿¿†=› KuŠCepsg ‘NAD83(NSRS2007) / Alaska zone 6+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 6",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-158],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3473"],AXIS["X",EAST],AXIS["Y",NORTH]] ¿¿†=› KuŠCepsg ’NAD83(NSRS2007) / Alaska zone 7+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 7",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-162],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3474"],AXIS["X",EAST],AXIS["Y",NORTH]] ¿¿†=› KuŠCepsg “NAD83(NSRS2007) / Alaska zone 8+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 8",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-166],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3475"],AXIS["X",EAST],AXIS["Y",NORTH]] ¿¿†=› KuŠCepsg ”NAD83(NSRS2007) / Alaska zone 9+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 9",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-170],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3476"],AXIS["X",EAST],AXIS["Y",NORTH]] HH‡4› M‚C‹aepsg •NAD83(NSRS2007) / Alaska zone 10+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Alaska zone 10",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",53.83333333333334],PARAMETER["standard_parallel_2",51.83333333333334],PARAMETER["latitude_of_origin",51],PARAMETER["central_meridian",-176],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3477"],AXIS["X",EAST],AXIS["Y",NORTH]] ŸŸ†]› O‚Šcepsg –NAD83(NSRS2007) / Arizona Central+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Arizona Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-111.9166666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",213360],PARAMETER["false_northing",0],AUTHORITY["EPSG","3478"],AXIS["X",EAST],AXIS["Y",NORTH]] †l› Y‚Šuepsg —NAD83(NSRS2007) / Arizona Central (ft)+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Arizona Central (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-111.9166666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3479"],AXIS["X",EAST],AXIS["Y",NORTH]] ¥¥†W› I‚Š]epsg ˜NAD83(NSRS2007) / Arizona East+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Arizona East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-110.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",213360],PARAMETER["false_northing",0],AUTHORITY["EPSG","3480"],AXIS["X",EAST],AXIS["Y",NORTH]] ––†f› S‚Šoepsg ™NAD83(NSRS2007) / Arizona East (ft)+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Arizona East (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-110.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3481"],AXIS["X",EAST],AXIS["Y",NORTH]] ±±†K› I‚ŠQepsg šNAD83(NSRS2007) / Arizona West+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Arizona West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-113.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",213360],PARAMETER["false_northing",0],AUTHORITY["EPSG","3482"],AXIS["X",EAST],AXIS["Y",NORTH]] ¢¢†Z› S‚Šcepsg ›NAD83(NSRS2007) / Arizona West (ft)+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Arizona West (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-113.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3483"],AXIS["X",EAST],AXIS["Y",NORTH]] ..‡N› M‚]‹{epsg œNAD83(NSRS2007) / Arkansas North+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Arkansas North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.23333333333333],PARAMETER["standard_parallel_2",34.93333333333333],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-92],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3484"],AXIS["X",EAST],AXIS["Y",NORTH]]3333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Arkansas North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.23333333333333],PARAMETER["standard_parallel_2",34.93333333333333],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-92],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3485"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘ˆ › [‚wŒIepsg NAD83(NSRS2007) / Arkansas North (ftUS)+proj=lcc +lat_1=36.23333333333333 +lat_2=34.9333å >>‡>› M‚M‹kepsg žNAD83(NSRS2007) / Arkansas South+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Arkansas South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.76666666666667],PARAMETER["standard_parallel_2",33.3],PARAMETER["latitude_of_origin",32.66666666666666],PARAMETER["central_meridian",-92],PARAMETER["false_easting",400000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","3486"],AXIS["X",EAST],AXIS["Y",NORTH]]at_0=32.66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Arkansas South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.76666666666667],PARAMETER["standard_parallel_2",33.3],PARAMETER["latitude_of_origin",32.66666666666666],PARAMETER["central_meridian",-92],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",1312333.3333],AUTHORITY["EPSG","3487"],AXIS["X",EAST],AXIS["Y",NORTH]]  ‘ ‡› S‚ ‹-epsg  NAD83(NSRS2007) / California Albers+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / California Albers",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",34],PARAMETER["standard_parallel_2",40.5],PARAMETER["latitude_of_center",0],PARAMETER["longitude_of_center",-120],PARAMETER["false_easting",0],PARAMETER["false_northing",-4000000],AUTHORITY["EPSG","3488"],AXIS["X",EAST],AXIS["Y",NORTH]]ˆ› [‚yŒEepsg ŸNAD83(NSRS2007) / Arkansas South (ftUS)+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lè 88‡D›! S‚M‹qepsg ¡NAD83(NSRS2007) / California zone 1+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / California zone 1",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.66666666666666],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-122],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3489"],AXIS["X",EAST],AXIS["Y",NORTH]]lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / California zone 1 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.66666666666666],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-122],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","3490"],AXIS["X",EAST],AXIS["Y",NORTH]] ³‘"³ˆ*›$ aƒŒcepsg ¤NAD83(NSRS2007) / California zone 2 (ftUS)+proj=lcc +lat_1=39.83333333333334 +lat_2=38.3î‡b›# S‚kŒepsg £NAD83(NSRS2007) / California zone 2+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333íˆ ›" a‚{ŒEepsg ¢NAD83(NSRS2007) / California zone 1 (ftUS)+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +ë333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / California zone 2",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.83333333333334],PARAMETER["standard_parallel_2",38.33333333333334],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-122],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3491"],AXIS["X",EAST],AXIS["Y",NORTH]]3333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / California zone 2 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.83333333333334],PARAMETER["standard_parallel_2",38.33333333333334],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-122],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","3492"],AXIS["X",EAST],AXIS["Y",NORTH]] 00‡L›% S‚U‹yepsg ¥NAD83(NSRS2007) / California zone 3+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / California zone 3",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.06666666666667],PARAMETER["latitude_of_origin",36.5],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3493"],AXIS["X",EAST],AXIS["Y",NORTH]]6666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / California zone 3 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.06666666666667],PARAMETER["latitude_of_origin",36.5],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","3494"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘ˆ›& aƒŒMepsg ¦NAD83(NSRS2007) / California zone 3 (ftUS)+proj=lcc +lat_1=38.43333333333333 +lat_2=37.0ð PP‡,›' S‚5‹Yepsg §NAD83(NSRS2007) / California zone 4+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / California zone 4",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.25],PARAMETER["standard_parallel_2",36],PARAMETER["latitude_of_origin",35.33333333333334],PARAMETER["central_meridian",-119],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3495"],AXIS["X",EAST],AXIS["Y",NORTH]]33333333334 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / California zone 4 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.25],PARAMETER["standard_parallel_2",36],PARAMETER["latitude_of_origin",35.33333333333334],PARAMETER["central_meridian",-119],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","3496"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘‡t›( a‚cŒ-epsg ¨NAD83(NSRS2007) / California zone 4 (ftUS)+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.333ó 44‡H›) S‚Q‹uepsg ©NAD83(NSRS2007) / California zone 5+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / California zone 5",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.46666666666667],PARAMETER["standard_parallel_2",34.03333333333333],PARAMETER["latitude_of_origin",33.5],PARAMETER["central_meridian",-118],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3497"],AXIS["X",EAST],AXIS["Y",NORTH]]3333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / California zone 5 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.46666666666667],PARAMETER["standard_parallel_2",34.03333333333333],PARAMETER["latitude_of_origin",33.5],PARAMETER["central_meridian",-118],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","3498"],AXIS["X",EAST],AXIS["Y",NORTH]] ³‘"³ˆ0›, aƒŒiepsg ¬NAD83(NSRS2007) / California zone 6 (ftUS)+proj=lcc +lat_1=33.88333333333333 +lat_2=32.7ù‡h›+ S‚qŒepsg «NAD83(NSRS2007) / California zone 6+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333øˆ›* a‚ŒIepsg ªNAD83(NSRS2007) / California zone 5 (ftUS)+proj=lcc +lat_1=35.46666666666667 +lat_2=34.0ö333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / California zone 6",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.88333333333333],PARAMETER["standard_parallel_2",32.78333333333333],PARAMETER["latitude_of_origin",32.16666666666666],PARAMETER["central_meridian",-116.25],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3499"],AXIS["X",EAST],AXIS["Y",NORTH]]8333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / California zone 6 (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.88333333333333],PARAMETER["standard_parallel_2",32.78333333333333],PARAMETER["latitude_of_origin",32.16666666666666],PARAMETER["central_meridian",-116.25],PARAMETER["false_easting",6561666.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","3500"],AXIS["X",EAST],AXIS["Y",NORTH]] 66‡F›- Q‚Q‹sepsg ­NAD83(NSRS2007) / Colorado Central+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Colorado Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.75],PARAMETER["standard_parallel_2",38.45],PARAMETER["latitude_of_origin",37.83333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",914401.8289],PARAMETER["false_northing",304800.6096],AUTHORITY["EPSG","3501"],AXIS["X",EAST],AXIS["Y",NORTH]]3333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Colorado Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.75],PARAMETER["standard_parallel_2",38.45],PARAMETER["latitude_of_origin",37.83333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3502"],AXIS["X",EAST],AXIS["Y",NORTH]] Õ‘"³DÕˆ"›2 [ƒ!ŒQepsg ²NAD83(NSRS2007) / Colorado South (ftUS)+proj=lcc +lat_1=38.43333333333333 +lat_2=37.2333‡r›1 MƒŒepsg ±NAD83(NSRS2007) / Colorado South+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333ÿˆ"›0 [ƒ!ŒQepsg °NAD83(NSRS2007) / Colorado North (ftUS)+proj=lcc +lat_1=40.78333333333333 +lat_2=39.7166þ‡r›/ MƒŒepsg ¯NAD83(NSRS2007) / Colorado North+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666ý‡v›. _‚qŒ%epsg ®NAD83(NSRS2007) / Colorado Central (ftUS)+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8û667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Colorado North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.78333333333333],PARAMETER["standard_parallel_2",39.71666666666667],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",914401.8289],PARAMETER["false_northing",304800.6096],AUTHORITY["EPSG","3503"],AXIS["X",EAST],AXIS["Y",NORTH]]6666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Colorado North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.78333333333333],PARAMETER["standard_parallel_2",39.71666666666667],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3504"],AXIS["X",EAST],AXIS["Y",NORTH]]333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Colorado South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.23333333333333],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",914401.8289],PARAMETER["false_northing",304800.6096],AUTHORITY["EPSG","3505"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  ›epsg ›  œepsg œ  epsg  žepsg ž  Ÿepsg Ÿ   epsg    ¡epsg ¡  ¢epsg ¢  £epsg £  ¤epsg ¤  ¥epsg ¥  ¦epsg ¦  §epsg §  ¨epsg ¨  ©epsg ©  ªepsg ª  «epsg «  ¬epsg ¬  ­epsg ­  ®epsg ®  ¯epsg ¯  °epsg °  ±epsg ±  ²epsg ²  ³epsg ³  ´epsg ´  µepsg µ  ¶epsg ¶  ·epsg ·  ¸epsg ¸  ¹epsg ¹  ºepsg º  »epsg »  ¼epsg ¼  ½epsg ½  ¾epsg ¾  ¿epsg ¿  Àepsg À  Áepsg Á  Âepsg   Ãepsg à  Äepsg Ä  Åepsg Å  Æepsg Æ  Çepsg Ç  Èepsg È  Éepsg É  Êepsg Ê  Ëepsg Ë  Ìepsg Ì  Íepsg Í  Îepsg Î  Ïepsg Ï  Ðepsg Ð  Ñepsg Ñ  Òepsg Ò  Óepsg Ó  Ôepsg Ô  Õepsg Õ3333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Colorado South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.23333333333333],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3506"],AXIS["X",EAST],AXIS["Y",NORTH]] **‡R›3 G‚g‹epsg ³NAD83(NSRS2007) / Connecticut+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Connecticut",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.86666666666667],PARAMETER["standard_parallel_2",41.2],PARAMETER["latitude_of_origin",40.83333333333334],PARAMETER["central_meridian",-72.75],PARAMETER["false_easting",304800.6096],PARAMETER["false_northing",152400.3048],AUTHORITY["EPSG","3507"],AXIS["X",EAST],AXIS["Y",NORTH]]0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_0=152400.3048006096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Connecticut (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.86666666666667],PARAMETER["standard_parallel_2",41.2],PARAMETER["latitude_of_origin",40.83333333333334],PARAMETER["central_meridian",-72.75],PARAMETER["false_easting",1000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3508"],AXIS["X",EAST],AXIS["Y",NORTH]] :‘:†S›5 A‚ŠYepsg µNAD83(NSRS2007) / Delaware+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Delaware",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-75.41666666666667],PARAMETER["scale_factor",0.999995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3509"],AXIS["X",EAST],AXIS["Y",NORTH]]ˆ›4 UƒŒ/epsg ´NAD83(NSRS2007) / Connecticut (ftUS)+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_ nn‡›6 O‚3‹#epsg ¶NAD83(NSRS2007) / Delaware (ftUS)+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Delaware (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-75.41666666666667],PARAMETER["scale_factor",0.999995],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3510"],AXIS["X",EAST],AXIS["Y",NORTH]] ››†a›7 I‚Šgepsg ·NAD83(NSRS2007) / Florida East+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Florida East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3511"],AXIS["X",EAST],AXIS["Y",NORTH]] ``‡›8 W‚9‹1epsg ¸NAD83(NSRS2007) / Florida East (ftUS)+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Florida East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3512"],AXIS["X",EAST],AXIS["Y",NORTH]] }}†›9 U‚‹+epsg ¹NAD83(NSRS2007) / Florida GDL Albers+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Florida GDL Albers",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",24],PARAMETER["standard_parallel_2",31.5],PARAMETER["latitude_of_center",24],PARAMETER["longitude_of_center",-84],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3513"],AXIS["X",EAST],AXIS["Y",NORTH]] bb‡›: K‚+‹Gepsg ºNAD83(NSRS2007) / Florida North+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Florida North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.75],PARAMETER["standard_parallel_2",29.58333333333333],PARAMETER["latitude_of_origin",29],PARAMETER["central_meridian",-84.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3514"],AXIS["X",EAST],AXIS["Y",NORTH]] 55‡G›; Y‚3Œ epsg »NAD83(NSRS2007) / Florida North (ftUS)+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 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Florida North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.75],PARAMETER["standard_parallel_2",29.58333333333333],PARAMETER["latitude_of_origin",29],PARAMETER["central_meridian",-84.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3515"],AXIS["X",EAST],AXIS["Y",NORTH]] ››†a›< I‚Šgepsg ¼NAD83(NSRS2007) / Florida West+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Florida West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-82],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3516"],AXIS["X",EAST],AXIS["Y",NORTH]] ``‡›= W‚9‹1epsg ½NAD83(NSRS2007) / Florida West (ftUS)+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Florida West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-82],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3517"],AXIS["X",EAST],AXIS["Y",NORTH]] ¥¥†W›> I‚Š]epsg ¾NAD83(NSRS2007) / Georgia East+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Georgia East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-82.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3518"],AXIS["X",EAST],AXIS["Y",NORTH]] jj‡›? W‚/‹'epsg ¿NAD83(NSRS2007) / Georgia East (ftUS)+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Georgia East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-82.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3519"],AXIS["X",EAST],AXIS["Y",NORTH]] ¥¥†W›@ I‚Š]epsg ÀNAD83(NSRS2007) / Georgia West+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Georgia West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-84.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3520"],AXIS["X",EAST],AXIS["Y",NORTH]] ii‡›A W‚/‹)epsg ÁNAD83(NSRS2007) / Georgia West (ftUS)+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Georgia West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-84.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",2296583.333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3521"],AXIS["X",EAST],AXIS["Y",NORTH]] †l›B K‚+Škepsg ÂNAD83(NSRS2007) / Idaho Central+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Idaho Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3522"],AXIS["X",EAST],AXIS["Y",NORTH]] TT‡(›C Y‚I‹7epsg ÃNAD83(NSRS2007) / Idaho Central (ftUS)+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Idaho Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3523"],AXIS["X",EAST],AXIS["Y",NORTH]] zz‡›D E‚G‹epsg ÄNAD83(NSRS2007) / Idaho East+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Idaho East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-112.1666666666667],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3524"],AXIS["X",EAST],AXIS["Y",NORTH]] ??‡=›E S‚e‹Kepsg ÅNAD83(NSRS2007) / Idaho East (ftUS)+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Idaho East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-112.1666666666667],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3525"],AXIS["X",EAST],AXIS["Y",NORTH]] ——†e›F E‚#Škepsg ÆNAD83(NSRS2007) / Idaho West+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Idaho West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-115.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",800000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3526"],AXIS["X",EAST],AXIS["Y",NORTH]] [[‡!›G S‚A‹7epsg ÇNAD83(NSRS2007) / Idaho West (ftUS)+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Idaho West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-115.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",2624666.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3527"],AXIS["X",EAST],AXIS["Y",NORTH]] ww‡›H K‚G‹epsg ÈNAD83(NSRS2007) / Illinois East+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Illinois East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-88.33333333333333],PARAMETER["scale_factor",0.999975],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3528"],AXIS["X",EAST],AXIS["Y",NORTH]] 55‡G›I Y‚e‹Yepsg ÉNAD83(NSRS2007) / Illinois East (ftUS)+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Illinois East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-88.33333333333333],PARAMETER["scale_factor",0.999975],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","3529"],AXIS["X",EAST],AXIS["Y",NORTH]] {{‡›J K‚9‹epsg ÊNAD83(NSRS2007) / Illinois West+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Illinois West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-90.16666666666667],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3530"],AXIS["X",EAST],AXIS["Y",NORTH]] 99‡C›K Y‚W‹_epsg ËNAD83(NSRS2007) / Illinois West (ftUS)+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Illinois West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-90.16666666666667],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",2296583.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3531"],AXIS["X",EAST],AXIS["Y",NORTH]] †o›L I‚)Šuepsg ÌNAD83(NSRS2007) / Indiana East+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Indiana East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-85.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",100000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","3532"],AXIS["X",EAST],AXIS["Y",NORTH]] <<‡@›M W‚]‹Uepsg ÍNAD83(NSRS2007) / Indiana East (ftUS)+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Indiana East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-85.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",328083.333],PARAMETER["false_northing",820208.3330000002],AUTHORITY["EPSG","3533"],AXIS["X",EAST],AXIS["Y",NORTH]] †o›N I‚)Šuepsg ÎNAD83(NSRS2007) / Indiana West+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Indiana West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-87.08333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",900000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","3534"],AXIS["X",EAST],AXIS["Y",NORTH]] JJ‡2›O W‚G‹Oepsg ÏNAD83(NSRS2007) / Indiana West (ftUS)+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_defsPROJCS["NAD83(NSRS2007) / Indiana West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-87.08333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",2952750],PARAMETER["false_northing",820208.3330000002],AUTHORITY["EPSG","3535"],AXIS["X",EAST],AXIS["Y",NORTH]] >>‡>›P E‚U‹kepsg ÐNAD83(NSRS2007) / Iowa North+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_defsPROJCS["NAD83(NSRS2007) / Iowa North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.26666666666667],PARAMETER["standard_parallel_2",42.06666666666667],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",1500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3536"],AXIS["X",EAST],AXIS["Y",NORTH]]6666667 +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_defsPROJCS["NAD83(NSRS2007) / Iowa North (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.26666666666667],PARAMETER["standard_parallel_2",42.06666666666667],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",4921250],PARAMETER["false_northing",3280833.333300001],AUTHORITY["EPSG","3537"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘ˆ›Q U‚qŒCepsg ÑNAD83(NSRS2007) / Iowa North (ft US)+proj=lcc +lat_1=43.26666666666667 +lat_2=42.0666666 PP‡,›R E‚C‹Yepsg ÒNAD83(NSRS2007) / Iowa South+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_defsPROJCS["NAD83(NSRS2007) / Iowa South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.61666666666667],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3538"],AXIS["X",EAST],AXIS["Y",NORTH]]6666667 +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_defsPROJCS["NAD83(NSRS2007) / Iowa South (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.61666666666667],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3539"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘‡i›S U‚]Œ)epsg ÓNAD83(NSRS2007) / Iowa South (ft US)+proj=lcc +lat_1=41.78333333333333 +lat_2=40.6166666# 22‡J›T I‚]‹wepsg ÔNAD83(NSRS2007) / Kansas North+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_defsPROJCS["NAD83(NSRS2007) / Kansas North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.78333333333333],PARAMETER["standard_parallel_2",38.71666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3540"],AXIS["X",EAST],AXIS["Y",NORTH]]666666667 +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_defsPROJCS["NAD83(NSRS2007) / Kansas North (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.78333333333333],PARAMETER["standard_parallel_2",38.71666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3541"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘ˆ›U Y‚wŒGepsg ÕNAD83(NSRS2007) / Kansas North (ft US)+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666& $$‡X›V I‚kŒepsg ÖNAD83(NSRS2007) / Kansas South+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_defsPROJCS["NAD83(NSRS2007) / Kansas South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.56666666666667],PARAMETER["standard_parallel_2",37.26666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",400000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","3542"],AXIS["X",EAST],AXIS["Y",NORTH]]666666667 +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_defsPROJCS["NAD83(NSRS2007) / Kansas South (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.56666666666667],PARAMETER["standard_parallel_2",37.26666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",1312333.3333],AUTHORITY["EPSG","3543"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘ˆ$›W YƒŒaepsg ×NAD83(NSRS2007) / Kansas South (ft US)+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666) BB‡:›X M‚I‹gepsg ØNAD83(NSRS2007) / Kentucky North+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_defsPROJCS["NAD83(NSRS2007) / Kentucky North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",38.96666666666667],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-84.25],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3544"],AXIS["X",EAST],AXIS["Y",NORTH]]6666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Kentucky North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",38.96666666666667],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-84.25],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3545"],AXIS["X",EAST],AXIS["Y",NORTH]] Õ‘"³DÕˆ*›] [ƒ!Œaepsg ÝNAD83(NSRS2007) / Kentucky South (ftUS)+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73331‡^›\ M‚mŒ epsg ÜNAD83(NSRS2007) / Kentucky South+proj=lcc +lat_1=37.93333333333333 +lat_2=36.733333333330ˆ(›[ gƒ Œeepsg ÛNAD83(NSRS2007) / Kentucky Single Zone (ftUS)+proj=lcc +lat_1=37.08333333333334 +lat_2=3/‡n›Z Y‚qŒepsg ÚNAD83(NSRS2007) / Kentucky Single Zone+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666.‡v›Y [‚gŒ3epsg ÙNAD83(NSRS2007) / Kentucky North (ftUS)+proj=lcc +lat_1=37.96666666666667 +lat_2=38.9666,666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Kentucky Single Zone",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.08333333333334],PARAMETER["standard_parallel_2",38.66666666666666],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",1500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3546"],AXIS["X",EAST],AXIS["Y",NORTH]]8.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Kentucky Single Zone (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.08333333333334],PARAMETER["standard_parallel_2",38.66666666666666],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",4921250],PARAMETER["false_northing",3280833.333],AUTHORITY["EPSG","3547"],AXIS["X",EAST],AXIS["Y",NORTH]]333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Kentucky South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.93333333333333],PARAMETER["standard_parallel_2",36.73333333333333],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3548"],AXIS["X",EAST],AXIS["Y",NORTH]]3333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0001016001 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Kentucky South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.93333333333333],PARAMETER["standard_parallel_2",36.73333333333333],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",1640416.667],AUTHORITY["EPSG","3549"],AXIS["X",EAST],AXIS["Y",NORTH]] @@‡<›^ O‚I‹iepsg ÞNAD83(NSRS2007) / Louisiana North+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Louisiana North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",32.66666666666666],PARAMETER["standard_parallel_2",31.16666666666667],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-92.5],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3550"],AXIS["X",EAST],AXIS["Y",NORTH]]66666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Louisiana North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",32.66666666666666],PARAMETER["standard_parallel_2",31.16666666666667],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-92.5],PARAMETER["false_easting",3280833.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3551"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘‡|›_ ]‚eŒ?epsg ßNAD83(NSRS2007) / Louisiana North (ftUS)+proj=lcc +lat_1=32.66666666666666 +lat_2=31.1663 ZZ‡"›` O‚/‹Oepsg àNAD83(NSRS2007) / Louisiana South+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Louisiana South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.7],PARAMETER["standard_parallel_2",29.3],PARAMETER["latitude_of_origin",28.5],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3552"],AXIS["X",EAST],AXIS["Y",NORTH]]on_0=-91.33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Louisiana South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.7],PARAMETER["standard_parallel_2",29.3],PARAMETER["latitude_of_origin",28.5],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",3280833.333300001],PARAMETER["false_northing",0],AUTHORITY["EPSG","3553"],AXIS["X",EAST],AXIS["Y",NORTH]] 6‘6†W›b Y‚Š]epsg âNAD83(NSRS2007) / Maine CS2000 Central+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Maine CS2000 Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.5],PARAMETER["central_meridian",-69.125],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3554"],AXIS["X",EAST],AXIS["Y",NORTH]]‡b›a ]‚KŒ%epsg áNAD83(NSRS2007) / Louisiana South (ftUS)+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +l6 ‘‘†k›c S‚Šqepsg ãNAD83(NSRS2007) / Maine CS2000 East+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0.99998 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Maine CS2000 East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-67.875],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3555"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘†k›d S‚Šqepsg äNAD83(NSRS2007) / Maine CS2000 West+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0.99998 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Maine CS2000 West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.375],PARAMETER["scale_factor",0.99998],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3556"],AXIS["X",EAST],AXIS["Y",NORTH]] ¥¥†W›e E‚Š]epsg åNAD83(NSRS2007) / Maine East+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Maine East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3557"],AXIS["X",EAST],AXIS["Y",NORTH]] †{›f E‚9‹epsg æNAD83(NSRS2007) / Maine West+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Maine West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",900000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3558"],AXIS["X",EAST],AXIS["Y",NORTH]] ll‡›g A‚+‹=epsg çNAD83(NSRS2007) / Maryland+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Maryland",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.45],PARAMETER["standard_parallel_2",38.3],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-77],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3559"],AXIS["X",EAST],AXIS["Y",NORTH]] ''‡U›h ?ƒ ‹kepsg èNAD83 / Utah North (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Utah North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.71666666666667],PARAMETER["latitude_of_origin",40.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",3280833.333300001],AUTHORITY["EPSG","3560"],AXIS["X",EAST],AXIS["Y",NORTH]] ··†E›i E‚Š;epsg éOld Hawaiian / Hawaii zone 1+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +units=us-ft +no_defsPROJCS["Old Hawaiian / Hawaii zone 1",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",18.83333333333333],PARAMETER["central_meridian",-155.5],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3561"],AXIS["X",EAST],AXIS["Y",NORTH]] ŸŸ†]›j E‚+ŠSepsg êOld Hawaiian / Hawaii zone 2+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +units=us-ft +no_defsPROJCS["Old Hawaiian / Hawaii zone 2",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",20.33333333333333],PARAMETER["central_meridian",-156.6666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3562"],AXIS["X",EAST],AXIS["Y",NORTH]] ÃÆ9›k E‚Š/epsg ëOld Hawaiian / Hawaii zone 3+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +units=us-ft +no_defsPROJCS["Old Hawaiian / Hawaii zone 3",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.16666666666667],PARAMETER["central_meridian",-158],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3563"],AXIS["X",EAST],AXIS["Y",NORTH]] ¿¿†=›l E‚ Š3epsg ìOld Hawaiian / Hawaii zone 4+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.99999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +units=us-ft +no_defsPROJCS["Old Hawaiian / Hawaii zone 4",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.83333333333333],PARAMETER["central_meridian",-159.5],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3564"],AXIS["X",EAST],AXIS["Y",NORTH]] ³³†I›m E‚Š?epsg íOld Hawaiian / Hawaii zone 5+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +units=us-ft +no_defsPROJCS["Old Hawaiian / Hawaii zone 5",GEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.66666666666667],PARAMETER["central_meridian",-160.1666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3565"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó  ×epsg ×  Øepsg Ø  Ùepsg Ù  Úepsg Ú  Ûepsg Û  Üepsg Ü  Ýepsg Ý  Þepsg Þ  ßepsg ß  àepsg à  áepsg á  âepsg â  ãepsg ã  äepsg ä  åepsg å  æepsg æ  çepsg ç  èepsg è  éepsg é  êepsg ê  ëepsg ë  ìepsg ì  íepsg í  îepsg î  ïepsg ï  ðepsg ð  ñepsg ñ  òepsg ò  óepsg ó  ôepsg ô  õepsg õ  öepsg ö  ÷epsg ÷  øepsg ø  ùepsg ù  úepsg ú  ûepsg û  üepsg ü  ýepsg ý  þepsg þ  ÿepsg ÿ epsg epsg epsg epsg epsg epsg epsg epsg epsg  epsg  epsg  epsg  epsg  epsg epsg epsg epsg epsg <<‡@›n C‚o‹Wepsg îNAD83 / Utah Central (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Utah Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.65],PARAMETER["standard_parallel_2",39.01666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",6561666.666700001],AUTHORITY["EPSG","3566"],AXIS["X",EAST],AXIS["Y",NORTH]]offlrx~„Š–œ¢¨®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôú ›< ›= ›>›?›@›A›B›C›D›E›F›G›H›I›J›K›L›M›N›O›P!›Q"›R$›S%›T'›U(›V*›W+›X-›]2›^4›_5›`7›b8›c9›d:›e;›f<›g=›h>›i?›j@›kA›lB›mD›nF›oH›pI›qJ›rK›sL›tM›uN›vO›wP›xQ›yR›zS›{T›|U›}V›~W›YœZœ\œ]œ_œ`œbœdœeœ fœ gœ hœ iœ jœkœlœmœnœoœpœqœrœsœtœuœvœwœxœyœzœ{œ|œ }œ!~œ"œ#€œ$œ%‚œ&ƒœ'„œ(…œ)‡œ*ˆœ+Šœ-‹œ.Œœ/Žœ0œ1 II‡3›o ?‚]‹Sepsg ïNAD83 / Utah South (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Utah South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.35],PARAMETER["standard_parallel_2",37.21666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",9842500.000000002],AUTHORITY["EPSG","3567"],AXIS["X",EAST],AXIS["Y",NORTH]]67 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=999999.9999898402 +ellps=GRS80 +units=us-ft +no_defsPROJCS["NAD83(HARN) / Utah North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.71666666666667],PARAMETER["latitude_of_origin",40.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",3280833.333300001],AUTHORITY["EPSG","3568"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘‡e›p K‚oŒepsg ðNAD83(HARN) / Utah North (ftUS)+proj=lcc +lat_1=41.78333333333333 +lat_2=40.716666666666G ,,‡P›q O‚UŒepsg ñNAD83(HARN) / Utah Central (ftUS)+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_defsPROJCS["NAD83(HARN) / Utah Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.65],PARAMETER["standard_parallel_2",39.01666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",6561666.666700001],AUTHORITY["EPSG","3569"],AXIS["X",EAST],AXIS["Y",NORTH]] 99‡C›r K‚CŒepsg òNAD83(HARN) / Utah South (ftUS)+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_defsPROJCS["NAD83(HARN) / Utah South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.35],PARAMETER["standard_parallel_2",37.21666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",9842500.000000002],AUTHORITY["EPSG","3570"],AXIS["X",EAST],AXIS["Y",NORTH]] ..…N›s S?‰epsg óWGS 84 / North Pole LAEA Bering Sea+proj=laea +lat_0=90 +lon_0=180 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / North Pole LAEA Bering Sea",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAMETER["longitude_of_center",180],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3571"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] 44…H›t KA‰ epsg ôWGS 84 / North Pole LAEA Alaska+proj=laea +lat_0=90 +lon_0=-150 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / North Pole LAEA Alaska",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAMETER["longitude_of_center",-150],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3572"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] 44…H›u KA‰ epsg õWGS 84 / North Pole LAEA Canada+proj=laea +lat_0=90 +lon_0=-100 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / North Pole LAEA Canada",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAMETER["longitude_of_center",-100],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3573"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] 22…J›v O?‰epsg öWGS 84 / North Pole LAEA Atlantic+proj=laea +lat_0=90 +lon_0=-40 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / North Pole LAEA Atlantic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAMETER["longitude_of_center",-40],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3574"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] 88…D›w K=‰ epsg ÷WGS 84 / North Pole LAEA Europe+proj=laea +lat_0=90 +lon_0=10 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / North Pole LAEA Europe",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3575"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] 88…D›x K=‰ epsg øWGS 84 / North Pole LAEA Russia+proj=laea +lat_0=90 +lon_0=90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / North Pole LAEA Russia",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",90],PARAMETER["longitude_of_center",90],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3576"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] ¦¦†V›y ?{Š{epsg ùGDA94 / Australian Albers+proj=aea +lat_1=-18 +lat_2=-36 +lat_0=0 +lon_0=132 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / Australian Albers",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",-18],PARAMETER["standard_parallel_2",-36],PARAMETER["latitude_of_center",0],PARAMETER["longitude_of_center",132],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3577"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¤¤†X›z 5‚Šgepsg úNAD83 / Yukon Albers+proj=aea +lat_1=61.66666666666666 +lat_2=68 +lat_0=59 +lon_0=-132.5 +x_0=500000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Yukon Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",61.66666666666666],PARAMETER["standard_parallel_2",68],PARAMETER["latitude_of_center",59],PARAMETER["longitude_of_center",-132.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3578"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ‘‘†k›{ A‚‹epsg ûNAD83(CSRS) / Yukon Albers+proj=aea +lat_1=61.66666666666666 +lat_2=68 +lat_0=59 +lon_0=-132.5 +x_0=500000 +y_0=500000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Yukon Albers",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",61.66666666666666],PARAMETER["standard_parallel_2",68],PARAMETER["latitude_of_center",59],PARAMETER["longitude_of_center",-132.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3579"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ý݆›| 3eŠ/epsg üNAD83 / NWT Lambert+proj=lcc +lat_1=62 +lat_2=70 +lat_0=0 +lon_0=-112 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / NWT Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",62],PARAMETER["standard_parallel_2",70],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-112],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3580"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Êʆ2›} ?KŠcepsg ýNAD83(CSRS) / NWT Lambert+proj=lcc +lat_1=62 +lat_2=70 +lat_0=0 +lon_0=-112 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / NWT Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",62],PARAMETER["standard_parallel_2",70],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-112],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3581"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 00‡L›~ O‚IŒ epsg þNAD83(NSRS2007) / Maryland (ftUS)+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 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Maryland (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.45],PARAMETER["standard_parallel_2",38.3],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-77],PARAMETER["false_easting",1312333.333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3582"],AXIS["X",EAST],AXIS["Y",NORTH]] <<‡@› Y‚C‹mepsg ÿNAD83(NSRS2007) / Massachusetts Island+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Massachusetts Island",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.48333333333333],PARAMETER["standard_parallel_2",41.28333333333333],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-70.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3583"],AXIS["X",EAST],AXIS["Y",NORTH]]1.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Massachusetts Island (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.48333333333333],PARAMETER["standard_parallel_2",41.28333333333333],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-70.5],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3584"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘‡|œ g‚aŒ9epsgNAD83(NSRS2007) / Massachusetts Island (ftUS)+proj=lcc +lat_1=41.48333333333333 +lat_2=4X ..‡Nœ ]‚M‹{epsgNAD83(NSRS2007) / Massachusetts Mainland+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Massachusetts Mainland",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.68333333333333],PARAMETER["standard_parallel_2",41.71666666666667],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-71.5],PARAMETER["false_easting",200000],PARAMETER["false_northing",750000],AUTHORITY["EPSG","3585"],AXIS["X",EAST],AXIS["Y",NORTH]]=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=750000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Massachusetts Mainland (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.68333333333333],PARAMETER["standard_parallel_2",41.71666666666667],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-71.5],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",2460625],AUTHORITY["EPSG","3586"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘ˆ œ k‚kŒGepsgNAD83(NSRS2007) / Massachusetts Mainland (ftUS)+proj=lcc +lat_1=42.68333333333333 +lat_2[ $$‡Xœ Q‚cŒepsgNAD83(NSRS2007) / Michigan Central+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Michigan Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.7],PARAMETER["standard_parallel_2",44.18333333333333],PARAMETER["latitude_of_origin",43.31666666666667],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",6000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3587"],AXIS["X",EAST],AXIS["Y",NORTH]]at_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.999976001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Michigan Central (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.7],PARAMETER["standard_parallel_2",44.18333333333333],PARAMETER["latitude_of_origin",43.31666666666667],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",19685039.37],PARAMETER["false_northing",0],AUTHORITY["EPSG","3588"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘‡uœ [‚yŒepsgNAD83(NSRS2007) / Michigan Central (ft)+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +l^ ,,‡Pœ M‚_‹}epsgNAD83(NSRS2007) / Michigan North+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Michigan North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.08333333333334],PARAMETER["standard_parallel_2",45.48333333333333],PARAMETER["latitude_of_origin",44.78333333333333],PARAMETER["central_meridian",-87],PARAMETER["false_easting",8000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3589"],AXIS["X",EAST],AXIS["Y",NORTH]]33333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999968001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Michigan North (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.08333333333334],PARAMETER["standard_parallel_2",45.48333333333333],PARAMETER["latitude_of_origin",44.78333333333333],PARAMETER["central_meridian",-87],PARAMETER["false_easting",26246719.16],PARAMETER["false_northing",0],AUTHORITY["EPSG","3590"],AXIS["X",EAST],AXIS["Y",NORTH]] "‘"‡sœ c‚QŒ;epsgNAD83(NSRS2007) / Michigan Oblique Mercator+proj=omerc +lat_0=45.30916666666666 +lonc=-8c‡mœ W‚uŒepsgNAD83(NSRS2007) / Michigan North (ft)+proj=lcc +lat_1=47.08333333333334 +lat_2=45.483333a6 +alpha=337.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Michigan Oblique Mercator",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",45.30916666666666],PARAMETER["longitude_of_center",-86],PARAMETER["azimuth",337.25556],PARAMETER["rectified_grid_angle",337.25556],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",2546731.496],PARAMETER["false_northing",-4354009.816],AUTHORITY["EPSG","3591"],AXIS["X",EAST],AXIS["Y",NORTH]] BB‡:œ M‚I‹gepsgNAD83(NSRS2007) / Michigan South+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Michigan South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.66666666666666],PARAMETER["standard_parallel_2",42.1],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",4000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3592"],AXIS["X",EAST],AXIS["Y",NORTH]] ((‡Tœ W‚YŒepsg NAD83(NSRS2007) / Michigan South (ft)+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 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Michigan South (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.66666666666666],PARAMETER["standard_parallel_2",42.1],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",13123359.58],PARAMETER["false_northing",0],AUTHORITY["EPSG","3593"],AXIS["X",EAST],AXIS["Y",NORTH]] NN‡.œ S‚7‹[epsg NAD83(NSRS2007) / Minnesota Central+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Minnesota Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.05],PARAMETER["standard_parallel_2",45.61666666666667],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","3594"],AXIS["X",EAST],AXIS["Y",NORTH]] ++‡Qœ O‚k‹qepsg NAD83(NSRS2007) / Minnesota North+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Minnesota North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.63333333333333],PARAMETER["standard_parallel_2",47.03333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","3595"],AXIS["X",EAST],AXIS["Y",NORTH]] @@‡<œ O‚I‹iepsg NAD83(NSRS2007) / Minnesota South+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Minnesota South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.21666666666667],PARAMETER["standard_parallel_2",43.78333333333333],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","3596"],AXIS["X",EAST],AXIS["Y",NORTH]] ——†eœ Q‚Škepsg NAD83(NSRS2007) / Mississippi East+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Mississippi East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-88.83333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3597"],AXIS["X",EAST],AXIS["Y",NORTH]] UU‡'œ _‚5‹CepsgNAD83(NSRS2007) / Mississippi East (ftUS)+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Mississippi East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-88.83333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","3598"],AXIS["X",EAST],AXIS["Y",NORTH]] ——†eœ Q‚ŠkepsgNAD83(NSRS2007) / Mississippi West+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Mississippi West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-90.33333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3599"],AXIS["X",EAST],AXIS["Y",NORTH]] [[‡!œ _‚5‹7epsgNAD83(NSRS2007) / Mississippi West (ftUS)+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Mississippi West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-90.33333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",2296583.333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3600"],AXIS["X",EAST],AXIS["Y",NORTH]] †mœ Q‚ŠsepsgNAD83(NSRS2007) / Missouri Central+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933333 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Missouri Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",35.83333333333334],PARAMETER["central_meridian",-92.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3601"],AXIS["X",EAST],AXIS["Y",NORTH]] ••†gœ K‚ŠmepsgNAD83(NSRS2007) / Missouri East+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933333 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Missouri East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",35.83333333333334],PARAMETER["central_meridian",-90.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3602"],AXIS["X",EAST],AXIS["Y",NORTH]] ••†gœ K‚ŠmepsgNAD83(NSRS2007) / Missouri West+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941177 +x_0=850000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Missouri West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.16666666666666],PARAMETER["central_meridian",-94.5],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",850000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3603"],AXIS["X",EAST],AXIS["Y",NORTH]] ŠŠ†rœ ?‚‹epsgNAD83(NSRS2007) / Montana+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Montana",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",45],PARAMETER["latitude_of_origin",44.25],PARAMETER["central_meridian",-109.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3604"],AXIS["X",EAST],AXIS["Y",NORTH]] nn‡œ I‚!‹;epsgNAD83(NSRS2007) / Montana (ft)+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 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Montana (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",45],PARAMETER["latitude_of_origin",44.25],PARAMETER["central_meridian",-109.5],PARAMETER["false_easting",1968503.937],PARAMETER["false_northing",0],AUTHORITY["EPSG","3605"],AXIS["X",EAST],AXIS["Y",NORTH]] tt‡œ A‚#‹5epsgNAD83(NSRS2007) / Nebraska+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_defsPROJCS["NAD83(NSRS2007) / Nebraska",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3606"],AXIS["X",EAST],AXIS["Y",NORTH]] †mœ M‚#ŠsepsgNAD83(NSRS2007) / Nevada Central+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_defsPROJCS["NAD83(NSRS2007) / Nevada Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-116.6666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",6000000],AUTHORITY["EPSG","3607"],AXIS["X",EAST],AXIS["Y",NORTH]] QQ‡+œ ]‚=‹EepsgNAD83(NSRS2007) / Nevada Central (ft US)+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_defsPROJCS["NAD83(NSRS2007) / Nevada Central (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-116.6666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",19685000],AUTHORITY["EPSG","3608"],AXIS["X",EAST],AXIS["Y",NORTH]] ••†gœ G‚#ŠmepsgNAD83(NSRS2007) / Nevada East+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_defsPROJCS["NAD83(NSRS2007) / Nevada East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-115.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",8000000],AUTHORITY["EPSG","3609"],AXIS["X",EAST],AXIS["Y",NORTH]] EE‡7œ W‚Q‹OepsgNAD83(NSRS2007) / Nevada East (ft US)+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_defsPROJCS["NAD83(NSRS2007) / Nevada East (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-115.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",656166.6667],PARAMETER["false_northing",26246666.66670001],AUTHORITY["EPSG","3610"],AXIS["X",EAST],AXIS["Y",NORTH]] ••†gœ G‚#ŠmepsgNAD83(NSRS2007) / Nevada West+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_defsPROJCS["NAD83(NSRS2007) / Nevada West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-118.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",800000],PARAMETER["false_northing",4000000],AUTHORITY["EPSG","3611"],AXIS["X",EAST],AXIS["Y",NORTH]] GG‡5œ W‚S‹IepsgNAD83(NSRS2007) / Nevada West (ft US)+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_defsPROJCS["NAD83(NSRS2007) / Nevada West (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-118.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",13123333.3333],AUTHORITY["EPSG","3612"],AXIS["X",EAST],AXIS["Y",NORTH]] ••†gœ K‚ŠmepsgNAD83(NSRS2007) / New Hampshire+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_defsPROJCS["NAD83(NSRS2007) / New Hampshire",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-71.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3613"],AXIS["X",EAST],AXIS["Y",NORTH]] SS‡)œ Y‚=‹EepsgNAD83(NSRS2007) / New Hampshire (ftUS)+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_defsPROJCS["NAD83(NSRS2007) / New Hampshire (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-71.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","3614"],AXIS["X",EAST],AXIS["Y",NORTH]] ¥¥†Wœ E‚Š]epsgNAD83(NSRS2007) / New Jersey+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_defsPROJCS["NAD83(NSRS2007) / New Jersey",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3615"],AXIS["X",EAST],AXIS["Y",NORTH]] ww‡œ U‚‹!epsg NAD83(NSRS2007) / New Jersey (ft US)+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_defsPROJCS["NAD83(NSRS2007) / New Jersey (ft US)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",492125],PARAMETER["false_northing",0],AUTHORITY["EPSG","3616"],AXIS["X",EAST],AXIS["Y",NORTH]] ¯¯†Mœ! U{ŠSepsg!NAD83(NSRS2007) / New Mexico Central+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_defsPROJCS["NAD83(NSRS2007) / New Mexico Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-106.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3617"],AXIS["X",EAST],AXIS["Y",NORTH]] ss‡ œ" c‚‹epsg"NAD83(NSRS2007) / New Mexico Central (ftUS)+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / New Mexico Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-106.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3618"],AXIS["X",EAST],AXIS["Y",NORTH]] ••†gœ# O‚Šmepsg#NAD83(NSRS2007) / New Mexico East+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / New Mexico East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-104.3333333333333],PARAMETER["scale_factor",0.999909091],PARAMETER["false_easting",165000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3619"],AXIS["X",EAST],AXIS["Y",NORTH]] gg‡œ$ ]‚#‹3epsg$NAD83(NSRS2007) / New Mexico East (ftUS)+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / New Mexico East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-104.3333333333333],PARAMETER["scale_factor",0.999909091],PARAMETER["false_easting",541337.5],PARAMETER["false_northing",0],AUTHORITY["EPSG","3620"],AXIS["X",EAST],AXIS["Y",NORTH]] ••†gœ% O‚Šmepsg%NAD83(NSRS2007) / New Mexico West+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / New Mexico West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-107.8333333333333],PARAMETER["scale_factor",0.999916667],PARAMETER["false_easting",830000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3621"],AXIS["X",EAST],AXIS["Y",NORTH]] YY‡#œ& ]‚9‹9epsg&NAD83(NSRS2007) / New Mexico West (ftUS)+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / New Mexico West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-107.8333333333333],PARAMETER["scale_factor",0.999916667],PARAMETER["false_easting",2723091.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3622"],AXIS["X",EAST],AXIS["Y",NORTH]] ——†eœ' Q‚Škepsg'NAD83(NSRS2007) / New York Central+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / New York Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-76.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3623"],AXIS["X",EAST],AXIS["Y",NORTH]] UU‡'œ( _‚5‹Cepsg(NAD83(NSRS2007) / New York Central (ftUS)+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / New York Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-76.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",820208.3330000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","3624"],AXIS["X",EAST],AXIS["Y",NORTH]] ŸŸ†]œ) K‚Šcepsg)NAD83(NSRS2007) / New York East+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_defsPROJCS["NAD83(NSRS2007) / New York East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3625"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg  epsg !epsg! "epsg" #epsg# $epsg$ %epsg% &epsg& 'epsg' (epsg( )epsg) *epsg* +epsg+ ,epsg, -epsg- .epsg. /epsg/ 0epsg0 1epsg1 2epsg2 3epsg3 4epsg4 5epsg5 6epsg6 7epsg7 8epsg8 9epsg9 :epsg: ;epsg; epsg> ?epsg? @epsg@ AepsgA BepsgB CepsgC DepsgD EepsgE FepsgF GepsgG HepsgH IepsgI JepsgJ KepsgK LepsgL MepsgM ss‡ œ* Y‚‹%epsg*NAD83(NSRS2007) / New York East (ftUS)+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_defsPROJCS["NAD83(NSRS2007) / New York East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",492125],PARAMETER["false_northing",0],AUTHORITY["EPSG","3626"],AXIS["X",EAST],AXIS["Y",NORTH]] ""‡Zœ+ Y‚]Œepsg+NAD83(NSRS2007) / New York Long Island+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / New York Long Island",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.03333333333333],PARAMETER["standard_parallel_2",40.66666666666666],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-74],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3627"],AXIS["X",EAST],AXIS["Y",NORTH]]0.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / New York Long Island (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.03333333333333],PARAMETER["standard_parallel_2",40.66666666666666],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-74],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","3628"],AXIS["X",EAST],AXIS["Y",NORTH]] .‘.†_œ- K‚Šeepsg-NAD83(NSRS2007) / New York West+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / New York West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-78.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",350000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3629"],AXIS["X",EAST],AXIS["Y",NORTH]]ˆœ, g‚{Œ_epsg,NAD83(NSRS2007) / New York Long Island (ftUS)+proj=lcc +lat_1=41.03333333333333 +lat_2=4‰ aa‡œ. Y‚5‹1epsg.NAD83(NSRS2007) / New York West (ftUS)+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / New York West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-78.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",1148291.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3630"],AXIS["X",EAST],AXIS["Y",NORTH]] @@‡<œ/ M‚K‹iepsg/NAD83(NSRS2007) / North Carolina+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / North Carolina",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.16666666666666],PARAMETER["standard_parallel_2",34.33333333333334],PARAMETER["latitude_of_origin",33.75],PARAMETER["central_meridian",-79],PARAMETER["false_easting",609601.22],PARAMETER["false_northing",0],AUTHORITY["EPSG","3631"],AXIS["X",EAST],AXIS["Y",NORTH]]3333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / North Carolina (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.16666666666666],PARAMETER["standard_parallel_2",34.33333333333334],PARAMETER["latitude_of_origin",33.75],PARAMETER["central_meridian",-79],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3632"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘‡nœ0 [‚cŒ'epsg0NAD83(NSRS2007) / North Carolina (ftUS)+proj=lcc +lat_1=36.16666666666666 +lat_2=34.3333 >>‡>œ1 U‚E‹kepsg1NAD83(NSRS2007) / North Dakota North+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / North Dakota North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.43333333333333],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3633"],AXIS["X",EAST],AXIS["Y",NORTH]] ""‡Zœ2 _‚WŒepsg2NAD83(NSRS2007) / North Dakota North (ft)+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 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / North Dakota North (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.43333333333333],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",1968503.937],PARAMETER["false_northing",0],AUTHORITY["EPSG","3634"],AXIS["X",EAST],AXIS["Y",NORTH]]  ‡\œ3 U‚cŒ epsg3NAD83(NSRS2007) / North Dakota South+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / North Dakota South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.48333333333333],PARAMETER["standard_parallel_2",46.18333333333333],PARAMETER["latitude_of_origin",45.66666666666666],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3635"],AXIS["X",EAST],AXIS["Y",NORTH]]333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / North Dakota South (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.48333333333333],PARAMETER["standard_parallel_2",46.18333333333333],PARAMETER["latitude_of_origin",45.66666666666666],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",1968503.937],PARAMETER["false_northing",0],AUTHORITY["EPSG","3636"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘‡xœ4 _‚uŒ%epsg4NAD83(NSRS2007) / North Dakota South (ft)+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18’ LL‡0œ5 E‚G‹]epsg5NAD83(NSRS2007) / Ohio North+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Ohio North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.7],PARAMETER["standard_parallel_2",40.43333333333333],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3637"],AXIS["X",EAST],AXIS["Y",NORTH]] PP‡,œ6 E‚C‹Yepsg6NAD83(NSRS2007) / Ohio South+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Ohio South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.03333333333333],PARAMETER["standard_parallel_2",38.73333333333333],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3638"],AXIS["X",EAST],AXIS["Y",NORTH]] LL‡0œ7 M‚?‹]epsg7NAD83(NSRS2007) / Oklahoma North+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Oklahoma North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.76666666666667],PARAMETER["standard_parallel_2",35.56666666666667],PARAMETER["latitude_of_origin",35],PARAMETER["central_meridian",-98],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3639"],AXIS["X",EAST],AXIS["Y",NORTH]] ‡]œ8 [‚GŒ!epsg8NAD83(NSRS2007) / Oklahoma North (ftUS)+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Oklahoma North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.76666666666667],PARAMETER["standard_parallel_2",35.56666666666667],PARAMETER["latitude_of_origin",35],PARAMETER["central_meridian",-98],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3640"],AXIS["X",EAST],AXIS["Y",NORTH]] ..‡Nœ9 M‚]‹{epsg9NAD83(NSRS2007) / Oklahoma South+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_defsPROJCS["NAD83(NSRS2007) / Oklahoma South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.23333333333333],PARAMETER["standard_parallel_2",33.93333333333333],PARAMETER["latitude_of_origin",33.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3641"],AXIS["X",EAST],AXIS["Y",NORTH]]3333333333 +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_defsPROJCS["NAD83(NSRS2007) / Oklahoma South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.23333333333333],PARAMETER["standard_parallel_2",33.93333333333333],PARAMETER["latitude_of_origin",33.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3642"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘‡{œ: [‚eŒ?epsg:NAD83(NSRS2007) / Oklahoma South (ftUS)+proj=lcc +lat_1=35.23333333333333 +lat_2=33.9333™ xx‡œ; M‚‹1epsg;NAD83(NSRS2007) / Oregon Lambert+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_defsPROJCS["NAD83(NSRS2007) / Oregon Lambert",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",45.5],PARAMETER["latitude_of_origin",41.75],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3643"],AXIS["X",EAST],AXIS["Y",NORTH]] \\‡ œ< W‚%‹Mepsg S‚Y‹{epsg>NAD83(NSRS2007) / Oregon North (ft)+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 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Oregon North (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46],PARAMETER["standard_parallel_2",44.33333333333334],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",8202099.738],PARAMETER["false_northing",0],AUTHORITY["EPSG","3646"],AXIS["X",EAST],AXIS["Y",NORTH]] HH‡4œ? I‚G‹aepsg?NAD83(NSRS2007) / Oregon South+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Oregon South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44],PARAMETER["standard_parallel_2",42.33333333333334],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3647"],AXIS["X",EAST],AXIS["Y",NORTH]] --‡Oœ@ S‚Y‹{epsg@NAD83(NSRS2007) / Oregon South (ft)+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 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Oregon South (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44],PARAMETER["standard_parallel_2",42.33333333333334],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",4921259.843],PARAMETER["false_northing",0],AUTHORITY["EPSG","3648"],AXIS["X",EAST],AXIS["Y",NORTH]] 88‡DœA U‚K‹qepsgANAD83(NSRS2007) / Pennsylvania North+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Pennsylvania North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.95],PARAMETER["standard_parallel_2",40.88333333333333],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3649"],AXIS["X",EAST],AXIS["Y",NORTH]]33 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Pennsylvania North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.95],PARAMETER["standard_parallel_2",40.88333333333333],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3650"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘‡qœB c‚SŒ5epsgBNAD83(NSRS2007) / Pennsylvania North (ftUS)+proj=lcc +lat_1=41.95 +lat_2=40.883333333333¢  ‡\œC U‚cŒ epsgCNAD83(NSRS2007) / Pennsylvania South+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Pennsylvania South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.96666666666667],PARAMETER["standard_parallel_2",39.93333333333333],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3651"],AXIS["X",EAST],AXIS["Y",NORTH]]93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Pennsylvania South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.96666666666667],PARAMETER["standard_parallel_2",39.93333333333333],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3652"],AXIS["X",EAST],AXIS["Y",NORTH]] *‘*†cœE I‚ŠiepsgENAD83(NSRS2007) / Rhode Island+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=100000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Rhode Island",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.08333333333334],PARAMETER["central_meridian",-71.5],PARAMETER["scale_factor",0.99999375],PARAMETER["false_easting",100000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3653"],AXIS["X",EAST],AXIS["Y",NORTH]]ˆ œD c‚kŒMepsgDNAD83(NSRS2007) / Pennsylvania South (ftUS)+proj=lcc +lat_1=40.96666666666667 +lat_2=39.¥ ]]‡œF W‚;‹5epsgFNAD83(NSRS2007) / Rhode Island (ftUS)+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Rhode Island (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.08333333333334],PARAMETER["central_meridian",-71.5],PARAMETER["scale_factor",0.99999375],PARAMETER["false_easting",328083.3333],PARAMETER["false_northing",0],AUTHORITY["EPSG","3654"],AXIS["X",EAST],AXIS["Y",NORTH]] HH‡4œG M‚C‹aepsgGNAD83(NSRS2007) / South Carolina+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / South Carolina",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.83333333333334],PARAMETER["standard_parallel_2",32.5],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",609600],PARAMETER["false_northing",0],AUTHORITY["EPSG","3655"],AXIS["X",EAST],AXIS["Y",NORTH]] 88‡DœH W‚E‹uepsgHNAD83(NSRS2007) / South Carolina (ft)+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 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / South Carolina (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.83333333333334],PARAMETER["standard_parallel_2",32.5],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3656"],AXIS["X",EAST],AXIS["Y",NORTH]] $$‡XœI U‚_ŒepsgINAD83(NSRS2007) / South Dakota North+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / South Dakota North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.68333333333333],PARAMETER["standard_parallel_2",44.41666666666666],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3657"],AXIS["X",EAST],AXIS["Y",NORTH]]41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / South Dakota North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.68333333333333],PARAMETER["standard_parallel_2",44.41666666666666],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3658"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘ˆœJ c‚gŒIepsgJNAD83(NSRS2007) / South Dakota North (ftUS)+proj=lcc +lat_1=45.68333333333333 +lat_2=44.« ""‡ZœK U‚aŒepsgKNAD83(NSRS2007) / South Dakota South+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / South Dakota South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.4],PARAMETER["standard_parallel_2",42.83333333333334],PARAMETER["latitude_of_origin",42.33333333333334],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3659"],AXIS["X",EAST],AXIS["Y",NORTH]]4 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / South Dakota South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.4],PARAMETER["standard_parallel_2",42.83333333333334],PARAMETER["latitude_of_origin",42.33333333333334],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3660"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘ˆœL c‚iŒKepsgLNAD83(NSRS2007) / South Dakota South (ftUS)+proj=lcc +lat_1=44.4 +lat_2=42.8333333333333® PP‡,œM C‚E‹YepsgMNAD83(NSRS2007) / Tennessee+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Tennessee",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.41666666666666],PARAMETER["standard_parallel_2",35.25],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-86],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3661"],AXIS["X",EAST],AXIS["Y",NORTH]] ##‡YœN Q‚MŒepsgNNAD83(NSRS2007) / Tennessee (ftUS)+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 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Tennessee (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.41666666666666],PARAMETER["standard_parallel_2",35.25],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-86],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3662"],AXIS["X",EAST],AXIS["Y",NORTH]]67 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Texas Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",31.88333333333333],PARAMETER["standard_parallel_2",30.11666666666667],PARAMETER["latitude_of_origin",29.66666666666667],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",700000],PARAMETER["false_northing",3000000],AUTHORITY["EPSG","3663"],AXIS["X",EAST],AXIS["Y",NORTH]] "‘"ˆ<œP Yƒ%epsgPNAD83(NSRS2007) / Texas Central (ftUS)+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666´‡vœO KƒŒ#epsgONAD83(NSRS2007) / Texas Central+proj=lcc +lat_1=31.88333333333333 +lat_2=30.116666666666²666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Texas Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",31.88333333333333],PARAMETER["standard_parallel_2",30.11666666666667],PARAMETER["latitude_of_origin",29.66666666666667],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",2296583.333],PARAMETER["false_northing",9842500.000000002],AUTHORITY["EPSG","3664"],AXIS["X",EAST],AXIS["Y",NORTH]] SS‡)œQ o‚‹UepsgQNAD83(NSRS2007) / Texas Centric Albers Equal Area+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Texas Centric Albers Equal Area",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",27.5],PARAMETER["standard_parallel_2",35],PARAMETER["latitude_of_center",18],PARAMETER["longitude_of_center",-100],PARAMETER["false_easting",1500000],PARAMETER["false_northing",6000000],AUTHORITY["EPSG","3665"],AXIS["X",EAST],AXIS["Y",NORTH]] RR‡*œR o‚‹WepsgRNAD83(NSRS2007) / Texas Centric Lambert Conformal+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Texas Centric Lambert Conformal",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.5],PARAMETER["standard_parallel_2",35],PARAMETER["latitude_of_origin",18],PARAMETER["central_meridian",-100],PARAMETER["false_easting",1500000],PARAMETER["false_northing",5000000],AUTHORITY["EPSG","3666"],AXIS["X",EAST],AXIS["Y",NORTH]] XX‡$œS G‚9‹QepsgSNAD83(NSRS2007) / Texas North+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Texas North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.18333333333333],PARAMETER["standard_parallel_2",34.65],PARAMETER["latitude_of_origin",34],PARAMETER["central_meridian",-101.5],PARAMETER["false_easting",200000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3667"],AXIS["X",EAST],AXIS["Y",NORTH]]_0=34 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Texas North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.18333333333333],PARAMETER["standard_parallel_2",34.65],PARAMETER["latitude_of_origin",34],PARAMETER["central_meridian",-101.5],PARAMETER["false_easting",656166.667],PARAMETER["false_northing",3280833.333],AUTHORITY["EPSG","3668"],AXIS["X",EAST],AXIS["Y",NORTH]] ³‘"³ˆ!œV eƒŒaepsgVNAD83(NSRS2007) / Texas North Central (ftUS)+proj=lcc +lat_1=33.96666666666667 +lat_2=32»‡hœU W‚mŒepsgUNAD83(NSRS2007) / Texas North Central+proj=lcc +lat_1=33.96666666666667 +lat_2=32.133333º‡mœT U‚kŒ#epsgTNAD83(NSRS2007) / Texas North (ftUS)+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat¸33333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Texas North Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.96666666666667],PARAMETER["standard_parallel_2",32.13333333333333],PARAMETER["latitude_of_origin",31.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","3669"],AXIS["X",EAST],AXIS["Y",NORTH]].13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Texas North Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.96666666666667],PARAMETER["standard_parallel_2",32.13333333333333],PARAMETER["latitude_of_origin",31.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",6561666.667],AUTHORITY["EPSG","3670"],AXIS["X",EAST],AXIS["Y",NORTH]] $$‡XœW G‚mŒepsgWNAD83(NSRS2007) / Texas South+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Texas South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.83333333333333],PARAMETER["standard_parallel_2",26.16666666666667],PARAMETER["latitude_of_origin",25.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",300000],PARAMETER["false_northing",5000000],AUTHORITY["EPSG","3671"],AXIS["X",EAST],AXIS["Y",NORTH]]6666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.0000000001 +y_0=5000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Texas South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.83333333333333],PARAMETER["standard_parallel_2",26.16666666666667],PARAMETER["latitude_of_origin",25.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",16404166.667],AUTHORITY["EPSG","3672"],AXIS["X",EAST],AXIS["Y",NORTH]] ³‘"³ˆœZ eƒŒ_epsgZNAD83(NSRS2007) / Texas South Central (ftUS)+proj=lcc +lat_1=30.28333333333333 +lat_2=28À‡dœY W‚iŒepsgYNAD83(NSRS2007) / Texas South Central+proj=lcc +lat_1=30.28333333333333 +lat_2=28.383333¿ˆ'œX UƒŒgepsgXNAD83(NSRS2007) / Texas South (ftUS)+proj=lcc +lat_1=27.83333333333333 +lat_2=26.1666666½33333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Texas South Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.28333333333333],PARAMETER["standard_parallel_2",28.38333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",600000],PARAMETER["false_northing",4000000],AUTHORITY["EPSG","3673"],AXIS["X",EAST],AXIS["Y",NORTH]].38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=3999999.9998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Texas South Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.28333333333333],PARAMETER["standard_parallel_2",28.38333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",1968500],PARAMETER["false_northing",13123333.333],AUTHORITY["EPSG","3674"],AXIS["X",EAST],AXIS["Y",NORTH]] 88‡Dœ[ I‚W‹qepsg[NAD83(NSRS2007) / Utah Central+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Utah Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.65],PARAMETER["standard_parallel_2",39.01666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","3675"],AXIS["X",EAST],AXIS["Y",NORTH]]0=38.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=1999999.999992 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Utah Central (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.65],PARAMETER["standard_parallel_2",39.01666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640419.948],PARAMETER["false_northing",6561679.79],AUTHORITY["EPSG","3676"],AXIS["X",EAST],AXIS["Y",NORTH]] "‘"ˆœ] WƒŒSepsg]NAD83(NSRS2007) / Utah Central (ftUS)+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +laćjœ\ S‚wŒepsg\NAD83(NSRS2007) / Utah Central (ft)+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_Ât_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=2000000.00001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Utah Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.65],PARAMETER["standard_parallel_2",39.01666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",6561666.666700001],AUTHORITY["EPSG","3677"],AXIS["X",EAST],AXIS["Y",NORTH]] $$‡Xœ^ E‚oŒepsg^NAD83(NSRS2007) / Utah North+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Utah North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.71666666666667],PARAMETER["latitude_of_origin",40.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3678"],AXIS["X",EAST],AXIS["Y",NORTH]]6667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=999999.9999960001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Utah North (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.71666666666667],PARAMETER["latitude_of_origin",40.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640419.948],PARAMETER["false_northing",3280839.895],AUTHORITY["EPSG","3679"],AXIS["X",EAST],AXIS["Y",NORTH]] "‘"ˆ'œ` SƒŒgepsg`NAD83(NSRS2007) / Utah North (ftUS)+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666Ȉœ_ OƒŒ)epsg_NAD83(NSRS2007) / Utah North (ft)+proj=lcc +lat_1=41.78333333333333 +lat_2=40.7166666666Æ666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=999999.9999898402 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Utah North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.71666666666667],PARAMETER["latitude_of_origin",40.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",3280833.333300001],AUTHORITY["EPSG","3680"],AXIS["X",EAST],AXIS["Y",NORTH]] <<‡@œa E‚W‹mepsgaNAD83(NSRS2007) / Utah South+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Utah South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.35],PARAMETER["standard_parallel_2",37.21666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",3000000],AUTHORITY["EPSG","3681"],AXIS["X",EAST],AXIS["Y",NORTH]]36.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0=2999999.999988 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defsPROJCS["NAD83(NSRS2007) / Utah South (ft)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["foot",0.3048,AUTHORITY["EPSG","9002"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.35],PARAMETER["standard_parallel_2",37.21666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640419.948],PARAMETER["false_northing",9842519.685],AUTHORITY["EPSG","3682"],AXIS["X",EAST],AXIS["Y",NORTH]] "‘"ˆœc S‚qŒOepsgcNAD83(NSRS2007) / Utah South (ftUS)+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_̇gœb O‚wŒepsgbNAD83(NSRS2007) / Utah South (ft)+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=Ê0=36.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Utah South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.35],PARAMETER["standard_parallel_2",37.21666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",9842500.000000002],AUTHORITY["EPSG","3683"],AXIS["X",EAST],AXIS["Y",NORTH]] »»†Aœd ?‚ŠGepsgdNAD83(NSRS2007) / Vermont+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Vermont",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-72.5],PARAMETER["scale_factor",0.999964286],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3684"],AXIS["X",EAST],AXIS["Y",NORTH]] 66‡Fœe M‚U‹sepsgeNAD83(NSRS2007) / Virginia North+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Virginia North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.2],PARAMETER["standard_parallel_2",38.03333333333333],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",3500000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","3685"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó OepsgO PepsgP QepsgQ RepsgR SepsgS TepsgT UepsgU VepsgV WepsgW XepsgX YepsgY ZepsgZ [epsg[ \epsg\ ]epsg] ^epsg^ _epsg_ `epsg` aepsga bepsgb cepsgc depsgd eepsge fepsgf gepsgg hepsgh iepsgi jepsgj kepsgk lepsgl mepsgm nepsgn oepsgo pepsgp qepsgq repsgr sepsgs tepsgt uepsgu vepsgv wepsgw xepsgx yepsgy zepsgz {epsg{ |epsg| }epsg} ~epsg~ epsg €epsg€ epsg ‚epsg‚ ƒepsgƒ „epsg„ …epsg… †epsg† ‡epsg‡ ˆepsgˆ ‰epsg‰at_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Virginia North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.2],PARAMETER["standard_parallel_2",38.03333333333333],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",11482916.667],PARAMETER["false_northing",6561666.667],AUTHORITY["EPSG","3686"],AXIS["X",EAST],AXIS["Y",NORTH]] ³‘"³ˆ'œh [ƒŒaepsghNAD83(NSRS2007) / Virginia South (ftUS)+proj=lcc +lat_1=37.96666666666667 +lat_2=36.7666Ó‡`œg M‚oŒ epsggNAD83(NSRS2007) / Virginia South+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666Òˆ œf [‚}ŒGepsgfNAD83(NSRS2007) / Virginia North (ftUS)+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lÐ667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Virginia South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",36.76666666666667],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",3500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","3687"],AXIS["X",EAST],AXIS["Y",NORTH]]6666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Virginia South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",36.76666666666667],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",11482916.667],PARAMETER["false_northing",3280833.333],AUTHORITY["EPSG","3688"],AXIS["X",EAST],AXIS["Y",NORTH]] DD‡8œi Q‚C‹eepsgiNAD83(NSRS2007) / Washington North+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Washington North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.5],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-120.8333333333333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3689"],AXIS["X",EAST],AXIS["Y",NORTH]]+lat_0=47 +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Washington North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.5],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-120.8333333333333],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3690"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘‡tœj _‚aŒ1epsgjNAD83(NSRS2007) / Washington North (ftUS)+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 Õ $$‡Xœk Q‚cŒepsgkNAD83(NSRS2007) / Washington South+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Washington South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.33333333333334],PARAMETER["standard_parallel_2",45.83333333333334],PARAMETER["latitude_of_origin",45.33333333333334],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3691"],AXIS["X",EAST],AXIS["Y",NORTH]]offlrx~„Š–œ¢¨®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôú‘œ3“œ4”œ5•œ6–œ7—œ8˜œ9šœ:›œ;œœ<œ=žœ>Ÿœ? œ@¡œA£œB¤œC¦œE§œF¨œG©œHªœI¬œJ­œK¯œL°œM±œN³œPµœQ¶œR·œS¹œV¼œW¾œZÁœ[Ü]Åœ^Çœ`ÉœaËœcÍœdΜeÑœhÔœiÖœjלkÚœlÛœmÜœnÝœoÞœpßœqáœrâœsäœuåœvæœwçœxèœyéœzêœ{ëœ|ìœ}íœ~îœïðñòóôõö÷ø ù ú û ü ýþÿ      !"#$%&'()*+,-333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Washington South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.33333333333334],PARAMETER["standard_parallel_2",45.83333333333334],PARAMETER["latitude_of_origin",45.33333333333334],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",1640416.667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3692"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘ˆœl _ƒŒQepsglNAD83(NSRS2007) / Washington South (ftUS)+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83Ù pp‡ œm W‚‹9epsgmNAD83(NSRS2007) / West Virginia North+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / West Virginia North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.25],PARAMETER["standard_parallel_2",39],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3693"],AXIS["X",EAST],AXIS["Y",NORTH]] BB‡:œn W‚?‹gepsgnNAD83(NSRS2007) / West Virginia South+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / West Virginia South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.88333333333333],PARAMETER["standard_parallel_2",37.48333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3694"],AXIS["X",EAST],AXIS["Y",NORTH]] ZZ‡"œo S‚+‹OepsgoNAD83(NSRS2007) / Wisconsin Central+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_defsPROJCS["NAD83(NSRS2007) / Wisconsin Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.5],PARAMETER["standard_parallel_2",44.25],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-90],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3695"],AXIS["X",EAST],AXIS["Y",NORTH]] --‡Oœp a‚3ŒepsgpNAD83(NSRS2007) / Wisconsin Central (ftUS)+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=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Wisconsin Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.5],PARAMETER["standard_parallel_2",44.25],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-90],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3696"],AXIS["X",EAST],AXIS["Y",NORTH]] ,,‡Pœq O‚]‹}epsgqNAD83(NSRS2007) / Wisconsin North+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 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Wisconsin North",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46.76666666666667],PARAMETER["standard_parallel_2",45.56666666666667],PARAMETER["latitude_of_origin",45.16666666666666],PARAMETER["central_meridian",-90],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3697"],AXIS["X",EAST],AXIS["Y",NORTH]]66666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Wisconsin North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46.76666666666667],PARAMETER["standard_parallel_2",45.56666666666667],PARAMETER["latitude_of_origin",45.16666666666666],PARAMETER["central_meridian",-90],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3698"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘‡}œr ]‚eŒAepsgrNAD83(NSRS2007) / Wisconsin North (ftUS)+proj=lcc +lat_1=46.76666666666667 +lat_2=45.566à JJ‡2œs O‚?‹_epsgsNAD83(NSRS2007) / Wisconsin South+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Wisconsin South",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.06666666666667],PARAMETER["standard_parallel_2",42.73333333333333],PARAMETER["latitude_of_origin",42],PARAMETER["central_meridian",-90],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3699"],AXIS["X",EAST],AXIS["Y",NORTH]]33333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Wisconsin South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.06666666666667],PARAMETER["standard_parallel_2",42.73333333333333],PARAMETER["latitude_of_origin",42],PARAMETER["central_meridian",-90],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3700"],AXIS["X",EAST],AXIS["Y",NORTH]] &‘&†gœu kŠmepsguNAD83(NSRS2007) / Wisconsin Transverse Mercator+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y_0=-4480000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Wisconsin Transverse Mercator",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-90],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",520000],PARAMETER["false_northing",-4480000],AUTHORITY["EPSG","3701"],AXIS["X",EAST],AXIS["Y",NORTH]]‡_œt ]‚GŒ#epsgtNAD83(NSRS2007) / Wisconsin South (ftUS)+proj=lcc +lat_1=44.06666666666667 +lat_2=42.733ã ››†aœv I‚ŠgepsgvNAD83(NSRS2007) / Wyoming East+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Wyoming East",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-105.1666666666667],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3702"],AXIS["X",EAST],AXIS["Y",NORTH]] †{œw Y‚%‹epsgwNAD83(NSRS2007) / Wyoming East Central+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Wyoming East Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-107.3333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",400000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","3703"],AXIS["X",EAST],AXIS["Y",NORTH]] ¡¡†[œx Y‚ŠaepsgxNAD83(NSRS2007) / Wyoming West Central+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Wyoming West Central",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-108.75],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3704"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘‘†kœy I‚%ŠqepsgyNAD83(NSRS2007) / Wyoming West+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Wyoming West",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-110.0833333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","3705"],AXIS["X",EAST],AXIS["Y",NORTH]] â↜z IŠWepsgzNAD83(NSRS2007) / UTM zone 59N+proj=utm +zone=59 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 59N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3706"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] â↜{ IŠWepsg{NAD83(NSRS2007) / UTM zone 60N+proj=utm +zone=60 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 60N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3707"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ä䆜| GŠWepsg|NAD83(NSRS2007) / UTM zone 1N+proj=utm +zone=1 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 1N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3708"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ä䆜} GŠWepsg}NAD83(NSRS2007) / UTM zone 2N+proj=utm +zone=2 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 2N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3709"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ä䆜~ GŠWepsg~NAD83(NSRS2007) / UTM zone 3N+proj=utm +zone=3 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 3N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3710"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ä䆜 GŠWepsgNAD83(NSRS2007) / UTM zone 4N+proj=utm +zone=4 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 4N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3711"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää† GŠWepsg€NAD83(NSRS2007) / UTM zone 5N+proj=utm +zone=5 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 5N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3712"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää† GŠWepsgNAD83(NSRS2007) / UTM zone 6N+proj=utm +zone=6 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 6N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3713"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää† GŠWepsg‚NAD83(NSRS2007) / UTM zone 7N+proj=utm +zone=7 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 7N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3714"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää† GŠWepsgƒNAD83(NSRS2007) / UTM zone 8N+proj=utm +zone=8 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 8N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3715"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää† GŠWepsg„NAD83(NSRS2007) / UTM zone 9N+proj=utm +zone=9 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 9N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3716"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] áᆠIŠYepsg…NAD83(NSRS2007) / UTM zone 10N+proj=utm +zone=10 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 10N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3717"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] áᆠIŠYepsg†NAD83(NSRS2007) / UTM zone 11N+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 11N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3718"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] áᆠIŠYepsg‡NAD83(NSRS2007) / UTM zone 12N+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 12N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3719"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] áᆠIŠYepsgˆNAD83(NSRS2007) / UTM zone 13N+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 13N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3720"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] â↠IŠWepsg‰NAD83(NSRS2007) / UTM zone 14N+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 14N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3721"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] â↠IŠWepsgŠNAD83(NSRS2007) / UTM zone 15N+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 15N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3722"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] â↠IŠWepsg‹NAD83(NSRS2007) / UTM zone 16N+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 16N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3723"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] â↠IŠWepsgŒNAD83(NSRS2007) / UTM zone 17N+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 17N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3724"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] â↠IŠWepsgNAD83(NSRS2007) / UTM zone 18N+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 18N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3725"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] â↠IŠWepsgŽNAD83(NSRS2007) / UTM zone 19N+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / UTM zone 19N",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3726"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] åå† ?}‰{epsgReunion 1947 / TM Reunion+proj=tmerc +lat_0=-21.11666666666667 +lon_0=55.53333333333333 +k=1 +x_0=160000 +y_0=50000 +ellps=intl +units=m +no_defsPROJCS["Reunion 1947 / TM Reunion",GEOGCS["Reunion 1947",DATUM["Reunion_1947",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6626"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4626"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-21.11666666666667],PARAMETER["central_meridian",55.53333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",160000],PARAMETER["false_northing",50000],AUTHORITY["EPSG","3727"],AXIS["X",EAST],AXIS["Y",NORTH]] ‡] S‚OŒ!epsgNAD83(NSRS2007) / Ohio North (ftUS)+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 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Ohio North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.7],PARAMETER["standard_parallel_2",40.43333333333333],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3728"],AXIS["X",EAST],AXIS["Y",NORTH]] ##‡Y S‚KŒepsg‘NAD83(NSRS2007) / Ohio South (ftUS)+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 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Ohio South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.03333333333333],PARAMETER["standard_parallel_2",38.73333333333333],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3729"],AXIS["X",EAST],AXIS["Y",NORTH]] aa‡ W‚5‹3epsg’NAD83(NSRS2007) / Wyoming East (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Wyoming East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-105.1666666666667],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",656166.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3730"],AXIS["X",EAST],AXIS["Y",NORTH]] 66‡F g‚U‹Yepsg“NAD83(NSRS2007) / Wyoming East Central (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Wyoming East Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-107.3333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","3731"],AXIS["X",EAST],AXIS["Y",NORTH]] tt‡ g‚ ‹%epsg”NAD83(NSRS2007) / Wyoming West Central (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Wyoming West Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-108.75],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3732"],AXIS["X",EAST],AXIS["Y",NORTH]] DD‡8 W‚Y‹Iepsg•NAD83(NSRS2007) / Wyoming West (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Wyoming West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-110.0833333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","3733"],AXIS["X",EAST],AXIS["Y",NORTH]] qq‡  ?‚;‹%epsg–NAD83 / Ohio North (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Ohio North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.7],PARAMETER["standard_parallel_2",40.43333333333333],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3734"],AXIS["X",EAST],AXIS["Y",NORTH]] uu‡ ?‚7‹!epsg—NAD83 / Ohio South (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Ohio South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.03333333333333],PARAMETER["standard_parallel_2",38.73333333333333],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3735"],AXIS["X",EAST],AXIS["Y",NORTH]] ³³†I C‚!Š7epsg˜NAD83 / Wyoming East (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Wyoming East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-105.1666666666667],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",656166.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3736"],AXIS["X",EAST],AXIS["Y",NORTH]] ˆˆ†t S‚AŠ]epsg™NAD83 / Wyoming East Central (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Wyoming East Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-107.3333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","3737"],AXIS["X",EAST],AXIS["Y",NORTH]] ÆÆ†6 SyŠ)epsgšNAD83 / Wyoming West Central (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Wyoming West Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-108.75],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3738"],AXIS["X",EAST],AXIS["Y",NORTH]] ––†f C‚EŠMepsg›NAD83 / Wyoming West (ftUS)+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Wyoming West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-110.0833333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","3739"],AXIS["X",EAST],AXIS["Y",NORTH]] $$…XAoŠ epsgœNAD83(HARN) / UTM zone 10N+proj=utm +zone=10 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 10N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3740"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$…XAoŠ epsgNAD83(HARN) / UTM zone 11N+proj=utm +zone=11 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 11N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3741"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$…XAoŠ epsgžNAD83(HARN) / UTM zone 12N+proj=utm +zone=12 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 12N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3742"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$…XAoŠ epsgŸNAD83(HARN) / UTM zone 13N+proj=utm +zone=13 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 13N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3743"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] %%…W AoŠ epsg NAD83(HARN) / UTM zone 14N+proj=utm +zone=14 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 14N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3744"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] %%…W!AoŠ epsg¡NAD83(HARN) / UTM zone 15N+proj=utm +zone=15 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 15N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3745"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó ‹epsg‹ ŒepsgŒ epsg ŽepsgŽ epsg epsg ‘epsg‘ ’epsg’ “epsg“ ”epsg” •epsg• –epsg– —epsg— ˜epsg˜ ™epsg™ šepsgš ›epsg› œepsgœ epsg žepsgž ŸepsgŸ  epsg  ¡epsg¡ ¢epsg¢ £epsg£ ¤epsg¤ ¥epsg¥ ¦epsg¦ §epsg§ ¨epsg¨ ©epsg© ªepsgª «epsg« ¬epsg¬ ­epsg­ ®epsg® ¯epsg¯ °epsg° ±epsg± ²epsg² ³epsg³ ´epsg´ µepsgµ ¶epsg¶ ·epsg· ¸epsg¸ ¹epsg¹ ºepsgº »epsg» ¼epsg¼ ½epsg½ ¾epsg¾ ¿epsg¿ ÀepsgÀ ÁepsgÁ Âepsg Ãepsgà ÄepsgÄ ÅepsgÅ %%…W"AoŠ epsg¢NAD83(HARN) / UTM zone 16N+proj=utm +zone=16 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 16N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3746"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] %%…W#AoŠ epsg£NAD83(HARN) / UTM zone 17N+proj=utm +zone=17 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 17N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3747"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] %%…W$AoŠ epsg¤NAD83(HARN) / UTM zone 18N+proj=utm +zone=18 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 18N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3748"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] %%…W%AoŠ epsg¥NAD83(HARN) / UTM zone 19N+proj=utm +zone=19 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 19N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3749"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…U&?mŠ epsg¦NAD83(HARN) / UTM zone 4N+proj=utm +zone=4 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 4N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3750"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…U'?mŠ epsg§NAD83(HARN) / UTM zone 5N+proj=utm +zone=5 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / UTM zone 5N",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3751"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ++…Q( OC‰epsg¨WGS 84 / Mercator 41 (deprecated)+proj=merc +lon_0=100 +lat_ts=-41 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / Mercator 41 (deprecated)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["latitude_of_origin",-41],PARAMETER["central_meridian",100],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3752"],AXIS["X",EAST],AXIS["Y",NORTH]] aa‡) K‚!‹Sepsg©NAD83(HARN) / Ohio North (ftUS)+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_defsPROJCS["NAD83(HARN) / Ohio North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.7],PARAMETER["standard_parallel_2",40.43333333333333],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3753"],AXIS["X",EAST],AXIS["Y",NORTH]] ee‡* K‚‹OepsgªNAD83(HARN) / Ohio South (ftUS)+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_defsPROJCS["NAD83(HARN) / Ohio South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.03333333333333],PARAMETER["standard_parallel_2",38.73333333333333],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3754"],AXIS["X",EAST],AXIS["Y",NORTH]] ££†Y+ O‚Šeepsg«NAD83(HARN) / Wyoming East (ftUS)+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_defsPROJCS["NAD83(HARN) / Wyoming East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-105.1666666666667],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",656166.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3755"],AXIS["X",EAST],AXIS["Y",NORTH]] xx‡, _‚'‹ epsg¬NAD83(HARN) / Wyoming East Central (ftUS)+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_defsPROJCS["NAD83(HARN) / Wyoming East Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-107.3333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",1312333.3333],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","3756"],AXIS["X",EAST],AXIS["Y",NORTH]] ¶¶†F- __ŠWepsg­NAD83(HARN) / Wyoming West Central (ftUS)+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_defsPROJCS["NAD83(HARN) / Wyoming West Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-108.75],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","3757"],AXIS["X",EAST],AXIS["Y",NORTH]] †††v. O‚+Š{epsg®NAD83(HARN) / Wyoming West (ftUS)+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_defsPROJCS["NAD83(HARN) / Wyoming West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-110.0833333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","3758"],AXIS["X",EAST],AXIS["Y",NORTH]] ¶¶†F/ E‚Š5epsg¯NAD83 / Hawaii zone 3 (ftUS)+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Hawaii zone 3 (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.16666666666667],PARAMETER["central_meridian",-158],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3759"],AXIS["X",EAST],AXIS["Y",NORTH]] ¦¦†V0 Q‚Šcepsg°NAD83(HARN) / Hawaii zone 3 (ftUS)+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_defsPROJCS["NAD83(HARN) / Hawaii zone 3 (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.16666666666667],PARAMETER["central_meridian",-158],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","3760"],AXIS["X",EAST],AXIS["Y",NORTH]] ""…Z1AoŠepsg±NAD83(CSRS) / UTM zone 22N+proj=utm +zone=22 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / UTM zone 22N",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3761"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Í͆/2 IqŠ-epsg²WGS 84 / South Georgia Lambert+proj=lcc +lat_1=-54 +lat_2=-54.75 +lat_0=-55 +lon_0=-37 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / South Georgia Lambert",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-54],PARAMETER["standard_parallel_2",-54.75],PARAMETER["latitude_of_origin",-55],PARAMETER["central_meridian",-37],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3762"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†3 9mŠepsg³ETRS89 / Portugal TM06+proj=tmerc +lat_0=39.66825833333333 +lon_0=-8.133108333333334 +k=1 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Portugal TM06",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",39.66825833333333],PARAMETER["central_meridian",-8.133108333333334],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3763"],AXIS["X",EAST],AXIS["Y",NORTH]] ²²†J4 Y{ŠIepsg´NZGD2000 / Chatham Island Circuit 2000+proj=tmerc +lat_0=-44 +lon_0=-176.5 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Chatham Island Circuit 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-44],PARAMETER["central_meridian",-176.5],PARAMETER["scale_factor",1],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","3764"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] Ü܆ 5 3sŠ#epsgµHTRS96 / Croatia TM+proj=tmerc +lat_0=0 +lon_0=16.5 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["HTRS96 / Croatia TM",GEOGCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4761"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3765"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] qq‡ 6 5‚5‹5epsg¶HTRS96 / Croatia LCC+proj=lcc +lat_1=45.91666666666666 +lat_2=43.08333333333334 +lat_0=0 +lon_0=16.5 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["HTRS96 / Croatia LCC",GEOGCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4761"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.91666666666666],PARAMETER["standard_parallel_2",43.08333333333334],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16.5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3766"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …w7 7Š#epsg·HTRS96 / UTM zone 33N+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["HTRS96 / UTM zone 33N",GEOGCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4761"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3767"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …w8 7Š#epsg¸HTRS96 / UTM zone 34N+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["HTRS96 / UTM zone 34N",GEOGCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4761"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3768"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 00…L9Cq‰oepsg¹Bermuda 1957 / UTM zone 20N+proj=utm +zone=20 +ellps=clrk66 +units=m +no_defsPROJCS["Bermuda 1957 / UTM zone 20N",GEOGCS["Bermuda 1957",DATUM["Bermuda_1957",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6216"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4216"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3769"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÎΆ.: UyŠepsgºBDA2000 / Bermuda 2000 National Grid+proj=tmerc +lat_0=32 +lon_0=-64.75 +k=1 +x_0=550000 +y_0=100000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["BDA2000 / Bermuda 2000 National Grid",GEOGCS["BDA2000",DATUM["Bermuda_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6762"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4762"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",32],PARAMETER["central_meridian",-64.75],PARAMETER["scale_factor",1],PARAMETER["false_easting",550000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","3770"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] êê†; SWŠepsg»NAD27 / Alberta 3TM ref merid 111 W+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Alberta 3TM ref merid 111 W",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3771"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] êê†< SWŠepsg¼NAD27 / Alberta 3TM ref merid 114 W+proj=tmerc +lat_0=0 +lon_0=-114 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Alberta 3TM ref merid 114 W",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3772"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] êê†= SWŠepsg½NAD27 / Alberta 3TM ref merid 117 W+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Alberta 3TM ref merid 117 W",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3773"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÐІ,> mWŠepsg¾NAD27 / Alberta 3TM ref merid 120 W (deprecated)+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Alberta 3TM ref merid 120 W (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-120],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3774"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ôô†? SU‰qepsg¿NAD83 / Alberta 3TM ref merid 111 W+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Alberta 3TM ref merid 111 W",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3775"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ôô†@ SU‰qepsgÀNAD83 / Alberta 3TM ref merid 114 W+proj=tmerc +lat_0=0 +lon_0=-114 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Alberta 3TM ref merid 114 W",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3776"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ôô†A SU‰qepsgÁNAD83 / Alberta 3TM ref merid 117 W+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Alberta 3TM ref merid 117 W",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3777"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÚÚ†"B mUŠ epsgÂNAD83 / Alberta 3TM ref merid 120 W (deprecated)+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Alberta 3TM ref merid 120 W (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-120],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3778"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] áá†C _;Š%epsgÃNAD83(CSRS) / Alberta 3TM ref merid 111 W+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Alberta 3TM ref merid 111 W",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3779"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] áá†D _;Š%epsgÄNAD83(CSRS) / Alberta 3TM ref merid 114 W+proj=tmerc +lat_0=0 +lon_0=-114 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Alberta 3TM ref merid 114 W",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3780"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] áá†E _;Š%epsgÅNAD83(CSRS) / Alberta 3TM ref merid 117 W+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Alberta 3TM ref merid 117 W",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3781"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Çdž5F y;Š?epsgÆNAD83(CSRS) / Alberta 3TM ref merid 120 W (deprecated)+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Alberta 3TM ref merid 120 W (deprecated)",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-120],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3782"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ››†aG M‚-ŠQepsgÇPitcairn 2006 / Pitcairn TM 2006+proj=tmerc +lat_0=-25.06855261111111 +lon_0=-130.1129671111111 +k=1 +x_0=14200 +y_0=15500 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["Pitcairn 2006 / Pitcairn TM 2006",GEOGCS["Pitcairn 2006",DATUM["Pitcairn_2006",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6763"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4763"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-25.06855261111111],PARAMETER["central_meridian",-130.1129671111111],PARAMETER["scale_factor",1],PARAMETER["false_easting",14200],PARAMETER["false_northing",15500],AUTHORITY["EPSG","3783"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† H C1Š)epsgÈPitcairn 1967 / UTM zone 9S+proj=utm +zone=9 +south +ellps=intl +towgs84=185,165,42,0,0,0,0 +units=m +no_defsPROJCS["Pitcairn 1967 / UTM zone 9S",GEOGCS["Pitcairn 1967",DATUM["Pitcairn_1967",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[185,165,42,0,0,0,0],AUTHORITY["EPSG","6729"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4729"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3784"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ==‡?I oŒepsgÉPopular Visualisation CRS / Mercator (deprecated)+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defsPROJCS["Popular Visualisation CRS / Mercator (deprecated)",GEOGCS["Popular Visualisation CRS",DATUM["Popular_Visualisation_Datum",SPHEROID["Popular Visualisation Sphere",6378137,0,AUTHORITY["EPSG","7059"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6055"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4055"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],AUTHORITY["EPSG","3785"],AXIS["X",EAST],AXIS["Y",NORTH]] ÄĆ8J sCŠCepsgÊWorld Equidistant Cylindrical (Sphere) (deprecated)+proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371007 +b=6371007 +units=m +no_defsPROJCS["World Equidistant Cylindrical (Sphere) (deprecated)",GEOGCS["Unspecified datum based upon the GRS 1980 Authalic Sphere",DATUM["Not_specified_based_on_GRS_1980_Authalic_Sphere",SPHEROID["GRS 1980 Authalic Sphere",6371007,0,AUTHORITY["EPSG","7048"]],AUTHORITY["EPSG","6047"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4047"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Equirectangular"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3786"],AXIS["X",EAST],AXIS["Y",NORTH]] ™™†cK ]{ŠwepsgËMGI / Slovene National Grid (deprecated)+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=-5000000 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Slovene National Grid (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","3787"],AXIS["Y",EAST],AXIS["X",NORTH]] ¼¼†@L SwŠ?epsgÌNZGD2000 / Auckland Islands TM 2000+proj=tmerc +lat_0=0 +lon_0=166 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Auckland Islands TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",166],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3788"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ¾¾†>M QwŠ=epsgÍNZGD2000 / Campbell Island TM 2000+proj=tmerc +lat_0=0 +lon_0=169 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Campbell Island TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",169],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3789"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ºº†BN UwŠAepsgÎNZGD2000 / Antipodes Islands TM 2000+proj=tmerc +lat_0=0 +lon_0=179 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Antipodes Islands TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",179],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3790"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] †:O KyŠ9epsgÏNZGD2000 / Raoul Island TM 2000+proj=tmerc +lat_0=0 +lon_0=-178 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Raoul Island TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-178],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3791"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ¸¸†DQ Q}ŠCepsgÑNZGD2000 / Chatham Islands TM 2000+proj=tmerc +lat_0=0 +lon_0=-176.5 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / Chatham Islands TM 2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-176.5],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","3793"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] °°†LR W}ŠMepsgÒSlovenia 1996 / Slovene National Grid+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["Slovenia 1996 / Slovene National Grid",GEOGCS["Slovenia 1996",DATUM["Slovenia_Geodetic_Datum_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6765"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4765"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","3794"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¼¼†@S 1‚ ŠKepsgÓNAD27 / Cuba Norte+proj=lcc +lat_1=23 +lat_2=21.7 +lat_0=22.35 +lon_0=-81 +x_0=500000 +y_0=280296.016 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Cuba Norte",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",23],PARAMETER["standard_parallel_2",21.7],PARAMETER["latitude_of_origin",22.35],PARAMETER["central_meridian",-81],PARAMETER["false_easting",500000],PARAMETER["false_northing",280296.016],AUTHORITY["EPSG","3795"],AXIS["Y",NORTH],AXIS["X",EAST]] ll‡T -‚a‹epsgÔNAD27 / Cuba Sur+proj=lcc +lat_1=21.3 +lat_2=20.13333333333333 +lat_0=20.71666666666667 +lon_0=-76.83333333333333 +x_0=500000 +y_0=229126.939 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Cuba Sur",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",21.3],PARAMETER["standard_parallel_2",20.13333333333333],PARAMETER["latitude_of_origin",20.71666666666667],PARAMETER["central_meridian",-76.83333333333333],PARAMETER["false_easting",500000],PARAMETER["false_northing",229126.939],AUTHORITY["EPSG","3796"],AXIS["Y",NORTH],AXIS["X",EAST]] ÖÖ†&U 3qŠ1epsgÕNAD27 / MTQ Lambert+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0=800000 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / MTQ Lambert",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",50],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",-70],PARAMETER["false_easting",800000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3797"],AXIS["X",EAST],AXIS["Y",NORTH]] àà†V 3oŠepsgÖNAD83 / MTQ Lambert+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0=800000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTQ Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",50],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",-70],PARAMETER["false_easting",800000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3798"],AXIS["X",EAST],AXIS["Y",NORTH]] Í͆/W ?UŠSepsg×NAD83(CSRS) / MTQ Lambert+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0=800000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTQ Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",50],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",-70],PARAMETER["false_easting",800000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3799"],AXIS["X",EAST],AXIS["Y",NORTH]] êê†X SWŠepsgØNAD27 / Alberta 3TM ref merid 120 W+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Alberta 3TM ref merid 120 W",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-120],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3800"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ôô†Y SU‰qepsgÙNAD83 / Alberta 3TM ref merid 120 W+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Alberta 3TM ref merid 120 W",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-120],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3801"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] áá†Z _;Š%epsgÚNAD83(CSRS) / Alberta 3TM ref merid 120 W+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Alberta 3TM ref merid 120 W",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-120],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3802"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW‡%d G‚E‹GepsgäETRS89 / Belgian Lambert 2008+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666666 +lat_0=50.797815 +lon_0=4.359215833333333 +x_0=649328 +y_0=665262 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / Belgian Lambert 2008",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49.83333333333334],PARAMETER["standard_parallel_2",51.16666666666666],PARAMETER["latitude_of_origin",50.797815],PARAMETER["central_meridian",4.359215833333333],PARAMETER["false_easting",649328],PARAMETER["false_northing",665262],AUTHORITY["EPSG","3812"],AXIS["X",EAST],AXIS["Y",NORTH]] õõ†f 9{‰cepsgæNAD83 / Mississippi TM+proj=tmerc +lat_0=32.5 +lon_0=-89.75 +k=0.9998335 +x_0=500000 +y_0=1300000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Mississippi TM",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",32.5],PARAMETER["central_meridian",-89.75],PARAMETER["scale_factor",0.9998335],PARAMETER["false_easting",500000],PARAMETER["false_northing",1300000],AUTHORITY["EPSG","3814"],AXIS["X",EAST],AXIS["Y",NORTH]] åå†g EaŠepsgçNAD83(HARN) / Mississippi TM+proj=tmerc +lat_0=32.5 +lon_0=-89.75 +k=0.9998335 +x_0=500000 +y_0=1300000 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Mississippi TM",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",32.5],PARAMETER["central_meridian",-89.75],PARAMETER["scale_factor",0.9998335],PARAMETER["false_easting",500000],PARAMETER["false_northing",1300000],AUTHORITY["EPSG","3815"],AXIS["X",EAST],AXIS["Y",NORTH]]of“flrx~„Š–œ¢¨®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôú/ 0!1"2#3$4%5&6'7(8)9*:+;,<-=.>/?0@1A2B3C4D5E6F7G8H9I:J;KN?O@QARBSCTDUEVFWGXHYIZJdKfLgNhPmQpRqSrTsUtVuWxXyYzZ{[|\}]~^_ž`žažbžcždžežfžgžhž iž jž kž lžmžnž1ož2pž3qž4rž5sžBtžCužDvžEwžFxžGyžHzžP{žf|žg}žh~žižj€žkžl‚žmƒžn„Ÿ…Ÿ†Ÿ‡ŸˆŸ‰Ÿ ŠŸ ŒŸŸŽŸŸŸ ££†Yh M‚Š_epsgèNAD83(NSRS2007) / Mississippi TM+proj=tmerc +lat_0=32.5 +lon_0=-89.75 +k=0.9998335 +x_0=500000 +y_0=1300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Mississippi TM",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",32.5],PARAMETER["central_meridian",-89.75],PARAMETER["scale_factor",0.9998335],PARAMETER["false_easting",500000],PARAMETER["false_northing",1300000],AUTHORITY["EPSG","3816"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó ÇepsgÇ ÈepsgÈ ÉepsgÉ ÊepsgÊ ËepsgË ÌepsgÌ ÍepsgÍ ÎepsgÎ ÏepsgÏ ÑepsgÑ ÒepsgÒ ÓepsgÓ ÔepsgÔ ÕepsgÕ ÖepsgÖ ×epsg× ØepsgØ ÙepsgÙ ÚepsgÚ äepsgä æepsgæ çepsgç èepsgè ëepsgë íepsgí ðepsgð ñepsgñ òepsgò óepsgó ôepsgô õepsgõ øepsgø ùepsgù úepsgú ûepsgû üepsgü ýepsgý þepsgþ ÿepsgÿ epsg epsg epsg epsg epsg epsg epsg epsg epsg  epsg  epsg  epsg  epsg epsg epsg 1epsg1 2epsg2 3epsg3 4epsg4 5epsg5 ô=ô‚EmW„'epsgíTWD67+proj=longlat +ellps=aust_SA +no_defsGEOGCS["TWD67",DATUM["Taiwan_Datum_1967",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","1025"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3821"]]ƒ?k G…'epsgëHD1909+proj=longlat +ellps=bessel +towgs84=595.48,121.69,515.35,4.115,-2.9383,0.853,-3.408 +no_defsGEOGCS["HD1909",DATUM["Hungarian_Datum_1909",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[595.48,121.69,515.35,4.115,-2.9383,0.853,-3.408],AUTHORITY["EPSG","1024"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3819"]] ŒŒ‚pp „QepsgðTWD97+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["TWD97",DATUM["Taiwan_Datum_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1026"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3824"]] þþ…~q 5q‰_epsgñTWD97 / TM2 zone 119+proj=tmerc +lat_0=0 +lon_0=119 +k=0.9999 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["TWD97 / TM2 zone 119",GEOGCS["TWD97",DATUM["Taiwan_Datum_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1026"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3824"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",119],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3825"],AXIS["X",EAST],AXIS["Y",NORTH]] þþ…~r 5q‰_epsgòTWD97 / TM2 zone 121+proj=tmerc +lat_0=0 +lon_0=121 +k=0.9999 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["TWD97 / TM2 zone 121",GEOGCS["TWD97",DATUM["Taiwan_Datum_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1026"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3824"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",121],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3826"],AXIS["X",EAST],AXIS["Y",NORTH]] ((…Ts 5G‰5epsgóTWD67 / TM2 zone 119+proj=tmerc +lat_0=0 +lon_0=119 +k=0.9999 +x_0=250000 +y_0=0 +ellps=aust_SA +units=m +no_defsPROJCS["TWD67 / TM2 zone 119",GEOGCS["TWD67",DATUM["Taiwan_Datum_1967",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","1025"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3821"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",119],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3827"],AXIS["X",EAST],AXIS["Y",NORTH]] ((…Tt 5G‰5epsgôTWD67 / TM2 zone 121+proj=tmerc +lat_0=0 +lon_0=121 +k=0.9999 +x_0=250000 +y_0=0 +ellps=aust_SA +units=m +no_defsPROJCS["TWD67 / TM2 zone 121",GEOGCS["TWD67",DATUM["Taiwan_Datum_1967",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","1025"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3821"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",121],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3828"],AXIS["X",EAST],AXIS["Y",NORTH]] ôô†u A-Š+epsgõHu Tzu Shan / UTM zone 51N+proj=utm +zone=51 +ellps=intl +towgs84=-637,-549,-203,0,0,0,0 +units=m +no_defsPROJCS["Hu Tzu Shan / UTM zone 51N",GEOGCS["Hu Tzu Shan 1950",DATUM["Hu_Tzu_Shan_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-637,-549,-203,0,0,0,0],AUTHORITY["EPSG","6236"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4236"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3829"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] aa…x 75ˆSepsgøWGS 84 / PDC Mercator+proj=merc +lon_0=150 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / PDC Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",150],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3832"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …py Y7‰YepsgùPulkovo 1942(58) / Gauss-Kruger zone 2+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Gauss-Kruger zone 2",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3833"],AXIS["X",NORTH],AXIS["Y",EAST]]   …pz Y7‰YepsgúPulkovo 1942(83) / Gauss-Kruger zone 2+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / Gauss-Kruger zone 2",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3834"],AXIS["X",NORTH],AXIS["Y",EAST]]   …r{ Y9‰[epsgûPulkovo 1942(83) / Gauss-Kruger zone 3+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / Gauss-Kruger zone 3",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3835"],AXIS["X",NORTH],AXIS["Y",EAST]]   …r| Y9‰[epsgüPulkovo 1942(83) / Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3836"],AXIS["X",NORTH],AXIS["Y",EAST]] úú†} k7‰kepsgýPulkovo 1942(58) / 3-degree Gauss-Kruger zone 3+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3837"],AXIS["X",NORTH],AXIS["Y",EAST]] øø†~ k9‰mepsgþPulkovo 1942(58) / 3-degree Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3838"],AXIS["X",NORTH],AXIS["Y",EAST]] øø† k9‰mepsgÿPulkovo 1942(58) / 3-degree Gauss-Kruger zone 9+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 9",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",9500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3839"],AXIS["X",NORTH],AXIS["Y",EAST]] ôô†ž m;‰qepsgPulkovo 1942(58) / 3-degree Gauss-Kruger zone 10+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 10",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",10500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3840"],AXIS["X",NORTH],AXIS["Y",EAST]] øø†ž k9‰mepsgPulkovo 1942(83) / 3-degree Gauss-Kruger zone 6+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 6",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3841"],AXIS["X",NORTH],AXIS["Y",EAST]] øø†ž k9‰mepsgPulkovo 1942(83) / 3-degree Gauss-Kruger zone 7+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3842"],AXIS["X",NORTH],AXIS["Y",EAST]] øø†ž k9‰mepsgPulkovo 1942(83) / 3-degree Gauss-Kruger zone 8+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8",GEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3843"],AXIS["X",NORTH],AXIS["Y",EAST]] …už CQ‰_epsgPulkovo 1942(58) / Stereo70+proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 +y_0=500000 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942(58) / Stereo70",GEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",46],PARAMETER["central_meridian",25],PARAMETER["scale_factor",0.99975],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3844"],AXIS["X",NORTH],AXIS["Y",EAST]] ÀÀ†<ž S‚ŠepsgSWEREF99 / RT90 7.5 gon V emulation+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_defsPROJCS["SWEREF99 / RT90 7.5 gon V emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",11.30625],PARAMETER["scale_factor",1.000006],PARAMETER["false_easting",1500025.141],PARAMETER["false_northing",-667.282],AUTHORITY["EPSG","3845"],AXIS["X",NORTH],AXIS["Y",EAST]] ²²†Jž O‚)Š%epsgSWEREF99 / RT90 5 gon V emulation+proj=tmerc +lat_0=0 +lon_0=13.55626666666667 +k=1.0000058 +x_0=1500044.695 +y_0=-667.13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 / RT90 5 gon V emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13.55626666666667],PARAMETER["scale_factor",1.0000058],PARAMETER["false_easting",1500044.695],PARAMETER["false_northing",-667.13],AUTHORITY["EPSG","3846"],AXIS["X",NORTH],AXIS["Y",EAST]] ¤¤†Xž S‚3Š3epsgSWEREF99 / RT90 2.5 gon V emulation+proj=tmerc +lat_0=0 +lon_0=15.80628452944445 +k=1.00000561024 +x_0=1500064.274 +y_0=-667.711 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 / RT90 2.5 gon V emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15.80628452944445],PARAMETER["scale_factor",1.00000561024],PARAMETER["false_easting",1500064.274],PARAMETER["false_northing",-667.711],AUTHORITY["EPSG","3847"],AXIS["X",NORTH],AXIS["Y",EAST]] ¾¾†>ž K‚+ŠepsgSWEREF99 / RT90 0 gon emulation+proj=tmerc +lat_0=0 +lon_0=18.0563 +k=1.0000054 +x_0=1500083.521 +y_0=-668.8440000000001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 / RT90 0 gon emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18.0563],PARAMETER["scale_factor",1.0000054],PARAMETER["false_easting",1500083.521],PARAMETER["false_northing",-668.844],AUTHORITY["EPSG","3848"],AXIS["X",NORTH],AXIS["Y",EAST]] ¬¬†Pž S‚+Š+epsg SWEREF99 / RT90 2.5 gon O emulation+proj=tmerc +lat_0=0 +lon_0=20.30631666666667 +k=1.0000052 +x_0=1500102.765 +y_0=-670.706 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 / RT90 2.5 gon O emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",20.30631666666667],PARAMETER["scale_factor",1.0000052],PARAMETER["false_easting",1500102.765],PARAMETER["false_northing",-670.706],AUTHORITY["EPSG","3849"],AXIS["X",NORTH],AXIS["Y",EAST]] °°†Lž O‚+Š'epsg SWEREF99 / RT90 5 gon O emulation+proj=tmerc +lat_0=0 +lon_0=22.55633333333333 +k=1.0000049 +x_0=1500121.846 +y_0=-672.557 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SWEREF99 / RT90 5 gon O emulation",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",22.55633333333333],PARAMETER["scale_factor",1.0000049],PARAMETER["false_easting",1500121.846],PARAMETER["false_northing",-672.557],AUTHORITY["EPSG","3850"],AXIS["X",NORTH],AXIS["Y",EAST]] †ož 3‚‹epsg NZGD2000 / NZCS2000+proj=lcc +lat_1=-37.5 +lat_2=-44.5 +lat_0=-41 +lon_0=173 +x_0=3000000 +y_0=7000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NZGD2000 / NZCS2000",GEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-37.5],PARAMETER["standard_parallel_2",-44.5],PARAMETER["latitude_of_origin",-41],PARAMETER["central_meridian",173],PARAMETER["false_easting",3000000],PARAMETER["false_northing",7000000],AUTHORITY["EPSG","3851"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ``‡ž 5‚E‹Gepsg RSRGD2000 / DGLC2000+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=157 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RSRGD2000 / DGLC2000",GEOGCS["RSRGD2000",DATUM["Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6764"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4764"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-76.66666666666667],PARAMETER["standard_parallel_2",-79.33333333333333],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",157],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3852"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] â↞ #‚%‰uepsgCounty ST74+proj=tmerc +lat_0=0 +lon_0=18.05787 +k=0.99999506 +x_0=100182.7406 +y_0=-6500620.1207 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["County ST74",GEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18.05787],PARAMETER["scale_factor",0.99999506],PARAMETER["false_easting",100182.7406],PARAMETER["false_northing",-6500620.1207],AUTHORITY["EPSG","3854"],AXIS["x",NORTH],AXIS["y",EAST]] ¶¶†Fž =ŠYepsgWGS 84 / Pseudo-Mercator+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defsPROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],AUTHORITY["EPSG","3857"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~‚~ž1 „oepsg1IGRS+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["IGRS",DATUM["Iraqi_Geospatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1029"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3889"]] …mž2 3Šepsg2IGRS / UTM zone 37N+proj=utm +zone=37 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["IGRS / UTM zone 37N",GEOGCS["IGRS",DATUM["Iraqi_Geospatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1029"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3889"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3890"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …mž3 3Šepsg3IGRS / UTM zone 38N+proj=utm +zone=38 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["IGRS / UTM zone 38N",GEOGCS["IGRS",DATUM["Iraqi_Geospatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1029"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3889"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3891"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …mž4 3Šepsg4IGRS / UTM zone 39N+proj=utm +zone=39 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["IGRS / UTM zone 39N",GEOGCS["IGRS",DATUM["Iraqi_Geospatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1029"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3889"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3892"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] óó† ž5 ?c‰yepsg5ED50 / Iraq National Grid+proj=tmerc +lat_0=29.02626833333333 +lon_0=46.5 +k=0.9994 +x_0=800000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["ED50 / Iraq National Grid",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.02626833333333],PARAMETER["central_meridian",46.5],PARAMETER["scale_factor",0.9994],PARAMETER["false_easting",800000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3893"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¸¸‚DžBU„!epsgBMGI 1901+proj=longlat +ellps=bessel +no_defsGEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]] ""…ZžC ?E‰9epsgCMGI 1901 / Balkans zone 5+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=5500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["MGI 1901 / Balkans zone 5",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3907"],AXIS["X",NORTH],AXIS["Y",EAST]] ""…ZžD ?E‰9epsgDMGI 1901 / Balkans zone 6+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=6500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["MGI 1901 / Balkans zone 6",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3908"],AXIS["X",NORTH],AXIS["Y",EAST]] ""…ZžE ?E‰9epsgEMGI 1901 / Balkans zone 7+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["MGI 1901 / Balkans zone 7",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3909"],AXIS["X",NORTH],AXIS["Y",EAST]] ""…ZžF ?E‰9epsgFMGI 1901 / Balkans zone 8+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=8500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["MGI 1901 / Balkans zone 8",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3910"],AXIS["X",NORTH],AXIS["Y",EAST]] &&…VžG =C‰5epsgGMGI 1901 / Slovenia Grid+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["MGI 1901 / Slovenia Grid",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3911"],AXIS["X",NORTH],AXIS["Y",EAST]] …tžH MQ‰SepsgHMGI 1901 / Slovene National Grid+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=-5000000 +ellps=bessel +units=m +no_defsPROJCS["MGI 1901 / Slovene National Grid",GEOGCS["MGI 1901",DATUM["MGI_1901",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","1031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","3906"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","3912"],AXIS["Y",EAST],AXIS["X",NORTH]] ûû†žP A)Š!epsgPPuerto Rico / UTM zone 20N+proj=utm +zone=20 +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +units=m +no_defsPROJCS["Puerto Rico / UTM zone 20N",GEOGCS["Puerto Rico",DATUM["Puerto_Rico",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY["EPSG","6139"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4139"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3920"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ±±†Kžf %‚ŠaepsgfRGF93 / CC42+proj=lcc +lat_1=41.25 +lat_2=42.75 +lat_0=42 +lon_0=3 +x_0=1700000 +y_0=1200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / CC42",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.25],PARAMETER["standard_parallel_2",42.75],PARAMETER["latitude_of_origin",42],PARAMETER["central_meridian",3],PARAMETER["false_easting",1700000],PARAMETER["false_northing",1200000],AUTHORITY["EPSG","3942"],AXIS["X",EAST],AXIS["Y",NORTH]] ±±†Kžg %‚ŠaepsggRGF93 / CC43+proj=lcc +lat_1=42.25 +lat_2=43.75 +lat_0=43 +lon_0=3 +x_0=1700000 +y_0=2200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / CC43",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.25],PARAMETER["standard_parallel_2",43.75],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",3],PARAMETER["false_easting",1700000],PARAMETER["false_northing",2200000],AUTHORITY["EPSG","3943"],AXIS["X",EAST],AXIS["Y",NORTH]] ±±†Kžh %‚ŠaepsghRGF93 / CC44+proj=lcc +lat_1=43.25 +lat_2=44.75 +lat_0=44 +lon_0=3 +x_0=1700000 +y_0=3200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / CC44",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.25],PARAMETER["standard_parallel_2",44.75],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",3],PARAMETER["false_easting",1700000],PARAMETER["false_northing",3200000],AUTHORITY["EPSG","3944"],AXIS["X",EAST],AXIS["Y",NORTH]] ±±†Kži %‚ŠaepsgiRGF93 / CC45+proj=lcc +lat_1=44.25 +lat_2=45.75 +lat_0=45 +lon_0=3 +x_0=1700000 +y_0=4200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / CC45",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.25],PARAMETER["standard_parallel_2",45.75],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",3],PARAMETER["false_easting",1700000],PARAMETER["false_northing",4200000],AUTHORITY["EPSG","3945"],AXIS["X",EAST],AXIS["Y",NORTH]] ±±†Kžj %‚ŠaepsgjRGF93 / CC46+proj=lcc +lat_1=45.25 +lat_2=46.75 +lat_0=46 +lon_0=3 +x_0=1700000 +y_0=5200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / CC46",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.25],PARAMETER["standard_parallel_2",46.75],PARAMETER["latitude_of_origin",46],PARAMETER["central_meridian",3],PARAMETER["false_easting",1700000],PARAMETER["false_northing",5200000],AUTHORITY["EPSG","3946"],AXIS["X",EAST],AXIS["Y",NORTH]] ±±†Kžk %‚ŠaepsgkRGF93 / CC47+proj=lcc +lat_1=46.25 +lat_2=47.75 +lat_0=47 +lon_0=3 +x_0=1700000 +y_0=6200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / CC47",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46.25],PARAMETER["standard_parallel_2",47.75],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",3],PARAMETER["false_easting",1700000],PARAMETER["false_northing",6200000],AUTHORITY["EPSG","3947"],AXIS["X",EAST],AXIS["Y",NORTH]] ±±†Kžl %‚ŠaepsglRGF93 / CC48+proj=lcc +lat_1=47.25 +lat_2=48.75 +lat_0=48 +lon_0=3 +x_0=1700000 +y_0=7200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / CC48",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.25],PARAMETER["standard_parallel_2",48.75],PARAMETER["latitude_of_origin",48],PARAMETER["central_meridian",3],PARAMETER["false_easting",1700000],PARAMETER["false_northing",7200000],AUTHORITY["EPSG","3948"],AXIS["X",EAST],AXIS["Y",NORTH]] ±±†Kžm %‚ŠaepsgmRGF93 / CC49+proj=lcc +lat_1=48.25 +lat_2=49.75 +lat_0=49 +lon_0=3 +x_0=1700000 +y_0=8200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / CC49",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.25],PARAMETER["standard_parallel_2",49.75],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",3],PARAMETER["false_easting",1700000],PARAMETER["false_northing",8200000],AUTHORITY["EPSG","3949"],AXIS["X",EAST],AXIS["Y",NORTH]] ±±†Kžn %‚ŠaepsgnRGF93 / CC50+proj=lcc +lat_1=49.25 +lat_2=50.75 +lat_0=50 +lon_0=3 +x_0=1700000 +y_0=9200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGF93 / CC50",GEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49.25],PARAMETER["standard_parallel_2",50.75],PARAMETER["latitude_of_origin",50],PARAMETER["central_meridian",3],PARAMETER["false_easting",1700000],PARAMETER["false_northing",9200000],AUTHORITY["EPSG","3950"],AXIS["X",EAST],AXIS["Y",NORTH]] ØØ†$Ÿ =mŠ'epsg€NAD83 / Virginia Lambert+proj=lcc +lat_1=37 +lat_2=39.5 +lat_0=36 +lon_0=-79.5 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Virginia Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37],PARAMETER["standard_parallel_2",39.5],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3968"],AXIS["X",EAST],AXIS["Y",NORTH]] ÈȆ4Ÿ ISŠUepsgNAD83(HARN) / Virginia Lambert+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_defsPROJCS["NAD83(HARN) / Virginia Lambert",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37],PARAMETER["standard_parallel_2",39.5],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3969"],AXIS["X",EAST],AXIS["Y",NORTH]] †††vŸ Q‚‹#epsg‚NAD83(NSRS2007) / Virginia Lambert+proj=lcc +lat_1=37 +lat_2=39.5 +lat_0=36 +lon_0=-79.5 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Virginia Lambert",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37],PARAMETER["standard_parallel_2",39.5],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3970"],AXIS["X",EAST],AXIS["Y",NORTH]] GG…5Ÿ K;ˆmepsg‡WGS 84 / NSIDC EASE-Grid Global+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / NSIDC EASE-Grid Global",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cylindrical_Equal_Area"],PARAMETER["standard_parallel_1",30],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3975"],AXIS["X",EAST],AXIS["Y",NORTH]] ôô†Ÿ ma‰KepsgˆWGS 84 / NSIDC Sea Ice Polar Stereographic South+proj=stere +lat_0=-90 +lat_ts=-70 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / NSIDC Sea Ice Polar Stereographic South",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-70],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3976"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] ˈ1Ÿ EeŠAepsgŠNAD83 / Canada Atlas Lambert+proj=lcc +lat_1=49 +lat_2=77 +lat_0=49 +lon_0=-95 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Canada Atlas Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",77],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",-95],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3978"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¸¸†DŸ QKŠuepsg‹NAD83(CSRS) / Canada Atlas Lambert+proj=lcc +lat_1=49 +lat_2=77 +lat_0=49 +lon_0=-95 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / Canada Atlas Lambert",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",77],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",-95],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3979"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó CepsgC DepsgD EepsgE FepsgF GepsgG HepsgH PepsgP fepsgf gepsgg hepsgh iepsgi jepsgj kepsgk lepsgl mepsgm nepsgn €epsg€ epsg ‚epsg‚ ‡epsg‡ ˆepsgˆ ŠepsgŠ ‹epsg‹ ‘epsg‘ ’epsg’ “epsg“ ”epsg” •epsg• —epsg— ˜epsg˜ šepsgš ›epsg› œepsgœ epsg ¡epsg¡ ¢epsg¢ £epsg£ ¤epsg¤ ¥epsg¥ ¦epsg¦ §epsg§ ¨epsg¨ ©epsg© ªepsgª «epsg« ¬epsg¬ ­epsg­ ®epsg® ¯epsg¯ °epsg° ²epsg² ³epsg³ ´epsg´ µepsgµ ¶epsg¶ ·epsg· ¸epsg¸ ¹epsg¹ ºepsgº qq‡ Ÿ I‚9‹epsg‘Katanga 1955 / Katanga Lambert+proj=lcc +lat_1=-6.5 +lat_2=-11.5 +lat_0=9 +lon_0=26 +x_0=500000 +y_0=500000 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +units=m +no_defsPROJCS["Katanga 1955 / Katanga Lambert",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",-6.5],PARAMETER["standard_parallel_2",-11.5],PARAMETER["latitude_of_origin",9],PARAMETER["central_meridian",26],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3985"],AXIS["X",EAST],AXIS["Y",NORTH]] °°†LŸ S‚Š7epsg’Katanga 1955 / Katanga Gauss zone A+proj=tmerc +lat_0=-9 +lon_0=30 +k=1 +x_0=200000 +y_0=500000 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +units=m +no_defsPROJCS["Katanga 1955 / Katanga Gauss zone A",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-9],PARAMETER["central_meridian",30],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3986"],AXIS["X",EAST],AXIS["Y",NORTH]] °°†LŸ S‚Š7epsg“Katanga 1955 / Katanga Gauss zone B+proj=tmerc +lat_0=-9 +lon_0=28 +k=1 +x_0=200000 +y_0=500000 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +units=m +no_defsPROJCS["Katanga 1955 / Katanga Gauss zone B",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-9],PARAMETER["central_meridian",28],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3987"],AXIS["X",EAST],AXIS["Y",NORTH]] °°†LŸ S‚Š7epsg”Katanga 1955 / Katanga Gauss zone C+proj=tmerc +lat_0=-9 +lon_0=26 +k=1 +x_0=200000 +y_0=500000 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +units=m +no_defsPROJCS["Katanga 1955 / Katanga Gauss zone C",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-9],PARAMETER["central_meridian",26],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3988"],AXIS["X",EAST],AXIS["Y",NORTH]] A°AˆŸ Qƒ%Œ#epsg—Puerto Rico State Plane CS of 1927+proj=lcc +lat_1=18.43333333333333 +lat_2=18.033333333‘†LŸ S‚Š7epsg•Katanga 1955 / Katanga Gauss zone D+proj=tmerc +lat_0=-9 +lon_0=24 +k=1 +x_0=200000 +y_0=500000 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +units=m +no_defsPROJCS["Katanga 1955 / Katanga Gauss zone D",GEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-9],PARAMETER["central_meridian",24],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","3989"],AXIS["X",EAST],AXIS["Y",NORTH]]33333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +units=us-ft +no_defsPROJCS["Puerto Rico State Plane CS of 1927",GEOGCS["Puerto Rico",DATUM["Puerto_Rico",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY["EPSG","6139"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4139"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",18.43333333333333],PARAMETER["standard_parallel_2",18.03333333333333],PARAMETER["latitude_of_origin",17.83333333333333],PARAMETER["central_meridian",-66.43333333333334],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3991"],AXIS["X",EAST],AXIS["Y",NORTH]]0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=152400.3048006096 +y_0=30480.06096012192 +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +units=us-ft +no_defsPROJCS["Puerto Rico / St. Croix",GEOGCS["Puerto Rico",DATUM["Puerto_Rico",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY["EPSG","6139"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4139"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",18.43333333333333],PARAMETER["standard_parallel_2",18.03333333333333],PARAMETER["latitude_of_origin",17.83333333333333],PARAMETER["central_meridian",-66.43333333333334],PARAMETER["false_easting",500000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","3992"],AXIS["X",EAST],AXIS["Y",NORTH]] ‘… Ÿ 55ˆ7epsgšWGS 84 / Mercator 41+proj=merc +lon_0=100 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / Mercator 41",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",100],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3994"],AXIS["X",EAST],AXIS["Y",NORTH]]ˆŸ ;ƒEŒepsg˜Puerto Rico / St. Croix+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_’ …kŸ S]‰/epsg›WGS 84 / Arctic Polar Stereographic+proj=stere +lat_0=90 +lat_ts=71 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / Arctic Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",71],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3995"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] …iŸ Q]‰-epsgœWGS 84 / IBCAO Polar Stereographic+proj=stere +lat_0=90 +lat_ts=75 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / IBCAO Polar Stereographic",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",75],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3996"],AXIS["X",UNKNOWN],AXIS["Y",UNKNOWN]] …xŸ ;o‰OepsgWGS 84 / Dubai Local TM+proj=tmerc +lat_0=0 +lon_0=55.33333333333334 +k=1 +x_0=500000 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / Dubai Local TM",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",55.33333333333334],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","3997"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] lJlƒZŸ"Y…gepsg¢Unknown datum based upon the Airy Modified 1849 ellipsoid+proj=longlat +ellps=mod_airy +no_defsGEOGCS["Unknown datum based upon the Airy Modified 1849 ellipsoid",DATUM["Not_specified_based_on_Airy_Modified_1849_ellipsoid",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],AUTHORITY["EPSG","6002"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4002"]]ƒ2Ÿ!mQ…1epsg¡Unknown datum based upon the Airy 1830 ellipsoid+proj=longlat +ellps=airy +no_defsGEOGCS["Unknown datum based upon the Airy 1830 ellipsoid",DATUM["Not_specified_based_on_Airy_1830_ellipsoid",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],AUTHORITY["EPSG","6001"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4001"]] b"bƒ<Ÿ$qU…=epsg¤Unknown datum based upon the Bessel 1841 ellipsoid+proj=longlat +ellps=bessel +no_defsGEOGCS["Unknown datum based upon the Bessel 1841 ellipsoid",DATUM["Not_specified_based_on_Bessel_1841_ellipsoid",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6004"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4004"]]ƒZŸ#W…iepsg£Unknown datum based upon the Australian National Spheroid+proj=longlat +ellps=aust_SA +no_defsGEOGCS["Unknown datum based upon the Australian National Spheroid",DATUM["Not_specified_based_on_Australian_National_Spheroid",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6003"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4003"]] ??ƒVŸ&wY…gepsg¦Unknown datum based upon the Bessel Namibia ellipsoid+proj=longlat +ellps=bess_nam +no_defsGEOGCS["Unknown datum based upon the Bessel Namibia ellipsoid",DATUM["Not_specified_based_on_Bessel_Namibia_ellipsoid",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],AUTHORITY["EPSG","6006"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4006"]]ƒcŸ% y…Uepsg¥Unknown datum based upon the Bessel Modified ellipsoid+proj=longlat +a=6377492.018 +b=6356173.508712696 +no_defsGEOGCS["Unknown datum based upon the Bessel Modified ellipsoid",DATUM["Not_specified_based_on_Bessel_Modified_ellipsoid",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],AUTHORITY["EPSG","6005"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4005"]] SSƒ@Ÿ(qU…Eepsg¨Unknown datum based upon the Clarke 1866 ellipsoid+proj=longlat +ellps=clrk66 +no_defsGEOGCS["Unknown datum based upon the Clarke 1866 ellipsoid",DATUM["Not_specified_based_on_Clarke_1866_ellipsoid",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6008"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4008"]]ƒeŸ' q …Uepsg§Unknown datum based upon the Clarke 1858 ellipsoid+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defsGEOGCS["Unknown datum based upon the Clarke 1858 ellipsoid",DATUM["Not_specified_based_on_Clarke_1858_ellipsoid",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6007"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4007"]] òò„ Ÿ)  † epsg©Unknown datum based upon the Clarke 1866 Michigan ellipsoid+proj=longlat +a=6378450.047548896 +b=6356826.621488444 +no_defsGEOGCS["Unknown datum based upon the Clarke 1866 Michigan ellipsoid",DATUM["Not_specified_based_on_Clarke_1866_Michigan_ellipsoid",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6009"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4009"]] ##ƒ`Ÿ+}i…eepsg«Unknown datum based upon the Clarke 1880 (IGN) ellipsoid+proj=longlat +a=6378249.2 +b=6356515 +no_defsGEOGCS["Unknown datum based upon the Clarke 1880 (IGN) ellipsoid",DATUM["Not_specified_based_on_Clarke_1880_IGN_ellipsoid",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6011"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4011"]]ƒuŸ* u…{epsgªUnknown datum based upon the Clarke 1880 (Benoit) ellipsoid+proj=longlat +a=6378300.789 +b=6356566.435 +no_defsGEOGCS["Unknown datum based upon the Clarke 1880 (Benoit) ellipsoid",DATUM["Not_specified_based_on_Clarke_1880_Benoit_ellipsoid",SPHEROID["Clarke 1880 (Benoit)",6378300.789,293.4663155389802,AUTHORITY["EPSG","7010"]],AUTHORITY["EPSG","6010"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4010"]] A.AƒiŸ- }…]epsg­Unknown datum based upon the Clarke 1880 (Arc) ellipsoid+proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defsGEOGCS["Unknown datum based upon the Clarke 1880 (Arc) ellipsoid",DATUM["Not_specified_based_on_Clarke_1880_Arc_ellipsoid",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],AUTHORITY["EPSG","6013"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4013"]]ƒNŸ,}U…Uepsg¬Unknown datum based upon the Clarke 1880 (RGS) ellipsoid+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Unknown datum based upon the Clarke 1880 (RGS) ellipsoid",DATUM["Not_specified_based_on_Clarke_1880_RGS_ellipsoid",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6012"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4012"]] ƒwŸ. }…sepsg®Unknown datum based upon the Clarke 1880 (SGA 1922) ellipsoid+proj=longlat +a=6378249.2 +b=6356514.996941779 +no_defsGEOGCS["Unknown datum based upon the Clarke 1880 (SGA 1922) ellipsoid",DATUM["Not_specified_based_on_Clarke_1880_SGA_1922_ellipsoid",SPHEROID["Clarke 1880 (SGA 1922)",6378249.2,293.46598,AUTHORITY["EPSG","7014"]],AUTHORITY["EPSG","6014"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4014"]] ãㄟ/ †%epsg¯Unknown datum based upon the Everest 1830 (1937 Adjustment) ellipsoid+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defsGEOGCS["Unknown datum based upon the Everest 1830 (1937 Adjustment) ellipsoid",DATUM["Not_specified_based_on_Everest_1830_1937_Adjustment_ellipsoid",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6015"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4015"]] ÷÷„Ÿ0 W†%epsg°Unknown datum based upon the Everest 1830 (1967 Definition) ellipsoid+proj=longlat +ellps=evrstSS +no_defsGEOGCS["Unknown datum based upon the Everest 1830 (1967 Definition) ellipsoid",DATUM["Not_specified_based_on_Everest_1830_1967_Definition_ellipsoid",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],AUTHORITY["EPSG","6016"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4016"]] RRƒ-Ÿ3kS…'epsg³Unknown datum based upon the GRS 1980 ellipsoid+proj=longlat +ellps=GRS80 +no_defsGEOGCS["Unknown datum based upon the GRS 1980 ellipsoid",DATUM["Not_specified_based_on_GRS_1980_ellipsoid",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6019"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4019"]]ƒyŸ2 …sepsg²Unknown datum based upon the Everest 1830 Modified ellipsoid+proj=longlat +a=6377304.063 +b=6356103.038993155 +no_defsGEOGCS["Unknown datum based upon the Everest 1830 Modified ellipsoid",DATUM["Not_specified_based_on_Everest_1830_Modified_ellipsoid",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],AUTHORITY["EPSG","6018"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4018"]] VEVƒkŸ5w…kepsgµUnknown datum based upon the Indonesian National Spheroid+proj=longlat +a=6378160 +b=6356774.50408554 +no_defsGEOGCS["Unknown datum based upon the Indonesian National Spheroid",DATUM["Not_specified_based_on_Indonesian_National_Spheroid",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6021"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4021"]]ƒ7Ÿ4sW…/epsg´Unknown datum based upon the Helmert 1906 ellipsoid+proj=longlat +ellps=helmert +no_defsGEOGCS["Unknown datum based upon the Helmert 1906 ellipsoid",DATUM["Not_specified_based_on_Helmert_1906_ellipsoid",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6020"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4020"]] í2í‚AŸ7S„epsg·MOLDREF99+proj=longlat +ellps=GRS80 +no_defsGEOGCS["MOLDREF99",DATUM["MOLDREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1032"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4023"]]ƒJŸ6Q…Oepsg¶Unknown datum based upon the International 1924 ellipsoid+proj=longlat +ellps=intl +no_defsGEOGCS["Unknown datum based upon the International 1924 ellipsoid",DATUM["Not_specified_based_on_International_1924_ellipsoid",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6022"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4022"]] ™;™ƒŸ9gS… epsg¹Unknown datum based upon the NWL 9D ellipsoid+proj=longlat +ellps=WGS66 +no_defsGEOGCS["Unknown datum based upon the NWL 9D ellipsoid",DATUM["Not_specified_based_on_NWL_9D_ellipsoid",SPHEROID["NWL 9D",6378145,298.25,AUTHORITY["EPSG","7025"]],AUTHORITY["EPSG","6025"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4025"]]ƒAŸ8yS…Aepsg¸Unknown datum based upon the Krassowsky 1940 ellipsoid+proj=longlat +ellps=krass +no_defsGEOGCS["Unknown datum based upon the Krassowsky 1940 ellipsoid",DATUM["Not_specified_based_on_Krassowsky_1940_ellipsoid",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6024"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4024"]] …mŸ: 9k‰?epsgºMOLDREF99 / Moldova TM+proj=tmerc +lat_0=0 +lon_0=28.4 +k=0.9999400000000001 +x_0=200000 +y_0=-5000000 +ellps=GRS80 +units=m +no_defsPROJCS["MOLDREF99 / Moldova TM",GEOGCS["MOLDREF99",DATUM["MOLDREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1032"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4023"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",28.4],PARAMETER["scale_factor",0.99994],PARAMETER["false_easting",200000],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","4026"],AXIS["X",NORTH],AXIS["Y",EAST]] f3fƒIŸ<q}…/epsg¼Unknown datum based upon the Struve 1860 ellipsoid+proj=longlat +a=6378298.3 +b=6356657.142669561 +no_defsGEOGCS["Unknown datum based upon the Struve 1860 ellipsoid",DATUM["Not_specified_based_on_Struve_1860_ellipsoid",SPHEROID["Struve 1860",6378298.3,294.73,AUTHORITY["EPSG","7028"]],AUTHORITY["EPSG","6028"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4028"]]ƒIŸ;sy…1epsg»Unknown datum based upon the Plessis 1817 ellipsoid+proj=longlat +a=6376523 +b=6355862.933255573 +no_defsGEOGCS["Unknown datum based upon the Plessis 1817 ellipsoid",DATUM["Not_specified_based_on_Plessis_1817_ellipsoid",SPHEROID["Plessis 1817",6376523,308.64,AUTHORITY["EPSG","7027"]],AUTHORITY["EPSG","6027"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4027"]] •>•ƒ%Ÿ>gS…epsg¾Unknown datum based upon the WGS 84 ellipsoid+proj=longlat +ellps=WGS84 +no_defsGEOGCS["Unknown datum based upon the WGS 84 ellipsoid",DATUM["Not_specified_based_on_WGS_84_ellipsoid",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6030"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4030"]]ƒ>Ÿ=oy…epsg½Unknown datum based upon the War Office ellipsoid+proj=longlat +a=6378300 +b=6356751.689189189 +no_defsGEOGCS["Unknown datum based upon the War Office ellipsoid",DATUM["Not_specified_based_on_War_Office_ellipsoid",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],AUTHORITY["EPSG","6029"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4029"]] “S“ƒ<Ÿ@g}…epsgÀUnknown datum based upon the OSU86F ellipsoid+proj=longlat +a=6378136.2 +b=6356751.516927429 +no_defsGEOGCS["Unknown datum based upon the OSU86F ellipsoid",DATUM["Not_specified_based_on_OSU86F_ellipsoid",SPHEROID["OSU86F",6378136.2,298.257223563,AUTHORITY["EPSG","7032"]],AUTHORITY["EPSG","6032"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4032"]]ƒ)Ÿ?iS…!epsg¿Unknown datum based upon the GEM 10C ellipsoid+proj=longlat +ellps=WGS84 +no_defsGEOGCS["Unknown datum based upon the GEM 10C ellipsoid",DATUM["Not_specified_based_on_GEM_10C_ellipsoid",SPHEROID["GEM 10C",6378137,298.257223563,AUTHORITY["EPSG","7031"]],AUTHORITY["EPSG","6031"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4031"]] W@WƒeŸB q …UepsgÂUnknown datum based upon the Clarke 1880 ellipsoid+proj=longlat +a=6378249.144808011 +b=6356514.966204134 +no_defsGEOGCS["Unknown datum based upon the Clarke 1880 ellipsoid",DATUM["Not_specified_based_on_Clarke_1880_ellipsoid",SPHEROID["Clarke 1880",6378249.144808011,293.4663076556349,AUTHORITY["EPSG","7034"]],AUTHORITY["EPSG","6034"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4034"]]ƒ<ŸAg}…epsgÁUnknown datum based upon the OSU91A ellipsoid+proj=longlat +a=6378136.3 +b=6356751.616592146 +no_defsGEOGCS["Unknown datum based upon the OSU91A ellipsoid",DATUM["Not_specified_based_on_OSU91A_ellipsoid",SPHEROID["OSU91A",6378136.3,298.257223563,AUTHORITY["EPSG","7033"]],AUTHORITY["EPSG","6033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4033"]] ­^­ƒ-ŸDkS…'epsgÄUnknown datum based upon the GRS 1967 ellipsoid+proj=longlat +ellps=GRS67 +no_defsGEOGCS["Unknown datum based upon the GRS 1967 ellipsoid",DATUM["Not_specified_based_on_GRS_1967_ellipsoid",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6036"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4036"]]ƒŸCee„}epsgÃUnknown datum based upon the Authalic Sphere+proj=longlat +a=6371000 +b=6371000 +no_defsGEOGCS["Unknown datum based upon the Authalic Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0,AUTHORITY["EPSG","7035"]],AUTHORITY["EPSG","6035"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4035"]] OO…-ŸE - ‰-epsgÅWGS 84 / TMzn35N+proj=utm +zone=35 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / TMzn35N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","4037"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] OO…-ŸF - ‰-epsgÆWGS 84 / TMzn36N+proj=utm +zone=36 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / TMzn36N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","4038"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] å償I y†%epsgÉUnknown datum based upon the Average Terrestrial System 1977 ellipsoid+proj=longlat +a=6378135 +b=6356750.304921594 +no_defsGEOGCS["Unknown datum based upon the Average Terrestrial System 1977 ellipsoid",DATUM["Not_specified_based_on_Average_Terrestrial_System_1977_ellipsoid",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6041"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4041"]] @â@ƒŸKgS… epsgËUnknown datum based upon the WGS 72 ellipsoid+proj=longlat +ellps=WGS72 +no_defsGEOGCS["Unknown datum based upon the WGS 72 ellipsoid",DATUM["Not_specified_based_on_WGS_72_ellipsoid",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4043"]]„ŸJ  †#epsgÊUnknown datum based upon the Everest (1830 Definition) ellipsoid+proj=longlat +a=6377299.36559538 +b=6356098.359005156 +no_defsGEOGCS["Unknown datum based upon the Everest (1830 Definition) ellipsoid",DATUM["Not_specified_based_on_Everest_1830_Definition_ellipsoid",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6042"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4042"]] ÞÞ„ŸL †+epsgÌUnknown datum based upon the Everest 1830 (1962 Definition) ellipsoid+proj=longlat +a=6377301.243 +b=6356100.230165384 +no_defsGEOGCS["Unknown datum based upon the Everest 1830 (1962 Definition) ellipsoid",DATUM["Not_specified_based_on_Everest_1830_1962_Definition_ellipsoid",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],AUTHORITY["EPSG","6044"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4044"]] QÞQƒ ŸN !„yepsgÎRGRDC 2005+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]]„ŸM †+epsgÍUnknown datum based upon the Everest 1830 (1975 Definition) ellipsoid+proj=longlat +a=6377299.151 +b=6356098.145120132 +no_defsGEOGCS["Unknown datum based upon the Everest 1830 (1975 Definition) ellipsoid",DATUM["Not_specified_based_on_Everest_1830_1975_Definition_ellipsoid",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],AUTHORITY["EPSG","6045"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4045"]] ((ƒTŸOe…OepsgÏUnspecified datum based upon the GRS 1980 Authalic Sphere+proj=longlat +a=6371007 +b=6371007 +no_defsGEOGCS["Unspecified datum based upon the GRS 1980 Authalic Sphere",DATUM["Not_specified_based_on_GRS_1980_Authalic_Sphere",SPHEROID["GRS 1980 Authalic Sphere",6371007,0,AUTHORITY["EPSG","7048"]],AUTHORITY["EPSG","6047"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4047"]] Ì̆0ŸP G}Š%epsgÐRGRDC 2005 / Congo TM zone 12+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGRDC 2005 / Congo TM zone 12",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","4048"],AXIS["X",EAST],AXIS["Y",NORTH]] Ì̆0ŸQ G}Š%epsgÑRGRDC 2005 / Congo TM zone 14+proj=tmerc +lat_0=0 +lon_0=14 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGRDC 2005 / Congo TM zone 14",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",14],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","4049"],AXIS["X",EAST],AXIS["Y",NORTH]] Ì̆0ŸR G}Š%epsgÒRGRDC 2005 / Congo TM zone 16+proj=tmerc +lat_0=0 +lon_0=16 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGRDC 2005 / Congo TM zone 16",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","4050"],AXIS["X",EAST],AXIS["Y",NORTH]] Ì̆0ŸS G}Š%epsgÓRGRDC 2005 / Congo TM zone 18+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGRDC 2005 / Congo TM zone 18",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","4051"],AXIS["X",EAST],AXIS["Y",NORTH]] ƒ}ŸU e† epsgÕUnspecified datum based upon the International 1924 Authalic Sphere+proj=longlat +a=6371228 +b=6371228 +no_defsGEOGCS["Unspecified datum based upon the International 1924 Authalic Sphere",DATUM["Not_specified_based_on_International_1924_Authalic_Sphere",SPHEROID["International 1924 Authalic Sphere",6371228,0,AUTHORITY["EPSG","7057"]],AUTHORITY["EPSG","6053"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4053"]]ƒaŸT e…aepsgÔUnspecified datum based upon the Clarke 1866 Authalic Sphere+proj=longlat +a=6370997 +b=6370997 +no_defsGEOGCS["Unspecified datum based upon the Clarke 1866 Authalic Sphere",DATUM["Not_specified_based_on_Clarke_1866_Authalic_Sphere",SPHEROID["Clarke 1866 Authalic Sphere",6370997,0,AUTHORITY["EPSG","7052"]],AUTHORITY["EPSG","6052"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4052"]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó ¼epsg¼ ½epsg½ ¾epsg¾ ¿epsg¿ ÀepsgÀ ÁepsgÁ Âepsg Ãepsgà ÄepsgÄ ÅepsgÅ ÆepsgÆ ÉepsgÉ ÊepsgÊ ËepsgË ÌepsgÌ ÍepsgÍ ÎepsgÎ ÏepsgÏ ÐepsgÐ ÑepsgÑ ÒepsgÒ ÓepsgÓ ÔepsgÔ ÕepsgÕ ÖepsgÖ ×epsg× ØepsgØ ÙepsgÙ ÚepsgÚ ÛepsgÛ ÜepsgÜ ÝepsgÝ ÞepsgÞ ßepsgß çepsgç ëepsgë ñepsgñ òepsgò óepsgó epsg epsg epsg epsg epsg epsg epsg epsg  epsg !epsg! "epsg" #epsg# $epsg$ %epsg% &epsg& 'epsg' (epsg( )epsg) *epsg* +epsg+ t+tƒ3ŸW ?…epsg×Popular Visualisation CRS+proj=longlat +a=6378137 +b=6378137 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["Popular Visualisation CRS",DATUM["Popular_Visualisation_Datum",SPHEROID["Popular Visualisation Sphere",6378137,0,AUTHORITY["EPSG","7059"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6055"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4055"]]ƒQŸVym…GepsgÖUnspecified datum based upon the Hughes 1980 ellipsoid+proj=longlat +a=6378273 +b=6356889.449 +no_defsGEOGCS["Unspecified datum based upon the Hughes 1980 ellipsoid",DATUM["Not_specified_based_on_Hughes_1980_ellipsoid",SPHEROID["Hughes 1980",6378273,298.279411123061,AUTHORITY["EPSG","7058"]],AUTHORITY["EPSG","6054"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4054"]] Ì̆0ŸX G}Š%epsgØRGRDC 2005 / Congo TM zone 20+proj=tmerc +lat_0=0 +lon_0=20 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGRDC 2005 / Congo TM zone 20",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",20],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","4056"],AXIS["X",EAST],AXIS["Y",NORTH]] Ì̆0ŸY G}Š%epsgÙRGRDC 2005 / Congo TM zone 22+proj=tmerc +lat_0=0 +lon_0=22 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGRDC 2005 / Congo TM zone 22",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",22],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","4057"],AXIS["X",EAST],AXIS["Y",NORTH]] Ì̆0ŸZ G}Š%epsgÚRGRDC 2005 / Congo TM zone 24+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGRDC 2005 / Congo TM zone 24",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","4058"],AXIS["X",EAST],AXIS["Y",NORTH]] Ì̆0Ÿ[ G}Š%epsgÛRGRDC 2005 / Congo TM zone 26+proj=tmerc +lat_0=0 +lon_0=26 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGRDC 2005 / Congo TM zone 26",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",26],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","4059"],AXIS["X",EAST],AXIS["Y",NORTH]] Ì̆0Ÿ\ G}Š%epsgÜRGRDC 2005 / Congo TM zone 28+proj=tmerc +lat_0=0 +lon_0=28 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGRDC 2005 / Congo TM zone 28",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",28],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","4060"],AXIS["X",EAST],AXIS["Y",NORTH]] ýý…Ÿ] ?+ŠepsgÝRGRDC 2005 / UTM zone 33S+proj=utm +zone=33 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGRDC 2005 / UTM zone 33S",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","4061"],AXIS["X",EAST],AXIS["Y",NORTH]] ýý…Ÿ^ ?+ŠepsgÞRGRDC 2005 / UTM zone 34S+proj=utm +zone=34 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGRDC 2005 / UTM zone 34S",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","4062"],AXIS["X",EAST],AXIS["Y",NORTH]] ýý…Ÿ_ ?+ŠepsgßRGRDC 2005 / UTM zone 35S+proj=utm +zone=35 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["RGRDC 2005 / UTM zone 35S",GEOGCS["RGRDC 2005",DATUM["Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1033"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4046"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","4063"],AXIS["X",EAST],AXIS["Y",NORTH]] MM…/Ÿg3{‰;epsgçChua / UTM zone 23S+proj=utm +zone=23 +south +ellps=intl +units=m +no_defsPROJCS["Chua / UTM zone 23S",GEOGCS["Chua",DATUM["Chua",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6224"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4224"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","4071"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ö}öƒŸq „qepsgñREGCAN95+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["REGCAN95",DATUM["Red_Geodesica_de_Canarias_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1035"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4081"]]‚Ÿk „mepsgëSREF98+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["SREF98",DATUM["Serbian_Reference_Network_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1034"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4075"]]offlrx~„Š–œ¢¨®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôú”Ÿ•Ÿ–Ÿ—Ÿ"˜Ÿ$™Ÿ&šŸ(›Ÿ)œŸ+Ÿ-žŸ.ŸŸ/ Ÿ0¡Ÿ3¢Ÿ5£Ÿ7¤Ÿ9¥Ÿ:¦Ÿ<§Ÿ>¨Ÿ@©ŸBªŸD«ŸE¬ŸF­ŸI®ŸK¯ŸL°ŸN±ŸO²ŸP³ŸQ´ŸRµŸS¶ŸU¸ŸW¹ŸXºŸY»ŸZ¼Ÿ[½Ÿ\¾Ÿ]¿Ÿ^ÀŸ_ÁŸgŸqÄŸrÅŸsÆ Ç È É  Ê "Ë $Ì &Í (Π*Ï ,Р.Ñ 0Ò 2Ó 4Ô 6Õ 8Ö :× <Ø >Ù @Ú BÛ DÝ FÞ Hß Jà Lá Nâ Pã Sä Uå Wæ Yç ]è _é aê cë eì gí iî kï mð pñ rò tó vô xõ {ö }÷ ø¡ù¡û¡ü¡ý¡ þ¡ ÿ¡¡¡¡¡¡¡¡ …wŸr ;ŠepsgòREGCAN95 / UTM zone 27N+proj=utm +zone=27 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["REGCAN95 / UTM zone 27N",GEOGCS["REGCAN95",DATUM["Red_Geodesica_de_Canarias_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1035"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4081"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","4082"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …wŸs ;ŠepsgóREGCAN95 / UTM zone 28N+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["REGCAN95 / UTM zone 28N",GEOGCS["REGCAN95",DATUM["Red_Geodesica_de_Canarias_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","1035"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4081"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","4083"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 3Á3ƒ  o…epsgGGRS87+proj=longlat +ellps=GRS80 +datum=GGRS87 +no_defsGEOGCS["GGRS87",DATUM["Greek_Geodetic_Reference_System_1987",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[-199.87,74.79,246.62,0,0,0,0],AUTHORITY["EPSG","6121"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4121"]]‚; U„epsgGreek+proj=longlat +ellps=bessel +no_defsGEOGCS["Greek",DATUM["Greek",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6120"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4120"]] 6‰6‚O Q„EepsgKKJ+proj=longlat +ellps=intl +no_defsGEOGCS["KKJ",DATUM["Kartastokoordinaattijarjestelma_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6123"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4123"]]‚s y„aepsgATS77+proj=longlat +a=6378135 +b=6356750.304921594 +no_defsGEOGCS["ATS77",DATUM["Average_Terrestrial_System_1977",SPHEROID["Average Terrestrial System 1977",6378135,298.257,AUTHORITY["EPSG","7041"]],AUTHORITY["EPSG","6122"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4122"]] ­ƒ   !„gepsgSamboja+proj=longlat +ellps=bessel +towgs84=-404.78,685.68,45.47,0,0,0,0 +no_defsGEOGCS["Samboja",DATUM["Samboja",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-404.78,685.68,45.47,0,0,0,0],AUTHORITY["EPSG","6125"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4125"]]‚O U„?epsgRT90+proj=longlat +ellps=bessel +no_defsGEOGCS["RT90",DATUM["Rikets_koordinatsystem_1990",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6124"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4124"]] ¦f‚K  U„-epsg Madzansua+proj=longlat +ellps=clrk66 +no_defsGEOGCS["Madzansua",DATUM["Madzansua",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6128"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4128"]]‚< U„epsgTete+proj=longlat +ellps=clrk66 +no_defsGEOGCS["Tete",DATUM["Tete",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6127"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4127"]]‚V )S„;epsgLKS94 (ETRS89)+proj=longlat +ellps=GRS80 +no_defsGEOGCS["LKS94 (ETRS89)",DATUM["Lithuania_1994_ETRS89",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6126"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4126"]] 2¨2‚r " „Mepsg"Moznet+proj=longlat +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +no_defsGEOGCS["Moznet",DATUM["Moznet_ITRF94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,-0,-0,-0,0],AUTHORITY["EPSG","6130"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4130"]]‚T !%U„9epsg!Observatario+proj=longlat +ellps=clrk66 +no_defsGEOGCS["Observatario",DATUM["Observatario",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6129"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4129"]] @Š@‚F $U„-epsg$FD58+proj=longlat +ellps=clrk80 +no_defsGEOGCS["FD58",DATUM["Final_Datum_1958",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6132"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4132"]]‚r ##„Mepsg#Indian 1960+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defsGEOGCS["Indian 1960",DATUM["Indian_1960",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6131"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4131"]] úKú‚M &U„9epsg&PSD93+proj=longlat +ellps=clrk80 +no_defsGEOGCS["PSD93",DATUM["PDO_Survey_Datum_1993",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6134"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4134"]]ƒ1 % G… epsg%EST92+proj=longlat +ellps=GRS80 +towgs84=0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014 +no_defsGEOGCS["EST92",DATUM["Estonia_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014],AUTHORITY["EPSG","6133"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4133"]] <¨<‚h (3U„Sepsg(St. Lawrence Island+proj=longlat +ellps=clrk66 +no_defsGEOGCS["St. Lawrence Island",DATUM["St_Lawrence_Island",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6136"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4136"]]‚T '%U„9epsg'Old Hawaiian+proj=longlat +ellps=clrk66 +no_defsGEOGCS["Old Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6135"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4135"]] : :‚b */U„Kepsg*St. George Island+proj=longlat +ellps=clrk66 +no_defsGEOGCS["St. George Island",DATUM["St_George_Island",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6138"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4138"]]‚\ )+U„Cepsg)St. Paul Island+proj=longlat +ellps=clrk66 +no_defsGEOGCS["St. Paul Island",DATUM["St_Paul_Island",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6137"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4137"]] ÙrÙƒ , '… epsg,NAD83(CSRS98)+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["NAD83(CSRS98)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4140"]]ƒ  + # „mepsg+Puerto Rico+proj=longlat +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +no_defsGEOGCS["Puerto Rico",DATUM["Puerto_Rico",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY["EPSG","6139"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4139"]] üüƒ  . %„oepsg.Locodjo 1965+proj=longlat +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +no_defsGEOGCS["Locodjo 1965",DATUM["Locodjo_1965",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-125,53,467,0,0,0,0],AUTHORITY["EPSG","6142"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4142"]]‚o -  „Eepsg-Israel+proj=longlat +ellps=GRS80 +towgs84=-48,55,52,0,0,0,0 +no_defsGEOGCS["Israel",DATUM["Israel",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[-48,55,52,0,0,0,0],AUTHORITY["EPSG","6141"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4141"]] äcä‚{ 0)„Yepsg0Kalianpur 1937+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defsGEOGCS["Kalianpur 1937",DATUM["Kalianpur_1937",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6144"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4144"]]ƒ / %„{epsg/Abidjan 1987+proj=longlat +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +no_defsGEOGCS["Abidjan 1987",DATUM["Abidjan_1987",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-124.76,53,466.79,0,0,0,0],AUTHORITY["EPSG","6143"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4143"]] ¾|¾ƒ: 2 );…epsg2Kalianpur 1975+proj=longlat +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +no_defsGEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]]ƒ 1 )„_epsg1Kalianpur 1962+proj=longlat +a=6377301.243 +b=6356100.230165384 +no_defsGEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]] ãjム4 -„aepsg4Hartebeesthoek94+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["Hartebeesthoek94",DATUM["Hartebeesthoek94",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6148"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4148"]]ƒ 3 !!„kepsg3Hanoi 1972+proj=longlat +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +no_defsGEOGCS["Hanoi 1972",DATUM["Hanoi_1972",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY["EPSG","6147"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4147"]] Øm؃ 6 %„kepsg6CH1903++proj=longlat +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +no_defsGEOGCS["CH1903+",DATUM["CH1903",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[674.374,15.056,405.346,0,0,0,0],AUTHORITY["EPSG","6150"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4150"]]ƒ 5 %„iepsg5CH1903+proj=longlat +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +no_defsGEOGCS["CH1903",DATUM["CH1903",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[674.374,15.056,405.346,0,0,0,0],AUTHORITY["EPSG","6149"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4149"]] s‚` 8#S„Uepsg8NAD83(HARN)+proj=longlat +ellps=GRS80 +no_defsGEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]]ƒ  7 „epsg7CHTRF95+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["CHTRF95",DATUM["Swiss_Terrestrial_Reference_Frame_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6151"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4151"]] h‚Q :!Q„;epsg:ED50(ED77)+proj=longlat +ellps=intl +no_defsGEOGCS["ED50(ED77)",DATUM["European_Datum_1950_1977",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6154"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4154"]]ƒ 9 !!„oepsg9Rassadiran+proj=longlat +ellps=intl +towgs84=-133.63,-157.5,-158.62,0,0,0,0 +no_defsGEOGCS["Rassadiran",DATUM["Rassadiran",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-133.63,-157.5,-158.62,0,0,0,0],AUTHORITY["EPSG","6153"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4153"]] ýbý‚a <U„_epsg'Q„+epsg>Naparima 1955+proj=longlat +ellps=intl +no_defsGEOGCS["Naparima 1955",DATUM["Naparima_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6158"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4158"]]‚y = % „Iepsg=Mount Dillon+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defsGEOGCS["Mount Dillon",DATUM["Mount_Dillon",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6157"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4157"]] ]³]‚R @+Q„3epsg@Chos Malal 1914+proj=longlat +ellps=intl +no_defsGEOGCS["Chos Malal 1914",DATUM["Chos_Malal_1914",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6160"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4160"]]‚I ?Q„5epsg?ELD79+proj=longlat +ellps=intl +no_defsGEOGCS["ELD79",DATUM["European_Libyan_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6159"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4159"]]  b ‚S B#U„9epsgBKorean 1985+proj=longlat +ellps=bessel +no_defsGEOGCS["Korean 1985",DATUM["Korean_Datum_1985",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6162"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4162"]]ƒ A 1„}epsgAPampa del Castillo+proj=longlat +ellps=intl +towgs84=27.5,14,186.4,0,0,0,0 +no_defsGEOGCS["Pampa del Castillo",DATUM["Pampa_del_Castillo",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[27.5,14,186.4,0,0,0,0],AUTHORITY["EPSG","6161"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4161"]] êoꃠD # „[epsgDSouth Yemen+proj=longlat +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +no_defsGEOGCS["South Yemen",DATUM["South_Yemen",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY["EPSG","6164"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4164"]]ƒ  C #„epsgCYemen NGN96+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["Yemen NGN96",DATUM["Yemen_National_Geodetic_Network_1996",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6163"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4163"]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó -epsg- .epsg. /epsg/ 0epsg0 1epsg1 2epsg2 3epsg3 4epsg4 5epsg5 6epsg6 7epsg7 8epsg8 9epsg9 :epsg: ;epsg; epsg> ?epsg? @epsg@ AepsgA BepsgB CepsgC DepsgD EepsgE FepsgF GepsgG HepsgH IepsgI JepsgJ KepsgK LepsgL MepsgM NepsgN OepsgO PepsgP RepsgR SepsgS TepsgT UepsgU VepsgV WepsgW XepsgX YepsgY \epsg\ ]epsg] ^epsg^ _epsg_ `epsg` aepsga bepsgb cepsgc depsgd eepsge fepsgf gepsgg hepsgh iepsgi jepsgj  Š ‚z F #„YepsgFKorean 1995+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["Korean 1995",DATUM["Korean_Datum_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6166"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4166"]]‚r E  „IepsgEBissau+proj=longlat +ellps=intl +towgs84=-173,253,27,0,0,0,0 +no_defsGEOGCS["Bissau",DATUM["Bissau",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-173,253,27,0,0,0,0],AUTHORITY["EPSG","6165"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4165"]] 4x4‚@ Hyƒ{epsgHAccra+proj=longlat +a=6378300 +b=6356751.689189189 +no_defsGEOGCS["Accra",DATUM["Accra",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],AUTHORITY["EPSG","6168"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4168"]]ƒ G „sepsgGNZGD2000+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["NZGD2000",DATUM["New_Zealand_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6167"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4167"]] ¬V¬ƒ& J #…1epsgJSIRGAS 1995+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]]ƒ& I 3…epsgIAmerican Samoa 1962+proj=longlat +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +no_defsGEOGCS["American Samoa 1962",DATUM["American_Samoa_1962",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-115,118,426,0,0,0,0],AUTHORITY["EPSG","6169"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4169"]] ú~úƒ L „oepsgLPOSGAR+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["POSGAR",DATUM["Posiciones_Geodesicas_Argentinas",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6172"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4172"]]‚~ K „mepsgKRGF93+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["RGF93",DATUM["Reseau_Geodesique_Francais_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6171"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4171"]]   ‚k N/y„9epsgNSierra Leone 1924+proj=longlat +a=6378300 +b=6356751.689189189 +no_defsGEOGCS["Sierra Leone 1924",DATUM["Sierra_Leone_Colony_1924",SPHEROID["War Office",6378300,296,AUTHORITY["EPSG","7029"]],AUTHORITY["EPSG","6174"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4174"]]‚m M „EepsgMIRENET95+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["IRENET95",DATUM["IRENET95",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6173"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4173"]] Ädă P 5… epsgPAustralian Antarctic+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["Australian Antarctic",DATUM["Australian_Antarctic_Datum_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6176"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4176"]]ƒ O / „epsgOSierra Leone 1968+proj=longlat +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +no_defsGEOGCS["Sierra Leone 1968",DATUM["Sierra_Leone_1968",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-88,4,101,0,0,0,0],AUTHORITY["EPSG","6175"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4175"]] ï}ïƒ  S -=„3epsgSPulkovo 1942(58)+proj=longlat +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +no_defsGEOGCS["Pulkovo 1942(58)",DATUM["Pulkovo_1942_58",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6179"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4179"]]‚ R -'„3epsgRPulkovo 1942(83)+proj=longlat +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +no_defsGEOGCS["Pulkovo 1942(83)",DATUM["Pulkovo_1942_83",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6178"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4178"]] Ø‘؃5 U +3…epsgULuxembourg 1930+proj=longlat +ellps=intl +towgs84=-193,13.7,-39.3,-0.41,-2.933,2.688,0.43 +no_defsGEOGCS["Luxembourg 1930",DATUM["Luxembourg_1930",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-193,13.7,-39.3,-0.41,-2.933,2.688,0.43],AUTHORITY["EPSG","6181"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4181"]]‚k T „GepsgTEST97+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["EST97",DATUM["Estonia_1997",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6180"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4180"]] ææƒ# W 3 …epsgWAzores Central 1948+proj=longlat +ellps=intl +towgs84=-104,167,-38,0,0,0,0 +no_defsGEOGCS["Azores Central 1948",DATUM["Azores_Central_Islands_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-104,167,-38,0,0,0,0],AUTHORITY["EPSG","6183"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4183"]]‚o V9Q„_epsgVAzores Occidental 1939+proj=longlat +ellps=intl +no_defsGEOGCS["Azores Occidental 1939",DATUM["Azores_Occidental_Islands_1939",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6182"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4182"]]  X ‚H Y%Q„%epsgYMadeira 1936+proj=longlat +ellps=intl +no_defsGEOGCS["Madeira 1936",DATUM["Madeira_1936",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6185"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4185"]]ƒ$ X 5 …epsgXAzores Oriental 1940+proj=longlat +ellps=intl +towgs84=-203,141,53,0,0,0,0 +no_defsGEOGCS["Azores Oriental 1940",DATUM["Azores_Oriental_Islands_1940",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-203,141,53,0,0,0,0],AUTHORITY["EPSG","6184"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4184"]] ÏLÏ‚y ] „aepsg]REGVEN+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["REGVEN",DATUM["Red_Geodesica_Venezolana",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6189"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4189"]]ƒ0 \ =… epsg\OSNI 1952+proj=longlat +ellps=airy +towgs84=482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15 +no_defsGEOGCS["OSNI 1952",DATUM["OSNI_1952",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],TOWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY["EPSG","6188"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4188"]] OŸO‚L _'S„)epsg_Albanian 1987+proj=longlat +ellps=krass +no_defsGEOGCS["Albanian 1987",DATUM["Albanian_1987",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6191"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4191"]]‚] ^S„Sepsg^POSGAR 98+proj=longlat +ellps=GRS80 +no_defsGEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]] ½k½ƒ* a #1… epsgaManoca 1962+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-70.9,-151.8,-41.4,0,0,0,0 +no_defsGEOGCS["Manoca 1962",DATUM["Manoca_1962",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-70.9,-151.8,-41.4,0,0,0,0],AUTHORITY["EPSG","6193"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4193"]]ƒ ` #„mepsg`Douala 1948+proj=longlat +ellps=intl +towgs84=-206.1,-174.7,-87.7,0,0,0,0 +no_defsGEOGCS["Douala 1948",DATUM["Douala_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-206.1,-174.7,-87.7,0,0,0,0],AUTHORITY["EPSG","6192"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4192"]]  ¶ ƒ' c /… epsgcScoresbysund 1952+proj=longlat +ellps=intl +towgs84=105,326,-102.5,0,0,0.814,-0.6 +no_defsGEOGCS["Scoresbysund 1952",DATUM["Scoresbysund_1952",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[105,326,-102.5,0,0,0.814,-0.6],AUTHORITY["EPSG","6195"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4195"]]‚F b#Q„#epsgbQornoq 1927+proj=longlat +ellps=intl +no_defsGEOGCS["Qornoq 1927",DATUM["Qornoq_1927",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6194"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4194"]] _‚@ eU„epsgeGaroua+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Garoua",DATUM["Garoua",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6197"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4197"]]ƒ d +„}epsgdAmmassalik 1958+proj=longlat +ellps=intl +towgs84=-45,417,-3.5,0,0,0.814,-0.6 +no_defsGEOGCS["Ammassalik 1958",DATUM["Ammassalik_1958",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-45,417,-3.5,0,0,0.814,-0.6],AUTHORITY["EPSG","6196"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4196"]] o¶o‚C g!Q„epsggEgypt 1930+proj=longlat +ellps=intl +no_defsGEOGCS["Egypt 1930",DATUM["Egypt_1930",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6199"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4199"]]‚F fU„%epsgfKousseri+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Kousseri",DATUM["Kousseri",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6198"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4198"]]  T ‚C iU„!epsgiAdindan+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Adindan",DATUM["Adindan",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6201"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4201"]]ƒ( h %1…epsghPulkovo 1995+proj=longlat +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +no_defsGEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]] >Ÿ>‚] kW„WepsgkAGD84+proj=longlat +ellps=aust_SA +no_defsGEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]]‚] jW„WepsgjAGD66+proj=longlat +ellps=aust_SA +no_defsGEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]] ;´;‚u m  „KepsgmAfgooye+proj=longlat +ellps=krass +towgs84=-43,-163,45,0,0,0,0 +no_defsGEOGCS["Afgooye",DATUM["Afgooye",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-43,-163,45,0,0,0,0],AUTHORITY["EPSG","6205"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4205"]]‚H l!Q„)epsglAin el Abd+proj=longlat +ellps=intl +no_defsGEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]] 2ªj2‚4 pQ„ epsgpAratu+proj=longlat +ellps=intl +no_defsGEOGCS["Aratu",DATUM["Aratu",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6208"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4208"]]‚< oQ„epsgoLisbon+proj=longlat +ellps=intl +no_defsGEOGCS["Lisbon",DATUM["Lisbon_1937",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6207"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4207"]]‚R ni„-epsgnAgadez+proj=longlat +a=6378249.2 +b=6356515 +no_defsGEOGCS["Agadez",DATUM["Agadez",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6206"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4206"]] Q›Q‚F rU„%epsgrArc 1960+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]]‚a q „-epsgqArc 1950+proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defsGEOGCS["Arc 1950",DATUM["Arc_1950",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],AUTHORITY["EPSG","6209"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4209"]] »ƒ  t '…epsgtBarbados 1938+proj=longlat +ellps=clrk80 +towgs84=31.95,300.99,419.19,0,0,0,0 +no_defsGEOGCS["Barbados 1938",DATUM["Barbados_1938",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHORITY["EPSG","6212"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4212"]]‚A sU„epsgsBatavia+proj=longlat +ellps=bessel +no_defsGEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]] g‚I v%S„%epsgvBeijing 1954+proj=longlat +ellps=krass +no_defsGEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]]ƒ u %„qepsguBeduaram+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-106,-87,188,0,0,0,0 +no_defsGEOGCS["Beduaram",DATUM["Beduaram",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-106,-87,188,0,0,0,0],AUTHORITY["EPSG","6213"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4213"]] Q©Q‚T x%U„9epsgxBermuda 1957+proj=longlat +ellps=clrk66 +no_defsGEOGCS["Bermuda 1957",DATUM["Bermuda_1957",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6216"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4216"]]‚S w!Q„?epsgwBelge 1950+proj=longlat +ellps=intl +no_defsGEOGCS["Belge 1950",DATUM["Reseau_National_Belge_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6215"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4215"]] èyèƒ  { %„mepsg{Bukit Rimpah+proj=longlat +ellps=bessel +towgs84=-384,664,-48,0,0,0,0 +no_defsGEOGCS["Bukit Rimpah",DATUM["Bukit_Rimpah",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-384,664,-48,0,0,0,0],AUTHORITY["EPSG","6219"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4219"]]ƒ z # „_epsgzBogota 1975+proj=longlat +ellps=intl +towgs84=307,304,-318,0,0,0,0 +no_defsGEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]] `¶`‚R }+Q„3epsg}Campo Inchauspe+proj=longlat +ellps=intl +no_defsGEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]]‚F |U„%epsg|Camacupa+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Camacupa",DATUM["Camacupa",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6220"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4220"]] :§:‚i   „5epsgCarthage+proj=longlat +a=6378249.2 +b=6356515 +datum=carthage +no_defsGEOGCS["Carthage",DATUM["Carthage",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6223"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4223"]]‚U ~ „epsg~Cape+proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defsGEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]] =Ë=ƒ ¡ ) „iepsgCorrego Alegre+proj=longlat +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +no_defsGEOGCS["Corrego Alegre",DATUM["Corrego_Alegre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-206,172,-6,0,0,0,0],AUTHORITY["EPSG","6225"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4225"]]‚1¡Q„epsg€Chua+proj=longlat +ellps=intl +no_defsGEOGCS["Chua",DATUM["Chua",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6224"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4224"]] 1–1‚a¡#i„AepsgƒDeir ez Zor+proj=longlat +a=6378249.2 +b=6356515 +no_defsGEOGCS["Deir ez Zor",DATUM["Deir_ez_Zor",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6227"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4227"]]‚f¡'i„Gepsg‚Cote d'Ivoire+proj=longlat +a=6378249.2 +b=6356515 +no_defsGEOGCS["Cote d'Ivoire",DATUM["Cote_d_Ivoire",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6226"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4226"]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó lepsgl mepsgm nepsgn oepsgo pepsgp qepsgq repsgr sepsgs tepsgt uepsgu vepsgv wepsgw xepsgx zepsgz {epsg{ |epsg| }epsg} ~epsg~ epsg €epsg€ epsg ‚epsg‚ ƒepsgƒ „epsg„ …epsg… †epsg† ‡epsg‡ ˆepsgˆ ‰epsg‰ ŠepsgŠ ‹epsg‹ ŒepsgŒ epsg ŽepsgŽ epsg epsg ‘epsg‘ ’epsg’ “epsg“ ”epsg” •epsg• –epsg– —epsg— ˜epsg˜ ™epsg™ šepsgš ›epsg› œepsgœ epsg žepsgž ŸepsgŸ  epsg  ¡epsg¡ ¢epsg¢ £epsg£ ¤epsg¤ ¥epsg¥ ¦epsg¦ §epsg§ !«e!‚@¡Q„%epsg†ED50+proj=longlat +ellps=intl +no_defsGEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]]‚B¡!W„epsg…Egypt 1907+proj=longlat +ellps=helmert +no_defsGEOGCS["Egypt 1907",DATUM["Egypt_1907",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6229"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4229"]]‚Q¡i„+epsg„Douala+proj=longlat +a=6378249.2 +b=6356515 +no_defsGEOGCS["Douala",DATUM["Douala",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6228"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4228"]] {¼{‚=¡U„epsgˆFahud+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Fahud",DATUM["Fahud",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6232"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4232"]]‚@¡Q„%epsg‡ED87+proj=longlat +ellps=intl +no_defsGEOGCS["ED87",DATUM["European_Datum_1987",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6231"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4231"]] p‚Q¡ i„+epsgŠGaroua+proj=longlat +a=6378249.2 +b=6356515 +no_defsGEOGCS["Garoua",DATUM["Garoua",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6234"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4234"]]ƒ ¡ ) „kepsg‰Gandajika 1970+proj=longlat +ellps=intl +towgs84=-133,-321,50,0,0,0,0 +no_defsGEOGCS["Gandajika 1970",DATUM["Gandajika_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-133,-321,50,0,0,0,0],AUTHORITY["EPSG","6233"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4233"]] ¨ƒ¡ -„wepsgŒHu Tzu Shan 1950+proj=longlat +ellps=intl +towgs84=-637,-549,-203,0,0,0,0 +no_defsGEOGCS["Hu Tzu Shan 1950",DATUM["Hu_Tzu_Shan_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-637,-549,-203,0,0,0,0],AUTHORITY["EPSG","6236"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4236"]]‚T¡ -Q„5epsg‹Guyane Francaise+proj=longlat +ellps=intl +no_defsGEOGCS["Guyane Francaise",DATUM["Guyane_Francaise",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6235"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4235"]] SºS‚c¡w„EepsgŽID74+proj=longlat +a=6378160 +b=6356774.50408554 +no_defsGEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]]‚B¡ S„'epsgHD72+proj=longlat +ellps=GRS67 +no_defsGEOGCS["HD72",DATUM["Hungarian_Datum_1972",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6237"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4237"]] ÙOÙ‚r¡#„MepsgIndian 1975+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defsGEOGCS["Indian 1975",DATUM["Indian_1975",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6240"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4240"]]ƒ-¡ #9…epsgIndian 1954+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=217,823,299,0,0,0,0 +no_defsGEOGCS["Indian 1954",DATUM["Indian_1954",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY["EPSG","6239"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4239"]] 9ƒ9‚F¡U„+epsg’JAD69+proj=longlat +ellps=clrk66 +no_defsGEOGCS["JAD69",DATUM["Jamaica_1969",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6242"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4242"]]‚y¡ % „Iepsg‘Jamaica 1875+proj=longlat +a=6378249.144808011 +b=6356514.966204134 +no_defsGEOGCS["Jamaica 1875",DATUM["Jamaica_1875",SPHEROID["Clarke 1880",6378249.144808011,293.4663076556349,AUTHORITY["EPSG","7034"]],AUTHORITY["EPSG","6241"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4241"]] Èqȃ%¡ 7„}epsg”Kandawala+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=-97,787,86,0,0,0,0 +no_defsGEOGCS["Kandawala",DATUM["Kandawala",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[-97,787,86,0,0,0,0],AUTHORITY["EPSG","6244"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4244"]]ƒ ¡ ) „kepsg“Kalianpur 1880+proj=longlat +a=6377299.36559538 +b=6356098.359005156 +no_defsGEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]] Æ[ƃ¡ „yepsg–KOC+proj=longlat +ellps=clrk80 +towgs84=-294.7,-200.1,525.5,0,0,0,0 +no_defsGEOGCS["KOC",DATUM["Kuwait_Oil_Company",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-294.7,-200.1,525.5,0,0,0,0],AUTHORITY["EPSG","6246"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4246"]]ƒ!¡ #7„qepsg•Kertau 1968+proj=longlat +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +no_defsGEOGCS["Kertau 1968",DATUM["Kertau_1968",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY["EPSG","6245"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4245"]] t‚V¡Q„Mepsg˜PSAD56+proj=longlat +ellps=intl +no_defsGEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]]ƒ¡ „aepsg—La Canoa+proj=longlat +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +no_defsGEOGCS["La Canoa",DATUM["La_Canoa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-273.5,110.6,-357.9,0,0,0,0],AUTHORITY["EPSG","6247"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4247"]] LËL‚{¡ „WepsgšLeigon+proj=longlat +ellps=clrk80 +towgs84=-130,29,364,0,0,0,0 +no_defsGEOGCS["Leigon",DATUM["Leigon",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-130,29,364,0,0,0,0],AUTHORITY["EPSG","6250"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4250"]]‚1¡Q„epsg™Lake+proj=longlat +ellps=intl +no_defsGEOGCS["Lake",DATUM["Lake",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6249"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4249"]] #s#‚L¡i„%epsgœLome+proj=longlat +a=6378249.2 +b=6356515 +no_defsGEOGCS["Lome",DATUM["Lome",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6252"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4252"]]ƒ ¡ % „kepsg›Liberia 1964+proj=longlat +ellps=clrk80 +towgs84=-90,40,88,0,0,0,0 +no_defsGEOGCS["Liberia 1964",DATUM["Liberia_1964",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-90,40,88,0,0,0,0],AUTHORITY["EPSG","6251"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4251"]] X®X‚R¡+Q„3epsgžHito XVIII 1963+proj=longlat +ellps=intl +no_defsGEOGCS["Hito XVIII 1963",DATUM["Hito_XVIII_1963",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6254"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4254"]]‚N¡!U„1epsgLuzon 1911+proj=longlat +ellps=clrk66 +no_defsGEOGCS["Luzon 1911",DATUM["Luzon_1911",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6253"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4253"]] íw탡 „eepsg Mahe 1971+proj=longlat +ellps=clrk80 +towgs84=41,-220,-134,0,0,0,0 +no_defsGEOGCS["Mahe 1971",DATUM["Mahe_1971",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[41,-220,-134,0,0,0,0],AUTHORITY["EPSG","6256"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4256"]]ƒ¡ #„aepsgŸHerat North+proj=longlat +ellps=intl +towgs84=-333,-222,114,0,0,0,0 +no_defsGEOGCS["Herat North",DATUM["Herat_North",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-333,-222,114,0,0,0,0],AUTHORITY["EPSG","6255"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4255"]]  k ‚\¡"S„Wepsg¢ETRS89+proj=longlat +ellps=GRS80 +no_defsGEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]]ƒ¡! !„mepsg¡Makassar+proj=longlat +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +no_defsGEOGCS["Makassar",DATUM["Makassar",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],AUTHORITY["EPSG","6257"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4257"]] '³'ƒ¡$ „cepsg¤Manoca+proj=longlat +ellps=clrk80 +towgs84=-70.9,-151.8,-41.4,0,0,0,0 +no_defsGEOGCS["Manoca",DATUM["Manoca",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-70.9,-151.8,-41.4,0,0,0,0],AUTHORITY["EPSG","6260"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4260"]]‚I¡#%Q„'epsg£Malongo 1987+proj=longlat +ellps=intl +no_defsGEOGCS["Malongo 1987",DATUM["Malongo_1987",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6259"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4259"]] ïmï‚z¡&  „Uepsg¦Massawa+proj=longlat +ellps=bessel +towgs84=639,405,60,0,0,0,0 +no_defsGEOGCS["Massawa",DATUM["Massawa",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[639,405,60,0,0,0,0],AUTHORITY["EPSG","6262"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4262"]]ƒ¡% „kepsg¥Merchich+proj=longlat +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +no_defsGEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]] :¿:ƒ¡( „Wepsg¨Mhast+proj=longlat +ellps=intl +towgs84=-252.95,-4.11,-96.38,0,0,0,0 +no_defsGEOGCS["Mhast",DATUM["Mhast",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-252.95,-4.11,-96.38,0,0,0,0],AUTHORITY["EPSG","6264"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4264"]]‚=¡'U„epsg§Minna+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]] T¶T‚^¡*!i„=epsgªM'poraloko+proj=longlat +a=6378249.2 +b=6356515 +no_defsGEOGCS["M'poraloko",DATUM["M_poraloko",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6266"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4266"]]‚F¡)#Q„#epsg©Monte Mario+proj=longlat +ellps=intl +no_defsGEOGCS["Monte Mario",DATUM["Monte_Mario",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6265"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4265"]] œƒ¡, ) „_epsg¬NAD27 Michigan+proj=longlat +a=6378450.047548896 +b=6356826.621488444 +no_defsGEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]]‚`¡+o„Eepsg«NAD27+proj=longlat +ellps=clrk66 +datum=NAD27 +no_defsGEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]] P¦P‚R¡.%U„5epsg®Nahrwan 1967+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]]‚V¡-m„3epsg­NAD83+proj=longlat +ellps=GRS80 +datum=NAD83 +no_defsGEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]] °ƒ¡0m…)epsg°NZGD49+proj=longlat +ellps=intl +datum=nzgd49 +no_defsGEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]]‚L¡/'Q„+epsg¯Naparima 1972+proj=longlat +ellps=intl +no_defsGEOGCS["Naparima 1972",DATUM["Naparima_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6271"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4271"]] A‚=¡2Q„epsg²Datum 73+proj=longlat +ellps=intl +no_defsGEOGCS["Datum 73",DATUM["Datum_73",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6274"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4274"]]ƒ;¡1 ]…epsg±NGO 1948+proj=longlat +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +no_defsGEOGCS["NGO 1948",DATUM["NGO_1948",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6273"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4273"]] Y‚8¡4S„ epsg´NSWC 9Z-2+proj=longlat +ellps=WGS66 +no_defsGEOGCS["NSWC 9Z-2",DATUM["NSWC_9Z_2",SPHEROID["NWL 9D",6378145,298.25,AUTHORITY["EPSG","7025"]],AUTHORITY["EPSG","6276"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4276"]]ƒ#¡3 %…epsg³NTF+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +no_defsGEOGCS["NTF",DATUM["Nouvelle_Triangulation_Francaise",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6275"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4275"]] !«g!‚B¡7Q„!epsg·OS(SN)80+proj=longlat +ellps=airy +no_defsGEOGCS["OS(SN)80",DATUM["OS_SN_1980",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],AUTHORITY["EPSG","6279"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4279"]]‚@¡6Q„!epsg¶OSGB70+proj=longlat +ellps=airy +no_defsGEOGCS["OSGB70",DATUM["OSGB_1970_SN",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],AUTHORITY["EPSG","6278"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4278"]]‚Q¡5m„!epsgµOSGB 1936+proj=longlat +ellps=airy +datum=OSGB36 +no_defsGEOGCS["OSGB 1936",DATUM["OSGB_1936",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],AUTHORITY["EPSG","6277"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4277"]] ͹̓h¡9 )g…Iepsg¹Palestine 1923+proj=longlat +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +no_defsGEOGCS["Palestine 1923",DATUM["Palestine_1923",SPHEROID["Clarke 1880 (Benoit)",6378300.789,293.4663155389802,AUTHORITY["EPSG","7010"]],TOWGS84[-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1],AUTHORITY["EPSG","6281"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4281"]]‚C¡8U„#epsg¸Padang+proj=longlat +ellps=bessel +no_defsGEOGCS["Padang",DATUM["Padang_1884",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6280"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4280"]] ƒ¡; „sepsg»GDA94+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]]‚o¡:%i„[epsgºPointe Noire+proj=longlat +a=6378249.2 +b=6356515 +no_defsGEOGCS["Pointe Noire",DATUM["Congo_1960_Pointe_Noire",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6282"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4282"]] >…>‚C¡=!Q„epsg½Qatar 1974+proj=longlat +ellps=intl +no_defsGEOGCS["Qatar 1974",DATUM["Qatar_1974",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6285"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4285"]]‚w¡<%S…epsg¼Pulkovo 1942+proj=longlat +ellps=krass +no_defsGEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]] CºC‚s¡?  „Iepsg¿Qornoq+proj=longlat +ellps=intl +towgs84=164,138,-189,0,0,0,0 +no_defsGEOGCS["Qornoq",DATUM["Qornoq",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[164,138,-189,0,0,0,0],AUTHORITY["EPSG","6287"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4287"]]‚B¡>!W„epsg¾Qatar 1948+proj=longlat +ellps=helmert +no_defsGEOGCS["Qatar 1948",DATUM["Qatar_1948",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6286"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4286"]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó ©epsg© ªepsgª «epsg« ¬epsg¬ ­epsg­ ®epsg® ¯epsg¯ °epsg° ±epsg± ²epsg² ³epsg³ ´epsg´ µepsgµ ¶epsg¶ ·epsg· ¸epsg¸ ¹epsg¹ ºepsgº »epsg» ¼epsg¼ ½epsg½ ¾epsg¾ ¿epsg¿ ÀepsgÀ ÁepsgÁ Ãepsgà ÄepsgÄ ÅepsgÅ ÆepsgÆ ÇepsgÇ ÈepsgÈ ÉepsgÉ ÊepsgÊ ËepsgË ÌepsgÌ ÍepsgÍ ÎepsgÎ ÏepsgÏ ÐepsgÐ ÒepsgÒ ÓepsgÓ ÔepsgÔ ÕepsgÕ ÖepsgÖ ×epsg× ØepsgØ ÙepsgÙ ÚepsgÚ ÛepsgÛ ÜepsgÜ ÝepsgÝ ÞepsgÞ ßepsgß âepsgâ äepsgä æepsgæ øepsgø ùepsgù úepsgú °b‚H¡CS„1epsgÃSAD69+proj=longlat +ellps=GRS67 +no_defsGEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]]‚J¡A!U„)epsgÁAmersfoort+proj=longlat +ellps=bessel +no_defsGEOGCS["Amersfoort",DATUM["Amersfoort",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6289"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4289"]]‚L¡@'Q„+epsgÀLoma Quintana+proj=longlat +ellps=intl +no_defsGEOGCS["Loma Quintana",DATUM["Loma_Quintana",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6288"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4288"]] n‚[¡E!Y„GepsgÅSchwarzeck+proj=longlat +ellps=bess_nam +no_defsGEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]]ƒ¡D - „oepsgÄSapper Hill 1943+proj=longlat +ellps=intl +towgs84=-355,21,72,0,0,0,0 +no_defsGEOGCS["Sapper Hill 1943",DATUM["Sapper_Hill_1943",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY["EPSG","6292"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4292"]] "¿t"‚N¡Hi„'epsgÈSudan+proj=longlat +a=6378249.2 +b=6356515 +no_defsGEOGCS["Sudan",DATUM["Sudan",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6296"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4296"]]‚G¡GU„%epsgÇSerindung+proj=longlat +ellps=bessel +no_defsGEOGCS["Serindung",DATUM["Serindung",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6295"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4295"]]‚=¡FU„epsgÆSegora+proj=longlat +ellps=bessel +no_defsGEOGCS["Segora",DATUM["Segora",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6294"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4294"]]  u ‚d¡J'W„UepsgÊTimbalai 1948+proj=longlat +ellps=evrstSS +no_defsGEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]]ƒ¡I !„gepsgÉTananarive+proj=longlat +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +no_defsGEOGCS["Tananarive",DATUM["Tananarive_1925",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6297"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4297"]] ®W‚;¡MU„epsgÍTokyo+proj=longlat +ellps=bessel +no_defsGEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]]‚S¡LY„CepsgÌTM75+proj=longlat +ellps=mod_airy +no_defsGEOGCS["TM75",DATUM["Geodetic_Datum_of_1965",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],AUTHORITY["EPSG","6300"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4300"]]‚N¡Ks„epsgËTM65+proj=longlat +ellps=mod_airy +datum=ire65 +no_defsGEOGCS["TM65",DATUM["TM65",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],AUTHORITY["EPSG","6299"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4299"]] 6€6‚F¡OW„#epsgÏTC(1948)+proj=longlat +ellps=helmert +no_defsGEOGCS["TC(1948)",DATUM["Trucial_Coast_1948",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6303"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4303"]]‚|¡N ' „MepsgÎTrinidad 1903+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defsGEOGCS["Trinidad 1903",DATUM["Trinidad_1903",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6302"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4302"]] ^‚G¡RU„%epsgÒBern 1938+proj=longlat +ellps=bessel +no_defsGEOGCS["Bern 1938",DATUM["Bern_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6306"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4306"]]ƒ¡P #%„}epsgÐVoirol 1875+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +no_defsGEOGCS["Voirol 1875",DATUM["Voirol_1875",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY["EPSG","6304"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4304"]] XžX‚B¡TU„%epsgÔRT38+proj=longlat +ellps=bessel +no_defsGEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]]‚^¡S-U„EepsgÓNord Sahara 1959+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]] :Š:‚L¡Vi„%epsgÖYoff+proj=longlat +a=6378249.2 +b=6356515 +no_defsGEOGCS["Yoff",DATUM["Yoff",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6310"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4310"]]‚r¡U  „IepsgÕYacare+proj=longlat +ellps=intl +towgs84=-155,171,37,0,0,0,0 +no_defsGEOGCS["Yacare",DATUM["Yacare",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-155,171,37,0,0,0,0],AUTHORITY["EPSG","6309"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4309"]] Þ€Þƒ¡X…5epsgØMGI+proj=longlat +ellps=bessel +datum=hermannskogel +no_defsGEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]]‚|¡W „Uepsg×Zanderij+proj=longlat +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +no_defsGEOGCS["Zanderij",DATUM["Zanderij",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY["EPSG","6311"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4311"]] È*È‚^¡Zs„?epsgÚDHDN+proj=longlat +ellps=bessel +datum=potsdam +no_defsGEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]]ƒR¡Y !O…=epsgÙBelge 1972+proj=longlat +ellps=intl +towgs84=106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1 +no_defsGEOGCS["Belge 1972",DATUM["Reseau_National_Belge_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1],AUTHORITY["EPSG","6313"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4313"]] ú_ú‚a¡\5Q„GepsgÜDealul Piscului 1930+proj=longlat +ellps=intl +no_defsGEOGCS["Dealul Piscului 1930",DATUM["Dealul_Piscului_1930",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6316"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4316"]]ƒ¡[ %!„}epsgÛConakry 1905+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +no_defsGEOGCS["Conakry 1905",DATUM["Conakry_1905",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["EPSG","6315"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4315"]] ›ƒ¡^ „iepsgÞNGN+proj=longlat +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0,0,0,0 +no_defsGEOGCS["NGN",DATUM["National_Geodetic_Network",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-3.2,-5.7,2.8,0,0,0,0],AUTHORITY["EPSG","6318"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4318"]]‚a¡]5S„EepsgÝDealul Piscului 1970+proj=longlat +ellps=krass +no_defsGEOGCS["Dealul Piscului 1970",DATUM["Dealul_Piscului_1970",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6317"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4317"]] ‡¼‡‚1¡bS„epsgâWGS 72+proj=longlat +ellps=WGS72 +no_defsGEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]]‚@¡_S„epsgßKUDAMS+proj=longlat +ellps=GRS80 +no_defsGEOGCS["KUDAMS",DATUM["Kuwait_Utility",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6319"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4319"]] h‚E¡fm„epsgæWGS 84+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defsGEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]ƒ¡d „epsgäWGS 72BE+proj=longlat +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +no_defsGEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]] Q§Q‚R£y%U„5epsgùAntigua 1943+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Antigua 1943",DATUM["Antigua_1943",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6601"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4601"]]‚U£x'U„9epsgøAnguilla 1957+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Anguilla 1957",DATUM["Anguilla_1957",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6600"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4600"]] ÛlÛƒ £{ %„oepsgûGrenada 1953+proj=longlat +ellps=clrk80 +towgs84=72,213.7,93,0,0,0,0 +no_defsGEOGCS["Grenada 1953",DATUM["Grenada_1953",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[72,213.7,93,0,0,0,0],AUTHORITY["EPSG","6603"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4603"]]ƒ£z '„sepsgúDominica 1945+proj=longlat +ellps=clrk80 +towgs84=725,685,536,0,0,0,0 +no_defsGEOGCS["Dominica 1945",DATUM["Dominica_1945",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[725,685,536,0,0,0,0],AUTHORITY["EPSG","6602"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4602"]]  f ‚W£})U„;epsgýSt. Kitts 1955+proj=longlat +ellps=clrk80 +no_defsGEOGCS["St. Kitts 1955",DATUM["St_Kitts_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6605"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4605"]]ƒ£| +„{epsgüMontserrat 1958+proj=longlat +ellps=clrk80 +towgs84=174,359,365,0,0,0,0 +no_defsGEOGCS["Montserrat 1958",DATUM["Montserrat_1958",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[174,359,365,0,0,0,0],AUTHORITY["EPSG","6604"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4604"]] ´h´ƒ0£ -'…epsgÿSt. Vincent 1945+proj=longlat +ellps=clrk80 +towgs84=195.671,332.517,274.607,0,0,0,0 +no_defsGEOGCS["St. Vincent 1945",DATUM["St_Vincent_1945",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[195.671,332.517,274.607,0,0,0,0],AUTHORITY["EPSG","6607"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4607"]]ƒ£~ )„wepsgþSt. Lucia 1955+proj=longlat +ellps=clrk80 +towgs84=-149,128,296,0,0,0,0 +no_defsGEOGCS["St. Lucia 1955",DATUM["St_Lucia_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-149,128,296,0,0,0,0],AUTHORITY["EPSG","6606"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4606"]] 1œ1‚g¤%U„_epsgNAD27(CGQ77)+proj=longlat +ellps=clrk66 +no_defsGEOGCS["NAD27(CGQ77)",DATUM["North_American_Datum_1927_CGQ77",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6609"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4609"]]‚`¤U„WepsgNAD27(76)+proj=longlat +ellps=clrk66 +no_defsGEOGCS["NAD27(76)",DATUM["North_American_Datum_1927_1976",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6608"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4608"]] ɭɃ`¤ )a…?epsgHong Kong 1980+proj=longlat +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +no_defsGEOGCS["Hong Kong 1980",DATUM["Hong_Kong_1980",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425],AUTHORITY["EPSG","6611"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4611"]]‚O¤y„epsgXian 1980+proj=longlat +a=6378140 +b=6356755.288157528 +no_defsGEOGCS["Xian 1980",DATUM["Xian_1980",SPHEROID["Xian 1980",6378140,298.257,AUTHORITY["EPSG","7049"]],AUTHORITY["EPSG","6610"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4610"]] 4}4‚E¤U„'epsgSegara+proj=longlat +ellps=bessel +no_defsGEOGCS["Segara",DATUM["Gunung_Segara",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6613"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4613"]]‚¤ „kepsgJGD2000+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["JGD2000",DATUM["Japanese_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6612"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4612"]] +ƒ ¤ #„kepsgPorto Santo+proj=longlat +ellps=intl +towgs84=-499,-249,314,0,0,0,0 +no_defsGEOGCS["Porto Santo",DATUM["Porto_Santo_1936",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-499,-249,314,0,0,0,0],AUTHORITY["EPSG","6615"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4615"]]ƒQ¤ Y…;epsgQND95+proj=longlat +ellps=intl +towgs84=-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706 +no_defsGEOGCS["QND95",DATUM["Qatar_National_Datum_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706],AUTHORITY["EPSG","6614"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4614"]] CªC‚c¤ #S„[epsg NAD83(CSRS)+proj=longlat +ellps=GRS80 +no_defsGEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]]‚R¤+Q„3epsgSelvagem Grande+proj=longlat +ellps=intl +no_defsGEOGCS["Selvagem Grande",DATUM["Selvagem_Grande",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6616"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4616"]] >¯>‚m¤ „Eepsg SWEREF99+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["SWEREF99",DATUM["SWEREF99",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6619"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4619"]]‚M¤ W„7epsg SAD69+proj=longlat +ellps=aust_SA +no_defsGEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]] íw탤 % „cepsg Fort Marigot+proj=longlat +ellps=intl +towgs84=137,248,-430,0,0,0,0 +no_defsGEOGCS["Fort Marigot",DATUM["Fort_Marigot",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[137,248,-430,0,0,0,0],AUTHORITY["EPSG","6621"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4621"]]ƒ¤ „cepsg Point 58+proj=longlat +ellps=clrk80 +towgs84=-106,-129,165,0,0,0,0 +no_defsGEOGCS["Point 58",DATUM["Point_58",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-106,-129,165,0,0,0,0],AUTHORITY["EPSG","6620"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4620"]] ªƒ¤  „uepsgCSG67+proj=longlat +ellps=intl +towgs84=-186,230,110,0,0,0,0 +no_defsGEOGCS["CSG67",DATUM["Centre_Spatial_Guyanais_1967",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-186,230,110,0,0,0,0],AUTHORITY["EPSG","6623"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4623"]]‚R¤+Q„3epsgGuadeloupe 1948+proj=longlat +ellps=intl +no_defsGEOGCS["Guadeloupe 1948",DATUM["Guadeloupe_1948",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6622"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4622"]] s‚R¤+Q„3epsgMartinique 1938+proj=longlat +ellps=intl +no_defsGEOGCS["Martinique 1938",DATUM["Martinique_1938",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6625"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4625"]]ƒ ¤ „epsgRGFG95+proj=longlat +ellps=GRS80 +towgs84=2,2,-2,0,0,0,0 +no_defsGEOGCS["RGFG95",DATUM["Reseau_Geodesique_Francais_Guyane_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[2,2,-2,0,0,0,0],AUTHORITY["EPSG","6624"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4624"]] ,³,ƒ¤ „wepsgRGR92+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["RGR92",DATUM["Reseau_Geodesique_de_la_Reunion_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6627"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4627"]]‚I¤%Q„'epsgReunion 1947+proj=longlat +ellps=intl +no_defsGEOGCS["Reunion 1947",DATUM["Reunion_1947",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6626"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4626"]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó üepsgü ýepsgý þepsgþ ÿepsgÿ epsg epsg epsg epsg epsg epsg epsg epsg epsg  epsg  epsg  epsg  epsg  epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg  epsg !epsg! "epsg" #epsg# $epsg$ %epsg% &epsg& 1epsg1 2epsg2 3epsg3 4epsg4 5epsg5 6epsg6 7epsg7 8epsg8 9epsg9 :epsg: ;epsg; epsg> ?epsg? @epsg@ @@‚=¤Q„epsgTahaa 54+proj=longlat +ellps=intl +no_defsGEOGCS["Tahaa 54",DATUM["Tahaa_54",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6629"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4629"]]‚{¤  „UepsgTahiti 52+proj=longlat +ellps=intl +towgs84=162,117,154,0,0,0,0 +no_defsGEOGCS["Tahiti 52",DATUM["Tahiti_52",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[162,117,154,0,0,0,0],AUTHORITY["EPSG","6628"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4628"]]of|flrx~„Š–œ¢¨®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôú¡  ¡" ¡$ ¡& ¡( ¡*¡,¡.¡0¡2¡4¡7¡9¡;¡=¡?¡C¡E¡H¡J¡M¡O¡R ¡T!¡V"¡X#¡Z$¡\%¡^&¡b'¡f(£y)£{*£}+£,¤-¤.¤/¤0¤ 1¤ 2¤ 3¤4¤5¤7¤9¤:¤;¤<¤=¤>¤!?¤#@¤%A¤1B¤3C¤5D¤7E¤9F¤;G¤=H¤?I¤AJ¤CK¤EL¤GM¤IN¤KO¤MP¤OQ¤QR¤SS¤UT¤WU¤YW¤[X¤]Y¤_Z¤a[¤c\¤e]¤g^¤i_¤k`¤ma¤ob¤qc¤sd¤ue¤wf¤yg¤{h¤}i¤j¥k¥l¥m¥n¥ o¥ p¥q¥r¥s¥u¥v¥w¥x¥y¥Az¥C{¥E /ª/‚w¤  „OepsgK0 1949+proj=longlat +ellps=intl +towgs84=145,-187,103,0,0,0,0 +no_defsGEOGCS["K0 1949",DATUM["K0_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[145,-187,103,0,0,0,0],AUTHORITY["EPSG","6631"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4631"]]‚R¤+Q„3epsgIGN72 Nuku Hiva+proj=longlat +ellps=intl +no_defsGEOGCS["IGN72 Nuku Hiva",DATUM["IGN72_Nuku_Hiva",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6630"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4630"]] *t*‚F¤#Q„#epsgIGN56 Lifou+proj=longlat +ellps=intl +no_defsGEOGCS["IGN56 Lifou",DATUM["IGN56_Lifou",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6633"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4633"]]ƒ¤ %„eepsgCombani 1950+proj=longlat +ellps=intl +towgs84=-382,-59,-262,0,0,0,0 +no_defsGEOGCS["Combani 1950",DATUM["Combani_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-382,-59,-262,0,0,0,0],AUTHORITY["EPSG","6632"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4632"]] Ú¤ÚƒF¤ !S…!epsgST87 Ouvea+proj=longlat +ellps=intl +towgs84=-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798 +no_defsGEOGCS["ST87 Ouvea",DATUM["ST87_Ouvea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798],AUTHORITY["EPSG","6635"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4635"]]‚X¤/Q„;epsgIGN72 Grand Terre+proj=longlat +ellps=intl +no_defsGEOGCS["IGN72 Grand Terre",DATUM["IGN72_Grande_Terre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6634"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4634"]] àxàƒ¤ % …epsgPerroud 1950+proj=longlat +ellps=intl +towgs84=325,154,172,0,0,0,0 +no_defsGEOGCS["Perroud 1950",DATUM["Pointe_Geologie_Perroud_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[325,154,172,0,0,0,0],AUTHORITY["EPSG","6637"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4637"]]ƒ¤ % „aepsgPetrels 1972+proj=longlat +ellps=intl +towgs84=365,194,166,0,0,0,0 +no_defsGEOGCS["Petrels 1972",DATUM["Petrels_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[365,194,166,0,0,0,0],AUTHORITY["EPSG","6636"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4636"]] <‚4¤Q„ epsgMOP78+proj=longlat +ellps=intl +no_defsGEOGCS["MOP78",DATUM["MOP78",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6639"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4639"]]ƒ@¤ G …5epsgSaint Pierre et Miquelon 1950+proj=longlat +ellps=clrk66 +towgs84=30,430,368,0,0,0,0 +no_defsGEOGCS["Saint Pierre et Miquelon 1950",DATUM["Saint_Pierre_et_Miquelon_1950",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[30,430,368,0,0,0,0],AUTHORITY["EPSG","6638"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4638"]]  g ‚C¤!!Q„epsg!IGN53 Mare+proj=longlat +ellps=intl +no_defsGEOGCS["IGN53 Mare",DATUM["IGN53_Mare",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6641"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4641"]]ƒ¤ …epsg RRAF 1991+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["RRAF 1991",DATUM["Reseau_de_Reference_des_Antilles_Francaises_1991",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6640"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4640"]] Ú¤ÚƒF¤# !S…!epsg#ST71 Belep+proj=longlat +ellps=intl +towgs84=-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7 +no_defsGEOGCS["ST71 Belep",DATUM["ST71_Belep",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7],AUTHORITY["EPSG","6643"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4643"]]‚X¤"/Q„;epsg"ST84 Ile des Pins+proj=longlat +ellps=intl +no_defsGEOGCS["ST84 Ile des Pins",DATUM["ST84_Ile_des_Pins",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6642"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4642"]] !³!ƒ¤%… epsg%RGNC 1991+proj=longlat +ellps=intl +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["RGNC 1991",DATUM["Reseau_Geodesique_Nouvelle_Caledonie_1991",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6645"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4645"]]‚I¤$%Q„'epsg$NEA74 Noumea+proj=longlat +ellps=intl +no_defsGEOGCS["NEA74 Noumea",DATUM["NEA74_Noumea",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6644"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4644"]] °ƒ¤1 )+„]epsg1Reykjavik 1900+proj=longlat +a=6377019.27 +b=6355762.5391 +towgs84=-28,199,5,0,0,0,0 +no_defsGEOGCS["Reykjavik 1900",DATUM["Reykjavik_1900",SPHEROID["Danish 1876",6377019.27,300,AUTHORITY["EPSG","7051"]],TOWGS84[-28,199,5,0,0,0,0],AUTHORITY["EPSG","6657"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4657"]]‚L¤&'Q„+epsg&Grand Comoros+proj=longlat +ellps=intl +no_defsGEOGCS["Grand Comoros",DATUM["Grand_Comoros",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6646"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4646"]] z‚s¤3 „Wepsg3ISN93+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["ISN93",DATUM["Islands_Network_1993",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6659"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4659"]]ƒ¤2 % „_epsg2Hjorsey 1955+proj=longlat +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +no_defsGEOGCS["Hjorsey 1955",DATUM["Hjorsey_1955",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-73,46,-86,0,0,0,0],AUTHORITY["EPSG","6658"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4658"]] Ä2Ä‚j¤5 „Eepsg5LKS92+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["LKS92",DATUM["Latvia_1992",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6661"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4661"]]ƒJ¤4 !W…%epsg4Helle 1954+proj=longlat +ellps=intl +towgs84=982.609,552.753,-540.873,32.3934,-153.257,-96.2266,16.805 +no_defsGEOGCS["Helle 1954",DATUM["Helle_1954",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[982.609,552.753,-540.873,32.3934,-153.257,-96.2266,16.805],AUTHORITY["EPSG","6660"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4660"]] H¡H‚U¤7-Q„7epsg7Porto Santo 1995+proj=longlat +ellps=intl +no_defsGEOGCS["Porto Santo 1995",DATUM["Porto_Santo_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6663"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4663"]]‚[¤61Q„?epsg6IGN72 Grande Terre+proj=longlat +ellps=intl +no_defsGEOGCS["IGN72 Grande Terre",DATUM["IGN72_Grande_Terre",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6634"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4662"]] )“)‚f¤93Q„Sepsg9Azores Central 1995+proj=longlat +ellps=intl +no_defsGEOGCS["Azores Central 1995",DATUM["Azores_Central_Islands_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6665"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4665"]]‚i¤85Q„Wepsg8Azores Oriental 1995+proj=longlat +ellps=intl +no_defsGEOGCS["Azores Oriental 1995",DATUM["Azores_Oriental_Islands_1995",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6664"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4664"]] +¯+ƒ¤; „mepsg;IKBD-92+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["IKBD-92",DATUM["Iraq_Kuwait_Boundary_Datum_1992",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6667"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4667"]]‚M¤:#U„-epsg:Lisbon 1890+proj=longlat +ellps=bessel +no_defsGEOGCS["Lisbon 1890",DATUM["Lisbon_1890",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6666"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4666"]] ‚t¤= „Yepsg=LKS94+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["LKS94",DATUM["Lithuania_1994_ETRS89",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6126"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4669"]]‚}¤<  „aepsg „oepsg>IGM95+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["IGM95",DATUM["Istituto_Geografico_Militaire_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6670"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4670"]] ŒZŒƒJ¤A 53…5epsgAChatham Islands 1979+proj=longlat +ellps=intl +towgs84=174.05,-25.49,112.57,-0,-0,0.554,0.2263 +no_defsGEOGCS["Chatham Islands 1979",DATUM["Chatham_Islands_Datum_1979",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[174.05,-25.49,112.57,-0,-0,0.554,0.2263],AUTHORITY["EPSG","6673"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4673"]]ƒ"¤@ 5 … epsg@Chatham Islands 1971+proj=longlat +ellps=intl +towgs84=175,-38,113,0,0,0,0 +no_defsGEOGCS["Chatham Islands 1971",DATUM["Chatham_Islands_Datum_1971",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[175,-38,113,0,0,0,0],AUTHORITY["EPSG","6672"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4672"]] ÈVȃ ¤C „kepsgCGuam 1963+proj=longlat +ellps=clrk66 +towgs84=-100,-248,259,0,0,0,0 +no_defsGEOGCS["Guam 1963",DATUM["Guam_1963",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-100,-248,259,0,0,0,0],AUTHORITY["EPSG","6675"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4675"]]ƒ&¤B #…1epsgBSIRGAS 2000+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]] l­l‚=¤ES„epsgELao 1993+proj=longlat +ellps=krass +no_defsGEOGCS["Lao 1993",DATUM["Lao_1993",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6677"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4677"]]‚O¤D)S„-epsgDVientiane 1982+proj=longlat +ellps=krass +no_defsGEOGCS["Vientiane 1982",DATUM["Vientiane_1982",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6676"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4676"]] À]Àƒ¤G !!„yepsgGJouik 1961+proj=longlat +ellps=clrk80 +towgs84=-80.01,253.26,291.19,0,0,0,0 +no_defsGEOGCS["Jouik 1961",DATUM["Jouik_1961",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-80.01,253.26,291.19,0,0,0,0],AUTHORITY["EPSG","6679"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4679"]]ƒ¤F %…epsgFLao 1997+proj=longlat +ellps=krass +towgs84=44.585,-131.212,-39.544,0,0,0,0 +no_defsGEOGCS["Lao 1997",DATUM["Lao_National_Datum_1997",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[44.585,-131.212,-39.544,0,0,0,0],AUTHORITY["EPSG","6678"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4678"]] ý\ý‚[¤I+U„AepsgIMauritania 1999+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6681"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4681"]]ƒ ¤H +…epsgHNouakchott 1965+proj=longlat +ellps=clrk80 +towgs84=124.5,-63.5,-281,0,0,0,0 +no_defsGEOGCS["Nouakchott 1965",DATUM["Nouakchott_1965",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[124.5,-63.5,-281,0,0,0,0],AUTHORITY["EPSG","6680"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4680"]] »Š»ƒK¤K E…CepsgKPRS92+proj=longlat +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +no_defsGEOGCS["PRS92",DATUM["Philippine_Reference_System_1992",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06],AUTHORITY["EPSG","6683"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4683"]]‚r¤J#„MepsgJGulshan 303+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defsGEOGCS["Gulshan 303",DATUM["Gulshan_303",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6682"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4682"]] >‚>‚@¤MQ„epsgMGandajika+proj=longlat +ellps=intl +no_defsGEOGCS["Gandajika",DATUM["Gandajika",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6685"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4685"]]‚z¤L  „SepsgLGan 1970+proj=longlat +ellps=intl +towgs84=-133,-321,50,0,0,0,0 +no_defsGEOGCS["Gan 1970",DATUM["Gan_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-133,-321,50,0,0,0,0],AUTHORITY["EPSG","6684"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4684"]]  g ‚Y¤OS„UepsgORGPF+proj=longlat +ellps=GRS80 +no_defsGEOGCS["RGPF",DATUM["Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6687"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4687"]]ƒ¤N %… epsgNMAGNA-SIRGAS+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["MAGNA-SIRGAS",DATUM["Marco_Geocentrico_Nacional_de_Referencia",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6686"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4686"]] á1á‚L¤Q'Q„+epsgQIGN63 Hiva Oa+proj=longlat +ellps=intl +no_defsGEOGCS["IGN63 Hiva Oa",DATUM["IGN63_Hiva_Oa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6689"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4689"]]ƒK¤P #U…'epsgPFatu Iva 72+proj=longlat +ellps=intl +towgs84=347.103,1078.12,2623.92,-33.8875,70.6773,-9.3943,186.074 +no_defsGEOGCS["Fatu Iva 72",DATUM["Fatu_Iva_72",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[347.103,1078.12,2623.92,-33.8875,70.6773,-9.3943,186.074],AUTHORITY["EPSG","6688"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4688"]] ÷¼÷ƒA¤S Q…epsgSMoorea 87+proj=longlat +ellps=intl +towgs84=215.525,149.593,176.229,-3.2624,-1.692,-1.1571,10.4773 +no_defsGEOGCS["Moorea 87",DATUM["Moorea_87",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[215.525,149.593,176.229,-3.2624,-1.692,-1.1571,10.4773],AUTHORITY["EPSG","6691"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4691"]]‚@¤RQ„epsgRTahiti 79+proj=longlat +ellps=intl +no_defsGEOGCS["Tahiti 79",DATUM["Tahiti_79",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6690"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4690"]] ÛjÛƒ ¤U )„gepsgUNakhl-e Ghanem+proj=longlat +ellps=WGS84 +towgs84=0,-0.15,0.68,0,0,0,0 +no_defsGEOGCS["Nakhl-e Ghanem",DATUM["Nakhl_e_Ghanem",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,-0.15,0.68,0,0,0,0],AUTHORITY["EPSG","6693"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4693"]]ƒ¤T !„mepsgTMaupiti 83+proj=longlat +ellps=intl +towgs84=217.037,86.959,23.956,0,0,0,0 +no_defsGEOGCS["Maupiti 83",DATUM["Maupiti_83",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[217.037,86.959,23.956,0,0,0,0],AUTHORITY["EPSG","6692"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4692"]] Çrǃ'¤W %'… epsgWKatanga 1955+proj=longlat +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +no_defsGEOGCS["Katanga 1955",DATUM["Katanga_1955",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY["EPSG","6695"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4695"]]ƒ ¤V „}epsgVPOSGAR 94+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]] "°"ƒ ¤YCU…epsgYIGC 1962 6th Parallel South+proj=longlat +ellps=clrk80 +no_defsGEOGCS["IGC 1962 6th Parallel South",DATUM["IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6697"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4697"]]‚L¤X!U„-epsgXKasai 1953+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Kasai 1953",DATUM["Kasai_1953",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6696"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4696"]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó BepsgB CepsgC DepsgD EepsgE FepsgF GepsgG HepsgH IepsgI JepsgJ KepsgK LepsgL MepsgM NepsgN OepsgO PepsgP QepsgQ RepsgR SepsgS TepsgT UepsgU VepsgV WepsgW XepsgX YepsgY ZepsgZ [epsg[ \epsg\ ]epsg] ^epsg^ _epsg_ `epsg` aepsga bepsgb cepsgc depsgd eepsge fepsgf gepsgg hepsgh iepsgi jepsgj kepsgk lepsgl mepsgm nepsgn oepsgo pepsgp qepsgq repsgr sepsgs tepsgt uepsgu vepsgv wepsgw xepsgx yepsgy zepsgz {epsg{ |epsg| ÀdÀƒ ¤[ '…epsg[Le Pouce 1934+proj=longlat +ellps=clrk80 +towgs84=-770.1,158.4,-498.2,0,0,0,0 +no_defsGEOGCS["Le Pouce 1934",DATUM["Le_Pouce_1934",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-770.1,158.4,-498.2,0,0,0,0],AUTHORITY["EPSG","6699"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4699"]]ƒ¤Z 1 „{epsgZIGN 1962 Kerguelen+proj=longlat +ellps=intl +towgs84=145,-187,103,0,0,0,0 +no_defsGEOGCS["IGN 1962 Kerguelen",DATUM["IGN_1962_Kerguelen",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[145,-187,103,0,0,0,0],AUTHORITY["EPSG","6698"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4698"]] ð¤ðƒ0¤] …/epsg]IGCB 1955+proj=longlat +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +no_defsGEOGCS["IGCB 1955",DATUM["Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0],AUTHORITY["EPSG","6701"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4701"]]‚X¤\)U„=epsg\IGN Astro 1960+proj=longlat +ellps=clrk80 +no_defsGEOGCS["IGN Astro 1960",DATUM["IGN_Astro_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6700"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4700"]]  z ‚l¤_!U„mepsg_Mhast 1951+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Mhast 1951",DATUM["Missao_Hidrografico_Angola_y_Sao_Tome_1951",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6703"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4703"]]ƒ¤^ +„aepsg^Mauritania 1999+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["Mauritania 1999",DATUM["Mauritania_1999",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6702"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4702"]] U¬U‚S¤a-Q„3epsgaMhast (offshore)+proj=longlat +ellps=intl +no_defsGEOGCS["Mhast (offshore)",DATUM["Mhast_offshore",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6705"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4705"]]‚P¤`+Q„/epsg`Mhast (onshore)+proj=longlat +ellps=intl +no_defsGEOGCS["Mhast (onshore)",DATUM["Mhast_onshore",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6704"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4704"]] ¤<¤ƒ¤c -„uepsgcTern Island 1961+proj=longlat +ellps=intl +towgs84=114,-116,-333,0,0,0,0 +no_defsGEOGCS["Tern Island 1961",DATUM["Tern_Island_1961",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[114,-116,-333,0,0,0,0],AUTHORITY["EPSG","6707"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4707"]]ƒ@¤b C!…%epsgbEgypt Gulf of Suez S-650 TL+proj=longlat +ellps=helmert +towgs84=-146.21,112.63,4.05,0,0,0,0 +no_defsGEOGCS["Egypt Gulf of Suez S-650 TL",DATUM["Egypt_Gulf_of_Suez_S_650_TL",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],TOWGS84[-146.21,112.63,4.05,0,0,0,0],AUTHORITY["EPSG","6706"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4706"]] ÉTɃ¤e ' „eepsgeIwo Jima 1945+proj=longlat +ellps=intl +towgs84=145,75,-272,0,0,0,0 +no_defsGEOGCS["Iwo Jima 1945",DATUM["Iwo_Jima_1945",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[145,75,-272,0,0,0,0],AUTHORITY["EPSG","6709"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4709"]]ƒ(¤d 1…epsgdCocos Islands 1965+proj=longlat +ellps=aust_SA +towgs84=-491,-22,435,0,0,0,0 +no_defsGEOGCS["Cocos Islands 1965",DATUM["Cocos_Islands_1965",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],TOWGS84[-491,-22,435,0,0,0,0],AUTHORITY["EPSG","6708"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4708"]] ÐlЃ¤g 1 „{epsggMarcus Island 1952+proj=longlat +ellps=intl +towgs84=124,-234,-25,0,0,0,0 +no_defsGEOGCS["Marcus Island 1952",DATUM["Marcus_Island_1952",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[124,-234,-25,0,0,0,0],AUTHORITY["EPSG","6711"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4711"]]ƒ¤f +„oepsgfSt. Helena 1971+proj=longlat +ellps=intl +towgs84=-320,550,-494,0,0,0,0 +no_defsGEOGCS["St. Helena 1971",DATUM["St_Helena_1971",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-320,550,-494,0,0,0,0],AUTHORITY["EPSG","6710"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4710"]] µ]µƒ$¤i 3… epsgiAyabelle Lighthouse+proj=longlat +ellps=clrk80 +towgs84=-79,-129,145,0,0,0,0 +no_defsGEOGCS["Ayabelle Lighthouse",DATUM["Ayabelle_Lighthouse",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-79,-129,145,0,0,0,0],AUTHORITY["EPSG","6713"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4713"]]ƒ¤h 7 …epsghAscension Island 1958+proj=longlat +ellps=intl +towgs84=-205,107,53,0,0,0,0 +no_defsGEOGCS["Ascension Island 1958",DATUM["Ascension_Island_1958",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-205,107,53,0,0,0,0],AUTHORITY["EPSG","6712"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4712"]] ë€ëƒ¤k +„qepsgkCamp Area Astro+proj=longlat +ellps=intl +towgs84=-104,-129,239,0,0,0,0 +no_defsGEOGCS["Camp Area Astro",DATUM["Camp_Area_Astro",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-104,-129,239,0,0,0,0],AUTHORITY["EPSG","6715"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4715"]]‚|¤j „UepsgjBellevue+proj=longlat +ellps=intl +towgs84=-127,-769,472,0,0,0,0 +no_defsGEOGCS["Bellevue",DATUM["Bellevue",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-127,-769,472,0,0,0,0],AUTHORITY["EPSG","6714"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4714"]] Å\Ѥm ) „yepsgmCape Canaveral+proj=longlat +ellps=clrk66 +towgs84=-2,151,181,0,0,0,0 +no_defsGEOGCS["Cape Canaveral",DATUM["Cape_Canaveral",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[-2,151,181,0,0,0,0],AUTHORITY["EPSG","6717"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4717"]]ƒ ¤l 5…epsglPhoenix Islands 1966+proj=longlat +ellps=intl +towgs84=298,-304,-375,0,0,0,0 +no_defsGEOGCS["Phoenix Islands 1966",DATUM["Phoenix_Islands_1966",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[298,-304,-375,0,0,0,0],AUTHORITY["EPSG","6716"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4716"]] ³ƒ¤o 1 „yepsgoEaster Island 1967+proj=longlat +ellps=intl +towgs84=211,147,111,0,0,0,0 +no_defsGEOGCS["Easter Island 1967",DATUM["Easter_Island_1967",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[211,147,111,0,0,0,0],AUTHORITY["EPSG","6719"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4719"]]‚I¤n%Q„'epsgnSolomon 1968+proj=longlat +ellps=intl +no_defsGEOGCS["Solomon 1968",DATUM["Solomon_1968",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6718"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4718"]] µƒ¤q %„oepsgqFiji 1956+proj=longlat +ellps=intl +towgs84=265.025,384.929,-194.046,0,0,0,0 +no_defsGEOGCS["Fiji 1956",DATUM["Fiji_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[265.025,384.929,-194.046,0,0,0,0],AUTHORITY["EPSG","6721"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4721"]]‚G¤pS„'epsgpFiji 1986+proj=longlat +ellps=WGS72 +no_defsGEOGCS["Fiji 1986",DATUM["Fiji_Geodetic_Datum_1986",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6720"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4720"]] ¶b¶ƒ(¤s /…epsgsGrand Cayman 1959+proj=longlat +ellps=clrk66 +towgs84=67.8,106.1,138.8,0,0,0,0 +no_defsGEOGCS["Grand Cayman 1959",DATUM["Grand_Cayman_1959",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],TOWGS84[67.8,106.1,138.8,0,0,0,0],AUTHORITY["EPSG","6723"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4723"]]ƒ¤r 1„}epsgrSouth Georgia 1968+proj=longlat +ellps=intl +towgs84=-794,119,-298,0,0,0,0 +no_defsGEOGCS["South Georgia 1968",DATUM["South_Georgia_1968",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-794,119,-298,0,0,0,0],AUTHORITY["EPSG","6722"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4722"]] Ãeäu 5 …epsguJohnston Island 1961+proj=longlat +ellps=intl +towgs84=189,-79,-202,0,0,0,0 +no_defsGEOGCS["Johnston Island 1961",DATUM["Johnston_Island_1961",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[189,-79,-202,0,0,0,0],AUTHORITY["EPSG","6725"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4725"]]ƒ¤t /„yepsgtDiego Garcia 1969+proj=longlat +ellps=intl +towgs84=208,-435,-229,0,0,0,0 +no_defsGEOGCS["Diego Garcia 1969",DATUM["Diego_Garcia_1969",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[208,-435,-229,0,0,0,0],AUTHORITY["EPSG","6724"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4724"]] L–L‚F¤w#Q„#epsgwMidway 1961+proj=longlat +ellps=intl +no_defsGEOGCS["Midway 1961",DATUM["Midway_1961",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6727"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4727"]]‚f¤v1U„QepsgvLittle Cayman 1961+proj=longlat +ellps=clrk66 +no_defsGEOGCS["Little Cayman 1961",DATUM["Little_Cayman_1961",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6726"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4726"]] ÌŨ¤y ' „cepsgyPitcairn 1967+proj=longlat +ellps=intl +towgs84=185,165,42,0,0,0,0 +no_defsGEOGCS["Pitcairn 1967",DATUM["Pitcairn_1967",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[185,165,42,0,0,0,0],AUTHORITY["EPSG","6729"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4729"]]ƒ'¤x ; …epsgxPico de las Nieves 1984+proj=longlat +ellps=intl +towgs84=-307,-92,127,0,0,0,0 +no_defsGEOGCS["Pico de las Nieves 1984",DATUM["Pico_de_las_Nieves_1984",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-307,-92,127,0,0,0,0],AUTHORITY["EPSG","6728"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4728"]] í‚탤{ ) „uepsg{Viti Levu 1916+proj=longlat +ellps=clrk80 +towgs84=51,391,-36,0,0,0,0 +no_defsGEOGCS["Viti Levu 1916",DATUM["Viti_Levu_1916",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[51,391,-36,0,0,0,0],AUTHORITY["EPSG","6731"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4731"]]‚z¤z !„UepsgzSanto 1965+proj=longlat +ellps=intl +towgs84=170,42,84,0,0,0,0 +no_defsGEOGCS["Santo 1965",DATUM["Santo_1965",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[170,42,84,0,0,0,0],AUTHORITY["EPSG","6730"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4730"]] ¿S¿ƒ¤} - „qepsg}Wake Island 1952+proj=longlat +ellps=intl +towgs84=276,-57,149,0,0,0,0 +no_defsGEOGCS["Wake Island 1952",DATUM["Wake_Island_1952",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[276,-57,149,0,0,0,0],AUTHORITY["EPSG","6733"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4733"]]ƒ)¤| 71„sepsg|Marshall Islands 1960+proj=longlat +a=6378270 +b=6356794.343434343 +towgs84=102,52,-38,0,0,0,0 +no_defsGEOGCS["Marshall Islands 1960",DATUM["Marshall_Islands_1960",SPHEROID["Hough 1960",6378270,297,AUTHORITY["EPSG","7053"]],TOWGS84[102,52,-38,0,0,0,0],AUTHORITY["EPSG","6732"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4732"]] ét郤 #„cepsgKusaie 1951+proj=longlat +ellps=intl +towgs84=647,1777,-1124,0,0,0,0 +no_defsGEOGCS["Kusaie 1951",DATUM["Kusaie_1951",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[647,1777,-1124,0,0,0,0],AUTHORITY["EPSG","6735"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4735"]]ƒ¤~ %„eepsg~Tristan 1968+proj=longlat +ellps=intl +towgs84=-632,438,-609,0,0,0,0 +no_defsGEOGCS["Tristan 1968",DATUM["Tristan_1968",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-632,438,-609,0,0,0,0],AUTHORITY["EPSG","6734"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4734"]] Ýc݃¥ !„kepsgKorea 2000+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["Korea 2000",DATUM["Geocentric_datum_of_Korea",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6737"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4737"]]ƒ¥ -„epsg€Deception Island+proj=longlat +ellps=clrk80 +towgs84=260,12,-147,0,0,0,0 +no_defsGEOGCS["Deception Island",DATUM["Deception_Island",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[260,12,-147,0,0,0,0],AUTHORITY["EPSG","6736"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4736"]] Þ}Þƒ¥ 1„}epsgƒHong Kong 1963(67)+proj=longlat +ellps=intl +towgs84=-156,-271,-189,0,0,0,0 +no_defsGEOGCS["Hong Kong 1963(67)",DATUM["Hong_Kong_1963_67",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-156,-271,-189,0,0,0,0],AUTHORITY["EPSG","6739"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4739"]]‚¥ ) „Qepsg‚Hong Kong 1963+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defsGEOGCS["Hong Kong 1963",DATUM["Hong_Kong_1963",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6738"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4738"]] ¨g‚S¥S„Cepsg†GDM2000+proj=longlat +ellps=GRS80 +no_defsGEOGCS["GDM2000",DATUM["Geodetic_Datum_of_Malaysia_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6742"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4742"]]‚=¥Q„epsg…FD54+proj=longlat +ellps=intl +no_defsGEOGCS["FD54",DATUM["Faroe_Datum_1954",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6741"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4741"]]‚T¥y„#epsg„PZ-90+proj=longlat +a=6378136 +b=6356751.361745712 +no_defsGEOGCS["PZ-90",DATUM["Parametrop_Zemp_1990",SPHEROID["PZ-90",6378136,298.257839303,AUTHORITY["EPSG","7054"]],AUTHORITY["EPSG","6740"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4740"]]  c ‚R¥%U„5epsgˆNahrwan 1934+proj=longlat +ellps=clrk80 +no_defsGEOGCS["Nahrwan 1934",DATUM["Nahrwan_1934",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6744"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4744"]]ƒ¥ %„{epsg‡Karbala 1979+proj=longlat +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +no_defsGEOGCS["Karbala 1979",DATUM["Karbala_1979",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[84.1,-320.1,218.7,0,0,0,0],AUTHORITY["EPSG","6743"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4743"]] j´j‚F¥ U„+epsgŠPD/83+proj=longlat +ellps=bessel +no_defsGEOGCS["PD/83",DATUM["Potsdam_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6746"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4746"]]‚H¥ U„/epsg‰RD/83+proj=longlat +ellps=bessel +no_defsGEOGCS["RD/83",DATUM["Rauenberg_Datum_83",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6745"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4745"]] Α΃?¥ +/…-epsgŒVanua Levu 1915+proj=longlat +a=6378306.3696 +b=6356571.996 +towgs84=51,391,-36,0,0,0,0 +no_defsGEOGCS["Vanua Levu 1915",DATUM["Vanua_Levu_1915",SPHEROID["Clarke 1880 (international foot)",6378306.3696,293.4663076556349,AUTHORITY["EPSG","7055"]],TOWGS84[51,391,-36,0,0,0,0],AUTHORITY["EPSG","6748"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4748"]]‚k¥ „Iepsg‹GR96+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["GR96",DATUM["Greenland_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6747"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4747"]] Ñhу¥ !#„kepsgŽST87 Ouvea+proj=longlat +ellps=WGS84 +towgs84=-56.263,16.136,-22.856,0,0,0,0 +no_defsGEOGCS["ST87 Ouvea",DATUM["ST87_Ouvea",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-56.263,16.136,-22.856,0,0,0,0],AUTHORITY["EPSG","6750"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4750"]]ƒ¥ …epsgRGNC91-93+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["RGNC91-93",DATUM["Reseau_Geodesique_de_Nouvelle_Caledonie_91_93",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6749"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4749"]] Ύ΃<¥ )/…)epsgViti Levu 1912+proj=longlat +a=6378306.3696 +b=6356571.996 +towgs84=51,391,-36,0,0,0,0 +no_defsGEOGCS["Viti Levu 1912",DATUM["Viti_Levu_1912",SPHEROID["Clarke 1880 (international foot)",6378306.3696,293.4663076556349,AUTHORITY["EPSG","7055"]],TOWGS84[51,391,-36,0,0,0,0],AUTHORITY["EPSG","6752"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4752"]]‚n¥ %„?epsgKertau (RSO)+proj=longlat +a=6377295.664 +b=6356094.667915204 +no_defsGEOGCS["Kertau (RSO)",DATUM["Kertau_RSO",SPHEROID["Everest 1830 (RSO 1969)",6377295.664,300.8017,AUTHORITY["EPSG","7056"]],AUTHORITY["EPSG","6751"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4751"]] #Ë#ƒ$¥ '…epsg’LGD2006+proj=longlat +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +no_defsGEOGCS["LGD2006",DATUM["Libyan_Geodetic_Datum_2006",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-208.406,-109.878,-2.5764,0,0,0,0],AUTHORITY["EPSG","6754"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4754"]]‚1¥Q„epsg‘fk89+proj=longlat +ellps=intl +no_defsGEOGCS["fk89",DATUM["fk89",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6753"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4753"]] B„B‚>¥S„epsg”VN-2000+proj=longlat +ellps=WGS84 +no_defsGEOGCS["VN-2000",DATUM["Vietnam_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6756"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4756"]]‚x¥ „aepsg“DGN95+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó ~epsg~ epsg €epsg€ epsg ‚epsg‚ ƒepsgƒ „epsg„ …epsg… †epsg† ‡epsg‡ ˆepsgˆ ‰epsg‰ ŠepsgŠ ‹epsg‹ ŒepsgŒ epsg ŽepsgŽ epsg epsg ‘epsg‘ ’epsg’ “epsg“ ”epsg” •epsg• –epsg– —epsg— ˜epsg˜ ™epsg™ šepsgš ›epsg› œepsgœ epsg ÁepsgÁ Âepsg Ãepsgà ÄepsgÄ ÅepsgÅ ÆepsgÆ ÇepsgÇ ÈepsgÈ ÉepsgÉ ÊepsgÊ ËepsgË ÍepsgÍ ÎepsgÎ ÏepsgÏ ÐepsgÐ ÑepsgÑ ÒepsgÒ ÓepsgÓ ÔepsgÔ ÕepsgÕ %epsg% &epsg& 'epsg' (epsg( N$epsgN$ N%epsgN% N&epsgN& XÉX‚m¥ „Gepsg–JAD2001+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["JAD2001",DATUM["Jamaica_2001",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6758"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4758"]]‚3¥S„epsg•SVY21+proj=longlat +ellps=WGS84 +no_defsGEOGCS["SVY21",DATUM["SVY21",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6757"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4757"]] ]‚C¥S„%epsg˜WGS 66+proj=longlat +ellps=WGS66 +no_defsGEOGCS["WGS 66",DATUM["World_Geodetic_System_1966",SPHEROID["NWL 9D",6378145,298.25,AUTHORITY["EPSG","7025"]],AUTHORITY["EPSG","6760"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4760"]]ƒ¥ +…epsg—NAD83(NSRS2007)+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]] v‚m¥ „GepsgšBDA2000+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["BDA2000",DATUM["Bermuda_2000",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6762"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4762"]]ƒ¥ „{epsg™HTRS96+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["HTRS96",DATUM["Croatian_Terrestrial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6761"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4761"]] ô‚ôƒ ¥ „}epsgœRSRGD2000+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["RSRGD2000",DATUM["Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6764"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4764"]]‚z¥ '„Uepsg›Pitcairn 2006+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["Pitcairn 2006",DATUM["Pitcairn_2006",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6763"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4763"]] q‚k¥A-g„MepsgÁBern 1898 (Bern)+proj=longlat +ellps=bessel +pm=bern +no_defsGEOGCS["Bern 1898 (Bern)",DATUM["CH1903_Bern",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6801"]],PRIMEM["Bern",7.439583333333333,AUTHORITY["EPSG","8907"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4801"]]ƒ ¥ '„wepsgSlovenia 1996+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defsGEOGCS["Slovenia 1996",DATUM["Slovenia_Geodetic_Datum_1996",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6765"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4765"]] „‚n¥C+g„UepsgÃLisbon (Lisbon)+proj=longlat +ellps=intl +pm=lisbon +no_defsGEOGCS["Lisbon (Lisbon)",DATUM["Lisbon_1937_Lisbon",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6803"]],PRIMEM["Lisbon",-9.131906111111112,AUTHORITY["EPSG","8902"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4803"]]‚x¥B5g„_epsgÂBogota 1975 (Bogota)+proj=longlat +ellps=intl +pm=bogota +no_defsGEOGCS["Bogota 1975 (Bogota)",DATUM["Bogota_1975_Bogota",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6802"]],PRIMEM["Bogota",-74.08091666666667,AUTHORITY["EPSG","8904"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4802"]] ´5´‚}¥E#i„yepsgÅMGI (Ferro)+proj=longlat +ellps=bessel +pm=ferro +no_defsGEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]]ƒG¥D 19…-epsgÄMakassar (Jakarta)+proj=longlat +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +pm=jakarta +no_defsGEOGCS["Makassar (Jakarta)",DATUM["Makassar_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],AUTHORITY["EPSG","6804"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4804"]] ÅŃF¥G #9…9epsgÇNTF (Paris)+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +no_defsGEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]]‚m¥F1c„QepsgÆMonte Mario (Rome)+proj=longlat +ellps=intl +pm=rome +no_defsGEOGCS["Monte Mario (Rome)",DATUM["Monte_Mario_Rome",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6806"]],PRIMEM["Rome",12.45233333333333,AUTHORITY["EPSG","8906"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4806"]] úƒúƒ¥I7k„sepsgÉBelge 1950 (Brussels)+proj=longlat +ellps=intl +pm=brussels +no_defsGEOGCS["Belge 1950 (Brussels)",DATUM["Reseau_National_Belge_1950_Brussels",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6809"]],PRIMEM["Brussels",4.367975,AUTHORITY["EPSG","8910"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4809"]]‚y¥H-m„cepsgÈPadang (Jakarta)+proj=longlat +ellps=bessel +pm=jakarta +no_defsGEOGCS["Padang (Jakarta)",DATUM["Padang_1884_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6808"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4808"]] RƒA¥K 39…epsgËVoirol 1875 (Paris)+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +pm=paris +no_defsGEOGCS["Voirol 1875 (Paris)",DATUM["Voirol_1875_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY["EPSG","6811"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4811"]]ƒ*¥J 1#… epsgÊTananarive (Paris)+proj=longlat +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=paris +no_defsGEOGCS["Tananarive (Paris)",DATUM["Tananarive_1925_Paris",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6810"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4810"]] ÿ…ÿƒ¥N-q„qepsgÎRT38 (Stockholm)+proj=longlat +ellps=bessel +pm=stockholm +no_defsGEOGCS["RT38 (Stockholm)",DATUM["Stockholm_1938_Stockholm",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6814"]],PRIMEM["Stockholm",18.05827777777778,AUTHORITY["EPSG","8911"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4814"]]‚w¥M/m„]epsgÍBatavia (Jakarta)+proj=longlat +ellps=bessel +pm=jakarta +no_defsGEOGCS["Batavia (Jakarta)",DATUM["Batavia_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6813"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4813"]] —‚{¥P-}„WepsgÐCarthage (Paris)+proj=longlat +a=6378249.2 +b=6356515 +pm=paris +no_defsGEOGCS["Carthage (Paris)",DATUM["Carthage_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6816"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4816"]]‚e¥O)k„AepsgÏGreek (Athens)+proj=longlat +ellps=bessel +pm=athens +no_defsGEOGCS["Greek (Athens)",DATUM["Greek_Athens",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6815"]],PRIMEM["Athens",23.7163375,AUTHORITY["EPSG","8912"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4815"]] ««‚k¥R)i„OepsgÒS-JTSK (Ferro)+proj=longlat +ellps=bessel +pm=ferro +no_defsGEOGCS["S-JTSK (Ferro)",DATUM["S_JTSK_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6818"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4818"]]ƒb¥Q +o…3epsgÑNGO 1948 (Oslo)+proj=longlat +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +no_defsGEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]] ü{ü‚{¥T-m„gepsgÔSegara (Jakarta)+proj=longlat +ellps=bessel +pm=jakarta +no_defsGEOGCS["Segara (Jakarta)",DATUM["Gunung_Segara_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6820"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4820"]]ƒ¥S=i„gepsgÓNord Sahara 1959 (Paris)+proj=longlat +ellps=clrk80 +pm=paris +no_defsGEOGCS["Nord Sahara 1959 (Paris)",DATUM["Nord_Sahara_1959_Paris",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6819"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4819"]] WxW‚¦% +!‚wepsg%unnamed ellipse+proj=longlat +a=6376523 +b=6355862.933255573 +pm=2.3372291666985 +no_defsGEOGCS["unnamed ellipse",DATUM["unknown",SPHEROID["unnamed",6376523,308.6399999999991]],PRIMEM["unnamed",2.3372291666985],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4901"]]ƒ¥U3}„cepsgÕVoirol 1879 (Paris)+proj=longlat +a=6378249.2 +b=6356515 +pm=paris +no_defsGEOGCS["Voirol 1879 (Paris)",DATUM["Voirol_1879_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6821"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4821"]] ýŽýƒ ¦' 5„[epsg'Madrid 1870 (Madrid)+proj=longlat +a=6378298.3 +b=6356657.142669561 +pm=madrid +no_defsGEOGCS["Madrid 1870 (Madrid)",DATUM["Madrid_1870_Madrid",SPHEROID["Struve 1860",6378298.3,294.73,AUTHORITY["EPSG","7028"]],AUTHORITY["EPSG","6903"]],PRIMEM["Madrid",-3.687938888888889,AUTHORITY["EPSG","8905"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4903"]]‚n¦& # „5epsg&NDG (Paris)+proj=longlat +a=6376523 +b=6355862.933255573 +pm=paris +no_defsGEOGCS["NDG (Paris)",DATUM["Nord_de_Guerre_Paris",SPHEROID["Plessis 1817",6376523,308.64,AUTHORITY["EPSG","7027"]],AUTHORITY["EPSG","6902"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4902"]] }}‚¦(5k„iepsg(Lisbon 1890 (Lisbon)+proj=longlat +ellps=bessel +pm=lisbon +no_defsGEOGCS["Lisbon 1890 (Lisbon)",DATUM["Lisbon_1890_Lisbon",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6904"]],PRIMEM["Lisbon",-9.131906111111112,AUTHORITY["EPSG","8902"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4904"]] ¹¹†Bœ$ Q‚Š%epsgN$Pulkovo 1995 / Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 4",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20004"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†Bœ% Q‚Š%epsgN%Pulkovo 1995 / Gauss-Kruger zone 5+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 5",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20005"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†Bœ& Q‚Š%epsgN&Pulkovo 1995 / Gauss-Kruger zone 6+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 6",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20006"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†Bœ' Q‚Š%epsgN'Pulkovo 1995 / Gauss-Kruger zone 7+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 7",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20007"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†Bœ( Q‚Š%epsgN(Pulkovo 1995 / Gauss-Kruger zone 8+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 8",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20008"],AXIS["X",NORTH],AXIS["Y",EAST]] ¹¹†Bœ) Q‚Š%epsgN)Pulkovo 1995 / Gauss-Kruger zone 9+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 9",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",9500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20009"],AXIS["X",NORTH],AXIS["Y",EAST]] µµ†Fœ* S‚Š)epsgN*Pulkovo 1995 / Gauss-Kruger zone 10+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 10",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",10500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20010"],AXIS["X",NORTH],AXIS["Y",EAST]] µµ†Fœ+ S‚Š)epsgN+Pulkovo 1995 / Gauss-Kruger zone 11+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 11",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",11500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20011"],AXIS["X",NORTH],AXIS["Y",EAST]] µµ†Fœ, S‚Š)epsgN,Pulkovo 1995 / Gauss-Kruger zone 12+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 12",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",12500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20012"],AXIS["X",NORTH],AXIS["Y",EAST]] µµ†Fœ- S‚Š)epsgN-Pulkovo 1995 / Gauss-Kruger zone 13+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 13",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",13500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20013"],AXIS["X",NORTH],AXIS["Y",EAST]] µµ†Fœ. S‚Š)epsgN.Pulkovo 1995 / Gauss-Kruger zone 14+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 14",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",14500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20014"],AXIS["X",NORTH],AXIS["Y",EAST]] µµ†Fœ/ S‚Š)epsgN/Pulkovo 1995 / Gauss-Kruger zone 15+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 15",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",15500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20015"],AXIS["X",NORTH],AXIS["Y",EAST]] µµ†Fœ0 S‚Š)epsgN0Pulkovo 1995 / Gauss-Kruger zone 16+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 16",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",16500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20016"],AXIS["X",NORTH],AXIS["Y",EAST]] µµ†Fœ1 S‚Š)epsgN1Pulkovo 1995 / Gauss-Kruger zone 17+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 17",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",17500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20017"],AXIS["X",NORTH],AXIS["Y",EAST]] ³³†Hœ2 S‚Š+epsgN2Pulkovo 1995 / Gauss-Kruger zone 18+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 18",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",18500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20018"],AXIS["X",NORTH],AXIS["Y",EAST]] ³³†Hœ3 S‚Š+epsgN3Pulkovo 1995 / Gauss-Kruger zone 19+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 19",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",19500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20019"],AXIS["X",NORTH],AXIS["Y",EAST]] ³³†Hœ4 S‚Š+epsgN4Pulkovo 1995 / Gauss-Kruger zone 20+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 20",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",20500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20020"],AXIS["X",NORTH],AXIS["Y",EAST]] ³³†Hœ5 S‚Š+epsgN5Pulkovo 1995 / Gauss-Kruger zone 21+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 21",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",21500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20021"],AXIS["X",NORTH],AXIS["Y",EAST]] ³³†Hœ6 S‚Š+epsgN6Pulkovo 1995 / Gauss-Kruger zone 22+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 22",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",22500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20022"],AXIS["X",NORTH],AXIS["Y",EAST]] ³³†Hœ7 S‚Š+epsgN7Pulkovo 1995 / Gauss-Kruger zone 23+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 23",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",23500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20023"],AXIS["X",NORTH],AXIS["Y",EAST]] ³³†Hœ8 S‚Š+epsgN8Pulkovo 1995 / Gauss-Kruger zone 24+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 24",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",24500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20024"],AXIS["X",NORTH],AXIS["Y",EAST]] ³³†Hœ9 S‚Š+epsgN9Pulkovo 1995 / Gauss-Kruger zone 25+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 25",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",25500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20025"],AXIS["X",NORTH],AXIS["Y",EAST]] ³³†Hœ: S‚Š+epsgN:Pulkovo 1995 / Gauss-Kruger zone 26+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 26",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",26500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20026"],AXIS["X",NORTH],AXIS["Y",EAST]] ³³†Hœ; S‚Š+epsgN;Pulkovo 1995 / Gauss-Kruger zone 27+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 27",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",27500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20027"],AXIS["X",NORTH],AXIS["Y",EAST]] ³³†Hœ< S‚Š+epsgN S‚Š+epsgN>Pulkovo 1995 / Gauss-Kruger zone 30+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 30",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",30500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20030"],AXIS["X",NORTH],AXIS["Y",EAST]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó N(epsgN( N)epsgN) N*epsgN* N+epsgN+ N,epsgN, N-epsgN- N.epsgN. N/epsgN/ N0epsgN0 N1epsgN1 N2epsgN2 N3epsgN3 N4epsgN4 N5epsgN5 N6epsgN6 N7epsgN7 N8epsgN8 N9epsgN9 N:epsgN: N;epsgN; NepsgN> N?epsgN? N@epsgN@ N`epsgN` NaepsgNa NbepsgNb NcepsgNc NdepsgNd NeepsgNe NfepsgNf NgepsgNg NhepsgNh NiepsgNi NjepsgNj NkepsgNk NlepsgNl NmepsgNm NnepsgNn NoepsgNo NpepsgNp NqepsgNq NrepsgNr NsepsgNs NtepsgNt NuepsgNu NvepsgNv NwepsgNw NxepsgNx NyepsgNy NzepsgNz N{epsgN{ N|epsgN| N§epsgN§ N¨epsgN¨ N©epsgN© NªepsgNª OepsgO ±±†Jœ? S‚Š-epsgN?Pulkovo 1995 / Gauss-Kruger zone 31+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 31",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",31500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20031"],AXIS["X",NORTH],AXIS["Y",EAST]] ±±†Jœ@ S‚Š-epsgN@Pulkovo 1995 / Gauss-Kruger zone 32+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger zone 32",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",32500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20032"],AXIS["X",NORTH],AXIS["Y",EAST]] ©©†Rœ` c‚Š5epsgN`Pulkovo 1995 / Gauss-Kruger 4N (deprecated)+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 4N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20064"],AXIS["X",NORTH],AXIS["Y",EAST]] ©©†Rœa c‚Š5epsgNaPulkovo 1995 / Gauss-Kruger 5N (deprecated)+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 5N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20065"],AXIS["X",NORTH],AXIS["Y",EAST]] ©©†Rœb c‚Š5epsgNbPulkovo 1995 / Gauss-Kruger 6N (deprecated)+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 6N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20066"],AXIS["X",NORTH],AXIS["Y",EAST]] ©©†Rœc c‚Š5epsgNcPulkovo 1995 / Gauss-Kruger 7N (deprecated)+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 7N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20067"],AXIS["X",NORTH],AXIS["Y",EAST]]cTãTZ`flrx~„Š‘˜Ÿ¦­´»ÂÉÐ×Þåìóú$+29@GNU\cjqx†”›¢©°·¾ÅÌÓÚáèïöý  '.5<CJQX_fmt{‚‰—ž¥¬³ºÁÈÏÖÝäëòù}¥I~¥K¥N€¥P¥R‚¥Tƒ¦%„¦'…¦(†œ$‡œ%ˆœ&‰œ'Šœ(‹œ)Œœ*œ+Žœ,œ-œ.‘œ/’œ0“œ1”œ2•œ3–œ4—œ5˜œ6™œ7šœ8›œ9œœ:œ;žœ<Ÿœ= œ>¢œ?£œ@¤œ`¥œa¦œb§œc©œdªœe«œf¬œg­œh®œi¯œj°œk±œl²œm³œn´œoµœp¶œq·œr¸œs¹œtºœu»œv¼œw½œx¾œy¿œzÀœ{Áœ|Â'Ã(Ä)Å*ÆžÇžÈžÉžÊžËžÌžÍžΞ Ïž!О"Ñž|Òž}Óž~ÔžÕŸÖŸן؟ٟڟ۟ܟTÝŸUÞŸVàŸWáŸXâ  ©©†Rœd c‚Š5epsgNdPulkovo 1995 / Gauss-Kruger 8N (deprecated)+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 8N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20068"],AXIS["X",NORTH],AXIS["Y",EAST]] ©©†Rœe c‚Š5epsgNePulkovo 1995 / Gauss-Kruger 9N (deprecated)+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 9N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20069"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†Tœf e‚Š7epsgNfPulkovo 1995 / Gauss-Kruger 10N (deprecated)+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 10N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20070"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†Tœg e‚Š7epsgNgPulkovo 1995 / Gauss-Kruger 11N (deprecated)+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 11N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20071"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†Tœh e‚Š7epsgNhPulkovo 1995 / Gauss-Kruger 12N (deprecated)+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 12N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20072"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†Tœi e‚Š7epsgNiPulkovo 1995 / Gauss-Kruger 13N (deprecated)+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 13N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20073"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†Tœj e‚Š7epsgNjPulkovo 1995 / Gauss-Kruger 14N (deprecated)+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 14N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20074"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†Tœk e‚Š7epsgNkPulkovo 1995 / Gauss-Kruger 15N (deprecated)+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 15N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20075"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†Tœl e‚Š7epsgNlPulkovo 1995 / Gauss-Kruger 16N (deprecated)+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 16N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20076"],AXIS["X",NORTH],AXIS["Y",EAST]] §§†Tœm e‚Š7epsgNmPulkovo 1995 / Gauss-Kruger 17N (deprecated)+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 17N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20077"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†Vœn e‚Š9epsgNnPulkovo 1995 / Gauss-Kruger 18N (deprecated)+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 18N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20078"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†Vœo e‚Š9epsgNoPulkovo 1995 / Gauss-Kruger 19N (deprecated)+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 19N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20079"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†Vœp e‚Š9epsgNpPulkovo 1995 / Gauss-Kruger 20N (deprecated)+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 20N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20080"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†Vœq e‚Š9epsgNqPulkovo 1995 / Gauss-Kruger 21N (deprecated)+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 21N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20081"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†Vœr e‚Š9epsgNrPulkovo 1995 / Gauss-Kruger 22N (deprecated)+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 22N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20082"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†Vœs e‚Š9epsgNsPulkovo 1995 / Gauss-Kruger 23N (deprecated)+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 23N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20083"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†Vœt e‚Š9epsgNtPulkovo 1995 / Gauss-Kruger 24N (deprecated)+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 24N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20084"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†Vœu e‚Š9epsgNuPulkovo 1995 / Gauss-Kruger 25N (deprecated)+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 25N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20085"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†Vœv e‚Š9epsgNvPulkovo 1995 / Gauss-Kruger 26N (deprecated)+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 26N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20086"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†Vœw e‚Š9epsgNwPulkovo 1995 / Gauss-Kruger 27N (deprecated)+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 27N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20087"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†Vœx e‚Š9epsgNxPulkovo 1995 / Gauss-Kruger 28N (deprecated)+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 28N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20088"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†Vœy e‚Š9epsgNyPulkovo 1995 / Gauss-Kruger 29N (deprecated)+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 29N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20089"],AXIS["X",NORTH],AXIS["Y",EAST]] ¥¥†Vœz e‚Š9epsgNzPulkovo 1995 / Gauss-Kruger 30N (deprecated)+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 30N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20090"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Xœ{ e‚Š;epsgN{Pulkovo 1995 / Gauss-Kruger 31N (deprecated)+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 31N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20091"],AXIS["X",NORTH],AXIS["Y",EAST]] ££†Xœ| e‚Š;epsgN|Pulkovo 1995 / Gauss-Kruger 32N (deprecated)+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +units=m +no_defsPROJCS["Pulkovo 1995 / Gauss-Kruger 32N (deprecated)",GEOGCS["Pulkovo 1995",DATUM["Pulkovo_1995",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[24.82,-131.21,-82.66,-0,-0,0.16,-0.12],AUTHORITY["EPSG","6200"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4200"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20092"],AXIS["X",NORTH],AXIS["Y",EAST]] EE…6'9q‰MepsgN§Adindan / UTM zone 35N+proj=utm +zone=35 +ellps=clrk80 +units=m +no_defsPROJCS["Adindan / UTM zone 35N",GEOGCS["Adindan",DATUM["Adindan",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6201"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4201"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20135"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] EE…6(9q‰MepsgN¨Adindan / UTM zone 36N+proj=utm +zone=36 +ellps=clrk80 +units=m +no_defsPROJCS["Adindan / UTM zone 36N",GEOGCS["Adindan",DATUM["Adindan",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6201"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4201"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20136"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] EE…6)9q‰MepsgN©Adindan / UTM zone 37N+proj=utm +zone=37 +ellps=clrk80 +units=m +no_defsPROJCS["Adindan / UTM zone 37N",GEOGCS["Adindan",DATUM["Adindan",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6201"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4201"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20137"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] EE…6*9q‰MepsgNªAdindan / UTM zone 38N+proj=utm +zone=38 +ellps=clrk80 +units=m +no_defsPROJCS["Adindan / UTM zone 38N",GEOGCS["Adindan",DATUM["Adindan",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6201"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4201"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20138"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\ž 3Š epsgOAGD66 / AMG zone 48+proj=utm +zone=48 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 48",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20248"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\ž 3Š epsgOAGD66 / AMG zone 49+proj=utm +zone=49 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 49",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20249"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\ž 3Š epsgOAGD66 / AMG zone 50+proj=utm +zone=50 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 50",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20250"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\ž 3Š epsgOAGD66 / AMG zone 51+proj=utm +zone=51 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 51",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20251"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\ž 3Š epsgOAGD66 / AMG zone 52+proj=utm +zone=52 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 52",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20252"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\ž 3Š epsgOAGD66 / AMG zone 53+proj=utm +zone=53 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 53",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20253"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\ž 3Š epsgOAGD66 / AMG zone 54+proj=utm +zone=54 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 54",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20254"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\ž 3Š epsgOAGD66 / AMG zone 55+proj=utm +zone=55 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 55",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20255"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\ž 3Š epsgO AGD66 / AMG zone 56+proj=utm +zone=56 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 56",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20256"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\ž! 3Š epsgO!AGD66 / AMG zone 57+proj=utm +zone=57 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 57",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20257"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\ž" 3Š epsgO"AGD66 / AMG zone 58+proj=utm +zone=58 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD66 / AMG zone 58",GEOGCS["AGD66",DATUM["Australian_Geodetic_Datum_1966",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6202"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4202"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20258"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\ž| 3Š epsgO|AGD84 / AMG zone 48+proj=utm +zone=48 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 48",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20348"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\ž} 3Š epsgO}AGD84 / AMG zone 49+proj=utm +zone=49 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 49",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20349"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\ž~ 3Š epsgO~AGD84 / AMG zone 50+proj=utm +zone=50 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 50",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20350"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\ž 3Š epsgOAGD84 / AMG zone 51+proj=utm +zone=51 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 51",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20351"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\Ÿ 3Š epsgO€AGD84 / AMG zone 52+proj=utm +zone=52 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 52",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20352"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\Ÿ 3Š epsgOAGD84 / AMG zone 53+proj=utm +zone=53 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 53",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20353"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\Ÿ 3Š epsgO‚AGD84 / AMG zone 54+proj=utm +zone=54 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 54",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20354"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\Ÿ 3Š epsgOƒAGD84 / AMG zone 55+proj=utm +zone=55 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 55",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20355"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\Ÿ 3Š epsgO„AGD84 / AMG zone 56+proj=utm +zone=56 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 56",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20356"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\Ÿ 3Š epsgO…AGD84 / AMG zone 57+proj=utm +zone=57 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 57",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20357"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\Ÿ 3Š epsgO†AGD84 / AMG zone 58+proj=utm +zone=58 +south +ellps=aust_SA +units=m +no_defsPROJCS["AGD84 / AMG zone 58",GEOGCS["AGD84",DATUM["Australian_Geodetic_Datum_1984",SPHEROID["Australian National Spheroid",6378160,298.25,AUTHORITY["EPSG","7003"]],AUTHORITY["EPSG","6203"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4203"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20358"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ==…>ŸT?m‰[epsgOÔAin el Abd / UTM zone 36N+proj=utm +zone=36 +ellps=intl +units=m +no_defsPROJCS["Ain el Abd / UTM zone 36N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20436"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ==…>ŸU?m‰[epsgOÕAin el Abd / UTM zone 37N+proj=utm +zone=37 +ellps=intl +units=m +no_defsPROJCS["Ain el Abd / UTM zone 37N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20437"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ==…>ŸV?m‰[epsgOÖAin el Abd / UTM zone 38N+proj=utm +zone=38 +ellps=intl +units=m +no_defsPROJCS["Ain el Abd / UTM zone 38N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20438"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó OepsgO OepsgO OepsgO OepsgO OepsgO OepsgO O epsgO O!epsgO! O"epsgO" O|epsgO| O}epsgO} O~epsgO~ OepsgO O€epsgO€ OepsgO O‚epsgO‚ OƒepsgOƒ O„epsgO„ O…epsgO… O†epsgO† OÔepsgOÔ OÕepsgOÕ OÖepsgOÖ O×epsgO× OØepsgOØ PepsgP P:epsgP: P;epsgP; Q6epsgQ6 Q7epsgQ7 QVepsgQV QWepsgQW QXepsgQX QÆepsgQÆ QÇepsgQÇ QÈepsgQÈ R+epsgR+ R,epsgR, R-epsgR- RgepsgRg RhepsgRh RiepsgRi RlepsgRl RœepsgRœ RepsgR RžepsgRž S+epsgS+ S,epsgS, S¥epsgS¥ S¦epsgS¦ S§epsgS§ S¨epsgS¨ S©epsgS© SªepsgSª S«epsgS« S¬epsgS¬ S­epsgS­ S®epsgS® S¯epsgS¯ ==…>ŸW?m‰[epsgO×Ain el Abd / UTM zone 39N+proj=utm +zone=39 +ellps=intl +units=m +no_defsPROJCS["Ain el Abd / UTM zone 39N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20439"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ==…>ŸX?m‰[epsgOØAin el Abd / UTM zone 40N+proj=utm +zone=40 +ellps=intl +units=m +no_defsPROJCS["Ain el Abd / UTM zone 40N",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20440"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ==…> ?m‰[epsgPAin el Abd / Bahrain Grid+proj=utm +zone=39 +ellps=intl +units=m +no_defsPROJCS["Ain el Abd / Bahrain Grid",GEOGCS["Ain el Abd",DATUM["Ain_el_Abd_1970",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6204"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4204"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20499"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …h : 9)‰wepsgP:Afgooye / UTM zone 38N+proj=utm +zone=38 +ellps=krass +towgs84=-43,-163,45,0,0,0,0 +units=m +no_defsPROJCS["Afgooye / UTM zone 38N",GEOGCS["Afgooye",DATUM["Afgooye",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-43,-163,45,0,0,0,0],AUTHORITY["EPSG","6205"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4205"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20538"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …h ; 9)‰wepsgP;Afgooye / UTM zone 39N+proj=utm +zone=39 +ellps=krass +towgs84=-43,-163,45,0,0,0,0 +units=m +no_defsPROJCS["Afgooye / UTM zone 39N",GEOGCS["Afgooye",DATUM["Afgooye",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[-43,-163,45,0,0,0,0],AUTHORITY["EPSG","6205"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4205"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","20539"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¿¿†<¢6 asŠ-epsgQ6Lisbon (Lisbon) / Portuguese National Grid+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0=200000 +y_0=300000 +ellps=intl +pm=lisbon +units=m +no_defsPROJCS["Lisbon (Lisbon) / Portuguese National Grid",GEOGCS["Lisbon (Lisbon)",DATUM["Lisbon_1937_Lisbon",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6803"]],PRIMEM["Lisbon",-9.131906111111112,AUTHORITY["EPSG","8902"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4803"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",1],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","20790"],AXIS["X",EAST],AXIS["Y",NORTH]] å冢7 O_ŠepsgQ7Lisbon (Lisbon) / Portuguese Grid+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0=0 +y_0=0 +ellps=intl +pm=lisbon +units=m +no_defsPROJCS["Lisbon (Lisbon) / Portuguese Grid",GEOGCS["Lisbon (Lisbon)",DATUM["Lisbon_1937_Lisbon",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6803"]],PRIMEM["Lisbon",-9.131906111111112,AUTHORITY["EPSG","8902"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4803"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",1],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","20791"],AXIS["X",EAST],AXIS["Y",NORTH]] GG…4¢V5{‰CepsgQVAratu / UTM zone 22S+proj=utm +zone=22 +south +ellps=intl +units=m +no_defsPROJCS["Aratu / UTM zone 22S",GEOGCS["Aratu",DATUM["Aratu",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6208"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4208"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20822"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] GG…4¢W5{‰CepsgQWAratu / UTM zone 23S+proj=utm +zone=23 +south +ellps=intl +units=m +no_defsPROJCS["Aratu / UTM zone 23S",GEOGCS["Aratu",DATUM["Aratu",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6208"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4208"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20823"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] GG…4¢X5{‰CepsgQXAratu / UTM zone 24S+proj=utm +zone=24 +south +ellps=intl +units=m +no_defsPROJCS["Aratu / UTM zone 24S",GEOGCS["Aratu",DATUM["Aratu",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6208"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4208"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20824"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …c£F ;+‰iepsgQÆArc 1950 / UTM zone 34S+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defsPROJCS["Arc 1950 / UTM zone 34S",GEOGCS["Arc 1950",DATUM["Arc_1950",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],AUTHORITY["EPSG","6209"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4209"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20934"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …c£G ;+‰iepsgQÇArc 1950 / UTM zone 35S+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defsPROJCS["Arc 1950 / UTM zone 35S",GEOGCS["Arc 1950",DATUM["Arc_1950",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],AUTHORITY["EPSG","6209"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4209"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20935"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …c£H ;+‰iepsgQÈArc 1950 / UTM zone 36S+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defsPROJCS["Arc 1950 / UTM zone 36S",GEOGCS["Arc 1950",DATUM["Arc_1950",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],AUTHORITY["EPSG","6209"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4209"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","20936"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 33…H¤+;‰aepsgR+Arc 1960 / UTM zone 35S+proj=utm +zone=35 +south +ellps=clrk80 +units=m +no_defsPROJCS["Arc 1960 / UTM zone 35S",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","21035"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 33…H¤,;‰aepsgR,Arc 1960 / UTM zone 36S+proj=utm +zone=36 +south +ellps=clrk80 +units=m +no_defsPROJCS["Arc 1960 / UTM zone 36S",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","21036"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 33…H¤-;‰aepsgR-Arc 1960 / UTM zone 37S+proj=utm +zone=37 +south +ellps=clrk80 +units=m +no_defsPROJCS["Arc 1960 / UTM zone 37S",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","21037"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA…:¤g;q‰SepsgRgArc 1960 / UTM zone 35N+proj=utm +zone=35 +ellps=clrk80 +units=m +no_defsPROJCS["Arc 1960 / UTM zone 35N",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21095"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA…:¤h;q‰SepsgRhArc 1960 / UTM zone 36N+proj=utm +zone=36 +ellps=clrk80 +units=m +no_defsPROJCS["Arc 1960 / UTM zone 36N",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21096"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA…:¤i;q‰SepsgRiArc 1960 / UTM zone 37N+proj=utm +zone=37 +ellps=clrk80 +units=m +no_defsPROJCS["Arc 1960 / UTM zone 37N",GEOGCS["Arc 1960",DATUM["Arc_1960",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6210"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4210"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21097"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …v¤l YS‰IepsgRlBatavia (Jakarta) / NEIEZ (deprecated)+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +pm=jakarta +units=m +no_defsPROJCS["Batavia (Jakarta) / NEIEZ (deprecated)",GEOGCS["Batavia (Jakarta)",DATUM["Batavia_Jakarta",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6813"]],PRIMEM["Jakarta",106.8077194444444,AUTHORITY["EPSG","8908"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4813"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",110],PARAMETER["scale_factor",0.997],PARAMETER["false_easting",3900000],PARAMETER["false_northing",900000],AUTHORITY["EPSG","21100"],AXIS["X",EAST],AXIS["Y",NORTH]] 88…C¥9‰YepsgRœBatavia / UTM zone 48S+proj=utm +zone=48 +south +ellps=bessel +units=m +no_defsPROJCS["Batavia / UTM zone 48S",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","21148"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 88…C¥9‰YepsgRBatavia / UTM zone 49S+proj=utm +zone=49 +south +ellps=bessel +units=m +no_defsPROJCS["Batavia / UTM zone 49S",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","21149"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 88…C¥9‰YepsgRžBatavia / UTM zone 50S+proj=utm +zone=50 +south +ellps=bessel +units=m +no_defsPROJCS["Batavia / UTM zone 50S",GEOGCS["Batavia",DATUM["Batavia",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6211"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4211"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","21150"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ““†h¦+ ]‚'ŠUepsgS+Barbados 1938 / British West Indies Grid+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=31.95,300.99,419.19,0,0,0,0 +units=m +no_defsPROJCS["Barbados 1938 / British West Indies Grid",GEOGCS["Barbados 1938",DATUM["Barbados_1938",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHORITY["EPSG","6212"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4212"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-62],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21291"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY‡"¦, Y‚Y‹epsgS,Barbados 1938 / Barbados National Grid+proj=tmerc +lat_0=13.17638888888889 +lon_0=-59.55972222222222 +k=0.9999986 +x_0=30000 +y_0=75000 +ellps=clrk80 +towgs84=31.95,300.99,419.19,0,0,0,0 +units=m +no_defsPROJCS["Barbados 1938 / Barbados National Grid",GEOGCS["Barbados 1938",DATUM["Barbados_1938",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHORITY["EPSG","6212"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4212"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",13.17638888888889],PARAMETER["central_meridian",-59.55972222222222],PARAMETER["scale_factor",0.9999986],PARAMETER["false_easting",30000],PARAMETER["false_northing",75000],AUTHORITY["EPSG","21292"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …h§% S;‰KepsgS¥Beijing 1954 / Gauss-Kruger zone 13+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 13",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",13500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21413"],AXIS["X",NORTH],AXIS["Y",EAST]] …h§& S;‰KepsgS¦Beijing 1954 / Gauss-Kruger zone 14+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 14",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",14500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21414"],AXIS["X",NORTH],AXIS["Y",EAST]] …h§' S;‰KepsgS§Beijing 1954 / Gauss-Kruger zone 15+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 15",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",15500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21415"],AXIS["X",NORTH],AXIS["Y",EAST]] …h§( S;‰KepsgS¨Beijing 1954 / Gauss-Kruger zone 16+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 16",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",16500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21416"],AXIS["X",NORTH],AXIS["Y",EAST]] …h§) S;‰KepsgS©Beijing 1954 / Gauss-Kruger zone 17+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 17",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",17500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21417"],AXIS["X",NORTH],AXIS["Y",EAST]] …j§* S=‰MepsgSªBeijing 1954 / Gauss-Kruger zone 18+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 18",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",18500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21418"],AXIS["X",NORTH],AXIS["Y",EAST]] …j§+ S=‰MepsgS«Beijing 1954 / Gauss-Kruger zone 19+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 19",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",19500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21419"],AXIS["X",NORTH],AXIS["Y",EAST]] …j§, S=‰MepsgS¬Beijing 1954 / Gauss-Kruger zone 20+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 20",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",20500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21420"],AXIS["X",NORTH],AXIS["Y",EAST]] …j§- S=‰MepsgS­Beijing 1954 / Gauss-Kruger zone 21+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 21",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",21500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21421"],AXIS["X",NORTH],AXIS["Y",EAST]] …j§. S=‰MepsgS®Beijing 1954 / Gauss-Kruger zone 22+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 22",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",22500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21422"],AXIS["X",NORTH],AXIS["Y",EAST]] …j§/ S=‰MepsgS¯Beijing 1954 / Gauss-Kruger zone 23+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger zone 23",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",23500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21423"],AXIS["X",NORTH],AXIS["Y",EAST]] …b§M Q7‰EepsgSÍBeijing 1954 / Gauss-Kruger CM 75E+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 75E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21453"],AXIS["X",NORTH],AXIS["Y",EAST]] …b§N Q7‰EepsgSÎBeijing 1954 / Gauss-Kruger CM 81E+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 81E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21454"],AXIS["X",NORTH],AXIS["Y",EAST]] …b§O Q7‰EepsgSÏBeijing 1954 / Gauss-Kruger CM 87E+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 87E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21455"],AXIS["X",NORTH],AXIS["Y",EAST]] …b§P Q7‰EepsgSÐBeijing 1954 / Gauss-Kruger CM 93E+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 93E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21456"],AXIS["X",NORTH],AXIS["Y",EAST]] …b§Q Q7‰EepsgSÑBeijing 1954 / Gauss-Kruger CM 99E+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 99E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21457"],AXIS["X",NORTH],AXIS["Y",EAST]] …f§R S9‰IepsgSÒBeijing 1954 / Gauss-Kruger CM 105E+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 105E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21458"],AXIS["X",NORTH],AXIS["Y",EAST]] …f§S S9‰IepsgSÓBeijing 1954 / Gauss-Kruger CM 111E+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 111E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21459"],AXIS["X",NORTH],AXIS["Y",EAST]] …f§T S9‰IepsgSÔBeijing 1954 / Gauss-Kruger CM 117E+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 117E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21460"],AXIS["X",NORTH],AXIS["Y",EAST]] …f§U S9‰IepsgSÕBeijing 1954 / Gauss-Kruger CM 123E+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 123E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21461"],AXIS["X",NORTH],AXIS["Y",EAST]] …f§V S9‰IepsgSÖBeijing 1954 / Gauss-Kruger CM 129E+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 129E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21462"],AXIS["X",NORTH],AXIS["Y",EAST]]bR HRY`gnu|ƒŠ‘˜Ÿ¦­´»ÂÉÐ×Þåìóú$+29@GNU\cjqx†”›¢©°·¾ÅÌÓÚáèïöý  '.5<CJQX_fmt{‚‰—ž¥¬³ºÁÈÏÖÝäëòùä ;å¢6æ¢7ç¢Vè¢Wé¢Xê£Fë£Gì£Hí¤+î¤,ï¤-ð¤gñ¤hò¤ió¤lô¥õ¥ö¥÷¦+ø¦,ù§%ú§&û§'ü§(ý§)þ§*ÿ§+ §, §- §. §/ §M §N §O §P §Q §R §S §T §U §V §W §a §b §c §d §e §f §g §h §i §j §k §| ª ª ª ª9 !ª: "« #« $« %« &« '« (« )« *¬ +¬ ,¬K -¬L .­ /­ 0­ 1­ 2­ 3­ 4­! 5­% 6­& 7­' 8­( 9­) :­* ;­+ <­/ =­0 >­1 ?­2 @­3 A­4 B­5 C­Z D­[ E­\ F®< G®w …f§W S9‰IepsgS×Beijing 1954 / Gauss-Kruger CM 135E+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger CM 135E",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21463"],AXIS["X",NORTH],AXIS["Y",EAST]] …v§a e7‰YepsgSáBeijing 1954 / Gauss-Kruger 13N (deprecated)+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 13N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21473"],AXIS["X",NORTH],AXIS["Y",EAST]] …v§b e7‰YepsgSâBeijing 1954 / Gauss-Kruger 14N (deprecated)+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 14N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21474"],AXIS["X",NORTH],AXIS["Y",EAST]] …v§c e7‰YepsgSãBeijing 1954 / Gauss-Kruger 15N (deprecated)+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 15N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21475"],AXIS["X",NORTH],AXIS["Y",EAST]] …v§d e7‰YepsgSäBeijing 1954 / Gauss-Kruger 16N (deprecated)+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 16N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21476"],AXIS["X",NORTH],AXIS["Y",EAST]] …v§e e7‰YepsgSåBeijing 1954 / Gauss-Kruger 17N (deprecated)+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 17N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21477"],AXIS["X",NORTH],AXIS["Y",EAST]] …x§f e9‰[epsgSæBeijing 1954 / Gauss-Kruger 18N (deprecated)+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 18N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21478"],AXIS["X",NORTH],AXIS["Y",EAST]] …x§g e9‰[epsgSçBeijing 1954 / Gauss-Kruger 19N (deprecated)+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 19N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21479"],AXIS["X",NORTH],AXIS["Y",EAST]] …x§h e9‰[epsgSèBeijing 1954 / Gauss-Kruger 20N (deprecated)+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 20N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21480"],AXIS["X",NORTH],AXIS["Y",EAST]] …x§i e9‰[epsgSéBeijing 1954 / Gauss-Kruger 21N (deprecated)+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 21N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21481"],AXIS["X",NORTH],AXIS["Y",EAST]] …x§j e9‰[epsgSêBeijing 1954 / Gauss-Kruger 22N (deprecated)+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 22N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21482"],AXIS["X",NORTH],AXIS["Y",EAST]] …x§k e9‰[epsgSëBeijing 1954 / Gauss-Kruger 23N (deprecated)+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Beijing 1954 / Gauss-Kruger 23N (deprecated)",GEOGCS["Beijing 1954",DATUM["Beijing_1954",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6214"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4214"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21483"],AXIS["X",NORTH],AXIS["Y",EAST]] QQ‡*§| ]‚1‹OepsgSüBelge 1950 (Brussels) / Belge Lambert 50+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666666 +lat_0=90 +lon_0=0 +x_0=150000 +y_0=5400000 +ellps=intl +pm=brussels +units=m +no_defsPROJCS["Belge 1950 (Brussels) / Belge Lambert 50",GEOGCS["Belge 1950 (Brussels)",DATUM["Reseau_National_Belge_1950_Brussels",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6809"]],PRIMEM["Brussels",4.367975,AUTHORITY["EPSG","8910"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4809"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49.83333333333334],PARAMETER["standard_parallel_2",51.16666666666666],PARAMETER["latitude_of_origin",90],PARAMETER["central_meridian",0],PARAMETER["false_easting",150000],PARAMETER["false_northing",5400000],AUTHORITY["EPSG","21500"],AXIS["X",EAST],AXIS["Y",NORTH]] ´´†Gª =eŠuepsgUBern 1898 (Bern) / LV03C+proj=somerc +lat_0=46.95240555555556 +lon_0=0 +k_0=1 +x_0=0 +y_0=0 +ellps=bessel +pm=bern +units=m +no_defsPROJCS["Bern 1898 (Bern) / LV03C",GEOGCS["Bern 1898 (Bern)",DATUM["CH1903_Bern",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6801"]],PRIMEM["Bern",7.439583333333333,AUTHORITY["EPSG","8907"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4801"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",46.95240555555556],PARAMETER["longitude_of_center",0],PARAMETER["azimuth",90],PARAMETER["rectified_grid_angle",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","21780"],AXIS["Y",EAST],AXIS["X",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó SÎepsgSÎ SÏepsgSÏ SÐepsgSÐ SÑepsgSÑ SÒepsgSÒ SÓepsgSÓ SÔepsgSÔ SÕepsgSÕ SÖepsgSÖ S×epsgS× SáepsgSá SâepsgSâ SãepsgSã SäepsgSä SåepsgSå SæepsgSæ SçepsgSç SèepsgSè SéepsgSé SêepsgSê SëepsgSë SüepsgSü UepsgU UepsgU UepsgU U9epsgU9 U:epsgU: UƒepsgUƒ U„epsgU„ U…epsgU… U†epsgU† UˆepsgUˆ U‰epsgU‰ UŠepsgUŠ U‹epsgU‹ VepsgV VepsgV VKepsgVK VLepsgVL V›epsgV› VœepsgVœ VepsgV VžepsgVž VŸepsgVŸ V epsgV  V¡epsgV¡ V¥epsgV¥ V¦epsgV¦ V§epsgV§ V¨epsgV¨ V©epsgV© VªepsgVª V«epsgV« V¯epsgV¯ V°epsgV° V±epsgV± V²epsgV² V³epsgV³ V´epsgV´ ii‡ª '‚W‹/epsgUCH1903 / LV03+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defsPROJCS["CH1903 / LV03",GEOGCS["CH1903",DATUM["CH1903",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[674.374,15.056,405.346,0,0,0,0],AUTHORITY["EPSG","6149"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4149"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",46.95240555555556],PARAMETER["longitude_of_center",7.439583333333333],PARAMETER["azimuth",90],PARAMETER["rectified_grid_angle",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",600000],PARAMETER["false_northing",200000],AUTHORITY["EPSG","21781"],AXIS["Y",EAST],AXIS["X",NORTH]] ww‡ª -‚C‹!epsgUCH1903 / LV03C-G+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=0 +y_0=0 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defsPROJCS["CH1903 / LV03C-G",GEOGCS["CH1903",DATUM["CH1903",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[674.374,15.056,405.346,0,0,0,0],AUTHORITY["EPSG","6149"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4149"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",46.95240555555556],PARAMETER["longitude_of_center",7.439583333333333],PARAMETER["azimuth",90],PARAMETER["rectified_grid_angle",90],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","21782"],AXIS["Y",EAST],AXIS["X",NORTH]] ææ†ª9 [)Š/epsgU9Bogota 1975 / UTM zone 17N (deprecated)+proj=utm +zone=17 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / UTM zone 17N (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21817"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …{ª: A)ŠepsgU:Bogota 1975 / UTM zone 18N+proj=utm +zone=18 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / UTM zone 18N",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","21818"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] {{‡« g‚?ŠcepsgUƒBogota 1975 / Colombia West zone (deprecated)+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / Colombia West zone (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.599047222222222],PARAMETER["central_meridian",-77.08091666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","21891"],AXIS["X",EAST],AXIS["Y",NORTH]] ww‡« k‚?ŠgepsgU„Bogota 1975 / Colombia Bogota zone (deprecated)+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / Colombia Bogota zone (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.599047222222222],PARAMETER["central_meridian",-74.08091666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","21892"],AXIS["X",EAST],AXIS["Y",NORTH]] kk‡« w‚?ŠsepsgU…Bogota 1975 / Colombia East Central zone (deprecated)+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / Colombia East Central zone (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.599047222222222],PARAMETER["central_meridian",-71.08091666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","21893"],AXIS["X",EAST],AXIS["Y",NORTH]] ……†v« ]‚?ŠYepsgU†Bogota 1975 / Colombia East (deprecated)+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / Colombia East (deprecated)",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.599047222222222],PARAMETER["central_meridian",-68.08091666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","21894"],AXIS["X",EAST],AXIS["Y",NORTH]] ••†f« M‚?ŠIepsgUˆBogota 1975 / Colombia West zone+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / Colombia West zone",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.599047222222222],PARAMETER["central_meridian",-77.08091666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","21896"],AXIS["X",NORTH],AXIS["Y",EAST]] ‘‘†j« Q‚?ŠMepsgU‰Bogota 1975 / Colombia Bogota zone+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / Colombia Bogota zone",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.599047222222222],PARAMETER["central_meridian",-74.08091666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","21897"],AXIS["X",NORTH],AXIS["Y",EAST]] ……†v« ]‚?ŠYepsgUŠBogota 1975 / Colombia East Central zone+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / Colombia East Central zone",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.599047222222222],PARAMETER["central_meridian",-71.08091666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","21898"],AXIS["X",NORTH],AXIS["Y",EAST]] ŸŸ†\« C‚?Š?epsgU‹Bogota 1975 / Colombia East+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defsPROJCS["Bogota 1975 / Colombia East",GEOGCS["Bogota 1975",DATUM["Bogota_1975",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["EPSG","6218"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4218"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4.599047222222222],PARAMETER["central_meridian",-68.08091666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",1000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","21899"],AXIS["X",NORTH],AXIS["Y",EAST]] 44…G¬;‰_epsgVCamacupa / UTM zone 32S+proj=utm +zone=32 +south +ellps=clrk80 +units=m +no_defsPROJCS["Camacupa / UTM zone 32S",GEOGCS["Camacupa",DATUM["Camacupa",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6220"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4220"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","22032"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 33…H¬;‰aepsgVCamacupa / UTM zone 33S+proj=utm +zone=33 +south +ellps=clrk80 +units=m +no_defsPROJCS["Camacupa / UTM zone 33S",GEOGCS["Camacupa",DATUM["Camacupa",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6220"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4220"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","22033"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …t¬K 9U‰cepsgVKCamacupa / TM 11.30 SE+proj=tmerc +lat_0=0 +lon_0=11.5 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["Camacupa / TM 11.30 SE",GEOGCS["Camacupa",DATUM["Camacupa",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6220"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4220"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",11.5],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","22091"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …j¬L 3Q‰YepsgVLCamacupa / TM 12 SE+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defsPROJCS["Camacupa / TM 12 SE",GEOGCS["Camacupa",DATUM["Camacupa",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6220"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4220"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","22092"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …k­ ;?‰eepsgV›POSGAR 98 / Argentina 1+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["POSGAR 98 / Argentina 1",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-72],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22171"],AXIS["X",NORTH],AXIS["Y",EAST]] …k­ ;?‰eepsgVœPOSGAR 98 / Argentina 2+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["POSGAR 98 / Argentina 2",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22172"],AXIS["X",NORTH],AXIS["Y",EAST]] …k­ ;?‰eepsgVPOSGAR 98 / Argentina 3+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["POSGAR 98 / Argentina 3",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-66],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22173"],AXIS["X",NORTH],AXIS["Y",EAST]] …k­ ;?‰eepsgVžPOSGAR 98 / Argentina 4+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["POSGAR 98 / Argentina 4",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22174"],AXIS["X",NORTH],AXIS["Y",EAST]] …k­ ;?‰eepsgVŸPOSGAR 98 / Argentina 5+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["POSGAR 98 / Argentina 5",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-60],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22175"],AXIS["X",NORTH],AXIS["Y",EAST]] …k­ ;?‰eepsgV POSGAR 98 / Argentina 6+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["POSGAR 98 / Argentina 6",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22176"],AXIS["X",NORTH],AXIS["Y",EAST]] …k­! ;?‰eepsgV¡POSGAR 98 / Argentina 7+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["POSGAR 98 / Argentina 7",GEOGCS["POSGAR 98",DATUM["Posiciones_Geodesicas_Argentinas_1998",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6190"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4190"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-54],PARAMETER["scale_factor",1],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22177"],AXIS["X",NORTH],AXIS["Y",EAST]] ä䆭% ;mŠepsgV¥POSGAR 94 / Argentina 1+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["POSGAR 94 / Argentina 1",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-72],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22181"],AXIS["X",NORTH],AXIS["Y",EAST]] ä䆭& ;mŠepsgV¦POSGAR 94 / Argentina 2+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["POSGAR 94 / Argentina 2",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22182"],AXIS["X",NORTH],AXIS["Y",EAST]] ä䆭' ;mŠepsgV§POSGAR 94 / Argentina 3+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["POSGAR 94 / Argentina 3",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-66],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22183"],AXIS["X",NORTH],AXIS["Y",EAST]] ä䆭( ;mŠepsgV¨POSGAR 94 / Argentina 4+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["POSGAR 94 / Argentina 4",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22184"],AXIS["X",NORTH],AXIS["Y",EAST]] ä䆭) ;mŠepsgV©POSGAR 94 / Argentina 5+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["POSGAR 94 / Argentina 5",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-60],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22185"],AXIS["X",NORTH],AXIS["Y",EAST]] ä䆭* ;mŠepsgVªPOSGAR 94 / Argentina 6+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["POSGAR 94 / Argentina 6",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22186"],AXIS["X",NORTH],AXIS["Y",EAST]] ä䆭+ ;mŠepsgV«POSGAR 94 / Argentina 7+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["POSGAR 94 / Argentina 7",GEOGCS["POSGAR 94",DATUM["Posiciones_Geodesicas_Argentinas_1994",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6694"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4694"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-54],PARAMETER["scale_factor",1],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22187"],AXIS["X",NORTH],AXIS["Y",EAST]] …f­/ G=‰QepsgV¯Campo Inchauspe / Argentina 1+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Campo Inchauspe / Argentina 1",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-72],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22191"],AXIS["X",NORTH],AXIS["Y",EAST]] …f­0 G=‰QepsgV°Campo Inchauspe / Argentina 2+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Campo Inchauspe / Argentina 2",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22192"],AXIS["X",NORTH],AXIS["Y",EAST]] …f­1 G=‰QepsgV±Campo Inchauspe / Argentina 3+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Campo Inchauspe / Argentina 3",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-66],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22193"],AXIS["X",NORTH],AXIS["Y",EAST]] …f­2 G=‰QepsgV²Campo Inchauspe / Argentina 4+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Campo Inchauspe / Argentina 4",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22194"],AXIS["X",NORTH],AXIS["Y",EAST]] …f­3 G=‰QepsgV³Campo Inchauspe / Argentina 5+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Campo Inchauspe / Argentina 5",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-60],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22195"],AXIS["X",NORTH],AXIS["Y",EAST]] …f­4 G=‰QepsgV´Campo Inchauspe / Argentina 6+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Campo Inchauspe / Argentina 6",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22196"],AXIS["X",NORTH],AXIS["Y",EAST]] …f­5 G=‰QepsgVµCampo Inchauspe / Argentina 7+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0=0 +ellps=intl +units=m +no_defsPROJCS["Campo Inchauspe / Argentina 7",GEOGCS["Campo Inchauspe",DATUM["Campo_Inchauspe",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6221"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4221"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",-54],PARAMETER["scale_factor",1],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","22197"],AXIS["X",NORTH],AXIS["Y",EAST]] ((…S­Z 3+‰QepsgVÚCape / UTM zone 34S+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defsPROJCS["Cape / UTM zone 34S",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","22234"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((…S­[ 3+‰QepsgVÛCape / UTM zone 35S+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defsPROJCS["Cape / UTM zone 35S",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","22235"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((…S­\ 3+‰QepsgVÜCape / UTM zone 36S+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defsPROJCS["Cape / UTM zone 36S",GEOGCS["Cape",DATUM["Cape",SPHEROID["Clarke 1880 (Arc)",6378249.145,293.4663077,AUTHORITY["EPSG","7013"]],AUTHORITY["EPSG","6222"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4222"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","22236"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …\®< ;%‰aepsgW †º? ‡º@ ˆºE ‰ºF ŠºG ‹ºH ŒºI ºJ ŽºK ºL ºN ‘ºO ’ºP “ºQ ”ºR •ºS –ºT —ºU ™ºV š» ›» œ» »o ž»p Ÿ¼$  ½ ¡½q ¢½r £½w ¤½x ¥½y ¦¾ §¾ ¨¾ ©¾ ª¾ «¾ ¬¾2 ­¾3 Ì̆/º" M‚Šepsg]"DGN95 / Indonesia TM-3 zone 52.2+proj=tmerc +lat_0=0 +lon_0=130.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / Indonesia TM-3 zone 52.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",130.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",1500000],AUTHORITY["EPSG","23842"],AXIS["X",EAST],AXIS["Y",NORTH]] Ì̆/º# M‚Šepsg]#DGN95 / Indonesia TM-3 zone 53.1+proj=tmerc +lat_0=0 +lon_0=133.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / Indonesia TM-3 zone 53.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",133.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",1500000],AUTHORITY["EPSG","23843"],AXIS["X",EAST],AXIS["Y",NORTH]] Ì̆/º$ M‚Šepsg]$DGN95 / Indonesia TM-3 zone 53.2+proj=tmerc +lat_0=0 +lon_0=136.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / Indonesia TM-3 zone 53.2",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",136.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",1500000],AUTHORITY["EPSG","23844"],AXIS["X",EAST],AXIS["Y",NORTH]] Ì̆/º% M‚Šepsg]%DGN95 / Indonesia TM-3 zone 54.1+proj=tmerc +lat_0=0 +lon_0=139.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / Indonesia TM-3 zone 54.1",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",139.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",1500000],AUTHORITY["EPSG","23845"],AXIS["X",EAST],AXIS["Y",NORTH]] ''…Tº& 3‰kepsg]&ID74 / UTM zone 46N+proj=utm +zone=46 +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 46N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23846"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…Tº' 3‰kepsg]'ID74 / UTM zone 47N+proj=utm +zone=47 +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 47N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23847"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] &&…Uº( 3‰mepsg](ID74 / UTM zone 48N+proj=utm +zone=48 +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 48N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23848"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] &&…Uº) 3‰mepsg])ID74 / UTM zone 49N+proj=utm +zone=49 +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 49N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23849"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] &&…Uº* 3‰mepsg]*ID74 / UTM zone 50N+proj=utm +zone=50 +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 50N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23850"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] &&…Uº+ 3‰mepsg]+ID74 / UTM zone 51N+proj=utm +zone=51 +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 51N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23851"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] &&…Uº, 3‰mepsg],ID74 / UTM zone 52N+proj=utm +zone=52 +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 52N",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23852"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …oº- MŠepsg]-ID74 / UTM zone 53N (deprecated)+proj=utm +zone=53 +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 53N (deprecated)",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23853"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …iº: 5Š epsg]:DGN95 / UTM zone 46N+proj=utm +zone=46 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 46N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23866"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …iº; 5Š epsg];DGN95 / UTM zone 47N+proj=utm +zone=47 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 47N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23867"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …jº< 5Š epsg] 5Š epsg]>DGN95 / UTM zone 50N+proj=utm +zone=50 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 50N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23870"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …jº? 5Š epsg]?DGN95 / UTM zone 51N+proj=utm +zone=51 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 51N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23871"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …jº@ 5Š epsg]@DGN95 / UTM zone 52N+proj=utm +zone=52 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 52N",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23872"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …wºE 5+Šepsg]EDGN95 / UTM zone 47S+proj=utm +zone=47 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 47S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23877"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …xºF 5+Šepsg]FDGN95 / UTM zone 48S+proj=utm +zone=48 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 48S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23878"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …xºG 5+Šepsg]GDGN95 / UTM zone 49S+proj=utm +zone=49 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 49S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23879"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …xºH 5+Šepsg]HDGN95 / UTM zone 50S+proj=utm +zone=50 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 50S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23880"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …xºI 5+Šepsg]IDGN95 / UTM zone 51S+proj=utm +zone=51 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 51S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23881"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …xºJ 5+Šepsg]JDGN95 / UTM zone 52S+proj=utm +zone=52 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 52S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23882"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …xºK 5+Šepsg]KDGN95 / UTM zone 53S+proj=utm +zone=53 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 53S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23883"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …xºL 5+Šepsg]LDGN95 / UTM zone 54S+proj=utm +zone=54 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["DGN95 / UTM zone 54S",GEOGCS["DGN95",DATUM["Datum_Geodesi_Nasional_1995",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6755"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4755"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23884"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÿÿ…|ºN M!Šepsg]NID74 / UTM zone 46S (deprecated)+proj=utm +zone=46 +south +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 46S (deprecated)",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23886"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …bºO 3!‰yepsg]OID74 / UTM zone 47S+proj=utm +zone=47 +south +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 47S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23887"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …cºP 3!‰{epsg]PID74 / UTM zone 48S+proj=utm +zone=48 +south +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 48S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23888"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …cºQ 3!‰{epsg]QID74 / UTM zone 49S+proj=utm +zone=49 +south +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 49S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23889"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …cºR 3!‰{epsg]RID74 / UTM zone 50S+proj=utm +zone=50 +south +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 50S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23890"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …cºS 3!‰{epsg]SID74 / UTM zone 51S+proj=utm +zone=51 +south +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 51S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23891"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …cºT 3!‰{epsg]TID74 / UTM zone 52S+proj=utm +zone=52 +south +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 52S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23892"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …cºU 3!‰{epsg]UID74 / UTM zone 53S+proj=utm +zone=53 +south +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 53S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23893"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó ]:epsg]: ];epsg]; ]epsg]> ]?epsg]? ]@epsg]@ ]Eepsg]E ]Fepsg]F ]Gepsg]G ]Hepsg]H ]Iepsg]I ]Jepsg]J ]Kepsg]K ]Lepsg]L ]Nepsg]N ]Oepsg]O ]Pepsg]P ]Qepsg]Q ]Repsg]R ]Sepsg]S ]Tepsg]T ]Uepsg]U ]Vepsg]V ]Šepsg]Š ]‹epsg]‹ ]Œepsg]Œ ]ïepsg]ï ]ðepsg]ð ^$epsg^$ ^ˆepsg^ˆ ^ñepsg^ñ ^òepsg^ò ^÷epsg^÷ ^øepsg^ø ^ùepsg^ù _epsg_ _epsg_ _epsg_ _epsg_ _epsg_ _epsg_ _2epsg_2 _3epsg_3 _4epsg_4 _5epsg_5 _6epsg_6 _7epsg_7 _8epsg_8 _9epsg_9 _:epsg_: _;epsg_; _epsg_> _?epsg_? _´epsg_´ _ãepsg_ã _äepsg_ä …cºV 3!‰{epsg]VID74 / UTM zone 54S+proj=utm +zone=54 +south +a=6378160 +b=6356774.50408554 +units=m +no_defsPROJCS["ID74 / UTM zone 54S",GEOGCS["ID74",DATUM["Indonesian_Datum_1974",SPHEROID["Indonesian National Spheroid",6378160,298.247,AUTHORITY["EPSG","7021"]],AUTHORITY["EPSG","6238"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4238"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","23894"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ×׆$» AUŠ;epsg]ŠIndian 1954 / UTM zone 46N+proj=utm +zone=46 +a=6377276.345 +b=6356075.41314024 +towgs84=217,823,299,0,0,0,0 +units=m +no_defsPROJCS["Indian 1954 / UTM zone 46N",GEOGCS["Indian 1954",DATUM["Indian_1954",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY["EPSG","6239"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4239"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23946"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ×׆$» AUŠ;epsg]‹Indian 1954 / UTM zone 47N+proj=utm +zone=47 +a=6377276.345 +b=6356075.41314024 +towgs84=217,823,299,0,0,0,0 +units=m +no_defsPROJCS["Indian 1954 / UTM zone 47N",GEOGCS["Indian 1954",DATUM["Indian_1954",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY["EPSG","6239"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4239"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23947"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÖÖ†%» AUŠ=epsg]ŒIndian 1954 / UTM zone 48N+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +towgs84=217,823,299,0,0,0,0 +units=m +no_defsPROJCS["Indian 1954 / UTM zone 48N",GEOGCS["Indian 1954",DATUM["Indian_1954",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY["EPSG","6239"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4239"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23948"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …j»o AŠepsg]ïIndian 1975 / UTM zone 47N+proj=utm +zone=47 +a=6377276.345 +b=6356075.41314024 +units=m +no_defsPROJCS["Indian 1975 / UTM zone 47N",GEOGCS["Indian 1975",DATUM["Indian_1975",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6240"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4240"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24047"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …k»p AŠepsg]ðIndian 1975 / UTM zone 48N+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +units=m +no_defsPROJCS["Indian 1975 / UTM zone 48N",GEOGCS["Indian 1975",DATUM["Indian_1975",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6240"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4240"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24048"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ’’†i¼$ O‚GŠEepsg^$Jamaica 1875 / Jamaica (Old Grid)+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=167638.49597 +y_0=121918.90616 +a=6378249.144808011 +b=6356514.966204134 +to_meter=0.3047972654 +no_defsPROJCS["Jamaica 1875 / Jamaica (Old Grid)",GEOGCS["Jamaica 1875",DATUM["Jamaica_1875",SPHEROID["Clarke 1880",6378249.144808011,293.4663076556349,AUTHORITY["EPSG","7034"]],AUTHORITY["EPSG","6241"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4241"]],UNIT["Clarke's foot",0.3047972654,AUTHORITY["EPSG","9005"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",18],PARAMETER["central_meridian",-77],PARAMETER["scale_factor",1],PARAMETER["false_easting",550000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","24100"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ½ G[‰yepsg^ˆJAD69 / Jamaica National Grid+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=250000 +y_0=150000 +ellps=clrk66 +units=m +no_defsPROJCS["JAD69 / Jamaica National Grid",GEOGCS["JAD69",DATUM["Jamaica_1969",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6242"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4242"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",18],PARAMETER["central_meridian",-77],PARAMETER["scale_factor",1],PARAMETER["false_easting",250000],PARAMETER["false_northing",150000],AUTHORITY["EPSG","24200"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …v½q GŠepsg^ñKalianpur 1937 / UTM zone 45N+proj=utm +zone=45 +a=6377276.345 +b=6356075.41314024 +units=m +no_defsPROJCS["Kalianpur 1937 / UTM zone 45N",GEOGCS["Kalianpur 1937",DATUM["Kalianpur_1937",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6144"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4144"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24305"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …v½r GŠepsg^òKalianpur 1937 / UTM zone 46N+proj=utm +zone=46 +a=6377276.345 +b=6356075.41314024 +units=m +no_defsPROJCS["Kalianpur 1937 / UTM zone 46N",GEOGCS["Kalianpur 1937",DATUM["Kalianpur_1937",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6144"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4144"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24306"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …z½w GŠepsg^÷Kalianpur 1962 / UTM zone 41N+proj=utm +zone=41 +a=6377301.243 +b=6356100.230165384 +units=m +no_defsPROJCS["Kalianpur 1962 / UTM zone 41N",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24311"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …z½x GŠepsg^øKalianpur 1962 / UTM zone 42N+proj=utm +zone=42 +a=6377301.243 +b=6356100.230165384 +units=m +no_defsPROJCS["Kalianpur 1962 / UTM zone 42N",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24312"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …z½y GŠepsg^ùKalianpur 1962 / UTM zone 43N+proj=utm +zone=43 +a=6377301.243 +b=6356100.230165384 +units=m +no_defsPROJCS["Kalianpur 1962 / UTM zone 43N",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24313"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Çdž4¾ GWŠSepsg_Kalianpur 1975 / UTM zone 42N+proj=utm +zone=42 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defsPROJCS["Kalianpur 1975 / UTM zone 42N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24342"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Çdž4¾ GWŠSepsg_Kalianpur 1975 / UTM zone 43N+proj=utm +zone=43 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defsPROJCS["Kalianpur 1975 / UTM zone 43N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24343"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Çdž4¾ GWŠSepsg_Kalianpur 1975 / UTM zone 44N+proj=utm +zone=44 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defsPROJCS["Kalianpur 1975 / UTM zone 44N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24344"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Çdž4¾ GWŠSepsg_Kalianpur 1975 / UTM zone 45N+proj=utm +zone=45 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defsPROJCS["Kalianpur 1975 / UTM zone 45N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24345"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Çdž4¾ GWŠSepsg_Kalianpur 1975 / UTM zone 46N+proj=utm +zone=46 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defsPROJCS["Kalianpur 1975 / UTM zone 46N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24346"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Çdž4¾ GWŠSepsg_Kalianpur 1975 / UTM zone 47N+proj=utm +zone=47 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defsPROJCS["Kalianpur 1975 / UTM zone 47N",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24347"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] __‡¾2 G‚{Šepsg_2Kalianpur 1880 / India zone 0+proj=lcc +lat_1=39.5 +lat_0=39.5 +lon_0=68 +k_0=0.99846154 +x_0=2153865.73916853 +y_0=2368292.194628102 +a=6377299.36559538 +b=6356098.359005156 +to_meter=0.9143985307444408 +no_defsPROJCS["Kalianpur 1880 / India zone 0",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],UNIT["Indian yard",0.9143985307444408,AUTHORITY["EPSG","9084"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",39.5],PARAMETER["central_meridian",68],PARAMETER["scale_factor",0.99846154],PARAMETER["false_easting",2355500],PARAMETER["false_northing",2590000],AUTHORITY["EPSG","24370"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ^^‡¾3 G‚}Šepsg_3Kalianpur 1880 / India zone I+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005156 +to_meter=0.9143985307444408 +no_defsPROJCS["Kalianpur 1880 / India zone I",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],UNIT["Indian yard",0.9143985307444408,AUTHORITY["EPSG","9084"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",32.5],PARAMETER["central_meridian",68],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","24371"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ``‡¾4 K‚uŠepsg_4Kalianpur 1880 / India zone IIa+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005156 +to_meter=0.9143985307444408 +no_defsPROJCS["Kalianpur 1880 / India zone IIa",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],UNIT["Indian yard",0.9143985307444408,AUTHORITY["EPSG","9084"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",74],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","24372"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ``‡¾5 K‚uŠepsg_5Kalianpur 1880 / India zone III+proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005156 +to_meter=0.9143985307444408 +no_defsPROJCS["Kalianpur 1880 / India zone III",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],UNIT["Indian yard",0.9143985307444408,AUTHORITY["EPSG","9084"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",19],PARAMETER["central_meridian",80],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","24373"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] bb‡¾6 I‚uŠ}epsg_6Kalianpur 1880 / India zone IV+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005156 +to_meter=0.9143985307444408 +no_defsPROJCS["Kalianpur 1880 / India zone IV",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],UNIT["Indian yard",0.9143985307444408,AUTHORITY["EPSG","9084"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",12],PARAMETER["central_meridian",80],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","24374"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¤¤†W¾7 K‚#ŠIepsg_7Kalianpur 1937 / India zone IIb+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 +x_0=2743185.69 +y_0=914395.23 +a=6377276.345 +b=6356075.41314024 +units=m +no_defsPROJCS["Kalianpur 1937 / India zone IIb",GEOGCS["Kalianpur 1937",DATUM["Kalianpur_1937",SPHEROID["Everest 1830 (1937 Adjustment)",6377276.345,300.8017,AUTHORITY["EPSG","7015"]],AUTHORITY["EPSG","6144"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4144"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",90],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",2743185.69],PARAMETER["false_northing",914395.23],AUTHORITY["EPSG","24375"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¢¢†Y¾8 G‚)ŠKepsg_8Kalianpur 1962 / India zone I+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878641 +x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=6356100.230165384 +units=m +no_defsPROJCS["Kalianpur 1962 / India zone I",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",32.5],PARAMETER["central_meridian",68],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",2743196.4],PARAMETER["false_northing",914398.8],AUTHORITY["EPSG","24376"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¤¤†W¾9 K‚!ŠKepsg_9Kalianpur 1962 / India zone IIa+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 +x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=6356100.230165384 +units=m +no_defsPROJCS["Kalianpur 1962 / India zone IIa",GEOGCS["Kalianpur 1962",DATUM["Kalianpur_1962",SPHEROID["Everest 1830 (1962 Definition)",6377301.243,300.8017255,AUTHORITY["EPSG","7044"]],AUTHORITY["EPSG","6145"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4145"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",74],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",2743196.4],PARAMETER["false_northing",914398.8],AUTHORITY["EPSG","24377"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] hh‡¾: G‚c‹epsg_:Kalianpur 1975 / India zone I+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defsPROJCS["Kalianpur 1975 / India zone I",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",32.5],PARAMETER["central_meridian",68],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",2743195.5],PARAMETER["false_northing",914398.5],AUTHORITY["EPSG","24378"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] jj‡¾; K‚[‹epsg_;Kalianpur 1975 / India zone IIa+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defsPROJCS["Kalianpur 1975 / India zone IIa",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",74],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",2743195.5],PARAMETER["false_northing",914398.5],AUTHORITY["EPSG","24379"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] jj‡¾< K‚[‹epsg_ K‚uŠepsg_>Kalianpur 1880 / India zone IIb+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005156 +to_meter=0.9143985307444408 +no_defsPROJCS["Kalianpur 1880 / India zone IIb",GEOGCS["Kalianpur 1880",DATUM["Kalianpur_1880",SPHEROID["Everest (1830 Definition)",6377299.36559538,300.8017255433552,AUTHORITY["EPSG","7042"]],AUTHORITY["EPSG","6243"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4243"]],UNIT["Indian yard",0.9143985307444408,AUTHORITY["EPSG","9084"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",90],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",3000000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","24382"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ll‡¾? I‚[‹epsg_?Kalianpur 1975 / India zone IV+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defsPROJCS["Kalianpur 1975 / India zone IV",GEOGCS["Kalianpur 1975",DATUM["Kalianpur_1975",SPHEROID["Everest 1830 (1975 Definition)",6377299.151,300.8017255,AUTHORITY["EPSG","7045"]],TOWGS84[295,736,257,0,0,0,0],AUTHORITY["EPSG","6146"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4146"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",12],PARAMETER["central_meridian",80],PARAMETER["scale_factor",0.99878641],PARAMETER["false_easting",2743195.5],PARAMETER["false_northing",914398.5],AUTHORITY["EPSG","24383"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¢¢†Y¿4 E‚SŠ#epsg_´Kertau 1968 / Singapore Grid+proj=cass +lat_0=1.287646666666667 +lon_0=103.8530022222222 +x_0=30000 +y_0=30000 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defsPROJCS["Kertau 1968 / Singapore Grid",GEOGCS["Kertau 1968",DATUM["Kertau_1968",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY["EPSG","6245"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4245"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",1.287646666666667],PARAMETER["central_meridian",103.8530022222222],PARAMETER["false_easting",30000],PARAMETER["false_northing",30000],AUTHORITY["EPSG","24500"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ãㆿc ASŠ%epsg_ãKertau 1968 / UTM zone 47N+proj=utm +zone=47 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defsPROJCS["Kertau 1968 / UTM zone 47N",GEOGCS["Kertau 1968",DATUM["Kertau_1968",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY["EPSG","6245"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4245"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24547"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] rârˆ¿{ ]ƒŒQepsg_ûKertau / R.S.O. Malaya (ch) (deprecated)+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.025 ½†¿d ASŠ'epsg_äKertau 1968 / UTM zone 48N+proj=utm +zone=48 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defsPROJCS["Kertau 1968 / UTM zone 48N",GEOGCS["Kertau 1968",DATUM["Kertau_1968",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY["EPSG","6245"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4245"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24548"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]7905 +k=0.99984 +x_0=804671.2997750348 +y_0=0 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +to_meter=20.11678249437587 +no_defsPROJCS["Kertau / R.S.O. Malaya (ch) (deprecated)",GEOGCS["Kertau 1968",DATUM["Kertau_1968",SPHEROID["Everest 1830 Modified",6377304.063,300.8017,AUTHORITY["EPSG","7018"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY["EPSG","6245"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4245"]],UNIT["British chain (Benoit 1895 B)",20.11678249437587,AUTHORITY["EPSG","9062"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",4],PARAMETER["longitude_of_center",102.25],PARAMETER["azimuth",323.0257905],PARAMETER["rectified_grid_angle",323.1301023611111],PARAMETER["scale_factor",0.99984],PARAMETER["false_easting",40000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24571"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¦¦†UÀ #‚QŠ?epsg`KOC Lambert+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.9987864078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +towgs84=-294.7,-200.1,525.5,0,0,0,0 +units=m +no_defsPROJCS["KOC Lambert",GEOGCS["KOC",DATUM["Kuwait_Oil_Company",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],TOWGS84[-294.7,-200.1,525.5,0,0,0,0],AUTHORITY["EPSG","6246"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4246"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",32.5],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9987864078],PARAMETER["false_easting",1500000],PARAMETER["false_northing",1166200],AUTHORITY["EPSG","24600"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] þþ…}Á ;7Šepsg`ŽLa Canoa / UTM zone 18N+proj=utm +zone=18 +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +units=m +no_defsPROJCS["La Canoa / UTM zone 18N",GEOGCS["La Canoa",DATUM["La_Canoa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-273.5,110.6,-357.9,0,0,0,0],AUTHORITY["EPSG","6247"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4247"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24718"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] þþ…}Á ;7Šepsg`La Canoa / UTM zone 19N+proj=utm +zone=19 +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +units=m +no_defsPROJCS["La Canoa / UTM zone 19N",GEOGCS["La Canoa",DATUM["La_Canoa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-273.5,110.6,-357.9,0,0,0,0],AUTHORITY["EPSG","6247"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4247"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24719"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] þþ…}Á ;7Šepsg`La Canoa / UTM zone 20N+proj=utm +zone=20 +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +units=m +no_defsPROJCS["La Canoa / UTM zone 20N",GEOGCS["La Canoa",DATUM["La_Canoa",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-273.5,110.6,-357.9,0,0,0,0],AUTHORITY["EPSG","6247"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4247"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24720"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 22…IÁq7m‰yepsg`ñPSAD56 / UTM zone 17N+proj=utm +zone=17 +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 17N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24817"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 22…IÁr7m‰yepsg`òPSAD56 / UTM zone 18N+proj=utm +zone=18 +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 18N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24818"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 22…IÁs7m‰yepsg`óPSAD56 / UTM zone 19N+proj=utm +zone=19 +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 19N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24819"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 22…IÁt7m‰yepsg`ôPSAD56 / UTM zone 20N+proj=utm +zone=20 +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 20N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24820"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 22…IÁu7m‰yepsg`õPSAD56 / UTM zone 21N+proj=utm +zone=21 +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 21N",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","24821"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$…WÂ-7{Šepsga-PSAD56 / UTM zone 17S+proj=utm +zone=17 +south +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 17S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","24877"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$…WÂ.7{Šepsga.PSAD56 / UTM zone 18S+proj=utm +zone=18 +south +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 18S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","24878"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$…WÂ/7{Šepsga/PSAD56 / UTM zone 19S+proj=utm +zone=19 +south +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 19S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","24879"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$…WÂ07{Šepsga0PSAD56 / UTM zone 20S+proj=utm +zone=20 +south +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 20S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","24880"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$…WÂ17{Šepsga1PSAD56 / UTM zone 21S+proj=utm +zone=21 +south +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 21S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","24881"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] $$…WÂ27{Šepsga2PSAD56 / UTM zone 22S+proj=utm +zone=22 +south +ellps=intl +units=m +no_defsPROJCS["PSAD56 / UTM zone 22S",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","24882"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] îî† Â; ;cŠepsga;PSAD56 / Peru west zone+proj=tmerc +lat_0=-6 +lon_0=-80.5 +k=0.99983008 +x_0=222000 +y_0=1426834.743 +ellps=intl +units=m +no_defsPROJCS["PSAD56 / Peru west zone",GEOGCS["PSAD56",DATUM["Provisional_South_American_Datum_1956",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6248"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4248"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-6],PARAMETER["central_meridian",-80.5],PARAMETER["scale_factor",0.99983008],PARAMETER["false_easting",222000],PARAMETER["false_northing",1426834.743],AUTHORITY["EPSG","24891"],AXIS["X",EAST],AXIS["Y",NORTH]] èè†Â< AcŠ epsga ¹¾? º¿4 »¿c ¼¿{ ¾À ¿Á ÀÁ ÁÁ ÂÁq ÃÁr ÄÁs ÅÁt ÆÁu ÇÂ- ÈÂ. ÉÂ/ ÊÂ0 ËÂ1 ÌÂ2 ÍÂ; ÎÂ< ÏÂ= ÐÃ( ÑÅ ÒÆ/ ÓÆ0 ÔÆ1 ÖÆ2 ׯ3 ØÈd ÙÉd ÚÉe ÛÉf ÝÉg ÞÉh ßÉi àÉj áÉk âÉl ãÉm äÉn åÊ æÊL çÌO èÌP éÌQ êÌR ëÌS ìÌ} íÍ[ îÍ\ ïÎ ðÎ ñÎ òÎ@ óÏ_ ôÏ` õÐ öÐD ÷ÐM øÐN ùÐO úÐP ûÐQ üÐR ýÐS þÐT ÿÐU ÐV ÐW ÐX ÐY ÐZ Ð[ Ð\ Ð] Ð^ Ð_ Ð` Ða Ðb Ði Ðj Ðk Ðl Ðm Ðn Ðo ..…MÉg7o‰epsgdçETRS89 / UTM zone 31N+proj=utm +zone=31 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / UTM zone 31N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25831"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ..…MÉh7o‰epsgdèETRS89 / UTM zone 32N+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / UTM zone 32N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25832"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --…NÉi7oŠepsgdéETRS89 / UTM zone 33N+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / UTM zone 33N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25833"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --…NÉj7oŠepsgdêETRS89 / UTM zone 34N+proj=utm +zone=34 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / UTM zone 34N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25834"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --…NÉk7oŠepsgdëETRS89 / UTM zone 35N+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / UTM zone 35N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25835"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --…NÉl7oŠepsgdìETRS89 / UTM zone 36N+proj=utm +zone=36 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / UTM zone 36N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25836"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --…NÉm7oŠepsgdíETRS89 / UTM zone 37N+proj=utm +zone=37 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / UTM zone 37N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25837"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --…NÉn7oŠepsgdîETRS89 / UTM zone 38N+proj=utm +zone=38 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / UTM zone 38N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25838"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …iÊ 5A‰eepsgeETRS89 / TM Baltic93+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["ETRS89 / TM Baltic93",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25884"],AXIS["X",NORTH],AXIS["Y",EAST]] --…NÊLC{‰iepsgeLMalongo 1987 / UTM zone 32S+proj=utm +zone=32 +south +ellps=intl +units=m +no_defsPROJCS["Malongo 1987 / UTM zone 32S",GEOGCS["Malongo 1987",DATUM["Malongo_1987",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6259"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4259"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","25932"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ®®†MÌO 7‚CŠ)epsgfOMerchich / Nord Maroc+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=-5.4 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defsPROJCS["Merchich / Nord Maroc",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",33.3],PARAMETER["central_meridian",-5.4],PARAMETER["scale_factor",0.999625769],PARAMETER["false_easting",500000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","26191"],AXIS["X",EAST],AXIS["Y",NORTH]] ©©†RÌP 5‚QŠ'epsgfPMerchich / Sud Maroc+proj=lcc +lat_1=29.7 +lat_0=29.7 +lon_0=-5.4 +k_0=0.9996155960000001 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defsPROJCS["Merchich / Sud Maroc",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",29.7],PARAMETER["central_meridian",-5.4],PARAMETER["scale_factor",0.999615596],PARAMETER["false_easting",500000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","26192"],AXIS["X",EAST],AXIS["Y",NORTH]] ¤¤†WÌQ I‚;Š3epsgfQMerchich / Sahara (deprecated)+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.9996 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defsPROJCS["Merchich / Sahara (deprecated)",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",26.1],PARAMETER["central_meridian",-5.4],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1200000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","26193"],AXIS["X",EAST],AXIS["Y",NORTH]] ªª†QÌR 9‚EŠ-epsgfRMerchich / Sahara Nord+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.999616304 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defsPROJCS["Merchich / Sahara Nord",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",26.1],PARAMETER["central_meridian",-5.4],PARAMETER["scale_factor",0.999616304],PARAMETER["false_easting",1200000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","26194"],AXIS["X",EAST],AXIS["Y",NORTH]] ¬¬†OÌS 7‚EŠ+epsgfSMerchich / Sahara Sud+proj=lcc +lat_1=22.5 +lat_0=22.5 +lon_0=-5.4 +k_0=0.999616437 +x_0=1500000 +y_0=400000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defsPROJCS["Merchich / Sahara Sud",GEOGCS["Merchich",DATUM["Merchich",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY["EPSG","6261"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4261"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",22.5],PARAMETER["central_meridian",-5.4],PARAMETER["scale_factor",0.999616437],PARAMETER["false_easting",1500000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","26195"],AXIS["X",EAST],AXIS["Y",NORTH]] …mÌ} 9)Šepsgf}Massawa / UTM zone 37N+proj=utm +zone=37 +ellps=bessel +towgs84=639,405,60,0,0,0,0 +units=m +no_defsPROJCS["Massawa / UTM zone 37N",GEOGCS["Massawa",DATUM["Massawa",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[639,405,60,0,0,0,0],AUTHORITY["EPSG","6262"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4262"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26237"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] NN…-Í[5q‰?epsgfÛMinna / UTM zone 31N+proj=utm +zone=31 +ellps=clrk80 +units=m +no_defsPROJCS["Minna / UTM zone 31N",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26331"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] NN…-Í\5q‰?epsgfÜMinna / UTM zone 32N+proj=utm +zone=32 +ellps=clrk80 +units=m +no_defsPROJCS["Minna / UTM zone 32N",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26332"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …lÎ ?M‰UepsggMinna / Nigeria West Belt+proj=tmerc +lat_0=4 +lon_0=4.5 +k=0.99975 +x_0=230738.26 +y_0=0 +ellps=clrk80 +units=m +no_defsPROJCS["Minna / Nigeria West Belt",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4],PARAMETER["central_meridian",4.5],PARAMETER["scale_factor",0.99975],PARAMETER["false_easting",230738.26],PARAMETER["false_northing",0],AUTHORITY["EPSG","26391"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …jÎ =M‰SepsggMinna / Nigeria Mid Belt+proj=tmerc +lat_0=4 +lon_0=8.5 +k=0.99975 +x_0=670553.98 +y_0=0 +ellps=clrk80 +units=m +no_defsPROJCS["Minna / Nigeria Mid Belt",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4],PARAMETER["central_meridian",8.5],PARAMETER["scale_factor",0.99975],PARAMETER["false_easting",670553.98],PARAMETER["false_northing",0],AUTHORITY["EPSG","26392"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …nÎ ?O‰WepsggMinna / Nigeria East Belt+proj=tmerc +lat_0=4 +lon_0=12.5 +k=0.99975 +x_0=1110369.7 +y_0=0 +ellps=clrk80 +units=m +no_defsPROJCS["Minna / Nigeria East Belt",GEOGCS["Minna",DATUM["Minna",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6263"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4263"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",4],PARAMETER["central_meridian",12.5],PARAMETER["scale_factor",0.99975],PARAMETER["false_easting",1110369.7],PARAMETER["false_northing",0],AUTHORITY["EPSG","26393"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ââ†Î@ OGŠ%epsgg@Mhast / UTM zone 32S (deprecated)+proj=utm +zone=32 +south +ellps=intl +towgs84=-252.95,-4.11,-96.38,0,0,0,0 +units=m +no_defsPROJCS["Mhast / UTM zone 32S (deprecated)",GEOGCS["Mhast",DATUM["Mhast",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-252.95,-4.11,-96.38,0,0,0,0],AUTHORITY["EPSG","6264"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4264"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","26432"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¹¹†BÏ_ iqŠ3epsggßMonte Mario (Rome) / Italy zone 1 (deprecated)+proj=tmerc +lat_0=0 +lon_0=-3.45233333333333 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +pm=rome +units=m +no_defsPROJCS["Monte Mario (Rome) / Italy zone 1 (deprecated)",GEOGCS["Monte Mario (Rome)",DATUM["Monte_Mario_Rome",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6806"]],PRIMEM["Rome",12.45233333333333,AUTHORITY["EPSG","8906"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4806"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3.45233333333333],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26591"],AXIS["X",EAST],AXIS["Y",NORTH]] »»†@Ï` ioŠ1epsggàMonte Mario (Rome) / Italy zone 2 (deprecated)+proj=tmerc +lat_0=0 +lon_0=2.54766666666666 +k=0.9996 +x_0=2520000 +y_0=0 +ellps=intl +pm=rome +units=m +no_defsPROJCS["Monte Mario (Rome) / Italy zone 2 (deprecated)",GEOGCS["Monte Mario (Rome)",DATUM["Monte_Mario_Rome",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6806"]],PRIMEM["Rome",12.45233333333333,AUTHORITY["EPSG","8906"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4806"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",2.54766666666666],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",2520000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26592"],AXIS["X",EAST],AXIS["Y",NORTH]] ''…TÐ ?‰mepsghM'poraloko / UTM zone 32N+proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_defsPROJCS["M'poraloko / UTM zone 32N",GEOGCS["M'poraloko",DATUM["M_poraloko",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6266"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4266"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26632"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …bÐD ?‰{epsghDM'poraloko / UTM zone 32S+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +units=m +no_defsPROJCS["M'poraloko / UTM zone 32S",GEOGCS["M'poraloko",DATUM["M_poraloko",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6266"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4266"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","26692"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **…QÐM 3 ‰oepsghMNAD27 / UTM zone 1N+proj=utm +zone=1 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 1N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26701"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **…QÐN 3 ‰oepsghNNAD27 / UTM zone 2N+proj=utm +zone=2 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 2N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26702"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **…QÐO 3 ‰oepsghONAD27 / UTM zone 3N+proj=utm +zone=3 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 3N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26703"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **…QÐP 3 ‰oepsghPNAD27 / UTM zone 4N+proj=utm +zone=4 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 4N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26704"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **…QÐQ 3 ‰oepsghQNAD27 / UTM zone 5N+proj=utm +zone=5 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 5N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26705"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **…QÐR 3 ‰oepsghRNAD27 / UTM zone 6N+proj=utm +zone=6 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 6N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26706"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **…QÐS 3 ‰oepsghSNAD27 / UTM zone 7N+proj=utm +zone=7 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 7N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26707"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **…QÐT 3 ‰oepsghTNAD27 / UTM zone 8N+proj=utm +zone=8 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 8N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26708"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] **…QÐU 3 ‰oepsghUNAD27 / UTM zone 9N+proj=utm +zone=9 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 9N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26709"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…TÐV 5 ‰qepsghVNAD27 / UTM zone 10N+proj=utm +zone=10 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 10N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26710"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…TÐW 5 ‰qepsghWNAD27 / UTM zone 11N+proj=utm +zone=11 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 11N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26711"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…TÐX 5 ‰qepsghXNAD27 / UTM zone 12N+proj=utm +zone=12 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 12N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26712"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…TÐY 5 ‰qepsghYNAD27 / UTM zone 13N+proj=utm +zone=13 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 13N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26713"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((…SÐZ 5 ‰oepsghZNAD27 / UTM zone 14N+proj=utm +zone=14 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 14N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26714"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((…SÐ[ 5 ‰oepsgh[NAD27 / UTM zone 15N+proj=utm +zone=15 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 15N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26715"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((…SÐ\ 5 ‰oepsgh\NAD27 / UTM zone 16N+proj=utm +zone=16 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 16N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26716"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((…SÐ] 5 ‰oepsgh]NAD27 / UTM zone 17N+proj=utm +zone=17 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 17N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26717"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((…SÐ^ 5 ‰oepsgh^NAD27 / UTM zone 18N+proj=utm +zone=18 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 18N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26718"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((…SÐ_ 5 ‰oepsgh_NAD27 / UTM zone 19N+proj=utm +zone=19 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 19N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26719"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((…SÐ` 5 ‰oepsgh`NAD27 / UTM zone 20N+proj=utm +zone=20 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 20N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26720"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((…SÐa 5 ‰oepsghaNAD27 / UTM zone 21N+proj=utm +zone=21 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 21N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26721"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ((…SÐb 5 ‰oepsghbNAD27 / UTM zone 22N+proj=utm +zone=22 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / UTM zone 22N",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26722"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¼¼†?Ði 5‚#Š/epsghiNAD27 / Alabama East+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alabama East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-85.83333333333333],PARAMETER["scale_factor",0.99996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26729"],AXIS["X",EAST],AXIS["Y",NORTH]] ÒÒ†)Ðj 5‚ ŠepsghjNAD27 / Alabama West+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alabama West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-87.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26730"],AXIS["X",EAST],AXIS["Y",NORTH]] %%‡VÐk 7‚oŒepsghkNAD27 / Alaska zone 1+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=323.1301023611111 +k=0.9999 +x_0=5000000.001016002 +y_0=-5000000.001016002 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 1",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",57],PARAMETER["longitude_of_center",-133.6666666666667],PARAMETER["azimuth",323.1301023611111],PARAMETER["rectified_grid_angle",323.1301023611111],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",16404166.67],PARAMETER["false_northing",-16404166.67],AUTHORITY["EPSG","26731"],AXIS["X",EAST],AXIS["Y",NORTH]] Ü܆Ðl 7‚ŠepsghlNAD27 / Alaska zone 2+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 2",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-142],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26732"],AXIS["X",EAST],AXIS["Y",NORTH]] Ü܆Ðm 7‚ŠepsghmNAD27 / Alaska zone 3+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 3",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-146],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26733"],AXIS["X",EAST],AXIS["Y",NORTH]] Ü܆Ðn 7‚ŠepsghnNAD27 / Alaska zone 4+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 4",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-150],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26734"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó hRepsghR hSepsghS hTepsghT hUepsghU hVepsghV hWepsghW hXepsghX hYepsghY hZepsghZ h[epsgh[ h\epsgh\ h]epsgh] h^epsgh^ h_epsgh_ h`epsgh` haepsgha hbepsghb hiepsghi hjepsghj hkepsghk hlepsghl hmepsghm hnepsghn hoepsgho hpepsghp hqepsghq hrepsghr hsepsghs htepsght huepsghu hvepsghv hwepsghw hxepsghx hyepsghy hzepsghz h{epsgh{ h|epsgh| h}epsgh} h~epsgh~ hepsgh h€epsgh€ hepsgh h‚epsgh‚ hƒepsghƒ h„epsgh„ h…epsgh… h†epsgh† h‡epsgh‡ hˆepsghˆ hŽepsghŽ hepsgh hepsgh h‘epsgh‘ h’epsgh’ h“epsgh“ h”epsgh” h•epsgh• h–epsgh– h—epsgh— Ü܆Ðo 7‚ŠepsghoNAD27 / Alaska zone 5+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 5",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-154],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26735"],AXIS["X",EAST],AXIS["Y",NORTH]] Ü܆Ðp 7‚ŠepsghpNAD27 / Alaska zone 6+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 6",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-158],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26736"],AXIS["X",EAST],AXIS["Y",NORTH]] Ü܆Ðq 7‚ŠepsghqNAD27 / Alaska zone 7+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=213360.4267208534 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 7",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-162],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26737"],AXIS["X",EAST],AXIS["Y",NORTH]] Ü܆Ðr 7‚ŠepsghrNAD27 / Alaska zone 8+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 8",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-166],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26738"],AXIS["X",EAST],AXIS["Y",NORTH]] Ü܆Ðs 7‚ŠepsghsNAD27 / Alaska zone 9+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=182880.3657607315 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 9",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-170],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26739"],AXIS["X",EAST],AXIS["Y",NORTH]] ff‡Ðt 9‚M‹-epsghtNAD27 / Alaska zone 10+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333334 +lat_0=51 +lon_0=-176 +x_0=914401.8288036576 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Alaska zone 10",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",53.83333333333334],PARAMETER["standard_parallel_2",51.83333333333334],PARAMETER["latitude_of_origin",51],PARAMETER["central_meridian",-176],PARAMETER["false_easting",3000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26740"],AXIS["X",EAST],AXIS["Y",NORTH]] ``‡Ðu ?‚M‹3epsghuNAD27 / California zone I+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / California zone I",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.66666666666666],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-122],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26741"],AXIS["X",EAST],AXIS["Y",NORTH]] @@‡;Ðv A‚k‹SepsghvNAD27 / California zone II+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / California zone II",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.83333333333334],PARAMETER["standard_parallel_2",38.33333333333334],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-122],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26742"],AXIS["X",EAST],AXIS["Y",NORTH]] TT‡'Ðw C‚U‹?epsghwNAD27 / California zone III+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / California zone III",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.06666666666667],PARAMETER["latitude_of_origin",36.5],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26743"],AXIS["X",EAST],AXIS["Y",NORTH]] vv‡Ðx A‚5‹epsghxNAD27 / California zone IV+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / California zone IV",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.25],PARAMETER["standard_parallel_2",36],PARAMETER["latitude_of_origin",35.33333333333334],PARAMETER["central_meridian",-119],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26744"],AXIS["X",EAST],AXIS["Y",NORTH]] \\‡Ðy ?‚Q‹7epsghyNAD27 / California zone V+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / California zone V",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.46666666666667],PARAMETER["standard_parallel_2",34.03333333333333],PARAMETER["latitude_of_origin",33.5],PARAMETER["central_meridian",-118],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26745"],AXIS["X",EAST],AXIS["Y",NORTH]] ::‡AÐz A‚q‹YepsghzNAD27 / California zone VI+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / California zone VI",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.88333333333333],PARAMETER["standard_parallel_2",32.78333333333333],PARAMETER["latitude_of_origin",32.16666666666666],PARAMETER["central_meridian",-116.25],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26746"],AXIS["X",EAST],AXIS["Y",NORTH]]66666666667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +x_0=1276106.450596901 +y_0=127079.524511049 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / California zone VII (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.41666666666666],PARAMETER["standard_parallel_2",33.86666666666667],PARAMETER["latitude_of_origin",34.13333333333333],PARAMETER["central_meridian",-118.3333333333333],PARAMETER["false_easting",4186692.58],PARAMETER["false_northing",416926.74],AUTHORITY["EPSG","26747"],AXIS["X",EAST],AXIS["Y",NORTH]] RR†9Ð| 5‚Š)epsgh|NAD27 / Arizona East+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Arizona East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-110.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26748"],AXIS["X",EAST],AXIS["Y",NORTH]]ˆ Ð{ ]ƒ%Œ!epsgh{NAD27 / California zone VII (deprecated)+proj=lcc +lat_1=34.41666666666666 +lat_2=33.866 ¼¼†?Ð} ;‚Š/epsgh}NAD27 / Arizona Central+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Arizona Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-111.9166666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26749"],AXIS["X",EAST],AXIS["Y",NORTH]] ÎΆ-Ð~ 5‚Šepsgh~NAD27 / Arizona West+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Arizona West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-113.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26750"],AXIS["X",EAST],AXIS["Y",NORTH]] JJ‡1Ð 9‚i‹IepsghNAD27 / Arkansas North+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Arkansas North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.23333333333333],PARAMETER["standard_parallel_2",34.93333333333333],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-92],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26751"],AXIS["X",EAST],AXIS["Y",NORTH]] dd‡Ñ 9‚O‹/epsgh€NAD27 / Arkansas South+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Arkansas South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.76666666666667],PARAMETER["standard_parallel_2",33.3],PARAMETER["latitude_of_origin",32.66666666666666],PARAMETER["central_meridian",-92],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26752"],AXIS["X",EAST],AXIS["Y",NORTH]] DD‡7Ñ 9‚o‹OepsghNAD27 / Colorado North+proj=lcc +lat_1=39.71666666666667 +lat_2=40.78333333333333 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Colorado North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.71666666666667],PARAMETER["standard_parallel_2",40.78333333333333],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26753"],AXIS["X",EAST],AXIS["Y",NORTH]] pp‡ Ñ =‚?‹#epsgh‚NAD27 / Colorado Central+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Colorado Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.75],PARAMETER["standard_parallel_2",38.45],PARAMETER["latitude_of_origin",37.83333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26754"],AXIS["X",EAST],AXIS["Y",NORTH]] DD‡7Ñ 9‚o‹OepsghƒNAD27 / Colorado South+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Colorado South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.23333333333333],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26755"],AXIS["X",EAST],AXIS["Y",NORTH]] ee‡Ñ 3‚U‹-epsgh„NAD27 / Connecticut+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=182880.3657607315 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Connecticut",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.86666666666667],PARAMETER["standard_parallel_2",41.2],PARAMETER["latitude_of_origin",40.83333333333334],PARAMETER["central_meridian",-72.75],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26756"],AXIS["X",EAST],AXIS["Y",NORTH]] ÆÆ†5Ñ -‚!Š%epsgh…NAD27 / Delaware+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Delaware",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-75.41666666666667],PARAMETER["scale_factor",0.999995],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26757"],AXIS["X",EAST],AXIS["Y",NORTH]] ¸¸†CÑ 5‚'Š3epsgh†NAD27 / Florida East+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Florida East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26758"],AXIS["X",EAST],AXIS["Y",NORTH]] ¸¸†CÑ 5‚'Š3epsgh‡NAD27 / Florida West+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Florida West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-82],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26759"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~†}Ñ 7‚7‹epsghˆNAD27 / Florida North+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Florida North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.75],PARAMETER["standard_parallel_2",29.58333333333333],PARAMETER["latitude_of_origin",29],PARAMETER["central_meridian",-84.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26760"],AXIS["X",EAST],AXIS["Y",NORTH]] †9Ñ 5‚Š)epsghŽNAD27 / Georgia East+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Georgia East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-82.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26766"],AXIS["X",EAST],AXIS["Y",NORTH]] †9Ñ 5‚Š)epsghNAD27 / Georgia West+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Georgia West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-84.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26767"],AXIS["X",EAST],AXIS["Y",NORTH]] ——†dÑ 1‚SŠMepsghNAD27 / Idaho East+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Idaho East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-112.1666666666667],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26768"],AXIS["X",EAST],AXIS["Y",NORTH]] ­­†NÑ 7‚7Š7epsgh‘NAD27 / Idaho Central+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Idaho Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26769"],AXIS["X",EAST],AXIS["Y",NORTH]] ´´†GÑ 1‚/Š7epsgh’NAD27 / Idaho West+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Idaho West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-115.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26770"],AXIS["X",EAST],AXIS["Y",NORTH]] ””†gÑ 7‚SŠMepsgh“NAD27 / Illinois East+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Illinois East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-88.33333333333333],PARAMETER["scale_factor",0.999975],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26771"],AXIS["X",EAST],AXIS["Y",NORTH]] ˜˜†cÑ 7‚EŠSepsgh”NAD27 / Illinois West+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Illinois West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-90.16666666666667],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26772"],AXIS["X",EAST],AXIS["Y",NORTH]] ´´†GÑ 5‚+Š7epsgh•NAD27 / Indiana East+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Indiana East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-85.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26773"],AXIS["X",EAST],AXIS["Y",NORTH]] ´´†GÑ 5‚+Š7epsgh–NAD27 / Indiana West+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Indiana West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-87.08333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26774"],AXIS["X",EAST],AXIS["Y",NORTH]] hh‡Ñ 1‚S‹+epsgh—NAD27 / Iowa North+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Iowa North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.26666666666667],PARAMETER["standard_parallel_2",42.06666666666667],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26775"],AXIS["X",EAST],AXIS["Y",NORTH]] ll‡Ñ 1‚O‹'epsgh˜NAD27 / Iowa South+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Iowa South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.61666666666667],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26776"],AXIS["X",EAST],AXIS["Y",NORTH]] NN‡-Ñ 5‚i‹Eepsgh™NAD27 / Kansas North+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Kansas North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.78333333333333],PARAMETER["standard_parallel_2",38.71666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26777"],AXIS["X",EAST],AXIS["Y",NORTH]] JJ‡1Ñ 5‚m‹IepsghšNAD27 / Kansas South+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Kansas South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.56666666666667],PARAMETER["standard_parallel_2",37.26666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26778"],AXIS["X",EAST],AXIS["Y",NORTH]] ^^‡Ñ 9‚U‹5epsgh›NAD27 / Kentucky North+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Kentucky North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",38.96666666666667],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-84.25],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26779"],AXIS["X",EAST],AXIS["Y",NORTH]] DD‡7Ñ 9‚o‹OepsghœNAD27 / Kentucky South+proj=lcc +lat_1=36.73333333333333 +lat_2=37.93333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Kentucky South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.73333333333333],PARAMETER["standard_parallel_2",37.93333333333333],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26780"],AXIS["X",EAST],AXIS["Y",NORTH]] DD‡7Ñ ;‚m‹OepsghNAD27 / Louisiana North+proj=lcc +lat_1=31.16666666666667 +lat_2=32.66666666666666 +lat_0=30.66666666666667 +lon_0=-92.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Louisiana North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",31.16666666666667],PARAMETER["standard_parallel_2",32.66666666666666],PARAMETER["latitude_of_origin",30.66666666666667],PARAMETER["central_meridian",-92.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26781"],AXIS["X",EAST],AXIS["Y",NORTH]] ^^‡Ñ ;‚S‹5epsghžNAD27 / Louisiana South+proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.66666666666667 +lon_0=-91.33333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Louisiana South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",29.3],PARAMETER["standard_parallel_2",30.7],PARAMETER["latitude_of_origin",28.66666666666667],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26782"],AXIS["X",EAST],AXIS["Y",NORTH]] †9Ñ 1‚!Š)epsghŸNAD27 / Maine East+proj=tmerc +lat_0=43.83333333333334 +lon_0=-68.5 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Maine East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26783"],AXIS["X",EAST],AXIS["Y",NORTH]] žž†]Ñ 1‚EŠMepsgh NAD27 / Maine West+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Maine West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26784"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~†}Ñ! -‚7‹epsgh¡NAD27 / Maryland+proj=lcc +lat_1=38.3 +lat_2=39.45 +lat_0=37.83333333333334 +lon_0=-77 +x_0=243840.4876809754 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Maryland",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.3],PARAMETER["standard_parallel_2",39.45],PARAMETER["latitude_of_origin",37.83333333333334],PARAMETER["central_meridian",-77],PARAMETER["false_easting",800000.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","26785"],AXIS["X",EAST],AXIS["Y",NORTH]]bR …RY`gnu|ƒŠ‘˜Ÿ¦­´»ÂÉÐ×Þåìóú$+29@GNU\cjqx†”›¢©°·¾ÅÌÓÚáèïöý  '.5<CJQX_fmt{‚‰—ž¥¬³ºÁÈÏÖÝäëòù Ðq Ðr Ðs Ðt Ðu Ðv Ðw Ðx Ðy Ðz !Ð| "Ð} #Ð~ $Ð %Ñ &Ñ 'Ñ (Ñ )Ñ *Ñ +Ñ ,Ñ -Ñ .Ñ /Ñ 0Ñ 1Ñ 2Ñ 3Ñ 4Ñ 5Ñ 6Ñ 7Ñ 8Ñ 9Ñ :Ñ ;Ñ <Ñ =Ñ >Ñ ?Ñ @Ñ AÑ! CÑ" DÑ# EÑ' FÑ( GÑ) HÑ* IÑ+ JÑ, KÑ- LÑ/ NÑ1 OÑ2 PÑ3 RÑ; TÑ< UÑ= VÑ> WÑ? XÑC YÑD ZÑE [ÑF \ÑG ]ÑH ^ÑI _ÑN aÑO bÑP cÑQ dÑR eÑS fÑT gÑU iÑ[ lÑ\ mÑ] oÑ_ pÑ` qÑa rÑb sÑc tÑd uÑe vÑf wÑg xÑh yÑi zÑj {Ñk |Ñl }Ñm ~Ñn Ño €Ñp ‚Ñs UU‡&Ñ" I‚O‹=epsgh¢NAD27 / Massachusetts Mainland+proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333333 +lat_0=41 +lon_0=-71.5 +x_0=182880.3657607315 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Massachusetts Mainland",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.71666666666667],PARAMETER["standard_parallel_2",42.68333333333333],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-71.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26786"],AXIS["X",EAST],AXIS["Y",NORTH]] YY‡"Ñ# E‚O‹9epsgh£NAD27 / Massachusetts Island+proj=lcc +lat_1=41.28333333333333 +lat_2=41.48333333333333 +lat_0=41 +lon_0=-70.5 +x_0=60960.12192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Massachusetts Island",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.28333333333333],PARAMETER["standard_parallel_2",41.48333333333333],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-70.5],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26787"],AXIS["X",EAST],AXIS["Y",NORTH]] QQ‡*Ñ' ;‚m‹5epsgh§NAD27 / Minnesota North+proj=lcc +lat_1=47.03333333333333 +lat_2=48.63333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Minnesota North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.03333333333333],PARAMETER["standard_parallel_2",48.63333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26791"],AXIS["X",EAST],AXIS["Y",NORTH]] tt‡Ñ( ?‚9‹epsgh¨NAD27 / Minnesota Central+proj=lcc +lat_1=45.61666666666667 +lat_2=47.05 +lat_0=45 +lon_0=-94.25 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Minnesota Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.61666666666667],PARAMETER["standard_parallel_2",47.05],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26792"],AXIS["X",EAST],AXIS["Y",NORTH]] ff‡Ñ) ;‚K‹-epsgh©NAD27 / Minnesota South+proj=lcc +lat_1=43.78333333333333 +lat_2=45.21666666666667 +lat_0=43 +lon_0=-94 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Minnesota South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.78333333333333],PARAMETER["standard_parallel_2",45.21666666666667],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26793"],AXIS["X",EAST],AXIS["Y",NORTH]] šš†aÑ* =‚=ŠQepsghªNAD27 / Mississippi East+proj=tmerc +lat_0=29.66666666666667 +lon_0=-88.83333333333333 +k=0.99996 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Mississippi East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.66666666666667],PARAMETER["central_meridian",-88.83333333333333],PARAMETER["scale_factor",0.99996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26794"],AXIS["X",EAST],AXIS["Y",NORTH]] ¬¬†OÑ+ =‚+Š?epsgh«NAD27 / Mississippi West+proj=tmerc +lat_0=30.5 +lon_0=-90.33333333333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Mississippi West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-90.33333333333333],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26795"],AXIS["X",EAST],AXIS["Y",NORTH]] ²²†IÑ, 7‚+Š9epsgh¬NAD27 / Missouri East+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Missouri East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",35.83333333333334],PARAMETER["central_meridian",-90.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26796"],AXIS["X",EAST],AXIS["Y",NORTH]] ¬¬†OÑ- =‚+Š?epsgh­NAD27 / Missouri Central+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Missouri Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",35.83333333333334],PARAMETER["central_meridian",-92.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26797"],AXIS["X",EAST],AXIS["Y",NORTH]] B²B‡uÑ/ Cƒ'Œ epsgh¯NAD27 / California zone VII+proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666667 + M†IÑ. 7‚+Š9epsgh®NAD27 / Missouri West+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Missouri West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.16666666666666],PARAMETER["central_meridian",-94.5],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26798"],AXIS["X",EAST],AXIS["Y",NORTH]]lat_0=34.13333333333333 +lon_0=-118.3333333333333 +x_0=1276106.450596901 +y_0=1268253.006858014 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / California zone VII",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.41666666666666],PARAMETER["standard_parallel_2",33.86666666666667],PARAMETER["latitude_of_origin",34.13333333333333],PARAMETER["central_meridian",-118.3333333333333],PARAMETER["false_easting",4186692.58],PARAMETER["false_northing",4160926.74],AUTHORITY["EPSG","26799"],AXIS["X",EAST],AXIS["Y",NORTH]] ˆˆ†sÑ1 E‚IŠaepsgh±NAD Michigan / Michigan East+proj=tmerc +lat_0=41.5 +lon_0=-83.66666666666667 +k=0.999942857 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-ft +no_defsPROJCS["NAD Michigan / Michigan East",GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-83.66666666666667],PARAMETER["scale_factor",0.999942857],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26801"],AXIS["X",EAST],AXIS["Y",NORTH]] ’’†iÑ2 S‚1ŠWepsgh²NAD Michigan / Michigan Old Central+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_defsPROJCS["NAD Michigan / Michigan Old Central",GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-85.75],PARAMETER["scale_factor",0.999909091],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26802"],AXIS["X",EAST],AXIS["Y",NORTH]]   †[Ñ3 E‚1ŠIepsgh³NAD Michigan / Michigan West+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_defsPROJCS["NAD Michigan / Michigan West",GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-88.75],PARAMETER["scale_factor",0.999909091],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26803"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó h™epsgh™ hšepsghš h›epsgh› hœepsghœ hepsgh hžepsghž hŸepsghŸ h epsgh  h¡epsgh¡ h¢epsgh¢ h£epsgh£ h§epsgh§ h¨epsgh¨ h©epsgh© hªepsghª h«epsgh« h¬epsgh¬ h­epsgh­ h®epsgh® h¯epsgh¯ h±epsgh± h²epsgh² h³epsgh³ h»epsgh» h¼epsgh¼ h½epsgh½ h¾epsgh¾ h¿epsgh¿ hÃepsghà hÄepsghÄ hÅepsghÅ hÆepsghÆ hÇepsghÇ hÈepsghÈ hÉepsghÉ hÊepsghÊ hÎepsghÎ hÏepsghÏ hÐepsghÐ hÑepsghÑ hÒepsghÒ hÓepsghÓ hÔepsghÔ hÕepsghÕ hÙepsghÙ hÚepsghÚ hÛepsghÛ hÜepsghÜ hÝepsghÝ hÞepsghÞ hßepsghß hàepsghà háepsghá hâepsghâ hãepsghã häepsghä håepsghå hæepsghæ hçepsghç  ‡[Ñ; Gƒ‹qepsgh»NAD Michigan / Michigan North+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_defsPROJCS["NAD Michigan / Michigan North",GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.48333333333333],PARAMETER["standard_parallel_2",47.08333333333334],PARAMETER["latitude_of_origin",44.78333333333333],PARAMETER["central_meridian",-87],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26811"],AXIS["X",EAST],AXIS["Y",NORTH]]31666666666667 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-ft +no_defsPROJCS["NAD Michigan / Michigan Central",GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.18333333333333],PARAMETER["standard_parallel_2",45.7],PARAMETER["latitude_of_origin",43.31666666666667],PARAMETER["central_meridian",-84.33333333333333],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26812"],AXIS["X",EAST],AXIS["Y",NORTH]] ‡cÑ< Kƒ ‹yepsgh¼NAD Michigan / Michigan Central+proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43. S 66‡EÑ= G‚q‹[epsgh½NAD Michigan / Michigan South+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_defsPROJCS["NAD Michigan / Michigan South",GEOGCS["NAD27 Michigan",DATUM["NAD_Michigan",SPHEROID["Clarke 1866 Michigan",6378450.047548896,294.9786971646739,AUTHORITY["EPSG","7009"]],AUTHORITY["EPSG","6268"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4268"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.1],PARAMETER["standard_parallel_2",43.66666666666666],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-84.33333333333333],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26813"],AXIS["X",EAST],AXIS["Y",NORTH]] Í͆.Ñ> Y‚Š epsgh¾NAD83 / Maine East (ftUS) (deprecated)+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Maine East (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26814"],AXIS["X",EAST],AXIS["Y",NORTH]] ©©†RÑ? Y‚%Š/epsgh¿NAD83 / Maine West (ftUS) (deprecated)+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Maine West (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",900000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26815"],AXIS["X",EAST],AXIS["Y",NORTH]] --‡NÑC c‚}‹EepsghÃNAD83 / Minnesota North (ftUS) (deprecated)+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Minnesota North (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.63333333333333],PARAMETER["standard_parallel_2",47.03333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",800000.0000101601],PARAMETER["false_northing",99999.99998984],AUTHORITY["EPSG","26819"],AXIS["X",EAST],AXIS["Y",NORTH]] PP‡+ÑD g‚I‹/epsghÄNAD83 / Minnesota Central (ftUS) (deprecated)+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Minnesota Central (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.05],PARAMETER["standard_parallel_2",45.61666666666667],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",800000.0000101601],PARAMETER["false_northing",99999.99998984],AUTHORITY["EPSG","26820"],AXIS["X",EAST],AXIS["Y",NORTH]] BB‡9ÑE c‚[‹=epsghÅNAD83 / Minnesota South (ftUS) (deprecated)+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Minnesota South (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.21666666666667],PARAMETER["standard_parallel_2",43.78333333333333],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",800000.0000101601],PARAMETER["false_northing",99999.99998984],AUTHORITY["EPSG","26821"],AXIS["X",EAST],AXIS["Y",NORTH]] †††uÑF U‚%ŠyepsghÆNAD83 / Nebraska (ftUS) (deprecated)+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Nebraska (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",500000.0000101601],PARAMETER["false_northing",0],AUTHORITY["EPSG","26822"],AXIS["X",EAST],AXIS["Y",NORTH]] ––†eÑG kŠiepsghÇNAD83 / West Virginia North (ftUS) (deprecated)+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=1968500 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / West Virginia North (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.25],PARAMETER["standard_parallel_2",39],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26823"],AXIS["X",EAST],AXIS["Y",NORTH]] hh‡ÑH k‚-‹epsghÈNAD83 / West Virginia South (ftUS) (deprecated)+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / West Virginia South (ftUS) (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.88333333333333],PARAMETER["standard_parallel_2",37.48333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26824"],AXIS["X",EAST],AXIS["Y",NORTH]] ½½†>ÑI egŠ9epsghÉNAD83(HARN) / Maine East (ftUS) (deprecated)+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Maine East (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26825"],AXIS["X",EAST],AXIS["Y",NORTH]] )™)‡^ÑN o‚c‹sepsghÎNAD83(HARN) / Minnesota North (ftUS) (deprecated)+proj=lcc +lat_1=48.63333333333333 +lat `†bÑJ e‚ Š]epsghÊNAD83(HARN) / Maine West (ftUS) (deprecated)+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Maine West (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",900000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26826"],AXIS["X",EAST],AXIS["Y",NORTH]]_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Minnesota North (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.63333333333333],PARAMETER["standard_parallel_2",47.03333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",800000.0000101601],PARAMETER["false_northing",99999.99998984],AUTHORITY["EPSG","26830"],AXIS["X",EAST],AXIS["Y",NORTH]] @@‡;ÑO s‚/‹]epsghÏNAD83(HARN) / Minnesota Central (ftUS) (deprecated)+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Minnesota Central (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.05],PARAMETER["standard_parallel_2",45.61666666666667],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",800000.0000101601],PARAMETER["false_northing",99999.99998984],AUTHORITY["EPSG","26831"],AXIS["X",EAST],AXIS["Y",NORTH]] 22‡IÑP o‚A‹kepsghÐNAD83(HARN) / Minnesota South (ftUS) (deprecated)+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Minnesota South (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.21666666666667],PARAMETER["standard_parallel_2",43.78333333333333],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",800000.0000101601],PARAMETER["false_northing",99999.99998984],AUTHORITY["EPSG","26832"],AXIS["X",EAST],AXIS["Y",NORTH]] vv‡ÑQ a‚ ‹'epsghÑNAD83(HARN) / Nebraska (ftUS) (deprecated)+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / Nebraska (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",500000.0000101601],PARAMETER["false_northing",0],AUTHORITY["EPSG","26833"],AXIS["X",EAST],AXIS["Y",NORTH]] †††uÑR we‹epsghÒNAD83(HARN) / West Virginia North (ftUS) (deprecated)+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=1968500 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / West Virginia North (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.25],PARAMETER["standard_parallel_2",39],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26834"],AXIS["X",EAST],AXIS["Y",NORTH]] XX‡#ÑS w‚‹EepsghÓNAD83(HARN) / West Virginia South (ftUS) (deprecated)+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(HARN) / West Virginia South (ftUS) (deprecated)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.88333333333333],PARAMETER["standard_parallel_2",37.48333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26835"],AXIS["X",EAST],AXIS["Y",NORTH]] {{‡ÑT m‚‹epsghÔNAD83(NSRS2007) / Maine East (ftUS) (deprecated)+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Maine East (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26836"],AXIS["X",EAST],AXIS["Y",NORTH]] WW‡$ÑU m‚9‹+epsghÕNAD83(NSRS2007) / Maine West (ftUS) (deprecated)+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Maine West (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",900000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26837"],AXIS["X",EAST],AXIS["Y",NORTH]]+lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Minnesota North (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.63333333333333],PARAMETER["standard_parallel_2",47.03333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",800000.0000101601],PARAMETER["false_northing",99999.99998984],AUTHORITY["EPSG","26841"],AXIS["X",EAST],AXIS["Y",NORTH]] ° °ˆ Ñ[ w‚oŒ9epsghÛNAD83(NSRS2007) / Minnesota South (ftUS) (deprecated)+proj=lcc +lat_1=45.21666666666667 k‡}ÑZ {‚]Œ+epsghÚNAD83(NSRS2007) / Minnesota Central (ftUS) (deprecated)+proj=lcc +lat_1=47.05 +lat_2=45. jˆ ÑY wƒŒAepsghÙNAD83(NSRS2007) / Minnesota North (ftUS) (deprecated)+proj=lcc +lat_1=48.63333333333333 h61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Minnesota Central (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.05],PARAMETER["standard_parallel_2",45.61666666666667],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",800000.0000101601],PARAMETER["false_northing",99999.99998984],AUTHORITY["EPSG","26842"],AXIS["X",EAST],AXIS["Y",NORTH]]+lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Minnesota South (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.21666666666667],PARAMETER["standard_parallel_2",43.78333333333333],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",800000.0000101601],PARAMETER["false_northing",99999.99998984],AUTHORITY["EPSG","26843"],AXIS["X",EAST],AXIS["Y",NORTH]] 44‡GÑ\ i‚9‹uepsghÜNAD83(NSRS2007) / Nebraska (ftUS) (deprecated)+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / Nebraska (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",500000.0000101601],PARAMETER["false_northing",0],AUTHORITY["EPSG","26844"],AXIS["X",EAST],AXIS["Y",NORTH]] DD‡7Ñ] ‚‹eepsghÝNAD83(NSRS2007) / West Virginia North (ftUS) (deprecated)+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / West Virginia North (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.25],PARAMETER["standard_parallel_2",39],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26845"],AXIS["X",EAST],AXIS["Y",NORTH]]333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["NAD83(NSRS2007) / West Virginia South (ftUS) (deprecated)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.88333333333333],PARAMETER["standard_parallel_2",37.48333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26846"],AXIS["X",EAST],AXIS["Y",NORTH]] CC†HÑ_ ?‚Š;epsghßNAD83 / Maine East (ftUS)+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Maine East (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","26847"],AXIS["X",EAST],AXIS["Y",NORTH]]‡eÑ^ ‚AŒepsghÞNAD83(NSRS2007) / West Virginia South (ftUS) (deprecated)+proj=lcc +lat_1=38.88333333333 n ¤¤†WÑ` ?‚-ŠKepsghàNAD83 / Maine West (ftUS)+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Maine West (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",2952750],PARAMETER["false_northing",0],AUTHORITY["EPSG","26848"],AXIS["X",EAST],AXIS["Y",NORTH]] ..‡MÑa Iƒ ‹OepsgháNAD83 / Minnesota North (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Minnesota North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.63333333333333],PARAMETER["standard_parallel_2",47.03333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","26849"],AXIS["X",EAST],AXIS["Y",NORTH]] QQ‡*Ñb M‚W‹9epsghâNAD83 / Minnesota Central (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Minnesota Central (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.05],PARAMETER["standard_parallel_2",45.61666666666667],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","26850"],AXIS["X",EAST],AXIS["Y",NORTH]] CC‡8Ñc I‚i‹GepsghãNAD83 / Minnesota South (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Minnesota South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.21666666666667],PARAMETER["standard_parallel_2",43.78333333333333],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","26851"],AXIS["X",EAST],AXIS["Y",NORTH]] ‰‰†rÑd ;‚)‹ epsghäNAD83 / Nebraska (ftUS)+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / Nebraska (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","26852"],AXIS["X",EAST],AXIS["Y",NORTH]] ““†hÑe Q‚‹epsghåNAD83 / West Virginia North (ftUS)+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 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / West Virginia North (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.25],PARAMETER["standard_parallel_2",39],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26853"],AXIS["X",EAST],AXIS["Y",NORTH]] ee‡Ñf Q‚3‹1epsghæNAD83 / West Virginia South (ftUS)+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / West Virginia South (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.88333333333333],PARAMETER["standard_parallel_2",37.48333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26854"],AXIS["X",EAST],AXIS["Y",NORTH]] ££†XÑg K‚ŠiepsghçNAD83(HARN) / Maine East (ftUS)+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_defsPROJCS["NAD83(HARN) / Maine East (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","26855"],AXIS["X",EAST],AXIS["Y",NORTH]] ””†gÑh K‚ŠyepsghèNAD83(HARN) / Maine West (ftUS)+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_defsPROJCS["NAD83(HARN) / Maine West (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",2952750],PARAMETER["false_northing",0],AUTHORITY["EPSG","26856"],AXIS["X",EAST],AXIS["Y",NORTH]] ‡]Ñi U‚q‹}epsghéNAD83(HARN) / Minnesota North (ftUS)+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_defsPROJCS["NAD83(HARN) / Minnesota North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.63333333333333],PARAMETER["standard_parallel_2",47.03333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","26857"],AXIS["X",EAST],AXIS["Y",NORTH]] AA‡:Ñj Y‚=‹gepsghêNAD83(HARN) / Minnesota Central (ftUS)+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_defsPROJCS["NAD83(HARN) / Minnesota Central (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.05],PARAMETER["standard_parallel_2",45.61666666666667],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","26858"],AXIS["X",EAST],AXIS["Y",NORTH]] 33‡HÑk U‚O‹uepsghëNAD83(HARN) / Minnesota South (ftUS)+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_defsPROJCS["NAD83(HARN) / Minnesota South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.21666666666667],PARAMETER["standard_parallel_2",43.78333333333333],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","26859"],AXIS["X",EAST],AXIS["Y",NORTH]] yy‡Ñl G‚‹7epsghìNAD83(HARN) / Nebraska (ftUS)+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_defsPROJCS["NAD83(HARN) / Nebraska (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","26860"],AXIS["X",EAST],AXIS["Y",NORTH]] ƒƒ†xÑm ]k‹1epsghíNAD83(HARN) / West Virginia North (ftUS)+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_defsPROJCS["NAD83(HARN) / West Virginia North (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.25],PARAMETER["standard_parallel_2",39],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26861"],AXIS["X",EAST],AXIS["Y",NORTH]] UU‡&Ñn ]‚‹_epsghîNAD83(HARN) / West Virginia South (ftUS)+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_defsPROJCS["NAD83(HARN) / West Virginia South (ftUS)",GEOGCS["NAD83(HARN)",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6152"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4152"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.88333333333333],PARAMETER["standard_parallel_2",37.48333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26862"],AXIS["X",EAST],AXIS["Y",NORTH]] aa‡Ño S‚3‹7epsghïNAD83(NSRS2007) / Maine East (ftUS)+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Maine East (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",984250.0000000002],PARAMETER["false_northing",0],AUTHORITY["EPSG","26863"],AXIS["X",EAST],AXIS["Y",NORTH]] RR‡)Ñp S‚A‹GepsghðNAD83(NSRS2007) / Maine West (ftUS)+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Maine West (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",2952750],PARAMETER["false_northing",0],AUTHORITY["EPSG","26864"],AXIS["X",EAST],AXIS["Y",NORTH]]33333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Minnesota North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.63333333333333],PARAMETER["standard_parallel_2",47.03333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","26865"],AXIS["X",EAST],AXIS["Y",NORTH]] ° °ˆ Ñs ]‚}ŒCepsghóNAD83(NSRS2007) / Minnesota South (ftUS)+proj=lcc +lat_1=45.21666666666667 +lat_2=43.783 „‡|Ñr a‚kŒ5epsghòNAD83(NSRS2007) / Minnesota Central (ftUS)+proj=lcc +lat_1=47.05 +lat_2=45.6166666666666 ƒˆÑq ]ƒŒKepsghñNAD83(NSRS2007) / Minnesota North (ftUS)+proj=lcc +lat_1=48.63333333333333 +lat_2=47.033 7 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Minnesota Central (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.05],PARAMETER["standard_parallel_2",45.61666666666667],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","26866"],AXIS["X",EAST],AXIS["Y",NORTH]]33333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / Minnesota South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.21666666666667],PARAMETER["standard_parallel_2",43.78333333333333],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",2624666.6667],PARAMETER["false_northing",328083.3333],AUTHORITY["EPSG","26867"],AXIS["X",EAST],AXIS["Y",NORTH]] 77‡DÑt O‚=ŒepsghôNAD83(NSRS2007) / Nebraska (ftUS)+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_defsPROJCS["NAD83(NSRS2007) / Nebraska (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",1640416.6667],PARAMETER["false_northing",0],AUTHORITY["EPSG","26868"],AXIS["X",EAST],AXIS["Y",NORTH]] AA‡:Ñu e‚‹epsghõNAD83(NSRS2007) / West Virginia North (ftUS)+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 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / West Virginia North (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.25],PARAMETER["standard_parallel_2",39],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26869"],AXIS["X",EAST],AXIS["Y",NORTH]].48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defsPROJCS["NAD83(NSRS2007) / West Virginia South (ftUS)",GEOGCS["NAD83(NSRS2007)",DATUM["NAD83_National_Spatial_Reference_System_2007",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6759"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4759"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.88333333333333],PARAMETER["standard_parallel_2",37.48333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",1968500],PARAMETER["false_northing",0],AUTHORITY["EPSG","26870"],AXIS["X",EAST],AXIS["Y",NORTH]] ƒƒ†Ò ?GŠepsgi NAD83(CSRS) / MTM zone 11+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 11",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-82.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","26891"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]‡hÑv e‚GŒ-epsghöNAD83(NSRS2007) / West Virginia South (ftUS)+proj=lcc +lat_1=38.88333333333333 +lat_2=37 ‡ ÷÷†Ò ?CŠepsgi NAD83(CSRS) / MTM zone 12+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 12",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","26892"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÷÷†Ò ?CŠepsgi NAD83(CSRS) / MTM zone 13+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 13",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-84],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","26893"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÷÷†Ò ?CŠepsgiNAD83(CSRS) / MTM zone 14+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 14",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","26894"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÷÷†Ò ?CŠepsgiNAD83(CSRS) / MTM zone 15+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 15",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-90],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","26895"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÷÷†Ò ?CŠepsgiNAD83(CSRS) / MTM zone 16+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 16",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","26896"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÷÷†Ò ?CŠepsgiNAD83(CSRS) / MTM zone 17+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 17",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-96],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","26897"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …{Ò =C‰epsgiNAD83(CSRS) / MTM zone 1+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 1",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-53],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","26898"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] …{Ò =C‰epsgiNAD83(CSRS) / MTM zone 2+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["NAD83(CSRS) / MTM zone 2",GEOGCS["NAD83(CSRS)",DATUM["NAD83_Canadian_Spatial_Reference_System",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6140"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4617"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-56],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","26899"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó héepsghé hêepsghê hëepsghë hìepsghì híepsghí hîepsghî hïepsghï hðepsghð hñepsghñ hòepsghò hóepsghó hôepsghô hõepsghõ höepsghö i epsgi i epsgi i epsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi iepsgi i epsgi i!epsgi! i"epsgi" i#epsgi# i$epsgi$ i%epsgi% i&epsgi& i'epsgi' i(epsgi( i)epsgi) i*epsgi* i+epsgi+ i1epsgi1 i2epsgi2 i3epsgi3 i4epsgi4 i5epsgi5 i6epsgi6 i7epsgi7 i8epsgi8 i9epsgi9 i:epsgi: i;epsgi; i ¸Ò? ¹Ò@ ºÒA »ÒB ¼ÒD ½ÒE ¾ÒF ¿ÒG ÀÒH ÁÒI ÂÒJ ÃÒK ÄÒL ÅÒM ÆÒN ÇÒO ÈÒP ÉÒQ ÊÒR ËÒS ÌÒT ÍÒU ÎÒV ÐÒW ÑÒX ÒÒY ÓÒZ ÔÒ[ ÕÒ\ ÖÒ] ×Ò^ ØÒ_ ÙÒ` ÚÒa ÛÒb ÜÒc ÝÒd ÞÒe ßÒf àÒg áÒh âÒi ãÒj äÒk åÒl æÒm çÒn èÒo éÒp êÒq ëÒr …lÒ; 7a‰Iepsgi;NAD83 / Alaska zone 9+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Alaska zone 9",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",54],PARAMETER["central_meridian",-170],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26939"],AXIS["X",EAST],AXIS["Y",NORTH]] ˜˜†cÒ< 9‚/Šgepsgi ?‚W‹epsgi>NAD83 / California zone 2+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / California zone 2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.83333333333334],PARAMETER["standard_parallel_2",38.33333333333334],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-122],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","26942"],AXIS["X",EAST],AXIS["Y",NORTH]] €€†{Ò? ?‚AŠepsgi?NAD83 / California zone 3+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / California zone 3",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.06666666666667],PARAMETER["latitude_of_origin",36.5],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","26943"],AXIS["X",EAST],AXIS["Y",NORTH]]   †[Ò@ ?‚!Š_epsgi@NAD83 / California zone 4+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / California zone 4",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.25],PARAMETER["standard_parallel_2",36],PARAMETER["latitude_of_origin",35.33333333333334],PARAMETER["central_meridian",-119],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","26944"],AXIS["X",EAST],AXIS["Y",NORTH]] „„†wÒA ?‚=Š{epsgiANAD83 / California zone 5+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / California zone 5",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.46666666666667],PARAMETER["standard_parallel_2",34.03333333333333],PARAMETER["latitude_of_origin",33.5],PARAMETER["central_meridian",-118],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","26945"],AXIS["X",EAST],AXIS["Y",NORTH]] dd‡ÒB ?‚]‹epsgiBNAD83 / California zone 6+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / California zone 6",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.88333333333333],PARAMETER["standard_parallel_2",32.78333333333333],PARAMETER["latitude_of_origin",32.16666666666666],PARAMETER["central_meridian",-116.25],PARAMETER["false_easting",2000000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","26946"],AXIS["X",EAST],AXIS["Y",NORTH]] õõ†ÒD 5}‰cepsgiDNAD83 / Arizona East+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Arizona East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-110.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",213360],PARAMETER["false_northing",0],AUTHORITY["EPSG","26948"],AXIS["X",EAST],AXIS["Y",NORTH]] ïï† ÒE ;}‰iepsgiENAD83 / Arizona Central+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Arizona Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-111.9166666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",213360],PARAMETER["false_northing",0],AUTHORITY["EPSG","26949"],AXIS["X",EAST],AXIS["Y",NORTH]] …zÒF 5q‰WepsgiFNAD83 / Arizona West+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Arizona West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-113.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",213360],PARAMETER["false_northing",0],AUTHORITY["EPSG","26950"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~†}ÒG 9‚I‹epsgiGNAD83 / Arkansas North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Arkansas North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.23333333333333],PARAMETER["standard_parallel_2",34.93333333333333],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-92],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26951"],AXIS["X",EAST],AXIS["Y",NORTH]] ŽŽ†mÒH 9‚9ŠqepsgiHNAD83 / Arkansas South+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Arkansas South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.76666666666667],PARAMETER["standard_parallel_2",33.3],PARAMETER["latitude_of_origin",32.66666666666666],PARAMETER["central_meridian",-92],PARAMETER["false_easting",400000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","26952"],AXIS["X",EAST],AXIS["Y",NORTH]] ZZ‡!ÒI 9‚m‹%epsgiINAD83 / Colorado North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Colorado North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.78333333333333],PARAMETER["standard_parallel_2",39.71666666666667],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",914401.8289],PARAMETER["false_northing",304800.6096],AUTHORITY["EPSG","26953"],AXIS["X",EAST],AXIS["Y",NORTH]] †††uÒJ =‚=ŠyepsgiJNAD83 / Colorado Central+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Colorado Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.75],PARAMETER["standard_parallel_2",38.45],PARAMETER["latitude_of_origin",37.83333333333334],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",914401.8289],PARAMETER["false_northing",304800.6096],AUTHORITY["EPSG","26954"],AXIS["X",EAST],AXIS["Y",NORTH]] ZZ‡!ÒK 9‚m‹%epsgiKNAD83 / Colorado South+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Colorado South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.43333333333333],PARAMETER["standard_parallel_2",37.23333333333333],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-105.5],PARAMETER["false_easting",914401.8289],PARAMETER["false_northing",304800.6096],AUTHORITY["EPSG","26955"],AXIS["X",EAST],AXIS["Y",NORTH]] zz‡ÒL 3‚S‹epsgiLNAD83 / Connecticut+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Connecticut",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.86666666666667],PARAMETER["standard_parallel_2",41.2],PARAMETER["latitude_of_origin",40.83333333333334],PARAMETER["central_meridian",-72.75],PARAMETER["false_easting",304800.6096],PARAMETER["false_northing",152400.3048],AUTHORITY["EPSG","26956"],AXIS["X",EAST],AXIS["Y",NORTH]] ùù†ÒM -‚‰_epsgiMNAD83 / Delaware+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Delaware",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-75.41666666666667],PARAMETER["scale_factor",0.999995],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26957"],AXIS["X",EAST],AXIS["Y",NORTH]] ëë†ÒN 5‚‰mepsgiNNAD83 / Florida East+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Florida East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26958"],AXIS["X",EAST],AXIS["Y",NORTH]] ëë†ÒO 5‚‰mepsgiONAD83 / Florida West+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Florida West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.33333333333333],PARAMETER["central_meridian",-82],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26959"],AXIS["X",EAST],AXIS["Y",NORTH]] ²²†IÒP 7‚ŠMepsgiPNAD83 / Florida North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Florida North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.75],PARAMETER["standard_parallel_2",29.58333333333333],PARAMETER["latitude_of_origin",29],PARAMETER["central_meridian",-84.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26960"],AXIS["X",EAST],AXIS["Y",NORTH]] ãã†ÒQ 7‚ ‰uepsgiQNAD83 / Hawaii zone 1+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Hawaii zone 1",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",18.83333333333333],PARAMETER["central_meridian",-155.5],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26961"],AXIS["X",EAST],AXIS["Y",NORTH]] ˈ0ÒR 7‚%Š epsgiRNAD83 / Hawaii zone 2+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Hawaii zone 2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",20.33333333333333],PARAMETER["central_meridian",-156.6666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26962"],AXIS["X",EAST],AXIS["Y",NORTH]] ïï† ÒS 7‚‰iepsgiSNAD83 / Hawaii zone 3+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Hawaii zone 3",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.16666666666667],PARAMETER["central_meridian",-158],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26963"],AXIS["X",EAST],AXIS["Y",NORTH]] ëë†ÒT 7‚‰mepsgiTNAD83 / Hawaii zone 4+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Hawaii zone 4",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.83333333333333],PARAMETER["central_meridian",-159.5],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26964"],AXIS["X",EAST],AXIS["Y",NORTH]] ß߆ÒU 7‚‰yepsgiUNAD83 / Hawaii zone 5+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Hawaii zone 5",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",21.66666666666667],PARAMETER["central_meridian",-160.1666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26965"],AXIS["X",EAST],AXIS["Y",NORTH]] õõ†ÒV 5}‰cepsgiVNAD83 / Georgia East+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Georgia East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-82.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26966"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó i?epsgi? i@epsgi@ iAepsgiA iBepsgiB iDepsgiD iEepsgiE iFepsgiF iGepsgiG iHepsgiH iIepsgiI iJepsgiJ iKepsgiK iLepsgiL iMepsgiM iNepsgiN iOepsgiO iPepsgiP iQepsgiQ iRepsgiR iSepsgiS iTepsgiT iUepsgiU iVepsgiV iWepsgiW iXepsgiX iYepsgiY iZepsgiZ i[epsgi[ i\epsgi\ i]epsgi] i^epsgi^ i_epsgi_ i`epsgi` iaepsgia ibepsgib icepsgic idepsgid ieepsgie ifepsgif igepsgig ihepsgih iiepsgii ijepsgij ikepsgik ilepsgil imepsgim inepsgin ioepsgio ipepsgip iqepsgiq irepsgir isepsgis itepsgit iuepsgiu ivepsgiv iepsgi ižepsgiž iŸepsgiŸ i epsgi  õõ†ÒW 5}‰cepsgiWNAD83 / Georgia West+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Georgia West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",30],PARAMETER["central_meridian",-84.16666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26967"],AXIS["X",EAST],AXIS["Y",NORTH]] Êʆ1ÒX 1‚3ŠepsgiXNAD83 / Idaho East+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Idaho East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-112.1666666666667],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26968"],AXIS["X",EAST],AXIS["Y",NORTH]] àà†ÒY 7‚‰qepsgiYNAD83 / Idaho Central+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Idaho Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-114],PARAMETER["scale_factor",0.999947368],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26969"],AXIS["X",EAST],AXIS["Y",NORTH]] çç†ÒZ 1‚‰qepsgiZNAD83 / Idaho West+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Idaho West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-115.75],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",800000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26970"],AXIS["X",EAST],AXIS["Y",NORTH]] Çdž4Ò[ 7‚3Šepsgi[NAD83 / Illinois East+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Illinois East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-88.33333333333333],PARAMETER["scale_factor",0.999975],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26971"],AXIS["X",EAST],AXIS["Y",NORTH]] ˈ0Ò\ 7‚%Š epsgi\NAD83 / Illinois West+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Illinois West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-90.16666666666667],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26972"],AXIS["X",EAST],AXIS["Y",NORTH]] Ý݆Ò] 5‚‰{epsgi]NAD83 / Indiana East+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Indiana East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-85.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",100000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","26973"],AXIS["X",EAST],AXIS["Y",NORTH]] Ý݆Ò^ 5‚‰{epsgi^NAD83 / Indiana West+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Indiana West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-87.08333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",900000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","26974"],AXIS["X",EAST],AXIS["Y",NORTH]] ŽŽ†mÒ_ 1‚AŠqepsgi_NAD83 / Iowa North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Iowa North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.26666666666667],PARAMETER["standard_parallel_2",42.06666666666667],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",1500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","26975"],AXIS["X",EAST],AXIS["Y",NORTH]]   †[Ò` 1‚/Š_epsgi`NAD83 / Iowa South+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Iowa South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.61666666666667],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-93.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26976"],AXIS["X",EAST],AXIS["Y",NORTH]] ‚‚†yÒa 5‚IŠ}epsgiaNAD83 / Kansas North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Kansas North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.78333333333333],PARAMETER["standard_parallel_2",38.71666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26977"],AXIS["X",EAST],AXIS["Y",NORTH]] tt‡Òb 5‚W‹ epsgibNAD83 / Kansas South+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Kansas South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.56666666666667],PARAMETER["standard_parallel_2",37.26666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",400000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","26978"],AXIS["X",EAST],AXIS["Y",NORTH]] xx‡Òc S‚5‹epsgicNAD83 / Kentucky North (deprecated)+proj=lcc +lat_1=37.96666666666667 +lat_2=37.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Kentucky North (deprecated)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",37.96666666666667],PARAMETER["latitude_of_origin",37.5],PARAMETER["central_meridian",-84.25],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26979"],AXIS["X",EAST],AXIS["Y",NORTH]] nn‡ Òd 9‚Y‹epsgidNAD83 / Kentucky South+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Kentucky South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.93333333333333],PARAMETER["standard_parallel_2",36.73333333333333],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-85.75],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","26980"],AXIS["X",EAST],AXIS["Y",NORTH]] †kÒe ;‚5ŠoepsgieNAD83 / Louisiana North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Louisiana North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",32.66666666666666],PARAMETER["standard_parallel_2",31.16666666666667],PARAMETER["latitude_of_origin",30.5],PARAMETER["central_meridian",-92.5],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26981"],AXIS["X",EAST],AXIS["Y",NORTH]] ªª†QÒf ;‚ŠUepsgifNAD83 / Louisiana South+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Louisiana South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.7],PARAMETER["standard_parallel_2",29.3],PARAMETER["latitude_of_origin",28.5],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26982"],AXIS["X",EAST],AXIS["Y",NORTH]] õõ†Òg 1‚‰cepsgigNAD83 / Maine East+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Maine East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-68.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26983"],AXIS["X",EAST],AXIS["Y",NORTH]] Ñц*Òh 1‚%ŠepsgihNAD83 / Maine West+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Maine West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.83333333333334],PARAMETER["central_meridian",-70.16666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",900000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26984"],AXIS["X",EAST],AXIS["Y",NORTH]] ¼¼†?Òi -‚ŠCepsgiiNAD83 / Maryland+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Maryland",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.45],PARAMETER["standard_parallel_2",38.3],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-77],PARAMETER["false_easting",400000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26985"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~†}Òj I‚9‹epsgijNAD83 / Massachusetts Mainland+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Massachusetts Mainland",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.68333333333333],PARAMETER["standard_parallel_2",41.71666666666667],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-71.5],PARAMETER["false_easting",200000],PARAMETER["false_northing",750000],AUTHORITY["EPSG","26986"],AXIS["X",EAST],AXIS["Y",NORTH]] ŒŒ†oÒk E‚/ŠsepsgikNAD83 / Massachusetts Island+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Massachusetts Island",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.48333333333333],PARAMETER["standard_parallel_2",41.28333333333333],PARAMETER["latitude_of_origin",41],PARAMETER["central_meridian",-70.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26987"],AXIS["X",EAST],AXIS["Y",NORTH]] ||†Òl 9‚K‹epsgilNAD83 / Michigan North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Michigan North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.08333333333334],PARAMETER["standard_parallel_2",45.48333333333333],PARAMETER["latitude_of_origin",44.78333333333333],PARAMETER["central_meridian",-87],PARAMETER["false_easting",8000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26988"],AXIS["X",EAST],AXIS["Y",NORTH]] tt‡Òm =‚O‹ epsgimNAD83 / Michigan Central+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Michigan Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.7],PARAMETER["standard_parallel_2",44.18333333333333],PARAMETER["latitude_of_origin",43.31666666666667],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",6000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26989"],AXIS["X",EAST],AXIS["Y",NORTH]] ’’†iÒn 9‚5ŠmepsginNAD83 / Michigan South+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Michigan South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43.66666666666666],PARAMETER["standard_parallel_2",42.1],PARAMETER["latitude_of_origin",41.5],PARAMETER["central_meridian",-84.36666666666666],PARAMETER["false_easting",4000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26990"],AXIS["X",EAST],AXIS["Y",NORTH]] {{‡Òo ;‚WŠwepsgioNAD83 / Minnesota North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Minnesota North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.63333333333333],PARAMETER["standard_parallel_2",47.03333333333333],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",-93.1],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","26991"],AXIS["X",EAST],AXIS["Y",NORTH]] žž†]Òp ?‚#ŠaepsgipNAD83 / Minnesota Central+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Minnesota Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.05],PARAMETER["standard_parallel_2",45.61666666666667],PARAMETER["latitude_of_origin",45],PARAMETER["central_meridian",-94.25],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","26992"],AXIS["X",EAST],AXIS["Y",NORTH]] †kÒq ;‚5ŠoepsgiqNAD83 / Minnesota South+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Minnesota South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.21666666666667],PARAMETER["standard_parallel_2",43.78333333333333],PARAMETER["latitude_of_origin",43],PARAMETER["central_meridian",-94],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","26993"],AXIS["X",EAST],AXIS["Y",NORTH]] çç†Òr =‚‰qepsgirNAD83 / Mississippi East+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Mississippi East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-88.83333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26994"],AXIS["X",EAST],AXIS["Y",NORTH]] çç†Òs =‚‰qepsgisNAD83 / Mississippi West+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Mississippi West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",29.5],PARAMETER["central_meridian",-90.33333333333333],PARAMETER["scale_factor",0.99995],PARAMETER["false_easting",700000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26995"],AXIS["X",EAST],AXIS["Y",NORTH]] åå†Òt 7‚ ‰sepsgitNAD83 / Missouri East+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933333 +x_0=250000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Missouri East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",35.83333333333334],PARAMETER["central_meridian",-90.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26996"],AXIS["X",EAST],AXIS["Y",NORTH]] ß߆Òu =‚ ‰yepsgiuNAD83 / Missouri Central+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933333 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Missouri Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",35.83333333333334],PARAMETER["central_meridian",-92.5],PARAMETER["scale_factor",0.999933333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26997"],AXIS["X",EAST],AXIS["Y",NORTH]] åå†Òv 7‚ ‰sepsgivNAD83 / Missouri West+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941177 +x_0=850000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Missouri West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36.16666666666666],PARAMETER["central_meridian",-94.5],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",850000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26998"],AXIS["X",EAST],AXIS["Y",NORTH]] 11…JÓCq‰kepsgiNahrwan 1967 / UTM zone 37N+proj=utm +zone=37 +ellps=clrk80 +units=m +no_defsPROJCS["Nahrwan 1967 / UTM zone 37N",GEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","27037"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 11…JÓCq‰kepsgižNahrwan 1967 / UTM zone 38N+proj=utm +zone=38 +ellps=clrk80 +units=m +no_defsPROJCS["Nahrwan 1967 / UTM zone 38N",GEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","27038"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 11…JÓCq‰kepsgiŸNahrwan 1967 / UTM zone 39N+proj=utm +zone=39 +ellps=clrk80 +units=m +no_defsPROJCS["Nahrwan 1967 / UTM zone 39N",GEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","27039"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 11…JÓ Cq‰kepsgi Nahrwan 1967 / UTM zone 40N+proj=utm +zone=40 +ellps=clrk80 +units=m +no_defsPROJCS["Nahrwan 1967 / UTM zone 40N",GEOGCS["Nahrwan 1967",DATUM["Nahrwan_1967",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6270"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4270"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","27040"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…FÓpEm‰eepsgiðNaparima 1972 / UTM zone 20N+proj=utm +zone=20 +ellps=intl +units=m +no_defsPROJCS["Naparima 1972 / UTM zone 20N",GEOGCS["Naparima 1972",DATUM["Naparima_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6271"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4271"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","27120"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÔÔ†'Ô@ GYŠ7epsgj@NZGD49 / New Zealand Map Grid+proj=nzmg +lat_0=-41 +lon_0=173 +x_0=2510000 +y_0=6023150 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / New Zealand Map Grid",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["New_Zealand_Map_Grid"],PARAMETER["latitude_of_origin",-41],PARAMETER["central_meridian",173],PARAMETER["false_easting",2510000],PARAMETER["false_northing",6023150],AUTHORITY["EPSG","27200"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ww‡ÔE C‚%‹)epsgjENZGD49 / Mount Eden Circuit+proj=tmerc +lat_0=-36.87986527777778 +lon_0=174.7643393611111 +k=0.9999 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Mount Eden Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-36.87986527777778],PARAMETER["central_meridian",174.7643393611111],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27205"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ……†vÔF I‚‹epsgjFNZGD49 / Bay of Plenty Circuit+proj=tmerc +lat_0=-37.76124980555556 +lon_0=176.46619725 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Bay of Plenty Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-37.76124980555556],PARAMETER["central_meridian",176.46619725],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27206"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] †|ÔG E‚‹!epsgjGNZGD49 / Poverty Bay Circuit+proj=tmerc +lat_0=-38.62470277777778 +lon_0=177.8856362777778 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Poverty Bay Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-38.62470277777778],PARAMETER["central_meridian",177.8856362777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27207"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] †zÔH C‚‹epsgjHNZGD49 / Hawkes Bay Circuit+proj=tmerc +lat_0=-39.65092930555556 +lon_0=176.6736805277778 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Hawkes Bay Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-39.65092930555556],PARAMETER["central_meridian",176.6736805277778],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27208"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] †lÔI ?‚‹epsgjINZGD49 / Taranaki Circuit+proj=tmerc +lat_0=-39.13575830555556 +lon_0=174.22801175 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Taranaki Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-39.13575830555556],PARAMETER["central_meridian",174.22801175],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27209"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ƒƒ†xÔJ A‚‹epsgjJNZGD49 / Tuhirangi Circuit+proj=tmerc +lat_0=-39.51247038888889 +lon_0=175.6400368055556 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Tuhirangi Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-39.51247038888889],PARAMETER["central_meridian",175.6400368055556],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27210"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ……†vÔK ?‚‹epsgjKNZGD49 / Wanganui Circuit+proj=tmerc +lat_0=-40.24194713888889 +lon_0=175.4880996111111 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Wanganui Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-40.24194713888889],PARAMETER["central_meridian",175.4880996111111],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27211"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ƒƒ†xÔL A‚‹epsgjLNZGD49 / Wairarapa Circuit+proj=tmerc +lat_0=-40.92553263888889 +lon_0=175.6473496666667 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Wairarapa Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-40.92553263888889],PARAMETER["central_meridian",175.6473496666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27212"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] †zÔM C‚‹epsgjMNZGD49 / Wellington Circuit+proj=tmerc +lat_0=-41.30131963888888 +lon_0=174.7766231111111 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Wellington Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.30131963888888],PARAMETER["central_meridian",174.7766231111111],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27213"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ‹‹†pÔN E‚‹epsgjNNZGD49 / Collingwood Circuit+proj=tmerc +lat_0=-40.71475905555556 +lon_0=172.6720465 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Collingwood Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-40.71475905555556],PARAMETER["central_meridian",172.6720465],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27214"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ‰‰†rÔO ;‚‹epsgjONZGD49 / Nelson Circuit+proj=tmerc +lat_0=-41.27454472222222 +lon_0=173.2993168055555 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Nelson Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.27454472222222],PARAMETER["central_meridian",173.2993168055555],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27215"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ‡‡†tÔP =‚‹epsgjPNZGD49 / Karamea Circuit+proj=tmerc +lat_0=-41.28991152777778 +lon_0=172.1090281944444 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Karamea Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.28991152777778],PARAMETER["central_meridian",172.1090281944444],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27216"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ‰‰†rÔQ ;‚‹epsgjQNZGD49 / Buller Circuit+proj=tmerc +lat_0=-41.81080286111111 +lon_0=171.5812600555556 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Buller Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.81080286111111],PARAMETER["central_meridian",171.5812600555556],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27217"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] †nÔR 7‚‹epsgjRNZGD49 / Grey Circuit+proj=tmerc +lat_0=-42.33369427777778 +lon_0=171.5497713055556 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Grey Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-42.33369427777778],PARAMETER["central_meridian",171.5497713055556],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27218"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ‹‹†pÔS 9‚‹epsgjSNZGD49 / Amuri Circuit+proj=tmerc +lat_0=-42.68911658333333 +lon_0=173.0101333888889 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Amuri Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-42.68911658333333],PARAMETER["central_meridian",173.0101333888889],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27219"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] †|ÔT E‚‹!epsgjTNZGD49 / Marlborough Circuit+proj=tmerc +lat_0=-41.54448666666666 +lon_0=173.8020741111111 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Marlborough Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-41.54448666666666],PARAMETER["central_meridian",173.8020741111111],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27220"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ‘‘†jÔU ?‚‹epsgjUNZGD49 / Hokitika Circuit+proj=tmerc +lat_0=-42.88632236111111 +lon_0=170.9799935 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Hokitika Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-42.88632236111111],PARAMETER["central_meridian",170.9799935],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27221"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ‡‡†tÔV =‚‹epsgjVNZGD49 / Okarito Circuit+proj=tmerc +lat_0=-43.11012813888889 +lon_0=170.2609258333333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Okarito Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-43.11012813888889],PARAMETER["central_meridian",170.2609258333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27222"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ‹‹†pÔW G‚ ‹epsgjWNZGD49 / Jacksons Bay Circuit+proj=tmerc +lat_0=-43.97780288888889 +lon_0=168.606267 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Jacksons Bay Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-43.97780288888889],PARAMETER["central_meridian",168.606267],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27223"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] yy‡ÔX K‚‹'epsgjXNZGD49 / Mount Pleasant Circuit+proj=tmerc +lat_0=-43.59063758333333 +lon_0=172.7271935833333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Mount Pleasant Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-43.59063758333333],PARAMETER["central_meridian",172.7271935833333],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27224"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ‰‰†rÔY ;‚‹epsgjYNZGD49 / Gawler Circuit+proj=tmerc +lat_0=-43.74871155555556 +lon_0=171.3607484722222 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Gawler Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-43.74871155555556],PARAMETER["central_meridian",171.3607484722222],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27225"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ‰‰†rÔZ ;‚‹epsgjZNZGD49 / Timaru Circuit+proj=tmerc +lat_0=-44.40222036111111 +lon_0=171.0572508333333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Timaru Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-44.40222036111111],PARAMETER["central_meridian",171.0572508333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27226"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó j@epsgj@ jEepsgjE jFepsgjF jGepsgjG jHepsgjH jIepsgjI jJepsgjJ jKepsgjK jLepsgjL jMepsgjM jNepsgjN jOepsgjO jPepsgjP jQepsgjQ jRepsgjR jSepsgjS jTepsgjT jUepsgjU jVepsgjV jWepsgjW jXepsgjX jYepsgjY jZepsgjZ j[epsgj[ j\epsgj\ j]epsgj] j^epsgj^ j_epsgj_ j`epsgj` jzepsgjz j{epsgj{ j|epsgj| j›epsgj› jœepsgjœ jÿepsgjÿ kepsgk kepsgk kepsgk kepsgk kepsgk kepsgk kepsgk k%epsgk% kdepsgkd keepsgke klepsgkl k©epsgk© kªepsgkª k«epsgk« k¬epsgk¬ k³epsgk³ k´epsgk´ kµepsgkµ k¶epsgk¶ k½epsgk½ k¾epsgk¾ k¿epsgk¿ kÀepsgkÀ kÇepsgkÇ †|Ô[ E‚‹!epsgj[NZGD49 / Lindis Peak Circuit+proj=tmerc +lat_0=-44.73526797222222 +lon_0=169.4677550833333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Lindis Peak Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-44.73526797222222],PARAMETER["central_meridian",169.4677550833333],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27227"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] yy‡Ô\ K‚‹'epsgj\NZGD49 / Mount Nicholas Circuit+proj=tmerc +lat_0=-45.13290258333333 +lon_0=168.3986411944444 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Mount Nicholas Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-45.13290258333333],PARAMETER["central_meridian",168.3986411944444],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27228"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] †zÔ] C‚‹epsgj]NZGD49 / Mount York Circuit+proj=tmerc +lat_0=-45.56372616666666 +lon_0=167.7388617777778 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Mount York Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-45.56372616666666],PARAMETER["central_meridian",167.7388617777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27229"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] ss‡Ô^ Q‚‹-epsgj^NZGD49 / Observation Point Circuit+proj=tmerc +lat_0=-45.81619661111111 +lon_0=170.6285951666667 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Observation Point Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-45.81619661111111],PARAMETER["central_meridian",170.6285951666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27230"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] qq‡ Ô_ G‚'‹/epsgj_NZGD49 / North Taieri Circuit+proj=tmerc +lat_0=-45.86151336111111 +lon_0=170.2825891111111 +k=0.99996 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / North Taieri Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-45.86151336111111],PARAMETER["central_meridian",170.2825891111111],PARAMETER["scale_factor",0.99996],PARAMETER["false_easting",300000],PARAMETER["false_northing",700000],AUTHORITY["EPSG","27231"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] †nÔ` 9‚‹epsgj`NZGD49 / Bluff Circuit+proj=tmerc +lat_0=-46.60000961111111 +lon_0=168.342872 +k=1 +x_0=300002.66 +y_0=699999.58 +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / Bluff Circuit",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-46.60000961111111],PARAMETER["central_meridian",168.342872],PARAMETER["scale_factor",1],PARAMETER["false_easting",300002.66],PARAMETER["false_northing",699999.58],AUTHORITY["EPSG","27232"],AXIS["Northing",NORTH],AXIS["Easting",EAST]] çç†Ôz 7ŠcepsgjzNZGD49 / UTM zone 58S+proj=utm +zone=58 +south +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / UTM zone 58S",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","27258"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] çç†Ô{ 7Šcepsgj{NZGD49 / UTM zone 59S+proj=utm +zone=59 +south +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / UTM zone 59S",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","27259"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] çç†Ô| 7Šcepsgj|NZGD49 / UTM zone 60S+proj=utm +zone=60 +south +ellps=intl +datum=nzgd49 +units=m +no_defsPROJCS["NZGD49 / UTM zone 60S",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","27260"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] jj‡Õ A‚9‹1epsgj›NZGD49 / North Island Grid+proj=tmerc +lat_0=-39 +lon_0=175.5 +k=1 +x_0=274319.5243848086 +y_0=365759.3658464114 +ellps=intl +datum=nzgd49 +to_meter=0.9143984146160287 +no_defsPROJCS["NZGD49 / North Island Grid",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["British yard (Sears 1922)",0.9143984146160287,AUTHORITY["EPSG","9040"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-39],PARAMETER["central_meridian",175.5],PARAMETER["scale_factor",1],PARAMETER["false_easting",300000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","27291"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] jj‡Õ A‚9‹1epsgjœNZGD49 / South Island Grid+proj=tmerc +lat_0=-44 +lon_0=171.5 +k=1 +x_0=457199.2073080143 +y_0=457199.2073080143 +ellps=intl +datum=nzgd49 +to_meter=0.9143984146160287 +no_defsPROJCS["NZGD49 / South Island Grid",GEOGCS["NZGD49",DATUM["New_Zealand_Geodetic_Datum_1949",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHORITY["EPSG","6272"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4272"]],UNIT["British yard (Sears 1922)",0.9143984146160287,AUTHORITY["EPSG","9040"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",-44],PARAMETER["central_meridian",171.5],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","27292"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] xx‡Õ E‚kŠ_epsgjÿNGO 1948 (Oslo) / NGO zone I+proj=tmerc +lat_0=58 +lon_0=-4.666666666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defsPROJCS["NGO 1948 (Oslo) / NGO zone I",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",58],PARAMETER["central_meridian",-4.666666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","27391"],AXIS["x",NORTH],AXIS["y",EAST]]bR SRY`gnu|ƒŠ‘˜Ÿ¦­´»ÂÉÐ×Þåìóú$+29@GNU\cjqx†”›¢©°·¾ÅÌÓÚáèïöý  '.5<CJQX_fmt{‚‰—ž¥¬³ºÁÈÏÖÝäëòù íÒt îÒu ïÒv ðÓ ñÓ òÓ óÓ ôÓp õÔ@ öÔE ÷ÔF øÔG ùÔH úÔI ûÔJ üÔK ýÔL þÔM ÿÔN ÔO ÔP ÔQ ÔR ÔS ÔT ÔU ÔV ÔW ÔX ÔY ÔZ Ô[ Ô\ Ô] Ô^ Ô_ Ô` Ôz Ô{ Ô| Õ Õ Õ Ö Ö Ö Ö Ö Ö Ö !Ö% "Öd #Öe $Öl %×) &×* '×+ (×, )×3 *×4 +×5 ,×6 -×= .×> /×? 0×@ 1×G 2×H 3×I 4×J 5Ø4 6Ü 8Ü 9Ü! :ÜH ;Ý< <Ý= =Ý> >Ý? ?Ý@ @ÝA AÝB BÝC CÝD DÝE EÝF FÝr GÝs HÝt IÝu JÝv LÝw MÝx NÝy OÝz PÝ{ QÝ| RÝ} vv‡Ö G‚kŠaepsgkNGO 1948 (Oslo) / NGO zone II+proj=tmerc +lat_0=58 +lon_0=-2.333333333333333 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defsPROJCS["NGO 1948 (Oslo) / NGO zone II",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",58],PARAMETER["central_meridian",-2.333333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","27392"],AXIS["x",NORTH],AXIS["y",EAST]] ––†eÖ I‚IŠAepsgkNGO 1948 (Oslo) / NGO zone III+proj=tmerc +lat_0=58 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defsPROJCS["NGO 1948 (Oslo) / NGO zone III",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",58],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","27393"],AXIS["x",NORTH],AXIS["y",EAST]] ””†gÖ G‚MŠCepsgkNGO 1948 (Oslo) / NGO zone IV+proj=tmerc +lat_0=58 +lon_0=2.5 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defsPROJCS["NGO 1948 (Oslo) / NGO zone IV",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",58],PARAMETER["central_meridian",2.5],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","27394"],AXIS["x",NORTH],AXIS["y",EAST]] zz‡Ö E‚iŠ]epsgkNGO 1948 (Oslo) / NGO zone V+proj=tmerc +lat_0=58 +lon_0=6.166666666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defsPROJCS["NGO 1948 (Oslo) / NGO zone V",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",58],PARAMETER["central_meridian",6.166666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","27395"],AXIS["x",NORTH],AXIS["y",EAST]] xx‡Ö G‚iŠ_epsgkNGO 1948 (Oslo) / NGO zone VI+proj=tmerc +lat_0=58 +lon_0=10.16666666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defsPROJCS["NGO 1948 (Oslo) / NGO zone VI",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",58],PARAMETER["central_meridian",10.16666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","27396"],AXIS["x",NORTH],AXIS["y",EAST]] vv‡Ö I‚iŠaepsgkNGO 1948 (Oslo) / NGO zone VII+proj=tmerc +lat_0=58 +lon_0=14.16666666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defsPROJCS["NGO 1948 (Oslo) / NGO zone VII",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",58],PARAMETER["central_meridian",14.16666666666667],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","27397"],AXIS["x",NORTH],AXIS["y",EAST]] tt‡Ö K‚iŠcepsgkNGO 1948 (Oslo) / NGO zone VIII+proj=tmerc +lat_0=58 +lon_0=18.33333333333333 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defsPROJCS["NGO 1948 (Oslo) / NGO zone VIII",GEOGCS["NGO 1948 (Oslo)",DATUM["NGO_1948_Oslo",SPHEROID["Bessel Modified",6377492.018,299.1528128,AUTHORITY["EPSG","7005"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTHORITY["EPSG","6817"]],PRIMEM["Oslo",10.72291666666667,AUTHORITY["EPSG","8913"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4817"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",58],PARAMETER["central_meridian",18.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","27398"],AXIS["x",NORTH],AXIS["y",EAST]] JJ…1Ö%;m‰Eepsgk%Datum 73 / UTM zone 29N+proj=utm +zone=29 +ellps=intl +units=m +no_defsPROJCS["Datum 73 / UTM zone 29N",GEOGCS["Datum 73",DATUM["Datum_73",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6274"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4274"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","27429"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ­­†NÖd m‚ŠepsgkdDatum 73 / Modified Portuguese Grid (deprecated)+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps=intl +units=m +no_defsPROJCS["Datum 73 / Modified Portuguese Grid (deprecated)",GEOGCS["Datum 73",DATUM["Datum_73",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6274"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4274"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-8.131906111111112],PARAMETER["scale_factor",1],PARAMETER["false_easting",180.598],PARAMETER["false_northing",-86.99],AUTHORITY["EPSG","27492"],AXIS["X",NORTH],AXIS["Y",EAST]] Çdž4Öe S‚ŠepsgkeDatum 73 / Modified Portuguese Grid+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps=intl +units=m +no_defsPROJCS["Datum 73 / Modified Portuguese Grid",GEOGCS["Datum 73",DATUM["Datum_73",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6274"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4274"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-8.131906111111112],PARAMETER["scale_factor",1],PARAMETER["false_easting",180.598],PARAMETER["false_northing",-86.99],AUTHORITY["EPSG","27493"],AXIS["X",EAST],AXIS["Y",NORTH]] ˜˜„cÖl ‚A†sepsgklunnamed+proj=lcc +lat_1=49.5 +lat_0=49.5 +lon_0=5.4 +k_0=0.99950908 +x_0=500000 +y_0=300000 +a=6376523 +b=6355862.933255573 +pm=2.3372291666985 +units=m +no_defsPROJCS["unnamed",GEOGCS["unnamed ellipse",DATUM["unknown",SPHEROID["unnamed",6376523,308.6399999999991]],PRIMEM["unnamed",2.3372291666985],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",49.5],PARAMETER["central_meridian",5.4],PARAMETER["scale_factor",0.99950908],PARAMETER["false_easting",500000],PARAMETER["false_northing",300000],UNIT["Meter",1],AUTHORITY["EPSG","27500"]] PP‡+×) Oƒ ‹epsgk©NTF (Paris) / Lambert Nord France+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Lambert Nord France",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",55],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.999877341],PARAMETER["false_easting",600000],PARAMETER["false_northing",200000],AUTHORITY["EPSG","27561"],AXIS["X",EAST],AXIS["Y",NORTH]] hh‡×* S‚U‹epsgkªNTF (Paris) / Lambert Centre France+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Lambert Centre France",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",52],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.99987742],PARAMETER["false_easting",600000],PARAMETER["false_northing",200000],AUTHORITY["EPSG","27562"],AXIS["X",EAST],AXIS["Y",NORTH]] RR‡)×+ Mƒ ‹epsgk«NTF (Paris) / Lambert Sud France+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Lambert Sud France",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.999877499],PARAMETER["false_easting",600000],PARAMETER["false_northing",200000],AUTHORITY["EPSG","27563"],AXIS["X",EAST],AXIS["Y",NORTH]] QQ‡*×, Cƒ‹epsgk¬NTF (Paris) / Lambert Corse+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Lambert Corse",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",46.85],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.99994471],PARAMETER["false_easting",234.358],PARAMETER["false_northing",185861.369],AUTHORITY["EPSG","27564"],AXIS["X",EAST],AXIS["Y",NORTH]] XX‡#×3 Eƒ Š}epsgk³NTF (Paris) / Lambert zone I+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 +no_defsPROJCS["NTF (Paris) / Lambert zone I",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",55],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.999877341],PARAMETER["false_easting",600000],PARAMETER["false_northing",1200000],AUTHORITY["EPSG","27571"],AXIS["X",EAST],AXIS["Y",NORTH]] rr‡ ×4 G‚WŠ}epsgk´NTF (Paris) / Lambert zone II+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 +no_defsPROJCS["NTF (Paris) / Lambert zone II",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",52],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.99987742],PARAMETER["false_easting",600000],PARAMETER["false_northing",2200000],AUTHORITY["EPSG","27572"],AXIS["X",EAST],AXIS["Y",NORTH]] TT‡'×5 Iƒ ‹epsgkµNTF (Paris) / Lambert zone III+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 +no_defsPROJCS["NTF (Paris) / Lambert zone III",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.999877499],PARAMETER["false_easting",600000],PARAMETER["false_northing",3200000],AUTHORITY["EPSG","27573"],AXIS["X",EAST],AXIS["Y",NORTH]] KK‡0×6 Gƒ‹ epsgk¶NTF (Paris) / Lambert zone IV+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 +no_defsPROJCS["NTF (Paris) / Lambert zone IV",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",46.85],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.99994471],PARAMETER["false_easting",234.358],PARAMETER["false_northing",4185861.369],AUTHORITY["EPSG","27574"],AXIS["X",EAST],AXIS["Y",NORTH]] JJ‡1×= Sƒ ‹ epsgk½NTF (Paris) / France I (deprecated)+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 +no_defsPROJCS["NTF (Paris) / France I (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",55],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.999877341],PARAMETER["false_easting",600000],PARAMETER["false_northing",1200000],AUTHORITY["EPSG","27581"],AXIS["X",EAST],AXIS["Y",NORTH]] dd‡×> U‚W‹ epsgk¾NTF (Paris) / France II (deprecated)+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 +no_defsPROJCS["NTF (Paris) / France II (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",52],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.99987742],PARAMETER["false_easting",600000],PARAMETER["false_northing",2200000],AUTHORITY["EPSG","27582"],AXIS["X",EAST],AXIS["Y",NORTH]] FF‡5×? Wƒ ‹epsgk¿NTF (Paris) / France III (deprecated)+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 +no_defsPROJCS["NTF (Paris) / France III (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.999877499],PARAMETER["false_easting",600000],PARAMETER["false_northing",3200000],AUTHORITY["EPSG","27583"],AXIS["X",EAST],AXIS["Y",NORTH]] ==‡>×@ Uƒ‹epsgkÀNTF (Paris) / France IV (deprecated)+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 +no_defsPROJCS["NTF (Paris) / France IV (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",46.85],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.99994471],PARAMETER["false_easting",234.358],PARAMETER["false_northing",4185861.369],AUTHORITY["EPSG","27584"],AXIS["X",EAST],AXIS["Y",NORTH]] FF‡5×G Yƒ ‹epsgkÇNTF (Paris) / Nord France (deprecated)+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Nord France (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",55],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.999877341],PARAMETER["false_easting",600000],PARAMETER["false_northing",200000],AUTHORITY["EPSG","27591"],AXIS["X",EAST],AXIS["Y",NORTH]] ^^‡×H ]‚U‹epsgkÈNTF (Paris) / Centre France (deprecated)+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Centre France (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",52],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.99987742],PARAMETER["false_easting",600000],PARAMETER["false_northing",200000],AUTHORITY["EPSG","27592"],AXIS["X",EAST],AXIS["Y",NORTH]] HH‡3×I Wƒ ‹ epsgkÉNTF (Paris) / Sud France (deprecated)+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Sud France (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.999877499],PARAMETER["false_easting",600000],PARAMETER["false_northing",200000],AUTHORITY["EPSG","27593"],AXIS["X",EAST],AXIS["Y",NORTH]] GG‡4×J Mƒ‹epsgkÊNTF (Paris) / Corse (deprecated)+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["NTF (Paris) / Corse (deprecated)",GEOGCS["NTF (Paris)",DATUM["Nouvelle_Triangulation_Francaise_Paris",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-168,-60,320,0,0,0,0],AUTHORITY["EPSG","6807"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4807"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",46.85],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.99994471],PARAMETER["false_easting",234.358],PARAMETER["false_northing",185861.369],AUTHORITY["EPSG","27594"],AXIS["X",EAST],AXIS["Y",NORTH]] ß߆Ø4 Ou‰}epsgl4OSGB 1936 / British National Grid+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defsPROJCS["OSGB 1936 / British National Grid",GEOGCS["OSGB 1936",DATUM["OSGB_1936",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],AUTHORITY["EPSG","6277"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4277"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",-2],PARAMETER["scale_factor",0.9996012717],PARAMETER["false_easting",400000],PARAMETER["false_northing",-100000],AUTHORITY["EPSG","27700"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD‡7Ü Kƒ‹epsgnPalestine 1923 / Palestine Grid+proj=cass +lat_0=31.73409694444445 +lon_0=35.21208055555556 +x_0=170251.555 +y_0=126867.909 +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +units=m +no_defsPROJCS["Palestine 1923 / Palestine Grid",GEOGCS["Palestine 1923",DATUM["Palestine_1923",SPHEROID["Clarke 1880 (Benoit)",6378300.789,293.4663155389802,AUTHORITY["EPSG","7010"]],TOWGS84[-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1],AUTHORITY["EPSG","6281"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4281"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",31.73409694444445],PARAMETER["central_meridian",35.21208055555556],PARAMETER["false_easting",170251.555],PARAMETER["false_northing",126867.909],AUTHORITY["EPSG","28191"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]5556 +k=1 +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_defsPROJCS["Palestine 1923 / Palestine Belt",GEOGCS["Palestine 1923",DATUM["Palestine_1923",SPHEROID["Clarke 1880 (Benoit)",6378300.789,293.4663155389802,AUTHORITY["EPSG","7010"]],TOWGS84[-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1],AUTHORITY["EPSG","6281"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4281"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31.73409694444445],PARAMETER["central_meridian",35.21208055555556],PARAMETER["scale_factor",1],PARAMETER["false_easting",170251.555],PARAMETER["false_northing",1126867.909],AUTHORITY["EPSG","28192"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ‡_Ü Kƒ%‹Wepsgn Palestine 1923 / Palestine Belt+proj=tmerc +lat_0=31.73409694444445 +lon_0=35.2120805555 7 @@‡;Ü! Mƒ‹epsgn!Palestine 1923 / Israeli CS Grid+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_defsPROJCS["Palestine 1923 / Israeli CS Grid",GEOGCS["Palestine 1923",DATUM["Palestine_1923",SPHEROID["Clarke 1880 (Benoit)",6378300.789,293.4663155389802,AUTHORITY["EPSG","7010"]],TOWGS84[-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1],AUTHORITY["EPSG","6281"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4281"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",31.73409694444445],PARAMETER["central_meridian",35.21208055555556],PARAMETER["false_easting",170251.555],PARAMETER["false_northing",1126867.909],AUTHORITY["EPSG","28193"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …uÜH CŠepsgnHPointe Noire / UTM zone 32S+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +units=m +no_defsPROJCS["Pointe Noire / UTM zone 32S",GEOGCS["Pointe Noire",DATUM["Congo_1960_Pointe_Noire",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6282"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4282"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28232"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] üü…Ý< 3+Š)epsgn¼GDA94 / MGA zone 48+proj=utm +zone=48 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 48",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28348"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] üü…Ý= 3+Š)epsgn½GDA94 / MGA zone 49+proj=utm +zone=49 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 49",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28349"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] üü…Ý> 3+Š)epsgn¾GDA94 / MGA zone 50+proj=utm +zone=50 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 50",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28350"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] üü…Ý? 3+Š)epsgn¿GDA94 / MGA zone 51+proj=utm +zone=51 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 51",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28351"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] üü…Ý@ 3+Š)epsgnÀGDA94 / MGA zone 52+proj=utm +zone=52 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 52",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28352"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] üü…ÝA 3+Š)epsgnÁGDA94 / MGA zone 53+proj=utm +zone=53 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 53",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28353"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] üü…ÝB 3+Š)epsgnÂGDA94 / MGA zone 54+proj=utm +zone=54 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 54",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28354"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] üü…ÝC 3+Š)epsgnÃGDA94 / MGA zone 55+proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 55",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28355"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] üü…ÝD 3+Š)epsgnÄGDA94 / MGA zone 56+proj=utm +zone=56 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 56",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28356"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] üü…ÝE 3+Š)epsgnÅGDA94 / MGA zone 57+proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 57",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28357"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] üü…ÝF 3+Š)epsgnÆGDA94 / MGA zone 58+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["GDA94 / MGA zone 58",GEOGCS["GDA94",DATUM["Geocentric_Datum_of_Australia_1994",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6283"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4283"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","28358"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ñц*Ýr k7Š;epsgnòPulkovo 1942 / Gauss-Kruger zone 2 (deprecated)+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 2 (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28402"],AXIS["X",NORTH],AXIS["Y",EAST]] Ïφ,Ýs k9Š=epsgnóPulkovo 1942 / Gauss-Kruger zone 3 (deprecated)+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 3 (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28403"],AXIS["X",NORTH],AXIS["Y",EAST]] éé†Ýt Q9Š#epsgnôPulkovo 1942 / Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 4",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28404"],AXIS["X",NORTH],AXIS["Y",EAST]] éé†Ýu Q9Š#epsgnõPulkovo 1942 / Gauss-Kruger zone 5+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 5",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28405"],AXIS["X",NORTH],AXIS["Y",EAST]] éé†Ýv Q9Š#epsgnöPulkovo 1942 / Gauss-Kruger zone 6+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 6",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28406"],AXIS["X",NORTH],AXIS["Y",EAST]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó kÉepsgkÉ kÊepsgkÊ l4epsgl4 nepsgn n epsgn n!epsgn! nHepsgnH n¼epsgn¼ n½epsgn½ n¾epsgn¾ n¿epsgn¿ nÀepsgnÀ nÁepsgnÁ nÂepsgn nÃepsgnà nÄepsgnÄ nÅepsgnÅ nÆepsgnÆ nòepsgnò nóepsgnó nôepsgnô nõepsgnõ nöepsgnö n÷epsgn÷ nøepsgnø nùepsgnù núepsgnú nûepsgnû nüepsgnü nýepsgný nþepsgnþ nÿepsgnÿ oepsgo oepsgo oepsgo oepsgo oepsgo oepsgo oepsgo oepsgo oepsgo o epsgo o epsgo o epsgo o epsgo o epsgo oepsgo oepsgo oepsgo o.epsgo. o/epsgo/ o0epsgo0 o1epsgo1 o2epsgo2 o3epsgo3 o4epsgo4 o5epsgo5 o6epsgo6 o7epsgo7 éé†Ýw Q9Š#epsgn÷Pulkovo 1942 / Gauss-Kruger zone 7+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 7",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28407"],AXIS["X",NORTH],AXIS["Y",EAST]] éé†Ýx Q9Š#epsgnøPulkovo 1942 / Gauss-Kruger zone 8+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 8",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28408"],AXIS["X",NORTH],AXIS["Y",EAST]] éé†Ýy Q9Š#epsgnùPulkovo 1942 / Gauss-Kruger zone 9+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 9",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",9500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28409"],AXIS["X",NORTH],AXIS["Y",EAST]] åå†Ýz S;Š'epsgnúPulkovo 1942 / Gauss-Kruger zone 10+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 10",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",10500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28410"],AXIS["X",NORTH],AXIS["Y",EAST]] åå†Ý{ S;Š'epsgnûPulkovo 1942 / Gauss-Kruger zone 11+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 11",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",11500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28411"],AXIS["X",NORTH],AXIS["Y",EAST]] åå†Ý| S;Š'epsgnüPulkovo 1942 / Gauss-Kruger zone 12+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 12",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",12500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28412"],AXIS["X",NORTH],AXIS["Y",EAST]] åå†Ý} S;Š'epsgnýPulkovo 1942 / Gauss-Kruger zone 13+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 13",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",13500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28413"],AXIS["X",NORTH],AXIS["Y",EAST]] åå†Ý~ S;Š'epsgnþPulkovo 1942 / Gauss-Kruger zone 14+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 14",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",14500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28414"],AXIS["X",NORTH],AXIS["Y",EAST]] åå†Ý S;Š'epsgnÿPulkovo 1942 / Gauss-Kruger zone 15+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 15",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",15500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28415"],AXIS["X",NORTH],AXIS["Y",EAST]] åå†Þ S;Š'epsgoPulkovo 1942 / Gauss-Kruger zone 16+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 16",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",1],PARAMETER["false_easting",16500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28416"],AXIS["X",NORTH],AXIS["Y",EAST]] åå†Þ S;Š'epsgoPulkovo 1942 / Gauss-Kruger zone 17+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 17",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",1],PARAMETER["false_easting",17500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28417"],AXIS["X",NORTH],AXIS["Y",EAST]] ãã†Þ S=Š)epsgoPulkovo 1942 / Gauss-Kruger zone 18+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 18",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",18500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28418"],AXIS["X",NORTH],AXIS["Y",EAST]] ãã†Þ S=Š)epsgoPulkovo 1942 / Gauss-Kruger zone 19+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 19",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",19500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28419"],AXIS["X",NORTH],AXIS["Y",EAST]] ãã†Þ S=Š)epsgoPulkovo 1942 / Gauss-Kruger zone 20+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 20",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",20500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28420"],AXIS["X",NORTH],AXIS["Y",EAST]] ãã†Þ S=Š)epsgoPulkovo 1942 / Gauss-Kruger zone 21+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 21",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",21500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28421"],AXIS["X",NORTH],AXIS["Y",EAST]] ãã†Þ S=Š)epsgoPulkovo 1942 / Gauss-Kruger zone 22+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 22",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",22500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28422"],AXIS["X",NORTH],AXIS["Y",EAST]] ãã†Þ S=Š)epsgoPulkovo 1942 / Gauss-Kruger zone 23+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 23",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",23500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28423"],AXIS["X",NORTH],AXIS["Y",EAST]] ãã†Þ S=Š)epsgoPulkovo 1942 / Gauss-Kruger zone 24+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 24",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",24500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28424"],AXIS["X",NORTH],AXIS["Y",EAST]] ãã†Þ S=Š)epsgo Pulkovo 1942 / Gauss-Kruger zone 25+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 25",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",25500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28425"],AXIS["X",NORTH],AXIS["Y",EAST]] ãã†Þ S=Š)epsgo Pulkovo 1942 / Gauss-Kruger zone 26+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 26",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",26500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28426"],AXIS["X",NORTH],AXIS["Y",EAST]] ãã†Þ S=Š)epsgo Pulkovo 1942 / Gauss-Kruger zone 27+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 27",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",27500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28427"],AXIS["X",NORTH],AXIS["Y",EAST]] ãã†Þ S=Š)epsgo Pulkovo 1942 / Gauss-Kruger zone 28+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 28",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",28500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28428"],AXIS["X",NORTH],AXIS["Y",EAST]] ãã†Þ S=Š)epsgo Pulkovo 1942 / Gauss-Kruger zone 29+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 29",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",1],PARAMETER["false_easting",29500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28429"],AXIS["X",NORTH],AXIS["Y",EAST]] ãã†Þ S=Š)epsgoPulkovo 1942 / Gauss-Kruger zone 30+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 30",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",30500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28430"],AXIS["X",NORTH],AXIS["Y",EAST]] áá†Þ S?Š+epsgoPulkovo 1942 / Gauss-Kruger zone 31+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 31",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",31500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28431"],AXIS["X",NORTH],AXIS["Y",EAST]] áá†Þ S?Š+epsgoPulkovo 1942 / Gauss-Kruger zone 32+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger zone 32",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",32500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28432"],AXIS["X",NORTH],AXIS["Y",EAST]] ÛÛ† Þ. c5Š1epsgo.Pulkovo 1942 / Gauss-Kruger 2N (deprecated)+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 2N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28462"],AXIS["X",NORTH],AXIS["Y",EAST]] ÙÙ†"Þ/ c7Š3epsgo/Pulkovo 1942 / Gauss-Kruger 3N (deprecated)+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 3N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28463"],AXIS["X",NORTH],AXIS["Y",EAST]] ÙÙ†"Þ0 c7Š3epsgo0Pulkovo 1942 / Gauss-Kruger 4N (deprecated)+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 4N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28464"],AXIS["X",NORTH],AXIS["Y",EAST]] ÙÙ†"Þ1 c7Š3epsgo1Pulkovo 1942 / Gauss-Kruger 5N (deprecated)+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 5N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28465"],AXIS["X",NORTH],AXIS["Y",EAST]] ÙÙ†"Þ2 c7Š3epsgo2Pulkovo 1942 / Gauss-Kruger 6N (deprecated)+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 6N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28466"],AXIS["X",NORTH],AXIS["Y",EAST]] ÙÙ†"Þ3 c7Š3epsgo3Pulkovo 1942 / Gauss-Kruger 7N (deprecated)+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 7N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28467"],AXIS["X",NORTH],AXIS["Y",EAST]] ÙÙ†"Þ4 c7Š3epsgo4Pulkovo 1942 / Gauss-Kruger 8N (deprecated)+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 8N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28468"],AXIS["X",NORTH],AXIS["Y",EAST]] ÙÙ†"Þ5 c7Š3epsgo5Pulkovo 1942 / Gauss-Kruger 9N (deprecated)+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 9N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28469"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆$Þ6 e7Š5epsgo6Pulkovo 1942 / Gauss-Kruger 10N (deprecated)+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 10N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28470"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆$Þ7 e7Š5epsgo7Pulkovo 1942 / Gauss-Kruger 11N (deprecated)+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 11N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28471"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆$Þ8 e7Š5epsgo8Pulkovo 1942 / Gauss-Kruger 12N (deprecated)+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 12N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28472"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆$Þ9 e7Š5epsgo9Pulkovo 1942 / Gauss-Kruger 13N (deprecated)+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 13N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28473"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆$Þ: e7Š5epsgo:Pulkovo 1942 / Gauss-Kruger 14N (deprecated)+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 14N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28474"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆$Þ; e7Š5epsgo;Pulkovo 1942 / Gauss-Kruger 15N (deprecated)+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 15N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28475"],AXIS["X",NORTH],AXIS["Y",EAST]] ×׆$Þ< e7Š5epsgo e9Š7epsgo>Pulkovo 1942 / Gauss-Kruger 18N (deprecated)+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 18N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28478"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†&Þ? e9Š7epsgo?Pulkovo 1942 / Gauss-Kruger 19N (deprecated)+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 19N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28479"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†&Þ@ e9Š7epsgo@Pulkovo 1942 / Gauss-Kruger 20N (deprecated)+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 20N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28480"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†&ÞA e9Š7epsgoAPulkovo 1942 / Gauss-Kruger 21N (deprecated)+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 21N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28481"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†&ÞB e9Š7epsgoBPulkovo 1942 / Gauss-Kruger 22N (deprecated)+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 22N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28482"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†&ÞC e9Š7epsgoCPulkovo 1942 / Gauss-Kruger 23N (deprecated)+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 23N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28483"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†&ÞD e9Š7epsgoDPulkovo 1942 / Gauss-Kruger 24N (deprecated)+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 24N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28484"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†&ÞE e9Š7epsgoEPulkovo 1942 / Gauss-Kruger 25N (deprecated)+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 25N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28485"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†&ÞF e9Š7epsgoFPulkovo 1942 / Gauss-Kruger 26N (deprecated)+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 26N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28486"],AXIS["X",NORTH],AXIS["Y",EAST]]bR ºRY`gnu|ƒŠ‘˜Ÿ¦­´»ÂÉÐ×Þåìóú$+29@GNU\cjqx†”›¢©°·¾ÅÌÓÚáèïöý  '.5<CJQX_fmt{‚‰—ž¥¬³ºÁÈÏÖÝäëòù TÝ UÞ VÞ WÞ XÞ YÞ ZÞ [Þ \Þ ]Þ ^Þ _Þ `Þ aÞ bÞ cÞ dÞ eÞ fÞ. gÞ/ hÞ0 iÞ1 jÞ2 kÞ3 lÞ4 mÞ5 nÞ6 oÞ7 pÞ8 qÞ9 rÞ: sÞ; tÞ< uÞ= vÞ> wÞ? xÞ@ yÞA zÞB {ÞC |ÞD }ÞE ~ÞF €ÞG ÞH ‚ÞI ƒÞJ „ÞK …ÞL †ß8 ‡â? ˆâ@ Šã, ‹ã- Œã> ã? Žã@ ãA ãB ‘ãp ’ãq “ãr ”ãs •ãt –ãy —ãz ˜ã{ ™ã| šã} ›ã~ œã ä žä Ÿä  ä ¡ä ¢ä £ä ¤ä ¥ä ¦ä §ä ¨ä$ ©ä% ªå «çC ¬çD ­è ®è ¯è* °è+ ±é ²é0 µé1 ¶éL ·éM ¸éN ¹éO ÕÕ†&ÞG e9Š7epsgoGPulkovo 1942 / Gauss-Kruger 27N (deprecated)+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 27N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28487"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†&ÞH e9Š7epsgoHPulkovo 1942 / Gauss-Kruger 28N (deprecated)+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 28N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28488"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†&ÞI e9Š7epsgoIPulkovo 1942 / Gauss-Kruger 29N (deprecated)+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 29N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28489"],AXIS["X",NORTH],AXIS["Y",EAST]] ÕÕ†&ÞJ e9Š7epsgoJPulkovo 1942 / Gauss-Kruger 30N (deprecated)+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 30N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28490"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†(ÞK e;Š9epsgoKPulkovo 1942 / Gauss-Kruger 31N (deprecated)+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 31N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28491"],AXIS["X",NORTH],AXIS["Y",EAST]] ÓÓ†(ÞL e;Š9epsgoLPulkovo 1942 / Gauss-Kruger 32N (deprecated)+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defsPROJCS["Pulkovo 1942 / Gauss-Kruger 32N (deprecated)",GEOGCS["Pulkovo 1942",DATUM["Pulkovo_1942",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],TOWGS84[23.9,-141.3,-80.9,-0,0.37,0.85,-0.12],AUTHORITY["EPSG","6284"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4284"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","28492"],AXIS["X",NORTH],AXIS["Y",EAST]] ØØ†#ß8 MqŠepsgo¸Qatar 1974 / Qatar National Grid+proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.99999 +x_0=200000 +y_0=300000 +ellps=intl +units=m +no_defsPROJCS["Qatar 1974 / Qatar National Grid",GEOGCS["Qatar 1974",DATUM["Qatar_1974",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6285"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4285"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",24.45],PARAMETER["central_meridian",51.21666666666667],PARAMETER["scale_factor",0.99999],PARAMETER["false_easting",200000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","28600"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ïï† â? 3}‰qepsgq?Amersfoort / RD Old+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Amersfoort / RD Old",GEOGCS["Amersfoort",DATUM["Amersfoort",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6289"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4289"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",52.15616055555555],PARAMETER["central_meridian",5.38763888888889],PARAMETER["scale_factor",0.9999079],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","28991"],AXIS["X",EAST],AXIS["Y",NORTH]] ÛÛ† â@ 3‚Šepsgq@Amersfoort / RD New+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +no_defsPROJCS["Amersfoort / RD New",GEOGCS["Amersfoort",DATUM["Amersfoort",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6289"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4289"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",52.15616055555555],PARAMETER["central_meridian",5.38763888888889],PARAMETER["scale_factor",0.9999079],PARAMETER["false_easting",155000],PARAMETER["false_northing",463000],AUTHORITY["EPSG","28992"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó o9epsgo9 o:epsgo: o;epsgo; oepsgo> o?epsgo? o@epsgo@ oAepsgoA oBepsgoB oCepsgoC oDepsgoD oEepsgoE oFepsgoF oGepsgoG oHepsgoH oIepsgoI oJepsgoJ oKepsgoK oLepsgoL o¸epsgo¸ q?epsgq? q@epsgq@ q¬epsgq¬ q­epsgq­ q¾epsgq¾ q¿epsgq¿ qÀepsgqÀ qÁepsgqÁ qÂepsgq qðepsgqð qñepsgqñ qòepsgqò qóepsgqó qôepsgqô qùepsgqù qúepsgqú qûepsgqû qüepsgqü qýepsgqý qþepsgqþ qÿepsgqÿ repsgr repsgr repsgr repsgr repsgr repsgr repsgr repsgr r epsgr r epsgr r epsgr r$epsgr$ r%epsgr% r•epsgr• sÃepsgsà sÄepsgsÄ tepsgt ''…Tã, W=‰epsgq¬SAD69 / Brazil Polyconic (deprecated)+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / Brazil Polyconic (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polyconic"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-54],PARAMETER["false_easting",5000000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29100"],AXIS["X",EAST],AXIS["Y",NORTH]] <<…?ã- =A‰ epsgq­SAD69 / Brazil Polyconic+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / Brazil Polyconic",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polyconic"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-54],PARAMETER["false_easting",5000000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29101"],AXIS["X",EAST],AXIS["Y",NORTH]] ''…Tã>Oo‰uepsgq¾SAD69 / UTM zone 18N (deprecated)+proj=utm +zone=18 +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 18N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29118"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…Tã?Oo‰uepsgq¿SAD69 / UTM zone 19N (deprecated)+proj=utm +zone=19 +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 19N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29119"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…Tã@Oo‰uepsgqÀSAD69 / UTM zone 20N (deprecated)+proj=utm +zone=20 +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 20N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29120"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…TãAOo‰uepsgqÁSAD69 / UTM zone 21N (deprecated)+proj=utm +zone=21 +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 21N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29121"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ''…TãBOo‰uepsgqÂSAD69 / UTM zone 22N (deprecated)+proj=utm +zone=22 +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 22N (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29122"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] <<…?ãp5s‰aepsgqðSAD69 / UTM zone 18N+proj=utm +zone=18 +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 18N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29168"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] <<…?ãq5s‰aepsgqñSAD69 / UTM zone 19N+proj=utm +zone=19 +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 19N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29169"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] <<…?ãr5s‰aepsgqòSAD69 / UTM zone 20N+proj=utm +zone=20 +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 20N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29170"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] <<…?ãs5s‰aepsgqóSAD69 / UTM zone 21N+proj=utm +zone=21 +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 21N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29171"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] <<…?ãt5s‰aepsgqôSAD69 / UTM zone 22N+proj=utm +zone=22 +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 22N",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29172"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …bãyO}ŠepsgqùSAD69 / UTM zone 17S (deprecated)+proj=utm +zone=17 +south +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 17S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29177"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …bãzO}ŠepsgqúSAD69 / UTM zone 18S (deprecated)+proj=utm +zone=18 +south +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 18S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29178"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …bã{O}ŠepsgqûSAD69 / UTM zone 19S (deprecated)+proj=utm +zone=19 +south +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 19S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29179"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …bã|O}ŠepsgqüSAD69 / UTM zone 20S (deprecated)+proj=utm +zone=20 +south +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 20S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29180"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …bã}O}ŠepsgqýSAD69 / UTM zone 21S (deprecated)+proj=utm +zone=21 +south +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 21S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29181"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …bã~O}ŠepsgqþSAD69 / UTM zone 22S (deprecated)+proj=utm +zone=22 +south +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 22S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29182"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …bãO}ŠepsgqÿSAD69 / UTM zone 23S (deprecated)+proj=utm +zone=23 +south +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 23S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29183"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …bäO}ŠepsgrSAD69 / UTM zone 24S (deprecated)+proj=utm +zone=24 +south +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 24S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29184"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …bäO}ŠepsgrSAD69 / UTM zone 25S (deprecated)+proj=utm +zone=25 +south +ellps=GRS67 +units=m +no_defsPROJCS["SAD69 / UTM zone 25S (deprecated)",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967",6378160,298.247167427,AUTHORITY["EPSG","7036"]],AUTHORITY["EPSG","6291"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4291"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29185"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --…Nä 5‰oepsgrSAD69 / UTM zone 17S+proj=utm +zone=17 +south +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 17S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29187"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --…Nä 5‰oepsgrSAD69 / UTM zone 18S+proj=utm +zone=18 +south +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 18S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29188"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --…Nä 5‰oepsgrSAD69 / UTM zone 19S+proj=utm +zone=19 +south +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 19S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29189"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --…Nä 5‰oepsgrSAD69 / UTM zone 20S+proj=utm +zone=20 +south +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 20S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29190"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --…Nä 5‰oepsgrSAD69 / UTM zone 21S+proj=utm +zone=21 +south +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 21S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29191"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --…Nä 5‰oepsgrSAD69 / UTM zone 22S+proj=utm +zone=22 +south +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 22S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29192"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --…Nä 5‰oepsgr SAD69 / UTM zone 23S+proj=utm +zone=23 +south +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 23S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29193"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --…Nä 5‰oepsgr SAD69 / UTM zone 24S+proj=utm +zone=24 +south +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 24S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29194"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] --…Nä 5‰oepsgr SAD69 / UTM zone 25S+proj=utm +zone=25 +south +ellps=aust_SA +units=m +no_defsPROJCS["SAD69 / UTM zone 25S",GEOGCS["SAD69",DATUM["South_American_Datum_1969",SPHEROID["GRS 1967 Modified",6378160,298.25,AUTHORITY["EPSG","7050"]],AUTHORITY["EPSG","6618"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4618"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29195"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ââ†ä$ K3Š=epsgr$Sapper Hill 1943 / UTM zone 20S+proj=utm +zone=20 +south +ellps=intl +towgs84=-355,21,72,0,0,0,0 +units=m +no_defsPROJCS["Sapper Hill 1943 / UTM zone 20S",GEOGCS["Sapper Hill 1943",DATUM["Sapper_Hill_1943",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY["EPSG","6292"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4292"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29220"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ââ†ä% K3Š=epsgr%Sapper Hill 1943 / UTM zone 21S+proj=utm +zone=21 +south +ellps=intl +towgs84=-355,21,72,0,0,0,0 +units=m +no_defsPROJCS["Sapper Hill 1943 / UTM zone 21S",GEOGCS["Sapper Hill 1943",DATUM["Sapper_Hill_1943",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY["EPSG","6292"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4292"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29221"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …`å ?Šepsgr•Schwarzeck / UTM zone 33S+proj=utm +zone=33 +south +ellps=bess_nam +units=m +no_defsPROJCS["Schwarzeck / UTM zone 33S",GEOGCS["Schwarzeck",DATUM["Schwarzeck",SPHEROID["Bessel Namibia (GLM)",6377483.865280419,299.1528128,AUTHORITY["EPSG","7046"]],AUTHORITY["EPSG","6293"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4293"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29333"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…ZçC O‰iepsgsÃSudan / UTM zone 35N (deprecated)+proj=utm +zone=35 +a=6378249.2 +b=6356515 +units=m +no_defsPROJCS["Sudan / UTM zone 35N (deprecated)",GEOGCS["Sudan",DATUM["Sudan",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6296"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4296"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29635"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…ZçD O‰iepsgsÄSudan / UTM zone 36N (deprecated)+proj=utm +zone=36 +a=6378249.2 +b=6356515 +units=m +no_defsPROJCS["Sudan / UTM zone 36N (deprecated)",GEOGCS["Sudan",DATUM["Sudan",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6296"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4296"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29636"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ##‡Xè i‚o‹aepsgtTananarive (Paris) / Laborde Grid (deprecated)+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha=18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["Tananarive (Paris) / Laborde Grid (deprecated)",GEOGCS["Tananarive (Paris)",DATUM["Tananarive_1925_Paris",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6810"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4810"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",-21],PARAMETER["longitude_of_center",49],PARAMETER["azimuth",21],PARAMETER["rectified_grid_angle",21],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","29700"],AXIS["X",EAST],AXIS["Y",NORTH]] !!‡Zè k‚o‹cepsgtTananarive (Paris) / Laborde Grid approximation+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha=18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=paris +units=m +no_defsPROJCS["Tananarive (Paris) / Laborde Grid approximation",GEOGCS["Tananarive (Paris)",DATUM["Tananarive_1925_Paris",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6810"]],PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],AUTHORITY["EPSG","4810"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",-21],PARAMETER["longitude_of_center",49],PARAMETER["azimuth",21],PARAMETER["rectified_grid_angle",21],PARAMETER["scale_factor",0.9995],PARAMETER["false_easting",400000],PARAMETER["false_northing",800000],AUTHORITY["EPSG","29702"],AXIS["X",NORTH],AXIS["Y",EAST]] ðð† è* ?9Š'epsgt*Tananarive / UTM zone 38S+proj=utm +zone=38 +south +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +units=m +no_defsPROJCS["Tananarive / UTM zone 38S",GEOGCS["Tananarive",DATUM["Tananarive_1925",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6297"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4297"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29738"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ðð† è+ ?9Š'epsgt+Tananarive / UTM zone 39S+proj=utm +zone=39 +south +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +units=m +no_defsPROJCS["Tananarive / UTM zone 39S",GEOGCS["Tananarive",DATUM["Tananarive_1925",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY["EPSG","6297"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4297"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","29739"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …^éEsŠepsgt™Timbalai 1948 / UTM zone 49N+proj=utm +zone=49 +ellps=evrstSS +units=m +no_defsPROJCS["Timbalai 1948 / UTM zone 49N",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29849"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] =­=‡lé0 K‚WŒ?epsgt°Timbalai 1948 / RSO Borneo (ft)+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 + ´‡jé/ K‚SŒ?epsgt¯Timbalai 1948 / RSO Borneo (ch)+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 + ³…^éEsŠepsgtšTimbalai 1948 / UTM zone 50N+proj=utm +zone=50 +ellps=evrstSS +units=m +no_defsPROJCS["Timbalai 1948 / UTM zone 50N",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","29850"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]k=0.99984 +x_0=590476.8714630401 +y_0=442857.653094361 +ellps=evrstSS +to_meter=20.11676512155263 +no_defsPROJCS["Timbalai 1948 / RSO Borneo (ch)",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],UNIT["British chain (Sears 1922)",20.11676512155263,AUTHORITY["EPSG","9042"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",4],PARAMETER["longitude_of_center",115],PARAMETER["azimuth",53.31582047222222],PARAMETER["rectified_grid_angle",53.13010236111111],PARAMETER["scale_factor",0.99984],PARAMETER["false_easting",29352.4763],PARAMETER["false_northing",22014.3572],AUTHORITY["EPSG","29871"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]k=0.99984 +x_0=590476.8727431979 +y_0=442857.6545573985 +ellps=evrstSS +to_meter=0.3047994715386762 +no_defsPROJCS["Timbalai 1948 / RSO Borneo (ft)",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],UNIT["British foot (Sears 1922)",0.3047994715386762,AUTHORITY["EPSG","9041"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",4],PARAMETER["longitude_of_center",115],PARAMETER["azimuth",53.31582047222222],PARAMETER["rectified_grid_angle",53.13010236111111],PARAMETER["scale_factor",0.99984],PARAMETER["false_easting",1937263.44],PARAMETER["false_northing",1452947.58],AUTHORITY["EPSG","29872"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] \\‡é1 I‚‹oepsgt±Timbalai 1948 / RSO Borneo (m)+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 +k=0.99984 +x_0=590476.87 +y_0=442857.65 +ellps=evrstSS +units=m +no_defsPROJCS["Timbalai 1948 / RSO Borneo (m)",GEOGCS["Timbalai 1948",DATUM["Timbalai_1948",SPHEROID["Everest 1830 (1967 Definition)",6377298.556,300.8017,AUTHORITY["EPSG","7016"]],AUTHORITY["EPSG","6298"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4298"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["latitude_of_center",4],PARAMETER["longitude_of_center",115],PARAMETER["azimuth",53.31582047222222],PARAMETER["rectified_grid_angle",53.13010236111111],PARAMETER["scale_factor",0.99984],PARAMETER["false_easting",590476.87],PARAMETER["false_northing",442857.65],AUTHORITY["EPSG","29873"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ×׆$éL [uŠepsgtÌTM65 / Irish National Grid (deprecated)+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +ellps=mod_airy +datum=ire65 +units=m +no_defsPROJCS["TM65 / Irish National Grid (deprecated)",GEOGCS["TM65",DATUM["TM65",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],AUTHORITY["EPSG","6299"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4299"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",53.5],PARAMETER["central_meridian",-8],PARAMETER["scale_factor",1.000035],PARAMETER["false_easting",200000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","29900"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ™™†béM K‚1ŠQepsgtÍOSNI 1952 / Irish National Grid+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1 +x_0=200000 +y_0=250000 +ellps=airy +towgs84=482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15 +units=m +no_defsPROJCS["OSNI 1952 / Irish National Grid",GEOGCS["OSNI 1952",DATUM["OSNI_1952",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],TOWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY["EPSG","6188"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4188"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",53.5],PARAMETER["central_meridian",-8],PARAMETER["scale_factor",1],PARAMETER["false_easting",200000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","29901"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …xéN /u‰UepsgtÎTM65 / Irish Grid+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +ellps=mod_airy +datum=ire65 +units=m +no_defsPROJCS["TM65 / Irish Grid",GEOGCS["TM65",DATUM["TM65",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],AUTHORITY["EPSG","6299"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4299"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",53.5],PARAMETER["central_meridian",-8],PARAMETER["scale_factor",1.000035],PARAMETER["false_easting",200000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","29902"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] þþ…}éO /[‰yepsgtÏTM75 / Irish Grid+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +ellps=mod_airy +units=m +no_defsPROJCS["TM75 / Irish Grid",GEOGCS["TM75",DATUM["Geodetic_Datum_of_1965",SPHEROID["Airy Modified 1849",6377340.189,299.3249646,AUTHORITY["EPSG","7002"]],AUTHORITY["EPSG","6300"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4300"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",53.5],PARAMETER["central_meridian",-8],PARAMETER["scale_factor",1.000035],PARAMETER["false_easting",200000],PARAMETER["false_northing",250000],AUTHORITY["EPSG","29903"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …gëQ UA‰AepsguÑTokyo / Japan Plane Rectangular CS I+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS I",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",33],PARAMETER["central_meridian",129.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30161"],AXIS["X",NORTH],AXIS["Y",EAST]] …eëR W=‰?epsguÒTokyo / Japan Plane Rectangular CS II+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS II",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",33],PARAMETER["central_meridian",131],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30162"],AXIS["X",NORTH],AXIS["Y",EAST]] øø†ëS YY‰]epsguÓTokyo / Japan Plane Rectangular CS III+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS III",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",132.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30163"],AXIS["X",NORTH],AXIS["Y",EAST]] …iëT WA‰CepsguÔTokyo / Japan Plane Rectangular CS IV+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS IV",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",33],PARAMETER["central_meridian",133.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30164"],AXIS["X",NORTH],AXIS["Y",EAST]] üü…ëU UY‰YepsguÕTokyo / Japan Plane Rectangular CS V+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS V",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",134.3333333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30165"],AXIS["X",NORTH],AXIS["Y",EAST]] …eëV W=‰?epsguÖTokyo / Japan Plane Rectangular CS VI+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS VI",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",136],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30166"],AXIS["X",NORTH],AXIS["Y",EAST]] øø†ëW YY‰]epsgu×Tokyo / Japan Plane Rectangular CS VII+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS VII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",137.1666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30167"],AXIS["X",NORTH],AXIS["Y",EAST]] …mëX [A‰GepsguØTokyo / Japan Plane Rectangular CS VIII+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS VIII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",138.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30168"],AXIS["X",NORTH],AXIS["Y",EAST]] úú†ëY WY‰[epsguÙTokyo / Japan Plane Rectangular CS IX+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS IX",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",139.8333333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30169"],AXIS["X",NORTH],AXIS["Y",EAST]] üü…ëZ UY‰YepsguÚTokyo / Japan Plane Rectangular CS X+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS X",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",140.8333333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30170"],AXIS["X",NORTH],AXIS["Y",EAST]] …kë[ WC‰EepsguÛTokyo / Japan Plane Rectangular CS XI+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS XI",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",140.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30171"],AXIS["X",NORTH],AXIS["Y",EAST]] …më\ YC‰GepsguÜTokyo / Japan Plane Rectangular CS XII+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS XII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",142.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30172"],AXIS["X",NORTH],AXIS["Y",EAST]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó t*epsgt* t+epsgt+ t™epsgt™ tšepsgtš t¯epsgt¯ t°epsgt° t±epsgt± tÌepsgtÌ tÍepsgtÍ tÎepsgtÎ tÏepsgtÏ uÑepsguÑ uÒepsguÒ uÓepsguÓ uÔepsguÔ uÕepsguÕ uÖepsguÖ u×epsgu× uØepsguØ uÙepsguÙ uÚepsguÚ uÛepsguÛ uÜepsguÜ uÝepsguÝ uÞepsguÞ ußepsguß uàepsguà uáepsguá uâepsguâ uãepsguã uøepsguø vƒepsgvƒ v„epsgv„ wepsgw wepsgw wepsgw wepsgw x epsgx x epsgx x epsgx x epsgx xGepsgxG xHepsgxH xPepsgxP y4epsgy4 y‘epsgy‘ y²epsgy² yÂepsgy yÃepsgyà zepsgz zepsgz zepsgz zepsgz zepsgz zepsgz zepsgz zepsgz zepsgz z!epsgz!   …oë] [C‰IepsguÝTokyo / Japan Plane Rectangular CS XIII+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS XIII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",144.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30173"],AXIS["X",NORTH],AXIS["Y",EAST]] …gë^ Y=‰AepsguÞTokyo / Japan Plane Rectangular CS XIV+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS XIV",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",142],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30174"],AXIS["X",NORTH],AXIS["Y",EAST]] …ië_ WA‰CepsgußTokyo / Japan Plane Rectangular CS XV+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS XV",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",127.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30175"],AXIS["X",NORTH],AXIS["Y",EAST]] …gë` Y=‰AepsguàTokyo / Japan Plane Rectangular CS XVI+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS XVI",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",124],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30176"],AXIS["X",NORTH],AXIS["Y",EAST]] …iëa [=‰CepsguáTokyo / Japan Plane Rectangular CS XVII+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS XVII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",131],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30177"],AXIS["X",NORTH],AXIS["Y",EAST]] …këb ]=‰EepsguâTokyo / Japan Plane Rectangular CS XVIII+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS XVIII",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",20],PARAMETER["central_meridian",136],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30178"],AXIS["X",NORTH],AXIS["Y",EAST]] …gëc Y=‰AepsguãTokyo / Japan Plane Rectangular CS XIX+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["Tokyo / Japan Plane Rectangular CS XIX",GEOGCS["Tokyo",DATUM["Tokyo",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6301"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4301"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",26],PARAMETER["central_meridian",154],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","30179"],AXIS["X",NORTH],AXIS["Y",EAST]] ŠŠ†qëx G‚sŠ1epsguøTrinidad 1903 / Trinidad Grid+proj=cass +lat_0=10.44166666666667 +lon_0=-61.33333333333334 +x_0=86501.46392051999 +y_0=65379.0134283 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.201166195164 +no_defsPROJCS["Trinidad 1903 / Trinidad Grid",GEOGCS["Trinidad 1903",DATUM["Trinidad_1903",SPHEROID["Clarke 1858",6378293.645208759,294.2606763692569,AUTHORITY["EPSG","7007"]],AUTHORITY["EPSG","6302"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4302"]],UNIT["Clarke's link",0.201166195164,AUTHORITY["EPSG","9039"]],PROJECTION["Cassini_Soldner"],PARAMETER["latitude_of_origin",10.44166666666667],PARAMETER["central_meridian",-61.33333333333334],PARAMETER["false_easting",430000],PARAMETER["false_northing",325000],AUTHORITY["EPSG","30200"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA…:í;s‰QepsgvƒTC(1948) / UTM zone 39N+proj=utm +zone=39 +ellps=helmert +units=m +no_defsPROJCS["TC(1948) / UTM zone 39N",GEOGCS["TC(1948)",DATUM["Trucial_Coast_1948",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6303"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4303"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","30339"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA…:í;s‰Qepsgv„TC(1948) / UTM zone 40N+proj=utm +zone=40 +ellps=helmert +units=m +no_defsPROJCS["TC(1948) / UTM zone 40N",GEOGCS["TC(1948)",DATUM["Trucial_Coast_1948",SPHEROID["Helmert 1906",6378200,298.3,AUTHORITY["EPSG","7020"]],AUTHORITY["EPSG","6303"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4303"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","30340"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ŠŠ†qî W‚?ŠUepsgwVoirol 1875 / Nord Algerie (ancienne)+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +units=m +no_defsPROJCS["Voirol 1875 / Nord Algerie (ancienne)",GEOGCS["Voirol 1875",DATUM["Voirol_1875",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY["EPSG","6304"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4304"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",2.7],PARAMETER["scale_factor",0.999625544],PARAMETER["false_easting",500000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","30491"],AXIS["X",EAST],AXIS["Y",NORTH]] †††uî U‚GŠWepsgwVoirol 1875 / Sud Algerie (ancienne)+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +units=m +no_defsPROJCS["Voirol 1875 / Sud Algerie (ancienne)",GEOGCS["Voirol 1875",DATUM["Voirol_1875",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY["EPSG","6304"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4304"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",33.3],PARAMETER["central_meridian",2.7],PARAMETER["scale_factor",0.999625769],PARAMETER["false_easting",500000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","30492"],AXIS["X",EAST],AXIS["Y",NORTH]] ÆÆ†5î W‚ŠepsgwVoirol 1879 / Nord Algerie (ancienne)+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defsPROJCS["Voirol 1879 / Nord Algerie (ancienne)",GEOGCS["Voirol 1879",DATUM["Voirol_1879",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6671"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4671"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",2.7],PARAMETER["scale_factor",0.999625544],PARAMETER["false_easting",500000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","30493"],AXIS["X",EAST],AXIS["Y",NORTH]] †9î U‚ ŠepsgwVoirol 1879 / Sud Algerie (ancienne)+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defsPROJCS["Voirol 1879 / Sud Algerie (ancienne)",GEOGCS["Voirol 1879",DATUM["Voirol_1879",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6671"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4671"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",33.3],PARAMETER["central_meridian",2.7],PARAMETER["scale_factor",0.999625769],PARAMETER["false_easting",500000],PARAMETER["false_northing",300000],AUTHORITY["EPSG","30494"],AXIS["X",EAST],AXIS["Y",NORTH]] !!…Zð KqŠepsgx Nord Sahara 1959 / UTM zone 29N+proj=utm +zone=29 +ellps=clrk80 +units=m +no_defsPROJCS["Nord Sahara 1959 / UTM zone 29N",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","30729"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] !!…Zð KqŠepsgx Nord Sahara 1959 / UTM zone 30N+proj=utm +zone=30 +ellps=clrk80 +units=m +no_defsPROJCS["Nord Sahara 1959 / UTM zone 30N",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","30730"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""…Yð KqŠepsgx Nord Sahara 1959 / UTM zone 31N+proj=utm +zone=31 +ellps=clrk80 +units=m +no_defsPROJCS["Nord Sahara 1959 / UTM zone 31N",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","30731"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ""…Yð KqŠepsgx Nord Sahara 1959 / UTM zone 32N+proj=utm +zone=32 +ellps=clrk80 +units=m +no_defsPROJCS["Nord Sahara 1959 / UTM zone 32N",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","30732"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÎΆ-ðG WoŠepsgxGNord Sahara 1959 / Voirol Unifie Nord+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m +no_defsPROJCS["Nord Sahara 1959 / Voirol Unifie Nord",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",36],PARAMETER["central_meridian",2.7],PARAMETER["scale_factor",0.999625544],PARAMETER["false_easting",500135],PARAMETER["false_northing",300090],AUTHORITY["EPSG","30791"],AXIS["X",EAST],AXIS["Y",NORTH]] Êʆ1ðH UwŠepsgxHNord Sahara 1959 / Voirol Unifie Sud+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m +no_defsPROJCS["Nord Sahara 1959 / Voirol Unifie Sud",GEOGCS["Nord Sahara 1959",DATUM["Nord_Sahara_1959",SPHEROID["Clarke 1880 (RGS)",6378249.145,293.465,AUTHORITY["EPSG","7012"]],AUTHORITY["EPSG","6307"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4307"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",33.3],PARAMETER["central_meridian",2.7],PARAMETER["scale_factor",0.999625769],PARAMETER["false_easting",500135],PARAMETER["false_northing",300090],AUTHORITY["EPSG","30792"],AXIS["X",EAST],AXIS["Y",NORTH]] …uðP CY‰WepsgxPRT38 2.5 gon W (deprecated)+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defsPROJCS["RT38 2.5 gon W (deprecated)",GEOGCS["RT38",DATUM["Stockholm_1938",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6308"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4308"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15.80827777777778],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","30800"],AXIS["X",NORTH],AXIS["Y",EAST]] ==…>ò4 3‰Mepsgy4Yoff / UTM zone 28N+proj=utm +zone=28 +a=6378249.2 +b=6356515 +units=m +no_defsPROJCS["Yoff / UTM zone 28N",GEOGCS["Yoff",DATUM["Yoff",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],AUTHORITY["EPSG","6310"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4310"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31028"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …qó ;+Šepsgy‘Zanderij / UTM zone 21N+proj=utm +zone=21 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defsPROJCS["Zanderij / UTM zone 21N",GEOGCS["Zanderij",DATUM["Zanderij",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY["EPSG","6311"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4311"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31121"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] èè†ó2 3‰}epsgy²Zanderij / TM 54 NW+proj=tmerc +lat_0=0 +lon_0=-54 +k=0.9996 +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defsPROJCS["Zanderij / TM 54 NW",GEOGCS["Zanderij",DATUM["Zanderij",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY["EPSG","6311"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4311"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-54],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31154"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ¼¼†?óB A‚Š)epsgyÂZanderij / Suriname Old TM+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9996 +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defsPROJCS["Zanderij / Suriname Old TM",GEOGCS["Zanderij",DATUM["Zanderij",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY["EPSG","6311"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4311"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-55.68333333333333],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31170"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÄĆ7óC 9‚Š!epsgyÃZanderij / Suriname TM+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9999 +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defsPROJCS["Zanderij / Suriname TM",GEOGCS["Zanderij",DATUM["Zanderij",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY["EPSG","6311"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4311"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-55.68333333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31171"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] àà†ô QQŠepsgzMGI (Ferro) / Austria GK West Zone+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / Austria GK West Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",28],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","31251"],AXIS["X",NORTH],AXIS["Y",EAST]] ÚÚ†!ô WQŠ#epsgzMGI (Ferro) / Austria GK Central Zone+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / Austria GK Central Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",31],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","31252"],AXIS["X",NORTH],AXIS["Y",EAST]] àà†ô QQŠepsgzMGI (Ferro) / Austria GK East Zone+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / Austria GK East Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",34],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","31253"],AXIS["X",NORTH],AXIS["Y",EAST]] ³³†Hô 7‚Š]epsgzMGI / Austria GK West+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria GK West",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",10.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","31254"],AXIS["X",NORTH],AXIS["Y",EAST]] ­­†Nô =‚ŠcepsgzMGI / Austria GK Central+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria GK Central",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","31255"],AXIS["X",NORTH],AXIS["Y",EAST]] ³³†Hô 7‚Š]epsgzMGI / Austria GK East+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria GK East",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","31256"],AXIS["X",NORTH],AXIS["Y",EAST]]bR "RY`gnu|ƒŠ‘˜Ÿ¦­´»ÂÉÐ×Þåìóú$+29@GNU\cjqx†”›¢©°·¾ÅÌÓÚáèïöý  '.5<CJQX_fmt{‚‰—ž¥¬³ºÁÈÏÖÝäëòù »ëR ¼ëS ½ëT ¾ëU ¿ëV ÀëW ÁëX ÂëY ÃëZ Äë[ Åë\ Çë] Èë^ Éë_ Êë` Ëëa Ìëb Íëc Îëx Ïí Ðí Ñî Òî Óî Ôî Õð Öð ×ð Øð ÙðG ÚðH ÛðP Üò4 Ýó Þó2 ßóB àóC áô âô ãô äô åô æô èô éô êô ëô! ìô" íô# îô$ ïô+ ðô, ñô- òô. óô/ ôô1 õô2 öô3 ÷ô4 øô5 ùô6 úô7 ûô8 üô9 ýô: þô; ÿô< ô= ô> ô? ô@ ôA õe õf õg õh õi õj õk õl õm ö( ö) öp ÷T ø^ ø_ ù ù ù] ù^ ù_ ù` ùa ùb ùc ùd !ùe ««†Pô 5‚ŠeepsgzMGI / Austria GK M28+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=150000 +y_0=-5000000 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria GK M28",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",10.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","31257"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Pô 5‚ŠeepsgzMGI / Austria GK M31+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=450000 +y_0=-5000000 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria GK M31",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",450000],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","31258"],AXIS["X",NORTH],AXIS["Y",EAST]] ««†Pô 5‚ŠeepsgzMGI / Austria GK M34+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=750000 +y_0=-5000000 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria GK M34",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",750000],PARAMETER["false_northing",-5000000],AUTHORITY["EPSG","31259"],AXIS["X",NORTH],AXIS["Y",EAST]] ­­†Nô! ]eŠcepsgz!MGI / 3-degree Gauss zone 5 (deprecated)+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / 3-degree Gauss zone 5 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31265"],AXIS["X",EAST],AXIS["Y",NORTH]] ­­†Nô" ]eŠcepsgz"MGI / 3-degree Gauss zone 6 (deprecated)+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / 3-degree Gauss zone 6 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",1],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31266"],AXIS["X",EAST],AXIS["Y",NORTH]] ­­†Nô# ]eŠcepsgz#MGI / 3-degree Gauss zone 7 (deprecated)+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / 3-degree Gauss zone 7 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",1],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31267"],AXIS["X",EAST],AXIS["Y",NORTH]] ­­†Nô$ ]eŠcepsgz$MGI / 3-degree Gauss zone 8 (deprecated)+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / 3-degree Gauss zone 8 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",1],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31268"],AXIS["X",EAST],AXIS["Y",NORTH]] ±±†Jô+ OoŠ_epsgz+MGI / Balkans zone 5 (deprecated)+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=5500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Balkans zone 5 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31275"],AXIS["X",NORTH],AXIS["Y",EAST]] ±±†Jô, OoŠ_epsgz,MGI / Balkans zone 6 (deprecated)+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=6500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Balkans zone 6 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",18],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",6500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31276"],AXIS["X",NORTH],AXIS["Y",EAST]] ±±†Jô- OoŠ_epsgz-MGI / Balkans zone 7 (deprecated)+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Balkans zone 7 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31277"],AXIS["X",NORTH],AXIS["Y",EAST]] ±±†Jô. OoŠ_epsgz.MGI / Balkans zone 8 (deprecated)+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Balkans zone 8 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",7500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31278"],AXIS["X",NORTH],AXIS["Y",EAST]] ±±†Jô/ OoŠ_epsgz/MGI / Balkans zone 8 (deprecated)+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=8500000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Balkans zone 8 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",24],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",8500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31279"],AXIS["X",NORTH],AXIS["Y",EAST]] ôô†ô1 KCŠ epsgz1MGI (Ferro) / Austria West Zone+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / Austria West Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",28],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","31281"],AXIS["X",NORTH],AXIS["Y",EAST]] îî† ô2 QCŠepsgz2MGI (Ferro) / Austria Central Zone+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / Austria Central Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",31],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","31282"],AXIS["X",NORTH],AXIS["Y",EAST]] ôô†ô3 KCŠ epsgz3MGI (Ferro) / Austria East Zone+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / Austria East Zone",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",34],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","31283"],AXIS["X",NORTH],AXIS["Y",EAST]] ¿¿†<ô4 /‚ŠQepsgz4MGI / Austria M28+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=150000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria M28",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",10.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31284"],AXIS["X",NORTH],AXIS["Y",EAST]] ¿¿†<ô5 /‚ŠQepsgz5MGI / Austria M31+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=450000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria M31",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",450000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31285"],AXIS["X",NORTH],AXIS["Y",EAST]] ¿¿†<ô6 /‚ŠQepsgz6MGI / Austria M34+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=750000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria M34",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",750000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31286"],AXIS["X",NORTH],AXIS["Y",EAST]] ff‡ô7 7‚+‹Qepsgz7MGI / Austria Lambert+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.33333333333333 +x_0=400000 +y_0=400000 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria Lambert",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",47.5],PARAMETER["central_meridian",13.33333333333333],PARAMETER["false_easting",400000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","31287"],AXIS["X",NORTH],AXIS["Y",EAST]] …uô8 /M‰wepsgz8MGI (Ferro) / M28+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=150000 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / M28",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",28],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31288"],AXIS["X",NORTH],AXIS["Y",EAST]] …uô9 /M‰wepsgz9MGI (Ferro) / M31+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=450000 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / M31",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",31],PARAMETER["scale_factor",1],PARAMETER["false_easting",450000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31289"],AXIS["X",NORTH],AXIS["Y",EAST]] …uô: /M‰wepsgz:MGI (Ferro) / M34+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=750000 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / M34",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",34],PARAMETER["scale_factor",1],PARAMETER["false_easting",750000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31290"],AXIS["X",NORTH],AXIS["Y",EAST]] ÚÚ†!ô; eCŠ#epsgz;MGI (Ferro) / Austria West Zone (deprecated)+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defsPROJCS["MGI (Ferro) / Austria West Zone (deprecated)",GEOGCS["MGI (Ferro)",DATUM["Militar_Geographische_Institut_Ferro",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6805"]],PRIMEM["Ferro",-17.66666666666667,AUTHORITY["EPSG","8909"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4805"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",28],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","31291"],AXIS["X",EAST],AXIS["Y",NORTH]] ÔÔ†'ô< kCŠ)epsgz 9‚Š[epsgz>MGI / M28 (deprecated)+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=150000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / M28 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",10.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31294"],AXIS["X",EAST],AXIS["Y",NORTH]] µµ†Fô? 9‚Š[epsgz?MGI / M31 (deprecated)+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=450000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / M31 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",13.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",450000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31295"],AXIS["X",EAST],AXIS["Y",NORTH]] µµ†Fô@ 9‚Š[epsgz@MGI / M34 (deprecated)+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=750000 +y_0=0 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / M34 (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",16.33333333333333],PARAMETER["scale_factor",1],PARAMETER["false_easting",750000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31296"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó z#epsgz# z$epsgz$ z+epsgz+ z,epsgz, z-epsgz- z.epsgz. z/epsgz/ z1epsgz1 z2epsgz2 z3epsgz3 z4epsgz4 z5epsgz5 z6epsgz6 z7epsgz7 z8epsgz8 z9epsgz9 z:epsgz: z;epsgz; zepsgz> z?epsgz? z@epsgz@ zAepsgzA zDepsgzD zŠepsgzŠ zåepsgzå zæepsgzæ zçepsgzç zèepsgzè zéepsgzé zêepsgzê zëepsgzë zìepsgzì zíepsgzí {(epsg{( {)epsg{) {pepsg{p {Ôepsg{Ô |^epsg|^ |_epsg|_ |œepsg|œ |epsg| |Ýepsg|Ý |Þepsg|Þ |ßepsg|ß |àepsg|à |áepsg|á |âepsg|â |ãepsg|ã |äepsg|ä |åepsg|å |æepsg|æ |çepsg|ç |èepsg|è |éepsg|é |êepsg|ê |ëepsg|ë |ìepsg|ì LL‡/ôA Q‚+‹kepsgzAMGI / Austria Lambert (deprecated)+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.33333333333333 +x_0=400000 +y_0=400000 +ellps=bessel +datum=hermannskogel +units=m +no_defsPROJCS["MGI / Austria Lambert (deprecated)",GEOGCS["MGI",DATUM["Militar_Geographische_Institute",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AUTHORITY["EPSG","6312"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4312"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",47.5],PARAMETER["central_meridian",13.33333333333333],PARAMETER["false_easting",400000],PARAMETER["false_northing",400000],AUTHORITY["EPSG","31297"],AXIS["X",EAST],AXIS["Y",NORTH]] +lat_0=90 +lon_0=4.356939722222222 +x_0=150000.01256 +y_0=5400088.4378 +ellps=intl +towgs84=106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1 +units=m +no_defsPROJCS["Belge 1972 / Belge Lambert 72",GEOGCS["Belge 1972",DATUM["Reseau_National_Belge_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1],AUTHORITY["EPSG","6313"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4313"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP_Belgium"],PARAMETER["standard_parallel_1",49.83333333333334],PARAMETER["standard_parallel_2",51.16666666666666],PARAMETER["latitude_of_origin",90],PARAMETER["central_meridian",4.356939722222222],PARAMETER["false_easting",150000.01256],PARAMETER["false_northing",5400088.4378],AUTHORITY["EPSG","31300"],AXIS["X",EAST],AXIS["Y",NORTH]]  † õe _W‰mepsgzåDHDN / 3-degree Gauss zone 1 (deprecated)+proj=tmerc +lat_0=0 +lon_0=3 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / 3-degree Gauss zone 1 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",1],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31461"],AXIS["X",EAST],AXIS["Y",NORTH]]ˆõ Kƒ7Œ)epsgzŠBelge 1972 / Belgian Lambert 72+proj=lcc +lat_1=51.16666723333333 +lat_2=49.8333339 +lat ˆ)ôD GƒKŒIepsgzDBelge 1972 / Belge Lambert 72+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666666 _0=90 +lon_0=4.367486666666666 +x_0=150000.013 +y_0=5400088.438 +ellps=intl +towgs84=106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1 +units=m +no_defsPROJCS["Belge 1972 / Belgian Lambert 72",GEOGCS["Belge 1972",DATUM["Reseau_National_Belge_1972",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1],AUTHORITY["EPSG","6313"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4313"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",51.16666723333333],PARAMETER["standard_parallel_2",49.8333339],PARAMETER["latitude_of_origin",90],PARAMETER["central_meridian",4.367486666666666],PARAMETER["false_easting",150000.013],PARAMETER["false_northing",5400088.438],AUTHORITY["EPSG","31370"],AXIS["X",EAST],AXIS["Y",NORTH]] îî† õf _W‰mepsgzæDHDN / 3-degree Gauss zone 2 (deprecated)+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / 3-degree Gauss zone 2 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",6],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31462"],AXIS["X",EAST],AXIS["Y",NORTH]] îî† õg _W‰mepsgzçDHDN / 3-degree Gauss zone 3 (deprecated)+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / 3-degree Gauss zone 3 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31463"],AXIS["X",EAST],AXIS["Y",NORTH]] ìì†õh _Y‰oepsgzèDHDN / 3-degree Gauss zone 4 (deprecated)+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / 3-degree Gauss zone 4 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31464"],AXIS["X",EAST],AXIS["Y",NORTH]] ìì†õi _Y‰oepsgzéDHDN / 3-degree Gauss zone 5 (deprecated)+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / 3-degree Gauss zone 5 (deprecated)",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31465"],AXIS["X",EAST],AXIS["Y",NORTH]] úú†õj SW‰aepsgzêDHDN / 3-degree Gauss-Kruger zone 2+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / 3-degree Gauss-Kruger zone 2",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",6],PARAMETER["scale_factor",1],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31466"],AXIS["X",NORTH],AXIS["Y",EAST]] úú†õk SW‰aepsgzëDHDN / 3-degree Gauss-Kruger zone 3+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / 3-degree Gauss-Kruger zone 3",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31467"],AXIS["X",NORTH],AXIS["Y",EAST]] øø†õl SY‰cepsgzìDHDN / 3-degree Gauss-Kruger zone 4+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / 3-degree Gauss-Kruger zone 4",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",12],PARAMETER["scale_factor",1],PARAMETER["false_easting",4500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31468"],AXIS["X",NORTH],AXIS["Y",EAST]] øø†õm SY‰cepsgzíDHDN / 3-degree Gauss-Kruger zone 5+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defsPROJCS["DHDN / 3-degree Gauss-Kruger zone 5",GEOGCS["DHDN",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel 1841",6377397.155,299.1528128,AUTHORITY["EPSG","7004"]],AUTHORITY["EPSG","6314"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4314"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",1],PARAMETER["false_easting",5500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31469"],AXIS["X",NORTH],AXIS["Y",EAST]] åå†ö( C=Š5epsg{(Conakry 1905 / UTM zone 28N+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defsPROJCS["Conakry 1905 / UTM zone 28N",GEOGCS["Conakry 1905",DATUM["Conakry_1905",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["EPSG","6315"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4315"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31528"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ææ†ö) C=Š3epsg{)Conakry 1905 / UTM zone 29N+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defsPROJCS["Conakry 1905 / UTM zone 29N",GEOGCS["Conakry 1905",DATUM["Conakry_1905",SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936265,AUTHORITY["EPSG","7011"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["EPSG","6315"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4315"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31529"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ì̆/öp MuŠ%epsg{pDealul Piscului 1930 / Stereo 33+proj=sterea +lat_0=45.9 +lon_0=25.39246588888889 +k=0.9996667 +x_0=500000 +y_0=500000 +ellps=intl +units=m +no_defsPROJCS["Dealul Piscului 1930 / Stereo 33",GEOGCS["Dealul Piscului 1930",DATUM["Dealul_Piscului_1930",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6316"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4316"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",45.9],PARAMETER["central_meridian",25.39246588888889],PARAMETER["scale_factor",0.9996667],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","31600"],AXIS["X",EAST],AXIS["Y",NORTH]] ÚÚ†!÷T eQŠepsg{ÔDealul Piscului 1970/ Stereo 70 (deprecated)+proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 +y_0=500000 +ellps=krass +units=m +no_defsPROJCS["Dealul Piscului 1970/ Stereo 70 (deprecated)",GEOGCS["Dealul Piscului 1970",DATUM["Dealul_Piscului_1970",SPHEROID["Krassowsky 1940",6378245,298.3,AUTHORITY["EPSG","7024"]],AUTHORITY["EPSG","6317"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4317"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Oblique_Stereographic"],PARAMETER["latitude_of_origin",46],PARAMETER["central_meridian",25],PARAMETER["scale_factor",0.99975],PARAMETER["false_easting",500000],PARAMETER["false_northing",500000],AUTHORITY["EPSG","31700"],AXIS["X",NORTH],AXIS["Y",EAST]]   …qø^ 1-Š epsg|^NGN / UTM zone 38N+proj=utm +zone=38 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0,0,0,0 +units=m +no_defsPROJCS["NGN / UTM zone 38N",GEOGCS["NGN",DATUM["National_Geodetic_Network",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-3.2,-5.7,2.8,0,0,0,0],AUTHORITY["EPSG","6318"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4318"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31838"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …qø_ 1-Š epsg|_NGN / UTM zone 39N+proj=utm +zone=39 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0,0,0,0 +units=m +no_defsPROJCS["NGN / UTM zone 39N",GEOGCS["NGN",DATUM["National_Geodetic_Network",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[-3.2,-5.7,2.8,0,0,0,0],AUTHORITY["EPSG","6318"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4318"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31839"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …dù ?A‰Qepsg|œKUDAMS / KTM (deprecated)+proj=tmerc +lat_0=0 +lon_0=48 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["KUDAMS / KTM (deprecated)",GEOGCS["KUDAMS",DATUM["Kuwait_Utility",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6319"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4319"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",48],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31900"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;;…@ù %7‰-epsg|KUDAMS / KTM+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defsPROJCS["KUDAMS / KTM",GEOGCS["KUDAMS",DATUM["Kuwait_Utility",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6319"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4319"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",48],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31901"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ü܆ù] AŠiepsg|ÝSIRGAS 2000 / UTM zone 11N+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 11N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31965"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ü܆ù^ AŠiepsg|ÞSIRGAS 2000 / UTM zone 12N+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 12N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31966"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ü܆ù_ AŠiepsg|ßSIRGAS 2000 / UTM zone 13N+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 13N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31967"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ý݆ù` AŠgepsg|àSIRGAS 2000 / UTM zone 14N+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 14N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31968"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ý݆ùa AŠgepsg|áSIRGAS 2000 / UTM zone 15N+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 15N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31969"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ý݆ùb AŠgepsg|âSIRGAS 2000 / UTM zone 16N+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 16N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31970"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ý݆ùc AŠgepsg|ãSIRGAS 2000 / UTM zone 17N+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 17N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31971"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ý݆ùd AŠgepsg|äSIRGAS 2000 / UTM zone 18N+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 18N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31972"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ý݆ùe AŠgepsg|åSIRGAS 2000 / UTM zone 19N+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 19N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31973"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ý݆ùf AŠgepsg|æSIRGAS 2000 / UTM zone 20N+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 20N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31974"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ý݆ùg AŠgepsg|çSIRGAS 2000 / UTM zone 21N+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 21N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31975"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ý݆ùh AŠgepsg|èSIRGAS 2000 / UTM zone 22N+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 22N",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31976"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ïφ,ùi A+Šuepsg|éSIRGAS 2000 / UTM zone 17S+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 17S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31977"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ïφ,ùj A+Šuepsg|êSIRGAS 2000 / UTM zone 18S+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 18S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31978"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ïφ,ùk A+Šuepsg|ëSIRGAS 2000 / UTM zone 19S+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 19S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31979"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ïφ,ùl A+Šuepsg|ìSIRGAS 2000 / UTM zone 20S+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 20S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31980"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ïφ,ùm A+Šuepsg|íSIRGAS 2000 / UTM zone 21S+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 21S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31981"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ïφ,ùn A+Šuepsg|îSIRGAS 2000 / UTM zone 22S+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 22S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31982"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ïφ,ùo A+Šuepsg|ïSIRGAS 2000 / UTM zone 23S+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 23S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31983"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ïφ,ùp A+Šuepsg|ðSIRGAS 2000 / UTM zone 24S+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 24S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31984"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ïφ,ùq A+Šuepsg|ñSIRGAS 2000 / UTM zone 25S+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 2000 / UTM zone 25S",GEOGCS["SIRGAS 2000",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_2000",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6674"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4674"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31985"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ý݆ùr AŠgepsg|òSIRGAS 1995 / UTM zone 17N+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 17N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31986"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ý݆ùs AŠgepsg|óSIRGAS 1995 / UTM zone 18N+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 18N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31987"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ý݆ùt AŠgepsg|ôSIRGAS 1995 / UTM zone 19N+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 19N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31988"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ý݆ùu AŠgepsg|õSIRGAS 1995 / UTM zone 20N+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 20N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31989"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ý݆ùv AŠgepsg|öSIRGAS 1995 / UTM zone 21N+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 21N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31990"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ý݆ùw AŠgepsg|÷SIRGAS 1995 / UTM zone 22N+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 22N",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","31991"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ïφ,ùx A+Šuepsg|øSIRGAS 1995 / UTM zone 17S+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 17S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31992"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ïφ,ùy A+Šuepsg|ùSIRGAS 1995 / UTM zone 18S+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 18S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31993"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ïφ,ùz A+Šuepsg|úSIRGAS 1995 / UTM zone 19S+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 19S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31994"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ïφ,ù{ A+Šuepsg|ûSIRGAS 1995 / UTM zone 20S+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 20S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31995"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ïφ,ù| A+Šuepsg|üSIRGAS 1995 / UTM zone 21S+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 21S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31996"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ïφ,ù} A+Šuepsg|ýSIRGAS 1995 / UTM zone 22S+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 22S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31997"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ïφ,ù~ A+Šuepsg|þSIRGAS 1995 / UTM zone 23S+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 23S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31998"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ïφ,ù A+Šuepsg|ÿSIRGAS 1995 / UTM zone 24S+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 24S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","31999"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Ïφ,ú A+Šuepsg}SIRGAS 1995 / UTM zone 25S+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defsPROJCS["SIRGAS 1995 / UTM zone 25S",GEOGCS["SIRGAS 1995",DATUM["Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6170"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4170"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32000"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ||†ú 7‚9‹epsg}NAD27 / Montana North+proj=lcc +lat_1=48.71666666666667 +lat_2=47.85 +lat_0=47 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Montana North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.71666666666667],PARAMETER["standard_parallel_2",47.85],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-109.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32001"],AXIS["X",EAST],AXIS["Y",NORTH]] ZZ‡!ú ;‚W‹9epsg}NAD27 / Montana Central+proj=lcc +lat_1=47.88333333333333 +lat_2=46.45 +lat_0=45.83333333333334 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Montana Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.88333333333333],PARAMETER["standard_parallel_2",46.45],PARAMETER["latitude_of_origin",45.83333333333334],PARAMETER["central_meridian",-109.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32002"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~†}ú 7‚7‹epsg}NAD27 / Montana South+proj=lcc +lat_1=46.4 +lat_2=44.86666666666667 +lat_0=44 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Montana South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46.4],PARAMETER["standard_parallel_2",44.86666666666667],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",-109.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32003"],AXIS["X",EAST],AXIS["Y",NORTH]] ``‡ú 9‚S‹3epsg}NAD27 / Nebraska North+proj=lcc +lat_1=41.85 +lat_2=42.81666666666667 +lat_0=41.33333333333334 +lon_0=-100 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Nebraska North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.85],PARAMETER["standard_parallel_2",42.81666666666667],PARAMETER["latitude_of_origin",41.33333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32005"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó |îepsg|î |ïepsg|ï |ðepsg|ð |ñepsg|ñ |òepsg|ò |óepsg|ó |ôepsg|ô |õepsg|õ |öepsg|ö |÷epsg|÷ |øepsg|ø |ùepsg|ù |úepsg|ú |ûepsg|û |üepsg|ü |ýepsg|ý |þepsg|þ |ÿepsg|ÿ }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} } epsg} } epsg} } epsg} } epsg} } epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }epsg} }!epsg}! }"epsg}" }#epsg}# }$epsg}$ }%epsg}% }&epsg}& }'epsg}' }(epsg}( })epsg}) }*epsg}* FF‡5ú 9‚m‹Mepsg}NAD27 / Nebraska South+proj=lcc +lat_1=40.28333333333333 +lat_2=41.71666666666667 +lat_0=39.66666666666666 +lon_0=-99.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Nebraska South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.28333333333333],PARAMETER["standard_parallel_2",41.71666666666667],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-99.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32006"],AXIS["X",EAST],AXIS["Y",NORTH]] ¾¾†=ú 3‚#Š-epsg}NAD27 / Nevada East+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Nevada East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-115.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32007"],AXIS["X",EAST],AXIS["Y",NORTH]] ¸¸†Cú 9‚#Š3epsg}NAD27 / Nevada Central+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Nevada Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-116.6666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32008"],AXIS["X",EAST],AXIS["Y",NORTH]] ¾¾†=ú 3‚#Š-epsg} NAD27 / Nevada West+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Nevada West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-118.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32009"],AXIS["X",EAST],AXIS["Y",NORTH]] ²²†Iú 7‚+Š9epsg} NAD27 / New Hampshire+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / New Hampshire",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-71.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32010"],AXIS["X",EAST],AXIS["Y",NORTH]] ™™†bú 1‚SŠIepsg} NAD27 / New Jersey+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.66666666666667 +k=0.9999749999999999 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / New Jersey",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.66666666666667],PARAMETER["scale_factor",0.999975],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32011"],AXIS["X",EAST],AXIS["Y",NORTH]] ²²†Iú ;‚'Š9epsg} NAD27 / New Mexico East+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / New Mexico East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-104.3333333333333],PARAMETER["scale_factor",0.999909091],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32012"],AXIS["X",EAST],AXIS["Y",NORTH]] Ì̆/ú A‚Šepsg} NAD27 / New Mexico Central+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / New Mexico Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-106.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32013"],AXIS["X",EAST],AXIS["Y",NORTH]] ²²†Iú ;‚'Š9epsg}NAD27 / New Mexico West+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / New Mexico West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-107.8333333333333],PARAMETER["scale_factor",0.999916667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32014"],AXIS["X",EAST],AXIS["Y",NORTH]] ¶¶†Eú 7‚'Š5epsg}NAD27 / New York East+proj=tmerc +lat_0=40 +lon_0=-74.33333333333333 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / New York East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-74.33333333333333],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32015"],AXIS["X",EAST],AXIS["Y",NORTH]] ´´†Gú =‚#Š7epsg}NAD27 / New York Central+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / New York Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-76.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32016"],AXIS["X",EAST],AXIS["Y",NORTH]] ºº†Aú 7‚#Š1epsg}NAD27 / New York West+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / New York West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-78.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32017"],AXIS["X",EAST],AXIS["Y",NORTH]] XX‡#ú E‚O‹;epsg}NAD27 / New York Long Island+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.5 +lon_0=-74 +x_0=304800.6096012192 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / New York Long Island",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.03333333333333],PARAMETER["standard_parallel_2",40.66666666666666],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-74],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32018"],AXIS["X",EAST],AXIS["Y",NORTH]]bR ŠRY`gnu|ƒŠ‘˜Ÿ¦­´»ÂÉÐ×Þåìóú$+29@GNU\cjqx†”›¢©°·¾ÅÌÓÚáèïöý  '.5<CJQX_fmt{‚‰—ž¥¬³ºÁÈÏÖÝäëòù #ùg $ùh %ùi &ùj 'ùk (ùl )ùm *ùn +ùo ,ùp -ùq .ùr /ùs 0ùt 1ùu 2ùv 3ùw 4ùx 5ùy 6ùz 7ù{ 8ù| 9ù} :ù~ ;ù <ú =ú >ú ?ú @ú Bú Cú Dú Eú Fú Gú Hú Iú Jú Kú Lú Mú Nú Pú Qú Rú Sú Tú Uú Vú Wú Xú Yú Zú [ú \ú ]ú! ^ú" _ú# `ú$ aú% bú& cú' dú( eú) fú* gú+ hú, iú- jú. kú/ lú0 mú1 nú2 oú3 pú4 qú5 rú6 sú7 tú8 uú9 vú: wú= xú> yú@ zúA {úB |úC }úJ ~úK ‚úL ƒúM „úQ …úR †úS ‡úT ˆúU ‰úV bb‡ú 9‚Q‹1epsg}NAD27 / North Carolina+proj=lcc +lat_1=34.33333333333334 +lat_2=36.16666666666666 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / North Carolina",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.33333333333334],PARAMETER["standard_parallel_2",36.16666666666666],PARAMETER["latitude_of_origin",33.75],PARAMETER["central_meridian",-79],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32019"],AXIS["X",EAST],AXIS["Y",NORTH]] ZZ‡!ú A‚Q‹9epsg}NAD27 / North Dakota North+proj=lcc +lat_1=47.43333333333333 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-100.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / North Dakota North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.43333333333333],PARAMETER["standard_parallel_2",48.73333333333333],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32020"],AXIS["X",EAST],AXIS["Y",NORTH]] <<‡?ú A‚o‹Wepsg}NAD27 / North Dakota South+proj=lcc +lat_1=46.18333333333333 +lat_2=47.48333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / North Dakota South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46.18333333333333],PARAMETER["standard_parallel_2",47.48333333333333],PARAMETER["latitude_of_origin",45.66666666666666],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32021"],AXIS["X",EAST],AXIS["Y",NORTH]] hh‡ú 1‚S‹+epsg}NAD27 / Ohio North+proj=lcc +lat_1=40.43333333333333 +lat_2=41.7 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Ohio North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.43333333333333],PARAMETER["standard_parallel_2",41.7],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32022"],AXIS["X",EAST],AXIS["Y",NORTH]] ll‡ú 1‚O‹'epsg}NAD27 / Ohio South+proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333333 +lat_0=38 +lon_0=-82.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Ohio South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.73333333333333],PARAMETER["standard_parallel_2",40.03333333333333],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32023"],AXIS["X",EAST],AXIS["Y",NORTH]] hh‡ú 9‚K‹+epsg}NAD27 / Oklahoma North+proj=lcc +lat_1=35.56666666666667 +lat_2=36.76666666666667 +lat_0=35 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Oklahoma North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.56666666666667],PARAMETER["standard_parallel_2",36.76666666666667],PARAMETER["latitude_of_origin",35],PARAMETER["central_meridian",-98],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32024"],AXIS["X",EAST],AXIS["Y",NORTH]] JJ‡1ú 9‚i‹Iepsg}NAD27 / Oklahoma South+proj=lcc +lat_1=33.93333333333333 +lat_2=35.23333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Oklahoma South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.93333333333333],PARAMETER["standard_parallel_2",35.23333333333333],PARAMETER["latitude_of_origin",33.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32025"],AXIS["X",EAST],AXIS["Y",NORTH]] ff‡ú 5‚Q‹-epsg}NAD27 / Oregon North+proj=lcc +lat_1=44.33333333333334 +lat_2=46 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Oregon North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.33333333333334],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32026"],AXIS["X",EAST],AXIS["Y",NORTH]] ff‡ú 5‚Q‹-epsg}NAD27 / Oregon South+proj=lcc +lat_1=42.33333333333334 +lat_2=44 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Oregon South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.33333333333334],PARAMETER["standard_parallel_2",44],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32027"],AXIS["X",EAST],AXIS["Y",NORTH]] TT‡'ú A‚W‹?epsg}NAD27 / Pennsylvania North+proj=lcc +lat_1=40.88333333333333 +lat_2=41.95 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Pennsylvania North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.88333333333333],PARAMETER["standard_parallel_2",41.95],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32028"],AXIS["X",EAST],AXIS["Y",NORTH]] VV‡%ú A‚U‹=epsg}NAD27 / Pennsylvania South+proj=lcc +lat_1=39.93333333333333 +lat_2=40.8 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Pennsylvania South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.93333333333333],PARAMETER["standard_parallel_2",40.8],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32029"],AXIS["X",EAST],AXIS["Y",NORTH]] ¸¸†Cú 5‚'Š3epsg}NAD27 / Rhode Island+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9999938 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Rhode Island",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.08333333333334],PARAMETER["central_meridian",-71.5],PARAMETER["scale_factor",0.9999938],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32030"],AXIS["X",EAST],AXIS["Y",NORTH]] \\‡ú E‚K‹7epsg}NAD27 / South Carolina North+proj=lcc +lat_1=33.76666666666667 +lat_2=34.96666666666667 +lat_0=33 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / South Carolina North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.76666666666667],PARAMETER["standard_parallel_2",34.96666666666667],PARAMETER["latitude_of_origin",33],PARAMETER["central_meridian",-81],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32031"],AXIS["X",EAST],AXIS["Y",NORTH]] >>‡=ú! E‚i‹Uepsg}!NAD27 / South Carolina South+proj=lcc +lat_1=32.33333333333334 +lat_2=33.66666666666666 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / South Carolina South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",32.33333333333334],PARAMETER["standard_parallel_2",33.66666666666666],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32033"],AXIS["X",EAST],AXIS["Y",NORTH]] @@‡;ú" A‚k‹Sepsg}"NAD27 / South Dakota North+proj=lcc +lat_1=44.41666666666666 +lat_2=45.68333333333333 +lat_0=43.83333333333334 +lon_0=-100 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / South Dakota North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.41666666666666],PARAMETER["standard_parallel_2",45.68333333333333],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32034"],AXIS["X",EAST],AXIS["Y",NORTH]] >>‡=ú# A‚m‹Uepsg}#NAD27 / South Dakota South+proj=lcc +lat_1=42.83333333333334 +lat_2=44.4 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / South Dakota South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.83333333333334],PARAMETER["standard_parallel_2",44.4],PARAMETER["latitude_of_origin",42.33333333333334],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32035"],AXIS["X",EAST],AXIS["Y",NORTH]] SS‡(ú$ I‚Q‹?epsg}$NAD27 / Tennessee (deprecated)+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.66666666666666 +lon_0=-86 +x_0=30480.06096012192 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Tennessee (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.25],PARAMETER["standard_parallel_2",36.41666666666666],PARAMETER["latitude_of_origin",34.66666666666666],PARAMETER["central_meridian",-86],PARAMETER["false_easting",100000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32036"],AXIS["X",EAST],AXIS["Y",NORTH]] €€†{ú% 3‚9‹epsg}%NAD27 / Texas North+proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=34 +lon_0=-101.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Texas North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.65],PARAMETER["standard_parallel_2",36.18333333333333],PARAMETER["latitude_of_origin",34],PARAMETER["central_meridian",-101.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32037"],AXIS["X",EAST],AXIS["Y",NORTH]] <<‡?ú& C‚m‹Wepsg}&NAD27 / Texas North Central+proj=lcc +lat_1=32.13333333333333 +lat_2=33.96666666666667 +lat_0=31.66666666666667 +lon_0=-97.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Texas North Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",32.13333333333333],PARAMETER["standard_parallel_2",33.96666666666667],PARAMETER["latitude_of_origin",31.66666666666667],PARAMETER["central_meridian",-97.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32038"],AXIS["X",EAST],AXIS["Y",NORTH]] ..‡Mú' 7ƒ‹eepsg}'NAD27 / Texas Central+proj=lcc +lat_1=30.11666666666667 +lat_2=31.88333333333333 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Texas Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.11666666666667],PARAMETER["standard_parallel_2",31.88333333333333],PARAMETER["latitude_of_origin",29.66666666666667],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32039"],AXIS["X",EAST],AXIS["Y",NORTH]] @@‡;ú( C‚i‹Sepsg}(NAD27 / Texas South Central+proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Texas South Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",28.38333333333333],PARAMETER["standard_parallel_2",30.28333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32040"],AXIS["X",EAST],AXIS["Y",NORTH]] LL‡/ú) 3‚m‹Gepsg})NAD27 / Texas South+proj=lcc +lat_1=26.16666666666667 +lat_2=27.83333333333333 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Texas South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",26.16666666666667],PARAMETER["standard_parallel_2",27.83333333333333],PARAMETER["latitude_of_origin",25.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32041"],AXIS["X",EAST],AXIS["Y",NORTH]] LL‡/ú* 1‚o‹Gepsg}*NAD27 / Utah North+proj=lcc +lat_1=40.71666666666667 +lat_2=41.78333333333333 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Utah North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.71666666666667],PARAMETER["standard_parallel_2",41.78333333333333],PARAMETER["latitude_of_origin",40.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32042"],AXIS["X",EAST],AXIS["Y",NORTH]] ``‡ú+ 5‚W‹3epsg}+NAD27 / Utah Central+proj=lcc +lat_1=39.01666666666667 +lat_2=40.65 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Utah Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.01666666666667],PARAMETER["standard_parallel_2",40.65],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32043"],AXIS["X",EAST],AXIS["Y",NORTH]] dd‡ú, 1‚W‹/epsg},NAD27 / Utah South+proj=lcc +lat_1=37.21666666666667 +lat_2=38.35 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Utah South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.21666666666667],PARAMETER["standard_parallel_2",38.35],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32044"],AXIS["X",EAST],AXIS["Y",NORTH]] ØØ†#ú- +‚Šepsg}-NAD27 / Vermont+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Vermont",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-72.5],PARAMETER["scale_factor",0.999964286],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32045"],AXIS["X",EAST],AXIS["Y",NORTH]] ``‡ú. 9‚S‹3epsg}.NAD27 / Virginia North+proj=lcc +lat_1=38.03333333333333 +lat_2=39.2 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Virginia North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.03333333333333],PARAMETER["standard_parallel_2",39.2],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32046"],AXIS["X",EAST],AXIS["Y",NORTH]] FF‡5ú/ 9‚m‹Mepsg}/NAD27 / Virginia South+proj=lcc +lat_1=36.76666666666667 +lat_2=37.96666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Virginia South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.76666666666667],PARAMETER["standard_parallel_2",37.96666666666667],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32047"],AXIS["X",EAST],AXIS["Y",NORTH]] ``‡ú0 =‚O‹3epsg}0NAD27 / Washington North+proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-120.8333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Washington North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.5],PARAMETER["standard_parallel_2",48.73333333333333],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-120.8333333333333],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32048"],AXIS["X",EAST],AXIS["Y",NORTH]] @@‡;ú1 =‚o‹Sepsg}1NAD27 / Washington South+proj=lcc +lat_1=45.83333333333334 +lat_2=47.33333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Washington South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.83333333333334],PARAMETER["standard_parallel_2",47.33333333333334],PARAMETER["latitude_of_origin",45.33333333333334],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32049"],AXIS["X",EAST],AXIS["Y",NORTH]] ŒŒ†oú2 C‚‹epsg}2NAD27 / West Virginia North+proj=lcc +lat_1=39 +lat_2=40.25 +lat_0=38.5 +lon_0=-79.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / West Virginia North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39],PARAMETER["standard_parallel_2",40.25],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32050"],AXIS["X",EAST],AXIS["Y",NORTH]] ^^‡ú3 C‚K‹5epsg}3NAD27 / West Virginia South+proj=lcc +lat_1=37.48333333333333 +lat_2=38.88333333333333 +lat_0=37 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / West Virginia South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.48333333333333],PARAMETER["standard_parallel_2",38.88333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32051"],AXIS["X",EAST],AXIS["Y",NORTH]] HH‡3ú4 ;‚i‹Kepsg}4NAD27 / Wisconsin North+proj=lcc +lat_1=45.56666666666667 +lat_2=46.76666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Wisconsin North",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.56666666666667],PARAMETER["standard_parallel_2",46.76666666666667],PARAMETER["latitude_of_origin",45.16666666666666],PARAMETER["central_meridian",-90],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32052"],AXIS["X",EAST],AXIS["Y",NORTH]] vv‡ú5 ?‚7‹epsg}5NAD27 / Wisconsin Central+proj=lcc +lat_1=44.25 +lat_2=45.5 +lat_0=43.83333333333334 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Wisconsin Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.25],PARAMETER["standard_parallel_2",45.5],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-90],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32053"],AXIS["X",EAST],AXIS["Y",NORTH]] ff‡ú6 ;‚K‹-epsg}6NAD27 / Wisconsin South+proj=lcc +lat_1=42.73333333333333 +lat_2=44.06666666666667 +lat_0=42 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Wisconsin South",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",42.73333333333333],PARAMETER["standard_parallel_2",44.06666666666667],PARAMETER["latitude_of_origin",42],PARAMETER["central_meridian",-90],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32054"],AXIS["X",EAST],AXIS["Y",NORTH]] šš†aú7 5‚EŠQepsg}7NAD27 / Wyoming East+proj=tmerc +lat_0=40.66666666666666 +lon_0=-105.1666666666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Wyoming East",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.66666666666666],PARAMETER["central_meridian",-105.1666666666667],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32055"],AXIS["X",EAST],AXIS["Y",NORTH]] ŠŠ†qú8 E‚EŠaepsg}8NAD27 / Wyoming East Central+proj=tmerc +lat_0=40.66666666666666 +lon_0=-107.3333333333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Wyoming East Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.66666666666666],PARAMETER["central_meridian",-107.3333333333333],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32056"],AXIS["X",EAST],AXIS["Y",NORTH]]   †[ú9 E‚/ŠKepsg}9NAD27 / Wyoming West Central+proj=tmerc +lat_0=40.66666666666666 +lon_0=-108.75 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Wyoming West Central",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.66666666666666],PARAMETER["central_meridian",-108.75],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32057"],AXIS["X",EAST],AXIS["Y",NORTH]] šš†aú: 5‚EŠQepsg}:NAD27 / Wyoming West+proj=tmerc +lat_0=40.66666666666666 +lon_0=-110.0833333333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Wyoming West",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.66666666666666],PARAMETER["central_meridian",-110.0833333333333],PARAMETER["scale_factor",0.999941177],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32058"],AXIS["X",EAST],AXIS["Y",NORTH]] ŒŒ†oú= ;‚iŠCepsg}=NAD27 / Guatemala Norte+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 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Guatemala Norte",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",16.81666666666667],PARAMETER["central_meridian",-90.33333333333333],PARAMETER["scale_factor",0.99992226],PARAMETER["false_easting",500000],PARAMETER["false_northing",292209.579],AUTHORITY["EPSG","32061"],AXIS["X",EAST],AXIS["Y",NORTH]] ··†Dú> 7‚5Š%epsg}>NAD27 / Guatemala Sur+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 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Guatemala Sur",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["latitude_of_origin",14.9],PARAMETER["central_meridian",-90.33333333333333],PARAMETER["scale_factor",0.99989906],PARAMETER["false_easting",500000],PARAMETER["false_northing",325992.681],AUTHORITY["EPSG","32062"],AXIS["X",EAST],AXIS["Y",NORTH]] ÛÛ† ú@ 9{Šepsg}@NAD27 / BLM 14N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / BLM 14N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32064"],AXIS["X",EAST],AXIS["Y",NORTH]] ÛÛ† úA 9{Šepsg}ANAD27 / BLM 15N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / BLM 15N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32065"],AXIS["X",EAST],AXIS["Y",NORTH]] ÛÛ† úB 9{Šepsg}BNAD27 / BLM 16N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / BLM 16N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32066"],AXIS["X",EAST],AXIS["Y",NORTH]] ÛÛ† úC 9{Šepsg}CNAD27 / BLM 17N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / BLM 17N (ftUS)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32067"],AXIS["X",EAST],AXIS["Y",NORTH]] ÁÁ†:úJ S{Š/epsg}JNAD27 / BLM 14N (feet) (deprecated)+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / BLM 14N (feet) (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32074"],AXIS["X",EAST],AXIS["Y",NORTH]] ÁÁ†:úK S{Š/epsg}KNAD27 / BLM 15N (feet) (deprecated)+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / BLM 15N (feet) (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32075"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó },epsg}, }-epsg}- }.epsg}. }/epsg}/ }0epsg}0 }1epsg}1 }2epsg}2 }3epsg}3 }4epsg}4 }5epsg}5 }6epsg}6 }7epsg}7 }8epsg}8 }9epsg}9 }:epsg}: }=epsg}= }>epsg}> }@epsg}@ }Aepsg}A }Bepsg}B }Cepsg}C }Jepsg}J }Kepsg}K }Lepsg}L }Mepsg}M }Qepsg}Q }Repsg}R }Sepsg}S }Tepsg}T }Uepsg}U }Vepsg}V }bepsg}b }cepsg}c }depsg}d }hepsg}h }kepsg}k }lepsg}l }mepsg}m }nepsg}n }oepsg}o }pepsg}p }qepsg}q }repsg}r }sepsg}s }tepsg}t }uepsg}u }vepsg}v }wepsg}w }xepsg}x }yepsg}y }zepsg}z }{epsg}{ }|epsg}| }}epsg}} }~epsg}~ }epsg} }€epsg}€ }epsg} }‚epsg}‚5Ï5FWhyŠ›¬½Îßð#4EVgx‰š«¼ÍÞïY epsgZ QepsgQ¡ ”epsg”æ ÒepsgÒ&  epsg c  Wepsg W¡  “epsg “Þ  Ïepsg Ï  epsg Y  Gepsg G—  ƒepsg ƒÔ  ¿epsg ¿  ûepsg ûO  7epsg 7‘  sepsg sÑ  ³epsg ³  ñepsg ñL  -epsg -Š  mepsg mÇ  ©epsg ©  æepsg æC  "epsg "€  ^epsg ^½  šepsg š  Öepsg ÖC epsg† NepsgN!Ï0FWhyŠ›¬½Îßð#4EVgx‰š«¼ÍïÞ5$ñàÏ ó •epsg• µ bepsgb w ~þepsg~þ : ~šepsg~š ü ~6epsg~6 ¿ }Òepsg}Ò  }…epsg}… ÆepsgÆO BepsgB‹ »epsg»· ,epsg,Ü kepsgkú ¨epsg¨ ûepsgû6 AepsgAV }epsg}t N'epsgN'¡ OepsgOß SÍepsgSÍ  VµepsgVµ Z ]-epsg]- ˜ _ûepsg_û Õ hQepsghQ  h˜epsgh˜ Q hèepsghè ‘ i>epsgi> Ï iðepsgið kÈepsgkÈ K o8epsgo8 ‰ tepsgt Æ z"epsgz" A }+epsg}+  |íepsg|í ÁÁ†:úL S{Š/epsg}LNAD27 / BLM 16N (feet) (deprecated)+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / BLM 16N (feet) (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32076"],AXIS["X",EAST],AXIS["Y",NORTH]] ÁÁ†:úM S{Š/epsg}MNAD27 / BLM 17N (feet) (deprecated)+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / BLM 17N (feet) (deprecated)",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32077"],AXIS["X",EAST],AXIS["Y",NORTH]] …yúQ 1_‰kepsg}QNAD27 / MTM zone 1+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / MTM zone 1",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-53],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32081"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …yúR 1_‰kepsg}RNAD27 / MTM zone 2+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / MTM zone 2",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-56],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32082"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] þþ…}úS 1c‰oepsg}SNAD27 / MTM zone 3+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / MTM zone 3",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-58.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32083"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] þþ…}úT 1c‰oepsg}TNAD27 / MTM zone 4+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / MTM zone 4",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-61.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32084"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] þþ…}úU 1c‰oepsg}UNAD27 / MTM zone 5+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / MTM zone 5",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-64.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32085"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] þþ…}úV 1c‰oepsg}VNAD27 / MTM zone 6+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / MTM zone 6",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-67.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32086"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÔÔ†'úb 9kŠ3epsg}bNAD27 / Quebec Lambert+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defsPROJCS["NAD27 / Quebec Lambert",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",60],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",-68.5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","32098"],AXIS["X",EAST],AXIS["Y",NORTH]] $$‡Wúc Aƒ‹oepsg}cNAD27 / Louisiana Offshore+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-91.33333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=us-ft +no_defsPROJCS["NAD27 / Louisiana Offshore",GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.9786982139006,AUTHORITY["EPSG","7008"]],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4267"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.83333333333333],PARAMETER["standard_parallel_2",26.16666666666667],PARAMETER["latitude_of_origin",25.66666666666667],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32099"],AXIS["X",EAST],AXIS["Y",NORTH]] ÚÚ†!úd +{Š%epsg}dNAD83 / Montana+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Montana",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",49],PARAMETER["standard_parallel_2",45],PARAMETER["latitude_of_origin",44.25],PARAMETER["central_meridian",-109.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32100"],AXIS["X",EAST],AXIS["Y",NORTH]] ÄĆ7úh -‚Š;epsg}hNAD83 / Nebraska+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Nebraska",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",43],PARAMETER["standard_parallel_2",40],PARAMETER["latitude_of_origin",39.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32104"],AXIS["X",EAST],AXIS["Y",NORTH]] åå†úk 3‚‰sepsg}kNAD83 / Nevada East+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Nevada East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-115.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",200000],PARAMETER["false_northing",8000000],AUTHORITY["EPSG","32107"],AXIS["X",EAST],AXIS["Y",NORTH]] ß߆úl 9‚‰yepsg}lNAD83 / Nevada Central+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Nevada Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-116.6666666666667],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",6000000],AUTHORITY["EPSG","32108"],AXIS["X",EAST],AXIS["Y",NORTH]] åå†úm 3‚‰sepsg}mNAD83 / Nevada West+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Nevada West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",34.75],PARAMETER["central_meridian",-118.5833333333333],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",800000],PARAMETER["false_northing",4000000],AUTHORITY["EPSG","32109"],AXIS["X",EAST],AXIS["Y",NORTH]] åå†ún 7‚ ‰sepsg}nNAD83 / New Hampshire+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / New Hampshire",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-71.66666666666667],PARAMETER["scale_factor",0.999966667],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32110"],AXIS["X",EAST],AXIS["Y",NORTH]] õõ†úo 1‚‰cepsg}oNAD83 / New Jersey+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / New Jersey",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32111"],AXIS["X",EAST],AXIS["Y",NORTH]] åå†úp ;‚‰sepsg}pNAD83 / New Mexico East+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / New Mexico East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-104.3333333333333],PARAMETER["scale_factor",0.999909091],PARAMETER["false_easting",165000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32112"],AXIS["X",EAST],AXIS["Y",NORTH]] ÿÿ…|úq Ag‰Yepsg}qNAD83 / New Mexico Central+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / New Mexico Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-106.25],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32113"],AXIS["X",EAST],AXIS["Y",NORTH]] åå†úr ;‚‰sepsg}rNAD83 / New Mexico West+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / New Mexico West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",31],PARAMETER["central_meridian",-107.8333333333333],PARAMETER["scale_factor",0.999916667],PARAMETER["false_easting",830000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32114"],AXIS["X",EAST],AXIS["Y",NORTH]] ïï† ús 7‚‰iepsg}sNAD83 / New York East+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / New York East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",38.83333333333334],PARAMETER["central_meridian",-74.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",150000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32115"],AXIS["X",EAST],AXIS["Y",NORTH]] çç†út =‚‰qepsg}tNAD83 / New York Central+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=250000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / New York Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-76.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",250000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32116"],AXIS["X",EAST],AXIS["Y",NORTH]] íí†úu 7‚‰kepsg}uNAD83 / New York West+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / New York West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40],PARAMETER["central_meridian",-78.58333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",350000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32117"],AXIS["X",EAST],AXIS["Y",NORTH]] rr‡ úv E‚I‹ epsg}vNAD83 / New York Long Island+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / New York Long Island",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.03333333333333],PARAMETER["standard_parallel_2",40.66666666666666],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-74],PARAMETER["false_easting",300000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32118"],AXIS["X",EAST],AXIS["Y",NORTH]] †kúw 9‚7Šoepsg}wNAD83 / North Carolina+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / North Carolina",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.16666666666666],PARAMETER["standard_parallel_2",34.33333333333334],PARAMETER["latitude_of_origin",33.75],PARAMETER["central_meridian",-79],PARAMETER["false_easting",609601.22],PARAMETER["false_northing",0],AUTHORITY["EPSG","32119"],AXIS["X",EAST],AXIS["Y",NORTH]] ŽŽ†múx A‚1Šqepsg}xNAD83 / North Dakota North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / North Dakota North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.43333333333333],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32120"],AXIS["X",EAST],AXIS["Y",NORTH]] pp‡ úy A‚O‹epsg}yNAD83 / North Dakota South+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / North Dakota South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.48333333333333],PARAMETER["standard_parallel_2",46.18333333333333],PARAMETER["latitude_of_origin",45.66666666666666],PARAMETER["central_meridian",-100.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32121"],AXIS["X",EAST],AXIS["Y",NORTH]] œœ†_úz 1‚3Šcepsg}zNAD83 / Ohio North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Ohio North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.7],PARAMETER["standard_parallel_2",40.43333333333333],PARAMETER["latitude_of_origin",39.66666666666666],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32122"],AXIS["X",EAST],AXIS["Y",NORTH]]   †[ú{ 1‚/Š_epsg}{NAD83 / Ohio South+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Ohio South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.03333333333333],PARAMETER["standard_parallel_2",38.73333333333333],PARAMETER["latitude_of_origin",38],PARAMETER["central_meridian",-82.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32123"],AXIS["X",EAST],AXIS["Y",NORTH]] œœ†_ú| 9‚+Šcepsg}|NAD83 / Oklahoma North+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Oklahoma North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.76666666666667],PARAMETER["standard_parallel_2",35.56666666666667],PARAMETER["latitude_of_origin",35],PARAMETER["central_meridian",-98],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32124"],AXIS["X",EAST],AXIS["Y",NORTH]] ~~†}ú} 9‚I‹epsg}}NAD83 / Oklahoma South+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Oklahoma South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",35.23333333333333],PARAMETER["standard_parallel_2",33.93333333333333],PARAMETER["latitude_of_origin",33.33333333333334],PARAMETER["central_meridian",-98],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32125"],AXIS["X",EAST],AXIS["Y",NORTH]] ˜˜†cú~ 5‚3Šgepsg}~NAD83 / Oregon North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Oregon North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46],PARAMETER["standard_parallel_2",44.33333333333334],PARAMETER["latitude_of_origin",43.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",2500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32126"],AXIS["X",EAST],AXIS["Y",NORTH]] ˜˜†cú 5‚3Šgepsg}NAD83 / Oregon South+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Oregon South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44],PARAMETER["standard_parallel_2",42.33333333333334],PARAMETER["latitude_of_origin",41.66666666666666],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",1500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32127"],AXIS["X",EAST],AXIS["Y",NORTH]] ˆˆ†sû A‚7Šwepsg}€NAD83 / Pennsylvania North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Pennsylvania North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.95],PARAMETER["standard_parallel_2",40.88333333333333],PARAMETER["latitude_of_origin",40.16666666666666],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32128"],AXIS["X",EAST],AXIS["Y",NORTH]] pp‡ û A‚O‹epsg}NAD83 / Pennsylvania South+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Pennsylvania South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.96666666666667],PARAMETER["standard_parallel_2",39.93333333333333],PARAMETER["latitude_of_origin",39.33333333333334],PARAMETER["central_meridian",-77.75],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32129"],AXIS["X",EAST],AXIS["Y",NORTH]] éé†û 5‚ ‰oepsg}‚NAD83 / Rhode Island+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=100000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Rhode Island",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",41.08333333333334],PARAMETER["central_meridian",-71.5],PARAMETER["scale_factor",0.99999375],PARAMETER["false_easting",100000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32130"],AXIS["X",EAST],AXIS["Y",NORTH]] ˜˜†cû 9‚/Šgepsg}…NAD83 / South Carolina+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / South Carolina",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",34.83333333333334],PARAMETER["standard_parallel_2",32.5],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",609600],PARAMETER["false_northing",0],AUTHORITY["EPSG","32133"],AXIS["X",EAST],AXIS["Y",NORTH]] tt‡û A‚K‹ epsg}†NAD83 / South Dakota North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / South Dakota North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.68333333333333],PARAMETER["standard_parallel_2",44.41666666666666],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-100],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32134"],AXIS["X",EAST],AXIS["Y",NORTH]] rr‡ û A‚M‹ epsg}‡NAD83 / South Dakota South+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / South Dakota South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.4],PARAMETER["standard_parallel_2",42.83333333333334],PARAMETER["latitude_of_origin",42.33333333333334],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32135"],AXIS["X",EAST],AXIS["Y",NORTH]]   †[û /‚1Š_epsg}ˆNAD83 / Tennessee+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Tennessee",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.41666666666666],PARAMETER["standard_parallel_2",35.25],PARAMETER["latitude_of_origin",34.33333333333334],PARAMETER["central_meridian",-86],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32136"],AXIS["X",EAST],AXIS["Y",NORTH]] ¨¨†Sû 3‚%ŠWepsg}‰NAD83 / Texas North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Texas North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",36.18333333333333],PARAMETER["standard_parallel_2",34.65],PARAMETER["latitude_of_origin",34],PARAMETER["central_meridian",-101.5],PARAMETER["false_easting",200000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","32137"],AXIS["X",EAST],AXIS["Y",NORTH]] dd‡û C‚Y‹epsg}ŠNAD83 / Texas North Central+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Texas North Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",33.96666666666667],PARAMETER["standard_parallel_2",32.13333333333333],PARAMETER["latitude_of_origin",31.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","32138"],AXIS["X",EAST],AXIS["Y",NORTH]] VV‡%û 7‚s‹)epsg}‹NAD83 / Texas Central+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Texas Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",31.88333333333333],PARAMETER["standard_parallel_2",30.11666666666667],PARAMETER["latitude_of_origin",29.66666666666667],PARAMETER["central_meridian",-100.3333333333333],PARAMETER["false_easting",700000],PARAMETER["false_northing",3000000],AUTHORITY["EPSG","32139"],AXIS["X",EAST],AXIS["Y",NORTH]] hh‡û C‚U‹epsg}ŒNAD83 / Texas South Central+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Texas South Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.28333333333333],PARAMETER["standard_parallel_2",28.38333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",600000],PARAMETER["false_northing",4000000],AUTHORITY["EPSG","32140"],AXIS["X",EAST],AXIS["Y",NORTH]] tt‡û 3‚Y‹ epsg}NAD83 / Texas South+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Texas South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.83333333333333],PARAMETER["standard_parallel_2",26.16666666666667],PARAMETER["latitude_of_origin",25.66666666666667],PARAMETER["central_meridian",-98.5],PARAMETER["false_easting",300000],PARAMETER["false_northing",5000000],AUTHORITY["EPSG","32141"],AXIS["X",EAST],AXIS["Y",NORTH]] tt‡û 1‚[‹ epsg}ŽNAD83 / Utah North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Utah North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",41.78333333333333],PARAMETER["standard_parallel_2",40.71666666666667],PARAMETER["latitude_of_origin",40.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","32142"],AXIS["X",EAST],AXIS["Y",NORTH]] ˆˆ†sû 5‚CŠwepsg}NAD83 / Utah Central+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Utah Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.65],PARAMETER["standard_parallel_2",39.01666666666667],PARAMETER["latitude_of_origin",38.33333333333334],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","32143"],AXIS["X",EAST],AXIS["Y",NORTH]] ŒŒ†oû 1‚CŠsepsg}NAD83 / Utah South+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Utah South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.35],PARAMETER["standard_parallel_2",37.21666666666667],PARAMETER["latitude_of_origin",36.66666666666666],PARAMETER["central_meridian",-111.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",3000000],AUTHORITY["EPSG","32144"],AXIS["X",EAST],AXIS["Y",NORTH]]   …pû +q‰Mepsg}‘NAD83 / Vermont+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Vermont",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",42.5],PARAMETER["central_meridian",-72.5],PARAMETER["scale_factor",0.999964286],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32145"],AXIS["X",EAST],AXIS["Y",NORTH]] †††uû 9‚AŠyepsg}’NAD83 / Virginia North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Virginia North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",39.2],PARAMETER["standard_parallel_2",38.03333333333333],PARAMETER["latitude_of_origin",37.66666666666666],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",3500000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","32146"],AXIS["X",EAST],AXIS["Y",NORTH]] ll‡û 9‚[‹epsg}“NAD83 / Virginia South+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Virginia South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",37.96666666666667],PARAMETER["standard_parallel_2",36.76666666666667],PARAMETER["latitude_of_origin",36.33333333333334],PARAMETER["central_meridian",-78.5],PARAMETER["false_easting",3500000],PARAMETER["false_northing",1000000],AUTHORITY["EPSG","32147"],AXIS["X",EAST],AXIS["Y",NORTH]] ””†gû =‚/Škepsg}”NAD83 / Washington North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Washington North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",48.73333333333333],PARAMETER["standard_parallel_2",47.5],PARAMETER["latitude_of_origin",47],PARAMETER["central_meridian",-120.8333333333333],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32148"],AXIS["X",EAST],AXIS["Y",NORTH]]bR ïRY`gnu|ƒŠ‘˜Ÿ¦­´»ÂÉÐ×Þåìóú$+29@GNU\cjqx†”›¢©°·¾ÅÌÓÚáèïöý  '.5<CJQX_fmt{‚‰—ž¥¬³ºÁÈÏÖÝäëòù ‹úc Œúd úh Žúk úl úm ‘ún ’úo “úp ”úq •úr –ús —út ˜úu ™úv šúw ›úx œúy úz žú{ Ÿú|  ú} ¡ú~ ¢ú £û ¤û ¥û ¦û §û ¨û ©û ªû «û ¬û ­û ®û ¯û °û ±û ²û ³û ´û µû ·û ¸û ¹û ºû »û ¼û ½û ¾û Àû Áû Âû! Ãû$ Äû% Åû& Æû' Çû4 Èû5 Éû6 Êû7 Ëû8 Ìû9 Íû: Îû; Ïû< Ðû= Ñû> Òû? Óû@ ÔûA ÕûB ÖûC ×ûD ØûE ÙûF ÚûG ÛûI ÜûJ ÝûK ÞûL ßûM àûN áûO âûP ãûQ äûR åûS æûT çûU èûV éûW êûX ëûY ìûZ íû[ îû\ tt‡û =‚O‹ epsg}•NAD83 / Washington South+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Washington South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",47.33333333333334],PARAMETER["standard_parallel_2",45.83333333333334],PARAMETER["latitude_of_origin",45.33333333333334],PARAMETER["central_meridian",-120.5],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32149"],AXIS["X",EAST],AXIS["Y",NORTH]] ÀÀ†;û C}Š?epsg}–NAD83 / West Virginia North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / West Virginia North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",40.25],PARAMETER["standard_parallel_2",39],PARAMETER["latitude_of_origin",38.5],PARAMETER["central_meridian",-79.5],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32150"],AXIS["X",EAST],AXIS["Y",NORTH]] ’’†iû C‚+Šmepsg}—NAD83 / West Virginia South+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / West Virginia South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",38.88333333333333],PARAMETER["standard_parallel_2",37.48333333333333],PARAMETER["latitude_of_origin",37],PARAMETER["central_meridian",-81],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32151"],AXIS["X",EAST],AXIS["Y",NORTH]] ||†û ;‚I‹epsg}˜NAD83 / Wisconsin North+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Wisconsin North",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",46.76666666666667],PARAMETER["standard_parallel_2",45.56666666666667],PARAMETER["latitude_of_origin",45.16666666666666],PARAMETER["central_meridian",-90],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32152"],AXIS["X",EAST],AXIS["Y",NORTH]] ªª†Qû ?‚ŠUepsg}™NAD83 / Wisconsin Central+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Wisconsin Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",45.5],PARAMETER["standard_parallel_2",44.25],PARAMETER["latitude_of_origin",43.83333333333334],PARAMETER["central_meridian",-90],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32153"],AXIS["X",EAST],AXIS["Y",NORTH]] šš†aû ;‚+Šeepsg}šNAD83 / Wisconsin South+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Wisconsin South",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44.06666666666667],PARAMETER["standard_parallel_2",42.73333333333333],PARAMETER["latitude_of_origin",42],PARAMETER["central_meridian",-90],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32154"],AXIS["X",EAST],AXIS["Y",NORTH]] ëë†û 5‚‰mepsg}›NAD83 / Wyoming East+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Wyoming East",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-105.1666666666667],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",200000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32155"],AXIS["X",EAST],AXIS["Y",NORTH]] Ñц*û E‚Šepsg}œNAD83 / Wyoming East Central+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Wyoming East Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-107.3333333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",400000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","32156"],AXIS["X",EAST],AXIS["Y",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó }†epsg}† }‡epsg}‡ }ˆepsg}ˆ }‰epsg}‰ }Šepsg}Š }‹epsg}‹ }Œepsg}Œ }epsg} }Žepsg}Ž }epsg} }epsg} }‘epsg}‘ }’epsg}’ }“epsg}“ }”epsg}” }•epsg}• }–epsg}– }—epsg}— }˜epsg}˜ }™epsg}™ }šepsg}š }›epsg}› }œepsg}œ }epsg} }žepsg}ž }¡epsg}¡ }¤epsg}¤ }¥epsg}¥ }¦epsg}¦ }§epsg}§ }´epsg}´ }µepsg}µ }¶epsg}¶ }·epsg}· }¸epsg}¸ }¹epsg}¹ }ºepsg}º }»epsg}» }¼epsg}¼ }½epsg}½ }¾epsg}¾ }¿epsg}¿ }Àepsg}À }Áepsg}Á }Âepsg} }Ãepsg}à }Äepsg}Ä }Åepsg}Å }Æepsg}Æ }Çepsg}Ç }Éepsg}É }Êepsg}Ê }Ëepsg}Ë }Ìepsg}Ì }Íepsg}Í }Îepsg}Î }Ïepsg}Ï }Ðepsg}Ð }Ñepsg}Ñ ññ† û Eq‰gepsg}NAD83 / Wyoming West Central+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Wyoming West Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-108.75],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",600000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32157"],AXIS["X",EAST],AXIS["Y",NORTH]] áá†û 5‚‰wepsg}žNAD83 / Wyoming West+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Wyoming West",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",40.5],PARAMETER["central_meridian",-110.0833333333333],PARAMETER["scale_factor",0.9999375],PARAMETER["false_easting",800000],PARAMETER["false_northing",100000],AUTHORITY["EPSG","32158"],AXIS["X",EAST],AXIS["Y",NORTH]] BB‡9û! M‚q‹=epsg}¡NAD83 / Puerto Rico & Virgin Is.+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 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Puerto Rico & Virgin Is.",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",18.43333333333333],PARAMETER["standard_parallel_2",18.03333333333333],PARAMETER["latitude_of_origin",17.83333333333333],PARAMETER["central_meridian",-66.43333333333334],PARAMETER["false_easting",200000],PARAMETER["false_northing",200000],AUTHORITY["EPSG","32161"],AXIS["X",EAST],AXIS["Y",NORTH]] åå†û$ 9yŠepsg}¤NAD83 / BLM 14N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / BLM 14N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32164"],AXIS["X",EAST],AXIS["Y",NORTH]] åå†û% 9yŠepsg}¥NAD83 / BLM 15N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / BLM 15N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32165"],AXIS["X",EAST],AXIS["Y",NORTH]] åå†û& 9yŠepsg}¦NAD83 / BLM 16N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / BLM 16N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32166"],AXIS["X",EAST],AXIS["Y",NORTH]] åå†û' 9yŠepsg}§NAD83 / BLM 17N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defsPROJCS["NAD83 / BLM 17N (ftUS)",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32167"],AXIS["X",EAST],AXIS["Y",NORTH]] …jû4 5a‰Gepsg}´NAD83 / SCoPQ zone 2+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / SCoPQ zone 2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-55.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32180"],AXIS["X",EAST],AXIS["Y",NORTH]] …hû5 1]‰Kepsg}µNAD83 / MTM zone 1+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 1",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-53],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32181"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] …hû6 1]‰Kepsg}¶NAD83 / MTM zone 2+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 2",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-56],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32182"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] …lû7 1a‰Oepsg}·NAD83 / MTM zone 3+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 3",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-58.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32183"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] …lû8 1a‰Oepsg}¸NAD83 / MTM zone 4+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 4",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-61.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32184"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] …lû9 1a‰Oepsg}¹NAD83 / MTM zone 5+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 5",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-64.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32185"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] …lû: 1a‰Oepsg}ºNAD83 / MTM zone 6+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 6",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-67.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32186"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] …lû; 1a‰Oepsg}»NAD83 / MTM zone 7+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 7",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-70.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32187"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] …lû< 1a‰Oepsg}¼NAD83 / MTM zone 8+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 8",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-73.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32188"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] …lû= 1a‰Oepsg}½NAD83 / MTM zone 9+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 9",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-76.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32189"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]]   …nû> 3a‰Qepsg}¾NAD83 / MTM zone 10+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 10",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-79.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32190"],AXIS["E(X)",EAST],AXIS["N(Y)",NORTH]] …uû? 3a‰_epsg}¿NAD83 / MTM zone 11+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 11",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-82.5],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32191"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …qû@ 3]‰[epsg}ÀNAD83 / MTM zone 12+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 12",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32192"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …qûA 3]‰[epsg}ÁNAD83 / MTM zone 13+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 13",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-84],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32193"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …qûB 3]‰[epsg}ÂNAD83 / MTM zone 14+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 14",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32194"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …qûC 3]‰[epsg}ÃNAD83 / MTM zone 15+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 15",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-90],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32195"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …qûD 3]‰[epsg}ÄNAD83 / MTM zone 16+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 16",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32196"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]   …qûE 3]‰[epsg}ÅNAD83 / MTM zone 17+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / MTM zone 17",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-96],PARAMETER["scale_factor",0.9999],PARAMETER["false_easting",304800],PARAMETER["false_northing",0],AUTHORITY["EPSG","32197"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ÞÞ†ûF 9iŠ!epsg}ÆNAD83 / Quebec Lambert+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Quebec Lambert",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",60],PARAMETER["standard_parallel_2",46],PARAMETER["latitude_of_origin",44],PARAMETER["central_meridian",-68.5],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","32198"],AXIS["X",EAST],AXIS["Y",NORTH]] pp‡ ûG A‚O‹epsg}ÇNAD83 / Louisiana Offshore+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defsPROJCS["NAD83 / Louisiana Offshore",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",27.83333333333333],PARAMETER["standard_parallel_2",26.16666666666667],PARAMETER["latitude_of_origin",25.5],PARAMETER["central_meridian",-91.33333333333333],PARAMETER["false_easting",1000000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32199"],AXIS["X",EAST],AXIS["Y",NORTH]] YY…"ûI5m‰-epsg}ÉWGS 72 / UTM zone 1N+proj=utm +zone=1 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 1N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32201"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY…"ûJ5m‰-epsg}ÊWGS 72 / UTM zone 2N+proj=utm +zone=2 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 2N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32202"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY…"ûK5m‰-epsg}ËWGS 72 / UTM zone 3N+proj=utm +zone=3 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 3N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32203"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY…"ûL5m‰-epsg}ÌWGS 72 / UTM zone 4N+proj=utm +zone=4 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 4N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32204"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY…"ûM5m‰-epsg}ÍWGS 72 / UTM zone 5N+proj=utm +zone=5 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 5N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32205"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY…"ûN5m‰-epsg}ÎWGS 72 / UTM zone 6N+proj=utm +zone=6 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 6N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32206"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY…"ûO5m‰-epsg}ÏWGS 72 / UTM zone 7N+proj=utm +zone=7 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 7N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32207"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY…"ûP5m‰-epsg}ÐWGS 72 / UTM zone 8N+proj=utm +zone=8 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 8N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32208"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY…"ûQ5m‰-epsg}ÑWGS 72 / UTM zone 9N+proj=utm +zone=9 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 9N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32209"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] VV…%ûR7o‰/epsg}ÒWGS 72 / UTM zone 10N+proj=utm +zone=10 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 10N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32210"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] VV…%ûS7o‰/epsg}ÓWGS 72 / UTM zone 11N+proj=utm +zone=11 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 11N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32211"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] VV…%ûT7o‰/epsg}ÔWGS 72 / UTM zone 12N+proj=utm +zone=12 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 12N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32212"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] VV…%ûU7o‰/epsg}ÕWGS 72 / UTM zone 13N+proj=utm +zone=13 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 13N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32213"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$ûV7o‰-epsg}ÖWGS 72 / UTM zone 14N+proj=utm +zone=14 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 14N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32214"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$ûW7o‰-epsg}×WGS 72 / UTM zone 15N+proj=utm +zone=15 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 15N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32215"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$ûX7o‰-epsg}ØWGS 72 / UTM zone 16N+proj=utm +zone=16 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 16N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32216"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$ûY7o‰-epsg}ÙWGS 72 / UTM zone 17N+proj=utm +zone=17 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 17N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32217"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$ûZ7o‰-epsg}ÚWGS 72 / UTM zone 18N+proj=utm +zone=18 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 18N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32218"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$û[7o‰-epsg}ÛWGS 72 / UTM zone 19N+proj=utm +zone=19 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 19N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32219"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$û\7o‰-epsg}ÜWGS 72 / UTM zone 20N+proj=utm +zone=20 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 20N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32220"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$û]7o‰-epsg}ÝWGS 72 / UTM zone 21N+proj=utm +zone=21 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 21N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32221"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$û^7o‰-epsg}ÞWGS 72 / UTM zone 22N+proj=utm +zone=22 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 22N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32222"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$û_7o‰-epsg}ßWGS 72 / UTM zone 23N+proj=utm +zone=23 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 23N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32223"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$û`7o‰-epsg}àWGS 72 / UTM zone 24N+proj=utm +zone=24 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 24N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32224"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$ûa7o‰-epsg}áWGS 72 / UTM zone 25N+proj=utm +zone=25 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 25N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32225"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$ûb7o‰-epsg}âWGS 72 / UTM zone 26N+proj=utm +zone=26 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 26N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32226"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$ûc7o‰-epsg}ãWGS 72 / UTM zone 27N+proj=utm +zone=27 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 27N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32227"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$ûd7o‰-epsg}äWGS 72 / UTM zone 28N+proj=utm +zone=28 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 28N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32228"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX…#ûe7o‰+epsg}åWGS 72 / UTM zone 29N+proj=utm +zone=29 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 29N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32229"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX…#ûf7o‰+epsg}æWGS 72 / UTM zone 30N+proj=utm +zone=30 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 30N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32230"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY…"ûg7o‰)epsg}çWGS 72 / UTM zone 31N+proj=utm +zone=31 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 31N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32231"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] YY…"ûh7o‰)epsg}èWGS 72 / UTM zone 32N+proj=utm +zone=32 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 32N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32232"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX…#ûi7o‰+epsg}éWGS 72 / UTM zone 33N+proj=utm +zone=33 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 33N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32233"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó }Óepsg}Ó }Ôepsg}Ô }Õepsg}Õ }Öepsg}Ö }×epsg}× }Øepsg}Ø }Ùepsg}Ù }Úepsg}Ú }Ûepsg}Û }Üepsg}Ü }Ýepsg}Ý }Þepsg}Þ }ßepsg}ß }àepsg}à }áepsg}á }âepsg}â }ãepsg}ã }äepsg}ä }åepsg}å }æepsg}æ }çepsg}ç }èepsg}è }éepsg}é }êepsg}ê }ëepsg}ë }ìepsg}ì }íepsg}í }îepsg}î }ïepsg}ï }ðepsg}ð }ñepsg}ñ }òepsg}ò }óepsg}ó }ôepsg}ô }õepsg}õ }öepsg}ö }÷epsg}÷ }øepsg}ø }ùepsg}ù }úepsg}ú }ûepsg}û }üepsg}ü }ýepsg}ý }þepsg}þ }ÿepsg}ÿ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~epsg~ ~-epsg~- ~.epsg~. ~/epsg~/ ~0epsg~0 ~1epsg~1 ~2epsg~2 ~3epsg~3 ~4epsg~4 ~5epsg~5 XX…#ûj7o‰+epsg}êWGS 72 / UTM zone 34N+proj=utm +zone=34 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 34N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32234"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX…#ûk7o‰+epsg}ëWGS 72 / UTM zone 35N+proj=utm +zone=35 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 35N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32235"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX…#ûl7o‰+epsg}ìWGS 72 / UTM zone 36N+proj=utm +zone=36 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 36N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32236"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX…#ûm7o‰+epsg}íWGS 72 / UTM zone 37N+proj=utm +zone=37 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 37N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32237"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX…#ûn7o‰+epsg}îWGS 72 / UTM zone 38N+proj=utm +zone=38 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 38N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32238"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX…#ûo7o‰+epsg}ïWGS 72 / UTM zone 39N+proj=utm +zone=39 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 39N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32239"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX…#ûp7o‰+epsg}ðWGS 72 / UTM zone 40N+proj=utm +zone=40 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 40N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32240"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX…#ûq7o‰+epsg}ñWGS 72 / UTM zone 41N+proj=utm +zone=41 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 41N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32241"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX…#ûr7o‰+epsg}òWGS 72 / UTM zone 42N+proj=utm +zone=42 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 42N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32242"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX…#ûs7o‰+epsg}óWGS 72 / UTM zone 43N+proj=utm +zone=43 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 43N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32243"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX…#ût7o‰+epsg}ôWGS 72 / UTM zone 44N+proj=utm +zone=44 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 44N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32244"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX…#ûu7o‰+epsg}õWGS 72 / UTM zone 45N+proj=utm +zone=45 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 45N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32245"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX…#ûv7o‰+epsg}öWGS 72 / UTM zone 46N+proj=utm +zone=46 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 46N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32246"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] XX…#ûw7o‰+epsg}÷WGS 72 / UTM zone 47N+proj=utm +zone=47 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 47N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32247"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$ûx7o‰-epsg}øWGS 72 / UTM zone 48N+proj=utm +zone=48 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 48N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32248"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$ûy7o‰-epsg}ùWGS 72 / UTM zone 49N+proj=utm +zone=49 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 49N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32249"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$ûz7o‰-epsg}úWGS 72 / UTM zone 50N+proj=utm +zone=50 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 50N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32250"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$û{7o‰-epsg}ûWGS 72 / UTM zone 51N+proj=utm +zone=51 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 51N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32251"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$û|7o‰-epsg}üWGS 72 / UTM zone 52N+proj=utm +zone=52 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 52N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32252"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$û}7o‰-epsg}ýWGS 72 / UTM zone 53N+proj=utm +zone=53 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 53N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32253"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$û~7o‰-epsg}þWGS 72 / UTM zone 54N+proj=utm +zone=54 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 54N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32254"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$û7o‰-epsg}ÿWGS 72 / UTM zone 55N+proj=utm +zone=55 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 55N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32255"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$ü7o‰-epsg~WGS 72 / UTM zone 56N+proj=utm +zone=56 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 56N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32256"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$ü7o‰-epsg~WGS 72 / UTM zone 57N+proj=utm +zone=57 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 57N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32257"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$ü7o‰-epsg~WGS 72 / UTM zone 58N+proj=utm +zone=58 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 58N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32258"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$ü7o‰-epsg~WGS 72 / UTM zone 59N+proj=utm +zone=59 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 59N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32259"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] WW…$ü7o‰-epsg~WGS 72 / UTM zone 60N+proj=utm +zone=60 +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 60N",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32260"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK…0ü-5{‰;epsg~-WGS 72 / UTM zone 1S+proj=utm +zone=1 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 1S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32301"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK…0ü.5{‰;epsg~.WGS 72 / UTM zone 2S+proj=utm +zone=2 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 2S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32302"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK…0ü/5{‰;epsg~/WGS 72 / UTM zone 3S+proj=utm +zone=3 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 3S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32303"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK…0ü05{‰;epsg~0WGS 72 / UTM zone 4S+proj=utm +zone=4 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 4S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32304"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]bR URY`gnu|ƒŠ‘˜Ÿ¦­´»ÂÉÐ×Þåìóú$+29@GNU\cjqx†”›¢©°·¾ÅÌÓÚáèïöý  '.5<CJQX_fmt{‚‰—ž¥¬³ºÁÈÏÖÝäëòù ðû^ ñû_ òû` óûa ôûb õûc öûd ÷ûe øûf ùûg úûh ûûi ýûj þûk ÿûl ûm ûn ûo ûp ûq ûr ûs ût ûu ûv ûw ûx ûy ûz û{ û| û} û~ û ü ü ü ü ü ü- ü. ü/ ü0 ü1 ü2 ü3 ü4 !ü5 "ü6 #ü7 $ü8 %ü9 &ü: 'ü; (ü< )ü= *ü> +ü? ,ü@ -üA .üB /üC 0üD 1üE 2üF 3üG 4üH 5üI 6üJ 7üK 8üL 9üM ;üN <üO =üP >üQ ?üR @üS AüT BüU CüV DüW EüX FüY GüZ Hü[ Iü\ Jü] Kü^ Lü_ Mü` Nüa Oüb Püc Qüd Rüe Süf Tüg KK…0ü15{‰;epsg~1WGS 72 / UTM zone 5S+proj=utm +zone=5 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 5S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32305"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK…0ü25{‰;epsg~2WGS 72 / UTM zone 6S+proj=utm +zone=6 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 6S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32306"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK…0ü35{‰;epsg~3WGS 72 / UTM zone 7S+proj=utm +zone=7 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 7S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32307"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK…0ü45{‰;epsg~4WGS 72 / UTM zone 8S+proj=utm +zone=8 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 8S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32308"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK…0ü55{‰;epsg~5WGS 72 / UTM zone 9S+proj=utm +zone=9 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 9S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32309"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] HH…3ü67}‰=epsg~6WGS 72 / UTM zone 10S+proj=utm +zone=10 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 10S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32310"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] HH…3ü77}‰=epsg~7WGS 72 / UTM zone 11S+proj=utm +zone=11 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 11S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32311"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] HH…3ü87}‰=epsg~8WGS 72 / UTM zone 12S+proj=utm +zone=12 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 12S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32312"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] HH…3ü97}‰=epsg~9WGS 72 / UTM zone 13S+proj=utm +zone=13 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 13S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32313"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2ü:7}‰;epsg~:WGS 72 / UTM zone 14S+proj=utm +zone=14 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 14S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32314"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2ü;7}‰;epsg~;WGS 72 / UTM zone 15S+proj=utm +zone=15 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 15S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32315"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2ü<7}‰;epsg~7}‰;epsg~>WGS 72 / UTM zone 18S+proj=utm +zone=18 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 18S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32318"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2ü?7}‰;epsg~?WGS 72 / UTM zone 19S+proj=utm +zone=19 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 19S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32319"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2ü@7}‰;epsg~@WGS 72 / UTM zone 20S+proj=utm +zone=20 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 20S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32320"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2üA7}‰;epsg~AWGS 72 / UTM zone 21S+proj=utm +zone=21 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 21S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32321"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2üB7}‰;epsg~BWGS 72 / UTM zone 22S+proj=utm +zone=22 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 22S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32322"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2üC7}‰;epsg~CWGS 72 / UTM zone 23S+proj=utm +zone=23 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 23S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32323"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2üD7}‰;epsg~DWGS 72 / UTM zone 24S+proj=utm +zone=24 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 24S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32324"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2üE7}‰;epsg~EWGS 72 / UTM zone 25S+proj=utm +zone=25 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 25S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32325"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2üF7}‰;epsg~FWGS 72 / UTM zone 26S+proj=utm +zone=26 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 26S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32326"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2üG7}‰;epsg~GWGS 72 / UTM zone 27S+proj=utm +zone=27 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 27S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32327"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2üH7}‰;epsg~HWGS 72 / UTM zone 28S+proj=utm +zone=28 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 28S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32328"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ…1üI7}‰9epsg~IWGS 72 / UTM zone 29S+proj=utm +zone=29 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 29S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32329"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ…1üJ7}‰9epsg~JWGS 72 / UTM zone 30S+proj=utm +zone=30 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 30S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32330"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK…0üK7}‰7epsg~KWGS 72 / UTM zone 31S+proj=utm +zone=31 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 31S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32331"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] KK…0üL7}‰7epsg~LWGS 72 / UTM zone 32S+proj=utm +zone=32 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 32S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32332"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ…1üM7}‰9epsg~MWGS 72 / UTM zone 33S+proj=utm +zone=33 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 33S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32333"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó ~7epsg~7 ~8epsg~8 ~9epsg~9 ~:epsg~: ~;epsg~; ~epsg~> ~?epsg~? ~@epsg~@ ~Aepsg~A ~Bepsg~B ~Cepsg~C ~Depsg~D ~Eepsg~E ~Fepsg~F ~Gepsg~G ~Hepsg~H ~Iepsg~I ~Jepsg~J ~Kepsg~K ~Lepsg~L ~Mepsg~M ~Nepsg~N ~Oepsg~O ~Pepsg~P ~Qepsg~Q ~Repsg~R ~Sepsg~S ~Tepsg~T ~Uepsg~U ~Vepsg~V ~Wepsg~W ~Xepsg~X ~Yepsg~Y ~Zepsg~Z ~[epsg~[ ~\epsg~\ ~]epsg~] ~^epsg~^ ~_epsg~_ ~`epsg~` ~aepsg~a ~bepsg~b ~cepsg~c ~depsg~d ~eepsg~e ~fepsg~f ~gepsg~g ~hepsg~h ~‘epsg~‘ ~’epsg~’ ~“epsg~“ ~”epsg~” ~•epsg~• ~–epsg~– ~—epsg~— ~˜epsg~˜ ~™epsg~™ JJ…1üN7}‰9epsg~NWGS 72 / UTM zone 34S+proj=utm +zone=34 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 34S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32334"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ…1üO7}‰9epsg~OWGS 72 / UTM zone 35S+proj=utm +zone=35 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 35S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32335"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ…1üP7}‰9epsg~PWGS 72 / UTM zone 36S+proj=utm +zone=36 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 36S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32336"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ…1üQ7}‰9epsg~QWGS 72 / UTM zone 37S+proj=utm +zone=37 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 37S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32337"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ…1üR7}‰9epsg~RWGS 72 / UTM zone 38S+proj=utm +zone=38 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 38S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32338"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ…1üS7}‰9epsg~SWGS 72 / UTM zone 39S+proj=utm +zone=39 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 39S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32339"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ…1üT7}‰9epsg~TWGS 72 / UTM zone 40S+proj=utm +zone=40 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 40S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32340"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ…1üU7}‰9epsg~UWGS 72 / UTM zone 41S+proj=utm +zone=41 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 41S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32341"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ…1üV7}‰9epsg~VWGS 72 / UTM zone 42S+proj=utm +zone=42 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 42S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32342"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ…1üW7}‰9epsg~WWGS 72 / UTM zone 43S+proj=utm +zone=43 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 43S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32343"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ…1üX7}‰9epsg~XWGS 72 / UTM zone 44S+proj=utm +zone=44 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 44S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32344"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ…1üY7}‰9epsg~YWGS 72 / UTM zone 45S+proj=utm +zone=45 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 45S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32345"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ…1üZ7}‰9epsg~ZWGS 72 / UTM zone 46S+proj=utm +zone=46 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 46S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32346"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] JJ…1ü[7}‰9epsg~[WGS 72 / UTM zone 47S+proj=utm +zone=47 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 47S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32347"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2ü\7}‰;epsg~\WGS 72 / UTM zone 48S+proj=utm +zone=48 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 48S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32348"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2ü]7}‰;epsg~]WGS 72 / UTM zone 49S+proj=utm +zone=49 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 49S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32349"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2ü^7}‰;epsg~^WGS 72 / UTM zone 50S+proj=utm +zone=50 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 50S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32350"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2ü_7}‰;epsg~_WGS 72 / UTM zone 51S+proj=utm +zone=51 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 51S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32351"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2ü`7}‰;epsg~`WGS 72 / UTM zone 52S+proj=utm +zone=52 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 52S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32352"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2üa7}‰;epsg~aWGS 72 / UTM zone 53S+proj=utm +zone=53 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 53S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32353"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2üb7}‰;epsg~bWGS 72 / UTM zone 54S+proj=utm +zone=54 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 54S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32354"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2üc7}‰;epsg~cWGS 72 / UTM zone 55S+proj=utm +zone=55 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 55S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32355"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2üd7}‰;epsg~dWGS 72 / UTM zone 56S+proj=utm +zone=56 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 56S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32356"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2üe7}‰;epsg~eWGS 72 / UTM zone 57S+proj=utm +zone=57 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 57S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32357"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2üf7}‰;epsg~fWGS 72 / UTM zone 58S+proj=utm +zone=58 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 58S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32358"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2üg7}‰;epsg~gWGS 72 / UTM zone 59S+proj=utm +zone=59 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 59S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32359"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] II…2üh7}‰;epsg~hWGS 72 / UTM zone 60S+proj=utm +zone=60 +south +ellps=WGS72 +units=m +no_defsPROJCS["WGS 72 / UTM zone 60S",GEOGCS["WGS 72",DATUM["WGS_1972",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],AUTHORITY["EPSG","6322"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4322"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32360"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ôô†ý 9/Š/epsg~‘WGS 72BE / UTM zone 1N+proj=utm +zone=1 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 1N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32401"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ôô†ý 9/Š/epsg~’WGS 72BE / UTM zone 2N+proj=utm +zone=2 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 2N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32402"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ôô†ý 9/Š/epsg~“WGS 72BE / UTM zone 3N+proj=utm +zone=3 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 3N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32403"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ôô†ý 9/Š/epsg~”WGS 72BE / UTM zone 4N+proj=utm +zone=4 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 4N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32404"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ôô†ý 9/Š/epsg~•WGS 72BE / UTM zone 5N+proj=utm +zone=5 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 5N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32405"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ôô†ý 9/Š/epsg~–WGS 72BE / UTM zone 6N+proj=utm +zone=6 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 6N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32406"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ôô†ý 9/Š/epsg~—WGS 72BE / UTM zone 7N+proj=utm +zone=7 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 7N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32407"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ôô†ý 9/Š/epsg~˜WGS 72BE / UTM zone 8N+proj=utm +zone=8 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 8N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32408"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ôô†ý 9/Š/epsg~™WGS 72BE / UTM zone 9N+proj=utm +zone=9 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 9N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32409"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ññ† ý ;1Š1epsg~šWGS 72BE / UTM zone 10N+proj=utm +zone=10 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 10N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32410"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ññ† ý ;1Š1epsg~›WGS 72BE / UTM zone 11N+proj=utm +zone=11 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 11N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32411"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ññ† ý ;1Š1epsg~œWGS 72BE / UTM zone 12N+proj=utm +zone=12 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 12N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32412"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ññ† ý ;1Š1epsg~WGS 72BE / UTM zone 13N+proj=utm +zone=13 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 13N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32413"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ý ;1Š/epsg~žWGS 72BE / UTM zone 14N+proj=utm +zone=14 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 14N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32414"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ý ;1Š/epsg~ŸWGS 72BE / UTM zone 15N+proj=utm +zone=15 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 15N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32415"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ý ;1Š/epsg~ WGS 72BE / UTM zone 16N+proj=utm +zone=16 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 16N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32416"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ý! ;1Š/epsg~¡WGS 72BE / UTM zone 17N+proj=utm +zone=17 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 17N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32417"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ý" ;1Š/epsg~¢WGS 72BE / UTM zone 18N+proj=utm +zone=18 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 18N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32418"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ý# ;1Š/epsg~£WGS 72BE / UTM zone 19N+proj=utm +zone=19 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 19N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32419"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ý$ ;1Š/epsg~¤WGS 72BE / UTM zone 20N+proj=utm +zone=20 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 20N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32420"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ý% ;1Š/epsg~¥WGS 72BE / UTM zone 21N+proj=utm +zone=21 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 21N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32421"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ý& ;1Š/epsg~¦WGS 72BE / UTM zone 22N+proj=utm +zone=22 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 22N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32422"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ý' ;1Š/epsg~§WGS 72BE / UTM zone 23N+proj=utm +zone=23 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 23N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32423"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ý( ;1Š/epsg~¨WGS 72BE / UTM zone 24N+proj=utm +zone=24 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 24N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32424"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ý) ;1Š/epsg~©WGS 72BE / UTM zone 25N+proj=utm +zone=25 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 25N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32425"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ý* ;1Š/epsg~ªWGS 72BE / UTM zone 26N+proj=utm +zone=26 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 26N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32426"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ý+ ;1Š/epsg~«WGS 72BE / UTM zone 27N+proj=utm +zone=27 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 27N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32427"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ý, ;1Š/epsg~¬WGS 72BE / UTM zone 28N+proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 28N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32428"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] óó†ý- ;1Š-epsg~­WGS 72BE / UTM zone 29N+proj=utm +zone=29 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 29N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32429"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] óó†ý. ;1Š-epsg~®WGS 72BE / UTM zone 30N+proj=utm +zone=30 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 30N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32430"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ôô†ý/ ;1Š+epsg~¯WGS 72BE / UTM zone 31N+proj=utm +zone=31 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 31N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32431"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ôô†ý0 ;1Š+epsg~°WGS 72BE / UTM zone 32N+proj=utm +zone=32 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 32N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32432"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] óó†ý1 ;1Š-epsg~±WGS 72BE / UTM zone 33N+proj=utm +zone=33 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 33N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32433"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó ~›epsg~› ~œepsg~œ ~epsg~ ~žepsg~ž ~Ÿepsg~Ÿ ~ epsg~  ~¡epsg~¡ ~¢epsg~¢ ~£epsg~£ ~¤epsg~¤ ~¥epsg~¥ ~¦epsg~¦ ~§epsg~§ ~¨epsg~¨ ~©epsg~© ~ªepsg~ª ~«epsg~« ~¬epsg~¬ ~­epsg~­ ~®epsg~® ~¯epsg~¯ ~°epsg~° ~±epsg~± ~²epsg~² ~³epsg~³ ~´epsg~´ ~µepsg~µ ~¶epsg~¶ ~·epsg~· ~¸epsg~¸ ~¹epsg~¹ ~ºepsg~º ~»epsg~» ~¼epsg~¼ ~½epsg~½ ~¾epsg~¾ ~¿epsg~¿ ~Àepsg~À ~Áepsg~Á ~Âepsg~ ~Ãepsg~à ~Äepsg~Ä ~Åepsg~Å ~Æepsg~Æ ~Çepsg~Ç ~Èepsg~È ~Éepsg~É ~Êepsg~Ê ~Ëepsg~Ë ~Ìepsg~Ì ~õepsg~õ ~öepsg~ö ~÷epsg~÷ ~øepsg~ø ~ùepsg~ù ~úepsg~ú ~ûepsg~û ~üepsg~ü ~ýepsg~ý óó†ý2 ;1Š-epsg~²WGS 72BE / UTM zone 34N+proj=utm +zone=34 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 34N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32434"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] óó†ý3 ;1Š-epsg~³WGS 72BE / UTM zone 35N+proj=utm +zone=35 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 35N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32435"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] óó†ý4 ;1Š-epsg~´WGS 72BE / UTM zone 36N+proj=utm +zone=36 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 36N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32436"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] óó†ý5 ;1Š-epsg~µWGS 72BE / UTM zone 37N+proj=utm +zone=37 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 37N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32437"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] óó†ý6 ;1Š-epsg~¶WGS 72BE / UTM zone 38N+proj=utm +zone=38 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 38N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32438"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] óó†ý7 ;1Š-epsg~·WGS 72BE / UTM zone 39N+proj=utm +zone=39 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 39N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32439"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] óó†ý8 ;1Š-epsg~¸WGS 72BE / UTM zone 40N+proj=utm +zone=40 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 40N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32440"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] óó†ý9 ;1Š-epsg~¹WGS 72BE / UTM zone 41N+proj=utm +zone=41 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 41N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32441"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] óó†ý: ;1Š-epsg~ºWGS 72BE / UTM zone 42N+proj=utm +zone=42 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 42N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32442"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] óó†ý; ;1Š-epsg~»WGS 72BE / UTM zone 43N+proj=utm +zone=43 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 43N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32443"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]bR »RY`gnu|ƒŠ‘˜Ÿ¦­´»ÂÉÐ×Þåìóú$+29@GNU\cjqx†”›¢©°·¾ÅÌÓÚáèïöý  '.5<CJQX_fmt{‚‰—ž¥¬³ºÁÈÏÖÝäëòù Vý Wý Xý Yý Zý [ý \ý ]ý ^ý _ý `ý aý bý cý dý eý fý! gý" hý# iý$ jý% ký& lý' mý( ný) oý* pý+ qý, rý- sý. tý/ uý0 vý1 xý2 yý3 zý4 {ý5 |ý6 }ý7 ~ý8 ý9 €ý: ý; ƒý< „ý= …ý> †ý? ‡ý@ ˆýA ‰ýB ŠýC ‹ýD ŒýE ýF ŽýG ýH ýI ‘ýJ ’ýK “ýL ”ýu •ýv –ýw —ýx ˜ýy ™ýz šý{ ›ý| œý} ý~ žý Ÿþ  þ ¡þ ¢þ £þ ¤þ ¥þ ¦þ §þ ¨þ ©þ ªþ «þ ¬þ ­þ ®þ ¯þ °þ ±þ ²þ ³þ ´þ ¶þ ·þ ¸þ ¹þ ºþ óó†ý< ;1Š-epsg~¼WGS 72BE / UTM zone 44N+proj=utm +zone=44 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 44N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32444"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] óó†ý= ;1Š-epsg~½WGS 72BE / UTM zone 45N+proj=utm +zone=45 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 45N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32445"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] óó†ý> ;1Š-epsg~¾WGS 72BE / UTM zone 46N+proj=utm +zone=46 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 46N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32446"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] óó†ý? ;1Š-epsg~¿WGS 72BE / UTM zone 47N+proj=utm +zone=47 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 47N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32447"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ý@ ;1Š/epsg~ÀWGS 72BE / UTM zone 48N+proj=utm +zone=48 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 48N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32448"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ýA ;1Š/epsg~ÁWGS 72BE / UTM zone 49N+proj=utm +zone=49 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 49N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32449"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ýB ;1Š/epsg~ÂWGS 72BE / UTM zone 50N+proj=utm +zone=50 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 50N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32450"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ýC ;1Š/epsg~ÃWGS 72BE / UTM zone 51N+proj=utm +zone=51 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 51N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32451"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ýD ;1Š/epsg~ÄWGS 72BE / UTM zone 52N+proj=utm +zone=52 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 52N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32452"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ýE ;1Š/epsg~ÅWGS 72BE / UTM zone 53N+proj=utm +zone=53 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 53N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32453"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ýF ;1Š/epsg~ÆWGS 72BE / UTM zone 54N+proj=utm +zone=54 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 54N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32454"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ýG ;1Š/epsg~ÇWGS 72BE / UTM zone 55N+proj=utm +zone=55 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 55N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32455"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ýH ;1Š/epsg~ÈWGS 72BE / UTM zone 56N+proj=utm +zone=56 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 56N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32456"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ýI ;1Š/epsg~ÉWGS 72BE / UTM zone 57N+proj=utm +zone=57 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 57N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32457"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ýJ ;1Š/epsg~ÊWGS 72BE / UTM zone 58N+proj=utm +zone=58 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 58N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32458"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ýK ;1Š/epsg~ËWGS 72BE / UTM zone 59N+proj=utm +zone=59 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 59N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32459"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] òò† ýL ;1Š/epsg~ÌWGS 72BE / UTM zone 60N+proj=utm +zone=60 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 60N",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32460"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ææ†ýu 9=Š=epsg~õWGS 72BE / UTM zone 1S+proj=utm +zone=1 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 1S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32501"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ææ†ýv 9=Š=epsg~öWGS 72BE / UTM zone 2S+proj=utm +zone=2 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 2S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32502"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ææ†ýw 9=Š=epsg~÷WGS 72BE / UTM zone 3S+proj=utm +zone=3 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 3S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32503"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ææ†ýx 9=Š=epsg~øWGS 72BE / UTM zone 4S+proj=utm +zone=4 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 4S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32504"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ææ†ýy 9=Š=epsg~ùWGS 72BE / UTM zone 5S+proj=utm +zone=5 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 5S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32505"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ææ†ýz 9=Š=epsg~úWGS 72BE / UTM zone 6S+proj=utm +zone=6 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 6S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32506"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ææ†ý{ 9=Š=epsg~ûWGS 72BE / UTM zone 7S+proj=utm +zone=7 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 7S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32507"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ææ†ý| 9=Š=epsg~üWGS 72BE / UTM zone 8S+proj=utm +zone=8 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 8S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32508"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ææ†ý} 9=Š=epsg~ýWGS 72BE / UTM zone 9S+proj=utm +zone=9 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 9S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32509"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ãã†ý~ ;?Š?epsg~þWGS 72BE / UTM zone 10S+proj=utm +zone=10 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 10S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32510"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ãã†ý ;?Š?epsg~ÿWGS 72BE / UTM zone 11S+proj=utm +zone=11 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 11S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32511"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ãã†þ ;?Š?epsgWGS 72BE / UTM zone 12S+proj=utm +zone=12 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 12S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32512"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ãã†þ ;?Š?epsgWGS 72BE / UTM zone 13S+proj=utm +zone=13 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 13S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32513"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ ;?Š=epsgWGS 72BE / UTM zone 14S+proj=utm +zone=14 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 14S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32514"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ ;?Š=epsgWGS 72BE / UTM zone 15S+proj=utm +zone=15 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 15S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32515"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ ;?Š=epsgWGS 72BE / UTM zone 16S+proj=utm +zone=16 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 16S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32516"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ ;?Š=epsgWGS 72BE / UTM zone 17S+proj=utm +zone=17 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 17S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32517"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ ;?Š=epsgWGS 72BE / UTM zone 18S+proj=utm +zone=18 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 18S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32518"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ ;?Š=epsgWGS 72BE / UTM zone 19S+proj=utm +zone=19 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 19S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32519"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ ;?Š=epsgWGS 72BE / UTM zone 20S+proj=utm +zone=20 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 20S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32520"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ ;?Š=epsg WGS 72BE / UTM zone 21S+proj=utm +zone=21 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 21S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32521"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ ;?Š=epsg WGS 72BE / UTM zone 22S+proj=utm +zone=22 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 22S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32522"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ ;?Š=epsg WGS 72BE / UTM zone 23S+proj=utm +zone=23 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 23S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32523"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ ;?Š=epsg WGS 72BE / UTM zone 24S+proj=utm +zone=24 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 24S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32524"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ ;?Š=epsg WGS 72BE / UTM zone 25S+proj=utm +zone=25 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 25S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32525"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ ;?Š=epsgWGS 72BE / UTM zone 26S+proj=utm +zone=26 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 26S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32526"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ ;?Š=epsgWGS 72BE / UTM zone 27S+proj=utm +zone=27 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 27S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32527"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ ;?Š=epsgWGS 72BE / UTM zone 28S+proj=utm +zone=28 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 28S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32528"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] åå†þ ;?Š;epsgWGS 72BE / UTM zone 29S+proj=utm +zone=29 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 29S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32529"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] åå†þ ;?Š;epsgWGS 72BE / UTM zone 30S+proj=utm +zone=30 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 30S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32530"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ææ†þ ;?Š9epsgWGS 72BE / UTM zone 31S+proj=utm +zone=31 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 31S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32531"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ææ†þ ;?Š9epsgWGS 72BE / UTM zone 32S+proj=utm +zone=32 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 32S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32532"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] åå†þ ;?Š;epsgWGS 72BE / UTM zone 33S+proj=utm +zone=33 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 33S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32533"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ;(5BO\ivƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó ~ÿepsg~ÿ epsg epsg epsg epsg epsg epsg epsg epsg epsg  epsg  epsg  epsg  epsg  epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg epsg  epsg !epsg! "epsg" #epsg# $epsg$ %epsg% &epsg& 'epsg' (epsg( )epsg) *epsg* +epsg+ ,epsg, -epsg- .epsg. /epsg/ 0epsg0 YepsgY ZepsgZ [epsg[ \epsg\ ]epsg] ^epsg^ _epsg_ `epsg` aepsga åå†þ ;?Š;epsgWGS 72BE / UTM zone 34S+proj=utm +zone=34 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 34S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32534"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] åå†þ ;?Š;epsgWGS 72BE / UTM zone 35S+proj=utm +zone=35 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 35S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32535"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] åå†þ ;?Š;epsgWGS 72BE / UTM zone 36S+proj=utm +zone=36 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 36S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32536"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] åå†þ ;?Š;epsgWGS 72BE / UTM zone 37S+proj=utm +zone=37 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 37S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32537"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] åå†þ ;?Š;epsgWGS 72BE / UTM zone 38S+proj=utm +zone=38 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 38S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32538"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] åå†þ ;?Š;epsgWGS 72BE / UTM zone 39S+proj=utm +zone=39 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 39S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32539"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] åå†þ ;?Š;epsgWGS 72BE / UTM zone 40S+proj=utm +zone=40 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 40S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32540"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] åå†þ ;?Š;epsgWGS 72BE / UTM zone 41S+proj=utm +zone=41 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 41S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32541"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] åå†þ ;?Š;epsgWGS 72BE / UTM zone 42S+proj=utm +zone=42 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 42S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32542"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] åå†þ ;?Š;epsgWGS 72BE / UTM zone 43S+proj=utm +zone=43 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 43S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32543"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] åå†þ ;?Š;epsg WGS 72BE / UTM zone 44S+proj=utm +zone=44 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 44S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32544"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] åå†þ! ;?Š;epsg!WGS 72BE / UTM zone 45S+proj=utm +zone=45 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 45S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32545"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] åå†þ" ;?Š;epsg"WGS 72BE / UTM zone 46S+proj=utm +zone=46 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 46S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32546"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] åå†þ# ;?Š;epsg#WGS 72BE / UTM zone 47S+proj=utm +zone=47 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 47S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32547"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ$ ;?Š=epsg$WGS 72BE / UTM zone 48S+proj=utm +zone=48 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 48S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32548"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ% ;?Š=epsg%WGS 72BE / UTM zone 49S+proj=utm +zone=49 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 49S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32549"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ& ;?Š=epsg&WGS 72BE / UTM zone 50S+proj=utm +zone=50 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 50S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32550"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ' ;?Š=epsg'WGS 72BE / UTM zone 51S+proj=utm +zone=51 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 51S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32551"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ( ;?Š=epsg(WGS 72BE / UTM zone 52S+proj=utm +zone=52 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 52S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32552"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ) ;?Š=epsg)WGS 72BE / UTM zone 53S+proj=utm +zone=53 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 53S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32553"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ* ;?Š=epsg*WGS 72BE / UTM zone 54S+proj=utm +zone=54 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 54S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32554"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ+ ;?Š=epsg+WGS 72BE / UTM zone 55S+proj=utm +zone=55 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 55S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32555"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ, ;?Š=epsg,WGS 72BE / UTM zone 56S+proj=utm +zone=56 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 56S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32556"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ- ;?Š=epsg-WGS 72BE / UTM zone 57S+proj=utm +zone=57 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 57S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32557"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ. ;?Š=epsg.WGS 72BE / UTM zone 58S+proj=utm +zone=58 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 58S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32558"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ/ ;?Š=epsg/WGS 72BE / UTM zone 59S+proj=utm +zone=59 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 59S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32559"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] ää†þ0 ;?Š=epsg0WGS 72BE / UTM zone 60S+proj=utm +zone=60 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defsPROJCS["WGS 72BE / UTM zone 60S",GEOGCS["WGS 72BE",DATUM["WGS_1972_Transit_Broadcast_Ephemeris",SPHEROID["WGS 72",6378135,298.26,AUTHORITY["EPSG","7043"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY["EPSG","6324"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4324"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32560"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD…7þY 5‰;epsgYWGS 84 / UTM zone 1N+proj=utm +zone=1 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 1N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32601"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD…7þZ 5‰;epsgZWGS 84 / UTM zone 2N+proj=utm +zone=2 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 2N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32602"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD…7þ[ 5‰;epsg[WGS 84 / UTM zone 3N+proj=utm +zone=3 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 3N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32603"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD…7þ\ 5‰;epsg\WGS 84 / UTM zone 4N+proj=utm +zone=4 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 4N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32604"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD…7þ] 5‰;epsg]WGS 84 / UTM zone 5N+proj=utm +zone=5 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 5N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32605"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD…7þ^ 5‰;epsg^WGS 84 / UTM zone 6N+proj=utm +zone=6 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 6N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32606"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD…7þ_ 5‰;epsg_WGS 84 / UTM zone 7N+proj=utm +zone=7 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 7N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32607"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD…7þ` 5‰;epsg`WGS 84 / UTM zone 8N+proj=utm +zone=8 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 8N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32608"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD…7þa 5‰;epsgaWGS 84 / UTM zone 9N+proj=utm +zone=9 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 9N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32609"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA…:þb 7 ‰=epsgbWGS 84 / UTM zone 10N+proj=utm +zone=10 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 10N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32610"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA…:þc 7 ‰=epsgcWGS 84 / UTM zone 11N+proj=utm +zone=11 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 11N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32611"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA…:þd 7 ‰=epsgdWGS 84 / UTM zone 12N+proj=utm +zone=12 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 12N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32612"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] AA…:þe 7 ‰=epsgeWGS 84 / UTM zone 13N+proj=utm +zone=13 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 13N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32613"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9þf 7 ‰;epsgfWGS 84 / UTM zone 14N+proj=utm +zone=14 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 14N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32614"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9þg 7 ‰;epsggWGS 84 / UTM zone 15N+proj=utm +zone=15 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 15N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32615"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9þh 7 ‰;epsghWGS 84 / UTM zone 16N+proj=utm +zone=16 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 16N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32616"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9þi 7 ‰;epsgiWGS 84 / UTM zone 17N+proj=utm +zone=17 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 17N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32617"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9þj 7 ‰;epsgjWGS 84 / UTM zone 18N+proj=utm +zone=18 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 18N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32618"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9þk 7 ‰;epsgkWGS 84 / UTM zone 19N+proj=utm +zone=19 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 19N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32619"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9þl 7 ‰;epsglWGS 84 / UTM zone 20N+proj=utm +zone=20 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 20N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32620"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9þm 7 ‰;epsgmWGS 84 / UTM zone 21N+proj=utm +zone=21 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 21N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32621"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9þn 7 ‰;epsgnWGS 84 / UTM zone 22N+proj=utm +zone=22 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 22N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32622"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]T´´»ÂÉÐ×Þåìóú$+29@GNU\cjqx†”›¢©°·¾ÅÌÓÚáèïöý  '.5<CJQX_fmt{‚‰—ž¥¬³ºÁÈÏÖÝäëòù ¼þ ½þ ¾þ ¿þ Àþ Áþ! Âþ" Ãþ# Äþ$ Åþ% Æþ& Çþ' Èþ( Éþ) Êþ* Ëþ+ Ìþ, Íþ- Îþ. Ïþ/ Ðþ0 ÑþY ÒþZ Óþ[ Ôþ\ Õþ] Öþ^ ×þ_ Øþ` Ùþa Úþb Ûþc Üþd Ýþe Þþf ßþg àþh áþi âþj ãþk äþl åþm æþn èþo éþp êþq ëþr ìþs íþt îþu ïþv ðþw ñþx òþy ôþz õþ{ öþ| ÷þ} øþ~ ùþ úÿ ûÿ üÿ ýÿ þÿ ÿÿÿÿÿÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿÿÿÿÿ BB…9þo 7 ‰;epsgoWGS 84 / UTM zone 23N+proj=utm +zone=23 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 23N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32623"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9þp 7 ‰;epsgpWGS 84 / UTM zone 24N+proj=utm +zone=24 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 24N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32624"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9þq 7 ‰;epsgqWGS 84 / UTM zone 25N+proj=utm +zone=25 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 25N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32625"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9þr 7 ‰;epsgrWGS 84 / UTM zone 26N+proj=utm +zone=26 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 26N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32626"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9þs 7 ‰;epsgsWGS 84 / UTM zone 27N+proj=utm +zone=27 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 27N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32627"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9þt 7 ‰;epsgtWGS 84 / UTM zone 28N+proj=utm +zone=28 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 28N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32628"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…8þu 7 ‰9epsguWGS 84 / UTM zone 29N+proj=utm +zone=29 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 29N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32629"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…8þv 7 ‰9epsgvWGS 84 / UTM zone 30N+proj=utm +zone=30 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 30N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32630"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD…7þw 7 ‰7epsgwWGS 84 / UTM zone 31N+proj=utm +zone=31 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 31N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32631"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] DD…7þx 7 ‰7epsgxWGS 84 / UTM zone 32N+proj=utm +zone=32 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 32N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32632"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…8þy 7 ‰9epsgyWGS 84 / UTM zone 33N+proj=utm +zone=33 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 33N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32633"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 2vvƒª·ÄÑÞëø,9FS`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæó cepsgc depsgd eepsge fepsgf gepsgg hepsgh iepsgi jepsgj kepsgk lepsgl mepsgm nepsgn oepsgo pepsgp qepsgq repsgr sepsgs tepsgt uepsgu vepsgv wepsgw xepsgx yepsgy zepsgz {epsg{ |epsg| }epsg} ~epsg~ epsg €epsg€ epsg ‚epsg‚ ƒepsgƒ „epsg„ …epsg… †epsg† ‡epsg‡ ˆepsgˆ ‰epsg‰ ŠepsgŠ ‹epsg‹ ŒepsgŒ epsg ŽepsgŽ epsg epsg ‘epsg‘ ’epsg’ “epsg“ ”epsg” CC…8þz 7 ‰9epsgzWGS 84 / UTM zone 34N+proj=utm +zone=34 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 34N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32634"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…8þ{ 7 ‰9epsg{WGS 84 / UTM zone 35N+proj=utm +zone=35 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 35N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32635"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…8þ| 7 ‰9epsg|WGS 84 / UTM zone 36N+proj=utm +zone=36 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 36N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32636"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…8þ} 7 ‰9epsg}WGS 84 / UTM zone 37N+proj=utm +zone=37 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 37N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32637"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…8þ~ 7 ‰9epsg~WGS 84 / UTM zone 38N+proj=utm +zone=38 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 38N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32638"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…8þ 7 ‰9epsgWGS 84 / UTM zone 39N+proj=utm +zone=39 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 39N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32639"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…8ÿ 7 ‰9epsg€WGS 84 / UTM zone 40N+proj=utm +zone=40 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 40N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32640"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…8ÿ 7 ‰9epsgWGS 84 / UTM zone 41N+proj=utm +zone=41 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 41N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32641"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…8ÿ 7 ‰9epsg‚WGS 84 / UTM zone 42N+proj=utm +zone=42 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 42N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32642"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…8ÿ 7 ‰9epsgƒWGS 84 / UTM zone 43N+proj=utm +zone=43 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 43N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32643"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…8ÿ 7 ‰9epsg„WGS 84 / UTM zone 44N+proj=utm +zone=44 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 44N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32644"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…8ÿ 7 ‰9epsg…WGS 84 / UTM zone 45N+proj=utm +zone=45 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 45N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32645"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…8ÿ 7 ‰9epsg†WGS 84 / UTM zone 46N+proj=utm +zone=46 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 46N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32646"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] CC…8ÿ 7 ‰9epsg‡WGS 84 / UTM zone 47N+proj=utm +zone=47 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 47N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32647"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9ÿ 7 ‰;epsgˆWGS 84 / UTM zone 48N+proj=utm +zone=48 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 48N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32648"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9ÿ 7 ‰;epsg‰WGS 84 / UTM zone 49N+proj=utm +zone=49 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 49N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32649"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9ÿ 7 ‰;epsgŠWGS 84 / UTM zone 50N+proj=utm +zone=50 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 50N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32650"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9ÿ 7 ‰;epsg‹WGS 84 / UTM zone 51N+proj=utm +zone=51 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 51N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32651"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9ÿ 7 ‰;epsgŒWGS 84 / UTM zone 52N+proj=utm +zone=52 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 52N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32652"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9ÿ 7 ‰;epsgWGS 84 / UTM zone 53N+proj=utm +zone=53 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 53N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32653"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9ÿ 7 ‰;epsgŽWGS 84 / UTM zone 54N+proj=utm +zone=54 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 54N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32654"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9ÿ 7 ‰;epsgWGS 84 / UTM zone 55N+proj=utm +zone=55 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 55N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32655"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9ÿ 7 ‰;epsgWGS 84 / UTM zone 56N+proj=utm +zone=56 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 56N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32656"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9ÿ 7 ‰;epsg‘WGS 84 / UTM zone 57N+proj=utm +zone=57 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 57N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32657"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9ÿ 7 ‰;epsg’WGS 84 / UTM zone 58N+proj=utm +zone=58 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 58N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32658"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9ÿ 7 ‰;epsg“WGS 84 / UTM zone 59N+proj=utm +zone=59 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 59N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32659"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] BB…9ÿ 7 ‰;epsg”WGS 84 / UTM zone 60N+proj=utm +zone=60 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 60N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","32660"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …wÿ 1}‰Iepsg•WGS 84 / UPS North+proj=stere +lat_0=90 +lat_ts=90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UPS North",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",90],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.994],PARAMETER["false_easting",2000000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","32661"],AXIS["Northing",UNKNOWN],AXIS["Easting",UNKNOWN]] @@…;ÿ QKˆcepsg–WGS 84 / Plate Carree (deprecated)+proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / Plate Carree (deprecated)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Equirectangular"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","32662"],AXIS["X",EAST],AXIS["Y",NORTH]] õõ†ÿ ;y‰aepsg˜WGS 84 / BLM 14N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=us-ft +no_defsPROJCS["WGS 84 / BLM 14N (ftUS)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32664"],AXIS["X",EAST],AXIS["Y",NORTH]] õõ†ÿ ;y‰aepsg™WGS 84 / BLM 15N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=us-ft +no_defsPROJCS["WGS 84 / BLM 15N (ftUS)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32665"],AXIS["X",EAST],AXIS["Y",NORTH]] õõ†ÿ ;y‰aepsgšWGS 84 / BLM 16N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=us-ft +no_defsPROJCS["WGS 84 / BLM 16N (ftUS)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32666"],AXIS["X",EAST],AXIS["Y",NORTH]] õõ†ÿ ;y‰aepsg›WGS 84 / BLM 17N (ftUS)+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=us-ft +no_defsPROJCS["WGS 84 / BLM 17N (ftUS)",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["US survey foot",0.3048006096012192,AUTHORITY["EPSG","9003"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",1640416.67],PARAMETER["false_northing",0],AUTHORITY["EPSG","32667"],AXIS["X",EAST],AXIS["Y",NORTH]] 66…Eÿ= 5‰Iepsg½WGS 84 / UTM zone 1S+proj=utm +zone=1 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 1S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32701"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66…Eÿ> 5‰Iepsg¾WGS 84 / UTM zone 2S+proj=utm +zone=2 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 2S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32702"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66…Eÿ? 5‰Iepsg¿WGS 84 / UTM zone 3S+proj=utm +zone=3 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 3S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32703"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66…Eÿ@ 5‰IepsgÀWGS 84 / UTM zone 4S+proj=utm +zone=4 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 4S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32704"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66…EÿA 5‰IepsgÁWGS 84 / UTM zone 5S+proj=utm +zone=5 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 5S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32705"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66…EÿB 5‰IepsgÂWGS 84 / UTM zone 6S+proj=utm +zone=6 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 6S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32706"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66…EÿC 5‰IepsgÃWGS 84 / UTM zone 7S+proj=utm +zone=7 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 7S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32707"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66…EÿD 5‰IepsgÄWGS 84 / UTM zone 8S+proj=utm +zone=8 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 8S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32708"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66…EÿE 5‰IepsgÅWGS 84 / UTM zone 9S+proj=utm +zone=9 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 9S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32709"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 33…HÿF 7‰KepsgÆWGS 84 / UTM zone 10S+proj=utm +zone=10 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 10S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32710"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 33…HÿG 7‰KepsgÇWGS 84 / UTM zone 11S+proj=utm +zone=11 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 11S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32711"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 33…HÿH 7‰KepsgÈWGS 84 / UTM zone 12S+proj=utm +zone=12 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 12S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32712"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 33…HÿI 7‰KepsgÉWGS 84 / UTM zone 13S+proj=utm +zone=13 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 13S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32713"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…GÿJ 7‰IepsgÊWGS 84 / UTM zone 14S+proj=utm +zone=14 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 14S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32714"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…GÿK 7‰IepsgËWGS 84 / UTM zone 15S+proj=utm +zone=15 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 15S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32715"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…GÿL 7‰IepsgÌWGS 84 / UTM zone 16S+proj=utm +zone=16 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 16S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32716"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…GÿM 7‰IepsgÍWGS 84 / UTM zone 17S+proj=utm +zone=17 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 17S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32717"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…GÿN 7‰IepsgÎWGS 84 / UTM zone 18S+proj=utm +zone=18 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 18S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32718"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…GÿO 7‰IepsgÏWGS 84 / UTM zone 19S+proj=utm +zone=19 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 19S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32719"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…GÿP 7‰IepsgÐWGS 84 / UTM zone 20S+proj=utm +zone=20 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 20S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32720"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…GÿQ 7‰IepsgÑWGS 84 / UTM zone 21S+proj=utm +zone=21 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 21S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32721"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…GÿR 7‰IepsgÒWGS 84 / UTM zone 22S+proj=utm +zone=22 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 22S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32722"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…GÿS 7‰IepsgÓWGS 84 / UTM zone 23S+proj=utm +zone=23 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 23S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32723"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…GÿT 7‰IepsgÔWGS 84 / UTM zone 24S+proj=utm +zone=24 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 24S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32724"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…GÿU 7‰IepsgÕWGS 84 / UTM zone 25S+proj=utm +zone=25 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 25S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32725"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…GÿV 7‰IepsgÖWGS 84 / UTM zone 26S+proj=utm +zone=26 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 26S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32726"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…GÿW 7‰Iepsg×WGS 84 / UTM zone 27S+proj=utm +zone=27 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 27S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32727"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] C™S`mz‡”¡®»ÈÕâïü #0=JWdq~‹˜¥²¿ÌÙæóF9,øëÞÑÄ·ªƒvi\OB5(ôçÚÍÀ³¦™ þepsgþ ùepsgù øepsgø ÷epsg÷ öepsgö õepsgõ ôepsgô óepsgó òepsgò ñepsgñ ðepsgð ïepsgï îepsgî íepsgí ìepsgì ëepsgë êepsgê éepsgé èepsgè çepsgç æepsgæ åepsgå äepsgä ãepsgã âepsgâ áepsgá àepsgà ßepsgß ÞepsgÞ ÝepsgÝ ÜepsgÜ ÛepsgÛ ÚepsgÚ ÙepsgÙ –epsg– ˜epsg˜ ™epsg™ šepsgš ›epsg› ½epsg½ ¾epsg¾ ¿epsg¿ ÀepsgÀ ÁepsgÁ Âepsg Ãepsgà ÄepsgÄ ÅepsgÅ ÆepsgÆ ÇepsgÇ ÈepsgÈ ÉepsgÉ ÊepsgÊ ËepsgË ÌepsgÌ ÍepsgÍ ÎepsgÎ ÏepsgÏ ÐepsgÐ ÑepsgÑ ÒepsgÒ ÓepsgÓ ÔepsgÔ ÕepsgÕ ÖepsgÖ ×epsg× ØepsgØ 44…GÿX 7‰IepsgØWGS 84 / UTM zone 28S+proj=utm +zone=28 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 28S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32728"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…FÿY 7‰GepsgÙWGS 84 / UTM zone 29S+proj=utm +zone=29 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 29S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32729"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…FÿZ 7‰GepsgÚWGS 84 / UTM zone 30S+proj=utm +zone=30 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 30S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32730"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66…Eÿ[ 7‰EepsgÛWGS 84 / UTM zone 31S+proj=utm +zone=31 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 31S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32731"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 66…Eÿ\ 7‰EepsgÜWGS 84 / UTM zone 32S+proj=utm +zone=32 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 32S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32732"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…Fÿ] 7‰GepsgÝWGS 84 / UTM zone 33S+proj=utm +zone=33 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 33S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",15],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32733"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…Fÿ^ 7‰GepsgÞWGS 84 / UTM zone 34S+proj=utm +zone=34 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 34S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",21],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32734"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…Fÿ_ 7‰GepsgßWGS 84 / UTM zone 35S+proj=utm +zone=35 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 35S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32735"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…Fÿ` 7‰GepsgàWGS 84 / UTM zone 36S+proj=utm +zone=36 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 36S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",33],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32736"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…Fÿa 7‰GepsgáWGS 84 / UTM zone 37S+proj=utm +zone=37 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 37S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",39],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32737"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…Fÿb 7‰GepsgâWGS 84 / UTM zone 38S+proj=utm +zone=38 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 38S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",45],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32738"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…Fÿc 7‰GepsgãWGS 84 / UTM zone 39S+proj=utm +zone=39 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 39S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",51],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32739"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…Fÿd 7‰GepsgäWGS 84 / UTM zone 40S+proj=utm +zone=40 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 40S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",57],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32740"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…Fÿe 7‰GepsgåWGS 84 / UTM zone 41S+proj=utm +zone=41 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 41S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",63],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32741"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…Fÿf 7‰GepsgæWGS 84 / UTM zone 42S+proj=utm +zone=42 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 42S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",69],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32742"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…Fÿg 7‰GepsgçWGS 84 / UTM zone 43S+proj=utm +zone=43 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 43S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32743"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…Fÿh 7‰GepsgèWGS 84 / UTM zone 44S+proj=utm +zone=44 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 44S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",81],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32744"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…Fÿi 7‰GepsgéWGS 84 / UTM zone 45S+proj=utm +zone=45 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 45S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32745"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…Fÿj 7‰GepsgêWGS 84 / UTM zone 46S+proj=utm +zone=46 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 46S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32746"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 55…Fÿk 7‰GepsgëWGS 84 / UTM zone 47S+proj=utm +zone=47 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 47S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",99],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32747"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…Gÿl 7‰IepsgìWGS 84 / UTM zone 48S+proj=utm +zone=48 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 48S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",105],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32748"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…Gÿm 7‰IepsgíWGS 84 / UTM zone 49S+proj=utm +zone=49 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 49S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",111],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32749"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…Gÿn 7‰IepsgîWGS 84 / UTM zone 50S+proj=utm +zone=50 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 50S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32750"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…Gÿo 7‰IepsgïWGS 84 / UTM zone 51S+proj=utm +zone=51 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 51S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",123],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32751"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…Gÿp 7‰IepsgðWGS 84 / UTM zone 52S+proj=utm +zone=52 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 52S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",129],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32752"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…Gÿq 7‰IepsgñWGS 84 / UTM zone 53S+proj=utm +zone=53 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 53S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",135],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32753"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…Gÿr 7‰IepsgòWGS 84 / UTM zone 54S+proj=utm +zone=54 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 54S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",141],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32754"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…Gÿs 7‰IepsgóWGS 84 / UTM zone 55S+proj=utm +zone=55 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 55S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32755"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]@@Ux†”›¢©°·¾ÅÌÓÚáèïöý  '.5<CJQX_fmt{‚‰—ž¥¬³ºÁÈÏÖÝäëòùqjc\UNG@T‚¸@SÿyRÿxQÿwPÿvOÿuNÿtLÿsÿÿÿ=ÿ>ÿ?ÿ@ÿAÿBÿCÿDÿEÿFÿG ÿH!ÿI"ÿJ#ÿK$ÿL%ÿM&ÿN'ÿO(ÿP)ÿQ*ÿR+ÿS,ÿT-ÿU.ÿV/ÿW1ÿX2ÿY3ÿZ4ÿ[5ÿ\6ÿ]7ÿ^8ÿ_9ÿ`:ÿa;ÿb<ÿc=ÿd>ÿe?ÿf@ÿgAÿhBÿiCÿjDÿkEÿlFÿmGÿnHÿoIÿpJÿqKÿr 44…Gÿt 7‰IepsgôWGS 84 / UTM zone 56S+proj=utm +zone=56 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 56S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",153],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32756"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…Gÿu 7‰IepsgõWGS 84 / UTM zone 57S+proj=utm +zone=57 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 57S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",159],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32757"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…Gÿv 7‰IepsgöWGS 84 / UTM zone 58S+proj=utm +zone=58 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 58S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",165],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32758"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…Gÿw 7‰Iepsg÷WGS 84 / UTM zone 59S+proj=utm +zone=59 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 59S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",171],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32759"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] 44…Gÿx 7‰IepsgøWGS 84 / UTM zone 60S+proj=utm +zone=60 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UTM zone 60S",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",177],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32760"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] …zÿy 1‚‰KepsgùWGS 84 / UPS South+proj=stere +lat_0=-90 +lat_ts=-90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / UPS South",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Polar_Stereographic"],PARAMETER["latitude_of_origin",-90],PARAMETER["central_meridian",0],PARAMETER["scale_factor",0.994],PARAMETER["false_easting",2000000],PARAMETER["false_northing",2000000],AUTHORITY["EPSG","32761"],AXIS["Northing",UNKNOWN],AXIS["Easting",UNKNOWN]] QQ>‚¸@K‚)gfoss.itItaly mainland zone 1 GB Roma40+proj=tmerc+lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68 +no_defs…gÿ~ /i‰?epsgþWGS 84 / TM 36 SE+proj=tmerc +lat_0=0 +lon_0=36 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defsPROJCS["WGS 84 / TM 36 SE",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",36],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],AUTHORITY["EPSG","32766"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] Â<~Â7‚¸C9‚-gfoss.itItaly Sicily GB Roma40+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +towgs84=-50.2,-50.4,84.8,-0.690,-2.012,0.459,-28.08 +no_defs9‚¸B=‚-gfoss.itItaly Sardinia GB Roma40+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +towgs84=-168.6,-34.0,38.6,-0.374,-0.679,-1.379,-9.48 +no_defs?‚¸AK‚+gfoss.itItaly mainland zone 2 GB Roma40+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y_0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68 +no_defs 6ܸ”pS64è4"4ñÀ0ffffff"4À7ffffff"4@™™™™™š"4@ 333333 ¿eûöñìçâÝØÓÎÉÄ¿Z , æzÄè¹m&@ãTka8E@”ص½m&@ޝ=³$8E@|”ص½m&@ãTka8E@zÄè¹m&@ޝ=³$8E@þ jL æ°˜l—‘m&@¿è—-þ7E@”ص½m&@ãTka8E@|°˜l—‘m&@¿è—-þ7E@µ¿³m&@¦^·8E@”ص½m&@ãTka8E@þ zlæù#)Žl&@^ð•ë7E@°˜l—‘m&@¿è—-þ7E@|ù#)Žl&@^ð•ë7E@Cp\ÆMm&@8½‹÷7E@$¹WAgm&@WŒdù7E@°˜l—‘m&@¿è—-þ7E@þZ,æl#ö l&@ÙÎ÷Sã7E@ù#)Žl&@^ð•ë7E@|l#ö l&@ÙÎ÷Sã7E@ù#)Žl&@^ð•ë7E@þZ,æƤ¿—Âk&@)ßÞ7E@l#ö l&@ÙÎ÷Sã7E@|Ƥ¿—Âk&@)ßÞ7E@l#ö l&@ÙÎ÷Sã7E@þZ,æÐ/ŸQk&@À«ŠÚ7E@Ƥ¿—Âk&@)ßÞ7E@|Ð/ŸQk&@À«ŠÚ7E@Ƥ¿—Âk&@)ßÞ7E@þjLæ©1!æ’j&@QJVÕ7E@Ð/ŸQk&@À«ŠÚ7E@|©1!æ’j&@QJVÕ7E@[AÓ+k&@£<órØ7E@Ð/ŸQk&@À«ŠÚ7E@þ ‚ æÕíì+j&@QJVÕ7E@©1!æ’j&@þðóß7E@|Õíì+j&@þðóß7E@‚äCj&@™µÐß7E@aobHNj&@C.‚Ú7E@t&mj&@?«Ì”Ö7E@©1!æ’j&@QJVÕ7E@þZ,挼¬‰j&@þðdochb^aU`L_C^:]1\)[!ZYX S¤«Oó—¯SZ , æzÄè¹m&@ãTka8E@”ص½m&@ޝ=³$8E@|”ص½m&@ãTka8E@zÄè¹m&@ޝ=³$8E@þ jL æ°˜l—‘m&@¿è—-þ7E@”ص½m&@ãTka8E@|°˜l—‘m&@¿è—-þ7E@µ¿³m&@¦^·8E@”ص½m&@ãTka8E@þ zlæù#)Žl&@^ð•ë7E@°˜l—‘m&@¿è—-þ7E@|ù#)Žl&@^ð•ë7E@Cp\ÆMm&@8½‹÷7E@$¹WAgm&@WŒdù7E@°˜l—‘m&@¿è—-þ7E@þZ,æl#ö l&@ÙÎ÷Sã7E@ù#)Žl&@^ð•ë7E@|l#ö l&@ÙÎ÷Sã7E@ù#)Žl&@^ð•ë7E@þZ,æƤ¿—Âk&@)ßÞ7E@l#ö l&@ÙÎ÷Sã7E@|Ƥ¿—Âk&@)ßÞ7E@l#ö l&@ÙÎ÷Sã7E@þZ,æÐ/ŸQk&@À«ŠÚ7E@Ƥ¿—Âk&@)ßÞ7E@|Ð/ŸQk&@À«ŠÚ7E@Ƥ¿—Âk&@)ßÞ7E@þjLæ©1!æ’j&@QJVÕ7E@Ð/ŸQk&@À«ŠÚ7E@|©1!æ’j&@QJVÕ7E@[AÓ+k&@£<órØ7E@Ð/ŸQk&@À«ŠÚ7E@þ ‚ æÕíì+j&@QJVÕ7E@©1!æ’j&@þðóß7E@|Õíì+j&@þðóß7E@‚äCj&@™µÐß7E@aobHNj&@C.‚Ú7E@t&mj&@?«Ì”Ö7E@©1!æ’j&@QJVÕ7E@þZ,挼¬‰j&@þðóß7E@Õíì+j&@á iTà7E@|Œ¼¬‰j&@á iTà7E@Õíì+j&@þðóß7E@þ ”œ@äGëJƒ æ/wõÆk&@H¾D8E@"3¼þÉl&@ü(4ZX8E@| "3¼þÉl&@FøÍ³H8E@4µô¼l&@"³ìI8E@óCË¥l&@N¢cO8E@—6ÁÜ“l&@¼+qÓU8E@*Ê«~l&@ü(4ZX8E@ !jl&@š]÷V8E@Ô;&œ'l&@´*$O8E@OpVék&@á¸òH8E@/wõÆk&@H¾D8E@þZ,æ"3¼þÉl&@FøÍ³H8E@\Ò¬ÇØl&@WI’I8E@|\Ò¬ÇØl&@WI’I8E@"3¼þÉl&@FøÍ³H8E@þ‚,æ\Ò¬ÇØl&@WI’I8E@C(¥VNm&@™ƒ £U8E@|C(¥VNm&@™ƒ £U8E@T²÷=Em&@XR“…T8E@iW!å'm&@Sýï-Q8E@Ì7ìm&@a>N8E@Ö@Nóél&@Ô¢“J8E@\Ò¬ÇØl&@WI’I8E@þZ,æC(¥VNm&@™ƒ £U8E@õc™~m&@Ê’ï]8E@|õc™~m&@Ê’ï]8E@C(¥VNm&@™ƒ £U8E@þZ ,æ­„“ÙÅm&@¤°æ[z8E@щNàçm&@îµ#‹8E@|щNàçm&@¤°æ[z8E@­„“ÙÅm&@îµ#‹8E@þ kz l æ»3É~Ìm&@ðó„Êd8E@É+Ưn&@¤°æ[z8E@|»3É~Ìm&@ðó„Êd8E@|ø ÷m&@‹Ì·™e8E@É+Ưn&@5`ôi8E@щNàçm&@¤°æ[z8E@þ z l æC(¥VNm&@ßÁO@8E@ãKM'~m&@™ƒ £U8E@|ãKM'~m&@ßÁO@8E@ž]¾õam&@:x&4I8E@ÿ°¥GSm&@Ñzø2Q8E@C(¥VNm&@™ƒ £U8E@þ j L æãKM'~m&@ޝ=³$8E@zÄè¹m&@ßÁO@8E@|zÄè¹m&@ޝ=³$8E@W_]¨m&@¥À˜28E@ãKM'~m&@ßÁO@8E@þ °”(ÌPÔx °Z,æÔºh#2k&@žòC8E@Íé Rk&@Ùma'8E@|Íé Rk&@žòC8E@Ôºh#2k&@Ùma'8E@þUjLæÉyZÙi&@á iTà7E@Œ¼¬‰j&@Ÿ!³ì7E@|ÉyZÙi&@Ÿ!³ì7E@Û¸Š÷i&@©xm€ã7E@Œ¼¬‰j&@á iTà7E@þZ,æÉyZÙi&@Ÿ!³ì7E@ QZøi&@ö¾Rñ7E@| QZøi&@ö¾Rñ7E@ÉyZÙi&@Ÿ!³ì7E@þzlæ QZøi&@ö¾Rñ7E@°õVn³j&@kÑN8E@|°õVn³j&@kÑN8E@Cù']Ÿj&@‘\ü8E@$¸‘²Ej&@ïRÙþ7E@ QZøi&@ö¾Rñ7E@þzlæ°õVn³j&@kÑN8E@°áŽÜ?k&@4á28E@|°áŽÜ?k&@4á28E@&²Å$k&@CÑòò*8E@à>¼øìj&@ðµ±#8E@°õVn³j&@kÑN8E@þZ,æ°áŽÜ?k&@4á28E@CéfÚYk&@,Pæz68E@|CéfÚYk&@,Pæz68E@°áŽÜ?k&@4á28E@þjLæCéfÚYk&@,Pæz68E@ƒÊ k&@G2;8E@|ƒÊ k&@G2;8E@M(„ik&@ïEj88E@CéfÚYk&@,Pæz68E@þjLæƒÊ k&@G2;8E@/wõÆk&@H¾D8E@|/wõÆk&@H¾D8E@%ñ¨ç“k&@™wæ/>8E@ƒÊ k&@G2;8E@þ #·[ÿ£7ÛZ!,#æA­³kŒk&@,ã8E@HÖ†/¸k&@+98E@|HÖ†/¸k&@,ã8E@A­³kŒk&@+98E@þ!"Z ,"æHÖ†/¸k&@,ã8E@N¢¹©Ük&@´UId8E@|N¢¹©Ük&@´UId8E@HÖ†/¸k&@,ã8E@þ !jL!æN¢¹©Ük&@´UId8E@¨¿¨Nl&@i¹} &8E@|¨¿¨Nl&@i¹} &8E@‘(´¬ûk&@¿F’ 8E@N¢¹©Ük&@´UId8E@þ Z, 樿¨Nl&@i¹} &8E@†r¢]…l&@À4V¬+8E@|†r¢]…l&@À4V¬+8E@¨¿¨Nl&@i¹} &8E@þZ,æ†r¢]…l&@À4V¬+8E@ú—¤2Ål&@RšÍã08E@|ú—¤2Ål&@RšÍã08E@†r¢]…l&@À4V¬+8E@þZ,æú—¤2Ål&@RšÍã08E@Ϻëm&@œ©kH78E@|Ϻëm&@œ©kH78E@ú—¤2Ål&@RšÍã08E@þjLæ\Ò¬ÇØl&@œ©kH78E@Ϻëm&@WI’I8E@|\Ò¬ÇØl&@WI’I8E@ódí¥ßl&@}1¥?E8E@Ϻëm&@œ©kH78E@þZƒ,æ9 3n&@ë¶ú 8E@·W0;Õo&@s°H]|8E@| O”„DÚn&@s°H]|8E@àr«Öxo&@Ý›:êC8E@·W0;Õo&@²C¡ $8E@Ž˜4¡¤o&@ë¶ú 8E@#w"Ò€o&@Š_ 8E@¢Ð²îo&@Zü\#88E@Œ]ên&@¾¾Ö¥F8E@_b‡Œ¢n&@êâÛ`M8E@6fÈghn&@-™cyW8E@9 3n&@ÚPÖm8E@þo ?„(+¿S÷›?Z),+æ“{p-Il&@À•ìØ8E@t§…ÜVl&@9‚é8E@|“{p-Il&@9‚é8E@t§…ÜVl&@À•ìØ8E@þ)*Z(,*æe9 ¥/l&@9‚é8E@“{p-Il&@ò(8E@|e9 ¥/l&@ò(8E@“{p-Il&@9‚é8E@þ()Z',)æ`^Û6çk&@v%¸G%8E@½ûˆøk&@Ï»± 08E@|½ûˆøk&@v%¸G%8E@`^Û6çk&@Ï»± 08E@þ'Hj&L(æ½ûˆøk&@1¶k8E@_mÖ* l&@v%¸G%8E@|_mÖ* l&@1¶k8E@‘(´¬ûk&@¿F’ 8E@½ûˆøk&@v%¸G%8E@þ&'j%L'æž'ž³l&@‹Îèý7E@M˜Õà"l&@1¶k8E@|M˜Õà"l&@‹Îèý7E@ž'ž³l&@e[¼8E@_mÖ* l&@1¶k8E@þ%&z$ƒl&æ©1!æ’j&@â´;ÿÑ7E@$¹WAgm&@{Z4S8E@| œ¥d9m&@{Z4S8E@8>¤)Lm&@êì¿)8E@$¹WAgm&@WŒdù7E@ÇY"am&@Äh )õ7E@ƒ÷U¹Pm&@7¹Lò7E@X:ž%l&@’Là7E@ÙrÓ ãk&@¾)Q›Ý7E@A­³kŒk&@µ åØ7E@ü¹²Uk&@2WÕ7E@2SÿÅØj&@/ ÌTÒ7E@L[·œ¦j&@â´;ÿÑ7E@©1!æ’j&@QJVÕ7E@þ$Z#,%æÔºh#2k&@$é?8E@î¸<1Fk&@ûÞðÌ8E@|Ôºh#2k&@ûÞðÌ8E@î¸<1Fk&@$é?8E@þ#`z"l$æ°áŽÜ?k&@+98E@A­³kŒk&@4á28E@|A­³kŒk&@+98E@"ÇÖ3„k&@0)>>!8E@ &£owk&@‡¤J&8E@°áŽÜ?k&@4á28E@þ" Ÿ¤8Ü`Ãg Ÿj1L3æ›ÌÓ\k&@O›sð7E@CpìÙk&@c:¾ù7E@|CpìÙk&@c:¾ù7E@ŽÃE˜k&@ˆ’ÚÕõ7E@›ÌÓ\k&@O›sð7E@þ12Z0,2æxŸ>]l&@À4V¬+8E@†r¢]…l&@Õ9«ª<8E@|xŸ>]l&@Õ9«ª<8E@†r¢]…l&@À4V¬+8E@þ0Z/,1æÂïðèm&@Ñ3Rs8E@щNàçm&@¤°æ[z8E@|щNàçm&@¤°æ[z8E@Âïðèm&@Ñ3Rs8E@þ Q.‚,0æϺëm&@Ї|8E@$ –\m&@œ©kH78E@|ø&m&@ü«"78E@ø&ô“l&@RšÍã08E@ú—¤2Ål&@— ŽB8E@|Þ*>ô“l&@— ŽB8E@ú—¤2Ål&@RšÍã08E@þ9Z8,:æ#·Ë#l&@ŽÑ•c 8E@“{p-Il&@9‚é8E@|#·Ë#l&@ŽÑ•c 8E@“{p-Il&@9‚é8E@þ,)Z7,9æõÕUZl&@^ð•ë7E@ù#)Žl&@²\€Ç8E@|ù#)Žl&@^ð•ë7E@õÕUZl&@²\€Ç8E@þ+j6L8æ°õVn³j&@LK8E@¨ç8k&@kÑN8E@|¨ç8k&@LK8E@Vó‘ïj&@ôà 8E@°õVn³j&@kÑN8E@þ6Z5,7æ n À;m&@-£GB8E@8>¤)Lm&@¿¿y8E@|8>¤)Lm&@-£GB8E@ n À;m&@¿¿y8E@þ5[j4L6æÒIH·k&@6Éø8E@UÕp6Âk&@,ã8E@|UÕp6Âk&@6Éø8E@ÒIH·k&@b픳8E@HÖ†/¸k&@,ã8E@þ4!Z3,5æƒÊ k&@sßÅV+8E@¿]¶k&@G2;8E@|¿]¶k&@sßÅV+8E@ƒÊ k&@G2;8E@þ3:2‚l4æ/ø4'/j&@C.‚Ú7E@›ÌÓ\k&@O›sð7E@|›ÌÓ\k&@O›sð7E@z‰V“Lk&@þ…yêì7E@_mÖ*k&@Û‡¼åê7E@ DOʤj&@™Ñ4Íà7E@aobHNj&@C.‚Ú7E@_¿ªQj&@àiœà7E@ÈÇ8?j&@´vÛ…æ7E@/ø4'/j&@!„6ïî7E@þ2E S”÷›/Ów ¯SZC,FæNŒm m&@ºõš8E@Ä¢T m&@w²å¦8E@|NŒm m&@ºõš8E@Ä¢T m&@w²å¦8E@þC^ZB,EæNŒm m&@ŸPôe8E@Pé»¶m&@ºõš8E@|Pé»¶m&@ŸPôe8E@NŒm m&@ºõš8E@þBCjALDæóªÎjm&@7!8E@zÄè¹m&@ޝ=³$8E@|óªÎjm&@7!8E@¥0ïq¦m&@5L@æA­³kŒk&@XS8E@éØk&@(#ç8E@|A­³kŒk&@XS8E@]ª½k&@Mè?µ 8E@éØk&@(#ç8E@þ>?Z=,?æÍé Rk&@žòC8E@A­³kŒk&@XS8E@|Íé Rk&@žòC8E@A­³kŒk&@XS8E@þ><‚,>挼¬‰j&@á iTà7E@Íé Rk&@žòC8E@|Œ¼¬‰j&@á iTà7E@—(1¾j&@€ù¿~ã7E@ÈÇ8?j&@´vÛ…æ7E@f ƒj&@Kïvî7E@‘4n k&@c:¾ù7E@Íé Rk&@žòC8E@þj;L=æϺëm&@j<Ç68E@ãKM'~m&@ßÁO@8E@|ãKM'~m&@ßÁO@8E@ƒ÷U¹Pm&@j<Ç68E@Ϻëm&@œ©kH78E@þ  C”‹/Ów ¯CjLLO樿¨Nl&@ŸPôe8E@lj 0‡l&@i¹} &8E@|¨¿¨Nl&@i¹} &8E@ᣴíjl&@J³Œ8E@lj 0‡l&@ŸPôe8E@þ]ZK,NæÞ*>ô“l&@— ŽB8E@"3¼þÉl&@FøÍ³H8E@|Þ*>ô“l&@— ŽB8E@"3¼þÉl&@FøÍ³H8E@þ9jJLMæxŸ>]l&@Õ9«ª<8E@Þ*>ô“l&@— ŽB8E@|xŸ>]l&@Õ9«ª<8E@$½ tl&@bŒþ†?8E@Þ*>ô“l&@— ŽB8E@þ09ZI,LæÇÒÁúk&@Îm½28E@xŸ>]l&@Õ9«ª<8E@|ÇÒÁúk&@Îm½28E@xŸ>]l&@Õ9«ª<8E@þI0ZH,Kæ`^Û6çk&@Ï»± 08E@ÇÒÁúk&@Îm½28E@|`^Û6çk&@Ï»± 08E@ÇÒÁúk&@Îm½28E@þHIZG,Jæ¿]¶k&@sßÅV+8E@`^Û6çk&@Ï»± 08E@|¿]¶k&@sßÅV+8E@`^Û6çk&@Ï»± 08E@þ3HzFlIæÔºh#2k&@ûÞðÌ8E@¿]¶k&@sßÅV+8E@|Ôºh#2k&@ûÞðÌ8E@"ÇÖ3„k&@0)>>!8E@™eO›k&@åŒrz(8E@¿]¶k&@sßÅV+8E@þ#3 E‚ Hæ/ø4'/j&@!„6ïî7E@Ôºh#2k&@ûÞðÌ8E@|/ø4'/j&@!„6ïî7E@^:œ¯Hj&@û?‡ùò7E@Le›e`j&@Ò Wö7E@Vó‘ïj&@ôà 8E@Ôºh#2k&@ûÞðÌ8E@þE#jDLGæ QZøi&@Û‡¼åê7E@/ø4'/j&@ö¾Rñ7E@| QZøi&@ö¾Rñ7E@¶üj&@Û‡¼åê7E@/ø4'/j&@!„6ïî7E@þE d¤8Ìp˜,ÀdZU,Xæ¨ç8k&@LK8E@Ôºh#2k&@Ùma'8E@|Ôºh#2k&@Ùma'8E@¨ç8k&@LK8E@þU6jTLWæÔºh#2k&@Ùma'8E@UÕp6Âk&@6Éø8E@|UÕp6Âk&@6Éø8E@æ{¡Û¦k&@a cI8E@Ôºh#2k&@Ùma'8E@þ4UjSLVæUÕp6Âk&@1¶k8E@_mÖ* l&@f3‡¤8E@|_mÖ* l&@1¶k8E@cæL$âk&@f3‡¤8E@UÕp6Âk&@6Éø8E@þ&4jRLUæÂågÙIk&@O›sð7E@›ÌÓ\k&@žòC8E@|›ÌÓ\k&@O›sð7E@ÂågÙIk&@Õçj+ö7E@Íé Rk&@žòC8E@þ2jQLTæÑn>¿9m&@Ñ3Rs8E@Âïðèm&@þ8«Oƒ8E@|Âïðèm&@Ñ3Rs8E@ÒgQéqm&@ºW•}8E@Ñn>¿9m&@þ8«Oƒ8E@þQlZP,SæÂïðèm&@ÁÑDŽc8E@U¯²¶m&@Ñ3Rs8E@|U¯²¶m&@ÁÑDŽc8E@Âïðèm&@Ñ3Rs8E@þPQjOLRæ{,"/m&@Ê’ï]8E@õc™~m&@×ù·Ë~8E@|õc™~m&@Ê’ï]8E@ ³†AOm&@¹è¿bh8E@{,"/m&@×ù·Ë~8E@þmjNLQæ ‹Q×Úk&@´UId8E@½ûˆøk&@v%¸G%8E@|N¢¹©Ük&@´UId8E@ ‹Q×Úk&@5(ƒþl&@ý8P–8E@Ä¢T m&@w²å¦8E@þ]^Z\,_æt§…ÜVl&@À•ìØ8E@lj 0‡l&@ŸPôe8E@|t§…ÜVl&@À•ìØ8E@lj 0‡l&@ŸPôe8E@þ*]Z[,^æNŒm m&@ºõš8E@ n À;m&@¿¿y8E@| n À;m&@¿¿y8E@NŒm m&@ºõš8E@þ[CZZ,]æ n À;m&@¿¿y8E@ø& V‚ Yæm”PUüj&@À«ŠÚ7E@Ð/ŸQk&@LK8E@|¨ç8k&@LK8E@m”PUüj&@ú²Yš8E@‘4n k&@c:¾ù7E@_mÖ*k&@Û‡¼åê7E@Ð/ŸQk&@À«ŠÚ7E@þ6 (¤8Ü`¨<à„(Zh,k溞èºðk&@8ãê¶ú7E@HÌ¢fþk&@JbI¹û7E@|HÌ¢fþk&@JbI¹û7E@ºžèºðk&@8ãê¶ú7E@þa:Zg,jæHÌ¢fþk&@JbI¹û7E@M˜Õà"l&@‹Îèý7E@|M˜Õà"l&@‹Îèý7E@HÌ¢fþk&@JbI¹û7E@þ%aZf,iæM˜Õà"l&@‹Îèý7E@õÕUZl&@²\€Ç8E@|õÕUZl&@²\€Ç8E@M˜Õà"l&@‹Îèý7E@þ+%jeLhæõÕUZl&@²\€Ç8E@Pé»¶m&@ŸPôe8E@|Pé»¶m&@ŸPôe8E@Uɶªl&@Í'€8E@õÕUZl&@²\€Ç8E@þB+Zd,gæPé»¶m&@ŸPôe8E@œ¥d9m&@{Z4S8E@|œ¥d9m&@{Z4S8E@Pé»¶m&@ŸPôe8E@þ$BZc,f朥d9m&@{Z4S8E@8>¤)Lm&@-£GB8E@|8>¤)Lm&@-£GB8E@œ¥d9m&@{Z4S8E@þ5$zbleæ8>¤)Lm&@-£GB8E@”ص½m&@ãTka8E@|”ص½m&@ãTka8E@ãê¶ú m&@ÝóW#8E@|Äž,km&@©v<8E@8>¤)Lm&@-£GB8E@þ 5Za,dæéØk&@JbI¹û7E@HÌ¢fþk&@(#ç8E@|HÌ¢fþk&@JbI¹û7E@éØk&@(#ç8E@þa?j`Lcæî¸<1Fk&@$é?8E@ñ'Ïack&@ÝóW#8E@|î¸<1Fk&@$é?8E@ñ'Ïack&@Øà3È8E@›ÌÓ\k&@ÝóW#8E@þ`rZ_,bæ_mÖ*k&@_gž· 8E@î¸<1Fk&@$é?8E@|_mÖ*k&@_gž· 8E@î¸<1Fk&@$é?8E@þ_` ¤»_’o7lwVia Guglielmo Marconiæ»3É~Ìm&@ðó„Êd8E@9 3n&@ÚPÖm8E@|9 3n&@ÚPÖm8E@ª¬·n&@5Fë¨j8E@É+Ưn&@5`ôi8E@»3É~Ìm&@ðó„Êd8E@þo n7LvVia Guglielmo Marconiæ9 3n&@ÚPÖm8E@O”„DÚn&@s°H]|8E@|O”„DÚn&@s°H]|8E@Ô‚r6xn&@Ë8s8E@9 3n&@ÚPÖm8E@þoJmƒ tæCéfÚYk&@,Pæz68E@{,"/m&@×ù·Ë~8E@| {,"/m&@×ù·Ë~8E@ ?Àÿûl&@}3{8E@ I¬ÖÓl&@9ì¾cx8E@ðFMªl&@Àü_¿q8E@7âÉnfl&@®ˆõ¡f8E@§O¼l&@œ‹„[8E@ʔųºk&@u.{ÈJ8E@™²Æk&@ürf»B8E@CéfÚYk&@,Pæz68E@þmZl,sæ{,"/m&@×ù·Ë~8E@Ñn>¿9m&@þ8«Oƒ8E@|Ñn>¿9m&@þ8«Oƒ8E@{,"/m&@×ù·Ë~8E@þlmZk,ræÑn>¿9m&@þ8«Oƒ8E@­„“ÙÅm&@îµ#‹8E@|­„“ÙÅm&@îµ#‹8E@Ñn>¿9m&@þ8«Oƒ8E@þkl j‚ mæA­³kŒk&@c:¾ù7E@CpìÙk&@+98E@|A­³kŒk&@+98E@æ{¡Û¦k&@a cI8E@]ª½k&@Mè?µ 8E@ž1‚|¿k&@Í'€8E@CpìÙk&@c:¾ù7E@þ"1Zi,læCpìÙk&@c:¾ù7E@ºžèºðk&@8ãê¶ú7E@|ºžèºðk&@8ãê¶ú7E@CpìÙk&@c:¾ù7E@þ:1 oq7,yVia Guglielmo Marconiæõc™~m&@Ê’ï]8E@U¯²¶m&@ÁÑDŽc8E@|U¯²¶m&@ÁÑDŽc8E@õc™~m&@Ê’ï]8E@þPop7,xVia Guglielmo MarconiæU¯²¶m&@ÁÑDŽc8E@»3É~Ìm&@ðó„Êd8E@|»3É~Ìm&@ðó„Êd8E@U¯²¶m&@ÁÑDŽc8E@þ P –wX‚|)…Atriggerggu_roads_geomroadsCREATE TRIGGER "ggu_roads_geom" BEFORE UPDATE ON "roads" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'roads.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT type FROM geometry_columns WHERE f_table_name = 'roads' AND f_geometry_column = 'geom' AND GeometryConstraints(NEW."geom", type, srid, 'XY') = 1) IS NULL; END^)ƒtriggergii_roads_geomroadsCREATE TRIGGER "gii_roads_geom" AFTER INSERT ON "roads" FOR EACH ROW BEGIN DELETE FROM "idx_roads_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_roads_geom', NEW.ROWID, NEW."geom");END^)ƒtriggergiu_roads_geomroadsCREATE TRIGGER "giu_roads_geom" AFTER UPDATE ON "roads" FOR EACH ROW BEGIN DELETE FROM "idx_roads_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_roads_geom', NEW.ROWID, NEW."geom");END%)‚triggergid_roads_geomroadsCREATE TRIGGER "gid_roads_geom" AFTER DELETE ON "roads" FOR EACH ROW BEGIN DELETE FROM "idx_roads_geom" WHERE pkid = OLD.ROWID; END ¡¡›"±.–y))-tableidx_roads_geomidx_roads_geomCREATE VIRTUAL TABLE "idx_roads_geom" USING rtree( pkid, xmin, xmax, ymin, ymax)}33tableidx_roads_geom_nodeidx_roads_geom_nodehCREATE TABLE "idx_roads_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)55)tableidx_roads_geom_rowididx_roads_geom_rowidiCREATE TABLE "idx_roads_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER) 775tableidx_roads_geom_parentidx_roads_geom_parentjCREATE TABLE "idx_roads_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER){))/tableroads_net_dataroads_net_dataqCREATE TABLE "roads_net_data" (Id INTEGER PRIMARY KEY, NetworkData BLOB NOT NULL)f tableroads_netroads_netCREATE VIRTUAL TABLE "roads_net" USING VirtualNetwork("roads_net_data")h!##tablealpha_roadsalpha_roadsyCREATE TABLE alpha_roads( id, geom NUM, node_from, node_to )çpûöñìç‡D 'A3P,A3PyB)¿B)¿A3PyA3T—B)¾«B)¿A3T—A3ZB)¾«B)¾ÑA3ZA3^B)¾ÑB)¾÷A3^A3`PB)¾÷B)¿A3`PA3dqB)¿B)¿]A3dqA3lB)¿]B)¿ñA3lA3mîB)¿ñB)À³ A3mÏA3mîB)À³B)Á& A3kñA3mÏB)Á&B) A3jsA3kñB)ÂB)­ A3ndA3puB)Ã&B)ÃÓ A3n/A3o?B)ÃÓB)ÄYA3jsA3kõB)­B)ÂèA3fÆA3jsB)ÂMB)­A3fPA3fÆB)ÂFB)ÂMA3^8A3fPB)Â%B)ÂÃA3[ýA3^8B)ÁÜB)Â%A3ZÏA3[ýB)Á´B)ÁÜA3YÿA3ZÏB)Á‘B)Á´A3U›A3YÿB)ÀºB)Á‘A3OÃA3U›B)¿‹B)ÀºA3NËA3OÃB)¿fB)¿‹A3NËA3P,B)¿B)¿fA3Y‘A3ZB)ÀB)À1A3q˜A3~ªB)ÀíB)ÃãA3fÆA3hyB)ÁºB)ÂMA3f*A3hyB)Á‡B)ÁºA3d+A3f*B)Á]B)Á‡A3buA3d+B)Á5B)Á]A3^åA3buB)ÀûB)Á5 A3]ÁA3^åB)À÷B)Àû!A3\cA3]ÁB)À÷B)Àú"A3YÿA3\cB)ÀúB)Á‘#A3Y‘A3Z2B)À‚B)À®$A3T—A3k:B)¾B)Àƒ%A3`.A3aB)¿ïB)À&A3_ÀA3`YB)ÀB)Á*'A3_:A3_ÀB)Áonmlk qZúôîèâÜÖÐÊľ¸²¬¦ š”Žˆ‚|vpjd^XRLF@:4.(" þøòìæàÚÔÎȼ¶°ª¤ž˜’Œ†€ztnhb\VPJD>82,& üöðêäÞØÒÌÆÀº´®¨¢œ–Š„~xrlf`Zqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!       âôúîèâ 99‡D A3NËA3k:B)¾B)ÀºA3dqA3~ªB)¿]B)ÄYA3U›A3_:B)¿ÈB)Â%A3ZÏA3jåB)ÀsB)ÃöA3_óA3h–B)¿B)ÀÁ 99‡D A3dqA3lB)¿]B)¿ñA3f*A3hyB)Á‡B)ÁºA3fPA3fÆB)ÂFB)ÂMA3fÆA3hyB)ÁºB)ÂMA3fÆA3jsB)ÂMB)­ A3jsA3kñB)ÂB)­A3jsA3kõB)­B)Âè A3kñA3mÏB)Á&B)ÂA3lA3mîB)¿ñB)À³ A3mÏA3mîB)À³B)Á& A3n/A3o?B)ÃÓB)ÄY A3ndA3puB)Ã&B)ÃÓA3q˜A3~ªB)ÀíB)Ãã-A3kA3lB)¿ñB)ÀÉ/A3l‡A3o?B)ÛB)ÃÓ;A3hyA3kñB)Á¶B)ÂAA3l A3mÏB)Á B)Á&OA3hA3kõB)ÂèB)ÃöPA3l‡A3m¶B)ÃB)ÛQA3iÎA3l‡B)ÛB)ÄXA3kA3lCB)ÀÉB)Á YA3jSA3kB)À¼B)ÀÉbA3jaA3mîB)ÀŠB)À³kA3iÎA3n/B)ÄB)ÄYlA3hA3iÎB)ÃöB)ÄnA3q˜A3vÒB)ÃiB)ÃãoA3ndA3q˜B)Ã&B)ÃipA3m¶A3ndB)ÃB)Ã&qA3kõA3m¶B)ÂèB)à 99‡D A3NËA3OÃB)¿fB)¿‹A3NËA3P,B)¿B)¿fDA3OÃA3QyB)¿WB)¿‹A3OÃA3U›B)¿‹B)ÀºA3P,A3PyB)¿B)¿A3\cA3^ÁB)À3B)ÀwA3^A3`PB)¾÷B)¿aA3^ÁA3_óB)¿ÞB)ÀwhA3_†A3_óB)¿ÖB)¿Þ:A3_†A3`PB)¿B)¿ÖiA3^ÏA3_†B)¿ÈB)¿Ö 99‡D A3U›A3YÿB)ÀºB)Á‘#A3Y‘A3Z2B)À‚B)À®FA3Y‘A3]³B)À®B)Á[A3YÿA3ZÏB)Á‘B)Á´"A3YÿA3\cB)ÀúB)Á‘`A3Z2A3[B)À‚B)À±A3ZÏA3[ýB)Á´B)ÁÜ3A3[ýA3]³B)Á[B)ÁÜA3[ýA3^8B)ÁÜB)Â%!A3\cA3]ÁB)À÷B)ÀúGA3]³A3_:B)Á[B)Á…4A3]ºA3^B)À°B)À÷ A3]ÁA3^åB)À÷B)ÀûjA3\cA3^ÏB)¿ÈB)Àú 99‡D SA3^A3`YB)ÀB)ÀµMA3^8A3_ÖB)Á–B)Â%A3^8A3fPB)Â%B)ÂÃ?A3^ÁA3`YB)ÀwB)ÀNA3^×A3_ÀB)ÀûB)Á*A3^åA3buB)ÀûB)Á5'A3_:A3_ÀB)Á*B)Á…HA3_:A3_ÖB)Á…B)Á–&A3_ÀA3`YB)ÀB)Á*IA3_ÖA3bêB)Á–B)Áå@A3`YA3a}B)ÀB)ÀÁA3buA3d+B)Á5B)Á]LA3buA3d:B)ÀsB)Á50A3bêA3d+B)Á]B)ÁåJA3bêA3d B)ÁåB)ÂA3d+A3f*B)Á]B)Á‡]A3d:A3hcB)ÀsB)À½9A3d A3f*B)Á‡B)ÂKA3d A3fPB)ÂB)ÂFCA3h[A3hcB)À¡B)À½BA3h[A3h–B)ÀsB)À¡[A3h[A3iÞB)À¡B)À´^A3hcA3h×B)À½B)Áº.A3hyA3jåB)À¼B)ÁºcA3iËA3jaB)ÀƒB)ÀŠZA3iÞA3jSB)À´B)À¼5A3iÞA3jaB)ÀŠB)À´dA3h–A3iËB)ÀsB)ÀƒmA3ZÏA3hB)Á´B)Ãö 99‡D gA3_óA3aB)¿ÞB)¿ï%A3`.A3aB)¿ïB)ÀA3`PA3dqB)¿B)¿],A3`YA3aB)ÀkB)ÀfA3aA3bÔB)¿ïB)À8A3aA3bIB)ÀkB)À+A3aA3bÔB)ÀB)Àk(A3a}A3bIB)ÀB)ÀÁ)A3bIA3b·B)ÀGB)À*A3b·A3bÔB)ÀB)ÀG\A3b·A3d:B)ÀGB)Às7A3bÔA3dqB)¿]B)ÀeA3bÔA3h–B)ÀB)Às ¡·¡¹sójíLÞŒ¼¬‰j&@á iTà7E@TãM¡ø‚€?‡T kŽêž@?‡T<ËX$<ðOf?‡‡ÞÕíì+j&@þðóß7E@TãM¡ø‚€?‡T>»+þzQ?‡‡Þ©1!æ’j&@QJVÕ7E@T>»+þzQ?‡Tð3N ùW?‡T$"Ó²rGiÀLµ roads¡ node_from¢node_to£geom¤name¥ð?‡s:Õqäz?‡‡ÞÐ/ŸQk&@À«ŠÚ7E@T[70_G¥L?‡Tð3N ùW?‡TV36‚Jd˜'Y?‡‡ÞƤ¿—Âk&@)ßÞ7E@T@”=ÅêcB?‡T[70_G¥L?‡TW6~û§±¼U?‡‡Þl#ö l&@ÙÎ÷Sã7E@T@”=ÅêcB?‡T:53/„æ8H?‡T×vÜ QQ?‡‡Þù#)Žl&@^ð•ë7E@T7)dAÅ&®I?‡T×vÜ QQ?‡TòÝÚáç`?‡‡Þ°˜l—‘m&@¿è—-þ7E@Td—/úsK?‡T-+åÍ®þ4ÅM?‡TòÝÚáç`?‡‡Þ ”ص½m&@ãTka8E@T Áö÷ijrO£^±Y&?‡ToJd}(CñJ?‡T žg‘¯ˆR?‡‡Þ щNàçm&@¤°æ[z8E@T G#ûO¯?ÐB?‡T/?>ÚF?‡T žg‘¯ˆR?‡‡Þ õc™~m&@Ê’ï]8E@TtðêѰ“M Ö Ýî>?‡TOIü,çtæU?‡‡ÞC(¥VNm&@™ƒ £U8E@T ðêѰ“MV¸PA?‡T<ËX$<ðOf?‡‡ÞO”„DÚn&@s°H]|8E@TnJrBlBV?‡TJ °xÅŒì~?‡‡ÞϺëm&@œ©kH78E@Tõ±@‹C?‡TôÛ"D2?‡TN%°Ñ¼Go7?‡T'0ô tM?‡‡Þ!HÖ†/¸k&@,ã8E@T ï»|>D2?‡T41Ì5¯”Iì2?‡T! {-Ѽ“ä5?‡‡Þ "A­³kŒk&@+98E@T!{-Ѽ“ä5?‡T"Á2å“K?‡Tj.âÕÄA=œU?‡‡Þ!#Ôºh#2k&@ûÞðÌ8E@T#E>ëáUë-?‡TF0¾GçÄÖT?‡TE;ñŒv{‚Jáb?‡‡Þ"$œ¥d9m&@{Z4S8E@Tc2ã/µ²;##?‡Td9ØŸ:H¸3?‡T$Ó²:Õqäz?‡‡Þ#%M˜Õà"l&@‹Îèý7E@TgF͇Ÿ¦SÁ2?‡Tf)t `ÚËÞ?‡T-åÍ®þ4ÅM?‡‡Þ,.ø&]l&@Õ9«ª<8E@TJ4ïãÌ Ò=?‡T0Y׬›»C?‡TI=9‘ŒJ?‡‡Þ.1CpìÙk&@c:¾ù7E@Ti5fû:âÇ'?‡T1/$xÁýóYP?‡Tj âÕÄA=œU?‡‡Þ/2›ÌÓ\k&@O›sð7E@TRf>V¸PA?‡T1.$xÁýóYP?‡T2;”9ýo¾g?‡‡Þ03¿]¶k&@sßÅV+8E@TG<.†]ž:?‡T3kbæUz,E?‡TF!¾GçÄÖT?‡‡Þ14UÕp6Âk&@6Éø8E@T4Ì5¯”Iì2?‡TS$JÚpW´B?‡TT@M©K»S?‡‡Þ258>¤)Lm&@-£GB8E@Tc"ã/µ²;##?‡T5AËNù“â‹*?‡Tb"áˆÀòL?‡‡Þ36¨ç8k&@LK8E@TU@‚R-ßó0?‡T6—ÒÊýO?‡TV6‚Jd˜'Y?‡‡Þ49Þ*>ô“l&@— ŽB8E@TK]Æ¥¢¯=?‡TJ-ïãÌ Ò=?‡T9ñø°%ˆE?‡‡Þ5:ºžèºðk&@8ãê¶ú7E@ThFëŠP™C‚?‡Ti.fû:âÇ'?‡T:x3/„æ8H?‡‡Þ6>A­³kŒk&@XS8E@T=TßšU™??‡T>7!˜•gÇD?‡TW~û§±¼U?‡‡Þ7?éØk&@(#ç8E@T?$»!ù/m7;?‡T>6!˜•gÇD?‡TaF~^ˆÏ±oE?‡‡Þ8AóªÎjm&@7!8E@TA ’ºD¡,=?‡TX+þz«Ý>?‡‡Þ9BPé»¶m&@ŸPôe8E@TB:àq˜Ãz(?‡Td"ØŸ:H¸3?‡Te)¾²Rƒ8àW?‡‡Þ:CNŒm m&@ºõš8E@TCC2jxÆ#Q?‡TB9àq˜Ãz(?‡T[AªÒ|ÁGž8?‡‡Þ;E/ø4'/j&@!„6ïî7E@TDlÊq‰sA?‡TE!ñŒ{‚Jáb?‡T2/”9ýo¾g?‡‡Þ<H`^Û6çk&@Ï»± 08E@TH=¹IGÕK%?‡T'%•1jJ38?‡TG0.†]ž:?‡‡Þ=IÇÒÁúk&@Îm½28E@TH<¹IGÕK%?‡TM‡«F?‡TI-9‘ŒJ?‡‡Þ>PU¯²¶m&@ÁÑDŽc8E@Tp rO£^±Y&?‡Tq  Ö Ýî>?‡TP?¥z[!é`B?‡‡Þ?QÂïðèm&@Ñ3Rs8E@TP>¥z[!é`B?‡T/ >ÚF?‡TQHœ€íòNL?‡‡Þ@UÔºh#2k&@Ùma'8E@TU3‚R-ßó0?‡TV#ëÛEÕ3?‡TT1M©K»S?‡‡ÞA[ n À;m&@¿¿y8E@TZ,TøUïE?‡T52ËNù“â‹*?‡T[:ªÒ|ÁGž8?‡‡ÞB]lj 0‡l&@ŸPôe8E@T\(ÈÀÊj—:?‡TLÖö›1­\L?‡T]C‡§— xJQ?‡‡ÞC^Ä¢T m&@w²å¦8E@TC:2jxÆ#Q?‡T^*è§™LšP?‡T]B‡§— xJQ?‡‡ÞD__mÖ*k&@_gž· 8E@T_EÅS%“ÔÉ.?‡‡ÞE`î¸<1Fk&@$é?8E@T#!>ëáUë-?‡T_DÅS%“ÔÉ.?‡T`Kð©§-è,6?‡‡ÞFaHÌ¢fþk&@JbI¹û7E@Th5ëŠP™C‚?‡Tg#͇Ÿ¦SÁ2?‡Ta7~^ˆÏ±oE?‡‡ÞGk­„“ÙÅm&@îµ#‹8E@T #ûO¯?ÐB?‡TkHæü0çñQ?‡‡ÞHlÑn>¿9m&@þ8«Oƒ8E@TlIFÍX¯­¨6?‡TQ?œ€íòNL?‡TkGæü0çñQ?‡‡ÞIm{,"/m&@×ù·Ë~8E@TlHFÍX¯­¨6?‡TO ü,çtæU?‡TmÆ ŠlJ…p?‡‡ÞJo9 3n&@ÚPÖm8E@To d}(CñJ?‡TnrBlBV?‡T °xÅŒì~?‡‡ÞKr›ÌÓ\k&@ÝóW#8E@T`Eð©§-è,6?‡‡ºzûöñìçâÝØÓÎÉÄ¿ºwLARC_9æ°˜l—‘m&@¿è—-þ7E@”ص½m&@ãTka8E@|°˜l—‘m&@¿è—-þ7E@µ¿³m&@¦^·8E@”ص½m&@ãTka8E@þNODE_8NODE_9lARC_8æù#)Žl&@^ð•ë7E@°˜l—‘m&@¿è—-þ7E@|ù#)Žl&@^ð•ë7E@Cp\ÆMm&@8½‹÷7E@$¹WAgm&@WŒdù7E@°˜l—‘m&@¿è—-þ7E@þNODE_7NODE_8g,ARC_7æl#ö l&@ÙÎ÷Sã7E@ù#)Žl&@^ð•ë7E@|l#ö l&@ÙÎ÷Sã7E@ù#)Žl&@^ð•ë7E@þNODE_6NODE_7g,ARC_6æƤ¿—Âk&@)ßÞ7E@l#ö l&@ÙÎ÷Sã7E@|Ƥ¿—Âk&@)ßÞ7E@l#ö l&@ÙÎ÷Sã7E@þNODE_5NODE_6g,ARC_5æÐ/ŸQk&@À«ŠÚ7E@Ƥ¿—Âk&@)ßÞ7E@|Ð/ŸQk&@À«ŠÚ7E@Ƥ¿—Âk&@)ßÞ7E@þNODE_4NODE_5wLARC_4æ©1!æ’j&@QJVÕ7E@Ð/ŸQk&@À«ŠÚ7E@|©1!æ’j&@QJVÕ7E@[AÓ+k&@£<órØ7E@Ð/ŸQk&@À«ŠÚ7E@þNODE_3NODE_4‚ ARC_3æÕíì+j&@QJVÕ7E@©1!æ’j&@þðóß7E@|Õíì+j&@þðóß7E@‚äCj&@™µÐß7E@aobHNj&@C.‚Ú7E@t&mj&@?«Ì”Ö7E@©1!æ’j&@QJVÕ7E@þNODE_2NODE_3g,ARC_2挼¬‰j&@þðóß7E@|k}c~[S€KC‚;ƒ3„,…$†‡ˆ{ Ë‘²4¥8Ë~€‚ƒ„…†‡ˆywLARC_9æ°˜l—‘m&@¿è—-þ7E@”ص½m&@ãTka8E@|°˜l—‘m&@¿è—-þ7E@µ¿³m&@¦^·8E@”ص½m&@ãTka8E@þNODE_8NODE_9lARCkq,ARC_121æõc™~m&@Ê’ï]8E@U¯²¶m&@ÁÑDŽc8E@|U¯²¶m&@ÁÑDŽc8E@õc™~m&@Ê’ï]8E@þNODE_80NODE_14kp,ARC_120æU¯²¶m&@ÁÑDŽc8E@»3É~Ìm&@ðó„Êd8E@|»3É~Ìm&@ðó„Êd8E@U¯²¶m&@ÁÑDŽc8E@þNODE_12NODE_80 olARC_119æ»3É~Ìm&@ðó„Êd8E@9 3n&@ÚPÖm8E@|9 3n&@ÚPÖm8E@ª¬·n&@5Fë¨j8E@É+Ưn&@5`ôi8E@»3É~Ìm&@ðó„Êd8E@þNODE_111NODE_12|nLARC_118æ9 3n&@ÚPÖm8E@O”„DÚn&@s°H]|8E@|O”„DÚn&@s°H]|8E@Ô‚r6xn&@Ë8s8E@9 3n&@ÚPÖm8E@þNODE_26NODE_111\mƒ ARC_116æCéfÚYk&@,Pæz68E@{,"/m&@×ù·Ë~8E@| {,"/m&@×ù·Ë~8E@ ?Àÿûl&@}3{8E@ I¬ÖÓl&@9ì¾cx8E@ðFMªl&@Àü_¿q8E@7âÉnfl&@®ˆõ¡f8E@§O¼l&@œ‹„[8E@ʔųºk&@u.{ÈJ8E@™²Æk&@ürf»B8E@CéfÚYk&@,Pæz68E@þNODE_109NODE_20ml,ARC_115æ{,"/m&@×ù·Ë~8E@Ñn>¿9m&@þ8«Oƒ8E@|Ñn>¿9m&@þ8«Oƒ8E@{,"/m&@×ù·Ë~8E@þNODE_108NODE_109 F—ý„²I¿FwLARC_9æ°˜l—‘m&@¿è—-þ7E@”ص½m&@ãTka8E@|°˜l—‘m&@¿è—-þ7E@µ¿³m&@¦^·8E@”ص½m&@ãTka8E@þNODE_8NODE_9lARC_8æù#)Žl&@^ð•ë7E@°˜l—‘m&@¿è—-þ7E@|ù#)Žl&@^ð•ë7E@Cp\ÆMm&@8½‹÷7E@$¹WAgm&@WŒdù7E@°˜l—‘m&@¿è—-þ7E@þNODE_7NODE_8g,ARC_7æl#ö l&@ÙÎ÷Sã7E@ù#)Žl&@^ð•ë7E@|l#ö l&@ÙÎ÷Sã7E@ù#)Žl&@^ð•ë7E@þNODE_6NODE_7g,ARC_6æƤ¿—Âk&@)ßÞ7E@l#ö l&@ÙÎ÷Sã7E@|Ƥ¿—Âk&@)ßÞ7E@l#ö l&@ÙÎ÷Sã7E@þNODE_5NODE_6g,ARC_5æÐ/ŸQk&@À«ŠÚ7E@Ƥ¿—Âk&@)ßÞ7E@|Ð/ŸQk&@À«ŠÚ7E@Ƥ¿—Âk&@)ßÞ7E@þNODE_4NODE_5wLARC_4æ©1!æ’j&@QJVÕ7E@Ð/ŸQk&@À«ŠÚ7E@|©1!æ’j&@QJVÕ7E@[AÓ+k&@£<órØ7E@Ð/ŸQk&@À«ŠÚ7E@þNODE_3NODE_4‚ ARC_3æÕíì+j&@QJVÕ7E@©1!æ’j&@þðóß7E@|Õíì+j&@þðóß7E@‚äCj&@™µÐß7E@aobHNj&@C.‚Ú7E@t&mj&@?«Ì”Ö7E@©1!æ’j&@QJVÕ7E@þNODE_2NODE_3g,ARC_2挼¬‰j&@þðóß7E@Õíì+j&@á iTà7E@|Œ¼¬‰j&@á iTà7E@Õíì+j&@þðóß7E@þNODE_1NODE_2 U“©<ÏbÄUmk,ARC_114æÑn>¿9m&@þ8«Oƒ8E@­„“ÙÅm&@îµ#‹8E@|­„“ÙÅm&@îµ#‹8E@Ñn>¿9m&@þ8«Oƒ8E@þNODE_107NODE_108j‚ ARC_109æA­³kŒk&@c:¾ù7E@CpìÙk&@+98E@|A­³kŒk&@+98E@æ{¡Û¦k&@a cI8E@]ª½k&@Mè?µ 8E@ž1‚|¿k&@Í'€8E@CpìÙk&@c:¾ù7E@þNODE_34NODE_49ki,ARC_108æCpìÙk&@c:¾ù7E@ºžèºðk&@8ãê¶ú7E@|ºžèºðk&@8ãê¶ú7E@CpìÙk&@c:¾ù7E@þNODE_58NODE_49kh,ARC_107溞èºðk&@8ãê¶ú7E@HÌ¢fþk&@JbI¹û7E@|HÌ¢fþk&@JbI¹û7E@ºžèºðk&@8ãê¶ú7E@þNODE_97NODE_58kg,ARC_106æHÌ¢fþk&@JbI¹û7E@M˜Õà"l&@‹Îèý7E@|M˜Õà"l&@‹Îèý7E@HÌ¢fþk&@JbI¹û7E@þNODE_37NODE_97kf,ARC_105æM˜Õà"l&@‹Îèý7E@õÕUZl&@²\€Ç8E@|õÕUZl&@²\€Ç8E@M˜Õà"l&@‹Îèý7E@þNODE_43NODE_37{eLARC_104æõÕUZl&@²\€Ç8E@Pé»¶m&@ŸPôe8E@|Pé»¶m&@ŸPôe8E@Uɶªl&@Í'€8E@õÕUZl&@²\€Ç8E@þNODE_66NODE_43kd,ARC_103æPé»¶m&@ŸPôe8E@œ¥d9m&@{Z4S8E@|œ¥d9m&@{Z4S8E@Pé»¶m&@ŸPôe8E@þNODE_36NODE_66 ;”‹¢5¨;kc,ARC_102朥d9m&@{Z4S8E@8>¤)Lm&@-£GB8E@|8>¤)Lm&@-£GB8E@œ¥d9m&@{Z4S8E@þNODE_53NODE_36 blARC_101æ8>¤)Lm&@-£GB8E@”ص½m&@ãTka8E@|”ص½m&@ãTka8E@ãê¶ú m&@ÝóW#8E@|Äž,km&@©v<8E@8>¤)Lm&@-£GB8E@þNODE_9NODE_53ka,ARC_100æéØk&@JbI¹û7E@HÌ¢fþk&@(#ç8E@|HÌ¢fþk&@JbI¹û7E@éØk&@(#ç8E@þNODE_97NODE_63{`LARC_99æî¸<1Fk&@$é?8E@ñ'Ïack&@ÝóW#8E@|î¸<1Fk&@$é?8E@ñ'Ïack&@Øà3È8E@›ÌÓ\k&@ÝóW#8E@þNODE_96NODE_114j_,ARC_98æ_mÖ*k&@_gž· 8E@î¸<1Fk&@$é?8E@|_mÖ*k&@_gž· 8E@î¸<1Fk&@$é?8E@þNODE_95NODE_96 ^lARC_97æÄ¢T m&@w²å¦8E@Ñ=ëm&@œ©kH78E@|Ä¢T m&@w²å¦8E@¥D·m&@žÃÆ8E@Ñ=ëm&@„^$Y,8E@Ϻëm&@œ©kH78E@þNODE_94NODE_28z]LARC_96ælj 0‡l&@ŸPôe8E@Ä¢T m&@w²å¦8E@|lj 0‡l&@ŸPôe8E@>(ƒþl&@ý8P–8E@Ä¢T m&@w²å¦8E@þNODE_93NODE_94j\,ARC_95æt§…ÜVl&@À•ìØ8E@lj 0‡l&@ŸPôe8E@|t§…ÜVl&@À•ìØ8E@lj 0‡l&@ŸPôe8E@þNODE_42NODE_93 A„|…­Aj[,ARC_94æNŒm m&@ºõš8E@ n À;m&@¿¿y8E@| n À;m&@¿¿y8E@NŒm m&@ºõš8E@þNODE_91NODE_67jZ,ARC_93æ n À;m&@¿¿y8E@ø&„œ³6º>zSLARC_86æUÕp6Âk&@1¶k8E@_mÖ* l&@f3‡¤8E@|_mÖ* l&@1¶k8E@cæL$âk&@f3‡¤8E@UÕp6Âk&@6Éø8E@þNODE_38NODE_52zRLARC_85æÂågÙIk&@O›sð7E@›ÌÓ\k&@žòC8E@|›ÌÓ\k&@O›sð7E@ÂågÙIk&@Õçj+ö7E@Íé Rk&@žòC8E@þNODE_50NODE_25{QLARC_84æÑn>¿9m&@Ñ3Rs8E@Âïðèm&@þ8«Oƒ8E@|Âïðèm&@Ñ3Rs8E@ÒgQéqm&@ºW•}8E@Ñn>¿9m&@þ8«Oƒ8E@þNODE_81NODE_108jP,ARC_83æÂïðèm&@ÁÑDŽc8E@U¯²¶m&@Ñ3Rs8E@|U¯²¶m&@ÁÑDŽc8E@Âïðèm&@Ñ3Rs8E@þNODE_80NODE_81{OLARC_82æ{,"/m&@Ê’ï]8E@õc™~m&@×ù·Ë~8E@|õc™~m&@Ê’ï]8E@ ³†AOm&@¹è¿bh8E@{,"/m&@×ù·Ë~8E@þNODE_14NODE_109zNLARC_81æ ‹Q×Úk&@´UId8E@½ûˆøk&@v%¸G%8E@|N¢¹©Ük&@´UId8E@ ‹Q×Úk&@5ô“l&@— ŽB8E@"3¼þÉl&@FøÍ³H8E@|Þ*>ô“l&@— ŽB8E@"3¼þÉl&@FøÍ³H8E@þNODE_57NODE_17zJLARC_77æxŸ>]l&@Õ9«ª<8E@Þ*>ô“l&@— ŽB8E@|xŸ>]l&@Õ9«ª<8E@$½ tl&@bŒþ†?8E@Þ*>ô“l&@— ŽB8E@þNODE_48NODE_57jI,ARC_76æÇÒÁúk&@Îm½28E@xŸ>]l&@Õ9«ª<8E@|ÇÒÁúk&@Îm½28E@xŸ>]l&@Õ9«ª<8E@þNODE_73NODE_48jH,ARC_75æ`^Û6çk&@Ï»± 08E@ÇÒÁúk&@Îm½28E@|`^Û6çk&@Ï»± 08E@ÇÒÁúk&@Îm½28E@þNODE_72NODE_73jG,ARC_74æ¿]¶k&@sßÅV+8E@`^Û6çk&@Ï»± 08E@|¿]¶k&@sßÅV+8E@`^Û6çk&@Ï»± 08E@þNODE_51NODE_72 FlARC_73æÔºh#2k&@ûÞðÌ8E@¿]¶k&@sßÅV+8E@|Ôºh#2k&@ûÞðÌ8E@"ÇÖ3„k&@0)>>!8E@™eO›k&@åŒrz(8E@¿]¶k&@sßÅV+8E@þNODE_35NODE_51E‚ ARC_72æ/ø4'/j&@!„6ïî7E@Ôºh#2k&@ûÞðÌ8E@|/ø4'/j&@!„6ïî7E@^:œ¯Hj&@û?‡ùò7E@Le›e`j&@Ò Wö7E@Vó‘ïj&@ôà 8E@Ôºh#2k&@ûÞðÌ8E@þNODE_69NODE_35zDLARC_71æ QZøi&@Û‡¼åê7E@/ø4'/j&@ö¾Rñ7E@| QZøi&@ö¾Rñ7E@¶üj&@Û‡¼åê7E@/ø4'/j&@!„6ïî7E@þNODE_23NODE_69 @Tèl”¬@jC,ARC_70æNŒm m&@ºõš8E@Ä¢T m&@w²å¦8E@|NŒm m&@ºõš8E@Ä¢T m&@w²å¦8E@þNODE_67NODE_94jB,ARC_69æNŒm m&@ŸPôe8E@Pé»¶m&@ºõš8E@|Pé»¶m&@ŸPôe8E@NŒm m&@ºõš8E@þNODE_66NODE_67zALARC_68æóªÎjm&@7!8E@zÄè¹m&@ޝ=³$8E@|óªÎjm&@7!8E@¥0ïq¦m&@5LARC_64æA­³kŒk&@XS8E@éØk&@(#ç8E@|A­³kŒk&@XS8E@]ª½k&@Mè?µ 8E@éØk&@(#ç8E@þNODE_62NODE_63j=,ARC_63æÍé Rk&@žòC8E@A­³kŒk&@XS8E@|Íé Rk&@žòC8E@A­³kŒk&@XS8E@þNODE_25NODE_62)<‚,ARC_62挼¬‰j&@á iTà7E@Íé Rk&@žòC8E@|Œ¼¬‰j&@á iTà7E@—(1¾j&@€ù¿~ã7E@ÈÇ8?j&@´vÛ…æ7E@f ƒj&@Kïvî7E@‘4n k&@c:¾ù7E@Íé Rk&@žòC8E@þNODE_1NODE_25 r„œ1ÅYîrz;LARC_61æϺëm&@j<Ç68E@ãKM'~m&@ßÁO@8E@|ãKM'~m&@ßÁO@8E@ƒ÷U¹Pm&@j<Ç68E@Ϻëm&@œ©kH78E@þNODE_11NODE_28i:,ARC_60溞èºðk&@ÙÎ÷Sã7E@l#ö l&@8ãê¶ú7E@|ºžèºðk&@8ãê¶ú7E@l#ö l&@ÙÎ÷Sã7E@þNODE_58NODE_6j9,ARC_59æÞ*>ô“l&@RšÍã08E@ú—¤2Ål&@— ŽB8E@|Þ*>ô“l&@— ŽB8E@ú—¤2Ål&@RšÍã08E@þNODE_57NODE_29j8,ARC_58æ#·Ë#l&@ŽÑ•c 8E@“{p-Il&@9‚é8E@|#·Ë#l&@ŽÑ•c 8E@“{p-Il&@9‚é8E@þNODE_44NODE_41i7,ARC_57æõÕUZl&@^ð•ë7E@ù#)Žl&@²\€Ç8E@|ù#)Žl&@^ð•ë7E@õÕUZl&@²\€Ç8E@þNODE_7NODE_43z6LARC_56æ°õVn³j&@LK8E@¨ç8k&@kÑN8E@|¨ç8k&@LK8E@Vó‘ïj&@ôà 8E@°õVn³j&@kÑN8E@þNODE_54NODE_22j5,ARC_55æ n À;m&@-£GB8E@8>¤)Lm&@¿¿y8E@|8>¤)Lm&@-£GB8E@ n À;m&@¿¿y8E@þNODE_53NODE_91z4LARC_54æÒIH·k&@6Éø8E@UÕp6Âk&@,ã8E@|UÕp6Âk&@6Éø8E@ÒIH·k&@b픳8E@HÖ†/¸k&@,ã8E@þNODE_52NODE_33 :tÇ[ïs¦:j3,ARC_53æƒÊ k&@sßÅV+8E@¿]¶k&@G2;8E@|¿]¶k&@sßÅV+8E@ƒÊ k&@G2;8E@þNODE_51NODE_19J2‚lARC_52æ/ø4'/j&@C.‚Ú7E@›ÌÓ\k&@O›sð7E@|›ÌÓ\k&@O›sð7E@z‰V“Lk&@þ…yêì7E@_mÖ*k&@Û‡¼åê7E@ DOʤj&@™Ñ4Íà7E@aobHNj&@C.‚Ú7E@_¿ªQj&@àiœà7E@ÈÇ8?j&@´vÛ…æ7E@/ø4'/j&@!„6ïî7E@þNODE_50NODE_69z1LARC_51æ›ÌÓ\k&@O›sð7E@CpìÙk&@c:¾ù7E@|CpìÙk&@c:¾ù7E@ŽÃE˜k&@ˆ’ÚÕõ7E@›ÌÓ\k&@O›sð7E@þNODE_49NODE_50j0,ARC_50æxŸ>]l&@À4V¬+8E@†r¢]…l&@Õ9«ª<8E@|xŸ>]l&@Õ9«ª<8E@†r¢]…l&@À4V¬+8E@þNODE_48NODE_30j/,ARC_49æÂïðèm&@Ñ3Rs8E@щNàçm&@¤°æ[z8E@|щNàçm&@¤°æ[z8E@Âïðèm&@Ñ3Rs8E@þNODE_13NODE_81*.‚,ARC_48æϺëm&@Ї|8E@$ –\m&@œ©kH78E@|ø&m&@ü«"78E@ø&¤)Lm&@êì¿)8E@$¹WAgm&@WŒdù7E@ÇY"am&@Äh )õ7E@ƒ÷U¹Pm&@7¹Lò7E@X:ž%l&@’Là7E@ÙrÓ ãk&@¾)Q›Ý7E@A­³kŒk&@µ åØ7E@ü¹²Uk&@2WÕ7E@2SÿÅØj&@/ ÌTÒ7E@L[·œ¦j&@â´;ÿÑ7E@©1!æ’j&@QJVÕ7E@þNODE_36NODE_3j#,ARC_37æÔºh#2k&@$é?8E@î¸<1Fk&@ûÞðÌ8E@|Ôºh#2k&@ûÞðÌ8E@î¸<1Fk&@$é?8E@þNODE_35NODE_96 "lARC_36æ°áŽÜ?k&@+98E@A­³kŒk&@4á28E@|A­³kŒk&@+98E@"ÇÖ3„k&@0)>>!8E@ &£owk&@‡¤J&8E@°áŽÜ?k&@4á28E@þNODE_34NODE_21j!,ARC_35æA­³kŒk&@,ã8E@HÖ†/¸k&@+98E@|HÖ†/¸k&@,ã8E@A­³kŒk&@+98E@þNODE_33NODE_34j ,ARC_34æHÖ†/¸k&@,ã8E@N¢¹©Ük&@´UId8E@|N¢¹©Ük&@´UId8E@HÖ†/¸k&@,ã8E@þNODE_32NODE_33zLARC_33æN¢¹©Ük&@´UId8E@¨¿¨Nl&@i¹} &8E@|¨¿¨Nl&@i¹} &8E@‘(´¬ûk&@¿F’ 8E@N¢¹©Ük&@´UId8E@þNODE_31NODE_32j,ARC_32樿¨Nl&@i¹} &8E@†r¢]…l&@À4V¬+8E@|†r¢]…l&@À4V¬+8E@¨¿¨Nl&@i¹} &8E@þNODE_30NODE_31 k”­¿C×kj,ARC_31æ†r¢]…l&@À4V¬+8E@ú—¤2Ål&@RšÍã08E@|ú—¤2Ål&@RšÍã08E@†r¢]…l&@À4V¬+8E@þNODE_29NODE_30j,ARC_30æú—¤2Ål&@RšÍã08E@Ϻëm&@œ©kH78E@|Ϻëm&@œ©kH78E@ú—¤2Ål&@RšÍã08E@þNODE_28NODE_29zLARC_29æ\Ò¬ÇØl&@œ©kH78E@Ϻëm&@WI’I8E@|\Ò¬ÇØl&@WI’I8E@ódí¥ßl&@}1¥?E8E@Ϻëm&@œ©kH78E@þNODE_16NODE_28kƒ,ARC_28æ9 3n&@ë¶ú 8E@·W0;Õo&@s°H]|8E@| O”„DÚn&@s°H]|8E@àr«Öxo&@Ý›:êC8E@·W0;Õo&@²C¡ $8E@Ž˜4¡¤o&@ë¶ú 8E@#w"Ò€o&@Š_ 8E@¢Ð²îo&@Zü\#88E@Œ]ên&@¾¾Ö¥F8E@_b‡Œ¢n&@êâÛ`M8E@6fÈghn&@-™cyW8E@9 3n&@ÚPÖm8E@þNODE_26NODE_111j,ARC_27æÔºh#2k&@žòC8E@Íé Rk&@Ùma'8E@|Íé Rk&@žòC8E@Ôºh#2k&@Ùma'8E@þNODE_25NODE_85yLARC_25æÉyZÙi&@á iTà7E@Œ¼¬‰j&@Ÿ!³ì7E@|ÉyZÙi&@Ÿ!³ì7E@Û¸Š÷i&@©xm€ã7E@Œ¼¬‰j&@á iTà7E@þNODE_24NODE_1j,ARC_24æÉyZÙi&@Ÿ!³ì7E@ QZøi&@ö¾Rñ7E@| QZøi&@ö¾Rñ7E@ÉyZÙi&@Ÿ!³ì7E@þNODE_23NODE_24 9”·;¿SÆ9 lARC_23æ QZøi&@ö¾Rñ7E@°õVn³j&@kÑN8E@|°õVn³j&@kÑN8E@Cù']Ÿj&@‘\ü8E@$¸‘²Ej&@ïRÙþ7E@ QZøi&@ö¾Rñ7E@þNODE_22NODE_23 lARC_22æ°õVn³j&@kÑN8E@°áŽÜ?k&@4á28E@|°áŽÜ?k&@4á28E@&²Å$k&@CÑòò*8E@à>¼øìj&@ðµ±#8E@°õVn³j&@kÑN8E@þNODE_21NODE_22j,ARC_21æ°áŽÜ?k&@4á28E@CéfÚYk&@,Pæz68E@|CéfÚYk&@,Pæz68E@°áŽÜ?k&@4á28E@þNODE_20NODE_21zLARC_20æCéfÚYk&@,Pæz68E@ƒÊ k&@G2;8E@|ƒÊ k&@G2;8E@M(„ik&@ïEj88E@CéfÚYk&@,Pæz68E@þNODE_19NODE_20zLARC_19æƒÊ k&@G2;8E@/wõÆk&@H¾D8E@|/wõÆk&@H¾D8E@%ñ¨ç“k&@™wæ/>8E@ƒÊ k&@G2;8E@þNODE_18NODE_19Zƒ ARC_18æ/wõÆk&@H¾D8E@"3¼þÉl&@ü(4ZX8E@| "3¼þÉl&@FøÍ³H8E@4µô¼l&@"³ìI8E@óCË¥l&@N¢cO8E@—6ÁÜ“l&@¼+qÓU8E@*Ê«~l&@ü(4ZX8E@ !jl&@š]÷V8E@Ô;&œ'l&@´*$O8E@OpVék&@á¸òH8E@/wõÆk&@H¾D8E@þNODE_17NODE_18j,ARC_17æ"3¼þÉl&@FøÍ³H8E@\Ò¬ÇØl&@WI’I8E@|\Ò¬ÇØl&@WI’I8E@"3¼þÉl&@FøÍ³H8E@þNODE_16NODE_17 y•Œÿ’&y*‚,ARC_16æ\Ò¬ÇØl&@WI’I8E@C(¥VNm&@™ƒ £U8E@|C(¥VNm&@™ƒ £U8E@T²÷=Em&@XR“…T8E@iW!å'm&@Sýï-Q8E@Ì7ìm&@a>N8E@Ö@Nóél&@Ô¢“J8E@\Ò¬ÇØl&@WI’I8E@þNODE_15NODE_16j,ARC_15æC(¥VNm&@™ƒ £U8E@õc™~m&@Ê’ï]8E@|õc™~m&@Ê’ï]8E@C(¥VNm&@™ƒ £U8E@þNODE_14NODE_15k ,ARC_14æ­„“ÙÅm&@¤°æ[z8E@щNàçm&@îµ#‹8E@|щNàçm&@¤°æ[z8E@­„“ÙÅm&@îµ#‹8E@þNODE_13NODE_107 lARC_13æ»3É~Ìm&@ðó„Êd8E@É+Ưn&@¤°æ[z8E@|»3É~Ìm&@ðó„Êd8E@|ø ÷m&@‹Ì·™e8E@É+Ưn&@5`ôi8E@щNàçm&@¤°æ[z8E@þNODE_12NODE_13 lARC_12æC(¥VNm&@ßÁO@8E@ãKM'~m&@™ƒ £U8E@|ãKM'~m&@ßÁO@8E@ž]¾õam&@:x&4I8E@ÿ°¥GSm&@Ñzø2Q8E@C(¥VNm&@™ƒ £U8E@þNODE_11NODE_15z LARC_11æãKM'~m&@ޝ=³$8E@zÄè¹m&@ßÁO@8E@|zÄè¹m&@ޝ=³$8E@W_]¨m&@¥À˜28E@ãKM'~m&@ßÁO@8E@þNODE_10NODE_11i ,ARC_10æzÄè¹m&@ãTka8E@”ص½m&@ޝ=³$8E@|”ص½m&@ãTka8E@zÄè¹m&@ޝ=³$8E@þNODE_9NODE_10 ºº]ƒ "5#…qtriggerggi_alpha_roads_geomalpha_roadsCREATE TRIGGER "ggi_alpha_roads_geom" BEFORE INSERT ON "alpha_roads" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'alpha_roads.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT type FROM geometry_columns WHERE f_table_name = 'alpha_roads' AND f_geometry_column = 'geom' AND GeometryConstraints(NEW."geom", type, srid, 'XY') = 1) IS NULL; ENDƒ #5#…qtriggerggu_alpha_roads_geomalpha_roadsCREATE TRIGGER "ggu_alpha_roads_geom" BEFORE UPDATE ON "alpha_roads" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'alpha_roads.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT type FROM geometry_columns WHERE f_table_name = 'alpha_roads' AND f_geometry_column = 'geom' AND GeometryConstraints(NEW."geom", type, srid, 'XY') = 1) IS NULL; END SµSº?õíLÞNODE_1Œ¼¬‰j&@á iTà7E@TãM¡ø‚€?‡T kŽêž@?‡T<ËX$<ðOf?‡‡ÞNODE_10zÄè¹m&@ޝ=³$8E@T E Áö÷ij¿9m&@þ8«Oƒ8E@TlFÍX¯­¨6?‡TQC‹IiÀL¦   alpha_roads¡ node_from¢node_to£geom¤¥ð?‡Œœ€íòNL?‡Tkæü0çñQ?‡‡ÞNODE_109{,"/m&@×ù·Ë~8E@TlFÍX¯­¨6?‡TO ü,çtæU?‡TmÆ ŠlJ…p?‡‡ÞNODE_11ãKM'~m&@ßÁO@8E@T d BéH?‡T;+‡„ùO?‡T Ö"»z-²O?‡‡ÞNODE_1119 3n&@ÚPÖm8E@Tod}(CñJ?‡TnrBlBV?‡T °xÅŒì~?‡‡ÞNODE_114›ÌÓ\k&@ÝóW#8E@T`Jð©§-è,6?‡‡ÞNODE_12»3É~Ìm&@ðó„Êd8E@TpBrO£^±Y&?‡Tod}(CñJ?‡T žg‘¯ˆR?‡‡Þ NODE_13щNàçm&@¤°æ[z8E@T #ûO¯?ÐB?‡T/C>ÚF?‡T žg‘¯ˆR?‡‡Þ NODE_14õc™~m&@Ê’ï]8E@T ðêѰ“M?‡TOü,çtæU?‡‡Þ NODE_15C(¥VNm&@™ƒ £U8E@T ðêѰ“M»+þzQ?‡‡ÞNODE_20CéfÚYk&@,Pæz68E@TêU}˜ýg/?‡TrÜc5?‡TmÆ ŠlJ…p?‡‡ÞNODE_21°áŽÜ?k&@4á28E@TêU}˜ýg/?‡T"Á2å“K?‡T QiµÀV?‡‡ÞNODE_22°õVn³j&@kÑN8E@T64—ÒÊýO?‡T QiµÀV?‡Tþîbó-^?‡‡ÞNODE_23 QZøi&@ö¾Rñ7E@T6d:$U 2?‡TD=lÊq‰sA?‡Tþîbó-^?‡‡ÞNODE_24ÉyZÙi&@Ÿ!³ì7E@T6d:$U 2?‡T kŽêž@?‡‡ÞNODE_25Íé Rk&@žòC8E@TDV#ëÛEÕ3?‡T=8TßšU™??‡TR0f>V¸PA?‡T<ËX$<ðOf?‡‡ÞNODE_26O”„DÚn&@s°H]|8E@TnrBlBV?‡T °xÅŒì~?‡‡ÞNODE_28Ϻëm&@œ©kH78E@Tõ±@‹C?‡T ôÛ"»+þzQ?‡T%ð3N ùW?‡T$!Ó²:Õqäz?‡‡ÞNODE_30†r¢]…l&@À4V¬+8E@T AQ9<(=?‡TZÄ‹þÉ@?‡T0-Y׬›»C?‡‡ÞNODE_31¨¿¨Nl&@i¹} &8E@T AQ9<(=?‡TLGÖö›1­\L?‡T'0ô tM?‡‡ÞNODE_32N¢¹©Ük&@´UId8E@T ï»|>D2?‡TN$°Ñ¼Go7?‡T'0ô tM?‡‡ÞNODE_33HÖ†/¸k&@,ã8E@T ï»|>D2?‡T42Ì5¯”Iì2?‡T!{-Ѽ“ä5?‡‡ÞNODE_34A­³kŒk&@+98E@T!{-Ѽ“ä5?‡T"Á2å“K?‡Tj.âÕÄA=œU?‡‡Þ NODE_35Ôºh#2k&@ûÞðÌ8E@T#J>ëáUë-?‡TF1¾GçÄÖT?‡TE=ñŒ{‚Jáb?‡‡Þ!NODE_36œ¥d9m&@{Z4S8E@Tc3ã/µ²;##?‡Td;ØŸ:H¸3?‡T$Ó²:Õqäz?‡‡Þ"NODE_37M˜Õà"l&@‹Îèý7E@TgK͇Ÿ¦SÁ2?‡Tf)t `ÚËÞdAÅ&®I?‡Te;¾²Rƒ8àW?‡‡Þ*NODE_44#·Ë#l&@ŽÑ•c 8E@T,#äÜ•54ƒ1?‡T8'k˜§Z/\3?‡T+)×…‚);YB?‡‡Þ+NODE_45¥:Ó:`m&@qs*8E@TY,5UôRæ&?‡TX:þz«Ý>?‡T-AåÍ®þ4ÅM?‡‡Þ,NODE_46ø&]l&@Õ9«ª<8E@TJ5ïãÌ Ò=?‡T0Y׬›»C?‡TI@9‘ŒJ?‡‡Þ.NODE_49CpìÙk&@c:¾ù7E@Ti6fû:âÇ'?‡T10$xÁýóYP?‡TjâÕÄA=œU?‡‡Þ/NODE_5Ƥ¿—Âk&@)ßÞ7E@T7@”=ÅêcB?‡T%[70_G¥L?‡TW8~û§±¼U?‡‡Þ0NODE_50›ÌÓ\k&@O›sð7E@TRf>V¸PA?‡T1.$xÁýóYP?‡T2=”9ýo¾g?‡‡Þ1NODE_51¿]¶k&@sßÅV+8E@TG?.†]ž:?‡T3kbæUz,E?‡TF ¾GçÄÖT?‡‡Þ2NODE_52UÕp6Âk&@6Éø8E@T4Ì5¯”Iì2?‡TS#JÚpW´B?‡TTDM©K»S?‡‡Þ3NODE_538>¤)Lm&@-£GB8E@Tc!ã/µ²;##?‡T5FËNù“â‹*?‡TbE"áˆÀòL?‡‡Þ4NODE_54¨ç8k&@LK8E@TUD‚R-ßó0?‡T6—ÒÊýO?‡TV%6‚Jd˜'Y?‡‡Þ5NODE_57Þ*>ô“l&@— ŽB8E@TK ]Æ¥¢¯=?‡TJ-ïãÌ Ò=?‡T9ñø°%ˆE?‡‡Þ6NODE_58ºžèºðk&@8ãê¶ú7E@ThKëŠP™C‚?‡Ti.fû:â‘Ç'?‡T:73/„æ8H?‡‡Þ7NODE_6l#ö l&@ÙÎ÷Sã7E@T/@”=ÅêcB?‡T:63/„æ8H?‡T>×vÜ QQ?‡‡Þ8NODE_62A­³kŒk&@XS8E@T=TßšU™??‡T>9!˜•gÇD?‡TW/~û§±¼U?‡‡Þ9NODE_63éØk&@(#ç8E@T?#»!ù/m7;?‡T>8!˜•gÇD?‡TaK~^ˆÏ±oE?‡‡Þ:NODE_65óªÎjm&@7!8E@TA’ºD¡,=?‡TX+þz«Ý>?‡‡Þ;NODE_66Pé»¶m&@ŸPôe8E@TB<àq˜Ãz(?‡Td!ØŸ:H¸3?‡Te)¾²Rƒ8àW?‡‡Þ<NODE_67NŒm m&@ºõš8E@TCH2jxÆ#Q?‡TB;àq˜Ãz(?‡T[FªÒ|ÁGž8?‡‡Þ=NODE_69/ø4'/j&@!„6ïî7E@TDlÊq‰sA?‡TE ñŒ{‚Jáb?‡T20”9ýo¾g?‡‡Þ>NODE_7ù#)Žl&@^ð•ë7E@T7)dAÅ&®I?‡T7×vÜ QQ?‡TAòÝÚáç`?‡‡Þ?NODE_72`^Û6çk&@Ï»± 08E@TH@¹IGÕK%?‡T'$•1jJ38?‡TG1.†]ž:?‡‡Þ@NODE_73ÇÒÁúk&@Îm½28E@TH?¹IGÕK%?‡TM‡«F?‡TI-9‘ŒJ?‡‡ÞANODE_8°˜l—‘m&@¿è—-þ7E@TEd—/úsK?‡T-+åÍ®þ4ÅM?‡T>òÝÚáç`?‡‡ÞBNODE_80U¯²¶m&@ÁÑDŽc8E@TprO£^±Y&?‡Tq  Ö Ýî>?‡TPC¥z[!é`B?‡‡ÞCNODE_81Âïðèm&@Ñ3Rs8E@TPB¥z[!é`B?‡T/ >ÚF?‡TQœ€íòNL?‡‡ÞDNODE_85Ôºh#2k&@Ùma'8E@TU4‚R-ßó0?‡TV#ëÛEÕ3?‡TT2M©K»S?‡‡ÞENODE_9”ص½m&@ãTka8E@T  Áö÷ijëáUë-?‡T_IÅS%“ÔÉ.?‡T`ð©§-è,6?‡‡ÞKNODE_97HÌ¢fþk&@JbI¹û7E@Th6ëŠP™C‚?‡Tg"͇Ÿ¦SÁ2?‡Ta9~^ˆÏ±oE?‡‡ ðð€ $55;tablealpha_roads_net_dataalpha_roads_net_dataŠCREATE TABLE "alpha_roads_net_data" (Id INTEGER PRIMARY KEY, NetworkData BLOB NOT NULL)~%++3tablealpha_roads_netalpha_roads_netCREATE VIRTUAL TABLE "alpha_roads_net" USING VirtualNetwork("alpha_roads_net_data")‡“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁéèçæåäãâáàßÞÝÜÛÚÙØ×ÖÕÔÓÒÑÐÏÎÍÌËÊÉÈÇÆÅÄà    ÿþýüûúùø÷öõôóòñðïîíìëêøŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ     Œ‹Š‰ˆ‡†…„ƒ‚€~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector10.testcase0000664000175000017500000000033112544707704023266 00000000000000makecircularsector - text start :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, 'text', 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, 'text', 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson22.testcase0000664000175000017500000000133212544707704021741 00000000000000FromGeoJSON - geometry collectionz, SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,13,10],"geometries":[{"type":"Point","coordinates":[4,6,0]},{"type":"Polygon","coordinates":[[[4,6,1],[7,10,1],[13,3,2],[4,6,1]]]}]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,13,10],"geometries":[{"type":"Point","coordinates":[4,6,0]},{"type":"Polygon","coordinates":[[[4,6,1],[7,10,1],[13,3,2],[4,6,1]]]}]}')):0 SRID=3003;GEOMETRYCOLLECTION(POINT(4 6 0),POLYGON((4 6 1,7 10 1,13 3 2,4 6 1))) libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson20.testcase0000664000175000017500000000110112544707704021731 00000000000000FromGeoJSON - multilinestring, SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"MultiLineString","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[-3,2,4,25],"coordinates":[[[1,2],[4,6]],[[2,3],[-3,25],[1,2]]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"MultiLineString","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[-3,2,4,25],"coordinates":[[[1,2],[4,6]],[[2,3],[-3,25],[1,2]]]}')):0 SRID=3003;MULTILINESTRING((1 2,4 6),(2 3,-3 25,1 2)) libspatialite-4.3.0a/test/sql_stmt_tests/getlayerextent14.testcase0000664000175000017500000000034512544707704022461 00000000000000GetLayerExtent - TEXT, TEXT, BLOB :memory: #use in-memory database SELECT GetLayerExtent('table', 'column', zeroblob(4)); 1 # rows (not including the header row) 1 # columns GetLayerExtent('table', 'column', zeroblob(4)); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeline3.testcase0000664000175000017500000000022112544707704021111 00000000000000makeline3 :memory: #use in-memory database SELECT MakeLine("text"); 1 # rows (not including the header row) 1 # columns MakeLine("text") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson2.testcase0000664000175000017500000000026212544707704021660 00000000000000FromGeoJSON - nontext :memory: #use in-memory database SELECT AsText(GeomFromGeoJSON(26)); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGeoJSON(26)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makearc10.testcase0000664000175000017500000000027212544707704021013 00000000000000makearc10 - text start :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 'text', 60); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 'text', 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/numgeometries5.testcase0000664000175000017500000000052312544707704022216 00000000000000numgeometries - Polygon plus linestring :memory: #use in-memory database SELECT NumGeometries(GeomFromText("GeometryCollection(POLYGON((1 2, 3 4, 5 0, 1 2)), LINESTRING(1 3, 4 6))")) 1 # rows (not including the header row) 1 # columns NumGeometries(GeomFromText("GeometryCollection(POLYGON((1 2, 3 4, 5 0, 1 2)), LINESTRING(1 3, 4 6))")) 2libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson10.testcase0000664000175000017500000000061212544707704021736 00000000000000FromGeoJSON - Point with SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"Point","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[-1,1.5]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"Point","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[-1,1.5]}')):0 SRID=3003;POINT(-1 1.5) libspatialite-4.3.0a/test/sql_stmt_tests/removepoint3.testcase0000664000175000017500000000026612544707704021704 00000000000000ST_RemovePoint() - DOUBLE line :memory: #use in-memory database SELECT ST_RemovePoint(1.7, NULL) 1 # rows (not including the header row) 1 # columns ST_RemovePoint(1.7, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmscale2.testcase0000664000175000017500000000075412544707704021127 00000000000000ATM_Scale() - valid (double) :memory: #use in-memory database SELECT Hex(ATM_Scale(ATM_Create(), 1.0, 2.0)) 1 # rows (not including the header row) 1 # columns Hex(ATM_Scale(ATM_Create(), 1.0, 2.0)) 0001000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A00000000000000403A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate3.testcase0000664000175000017500000000077612544707704021310 00000000000000ATM_Create() - 2d valid (double) :memory: #use in-memory database SELECT Hex(ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 6.0)) 1 # rows (not including the header row) 1 # columns Hex(ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 6.0)) 0001000000000000F03F3A00000000000000403A00000000000000003A00000000000014403A00000000000008403A00000000000010403A00000000000000003A00000000000018403A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector3.testcase0000664000175000017500000000035412544707704023216 00000000000000makeellipticsector - BLOB cx :memory: #use in-memory database SELECT MakeEllipticSector(zeroblob(4), 0, 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(zeroblob(4), 0, 100, 200, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collect7.testcase0000664000175000017500000000070112544707704020760 00000000000000collect - toxic blob second arg :memory: #use in-memory database SELECT AsText(Collect(MakePoint(3,3), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) 1 # rows (not including the header row) 1 # columns AsText(Collect(MakePoint(3,3), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) GEOMETRYCOLLECTION(POINT(3 3), POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector17.testcase0000664000175000017500000000035612544707704023305 00000000000000makeellipticsector17 - BLOB stop :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, 30, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, 30, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makearc2.testcase0000664000175000017500000000027212544707704020734 00000000000000makearc1 - text cx :memory: #use in-memory database SELECT MakeArc('alpha', 0, 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeArc('alpha', 0, 100, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeline17.testcase0000664000175000017500000000044212544707704021203 00000000000000makeline17 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINT(0 0)"), GeomFromText("POINTZ(1 2 2.4)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINT(0 0)"), GeomFromText("POINTZ(1 2 2.4)"))) LINESTRING Z(0 0 0, 1 2 2.4) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude18.testcase0000664000175000017500000000120612544707704022446 00000000000000shiftlongitude - positive and negative longitude polygon, interior rings :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGON((-175 0, -176 10, 175 10, 176 0, -175 0),(-177 1, -177 2, -178 2, -178 1, -177 1),(-179 4, 179 4, 179 5, -179 5, -179 4))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGON((-175 0, -176 10, 175 10, 176 0, -175 0),(-177 1, -177 2, -178 2, -178 1, -177 1),(-179 4, 179 4, 179 5, -179 5, -179 4))", 4326))) POLYGON((185 0, 184 10, 175 10, 176 0, 185 0), (183 1, 183 2, 182 2, 182 1, 183 1), (181 4, 179 4, 179 5, 181 5, 181 4)) libspatialite-4.3.0a/test/sql_stmt_tests/geomcollfromtext1.testcase0000664000175000017500000000055112544707704022722 00000000000000geometrycollectionfromtext1 :memory: #use in-memory database SELECT AsWkt(GeometryCollectionFromText("GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))", 4326)) 1 # rows (not including the header row) 1 # columns AsWkt(GeometryCollectionFromText("GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))", 4326)) GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))libspatialite-4.3.0a/test/sql_stmt_tests/scalecoords3.testcase0000664000175000017500000000145412544707704021636 00000000000000scale coords - LINESTRINGZ :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("LINESTRINGZ(1 2 1, 4 5 2)") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) LINESTRING Z(0 0 1, 0 0 2) LINESTRING Z(0 0 1, 0 0 2) LINESTRING Z(2 6 1, 8 15 2) LINESTRING Z(1 -2 1, 4 -5 2) (NULL) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints1.testcase0000664000175000017500000000032412544707704022545 00000000000000geometry constraints - 3 arg, null :memory: #use in-memory database SELECT GeometryConstraints(null, "POINT", 4326) 1 # rows (not including the header row) 1 # columns GeometryConstraints(null, "POINT", 4326) 1 libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe12.testcase0000664000175000017500000000033612544707704023304 00000000000000makecircularstripe12 - NULL stop :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, 30, NULL); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, 30, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collect13.testcase0000664000175000017500000000047112544707704021041 00000000000000collect - PointZ, PointM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTZ(4 5 3.2)"), GeomFromText("POINTM(1 2 6)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTZ(4 5 3.2)"), GeomFromText("POINTM(1 2 6)"))) MULTIPOINT ZM(4 5 3.2 0, 1 2 0 6) libspatialite-4.3.0a/test/sql_stmt_tests/m_nm.testcase0000664000175000017500000000024512544707704020175 00000000000000metres to nautical miles :memory: #use in-memory database SELECT CvtToKmi(2000.0); 1 # rows (not including the header row) 1 # columns CvtToKmi(2000.0) 1.07991361:7 libspatialite-4.3.0a/test/sql_stmt_tests/makepointz-null5.testcase0000664000175000017500000000037712544707704022473 00000000000000makepointz-null5 :memory: #use in-memory database SELECT AsText(MakePointZ(-26.0, 42.3150676015829, 0.0038723129645, 4326.0)); 1 # rows (not including the header row) 1 # columns AsText(MakePointZ(-26.0, 42.3150676015829, 0.0038723129645, 4326.0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makearc11.testcase0000664000175000017500000000030412544707704021010 00000000000000makearc11 - BLOB start :memory: #use in-memory database SELECT MakeArc(0, 0, 100, zeroblob(4), 60); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, zeroblob(4), 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/isvalidpalette3.testcase0000664000175000017500000000033412544707704022343 00000000000000IsValidRasterPalette - NULL sample-type NEW:memory: #use in-memory database SELECT IsValidRasterPalette(zeroblob(4), NULL); 1 # rows (not including the header row) 1 # columns IsValidRasterPalette(zeroblob(4), NULL) -1 libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr5.testcase0000664000175000017500000000024712544707704020773 00000000000000garsmbr - out of bounds longitude :memory: #use in-memory database SELECT GARSMbr("721AA") 1 # rows (not including the header row) 1 # columns GARSMbr("721AA") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geodesic-len6.testcase0000664000175000017500000000017512544707704021675 00000000000000geodesic length (wrong) TEXT arg :memory: SELECT GeodesicLength('alpha'); 1 # rows 1 # column GeodesicLength('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/locatemeasure10.testcase0000664000175000017500000000065012544707704022241 00000000000000ST_Locate_Between_Measures - GeometryCollectionM :memory: #use in-memory database SELECT ST_Locate_Between_Measures(GeomFromText('GEOMETRYCOLLECTIONM(LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5))'), 20, 30.1); 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures(GeomFromText('GEOMETRYCOLLECTIONM(LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5))'), 20, 30.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmastext2.testcase0000664000175000017500000000023112544707704021336 00000000000000ATM_AsText() - double :memory: #use in-memory database SELECT ATM_AsText(1.1) 1 # rows (not including the header row) 1 # columns ATM_AsText(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/us_ft_m.testcase0000664000175000017500000000023012544707704020675 00000000000000US feet to metres :memory: #use in-memory database SELECT CvtFromUsFt(10); 1 # rows (not including the header row) 1 # columns CvtFromUsFt(10); 3.048:5 libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate6.testcase0000664000175000017500000000042612544707704021303 00000000000000ATM_Create() - invalid 1st arg :memory: #use in-memory database SELECT ATM_Create('a', 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0) 1 # rows (not including the header row) 1 # columns ATM_Create('a', 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmmultiply5.testcase0000664000175000017500000000027512544707704021720 00000000000000ATM_Multiply() - invalid arg2 :memory: #use in-memory database SELECT ATM_Multiply(ATM_Create(), 1) 1 # rows (not including the header row) 1 # columns ATM_Multiply(ATM_Create(), 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttopoly1.testcase0000664000175000017500000000026412544707704021532 00000000000000casttopolygon - bad blob :memory: #use in-memory database SELECT CastToPolygon(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToPolygon(zeroblob(99)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/wkb4.testcase0000664000175000017500000000054712544707704020123 00000000000000Hex Wkb: MultiPoint XYZM (single point) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTIPOINTZM(1.2 3.4 100 12)", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTIPOINTZM(1.2 3.4 100 12)", 4326))); 01BC0B00000100000001B90B0000333333333333F33F3333333333330B4000000000000059400000000000002840 libspatialite-4.3.0a/test/sql_stmt_tests/isvalidnodata4.testcase0000664000175000017500000000032112544707704022150 00000000000000IsValidPixel - NULL #bands NEW:memory: #use in-memory database SELECT IsValidPixel(zeroblob(4), 'UINT8', NULL); 1 # rows (not including the header row) 1 # columns IsValidPixel(zeroblob(4), 'UINT8', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_tests/sanitizeGeometry11.testcase0000664000175000017500000000062212544707704022752 00000000000000Sanitize Geometry - POLYGON M :memory: #use in-memory database SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-75 42 2, -70 39 2, -70 42 3, -70 42 4, -75 42 2))", 4326))) 1 # rows (not including the header row) 1 # columns AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-75 42 2, -70 39 2, -70 42 3, -70 42 4, -75 42 2))", 4326))) SRID=4326;POLYGONM((-75 42 2,-70 39 2,-70 42 3,-75 42 2)) libspatialite-4.3.0a/test/sql_stmt_tests/gml14.testcase0000664000175000017500000000151512544707704020174 00000000000000GML MultiPolygon: no SRID :memory: #use in-memory database SELECT AsGML(3, GeomFromText("MULTIPOLYGON(((10 10, 20 10, 20 20, 10 20, 10 10)), ((85 85, 90 85, 90 90, 85 90, 85 85)))")); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("MULTIPOLYGON(((10 10, 20 10, 20 20, 10 20, 10 10)), ((85 85, 90 85, 90 90, 85 90, 85 85)))")) 10 10 20 10 20 20 10 20 10 1085 85 90 85 90 90 85 90 85 85:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/wkb35.testcase0000664000175000017500000000172712544707704020210 00000000000000Hex Wkb: MultiPolygon XYM (single polygon with interior ring) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTIPOLYGONM(((10 10 1, 15 10 2, 15 15 3, 10 15 3, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 3, 11 11 1)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTIPOLYGONM(((10 10 1, 15 10 2, 15 15 3, 10 15 3, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 3, 11 11 1)))", 4326))); 01D60700000100000001D3070000020000000500000000000000000024400000000000002440000000000000F03F0000000000002E40000000000000244000000000000000400000000000002E400000000000002E40000000000000084000000000000024400000000000002E40000000000000084000000000000024400000000000002440000000000000F03F0500000000000000000026400000000000002640000000000000F03F00000000000028400000000000002640000000000000004000000000000028400000000000002840000000000000084000000000000026400000000000002840000000000000084000000000000026400000000000002640000000000000F03F libspatialite-4.3.0a/test/sql_stmt_tests/translate5.testcase0000664000175000017500000000036612544707704021335 00000000000000translate - text shift (error) :memory: #use in-memory database SELECT ST_Translate(GeomFromText("POINT(1 2)"), 1, "three", 2); 1 # rows (not including the header row) 1 # columns ST_Translate(GeomFromText("POINT(1 2)"), 1, "three", 2) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collect46.testcase0000664000175000017500000000123712544707704021050 00000000000000collect - Polygon, PolygonM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGON((1 2, 3 4, 3 2, 1 2),(1.5 2.5, 2.5 3.5, 2.5 2.3, 1.5 2.5))"), GeomFromText("POLYGONM((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGON((1 2, 3 4, 3 2, 1 2),(1.5 2.5, 2.5 3.5, 2.5 2.3, 1.5 2.5))"), GeomFromText("POLYGONM((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))) MULTIPOLYGON M(((1 2 0, 3 4 0, 3 2 0, 1 2 0), (1.5 2.5 0, 2.5 3.5 0, 2.5 2.3 0, 1.5 2.5 0)), ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2), (2 3 4, 3 4 1, 3 3 1, 2 3 4))) libspatialite-4.3.0a/test/sql_stmt_tests/expand7.testcase0000664000175000017500000000050512544707704020614 00000000000000Expand - illegal amount :memory: #use in-memory database SELECT ST_Expand(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), "alpha") 1 # rows (not including the header row) 1 # columns ST_Expand(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), "alpha") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/buildcirclembr2.testcase0000664000175000017500000000030512544707704022310 00000000000000buildcirclembr - text args :memory: #use in-memory database SELECT BuildCircleMbr('a', 'b', 'c', 'd') 1 # rows (not including the header row) 1 # columns BuildCircleMbr('a', 'b', 'c', 'd') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridprimem6.testcase0000664000175000017500000000027512544707704021513 00000000000000SridGetPrimeMeridian() - 32632 :memory: #use in-memory database SELECT SridGetPrimeMeridian(32632) 1 # rows (not including the header row) 1 # columns SridGetPrimeMeridian(32632) Greenwich libspatialite-4.3.0a/test/sql_stmt_tests/dropgeo5.testcase0000664000175000017500000000025712544707704020776 00000000000000DropGeoTable - table (not existing) :memory: #use in-memory database SELECT DropGeoTable('table'); 1 # rows (not including the header row) 1 # columns DropGeoTable('table') 0 libspatialite-4.3.0a/test/sql_stmt_tests/envelope4.testcase0000664000175000017500000000043412544707704021150 00000000000000Envelope - Polygon :memory: #use in-memory database SELECT AsText(Envelope(GeomFromText("POLYGON((0 1, 1 0, 2 1, 1 2, 0 1))"))) 1 # rows (not including the header row) 1 # columns AsText(Envelope(GeomFromText("POLYGON((0 1, 1 0, 2 1, 1 2, 0 1))"))) POLYGON((0 0, 2 0, 2 2, 0 2, 0 0)) libspatialite-4.3.0a/test/sql_stmt_tests/atmisinvert3.testcase0000664000175000017500000000032012544707704021671 00000000000000ATM_IsInvertible() - invertible :memory: #use in-memory database SELECT ATM_IsInvertible(ATM_CreateScale(2,2,2)) 1 # rows (not including the header row) 1 # columns ATM_IsInvertible(ATM_CreateScale(2,2,2)) 1 libspatialite-4.3.0a/test/sql_stmt_tests/casttodouble1.testcase0000664000175000017500000000023712544707704022021 00000000000000CastToDouble() - NULL :memory: #use in-memory database SELECT CastToDouble(NULL) 1 # rows (not including the header row) 1 # columns CastToDouble(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/translate4.testcase0000664000175000017500000000030612544707704021326 00000000000000translate - text input (null) :memory: #use in-memory database SELECT ST_Translate("shift", -1, -3, -4); 1 # rows (not including the header row) 1 # columns ST_Translate("shift", -1, -3, -4) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttomulti11.testcase0000664000175000017500000000052612544707704021763 00000000000000casttosingle - Geometry collection, polygon :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)))"))) POLYGON((4 3, 4 1, 0 3, 4 3)) libspatialite-4.3.0a/test/sql_stmt_tests/asewkb5.testcase0000664000175000017500000000024312544707704020606 00000000000000asewkb - bad blob :memory: #use in-memory database SELECT AsEWKB(zeroblob(40)) 1 # rows (not including the header row) 1 # columns AsEWKB(zeroblob(40)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeline23.testcase0000664000175000017500000000044612544707704021204 00000000000000makeline - GEOMETRYCOLLECTION (error) :memory: #use in-memory database SELECT MakeLine(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(4 1, 2 6))")) 1 # rows (not including the header row) 1 # columns MakeLine(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(4 1, 2 6))")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/locatemeasure18.testcase0000664000175000017500000000067612544707704022261 00000000000000ST_Locate_Between_Measures - Alternate name :memory: #use in-memory database SELECT AsText(ST_LocateBetween(GeomFromText('LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5)'), 2, 3)); 1 # rows (not including the header row) 1 # columns AsText(ST_LocateBetween(GeomFromText('LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5)'), 2, 3)) GEOMETRYCOLLECTION M(POINT M(0 1 2.1), POINT M(5 0 2.5), LINESTRING M(2 1 2.1, 3 0 2.2)) libspatialite-4.3.0a/test/sql_stmt_tests/makepoint-null5.testcase0000664000175000017500000000033212544707704022270 00000000000000makepoint-null5 :memory: #use in-memory database SELECT AsText(MakePoint(-26.0, 42.3150676015829, 4326.0)); 1 # rows (not including the header row) 1 # columns AsText(MakePoint(-26.0, 42.3150676015829, 4326.0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatescale4.testcase0000664000175000017500000000027312544707704022311 00000000000000ATM_CreateScale() - invalid 2st arg :memory: #use in-memory database SELECT ATM_CreateScale(1.0, 'a') 1 # rows (not including the header row) 1 # columns ATM_CreateScale(1.0, 'a') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints22.testcase0000664000175000017500000000066412544707704022637 00000000000000geometry constraints - MULTIPOLYGONZ :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("MULTIPOLYGONZ(((0 0 0, 1 0 0, 1 1 0, 0 0 0)),((0 0 0, -1 0 0, -1 -1 0, 0 0 0)))", 4326), "MULTIPOLYGON", 4326, "XYZ") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("MULTIPOLYGONZ(((0 0 0, 1 0 0, 1 1 0, 0 0 0)),((0 0 0, -1 0 0, -1 -1 0, 0 0 0)))", 4326), "MULTIPOLYGON", 4326, "XYZ") 1 libspatialite-4.3.0a/test/sql_stmt_tests/atmscale11.testcase0000664000175000017500000000031612544707704021201 00000000000000ATM_Scale() - 3rd invalid blob :memory: #use in-memory database SELECT ATM_Scale(zeroblob(5), 1.0, 2.0, 3.0) 1 # rows (not including the header row) 1 # columns ATM_Scale(zeroblob(5), 1.0, 2.0, 3.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collect19.testcase0000664000175000017500000000047112544707704021047 00000000000000collect - PointZM, Point :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTZM(4 5 6 3.2)"), GeomFromText("POINT(1 2)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTZM(4 5 6 3.2)"), GeomFromText("POINT(1 2)"))) MULTIPOINT ZM(4 5 6 3.2, 1 2 0 0) libspatialite-4.3.0a/test/sql_stmt_tests/makearc21.testcase0000664000175000017500000000031712544707704021015 00000000000000makearc21 - TEXT step :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 30, 60, 4326, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 30, 60, 4326, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext5.testcase0000664000175000017500000000043212544707704022052 00000000000000geomfromtext5 :memory: #use in-memory database SELECT AsWkt(GeomFromText("POINT(-71.1043443253471 42.315067601582900)", 4326), 4); 1 # rows (not including the header row) 1 # columns AsWkt(GeomFromText("POINT(-71.1043443253471 42.315067601582900)", 4326), 4) POINT(-71.1043 42.3151)libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr30.testcase0000664000175000017500000000025012544707704021043 00000000000000garsmbr - bad segment number 0 :memory: #use in-memory database SELECT GARSMbr("001AA01") 1 # rows (not including the header row) 1 # columns GARSMbr("001AA01") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepoint-null3.testcase0000664000175000017500000000030212544707704022263 00000000000000makepoint-null3 :memory: #use in-memory database SELECT AsText(MakePoint(26.0, "world", 4326)); 1 # rows (not including the header row) 1 # columns AsText(MakePoint(26.0, "world", 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/todms8.testcase0000664000175000017500000000027312544707704020466 00000000000000todms - BLOB latitude :memory: #use in-memory database SELECT LongLatToDMS(11.5, zeroblob(4)); 1 # rows (not including the header row) 1 # columns LongLatToDMS(11.5, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sanitizeGeometry8.testcase0000664000175000017500000000067712544707704022712 00000000000000Sanitize Geometry - MULTIPOINT ZM :memory: #use in-memory database SELECT AsEWkt(SanitizeGeometry(GeomFromText("MULTIPOINTZM(-75 42 2 0, -70 39 2 0, -70 42 3 0, -70 42 4 0, -75 42 2 0)", 4326))) 1 # rows (not including the header row) 1 # columns AsEWkt(SanitizeGeometry(GeomFromText("MULTIPOINTZM(-75 42 2 0, -70 39 2 0, -70 42 3 0, -70 42 4 0, -75 42 2 0)", 4326))) SRID=4326;MULTIPOINT(-75 42 2 0,-70 39 2 0,-70 42 3 0,-70 42 4 0,-75 42 2 0) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull26.testcase0000664000175000017500000000027712544707704021415 00000000000000ForceAsNull() - TEXT - matching :memory: #use in-memory database SELECT ForceAsNull('alpha', 'ALPHA') 1 # rows (not including the header row) 1 # columns ForceAsNull('alpha', 'ALPHA') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmxroll1.testcase0000664000175000017500000000027112544707704021171 00000000000000ATM_XRoll() - invalid angle :memory: #use in-memory database SELECT ATM_XRoll(ATM_Create(), 'a') 1 # rows (not including the header row) 1 # columns ATM_XRoll(ATM_Create(), 'a') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/pointn15.testcase0000664000175000017500000000035512544707704020726 00000000000000pointN - point input, out of range :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("POINT(136 -35)"), -2)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("POINT(136 -35)"), -2)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/setendpoint4.testcase0000664000175000017500000000027412544707704021671 00000000000000ST_SetEndPoint() - TEXT line :memory: #use in-memory database SELECT ST_SetEndPoint('alpha', NULL) 1 # rows (not including the header row) 1 # columns ST_SetEndPoint('alpha', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext15.testcase0000664000175000017500000000162112544707704022134 00000000000000geomfromtext15 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTION(POINT(8 8), MULTIPOLYGON(((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10))), POINT(7 7), MULTILINESTRING((0 1, 2 3), (4 5, 6 7)), POINT(6 6), MULTIPOINT((0 1), (2 3), (4 5)), POINT(9 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTION(POINT(8 8), MULTIPOLYGON(((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10))), POINT(7 7), MULTILINESTRING((0 1, 2 3), (4 5, 6 7)), POINT(6 6), MULTIPOINT((0 1), (2 3), (4 5)), POINT(9 9))')); GEOMETRYCOLLECTION(POINT(8 8), POINT(7 7), POINT(6 6), POINT(0 1), POINT(2 3), POINT(4 5), POINT(9 9), LINESTRING(0 1, 2 3), LINESTRING(4 5, 6 7), POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))) libspatialite-4.3.0a/test/sql_stmt_tests/casttomultipoint4.testcase0000664000175000017500000000041012544707704022747 00000000000000casttomultipoint - MULTIPOINT - 1 point :memory: #use in-memory database SELECT AsText(CastToMultiPoint(GeomFromText("MULTIPOINT(1 2)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiPoint(GeomFromText("MULTIPOINT(1 2)"))) MULTIPOINT(1 2) libspatialite-4.3.0a/test/sql_stmt_tests/fullnamefrompath3.testcase0000664000175000017500000000026612544707704022701 00000000000000FullFileNameFromPath - DOUBLE :memory: #use in-memory database SELECT FullFileNameFromPath(1.1); 1 # rows (not including the header row) 1 # columns FullFileNameFromPath(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/envintersects7.testcase0000664000175000017500000000037312544707704022234 00000000000000ST_EnvIntersects - no [int coords] :memory: #use in-memory database SELECT ST_EnvIntersects(GeomFromText('POINT(3.5 3.8)'), 2, 2, 3, 3) 1 # rows (not including the header row) 1 # columns ST_EnvIntersects(GeomFromText('POINT(3.5 3.8)'), 2, 2, 3, 3) 0 libspatialite-4.3.0a/test/sql_stmt_tests/minm4.testcase0000664000175000017500000000037112544707704020273 00000000000000MinM - Linestring XYZ :memory: #use in-memory database SELECT ST_MinM(GeomFromText('LINESTRINGZ(1 2 100, 3 4 99, 5 6 101)')); 1 # rows (not including the header row) 1 # columns ST_MinM(GeomFromText('LINESTRINGZ(1 2 100, 3 4 99, 5 6 101)')) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml33.testcase0000664000175000017500000000072612544707704021064 00000000000000FromGML - multipoint, single pointZ, SRID, no namespace :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2,3.2')) 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2,3.2')):0 SRID=3213;MULTIPOINT(1 2 3.2) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe6.testcase0000664000175000017500000000035312544707704023226 00000000000000makecircularstripe6 - BLOB cy :memory: #use in-memory database SELECT MakeCircularStripe(0, zeroblob(4), 100, 90, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, zeroblob(4), 100, 90, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/mbr22.testcase0000664000175000017500000000044112544707704020171 00000000000000MbrOverlaps - Line + Point on :memory: #use in-memory database SELECT MbrOverlaps(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 2)")); 1 # rows (not including the header row) 1 # columns MbrOverlaps(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 2)")) # header 1libspatialite-4.3.0a/test/sql_stmt_tests/sridflipped5.testcase0000664000175000017500000000030612544707704021637 00000000000000SridHasFlippedAxes() - BLOB SRID :memory: #use in-memory database SELECT SridHasFlippedAxes(zeroblob(10)) 1 # rows (not including the header row) 1 # columns SridHasFlippedAxes(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttoxyz4.testcase0000664000175000017500000000033112544707704021377 00000000000000casttoxyz - POINT :memory: #use in-memory database SELECT AsText(CastToXYZ(GeomFromText("POINT(4 3)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYZ(GeomFromText("POINT(4 3)"))) POINT Z(4 3 0) libspatialite-4.3.0a/test/sql_stmt_tests/wkb14.testcase0000664000175000017500000000072012544707704020175 00000000000000Hex Wkb: GeometryCollection XYZ (single line) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(1.2 3.4 100, 5.6 7.8 101))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(1.2 3.4 100, 5.6 7.8 101))", 4326))) 01EF0300000100000001EA03000002000000333333333333F33F3333333333330B40000000000000594066666666666616403333333333331F400000000000405940 libspatialite-4.3.0a/test/sql_stmt_tests/forcenull13.testcase0000664000175000017500000000030412544707704021400 00000000000000ForceAsNull() - BLOB/INTEGER :memory: #use in-memory database SELECT Hex(ForceAsNull(x'0102a1b2', 1)) 1 # rows (not including the header row) 1 # columns Hex(ForceAsNull(x'0102a1b2', 1)) 0102A1B2 libspatialite-4.3.0a/test/sql_stmt_tests/casttoblob1.testcase0000664000175000017500000000023112544707704021457 00000000000000CastToBlob() - NULL :memory: #use in-memory database SELECT CastToBlob(NULL) 1 # rows (not including the header row) 1 # columns CastToBlob(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttoxyzm5.testcase0000664000175000017500000000035012544707704021556 00000000000000casttoxyzm - POINT :memory: #use in-memory database SELECT AsText(CastToXYZM(GeomFromText("POINTZ(4 3 10)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYZM(GeomFromText("POINTZ(4 3 10)"))) POINT ZM(4 3 10 0) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatezroll1.testcase0000664000175000017500000000025112544707704022355 00000000000000ATM_CreateZRoll() - invalid :memory: #use in-memory database SELECT ATM_CreateZRoll('a') 1 # rows (not including the header row) 1 # columns ATM_CreateZRoll('a') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geodesic-len1.testcase0000664000175000017500000000032112544707704021661 00000000000000geodesic length polygon :memory: SELECT GeodesicLength(GeomFromText("POLYGON((0 0, 1 0, 0 0, 0 0))", 4326)); 1 # rows 1 # column GeodesicLength(GeomFromText("POLYGON((0 0, 1 0, 0 0, 0 0))", 4326)) 222638.98:9 libspatialite-4.3.0a/test/sql_stmt_tests/asgeojson8.testcase0000664000175000017500000000043412544707704021327 00000000000000asgeojson - bad args (3 arg, out of range option 0) :memory: #use in-memory database SELECT asgeojson(GeomFromText("Point(1 2)", 4326), 4, 0); 1 # rows (not including the header row) 1 # columns asgeojson(GeomFromText("Point(1 2)", 4326), 4, 0) {"type":"Point","coordinates":[1,2]}:0 libspatialite-4.3.0a/test/sql_stmt_tests/atmxroll2.testcase0000664000175000017500000000073312544707704021175 00000000000000ATM_XRoll() - valid int :memory: #use in-memory database SELECT Hex(ATM_XRoll(ATM_Create(), 15)) 1 # rows (not including the header row) 1 # columns Hex(ATM_XRoll(ATM_Create(), 15)) 0001000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A15BF4847DDE8EE3F3A900693C17D90D0BF3A00000000000000003A00000000000000003A900693C17D90D03F3A15BF4847DDE8EE3F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/ewkb8.testcase0000664000175000017500000000144412544707704020271 00000000000000EWkb: Polygon XYZ :memory: #use in-memory database SELECT AsText(GeomFromEWkb('01030000A0E610000002000000050000000000000000002440000000000000244000000000000059400000000000002E40000000000000244000000000004059400000000000002E400000000000002E40000000000080594000000000000024400000000000002E400000000000C05940000000000000244000000000000024400000000000005940050000000000000000002840000000000000284000000000000059400000000000002A40000000000000284000000000004059400000000000002A400000000000002A40000000000080594000000000000028400000000000002A400000000000C05940000000000000284000000000000028400000000000005940')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom POLYGON Z((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (12 12 100, 13 12 101, 13 13 102, 12 13 103, 12 12 100)) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint18.testcase0000664000175000017500000000054512544707704021225 00000000000000ST_AddPoint() - not a point :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), 1) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/m_km.testcase0000664000175000017500000000022212544707704020165 00000000000000metres to kilometres :memory: #use in-memory database SELECT CvtToKm(2100); 1 # rows (not including the header row) 1 # columns CvtToKm(2100); 2.1libspatialite-4.3.0a/test/sql_stmt_tests/La_folla_durante_il_Palio.jpg0000664000175000017500000037650012544707704023271 00000000000000ÿØÿàJFIFHHÿáøExifII*ntz‚(i‡ŠNokia6630HHš‚˜‚ 'ˆ0220¨¼‘’ Ð’Ø’ ’ ’à 0100   À¤¤¤¤è¤¤ ¤= 2007:07:02 19:27:292007:07:02 19:27:29ñ"èPd- ddÿÛC   (1#%(:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egcÿÛC//cB8BccccccccccccccccccccccccccccccccccccccccccccccccccÿÀÀ"ÿÄÿÄE!1A"Qa2q#‘3BR¡±Á$4brÑáC‚’Sð%Dc¢ñTs“£ÿÄÿÄ.!1AQaq"2BRð#‘¡±áñÿÚ ?÷òI$’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$.~GùÀ]pPI8†¸â²~ßç9Ú²6óÖV)½©õÛÓÖ'¨ÔºØÈ0y›¤úÁùŠë?âíã¼ÓPåz™$’bi$’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I2Nyp%É*Hä•$ rI$ $’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I Ôÿ¿üï9ºÃè3£©æœvÈÏï9ú¾TÊŲuP穵ÿz´’1™k•ǯ´»Yk¿õâh$µèä’IŠÒI$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’Hm¨½µ¸r»3‘ï .Hí%I$¦8EárLäÍ)W$©pRI$ $’@$’I’I$I$ $’@$’I©$@—$’@ÒI$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I T¹P ^3Cý³9Ïêäô+?†ßc9eò‹Ž›DrúFAÚFÞ_8XK\tÌ]¬QÞ\8ôòI$ÍI$’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’J€\©'3Æm²³H­ˆ »?ÚV8ù]&Ý:r³Ìóu꯯„±€ö=¸ Öyw g´ùWJ*mKµB­¡¶‚IÏH=v¦Äa]j=\d™Ê®û)´²0˜êr-Û¼ŠUX`uãžÓHqÕqöær¿ÚÖÁDûƒ§Ä)(»Ùƒc‘‰>4{=$å¶BÚÊjÊ+Þ¯Î&›Y§mZZ,;v8ÂÎÏÉÓ’)¥ÔVwnq’s“ÜFä\trírJ—’I$€I$’$’H’I T¹P +pÉäK‰j*½.kk%Ѻ¯q+/e£Ò¦kmõ«ÔMI5É$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I*¹PVjh«ëµG똥Þ*Š?*¶sî}"=P?ˆjM£wn¤mQîLྯ ž­U¶êmó/l‘ô¨è±kæ\’vŒ¹K5 z@—v<™²œÉå㼩a=¬’I1j’I$I$ $’@$’I’I$I$ $’@$’I’I$I$ $’@$’I’I$I$¨œÔ¯ôÈ:NÞ¦´¶‡KŽNg™ª(Þk†¦6¢óU¼ç‘ ^  ÛÎ>ñvsí3¼yŸGÛ¡ªÕ’Ð2F1RÁØ’zÁnIaiI¡6¯¼b»@ŽJ Dð3Ö^@çûÂ7–+ÉlàÆrp0 ?4·Hù0›@å–ÊFô{E}·54­…œ“œæsw“ÖE{U©B'wLâV9^ŠÇWW©ÖW«5Óµ—nìi•ñœšFëÿÄOU­oÇZÕðØÛeÏ^eܱ×0±Û¹OŠTí‡_ë˜åv%«¹Fq™æTŒõž‹B1£¯œñ™xÙ¹7½ ÌK1À?Œ¤Õ½\‰ŸçCgéþs„€ë f:ÝÝê=%n‡ ŽÓSÎÐ[x!OÂw‰c¦Ê’owÄ.3Õ=ßbI8 ®Ô•Böž™#5x•€úÎÿÓü²òý:òD¬×©[Z“±¸Îf/ñ5¤VMLwŒòqˆO‹*<£¡$ :Š®PkpsÛ¼,‹,í[@é.T¸‚I$4’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$•2K”ÔH7$©p4’I I$€I$’$’H’T÷¦ž½Ï߀R`BÊœçñÇò¯÷"-f¹›‚ìÃö—0O“°î¨2ì ëjF[ûN1½¿—‰1›©†¡n»\½Çí šÊùÀ?%ì³?ù•±¦9ö˜!‰†!‡i‚ÞàÂZV #¸°=eKâ1¥‚i5Ö-u¢>ЃþñM£Þ^ÜwŽgq+Œ§uû/«acò"»ˆ=f6žÒŽasØñu¼3SUYónGYÔ:Švóo~g–㤽Øí+e«éÑñ7¥š)ƒmR;t‹TË»¬|Ë·%àùöôÖoðï-0IA‰ÈÔÖ騥uMÉ^£œs%zÛÑB¥¥TvÀ3Ü÷:½–*08Iu;E”[‘×T9Px Èb3Æ:N^âìNy3¥á€ï9þ˜¼®µµiÒ’T¹šÒI$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’H’I I$€I$’$’T rJ’rJ˜ªÅµ7&qò ’I i$’ $© dð K’/n·MW×r·?å¤VgÎ0%L2¾†ã£*s“ÅKù—ÿÄšûÛé!ÀÌ~v[t5w¦ž’Îy<(÷3 ­¥Pob§þ’g&÷6ØÛsŽ2üਹïÄ?Énº¯¨.Ssþ˜ÿ9†×9úi«DKó'™çÐäÃêu£æã#€KÑÚÀOVüÄüÍÕ«tÈ™ªÜX£Ú9•¥^€ŒÉÓjÈ뎱àr÷“f•.×$©‹­Zjk€f#HuÜ™VÇ öˆë|ZºÏ•¦`öt-Ùï-ÍmÔ’q“Æ,UÃTû†ÄËøÅì="|““/ñØ<£µ2ö%c.ÁGÉÄóökµ}w¶=”,¬sŒŸsŒû/'rïÓÖ?/6·°¼ä[¨¶ëM·6Xô¢a02D­¦z-Ú½Ù“í,.&ÂŒ: Ãa™µ3©vèqöŒéز’Ç<ÂÊ[l³÷•™3$Ów9Ê7¾ ¢LÎì#ãØÆíæ7£l±ûDÀÜNÞ‘­ N;uš^‹GQ™{€˜ë*flÚIɈ|ØûL9Ε)X¯I©g…ÁoÃ+9$;Ãüó21oé¤Ç‡°’T¹©IslñÝËŸ…0?ýAIéYý[é9þ)¤ü.´ùjoÈéÄP†?È¿¼é³ãÇÓ)r¾Ý£ãëÚ‘ÿû?ñ2|x“ÅH£åó8Þ^zÖ§õ•å®9¨}¤ù|üOU×o½þ‚‰öÁ„¯ÆF,@ÿ âpö/ô~Ò¶Èß´<ñ¾†¯ÛÓÕãwxd?lâ3V²‹Ž+´íÒy-}ŸöšZ<3Ò/ÿýúg$äøB]Zï6«;vŸói•“|UÄ—*\F’I$I$ $’@$’I’I$I$ *I O?þ øÊ00NKETfÆ-ø‰Lc÷·¦iòõ‡¶w)÷?ÄP¬¼œ"ÜM*/'¦'>Ö T+Ð`‰d NOoxWŒff¡ó ˜~X«•<{K,ýò{ûM¸s3X Iÿ´- î±[ß2=…x&jÁ¸q"(^O1oÙ²¶’pË´Ëk~¯ò’åàÔt—ZÿPæ> JQlj~]dtfÅ r¢AX³;»@m<>Ò ôÎ&€ñü¾ÒfåX€;äØò›±ýålqíûÃgQÉ™Ü碂>aÈ Õ5œv›ê:`ÊGU8Œ”wöšÊÈ›žÒ¿,’ˆÙIã¤ÐLô2Åj=Ľ¿1ìªle/ Èr í9¢¶Ï :^‘oé4Á9:råKˆÒI$¤’I’I$I$ $’@$’I’I$I$ $’@$’¢zaB 7¾c˜ÚVè䓘úÍKt]Ÿn`M×íÆû¿2¼$î§ÉÙ’p«Þ¶ f>ç¬5—³([Þ?}Qå]y'ŸtÞIÁí%uè¿Ú?>ÆëÐI9têZ“† ´¶ÕÚ_5±Qí‰>3}'N\R_[œÿV#]D›Š—k’T¸$’H’I I$€I$’$’H’I I$€I$’$’H•.HN‰]oûBÚͰc žœNüóÖó|Fë•'ûã‰Xåq»‰­Ð°1™ØÓê×hWà†qj '§Þê±Ë ^w.ùONÖ®õ§JÖg9\w&gBàÓ·¸ž~Í}dð¤Ì/‰^ŸÁôq*a/uë$$’p>g”>!â6õÔ¸ £ý Z¢ç6ÇäÃñã;É[¿OOw‰i(8²õϲ‚Ê#w(8ÓÐ_åŽÙÈZÕGa,Ú‹Þ/ñ:›.M[âzû˜âÁRžÈ¬+ÜÙ¹ÚÂz–0~xϤgï¯Ô¼Âü™N¸UÓUIÀ=¡\8ƒUÃMZÜLí·ÙÆ7 Ëßï`pf‰ÄT-›8”Ù*¢a°=„Á¸)å†>#…i½ÿ2™×iûD[Vƒé?0m¬cÀãí-žG;'¢ô–÷¯ ð6‰Ëk‡S(12¼IÓ]MuØ]s“í¯Æ¬¬´7¶{N6㉥礩dì¹vG\NŒ}÷cûDµzÛõ¬<æÂ)È­zæ)»fÆ;±³Ô=ÑÉ ÔfiFzEÔÆ«\ÉË+ìDÇfCf¸SYõ|ÉÙ²Ìrf• \úÞi ¢8™ qÅGòææAµ4œúÁ±8‘l Ÿx9Q‹6â7¦à:ž¢`!9ÁÆa’½¤à–'¹ŽÑâ(ÇA/8”wYÆ" žDÁà;¨ÓÀáe­D:¯Aí9†¯¡Ïh×—MæI¬àJ‹lØ L“Ž“GƒÌ—¥kÆã0—ç¼ÈÀÙ«Ç$ªÿx»kW<37é•^zz…ñ`º›T£5y#í%¤?ú¿ÿ)ÿ´ñ£W¨?O†³P9Éý¦×-g.Qí?Ú\gÍÿùL¯ö–“ÿ»ÿòŸûOøë½ó'â¯b9Ä^?ì÷“·ãZšuF£KnÙœœc¬FË–šòÃ0TæÎ[Û˜^YÀìFv[$ètŸí'øH÷Q¨®ïIPÛ´äóž!)$8 àæMåu¿-A,Yµõ©ÅuûœAëØŠ±ýDf(ROc+ôêÕ¨®îTû°XY€g- tAfEoæÆLœ¦ŽW ÐdésW§íí­· ÏQÁæ#ádµLÓ‚>#È»rO¹#Úg†×Z—*I¡.IR@.I$¤’I’I$I$ $© I$Zí~šžÁŸ`3»Ç%i¯9èÄôý&˜üY^t›”'ãGˆØÊrÇÁûq¨æ°}æYFönæ]ÀLûEòÙèa>ÆS´æ~`D¾& JàtâP”A’KÈ’gï&`m ±Œcˆ0q!=à`%À>â`1$äÍ~°À0é,tϼ‚C¢¹šQÁâAÌ£ †Jî3jp g •(ÂТî°€:LŒÍÄ<ŒŽ¢AJã ‘“)²ì´Á9P™õ$ kÆÈœ·3l3Ƴdl/ bl;ºâs«Êó:^™·vz ¦6:RåK¤’II$’$’H’I I$€I$’$’H’I T¹ ½üº™¿H+¸Ú9¬Ötë.¤£Êê"öÛq/ F=æÁÇÄ™ ¥TèÞ[W„âaX)É¡ÔK.IR™•Y‚“ˆh5*)g‰èê8{Æ~?å·ÇhQù5½§çÓ.|YßE¸êÁÙ}U}n¢yÍG‰êõ$‚µþ…ÿSüÃÕŒ¯ qÿµ¾ž•üOJ¿ú™?c»Æ”°=ó™Å5×?¬¯$c¤7„ê S¶xø*lfSÛEl×XxD}àE$1㉽ 6xë&ç/¢’°Ï¨³êci‘Fy?Þ:SØÄ¼Æ6ž3 •½¤l"¨äÞ_™Pèrbš“¶Ò1ÄÅdîè­t«°1Àƒ¹Ùl+ž“:cÌΨÿ½˜½—¤ÔV§Þ-»˜}GðWß1~ò¡SõYÔ§'%+:t“åó#5bÓÚªØ'j©Xæ ZÊæ kÈc §Z«ôˆ&ÖXO@•Ú%0Ânò¸N«mmÕŒŠ¥X5$Æôëñ låÚV0q*qÌ[˜ßx¦UZ ˜†#Úi93WV 3wÏYUãÞ2ѤMÈ% ʾ=áªÆÀeYõ {HÝÿœÃ*¡r'Ú.Ùód¶Æ®ÍÈqéë. Ûíƒ5O5æs«bÌKd’gF’Eýá‹qé9ŠÔ}XùrljšÁbÿ8“)öUÆlo¼ƒ!±ƒúM€ ÉïÓ*”>ù‡–Žã évÛ‚¸ð â]©“ÖPP;E²^ ˜qÞ ‹í ˆÎaëé»}¦ƒ"ÿ0æ ¶Q~Ò1(5 A¹_æ#÷šcÇX†¨‘¹‡$BrF¼ÚWçì&R ƒ÷3ŽuŸæÇÚNÄÚ¥²Nz™~:-»`úFzã™9ÄsûÍç‰@5$ì#âr–tïoKsž å©ÇY¦4UZƒŒÀãëd.šMõŸö†ËNŸáPŒ€Ú`锞De[&\däLô­•ü"ƒ³_„¯np?XØéÏVÖ×$Žq fÆÊ¨ c(è nRÏÇô˜@æÖ/·nGI’v±fì#“T^œñ‘ÄÝc‘ß™g Ùæë0Ê÷•‘b.¸’©ˆÖ¯“_Ú qñ“"U^Ù¬ô º~vi‚.U¹is&òqèü8MDg/X'ôÿúÇzÎ/‡jü¿,?Ð+3²¬C)È# ÉÂYlß œÿÔ°Íu¹R½q×Þ5«»ðúg·Ûóž}õ–`“Œ’}çOÇ5<«,îøWâõÛ‰¯PàŽÇ¿ñ ¿Š«`ùÿ(µW Àw1¶a³ž¸âå¾ä ¿â8³JAøüC'éÖý9œ{‡=‘—3»&Á…îzǼ5Î%-zdñ]ŸMãõR#5Û]ƒ5º·ØæyQJŸ«ŸˆJÕ‚«ŒI¿Žõµn½NqÖ/f¿M[íkF~3ªÔÎsŽ¥Á#=:G1ÃÝʽcxžœ}%›ì¦-oŒÎÊsòLóêna¸XD³eáwo8†ðA»öê[⺗úNÀ{`E­Ö;ä1-òb)k9äÍŽòoÍgG1m›æe_ž& ù”§Ô$\î]ªC@äʤþR‰KÞJ9¥~Ò)Á3,+Á“'F âMµ”çp㤯5G_Þ7ØÙ‘ƒ0ÃÚ ž£÷‡_PÈÁýdè …¾&±Ï2öŽÐ .}¦±($ ¾D™—ÔJÛ˜óí(ÊXù€Veçâ_±˜‰r󙌜âX'Ú3mdlÊhõæÎ$Þ[,Á€L‰Öðߥ¾ÓŠ3;>ô7Úm‡U9’I i$’@$’I’I$I$¨’IÊñ¥ݧ¬óõ%c7y+O[­ÓÒqe ŸòˆŸ㚉¯±Ï1qR àbcË͑į/ŽzÙjßn’ø¾ŒŽle>Å *x†‘þ›—õâqÿ°Vi—·XL¾+ö,ÉéÄ¥ƒ}Žf§ŽÎËvcÞt*¿[B#%„«Œá¹Ã Õ)kÐËœAã:¤úô¨ÃáÈÿI0:Oÿéÿˆ~,¿ûOn†¸¡OFˆ ˆ¾)f¢Íì6Ñ}¦¬ç†ýäe…³ÌpxšV$5'¾ÓúÍ®£žFyë0ǃ/^ÒšÀzÒ-Tëçù¿Ò#Þ/GFûÃdØÁé' ã´Èpxd§Q:œÖ?YÎW ŒÎ?Gêe΄ìI%K’´’I I$€I$•“6Ø”ÖÖXÁUy$ÍAßEzŠW.ä=£šöEÅô‹ô³?ÙL^Ïê*Ó“òZ-f…ô–ì;«?Cûü˜3Pü°BÕûdëõ!‹†ÚÇ©š'®~ÿ×bÿÚ`ìH˜QXÆïíùmôVO¶ÞíU£jlaíÀÿ(/é9q¸üÍ B“…£‘˜¯ËòIB(è1!QÚcSc&0q˜»ØÆ¢wûÈÿYsh·Fv*œ’?y<Úׯ3–l'©&³•ýcðû/#¯©P3ˆ'Ô¥€ƒ³èæa¹©¡$=¨ëlnÀ~³zwkm]Äžb#¤kF1~âUÖ‘¾]{‡&r—ø¬>gZÖlærS›Ÿ?Õ#ÖuÅ0h¤ Øàc·èmµšÕÆÑó5§±WLÀ­yã¼²N[w¤I«ÿŠ&^HÈ0·éÚÍC0éù‚¸f„ûÁ ;±SŸKr'A*"l P’|ŽG5k`À`äN•Y(%…ÉÉX¼Vìä-©¯Ú.«ëéÔ€6ñ_ª¨w€ë0Ã4ÿî›Ô𿬯ÿoŸù„¬z*С‚ÍÔsÒoIÈÏÄÍ–,¯¼Þ“¿ÀŽä s?Æ?xÞIã ´¶ Y€ÎG2f”»´è(¾ÖcélUÅU0þq˜[]¬G¬ŸC‘§¢¶¬PBôÜ¡øØ¤â¡Ä¬eÀÏ0ȎíÒÕ‹²¨úgk7gÐoõ 1këUž„BëÀ°œuç˜sO'g´ˆœúG!l8^­Ô€ˆzn²ÌïbcñöV͘Tòy›õÀ|“ì n?–ÙŠÐ3ûBIS½#^ªH${ˆDÖ>0 /Ìê²Ñìs“Àë.j•Î×N›¬°¶L8>ñm àý¡É3;ÙÆËª.I+f¤–8l(î µ§(8èbëÓô1É; ¾µBÏ÷âJî.Ù&FÖ?|ÃÐrzJá;uêrW$“ÄZ’6ãŽ!“s£2£½N:HÖÕ*1â'¨ƒ ¾Ër ´™,Ó8²ôkQsÄ©‰Zä8õqÐCérìzv‘tî+õuÇ ÈŠkIëÎ=¥ÂtRôn§[[Ãl9+Ú ®˜çƒñšŸ(’«»>ððTÝ=RP4ÖÝhÃÂ}ç9=cWkm²³Y éÓ\ôÚ.!XÝJÍ€½ck¤¹ljžÂ¹LŸˆµz¯ÂØ C,§ŒŽ ¨ºË]ìrKcÔ§1§M÷1ÎìÈ×ê@Dçù_ÿÌý¥ùgÿîúdnŽy—Âe¸p,?¼WÊb?âö–+°ûƒúˆZ+`9Ü2e±O'$À2XF ÙØ“mݬäÀr>IÁlÒW›ÎM};ƒ£úþ²ÿ<JV÷EØ0ÎFTñîeUg#r¨PsÖ=ßý”ÿå&ë0?$qó£n¦¦C³–ÎpDXXÖ „Uaטµó!¾ñ…ßä—5•ýäžÄ®ò‰°ZŒÚuwÖAF(~ îã§ùËê@2ñÎáÑY±_]ª´²Çe#¹àÀï畚àÌQ_-˱$‚¥Àr?¼iu‹µAã·1€3™ Œrdn¡}Õ1;Ç&ËvíèFÖç¬Ç¿1…° ¡ GoБtØ;‰-ÜÂyª{Ĭrí‘Ç$V`ÏH´ Y` ócÉûÂ~fIøþÐ=ÓŸÊö–y¤ý¢AˆŽ’$`æ9bUGxbÜA: J,ÙêdÙº½‰Ó™u¸ß–É‚É'<ŒÃCn¢²°8íÖM6MKö‹PûTÿQëÒ1.;‰9ECp ØgŽ“dñÝ:ȆãÝüg³Ö)qˆ³Ž¼â÷ÿª'pÍÏ÷›Æv §fó'¨ïva«pŒ£ûEl×j*ᘰûÀegëSûJðO’íËjw(âv”éhÂs9 vº>aT¯ò\D,Ü)u]LÉñ wòØîeù÷/Tõ‘â¿!¥cÒÝ"c‰GRÄÿË:¤<Òè÷ >s ?IÄa´×! 90h§ñ àŒ1ÏYÐÞÉÈÁù•–V'ãP²‹ÛRgõ ÚOWŒ"š†Oåa ºÞ9cúˆrŠ{L=IŽTü÷Ùx­5Jz˜t½?ªrW›™008tjሕ¸™ºpÜNOiÙÓ¿™HiæÅ ½Î׆yc•ë.jãÁkTô¹Rä-$’H’I I$€I$’¾¹š;Aì¹ý¹žcRçÍ^{OU©ÿ…»þƒþSÉjOæ)ÿ–9Ù^‚ÔœV¿'¬]HÏHmO5'Þ,¡³*"œ¨ú„èÖC'NœNeX0p¢FKÄ—ˆÇ\À747é â!~ð\š<‰S¢½•„¬ú‰^ç*Ü`K À(+õiЖŸÊ_¼ÇZÌ%•³T¯3;6'¬`•ªG½8ŒèϬ`wˆ´¨Úã+žG¼ÞжFïÀöÛÀð±Ñ¸͈¢i°±=NcާvGIc3—èõµ'¥Hääba*TU0™¿X[OKU 1!À•(’=¢d‰œ‰Pµ™[²¼Žs/9O*_VHþÐ+“ƒ ¬à¬Ç:*«kk ï2ÈR½Üæ0Ž‹õEµ7&r Àã8‘5íºP;€Ã91ÃPTÂ>Ó–š­¬0;ÆjÕÙk`œˆüh¶z2ª3ÌÝ– _¨@¶yöˆVžÙí 6Vé¶¹'¯´"kjB'^æ/®5{jCp%ÉrµÔªç± 7i›XïIZ_áœv•iõ¼r©ÑU?œxǪo\69ø<þ°J9³ïÌ/ˆóFœý墀®¬{EÉ#=§5:Çô„ç"t ÷r‡íÓõ«²PðqƒÓDœ'’kßËÔYßp/I$àûFuÔX÷›vŸ/˜(¦d;Ëš‰Ñí#88ŠèHR}Ìxô™åÚ㟭ÈPOc™"Ä9§çp€¨ó*tT @“ïˆ}aÜp3±´ÞBþZ3|÷‹ì<ÄyÆ©ûÙà*ªÜ³ƒÖ4ž/E[£2¸ätæqpy8&T¾øÎ·‰º’(@ŠNO=`îÖݨbÄíÏâ™ù”OÌVîj„ÂEŒ2x3$Ìnö$ò1JЙ™ƒ‘0IÏ-ˆû=é¢Nc46SÚ&\g$Æ4ç*Ø÷“YewÐVqi‡XgÓÙe™Uãµèòì-ÅoÊþÑý$Ú¿ý³#½ÀúXÒAuÀrÆG ôÚ"çøg?i–ZóôÚn»ìÁâ¦@9ˆ„·³´±çŽ–0†Â%“Áˆ‹5#9°Ÿ¼¿:ñÔƒ„8A“˜§ânÇ*¤H5Ž:Ö¿Þ/{9Æ%EF½¿û2Æ´2¬-ÃâS¯¥±Úk)îX~“_‹ÓÿSý±Íýãhߘ8äÇ*,€.pGNyº–égÛˆÖ–Ì’n†]=ß‘ÌËòlÛ0ßËÐÆjzÊú†fJpnÿˆqÓÕ)è pPIÜÂvmÓPÏ•L{ÉeUŠ)aZ†äÞ]ù5Á㇑ 4ÃNþ]d$3Æ1ØA7:¦?óNŠéiÔ;$)9ù€H³w'ñÒ9ÑeñÙN¨!Ús|K—IÑ bš­3ZT¯i8Ù±zKá^GXº_'Um8#I3¯¢V¦­ÛÒz{DµêoÔµ¬¡ËwÎ&»Ÿbaop;‰Å™ÑÒœiÖ!}V«"²ê9Çhþœ~@ÈÆ;Ló³E&©?9tÏ´BüáOÄ{^0뎦 Ô, †cž‘ãK"•PëÖ?ñ¢ºE›¦8‡»øª~%_ÙGZ¾k_´°â£ YÅiö€ÖŸÉ&e;]slþí_-ÖòkéÜMצʆƒŽr;Í·¤hÕŸð´Óþ±Ý)͙ϴãI§íéÿXî˜þBÈË¥{5Œu3£áw(°¡ d`}ç,‰‡bÞY½S±ëeOþÖ×Q„]KPÌM×wÔ7ÿÿ´ßðï™”E®÷Žäx]„>Üc#ß‘ÄáàX@‹jbÎkJ'{3åbQO‰¿32É'ï9·WÀÇé—äè# r:bCžCP©Ò¡ L~c‘ûÉ8iyâTÏ9ìjm8òW_¯ŽÆ4ÜÁ€f/+{-Aó40DAYásŒÅ­žÃÕWüÃõŠ3‡^F`¡íËDDÖiŸ(G° ¨˲Ô_¥ˆšóoÎL‚ÚÛ£i½¥Ûö\"ë.}ScYŸ®°`ü²%1p4/âioª¬MÓžWÓÛ2V>ô9ú-þðî_æõœÐ€Í.áô±u£çX:§ìdm@#•1e«ÑÌÐ¾Îø0ñƒu´ï ý™ö´˜Ǽç‹óõV?y¡uG‚ÇcztQÆî³µ¡ ÐH÷ÄóÙP?Q¤îøMèCV,ž@ŽaÀòtä•$•.I%@.H½º¤­Ê ³Ž v‹Y­sÓ*>exý–Ý s—]ç–Fn¼æuà`:îDÑvñ%èŠI÷<@ßχñ×pŠÌ©Ž)¶Ÿüe‡:TÕc“8‹Œ(ÜNΜ ²Ñâ°ð¿x<Ãê‡N{ÅúIP}KÌ»T~ Ãò&5,°“¢qöæZi1ÁŽiy´{E6’Þñ7Ö;sÌ«Ñ:OÔ‰ÏOã±ù¸'žÆsÓˆqó#^šñ<kÇô ÅêÆOÚt5Ôve2Jƒ˜«€3êìeÊÒ1Ù‰.ê>òh¸R1/QÉQŸæ=«ÑCÅÎOõBj?Þ¤VÃ.XA¤f¹²@§OMáZVQk‚Ç1ܤ-8©NÄ.y8Æ#:ep@çÓ©ªÓÓU^ŠÕyLÒO–çGãæk®q‘ˆ .Õ|Cf“Ì%³¢±Ðü5viÑeO¨ñÖ)¬ÓСI@~ñêÜ +Éx‡‰ejq¿p2yÙÂê~Ù‹aüÂ?ÚO.Ôv@C(é˜|`JoM¤g¤.u®K6SU]¾•eäsÇHm0aHc»±‰—µJöÌ~VÄYªq0ç3@Žðv3ˆIÉPJj’F;ó«K]‹ŸòœÎ7n`L2ê¿ 2ý¦šgvu´Uû‘jÖ§Çï3øËØ`ZÀ|ˆ3¹Îç;¼zfRӞЂâ‰€1‰EzbF”éóÖWš>g?t&MÎ:;CÄlá´nã?´²ñ"ïÝ̯6ÞÎhxìléa2A䎃¬WÎ·Þ ®´àõ£ÇµÐQ‘“ÐÍ;AQ¨²Vûkã®f]€Á qzÂãFÆí+¬¥läwf†0$ÕMbðg5ú‘:Ž8œÀÛmb@8=#Ä©A[åàFk8A©ª½Õ í-u&‹Èæiåo:†*@eºàMé°jš´§í2ß+sÞÒ ‰„¿wTþóA úGy•Ó”³zfiÂyvŸq åñBÓî#ÀeGÚM¹\{Lð=¿yz±„ýbLØ=q›ƒ˜Ì˜‹Öíï­‹õav’Ãc§eD­™è#Ç;.à¸ìޗĵT°âËý-ÈžŸOp¾•°wØÏI­ëÏG]Âvô®õèª)c!QÁí/,ñÊsØ’Ç|ð2bwø–žŸJ¶÷þ‘ÿyËv Ëå¹0^Yg £âOùƒ‘ƒœ’ÌY˜ä˜Ï–Û.£#¹—C ô––#¡ï9®Ræ¯ÌbH\Hç*}ó#ÒÁ½@5f­\g¾bõ¦•jwóT¬ç :†ÊœvéÝ/㬚ڳùŽ?iVê´l99ÿÛ9CV2ï€:ñ•ò‹c^Ë;”õM‹.zKeIëiEø04¶åÎIÌ&;ÉË+iÂW«IÉ]Vg§ïãÚVìCʯÊé°X(ûM{Ìê?y¹)Ú'E'$Lj®¦æ$r:EmÖ[Ø©œvÌ©¥³a°YrÄnìËMMιg$ç¿/'[ÌŠžÝæZÔLú„Fæ'E»<îsKý±6}µ´¯WçâauuØÞŒž@é8 Œ´oHyýD¿"|«´Ëêç´äø«?ë« œBq«³þ©«)Âõüj‡ý0*ÜŒ ¯æõÏeEÉ̸škGüQ7âÆNó?ãs5âÅAù9Ó6øï‘Ï1â´D*–9A&ŽÇV Ààƒ èka¯!LìiŽhS9MKTè„díÉÇ3­¦Sä"Êî Ø:£±€Á‡Õ!P:˜2¨­ùVPO&?¢Ó Vë'˜Ã-Ì¥› ©+W“޲¼µ®\ƒ¥TÖ0e&°20 hRnÜÆxâzMF§ÀLã£aF:bLÎÓЬsÄZ-Ö–gÆã4Ä2g=a»êôU2+6[Ž„Eu”ÕUˆVµã[ê®…ÞØâ%ªµ.+å’@ë‘'ì~‹ñŽŸYÿ¬CmÚ"ìIýÂ\# Ó§¦p4À2¼ågÚMÍíäÖºX…å»DU   rf·{̳g¤SƒPúÌ26 ²Hš6Ö?˜´d+áºò=Œ´eQÀÇÚ þ!§ 1ø?í<¯ÜÊÕ¥ltÉÉ”Ã+‰ÎÛM›xãƒvŽ{Ee‚]¶§o™†0fUCFqv¡«´Vª9UYÏ”û™d`aB¨Šë®»OUN|ÂG=¢ÕÛe‡ÖrA†¶6{ÊflîÈ„òŽ“tÈCŽÓqP–àDµ5vª¯qÌèã#¤çêë=X!8â/LjmztÂÀûy‹-ÖXÞ¦ãÛFµCÌÒ €õï™6–n%K¢¸Óš,ydüÆf)¨R˜ OÞlÉ·b'x;Ï àf¬¦\9®´19陀ݰ~ =™-ÐLcÊÛ%yüÖœ`7=¦EG°X)€;FmJ@&šÊñÆ{ÊíìM ÍÀÉm¤‘ÖrtÇiÙ ™eÚà6à/qÜþk}çr×Àéχg77ÞÄ ©\}9ïMúµqƒŸ‰Ò½T×^@8ô™tV‰Ê.Öø\·š¦_OY$íSf|Ìã¶eù„ŸSD£i‚D…â YûCi<1¬ÛmަR…ºö‡¿H–Y½‰&7¦­WHõýKŒ}æž\Æíæ_D”Ù³{•^7c¬7dè'sðªêm%o‡³Á”|CÏ}ÃBUÎyí/NŸ”¤JÁª•CËÖM6M+Ïi4ýŒx*û«ç¯C7ŒˆJۃѹ‘!¾ÛæTr0xÄÃ굕±;Ÿaúr%ÞÞØ‘ÀngP_KW@u©\{M½t9©­Ô‘“Êä îºÏ4¡h8ÙN‡MIMÛ˜ûŽó”眄G¯Ðv× 0Wê×N2Ã#¤*ý#>ÓŸâXØ{ÌdÝåT_ö[r´µñ;9ýDF½0·OcƒêCÀ÷€ZÜ!ržŸy¥Ç–»‰©¤‘—ÆFG¡Á]Àðg °6}§KNÇÈEÄœ¤Í­ŠG$sï!»fs¼@íàüNuú‹“,e?ŸËÙyiè6 òŸÚh æêñ ^qø‡#ØÎ€ÔÚ6å‰8ç>ñß^ÄËn¡Á“Y%“É7XkBÊ3‰ž¹Ò›rÝŒ¯>ÑõTó˜‹xŽÕÜèø2×Å´ÄòIWã¿B|šàîæ°å—oÄ¢°C[K(*[ÜB+‹r™:¸»B3ÞÓÌ ˆHé¥Iy–B±À›üEÀ} Í%^§ã¡›Z̽¢@¿ýê¤ÐÕ¯z±5å±é0tížyÊ 7øªUa,ji?ÌÃî ÿ}¤ü1îƒ÷†ñ=Q¼ú¿«ûMnCüâ/øLôBÄ×àÆÞA†ñ-Qò;0ýäíûÅ3õÚ_áXtr?H¸û¦vJØ"Æ»—¥‡õ“:‘üßÞ9'Øäg¨8é˜0­[erèD¡n p@2E£­`þ±Ëû«±Éå‰cÔÇkúFz÷œ„Ô6îRtôîYåÄœáâ; ‰Ï·IÉ;±: ÌX2²%×JÓ’+(Ç ™±K‘‘“÷2ë1ÊÌ«•‹¸c"ô«ù##jÕôŸ´(˜n‘´8ÂÆ­˜©#]e€î=³œGš„þ‘t럧c4óá:*í:(}#ŽÐKœm$b0£ zI·g!]gðÿQ&—OMõ>æÈùZ´g¬…1?Ã[‘”â\Õœ‹9´È‹¹[笚oUœÁ5{@œ‰½.|ÑÄw¢=´dÊ#“/ÐÌ” _É,Çr.81¡­­QÕ„¢HÑÒk潤çûF¡Ò²~ó-âdý5Er}ådÿQ¢2|Jß)Ð×Ãwö‰X0 ˜VoIÀÉV%ˤÖI%=§OÃ9Þ}§8Uîð‰cU–•Ï\IÊùp©Ã­â@Äô)þ“•Y'Ãí+2÷õÚX{Lo^Æ,qÑÛ³ºT&@Î u:§¦Ð€pFa´¶ŒX†¹‰½rry„ì[Âõ:»’ºÙX‚Ýb§W{žlc «çOWÇ1QÖi4Ξӱ6®Ny¼®8NŸø«úNÑ<´ŒùV$üTƒ§àcÔ"MΖÏÒ5âGò?÷§ÿ¶³Úôw²˜æ¾õ€ÁÌ:d/<ûM=#Øö9:]€g;¦TþEŸ"Ãþâ~â 9©þD(–£:LƒÏ¸•ULQ[ȧmÛS¾1˜íá>ÝKO¤Î;gñVû§`¯ {ÁWæ$’Nfré¥åÏÕ6Å8è1™B—Ú0=ð'aUù› ¤úGåú-9šZ-¸¡ûÆ5ZVÔX¤,Ç©b/+F“K=L§’zKb 3rKœÊ“0¡H¡Xƒ&]–0¸“3 ‘Ö ­› X“Ì8…Õò«ð`Pð%*,Ç`GôÚ¤ ¶ðH#´IN&óè5~µ­FE¨Ã&$a6[‰ŽñpP( 3Žð¸†¯NrFe’ ÙÀfwf“f-iÁÿÜ!Npy‹ê‡úˆNÀ­ª­{“Ï´ž']d¨¬¹ù8ˆƒù¤|Ê´n±°;ÍòöÕYÉ·‘ó+µÜ¦)âk9Š Zg'íFÜ3šížÛ•c ¿V&m8S9W35¬¥Ž3›¬` ˆ¨Ç·è34µ†¤œ~ñRÞ[gºG¨¯:q iêqJzŸ®b%¥HdíÐsýa©V=1+ËÆ1›Ê’Ð# †AN¨ñÒcaq6¾ž¦anîÛÈՔة»`#ó‚ëù¬0G>ÓЋÜ.ÝÜ@2ä¨&9tT¾Q°6J:°ÏÌè~_ˆê”ZÁRµ%ï9Π9ã‘Ä™íÚi–@xªÔ5,µ¦}0Þÿ©i±Uv€}áê©k€í'<§JÁ¦]ý`Í5îÃ(ç¼8Çë4î&\¬¦­¹Ú?yŸ!ñÇëÇ, ö†À£W§dPŲ£SHR+c’1É€¯ôÉå(ä(ý£Ü=‚©fI8ç4¿ˆøì@÷áq(ˆ·²Ð,ú ˆ¬>DÏ©è³úÃÇ38ØÓYkX¢×ƒ:6#³d.Aï9åOcƒ+ö½¿hÕ.ŒêI®¬²sœA¯ˆ cÖ>ëÃõÚ[ï6ˆ­…yC®¨¶Iažûe]ÿS÷@(Çhp4(²—óT}áh#k…`áŠùH~¤SúK®ÕÓYŸ,m#ð×Ñ˫ɴú¿B YÁ,˜¬Ÿ¨àí>ø0 ]v36&?éå~˜µ‡ÞM6<”ûJz–JÒzk<ç1^¸LìÈ:Š‹AäBƒ,ò8’t¨Ñ×iód·1ªôtŠ3³‘ƒžu¤¯`xŒùgŽ3*Ä­Ú ®ÆÉ~Ç1_öyß»þ'Q>ƒö‚æ;löYIµ*¸Šk´ÏjúÌs2g2fáÓéX#†_Yúy˜òµ~[д«g«né:•ý`ûJO®W•TÆiÃz¿HÆgGD¸¯'?¶ÔŠ{˜b­ß¤ëUÍñ¸'僂G#¤í2+uÀ-lO t2±Ï]—Žúr“L…ݬ#9Èð™õ{Ç«ÑÕ‘‘ºi4uäžœöŽç㡪ϒŸh=Iü¢=á•v€AÒbÚË‚&s°ãì6.ÌÝZÚ® ãlz;ÒÀ‚:B_I:Ÿ;±?i¯”û)…)­ÒžNsƒÄcKüŒÉâ v§RÎP/À2ôèé^Ò;ÉÊÍ ,¼‹!l 0f,È8¦U²Ö{çö‰]k‹k§Ÿ3ß?é¹GšÃækŽ‘@ün¥\aà÷ŒQ«½þ§Èç‚%W¤K˜. ±<˜{ti¦Bêäœà vŽå>‹Vѹ´Àq*"¾3aÏ±Ž™ž]®¶å¤n#0'Ä´Ëõ†a3¯þ縜ËŸéñÇi®ºëôŒ~²>ë ¶PýNU9 íÏë@<ñ÷â;Ž>„Û¨hSü¢`éëþ‘* ŃŽÉE¼…Î@”tüc&sìºðîÆÆxK®ÖVv›2~f“ãý§n˜ÓsÖ6‹´NezëŠÄ6cÔØ]ÖMÆÃ†%6ÄŒBœÓšu÷®yðÇàãi‘›9"ªÂ.œ¥ñwÏ4©ùÌn¿VMƽ¿¬«†P¼¶zTW-«•ÌÓ¼æFm0:ÌyÈÝMò뉹8•Ì™ˆ!}¦ó+06BžÄË€sŸyy—@&,>“7˜8 1W+fÕ“2äÚeV•®OI£…;s(¸aQÏ"ÓûM$àØf˜ˆhvÈñ+šWƒX^®Æ_•^7q5VŒàKÆ[“i°«Kq·ædy]‘1òy…±BvˆSUmko>äqæ 4jÅN Áç"BíÈQ™€8 ¥v"8%e°sÖÞœsƒ:{ ¥ú;Àܼ1ìXWP¤Ñ^=z@*0PqÄuì:rÆãí@QfFqœâ\+…í(ȹr;‰Úê8‚]>›vò¥™¹9†GE“•ÙI¢>$„éÈPIÜ"…H¢ÀÊF¼ìîøˆx“±EòÕ î"%z³7g(‡þfS L­ë´!BHïˆÕmþ²~fd%˜“‰0bÑ^Ó"ÎDÖÚbÍØåL!GÔÿô„jQŽvŒûÀRIwûƻ؈të´yš}7™@ÉèqɇÚM(@ÏLO•°ŽâL­,áš*7§Ú˜%>Ó[³f ô¸CBÂDmªhŸPò³¡$Ù ô®¹Pçöií6îÚq¨âØuG=f ’p?Xh fs^šê$ËØ_í&œ¡ÇĶ*¨ŒM`™€ÙY 1(u9èe²ñ1PÃ{''[ül|LP§xûκdvÉë7VžªúJ™ñ¥yp0\(ûJ'nÛžq!‰búª«Ôt†Î$g2 dSFsÏÚÔV˜-j/V_Þ êêÎ#ÿTZ2¹,F8šÂ°äf(úÚÕ ‘œt™MYpÅTð3NôoʬrHH'%¼]º ±÷3T문}P!úÅÚ—¹Â€£ïã ~N}Úss.ké6×F½E­`ÃŒô3~$ÛžµíˆµDy™ç®aµÍ›*`xeÌ^ÌÆ‘Ci­ãùgŒ9ljÚÑÃÙö3ãó_·0M×Ðs:ú#?ë9 ÐN¶€~I0Ë¢¦«>_þáÚÓù?û„p$EŒ!qq :B“A~d|)zÍ2eyÄF p;ˆJùàˆ­FH÷–ºº02Iöµ¾‹f2ðbWx¥TXkdbã¶"çÆŽ3ܘL2/#×+v‹Ø˜,Lz›np»ð=ü#CZÛ®+àdÄw1' iÒ²ä­UŸ¡„^ÍJ2’µ“Ž}¸Ž[ô©ž¦€­lcÊ:Tª “Àœ±â9ú*P=Éé®{ÖxÇiZºMËg™€k9 Ž}á{D5|ع‘ G4(ÜÇp&WWBŸJ–=¸•rö}Üb#S@Æ3ÒT‰¹;z{ÚÓDdäD4_ÄÇhùŠðp¦·ø&/¦ê´>µ)³ÓPæ8(^,1¬O”-_Ô>ñ¿ñ5{Š¢·Qž%Äû9Qõñ:ÕœÖ>ÓOÖ'^¾kP8âNFOÄ>ŒÅ´äïwðâúcëÄ!ÕøžMÕŸùb{\fuõ:Q¨pw•(¾Ù‰ ¶­Þ¢ÅX($c1ͦÆPDéé§™ô¸ ÔN–œá"Ë£‚ØSÌäÞ?=¾;Σ“´à‹éžÛ³ÆØ±¿gLhdÙÇ=æµ:j•r]‚Žp$ª“X6OùMÙS:á›i~X”ÆÞIyUãŠÖX¦¯èƒçÜ:Zc4Ýi­˜»ï#Sì;•€«é´ÞéÏÐ]cÙ‡bÀó£œÌòš«ŠnDVÍ=däƒ {á Ó“ø«K}gŽ1+Jü2ç«÷éGgoÞsn×_]Œªç̼£µ~Ó·Pi€è퟼r”Ø0:NRêíò’ÂF[“:+šìï‹)U‰¥nzÂ7L@‚3Ä!éœÌÕ\oÿ‰Æf)©»?Ó/ÄÎu'àuƒ¨~]Ÿô™´¼3s7 ¥##¿úÁ €ÿ)´89ötGRü­íð³ùÃmG5Ô=—˜Ç†[À΋xTÖÝk9\Nö:j\aϼí³q‰ÁÔ’uOžÆOÆuvݨòP×k‚N8îe F¹Y•¯µH=ñ4à *Ø*AÚ&5Ön-aÞOÍmà·ÉÚõº¿5Qµ ƒñ “Ë¢<`dgNùMFRæ²8Æg#Uz1QQù&¼×pÌZŸF论«N‘ÁÄ>“>Rç¦'¬NΘ!9ÉNrNŽr!'´½áWÔq2G=`u™òÚDú:Ùt$ëûËVŠŸÖpS3ÌVÆd°…b=¦žì¼´õYù¼°s<µ7Z[ø­‰Ðkî¬ [91x~ÏÉÙćˆ¶Šç²§gbØ=LNÍ~¡meÇh¦6Ñ·L±÷ï9x­Õ0å|óBþãÈyÇoÌ#޳A´æWâÕæÆ3ÀÌgM®¥JɸSÜ7™3o¥\£ntø–•v‡fŒý1xߢÜ;!1E×éán¨„]EMÑÆ!«ôrÊ)æPYjQ‡ ™ç¨ýâ6æ· AƒŽ?y3ÀŠfˆn³9 ûJ<À7æ%yÜ`Ì 6ÀPSu„Œäñ Q{ A×ük9ï €;Dzˆ<õ%¸ š"Ö{äˉ¨l÷X ÃùŒ˜q7‰MœE²–¤‚ï-pp=¹– Ü!3ñÄeoÓ³»ÃuäKÙÄÖzJfuÁ_~aµ[µ‹Osý¤óÌ&F&p"ÚT,ÝÆ%bÙ L²€÷ÄÆÆík*],¹SÈÇÄÏœ ÐCüÇwÞdÖ¤ôÊšŽÊDç¥-]ˆÈÝ’34®xOL©dßvŠçf6H#´¨RÊ|€0A,è”’w7U\þ’¼±‡doC‘[ü‘7yôŸ´¬ºö‹“õ'÷‘û'%¿ˆß´Í@îÇ´èÙMd+9ŠîÛ€Wà&“-‰Ž×iBiÐÒÿ~ÑE¥n¤G*ºÕ Î;É·‚× xü“÷˜ààgSV†Úö§'=àôÚp [¸S+ÁRºcÏ^&ê?Ÿf‡ºš·±ø‹Ö]œnÇý(ë±äÀÚx„fÉ0DÊ^V™ÿ-GÄ6bu@äŽ! êLºPÀ92󑃀`ÿý>bñ´yhûò ¦"#XÎ>³Bãí…tBÀÎ]ú»Q—kc#&auw7Ïí ä Ax]Ÿ“xoQ 1˜¦¸çT™Tñ )·ƒWjÖºüÂÃßSâ«ÑTŸ¿ö(o û8œeL·ë4ÆOi¶ºÕëÙˆôúΦßÉV$d®g¯¨NÈÏ–¿i9kÑâG_k ]¬A'´ªÝEÛÉl!<ö™ñèSßp…Ðÿÿú s®íÃRYW'ŸxÅXòÛþ¨…‡¯„#æiåt ÙôôäF´#'àÅXÿ»ç¶GŸÎC&ônq^\ü™½/Ô~ÒØs`ÁêeiF ˆKÁdï1üµÿ¦rùîÓ«œÖ¿ô‰É~5–ù¸“gz7â¨Öxv˜Ÿ^LRÍ)¤TìFNÀ£Î¥b VHâš×r-áž°¤Gísjþ y‡ñTš}þa+^ž3ÄoSáÖj6‡(OõBٰƉ€ÓÛöâ*ô×e€õ‘Ÿ± ´%l–[ÔçÓ´é+À@ÌG¼[äãuM°9>±‘ŸiÑÐ8òˆŸo. R¬T`ì&ƒ•úUWì!nákÙMv|’pzˆº1k¹¨åÏÚ(‡+·f¤#:ó4×[ø{.@=Äïþ ?@΂üûJÔÖÆùs›Ä5-Ñö‰K}¯‚Ö1˜*Œ¼±ÀvŽeõyÎtq}üÄûˆrÜØâ/£>´Ï¸†'Uã Ä›Ö(½DÇF<@|¬A~¡©³“ºbCˆí¸(ÓŸ¦úãî2’ríP¾°æ´øÄªpÕÙÿI—«?–§ÞgLBÖÙ< Àœô\ƒ::6±òX.ð=9ÀŒè¿‰‰W¢èÿ8ˆë>¡÷,8œípÔÌååIfO‡ßï€DæTO§žGöŠ} ½;Å­ÓbÊÍ)Á¡ó5N†Ñ^'P¨÷œý–å}ΡGɰK~Ó<Ž×ÿ €zˆ¦—Ôǵ4ùŠB7'Þ –C=^Âê ÈšÍ ¾Äf` ¦ N)D5 r}ãl¬àn9b¤¯$(=ÏÌs%ø9ÕœXsœgŽ'Z²v Ð{CŒ…QöЏà±0·hÖÔÖ\:ÁS¥tÁf½£2ý+ØE-ƒBÖöVK&2Wâ Ú7³;á™Îãòa†AƒÄíµOÚ;jµ %*T-OÞŽÚJNúU±40"Ú†?Îe-CÞi˜c¨ýæ<ú׫ˆˆ ÓDäÅ-ÖUž ý¤ʀϫÿŒm1¯/ÐÆèþ cú„áI§zOôÂT¥k`A¨ ö€‘o™ÒîIÌðóù½xÇIÔ Êxí#.Õ:ñè'¡œU'vGyÛÕØÎ„°ŽÓ‡Y”™äÊÅ4 W:†=¦z„Ö ~{cß-n2v«ÔûJ#¸OIøÀW9ïÒs¿ý½?+:2­ÞF]+Ï(›¥ºË ¬ /RÇgf¸]œs…Ï3‰7¹>ó·rºØjãÌ9½-õ\|Ä žœõ“€¬ZÙÑ”’ÄÄçÛ§z[iê:‰Ö¢· ©nxÄ(¢‹uk‡VcÎ}¦›š-_§7MM”ê7ó.Tö„cù¬G¼íë‡ 9ò©,ç?äœB¼¤}Ä5ìúvtƒýÙ ußÁc¤ÿ†¬`Œ2 uçýÝ€˜ÿîUrTã÷‹kyÖÛÿTe8ûÃ6Š»ÙÛÌcœûóT^œµÈ#í:tD÷$f8þ õ×YFÍŠ9SЮCiÛù†ÎAüÑ;zaЉAõ‰ÜÒÃ&H23V-í$ÀêÁ6Lc1}`‡p&s³®%}V)wñ\{Âçˆj´a­k.¯w ýSthCÔ>ât5=TiWè‚£]åµhÌ |v™´ä'ȈçN—‡qMžÄÿ¤ç]Ä1ù'Ê|û‰Î¿Cýäï‘KkIÝNò¬ ãŒÃj;[=Ö•ú™AûÊôreF4cç8¸Ø3,ðÅ9¼<þrý]é^¼ŸÄ¹=KEµMê¬sôÆ5?ñ6}⺞Y3ý?ë x*Â…'´h׃9éÁ“þæ£íÒ=”;áÄÀÆ0ex™ £gsƒ'†cÌ?c3âÉö‘¿ô½pFÛ,±W#‘Þa5:•úoi/?’@þ¡Bs4Ú/n­AF/s†Ójm±Õ]‰ÌZœ _홽ñ—§*½º„`™c8–ÿQ2¦f²x¦Û \Œô™>#YØx-_Õf;‰<±šI=¦º‰âšr?œ~“kâsüÍŸúg ¯€7gØG+JÐÜÞrý@Ž‘øÁ7]tÕÒxý¡‹ddtœ?úó;*I¡1í3ÊIÑÄ6ª¶ Kjžã÷œpüáŸhŠÌAR8ú±.a5ÉnúzmÀô ýŒÒžq<½mjŸKÿxßhAù‡1xO±ºôˆb6ö,Aâ^¶çª’ÈpA‘®t¯FÉ\ÊÀœcâ:€8 ýå°pkR~ò¿^“壉bs+ñ&u'Êõ‡Óë|æÛ³ï ‚YN–“t£ Ù–D¬üM# Ù™EfûJ€gœA½JÊr ÂP­axÇL€Í‰ 6s!¤Q„“"=ЧŸª_–Àpa{ËŒ!Çh;È1£Ó ‹ ×ÜŽ†]ŸIƒ¬úx÷–ý%s´ÀÒ/`Å„F+öµssÞ\M]}?X`F S8„âÍ›ðvŸˆ*úõ†µIˆ5FÏCø/b†š^³ ‡0Їv1!G|4a/ó¾´çR‡àÆ´*Q/Ü1¹]wüEô˜±ì^gÿÓOâ ËZÎângBêÜøSmRH±qtw Iz«-YdbWI8o‘;@’‹Ÿh‚h5-qeA“:B–  à`c¬YYNpåx£zUAç9›ÐnÙhT,YJƵ:!pœxæIRhÉ)alûˆñº‚î×.Ï Ôé×6¨ô¦óÏAR åzé/µuÃgkqˆÒiWhûÂåönAÉÓ“ÛpŒèÞNÒD蚨è4é,/èU_°‹È´æètâö+j°Ü¤çå6ˆTmòÃòFÜŽ1Þtö‘ÓËW1ìhDJÂ(,x„ÈÓéUËy[Ø÷2”ã¬Ò°#‰; n Ú”c¤ÉÔZ{à|LÉúCg¥—cõ12ˆÈ”Àã¤ÀÊÃøTfX•™b öƒ,Aé73¸ÀÕ’Õ4V³Õå·ä ¤œsEfõÑœÅtxß_^-v1]¼˜->–äÚìŽð”XߊÔÚ¿±XÁ8ïÿgjB’©¼žqÄí c+;n –ÙcN26â.ãöæiyƒï:–cc`q§K]$z2Gramc°ðW”ëEµJÇO^´ª*r•#'¼mk\žÂa»£“eMŠJ°‰ëíó*"Ôrl$öâ5yÛ[Ö ‡O´òmlPq·'æeÊ1;«\Ž=à¶ÙÈ–9„òØUÀ8ÆdãKHÓ'¶"ké°OCí+'`í!Æ ¬fB0IÉÆ!Û*2õ癬3“ê\}¡HàG¡4*r¢fÌbd>ÅÁ#÷ƒk/ûj¯Ê ùC.GYÎüe¢öòÏ p9ë7e÷2å\ý³‘ÙþO=¦Y”S(ÿÝ9F»lúŸûȺ5êÃ'äÈ\º+¬Ó×Á¸€31wˆéŸ…7Æ1ÕŽ€}¥;Rн}]cÜ£‘‰M9ÇËJü{·ò„ø ™H¦FzàƒÚhVÀœª;ƒÒýr]œ®wwï+_Ö5†#nÓÖQ_ÍÙØœf[ºW“t¦ûjýŒÉ[úí?¼éê<$ÔŒöتa9–SZeTzóïÚV“ßMŠlÏMºGBšÊ°K Ç'Ž“¬ÌJÅwXrOØLÄË|ÐŒYÈýçLí+ÇÒ!{œÈ¶ÕÀu-ùmÁÎ8œzÕ‹®€Lﲩˆ³ÖåÑì%c–Š’_ g¹l~Û‚;NÆIUãcy¡—7LûÌÒI­sí6ljs/¶v×X‹]TaG{G<,€–c©2ÅFÆ%°yö‡®…Qé=äçœÖšc=˜¬å¾av稂¢¶Þ0yºç# áqˆ;Wj1ç3E:¾ì/´™ ¬aG(Z2§þYzqçþC)š›kLÝ´…ÁšUhÛmHÆ1'¶öÍ5Re¡8—c5JNÜ}¡jôÒ¿iVr0cÓü3ïêOxB€.¡Ï¹!ªbG)Ü{M†r#£….Õ… Ý¢ï͇>ðëüTé×ÞSinÞNÐF{4[‘¶@uãù¹—e^r`6ƒœM:”JÕº–¡Ú|rª¹É癳¦Ó+ؾBãwiUdZs œÝoýQܮ՜š#^‘±´gŸN;CéXyCŽñ‘UMŸ1Šˆ²R¥+ná“Æ#¼öÊv1±TŒ÷˜½|ÊʃÖa†W¤ª,ÜJ“êSƒ\™$ð÷V#æ:jÝB íÀMÜ8ânŸV…‡pD~Vò¬q•z«Ž³@4¼`ðÞÂqìÒÛ„~‘Ž;ÎÖœí±fTaÜüÐó³ÐË hkzëqbã'3¨©¿øSŒÎñRGS0FئV%Æ­,>YÉÉ¡“@ªY|ÏHl(øM>^ÖSÜòƒEÆ%yߦ“ã–9ºÚNY‹.r3ÔJÐgÎ\ðpgWQR6 î@A&º«åñžæ™ÙªãjGûÕŸõBU¥ó}DdÇ3 t”žYNî¤ækOZy¥1Æ8„ÈLvCO ]«æ `ç¹06)Jvãq:KW¬†ë*ý 5˜ À7¨Gå'gpºÃ9·c+ÄúןcÒéSOfàÙÈÆ1+[¢üJ®dùMìµÆœuÓµêQz’1 |6Ý5eà ‚=ã´QøgËmaÒ8úûN釶ÐÙí/{èLkåpvcn:Ò´?Æ^ÓIáÖÑN2¬[ækM¦µ,n{š-WUúzÊϦF$´¬{ÌTæê¾¦‰mãôŽêÁ.ûA9ø‹Ð¸`¶)÷›NI|ÚH •aüÂ5§v²Æ{³ž¬gTU§fQ°mØr¼äÓX¯¹é*‰+`þscÞv«Ï’§âqëù¤Ï’Ÿô̳V.gˆ÷»vø€zÿÓÄOÉkXñé4öî? °uh-{/CÎD%ªPaȲ“‡CÃNñ/^sC Ÿ >†ö3^!ÿ ç¼Ëÿrý8îp° ÁÄ;WA pYp&ÌéÊqäæ1áçxµ?ÂÇÄ?‡spÁÁ“zTu‰˜/4sfqÓ´Ê-°Ã¿y°g1à‘öŽè]‹`± wDÊ~QL¹ HRÉĬƒ9–xƒ¥®…ñÌ•ø¢ô5ÒiátÇO8—˜ŸãëÚ¤‚7r#Û¸äÄ›,=·*eÝQK1ÀcQ[}. 9É,£úËÞ"ÐY0ý&Ù‚¿„0D¨ÿ¼)ö§†Î%ÔÅ-bkÉOne3íê‰êhµoGuìsJ{ b Ç´ÊY¸‚&õG Ú1ÒX u>Wòný`Ó_¹±åwÇXüh¶C^Xñ*«Ë[=D*¨U*£õ’°H\vŒñíŠ;B«u8h2ÞJól6{Ë8bµ;ÈÄ#p8g&eϨ”[qÄÒ‚Ì8?´^„/žØ0W0*GÄ-‹‘Ä_xQµ¥F#Ö‘Qï¶D›^ˆ  àp [ÄY¾•&?%Ó ä8+-È“9‡U¨qÂ~ó;ï'Ô@ûCPî[t­€ìÏ``Æ~ñ{Ö›Usƒo¸œd/Ú?íÔ.1õ+z/óg˜Í`{¾‘2Õ“^ü3Þ=Enº‡S^9#x'×м ~ƒ3›Z«¶˜Çá€ø‡"®¹½{rT¶F&[Saè?¼´§‰º<£fËj ‘IÆ"”kEû¿éû BÃüö¶LìWF˜êª@ gä°éñ’0¯»êø—a¨‚@•«œc="”)MNÎ¥[1ð¤89žf˜ãŽ·Kýze¨ÚHSœu0­£¾§@Ø!Ôœ{M¶ÊÝZ¯VNGYˆµÜØä3v„.8èæ9”ò ʆÚÝöûÆj©4Úk Ì®031Pz¼ÃKõÈé鑆ÁÎ&s†ŸŽÐ”©eu$†ÇXÅŽv0A‘œdE,}*1߈ޘLv•.¡_Œ$kÁÚlù0ÛL±lç#¡÷&K¨‘0ÆsÍš¬±ø±˜¯p{Ì=àe `6ÖóÖd¶{ÂóKÆ Wޱf;l=fÑW¶·?›kÿïV߬ɔŒ©ã¨—“™†^»H>ø”íÄ-£à7ÞdöÅa¿ž±úÄJŸ-Hý&˜H*° -µ`tæXªÓÖÊÆemž€­H9Î:ƒ/ÈdTþ²²ƒ&´–4‡ c[ÃWÁç¼U98‡SÆ @»œö̵¬îÀ$ŽÿD ð%Œãâ0¯ÂUœ²´ËiêÎÍeÓ‘‚>LÒ°fÎ" ¢º!”Žxo‰2§Ü›júNbݰàæS9<öŒ¾ ¬! x÷³ ¼Ìyc³2ýŒ`ÚrelSôÂuÔªr]‰ù…8”çK*;À1· ÄÓ/æÞ@§>™·_Ìâ ±Ò’ÕbÕ>ÒzÂùm°7h2Ä|ó—L›uc†daòfé‚Ç=`ó“Ì*œÕhzÅt¿ÁëiÈ'v8‚Òq¹y®%zNù À½^[‹¯Cö0À‰l2$Ârâ½céFîÏc ´ûLµ@õ ÚÓÅ76GÈ„[71aÆN`EJ;C(z‡±CL·I;L·""VÂÝÉÄ ¥·‚ÿª)e%º>ÐCOfx±¡ÇÚæz‡uMþñé?ËŽ=ætÀÚä°ô¯s†vãó¥6 "óB°õT³Ë¼ÐwŒØHöŠÛPn±Ë]rh¾–ËNÛˆ'œbnìPÈl.2>ó˜4À77XÚŠÉéW+L ²£±˜E¸‰íàç¯"¨,û=`nË@¹½°7£¶eixݲ¢)ìH ðen1Z•׌˜q˜»­Ýy”đɒeºDUŠ}7—Ÿx[YƒX `V<æÍ:ŒõP ÖV¥+È­«l Ï¼*VÖÔ»HÈë“!­‘v9ŒúÛ{fЦ’µpzŽâ0ÈN6 v™Î8–Ê`§J—ÆÓï3^§$œÀlœK_¯ô1nÅc%¼—¡ g(vü V•îµ›9Áö‡Aê†Vmƒþhü¬«ÎBÚZZ”ÎNOizš´0Î #ƒE»Û'­-ŸP^sÔ£ X öøX{@?UûCÊÕጰšcZ £<`Ÿs/CYKTž˜ë:, ¢‚% Àéî´œ±’‰œÁYÐý¦ŒÚéÚñ„ë ¸Gê?xîƒøƒìe¿‡²ÞÊä.32¨ôãg» ­æiЉ‡Uè<ú‚–ßÀ˜ºßŠÉcð'9@üÜw†ð¼“Ú/«o©IbAÁâcý¤,$-¹œýBãY¨¼Ã%_Wé­®êjFÆ!‡vìã˜ú]U¨¹8 `ˆ_ÑIvXY’ªDmô!%ßiµsÀéñWNŽ®ŒUÈÚ%¾£sSw0’+YâZ¤Ó%•^ÛøÍ}±ïÓœÙê9ŒÛª´5a¶Œ ˜ Ãvà¡~г“ütõÈ+ýæ¨Ó†ÔUcךÔúö‹‹¼³kŸç8ûÃuÉßpïˆj©ÚÈšjÁcïÐE´Ö¢¥Šávƒ€Æ,Ä ~œJº¢|zèR”‡ ­Î{tš rH'œˆ!†¢¼$ñ…¢¥Ïs3v¥ï#Ò«hÒW#íPU±Ô‚ƒî&]·[–û™J ¶qœgŸhlq¤þ`æ;¸w‰×[‚öÏ­ætfTûÃeå-/xQšSa,/Î:€"ïf²öôžq ì®pÓjWÜqu*O&ÎÑvû˺ѧ ÷§òi/°7Òy…[Ê€ñí öRÚ"õÖ«wôã¤N½V¤¶EžŸ`"›+òSjuvý5|ñ2Ú}VFæUû´f×mv-YAê#¼æÕ¥k”Ù½ØÃ²ò§<£×¨«÷™6i—êÔ’GôˆáôƒÍÀý„µÑéW«±ý"ßìydÇàßú¿´"hÜÿ?öœßö–§<‘«Ä/²–cŒ‚EÊdt©¥«äõ†ûÅ4š«-18øŒsžr&wö¸ÑÉã1K4d¶å*3ßÖ¹U,:ˆ—ã®cŒˆæÓZ:{GBŸ¨”(¸öHµÞ)rXÉå¡à™•ñ[3Ÿ)yz²å¦áÃÆ}ãµ.Ú¶Iùœåñ ¬k<Úo7¡m¡yí3Ë~Õ42ZRߎѵ±JØÌL.óƒ RÛîÇC)#$?y9ú õ:Š´ÃšË~‘Aâzf<£~ƒ0˜ÛÐß§DàõÁ–,í‰Ê3áÿÿõIµñonŽÿücð¿Cn?=e‡9Ä¿£ Q™ÁÈ¢Õ[§¦b¸ë°h¶G8ÏUÌÂÐÝœþób»k‰::àð¢]l¿ÒMA#XÎØp"?í]!]Ÿü#˜ÛÐÛ¦7 Ÿ™Ì>/¤\ƒcd›e§‹iàZGÝcð³ÐÜtÀ™É'ž"£_O¤‹FÖ„9 W†-YÙ™à Ìù#E,Ôq½@Ïæn­h=Ж‹TèAš­Iê`ÛUYൣÊ.8uÿä!ªlêP/òƒó3¥cø`ÌÛØ²s»Ÿyz$k©ÙXõÀÌz+t  Æ&°ÞÐöRt˜r 8#™‘zóö†‹az½¥=áMˆÇŒJ.¸éŒ!Ÿi}&îq‰½ªyˆöF9ŽßhF\Lޏ€cÒ:ç ë F=¥cÜ¡ª=áUøÀ0r61Ò ·ÌC-N=&ÉÌ`ŸJ§¼Öq,93,IìfÆ{KÚÞÐØâPQÄ`¡î&Ni[ 1/blc¼FÁ% é @÷™8¬ ÙUÏ#§›7ð À9¼ý¢šæetÚÅN;rn§|}5€ñc´ÕUا›Xü¥zmKª°Ô¸Ü82jôÞ«/f_õ•ão±äêe7o ¶Ë‹ ¶YÁLõ«£Ru”åÃeÏÌ™ÀÌFÏÙs)A…ã9ë›ÑñuÇê­>óiÔ“ÔõœµñŠÎ©£+®¯ a‘‘ ú=žÌ¼Á†Èï(¶$XÜA Pª†FÊŽ¢Cu;¶³€Ã¨›SM‰ûˆõú9–ºZضHwƒ°°nA”¼„ç¾c­Û9lg™ªu6)!xÁ”[ 8“4Æê”’ö5‰æÍõ¦ ´¡¿€ø–5 œgçˆA`=ýã»i¬Y¦Ÿ(c{y1(¨0•>žÕ»Yc²îSžlÃèXiÊ¥‰¹+úMìEç2d{DZáâViØyU'êãiU·m`À|‰ÚÆd";—Ô/Çû5s3ø Ê…F¿ÌB³ùkö†$²í'+í´/a‰7T¦`õ¸åLfÖƒ¶Ì®0ë'\‹Çª>¨q[g…ê`¨­šÌÉ3©c%T>œ¯#‚}ϼy^Qõe# †wg{ÊŸg0¯¾ÔÜ OõtétÍ@;öóìeSÈ<æk~1&ÚZÒõBW0W¢Ë@u$üôwœ£}§*Çjí;Œˆñ6º–jSñÛsZ©Lv†+OEu«©bwÏ${Næ#™;äÍ7øë³©Ôélµ¸ .Öi“NEy±Øÿ0é9Û¥¯‰Ì43jl(«¸úy_a0×3g${Á|ɸF¯6ðHݦ‹œ¿&c°—–?Èb/óÃ#¤º&AUÌ ÀëÌÝUpXdœCr ”‹Ì˽F™ÂYœ‘ØA›Gò†?¤ òFó™û~ðº:×Qz¥ƒj·S˜ Jõ–UR«"ž ‹seù>›ýeç2é6Ë`(#€&üI«»P‡JJªŒ ÷ ÎÖ6¶yÅLq´¯°æ t¶2òÄ™ºôƦ ŽAÌ[ˆóÉw)Ó¶Ûý ØAùÕÿ[~‚7ªÔa&Ú”68 À®@v†þÇ•ûKJjCmf\ò"Fó»jÒ¤vÉŽ-lˆElFF ¢‡h¶\‡¾ò=*ª>кv±X~í)µ5 ÎÖÇÚ`ë«#г÷0Õ#>!}wßQ£p;Žòµ`ê´âÖU{@%»ú 8+ÈÇ Ðw€Kº‚ 9\õÇq3¨ò*»:X[’ÄõŒmøé)«QVp3ó uÉèŸã+ÒÔ¿ÄÐÕêOÐÀ´³·\J/bœtïe¯³t[`}ö äŒf– ½±“™Z\ºy9ÄbÁ€29ÄTFkw¬‡õƒ(Ù<óP‰N„[ŒÅ³¤]i%ºv± f'xõ¨HýbõšÚ§!ùé6Ò®PØFjÏ’}·EÀæ0ƒòHèr Fèh Ìèpz ÏÐqž:ÇÎTô‘g*R–}#yÉOK¨ö3­¨?–N;NMgÔ¤ûÇ%/ékÁ79#©˜Q“°0ç9̵A)-áUö=Efs[€£Útt#ò8÷“’çfête1˜ î#{ȦOÅþÁŒ‰Ä©s¤ÿ”ëø©#JÜgNE=HŸIÿ)¦Ò/dsÐwí4ŸPϸÿ9º4ïcl*ðé(£Ua ¤@äuŒCÏĶªwôj „÷ÏÛƒ¨aŽAžHGàêÛ‰9ª29¦•‰šB&IÚN13¦WÄI:wÏ´óJxÑkßò,ûO8„mL-Ò2쵃ó[ß2(›55–XÀO3̾ÁÂG“H#ùgo 3ÿÕ8™üªé¯ ÇãäLóéX…ãGòWÛ3Ž@ÚÜÇï:þ6áÓßtä<¶ûG†ä+ÙP‹ÀŒi'¬ òþaôØóÓÜJ¹PeÏûËÕ;z_”µ þ©Ãb<öø1êÝö Nçmû7wYm619<æ*D+BSÞ¬‹vkSŽGIdbã…'â(‹5÷-® ð ø¶¥mÚ6ˆ+Oæ¿Þ+xÅÇí7â!ÒO»¡¥êcí7¶5sÝ' zñÖ<Ü%8é³ýdñ¾•+»¤¸ê+fÛ· 1€§¨c˜‡†h~9G2GÚg{=6G¹‘·÷i–TÉ0ÁbqÆfòq‚È ÑÀwöUýå‚Àr«ûÍLX@SŸc¡m8È+Ÿ¼2ë«ÀË.}·O4Ø xЏaâiá=£oeøªÛ¡_þBdꞟÞyJTxãj_¨xb­ðîÏ }¡ÄP?´Î˜ÿ»VBp&f£e}”þÐlC§ö…È`ìÉ@Py Úk[ávYWŸ‘À$í¶š59#'¡f¶›t¡ Œ€TdÍ$»àžtx…õײ· {M%¶ÙY ÞŸo™¶ÐÖËŸÐBפÂá\‘ìD«œèæº/…IÇ´élÏX¿‡Ðh$¶:v·&c•Ýàà ³‡ªÿŠ·3;×tœ[ëq©s´O´¬?eKS¥¹Ô²¦Tu1ÈŸ¬}5(¹ @ÜÞ/­×¼Ž¹š]è¤Ó¤¤iNx”‡Ð²9âs´qµ¿ñ6{ˆ•¬{R3«°|Éø0yŒdætyj3ÖØ¬FêDêèicž†rÔb¥ùÁûN–€!¹r¶Ã†ƒ ¾Škbë¹óé™sÄæjnu¹€< 8ò(š«-Õ F@Š9ÀŠù œî?¤ƒXû¶íñ T–­y{ÊtSBSz%d1bØãï.ÕŽ—0ø†¢Å´àÖD)QŽÑ\ì=lÕj³ê´ã¼»µº„lTÛ‡|Áµ•+߯Knœôl~’¼¯ÐßíKâ¢pLjÓ^õé–âÎÜÅÙ*|øóK§]¼ÅsƒucÅ@ú¨ÿù¡ëÖ Žpq²íÌÂÖæW?Þ?({¦ÚAb8˜íBpÙ¤~Œ¢„] ôã2ÃtçÅRô5Œ±ÝÞ],2Ĝɰ¶Õï‚ 7äàlC–ÁQ)ž1úCjÞ„Óð§Œfm›= U†añú-òñÄORƶ] sÖt=âÿ©=±‰2 ^ëBd7é.µ'ûÂYÅ&,«ƒ€8”^Œ¦Xõ< «öœÚ¸a:€eí "Ö`2ñ˜ð1-oT8Ç?¼Rr¯@ÚÁ´û1ß1P vŽ"— ™-ÓíD÷=OúGì¤ášj¸üNJ€,ÀãNµxÚ>Ðȱ ð¤çõƒwG ¥»‚q&¨oR¤pbI¥Ï6þ¸ë dV­èE¥µ–… n'ûcázê3¹é/AaÑ35|“Ó=£í;º²+ïÚ_Œ9¥«^—Àd|{Æu* ."s5†ÆÆæ9$ð¢Ö° ØãÚEƒWªY›P›T r=æ«ÆsÜLÛüE1A¶kM­–>Ý¥YJYrØPŽê:–“p”¯âÛ§Zm>‚Õö`¸íö¯!9â ª ÅB¯Ì›“9e Ãz·3£þqd¡Pö0Âgß-ÕcaíÄåÐp êÙ^ðCt0#N¢©Ç¼©t›ÉÛk¢´nª9™ÛFÈŽ ðÙÎs7æôôÿY:É´Èë­ÅL ó‰À¯ ÏE­ ju$Ž8œTÒÜHü²%áÒläJhUªÒB³¿O]7ç÷p Îz MN,² ArÞe¼6ÿ;4€ý%î}ªËôGÿJŸúgoÂ3ø{=³9/¦µB©Céâu|/)C«§#ƒ#1ˆ^5üþó’©¼Ï^¹V²´ 3ƒ™ÍJm [ð%cÒol.ÍÅFÓ¼º6«tƒc3­^’»é°Ú­Sðq‰½.Нörº€ŒA/ž¤Ž§§¿ŠØþ©ÕÑ®æ¨üÓ™µ¼Ó‘»¬îè‚þN9È22Ü89^¸˜ÉšcÄ<õ‘ ¼˜;›ÐF3Ä0Æ î<@„7oñ›ÌÚwlØ9ÇX[T­ï‘ÐÂSg©†G\òfúßH½Gl³!(¼óÚѰ֧°Äèר_-”ÀÒ)âJ«©]½1ÇÌ~9)Ó£ágýÝùïÄoˆ…ãÉqŽIŽÌ-åbÙ+ˆ%+ž°‡iöˆ1'é,qÖQ#¬a8=8‚¸zOØÂ v‚½ÀCÎ!ì<ó}Gß1våØã¡öŒºÃŸx}FœylÁNÜÞkn‘&ÉQõócScú¦V¥Q’ä~“MÆ¥|Â+Ó¿A"ŠóíÄ)õ@Ó´éªÀþY±ÄÈÖOlJbó$¦è`ÍC~wÎ %*¾–fÇs¬R-Èö3™fC¤…·i«Ürýá©M¼œ~óÌmÍÉëнŒÿQ<§âösä˧£B½„ÞgGcùÿS@ë;ìN:HËÀ—a9ç¬^Ö†°¾³ÔÞ--´ç#¤=`Ì×åÿËû‰`)=W÷‚òÊÕîgÞX{K8ÇH’ºj,bì£qëóÔ¨ê=£G´›G´:ÒƒI^ÆëˆÅ5­Iµ{Íé,˜÷²Â@ë9:£ùîgZÆg#QÍïÞ^“uRF;ÆmÞ1ÐÁÓ[TM®0˜[NM‡±1ÞiN¡¬Ç^#޾˜·†ô1ÇS‘#.ÕN6 ~k|zjÃ$r:JÔoxM'èD×"ö–·â9¤þ 1Kx^ãcþîÞÙ‘y‡'"±ÊÛˆÏøƒjøMPàr3œöŸ+{u‹_©¶ÊV·mÈ8Ú9ˆËôºšÍªÆÂr!뵘ùÄ _ÂQì!+æà~aC¥ŒL>Î&àì>“#ÚœÚÿŒûÆНñ±S‰«11ï/= ÚÃÐãiÍ'ÆÕAÉ•éıqÉ“pÆD$Ñ7M€\ñXV*g9ØÈl‰AÀ?[\FÝ È úM¶¢‹xW;Ç‹×`d•J±8àǯµM:*@§ƒÈ‹›õ&RS Á‹ÛeŠpŠC‚²ï<“"¢¬I¯´r[…¶1À°æ= Ÿ§C"bÆãƒ×ˆ²¥‡©cˆj†«9ù†´6~¾€tâUšTSrd«‚=¦¯vZË Îpdû(ÑÕí ºzT}*–ë-ªµéœÌ.•ïk_À N#ñ£ÈÂÕOô!DÊ$[TI= µ[Ö¦,¤™ö‹Æ‰•fKÛC9f¶Àʼnù…£Ni½=-õã8èeLanžÜÃ1$ûKpÁˆe ÷˜2T™¸¬Ã2“õ®~ñmU{¬¯Ü?¼Šé×M­­Wr屨ÊñNÍ:äþÓTð¬G82Ð-G°Ä€rqÜÅɳm›¶3“]nõ&ºrROHÓ£2‘Êž¦jÃÓáÕŸ)Yº8=Ìsø,ØTØìø²½œd`æ2ÛŠá ½U´V”×VÜíâeH`'¾µ[ =âÕƒD ôàp$XωU^ŸR;†Hö1tÁŠnŠî&ý?Lqté`98e\Ÿ˜S¦T ’€’¹æ4–_¬qóí9ÈÄ{ΈÃTTæŠÚr)Ë k§¤wæðUjlu™>BñÎc×{ ÆõmÀâs«¢Å#Ñé3¦œ"ñ S:D<@nÙÏC"-©Ó5ÁB0s“&v¢ÚkV¶RÝ0yŽSm-§vtÜFqŽpb—i‚*«¶r{vš¨R‹Ðòcâö&9zJµ»€Âž“§[ ƒéí4U…Ï|t‡Bµ À…»è‚}¤òLë i‘ŒvƒÆOhF¸é‘ƒ+¤!Æ; üÁäç_ÞTŠÜaºÂWÇNðlÊ,&ªnxéï Ò2³G)<™‹F-Àè%Ôäò 4·®ËríÇýRu¦{9‰9Á“óÚ¢³÷lbcs©ÃÙPÿݘ×å —¬Ž@äy¤Ž“¸Õ—`c߬oI¬¡—}Á‚û®;e82¬¤óÁùš™ 7>ѺßJà=A×÷ÁŽÕáôyFÃY ãŒÿ,†ÉrAî1ÞX_¨sÐ΢øUÌÖ;žé‰­ƒhíºÚšÖ%NUqÔE~+ÊW:³W–£péÌÑG :{Æ|cC¦Ój•4Õ»2W= ä–5ÖÎjúNï‰NLTÀæ¶NœåÕ3‘…üGô5 Nõ±Èî ÿ(®s)¡ª90ñ{ ilEP[9 ñ4/%¶„8÷é"áaÎZjÕ MJBX/$ Óv~bI«#X4öÖÁùÈ^q ô:tš‘eH@Î3j!3ŽÆfÇòëÝfê×8Ëq³S‹Ky‡gN=ãÕ_–ÏÔ£Ë^;KeZeºô S3ÔôŒ=N¨û€,½pa1©´Aœƒ7’³¾’Iø…jovüÅãm-À^Ò +xa…ÿ)¡¢Õš¡ÔqÆ%îW¦S?=ŒÕ@qì`+ÔªŒ:n_‰B})Ž1Þn4ÜeFGÒ%uàŽe£ç#ÚYç-" ÀÌr ™ Õýdÿä$v¬,Cö1èEØw6O†yÍEëzûOBNOY$äcЬ3ÎÝüGÄôWä©Äá*†Ô0ny ŠLd§1¤f ·$yj4e¬Ú–õÀ‰Ú Ž~Oyrí>:u4N|ƒœ“˜bäö0>¬tÄ‘ÜC²t˜^kHãêu7®¢Å[z{A f¨œ [ö†±kìV8ÀŒk4•éíÅLóž“d]eê\Ÿ¼z› •)cÉï9¶?yÐÓòTI½"²äc1+4Ö5Ìê:ž¹Ž•NÂY@Ö)´Ó:·‡ °7ŽÇÞsÞ«vcg=ã©ÍjOq#:GZxMðôe°îzxÌqĘÿÖL½íý_ÚMå›—poÅ>GyÒÐPš„dÚ¢õdàt@Á‹eeؘÓñu%LÖ 2à¯Ða+LìLd~a.»/ð^=æhPk?2«#Îõb5[2Vµ£AÀ Јû²ryé*öw“É‚°Œ3afZÂËÒDƒdKªØN{ Ôð ý ŽšõÀÎóÀj¼=ôˆ–2™®™b,p¤¶JÕ°¦iU¦$r}¥Ù§ERäžAø„mõCØÄÓX^1í3`Ddc*3xjjW±—qƒ S…B`·i?Iý§bßj4‚÷ †Æ¼´µ;EË·ro_´ž‹W[Ƽ"ÔOV?2×Tµ¯°#¤´p§#ø™5ʵÖ1 ­›Í|O'æSµv gŽ&WG¦*wj\s¸é*ÉOýBWªñƒ“ÞI¥¬%V±É úc-¦Ð‹†cÏ`­ÁA]Cj¯ b§Ž9otíÑK6à# óUY®·u…@RÃî täÕ¸Ûë,?¼ª¬z- §œç˜w5ãw³†m)Uu%˜gIEÏb •37j-¹÷Xù?n“¥F@H r~LS…®¦ŸQ¤Ó]U•RèT‚:­¨Ö"Z‡$¹ “ˆ›ßQ'ï \téí™VJ?û]ê´á(s€x3z÷üF•}EXz˜g¼Wo±“<ÃÑþ è-[Xôæ=n·nCò8ïÂÊào~9 6¡¬«Î³’{Åßaç¯3W°`…&\tŠbXÉ®LYví¤. œæfëZàw¨byÉë˜XôF?e›^ßE.~âW Ö+[ÝI–ÎY‹göÌ ¥¨pêTÆ*ÐênBë·hÉ1q \C-ÎrdÝ™gJÊ2×Wú6dJêfÃê6˜ü ¹ãlf7¥9ÈgU¢«Lˆí}Œep³4ªV7\}¤Û´Ü¶i³3R૸RgâE·ÍRq€&TpÄRX&>Fïñ;5õ² nV˜¶àF9ô“N#ßÒ¿j5Vj)JJúTòÞó+utc“އ<ƒ2Ì£©µ×y…¶Ÿ„PMÖ)#…—]DM#`ŒFTílB2¸ÉWUUÖ>àç‚SØãœ“`çŒÿx OÒ1Œæ5xÆF›ÔXÈúÐyÄ^¼ãôŒéÈòË{œI±”)©Ó›,úϧ¬ p¡2pcŒá·ÉÆb‰]–“„9î!6Óo•­ÆÁ®Š/0>]•òèTFÔðFqœâSÏ^š™ ±wÔleÇFã#ÞÙ•ôýC¯ÖÙ—Õ`mÀàv‚N¼G? ©ÔÐl®°|¿¯˜¢ÙWÞT•®9É¡G_^ø‹›˜T®ì<ˆJ ½…YºtûIñch¹“vé'„¡Ó .Ômf\íŒWQáF­3ÜÚžQr8á´¯ÞܽQ GYšëlãcZ]7‡t“–_a5©¢«¬B°0OñÒüõ4¯00Ú ž³knPN:Žñÿ¢½'‡ ùù_XöœºÑjØ\†a»2±Á¦,©’…!_?ËpØ÷ ÷ö3Ði5JÚ ·+>ïH$§7+5ÑùpäÛ¥)Ë6O?ºo{u•¨¾yGQ e…ŽÝ¡}Àï:~â´èï@êI>žHñ–£Ï}o¶/Í¥G˜Ø<‰wxu´)(ÁëñO}^«ÊÓ« FúQóÞ"âêìa–\+Ì%LaÛBÕiÆ‹L,/±íãÓ˜¡ìSì:€g_ÄBëƒ(ݸr‰ÿxJ* é0ßx²“ÐçE—Mº1œc¤u5 .l±í÷c®Ùå ×}AGx"åï/·(Ý¿§æM”n9ö):o-IÆ3ÚoG^Õ*ëJ®ÅØ¡‡8æ½B¥ÀžWŸÒM3{Uò¾õ WÁ°g(Ùìæèµâ`Ôj+*Cú¬œžÒ”ŠjTèÕ®8€poCR!ËÄçÚ>:++³ãÞ5¢ñÑQ.\‚^†s)j¬`«Ž„ÊÓxu‡Q€\TTòÏë ¤Ñêë«kP@S„ç¬55¨SríÑðµï¶8aÐûÌêõí§ÖßR¶Q› Äà*©SŽH1=BYæfÖ~ec©ØË}»4ëÔVZÛá‡Nq#Hu_0zç= ók dvž¢,úVÚÎHÆFpbš—tvöÖYf¿NµÓhPË›9ÈÏiÉ×iìÓZ¾m€°QŽ1ðû­Ð_ä›°–®Nq7¨¯U«´5–Ty'öÄvJ9žŒéëÔßQt§Ð7fα,u §÷„[uDZoVVq¸5g9ŠŠµ+[ìmÀg®s2¸EyÓ­·×cŽ6œs³CøÃhÉàõûÄ´lÞ[›/±W¨`†¥hfZÚЧ•ܱÌB]àA+¶¥ÚGÔõ'3L¨†£°­€äñÖ9f¢ÚôÂ×Õ¸w€X­GVkGrrñž¸š^geíÐ>#Qµóž¼q ¥¸Úè•ä—s+£SŒWQœ)=!ôw8°%U­{ˆ y˜øÏM%ûv L»ÉLâ/øŒUx#·hKo}7çy»ƒ6 õènôÕ•$î\s‡ò:ÜÓžx”ÚÒŽ;Lhõ^qeµg´eïÑéÔùɹ‰äÃ~ŠÙ ÿ´Fáö›‚ÃòP±ûAùú-B¾ôØ„q£UM k­Ô In1hü?E²¶;"ù–úTEme¸§·â3¬Ô£9VqbvâRS¥:vµ“vÓÊ烎ªµl%¦¦ÄpNø1õrz"~Ø»Ë` 0W”Þ¢§ã©æ;Ùã7ÁÆ5.7s+ud·ì +zý™p2ZŠšËVÌ’1Þã‘£bn*`u>РVýzEtºKÛ̹•MhpÞæt-»L®©uEvŽ8„øöŸ%R°ÃLX¯#¦ Iµ9×~_¥9Æ}¦¬#,æÞ¦/ StÓC]µd±´çê(Zîp¶3”8ä@Ÿ·J<šÊ°ûȾežv£ž¹ ‰¥ÃPcß" ®[ƒ £Õ_~áZ‚W96Õ MѲ©<^©òob–ŸXËfa”ºéRÍ}k®ÄÔ ¥Ô‘ÇXÔ'‚¼·‹ÜuêðÀ¨.IIpEr¤‚2Þ^8ÏjmÝÐÿˆcY`¸<`BWz¡«¸ŠÝzºW«90[²rHüS¾]bÃ8˜$+»‘Ú)¦¹ÖÔ>a(&3v¶½A&º½Dçpí ‚èNŽnRðN&“nz~óµ¥Õi?fÞ0uÌKÅ,ÑÖƒÈÇšü”¨Š¦¥8çf.­<¼‘Þ)V´¦=$Ú3^¡uVy{JŒõÇg0±¥ÊhZƒÂàûˆÀlAý§Fßò©6‹ûd®:Ne65íµžß1øûFã60?Ô?H$ÓR_%au"Ú¸uÚIÇ&.·0b1Ò/fÎ’Ù"ú%Y¯F5Wœœ©` ÝÉ}„2RÅq핚 –ò“bô…71^1ûE¬;9Ç~’…¸':f(TK¬üʬ©°ÉÚ1­×›éTŸxƒƒŒ()òÛ Îá5™ji–¨(ì6`u#æXui€–I̽–{BZZYÚNíÜô›©€aë8Ïa1åYì?ykM€ý?Þ/.FíV¸ß¦Tò@ ‚[>ßÕF¬Ybã+éœ"KÔPTÍÕ5†­§”M¦;£ÂiìÂj§bB«d|M]¦°-Yï%Uma¼+z£«³×'™7¯¼šªjJ«¶š—ä‚zLèü»5·QZ¡ês¿—ôט£¼Ïœžòµ%«µ…*˜Î„Ò0,˪ ÒGâô?-ú`Þ§ b~ÃXÜÁö”­é°Ž{C½¾nj±ØÛœæ+òZâAäIçŒu’„Zlb’¹ÁÔP¾qeW=còWä¿By籚ÍÞI»ËH¤9Ž%Çð‡LÊ» nÎcÙ_’‚š€Ý3ñ1eû[kn¸Ä-h•¸Àx—}>g;I9눶?%+ç©îß´gOKÚbŸM|œÌ.œgÔ¤‘ [5dÖ¤…¨{ÂÛé7;{3QF¬0@«í7©qøE4KsÙ`ë\PqÐ6”P ÜzI¨$Úfâ<æã€#Z u”^Qe–&"R£\ÇË'ûÀªXI²H8#%I~ƒwV¯c\ŒÞ£ÐƨÕQ“``˶k³m'ßâi«5‚H#î1©“³J€åT}¤ZJô†*XŒ³ÅO9²¦éÖZTWiÞª0¥À±°¾’x¥ˆ°+(ÆpA1¥Vó y;”· ZʨœæÖì%Jž'RÄ8ÞTœg3‘}y´¶ ÉÉ„9•#ë[ùGUgbLfº²Ã°È˜³Cbœ(Ïâ=èy[츹Û9Ë[Ž9†Ò!%™”aAs MhnË `sÆòU4·–l!Žu_?é ¸q‘:]E:#Xú‰8÷ÄV« nÙÔóÖ^¢wK-A‰9„m6ÕÏ—ÏPLÝNk‘ÌHÏbF$ꙇYua­mŠË•#©˜4×Nº­9· ¸Æf½mµ8<` pzNMªíu›œÍ»=ãÜ-WO^”Õ¯5iŸ(~ ;zôœ\l;˜r€œÊX¢òÜÆuÖÔmV]ª¬©©È²Þƒñ[u”ª1*kçΟâk¯ÁÑkUüC®Ãï9”Ecq'=¤ó 6Œ v“r‡áÎÁJZºöØŒ}@î'Nû´{—ÉFWOå>Íœc¬¢Ý>"—\—‹³Nº‘¤òÓ!ŽKœÅ4Ë¥§LöÛ@wf9FûD|ÂîµýН¸2ü·vWí[ùºUÓiê­&N19´f² ãrñר‰à“¸±=ºÍñˆ­›Ü9Û®§ÎÑØ.µAÞyÇý¦übôm--¡‚0V+ßpöƒÉö›Bã2¿&Óq×0ÓëPPj™ýñÄ`¡0Äc’`Çy$eš°ÇŽLÝwâJE¶Ù· #¤ÅS±&²sÇ^‚Ì„ÈòªñÖÔT2ºe/žý¦ßTÎGå¨QÑsýà32#¶Ñ¨3ZÌC8t™ yçüLî"L“ÚO0j-™¶;žOx]…Ãǹ0œ“Ì'@Îré9i+W ŽN{˜3¦}ÄàsÏYÕm5)Öòxöƒ)¦CÍŒX÷F¡ªÄ(ýá1o²çïhêó%þ#FåÔÍ÷Ìz¥¹Â{ÛWÿ)‰ÂÛQýbÛ¦çÈe‚;B>šÅÀbœüÌy 6^s휉8ÏÄØÓXzm?û¥5£¨¼~GçØ|KJ5°<‰Ý÷…§çÚ½„¬ B~ür™ûGOhþCÇž,à|H?ÎW”ÙåeŠœç xøÈyâ™iö2yOìeloc Ãò‡nÌGë7ø‹°œÜtæ.U³’1'=Á‡—Ðÿ#ùöçøŸ‰–±Ÿ†bÃæ kv̘?1Ûü´UsôŒÊéÓ¤¬4¢LR—ù0–ØÇ%³MM½…sÙzDi%ŸþÑŒd`‰Te'£Oª½ÙK[–A…>Ó u…‹1ÜOX ùC'¤"’ çØPØ¯е±¸+c¦GH¾æÏI[›¿Ëhñ‚¹Ȥƒ&sµvª(d1—œÉörFÖæÊŽNI›:–?UHÐ?¤’·¡¨>›Qä1ÍJêNvžÒk¯£S°¦œ#/x ÌõÂki µPã°#d˜p?&Íõ»“`%{q)L¬XgžØé’ʼn€ºUVU$‚r Œv…£X”…ÚqŒÄÁ•¥øqvtÞ5ä »ÎÞùï þ×ÒÚC\ÌYFN$Ä­Ï¢¿ wëñ/ vüÚˆÏr3ˆ†±ô¿kt¸ò±·¹3Ÿ$SS¢üPvò‚Uåãp£ß1ªµìÕØŽÀ¸ ™Ín“=L%MÂlþ˜R``¡‡«=ÌÒÓ§­ˆÞ¥qÏyÎÆf:ŠÒ¸CmHªÄ ‚ ÏC™èYMZ ›ÃlFOYå”só,¯¨˜ø½‰ñÃÕ*09`¤3Þ1MÊÕ‚†r39Q­ˆ6†á`@ø9 ˜û¼&ürtìh©J®¦½¡³ãFút嬥sÆ“€3ñ>+J'•å°$·9œÜ“×üã³Cmu¼;Nú‡ek jFâBD&¦·T݈lã´â†qô»ÖQ¶àÇóZ;eƒÂâïi´­k^zñ˜Íš;*D­[`ê}§›]N¡6ì¹—hÀÇi¶Öj²÷¹?2$÷µxíÝ·Qâž@¡nP sÈ€Òß©ÒùNÔ« qÏ#ï9têíFË9nsÌwSãAéu­ Øøõ{Kæö›†…ño:ÚÍB‚«¸síJ8{Z¶N±‹ÿ´5'‚ùû‰vk®µv¾ ý¡²˜;ž¦6Uº³·Έ½šßTËŽÂyJ|SW§TøÇI—ñî³}Ê®ÞæcÝ?žšßÂ6¬¥—=ϼç;m±Á«€qÌæ×¯uäTžð¯ã7º`ÔŸ¬›„¼ÅLrÑË_NµÔÏPõu´‰e$°]£oL÷œ–Ö3š“÷”u õ¨ 1'Ä®5Þ¶ÚlÑújPä`ð¯ eDÔßµƒó³úgMââÛô«f{çûFÿú¢ÐSJª¡qõK˜nuõ´hlÔ¡TPH$®xÌæêè©5(¸:“Áã1&Ö Në [ž€ÿyE˶X“ßõ“d‡0ÈÃP¬A~GÔ§¦båQ­+œ`V­©Ô¯vG¨žæJ¿ Ÿ,íöÌ›¬·»'ŠÀ<œ!ìÒ=6aòÿ(F³O»uJÊÙN¾B…eb ¼©ËËdE aõŒL~ µúTí¼yu:aU•:ÎTüÁi‚”õÞQ‡ÇXhõ{ )óM+ðAìe_E•6óž²Ý¬¦ßÊ¿<`‘ÒYg·n÷Î8ç´5«\àÁ\¤ 28íÔFËškXpL q¹\º±Ž"¸è”­…ÇUéG/ÐÚmõÕq’1˜ÕYVðIéÇÝ-hÆ«I©ª­ï_ ŒŒÊ6±Ê©ùÌèê¡™ZC§®–{ëc·g4 IÄ-—Ò­´ÏâÐM<ž¹0Orºçg«<ÀA$Ì™Àî/qÎckâw*lh ò‘ïí:nÝeÌ¢¶ ƒÏë4®00¼ãÅXsž°õž9[ÁÉÈËeˆ¡k;@w9v,e Ä›•¼4ÔPMªx_a6ç§=`üÁï)¬¿ö‹‘¹ E³õ æNVp\‰Y‚-_Râh: ±¸ÙÆ"ÿú¶gú¡,µ‡8ÏH»j) rÄçØfT•(4„ˆ¹àgÕb¾VH÷‡ðnC¤'S«ldT?S-u,O(9/(>ì{ÊÜIè`®¾Är®;Aù×·ïF²ÆkîGï®Ã†óNIè}¢ìϸúÿXéy#Øçõ‘_0r®GÚKK¶99÷÷‹CÈêôê8ù—¸R¹œá^î¤þ²š CúÃCÉÑfUêÃ?yBêˆú‰×VÂA\îìeyOª°¿ÑyüE+üßÚdjks…É>Ði§Ü ŽÚiô­K~ ˆjln¬ê«VÚs™‹¤ÿÆ Ña°C¸ŒŽ:ˆQNÛ6úテê“R®xS™­MFMÊzœãë©[v?”0Êl¯{¹À<ƒ ÚÕÙÚ¿ï+ñvnËRœ|ÍÕ‚8ˆÖ›Jl.ÍPdPyùŽÙÓkKØÄ­G¼ú›–÷@ÈÊ#5i4§LæââÐ}#âoMá7ÞËäÒH>Â:pIÛV*[ ž–8Àê!VKÔ®·XìX(QÞz7øp-Cñv"/p:˜öš¯ðþ4”noêÿÌ/è·ôð#EX[CÖAÏ¢WáBiÕÔvGt,ö+±ô">ý¢ôR•ê™j³«gë#u®\RúªZÍJ‚¥UWy†Ð“ad%Pu¯©zî ´·¤žƒ…Õ,änÁ^ÐÝCšÕ-!Y[ß’'SMá¿íÛÂ7ÒW¨1O+Ka@î­õy€dˆà·Q£±hkÑè*H(:Ò†ŠßþÖQW˜Ç!x~Êßþ ñÎyгY}”2½ïÀ4KM}ÖÙ,íî¤ã» ª\mÙÊ1l`J»Oª¶ÍÛH°3§èP£§ÛæE%™°Ùd=â—ìã“nœ vB£ÕŽrfE7š|Õw “±WÍ]ÎØ§B'Nr~#ÌTRŒNÍ´2ÞÕtàßEºqS-–جxúy“^]5~]EÐÈùžÆûjêM Lw÷œ¢‹5©]!I,S 6N-ZmE•=ž}ŠW¶:ÅÃê0¿šãwLÏ_áÚÀ4ŠšŠëAVU_»®µt—°P¾£1‚$Kwɸi¦Ö›Í&Ѽ òx‘ì´ª­|À=|{N°:VarÖYÀÆqÏ1O¾­5ЉARÃ’AI-&Ù½ ªj™Í¼‚Ò½ºœVI'Q·§Þ›% üŽ'`Ü?›#Ôa17.Ú4»5ÁØH¬B»5¡ùgcX¬Ú\p™9Ý9ÞI-¾¶$zsÒ;$l5š„@rÞ®A8ø”ϨUz‡¼ô:ktui+ X6"àä}GÞ CøK/_Ä×”',´qÑïÖܺZë)w.^€÷Š~2æ»OQãºMèöhk nr ÿLáWHUòì êýGh¼xènì§âîãûÈ5vœ¬%ÁwDÀ'Ô1Þôµ2ÖÌNÐÀÑkôsúÅv\êH `{ÀUÄdôö4>QÛ‚8=å¾Ì}¬y GÄzÑye.œãªqŒ'ß2 e§ùa ° ó{€3™ÛÒø^™ü>» Ã?$µmŽU9¶—{£ß¬ç›÷ªmÙÍg„¨¤šO# Î8€ÿc\têWnæÃžŸ²B™_UÊóN~ï,[î¦u4^úË u`:ðÙ2üOÂ_@Û~‡<çÎUù2“šæÂç"Þqƒ§L.f'w”8Ü~ÒŽ–ç¯röÌVó£ü™vSÎÒi~höoÚukð«­òÛ#®A•ªðÁ@ȱXç €ü™}¹¡‰RÀ‰Ÿ®™†¿còO£c‰[ˆƒßp_R(lô§&.H[rGôʬ“3q,+=3ÖlŠJŸ¤ä|ÂJ{Õt€ô´±²ûߎCclZ›­`6€|ÊÓ_82³¾ëÒÖT€8Î`›S©R¦Òzg¼5Gœtù—Ÿ™ÏKïgØø˜¾ëÒÒ‚ãÄ ÍÒß(´GHöXù²ÂS¡ûÌ:j¼×ŸWíàót7Þ^þÙœïÃj‰r¬£Mˆ2îFFqótM€X~ò‘ûÎuŸ›]XÀüÌÙ¦òØsŸ™4¼«¢nAüÐ6Ù‘•íÌ:/;h¯,ìÛqÿf½5‘ÁÆzBè¼¶Hê²õ鉟ħ±ý¥5^¢§ Ënt Ý+Eõ ÇyÝOM=-m–GD"+¥Ó6•›S°ú\mø'ÕXÄÝaÜ}9ŒÙ[|^QEãËUž³‘vš­5ï_™¿km³vëµê54ÒÄ8â#P+€{ç¿ÌVD*P« €zq2ÊÍkÎG¼íÕnšGÃܨWn83œ¸³ËÃ1'Ä÷š+,`ª¬r3œh3¤»yV©Ác™è´:êôôyl­¹›9´Åºëj¾Ë<‚Å—ü4[p¬ðóR‹,$p¼ÍH`BNãÆï×xƒj쨫_\ÆkKS.¨ÞŠ#qí™3Óµ‹|;Q]maL¢ž1gJê°­¨NW*ß3µ«ñ=MÆÊÙU#p‰=q]ùuê­Ó+5ÙJR‹Õ4ÍX¤3öcÖWUš}vº¦=<޹0öij®µt¸ u-¨a§r\|ö‡}> %÷ÃAý'€é5Z¶Û™¹äÆs´ú0 ’UŽÒ{ˆ+õ§Ô¾•7§ƒï4ÆOLîûÙýG…Ð4íbXùLlv§CMÊÏsãWŒÀW¤~¥4•âµ±Ó˜ÕyHj¿ ¦ð€jʪdyÇÚcU¡ª¥k×TYU}$õcó%Õø•UÖšÞ¼ôÇ?¬[T¶­m­Š³zxè#Ö»+wÐZOÔVÉTPØ,'A´Ëâ#ÏwàðHøœz6Õ©zìáH%XÆô×êºiòzc¡âT:è'„T•PŠK($ðLäšx“’6¶ÒAë¦ýeÈoR:ûf/mV×m„)Ü[=£ÔˆæûtªðªõaRÛ0£‘˜—ˆøu:]5»X%¨ÃÓŽg¨™Ó¶²ûBiƒ;“¿ŒbgůÕêP.ª²QH f9xµ¿gÎ…Óhëw¬Ys/ ž: ÑÕh´§){`r¹œ…ÓÞÛÈv]£Ž>® ÖÛÅk]…ÙHÜôǾdïöz3¦¶ß5o§b à÷uè7«\î|ÆlŒt‰®¢„Í•.à¾ÜôŒ ˜Š2Ê~£Ø‰·•1©ðÇ;ìVÈ\ž2;Ãþ †EDvòHô‘ï6”ëyeÝQ<yé ¦ºhJlYÔ ç—³ÿ:VŸÂõ+V·pUéÇö’í)¦µÚH ×=¦h×]Qó)]ìŒzækÄ5šçïѨU<¨< xÍÄ[ªBÝIÓk\£›NGLÃ]©ºÌ¢>üˆµza{›El$œÚZlde°¶1Yãwe¸nª5:K6êÿ¤˜—k¨gÓ/þ™Æå3´”ۣӥƲYÎ1ív;žÆN,mÃ0·|—$¼;[~›T2¥_ùËqñŸ]rÚUW=sóÔî¾ö³9ã"]lÈþ°O÷ë˜zßeôz±R€ÈHo«ƒÖÖíe®Å °aŸa:ZÆÓ¾žáRîß·nO´äj)fP Ïi6Nôrýº âxf¦¡½áºb÷mHQMF¶;‡xº!ü=àî^ê3˜í~#§ò€åOB0fžX'·¼>³V5v®¡ÎàÊÇŒIñ–œÊΆ¦ÝB.ï+nzüÌ_ª¼6-EjÏÄ5:æüÍcZ£ …ÏyŠ®w°# Ü¼©Ž¢/4©G]—"¢ª`…Ï=gI¼Uµ5“äÜ ¾ÿ0Z­Û¨Û‘X<©t6-@—jÎ3Ž¢ã2] k[S²œó°g2ÛÅY?-ôÙ_êÏXjüiZHa×3\ž$æ½=+“Ö×p³Pš­Ìè‡Æs¦ÕÙááJçwqØÎŠj´¾e•kVa” n›ß z·ÕÙGuäÅáïGå µ¯9ܵ°%8ÏÔø¡48qµó†é3uÚwÛøjv:‘Òsõ,+}Ì0‡ƒŽ¤üÃßBÈeõz_(um¼}=╽w8ln 2;FƒéUšëo¨{K5%EÜ´¶p;²²úV3CÓ¬T]¡r0Aâ/æT £ G¬»NäÔƒÏ0úk4õé¬*± ‰SZé7[rõ¬†Åòרä‰)s[õ•#©ÇHþ…´µ0,€Ö;Äë[G†Þ¸.FIÏX½ôwŸêº0ÚCˆÂ_A¯,¡³Ó1M]#qDPêÚ~!©¥UÆWЙYX‰5C(¬œ)SØÚ3¤qK%©–Ǥ‘ÌëÕ¨ðúÙTí%—¦:Ìñw_ƣЪ\Ìî;^ÉþÄ n¿§¥ÖhQ½B*ÍŒ™”òJîsƾbÖþì À´¹Œö[,[o‰Y©Ú¢¢p1ß3£F®ª½mXž&êJÍ)¸g+ÿáŒkn­ˆGØ«_§ž²&‰lQåX¬÷“j¦3Ý4¶iVªWÑÂpىݩKnEAȧB mÓ-VµÏM£9©¦Ó£ 7Xª@:|G,öVo¡«¾ú@e\.G2üO_fºÃyGp;‹ÜLþ!žZ’õ°-ƒí:ú/¦´±,Ei*HïíE%öâQ¦Æõ åIéâCÌØ îNØë[.Ô#=D/­¶TpGß´Zät‘nÔØÞE[úà“Œð¶iüº”7ÔÇ´sFöQMh) „<¯S÷„zìÕ!CÃõ¾#°n“:›†çLãƒ.”¾öN²O´%ž«±Ò9äõƒÐëGe›»[€sÒ)²r2hímÈçnðrG¼^êm6ùG‚ô÷uºŠ][#Ü|•V_}Á÷m³·=D½IöÍ{´n#¡ƒ:Bжù£r{DîªågªÜ­Á÷‡]F­i5¦|±éà `E2XÃiß]q´)À|ˆQër¥qÜüCÓ{Q·až0L¦ó©¸²¦Æ³Ú+69gmOK­„ó܈VRW9 õÑSXB1ä)#àI´2ìÙéêõ2|yUä«i.EÞË…ès%z{Ó*}}>ñÛm­Â®âHe#ENšÅ´¥éexdœs;z}^³Än5ênQXú±¨Ó®hy=È÷ŠãFãŠ+Oyµ îÀÇ1÷Ó²5¬pjOæÇY Ÿ+ÁÈϰ…–+)FÈé-){XRÌ{nñ›J!ü=¼«ÕK1RöÌ1æSUƒ^Ö ³p‘Öf«“Oæn¡Xg üÇ Z¹l8ÇI¶ð{íåÈ@yàñ&e%=9•jª[Kã«gi!µ×/ˆŠ…hr„ ЧdF°ª0 ·¬Îíƒ(FO¼ÒIfÓv~ß¶§W]­Œ&3Ô{ÌÙáU€öjî$p¼Ê{5·€û”€Th»joCËî%¸ø‹ö~¹ºrj¦¡±ÛÓ‘È%¶T‚ö¨íUÁ$öˆ [ר¬33¤†ùêõ w…­JNâB˜k\ÀÂxÀ{©*wÚăØ¾¢–Õšöã Ž3#éT&@Ë.Þº¯¡s³nyÆauê ‚õS§°# RüñÚ>Þ pЭæÔ$ eë5¦½÷ª’Ê9=„mSWªòô‚Ðv1ÍY­•´ž×Gѹ— ü߇ÜPíªÈR§€z˜Íž E7 µÚÍÜ;˜ž·ð”0M*–°:žÃ¼aò‘”i€`À†ÁîbZzìeZÙG –=a·· 0¤ÈÇ0õ~k9ˆ±› “''RšSy-Ý€?3²÷x}äàdŽXŽƒÚrÒ¶.<¬aGSÞ;¿Dšjõ ïécßï.Ébz¤jm3[cÖ£hßæ1¨óQjŠ×Hú‡r`«ü j™ðʘã˜ö¯ÆÕë+E TN9ŠcÇÛ²Wµ…j–‘Ó¿¼Rƒå\26¸Íjéˆ ‘ßÞOýnÇpcvoUÀÂÄæ7ª¹kÑ5¡ñæ‰ÇLÎŽ¡§Ô/â9Ú}@±Ýf¤êÊ"¦Úª9QïVR˜òOM¥¦»T–-êçxë:Zvjµië ›÷ûAjô¨t)våWs¦^‡ÅlÐi™J³ Å¿Ê)o¡d S¥¿ñ,×Y|GBf¬§UM(l$"®sï&³Ä²ßÏ¥AÑy—â*oÒÕUHEjóüÒù³”ñ¾€€ŒðU¸ öƒ7SUæÕE9>–î~âaè¢ì=:ŽæSi]*¯uYÈĈ±ÿle¯«œÓW—óÔúH=ŽDzk+%ÂIÏ_ÿ15]ÖÆC_cŒÇÎÒnºu–HR¤²ƒÔFªð±§¡_`%rêóNfžëhmFÛö íÈëúFtÚ»+&Ì2pÛS ¿±6[Ä4é¹-¾æÞ¼tí-5véRº© Ϫ_5–ŠÊ•¶w×ï¶¶¢Ägu}ÇŒG9·[GãꨵKKn¤ç=öi®/qkrKc†¬=Ç~=+ô¨ï ¤Óv£ÈËÜž>“ì"ÝØ×´{Š­YmÇ$žóÖx_‚Q¦U«Q»¨CÎ#~áh©Fµ\½\F/ çsôì=¤Ü·Ò@ÕjË×±U€=öœý¸9rYŒjâ91Wp>ó5EÇàIœL&Q013޲‹qN&r`4óÁu é©Ê¨ç“Þ8J¨å‹cžz˜ ©b«½[Ë# ޲ ™-#iãÜÊòµZ+økƒ)$ûCa¿š¥Sî­™¯Ë-ê ŒóóZkv!=°ø‡–PYrìªñ BŠ|¼ŠÇ¤ƒÐL…ÔXïüUpAôŽ¢ uv¥¹BÈU±Œu¬¾3åÑetµjänF#™U3l×áúµ©HR@sÏÄO]V¶­M{7–0®§´-+«ÔÒ•Øä¾9lB¾¦MVÑ©³bŒzúÉË,¥V¦œÝ }¯V7zFõš;‹Êr„v—M4U[  ±<–èqÓø¥Ôù”ª«×VóŸˆ÷-äxÙûõçM¦]©éld9à‰­>º«m[µªÙ©0¶ß°›×½»MÚª„Œ)ÏÒf4†¦OÃÚÁvãÒGyvÍi3qÓ][x•VÖøUb´Ö›Ee?ï±pë†Qüß1/ÕUMûi b°ô„ãË„Ðø•ÕéNÔ߆ôþ°èµ¾›ñ;.ÑYQ®ÇÚüLÝ^'ç.ãœôÄ»PšÊ«¨nME`îfè>Ó]ÕY+¬í ËÎa–²š²WªMÞ]ÈÔŒŒÀÜÚk4öWMc'ømÜýæxîp¿yõÙ±XÖqê2­Õ%ÈꃒÀ÷ ¦•£F,Çó׫[¤ZêòônX/Ð÷•¿Ñxè_Õ®‡\5`ª ½`<Æ+ÖéëÓÐ6‚Û›¶fý;ÜÎÔYè˜émtº–4…£ =@ŽkEqÜ|WT£h@pyj§Ï‡©ÜKmÁç¼E°:vÞƒÒR­^`ã ‘W}+i6Ó¥T1rHÚÄ}"t´53ÕmuÚ eq¸ã@K7 (0“Ä*¶Ùj=dIÈwµ][[SZí¿ôöùŠÞš›δ®\d(>ÓkM5‘K:Ìj¶hWyÝmGಷt4ƒYezÅÂ.YùËwžƒQrÙcѽA' “<õzN0­•f õ?’•*M¡¿1¿¨É–z+…öè©Mðà‚r~gýo›¬KIÜkà“ÔÎ…:1m¤xËvˆê?ˆ MJB)ÏSºì¼u]küYmÒ×k8`[só5¥ÕT_ʽ³Èç O6ÎèíšyÇxu­Í[“ÑžîbºÖ•';zf].­™Z ‡h`zÎMÌ´Üv„>YÚ£=§7N-Z^ÂÁéz®MC§‘*cŽ„ËUíÊWCE«Z é8Z»´–ùŽWa'óÒ è«r» ã' QFîµõ`–cDxå!\m䛺çk *cŽ:W 38ò³éÏ>ó¥nŸÁÅa“s±ä.9ýf«O5mT*\»oOˆ[ýW1»HÈ<åÞ%e¡gÆ1 ¥ª ý.2O¸ñj§kiê8nYGH¶zÒüm7fõ T“ß1»ŸEæW]`dc÷œÔ,Õ$àSŽÒ¯jYÖå8Æ&9cåw¶žZ‹Ôf½KŠ€J³Êçö…šF»AóÕFr8<õÌGkÚn(ÆcUhY”êjqžN—5íž·Ó·àšú¼Çü@D%p1ß0~7¨ _@¤âÚÁè0œúëÓéêÙsiþaÚ%©Ó½ŽÎ6/c܉RÍ쬮“ê?ÝÖÅ,ÙSŸ|Å|>Úp£&ͼ$ÓUj€ˆØÀ#‰.Ò0©#ÛàEå5£˜Þϵbê˜Ò Œó÷Šè¬Ôè.léÉbO' û”7ÓZÕU›N9Ç|{Ç´w›t{56žW'˜N…áÇÕƒ¨µw¤i½%uŒ5‡q íÝÚ]õy×¹MØÜ2q%”Ñ[à9µps¹zE–ï`>[¨ ò„+]"º%%ÔžÄití[”­›Œu/eZV­pΖ(ÆÒ§ £"°ž°¶hù¬×¤ª»\7A=LƒðÌ T»pf,¾©‚qÙ=LwH•±@ô‚Ä•kE«6R¾òÕàaíÓ×^¢ç6œ(>‘ï¯HÕ\¯PÀåJœáqÒgO­®€wiËVÇ+îsKÊú]³Nq^Þç¾;ÄQÖäf~™ÆSúG_Y¢¹H];y˜êGIÏZM·³ÖÇÛ¡å©9)»]ßÒ±¸8cð"ú¯¯S`¶ Ý9$u0nì ¨}™àsÆ=¥Wâ V•4€ÀuÏÌœ5ØÊz?áÞ"u‡¤€ ñ·5¡,Ky''MâK¡¨Ðºqû²Ð—xÐÔØs¦@ÄàÆ]»ô™4cñŽjt½,çpê" —ÌC`õƒ³Qi±ëèAÁ?0Zšˆ²»ÖßS`:‰Jw<ã«F­¨V³é¬iÊm ÚV6íU¶–ÏxM&¢ÅÔŒ>Xð7F|SUš|ºÎHኜƒ–^  Õ_nr›Ü0eop;E5ž#ø¦+Í|ò¼Òë*]%UÒ_Í‘À1C¦\Î]˜\f÷Ubn ÜpO´Ï»ny—m øz®aóÒé,P¬øøÇ¿e&øLl@J±\ŒF’Å¡y9ëúkË9tbY wTlÊä2Žý#Ü¥%ê .m*§ ½Os: é+kuK¨À8œ2ìdpA ûFîÔ1}µaTž¢ŠÖFRŠ«kü²Xï “ßUm ‹Wvã׈Ô6›,„# :¸1e½? ^Êß•Ê\Êk„øýº6ê´ï¥!œc–d§U¤] ÑX*°ääN.›OK\îISÏ£oA°é¨¬­nä2ä EžS\EaŒß%h ¢ç¾ éQRÚÅ–í„rH‰z•vž‡¸„Ó®žÐMöy@p1É&F#.jÅÔ3¹¬R=?0ÅõŒŠw•`˜ O÷‹é|˰šƒ„W'©?_k)Ô;ØÖ…<1•­š4¶"ÓÞ­¿>ðÃôšš2/*ÊÜ‚­UZvFg²ÂÜ»zLjµ4=»êL+ ¨Ä/³whÑ57âö(‰Ç#9œ’öW€ÀƒžòÖÂÖy¸Gð¶Û_—¸zÏoOŠˆTØÈJЉÁëØÍ£îSƒ¸Fk¹^šrØäžéai|2Ç€ÄànÆ"ÒÕž8˜o¹€¬¶Aí+¹<ÂÄg¾;Âé*óÆÀbAÀî$ïG ´ÍhBŠJˆÒ D²×Õ2Øp=æX F Û´÷ƒÕ:\PV˜ÛÔÇ×CI£ÕjPõv,HÄèÜ´^¦%·rÍ×’Jƒ¸“ÏÌ3jCædÉ#¼¿-ö™ j/ªËÕï!r2!)ÿ|Õi貊ÓwVÏ´B´[æ&O´lêë}9¥ë¬òÑJw“^"• +ÒéˆÈoNO\|į6-åçv;´*+¤6ä K6nL¾VÔ^ }P´HÛjQ6cœ°çÚ:u´®•¶5™¯íï9¡F$c'§±„³U½j¸'Ã|¦ûò©dMÛט£–ÉÈ”ÃTÐÀoy»hZÈQ‡ÀÎHçe×*?àÏ¥Ó Mî7²z{Ãk.S§k4̸ÚÜvœEò†ì/hÑÞVŸ-HM¹ Í.[DÅZE*Û€,xÉë6k¬¡™ AYKPºÃ¨Ùš#¡cå¾Ë2?—Ž@:ªÔgB×ù¶ÚîY• džsú7µ¼ëœîq»ŽcªUT0©AÃ;È삤¡ùe¾Ä¸Ó¢éÕƒåcÚa)¹lÆÑßâÊv¬Icê'‚;BØ|ÆVv)éõï möyc/PÞŸÄR½#V+MÛqêþasf§OZ¥"µó ¤Jå¡nåè—æU¶3꬚ö r%YôÏß%ÛNiÓX©ÄÉ\¢×Y m[†^Öb;bC›*Ük È=ºI\+ƒVå#·¼:Ú,Q[)ÜÇ©ÿ9†Æ¥wŸHìÝÌÍ•jSÖÄSž°ÆÕZ›Ív ¤©Ïj–ê],´zkÀè!ZŸ6êšÇÉÙÎ:bSª%˜(¡àžñîÁ',3:T¨Wsç†ø—SjƒìP ýDÄÓyeB¶p:J­°YI$v?›¥–½‰¨²Û´äYfïE}GÞ*u>F #Ö\Àïï y§ÒÌ9L¿94­Õß=¡/èî2ÎÀ6¢÷"²›T¶ Rì+K8,7(ÏHæžúÒÆê÷*wt¾Üì¿hãÒGNO´v¦FZ¶­ò –dÇjƒ)%S§iuÛi?’”a¹é¾ëkuó]+Æp;ûC‰Ú·½l¤’èã${L­ šÁ Ç9º}>£SŠŽ×Ô±í)Ë‹ó[9 a[hàIÝ*º´Ãk\qÔ®§ÞjË‘Zªé¬•*0AϪó© FœƒÀÄÍzkB­‰A%ylv1ݧL^Ϩ;½Ì¨ç0¯£V­)±PX«»ƒ“mbùím‘³É¼ëxG‡UÁÔ¹°òwtæ>4-å¯ Ó6©JR›íܢ޿zÏðê4Åon]¦´ú}?‡PUœ±îÆ#ªÖùÇnHAÛÞE»#öj©U.à åj|Aœñ‘¶Ýüƒ ‚ûÉÙÈÓZÏÔÌäžò³&sÍy“39˜“+"dœA= }â¶ 9w3WscyýcÚŠªØî¦ÆQ•ö3áôW£MP¼5Égz]=Úì¥Gu¹Êã™ ]•ˆÛEçækPàR.P¤ŽXgKÓSUUŒ0:ü|N]VÖno9w03Æc—Pø=pÝ­¦Æ9M‡ÑIí-©RêŒwǹâVu@*5‘ŸaÞt6írÁlÌ›-äâ—@•išêŸnœ¥Óî¼ÙaU ‚ rLoRš»­ \½*ù{MYbÒå”ç9ÈÛÌ­ŽË.žÚ]J©ÚéÚ:š¿?TÚvD­Fì`“Ú µJô0ÎÑÕ—iE¯HÕn8Ü,:Fý ôùj*€~ co}m©¬”úp{Ÿh…º¶±¶X zŒG)¿U¢]Úv~¢Xt1Ém /ðñ]â¼á»‘íÜGh©tŠÖV¤ªžÚ"5VꙈ[G9¦—Q©v`ne=QÁÙge¹D¶K¬VÒÖÞg'Ž 6›W¤k 4Šìi@2?I-E¢@7¹Ê3‘ÞWᨲêïÒŸ/p&ÕÆ2eý ONm•”¼5[‹ŸQ´fº^µ%é'Ãiât4´R5›¬±  ’AÎyÄ£u»ðxà(KÔצ §;~GCFiLnÊŽ:u_Cm–¬ëéø÷›´#é÷-@°£íö™©¼ý@ÜÁćKŠe룤Z=µ§®÷¯5–Uøï#Ued%ÉËrÄ5z…Ñ«rçwBxÔYv¤Ø1OEfÆßˆõKb­•×X@pëò`K-w98œ(ö×Q]ÖÓ ]ÌOòˆ°‹Hw=ý£ñ’&]Ý5j“·Í;‡Oqˆ´¾Q¶00:Â…cc±Ø:1¿Í·eJv’3ÄžW¹©¬³q+êOonðÁª  Ýš Eµ G\¤r%èëBŽobÄG¼|Aßm¢39®›2EcŒFêÖâ½K1Éó}µ8*£ƒ»Ì(,Èä– sžðòû+?cênÓµá+¯egæR5,k\/õ¦m”m$Œ`€8ëóÔ]§ü'áùàdœ˜[/Ptç=ÎŽÀ&UHŒÑ½7¥OL °ˆ|ÓÈáG^$Zj«)Èä8aÁ˦ں"aû6À<° ³Ûâ](¶i? qÎ$ÍÕ·¡QМõˆnP®±ÛòðÔÍ­h4ÞcÏeÄ}|+S¨)zVkÚ2œf#â;…^7X¤ JšFÂ"£PÉe|Û›æ]l*pÌìW¦&k]ßÄV  #BY¦jŠó·Gh¼”ÐZ´öµÙ9äm Q©Õ¡|²Ãp9àhK•4u(fktR¼ úÓ¨ÒÓ)ôÌãŒÃ’’®¥Q–´²®WÚ /UNïH*)Á… «IÔAÆ ã®f´ú€Û*­p1‚â0ÂÖ–hUØ’ùÈ6k_@†È÷W)MH60 àtlÂ[sÂÅaÍ@®½m±¨ß•çŒs˜DZEj3§¸…·Ep¥/Bª…NNzÉæyZ!S×ùÎCäw¬sÎ;Ü`/âNÅÚŽ=G=åê´ÍU"Ưaluï3¨Õ®¢êîJZ²½N:ÇGˆ×uªž%¦ X\©}£¸–Ü ¶*‡Ôï¬Ô ­µ‚¤b¤Ó08·bòÁHæ%°¶);Jò{ÈçÚj5V‹HÔD^ÚˆRÕ°<ò¿Óª¨q×n1ð=§SG§ÓÚ¶ùn7ªdñý£/Óž…šÂÝPd~²Î¥¨*KŽ€ªQ@PRqítöµëe {11v/éºí®·Ý¨bŠI#$˜Êפº…qkŒž¤t‚ »<›Pyª‡¤±•ATHÎcÑãlMVžŠÕÞ‹™œ‘Þ ¼ï![¡û{KôqÈ©Ïy¢‚Ë«u8\{t‹gbÜ+°]0%Fø›Ü(_)òWpu s˜+ƒénR¯¹™sĵkmmæ²Ê8ã¨ûF\3ª[¬µo*wI*9ýf¯U!Ó„8ûO6úÝŽÆBy ŽfY–ÔÜ~¢{‘ïÖ˜RùÜ™u<ŽÆeíZAÝJá¸>¢¶+³$õéÈšKïW#rœGXµa*”ªÊÔµ‡jvv&V©RÛwPŽjšrè*@ïŸQ̱EÍQr¤Ö;²ÔÒà>öÎ ;é… Mœµer8ú`¬®Ã©b\ÃÒ3ý£]ÍVÛ-åN6ÑlôSÉkYÃA™Ó‡½Lp«ž à˜ø œê¤ÄOTr²۹sìa²nÁ·JTúœ Œ‚cLèän–åÕK[YTRØ›ÝdZš¢òÛxÂ9ÀÞÆ`¤ÉCìÆlÓ6ðI|t˜/s&ô;ŽyæN±Š¨«vÐ:íæú;t« 3omÈyÜLЭ.@«èµGÓÐ÷Ži4õk´„[yF­óôõ™¾oˆ*Úê©·nqϼvk´ïe(¢²Ù#<òàM`ö)]Ȥ¹ÀÄhP+áW FL&‘?ûÃþXûlB^E“Np—Í5¯ ï ´.¤»Õ¹_œÎc¾+b Ò…Q“9Î9ûEj¥t²»ܾ¿Öؘë Z¢TÇ ¸;Oa5n÷¥ê=z+ÔB¤¹À »—÷Úz®±-Ç©àdôŠð=>Mi½Ü'ØÌaMžm¶ô8«;…Ý“f2Ú{Ék¶×œ ŸÚ84nÊ¢Pz àŸ¼ºXºX-LX2¬®½9 Ä—$Þµ\¢­›€<69ì@³Eêó9íŽL"ÚÛYmà¤ÆªóX¼"úšÿ­&•6ô'ðÆ•ŸÉ5Vv®rÊ FfÁõ`õö–ºkÁo!FAÃØÄ ³ÈÓµMé±Û%”äý¥wÊeÒÛRÕiÛOYl–Ü[F³s5ewŸ¨’aA næ Æ™´Ò5Í:¬½ 4m.÷± ' ¿ «jÖ,‹Ê“ÜCéØÙnܒܩРÕéozýEÔñˆ¹ô-†(±QÑŽæŒ@› óÔä .9‡·Jß…¥Ë ¶,'â ™o%˜mí'•2·›¨rA<œIWšµ°zÀ Ù<óó«ÓêÂÕÔpDZ1Ûµ¾{”8ϼ¹"÷ª\€K)t/±ö ð¾Nàá˜ã±Ï2©Ú·-{©=Ry Ê_¿ðu¥gYÆà{AZW}5g sÜÌØâ«UHö>óA<Ú Œ=j0%Ë}lÝÚ ¨¬îÃ)11:䩬f^qñ!Ô[V˜-®Îï¶f†\;J䌩þa©ë†¿2Ò Á†F}§[EujÎúÁ!xSÜÄ—V®ÅÐ`(Û€8iV>âª;ÉÏI;×e©Z»J.ß©¬ír2k:6²»p +p֗˯Q`½˜…Ṩ{1¶·;Ûb.} BÒêîªNÏxÕJ@,áqô‰×Ò†µNw”™Î1êŠüF‡.Ï|·Ú{¥¿§•¦ðúWn}„>’Ú´ªõ ”´c$wž¶Ÿ ÑP¯MXÏ_Na†žŒRœtôˆyb!hjnÑæ;ý%vñƒ¹µöéE:]-˸þcú§± £ HïÉ¿I˜ë—‰ðÿ»w¯HFNNî9ž¢¤§ÃhÀåSÿçháa“ÏN³‹â:ÔkJãßÞE»ÝÛs^Ç(éó`Ìe†SÓü¥æJ˜ÄœÍL“¬Hp&K|̈5™’ؘÝ0ÄÄz¸ï3Ã@L n±­o”¡©ƒ¹†óu}w&Ö{T€ hõ쥗U¦/¼õWÎÑ퉫f²H;‰àž«:o[;奵y¾ CŽ‚¹ÃÕé4âÝÚ-Ê ÊäfÅvÅ¢À¹Êû~“Zg²Ê—åÚ=ù1Q¡i×=5%4%~aÀ`2I>ðu£%Œš§¦GɇVÓÔÕYU†Ì{ûÌk]K3? œGzL¼…©× )UÒä±ê`©7š•ŽË9'üⶇURW*íéŽxi ±­ÝÒÀzÈoƒí&C¼±]#Tˆömc`ñugJ©§Ô8€ŠØOÞc[Fš¾ ²)>„^ ûůfòÐjÎÛÜõ2¸£škH•†¨ÔR¹¯þc:ÿ‰j< Òí=vàáN}ûÏ?]~b‘s¹ôaíc¨5šT¹SñÒ)uNáÁ5üÛkEE¬Ý#€¦Ó³†zÌß§J(»ì3Ô-/¿}ªªÝ2O\÷-ÞÄ’4¶2o“œ©ÏA6¯m«g§*Üþ“¨¾È®/`à!!”ýFqtÚ—ÓÞj%¶!Æ{:ªÜfŸ&›‡›IòÔcv&uèü u•P—9Ä_[¬[ŠéÖ• ù€ðÆ+¦ªÀM* xÇP!gØÇ_G¯×!µ×ôô+Üö˜ÕÚÁª*<ÒÀâÝ“¢[,Î,Ã/ü°(¨@ÉÞã2wôÕx…š½;«6ÛÏ(ÃÛ¼F¿ÅiÕŽëyV'Û¬0Zï*•>®æÇÄ3Ô‹§0î ápsˆíô_²‡Wm¢¿1UC)ç9ù›ªÏ+NÞsgiÂàä‘ó#¶-j¼2ä:L[N›M^óp±óôÚ=‹Šn@)m¸ãß3:]mfm¦Íøû©êc NQ¦'Mk%Ê9^¤O µÔ–67Eé•aKµ[Iâ{i*ɰ…V8â5m þÍ°Ž¤5„ûΦ›ôÚ³V¤¦æÃ)ÝœN¦¨mðÒu¾»1Êó˜IȽKôìÌy‰ü¬W¬Ö§\5šÑºrn9‹]´ø{O§ùq,4Ö¸'#§ÄM«|¤-sfÂYסnÑѧMıߟí6¶iõ”þ "éìA‚££æ+§{\6rq‰Vè§FWË©/¬•ÈnñÔ»X]Ãdƒœr#Õî«(sŒœÍ"ÕMÆÂØR¤2ŽA3=ý.ë\RÚeo * x=ŒgÍ £ •¨'ƒž¸‚È¥NÖç¦ïx0Ëq°,þlãí+|'[àv©)ÓÖ›ž˜»V½"-uÉÑóóí¦†· S8êÇ:%´‘]Åv8'ÒsÓÞ声*ìK*KWÌ3´åµuêןå=œôAXô¦CÀ嵡ҷŠX?iF:vi»¥¼BÊ5~!UôØ0ä¤Ïˆ]G•M`;e˜“ŒK·Á4ï­»ðÖ:”;ƒc ÄßP[PÉÍÑ‹qÖ¸Õª2VU”yâbŠŸRE4Ú:£q÷Z¼<ÚåKí!I qÛ…zAËw2q›;gEŠ=ÙP>¥‡¢ô@l¥Îï§8ç™­Ïu¥™üÃÓ'¼?áÒ”Qr$÷Ìt¥àµºc©¼Y¨w(Ìݧt¹EU„'83¢-kÃ?¤0äqüC[ã<!wGE•ov>Jƒê\N‚èì!¬®¾ˆ”Ölc–\°´êï¡”³‘^}J9‹š2ߦV­E€³à è`ªºº.bw>ბÞoSecPÞV¡¶è\pb×8±XŒ€Xï 4Rìz…©æ¾Ü€sòÕ¯W¬*œ;Öð§­ÓÊ9RÃÖOóD¼M+:ÃF— Q#Ò:}ó 6¯0ët÷ `AÇ9€îÖÀ}\N’Ó°í]­s1{ ‹)·;Žyvp7²j¶Ú]¾¡ž ë€iÕ™ 'áXU±•­ô{ŸKéÆ2=G¡ŒÒQ¨ºœVÔ!•­Ñ KüÑ‘íÌÅö¶’Ж9\ä©Ä™ºsZe¨A®òÙL‘1øvK<¯7è<Ø€ÔY^«\ªÁR9aïï jŠ6Ö 8ã$wŽã¡,ö}üWPõ5 k8Œ˜ˆ]FžÕ²µßŽ[«æªï¹¼ Fó»ˆÝeE«ªÌ•íï'/£˜ËÉŸ>ÓÚuäºä†^­÷œÔ"„W-Éü¾ðV ^ÊÙé,r1œÆ¿]D[mV’9À2±ÇI ¾ªÝE‚¶uÛ’=Þ†»©¾í0Æã’[·àì¶²~V:GÁ›:»tÖoL>FÕSØè‘¯?P¡ÏÒíØ·¼`Ó}•VCå² dL#êhÕXNãnxÌ2ѧµmkÕ«t;p9ÉŠCQeV†ˆ-VÉ 4—-4Š˜—Wj ÚŒ¹â¾-r{²/Äëµ­Cà)ô>ýfõ¸²•ô‚sÞ;e¢ý0®8ʧ¼ç[ZfÛ€8PHì”M¢V[ËÎç ñ‘¢ÕéYÎ6ÖÜ6{®›ÍÓÙ]„• ¹5‰Þè¨ön#®x'æúƒš•Ñ»}¬ù ¸êÇæVŽÛô¶‹~—Úr¬2 è´»;8î:Ã%~b·ç9P:'®ÎÍ£\ÚÇ ¨µ@qóMu­;ò¨IÝØˆ©*f¬/˜Uˆè&–ÜACÐæ=”‚]¡¥ôëzãsr¸=GÚIc35Dzàät>Ð`mÔå #ií:&ý(Jk—b<Ì cõš8…®¡U²1ÀƼ­+±µEvß°ö2j+©o&Ì…^ý%«VõÔ¶K î¤$SwQ®µª´\-*yËiYÚê×*UsßÚý@(ÕXÅ TuŠhn}ÏZ­™Ï'1Cì$2ƒþ†+>Ë[e5_‡£m{lwá˜ûJ*ìÛƒ0«Î:L]¨vª…-œõ‡®Ô¹ZªÔÖÃ’§¾%qØý1Z•*ˆPxÈè$65nïZ)@Ù<õ0µ«_nßJçÓœô{im¥ô¥¼ÂH=;{É×µ~f™èòÍ[o<ñßõŠÑ¦ó/Î௑ÎaœéêTßNYwg´oÃkÒkuw°`ä¡!Xc2Ñx/ª¤élŸpƒÖ.Úw½› ·žAx“lÓ­Y;Ó8Èé+Iª×ÙRBR«ŽæN½ì[t-Õt­ÙŸq“ûÆ|Bšê®ŸÂã°ÊO·¼X+XÕX\’¤‚8…®€¶XìA6í§Þ=UhÃy–éŠsiÊíÞFΘù6¯¨ž@=~ðisS©F RÄàþS>!V´”·Ëe¨“êÆ vn ÅåºõÑ©RèHd c´ȲÂ,NBö#Þ`µ6>8`~ò𡸲ì䢯´™Â­ßCTtÖ€ls¹@àÀ¥Ì/e5•»hÂc(z×ÊÈ~21.N×`Z|°ŒÞ£Æìö–Ôµ„º.F7œG5¦±r°;WÔ3Î"6jœ"ªÖEc€?ï7¡4é^2ÌÙ<1r ,O,m±O/Ž¢m漦³œo‰ª7Y–C”‰Vc®ÓfÍK+6vƒö…Dª»»,Y†ß.Àt¡YÀÜàqx ü§^n¥…×nŽ£BôÙçé®ux¦ iëÒØoSmÇ…Ç_¼Ý²Uå•Îî¤÷ÕR÷jLêÎ"¹rRpRíM¶ÕUFÆÂͬ|´6ݼŸsÓi0H*¶Áf8Ä&ÅÒYÁ‡ªû÷²æjªÂŒ?OüíP…‘ž³¸+ðýMKVY[¬GIzÍ–„ÁÔ–½8ê¤}á2¥dÛ‘§5ºbÌnN¼ra´@é­·Qäæ—R¸î ]Ú¶¸=I‚½yÓüÊôõj=%]sƒÚ)uÉëÓ“n5š’Þ Ê0¤,l^” «§Íó-u‹c¶ÄØÀà&šÊ”ÕYÁ<{ÃcNmä6êËäHÇâK)Î’»¶.î3ޤNô¦ÔM9­kÛ’7u3¦.,±úW#häE9QúÅm£F©UÇ?yštôÔŽZ¡¼òyè=¢ß„¹“ÌÏ—ZúFÍ;[âÕ¤„r1¿9Î;˜õ/´ïS•øn†ßÕ/–„R§'=Ïi¥ÒU¦@ØåˆäÀij«A¦Z)HõÜÍùÄŒûÅYî÷MçæV诙ÞO;IÄ^0nšÜ=äÞ=Çïk}æ|Ð;‘úCPnž.æ ¯Ç¶"Myù0Oy=á¨9^¯_åÕq^£¬ä-‚ÅÉäžc¦Â1Ær0g&«ˆéï&ªÛÏXoi­(óFqÒÑWï²§‰’aˆ#²fL²%mÌT0HÌ¢DÑLJÚ"5n•Çi{G~’˜dzq 3O¤³YkÛYjªÝ»wañ:!m²ÂoEîÇ’&èdz:$m¸ÉÈéxã2h*.V»•v¿Í÷šóU8Ž.§Lº}Aº‹^²ý@ï6Þ¬¢¿<¨}=ƒ*Û¹¶aôþ[#.CŒ7Q¯E©\©eÓ/JË}C¹Ä"\Ï/† ¼©Áç¼(¥ouµè)[v=¡.J›òê­«g;‰aŒüÆèktúVª†æ}e¸Áø†ù=BFÍ6Ö-¨Ø qŽvüɨ -·NXõŽ! *V¡UA‹U]ÕÚ•Øp–ghƒ±Šsswæ¶:“Ïé øf¥k±}`qŽ Mê)M•¨R¶¯$Ð|wêXR¯VE§ù€äCe؃ïÒ)%wVÇ*sž$«Wb! ㎿ë+[â ÞM;Üœ‘Љd[‹)vFêv÷í*Av=Æ»lu±²ëÈe€mFú•-SaÆ8ë%z,åܾcs´ñÞbÑfŠÅP©<yýD›yâžµ99 Òj-ÕTªtFô©cÐûBë´M¤¶Ñm[%»fdjëÕ0r}@ôÄÕïeŽRÂmÏ%seÛlä§ ¡ÕPÚK•K…Ú©Ž3ïòµ;šÚÿ.âz«qó l`æšq[VF6Ÿ‰TÝmºe­pvpW´5À•ÐÓ=Úý+háÆ ÝÔ} ïtðÖ4­~w–0qÞJ¾u¾c&ÅŒçdÒêjÑ«¡(Û¨ûÃgfØÒ]§Ô/sVODaé'ïnªê5VT+PIÏ Á†¯MV¢õ5•eÁ;OiV¥z­RØ…” +´¯+fÄØš}o™K³VNÃÎbj”¦§Ìí±IÛ·¤l°eÁ†BŽƒñMPºšºÀòÉVÄ©ú*PiJSæa·Ÿ§&u<2÷Ò9µAÞWn;MŠY¨Q@9ëûJÒë·[mMP²½ÀGO˜¿Ð–£I^¾Ë Ä‹Y÷nîcY_áÅz.6&ÒÄ8Àâk\•Y¨ÜŒ+rÜ0éö‡¶Ý2è@¹3¨oK;æž¾œ˜Ui³i±Ïò{ÇéÕ­§Uådc¡‡¾šL­ZyWçÑ´uÁÉ—UQageÞA!üä]^j¦â=ë}zª¬UËcl\¶3€g9ÑjÆÒ-AYÏ,Y»Öšm,®¾KtÚyØ"—NúÊ]͸ xAÎè:,[etzPrÇü£ÚZ‘j²Ê‰ÖõKU~RiÁ.rÄs”³‚“T l®Ý3)¬¡ïy<6¤¦µ{*ÞÙKc j„wÌÝ:‹‘ÕÐn}]ä[zV¥ì{œ G—B¨eú8ƒºýK\«b‚‡€AÎdh©ñ:—·eª8}CæZUmšuDuúNI· vsôhºÈØÎy(OO´æ?ˆk_-쬨…úþñW¦åõ›6Ÿ`Ñ‹¶ºî'§¨¨ÈÌz’o³°Æ“Æ?MÍUD³2xÁˆÛXÕ2±É°çÕŽIùŒ«EMp²³Ê¶:co. ¶yJÖ+.O¾dùh¼e›.§TˆâËx[üÁø…ÆÒ®Í¸0åO@"òzžzA:êKí;GhO\•Ï~ŽUéóÚ†òÈ /Újý+ÙH·Ï[¶îÄ^“}j,u%Xdc˜Î›Ìº±c09ÛE9¶ rxëØ{KÔQY@Ô‚€t SL£ÕZ‚{{Aë/Ó%~Z¨sžžÆ“—}·ÔËuM·Pšµí×­i¨Ã62¸Þþy Èx¼Þ¦‡·LI n<ãŽò¶5¢N¸6TTãr÷‡©ÚúǘìÍÁËvŒW¦7éÕuÛ!¿ïUÙw“°ØTõ Ö-ìçñÒ]i.¯€Ý³Æ~&,©ô€T«ŒœÉ¨´¡˜­iÆ@jUrù§P¯åŠkض™Ó¾¢Œ¶æòÜ~¦²Yi 1ÚÙ$‘ÂãÚbÝ{ù&æóÔ{Mþ#Mª\;ù0£Kj¶¢­&»>¼àât¼*½®+·N•3©bäô#´æi¨¯N¾eV‹3Æ@ÕMø5å7ž~Њ×Ö«Q§[š6ú Óíï9>¦ÖX†ÏC1pOÄ&±+¸Óµ–·PK*ûÂ&ˆ6ŸÍÕ>Ò½s¸E©:&Ió7S]å\úÌÒéüê|›ÂrÃkg1V®§E³ ¹àö†«DÜÖÚ†@¿N1ûJëØïõjt/H O¼[JÆÝúwkrª{t_Ã&u.ÎO^r Z¡uš—vR+í$ôÑ }ƒ©ªê,@FŽƒ˜ÍpÀ®¦Õ@N8ìa·ò*€„'<ůSm;Ž dbÒ³éѺ¯ %kOǤ“Ú#yqbù‰åŽê†0‰aÒWùŒ¶`oh­Ôêjp÷Þ,]ؘìpC叨Àà1ÄÂék5yo¶ÂC Lš|ë»jžCƒÈ´Þ^ž×@AÈÁbzˆC»n¤+ù+ŽAXLÚlFÅDqÁ\ðdz…7î¥Ù©ÉY4ÖÓ½ZÖgPFr9‹G5Õ3MÓa¹U.A¬L›™<Ê—#8 GµzÍ䪨s·þóŸ^¶Ý™åÖ®¥»Ÿ¦ÔÉ}—z,e㡾 l)fâAþXZžíeûÜè ~‘Ý Õ©ó³aa€è%Aéε€¸ L“ØŒGôÚ;-Óšü½ž¯¸ÌίÈ7½Ö!Îp‰Þ1¥ÔØ•¯˜ #öRÕôR]œ¿ #æ6m¨ø}•]–Rù¬Žv™Ï³OË',û‡Ú5§tJŽêŽ êâ@í¬ÑS^„XORG2冀4n©ö0°Ç¼;Zš[±æWé‘Ò´BÇ[ëame‡™Î?aíŽÝpåУÐèÅ\Œ0Ä­E,H! œå»Î¿ˆÝ¡ó*¥.äa£‚¿3>-¥ Tl§þPOLÊ“§wzs^¥G[ƒKŒ…Ïö‡7†¥*>ÕëYè´Å:}5ÌZ´bH<‘€"n¯¥»aõ0ÿ(û9¨¹D¡©îÚ§â1¨Ò½z ™ùl†äàöˆk™€ùX,£ÛÛ3©¡¿ÌÓ°rw‹ŽŠÑ5èÝM'˰‹]pA «ÔR^åRëíÈ”©5–7¨¥µä³44`†7Zl¨r,Ç#±ψΙY‹º¦â¼|*Ž¡µöØøv#’ÝâkQnÕO&Â++“ˆ¸Î¦ÅòíÚq‚À2¦ú¥gÐ÷#—qî`FàÃðÎRÔã+üÐãBΛå[äƒ6<=t{®ªòìªrcõìrZÿ9ëJï\;õ&cJl¦ÃPåGÏ ¬mEÊ`q‚&¼ç«Zá_+“ú|E¢ØÎk¿rª•e9'´ªõ˜²½Õr£o\ó7]¢Ä`*e,üûç-ZÌl'aãŽTš;N®¢±¬*èIÇ‚g‹iõþ(NJ¸ã¦óÚ—¹š·¶µÜùQƒÈÌÅka¦¡I.v‘îeMkI¿fÓ_£®‹Ìï9(árLMuM© ª›Ið/—jÔÈU†2cŸhΡ|±º¬­œ}#ŒIº”æêU[%f»™J/ |Î…þ¬6j,aÆ3Áœñ¤,ÙØ¸a‰×¿Gáµi –*˜ü§²³è©Õ >©ššüÄ9œ÷i«¥Õ°ÕX¤™ÏÓkª[¼µ*ñžÆ]¥/¸¶á°T²¬ÔÝN÷t/¦Jï¥7e›oNƒâkN¿…¹+ ´?={GèÒPºu¹jP§žN åjM·ÚB‚ŠÇ?)z^¸t5šš6,¬ZOFî¦$ÕÖ›˜tÏy*©Ž·•¹•½X0 {iì[…{•Ì}ôVÓßRgÎF :àd .±MÒÃ’}%y8ùõù¥-~‡O¸ˆô°²ºÖSô…TÖ›‚1þñÑŠÝFª–(x,A0zκ¿9W׃ñ=«W_ˆè¿ßÕQl…­sÓ¡•¯ÐyÝeöUbU¦´ QŽ;ýãUxv·Y¤7ÒGå‚qÆOS»Oå\ÖÖ´àáK}Xùôêï}5´QkÔ¯–>ž¼G'ù—kI…Þcý¦nÔ9d¤¡Ù_Õž¿? Ýø‚,p¬L›Iþh¹c+q‡6ÿÌLɹÞL¢a³ÓlÃ3¹˜.^"×ë´ÕU£>Â-ž¶fùH3ŸnwþÑ]GR£ ?3›oŽ_o6çâM9‹Ði5&ŠìäÍ›÷÷œÏÖWaµ5YËI=aϔ䎞РÖI™0Bì‰ €s·+v;Àµ„ÁvˆÌ—”^+ø‚&…¡ºEi rs0Iž’n•¼¼æ#ý)ÒÚ–Õ¨ÜÍ랢+øcmÎÃmg9<äÔk±µ®ÕþaÎD"j×;²G$g¬ß’†SIæ"^öÈ9ÙÔ™­>ç®Õ¹Øà)' †ðÍo‡ù-Ëo\[ûq©·Su­z-aTÎ|ÉÕWj=x`7y@òOFÔ¹]¶×±t^`ÕlÕëM9AžŽ1ï ª¤UsµŒÀV0œýRõ®Ç}fM-¡‘€ 2¿ŒYã-muÖ*@ªç¼gI§§Q¨s ¶ 1<âkÄtúÖ#¦™P€!¾a½£^K?B:d¨$’eX¡[(ûTôÚrcvÚl©wi™-<åFÊ,kÓcƒ^9,1X¿ZÚwi™ÀÝíÚoNŽú4LTpOºDU§Qn¢ìéÇ z“óˆMUë´¶YMÿP#ËaŽ=äÚr@|†W¨ßÔ:Áêâ®[Ù°@Àÿ8ó…ÈZ¼Š°O<ó«âgK~…uôU´9͈9ÁŽcìnR•£Z2ú–ÝÈôàÀhüÝ¢ÀÇ5¡ÁnægGmvjÑÕ ©9;GiÑñMYªÅ«KZ°Ô.ãžÐ™Ytž;+«×-•ŠÜî­×Ôïž ôõ»Ø­@T® ŒUáîÚl‚6 Æ[©—G„Þ.ªÑ]K!$¨—1”yk±})žYpvŒÅ­ðÕ²õjv•lî$cÚ„ Em§sµ2O úÇ©òµ:}¨áÀÉ1kÄoËÓ¥ðû|ÿ(j®xÁäþ‹QRWBËœõ€ã\‹ (pa‘m®»Ãª°M¸!ŽÒm‡ÓæjuTØvÃ8˜ò™«´6 3“;:]1G©-w±}^[ Þxm¤ª¾0åC}1܇ê”Ò[mgiÉÁéÛx˵·¨É=Aí6Ú W† [m[VÃÁÏ ÞÀ a€½Ä›•9$.õ\§ó,ô“é_q3e§P¶ Ôz[-“ŒbkP¤¨¿q Rç¡øˆQ`ß´?Ëñì\›ŽÇ†Y^³KkZ覶{E¼ZõÕëë±êÛZõÜ&«JÕ«E ´ƒÛ3:ªƒªš,Ê#§Ú/)*,÷JÛ©¥ê+P!·’1¶gð:…ÜçaQÓÜ´:{5*ÍQ`nAâtôê¶Ö—k.jm¯Ò ŽcÜóBÓ£-%…ƒÙD¡E—“r àˆö¢¿Â0\v¸ÜïµBµZP“’:EÈáuè¿:°—fÆà+ñŸÖt¯ðKô:?=_z—OèíÇÄæ¥N•­º‹såž òcZ¯Õ[W—[B0T÷•㱿¢TÙx»Òb°œ¾Ó£¦¨×«aYÝYo=äYee–mR gæIâz• SR`‚sžq'Jæréh( ¬jµ‡FVÁaÓí8Íu”¹U'hl)¼]ÜeØ‘ƒÔtŠ-•3„aÀÇy[Ñci”]:ømÏc䂪O?´Æƒ\ØÅ”…pÊLÍ4„Õ=ºŠ7¢ð¹8ûK¼é˜›7=G®1Àør—;ÝFP=#Ë­˜zsœF­¦¥¼U}êö0åˆçˆ¢‘fœ¾•È`@9‹57µìC.öä’Òx½Ó¼ÔiÒ±Z¥¼ ôŒp [Ãu冫†FåryĺÞêë5²-ŒF9†­Ë†Ï ¹à˜i;å½MI¦«6VÀ‘kÑê4ÆË«!Ïôž@ŒÑ©ÓØWñ6í õzsÌÎ¥´ cQ¦gkóÇÊwýªÐ>ƒLš-ÌÚwÁùÌÊêµUl±WzãÔë•ÒÕ0¶WéRx.m±r¤‹p{Gç-/ ¤Sš5Ì KäÛŒ±jlÓÛ´fÐaŒˆízV]µ6[‚pD\êúŽšÔSu'‚¼çÞ-ì_£x‰»DƒO]uþU€¯~­«ZìaÀ'™?Ùš¬ Fš«VV†=œ8$ñÌ{¼uÄFMmWpP@ÇY›’çÄL/Tõ„Ó«Ûubçó¨sž{L꫸E~a°pœC[9¹ì %‚ÿØì”oÀ0&üKOV\RÄ1ôƒÓyŸÑÙâ~ ÞXP\îç´ïkü ×R8¼3 ÚKq*É,½¸†Ý•šîìyÇ1”ÒQuhµ«2Žß1}eŒW]¡™ÆAÇ_Ö/«{´XªÂÀ¸ûÞ×Ã¥¬Ñ­5BYË>ÓV8‰6›I[yë¼ØÜgù!×WwˆhÅx  ‚qÕ¦[Nu€î *pKv1sb6Œ8¬+~^9u8 @ÛFŸJêˆù“×0¶éXi…ÔŒ?LÄ–°µ Ê­îzÿg¥=u¦úî<î`µH­_Fß^ë7HZõ"͇a!GyÔÐ]M–‡¹(lèzM›sôÖºRÏϨ€ #ƨ Êcq:ÚÒëÝ쮿(°ä§Ú#âZ=2iéÕyÞYÉVãõmßpäÔä4²¥pì2qésˆ®¦û)%Ùr¹ÀÁÿIïÒ‚ölzO¼^Í3X‚Û.!Æ:ˆäÕ+[6°U îOÚ3ªÖUe{j[c•, š{4tiª[m`2ØÊo´0e­k,9 r>!ÿƒæ‚Î5¬ 5¯LA™ÒרӭÍeÏPPUWPßVœ5ôÙ¾ÍÛŠã¹ëñ]u¶ B±†Iï¹tzÓãJÚºÓPTÛ´gˆ:ôú]EVS}íQGÈLñÇx&®ÕÒ‘uV6Nˆ8ní"êž½S2ֹǬã u™ßI’^ZKjµÎž•ÊIÄ»hRŠ»³Þc]eŠš.AÐÈ2x‡£À¼Hi<Ëkvw¨EÀÞ¸+¦Ñjô¨äº•Ï?Pƒ¯Z<ËK’ÄžW°š«Î8mBÙbŽÆ 4x†¡—GYÆ}DñˆKpæ–ê¬ÔyKékžÓ²|Ú55ÐÚ•ç’OÒs×ü/â4Ô¯ŠñзH1n¦‹vjTùÊ1–ë¼?Ϫ%µ^+YÐØúr€ Få´rý§.½K­kP]xÏyéQJèVýeA©Ý³¦g;M^…Rë¶9°íÜyÄWsÑøÚ[MQ£^ d)Ž9ËBå¿mžbùly>Ó:›÷[± Þ:2÷€²«Y¬bªÌ ã’cÞÆ›´QV¥/V,ÀðàĨò¡Ëî;˜ž;fw|6­Ð5#Ùü»O Ÿy~#¢[±©ÐPѺÊÏ;ˆoIœò¥J×J*E;•zž¹ƒktÕWZÙHgÆ c¼Z­E¶PÚ›­[Ò9ç?h³ØÍjbÃ`lѵE–1>•ÚGÚ)¦§Ès}ú‡Pç œ™Ô¯Æˆ C±^›—þàÕÞ­y§·Èµ©dZÛþSÒOâÍ1òéÔ8V<óÖt¯ª½U¯b .ÊG#4‡LŠ×VŽêq·0Ç*YM;Úo6(RCË/xÇãèÆC7ÓÞsôÔ5ºfºË(N!É'íέ\Õ§;œ’Üsáj;'Ät£­ÂÏÒ¯K ý'U ¾”-Ãdäàô‰¸võ*ð«ÌÅ\›ý¢Î?&‡c»ÄuDkÇëðϲ¥ò˜,Œ öŒ¾¼²ÇÔÌÛ¡—–3nv«[¨' a?Š©k3¸çŒÇ5•Àí=~&“LkÐù‡‚Ç ö“.æÎÍ]9¦ N16”ãy@ [q÷NÍ4TcºµésúÄIö‘ÐÊMŽ–ìr§"AaÏ3Ÿ^£Ëã·´n»ÁÂA"C02³@梙ë2S¯»p&H¬DÜ?š^ù¿bq0TÄpƆê<ñmªºluÎ!î»Ã¬×ØU…änUÁÌ-éôµ·ˆ•ÝrµîÈ“Â|:Eï¯Õƒ¶¿QE=[·é:wÿ‚Z½6‘«ËqæaÃÈÄ •Y^š¶Ë=cÒÌG3¯â…½Î¥F?”מ¿"#uï]Èž`zž G«µV4ż×;ÛøŒ~xÙ]Õíá¹<âr­ÖÖ®Õ8Rzz-˜‹<Ç´€I‹®j·¾#¯W†>£YbQjPjú”œfQ®ÏÒ%¨"êŽNz6X§ˆù–=V.I'–îf¼Û)j½*†±ÏA+Ê"Î[O?E®ó¿YôŸÚ7¯¹µz3§¢š“yÜHlp;A­[öœ*1†jJÚ[é*WmN¤fLÕ«×¹úo(XôXНƒóˆÆ“Ã³uÍ[ëãœAêíÒj-"·B#«ß„"µêššÊnS¹ÈÁÇÄws¢„ìѽw=cPm ôƒÑ„ÚjÉÑ”¶±RgŒ7Ó£ãº].Ž‘~’ûC’i鈥º½>¯DºRNÜ}GÞ+¾ÏÚA³Ð˜cÀ¡„¿Keú”9UTS‚ UÒ*Ö€Ûæ }ûMé´©H΢ËEŠ~Œp"㱻єWc>åa•ÉŒèüAô´+>¡Ò“Àd,ãêõ9Ôº'ƒéÇa3zYJWcn5gq¿é‹vÓþ-UÜ]§°^öœ·—áVY]6] 랬Ø#í§\n±¼¥nAôûˆ…ŸˆP‹vý½¹†²³U[“— ÎÕ ©´WkóÖC©¿HåõLæ¶>‘ï9•ÖæÁo©OfiÐ×x’ê«TjÁÇxäô›Ÿ:Å+:`X’@äNMÚ°ú‘ivÀ=@í7¦jÆ0»@é*­VÁ_W$tÌRH7îFµ eºJÕJ”$ÏbÊX1Ó'#nyàLÕ¤KW%š´úk<…ûGüCQQÒYyÀ|c>Ù[¢äáQ[Yq¥‰+Ž¿3³áÞ¢jÊêÅjã‘´õ3ƒ¦×®–Â+pëbYºƒüGæÙçÛg”Ü6;äÕæŸ®¿¦Šµ[tê¶RG ±éö÷ŠW¦£jØþjç*x?1m5饎­uâ¦oåŽÕe §òö)Èäû˜²áRn9Øô^ÏêW'’¿é:©®D+i-œõ‘iG©ë8.œsÿxM§A OR1º³‡âL²õ Ÿg5Dðº‹;‹ÑÇÔOÒ}„4êǬc¡u‰ëµ««¨ÕAÊn¨ûM£:" B,ì=ÆcËÿÜç=™5¦ Ê‚1)¼&ñEz·ÛäÀóñ ´êv²_#= nÝU£DÚb‰‚:Be¾)xý9a¨óÛÌ\då[´"ÔXŒç˜'ÔT\!ô1ŒEͶʵíØÜ˜¬=›};%õÔ@±‡ñœÎ—‰øhÒé¹­B ©éöœ½@¸5Y&ÜŒœsƒŸˆ;m¢Ú^²Ï»Û?‹ÅÔ¦oÕVïZ'ûLßQjì¹N9ÌC] ª¤¥é^=Yã<õŽh߀–vŒb¼MÜÝVtZÝ:Ö´X¬®=Ìaü5µ\èòÙ9ÿ¦'¬¢‘© ‚A9Q˜æ‹ÆŽ†«QkÜͬ;Ê“õgo<´ºaJùwÚËhú”ö3½9»NÕ¥„“ÈÀ爯â®Ö^Ö]XÞæt*QGªÎ,‹/óWÅœÑø8z j Wà¯Ä:Q]@.ÃóƒÄ»õûA$–ö6×êB‰Êò5§E•»ÔCrG|ÂÕ¦ð»ÔÖaé$}3Žºëù‹˜ÞŸ^[ø• ûØM?…[¥Í´‘}iÈóÔÞu¶ÈsÏÇ3­_ˆ%. éú&¤}7ºÃÊûƒ§·W­z”ú_Õ:v®åkm§õ^-ªÍãLÌ“ÄË[U 7©Oqó4ñËI”]XSrãhnA=N„i¬F}¥_²œâ½š‹7Tw’q˜Ð³K^£È¿M›†)“ƒ –¸‡`T¯ŸÃ¦ ãž#ÞMžryÌ,­ÎܶѸ'ÊÈAƒÒ(騥÷\­´ñÇI«®Xñ-Cê¼AìÎs·ˆ˜ºëÀW%¶œ{GmÐkm%éRÊ;±KÊ«•«µŽw0Á&ißIÜëftî©©½ œ8‹kEÏ®³ná_lt™jj¬Ü¹TícÒéuÝ(±®Ö¾œÿVdó+âÍ3ᩦ ‹ qü¸êa5U.æÚzv'¤Uè:MFÑz؇¿s/S[» Ø2p2!í=@SXt·©@HǧIõ”Û¥K]9#;NbܦÁ^¢ Ø=s]UH|¯"¼/ƒ’agèJ”Y§$®Â É˽º]§˜ƒÁâYM,›éEƒ!sÂüJð’ô΃fÒVlYgmÙB¸{çgÉU;~óM{I[lÁÜÎ燵†¦ÚIÜIÇ3ti4M­µõ” ÇéLúOÌ[×bãî8ºŠL‚Ämêy9í ¦ÔéüĹ·­Ÿ ÃÒ×ètå”Öå(Ç)×o‰)Ôhè¨Tª®F6–#òàI°¯{—g—Y`ýÊÉH±Øw€Ž‘±uËYs©'¬__]WMçnáë#¬˜}.ínKB«³›1´0Ä|2Ìx›B69#ˆßà´oR±ca €H冷º*dUØ\zˆ•¼tWajeYKê4ÆA_0òNzC-6#±9ÎI¥ðýÃó1ðD[”l ¡t˜ܼÃo=&¼OWø‹ƒªî^‡™vxbcÅ>ÝátÔ .´v;œtŽå(Þ‹è­-H½Œ˜-{êµZÑaµý_PÏG¬¡uVù—_›uÔinG/UfÅ÷SÌ<µÑÍ^ÜN¦únØ=kôtTx†ûÿ8ï @æ;¨Ó¡UMP*̓ÀÎ>%>ƒF÷ +å‚ý'§Þ-Ïpø—pMqÞƒ´Ö¢Œ]g­½˜nlýç4êlWf¯!ä6š¦Ô´«(\#¦cÕNùnÍ%„#+³'aÐ5VUùbµÈ8$Çëñ}F΀Æ"šŠj+¹Ÿž½"–ÞÕf¹síºÝ=å¶;ûNï…VººÝ쨣–ÏyŠt}R±Õ±QÔä˜Çœš=+i¨,jQÃcœÃË‚ñßJ¿JŒû´ÎŠAõ&bÏ ³P-|5¾Äâ ›æe'q9à FN¤þ¬%ª`p8ú¥<ÝV[µW óŠ«T6ª“Äa*O$We¡‰#¯LˆÖ˜7á–ËX±|ivÕU¨Q¸É㡙ܭà\g§àôêÍvV‡ð;F5´«éŠVÏ9ïöŠøƒßfµEjåv£¯3·á·i4Ú¯ ö‡Ø•‘Öi«­¦Y.œ_ ÐÜnKl¤ ”ú·f9®o&ñaÓÐÕ¡Ú¸98—g‰}ÏŠü±œ¨1³k9?V$Ýï•Ìf»tÿú˜ë¡èUSéeŒNoŒùz>Êä¸dchöMN‰Ý¢¶íÜ.;F«Òš4tÙz_¯9ÌvIÌDâê•ðmE´ÚÏIUÚ 9Z|JÁnó¨.ýùÄESFA©"±Üäí¿F)t}(ܧƒ¸àæÁ%×ÉÔÎ yÆ:JÓÞúd°†þ#nlpLÞƒX_B…«+ô7Þ'®Õèëµ­B|Â0*'U~På~/®«]”' ¼Þ¢Ú.PúƒæØ;ƒðÝN‹XÛocYÆGLCW}cUj3±U8 :µop÷ޏumñ“ä- ]"¥è°í=‡6iëÇc‰ÆÍ½!ˆ÷1š«¦à¡œ²ì•œËôíÑ®®Æ 4õç9È’Ç[Õë¿k!ÎÞy_a¦¥*§ È÷‹¡+â\©ÛÐüs2“–—ZÜ3¢±+ªÊªBÛ?”ņ̃ÄM¨ÚÞ’GÒ ëîÐU¨f4ocœØ÷ˆxŸ…èuÊ×iª¹Fâ¹È—¹íahìÓê(L¸>”<óﮦä%ï¡QzXu̯¥ë½-Wá¯Ìg_åê--në=”ž~R^cri5ˆti§ªÂÏŒ¹'¿Þr5$ïbNZÒÎY²ŒrM6–¾NÜ’}æ~\î5˜ñ¢+{Öx<ŽDfÍf¯Ì]ENëœn pZ-¨¨~)–ºÊÓˆõTê©ÓçËÊÀÍñÊÇ>S4}‹eú‚Ë ·´êi4ÚK<.Ö²•{0vƒÀ'±ÌãQ¨¼6Ë„t ¬î« ´õЪ… ;ic­¼ýUßW¤²zO*KÖëoJ¼¥ü´nÓ׿t|OÂkðÊN®óPÜp+ÝÉý'*÷ÓêêP¿–ÕÀ‘Ù”ªÃÀc‘:ZeòQ®Þoü¿é9£Ob°Êñî'WI¢ G˜K-UGHïEm¢Uy6Z …Qˆ­õ¥Eœ+0õ3ZUµ®Ï+kwãìå{{±•VÎñJ+`­P SÚt|kSEú$¨.íì O1k =`~àwŽ-í1<ùj8?yW®"$å¬W©îSœtÌN­]µ1j˜©øÝnŸñU£¯«#°œUÑÿ©¸v2qµyaî:‹âZVŠÊ ›Ò`´Ú{49±S»ŸÚV…^‚ÿ<5®³j©bH2­ÊÞ2{r]™œ³g,wn=æÑÎ:ætµZºŠÞ¥ãh •z GzºüÈ™[ÀË ^Ù°mÏNc>B[—}¨'Ú>¾ Z5„‚@8òìðgZɤŒg¹Ž'UÑÓ.Ÿ^V¥ngâ-­Q¤ K+å°'(-º–·c‰ÒÖ(ÕŠ²pBäãÞ;>—9î+YnÍ:wfÁ»8é9ƒRÀ÷ÏÏiÓ±<ê•v¢íærôú+lÔ-l„ à~’7΋)¨éþ&MlS/·8Y«ÕÒ+,¦µ³ž>`|KHÚ/T@Z—PSô‡Õø›2­kXÊÉ÷”ŸèÕÞ÷SZ";>0r03øw° Q1_öާµ¬Ä.Ÿ_w™—°±ù‹ÃèçÉÇ&jð† 9°‚ ÚÝA6 ËQÑfÅåðÎq†$Å(ÑYb!­— 2 I¨Ð0Ômà¯\ÿÚ+«Jl¾¡½†0èqÇ Ç4¢Í@&Ë0¾ß1mg–B-Lß Ìé¼Aê­n@÷¹À÷Ít²R,m9 ËÎèJtÚ]+å]í#®åë7.°ò—ÓÊsÐK:¿1E`mtà&Ûx¨Ï‹k[Q¨fvËó–öÛ@ëÞM§#{É< ÌXäœ{ôÀâeíÃg¶"䨫„æ^ëÿPˆrI&lY‰PªÂÜyÝÐâ?£MRP?xªØ8üÇhÔyN‡Ì-ÝÍJÐØ´oÇÒË8%­ºí¾m(Œ§ëQõ}çHêë±7 ~"m}VY²ïUG̬3ºè¯Ç-Ø*ú>Œj-ÿæäÃøv§OµîU>y%õ ºô—ZÆœot`s“îbAMK“]z†IcÈVÖ茪:àfs›rÚ˜C<±Ózíb[§Á¯c‚8^˜œÆ³qö7â4š‘œd’Üü@é4þc†nžÑÚZo»(ŒÌ8=#OMϧm6ÞNA†kÓL¥GõÚ [Ä@«ÐNþçÚ‹M„¨y­¹ñÓ°˜}Q ¹°ùœûµ/` Xç®"­¹ÎY‰…”¥uk×åðˆÎcÂöDW6qÜ Á­‚tÇÉ„Þz¬ чbßuÙ±÷nä v†üa²¼ œ%³lîe¶¨‡2Oxja‹c*@øƒ!f™ÇŸ˜­zåãpþз2=\cÿxºìÝ:µ)©\7{À_¤1zI Aã´âÙUÕ6ú·c=£Ú´2ը䛆"Õî ­†t–¡gJ÷çéñ:´•5UÖXú³Þtu4 MEwa[¡Ík´¯£· ‡¡“÷ؼÚÛÒ©åç¡¡Àê¡-ÿÍ8›ñ–múDrBÝu²Ý;ì±UW®G9 u~mCËm¬;ÿ3‡çy•ÜO‰ZmKS`#¬;ÓÐ[Wã©—ókaµûã¼ê_¥ÐßáÖ%˜.å?"r¼7ĵ½`®Ý‹HRv…ÄkXÚzh6^çkpu2§§)/·jîc€sÒZkv?hAfÓò“gÁb׎§ÄËw}4Ô³‡AuiG«Ò°q­VÔìv Ïæ%_ˆ)Å{0£Œû˜ïâΖÅD<¨Ç« SÑW²9Á­Ñ‡L޳)­4ßæ5kƒó::ûé×iE6€I9 :ƒ<íÚæ®Ì±­¶ÇŽ“—ÓØiõTYHÔªd…#>߃e·\æÖÇ'Ò¤ð¨ü%^YnOU§:ÝQ6nRriW”têÔnuÅŠ¸?̼‘ þÅC Z”ï¼c‘V¬†ôúOÄv­xq³P»”üÉ»T¿³Õx]ʸÒZЧ’U¹ÌåküSI6rìXg=óÞ³émWa41ê–=f¯!,.®8cí&åW1•çΞÚÖÆ`qQÃÒ. `nÓÔj Õ¢¶¥6g#ôžU}9CÕN1ËiË[ÝÚn·Ús¸f^eJÍØÓxUÁéˆõ—ÔZˆB;yæƒâ=áúÏ&åcœ!uN]{n ǯ#íº§¬}Xƒ‰,Ó.½|ÊßËeí׈:iЯ;¹îOd’r»wx^’ðëGØN …C0ÍÌOÄCG†Ý¿4©¬nÏ9‹3iµB…$Kþòo5S-Ù $ž‚9¤Òäï¹xö0Éet¯(ÁüÆÝcG?2tw;O«Ò¼l¬‘—.= ¸ö‡~¤íq÷š¢Ý˺ÒÚ=3vJé¯uk|Àrýà[̪Ö4*ù¤ŸÌÇO´L½ Ê¹Ü ìÖ²zw`ˆåÕàh¾¿ÀnÕ?™kØÎy÷ŠUàÞQŦÆ$á@céã/YÁ¶;§ñàÄÚ[笿,ËP?€ê<åEiÿ1æøiN—¯ÇÖ6¨~aëìbïèïÇÄW+U0!¬zô«ù¨ób赟 £Ô ÍøåŒQOS9•\Ë™S˜Œå”vÑš™Q6(‚1¡4ÆÊ›ZÌ›¾•Nx§\Q€ ncKU-âß,ª9\þÒä×hÞÞ›Of—G§Zë£!—«õ#Ú ÿ²­á´4ƒ÷žCUâwjm-¿ z(ì%éŶ¸x¼gÚ¶èø§„:­7’O©òý§oÂtz¼=5Ö·¿ôžƒæsô׊©j®±ÝYv‘ްõx–‹I¥:jSf~¦#“ ñ¢ñå5–iF¼YéJBà¢Íѯð¦´.ñ9–é’ü¾žÀÃÛ¤LS`¼×Œ08‹m,áîA¤ÕT¯SãpôœDu^©Ò©µUlA×o_Ú+¢Kôõ*ØûQrBƒðÝU‚«|Æ-æ6p{ ¬¿U–œË4Ú/@m¬Îw¯X*¼7ðúŒ»o_åùÑNªÕ(rö…:Ý 7¤ãÜÇû}7â6i©Ó¢*…rÝdŸ¼[NWp ~g.g±®µŽæ<aªÆ sž³Îù?Ö\=?ã˜àoÅE¨Ë’åyàN©ÖÍA »rPÇyÝÓfÆÆáœõ&-âT%Ÿ4z™ÁËcÞm%‘Ë–²q•—p¿´ô^ àÕ5?ŒÖ±Z¿‘{¹ÿ´CD«Áe-UxÜqž'Oñz‡LBqX'MØÊáº×‰=Š?ݲµª"Ûù¤9õÉ0ߌ'Óe_±5­zºœÈyÇ´W˜:§jp¡°{J/™µÐßc³íÚÓ1e8%OPq3õ¦¼lAÏHJz3Þ1Xî®$Îåİ`‰@Bj9cM¤óK²³·3Cnu$+¨þRgn«ªE!J7ÔqÛâg—kÆðLJé…zåBwTO?Õj´škô,4Ê § Ìó5Õu:ªµ4>·8lŸq1ã¾%­¬«­ÂümN‘ß|í9]³^–ÛüXQ@2 ³»ø qBêlŽ›•œ ñ;å$åÂuñ,&Ö=á½]+Çü‘Ôj5;ÆžòÇQÖcYçÔ‰(›²¸=£ž!u:½e maì#êF#Õáúš j,±9'°1Ñ/ùJµo¬¡nc—à7ç'Wmd\ºŠvØ õ`Çt¥4ú mæ%mÃõNf§Æ,Ô ^ƒÕI8Ëiåu £§&#gR}çIëQR²¡­\d1ˆÕó‘â ®yĵ2ˆã¸ÀÌ t´ƒKŽ:ÄÄÐbs)ÿ7Œæ ¬É‹›:Ìï91λu4–(±w¨pNøVJtËuè;ÆÕÇ·ÚpôažÄ’L> XuZ¨cå#r?˳b]¢ý=žh°cÉCœýç¤ðâú­!6gq¿IÃÒ Z¦jû“̤Ôê)¸:_•<‚N12=éÙÓÿ‡u¥65† yÄæ_áÞ!§ñÂÜÖêG ×ÓøâÇ,Øçwøúê_enÃ7 M¯§ܹpõÔ5Åì_,9;F1˜ nRÃkã6ê5H7rädô”Œû½#¯´Ëgw+Ói^° ØVÊvŸéFÁZ1“Yúº“í àÔþCYv<®êí ®Ôé”-éÓ¨=$I6×™‰Tñm¥öµe ãpæs54÷0¤ +Ï Ãž‹Iá>¬¬Ø‹å°!{NV²”ÏÛ¶¥¶âU¸úF­ìžŸT€5à{©M>ƒM©qfÿ+žHêb)£¬Tj[' ÷Új:jv5lûŽC/úÅG×­„iÕÿ¥µ˜õ†ãi5ŽVºªCéEÇÞÍHk¼•È õy­uè,õpàq';’ñÆz$ö9éu¼aÀŠZ£¬Æž¢î uÜ$UëX­åOQgæ;ã5•Ôï‚g5Ž1æm]7»=N ÷n ãí(ò9|FKŒ`v–­ž½ —˜ÁãûF*¼0ÚǼ@²!¸1h:Œ£æ)£Þ9£ª—ÔåÀ(yí8‰}ƒ€sž9-›Qz¼:œC®Õ/Ó»]•¦ 2P,$ÄqÌè(×^ …=œâ'¢}N6’­÷¨6.,0yé aíçmV÷Ú6©›Y~Úë ýT‰vÐÇ>S†ø"–[V¾ªÙHÉýâÃVðyÉ!oÑߥÔ%z”a¹ cØžÜÊÓcO¥¸÷î'µÖUøÍ +ÒÓÁ=Dñö×üJì]O#Úi”áž6R6Þm°oa´@Ù`a…á{üÍXЧÚ/i=Àÿ9"¬Ø:LnÉ‚èrzÍ/'ÚZgÇJùàóçÖ@íÞXWXç"-LŽ –aÇÌÂÞPõ™gôî?¬¨ÆÎ~ ?2{4.±WezóSƒ™£s” uVtN±‡±–õbãw”º»òxö…MS“†Æ#àöêQ©jÈV9SÇ^‘‹)§US×pƒí9HŒ[9:j6Q½yuìL›ú7žÕSøkG$ƒŒžð`àG<]_ñ`°!Xd}â;£ÚDV9Ÿ#5×b–8 ûÄöŽ'¦´,ÇÀŽsFã½HZª¬®*á²z§ˆ\¯™c‡Ú0£ÚL–jx\’´æêUÒï,œ´,›Vî­¯g¤a½ “Ä8nó9íÁÇq(·#-» n’ã»Ë Ùëó+VNýÛî'-çžÇ"u´7WaÞr§¬?‡2 LäÚ8$ƒ ÚWÐSn­ÉÇ;ëÏyÕ:MÍ=Û™}[Ox¿‹³ê¼-^å_7‚öö‹+¡%¯>ìIÜßQëL¶ ’zL“ ¥¥80ñÚX€ti¿rì~TõUUiSúËycÓž'&£†ëÖt¨Ã,ÀFsáxòj¤¾Í:5Ëõ.Aö‹âZu«Y¹:8Éï;wj7r¹ÀˆÙQ³PÁ 9™oWn‹†ñÕs5g¦•·‚„àã¨03©©¬j³Ç<öœ–N ÌÓ¶&-fj³†ÚmrD¦gôÚË)`k°¬Þ³w¼ÿ8Üqï­SÜöÏ´ind¾µ8p‹ŒñÚsg<2ÓXe† ×=¡îÔÎj¯_™Mµ(üMh­à éŸyÎÔXO  É'©2iÎ ¾¥íáLúq½¤ºj ¯ÎÞ>æ-V©ŸÖáI?Ú±¼Ó·éj\€«Ó¼ÍŽXs€;@3®82†ÍSsçƒû˜÷ñS b·Æé Íñ6§:Åy-šÔÒÕ1äØÅ¦¶È'?œ°Ác-hNq³ú/³pRÜwÌíS¬®ÆïÏë<–Å[v†Äz‹› däv“d§2ÑÏ­ˆÎÒvÎ?lôž›NÆúnY=û‰À×§•ªp1cut¼µfË«c÷Žéo v·*Ü÷‰¥-aÅkœÍ=é”=«…ÏPs5—Õe«Ùº|:ǵÇTáN8ÄèÖjÒV03tó›JëÊåã¢eÚ®§™ªõŒ@W;×úLÆ©‹ ²mÌN¶³‘ÄÛËn\¦­-ÅÜ)›8ÇHÕ¶.HÏ òt57™s¬µ­–aó‰žXܯ§ÇxäÒíb=ãv=ZR-f3ÈàEêjªö–ÀÈk¼AîfÚ }á­Gkñðä•?0:‚žnúØ{N}º½£ÖcØø¾9…‰—NÕ¥nÐ6óÞ^™,1e\p3‰4•ÊÔ.sÇCŸ¼UŽÑó½èbnyÁéŽ#‰¼«;‡HEÆÜb 7Þn¼»` ç¦%%Gƒñ-‡£ŒNåGû˜Üí§Þ-©ð´P|¢AX¬e®F}úÍ¨Èæðj°+ð{H¶g‰=án=GÚd™Æ&ÉÉäÈ~œâ&‚iFéÓêìR>Tö=â¸Ï¼-Y$`‰®þѧ@^¬áXRxŒ·‡›yMùL3Ó‘;~áº*ôÜʦûâOòa­4hF}æWäúWŽ»ymfˆ^Êt{NцBy1]15Þk±J0ìg«ñ ,áõ¶ãõÔ£ù›wëüJʘUä²S¸#ÿë=NiqkŸ¬Ù}gzޤ±ªtúJ´áQÙÖáêÏc:?ý)¬ò6EvÓ9œÏð¿¢±C(Z@å@ú¿Y¦9̧ex+©ÓÓ¢µ<V¬â΋hç'+}ªaÆãˆê÷ƒaÌg]§»Go—hϳ/B"›²:æ9Ò8“t¢eg0Þé3È3æm«¤ ÙðˆHé7ã6Rú… ¹ cóñ¤$.îFSX–[©DPX¨ÀzÊ“JÔñÚ«µô×­ÎÜpG´ÜOqÄééÿÃÚÝB+m©n80z¯³MpK.OvÁéIsë´‚1×§¡æ¦Õ<ò kýŠ2¯M¡ºpN#¥tÓm(H7Ä&Tôëé<%u::ç;Íg {Î&–št·¾Fìd¦uÿÚɪðgòœSb(Dç\wh´è»sécûÃ)ÂñæòvÒ+ ¸3ªWMÖ“Æy÷ ÅŸkÏR žµµHÜ=G¼ÏÆ—ÆðWÃõoN mfõtµÖ @cc7¥LJ(¥·¡'eƒ£wvyWí8ÏUÂ[NCή‹ÅªÎ$ú˜¶¯DjÓ©JÎF2@ƒÑRàr‚ ©v]0·ØÚŸ4±Ì ÑÖú…‡¨b˜JÛoWo´;Ø+`LË,·vßã—ªËQì;Ë_C†^£¤)«p%"rŽ+KX£Q§/ޤÈ5–ÉÁûNñîûqÔÀ„ÐH^@Ä&V3¸yW‘ÒQ3v/­ˆî`æ®{5S92óŽ%IÔôŒ›Ôé­¹€JØxm‰¯lž ™Ö{êÒUåiÏ«úýâßÑÈΗKF”gP¡ŸúOAgŠ*µ"Û‘¨´6=Y¯=à Ä5¾Õ·Qõv¹åÏé-uLœ–ýÌæ Xޏ‘I<‘Ÿ˜nŸ9àftiñ#ùj}Æg—WPFæ? ŽRêe Ç¿Ôζ¤¾°â¼ní9´¥”j0A*9É诤'OáÚ®£¼¬gÚw%yË|T /õ9=3 _Œ[f™”ªíãŒæz-G‚xS׋4Õ¯ÈàÄßü+£5mÓßm9i&=ןëÚÜù‡9÷àGõ5ZC¼3²ž€flÿ…õ4ÕÙ] tàÊmV¯Ã/KÖXä¶Þ?x²Æßúò¬$¾Ü“ZÖÛÄbÌ®½-‹@À<žÙ­7éu ²”r8Ü@?ÚUƒj©5ìEÈࢀDÊã®ãkåôñÚ}>£P…©ªÆãÒ¹æu4_áÿ½K:þ}ìâ5O‹Û¦;jO.°zàÇú˜¤eûÃÊÏEø¯¢Z Õx}^ueoP9jþ©ÅÔx©6‚Pï^·ON<}XbµZÇÀ•mã5zšÑºXƒG2’ó—Ç”q¼;ÅüFËÀìªõâÆ*x¹˜¡*CŽäüÆtÞ9³&Å' bóÇÏ´åøÎ¡õ:æw=?i­Ë}2ÕsXq〠úùÚ…;A Œôù‹¹ÀÆf}S ,2D²ØOž’”ísì{KÚ Ì¬ÞF=%÷˜>¦Ï´“‰°¸âc„Þ0 iŒ('¼±ƒ‰LÙ4œz¥€BäMq!8L|DÒ߆>Ó¯¦ÕPW¯Ìóµ±W<üÇèÔpyø±MW—¬¡«¨òý&y¢ 9F¥89÷{í ½3©µ¿«¯Þ(uTT÷Úˆ‹’O¼cP¯Uæ§à©Äw¨ü6ÍKÅ”•´ÇˆÐ÷°¹sg{ó—:WãºÛ§àá+Ð=»½v6ö‹ê´ÊÌFz•ëÓÔ…p¼oˆ4®ð™{ Ÿn²2ïrµÇ‰«B•Ô8~òDŒx†ó¨ üñ€Ók¡ÝQca Œ…Ǭ¹XÜ-¼݈Jì;‡XlŽzŽ¿uòemß…j)®ò-¤9#$gø„Öx•úçÊèM`pˆÚ£G­§’C n{|Ní¶cN‡;K ƒyk¸× vó![XƒÜA8ÁÁê!õGýîÆ_§8ûÀ1Ï>ñK´eÅXé-qÖd$Sé#Û¤¤Š™Þ#Hàžâ…¾–:M‹7x©Î]>60À ÔyN@íS?’IÄÇšå†Tƒìx™\nöèÇ. í ½'3Y¦ØÅ•xöZ†GHa¦u\Ų«ø\³ØøFÚµIž »|`ºŠpAŽêÒÚÞ§öã]ªRNÒi0·—ä×EGø_Põª&¢‚Güøš³üâ8VQK`uÖFÔ.y¾­¢‹ÀQþr®9kÿé„-ÿ øyÍ`ˆ‰ðÍJ>»?øÏfÚ¿]7™^¤±SêG›v·UkfëË{À“%¿C§ýŸ¨C’¸š­B:ï°rŒÎåz€:ÃþK¬Àµ¾âUĦN~’²´µˆÃƒÐ.µm¥™ìÅ™QÔx)Ó+[§'aà866²UÐðÞÿy8ÎNÞ Ü1ïÈÛn±Œ÷ûÆôIçT|Ðrù‚Ô¸·=8³·–'ŒïÞ>¬mPvŽ{óE)s‚I{?ð*ü„ºâÌ ÖGà×ú­oÏ:p„ê5ªR¤cºEÿøˆ-ZŸmÓܵú].Ú·*gùD^ïÓ†)Zù‡ã¤¼nºŒò·'šÒx-ôZ”ëØy8úÌèºøn–¶ò4hØSMßk6IsÚrüBß÷wÁê$å“íÎÖÞ­ (=Bôœ×³¨AdÔXΠ óFÕ 2ÙÐÜä€:w‡¤eÀQÓ¤‘:¾¢mN­T¡+‘’zJœ•wh¤Óáô¢¹‰jŽA­â,¡ö/Dgö\ó'.Úã8sµ.t*Ø1»Ð1áG¿¼UÊäã´¦ÀÏ9á„ W>ùæ+UeÎyÄsOYCÓí –Žc·BÏ£Ì*Ï´æ\,\«‰««’{Íøc·™€Hã$I—q¿¼CN,R@ÿÄä`‚A‰èoäg"á‹9cK<76]X>!åLÃ&ÆÈèf”á±+¶hÕÕió éÌ êQ]£âRìć\˜¨ö›ZÊGnŸ´¸QÈ^9}ÎêNÂÞz£v;fûd G¼õ½0G@§Œ~’™ÄKÀÝ »Xs÷]} ­ð¿ÄÔ›WÖ;byô'wYRâ_´N éõú|bÚÁu˜k´Ú’BPñÃŒá\cæ+)ÜIñ‘[i´MB‹ƒVzÉxµ—VÌ<³È<‰Ò«TˆŒ–Êz‰ÉÖiEV›)$Öß>ñLwÚ¦z§-ÎzÌ…9‰]â UUªW—#Ý¢m­ÕŸ8ƒì$ÏŽÞÚß›ï!9Ì^ö"§U\“ðÝM÷ZkºÒãi#=Œl€fYOʱËsnmtn¯Ô:Ån¤£‘;%@{ª1ˆLù,°ÛD& Ú1úÂY§`Ošeøõbk¾8søÝòèî]%;GP9œë-g$Ÿ­¹?[q9Ìî¤ÇkdäSï0zàu”ã¬ÚŽzF” Àg9š[Ü {JfÏJ×~9òÔU¹›ê?¤TœýæÃ |@ã³á¶âÕÉÀÈÌ÷ ¬¨¨TnÄù¥W9v´º»-UÆHÄœ¥¼ÅM{zËtâöÞ/lö¤iõ5r¤8ÿ”ÎJj®¨ýDÖ;§ñ\Y_Ó¬säù1O†4Òkî¨âÌþ¢4šê.R–¨ÁêÈ1aªÓÞ0ļ_UB-fʘúyÀ•ËŽ_öœ¦ágBê¿ÃÞ¬o2°ioz¸´æê¼6ÿ ;´úsmc«u15ñ‚þóZŸñuÚ:ÀØ,cÓ3£vûÚ9Rë*²ÒÖ«=Tô1¶ðï ÕRo»vqÊpÚyûÄI¬»~§E]`õjúˆQ­}Uk¦ÜMk¥¸ÌÎþ—³Û:½“SߦÕ%•±ÃLhµ.­–i«tõô±†O±È‚·N¨¡«$°==æ'n¯+®^£ÃüMByv(t<{ļgA¦{+¿NûQ›k¡íŸiÌÓ† ]£æ5u¤Õ‚{‰ågC<%䇎y{Öº@Ö0'œïÇÄìj²àž9œ†S“÷šK¶9Í1Ôýä$‰°øûÊlªœóö›,r%)ÄÆ =&ˆÄÉë+´˜Ä¸æí0^yÇhɰ2&rÙ#ÚdŸhQÀ÷0ŠÎrG3[JD"‚Ù› rNN W’‹ß$.!íð¦ó1@ÀÌKJä®>Ì>ó®Þ!º ] ¶1핯ǭò•sô€D!³iÜ„g@Z ¢¶Í»†q¯…Âe]yI)Ê,gv/€@çï*×ýbÁý; ޳jF3Þ)9er[.ëаAÉj×Q’¼–äã´vp9Ž5kåð«²ÆéÀ|y®Wé&3¥¡ìl¨8åËa½±::AäR¶Hú~fÒ9¯|_ƒjüKZžQôÔ€nc€!õúwÒÝäØâÝ«õ)àÌ^´‚•Þ´¡àíêDëxw=Ôyº‹ #`‡c‚~ee†áãòLkÇj6þ!ö)Þ¾™é¼sÂü.­]i¦Õ‘a°¸ïo­ÔšïÜdq ß.\U‘¡õ:+´§Ö¾Ÿê9ÈÌ JNÜuûÍÕéaó0™ÝžÓPž•ðF/§Î`>¡Èœ­=æ»?Îwô;]#ÓœâEœµÇ. Ó[z)ØWß#‰×¯F zs5ænPˆ¥tõPXzš9>…ʲ¨WÿX'ÆcÚB+efpãß0IMcùþ‘ºQEôšFV¸5áWiu/¬ÓaôîÙ`:¯é9¦Á»ûÏiw¥O`q»W¥¥o·Ë /¦µ8ÇÞV6wSKkuMe„ç“ó¯G«Ôœ¥nߦîÕ¤Ñé9ÀgÜÃþ&Â1Mm¶%þKè¬r)ð ¸kʧÆs*4Àl>äFÉÕYõ`¹&G¹‘sÊœ‘)¾¾T´õDõúzÓkT=½„ÓÝjŸÌ®¿Ñ .¾»Siûf)µáN–ÃÆàÀ{LÓk¡ÏA EU\Z›ŒœÂÛàÖ¨ÝM„cÐÍ1ù5Û;‹«áÚàWkà«psí<ïø›H©â™ÓŠÊ~¥…ó®Ñj(&¼ýH{Dõn5Vy´Þ-DPÜ2hò»æ eèÆ‰öé—‚sˆ–±ZáA z¸í+6.Ѐ{{G“Q§Óé/­È/`Æ'1Ù±.‰èIó€T ž'¶ñ_àÕ&s{ UÁÄó_á}¿_Z°È\9ã°Ž}'JQ0¬Øf³Þ¤NÛIè/±ÐÙk¶Ã×ý'{II¦‚_Û“ñð-4ë©eÆx¬˜÷kõaÔÏóºí¶÷Ð:«Æq™ÍÖe*‚N;LÛ~ ®´®’æQãí"ÕI¾qfs‘À%·s2Çäõ˜Îd¦Š§‘‰ë¿Âà&–ÍCÿ*ð1ÞxúÛÔ õÚx_U§âVõ [­]nöf'93{íÈ=!·œu‹Øƒ9˜í¾‰ÞÍ’O0(7‘ƒ˜4V só ÂñäÅc“Ú:âU@…šÓwYœ¶ÖšáÏÔ×¹~`ü&–]M»!Äè_PÇ´õìîG1Ì®ÍV` ν‘ï:µ¸äéÍéÐó Yfä¹ÎbèxâNÒèSbŒo\ààñÔX•Z `{NuOµy‘îÝaàu/Káž îXÙÏöÿ³x~>gM¨ØÎ>cúêõÍá¨ÝP¤cíí0Ëá—/(©³Uç³À–sß™Cœ€;ñ E6XØTfi¨cKò¦k­ã¤ã—ŽDsí-“3H&ñ9,Ó¶]ÂMN ÃU˜ó)öâ`W“ÒTµQi9éÓPr!†b0„ý§SCáz«!0=Ï\–ö‹1Ž2üb-â)awu©ÊrÎõiáÚ/ø­B»äâßñ‘+Û]%ÔñŽÄ¼pŸLnVôðWá«~yÜ1ñÏ¿v—Cm¬ÈÌ»ùÀþX³x5môj8í˜e&ø¿N?0Ôƒ¸¿÷ð+±šíGøÏ35h­¥ÿ11ÌF!Ca«ùp¤Þ9c¢Q]|œ.326ޏ-¨Ô€B(÷$ÅfÕoÓ;ö“´÷a?j$ã¢Q®¥:½Ç.ëŸhgÔªžqÚq˜*)(AÄYo*0é vå\ì\ŽÐc[c.Ò'4Ý»«´´ÊqÇÄAÕ¤ƒÈ#&Îe8ìb[·¨ëÞ2XmÞöm4´Þ4ð:ñþÆðö_KºžøœõÔdc­˜Ê>@é~Æ¥|c‡ÓZ¬ÃŒ7Å+k.0Aé0º»RÌ1ÜÇâ\C½&_&Úü| GL!‡©x˜+Ï"a§L¼kÈé½KƒÄõœkŸ¹™]§Œ¼ÓzÿüGþûÿèîôç…/ñÑ-M^Sm<Äw‚®ÖSÖ9æ-õlÐûî3·V6{ Áöáô0F«9õš³(å[¨0údçsp£¼ÍYüxkkÑPå†YÖ«JözW±œfsÛÄ|« Ô ß'ÄÎÜç‘ 9<´ïÔ‡’ö 9•¯ÕCœ­OôˆE³ÍÓ+¾sÓ“9÷í,@É®ÓLè|CO¡¸ZõFßå=3/]þ Ôø­ùŸ‡­z(ì'-›'ä ~Zéžµ[S¶ÖÖ9úˆäÇ4ö0<9À»é™­çÞ-‡yló+*ü‚0yœ]V›ðÖðrôÍÕ©eïÈ„¦ yvð È>Æ+{ Ä×C.ê,¦Â \ðÝD¯¨tÌ ¬z¹é=G¢Ý^ìd(è'™­”¦®gWÁ/:{ˆR3úG R®t$huµHôŒNe¾'¥UÚ½9 Úsïñºƒ~Yàw=L"«Ñ›pq5^§x»üjçEÆ´ÿ”rf?÷®ªÃðx•Ãè-r6œ–±Fß™æü}ªºšÍnÄnÇ´óª*0ÛØýø—^¹GTÛò"°M:,ÔÛ£òA>al“··Â®µ–ÈO±8š:úóÃ?è []¼SÌzÅ¡¿@ÛáZêþªò?å9ŠÝCÓüJØí3¦º` ÓpÄn¿Õ…Å•×o¾a óÁÏ·ï,7´ô/vƒQ…ÔP´\ø6šòN“PÛû#D’xg"1ªÒߤɵÞ™QCKÝØH˜¥³À3Ñø?…%”N­p¿Ê¸å¾~Ó™áZ#©Ô¢Ž„äý§¬ÕØ´V•"àà(Â*$ÝkMJÙgžPm«Ò‹ØIf–¶rÖÛ´Ù’ò©¥T¬¤㱜;Σyõ¶;G³ÖÝijA§Écî`®ñújôÕ^ã÷œO&ÇúÉ?Ã×¥U+Ì›b¦&ŸÇ­q ý Ä ‡ø#÷2…ê°‰@^Â)WàÊØê®-$q\Ò¨{~%ËàMÓÔHàGtzöOCŸŽ{̵`Ž-V1 Ïeqt.e±rF8í8šÝo6éëÁù¦  Æ3ŽÑ=ÔØÙÑk]&ôæitvþÖº°Y:7Äæ Âß·$ä6;Om¨4‹n ÛHó<—ˆWäkÎx]ÇoÀšá–ë<§ù{?ðóéôžç1æÆì9—âoWˆhÞ­NE}Tç{E<%Õü½§ø1OÔ=t’¾øâVz ÿ´ÛHUå¢íí·VlõœÎ}·ïéFû5 ¹ô†âa7Zç$èýdÛh\Më]Ö9Ìoðá.;F•©Óù”°HÄ2èaß/;j$ñÄbíŠsŽ‘AŸ|5Yà éôN[Á@RÜÏ,:‚'£ðSæøv¤gGÞ“;otÃOÄØÁÉ œâbèVdÚ¥Ç2J sÄ,„: q¨=¢¨aÌ!' ìMã«CáµäR€ß©œ/ÿ]nU¤ÿ/IÇÕjm¾óu–?Ú,ϸg2­“¦|Ó-©k,’yŒ¯?<ädóÄÎåiêóOP1 ¦ÕažÇˆ˜'=s Jۈ鎘å¼ÀåC$¿VËYËç³²ý¨3úDÝ•°Xa‡xJ}[íÛæIÇë!MÇ å{fNÄí±“í3æ5‡?Oë0çˆ"O¼€@à`ÞeK0š9qP>ðèåGpH?jøˆÇ7ñÊÊKòœg¬øÝƒ64ä †¥!ÃôôññÚ=¦µTŒäNELI¾´è0ÛR±ÉåÁÛ…nqí߸ˆ2fýÀó«QKqfÓžðÕøp¹·ÒãnrsØI¿µËôêø^OfŸÌfg°crvÚÊR Z‡ÈãD¦ý¶F =çEYlC<¿–e†{í¾¼±ÕqWÃuË*¦}ÌWUáþM¸p±çcSâ5iíj­WÞ>"k¢Å!6ÇÞoðåòÛÌáËœÇúÞ\ÿ()<É僀au£b+(ÃÛ¸€G$ö›x×VoMÜ<ŸÚWžE»[òøâ3©rtÁ{nŠïcÁæ5}þnµ˜6Bçí'„'ìn˜à~ÑT%7½sŒHÊÿ¥c84—†Î ë4µ‡æ#Sîb¹ïÉ>ž:Jº¤¥lÂŒ”Ç÷hñ½£}±Ø0Öy<™“f[¦ÈàÍôV0yŒ…Fø—aÊ™…äNn±÷6àî2Eã7J[Éë0²zæV@ŠkG•jl ޼ˆ:ù=x0ÀìFÜrûe­¬}„ëó,‘iÑ+ÚêpAÁ%‹ÚËpNsÎOh™Îß·Iµlr=£ÙjkH‡Ïs#Ô,+´íÄXsÜÆ4ÀÙaÚGã¬--Óil.X;{Ρ°¢HÈã0T[Ÿå˜Ã1ÉÌÂåºÖb»ÜqÉ÷'W¬`‚A÷ætLö._(Ÿý#µ€ ª=0Yù™Üc™p Ýîf'Œfl MZ%“™œ‘߉¡Òa$`H‰M†=yŒ3¸ýæÁb0O1/Ô8<À42ßÛâtô—îS[ Ê{@i4Ïh—ô3§^›`ÆÀ9ê#„Ò¦ã„çЕµ9É>Ò]ªERkP>D­o±½taWw%€ýf¼ú´ÙmìqÚqίs’ Ù9ˆÁ9<õŠüxû?É‘ÛõI{ïjÁÇsÖ/øŠO"¼+X!ÀH,3òÑÌ$ê"ëÙ´zìúÇ÷šm"íÜ…OØÄ×Oc}( ùšeÔPy DZ“~6³äcT6®¼ Uäž>#k«6ÝPaŒöƒm>2h>“ؘN8¥m´9'ø ü)Ák\ð">'v4ë_Bì~“Q»V‡g>Ò§]äì— O2ÿgláœäu™Õ5uª©áˆë'º¬® 6Ùæ Äú»ˆ“ž~¬Ê¹Èlæ ÌÈäM6Á̆2Ë ƒÇÚ ÞÿÚik|A™ÌÖôqí0®T†lKÝ•Á™ã¤`Ú]²äu8`Í3‘c㹊§Óö„''1Ã9¦Ô2¦2>'B«ËØ€ôeÌâVø8ÄéQU¶²­²JNÝŸCaÕÌÇScìÈv?"E¤¿ù‘t‹ët—Ôrèv÷' ™ÜnøT°ºŠm,[„I‰ê¼b 5èÑCÿPíñ=S©ZkÈ Ó:ôìý$õ2º+F>%­k<ÏÄ6îØÏ ñï/X½ÿZ°%Lçét5)cñ;šTZƤ1îû-í×·Än°þJ”Vì`¼¢Þ«­Æ{f.meÀ­rÇöÖ»-aæ1¼Z3ôÊv†Éýã+¹Ê)Q¶­1"ºK°ï‰¡­Ö7ðÑFNÖœZ¼y€lK·G§±Nê*lõôõœ&³^ÝuAë4—ë+]C7þصHýþ º“MºoËöãÕþÑhµbêîgLñ[ŽŸiÓ£Ä-<]±¾yâÚll9#íÈÿ¨]¼ÿøƒÀ+Öèÿ¥¤Uª«–£‰ã]]J}úO®y^œ£ÏøÏø~«–éȨ¸ÎÈ'؈·¾ÍàÖÂ2B9™ XðzwÄwW¤J/4šÚ»Ç\ý'í¡‰´«’0DV*NXq)ŽF „¶‡VUÚrÃ8CCpçrgþ®` ’íÜbBÍŒ1vVÈÞ¡ƒý¦{D’:6%3¸ÿÔ2°eã= 3æýåî#§?iJ=åí\õ€ElWSÒ^Y~e‰`ñÖ0¬eƒTôHOsÈvCƒÓÚ·Ã ™Y¼ÆìbÓ±\x?Ú5MÉejIÃŽ¼÷œàÎÓÓæmÉ+cÙ:–Rº­;(ptœÝd^©`Î1 §½•ÎO8Çé:- Ôjj´g!€cµÈvn®´îDA ò›ß1Ýu‚Ë ƒ° 4…ˆõþÓ9Ï-oª`\µ¯8ë:Cˆ‡‡PIöÌèæ;‹¯y‚ÂbÇÉâ¹÷™µlƒÞLÑsf:MWnbщ0=æøƒó3Èl̘˜ ‘Ä"0é*& È`ooIŒ˜µêJœŽ’¢*´&Õ³rªÎãˆïˆjx…ÊŽç#Lí[ñÐA­n±.ÖQ´îT]§Ž3*±º¶[øRu’ '<Î~»üCçsR«ãnsÁùçh¬QÁ‰äuKbj0ÿlG3ªñŽÝå¶ÚÐ0fvÇîáÈö3à•†Ö×À}SµnI'Üǽ•š­UÍX‘mŽ È÷…Ó ÍX€õ†Sq3-P®C!«qÉš®§Ü6°Á<ƒØBÙn–¢VÛÕOï3ñ­fP“ÔñÄ-GÄ«5>×ñkû:µzSjªÛ»'x_pü±ÓVc¼3 jÄf dQ*¶œq‰†\t" ¦¯i&‰ïÓ){Þ'±š®)[2ûu„ïjœœ×:Ô‡ŸTáØrÇœæë‹gsf*îHâ=î´Ÿæ0öc¤Ê’ǘ@¹ÿ¹–E¢Ö=Ì(郌‘DåÂ=x”~Ñ“Až½à™{ Ó·+¸àûÊqÚCÚiW=cÓQ°à6'oE¤ª„ëî:Å<7KYUµÁ,:yйÎà«Î8?y–Y^¢±‰‚Ç{ò{| u†‹0P{ž®Y0 ~iéž‹ÿ˜•ÚF$1Ãü“3œö¾—w‰Y`ÁÌE¬g'ŒFVžàsó7VŸ/Èàys)㲩¥{Ì{I )Ëú¸éª¥QùZ&)+t”Õ›KÞ#áZs5º_I8æ Kv*)Ðã¸;°êDäßY¦ÒTBõ¤×GK©.0¼þ¼Æë¼Ï:¶2¾ä;[ÜN†›V®6¾U»|ÈÖ“Û·F¬«…`H= }XÀçƒÔNò§ DZ÷ Õ ìs˜º¥Û¿M]8àMk²º[6Ó‰•¼2¦>Æ+â¨×émÚå}9¿¦9G͵!ü×wõz°O|ÅÏN‘’Í[¾ïæâ.G$ ?%ÞGŒÔg¼±Ø ]:Ãé(:‹Ö°:œ“ñ3Úäß:MÎ'fÍ-j¾ŠÐ¨þb93›uh[}k³Ücˆ¶«…‹TP¾®§¼ œ=ä¶Ì¨t‚-éĤ,¾F%ú»ñ÷™Õ-h ‰že©ÉÀÀ48ë!ÇYLÊ& ³ƒ÷²s+¼„À&Ffël™…û˜þ‡JY÷8ôûb0=¤m¬ŸœN•:Ææéü°û€ô¡ÙZÿxÕÒ™ ¹Ï¸´F¼Ê«ÎÄÀö‚³XW;21ØÄmÖãi q¿Ì—ÖX_§OÄ0O^ÑMÄM¡ÏX÷A”RÌ1«/)^Ðý¢i`QydÊIÚ®[6þQ‰‹u@XJ£Ú&X¡Ìͤ}Ï0Ô£XÀcw^±¥5Z¾°¤žÆpP·Ì=w2°>ÝáØt¬Ñ÷Lí2•0b ¼½>´7Øþц)w¨¨“N]tZʰ¼˜¥”î?YûG_ÀËO)Æ3;‹|>MvæþBŸ~óŸ©«côÀûhUåNDJêƒ u™ÍãÛL¤Îpã“‘±¡Üxâ7¥ðÀÎé.e+ é«ÞØÇyØ4ÙV™ÎÀU;ޱ›¼9tÚT²”éÃb^•üÀTž Ãg ¿áÝJ\ÌpvžCã…P¡EU8$íb¾ §CâÏCé Âø›n>ÀËÏ)C |»rYo ϼI•ÉÝÜõeÑ‘ïÚp™y®ü{s6ØzBWEŒyl|GÆœç¤"Ò+˜ŸV’”§ÔFZÓºeœó5>çr}¤o|µÔ†§On«Ä*®ºÉؤdŽZ¨Mb¥9cË·¹Žt]£Þðæ×uíÏ|2ñÕÛVÖXr{ý§7Åuµ¤'Ò½}ƒÒšª#ÏqëoéøžgUW«qú»Í±ŒòËl 9c‘ÞB}ãBt–9ƒ=x–  ã&†”®§†};Äh1/ñ7]~k*ç ÚÐø:µÞ[^ŒèÜŒb+”ǰåÑ£ÔÚwU§²Å«œBit–ê-)´‚"{ß3O¥TÓiP¢§¨{¼¶¡kXšd1Élw˜áóîëK¸]8úOM?6¡/ÜÕ«OxPË¥}€ËCV¦ër Œœ’'Rª+¡w·P:™Ó.ç,¬Õ+§Ð±]×[iøÎ'üGâ\tœ*_Ü“:ž-ã?†¡Ú p£9ž›ŸQuº»‰/kgŸhääõtõŸے¼þ“Ãì°ˈÍz:ޤê ÎñxZ*\ˆï ’ÕÑáÕÔ£Ìl|Ð]: "cäÄÅÏca~ctT†°ôì"åZ1UA¹ÆÞÁîbÆâNdöÔ_U6¦ÞOD`4lù`pž^ð70\öé9몶þ*§bû´b½9prsîsÄ×—¡«ø×–?ÒL*j´kÅHߪÄàtä‡ÔV¾93'U¤?ð´cN¸Ô# l_ÚQe8´ûâr ÈA#æiuDþ°v‘‚!#°íÞn¦[r8Ü:brUÙŽÜ¢gñ&»ƒÁÇQÞHо'à:_­÷zlêŒ?”Ï'¤ð Æ<­X åÎHáÀï=™Õ :a\uò­eÔ Þ0À`žâ°iå|Z´ÚªÆO·´à³ÞŒr´ôúÊle=>gS¦»qØ€¿2wZÙ$$l6®ÇN=À‹]Y­ö7·ÜCÙ]¡°ägï3b òK/+ö˜Î%m笙ã"L~ñÉŒIþRsí„ûK{bWS&# ϼ²e~†TÉ šÜ8ÈäLæH÷g¨–:̉` b(q€_yØð»MW. þóˆ¹ætô6€S=TŒG轺–:y§vsžcéüî\¨8Á‰\ ]0Çjí'¯?¬Îj6íÐÓà 'öö˜ÕXBàÚU-•Sî&ìÚG0«‘Íg³Â$ãT§–æBíÑ6àÜœhö•üÒb†·, óð#Ú:‚¸`¤vÁš™hö©Oa9¶jX…<ÎΠ['Ê6¹cœÿh®:ìíún]ÙÃ=ãõê”Tæ­Â¼oCqÌb§KV«ûJŸÄº)p'Ä+¦å1j«`3´¼d©ƒÖZ\ZÜUI?5Q¨¤+\„oDBÏ3<Ò¿Íõó!r%Äìyå&épŽÞAÏI®êàÊ ƒÈâMŠÛ±»x ýC0l1Ìγ¦¸82ØóÄäÎj·Âî&fs‰ q0qí!l¬°ÇÀÌ;L[Ò§kRs2Pg0„ûÊ‹jÞÙ í/X`|CcJQŽÒÏÌÖ&[¯2h“õ5-¸î'>à`þ³µ{¨3‹©pÖt›ávçÊh<˜Þ–¦g@ûŸhª)bÚvü.ƒ’ö ZÔuÏ&VWQl¨¦ßÒ8øƒ©¾«?§ŸÖgWvïHé¶MŠô˜¶ o{oj×·V÷…®»ófI˰ë: ‡eÇ ÆpȬ¸Þ+ ÐJPXE"Lh¾’ó(óÞX82çd¾$Ú …€•¾hM¾ ëÐCaCiÀºŸ)ðz̽FG¼ëkôà§´â»2t<{GÚÕv᱉Áéí9Î=@õU¾¬w3¡¦|€yzϵlÁ=»€j]}Ô‰Åð›nÇ[ºméó6øî“”|ëÄtï§Ô¶þ„à£g=g{ÆUTéo8=ïñ8¬£?N@2óí.øhËÕÀbéC1õaWæ=UXÊLr­¾)ÎÏj.Ù^Õ÷Ÿ¨]Õ}\hò×ç}]öƒm [F ™„Ó\Üb2yëA&toÓín0IP,DvÈçÕÙaSœb[PÁrrÞt«¬ÒKmž*ß+^k¿HÄê+ÆåÆ É„±šÛ‡9é:^1¡ò­üFEã °`0ùœ—°õ=OY?&½+ãßµÚxÇh«™vZsÏÄÍ«LÀ@[hbÛqgÉÆ"ñ+–‡®»5­Y˜ôt´ºu£åÈëíáLÚrרË8¸ŒiìórÄ`ž²ò“\¶‹Þ¢* g¼9’âv…ýdã ò¸•Ó½¾oæBã¬áµÞpËŽÊtuͶ½¿‘ÒkŽ[,ð×+eAÈ‚a!Îz‘2sÜÆÁRfI€^éaŒ›D®‚Æœ“b€˜œöZŠjæ(á~O¼ñÚ]ÆäÚŒø`HÑ&Õr-·ƒÑWˆµ¶µ¬vð§Úekeõ f1AÐä¢û ­ÿòãï,íó6WNA>¿óŒ…®Ü¼/œ1ÁÏúD•U³å?>ljEÝNמ7œc2ÅÙP äb;°«Ž½á”úÇ|ˆ´z;F¡º¹þÓ¥@w;°[=Fg7L¾¼íÉ='cORí͹Qðeð‹Wv—PÈ<³Xl6 âë4ÚµæÝ-6ã½gzZêM¤VÄÔŵ:C´³.åþ¥ë"ëco©Ð[;¨Ã¯8nÿ3™‡®ã[®Þ:OoªðÐꮤ¾J°ÁÜN&§H–¹6-Œãù»˜j¯2WQŒêEHÅV·Ï¾î"ã1I$„Ä–súÊÌ Î9“ÿÌK8•T¿‰IP ôš÷™ÉhsÚõâ3§mŽ¿q\ûF*ᔎÄG]Öìùê Ø&ÂÈ t€{ü“ê–SwM𮆛;@0Üw‰éíJ£væm®*!xi;È .Ô`o¬‚GQ.걕rp?HzéP ªÕ¥£Ì'š;EÁhuzc#·a³)ÉÚ~ÐEœ”vci(À5È“Ws’GûÂ!Þ¹÷1íCšS°’yÌ.¯VÕ¢2s¨áq¯Ôòë8Ë Ãã¿éγTY· KQZ>xçÞSqö—»"u]XĶç¬í==änfíPÀñ ´í3„ aª³œ$™hÇþð”ìÙþ%gUØJò&Ï#‰¦Ù›Òž¼à Ë¢Ò–z‡ó¢yŽâaòOmþ?¦‹`L™”‘2Oi…újØ`8ëÙÎfƒ|K#ŒÅ­ Y8çüå æY~Ò¥kœM 2­69ëTå`J+Ÿ¼° ‡‰ajU‚’'&ÒKr9ò»ºÄuš@T²õ£æÊ œŒ®xâuj$h—'—;é9”¡ÈÓ!-É9ÄüÝ?4öš6c¬N¡a žñ£YÛïo…=꼓1øê”ã’~µœòx˜¨•#;‘ÅñþQûˆÅ:ã¸nÆ'4y`ã€f·2´»Wº¾:Ï?¬¯kžÓ¥§°í, Àí×´e9ø†©]9Kq:~¥ÁÄäÕ€t8Ìèøuá}=OÄYDÊô|» ú¹yÖ$Œv"yõµŽG ΂ëH>¬ƒß3L…<NІ÷@Àõ>ÓËYª¬€*¯õnÓØë®MF‚ô;NW8žÕ´9ÄÓ9ÆÑÌ­o²ÇÉbÄ™ÔÓ+yX Îm(ì}>üNÝJB*ûg>UÑñOa­KåFAê! ÛðîLÙAÞa¸=$nµ+ªÉaö1m9"ÕÜqØÇ-¹öжÐpv’3ÇIZᕜœ*TãÚS)"òL…x™Å¹ZŠØ?¸ídeíÄì=@“‘m;Jà™¤ÏÓ;‡Ó˜Iöu6¬}Š£Žùéôº6KÛ+4ºIWÈ=£¢¶'y]åŽHö“I@ sÏÚt<¥ GN0$ÛΛaŽ¡|Ÿ/é+÷Šjsc·h|µuª7Qß9̯.l±†¹5çy#ÒFãˆK/%¶¨Ú ~ð,üàÆ„{Hþ‘1¸ôùû@ ‘‰œÌwÉgâ¬ã¼µcºfXÌ™í/tɽK3’:ÃdÞüðD¶õc= úž%–í5R†\bh ^"õÚVØÎ8”U½ õÿ9µµªáDÎ3¸1ö‚²Ö^6cäÈò^ çù†óˆêGè'9?VÞ1UÌ03úE³?F¡Öì©=x÷žOâï]Jž#KYCt´ ây@å°sî'¹ÿ”Õxu•X  `ŽØnžì-D 4ö‹*n„GÞ7UíXà˜®¯ÂhÐÞoÒZ*ÏZÒfÙÆ>ò2Öø­1»„<üE^†±Z ²öè¾ßyŧTÚŠ×#{ °ãøµgŒê]óØí á×l¼#CuûÉÏ ¹t³Äûø f æeØÏ×üæë ç'í¶#‘Ä%Õ-ÒУÐg·y£€Üz=I…P3´5WÓæ;È‚ç6°ÜOi¡ÈYj×N;˜H$åÍ×Y½øˆ‘çyÉý ÈŽM+>Џ9À8"nÀ2@í4rTÌ©¬éædŸˆKâV~&¹0ׄj.¯K{S±_p±Î!ŸQ©°æëKØN>Rt·oU߯ ç‚'Qn]M+CtÏQ9òøï–Û㜑Üðê°`ágcz¨Éà÷œý òt¨\a€Áš²âÈXt¢MFWšÖªÖ‘ÜÁÖþ›ïk—©¹é%'ò‡¹æ0Ò‹÷‹ë0ô=`ä‘ýûBÝfÖǰ‰½»Wvy=!CS²ÚÎßR¶ÄêoÁ‡us v3–dþ°Þnû²ye˸UÖ,bðZ—üò½ ¼ðujÌ} Ìj_«>LU¾I§QÔXmr ôŽ€M\øUEêy2cÈ«{ã{ò°ŒœÚfýAúIt‹Y©gm¨8÷‚m9rYœóóp`ØÏ2ÑÉ9Sj<±Á,LÕE”úÄz£füãüãq _z(lü éÕ ôòGHAª¾öÚÛqØŒì6ëý£5Œvë[NϹΫv㼓t+Ôìãv3í ºšó—k øœÚ²Àg,O¼~žx»JÛ:j½k)üºnǹºu­Ð’ˆ~磌|Ì¢ÚšøµAù#¡Övó5“Ÿnó“¬RNåìyÈšªæþV9ëhÃYç® À`üÈ7’ñz(Cç²2Vç·­9gKÇäÚ®1Æî õ>!¤]•:“[1ÛÚy¦·j,Iý¾cÙ³eN‡Ö¸™í,—ab@=úLò ’N§“=¥Îe°%}¤ÌœæyÊ’sJybXëO´5mëubˆÇ ûµOæiNf5ª<¸ Ý¡¼7Õ[{bZK3qÄŒû^=ðÆ5jרñÔ6Öaìg%¥èÞÄNž îr}ù‹-ÙÃL ³žÝæê¨·,sñÚZ(h›zW2wZîŽTlÄJê+VÈOWhC«†Rí3ø„cÊ>a¬” «Xq’#ui•Fy$ûÌ ªSÖñ•9—7¤YA± 6W2ë¸ç™¦v³éCs0SiÏx¡Jr«s7mP±<±J‰ÏYŸcøM£ù›¬i¬ÙªS…FÉ?ڧ€Oë¡H ã¤:n±ñÚDonY*Zs|IÏ㞈6‰Ð+¨’: ƶÏ9¼Ãß™_ÒrèFlþ²â7Ã|ÍvËM“˜ W<÷„É”yŠ˜A¤egdó0³]¶•¼æQ$JÏ´°Oí![gêé/™g9̜ãPôža×÷ï¤æ+%‰“ï+É™|LnÚÊ0’dF[T?/#ÞtbÆ ·§ë`YG?˘±F[ëÏï©7($q/;Ã8äA½XSžÖ®Ë I3.¥ŸÖg ì¥JT/ŽóV–-Æcf‘èÛÐŒËò€'‰[›9+ž|Àq¸Â"¾$˜ÑÓ©ø“ËÙó/rôR]°2¼xØá90*„°=c*™ë&NZz*ëæ(ÇmV 8ïóaÛ=#âe¨ s4g§4Q½°:gˆÊ軆Ämå€aä^:(ªèSÉâOámpõ¾Å„èÑR2í+߬;m¬!¿ óºÏ Z/Å…™IàÍiÅZqŠÔŸÒtuíæÔAç"5j)Þi'¡…¥Ž<ºzTUÃc${ÆJ­ƒ×X?0fÅ~¥ï¥©=Xçí5ÃUnW+Ä(ÙKó–`Ï)åH€'»Ö*’Q<þ£H«s2(Žqí}2ÚSD‡©öŽô‘T(ÄÄäî»$ÔS XF8‚q™DÆé`ç´ w˜ÞD'f³ÇĽëï1Z‹jrÄ…¨‰–¨MŒß$b)9à[£¬êX¾æ¹ˆBV¾çŸüEw‡ns·üã´ôÒ¬ñ)–Ī•©B À&š¤|ïÌØ™c'u|VªØ (íÒhaÒ+œtO=„rl½Ôãy 6œâ!uŸÈ;FÜï/aöÌ@)<ž³g5»ªÚd+ÎfÁÇH7l°$ÛÏ´›Nzæxï 9†É¼ÞI[ˆëÒMÃií²vãæh7AuéUa×´Í€b Ž:ô?cÖ13¸fF3ˆ Ør&ÔEþ•0šÂ?YVsÓÞj¸Y“טþ¨U@t—z„ÔX£ßˆ·¢§,¿%™NFðDvÇjKö8?¬âÒNý¿”iä€qóЖ9æ?g‡¡\ÒÄŸé='=F(Ãv{NXÜ{_»IÚWé̼ɟ™“/´ó,J̃©€_HZ¨{Af, éW¥Ñ&Ýïë1 kâtèC_‡Ö­ÔóiÎÕ¦[¡™çÛL:s·ÄèÑh»N3Ë'sí0Tj«wŽ™äC[‚]WX Í)ó2„1žc  ¯2u®ÛlµŽ¬9Ú­Dý Ç…0 ¦ç‚c—K”5Z¿£ûÆT1€&SJ3ÉÏÞ4áz R¦Ý¨¶G²N#L )㘻ˆ‘µ'}[ï±SúG÷‡l­LØàg?NÅ÷»u'1ÿS•2 (ëÓTÝO^Ðz:|ëpô ¢T c—†¶Ï§VÀ­_oϼçYSÔNìcàÎÞ«C½Š•OQ8×è車ɞý¦³ˆ›@É ñ"·ï1œýÄ€óÀ»³ÞY#3YŒ‘Ǧ N‚a{A8ç"GÞW™·¯YS.@æ!¡E¸^{H.ňøú['íÎFÏÚGˆliÕÜ:ç ò&s“ÌR»}cÏhd³#"FPår&ƒ˜5qЉ¡ƒŒH[yÌØ3fh 5Kêx–3žeI¼fNϦ–oŽójN—iž×í0ÌIƒ*ÌØ‰·ŒgR’Iäz~{N…cÒ8ãÚ ƒ aÎt+Ï´2N Ü™À?y=#8éÌ#®_œ{À½Áó!PÒ@Ïn’›ž†?þbå¬Ä\æe†%9‘Üm…Ú´Õd׬j¶AÜ ÇmHìïÖiõ%P·ðʬ‡‘Gxší㙦1ϚΨŒ“í9OËÕ’YÏ~°ù,±¯Ç5ÈlFfæ[÷ƒýg>›m’&m¹˜ Ǥì0\“ˆÃ,&‹MçÞŠqŒäËÇð›D¥vi‡rã3›}[ eUöm`Õþ!‚éÉ\ö‹”?Ì¥[¸=¢¸å'þrŽjí, ˆåMŽüLµH¬J¯&ddx“nÆ8Øh6{Êlç¬g˜^²VÎeî2˜{AY§‰XË´eÐ.ãÉh¶HýaÏH»7«ž³W:™È$ÇùÌu–A ‘²‰Éâh/¼¬¹“&k¿iEG¼9ç¬*6:ôƒÚ3/sŽ3œJS“(ò:H¢0+'£vAƒ&l17ž½àU–1‰ –£<ˆŽ%ñ‘,/25g¨ÆMó$dF=„ëÎ ¨œÑªßk: L Ÿ´ÕV°´*÷—8(÷tYæéj´ï\™CáIéÏÚ'£³Q¦ÓTΪԸä{btìÑj\cjÖÅLµ\ZiÉz@Z_ù@ÀSÚS¶!.Òê´¶2¾Â§¨'¼HC½w6â¿Iþ¡ï9¥»ÕtIô©²u!Ž3Ì6§b6Yå]]žÃis+[;u ãj~fH÷Ç$€Â£àÀ‰y1UlòºØ›OyÎÕTjc×ié¥]ˆÚ i¼ª«Íþ¡ý+ÖTEã§sïˆ;ƒ²Ï?P쩲°0ƒ¾`_ó 4'.mëÌ[ ƒ1ÝBç12½ˆ—e9MÜp¿´É'<ÿi0GA!8”•œØÀ˜—Áâ Þct\Q—¡¯H¦:b YÀ ©^¶‡[‚»s7¨;_=ŒK µL™Ýžsí|}!·¤zѵS“a'®Ó̦`ãË$ÕfPá„N÷5j#ÒDF¦p†Ú›ê&'g Xýã—•vó:œu÷ˆØrÙŽr¼– f¨ÿˆb#AË+ÀŬÙ»ÜbI^šÓVl½Œ†<ÎÕÜi° úD44šÑ¬#Œ±‡·ýÕñÔ-24Εö‘€@1Z µŠHäž&¾)÷-*…Úàž£‘ >…jç&Ò35Rí\çÔÝ> °Í¨Æ!›‡>ÉEM‚Œ)ç"ã,ÍÉ'§´ÅNÅAêçé0Y`ZÛ-Ì”/˜\tAÔûÌêNåôsÎL”´Û¸Ó¼ £Z›ÐØ8Tæs¼¬ÍŸWIÔÜ? SoG1 ÜÛ¨ >•X!" ?´ ûhRÁÐÒrh»mŠFàÎ(zbˆQäjíU’r'?b›=G“Òz/A‘hpÓ€9f>^UN3ý3+Û¢]ÈÒn­·ÿ™j “x±þP¾’8™ r=Ì#L±—?sÛ´›¹"Êð7ß8ûn;4®ò 1+%ƒ™;üH1&9â0™æ9¢_2ÀŸ¤Tg_À4ûõ`°Î0sˆB¯A«´¡F8P';WX93­¯(Ä9‰ÉÔ^ mdu™Ö‘ÆÔœL  ÄzÔ.KcœÅŠáùG:,*OäVeÄ ´§X-3¡H“m‚$5 ø€f<ážLVÅÀôÀ’ìrCóÓ¤·®zÂyàÓ”ŽüÍs+Ió>úØÌ)ó‹"’rc”® [ÚjÆ4VŽÅb*óXñÌékv’Ñî°’‡¹†“‘5ó»¡´íØý':¤s£hì Tþ§D¶Öy?Ìøiјª‘Ø“Úz­=˜\“S]¥ª½Ugb;ʈíó‹6)Êq܉FrgoÇ¿Ã×èw_¦ÍÚcÓRübp‘ƒ ®#«q5œ€dÌa¼’>&\ñ×™3)˜bj›ºž&€Á•YçæåHU;Až #tƒ#žcÈ¢†fÒÒ¸Á˜âWÚB¥ªzõŒ#q×3œ­ˆ`îQ‰7º ݦñß1JmW§hÐ3+‹Ic@Í{ €9é6$©¡/ï(sÚ^›ˆJ™>“ûÆ’¢+ù1øï UåsêšÝúd?á€mÛ}áKí\ÄYov8&ºîcµ}Ïx»ìâgÐXþ‘K+õ‚I==£lWŽÐDÝxö‹£Ú3ÐA÷âXúùàLàä‘!¬»èP{­™æe@÷›Ý¶\évzÍ-œvŒd³@¨çpĨšÊhë<·Ohf­qÄ¥`~–ã3%ˆ=¥Ä¨ã¦`ÈÁÄ)löŠ‚#=ƒœ‘­9É‹0øâOD’g_hKjVèTœÌ×p#jô™ñ^ªÃ f¹C’´/Nµ)À'íj ퟼ã=ö!Y³Ž{æucñ[\ùu.µY‰,9ù‹°SЃúÎu»IúOÄT»©ÍlÊeé|ºªŸ>½:–ˆ"=â#S¨^¶d{µÖ¶pê Ï/ø¹ÅÏŸ`™S+}oÐàüËÌÇ,2ǸÒe*ˆÉàG4ì´(鹘~Ó©¸S^ü÷ÀŠyöÜÛˆ'ç¤ÛàÃýrÇä¼j=ªjнÔ|æs|K6X, z°ž}+Éç$ü™ÙðÍ¿Q[œù)õ<;>|1˜±øm—’6°CÒ,ׇ<í¾“æ|©fRšë\(ÏÉžMž.ÿ+z§ôò9„ ˜S[p2>ý$[ ø") ËÑ¥#<Íø…É] EcêsÎbõ6X™uƒÎè%cÅncÎ;@6K ’ÌÀýó8»Í+àa,p&,9â[¶ ¢rp&~±œü™:€ù—€%î”r{@'#Ÿi}fvæ^0`õ”3í'Úkõ€ix^eIé(œK䈎¶:%ƒ´äIü¤v3'éÁŒŒ»•hÀqßäÀÕa¾òÜÏx@) LÚÒO;±Ve<™³yÛî íi«®|u™FX3‚x‹9h}Ê1Á b==OƒWe®·j­-]C©÷}f±ªªËKH'õœúÀ§¯Ò£V½º+u#3IyiÆÒv¡¬×jnoVp„õýkTúkGa´pLëÓ¶ï ¡“.Óñ8^1CpG¨L>LeËm°ÊøèÆ¢ÅrQ¹Sñtâçd'yÌKGv䜎„h÷šÉk6B >£ŒËÇå–çiê'Ã’âs´í"m)wú1ÇÌkÃï£ÄkÔ"¦Å$ã©Ç´ç«ê4ìvœ0àñ0âÛó¤kv¹RGXdÔ¢vŒüňwmÖ6L*^Òl‡68ÕXü*{ž!kMÇ6±? ÓJÄF~;3b©\*Ž˜œû—oÔ|Áj+ 2:ÇÙkN=ùÉŠ8Ìè__<Ä8—e'<´ÙYF6lô–¾òšiGH`g&jMA9oi‘Ò9ᢵ¹l°‚;/¹Ž¦ÐÑ^›Dà³(€ºŸXuàÃéÌðõvú‰$üA»1Sϱ…8 Xõ˜¿f¡9'8Ä ºØ2F3ÚSåˆä©“¥/iZXÒ#fyæ8Î]0b/Ãþ’ù Ãm_|ʬ†oÖByÀé‰0ÉÜOºÉ×%k¨=4ycß1{8ÇR Û9Ü{AXùæU† }\çhäüÍ+c.ÝzLôlÞýŒDj’MÇžé*ÎàòLšVÝfïŒÉh#o¥rJ¡ÂºŒõàlì,;"u7¬¹ê§G:£g¿0¼SPųƒßŸ˜JÎÝ=€œ–éö€ëc{/XZŸ}Œ1ÀÆ#Ÿe{<þš‘{`D÷sŸ˜åÍŒ{39èw7¨ç&1SRØ]Ç«¶Ú/å©êÊ„ïªúëQÛ“Ï·Lì9‡dTÕšœsT„8ê½cà X#¸‹„üЙá¸1XchýxaõŒæ²Uˆ<x™Ó†ÓØ]~“Ôf2lO19â.FÐ[‹yéÔGè´§='.ã´×ÿN!t×tït¼A<Ý?¤zIÅ©Z­Û—–ë;EËP@ê¢ríä’[žæc›’Î9é0Oi«1“ÌÀ1c+Lq¶)bœñ="¶ðr%G>pŽÒ»tšp@&g2™¤’¤ÁÝ“Öza¦¥œŽJãî'Ã46ë5(•.pryè'¦d¯IZÖvú81^ŠYhw\YI='"ë7YÀÌrëMäöNÂ#qÇ &mCfEŸ–Œ"¼ž°z¹ŒXcJqSÓ0°4`dCã2okdq°ˆ¹ÁháU6£ÊÍñ ƒ1šbõñ®05ЧSЉ4+…T=Ç2‰ÊâJ›k¯ÁŽrœ§pÀàÊ4²œ€sî!kq˜Á!—ÒØ„‰Ø4j]8rhÅ·î¬:ÌMÁŽ9ÄÅŒ6:cÖ‹³•jº«`ç‚'™ÿø®íw‡®Ðy²¡Óî'LÛ†$˜ÅWn'>ÿ0VžX8ÈÎ Ö êx÷†þ ßÅP?"Ãêù åœÐÔÁ9o´ÑÎ&é'ÞJ'ŽœAɃ«Öp93LSQ¹_¬+8#Žb¥ðÜ㨆TA1+ “9‰Y QÏ?xD~ÇN:‰`g´% «í«•˜¶š‹-`¨…`'GðikRì§=TWï ðÜÙc—:P'æ€=ÄÐ\Kœ÷m3, ÌÐâMT®Q³&A`#¬X±‘Iè?I´šc·GJêÎäûF®ó3ÇÒ:@x‡êuªÊ.Þ}G¬êÿ³ïc’SÆfWäÆ]Z¨EŒu0[Ü«Àë] ©ôÓŸœÌÛUÝ,FÜÊž7ÙÚKfpf6ÜCe' à™’¸&,µéXU0MkEhXÂöéI\ÆdcÛ@ÍW¿,á~&NÀËZOÚ%Œ8&PÓYŸ¬Í¼k&à‹f…:Çš„M­(ä’%¨aØÂÚÎÑ*Üxa0 `÷Ì*¾1 c3J $/ÄÈl°Tñ/Kc°Ì[BÝú:7®Pq9Õ!­GùM°ž]²Êòu­ôáÐ7é{*ÉÛPßmla߃º÷Ç_×§ F9Jàž˜b õv9rsaÄÔîùø¦e¨ÏÇc¶Ïq¾»±úÁAô¶LÚéÝþ•&g—Í¥Ol“^~²IcPSé$™§ÒX«– Ï&?’çuãâ¦1³˜j•HÈäË®‚Ö*ÓÐxw…ÓQÜÀï™7+ñÞU¯(WÂü6ÛϘõú;g¼ô´*•©FÕ^€BéÕP8ÓvV%fygsìæ3œ?­X­¡pÇ!ˆï8âzmM"ÚÊ0àÿiÌÿdY¿Òë·æc”Û\rÓ–W=`_j63Ìõ:Ó•>ig$cŽÐÚoÐéWsSçYÔ³ûÅ0“´ÜëÉR?80@&Tû˜÷æv¼l"ø¶°˜Sœwœ òXñ jµÆïKmÏÌÇ`¿XÁÄÎGêe°@zL±Ïò;Ê08ûâIG‰1ܘ‚åž%ñÛ™3ŽùFàuë+©”9É8 À‰Ì±ã|AÒ Mf¹]F&I÷4†N“A°&2eŽðç™=dÜZ#¾«ö€Qê'cü?O›«LŽ$Å+Ђ3{„_lóÓjªÐ’tÄdŒdžeã‰n= ‡sïÍé ÷N]~*ç?ù…üz°ÉÁ'±•ãOp¶‚×Òë­Ñ–ôàñDÀ@FpLSWCê5 ¨¥‚¶9ù1¿1µ4(´ê0ÙïɰðË—ô4Z.Eôîõm›íIØüâu¬«iÁS9ZÝ9Ó…#%3ñ0Ç+?Í^xû‡¼"óEv`u Ž#¶ìlÆ ëð½ ·ÑaU*C À#ÐUáHúwÝo*:Þ/Ç|·ZyOB$Yc*+VÁ– ÄЋK”Tll†a Š®® slS;¤÷œíUI#¤¨ÊÇ)‡<Á±ÜÆmX» KgfƒÆO3R2ÐKE½?¬µ;XpDÎG–€³€; ·Bßî’O¨EõEq×¼gFÑÔƒùD¤ƒb€Nqœ{GTÁ¬YHÏÔ ·©ƒQZǼQÔžCgæ [A-žÆ>ÆèOv ¹Ž&Ã’qí/NK2å37õ9é5¦ãœóí9wÔú ß È—c^{†þÒÛÖ¼}]Ä6a»zyâ-cç÷„¸’yí¸{8è UÐÐð1ì1&µŠ®G´ª¯Œã2k=U‘žp1¯AT1Zõù‡ªÂÕ°z@ô—AÑžÆ˱Ebf´ÍþòS¶ÜÁê¤&”mdwHÓìÖ¥ûöö‰PÙ,~c:¶ßb¥ôæxfîu ã‚?xg!kaŽÈûÈûE€€3ާ´ ÛœäæQ¥bô¶}à›‹”ôæMå:Ž «‡æ€Ð”í`Êß"^ü‹ö°O@£á³Ó˜K ^a]m{ pǃÒœ¶PÑÛ7J¾àÄbóûÅ£®³¶q9—†ó[ƒÓëœ2®=¹‰õ>ó,Ûü`ªdóÒkt—ž&{­5 ˜c´VÕç FÚ €Ç2ã,ù&È02#=XP¯'=¥²oJ¼ôýc‰Bã˜Å:uÏ 3 F«¡á„è4V[Ñíá~Ó,å©nI9æV¦Íµq‰š›*sÜãeË9uVü&u‡àdC8âi|É5Dz¶´ˆ•ŸP\¸9ˆ¿90b(•žc†"éˆ@q 4üÁñí4Æc1C«{B,Â͈„XE0 ûB&zÆCÇy¤90Fn£“ ú+;nàûFÄôÃ1•8X“! ŒˆŽ³ò¬ÛêÇrD«¼Dé™@'¯À]'Œxn¹<­ECÍ ÐŽ{ʘ[6ÎÝW ®BÌÕVàÇuÉà4¶ëêÉä-|þÓŽ.­Ë=Ü)ÜtûɸX¹œu±^¢–ªÕ`‰ãµú&ðíaÓ¾Jkoq=5ŒÍx–‰|KFk'/(ÞßAcÇ1ã¬W§Y–Þ‘Æbkâ4ˆœ/ùË“ó2=XÇ@a“b\å5¼rp`NA'žæ6`ßÞA(hÁzË6t ¹ýe•€Çy&Æ 9#˜îƒDú»6©ÀIè&4Úv¾ÔE$γ2éªZ)è;æoûG"môr–M".kc}‡¨ïµ+¯ðõ –ëîLSáê*¸7?,ÞÐúj){ÙK0_HîL/13†@9ÈàËÛÐØÖéÍ„rƒñÌç±Ñ/ ÒLs.I5QçÈã¡16Ÿ{xŸ¼•Õ–ÔT8šZæÏ-pwCh¦ÀyéŒvæuß Ä/#±ž};ºUèýJ3“çÇÚ¾,øÓj_ÜÀÞï´åŽÞâ8¸eˆ¬jR ÎI™üSÊ´Êê6y„äqÛ6 .GAûÆS`Ï2BO#ž'd“Za>MdGvLÚªç‘3¨¥«9_RŸnÐ>hÇÌ›˜g2èàeèÐa9æìH/—' ®­v áLèG•ø'âp%&ÈyÜ2ãÞ o-Èâ_˜Ç´{Îj“¹ó@{òc”p8ïþí¡–ðª g¦xŠ„+ž}¥K¤^Á…Qµ@Ä£Z‚1 ðÚ}£¿çpzݸeÿ)Î-Èãæ7[ï¨|CQÎÁ1IÛf}ákFU­AŽÝatÃnÓíÀ´gMéŽCØñì]FY¬ùlÁçãäMZrOÉÌýáV>3ÉæŸP˜ž¾æd·>ð¤>˜ã?&ܘ†f¯>‘žÇ1›ð>ñšHz—<‘VÜüަ5§à2ûžÙ¥²Mg¿"Êýy铉âß·—ûÐ$¥r"i  Ä•'Üb©æe—=6øølK–o‰ aT’@Œ+TE€yFm¢œž& ¨£%‡ï+hÖ› ºT Îüuj=9?¤xî0  í‰R±ÓÔÿ{2¶¢ œƒe¬rÎÄü™›¡$ýåI\vë¶l+´œd~Ñû*qtVX-}$ŒÎëðÆN\t×ã„m\DçØ=|NË`H„ço3&Ú%ZÍíÐþFÙ{!£«!˜ÛÎ#f²OhU€8Œ»*kF<¬ËûÄUÌÞ (¬Ž‚YCí)%ùÏÄ-$œ˜AVzˆE«r ¤àxgp•“žƒ0 0"¾!vÝ3ÔœKˆj/6;1<“ý irlúŽù@;OÏš ‘^{·k.ºsÞ^ƒÃ5Q`³\  8^3=J'ƒ]¦g£[¯¨û‰óc©pBî;TðÒê/D>SíwÏ#ÚUÊTÌ~ÞŸUþħXšm-ö–:,›ŸO{VU¶ƒélpg ÃôCNF¡Øµ­Ï3¿¢Õ6OO~x˜Ñù,®ø“DLjR=-Å {ûÎ7ÈŸC|WMj‡ Í•+ØüϯÐê.»‡”ã—:Í6±À*„{žÂ*ÃVÔG'xêw (͸¥DUuz¶¸ª±¬¹3loÚ'Åöæ(×cš-ã©Úe8wº™HêHÄï [ñ—c~òíÔ-µ2±¡ŽD­J䙸çÃÌX„§tjÅ=3ÐÀ…÷‹néÈfX›+ Xogâ¤XU\J^Úˆ†š^¢5W¾bÊ!ëëÖP?Sb1YàÄâ«0ÜÊÒhöÖAÈ,Ùã¼i ³¦­ÎG ï!Ô0 undò:ò=ÄÚó hPÁ•Ä/1쩘Åj˜Š` Lj;îÚ0"žv8ŠÝ*c³ÞÑkª:K7 ‡»ØÉ¹+MQk¢í°ô<xSg´UH°°Ï&e.%Š7 !ûMu´:ß*À®}ûN ´‡"y}ä±í¬ãËcö0g–.ÑpDäx§„Õ¬óµÀ'ïÏs.#§‡²• Ç©N~CÖuµmö©ìg:à¢ÃxYªÒó6 ¾zHzÊ‚P䞤™gæHH_¬R²»ö‡Ã¯Ö:­jy=HŽcoEl„ˆ9Ñáú­B&‡aïŽ'ªÐx6‡@ãñ_Ÿ~3åuÄŒxÁKM¤°«‡ÀÆ ×Ž{O•½9”øQ»W¨J€þPy"=N·G R”i)êïËÊfºÒK99ù”ºlòä‘/Rôο[áVå©Ò¼žvŒ¡³Vê<ª|´ìM•Œ(QúA=ÍÓqýâºö'è6¢æ$ØíÇÌÉ­“·êe—'©”Ž;w‘t®YÜGRfÅÇ éó3Ÿy2C`äó‰eAë8—¼ŽñÊ)ŽÓ8æZÛƒê’ÅÓÖªàÀ+‘NÁÄ¡¨°T0yñÛIL¬ÕÇL‘“+ÍfpǞߤ&ðs‚$èË32ˆ6*çrã1¦PσÞ/}~NJ÷ˆk´P{ˬ‰Uÿžò†VØÈÏlˤáý'‰¶ÃsŽq§/Ç0 ÎIûF´­ƒˆ¢ýmó¯Ò[ Pfsü7ë\•ç˜äCGTÎFߎót18ù‚lâ]L?x›÷Î\(„s> ³†ù€¬Ø{~Ðc¬ÓŸT =P!k$œ|MÝÓûAsœÉ–dœwÀŒË©!ú÷TÞ³gŸxÍ|0æ†Æ,ž¢Ѿ±˜; /þ—Ú·A™K2ßY9âiq1ɾ†Àš=&s¼_Q©0NOa5Vé»®ZÆI‰¾®Ö'nx&rä—<“ûJÈšÉöÃ,íF±Øú‰"gnfåöø”†íí482åw€Yc&eKgOi : 膪ϺÏ7^ ÞÑ9}–8_‘›ŠÂò!g~%“˜'Þecd6xs0«ƒÏ3jq'Jh/IJ%o™,1 ƒiï/´é°ß2º!BËÇÄÀo™°Òµ´¬•Y€t“¬½£Ú æd'/Ä›%yùF^'^OŸŽÀbTœ£+¨L’L"ýþÓÏ´Ðà7ÈÀ”Ä’N:ƪPmUQ—Är$u1G7äÆk8Ek rN!VÑ%•t´÷5|©Áÿè.ñMZw]HÈâgOºÆàð'U,*¸£á§Ç‡·Ï¸pU³‚› è|{ÂÆ 6§N6Ú=L££O:¤ÝáVÁù“2 |ò’¡Ó¬kÃ6± #Ó–$üE€Éë:@Ku˜ä&ÏÞ@Ã_©'»13¯A p½çï9u6ÏWvàq:zQéÝ,%zòbú”׺öÀì;™5ººôIŒ†´ööœN¢ÝE¥ìrOoa¢M˜Ôxƒ6k¡B¯÷ƒ¨2cz›°2¨©B—|ã·ÉÑY²ÃkС‹Ò»¸ls÷†ˆw~z¯ló8:L²p»qζ°=í0/¬±\}¥×¢²Á’Ê£æ5VŠªþ£¼þÓKŽ»roHl>Çâ7VŠÒ2ê@÷Ø0ªí'šsÔÉÚnWÓUR+c0ãL¶ý +v?÷‹ Nz‘ š†SÃæÏ ¹MÕ¦(=o“ñ7µG`AÕªâ06Ø8ë Aò|ùçØOH#*bÖ#Žñ¶ §âVôn62ÞÜ[ÁRzÀfu5ô ›×±œÂÎöõ>¼±P9š´Î9„ j„ÚÈ0&€É†ýŒö…¯¯ÄI´$tt |0ÒɈÕVàˆõ69*Øï6ÚúôË–lŸ`3䬎êž%2!îûÏ8þ9kœ.k_ަ ü^ÁÒµ'ݹ?´ß-í…³ÓÑ;A€ó2NgŸ>)¬<…|Ë\Àñ«—‡Èÿ©c¿™W£ ÏY½Ø\æpèñz˜ì?IÐ]BÝYòØó‘q±S)U}¹sÌYœÊ°àœõ‚gæsÝí¼³Mo'¼­Ùë2ŠÖa§Qõ\ ûJÇ Jå'aŽ¿Q_‘*ÊÍ{X9$L)©OÁ÷Ä&Ô5…gû˘YrƱ–þaƒ bqˆ]@FU(À°Æ`p}Œ^7è·+¥¦Ôy«‚}BY­URˆrÇÚ(ÌR¶+œôÈö‹ªõ$Ο‹ãšÝcç€5©¶âqœõˆêkµu÷ùŒøµØ¹±Á'ˆ;í-džvÌþ^+\9šsˆ÷̨BnzÌ!,÷æT¾ýeªlLÝu³œ'1Ê´¹{@^ÀuM‡×´³‘]H2Äõšc…½¦åô…x;ê­%6ß©˜ð'ZÝUZ÷omöãqgâ/¬ñ6º¥ÒèÉÓ¯VèZk´µ½ËçZµÖ¾¶$ö¦º‘Ÿ4ò~Ã|)õwZmÔÚ:¹öžyÙ¯±®·&ËLêøÞ§O¬5W§ʬ’Iã&s‘O§ƒûM¥{ -cÓ3LÌÇê2dÿ4]‚ìûŽx˜$õG=DËVGq"ãU°7}äé °žÙ˜(Oil†—¼g¤­ŒOI6˜1rk,¹Ç2ÁLw‘h´ÿ)ûÍ -Èê–â€CX'< õq5Š—«þ’¤û-‚+#O磊—º‘ýGîdó«Šá¸9mmÏ÷„ ž€@þ,/Z™_Ó‰~pµMcÝX}¥‚Ëô‚`^ƒëÌØÖR݈L¡j˜Wr>žG¼‡Pë ébþ°Z.RU”0ùë³\ +¡§ÕéÈï$ç&« ÕÏ4¬ËÉÕ:ëkà7+eí¤ã§Tä²JÓ¿â+ÜÇ™²„tæe~:ßåg2n™=dÎ&zih7Ä2ÃD¡C{Êq¹LÆy›4Øáë4¢‹K…;°ì`¨°«©-Àëó;—V¶!VÂÔRt÷n„äy¤æ0ËS4êYu Ž¿Î5¨ ¶6 ë9@è}ÎgMŽåõë"]Í1Y89Îeœ‡Ü9R0do3 ølŒ|ƒÞVÉhv0ïܶ/NzDËñ6®E`çƒ C9KT€!­u±k–¹ðÕm{EbñºR©TecwÜ˺̋ÀÌÅž– žr †X‘Ÿˆ1×1J`­€z\~Ñr:ý A¯¦î}á×’ØûÀ¯¨†ö†¨õý "ÎqfrOZ6”öÌÇnO0 9Áf†q̽Ù'üæHõ¥l¨?ÓÄ âÀy"j¶Â°íÖVà€aþ±ý¤Î ËŸVzÿ¤²z}£ §_¼#®> C7R~ o¬ñÁñ}F¤’R³÷3=m´ËPMF§nBŒŸh‘%ŽNIù–ÿÖh K“L®V²˜š”H÷é&~$É“>Òz edI/$äË ¯3Û'í"³·A‰°¸ÿ´Ð@‘äbLêhu{©‡ ÿiÌÂVø9QKg.ùøýàØ&£zcÈéϼÏ)¦øÝ‡ƒ'3x̬fN•¶fIÄÑ3%N"† Gs4 ÈCÜÍ…Äz¡6½f`Ë„ ›kÄØ0Jßé3…®9Õ>3ÁÆgrÃ…œ Kf÷ϼ¨ŒúF'n3ŽdÏé#ô1³U|88íV ƒŽ‚*½ã+[<‚M©É´f°ä“¶1^Ià 01Ò€=_´Ž¹,q¹WCO„@;ž±Ÿ3‰Ïó@›ÃÉÕ1à{'©žcÆ4gIª &›}‡Òg¡Ý™.ª½N©´e[ûxJYNLF¨©,LÝú@_Kéu §´rb&’â¨Tƒ5šcaŸÃVz½£Ö*ððŠÙÞû¸ö‰Óª±Ù·hr•§ä˜òè¤L ×…Pp:btuº´Ñ ­9¸þ1Dqá´AÔ·PÞs¬fwÜÍ–=LÌIº–XÖ¹$’OS §Ó—õ6B©É?ih68ƒõgÚ1aVÅiÐO¼¾˜Á¹Â¨;AŽqZp8ié¹÷™µƒ>ÑôŽ3ï)7” ý÷Ô¬†¯#· ƒË¬“×¾o™æ!=FìLóœ/ã¼We=cTÞÙÏÚ^¯Ã¬Ó0Þb‘žxÄL–Vùž–âùã“,lºtÂnäcÅ@ÎuZ§­ºñ::}ZÛÇC9¾_ø÷gHéMF9Çí3å‘]­í,ÕŸiͲ۟†ˆz¬e9ɇ4ñ3øoaˆp~Fëµm\7X+h#•ÌÍU•a©ñ ô”UùKcØ3†è1–ßOwÉKòÙXõœ†'"vÅ´ëP-v’¹ãïÌäê‚ Nù=ÈÆbÏÕvÿÇÜà¹oi¥$ñHÏjyé#§\¢biAÌr&Õqf²8– ã™1,fRZ:Ê€Õ_ä×ÿ1ácÇ’·LêµmQؘßþQ/S¹f$“Ô˜5‰f9'œÍĊ볉´á†VåMiimCáNÔ_©¾~'¡ÐU£Ó¶„fîÌ2LæSX¥¥è±´$$\í­§ÅŒŽòj†6¨ؘ»M¥¼~fž¦û¬æÖçÞ0–‘ÞTÊúMøàwx†Ü8Ó„>éÄçÝþºƒ¿C¨'Ÿ¥çv«¹«²çÉ}³¸<• -ü7‰TÕ¿MØÁiwéšÌ½Šj#!Ç9©ã뤻M›ø±¥€æyÖ´¹\çjŒ=¥x̹O•ǃ¨ê+SûÁ–Ì i7ž8ë5‘´}ÆMæwé/&el˜O4Žñ@ØÇ¿y ù…¼æÆ3Á•¿#Þ.3`ñ t6!¦‹5¨ MN—qÛƒ¸ÊÌtKgJ>§#Òî¿„ø@céÔcî#ý¦K’1˜¬ƒŸ²vxM»ŽÛk#ï ^–­:Þ» ê;B“·ëþQk/Á Åf3“æ˜OIàBµ‰³kvçï9¯ª+Ó¯Þµ.Ç “sæ.›^} Ú…#™Ï6“ÖW˜q#ò‰×¸ž& 91QaEçOG=Ì ˜µ±Æs(Xüs2ñ:ͳ’ Ib7;Oë–QÂçï0רO\}¥_¼]0ÔŽ\¨ûA=ôÂîœÜçõšÇLEù)øÃ‡V1Å`ASö#ië6 ú„^Vž¢Î¡ÉêDɹýÈ›¡ï44 ô9†²£r½s(“Ú1ø|uü•ö—”)“íϼž¬÷ù+×yBO…?"|ËÁöŠ}„±§cü‘øQå ~ò¶±ãó¥ltÄ‹§ õCñÒò„Emö0ˆ¡NYŽGhø¡çÞliªNUጩy,,à ué½_VaŽ‘ì©$~@×Kd#02¦Biëd¯“ò!Ô¸êLQkdœÂ&¥”ípqî%¬+˜6B Ã:žŸ3+¬O§þDÏ<&Mpù,í¹¡(a†AÇăærå•ÕŽ[œ4 Ø0yÁ“w1¹‹ktâúŠô=Aö‡‰yÌ"lÛ΀Éj#ðÊqÒu+;Š|‰^!¥6bZýÄ;šØ M/1”šºUŠTóÒchhÅÊO>üʼn Åše«÷Æ&öñŽ&Û¦F`ñŒ¥,mó€][c‚~D5žëÞ=Eõ^Ž%[å±ó(>9ù…Þ¸Ã(1ñ¢­U`jÍnr§˜/$«±=&Ú¿é>™ ž‘$²´%g Oé3jâÒGs+¡Ì}4Ë®@ïÒk?Ì;ó!ç¼ §2ŸŒcŸy°O@?Y—Âôæ0ÏB}Œ±Êˆ5|Ÿ¼Úg˜‚ælsÁë2TƒˆpÙï cn\Ž>`—¬·nŒ) œCVß9NÀÂ'^D@í<Öê—mŠ+ÃGI„° ~ ÌKQab»F8—.‰VÚyUè`@ļ "I¡àsÄ­Äž½£¿2Æ8cÔñí/lÔóˆm’_é!÷Œ —ÖT¸‚þeÊý¼Ê #‰@H ¸Õ9\N¥6‹Tò3Œ3¢Ï-Á†·ã]\âLÁ+‡Iy3*ß{k¼¼LfX$Ó_Iy•̰ r Ô± @há4½!ÂilÛL ±¨l!çÏÜIvù3§¬¼ºrŸ¢ý£Œn[პ™äÍXIc‰•å×ï-ŽX㹌„¤á†FyŽŒ‘ÓéÓ ¶HÎ#, W¿Y5n¬zŽÐr{üF× ¸zÐ „ÌŠèÃXâXc˜-ÒÄúYµhe14|C£fâº!¬ÓnUüêùFøöžqFq‚89ç­ {vé8-§ëEªËGnÆm…¬óžÊ ç§YÐÖ2Ökµ†v ¾æ ÃôGWp]Û ÌÞÀ@jmüN¥ˆú•_´y2 Ý­vfúS MØÛ¬ÝZ|žDoŠêÇH-úbÓå!­O'¬Öš’[&”.ÛˆÎgF´TBH@Éö›ôÅ­äÕÓÔGTWüǼ–1¶Íݺª¦fZÑIc l‹êC¾ÚÑI-Ð|Îï…‡­ª‹uZ¬ÖB«œcZ ¯Ã‚kõË’NqÓØ˜ö§[ø„!x^˜‹+1‡Œ¶¼ÆŸEuÏçkØíþ€zËÔø~•·;}€Vñ‡l﫞äLCÖ§?3 ãÿÉ—r5Þ'uMS²°àï2ŽTƒí¿]MªCTÜüDY½GoÓò'¥‡ÉòLuœcpžm>¯Œƒ þÕ©N7g‡»# ý ŠžÀóí9þL&÷>9{zöÅC´ËxÚvÁœQ=ñ VÌÀ'? ô Û®"³<“«ôç¶µ™`Ìž’tâ.='mg8“9™2tÇÌa¼ó&FzœñÏy]Ánø—»&7üI»1†ó™{ ÷ÆgxÌJi›Ö͹8 qÒ±ÌÃ>b´hGµŠô÷ÌU˜)É"ò ˆ¦yr©À'¯~fa Ê#‰’˜æLË#‰œ`u¯2s(ó €BLœÊ,3&xé™ý¥‰RÀ€^eÌÉÖ}¥ƒ‰™1Ðc¶ºô&Mcç#+ªn„B ч ž@•º\ÎÂÓ ³Ðy{‡a9êäw3FæÎI̯ÉJâtØßyFÛ:só‰çœÍ ›¼<àñуc÷2Ÿ‹‹Gy{‡¼~PhÃ[‘ÈÇÚ \U¸Ïë0GÉ› ¤rÞÆ…]Cq»Õ,­ùiˆ³(Æ:KF•íËÑiÐe ÐÊÚ{Œˆµwí<’~ñ…Ô£|K”´«'(r½Á‘v?ü§â2<»Áæ/e œŽ~Ðï¢h ‘ŸÔÃÜ"‹ggëþPÊÌ9‰9aåaŸ2'Q™‚LãËWd»4Ðl@+fg®bþEü•­ŽÑ€Nqí2{M2dt—K:qh½‰ƒÒ:FGN`Ea,‡ÜKú»B[X=¸ƒN1³×<²TÈÆ&ÈÚx\dsŒAÚq Å\,ärXdmõÝz|ÅÝ÷ wÞRXW¼léÔr#)ß'æm1ÄŒêFå;¿Ò0Û°=¹ƒN˜2¼Å™fùˆX(Ú:3»=h"ÄŸlH9÷0!wÀécdbhœ àî`#lÐ8™<™d€ ÜyO’§¬Âû‰¢r RTç¾%6HÇ÷”Ç™ÌiÖp`Ј@¹lûFM;Áx¼f­É°ÿœ ú³ŽÑ†}¥ÍÛö™ˆ$˜Ä’F´Ÿ¤’ÿX’T¸—+œy—Þ ’Ç^’¤Ï1†‡í/¡”2fÔÐh0Ašâ0wKvÓƒÀ1ßòœtlÓÒ8z¶–õ(þÑe7Êð¾¨ÀMªûÊ`™ vf±À–1,ÆJ%É0ö*/¨Ã¡Óe¶ŒÄï¸Øp:œÅ׌íÏ0sç¼F5 Ÿx¾Ñ›Ç¤ûŬ>ÞÒ‹' 2Ç’&«êØéްg’ ³z1Çèè¢c˜Ž”Þuññ"È0ì2œAž `¬. †Á’q 2&s'… §Ú´U^Ð3èÆ¶±Và§p ™jx…¥°óL/(Ë¢Zý&ŸÃ|6Ç¢ÛšÒ6dŽ9œííƒÐOUãš*u– Ôƒ´¿”»+N›QDÓrݹ­³€v%)½±ð"Œ Öi«­7YÁ8ì!©]«¸õ=#ý—BQVшKÉÚ+¬cM¦¶ÅÂVÌǦíxV¹·\êx€yæ=o°âx‡_ªsåÖHç[M¥¦%ήV¤3ÔåšõÓêEtTµS‡ûÎ>¢³ Õ›·îF9\ÿ”›œ*c}¦×Ù¬¨Ó«'aÎ= Èv¦ÿ%‰Æ='ÜEõ•›‘5zv!që_cï-uUktâ·lZŸI™[¶‘æ·7c/qæ×ê<œûK òggþªõSøk[Ħçô™(à}\L°uÁý!äJ?…ÁÈaõ ˜{†PØ=q‰¦d¹G÷̼>LdÜEÆÞÇÎàX](^OA“öˆ­Kžƒ©¡U­ã’q3ù?åÙ5#L~uÒP«ÂŽ“&Ìô‹—öƒ²ã]lýÀà{Î)Íå½ÔêÔë• PsvÏúh—‡ò,sÎO¦íwta=ÔÆL/@ È"XéÌ]´S0[™¦™Û CJЄñœÌÄÅï²²}Ärl¯õ6+XêAã *‰…;Ÿ=„»ÎÚÈîfñËnêi@·Uæ¤:j¼æi01ô&YÍÖÿFBÖÿ1ă†Ãflb.­ *R±²À ÊÕ>ûY½çBãè3—iõ™ÕñN6æùo,gÜH0OIOé,f·lšï'™äKÉ'8„%žL¦çoÚLɸê$Ï¿HNx#0 ”zÊÒVïÿ }š$L$ɘ$ûEF‘›ÞgYs"Ч Œ‰±ï1¼a¥ÊB£ƒKÁQ™ÎÜ—¸ãßâWÓ õ% ž‹zè|sƒ3]äuéç×w¤ãt~In«‘˜B§Ú+€§ Öw¯Ûû̾\}·ø²ôûB aG´ÒáOs:U0ІPi°Òö½v98ës:š·¦Wê'-؆ ŒÚ8ÃõéÀfl´ÉtUÜbe·@fÀø‡­22bë‘Íšs¬¥qˆ3Öt-©H9G¬GiRÊË,l2âFø”xÒ…² ˆAŸ‰G§§ICôÌ®Nâ3/· NyÈî9”Òsˆ1É?yûËÈ¥$óú@.Qì%g'‰¡žã Æ:L³m–N11œ˜Æy–1&6ó'§X€éˆN@Æe) õfaˆÏ¼p–Ì8™&VdæbÆ^ÿ¿I]I>òcÜ'éT¹2=¤€\®òv@._³&yé€.AÌ‘À’I!?–&{|Íàhs$’ã%֒Ͷ.qކ+Þm[@Wo)Ù³6¸Æs9ÕÚ6 Ìš6ŽÎ¸‘gÑ~\ Ê:‘2o¬wÏÚsüÁýBVáÐÅ¡ù)·Õñ…¼]˜’Ç$ÌÝ—y ‡©9øÊÞÔyé uš¥ðxĶ ú÷K:Œ˜æ©p„Ä­9?´#\Q0ÃÓŒ29aìLÒÈoú¦Pz³ûÆ£´‘µGiØC¾¤?†­´9uôo¤¯ôÉ£ª. œb AÝÓ‰6*ÝIƒ'˜F‚ óÇHµÒã0ªÜÀt›Cñ$Fö„,„C§¨àK›*²ZçŸJtM]¢Â+_¤rO¹^âšÊ¯Ôb!rzMœ·´­FrDèx}+m¾eÁ¼¤=»ŸiÎwÇ¥_‰è<ÖúaE¬@°ä}áÑ~ªmÛHTE¬c™hSi*ÝO9÷œêžÊn4ÛDZ:Û54:]¦Rëц3#+kI‰ÍM{ f$v\¥Õ}-ô7´èTÅôèî0Ì2G´çxŽÝ§o^ø‘*œö¾ß Ôùl¡>ÄD¯¤›ý>|œ–8ê¿hÙ ¨¬&©¶¨åõœ«®ÔU©4Ô ¬pèÂR^›Ç|.C«ðð¬$/Iå J°ÁDêøo‹ê|=©óYêŒx?¥­ðê¼_Køí påêl¦ø§ñç®Þ\)”¦FF*êUèfA!Žzv˜Yetël2Åc¯˜{K/!>5 ç¤q n±Lò#(Þ™6Ó³Q°L[[h(*Q99…c€Ié\ߪrs“™xý±ÊúttéåЋÜ~ðÜLÚoï2Ë.ZN´£ÌÐ3fmbÝÚ©•·¡;L–—m%˜†¾Ó¼Vþc­G’ƒ ’ÇslseìÄu9ûKÇí–wÒëÈÜÁÜK0ÐÃÜ>}àÔûBxšze ±´" ¥…<«|f†S6 ›7µŠ„B«@¦=,9Cޱ FH8À‘ˆ¥£Ë$9%OCŽ“‹-pçùqß%ØJ—ž“N– ç‰`É€$À:À5‰X=s&xæg<÷‹bE–Ä›39–HöÄ6zW"e¹ë/ñ'&*zgâQ'·Y|‰’dѦNfíç°›™lȪŒ·<É“ØÊŒJÁÏÄ“k$Ès+=9šÏsgõ™ÜsÖY™È$/ÏyxÄ®üÈLar¥d™2b ÄœJÏ2g0 Ì™"g2²a°²L¢O´¬Ë¨ç=¤Æ%ɬs.^%¯ó“ñ,@1Þ^%™1ž a_¬¬{™}%DQšÉ“? m3C9ñ޲àh1ƒY1ìš,}數äÌgÞAÖ=–›ne©=ºÌîÌ"0Ï bT Z›<62:|Æh³kߤ\5yr:°pã¬Ó¹¢›—n—ë$8d_|s5‘8ò–Wd»æiZ 3A±'f:´Íºz®ú‡«Üu˜ 6=9ÚPw),žþÑp§Úv‹öœû¨òÛÓôžŸ·´ëE¶àà ;N`Êó NJ“l=AÀùŽ?^‘=G.£ï4¾N‹ìn14WÚGc šÛ™¦Øx•#ØJÇ1’˜çm׿=•š dý¤É9öÌÉéXÐnà Écâ,ös€&»Ž}ljG™p¼ôoB =w!?”0ÀO? \ØXŽM&§Ê»sƒÁ^Æèçn¥v§‰é€_M¨r§¹—¦Öy{’õ׆3—©s q¨ÓzëfÈçéø‘î³^þu\\¿W"éqÑ¿VXíNIèS°­KæêÈXµiUeQíèxèfWG~ªÍÚ‡ÀÏ~’tv”Ô¯oM|vYu“§K µ›··Ä~ðºU Hw»ÎŸ„xm7 õLƒec,Húˆ—Œß(ʼ*?1ÿñ;ôV†ªÂ1Æ;9g9±3`óÖi9ì;þ úCmH*ÕêQÀo´â:•b¤`ŽÓuØT‚ =cß—®Pµ.þVþ¯¼Yc¹¶˜g®+š§±ï5Že]U”¹Kk ‰î3 uc–ÔsYʈë YG1'*Τ‘W</Ã+{I=0 5NÛ” Ž1:ztò©DöÞUâiŒæì@³Ì¢enÄÎÈÒ,/3c޳"mk±þ”&mE½¦ Ö]©eK–­°=„çêuKbC†>ã—ãJå$c_p. …}Ìjq’f,sÌ0r=ÎLÖc¨ç·|£œ)©™Ó€~ÿå3içúeŠˆn¥âl¬º×Ž!6ñ2ÖÛÀ±4>&¶É‚!a¦xæif9šƒ4Õ­‹ƒÒ O0€â•)uS“VY}&ÌCÃz±Px™³OUßZó5Çä±–_Ó›·#ŽfqˆÓøaÑi´Õ«§ê«xÖo3Û+“ƒ!yµ“‡±šO*ÀËœ¦íƒ‘ÒV[¹ãíWÚ`xh¶ÏÄÏNóFdõŠò­«žòÌÌ“QÄÆ=fÏi“ñ&Á°ßŽs!;€í4Ãõ=¦#¸‘bš`bQiœe“ñBr8é –Žs²s2d“˜fLɉ1™™DKı‘&&Œœc“¬Kí/´˜+ṉ̃!€gí&}å“í*yæLó3$ ¬þÒ¥IÐæ^ÙŸÿ¤¼ã¬d¼s+Y’X—‰1(æ8Kýf¼›¸Ä}eJ–Á–$XÀ&7ޤM£6>Æe:Í AÊ‘‚;Í$IÝ;†Ùæ!KílôŽ“Ðžó—n‹.4Öf²f3&éƒmЧæ^è Òóv&\†R ÆqÞLÆ; —=ezÁ[œGfÄÓµrÀûCs2c“C)°‡?ë4£žÓXø/=#DÅL¼E¦;÷ްâ)bœ‘Äq?$ô”:æ_$È£®e1BA2ÌÑJPIç@6‹Ž²ØŽy"N‚eº@5Q²}¤žfS®>%®IöÿHÀê»G0Ú µkem»Ó’1Úa0ÍX=É‹,G¬šÔ¿ÔMþ?Že9ežVtó “‘Ž{Ëuõs«åÑQÇCžOÞrH*Ì­õ)Á‘ž5x嵌K•Óí3P™“ÆQÒØ¿E†XªÜzìc&£°m´ÕœPì \1ÏSÉþ9}B¥GƒÏh.Xn†Àïó®sÖ%S æ[&M±ÈÑûɬLÞéµìZþfua±ÏI€‹Üû¸šbÇä¬;g¼rÂSÍT»˜}åéŸGôëåéDZɌèì§ñUù£)žD]Îßn …Ї,23ÌzAú/­uO^@¬±àœÌÕ¬òõ¬Ní £¨‹ŸÓQ«ÊésÎì‘5ªñ‡MX4Ъ ‹Q¤:<åÔÙ³Nù'<ñ]>²Ã’Éœ½F¿[k×j,7•ëJø˜M#Ô¾¶ ~%‚T`™SiÔ®^»Ájæiø#§¡œ†Ê;+pèžßƒÔi*Ô}Ci÷eù"áôàõlÆôê3ÌØðÖPFrAàûÊTzNqž¬  âˆ:º`$tßL™‚!q2x†‹a$›38ÐÚÔÂÐ⪭´€•;gØJ˜[Ñ[0€Ç4þ ®¸ŒÕåvâtèÿ ã›ïû…çÇ®Ó~Lc†#i¯¼âª¾q=^ Òÿ&óÿ70çRbµM1Â3Ëä·¨â'øiuRV¿dÀê¿ÁÚ2¿îöÛ[ütÓ}§ù¿´ÉºÏs5žQÝöñ׆üWN)’Õ3Ösî£U§;u:WSî‰ôcžæ ÆáêçïÇ/ï¬ðØñ(¬õ7¥Ò5y ½Ôó¶èvsS‘÷3<²˜¯m.WDÉšo=:€Ãí0m΄~’fpüj±(âh2·ÒesÞ;¢aºÌ0Ï3fdȦÉ‘N8–D¬bI¯"_Y8"Q05gâT³(õø€I?ÊIdzs©3+÷– $© Ì’¤Ì ©Òq$¹“?2ñ& &yt“¬ C¾d̹í’ºÈdt š39“>Ð É“2¤Œ“¼Ðeu—Ò­¹–‚XÈŒšWy3Ì™”C´æ[ f8<õ˜S-˜/=ºGÁ-ç¬r—Í@«Æ"¡‘ó¨u†§Þã1e%ÅX]dc2óˆ<™7NZë‚fMÂt›¡Ùì\ËÈ‚ ,4ZÐܘ;8ëògâdÂAƒ6¸Ä¥0¸ÀŠÒš †Dˆ e€˜`#”²›sœmlÍlï²Ã¤ÎÌ s÷šmÏâ ÖPô”æQNDe ‹qÄ¬ç¨æבÄÞŸM½n 4 U½Žµ,ÞÀC&šÆ³b&çÎzŸÐ׿)R ÇcÄêi<&¯ ÔZ¨8lï=NyšIvñÃC¨¼µ¨ä Z»4î‚­ï=‰èüÁæÖvÚ2r;Ï+âïdw¯m‹õÜË™k¢¸ýŒ«¦×ËfˇÏX‰il¥¼Â1†0ÒŒá‡YÖÑ]øªƒœŒ4òŸ$ñ¬õq»Žìe#í+h­ÚÜ©>’= '>Xêêµ—j8—ÖV%É5É™C“/æØHdâV`ß±“ JYÇhÏ2|Jqƒ/ˆƒ&Fq+ÈäHËibBf’§¤KzW'asµg§Þ#g6·LŽkOCÜ` çïÛ¼ãÓn}cíÒå€':ÁëÀöëªãU`Î1K£aOS1cV£%„X½–w*$Z€É=}âg1û[ÚíÂÜŽ±Ó ž>æ>+¬Ç–W<ž^!ÒàŽϰŒ)ùŠÒ= G¸‡V{Bµ†¡‹©æ. ¢×;yÌ(1{Î|ÇNqž¦7¥L6ãŒPsœGG¢œ­ÌÓÇ*–> Kó)›'9í08a˜º¢·[§E¬¾3ã»CëÞŠÜYêœËO1¦fùäæbÍ=º+Ú½B2ù†%– ï0Ï/1цSMÅ6l9éVf5¦¢ÝM‹U—fíì=æzå~PÂjw ‚#Tj=x瘱ðkk½‘îOOÔ‡zEgƒŠXpê21ˆ& Å÷s¤˜àF`Bgˆ6P'¤š”S^0$=fX\N%Nx tý0cKÏc:þ¾õ_ùHzg©iét¾¤ÒM{ÛÝù•øäì¯É=<>ªÔ ‡#ßG)ÿ êìæÆ­±93ÖŽ“™sS¨Îç•yú¿Âµã^ÇáF#)þðô<«·ýM:üÉŒCÊúNé:ü'AV6é“q˜ÒU]cŠ¿a‰©’q ÚUžÐnõ2ËA›%HžÕå¯s™’Š$,O¼Ì¹±2DÖ%t”a`5ª©˜ê¿¬ÖªÃ]e—ù¼ò>1¬°(FR g÷mÑÃZírjµg*¼gÞ&üÄ4öñÑÀÙYÉò]×N㙃Xn£0Øç‰xÄÇM5²-¦RN3×f›Wéõ™ÐdÌ­“Iš.Í<}HDÉ*OtZ°zŒÀ¶•O;qŸi§äEÀ‘´ÏnDi´‚W ÷1vKªÇ¹S­1ÐüIŸ‰Gí‰ó+¯Yi1T¹X’˜ÏÞWÒå@'é$¼IÖ%Ké+û@/#ÚI;Ë2LJ"X—Ì'¬’ûL÷ÄAr$¡Ä >eI$ÌÔ¨’I>Ð ×´¹$ÁŒ,sÒ_ JÁí,g¼ `ËÝ3ûÉÌa¢dÉë‰@ËÝ †–çÓŒAî—œŒCdŠÅlÀFªaGÚ.S¾fª}¿håônÀ%ô…Ę”‹ˆjƒ9Äb7;Ì…ŽèéMÁ®m¨98ê~ÑÄØôáÔU&ÛˆJªä±÷ì'A®óï²Üpç´à®«Í Š6RŸB©÷1ʵw—;Û=:/XežÅô;r褃ÔNÝWMÚ‚ä €A–šù¶ª¼Yò8º[vZÞ„NŸøÃGgâj]Õ1õÔN]j·@çüåcÅÜF\ðô:­ZÍ Ûê­×p÷S<ίIfŽÍ–ŽÌ:ÝðËöW³'#§Ú?ujêÙbç=ýŒéË œcŽWñ¼JàǼCÂïÑB—«<09ˆ™Å–7ªÞe/MƒÓ¬™•'ö’¤Ï=%>ÒäÌûJäöôÄà>D¾¤é(˜âNü Róƒ±ËrÇ^q/õ0 —œœûÌç·Y`À›7´ {Ë1„é*±÷”Vm«“h˜þó¥áÚ¦Óרa‘ùxväÒ®FAÏùˆÂÛk‚k•#Ì’Í;UeÚ–;›mëŸxÕšFò–Êßr‘ž#ôÎ3åZl¨ä)1”³ ‡QœNrßey^£æu;”†8ùöˆhW» ÞsÆ8ÄÕŽV¢}ÄU‡«ÌÉ.¯ƒì`µy ¸œäôöŠ—$5xÀûÄÿõqæÄkTxù‹›OÄÛš<Ø{óÞ=H ¼ˆŠØp;Çwp¢,†8# qn>É›7qóx¶îNf©‹Û¸ŽF-³ŒA‹Y˜ã¦èúc¼ÚŽfi ×™šÛm¶¯=s˜´£ üBûˆÝ!éóT¢ ‹Ï ÇC4‡#3r¿ç<¯iÓsúŸ´Ý¶dôĺϗSõ€"ö73FåE¹é&yé0[™A¹‰Zz/«ñ:mUA3ÀqÌíQâz_ ¬Pµµº¶þQÐ~³Îø ?ˆ²ÊüË5g•?2›Kumæ-…öž¹äGn¢d”߉øž»Wª ®Mµ‘WE1Í:×b+é_Êuê ÿiÌmjj—È»·G=ŒT‹ô–‡ J„²7ô·©4t ›Õcð£= ´úvÕ?›hà}D÷‹x]«¯u«’Àdƒ:ŒÍc jk^ ÷•ü#`„f²N2sßÌжm¶z2 ¢ãÚ.mİù„£C$ð1­Íkœæ%[å‡9ãÑúG²Ñªõøçô…È3¡ƒqÁŽÐç£ñ&ârè?ð/‰ÐRêÆîÍŽDùÏŠøeþ«)p%9Úóêaˆ§ˆø~ŸÄ´Æ«Ôzâ=6Ã/#õ»¨Ãg=Éï!rL·9'Þ™œ–5ÞÄ™2DÈ8›ú„z.›‰†” Íí-Ò=S)cŒfzð€q¨Ô.WùT÷ù™ð_ WQ¨\ >•þ¯üOD‰¦3LsË|4%Ì•œÇ¤m¼Éºc2³‹u½Ò‰˜$Ì“‹m3¥s(Ê!3&^$Ä ®dÄ’¬AÜÍ]lû ×YzUÇ“ÒÛÞñ·éOaÞÒ´çëuw²]a?ÍÞx¿6¾ª×rXVqöžëQVôÚ ñ¾)¤jn|çeŒ Éæ,¥°öKLrà|Nªs|¿+R–¡Ñ‚àh®ÖÉù0³–øe,Ó<Ê9…iDLh)xšÛƒÄ‘ô#¬Ãç0€àpylæ+F ¡ÖkuÊ)¤ž²)q´}¦ù"MÒ™™3dJbÝ$éÖdó4Ò€ÉàJ™h)ÏHQP,Øø–:ñÀ—ª•*ãæA”&À„ØÐ¨qÚ5SôŠ †Isi®…6sÖ8–'*³GÀ—`ºÕKhtp"x«PQ{¸ÚØié|KV*«ôžeóc³vÌÓ¶YôèVÐõðHÎ#”2íç“9z{Þ¥ànÇ´n‹I³8ôuÌë•Íe<\0*À=Aï8¾'àä¿H2ɯÛí:Ù–¶mßÞTœŸ´\Œ&s ÷’¡/9”¿|Ëè`Jcu¸@Ï,Šoi¾zÿ/¼ ®«06“ü¼ ×ñ ý*¥RF1Ìã!Žp3×=ª}þ+¸Î#W`5#1ä¼Ím!²£?½l$f7ø„ ”ÞÌ~Ý!?i³èvÔ„c «À÷1{5"ÕÁLÇ1Gµ¬oSç<Éœ:ÅiÌU~H8ëÌcó~æÈ0iËãupO=#lÜtŠSÁõ¤ŒÀ¬h¶%fP䪎ñ{F0}àŸâP8Qî`[Æ#\éªÏ¤™Ø´‘ÜÍ'*@÷˜°ÞäÀV®`‚ ïÒ|ɧÉšTg cŒ‚`ëÀÖÚ)M€óŒ´p[Âj~•‹1÷¾YœüF‰NL¬âVî™8”Oí»_áíCW­PC1½=ž~¨×Qä1ôŽr'+ÁV›Ð¶ é=ßøsÃR¤:¦¨+9;4’YÊ.Z¯$æ§±ÖÊpÀŸ¤KJÂ7ÚÌêŠtÚ¿× ^™Ño ðbÅu˜ôàãþS2²ÅnV¨uÓܶV¬¬r ÏW£­,¨\¹éÔÏ+þÓÔÜ4êæu¼ Äç4X¡rw)³¦7J-Ì„ÍÒÞîf·žÐ9–>ñ‘º ,#›ð1˜•s\c¬q4`ʃs~‘{uƒq |E¯¼çâ,;g1ìHj­UÞ`ÙaUÏï;´·˜€‘ϼóéQÇYÔðëÈü¦éØÉ¢³âÞž!A¦åÇ¡ýŒñË[è¿ÝldãóèV u*g˜ÿxkY§7TH¾®§Ýc×”ÐÇ/ãnâXÄçÕ¨ÏýŒi-ÏžË/.ž,±Ž$G3‰C߉’¹9ˆ†ëð­1Ôjë¬ûäý§1YÇQ='øyËoÇO@•ŒÝ,¯Þå@@ 8cÌ‚v˜Ý:8c£!¥î‹†š CfLÁn–! •3™7b=âC‰33 (™“`ö2‹ŽÑèi£c…R[€L½Ùœÿ°1­zØqúBñ'%ôåµW>¡Ï¤ ŽŽ5ŠêT`BEY=çü@PTY“$`qÄïûýøœ¿toË 6O¨âe$äI·–u£8ê0}§EZš×pÚÄ5gñ8óå¾ *Dƒ3G™™5PæmW,”%8˜ÿ(ŽM‹Òîm¹AíŒÀeݘo=Ì•(ÞK¶˜Áл½àÈç¬#ÃŽ{yë+A¼úvüE­­X:Æn¸ÓÚ ®X v”ŽF¢“St;OH'jä Kås»Ž{NEµš#ƒÒ"OÖY±‡¤œ™_ygâ\ÈdÉŽ>ð úÉÓ9“@&q&s+ɘ‚e“*A°dÏÌ’„ó&e}¤€^ã&ebV8€Y2+b3&e޲°`pdç2bLy€\%t—¹ zAÍÀ—¢\{!‘€Cñ-8´žÅ²> “•0•rqì%˲v’ÌÖŸi‹T:Ÿ~Ó¯Ú^ù¥.€Ë)Áö›-°Ã˜¹ǼÃ<>g¾(˜ö•Ì¥i°s2±£bc¿HR ðrb9Xn 'ް®qŠY„ ¦Gí!l —8àL­v9S&‹”†šU,pOÄÚiBÚØÇa AeÚž…÷a¸Ÿ ¶*ŒûfQ°ãÒï,iFs½‰÷3_‡ pçõ•å Ë퉥æ_“`èTË ëËVNa2Q¥ª¹ƒRCûˆTù—67¶‚‘ È&^ÅA’eö›FS޳7k’ƒý¢7xŠ*ú93™e¶Xw;Í1Æûg–R ­Ö6¦Ñ€BŽ‚ ´àƒQžHÇÄ(ÌÛÇ.FM§¾9…Ó·¨Ò.Ê£ƒ“ÖLŒwcï6‘•;º`·´ÁÎ9ÄÁlq)0,œ/Ó =ëm`yV{v3£¼ƒ+RƒS¦²³ƒÆGÁ™ü˜ùF˜q\ ¿ó™PGÁ}åôÒ³ÀÎd•‰p$“ü¥@.I:I’ÇY]‰– /©ÇiRÇX†ṡ™e˜„È' †š#–±ƒÏ'¤s’qÏÄŠì¤ýǼ¡•îy™žs÷þñé|Z Ÿ"ÆÏ$™êã¿úMí 1ÏûÀ+žÒï2Ä `÷“èAÝd¬z›õ ð:ö´i­»øtØÄôÂæTÆÞ…²™+žð€{ñ:š_ðß‹_šR‹ŸçãüçNŸðOˆ8ÛjOŒ“þ’¿ö‹œy }„*ç©é×ü ¨^ššóúÀßþñFkjíû6?Î+‡ì¼£Ë^2Àû@‘‘‰Ðñ ×él&ý5Š¸ëƒƒ9äþòn6vÒYcJp10ã’ë4ž8‘×yë´d±ý¦Ð“Ïx:ƒl÷ñŠ(-‚ç÷'Úz3M>aû,U‰=Oëkï|¤ (ö\)Jãï*m‰¤ õ{Œ}¦”ÊÇLñðÝ#jµH8êmßÿøkj5"öU(‡'3ߪ…P`Ñ_ Ñ&ƒE]* z¾LrVWÔgŒ÷Kë´uk´ÏEÃ*èê>gÏ.­´šËt¶Û¨"³Ž¤O¤¹Â™ä¼_N,ñœ…ä¯?3<ÕuÓéXÖÞüÐÕèÅ-ÚkðTädÇ­Ñ Žƒ¼BýÍÍÊ;L®M4ê“(yD™3:Y¬žf““ÎaSˆiŒuƒ¶à2˜f!zŘå¥%m—hz×Ò Ña‡#cô¢®C(ÁŪ91¤bqŽ‘•t•· aÜ@êé¦q’?I­1ü¬{Lö")ÅM|ÓÆômáþ"ÛsåXr¿59Ï\Ï[þ+Ð~'HYWÕ_©~Ý熦Òz÷äÆY¸ÓãËÕu‘ýæÔäõ‰Uh` :Ù9µ¦Û;R姩Ч‘ ­GWõæt›z'õ'©oN²ŒM>4f²Ò³1&f–§B,0q&èå!wK ºX&=LÀî—º9KBIİ wÌéGqèL{°;ˆ&éÎ*RXãï]Ä%NØî:Cg16ÎõŽ™ SùºÚ”ŸÖ]¾&6 ÖÙ=Ÿøúi½žÃ‚;bgžJÆ;ˆûK §]N¦µ(pXgië-í ¼ž{Eç4~5­f§Ê\ë='ë['œžÑ‹˜¶I'˜‘\±æa–~U´ÇP ¬Ùg$™ªX‚TÈX-àY™Z<§p– «$ް£EŠXÉsl  êÿå æVÇva‰x'6½#>œLפTÈzˆÝ•ÂjÉeI8j뻃ÐÍ–Ú®ÿjŠ¥y$çeB¼ˆØ]Ìy$ÁŒw’¥f]îzö˜¹×vÎýx€œ+øê<‚[RµX˜J, SÉï&¥‰*2§Iq­©«8=;ŽÝÄ}ÓÌÈ'&&õ”býd˜|Ëçô„Ç™ÇNŸr$ ÚI:þòw€L|ÈG2ä<@(g‰ ˜Ä„À'Y0”d€Nòs™%Žžð +Ÿy`I’cø—ˆ@’XwĈí'OÖI bI úË 1̾Р^s2º€ cOY{¤ÄÁO ¶´¸;Œñ±—i§¯¯ktéÄXœÓu 3ï¾¼v›é%óó/ 2+sÖE9YeØ~&‘Á•vvópØö™gÓ\s³³»”[“KïpSTÉoí1ÓmÍl«‚çª ƒŽÙÄe)äÂ9 ¤“&ÔÛ°« g¦ãîfÙŠµ`û·iJ]Çj÷ù›Q2¤Š˜êI3x˜/2nUêÑòc/lâªÍ4ººOóæW#~óAOfÄvÖäaÇ0é‚20D4•lÏÖ Ìù$}-DZŒ§ï!=?i["V³T¤í$Ž¢qõ¦¾Â§*èg¤``€DGYáÉp%¸ë6Ã8Vלö™·­©m–ý]¼¥îwòÊ´°–W¹™ Äç8Çyµnzfi"çz‚OÇÄmlÙÀJ£NY œuéQq‰¬šE¬›32LŒƒ0%<ÕnWô˜&P9=b73Y_•­´vnWíŽy'Þ;⩃Mݱ´Ä§sYWF7q1“™1!uÇï/™ I;I!0 ï̹]åãŒ@'yxù•/ ,~Ò€š I<ýà ¬G4~¬ÖcÈÓØà÷ÁÄô>þ Ô\kXT¿Ò§&i>;ÝáÎG•«òÊÇÞ²ž*¸æ}"ð·„Ò1ø`ÿ,c•ø?‡ÓÊhéÈééÖnWÓåk¤ÔYü*lbä<Ç4ßáßÔ0 §µTó’†}JºÑG¥üb!¼'¡þ«çZ_ð^½. ãÔÝ{Mþa`:W§¾Î¦{yY‡ŸÔ}×ÿè¯ Ù‚-'wûDïÿ队'UbÀ€g®Ì¸¼òžžAþðý0SrCŽíÒv¨ÒiôëŠiJÇü«ˆRØ™óÇï –TµŒnI@æ\•Ëô’J’²êŽ¥X¨"püSü+á¾ ùUcÚw ©Q¯›x‡ø__á›™Ϥtdäþ¢q³c*¨ ƒÓ왜ð &³6T‹Mý˜ÞC™ý¾}¦ÑŠW-×® õD@?='gÄt:r—ÖBÿ+ކq|L´×Ñ@H=´Ø³ÜÈPžÓ¢#|HTÏX¾G^1ÌÐsžL…òwÌö¿àß Qþ÷bä¯ ÷÷žKëkïØwÇ´úŸ†é—I¢®¥ÀýåãÄÛ<¹º5*\¢dÅPì8Œ*ó¼BëÒ¼:Z«…U3ÀœÖÕ ¤…8-'1Œ ò âsõ@0 ØòcøÏH†µ¶Wc mŽûk·ÿÙlibspatialite-4.3.0a/test/sql_stmt_tests/casttomultipolygon2.testcase0000664000175000017500000000025712544707704023314 00000000000000casttomultipolygon - non-blob :memory: #use in-memory database SELECT CastToMultiPolygon(99) 1 # rows (not including the header row) 1 # columns CastToMultiPolygon(99) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttotext12.testcase0000664000175000017500000000027612544707704021620 00000000000000CastToText() - DOUBLE, DOUBLE zero_pad :memory: #use in-memory database SELECT CastToText(123.456, 1.5) 1 # rows (not including the header row) 1 # columns CastToText(123.456, 1.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttotext11.testcase0000664000175000017500000000027612544707704021617 00000000000000CastToText() - DOUBLE, NULL zero_pad :memory: #use in-memory database SELECT CastToText(123.456, NULL) 1 # rows (not including the header row) 1 # columns CastToText(123.456, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asgml9.testcase0000664000175000017500000000033312544707704020441 00000000000000asgml - bad args (non-int 2nd arg) :memory: #use in-memory database SELECT asgml(GeomFromText("Point(1 2)"), "four"); 1 # rows (not including the header row) 1 # columns asgml(GeomFromText("Point(1 2)"), "four") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/unsafeTriggers1.testcase0000664000175000017500000000024112544707704022314 00000000000000CountUnsafeTriggers() :memory: #use in-memory database SELECT CountUnsafeTriggers() 1 # rows (not including the header row) 1 # columns CountUnsafeTriggers() 0 libspatialite-4.3.0a/test/sql_stmt_tests/greatcircle.testcase0000664000175000017500000000030112544707704021524 00000000000000great circle length :memory: SELECT GreatCircleLength(GeomFromText("LINESTRING(0 0, 1 0)", 4326)); 1 # rows 1 # column GreatCircleLength(GeomFromText("LINESTRING(0 0, 1 0)", 4326)) 111195.07:9 libspatialite-4.3.0a/test/sql_stmt_tests/pointfromtext2.testcase0000664000175000017500000000043512544707704022254 00000000000000pointfromtext2 :memory: #use in-memory database SELECT AsWkt(PointFromText("POINT(-71.1043443253471 42.315067601582900)", 4326), 4); 1 # rows (not including the header row) 1 # columns AsWkt(PointFromText("POINT(-71.1043443253471 42.315067601582900)", 4326), 4) POINT(-71.1043 42.3151)libspatialite-4.3.0a/test/sql_stmt_tests/pointn3.testcase0000664000175000017500000000041512544707704020640 00000000000000pointN - regular LINESTRING (second point) :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), 2)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), 2)) POINT(4 4) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe5.testcase0000664000175000017500000000034312544707704023224 00000000000000makecircularstripe5 - text cy :memory: #use in-memory database SELECT MakeCircularStripe(0, 'alpha', 100, 90, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 'alpha', 100, 90, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt18.testcase0000664000175000017500000000060612544707704021257 00000000000000fromewkt18 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(MULTILINESTRINGM((0 1 9, 2 3 9), (4 5 9, 6 7 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(MULTILINESTRINGM((0 1 9, 2 3 9), (4 5 9, 6 7 9)))')); GEOMETRYCOLLECTION M(LINESTRING M(0 1 9, 2 3 9), LINESTRING M(4 5 9, 6 7 9)) libspatialite-4.3.0a/test/sql_stmt_tests/casttotext13.testcase0000664000175000017500000000030412544707704021611 00000000000000CastToText() - DOUBLE, TEXT zero_pad :memory: #use in-memory database SELECT CastToText(123.456, 'alpha') 1 # rows (not including the header row) 1 # columns CastToText(123.456, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml17.testcase0000664000175000017500000000315012544707704021060 00000000000000FromGML - GeometryCollection v2 3D :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('8,8,10.59,9,10.5 10.1,10.1,10.60,0,10 5,0,11 5,5,13 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,5')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('8,8,10.59,9,10.5 10.1,10.1,10.60,0,10 5,0,11 5,5,13 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,5')):0 SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 10.5),LINESTRING(9 9 10.5,10.1 10.1 10.6),POLYGON((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5))) libspatialite-4.3.0a/test/sql_stmt_tests/setstartpoint14.testcase0000664000175000017500000000050712544707704022340 00000000000000ST_SetStartPoint() - Z :memory: #use in-memory database SELECT AsText(SetStartPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2, 1 1 3)'), MakePoint(2, 3))) 1 # rows (not including the header row) 1 # columns AsText(SetStartPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2, 1 1 3)'), MakePoint(2, 3))) LINESTRING Z(2 3 0, 1 0 2, 1 1 3) libspatialite-4.3.0a/test/sql_stmt_tests/asewkb11.testcase0000664000175000017500000000166412544707704020673 00000000000000asewkb - MULTILINESTRING :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("MULTILINESTRING((1 3,2 0,1 0,2 0),(2 1, 3 4, 9 8, -30 -3.2))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("MULTILINESTRING((1 3,2 0,1 0,2 0),(2 1, 3 4, 9 8, -30 -3.2))", 4326))) 303130353030303032304536313030303030303230303030303030313032303030303030303430303030303030303030303030303030303046303346303030303030303030303030303834303030303030303030303030303030343030303030303030303030303030303030303030303030303030303030463033463030303030303030303030303030303030303030303030303030303030303430303030303030303030303030303030303031303230303030303030343030303030303030303030303030303030303030343030303030303030303030303046303346303030303030303030303030303834303030303030303030303030303130343030303030303030303030303032323430303030303030303030303030323034303030303030303030303030303345433039413939393939393939393930394330 libspatialite-4.3.0a/test/sql_stmt_tests/buildcirclembr4.testcase0000664000175000017500000000037612544707704022322 00000000000000buildcirclembr - float args :memory: #use in-memory database SELECT AsText(BuildCircleMbr(5.5, 6.6, 0.5, 4326)) 1 # rows (not including the header row) 1 # columns AsText(BuildCircleMbr(5.5, 6.6, 0.5, 4326)) POLYGON((5 6.1, 6 6.1, 6 7.1, 5 7.1, 5 6.1)) libspatialite-4.3.0a/test/sql_stmt_tests/sridax1orient2.testcase0000664000175000017500000000031712544707704022125 00000000000000SridGetAxis_1_Orientation() - TEXT SRID :memory: #use in-memory database SELECT SridGetAxis_1_Orientation('srid') 1 # rows (not including the header row) 1 # columns SridGetAxis_1_Orientation('srid') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collect4.testcase0000664000175000017500000000033712544707704020762 00000000000000collect - second arg zeroblob :memory: #use in-memory database SELECT AsText(COLLECT(Makepoint(1,2), zeroblob(20))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(Makepoint(1,2), zeroblob(20))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/st_m1.testcase0000664000175000017500000000027212544707704020272 00000000000000ST_M1 :memory: #use in-memory database SELECT ST_M(MakePointZM(136, -35, 635.2, 10.2)); 1 # rows (not including the header row) 1 # columns ST_M(MakePointZM(136, -35, 635.2, 10.2)) 10.2 libspatialite-4.3.0a/test/sql_stmt_tests/atmxroll4.testcase0000664000175000017500000000026412544707704021176 00000000000000ATM_XRoll() - invalid blob :memory: #use in-memory database SELECT ATM_XRoll(zeroblob(4), 15) 1 # rows (not including the header row) 1 # columns ATM_XRoll(zeroblob(4), 15) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromdms9.testcase0000664000175000017500000000051012544707704021002 00000000000000fromdms - valid DMS expression-4 :memory: #use in-memory database SELECT LongitudeFromDMS('40d26''47"S 079d58''36"E'), LatitudeFromDMS('40d26''47"S 079d58''36"E'); 1 # rows (not including the header row) 2 # columns LongitudeFromDMS('40d26''47"S 079d58''36"E') LatitudeFromDMS('40d26''47"S 079d58''36"E') 79.97666:5 -40.44638:5 libspatialite-4.3.0a/test/sql_stmt_tests/reflectcoords13.testcase0000664000175000017500000000114112544707704022245 00000000000000reflectcoords13 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POLYGONZ((-10 -10 100, -20 -10 101, -20 -20 102, -20 -11 103, -10 -10 100), (-11 -11 100, -12 -11 101, -12 -12 102, -11 -12 103, -11 -11 100))"), 1, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POLYGONZ((-10 -10 100, -20 -10 101, -20 -20 102, -20 -11 103, -10 -10 100), (-11 -11 100, -12 -11 101, -12 -12 102, -11 -12 103, -11 -11 100))"), 1, 1)) POLYGON Z((10 10 100, 20 10 101, 20 20 102, 20 11 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100)) libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson7.testcase0000664000175000017500000000100312544707704021657 00000000000000FromGeoJSON - polygon Z :memory: #use in-memory database SELECT AsText(GeomFromGeoJSON('{"type":"Polygon","coordinates":[[[1,2,2.3],[4,5,1.2],[2,2,1.6],[1,2,2.3]],[[1.5,2.5,2],[3.5,4.5,9],[2.5,3,1],[1.5,2.5,2]]]}')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGeoJSON('{"type":"Polygon","coordinates":[[[1,2,2.3],[4,5,1.2],[2,2,1.6],[1,2,2.3]],[[1.5,2.5,2],[3.5,4.5,9],[2.5,3,1],[1.5,2.5,2]]]}')):0 POLYGON Z((1 2 2.3, 4 5 1.2, 2 2 1.6, 1 2 2.3), (1.5 2.5 2, 3.5 4.5 9, 2.5 3 1, 1.5 2.5 2)) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate15.testcase0000664000175000017500000000042512544707704021362 00000000000000ATM_Create() - invalid 10th arg :memory: #use in-memory database SELECT ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 'a', 11.0, 12.0) 1 # rows (not including the header row) 1 # columns ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 'a', 11.0, 12.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttoxym4.testcase0000664000175000017500000000033112544707704021362 00000000000000casttoxym - POINT :memory: #use in-memory database SELECT AsText(CastToXYM(GeomFromText("POINT(4 3)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYM(GeomFromText("POINT(4 3)"))) POINT M(4 3 0) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml6.testcase0000664000175000017500000000144712544707704021661 00000000000000From KML - POLYGON :memory: SELECT AsText(GeomFromKML("-112.3372510731295,36.14888505105317 -112.3356128688403,36.14781540589019 -112.3368169371048,36.14658677734382 -112.3384408457543,36.14762778914076 -112.3372510731295,36.14888505105317")) 1 # rows 1 # column AsText(GeomFromKML("-112.3372510731295,36.14888505105317 -112.3356128688403,36.14781540589019 -112.3368169371048,36.14658677734382 -112.3384408457543,36.14762778914076 -112.3372510731295,36.14888505105317")) POLYGON((-112.337251 36.148885, -112.335613 36.147815, -112.336817 36.146587, -112.338441 36.147628, -112.337251 36.148885))libspatialite-4.3.0a/test/sql_stmt_tests/setstartpoint8.testcase0000664000175000017500000000040712544707704022262 00000000000000ST_SetStartPoint() - DOUBLE Point :memory: #use in-memory database SELECT ST_SetStartPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1.5) 1 # rows (not including the header row) 1 # columns ST_SetStartPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/decodeurl5.testcase0000664000175000017500000000051212544707704021277 00000000000000DecodeURL - valid :memory: #use in-memory database SELECT DecodeURL('http://www.acme.it/search?q1=C+%26+opeator&q2=C%2b%2b+%2a+operator'); 1 # rows (not including the header row) 1 # columns DecodeURL('http://www.acme.it/search?q1=C+%26+opeator&q2=C%2b%2b+%2a+operator') http://www.acme.it/search?q1=C & opeator&q2=C++ * operator libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon12.testcase0000664000175000017500000000057412544707704021744 00000000000000makepolygon - Linestring exterior XYZ :memory: #use in-memory database SELECT ST_AsText(MakePolygon(GeomFromText('LINESTRINGZ(1 1 10, 1 2 11, 2 2 12, 2 1 11, 1 1 10)', 4326))); 1 # rows (not including the header row) 1 # columns ST_AsText(MakePolygon(GeomFromText('LINESTRINGZ(1 1 10, 1 2 11, 2 2 12, 2 1 11, 1 1 10)', 4326))) POLYGON Z((1 1 10, 1 2 11, 2 2 12, 2 1 11, 1 1 10)) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml14.testcase0000664000175000017500000000236612544707704021741 00000000000000From KML - MultiGeometry LINESTRING :memory: SELECT AsText(GeomFromKML(" -112.2550785337791,36.07954952145647 -112.2549277039738,36.08117083492122 -112.2552505069063,36.08260761307279 -112.2564540158376,36.08395660588506 -112.2580238976449,36.08511401044813 -112.2595218489022,36.08584355239394 -112.262073428656,36.08626019085147 -112.2633204928495,36.08621519860091 -112.2644963846444,36.08627897945274 -112.2656969554589,36.08649599090644 ")) 1 # rows 1 # column AsText(GeomFromKML(" -112.2550785337791,36.07954952145647 -112.2549277039738,36.08117083492122 -112.2552505069063,36.08260761307279 -112.2564540158376,36.08395660588506 -112.2580238976449,36.08511401044813 -112.2595218489022,36.08584355239394 -112.262073428656,36.08626019085147 -112.2633204928495,36.08621519860091 -112.2644963846444,36.08627897945274 -112.2656969554589,36.08649599090644 ")) MULTILINESTRING((-112.255079 36.07955, -112.254928 36.081171, -112.255251 36.082608, -112.256454 36.083957, -112.258024 36.085114, -112.259522 36.085844, -112.262073 36.08626, -112.26332 36.086215, -112.264496 36.086279, -112.265697 36.086496))libspatialite-4.3.0a/test/sql_stmt_tests/sridprojection1.testcase0000664000175000017500000000026312544707704022366 00000000000000SridGetProjection() - NULL SRID :memory: #use in-memory database SELECT SridGetProjection(NULL) 1 # rows (not including the header row) 1 # columns SridGetProjection(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/buildmbr6.testcase0000664000175000017500000000030112544707704021126 00000000000000buildmbr - null args :memory: #use in-memory database SELECT BuildMbr(5, NULL, NULL, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildMbr(5, NULL, NULL, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asbinary8.testcase0000664000175000017500000000041712544707704021150 00000000000000asbinary - POINTM :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("POINTM(1 2 3)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("POINTM(1 2 3)", 4326))) 01D1070000000000000000F03F00000000000000400000000000000840 libspatialite-4.3.0a/test/sql_stmt_tests/sridprojection5.testcase0000664000175000017500000000030312544707704022365 00000000000000SridGetProjection() - BLOB SRID :memory: #use in-memory database SELECT SridGetProjection(zeroblob(10)) 1 # rows (not including the header row) 1 # columns SridGetProjection(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttogeometrycollection3.testcase0000664000175000017500000000056612544707704024465 00000000000000casttogeometrycollection - 2 linestrings :memory: #use in-memory database SELECT AsText(CastToGeometryCollection(GeomFromText("MULTILINESTRING((4 1, 3 4),(4 6, 3 1))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToGeometryCollection(GeomFromText("MULTILINESTRING((4 1, 3 4),(4 6, 3 1))"))) GEOMETRYCOLLECTION(LINESTRING(4 1, 3 4), LINESTRING(4 6, 3 1)) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt35.testcase0000664000175000017500000000107612544707704021260 00000000000000fromewkt35 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9)), GEOMETRYCOLLECTIONM(POINTM(3 3 9), LINESTRINGM(4 4 9, 5 5 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9)), GEOMETRYCOLLECTIONM(POINTM(3 3 9), LINESTRINGM(4 4 9, 5 5 9)))')); GEOMETRYCOLLECTION M(POINT M(0 0 9), POINT M(3 3 9), LINESTRING M(1 1 9, 2 2 9), LINESTRING M(4 4 9, 5 5 9)) libspatialite-4.3.0a/test/sql_stmt_tests/minz3.testcase0000664000175000017500000000034012544707704020303 00000000000000MinZ - Linestring XY :memory: #use in-memory database SELECT ST_MinZ(GeomFromText('LINESTRING(1 2, 3 4, 5 6)')); 1 # rows (not including the header row) 1 # columns ST_MinZ(GeomFromText('LINESTRING(1 2, 3 4, 5 6)')) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepoint-null7.testcase0000664000175000017500000000035212544707704022274 00000000000000makepoint-null7 :memory: #use in-memory database SELECT AsWkt(MakePoint(-71.1043443253471, 42.3150676015829), 4.1); 1 # rows (not including the header row) 1 # columns AsWkt(MakePoint(-71.1043443253471, 42.3150676015829), 4.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext39.testcase0000664000175000017500000000127212544707704022144 00000000000000geomfromtext39 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(9 9 9), GEOMETRYCOLLECTIONZ(POINTZ(0 0 9), LINESTRINGZ(1 1 9, 2 2 9)), POINTZ(8 8 9), GEOMETRYCOLLECTIONZ(POINTZ(3 3 9), LINESTRINGZ(4 4 9, 5 5 9)), POINTZ(7 7 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(9 9 9), GEOMETRYCOLLECTIONZ(POINTZ(0 0 9), LINESTRINGZ(1 1 9, 2 2 9)), POINTZ(8 8 9), GEOMETRYCOLLECTIONZ(POINTZ(3 3 9), LINESTRINGZ(4 4 9, 5 5 9)), POINTZ(7 7 9))')); GEOMETRYCOLLECTION Z(POINT Z(9 9 9), POINT Z(0 0 9), POINT Z(8 8 9), POINT Z(3 3 9), POINT Z(7 7 9), LINESTRING Z(1 1 9, 2 2 9), LINESTRING Z(4 4 9, 5 5 9)) libspatialite-4.3.0a/test/sql_stmt_tests/rtreealign3.testcase0000664000175000017500000000026612544707704021471 00000000000000rtreealign - non-blob third arg :memory: #use in-memory database SELECT RTreeAlign("notreal", 2, 2) 1 # rows (not including the header row) 1 # columns RTreeAlign("notreal", 2, 2) -1libspatialite-4.3.0a/test/sql_stmt_tests/mbr12.testcase0000664000175000017500000000043012544707704020166 00000000000000MbrEqual - Line + Point on :memory: #use in-memory database SELECT MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 2)")); 1 # rows (not including the header row) 1 # columns MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 2)")) # header 0libspatialite-4.3.0a/test/sql_stmt_tests/fromdms4.testcase0000664000175000017500000000040112544707704020774 00000000000000fromdms - BLOB DMS expression :memory: #use in-memory database SELECT LongitudeFromDMS(zeroblob(4)), LatitudeFromDMS(zeroblob(4)); 1 # rows (not including the header row) 2 # columns LongitudeFromDMS(zeroblob(4)) LatitudeFromDMS(zeroblob(4)) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/scalecoords2.testcase0000664000175000017500000000141612544707704021633 00000000000000scale coords - LINESTRING :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("LINESTRING(1 2, 4 5)") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) LINESTRING(0 0, 0 0) LINESTRING(0 0, 0 0) LINESTRING(2 6, 8 15) LINESTRING(1 -2, 4 -5) (NULL) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb20.testcase0000664000175000017500000000070012544707704021014 00000000000000fromWkb - MULTIPOINT :memory: #use in-memory database SELECT Hex(MultiPointFromWkb(AsBinary(GeomFromText("MULTIPOINT(1 2,2 1)", 4326)))); 1 # rows (not including the header row) 1 # columns Hex(MultiPointFromWkb(AsBinary(GeomFromText("MULTIPOINT(1 2,2 1)", 4326)))) 000100000000000000000000F03F000000000000F03F000000000000004000000000000000407C04000000020000006901000000000000000000F03F000000000000004069010000000000000000000040000000000000F03FFE libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatexroll1.testcase0000664000175000017500000000025112544707704022353 00000000000000ATM_CreateXRoll() - invalid :memory: #use in-memory database SELECT ATM_CreateXRoll('a') 1 # rows (not including the header row) 1 # columns ATM_CreateXRoll('a') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb4.testcase0000664000175000017500000000025512544707704020743 00000000000000fromWkb - bad small blob :memory: #use in-memory database SELECT GeomFromWkb(zeroblob(2)) 1 # rows (not including the header row) 1 # columns GeomFromWkb(zeroblob(2)) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/addpoint1.testcase0000664000175000017500000000025512544707704021133 00000000000000ST_AddPoint() - NULL line :memory: #use in-memory database SELECT ST_AddPoint(NULL, NULL) 1 # rows (not including the header row) 1 # columns ST_AddPoint(NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/is3d3.testcase0000664000175000017500000000026712544707704020200 00000000000000Is3D- Point XY :memory: #use in-memory database SELECT ST_Is3D(GeomFromText('POINT(1 2)')); 1 # rows (not including the header row) 1 # columns ST_Is3D(GeomFromText('POINT(1 2)')) 0 libspatialite-4.3.0a/test/sql_stmt_tests/wkbtosql3.testcase0000664000175000017500000000023312544707704021175 00000000000000ST_WKBToSQL - float :memory: #use in-memory database SELECT ST_WKBToSQL(1.67) 1 # rows (not including the header row) 1 # columns ST_WKBToSQL(1.67) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/clonetable10.testcase0000664000175000017500000000047712544707704021527 00000000000000CloneTable() - NULL option #6 :memory: #use in-memory database SELECT CloneTable('prefix', 'in_table', 'out_table', 1, 'opt1', 'opt2', 'opt3', 'opt4', 'opt5', NULL) 1 # rows (not including the header row) 1 # columns CloneTable('prefix', 'in_table', 'out_table', 1, 'opt1', 'opt2', 'opt3', 'opt4', 'opt5', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/st_x2.testcase0000664000175000017500000000034512544707704020307 00000000000000ST_X2 :memory: #use in-memory database SELECT X(MakePoint(-71.1043443253471, 42.3150676015829, 4326)); 1 # rows (not including the header row) 1 # columns X(MakePoint(-71.1043443253471, 42.3150676015829, 4326)) -71.1043443253471 libspatialite-4.3.0a/test/sql_stmt_tests/pointn2.testcase0000664000175000017500000000041412544707704020636 00000000000000pointN - regular LINESTRING (first point) :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), 1)) POINT(4 0) libspatialite-4.3.0a/test/sql_stmt_tests/sriddatum2.testcase0000664000175000017500000000025012544707704021321 00000000000000SridGetDatum() - TEXT SRID :memory: #use in-memory database SELECT SridGetDatum('srid') 1 # rows (not including the header row) 1 # columns SridGetDatum('srid') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttotext7.testcase0000664000175000017500000000026712544707704021544 00000000000000CastToText() - INTEGER, DOUBLE zero_pad :memory: #use in-memory database SELECT CastToText(123, 1.5) 1 # rows (not including the header row) 1 # columns CastToText(123, 1.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/badGeoJSON6.testcase0000664000175000017500000000057412544707704021215 00000000000000bad GeoJSON: MultiPolygon :memory: #use in-memory database SELECT GeomFromGeoJSON('{"type":"MultiPolygon","coordinates":[[[[0,0],[1,0],[1,1],[0,1],[0,0]]],[[[2,2],[3,2],[3,3],[2,3],[2,2]]]]'); 1 # rows (not including the header row) 1 # columns GeomFromGeoJSON('{"type":"MultiPolygon","coordinates":[[[[0,0],[1,0],[1,1],[0,1],[0,0]]],[[[2,2],[3,2],[3,3],[2,3],[2,2]]]]'):0 (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/buildmbr2.testcase0000664000175000017500000000027512544707704021134 00000000000000buildmbr - text args :memory: #use in-memory database SELECT BuildMbr('a', 'b', 'c', 'd', 'e') 1 # rows (not including the header row) 1 # columns BuildMbr('a', 'b', 'c', 'd', 'e') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridunit5.testcase0000664000175000017500000000026112544707704021173 00000000000000SridGetUnit() - BLOB SRID :memory: #use in-memory database SELECT SridGetUnit(zeroblob(10)) 1 # rows (not including the header row) 1 # columns SridGetUnit(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepoint13.testcase0000664000175000017500000000035212544707704021401 00000000000000makepoint - MakepointZM, bad Z arg, SRID :memory: #use in-memory database SELECT AsText(MakePointZM(-71, 42, "hello", 4, 4326)) 1 # rows (not including the header row) 1 # columns AsText(MakePointZM(-71, 42, "hello", 4, 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc8.testcase0000664000175000017500000000034412544707704022470 00000000000000makeellipticarc8 - BLOB x_axis :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, zeroblob(4), 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, zeroblob(4), 200, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttopoly6.testcase0000664000175000017500000000052612544707704021540 00000000000000casttopoly - Geometry collection, polygon :memory: #use in-memory database SELECT AsText(CastToPolygon(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToPolygon(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)))"))) POLYGON((4 3, 4 1, 0 3, 4 3)) libspatialite-4.3.0a/test/sql_stmt_tests/wkb9.testcase0000664000175000017500000000057712544707704020133 00000000000000Hex Wkb: MultiLinestring XY (single line) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTILINESTRING((1.2 3.4, 5.6 7.8))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTILINESTRING((1.2 3.4, 5.6 7.8))", 4326))); 010500000001000000010200000002000000333333333333F33F3333333333330B4066666666666616403333333333331F40 libspatialite-4.3.0a/test/sql_stmt_tests/badKML6.testcase0000664000175000017500000000171012544707704020425 00000000000000bad KML: MultiPolygon :memory: #use in-memory database SELECT GeomFromKML('0,0 1,0 1,1 0,1 0,00.1,0.1 0.9,0.1 0.9,0.9 0.1,0.9 0.1,0.15,5 6,5 6,6 5,6 5,50,0 1,0 1,1 0,1 0,00.1,0.1 0.9,0.1 0.9,0.9 0.1,0.9 0.1,0.15,5 6,5 6,6 5,6 5,51,2,10 3,4,11 5,6,137,8,13 9,10,13')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2,10 3,4,11 5,6,137,8,13 9,10,13')):0 SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 13),(7 8 13,9 10 13)) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatescale6.testcase0000664000175000017500000000075712544707704022322 00000000000000ATM_CreateScale() - valid 3d (double) :memory: #use in-memory database SELECT Hex(ATM_CreateScale(1.0, 2.0, 3.0)) 1 # rows (not including the header row) 1 # columns Hex(ATM_CreateScale(1.0, 2.0, 3.0)) 0001000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A00000000000000403A00000000000000003A00000000000000003A00000000000000003A00000000000000003A00000000000008403A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon26.testcase0000664000175000017500000000114012544707704021737 00000000000000makepolygon - XYZM hole :memory: #use in-memory database SELECT AsText(ST_MakePolygon(GeomFromText('LINESTRINGZM(1 1 4 2, 1 20 3 3, 20 20 2 3, 20 1 3 2, 1 1 4 2)', 4326), GeomFromText('LINESTRINGZM(2 2 10 1, 3 2 11 2, 3 3 12 3, 2 3 13 2, 2 2 10 1)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_MakePolygon(GeomFromText('LINESTRINGZM(1 1 4 2, 1 20 3 3, 20 20 2 3, 20 1 3 2, 1 1 4 2)', 4326), GeomFromText('LINESTRINGZM(2 2 10 1, 3 2 11 2, 3 3 12 3, 2 3 13 2, 2 2 10 1)'))) POLYGON ZM((1 1 4 2, 1 20 3 3, 20 20 2 3, 20 1 3 2, 1 1 4 2), (2 2 10 1, 3 2 11 2, 3 3 12 3, 2 3 13 2, 2 2 10 1)) libspatialite-4.3.0a/test/sql_stmt_tests/translate3.testcase0000664000175000017500000000031412544707704021324 00000000000000translate - bad blob (null) :memory: #use in-memory database SELECT ST_Translate(zeroblob(4), -1, -3, -4); 1 # rows (not including the header row) 1 # columns ST_Translate(zeroblob(4), -1, -3, -4) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/polygonfromtext2.testcase0000664000175000017500000000050512544707704022610 00000000000000polygonfromtext2 :memory: #use in-memory database SELECT AsWkt(PolygonFromText("POLYGON((-71 42, -70 41, -70 42, -70 42, -71 42))", 4326), 4); 1 # rows (not including the header row) 1 # columns AsWkt(PolygonFromText("POLYGON((-71 42, -70 41, -70 42, -70 42, -71 42))", 4326), 4) POLYGON((-71 42,-70 41,-70 42,-70 42,-71 42))libspatialite-4.3.0a/test/sql_stmt_tests/fromgml47.testcase0000664000175000017500000000250312544707704021064 00000000000000FromGML - MultiPolygon v2 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01,1 2,1 2,2 1,2 1,16,6 7,6 7,7 6,7 6,6')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01,1 2,1 2,2 1,2 1,16,6 7,6 7,7 6,7 6,6')):0 SRID=4326;MULTIPOLYGON(((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1)),((6 6,7 6,7 7,6 7,6 6))) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype62.testcase0000664000175000017500000000060012544707704021243 00000000000000geometrytype - GEOMETRYCOLLECTION - one point :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTION(POINT(3 2))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION XY GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/rotatecoords6.testcase0000664000175000017500000000141512544707704022045 00000000000000rotate coords - LINESTRING ZM :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("LINESTRINGZM(0 0 2 4, 1 1 3 5)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) LINESTRING ZM(0 0 2 4, 1 1 3 5) LINESTRING ZM(0 0 2 4, 1 -1 3 5) LINESTRING ZM(0 0 2 4, -1 -1 3 5) LINESTRING ZM(0 0 2 4, -1 1 3 5) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/removepoint7.testcase0000664000175000017500000000040112544707704021677 00000000000000ST_RemovePoint() - DOUBLE index :memory: #use in-memory database SELECT ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1.5) 1 # rows (not including the header row) 1 # columns ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sriddatum1.testcase0000664000175000017500000000024412544707704021323 00000000000000SridGetDatum() - NULL SRID :memory: #use in-memory database SELECT SridGetDatum(NULL) 1 # rows (not including the header row) 1 # columns SridGetDatum(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr15.testcase0000664000175000017500000000025612544707704021054 00000000000000garsmbr - bad longitude :memory: #use in-memory database SELECT AsText(GARSMbr("-01AB")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("-01AB")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridisgeographic3.testcase0000664000175000017500000000026012544707704022655 00000000000000SridIsGeographic() - DOUBLE SRID :memory: #use in-memory database SELECT SridIsGeographic(1.0) 1 # rows (not including the header row) 1 # columns SridIsGeographic(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract5.testcase0000664000175000017500000000036112544707704022353 00000000000000Collection Extract - Point invalid type 0 :memory: #use in-memory database SELECT CollectionExtract(GeomFromText("POINT(1 2)"), 0); 1 # rows (not including the header row) 1 # columns CollectionExtract(GeomFromText("POINT(1 2)"), 0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/st_x5.testcase0000664000175000017500000000036312544707704020312 00000000000000ST_X5 :memory: #use in-memory database SELECT ST_X(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")); 1 # rows (not including the header row) 1 # columns ST_X(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepoint11.testcase0000664000175000017500000000035312544707704021400 00000000000000makepoint - MakepointZM, int args, SRID :memory: #use in-memory database SELECT AsText(MakePointZM(-71, 42, 3, 4, 4326)) 1 # rows (not including the header row) 1 # columns AsText(MakePointZM(-71, 42, 3, 4, 4326)) POINT ZM(-71 42 3 4) libspatialite-4.3.0a/test/sql_stmt_tests/casttopoly4.testcase0000664000175000017500000000050412544707704021532 00000000000000casttopolygon - Geometry collection, point plus linestring :memory: #use in-memory database SELECT CastToPolygon(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 3, 4 1),POINT(1 2))")) 1 # rows (not including the header row) 1 # columns CastToPolygon(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 3, 4 1),POINT(1 2))")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttopoint1.testcase0000664000175000017500000000025612544707704021701 00000000000000casttopoint - bad blob :memory: #use in-memory database SELECT CastToPoint(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToPoint(zeroblob(99)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype34.testcase0000664000175000017500000000053512544707704021251 00000000000000geometrytype - GEOMETRYCOLLECTIONZM only Linestring :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(4 6 0 0,7 10 0 0))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) GEOMETRYCOLLECTION ZM XYZMlibspatialite-4.3.0a/test/sql_stmt_tests/isvalidrasterstats5.testcase0000664000175000017500000000035212544707704023266 00000000000000IsValidRasterStatistics - NULL statistics: 3 args NEW:memory: #use in-memory database SELECT IsValidRasterStatistics(NULL, 'UINT8', 1); 1 # rows (not including the header row) 1 # columns IsValidRasterStatistics(NULL, 'UINT8', 1) -1 libspatialite-4.3.0a/test/sql_stmt_tests/geomtype9.testcase0000664000175000017500000000044612544707704021174 00000000000000geometrytype - LINESTRINGM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("LINESTRINGM(4 0 1, 4 4 2, 8 4 3)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) LINESTRING M XYMlibspatialite-4.3.0a/test/sql_stmt_tests/garsmbr11.testcase0000664000175000017500000000023212544707704021042 00000000000000garsmbr - bad coords :memory: #use in-memory database SELECT GARSMbr("AA123") 1 # rows (not including the header row) 1 # columns GARSMbr("AA123") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/encodeurl4.testcase0000664000175000017500000000024312544707704021311 00000000000000EncodeURL - BLOB :memory: #use in-memory database SELECT EncodeURL(zeroblob(4)); 1 # rows (not including the header row) 1 # columns EncodeURL(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/mbr1.testcase0000664000175000017500000000043612544707704020112 00000000000000MbrContains - Line + Point :memory: #use in-memory database SELECT MbrContains(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 2)")); 1 # rows (not including the header row) 1 # columns MbrContains(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 2)")) # header 1libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr6.testcase0000664000175000017500000000025112544707704020767 00000000000000garsmbr - out of bounds longitude :memory: #use in-memory database SELECT GARSMbr("721AA1") 1 # rows (not including the header row) 1 # columns GARSMbr("721AA1") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml15.testcase0000664000175000017500000000240212544707704021055 00000000000000FromGML - GeometryCollection v2 (no namescpaces) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('8,89,9 10,100,0 5,0 5,5 0,5 0,01,1 2,1 2,2 1,2 1,1')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('8,89,9 10,100,0 5,0 5,5 0,5 0,01,1 2,1 2,2 1,2 1,1')):0 SRID=4326;GEOMETRYCOLLECTION(POINT(8 8),LINESTRING(9 9,10 10),POLYGON((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1))) libspatialite-4.3.0a/test/sql_stmt_tests/collect37.testcase0000664000175000017500000000071312544707704021046 00000000000000collect - LineStringZM, LineStringZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGZM(1 2 4 1, 3 4 2 2)"), GeomFromText("LINESTRINGZM(4 5 3.2 1, 1 2 4.6 2, 4 2 3.1 4)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGZM(1 2 4 1, 3 4 2 2)"), GeomFromText("LINESTRINGZM(4 5 3.2 1, 1 2 4.6 2, 4 2 3.1 4)"))) MULTILINESTRING ZM((1 2 4 1, 3 4 2 2), (4 5 3.2 1, 1 2 4.6 2, 4 2 3.1 4)) libspatialite-4.3.0a/test/sql_stmt_tests/casttomultipoint5.testcase0000664000175000017500000000043012544707704022752 00000000000000casttomultipoint - MULTIPOINT - 2 points :memory: #use in-memory database SELECT AsText(CastToMultiPoint(GeomFromText("MULTIPOINT(1 2, 4 8)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiPoint(GeomFromText("MULTIPOINT(1 2, 4 8)"))) MULTIPOINT(1 2, 4 8) libspatialite-4.3.0a/test/sql_stmt_tests/extfrompath4.testcase0000664000175000017500000000027112544707704021673 00000000000000FileExtFromPath - DOUBLE :memory: #use in-memory database SELECT FileExtFromPath(zeroblob(10)); 1 # rows (not including the header row) 1 # columns FileExtFromPath(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb23.testcase0000664000175000017500000000150412544707704021022 00000000000000fromWkb - MULTIPOLYGON :memory: #use in-memory database SELECT Hex(MultiPolygonFromWkb(AsBinary(MPolyFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))")), 4326)) 1 # rows (not including the header row) 1 # columns Hex(MultiPolygonFromWkb(AsBinary(MPolyFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))")), 4326)) 0001E610000000000000000014400000000000001440000000000080464000000000000044407C0600000002000000690300000001000000040000000000000000003E40000000000000344000000000000024400000000000004440000000000080464000000000000044400000000000003E400000000000003440690300000001000000050000000000000000002E4000000000000014400000000000004440000000000000244000000000000024400000000000003440000000000000144000000000000024400000000000002E400000000000001440FE libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext9.testcase0000664000175000017500000000041312544707704022055 00000000000000geomfromtext9 :memory: #use in-memory database SELECT AsEWkt(GeomFromText("POINT(-71.1043443253471 42.315067601582900 45)", 4326)); 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromText("POINT(-71.1043443253471 42.315067601582900 45)", 4326)) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/reverse4.testcase0000664000175000017500000000212612544707704021006 00000000000000reverse - GeometryCollection XYZ :memory: #use in-memory database SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 19), POLYGONZ((10 10 101, 15 10 102, 13 13 103, 10 10 101), (11 10.5 100, 13 10.5 101, 13 11.3 102, 11 10.5 100)), POLYGONZ((20 20 100, 27 20 101, 22 18 102, 20 20 100), (21 19.5 101, 27 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326))); 1 # rows (not including the header row) 1 # columns AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102, 7 8 103, 9 9 19), POLYGONZ((10 10 101, 15 10 102, 13 13 103, 10 10 101), (11 10.5 100, 13 10.5 101, 13 11.3 102, 11 10.5 100)), POLYGONZ((20 20 100, 27 20 101, 22 18 102, 20 20 100), (21 19.5 101, 27 19.5 102, 22 18.5 103, 21 19.5 101)))", 4326))) SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100),LINESTRING(9 9 19,7 8 103,5 6 102,3 4 101),POLYGON((10 10 101,13 13 103,15 10 102,10 10 101),(11 10.5 100,13 11.3 102,13 10.5 101,11 10.5 100)),POLYGON((20 20 100,22 18 102,27 20 101,20 20 100),(21 19.5 101,22 18.5 103,27 19.5 102,21 19.5 101))) libspatialite-4.3.0a/test/sql_stmt_tests/togars3.testcase0000664000175000017500000000034012544707704020625 00000000000000togars - southeast :memory: #use in-memory database SELECT ToGARS(GeomFromText("Point(179.999 -89.999)", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("Point(179.999 -89.999)", 4326)) 720AA49libspatialite-4.3.0a/test/sql_stmt_tests/ndims4.testcase0000664000175000017500000000050012544707704020437 00000000000000Coord Dimensions - GeometryCollection XYZ :memory: #use in-memory database SELECT CoordDimension(geom), ST_NDims(geom) FROM (SELECT GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 101, 5 6 102))') AS geom); 1 # rows (not including the header row) 2 # columns CoordDimension(geom) ST_NDims(geom) XYZ 3 libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson9.testcase0000664000175000017500000000062212544707704021667 00000000000000FromGeoJSON - PointZ with SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"Point","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[-1,1,2.3]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"Point","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[-1,1,2.3]}')):0 SRID=3003;POINT(-1 1 2.3) libspatialite-4.3.0a/test/sql_stmt_tests/pointn5.testcase0000664000175000017500000000040612544707704020642 00000000000000pointN - text index (error) :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), "three")); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), "three")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ring25.testcase0000664000175000017500000000070412544707704020355 00000000000000InteriorRingN - POLGON Z third interior (error) :memory: #use in-memory database SELECT InteriorRingN(GeomFromText("POLYGONZ((0 0 0, 0 4 1, 4 4 2, 4 0 3, 0 0 0),(1 1 2, 1 3 2, 3 3 2, 3 1 2, 1 1 2),(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 1))"), 3); 1 # rows (not including the header row) 1 # columns InteriorRingN(GeomFromText("POLYGONZ((0 0 0, 0 4 1, 4 4 2, 4 0 3, 0 0 0),(1 1 2, 1 3 2, 3 3 2, 3 1 2, 1 1 2),(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 1))"), 3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asewkb10.testcase0000664000175000017500000000105312544707704020662 00000000000000asewkb - LINESTRINGZM :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("LINESTRINGZM(1 3 2 0,1 0 2 0)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("LINESTRINGZM(1 3 2 0,1 0 2 0)", 4326))) 30313032303030304530453631303030303030323030303030303030303030303030303030304630334630303030303030303030303030383430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030303030303030303030303030303030303030343030303030303030303030303030303030 libspatialite-4.3.0a/test/sql_stmt_tests/badEWKT2.testcase0000664000175000017500000000040312544707704020546 00000000000000bad EWKT: Linestring :memory: #use in-memory database SELECT GeomFromEWKT("SRID=4326;LINESTRING(11.2 12.3, 11.3 12.4, 11.4 12.5"); 1 # rows (not including the header row) 1 # columns GeomFromEWKT("SRID=4326;LINESTRING(11.2 12.3, 11.3 12.4, 11.4 12.5") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/clonetable15.testcase0000664000175000017500000000061112544707704021522 00000000000000CloneTable() - not existing input :memory: #use in-memory database SELECT CloneTable('prefix', 'in_table', 'out_table', 1, 'opt1', 'opt2', 'opt3', 'opt4', 'opt5', 'opt6', 'opt7', 'opt8', 'opt9', 'opt10') 1 # rows (not including the header row) 1 # columns CloneTable('prefix', 'in_table', 'out_table', 1, 'opt1', 'opt2', 'opt3', 'opt4', 'opt5', 'opt6', 'opt7', 'opt8', 'opt9', 'opt10') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry13.testcase0000664000175000017500000000074512544707704023027 00000000000000CompressGeometry - MULTILINESTRINGZ :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("MULTILINESTRINGZ((1 2 2, 3 4 2))"))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("MULTILINESTRINGZ((1 2 2, 3 4 2))"))) 000100000000000000000000F03F0000000000000040000000000000084000000000000010407CED03000001000000692A460F0002000000000000000000F03F00000000000000400000000000000040000000000000084000000000000010400000000000000040FE libspatialite-4.3.0a/test/sql_stmt_tests/makeline13.testcase0000664000175000017500000000046612544707704021205 00000000000000makeline13 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINT(1 2)"), GeomFromText("POINTZM(0 0 1.3 38.5)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINT(1 2)"), GeomFromText("POINTZM(0 0 1.3 38.5)"))) LINESTRING ZM(1 2 0 0, 0 0 1.3 38.5) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatescale7.testcase0000664000175000017500000000031012544707704022304 00000000000000ATM_CreateScale() - 3d invalid 1st arg :memory: #use in-memory database SELECT ATM_CreateScale('a', 2.0, 3.0) 1 # rows (not including the header row) 1 # columns ATM_CreateScale('a', 2.0, 3.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon7.testcase0000664000175000017500000000033612544707704021664 00000000000000makepolygon - Point exterior :memory: #use in-memory database SELECT MakePolygon(GeomFromText('POINT(1 1)', 4326)); 1 # rows (not including the header row) 1 # columns MakePolygon(GeomFromText('POINT(1 1)', 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext10.testcase0000664000175000017500000000046012544707704022127 00000000000000geomfromtext10 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTION(MULTIPOINT(0 1, 2 3, 4 5))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTION(MULTIPOINT(0 1, 2 3, 4 5))')); GEOMETRYCOLLECTION(POINT(0 1), POINT(2 3), POINT(4 5)) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype22.testcase0000664000175000017500000000053112544707704021242 00000000000000geometrytype - POLYGONZ :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("POLYGONZ((30 20 1, 10 40 1, 45 40 1, 30 20 1),(15 5 2, 40 10 2, 10 20 2, 5 10 2, 15 5 2))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) POLYGON Z XYZlibspatialite-4.3.0a/test/sql_stmt_tests/asgml4.testcase0000664000175000017500000000026112544707704020434 00000000000000asgml - bad args (non-blob, 3 arg) :memory: #use in-memory database SELECT asgml(2, "hello", 5); 1 # rows (not including the header row) 1 # columns asgml(2, "hello", 5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeline9.testcase0000664000175000017500000000044112544707704021123 00000000000000makeline9 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINTZ(0 0 0.2)"), GeomFromText("POINT(1 2)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINTZ(0 0 0.2)"), GeomFromText("POINT(1 2)"))) LINESTRING Z(0 0 0.2, 1 2 0) libspatialite-4.3.0a/test/sql_stmt_tests/wkb13.testcase0000664000175000017500000000063312544707704020177 00000000000000Hex Wkb: GeometryCollection XY(single line) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(1.2 3.4, 5.6 7.8))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(1.2 3.4, 5.6 7.8))", 4326))); 010700000001000000010200000002000000333333333333F33F3333333333330B4066666666666616403333333333331F40 libspatialite-4.3.0a/test/sql_stmt_tests/translate11.testcase0000664000175000017500000000053112544707704021404 00000000000000translate - Linestring XYZM :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("LINESTRINGZM(1 2 10 20, 3 4 10 20)"), 1.4, 3.9, 5.3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("LINESTRINGZM(1 2 10 20, 3 4 10 20)"), 1.4, 3.9, 5.3)) LINESTRING ZM(2.4 5.9 15.3 20, 4.4 7.9 15.3 20) libspatialite-4.3.0a/test/sql_stmt_tests/geometryn13.testcase0000664000175000017500000000053312544707704021424 00000000000000Geometry N - multilinestringm :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTILINESTRINGM((1 2 1.6, 4 2.3 8.7, 1 2 1),(0 1 2, 8 1 1))"), 2)) 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTILINESTRINGM((1 2 1.6, 4 2.3 8.7, 1 2 1),(0 1 2, 8 1 1))"), 2)) LINESTRING M(0 1 2, 8 1 1) libspatialite-4.3.0a/test/sql_stmt_tests/elemgeo7.testcase0000664000175000017500000000044612544707704020756 00000000000000ElementaryGeometries() - NULL transaction :memory: #use in-memory database SELECT ElementaryGeometries('in_table', 'geom', 'out_table', 'id', 'old_id', NULL); 1 # rows (not including the header row) 1 # columns ElementaryGeometries('in_table', 'geom', 'out_table', 'id', 'old_id', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asfgf5.testcase0000664000175000017500000000031512544707704020420 00000000000000asfgf - out of range second arg :memory: #use in-memory database SELECT AsFGF(GeomFromText("POINT(1 2)"), 4) 1 # rows (not including the header row) 1 # columns AsFGF(GeomFromText("POINT(1 2)"), 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull10.testcase0000664000175000017500000000026212544707704021400 00000000000000ForceAsNull() - TEXT/DOUBLE :memory: #use in-memory database SELECT ForceAsNull('alpha', 1.5) 1 # rows (not including the header row) 1 # columns ForceAsNull('alpha', 1.5) alpha libspatialite-4.3.0a/test/sql_stmt_tests/dissolve17.testcase0000664000175000017500000000060712544707704021251 00000000000000dissolve - GEOMETRY COLLECTION :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(4 6 0,7 10 0))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) LINESTRING M(4 6 0, 7 10 0) MULTIPOINT M(4 6 0, 7 10 0) libspatialite-4.3.0a/test/sql_stmt_tests/asfgf2.testcase0000664000175000017500000000025212544707704020415 00000000000000asfgf - bad blob input :memory: #use in-memory database SELECT AsFGF(zeroblob(100), 1) 1 # rows (not including the header row) 1 # columns AsFGF(zeroblob(100), 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmyroll4.testcase0000664000175000017500000000026412544707704021177 00000000000000ATM_YRoll() - invalid blob :memory: #use in-memory database SELECT ATM_YRoll(zeroblob(4), 15) 1 # rows (not including the header row) 1 # columns ATM_YRoll(zeroblob(4), 15) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype51.testcase0000664000175000017500000000063512544707704021251 00000000000000geometrytype - GEOMETRYCOLLECTION - one POLYGON :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTION(POLYGON((30 20, 10 40, 45 40, 30 20)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION XY GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/setpoint13.testcase0000664000175000017500000000040412544707704021255 00000000000000ST_SetPoint() - TEXT Point :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, 'alpha') 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry19.testcase0000664000175000017500000000061412544707704023030 00000000000000CompressGeometry - POINTZM :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("POINTZM(1 2 1 0)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("POINTZM(1 2 1 0)", 4326))) 0001E6100000000000000000F03F0000000000000040000000000000F03F00000000000000407CB90B0000000000000000F03F0000000000000040000000000000F03F0000000000000000FE libspatialite-4.3.0a/test/sql_stmt_tests/mlinefromtext2.testcase0000664000175000017500000000054712544707704022233 00000000000000multilinefromtext2 :memory: #use in-memory database SELECT AsWkt(MLineFromText("MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))")) 1 # rows (not including the header row) 1 # columns AsWkt(MLineFromText("MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))")) MULTILINESTRING((10 10,20 20,10 40),(40 40,30 30,40 20,30 10))libspatialite-4.3.0a/test/sql_stmt_tests/removepoint9.testcase0000664000175000017500000000041712544707704021710 00000000000000ST_RemovePoint() - BLOB index :memory: #use in-memory database SELECT ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), zeroblob(4)) 1 # rows (not including the header row) 1 # columns ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude8.testcase0000664000175000017500000000065412544707704022373 00000000000000shiftlongitude - positive and negative longitude linestringz :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("LINESTRINGZ(-170 0 1, -175 2 2.4, -179 4 3.2, 175.3 5 4.7)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("LINESTRINGZ(-170 0 1, -175 2 2.4, -179 4 3.2, 175.3 5 4.7)", 4326))) LINESTRING Z(190 0 1, 185 2 2.4, 181 4 3.2, 175.3 5 4.7) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml39.testcase0000664000175000017500000000151312544707704021065 00000000000000FromGML - Polygon v2, inner ring poslist :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01 1 2 1 2 2 1 2 1 1')) 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01 1 2 1 2 2 1 2 1 1')):0 SRID=4326;POLYGON((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1))libspatialite-4.3.0a/test/sql_stmt_tests/todms10.testcase0000664000175000017500000000027212544707704020536 00000000000000todms - invalid negative longitude :memory: #use in-memory database SELECT LongLatToDMS(-211.5, 42); 1 # rows (not including the header row) 1 # columns LongLatToDMS(-211.5, 42) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype8.testcase0000664000175000017500000000044612544707704021173 00000000000000geometrytype - LINESTRINGZ :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("LINESTRINGZ(4 0 1, 4 4 2, 8 4 3)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) LINESTRING Z XYZlibspatialite-4.3.0a/test/sql_stmt_tests/scalecoords12.testcase0000664000175000017500000000213312544707704021711 00000000000000scale coords - POLYGONM with inner ring :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("POLYGONM((0 0 1, 0 4 1, 4 4 1, 4 0 1, 0 0 1),(1 2 1, 1 3 1, 2 3 1, 2 2 1, 1 2 1))") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) POLYGON M((0 0 1, 0 0 1, 0 0 1, 0 0 1, 0 0 1), (0 0 1, 0 0 1, 0 0 1, 0 0 1, 0 0 1)) POLYGON M((0 0 1, 0 0 1, 0 0 1, 0 0 1, 0 0 1), (0 0 1, 0 0 1, 0 0 1, 0 0 1, 0 0 1)) POLYGON M((0 0 1, 0 12 1, 8 12 1, 8 0 1, 0 0 1), (2 6 1, 2 9 1, 4 9 1, 4 6 1, 2 6 1)) POLYGON M((0 0 1, 0 -4 1, 4 -4 1, 4 0 1, 0 0 1), (1 -2 1, 1 -3 1, 2 -3 1, 2 -2 1, 1 -2 1)) (NULL) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/assvg2.testcase0000664000175000017500000000032712544707704020455 00000000000000assvg - 2 arg with SRID :memory: #use in-memory database SELECT assvg(GeomFromText("Point(1 2)", 4326), 1) 1 # rows (not including the header row) 1 # columns assvg(GeomFromText("Point(1 2)", 4326), 1) x="1" y="-2" libspatialite-4.3.0a/test/sql_stmt_tests/makepoint12.testcase0000664000175000017500000000033112544707704021375 00000000000000makepoint - MakepointZM, int args :memory: #use in-memory database SELECT AsText(MakePointZM(-71, 42, 3, 4)) 1 # rows (not including the header row) 1 # columns AsText(MakePointZM(-71, 42, 3, 4)) POINT ZM(-71 42 3 4) libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat1.testcase0000664000175000017500000000037112544707704022542 00000000000000normalizelonlat- normal range :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(1 2)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(1 2)", 4326))) POINT(1 2) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml10.testcase0000664000175000017500000000157112544707704021056 00000000000000FromGML - MultiPoint v3 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1 23 45 6')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1 23 45 6')):0 SRID=4326;MULTIPOINT(1 2,3 4,5 6) libspatialite-4.3.0a/test/sql_stmt_tests/geojson6.testcase0000664000175000017500000000117512544707704021004 00000000000000GeoJSON GeometryCollection (Linestring + Linestring) :memory: #use in-memory database SELECT AsGeoJSON(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(5 5, 6 6), LINESTRING(7 8, 8 7))", 4326), 2, 5); 1 # rows (not including the header row) 1 # columns AsGeoJSON(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(5 5, 6 6), LINESTRING(7 8, 8 7))", 4326), 2, 5) {"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:4326"}},"bbox":[5,5,8,8],"geometries":[{"type":"LineString","coordinates":[[5,5],[6,6]]},{"type":"LineString","coordinates":[[7,8],[8,7]]}]}:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/locatemeasure2.testcase0000664000175000017500000000036512544707704022165 00000000000000ST_Locate_Between_Measures - bad arg #2 :memory: #use in-memory database SELECT ST_Locate_Between_Measures(zeroblob(99), "alpha", 3) 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures(zeroblob(99), "alpha", 3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttolinestring8.testcase0000664000175000017500000000060612544707704022734 00000000000000casttolinestring - GEOMETRY COLLECTION, LINESTRING and POLYGON :memory: #use in-memory database SELECT AsText(CastToLineString(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),LINESTRING(4 1, 3 4))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToLineString(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),LINESTRING(4 1, 3 4))"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe14.testcase0000664000175000017500000000035412544707704023306 00000000000000makecircularstripe14 - BLOB stop :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, 30, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, 30, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate18.testcase0000664000175000017500000000032712544707704021366 00000000000000ATM_Create() - 2d invalid 2nd arg :memory: #use in-memory database SELECT ATM_Create(1.0, 'a', 3.0, 4.0, 5.0, 6.0) 1 # rows (not including the header row) 1 # columns ATM_Create(1.0, 'a', 3.0, 4.0, 5.0, 6.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collect39.testcase0000664000175000017500000000063312544707704021051 00000000000000collect - LineStringZM, LineString :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGZM(1 2 4 1, 3 4 2 2)"), GeomFromText("LINESTRING(4 5, 1 2, 4 2)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGZM(1 2 4 1, 3 4 2 2)"), GeomFromText("LINESTRING(4 5, 1 2, 4 2)"))) MULTILINESTRING ZM((1 2 4 1, 3 4 2 2), (4 5 0 0, 1 2 0 0, 4 2 0 0)) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry62.testcase0000664000175000017500000000060412544707704023025 00000000000000CompressGeometry - MULTIPOLYGON (1 Polygon) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOLYGON(((10 10, 11 10, 11 11, 10 11, 10 10)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOLYGON(((10 10, 11 10, 11 11, 10 11, 10 10)))", 4326))) MULTIPOLYGON(((10 10, 11 10, 11 11, 10 11, 10 10))) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr13.testcase0000664000175000017500000000023012544707704021042 00000000000000garsmbr - short text :memory: #use in-memory database SELECT GARSMbr("erin") 1 # rows (not including the header row) 1 # columns GARSMbr("erin") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collect17.testcase0000664000175000017500000000047112544707704021045 00000000000000collect - PointM, PointZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTM(4 5 3.2)"), GeomFromText("POINTZ(1 2 6)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTM(4 5 3.2)"), GeomFromText("POINTZ(1 2 6)"))) MULTIPOINT ZM(4 5 0 3.2, 1 2 6 0) libspatialite-4.3.0a/test/sql_stmt_tests/locatemeasure9.testcase0000664000175000017500000000053412544707704022172 00000000000000ST_Locate_Between_Measures - Polygon :memory: #use in-memory database SELECT ST_Locate_Between_Measures(GeomFromText('POLYGONM((0 0 10, 1 0 11, 1 1 12, 0 1 13, 0 0 10))'), 20.1, 30); 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures(GeomFromText('POLYGONM((0 0 10, 1 0 11, 1 1 12, 0 1 13, 0 0 10))'), 20.1, 30) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ktorrent_grad1.jpg0000664000175000017500000000055712544707704021150 00000000000000ÿØÿàJFIFHHÿáExifMM*ÿþCreated with The GIMPÿÛC  !"$"$ÿÛCÿÀ"ÿÄÿÄSaÿÄÿÄÿÚ ?‡ëž‹nb&›"W)6lÌ3ål¨ŸÿÙlibspatialite-4.3.0a/test/sql_stmt_tests/SridFromAuthCRS6.testcase0000664000175000017500000000030612544707704022252 00000000000000SridFromAuthCRS - no such id :memory: #use in-memory database SELECT SridFromAuthCRS('gfoss.it', 9999999) 1 # rows (not including the header row) 1 # columns SridFromAuthCRS('gfoss.it', 9999999) -1 libspatialite-4.3.0a/test/sql_stmt_tests/updatestats1.testcase0000664000175000017500000000030712544707704021670 00000000000000UpdateLayerStatistics - NULL, NULL :memory: #use in-memory database SELECT UpdateLayerStatistics(NULL, NULL); 1 # rows (not including the header row) 1 # columns UpdateLayerStatistics(NULL, NULL); 0 libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext12.testcase0000664000175000017500000000052412544707704022132 00000000000000geomfromtext12 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTION(MULTILINESTRING((0 1, 2 3), (4 5, 6 7)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTION(MULTILINESTRING((0 1, 2 3), (4 5, 6 7)))')); GEOMETRYCOLLECTION(LINESTRING(0 1, 2 3), LINESTRING(4 5, 6 7)) libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat2.testcase0000664000175000017500000000041312544707704022540 00000000000000normalizelonlat- out of range positive long :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(361 2)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(361 2)", 4326))) POINT(1 2) libspatialite-4.3.0a/test/sql_stmt_tests/atmisvalid3.testcase0000664000175000017500000000023612544707704021467 00000000000000ATM_IsValid() - text :memory: #use in-memory database SELECT ATM_IsValid('alpha') 1 # rows (not including the header row) 1 # columns ATM_IsValid('alpha') -1 libspatialite-4.3.0a/test/sql_stmt_tests/geomtype56.testcase0000664000175000017500000000066612544707704021262 00000000000000geometrytype - GEOMETRYCOLLECTION - two polygons :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 6,7 10, 12 3, 4 6)),POLYGON((4 6,7 10, 12 3, 4 6)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION XY GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/fullnamefrompath1.testcase0000664000175000017500000000026612544707704022677 00000000000000FullFileNameFromPath - NULL :memory: #use in-memory database SELECT FullFileNameFromPath(NULL); 1 # rows (not including the header row) 1 # columns FullFileNameFromPath(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/reflectcoords14.testcase0000664000175000017500000000104512544707704022251 00000000000000reflectcoords14 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POLYGONM((-10 -10 1, -20 -10 2, -20 -20 3, -20 -11 4, -10 -10 1), (-11 -11 1, -12 -11 2, -12 -12 3, -11 -12 4, -11 -11 1))"), 1, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POLYGONM((-10 -10 1, -20 -10 2, -20 -20 3, -20 -11 4, -10 -10 1), (-11 -11 1, -12 -11 2, -12 -12 3, -11 -12 4, -11 -11 1))"), 1, 1)) POLYGON M((10 10 1, 20 10 2, 20 20 3, 20 11 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1)) libspatialite-4.3.0a/test/sql_stmt_tests/namefrompath5.testcase0000664000175000017500000000031112544707704022007 00000000000000FileNameFromPath - ok :memory: #use in-memory database SELECT FileNameFromPath('/home/user/file.txt'); 1 # rows (not including the header row) 1 # columns FileNameFromPath('/home/user/file.txt')) file libspatialite-4.3.0a/test/sql_stmt_tests/assvg23.testcase0000664000175000017500000000050212544707704020533 00000000000000assvg - relative/absolute MultiPoint :memory: #use in-memory database SELECT assvg(geom, 1) AS rel, assvg(geom, 0) AS abs FROM (SELECT GeomFromText("MULTIPOINT(10 10, 15 10)", 4326) AS geom) dummy; 1 # rows (not including the header row) 2 # columns rel abs x="10" y="-10",x="15" y="-10" cx="10" cy="-10",cx="15" cy="-10" libspatialite-4.3.0a/test/sql_stmt_tests/collect21.testcase0000664000175000017500000000050012544707704021031 00000000000000collect - PointZM, PointM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTZM(4 5 6 3.2)"), GeomFromText("POINTM(1 2 4)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTZM(4 5 6 3.2)"), GeomFromText("POINTM(1 2 4)"))) MULTIPOINT ZM(4 5 6 3.2, 1 2 0 4) libspatialite-4.3.0a/test/sql_stmt_tests/locatemeasure3.testcase0000664000175000017500000000036512544707704022166 00000000000000ST_Locate_Between_Measures - bad arg #3 :memory: #use in-memory database SELECT ST_Locate_Between_Measures(zeroblob(99), 2, "alpha") 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures(zeroblob(99), 2, "alpha") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/wkb8.testcase0000664000175000017500000000101112544707704020112 00000000000000Hex Wkb: GeometryColelction XYZM (2 points) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1.2 3.4 100 12), POINTZM(5.6 7.8 101 11))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1.2 3.4 100 12), POINTZM(5.6 7.8 101 11))", 4326))); 01BF0B00000200000001B90B0000333333333333F33F3333333333330B400000000000005940000000000000284001B90B000066666666666616403333333333331F4000000000004059400000000000002640 libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb12.testcase0000664000175000017500000000030012544707704021011 00000000000000fromWkb - bad small blob, 2 arg :memory: #use in-memory database SELECT GeomFromWkb(zeroblob(2), 4326) 1 # rows (not including the header row) 1 # columns GeomFromWkb(zeroblob(2), 4326) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/fdo_ogr2.testcase0000664000175000017500000000020312544707704020742 00000000000000FDO_OGR2 :memory: #use in-memory database SELECT AutoFDOStop() 1 # rows (not including the header row) 1 # columns AutoFDOStop() 0 libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt26.testcase0000664000175000017500000000045612544707704021261 00000000000000fromewkt26 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;MULTIPOINT((0 1 9 7), (2 3 9 7), (4 5 9 7))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;MULTIPOINT((0 1 9 7), (2 3 9 7), (4 5 9 7))')); MULTIPOINT ZM(0 1 9 7, 2 3 9 7, 4 5 9 7) libspatialite-4.3.0a/test/sql_stmt_tests/atmtrans11.testcase0000664000175000017500000000033612544707704021243 00000000000000ATM_Translate() - 3d invalid 3rd arg :memory: #use in-memory database SELECT ATM_Translate(zeroblob(10), 1.0, 2.0, 3.0) 1 # rows (not including the header row) 1 # columns ATM_Translate(zeroblob(10), 1.0, 2.0, 3.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml16.testcase0000664000175000017500000000074112544707704021736 00000000000000From KML - Multigeometry - 2 x Point 2D :memory: SELECT AsText(GeomFromKML("-122.0822035425683,37.42228990140251-122,37")) 1 # rows 1 # column AsText(GeomFromKML("-122.0822035425683,37.42228990140251-122,37")) MULTIPOINT(-122.082204 37.42229, -122 37)libspatialite-4.3.0a/test/sql_stmt_tests/st_y3.testcase0000664000175000017500000000022212544707704020303 00000000000000ST_Y - text :memory: #use in-memory database SELECT Y("hello world"); 1 # rows (not including the header row) 1 # columns Y("hello world") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry25.testcase0000664000175000017500000000051612544707704023026 00000000000000CompressGeometry - LINESTRING M :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("LINESTRINGM(1 2 10, 3 4 11, 5 6 12", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("LINESTRINGM(1 2 10, 3 4 11, 5 6 12", 4326))) (NULL) LINESTRING M(1 2 10, 3 4 11, 5 6 12) libspatialite-4.3.0a/test/sql_stmt_tests/dissolve1.testcase0000664000175000017500000000046212544707704021161 00000000000000dissolve - POINT :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POINT(1 2)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) POINT(1 2) POINT(1 2)libspatialite-4.3.0a/test/sql_stmt_tests/m_ln.testcase0000664000175000017500000000023212544707704020170 00000000000000metres to links :memory: #use in-memory database SELECT CvtToLink(1000); 1 # rows (not including the header row) 1 # columns CvtToLink(1000) 4970.96954:9 libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector16.testcase0000664000175000017500000000034612544707704023303 00000000000000makeellipticsector15 - text stop :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, 30, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, 30, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collect1.testcase0000664000175000017500000000035012544707704020752 00000000000000collect - two points :memory: #use in-memory database SELECT AsText(COLLECT(Makepoint(1,2), MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(Makepoint(1,2), MakePoint(2,3))) MULTIPOINT(1 2, 2 3) libspatialite-4.3.0a/test/sql_stmt_tests/ring22.testcase0000664000175000017500000000076612544707704020362 00000000000000InteriorRingN - POLGON Z second interior :memory: #use in-memory database SELECT AsText(InteriorRingN(GeomFromText("POLYGONZ((0 0 0, 0 4 1, 4 4 2, 4 0 3, 0 0 0),(1 1 2, 1 3 2, 3 3 2, 3 1 2, 1 1 2),(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 1))"), 2)); 1 # rows (not including the header row) 1 # columns AsText(InteriorRingN(GeomFromText("POLYGONZ((0 0 0, 0 4 1, 4 4 2, 4 0 3, 0 0 0),(1 1 2, 1 3 2, 3 3 2, 3 1 2, 1 1 2),(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 1))"), 2)) LINESTRING Z(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 1) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml20.testcase0000664000175000017500000000131012544707704021046 00000000000000FromGML - MultiPoint v3 3D :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1 2 103 4 11')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1 2 103 4 11')):0 SRID=4326;MULTIPOINT(1 2 10,3 4 11) libspatialite-4.3.0a/test/sql_stmt_tests/is3d4.testcase0000664000175000017500000000030212544707704020167 00000000000000Is3D- Point XYZ :memory: #use in-memory database SELECT ST_Is3D(GeomFromText('POINTZ(1 2 100)')); 1 # rows (not including the header row) 1 # columns ST_Is3D(GeomFromText('POINTZ(1 2 100)')) 1 libspatialite-4.3.0a/test/sql_stmt_tests/badGML5.testcase0000664000175000017500000000122212544707704020416 00000000000000bad GML: MultiPoint :memory: #use in-memory database SELECT GeomFromGML('1.1,2.23.3,4.41.1,2.23.3,4.4-122.0822035425683,37.42228990140251,0")) 1 # rows 1 # column AsText(GeomFromKML("-122.0822035425683,37.42228990140251,0"))) POINT Z(-122.082204 37.42229 0)libspatialite-4.3.0a/test/sql_stmt_tests/badwkt5.testcase0000664000175000017500000000046112544707704020610 00000000000000bad WKT: MultiLinestring :memory: #use in-memory database SELECT GeomFromText("MULTILINESTRING((11.2 12.3, 11.3 12.4, 11.4 12.5), (11.5 12.6, 11.6 12.7)"); 1 # rows (not including the header row) 1 # columns GeomFromText("MULTILINESTRING((11.2 12.3, 11.3 12.4, 11.4 12.5), (11.5 12.6, 11.6 12.7)") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr31.testcase0000664000175000017500000000025012544707704021044 00000000000000garsmbr - bad segment number 5 :memory: #use in-memory database SELECT GARSMbr("001AA51") 1 # rows (not including the header row) 1 # columns GARSMbr("001AA51") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype23.testcase0000664000175000017500000000062312544707704021245 00000000000000geometrytype - POLYGONM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("POLYGONM((30 20 1, 10 40 1, 45 40 1, 30 20 1),(15 5 2, 40 10 2, 10 20 2, 5 10 2, 15 5 2))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) POLYGON M XYM POLYGON libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry32.testcase0000664000175000017500000000121312544707704023017 00000000000000CompressGeometry - GEOMETRYCOLLECTION M :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(10 10 1, 11 11 2), POLYGONM((0 0 1, 5 0 2, 5 5 3, 0 5 4, 0 0 1), (1 1 10, 2 1 11, 2 2 12, 1 2 13, 1 1 10)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(10 10 1, 11 11 2), POLYGONM((0 0 1, 5 0 2, 5 5 3, 0 5 4, 0 0 1), (1 1 10, 2 1 11, 2 2 12, 1 2 13, 1 1 10)))", 4326))) GEOMETRYCOLLECTION M(LINESTRING M(10 10 1, 11 11 2), POLYGON M((0 0 1, 5 0 2, 5 5 3, 0 5 4, 0 0 1), (1 1 10, 2 1 11, 2 2 12, 1 2 13, 1 1 10))) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext31.testcase0000664000175000017500000000134212544707704022132 00000000000000geomfromtext31 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(MULTIPOLYGONZM(((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), ((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZM(MULTIPOLYGONZM(((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), ((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))))')); GEOMETRYCOLLECTION ZM(POLYGON ZM((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), POLYGON ZM((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry24.testcase0000664000175000017500000000052212544707704023022 00000000000000CompressGeometry - LINESTRING Z :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("LINESTRINGZ(1 2 100, 3 4 101, 5 6 102)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("LINESTRINGZ(1 2 100, 3 4 101, 5 6 102)", 4326))) LINESTRING Z(1 2 100, 3 4 101, 5 6 102) libspatialite-4.3.0a/test/sql_stmt_tests/greatcircle-poly.testcase0000664000175000017500000000033312544707704022512 00000000000000great circle length polygon :memory: SELECT GreatCircleLength(GeomFromText("POLYGON((0 0, 1 0, 0 0, 0 0))", 4326)); 1 # rows 1 # column GreatCircleLength(GeomFromText("POLYGON((0 0, 1 0, 0 0, 0 0))", 4326)) 222390.15:9 libspatialite-4.3.0a/test/sql_stmt_tests/shiftcoords10.testcase0000664000175000017500000000046512544707704021743 00000000000000shiftcoords - Linestring XYM :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("LINESTRINGM(1 2 20, 3 4 20)"), 1.4, 3.9)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("LINESTRINGM(1 2 20, 3 4 20)"), 1.4, 3.9)) LINESTRING M(2.4 5.9 20, 4.4 7.9 20) libspatialite-4.3.0a/test/sql_stmt_tests/sridflipped3.testcase0000664000175000017500000000026612544707704021642 00000000000000SridHasFlippedAxes() - DOUBLE SRID :memory: #use in-memory database SELECT SridHasFlippedAxes(1.0) 1 # rows (not including the header row) 1 # columns SridHasFlippedAxes(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude7.testcase0000664000175000017500000000057012544707704022367 00000000000000shiftlongitude - negative longitude linestringz :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("LINESTRINGZ(-170 0 1, -175 2 2.4, -179 4 3.2)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("LINESTRINGZ(-170 0 1, -175 2 2.4, -179 4 3.2)", 4326))) LINESTRING Z(190 0 1, 185 2 2.4, 181 4 3.2) libspatialite-4.3.0a/test/sql_stmt_tests/badGeoJSON4.testcase0000664000175000017500000000042612544707704021207 00000000000000bad GeoJSON: MultiPoint :memory: #use in-memory database SELECT GeomFromGeoJSON('{"type":"MultiPoint","coordinates":[[1.1,2.2],[3.3,4.4]]'); 1 # rows (not including the header row) 1 # columns GeomFromGeoJSON('{"type":"MultiPoint","coordinates":[[1.1,2.2],[3.3,4.4]]'):0 (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr25.testcase0000664000175000017500000000026312544707704021053 00000000000000garsmbr - bad latitude - 6 :memory: #use in-memory database SELECT AsText(GARSMbr("001--1")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("001--1")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmtransform2.testcase0000664000175000017500000000032412544707704022044 00000000000000ATM_Transform() - invalid geom :memory: #use in-memory database SELECT ATM_Transform(zeroblob(4), ATM_Create()) 1 # rows (not including the header row) 1 # columns ATM_Transform(zeroblob(4), ATM_Create()) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/envelope3.testcase0000664000175000017500000000043412544707704021147 00000000000000Envelope - Polygon :memory: #use in-memory database SELECT AsText(Envelope(GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))"))) 1 # rows (not including the header row) 1 # columns AsText(Envelope(GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))"))) POLYGON((1 1, 2 1, 2 2, 1 2, 1 1)) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype16.testcase0000664000175000017500000000060212544707704021244 00000000000000geometrytype - MULTIPOLYGONZM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("MULTIPOLYGONZM(((30 20 1 2, 10 40 1 2, 45 40 1 2, 30 20 1 2)),((15 5 2 3, 40 10 2 3, 10 20 2 3, 5 10 2 3, 15 5 2 3)))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) MULTIPOLYGON ZM XYZMlibspatialite-4.3.0a/test/sql_stmt_tests/makeline26.testcase0000664000175000017500000000050712544707704021205 00000000000000makeline - MULTIPOINT (XYZM valid - reverse order) :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("MULTIPOINTZM(1 2 10 100,3 4 11 111)"), 0)) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("MULTIPOINTZM(1 2 10 100,3 4 11 111)"), 0)) LINESTRING ZM(3 4 11 111, 1 2 10 100) libspatialite-4.3.0a/test/sql_stmt_tests/dirfrompath4.testcase0000664000175000017500000000027112544707704021651 00000000000000DirNameFromPath - DOUBLE :memory: #use in-memory database SELECT DirNameFromPath(zeroblob(10)); 1 # rows (not including the header row) 1 # columns DirNameFromPath(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/rotatecoords2.testcase0000664000175000017500000000127212544707704022042 00000000000000rotate coords - PointZ :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("POINTZ(1 2 1.5)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) POINT Z(1 2 1.5) POINT Z(2 -1 1.5) POINT Z(-1 -2 1.5) POINT Z(-2 1 1.5) (NULL) (NULL) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson29.testcase0000664000175000017500000000075512544707704021760 00000000000000FromGeoJSON - linestringZ with SRID and bbox :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"LineString","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[1,2,4,5],"coordinates":[[1,2,2.3],[4,5,1.2]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"LineString","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[1,2,4,5],"coordinates":[[1,2,2.3],[4,5,1.2]]}')):0 SRID=3003;LINESTRING(1 2 2.3,4 5 1.2) libspatialite-4.3.0a/test/sql_stmt_tests/collect43.testcase0000664000175000017500000000120712544707704021042 00000000000000collect - PolygonZ, Polygon :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONZ((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGON((4 5, 1 2, 4 2, 4 5),(2 3, 3 4, 3 3, 2 3))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONZ((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGON((4 5, 1 2, 4 2, 4 5),(2 3, 3 4, 3 3, 2 3))"))) MULTIPOLYGON Z(((1 2 4, 3 4 2, 3 2 3, 1 2 4), (1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4)), ((4 5 0, 1 2 0, 4 2 0, 4 5 0), (2 3 0, 3 4 0, 3 3 0, 2 3 0))) libspatialite-4.3.0a/test/sql_stmt_tests/sridprojection4.testcase0000664000175000017500000000026312544707704022371 00000000000000SridGetProjection() - DOUBLE SRID :memory: #use in-memory database SELECT SridGetProjection(1.0) 1 # rows (not including the header row) 1 # columns SridGetProjection(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext11.testcase0000664000175000017500000000047412544707704022135 00000000000000geomfromtext11 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTION(MULTIPOINT((0 1), (2 3), (4 5)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTION(MULTIPOINT((0 1), (2 3), (4 5)))')); GEOMETRYCOLLECTION(POINT(0 1), POINT(2 3), POINT(4 5)) libspatialite-4.3.0a/test/sql_stmt_tests/mbr27.testcase0000664000175000017500000000044512544707704020202 00000000000000MbrDisjoint - Line + Point up :memory: #use in-memory database SELECT MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(0.5 6)")); 1 # rows (not including the header row) 1 # columns MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(0.5 6)")) # header 1libspatialite-4.3.0a/test/sql_stmt_tests/checkfontfacename2.testcase0000664000175000017500000000030312544707704022750 00000000000000CheckFontFaceName - NULL font NEW:memory: #use in-memory database SELECT CheckFontFaceName('arial', NULL); 1 # rows (not including the header row) 1 # columns CheckFontFaceName('arial', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt14.testcase0000664000175000017500000000043312544707704021251 00000000000000fromewkt14 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;MULTIPOINT((0 1 9), (2 3 9), (4 5 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;MULTIPOINT((0 1 9), (2 3 9), (4 5 9))')); MULTIPOINT Z(0 1 9, 2 3 9, 4 5 9) libspatialite-4.3.0a/test/sql_stmt_tests/casttoint1.testcase0000664000175000017500000000024212544707704021335 00000000000000CastToInteger() - NULL :memory: #use in-memory database SELECT CastToInteger(NULL) 1 # rows (not including the header row) 1 # columns CastToInteger(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/badKML2.testcase0000664000175000017500000000043612544707704020425 00000000000000bad KML: Linestring :memory: #use in-memory database SELECT GeomFromKML('1.1,2.2 3.3,4.41.1,2.2 3.3,4.40 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 1')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 1')):0 SRID=4326;POLYGON((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1)) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype7.testcase0000664000175000017500000000045212544707704021167 00000000000000geometrytype - 3 + 2 :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT 3 + 2 as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) (NULL) (NULL) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/atmscale3.testcase0000664000175000017500000000030512544707704021120 00000000000000ATM_Scale() - invalid 1st arg :memory: #use in-memory database SELECT ATM_Scale(ATM_Create(), 'a', 2.0) 1 # rows (not including the header row) 1 # columns ATM_Scale(ATM_Create(), 'a', 2.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb22.testcase0000664000175000017500000000150212544707704021017 00000000000000fromWkb - MULTIPOLYGON :memory: #use in-memory database SELECT Hex(MultiPolygonFromWkb(AsBinary(MPolyFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))", 4326)))) 1 # rows (not including the header row) 1 # columns Hex(MultiPolygonFromWkb(AsBinary(MPolyFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))", 4326)))) 00010000000000000000000014400000000000001440000000000080464000000000000044407C0600000002000000690300000001000000040000000000000000003E40000000000000344000000000000024400000000000004440000000000080464000000000000044400000000000003E400000000000003440690300000001000000050000000000000000002E4000000000000014400000000000004440000000000000244000000000000024400000000000003440000000000000144000000000000024400000000000002E400000000000001440FE libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr28.testcase0000664000175000017500000000037112544707704021056 00000000000000garsmbr - 361HN38 :memory: #use in-memory database SELECT AsText(GARSMbr("361HN38")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("361HN38")) POLYGON((0.083333 0, 0.166667 0, 0.166667 0.083333, 0.083333 0.083333, 0.083333 0)) libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat8.testcase0000664000175000017500000000042712544707704022553 00000000000000normalizelonlat- out of range negative latitude :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(150 -95)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(150 -95)", 4326))) POINT(150 -85) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector14.testcase0000664000175000017500000000034412544707704023276 00000000000000makecircularsector14 - BLOB stop :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, 30, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, 30, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttomulti6.testcase0000664000175000017500000000062312544707704021705 00000000000000casttomulti - POLYGON and POINT :memory: #use in-memory database SELECT AsText(CastToMulti(GeomFromText("GEOMETRYCOLLECTION(POLYGON((0 1, 2 1, 2 4, 0 4, 0 1)),POINT(4 2.3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMulti(GeomFromText("GEOMETRYCOLLECTION(POLYGON((0 1, 2 1, 2 4, 0 4, 0 1)),POINT(4 2.3))"))) GEOMETRYCOLLECTION(POINT(4 2.3), POLYGON((0 1, 2 1, 2 4, 0 4, 0 1))) libspatialite-4.3.0a/test/sql_stmt_tests/NumPoints7.testcase0000664000175000017500000000031112544707704021264 00000000000000NumPoints - Simple line Z :memory: #use in-memory database SELECT NumPoints(GeomFromText("POINT(0 0)")); 1 # rows (not including the header row) 1 # column NumPoints(GeomFromText("POINT(0 0)")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/assvg7.testcase0000664000175000017500000000036412544707704020463 00000000000000assvg - 3 arg negative precision :memory: #use in-memory database SELECT assvg(GeomFromText("Point(1.3759 2)", 4326), 0, -1) 1 # rows (not including the header row) 1 # columns assvg(GeomFromText("Point(1.3759 2)", 4326), 0, -1) cx="1" cy="-2" libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc13.testcase0000664000175000017500000000033612544707704022545 00000000000000makeellipticarc13 - text start :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, 'alpha', 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, 'alpha', 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml34.testcase0000664000175000017500000000103012544707704021052 00000000000000FromGML - poslist linestring :memory: #use in-memory database SELECT AsText(GeomFromGml('45.67 88.56 55.56 89.44')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('45.67 88.56 55.56 89.44')):0 LINESTRING(45.67 88.56, 55.56 89.44) libspatialite-4.3.0a/test/sql_stmt_tests/collect58.testcase0000664000175000017500000000032112544707704021044 00000000000000collect - step bad blob :memory: #use in-memory database SELECT AsText(Collect(geom)) FROM (SELECT zeroblob(300) as geom) dummy; 1 # rows (not including the header row) 1 # columns AsText(Collect(geom)) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/elemgeo5.testcase0000664000175000017500000000041712544707704020752 00000000000000ElementaryGeometries() - NULL multi-id :memory: #use in-memory database SELECT ElementaryGeometries('in_table', 'geom', 'out_table', 'id', NULL); 1 # rows (not including the header row) 1 # columns ElementaryGeometries('in_table', 'geom', 'out_table', 'id', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmscale5.testcase0000664000175000017500000000075212544707704021130 00000000000000ATM_Scale() - valid 3d (int) :memory: #use in-memory database SELECT Hex(ATM_Scale(ATM_Create(), 1, 2, 3)) 1 # rows (not including the header row) 1 # columns Hex(ATM_Scale(ATM_Create(), 1, 2, 3)) 0001000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A00000000000000403A00000000000000003A00000000000000003A00000000000000003A00000000000000003A00000000000008403A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/us_ch_m.testcase0000664000175000017500000000023712544707704020665 00000000000000US chains to metres :memory: #use in-memory database SELECT CvtFromUsCh(100); 1 # rows (not including the header row) 1 # columns CvtFromUsCh(100); 2011.684:8 libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson4.testcase0000664000175000017500000000042012544707704021656 00000000000000FromGeoJSON - PointZ :memory: #use in-memory database SELECT AsText(GeomFromGeoJSON('{"type":"Point","coordinates":[-1,1,2.3]}')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGeoJSON('{"type":"Point","coordinates":[-1,1,2.3]}')):0 POINT Z(-1 1 2.3) libspatialite-4.3.0a/test/sql_stmt_tests/swapcoords6.testcase0000664000175000017500000000055512544707704021525 00000000000000swapcoords6 :memory: #use in-memory database SELECT AsText(SwapCoords(GeomFromText("LINESTRINGM(136 -35 1, 135.2 -34.5 2, 136 -35.2 3, 136 -36 4)"))); 1 # rows (not including the header row) 1 # columns AsText(SwapCoords(GeomFromText("LINESTRINGM(136 -35 1, 135.2 -34.5 2, 136 -35.2 3, 136 -36 4)"))); LINESTRING M(-35 136 1, -34.5 135.2 2, -35.2 136 3, -36 136 4) libspatialite-4.3.0a/test/sql_stmt_tests/npoints1.testcase0000664000175000017500000000025012544707704021016 00000000000000npoints - bad blob :memory: #use in-memory database SELECT ST_NPoints(zeroblob(99)) 1 # rows (not including the header row) 1 # columns ST_NPoints(zeroblob(99)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmtrans6.testcase0000664000175000017500000000100512544707704021161 00000000000000ATM_Translate() - valid 3d (double) :memory: #use in-memory database SELECT Hex(ATM_Translate(ATM_Create(), 1.0, 2.0, 3.0)) 1 # rows (not including the header row) 1 # columns Hex(ATM_Translate(ATM_Create(), 1.0, 2.0, 3.0)) 0001000000000000F03F3A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A000000000000F03F3A00000000000000003A00000000000000403A00000000000000003A00000000000000003A000000000000F03F3A00000000000008403A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/reverse5.testcase0000664000175000017500000000203712544707704021010 00000000000000reverse - GeometryCollection XYM :memory: #use in-memory database SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 13, 9 9 13), POLYGONM((10 10 11, 15 10 13, 13 13 13, 10 10 11), (11 10.5 10, 13 10.5 11, 13 11.3 13, 11 10.5 10)), POLYGONM((20 20 10, 27 20 11, 22 18 13, 20 20 10), (21 19.5 11, 27 19.5 13, 22 18.5 13, 21 19.5 11)))", 4326))); 1 # rows (not including the header row) 1 # columns AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 5 6 11, 7 8 13, 9 9 13), POLYGONM((10 10 11, 15 10 13, 13 13 13, 10 10 11), (11 10.5 10, 13 10.5 11, 13 11.3 13, 11 10.5 10)), POLYGONM((20 20 10, 27 20 11, 22 18 13, 20 20 10), (21 19.5 11, 27 19.5 13, 22 18.5 13, 21 19.5 11)))", 4326))) SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 10),LINESTRINGM(9 9 13,7 8 13,5 6 11,3 4 10),POLYGONM((10 10 11,13 13 13,15 10 13,10 10 11),(11 10.5 10,13 11.3 13,13 10.5 11,11 10.5 10)),POLYGONM((20 20 10,22 18 13,27 20 11,20 20 10),(21 19.5 11,22 18.5 13,27 19.5 13,21 19.5 11))) libspatialite-4.3.0a/test/sql_stmt_tests/dimension7.testcase0000664000175000017500000000051512544707704021323 00000000000000dimension7 - MPOLYGON :memory: #use in-memory database SELECT Dimension(MPolyFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))")) 1 # rows (not including the header row) 1 # columns Dimension(MPolyFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))")) 2libspatialite-4.3.0a/test/sql_stmt_tests/reflectcoords7.testcase0000664000175000017500000000035312544707704022174 00000000000000reflectcoords7 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 1, -23.3)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 1, -23.3)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ring4.testcase0000664000175000017500000000061712544707704020275 00000000000000ExteriorRing - Simple Polygon M :memory: #use in-memory database SELECT AsText(ExteriorRing(GeomFromText("POLYGONM((136 -35 4, 135.2 -34.5 6.5, 136 -35.2 9.4, 136 -35 4))"))); 1 # rows (not including the header row) 1 # columns AsText(ExteriorRing(GeomFromText("POLYGONM((136 -35 4, 135.2 -34.5 6.5, 136 -35.2 9.4, 136 -35 4))"))); LINESTRING M(136 -35 4, 135.2 -34.5 6.5, 136 -35.2 9.4, 136 -35 4) libspatialite-4.3.0a/test/sql_stmt_tests/clonetable9.testcase0000664000175000017500000000047712544707704021457 00000000000000CloneTable() - NULL option #5 :memory: #use in-memory database SELECT CloneTable('prefix', 'in_table', 'out_table', 1, 'option-1', 'option-2', 'opt3', 'opt4', NULL) 1 # rows (not including the header row) 1 # columns CloneTable('prefix', 'in_table', 'out_table', 1, 'option-1', 'option-2', 'opt3', 'opt4', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/removepoint5.testcase0000664000175000017500000000030412544707704021677 00000000000000ST_RemovePoint() - BLOB line :memory: #use in-memory database SELECT ST_RemovePoint(zeroblob(4), NULL) 1 # rows (not including the header row) 1 # columns ST_RemovePoint(zeroblob(4), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/gml12.testcase0000664000175000017500000000167212544707704020176 00000000000000GML MultiPolygon Z: no SRID :memory: #use in-memory database SELECT AsGML(3, GeomFromText("MULTIPOLYGONZ(((10 10 100, 20 10 101, 20 20 102, 10 20 103, 10 10 100)), ((85 85 80, 90 85 90, 90 90 95, 85 90 90, 85 85 80)))")); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("MULTIPOLYGONZ(((10 10 100, 20 10 101, 20 20 102, 10 20 103, 10 10 100)), ((85 85 80, 90 85 90, 90 90 95, 85 90 90, 85 85 80)))")) 10 10 100 20 10 101 20 20 102 10 20 103 10 10 10085 85 80 90 85 90 90 90 95 85 90 90 85 85 80:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate1.testcase0000664000175000017500000000067112544707704021300 00000000000000ATM_Create() - void :memory: #use in-memory database SELECT Hex(ATM_Create()) 1 # rows (not including the header row) 1 # columns Hex(ATM_Create()) 0001000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/scalecoords4.testcase0000664000175000017500000000145412544707704021637 00000000000000scale coords - LINESTRINGM :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("LINESTRINGM(1 2 1, 4 5 2)") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) LINESTRING M(0 0 1, 0 0 2) LINESTRING M(0 0 1, 0 0 2) LINESTRING M(2 6 1, 8 15 2) LINESTRING M(1 -2 1, 4 -5 2) (NULL) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/assvg24.testcase0000664000175000017500000000054012544707704020536 00000000000000assvg - relative/absolute MultiLinestring :memory: #use in-memory database SELECT assvg(geom, 1) AS rel, assvg(geom, 0) AS abs FROM (SELECT GeomFromText("MULTILINESTRING((10 10, 15 10), (10 15, 10 10))", 4326) AS geom) dummy; 1 # rows (not including the header row) 2 # columns rel abs M 10 -10 l 5 0 M 10 -15 l 0 5 M 10 -10 L 15 -10 M 10 -15 L 10 -10 libspatialite-4.3.0a/test/sql_stmt_tests/buildmbr14.testcase0000664000175000017500000000026712544707704021220 00000000000000buildmbr - null args, no SRID :memory: #use in-memory database SELECT BuildMbr(NULL, 4, 2, NULL) 1 # rows (not including the header row) 1 # columns BuildMbr(NULL, 4, 2, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttotext5.testcase0000664000175000017500000000033012544707704021531 00000000000000CastToText() - DOUBLE :memory: #use in-memory database SELECT CastToText(123.5), TypeOf(CastToText(123.5)) 1 # rows (not including the header row) 2 # columns CastToText(123.5) TypeOf(CastToText(123.5)) 123.5 text libspatialite-4.3.0a/test/sql_stmt_tests/makearc5.testcase0000664000175000017500000000027212544707704020737 00000000000000makearc5 - text cy :memory: #use in-memory database SELECT MakeArc(0, 'alpha', 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeArc(0, 'alpha', 100, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttomultipoint2.testcase0000664000175000017500000000025112544707704022750 00000000000000casttomultipoint - non-blob :memory: #use in-memory database SELECT CastToMultiPoint(99) 1 # rows (not including the header row) 1 # columns CastToMultiPoint(99) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/decodeurl1.testcase0000664000175000017500000000022512544707704021274 00000000000000DecodeURL - NULL :memory: #use in-memory database SELECT DecodeURL(NULL); 1 # rows (not including the header row) 1 # columns DecodeURL(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/pointfromtext1.testcase0000664000175000017500000000042112544707704022246 00000000000000pointfromtext1 :memory: #use in-memory database SELECT AsWkt(PointFromText("POINT(-71.1043443253471 42.315067601582900)"), 4); 1 # rows (not including the header row) 1 # columns AsWkt(PointFromText("POINT(-71.1043443253471 42.315067601582900)"), 4) POINT(-71.1043 42.3151)libspatialite-4.3.0a/test/sql_stmt_tests/makeellipse6.testcase0000664000175000017500000000031012544707704021621 00000000000000makeellipse6 - BLOB cy :memory: #use in-memory database SELECT MakeEllipse(0, zeroblob(4), 100, 200); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, zeroblob(4), 100, 200) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry69.testcase0000664000175000017500000000101512544707704023031 00000000000000CompressGeometry - GEOMETRYCOLLECTION ZM (1 Polygon) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((10 10 77 7, 11 10 88 8, 11 11 99 9, 10 11 88 8, 10 10 77 7)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((10 10 77 7, 11 10 88 8, 11 11 99 9, 10 11 88 8, 10 10 77 7)))", 4326))) GEOMETRYCOLLECTION ZM(POLYGON ZM((10 10 77 7, 11 10 88 8, 11 11 99 9, 10 11 88 8, 10 10 77 7))) libspatialite-4.3.0a/test/sql_stmt_tests/collect53.testcase0000664000175000017500000000140612544707704021044 00000000000000collect - PolygonZM, PolygonZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONZM((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1),(1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1))"), GeomFromText("POLYGONZ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONZM((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1),(1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1))"), GeomFromText("POLYGONZ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))) MULTIPOLYGON ZM(((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1), (1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1)), ((4 5 3.2 0, 1 2 4.6 0, 4 2 3.1 0, 4 5 3.2 0), (2 3 4 0, 3 4 1 0, 3 3 1 0, 2 3 4 0))) libspatialite-4.3.0a/test/sql_stmt_tests/casttomultipolygon3.testcase0000664000175000017500000000033412544707704023311 00000000000000casttomultipolygon - POINT :memory: #use in-memory database SELECT CastToMultiPolygon(GeomFromText("POINT(1 2)")) 1 # rows (not including the header row) 1 # columns CastToMultiPolygon(GeomFromText("POINT(1 2)")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext36.testcase0000664000175000017500000000114012544707704022133 00000000000000geomfromtext36 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTION(POINT(9 9), GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)), POINT(8 8), GEOMETRYCOLLECTION(POINT(3 3), LINESTRING(4 4, 5 5)), POINT(7 7))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTION(POINT(9 9), GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)), POINT(8 8), GEOMETRYCOLLECTION(POINT(3 3), LINESTRING(4 4, 5 5)), POINT(7 7))')); GEOMETRYCOLLECTION(POINT(9 9), POINT(0 0), POINT(8 8), POINT(3 3), POINT(7 7), LINESTRING(1 1, 2 2), LINESTRING(4 4, 5 5)) libspatialite-4.3.0a/test/sql_stmt_tests/casttotext10.testcase0000664000175000017500000000036012544707704021610 00000000000000CastToText() - INTEGER, zero_pad :memory: #use in-memory database SELECT CastToText(123, 10), TypeOf(CastToText(123, 10)) 1 # rows (not including the header row) 2 # columns CastToText(123, 10) TypeOf(CastToText(123, 10)) 0000000123 text libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatetrans6.testcase0000664000175000017500000000077312544707704022360 00000000000000ATM_CreateTranslate() - valid 3d (double) :memory: #use in-memory database SELECT Hex(ATM_CreateTranslate(1.0, 2.0, 3.0)) 1 # rows (not including the header row) 1 # columns Hex(ATM_CreateTranslate(1.0, 2.0, 3.0)) 0001000000000000F03F3A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A000000000000F03F3A00000000000000003A00000000000000403A00000000000000003A00000000000000003A000000000000F03F3A00000000000008403A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/ewkb2.testcase0000664000175000017500000000036312544707704020262 00000000000000EWkb: Point XYZ :memory: #use in-memory database SELECT AsText(GeomFromEWkb('01010000A0E61000009A9999999999F13F9A999999999901400000000000005940')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom POINT Z(1.1 2.2 100) libspatialite-4.3.0a/test/sql_stmt_tests/badwkt2.testcase0000664000175000017500000000035612544707704020610 00000000000000bad WKT: Linestring :memory: #use in-memory database SELECT GeomFromText("LINESTRING(11.2 12.3, 11.3 12.4, 11.4 12.5"); 1 # rows (not including the header row) 1 # columns GeomFromText("LINESTRING(11.2 12.3, 11.3 12.4, 11.4 12.5") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/setpoint16.testcase0000664000175000017500000000042712544707704021265 00000000000000ST_SetPoint() - invalid index :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 3, MakePoint(2, 0)) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 3, MakePoint(2, 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepointzm-null8.testcase0000664000175000017500000000036012544707704022643 00000000000000makepointzm-null8 :memory: #use in-memory database SELECT AsText(MakePointZM(26.0, 42.3150676015829, 'alpha', 'beta')); 1 # rows (not including the header row) 1 # columns AsText(MakePointZM(26.0, 42.3150676015829, 'alpha', 'beta')) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttolinestring5.testcase0000664000175000017500000000047012544707704022730 00000000000000casttolinestring - MULTILINESTRING, 2 linestrings :memory: #use in-memory database SELECT AsText(CastToLineString(GeomFromText("MULTILINESTRING((4 1, 3 4),(4 6, 3 1))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToLineString(GeomFromText("MULTILINESTRING((4 1, 3 4),(4 6, 3 1))"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints9.testcase0000664000175000017500000000044212544707704022556 00000000000000geometry constraints - 4 arg, POINT vs XYM :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("Point(1 2)", 4326), "POINT", 4326, "XYM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("Point(1 2)", 4326), "POINT", 4326, "XYM") 0 libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr18.testcase0000664000175000017500000000025312544707704021054 00000000000000garsmbr - out of bounds longitude :memory: #use in-memory database SELECT GARSMbr("721AA11") 1 # rows (not including the header row) 1 # columns GARSMbr("721AA11") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/buildcirclembr3.testcase0000664000175000017500000000034612544707704022316 00000000000000buildcirclembr - int args :memory: #use in-memory database SELECT AsText(BuildCircleMbr(5, 6, 1, 4326)) 1 # rows (not including the header row) 1 # columns AsText(BuildCircleMbr(5, 6, 1, 4326)) POLYGON((4 5, 6 5, 6 7, 4 7, 4 5)) libspatialite-4.3.0a/test/sql_stmt_tests/getfontfamily.testcase0000664000175000017500000000026612544707704022122 00000000000000GetFontFamily - standard NEW:memory: #use in-memory database SELECT GetFontFamily(zeroblob(4)); 1 # rows (not including the header row) 1 # columns GetFontFamily(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype2.testcase0000664000175000017500000000045612544707704021166 00000000000000geometrytype2 - POINTZ :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("POINTZ(-71.1043443253471 42.315067601582900 26.2)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) POINT Z XYZlibspatialite-4.3.0a/test/sql_stmt_tests/setendpoint12.testcase0000664000175000017500000000055612544707704021753 00000000000000ST_SetEndPoint() - not a point :memory: #use in-memory database SELECT ST_SetEndPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), GeomFromText('MULTILINESTRING(10 10, 11 10), (1 1, 2 2))')) 1 # rows (not including the header row) 1 # columns ST_SetEndPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), GeomFromText('MULTILINESTRING(10 10, 11 10), (1 1, 2 2))')) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract9.testcase0000664000175000017500000000032012544707704022352 00000000000000Collection Extract - bad blob (NULL) :memory: #use in-memory database SELECT CollectionExtract(zeroblob(40), 3); 1 # rows (not including the header row) 1 # columns CollectionExtract(zeroblob(40), 3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype21.testcase0000664000175000017500000000057512544707704021251 00000000000000geometrytype - POLYGON :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("POLYGON ((30 20, 10 40, 45 40, 30 20),(15 5, 40 10, 10 20, 5 10, 15 5))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) POLYGON XY POLYGON libspatialite-4.3.0a/test/sql_stmt_tests/setstartpoint3.testcase0000664000175000017500000000027412544707704022257 00000000000000ST_SetStartPoint() - DOUBLE line :memory: #use in-memory database SELECT ST_SetStartPoint(1.5, NULL) 1 # rows (not including the header row) 1 # columns ST_SetStartPoint(1.5, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry38.testcase0000664000175000017500000000055712544707704023037 00000000000000CompressGeometry - MULTILINESTRING :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTILINESTRING((10 10, 11 11), (15 15, 16 16))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTILINESTRING((10 10, 11 11), (15 15, 16 16))", 4326))) MULTILINESTRING((10 10, 11 11), (15 15, 16 16)) libspatialite-4.3.0a/test/sql_stmt_tests/setpoint22.testcase0000664000175000017500000000047612544707704021266 00000000000000ST_SetPoint() - M :memory: #use in-memory database SELECT AsText(SetPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2, 1 1 3)'), 1, MakePoint(2, 3))) 1 # rows (not including the header row) 1 # columns AsText(SetPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2, 1 1 3)'), 1, MakePoint(2, 3))) LINESTRING M(0 0 1, 2 3 0, 1 1 3) libspatialite-4.3.0a/test/sql_stmt_tests/m_yd.testcase0000664000175000017500000000022412544707704020174 00000000000000metres to yards :memory: #use in-memory database SELECT CvtToYd(1.0); 1 # rows (not including the header row) 1 # columns CvtToYd(1.0); 1.0936133:8 libspatialite-4.3.0a/test/sql_stmt_tests/todms3.testcase0000664000175000017500000000027412544707704020462 00000000000000todms - BLOB longitude :memory: #use in-memory database SELECT LongLatToDMS(zeroblob(4), 42.5); 1 # rows (not including the header row) 1 # columns LongLatToDMS(zeroblob(4), 42.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ring23.testcase0000664000175000017500000000076612544707704020363 00000000000000InteriorRingN - POLGON M second interior :memory: #use in-memory database SELECT AsText(InteriorRingN(GeomFromText("POLYGONM((0 0 0, 0 4 1, 4 4 2, 4 0 3, 0 0 0),(1 1 2, 1 3 2, 3 3 2, 3 1 2, 1 1 2),(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 1))"), 2)); 1 # rows (not including the header row) 1 # columns AsText(InteriorRingN(GeomFromText("POLYGONM((0 0 0, 0 4 1, 4 4 2, 4 0 3, 0 0 0),(1 1 2, 1 3 2, 3 3 2, 3 1 2, 1 1 2),(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 1))"), 2)) LINESTRING M(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 1) libspatialite-4.3.0a/test/sql_stmt_tests/wkttosql1.testcase0000664000175000017500000000027712544707704021225 00000000000000ST_WKTToSQL :memory: #use in-memory database SELECT AsEWKT(ST_WKTToSQL("Point(1 2)")) 1 # rows (not including the header row) 1 # columns AsEWKT(ST_WKTToSQL("Point(1 2)")) SRID=0;POINT(1 2) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipse14.testcase0000664000175000017500000000030312544707704021702 00000000000000makeellipse14 - NULL srid :memory: #use in-memory database SELECT MakeEllipse(0, 0, 100, 200, NULL); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, 100, 200, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/scalecoords8.testcase0000664000175000017500000000161712544707704021644 00000000000000scale coords - POLYGONM :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("POLYGONM((1 2 1, 1 3 1, 2 3 2, 2 2 2, 1 2 1))") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) POLYGON M((0 0 1, 0 0 1, 0 0 2, 0 0 2, 0 0 1)) POLYGON M((0 0 1, 0 0 1, 0 0 2, 0 0 2, 0 0 1)) POLYGON M((2 6 1, 2 9 1, 4 9 2, 4 6 2, 2 6 1)) POLYGON M((1 -2 1, 1 -3 1, 2 -3 2, 2 -2 2, 1 -2 1)) (NULL) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttodouble4.testcase0000664000175000017500000000034512544707704022024 00000000000000CastToDouble() - TEXT valid :memory: #use in-memory database SELECT CastToDouble('123'), TypeOf(CastToDouble('123')) 1 # rows (not including the header row) 2 # columns CastToDouble('123') TypeOf(CastToDouble('123')) 123.0 real libspatialite-4.3.0a/test/sql_stmt_tests/geomtype49.testcase0000664000175000017500000000065412544707704021261 00000000000000geometrytype - GEOMETRYCOLLECTIONM - one POLYGONM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONM(POLYGONM((30 20 1, 10 40 1, 45 40 1, 30 20 1)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION M XYM GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/forcenull11.testcase0000664000175000017500000000030012544707704021372 00000000000000ForceAsNull() - TEXT/BLOB :memory: #use in-memory database SELECT ForceAsNull('alpha', zeroblob(4)) 1 # rows (not including the header row) 1 # columns ForceAsNull('alpha', zeroblob(4)) alpha libspatialite-4.3.0a/test/sql_stmt_tests/fromgml27.testcase0000664000175000017500000000053712544707704021067 00000000000000FromGML - non-WGS84 Point :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2')) 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2')):0 SRID=3003;POINT(1 2) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint14.testcase0000664000175000017500000000043612544707704021220 00000000000000ST_AddPoint() - BLOB index :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), zeroblob(4)) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry28.testcase0000664000175000017500000000101712544707704023026 00000000000000CompressGeometry - POLYGON Z :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("POLYGONZ((0 0 100, 5 0 101, 5 5 102, 0 5 103, 0 0 100), (1 1 100, 2 1 101, 2 2 102, 1 2 103, 1 1 100))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("POLYGONZ((0 0 100, 5 0 101, 5 5 102, 0 5 103, 0 0 100), (1 1 100, 2 1 101, 2 2 102, 1 2 103, 1 1 100))", 4326))) POLYGON Z((0 0 100, 5 0 101, 5 5 102, 0 5 103, 0 0 100), (1 1 100, 2 1 101, 2 2 102, 1 2 103, 1 1 100)) libspatialite-4.3.0a/test/sql_stmt_tests/scalecoords5.testcase0000664000175000017500000000150612544707704021636 00000000000000scale coords - LINESTRINGZM :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("LINESTRINGZM(1 2 1 3, 4 5 2 4)") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) LINESTRING ZM(0 0 1 3, 0 0 2 4) LINESTRING ZM(0 0 1 3, 0 0 2 4) LINESTRING ZM(2 6 1 3, 8 15 2 4) LINESTRING ZM(1 -2 1 3, 4 -5 2 4) (NULL) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircle4.testcase0000664000175000017500000000025512544707704021433 00000000000000makecircle4 - NULL cy :memory: #use in-memory database SELECT MakeCircle(0, NULL, 100); 1 # rows (not including the header row) 1 # columns MakeCircle(0, NULL, 100) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/st_y9.testcase0000664000175000017500000000044212544707704020315 00000000000000ST_Y9 :memory: #use in-memory database SELECT ST_Y(MakePointZM(-71.1043443253471, 42.3150676015829, 0.0038723129645, 12.6389, 4326)); 1 # rows (not including the header row) 1 # columns ST_Y(MakePointZM(-71.1043443253471, 42.3150676015829, 0.0038723129645, 12.6389, 4326)) 42.3150676015829 libspatialite-4.3.0a/test/sql_stmt_tests/badwkt4.testcase0000664000175000017500000000033012544707704020602 00000000000000bad WKT: MultiPoint :memory: #use in-memory database SELECT GeomFromText("MULTIPOINT(11.2 12.3, 11.3 12.4"); 1 # rows (not including the header row) 1 # columns GeomFromText("MULTIPOINT(11.2 12.3, 11.3 12.4") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml4.testcase0000664000175000017500000000054612544707704021002 00000000000000FromGML - Point, no namespace :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2')):0 SRID=4326;POINT(1 2) libspatialite-4.3.0a/test/sql_stmt_tests/decodeurl2.testcase0000664000175000017500000000021612544707704021275 00000000000000DecodeURL - INT :memory: #use in-memory database SELECT DecodeURL(1); 1 # rows (not including the header row) 1 # columns DecodeURL(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/badEWKT4.testcase0000664000175000017500000000035512544707704020556 00000000000000bad EWKT: MultiPoint :memory: #use in-memory database SELECT GeomFromEWKT("SRID=4326;MULTIPOINT(11.2 12.3, 11.3 12.4"); 1 # rows (not including the header row) 1 # columns GeomFromEWKT("SRID=4326;MULTIPOINT(11.2 12.3, 11.3 12.4") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat14.testcase0000664000175000017500000000037712544707704022634 00000000000000normalizelonlat- in range 290 :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(4 290)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(4 290)", 4326))) POINT(4 -70) libspatialite-4.3.0a/test/sql_stmt_tests/dissolve9.testcase0000664000175000017500000000050512544707704021167 00000000000000dissolve - POINT Z :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POINTZ(1 2 4.3)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) POINT Z(1 2 4.3) POINT Z(1 2 4.3)libspatialite-4.3.0a/test/sql_stmt_tests/casttoblob8.testcase0000664000175000017500000000030312544707704021466 00000000000000CastToBlob() - TEXT hex_input :memory: #use in-memory database SELECT CastToBlob('0129abCF', 'alpha') 1 # rows (not including the header row) 1 # columns CastToBlob('0129abCF', 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry23.testcase0000664000175000017500000000045012544707704023021 00000000000000CompressGeometry - LINESTRING :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("LINESTRING(1 2, 3 4, 5 6)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("LINESTRING(1 2, 3 4, 5 6)", 4326))) LINESTRING(1 2, 3 4, 5 6) libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints28.testcase0000664000175000017500000000076712544707704022651 00000000000000geometry constraints - GEOMETRY :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("GEOMETRYCOLLECTIONZM(MULTIPOLYGONZM(((0 0 4 0, 1 0 4 0, 1 1 4 0, 0 0 4 0)),((0 0 4 0, -1 0 4 0, -1 -1 4 0, 0 0 4 0))))", 4326), "GEOMETRY", 4326, "XYZM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("GEOMETRYCOLLECTIONZM(MULTIPOLYGONZM(((0 0 4 0, 1 0 4 0, 1 1 4 0, 0 0 4 0)),((0 0 4 0, -1 0 4 0, -1 -1 4 0, 0 0 4 0))))", 4326), "GEOMETRY", 4326, "XYZM") 1 libspatialite-4.3.0a/test/sql_stmt_tests/clonetable6.testcase0000664000175000017500000000040712544707704021445 00000000000000CloneTable() - NULL option #2 :memory: #use in-memory database SELECT CloneTable('prefix', 'in_table', 'out_table', 1, 'option-1', NULL) 1 # rows (not including the header row) 1 # columns CloneTable('prefix', 'in_table', 'out_table', 1, 'option-1', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ring14.testcase0000664000175000017500000000030612544707704020351 00000000000000NumInteriorRings - bad blob (error) :memory: #use in-memory database SELECT NumInteriorRings(zeroblob(12)); 1 # rows (not including the header row) 1 # columns NumInteriorRings(zeroblob(12)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asbinary10.testcase0000664000175000017500000000044612544707704021223 00000000000000asbinary - POINTZM :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("POINTZM(1 2 3 0)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("POINTZM(1 2 3 0)", 4326))) 01B90B0000000000000000F03F000000000000004000000000000008400000000000000000 libspatialite-4.3.0a/test/sql_stmt_tests/makearc6.testcase0000664000175000017500000000030212544707704020732 00000000000000makearc6 - BLOB cy :memory: #use in-memory database SELECT MakeArc(0, zeroblob(4), 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeArc(0, zeroblob(4), 100, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/mbrminmax2.testcase0000664000175000017500000000021412544707704021317 00000000000000MbrMaxX- non-blob :memory: #use in-memory database SELECT MbrMaxX(3) 1 # rows (not including the header row) 1 # columns MbrMaxX(3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridunit4.testcase0000664000175000017500000000024112544707704021170 00000000000000SridGetUnit() - DOUBLE SRID :memory: #use in-memory database SELECT SridGetUnit(1.0) 1 # rows (not including the header row) 1 # columns SridGetUnit(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/clonetable8.testcase0000664000175000017500000000045712544707704021454 00000000000000CloneTable() - NULL option #4 :memory: #use in-memory database SELECT CloneTable('prefix', 'in_table', 'out_table', 1, 'option-1', 'option-2', 'opt3', NULL) 1 # rows (not including the header row) 1 # columns CloneTable('prefix', 'in_table', 'out_table', 1, 'option-1', 'option-2', 'opt3', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/togars1.testcase0000664000175000017500000000034212544707704020625 00000000000000togars - southwest :memory: #use in-memory database SELECT ToGARS(GeomFromText("Point(-179.999 -89.999)", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("Point(-179.999 -89.999)", 4326)) 001AA37libspatialite-4.3.0a/test/sql_stmt_tests/casttomultipoint6.testcase0000664000175000017500000000051212544707704022754 00000000000000casttomultipoint - GEOMETRYCOLLECTION - 2 points :memory: #use in-memory database SELECT AsText(CastToMultiPoint(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2),POINT(4 8))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiPoint(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2),POINT(4 8))"))) MULTIPOINT(1 2, 4 8) libspatialite-4.3.0a/test/sql_stmt_tests/dropgeo8.testcase0000664000175000017500000000032312544707704020773 00000000000000DropGeoTable - table (not existing) - NULL transaction :memory: #use in-memory database SELECT DropGeoTable('table', NULL); 1 # rows (not including the header row) 1 # columns DropGeoTable('table', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/in_m.testcase0000664000175000017500000000022112544707704020163 00000000000000inches to metres :memory: #use in-memory database SELECT CvtFromIn(100); 1 # rows (not including the header row) 1 # columns CvtFromIn(100); 2.54libspatialite-4.3.0a/test/sql_stmt_tests/reflectcoords17.testcase0000664000175000017500000000111612544707704022253 00000000000000reflectcoords - polygon no reflection :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POLYGONM((-10 -10 1, -20 -10 2, -20 -20 3, -20 -11 4, -10 -10 1), (-11 -11 1, -12 -11 2, -12 -12 3, -11 -12 4, -11 -11 1))"), 0, 0)) 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POLYGONM((-10 -10 1, -20 -10 2, -20 -20 3, -20 -11 4, -10 -10 1), (-11 -11 1, -12 -11 2, -12 -12 3, -11 -12 4, -11 -11 1))"), 0, 0)) POLYGON M((-10 -10 1, -20 -10 2, -20 -20 3, -20 -11 4, -10 -10 1), (-11 -11 1, -12 -11 2, -12 -12 3, -11 -12 4, -11 -11 1)) libspatialite-4.3.0a/test/sql_stmt_tests/shiftcoords15.testcase0000664000175000017500000000114112544707704021740 00000000000000shiftcoords - Polygon XYZM :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("POLYGONZM((0 0 10 1, 10 0 10 2, 10 10 11 3, 0 10 11 4, 0 0 10 1), (5 5 12 1, 6 5 12 2, 6 6 13 3, 5 6 13 4, 5 5 12 1))"), 1.4, 3.9)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("POLYGONZM((0 0 10 1, 10 0 10 2, 10 10 11 3, 0 10 11 4, 0 0 10 1), (5 5 12 1, 6 5 12 2, 6 6 13 3, 5 6 13 4, 5 5 12 1))"), 1.4, 3.9)) POLYGON ZM((1.4 3.9 10 1, 11.4 3.9 10 2, 11.4 13.9 11 3, 1.4 13.9 11 4, 1.4 3.9 10 1), (6.4 8.9 12 1, 7.4 8.9 12 2, 7.4 9.9 13 3, 6.4 9.9 13 4, 6.4 8.9 12 1)) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull27.testcase0000664000175000017500000000033612544707704021412 00000000000000ForceAsNull() - BLOB - mismatching :memory: #use in-memory database SELECT Hex(ForceAsNull(x'0102a1b2', zeroblob(4))) 1 # rows (not including the header row) 1 # columns Hex(ForceAsNull(x'0102a1b2', zeroblob(4))) 0102A1B2 libspatialite-4.3.0a/test/sql_stmt_tests/gml13.testcase0000664000175000017500000000172112544707704020172 00000000000000GML MultiPolygon Z :memory: #use in-memory database SELECT AsGML(3, GeomFromText("MULTIPOLYGONZ(((10 10 100, 20 10 101, 20 20 102, 10 20 103, 10 10 100)), ((85 85 80, 90 85 90, 90 90 95, 85 90 90, 85 85 80)))", 4326)); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("MULTIPOLYGONZ(((10 10 100, 20 10 101, 20 20 102, 10 20 103, 10 10 100)), ((85 85 80, 90 85 90, 90 90 95, 85 90 90, 85 85 80)))", 4326)) 10 10 100 20 10 101 20 20 102 10 20 103 10 10 10085 85 80 90 85 90 90 90 95 85 90 90 85 85 80:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/geomtype47.testcase0000664000175000017500000000061312544707704021252 00000000000000geometrytype - MULTIPOLYGONZ - one polygon :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTIPOLYGONZ(((30 20 1, 10 40 1, 45 40 1, 30 20 1)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTIPOLYGON Z XYZ MULTIPOLYGONlibspatialite-4.3.0a/test/sql_stmt_tests/setstartpoint15.testcase0000664000175000017500000000050712544707704022341 00000000000000ST_SetStartPoint() - M :memory: #use in-memory database SELECT AsText(SetStartPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2, 1 1 3)'), MakePoint(2, 3))) 1 # rows (not including the header row) 1 # columns AsText(SetStartPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2, 1 1 3)'), MakePoint(2, 3))) LINESTRING M(2 3 0, 1 0 2, 1 1 3) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry30.testcase0000664000175000017500000000104612544707704023021 00000000000000CompressGeometry - GEOMETRYCOLLECTION :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(10 10, 11 11), POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(10 10, 11 11), POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)))", 4326))) GEOMETRYCOLLECTION(LINESTRING(10 10, 11 11), POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1))) libspatialite-4.3.0a/test/sql_stmt_tests/casttotext14.testcase0000664000175000017500000000031412544707704021613 00000000000000CastToText() - DOUBLE, BLOB zero_pad :memory: #use in-memory database SELECT CastToText(123.456, zeroblob(4)) 1 # rows (not including the header row) 1 # columns CastToText(123.456, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttolinestring6.testcase0000664000175000017500000000051612544707704022732 00000000000000casttolinestring - GEOMETRY COLLECTION, 1 LINESTRING :memory: #use in-memory database SELECT AsText(CastToLineString(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 1, 3 4))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToLineString(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 1, 3 4))"))) LINESTRING(4 1, 3 4) libspatialite-4.3.0a/test/sql_stmt_tests/translate1.testcase0000664000175000017500000000034612544707704021327 00000000000000translate :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("POINT(1 2)"), 1, 3, 4)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("POINT(1 2)"), 1, 3, 4)) POINT(2 5) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude22.testcase0000664000175000017500000000144612544707704022447 00000000000000shiftlongitude - polygonzm, negative interior rings :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGONZM((185 0 4 2, 184 10 5 3, 175 10 5 4, 176 0 5 1, 185 0 4 2),(-177 1 4 2, -177 2 5 3, -178 2 6 4, -178 1 9 2, -177 1 4 2),(-179 4 0 0, 179 4 0 0, 179 5 0 0, -179 5 0 0, -179 4 0 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGONZM((185 0 4 2, 184 10 5 3, 175 10 5 4, 176 0 5 1, 185 0 4 2),(-177 1 4 2, -177 2 5 3, -178 2 6 4, -178 1 9 2, -177 1 4 2),(-179 4 0 0, 179 4 0 0, 179 5 0 0, -179 5 0 0, -179 4 0 0))", 4326))) POLYGON ZM((185 0 4 2, 184 10 5 3, 175 10 5 4, 176 0 5 1, 185 0 4 2), (183 1 4 2, 183 2 5 3, 182 2 6 4, 182 1 9 2, 183 1 4 2), (181 4 0 0, 179 4 0 0, 179 5 0 0, 181 5 0 0, 181 4 0 0)) libspatialite-4.3.0a/test/sql_stmt_tests/casttopoint4.testcase0000664000175000017500000000036312544707704021703 00000000000000casttopoint - MULTIPOINT, 1 point :memory: #use in-memory database SELECT AsText(CastToPoint(GeomFromText("MULTIPOINT(4 3)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToPoint(GeomFromText("MULTIPOINT(4 3)"))) POINT(4 3) libspatialite-4.3.0a/test/sql_stmt_tests/invalidatestats9.testcase0000664000175000017500000000034712544707704022542 00000000000000InvalidateLayerStatistics - TEXT, BLOB :memory: #use in-memory database SELECT InvalidateLayerStatistics('table', zeroblob(4)); 1 # rows (not including the header row) 1 # columns InvalidateLayerStatistics('table', zeroblob(4)); 0 libspatialite-4.3.0a/test/sql_stmt_tests/geojson1.testcase0000664000175000017500000000056712544707704021003 00000000000000GeoJSON Point: excessive precision :memory: #use in-memory database SELECT AsGeoJSON(GeomFromText("POINT(1 2)", 4326), 44, 2); 1 # rows (not including the header row) 1 # columns AsGeoJSON(GeomFromText("POINT(1 2)", 4326), 44, 2) {"type":"Point","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"coordinates":[1,2]}:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/geomtype1.testcase0000664000175000017500000000044412544707704021162 00000000000000geometrytype1 - POINT :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("POINT(-71.1043443253471 42.315067601582900)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) POINT XYlibspatialite-4.3.0a/test/sql_stmt_tests/scalecoords13.testcase0000664000175000017500000000230512544707704021713 00000000000000scale coords - POLYGONZM with inner ring :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("POLYGONZM((0 0 1 2, 0 4 1 2, 4 4 1 2, 4 0 1 2, 0 0 1 2),(1 2 1 2, 1 3 1 2, 2 3 1 2, 2 2 1 2, 1 2 1 2))") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) POLYGON ZM((0 0 1 2, 0 0 1 2, 0 0 1 2, 0 0 1 2, 0 0 1 2), (0 0 1 2, 0 0 1 2, 0 0 1 2, 0 0 1 2, 0 0 1 2)) POLYGON ZM((0 0 1 2, 0 0 1 2, 0 0 1 2, 0 0 1 2, 0 0 1 2), (0 0 1 2, 0 0 1 2, 0 0 1 2, 0 0 1 2, 0 0 1 2)) POLYGON ZM((0 0 1 2, 0 12 1 2, 8 12 1 2, 8 0 1 2, 0 0 1 2), (2 6 1 2, 2 9 1 2, 4 9 1 2, 4 6 1 2, 2 6 1 2)) POLYGON ZM((0 0 1 2, 0 -4 1 2, 4 -4 1 2, 4 0 1 2, 0 0 1 2), (1 -2 1 2, 1 -3 1 2, 2 -3 1 2, 2 -2 1 2, 1 -2 1 2)) (NULL) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry12.testcase0000664000175000017500000000067112544707704023024 00000000000000CompressGeometry - MULTILINESTRING :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("MULTILINESTRING((1 2, 3 4))"))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("MULTILINESTRING((1 2, 3 4))"))) 000100000000000000000000F03F0000000000000040000000000000084000000000000010407C05000000010000006942420F0002000000000000000000F03F000000000000004000000000000008400000000000001040FE libspatialite-4.3.0a/test/sql_stmt_tests/elemgeo2.testcase0000664000175000017500000000043212544707704020744 00000000000000ElementaryGeometries() - NULL geometry-column :memory: #use in-memory database SELECT ElementaryGeometries('in_table', NULL, 'out_table', 'id', 'old_id'); 1 # rows (not including the header row) 1 # columns ElementaryGeometries('in_table', NULL, 'out_table', 'id', 'old_id') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asgml3.testcase0000664000175000017500000000027612544707704020441 00000000000000asgml - bad args (broken blob, 3 arg) :memory: #use in-memory database SELECT asgml(2, zeroblob(20), 5); 1 # rows (not including the header row) 1 # columns asgml(2, zeroblob(20), 5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract18.testcase0000664000175000017500000000050312544707704022435 00000000000000Collection Extract - Extract linestringZM :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("LINESTRINGZM(1 2 4 1, 4 3 1 2)"), 2)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("LINESTRINGZM(1 2 4 1, 4 3 1 2)"), 2)) LINESTRING ZM(1 2 4 1, 4 3 1 2) libspatialite-4.3.0a/test/sql_stmt_tests/atmmultiply4.testcase0000664000175000017500000000027512544707704021717 00000000000000ATM_Multiply() - invalid arg1 :memory: #use in-memory database SELECT ATM_Multiply(1, ATM_Create()) 1 # rows (not including the header row) 1 # columns ATM_Multiply(1, ATM_Create()) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftcoords9.testcase0000664000175000017500000000046512544707704021673 00000000000000shiftcoords - Linestring XYZ :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("LINESTRINGZ(1 2 10, 3 4 10)"), 1.4, 3.9)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("LINESTRINGZ(1 2 10, 3 4 10)"), 1.4, 3.9)) LINESTRING Z(2.4 5.9 10, 4.4 7.9 10) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry27.testcase0000664000175000017500000000062112544707704023025 00000000000000CompressGeometry - POLYGON :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1))", 4326))) POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)) libspatialite-4.3.0a/test/sql_stmt_tests/badwkt7.testcase0000664000175000017500000000045412544707704020614 00000000000000bad WKT: GeometryCollection :memory: #use in-memory database SELECT GeomFromText("GEOMETRYCOLLECYION(POINT(11.2 12.3), LINESTRING(11.3 12.4, 11.4 12.4)"); 1 # rows (not including the header row) 1 # columns GeomFromText("GEOMETRYCOLLECYION(POINT(11.2 12.3), LINESTRING(11.3 12.4, 11.4 12.4)") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sanitizeGeometry2.testcase0000664000175000017500000000030412544707704022667 00000000000000Sanitize Geometry - zeroblob :memory: #use in-memory database SELECT SanitizeGeometry(zeroblob(100)); 1 # rows (not including the header row) 1 # columns SanitizeGeometry(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract22.testcase0000664000175000017500000000060312544707704022431 00000000000000Collection Extract - Extract POLYGON :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 0),(1 2, 4 3, 1 1, 1 2))"), 3)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 0),(1 2, 4 3, 1 1, 1 2))"), 3)) POLYGON((0 0, 10 0, 10 10, 0 0), (1 2, 4 3, 1 1, 1 2)) libspatialite-4.3.0a/test/sql_stmt_tests/dissolve28.testcase0000664000175000017500000000152612544707704021254 00000000000000dissolve - Overlap points POLYGON Z :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGONZ((-10 0 0, -10 10 0, -10 10 10, 10 10 10, 10 10 10, 10 10 -10, 10 -10 -10, -10 -10 -10, -10 0 0),(0 1 0, 0 2 1, 1 2 2, 1 2 3, 1 2 3, 1 2 3, 0 1 0))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING Z((-10 0 0, -10 10 0), (-10 10 0, -10 10 10), (-10 10 10, 10 10 10), (10 10 10, 10 10 -10), (10 10 -10, 10 -10 -10), (10 -10 -10, -10 -10 -10), (-10 -10 -10, -10 0 0), (0 1 0, 0 2 1), (0 2 1, 1 2 2), (1 2 2, 1 2 3), (1 2 3, 0 1 0)) MULTIPOINT Z(-10 0 0, -10 10 0, -10 10 10, 10 10 10, 10 10 10, 10 10 -10, 10 -10 -10, -10 -10 -10, -10 0 0, 0 1 0, 0 2 1, 1 2 2, 1 2 3, 1 2 3, 1 2 3, 0 1 0) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml59.testcase0000664000175000017500000000175512544707704021077 00000000000000FromGML - Polygon LinearRing interior/exterior :memory: #use in-memory database SELECT AsText(GeomFromGml('0 05 05 50 50 01 12 12 21 21 1')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('0 05 05 50 50 01 12 12 21 21 1')):0 POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector8.testcase0000664000175000017500000000033312544707704023217 00000000000000makecircularsector8 - text radius :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 'alpha', 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 'alpha', 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude17.testcase0000664000175000017500000000134512544707704022451 00000000000000shiftlongitude - positive and negative longitude polygonm, interior rings :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGONM((-175 0 4, -176 10 5, 175 10 5, 176 0 5, -175 0 4),(-177 1 4, -177 2 5, -178 2 6, -178 1 9, -177 1 4),(-179 4 0, 179 4 0, 179 5 0, -179 5 0, -179 4 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGONM((-175 0 4, -176 10 5, 175 10 5, 176 0 5, -175 0 4),(-177 1 4, -177 2 5, -178 2 6, -178 1 9, -177 1 4),(-179 4 0, 179 4 0, 179 5 0, -179 5 0, -179 4 0))", 4326))) POLYGON M((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4), (183 1 4, 183 2 5, 182 2 6, 182 1 9, 183 1 4), (181 4 0, 179 4 0, 179 5 0, 181 5 0, 181 4 0)) libspatialite-4.3.0a/test/sql_stmt_tests/seconds.wav0000664000175000017500000000060412544707704017666 00000000000000RIFF|WAVEfmt @@factJdataJR;(2¬ž®.=aC++´Ÿ¤;5`I8'Õ¢ ö.^K=)>§žµ-KK;+,°¥45Y>7(÷¡žh-^K>'7¨»+NVD-.­œª/>YE1&ÀžŸ@0kA9%D¤žÑ.ïLA).«µ,BbL0)ºž¨79~L:'dŸŸ\4cG=(;¨ž½0MEB.-¯«5@R<3(ÒŸ¢E4U>9*M¢žÕ1\B>-2¬ž³4OVD2*¹ž¨=7PA9(L¡ q2PH>*8¨ž¼.DWM/,´ª4<^D6'ßž¢G4^K?'?¡ŸÝ-IID,/©´0?dF0*»¨<5XJ=(N Ÿ}1N>?*6¥¼.NKD/+²ž«36WK;(蟢M1PP>&F¢ŸÚ-HQR,2ªµ.>MN1*·§33]V;'韢F-XL?)A¢žË,DI@-1«libspatialite-4.3.0a/test/sql_stmt_tests/badKML7.testcase0000664000175000017500000000167412544707704020437 00000000000000bad KML: GeometryCollection :memory: #use in-memory database SELECT GeomFromKML('1.1,1.12.2,2.2 3.3,3.30,0 1,0 1,1 0,1 0,00.1,0.1 0.9,0.1 0.9,0.9 0.1,0.9 0.1,0.11.1,1.12.2,2.2 3.3,3.30,0 1,0 1,1 0,1 0,00.1,0.1 0.9,0.1 0.9,0.9 0.1,0.9 0.1,0.10 0 -100 0 -100 100 0 100 0 0')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('0 0 -100 0 -100 100 0 100 0 0')):0 POLYGON((0 0, -100 0, -100 100, 0 100, 0 0)) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext16.testcase0000664000175000017500000000051612544707704022137 00000000000000geomfromtext16 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(MULTIPOINTZ(0 1 9, 2 3 9, 4 5 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZ(MULTIPOINTZ(0 1 9, 2 3 9, 4 5 9))')); GEOMETRYCOLLECTION Z(POINT Z(0 1 9), POINT Z(2 3 9), POINT Z(4 5 9)) libspatialite-4.3.0a/test/sql_stmt_tests/atmdeterminant2.testcase0000664000175000017500000000027312544707704022346 00000000000000ATM_Determinant() - invalid BLOB :memory: #use in-memory database SELECT ATM_Determinant(zeroblob(4)) 1 # rows (not including the header row) 1 # columns ATM_Determinant(zeroblob(4)) 0.0 libspatialite-4.3.0a/test/sql_stmt_tests/fromdms5.testcase0000664000175000017500000000037112544707704021003 00000000000000fromdms - generic TEXT DMS expression :memory: #use in-memory database SELECT LongitudeFromDMS('alpha'), LatitudeFromDMS('alpha'); 1 # rows (not including the header row) 2 # columns LongitudeFromDMS('alpha') LatitudeFromDMS('alpha') (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/encodeurl5.testcase0000664000175000017500000000027412544707704021316 00000000000000EncodeURL - valid :memory: #use in-memory database SELECT EncodeURL('C++ * operator'); 1 # rows (not including the header row) 1 # columns EncodeURL('C++ * operator') C%2b%2b+%2a+operator libspatialite-4.3.0a/test/sql_stmt_tests/pointn4.testcase0000664000175000017500000000041412544707704020640 00000000000000pointN - regular LINESTRING (third point) :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), 3)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), 3)) POINT(8 4) libspatialite-4.3.0a/test/sql_stmt_tests/makearc14.testcase0000664000175000017500000000030312544707704021012 00000000000000makearc14 - BLOB stop :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 30, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 30, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeline21.testcase0000664000175000017500000000033512544707704021177 00000000000000makeline - POINTZM :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINTZM(1 2 3 4)"))) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINTZM(1 2 3 4)"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttoxyz6.testcase0000664000175000017500000000034112544707704021402 00000000000000casttoxyz - POINT :memory: #use in-memory database SELECT AsText(CastToXYZ(GeomFromText("POINTM(4 3 20)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYZ(GeomFromText("POINTM(4 3 20)"))) POINT Z(4 3 0) libspatialite-4.3.0a/test/sql_stmt_tests/buildmbr3.testcase0000664000175000017500000000033212544707704021127 00000000000000buildmbr - int args :memory: #use in-memory database SELECT AsText(BuildMbr(5, 6, 7, 8, 4326)) 1 # rows (not including the header row) 1 # columns AsText(BuildMbr(5, 6, 7, 8, 4326)) POLYGON((5 6, 7 6, 7 8, 5 8, 5 6)) libspatialite-4.3.0a/test/sql_stmt_tests/ind_yd_m.testcase0000664000175000017500000000024112544707704021025 00000000000000Indian yards to metres :memory: #use in-memory database SELECT CvtFromIndYd(10); 1 # rows (not including the header row) 1 # columns CvtFromIndYd(10); 9.14395:7 libspatialite-4.3.0a/test/sql_stmt_tests/fromgml26.testcase0000664000175000017500000000243112544707704021061 00000000000000FromGML - MultiPolygon v3 3D (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0 0 10 5 0 11 5 5 13 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 52 2 10 3 2 11 3 3 13 2 3 13 2 2 10')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0 0 10 5 0 11 5 5 13 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 52 2 10 3 2 11 3 3 13 2 3 13 2 2 10')):0 SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 13,2 3 13,2 2 10))) libspatialite-4.3.0a/test/sql_stmt_tests/collect55.testcase0000664000175000017500000000131312544707704021043 00000000000000collect - PolygonZM, Polygon :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONZM((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1),(1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1))"), GeomFromText("POLYGON((4 5, 1 2, 4 2, 4 5),(2 3, 3 4, 3 3, 2 3))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONZM((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1),(1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1))"), GeomFromText("POLYGON((4 5, 1 2, 4 2, 4 5),(2 3, 3 4, 3 3, 2 3))"))) MULTIPOLYGON ZM(((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1), (1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1)), ((4 5 0 0, 1 2 0 0, 4 2 0 0, 4 5 0 0), (2 3 0 0, 3 4 0 0, 3 3 0 0, 2 3 0 0))) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract25.testcase0000664000175000017500000000115312544707704022435 00000000000000Collection Extract - Extract MULTILINESTRING :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0, 1 1), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)), POINT(1 1), LINESTRING(1 1, 2 2), POLYGON((1 1, 2 1, 2 2, 1 2, 1 1)))"), 3)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0, 1 1), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)), POINT(1 1), LINESTRING(1 1, 2 2), POLYGON((1 1, 2 1, 2 2, 1 2, 1 1)))"), 3)) MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((1 1, 2 1, 2 2, 1 2, 1 1))) libspatialite-4.3.0a/test/sql_stmt_tests/collect30.testcase0000664000175000017500000000063712544707704021044 00000000000000collect - LineStringZ, LineStringM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGZ(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGM(4 5 1, 1 2 2, 4 2 3)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGZ(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGM(4 5 1, 1 2 2, 4 2 3)"))) MULTILINESTRING ZM((1 2 4 0, 3 4 2 0), (4 5 0 1, 1 2 0 2, 4 2 0 3)) libspatialite-4.3.0a/test/sql_stmt_tests/ewkb1.testcase0000664000175000017500000000033412544707704020257 00000000000000EWkb: Point XY :memory: #use in-memory database SELECT AsText(GeomFromEWkb('0101000020E61000009A9999999999F13F9A99999999990140')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom POINT(1.1 2.2) libspatialite-4.3.0a/test/sql_stmt_tests/st_y4.testcase0000664000175000017500000000036312544707704020312 00000000000000ST_Y4 :memory: #use in-memory database SELECT ST_Y(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")); 1 # rows (not including the header row) 1 # columns ST_Y(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ring27.testcase0000664000175000017500000000076412544707704020365 00000000000000InteriorRingN - broken second interior :memory: #use in-memory database SELECT AsText(InteriorRingN(GeomFromText("POLYGONZ((0 0 0, 0 4 1, 4 4 2, 4 0 3, 0 0 0),(1 1 2, 1 3 2, 3 3 2, 3 1 2, 1 1 2),(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 2))"), 2)); 1 # rows (not including the header row) 1 # columns AsText(InteriorRingN(GeomFromText("POLYGONZ((0 0 0, 0 4 1, 4 4 2, 4 0 3, 0 0 0),(1 1 2, 1 3 2, 3 3 2, 3 1 2, 1 1 2),(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 2))"), 2)) LINESTRING Z(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 2) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract15.testcase0000664000175000017500000000044212544707704022434 00000000000000Collection Extract - Extract linestring :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("LINESTRING(1 2, 4 3)"), 2)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("LINESTRING(1 2, 4 3)"), 2)) LINESTRING(1 2, 4 3) libspatialite-4.3.0a/test/sql_stmt_tests/invalidatestats2.testcase0000664000175000017500000000033112544707704022524 00000000000000InvalidateLayerStatistics - TEXT, NULL :memory: #use in-memory database SELECT InvalidateLayerStatistics('table', NULL); 1 # rows (not including the header row) 1 # columns InvalidateLayerStatistics('table', NULL); 0 libspatialite-4.3.0a/test/sql_stmt_tests/extractmultipoint1.testcase0000664000175000017500000000030012544707704023117 00000000000000extractmultipoint - bad blob :memory: #use in-memory database SELECT ExtractMultiPoint(zeroblob(99)) 1 # rows (not including the header row) 1 # columns ExtractMultiPoint(zeroblob(99)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc20.testcase0000664000175000017500000000034512544707704022543 00000000000000makeellipticarc20 - text srid :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, 30, 60, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, 30, 60, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/rotatecoords1.testcase0000664000175000017500000000123412544707704022037 00000000000000rotate coords - Point :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("POINT(1 2)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) POINT(1 2) POINT(2 -1) POINT(-1 -2) POINT(-2 1) (NULL) (NULL) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/removepoint15.testcase0000664000175000017500000000043612544707704021766 00000000000000ST_RemovePoint() - M :memory: #use in-memory database SELECT AsText(RemovePoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2, 1 1 3)'), 1)) 1 # rows (not including the header row) 1 # columns AsText(RemovePoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2, 1 1 3)'), 1)) LINESTRING M(0 0 1, 1 1 3) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate7.testcase0000664000175000017500000000042612544707704021304 00000000000000ATM_Create() - invalid 2nd arg :memory: #use in-memory database SELECT ATM_Create(1.0, 'a', 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0) 1 # rows (not including the header row) 1 # columns ATM_Create(1.0, 'a', 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint2.testcase0000664000175000017500000000025212544707704021131 00000000000000ST_AddPoint() - INTEGER line :memory: #use in-memory database SELECT ST_AddPoint(1, NULL) 1 # rows (not including the header row) 1 # columns ST_AddPoint(1, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ismeasured4.testcase0000664000175000017500000000032412544707704021472 00000000000000IsMeasured- Point XYZ :memory: #use in-memory database SELECT ST_IsMeasured(GeomFromText('POINTZ(1 2 100)')); 1 # rows (not including the header row) 1 # columns ST_IsMeasured(GeomFromText('POINTZ(1 2 100)')) 0 libspatialite-4.3.0a/test/sql_stmt_tests/fromgml14.testcase0000664000175000017500000000255712544707704021067 00000000000000FromGML - MultiPolygon v3 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 16 6 7 6 7 7 6 7 6 6')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 16 6 7 6 7 7 6 7 6 6')):0 SRID=4326;MULTIPOLYGON(((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1)),((6 6,7 6,7 7,6 7,6 6))) libspatialite-4.3.0a/test/sql_stmt_tests/locatemeasure5.testcase0000664000175000017500000000060012544707704022160 00000000000000ST_Locate_Between_Measures - LinestringM - no match :memory: #use in-memory database SELECT ST_Locate_Between_Measures(GeomFromText('LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5)'), 20, 30.1); 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures(GeomFromText('LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5)'), 20, 30.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/minz1.testcase0000664000175000017500000000021212544707704020277 00000000000000MinZ - non-blob :memory: #use in-memory database SELECT ST_MinZ(3) 1 # rows (not including the header row) 1 # columns ST_MinZ(3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttoblob13.testcase0000664000175000017500000000031012544707704021540 00000000000000CastToBlob() - Valid (1) hex_input :memory: #use in-memory database SELECT Hex(CastToBlob('0129abCF', 1)) 1 # rows (not including the header row) 1 # columns Hex(CastToBlob('0129abCF', 1)) 0129ABCF libspatialite-4.3.0a/test/sql_stmt_tests/makepointm-null7.testcase0000664000175000017500000000037712544707704022460 00000000000000makepointm-null7 :memory: #use in-memory database SELECT AsWkt(MakePointM(-71.1043443253471, 42.3150676015829, 12.6389), 4.1); 1 # rows (not including the header row) 1 # columns AsWkt(MakePointM(-71.1043443253471, 42.3150676015829, 12.6389), 4.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircle8.testcase0000664000175000017500000000026312544707704021436 00000000000000makecircle8 - text radius :memory: #use in-memory database SELECT MakeCircle(0, 0, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeCircle(0, 0, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/checkspatialmetadata2.testcase0000664000175000017500000000032612544707704023465 00000000000000checkspatialmetadata - pure sqlite3 sql_stmt_tests/trivial.sqlite_RO #use special test database, read only SELECT CheckSpatialMetaData() 1 # rows (not including the header row) 1 # columns CheckSpatialMetaData() 0 libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe1.testcase0000664000175000017500000000033512544707704023221 00000000000000makecircularstripe1 - NULL cx :memory: #use in-memory database SELECT MakeCircularStripe(NULL, 0, 100, 90, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(NULL, 0, 100, 90, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext27.testcase0000664000175000017500000000212512544707704022137 00000000000000geomfromtext27 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONM(POINTM(8 8 9), MULTIPOLYGONM(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))), POINTM(7 7 9), MULTILINESTRINGM((0 1 9, 2 3 9), (4 5 9, 6 7 9)), POINTM(6 6 9), MULTIPOINTM((0 1 9), (2 3 9), (4 5 9)), POINTM(9 9 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONM(POINTM(8 8 9), MULTIPOLYGONM(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))), POINTM(7 7 9), MULTILINESTRINGM((0 1 9, 2 3 9), (4 5 9, 6 7 9)), POINTM(6 6 9), MULTIPOINTM((0 1 9), (2 3 9), (4 5 9)), POINTM(9 9 9))')); GEOMETRYCOLLECTION M(POINT M(8 8 9), POINT M(7 7 9), POINT M(6 6 9), POINT M(0 1 9), POINT M(2 3 9), POINT M(4 5 9), POINT M(9 9 9), LINESTRING M(0 1 9, 2 3 9), LINESTRING M(4 5 9, 6 7 9), POLYGON M((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), POLYGON M((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml46.testcase0000664000175000017500000000237512544707704021072 00000000000000FromGML - MultiPolygon v2 3D (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0,0,10 5,0,11 5,5,13 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,52,2,10 3,2,11 3,3,13 2,3,13 2,2,10')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0,0,10 5,0,11 5,5,13 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,52,2,10 3,2,11 3,3,13 2,3,13 2,2,10')):0 SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 13,2 3 13,2 2 10))) libspatialite-4.3.0a/test/sql_stmt_tests/st_x3.testcase0000664000175000017500000000022212544707704020302 00000000000000ST_X - text :memory: #use in-memory database SELECT X("hello world"); 1 # rows (not including the header row) 1 # columns X("hello world") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/lhr1.testcase0000664000175000017500000000025412544707704020115 00000000000000forceLHR - zeroblob :memory: #use in-memory database SELECT ST_ForceLHR(zeroblob(99)); 1 # rows (not including the header row) 1 # columns ST_ForceLHR(zeroblob(99)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/lhr3.testcase0000664000175000017500000000152212544707704020116 00000000000000forceLHR - GeometryCollection XY :memory: #use in-memory database SELECT AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 15 10, 13 13, 10 10), (11 10.5, 13 10.5, 13 11.3, 11 10.5)), POLYGON((20 20, 24.1 20, 22 18, 20 20), (21 19.5, 23.1 19.5, 22 18.5, 21 19.5)))"))); 1 # rows (not including the header row) 1 # columns AsEWKT(ST_ForceLHR(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 15 10, 13 13, 10 10), (11 10.5, 13 10.5, 13 11.3, 11 10.5)), POLYGON((20 20, 24.1 20, 22 18, 20 20), (21 19.5, 23.1 19.5, 22 18.5, 21 19.5)))"))) SRID=0;GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(3 4,5 6,7 8,9 9),POLYGON((10 10,13 13,15 10,10 10),(11 10.5,13 10.5,13 11.3,11 10.5)),POLYGON((20 20,24.1 20,22 18,20 20),(21 19.5,22 18.5,23.1 19.5,21 19.5))) libspatialite-4.3.0a/test/sql_stmt_tests/assvg20.testcase0000664000175000017500000000051112544707704020530 00000000000000assvg - relative/absolute Linestring XYM :memory: #use in-memory database SELECT assvg(geom, 1) AS rel, assvg(geom, 0) AS abs FROM (SELECT GeomFromText("LINESTRINGM(1 2 10, 4 3 11, 5 6 12, 8 7 13)", 4326) AS geom) dummy; 1 # rows (not including the header row) 2 # columns rel abs M 1 -2 l 3 -1 1 -3 3 -1 M 1 -2 L 4 -3 5 -6 8 -7 libspatialite-4.3.0a/test/sql_stmt_tests/fullnamefrompath4.testcase0000664000175000017500000000031012544707704022670 00000000000000FullFileNameFromPath - DOUBLE :memory: #use in-memory database SELECT FullFileNameFromPath(zeroblob(10)); 1 # rows (not including the header row) 1 # columns FullFileNameFromPath(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude24.testcase0000664000175000017500000000064012544707704022444 00000000000000shiftlongitude - simple polygonm, all positive :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGON M((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGON M((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4))", 4326))) POLYGON M((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4)) libspatialite-4.3.0a/test/sql_stmt_tests/st_y2.testcase0000664000175000017500000000034412544707704020307 00000000000000ST_Y2 :memory: #use in-memory database SELECT Y(MakePoint(-71.1043443253471, 42.3150676015829, 4326)); 1 # rows (not including the header row) 1 # columns Y(MakePoint(-71.1043443253471, 42.3150676015829, 4326)) 42.3150676015829 libspatialite-4.3.0a/test/sql_stmt_tests/badwkt1.testcase0000664000175000017500000000026412544707704020605 00000000000000bad WKT: Point :memory: #use in-memory database SELECT GeomFromText("POINT(11.2 12.3"); 1 # rows (not including the header row) 1 # columns GeomFromText("POINT(11.2 12.3"); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry22.testcase0000664000175000017500000000063012544707704023020 00000000000000CompressGeometry - MULTIPOINTM :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("MULTIPOINTM(1 2 0)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("MULTIPOINTM(1 2 0)", 4326))) 0001E6100000000000000000F03F0000000000000040000000000000F03F00000000000000407CD40700000100000069D1070000000000000000F03F00000000000000400000000000000000FE libspatialite-4.3.0a/test/sql_stmt_tests/sridisgeographic7.testcase0000664000175000017500000000025112544707704022661 00000000000000SridIsGeographic() - 32632 :memory: #use in-memory database SELECT SridIsGeographic(32632) 1 # rows (not including the header row) 1 # columns SridIsGeographic(32632) 0 libspatialite-4.3.0a/test/sql_stmt_tests/makeellipse18.testcase0000664000175000017500000000031712544707704021713 00000000000000makeellipse18 - NULL step :memory: #use in-memory database SELECT MakeEllipse(0, 0, 100, 200, 4326, NULL); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, 100, 200, 4326, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmtransform8.testcase0000664000175000017500000000145712544707704022062 00000000000000ATM_Transform() - XYZM :memory: #use in-memory database SELECT AsText(ATM_Transform(GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(0 0 0 0), LINESTRINGZM(1 1 1 1, 2 2 3 3), POLYGONZM((10 10 1 1, 20 10 2 2, 20 20 3 3, 10 20 2 2, 10 10 1 1), (14 14 1 1, 16 14 2 2, 16 16 2 2, 14 16 2 2, 14 14 1 1)))'), ATM_Create())); 1 # rows (not including the header row) 1 # columns AsText(ATM_Transform(GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(0 0 0 0), LINESTRINGZM(1 1 1 1, 2 2 3 3), POLYGONZM((10 10 1 1, 20 10 2 2, 20 20 3 3, 10 20 2 2, 10 10 1 1), (14 14 1 1, 16 14 2 2, 16 16 2 2, 14 16 2 2, 14 14 1 1)))'), ATM_Create())); GEOMETRYCOLLECTION ZM(POINT ZM(0 0 0 0), LINESTRING ZM(1 1 1 1, 2 2 3 3), POLYGON ZM((10 10 1 1, 20 10 2 2, 20 20 3 3, 10 20 2 2, 10 10 1 1), (14 14 1 1, 16 14 2 2, 16 16 2 2, 14 16 2 2, 14 14 1 1))) libspatialite-4.3.0a/test/sql_stmt_tests/mbrminmax4.testcase0000664000175000017500000000024412544707704021324 00000000000000MbrMinX- bad blob :memory: #use in-memory database SELECT MbrMinX(zeroblob(340)) 1 # rows (not including the header row) 1 # columns MbrMinX(zeroblob(340)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collect23.testcase0000664000175000017500000000050712544707704021042 00000000000000collect - PointZM, PointZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTZM(4 5 6 3.2)"), GeomFromText("POINTZM(1 2 5 4)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTZM(4 5 6 3.2)"), GeomFromText("POINTZM(1 2 5 4)"))) MULTIPOINT ZM(4 5 6 3.2, 1 2 5 4) libspatialite-4.3.0a/test/sql_stmt_tests/ring26.testcase0000664000175000017500000000070512544707704020357 00000000000000InteriorRingN - POLGON Z zeroth interior (error) :memory: #use in-memory database SELECT InteriorRingN(GeomFromText("POLYGONZ((0 0 0, 0 4 1, 4 4 2, 4 0 3, 0 0 0),(1 1 2, 1 3 2, 3 3 2, 3 1 2, 1 1 2),(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 1))"), 0); 1 # rows (not including the header row) 1 # columns InteriorRingN(GeomFromText("POLYGONZ((0 0 0, 0 4 1, 4 4 2, 4 0 3, 0 0 0),(1 1 2, 1 3 2, 3 3 2, 3 1 2, 1 1 2),(2 2 1, 2 3 1, 3 3 1, 3 2 1, 2 2 1))"), 0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint20.testcase0000664000175000017500000000046612544707704021220 00000000000000ST_AddPoint() - append (negative index) :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), -1)) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), -1)) LINESTRING(0 0, 1 0, 1 1) libspatialite-4.3.0a/test/sql_stmt_tests/collect15.testcase0000664000175000017500000000050012544707704021034 00000000000000collect - PointM, PointZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTM(4 5 3.2)"), GeomFromText("POINTZM(1 2 6 4)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTM(4 5 3.2)"), GeomFromText("POINTZM(1 2 6 4)"))) MULTIPOINT ZM(4 5 0 3.2, 1 2 6 4) libspatialite-4.3.0a/test/sql_stmt_tests/dissolve22.testcase0000664000175000017500000000060112544707704021237 00000000000000dissolve - Overlap points :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("LINESTRING(0 1, 0 2, 1 2, 1 2)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING((0 1, 0 2), (0 2, 1 2)) MULTIPOINT(0 1, 0 2, 1 2, 1 2) libspatialite-4.3.0a/test/sql_stmt_tests/us_mi_m.testcase0000664000175000017500000000023612544707704020677 00000000000000US miles to metres :memory: #use in-memory database SELECT CvtFromUsMi(1.0); 1 # rows (not including the header row) 1 # columns CvtFromUsMi(1.0); 1609.347:8 libspatialite-4.3.0a/test/sql_stmt_tests/asewkb2.testcase0000664000175000017500000000052412544707704020605 00000000000000asewkb - POINTZ :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("POINTZ(1 3 1)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POINTZ(1 3 1)", 4326))) 303130313030303041304536313030303030303030303030303030303030463033463030303030303030303030303038343030303030303030303030303046303346 libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatetrans3.testcase0000664000175000017500000000031212544707704022342 00000000000000ATM_CreateTranslate() - 2d invalid 1st arg :memory: #use in-memory database SELECT ATM_CreateTranslate('a', 2.0) 1 # rows (not including the header row) 1 # columns ATM_CreateTranslate('a', 2.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints13.testcase0000664000175000017500000000041012544707704022624 00000000000000geometry constraints - 3 arg, int arg 2 :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("POINT(1 2)", 4326), 40, 4326) 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("POINT(1 2)", 4326), 40, 4326) -1 libspatialite-4.3.0a/test/sql_stmt_tests/ewkb9.testcase0000664000175000017500000000173212544707704020272 00000000000000EWkb: Polygon XYZM :memory: #use in-memory database SELECT AsText(GeomFromEWkb('01030000E0E61000000200000005000000000000000000244000000000000024400000000000005940000000000000F03F0000000000002E400000000000002440000000000040594000000000000000400000000000002E400000000000002E400000000000805940000000000000084000000000000024400000000000002E400000000000C059400000000000001040000000000000244000000000000024400000000000005940000000000000F03F05000000000000000000284000000000000028400000000000405940000000000000F03F0000000000002A4000000000000028400000000000805940000000000000F03F0000000000002A400000000000002A400000000000C05940000000000000084000000000000028400000000000002A400000000000005A400000000000001040000000000000284000000000000028400000000000405940000000000000F03F')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom POLYGON ZM((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 4, 10 10 100 1), (12 12 101 1, 13 12 102 1, 13 13 103 3, 12 13 104 4, 12 12 101 1)) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext32.testcase0000664000175000017500000000044212544707704022133 00000000000000geomfromtext32 :memory: #use in-memory database SELECT AsText(GeomFromText('MULTIPOINTZM((0 1 9 7), (2 3 9 7), (4 5 9 7))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('MULTIPOINTZM((0 1 9 7), (2 3 9 7), (4 5 9 7))')); MULTIPOINT ZM(0 1 9 7, 2 3 9 7, 4 5 9 7) libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints20.testcase0000664000175000017500000000073712544707704022636 00000000000000geometry constraints - MULTIPOLYGONZM :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("MULTIPOLYGONZM(((0 0 0 0, 1 0 0 0, 1 1 0 0, 0 0 0 0)),((0 0 0 0, -1 0 0 0, -1 -1 0 0, 0 0 0 0)))", 4326), "MULTILINESTRING", 4326, "XYZM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("MULTIPOLYGONZM(((0 0 0 0, 1 0 0 0, 1 1 0 0, 0 0 0 0)),((0 0 0 0, -1 0 0 0, -1 -1 0 0, 0 0 0 0)))", 4326), "MULTILINESTRING", 4326, "XYZM") 0 libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry5.testcase0000664000175000017500000000071312544707704022743 00000000000000CompressGeometry - LINESTRINGZ :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("LINESTRINGZ(1 2 3, 3 4 3)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("LINESTRINGZ(1 2 3, 3 4 3)", 4326))) 0001E6100000000000000000F03F0000000000000040000000000000084000000000000010407C2A460F0002000000000000000000F03F00000000000000400000000000000840000000000000084000000000000010400000000000000840FE libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat25.testcase0000664000175000017500000000130312544707704022624 00000000000000normalizelonlat- out of range negative lat polygonzm :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POLYGONZM((120 -140 5 20, 120 -150 20 30, 130 -150 20 1, 130 -140 2 8, 120 -140 5 20), (122 -142 0 0, 124 -142 1 2, 124 -144 2 4, 122 -144 3 6, 122 -142 0 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POLYGONZM((120 -140 5 20, 120 -150 20 30, 130 -150 20 1, 130 -140 2 8, 120 -140 5 20), (122 -142 0 0, 124 -142 1 2, 124 -144 2 4, 122 -144 3 6, 122 -142 0 0))", 4326))) POLYGON ZM((120 -40 5 20, 120 -30 20 30, 130 -30 20 1, 130 -40 2 8, 120 -40 5 20), (122 -38 0 0, 124 -38 1 2, 124 -36 2 4, 122 -36 3 6, 122 -38 0 0)) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipse3.testcase0000664000175000017500000000031012544707704021616 00000000000000makeellipse3 - BLOB cx :memory: #use in-memory database SELECT MakeEllipse(zeroblob(4), 0, 100, 200); 1 # rows (not including the header row) 1 # columns MakeEllipse(zeroblob(4), 0, 100, 200) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/removedupl3.testcase0000664000175000017500000000032312544707704021511 00000000000000RemoveDuplicateRows() - NULL transaction :memory: #use in-memory database SELECT RemoveDuplicateRows('table', NULL); 1 # rows (not including the header row) 1 # columns RemoveDuplicateRows('table', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridax1name1.testcase0000664000175000017500000000026512544707704021546 00000000000000SridGeAxis_1_Name() - NULL SRID :memory: #use in-memory database SELECT SridGetAxis_1_Name(NULL) 1 # rows (not including the header row) 1 # columns SridGetAxis_1_Name(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon23.testcase0000664000175000017500000000111412544707704021735 00000000000000makepolygon - two holes :memory: #use in-memory database SELECT AsText(ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('MULTILINESTRING((2 2, 3 2, 3 3, 2 3, 2 2), (10 10, 11 10, 11 11, 10 11, 10 10))'))); 1 # rows (not including the header row) 1 # columns AsText(ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('MULTILINESTRING((2 2, 3 2, 3 3, 2 3, 2 2), (10 10, 11 10, 11 11, 10 11, 10 10))'))); POLYGON((1 1, 1 20, 20 20, 20 1, 1 1), (2 2, 3 2, 3 3, 2 3, 2 2), (10 10, 11 10, 11 11, 10 11, 10 10)) libspatialite-4.3.0a/test/sql_stmt_tests/makepointz-null3.testcase0000664000175000017500000000032112544707704022456 00000000000000makepointz-null3 :memory: #use in-memory database SELECT AsText(MakePointZ(26.0, "world", 0.54, 4326)); 1 # rows (not including the header row) 1 # columns AsText(MakePointZ(26.0, "world", 0.54, 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/elemgeo8.testcase0000664000175000017500000000046012544707704020753 00000000000000ElementaryGeometries() - not existing table + transaction :memory: #use in-memory database SELECT ElementaryGeometries('in_table', 'geom', 'out_table', 'id', 'old_id', 0); 1 # rows (not including the header row) 1 # columns ElementaryGeometries('in_table', 'geom', 'out_table', 'id', 'old_id', 0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/getlayerextent2.testcase0000664000175000017500000000027512544707704022400 00000000000000GetLayerExtent - TEXT, NULL :memory: #use in-memory database SELECT GetLayerExtent('table', NULL); 1 # rows (not including the header row) 1 # columns GetLayerExtent('table', NULL); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/expand2.testcase0000664000175000017500000000047212544707704020612 00000000000000Expand - Polygon :memory: #use in-memory database SELECT AsText(ST_Expand(GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))"), 0.5)) 1 # rows (not including the header row) 1 # columns AsText(ST_Expand(GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))"), 0.5)) POLYGON((0.5 0.5, 2.5 0.5, 2.5 2.5, 0.5 2.5, 0.5 0.5)) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype18.testcase0000664000175000017500000000056112544707704021252 00000000000000geometrytype - MULTILINESTRINGZ :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("MULTILINESTRINGZ((30 20 1, 10 40 1, 45 40 1, 30 20 1),(15 5 2, 40 10 2, 10 20 2, 5 10 2, 15 5 2))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) MULTILINESTRING Z XYZlibspatialite-4.3.0a/test/sql_stmt_tests/fromWkb16.testcase0000664000175000017500000000070312544707704021024 00000000000000fromWkb - GeometryCollection :memory: #use in-memory database SELECT Hex(GeometryCollectionFromWkb(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2))", 4326)))) 1 # rows (not including the header row) 1 # columns Hex(GeometryCollectionFromWkb(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2))", 4326)))) 000100000000000000000000F03F0000000000000040000000000000F03F00000000000000407C07000000010000006901000000000000000000F03F0000000000000040FE libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext38.testcase0000664000175000017500000000105612544707704022143 00000000000000geomfromtext38 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(GEOMETRYCOLLECTIONZ(POINTZ(0 0 9), LINESTRINGZ(1 1 9, 2 2 9)), GEOMETRYCOLLECTIONZ(POINTZ(3 3 9), LINESTRINGZ(4 4 9, 5 5 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZ(GEOMETRYCOLLECTIONZ(POINTZ(0 0 9), LINESTRINGZ(1 1 9, 2 2 9)), GEOMETRYCOLLECTIONZ(POINTZ(3 3 9), LINESTRINGZ(4 4 9, 5 5 9)))')); GEOMETRYCOLLECTION Z(POINT Z(0 0 9), POINT Z(3 3 9), LINESTRING Z(1 1 9, 2 2 9), LINESTRING Z(4 4 9, 5 5 9)) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude25.testcase0000664000175000017500000000057312544707704022452 00000000000000shiftlongitude - simple polygon, all positive :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGON((185 0, 184 10, 175 10, 176 0, 185 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGON((185 0, 184 10, 175 10, 176 0, 185 0))", 4326))) POLYGON((185 0, 184 10, 175 10, 176 0, 185 0)) libspatialite-4.3.0a/test/sql_stmt_tests/ring1.testcase0000664000175000017500000000045412544707704020271 00000000000000ExteriorRing - Linestring (error) :memory: #use in-memory database SELECT ExteriorRing(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35)")); 1 # rows (not including the header row) 1 # columns ExteriorRing(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35)")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttoint6.testcase0000664000175000017500000000034012544707704021341 00000000000000CastToInteger() - INTEGER :memory: #use in-memory database SELECT CastToInteger(123), TypeOf(CastToInteger(123)) 1 # rows (not including the header row) 2 # columns CastToInteger(123) TypeOf(CastToInteger(123)) 123 integer libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector18.testcase0000664000175000017500000000035412544707704023303 00000000000000makecircularsector18 - BLOB srid :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, 30, 60, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, 30, 60, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype37.testcase0000664000175000017500000000066312544707704021256 00000000000000geometrytype - GEOMETRYCOLLECTIONM two linestring :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(4 6 0, 10 0 0), LINESTRINGM(2 3 0, 5 1 0))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION M XYM GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/reflectcoords15.testcase0000664000175000017500000000124012544707704022247 00000000000000reflectcoords15 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POLYGONZM((-10 -10 100 1, -20 -10 101 2, -20 -20 102 3, -20 -11 103 4, -10 -10 100 1), (-11 -11 100 1, -12 -11 101 2, -12 -12 102 3, -11 -12 103 4, -11 -11 100 1))"), 1, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POLYGONZM((-10 -10 100 1, -20 -10 101 2, -20 -20 102 3, -20 -11 103 4, -10 -10 100 1), (-11 -11 100 1, -12 -11 101 2, -12 -12 102 3, -11 -12 103 4, -11 -11 100 1))"), 1, 1)) POLYGON ZM((10 10 100 1, 20 10 101 2, 20 20 102 3, 20 11 103 4, 10 10 100 1), (11 11 100 1, 12 11 101 2, 12 12 102 3, 11 12 103 4, 11 11 100 1)) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipse12.testcase0000664000175000017500000000031112544707704021677 00000000000000makeellipse12 - BLOB y_axis :memory: #use in-memory database SELECT MakeEllipse(0, 0, 100, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, 100, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ewkb7.testcase0000664000175000017500000000113112544707704020261 00000000000000EWkb: Polygon XY :memory: #use in-memory database SELECT AsText(GeomFromEWkb('0103000020E61000000200000005000000000000000000244000000000000024400000000000002E4000000000000024400000000000002E400000000000002E4000000000000024400000000000002E400000000000002440000000000000244005000000000000000000284000000000000028400000000000002A4000000000000028400000000000002A400000000000002A4000000000000028400000000000002A4000000000000028400000000000002840')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (12 12, 13 12, 13 13, 12 13, 12 12)) libspatialite-4.3.0a/test/sql_stmt_tests/locatemeasure12.testcase0000664000175000017500000000072012544707704022241 00000000000000ST_Locate_Between_Measures - LinestringM :memory: #use in-memory database SELECT AsText(ST_Locate_Between_Measures(GeomFromText('LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5)'), 2, 3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Locate_Between_Measures(GeomFromText('LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5)'), 2, 3)) GEOMETRYCOLLECTION M(POINT M(0 1 2.1), POINT M(5 0 2.5), LINESTRING M(2 1 2.1, 3 0 2.2)) libspatialite-4.3.0a/test/sql_stmt_tests/makeline6.testcase0000664000175000017500000000031312544707704021116 00000000000000makeline6 :memory: #use in-memory database SELECT MakeLine("hello", GeomFromText("POINT(1 2)")); 1 # rows (not including the header row) 1 # columns MakeLine("hello", GeomFromText("POINT(1 2)")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttoblob9.testcase0000664000175000017500000000031312544707704021470 00000000000000CastToBlob() - BLOB hex_input :memory: #use in-memory database SELECT CastToBlob('0129abCF', zeroblob(4)) 1 # rows (not including the header row) 1 # columns CastToBlob('0129abCF', zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml1.testcase0000664000175000017500000000056612544707704021001 00000000000000FromGML - Point :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2')):0 SRID=4326;POINT(1 2) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt37.testcase0000664000175000017500000000071112544707704021255 00000000000000fromewkt37 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0 9 7), LINESTRING(1 1 9 7, 2 2 9 7))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0 9 7), LINESTRING(1 1 9 7, 2 2 9 7))))')); GEOMETRYCOLLECTION ZM(POINT ZM(0 0 9 7), LINESTRING ZM(1 1 9 7, 2 2 9 7)) libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson27.testcase0000664000175000017500000000066112544707704021752 00000000000000FromGeoJSON - polygon with SRID, not closed :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"Polygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[1,2.3],[4,1.2],[2,1.6]]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"Polygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[1,2.3],[4,1.2],[2,1.6]]]}')):0 (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt19.testcase0000664000175000017500000000122112544707704021252 00000000000000fromewkt19 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(MULTIPOLYGONM(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(MULTIPOLYGONM(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))))')); GEOMETRYCOLLECTION M(POLYGON M((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), POLYGON M((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))) libspatialite-4.3.0a/test/sql_stmt_tests/locatemeasure19.testcase0000664000175000017500000000102512544707704022247 00000000000000ST_Locate_Along_Measure - Alternate name :memory: #use in-memory database SELECT AsText(ST_LocateAlong(GeomFromText('LINESTRINGZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.1, 6 1 106 2.1)'), 2.1)); 1 # rows (not including the header row) 1 # columns AsText(ST_LocateAlong(GeomFromText('LINESTRINGZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.1, 6 1 106 2.1)'), 2.1)) GEOMETRYCOLLECTION ZM(POINT ZM(0 1 100 2.1), POINT ZM(2 1 102 2.1), LINESTRING ZM(5 0 105 2.1, 6 1 106 2.1)) libspatialite-4.3.0a/test/sql_stmt_tests/lhr2.testcase0000664000175000017500000000024112544707704020112 00000000000000forceLHR - invalid :memory: #use in-memory database SELECT ST_ForceLHR("alpha"); 1 # rows (not including the header row) 1 # columns ST_ForceLHR("alpha") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/assvg6.testcase0000664000175000017500000000021712544707704020457 00000000000000assvg - 1 arg - integer :memory: #use in-memory database SELECT assvg(49) 1 # rows (not including the header row) 1 # columns assvg(49) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridprimem3.testcase0000664000175000017500000000027412544707704021507 00000000000000SridGetPrimeMeridian() - DOUBLE SRID :memory: #use in-memory database SELECT SridGetPrimeMeridian(1.0) 1 # rows (not including the header row) 1 # columns SridGetPrimeMeridian(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/setpoint1.testcase0000664000175000017500000000027112544707704021174 00000000000000ST_SetPoint() - NULL line :memory: #use in-memory database SELECT ST_SetPoint(NULL, NULL, NULL) 1 # rows (not including the header row) 1 # columns ST_SetPoint(NULL, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/us_in_m.testcase0000664000175000017500000000023212544707704020674 00000000000000us inches to metres :memory: #use in-memory database SELECT CvtFromUsIn(10); 1 # rows (not including the header row) 1 # columns CvtFromUsIn(10); 0.254:5 libspatialite-4.3.0a/test/sql_stmt_tests/setpoint3.testcase0000664000175000017500000000027112544707704021176 00000000000000ST_SetPoint() - DOUBLE line :memory: #use in-memory database SELECT ST_SetPoint(1.5, NULL, NULL) 1 # rows (not including the header row) 1 # columns ST_SetPoint(1.5, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/aswkt-text.testcase0000664000175000017500000000023512544707704021361 00000000000000aswkt-text :memory: #use in-memory database SELECT AsWkt("not a blob", 4); 1 # rows (not including the header row) 1 # columns AsWkt("not a blob", 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb15.testcase0000664000175000017500000000071712544707704021030 00000000000000fromWkb - GeometryCollection :memory: #use in-memory database SELECT Hex(GeometryCollectionFromWkb(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2))", 4326)), 4326)) 1 # rows (not including the header row) 1 # columns Hex(GeometryCollectionFromWkb(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2))", 4326)), 4326)) 0001E6100000000000000000F03F0000000000000040000000000000F03F00000000000000407C07000000010000006901000000000000000000F03F0000000000000040FE libspatialite-4.3.0a/test/sql_stmt_tests/asfgf8.testcase0000664000175000017500000000041012544707704020417 00000000000000asfgf - pointxy, 2 dim :memory: #use in-memory database SELECT Hex(AsFGF(GeomFromText("POINT(1 2)"), 2)) 1 # rows (not including the header row) 1 # columns Hex(AsFGF(GeomFromText("POINT(1 2)"), 2)) 0100000002000000000000000000F03F00000000000000400000000000000000 libspatialite-4.3.0a/test/sql_stmt_tests/addpoint10.testcase0000664000175000017500000000037412544707704021215 00000000000000ST_AddPoint() - BLOB Point :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), zeroblob(4)) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sanitizeGeometry13.testcase0000664000175000017500000000117312544707704022756 00000000000000Sanitize Geometry - POLYGON with interior :memory: #use in-memory database SELECT AsText(SanitizeGeometry(GeomFromText("POLYGON((-10 -10, -10 -10, 10 -10, 10 10, -10 10, -10 -10, -10 -10),(-6 -6, -6 -5, -5 -5, -5 -5, -5 -5, -5 -6, -6 -6),(6 6, 5 6, 5 6, 5 5, 6 5, 6 6))"))) 1 # rows (not including the header row) 1 # columns AsText(SanitizeGeometry(GeomFromText("POLYGON((-10 -10, -10 -10, 10 -10, 10 10, -10 10, -10 -10, -10 -10),(-6 -6, -6 -5, -5 -5, -5 -5, -5 -5, -5 -6, -6 -6),(6 6, 5 6, 5 6, 5 5, 6 5, 6 6))"))) POLYGON((-10 -10, 10 -10, 10 10, -10 10, -10 -10), (-6 -6, -6 -5, -5 -5, -5 -6, -6 -6), (6 6, 5 6, 5 5, 6 5, 6 6)) libspatialite-4.3.0a/test/sql_stmt_tests/rotatecoords7.testcase0000664000175000017500000000144712544707704022053 00000000000000rotate coords - Simple polygon :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("POLYGON((0 0, 1 1, 1 2, -1 1, 0 0))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) POLYGON((0 0, 1 1, 1 2, -1 1, 0 0)) POLYGON((0 0, 1 -1, 2 -1, 1 1, 0 0)) POLYGON((0 0, -1 -1, -1 -2, 1 -1, 0 0)) POLYGON((0 0, -1 1, -2 1, -1 -1, 0 0)) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/setendpoint13.testcase0000664000175000017500000000045412544707704021751 00000000000000ST_SetEndPoint() - XY :memory: #use in-memory database SELECT AsText(SetEndPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), MakePoint(2, 3))) 1 # rows (not including the header row) 1 # columns AsText(SetEndPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), MakePoint(2, 3))) LINESTRING(0 0, 1 0, 2 3) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext3.testcase0000664000175000017500000000035212544707704022051 00000000000000geomfromtext3 :memory: #use in-memory database SELECT AsWkt(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), 4); 1 # rows (not including the header row) 1 # columns AsWkt(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"), 4) LINESTRING(4 0,4 4,8 4)libspatialite-4.3.0a/test/sql_stmt_tests/fromgml29.testcase0000664000175000017500000000077212544707704021072 00000000000000FromGML - GeometryCollection, single point :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2')) 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2')):0 SRID=-1;GEOMETRYCOLLECTION(POINT(1 2)) libspatialite-4.3.0a/test/sql_stmt_tests/getlayerextent8.testcase0000664000175000017500000000027512544707704022406 00000000000000GetLayerExtent - TEXT, DOUBLE :memory: #use in-memory database SELECT GetLayerExtent('table', 1.1); 1 # rows (not including the header row) 1 # columns GetLayerExtent('table', 1.1); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude11.testcase0000664000175000017500000000061712544707704022444 00000000000000shiftlongitude - negative longitude polygonz :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGONZ((-170 0 1, -175 2 2.4, -179 4 3.2, -170 0 1))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGONZ((-170 0 1, -175 2 2.4, -179 4 3.2, -170 0 1))", 4326))) POLYGON Z((190 0 1, 185 2 2.4, 181 4 3.2, 190 0 1)) libspatialite-4.3.0a/test/sql_stmt_tests/asbinary1.testcase0000664000175000017500000000036012544707704021136 00000000000000asbinary :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("Point(1 2)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("Point(1 2)", 4326))) 0101000000000000000000F03F0000000000000040 libspatialite-4.3.0a/test/sql_stmt_tests/mbr31.testcase0000664000175000017500000000044412544707704020174 00000000000000MbrDisjoint - Line + Point right :memory: #use in-memory database SELECT MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(3 1)")); 1 # rows (not including the header row) 1 # columns MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(3 1)")) # header 1libspatialite-4.3.0a/test/sql_stmt_tests/atmtrans2.testcase0000664000175000017500000000077312544707704021170 00000000000000ATM_Translate() - valid 2d (double) :memory: #use in-memory database SELECT Hex(ATM_Translate(ATM_Create(), 1.0, 2.0)) 1 # rows (not including the header row) 1 # columns Hex(ATM_Translate(ATM_Create(), 1.0, 2.0)) 0001000000000000F03F3A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A000000000000F03F3A00000000000000003A00000000000000403A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/namefrompath4.testcase0000664000175000017500000000027412544707704022016 00000000000000FileNameFromPath - DOUBLE :memory: #use in-memory database SELECT FileNameFromPath(zeroblob(10)); 1 # rows (not including the header row) 1 # columns FileNameFromPath(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb26.testcase0000664000175000017500000000246612544707704021035 00000000000000fromWkb - mixed big-little-endian sub-items (3) :memory: #use in-memory database SELECT AsText(GeomFromWkb(CastToBlob('0000000007000000030101000000000000000000F03F00000000000000400102000000020000000000000000000000000000000000000000000000000014400000000000002440010300000002000000050000000000000000000000000000000000000000000000000024400000000000000000000000000000244000000000000024400000000000000000000000000000244000000000000000000000000000000000050000000000000000001440000000000000144000000000000018400000000000001440000000000000184000000000000018400000000000001440000000000000184000000000000014400000000000001440', 1))); 1 # rows (not including the header row) 1 # columns AsText(GeomFromWkb(CastToBlob('0000000007000000030101000000000000000000F03F00000000000000400102000000020000000000000000000000000000000000000000000000000014400000000000002440010300000002000000050000000000000000000000000000000000000000000000000024400000000000000000000000000000244000000000000024400000000000000000000000000000244000000000000000000000000000000000050000000000000000001440000000000000144000000000000018400000000000001440000000000000184000000000000018400000000000001440000000000000184000000000000014400000000000001440', 1))) GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(0 0, 5 10), POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 5, 6 5, 6 6, 5 6, 5 5))) libspatialite-4.3.0a/test/sql_stmt_tests/atmtransform4.testcase0000664000175000017500000000075612544707704022057 00000000000000ATM_Transform() - invalid matrix :memory: #use in-memory database SELECT ATM_Transform(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2), POLYGON((10 10, 20 10, 20 20, 10 20, 10 10), (14 14, 16 14, 16 16, 14 16, 14 14)))'), zeroblob(4)); 1 # rows (not including the header row) 1 # columns ATM_Transform(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2), POLYGON((10 10, 20 10, 20 20, 10 20, 10 10), (14 14, 16 14, 16 16, 14 16, 14 14)))'), zeroblob(4)); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridax2orient6.testcase0000664000175000017500000000031012544707704022123 00000000000000SridGetAxis_2_Orientation() - 32632 :memory: #use in-memory database SELECT SridGetAxis_2_Orientation(32632) 1 # rows (not including the header row) 1 # columns SridGetAxis_2_Orientation(32632) North libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr14.testcase0000664000175000017500000000025512544707704021052 00000000000000garsmbr - bad latitude :memory: #use in-memory database SELECT AsText(GARSMbr("001--")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("001--")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridflipped1.testcase0000664000175000017500000000026612544707704021640 00000000000000SridHasFlippedAxes() - NULL SRID :memory: #use in-memory database SELECT SridHasFlippedAxes(NULL) 1 # rows (not including the header row) 1 # columns SridHasFlippedAxes(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull19.testcase0000664000175000017500000000026312544707704021412 00000000000000ForceAsNull() - NULL/TEXT :memory: #use in-memory database SELECT ForceAsNull(NULL, 'alpha') 1 # rows (not including the header row) 1 # columns ForceAsNull(NULL, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepoint1.testcase0000664000175000017500000000025712544707704021322 00000000000000makepoint1 :memory: #use in-memory database SELECT AsText(MakePoint(136, -35)); 1 # rows (not including the header row) 1 # columns AsText(MakePoint(136, -35)) POINT(136 -35) libspatialite-4.3.0a/test/sql_stmt_tests/atmastext5.testcase0000664000175000017500000000026112544707704021344 00000000000000ATM_AsText() - invalid blob :memory: #use in-memory database SELECT ATM_AsText(zeroblob(10)) 1 # rows (not including the header row) 1 # columns ATM_AsText(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml24.testcase0000664000175000017500000000170712544707704021064 00000000000000FromGML - MultiLinestring v3 3D (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1 2 10 3 4 11 5 6 137 8 13 9 10 13')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1 2 10 3 4 11 5 6 137 8 13 9 10 13')):0 SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 13),(7 8 13,9 10 13)) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml37.testcase0000664000175000017500000000067012544707704021066 00000000000000FromGML - poslist polygon, bad contents :memory: #use in-memory database SELECT AsText(GeomFromGml('foo')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('foo')):0 (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/togars11.testcase0000664000175000017500000000041612544707704020710 00000000000000togars - MultiPoint (two Points) :memory: #use in-memory database SELECT ToGARS(GeomFromText("MULTIPOINT(11.876910 43.461390, 12 43)", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("MULTIPOINT(11.876910 43.461390, 12 43)", 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt12.testcase0000664000175000017500000000060312544707704021246 00000000000000fromtewkt12 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTILINESTRING((0 1 9, 2 3 9), (4 5 9, 6 7 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTILINESTRING((0 1 9, 2 3 9), (4 5 9, 6 7 9)))')); GEOMETRYCOLLECTION Z(LINESTRING Z(0 1 9, 2 3 9), LINESTRING Z(4 5 9, 6 7 9)) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract17.testcase0000664000175000017500000000046312544707704022441 00000000000000Collection Extract - Extract linestringM :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("LINESTRINGM(1 2 4, 4 3 1)"), 2)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("LINESTRINGM(1 2 4, 4 3 1)"), 2)) LINESTRING M(1 2 4, 4 3 1) libspatialite-4.3.0a/test/sql_stmt_tests/casttoxyzm4.testcase0000664000175000017500000000033712544707704021562 00000000000000casttoxyzm - POINT :memory: #use in-memory database SELECT AsText(CastToXYZM(GeomFromText("POINT(4 3)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYZM(GeomFromText("POINT(4 3)"))) POINT ZM(4 3 0 0) libspatialite-4.3.0a/test/sql_stmt_tests/todms1.testcase0000664000175000017500000000025612544707704020460 00000000000000todms - NULL longitude :memory: #use in-memory database SELECT LongLatToDMS(NULL, 42.5); 1 # rows (not including the header row) 1 # columns LongLatToDMS(NULL, 42.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asgeojson7.testcase0000664000175000017500000000043412544707704021326 00000000000000asgeojson - bad args (3 arg, out of range option) :memory: #use in-memory database SELECT asgeojson(GeomFromText("Point(1 2)", 4326), 4, 22); 1 # rows (not including the header row) 1 # columns asgeojson(GeomFromText("Point(1 2)", 4326), 4, 22) {"type":"Point","coordinates":[1,2]}:0 libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude20.testcase0000664000175000017500000000131012544707704022433 00000000000000shiftlongitude - polygonm, negative interior rings :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGONM((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4),(-177 1 4, -177 2 5, -178 2 6, -178 1 9, -177 1 4),(-179 4 0, 179 4 0, 179 5 0, -179 5 0, -179 4 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGONM((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4),(-177 1 4, -177 2 5, -178 2 6, -178 1 9, -177 1 4),(-179 4 0, 179 4 0, 179 5 0, -179 5 0, -179 4 0))", 4326))) POLYGON M((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4), (183 1 4, 183 2 5, 182 2 6, 182 1 9, 183 1 4), (181 4 0, 179 4 0, 179 5 0, 181 5 0, 181 4 0)) libspatialite-4.3.0a/test/sql_stmt_tests/sridisprojected4.testcase0000664000175000017500000000025512544707704022531 00000000000000SridIsProjected() - DOUBLE SRID :memory: #use in-memory database SELECT SridIsProjected(1.0) 1 # rows (not including the header row) 1 # columns SridIsProjected(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/dissolve24.testcase0000664000175000017500000000067612544707704021255 00000000000000dissolve - Overlap points M :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("LINESTRINGM(0 1 0, 0 2 1, 1 2 2, 1 2 3, 1 2 3)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING M((0 1 0, 0 2 1), (0 2 1, 1 2 2), (1 2 2, 1 2 3)) MULTIPOINT M(0 1 0, 0 2 1, 1 2 2, 1 2 3, 1 2 3) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector2.testcase0000664000175000017500000000034512544707704023215 00000000000000makeellipticsector2 - text cx :memory: #use in-memory database SELECT MakeEllipticSector('alpha', 0, 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector('alpha', 0, 100, 200, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude16.testcase0000664000175000017500000000134512544707704022450 00000000000000shiftlongitude - positive and negative longitude polygonz, interior rings :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGONZ((-175 0 4, -176 10 5, 175 10 5, 176 0 5, -175 0 4),(-177 1 4, -177 2 5, -178 2 6, -178 1 9, -177 1 4),(-179 4 0, 179 4 0, 179 5 0, -179 5 0, -179 4 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGONZ((-175 0 4, -176 10 5, 175 10 5, 176 0 5, -175 0 4),(-177 1 4, -177 2 5, -178 2 6, -178 1 9, -177 1 4),(-179 4 0, 179 4 0, 179 5 0, -179 5 0, -179 4 0))", 4326))) POLYGON Z((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4), (183 1 4, 183 2 5, 182 2 6, 182 1 9, 183 1 4), (181 4 0, 179 4 0, 179 5 0, 181 5 0, 181 4 0)) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc24.testcase0000664000175000017500000000036112544707704022545 00000000000000makeellipticarc24 - text step :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb14.testcase0000664000175000017500000000057612544707704021032 00000000000000fromWkb - mandatory POINT, 2 arg :memory: #use in-memory database SELECT Hex(PointFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326)), 4326)) 1 # rows (not including the header row) 1 # columns Hex(PointFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326)), 4326)) 0001E6100000000000000000F03F0000000000000040000000000000F03F00000000000000407C01000000000000000000F03F0000000000000040FE libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc21.testcase0000664000175000017500000000035512544707704022545 00000000000000makeellipticarc21 - BLOB srid :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, 30, 60, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, 30, 60, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/rotatecoords12.testcase0000664000175000017500000000205212544707704022120 00000000000000rotate coords - Two ring polygonz :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("POLYGONZ((0 0 1, 2 2 2, 2 4 3, -2 2 4, 0 0 1),(0 0 5, 1 1 6, 1 2 7, -1 1 8, 0 0 5))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) POLYGON Z((0 0 1, 2 2 2, 2 4 3, -2 2 4, 0 0 1), (0 0 5, 1 1 6, 1 2 7, -1 1 8, 0 0 5)) POLYGON Z((0 0 1, 2 -2 2, 4 -2 3, 2 2 4, 0 0 1), (0 0 5, 1 -1 6, 2 -1 7, 1 1 8, 0 0 5)) POLYGON Z((0 0 1, -2 -2 2, -2 -4 3, 2 -2 4, 0 0 1), (0 0 5, -1 -1 6, -1 -2 7, 1 -1 8, 0 0 5)) POLYGON Z((0 0 1, -2 2 2, -4 2 3, -2 -2 4, 0 0 1), (0 0 5, -1 1 6, -2 1 7, -1 -1 8, 0 0 5)) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/invalidatestats10.testcase0000664000175000017500000000033112544707704022603 00000000000000InvalidateLayerStatistics - TEXT, NULL :memory: #use in-memory database SELECT InvalidateLayerStatistics('table', NULL); 1 # rows (not including the header row) 1 # columns InvalidateLayerStatistics('table', NULL); 0 libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson11.testcase0000664000175000017500000000070212544707704021737 00000000000000FromGeoJSON - linestringZ with SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"LineString","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[1,2,2.3],[4,5,1.2]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"LineString","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[1,2,2.3],[4,5,1.2]]}')):0 SRID=3003;LINESTRING(1 2 2.3,4 5 1.2) libspatialite-4.3.0a/test/sql_stmt_tests/casttosingle5.testcase0000664000175000017500000000040312544707704022027 00000000000000casttosingle - MULTIPOINT, two points :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("MULTIPOINT(3 1, 4.2 2)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("MULTIPOINT(3 1, 4.2 2)"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc23.testcase0000664000175000017500000000035312544707704022545 00000000000000makeellipticarc23 - NULL step :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326, NULL); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepointm-null3.testcase0000664000175000017500000000032312544707704022443 00000000000000makepointm-null3 :memory: #use in-memory database SELECT AsText(MakePointM(26.0, "world", 18.63, 4326)); 1 # rows (not including the header row) 1 # columns AsText(MakePointM(26.0, "world", 18.63, 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttoblob14.testcase0000664000175000017500000000045012544707704021546 00000000000000CastToBlob() - Valid (2) hex_input :memory: #use in-memory database SELECT Hex(CastToBlob(CastToBlob('0123456789aBcDeFfEdCbA9876543210'), 1)) 1 # rows (not including the header row) 1 # columns Hex(CastToBlob(CastToBlob('0123456789aBcDeFfEdCbA9876543210'), 1)) 0123456789ABCDEFFEDCBA9876543210 libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson23.testcase0000664000175000017500000000127312544707704021746 00000000000000FromGeoJSON - geometry collection, SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,13,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[13,3],[4,6]]]}]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"GeometryCollection","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[4,3,13,10],"geometries":[{"type":"Point","coordinates":[4,6]},{"type":"Polygon","coordinates":[[[4,6],[7,10],[13,3],[4,6]]]}]}')):0 SRID=3003;GEOMETRYCOLLECTION(POINT(4 6),POLYGON((4 6,7 10,13 3,4 6))) libspatialite-4.3.0a/test/sql_stmt_tests/buildcirclembr12.testcase0000664000175000017500000000031212544707704022367 00000000000000buildcirclembr - null args / no srid :memory: #use in-memory database SELECT BuildCircleMbr(NULL, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildCircleMbr(NULL, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/st_y5.testcase0000664000175000017500000000022112544707704020304 00000000000000ST_Y5 :memory: #use in-memory database SELECT ST_Y(zeroblob(10)); 1 # rows (not including the header row) 1 # columns ST_Y(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/isempty.testcase0000664000175000017500000000027112544707704020740 00000000000000isempty :memory: #use in-memory database SELECT IsEmpty(GeomFromText("Point(1 2)", 4326)) 1 # rows (not including the header row) 1 # columns IsEmpty(GeomFromText("Point(1 2)", 4326)) 0libspatialite-4.3.0a/test/sql_stmt_tests/st_x6.testcase0000664000175000017500000000022112544707704020304 00000000000000ST_X6 :memory: #use in-memory database SELECT ST_X(zeroblob(10)); 1 # rows (not including the header row) 1 # columns ST_X(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/scalecoords1.testcase0000664000175000017500000000132512544707704021631 00000000000000scale coords - Point :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("POINT(1 2)") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) POINT(0 0) POINT(0 0) POINT(2 6) POINT(1 -2) (NULL) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepoint15.testcase0000664000175000017500000000034112544707704021401 00000000000000makepoint - MakepointZM, bad SRID arg :memory: #use in-memory database SELECT AsText(MakePointZM(-71, 42, 3, 4, "hello")) 1 # rows (not including the header row) 1 # columns AsText(MakePointZM(-71, 42, 3, 4, "hello")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geometryn3.testcase0000664000175000017500000000025612544707704021345 00000000000000Geometry N - text input (error) :memory: #use in-memory database SELECT GeometryN("text", 2); 1 # rows (not including the header row) 1 # columns GeometryN("text", 2) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate9.testcase0000664000175000017500000000042612544707704021306 00000000000000ATM_Create() - invalid 4th arg :memory: #use in-memory database SELECT ATM_Create(1.0, 2.0, 3.0, 'a', 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0) 1 # rows (not including the header row) 1 # columns ATM_Create(1.0, 2.0, 3.0, 'a', 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector1.testcase0000664000175000017500000000033712544707704023215 00000000000000makeellipticsector1 - NULL cx :memory: #use in-memory database SELECT MakeEllipticSector(NULL, 0, 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(NULL, 0, 100, 200, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude23.testcase0000664000175000017500000000064012544707704022443 00000000000000shiftlongitude - simple polygonz, all positive :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGON Z((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGON Z((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4))", 4326))) POLYGON Z((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4)) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract11.testcase0000664000175000017500000000041312544707704022426 00000000000000Collection Extract - PointZM :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POINTZM(1 2 3 4)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POINTZM(1 2 3 4)"), 1)) POINT ZM(1 2 3 4) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint27.testcase0000664000175000017500000000050712544707704021223 00000000000000ST_AddPoint() - insert into the middle M :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2)'), MakePoint(1, 1), 1)) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRINGM(0 0 1, 1 0 2)'), MakePoint(1, 1), 1)) LINESTRING M(0 0 1, 1 1 0, 1 0 2) libspatialite-4.3.0a/test/sql_stmt_tests/atmdeterminant1.testcase0000664000175000017500000000025112544707704022341 00000000000000ATM_Determinant() - NULL arg :memory: #use in-memory database SELECT ATM_Determinant(NULL) 1 # rows (not including the header row) 1 # columns ATM_Determinant(NULL) 0.0 libspatialite-4.3.0a/test/sql_stmt_tests/ewkb11.testcase0000664000175000017500000000220712544707704020341 00000000000000EWkb: GeometryCollection XYZ :memory: #use in-memory database SELECT AsText(GeomFromEWkb('01070000A0E61000000400000001010000809A9999999999F13F9A999999999901400000000000005940010200008002000000000000000000F03F00000000000000400000000000005940000000000000084000000000000010400000000000405940010300008002000000050000000000000000002440000000000000244000000000000059400000000000002E40000000000000244000000000004059400000000000002E400000000000002E40000000000080594000000000000024400000000000002E400000000000C05940000000000000244000000000000024400000000000005940050000000000000000002840000000000000284000000000004059400000000000002A40000000000000284000000000008059400000000000002A400000000000002A400000000000C0594000000000000028400000000000002A400000000000005A400000000000002840000000000000284000000000004059400101000080000000000000304000000000000030400000000000005940')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom GEOMETRYCOLLECTION Z(POINT Z(1.1 2.2 100), POINT Z(16 16 100), LINESTRING Z(1 2 100, 3 4 101), POLYGON Z((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (12 12 101, 13 12 102, 13 13 103, 12 13 104, 12 12 101))) libspatialite-4.3.0a/test/sql_stmt_tests/extfrompath1.testcase0000664000175000017500000000024712544707704021673 00000000000000FileExtFromPath - NULL :memory: #use in-memory database SELECT FileExtFromPath(NULL); 1 # rows (not including the header row) 1 # columns FileExtFromPath(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepoint-null1.testcase0000664000175000017500000000031612544707704022266 00000000000000makepoint-null1 :memory: #use in-memory database SELECT AsText(MakePoint("hello", 42.3150676015829)); 1 # rows (not including the header row) 1 # columns AsText(MakePoint("hello", 42.3150676015829)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml7.testcase0000664000175000017500000000151112544707704020776 00000000000000FromGML - Polygon v2 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01,1 2,1 2,2 1,2 1,1')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01,1 2,1 2,2 1,2 1,1')):0 SRID=4326;POLYGON((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1)) libspatialite-4.3.0a/test/sql_stmt_tests/collect41.testcase0000664000175000017500000000140712544707704021042 00000000000000collect - PolygonZ, PolygonZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONZ((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONZM((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4),(2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONZ((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONZM((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4),(2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))"))); MULTIPOLYGON ZM(((1 2 4 0, 3 4 2 0, 3 2 3 0, 1 2 4 0), (1.5 2.5 4 0, 2.5 3.5 3 0, 2.5 2.3 3 0, 1.5 2.5 4 0)), ((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4), (2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))) libspatialite-4.3.0a/test/sql_stmt_tests/geodesic-len2.testcase0000664000175000017500000000031412544707704021664 00000000000000geodesic length linestring :memory: SELECT GeodesicLength(GeomFromText("LINESTRING(0 0, 1 0, 0 0)", 4326)); 1 # rows 1 # column GeodesicLength(GeomFromText("LINESTRING(0 0, 1 0, 0 0)", 4326)) 222638.98:9 libspatialite-4.3.0a/test/sql_stmt_tests/addpoint4.testcase0000664000175000017500000000026312544707704021135 00000000000000ST_AddPoint() - TEXT line :memory: #use in-memory database SELECT ST_AddPoint('alpha', NULL) 1 # rows (not including the header row) 1 # columns ST_AddPoint('alpha', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/locatemeasure7.testcase0000664000175000017500000000060012544707704022162 00000000000000ST_Locate_Between_Measures - MultiPointM - no match :memory: #use in-memory database SELECT ST_Locate_Between_Measures(GeomFromText('MULTIPOINTM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5)'), 20, 30.1); 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures(GeomFromText('MULTIPOINTM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.5)'), 20, 30.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc14.testcase0000664000175000017500000000034612544707704022547 00000000000000makeellipticarc14 - blob start :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, zeroblob(4), 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, zeroblob(4), 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridax2name4.testcase0000664000175000017500000000026612544707704021553 00000000000000SridGetAxis_2_Name() - DOUBLE SRID :memory: #use in-memory database SELECT SridGetAxis_2_Name(1.0) 1 # rows (not including the header row) 1 # columns SridGetAxis_2_Name(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/assvg22.testcase0000664000175000017500000000066312544707704020542 00000000000000assvg - relative/absolute Polygon :memory: #use in-memory database SELECT assvg(geom, 1) AS rel, assvg(geom, 0) AS abs FROM (SELECT GeomFromText("POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11))", 4326) AS geom) dummy; 1 # rows (not including the header row) 2 # columns rel abs M 10 -10 l 5 0 0 -5 -5 0 z M 11 -11 l 1 0 0 -1 -1 0 z M 10 -10 L 15 -10 15 -15 10 -15 z M 11 -11 L 12 -11 12 -12 11 -12 z libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector4.testcase0000664000175000017500000000032512544707704023214 00000000000000makecircularsector4 - NULL cy :memory: #use in-memory database SELECT MakeCircularSector(0, NULL, 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, NULL, 100, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc5.testcase0000664000175000017500000000033412544707704022464 00000000000000makeellipticarc5 - text cy :memory: #use in-memory database SELECT MakeEllipticArc(0, 'alpha', 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 'alpha', 100, 200, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr36.testcase0000664000175000017500000000041612544707704021055 00000000000000garsmbr - 361HN35 :memory: #use in-memory database SELECT AsText(GARSMbr("361HN35")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("361HN35")) POLYGON((0.083333 0.083333, 0.166667 0.083333, 0.166667 0.166667, 0.083333 0.166667, 0.083333 0.083333)) libspatialite-4.3.0a/test/sql_stmt_tests/maxm2.testcase0000664000175000017500000000024012544707704020266 00000000000000MaxM - bad blob :memory: #use in-memory database SELECT ST_MaxM(zeroblob(48)) 1 # rows (not including the header row) 1 # columns ST_MaxM(zeroblob(48)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/reflectcoords3.testcase0000664000175000017500000000035012544707704022165 00000000000000reflectcoords3 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 0, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 0, 1)) POINT(1 -2) libspatialite-4.3.0a/test/sql_stmt_tests/setpoint12.testcase0000664000175000017500000000037612544707704021264 00000000000000ST_SetPoint() - DOUBLE Point :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, 1.5) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, 1.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry51.testcase0000664000175000017500000000062412544707704023025 00000000000000CompressGeometry - GEOMETRYCOLLECTION Z (2 Points) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), POINTZ(3 4 101))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), POINTZ(3 4 101))", 4326))) GEOMETRYCOLLECTION Z(POINT Z(1 2 100), POINT Z(3 4 101)) libspatialite-4.3.0a/test/sql_stmt_tests/makearc4.testcase0000664000175000017500000000026412544707704020737 00000000000000makearc4 - NULL cy :memory: #use in-memory database SELECT MakeArc(0, NULL, 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeArc(0, NULL, 100, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb10.testcase0000664000175000017500000000101612544707704021014 00000000000000fromWkb - mandatory POLYGON, 2 arg :memory: #use in-memory database SELECT Hex(PolygonFromWkb(AsBinary(GeomFromText("POLYGON((1 2, 3 1, 4 4, 1 2))")), 4326)) 1 # rows (not including the header row) 1 # columns Hex(PolygonFromWkb(AsBinary(GeomFromText("POLYGON((1 2, 3 1, 4 4, 1 2))")), 4326)) 0001E6100000000000000000F03F000000000000F03F000000000000104000000000000010407C030000000100000004000000000000000000F03F00000000000000400000000000000840000000000000F03F00000000000010400000000000001040000000000000F03F0000000000000040FE libspatialite-4.3.0a/test/sql_stmt_tests/fdo_ogr1.testcase0000664000175000017500000000020512544707704020743 00000000000000FDO_OGR1 :memory: #use in-memory database SELECT AutoFDOStart() 1 # rows (not including the header row) 1 # columns AutoFDOStart() 0 libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt20.testcase0000664000175000017500000000043512544707704021250 00000000000000fromewkt20 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;MULTIPOINTM((0 1 9), (2 3 9), (4 5 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;MULTIPOINTM((0 1 9), (2 3 9), (4 5 9))')); MULTIPOINT M(0 1 9, 2 3 9, 4 5 9) libspatialite-4.3.0a/test/sql_stmt_tests/asgeojson3.testcase0000664000175000017500000000036212544707704021322 00000000000000asgeojson - bad args (2 arg, bad precision) :memory: #use in-memory database SELECT asgeojson(GeomFromText("Point(1 2)", 4326), 4.2); 1 # rows (not including the header row) 1 # columns asgeojson(GeomFromText("Point(1 2)", 4326), 4.2) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull18.testcase0000664000175000017500000000025512544707704021412 00000000000000ForceAsNull() - NULL/DOUBLE :memory: #use in-memory database SELECT ForceAsNull(NULL, 1.5) 1 # rows (not including the header row) 1 # columns ForceAsNull(NULL, 1.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull28.testcase0000664000175000017500000000032212544707704021406 00000000000000ForceAsNull() - BLOB - mismatching :memory: #use in-memory database SELECT ForceAsNull(x'0102a1b2', x'0102a1b2') 1 # rows (not including the header row) 1 # columns ForceAsNull(x'0102a1b2', x'0102a1b2') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/mbr18.testcase0000664000175000017500000000050712544707704020201 00000000000000MbrOverlaps - Line + Polygon :memory: #use in-memory database SELECT MbrOverlaps(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POLYGON((0 0, 0 2, 1 2, 1 0, 0 0))")); 1 # rows (not including the header row) 1 # columns MbrOverlaps(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POLYGON((0 0, 0 2, 1 2, 1 0, 0 0))")) 1libspatialite-4.3.0a/test/sql_stmt_tests/srid8.testcase0000664000175000017500000000032112544707704020273 00000000000000SetSRID - invalid srid :memory: #use in-memory database SELECT SetSRID(GeomFromText("Point(1 2)"), "four") 1 # rows (not including the header row) 1 # columns SetSRID(GeomFromText("Point(1 2)"), "four") (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/casttopoly5.testcase0000664000175000017500000000052012544707704021531 00000000000000casttopoly - Geometry collection, point plus polygon :memory: #use in-memory database SELECT CastToPolygon(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),POINT(1 2))")) 1 # rows (not including the header row) 1 # columns CastToPolygon(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),POINT(1 2))")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon10.testcase0000664000175000017500000000043012544707704021731 00000000000000makepolygon - Linestring exterior (not closed) :memory: #use in-memory database SELECT MakePolygon(GeomFromText('LINESTRING(1 1, 1 2, 2 2, 2 1)', 4326)); 1 # rows (not including the header row) 1 # columns MakePolygon(GeomFromText('LINESTRING(1 1, 1 2, 2 2, 2 1)', 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/buildmbr11.testcase0000664000175000017500000000027512544707704021214 00000000000000buildmbr - null args, no SRID :memory: #use in-memory database SELECT BuildMbr(5, NULL, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildMbr(5, NULL, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson18.testcase0000664000175000017500000000075012544707704021751 00000000000000FromGeoJSON - multipoint, SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"MultiPoint","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[1,2,4,6],"coordinates":[[1,2],[4,6]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"MultiPoint","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[1,2,4,6],"coordinates":[[1,2],[4,6]]}')):0 SRID=3003;MULTIPOINT(1 2,4 6) libspatialite-4.3.0a/test/sql_stmt_tests/casttosingle7.testcase0000664000175000017500000000053012544707704022032 00000000000000casttosingle - POLYGON and POINT :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("GEOMETRYCOLLECTION(POLYGON((0 1, 2 1, 2 4, 0 4, 0 1)),POINT(4 2.3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("GEOMETRYCOLLECTION(POLYGON((0 1, 2 1, 2 4, 0 4, 0 1)),POINT(4 2.3))"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatexroll3.testcase0000664000175000017500000000073012544707704022357 00000000000000ATM_CreateXRoll() - valid double :memory: #use in-memory database SELECT Hex(ATM_CreateXRoll(15.0)) 1 # rows (not including the header row) 1 # columns Hex(ATM_CreateXRoll(15.0)) 0001000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A15BF4847DDE8EE3F3A900693C17D90D0BF3A00000000000000003A00000000000000003A900693C17D90D03F3A15BF4847DDE8EE3F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/addpoint7.testcase0000664000175000017500000000035312544707704021140 00000000000000ST_AddPoint() - INTEGER Point :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), 1) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/buildcirclembr6.testcase0000664000175000017500000000030712544707704022316 00000000000000buildcirclembr - null args :memory: #use in-memory database SELECT BuildCircleMbr(5, NULL, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildCircleMbr(5, NULL, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype31.testcase0000664000175000017500000000064612544707704021251 00000000000000geometrytype - GEOMETRYCOLLECTIONM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONM(POINTM(4 6 4), POINTM(3 3 29), LINESTRINGM(4 6 0,7 0 0))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION M XYM GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/setstartpoint16.testcase0000664000175000017500000000053512544707704022343 00000000000000ST_SetStartPoint() - ZM :memory: #use in-memory database SELECT AsText(SetStartPoint(GeomFromText('LINESTRINGZM(0 0 1 2, 1 0 2 3, 1 1 3 4)'), MakePoint(2, 3))) 1 # rows (not including the header row) 1 # columns AsText(SetStartPoint(GeomFromText('LINESTRINGZM(0 0 1 2, 1 0 2 3, 1 1 3 4)'), MakePoint(2, 3))) LINESTRING ZM(2 3 0 0, 1 0 2 3, 1 1 3 4) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint19.testcase0000664000175000017500000000045012544707704021221 00000000000000ST_AddPoint() - append (no index) :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1))) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1))) LINESTRING(0 0, 1 0, 1 1) libspatialite-4.3.0a/test/sql_stmt_tests/m_us_ft.testcase0000664000175000017500000000023312544707704020700 00000000000000metres to US feet :memory: #use in-memory database SELECT CvtToUsFt(100.0); 1 # rows (not including the header row) 1 # columns CvtToUsFt(100.0); 328.08:6 libspatialite-4.3.0a/test/sql_stmt_tests/shiftcoords11.testcase0000664000175000017500000000051312544707704021736 00000000000000shiftcoords - Linestring XYZM :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("LINESTRINGZM(1 2 10 20, 3 4 10 20)"), 1.4, 3.9)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("LINESTRINGZM(1 2 10 20, 3 4 10 20)"), 1.4, 3.9)) LINESTRING ZM(2.4 5.9 10 20, 4.4 7.9 10 20) libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints14.testcase0000664000175000017500000000044512544707704022635 00000000000000geometry constraints - 4 arg, text arg 3 :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("POINT(1 2)", 4326), "POINT", "hello", 4326) 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("POINT(1 2)", 4326), "POINT", "hello", 4326) -1 libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon4.testcase0000664000175000017500000000025312544707704021657 00000000000000makepolygon - TEXT exterior :memory: #use in-memory database SELECT MakePolygon('alpha'); 1 # rows (not including the header row) 1 # columns MakePolygon('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/dissolve7.testcase0000664000175000017500000000025112544707704021163 00000000000000dissolve points - null input :memory: #use in-memory database SELECT DissolvePoints(null) 1 # rows (not including the header row) 1 # columns DissolvePoints(null) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/removepoint13.testcase0000664000175000017500000000041312544707704021757 00000000000000ST_RemovePoint() - XY :memory: #use in-memory database SELECT AsText(RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1)) 1 # rows (not including the header row) 1 # columns AsText(RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1)) LINESTRING(0 0, 1 1) libspatialite-4.3.0a/test/sql_stmt_tests/isvalidrastertile4.testcase0000664000175000017500000000035012544707704023062 00000000000000IsValidRasterTile - NULL odd-tile NEW:memory: #use in-memory database SELECT IsValidRasterTile('alpha', 0, NULL, zeroblob(4)); 1 # rows (not including the header row) 1 # columns IsValidRasterTile('alpha', 0, NULL, zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_tests/srid3.testcase0000664000175000017500000000032012544707704020265 00000000000000SRID - set SRID :memory: #use in-memory database SELECT SRID(SetSRID(GeomFromText("Point(1 2)"), 4326)) 1 # rows (not including the header row) 1 # columns SRID(SetSRID(GeomFromText("Point(1 2)"), 4326)) 4326libspatialite-4.3.0a/test/sql_stmt_tests/geometryn9.testcase0000664000175000017500000000040712544707704021351 00000000000000Geometry N - multipointZM :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOINTZM(1 2 4 1.6)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOINTZM(1 2 4 1.6)"), 1)) POINT ZM(1 2 4 1.6) libspatialite-4.3.0a/test/sql_stmt_tests/mbr24.testcase0000664000175000017500000000044612544707704020200 00000000000000MbrTouches - Line + Point inside :memory: #use in-memory database SELECT MbrTouches(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(0.5 1)")); 1 # rows (not including the header row) 1 # columns MbrTouches(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(0.5 1)")) # header 0libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc1.testcase0000664000175000017500000000032612544707704022461 00000000000000makeellipticarc1 - NULL cx :memory: #use in-memory database SELECT MakeEllipticArc(NULL, 0, 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(NULL, 0, 100, 200, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttoblob4.testcase0000664000175000017500000000023412544707704021465 00000000000000CastToBlob() - INTEGER :memory: #use in-memory database SELECT CastToBlob(123) 1 # rows (not including the header row) 1 # columns CastToBlob(123) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/NumPoints3.testcase0000664000175000017500000000034212544707704021264 00000000000000NumPoints - Simple line Z :memory: #use in-memory database SELECT NumPoints(GeomFromText("LINESTRINGZ(0 0 0, 1 2 1)")); 1 # rows (not including the header row) 1 # column NumPoints(GeomFromText("LINESTRINGZ(0 0 0, 1 2 1)")) 2 libspatialite-4.3.0a/test/sql_stmt_tests/makeline11.testcase0000664000175000017500000000051012544707704021171 00000000000000makeline11 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINTZM(0 0 1.3 38.5)"), GeomFromText("POINTM(1 2 38.64)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINTZM(0 0 1.3 38.5)"), GeomFromText("POINTM(1 2 38.64)"))) LINESTRING ZM(0 0 1.3 38.5, 1 2 0 38.64) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry1.testcase0000664000175000017500000000052612544707704022741 00000000000000CompressGeometry :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("Point(1 2)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("Point(1 2)", 4326))) 0001E6100000000000000000F03F0000000000000040000000000000F03F00000000000000407C01000000000000000000F03F0000000000000040FE libspatialite-4.3.0a/test/sql_stmt_tests/casttoxyzm6.testcase0000664000175000017500000000035012544707704021557 00000000000000casttoxyzm - POINT :memory: #use in-memory database SELECT AsText(CastToXYZM(GeomFromText("POINTM(4 3 20)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYZM(GeomFromText("POINTM(4 3 20)"))) POINT ZM(4 3 0 20) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatexroll2.testcase0000664000175000017500000000072112544707704022356 00000000000000ATM_CreateXRoll() - valid int :memory: #use in-memory database SELECT Hex(ATM_CreateXRoll(15)) 1 # rows (not including the header row) 1 # columns Hex(ATM_CreateXRoll(15)) 0001000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A15BF4847DDE8EE3F3A900693C17D90D0BF3A00000000000000003A00000000000000003A900693C17D90D03F3A15BF4847DDE8EE3F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson5.testcase0000664000175000017500000000050212544707704021660 00000000000000FromGeoJSON - linestringZ :memory: #use in-memory database SELECT AsText(GeomFromGeoJSON('{"type":"LineString","coordinates":[[1,2,2.3],[4,5,1.2]]}')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGeoJSON('{"type":"LineString","coordinates":[[1,2,2.3],[4,5,1.2]]}')):0 LINESTRING Z(1 2 2.3, 4 5 1.2) libspatialite-4.3.0a/test/sql_stmt_tests/mbr29.testcase0000664000175000017500000000045112544707704020201 00000000000000MbrDisjoint - Line + Point down :memory: #use in-memory database SELECT MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(0.5 -2)")); 1 # rows (not including the header row) 1 # columns MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(0.5 -2)")) # header 1libspatialite-4.3.0a/test/sql_stmt_tests/geomtype12.testcase0000664000175000017500000000054612544707704021247 00000000000000geometrytype - MULTIPOINT :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTIPOINT (10 40, 40 30, 20 20, 30 10)") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTIPOINT XY MULTIPOINT libspatialite-4.3.0a/test/sql_stmt_tests/atmscale1.testcase0000664000175000017500000000074112544707704021122 00000000000000ATM_Scale() - valid (int) :memory: #use in-memory database SELECT Hex(ATM_Scale(ATM_Create(), 1, 2)) 1 # rows (not including the header row) 1 # columns Hex(ATM_Scale(ATM_Create(), 1, 2)) 0001000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A00000000000000403A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry35.testcase0000664000175000017500000000050312544707704023023 00000000000000CompressGeometry - MULTIPOINT Z :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOINTZ(10 10 100, 11 11 101)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOINTZ(10 10 100, 11 11 101)", 4326))) MULTIPOINT Z(10 10 100, 11 11 101) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry10.testcase0000664000175000017500000000102112544707704023010 00000000000000CompressGeometry - GEOMETRYCOLLECTION / LINESTRINGM :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("GeometryCollectionM(LINESTRINGM(1 2 0, 3 4 0))"))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("GeometryCollectionM(LINESTRINGM(1 2 0, 3 4 0))"))) 000100000000000000000000F03F0000000000000040000000000000084000000000000010407CD70700000100000069124A0F0002000000000000000000F03F00000000000000400000000000000000000000000000084000000000000010400000000000000000FE libspatialite-4.3.0a/test/sql_stmt_tests/asgeojson6.testcase0000664000175000017500000000030212544707704021317 00000000000000asgeojson - bad args (3 arg, non-blob type) :memory: #use in-memory database SELECT asgeojson("hello", 4, 2); 1 # rows (not including the header row) 1 # columns asgeojson("hello", 4, 2) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geometryn17.testcase0000664000175000017500000000106112544707704021425 00000000000000Geometry N - multipolygonM :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOLYGONM(((0 0 1, 10 0 1, 10 10 1, 0 10 1, 0 0 1),(2 2 2, 8 2 2, 8 8 2, 2 8 2, 2 2 2)),((0 0 3, -10 0 3, -10 -10 3, 0 -10 3, 0 0 3)))"), 1)) 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOLYGONM(((0 0 1, 10 0 1, 10 10 1, 0 10 1, 0 0 1),(2 2 2, 8 2 2, 8 8 2, 2 8 2, 2 2 2)),((0 0 3, -10 0 3, -10 -10 3, 0 -10 3, 0 0 3)))"), 1)) POLYGON M((0 0 1, 10 0 1, 10 10 1, 0 10 1, 0 0 1), (2 2 2, 8 2 2, 8 8 2, 2 8 2, 2 2 2)) libspatialite-4.3.0a/test/sql_stmt_tests/sridspheroid4.testcase0000664000175000017500000000025512544707704022033 00000000000000SridGetSpheroid() - DOUBLE SRID :memory: #use in-memory database SELECT SridGetSpheroid(1.0) 1 # rows (not including the header row) 1 # columns SridGetSpheroid(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/st_x7.testcase0000664000175000017500000000041712544707704020314 00000000000000ST_X7 :memory: #use in-memory database SELECT ST_X(MakePointZ(-71.1043443253471, 42.3150676015829, 0.0038723129645, 4326)); 1 # rows (not including the header row) 1 # columns ST_X(MakePointZ(-71.1043443253471, 42.3150676015829, 0.0038723129645, 4326)) -71.1043443253471 libspatialite-4.3.0a/test/sql_stmt_tests/sridprojection2.testcase0000664000175000017500000000026712544707704022373 00000000000000SridGetProjection() - TEXT SRID :memory: #use in-memory database SELECT SridGetProjection('srid') 1 # rows (not including the header row) 1 # columns SridGetProjection('srid') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttomultipolygon4.testcase0000664000175000017500000000036512544707704023316 00000000000000casttomultipolygon - LINESTRING :memory: #use in-memory database SELECT CastToMultiPolygon(GeomFromText("LINESTRING(1 2, 4 5)")) 1 # rows (not including the header row) 1 # columns CastToMultiPolygon(GeomFromText("LINESTRING(1 2, 4 5)")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude1.testcase0000664000175000017500000000040012544707704022351 00000000000000shiftlongitude - positive long :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POINT(1 2)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POINT(1 2)", 4326))) POINT(1 2) libspatialite-4.3.0a/test/sql_stmt_tests/buildmbr10.testcase0000664000175000017500000000037312544707704021212 00000000000000buildmbr - float args no Srid :memory: #use in-memory database SELECT AsText(BuildMbr(5.5, 6.6, 7.7, 8.8)) 1 # rows (not including the header row) 1 # columns AsText(BuildMbr(5.5, 6.6, 7.7, 8.8)) POLYGON((5.5 6.6, 7.7 6.6, 7.7 8.8, 5.5 8.8, 5.5 6.6)) libspatialite-4.3.0a/test/sql_stmt_tests/wkb31.testcase0000664000175000017500000000135212544707704020176 00000000000000Hex Wkb: GeometryCollection XYM (point, polygon) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 11), POLYGONM((10 10 1, 11 10 2, 11 11 3, 10 11 3, 10 10 1)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 11), POLYGONM((10 10 1, 11 10 2, 11 11 3, 10 11 3, 10 10 1)))", 4326))); 01D70700000200000001D1070000000000000000F03F0000000000000040000000000000264001D3070000010000000500000000000000000024400000000000002440000000000000F03F00000000000026400000000000002440000000000000004000000000000026400000000000002640000000000000084000000000000024400000000000002640000000000000084000000000000024400000000000002440000000000000F03F libspatialite-4.3.0a/test/sql_stmt_tests/casttoxyz5.testcase0000664000175000017500000000034212544707704021402 00000000000000casttoxyz - POINT :memory: #use in-memory database SELECT AsText(CastToXYZ(GeomFromText("POINTZ(4 3 10)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYZ(GeomFromText("POINTZ(4 3 10)"))) POINT Z(4 3 10) libspatialite-4.3.0a/test/sql_stmt_tests/makeline5.testcase0000664000175000017500000000034512544707704021122 00000000000000makeline5 :memory: #use in-memory database SELECT AsText(MakeLine(zeroblob(10), GeomFromText("POINT(1 2)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(zeroblob(10), GeomFromText("POINT(1 2)"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/dissolve25.testcase0000664000175000017500000000101012544707704021235 00000000000000dissolve - Overlap points ZM :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("LINESTRINGZM(0 1 0 2, 0 2 1 3, 1 2 2 4, 1 2 3 5, 1 2 3 6, 1 2 3 6)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING ZM((0 1 0 2, 0 2 1 3), (0 2 1 3, 1 2 2 4), (1 2 2 4, 1 2 3 5), (1 2 3 5, 1 2 3 6)) MULTIPOINT ZM(0 1 0 2, 0 2 1 3, 1 2 2 4, 1 2 3 5, 1 2 3 6, 1 2 3 6) libspatialite-4.3.0a/test/sql_stmt_tests/badEWKT7.testcase0000664000175000017500000000050112544707704020552 00000000000000bad EWKT: GeometryCollection :memory: #use in-memory database SELECT GeomFromEWKT("SRID=4326;GEOMETRYCOLLECYION(POINT(11.2 12.3), LINESTRING(11.3 12.4, 11.4 12.4)"); 1 # rows (not including the header row) 1 # columns GeomFromEWKT("SRID=4326;GEOMETRYCOLLECYION(POINT(11.2 12.3), LINESTRING(11.3 12.4, 11.4 12.4)") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/setpoint17.testcase0000664000175000017500000000047212544707704021266 00000000000000ST_SetPoint() - not a line :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), 1, MakePoint(2, 0)) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), 1, MakePoint(2, 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/DSC_1467.JPG0000664000175000017500000035524112544707704017157 00000000000000ÿØÿá€áExifMM* ž °¼Ä(1Ì2â;%ö‚˜7‡iT#4NIKON CORPORATIONNIKON D700,,Nikon Transfer 1.1 W2011:03:26 14:16:34 '‚š.‚6ˆ"ˆ'È0221>R‘’ f’n’’’ ’ v’|ôØ’†,~’50’‘50’’50 0100  P ˆ º¢£££ª¤¤¤¤²¤,¤¤¤¤ ¤ ¤  5B@ 2011:03:26 11:01:132011:03:26 11:01:13,ASCII R980100NikonMM*.0210È6 >L  T  îÈt |„’š "#:¢$<%Ü*ƒ„ê‡‰Š‹H ‘¼ •Æ—̘ О ð¢G°£§»°±¶·¸¬:¹ÿL"æBASIC AUTO 0AF-C :ûÖáõáõáõáõáõáõáõáPˆÀ À 210059001000100STANDARDSTANDARD€ƒ€€€€ÿÿÿH H F,8 0212*Šfrb—Ê{,ªÈç¢öãü>Ê=úàï'•4÷é…©+êT&!Et÷X‘|z½/ƒœŒU™I1޶cøu·f$›;öUÃXÿJ­9îÌÓXÞÇ]XÅGè²¥Át Ë´Ô[Ì©†¯à$½wB’ ¦¯yŠÑ¿ßðƒj+‡ÅûZ%–ðu ù÷â°êÍX6—ò9|€¼}Ù ®g´S“áfëëfá…RHg¯ º}i~¼#³lNYêp÷ø"uñ–d[{Ä6Ñ•‚¸ÑÁ†Š¹dn,ÓNtà8ÒÞZ§ËðYú´Ët¥xèøÏDZ*‰ß\ÓÌî9­JÿZÂPöüýÖ±µà8¶^aÕ²fü®Ocn¾)½z`o§îmºß:T«-|¦¡Ç.ˆ'ïôú=©*üãó=Žͯ°ß7ÜbÉ0@¡s¾ùr{Ѣݔ}•É/¼mNSƒÜ^ ÙçOÁÉÍÚ¿¡ô‹OFãÏ×øñYšÍ œÃÑEŸ0À56nQÛ¼<Q’{mWø)-¾ùÄäëÉšâµ€ÒaæK CóAbÝÇHw/ÝŽ)<£3ÎÙ ðŸw‚¢õqì$LI®ë ç¨AXõ&ŒÅ%žÉ#@‘rå‡ÿ5Š«‡$mhÇOÚ £Ü~S±o¯,Ü‘i–Î@â“A†Œ“V15b¸7ß°ªÍŽ,óãü>©=úàï'ˆÅ¡¦Ô+«T&!E’§o`z½)¾|cs¬™M*0_·8âµ±Ö$›;öUÂXÿJ­9îÌÓ\Þ‰]Z€ÏGè€ë# 6ËüÆõ²©†ÀIs“ ®y%»õ?ת‚•Ñ6â{[d–ñu'C÷pxŒXNl³#¼~ó¶ ¯gHS<é¤vÛ)dÓ‹]I˜P…Íži~ÄL“ãs§ÀZß38æÃ2§¤„bÉ.3}gsÀ/,’Qsl<ãa>Kmø*߃eĵÞv‚Ñ¥²úGã’]‰Þ\ÓLü9ìj ÿXÂUåŒ;Ó1êÁ¡Þ4·}O¤$ÑR"C_‚9Ñm o§’E!&T«+Õ¦¡Åˆåèú>Í6üÃóÄ£¹ß7¸b51^¼K»†w‘ÓBÍ—Ê-»nLSƒ\^ ÙÚOÇh2%A†ô‹J4@éú(x@˜/n46i¸'‚RF¦üü³©¾ýèQqN½Ú^ â`hÙ‹î3£<þéý:œ.wEx¯Ê‚TZj•ç`rQ¿ddëñ˜œ›g?h°­GVö«…¦ÁiL‡Q€Zp:M¾P íû~äÁ¡žÄâ*¿†ø´ràJ˳‹ö†BÚ¯hÏD6ÒŸ¤È‡@±z¬>8ƒ¨ƒêVý‚x—.¯B2!=¬˧¾æ ¤8í÷*Õ)¦ô¤3Âù]û(vW1Úp¹ÛôŠ“†ÇÕLJÈòб£ÌÛK­ÆM¼ØÇÇ· ½©l¤Š„¶Ú9‰Ì¶Þí]"€µG±²öÁ,t ËûÆfe¤¨Ý‡ÖID&“\®.mÝÐe×ý‚ç®6Ä{[d–ñu"ø÷pê[mK!‚~f‚ ß&˜ÔR€ájëëfâzÌHo¢À²?zŒ¨!§|]¤ž cÍãÓ6Xåšvæhî%7ËŒ…+ã™ðm³²Wx /‰FÔØ“Èæ=ý¤H÷!ú‡Yû3ò¦u‚ ›/=nQËì†ë'>ýíŒøSg*ISÄ£§ÖÈ™m¬c¾I½`§P’!vTê+˦ëÅ\ˆiï²úf©iü¼óeŽIÍû°‰7ÒbYNV¤»„v‘ÕBØ—Ê-»$M¥à^"ÿÀ8õ2"A• }K>F‚î( v’_ÚdˆÇq:ìþøChC*=B¸WnÏïráýl?‹ç~&Íäø-·¿ê•éf´dó‚Æ9»h6—ñ0ù›4ÊÓÑÆ‡ ÁŠÏˆ2ñã ‹í^†|‡÷Jýé¬äÊCÄöšùIŒvÃÈž­â@uqr¶l4K‹»†&%dhOGÚ– ÜæSnî-%—½B§îv„»¤V15b¸7ß°ªÍŽóãüX=úÛ'ˆ.€¡¦Ô*¿«ÊÞE’ˆ§o`z½)¾|cs¬™M*0_·9«H±Ö$›;öUÂXÿJ­2îÌÓ\Þ‰]Z€ÅDì·ŒÇvϱÂLô©…À.²I(z“ š3mŠä•ט¶9Ñ6ÿ·[d­ u"Ã!pÑRYNWB#¼jÂ}º4gHGžáföëRÄ…R|M¯ º}i~¼#³lNYêp÷ø"uñ–d[{Ä6ã•‚˜×?Њmy® “CIÀ‡¨òeÆ´ù tÁ¥²èG/–òv!£ü,3ÆRµïè§=ªî ûÄdÛ)NJÇH ÏÕ²fñSŒœƒAÖB…Ÿ§mºÞÙ«TÔ+Y^:íwØÂVÁ Óqæ2UO ÈGÊΩ[äD{‰n*½'h€o5ÒF‘³¬|#¡ö"%ÿ°8—ÍÚ¾y t´Ë¹~×øð¿eâ6ac<ìsÑõ¯@¨çýê®I»$éŽ ]‡ˆ`•ò&1Ì\ÃÅ_Ð7-úžk””kžú-7Ð_ÅÃ\Ì1&ò•`ˆ‡] Žé$»I®êýç¨@¯õÑsìù‹ô4K9þš Wxp?åb¶áã¼lóQ†’u/À(g}j.É;„¤›iŠÝàr¦±“LÜC–‚EßP˜·­z™ëë™z­·˜PßE‚–CÜL“±¦ràÝŠi›¤„;É.j}g(À/u’†Qól¼ãá¶bå?pxW šþ9K4ô‹ù>ZM¸0¥¢v!£ü,3ÆRµïè§=ªî ûÄdÛ)NJÇH ÏÕ²fñSŒœƒAÖB…ŸX÷mºÞÙ«TÔ+Y^:íwØÂVÁ Óqæ2UO ÈGÊΩ[äD{‰n*½'h€o5ÒF‘³¬|#¡ö"%ÿ°8—ÍÚ¾y t´Ë¹~×øð¿eâ6ac<ìsÑõ¯@¨çýê®I»$éŽ ]‡ˆ`•ò&1Ì\ÃÅ_Ð7-úžk””kžú-7Ð_ÅÃ\Ì1&ò•`ˆ‡] Žé$»I®êýç¨@¯õÑsìù‹ô4K9þš Wxp?åb¶áã¼lóQ†’u/À(g}j.É;„¤›iŠÝàr¦±“LÜC–‚EßP˜·­z™ëë™z­·˜PßE‚–CÜL“±¦ràÝŠi›¤„;É.j}g(À/u’†Qól¼ãá¶bå?pxW šþ9K4ô‹ù>ZM¸0¥¢v!£ü,3ÆRµïè§=ªî ûÄdÛ)NJÇH ÏÕ²fñSŒœƒAÖB…ŸX÷mºÞÙ«TÔ+Y^:íwØÂVÁ Óqæ2UO ÈGÊΩ[äD{‰n*½'h€o5ÒF‘³¬|#¡ö"%ÿ°8—ÍÚ¾y t´Ë¹~×øð¿eâ6ac<ìsÑõ¯@¨çýê®I»$éŽ ]‡ˆ`•ò&1Ì\ÃÅ_Ð7-úžk””kžú-7Ð_ÅÃ\Ì1&ò•`ˆ‡] Žé$»I®êýç¨@¯õÑsìù‹ô4K9þš Wxp?åb¶áã¼lóQ†’u/À(g}j.É;„¤›iŠÝàr¦±“LÜC–‚EßP˜·­z™ëë™z­·˜PßE‚–CÜL“±¦ràÝŠi›¤„;É.j}g(À/u’†Qól¼ãá¶bå?pxW šþ9K4ô‹ù>ZM¸0¥¢v!£ü,3ÆRµïè§=ªî ûÄdÛ)NJÇH ÏÕ²fñSŒœƒAÖB…ŸX÷mºÞÙ«TÔ+Y^:íwØÂVÁ Óqæ2UO ÈGÊΩ[äD{‰n*½'h€o5ÒF‘³¬|#¡ö"%ÿ°8—ÍÚ¾y t´Ë¹~×øð¿eâ6ac<ìsÑõ¯@¨çýê®I»$éŽ ]‡ˆ`•ò&1Ì\ÃÅ_Ð7-úžk””kžú-7Ð_ÅÃ\Ì1&ò•`ˆ‡] Žé$»I®êýç¨@¯õÑsìù‹ô4K9þš Wxp?åb¶áã¼lóQ†’u/À(g}j.É;„¤›iŠÝàr¦±“LÜC–€EßP˜·­z™ëë™z­·˜PßE‚–CÜL“±¦ràÝŠi›¤„;É.j}g(À/u’†Qól¼ãá¶bå?pxW šþ9K4ô‹ù>ZM¸0¥¢v!£ü,3ÆRµïè§=ªî ûÄdÛ)NJÇH ÏÕ²fñSŒœƒAÖB…ŸX÷mºÞÙ«TÔ+Y^:íwØÂVÁ Óqæ2UO ÈGÊΩ[äD{‰n*½'h€o5ÒF‘³¬|#¡ö"%ÿ°8—ÍÚ¾y t´Ë¹~×øð¿eâ6ac<ìsÑõ¯@¨çýê®I»$éŽ ]‡ˆ`•ò&1Ì\ÃÅ_Ð7-úžk””kžú-7Ð_Å‚Ã\Ì1&ò•`ˆ‡] Žé$»I®êýç¨@¯õÑsìù‹ô4K9þš Wxp?åb¶áã¼lóQ†’u/À(g}j.É;„¤›iŠÝàr¦±“LÜC–‚EßP˜·­z™ëë™z­·˜PßE‚–CÜL“±¦ràÝŠi›¤„;É.j}g(À/u’†Qól¼ãá¶bå?pxW šþ9K4ô‹ù>ZM¸0¥¢v!£ü,3ÆRµïè§=ªî ûÄdÛ)NJÇH ÏÕ²fñSŒœƒAÖB…ŸX÷mºÞÙ«TÔ+Y^:íwØÂVÁ Óqæ2UO ÈGÊΩ[äD{‰n*½'h€o5ÒF‘³¬|#¡ö*%ÿ°8—ÍÚ¾y t´Ë¹~×øð¿eâ6ac<ìsÑõ¯@¨çýê®I»$éŽ ]‡ˆ`•ò&1Ì\ÃÅ_Ð7-úžk””kžú-7Ð_ÅÃ\Ì1&ò•`ˆ‡] Žé$»I®êýç¨@¯õÑsìù‹ô4K9þš Wxp?åb¶áã¼lóQ†’u/À(g}j.É;„¤›iŠÝàr¦±“LÜC–‚EßP˜·­z™ëë™z­·˜PßE‚–CÜL“±¦ràÝŠi›¤„;É.j}g(À/u’†Qól¼ãá¶bå?pxW šþ9K4ô‹ù>ZM¸0¥¢v!£ü,3ÆRµïè§=ªî ûÄdÛ)NJÇH ÏÕ²fñSŒœƒAÖB…ŸX÷mºÞÙ«TÔ+Y^:íwØÂVÁ Óqæ2UO ÈGÊΩ[äD{‰n*½'h€o5ÒF‘³¬|#¡ö"%ÿ°8—ÍÚ¾y t´Ë¹~×øð¿eâ6ac<ìsÑõ¯@¨çýê®I»$éŽ ]‡ˆ`•ò&1Ì\ÃÅ_Ð7-úžk””kžú-7Ð_ÅÃ\Ì1&ò•`ˆ‡] Žé$»I®êýç¨@¯õÑsìù‹ô4K9þš Wxp?åb¶áã¼lóQ†’u/À(g}j.É;„¤›iŠÝàr¦±“LÜC–‚EßP˜·­z™ëë™z­·˜PßE‚–CÜL“±¦AE¼°OFF 0209V15b¸7ß°ªÌ,òãý>©=ûðE,’Å¡¦Ô+¸G$#G§ocz™)TlcpP•]" ^´Ò⢱Ö4?òOE¼X7ÿ8IA)úÌçÚ¡_>„}G£mÒÖq“Î\ÒÑtê×x‹ÀIC— ®ymŠÐ?Ó˜ƒ•Ð6Ä{[d—ñt"ø÷q«Î l±#”~j}º ƒcHR…áfëïfá…RHg« º}éþ<£³šNµpó÷#uð–e[zÄ7Å”‰™Ü>Њ™yB CêIœÁ‡Rò›8´5 tÁ¥^è«ÏvZ«ˆÞ]Ó îÕ­¦XÃUö;š0׺´é9·_Ä*¡™â­sb|¿)¼z`•§ö’»!ØU«*Ô¦MÅþˆÑïû=¨>ýãó,Žͪ°ß7¸b51V¤»„v‘ÕBØ—}•Ê-¹nLSƒÜ^ ÝÚOÇh2%A†ô‹K4Får(@šÉ”œÉŒ.ùí P¿WQ¶DûÛäqõ¢zrŸðj ÙÎì3£<þéý: /çÈÒaæ”kk”æaÒÈç/ :÷éô<£3æÎÍ ~ð‹wl¢õqäÛûD¶E]¿Z íù.ŒÖžÉ@(råF4K‹ô†A%2hÇOÚÝ ^܃SXn­-Þk—ØBÕ‘v„»°V%5h¸=ß°ªÍŽ,óãü>£=ðàï'ˆÅ¡¦Ô+«T&!E’§o`z½)¾|cr¬™L*1_¶8ãµ°Â%:÷U4XáÿíK­8îÍÓ\߉\ZÏG²SÁêu Ê´Çdò©‡ŽÀHC’ ¯ylŠÑ?Ö˜ƒÐ"ÅqZd–uÔø pëXNm¹"¼i|º Sg¾Riàfëêgá„RIg® »}h~½#²lOYŒêqöø#uð–e[zÄ7Ñ”‚™×>Ћmx® “BIœÁ†¨óeÆµË tÁ¤²éG΀[]ˆÞ]ÒÌï9¬JÿXÃUö;š$×±´â9·^0+M˜­sb|¿)¼zao¦“E &U«*Ô§¡Ä‰'îàû=¨>ýãò,̪±ß6¸c50V¥º„w‘ÔBÙ—~Ë-¸nMS‚Ü_ ÜÚOÆh3%@†õ‹J4Gär)@›ÈžÃŒ/ùì Q¿VP¶EûÚäqô¢ywžðk ØÎí3¢<ÿéü:¡/æÈÓ`æ•kj”çaÒÉç. ;ýèþ=£<Á&•ÿ`x‡­ ~éë$ô»¹®ý¨°¯öуìÌc‘6eOð×}޹;´„ ‰¾*Íg8@ÿÕ"¡Ó|\³aF"5Ÿ€˜'M*ž‰‹D[YÎ:·ÈÐO¥2q# ì1V2ï(w:®YÛÔ¤«)ÞJmX`ŸuB&Asœ|SfBÕ? ¸ÇíJ¾)+d4ûùîZ=WèðïER6Ã, £ÑvR¥0H½ZÎù{ôÄKÉþj §x€?bFἓ ªzi€Ð?ݘ‚•Ñ6Á{[d›ñu#ùöqêŒYNl³#¼~i}º ¯gHR…áfëëfá…RHg¯ º}i~¼#³lNYêp÷ø"uñ•e[z 7©”‚˜×>ÑË.?ì ‘C4JÀ£†aóÂ¹Ë tÁ¥²èG0203˜Z16^—ì$ý%áãëU©=úàï'ˆÅ0100Û 9 01000100d»<D(54GÃHH#‚#Š(#’„HHÿØÿÛ„ÿÀx !ÿÄ¢ }!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùú w!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ÿ?ú(¢€ (¢€ (¢€ (¢€ (¢€?Òç}âg7ëùÒýªèc{¿îÎk÷Ç̯©ü½¦‹˜‰îzîsߩ⫰¼¨ýOO£ó/Ÿk1QeèêAü)ÿÛ8ØœuÈÇù5\í_BãYÅl/öÔ0Ó'¥<ë2õóñQÇ·4:_CHÕnÚ‘¶«+g2ElÒ¥Ôm’Ò çû§×¥.fî›+žö¼‹«¨AÝ161ü=}ý¨}]¸ ã€ztÏJ\©"ý¦ŽÅf»ó¾óH9ôoÎD¹"fÝ‘Õ2GçKIÝ6G3¿5É·ð]›J@vòD˜õÆ3íU¨¯u)I¶äÿBU–1œ¤{œcÞ§YáQ“`c'qoÃŒÓrQè+Ý1~Õž6ǰsùRnR2XöqÏÔã8üisßá‰-sjÝ­ýiqò]Z üÄwû½}ë>Yí˜LÀgû´s$¬™-ÃUs.U¶l=¸Ï¯J£"[/I5“[jfÔ[~ñU™…2{s×Ú óŽ~ë_ó¥C®NšØh•OPç~‡Òœg¹üÿZ\×ê5m¬H#Q÷YzŸâý*UÜ1‚½HçšI¸ÚÌÑFÛ1ÞqBŠý]Š Tv‚ÉÀ!Fòp3œ‘›ñÈ (-ÈÏoÒª-«hl—-›[ë§­¿Gÿ \IP‚7vºTªú6zúsÛ¡{­ÉÕ#NNéNûT+ÀG<žý=ª”¹nN‹K\UŸqâÿ¼sŠ][^xî2j£+éc7uwÉ ãÜ}›þ^ÿýjf2HòÊpxãØU=ž„¯‰YX‰¢CüCñÇçUd=ºô‚Ý 2ZÄÙ°çz{tªÿbŒôvëè=~•›ŽŽì4ú؉­á_¼çŒägÿ­ÅWaj¤ŒÈzôÆéC²[ÿ_xœ#îÊÌmKÔõ¥Gä#`áúÿ’+=;’ãÚ¸ák“‡#Øò*@Á8XXýOéFÝ£ek ¤ýÇLgžœuëNûD‹‘äô=qÀ¡;t/™õõÜi¹˜ÿ˵kvÇËŒ¹³¸úû}*ã{îi¼w»þ¾ÿ™2ÍÃñøÿœT‹pçcØpÝ}«^n—!ß]K‘\8<“Œúu«-¬ðKou SÛÏÅq Èвh™O ¬¤‚5¤epŒ­¿âs`\ƒÅÂvê:ÿž)Áî—#|L2;t¬ÕõÔÉs.»óåÁÞ·ð‚j•Ïuü°O½õ5æÚè¬ìýŠŸn?Æ«³HIWÇßÞ¡·ªh­u·õú ã÷#ðÒ”Hãc8üEMÞš͵L“á)õéúÒfêäöÆ}ø¥Ørr³LNNpyïÆ?¥&éFG§ÒŽâiÆúóˆfN0:{ûTt«œ9ýM;ÚÄóZúíýz¼öcÇèxéR$²¯Gr>é#ùR½ìG6öz¢Ú\LÄn‘ÏN¹­r껃qœc©Òš|­hiJI¦÷ý ‘ò8ûÀùÓùç*G#–=ëe4ì“§%fÐÍ–§X~-ÇÖ¢až?ð.½%ed‰åŠÙ™ÿ÷Ϩ™ýuô#ð©æÞÈv²Vb§‚P~"—jŒá£ôå‡åF‰liÑÙ»J3´)9¯oçU[í‡8UüºûúÖm·¢Íou» în=ô¦bNAŽÝ:{ÒùùÕîÄùÆs!íØTm!îäŽéÅ-éuróñµºúõ§ Bzzãžýx¥ñnˆå¹2Æ®ÜñÎjTS!Ø ò@å‡5[\|·i"ò[ym¶Gã!9üñZQΩcÉ'ƒa±Àý3UÉÌ“½º›Sj“qjïnßæBÒKÎÙŽl'Û¿ëQ“uýæ={çôªÛ¡”¥>o—à$¶r ‡Óµ˜zýû)Ð~¢©›H¹%®Ðuýê2có©²}õF~ϼZù´òÎvfûÊOÓ®j_³j*%Üëê¶ò¸#×€h”m}Mc ;r.o•ÊÏöÑ»ÌÓ¯1Ÿùá:ùŠªÓ*Ÿž˜¹ÇÜãôúÔ7g¸^JÜôÚ·‘2^Z½3!ãïG þb¯G%»àGtŒ}7?Ï­ K£*3†ªöq$–óÞ\8ö°Éq<€’#…³>'AàzWÄ÷ßµ/¬~4øÀ~"ýŸw7âlQœd9%ãæ.¢¥Ò?»äç»IÙÚw‚vRåk™K•?Ðø[Ãülj¸kŒxªe .Mn®—œåV5¥Á7⽋Ur”9á/g(ó¸ý¨ñBÙHü¸¨ZÑ=ÿå_Go#ó÷Êí¯Ü?׿Z€Å9ÏÞÇ?þª^„8ËMG sÆò߉Æ??åR‰;ÙôÿëÕ"\m{“‹ù Q]Wûàäûg4¢õɸ{í-Î?(Úöz«IÙJ·RxîñÕ9ã«/çŠÑ‹QÛÁEÚ8è3Jך۲N]l`ÝÅî4›ˆÛ8dž|9 “è@­‘ìsÒ³ViÈŸLµ” ­þi=›0þöQ¶¦Ó\*“§kË›ÎÖ‡õæLªNéJ1~‘ŠÿÒR$1@Hq¦^DX‘5Íê«ïnWóöëOT·%¢—J˜¿–KjwÑ•Î@ûP\€!ÙGëNQQKÝ{ÿ?ëBà£&“£§›kõE/³ÙyžOÙ¥Þv6c¼Ö…ºçnóÏPØàó[9{vŠ6óRµ}»Œz^»­Ë9~»6™Ú=ØÈ*»¹*1Ö±öp’mÅýïüÿà~FÔš…ýœœeµâå{ùYëýyéÞ ·þÑÓìuOêÐAyp-ï..¡°ñ±f;@ek} –À*Ì$U%•°ÝOð÷Añ†¨çÂÿ4o -‹³ZèÚÖƒá.Ç^³€Es+jBækk¦…n-ÉÒ® 1hÜA•"Ëðü[Ÿgy<0u2ì¿ÚÑ›q©+ꟺ¬šVVNN÷»’Vød—í¾p×q\wúÑš¥^6xju-Ë>[¹7ªu:Œ9ZpQç¿3~çÊ_µÀŽºþƒ­hø¥¤Xíi÷z}ÍÍ´%Ö—ikÿ’n€8þ.€ã4¤×6‹·_ò¬Ò“Ó·~×òò-\ÌRÝ,¢·‘bÝ*º´&Ý{ÊdW²X€ äç$óU|ËøÇi× ¸…îmdX¾\¨&F=‚:0y±xj8ªS¡V„gÒQº¾÷·“×kÜì¥ÅQÄGJ¼ã8Ùs)8ÊÉZɦíe¢Vµ´µ´9{êÚÒçSºÔž È!žâãTa4·BÜ@ÆXöìSfpŠ ú6ìæ_ ìt½CÄ·ÉãeÔ$Ðmâ¹»ŽÖê67rï ei.U!”É DÉ™0$üï5È0y}l UÔkb\ÓÒ+•®‰4’rÑkæúŸM…ÏóŒG³úÅzßS¤ßµ)JòU"Ô•O}_Ú(´îùR½¢®Ó÷+JÓ`Š;HPª¤hÒí¦*¸ÞqÆN?ZÒY­cÏ þ{{Wé´iЧN0¦­ý\øÿv Ç–Öþ¿¤8߯ ü­þ>õj¶FÜ÷=ëW$¶©(•šá ß·Zq9ÆyÈÆ)s&ôFMßa輂Cuïéžµ¡o$10fŒÈ)$½*íkêj2R’¹¥ì@ªW$ôcÛŒw«isÆ;ã¨ôüêÔ­m ç‹{%ù3Ï?¹p¾I¬Ù.Qwoòg¬†A•†{ñšÉËFg)=.=Y bW-cýâÛË4’7ý3ØÞùǽ6=× |Ë’©·mS¾;»Ý~ƒÞ£~TŸõó¹{ÛÞù~­þC¥¬n׌Á2Iòâ$ºz¤ù†G}§éPÜëò*}ŸI¶K(²GžGŸy ÝÁ2º@ã÷a\ŠR—³½¾&Z’¤¥Ëyþž~®¦l_ibZGlî'$žkV)¼¼ë‘ôõ銘ÞÞð©é­É¥¹†â6†M«$‘ºFB0TƒÁu+Ïì4?ÛjrÄž$šÓ–ڷö†‡i+/žÏ§O‚w,Í„³+Fò†ëóù9žQC2Äeµê-pórߣZ¦¶wqÊ祇̱xJ8šjü‘­e;-Z‹m$újú}çjTœåóø~µ¢÷bö=kױ絻¹TƼüÜÓüú”2 ضÒÀôÚ  ãŒâ«=ü0'“£ÛÈíÐÝܘû€œŸ+”›¼ŸÜ…uäÝåÛ¢þºVÒêW2ÝHîÙ“ÀïVŠ€¤ž{t>µ1‹å7v8û¿#k–9ôýiŸ½~v÷ìz{RrrºH«Ý­òŸ˜õõ¥×1ãô4¬ãf4¹o© •Ç?52ʧ†=ÀúUFVÑ•½®Çà‘þ>ôݱsƒßÓ¥iØì0ªÏ0)¸Œ~c§§±I_úî=B68=GaϽN±.x©öâªÑÕò'X¶àªœóÔãñ©AuÇÉÓ_j­¶BêLšî ˜¬4¸â<~ð¦[ëÍFcŸQÉyŒjq€€V\þÒÑ‚²+I(Â6BÊ,»Éæ7×­Qš_#+o€:3øšN§{•Cáz™²\Þ?Ôÿjj‰’zþ?áéYÞRr•®XTÈëÓŽžÝiÄcøù½=©ÚÊ×.:îÈÏûÇóëÆ9¦Œ|Íùõ÷¨ï¨ûê(Ûß'ëŸqž}èàv?‡z«-tºÛ×Î>¾ô샎{þ´F÷Ø—îÝÜpÇ9$~¯ÿZ¤Â‡ÓøºV¤½š#~vœÿž•*¬ã¨=¿ýtÒnöDÉ[btiwuôëS ½ýñÐþ½R•´¸µì œq ®¦1ïC F ׿OþµFÃQ²þ¾â“Å9'÷‡¯¯^:høÜügׯ?ZžWuv>W®¤‚(Ô ÍíÓõþTÆ1/~G5[º¢«Ê@^þ½;f¡f“°ýɬå'­j®†n›û½é„Ì:Ný*}ít½^Ÿ×™ï9ÉôíÓÚ¤YYp {þµ*êÚU¹i.£QÊž3ø{T¿hÀ`yõ÷ÿëVªJÚIvB6pzØÿ5cçy#Œgð¦Öú’ÖÎäÈÛÔ|U•˜3þÆŸ2]HîI»yê8&ån=rA§\*¥«é’•ˆûÀ{Ç¿­ ‰›˜õ=¿ZW½ô.1½›cþÎñ´Ã¯ñçÿ¯Jë[2ùRÕ²2©ÎO úÓ ÃÎHü¨¾ú•¡]üŸ›¿~• <#¿èFj\£¨[ÈoŸ þ‡åïN[›sÔ ç×üþt{HÝ¡÷V&fÃ21ÿë¡’ÌŒçõëíG¹¹V‹L©"B3´Ž½¹5Ê:cŒŽ?Î*%e±Ÿºô®éß?ÏåV«g¯oÃÞ…+â˜ÿ³ç¦}>´å¶qŽøÑË{X‡®„˯òéÒ¬«0À9ÈëŠÖ7I\—ºçE~0…Q@Q@Q@Q@ÿÙÿØÿÛ„         ÿÀw:!ÿÄ¢ }!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùú w!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ûÏç­IözýþçðÉEǽJ'÷ Òâùã֓Π«Œ2TfOÊ\„¿j‹y5Åq…½éœÒ0sSv<Ò4LmL1Zdƒþº”Th? N e‹Fh*ã·S· qÛÖœhÇnZ7-Y}i……rÀTªDCŸzŠ Îá´w§„€'а±¯ãB4,×50E¡CöQà c!-èj±z¹TÉU‹ÔÜÎårô ž• °«ŒdÕÑ\ìꎃ‰ëUÉOQI\ErWµ35Ò®r6<~kBn<ZaqÔ´î{Qƒ@‡€@®< “Si’3&£Üy ‡ ÝÆ¿†ÏÛþR3ñþÜ?ô‚Ú¾?2þõýúï½Ëü/óGöòE'5õGãL2ir}jJâ¦ÜiŒ~yÅ:ƒD” fi7P0ßÚ“Ìq7ŠO0P0zÑæûÓ¸î?Î÷¤ó­;•qÞw^i|ú.;‰ç{Òù¦‹ŽâO¥'šÔ\ù­L2·sSqóO­'š}h¸\<ÒhóJ.y©A4f¦E“†5&ú Lw˜E7Î÷ªÆùÕïEÅr3&i›³Þ‘-Œ#=é»3RE„òé|º,Ë4¾Y§aX66zS±"m§bˆŠ~;S( wÍ1Tœw4 ÛOùi€ì­;+@ Ü´Ââ‚v#/Qo¤HœçI´ÔÜ-qvÔ×ð×ûbÊF¾"ãþœ?ô‚Ú¾?1º^¿£?]áÅlT¿Âÿ4q%2OÍ¢¾¼ütfÁMÙ@¬yâ“#°QšC ÞôÍÜÒ(ajf}é¨Î}iGÍ7&M&M!†ãŠ3@ÄÍçŠ w4¡¨(H}ja ïAiŽÞ=isÔæ‚Ã>Ôa}) n@ ‘L SÄLjo1}j‹Ì_Znñë@îF\zÔ¨I¨Ëb 7Ô‚Ozäýêa%UÊ'úÔž`« óe0¼SwS$i4ÜÐf7&“q¦H»»Q¸Ò»Í;qÆ)\h~M?-ÜÔÜv Üu¦ùƒÔÒ¸¶æ <Ïj5&ây‡Ò—ÌnÔÂö,®ãVNÔ1ɬ͖×d&OE¯á³öÃ9ÿ‚ŒüE'þœ?ô‚Ú¾S1V¤½F~³Ã®ø©…þhþåvÓJ×ÙXf޴;Õ6WiˆŠ€ŸJPÇzD\ˆ½7lÐy”y”€_0zÒïÓ7 LŠni¹æ‚†ný)7P!wRnéHbn¦ï «‰æS|ÊB¸¢Cž´á-+Œw™Å”‰¸Òn4€7vãë@Þj@ÇÖ™H1ϵMɦQ ÏJÞ™cñMd¥Yr¾„qHГm.Úb°ý¾ô¡j‚ñKƒéTP”dÒíô¢AëLwæ Kß4À”KèEH㨥r‡e±Ò™¸úS¸4ÐÝÔ¹¦A ©)ˆ ”7eo§ù•Aq|Êp’‹?åO TNÛ@Çmö§ÇjR»†i4É’Û1S´û×ð—ûWÇwíûãèï˜5Ðûâ?ëÊߦ+ãó/á/_ÑŸ®ðïûÔ¿Âÿ4u$n }IøèÒ)»h›j2¢XŒ¦j3b#¨ GÒ¤,Db>”ß%½("ÂyMéMò¥"¬;Ê>”yMéH,ÃÊoJw–}(.ÌO(Òyt Âyty•°ß*£1àóR+ê//Ö‘6åÓ|ºDØ_.åŠabAH#”bPŠ;Sð3TP¼Rî»Ç\ѽiÅ.ñNà…Þ:Q¼R ó) žôîæ{Òo¢äÝI“EÉ šNi w4£p"˜‹ _±5¢žaÎsRΈܶÁJ|بäÕD©+SóZ™þ4¹íLBf—5B\óH‘ù©ªB,+U€Õ¡I–ƒ ˜ ®LíÖ¿…Û#þRCñþáÿúAm_™ zþŒýs‡¿Þ¥þù£ûŠãb¾¤ütiš@Å1‘QžÔ„Fi´€Œâ™@ o´q@ÆqHhÓéL$zÔÜdeÖ£2h¹;0ËÎMÅq¾uFdõ5"¸ß2Þ´.hÍŒö¤n¦ï4ar*2çšBXÒe š_š¤büÔ¼úSe»Óri€¹4™ Ašp'ÒŠ›"™d£0ëTQ`«€>è¢Æ‹BO1½¨ÜÇŒÓIv&=i@­ ˜êZvy¥Í1 Í.i ÎzÓ¹¦!Ã5(5H Á©ã5`L¥ïTZd›ñ_Ã'íŠsÿøŠëÃÿH-«ãó/á/_ÑŸ¯pïûÔ¿Âÿ4pÛ½éÛëêOÇCu4ž´ÊQœúTˆµGƒë@ Úi0}(? m"ÄíÒ—#Ҧ̢<úÒ¢;¹æ§`! úÔE[µ2 VÏJˆ©¨&ÄEM0© ‘»M !XvÓš%1’4퇵Ø})|¶ô «–Þ”Ï,Ò åšnÊdØ<ºP²—e!‹´RìçÆ_4ž_=(ß/šo– a<³Ú,Ðùf´úP;ÛëN¦!à‘Sçž•E\˜:÷©FÓÑÿ:W±²³%° þ4a½*®ƒ•ô‘ÔSyôª¹‡9¥ç4®+擞⋅…Í<³2Px§Šc$Ôê¡Í&ïzbº¿‡oÛçþ /ñÿׇþÛWÈæ?Â^¿£?^áÏ÷©…þhþÞ<ßzO3Þ¾ üvã¼ÑëRyƒÖ™W$ó­H ¹iùZ —Ü­ ùj#ŠGòÔyÅ‘LÈ ’=iœzRÃÔÓjD'`zR°ÄÚ=)6J,!Ø”ìAE†ìš’…ç¹£ñ bgÕ©r?½@ܽù¦’§Ú¤w!ãœS>µFl;R}i3Kžhn§n¦÷JxaH»ŽÈ=éj€8ô¤ãÐSÐC iÇl2½GšFDy¦î4‰ ç5'˜Üó@^ÃÖVæ¬ ß¹â‚Ôš&ž†“Ì4%bù®J¯’*à8ÏOJŒVÈÉêÉqš“š£2JvhÙö£Ä7õü<þØò‘_ˆŸöáÿ¤6õòYð—¯èÏ×xsýê_áš?¶ÂL(E}1øà›Mjbæ§å¸ª&æ§ï=é–;yô©3ž)3T)õ =y©L¦¬0“MϽPœc¦õ²(„–©›†óFóLwy§o>”‡qwûS·Ž˜ xô¥Þ(Æù”›Ï­q»©3A"gó£žÔ€\ÑÍ.{QžÆ€4ìÐ13Qæ‚C&Ž/9ÅH)ˆZ^h(\ŸZic@îG¸óQî4É¸ÍÆ™“H‘3IHBÓ‡JbNÇ4Æ<jU÷ìãÒ¬«v=(5DÜA§sV˜Ú.Eh@üŒÓ²)€„Ži™©Wð÷û`ÊE~"Û‡þÛ×Èæ?Â^¿£?]áÏ÷©…þhþà8¥À&¾´üqp)vŠa›G¥7ma›G¥&ŠNÕ6@œt¤P˜Ì u¤x÷¦Ç#šVÌ.zS6Ƴ*ÈnÃëFÆ ›Ö£a¤ ­éIµ½)ŽÂì4» !XM†¤P;Ú\t¦â—RãÚ€ ½(Å!†ßj1LAŠLsA6 ^ÔÀLŠnêa ­E¿Þ‘7#Ü*=Ã=ifi¤Ð@îôê LCÆiãƒ@É©A¦PüTàR)÷§{S,˜7­KòÓÕ¡&Àz g±§q¸ÚGZ:Unek⿇¿ÛþR+ñþÜ?ô†Þ¾K0þõýúïÿ½Kü/óGöéžirkë.~2?wJ]ǽYBî÷¤Ïâæ“Ö‚ƒð¦ž½*F3˜¦1¸¦sRpi0h˜¤Å i¤Û@ì?oJvÚCm.Ú,Pm¤ÛïHÆ)3@Åæ‘Þ¤²#³=j;PfĤÈõ ‘r)3ABäQ»¶h&â÷¤Ý@Ãwž)›Ç8 ‘¥ª2ÜÐAz€·­22ÔÍÇÖ¤›‰“KÎiˆp©@ ¢Pµ.)ŽÃ±F=©ŒNwôâŸT!{ÔÀsÖ‚‰Tp[w©5.¬,FO§ØŠ¤u¬ïØêQ¶¬®Bç¥I´zV†DàÞœJúÒ5Øfõõ¨·­Q“cr§½¿¶ü¤Wâ: é ½|¶aü%ëú3õ~ÿz—ø_æîÊëM1W×XüzÂé»)…†m§ ,&ßzvÑë@ÅÀã5›ÇJ7ŠLŒæ‘C>”¼rh¢ÃÖ’‡ÜŠ@3u&ê‹€Íþõ˜:fl0Ê*3/áH›‘O­3}ÜMôÝô‰q¥ÝÍw½.M.M!‹“Kšv{Rp:tª¦›H’#Ö£Å&HݾôÝ´лj@)Œ” u©@¦2@1N¦PRdt¦Ñ@…«ùh)—îsW¡~• êŠÔØ<ûUGOzÅhvI\¢Ä-W2êHóÛ"2ZMÇÖ´0»¨Í.êD »¯5üEþׇ?ðPÿˆGþ¼?ô†Þ¾K0þõýúÿ½Kü/óG÷5¸RWן“Œ8íQ@ˆO¥0ð($‹'Ö£-@ÆäÑƒŠ‹Ž×M"¢åØŒýiŸJ¢æŸÍ‰jv¥2‡m¤ÛL²"µZÍŠÄX#5 Ö¤D%Z¢*h iÏ4Ý­šD‰´Òì=)» ?mí´»E0h£`敊A¶—h¦; Šn(ÊLûÒ f}©» ÒR$x—@¦©¦0ǽ/˜E.êÀ¥ó(_0sIæ W ‰æ 7 C¸™Ÿ-HÆà`ÓvP³š6{P!6JnÑéHhô¦•âȰ*:fbwéFhf›š º›ž´ˆëQµ 1Kƒ@Å OÅX…õ©@)•aüô¼w Èô¨Ë bº·42°‘@#M sW%ISYéÝhgœçž´ìâºÑÈ;4»©’§MMÇk†ÆÅGÒ„Á«‚E8õ¢Áqب¤ØjV¾X÷¯â ö¾ÿ‚‰|Cþœ?ô†Þ¾O0_º^¿£?\áß÷©…þhþÚ~jŒ–í_P~8ÈË5@]©föß1½h$7·­;{zÓ¹Cƒš9 «“‰:ÔÁûR5¹(oj—ô4ÍV£HÇzŒÒˆˆ=ª ·=h$-I¹¨"ì]ç½<1ô w%žÔüÐU‡fžPPìâž´Æ£©é@ Å4„„ÙíQ˜è òé¾Yõ ,7a¨¶JÄeM3¤‘¸£‰iÔÀ^)Ùªr)7b€»Þ›¾ Üi¹4NiÃ4<RsL ‡ëV9=zÒfñveÒT?J”Ζ¯¨ß,ö¨"¶¹ÎՇޔ¹#ŠDê'‚hÅi±R`µ8QT¢¦ ÒƒDMå×ðßûaŒÁF~"úðÿÒ jù,ÇøK×ôgë¼;þõ/ð¿ÍÛ×”3Qy"¾¢Çã͘@`¥aXŒÁQýž•ˆ°ß"›äÐ; åRyT‚ÂlÁ£¥°¹¥Ò‘Wææ›æ ØyƒŠp‘qƒH»‹¹¥)ì) n¥?°B$Áü)BÐV¢ì4í” Âí4¸4§âޤP2)d†Y¤XâQ’îpú×ËòükøeŠI“ÅßhE$²ä¦C+ŸPHÿ ×<êFÉžæ[ü8ÜáüUñƒOÓ5í2ËFxî#½¶Y@2Ìò8H©êp±ßhëíx|ÃiUg*7ª¨nàJ¨Î3øJÄa¥‡ŒyÕ›¿àH@¨ŠÖç‚BTTe! 1Ó6PE†m¨ÊÐ"?JŒäP@ÌÓjD%.(ð:ÓÂÕ Z”%·ž”ý½iŽÁŒQœS$Jã½<\7sJȾf‡}©½)ÿiõQùTدhz“÷GáMóW=*‘H_1} I½=Mi©7D›×ûÕ(n¿50'ïRï4îQ(—b¿‡Ûîÿ‚‹üD?õáÿ¤6Õòyð—¯èÏ×8wýê_áš?µo¶¿¡ü©ßmCùWÑsÜx½lt5(¼oîš¾aó‹¬ÿ©DùþZ\»“ùŸìÓ÷gµ;šséL ÷ìBr?†«ŽŠjʤ‘ØÔ>”ŒˆKJyô57›Ï¡¤ó¥+ŠöÍö5 Ÿ ’ š˜\¥5R,‹˜øæ§ãï wEÜ´³!謉÷ª4¹(e¥À¦P`S6ÐpjÄÉmfóI÷T~u”šŠmô:)ÁÕš„wnÇå·Æ]WŚΒt*ïì‚@TB °u?ÞÇ9ý==ž'ð¯Šü?;^j¶S(g#í`1 }Í1a³xbñçvmééØÿHñË_Ö¦ãë_¿à¢£NÈþ-Ϲ¥Z{Zßpn4d×Ñ’‰E RP!§Þ£+ž” Z„­Xm7e",)û(‡…§mÁ¦Špí@ »(ßëL.BZ™šfdy54ŒÄÁ§sùPHîiÃ4 Í>­ {Ô‚¨ A§çÒ‘C·Þ¿ˆÏÚôçþ #ñŸúpÿÒzù<ÃøK×ôgëÜ9þõ/ð¿ÍÜ‹_è#8¿*¢ÚމÙò¯¨æ‰ùW4 M¨é?ÂùUÔ,:*7ä*9¢d广¶þ›ô¨~ÜŸÃ üÅ.eÐÏ™ ûkö€ÿßB”_J?å—æÔsÉüÿóÄ~u8¿›¼ ­W1|Ìœj ÞÝﺘjÿ¦~UÌiÍäJ/¬Ïß´“ð"¥û^”~ôðSPÙª”^èw£7_´¬ýzx:#ðg•O¼ýz›šþë»$Ù¡cGoÕ Eåèg¦ªŸŠŸð¬Ü‘§-/æ-4§ûš¤gð5gû"Õ¹]BÄãúÑÌŠT¢ö’þöq˜®"o£ ¼9yÔ?+¢¾­.†kè7ªÕþU˜ÚMâõ„þÿ*~‡£%ШÖi÷¡qõZ‹Éz£¨4Î[’9zñõ5qd–­1«–„ìÌ8õ"´7?’$(vâÇ©|NDZGWíN-˜Òjv°&éÝ£¶åÑ€Ïå^ã_höZ6–ÿoµ’ÞKÕŽFI”ì* çŽ@ë_7Н áê(=lÏԲ̶½uU‡º¤®eè¶:F±â—Ô.åN”yXsŽxý‚øqð»á÷м­éZ&›©]­»›K}OäŽâM§hcƒ…ÉÁ ÿ<0°Œ±q…Gd«YµI¬$¥ù†øƒûøÒ߯z½ç„m-¬G…_£N´}ƒÂíÿ/Wÿ»Tâoj¹Q´ÿ Ó§Uª†ÃÃ=µÿ5.$8ÐîʧMÑ‹åÑÉÿתí¤ÛË9®ûÀëZ(\æp‡FU:Lã˜äð3J4ÍKøe·üpjœZØÇ‘ô&v¥üWvËõãúTŸÙÓt—V·QþÁÍE¤kìßVXM«ŸZÿ×8˜ÕI4K"x¿ºaêb"²qovmìáo‹ð3މ§îÇÚåϼf¡:—üÿ‘þôl+/dŒ½œ{Œ‰›÷z”9ÿkåþu Ð.ѱÊ1ÜzŸem™—TÈMŽ­ ñ#ŸÇ4åÔ5Kfü€BEiïGs~ô>#¾B–Sõ®¢?Þ63Iìc֪鞜1ÙêjÿlÊÀ4Ù—ý¥FôÍt–¢âî;‚Ø—‚äzŒœW5Jñ¥ÈúŒ- ˜ÊŠVóè|ëâ‰Þðλ5‡Ÿ-ëDyh¢ÚöžÞ˜¯ tÛ›å…죳ŽFÛÌ¥Üú|€~‚¼Ï­Þ:+3ôèdŠ3^ÒW^‡Ñké:eµõÕŒßéîtžQÇ""ÅÈÇ¢æ¼#Tø‡¢h·os5­¹ÛÃGö)rÙÉÎJd~•òNnퟮœ)AF Èâ5?‹ŒöÚdÐܦL±4ÀÛÜ8~™ûËÎkóâwtïxfW°šòßS³˜L”ùeœÀðvF8­ZŽRìyo‡>6ÞèšÉ%™T ª"äç±Á8ãÝúW¶|?ø¿ûB=ž§âMu¨XÄÛÔ°~FD``äB:þùJÊ)ûiN]OÕ1Ô§‡„ës÷cÃ_¼wñàÞˆþ8ÓfÓ¼Oe"ÜGpvý¦ÒQœ<‚]AAü¸¾Ó|Eö-c⫵à¯Ûqå\ÄKn.®½òI;ƒ†$ô¯Þ¨áU:qt™ü“ˆÌZ­:8¸ûú¹ÂjØÚê¾^Ÿzn­ŒhâFËe$d« ‘xà‘X¾Á;£ñ:ÐŒ&ãuÑŠ~•jg J7ö4Å 3È£ŽÆ¨ ¢™#©qLaÅ6 Nô†Bqše1œSp=h3ILŠ Š aëH‘¹4™4(&—q D€š\г_Äïísÿ) øƒÿn?úCo_+˜ zÿ™û ÿ½Kü/óGöÅ&›j™çÛšÏ6Pgå ùb¾‡Ù¤~>ÒEsiî÷5Q­“œKù žS+ýž^ˆÇó©R¯/*ãÓ9¥f+–ycÆÐŸŠŠ¸·×ˆû(?µ»5M­‡ý²R~yÁüJ%œ“î´¹­ßPûF:;¦4ß`s#cþšJ@©º/šÂüCƒþáÏó5¸•ùÞ| ‹šú-óyÒH¿ßä/ùü*acóDÀvb¹™â‹Üi\ŸÈ»w40»4l¤ÿH¦S®£ÛÎAúf„ÍlÑ7ïAÃÀvæü³Qïó$Ù z‡ù橾…-7'[[‚üD1ÿ]?ú“ϖ¨VNàHüëÚFÉ[Rd¿´(ΦpxáÇŸ>¦Â$hÂŽí*ð?"+>Ås+h{ß‚ô¨5]~ÔI%êHx¢†Uò y‘5è~1Òþ%­ÅƒëW­ÂøòmäòÙO]­ØþY¯Ã³\U^t¡¥·?²økN4¤ùœ¿¯Àók?†Þñ• ¶†ÎŸz;»è@˜ý8ÏëŠó/| y¼+fŸ®mtËûY¹ûjnf8ëæ*î¦>½kâ!‹«Ï-R?lž’„”tg—§Ã¿Z>Nž¼Ž5ØÒ‡y.3óœvÉ?JòmBiÞ »ƒP0YëŽß¿k»wi@#åvœdŽÞõ÷”ëF¯Â~{RŒ©n|ã¬ü4Ñ×Hµ¼Ñ Ku”Ü”S$€rÀ݆r¼Ö¾Ô~êž"kÙ<6³5Ám²ÃñÈëÇàŽNyäW ªÛsÎtï¢>_ñ—ÀøkÁãX½¶T1•iPy${vç±Í~£~Ì죹m#Åš>Ù4È|Ó hg €OO”zý~•¼Ýé¶·G™ìÿx“ØþÌ~ÁðãÂ[yâð嵚é6øŽe<àï$8$Wç_Äï‡ðxÆÓÛE|n4¢ÙŽfzŒÃ×õÀÏÆIw?­oƒ>$Ó|  Øxun`²²&)Áo“$e‹\d×Cñ[âN¯Å,æöÙïUÔ"E¸î\nÜ è0÷8­0ÉÆµÏ%ì]Ï’lüE¦I§Fñ\ªLŸ+(ðÁ«OªYÞÄY W¸ã5û4&¥úŸÅÕªCÚN+k³¦Rx9úU3¤˜RÍ0'ŸŽ)Œ°µ_µðÇüKâÿ¯ý!·¯“Ì?„½Ìý‡?Þ¥þù£ûaY‰÷59rß|>>µõ?bã„ê*R2I? ¢?%܃–ÇûDÓŒ]–6cìM†‹WfÎ×'Ó¥0N½7'àsJÅò•ü¹‹cÏv>üÔŸ½ÁÝ ?ˆÔj‡©ŽGèNß®1Nhf^§aœÑk…†}Âîä{0Qüê ¤€ eÐÈõ¨˜ñnƒ•HÕ½dœ~Tãm;™ÕœõÛÓóXvBä"lBÄä*" õ¿‚㘈öCÒIˆJª÷Ú|B×âc€+6Ôw ¨îFº…é!­á†#ØíÜ^*Õ­õè/qw$Óc!{è+‘©Tò:#y¾W¢4lô«t±Ži¤o¶1$Ä¡p£ýâO½oÇkmÈÒ”mçþZ¹m£Ðvý+¢ägÐ{Zt•¨­{™7 f8Þ(ûq×è?úÕÌ4)1,þlŽ{’j&ù›“æz4©o±Äç<þ¦¯B¶Ü<ÌX4ƒì‡õä``׿8œOixlÏÕð˜ÊQ¦”šèg5Æ™m¨›‹{‰`ÏîØ¯'¾oÒ³oÄ9]Á==žõ½Pjvº‚jG%Ä®AjO<îÏN¯ {-:ÚîÈÒo·ÆÈV]áOô\îz4(ûµÄðëñ/´¨•X­;½qo.¸~زk†&Oôw`Q°ÛpÀŽ„à “éŠÇƒHšÚÆ4¹»i@'q3ÓŽ+Ü£Ì݌ͳO¬AFŽ‘üNöÞÖc,hV1О+¿´¶x“Çø¿Â¿H£ nÏÁ’ÖçH‘°ÅZŽ£5ôHé'QèjÀÏqTQ:ŽjM£½Y¨»V”¨ô4Æ7hÅ3`ÍØŒ¡ô¨ÊÓ a©”0Œt¦“HBgó¦gœR$nê7P ÝK“L[dÔ¢¨DÀU”bÏ”ÝÅL#Í3K_z˜*ãîÕØ Ýþ{ùQb®;-_Äíÿ)ø‡ÿnúCo_)˜+R^¿£?\áß÷©…þhþÕƒñ‚Ø>ž´íýàýM}ÏÆ Dª§Ü}*âËÆD[‡ÓúU&h™e2yAö-ƒùT„ËþÐ÷ÿúÕ¡¡Dî>uÜ?¼†ÿ ­å€qöˆð?…ÁSúTŽ×Üo_ü|ŸëLùóÓøÿõè'Ðy’nŽÀöÚ£þëþï4ŠÔxts–]¿¼ASùвÊø ˜ w¹M˜·ü²AõlšLØáGùúRãY#_õ“sþÈÅeK5¼`í OûG5ÈNÈ奖i¾T]©è+VÏMžYÛùל™Î“‘Þµ¬Vp6XÔúw¬³1vÂÙô®ý´;žš¢òûXý*)%gGm&=WŠO@16[--¬û½H¿OSÄ2ƒì¢¹tFz-Ñu<†É[9ϦGôÿëÕ{¦•-ÉmgåÜê;þµWÐ×ü(óMR± ŠZW nN¢¹QfñÝ4­l'ø¤Ûǽ|"œªJÐØõéòÓÖzù¸½¸k,ZDŠxÀ;±ùšå^ÅViä^Ê! ㆠ¥vzuqÎvQÑS«o‰Ó̆HÕ—Ë”›„¡™Ûü!Wõ"¼zäº>aIΡìþûD²#É4`UŽsíÓë_CøŸB[MÎØG—‘ÀY0:Aä}3×½rÒÖªHý"/öW)ÊÚ"1ÓÒ¬AÐWîIXüÆÖŒö§„vûiÁqÆiØ¡qNõÁ¦ ϵ.}(Üæ’G­@HíR €ŸJŒýjŒHÏqL©$g­2‘R☇âžjh @â§óªm@Ï5³ Œd¶3ÛÒ“:ãkê+«–'Õ=E4ÂIÍ8MlbI“éOù½*nRAÎyüA~×ÿò‘?ˆöáÿ¤6õò™ƒ½%ëú3õÎÿz—ø_æí{bôóÿxRíã£ö¸¯£? kønȦ«£cÐõê¬;\a…ÏÊTzP˜¥n“?ð#SfM‰GËÆò MæIŒþðÊØifaóGâúõX• kô¦2;hûéø A4¯Âà57&ä¾\Í̯…÷â¦Xá Ìç苟֋w).âI-¬K÷Î}ÈÏä+%§3|°¬‡ýîC}ÛKaëfä$»}€æ¡6°ò»êEKp·rôpªòd#赯ö†H¶Å¸·©­V…­ &w—˜îsÝ5dH‹ýÕÃ&¤‰üQ!*››ÔóXrj“?Ê>_÷EC—bœ»#Þ1Ë>ÑëÒ´ÅÔ‘ÿËÁ-þʃý+4ßPM¢´—×Î0²Ê£ÝñXN³ËÌ“;gÜÔ¶Ø›lˆZö Ÿ©&®¥¢ÿp~U $ØÒK5þïä)’@–Ö²M-ÙŽ$%¶àʵåHÝ+$ë׿Ú:ˆ–&.‘ð¨^*¦›¨ÚÚ]‰fF;z à‘ÜWå•äªM´i rIIŸfxOTÓàÑÅi×roRA åýë¶ÔõkÍWPóîÙr8Tv¢aÚ¾‹‚?ÞÉÝŸ_ˆÇº´Õ(+DæIëQ–ã­}ÝÏŽ¸Q¼ôîEÅó1Þ2˜\<ÁQù”Æi¾q¤MȨ̀֓ͨ¹7ÌëI¾‹…Ã}7u›©¹¤!´´É uP‡ƒÅ>¨ A§î¦1û?yõ .L&`x5?žý Ph¤Ðá)ÏZ˜JÞ´Årq+ôy„÷¤iv&yÎkøŒý¯å"?¿íÃÿHmëå³á/_ÑŸ­ðçûÔ¿Âÿ4mH³ôRdt)ùó_N~:_OÒ“'¶?*cÌn˜ëŠ<Ò:¢þ‹ŽãLëÝüižrcˆGý÷ÿÖ©¸î7x?òÁ?4¹QÒ(Gýôhß0/E?ì¦j{¹>X’CõÂÒ‹ö z û#§Ïu2 ô'&©ŽÛbäzš›[r±±o§DNé2JÜy¬­("­$µ:QWg%6¬± }+0]Nç Çҹܯ±ƒ“l˜;ž “S~ù—aTÅ枦´×LTMӹϠªQ¾æŠ7ܦélFŠ?ÚnMUÀ ? ©°Ìõ©Db€åŒÔ¢5ÏJbQ¥OŒ3Kwzמxš&›ÂΛˆ×5Å[ørô4JîÇŽEiÚí)–úsPZøbâ÷Tͺ—?Ü Þ¿ŸÕV¤Ùú•L´„cÑíQizŸ‡t´,*d|%£8!=Ôvúô®‚+‹ÇÌÓåFþêåñù ý; ‹å‚Œ‘ñÕ0sRåEõ}å†ÇV:•4óšû¨ÉI&š”\]™0Ö¦\úÑ“A#sͪÆdÓyâ¤þ4´‚ŠC°ê1LNÅ0´Ó±T¶SöUŽÃöÒí†P™#±ŠNi\Ró@&OJ`Lš”7½1’îàó_įíyÿ)ø…ÿnúCo_+˜ zÿ™û½Kü/óGöóSIžµõ'äc6óÀ_Ê¡aêV€+œz)¨¾cÂÄ)9H…/‘1?uGÖ¦ÅY²_"LrÈ>¼QåF9’Xꊷq:GÄlƒëTÍÄ’y¼{qRßD&úˆ„6dpÇÓ­J·N#P? ‹‘°%Äœ`?*¥öhþô®I¤õÜ7Ü}Ë?Z”:³ac¬–ÃÐÞ‚ÚiH Ÿ®Átèà‹Ìº ô'“[#ÐŒ/©‘>¡o+nœÿy«‰ší¤rY‰?¤äa)tFy”“Ö¤Åas”²=êÀ5f…ŒÕ…Æy ÙÞÔìH܈²úsYp¥ÍŒ°? ãÅC\ɦ+ÙÜðØ%°Ô‘ŸpÇqÀ5éº'lt9¤žpDÌ¥CF •>¸>•üñ:2…NVµGì°ÆBœ›ÑêyZø»W—Ä/ö ÜOpá>ÛrÌÃlu¯©? #ùW£Î?Ž‘#w°Éô¨ÌÎ:1ÏÖ¦ár÷/ѱúÑåÊ~ýÉÿ€ÔêǨÃŽrì}MGäHü*ŸÂ•‡cR=Vœ=ÍI%œ1 }Ry-¹›å@àäÕ±ä¨íKBtD:Ž9ª!.&l4› ö7 Ò¤l(÷5ÕÇo§Ú®\™v^•¢G\b–¬ŽmcËB–ê±öy?pÞË+’ÎI=ÉÉüê[±3›z&FcMæ¹NQVFi¢‹¶3Ò¶4EV2É5&xëLÐm3âÎ_ŽÝ´7{ò';×ïè=Í|•¤ú†®"±éè+â1t”ª&·dJM®SÜ—ÃE©%°\ _Ì=Èa»Ÿ¡?¥{Z¦Ô ’p1“Ô×ÐѤ©Ý"lhÁ¯Pv R☄ÛÍ7oµ¶˜F2i’ÈHÉ5&Ú 4à½P`S€eàR€3Š¢‰( BîíI¿¶iÇyëMóÔÒ ±<ÃÇ4›Ï­2.ÏÒoëÍ2..ïz7P+†}és@&œ ¢‹_Ä÷ísÿ) øƒÿn?úCo_)þõÿ3öÿz—ø_æí•»-@dîŠúkŸŒÌ‡øi0ùíH¸'éMÜÃî ¤!Û›f£3€p§?JW°Ëð†åŽl›¨mSŽZ¶ZjÍ–šœµÆ§q1*„…¬„Šy_,Mr¶äÌÛrgEˆQ™´6[§:Ý+$–ઠp¸yNÑïZˆ^ã­sòÜ’O5 Ø1É=j¾2k”æ¦ E‚Äá*ÀZÖÅ“RŠfˆ“"—v8Í ãÖ—x «ó(Þ(È%Xæ…£•C!àƒX6º^ŸgtÓAœüÇžù¬œTØŽ#9Ç4¹­@N)´%% Í&ê #Í7"‚Ffš7ô€2r)wc4^À.ê]ÕDÝRƒ@Ç‚*PEPÈéNÔ ÿµÇü¤+âý¸ÿé ½|¶?øk×üÏØ8oýê_áš?¶¶‘O ¨üÀ: úkŸ‘™ðÕcç‹JìZåÇfn•çIÝœOSB+yÔAbx,+HÄÒ*æè"‘5Ò®@5ÔÝŽ†ìrrÜ–8³rÍɯ=»œR§Jº©M"‹ÊžÕh.+¡hj‘.1I‘VPÂÕ"¤Ëv¨ÉäÔ34ÜÖcIH–€<Ó÷zÐæžCº¤ ïH­… N ZüÒÕ€bŒPmõ£M´Ý´ÀB´˜ö AŠn(bŒcµ°b¾´È ´»x¦ãó¤ÛLC¶Òíæ…ÛNÙUa†Ú~ÜqÞ‹ Zp¦HñRf˜ÅϽ?µÏ?ðP¿ˆ?öãÿ¤6õò¸ÿá/_ó?aá¿÷©…þhþßR£»ÒÉ}o á&¾«e©ù.‘9iõ)d$(Àö¬‘çÊÝëÉÈænçOm§Êø-À®Åm­í“2È2;W\U·:ãjÌRR°&O­p’Ï=ßOjÊRèŒå+è…ŽÊG9"ºhtå\n¨Œ{‰FæèŽ—µgO{y *齎–ÔN6kæ|…8¬YØä×¥s‰»Žôâ¯,U V¢ŒóP ͵¿?ðPˆþ¼ô†Þ¾[ü5ëþgì7þõ/ð¿ÍÛ óÄ €s\ëI½¸ôRgãÍ—"ˆ·QŠéchâã&®(h™ï&+µaºË+ìkG©£w¶ÈZ¯¨‰AI$„•‰MÜh:ŠË“R8!i¹X|Æ—RÉÕ¸ö¬ü<ä×m˜7rUˆš¸°ûU$REŇڬñÚ¶HÔ~Üv¨Í2ˆj –IéM¬‰ w¤ÛÞ‘DM8-; -?oçUaŽÆ E IŠ`7ñ¦‚D¤©´v¤0¥¦š\Õ°ýÔíÔÇpÝKº´7{Ó·Pº—4ÜÒÚ‚D&“4LÒgš ö¥É¦!ÃÐõ§ÓOz}PŸŠ ŽiÛi€ý´mÉm&Ú› 6×ñGû\ ÁB~ úñÿÒzùlzýÚõýû ÿ½Kü/óGöœ–±ù«z-4Œq_B£ÜüDØ[ 4ó j§=+ªÖ:,g;"äY.3ÍCfLÊyÏjÎi³Ír7s&T!SOÚ³±µƒ‘Z +d-¬`qŠŸjŠÔÕ!7Q¦QXÈ=j¹~*LÙ n´ÌŒÖlÈ4½ñRŠuPÅ¥­Í&h¸ÄÝIšWÍÔ¤!¹¤É¤“š_JZJE† )’& ó@„Í 4¹¦!sëKš»€ìûÑéT0¢‚E¤¦ÒPH´PÓÁ¨ù§ƒT"@Þµ nœÓ@E;5W&îž´ìóT³KšcØL×ñ?û\ÿÊBþ ÿÛþÛ×Êãÿ„½F~½Ãïrÿ üÑýÍ,‘/jFº@0¯­?+½Œ¹/­aIsž•“f.FK»6yª¥ 5ÌÌŸJœ[ô¥b¬XÜô«VÖ-"]€TDL{Lf©™;Vw&å3!õ¨ ‡Ö³¹"ó 7qéQqɧ‚zP2J“Ò¨Ð~)Ø ŒS°ÃÚŒR„Rb Š\S›iqŠCìSQØ£ v;RS¨ ¤Å Šn)-;ŒSê+@–˜‡â—Æ.9cÚ Ša&( ‘)ù @*P}éˆp504?&ž P§Up5üQ~×òŸˆ?öãÿ¤6õòØÿá/_ÑŸ°ðçûÜ¿Âÿ4imxÇ¡ªÆåÏzúcñ«Œó÷©Ô“Ö¦ãEÕ^zÖš ãŠÙ-MŒzUª+s¢ÂàUv f”«1dÌÙžÇÚªkbW*j=µ†Úp^h(/J“Í1’§ŠÐ¡àT˜íL¤/­Æ-4ÔŒozeŠ€ÚŠ¹é@/µ;€¹¤§°4ÒÜò) ê(ïKŽx©„v£ÂŒӽª„-8j€viÙªê($(ÅØ\{Q·ÚÊM”Ȳ“o4„Çí§â‹NÍ1Í.hJþ)?kùHGÄûqÿÒzùœð—¯ùŸ±pßûÜ¿Âÿ4fÞY©DgîØübÅ•ˆãš¸©ŠÕ"ì]QЏ«Tj‰¼ÌPeôéWrîDf횪Òõ©¸®Wi*±nµ¹­FE@ˆöûRm©°ƒoµhm©6šc°b—Cf–™BRg¥! Ÿzoz’„¤¤HRPPÜR{PHbŠ@§g§4 3Kž´RÓ¸ Šv3Tí¥ÛJà ´»jÅa1IŒRØÓzR$3FêvêPÔîHðj@j†H KÚ˜§úӸ㘪˜¦‘Ri)™æÄÏ5üV~Ößòoˆöãÿ¤6õóÿá¯_ó?_á¿÷¹…þhþ×¼°J6_ScññÁ@¤à3L/ŠC"/P>µ" .j=õ»©wqJà-;Òªã4¸¦Pí¾Ô»}ª‹¶—i bm£mŠm!ŸNôÂii4ÌÔ»© R™£u!ì7u7<ÐKRnæ Ýͨ›©àó@ǃRL ©…j2@*MµE ¶›¶#Ú˜GDEFEI,’³”¢™©ÅUÆJ ©A«PjPqLc³Kšd‹Ÿzo4†2’‘"n(Å¿µ·ü¤âý¸ÿé ½|Æ;øk×üÏØ8oýî_áš?µ½ý©Û¿*úƒòÏ¿4rhÜTDBEBR¦ÀDR“gåJÀ&ÊpCÚ•€vÃRª*Ä›j@¸ëTPý S°;Ó(Nja#‘“Q–¤"£-R""ß•FO½f!»©™ëHäÑ“HBdÑH›Î:ÓÞi¸æÅÁÅ&) v8ëO¦Š”`H Lªåï qëZɃ­80ªÃp¨Íi˜´ŒÆb›ŽÔ„.Ú6ÒHBí§â†8Ξ*‰ïO¦1ÀZ\Ò$\ûÑÚ€ QŠb Rí b¿ŠÚßþRñþÜô†Þ¾cü5ëþgì<7þõ/ð¿ÍÚ¸CSãŠúsññûiت±aŽÔÂJ‘‰Q•(Ü nÑHVŒ 4qéÍ.hÝÖŒÝIº˜n¨ËR2j"jIØ­6³1ÚŒu a¶´ì!6Òm¤0ÛÚ“oZB ´»h»i6ó@ÄÁ¤ÇŠŠ J"—q ‘Û©wP1wS÷Õ ã·ô§î§rÇn§îíUp=i)€´üÐ$&hÝLL7qK»ŠW$]ÔnïJà;u;uíÔüõª¸Í<i€îµ ªÃÚ¿Š?ÚãþRñþÜô†Þ¾gü5ëþgì7þõ/ð¿ÍÛ&;Q‘Ú¾ üˆŒšaj–{ª=Õ"¸ÒdÒ¸÷ ÓsùSÍ a“ÒŠ‚Š6™Šn8¦cšC°›M7iô ÛIjBoZv(bŒsABâ—»hÛÒ˜ÄÛFÚ&ÊMœâ€°›)»5(aOjnÚV&ÃvSvö¤+ ¶“m$6ÑŠCc\{Ó½(ôáõ¦¢V„%0šŒ“R!2hÍI"dÓ³HD™§ƒïL >© TƒÖµú”SÕüQþ×òŸˆ?öãÿ¤6õóXÿá/_ÑŸ°pßûÜ¿Âÿ4kå½ê³–8Úq_J~CqKTGÞÄÅ.(¸4m5%Ø]¦—o)ŠÁ¶—e2ì&ßz6Ò(1IŠ`õ£ M´›q@ jM´ nÚM´‰Šn(bŒSb–ÅíKLñN bñOÀͶ“h °ÛÍ7e°ÍœÓ sA6#ÙQí¤+mÔ4HÌS{T´ïƤu¦1ôµhb’ Å© B´Íµ"o½( ñN¤úSÇz¡’SóZ¡ ~iˆvkø¦ý­ÿå!?íÇÿHmëæqßÂ^¿æ~ÁÃïRÿ üÑýªQÍ})ùêx‡Í?m2¬Ijv((1Å cqMÀé@ še’€ ) ( bR(y¦f‘# EMFZ¦à&ú7qÖ ¾ôî1wâ”?½wúš?½;Œ”=JË4ýÜPPgÒšOÀ5 ¤Ix篵Dx©!‘mfHÃIÞ…Í.hù÷©7P!Ùçðyª¸ÇRúñLBKja6Òí¤+Ú6Ó°X]¾Ô¸ö¢Ä‹Ž)Ø«°‡âŸT1øà×ñQû[ÿÊB> ÛþÛ×Ìcÿ†½Ìý{†ÿÞåþù£ûZ NÛ_H~> Š¢Çã­-¥Ï4 i´Š#ši4®dô¦çŠfêLÒ¸ º“ 0 ÿÚ ?í3Kšúàƒ4fisLaš\ÒÍ.h”f˜ E¢€4´€J(Í J(”PI@%”)) (¦!))´” J(RR¢˜€Z)ŒZ) J)ˆ( ¤ ¢…Z)€¸¤¤0¥¦RÐK@RÐ0¢€ŠP ¥ ¥ –‰K@Q@)(´P ¢‰E (´”Q@‚’…J(( ¢€ŠJJR¤ ¢€ (¥¤F(b—1F(qKŠc Râ)qTŠ\PŠ\P0£Z1@ÂŒPEPQ@„¢€ JJJ( BRPQ@ EŠ))´´†-:‹KRPQ@ ÑŠd‰F)ˆLRS¢˜…¤ ¢€ Z( aEŠP ¥ ¤ RÐÒPK@%ŠPEPEŠ( ¢…( aK@‚Šc (Q@(Í”À(¤E Ñ@„¢hÍ!†hÍ4f†is@hÍ.is@hÍ£4 (Í&ih”f…&h¢€4PfФ ’h bQ@‚’€ (¢Ä¢ÀZ) u mÄ- ZZ(¦K@´RQLAK@ŠJZ( aEP!h aE (Q@ E´ ( – E (´” )h”PI@Š%RPI@% J%RPEPI@ F)QLÅ.) 1K@)iˆ1KŠ`.(Åb€b€ 1@ÅÅ)(Q@% JJ(( BRPI@ E%LÑH¢€ (( RÒêZ’‚–…-”RP ¢˜ IA"RS¢™!K@Š`PÑ@Q@´”´PE (¢€ ZJZ)(h Š)h¢€Š( –€ (( ¤ ¤¦ ¢€ J(¤E (( Š`2Š Ñš.hÍ0 ÒÐ1sIš\Ñš\Ñš£4¹¢€4´fŠ&h AI@”R¤ ŠJZ))´” ( AIL–€–€ ZC’‰KLAE0Š)hRÐK@Q@ E Z( ¢€’€ (¢€ (¢€ (´”´Pš3@ih¥Í¢€ (¢€–€ J)(¤ ŠJJ@P!( ¢€Š( AE (¥ AK@ޖ˜…¥ aKL–€ Z´( aE%% ()(¤ ¢ ILBRPI@%! E1%!…(¤Òâ‚…¥¤1ii Z(QHŠ`%)(f’˜„¤¦!)hRSh¦0¥ AE-%-Q@´PRÐ ¢‚…¤ AEP!h aE Z)hQ@Z(Q@( Š”( ’€ JPE%RÐTR”´Qš3K@ šZZ3LbæŒÐš3H4f€4f…ÄP0¢ E ’…J(QHŠ`PRÐER¥ ¤ aIL–QLbÑ@– Z(£4´P0Í)h¢€ (”PEPFh)h¢€Š.h aš\ÐFhf“4\Òf‹š3@ šZLÑšLÒÐ Í% Ñ@„¢ E”Q@‚’…Z(Q@ E1 E!‹E –˜Â–˜--Q@ I@ E”Q@ E%%%JJJ)””J(¤ ¢%-% –‹KšC ÒÐ0Í.hÍ aš3@i3@„Í&i“p¤Í1\( Š( ¢€ (h¦E´Q@´PRÐE´Q@´PEP!h aŠ(h AF(´PES( AE (RR( Š%”´J(Q@RRQHAE0Š( aKH¥¦E Š`´ ( –…% Z%Q@„S¢…% Z`PE!‹E%À( ŠS¢ÂŠZJ\Òf˜ š3@Ã4´3FhfŒÐæŒÐf—4fŒÐš(fŒÐ Í€3E04¹ 4f€4PFhfŒÐ Í Í Í&hÍ 4f†hÍ ÑšLÑš@£4fŒÐFh3E¢€ (¢€ Z( ¢€Š-´fÅ¥ª¢€ \ÐFhÍ 4f€ ÑšLÑš¤ÍP1)(RR( BQ@ E%J) (¦ ¢ ( ŠS¥¤I@ ES¢€ Z%-0 )Q@Å¢€ )€´PE´Q@–Q@…¢… Z(Q@ E¸ Š(Åb€ ZJ(´” ( Š%RPE%”P ¢€ŠP0¢€"¢‚’€ J-QHaE-À(¤KLŠ@-Æ-%-Q@Q@€(¦0¢%SQ@ŠZJ( bÑH¢˜‚Š(¤0¢˜Q@Q@h 4Pš3@ÂŒÐ!sFi€™¥Í&is@hÍ Ñš¤ BÒP0£43FhÍ&h£4Qš@%ÆR£4( aEf€ 3@ š3@…Í%0Š@S¥ –…Q@ E- Z)RÓ¢€’€ŒÓÍQ@ bf—4LÑ@hÍ Š`&ii”P!(¦IHŠ( ¢ I@ÂŒPE.)(¥ AE0 QHŠ( Š(¦E´Q@‚Š-%!‹I@…¢˜Å¢´PK@ K@RÐK@Q@ E (´P0¢€ (Q@”PILAE”†P!( BQ@% (´bŠ\QŠCIAE JC )ˆ)(h¤0¢€ Z(¦K@€Z)Œ)iQ@ÆR¢˜Q@ ER(¦ ¢ÂŠ`P1)h”f€ Ñš3E Ñš`£4€LÒÓ£4 3FifŒÐšLК3@ E0 Ñš3E 3@Q@Q@RPÑ@Š( ¢€ (( Š(Í™ –Q@–´S´Rh¦E--PKHaE0Š( ’˜€( 4”À(¤IšZJ(ÍPEP ¢€ (¢˜¤!hÅ 1Lb€´€(Å0 QŠ@S£Q@( ’€ Z%-P0¢€ (´P0¢€Š( –€ (Q@…¢…)h¢€ Z)(h ¥ aE J`PIH4P ¤Í”Q@”´QŠCŒRh ŠPS ( BRÐQ@ K@„¥¤1)i€”´Q@-PK@Š( ¢Â’˜ E )€”PEŠJ(¢‰E¢„¢˜€(Í1…(¤RÐ0¤ –”3ES¢Qš(Íf†hÍ4f†ih´PE%-%)hQH£ÀLQ@ I@‚ŠZJZ(¥ aE (ih¢€–…À)i´S¢…- )€QH’˜ I@%”( ’“4¹¤Í1 šLÐÑ@-PK@–€ (´PKLaE (¢˜( AEPE”´”Q@ E!À( AE (¢€ (Qš-Q@´PE¢€ŠLÒæ€ Ñš(Í£4fŠ´™£4Q@%£4RPK@ EP1qF)´Rh aE ÒP ¤ AF)€Ê1L‘(¤!i(¢€ŒPF(¤ Å”´QHaE0 Z( ¥ Š@SQHŠb–‰E%„%À))Q@ E”Q@RPÑ@Q@h 4P0¢€ (¢€Š´ J(¢€ (¥ Š( Í.h¹¢…RÐIš( AFhfŠC 1LAŠ1HÅ Š`´€))€Q@ K@‚–‹E0ŠZ) )i€Q@Q@ KHBQLaI@ E J))Rf˜% ŠP0¢€“4ÀZ3@ E.h ¢‹E1 EŠ´†%-0 (”´”PE”Q@J(Q@‚’€ (¢%-Q@ I@Š´ ( Š(Í.i(Qš( 4PšZ( aE (¢€ ZC–€ (Q@‚ŠC LÐ!sIš3Kš( bÑ@ Š\Rb–€Š2)ˆŽ’¨¢‚’€ (¢€ LPEP ¢‰K@Q@Q@ E´†%RS´P1( AI@€)(¢€ŠJ)€QH¢€ (¢ K@Š( ¥ ŠJZ( aEPQ@ I@ E%-PE´Q@ šZ´ JZ)(Q@Q@- (RP ¢€’€ (´P0¥ –˜ E-RÐ0¢€ (Q@Š% )(RPQH¢˜ E (¢€ (¢ ( £4f–˜ƒ4´ Z(sFhÍ.i€RÐFh£4†SQ@”f€ (Q@ EPI@Q@‚’ E0 J)iQLŠ( Š(¤1h AILbÑH¢À)iQ@ )3@ƒ4f€ ÑšLÑš`¤Í Ñ@Q@…¥ bÓ±Hc±KÒ‘CsFiŠãsIšb4S´P!)h( ŠJZJZCŠPI@Q@Q@Â’)(Q@‚Š`PIHaE )€”R¢˜€J(¢€ŠJ(Q@Š)(¢€ (¥ ¢€ (Q@‚Š)h”PEPE Z%RÐE´ 3Kš3K@ ( BÒP0¢€ (¢€Š( AK@Š3E Z¥Í£4À\Ñš3FhÍ.h™¥Í! KLÍQ@% JJ(¥ ›@% (¢€ (sKš( aK@Q@ E0Š3E-f–€ (¢˜Q@„¢€ Z( ¢ÄPE%-%QHŠ(¦E (¥ ŠRh –…RÐfŒÐ!)3@„ͦEP!)h¤ ¢€ )€Q@-!Ž¥¤±O¤X„ÓI¦i*ˆ (Q@¤ Š)(i)Q@% (Q@†%ÄPE%€J(¢€ JZJ¢€ŠPE Ñ@‚’€ (i(¢€ (”´ J(¢€ JZJ( Š( ’€ (¢€ (¥ bQ@‚ŠPE (Q@Q@Q@ šJ\Ñš- 4f€¸Qš3Fh¢ JZ)(¢ FhQ@ Fhf—43FhQ@f–˜¤EPILŠ@PE-%!…%1)(Q@Q@ u-%-%)i€RÒ)h¥¦E-%Š( Šb (¢€ŠRb’˜ZJP ¢€ )Q@RPK@ÆR¢-´ (¤IL¤ ¤¦E (h ¥ Š( £ 1KŠv)qH« Šu!…&i€Òi´È )ˆ( bÑ@‡RP0¢%-%R”P ¢…J)Œ(¤IHŠbŠ)(¢ E%”PE%-%Q@h Š( aE (¢€–€ (¢…% (¢€Š( ’€ŠJ(h Š%- (¢…%-%PE (”´Rf€ 3@is@fŒÐÑ@ŠP0ÍQ@‚Š( ŠZ(¢‹E%´Pš3@hÍ 3@ FhÍQ@ EPEPEPE%-PE’…Z(¢€ (¥ Š`PÑ@Q@ ES´P ¥¤RÓ)h£€(¦E%- RPŠZCŠb (¢‰E!À(¤Fi \Òæ…-&(Å! ŠLS˜£(Å1… BâŒRb—bŠ.(Å!Øv( ašBh ‰šLÕpÍ%SQ@-%-I@Š” ( Š@”´”À(¤Q@ EPQ@„¢%””P ¤ aI@%P ¤ Š( Š(Í¢†h ŠZ(¢ ( ¥ ¢€ (( AEŠ( Š( Š( Š( Š( ¢€ (Q𔹤¤E Zb ) ( ŒÐÑL–€ (¥ Š( Š( aE´”´”´”P!h aEPÑ@-:’‚„¢- (Q@ E”´PF(¢ I@-¢€ )€w¤¤Ñ@QLŠZ(h ¥ –€ )€´P0¥ AEP0¢Q@‚ŠPQ@RP ¢€ J(¤E0 )¹¥Í!Ü3KÅP0Ÿ¤¤ÑÅ0Š8¤0È£43Iš`&i3LAEŠ`-Q@‚Š´( Ñ@Š)(¢€ (¤ ŠJZJ)”PI@‚’…%%J)”PRPI@ E J( Š)(¢€ (¢ÂŠb (h aE (¥ aI@ E%-%RP ¢…”´”PÒR¢˜€( ’˜ IHŠ( ¢€ (RP1i(i)´S¥ aE Z( bÑ@´S¥ Š@S¢…-R¢˜Q@Q@ Eê-%%-P ¥ aE--%-0 QHŠ`PER¤¦!i(´”€( AE0 (¢€ (¥ Š)hRÐE1-P1h ¤ BÑ@ŠPI@‚’€’€ (¢…Q@‚’€’€ )bŠ( ¢€–˜‚ŠC )€RRi)€Q@- J´Q@RÐQ@‰h  ¢€ JPI@ I@Š%RR( ’€Š@%ÀJJB JJ(¤ ¢€Š%RPE”€Z)ŒJ)( Š)iŒJ(Q@ EPEPÑ@ŠJZJ(¢€ J-% J@SQHŠ( aEPQ@‚Š(¤0¤¦ER¥ Š`-€(¦K@-SRÒ¥¦EPEP1h Š( –…( ŠZuŠ( –˜€Z(¥¦K@ K@Q@€(¦I@‚ŠC )€”P ¤ ¢€ )Q@À)h)hh ŠZ)€´PK@ Z(¢€ (Q@%´”P ¢€ (¢€ 1@ I@ÂŒP £´˜ —Rb€“bŠ1E”bŠP0¢ ( ¢€ J)hZJC“ÄP0¤ Š”Q@ I@%R( BRPQHbRPHRP0¤ AI@Â’”PI@(¤0¢€ JC )ˆ( ŠJ)€´PEP ¥ bRÐEPK@%’€ (¤ Š@P ¢‰EP ¤ ¤ aE (¢…”´QH¤ aKLAEP1h –€ )€RÐK@Q@ EP0¢€ (¥ ¥ ¥ Š)hRÒ¥ ÅÀJZ( ¢˜- ZC )Œ(¤ÑLAE J`PE!%0 (Q@‚Š@S¢À)h¥ ŠP!ih¢˜-RRÓ¢€ (Q@Q@RÐEPEP1h AŠ1@ AE (1F(¢)(£Q@Q@ EPI@ E%=% (¢% J”Q@ E%%R))QL¤¤!( ¤ ’”P1( AE%´” ( BQHŠ`PE”Q@QHŠ`PEPÑš( aEPEPE –€ J( ŠJ(¢€ (¢€ JZ)QLŠ@S¢…´PEŠS¥ Š)h¢€ (Q@†PE Z`%-PK@- (h¤E0–-P0¥¦E ZJZ`PEPQ@€( Šb ) ZJbŠ)h¢Â—Ä´ 1KLÅ-´Q@´”RÐE%( –€ (¥ Š( ŠZ(¢€Š( ’€’€ 1@ K@„¢€ (¤ Š)(¢€ J)h( ¥  ¨ aE”Q@Ä¢ E J)(RRRPQ@ E Š” J1@‚’€Š)(ÅQŠJ1@‚ŠR”S$ZJb( bQ@ BQŠ( ¢€ (¢€ (¢À)h¢Ä¥¦ER¢˜Q@%- J)(¦E (Q@‚Š%ÄRi)´SQ@Ä-%!‹ÚÒ+ RÕPKHŠJZ`PE!…QL¤ ¢À)h¥ aK@ E J`-( ¢…-S¢-0 )Q@%0Š(¤I@ ES¥ ¤ ¢€Š)h¥ Š)i€Q@Q@ E&( Š( ŠPRÐ ¢…´PE- ( BÑ@ŠZ(( AE”Q@ E (RPE%( ’€ (¢€'¢…%-”PI@ J(†’€ JR)(¢ÄÅ%2BŠCPIŠJ(¢€b€ (Å&(Q@ ¥ ¢€ Q@Š%b’€ (RP0¤ ŠJ(QHaEPES¢€ )´”´S¢€ (¢€’À))´” ZJPE ()h¢ÀJ(i)Z)Œ(¤ÒS¢€’€ (i(¥ ŠPEŠ´Q@ E0 Z)h´P0¢-P!h aE-Q@À)i J(QLŠ@PE0Š( ¢€ Z`´€)h¢€ Zc )Q@ E )ŒJ(¥ BQ@% (Q@ E (ÍRÐ ¥ aš(¢€ Òæ…3FhsFh¢€ Ñš)(¢€ J( AI@Q@ E-%PEOE (¤ ¢‰E JPQHBQ@ E%Ä”€( bQHAIL¢€ J@PI@Q@ 1I@„¢€ J( BQ@ )(¤ AI@”R¤ Š)(Q@Š( AKLaIHŠ`-€)i€Q@ŠPEPQHAE (Q@ÄR¢…”´€(¦EPEPI@(¤ÑAAEP!h¦E Z´´” ZZ`--’ÀZ(h –€ (¢€ Z)(¢˜ E (¢€ (¢€ )€´PK@RÐÑ@Šb (h aERQ@ E0 J3E™ AFi 3Išf˜h AE —4À(͹ 4PKš(Í Z¢†hÍ£4fŒÐ!( ¤ Š( AE J( Š( бE% 3@RP0¢ K@ EŠ%RR¢€ (”P1(¤ ¤¦0¤ AER( aI@‚ŠZ(Ú()(fŠ% )(”PI@Š@%% (¢€ŠP1( AE –˜€))€´PE´ ( –€–˜€( Š`R¢‹E )€”P ¢‹E Š`PE´€J)€Q@Q@‚Š´”R´SQHaEŠc Z´Æ-´´†-%Sh –€ (¥ Š`´€( ’€Š( Š`R¢˜´PE-Q@- (¥ “4(Í0 Ñš@f€ŠJ)ˆLÑšB Ñ@ÄÍ ŠPEPESfŠ´( bÑHŠ`-Q@Q@% Ñš( Š( ŠPKH—†£À–Š`”fŒÐRæ€ Òf… BfŒÐš(3E ) LÒÐQ@J(¢€ JJ(¤ ¤ ŠCŠ( AI@Ã4”JJ”Q@ E%RR( AE1‰EH‚’˜QHbQ@‚ŠP1( ¤ ¢€ŠZ)€QHbÑLŠ--–€ (i(h ’€ŠPEPESi)QLAE!…Q@QHaE1 )hQ@ ( BÑ@Å¢˜Å¤ BÒÐ1h¤E0 (h ¢€ (¥ Š-%-)(h Š`PE )RÓQ@Q@´”´”Qš)3@hÍ£4LÑH’˜ƒ4P0¤ AE-†PE1Q@( Š-( ¢€ (´SQ@i(¥ ¢€ (¢€ (QH–€–‘C©i J(i*É )LÑš)3L4™¤Fi€f“4€3Kš&hÍ Ñš3FifŠ`&i3@ Fh¢ J(Rf˜Â’…Í&hQ@ š3@ I@ƒ4PfŠ”Q@ I@‚ŠCŠ)(Q@% )€RR¢˜ EŠCŠ( Š)(´P0¢€ Z( –˜Â–-0–€ Z( bÒSh Š@PE0’Q@%- ( AEPE (RÐ0¢€ (¤Í Š^´Çah¤HQ@ÀZ(¢‹Kš( ŠZJ)h¥ÍPE-Q@-PE-ÆR¢˜‚ŠP ¢%-%0 ((¤ ¢˜ E”€( Š( AE (¤ BÒÐE0 \PE 1L¤Å¢-0 QŠ@Sh¤0¢˜( Š@S1K@‚Š”QHAE1‹IH¥ 4¹¤PfŒÓ¹¤ AšJJ(Rf…€J)€Qš3Iš@£43Fh£4 3Fh ¤ÍŒÐš(fŒÐ Í% Ñš&h aIšPI@%¤ Š( ¢†%)(¢€–‰E!%PEPEŠPEPEPE-´”ÀZ(Q@…¢‹E´À(¤Ñ@Š`-€( Š%-Š`R¢€ )€Q@€( aEŠE(¦IÀ¬+›’ÅR6Š4Ss¨lÕ… ;Ô±6L -#1(¦ ¢˜ E )€´”´PK@RÐ0¢€ (h ŠZ(h ŠZ(RÐ ¢…Z)€RPER( ’€ )ˆJ)”PI@)hQ@ŠP ¥ Š`-- )Œ)hbŒPÑ@(Å0 RÒ1KŠ`PŠ(”´ 1F()q@ K@ EPRÐ Å )(ÅbŠ@-À(Å%%H šJJ(RP0Í”P ¢€Š)(¢ )s@ E (Q@%f€ (”P ¤ Š( ¢€–€Š)(´”QHaE%Q@‚’€’€ JZ) )(¢˜‚Š(¤EPEŠ-”´ ( ŠZ(¢€ (¥ ŠbŠf‹E£4Q@RÐE (¤ AK@ ( AEPE!…À( Cî¥rÅwÉŠ´uGc¦‰v 5AΊ-Q@RÐEPE0Š( bÑ@ƒ4´ ( Š)hRÐ0¢˜- Z´ )h(¦ÒR¥¦Q@%”)(QHBQLŠ@%-%-P ¥ aE´RÓ¥ –€ Z)iŒ)iQLAF(bŒPF(bŠ£bŠ¢€PE (¢€ (”P!i(hÅ- b€"¢¤¢ E0 )”PI@”PE”´”Q@”´”P ¤ aE–€Š( ’Å¢˜ ER(¦ÒPE (Q@Ä¢Q@Š( ¥ Bb–Ä¢˜‚ŠC (¤ AEP0¢€ (¢Q@ŠPE (£4Ræ˜h¤Fhf–˜‚ŒÒ£4 3E0 Z( AEŠ@SQ@‚Š)h¢ÂŠP1Œ2¤VR@D¹5H´ô5Ç´ˆ (Q@Ť ¢€ (¢€ Z`R¢˜ÂŠPÑHbÑ@-S¢€ŠZ(¥ ŠZ)€´PEPE%€)(¢ EPE%-%-PE-RÓ¥ ¢€–…-0 (h ŠPE (´”´PQ@Q@b’€“( aE´bŠZ\PLái« &€Š‘J(( ŠJ(¢€ J( ¢€ (( AI@Š” (¤ ¤ aE”QLBfŠ(¤0¢ KLŠ”„´Q@Ä¥ ¥ AI@Ť AE0 )Q@ ( Š@%-%À(¤ ¤ aEPEPRÐI@‚Š( ’€’€Š( aFh£4´”´Pš(h aEŠSh¤K@À( ¤ bÑ@€( Šb (Q@ I@ EPEPE0Š@PÒPE´QL¢Â–˜%-\Ñ@hÍŠ)i€fŠ@f€’€ ÑLAI@Å¢‚’€ (¢…( –€ (h¦K@´´À)i (¦Kš( ¢€ (¢Q@-%´”´PE”Z(”´Q@Š´SXñ@Ì ¤*zÕ4¸Ëã4É:zm@)(Q@‚’…Q@„¢€ (( ŠJ(¤ ’€ (”RRS¢ E1 E!…)(Q@‚Š´€J)€Q@( aK@%´”P!i(QHŠ`R¤¦ÒR¢˜)) ( ŠJ(¢€ JPÒPEŠf€ (¢€ Z( Š)h¢‹E´RÐ0¢€Šb ) )i€RÐ0¢À(¤Ñ@À( Š@PKL¥ Š( Š(¦E (¢…(¦KH¥¦ÑHaFh¢˜‚ŠZ(£4´P0¢Q@ (ÍŠ)(h aE )€RÒ¢˜-PK@´PE´À( 4¹ Š( –€ (Q@ I@ E (h Š)h( –…)hRÅs·Q–ÍbGnÊù4íé*DPÞŠJJ( AEŠ( ŠJ(Q@ E%”P ¤ bQ@ E J@P0¤ AEPQ@Q@QLŠ@´ JZ(¤E0 (”P!h ¢…(¤I@ E%ÄRRPE%Q@„¢€ (¢€ (”RQLŠ@S¢€ ZJZ( –€ ZPÒÐ0¢€Š)h¥¦E!‹ES¢€ (¥ ŠP ¢€ Z( aE (¥¦I@Š@S”PER)i€RR£4fŠ)i€™¢€4f š\Ð0Í.i¹dP1x¢… AŠLS ))’PE´Q@Å¢´S¢ E0 Z( bQ@…¢€ (¢€ (RÐRÐE-À( ¢€ Z)hRÐE–€ŠPÑ@ŠZp 0j‘„g¥Z¢¤‘( AE J( ŠJ()h( Š%RPE%””RPIHŠ))€RP ¢Q@Š( ¥ Š( Š( aEŠ( bQ@‚ŠR¢˜‚Š(¤0¤¦ ¢ÂŒSRR¢€PÒPQ@RP ¢€ JZJC )ˆZJZ) (¦Ñ@( ¢€ (ih)ÔÀ( bâ– Z(¢˜†-ÄPEPE-%ŠPEP0¢€ )€´R( AEŠPQ@%1 IHaE (Q@ E 3@-P0¥ Aš3@ÇfŒÒÇfš ¸f—4QŠAa1Mª$(¦HQ@Å¢€Š)h¢˜ E!‰KL¢…Q@(¦E (i(¢€Š-Æ´)hR怊 –€ (h ŠZ(h aK@‚Ž(¥$…Q@‚ŠPE% ¢€ ()h( ’€ (( BQ@Ä¢ F((¤RÐRS£(¤1)h¢˜ KH¥ AI@Å¢€ )€QHŠ)h”Si(¥¤QL– E’…Q@J(QHAI@Š%À(Å Rb€ (( ŠLRâ \Rb€b€ R†QŠ-\Q@—QL–€ ZP ¢…Z(Q@Q@Q@ I@ I@– K@% (¢&i€fŠ@PFi€f’Q@ E (¢€ J-% )QL–€ (¢€ Z)A §R(QN‚‡ÐE!Œ"›T@QLAEŠ-RÐE0 (RÐ0¤ ¢À( AEPE (´PE´À)h¥ ¢€ u Z´RÐK@- (¢h©$)(i(¢˜€(¦RÒ)h”P ¢‰F(Rb€ Q@)(£˜£b’€ŒPI@‚ŠJ(ŤŠ1@&(´”)h”PF(i(hÅ´À( aF)bŠ`£†£1E0 QŠ@£ 1E1†b ŠZLQ@ E”Q@ E ’€–€ŠPŠ(¢‹EP ¥¦KŠC QLŠZ(¥ ŠPE (QLŠ@R¢˜ƒ4P0¢€ (¢Š (QLŠ)(¢€ )Qš&hÍP†P ¢€ (¢€Š(¤E0 )Q@ I@Ä´†S¢˜ E:” ’‰:Sh ê’Ä5ªD1(ª$Z(´P1h Š`´Q@Q@€)i€”´”P ¢€Š)(ii”´À( ¢€Š`´´´ )hh bÑ@ E´RÐ0¢€+ÒT’P!( Š( ¥¦QHŠ”ZJ( ŠPI@€)(¢€ J(Å1)1@Ãb)1LÅ&)1F)Œ1F(Å b†(Å!(Å£ƒb˜Ãb(Å£Q@Q@‚’€’…-”€(¦EÜPIA!E%Q@ E )ˆ(¤1(Å0Š@S¢€ Z@PE0’€Š(¦ÒRQ@‚ŒÒ¤ ŒÓ¢€ 3HaIš£4´P0Í&h¹¤ ¢†hÍSQšPQHŠPI@´”´”Q@ I@ EPE0Š( Š( ŠZ(Ÿ£¸§b‘Bâ@ÅÅ;¤P´ÜÐI¦ÕSQ@ E´ ( AE-Q@À(¤RÓQ@ŠPE´Q@´PKL–€ Z)hRÐPQ@ K@- Z)h¥  ôRRR´PI@ KL’ I@Ä¥ BQ@RPE”Q@Š%Q@Š%-% ( Š)(´P0¤ ¤¤E0 (¢€ (¤ Š( ŠJ(¢€ (¢€ (¢€ ) ( AFh™¤Í J( BQ@€))€´”Q@RÒ)h)h¢˜Q@QHŠ`f E¤ 4f€ ÒP Í aFh¢€ 3@h Š( Í%-Q@Q@”Pæ’€ (¢€ (¢€’€Š( ¢€ Z`´€J)€´PÑ@.(bŠC°»iØ « Š1HaŠZ2)3@ š3TH™¤ BRÓQ@‚Š-Q@ ES¥ ’€ŠJ(QHaE’€ )€RÒ)h¢€ )€´PÑ@ E´À( ¥ –‹E´ )h£4RÐ4´„%„S¢ÂŠJ)€QH¢˜‚ŠJ)RPÒP0¢ EP0¢€ (”PE (Q@Š( ’€’€ (¢€ (¤ Š( ¢€ (RP!h¤I@ÆR( Aš3@ š3@„ͦšJC (RPKH’˜Q@Q@ E )€”PKH¥ ¢˜QH’€ (¤ ’Q@”PÑHaI@-0ŠZ(Q@ŠZJ( Š( ¤ Š( AEP0¢€ (´PÑ@–˜€)i€RÐEŠZ\Pâ–Ã4´ 3Fi€f“4Q@„¥¦E (RÐ!)h¢€ (¢€ Z( Š(¦E (¢€ (Q@%-QL¤ ¢€ Z)h¥ Š`-Z(´PK@–…Q@…¢€#¢¤¢%S¢…€))€Q@ E )€”R”S¤¤ÒP0¢%P0¢€ (¢€ (¤ Š( Š( Š( bQ@‚Š%-Š(¤0¢€4f€4™ AšLК3@„Íf“4fŠ@%À( Š(¤EPESh¤EPRÐEPI@Q@”P ¤ Š( bQ@‚Š( Š(¤0¢€Š(¦ ¢‰K@‚ŠP ¢€ (RP!h ¥ Š”ZJZ(Q@‚–…´PÑ@-S´PÒÐK@ E )ˆ( ŠZJZ(¢‹E (¢€ (¢€ Z)(h Š( Š( ŠJZ( AI@ EPE´À)iQL¢€Š)i€Q@ E- 3E-Q@Ê*D-Æ´€J)€Q@%R( Š%ÀJZ@%RPE”Q@Ä¥ BRÐQ@Š( Š)(RÐQ@Š( Š(¤0¢€Š)3@„Í ¤¦E! E0 J@%( bQ@‚’ I@ I@Š( AK@Š( –€ (¢€ (i(¢€ ZJ)€QHŠJZJ(¤ AEPRÐbŠ( AK@ŠC )ˆ1K@ KŠ( Šb€ (¢€ JP0¢€ (Q@Ä¥ AEPÒP1h Š)h¥ §PE0Š@´ÆP©h¢…À( AK@RÐE (Q@Q@Q@Q@´”Q@ I@‚–…(¦0¢‚Š)i€QH–˜€)j€(¤Ñ@-Sh aE (¢…™¤¤!h¤Ñ@Ä¥¦!)h”RRP0¢%”Q@ K@ I@Q@%PEP0¢€ J@´Ä% Z)Q@Š))QLÍf’ š)€””ZJCŠ J”RRh¦!(¤1( AEŠ´”PÒPÑ@ )hQ@Å¢€ (QLŠC Z( ŠJ(¢€ (¤ –€ŠPEP0¢€ (¥ Š( –€ Q@Q@RPEPE&(Å (¢€ (Q@Q@´PE-RÐE´À( bÒÐK@–˜…¤¤0¥¦ ¢€ (h Š( Š( aE%Z()h¤ Š-%Š( Š-Q@-–˜„¥ AK@Š´)h)h¢€ )€RÐQ@ E&ih3K@ EHŠS¢€’Šb )RPE JPQ@”P ¢…%PRÐQ@ I@ŠR()hQ@Å͆˜ AŠLPb’˜‚’ J)€RRRPE%RPER( BQ@Q@ aE (Q@‚–†( BÑ@Š)h¢€ (i(h ¥ ¢€ (¢€ (¤ ¢€ QŠ( Š( ¥ –€ JZ(ÅQ@Š-% Z%Q@Q@Ä¢”´b“Q@ I@ I@-%´PE-Q@-SQ@…¢‹KšZZC—&)1A6 )€QLAEPE (Q@Q@Q@-%Q@-–€ )€RÐE´´PE (´P0¢´PE”Q@À(¤E1…" (Q@Š)h¢€Š`PE J( ŠJ(¢€ J( aŠ(Q@ Š(¢…RPEPRÐER¤ Š˜ b F)Rb˜)1@ƒ”QH£RP ¢…b’€ (¢€ (QŠ-Q@ EPÑ@ŠbŒRQLAŠ(£ 1E Q@( PEŠ`-¤0¢€–˜‚’Šb (h¤0¢€ (Q@Å¢€–€ (¢€ (Q@Š)(¢€ 1@ƒb…˜¢´” ( AE0 (h¤IL¢€ (Q@‚ŠC Z`%-1-!‹š\ÒÇf—4Š"Ž(b“Ä£„Å&)’SQ@%´Q@ (¤EŠP!(¦E´( ŠZ)€´RRÓ¢€ ZPEPE”RÐQ@QLŠ (¢€ (RÐ0¢˜€( ¥¦E!‹I@RP!i(¢…Q@%0’”PŠ(( AE (( PE%QH¢˜‚ŠC (¢‰Eb€b„Å ˜ AŠ1@ Š1@ Š(”´J1@À1K@†-%1 Š1HaŠ\SÅ.)bŒP1qF(Å.(ÅP0¢ 1F(b“bŒPb€ QŠJ1@‚Š`R)i€QHŠ)(h Š`R¢˜€)h¢˜€(¦E¢€ )Q@(Å£À1F(ÅbŒRb’˜‚ŒPEPF(Q@Š)(¢Q@´f‹š3@ š3@Çf—4Š4fhȦÅ.(1FÚÁŠ1@¬£ƒ˜ ŠPÑ@Š(Å£Ä%%1)h¥ –˜RÐE´Q@Q@ EPE J`PÒR¢€–RÐ0¢€ (¢€ Z( –€ (Q@QŠ)(i(¢€ (”PE J( ¢€ (¢‰E (¤ aE”( ŠCŠ”À)i”PEPE (b“¸£˜£bŒP!qF(Å bÑ@Q@QLŠ(¤E0 ZJ)ˆ(¤0¢€ŠCŠ( bb’ E ((¦ ¢€ )Q@ÄRQLŠZJZ) JZb (¢€ŠRih”P ¢˜Q@ K@Q@„¥¤0¢˜Ä¢ƒS¦Ð!i(¤ AE (”PEPE )€RК\К3@ÅÍ Í.iâî¥Ý@î©wRÃ4f˜ š3A"f’˜ E Š)h´´ Jm2D¢™!E-Q@ E (´PÑ@Šb (h¤ITE )”´”S´fƒ4™ BÑ@ÂŒÐFhsI@ š(h aE-RÐEŠ( Š)h( aE”´”RPE J( ¢€ J( ¥ ¢€ (¢…% J( Š( ¥ ¢€ )RÐ1( AE1†PE´RPK@À(¤0¢Q@Š( ŠP0¢ÀZ1HbÑ@RPI@%Šb ZJ)Q@ÄRQ@QLŠ@P ¢…-0 (h ŠCŠJZ`”QLBÑ@ )(´” ( Š´†Ú))’”†PQ@„¢€ )QL¥ AIHaK@ KLŠPÑš.hÍ.hÍ.isHaE0 (ÍêZ.)i Z3@Ææ“4ÉŠd…Q@ E´Q@ÀZ)QL–€ (¢€ (¢QL©*D¢˜‚Š@¢˜´P0¥ 4f€4f‹š3@-¹ Í- 3@ih£4RPÑ@i(¢…&hQ@ K@ EŠPQ@”PEPQ@…¤ aE JPE (QLaE )€Q@€)hRP!h Š`PE (¢…€(¦ÑHaEPf—4™£43FhÍ Í 4PFhi3@% )€Q@QHŠ( ’€ ZJ(¢€ (¢- (¢˜‚–…†.hÍ ZcŠ- J(Q@À( ŠR¦Ð ¢€Š%RPE Š( Š( Š(¦ ¢Â–˜„¥ –€ (h¤1h¦E0– N ¡isHbSiˆ(¦ ¢´Pš(QLAE-QHŠ`-€( Š)h”SQ@"Š¢€ (¢˜ š)fŠ`¹ 4f€4P0Í.hÍ.hRÐEPE 3@hͤ £4LÒÐ1(Í%( bQ@‚ŒÐ0¤ ¤¤EPE0– K@Ä¢‚ŠPEPES¢€ (QLŠ@´RPÑ@Ä¥ Š(¤ ¢…Q@ š3L4”Q@„¢€ )fŠ( Š( Š´ ( Š( aE )Œ(¤IA!E (RP1h¦!(¤K@Ä¢€’€ŠP0¢ E )€Ræ€ 3@Å¢ƒ4SQ@‚’€ ÑšLÑ@‚’…% (( ŠBŠ`RRPK@%Š( ŠP!h¦RÐE- )hh¤KL¥ c¥¤PSj‰ (¢€ Z´RÐRÓ¢€ ZC )€Q@‚– EPES¢À¯EI!I@ I@Q@-PRÐE´À(ÍŠ´3KHaš3L4´Q@Š@”( aILAEPQ@ (¤ER”P!( 4f€Šb 3@ÂŒÒͦ!sIšC4™ —4fŒÐš3@ÅÍQ@Q@Q@À)i”Pæ“4 LÑšP ¤ Š( ’˜ IH¤ Š( –€Š( ŠZ)€RRih( Š( Š( ŠJ(¢Q@ JZPE-Q@ÀZ) J(¥¦RÐQ@€)(¢˜‚Š(¤Q@ EPEPQ@ I@…¢€ (¢€ )Œ)i”´Ä”´PK@– E Z`-†á@¤¤0¤ªQ@ E-ÄPÑ@Å¢€ (¢€ Z( ¢†”( ŠS $‰Š(i(¢€ (¢€ (¢€ (¢€ )€´RQLŠZ(¢…- ŒÐ0ÍêJC RP ¤¦I@‚ŠP ¢Â–‰E¤Å’˜ E ) (¦ ¢%-”´”´Q@ÆR¢€ Z(Í.hÍ ÑšLÑšbŠCŠPI@Q@Q@Q@‚ŠPEPE (¢…ZJPE (´PI@Ť AEPE%- J-( Š( aK@‚Š`R¢˜ (¤I@‚–˜ E!…% ()h( ŠJ(¢€ (¢€ (Q@ E (¢- (¢€ )€´PE1-´†PÒÐ0¥ Í-!‹IL’˜…¢€ )ˆZ)´SQH¢˜´”RÐ!(¤0¢€ŠPE´ ŠŒPHbŒRÅ ÅbŒPŠ(QŠLQLb€ QŠ(Å!†)i€QHŠ(¦E Z(¤âHaI@ÄÍ%1% )€QHŠ`%€( aK@†˜ Bb“”SQHŠ( ¢€ (¢˜ E!‰E (¥¦0¢( ¥ ŠS¤¤!h aEPQ@ I@ EPE (Q@´”Q@( aE-%SQHaEPEP ¢€ (¢€ (¢€ (¢€ (i(´PÑ@RSi(¢RP ¤¦E (¤ ’€ (¢€–%ŠPEPÑ@ŠbŠC (¢˜ E )€RÐE¢€ (ih¢‹K@ih´PQŠSQ@-P0¥¦ ¢ E0 J@´ m- J-P ¥ c(Å (QŠ1F(Å PF(Å% Q@„Å Å bRÐ!1E (£¸£€1KŠ¢€ ((¦QHAE0 (Q@JZJ) ( ¢ ZJ-% ˜¦!1KH¢%´À)) (¦ ¢Â– JZPRÐ0¤ ¢€ J)h¢€ (”P0¢´P1)h¢ ( –€Š)h)h¤ ¢€–€Š( –€ ()h( ŠZ(¤ ¢€ J)hQ@Š´Æ”RÐ!)hQ@Q@ E JPEŠ%RPE”( Š)h”P!{Ñ@– K@ÆR´SQ@‚–…RÐÑHaES¥¤!h¦0¥¤0¢˜‚—4´´†S£Ä%-%QLAKHŠ`PE ’…- ) ( ¢˜ÆÑA!K@%Š( Š( aI@ ŠP1( Š( Š( aE Š`P ¢€ (¢€ (Q@Q@ E )€RR¢˜% JZ(¢ Š\PqF((¦IHBÒPEPE- ( ’€ŠJZb )Q@ŠPE (¢ ( Š( –€–€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ Z`”€Z)€Q@‚ŠRQLaE”QH¢˜„%RPI@Q@ E (¢…RÐ ¢€ (QLBÑHŠ´(¦0¥ ŠZ(i(h¤0¢˜‚–€ŠC ZJZ`PK@-–Š`£bŒP Å&)ˆ( AEP1i(ih¢ÂŠ@SÚZb–´” Z(¢€ (¤ –€Š%-Š( ¢€ (¢€ ()h( Š( Š( aEPE”´”Q@% )€RR¢€Š(Í.h¤0£ 1IŠ&(Å RPEb€ŠJZJZJ(¢€ )ˆ(¤0¢€’€Š( ’€Š)(h Š( aE (¢€’€ ZJ)€RÒ¢€ (Q@‚Š( Š( Š( Š( Š(¦E (¢˜‚’…„PILŠ@”Q@%PRæ‰E‰EPEPE (¥ AE (i(´P0¢ÀZ(¢€ŠPÑ@ E )€RÐÑHbÒÐ1(¦ ¥ aE (h¤1ii€RæÂ–‹E¤Åb˜„ÅÄPRÐEŠC–˜ ¢( bÑšJZP0¥ ŠJ(¢€ (¤ ’€ (¢€Š( Š( ¥ ¢€ (¢À( aEPEŠ@P0¤¦ER¤ AEPE!†isLaš3HAE (¢€ (¢€ Q@ “¸¤Å.(Å£bŒPŠ1@Ãb€ QŠJ(Q@ E (¢€ (¤ ¢€ŠPE (¢‹I@Q@-%-PI@À(¤ ¢€ (¤¦!i(¢ÂŠb J@S¤¤I@ I@%P Í% ZJ(Q@”´”´Q@RÐE (¥ BRÐE0 )RÓQ@€Z(¢€ ;Óih¢-K@- )ˆ)h¢…% Z)i€RÔŒ\ÒÐ0¥ bÑ@J1@ E1 E1( aE6’-–€ (¢€Š( aEPEPQ@Q@”´RR´”QLAI@(¤0¤ ¢‰ESQHaES¤¤ÒPI@( aEPE ) (¦E (¥ ¥¦0¢‚’˜ E!…Q@‚Š( aE.hÍ£4f–… 1I@„Å Bb’€’ I@Q@ EPEPE (¢Q@Š( AEPEPEP1( ‘( Š)(¤ Š” ( ¢€ŠPI@ I@( bÒRii€Q@RÐE-%-À(¤0¢˜‚ŠZ(¢€ (¢€ Z( aN Š@´RÐ1h aE1-!‹F(¸¤Å1(Å.(Å¢----PE%%ÀJ(QLŠŽŠD…Z)Œ( ŠZ(¢€ (¢€–€–€ (”´Q@% Z( aI@% )€Q@%´”P0¢ K@‚Š`%€(¦E!…Q@%-%R¢˜‚Š)hQ@RÐE” )h¢ K@Ä¥ AE!…JZc (( AER´P1h ’%0Š ()h¢€ (¢…Q@( aE (¢‰K@ E (¢€ (¢€ (( Š)(Í% (( BQ@%PE%Q@‚’Å¢˜ KHŠ`´Q@ E (´P1h Š- (¦E N”ÚQ@ K@Q@–€ Z( ¢Â–˜ N¤1( —ìS±H«Å.)%74ÉŠb (¢€–€ ZPEPE%%QLBQ@ÒPH´P ¢…Ä- ( Š( Š( –‰K@‚Š”Q@Q@Š@%-1%RQLŠ(¤E1 ER¢€ )Œ(¤!)h”´RPEPEPÑ@ ( BÑ@ŠP0¢€ (Q@Ä¢€ŠJ(¢€ ((¤E´RÐ0¤Í¤ ’h ¢Q@Q@Q@RPK@Ä¥ BQ@ŠPEPE LÐHQ@Q@ E%Q@ E%J(¢% )Œ(¤ÒS¥ Š(Å´RÐ0¢ EŠ( ¢€ (¢€ )€RPP(úJP ¢…- Z-QHaNÅ0IHaKŠ~*@´®]…¢‘Bf›L‘1H8<Šd=iiˆ)i )h¥ bÑHŒÓ( BfŒÐšLÓQš(ÍR´S*($( –€Š)iˆ( aEPE (Q@ I@– ( Š( ŠP!( ŠP ¢€ J-%R¢˜€))€QHAE (¢˜‚ŠEQ@)hRP!h aE0Š@”´S(¤E (”´RPEŠC (h ŒÐ13Iš¤ÍP!( Š( Š( ’€ (i(¥ ¢€’€ (¢€ (¢€ (i(Q@ŠJm(§P!( Š( ¢€Š)(¢ ILBÒR¢€ (Q@–˜Q@…¢…- (´PÑ@–€ (Q@‚Š)i€”´”PEP ¢€ Z( ¥ aE!‰NÅ>ŒÐP”P!ÀT€R)!ôf¤±)´É’¨BQA!E´ Z(3FhfŒÐ Í&i’&hÍ Ñ@Ä£4ÄPš(f–†hÍ¢)(´”ÀZ)QL’€Š@SQ@%-Q@‚ŠPE- ( ¢-% ( AE (¢€Š( Š(¤EŠS¥¤QLŠC )ˆ(¤0¢˜…¤¤E )€´R( Š( ’€’€ (¢€– EPE¤Í&i(RP!i(Q@”´J(¢€ (¢€ J-( bRÐ ¢ÂŠ))€½¨ ŠZJZ(¢€ (¦â€´RPE J( ¢€Š)(Q@”PKHŠ(¦E Z`PÑ@Å¢€’€–€ )€´”†-Ä”´PERRSQHAE1…´PÓ© J(¢AAI@¤Ô)(¤ÅIL¤¦ ¤ Bf’˜„¢˜„¥ AI@Š´ J(´PIH¢‰E´±E2‚“¸¤Å (( Š%-Š( ¥ Š( ŠJZ( aEŠP ¢…%PI@Q@”PE-%PKHŠ`P0¢À( AIHaEP ¤ aE (¤ aER)h(Í&hÍ&hÍŠJ(Q@Â’€ (RP0¥ BQ@€( Š`PE (¢€ )€Q@€(¦KHŠS¢À)iQ@ÄP0¢€ (Q@”PE”QH¥¦!( ŠR¢˜„¥ ŠC )ˆZ(h aE Z( bÑ@Q@QLŠ@%ÀZ)Q@Q@RÓ¥ ŠZu"…¤ § >RXê((( BSq@„¦Õ6’™"RP ¢˜”P ¢€ŠJ(´RRPÑH’˜rŠe‰E (¤ Š% )(( AE (Q@ JZ%Q@ ( ¢ LÑ@ƒ4PfŠ3E ((¤ESQ@Å¢ÀJZ( ¤ ŠZ)RP0¢€ J( AI@”PKHaIšLÒf%”Q@‚’€ (( ¤¤E0 J@PÑ@”´Q@RÓ)h¤ Š@PŠ(i(h aEPÑ@ E1 (¤!h¦0¢€ (¢€ J-%RQLAE%€( Š`PEPEPE (¥ ŠZ(QL¢Q@Q@%PE0 (´PE (h¤Ñ@ÃìSÔR¸§bì;¸¤Pê((3FhÍ&iˆ3Išq 2™"Si’P!))€´”QHAE0’À(¤E )€Q@r–™bQ@‚ŠJ(RP0¤ AEŠ”Q@”P0¢ EPI@ ( BQHŠ( ¢€ (RP ¢…( ¢…Q@ E0’ I@ I@Å¢˜„¢ÂŠ”Q@%”€( ¢¤ BQ@% ()h)(¢€ )RPÑ@%Si)´PE´ (¦ ¥ ¢€ŒP0¢Q@Š@PES¢€ (¢ )(h¤QLBÒPEP0¢€– E1€(¦ ¢€ (Q@ EPEPK@Q@RÐEPE0 )RPE0 (i(Q@–‚Š`-†¸ b—.)Ø bâŠE 3Iº™7u&iØ›‰šLÐ Í-PÑ@—€n)(˜£Ä%%1-ŠPE (¢€ )QLŠ@\¤ª,( AE (RPEŠJ(¤ aE J”( ŠJ(¤¤K@ K@ŠC (¤ AE (( AEŠ%-1RÐ0¢€Š`´€)(h ŠPE˜ Š%RR¤ Š(Å”J(( AE%Q@%R¢˜€ZJ)h¢€ (¥ aE0 (RÐE (¢€ (Q@Š( Š( Š)(´P1( BQ@ŠB )€RPÒRQ@‚’˜ E (¢˜( aK@RÐRÐE´”´Q@Q@ŠPE0 (¢Q@ÄP0§b€¸¤;)q@ÇcÚ—а¸¥Å!‹Išb4™¦!¹¢¨‘)hQ@Q@- )f—4¹¼R(1MÅÜS$J)€RP!h aŠ(¢€( ’ I@©*ŠŠP1i(¢€ (¤ ’€ (”PI@ EPQ@”R¥ aE!…Rb€ŒPE%™¢ E0 )ˆ1KHaEP ¥¦0¥ aE ) )h¢€ (¢˜% )€RT€RS¢„¤¦E (( aŠLP Å&(¢€ŒP ¥ bbŒPF(Q@ Š( aE’‹EP ¥ bQ@…¢‚‚ŠPEPE (Q@%PI@RRQL’ÆPIHAEPÑLAE (h¤0¢˜‚–€ (¥ aE Z%Z(( –€ (¢˜%R¢˜€(¦Òâ Š\R(^)h¸§b….i™¤Í0¸™£5DÜJJb Z( AK@Â’ E JPEPE.iÀÒ(\Òc5#ÜUa1F)ˆ( ¢€’( ŠJZžŠe I@…¢€ ZPEPQ@ E”RP!)h( ’€ J( ŠC Z@£4 3FhÍ%&hÍ1 E (h aE-Q@ÀZ) (¦ ¥ ŠR¥¦I@€))€´R( ŠJ(¤ ’‚ŠJ(Q@QŠ”bŒPŠ1@(Å QŠPbŠ1EPEPEPEPE (Q@ ( ŠPE!‰E1%PQ@„%RPÑ@ EPÒPÑLŠ)h¢€Š( ¢…-PEPK@ E–˜€( ¢˜ I@€( ¢€:‘AKLc‚ÓêK’™#I¤Í2FÒÕP1h Š)h¢Q@ J(Q@ K@ E´S³HašZE E1 F(b“”SQHŠP0¢€$¢˜Å¢ EPæŠ)(RÐ!( ŠPRP ¢‰E”€))€QH¢˜ÂŠC JPI@ E1…„P0¥ ¥ Š(¦E-”´RÒRSh¤E0 )”´”PEPQ@…¤ aE (( ŠJ(¢Q@Ä¥ BRÐ0¤ –€ J( ¢€ J( ¢ EPE-ŠJ(¢€ (¢…( bQ@‚ŠJ(¢€ )J(¤ Š@SRP ¢€ Z(¦E´ ( AK@ŠZ(h –€–€ (¢€ (¤¦E ) ( BQ@À( AKHaK@É(¤XSÅ:’ĦU%É–˜RÐ ¢…-%Q@( aEŠ( –€ JZ(¥¤0¥ ŠR¢˜„£1F(b’( Q@Ræ€ ÑLAFhf—4™£4Qš3FhÍ%PRÐQ@”´ J)( bQ@ I@(¦ÒR¢‹I@ E0 ()iJZ`% )hRf‹E (QLAš)fŠLÒæ†h ŠJ(¢ E!‰K@%0 (¢€ )Q@Q@QLŠJZ@%( aEPEŠ%J(¢€ (¢€Š( Š( aE (( AE!…%0’€ (¤¤ ¢€ (¢€ (¢€ )€RÐ0¢-´ ( BÑ@ŠZJZ(¢€Š( ’˜‚Š@P1( AE (¥¦E!…-(4ìÐPêp5%¢‚„"™L–%%QE1 E Z%´P0¢ E-% Š£bŒPâ’€ )ˆJ(h Š-( —4€( aE1 E!‰K@Àe%! E—4fŒÓͤ0Í&h¹¤Í04™¤š3L4fÃ4f˜„Í 4fis@ÄÍ 4f€4fÀZJPE (¢€ Z%QLAE!…”PEP ¢‰E´€J(¢€ (¢€ )€¹¤ ¢ÂŠ`Ri(h AE )€´”€ZJZJZ(¢€ J( ŠJ(Q@Ä¥ ŠJ(”PQ@)(Q@%Š”´PQ@QH’˜ IHAEŠb’ŠPE-ÆR¢˜‚–‰K@‚Š-RÐEPE´”PI@( ¤ ¤ Š( ŠPÑ@ŠZZ.iÀÐXüÒæ‘C©) iÜUSRÓ)(´R¢˜%-RÒRÒ¢‹K@Šm%2D¢˜…¢€ (¥ ŠZ1@– K@‚Š-˜¥ÅAEH‚Š`RQL’†hÍ!i3@hÍ0 3@ÂŒÒÍ&iˆ3E Ñš.hÍ Ñ@hÍ¥Í!…ÀZ3@ š3HbÑ@Q@‚Šc J( AE!…À(¤E%Q@ šLÐ!sFhfŒÐš3@Ã4fhÍPE´ ( AEPE1‹E!ihQ@( bÒSh¤E%´”Q@ E (Q@ JJ JP ¢€ J( Š( ŠJ(¢€ (¤ Š@”´P!(¦ÑH’…-0 )RÓQ@Š)h¢€ (¢€ŠJ(¢Q@Ä¢ EPI@Q@( ¢€ (´PE1 K@Ç }"êZE‹I@†â’¨‘(¦HQ@Š)(RÒ¢…´RihQ𦿠EQ!E-Q@ K@´PÑ@ÅÅR†(ÅZ’¤¢%PI@Â’%PFhÍ&h£4( aK@h Š( ¢…-0 )´´Q@ÅÍ-£4 Z(´”Q@‚ŠP ¢‰I@ E’RPFh¢€ (¢€ (h ¢‹š(¥ aEP ¢€ Z( aE1- (Q@ I@Q@Q@‚’…( aE 1@„£b“b’ I@Q@Ä¢RPE”€( Š( AE0 ) ( AE1…-PEPK@‚ŠPEPQ@Q@‚’…RP ¢ E (RÐ1)hQ@Š-Q@ E0Š8S h}(©,u JJb’‚C”Ä-%S( BÑH–…”´J(¢˜´PK@-´RÐ0¥ ¢€ Z`Rh aE1)*P!( AI@Š%”PI@RPEPÒPK@Š)h)hQ@Å¢€Š´)hRÐK@Å¥ bÑ@Ä¢€Š%Q@)1@ ¢ E%( Š( AE (¢€Š)hh bÑHaE1Q@-– ( ¢˜„¥ aE )€QHŠ( AE (¢€ JZJ( Š( ˜ b€ŠLQ@‚ŠJ(¤ Š))QLŠ@-%SQHaE0Š( Š( –€Šf€ JPEŠ( ’€ŠJZJ(Q@Š´Q@–´SRÐE--;4ìÒ,u:Ä¢€ (””É (bŒP1´S$(¦ ¥¤0¤ Š(¦ ¥ Š)h¢€–€ Z)i€´R´Sh –Ť ¢˜Št˜¨$( ’€ 1@ E%&(Rb€ (¤ Š@”À)h)h¢€ (Q@…¢…RÐ ¢‹K@Š)h¥ £4 ZuŠ%% J( ¢€ J1IŠ&( ¢%PEPE-- Râ€R((¦ ¢€ (¢Q@Å¢ )h( –€ (¢€ (¢€Š( Š)h”P £À(Å J( Š( bQ@†âŠ( ¤Å (¢ E0 (¢%0Š@%Ä-Q@Â’´P1( ŠJ(Q@RR¢˜Q@-%´PE´Q@-PE´À)h¢ N c©ÔŠ—4Š )€b’( ŒPb›Šd‰Š)ˆ)h¢ E1À)h¢€ (h ¢€ u1…- Z@µCŠ@- Z(¢©1R ¤Å Rb(¦bŒR1F(1F(Å%”1ÍQŠLRâ…&(qI@ I@)hQ@Š´ JZ( bÑ@-PK@.h¹¢…%”( ŠPÑ@¤bŒPŠLPŠ1L˜ B⓸£b–Š(¦Q@ I@‚–€ (¢€Š( aE’€’‹E´RPK@-–RÐE1…€( £WV$’§˜ ¡˜Ä\ ‘SÐQHBQ@Â’%PI@%”Q@% (¢€ (( Š( ’€’ÄR”SQ@% )€QHŠ(¦EPK@RÐEPÑ@ÀZ)QL–QL¢€4ìÒ¹¥Í"ƒ4¹ bæŒÐ4RQš`RÒÀ¤Å0˜ › ŠJb )€Q@„¢€ )ˆZJZ(´´ ( ¥ 4PÒÐ1i(h ¥ aE0"Å&*Db Š)ˆ1IŠ1IŠ1F(1F)˜£Ä&(ŤÅ!†(Å Rb†(Å QŠLRâ˜(Å QŠ`b( bRÓ”´ (¤ES¢€ )Ræ€ Ñš3KšPE (Q@Å¢ E0 3@hÍ£4RPE (¢€ Z( ŠP!h aE Z%)h¢…Q@RÐE´ )i€QH–€ (¢€ (žÖ5Ó­­ýà+™ÒõM>{ÙÞCøžåüéô7Qº¸û² ÷ÎÙipþ•ÞûÊ]ÿ{Ò «ÒS0 J@PQ@„¢€Š( aE˜ ŠJ(Q@RP0¢ EPQ@‚’€ (¢€Š@PIL¢€ ) (¦EŠP!h ŠZ(¢€Š)h)h¢€ )€RÐQ@Qš(Í£4¹¥Í Ѻ†hÍ.is@Ã4¹ 4f€¸f“4fŒÐ Í.hÍ.hRÐIŠ`£ ÁŠ)ˆJZZJZ(sK@¹£4¹£4Ræ‰E Š(¦!( “ 1E PŠ)ˆLQŠCb Š\PŠJ1E LPŠ1@(Å!¦ŠJ@”QLŠ@%Q@%P ¢… Š3Fh¢hÍ 3@ Í bæŒÐ1h ŠJJbŠ@´Q@-¤ ¥ ŒP0¥ ’€ŠLQ@-%Q@Q@´PE0ŠC ZP0¥ ¬{­NÚÑÕep7p½2Ô[Øå5 ~/"hâq¼©ÚAïÚ²4_}¦Å–|yèp}ë'$‘êB…ÑÔÁâ y@ÉÁÉUÛ Q/'tSÒ’’fu(8«ž}ã+¯6(-Q¾f”éþ5}s³M¶³‰€3ŸeíúRätÂê:= åö›{p1îÏ5ëuª<Ê»…%YÌPQ@„%%P1( AE-%!…¦!1F(¤ ŠJ(¢€Š”RPQ@‚Š( ¢Q@ŠPK@À)hQ@- (´PÑ@-%-0 1HŠ( ’˜‚Š( ’€ (”PE )€Q@‚—4 3FhsFhÍ-&h ¢€ )€f—4f—4†¥Í.hÍ4¹ 4PÑ@)(Å-1 K@R怌ÒRPæŠ`”Q@‚ŠP!( aEPQ@€))€bŠ))bŠb JC (( AI@Â’‚’€ (( ¢€ (¤ Š(Í (Q@‚Š( aEf€—4¹£4 ZZ%)h¢€–…RÐE-QLŠ(¤EPE”Q@ŠPE- JZPQI*D¹vÀ©nÈÚrvG©ê²B…¢aŠñÝ_PkÈ‹Î#Ò¼ÙU¾ÇÖSÃò­O=kÉCXäS`ºxf.§ŽiÜ{k|VbCH5éš<ÿgšICðBŸÌŠÅ¾Wsn^h´g\J—Ww·²6c·Rýöv®Ö½T||ÝäØRÓ3Š`R¤ Š%Q@ EPEP0¢€ J¤ ’€ (””Q@ E”Q@„¢€’ŠZ(¢˜‚Š@´ÆP!h –€ (¥ aK@RÐK@% J”ÄPQ@RP!)i”PRÓ)h¢…¢‰KLAE (h ¢€ )€Q@ E´Q@ KšC Ñšb4¹¤PfŒÐš\ÒfŒÓh dy£u"C4f˜ê\Ð0Í Aš\Ð13Kš`£4¹£4†£4Ä£4 ))´´”S¥ ¢‰E )”P!( aE!‰I@‚’ E%”PI@ E (¢€ J( –€ (¤ bÒP!sK@´fŽÍ¤1sE0 (ih¢‹E--Sh¤KLaE )€RR¢˜‚ŠC J( Š”Q@ŠP2´· dž}+Ëõ=XùÅ_!}{W‹^®¶GÚ`°ús³Î5E¤|ÛÊÆ õç²ÎâCŒ©=A®ZkMOV³×B^:ÕT‚;ŠìGšûŠŒõ¿o¨ÈŒî(j⋱=ÕÓ 1ž÷7¹«:«jºÅ½±?!9o ëWMjEYY\úý"Q€I^¡ñaFi€Q@Ä¢Q@Q@”PE”´PEPQ@ ¢%PQ@ E (Rb ( ŠPÑ@Š- ( ¤ ¥ Š( ¢€ ZPE%% (RS¤ Š%€J(¢€ (¢Q@ E )ˆZ) (¦!h aEP!h bÑLŠZ(¥ Š@´QLŠ@- e|Òf Bæ“4Ä.hÝ@hÍ0u© 7RÔ]Ôn bî£uu¨¹£4Æ.hÍ.hÍ4™ ŒÓfŠC LÐER™£4LÒPQšb’h Í BfŠLÑš¤Í!hͤͣ43FhÍ 4f†hÍ¥Í0 Òæ€ Ñš3Kš.is@ š\Ð1sE´RКZ¥ 4´R昀Z)Œ( AERQ@%Š`R¢‰E³.n)PpkË•\ï¡Oži”¯!o˜æ¹[ÕÞFG½|-JœÓ¹úý J0±æWz[Zjåç·œ:’Gzö)ÔOsÁ¯EÅÝlgm ó‘MbsÍzŠÈ©ã Õ™’»–À'¥v~ÔMÕ…ÃãnÒ§ñ­¡£2¨¹¢Ñõ¼ësoÈr®¡…Z®óäö (Q@Q@Q@ I@ I@-%Q@Q@QHbRSQŠJ(”PQ@RPK@%-%-bŠ)h( BÑ@Å¢€ (¢€ (h bQ@‚ŠPE0Š@%À(¤Q@„¢€ (¢€ (¢€ (¢RÐE1…- (h aE´ÄPÑ@- )RÐE (Q@h  t™¬ÄP ¢€Žh£š`¼ÐÑ@–˜ K@ K@ÂL–€–‹E1…-1†£bŒPI@)1HÅ&(b›@%”J(( ’Š˜ ˜ ŒRQL”€(Å%Q@Q@is@Ã4f š3@Ã4üûÐP›©wS$7Rî bî¥ÝLn¥Ý@ÅÍ Í.hsEŠZ(f–€ (QLbQ@€)(Q@Â’æ“ËOsÒ°d†zžõãb¥hŸa—ÓÖætðáI$×#t¯ËÍ|RwgéñVF2ÄNxª—V%ÿ†º”¬ÎyÆèÀŸGb9N£"¸Ë»€œ©Å{ª¦ì|Åz6W0ñƒS-zèðK+JpÈØ<â¶ úOÁ·mŽZ&+ϧjô*ï>b¢´˜QAΔRÐEPK@ K@RPÑ@”P ¢‰E-Q@Ĥ BQ@‚Š)(¢€ (¢€ (ÅRÐQ@ EPE (Q@À)i”PE0 JB (¢€ŠSRR¢%PEPE (¥ aE0 ))hQ@ E0 (¥ Š(¦ÑH–˜€( ¤ ¢€ JZ(ž]]M€<º<ºÁåš<ºÁåÑåÐe&Ê`.ÊM”€6Rí¦; ¶—mhÅb‹Š1@ Š1L£ÀZ) Z^)€RÒbŠb R≊1@(Û@ ¶“m ´m¤m¤Úi€Ý¦“i¤!6šM¦ ŠL1íIŠLQФţbŒRÅRbÃb˜„ÅbŒR1F(1F8 Å-&)(Q@ ( BÑšC Ñšb4¹ bæ—4À\Òî c·R†¦î¥Ý@Çn¥Í4¹ aK@‚–‰EPE (¤ g-¨\²Ü*cå©–H€_”ä×Êã$~“—ÇDfÝÀõö®q 2>|ºgÜt4MªÆÿ*Œc4©mærG›‘´zP|3T¯ü*g@Êœwâœ&Ô®pU³1ÔüsoóÆ„©ç¥yDÖ¯m+G"àŽÆ¾Â^}Ž«O—QðTŠ·ÞYõ¯Yyì»?o¸·þ]à{Š÷Jî>vº÷–™ÄPEPÑ@Q@Q@Q@ EPI@´P0¤¤QLBQ@( aEPEPÒPE-Q@%’…( aEŠPE JPRÐQ@( Š( µ%-Q@Ä´QHaES´” Z)QLŠZ(QLaKHAEŠ( ¢Ä¥¦!)h¤  Ÿ*“ʦma<ªO*€°ž]'—@„òÅ7` `¦ìM´Ý´›i1@„Å7€1MÅ LL0h`úÒb†)OÆŽ=hqëKÇ­ Z2=i€ìZ2=i \Z\Š`´¼zиõ¥Àõ bàzÒí´ 6ûÒì÷ g½Y v,ÑåšA`òÛÒ“ËoJa<³éIåŸJf&ÃéI³ÚX6{S|±é@¬Xô£Ë„òÅ'—H,'—G—@XO,Òyf€°žY¤Øhƒaô¤Ûí@ ·Ú“L 0(Àõ¤Àõ¤ Ú=i6ûзޓo½}èÚiݦ¦ ƒIŠ1I@ ¢´P0¥ Í.hÍ.i€¹§f‹šviŒ3NÍ.is@ÅÍ.hÍ.hQ@‚ŠÒp ô¤Ê[œ\²‰®3{ÖðÚð‚BçÚ¾+¹úÆ H˜3.Kv¬ûr©6æ ×€};ØìVÕ%MÃÕn#`¯ÏÔç{}¢3·èVºrL<½¼W§N• ¼ö¤Z˜ï¶/¥8]¯¥+Î?íQúSÅÄTX¾d/Ÿ;Ί‘\ÈO6/j]ñS ¡ùˆÑˆÍ-G »Òùhh¾RÒyKEÇʃÊZ<¥¢âåByB›å ..Pò½©¾Wµ;‹”O+ý‘IäîÒQ¾@þí7ÈݦG(ß³JoÙÇ¥2yFùÒ™ä Ê7Èß#Þ‚l7È>´ß%½iŠÂyN)¥Ò¬0«zSp})L{QŠb“Ò=©0(bŒPŠ1@ RÐK@ť怗4À\Òæ˜ÅÍ.hh aœw¥¢‘§+ Òæ™6aš¯9ýËý)=ŠŽç™E?™;«¶v<]ïÔ‚èÿ|PW;%Gûž.›Ú‘§9 º=ÖŸöµî(±\ãÅÒT‚â3ÜQb¹Ñ ‘qNܾÔ.ƒå4mZÈO-i<¡NâåC|ªo”iÜŽQžY¦˜ÿÙª¹£ kÝi¦$>ÔažBö4ß³žÆrŒ07¥0Â}(%Äg’i¾KS#”i‡jM‡ÒXMI†© ÁÏu¤ãÒ˜`PKØÐí÷£ô`Òޏ¤ZMì U»Õňõ‹Fv÷?Œ ª ‘†æ°uéÇS–ÙÝ‹1 €¯³b¿JË™¼‘JÅ ¤š#·'wÒ˜/§AÊÇ5¯9ƒ£'×aIv²à ¹s¨ÚÉm›wÞÅ9†µæÐætUÏ7imvÏ#w­û{ãsþ­o­|Ö"7w>Ó +htÒÄ@Þ£9èNk¦Š\¯(öóÒGÒ&9dq'˚袙Šû× -šÖ¬é&â=ëÔ´ÝIS žµéR•ªæ;å8Á®\ÐaÔm¤d ’cŽ+éW¼ž¿+>k³Õ¯¼3¨Ée{jòE»)'µ{=­Ö¬[fWUfqºÖ5hs>hšÂ¯.Œò½{Àöñ .mðÐ’jåôešÔ5¹ËÀ¿uÿ»ìkÚ¡'k3ÅÄÁIhvµéŸ$P0¤ AEPEPEPE”Q@Q@%´Q@– E´”Si(¢Q@RPE-RÐ1( BRPI@‚’€ (¢ )(Q@Q@´”QLAKHaIL¢Q@„¢˜ ER”S$)i ( AEP1)i€RæQH¢‰K@Q@( c~ÎÞ”ŸgJò±>ÌÞ”}™½)X9XŸfoJ>ÎÞ”X\£|†ô¤òÒ‹ ÌO%½)<–ô¢Ã°y&›å,+”i<³E‚Âyf“a¢Â°l4›M+›M ÅÐsG4„'4s@ Í4 2iw. Üiwš.0ó—ÌjwóÖ1¨¸˜iwÓ¸ ¼RîÀ~E8P1ÛsÞŸåûÓ¾_½.ÁëLbí½'Ëë@V“+@ ¸RoC õ¦™V•Âã ¢šf”®!žwµ3Îj›Šã ¬{Ó7·­MÄ&O­&j.0¤¤E –€ (sK¸úÕ\‰§‰œw§p$ÐSüñÜV—ÉËî*Q(ìæªå\”Lã£R ‰2ù™(»nâ¥tËçdÂèT¢à›)’ Ö¤­+óܦ‚Ò+F4¢Ó<¿CNäòŒ*ý0—FnènóÜRïìEÅÜ¥{ LaìÒqýÓRá}(Ú§µ1 å¡íLòSÒY ä­7ÈɱG´g5šóa°²”Ò;¡AÈ4‡OZÒƒäÉ÷®6Ïv£¤öÌ À=ªšÚÝH ivâ³¹ÕaÃNwa™ÜúóW~Á$Iû¼“îi`ÚË* Ólõ“-¢ÀùÞÍCHv$‚qé1àôj&Û Üƒšb9»„É9·ßÌÍ7•„Œ«uéÅZ!ž;qw‰ÉeÜÙ®ŠÖþfeó_Ë‹º'S\•csºŒÜY×ÚÜ¢€`u÷®² ü *}ëægO¯ƒº4é‰f—å Ùu«{w¤äŽW'%Þ…¹Y`ñDXïîtÝV)Ð:L3õ®ÅSG[¾ÑÎüÖºüAæœ9¯N›Fê ô®fXe·‘£š6ŽEê¬0EuÂWÐðkÑió-ˆ)+sÈ (¢€ŠZJZ(¢€ (¤ ¢%0 (¢€ JZJ( Š( ¤ ŠZ(¢€ (¢€ (¢€ (( ¢…)´( bQ@‚’€ (Q@ŠPRÐQLŠ@PE-%-%Š%-1 E!ÆP ¢ÂŠ( ’€’€ŠPE´Q@´”RÐE J´ÐùñzŠw¨¨;ùy±úŠ_1=¨ÐoOj7/µ0¸¹_AIòú  ¸Oîѵ=)‚yiéMò£ô ,†ù éIöt¦.T'ÙR›öE¥qr¡ ¢Ó~Æ(¸¹}ˆS~Å@¹ýŠ“ì4ƒO°šoØMò ö#Iö#L\Œa²4ŸbjÈ7ìMGØ›Òr1†Í‡jgÙÒ‰åöVô¦ý™½)XžQ>Ìޔ߳7¥(žAô¦˜H§aXo—ŠiQa 'ÝÆ„ÞÞ´›ÛÔÔÜïoZ]ÇÖ‹ˆ7]拌]æÆ‹€œÒí&˜òÍ/’ǵ+Âù éNû3úQaØ_³?¥foJ,>VfoJO³·¥; Áövô¤û;zQ`°y éIä·¥+†ù&“Ê>”XVåO,Ò°†ì4› +l4›M+`Òb‹1IŠ1K@ŠHýUÀ”H{Ô›«¹CóNÝ’†nÌ ?ÌqÕh-ŸCOžÄÒ4¹ ‡z˜\‘Ö‘|ÃÅÈî*_=z,W0nCÜRSÞ˜ô#1ZË=šÌì91ÃRbQÞ•ÊåbæJ75;…›¹±Ò¢{„ˆeø¢è|¬¦oâc…?@׋ÿ=?*ÂRìzÔè­ÙDß«n3úâ´!ghŒÂ¸8Áï\lõÑ}%óXVŒtéSKqgš\LÔf5ý’üÁ\¶Š¡’æGˆ´h6žÙ e–â3“Cr9é[IxÞPqøÓ$’RàÙñ¸?¨–Á˜Ë’;†Y‡#ÀêC§ÔT˜‰‘|™È`£p'½_BL|Þ™¿Ö# úÖÊ^³: lƒÆiÜ“Ä/ ’ÖéÖU!‡¨© ›kô¥ª]™ÓAz\¿*Žþµµó4AíÀàNŸUN¦†¤Ó…@÷ÌÿÃW{<‰6æàç!k:qÔª²Ðç¾ÒûÉ,rkvËX–Ë‘#`kÓpº±àsjuøÔ¦7ÆOÐפh>*·Õ.´jêá7sZBާJ–W=F+Ö¡lýj+ûÇÔ-Ì’éŒsÚ½EHù÷ˆ8ƒcq‡µ¸#ÂÜŠÚ¶œ³r­ ¤Šn6:©VRvgqk©ê~ï´ÁÁÊõü«º“QÓ|If"p‘Ýg;È«5Ý£ÕYžu¨é{e†øÏGZ竺2æGÊU§É!(­0¢€ JZ) )(¢ Í¦E-¤E-% )€”P ¢€ ZJ(i(h Š( Š( Š(¦Q@ IH–€ Z%%Š” ZJ”( Š( Š)(i(i(h Š( ¥ ’€ (Q@Q@%PE J( –€ (¢€ Z( ¢‰K@Q@‚ŠÍÞ}hÞ}kžâ{zÑæ7©¢âÍoSNóŸûÆÀNÿÞ4ñrã½UÊ»$OëR Çõª¹\Ì”^5<^µ;•ÌÇ‹ÃR ÃL®vH/=ªAwE‹ç$ûP¥ûRÒ±|ã¾Ò´ár´X|ã¾Òž´¿iJV+œO´­h_Z,è>О´}¡=iØ9ПhOZO´'­+ ™Úcõ¤ûTc½:#7qÔfí=)ØŽt3í‰éQ›µþí29ÄûPþí0ÎOðÓ%Èy=©„L¾Y4žNi†ùŸf4¬+ öcéGÙ M‡Ê/Ù¥/Ù +”>Æiÿb§`å,‡­H,×Ö‹Ê”XÎÄféL0Ò±c"£)SaXaSI´Ò°ƒŠ@(lSüÁéNà.ñÚ¤ûÕ\yžKæ?cAWÎqØO´0ꂤ«±ÂèwJOþw0¾lg¹ðËÙP\]Àñ¼Ö”VìèJ±'Ò°œ¬FŒyž¥‹to3>ù®ŠäÚEoûÂvÅpóÝžäh¨žku­CsêÒÈK)Ú¾õ¥Ùª„QAõÙ•v¤…±Xòj3LÙi 5¼LÚC£¹Ë,Mm[³žrª¾­Põ4Z :…„Mó7˜ÿì×BºœÓ€¶ð®Ð:µbÕV¦ÅÝëIµˆã QQ£^; êé–¨,»"ÚD@–dcŒœVSßYÚ¬ÜwÍ5\«%ͨQþ’ßLÖ4Ú…¡l,ì;dš»r»_•”µÀÀÉÏù5‹ÔäFZ3ӌР/®$BâÚzñY+¨wÕèµÖ‡ÇŒŒóLG?â;ȵ>ÓarvûJóÀÃõ¤É-­Ë! ¼Ÿå[iv!ˆ`üÝÍqN7= s±Ö<²J®öé“Ú±înd•·»eÛô¬ãM'sYUrV)©%°9&ºÈ´‰ ìãÚºN 3‘šÞKy™OÑèRÝXj s ,ì20­uGFsM^-LéÚ„·q’­ÜWC^“GËJ<¢cÞ‚¹ê)‹´›Ï­¸žf;š<ìzÐ+ûAþ馛—ô©b3;šo˜ç¹¦MØŸ¼4»÷¤-EòÛÖ+ýªa|µîhÛêhG’:ÓKÃýÚE] ß÷i›£þí!]?îÐBƒX.†í±ª&ÁµýhÃúÐw©² vH.u§} ž¢‚ùƒÍö¥ózqw/­'Ò€TzSCA$e±¨LDô¤Eˆ /éQ˜[񢀯o’Þ”žQô¥aX<£éO·¥  sO«ba `D{®iš$KöTn©Ši°^ƦƜ· 68ïR‹H9猑¼)s;Ú½n•©öˆag'Ò¸¥+ŸAJ’‚)O}ÉB±ô®bìO"îW'ëY¥c¾ç_d66ƒÉ5„ó³¯÷n™“Er±ƒR­¹xûÐä.PyHoÝFIöšf¹•öÃÚ…!¸õ;Ý+A¹¸G}ƒÔשÞŸÖ”Êþ‹Y½FŒ›ÍB0s_~õÉÎgºî‘ðO ´¯bì1tàˆYÛ§k&H‘IÇ>õWŒybŒ¡Éɬ·^0ŒÞ  i‰›[Ø[q+n*Ãø»Š¬uÀ„*=­!–"ÕšbGzVUÝänHÙÏLâ#—”®r9¢†#)f<š°\ÉåCE&RiãœRdz˄RÄœRÏTÐôMæÌ3°ð=ëÖ£°M¿v’0–¥Y|7ot d=ëNÓE[eÂ'Nøª¸[Cv8 mòŽkYyá‡5éÂWGŸR4xúT;MjÏQ³’‘˜õfS•$jI˜Î¥d…M”Ú#éEQ€Q@-PE%%SQ@% )€Q@Å¢€ (¹£4 ZJ´JZ( Š( Š( Š`%- Š( ŠZ((Í%J(Q@‚ŠJ(¢€ ZJ(”´”PE-%PEPE (Q@‚Š)(i(¢€ J( BÒPEP0¥ BQ@…¢…-P0¢€ (RÐEQÙFÊÆÂe&Ê,!vÑŒQa†)1@)6Ó»hÅ LÓfÔ€7Òî4n4»Í;€¡‰§iŒx©@ÆJTƒeQD™ŒS·Ä(+A|È…7ÎÒÝ ó“Ò›æ)¦+Þ)¹…q8¤À Ö—ÖTQæ í@ÃÏQü4}§Ñ*GÌ'žç¢ÑæÈ{Pc·H{Rüþ”ÃQß?¥;çö¥r¬Ã$u"˜X¤U ‰½}(óíA7f=…DesÐQp¸™÷¤Ãÿz…Ú{µ÷©ƒË>´ý” xŒ{Sü´Å1ØnÕ™ÇðпÃFÿjC¸y„v§µQ74f‚„É=©vçµ/z„¬‹Óš°Ï1ÇT¤Þ­ÕH¥q ŸBißQ#À÷©—Še†”ü§qHÒäGe&Rh<4cµ/›þE]ž½”Ry¹è¢˜¹ƒsžŠ) ¿ ¤=HËÉëM .x4…©©2Ê™jöÆEËpTzX÷ðñwLo“æ‚@É#Œ×7r·°Æ!·ÔW–ª-£ömœèºä,ÈHö«1ÌÌÀmlV¼èÏ‘i°].Z¿ð¤dæ2_j9EœÔº7Ù€¤·­2×K26$SŠR–—)G[‹iV¶öŃ¢äu® =­“nÚ$“<’8•ÝÛ5¬’²Eƒ©;&ù$Ø™áGÖéóÛ²o‘†;Ws8x¤?Ê+JCl£ˆ u5‹¹ÃÜ”óüƲá´{¹öm!22G¥PŽÒ-ÊÆõ½ë‘¾ÆäCEõÅ$ à§Œ<œ©cP¶Œòçä(1žEirlkÏ¢¦—iÀ•Îݳ;Ú¤ŸjA±{aå}Ò? æW̶“pSÅZd4Wººy±[ڨˮ×?!hW9FȪ¤…ϵ² sœv¯WÐþÎñLIîM;Ùë6m”E»x$Â玦²ØÙØØ¤Ø“í]Í®¸Â篵r¹ju$nÚHO–Ì8àשxjk®›¸àmæºc&ˆ”S8FŠhX‰ƒèEW)“Á¯b.èðkS# ŠO¨ª<{XLÔ˜"˜†ýE&)1ILAE!…Z(Q@ I@‚Š%( Š(¦0¢-0 3@ š(´”( ŠZ(( ŠP ¢€ (¢€ LКLÐEP!( Š( ’ ( AEPQ@-”´PQ@…¤ Š( aE (i(¢€ (¢RPÑ@Ä¥ BRÐ0¢ EPK@Ä¢ EPEK²“ee7e ˤÙJÀ&ÁHTQa MÅÜR›M&ÃE„)6R°ÚL m)y `Ó¹¦19£&˜ “I“Hšv(اb˜Å-2…ÆivûÓÛ=èØ;šC «K°Q`´ \¨íLaæÚÎjã|ò{S|ç¤+ÜíÜѱV4€<°:½7jûÐâ¢#ëA"õ©BC$ØhÀC>”„‘HÏÑ©­'\ÐUŠæLPR¹™(oJn=ñL¡øÇSšfåïLa¹{Q†n„P! °ïJzР1ïSm#© ´0ƒH7Ži <À>ñ¦›ˆ‡ðÔ˜g< Qæ ôɹ&àzL'…"†y„v©P³ô®I`.ŠåûÖ…Ø_³{ÑäF:“š’¹Pc¤x)l©™í¹á¿Z®cŸ=MA•˜†+Ô8­;hdÜ ŠÊçD)ÊçiiÆgšéœS'{ŠòªHû 0²’О¹¢ÖɆñ¯MÜúìq÷š|Â¥b ™+ŒWE쉵Ùv8¢UùÎ>•h,xMEÛ4²CŒ Ã/r;[R¥v’(mˆå/ü>%¢“ šðNÚâÚå„ €»©O¡ÉV]Í‘™Ý³·œzVõ½ü0æ98è+Ñ<» ¾ ™X‹uïÔÓ“YœI¾G21íØU]fvP\Ë(XÀÍv¶ F[ ª{w5™e=MÈ|‚xèr·Peóbʶj€’×O2Aæù`óÁ¦Ý[ܨ'œJŽ£8Ù­·äI¿åÕ×N|¬æœnŽ@õÃd0ê)þVás^©óU!fDbaQG\ŠÄÕƒ4˜¨0E'Ö Å%P!h©((¦!i´†%%1( ¢€ )€Q@€(¦Ñ@Š-&h¹£4fŒÐš3@hÍ.i3@ š\Ð!3Fh™¥ AšJ)(h £4( bQ@…¤ ¢€Š( Š( Š( Š( ’ EPEP ¢…( aEP ¢…Q@)h¢€ (h –†( P ¥ aE1±Qž)š &£-H‘¥©¹¤HhÅ Râ˜q@ÄȦ“@†æ›É¤b“a¤ùf”EE‚ÃöGµ0i´€m Bí£€¼PÒÐPîz7(¦oo Ýš(dÑózÐ04ÜÐ ¥Rø¼ e ,Ý…BYé\Be©Á¨¤"URßÄ*ÂÅŽ®(4H¼kÜ®Óá¨!ÜíÔàSÂŽíH¥GPi‚B§ d¾kòŠ™|ÆëÒ¦É °~Ø5YHËÒ¥šrÜ<™Pv¦bSü4ɳD‚)Ï@*O"S×®>VDƒ¨cx«Bµ†ìðiv8è(ˆYÝ:ŒT^iúÒ¸Ðe› 4ñŸÞ5"µÉDD}îjA}֪Šä!èqG@ìh*Á´Ž‰LùÞŠC³!hAår 5Vdä7³&݉¼Ì™À¨ÅÆš»ˆx» ä’i{‘€jn>b°˜òH²;c‚M+Ü›«7¾jq4‡^) ®°‘Ûùwjl÷Ö®CD„{Wª¢ïM›9‹…?u«*ªgŠò*jÏvž„jñÄ>zʸÖ|Å;>Q\\–Üô8ù®Käçq¬ßíÃmƒZî=ÓJÊLx먷A€Xý)鱚,ÿ)PC Ê~_MsÙÜ躱¥+·85•s§ÙNÿ¾I>µªÜÉìe·‡t×ùZ#éYßð†im)"JêR8Úá=27eX>^Õ‘sá«{\K/ЊÒöFv»9¹Ã‰„À’+RÖú«çw©í]w9ä¬iɨٶÁ&°.îôàOÎ˜èÆ´±Ëút±^Áû‡+HÏbio–D_”–PqšC0Úq#ïëë\ìéyd’CŸÝ»+0Ǧqüé§a3"êXÊî7;Æ)±°–?,ŒžíI°±_ûWmá°§¥S“BœÛpyÀ拎Ʋhª¶ù)–xª²èâ;vc`zñNâ±åWºvÉgN¹֋i5ÒŽv[´•­& Ú¾€ðÌͼî È…g5 ã¹Ûµó-ÓK!ÉÚ0a]ޱûÐ#ù›½xòG¬yÒîä¸e.Ib#Ò»ûY˧ï'O¥i©”‘¢X:dôÎk’Öu¾ä8Á®Ã˜ñ}JÏoï €Oq\¨&&ÜÅztÝÑäV‰mgWô©v«+¢Ö<[ßB³@;qU6^´Ó2q"¥«1V›Ò'J@%-PIH¤¦ ¢€Š( ’€ )€QHŠ( ŠZJ`P!i(´PRÐf–€4PE (RPK@ E (¤ Š( ŠP0¢€ (¢€ (¢ ( AEPE´”´Q@Q@RÐQ@‚–…%´)h)hh aE-´S¢)qL’€,i„ i¤ÙHBm¤Û@„Å%4Ó2iLšo4€Nh Bâ–‹š]ئ¾›¸Ðn4|ƃ½7@ÄȤÍ ? u&q@ÄÝMäÒí¤ÓÂP1û¥ùEPÄ,)™ 4›©ÜÒOjB¥0–í@ˆòçÖ¤ Þõ I†©–"ÝXUaM»zg—Ž Ð; 8´Â3ë@†ìÍJ¥ð 5",ÏðO†äœS4±:Æ«À`j]Šz⨴†² è@¨I#£ƒ@4'ÚzTËpíA*LÙóœT>köâ˜6Ã|ŸÞ§€çþZR£ó þ0hÉî1‰ƒÚ“,:µ1)-Æ3JcA׊E•ÈœSÃÕ©¸†›)>ÓqNäÜO´F}iÿiDè¦å] 7ŒßqMFnfÃJáÌÆ‰æ'¥Zll˸æ‹7ÔÊh—?)ÍXEŒ ·Zƒ; ¹sÂOزcÅ‘Ø R¬ÿ<ø D-+çå\~£ÎJ¨¥Ø¶WGlCÁc\ÓG­‡›¾§¡ÚÃ'ûù¢‚·–¯©õÑØñ{»ë™§Âƒ¶®Giu*Xý(©dŽš{—RÂeçq5³nƘ™5µ;™ÑoS#LíFÙ6ã²Z\â9š‰äs¨úÒr±J7'Ie~µi­Ä˽°+Dîdôìá@ÁÎiŒ|µ8\Ôõƒ0Λ‡_JˆÂ0Õj] å0%²I$)pÚ–‡¾LôcÇÖŽf®Înm åŒ!ÎTàÜUð¹ë$ã²ÕóègÈiÙi3À¾\nÂ0wmÏ®’i A²N0:T)Ün9™ ¸FsƒÈ¨ï®¦¸çÊàŠÓ™âÎj;‹É¶ªm\òMwqèât|¬57Ôv±b1Jc »ùŠÝ¶ƒÌV•@ÇLZ}Em¹H à,€r}k—’æ57A[ØÄò Z>ѺÉc÷sÒ°[Ni‘·¨½«[™=Ì7ÓäWÃÇë]7‡î¢Óï6ÊrÝ}jOT XôBq4(AÃ9ÞÌ=*_ ßG û,¥™cãø»W#GUϦ´‰^Þää„*ßµzY¼1Í Æ@'ê¹–ŒÕêlG9e˜)Ý—;GÒ²o35¶ÆK®G±®´s³ÌïÎ!Á9ÀÅp÷¹é^…3ΨP… R¼dåO+Z•®ä|íEiV_Z”¨oºhd§r›F3ÈÅUe*}©¦dÐÜæ–¨Ìa””R”R(¦I@‚’€ )ˆ)) (¦E –€Š( AE )€QHAE (QLaFiJ3L¤ ŠP ¢€ (¢€ JZ(( Š( ŠZJ( ŠPÑ@ ( ŠPEPÑ@Q@RÐEPK@ K@ ESh¤KLŒPÑ@–ÄP2|ÒäP12)7 `7"›‘HCsM¤!¸¤ÅbÄÅ&(˜÷¤Àõ¤x¦Ò¸4ì1ŠLÓ'½.ÓHCÂS¶Lbt¤ÏµM&( QÞ…Æ.V¸Àˆ½7$÷©§`zÐáip)€p)7âÜŒcîœÒð_û´Ögþî)©\´•ÞzVw$™ ݳR3ÊÍM6V¥o5‡jO1½*y‰%ROQVD›FŒúÕ\¤+HÄr!P“Ÿá4Âã¸Çj3“ÔÓÀå©Êʽy B–îÔ{œwU‘»š²®¾ÔÊ%ßÇðÕfÃ)•r?%sG”W’N*I±(‘ŒšŸt]rh)4Kæ¦88¤ž¼Š¢®JGªÓö@;TØÑXi[oAP”·þT؈Üƽ…Fn"<ý*¬EÈÃg„¥1·ž#éR!©c‚æ•­×?5‚È!‹ ا’ZªÁ°ñ(*3+ÆkA\xRyn)Í<(1œšE-7 7qá¦}¦29È5%s&9g‡“ŸjŒL7ƒÅe=ލ4™Ñ[jW_t­q¨G2ÊÌßJñÜ5>¶3²2ÂÛÄåÌzàT¿Ú2•>Zž™®iÆç|$hÛÇ4£tϵ}«@%¼l6ãÔ×Óc½;“›ÈTÆê¸dI#ù['Ö­'c&õ3Ø(cósIÎ7)¬>ÑÑÐË’òæ9@X÷Åtw­'¡Zô-¡ÀÞ¦¾òSpªfR¬w.AïJÀXFr*¦Òíé\¼®çO6ƒJ¨Müg“$nä•Åt’ƒå8檬k9Ë1Í ÙvZÒF2­Æ;Ö|–í*ëš”QŒúd}qjÍšÕ•r¢´OR)Û™"”åp3Æ+µ†i$M¯÷sZ¶d‘BKA¿±<WC½ŸðgéM=E(œ½ý×›¹_äãŒ×êF¨PC0?xç­u&r´pwQ9“w<楒Y‡!‹dZÜÅ¢=×s%‡QÁ5€ðËæù{€ç“Àª µi{<͹Éw?{¶•¦ªHÎØÌkò~+ DöÝ:èc,gë^ g‹ËWn-Œ{æ¹Z7¹«nÄ^6:'QþõEt¦]Û|‡šÒ7±›8)ã…^ucóü¹¯>¸À$W§LóªŽ0¬;UÜdf»âUCQÞ€HèkS€œ8<5Fë´dr¾•–ÆÛ¢‹ ÆåäTY­f…Í2™!Hi JJP ¤¤E0 (”P0¢€ J( AE (”´RP0¢RPEPES¢€ )Q@Q@QLŠ( ŠP0¢€ (Q@–€ J-%PK@Q@Q@ EPE´Q@´PK@ÀZ)RÓ¥ Š)h¥ –… n &ÓH‘Û .Ê.Ê6Ðb›¶€ ´›h˜˜M3›´Ò›i6T€í Rd `7yíI¸šBh fº˜Æ–4Üš^ihϽ.h‡'¥&Ö Å7€ ëLÈ L `õ4„Óš h?{Š]±žôD‡¡©çŠ,U„2>xÅ&dn f‘W#1ýÖ:ì^±œÔÄ/ 'ŒÂ«m-üDÓdÙêML-G­G)VmÔuaLØ3€j¬6‡ì­!1úU DFXò¨ªŒd=Í"[#!Ïjnz’mN&oALiØ”HTÍ8”?òÌÓ*äEsØâž#ÏCTM‹Äj`àœÓ.Ãü˜[±¨ŒZ›Òl*9¦yȽQ:šAŠŒînô3f:š\'BivÈ¿¼iÃÉ^Ù z …Qò¥Fn PW1 ëG–Ç 4‰Ü‘mÜ÷5?’ír‰å*òÆ«¼â?ºBv(4îç“Åg˼7ËÓ½s7qn?ïr:Òm%†9¤´±~sŠt*'ÌNk·¹éSµgA‹ Áã\àw«Ò>à[€O\WXÙžº¨¶3Ûp(üi¶ðÉ#ãx÷®©Û Øé|™¢tŽ¥>µ‹6¦¨<µ‘ï\|ÈöEÊWµ¹WbÌF=«³‹P·‚,» îhšè8¾¦wÚÒòoÝ‘øw®•!"0Ìj…9ÜX„nä†Ï£ö``ŒsÉ­ŒKêcä¶3Y$Å“ûÌ CBÉ(aH…œnʟ ²F€p+6L)!N*É9¹¢y$ùŽEJ-Ìx8©‘q&,IùWØÕ†W徕vЋêcË I’r¾ÕÐ1êüP3!·«EÝøT¨ónÃ`j†h‹a'©â¬Í:ªüãœRˆI\÷ÖTHq´ätç5ÄÏnÁ˜ž@î+~cS!¤ÛË•÷XMΟ»ùs]‘8f>ñóþ¯Ž8ÅqnNÖ¿jØÀêt X…ÊHÀkÞ­B£¯°‘²;›†9XîÄ¥sõÏ5¥g$Ó]¼C9'pÏc\¬éGz]ì¬Ý÷fâSœ}8¬W¼xáw|Ï&±Çÿ^´‰”Œ‚…ÑÍ÷yõ®÷ !\ä­zzž|ö2DÀc[°Ñ=Et§©äÔD.€µ t5Ô%«0ÝŠ™eìi0NÄ/ò6GÝ5]†±¤„Èé*ŒÄÎ)ÄŠ@74”ÄPRÐRÐQHŠb (Q@%SQHaILBÒR¢€ (¤ Š( Š( ŠP ¢€ (¢€ )ˆ( aEPK@ E-”´”´JZJ(¥ ¢€ Z( ŠP ¢€ Z( ŠZ(¢€ (´´ (¦KHŠ`´´PE-´P1h¤ÒÐ1hÍ1 Í3u¸Ñ’iîi3L&€“I@ Š1ïHãÖ›š&3FÊ@;eE; LRb ¶“iô¤1vš6ŸJb †“Ê&€°ï$ÒùX¢Ã°m#µ<é@Ä+žÔy`ÐäZO(zÓ°XiŒ _.XŒŠoá B••»TËþ,ŠC³%Ù÷4n„úÐi¢#">ÀÒ‚Bjˆsâ4žcw4‡vH&QÔf—ÎNËEŠRÌOE¨ s@›:Ôžf8™%s—ëÅ3Ès÷X†Š«*u\Õ>:ÄMHÕÐá:ùdEHLOÕqTйŠ/Zd]›ì-òÛøH4ìH½E"l!‘©¾kvZ¡ 2L{(ÜãÖ•ÃQ|ÙCIæH} v3Ý@§WøE “Ø 9ëLD¢<õaSˆãNh.Ââ>” ì1’yaº‘Rˆ#h-"`#^Š)&?†•‹¹M®¶öÅP’íCEì`äg´Îýj\­ÜÈ^1ŠR„‚jÉÛ¸œTá–1‘–5ÓÜì„LÙ\çs7áO‡yPÀuè+½èŽÝŽ@Å.㎵Á%sÎRw¹"ÌE )\r¤uƳ&YÄ©µ‰Ó5Î\éi,›ƒºçÐשžÄj]huBÒÒ¢"[æ° FÚƒ4íº1Ðv¤–§ ª¦¬uö“Û»¬qOçZ7úŠÛD#F&NÕ›Wgld¬fÛj³Ã:´°ƒ5Òÿn[Ì„ƒïXÊ/¡²—rx%YÔ²É9Æj¬³Ã‚7‚ÞÕ}M.®f4æ>àzè"œÆˆÛ”‡éZr™6h‹Ó˜x·‚;T{’f$®ÓFÃ3&òÕ¸5LÝ>ì{ÔX»–Ù"`TµW)"ž -S`‰Ý•TdüÄV+GÌýyÅ>„õ&0TlJ­$ ÆÞEa#¢&; í_­s×WÐå²} bžç<¤¾TDÄö¨d¢•$úT6ZG+qæHp©T>ÈTäŠõa±äÏqóB¸\GZ奵c)8à×IÈw%¶ÉmÜM{ jñÂÈTf5‹6FŤÈ%V‘qÁ9þU·c¨¤.f••<ìÏ “F—:½F8f†åäã õãŸçXŽ ªƒçO­DÈŠãUŽ82 Ïé\,×bB_<žµß.l¦%ÕˆïH`«Žç“ZF°¼|Ã5 \ç¥v\òœ®Bg¥Ò¹7/¤Ð©¨·qФhØÝÔn¦MÆÒPHRæ€ ÒÐ0¤¦EŠPK@%-% J¡ IHbÒPE (Q@ E )€Q@†”(¦ERQAAE1Q@…¤¤PQLAE’‹I@‚ŠPE (¢…( ¢…( ŠZ(¢€Š( ŠZ(¢€–˜€(¦Ñ@ EŠPK@– KLc ´™÷¤Hb—h m¸ZcH¨‰ C3E! Í4€vS|´ï–€²Šaq@ Ýš2)2)w c}èó¦ù”€PÄÓ²}i€àO­Hõ¦2P˜^‚®FH¤ëHBcÞ›·ÐÐ!0E7­8{Ò䔢CMgcüT ‡êhòýé.Æ(ÞõÌõ¤.)…Æ–QÚšB% €v¦;™3I¼ÔŠâù¤v¥žø¦+óèÆ“Îò*K»4ž S<ÌS&äÕº­I塦Váµ—¡¦üýÍ&=M<`v o㡨I'Ö€"*OzP÷¤HgÚ— P0Ü=)2}; ip}i â¬*±éAH¶-Üõj!–lÒ¹¿-•ÌÙ.Àá1YÏrç©©lçl¬_wz‹½as"Q×¥ZòˆÅ;$Øñg­5™7Ϫ‰Ô 4©—* …>µ_É`Häé]KC¶ÖB}•¦?wjûÖºB#@¹éJNç$¥p+MØ{Ö') 2­W2f¥²÷ã¥Iç60k–QLÚ3h˜g#® Oås’8¯-èÏ^)´3ÉQ!#¶ESš9c`Ù' §s­M¤G·>ho8¨®²+Ëa%Œ1úSgTk¢½Xf“É…¶·½UMA£•™ Ü¦³±Ò«&jb |ÖÄãÖ¬¦«i>2<{ÕØµQ3\Þ¡‡1à°éïV ™åÝ0IèµÊâÎÕ$V’pþ¨œsQÊdÞˆ¸µÙ…ý£$/Œ&*ؽ2ç.9ö¬›5Ø©'œÄpXJA."/rçšèKC&õ6ÞÿlxM¬zVUÌW3`—(:ð+ h£¹›.ÔR¤»¹äœTPiÑÌw8aì:šÎ÷F»2µÄ&Ø{G©äÖE͆è|ÇvûÖz›½ÉJ‚2“Qd“†ãÚ½¸½kS6{g…L75RXATE çÒºnsXô"âD2 1íÞº™¥–0 ¡ämõíY³Ddͨhà6w¬™®K5¬î“ŸN”§¨‡¶•²CíU§NjÖ¥xÒÞ×bq늨£HÅ’Vf$¶A9¦ù˜Ålô•'lkÄ·.¥¨HåltùE6Ùà‰Ù䉟= vÒÆœèÔûlkóAh™=ÍjC3;¹tŽv®YGC¦3ÔξErLGo½d©º…•*ýMs¤ö:œ—SêúeŒ$Qùó·ô«¶úl×6àÞ],mýÁUØ™TF-ÂCcy14Î92ÕÍ¡ººc*G·=+І‹S‚rMè5ìb ² r(kQ µˆìq]0,ZÛ]I2±-´œú~Ú^ ¶*[4HÅKt#Ïl…=« æÞ[«äòØnaµHíL–cÏdöóÇ J_Ëäý{Õð^F,ç,Ç&­3ƯQ-¦¹Æ*]¤Š½ÏŸ”®É‘1Ws[GC‰œÑZ.jÂF[’pµHeÎàp¿Î‚úÕÐPà3NÎ*€QNÍ1ŽRÐÖŠ%Zu0ŠPÑ@-0 ) (¦ Å%Š)1@…Å%!…Ä% Š)(¢ ( ¢‚Š))€Q@Q@RR¢˜„S¢…€(¦ ¤ BÑHaE0 (¥ Š)hh Š)h¥ ŠZ(¢˜Å¥ ¸ Å ,.)qHaŠ\PàRñHaÅÀ3Fh †i3E‚ášLÓ¹¢€+æŒÒ LÑš@(4íÀSwRæ‡Z0(”Ú¥ 4f€ŠM¢€OÎ;PdÓ2}h:õ4à¾ô»G­.­›¶Ïz6ÒqKLb`aB:R™aNÔ“¨¤È=éŒ GŠ@<AÏ¥0´žÔ»ïHBôê(ÜðÐ1<Äô¦¶h ‡œf{Ò¸®DN{Ò†ÛÞy¸ïN“ØÓ¸Ä;ðšg–ÇøM!Ø‘cõ«"4ÇZcHiUíÍDwº)€ßÞžæ”õ¤!N}i˜Í8-;¥Ïz6Z`8qO šH"AÔÓóÐVƒ`©<çÖ“veC9=ê³ɳ0*}sJ"'­ °ï,f¬¬YÔì1ûè* #ÀêZGLÙC žµ×Ø[Û­¹–CóŠsNÚ„ZLsköÍÒ7j†¬O4˜¸JxVMK±k˜FCÖ¢Û‚3Þ‚¹KhªêF>|ÕöŽ5t$VGt"ˆî|²¸^k0/Ž*UÊŸ)YŠ‚qǽ@d|`1Ål‘åÎ¥´D=zœÒv­¶ÈÍ@M\@ÄV’HJŽ "Ô™qY÷ƒŽ•k ï»n=) ²GÃ-øŠŒ²ñµ9ÍZDJC¤#žW­ÑÆïÔP*ÂÇšÙ",XÔ˜ÅnÇMHÖ´ÿJ]µCKŠ.(Åa(¦E-- –˜Ãb€ ZZZPE0 (¢€ (¢€ (¢€ )´˜ Å%1 J(”P ¤ ¤ Š( ¢%-%0 J-%!…( ¥¤QLŠZ)€QHŠb (´R¥¦KÞ- ZZ(Ôb‚‡N ÅQ@‚Š`P ¢˜ E-Q@ I@ E (Q@^Š œRn Üi7 b ŠZ-:€­.ÚúQŒÐ¶ÓH"˜ óSèÅ.W…88¾h¨Kç¥r"æ“Ì>´‰ÿzŸ¹½iŽã ¸¦ù§½ Ô_4zRù£Ò€¸¾o £Î>”ÅíG˜i…ÃÍ©C©ûÆ‘IŽ".Ç5¥vIÅG“A#50Í;ŠaÁ¦QWìj=ÒŽµ$Ž Þð«Ù¨Kô4Ï0¢˜ zSHÏjnÊvÏza¾_¸¥ÙŽâßzM§Ö€´úÒm÷ÀLÜSIZ@&ñÚ“y=¨¹j'½ hîi¤ÐPv9ïQqY²C>‚”P¸È©p1Ö¨¢ÀZ“mYBàTh(:S &˜ àR`šBo¥;aï@‰6Q´ c#8¨ËÚŠÌÄô¨vÔÖl‘ÞX¥òÏjV µ©Ø=éŒvÚvHªÜi0M.Úx°¦ü³Œž”†5‘v±T¨ªòšÉ *Û³HÒyËbîC»<ö¨ÛäVW‚Fõ§†žµ“4Wf’8ù ] ž£“=8Ü‘ãc¥P’.=…#F†+„v0`Oš,G1 ÜO)®®F2qV¬ŽY]•|±Þªµ+IóŠpÉ«9î<&OZ´F~ñ¤RÐÛ¯ñsJžRôcHÓK—çlÕø÷Ì1Æêj¸êK, ­ÔNòÊBäúÕ\Ó•{rc X2)VÅtEœó‰,+žqÅhb½£€]¹§m´Ô SüR☠ŒRâÂ’€b€b˜.(¢€—4 ( Š`-Q@Q@ I@ I@( aI@…¢…€J)€””)(Q@Â’€))€QHBQLŠ@”QLŠ@%-Š-”´”´Q@ÀZ(¥ AE- )ÔRЩqABâœ$ƒRXÃITfS¢À)h¥ Š)h¢…-%( aE*Ñš‚C4´´¼S0)¤1)Ù¦"AKóPP»½E;"˜ »›ý¨n¦å{Ð ÊÓ°§½,†£0žÆXi^£4àê:б6bjiˆ”r¹LS2EŽâ¥U¤òÔÜ/¥2„À¦â K@ƒ"Œ PmìP1ûÈ£x=èÃ>†“q o4»ý¨É„‚¦AIˆX¢8ô¡õ§ù1úÐ=˜Ð7(;Ð-¾´Î=h˜´›}èm>´›Ú¤÷4múÐ!|¿jxŒzP; ì(À i¨‰ DEê¹lÔ2H¨¨ §M:ŠœVˆ¢Z_¨±sM-@îÅ&âi3Oë@ŠÊ f“m0€*€Òy>ôï&¦Áa| (Ø{S°ÅØÔ¾Sw¦åFÃýÚÃÄMéOòÀêE"¬ŒwÍ&ïî­1 bç©URÀwÍI-•I$ô¥úš‚n7gô¬ÉKó VØ´(B±î#­U'=+„èh»XùŽ9­üµëŠÅÐInZóáQɨþÒ˜àT¢Ù«¨‘Ú[²U9%vê@²Ë*™ÎO÷5VCÞ«”ârlµó(ÆsK‰ñ`PÒ.ì®Èq’ÕI†+6Œš+ƒNãŠG8 æ­¤lE+šÅ[8ÆF«ƒÖ¢æŽ64#­N㡎ț^Q[e î-×ð«"6tùyùÎ>•'u‰1 œw#ñ®N™òF+ª;œ•6-§ËÒ¬â½dyC±K¶¨bâ—)iŒJ)Q@ÀZ(¢€ 1@)h´PEPE-%- J(¢€ (Q@Ä¢-!…ÚJb J( AI@RR¢˜ KH¢%PI@ I@´PEPE0 Z)h¢€ Z)hh bÒÐ…:‚…¦“-j2hKT@Q@(¦Ñ@ I@ EPE-%-”PÒPJPk2I)¤SÜQš.sNÅ/™Æ7&€M ‚{Ó9ðã½Iœô¦pÇ ¥òßÒ‘V)»ÓLf˜¬7w§Ãø¨&ãëM#=¨Ï(‡¸t÷¤%gï —j51û2žŒ)>ÎW©/• *½75D Ö’>”f€"›@3I´ö Bíj]”†1G˜Ü¢—zúP;‰z f  Bí>´t 'µ&^€#;©»I¤!ÛM.Ó@ìM.Ã@XxŒÓÄ^ôö(ïKòŠc"›¸Peê2Æ‚HË{Õvz‚Yi9¬Ä(ð´À-N®Ã,¬u`GTh‘/—ŠiP*б`UsɤHm¥ÛR!ÁiÀS¼ÒdÓ…ȨL‡Ö‘${sNó1Sp;é~ÑEÅqÿh”ï´JwÇ} ö£Ï=ÍÃí!}é†íi\9†y®zœRùŠ:äÐçÑj#pÔ\W 2“HžÕ7$}*]£)”Tu”Ž~•K³óÎ+Šm ÉhUSì s$Í݆ì•Gz…·ç¹ªåfM’¢“÷”ÕÐH-R‹hiisÀÀ£ zŠÑE’åq6zÐØ^‡5|¦\Ã76:T>cîâ³b³9ÝÓš¯#·íY3;äSÃcµf@ï0ŽÕa&lg4¡²É#¼qUSvjKw¹¯œŽk^%PTžy¨g|·m”»*AçZÙ‚&î>ë§ÔRGzEI¤UšQƒÈ|W#)&PÈÏJê†ç]5P1OÅzÇ–.(Å0 )ˆmQ@-´ ( ¤ ¢€ (¢€ (¢€ (¢€ (Q@ ( ¥ BQ@–€ ) ))JJb J`”Q@‚ŠJ(¢ EPILAER¢€ (¢˜RÒ)iˆ)h”´)hRÐK@ E--8RÐPàj\Ô³D£"€ci*Ì–€ (Q@ÀZJ- )iRSh¤EPE*QƒP@Ü‘N @‡äSI”Æ6–€i¹"ÅÉ=éÛX÷¦!BµJ=èÔ÷¦íeÎiâØw§b¬;ÉA×BtÝíÅ&€……;ÈϵHZ¹¬ÍÔ¢‘NEfû®ETò0y|Ô¸ÜÏ™m r­Š”1ÄáT•ˆr{xRgéùUq¹>¢ž§y¦MÇdzRcž•@;ÔlÿdSƘcŒUo${š†Š-×½dÜD#?{5Ï% ìgóR}k”Áy5v €ÔšÇrÃŒ…⪞˜¬Î–›xòÄ35«åà¨^Fj;áŠÖ6[Ûróþé½ $F@¡Ö0ï#\™:7Jæ3æn#5ßI]ž]bõêž`”””P!)h¢€ Z( ¢…RÐQ@‚Š-%%)hQ@„¢€ (¢€ Q@Å¢”f€4f Fh(¦!)i J)ˆ( ¢€ )”PE”ZJ`PE (Q@Š)i€”´€(¦E-´PÑ@-´RÐ1is@ š\Ð1á©û…Iw &ÑLÛIŠa1IL¥¦Q@ Š(RÒÅ bâ—ÁŠ\P0ÅR)3L¢€*fšD Á£€/Êi€…=*"¤0©ö BàÔÜÔÀO˜SNi OÄÑ“ëHC·Z]íëLÌj]çÒ‰’{SrEw­.E;#Öø ‰@ê*Q"e\0§¡¦ì>´ M¤R`úP!›M&Æ Byf„R ´ô`SqN â—†& LÐ!›©…©nsKŠ@/Nôf˜ š3@Í4 \šMئ!…Í3'Ö &“4„&qL-R!¹Í.(اbާŒS "¥ *†H¥ jŠÏŠ ò“Jâe`¬Æ¥ÙŠÌ‘á*P•C€*†&VÍ$ š˜.(§¢,=hG­7rŽô‰¿ÐÒn÷¥p¾œ$ .82÷©Æ(*ãüØÅhAÐSÄûHì)†äúP+›¦íP™Ü÷¥rn@e>µš–ȸúQ“éQqËRí4vßj]¿ìÓ° ´zRí_J,0(¸â€¾´ì1JúRàúŠQžø©r´Àauõð銂uÌD×#8!¹mÕÍP §¸D‡€*Ô|I²5X3F§ •LÇóI5‰èZæÅ´% 1N:óé]2[—'ÝÈ Vg£Ù=µš†vrsÀú⥙¢‚ÛŒœÖ‘W6“IT·rmÇõPqÒ½¸G•;R|Ì)+ ç )RPE0 (Q@Š-Q@ EPE%RPÒPEPÑ@ÄͤšLÓf“4´f ES¤ AK@Ä¢ E!…ÄR( AE%fŠ( Š( Š(¦E (¥ Š´Q@ E´Q@ EŠP1hÍ.is@ švh».êE\7Qšq3Išb Òæ€ Òæ€¸¹£4 \Ñš3Fi LÒf˜ƒ4”J(QL°{Š6Tˆi\Spi…Á£‘LCƒâ¥ƒÖÜvTÔeGcLc9™4‰M.Âh»1IzŒƒQãÚƒ—€¥ŠxÚiÛGj\{RS(Lf“h AÓ¡¥Üý;{S·µ0¸›Í&ãë@ãëMϽ6Š3Fê@4™4dúÒn¤KSrh¸Í<-8 \SlÍNz“J-׿ó¥`a@8Z¨ÛAþ/“C*:ƒÿ,ÜýMa̘?wË2J@óVEq‚&­ ç4£rÙÔd8È5©[Ÿ½X4zÐ’±¸«mµðéŸJt×ñF Ç‡#Œ #·Q$Tm^æAµ ÎrzÕ•ÜüìMzÔà‘äΣ‘Ör E1%R¢˜% Z%Q@ EPRæ€ (¢€ J( 8¤Í£4”f‚Š™¦ ¢Q@h ŠJZJ(¢€ (¢˜% ’Ä%-%´”€ZJ`´Q@QL¤ ¢€ (h AK@–€ (£4Q@ EPK@.hÍ.hÍ.hfŠ(¦E4P1sFhsE (¢€ )€QH4¹4]Þ¢”>ÔÜÆŠ6IåŠC³ÐÓJ°¦!0hÅ ZvÃç žâ˜zS° cÍ7Ë÷ ÛŠM«Þ…Ú”`P1-1 ŠLP11ïMÅ—a©|³ëK²¨,.Ê6{Ð0À¤À À¤â Í74„%€]´¸¦1ûM<%1 )ÿ( aæ ¦ùð .'šÇ ¦å7¦˜\ B!3zTEÉ©l›ˆ2j@´€œ%L ¢‡qIš¡&™º š\Ð!Ù§nÆ.êMÔÂj3HBbž¤í¤ÕD9-ÆóÆïΪ`±¯:R¹$%pi2Eb«&*À–€¸}¤¯J–;†ysÔâ©ÌÎ…-ñ5h*½ÆÅ6>ŠÜ(¦ÑHbQ@J(3Fhͦš3H4f˜ƒ4f†hÍ Ñš¤Í4”QH¢€ LÓÍ€JZ3E”Q@‚ŠP ¢…(¤0¢˜‚ŠC (QLbRÒ”´ÆRRPE0 (¥ ¢€Š(¦E )ˆZ(Q@…¢…Q@ EPE-%-)h”´( bÑ@-¢€Šb Z´€(¦Ñ@Š@´RÓ˜Ú“iìj@L7¥7ŸJB})sLÉ¥É4Äö¥ËÔ ~üuàãû´ ]ËýÚMÃÒ˜ Ï¥'4€1F1@i3@…¦â†ÚM¦ ´Ò`ЃF ¸ bç›0¸Ów&ãI“HóIÍšŒHÚiDf€$šDi•a₇”`&Ú\Z/4~ OÂŒûPš]Ô»½¨Ïµ/”¼P`zÑ´zÐ11ïKzM¾ôm´›=é6ûÐ ÛI´Ð´úQ±½(ƒËj<³@X_(ÒùF€°¾] ,)Û aòŠC" b#3˜ecÐR ‘cLæ‘"bÅ )sí@…Á¤"˜ÈÍ3„8-L#¥a¢ÂÇSˆñV]‰vâ—ÊÒ@ DE…FXR&ã7 MÂ\nêfê&ii´êLÓsLÍ7&†RÒ´œÒqNÛLí&ž"=éŽÄžXÓ´P2<ŒÑš&iy ˜ ¼PK@ b€ \PŠ\P0ÅZZ-.(´Pš3@ š(( VôæSYËɯ2{©mPjc®ÏJ1º¨ž­S~zŽ}i!MYØsMšè<Ƶ- cË Pl‘¯m/”› ­e`à ׫ ]Õ‡Q]‰E ((¦E Šb )”PILŠP1)h¢€ (Q@Â’€)(¢˜€))€Q@‚Š@P1i(h ’€Š( Š`R¢€ (¥ Š(¦E (´PEPE )ŒZ)QL–€ JZ(¢€ (Q@RÐRÐQ@ EPE- )hRÐ0¢ E- Z(´”ZZ%-@i@5$ŽÚh春Í1†hâ…>´0}i0}h9¤Í —4À3Fê7Qº€ ÂŒŠ\Š\Z2=i7 7­/š¾”ÃΔyþÔ‡q<óéIç·¥¸ž{zQç?¥¸žl”žd”¡¹¨ËPózцõ A³ÔÒì‰òŠŒ° DFJL“RH¡XÔë=iŒœ  ¦Y9¨ù4(^jQ ±aP ˜*‹$Í.jŠ4Âô„@ÏïUÌ”‰!/MÝP@ÌÒRÔìSêvi€›© NM-IƒH K¶Š¤M1“ˆª]Š)•`ÊŠ„¿¥0 $šM¦¤‘Û)ØȤÍ4¼ÐŠ\PñE 1@¸£´b€Š)hQL¢ E%ÄP3›º\ÊjЍ'ƒë^=MÍâ‹``€:Ÿ¿¸ëÁh0Œõ¨<Ž(L%¢«FN8¦¤G=+{žSƒ¹kËÇJ•TŠI•k¨§o)ßÓbioøN.b?Ä+ÐŒŽrA4gø…<:žŒ+[ °üæ–¨’ E1€(¦QH’˜% (¢€ (Q@„¥ AE!…ÀJ)Q@RPE (Q@ ( ¥ aI@‚–…Q@RÓ¢€ (¢€ Z( Š)h¢˜ZJ-Q@‚ŠPEPE (¥ aEŠZ(Q@‚Š@%-0 Z( –€ (h ¢…-PÒÐRÓùݦ–ö¤1™4œÐHb“€ ZZ(fŒÐšZ8¤â€“6Òí M´m€L 0)€`RqHŠ8 Ⓤ8¥ùh~ZpÛé@Ã#ÒŒûS3KšLÓwP Œ“HCv“N“Ú¬J!ö«,]‰„`R’¢¬¢³H;UbÙ©3bSÅ%¥™dƒ4ñL¡sL-L •]¤©d\®^˜XÖdÍ-! N¦©Ôb˜ Š\SØ£ Mµ ZvÊxALd¡@©1L`sQšc!$TdÒ$J\Ôˆi&“`RÐ0¢)q@- 1@ ESh¤Ñ@Ä¥ Š( Š`”(¤æЦc בWs¶š»$Ræ¥íÇJóÏYŽôáó D²@¹5"FA⨎RïÙ™€â® "{U&7Vln\{ÖN£öhsEg#¨=+¡ja+$a%Žä Ò ã­Y–ê~yWó­Ž5ÔyK5xŸ¥7ýt ùUjkî’ŒtùQçzõ´dÌd‘~Šî9ŠJ(¤¦ ¢%PI@‚–˜ E”Q@…¢…%PER¢˜ E )ˆ(¤E (¢€ (h Š( –€–˜RÐEPÑLŠ( ¢€ (´PRÐ!)h¢…( Š( ¤ Š( AEPE (RÐEP0¢-´RÐ1)hh –€ (ô´ JLP Å Å&(1F ÑÍPIŠLQÍ'4sHBsG4 9£ ƒF 4`ÓÅ.(Å.)Œ(¤ ¦æ˜ š^M O @ì<%;` cöŠw˜ÄÞFf¦+•ÚRj¹bjn@ÜxSR¡MJ¨¢Pµ Æ.à*3%1²–«³“Srn@Xš$Ô¥Új@xZxZ¡ŽÛKŠ¡‹Š\P✀Š\Sbœœ1 j@”?hÒ@ªõlÔ’GE"DÍ% Æ’€–€ ZJZ)h¥¦0¢-0 ZC \Sb—€\QŠ)(Å ¢ I@W‰³Ð~äÖZÔ·@<ÓAúWžz-¤Ë!7 ŠœEÅfΔ®^·­­ÃñLÔéã´i®cˆç­¢…'c‰ºÔe™ÌPd/LŽ´‘iO7ï–õ­tÝ#ÊQsfÛiöQ o-ðÍŸZÆ’kP؆ܷ¹­¥ÊÑ,‡wËÞ¬ @ÿ–k[ªf>ÑÓ8U…U#'&º9¥6Å¢·1Š%)(¢€ (¤ Šb J( ¥¤I@ÀZJ@PE (Q@ÀJ)ZJcŠ))Q@ EPE-À(¤E0Š( bÑLAE Š`PŠ(´PE-%ŠPE (¢…( Š( Š( Š( Š( AEPÑ@Š%:€ (¢…-´RÐóE (¢€ Z8£Š)(8¤â€(â Å/ \QŠ1IŠN)(£ñ Bf“4€LÑÇ­0"ŒŠ@™¦š(ñŠpÅ?4¹ ¡7S Ð!…é…! 曊B ´à´ ŸÀ¦P¹nÀO2£.hÂMFI¤HÚn ©vÓÂQ`$ O )ءظ¦0Å%Rñ@ƒ"—4 3KL€j@” ”%J‚ì?¦Šc+³Õfz ȳšJ’C4ÌÒ”´RÐ1h aK@‚ŠZZc Z@PÑL¥ c±E"…¢€–€ (¢€ J6ŠVwDE`Œç¼êÈë¤õ檑Íyhô&‹î i¤ƒn C6ƒ±iH$WChB¸¡6hßÞ5µ»4c-Ž+Ìeº»’\HìIçZíV±çTnæ¼MlòG4ù5ŸêúÖ6mÚ(#/í³]J±ù«eP` õ©ÇC˔ܵ%¢ºÌÂ’€ (¢€ J( BQ@ EPE1%PE )J(QLaERQLAE (¢€ (¢€ (¢€’˜-!…Ä´†SQ@–€ (¥¦ ¢…-PK@( Š´ (Ÿ Å bbŠ¢€ JZJPI@…¤ aE’…)h( Š( ¢€ ZJZ( aE-%-Q@b’‹FhsE%˜¤Å%&(Å Å AŠJJLКniQš£4R`Њ6Ðì§l bí£m°¡iá=©€ð‡Ò¦‚¬4æ¢9õ ‘¸4›i1I@.(ø£Æ&i¹¤sE†i¹¤QŠ]´ð´?hî1‰šLŠb¸Rn¤º›šB ÒÓÀSÀ ¢@µ0Ze©ÂS-"M TlÀP2«KUYÉ Í‘šmIsMÍ! EPÑ@ihih´PÑ@–˜ E Š`-:‹E"…¢€Š)h¢€›@‚’gÍêaQ]AÙ™ÄqU­x=ObZ¡àñÖ¥VÁæ‘)—’LVÄW*¼“ŒT7и÷QKÎF+•ºž8Øìå±Ö·W8ªI$sÍ#1äÔX&º‘â7sr¼Èz•ÑW£ ÂŠØaE J( AE (”P ¢€Š( ¢Q@Â’À(¤0¢€–Q@À( Š( ŠZJZ) (¦ ¥ aEPK@Ä- ( –- Q@ F(¸¥Å RâØ1F( Š1@Ãb€Š(¤âŒPb“Ä&))’”Q@„¢€ JZ(¢€ (¢€ (Q@RÐ0¢€ (Q@Š( –QABÑ@%f˜‚ŠCIÅ Šnh™¤ Í74J1@Ú]´»hÛ@Çm£m;e.Ñ@Ãh¥À »h¸p(Ü`¦+Œ2ÔfLÒ ŒÝIº†ï¦–¤ Í8b˜Q¸P1…é…! Í&hf—4´¡hìRâ˜Å£4„Ós@„Í6 4´à*@)Œ”-J‚Ë YXéš$M´ ¥ H½Š6zURÄÕí‘“Q“RHÌÓsHAEH E0 Z)hh¦ÒÐ1h ¢€–€ Z´ )s@ Kš- Z(( BRP ¤ ¢!äs@Ìéa=W¥e²â¼Z³=XJè­žj]ØÊ Øo›P´Ç¦j’1•M æv”‰i*F%( ŠZZ´´PÑLbÑ@…¥ bÑL¢‹EŠ-RÐE1…- (¤¦E (Q@ªJ͉Ô÷ô¤"&Ùmc×ù×%#™d,k–d² PqˆÓ†,°_ZéÒ0Š@®è"‘‰v¸Ùô­O2Ð)íMn2ź•ˆV«tQLŠ( Š)(¥ Š( Š( Š)(QLaIHAE14Ð1´ IIHaE-%0 (h Š´ÆP!h¤0¢˜ EPE´ ( ¢€ŠPE JPEPš()h”´Q@RPE Z%´P ¢€ (¢€ (¢€ (h aEP ¢€Š( Š( Š( ¤  ±IŠE E)8¦Q@ƒ4f‰š3HÍ&hQ@%” J))q@ÅÅ;À^(Í0 ÒPRb(ÅiÁh J”%1ؘGRì™aÀ¨ÉqP—¤EƦn¤!3KšB4f˜i»¨”ÞiLRâ€m<%$ S¦Q0AR€2‡nÉLdeɨ‰ ‘™ÂÔ„DZ˜M"Ff›šBIš@%„PÑ@- (ih¥ bÑL–˜…¢‹K@Š-- (h ŠZ(QLŠ)h¢€ J@PMÀë@½ä,@;zzÏ1üÛ}MpËVA3’:TǾ@=k+j#¨·Œ}ÿÊ´kÐH³2î<¦ïLUÈ—lx¥mFMŒRÖ‚ JPE–‰E (¢€ ZJ(¢€ (¢ ( ¢ HiˆLRHbÑ@JZ`P0¢€ (h Š)i€Q@RÐE¹ ¥ ŠJ(¢€ Ñ@‚’…( aE (¢€Š@S¢†-%SRÐRÐ0¢Q@RÐRÐE´”PÑ@-PEPE´ ( æŠ( ¢%!…%””P ¢€’ KLÅ.(ê(¤ ¥ âŒÐfŒÐJ(àT S(˜ “ S( â¡2Pv’«™ MȹúnjnH™£4€\Ó…0)Ø4Æ;i§l¦1Û(Û@Ú\ cN fž 4fÍ74ni„Ð ¨É¤HÓMÍ! šmH ¢´PÑ@–€ (h¦ÒÐE0E!…-1…-Š´Q@ EPKLbQHBÑ@Š( Š( ’€(K¸€+ XÊEîüšÂH’1 X²G&´mmˆRÄuVj:¸«µBúSë¬dn›Ð¯­< =) ZJb (Q@ K@ E (¢€ (¤ ¢€ (¢€ (( ŠP1(¦!)i”PE1†S¢€ (¥ ¢˜ E (¢˜RÐI@ ER¢˜(¤13E1†P ¢˜€JZbŠC )ˆ(¤0¢˜ IHŠ´À( aE (¢€ Z( –€ ) (¦ ¥ Š( BÒÐ1)(ih)h”´”´úJ@!4™ BfŒÐn¤Í Òf€ (£4™£4ÀZZ@-¦n¤Ý@ º“4€\Ñšu-‚h¹£4ñRLdÀT•E šŒµ@ÏUËÔBZ™š‚DÍ€\SÂÓPµ(J¢ÉBS°)”-Ài¦Ð ¢€S¨Ôf‰šJJLÐ3L5$ŒÍ4š6›šB JC (¢€ (´´ ( ¥¦0¥¦ ¥ aK@ E-RÐ0¢€ Z( Š( Š( £4Qš( ¢‰E )€TM±É€5aŒT€``t¥a‹E0 (Q@%’€ (¢€ (RPÒP0¢Q@%-%PI@…¤ ŠJ(¢ ( ¥¦ ¢Ä¢€ )ˆ( bÒPÑ@Q@Q@Q@‚ŒÐ0£4(¦ ¢…€( Š`R(¦KH¥ Š)(h BRÐEPE0 )RÓ¢€ (h ¢€ (¢€Š)hQ@‚Š( ŠP ¢…%H EŠJ(Q@ F(b—b–˜ IšLÒR( ìPâŠc Šnh™¤Í! RŠ ÔØÅQBæšZ˜ÈKÔªDBZ£¨$LS±HC€§…¦2@µ(Z¢‰@§U;”LÓI c3I@‡bŠZ(Í%” ni™¤!„ÓsHCsIšB’ EP!h bÑ@-1…- Z`´RÐ0¥ ŠZ(Q@…¢…( bÒPEPEf€ 3@ I@-PEPK@ EPE (Q@Š( AEŠP0¢ J($( aE%( Š)(¢€–€ (( AEP1)h”PEPE0’€ )QLŠ( Š( Š3EP!h¤0¢˜Q@Q@( aE (¢À(¤KL’€ Z`PÒRh¦!h¤0¢˜ E-†S´R)iŒ(€(¦ ¢…„:’†)(Rb Š1@ÅÅ.Ú`¢€’€ LPb“( Ž)¼Qš4µ0µšnj@Zp¦€T U Ræ˜ÆP–¤"i†¤BRâ¤N˜É§TÀ§Õ>“4 nêfh$nh¤Ó€¦1Ô´RPIš74Âini¹¤!¤ÓsHBRR( BÑ@ŠZ(¥¦E0E ZP1h ¢€ (¥ bRÐ ¢€ (Rf E (¤ Aš(¢…Z(Q@Q@‚ŠPæŠ( AE (i(Q@…¢‰E (¢…%P ¢€ J( BQ@( bQ@Q@”PEP!)h)h¤ bÒP ¢€ )ˆ(¤0¢˜€(¦E (Q@ )i€QHAE )ˆ( ¤ –Ä¥¦E )QLaE–€ )RS¥ AE Z( ŠZ(¥ –€ )€Q@ ER¥¦ER¢˜bŒR(N))ˆ))´´ ))ˆ)´™¤Í 4™ Bf“4€LÒf€4f†æ“4ÚJ@.)ÀP€T€U u2ƒ54ÄDM0æ¤CqKŠ@;b€Kšc4ìгKš¡‰º›º Í( B✊Z-Æ™ M&†M&†æ›šB4™¤Q@ZZPÑ@ IL¥ bÑL–€ (¢€ ZP0¢€ 3@%- ¢€ (¢ JZ%-0–€—4(  Í AK@ K@RÐRÐEP0¢€ Z( ¥ aE J( Š@%Ä” ( AE (”PE”´PQ@Q@‚’€’€ (¢ ( AE (¢€ (¤ ¢˜„S¢ ( Šb Z( aERQ@ŠPÒP0¢˜‚Š(¤ES¢ EPÑLŠ)h¥ ŠZ(¢˜ EPÒPÑ@.i¹  ¢…ÅÀ(ÈÝÔ›©Òi¹¤!3IšLÒf€h¤Š1@‚’£„§b˜ÅÅ< `Š”€Z(¤ aI@‚ŠJ)Q@ E”Q@”PE (Q@Q@€JZ`”´PEPE (¤ AE- J(¥ ¥ BQ@Š@%QLŠP1( AE )Œ)(i(i(QHbÒPE0 )RÓ¢€ (¢€ )Q@QL¢…% ZJ(¢€ (¢€ (¢€ )”´À(¤1)iˆ))QL£€( ’€’¦E! ( ¥¦Q@‚Š@PE (Q@ŠPEP0¢RÓ¢ I@Å¢À)iQLŠ(¦ÒPE (¢€ŠPE%€Z()h( Š)h¢€ (¢ EŠ( ¢€ )€Q@ E1- Z( Š)h¢˜-P ¢˜ÇÑ@Ä¢Q@ I@”R¤ AE JP0¢‚Šc (¢”S¥ ¥ ¢€ (¢€ ZJZPF(¢ ( AE (¢€ J( ŠP ¢€–€Š( Š( ¢€ (¢À( Š(¤E0 QHŠ`PE ZJZ`PEPK@Ä¢ I@ I@RÐ0¢€ŠP0¢€ Q@ K@ E”„-%0 )1I@Š( AEŠP0¢ )(´P0¢% (QLBÒR´”ÄR¥ aEŠ(¦E-´” (¦ ¢€’Q@‚ŠPI@„PRÐI@Q@Z(RÐRÐRÐE-RÐKL¥ ¥ ¢˜ÂŠ-%´Q@ KL¥ ¥ ’˜¢ÂŠJZ@3u(9 ¤ ¢€ J( ¢ ( Š@”´P ¤¦1h¤RÓ”´†S¢€ (¢€ (¢…Q@ E%-%Q@Q@ ( AI@ IHŠ`PE (Q@Ä¢Q@Q@ EPEPEPE )€´”´PÒP0¢-P0¢Q@-”´P0¢€ Q@%´”Pâ’€ ()hRP0Å&(ÅRP ¢RPE0 )Q@ E )€QH’ E J-RSh Š@-À( ¢…´”QLBÒPÑH¢€ (¢€ (¢€ŠB (¢€ (”PHQ@ÀRÐEPE ZPÑ@´PEP-PÑ@´PE-%-QLAEI@Ä¥ AM=) ŽÖÒP0¤ ŠJZ% ( AE )Q@À( Š)h¢€Š)h¢€ (Q@Q@‚ŠPEPI@ I@ E½(”PQ@‚Š( ŠP ¤ ¢‰E Q@( ¥ aI@‚Š( ’€Š( ŠJ(¥ Š( aEŠ( aK@„¥ bRÐE´”´Q@Q@Q@ŠP0¢%PI@˜¢ J(Q@%R¤ ¤ ¢”´RR¥ ŠP ¢€’˜Å¢€ (´P0¢´P0¢˜„¥ Š%)h(¤ ¢…%ŠCŠb )Q@%LAE (¥ Š( ŠZ(¢˜ E Zb (¢€Š)h¢€ (¢˜RÐ!Ô”Š ( ÐdRŠ:’€ (RPEPE’‹EPE (Q@ E (Q@ JZP0¢€ JZ(¤ –€ (¤ Š( ŠPE (¢€ (Q@Q@&(¢€ (¢ E (¤ AE- J(Q@Q@Š( –€–€ (¢€ (´P0¢€ (i(´P0¢€ Z)h”PEPEP ¢…%P ¤Å¢€ J( ¢%!…%1€J(¢€ (( AE!…RP ¢ E1… Z)QLAK@Š)iˆ(¤E1…Q@„PI@ I@ I@ I@%ŠC (¤ AE´ JZ%-PK@Š( AE-À( –˜RÐE-Q@´”QLRR¢€ (”P0¢€ (Q@( aK@ K@Q@RÐEP0¢€ (¢€ (¤ ¤ aE (¢€’€ 1@Q@Š”´PI@– J(¥ ¢€ (¢€ (¤ Š( ¢ ( BQ@-Š( –€Š( AEPÑ@Š( –€Š- ( Š)hQ@ EPK@ )(i(´”´PQ@RPQ@‚ŠJ(( ¢%R¤ Š@%Q@( aESQ@€Z(QL–€ (h Š( ¤ ŠPEPEPE”(¤E (¢€ (Q@ E%- (¢˜‚Š)h¢…- )€Q@ E´Q@Q@‚Šc )Q@„¥ aERQLAK@Ä¥ Š( ¢€ (RÐEPŠ(¢€ (¢€ (¤ Š( aE (¤ ¢€Š( ŠP ¢€ (¢‚‚ŠPE%- (¢‰E (Q@‚’…RPÒP ¢€ J(¤EPE )€QH¥¦E )€¸¤¤E1¹¢…Q@Z(Q@ EPÑ@Š( ŠZJZ(( AE (( ’€ JPQH¢%0 J@R)iˆJ) ( ’-–Q@Ť ¢€ (¥ ŠZJ`-RÒ(¦ ¢˜€( Š( Š(¤E0 (¢†P ¤ bÑ@”´ÄRQ@…¢˜ÂŠPÑ@´”ÀZ(¥ Š( –˜ IHaE (´PPQ@RÐEPÑ@-P0¢€ ZJZ( Š( ŠJ(¢€ (¢‰E’…( ’…)h”P ¢€Š”RÐRÐQ@Q@Q@% (”´J(Q@ EPIHŠ%À(¤EPI@ I@ E%´”´S¢h¦0¢RÐFhQ@…¢‹E´ ( ŠZ(¢€ (¢€ (¤ Š%RPI@ '–…”€)(¢€ J@-%0 )”P!i(Q@-”RÐE-%-)hQ@´”ÀZ)RÓ”´)(i(¥ BRÐ0¢€ (Q@ K@%-%-€( Š`PER¢˜-PES´PRÐÑ@Š( – I@Q@‚–…†´À(¤KL¥ Š-)hQ@Q@Q@Q@RPEPEŠPI@-%- (( AEP0¢ (¤E0 (¢€ J( ŠJ(¢€ Ñ@„¢%P0¢€Š( ¢”´ JZ%Q@j(¢€ ZJ(¥ ¥ Š( ŠZ(´PE0Š@- )i€Q@Q@Q@ E’€ (( aE! ¢€ JP0¤ AE%- Š)(i(¢€ (¢€ (¢€ Z( Š)h¥ Š(¦KHŠ`PKH’˜-P ¢‹E%-–€ J-%-%-Q@„¥ ŠP ¢˜€(¦E-Q@‚Š´( aK@m´RQLAER¥ Šc Z(¤0¥¦E´( aEPEPE (RPÑ@ E”Q@Š)(´”Q@ ZJ)h( ŠP0¢€ )Q@ E´”PI@”´”PI@‚Š%)(¥¤RPEPI@ I@ÀZJ@PEPIšb½QHaE0 (RÐ ¢€ ZRh¦E-´f€ \Ð0£4Q@ÄPQHŠ`R¤ ’À)(¢%PRÐQ@‚Š)(Q@‚Š( ’€Š( Š)h¢€ ZJZ( ¢€ Z( –˜% –€ )€QLŠ@PE Z%-0– ( Š@S£€(¦ ¢€ (¢€ (¢€ŠJZP0¥ ŠbŠ@-€( aE–˜†´À( –…( ¤ bÑ@Q@€(¦EPE%´””PE )RSQHŠ( aE0 )”S¢Q@RR´S”R¢…% J(¤ILŠ@” )(Q@Q@ EPE%-%Q@ E´Q@ E’‹I@ EP0¢ ESh¤E1…„- )h¢˜ šJZ(¢€ (¢€–Ä¢˜‚Š( ¢€ J@S¢ E (RP ¢‹I@‚Š)(i(h ¢€ Z( ŠZ(¢€Š( ŠZ(h –€ (¥¦E-%-Q@Ä-% Z( ¤ Š( Š)(h AE (”PÑ@RPÑ@)h¢€ (i(¥ Š(¤0¢˜z(¢€ (h aE (¥ ’Å¢€ )€”´Q@ ER¢˜%!…( ’…Ä%- Š`R¢€ (”S¥¤!( Š)(¢€ (¢€ J”(¤E0Š@”Q@Q@ E (”PEPQ@-%)(¢…ZJ´Q@Q@ ¢€ (¢…-P!i(´PE ZPE¢€ (£4Q@%PE (”P ¢€ (¢€ŠPPQ@‚Š( Š@S¤ ¢€ (¥¤QL¢€ (h aKHŠb Z)hQ@‚–˜ÀZZ@%´SïEPŠZ( Š( aE J- )(¢€ (Q@ŠPÒPEPEP!ihh¤E J´ÆPQ@ E )€Q@Ä¥ AEP1h¤Q@ I@RÐQ@Â’Q@%PI@ I@Ä¥ AE% ( AE (¢h ŠP!)h(¤I@)(Q@”PE JPI@Q@‚ŠCŠ`PE J(¦ ¢€– )(¢ E JZ)ˆ( –Š`´†%-1 K@ ( BÒP1h Š( ¤ ¤ AK@ EPEP0¢ ( ¥ BRÐI@Q@ I@´”QHŠ`¢À( ¢À( ¢€ (h aK@Z(h aKLAE ZPKLŠZJ-%Š%´P!( Š( Š( ’€Š( ’€ (¢Q@ÿÙlibspatialite-4.3.0a/test/sql_stmt_tests/asbinary13.testcase0000664000175000017500000000122712544707704021224 00000000000000asbinary - MULTILINESTRINGM :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTILINESTRINGM((0 0 0, 3 0 1,3 0 2, 3 3 3), (0 0 1, 0 3 2))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTILINESTRINGM((0 0 0, 3 0 1,3 0 2, 3 3 3), (0 0 1, 0 3 2))", 4326))) 01D50700000200000001D20700000400000000000000000000000000000000000000000000000000000000000000000008400000000000000000000000000000F03F00000000000008400000000000000000000000000000004000000000000008400000000000000840000000000000084001D20700000200000000000000000000000000000000000000000000000000F03F000000000000000000000000000008400000000000000040 libspatialite-4.3.0a/test/sql_stmt_tests/casttopoint5.testcase0000664000175000017500000000037212544707704021704 00000000000000casttopoint - MULTIPOINT, 2 points :memory: #use in-memory database SELECT AsText(CastToPoint(GeomFromText("MULTIPOINT(4 3, 1 6)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToPoint(GeomFromText("MULTIPOINT(4 3, 1 6)"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttoblob10.testcase0000664000175000017500000000030212544707704021536 00000000000000CastToBlob() - Invalid (1) hex_input :memory: #use in-memory database SELECT CastToBlob('0129abCFzZ', 1) 1 # rows (not including the header row) 1 # columns CastToBlob('0129abCFzZ', 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/st_m3.testcase0000664000175000017500000000027612544707704020300 00000000000000ST_M3 :memory: #use in-memory database SELECT ST_M(GeomFromText("POINTM(136 -35 -8.6)")); 1 # rows (not including the header row) 1 # columns ST_M(GeomFromText("POINTM(136 -35 -8.6)")) -8.6 libspatialite-4.3.0a/test/sql_stmt_tests/reflectcoords4.testcase0000664000175000017500000000030712544707704022170 00000000000000reflectcoords4 :memory: #use in-memory database SELECT AsText(ReflectCoords(zeroblob(20), 0, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(zeroblob(20), 0, 1)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridax1name6.testcase0000664000175000017500000000026512544707704021553 00000000000000SridGetAxis_1_Name() - 32632 :memory: #use in-memory database SELECT SridGetAxis_1_Name(32632) 1 # rows (not including the header row) 1 # columns SridGetAxis_1_Name(32632) Easting libspatialite-4.3.0a/test/sql_stmt_tests/casttodouble3.testcase0000664000175000017500000000025512544707704022023 00000000000000CastToDouble() - TEXT invalid :memory: #use in-memory database SELECT CastToDouble('alpha') 1 # rows (not including the header row) 1 # columns CastToDouble('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/clonetable2.testcase0000664000175000017500000000033112544707704021435 00000000000000CloneTable() - NULL input-table :memory: #use in-memory database SELECT CloneTable('prefix', NULL, 'out_table', 1) 1 # rows (not including the header row) 1 # columns CloneTable('prefix', NULL, 'out_table', 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat27.testcase0000664000175000017500000000110312544707704022624 00000000000000normalizelonlat- out of range negative lat polygon :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POLYGON((120 -140, 120 -150, 130 -150, 130 -140, 120 -140), (122 -142, 124 -142, 124 -144, 122 -144, 122 -142))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POLYGON((120 -140, 120 -150, 130 -150, 130 -140, 120 -140), (122 -142, 124 -142, 124 -144, 122 -144, 122 -142))", 4326)))42 0))", 4326))) POLYGON((120 -40, 120 -30, 130 -30, 130 -40, 120 -40), (122 -38, 124 -38, 124 -36, 122 -36, 122 -38)) libspatialite-4.3.0a/test/sql_stmt_tests/dissolve4.testcase0000664000175000017500000000027412544707704021165 00000000000000dissolve - zeroblob input :memory: #use in-memory database SELECT DissolveSegments(zeroblob(126)) 1 # rows (not including the header row) 1 # columns DissolveSegments(zeroblob(126)) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/geodesic-len8.testcase0000664000175000017500000000062512544707704021677 00000000000000geodesic length polygon with hole :memory: SELECT GeodesicLength(GeomFromText("POLYGON((11.5 43.5, 11.8 43.5, 11.8 43.8, 11.5 43.8, 11.5 43.5), (11.6 43.6, 11.7 43.6, 11.7 43.7, 11.6 32.7, 11.6 43.6))", 4326)); 1 # rows 1 # column GeodesicLength(GeomFromText("POLYGON((11.5 43.5, 11.8 43.5, 11.8 43.8, 11.5 43.8, 11.5 43.5), (11.6 43.6, 11.7 43.6, 11.7 43.7, 11.6 32.7, 11.6 43.6))", 4326)) 2565198.35:10 libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude6.testcase0000664000175000017500000000052512544707704022366 00000000000000shiftlongitude - negative longitude linestring :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("LINESTRING(-170 0, -175 2, -179 4)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("LINESTRING(-170 0, -175 2, -179 4)", 4326))) LINESTRING(190 0, 185 2, 181 4) libspatialite-4.3.0a/test/sql_stmt_tests/st_z6.testcase0000664000175000017500000000022112544707704020306 00000000000000ST_Z6 :memory: #use in-memory database SELECT ST_Z(zeroblob(10)); 1 # rows (not including the header row) 1 # columns ST_Z(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/rotatecoords8.testcase0000664000175000017500000000154412544707704022052 00000000000000rotate coords - Simple polygonz :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("POLYGONZ((0 0 1, 1 1 2, 1 2 3, -1 1 4, 0 0 1))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) POLYGON Z((0 0 1, 1 1 2, 1 2 3, -1 1 4, 0 0 1)) POLYGON Z((0 0 1, 1 -1 2, 2 -1 3, 1 1 4, 0 0 1)) POLYGON Z((0 0 1, -1 -1 2, -1 -2 3, 1 -1 4, 0 0 1)) POLYGON Z((0 0 1, -1 1 2, -2 1 3, -1 -1 4, 0 0 1)) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/badGML4.testcase0000664000175000017500000000137312544707704020424 00000000000000bad GML: Polygon :memory: #use in-memory database SELECT GeomFromGML('0,0 4,0 4,4 0,4 0,01,1 2,1 2,2 1,2 1,10,0 4,0 4,4 0,4 0,01,1 2,1 2,2 1,2 1,1 -112.2550785337791,36.07954952145647 -112.2549277039738,36.08117083492122 -112.2552505069063,36.08260761307279 -112.2564540158376,36.08395660588506 -112.2580238976449,36.08511401044813 -112.2595218489022,36.08584355239394 -112.262073428656,36.08626019085147 -112.2633204928495,36.08621519860091 -112.2644963846444,36.08627897945274 -112.2656969554589,36.08649599090644 ")) 1 # rows 1 # column AsText(GeomFromKML(" -112.2550785337791,36.07954952145647 -112.2549277039738,36.08117083492122 -112.2552505069063,36.08260761307279 -112.2564540158376,36.08395660588506 -112.2580238976449,36.08511401044813 -112.2595218489022,36.08584355239394 -112.262073428656,36.08626019085147 -112.2633204928495,36.08621519860091 -112.2644963846444,36.08627897945274 -112.2656969554589,36.08649599090644 ")) LINESTRING(-112.255079 36.07955, -112.254928 36.081171, -112.255251 36.082608, -112.256454 36.083957, -112.258024 36.085114, -112.259522 36.085844, -112.262073 36.08626, -112.26332 36.086215, -112.264496 36.086279, -112.265697 36.086496)libspatialite-4.3.0a/test/sql_stmt_tests/maxz1.testcase0000664000175000017500000000021212544707704020301 00000000000000MaxZ - non-blob :memory: #use in-memory database SELECT ST_MaxZ(3) 1 # rows (not including the header row) 1 # columns ST_MaxZ(3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/isvalidfont2.testcase0000664000175000017500000000024112544707704021647 00000000000000IsValidFont - NULL pixel NEW:memory: #use in-memory database SELECT IsValidFont(NULL); 1 # rows (not including the header row) 1 # columns IsValidFont(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_tests/sanitizeGeometry7.testcase0000664000175000017500000000067312544707704022705 00000000000000Sanitize Geometry - POLYGON ZM :memory: #use in-memory database SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON ZM((-75 42 2 0, -70 39 2 0, -70 42 3 0, -70 42 4 0, -75 42 2 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsEWkt(SanitizeGeometry(GeomFromText("POLYGON ZM((-75 42 2 0, -70 39 2 0, -70 42 3 0, -70 42 4 0, -75 42 2 0))", 4326))) SRID=4326;POLYGON((-75 42 2 0,-70 39 2 0,-70 42 3 0,-70 42 4 0,-75 42 2 0)) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry29.testcase0000664000175000017500000000074212544707704023033 00000000000000CompressGeometry - POLYGON M :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("POLYGONM((0 0 1, 5 0 2, 5 5 3, 0 5 4, 0 0 1), (1 1 10, 2 1 11, 2 2 12, 1 2 13, 1 1 10))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("POLYGONM((0 0 1, 5 0 2, 5 5 3, 0 5 4, 0 0 1), (1 1 10, 2 1 11, 2 2 12, 1 2 13, 1 1 10))", 4326))) POLYGON M((0 0 1, 5 0 2, 5 5 3, 0 5 4, 0 0 1), (1 1 10, 2 1 11, 2 2 12, 1 2 13, 1 1 10)) libspatialite-4.3.0a/test/sql_stmt_tests/collect26.testcase0000664000175000017500000000063312544707704021045 00000000000000collect - LineString, LineStringM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("Linestring(1 2, 3 4)"), GeomFromText("LINESTRINGM(4 5 3.2, 1 2 4.6, 4 2 3.1)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("Linestring(1 2, 3 4)"), GeomFromText("LINESTRINGM(4 5 3.2, 1 2 4.6, 4 2 3.1)"))) MULTILINESTRING M((1 2 0, 3 4 0), (4 5 3.2, 1 2 4.6, 4 2 3.1)) libspatialite-4.3.0a/test/sql_stmt_tests/asgeojson5.testcase0000664000175000017500000000037212544707704021325 00000000000000asgeojson - bad args (3 arg, bad option type) :memory: #use in-memory database SELECT asgeojson(GeomFromText("Point(1 2)", 4326), 4, 2.2); 1 # rows (not including the header row) 1 # columns asgeojson(GeomFromText("Point(1 2)", 4326), 4, 2.2) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/isvalidfont1.testcase0000664000175000017500000000025412544707704021652 00000000000000IsValidFont - standard NEW:memory: #use in-memory database SELECT IsValidFont(zeroblob(4)); 1 # rows (not including the header row) 1 # columns IsValidFont(zeroblob(4)) 0 libspatialite-4.3.0a/test/sql_stmt_tests/collect33.testcase0000664000175000017500000000062412544707704021043 00000000000000collect - LineStringM, LineStringM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGM(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGM(4 5 1, 1 2 2, 4 2 3)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGM(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGM(4 5 1, 1 2 2, 4 2 3)"))) MULTILINESTRING M((1 2 4, 3 4 2), (4 5 1, 1 2 2, 4 2 3)) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipse8.testcase0000664000175000017500000000030012544707704021622 00000000000000makeellipse8 - text x_axis :memory: #use in-memory database SELECT MakeEllipse(0, 0, 'alpha', 200); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, 'alpha', 200) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/envintersects6.testcase0000664000175000017500000000037312544707704022233 00000000000000ST_EnvIntersects - ok [int coords] :memory: #use in-memory database SELECT ST_EnvIntersects(GeomFromText('POINT(2.5 2.8)'), 2, 2, 3, 3) 1 # rows (not including the header row) 1 # columns ST_EnvIntersects(GeomFromText('POINT(2.5 2.8)'), 2, 2, 3, 3) 1 libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt39.testcase0000664000175000017500000000136412544707704021264 00000000000000fromewkt39 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(9 9 9 7), GEOMETRYCOLLECTION(POINT(0 0 9 7), LINESTRING(1 1 9 7, 2 2 9 7)), POINT(8 8 9 7), GEOMETRYCOLLECTION(POINT(3 3 9 7), LINESTRING(4 4 9 7, 5 5 9 7)), POINT(7 7 9 7))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(9 9 9 7), GEOMETRYCOLLECTION(POINT(0 0 9 7), LINESTRING(1 1 9 7, 2 2 9 7)), POINT(8 8 9 7), GEOMETRYCOLLECTION(POINT(3 3 9 7), LINESTRING(4 4 9 7, 5 5 9 7)), POINT(7 7 9 7))')); GEOMETRYCOLLECTION ZM(POINT ZM(9 9 9 7), POINT ZM(0 0 9 7), POINT ZM(8 8 9 7), POINT ZM(3 3 9 7), POINT ZM(7 7 9 7), LINESTRING ZM(1 1 9 7, 2 2 9 7), LINESTRING ZM(4 4 9 7, 5 5 9 7)) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype28.testcase0000664000175000017500000000043212544707704021250 00000000000000geometrytype - MULTIPOINT :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("MULTIPOINT(-71 42, 4 22)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) MULTIPOINT XYlibspatialite-4.3.0a/test/sql_stmt_tests/npoints4.testcase0000664000175000017500000000045212544707704021025 00000000000000npoints - Point plus linestring :memory: #use in-memory database SELECT ST_NPoints(GeomFromText("GeometryCollection(POINT(1 2), LINESTRING(1 3, 4 6, 7 9))")) 1 # rows (not including the header row) 1 # columns ST_NPoints(GeomFromText("GeometryCollection(POINT(1 2), LINESTRING(1 3, 4 6, 7 9))")) 4 libspatialite-4.3.0a/test/sql_stmt_tests/reverse2.testcase0000664000175000017500000000023612544707704021004 00000000000000reverse - invalid :memory: #use in-memory database SELECT ST_Reverse("alpha"); 1 # rows (not including the header row) 1 # columns ST_Reverse("alpha") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircle3.testcase0000664000175000017500000000027312544707704021432 00000000000000makecircle3 - BLOB cx :memory: #use in-memory database SELECT MakeCircle(zeroblob(4), 0, 100); 1 # rows (not including the header row) 1 # columns MakeCircle(zeroblob(4), 0, 100) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson31.testcase0000664000175000017500000000053512544707704021745 00000000000000FromGeoJSON - multipoint, default SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"MultiPoint","bbox":[1,2,4,6],"coordinates":[[1,2],[4,6]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"MultiPoint","bbox":[1,2,4,6],"coordinates":[[1,2],[4,6]]}')):0 SRID=0;MULTIPOINT(1 2,4 6) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry41.testcase0000664000175000017500000000101712544707704023021 00000000000000CompressGeometry - MULTILINESTRING ZM :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTILINESTRINGZM((10 10 100 1, 11 11 101 2, 12 12 102 3), (15 15 101 1, 16 16 102 2, 17 17 103 3))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTILINESTRINGZM((10 10 100 1, 11 11 101 2, 12 12 102 3), (15 15 101 1, 16 16 102 2, 17 17 103 3))", 4326))) MULTILINESTRING ZM((10 10 100 1, 11 11 101 2, 12 12 102 3), (15 15 101 1, 16 16 102 2, 17 17 103 3)) libspatialite-4.3.0a/test/sql_stmt_tests/buildmbr8.testcase0000664000175000017500000000026512544707704021141 00000000000000buildmbr - null args :memory: #use in-memory database SELECT BuildMbr(5, 6, 7, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildMbr(5, 6, 7, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/gml11.testcase0000664000175000017500000000125012544707704020165 00000000000000GML Polygon: no SRID :memory: #use in-memory database SELECT AsGML(3, GeomFromText("POLYGON((10 10, 20 10, 20 20, 10 20, 10 10), (15 15, 16 15, 16 16, 15 16, 15 15))")); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("POLYGON((10 10, 20 10, 20 20, 10 20, 10 10), (15 15, 16 15, 16 16, 15 16, 15 15))")) 10 10 20 10 20 20 10 20 10 1015 15 16 15 16 16 15 16 15 15:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext7.testcase0000664000175000017500000000041512544707704022055 00000000000000geomfromtext7 :memory: #use in-memory database SELECT AsEWkt(GeomFromText("POINT(-71.1043443253471 42.315067601582900)", "WGS-84")); 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromText("POINT(-71.1043443253471 42.315067601582900)", "WGS-84")) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/geomtype61.testcase0000664000175000017500000000062012544707704021244 00000000000000geometrytype - GEOMETRYCOLLECTIONZM - one point :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(3 3 29 2))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION ZM XYZM GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/fromgml60.testcase0000664000175000017500000000134012544707704021055 00000000000000FromGML - Box-1 :memory: #use in-memory database SELECT AsText(GeomFromGml('1465764.67172047,4301759.08670378 1486407.98880581,4322672.57766581')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('1465764.67172047,4301759.08670378 1486407.98880581,4322672.57766581')):0 POLYGON((1465764.67172 4301759.086704, 1486407.988806 4301759.086704, 1486407.988806 4322672.577666, 1465764.67172 4322672.577666, 1465764.67172 4301759.086704)) libspatialite-4.3.0a/test/sql_stmt_tests/casttosingle12.testcase0000664000175000017500000000047112544707704022112 00000000000000casttosingle - MULTIPOLYGON, one polygon :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("MULTIPOLYGON(((4 3, 1 1, 9 8, 4 3)))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("MULTIPOLYGON(((4 3, 1 1, 9 8, 4 3)))"))) POLYGON((4 3, 1 1, 9 8, 4 3)) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr12.testcase0000664000175000017500000000023412544707704021045 00000000000000garsmbr - bad coords :memory: #use in-memory database SELECT GARSMbr("AA123A") 1 # rows (not including the header row) 1 # columns GARSMbr("AA123A") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/st_y8.testcase0000664000175000017500000000037612544707704020322 00000000000000ST_Y8 :memory: #use in-memory database SELECT ST_Y(MakePointM(-71.1043443253471, 42.3150676015829, 12.6389, 4326)); 1 # rows (not including the header row) 1 # columns ST_Y(MakePointM(-71.1043443253471, 42.3150676015829, 12.6389, 4326)) 42.3150676015829 libspatialite-4.3.0a/test/sql_stmt_tests/geometryn6.testcase0000664000175000017500000000037212544707704021347 00000000000000Geometry N - multipoint - float index :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOINT(1 2)"), 0.2)); 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOINT(1 2)"), 0.2)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/extfrompath2.testcase0000664000175000017500000000024412544707704021671 00000000000000FileExtFromPath - INTEGER :memory: #use in-memory database SELECT FileExtFromPath(1); 1 # rows (not including the header row) 1 # columns FileExtFromPath(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/routing1.testcase0000664000175000017500000000057112544707704021021 00000000000000routing: integer ids (Dijkstra) sql_stmt_tests/testdb1.sqlite SELECT Algorithm, ArcRowid, NodeFrom, NodeTo, Cost FROM roads_net WHERE NodeFrom = 29 AND NodeTo = 32; 4 # rows (not including the header row) 5 # columns Algorithm ArcRowid NodeFrom NodeTo Cost Dijkstra (NULL) 29 32 0.001856:6 Dijkstra 29 29 30 0.000512:6 Dijkstra 30 30 31 0.000445:6 Dijkstra 31 31 32 0.000898:6 libspatialite-4.3.0a/test/sql_stmt_tests/getmimetype5.testcase0000664000175000017500000000025212544707704021663 00000000000000GetMimeType - BLOB :memory: #use in-memory database SELECT GetMimeType(zeroblob(4)); 1 # rows (not including the header row) 1 # columns GetMimeType(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftcoords2.testcase0000664000175000017500000000034612544707704021662 00000000000000shiftcoords2 :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("POINT(1 2)"), -1, -3)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("POINT(1 2)"), -1, -3)) POINT(0 -1) libspatialite-4.3.0a/test/sql_stmt_tests/namefrompath1.testcase0000664000175000017500000000025212544707704022007 00000000000000FileNameFromPath - NULL :memory: #use in-memory database SELECT FileNameFromPath(NULL); 1 # rows (not including the header row) 1 # columns FileNameFromPath(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon22.testcase0000664000175000017500000000074412544707704021744 00000000000000makepolygon - Linestring not closed interiors :memory: #use in-memory database SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('MULTILINESTRING((2 2, 3 2, 3 3, 2 3, 2 2), (10 10, 11 10, 11 11, 10 11))')); 1 # rows (not including the header row) 1 # columns ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('MULTILINESTRING((2 2, 3 2, 3 3, 2 3, 2 2), (10 10, 11 10, 11 11, 10 11))')); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/setstartpoint12.testcase0000664000175000017500000000056412544707704022341 00000000000000ST_SetStartPoint() - not a point :memory: #use in-memory database SELECT ST_SetStartPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), GeomFromText('MULTILINESTRING(10 10, 11 10), (1 1, 2 2))')) 1 # rows (not including the header row) 1 # columns ST_SetStartPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), GeomFromText('MULTILINESTRING(10 10, 11 10), (1 1, 2 2))')) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude26.testcase0000664000175000017500000000075712544707704022457 00000000000000shiftlongitude - polygon with interior, all positive :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGON((185 0, 184 10, 175 10, 176 0, 185 0),(176 2, 181 2, 181 4, 176 4, 176 2))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGON((185 0, 184 10, 175 10, 176 0, 185 0),(176 2, 181 2, 181 4, 176 4, 176 2))", 4326))) POLYGON((185 0, 184 10, 175 10, 176 0, 185 0), (176 2, 181 2, 181 4, 176 4, 176 2)) libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints5.testcase0000664000175000017500000000042612544707704022554 00000000000000geometry constraints - 3 arg, POINT bad SRID :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("Point(1 2)", 4386), "POINT", 4326) 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("Point(1 2)", 4386), "POINT", 4326) 0 libspatialite-4.3.0a/test/sql_stmt_tests/makeellipse15.testcase0000664000175000017500000000031112544707704021702 00000000000000makeellipse15 - text srid :memory: #use in-memory database SELECT MakeEllipse(0, 0, 100, 200, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, 100, 200, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/setstartpoint6.testcase0000664000175000017500000000040712544707704022260 00000000000000ST_SetStartPoint() - NULL Point :memory: #use in-memory database SELECT ST_SetStartPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), NULL) 1 # rows (not including the header row) 1 # columns ST_SetStartPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/minm3.testcase0000664000175000017500000000034012544707704020266 00000000000000MinM - Linestring XY :memory: #use in-memory database SELECT ST_MinM(GeomFromText('LINESTRING(1 2, 3 4, 5 6)')); 1 # rows (not including the header row) 1 # columns ST_MinM(GeomFromText('LINESTRING(1 2, 3 4, 5 6)')) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb5.testcase0000664000175000017500000000055412544707704020746 00000000000000fromWkb - mandatory POINT :memory: #use in-memory database SELECT Hex(PointFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326)))) 1 # rows (not including the header row) 1 # columns Hex(PointFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326)))) 000100000000000000000000F03F0000000000000040000000000000F03F00000000000000407C01000000000000000000F03F0000000000000040FE libspatialite-4.3.0a/test/sql_stmt_tests/sridax2orient4.testcase0000664000175000017500000000031312544707704022124 00000000000000SridGetAxis_2_Orientation() - DOUBLE SRID :memory: #use in-memory database SELECT SridGetAxis_2_Orientation(1.0) 1 # rows (not including the header row) 1 # columns SridGetAxis_2_Orientation(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr21.testcase0000664000175000017500000000024512544707704021047 00000000000000garsmbr - out of bounds lat :memory: #use in-memory database SELECT GARSMbr("001RA11") 1 # rows (not including the header row) 1 # columns GARSMbr("001RA11") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext21.testcase0000664000175000017500000000212512544707704022131 00000000000000geomfromtext21 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(8 8 9), MULTIPOLYGONZ(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))), POINTZ(7 7 9), MULTILINESTRINGZ((0 1 9, 2 3 9), (4 5 9, 6 7 9)), POINTZ(6 6 9), MULTIPOINTZ((0 1 9), (2 3 9), (4 5 9)), POINTZ(9 9 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(8 8 9), MULTIPOLYGONZ(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))), POINTZ(7 7 9), MULTILINESTRINGZ((0 1 9, 2 3 9), (4 5 9, 6 7 9)), POINTZ(6 6 9), MULTIPOINTZ((0 1 9), (2 3 9), (4 5 9)), POINTZ(9 9 9))')); GEOMETRYCOLLECTION Z(POINT Z(8 8 9), POINT Z(7 7 9), POINT Z(6 6 9), POINT Z(0 1 9), POINT Z(2 3 9), POINT Z(4 5 9), POINT Z(9 9 9), LINESTRING Z(0 1 9, 2 3 9), LINESTRING Z(4 5 9, 6 7 9), POLYGON Z((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), POLYGON Z((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))) libspatialite-4.3.0a/test/sql_stmt_tests/minm5.testcase0000664000175000017500000000036012544707704020272 00000000000000MinM - Linestring XYM :memory: #use in-memory database SELECT ST_MinM(GeomFromText('LINESTRINGM(1 2 10, 3 4 9, 5 6 12)')); 1 # rows (not including the header row) 1 # columns ST_MinM(GeomFromText('LINESTRINGM(1 2 10, 3 4 9, 5 6 12)')) 9.0 libspatialite-4.3.0a/test/sql_stmt_tests/setstartpoint13.testcase0000664000175000017500000000046212544707704022337 00000000000000ST_SetStartPoint() - XY :memory: #use in-memory database SELECT AsText(SetStartPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), MakePoint(2, 3))) 1 # rows (not including the header row) 1 # columns AsText(SetStartPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), MakePoint(2, 3))) LINESTRING(2 3, 1 0, 1 1) libspatialite-4.3.0a/test/sql_stmt_tests/st_y1.testcase0000664000175000017500000000035212544707704020305 00000000000000ST_Y1 :memory: #use in-memory database SELECT ST_Y(MakePoint(-71.1043443253471, 42.3150676015829, 4326)); 1 # rows (not including the header row) 1 # columns ST_Y(MakePoint(-71.1043443253471, 42.3150676015829, 4326)) 42.3150676015829 libspatialite-4.3.0a/test/sql_stmt_tests/mbr7.testcase0000664000175000017500000000036612544707704020122 00000000000000MbrContains - bad blob (error) + Point :memory: #use in-memory database SELECT MbrContains(zeroblob(49), GeomFromText("POINT(2 1)")); 1 # rows (not including the header row) 1 # columns MbrContains(zeroblob(49), GeomFromText("POINT(2 1)")) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/setpoint18.testcase0000664000175000017500000000047212544707704021267 00000000000000ST_SetPoint() - not a line :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), 1, MakePoint(2, 0)) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), 1, MakePoint(2, 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe24.testcase0000664000175000017500000000034312544707704023305 00000000000000makecircularstripe24 - NULL radius #2 :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, NULL, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, NULL, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/badGeoJSON1.testcase0000664000175000017500000000035712544707704021207 00000000000000bad GeoJSON: Point :memory: #use in-memory database SELECT GeomFromGeoJSON('{"type":"Point","coordinates":[1.1,2.2]'); 1 # rows (not including the header row) 1 # columns GeomFromGeoJSON('{"type":"Point","coordinates":[1.1,2.2]'):0 (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepoint10.testcase0000664000175000017500000000034412544707704021377 00000000000000makepoint - MakepointM, non-number M, SRID :memory: #use in-memory database SELECT AsText(MakePointM(-71, 42, "hello", 4326)) 1 # rows (not including the header row) 1 # columns AsText(MakePointM(-71, 42, "hello", 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull5.testcase0000664000175000017500000000024712544707704021327 00000000000000ForceAsNull() - DOUBLE/INTEGER :memory: #use in-memory database SELECT ForceAsNull(1.5, 1) 1 # rows (not including the header row) 1 # columns ForceAsNull(1.5, 1) 1.5 libspatialite-4.3.0a/test/sql_stmt_tests/st_x1.testcase0000664000175000017500000000035512544707704020307 00000000000000ST_X1 :memory: #use in-memory database SELECT ST_X(MakePointZ(-71.1043443253471, 42.3150676015829, 4326)); 1 # rows (not including the header row) 1 # columns ST_X(MakePointZ(-71.1043443253471, 42.3150676015829, 4326)) -71.1043443253471 libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe2.testcase0000664000175000017500000000034312544707704023221 00000000000000makecircularstripe2 - text cx :memory: #use in-memory database SELECT MakeCircularStripe('alpha', 0, 100, 90, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe('alpha', 0, 100, 90, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/mpointfromtext1.testcase0000664000175000017500000000046712544707704022435 00000000000000multipointfromtext1 :memory: #use in-memory database SELECT AsWkt(MPointFromText("MULTIPOINT(-75 42, -70 45, -70 42, -70 42, -75 42)")) 1 # rows (not including the header row) 1 # columns AsWkt(MPointFromText("MULTIPOINT(-75 42, -70 45, -70 42, -70 42, -75 42)")) MULTIPOINT(-75 42,-70 45,-70 42,-70 42,-75 42) libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints2.testcase0000664000175000017500000000041412544707704022546 00000000000000geometry constraints - 3 arg, blob :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("Point(1 2)", 4326), "POINT", 4326) 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("Point(1 2)", 4326), "POINT", 4326) 1 libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints11.testcase0000664000175000017500000000037212544707704022631 00000000000000geometry constraints - 4 arg, zeroblob 20 :memory: #use in-memory database SELECT GeometryConstraints(zeroblob(20), "POINT", 4326, "XYM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(zeroblob(20), "POINT", 4326, "XYM") -1 libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry55.testcase0000664000175000017500000000104312544707704023025 00000000000000CompressGeometry - GEOMETRYCOLLECTION Z (2 Linestrings) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(1 2 100, 3 4 101, 5 6 102), LINESTRINGZ(7 7 101, 8 8 102, 9 9 103))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(1 2 100, 3 4 101, 5 6 102), LINESTRINGZ(7 7 101, 8 8 102, 9 9 103))", 4326))) GEOMETRYCOLLECTION Z(LINESTRING Z(1 2 100, 3 4 101, 5 6 102), LINESTRING Z(7 7 101, 8 8 102, 9 9 103)) libspatialite-4.3.0a/test/sql_stmt_tests/sridax1orient6.testcase0000664000175000017500000000030712544707704022130 00000000000000SridGetAxis_1_Orientation() - 32632 :memory: #use in-memory database SELECT SridGetAxis_1_Orientation(32632) 1 # rows (not including the header row) 1 # columns SridGetAxis_1_Orientation(32632) East libspatialite-4.3.0a/test/sql_stmt_tests/elemgeo1.testcase0000664000175000017500000000041612544707704020745 00000000000000ElementaryGeometries() - NULL input_table :memory: #use in-memory database SELECT ElementaryGeometries(NULL, 'geom', 'out_table', 'id', 'old_id'); 1 # rows (not including the header row) 1 # columns ElementaryGeometries(NULL, 'geom', 'out_table', 'id', 'old_id') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml6.testcase0000664000175000017500000000103112544707704020772 00000000000000FromGML - Linestring v3 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1 2 3 4')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1 2 3 4')):0 SRID=4326;LINESTRING(1 2,3 4) libspatialite-4.3.0a/test/sql_stmt_tests/setpoint2.testcase0000664000175000017500000000026612544707704021201 00000000000000ST_SetPoint() - INTEGER line :memory: #use in-memory database SELECT ST_SetPoint(1, NULL, NULL) 1 # rows (not including the header row) 1 # columns ST_SetPoint(1, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makearc12.testcase0000664000175000017500000000026512544707704021017 00000000000000makearc12 - NULL stop :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 30, NULL); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 30, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepointz-null6.testcase0000664000175000017500000000040112544707704022460 00000000000000makepointz-null6 :memory: #use in-memory database SELECT AsText(MakePointZ(-26.0, 42.3150676015829, 0.0038723129645, "WGS84")); 1 # rows (not including the header row) 1 # columns AsText(MakePointZ(-26.0, 42.3150676015829, 0.0038723129645, "WGS84")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml10.testcase0000664000175000017500000000056712544707704021736 00000000000000From KML - Multigeometry - Point :memory: SELECT AsText(GeomFromKML("-122.0822035425683,37.42228990140251,0")) 1 # rows 1 # column AsText(GeomFromKML("-122.0822035425683,37.42228990140251,0")) MULTIPOINT Z(-122.082204 37.42229 0)libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry33.testcase0000664000175000017500000000144512544707704023027 00000000000000CompressGeometry - GEOMETRYCOLLECTION ZM :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(10 10 100 1, 11 11 101 2), POLYGONZM((0 0 100 1, 5 0 101 2, 5 5 102 3, 0 5 103 4, 0 0 100 1), (1 1 100 10, 2 1 101 11, 2 2 102 12, 1 2 103 13, 1 1 100 10)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(10 10 100 1, 11 11 101 2), POLYGONZM((0 0 100 1, 5 0 101 2, 5 5 102 3, 0 5 103 4, 0 0 100 1), (1 1 100 10, 2 1 101 11, 2 2 102 12, 1 2 103 13, 1 1 100 10)))", 4326))) GEOMETRYCOLLECTION ZM(LINESTRING ZM(10 10 100 1, 11 11 101 2), POLYGON ZM((0 0 100 1, 5 0 101 2, 5 5 102 3, 0 5 103 4, 0 0 100 1), (1 1 100 10, 2 1 101 11, 2 2 102 12, 1 2 103 13, 1 1 100 10))) libspatialite-4.3.0a/test/sql_stmt_tests/casttogeometrycollection4.testcase0000664000175000017500000000042612544707704024461 00000000000000casttogeometrycollection - POINT :memory: #use in-memory database SELECT AsText(CastToGeometryCollection(GeomFromText("POINT(3 1)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToGeometryCollection(GeomFromText("POINT(3 1)"))) GEOMETRYCOLLECTION(POINT(3 1)) libspatialite-4.3.0a/test/sql_stmt_tests/pointn8.testcase0000664000175000017500000000045612544707704020652 00000000000000pointN - regular LINESTRINGZ (last point) :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("LINESTRINGZ(4 0 4.4, 4 4 2.2, 8 4 3.3)"), -1)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("LINESTRINGZ(4 0 4.4, 4 4 2.2, 8 4 3.3)"), -1)) POINT Z(8 4 3.3) libspatialite-4.3.0a/test/sql_stmt_tests/asbinary16.testcase0000664000175000017500000000122412544707704021224 00000000000000asbinary - POLYGON :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("POLYGON((0 0, 3 0,3 3, 0 3,0 0), (1 1, 1 2, 2 2, 2 1, 1 1))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("POLYGON((0 0, 3 0,3 3, 0 3,0 0), (1 1, 1 2, 2 2, 2 1, 1 1))", 4326))) 01030000000200000005000000000000000000000000000000000000000000000000000840000000000000000000000000000008400000000000000840000000000000000000000000000008400000000000000000000000000000000005000000000000000000F03F000000000000F03F000000000000F03F0000000000000040000000000000004000000000000000400000000000000040000000000000F03F000000000000F03F000000000000F03F libspatialite-4.3.0a/test/sql_stmt_tests/makearc7.testcase0000664000175000017500000000026412544707704020742 00000000000000makearc7 - NULL radius :memory: #use in-memory database SELECT MakeArc(0, 0, NULL, 30, 60); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, NULL, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/reverse3.testcase0000664000175000017500000000150312544707704021003 00000000000000reverse - GeometryCollection XY :memory: #use in-memory database SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 15 10, 13 13, 10 10), (11 10.5, 13 10.5, 13 11.3, 11 10.5)), POLYGON((20 20, 27 20, 22 18, 20 20), (21 19.5, 27 19.5, 22 18.5, 21 19.5)))"))); 1 # rows (not including the header row) 1 # columns AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6, 7 8, 9 9), POLYGON((10 10, 15 10, 13 13, 10 10), (11 10.5, 13 10.5, 13 11.3, 11 10.5)), POLYGON((20 20, 27 20, 22 18, 20 20), (21 19.5, 27 19.5, 22 18.5, 21 19.5)))"))) SRID=0;GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(9 9,7 8,5 6,3 4),POLYGON((10 10,13 13,15 10,10 10),(11 10.5,13 11.3,13 10.5,11 10.5)),POLYGON((20 20,22 18,27 20,20 20),(21 19.5,22 18.5,27 19.5,21 19.5))) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract13.testcase0000664000175000017500000000043612544707704022435 00000000000000Collection Extract - Point extract from linestring :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("LINESTRING(1 2, 4 2)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("LINESTRING(1 2, 4 2)"), 1)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector9.testcase0000664000175000017500000000033712544707704023225 00000000000000makeellipticsector9 - NULL y_axis :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, NULL, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, NULL, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asewkb15.testcase0000664000175000017500000000055212544707704020672 00000000000000asewkb - MULTIPOINT, 1 point :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("MULTIPOINT(0 1)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("MULTIPOINT(0 1)", 4326))) 3031303430303030323045363130303030303031303030303030303130313030303030303030303030303030303030303030303030303030303030303030303046303346 libspatialite-4.3.0a/test/sql_stmt_tests/createvectorcoverages.testcase0000664000175000017500000000027412544707704023636 00000000000000CreateVectorsCoveragesTables NEW:memory: #use in-memory database SELECT CreateVectorCoveragesTables(); 1 # rows (not including the header row) 1 # columns CreateVectorCoveragesTables() 1 libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate4.testcase0000664000175000017500000000101512544707704021274 00000000000000ATM_Create() - 3d valid (int) :memory: #use in-memory database SELECT Hex(ATM_Create(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)) 1 # rows (not including the header row) 1 # columns Hex(ATM_Create(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)) 0001000000000000F03F3A00000000000000403A00000000000008403A00000000000024403A00000000000010403A00000000000014403A00000000000018403A00000000000026403A0000000000001C403A00000000000020403A00000000000022403A00000000000028403A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/atmscale13.testcase0000664000175000017500000000030012544707704021174 00000000000000ATM_Scale() - 3rd invalid matrix :memory: #use in-memory database SELECT ATM_Scale('a', 1.0, 2.0, 3.0) 1 # rows (not including the header row) 1 # columns ATM_Scale('a', 1.0, 2.0, 3.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext41.testcase0000664000175000017500000000105612544707704022135 00000000000000geomfromtext41 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9)), GEOMETRYCOLLECTIONM(POINTM(3 3 9), LINESTRINGM(4 4 9, 5 5 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9)), GEOMETRYCOLLECTIONM(POINTM(3 3 9), LINESTRINGM(4 4 9, 5 5 9)))')); GEOMETRYCOLLECTION M(POINT M(0 0 9), POINT M(3 3 9), LINESTRING M(1 1 9, 2 2 9), LINESTRING M(4 4 9, 5 5 9)) libspatialite-4.3.0a/test/sql_stmt_tests/srid6.testcase0000664000175000017500000000057512544707704020304 00000000000000SetSRID - toxic :memory: #use in-memory database SELECT AsText(SetSRID(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 4326)) 1 # rows (not including the header row) 1 # columns AsText(SetSRID(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 4326)) POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5)) libspatialite-4.3.0a/test/sql_stmt_tests/makearc18.testcase0000664000175000017500000000031312544707704021017 00000000000000makearc18 - BLOB srid :memory: #use in-memory database SELECT MakeArc(0, 0, 100, 30, 60, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeArc(0, 0, 100, 30, 60, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull6.testcase0000664000175000017500000000026012544707704021323 00000000000000ForceAsNull() - DOUBLE/TEXT :memory: #use in-memory database SELECT ForceAsNull(1.5, 'alpha') 1 # rows (not including the header row) 1 # columns ForceAsNull(1.5, 'alpha') 1.5 libspatialite-4.3.0a/test/sql_stmt_tests/maxm5.testcase0000664000175000017500000000036312544707704020277 00000000000000MaxM - Linestring XYM :memory: #use in-memory database SELECT ST_MaxM(GeomFromText('LINESTRINGM(1 2 10, 3 4 13, 5 6 12)')); 1 # rows (not including the header row) 1 # columns ST_MaxM(GeomFromText('LINESTRINGM(1 2 10, 3 4 13, 5 6 12)')) 13.0 libspatialite-4.3.0a/test/sql_stmt_tests/atminvert3.testcase0000664000175000017500000000033012544707704021336 00000000000000ATM_Invert() - invertible :memory: #use in-memory database SELECT ATM_IsValid(ATM_Invert(ATM_CreateScale(2,2,2))) 1 # rows (not including the header row) 1 # columns ATM_IsValid(ATM_Invert(ATM_CreateScale(2,2,2))) 1 libspatialite-4.3.0a/test/sql_stmt_tests/casttopoint7.testcase0000664000175000017500000000047612544707704021713 00000000000000casttopoint - Geometry collection, point plus linestring :memory: #use in-memory database SELECT CastToPoint(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 3, 4 1),POINT(1 2))")) 1 # rows (not including the header row) 1 # columns CastToPoint(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 3, 4 1),POINT(1 2))")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridprojection3.testcase0000664000175000017500000000026312544707704022370 00000000000000SridGetProjection() - DOUBLE SRID :memory: #use in-memory database SELECT SridGetProjection(1.0) 1 # rows (not including the header row) 1 # columns SridGetProjection(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt5.testcase0000664000175000017500000000051312544707704021170 00000000000000fromewkt5 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOINT((0 1), (2 3), (4 5)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOINT((0 1), (2 3), (4 5)))')); GEOMETRYCOLLECTION(POINT(0 1), POINT(2 3), POINT(4 5)) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe17.testcase0000664000175000017500000000035412544707704023311 00000000000000makecircularstripe17 - text srid :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, 30, 60, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, 30, 60, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/scalecoords10.testcase0000664000175000017500000000175512544707704021720 00000000000000scale coords - POLYGON with inner ring :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 2, 1 3, 2 3, 2 2, 1 2))") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) POLYGON((0 0, 0 0, 0 0, 0 0, 0 0), (0 0, 0 0, 0 0, 0 0, 0 0)) POLYGON((0 0, 0 0, 0 0, 0 0, 0 0), (0 0, 0 0, 0 0, 0 0, 0 0)) POLYGON((0 0, 0 12, 8 12, 8 0, 0 0), (2 6, 2 9, 4 9, 4 6, 2 6)) POLYGON((0 0, 0 -4, 4 -4, 4 0, 0 0), (1 -2, 1 -3, 2 -3, 2 -2, 1 -2)) (NULL) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/checkspatialmetadata5.testcase0000664000175000017500000000032512544707704023467 00000000000000checkspatialmetadata - legacy 2.3.1 test-legacy-2.3.1.sqlite #use special legacy database (version 2.3.1) SELECT CheckSpatialMetaData() 1 # rows (not including the header row) 1 # columns CheckSpatialMetaData() 1 libspatialite-4.3.0a/test/sql_stmt_tests/DSCN0042.JPG0000664000175000017500000046202712544707704017123 00000000000000ÿØÿá+ExifII*  ž¾ÄÒÚ(1â2øi‡ %ˆžf NIKONCOOLPIX P6000,,Nikon Transfer 1.1 W 2008:11:01 21:15:11"š‚ª‚²"ˆ'ˆ@0220ºÎ‘’ â’ê’’ ’ ’ò|’â z†’~ú 0100  € à €££¤¤¤¤x¤F¤¤¤ ¤ ¤ ¤d, 2008:10:22 17:00:072008:10:22 17:00:07  ASCII dR980100 NE4L04 d n+`^€–˜ 4JÐè9)dWGS-84 2008:10:23 NikonII*#0210²¸ ÀÎÖÞ æîî ö!ä ")/€ì  ú ‚  † ˆ ‘* ”•< ›œB žV ªb ¬j ² p ½:z  ´ Ü "Ô COLORFINE AUTO NORMALAF-S i$èAUTO 1.0a1G–2x~#ð#ð&È„ó@,-è .3JM} J È~+è:j""""ÿ¼ÿÿÿû6¬D Ö°^Ó pFR<Œ<Œ<H±Vý¢A:3ÿÿ”6ˆˆð¬  D‡ŽÅmŽ ¬Žj)§† !‰@rœ+1Ý7È;†= ;¶wwwwç9ç9f: d*Òò›TÓ €0;Ò,´ër:]ñ=ñ8ñ8 nLf B  eøA™‚ޝÛÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰@rœ+ÿÿªªªªjjj„<•2’»»»» ð_d¯+f…jE›èúøôI„¨±$eŠ™‡)zœ¥‡® »¼'x™§ÿ9yLÌÌÌÌú@ EAù<= ©.HB¾ÝÝÝÝîîîîÿÿÿýÿþÿûÿüÿèÿòÿÕÿßÿÅÿÍÿ¼ÒÏ”: ›löÊ6 €0peoœüú÷´ûÓ³Ò²²¶  üú÷´ûÓ³Ò²²¶  ýõ³ÿܲس²ÿìýýõ¶ýýß²Õ¹²Ýçò´ݲÙ²äúô³òð²ÖöÏþéïö³þùó¶Þñøú ø³þññÓÜðü)÷ýû´ýñõêæôõ*ò øú²ßÿõàáõø÷øðø¹îñöù÷  ÷ôö ôõû÷ òñ öùÿþôçõúüóúòþÿóèòù$!"÷ú ôûý÷ïäøü* "ññùöùøòÝüú ùB@=>"=A1!.""?%EFB@=>"=A1!.""?%EFBC;>";E5!/#"D<HD;E;?!<C6"0&"A=MC5<>?"=D7#2=$@CLH6@=@"><>#/B2C=IK;?>A#<A@$4C@IC@LBH@@#==?13C@PE:ICMAD">?@98D@QI:D@DBB".D@77CBJI>E@;?>&5FH>@DCKFF>A=@=>=JG@>ECKFE;=>?>@=IC@:BBJFFF=8þ:@=BC?9@BNCMP@9;><;C=7BBOFAM<68====D<3B?MD<H@ðNORMAL NORMAL OFF  DCOFF NORMALVR-ONNORMAL 0100STANDARD STANDARD ‚ÿ€ÿÿÿÿCOOLPIX P6000V1.0 ´¼(ÄJHHÿØÿÛÅ    ! #'2*#%/%+;,/35888!*=A<6A2785 5$$55555555555555555555555555555555555555555555555555 5$$55555555555555555555555555555555555555555555555555ÿÄ¢ }!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùú w!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÀx !ÿÚ ?ãE(V‘A?ÄŽGøÓŒpîEH\©Sô‡1¥ŠOk÷,ˆ»Hão®jGF‘$CühsŽvœS¸Ð˰ÒF$¶Æ €qƒëŸÒ«x» px¸éÆðGò¦Ÿ¼øNÇöxøÖýù X2ç9ÿ–‘ÿ…{íÕÜ6Íqw‚'¥¤QšBkÊþ(üV¼ðγý£¬"T„<÷ 74ly ñ¸=ó»b˜-ÏÖuK­gV¸¾¾•¦¸¸rîç¾—ÓµXÒ,ü÷Täåg7di©¿«,––‘T2H¡G89çùm[Û£øJäåËAëùÖez›ug? R,n.£ÛŽÃ-ׯ œ-’îÈÒ/d ³ùõªÚ¶¤Þåb­ÑG ~ï,7SžŸÌ~UrFTPäã‘þ*b%i/ .¨„žÜdÿõ…dø¾_:Xywž:õGržß×™ÙþÏS0ñì*ŠwÚ³3ú(eRW·o®}Oâ[DÚ=œ%—Í7>b©%U?ï ?zÕü&ia{8´òR@§ÏbÏ÷wc“× ¦i¾ –ÛO‚[+‹‹8îä±Å)L³gå#ëë\êöº:¶gSàï^Üjl3j—&ÒæeUów“'rÀœg¯±â½n¶ƒos¤¶ÒÐÈÎÖµÛ-NžîötE†6“ËÞ¡ßh'j‚FIǾOñ±q¬ê·W÷›‹©ZI1œ/=Iàt°‡±qîd¢3pk¦Ñâû&“ö†Æ\ã§ò÷¬g®†ÐØÕŠËáÛdRûü·$c‘“úÕ«8çÔü%k.«¹BJÍóƒøŸ§¸ÊZGæi¯ÈÁEÿk§< gñéJRLüägЕM’Lceh$P¤AÏ^vçóT’¨&À˟˜ ™ÕîˆÂóîý?ZÃ׉(à•.œûé©õ_×b–ß'úÿìõÿ„¾òLu±tãýduè¿T“¦°ÆGš}~JÕü,Ãí#Ï®íEÌÑ—o–)ÀQƒ•ÿ¨ºW‘ee `E¬Êù+Œã?—_Ò¹T¬¬tZîæï€¬LΑo&ðñÈ>hØväõô=ýFkÚó[Ów»1¨­`ªæ­ƒ¡ÞjWD­bi,qÜœîEjb|›u©]êzÅÍÅÓ¼“;K$>bI'Žý«*âC<ÌÇ9=9ÏÒ¢÷f¯cCH²3\0aòª’~µÒÞÙˆt(›ŒE"ޏÃÏéY·¯ÜZZ¯"Y|§ $Èê‚0ƒ'·ø ÙÒ´ñ¦Xp¹ñÓ<L±œ´kÌÖ+[œÀLã wrzçùÓgM˜)<î+^S+š7Š«iaŽÂ^‡õɪw l¶=3M‚"ÑãWÔ&6…ÉÉþ.Kùb¤ñ-¸½{D,¢€»dz4¦“-~Ÿæw_,"þÙÖ®‘¹†Þ¶ŽŸ9,-‚ºÿ‰àçMÚÍÒl¨ï÷?ÏãZ¿€Çí£ÎuˆÕ£…pØûBrqÁ sÛʳ3&…§+#É:+œòÃ$ãÖ°Vq^¦Î÷7þÏpú¦•,’f’0Ää–þX?çš÷^•­5fÌjl…¯%øÿâAk£Ùèp¹]7Ÿ0W#÷k‚;‚Ù=xÙZ35«<2Vò¬€?~cœgøGøÕXPÈüaP¶4{2¤šv›F¸y7wÏù·,~g„¦VÆï0–Ç!ˆþ‹èÍQ¡ ÁæhÖrÜGóÀ¬±ÔßôëZ-¸ÓÞ°›¼™´v9êAêÓôýÚPçw,Ê„Ž?ýu×tÎ[:ضØ#xXÿ–²åMn +g 09iÈhf—•¼¸ãm^zŒ?¥V¹WQÔ$8 ª°}cÿ:žå_cÓþ°Ýâƒþ={cø^ºo‰nAÓ@8Ï›žqÇÉZ½ d¾3Íõ;Ój"­ÙÌÓ,c`øýjªjVÏ£¥×–ÊðªW8f8ôÿ&¹”tº7o[3cÀ·6ŸÛÖº9gb#Äp=³š÷ÖôÓ»¹Nƒ'»‚Ú=÷$+ýç`£õ¯–¼wâñwŽ/.üÍöþaŽ d…x^LŽO»¹hˆ†ç?©Cqç†{ybCò¦ô*tÏÔÆ®hÖŠCO! JN[Y½æÝÀ^Y‚–!ÏÊ8ã'³¦XiiPÅ3q$‹¿ËÄŠÂnËæmvnœ*à ÐU ›ø Y™÷ ol ñX%s[Øã€8TCÜ€cü*uºgrUþUØr¸Ô|ß y™T1e¥FÑŸ|ÖV›,‡ÃÀÄå)SŒõÁþµlKsGMÖê9ÄŒ ã8Í5ãݪ'–?ºŸåYßrû¯ð.O êW#¥¼“ß cÿB4¾:žõüU2HÉj¶ûÕr¤d»ƒß ¨Ão/á™/Œåõ;V¹6Î_&`ø'Œ€j€Ò®#ÓÒÕU ¡S»w'ôük–2²±»ZšÞ ´’ÃQÓb’,·)*F>ðç­wŸ¼S'†<4–’ï.˜[ÂêyL‚Y½xPy ÓMÞìÂkdypÖ^Ëáæ£©ÈfÕ5)~ÏH~`˜8ö¯©ËøCKmCPWÁ* ÿò¬›ÒìÓ©ÔkZ=¶­™”ìÖÒ™c º½Hç§ÊzW7-°µÒ®mМÅÌ~¤ëJúX}K–ëçøqmR"îòùxädç9&·4û º…åÜ!e\±ìOó&²“ѯ롤t³,]êJ4é.#ÂíþÿðóŒšãÒýæžè;·ÏªTõ)9>üúºQÚ-„ž¨|×tH‹Û9_ÐÔÐÀpÄHˆ6ž3“øÖÍ£™“{;[é—vÅ06U³Üàÿì¿­XÑ:,»þà”gAš·°º–™LíR2©‘ŸöväöôfKg„^‘#¢·–Hp bÀ}:þµ bÞç£ü!²Ô—ÂW»Jjhê¢q°_iqN3Ž8 ¯Œšâ/¼ÚÄ+[G寧*«º@±“•-ÿ#;KøfKã9í@¥ÝÖ— 7#dš‚+²7ðüÝ*¥¥‹¶Ó´ð/ ¤‰\°Îëí\ðJÚ›Ië¡·à‹©îæÓd¹mò™£b@?? öÅfüNÔ߯¡Ñ­Îë{äðr ðd=ë…Ç?w=ëHè¤CÕ£ŽñF¤uN l‹kUòÑAÈÏñÐ}¢»_ÙC¥Ã s|²Ý6ØÆ:áwÐT=‡»l³iØt.Ý[%¸”RY¸ürÉ®Vþ/6Kµ^ °Ç! Á ¤q,Y#ïô?çÿ­YÉÙ2âµ,—77éÖ°µ ¿´Ú_´lß,H Žÿ9VTÓºf’} šô¨[zD"V´Bpx%œ?ž? uÃ:]é IØ`‹Çä+´ç(%»‚v’Aè çõ©–-ޤe\à®>^£¯5˜ÊšÈo³F¸|̃ïƒV4@E¡^ÞnOä*ÞÄõ,‡ wq(+±v¹=xÛÛð©®oêÊêW‘FëˆzP?AYÛcNç»x K}ÀÚe”®$t‹y`ûä¿pñw®Å>Ótë›uѤf™$K˜ˆ×kñÓ‚=¿ ë›´.sE^v2¯÷3ÙJШ÷I>d;f¡0Èšvÿgo2#ϬcžÕÆšGCLÐð\bÒ}6ÞXÛzOü³$_Öº¹-?âmy!nRì4aŽz{úVÝÓõÿ2mª0Ø;øŠI•Ø!dŒ)ÆJ…~¬w}j cöM e¸Éš3(~¬@#Ü/ó÷¨e™¢¥ü‹0ÜÙÎJ«ä^sG›þŒ™p öúÖu6*™ÆàÜÇw#p':sXpåtY]ϨIõÐÕ%k|‚÷Zäû*/"[8ðrl3ýº ;H#s$/!8Ú1£Ê·nÆ^C®í Žo6G!ÀÁ>Æž.c–Ýüʼn<xÇ­V`õ)êg# ÁFì`õ÷ü)–“4V ÌKw-Ô³ežˆË‘·jÀ#úT{#—Ew•Ê)¸Ê¨õöü üªM;úõެeðx†ëuŒHÕ˜3;TÇ$’§Bz לh——ÚªÏyz¢¦'Ê®2I>Çå[U—¹c kÞ¹¢Ê¥KJªÇƒ¸ñÐûÒ1(?)Œuù°{t®;èt Ÿ_µðܰÞÝ;IäÈŒ#_½'9ã?OóÅoé:ÄšöššŸ’ÖÞ|¥¼ûÀ ÍœŸPì;úš¿².¤3ÚM¢ó#&äÜ!FñÓÔä~ð¬ÍFIâ8ö* ycæçôQH ‹»Ç³·2 ‹r@$;âXº–Ïeþ=Öªý´ï´ˆŒùÀ–ü)-Êv§eþ¢€à‚ cï“ýk.ìš&ÿV3Œ÷üNjà¯ø NÂHd1ÚÃ(.äúAÿ×®—L·†TòS FO©úÑ2a¹{©Ã} ˆ·d6H#`Õxˆ'ró·<ü+IjÅkhÆ^Iûè–VÙæFFO8ÀïùšŽDtÒ €FæÝ’:ôׯµ;O¤Êì— áB°!Ç9Î?Ÿ'ó¥Õt(ÙÐ8[ŒícÁã¡Çô©f‹¯¡µ¤Y\ÝXÚ6²Ï%µ’0²´<™‹1Çש?NÜtM1¶v`¡ ÿŸ­LÝÅbÎ2)';›'©üªKQƒIÓ$ºœT 70<½ÿ•cÖÆ‡?£è÷ž/Õ"Ô5Ô0òá™ôþuè…ntXb"HL®«Ùw¶ãŒ}3ZÉhBz–¯/c½o“ A+Ç×ïÀ?©5Ìëwi Ûi>K|çm™ÉôÎ ›j3p$‚ø…I g+ƒ±Žÿîÿž+1dßs¥?ª¹É÷ZrÛúì܆ðæmPìR¹üë°BØr‰&TqqÖ®žÄÔÜ|„ºÀ|øÁ…p2G1g Ú¦B&BÅägeEÝÆs&sùÿ“NÓí1q ®ÏôùO$c“Ë׌ÔuÔ»[C Id“PTŸ~öÞÁ qƒ¸qÛëZVù²­ÀÆzžõ-]hQqTÇÛX’O ·ŒýÎ+×ï`Ö5èôà…ã·ù¤mØØG-ëŒz~yQ^ð7¡Ø¼ÿØ·6B›¿tESÀóÑAãŒßQøÕí>I`ðŠY8ÝyDK·|ÛsøÕËáH…¸Û»ØíŒò0m¢éÐ…R~fdùŠÅ»2?šÓ8~Àó¸ü†áP–¥=ŠÌ y*ñ¢ãûß*ŸËŠçž@‘ir–O“’p1€)Û@OR9l./îP@ß¡8c?çòÍr—/"Îé(á*Fzcµ]6­ÊL×RÅ´ªÙ…é‘Çé[’M"ZX4*îÇ÷zS{¡-ŠÆ\‡' Àœg8ãßÖ¬;TõaÇ=:Sc–äPÄ씜“ØðGô5fîhÕ!('œ ã{õ¢ã„T¤—™V9¸ýǺÐ>lð3À?ké——VW¢èD$/0‚[r¶?3|V•©Æ %ýt)Õ•EÍ'¯é£_©,7Ó_k ÁåF"mÇv \“ÀÏn?è4÷_5Š•HNy®y-µ!Öõ±¥éò1lÎèÞP Îì€?žX>´®¦U/sx¬yRÝU±ùš#µßP–ç§ZiVë{öç†?µÈ›”vÝ»ñäÈSn3uy=¼ê2̹í×®=yô§!D¥®ÜÄoíía)…Ý$Џù[ÌŒóîwøÖ5ë3=²Cs×æÏøT-Ê{—m½@ å»*yƒ‘“Øc§Ö¨iÚR0Y.QwF6ª^¹>üâ©»Fä­Y ®<¯—¸°|Mf·>S ]Ûsê0O?—ëXÅÚF’W‰€·™ƺy?ÐR0pT`¶8­Þ¦IX§˜®Š¬ç÷kÇ8öúTÉ¢ŽMÍÆõU €H"3ø[š¶ôQOZ›ìúìœLí¹d´jÒG\õǧš¿»¹½v½; z cÿB¨¶…Ã`ˆnˆòe‘¦ÜxnÝUä½[vº¹•ÈŒÌWÎÜaúôžªÀ·¹Zkÿ/XŽ< 0 ÿÚ ?øŸPÔõIïdŽÎ?²,¤™âw{ãk=~µÍÜYj—…„S4±ÇË Q…ÿdúwzWŸtÙÓnæD¾¹7B!"ȧËF-œ÷§jßê6<)äʃkÆXpGâ¥Ý= V/jzFduûEÆá‰ ßCëøz÷«Ëyg\\±X±Û‰Cí9Îó‘ÇPzNÏqjö5´ « AßÉ„Ct™É“]‰ùгdöãÿ×V5&´áç´II!ò{õë߿Ω$Õ·ÍvÏ>ñ†¼ŸÝ4öK¶›+ÊëGpPÄ79;²sžÂ¼ŸÆzkêZÞŠÚ\m+^[¯—‘Ðp'·QSkOȦܗ™ëÚ4íàË.LROÇç´Ð†µ¾só²XFFH¬khöÿ¬¯TH%‚#q J'˜­Œ€ÀŒ éSwÒþ´*ÊNçuxÂQe((FÚÇ©„œóœ|„uïPÙê6ÚmÔ·ó‰TChòJ#,Û>cžÃ…8ú âÑ[ÔêMÙ“µŠ]hÒÏsåÜÍi}Ç#˵Á%x˜msùëñð ñc[E]§…ÿÈkÏë[ÓŒT¤ý2&ï‘î^,Ñ­|áGž{ÛWK%Ré÷ HoÈÛ ·ð šÌñ±a®iž+Ôln㸳‹Dµ·3B¥[y–F ÓÕØöÀ­ðÐjR—õÐÊ®¼§;à)ßÅ6“]ÑÆççò7c#©Î1ø×™M®gè{¸ëûHŸoi}œÖvº]œqX@ò•H£‰BD>›HÀ –àö¯šÿh[0úŠ.¥bש\íÉàªb¸ï°ý+Ò÷ʛÞïõ,ÖGÙtè-Ì–¶âN\³¬Üã;B`FH9Zó_ê:gƒuD˜àÖ/À{™äSµ€£IU$ã–É ÎÐ+êc¨ôѲmõܽðUaxÊÝ×CäLÈ]Ñ#g`¿t88¾óЭ}ù‰éÞ¼LÅþñ[Ïô=<Âÿ®æ_‰-žëÀz¼>w³(÷ÚkçC,Ú$3Þ’èwBÿñџ¯¬$ˆÅéQ2+mm.CÍgµ É+,³0ã¨e#ž ýy¢_Gª ŵ°R|ËWWg¨%€Í^¼%̬÷<¹+>cKûWNžXmD–­+Í„dƒüAºqŽúqÔYŠKK Õ ½ 2ÌÒ1 ŸBÙÿëVïTd·-›¤™A"W·ÁÍÄH¤? O_›§Šåu] u›K™ìnõŸ/2–‘$`õÁ,ÃüôÍdÚZ³T›1m¼.úEúÝG8½|íöy2®íÛGSÐsüë¨oêš^Ë}\6W͘¨ÜúsŽŸDj¤ êÄÓìµX´ëëë„–V ›`1l¥rÇ$äž½;WмÇE‡¬°¯ÙUJà©V 1Êþ•´Z’º&Öv:+û‰#ð•ßÙã2܈îã\´cnÏåߟJ·³Åeg-ÆWÌ·*vŸ”ïÓ'ö¬¦ÝÕÍa¢eÉVan wm-³¬¸Îm<Œú’n=+" )Ïßa–½Cí+µ•Èϩ۟ïWÖ©ÿ]˜½£ö•p¦cÐkˆŒ¹X#‚Ž:y`ñÛžÕç>1Ñ.¯>4j­afóF$‡Ï,@]UWÇŸ\×ZvmKúØÆÍ¤z¿‡à¾³ð]”ù/wkÙ݆á²EÆppU Ïr—7zœþø‰ ‡†=7J×ÌÑ»»\O1´ŽI 0¹ØÚ\Å@,°ö“”¼Ë•¯1žR|Uf$m Ž„G>Üf—EDƒö«»“kùfþrl–b;uÎ+ÎŽ’oÈö±ŠóŠ]°|(³¯Žl<Ôâ_?l‘¡Î>ƒrŸø|¡ñÖþò纕¬öá-mçšhîÔý§Íå¼lò‡;°wt9õ(iú³Â›´¥è‰Ò×öhÖÇÏ’‘ºÈx>r>Hú!My4&ÛqóCÿÀOó­èßß·ó?Ðx»~ë›ùæÍгÈÑ^P>á8'ŸJ¿¥7üLÎâ[@8ö5Ò¼ÑÃ$“Vw?¥Ïø$Ž?°/ŒudVâçÆ2[É(?3¬V¶ì û3cýãøþ«ŽµÜö^‡›U{ìxúÓ¹â³3N uJ‘žgñwŚǂ>ë^&Ñ.´û+Û(Ìžv­¥^ßZ"…bZe³V–4 Ò` œŠo¿kŸˆþøy¢ëÒxHì[[»9tû.í.æ-4r”¹û\QEjÍ ²K3+/šªÊYdòýiN—4¯{ÛunŸˆµnÇÚ¿~"ÁñOàÄ/¶ŽÒ8¥¿ºµSaz. A;Ä$I•ÂÌ9=kÓ놤T*8®…j· QY )h(( Š( aš3@„¢€>¢šO4pÍLÐM1 'ƒIžÕIÒkšñwŠ4Ÿü,ñŒué$‡DÐôÉõ÷Š##¬0FÒ9T\–mªp£’xq‹””VìMÙ€¿¿à¡Þ%ñŸÄ} Ä^Õõ¯höÑC ø_BÕ˜¥ã/8¸•ãPUÚ#Ü»F:±uûC[ÞE¦›?hšÌ7f>8Ô&ÕåŠà¶KìŠ8‰UÈ#äcò’ 9Ï>&ÓŸ,[åþµ=ì4\)é£×S㯋ßuŸüGºÔµ­Cí·›#‰¼µòáAÕcŒB¨™<’kÃà gfŒw9¥k+.‡nRÔ‰¾Î¼d±öªÎÈX•àzP®É’ŠØH×ÌP.Iã¯ZôMÉmí`sËœõ5ÏZVV5¢½ë›|ë `Jôi{åV)Ó¦; ðq.ÖG·‡WÔ÷=Ma#åÔx›NÝð¯P$t(ÇŽÁÔŸå^Uûèú¯Ìí¨¿výÅø®éMô³êd&¦¯Ú.|àΔ‚PxsÈH;«Àεy¯è>(Õ%‘Ѓ –‘¡*aò€60$ +îäêIàõkkú$tùÜôo¾dö^5·IŒÐ¾˜< ¾a!wÕ|¼8ŒÄ ×ßÖƒvŸv1ƒŸÂ¼ Êþ×úò=L÷?®ì[¸ÉÒ® ×é_4k>o‚´w!¬î‹cÑaeïßš2ûòÏåú“ŽMrœv–º…„jg»†ßjç6R|Ÿð!Ü“îµoê"×YÓM¥æ¦úx)¸ÊŽ‘1ÉÆCc¯­l¦âôüN['£8øWr‹³s§øîw¹‹æ®íÖaÎ>V%³ƒþEliÚˆ&¼ ®ê—2,D²•”vÇ—Œúàò:]Y´vÔËÙ+êwëÑÚè†Þã³·C³’y;¹û£'¿G!©Å{§Øß¢D…e¼i¢Âi?tT?t€zä}+¨Ö`ò<_{pbpÊ•š4.\+÷@'iÍi9'wýtVÉé>"Ñ·s שkÆv‰bdW$ä–ÈãÉîk˜šÿFÓ¼ ñ–Üêv°Ãume º¦+uhì'çÚŠÃÀFì*°éÆéŽp~Ò-ì…ø]-•–Þî9Z bÿ+r>eƒ×‰ãÒ­éVO/í=6IÛö©K)Ÿû­y8Éó#ÔÄÊ3”\]Õ¬´9b²ñŽîášmùLÆ5Lø_*|{i„o³ ÅØØ¦Ö,8”/R3»O?™ê}zZÆ??ÈðÞ²—Ëõ>p¿Sì¹fÿ­Ô"œ ý+Ì­^UŸjÀ³î²gë[QZOüL¼]Ó¥eöêZ’kG…³hÐMŸá<ÒÑZöb>?•uEI+6pMÂR¼Uéãþ A¢ßi_ðM­~îíYmõO]]Ùg¡ˆXÙ@qíæC'ãšý:ÛºGŸWZŒpõ©f6øÒŠCTt«Ñ©økOÔ„Mº¶Žq”Þ¡¶Ÿ¦hå¼[xàŒWο?eÿ†Zâ[¤¾ð½ÝÉ_¶ÜhgCt« Ä*Œ³E"¨ ysÌa[t…³Ö•iRzlCðKÂ:WÃï xÇÀz$ÖçHÑ6¯‡¾xsàž•xƒPñ‹«kñ-ÊÙA'ú4n Ir†U‘YZËiʹzo–\×µ®þkoÆÃJòHþyo/îQ’æÌ1Ðxþ'¶4©§Óü¨ë÷ñíšT6ºz2õc÷äå £Ñ••ŠA¯;y\ö›p§knp÷“ÛÝxZ4,^æ;Ö21Oáe\sõÝùW7qº¸ØçÜS»¹Çdú”ˆBX.>¤Ó?wŒsíVAµ£[F÷ÂFwîäõ5Ü)1A±GÌ}EpÖnçe%hÜèô‹&–UùyïÇ5íþÒ¶Æ™CÛµ|Î"jMŸAJ<±=‹H²P¨1Ðv&ºmfÂK‡º´1&ùM«”Q– H˜®>Z‘õ7’½6>*_Ùÿ„å]õ;4¹_1XƾVY·Î9Î'žõã:É|1âKw)!xCÊó™ß*¢Fa!î7y›¶rÏçcåÙ_`´Ž¾_×àx1W—ÞzwÀ9>)ê¶Ó[ÉåÝéŽG†MÎCŒîg=w‰s´`Éçv¢×è.Þg‡4ÙXröÑ·_U¼,Î>ú±éàáoë©nTùÓ·½|ë{mh–°Z™€€?…¥!‡äM,½ÝM?/ÔXÛû¿×cżˆ›C~×3ÆÀ™å>ÀàôÇsÍ[mB ÆÞ)ˆ(Û¥g‘ŽùA?\÷í[Û™œ×5,µ;h`‘’õ&ƒ›h`#?ì°\Žsò–À8÷¢}jÿR™JŽ8»?p@> ÿ!ßëQËm˹ 6Î÷¾{Ü‚c9Þ— UŽ{rúr0;R‹›iî µ¼“Û:šrr®},HOÖ¦×w@´CZÒÖâ¹Öò–~fDJ¬¢Fç“Ð ‚=Jè ×¼0ªÑA$1”ÈddV8#¡È­’’!èõ1f×4Ëè'Óm.VEòÂÃ! •ñïÔ{Ž}Æ\­/¹Ü1‘Xõà‘ózŸ” ßB'=C;M¿Yu=bß•FÅÃ|¹ ŸáÆœå«LÜlÑôâ Js°²À>øQø“éEFâÕ…·4,"H]eµhþw|«oÜ^¼¿,è¿g{ÇZìË-´F-#M’ãÊ}Vù•Œ‘¬Û‡$+mPîAkòþÔÿµÊëé¨ÛøöÏU²å hš=•¿SÂ̾Lœ§![ †±QR´0ðNJ÷×çø†Œjóst=WÃ_ðPoŒš<ð[xËáF›â{X4ÿ.ItÝ@ÛÝOr?å«>Ó+f5Œrx ajïƒ?à¢~+Ó<¤ØkŸÒö;híâ,/3 ÌÚѲ¨#]Ç$ðÀqQfQ³º6– IèÏu±ÿ‚‡|4}zê Wáÿ4<5Ïñ«öÂñŸ®Œ·ZF¥|Ðh–“ SìÖ*ÝDNïå?”«$Š„)™¥póZ¶ãFM=ì¿_ÐÚ”yª/#æ‹M*M[U·Ó4GiærB-¤y:eˆDVvÇ'…'§j£âù.£…#Š(äÒ­&kU¸¶¼ nnHŽ›æÚ5çF:ÜõjT|ª68¸¡e³yZ]½ö“×'üþUFU†G Œ7zzŸjJWnÇ,£mYIãÇq }9¤H–[ ˆKd€8ëZ]™›±m:*ðcÇç]F—3_\–dÆÒ:ƒ^mm äwRÖJ'²xcKÜñä{b½ëIÓÒUc'>Õòµ§ÑÅ$TÑ/§Õ~3é·hTiÓZÚ¶Nd"<»rFWŒƒƒÏ§ºÏk,Ú%ÌP•IZXÙþèl öéU‰³œbº%úßñ"„½¤$ßsæ?i¢ëÂi{q&²ðó˜]dº8™‘¶¹û§Ïn½«Âü$±ý§YX®‘ä<Æ6‰¦ ÀUR…ÀåòÈÊÆ`{ÌÇÓÇá—‘ãÇxüΣà£=¿ÇýÊ„CñÍ0Œ¢:yjìÞåØacˆÄL~iM~•hé³ÂÚRç…¶EãÙ@¯'4½•ÎÌ Ý"ìÜc#óŠcÔ-¼%âo°1û}¶©4ÖÜÏ,x<•àñ\Ùs÷šô:1©Y6|úÞ*Ó'·”›Ð‹gËe(Äv Qì=:WA¦ëZ1Óíîv3’OÚ6‡vëœuðÿëná5±Ê¥¡q£¶xÕ®³ 'sCo¿¨ôÆýxÁ¬ÛfÖ̸k³;v)”d0÷^ÿ†¨‹æÑ”ìˆlu/]ê $ Ÿ&Ìþ@@¸ëÔœÔõ´Òi“BŒ/¡·vC"K4tÎ9ü1Z¾m™G9©øÆwn`µ¼‘´ÐÁU¼³±Îx?tÏ?S\^£à_YºÌòÀžÀßž1ÓÖ½¥c \©áRIÿN01Ú®:JÈÍê®Î Ã׿_Œ:Í·ÚšK)w1‹pl€|¾¸ÇaÐîîWÌx¢ÇÉÄÈ}ñœzôã·ãJ¥Þ¬¨i¡Ô¬2¤÷Q+̉ˆ”ƇǮ­biÃf¿ûàZ´6ô$˹?Å€^ýñzS^¦‹âÓ±gT[GÙ q™B±À“#3ùsPÅ(ÿ„nÒõã,£F‹aÚÜeðß‹~µµ]õ& ݺ7ü–ÿ„噌 :ÆÉ•ܹNN>½Áö®â àù#[¥¹2k6²2Á‹:tCnqÎ6ãÕ )ËælëÇåù›¿ ¡íUTm“ì|•Æ?S[ºV›ö_Œ¶’´¦q%ˆ˜ $êÿ6ày8ù•‡ãžõÉô±¯÷¿%úžùá×yµçxÜÅ:iY|ÄçzîSƒ×\×ÌÝåðÕó»«EöW¸9l·œç»µ+rFzþâ^qø×À°>lLÃÕOj뢟#õ™XĽ¤/ü«ò/´v©"ýžåÖ69ØÝkgG!§¹*Ö˜LÖñæÝœ +Ù3úéý…|)wà¿ø%/ÁÝPu77Z¢»w}{=ìc<„¸POãÇJúè ôZ±åKâcÆiàñÍfÀü¶ý¶´?k?´ïƒ.5ÍBÜü0²³i4=&ÎYSt­¹¼¸_)@!fDL<€"³,³nø{TÖôëOË&§p¶²K4Ÿg„¬AdØÙ;2w áˆÏzð3:œÕz$­ùþmŸQ€‡îS‹Õßü‚âêâ}7í&Ö{xj÷‰ãÂw„‘¹Á ‚89ÆE^´¸³»7 ŽÖ×2ɆµŽU.çô!º£Ö¼·tŸ.©º]_rÚé±7„%’úxç&Ýo$‘˜NÜ…'÷›ºr2TŒçñÏÕ¼7.§á«;›{tÔ¼¹ƒOoÈ+´¶Ð¨Û7y qŸ@+XÂVåO]ÿà9EkÐ絯 h÷:¨ó´[;k¹$ghÚ`àĘž<0U¶’ë@´¹Ò4ok^¶»ùnì¬5É ‹Ê©–?7æ—m9Èã½tÓÆâ(Tq¾ßpJ:”ÓµÏVðÿÇ_Ú I‚k[Žúíňžc›Qx¯^FÃ^á7ÎàÃv¬ ð=b×öÞý¤|;¤©Üø;Ägc,³_hÒÄ줵¼¡v¼0ªzdž‡ÓŽ>ø‘_->X(7îèzÞ•ÿñ*iÖsëm.`[e7—6)òþp>y9`ùSÑK|׬hÿðP_†:ž¹­ÇÃÿØ[Ü0k+£§ÚH’ô¤-Æx“ÌL&ÿ¹œäíP­†ª¯[ÕSÂUƒ¶çEíïû=6¥öMOT×|:6Èe¸Ô¼?2Ç ^˜–ê6†Çñm¯¤þüQø}ñG«©øÆgŠí’Ú ®Æà4ÖÂd-ı ß,Ь °  odâÜZ~‡4éT§ñ#¿ü(Ï5™ˆž´”¸RS™¦æ© 4„Ó…©3NšLÕXçšBx¦#óÛþ Cñ¬ü0ýƒ®¼¥Ülj<}$šB#2îM<(7ÒxÝdVGŽÙ—(À]ïV2:Ž ‘ßÏrñ´ª¹ŽŒŒŒn9ü‡çE})F=îÿOÐ拉ÌÉt‹ï+FÔu©¢UòChŒªs#s» §¦ ¤@ìq\lš¤þDÖ |Ëf1Ôžw?Ëô¯:)Å•¥Ï+˜·) ƒÇ~qùÕ À ?^+Tìq½Çäy[elàcvEIî]xr1võ4žªÃZ;——87—wuÒ½Ã6G Ë“ó}Ïò¯/&©Øôp©:—>”ð¶’UbÈÁÇ9®›WÖçÓ¤6vVËtdˆÆrœÌĪD sµÉçøHñ_?BÖµžÇµZ|”ôÜ×ðý´vïƒôñ$rËmpÑNaÆÍ»œ`tÎsô ×¾EؘûQŽº¬½?VNÞ›õÿ#çF[ÃFÊ!¹¥kësÈè&-_-øFiÆsÂ…o§»I •åžW(X‡ä`Žá/ܳý¡Ê×ÐÒjT¥èyJêq^än|(qiûAèj?tÏ<‘Ê­6ìÇ.lÍË@Ç͹FVØWéž‹)ŸÃVŽùÈw_®×aý+ÎÍ5‚·õ¹Ù¿?ßúk‹3³ïcvZø›â÷‰¯'ñƧà}æ:ùÚ]Rä8"Ò€¶ãœ/‰Ï Ó ×YlïÑ_ñGV9~ízŸ.#]°¾Ç–au8lN8ÁçœÔ÷/«Åkö‹ûXî#, Œ°>¼œ×µìÔšhò­¹×hú'†Ü¦£3YJ›ÕTŽTŽ8 šôk_X<ɨ^O,Îs!žé–@–û®6öôèIíšÁB1wHÖ侀à˸æ)b´mp0Ó©WSÑ‚yöè)t‡úŒ÷îí"$ *°ç>½æi¨¨õw=¯N𽵪@ש=¯ȻƒÁÈ Û¯~•ÔÏ Áq›yÊJ¬„¨ —ê1êxô¡·1[Cæÿøb=â½ë[£Y݇FŒ™tgäçðàõ¢òHÚê ã\E4rƫȶxeW=ùô­õçºìfôG”ør!/ÆcS·*ÑZ=ĉ8,?/®05èÑÜ]ÜËd× »Kk…˜t!A#ž¹,ZODÑÒ½Îîç_ä4jHc†ùŽáŸñ¬i­d}yæ[ V €FüFg§ÍÐúŒ¼s[÷JæÿmØ×¼’+K#:/´¼ë¼îDÄl9!sô>õ•¥,w?´£;ù1.–ÁÛµr<ñ÷­eªdÁÙüÑK¯I4H$-&X}âRFP¨ŸqÛ8¯5ñýÖt;›V³Xä}j؉|ÅËìÂcÉêãjúŠš*ôånÏò5Ž•ãê¿3 ø])†ú\t•„r¹Úž\ŒOæª?ë¼9h¿ð±ôõû<Éo²ÃÇ›u?gILA±ÉO4d“œ:ö žZÒOúÕ†57[îü™ëš—V_õvÀ–Þ[9•÷*‘ˆã=~p1œ·ó—Çôû7Â’Â0¤ë—Ђ]‰*–ñ*õ톯F7qŠ<–­)?Cæ?Èaø%á;,•+9²ˆ£ÿg¯0µiüÑåLŽ››ük²½ý6,g7Ö[Ú?’.Ì×E€žÕO_˜/ÞüksB%b³Ž+d’ZR¿?¼¬Ïß_ø&ï‰}7L[«£*ÛÃÍ·—n™?* /„[Í~Ù+Ðs”Òr8«¤¤’ì8/=iáEfs_·Õýµ‡ü*Ð÷"ÒõÆ -^@Û>õ aÆ>bn’FvšüÝ´¹´³¾ºÓ­uKE‰£'Ëhÿ}¦MÍ󌂭Ԩå[€6­|¾a*Ö]R>«+a×̽lš›%Ä“I朧l,„² <• †ÝÎ{žæµ4ÛÓ>žZßR´óeG‚ì)+3qŒ`Œtàð=«ÇÝ;ÿLõêÚ˜QÜÁ:‘mñù$šÝ 9Ààò–uç©!Ó ýÚ¤žtR‘öÅ»šO9H‡• Ø=³Ø‘×´e6䉒’·+¥[év·ôc=ÅÊÆTÚJÑÇ©o— °+·8ÜW“×ö2x¼ÈueÒbÉq)lpB¶À°Â’: ¨IÎ\‰hÿ¦)+''º: „cz¤WA% räó`ºäAÆF8ã‚kööEÐô}ö"ðôúV—m¦Í¨Þ^O|Ð[ÚâUº’ò`Ͳ$PÇøUG^¶ñ©8Þÿðç—Ž“tbüϦhö¯dð¢i¦©m&j€nzÓIãÿ­@„&šx«@4ñIšbOµ!lšvùsÿ‚|r“âïüÅM§OçxgÃñOèJ /ì%›‰^7ó'i™e@›¡†\¦kà™uTdƒL±Pç"1,„"³÷‰'g$“Xb¿‹Ëk[Ošßñ¹ëá=Úw}R_]-šÃ¤DG‘b¸©ûÒœn' Ã=²§Šá–$ ZI¶Ê@'2}k™èC´¤ÌéÄY?1Ü=AÊHWÌØ=}jÖ¦MjKy®`«’p1W^ÕŽ92 à1ëS'ÊÇm v–m±$'ç0š÷Ÿiu¨4… TlG|׋ޒå=lu»>’´¬<=qsBYb…ž8Ùö‡`8\öÉÀ®:ÊH­ìo|MxEÒÇ4‹§€#ßq;gÍde°Ç* º¼¡ àÁGIK½‘ÙŠz¤u> K§+;O~ºà7m# ªþ[Uì6…+Àe8"¾‚¶¡€ã=ÅscßïU»~¬èÂiMß¿èÖtß#TÔn§`!¶Ô5§ ’=ê šùÁÀYü`Òä–_Þ:†k2û°ƒ{·Êñ´|©ä޳={˜wÍIú/Ôóf­Qz‹à&Ïö€ðø¸òâHï–@†ÓRʹlü„‚øÂ)sÍÅ~¦h‘ªøbCœ9éÉ$Ÿç\™¯ðׯùsµëúñ7Ç7øo¬K¢é·:®» X(í$e…YXíæ<7 >RÊÉÊ@øB=+Sºñü#–éþ)ÔîÚç˜댎¡'?펃` ŽB•M¿él^+šuTQݧ5]kP’ùâû*Ìû¥ŠU1ºdçnqÎ3í]F—ðøZ°‚çH·½„7úÉ[#èAÇÜçÚ½·u±åXè­Á£Y£ÙØÏçŸ6{1𠀿*œƒßðÍiGªøyía2A¾ê2¼Bëjîá¥(yÉ!º—UyU¤‚ïÎóå%Cü¥ÃF ޼gð¨dd5¬r Íæa¸„(8Éõùÿ Úœ®®ÎyÇ[#…ðφ/lÇ"·Í2\H@ÈefS޽ÿ òÏÍ2ÜÜÁÑ<¸‚Avàr;`‘øf•û™?&m÷˜¯5ùÇÃY>Ïe¨\>R£iœ£ƒõÇnÿŸ¦éb9OÈ#¹‘WŸ•×k©ðäfCm÷îTVû-NnmÏÚ/ø$ÅäúŸí«ãÙ¯®^i ð|ëj…¾TCyk»øà¯è ìOÝG%z§Š–s›¶þ¹¤ë_¼ àx®­îµ?M¸¾Ôí ÆÞ9äÈrÍ€¬ZÙö…;Ç”'âkÏ L`»»±ÝXˆB´Ü¦S€>]Ù#%G gƒÇAàc¢•W}Ò_ާÒ`Ÿîcnïó0`ÑÕôéôÔA=Œ±‘öe$Ƹ«¹9~œæ²bÓÚHöw7P2;ŒÏÙ‚Ìp˜ôÈ9à/|×…£Zê{ ¶yÅyõ+àž§4·¢òËÈt˜€ñ…s…Lº)†à+»$yå_³%lj~1ͦÇâ84;‡µ“ËŽñ™R踩aÐ3žH8ùHÜWߣ o )GcÌœ§íÒg sã+Kö–Ô®4fâîÍõ™›rÊÑyÐy§Êr‚¹P¤« Žõ÷”VRÝé¶“¤¢è¼ Vq8bÒâBâ¶2ƒÁÉÉÍrãi*n1FøyóÅêsþ3Õî¼ð¿\×îLÖ.XÊ,û[qùˆ,¹Î$ãŒWš|4ø§‰ÉÓµ;O°˜quhÛÎÒl€8äv g5Í;Næ’«iò“øâ燵o>ƒ ’×MÎØ.‹3`ăÉà1Œz{×±:y·Ö-¡iö×Ö»Ùæ¹7Ks‚[*­¹ŸqoBsóît}„ï!*ޤlù ‘">ë–‘bÏš·xXòpª°.§9Óad‰!oØÁ"Ø«-öG¹¾¿öjô0ós¿Ëæyøý •ºþ‡Ò9ëE{‡Ï‰EˆsL?Z´sŠJ`!S ì)¡ =é*Ä4Ós@ '«å/ÛCãXøûøÇÄÖw2Úø£UŒèž’t’+Ë„qç+ˆäThbY§]à+4*›q]Ô\×6Ý}:‰¦ôGòy¨ß,w¯{8/åð<Æ—ʤßB¤ðö£,FûÄ*†Ù,—m»£c3ä. °#žrò&å:œÍŸA¡NÏúèyæ¡4—7ÌŽìê•Ê( -Á*y%—ŸJWÔãÝ `£2ÀŒSLCfD«ô9ÿ Òæv5m¬š+í`ƒæ6ÑŸNøý*ÂÓ"©Éïë\íÝ›%d‘ÔÙÛ}£Çº¶3åý£åÈê 8¯¦~éea•¶’·~|ÿZñqú³ØÁ­ÓU[½k\þIJ‹fŸnê·÷ÊnS…†ÒvnS€ØßÛšã¼S®[®›ö=šÞÊØ­®—±Dçz«Üç#"0É´|ùm§ µ«l<#IZ˜Õnut.üq«x³UºŸ-o Ýœ¶ö²}ØT¬ñG´ä‚y\ž¡ÕÔ€W'î;x¿Ñ‚°ç=Åxù‚¶"ÞHõ0šÓnÝO~*Ë©[è> ƒI‹í”š¬qÇ º$`ö+¸Wƺm³ZükþÎÑ,z‡–]mNÜ–‘8gmÍ–(·œØÛŠ÷0¶TW¢<ê¿Äù”õžËâ¶§aùhšœ±:%Ñ8Ì‹ÉX×9Þcå/ä§H^¿V<;)m t<…œ¨çº§ú×6e­ͰzVk×ôy¤i±økSÓà²KK{á+\}—0—i2]÷&v$Àç<ç<×øᆓá]wP½·ˆËy3à<‡&8û öãùz ùÊUeJëÊ É>ÇÏÃÆš÷öÙ†KÕ[v‹ä!ùã}þ¹®S\ñ6«{¨­¼2\ÝNÍ'œJ'Ðã¯Óë__¸ù´®Imqqsnßn"+”G˜à‡²HÈ?ŸJÒ²·ÔãœÀšmÅΟ2îhŒ[¡áºuã¼µ®À÷éÖVIwh—2Ê+r3m> léõo­Z’óY»¶_µh×Qu "¶üÏÇ52»E-ÈÝëPY³yv>\§‚¢l¹=¸Œûðjå¼÷Í43ùN™‹íàŽÊ{ÿ…q=§RzXÚ‰VoÏ 4ˆžrAåIeÄô'ééPê òøNE³ Kåí•Tc.W ÏB:àv9õ­Uù.Îw¤š0´=oV‡Äºn¢ÑÝZHt#.CëÆ0}þ•ÛZiíƒ{«YYyyc€î‡dúäþuÕ&šûŒ š•ý-VêÕ™d-æFéû½:xg#žO¸5®d³Ó¥K8$ÓÂŽÀwA3ÏN¬xÿë ‹h;¾c2ç"îDŽ1‰J!Îó•%¹õ<ôã­.žÎ¥³\ÝB²&xùåËq×;GâzzMÕ’-év±JòK,(Á™£;‡ Ë’=0OèO­x§ŽâhüD»á«Ün8ÆOÙlÁØ`~téi†•»ÓíQGoà»¶ø/P·-,biâæ5ÏÜeaøƒƒþ½zU‘º‹âÖ×HFœš"ß‰Ó ó²ùF3´ʪ0<à‚;ñÍA^2ô:qí¬F×äxÆ­GìߧЏ†d±@Œ“,zêM{_Ç;üÇàþ¨×FK¦ÐLðÆòÒ;ÛÚFäw8hËÉËžp+º’Rå¿—äyÎüÒ²>9ø™_‡˜œ’íHú,üUy}„w%OÙ¯#ð3c?ª í†M«ïùšâÔž9ò»;/ÉÝ‹Åe6Ñ#'z–÷5ÔxJ5:Ö”%8„Ý© #5Ó^OwTpÔçU=åf~ÙÿÁ|0.~+üXñ™˜ïÓôxtß,¿ö©„»¿±ûê¿xÃWtnâ:¿ÇaÁ»w¨çy…„ÆØ+ÜygËWm ¶8ààg¾ÐÓ±ÍsðWÄK®êµ·ÄŸøÎîÒj~#/¤Ò˜´a-ßìÐÅ›²,QDÌUFá»"ªOa-†,3Y1l,[É"ª/TÁp:t=ˆ¾S1“–*£è¾íÜ}–ÊŒìK#]¾ŽñC¨-”Â7ÆùyL.wmV€ôœ`Xö’H4†MA"¹ÈK\ïØÄ‚rk2GFÏ^õåÆ^Λ[R\ó²èxgíkyoû6ë¥aD¶™íÖDDËcÏFÞ[ž7¸Ç=Ï¿³½·ý¢¼zÜ4ð_cßlL¿Ö½ü ÿdvîÿ#ÊÅ/ö”ü—æywÃû6Ÿâ È$!™º×òãŸjý!Ñmâ½ðô$¤‘Ä#ܤ{ŽÓÆ\…útïÇ g™ÛÚ¢ðwPg‘þÑ«éÿ²ììŽûS‚ÖäMlñM ´€` 7™\sÁ#·ŒþÎîíã-vÊo11áë‹´tžH‹„dÂÕ€$®ywñ­ðjØ];½Ì±ø;gðè.©ñFÚ]BuŽÜNC°(å¹ùT`’x8«ô¸¯Ùå†}>h•B„ãËAŽ3ÎN9ã'8íŒÖûFªFØ[¸6p×·ž,¶Öï"¶þÏÔ£ŠåZyãòÙWûû[8'®Üûàšýý…o|uyûJ™æ©ÃÞ”tÅP¨È¦!´ÓßÒ¬oÅ.ð§‚<)&½ã/i^Ñ#p¨k:„VvêÇ8S$Œª ÁÀÏjùCYý½¿g]/án§âk]Rצµ”¤:6Ÿ¤Èoo›å‡‰_j ïåÁ @`V´Œ.®Ý—õù0”Ý‘åðRÏ…÷Þ –X|âȼJ!Ý…Å‘ŠÑ¤ãä7,¹ž¢3ôÅ~nþÛŸuÿÚsÇž ] DºÒtèÌNˆ-æ¹ÞÏ&é™&Ž-²«G¨‚”)! e«)â#Jü·m¯.ºwìzTðro™ÉYzÿ‘ñÿÂÿiÞ²TÓ3{p#—Êr¹o6Vˆ’A;6º“óíýÙGû¬3å>&™ôÛ(´w‘d6ĽÁTeýáÇÊC*°ÇLsÒ¼ªožòØïÄZŒQç¥CFÏ#²n¾^ßZ¤ÂÜZWú úó] ý5­5$0C:ª‘q»ôÍY‚Ö «± 7VcÆØÈüóŠNM+$úi‚6HlÕ×fÍŠAþ¥UNhµleXdþ}ëÍçvwêw¸Ý«t;?NÔ¿á`½±*­¡•˜ 8R^8Ï“_R|,¶¸}At?Ò#sf28RN1Þ¼ì{\–ô;𺿼¹¨—Óü7®YÚ¿Ù$—W‘eT1ÜÎqÚqŽ ìAÁ¯¼ÕaÔüq&‡eýŠ,G,‘ÄX³G"°\äð¾bO2Kœ ÜuÐÖ ¾Ç>ŠmùÏÀ+¤ƒÄݘ™ÛPÓZSæ|ð #Ǹ”H¥÷WßÑC‚Ø8Ïv¯2V«wýlz8?ážOâm>?øOµ9ä+²9-.v·@FPçðÇå_ž‘ûOÆ;›‹(7ï¿2ùÂ2úÅ`LŽØS†ŒaGO%Í3çÝÂ&é¯Eù]giÊýË~ iÿáwê1[ f»—TýÄBVwÎÍUQrE‰ ‡#,•úðÛâ7‡|Mmm¥i׆çTþ}äkU‰€U#-Ôç8##ó\øè©anuat®ýYë¥KZ‚Ä–=±Ò©El±³<¶I&¾A;#ÞjÌüì{y/Ü^=Å¢ŒGkYÞzdœúÔ±Ý*!{%£Ü²óµ°1þÒ“Èÿ9¯³{Ÿ5¨ûKÉî金ö3 Ì$ee˜ã#òúäŒ zÜj²Núr\-¼bL`H®ˆ{^¹äýZÓm‰±·—-¤fMCÄCPÚl¡cð$¯â;VEÝì²\µ…¹òÆX°å€Ïn¤ðxD¥d4µ/G=¬©$ºj´ïÎežO½eK,—WÝQ9WˆóÓ 3ÐúëŽO]5:ö6lcY­n-¤à4lÁa•ÜàóœàÒ^Y´vòTùݹòùŒrsŽü€3ךêZÀæ–¬ç>È‘Þi—‘º\*È¢æqæH#œ2~™ëŠô«8â~¥r·?kV’mÁ0 ©<ädž¿LV³m%s4•ÙeT[O%º#¬X¸ä1Xÿ™f¨ï­¯åðÕ‹;¢]ù²Œ˜÷.Ã&å^½J€ íÖ´I]zÕîsòüÚ¶Ïw’s´2œ½3°Uý¼ùRܺ¥¤í*²7ÎŒî瞃ø‰ëž>‚¹nïSt½Öoê–×°Š[‰ 9ÀÜLùœóêkÍ>%ÞYÝk3[ÌÌòÜOs°¡P#xm•NÆÈ ”f¶„¿Ùæ¿­Í(ÆøÈ?ëcÐ~ƒÀ¯zœ:ߌ¯±†NA鞟λm-ÒóÆ‚úìöÙË’YÎPTäµ\óÐÒ~FØå|OÍ~Hùã£Eÿ yh±¼VJ% Óqÿ“ ú7â¤æ_Ø/ö|‰J_A¹|äVvÀ8Éã¯ëùoµnËò8ãüGêÏŠ~(܆ðƒlBŒÄ.eëýÿ(ì•åv¨žS­%tï$g¥táÛúºwþ®룧üF9¸×šó™ö¸Dú/Èmݸ,d™ähÇ "1Ýž2q{qŠÈh%]7ÊuT…#7X‰WÁ ° üǧ`9Ï5Ÿ$_6§KÕûº3þ<²þÌúܶóµ¬qIV%ȸV¸BCä¿1Vã'+‚ICðw|`ørÛm¨åó×*zõëépnøgêÿ#ÈÄÿîüÏ1øqnÅ„¼a¿z1“Çøz×èlá|6—9náh4Žwoïr=‡Ò¹ó?idm„K—SÉ¿iv}Cö\³ìŽ++ø%‘P•‘³½ñœ0Ý&xnç=yìÿ§íø”È©¹®|u×<æhñ]I¹aþvü +E*ÿ/Ôó_„ÖoŽã#;KÛå$`‘éëÓñ¯Ðh´{‹{--¬% j›b\¼¬î¸û¡Ž~nùöÏד'íÕö:p©{u'’ɤ÷"Íռ˟›s# |­ÜížsëÏëÏìv—‘~Ãú,Wr;ªê7bqþ­|Ó=‹ïn;±­ò÷ï?C—oeó>¤¢½Óçš{Ó@%6¬ôíI“Ú'Ò˜sž´Ð =i½ªÉ?ÿà«_ž/ø3àþ…¨ úpþ×ÕÄ2[È#¹‘J@ÖXeŽ팪´wŠpÜüXÿ„ÃÅÇ'“©^<1P³p9úÔbeÉË¥—ç¯äÏG ÅÛúèRoëÛÄWÜYå—¸ô©eñf¨ ßý»z̽|ZóåS²¹è(G©¥£ëzÄ–7Z®©4òiPÛ±Q3‡IØ¡ ²2°$œ©ÆFpr+É5;©.µ7ó³;•©«èsO±™:ÂwÎ9æÒªùk"6õ‡÷˜ Õ+˜´ˆöE³&BýÏþ½iÛ[›xur¾eì@¯·?ʉ;n juv²Ú^üˆ§Î![ ®§O±y­í‚ȧ9=kÇšq—+èz°´µG¡iV†ÖPŽ’èÐ'ýòÈ•õ/†,‚kw¥AS)W#oBQIýk‡öô_¡×…ýYÂ|FèÖzõÐ|1ÝÁvB·%Y0öåç_:è{!ø®±³ÇQ4î±ÉrØÜ‹+ ±ŽŸ³ËÈÇýtB»°úaÕû~‡4õªß™é$EøÅ¨Â¯˜’ÍgaÎT4wq±Ê˜ÛÉ^ŠåÊü’¦?Eâä‚}kÊͪFßÖÇ£‚~ëþ»žCñ ÎYÕR5Ï™§[²àw²·ä¯¼idší)©Fˆ¾]–§ÌÃ] ü¸fl(<ãÌŽx…Mz¸^‚~G›ˆÒ¬’îuú¦Ÿ1µ¸jºµ®ôi¶&Ü78ß R„ÿÏ8ûnS^¿û>ØÛÿÂÂñí…”–Úz@$’ºB:–l_¡`8»ŒÏÿÙüŽš ý§O3ìhÀ)¼¯óªÛ°ŒzÒ¾=j{ìüÜ´±]9š]2yïlNvÂã¬ÇŽGPã] ¬·PÚ$ÃNó”ƒû«£´dv'œçÓ}µÒlùtаê~!¹HŽý*î}•b_•{60åWžÏV·Ó1\Gs¨¨Øë±Uäþaƒùç­e)¤ì¶csŠÔu}FÎíb1›öWÄ ±çÜdÿúÇ8«¶‹ß·†-÷‡;'–pUXúŒ°ýjš5IìËò®­"8oï¾û(ËQ¾˜Çëšuœ†m†^d_¼ªÙ==Ÿjçi=Q¥ô±Òi¬íæaÄbÁÆþ01ž¿J‹V“Ï]b6¼f3s h×דÈ-žùÕ¹la%­ÎcJ»»Ñ4Ó 7ÚíiœGÔç< “Ç<Œuüúˆ5.®-PÏ«+®Ø›æÈ*ƒ° €zsëÓi¦Ú2G_j¥ËHCZço98åsý+{R"=FÅËÍ´‚!cÉëÔgÞâªZ[úì%­ÎQƒf²–ñ³) ÀsŽIÉ#?ð*“ÂqKšì2âi¾Ú¯ò‚@E'æääqƒÀ©jí3Eð³b{†·ÒÝžQ#ÛÙÜ9ÉåI9tÈþkÈ|eysyâ½í1¤S6–“J¡q‰‰o|p1ži(¥BMïÿþ¾ßýlÏ[ððâéB¾ÿ´–F @FGA×ú`zÕ¯ ëoÿ ½þˆlßV™ITêë#H_ž«Œ??ÞÆZÊ–—§ùšcÞ~¢SùèëaÕ•÷üÙXçþß&ݶü‘5ÃÊÒ“$ÑÌp>dúõÝxqŠAæ(R)ã8Üyüë¥$’<é7ÌîAÿðH¯ ý‡ö^ø•ã ÿÈWZ¶ÓÇóëÉÿ·•úì+ÐÂ:·ñðÝ©rph1? >&êÑ?í‰ñZÆ2e›þ+ö‰â“%m~¸ùŠ…=Éì5É:\ÛIh…§†k}ÆI/†%cœ‚ƒÉÇÝŽxÅ|v>ísiï'ù³ìpŽÔ ¼ß´%ºL£Q.EVò­À‘Øeˆr"ùùã÷®bÎëÄpê’G.Ÿgkö‰+¹.ˆ“a8FòÊ ¼àŸœþuå$¹nßõ©Ü¤Ô¬ŽoâN“­øãá߆5m2ø+M°ê:[‰Õ0ù Ã,©¹J“ŒäwÆOž|4ð¤> ñ†©k‡R±Ó4›{ˆ÷Í£:I,²X3A†l’ÇÃÙÃUŒiòyßð±ÁZ—¿ÍýnyOü!w¥üC»Œ\Ù]i«zÉ Ä—°FeŒd1ù…—#^ ×Ü>EÞ™¶Ù¡HT¤{]ðѮФG”Éî@ NsŽ)cj)Îëfƒ XÙô<3ö‰³»›ö{—ì“,Ëm¨Á%Û)ù|¢ É?Ç$yã¯éÅü…£øµ¥°Œ³LHóEÚº0rÿfÛ«üŒñ ÷úöýO0øSjÑ|Aµ‚Ft„‹“¸•Ç® Ò¿BcŽk? [Z³Ao œ›fo‘H#IÁüI¯Ò¹ñ÷Uc\/ÂÓÜšá£Tù†ù6$lUãÎN9SíÁã¥~º~Ê0}Ÿöðp3yí$—Ž[n?åòaߨ ×.•ê8®ßäsf+÷IùŸEÒf¾ŠÇͦ“Tžy£ñ ‘IŠbzâ›Í4vçµdëºÆ•á¯k"×o¡ÒôM.Ê[ÝBòvÛ¼!y$cÙUT’}^îijøöý£>*êß¿jßøÒüº^jÚŒ«N“}• Â@²,q‡HÕÊe@[,I?<5Åâ)†0À Oé\ØŽIUi=:zt=ªTàšíbÌz “_Ã!QŸŸn1ÖŸ&‰=ãÃ%“…˜ôÏjàoÙ»½ßïce¹»â;¯°höÚLoòF‚YÓaÝ\“€z„šóµò[/3Î 8lgÓÿÕ[«¥drÊÒ¨Û+9· ïß’øÕr#R‰e<½kE~¦.Äö¶ÑÜ^WpAó9aŒ[w!¼Ï1j•T1ŒXÍûÉ2Ò÷n? Ú4ºôl©¹ŽB(È!·pò‰­nl—s$ÁXFeºœ®*ã¦P’`çô®4û§Ú¼ÌÑûзŸèwà“NWþ·<çÆq/öôaʰm2lî=ƒ'?†kóÿÆ|WµÍzôGw¤ EËö(½2·î IY‹€7m,HøÿXÕéeï÷ùž~)~þF½®Ÿ«_kø~ÜŨx›Wt}Já?dU?,?ÝUŒ*ð¹ÁF<²µ÷/‚¼'iáOYi¶qíH¢Áfåœõ,}É®Ê¥í» ^lï òŽs×5\²ò¤ çŠùèžÃ?=.ÂÁ;iV)œ·î³"ç»~^¸« Ò\³µ£4,ã÷Œàn èI—ó¯­mßV|Ú]¼¿†Ùìˆû2!7ÓH˜ûû³ð¬)ôÍR"uEœíù|‡ ºŸïpxþéÎjn–¥Zú,ôýK·“ûbÝ„Ì2é/Ç~Xu>Ãñ«·VŠÚ|)¢[ÛÙiò~ðO"cã©<žƒùŠ‹4îÇèb½®«çú$7R³7ï%iv|û@êqïÖ¯CkÏ&ââGtùÁ2n ò?OðëJé1ÞìÚðÖ•ªêþ!¼Ò4Å[½HM¾ÛîªaBÎãÁ‡9çœb«êúv§g¨kš^ªï¦Ï ¸wDÔÜ9îqÎH뎹®ÈÂÉ?OÐçr¾‡;4z¬qI§êDNžNÛií¾D™NNæúc§_ZÞÓ!’Ù‘•>Xü²¿2„Â¸>¿JµÐ‹oc¨ÓU¨i²¯‘‡Á\ÇnOÑ…jkÂEÒmŠ ±hRBAáyÇñcüj稢p²$ÓêVí(!œ™?tŒŽƒAïZFÙšÆÞçO>eËOyˆ™.EiãÙíÏ‹n1F‰-LíWPÓã¾Õìg·¸‰…³D‘À&5$œ67@3Àçþ/¿‚ÿâFŸ=˜•4è×3[Id;œáÕOãþ´¿ÝÝü0Îø¸ÛÌöÏÆ[á åî<ô#¦}23ÿÖ­›{T6ñUµÅ³Ã$š´ oæU• ¾pHª¯´”>Î0+–”/FOúêmŒ—ûSõÿ#ç?èñüs„Èw9Ò£,Åq“óW»|LŽY¿`ÏÙîçiò£Ñ/ã-Žó`ÛøáOå]‘iÓKËô8’ýãõ>0ø¤›|Q¡gåHB1éæÊ+‚¶óvm†heÏ—&?kCL:¿õ©xËývvòü“#¬æ[¬,1Âz^‰/‡µ0çl‰§Å³9c,gùùWRz#Íió=,FðIÛHÿàž~)¾[8⿓ƳA5ÐŒy’Æ–VŽˆ[®Õ3HBôؼsú†+Ð_ 8+ŽÒôCAøwã« 7Gøûã»-.ÒßLÒaÖîÖkXZ0‘™œ2®ÌcÚFì€+ÎtÍAM‚;dÔ )º /dYYÁ,ÊìQ´‚½ 3ÏÉãZXš©ÿ3üϮæéFÝ‘´úÄ:{A4áa’å¶[Ëk¦Êʬp%r¡yêHàœÖE­Åô° f¶†E ¸=¼n¡ÜÎ[-žz"œóÛmy EÁÙu;UÔ•É7m0º¸E(VWYcÆá·+mÁÎzýzóLÕ"”]ï’ágí+!¹ó~aó`áðÅLiÍ&T§"k}6îé,n‘K:‡d/ï2‘ÑG¡ôÅ:9íÍÓÄt••ä@®Ñ*£ÄMÿ8ã^§7lžgíðíÎìm™0ÈTã܃È8õ¯£|/>$pG̱¢“œäŒÿeŽzÛû«óeát_6GñMib”DH–M&PJžqð¿ò&¾<ñ5¥Ž‹ûD5‹›fÚ”99˜ÈܦHUàDCpá›ÈP6‰ÉíÀÙÑ»?ÌåÄiV_#áÃ4ß¶/—Ê~Y0ϸÍy¹®ðô;°ZÊ×sÍ~$$q%­Ü³­¼#O»‰äáW*¤}¶šøÝ[ÙØÃ©1o²Ø´h)%¿7oK— Ó€ªs‚v»W¡vÂ'ëù³‹ßÖ$‘õoÁ?‡Rèú7öæ³}vùÈÎ hc<ˆòyÏsïôÉú’.6cj/óô¯ÄUö•\ÏjŒ9 ¢É™ØÁÔ{½%¸d×zMѪ²Öµ9¡–ä»2ìGO¯¥Q³Ð’Ùͱ–[˜a$Å1! öþYÿõWÕó5~ÇÍÝ\è• ºbQ###ŒÇŸåÐ~<0jÞtŸg¹¶Óó÷\FÒ¶=;x¨VêPGr,^8ïõ;É.\‘½í3vÜÎ3éü«>â;Ë(¤Ã>§ƒî¹f¦:}ñÚªë{ ^Ä­q µŸŸ=܉‘óÛ»`}qŠ,L7%ÚÒeh‡@xö©ê9¤Ý£¨nÏTø)Q~Ñ×0"—óô+‹†g!¶8žÝ0¿çë׊è~/éÚüV3Edº´Yæ’²J¿»ã=0±§õÍzé'†ºòüÎ'üd½O*¿çðÍ´«‚U”+² gö÷ã'Ö–Æ)‡/LÑoó®0²cæ`½sú {{×Uãg£fÌgg‘±ÌÒÙþ¹Åjëè³èË 9„É,*èþz?˜ô­¤õLˆhq¢ºÓm¯7¨ rÙ•ã²ãåúð*üwrÜj6\1gtKoXáo-‰bG@<±óz°îsY»òÛ×ó4[?‘Ñkø¦Åcs7$nA$0ÎN:|¤ý:׌êzü"ñŒWvÂUŠ(L"9Wi@%‘€ê…#¦I¥o=p¯ä^¶/™ôw€DqxËÌË<ŒdUû›öãׯ­IáH®³â}SQ»76ú†¬âÐÈœEäM-¸ç®ÅQŸÎ¹éé†ñ:âþgŽü_ðöµ¬|vЬtý>këé´dA)’Ywn'°rIÀ“Å{wÅ}#WÑ?àÿMôkqYGQªçx»4³0çj¤_ÂïR¤Šm8|Žv­;ùŸ|V•ÅÚkŒÅ£"¶@ëçJßÉ…yÜA¾ÕeP>ôM†^µÑIZŒm ±zã&­}GÇo~‘D²*»…úõÅz¤pôíAÇ%Šÿ|“ÿ²Öúèq{©³ú…ÿ‚oXé¶ßðIÏIc¥ÅÅíô·îÖî‹$Âá“r3(F¥²†VLîFVŠÇSY±@èE)!§s#ð·Çw‰©üYñeè.Œ5{²[ àÊŶžžÇ¯è p6š¤2kðÚßëÖ‡Uº@ÑÅ$¡Zà`²˜Áp#'*pqžœ’Ç>lUEkêϯÃEª1iôF­å„ÐOÆé2/îT"uU ´œ`­Àù©dA·€ÍinÖÑîcçÌÄž0¤uê1ž¬>•äi}{£½©% Ë«è¤sj𥬈<Ï,±@¨8Ëmnϰ¬{èÚÖ©kk§j>u¤ScDàƒrÁ`æÿ ϤÞ_¯a¨¦ì[–ÓH_L¶ÂÊ9Œ(މf‚æ0ÀᄈãhÂägŽüÔëogo ñíù“öÏö¸Ù›Ê—# |ÀŒç=ªæÿâÔU‹÷O#´6iòk  ¼(Á#aAÀ\d“Àô®zÖæê'Úž{Œ)¤q…ÚØÈãÓ=iÊ]Д|Ëmem¦ò+»Yœ‘ Ç"9n Ç@Û #ƒêíUÒ[›i“Kqqs¬r ftéõŸ/ 6H<™Î4[§r/dÑ»iMö}NKh¬%œ7͸É&ÀFAU :àc<û`cö+öc’)boɆXݯqmÙ-y1<údš÷2Ûûi?/Õ6cü$¼ÿÌ÷ºZúSæÇdæŠ-'á@ ü©(¤æ€N.ŸðPÿW?ÿoÿÛÅ…Ñ|++xKŠ0ãÍ[i]^F˲3<ï3ULÄb›ŽªÑ§)5åèÛÿ$˧­D~tM{o¾ÓËŸáÎrOçT—Xº·a´gr+ÉŒwO}Ob¥K®V¶Ðî4F†úÞ;ãjÑâ1|Ýñ÷—Æ7ñ#ýšŸ"#ÆÛƒá U‡pGcíQ¯i̺~b”¤áfyrHR_9•™·gv1ÏaUå•ÝØùJ=ÄcÒ–§5ýÛùÇ „ÇÞÜ85vÆ6º¿fhÑ`wÈàûsÜÑ-Â:´ŽÜŠÑ€Ká†ÐqÓ©¬ìSÏŠá#ð9ÆùüyWihzV»Ôö¯é…5Û#·¬‹Œõ¯hñvrYjžóK$³ R 2üÍ*’Ä|ªª2W'÷€â¸k/¶¿qÙ…®úÏ›ñ›Á÷2†Ú-JK` kuç·9ÕôŸ…ÓÊñI‹æåw6ÿPØãð"³Æ%¥»~M£~¿¢5ümºßT²˜€Ð¶›x¯žùœûäþUð—ŠuE¸ø¥wªÉ,Ëk%Äw ›…ŠÈ ï8Ép¤àµdd}Ê•êËõ§v™†%/i'èhøZê{ÛÏìã!µH¾Ð¢e#MÆ1È#Ì|?U,Àñ2 ý3ðþïøBôs!Üëeæ?´k÷Q£(+ þ'ÊŒdd²˜1‹øWà¦ñ§Ä5ñ]õ³Cáý5ü­*ÖO0¹ ‚@Ü©êËnn aWw‡À%Ößž¿‘•\SÖŸ×â}·gVÖ¢0ñ×É$Œ¹p¡°r+æ$Ïn 0’.Þø8öÅC0Ì»z‚?:"S±ùôú‘X÷Í¥KpªÜ1’7aß;rI㹩âÕ¬nYa’â]>R?Õ]ÛJ=>ï'ºñ_Tá+è|ÝÓ-ý‚Â$K>âm² !IÏ çëÓßµ]Š;Ño1’]çG·Ð°Æx©ißQ¦“²+^ý„ã ZlÈ„ô! {ôª+;Gp¶«©Z´ÑåU£pɻѤ?)ü*[¼uEm©$WfÙ#œi­t§l ¨|z¯79'þ”‚}2ÕPÊm­&+¹â¶œÃÔG^âªÏd+ßsо Í5÷íUÆJ@<-;íC»®¡O®ÏütW¡|t†þFÒ/-Õ>ÉÓE3wvB„sÓ &~¢½ÊqRÃr¾ˆà›µTxò(ÿ„M¦2¶v $óO$¨c>ƒ<œsSC–Ð,_~ô•‰Pì7«“ù~«Í•’:^·.üiV8 )Æá—¥kêêòi’â?0žzƼWæÆà õ³]3ÒÆjéÜóf(´Ûbw²ÛÌb»* ëÓ.¤‘ŒgóÜÒ~Ã?ˆ¬çµ“ʆX<øK¼;g§Sž¾½OZÊ?ýJ’×îýO¸Ô­tïŽz}ôÄIgchÂeË- _¦3þxªZ…›Xü_ñ=±ˆ@‹©Êc@:!rÉm¤Võ_û;ù=qkæ}5àq xCI#óDL®À Äy¤à÷î:ÿz»k]:ÚËM»³yÍÜ—æq|²¯ç“Žìõ5cE)aåýt#í‰~¿©RÿzxÞÑ$až3 ‰Ý&Ø(É#®1×’1?í‚?Ù‡ö}Šà+/ü#Dmò~]â <{“Ç¿µ*ZFVÖQ^gçgÄT3|Itò­¢_üp7õ«ÞÓî<-¤\ ¤†ê{c$®Ào1€àûé]Šnco#Ÿ,\ÓîÍMÀRÜë3,2>¥s4ѧvƦGnO'b¶SÐp*Â\ØÇ jlÑ·ö´šœR¡o½h²‡SžFL‘Ÿ}¾Õ­9©oýhrνu?ªÿø'Ý„úüá½ÃùŽbÔdS³nõK§Aø+(Ï|WÙ%wÞÌòæ½æDËŽ0Ž*Œç–÷^µñGŠµÛ½.þ·Ycšk¨ß —F-µÊ9g'®FE_Ëyzfº>KBä%Íäm4Šy# 7wâ¾G1¥'‹šK«>à >ZJý‘ XÙG¨\Ý_#\.Î'IÛËEP?1ÀãäS4öÖ’Ô½þÍ.á”D’Ùƒ0“óòr2¾€îÆO”¯ÊÔ‘Ü÷Ðù÷ã7‰7˨[jr=Ì׌bò£‹nã€àòsÞ¾ñÓ5ø‚â Y/moo¢‰¤‰ü¬1¸ ø9ßø§ÅW6zœ1i„DóE5°v0…pIäñó r3\0²©EÉîoVªŒì‡ØükÓ?ál#SšyDS¼m|ÈRLíb àÆyÇcîwpÜjöVÁx—6V䤲ÀÑIæÆHÜ£tRdv+ÁÁ<ŒUW¡*-I!R©í.žÇEm·±XRâ9ì¾`LmÀÆ6áO§µ~»þÉçQ?°ÿ…úÛ¤~}ߨÒIX¾Ó&CNNÿ3`mÚ1Á'Ðˤå]ß·êŽ Â*4¯ùŸGŽù§uÕô§Í @é‘@ Ií@ ( c±ÔRb;~ÕŸGÁ?Ø?ÇÞ7¶¿ûˆ~Âl<<ñ´Qqû¨d&;%òr× ˜bc‚O•±ŠþAõÛ§{§{H–8-ÀÄq®Õ~ꨌÐoJuZX}÷z¯MŸâμ2n¥ÑËM{*ù¡¨þ-œ~u ­åÅæµ '?;`÷¯-B)zœªÎRºV¹ì6šO†Ë[™!‰wËŒŒr¬¬¹$ Àä xγ-ö©#»y²ÊæII>¾ô¨/u¿3:ò»Q2$’x÷G ÷ÈäUC$žfIÞNF3{WZHæm­ÿ~ŽT€ó´Ž?Z܇ýT¹f8iH9稇j†æý‹‹íA!.Ìà`däŸÖ½‹Â^ût6îäg ò:®óãò¯&«qÐõi®mOUÒ¡X5In­Z5 Ï$Lçj Iã“ì «Ó]>…áÙu‹¹ZãPÔ’H-å¸EâûÆv!Ë|ÀÈü;‘•Ú0¸®ZÑÙv9ëô†gøm$TF×-ŽÉJ–PËà Ž3€:ð+ê-BøèŸ¼¬\©Æ1ó/¥Ť[í"°ïV¼×ètÞ4±7Ðé0îÙæ¼ÐóÀÃ[¿_ÇùõñÉá?Úi¶ÌeM†wsfRá¥Ç™©Þqòª<–Š*ÓײHÇi/‘ÓéÖ þÛz,R3Efoí剤· ›Ìä09Rvc‘‡ùæÏèX†òïÁÚd6ÂÊ0T\2«5F 6ÁNHa´2íù·|ÍòÒ„»‘ׄ¿´’õýŽüCð‡Tµø¡máÝ1fŸÃ·“››­Vâu’娂Í8\X(UÆ’Ic·êï h–Ú†-4û8„Vð H” Qþz׉Ä:ñ¦¾¿ÖÇE ^Í¿ëC~iY ,0[?\Vz#K(NHÏ^‡Ö¼–En[ÈHÕûôæ¡I|ב‰ÂƒŽN1Pš±V>5M{IždµDÓí^Iã’Î0 (#ç9+ÎxäqÆsjëû&Þ·Ž8ïg‘AŽ5…Ÿâ Žs޼s__'4Ϙ‹VÔÆ²¸Òíü¡{¢ÞIxPüÃhŒò~ð ãŒc–éôxõ®±ɦÍ"¹>dPÞ.Ò¹Ï/°€Fç?[mõ…öŸD‡s(º¶Wá„· àŽ¸?L~ñ©hžo•oj#· ÏÍòàzÇ_on:VMI•ÌËXô»Û*£Åi(Äl.>U8é… 189ö¯?Õ|'g};OuvlVL`[«’П»È'™­í¢!Øõ_ÙçC»·øË®Ë5ÌwSYxzÚÜ΄•dÒ0àŸõ^¾„úÏÆU‰>Þ\ÝHÀÛ^Äã`ÎY¤ëÞ~•ìQMÓi5-íõÔùé ɤFîmÕÔKÌ<õÉeyÉzúu­¢’×@ÒìäpÓ[GÊW$oÁ-Œû–¯6 8¦÷:Þ£U`fÓmП0ã'Û¯ôükJæ@$¹ œvñ•*AŽMm5tDugšßÂú­ƒ[ª­ÍµÊH ð¤oWlžç(8óRé,ðj^²ŠG )¦Ñ¤cïcëÆïCŒŸðU>Ùáž4SÅ-vÙ ’*‘z¶# ŸÌWI¯Þ¾§ñJçTt½í¥Ã*ôRö±6·5¬ÿ€ãèt`ÕñWõ>Œðt*¾ Ð'#l;%Iq–tÚ1ÓøOé]%åÖ6“²ÔcòÂË-­³š!°°ó>lüÊ»¶ Áë(ëP“Ö†¶þ²ý_æA{qoeªZ=ô*,ãFp¹;Hå.sŒp™êyÃw×AûVÇäü ø©Ë³d*ÝAZ‚:ûVqVƒô.Ÿñcê~xxÖÈÍñ*õ±c‡ÿE-v×–Ía¡øfݰ3¤C!þþ[úŠÑJôW¢ ±¶*oÍ›ž •¢ñí³"‰ ›¢Æ3èS·ûÕåwçwÆ]€ÎeQÇ?Ý­èuG^‡ö'û,Ú]ØÿÁ9~ [ßiÖº\ãÁö, ´¹i£B¬’dBЫºà…ve Píïg¥z²ÝžLþ&FÊ*µÕ¬wzeŤ¥„3FѾÇ*Øaƒ‚9ž£šW9ÙøàýáïįxS@†át«-nâÒÔ÷²Ä—F…¤à;¿ñ7 ÊŸ—*F4w0ê–7˧ƂÚR"w0‡fÒ\üÄx#<óÐq_-_íSòoó>¿ ïF7ê‘t%ÕýµÓÃs&’¸–a'V81È8ÇëÏN V¶ÔÛC‘O|"(a(™—@¬êÆq–ì+̧)òÜê“i\ðÿÚnöqñÜÇ"¹·´Ü²ó$gí|ŒrÃ#à‘èHæ¼?ök±û/ÇØ& Ídžå\Í}U&–OëCÚýéâÿ ô™uˆðÆ5ÌhåT…Q¸þ©¯ÑíM†WÒ¤·+-üvÊ^¡ ð®1Ã?AÆ{ï¶¼ìÁ¿l—‘Ù„_º×¹äß´f—û7j2ÙiÖí<—‹ÖµiZL—$¸ddå—ŒGÏß,µñv?\ÒÎçO–{—‰€ópœƒò’@ ÿ0 tá#8aÜe½ÿDa^Q•[¥ÐòÏ ‹­_â,-6éf{Ÿ1‚¥˜·#Ðú~•÷…×ü$Öluk_(”ŽÊ {% ¹• ­¸dm>üÓÅ;WŒZ*ƒj““:/ xÆZž¶Ðj1iú´&LH‹ÊÛTlaÔãæüBóŒŠýÂý”^é¿aÿ Ås§ý€A5Üq)¶e2ê«÷Wqe p~\ãVx(S†&\·ÛõFxÙJXXów>ãŠwôÏ ŸJ3Ò€fœ1Þ‹Í/N)gŠnîqB@~ÿÁY¾7[ÞøÏÂ_4«äžßDA«ëÉ °Ê#¼™ ÁŠ–c·f|eCGz¤ƒò‘øwqu~“y–ê L™8Ï@}: Œ^Ñ„•´üýïÕ–š7š_ÖÆT÷®ýÞ[ç$üë¥ðµ´÷·M-ÈbÊüg°Çÿ^¼©ª|—[êU%?{CÅ÷ñÛh‰h6ì]Ž•EãpË “‘N+Çñ¼¼²Må³sü«¢šå‚V9'¬Û)é!UÝ‚2 ó_ŠÞ&›YÔRßOfXõ1*Ç2.-ïŽ ã$1˜;ª©ÝòìaZB*UuèD›PÐÞ¹¹ᯂ5I‹[ëV—ŽËeN?ïÛWÖúkù^,³ÿkrïËÔW6.JÑô‘¶Y?Tv>,Œ¢h2'ÝMICza¡‘™Züòø¬×W绚_ôBŠ–i#aJ€*¯G&EÈSÌ›÷q¾ µÞ˜bզב‘¨Þ‘ñ¾ VÉíãìÖ×qNn$„±+’à>p‡iÁ,!Ûÿ-ýøWã Ox:î{D•b†éã_8©|¼d) `0ÏjË4W ’éoò7ÂüÎÆ[ ó´Îª[qzf¦*¿glœ ¼qùW̧xžµµ3¤*ŒC ÉõaBª6ÜóùVoSHœ¯ˆ5[?YÒ­ãl[\ÈèÄ@Xï`7tUØ$Îy-³w# LŒNÕ Uhò¦¾x“zÜøf?BÑ/ˆ%-dÒ|ëæ8.=—œJÒry;-®Ýî&$–ùUñÏcý9þUöj Ÿ(åeHu]:ÚâÖ{S#9ÃG’ûTgžF êp}½ª]>EÔ-´1A4¸oôˆpxöc3ß‘ÅZ¥wqsØ×{&[x丸[Å•±¶“ Øçœ{“ùûšä¯µ¡f’Á„ðJÀ§”À¬Kœ€Ù#3éþ.ž¶¹WÐÍoj€ÿ°Ì\ù[#ÈV^˜ROCZº.ª5(äŽH%ÓáÚ|ÍÛ@'9Á÷4;-~¬ö/³çâ'ŽJ«ºKk§ˆ˜¸Ü¸k¬ôëÍzÇÄ óÄ?ït«AæÝ´–ò¨bræ9’B$„ {šõhicŽnÓMŸ9E {VBÛäW‹ËÉÏn?õÏÖÓ‡C…f ÀžG:ò!ð$Îù¯y›Ö¨hcÿ–`HüŽ1’?L }Òù8/ì­¿·b3žÕ¼ö3‚Õžg§]Lšµ´²,Áˆä‡cÿ ãðô­mGË‹ÅÖ²ÜD ¼ÁÁV.åa»¿Ãƒü#>Ã7DÒúžKñ"ÕÇ1ë–…¤´¸DF~H pCw  Ž8®cHš{‹¬Ï!•âD[ý˜ÐF¿¢N£µ3«¿Ú¾GמŸ ´Ær²á·ŽcP²ßŽHü+N×K·†r€ý¶þÂÐË0ƒÈÔ|9ü€xzÄãÓ0+çDîס¥÷‰?6Xð4"_ˆ6²dùó$’²Œ•]è¹ÿÇ«Çâ>Å=E‡!®”p>ƒúWUvÿ®ÇŸYhŸ™ý–~Îkwüïà\wñù7ËðûEF6ÉöwÀ潚õ¬ñª|oÔi4ÒݨHÅŸ†ÿ¡ŒþÓ&i"¸)â»çL•}§Î•@©´ˆy'W©Í¨^ùñÜ^0Ì’9-òÇi^>î={dŽù¯ÇJPÇÍÅugØác…û"IÒömCÐYÜ9*dšÜPŽCí9÷Ç=zrH§§hšü#¶ßiºh! ›"`Œö-‚sî2y5æ¯Ç¯ü±¿zç„ü‡HÒ¿f]U~̺UÆ¥v'=üè«ê0Í}[Máª~ÙÜñ„ð7ü&NUA}Ø’2¹»"“µîŸ:%8J8 LPçš9Í4žkÄ^ Ñü)à sÄúýôzf…£ØM©^K–ðC’IáUI8ô¦•Ý„ô?/Žõϋߴ§‹¼e¬9]O^Õ'ºh$¿{¤µBÅ–•ÀfŠ0R$ùWª<&y5Y”ÄêüÁIôü+‹éKí²zzl¿#ÞÃ*£§]?¯¼És©‡ `¥°p¦½³Ãšo‘¢<»JîL´‚2þZó9ƒ’}…qUP|©u.I¶Ï"ñFª÷ú»É4ŒÛ‚ª–bÇb¨2I=sÚ¹Fh<¡€Û»à⻕ú «ê1^3¸äDW É%ªFî6‡ ONMZ¹e…š¥ºÃ“ÁÉ=Éëþ¶ö,Ú§Ëó¦ìtë^{œœ™Ø¡¢={Úw•©ØîÌÊÄã¶ké)lÔxZÄ•ÀÈÛM§çÏFzÑÔâY) 9Æ~„TæN*Š]MpzÕl÷ÖŒ%¡PyëÒ¨ÈFÖ(zãé_+sÛ±JxVD;A~A§ª0·à íù‡lÑ{½BÆ%ͪÜľY¼;r ôÈ{ œTF:/J«…í/t½^úîÚHg´ 9)(,„`cËÿÛš…4]2þéR† »ÄÒò8ƒŸ¦ÉÊd£fè7¡8έ{µúÿÅG§Èn^%"H–ØY¶¸$w*#l¼}kÖ¤•޽O“¬ìgÓ5É4t½æÆîrX.Llø ¹)×ßڧ昻I¸ÜqôÍxÍ%QÇÏõ=$ïnæí™ shHËÎÜS@x›P»Ž@<¥Œ£n…ÏáÍUMˆ‰ÂéööM¸%›žÀûñ[TÉÕMÖœ¥vÉ*K¶xòq”ààçdddq›½‹ÙœÆ¿§F¿™¡™¯"Ž8.¢‘ܾZLpHæÞ[O¥y–‡ƒ,ŒeòG¿zš—öM=îÎüûưü/2¿‚´ë&b ¢Jw8p@üöŸ¯ç]ÈâÃM“Î\$Q‡ÊÚŠ1éòøÕÓÿvv9+¯ö©zÿ™ŠÛøí¡p·Id%O—æp¨_Œw ú*ó¿?|5âO|ð‡©Ç«êº‡-äÖ¤¶}ðZÍ-´[†Ë!Àû‡ Nàê® :s¿oó7‹µX¯ï#Åo—ÌÖ.dDZϰÇô«þ=Rþ'б÷á±ù›Ú~˜¬¡~B±Æ“ó©oÀW1Y¿ŠÄ£/.–#І[»gÏýò^-¢(Ÿâ¤È‡õ ÷á±]”Zçhóëh‘ý·ø_M‡Døqáý  6 X÷È]¶Ç Ë1$ž:’O­n1à×®îÝÏNòl‹<ÓY¾Bjˆ?žû-FûUû,º½ÍÆ£¨jQ ›Nå[Í”–Rù9bƒœî<ç$kGoáø.–Ym何caÚ-""»»…Î+‚p8ȯŒÆ6±3rzÝŸkE%ME.„÷ªº¹ûÑa`Ç+]ÁŽNzR3ø×7ehé¢[[5ÒÝá Éö¸ƒn\ãj†aØýây댚ó×,×c¦òƒ±ç?|9Š~[h÷ƒè¢;¨ß÷¯uò(q´"œ°$«{~f¼¯Â¶¶^ñÍÙ×­E½¦‚l$þÓ†K74‘¶J¸à`ùéÅzÔk{*\–¿ü5¶8'OÚI»Ûúg!ே:ž‡­I(ÔtvÑ”—›L¾c•ùFð¿7„b¾ÂеG XÉss²Eܲ$·XRÚx`0ÎHàúË/k>h]z¢¨G‘rÈò¿KÿÉ®¦ša k#ù›£3Ç÷\Î$Ø0N9ëÐ$ø‡ã^Žû6+xRBÙn?Ö'_cÇéáäý•Ÿwù•U¥òG›ü5…Å3+eIÈW8Âò£<÷çíœõöZŽ—Ö„&4v¹?l–8LÅFr¬rÌA99nNyÈ¥Y¿¬öv=kGº†Ò)^K6[pY|Ü—íÇñ+Œ‡ ×ê/ìlêß³ˆXckx–\ãýߊË%*ͯ1cU¨;¾Ç×9_^j6ö5ôˆù‘‡Þ›š´I 'õ§‘R1JáOjnzóŠ!¯Í¿ø)§Æ9~þÃ¶Þ Òoæ²ñ/ ¡óão±[”’à,ѪYÞÞ3œI“.ÖPØÞÔù–ë_»PµÝæný..m¤¼·” <ÂCTulç×±ooEæTiGñBØÿÇkÞ.l#oZÈÀG¶Såç’럗™ÿZá©«MñgxêÎY<¯GfVD‚P À»#O lþáöî‚x!TÍ(LÂc·bÀ‚Ú I]›†ØX¢œ s^…+r¶ŽI§Ìzñ– ïÙ Ò%ZÞãmãd‡nÓ (æÛûÑŒóŒWÖ:]âê6~ÕU·˜¢”` H›±ù0® Nšyµø#¦Š³×Ëóg£ø¬;x å‹–Y`”㲬ÈOè |7ñ>æïRøÕ5—Ù¶ÞZI"é3hÖÕ+Mzüçæ@Œ·wFAÏ-·±oÏôEãï—¡™à?¯kq¸79›$*ýѬ¢±°ÆUP¸é^va>jÍv;0‘´/Üй'ÈeAóÀÍb6ÿ)˜ /Nz׎z,µ lÎãúÔr¾Ô$¡¶)-Yz™¹Uã!F:S"v7§pÏqE­  ®‘d×eÌR=òƒ¶õÙQT{§­Tê6ö?dÓbûZ+o’æâbWžØþUú6ûŸ 6Íu°“Í©›fµ~6r9ϽeZI$»šSM»²}.ÔÝ_– òîÂÐW½hZDQi6߹Ç d-ìr1ùWVÜÇ¡EY]ÄM%Ü0­¸™®#*W ÃåHé°ýréëš÷™n-O…ã±…ŠùH /äùx錎8çÚ¹ªè“:!¬™ç>1…ÂÚ‹ã]>EÁ=Ä‘ÿ¡×ʬÍ}v¡åI‚Á$¬ÅA!HÌ®£q+&ð~fIJõã=Xf¹1«ñè{6 ÌŸ|Rò–”M<Ò¼’HZVý›q›?vmÅ÷¨áX0Ÿ¨<ƒàïËö]“ýFÄíôÅEx­?Åú#JoOó;߈^)Ò|+ðR÷PÕe!|¡(ýäòŸ» ˜ãðÁ'€kà˨µ¿øîM&8¡ŸÅúåÂÜjÓ@„%¢/HG8©?y·€7nC»ƒ%O )½®ÿoŠ5u}ÛðÿÁZw„|e¦YGeœšFîOëü…vÑÅ/öì2+³¬N®›~ñ%vœûa‡ãí^ æç''ÔõaUd[™œƒÎqøUfŒ4H[…ž:ûW*:ÅR[Ì-œ–ãàS.G—”:÷úU«ØHÏ?ê‰i?/=ˆ¦2mŒm¤/SEÏŽe´3À°^Cut‡!¼³,J»r #1éùR]ë1iö6ÐÇl¶Ñ¯ Ä»2R™åÎ;zšýcâ7Z–¯&:”Vwcqöe³´+ tIùséüê­Íƪö†×IЦ…†s${–AÛ$P›Ü›_C[L‚ýtöhìmü9)@Ý~iHä Ç¢çÓŸj£Ÿ5®¸ú•Þ§ÍÈm© ¹>TJ¡'“ÁÎzöëSkÊæªV» q©"\ËÚà•¤’BŒNnÖÏçðõÌ]ZÊ9 %­àJÁ¶É׫I&gqøéÞñMì‘…¹»ÕˆÊËå%¼A;Yÿ W¢kÉs™4c o©@ÿUݵ¿F5ßvc%©ä?ÖñDŒ#C¤¬@Ë6C“ùÏåÒ¼ÂÃæÓ2ÌÇ÷ŒFã’~^œqšñêë]ÿ]úÃÔè­Ù…ÂŰì*ªÄöÀ5£nÂ-bça¾øÏ§ñ lìyýœdj>"…äÿ˜¡Ç"#´ùýx®oí´ËqlU¤ž9¤e9Så»:wäqZÂV½ü˳µ¼=)|§Ô,Öá ½ÍœSC dù,>OPÌð³ýN{×ørG1P0X’~iâ¢ýCÐË]ëßËõ>žÒÝü3¥8’Ûª¸B2b{ŽÊzñÇB8®ÒÕ¥å÷ù ‹;s·Ž¤“‘ø}iFÿVlã«gˆkÏüÇø^òÊÎîæãP’;{q§ê\£.Ûg\ñÈ9`rt¯Îÿÿf §=zõ®˜¦¨M“K\U?‘ôlð‰5£ Þ0ÏC×Ò°|e ‡ÅÍ™ÕAës-pÅéftTw›¿vEáõÛ£j÷‚Bª°´l®Y$aú ®‡ölÑí¼CñïÁZÜ"K?øïMÓåVà{¥Ü=² zØD¹Ž Ýì°ö¦ž+×>xÐ["‹ÏÃCqsñsÅ7FTK¹5Û¯6o³³obJ• †bHẊçâòܬÊí$â0êé0sœ`29>™ú×Çc"ž*vþgùŸcAÚ”oÙfûk¤sˆÍ´¦IYš^‡aÎÞ{àõ^0j½…Õ«i1)°žÍv`ee?Ò¼ÞT¢Ô·Lê½ßºT¸ŸeÔÓKݸ‹(dºÂÇƒÉ Á°@ÆG·zãìõûc®®ë_´¤²É™'W ’§6ðX•ŽÄõ7åÙ3|²iµ™æo5°·Š;g@Ñı»¶FÕà±?xƒ9ƒÓ=YÐ$—É]vêIdTçtÄ›F€01Œã¹­¹£$·2QnLµ…³[»[5‹Y™”—‰LS0PÙ\Û†Jðr=ëÕµû-;Ã6Úu¼-,÷.mîÞÚHÑ£`û°K)éór¥XÉ•(µ¨êY•Ͷ‘/‡o¢X-ÊG Ž H7“À=ƒÁã=Î*!4ÇNÓínôÙÍ.8Úä™K±ù€^ùã¿sžuMÉ´ß] ÚQ³]_†È4ʬŒ–[A&|³Fù pê:{rkõ‹öWÔ4Û¿ØÛC°Óîþ×6—ywkz9ZvŸií’“FßFÕ”¥íu·êŽ\Æò Ÿf}š7z××XùqâNÔíÙ-Xwšpy5 #mªì@÷¡ Ÿ8~ÕŸ¡ø!ûø×Æi¨Ç§x‚Kc§ø{7¤Ï}0* Ì Êñ ’àǵ²>A×ò/©Íeu¨Ü-Ä©g& U¸À²ªàcÞ§.JZ¶öü¿6vàáÏSWdr’Ão°“p¼¹áý/í~"·hæY£V íf¼–ÚƒÒÇ¢Ò”•ÝÏ[Ö§›Lðáû6À[6Ñ)C¹Ù‡%r¥Ns† 'c^ªÍêï ,¢Ù|µQÉ,>÷C½žj¨«SDÕiÈÖXó€¤cÔÔdGÊ—b:£#5שÄÍ-2Ñ%Üà6àߨÿ?­nA<ŒRÝÓã ö®J¯™´úTï[©è¾ÑÚ[…ùwqž=ó_FZé66ž’æWX¥ó -!ÀŠ5Û–>ÜŸ¦+Ìm¹]š²V9[–}?è&˜Cr¿<®6ñóÊYOŽ_ÀÉÀ#W¼x*Ð\è6BFY˜%¦UÛ&fpzç,Ç>¹Ô«|#‚hÌñV—$ºUÔ)m–W[¸î²@ÃÿA5ò~m´¶Ò+JYgÄ«¶y €Ž6G€Aû²7 #ÿ–o]Xm)z˜ÔMÎǼxN$›öfñD >cXcÛÆÅ „$’éˆþY ˨yc^åðÛP–ÿöwðäÛG™ ¢[ÆÏ,''œr§·Ž*1/•FÿÍúÀ.–­¯î£•øË øºÐXx²ëR¸×´‹¦m?MŽÑ],¤.Z9¤À àF0 ! B‚Xfê> ü9m EþÜգ߮ê<ÌܘSŒ'?†™À¯ U ðq„tèÿ3Ñ9*ò”£”v1ÇP ‰Ø89ë^9è¥Ðˆ”\qïéQNûc :`cµF½ ýØç ÁÍR’|Ú™™óŒŸN; ¤‰z¢Ÿ}¨l÷íÜš$˜@O\þ”¶Ð®‡ÆgSÔžCî‚VÀFÜc9sƒÛ“žqÛŠ4Éåšà<òJñD¹¤¦P3׿9Á¯»U`Œä‘£ ‘¥Ô·)º6 í’Y‰Ê“Àã8Ïjbê3\#GlÒFª…É“;ŠŒsýÜzŽÙ­9âú‚‹ZRòÍ• —uÁÁI œö÷¦„¹Š+¹–Þö ‹…h£$;?Bs‚=1Ïz»µ¹ž†LÞ+†ÏP’9µ J¶$f sÀ÷«÷zݺiÙ7ª³\ ùÀð}?Ò•®®SV=oàXkO‡þ*÷JßÚÍ’ÌNH³·Ž€‚> ×¤‰Ò]BæÉãb±$so襋1sœ€Ÿ¨÷¯BžÇ<þ#Â>%Iu7ě؋~é-¡E :© Äû±¸ÄÙ"Çkq¶èħ¨Çü«Ê¨ÿ~ûѲ¤äv†hÕ¡8ÜÛŠœíŽœœóØ}F¥ŒjÓݳ}þs“ÛžJ'£CŠÑžX÷*º•õÀgYdò›bƒº6gd'ô9ôµ`Fn"ðýÏ›išÕÖ%Çr«ì.݆@™ýG¹ë\­&õÞÿ䣢Ôèmä³?¬ ’“›)£’N9d˜—<–ÄŒÌxùºf¼ÂÚÕ4ïêV1ÝÛÞË|Ùá\޽ë\Gðþgn]ü—ê{ʶ½¦é¢óL»ÓÊh¢X®,™ÙÏ”ÌåÁáO ð{.ò "æáî¢|\Ço!FÉ;)zŒqЀ9Nàsï\§ÅH–?‹ÚŠÆUSθoý}L+‚›ÜÞ§Æs:CÛ§‚uÔyñtÒF°¦ì¥f qè>^z ûŠôÙš ølOžººgûGÄ=/íSØÜ¼.¢K¨¢ÛÈC£e¸t!9RÈöpÊÎìâ©ñ#úëΣ-é^¢>to^”T‰˜*¨Ë18Uø3ã/übñ&³ák“¤Z˯¶¢âòì…îXïÀ‘£c¤¨Ú œ[ïê—–òÿmJ·÷_ê®" E·A=Îãßø¼m^\Tùv»‰öXjw¢¹»QøsÅšÃ]^æßÄ&ööHÛì°Ý†‘³#æ)½Â¨àŒЂ9MÄ~/×-®tûK+;ÃjˆÑe1x䌬ád9 ÓåäØÈÇ9Æpœ\úÿKüÆÔ¢ìÏ7øÙ¯øŽ×ö{¹»þÂþÀ»¸Ô¢·œ­×˜| §s)\c.FpƼoà~¥©Ã¯_ê =«Z¬.#¼¹Š#.AÀC#*†Ï,ÐÞÕêR¥Ñqó8çUºšœéñ׋5‹³C«8+}$QÛÃr³(S/ÜVk‚@ù±ƒÆ0+ôKJ×¼-qg­¥ýºÊQDPÃ?ʼcŽ äúB3Í‹¢”R‚ØÖ…FÞ§)ñ3Y_øS֯綕--վ̬$ó˜*‚6ž§—©'²üÿà‰7>/ñt]å½¾ŸdÉ• s0/Á Am°ÁàV8j\ô.iVN5lÎãPøÃàX~ ]øy,g·’7kk«¸"U% ·pÚHƪŒž¹ÏNöÚ]ZÓUÓ-mÖÛP¶ ¶Æö(ŠBA$ºHc'vâG^ãõÎtZÖÃŒÕMé:G,{ÙÞ¾s(A)'ŒtÈÀ=zzWê7ìy3Mû1ëL³C‰&H€Îä_³Ûœ6@ç$ž­Áö9[¾!·Øçǯösêÿj=kë5>XCM ޵[€¢AÉ&æz\ /˜{œÒo¬;ŸƒŸðUÏé©üXÐ~ éWR?Öâû]D–TYnçE’8Ú6Œ+yp˜Ù%Gq›©P…(ÙüTÕŸLºŽóÚcM"󼓓ødœ{W&.SS„WEùëúž®4ýœ¹¯þðjd³i0†CØa…{ƒ4¤Ót‰.f8L– Çǯa^eiÉBÏ©ÕN1UŽÅjh/îfˆäY!Ž ¤|ó·Vã ãõ ^XÑÏöP¢ÜŒÎÄgõ®”’V¾Úò»eCæ 9?ÝÇéŠE‰ät‰ç'#²fÔÛ·?fË% —ëþ5Ðiv’_jhÄ#œq^}Ewsº–ºBø[KŒ[ (ÆÞ«ÓŸÈø×«ê¶ÐÙé‘=Ã-b†V–9YX€‘œ€Ì8<îúWo¢= ;¶™á^*ÔŽ§,¶eŠ^´Ðý¶ ‡äÕš80Þ;¾|¿¼kêÿ†°gÁúZÜK¾b Vn¡Ý Œ0znQŠÚ¢µ _õæOãÔ•|5©Mb/+˜âi@-Ÿl¨¯Š5xŠXý•cš6”´Ì8Äë—'Sp—çy¹oºñTá&/ë¸Uª}Ç´øPß ¼K–Y^ËlÉ"e‘RvbT}Ö$dÆ8Œþïø+Ø~K+þφYw¹’áÙØäîóå=òp cŒkÝÿþÛ!Ñ^ô¯ÛõGÐÍf—ú : à°#"¶l­’@P@£WÊtižþì'‘݆@À~f„‘w»0.Oý*5µ‹Do&ÈÕ~ó•â¨Iö £ËæGœ¯Êã°ÿBÐe ‰¶#&p:tæ¸ûíRßLÓ.no®½¤*dšWl*¨Ïõ®Špri-Ù”ß"»(ø+Ä0ø£À°êöûÒÚIäòƒŒ6ÕvPHÇñ øŠÍøãÍ+áÿ„#¾½!®¦¶‘•$1P2Iôu%€kª¦¼g±‡õýnc ¿ìþÒGÉf«eqh¦ßTûE´XÛçÄбàŒgÌ#ø­™g·½Š(¦Ô—K ÖU’21߸ÈþUî4ÓÕ`Jk(㽿Y—’%…@Üzª° 'ž*ÀGDCvbVûê®T’:(R3œc¯øTÝ ²,*Z^_"ê6ŒòÆ›ÃHÛÆ:{“Øê¡ðV…«èñ™µI^f_“ì÷C(;»€3žßÖº#RvÕè )®c6? ø+N¿€Mâ—|¯•; ,T‘³ ø.•Ëx£ÁÓÙB¾"ŽæÅí ¸ŒÚ5»´r¼@eÁW=AÏœ ûÑN÷ÕÉ$®§¾{o‚wÒšYn.åß³®£ÏõÌp8í[ò$ñ-ÜLê’In¢0F<ÆÃ>ƒÓÐû×¥GXøøˆÒ¯ÄíBO-vm‰ rß"òØéŽ<×/m¬´‰®næÛ[ %Ï𪌓ÉàvÏô¯:§ñîŽè ð¿üD¿Ô~4Ü>£w/Ùu=ÐÇo’É ˜‚ú €¹¹5õ‰Red|«ã‚7ñ¢²´’Ft]Ñå7rÄ|[wclñ±>D’) ,ŽOÍÛ†Î;ñO´´ŸT}]8î#,%‘9s´*äó“òúœô¬}›u®èèrJÍ]Iíì¼g \@÷ê†9 Ä\âKiôè ÏlzWFÍ/е)™üÆ’öV,Ns—'58›Æ<½­úžŽ[­fü¿Èú^ØZ\K¨iSD$Ìa£3êÿ+©Ç¦8ô碱ŸMÔ|>òè—).”<‡æ BJ8ÚqÝJô+ö1~gv®ïäij¿aÕ~ üPÔ!¸‘Ö qÜ€xgµ‹äÛ» Jî9,IàOÃ_ Ó‰$çÌW£Q³Íÿ]¯öªIÿ[Ÿi[['•¾%+»×°¯ø–ÏqñÎkL‘öVx›,€ÞOŸÇõ®J:¿¸ºŽÏï9‹}.ÐfP .w/«NNU-æyõŠOÈþ¯Ãð4·5ìXðƒ8ɯý¤®’ßþ ëñÆI"Ÿj©’qËYÊ£õ5Ó‡6" »_™øYøÏá+5Ó¼!ki¼OtºtO”$JÆg·ð•Rb8<×\¢í&hníLÀÞ6åÚÙçNãñíù•f¤ÛgÞÒ÷tE-Zá-<8É.¶ë»2…íµAÏœ¸?J¡okÓÜË]\³‘¼ñÀË`c“ŒW4ZM7±«nÞgÎÈŸöw <±ä"IvrÄñÇükÇþi°Eã½vi£O)¼u2ù£!Nø—8çœϦkë4ú¼¾g‡kV<—Àº<÷#Šìo˜Œü¸äêG¥}ãáý:3ã{\˜­öÎ’ Ém|ÙÆ@8Á yç"ª­¥&¼‰†‰HåhÍ1ÛáUÔ¢w¹Z %Æ0L‘îê$Üàg“Ÿš~Y˨|}ðþ€m`¸7æb>Ñ1Ž—‚±pŒžxÁæ•4£…ºÙ\&Ü«w8M{½kâƒ]^ÏæKuróÏ ã{³cì ?…}{«â½CRÑÑ.í‘­,5”‚ S´`pN~¿JªÐ‹©g°©É¨yž™á|B‘âm^ÃOK(o1¦r6áŽK¶® ÷#–ÓõÓö*Ôô¹¾ø¯MµfT‹Ä&êþÜÛÊÝÇ¥ø¯¢±ó—œÓX´Ð =óUî¯-ltéîï.b´´†3$ÓM DTd³1à9$ÕZâ>ñGíaû=xHZhüQÒu´ÆÒBÚ)“TŒ…Ç %²È‘“‘€ì¹çÁLJø“ö⺇À÷>#ð_ÀêÚ¬·Z¥ÿ‰'‡E‚eZ)š“³c„ ­Ê’vÓ›§Gø²³í»û¿Ìé§B­Et´î7¿|}¬|Bøãâ_kmÞ«ªêSêWæÞ7H·É#9جîÈ›ØíBÍ´(8Íy5Íì,Í:éê¥ú³ ƒî?ZñëËÚVrŽ‹·èzT­ vjâiÅ©ë«n-UäN{uÄÿÙ^’H³çÛź8Ð6æ|pFÒË‚ÝÇ˃ָj0lè…½›ižøu㯆eŦ¨Úoˆ®–Kؼá˜>ÎW‰ êÏ'*Ã+°9‘ƒ×迱?‹uðº×Œ´½<:g—?ð©Þ#œžØÛáþ‰O˜ÞMé°©«•è8AÅ:®ôõ=_×ScÅP™¼3å!!åŽâ4Ï$æÖoÌð+â O-4Èé˜n&j0t…o‘Ÿïá+öu)&9r潋k»6Äi[î=WágúGƒüWm–X>Åæ[Gö••FRe*¸í–o›«ÒôW­|¸[¯„ú”Ž`Ôd€n8嘰‰~tñqù2ü¤M¯òýb}C¡J&Òí[ªùcæõʃ[¿.ÓÏzù)i& _ ePG'’1M•U$ýih®2²±ûsƒÄdwâ’y7E¿d ³Êê@/±wgêÚð¿ˆúݾ­¬ÛøL±]VòòXÛPÜØKh,Hç9éÓ*×ÁRu*§Û_ëæyøšœ”íßCÒ<9YX\ÙÀ‹ 1ÅDA€£ 0jùÛöœŽ ‰|²ZµÔÑËvc‰xq{(êFr;™žŸ×ºcÍ‚×úÔòÛoiÖQ\<·²êR¹ýÃ${.?‹ wÿã½*Sá/ô¬éº½õ¬,såÉó„ž7g?§Jö$öhñÓVþ IEÓjš”ÚŽ9ŽSg{ÎW$ý3üóZz~ Û0y$Õ|°6Žø¢ž9%AÎ3“·wAŒ÷¤é=“±JqGsg­h6VRÚYé· =°qƒîFIüjõ¾©¢I4Û|ý2_Þí–ìTåpsê9ö©ŒZE©Fú¢D_ Î÷:£é‚+á…yY•e”*žØ8ã5¨ÙZê4ò½¤ ±¹û=ÃlQc·Ñ·'8Û€Ç#[+¶OÙ=Cស³ý­¿Ú˜Â³^¦dªý²Q×¥wŒÐ·Œì̽±òü;rAÿ þ‡}%¡Á5©âþ=`ßur«ƒ…ÿ{÷iÀíÛ¯¾8ȯŸþ*ß-¹)iïeèwò«¹]¾¿êÀük‰¦±Kv¢|Ù¦Êöú•½ÔO¶X¥Wô ä*ýÑnDÚWI‰U¿ˆtÁ˧P(Äô"‡SÍo-Pxo-ÔnžÞåY¶ÞêÂ5$ýñǽtz$Æ{ë¸L/B(™cq´ÆÇÌ%~£>õ”u?¯ë¡¼Úp±…¯ÏciÜ÷ fžÞòßìÿ>6øƒ–ÏQå<ž»^C¤Ý,¢K§" ŒÍ` äóŒTb£eCÒË]ª4Ϫ ¹Î .­&Bÿ+#+‡GÀºrAH9ïÞž¥G¦xJòÊÎ5ŽLgj‚ØÝ&ó×Ôçó¬¤ýÈ¥·ùqV¨îfkÖo¢|øµw=ËÏ{x¬˜'j"I¨À¸ÙœÄ$†À'qöÇÊ? ¬¥‡ÄA¤1°’Q´Ç(~‡Ø‘]—î'ëþFØU|M+yþ§ÛÖö»­Ù˜è;s_=ø’AyñwE¼ÜŸw4äSq9ïýkŸ­Ó¥¾g8ן |fvîY­ 1"·ø~uõGü#K¾ºÿ‚¤ü5º´ßäiöšÅéHËi÷1 Äp£Ì–>OÀêEzØuûÖ¼Ï:¿Áògôû»ž´»½ëÞ±àŠ>&ø;Â:üZF«¨]]ëŸû'EÒnµkôƒ;|÷¶´ŠYR-ß/šÊvr@¯™ÿnˆZ-ŸüÇ>#ÑÅ)ñ<DVl¹Ú1Æ{}y¯´4¨Œ~%´’YŠÅ¹2dA× íî+Zª’3м̯æÙÿgíhK*E‚:ßGŒŠùãൢEûJü/p¸ó¢»ù€ÿ§y{Ôs¿«[×òIÔû¿3Î>Y™|Qö„‹Íò)»ŽxëÇŸJûÃ0+xÛG‘ÞX€¶ÇÈv²Ž9ãŠÞ«ýä¿®æi{©Ý£-ì“ÃR\[ Ø/Ÿ8¯ncçÚ¿@ÿbËuµ@«KbvƒžqqÎrȨÂ(¬Uâ· Ko î}Ó¼Ô†CŠú[;pó:×õÏퟤþÍš†™á‹=:_Æ:–.¡¹ŽVŠÑDž\£P¢o5’e %B¦0X€Êj’ŠÖ[!Å9JÝÏŒ’Ž+9ÿ_#ì¯øÇi;ÉáßøkáâMn"•´m%€Îžá¥Ýîõæ¾Eý·¯õ|>Ð<-©ø®ëÄ*Ö#3Ý‹½GÌ’ÞÑ †‰ü’H«†\5³ œ|õ9â“Û_»S®¬áM/Còn¶dÜB˶fädd(ásìzÖ\¯©†(qìË^³tÛÔà^ÑGÝ=Â.-Vîê<:Xž™Í{3¯ë_Èöv“G"\Î!†-»\†e!O׌)5æU›Sr]¸¯vÌôÿèÿ~[ZI§xoOø‰ G<¥¸ºŒ6±Eû¸¾fÚ¤u‚nwË}cBý£ü ¿k£øÛMÖ~xŠ8`–k-M‘P³¶>VP[hï‘#üjãU¼é½_Gú_äCr»#ÄuýcÃ÷ÿðVêº~·a¨èð“iŽ5;Øæ¶eY-ØJ„¡ ÛÁ98ÚsÞ¾_øóãÍwÇ_´ŸŒüT±]éþÔ®£[h i4/•nÒ¦ö_3`Éäá¶àW~;ö·ãÐŒL½ÕýtGœè*“˜fH¸iüÒ ;r@çÉôÈÎ23ôLJ´ÌE œ.zÓ?ç¢ùµœt:ûˆ„ß ’Ú9γñ XÌ™ ‘Îs#焉>lvàñÄ}–—%+¾ºüº9Š›K.š™Îø3â¥ë|[Òme¾šúÂãOO»å•$Pg!‰,X+IÏÎzdŠëhûï< áíRQ<§öeŠÜ~ò_9 Ø>¦%úô5ËZÑÌ"×_øcº—û£]2[–½qk ©¸ŠL¿•j‘–Uã{‚yÉé×ùê’^\ÜL,!±¶·b¨&¹9Ž¡‡'ðý}}[v•æ³Hµn¦½õ宬4ýFÁl|Ï– n-Ù2HÝÎw œžw“øÔšÏö82^ZNÑÈã nIä( c<:¥DRoÝ4•âµ.^Ùí¼Ó3DVF(­é·¨<ûsÏQZh¯{ ^[,ŒbxÓz*áYs¿`Π®ËFdìv? ~"øB/[x6#ršÈ’õ‹4 ‘ni%™—pbF9ŽxéÎ={@–×_Ð|5¬ÙÅÜ8~BÉ N:Œ08éa^Œ•Ži-.xŸ‹?}ñ3^+#<žs(z aOJäR®¯f*tcøŽÒfÑ,Þ8ÄŸ¼ÚFyw{šùÛÄZž££hZD–¿byÌÿh[GmÛD›ƒ1'³º€ u$“u–¿ÖæÕ,FéSêzŸ€u¬Mw÷örÍ4Á®›åQu¾Ffã¦ÞN8«º%ó®–¥D9RÆíÿÅøf±Ä$Ö‡£—¿yvô>™·¹dð5œó#ÂѤ-8q†‚ÀòH5×[E=Ïö‚# Ì@ìy+‡ÇQœ(oʹš|‘ù‘-'/SÏ>'_Ä¿³ö©¦Csö]JYÕÚÚK•óå̹È%Š™cC»ÖEç<~BSŪÓ7å u®©;PŸ¯ù¯‹¥åÈûæÖÕÝ FÁw ·=þµò2ßý¯ÆÞ'{È-er»0?ÖNN8ç¥a„»“õ_©ß»©¨FSà~£vW™ÌñœÊ‘3ÿ¯Ðø$|VßðÜž+.ÚÀ7=@–jÇÿ{]jüÎ GÃo&C;©wt澆ÇÏWˆZÃÃsê"м9¦_øóZX4Û`òÅg6ªñù¯2Ü.b…^âc…‘’1;$nß#~oÁJn¼=¢~Åß ¾ê×¶©â;Ÿ>±l`¶ha•­­äŽîTBÏå‚ú‚a 6˜ÉÆkªü[¾ÿà1vþ¼&ä­Ý~gÂZn£â€:G‰ƒÿhÙé7ßoš+p°Ï‰³)º3®Ñ«‰€o½°®zgØ<9¡Ábu-cFÕub=\Å0’DÖùƒ*mÀV|‚pb3Áëùv&V›ZY¶¿&¸¢—*o²65¯´c½»Y}ŸP›÷kæ®<ùnÀcùv©&’8,`´m×—-þ¦ 6y„ò‚FÕ<àÀ>£5ĕՑ»vgÍot¿ésø?K¿ÓíuH&ŽYVòäFr3•^9êÔ7ãÈx;Âú½Œi<1[¥×ƒgÓ#•§Rž|®€}ÒI’éÜñ^¿µ…:<’zÚÿÄ©Êu/<ø}ágNñÐkÌq1emЖÇËžGpkêiö÷öÃ˺Ÿ µ¾ÏvVÆ6•ëœôè uÉÆ¤ågÐç´¡k£øÇ¬é:Ïì÷¯Þ[Î.®|¨pCª<ôþþã¿—ö‰ø\éH¢+²v.N »Žƒ¯$VœžÏʼÿ"Sç©OÌã>ÀñêR‘kö†(ãÉ-µY¶Œ~¼WØžD›Åúl‘LRQ +üÍ»œŽ: sÏqëWQûòþ»‘"‘í¶¹†âR-ÑÔ¹226ÜgðÁéë_n~Æs+ÞüK#ò¶®œÇs“ußð©Á½/Ÿä§þÌþ_™÷74¢¾±Ÿ21Ùc‰ˆUQ–$à þL?kŒ3üný¸¼kãXg2i_ù:,s4ªYÂ<›q²Fo-™{¨ y…ÛqVãBZïeúþ‡V7ª´Øù—WÔʧí\nkrò6G,x9ôúYÿõ¶ºÓ?i=Î[;‘¨ÛܽÝÃÛ,H¶ò”ØøÊä•ÊýÖJ©!^N4ï«ê}DlëJÖ²VÓ_ÄýÙƒL†$&ç_̇íyñq~-þØ^-ñ¥ô’øxÝ}‹E/-ÆÅ´ˆWHæ ÞŠ$h¶®$•ɉ'jjòþ¿­>¤®¬|—Š ÷qôD’¸Hýê5D’Ày=ë›4W› ànË0ÀÏZñü@‹Ãž,ƒF²²¹ÕõfŠK‰m¬ÀÝh…ƒbáWóêp§ÒÁÑU«¥ÓsWÙRº²bMßeµ âØÑŸj¹A!9?k #çR¼·Ûó,éQ[ÙøçÁÒÅn°8ºmð‰˜€+µXƒË÷ŽÝ»Šú ö˜ŠÒä2ÉoÕ¢2K˪˜¥ž:÷¯­‹¤üÿSØ¥­ #ήµ6·ÑÜý¨IotS†uÎyÏ>{ÓE½½äöú¤7fÙ›ý[J<¹\0Ø*C‚?‹#Œ`šöU¢ íhµá‹X!Ô™¸B@Û >ñÇçÞ³b¶ÔVøý¸›7­Â"/÷ò {çŸÊ ¹ó…¬Ë%ú˜_‘n\¯”ñÐVѺ¶‡;õ>nµ¹Õ"ø©©=…êÙ4Z‹8,›±óžC_¨žÓ×GðÖ™¥†2 K8­•Šm-±väŽÇŽ•× ÌnùZ<#Än~"x¢7ªÝ²£‚wå‘“þ¾(ø{£ñ{U–ßlŒ{@ßA«8ÿCŸð’8„p¬21_oü>™¤ý›´¹fF1¬PЌӪ®—¨©jÙÒê¿gK!$ÈHI BŠ›¹O¶ Ï·¯_u¶—EIA¾‰#inmc(6#¼ª9«åž+7g§_ó;ÞéÓg§Íƒ"µ˜D6à¨ìW?/ʵãþŽÓáâ „€FÞ1é\õàýC×Ë×ïû~§ÒZ¤pÙøR‰!…`·ÓÎÈÔ…‰Å•Î:c +Tܽ§„5;–žàA$mK!vôù»wÙ«S‹õ<æÓò9O‰Zxºð¥Þ¦ñYÜiV¶övò ˆƒ±’Rì…~]Ê£g ¡‹FHpOð Â{b-[Ç,ˆ^5*Ÿ4ôé€:ûþVþɯës¿o¬Cúè}·¥²›‹x¶¶^ep㓎¸¯Ž¡ˆ7ÄM>R% ç;¿öjX/æŒ1 ƒ®¿—ðöD?òõ·ðp¿üM~£ÿÁ"|0gøÁñ?Æñ¦èú`ÿ·™„¿ûi^Æ ûé®ç™‰vOÐýÚ NÝ_J|ñäáñ…½<]àíOÝø[Å ¨ê´ÑCu¨ÙÉisc0·y™cÄ/«2ùžAr™Åßø)çÄ wâo€¾ x«þWþèö­œRøËO·±šöYÖÍÊG\I*lÇ&T@ÙÌeÀb:áÓ”“WQ’·]ž¿×oBà½íúœÿˆz–‘ð;ÁzI,Â$¨-üG AŒ‘Ú¿*Å.Y»;Ý¿éþ'ÛÒzYôy5ô¶—PHtb ^sAÇL½×ø}jÖ›wqseæ4ˆK2¼‡p8û ƒÛñ®NTãdoÍfygŠ|/xßíõVK[›yä DcÜ᱌.êIfß ¦[x3Ã÷q>¡ Û]Î$Ü‹&š›Ôpr1ŸLç§\ÖüÊɯC&µiÍáO 5åÝ»=ý´°@åEs=¶ÌœðÁ€Î[Æ:W£ü<¾Õõ—‡JñÕ•ÚÈZ}É Ð,æ2’G¾µÕJ£¦œšOúÿ†0”yšD ¼\m, “R·Ô¡7F¶¿Óx@ùväo’ãîlM7„¼G¡x­MÑ4›i,A·m<=–Är26Ê9NÞFqZºÑšWºü{‘8ÊëS#Mð¦oou½O@:uÛOç^¯YÖBü³bDÁ8Vã<à`WCc­x¿Ã^1-<qpÐÂmѦ¶†lŽ9$L1ß?…i‘öJJ߉2‹q¼V§]/Ä­{L‚õ¯ ÞE –“œtʯ5÷ïìã»oøß↟•{m(³°–Yòá(÷ ²B@(ïæeWˆäé¶»ðTâñ QwZœx©?`âôgéê\÷Ï5õGÍŸÁB>.¯Âÿø'Wˆôë9ökÞ1ì5ÛªMÛ¼r˜Ì ð–@Å^â3ÇÞÌ—¶íu4²Ü@¤eöËhf~xtȽÍyøæÕ(Å.ïïÓð±ê`Tyù›·®«MJÞÓ¤ñ ]ä$n$b-Õ(#Œ5û3ûx\YüX°×%‹itd‹€¥GóÍ|ž1ÙÆžgÐaìã9÷¿KlþÙGŸØ?Åw¶²*kÔÙ{4,ê<å>k|²FÈD"P’vÈÑ’¬2ó ªj,úÍÔ²§ÚYò™'©'æ?Rßʽ(E{;u×ùžck˜çî&#éû^rçÖ»i‘K2ßy[<œ`sQUÊ4·½Í)ÙÔµ­c釺ռZ¬ÿ23Àì£PqÑr9}ÁàÝ(Cpð*`9/Ó²¶?­x®ò•¼ŽÝ•Ï[Ô5½#š~Žú´žIÔ5{m2ÍUI2Ï;íEônc“Ñ| ë¯cÿ@Àò͸zU­$Œž©Ÿ•µdOqû^ø¹<³†ŒEúéѶ{Ö½«ö‰Òá½ÿ‚‹xUÒÞx£øy©ˆ¦¤&ÛPA±I˰;H-ÑN7æÛÎ,Ö²¼cê¿$xƒt2Ÿ4E-åwŽ]^=® kóLm<žÝñWuÛÇð÷†'Šh庾¼Ù5âXÃ0EL1H"ÃddaÄœ±# Z|MÅwd«&›ìvŸmmõï„öÓ3$Ÿm°òå(ÇÊbd–6(BCìE|ƒâ7ó<.QT2¢‚XI¼çìqœ`cŒ|£¨lÌd½¼’éo×úüN˜ÝÑ¿©²è§@Óî´ù™_ìvÅd†çÉeuXÁ"Fá`~~€Œôõ¿ÃÖ—qü§Ÿ,‡þ=áAÕxà/n³UU^Œ½Liî¿®ÇEã]jÏ@øq5ýÝÌpÈ“Ç-¬.Në™’A"D Ib p$ð #Á¦_øÏâ]ͬòEžö9|Ep¤Q³Iå­¼m–%Pª ä÷ +W“—¿gƒmè®ÿC¯¹ñ y#í]3G´Ó¼5 µ¬K Vè‘…^Âö¯øce·ã/ÄxËfÚ+”WŒ§Þ;¦ÿA°ºŸ†¬µ‰áY×qŠQµ—ØŽpxéÔwçŠÚ¥eB3{¿é¯=YEt&•ó¨É R0äúz~¦¼k^·¶°ø›â-\Aç\›Ý„hµH ǧ8®üºËý?Trã¯ìW¯ùŸøŸÅ×ú÷ü$7ʧX™Xhznw-œyÁž\ÿ㣟rHätûMA´ËÍU%H¾ÎVækÙÔ³i ÃÈ ¾TõÝŒvÏÕèvþ¿¯ó'Fû6¹¡If%VŠ"{µ°U¤ÿi¾ÿ¦c¾¬øµ_~Ì—†Q Z{ˆæ&&ó7 wÍxد÷ªOÏõG­EÞŒŸìµ_ Xì‚ÎÖí0Û’9Qœ žvüÝ8éßô­+ùZù#„YG-Ž7G¸”™Vê3î}k×´–çˆÒè_¶°KU+¯Ù.•0L ˜;ç9ýi÷:²[hóý²wŽûÛ ÙÀR:úãŒlTÙÈ/mŠZ=†”—bx.F¡lÀ–DG'Û¹àõúu¾šL\ƒ{fÿ–2º.措rzu8.zؾWbKDžÞskquÌÄÅ•?s9ãÃ>”ËûX^ÞIâUûAÎÜrwôùÖZØÍ¶ÏšuG[ŠE˜¢¹<±ÆNsÏë_¤ß 5µ×~x{QYÃ=šy’1Ë4‹ò9'¹,×\¨Åµf%»,>#x¤nÞòfë!ÇãÏé_êS‹­zöãÎî3îI¨‡ñ$ÂHÛH!Fkìÿ†~tß³Þ‘ *²!x¢Ç}¡Î ïËŠÏáõß¡ÒkÉ$–:ˆDذC$‘á› •eìÃ=G^=9Æ<~FYlf¹0Xm®£XüÞi;ŽŸ;Ç¥qÁ'+y³¶[\öëÙã±ð¤’íÑy{¥˜È¨Ä/QØHIì×üýáÀsjs¹~™®J‹Ý·™ì`?ˆý ¼At.<âÈ•CAöWݽ8e0!Àç¦IäQ[¶³›M%¡hD²'Ë(ùü°ªH`íÆy>™®¹.jq^gŽšFü‘ñ9aO:«4%–ÿNƒÈeŽ~OnV¼Ká¢ø‰¦®:O?÷Õs×·³m† [¼¿Èû‡Klö„ôóWŒgø«âȾ_ˆöÍÆE«6@Ç>O_ÖŒÇóF…ñ#2|ž/¸e¼…ù„©þuûÿ†·¼MãŒòoK?ø“ªa>Iý7vITàcïœçåÇ»‚IÉz³ÈÆ=¢?hA¥¾„ðB¾dý®ôË_~Å:‡†o#C­xC±1Ÿãݪڜ~JiìizŸœzjéžtñ}ŠYXªH„«› FO#®:Übkyì­[ÙEÛHˆ·8#ŽJ‚G@<{ôÏåõ¿ˆÒî}Í;r¢/Y‹ÿ ][›×šæyÄSÙ!V¼`Ê7CnèÌv¼'?˜z­ÍͶ»K ó2ÊËõç*9>œŸÂ¼Lvò;qp¼ä•ŒªžÞr¨|,ðM§„ü±* îî!]LËÖByü9à{W‡N¬e‡QŽ–vünz¦ÕFÛÝç–°éÌ©–ܧicÐqú×; ÔnìiOØZ'›-Äí2Ä[ho.iO°YI¯? g:ª>_úR:± Ê ÿZ3ê_ ÞÚ\طٮ#™­çt•cpÆ7Þß+c¡ÇjÞÖ5ytêW³A$öp[´Í¼;åbN½1ÏlrIôÂqæ¬×™¼_-4üŒumfþ¬Z€G†ãUSouÔ‹»Ò<\*+$Ý£Sólù°>N=‹Ã¾+‹Eø}d.¤Xæ´m,bxöHw>2W€X±.O=~SôU¨*ÊZ+¯’ɘ ÈŒÄçÐ ñ1·U©?3ØÃ´éËÐòuðÿ‡V•u(ïO÷£§SÓ’=ûÔ÷wZF™²‚þåxP±ç+Œ‚N¯˽z²Mèx&Ò]_X%ßJP¬¤ZÆFÐHþ#ןCRÒ[–××Ii¢ùw €ÓBÎ9”QÛžùâ­ÌRYäŒI™×!ÑIFlÿœÕEj)^Ö>_ñõšÇâ¸dîÉûä``÷5öìïªJŸŸMšu‘ì/¤TUþ˜+ÍšJì´9´MÜå5mEZÏÆÚ´3 ô+›ˆ¦éûÀ…£ÆzóÓË¥|FÍóÞ¾´¢½ù7Üu~¢ä°Úw¾•ö‰±ðNÅB)UÔ™r å-“ïÎ>‚±­­½J¢µ~‡_­[½&ô&ZPŽè ‘–À¡ç­xMýäÿhX4ҭܳ²ºà‘’Œ=ÁEã0cÈ85ÏE{þw:*;#µOé±xJ8TÊ×°Þ4‘™*ÈÒ–lœ“’¬GNµÆømÒ;‹7â5‘KvÏ&¹«Ò•7¯V{Ylã&íÓþ ìÖž,ð»Þ]Eu/Ù..›#[³|„v¯§ƒÜúTz/Œ4{O‡Öd—¤\(ÏóQØón7a€Áe“*N9Á# æ½Fn MS<R*OÐOkÞÔ~Š隘»º„Û´i岒ѧ$ŒtvüyÿÃÃãÛ;«ù’ÖÚ9Ã<ŒÃ šæ­B«…”«ž†µ(ÖænßðÇ×~1ð¢É Ÿðéà$ŠÛ^õW€sŒ_(ÜÏñßÚ#™Óp$VòÏ®r+<%*ž©‘Z­9GFrþ3wð³B´±î'qK’¸•Û$lrköïþ o­xcÃß±·Šíõ¯èšFµ}âÉ z}ÝÌp_:-¼ 9 &Z2Y‚€ƒ?ÌÛ°¾æ2æJÚêyx¦œŸEùŸªÖ÷ö7Q,–·°\FÝ)•üA«Ê»€ äW¼ÓZ3½Çmµð‡íÃñWÃþ ð»E×´³­Añ/J¾½Óe¼ŒÍ­²Étò¼;·ùa’X<Äþð¤“iµÓSHi5ê„|7ª ï ¥ÊLš†Ÿp ÙÊc¥v`ÇçTeRM™ Û]2\[”…$Ógº˜ZT‰cÏwgq\`ŒÉ<`sùui7UÜû¸+Àn«¨C¥Z–½†UH‹%v;Ç p¸¾ã…ÁíTQ¾MMÙÜܴê‹°u!`A¨Á¬cmK¹à´7ĽSÀþÓ´ûÌ:»’O”ß*Æ:äžNd<ãq#­qŸ>$jWz Úö°‰k ‰Vòöé–"ÍÀG$…ìHþo|û¨)ÐO¿ü1çΣVr^øí¬_øú×Jšé-48@b²O5|£§ cªƒ´dœû Jñg†®u°’kÖ>\À*ܣ݀(BòsÛ¶*1%h®…ÓªšLé¥Ô´ËmâK‹Ø~Çm4¬f  ³3Ààõ="¸ÿxÏÀþ,µ¸´ðåô-·ï%ŠÝeG*N7m—ï.q’£‚ÜòÜóB”-{›¹.m «I<1m«®Ž÷šq×."i–ÙØ$×wù[÷nWŽ ÆsL{“áÿ­³Gy#Þ©Ê´µyaHç§ÝéóÁAÑ:Mk}ÉŒÑÑÉazð³™!VÈŽ&;¹¹Ÿá_|~É;Wá_ŠBİíe8RNO”¼äšõ2¿÷ˆßÏõ81ÿÀ—Ëó>³ë̾2|KÓ~þËÞ6ø‘ª,ráé¯4JΩspÄGo 2#² &xã/´…߸ð }äcÍ%çÉ6"þ+ñ ÷о"ëæ»¡¨^\½ÕõÕýã f•˜³»0™™‰ÉêqŸzã4½9uïÚØÃ &\'™µ‘yn[œã5òõj9Ö•Gæö>™A*1†·{zl~–|ð…½¼O¬]³³¶lrO D«bŽ9$ã5õÕ¯Ç-?ÁŸðO[¯‹6 Ø\Ü\ÝZø|< ;N.%Že>bT„ÊÊÄ£e•ó‡´©wÝ#Ù«.X|ÂMsZ{ÜÝ«ÅÊ·È…~Qœ Ð\>µÆ³‘ @¶í“¸ã¯ë_K«“lð­d‘Üø+GûN¢.î!<À+޵ôw‚ôiu¬ñ¡ ì"„í8ýãÀ#Ó8;OZò±n£;©Eªgè‚4U·´BaB€1ÇJö :±õØöëߥpÓÒ/Í2§º> ñ§†‘?à¢^->ßé÷!ˆÁ,÷‘IŒ÷ëùWèF¨T˜Ôƒ´ç•ÑSh6+Z7úþÓš²~Ûž »Ñ¤K[ø|+öÅ–BG’`šå‹îQ•?"¨ ›<ÖÆµ¥›¯þÎóJ$+?…5˜Qf›Ì}‹¤JȬà.óµÔÚ2rqÍ[“ö1‡”ŸàÐI'¯§æsÞ²_øUZ­œH±}«V»bª2÷ÌWèE|ñ'ƒÇws+ËK{GŒ‚Ut•Þ9•-åŽX&ü#æŠRµy®ÇO-¡{GÂa6ðËQ¸‡N¢]AcºKÜȤ`X€`͹ÉaÙ÷Œy]‚¾S‚C/†îxWi# äãåÃÁúƒÓ“ɨ…–"«ô6ÚœW“:½>ܧ¶‘ÀÄš\„oizöç)¯Uøiâ;;}z Úm^+ !b 3&ã"+Ÿ)ùÎÌu)S]õ»+ùm'¢>–Ž(Η 2 ÊŠ ƒùVɶS¦Å±¶¬g‘ÜžFGàM|$'(Ï—ÍŸM(ÝkÙ\•M,Hp ú+æ[…¯í‡®²¥l·‚89f„Ÿ¯ß5Ñ‚÷]V¿–ÿŠ&¿½ÈŸÑŸRxI´˜ž6Ü:ñÜdŸêkgÆ-ü*ñ È®è4É÷¬#26#cê}ãÖ³–•¯æ5ü3ⵎÂ}B³–;“©O¨Ì [;x]õ-ÒüÍÂ’+÷þbÊ£i#hÝø[Ö£¼ž8µ-?IYQ5IS›‹§`dx‡@˜P¼tÚ99!~ÚšêÏ™›¶ˆï¾)jZž—û$ê7Z=уT[uŠ_3iËIsÜÞ¿>&WF¼ŸÌ7S\°2ÞLä5ÓîÊ/üóR1¸õ?’ò`b”&ÖüÍ}ßÓ=C¼£è}cðJUýšµÿ4yŽu;´ ëºÖ1ýkÒôX›ÅÿôÉaF~½‘òÚÚX®°ym†½šzTG‘7g/Ñ9w#Ïho~YŠH%–ða|÷Þr®؆6 Æ>SÓî¯Vé'ý’uu˜œÜc®r!lW˜4¹%ÙžÖ·¼“İAjnú Ùæ`‘ÛËÒ ??›ž¾Ýh‹VÐ,’kÛ8X\Ëù0<òW%qŸ\cÒ½©Ež wŠÎ¯sºÑ Ù£‹qEßî7?3î+^hw^y’ÛÉ4Q M ¨P:ÌØÁϦ­E›Ø«ê:Ê}æG·¿ntÀKI¼Ì¤õÜ2ÆG€®gUŸE¶Y!Ò-ಷl¸»rH^¸Ý޹àé“Í.^].W2ß©³£Yé¶š:½•½Ì¯*yŸiµƒäv±'8 ÿ Wò/Ï‹Y/.ÖÑ`*Qœ(V<å@:tìj¢Ú›)Æñ¹äŸ,ȶ’W dfîcžßñéß³ïˆ GT²}ª.lã¸ÞÜ1œéÎÿÐVé{ªÆÊzö*|A¹‰>xŽâ y›"0 ×zn–3’™ÈÆ9ÇS_(wüÓ¥ðüÉ­ñðmkpH9>ý+ꯃòîøOd&Í^~§‚VlŽã†{Š‹@¤ìÏFñ> ºb—w*ùvÌ€a\F6?àŸZóí'Jѧø£ãˆåÓ`¹ˆÉlö_n…&x×dˆ@b¸þÈÇAÅq)>WmÿáŽÉ&ä®vš—ƒ¼8¾ ÖAЬa“È›eÂÙF ¤‚ÞÈçØW‹xnšúÆÞTÇ$Ь„ýàO"¸¥7-[=Ì R”­ÙDiá_øNtÛ ÎÒIf·F´Ü*´…~RÀêØä×Mà¿øjûàÍ„÷ZMµåä¶¥¼ã¬¤+¤lܯ…,:’ry5ëÞj’wì|òQö[¹ÛÝ|4ðiÔ5—HU¶ƒÃú´áô¶ÿéù[wg8þ»AÅxƒ§h–>$xžÞ{>LË¡&`‘†YLŒò:VnU¤­¯ü²œpñ»¨´±èËáËm`§ü"ÿ o&E ¬º†·wNŒ>FR÷)ç*Äs×äÒéÓ¥ÕÔQÛÐ[™ÛÌÔå$·<`Œüþ8­©T³å”ùŸ¢±Å:mûÑ*(jÓjF‘£Þ©¾Û#F#óÊÜç¯ÑÙgöøûB| Ÿâ£ã‹_‡’çÉѤmûJMT!ešM‹q Q” ÉbÄ? Kz8vªHæ«û¥¯CÞ´?ø'ýµÏìŸñ?^ŸÅþ(Õþ$xfóWµÑ¡Ñ&…ô½qì÷yK٥³:µ»§ FåduÛ_|~Åü?ñ/öð]†yhž 𶙬éÎ^[%LpLÀªœMb@ÀÜd@Ìcl{{Bɽÿá¾{žt¦æšè¬Ï¥¼SâŸø+áþ©âŸjöú‡ôè|ÛËÛ§Ú‘¯@=K!U@,ÌÁ@$_€ž"øq«|sñB|iÕ¼M©è¾ñïÅTð7…bñ-Œ·WqZ]¹hç¼ÛeŠ Â.7e2G2ùŠS›äs£(Þ×ül›kòü ¢Ÿ´æù}í#Î|2|Oàÿ‹ËwOÕ4‹v–î&¶ÓBËa°²ï–2®lò°F,ÃyR6úæ ÁV±˜ÅÒ”eÌ{.ÒJðÄãžãhëšüÛ[™+^ÿ®¡Í{>‡'«Úø¯O×íílôôk6a¾{™b_(:ä>Qˆ F@Á9Žk©¥£¡­1V"I !vã¿$žã5æû¼šnvYój|û_ê }ªx?3ÎòØÉ9eâž¼8ì1ë]¯ì§ Ã?ìÏûDks>Ûý ÂóK“{(ŒÉmxI?xÑÕ°H(#q¯£¥xá#ýu¼ß_ŽŸðUoXx_Áÿt‹†I®H×5¯/pܹxmb%_ 3çHñº» 1_y6£NR}ÿ%ø³äé®j‘GáµåÄÖZ#k¨LÜ+AŽß¼c“Ǻ õaÊû[ÏÔýIÓ¼+goû;kÚ•àžMË,2sd²Aê Œ×ç§ÆO]Zü%ð·Â{;–—FðÃÞ;);¼éç»–b[8Ud]§8òÙùràá´¯³oð±x©n»Ÿ$\L‰à•î;/'¹ÈÇ®zÓl줿Õ#"†L‘½ã=¯½[òÆïCÌø´>Ñt¿³ØZX[ 39Uü1Æ}¸'è }Cà Ö´K$³NX« „ù(7;ä©]¼µaœêF8ðª6îzq]º4-=a´6Ò3Œ‘ÅuQǵí@ùNücþk4­t»3'w¿s䝯‘ÁF<(ìÙ†?èŒûWœn¶Ïô¯³5Œ­´mœžvöíZIüÛÜûÿCäOŽ:ø›öÑ´=sx‡VÒàÒäÆXÚÛG,·2¸ ²âEsµ•ÃDœÕ?Æ¥‡Áÿ>éú[µ¥½Ô´»bÄ;CØ%°`ÍÌñ»<¨Îsʇ½$¥Ùÿé,Oá·šüÎ3Âè¡5TÀ׆D (ʧE ã·n¿*üA³qñVPÛ¤Ò`B".…‘aÄŒaÔy{Šðà&vG.c ­j—òüŽÙ|4ÿ®§·|IÂ{ød]IÕàò|¥‹³a'ËÚÊÊcÉQr¨ ùUô‰4ËmjÖä…– ¹c…ÊåŸkmªNxåÎI`Š:1§NQúåEnƲ‹ö1~§M ÜÚ·Âí'× y-"·¸˜¢HáÝØ9R"£‡s•‘–MÊÕÞü9²ºÖþ/Gye&ßiSÉ œÂckéØflò{B¨ÀbÄúÚå¹åQOšÇÓ1an™MØúÕ.EQóuÀí_â´û³ê¥ð7³¹…“wVùG¶OøWΓÝ<µõÚ ©º¶1ýq Rí?Ò»p—½kÿ#üц#jâ_©õ…öŸ¶ Æß´dO•Mkx–eOê‘ÈH‰àuÛ*í¹HÎOµeg:œ««+™Fßcâ<-uâ?‰¯ciwr…#+®]4šÕù­ª¨iÝæ9Î 8*zM[ÅÖ¶z…–“á«Ïìß Ú\ 8ç¶` äíû½±žè²\qHÏ~ƒ’>UGšfv—â;ïþÅ~-Ðî$mF÷L´ß,—R³´ª“ŽXóƒz ùÆu{«)g+ÆÕ&K vÚ6„…zyHp2$jóðÞìçï_ï±è×wQ·cëÙBáæð§‹ôyFmášÞq‚:Ê®­ÿ¢…g^ØéV^/Ô ÄÓ6¾Þ×ÖÂE“MšO2cƒ€Wcc¼9*¡Džœmº<š‹Þ·õ±ó5ÌÛ|3¨ Ç;J&¹‰¿v] #¦È—ŒŽ9ë¹ú“Ñÿj~Ìz´9šY4ˈã©% ð³$ùSó=¬7ÄÏšoôO´äÚkÿiÜ@y$1?QÐÆ–ëJÒí‚BÆyf@?y ¤¨Ï¨a^åÏ [cbÃÃñ´O¤³2›v\täç ~cÖº; =c–ßÍ·„pé8¸‡\¬2Cžsž¢¡§%bÓåÔ»uá+ÝB]ºdÑÝÄŸyÁú‘ß=yÿ)að>¶Ë…F:<dÀ`ãîð1’0+–O•Û±ÓI]áíjËPºÞn--òÄlA÷U©zŒþ|äTÚüfÚK¤‰?s m@Í– 3Ç®gŒc¦jàï+Žª.‡‰øÒÒYü+(`¦1'’Ù#œôà}ñ^kà·Ö­¼Ea¤éÚ}Ä·š{;R¬9›tkóù˜rHÕÒµG—¼ŽïâM忇 µœ—ócf‹ifÛÉ÷ù„gè|ñŒà“[RMDίÄkÛ©XFHϱ¯¤> Èóè÷Ö;C¤-9ößOý–”Þ‚†²=¯WµŽ÷ÄËe$†YâV˜®ä @SœvkðìŒßµ¹ |\.Ø÷ŒX§ÈAöó£ëëé^Uí‘éÛSÓ¼D𧃼D ;R; °â#Ó=¾µó§…BoLY$FfMÒ1áFá’~•Ūl÷0KÞ~ˆçþ&ܬ´>³5©òü™"x˜~XƒùŠú§AK{Uµ{”6vz‹‰#a°@ ¹Ø 9 dyë^Ê¿±Qô>kþ^·êdø—^ñ7Š´?ßø*ÖH<1¦ÛÜ ÝRBÈ—(Ï2.G\,Gh‚Ÿ˜¨|Wžü'·I¾0ZMwþ•,EÊ4ŠÏÝŸº:½G?ZËÝ*N{Þÿäwa#µ9¤´KO»ò>¸{‘ ¥ÍÙ*;{y%gÛ¸*¢'Æ3Ö¾1¹[Fñ¾m/õ¨°qþYBã|c¡éÜcÛ©ë\¸DùÓ.¶ÏÐä> À¶šƒí#}É%š\p8ËF§ô,Ãð¯é{þ ÷,rÁ#~4kµBjHxêWSºSúŠú, Õ]O 쟩önxÇô¯‚¾/~ÃÖ¾)øß{ñ7à×ÄÍWà‡5)Õ›JYL7Žû‹º4SE-»ÈÄy…]íF³7º¿¯ëþ´yQ|®çœé°wÄÿjºSþдv¹ãoÚÞ‰t [›»•r±”FŠâêb°¸‡Û⥀`NàÿÚ¯öbÔõ~ÏOÂï\ü>𞓪A£hÞ·Óä½¶µº··¼¿Q ÷($¸Ä2͉ɹ¥ÎsMÊmëÑùt}‹þÕTŒe-.¿¯‘ó¼‹e=œÇj,¬vÌL€U°RrCÃ'¹ç[Ì‹û:!l#¨I<,‡=þ\޾‡¥~ceÉib¾- "¼µmZnoL×3lGmù[ˆà |»º!aƒÀ ÞX’=´ ‹ËÄă–èÊHä{pyFk‡hÞJ÷:tæ±ð·íf°Ë}àï+¢7K&ã‚wy$`g§§~OÞ{WìÉ qþÅÿµ*ñü/„©ÜÉó}—PíÀ#7~Y澎‹k ÿZžLÕëKúè|›ðNØÂulÁrÄH1ŽzÒ¾íÖü?-ƃ§mdù¶¢¾êç©õÇ­u«ûvb×îÒ<[ãv“{gû(x©î›hf·VWM¬ø»‡žFG5Wö–ÇJý«ÝüðZ­Çƒo9ndTU:0ÍÐà°ú+i6éëçù”Ñò÷€´»{¿‹lë´@._Ë*0 nëÇjûùuH^ëÃée Ül2Í*à œtEpc#)b½?à-+3Ø¥®¡•Ù6L°Ä±¼ªlùIÎH s‘ŸÇ³¿dhã·Ð|uwÝ»·_5ß3Q¿aåAÁ ×ZåÅ¥Ó_ÈXöžü¿3ë=_XÓt êzæ³™¤iÖ’]ß^\È+xcRòHìx ª $ô¿’?ßoþ0~Ö¾6ñö¬RuI¦Ž .Þ ‡th¡ü¸8ƒíËmäç?cŠŸ%mßåýXùì$yªžñgŰYZGI,Õå`~¥ùý+ôkà’çZ¶B>Ëb¢(F8Ïðüëâ±’q§_õXt¥RS_¯êz|[{ðóâÆ_Z¹ŒY?†aÓt(ЍÙ(š7Uç¾üÒ‘ÉÆFp~Tx‹XžãX¸¼{†K¹\á g<7'Ó…õàú×F?»õ·à‘Í]®un—üÙÆ4ƒÊÚ%ƒhþÿZ½;Á0‰þx‚ÉíÎ}+jòå§næ4•æ}à›ëïµ8`0 „'Óžiôú«ÀZ9_Šò‹2+c¢ÕÂþnç=yô,•Ùè-"ÏYñçÄ?À¾=øár][ÄšÔ6~Z°>D.â?0wtQž¹|­{bBMÜq…ç’21ÎÒ*š¶ýS0wq¿™ñWÆyäÓÿj»½M_cÚIitq*([9õùs_sê› ¬#æn xéúÐÓ´ õäx_Ãj–_üoãCÛ®dÚYŒ® #Ëòà~Dù”0c$Ÿ"ý¬ŸâÁO,´e¼Fž2¦¶NãÁ=j¨¥*Éy?É’Ý—Ýùœ·…6¸×¼°Rüí@›B€‰´þîßÇ5óÇÆÞÛâM´%c¿³QpÜ¡Œd¼ü¤Ç9?ºó«<:QÄÔ^Ÿ‘Û?z?™è_®´ÝRÖ8üˆÏR]6ü¨69å‘vlPß4j¢'ËÄÌ|_^ŠÒçâß‹ây ³Yu+¡-ÕÓȰڨf%ßj³HÝU sµÜaSRxÙ®ëüªJÔÕú-ôŸí[hY¬o'.’F±²nÛq-,»™¤tn¤.è×ìÝ#D²ðï„a±²‰TEî*ÜÓø“Öž2¯-¢º³›îü‹ûŠßÈäu'·½OL2ã>ã¥|}í]úØú¯M[±vIœ©ëí¸×†x‚̧í{ Hm9äÀìE¼Ãøàüë· £«ä‘Ë_á‡ø‘ô¿ƒÜ1¸9çäcÿ|ð®7â-¶³®üNÓô-VM'OM9îwÛ±Wy7lAÀÈî;÷ÚËÕKëIùhcŠoØ3çïk>ƒáiü ᛟ²YX :ö¤§ˆGüóÜ>ô¬AG¡ÏÌ£É./ÀŸÂ×zm­ÆŸÙÈD 7.ÙeÈ\Ÿ•UL¬sµHÉ9Ã}‹ºVgýÏDø~Émà/‹*IÓ¯W¿#ŽúWù…ã—Ê•ž?$Ê „ãɺ½K~¼üÜ4«ÕõG¡WhŸZþÉ— ö¯DÍûÒ¶l¸ô`Oê)Ö¶Péµç†-g2½”ڥΞÒÍ+I#µÌ/ÜìK3ü³I99&½8«Ež]Mf|—¸»½Ú…½[òmâM±ÛÄ‹¹Ir[ûî,Ä–ÈúÏàµçÛ¾Æ%ùöJÊàôúW“™«CÑž¦ÞZA§|+Õín ŽÄ+p>Fó"yãÛüûúupø{SðÖ‘;¤Vºã•->ÅÄxo˜ã H=i¼O3å9%rÏÚ¼Hú¾›{g"\Ø[[˜_c¬¼É ¤ýÀÀ¨¯u)u+£&©áý"âo8–K‰#” Ælqž:óôÏíÝï­ü¾~¦êœ^ûúUî«oãk»ý7N{HAR“‘˜ c÷›¾P8 ïÏ cª¾ø‰­G|^;Œ3â5Ž [y'åÁŒ‚:sÓŽê½³œ¬ÿ¯ÄJ)j[“Ä5Ô7·öS-ÊÌȤ8$!pGƒÇLXšæ±§Þqm,Ökpãu„À-†~`Aè[-ƒÏ5ÕBJR_×õÿƲќ©hºŒsFbP謮œà¶0GsÎyé\ç‡,RÍd˜‡ŽûOÔÙf‰™0ÊÊA‡9t®ë»\äZ§Æ¼:ˆ»3 „©ëÉ^¾õâÃÜäæºiü橤Í+RY~þ ʉ¦kC~ Ím’?ø“S=´;)«žÁâ&fñ ü) vV`\å¾`[ŸNÕÏXÛâý*C/–‹g}†\Ïöˆo¿F?Aí^rVOúèÎý¬w&}þñàø”\c¨ÿ–mþ ù·L8ˆ ­ÆÃå—#±ÆsÇç^w™îàþ)z/ÔÍø¹ ÂÛûRÍíœs6æÉ$î^O~¯_‚úÿÄèš\1ÿgéóZÚÞê×0®é¥Q( qUÝž#¢àû0~ê—eý~'Î4Üœ{ŸYÙXXZþÄÿô;xDéºmÛE„–0zžPžzäæ¾MøA‰±œ,lÙôýßÿ^¸k¶ã6zø5iKü?¡ô–²§þ½v'}ªt‹ÀYOPmäȯá’Ýôï&+X­Ú !£–H¥gûC5É}í’@!YS  ۉ¬+²ùÿ‘Í[â·‘ÇxÚQ/‰ü,…J˜¬O¿ο¨ØÃsøKþ kð‹J¸·–ÕåÓî5“2–+yy=Ú·Êq†YÃÔÁȯ¢À®¾_©áãþ¿¡õfÿAFóÏjö"èC.' ¯Ï¯ÚÏö–ð§Ãÿß´=>ûF×nG‹neÕn#סEqhö+çÆ±Æ¡, 1\ý•—ø‹&I]½¬ÿ&ŠŒyæ£è|âŸiš†¨þÒ¼¾2IoªIrQ7fF" H^8ðgO‹ñè³+jÚ%òŸ'þ$×Q«•ÇÍ™p2úÇ󥇓Vz7#ìUX§¦Å=Sã†5m$Åm:h—Ò\G+—R`l†2!Ú¿7EÇ=Æ0vGŽl\ö`ý¡´)î#µÔµ_†‘YØØIjÆ{ÙþÏ|¡#l€§$.9.½1ƒèÂtãAFëOó8åûFí¿ù8ü´º³ñÕ¬W14.bg ã µÂ:6= ²{‚JûnêI ´¶–Ë$|eŸ¸çÊ·Ú´ˆKÜG—|nŽY¿cOÍ"6wZŒ¶Nßô˜³Ý=*/Ø^Õ×ö²Ó5bO‚¯Xé¼·¹ý+g+Ó~¯ò!FÒ>kð%œV¿¯`W¢\Ì‘tä†Àý+ëÍ"ÆKOh¼Ò:¾ï”ŒŒíúñÐñ\؆ý´iÛ‘Û ‘ÝZÍ*¹k¾Bíb³PÛ¶ñ­é×¹¯²ÿd‹¯6ÇÇïF1½›`‘¸OëÐqüêrÖ¾·ö¿â˜±éýY¿OÍqÿ"øÃ'ï؎é—rZk~6»kGhZh¤[ÉtVD Å ‰‘Î9¤#8þr.µ¸¹cöá‰bXœã'“ñõ¯M‘•4RÄ0TÙ‚©' À’xé^MjÞÓe²hì§L=íºY\8aÈúŠ©ºå»÷ëùW+ªîë«üε­%è$v¾s» ¸Ï Œñ^ã‹§þÔ¾¾Oô!Orâxÿ›b»pÚÖiõŒ¿&sV^ä_i/Ì÷Ï\ùšŒñ¬;ÿ?ʱ~ êoŠQ¯ï…‹_imcnRB’¼²HBùÉÎGN¼šêÀ'õ¨¯/Ð»þ§Àúœ‚îì›Xž×F²±2®Ñ<ÉòÉpø'#p!W=1Àà/G®ÙÚ[øKÁZ„6ÀŨéÒþéæ`e\H„±r2S{s´ä××ÅóIùiJÇwðÚ?·|@ñ–Ž\"_ ˜Ç°q€séÍx |Ñîx˜†4Ì»Upsä¾£9fýyËñÑ_¿ŸËõ;ê[–?×cèÿÙJI?áyk0‚|—Ñ$wã©DÿÇz'‹íÏü5ƒc#þkGù} ƧP¢½M<É|kúêÏ‘î¬ÛO¿ÖÖG p·w÷7ÞÜMó/—ê>¥sü8úà¤Ïið×RV{p€É¸p†fÆv‚Ü ž?ýª?hoˆ÷_øñî­e•¬ ̱Y;(Ÿ³Fâ>`yÁ<×7‹|U4J¶‹¦,)xn›ìRÏyNAf)(~{‚FxÏA^]\EIéÓ±éFœ`¬‰£øƒâh.îf‡ûJº–ì]\MgÄM'Í÷å†@ÄÄ•fÁ8$ êo~?üO[t¿þ˾³·òØæ9$’TIöù­#6ªç‘r ’Vžê摼v?E´ïÛÉðÓK›ÄšM¶¾±Ho£µFh‰( [œ¨Ý×øñÚ¼z†^´ðÕ´š·‡m¼ÉXySÛ)ŽGÀ²#lö98þ,äô¯™•I¿á÷=¥§ïnðßÃia4wÆòÚH]—È·Õ®6Æ@ –l7Ý޵§àÔXLz~§`›%Ž_0¨Ú8ýâ¿~¹î+ ÐŒ½öµþ½ c&¯¡^×/b’èx¸Þj mìf¿³ó˜BÛà)A˶cØwæo-¾"Yk’ZÚj–Ó=¬bª[ËDá NHÀÇ$öë^ŒgÔ¼¿3‘ŨÙñ‘ã¯| ›Mñ=°–ÃQtûTV—öá‹,žb²îA·æUëÇáY?uSá?Äõoé‚j)¥Í¥´Iip Œ¬Û‘NIʯn‡¡›ÄF^ìvôcön³°ð´ZWŽnõ[“¨Z›‹¶¹X¿±fu‹qܘ¹S€NOçŠôɼ_ƒ}¡ÝêéÙ£R L˜9`FNáÐàœwæ³UeVoOø%¸ÆGªi_¼)«éÍïcYK£–°@Ú¥wuÎNqÈ×Ý_±Ÿˆ4ÍKXø‰eizòH¶ú|« À«mà12™#û»²úS§Š\ËMrcf¥†iy~gä7íùñn_ŠŸðPïÛÙ+6‘á‡ÿ„wOO²î-dq+0W`áîZr®6æ/,9ø*þ6¸Õ ÓmbùÉ ³ìi–?‰'èOà+ÔÆIKÖÖß^Ú~g.¸[Û.þ}¾~øN£iŒ4H»Ÿn9ê~¿ã_BëŸõ?†iñÄ€½¬öú}–‰á&ŽÛ.å±”îŠX·&ÙfĪA FO"¾V6­Yùÿš=éZ•5ä¿CòCÄW‚{öŽ<2†(V6Ç–F3ìÀ_O—=ë”ÈùfÏ÷•÷ùW¿~gvx»/ò=‡ÁZ9²ÑÍä£tÄü¤¯'¿?Lú£áï…›÷sʹ‘°dÈ9ÏP3žqŸq“ž+Ä­$Ûhô©ÆÉ#íhCº•‘],+ÇË)p$·]Ù8;¶Ê?†š§`ÞG|FÓRoø(W„]À.uý.Dùs’²Cþ¾ÔES«Â îR>lz`Ös»Qôd%§Ìù㆓e'ŽjMJC&–†]‡%ÑÑx?ÜÉ'€ªÄGÔú}üº‡ÃÝQ›æšöÞ)ßbh÷Êõèk4ŸÌªr0;T[-í«ZNÃqÄèà «!\~F¼ªWuÓîκŸÃh³1Ù¬_ áw§’â¨B›ïKÈ<~)ÕÒ»õ˜ ¿t½} Zç¾ùÆ:ö¯›>/Ox>4x"úÚØ\Ú "LF¿3ºÌ7*’Àó 0zžxíÂ&ñŠ+kJÿs1¬Ò£wÝ~g¯øO^gŠ5Y/]Z´_µíX¶6Èä6 7ÍÐú•?Å_/|Gø‘©øÂê×We-Ä7Guܨçå»<°l±€§StJß?øcм½Þ_6zw„¼'¦ø£ödMAíÑïc‚æ)_gÌ]yÜûí } rŸlÛà·ÂO³öejãÎAåÆÉ¨ÎÙvÇÝUhÛËç{c…¯¦Œm¼ð/ûËþOå|y˜‘ÄÄûåM¬KB Ü2psÛ&¼23 ¹šäH˜‹1™åM«ý0‰{±ÏÌÀéË7ŸOø³ô_©éÔø#ê}û/^ÇgûJ^ZÊvµÎ5¼c¯Ì$ŽL{p^¿ñJâ=+âÜ:äå 7U°ºã¶Ù•‰¯ElyµU¤¿®çËÞ6¶[ÚÆÖñ5#ñ-Õ»It0!Vº}B9ùŽK±²8ù·zÀÙŠéS§9ÙÎÞ#Šó³û¶ÏC º8i,$²ˆË躓?§Ü©ÈíTÿá-Ñ–8…í´·ÓDFD`F»ýHÈܧ×=ø®>G5§ü0&£¹ºgMfÏ©M¥Bɽb–! @ÕÃÄõÈ8æ¨]jÒÞGa§ßgææh’e$*¶2Wƒ’'œõŒb“Õh]Öãdº¼Ôõf0鈷‹’T €g S’N¼°ª÷ÒL5híîÔêƒýØSˆ —np§ãë÷vŒc¥žß×õþFmõ±sø“㨸’Ah»ŠôÎæÍpÚ‚ÙÃÞºîÔN9|LÕ‚TÀZ÷¯‚¬ßÚÚ¤[w ’åªä’wsÒ±©¬Z4§ñ#Ò5 ÷6¿fŽC9ŠBTÄÈUŠãû̧ð¬ÈÂZÙh©p6@—±ÉFä´´ ‘îó Ç àªú#¾ «:jVúoÂÝ^K²GÚ,^Þ,/.íê~€Ÿjðm¸¶û3Hщ®älÈê­`®¡Íýt=|5›û™[â…¥ŽŸqœ-Õ¯®ÕG•±Þ&虎2NÉIã°®@·ÔÂm[ðоÔ|@òKcuolÎî¿;²7ËÊaYõ í†'Ô¥6✵¹óõ"”캢Õm›öLñ6¯h»„Vw.²–ÀuXC)È< zz×Ç?LW><ÔîdŒ`‘Ô„È¿Ó"¼ìF=ŒÅ/ð³Ù¼_e£ðû]¶“xÝg+ácS"òA”ò‚¢G¦‘Ÿ•VÇ=²ÿáO ï¿ò9ë|_qÌj—Qß|~d‚gîðxü+û!µ ,FTDq”û¼8éÁ¯§À/wäŸÆ=~lŸ>õøÿ8oüBý©5WIðî§'Âÿ„ö¶>­ªK¥¤z¦¡^Ÿ)‹fB`šÍX(>YUß6=ÞÄ¡ÍJnû/Õ/Ôá¥üD~qøwN{ñs$1»ÐB㉂“€SÏOj¡¬ÚÉc¨Åæ ´Ÿ/ ‚PÈ}Ã`==}ëçš¼QìnizèР•줶³–0òBÁpwŽõ“Ÿñ2Ú Ý)õý&Êñ.¯´ûtbgµNOÄ’6àpN@©ºøµ?a/mã4Šbè®UˆÂ·lç=8=+ʼ¾ñ4·¦Ö[H²±–_™@É*HÛŽ™ëÚ¾c™BÈ÷9y¥c§“LV„³+DY‰;•”1#' ÆzõÓ¦ióÛ<óÚÂm”Nʶìð3ØšÒêq½ˆi©XÙ°}žqS„Š`8^sÜq\‹Ï¹õÆxâ Ávƒ&ïŸwçíN¶‚Z$l^XXi2¼sÞ\G0¢@#9çq’8+ùW!©Ik¨êËk{§¥Äfßs=¬14«·¡ÈÃ`€:zâ”Z—C¢6hèu;-ãC6ú}ÖLJzþòÑ•‚î*¬r àr22 rðÛƒ¬émÅ®ÔóÖHß–UOÊ2 r^ƒÞµŠäšQwD?z/™Yž‡©øKAÔô{xîtË=EÚ)Y–â×*iüŒ1Éöí^¿àxköyý€>>xóÃÖ6šVµðimgi‘®åY"´Ü®TH±É!‘“$ìYRx>öY+âãìµ<Ìlq.]ôüÑøs,N׈¶D Ø*ô\m* c'“ߥn|2Ñ?µüvoe‹|ÄS¤?tB=*ëTožmëþeSÁúìú]>óô†xu‡±ö©©iVÓ¶½~†ÎÒkpÁ¡’Dbe ®¬ŒŠ®ÊË»‚3›ÿiÜø—ö‘ñ-‡‡ìîutfº m-K4fi.¦#``ˆ°»±9MoÈšò°i^ï¥ÿC¯ÞËÈø†yD—ÌñŸ—*zV·†t“©x’"#4 ‚§ŒñÁ¯^o– ždW4Ò>—ð®Œ÷šüGè!e‡3~>Ÿ{×c9¯µ¼á¤_³D°íAÉ!qÏsõ¯z´^:&Ϧ,’ÖÏì¶Ï,6óÌÅ-ÒIUL¬œ¢FæŽØ;Q@q—å–øí£ÄæØò3€vÍ€}:EGÐÍly'mÕ?o_;0 &¯¥¸Çoô”_ý–¾¤IÖmöò_sޤôüêñ^Dï™òeärüpý¬çӢ݃ü;*Ë|À´o!V;Q‘¸;ŒnÛ‡*ø úÇX[éhÜ|²`ß'ü(oÞK°?„ùû[×?á%ÖÍ®--íÚ byÊàå× F`aŒ»7r8ùcã…Ã[|.€JÛêѺ¼!UfÀúž˜à~:ÂOÚÆÝÉi{7èw¾D·×õI ›…Qew¶àvð>_”c×5áŸtÛË¿x~XáìÖYáy#Ò:°M䥗%—z»¯ )¯¯9y~‡¥kaãýw3¾èÓj_ »Ó"ò4 ä`=Ã)?6ÕÈÆNzf¯©c`³ÊÉÚ¼¬Å©TKª;p‰ò¶ú”ä˜pª6ÈÞ‡Ú¢†áÒúÝ9V dgžGõ¯.Õbßs¶Jð~¨8}RCfPé´ç‚3×½YEHaFP /sߪM÷ÿ #™×.&M>å æå†"Éã'€O°ê}‡á_?xêce¬ø4ÜJnÏWv‘ä;ƒ-»ôÇ«ÛÀGý¡7Öëðæy˜™{–ôüÑïº µ­ßˆW0Ëk,&=Øb¤ŒÖ¾š‰¼5¯n3a-âv,˜÷ˆ¨_û£nDkýÐH7>®U'Ý/Ôç®›²}ßè}yû=Ù›ÙgÅGß·Q¹ “Ð}’"Ͻy/Ä»k»?ƒZױ˲x‚í­^E"%ConK…?ëÊ7ðO¡[.Õ¢üŽ[Àr˜>]qÂÕ²9ã®kͼX¶úwÅ­OhßR1êw0ØÚ«B Ûx Æâ-Ó’|è?ö©z/ëñ;ê¶©#ÐþÈ_ö×ÐGm×oÀÀ?èóW¿üz¶O¨»’XÑúd¦>¿‘®èlqVÒGÏ¿íJý¨¼qñ9‹Tk•iAXmVp²å¿$„í^8UÏl§Cðb஢öàœ ‚=>l×9^‹;°º4ž½Ûqs.«hÍÆÈ¥\ úWžß["]•¸´Lç/q Ä`öù·¹÷"¸#/+”·§Ekl²Eí“g– Ad9༞þ¿ZíÌZÕœVö 3J‡œ.d¾'OOOY›’|ߘìš']:òHD«$úAS÷-ÆÙdÏÎî~\ýqÏJ¯k¨Z=̲iv²›Å#Ë+,¡›§©;>œsMY艵™rY'IկݼÄ;••òO~0xÇ~sŒÓd¸´Õòܺ$¡#0È8Ü͸øþñäõúVÔW½s:‰[S•³ŽhEý»Ï#G»Ì€–Ël|œð¸¸®¢Kgo\Ù‰H2E,k'—ÊîRœsèOJô§³±ËåÝ5Ç%Ü •…lßÖ¹¸Øˆ}A®îˆà{³VùIž•ï¡»ñÊ“º8â ŽyćwÎ+š¢\¬Úž’G©Ý(Šê4ÁWP«¸p¼`qÞ±o,Þë@HÉK«½=­ÒG,$hŽÒ:‘†Áîx•çÔm;ÿ]OB+Ýg+â Ø<_©Nå%´Óô½ ³$­óùÌ…›pÆA\`Žy‹¶MhøGÃmòCya­%Ð…Õ¦µeÛ!L Ì3ÏÀãõÕ*~â…õ±¾¤“œ’ºþ‘‘­Ù®¿b4ÛÉŒ‹co4ÀÆÅÁUÙ \Œ–^ý:×µhðÿ…üq§XFÏÓââYe ,ƒ€»Ž¾Ã¦I'''x@æQ‹r‘ô?‡¬¤?°‡­Œï;ɧj[¥u‹4$’@gzµògÁ5LjµœâÕùÏûkYb~ ø=äÿºÏ½ &¬Fìþ̸ÆãÆ|¦Çë_X?™i~ÿÂ×6ã“ÏY*°ßßùÕ~+ú~g?g§O¨üvñl:Z™¯ ¼âÃŒ#±þ¬+ûS€+ê°I(}ÇÍâÕ¤¾bƒþE|“ûuøkYñ_üã“áûDºÔRÆÖúDvU ok{ÍËåˆå`†V©Û€ bœTêF2Ù³K‘óv?þÙÇyð¹ã’Ú(š×Ue”¬D<¬P0fby+ÐJËøÃ¡Çsãë]š_›+DÂy6.•_R8çШ¯›kݹì?âXô }=í|§Ú\@<Å·$ðݰG¡ïí\§ìùec7í‹âcwlËu§h6˜ŒÜÂÿi‚23ÏHä”~=k’£µ)zÒ\ÕQ÷6§%ÕκBZ$‡j¡$…ÀÁ=OS“õ5ç´|/sáeV ˜Ü‚xOôÏ×ÌVoÙ´{”íÎlëZφ¼ ÿkøT‹JÓTª"L­µY±„ ‚Îã pà7YzO‹|ã ïô]BÒòÊÛ"y¤/ D@Ý»!qžpƒFé-ug-JžóÓDnèþ*ð†¿qwgáoO¿º·SæCkxdÀØ,I\79Ö2YÃq¨³n@Ó˜Ö ÁeíÀF'·n@¥V”£4ï BI­QÚÇd$ŠÚÏÊ â‹"ð1êöíX2èw¾L—È!†Hà;¤ã®wÀ8ÆIàòI®WFuÒØÛÚÆ\ŒéÚœ–qyZiÀ ›¥Eü¹ËçŽÜ€G¥b8¼>3Ñm¤¶‰!sHUðÁðp6àq×'$p? ýœéÎ7ê_4gn‡¡4°%¢Á(%†>bqÆO»ùWÄÿµÄÛÆð®™ðÂÒô5˜¾¶§߈Þ(?‡|l‘ÉpØÝ†)Ç×§ƒ“…nk_Gø¦¿S—”©rù¯Áßô>¿±Ãj`Û3åÈ ÏO¼âkìïÙëÀ=曑p¸¸¹%qóž€ýòªÄÊÔ7ßúè:~ßU²]ÿSô?ÇÚ-´³†ŠQwE>¥ +Œƒ§¿#ŠßðçÂ/†>;ø‰ãÏ xŸÁÚ}þ¨¥¦£{Q5«Ér¥_Îó!)"¹/&\0,$DŒΤåE­üuMsIÿ]Ï×ÿàŸ¾ Ôþ*jv ñ%χ4¸îÄðjúdZ­º@q"[Bs‹–Y1›ÍTQ÷¼àëñ‡ÆÏƒºïÁ߉ֶòøWÂÚ>›q"[ÈþÔ5íb‘›*’}½ä‘ghÚ'*ŽQQã=I-èF¯´|’ßð9œ9Ö¿¡ê_¼0DðH˸í rpIǰÉà¥}“ámZÛFæ,êØ®E¬^‘<¾!ê¾"ÿ‚®x+‚ÚóMðÖŒºŒE+§—uuö ÷(àcj*±l$m22×ÒȃþJÚ›˜Y¾ìó–ZŠÏUòüÅäÿ¥]3ö»ð¢X7–¶W핼sÿ²×Ò“£%õ ÎNôlІâ¡êÓò'ìØ§á?øÂ]õ·‡ôøìmîn^áÑXŸ™NIÀà\¯Ä­a-t8¬þLŽÞ}Ä€ãd@0'>çÀûT&Ü®'®‡G¹mf›!‘ÔØ mÇŽA9ÉGB3šù÷ã´/sð?Wm¿$zˆp#¨éׯùé]4ÕªÃÔSødwzJÛYø–ÿhØI¥,I,rrÌ}@_;xÖöçÆ?×Gðð–K›¢RÙÙ‹[R£ÌŸoPd8%6Žw<êIýfS{%¯õè™è7z›>•ð¿†tÿ ü=‡H°MZ.‘óHÇï3z“Ö¯Ï"$ó"ÎØ9úŸ­|î"£W'×þ =jQQ‚‰,38¦˜tEÀ>È­-¸ÝªÙõÿZ¤çØŠÆK•¦ûšß¡f7iztÆÊ„´y‘Æzü¥Cçôð‚³ÇáÛȘ…&"» ’oGqþÓ¡›û€"“œ¶[kÍv·êi‰½“>Ëýšn仸ã=ÏÊûrܼ±ùÑ‹3[„]ʬ¤®c9ÇB:Ž3â‚$Ÿ³ŸpòÕí|mqö‰ÙCN|ËKtBŠ07~좨hPƒoѦ’Uø¿vÚ—í«^œ]¥Î›eyMòÅ Éek†n‡øUGvÇ|ÕøVßdñõÝ«H%̈6ô8 gô®\jýËô_‘݇vž‰îtÉ“Khašï Ó §œŒþ™éïÄÿðšé×Höî-¯]#Ù#Ç ˆä89_™‰`~ƒ¿Ò¼ÙA·t VÐe¾›àûÿ-ÖX´»©Iµƒ¾âÙÉ]®X=‡à+OÃ÷2hÞ&žYíE± ÏbÀàç¾áG4¢¯$L¡ÿw‰ÝP_έR)Ö3ì£v+¡K{[Èì)-PÄsö)rS#æódÏOaÆqÖ©É5§â¶å«;7Ó4¹ YÚà³`ym¸+ŒàgÛ?‰æŸ¤µã}²â{CnVM¤ÈH/ƒŽÃÓ?‰:Ö”š”®Ì¦´±X>*X&EÁ† ''$ªã8ÎrOášÝ„Jtë„ ÒÅG -þÓHÐ>•ß+Ùéë¡ò—ŽŠzšíÚ2˜ 0pQHý1XÆ¥1ŽÿJí»QG^ó4¢_Ý€€7§=1^Ùð~G‹QוT Ãæôå”÷ôcǵsKSh-l{>ª…oÜä S!##îŒþ<œ×ÝøÇGÓü>,$’KVÝÌj‘ŒüÊp¹'ŽqÛ?JåöR©-¾uM]’Xhoið£ÄZ­ü,5 >áÿx¸d ›¿p ¸ô®[Ár|O¤ÌGÈ— Ïòîʃ“ÆGlñ‘JrS¿kéé¡èá,dšÖÇ¥CŸâºh”Çqo‹—ʪ´ˆÁvã¨Ü¾¹½#O³¸—ÁvvóKâXñ󻨲Iä@ÁôäžÙÓ¿28¥u}ð¸EâÙÿŚ̎¶æG²bG̉-…»À ÈÝG×½|…ðbÛQÕ%sóGg#’ÞÝG±£×%ýÜ"·?¡í†¥k¦èº•åÉ‘à[cˆ@wÙP ($$Ã¥|£kih·×Ði³KyiöË)æ„E#Œ9;”3<ôÜjðÖåoÉþG%_‰|¿3©ýšmî5ø(ï‚£…í⸹ñV›RÞ[áYîÜ ñ†B랪IGõŽ>¼×Ö`¿„|þ1j¾c«›ñ‡…ô|(ñ?ƒ5øMÎ…¯i7:^¥¹S$4R(#‘•vé\ó?š¯ÙÛR‰üSâ}0Ü<-qqm}”èCRC!Ûü$oŒývgó~-ˆî0-¢·ÿG\ã%³–Àã$‚ÐW‰R. P{ÅØõôs¹µ=Ç…¬^\yÆþIÆ@oÄsøÕ/€6P]~Ðÿu½›î­ÞÊÝ‚™÷þ°Gù{×™ˆþ ù~gfÞÑ_Ïò>¬½VþʘîŠ?”äpÀõüúW3¢Û¤VòÉ,‘,·¼cï“ßëÔqÆ |Ýwî$jž÷>ý¬|E©Ü|Sм4'˜iðiâøÇç7•#¼’"’ƒäÜ»$ù±œ>=+«øc—‡¿àš_>"\èvš¥å…âi/Ä÷íi;CFÙ*…P.Tås°€Ã {œðôÒ{ÿ™æÔKÚNèóÙêçW²ñåÞ£¥Ùý¿PŠE+ŒF Xžø<S_Oßxëâ Ü­wወã™ó ‘ãÁÝŸJΪr©ËqÓvÙ¯iñŸT±ŒO­ønö;x¿}"ÙHÌoÞ.»ÀÉ#Nµà_<ñ+Æÿ´‰Óæñd—‰r³3Z_M#Esœ·— *Yß“h Õ$Új…ÔeÌ´Vó µÌ­Ô½â/ÿ-këi:Å»ivשoog Ç,L6¦ôvÛùÜg(Û€#ô-ßÄŸ ÜxçGhî¿9*Pe`ÄóÖTšµ»MÙîzuçˆ4ÅIoŒ†uFž]–0Pmªª¤œãükò¿ÆúgŒ|}ã}gÇ­áíEt»™¾Ñsy>÷³´Ž[‘ {îbGgŠ]•F@ÊŠœ4$¥$·èiVIÚûn\ÓgŒÖÝø¿ÅŸ |Sá iRÀnï5¯Ïb€Í»ÉâUV`Jà°ÈV(¬C:ƒöç„ì/ü û6ëZîŸdn¼A%£=²)PP±XÄŸ2²¶ÂêÛù‚‘ÆIc¡8T…9ù~fØW Óœ¢úŸaüI¶þÌDˆá®­¸Î6ÿ£Hsúø×gðö·ý¤5Ä2o ¢ÄÏâ; ÿâyÉûªÿÖÇKÞG¨kú†“à¿xƒÄoi I# ebÀn# [lQïn@Ï _œ_´Ç‡/#ý˜´_xŒ–}GÆ6·ÜÅ­æ1'šyŒ ó:½•D,¤b©|iù¢%¬[}Ÿ‡zM½öŸe¨[âKYãI"bά¹Ÿc_AYÛÀtt™­â­%ñXùzêÂ×Mÿ‚€h:“•&¬ñ†aŒùö’/o÷ëèU“´.ž«ó`ýñü3gÿÕ\•4JÊþ§Ž|o‰¤øõáÙÔ°HtëwvÁ"$ûLƒ'Ðdn}ëéÙ_ÌžÕã<´ŠFmßþªwÙz˜I{¢xƒ[¶Ð|;%ܱÉ;ío*q¾f!H$c’HÉò'Ävk¯x‹S¿™VIæ#åW #=8Æ2xÏRyQøŠJæÜIö_ ƒ4¢r¬­4ªƒ´mÈëŽu$ú“^%ñvkK¯ÙÓÄ7?ŸʧÙå„ùˆß¼’A#¦G׺iÌÎm¸ÊÇGgˆW0H’¤µVó$Á ÁÈ ƒÎpÀôÆ1U| à?ÂÞ+×µ[y%¾»¾—ÍtÉayL€7n<Û®3^]WȺ¤¿3Ó§d¯Ñ³ÑdW·ÒîN€Xƒ×9â¹I>yYÁÁç¿á_8ÓûG±t)·È'f;‰ëô­}*™ ½I#šÜË’®sŒŒãJ•8]÷ÿ0”œebsdéH~hã&ìsÇóëùWjM}s«È÷Çe Dö¥v;äÚÞ ãauÂãøz062mùþŸÅR\¸h¤x'Œ¼PºóÝË"ÚiÖ±î·gáaŒðe+Õ˜™ù¶ík~?¯>Mtf‰ÖkØdXÑ”²†³ÏÌÈ$äàóŽz`Ÿ£‚ä”=Wæ:QýÓïÿŸBh·0¾­¤5±Þ®ÅËyÌL¾6×ì"µø¯âË!7É×ñǘp»c2ª¹ùS8%ÏÞsÑš±Ëßï$—eù²±²õ>˜ý“¼~4=q€üüüW9ñãøGâÌù¾Kêv,‰23³Ý«(ùv ݺàãô1øOzU>}Ò¤hüAáÛ…1àFðb1¶MØSü@g¹Éäõ¬ÿ‰%ŸÆ]píò#¸•Yåˆîšmè¬bŒvÎîO¡Ç<ž³òš=/ÜëåúšNïÚWÀ ÂmÉ×,ÆNJ‘" ~b¾öø¯Š1q¬·Ú•m]2')-ÙþMÃýZœœ¿ ÀÉ"½¶‡E¦¿ÖÇÇÿãŠx6ö;HQõ/Ø]Ŧ[!HK€ë’Iùbõ< vÜFGÃK·?ØŒ½ÁsÎKnæ¹1i{'èuaïÍ©Ìêj2ÙɦCim®>yv‰ûÊIÎGÿª¥±þϱ»7Z޳ÇÂÌ‘ÀÙÛè®qúgÞ¸Ümtµ3RêkHšMüo†uf¶‰“ é%9<ã'“ÔTh~ ±ZÃH´¹‘T²ßJD’àún8ÉíÁö÷•¦’Óð*ÝQ¤¶šÎ¥uë¶“i ʲ:™šC×…(Ç\ñÔsÒ¤ŸYÓ4{y"·H••@óí#f˜`çåÎAätã¯]¯¢ÕvÕ’YxïO¹#’ä•#mÉÆ8û½rOz}kJîõΓ ù/9f“Øg Ï?T_¿vÿ3Îwåg¨øFòëEý›þ0—‹Ë6º[^«Æ~bÿÙˆ¤ ç¡„c#¿zùûààŠX5«†S¿)´g±.Oò±ökäwaÚ÷ÿ®§_ãù>ÇðÖþ@¬ÈϸAÐy«Ô ùÿKK¹&»ŠÖdK—ºc–NB˜ýÿëŠÛ Ê“oÏò8ëîzïìU Mãïø)÷ÂÍîìÁmaâQ©'•òå´ðת1þÑ·÷Á?Zþ¤Å}^ Þ Ÿ=‹wizïÍ5õæ½3Î?™_‰÷òü%ÿ‚¬|jا‡â>#ÔZÔnHí§¹3Ú0 Ð<&¶üvªW¿þëú¤—–¦òÞ,§bC ñ×iÂò ëÆxï^=u*•e&·mþg­ù#è ~*ø^IGÙ­oä…aÄ1Á§£ð8à p;Wuû1Ænìþ"xÂ1‹]_ZD‰X•c Ç^¿hÿº+ÉÄ«P—Ëó;h§íSgÓ—ÎÒéSÛì;ò ’qÈõkÒ]4PXÊ¡Xdħ®xç?ýzùŠÎñW=Ê{³áÚŠÍcøáHa±†¾Ç#‰â ŲàËd±ÁS'Ížflu5èöqGkÿbøÑdˆÂQã <“— q¥ð}8ó¯ Áµìé¯ësÌ«~yœgìßh"ׯ[CF `ÙZûR=?I¹ðËCæºÏŒò3ÊK¥ztþ‡Y7QšÁ{ˆâþ éÚ~ξ.hÈ”®t|Ðv®<‡Ç<×Ȳ%»AÿøC8BÂkëå!GQöÏç×·S[Ðw„üÿà‘Q{ÈÅñn˜—¿ðQˆ¨ã|GÇ:’ºç!€»—ƒëÒ¾ÂÒ<)áïí.ê].»’l‘†Ð:àSÚž&OÚYI^ ç¢Âàâ’ß[xKK²ÔOßš-ãf!@Ý€»‰8$ó’kë_Ù7¾»¿øµo}¤Ã¨ÚߨYZ^ZßÇçÃ$¡,%²ìq€ëŒ0 p1y|¤ñ‘Om"1‰,4¿®¨Æ jß³·ìñã-oÀZš_|Õ.M¯ˆ¼ «³Êš*j!lÆ(¡U¸–)šÎMÐÓùfTà–êê×Çz –/m¥ézFšm ªbgš_2W ØÇ’»Xœ$cqÏ©œ{Ò§'çùÄçËuŒßß÷=O¤¾)iÉ/ìß ‚6g¶`7cŸ)—úô®¯Á–SÂùñ ÚÃG§Û¤“–mѳEX—©8Fg †Qä‘ć(´·õØ÷;™ž/ºo|uÓ<%i?•¦iY¸¿¸Š`¤K€˜\‚ UqÖ‚y‘€hÁ¯i=V|»Ñü3¢é·V?‹t›m6ÙÑŒs3E¶H”.Ä2 «ÃBË"±YWûÈÛ£_‹3—ÀÍGºðÿ€¾ÜxƒV¸‡KÑtûey¤w rFYŽÔUêÌÊ£$]‡„õ³â†Þñ#Ú‹Õt¸/¾Êfó<Ÿ:5“nü ØÝØÇAÒµjÐD/y¶|çñ5ÖÇö®Ð®Õ\ø—EŒqÿ=#¿8c^ì˜?´V—þ<’GO’oþµqIjnþx¯ÅÿáeþÒúoíi Ùn^Âø`‰‹ñ“€CJW”`KFÀü¤WÑZ檚V» Xˆð÷Wh€„ùQŒ“Ó¹U®X ik4¼¿CŸÈòý{ÄóxÆ·¢Õt; ÑX̬ÚÉPÒJ$þèF~c“‘4ñ-œ—ÞžÞ9Ò(„@»J ™ ç® ã¯PGõÔ¨µkœçÅÝhŸ³Æ¥y¦³&£¨Ã½§˜|ÌpyV˜àó‘ÍxN¥¥XøwöYñ—o"yÒÚÁæF͇%fŒ³2œß¼Ž8$£ßBÖ¯êŽzš_ÓüÏSðçÛ´ý#Póo?M†HÃrÅ^0I'=0 þ•éºv׸rsŒœ`tÎ+çqšJ1]KžÞàm•õYqi2ùˆ®zœW8»ʳmÀ9o^+Ũ’•ŸsÒ…Ú2¼Acu/ï¾ÃrmîÌ{×ä ¿iÜS¨ÆàäF{H•tß ]²Ç”!—gœãµu$£GMls¶Ý_‘›;ìæO7ý"P¤žªf}¿†1^Uñ2ââ? ÇåA-Ôoy¶kh[iº s´g6:àâ»pÑÿm‘ËVë -Þ_Á©[.§-¿ÚbIˤ÷Gó2+=М˜Óæœçb/BE{?ˆ¬]þÚË,/؆Éî<ѶMßeT!Áç<÷¯~ªqäÿ5ý|‘É&œd×ò¿Éÿ_6z·ƒ§ÿŠwÂ.$Ìom½±×tX?ξ^ñS‘ñÃÆ¥Ky²j×Êq&rä@_Ó®$–b@Æx0*Õ¤¼ŸæiˆøSþ¶=ûöOÖø›Ic“ua Ê…ÉÿRì‡ÿG è>$ØÆÿþ$B#Mg{dÂ!?”U¤VËpBþóæäpO#9¯£ZGæk÷ˆù.ÒWkà´—Ý͉JìI1®ØÆ6è¹Àû¢§Äy§?¯.¯š I­²É5±-!gL$`÷=Ûùg™Yb>_ävJþÈÍÓ.æÒk¥[1HN3Íz'ùã?ƒ¿¾$ÿÁf¿hÍoádÞô{]ÚúãÅͪ}«ë¯Ù-ÃßüD`4ð ¨fç¿z¼·ýò??Èœoû´¾_š:Û>9¦ÿ‚qøê;x’yîU$%U±«ZHŽpkã×°ÛañÌf&:N’\HÉXIôë×Ò½¬ÞÜ´þœN³áŸõÑžñãÛh§ø¤[ˆºµ [<ÖÀÈHðS#cj©a¹ˆ^ø®ƒXÖWÀÿ äÕn–É5É-‘e1Ææ)îÄ*žaQûÇ=Í·."‰ˆ®+ãt|§¿{]w…tÑ øì·òjÞ#ñA¦šÞâ?µÚ©VÍÁemŒUå\ÌŠ7<Ñ–PXׯzn£«¿ìÛñ£S×­ÂæÃÆZ=Õµ¥¼ÄÅimå¬pÅÂâ4Hü´F®ªW”¯ç̉Ù&ºY–¿hÍ"ã\ým´»[©mÞmBÖBar¾j¬¶Çþòî Ø=ÕOP+ؾ@Ð~Î?­¤ÿY…ôøùêqkýqN£÷&?SÂ>,[ÿh}‰ØËâ­óŒà-Õ¯¿îûd_Ú;Fác…ôç%Ï\‘.ùþ•É̬jÕà¾¡Ñø[Àz…5ïj–ÒÞë:ƒÜÍ,Ä3(9>ZØ b3“–$’I5ÄüOžÙuí6!q‹›¤D› ±—œg+¸‚2NÒ;/}YÌ·8® øp1@¦3ë•ã¡é¿­dÉ:[ygËs«Nìo%@ïÁ=¯½^ó*É+Wñ}íîõ‡z-Ć4—XûAòоLeëÇÌTc¸Ï¡ÏâõÝcöVñî¿z!“EMlYé¦quISt¾§{cíÝtQø£ëú‘Sáe¯4iáX)¹ŽêmÎAq Û^"‘Ç&:rŒ¡pÍÎNkÚt‹¨ÛN•(ÜêaHüÁ¯#­8¾×=L.±‘‹s$—„¨£qb:k1±ý©Ú¡sœc>¦¾jªoWæ{²)ø£Ä‘eÛïã‚âKvx-ÝAÜÊV9£;ñùø÷‡9ûÎwã=rFXŒyØ9µI?ï~fµštbý?#ÒeEÝñ¯R\ôðôÄÿàL#úפ|Oˆ/âr»EöVÓîA8m™[‹m¥±Î>þqÎ+én×ò'²7¾FŸ'˜±ÂÒ]±I+q¹XaÎ9É]k>¢Þ8²ƒYÔUn]“mœá"ùc;Fú}h“oÔÆ)­ •ŽÒßR(n¼ÙüÖùÞÔBýÕÈ8Œžâ¯nŠ…ÔlJMݧÊPA czú×ÛZ³¯TÇÍvaI&º²’êUV åÀ6Æë×ãqõªÖ–RKÁe,s¹ŒöÉ! ÜrO®9ú{T7ed;=†¥c$‘Ão<Çß{¨IœÛ£œp6ãÓ­_´×4(4{û)¬® †g) H=ôÆxõ=*#ÍØ»¡««èÖ6 æo$ùPˆ™ Üc,}qŸËš•$û^›¨]ZØló%Þ¥8bƒ¨qJ‘ƒ‘]bÔ¹Ÿc–Z"™ß/•2†ì›A÷RÀ §ƒŸLþI šáŠ%ê£1$Î3‘츼q[^Ú£4¯¡ó‰£ ñ]#‚/æãþj”Ió9î1ŠíZE#‡yhj SÈÍzÃ8Óû{Ut˜ ~Ë‚ åÈç¯8ô¬e©¼5g¥]ÞFnoÓÉȰI0y' Û§ðž}®³NU[iPT@¿t’ýsÍyµuwìwEYÿ µ¶ Æ p=fP+Ìü"Åã}2BT 0—pݰ…ž>•1Öžßèzt6Ÿ§ùžµuº}Aå’ÆÆáî÷£sq@\g¯Šÿžíº¿Ò­5ïéRÜÌ—w–d ÊÍ5ÁÚ«É ËŽ®ÈG޼ϻÅü9ñ•Ì?´­¾¥"K§Ç«ÛÇr’ð¢8ÜV'êÙôü+Ò¾ ÛD<;«^Q¤Ê‰e+ʆJƒØ€‘ßhôwx¥åúžZ”ßõ¹éZ¶“o­øRÒæ½M>KˆvÂÆÝä&AU;` $ŒW‚xwÃWztú¥•Ô,¶¶óÉ»:Â_(cTr„nBœ6ÐIQZá—î[¿sŠ«^ÒÇëçì[ûx{áÏÄí'ã}·Å /oÓ¦[{]7Lòâ´¼vL<ævgTV‘É6àÄ(õ€ó_gBŸ³§Ê|Æ&¢©VéZÚ ß4gßšé9 /BÑ´IuY46µ;ç¾Ôe1%ÝÃS,ÕÛj"Oˆ£ ª›üTñ>qðâF‡§iy¨êOiÚ4É“"(¤¾7es޼uªŠ»Ñø³â¿øÏÆ_m ¶·‰ácm¾?&/½›ç ’rx϶h^ü)½ÒuBtÏ]^É$Š÷Q%œHÎû%@PI^Š9é_—ýb?ÝÚçÞ{97Ì™Íê–?µÕn-ô­].lR Æ èÈb›X±oœ>Ivä•8àVÆ«üFKM>;;‹ ¨®%ÅÆÙ‘Š.T(µsò¨ÝÎ3€xTT*Fï§ÏêF^¦Œ¾^ø¢úÇ[Öô7Ô¯!¶,š]ê#*.÷Ìå…!¹\òØÁ¨êÖ³ö½à ¯ j×>ñ éyÂŽÒ+\¹(ââžúþFX×|4¿®§mû_ŸðO1è.´³×þB–µòÖ§o¶ˆÐ° 'öf—òõÎ<‘Ççú׳›;FüÿöÓ-JÒþº3èûâ¾ðn‰4à¹X!™As‚Û8$†ëžzPòK™'øƒûBý†ÞO;Âþ¹ 2‰Šk¨Èi°¯¶2’‘P3¡d”çãc£¿‘ï·­Ž âˆuËۗᆔ-Ú} ÝI4— V ,¦X£å‰V$îÒ @âH•³å^5ñ64Ó¿`—*å#Óæ8ï-âsí´ñ]4¬¦¿íßý(‰/wïüω°¤¿³æ„ ‹sÉïöy8¯Dðpáo…ðWD´RQ¶ý*'d’6g…xú'í bXâ(üA¥Ë+óò"K³“ÙT)$žž+ØnQ_ö‹Ñ ̶{·vQ™ÿf"±J÷OúÐÖnЯùƒ®k6~ð†«¬ß¹û5…´·…e¬h]‚î g q’|Uâ?]êþðߊ/n]›[Õí.$´YO&–8Ú‹åó½’ö5½5xIüŽKêŽê<²‡˜åÞflü I?ïwô¬-JÍ.õ}40bñÞ¬–àJT(Ñsƒ‚>sÁã$ ”ÞE9%÷ž}âÇ´¹øûá˜'ƒÏhtédÀ?2ïš8÷vÆ9n ' ð{‹¿ "Á3%ÒîC5äzdú¶üÄïy²G‘°sž¹ëÍmIÚ¤}Qþ>wø_­G©kz**yPižŽ"ÌI1†1éÆ6ôÏ8Å{}½Á·Šx×ç¸ü¸¯33KÚ+yþ§©‚Ö |ß #iÎr{ãŸéY÷m¾t`˜Ú Ž#ò¯œš²ÔõQäÿŸOX´n5w„Ú›0¤¸ÃnE'ý^v0yT†XË÷€4¬®4Ïëº^‰­×‰5iâŠí ‹å·„°@Ç)¯\ÜOÖà#%ƒWóû®|ö%ßÔ}Jäþ͸‰·yá!i ˵~˜õ®SźLzŸ‚o¬nL§d€1‘Èž y µoúîzýÕ¬jL­w*IäCû…,UCÐ;„^ˆ«=M{Іý˜¶E¼@éã[I½bÝÊ î<± ·r3ß5ô•ß»ÿš'Ñ¿I~§_ðâS'ïÈçýVáÇL$¤å^QñFV‹ö¨Ö$™$Ž[m›d±äDÍŒñã—cÔ`7W›ƒÓQ?ï~fµ¬ðÑ~Ÿ‘ÖþÍ7ícûJZÚpòÊæÕ²yùq/þÒ¯zø—lFŸñ"ÙÛËwðü’ÆLañûøæû§ï|ªx¯¦]Ïz5ýw> SåYº» •5ygŽSº`I“-+xç”þ‡œçWâEÁ7þ¸G ]%GÚrÑþöNP{ÓÓ®F28fÿ yþGb¿³×SŒ¶@úMš[[Í=Ëuî’P üßRr0>œõ¯«þ |r|2ðwÃß Eöíth¶Ú7n§1L ]ÈèW'$޽8·z]NIÉ8ýß©óEÞ³—<íg?ÛµùIûN [qRx"?ö¿/Q×|=ðUæ¯â«]OS…ª>ð¤}ïzàÄUtãækFŸ<ü‘Ô®œn©nò[ˆñ³Z-#…ÏשëœÄRhv²ê*ŸÚ2DÊ0±Æ ;aP~¿qóJ= 𹡤)Œm-ÿÞÜgØ õbNÐ3ëZðé–w•Õ¬–öñ[M²•¸p2̓Àë»Ðžà ‚r»d´’¹«[ž"Xïm G©Ç õÈ^:xÎ~¼ÜµÕ˜GÓùCh (PN Lãמ}éÉ{ÖA} Sø|Ü^" fO’[‹6†(fr Ÿ¯±ª>·sqá;à†KV–è¨;I ‚T°çrG·Êk®Ž©ß¡ŒÓV7î'Ž(’gI !‚‚UTáq€99'ðüjÜÖ7Þ}•µ´öæëR‰ß‚¸ËÓ¦2}—=¨~]Ãv|ÝãM"ëHøsö¿)Úõšé~ÎIPÛär:W=ƒ·j¸Áçä⻤»œ sF<:ã#¯W§|8‚OøHu©Plð3À$°#ŸÀþµÏ-Έnz,¶þgŒu °í Ó#€î9 ‚Ùí“ן¨õ­ûÍR-·ú¥Â+Çod¯µA÷E^:Ä~uçÍ]¯S¶:«˜^(Õ†³û,\ê+n#„•í‘rªØöÈ?N+ˆðÉÿ u’çTsÈ»”°ˆ{œ „íMz¿Ðôè/v~‡²\ZI&šº Ç-›Â³lÜ|ˀЖny…a""È~fàcÍç?Ë&‰ÇžQò= o— Qú~d_5y4‡×Q >eòDí Y “‡ìyízð-3Åúªø^á´ëë›nnÍ ÌV9›åP̠ಫ¶3œgŒdÕQ ŽËÞ±ý5þÇ^ºð—ü[á.•y"<ÓiQ5ÀÛy4—h'$,àÜö+éžüWÛRþ}ò•¿/WùŠ¥ÏVÆÏ_>1ÙxCN“KµšK8f‚Ayâ­´½ gyÏÊpKnûªä©+Ÿ…ÒÖðË"ËëgcHosÌ,ÄzŠéŸ4akhsÇ–R½Í #J’ %L—³]:Hßg&M õûÄ6sœœŽq[7ÚK¶œRXc½µ’=·V×@0ÆX­€rAŸîƒ×$ò¹û×Fª Å)þGMÊ1×§zÚ'f®D ®´ ¸ð7‡înn/-t0¤ŒÃ ÌöÀ…P#*ä`±=qTu†~ Š[iîuûýÊ9º:»²ccs18É89­ÕyÓvŽþ„{(ÏW¡ÖÁðÈ[ Y,üiªÅo,[ [[Ì­ÎI$Âr9æ¾ñý‹~êz ñŸŽ/¼ey©As/öL.߃ºs}âZuF'zò‹“X^ü`›TÓ.!¸³¾µIšãaòȉŒ%¿‰U¢ÀA÷›®p ðᔣ¨ú]¯Æÿ¡UZú´c䎓à6öÔÐàGS‹ËóŽøÒ×ÕgÓŠ5Ë;xΡ6“qÔ¬òXJê"ÁûÙ–ô89¯ îÏ¡ù½Ðu¶:%ºFâ(Îä¼Åwþ9XI팲¾•¬x7Äž(‡ÃšŽ‡cìpÅä´·3*GjÁÙ„Ž§æeÃç ùzv<•åsŒäôOô:àœé¸£ÍƨYø‚þÞ+ÔÕuÄvIõ3Ÿ&ÑŒ)#ƒ×'ì3É®j[Ï#~™£ïžyŽ.o%ç9<Ô/óþ~Š•Õö<É/zÛ³Ù|ðÜÏ$WúªcÈB8ô¶•§Åg G Fp+åkÕö²¿m ¥OÙÂÝOíüYuž%̉$hªÛ´€CÝœœŽ£5IïtwUl®mä_¹$s·¿Œ^Ü©¦f©.ç;©ksizõ•õ­ýÁËáþÑ~21œ~€úW·Ù^jòéðk}3ÈeYâbÍ–ÆCz ÞqUì¹b™Á9(Ôqì]¹Ôn¼·ÞŸ鋵Ôry¢8ùXÔƒÇ~3PIp±hFçÂÒè[‡ âù\€NKm 9çzp+6´»wõ,é–Þ!–;™µ¶•º#‡EY$|‚ÊP{ç#¶:×a¥Ien–ÒÜlŠÆÞaŒðÛAgœó×·>•­6µìÅ5µÍxcÛ@Â# ¥å²ü7ùÓåԦѵYhc¸Šr9 †2D¨êÞ¼3ÿßTEZÞ¬Íèõ<—⮓þ<7&þÚK3€|· ¸!Ç'®ã‘“ƒy¼² G$g×?ãþ{×T»œÎÜÅè—íãŽ:þUê¿u5Q¸²F>¹nkšZÅjz%Ó\%à _(ù6ëÒ¤ »¾qÓÛÞ¹¯‰—±ÁàHl–SÜíƒ÷Ñ’ú”5Ç?ŠÝŽª{˜š}˷쬤εäq¨#îþòõúÕ‡a—ÇZnΡõÆFƤì¡o6z”?‡+öýL{íºý²•tò Ž]ѹ’xÈÛí÷ò?ÙïÖ¼ëâ¬v‹ð׿ÌGÿû£§·–åðÑÇå·Ì@'˜Æx@8®Ø%Íëfxrv…‘Íxö8¢øù¬Åé,kps,]bÉüy#ù×­|$ñ™ Ýj§X¸ò,n4䉓Ê/öߣ´_Š¡cž0¸ïS+*°=?öJž‹ó-~Ñ´ׂa»‡i[ÝíJ3óÑÌqÇñŽõóVš¡lôûe~è½³œþ| Ú/M;¿Íœ Z_/ò?­ÿ‚zv¥£þÇ? 4fÕ¬u‹/é–÷Ö̸0L–‘¬ˆGm¬ü+Ô±ßúWÙSÒšôGËUw­'æÿ1ÁOæŸüi‡ ²Ð¬îb‹ÄZ qf’YؾQ$*:íŽFµmyXÅŸ Ÿ³ ïo x¼â«×šF¡7™§ ¤¢'‰U†RD’ .P >{o63å¬òů>‘ðv÷WÐãÃz6±{6“má»ÀSûl-»@÷6h’(M<$¶Ò#F®’“¼P‰^IŠ’äƒ—k4¢Ü’6ìed¶[F{Ï1‹iÆ4͹f B•8l–RYI\¨;reºðŒšÁÖ.Ærí–%vç…*I'’ àg5ù"“—k}Î×-žìeõõ¸4¨míbX™Pd—É ƒÈÀl û¿˜¦×n,›Á’ÚEª6—,$-å8¼äe¸ Â{ϧo&[“W8Ûź»‚Úšm_<²þž_›n8å†ítdÛåŸec{öHÓÃzö©§Ã$NÓ$ââÞO?9n$$Œd‚x ÷ã²R|¶}:oøê+šë©ªtnÃF·ÚÍÚOç²­ú6Ö;›åyváˆùCN㜓šÞðõÿ‰,oÿ³î,oµ+3Ê×w—1Ï#€” 08ãåÇ\ž:TFKší"ÕùljØkW×rÞB#»‚OžÝ2†Vné´>l`õx}ÕÖŸýœßg±–Î)T.æt-æó¿+…û¬7}ãÆF2H{FWV{ÿÀ&jqq³º8Ý?T·µ²¶³¿YÛÇ",¤DË  GŒà| Áâ Ù_i¶ú…ÄRÌç¬Êð VØÒ~VäuÓ€[)ÚÍù’H·tl[¦•iá‹‹ÁmvM#}¡´øüøÚN¤;ûdŒž™¯»¿dí_Iºø5­éV¤[ê"éâ04,‘KÇä`æÞ@=–½\«c¢å³½Ž,Õá%n–üÈÿmçhÿà—¤PX¤6,@ë¨[gøÍr>°»?›Á–æIä1\^/“¤+–uù×8 ã àôÅ{ÍœÎó¸g9 ÿ²ú œtZn^«ñÿ‚m„•íOËþ_Z¾}7AkØíšòå~X`LìNРÏ$öõ®rK%¹Ô¡ÔiÒi-”iÆ\‡å>îìŒdpOµ|ï³VçóýiÉß”å¼}§ZOðöñ&‚;™#š96J¹RA,Á€{{šù.îÞ"öV·R›Öw2;î-s3JÜ"`%‘[r1N |ÊÕõØOàÆ=’þ¿àžDß¿?™öm´‚Ynb#æ‰Uv°Æs$¤íÛꦧ¸WKÞ¸cÜzò8ýk笾¼—õ±Ù¯Õ_õÔøWQ´kÞÚÉ‹±óD‘I!ˆ‹GB[/!îèÝ5ê¾ ’æoƒúÚK8¹ŽK[Õ·h£òã+äÄ{F ¾ g½})'†–dÿx¬ú¿ëúßCsÀ>!Ó´ï‚wÓjW+omiw2–sŒ‡÷%°1ÔœW„j÷ÒϪ[4‹ª"´…ÅÅíÚ\ÌÊÅdØ â@ŽÓÑ·7²2ÂÆKW¢r®ß~¯Ð³ýÔ-®‹ô7ü7âûo üT³ñp=±·fc,l¾iînâT¶×Ú2 ü¹ óŸGÔ>/ê÷þ:²Ô¯4{ç‚÷C˜Æ÷e#{ÿôy-%ºE"Æ&%Wå Œ’ £OTyRšs±ávÍ:]ÛOcy5©¶Þ­ E\9gÜñ„/Ùº“ߨ ñŽ’~^i kq9½U i×q!‹yÈOÞJ¯¹q‚aޤŒæ*Óu\Rïæm ®1w]ÕfÔ5CûKµšÖذNßž\ov‘ô¯fðÃ8죎ïPA-È#¨àV8šœ±äEáéóOœ÷ëM>+xR8ÆÕ½tp[ˆ­Üóz×ÎË]ijŽ?áSé䪶z`œÿ:“þnŸÆ®`?¾ßß{Ÿ.”VÆF¡á[]á[íjäù€1ǧ½zV‹©]Ç¡Ù"Â~Ì–È «€03œð:ö®:’q¾º‹„}„ZZ›7ð¶˜VKo·C"î™!x™uÀ-€G¹®›E³Ñ¬ ·¼†ëKòmƒÉ!— QÆ>ª:W$ïkR:«£*"ï™fóm#œ1ÈÎJñË‹ƒa©ù8ûD×)!(b['Ø žŸ®´UÓ ®ÖEÝ<%¥Ý£;<©yY³¼:ä±L1óœVGŒ/¾Éá])CÝošHд¼–1º¦N{ž§ëZÅ6ÒO¿ê`Ý®yö¦±gá­sNê"[jY“N•VHfd”‚Á9 Ž}A9êi-üa¯\XøzCƒ‘/†,Û×þ™×C©îêŒ5æÑ—¦ñ…õôAnü5áË€K} Zç¶3 Zëü#âäÓu¤x7A·“b«L5Ä“qÜÝ×9ìECömYþ…EÉ3­‹WÒîµ”Ó5m7PÑõ"ˆ’ÏÑ^$à 1EÄ[y<Œ’Î~+âíŨ°ÒE¼±]Âb}¦6Õ¾L‡ˆâHðÁeäí'¹g9'çTgʵ8Ý)£o„ºý“É|òCå\BVæAn™š4`P6ÒNF2 㯻Ÿ†ìÍñÀ9Þé¼gÝû³ŽNµ„Ÿ<‡¥ArFI6ôýì¬,ú¦™€ }¥ÕÀ8ó3ò£òö¯)ø›q|?ýÌ^T«¯¼—*Ü‚óù³Ž a%Eãs 9­é?zÇ“5î\òýNî[ÿIzØi%‹{ü›y1s‘Üõϯã^«á ¾µªØ\K,¢ÎÜ«Œ€äƒJ³qi£Ó£áæ½»â΃w©èú-¾›jò[Ù Ò$ƈ  8?1ǰcÚ¼kOÒ$0iz„63ÞAi(¸¸ò•E À+áoSW†k•]íý~§ ׿§súÿ³HãÓm£Š5†5U#A…P@;éV×éŠû¤¬¬|mîî+´‚òÀ2`íÝÓ5ñ7Äë°øã[´Õ4‚–¤×ºFªÑ¡Ybq=½å…ÃŽŒ9.@hÕA‚H¦´ƒJãµÙù­ñKö…Ñm|%ý¯HŸ¾K«I{¥ý©®­5+˜¥¶*‡æ†7UŠIfvõy7Þ•¥ðÛÚvßÄz5ž‰¨ê^+Ôîå±6ÊÒHÁpИLûšr®Ò«È²c9U„_Zwå¦×›=Ü5:Q_¼Z§øŸaÚë0C:,07’Sx¡$Ê碪®O@w ŽqanõËNÕmu?.Â4Hî>Ñ¥‚ )ºà£nq÷ºm"¿9šQWßNþgÓÆ_™ ñèP=³ÞénÚ³ËQË )f`3ŽF[°ö¢â-f-n9l¤··³·u2Î×ÊQQÎwëÁÀñ׌mN0TÕ»þ=“n­–Ö6¼M£é>,¶=¶¥©\Ï¿F½ki"de>R¸××%£ÌžÑͤºEè†FO>=Båî&W*/ï#9QŒŒöäöUqMJ>¦Óøe²:-AcƒP‡O´îÀJÙ‡Íd‹Û£r¾€¼+#V‡V¶¼Ká­Ü_Y£bâÞÙ#gq·djÊÛ€ÛòžÄ“ÓžYòÆM;w6‹{ü†Xx¹õÍ*àiUÝÕê±Y"x¼©¬2pT.ã“À0é×WÓË!¾ðÞ£nXo8‰cO˜er’dXž8ÇàóF*.ÝMåy1Km5³yIåLŒæÝÞܪ‚˜á˜‘ŒŽÇ°p8©/îoõe,RZ N)7۽Ū”™iwB²»(Æzƒ·9­¯É¹}|Œ­Í­Í I¥Ò–y®¯}>â0ȆSåì8Ãù‡¸!NAÒ¾Úýïþw‰åÔ48tK羋|i~· P! 8U!GÌA*3¹½=œ¦JX¸«m{}Úžfa4û_ïöæÖt{ø&׼çX²´×u->/ìÛ ocŠâì¥Ô,ÞRð'hàMq~$ñ­•ÇÂGá›èç¼ñeœ_ØÒÁ> ‚U3£,ŠÄ,ctl]w‡‚6=Œãþ]/ñí§[rIú~¥/xn~˺®—áÏ&ÏP›1 ÷*…£•š=‡zºDUÆcRC ©áþÚÞYÃð[ûNI.5eð½´W’»g[:ÈK[•<žýkå¯û¶ý#ÛZ¿¸ìLx#>ƒøWÆ~-ñꟳŸÆ?]$ÃP4²yèÀ²¦¥ýÖbÀA%…&®–µ¬2eðüŸä} ã“áÕôä4J›GH£òÿ å¾ ÜÙÜ|›û2Úxt¥ÕïÒi€ÅÐyÚW™0ÄìiB7`ú b¹¢¯ýu-Ë¡èÚ…ý¶›£Íyu2ÃoE‹±ÀÀõíõÿ ùëÆ×º¤º‰â›°-þÝ}oV7ÖO ±Û™£ ˜Ø†I3#¾Ù0@ÚUÃVÔ”o¯VŒ¥qËsçipJ\ïš?9Ø . É­`Ëqu¯`-mò'¹)q(uÝrì †åDÂäüùè {Éùÿ‘Ñ3Îõ—vøçâVòîtÏ ¶b~ã°vÉ:óŽ{uí럆~üÐ1|©ªi6bËN³eGk°#Ú²2ðï±”†÷ŒO%Hå¢ Ûï<£á÷‹ôM{ö¬Ðä°³º–âXæË$ãd -å#ä®J©$úñÎkâ­kSñ]×í•s«ë·h½Õnî-]Õ çÂö똅Uu@2p  ÖØh¨©ß{™]åZžÙðöÎEðï„]‘Ú)&žc¿8À–õ@c—óí_BÁ4PCºiã·Fd ,¤í\°8Éîôž+ÎÌ%)TåK«üÿàØ8ÅC™ù~G›ëÚՋܧˆ5YØhÖŒ£L·ÿŸ‰N1 ^²6OËŽ1ÈÏ {(m:ÙOË…Ûœtôý+ÍÆCÙSŠíý3«'Rmœ?Ä;)îü|m¦0?Úm¥'vw(8e9é1Çõ¯.bclþs»ÆeH¡ˆ—u’á¾b7o2É×p‘Œ ú ”èEùÀþ»œÕ§$}©m,3iqßÂÌÂeF9b§s žÿÒ²uÛÉí¾kWI‡– dE à¹PyÆ85óêß__×s®_î£ã-Nþ íoRÔ`·KS|Ï(·šåIÝå)ãlk¸†n73³^“àmJßNør×7q\]-åü°Äl÷òI,b8G*\¨TOî…ƒŠõ+[\F¡@UÍxµdå;³ß¦¬¬lÇÞ·jЄoVŒW ¼Î¸ìy™µ,AÆznÔëeÆ1 u çÍ}ãHù4Ïøˆ«ˆm#SœDO#ßÿ­\­«é׉k  aòöK‘žû€òÇ~¹¯6³jwG¦¿üÿ2Å̰iÈÑG4·R¯ËöHP?–àc€;zWEá_$RN^ÎH£V[wŸ¦ž`õ^øõ'‘·ËÌÂ:;™«jÊ< s¬ZÝËl&"°$½AqõçÐW-¬+gipÇìÓG6æaŒ€ÈÂ@G~ 9ë1Þº)ü7DTøµ6fŒAim42)\Œ0Èá²=ºŽG5ËøšÒ]LhpDðùãP2D>¢àgÈú¥TZM?_ÈÉ­å–wÑxÈMbKßK"€$FAž~[«†Á£8®N5 £i98Ïòí[ÉZÇ“lÛÊ_g˜$müG‚}ºÖ5 ÔèaåNý¬{‰ã˜ézUææŽÞÖÿÍ•ÑA;?‰Rãk>ßOÒ.þ)Ýéw¶òÛí°ê~TÐŒË ƒ@*ýxéÞ¥^0lãz»:Î$Õ>&ê¥s+°»S…Wv'ðS_Hü0· ðñåÆH¹+Ÿø щû'~ø3ùÌÚf¿}3ÝhÖÐ_›h™M¼·Bݤv)°+7Éœ+Ÿ˜Šñ/ðÖ¹{§ë Ýæ±e)‹u”‹¾Íãšdqæ+Œe±÷[n{ é¥O—ÍÑžtæ[u>Œø{ûYj_¾*xBî-Cꇇ,渖çÂz†½4v+,N§ ™@"FIØ~e÷Í~ñ|ø‡wñ_öbðÄ;ï Ÿ \ë–­qý”oÖóÉO1•Jª¡ƒª«Œª°*° } ¬§NÓw¡ãcandzžá×ð_íÛûB|;ø]û7ê>Õ¡‹^ñÖ±o'MIµ› —3c £÷N&Æêѳƒé§Éï=—õøìy±MÉ%¹üßx¯Å~#ñçÄÍo]Ôn5bò\¼×™úr}دZøaðþY.×VžÕîØyòl.nÚ¹ã·zù MOuÛ©ôt#wwÐýÒEµÝãÃ. ÷›"ŠAB’A½~PèyL…fÃ`ä¶Fy=,6v¶‘HòΊÑùÆF‘¥Ë$Œ\€£«‘Ó~2£³÷z¥ùA¥ÙNM-ãTb[¡æçEYsþÖ9ôÇôÅmYoÚ q< +?îØ‡Êó¸î$Žù9'•Ì’°rßS8Ø+øa4{ýLÔô¸ñˆ¥*¡Ôq±—iÁœÏ®[Cc6œšV™bš~›a#ÆDI<Ðv–B‰ò€ ?6_§«z‹MÑ´—ü9ÈéÔçºeë#“C¸·[b—Ñ$LÄÊrYˆimú cÄ‚G¸ÒV—ÐÄ.|»ˆî4öG…N /ï#Éʰçû¥yç…OfáO™¥>~g‘­ö{kmjEY%ı¹MÒ»p;B·rwsžØç v5ì½GY‰n¢eH¢¾ýàQµòY×¾ÑËm=óËӽމk¡Ô^éú­ÍÌ—r :cmnåd–åÖU`˜ÕT0Á È^Fpsº¹m_Mñuõ¾žÖ*×WÈÃÎûTIä6³ÄÏ eÕÈ$eþ ÍwÊN^mÓÜåŒáÍm¬n´—Q©¿Õlf´HáinÃM½!ÁËÈÒð€s“´ d‘_5xËöîøá 'WðßÃ[Ë_éWÄÿlÁ§§Û¯aùe ’µCudT‘Kçpé^Ž[ ެ»Ñ>íbœ$”*+÷ô>7Oˆš‡Œ¼zú–­%íî§4“Ï{{qrçy7³;¡ävÝÉvf=ØðîËacá;ꍓû/Ãúl>‘mËÌ`ˆÛÄ3;Aó4†DT™rý Xµ6ï'vïøØ¸TH¾Ue§àz½ö¨9ßÙ-¼o&­ykg –S´Ä±4³Þ¤»A. ŠÅý§4 o_øáᓦG4¶cMû;KµžÞÒS#±wãj¹B6©9l8V!SÒC›F­ ÇBø³k§ÚÃòÛéÅŒŒ2ÌÄá™›¹$’M|Áã­­¿i]>EŒo_[“·ºT#ôö®ªz9£~h7ÃDþ°/k4Z™SÍnRFÎà.{~ôøÁ5ꚢiͦ.¡ª»}–Ò dœã@9^‡‚G=‰ÍyØ…lt}YÙI_ /‘óoü[=ωaÖ5 ’U)¢éð·Í ªƒ·YdÈÁ Lž>MŸNYȧÂò‘2Må\Ë”lð—œwÁAsXfi{(ß¿èu`Õ§çoÔÎñ%φ¶8²&î3‚­Ÿè+â‰]²Ú+ùc[•pnÏʨ …c õ@F?ùhÊýü×v]þïë©d½¤¯ýh}u M$þÒ¼Á._OG?hM²†Ã÷±ÀnNG¯J»$k5¥ÄR xÚ&R­ß*úÕäM[§õ¹ÐÿÝYñ%†Ãâ.¹“•®?woù¤'•2€n;TubÄð3YþˆÎu ä–FÖšÒ{¤™•­€†EuÚ¤dàÆ.>ZúÕ¥7ØñjI¹ÆëþGO ë0Øhð˜D“ùÏA ULîcŒã°÷=Hpqé_mg»[û(BÚÉöViÆßqˆI‚ÈÇ\òCƒ\õU©¸ßSZKškSè/ jvÚº\E*¼Îˆò*ŸºHç?¯å^“m2<;£9OQßšñê+;ôÖ†€ºààzÕÛa´ÇW Û¾‡\R±Âã÷„ëÓSþê’¿)ÈÅ}ýÏ’òg„|I‘¿á3_œ°[Q†'=Ú¸ûwÓ4èÑ­¦+6˜«a ;FFzö¯ß;±ê¥ûˆ_Ïó6áŸO½‰^Þk$Iû·¸ˆâôùÛ9™ã9üt,Vïì3Ï{y űùWÊw0îAŽüdç§ç<æÑ×ÊbAeÙå@’|ê7tcž=†áÏ¿µa\üþ)ÑÜ`liˆÀ gn éêþºkW¯˜·V<ßMÒdmI-¯„‘ÛÜjL¬á™ZÞáx?ð3^w{ll¼U}b!† —Dfo˜ª±ýx®ÉÅZç&·4-ÖQKå} çú×sáYQÖÿM{h/¦»òÒ8&LÄFH,Ýp s‚s€$ ävèt+õ; _C¡kMi #I'Úe†(3apG8ñÉɯñ]Új¿·Ìä»\ÒIr¨ù’x½îß[Óæi6›MÎ,äð?à&»O Vñw‡n®œ ®£”8rþ‘㎛˜f•k5oêÚØK¥U^gÒšµ²Þèa¶FY @l(W†E9çüœzW1$ƈ0Üd_ÝȨuœm®rß*1Ú¿½Èî €Fr:µ­äs-î|Ïp³Cã;ÁÏÄò#ˆÎÒÀ¸FLŸl×Ö á€ÿjwÇýò¢ž/x£· ïBoÐã>0jPiÐx}® šæd˜b)Âc ÎAÏQŠñ NòEÒìÒÙžÝgWf+.Ó³Íc´žã•ÈöWN™ÂßÖç i%"¶.«â-4ê×Íwö8«K€ˆ›‡,ǰÁÿþ½|áx| ð/Á^ ·v’ß@Ьô¸æ2–[x%ÈŽïmëÒ½ü µÏ&÷êÿ#æOÚÓö¾ðŸìßðîk+v‹\ø•}l[JÒ3”€6BÏ>8@w61ÀËæ£ÆÞ7ñWÅ‹z§‰üI¨M¬xƒS¸iîgÿœŠ=€ :W^.jPù¿Óüþã4÷¾Hô ®u;øåše, ¹_¼=µ~…øGáí¦“ð·Z–KuEL˜à/÷Ló¾&½NiŸMrFƾ’Ð[E2ÛZ¦f–iQ`…û…ùŽwc¾@ŽÃØ¥»ûs%öŸ%…Ÿ˜6»:Ë—§=ùüëÜ/yÛCЋ¶s!¬ìUì¯d”Giv¶I gsœô8ö"µÄ7Öö‘Å&¨u а(äåTýöc’{gc>IF\ÏP¼¢Ò[㸷ž[­"òc Ê’F’G —l«0ó5Èê^"Ó4ÁáŸì öÒ%ž4M‘FvüØ‚ý’qÇ9é´))RææÔ‡+NÖз¥§M³Ðõxu=L9Œ‰ákݪœ‘¼È]Á]Øc´óÈïÙÁüº_Ûí´Ñu<’ùwhΩó„P[æ`~îOr9ç7ä£Í”bÛ3ñ®c¿’êÑ`fS±îvdc¸¦Æ ŒŽÉöæ°5nËE’{oX]Þ»ÌÉ Ã§›­ÈV>$’6*¤¾ï—hà-hÓk’=43\©ÝõÔÛ¶Ótä’áãÓtí?í(«,VäE¼:ãæÇLŽ«Œuã­fkz¼ž´´× ŠÚ…mPÜ­^¬¬Xv*I*­fÕ›·ü¹)ÛU©òí/ñ¶ÃWÇ…|5">•hGÚîl®¤{{ÉTx‘»ýÖ!Yz#×ÂðjW×Z›C…½ŽVËÅ0Ü£¶GqÜb¾ª5N¾3Á«>iÏáO ùv’^Åa2[!˜.õŒ°!rzŒž~Ý\jv6Ò~é7/¥ÛŸÜ«Åeû¢ûmy'åeØ&…•€evy!à`xk¾y&¼ÿC²”mwÒŽ‘û hZXc"éÚpçø°€'âkžðd-mâ_ ùÊÛgÍŸ•¥vã¦wô¯.m%/VwEûÆ´ÿ µ-SöËŸÆúä¶Óiv‘I¥Kg#Á:ÈÇåJ¸%ÑUœäHŒÒŒ‚6õ£YÿeψéÎ?áÔNâÖB?•myÇäŒ%ð4x÷ƒï†¥ðƒ@Ô,.lÖ\ƒÔ­fx’êþâêßEÒà“í—LD·EŒZEº_˜ØÊáBÌè³®qVzô)õ±«§ØÛiÚe½…©³ÁÕi¥y]ñÔ¼ŽK;¥˜’Ää’Nk€ø…4VÐÚ]\O¢HZI$TE&r[§çSÜ—¨hœ¼VÖ—?4hoå6öšV=ܲºf(œ² -‘¾Iþ‘Œ èüw¬|'Ñõ«t…» ÖpÇ!8ddŒî=NÜ{žp3´jïȼŒí©¯ð÷O¿´mÝÑ‹{!=ØŒô3yq@¾yGãÒ°¼Ys£kßüb<{Ÿy¢^A³´ í/ngŠGfhÑ×÷±b]Ûî¨fÞ6×¼ºo÷Šk[_ ôöðOÆc“©K¯Cö9$Ô’{á%ÜYw4ÁNyùƒ2|¹RYFÿ’O3ñ¥ ÔÿhËs'ïB«¦ ÕÝøê_Ë2Ïæ‹Þ¾üª•ÉYÎÖl„ⳬ½ÝB—,j6µGYàc.™w2\»™Ç.—rð|r>޳‰–,s‘“^&!¥Už¥xzQò‹ÆsÐU¥2sjódµ;ãµÎ:#)Ó¤ŽþaºI˜fÞRë·qÛÉ'nÜñ×=j '$t¯Ð¯¡òQØùóâ ‡ñ´ã²[¨Çæ­`¾ËmæZÝÇek8f„f":çp瑚ññ÷–=tš£ÓÂn¬ä’íoV,{(Ân ¸ŒqÒº°÷t´íúžum'ýv=özÑ4ÿ~Þÿ ü=«é#[Ò®|Y¥Úßéïš·6ïp†D`8*QŽsÆ3’MAßµ¿íuá¯Ù³á µ´û>¹ñ#S…Ž•¤´™[uÁâp9Ø¢ð\‚1G€´a)=•Ÿõýnxø¥Îâ–úŸÍOŒüŒ@Ã7yÝž£±ÒÀ,.5yÞ팓ÛF øîÄGÝ$á°AÈ+ÏJ±gg:™mEÞš|9’¦(­€ò”üÄ336©ã$“ê–£'.]lw6£õ«jz®iv³_¥¸½›dRe™<Ö;R5*¤ Í“ÀÁÉÆ*àžÁcqk{ò–%í­Ù[ktÉeUG^ÆŠ´¥JVné“ ©ÆýEÓî›T’è´q[\@LÞðäÍÐî\1꽺°ä—J‹[KÙ„¶šÔÉåÇ!Ó¢x>l}ðXü¸$‚x8Îy¨ÁÅ_£¦´Fº@óHζ"¯œ¶Ðª(RIS…A{tëš·7: …¼Ö.nà…O”‘YÆò¼¡ˆ!˜¯C»pQ:畜¥hîZ·SFr±øT>›ºŒ¹1¥¹f3Ï]„'®r2z÷Žîo¬Å¹_"d”™-\ï a¶’Pçxóé[J°»woS4ù¥d´y£Á¯@–’ê"®•äçø’9É*8dŒ€~jý þ'[ø?Ah¦7Õ$´S{t¸&(ÙJ…í²óœ Ï9;z0ÔeV¢º÷Vÿ×™•Zœ°vÜüÔÔõ+Nÿ‹eðªGüŒ¡õ&½WáÏ.õmf’2YÞHàõ‡ùí_MV\°“â=EÿhßøgF·f¼QÉr'Q$¶M+,Œy)@¥‰’YbÞ„ôÅyÿÄò«û3üGÜ Ï„õ1ÇýyÊ)'ï#)k|¯ðË[_±§ÃÛóÚ&“C¶Kx¨†I@DÙFYЍŒ³(ÈÎk±ÐôEÓ£¸Ô/-âOßGÔæŽá§¨;aI)1¡gÛ…@K;íV‘³r²…ûë?CTÈÆüãû¼ãò¯9ø™¦Újš-­•Ý¢^ÚH’Çq‘VGÚ§éÁ<ñíÎÆ7¾Pv<Ä‘¦¡ñâuWY41 #€ë;àäãÓQŽs]ßÄ_øcá¯Ã?øbymjÞÖ8"²…Çš‘ö4í蛓êß6:1Úó²3o•Ÿƒ®5xî> ëZUí¤ má)d¶Ô#µGe¸•L°:66²(• î …‰ ³|…ðöúøN4KÙwÍyl÷Eþb¿.Ô?Ÿ™ŒõšÒŒW²šô"mûEóýO¨þiOÆkŸ>Id{9î50ªÅØلM€]N[æ;É –rû‰âuKDÓ¿hÛHŒ§û+þKs°¶nO—ýÏAü'Áu‚J³óBÑÛÈó¯…®‡ÀwÖår?·XîþyPÿ3øñ^˨5‰b7PÑÆùÁ\Ž£ôãÔW=òÖ‹·Wúxozœ½ðö¥ÖŸâû˜f¹{íRÖ-®U ³¼›V Ä…bÙe^pÙváëì¿ ÎG½#Q䵄2³W˜ÁáÏ-þñë×½c™ÚXh=µ_‘Û…v¨ÿ®¿× ýzö;Üêr‚VÒÊyˆ^ ó=ð |s¨^.¡쎳K` ò¢iźlg.ʸ9 s™%=w²Ž èË—û:þº˜ÖmV—õÐú[á½ãÜüÒƒX怨d„¡wÉŠyU ¿ìâ¾lT[½R×_Ôãû›h¼ë¦RšE1FÊŸ¼yù%w\exé¡}nq{Ý5òºýN ¼ÞÆ-m­ÿ?Ðäïs´V“,H±ú|ç–êØaÏAÔTúb=½ô²«ÏþˆHÀÂÄÁ£Èï‘•oNX¤gÝKÝ<ç/zÿÖÇIa~Ö_ïošÌ¤o{16ѺepFIÆsŽ:÷¬?êK>¤Û%³ØOeÛ³D<¤c ä199íž:b¹ãI¹)·Ñ~¿æ7RÉÇÍþŸä`éî‚ÄÂªŠ¬’¡‹;r@=Ïž™Í}ƒw¬Ûÿ<:WS½Ò|a{Kgqd×*ìš}Ù‘VG„}Ø¢j$‡ 1WpÕ«Íz¢[¼l|ƒã-Ú×ÄýwTMCûj]CS–g½ÆÜÝ;H]䨨ØX³½†ZµàyÊøŽ_µ%¡’]¸œgæU=‰Œð{ÍgSøn(tã%Q>‡§øÂaㄽšf¡ŽXr[«y§“Ï'¾™³“1€H#ÔŽkÁÅJõ=l=sQ†â`„D‘F Ä7'qÍvº$z~µ§ÝZùñΦܸ0Ê<ÈŠò{©‘žâ¹«FQ’šZÀ=œ-HJ„àÞ¶z}ç°ü:ñ,úžŸa¢Æ<­ON·û$ÎÈBÉL" ô1« ó†FÍhë|š‡‰›Y¸’+X­®Væp’ûVÄ.÷@yîqžk:—‹•ŽHj‘ó%ÌqãK»©³ÜJÒ¶´Š­}ƒà„ÇÂM)³³å“8Ç?¼ojË¿zŽü5¾ªýWär¾5жüE «ÙV(Yf·yŒK*/å%yÚsƒ· ó \‡„~$Eá/ƒ>&ðŒör˜5Í2h了A¹Û•‰v‚ „çî±#ôðU#M)5·ùž^"M¯ëc•ø-ñ>ãàïí ÄûM2 WQÑ’ëì÷9XÖáíÞÞX¾[ȲmãvÌdg5Âx«Åþ/ø¥ñORñ'‰u[­w_¿›Í»»»”»x=€]pª•_=~Gêh} ð‡á%Æ¡¨éòÏh|™ÊÌÖÆ?« ý Ñ<+¤x?Á¦ûR1ÙXÛÄ]ÙøÛò¯œ­.yß¹ìÁ(ÆÝ ñÄÕžâßø–xv0Éà@¤¤ó7 <)e,J&ƒou}®¦ëym#¶™nݤIÜ“+#+3 ¬æHŸçêCŽFN.+ÙÅ_Q?yè{­™G4W¶Ÿ¿?%ÄD‚»w¼œã>ÿQRÛO¥[yPØëK4’‘o´s—I²Ê9ùˆ8㓜žµã~ñT|‡bQp÷ŽcWX´¯YE¨iï*Y„¹ûJÏçÂŒX¡Œ¨R9òxaƒëÓëúž›&¦ÞªZ¼öêÓ[íKÃ0Œ…òÚMÛ–FS‘œë] ÉSp›×úЄ ä§•Õ…µÍÔ7öóY=ý²‰<™aÈÛ¿ŒðNIäŒç­+,Ϫ@²9Pªd©„B~\œL種$ÛZîok?"Ê]Do¤0jИEóÙH¿6òáxé–;yï¯$zUÀš)Q[Av%·sn˜M•VC 0Îqך¥È¢Ô´b|×M´ÞMLòc¾–?ßÈ–]U‰PIñ¹Îr~ñÆ9¦4Q´bå!…¡l+J@,1‚+ÏA×§N{V:§©£ZXùïã7Æí7Àš"hº5Ä7¾"žW–)C}€tˆä9Ëarq·-ÆÐߘþ$ñ&¡â?Ü]\ÜÏyus1’i'”É$®IË3K1<äþg©úœ ' w}u<\MDçeÐßð‡„®/µ˜7DdšB€3Œö÷5úQð{áœZfŸû|ܸF#îû u§Ï+ ”yV§UñR•~kZ5¿ú6•¬$d+\ÍèƒË*dd €] uJúÂò'“ÇS’‚ÊP <ôLzzœ}ErV¼cŸètÓ|Íü½O_Ó¼7û^^^‰¢·–Òx°ˆ$d-$Œìyj(‘Øçî£O¿<š?Óźœ§ˆõ¸L×N©34ÒÄw¸)*– 웾éÇ'‘]Bþf­+³Ýå`d £3^Wñ_V²à'Äm,έÿn¥p`^Ycì›÷A-œg ŒílNÒÙ>Sø£M7ÀŸë:½ŒIö=ôDg:/‘±®>Tg"¨RH‰$4ö¶ ÄäƒÏ8«©g+vŠŒ¢&àrzæ¼ÛâɶÓtÙÆå-9A´d ××Ò¢>ì´bµÏ¸Ó?á,øÁ†n6]i÷º¥œw°Î¡ÒH"G¸‘=˜Åƒïï>:øKñ/‹|'¬Lb‚æÜ´[mÁ’îC¬M&xEmß.DÓ'7“"[¢?Cxâ ØU `á—Ê“ó¾6ðŒ?Ø¿XJýÑœµšôgÓ~•Oí$i<›&LÃÀ#Ž„ãž?Ƽ»â°ŠÇÄž&‘ †TŽôÊÑÐT ,J'!9˜òýîúóÂ’ùŸ 4QÅ4ÛpsŒ“ä&rŸÂsÔvøÿW1C-Í߉Î&hÁxÔMç6ÓŒŒì#¶EU6–=ÛúÖ&ð¿×™ç¾%hŸÇ7—¬–WrÎÖ4‘ Š&ÁŽ !ðXú]íìz޳Z¯•=ƒ[äªà¸mÀúåTû×Ò§h\ñ[¿º‹Os,^%itùG˜UŒrG‚ˆ}‚œlZÌÔm¦šÒæw,׿D.v–.¬Ýø“þñ¦jÛI[È•yJë¹KOŒ‹HfC±ÚF‹ähe FAî:^µõÄ/Ãaûxm¼7=ו…¦±¯,¥M¼²\Œ®á”mêS7Ël®Ô´7Q÷wíúŸ",[¡~tÜN $:]:Þâ;(Ú3 b`Á×å`Aê1ÈéYsï¡Ñ*WŠw=Ïáî£!»¹ŒíâcŒ `WÒ:Lå­—iʼN•ßEÞš±´dR»AüêäÜàžØÅyÒ»vGdu<—þíÙ§¶Žú¥Çëçãÿ¯ÅL|S¢‹RÑMçÉ€Þ]µÌ7F2~Xäf8p8ïÒ¾î÷>qáäºþ ~‡Ï¾'¼ƒ[ñõÍœ™·¸‘|¹äã“éW„‘$±$*e˜¢»^>ö?­xµ_4¯Ðô¦¹c÷²'iàŒEw%Áe,³Ê°üéêºãòÆKlÚm؆õi™ˆ·a¬ŒA<œœÿ~kJ×3æWÔ»sûÙlÊ‚Š²¡NÎG§ãY?5‹ý3J²M>âhåw'•æÛŒœ|¸8z’Zµ³á-FîÿÀ+y¨‰ÖVH¤ž2›×“êFðZÎÖbû-¦£qî|0៾BÈ~8Çÿ®µ²»DtÐó ]\Üxª\Ä`½u(› `sJ“’AqŒ÷äuré63øOV¿Uoµ[\DRFmìÊðBpIäòI8Ša+-Åǘò“ò¨‰È÷Þ¿•{wÿ\\xƒJ²K6:xó…ËH uüx­jÊ)XÊ”nù™ú¦iÞð…í$ÔvÂXà‰,ìx=Há<ñµÞ£3jZÍçÙ´”/NY‡úC•.T`’ÛóÁRT’SåRWwg£'cŽ±Ñ Öµ¦Õ5í­¥‰ô›y¢òÖÜ­¤¨b\Ÿ¼zçIÑüLµ£ €ÄHÿ¹}ý蜛•»Á%_cÄ[Dñ-¶a§Úk×:…™1Bͧ†ß;v.€á†â ’0:¡lþ*¸Õàñ :VœºãH—â=^ú@¯™Ú9Ä@Âô8Ç#å¥Ýõ6^ûÓ¡Úk0ÑÖ .ËÄm¡­¬è–‘4r†ÜXwgî€z­YmJ+¸S~™aÓÆó;^$Q ¸)>nJãwÁ#žø¹-'}¯ø&®= øoNgEôÐÚ"ké2A9!CžWëøRDú…•´6ï¨ÀÖëµ%‰äpª¼ï|ðOò8I¹å.}ËŒlX† =/Î¥k¼.èÞO+æn¸PWcnG'Ӷº¼]6Ú;È!‰nÔ†á@ráIàç=±\ž¦M%5 ^ZùWVZ ó,4»ÖŽC4 ‡Œ¥ÈK±ùFrN6ûuã½|sñï㞣¤ê×~ðåð’?/Q¾†ì‰@s±0@R9ï›±=ø:j¥TÞ¶Ôå¯>Hzè|w¨^jÚ§’Œ\¹ÀpzW¦x'áýæ««Å­»]\¿,Àp£×ØWÑVŸ,lúžE5Ï?$}ýðÓàÕ¾oos<"mCh,åxLöã_SxKìQøþÓB²ÄÛ"v¹” …`8LûwüºäW›}nw½¬|×ñwLkϋ߮¦ÑîÀÒ-R;MFJÛG ÜiÒ¼nY¤–êG‰!(gÜÞ=žœuO*?&[%E$çåaœçïc>Õx´’‡£ý ¡¥ÿ®ç x*-+Å?´ˆïm⾂Ö’?6Á$K“":g8#‚`ŽÄW¨‘…¼µÙ÷g\–¦n±©ÙésÝÝʱA¹#RÄÎÌPg¹f =Í~}ê;ÔõŸ‹_´>›xÚ¬1¯Â½ZèÁy´Å½UT ü¢0†%UãÌTHҳ륤ÿ®„ïøž•ð—äý˜<#FÃA¶;[¨XÁüFãøWrØ ?‡&”þ'êÅr„²fV É'Ž?ƼãÇð |#dÄQÇv…Øç€3ž„c^=AéXÛRï¡æŸ5*÷ãö¹=ŬQAbמx·1Æ#f|7˵eu,xëÎ> £ü|×¾)xÛÆ Öze·üI`³´òâÌêÒÊY÷3`ѹr±¾ÕF'=¢¥Iô±Œ¤’=CÂíãû™¼w>&ðäg·Sqÿôòc„ ý±vÈa¸ “ã:5¦§Å çQÓ£yôé#–Y4çd1‰cýîsËŒðk£G)ÛË©”n¥ùžÓà°±|dÓÄ"E·]<*ä³nàç.ܱêI'9êsšó¿Qˆµï*¨paÞyõ‰NxôÎk >“eÏtp> ´m?Eñb][­µÝ¯ˆdŒÄäAà‡ Ž€çŸJõ˜åͨ 6•Ú?ÿõëÎW©ŸètáäŸÈø÷âDz“Û$ê–äcQ—û:‘ß}úãøW¿ßô'Æ»øA¥Îê±®c“z•G(ãËä(ù»õïK0¿Ôcåc§¥kµÃ³i">¤HF:ÿ ¯èd÷Ò‚®«Ù°V#==ÿ ê¿}®—g•Q4“ëdSûjIt¶vјË¾ óžsÄWG¢ÃZùðÌÄ9+l7>§Ž fÓJÇ=Ó/8X.m'»23yŠŒ>R烴ÿi'”þ ŒÄÍ*Ék„v#'Žzs×ü涤îDôFÛl:JF®&i¾SÏ—wq¹(ÒFºG÷1ÓŒòsÛé^|ôGZ9k½;RƒÀÚÄfìiò:¸·Pé*7®ìœ¸#œž¾õó›XJóÜÚÚDeáw$>IçØgñ­)Kâ~hΪwHÑšÖÿGÓ_C$7:c+ÐôèzŸ€cÔt¹ÓÅ—VâçN¾_°ùJãÏ\ºíp‡ïN6ýîwE¹¥ò6£)Âõ=H·þÐøˆú-½‡Hº¸K눤F-rñM¼þé×([}²œ`ŒÿxÖ§ŒuÓ4†½‰,®­•ˆ-å³² Ç#sÛnpy‚i¾VZVW>l¹žÚ_‰Æ[9MÄWN$•¥@;î;†Èϵ}‹á'Ûð¯I_öÿãìk J¼Ñׇÿv—¯èyOÅÛôOì¨&±–éFYXœm-Üü½?¥x­­Åæ©}5‰F±,ŒÈ™Ù*tÚ{€®Êi{‘çÔ½gÒ~ø?®j6:m¨·-$ó“ €‘…PÌyè>Zû—LÒ¼5ðáùžDKýuã<œ` žã¸ê:g>´½§»§d#ʵèxÖ¹¬êº÷‹þ×=ßöެfF±ÉºÞÅäÂ)‘$`•áÎ R]7H’-_CÔ.¤’þïUk »€äœL÷ÎŒû”À ÆiínÃVrÚçJm–ÖÕLj¨ ñÇéÀ˜q×ý£VtR_íKÀó#"LÃk~ǨäñX%y^eìt(uŸøH!}$Çei,®Î$°ŽYgR?s f\ŒG±ÇB:Ki¡—ÄfÂ{–ººŽ@ªgƒÊÜWh'Ç8Ÿl×—W–ö[÷ù´öÔÐÕ4û_íë3¨GÌ’nŽ" 3`YNÐ@À9µ©&>ŒÐ:&‰Ia’ؼR) a&r,¤tÁ>ÕN¤¥ ü] ã'?z;.5xomqrF˜ÛÂhŒ‚qœ Î XýÕÌEœC° ¬±`búW?K¤käÎvûFVŸKšXäÓ¤Óµ/´ÚK†ϱX*Èø OpQ0yÁê¬ltø/ž÷N±‚ÛVtÙqt¨#šu-’¬àtàvþßšÓžÊÃåÔñ¿‹¾/ÿ…sàÍkS“QS-ì"iMÚ\aÄ·Cr¶B'<œn?'üC­ÜjúõÅÌó4òJåšGl—$ä“îI$òkèðNŸ?Ðñ1R|ܽ¿S±ð…nµ=rÞ8á-q;28E÷þµú‹ð³á®›£xf ©·ne›#¨á‹b}+JÏšc¥Xj}á;3UÖµK1D°ØÃÜ)$f/¾ l÷Ïr|¯àƵ©ê¿µ•Þ6›ý™¥XØO06Æ!ÒâhšC*ç{¿’±(@f2H÷N Q”»Rn2K¹GâÞ”`Ö~=êHu%ßåç»Z»áÜp6« 0@H-‰Šç DÖµ-GWðŸ…ü?¥Ïúαn†Â’&Œ•€J±É°ùdòäçåŽR§rrÄ¥h7Ùþ†Ô>Õ»ŸVøÃ6¾ øc§h²¼ëù$šUŒ<²HæGfò’4$³ˆ½¸®¬¹ÈP@'ùWŠï©Ö|›ûPø“[Ò-<6ºvœ/-῵•né’[9^b¦e@0Ù‰&ˆœ† 3¯Ì²:תè‰4_¤„n¼›ÀÞž1ŸÝŒ^ WTŸ¹·s5£þ»Ãd)ðÀ«—þÛ#‚=`Cç]Gû÷ù~Pj&íR^¬¥©™;“;G¼®[ØÇOÒ¾oý£õÝZÇÀú.§£ ]Ji…ÓÃ<­±P$92×åôÉ©…¹õ~éÇ|ðjèþ2ÕÖæáæ»}XäDEؾaBUxÀ<×Î_4•Ð>+xÊÚgòî4¹UÀ ‰ã@Ø=qæÙ ŽH½?z‹ëc)|q~LúÃÁ6vzŸöåü[Ꚏ•vwðH"YU ùÕY7mŠR”ù€(‚Ñ©C¢F×Þ+†é"hZ;9–TœÑÑœ;ñAÛŽrAT#ÍÍ2fí$Ùé~¸EøÉbˆ6n²%P¦C;gà,W ñ£-â?àºÔÛþX-U=*µäL’gao5Öñ'Pšbå}ð·Ï„šœMæùRŸß¨ ÌÎÀáz}ßáû½©ã£|——êtQ—ïSþ¶Gq?Ëlw|¿½Áœ_ øè´õÏ0¯ÝQióŸ/pP8Eåw9êv÷k ¦þÍßÌxŸã_Ðõ/„3NÿfWtxá0˜£ò¢GƒÎ̆Áï×½y¿—[oxš,álÝ©™ F&Šßå\*–ûˆ#$(8õ)A,Á¿'ú}i7…·šýO;Sæ­ko ÛL"¼ùŒN6ùsŒœtü+ ‹D¹Úš$8‚æÞä»\E S<AÉù¿wž½W9ÀÏ­U¾Uÿà4ytÒ¿7õ±ÊjÚý®‰¨„Ñ€}l[EÄñ¾èã‘@ÜWÔ’Ïo~µÇØ\"ëÆóVõVl™#yJäžå¹çÚµÙXÅ´ß‘ÔOFê|%Üv¾lôÿv¥®€‘'Mñÿâk.›š]v#mWJ ŸøF!ü.Øÿìµk:Ao ƽymÿÄÒHK¡¯à[›[ω¶­––íHHI^Ü úïI9‚1žxâ¼\u½¬mØõ°šÓ4u-^>VËÈÇä Þ´ôÍR ë• ‡/p¼ùS“‡9èFqRå>Ñ´O]½žßJ·WDeh„Š®Ê:í徃5kÂ›áø«áâwG$zœ$イH§óâ½e­.…©Fî=‹¬–Ø‹™×#§¥vzmÄÅ!½žp·¸† P9fÏtëøç5´Ú”ž‡ŸZêIyݼR]³Ú8ò8Øà†Ýîc‚zŽÕhI$Os8ˆï?¼Á*£»è:Ÿ¥dõ—*9tZ—õ›m>ÖÎÂxµûyÍ•2Hà€U¸$’?QNµ_*"˺#m|Äó‘ÔþUÙ´’fR{¤_¼”C-Ú.'Ç :I´œu qÏjá¯æŽ-Æû¦ÏÙ”ŸáÌ`cóãñ­R|ÞFoX£Âì/$ðßRâ 'šÛIàÈGé»ô¯e³à³Ð®<ÖXî4ï“Ól ;¹šèwߺ9Öš› À°ÎøP]9kuîid°X¤—Ë`TàgÜÆWpÚògbnÈçüaxçÁ:Äê0Þ_ÝÆs—QǨ85Àx+A´¹škö·iî%›Ê AÊ®àzž?![RÕ?S:‰Ý[±èÞ1ðŽâìõ¶Ci ›ù€1˼]Ðàã$…çµs>2k]Xðn˜¢Cmqâ¯+s©Ž>Ê¡HÀÁÆn)T¾Q[XqoÙ6vÖ²+~Ñzz³íYmŒ(dˆýç1ȹÀÎHŠL8Ø}j/Û}«áûEs¿k\Í媧,Uö€ì Ÿ¥q¦ÓGFéŸ,i¨SÄ–ÌÀætÜ8þuö†&Cð·I!Š(õÁ?xÔ⾎¬;¶¯ï~‡|I·K¨m&óѼÖᄯ˖7uù^ÀÖ_Â_ëú·µ”‰“KÑlg»½¸hœ ifGuRªäà9PV)$€§®Õ£Ïžµ,ûŸ¥:¾¹¢ü>ðªÛéñÇ{¯!¶µQŒ‰ñÎSÇcš/ïµ;íBâ#4Ú–±1"mC8râI$løÁÀ—k}ÐHÀ»6”/ïHï”­¢IšÆÇZ°Ò5DòµÏ[£JªFöe•¤˜†îÛqé^–ê¶>¹xÂâöÒ-…0f©.>RvéÄÕwoª™?i.Í~C¯#22Bµôû²«3Œ`À±o¥½»³[vhóó:·˜²í—œtÚÛÔ3ó7Ö³Õ½ V±ÕéúÌöÞ"6m5»:[ü…‰äb§8!¾PHÃÆF'AzÌ÷©¢êú£y…2–Îc†y(Š©äàä:ןRVŒ`ֈꂼ›¹>§ˆ%ó3>â^_²¼N€Ÿùf‘Ójä°Á ‘œ)ʆÓY·]’Ý‹ØÆ&UÆÞ/ïŽ:ŽõH­ß_ó*±¥¥]ê*RÛhÕ¾ÐR6êáÎ2’ …à‚sè3“Zö‘Þ;ÞéÂÄ3‡O39s†êW9ÉõÇ'=ˆŽ^ghõ)Ë–7eÙ"ŠÀÉ([„\—"3–'N:gšT¸šT÷Z£[[-½¼’]¼w©<ë-#ùÊJ´k´Ÿ0¥Fî”*mÓæ]ÒûïþCæJ|§å?ÇŠšŸ~ Üy#h¶’ø+L¹ðþ$O<—z¥Ï„í!EhâòãÌhÔìó0D÷›?Ù,y1œÊ·Uþ_äuaõæòæ},ß}F8üëÆþ |JÓ¼7ñGÁ>mGû/SÖu+B Û–7µÒF!ˆž 9Ü€ûv4‘=x©)KS»¡ÆüvµŠöúÚÚUB v줎rrÓ8ïüêž—d’ü\ñì#$3G¨[ a‘ 9c¸ÈÅmÓï3Žwá¬é?ìÿàÆCÂèvq½ŠÛÆò®‘›÷ÄäíÇLQU~õ¿2£±—rûmÝÇòÅyÏË_ðn}må_Ú™ÒîÒápèDø‘O<b›ê"›v¶§)ðý¡o‹·ûFGöPîÁ\²uÛߎ•óƉi?.|ËF»ûF“*íDèDÐÄçî‚>¸õÀ=\ª.j>_ΛvoÌú+Á1ÅмU ‘',Kd`Œûuôï^ oÒkí=”ÑÛŸéuÊ2n#û¬;FA ˜V¢ä¦­#±ðÆ¡ü.Í>Ü38hZL z©,ÿ1ƒŽ„NAâž›u©üGÕ´ëtîbUV`pŒ ’;uíÚœezÏçù‘kE?m%ÕOÅ»i&Xc‡U•Æ ¶$“ÌPTôþ¸Æ?Nâf²¿#!²G¾kƒ1n2‚íþHîÁü·cäo‹¬_ïw+ˆÙI´nû¿(»à7'åUÝÝ…{‹ß;áE‰Ãoæ*˜s°1Üá›—ûܹûÇæï]­0q­7ûÄ™ÞÜ“@º`ͼÈ0Pò;qù×ÇÚ®™­ÜøÎ÷Nšã턉n¦i•F¤•iæ±P«‘Îæ?tW6QgI®·/ùj]öýNËálj-m®N¶²»Ôãž]×7÷SlC#2 è‹£j$Î;_â,Ð\|UÖ rÆQÊ*ªpUP¡›oÝ ÔôÏN•ïSQúËk·ù%VÝ~ç3¤ÙÛ^G À½Š\I<ÒQŒ€IlÜŽ>Q€[jœoxÙ¯µ ZËËäÚÝÈÍç—¶IQF©Ž<JƒÉäôz÷¹™ÄÚQ<èm‹"<ï=_ü)¾i2¾™§«ÜÄè-t•G„É!ó]wa˜Œqœ}}«U´ÈAA$ñœqXÎNö7Œt4ddîŸlsMHá@Ûó2ƒü+4äi˹ðn’4ÿ¤›àå‚Û#¥}5¤6ØÇãÚ¼\]ÝMO[ ­OCŽñF£7×7W oo!È@ÿ&­øCZ·»¸†âÒâ;«{˜ÀWFù{þ¹#¶k¥Bø{y)~úçœxïAà¾ÿ„AlWK‰Zó^mZXÒ|åBòÄçäsY3ëz>·ûHéú¾§ý’Ê+…ÉÌbÚB: íý2y&»Ü¡ìRµ®mË5YËšé'Ó¿C/E½µ°ñ^”ní㺎K˜á /Ý%˜.I¯yk8 2¢¼I‚|ÈÓr¯=}=2+Ž¥ÓLurÕly•æ¬Ë­Í¾£fö-'Ë$hAÛß¡"»={M"%ä+ ¸"T•K¸È#’™é‚†“Kær­7>\×îvxÇS’È›%7RÒÀEÜpãŒ}+´øk5ì×Z¡i<ËH£Så0o'!³×Œu¯ZWhóÖ“±êÚ„3Ëá«•Ž3o:J%£|1P2²çœdþ±Ír^(°·j÷6ÍòË\8’0TppqÓ>µ“ø‘¢Z3çZÞOíF¹#lRcköÈÇ׊ö}'P·ÔœÎºw‰‡Û=gÃÇt·mƒþ°û+Fu2_»G3Å2(W¨çoó?ç¥yí»ÜìHä|]s¯ÃíAf¸2³0POVo3;{tÁ‡zñý?ÅzŸ‡µ“H1\C0µ‘•}\äzT]ôó5¨”So®‡²xWXÔõº^º†û( ’ËÓ“ßÖ¸ŸŒ7“ÁñcÃöñIòÃkç Ç*í+òÖq“©^þB¨”)Y£¯4öß´i-ö‰e¹ƒÌv9Ø–6_®ÙŽ‘ëšÓñ!¿›Âö–Ö¶ ©›­ISì«qåîÞHRIà|Û>÷•DrL§ð¶—E¼qøÉ­§‹dñÜ‘9ʰ㜨¯£mthÿá°›ìˆY­‘·aœŒö>õ¥vi\ßþîß™Šotek:ZßÈ¡Z®îî&Øò†ÆÇ œ2à‚ ú}×áÖƒ¥øsöE×®®Æº5¿jI.e¥ë9µK+8e--Ôv÷I"–`ÝÀ¨<¶>kÙ‡š×›KEþLã«JÖî¿=L«¯ŨÏ%ºÞëVš‹É'Ûoµog¹‰•HÆÀç*ÅLŒ¸fF»oðùgžÚâÇÅž,ÝqpŒæ=EäXÁ<(a¹Êë–å^AsƒçÊv['c«[Ü—Á¿k³ý¢æÒ5RòðéšÚ.Ã^¼ád{¨Ñþí7¨V §æé·æZúz¼;?†¬.ïµ ˜#‚òâÉíãFFiUVdd‘#æ™ ÎÕ ŒÌ@â¢.Õ9^Šß­Ç%xs/ë¡Éêö±Û$èmg3G:‚L²ÆÕÛ»EôùF gɧÉ$lÕçk4Ìv)"à‘H'Q¸ynpw ŒM(¦–¢mžŸý¨&üÕßý!dbÊÑåø››9 ‚5µªØYÞbê{†‰b*]C¯ SƼzŠjwêwEèrð”èšoˆ4 ¬zŠK=‚Û|,¤†`“#´ Ã;?Jôi.ôø5&ÒÞ)!ŸjÉÈ<¢ÌÙ…+—$)ÏÓ­)Ó’§Ìÿ«—)NËú°×–È^¡êY±¨qãsŽNM:%쪯خbݹpTœ}ÐwœãŒüœsŒcO’2÷ö”Ú÷ º†™µ¢]é7„Ki242¢n«.='kÇ>0x6Æ‚þðíž©†tßí(.æl­Ì†mß(ù9ã“‘ŒV´$á4º]1JZ-Ïš¼Sð×öXÒµHêußµy’ÛHhîS$3"FÂÜ¡ê«óIÆ9Á®cá7´ÝÆ/¨i1\Â9Á6éGšÈåß·#pÎ ³Ž•îÆx™SnªItþ¿á1ÂŒgî=Oº-Ø|Xð?…áÛs\Gq0óB¼| 7`à2{ñƒ]ÇíS%î‘û2ÜjúXóN^®ã…Û¡e#îöÚ­ŸA“Ú´¢­R?"*;ÁžÁð£H7‡u;dvyäºGúEíÜçñýç>ùÅy/…u›]Æ“jÖZxѤÓc¿yí®­wMæË5ä©päÇ›i ›ÔïòÇïB¶RI$ô-z•#Ýž}í3â/‹wÚ¢þÖÞ%Óî¤c’ƒJ‚6 ´I²ÚwROÌÀÌÒ°.ÎÃv2BŠýaýžŽÏØwáaéÿÍžpsÝ.+‡Ô”Zþ´= *÷$½?SÓµíN}3¶¥in·wV¶’IÈȲȪJ«2«²‚p Ä §¡ø8êŸ5oƒ>2‚ké<Ÿ èdº˜´¥¢ÔcØÞÁU›v¨¸UTãÅuó·àÎÕ£þ»žýñ¡ˆñg‡óþ®xü²3Œ•faüÿKáOŸö”¾·uÄW•Ê”`Éb?Sþ5¦êÞL…¡â¿5/·þÌÚªÛ¼¶x3éå±B?ñÚôæ“r¿'<ôã¦)Õþ,½XGáLùö±ñ7‹´ƒV6^'NÔ¤–-Yã%fh®ØÔöFù·c€Ý,ao(_Ø»áì—_ ÒÝœa¼¶ѲœFÅh¬¡·¹-7rÿ‚dI>2j-vû3 #œ†ÔëÐuïÍxî‚qâi £Ë–¬NÎD瓎…áÆIÁP‹\éï£3m7¯à)ÔxãÅ“¶DDq$°çžIõì+Æ­b™¯î|ÊD-¿båÙs÷TŽ™8çž8êr.Œ-)GÌŠfièW Æ-úB‚Æ;veòÎM´¨<`dW ý•uoÍ­ß ·µ•—ˇ8i@À\ŸîñÓø³ýß½ÏniKäi+4‘ó‡. |XøÁj’ý’ÎmL"¬r!Ì÷F1’H\b½:Æf“ÂqÎÂ^ J°ädOëY㢤¢ßK~FØWe/ë©óGÅë`¿–TyçÓâ.#„c{Œ;“ÀùTí^X㲚ô„ "x èJÍæ›·Ü$}ÒÝ¡”|©×„(Àëšx½p7þ·:h?ßXí|Oâ ;Ã>¸½ÔçXƒåBOÏ)ÈÀQÔûûWÊž-ñÞ!ÔΡ¨Z®£(Qm§+÷Lª’CÔ“Œú.@§<­8áœû½ ñ­J·*Û¯ù¼áýKQÕàÔÞfÓìâ?**Œ*ò o§SŸSÐÛñíÖ™¡x¸Í, ýŸ´A€Ãù„ƒ´pO,sÆ Ú½x?ߨy3Î’µ.fxF±âMC\²†Ä°³Ò`fuîÇ-#ãï9õúÀ¹íÈ©±FÔïê~µëØò¯­ÈY–¡fÁàñíWbM“âµÓ޾ çsI¸—fêI?Ò®Yøšê+…Œks utP®¾üp~‡ó¬¥Éjh¦Ó;¨Ù&ß ¨hØƯÅÇ%¸$v®kV»:·¡QË•™ö W¹émþ„1ÓéŠòq‹ß=,7ÁcçÿŒ×². ¤E”\\–ƒÃ*v>Ùe?…s¿5g‹Ä—š[»mùnbQÓƒ†üòµëB6Þl±¤Œã<úWIá,ÂY!2#M½*î~Ë&?Zá…ÜÒó=úšR—£&–)äÕtù µ[Ö†_7Élá°1è}kÙtŸ_G2jÖ¢ÝJ–‰_ä9èàþ<ñNkGMJÎçY¸TµŠ©%£#m¹ù¥}ÑU'œ)ïÓúÖV­sp¨Øš6R‡«a˜zœÔqúVºsY£…¦ög…[iWzÇÄ”²RV6s$ù8Ëcß°÷5îz>‘c£hÒý†ÕÀ—bî.Y•ˆÇ·J蜶] !¢lëç‹v‚ Þ\•ô Ïëšåµ{+Â÷–[¤¶‡ð¥ñ×·Þô¤Þ©%¹ó~±Ç¥[ ‘ÚQ+F¿é]ƒÚ_øCÔ ‹TY“Ζ¿Öº—Âs5ïŸAè˜ÜèX“üóôÿ ±îÕ gloÎ26«r>•çI.§jG„øÃÄG\Ô_M†-b²–E_›&C’G°ÈüMaøgLÅè÷˜GhÁ¸ç竲„5Ý…ÝI]lmðÿÅÀ»Rp©lÙç†R2=8æ?nf½ý îâu -cŽ4ÇuÆüþnk )»ö4¯ð$}­=­¿‰á¿•;h¢ÊÏ![zI8ïúñí\©Õ5jÚm¾—l`ðÀÕaFÔäùe¸>z&bSè[9`GuiÓIZOeùÿZ°wÙu<£Å1ˆ¿hOFT£ÿkLÜŒ—sŸ×5ô­²“ðÿN`0E„]¿Ø[óÝ”Wû3ÿèx׎¡+§ø]RC¹¬&çÞ>8Súײü"øwâÛ\x¦ó\Ž] QÒ%ôùbÞÄ8¨wgo@üaˆã¹ITQ…·èrF/ŸF{f˜¾WÐmþ×ËG*\Ådœ3Ƕýß2)Âa¸X€8Ú+ž±Òm%ð­ÕÅÆµzuy"fžV¶;ØÄvF©U!¤P»†æbÁqÂ÷üŽ©cðjâþ÷öƒñuΩ,—Œ–³Å4¥šG]Ìk—l’@™<ãßõ,ó^Íi§YJÒjfÁ]tø<ÅÝŸ2“ƒ’ˆÍ‚zžFw` ¸§í*m8¤‘ÌjRÁáøëS¸Þ(h¥‘ؤ-å*ŽvðIç·zeú¶¤Ösj|²j6ј‹(¸L\Ì[oA²Q‘Œ6ÍnÝ—7à`–¶=N³·ºû ݹYî CÙ´Â(¶ À >bC`Èã5ßC;[ÆÑØéðÝLèWdîê$'´à;W“kΩ_Ù¹!/ìt}>/·jÚrŨy¼F‘”¶FÕ““ÀœóÞšI‚Ú NÖŠ2iËÃb2sß¿ã^Ÿ×.?Jõhµ½>çÄwú=­ÒM¨X,fò9h|ÀYz£wЃ޵­i7æÿ2#ð£Ç>6iq꾎ÍÓsyrºC…ÿ?X[!/ì™àëX_îhzÞ`è0sÆ=sÛ=;J»ƒ)ìSð[MÅ­B-èë&æeP¿0ãžüžÕæúbbáq´ÇÆØÈãpÏòþU×{Î#-"u>» ñ£X„ÊŤµgd`^SˆõôükάbžK»¶†VS .ôŒÿ¬ž8ä×n½ ¥«/Ô©ÚÈô­'Bµ†Çû[T Z¤x]ñ”2 é¸z£ævÆì GX—PÔ#¢$R‚0 `@'ž>ööõëCiTKÏþ7‰óç„@oŠŸ¤u))Õ¡‘ ­çNsÓ“é^­§7üRñÆ6y-j¢-£Ð? b¼üůdŸšüެ%ùšògÍ?õ y~,An%’ÎÝcxÜ3`Í/ʃƒòÉç…RëWkðreo ê(•~Ðò(ޱ1(ŠJ±åÏËËž­¸÷®Ê”ܰM[[Jª¿õý[•~'è–0iëâ;;9.î¢-†I PÎÅ·¢tq,B¸±=y¯8ð§ƒWQÔãÕ|O#†qæÇn£—# õ9üBIʼ3µ vЪR­øŸAhÚ\;1ƒì–K&\~&¾zø‡ð·ÄíâY5H.n|V¬\º¬! Ê€n;¸ôª)bUºìúöÿ‡*­U¥h$ö—oÃË‘ G“iB:©‘üë,Ì[©ü3_IRhð^R3!ìi†CVA4$³û ÑX÷&ÓȬfìk¼ð¤åì¤ÓßàmñóÉRyǶyük¨šy#¶rÉ‘œaFN1\ïW¡ÓîØÖðÌàÍ* l7OCÐøc^õ¦>,' ò±=,3÷u<â“Ý[Zm¼±'nœð¯9ø]<–?íam¸†H›#8oþh+צÿtý2¢ý걬žñK#ðýüƒ8-]Löƒ5¯¤éWþ»ºÔ5ËtÕk b¶†ê3ÎÓFcRŠpH÷Œ`uÉã„%©5±îʤ'÷5ü=c¨ÞëÀéÖ^ùi™YzF29>ÇÔ$‰©kGxùhY]£¹Ú%7d‘Ç¥kus‡ÿxÒ+Åg§ »lå!¸63*=0\õçڭͧ,¶{"aM£1‰²¾Ã•Å=wÜäNìä4ËìÏÏ=Ây(au2Êù ÎáŒg‘øô®Þú[;kH<˜Žn$%‰ˆþOþÄô<æ´V“°•¬Í†.ÉjÌø;£T600 ž}þ€ýkŸ¼tŸEÔn¢to*Œ”l—VÇSè?*¥w+‹mŸ|T#ReHJ†‘›qœàŸ×5?†®á öªäLû .>ó à{ñ[%î™JÊHúODm¶§å;º{þ5¡§JÑj7kå¹&.88år9íœkŠ£v×úÔìZ3åmnDŸâF²`Žá›íò#“j©ÜsŠè|Ýxªh¢ûBÌ! ,äIžW§9®©$éßÈㄚ©ó=÷D±´ð¾­5Úi umå¬r±yÔ’o-0)ÃcüךxÂW^(ø«­h~!ÒµçžUÚG#ÛÜ2áQURd@í€Ô$’:W"©É©=_CÞY~>¾ÛÓ¤Ü_Õ-ÚôG­øÃpjî%ÔÖi`Óíä¹k 6‹‰J Püç‚åïžN2 » ÛˆµOZ\ié§4÷«Y¬ŠÌмŒmxwtÅDR’Q};á÷£ÔòŸ‹6ëmûPê",Ž`‘1œ‘ä¨=8ê3ëÍ{M˜sðçM,À±²Œä/A´qYÖÝÔßî$¼ÎgU“Go€/"àºh²ùfâ)ýÌ£äàs·šökï x£àì“Ùêöº†¿ðíµi ðþ»$-¬ê%Œ7Þ1ùrE,xÞ)ƒ’,±E¥ÔZ„¶•ÿOëî0·4y–ñÿƒý}ç¢YÙéðøÚÃ[ŠáÒæH¥ˆºÝ9W0K¶EÚd#÷E¹ ªÈs“´´ë cK½‚™§·‚Ñ|&ÒÏç—8*ó6P …Ã3aI ó7Ÿä¬ü¿#y+ðBËT¸øˆÒÙÜ¥¼³èŽÓÜOfPoå À`çŽý>ös‚+éq©ØZÚÞMle¸Œ\\]É'îÃ9Ú |ò¥º°àu<ðz’çoÔÎnÚù~ަïQºŽ2÷ö¢ÅýáK"ùWåˆYvž7È&ºÛ{+E–˜ …®ÍÔÛ#Ἷ<ž9ÏÜsÛ­\¯&ìf•™ÞXêÚH¶vœÃk¨j#o—1Xå‘åFsüCœg‘Ó&ºxá¸]Ïofñ$k“"Ügbð¸Ú÷õ8=«Ï|Ómuµüô:#î¤V¾±[˜#œ›”¿Yá£ÚBìžù÷þ–µ J(4Y-î|Ëw>y#D98%Ž[žsŽõµ7ì=ù»ÝÊ*·»,sÑÚEmw!‚V.¥dYI¿tž¾Ý3ž½k^YŸKõdÍòÓ—¯ùEû)Eª|AÓ¼e®êú­å¶aâo>õ9'3b>ËŽÙ$D‘>æÜ]Úf S¤¼÷ìßcíO¬E$‘^ÿkø‚òím|“)H!OÑ~B6DQžK0Ç â*ÔmÍwå>ŒñWÃøCöXø™g Ù}’Õ´›É†ùWÎÂÃs±,Ø ±'rj×…üe•ðwà—ƒ'’ãLmkÃvÍkp±$‰~ÑÛ+Io‚TîrÛ~ôJ<ÀÒᮜ©^ý_ävRø­ènüÒ%ð÷ìa¨è×Sy²YLÉ+F>mÏ$„à?‹µyï‡gݬéRJáI®:Üûœóß…[™ú¿Ôèÿ$zwÇ+ˆ Ò<)5ÄÂ㻟GíŒc$ðp9¯(øy{¨øçö±µñm‡‡¯tïiV;%Ô/¦Œ@-² Ê/Í弞^Nè‘ZSå…zir¶ÿ«ØKÈò_‚Ó^ÅûÍ6™sö+ìjR[\W1He••ö°!°yÁà׎~ËÑxËþWÄ¥»Õ –êÊ{÷¿†I§ºÞn7`ãk’Y·çp88çyµÏQ>ÿ©šNÉ£×°±ì“HŠÎrÏ€O<ö÷÷êjõR•û#žÍÙz›>¾ŽŒ@¶‚‹'Ÿ{åäÏû²~ÿ÷WoCŒ`ã¦ü7¥iïk¨j÷·JÚtwy¾XâfBÁ£ :m~åJðAÛ.hó7ä\Ü]‰|I©,–V«òmšÜ Hñ´‘€Ž8»kŽ3ofÅ‹;J¹ò†°;zàóžOè)É4Äšqó4ÇnOn¹ÙíǤèMü+í.8¾YºÆÊÄM§¦qÏjæÇ/ܦü¿#§ ¬ÚõüÏø›ˆ¾-¹™.ÅÞ§4 O§Y§qP®$Çʃh;ÜÛF@\ÀðoŠRÇÅè“Mq¨Ü¤ER(äo(àlX•yÂŽ8Ï×"½4› £ÖÇ+’ö—èXŠÞ-vÕµMTŨÏ,…m-``ñÇ\ž˜'=:ޤƒµoiÚ$ŸðœÉ<Ä´ÅÅP2xõÿ<×7fâ¶GD¢ì¥ÜõØ¢e_º:`uéXÞI7—ŽÞIÉç½yX™.[ùô—¼|“ûFØÇ4³é°[[Éfe7PÚª5ÄÅ€pî>öÐé¸ú×ÌÌ$b¾¯ÛÂFÿÖ§ÍbÒX‰X`=iqךôŽ"Õ Ý#[¡vŸsÅrÕÕØÞ ±Ô¤ÓuØn"aæFySчpkÐ×Ä:=í¾~Þl%(C#)ùs@*9¢QmÝNIhÍß j×¾"¸¶µó-¡¼eÚžøëíþE} §¸6q‡~5ãâ×¼W ýÖq~&Ó…úNŠ„•g\Ïùà~uã>ÒšË㆗7–Jƒ 8¯îÚ»èË÷_#’¤}õnâ ßy`.‹««s“ý¸=xééV"ƒBÕRìȯ,ï­Ð̱^^4Ë2©‚°Û‚[vŸ¡ÑTŒß*‘è:r‚æ¯ùš:sL­tÂhÒÓË :<Š7d’0§–èzVŒpÞ–ïk”¿”èHë¼ã¯—zQw‚HâÄ?ß¶uصº«<‚Ke†ÁØœq¼“îÖŒVá£IG(?9òÎŽüõü©-UÎw«9ÛðWZ˜ìGÃåv† ÿÕüˆ­ªÍw€®ä [„Œ,à1;É] ñ´€Äg9÷5pvhníæ júÆXïšÚÖH†ç„Ì^6Âç팑ױ¬ÍJm_Aðü±ZY[»ßlY`µ‚V@ªs¸rpÜ€Mn§$Œy]ï¹ç^'ŽâKkK¹ ‘ó½XŒôãð5“¢[¥Ÿ-I·Êº »±çö«OK"g~kŸYÚ*&ýäoþË cÜcü+BPn=éº×†À@7wïŸÒ¸‘Û­ÏœîíîgñV£©Em4–›×|¿geE <ôÆAÔW¥ØÍ‚¼+§²jP†²™—&Ú̦AÛvä!G<†'LöT”iÐçìm–a;1†ìÞ¾‹W÷¥c™°ÒuïëW ckq©Ü/s;ª’^YíPpIf#¿5bãÂzý¶”ú‚ÚÇ}g>lú}ÜWiNó6ÁîØïèkç#‡ÄVƒ«¶–ìýþ¦g–àëC R¢Œº/.›h¼®vñ”·vká½vé|‰Ek};`Åé·÷÷xÉ 8ìuÛ۽ǞÕb‰&:dWo ŒFU"󀨮ü4ÜÚo¡ùW`cƒÅóSVŒõ^½Wëó²Øå¾:ÇüЮíÝe·¸Ñ¢‘$·,¹–`Á ¯FÓ›wÃý<ùl³ŒtÇE½*îÒû;GøüG„ë:¥ôzÙÑØ…±gûNÆwd“Œg Õû9ûHÃ{yð’øHnô½Kâ;eÐâµÄò¬â£)3LŠc9 ‘UŠB]–FXð­nh'çú“Ò_×sã8bŠÛV¿ÖN·ö(ì]ÓX¾¹Ž2—Ì’Ój©WJÆ«¼±êÅX·ÆÖÚò|ñÞ˜öš]…†‘vöñ˜YL‘Go) ÈX`ªŠ£ ¹ˆF°¦âîõ3“¿¡äÿ §¼±ÿ„vh@ÒxJlË‚rQ½pXg¦èÀÀÆ@éÉ'Ò.¬â–}Cí–j¶Ò3µ¬I±°w;òes*–ùy9úT¹r¶—]BÜÊç}<çÏv#æòæÛø³%ÙÈæO½O ôÛZt“K·™÷œdîÝsŒâê;sÇ«¢1QŒnÛ:ý2)Öþþ·Hä…Á‚ä€êɵKƒ€NцÆN„ôºdö¯o´Ayxæ@‚K8wºó´ž}G5äF_í+CºQ½YjHt¹u}>ÒÜ´³}ø7ÁÀq•,7Ã*Ì3ŒòF1Í\¾±™ÀWÕ>Å:È2ɶvŒàî^8aÛ»'ïÏü+OSû¸¨¯‰”.ðÇqràøoáŠ8®î#T@3ÊýÑÛëÞ ·oø\Ÿ³Žø¡ÑYÕÃgk¬ä(úw8ì@ô¯6š“õü™éÔÓ•z~hûÛSÒdý²´Ý êF:ŒpÇ{ JäaVÚê2Øèx”Ž}O ùÇö³øyª‡Þtºññ¹­jw ²ÍeªÚÛÒD„Ô<¥#Fd•œ”…ÆÓ׸É%Õ/ÔåqæO×üŽÛöWÓâѼ â¿Aywz·‰=Ƨ0ß²Êb|¯""T*ü®ìWæ;·7CîßþiôËØí¹¿™Ë]ÞÌ?y;÷'ÐzÀüÍrÉóI۹ГŠ^‡mñ!ÿ Õñ(ó jL2äZHz½:Whvw þj·0†m7C ™ –B&úòçŸLç[J7ùKãû¿3×ü$üÖP8pö—dÜ|Ñ1õÏã_?éq˧ëZQ™Eeg äDäŽ9þíyÉjïÝäŽããG…þ#øÓÇ~ðöqc¦øVXL·™uÅ´ˆ}íÙ+ålò°ĤȄ!>Í¡è–Zƒ¬t»$Ù ¥²[Æ6¨ùQBŽ8€ôV­§eØËTþ+·üïHf[K£ìù£àÖ™—ñkâ.ÄÛæÇbwc¯7)Uþ<ןê8 ï|{oñX™”ÍYc19-+„Èd'kg`ƒÆGBsä Z(¿dm;UM@­„¨Âxn袖;¶ŒÈ¬Õ—çw#Êw— ýçêT—î΃—LŸ¦ĉ, £€oP1œ÷ëíîyioxŒœ_JÁ e·ol};ô­¤½çèŽTô.[èrÝè“jS³XÛÃÅ%” ä.îÇ@XÀgl”˸עÔ.í"‚²°Š&ŠÊÖ Ú¡p¿/CÀì:t­¯ïE§+dSÑyß-Ã&¹a€ùsÓ sÉÁ8íÚ©_ÞÙi:l——÷"4y²7Æ~î9Ï'…’{“ÌÖ‡¿êå§¡òýëË«|dÖoäÓ'´»k«+ˆb,… BëàD›Y~Pr­¹HÏNÿÅWºî—ðRâçÃú‚ÙKÙ-ô¿+F­##yl ù‡Èr@ÆãƒµX˜S”# +«¯Á\tdâÛNÚ3æ%{½BÖÛFÑÀŠÚ1¾æá€V‘¹9wôÇAíÎpôøfîäÊÚ!—Èj =FãœdsÉû¼–Ö¬¹`ÛÜŠqrwð…‘](ùÄË(º˜3ž¹ÃúcÖ,(¾(i±»“ÄWÏB§ï*5ßüÏeÅrÇÐßws8ÈéX—±ÜK•äôb=뎳½?™´4‘—®hZ?‰t¸-µ½>-JÖ9¨’ºã¡ãñt#ƒÅxÿŽ>x_YÒï%ѬaÐu vб…hÇÊõQžüô=x|MJ<¶z.‡-jªÖ§Æ:……Λ¬\Y]GäÜÁ+E*g;YNÈã¨íT ÷¯¸Œ”¢šê|£N.ÅÛ›¢+ t"ɉËWI£¦š¼YËÉ!ÎýÃWgbªö €84ëé …yØîücü&²²†‘á!Açn$ß5ô.•#íqÈzW‰wå~G©‡M7êXºe·×U¥Mч\©ëýJæåÒ4¸µ5x\âÄ¿ß3{L¼Þ¾|¦iÎvø1ÏðŽ:ãýn §xO wS‘ëéÇQW-η9IÖIŠ4n`œF2@$~_7n™Ïj‡Rd{hÝ pµÊ’dÈÜ1ÐàçzvÇJÊ6Q_3Wk“[ÈæÔÝ–ÉÇ$lÈ@,yÏ ãëŠÉñΤÚo†´Ë¦Mî—°)lãzíÝŽŸìøV¶WµÈw³hÎñE”Z‡„'XQª¬±8”ƒÇÔgó¤ð¾cqá$¹»Óí'ºk¢’I$JH!õ#¦I©”¬ìmËtÛ_ÕÏMŠO(ªÉµ¿„àŽOjÛš%¸ðæ®å]&‚Äzq·9÷äã·ZÊ1»I Ù]œÖŸ¤[\ü:²¶VÛ{«ßA [Ê]Ü{NO¥yõ̃ŧhݬ¬‰C(VkKHS©Æ7†>@åŠñ’iâÜ(Ó[¶}— F±ñS~ì#¯çù"[ûKÃà»ÿ<…otk¶¹0Ã&b¹‰€Vv¹N0˜ÝŽv ®ËP½Óuo4û©lîâ?»š ºþ#üó_­ðÄ¡<¯ØJ?”_Ÿ¯ßo‘ùïSqÎ]x·ËUFq~Mšzt:릷ñ†§×-`ŽÓS´Ûý©mmIŽÕ¸E(Ý…ue+Ãm_AÐîeñ…ׅ줜Çw%½æ•{pÈ\!xHŠVÂó) ʼn†F'šüË3Ágæ³£…ê½?àl~бrÎ8Vž"zΓåoðüoq7Ö.5ïx?Q¸‹ì󦎖n˜&‘ðÆæÜØì¯Lƒ\Ûákkf·ž&[EîÀ(áŽ3øóg9YôGËEòPùþ‡ ¬hâëNÄ‚é"–mkö7•~Ó/›Ïæ¢gs"y@3c dŒ]AûûÇüã¯Ù¯EƒWø…­Gã++ôk­>m> Rå„!¸Ic³*7##n]p@G3*~Ñ'Õ_ ¢Ü.»žˆü wÝj¿5;™ÐmŠÓ±µD…ÄaÚØ‚I»OÝÛÅsÿ¾"øSÄŸu ~âï^žx¤$„ð‰eY7‰#U Ã&8lä Ž*)ÅÅ´)FV2¾-µ´^kxü¹ßÃò½Ã—Ío?Q\ðõ ±ŒüÜñ‘´횘ÍÜP…ÞY¥]¤dóö¾Ø>¾•ÃQ~óúìh¾Užæö ˜¢ˆ;Cq—UÎgˆŒœ°ëR§ž5{opñ‘>¢‹ç“!lg¸íÓ=.i;yF=OE¶Õ ÿ„fæò‹º¡‚8Éýë"@HSÆ9އֵ,µŠÕcŽÞk}ãçUŒã¦Ey-(Zqzës½>{ÅíÐ äÚ6ŒU~Ó,Œ¿ëTd…lžþƒ©ô4ËY Õc:Ä˧³ ¬í…Âo®ÐyãëÎQmïÔ¶·/$—¨û$Ó\ÛHÄÅ/Ë“…8÷;q;{W€~Ñß,<ð¢óúd°\ëzÄ2Z³„ !·ã׎É%‘Ä™CÄwkq¨Õ1iY ‰@ AMÙ>‡9ëõ®bÚØÚ×$ý¤;4‘Œ’¹ t#¿\sÇJ²ƒRÖàÓE]KV°Ñà7÷  “%NÈÔ ÇAÀ,KPÌʧʹ«­cž3KÍJÄizsÜÓàõЫ ¡ŽxW*9 nùß(Ò¤½În¿ÕÈŒZ•ŽÆIo῎¾7ŠÞ ¿gÓ­ŒJ2¤3G$së!üÏ­[ñ'Ž4ȾO£´Ir%Ý˳ ,FNÅFå‰P>qÂïS’v©Ó–R·ËòAÌ–ÿÖ¦?‚~¾¿­ÍÅ»éžP VávÉsœÎzã#§Ó®?IYi¶–vÖФÅUU ÿÖåb¥wdÏB„lŽ[ÃQ´VªØÜ5;“øœÐÖä¬S$2zŸc^==e&zZ"ìsîº89ÁÇáX·RïÔ ~œcÚ²¨åÉn·*6æ¹k~ëUPqÑÏçY7½ÁÈ8'Ó ÿëÒ[.Ö·gÈ¿|;ö_C­A÷ñ+r@™1ÓŒ \åZ¼©çž•÷)óá£å§Ý¡ò¸¨òW’.iàAAÉÈ®ªáâZÜc§zuªD)/qœL£È1üF»=/¥Œ àþÕ¦!þèŠÄ; ùtÏÛ™¯×O…À$FI$9ÆÜp¿‡â+é-,ì ËÖ¼ZúÂ=j:JE­]'$|ƒç`qóÅqâôÞ] k6á®æ^EêÇ8ÇLçŒÖ¸wzzôdý¢8á⟈HÚ\r½ì÷ÖŸjŠE²¡fNB‘º}°k"{ëïŨ®µ jºø“R@æµ¾œC/Ì‚RÓSØâØ¡õìÃÃÚfXeýåø;ŸIŸÕø{YuJ?~Ÿûq«¦j’Ëá­?[¶E›VÐño})Ûufß*Ç,¸fò@ØÐ¨êk”ñ™¯n²g—KºAqa$œ³DÄà1À”†FÀÆälq_¡åÍ`óìF¥Eνzþoî>S2ÿláÌ./íSn“ôÞ?$†øQ‡MñUµÅÒ»éîL7©Rí‚’ÝÆí¤í'£`ö¯Jð*j:7ÆíÙÉs«Á$¢qrR$º·Üw>  “8àHH÷ñ¸¾ŠUðõ—[Çòÿ6{<#V3ËqØikîó¥éÖÇ1â™¯æø‘~º¾—&«¾¥%ÄÖRJ%òVC$ª•yx=ÅnÅw­ßiq ;íN81Ǻù#@Tí Ý2?Jøf­;ù~¬æÞ‚^¡{ì>.ž %ÖªÐp5Xöãþúy£ø®Ù#I©JÒ°Ù‹Øgéë‰?Žh™jŠRÉâƒWÛ¡kHÏO}ÜV.¥ªëíjmîµVKrÀ´RiªÊ±‘“Ϲ÷ª\¯±Ù§ðãľ¯ñÇÃú2ë—Q[Åá¿Ñ”Ž8åœÂNÛp }S_nËc-Æ©5Öõ­ÙæD æ|î˜9è?{œú}ë‹eV+úêtÑmÁ—l⸗I²XGÚ#’iYî%B<°dÞB˨n9 ö*e²¹·‚ã쉺û>ùrì°–-ÈÆÐT¨ã*zqQ¤™µ¤Ž†ÃÅQ%ÛiÆG’K/Úf8,TCçƒt#åÍvo>¡7Ù#X#’Ý¥!¤Kd°äò®oaÏÖ¼éòÃ}N¸Ýí¡—y¤Y\]XÌf•îPâ6k¹‘bÜs•E`›¹#qŒœ[±ÚئœÚv¦cÔ$$˜äº´®Xdœ‚3žÝêÊØs¦¤®s–ºç‡©yk:sÝé†ým¦uªçæÇ!@Á$0 sÈ8ü´øÙñüpÕõe‘†ž$ò¬¢a.áÝÌžY‚»™ˆ5êeÑÖWZ¯¿úÿ3ÍÇIYXå<¡>§â»’=ÐD~@GÞlÿOçŠû{ÁúizÝÙ ‹ €2;ç]™9TQ3îJw; bòGð'ŠnH­žËÄ0GÜ6ʼn°Ã€X‚žf €@­m,Ÿö¬ýžÒÆ+Ÿ³Gáßµ¢\0ÀŽÞReöã'ËÚæ=l¡hÒiZ\ÍÞUÖ¬ú¯Dð^µûVÏâßL³YèãËÑ ‡xB´î£¡ Ûþò–þí},BYb.ã‘Ú±½Ûfº"ʦØÕXãŽæ§„•8þ´Ò¶Âlå>&I·öhø‡ÿ2¾¢=3›Y|íðöýæýœ~Én@–Íd(Ü»XŒúëöö??ÑšÑþ!ì^ëoû9øŒøY —\·YÞ;€Ì¬v£0À,P¼¸Œ‚2)ß üy¡xÖûÄp/ü%7»§¿má¼–“£\¨£jåS‚À±i´Áî¸õ¹Ñ?Šçªo\pz/Qäų¶7yÇÖŽ¢GÈ~m~ø‡KVU:ö§o…8 ‹É¿ÇùW/àgÏÄ¿ ü7MùG§™yU_J×ó˜éß’Þ†÷‹t8ŸÒqÿ µy¯aAûÙÛ9d­ÉÈ9[¹éôíYF÷û¿R¥~B…„·¶ʳÇiclGÚnåÉòÆÜ¶Å< àÂçqGRÔ’{øíâ]º\L<»n@|`üÜüÄœóïõ5ßI{ëÏsŽ£m;ì¬ÅÝ‚…>YÚȸÀ ‚3ŒŒçŸ^ý8à¼g¯Ckáca Íj×âI¢“ +‹ÎLŒ2Ê>rp¿6²MMGÓúüLâýÖýN^ú¦µðν®Ïmi§_jF;{=壱ͶFfå¤R‹';s´VÅŽ¹ö‰:jÐËyòÆ×öƒëòœƒ‘ ‚¤’çL¨žgñ> ¯?h¿‰6ÖèYÿ±blÐ"Ú9bO úúdàT ü§9¾Õ\Gk;Çkˆ@à.\©'äÇ ÄâgÉCN©~EЊ•M­O¥v-´VqÄ»c¯qÁÇõ¦ÈØ´˜c‚˜äô¯£æ¦½J*Ò9M,iw’ ¹ÔeÉ­¼ÿk28èG5æÅ»½NÙ-5»+\oÈ;yõ¬Í@tx œsj¹ü.äGI"X‹I`¨¿xpxã½eÜ:­´èÇq§ ¤JÚžñ©^O…H9hï‘ÿñ×Ö¼I| “ÛGp5-»´Û{žOÌ|ÍÙQÏm½ÚWÑàj:x}õ’<ê>µâ¸ó|jê"‹©/#óY’é‡Ü¸¸ ¶éÎr‘ççíÉü¨§Åyo×jMýïC<£Oû p=8ëŽNj¬ßº¿á¿®¿vÄÝ'wý]^ÆïU³»Ó º7—¦ÿgÜ+k– L÷©‰AÁçÓŒsw÷SO[Ôµ+‹s¨ë;k{¤œÇ`å™1±ÉäöçÙ¨¤ãï+uü,L99ï“ïviè’\éSýžº¸Œ+Íå€0zóߊèí­„H`½p³¡ÃyM¹ºñ‘Ûñ¢:SG mkH°ñjB'ûMJß/šWpN¿(^KqÜõ¨¦’X,»…»lím¹}>¾µÏQû¶B‚¼µ3ÛÉžÒ!M³ù;<¶ƒn Æ>^üíüM7ÃÉ,švž·DG3CÈe%ˆ' Ô}UAè‡+Þæ•í£ ‰æIfïÎÕRøÉxã¿·jà°wvókCͱۭzyŠãOøÏ¢}‚æD»¼·±™æå™î­¢yI>æWü aÆ1OJ}¥o½?ò=^Óˆ¦ö•)~qÿ3Câ¨nu6$“ì‚h‚rÛ ¶{y@ãý®Øçº°ð~uá«3s 34*ìT€C7'·®kó97 |‘vN…¿¼Ä“áÖ B/¯ã c 8P§ Y’ü:´iGªß"ã<Ê:ÿß5.WZZÍ•.¾'Ù÷&±tøåäzö®#Xð ÖÔo›V¹—ì–ï.Âx;A8õ­#«±Z¡û1èÚx3Äž(ÕíßP»¹Ô¤6ó$rÄʊdžFÞŽ³0Ú0s#8Ú~£“F’ãKK]NB4÷¹[x-4“¹\€Ä‚À­žv¯9!p«ÅˆKÚ6µgMû5sRÖmôß O¨jLée¦H&66,¢âIE€2ï´Rm8;OCŒUS˜üRÖ4·˜¾ŸB-G–בIÛ“’YÉç“€*yS·õý\¶îÏðç¼ ÞϤ?…¯u´…#ó/Þ Y|×1ò ;†K2üØ”•Ã=CÅ:N­iŸ†|¬èWFåekûÑoämÀª˜äf݇•޵Ï9a”<ìkW›sŒM3RÕ."¼}Bsilw¥¬ƒxs´…PNNN0}ñÅ\m^ÚÓKº¼Õ.É¢V=Ûlòöç’݇S×§^⸒’Q”w;NN,øÅ>.ðæ/Ž­¼ us¯j¾"gû~©4j±À—tŒ…Ë œnÈ#æKÝìóà’K¼œËµ9O¨ëþõ4Û‹Õj÷òÓþàWŒ^‘z/ÄúOáO‡„ž´»š'të^ñu$m|Ö1º;+[Œrªo­×sŸéÞ¸Sæ¯~ÏõFíòÑ·‘ÎøÇÄ[¯xDí~ Ô¼k,‘F9¤d Éé÷²x'Xœ öÿ†ñ‰¼}ðÓRÕXøkEÐ,e±’Úr¯zÈÆP F!‡‚®A­Û\y/òUŸ3îÿV}áj»ÏçJÝßÌGœ ôâ–¬dŒßx¹Á©ÑÕFãÐ`ÓžÔ¹óŸÆûÏ_ø?ÆÚ\7pE¡AáÛ›¡šÝ"BŒî&@"©#åV(ŠðÏxÇMÒeßÚ\\§Ì.VÂÞ ÒO;ý¡ÃD¶Ý£€9$(ù˜f+S—³\Ý_èË£4äíÐúƒà†™âàÚøªI&Ôïµ.‡žÈÒ*âA¸'ȧ1çbªÕ$ ×´—ÛÀüzWšíwmާr±`̃îçåÎqžkË|GãË-?âW†ü+Ä1ÝêW óïrˆ$1ƽÎÜnŠGYm[]®4µGÏ^¹ð—üb³-Ÿ²øÿRŒŒcþZç§ãX ˜Eñ›ÄЂwK£Y0`²\Ž¿ð?ÖŠ¿Ä¹ýv:¿¶ýýðþM^sá›èl¾è¾žiîn.–UTÜD&æI œp $ˆK7 YWï2­*kß×p“÷,]ÖõHš¶Ó!ìèr1Æs#9<ç9?—Zâ%yẲº1o¸iƒÎæNFIÀȘÝì·$¢r/y4R¼Öm—P’Ñ7NÊK÷ŒôxØÔÿÂ8ñ“·²«ÃÅáI§ñ¶³ªÜ5åÜË(Š Åh£ V0=º³ncŒ³1äÚŸ/¼÷×õä+&ì¶*|XðÞ©qàÏ x‚ÖkY-4Ù.Ý ”¸2À-ã›fUNIki@÷•zãÆ>Ý\?Çm>Òòæk–µK‘1p˜ŽUñ’@ä†<(@ù»#$ðÖëfb“U©è¾)¶Y¿kψ’ \è¤'}¹‚ÙÆ·üÌ<9§JT+InÎpr a?5Á_ì÷]‘ׇþ-L¸”,P’C0Œ/¸ù”Òy…üýÇ?{Œ}k真"^G¬’Láô‰ ëºÂ‰zÖ(Ûù“ZzÍ­–¡ºëHo¡, ŠâèO®„—#¼|¿#mþdºt~TÂIÂBsÐôÛ•i.¤Ú:/ÿZœÝÓ±1V’%1Fè ‚ JçæmÊýò*©»|‰š<»â¢y¿µRÇ”h™xïæ(þ¦¼¿N³ŽÞÏC’ëË1l²ÝÔð2ztçŠúWõ“ü—·ù~¬ä푌¤Ü®ö8+}âñ4šL^&»·˜GŠÆæè)œ’˜Ús¼.+›­OÁ:„úµÄ—º…Ž£ PO3—uGŽmë¸òFQ§>¦»yjBêZ¯øRt¥¬š·âìtz¸me°¸1êBdÞU¦ àž+b }Zî êÒD"L¬°ŠBÇ<þ?•Ò*çWøÒõ4%“É<“"1RU“ Ǿ܃ÓîŸÂ©+ùÑÄÐ<2»àíàtëýO^•…wu©TÕ–†U¼7Muw.¦«oxÍå…Ir6sБœö?Noé‰nš•ÒM7š‚Ü™#Pw0èHlýï”ã¦3U ia½S¹¼#ÏÚÄ26Æ@88Æ|¯&øƒ Eà›|œ^¨Œƒü;?®?/z胼™„ÒQÔóÏ^ ?ÇÚ]Þí°Íû™OAéüˆ5ôf™生âeäòj*l]-š:‚ UEcÐwoÓšóŸÍk§^jþmÚıB²“ËeÙÉVÁ– 9Sò–Àî3¦—6£–Â["¥×….4Ý1bûtÏ¥Z-Φî#ï‰z<Œ`œàô¬Ý6ûí>Ötì{7O+í¢–rfxwÛÎÝ9Æ=+ºöxÊ2nÎê϶¨÷0ªâ2¬e85ȕ亻]é÷Õ»xzöÀBc¹Òuç/p&¶n§–¬ÎýÏØ`u­›MNAàÄY&—O×t+‘%ŒË'”þS?Ì€äé)FP£8’ROÊ+ô,Ê5±™uJU-ÍÌšÑ;y=n¿ÈøÜ£G™Ò¯kÂö’òztßOø&f·cImªYB"ÓµÏH­¶Þ@yIbv1–$£!<µu𥯡kñš?>öýȶ™"ù‡ú )0Çl@Mx9þ3ëy6IÝÉÝú¥gøŸkÃY`3¼l$­ìá-û]5ø#[ÇzdºO‹õ+)oßSt¿´u*y[ì)¹ˆÁ$ž2qêkØtÒWC±Ú>ΟÈWÅÉóJþGž•¨/_ÐÒVÜ:f³ou2ÖkÍBâ;[hÆKHØÏ^©ã€95)]£ìy†«ñ›G´¸1ivj I\B=ŠŒAç®+̵ωú¶£áÍR×ìÖ°Es‹rFÛ€n%ˆ<{WL`“9å4Ö‡Ô³ì^‘û0隆Ue¾Õg7Ò܉†UûÙR#Œ<8í^‹­ø¨Áesia0šúÎþ8æ0‘aiÄløùXdF$‡nx(ä`õóeë7/ë[ÐkÙ%äp:Ìö²ø‡Ä’ë—­t5ØÙUf á!Ê€ÌÙÚ68 Ä0ù9éZ¾’]GãÆ´ÂÞH-l%oÝ þc•l³6pd¼g¶MnÒPo¯ü1NIEi·v©£Ü¤°…ŠA•UŒÉö9$LeÁâ›8õÃjìÏ"F$šªþJ¶à…¶±ÆJ¿ìŸløÞÍÎzüÊ1ÕœÄOŒn¦=…†¨ëz‰Ãc¶’;e#kîÑ‚~î~éøëÄþ*ñOŒ5)_½d¶ówG¦ÛîKx°[i98 F['“Í{iF¨ÝßO/ø?‘É*²qtÖÎ},\mP»Gð¨Ö´Þ¼ŸÂú†ªb6«oi$¾a.KmÇpqÞ®SQÔÇ“™X÷} ¦‘ðÆÄZÕÚÄdóÙ7ˆ÷ÅF8댑ù×”Áªë7,fº|iÉ«Ïgiv©ŽÕ‹·«ãØ5$ìKj-\àþ0)³Õ>/Abwyß®o5V!¸Ë$vP@¹ôÙe)èzœó?ÙÛáÝ·‹>øĺܒÚiW—RAgØ|øïeefprPdÚ É0l ®-µI[{þ†xeï}ÇÝ«¶bˆ~M£åwéúR¼˜~ Ï^¼gùׄ÷=%sÈ>4xÚëÀ³æ±â{Xž³•I#‰6¾TnŠwËí]̾fÒ4¹¼QûCþÎÞ=•ãƒS“ÂöÍy–,Y&w@ýëc,Obx­mËýA_™|‰¾ÈOÅbB[þ.%û1Œ•ÿkÃ2ÿhëð篆ÏÒã×ñ¬j¯Þ cò6|M«]kðîwÀ f•É n‡*$b§;r*ð\©ÁY†Í¶…cáÏêfio%µo´Ü•ÌŽb¡FNqÉîI:éc'©æH%y$r¡T1uø¿L~^•å¾!ñ,ל:f‹(‚D•ÍÌÇçVÆàɈÆÖÎèÊ’ut¨©É'²Få_2/&Œ¶úµó“ik§ßÉÄ׳d´‹¼“I!Àfù±¸ô€¯@‡R°Ö|7anlÄÓ¤o+mÆÒ¡˜ŒñʃÛ9ç¦R»NE­Žsâήaý˜/­O¸ºíûDÁJ¥´o1@åˆÚİ۰dáù#?0ø*ïìÿïµ›{in‚ݺ,q¨9ó§hÔeŽÕ'wRËÓøðJz4¢ÝŽw/]@Ö'h< 6¶7J¶V+%ä‘4 2Fˆ¾c,m(lñò’§¯Ý=x˜FXk6¬’þ¶*„­Véw=4ê6zTI…5uBZI]¦µ‘äaŒ“ûòIàì«kײZÊG…µ_™s‚öýs>GÒ¾eÆ-k5÷?ò=®i'¤_áþg7á[Ç»»Õ¯) 2Ì Ždá. ÁŽ t·ry“€>g8#ž"<µd—eù#ZM¸&üÿ6]ƒà±Îß/¯Nê"c‚rëÏæMrÎOÙI¯ëcXÇßH¬’‡µv,W’}x¯=‹Ä²Z_.‘¯Ú.Ÿ¬³"ÂP“Ø2(- ã9(~`qÍk„‚©–ÿÕÿÏäɯ.F»ŸØIð[ZSdyÏû2/øWi3Í'„<´"Êñ9ãH€!^öòá­æÿô–xø…z÷ò_úR,^è_Oky.|ØÐ`ù}¿*­,qÄ'÷„p£­k''¡)(êbÜZ¤³‡Ï—ÏΫÉ:·Aô«°#2$1FJÄj8ü}ʺ[ºIé{Í=Ž‘&<Û£¸ãåLðz­º5½¾åÆÒqÓù9b;Ý›0« HI hAëêjÔ|Ú q‘ׯ¥=l‡fÖ§‘[ê•®§=Ü:ÃA4­‘'‡j´kµ ® © \ì“[ÚØI¦Z4×yþÑss,PfQµU<½ÎN3¸p6óß7+ntBÎVK·àmiv£-œ7L¢Û{|¦@‡®3Éæ»û6kë_&m’ËmW3 £Üàcßÿ®ü*ý6¯ñeêÌíWLiÛ»ã$*ÜÉàÈõŸJ©¦éÿ`„$3¹bÄ|Ë»úçŽõÁZwgE5ÔÄŸk‘<³1;oR ™==ªå„›‰¡ŠhÑÂ}Ârr®ßÖ·…ÒDI½S6­×Ï)e]øåbª ÷ìx¯ø« NÒ¢•y]—'°UÇþ…]ìäíýhc5îž;¿~žê?Ö!'áÔŸJú‡Â:‚êµ»3iï`;àãêåSUh޶Ý$fGî}ñW™|AVþÈ×e†o*9o$/#žØ/Ÿò+*k§¡¤Ì_»Z~ÎÖ¦7)$wpÈ®nNG>*+ëè§Õ¬üCi Km©F.¼…Y‰C´B(ä¦z×›£v±õ<)R 0íR-[¿_Êæ^¹¢%¯Ùu]9äŸC»­‹Í óC!|ë×¶å*ØÀÂÔ¼÷ñ^Ÿ¨;£Ê±ÄÊœ¡Rª«»å çå9ÎO¯5ú!G–SÄ)^Si|Þz]_ñ?:9à1Óý¡ø¥ª5·•T†çJÐ5ƒ3iæëÃW‰§¢BȬ"¸Bp’ûè< áCó…WÂ6²Üjz¶¥$ÓD±ÙË•Sp’IÑ“Ëcž7GçùØ~µùî.¥XN86î©ÊVùÛðÐý¯ NŠÊëævKÛÓŠÓù•ãÙZ÷Zw¹Ð|D´Ô-öÆëöÖd‰Ýnm5ä´œ9b?ãÖzáGœÊF=XÖ¼²4_oÐÅÉO•®çñnõã¹øà’ÆÍq©i"ÞË’¶öšl‘ƒÐË|Ãþêk©ý’‚Eûh¬~óßßéT•¥û´üÿ@Ãé'ò>“fÃüÝ?x¿Æ‰kàχºÆ›r°KmÅýø*ßcÎD€ä‡ 6P#Ú‘MâÅsK”ôöDÿmÿ´ÿgÛ›)Ç›ö€ŠáÏÞ;XôïëÏ¥yg…l¼›¿†ëÉö +(TªìÆ~4Ó¥oëam3…ølËÿ ÏÆùIûÞ?Ô x|!\Þš“ë~3{ï žèÚ}’ãPn¶‚6+&,Çå;TŽ1ʃÉR7’—Eÿq••—S×tÝ&ÏCÒZ PÓI,žeÍ̤.$ÀRî@äá@`‹U›ÔŽDN;áI¨{‡Cæ­oÄ ý’¶öKk-·ï.eȵYÀÛÇïXÚ‡*I#òzN•q«jÓ[¤VÁwï‘Ô*¨f8äãåëÀUQò€ºÊœêÿ¯ëÔã·3F/®F™ð²êK[›_»Är±Úíº7˜W?:æ2F8œ€»‡OðæêKŸÙïÃ7S;µÊÍs+Éž¬nîàAç ü1ÅE/aQ»¹ÿä¶¹ýµ$–DVÊ4*ÎC1 NÑÔü¡‰ô'f¾7ðŒb/ŠzH¹/bò”åq›˜ÁÀeqLzwMÓo£lÅ8ó.êÇÒþ-°¶»ý¥ôȧŒ?›áXåF ÿ-çxb>©Ú¹Ý6Ê ÍÏO›Î‰âºxṈíx ¬‹º7bñ|ÜT¹(;v_¯C£¹ª¥êz.™}y6ˆm5,6¡a+[Í* U›ä²(í•a‘ÙƒÓ5vI|½*ø© ¬$†Gkåånd–‰ÿÃþGº¶w<ÿÚݖ«âmZ{íæƒì°9û;©EbwCÔ•Éú×["´×щÜÊí]ØÔ£Š”}?$sáÝðé¿?ÌÚ†BD‡v8Ífjé%Ð!ÕP ãžÿýjá&©¶þã¦:(¬"(¾VÝ“ÔñÓ5Íkð[]Ø(¹Œ9Šá'‰ð2ŽŒ °ÏOO¡>´ðúÍ/0«ªw94-ð³[†IU´”¢»`œg úãô¯ ±¸[_†Þºò‚´Bæ=ñòò)lcÛñ8ÏÖ¾Ÿ 6}_èÏ»½m:/Õ–ÚØšÈÄ4e#䄆;{eº¼ã'èk&k Ò¼vÑïoãÚN3þÑêÏÑÉi[¯õý#>~d™¡¦éÓÝZ¤Ò/•Ôsíǰ®ªÎÊ8&)xÈÉã$ð+HÇ•¥vt°ÃÇûÆÂCþ}+zÖÖ©´ü€ep;gšL}M…D!äw$ÔC Š Ž9õÉ®dÝî_CÄî.|_êïo§Ù^ØXM,Rܦ+„;Y‚”‚xã©Åf^L·úv›ª$g’d‘. V&2èÃ÷Š¿ÂaòŽ2¤Ž]FõMHí‡+jQ+¶_Ðï4ˆgE{ÇóCŸ68ByéÉíí]œóÛÇ™%K{wã÷q©cߨ㯽t­gQ79z³$ÃŬqêSÈUÛr1›&0zzý_K›Kh˜4žZ ’£°?Ïzòê^S; ’‰§‰>ÐÈå',ñLA BHëè¥r´wR4q‘6©a“ÃhŽß§Ö» š·¡ƒiÜÝÒk+u#Ë ¸:ÈÉÇòþb¼#âì…SBTÏúËÅXþ•tW¾ÌªéÈ-šg½QCqׯ¾‰ðs\ÚønÊÊ 9Lj¤7ÈÓÉ?_CZVµˆ£«=>)¥]<¢ØÜ«Æ@|¡Ç^Õæ~=‘eÓµ ƒqf…Ÿ=Õ—ëÎ{ñzæ¦×3·õ©ÑSHœ·.ü)è혫0ž%%åÏNÄzWRÞKo†:> Ñ5¿‡om-÷ÜpÆûÊE20ˆ%«˜¡‰À½±æ‚t,w†ÄªËì½|ÖÍ|ÑÏAªxzööÁ*J^Y\ x¦‘¹O®CFrzŵ]:߯ßk½ÓÆ£·-ÞvD?»\gnËÀÁ¯_ g}æKÍlÿô<ë/Ãf¸ÈU§§7,\—TÚWó·4uõ] ËÝWS×dÓôÕð1MÓm">\EÛ•E,ÌqóÎØ“]]˜‡Kñ/‡t[K”¹Ym¥¸¹–7R²L~V]À|Ê› /$]”âJáU*W¯*óÝßïðÌëÙe™T2ê;_¯X§{ù{Öõ³:?Œw+ÿ S슫%Èi^dc;‰õ€ü½+JßÇZd"/´XKmglk´º“Ž^£§á[´›OÈüïj:w’<ãâ~¿á]sA·š;iç¿XñÔ3mXø8WSœüÄq€Úì~{YQAYñÓÒ» ›2£÷†+òÈÉ«ÑÆÒ¤1Ž ’…RGáZ5©Š>íÔ-¡ u[+}7û ËK{X­m’iKÆ®dVÉf œ"å»àŽ÷¼N¢Ïþ&µaS¨Ûª*Œ€1Àãø«Í‡ï7=‰¥NMGoêÆ†¢ªúˆ")¹n5ÛxÈÛÜ\çæ5³¢™#ø…âÕk«ëb‹ÏóuÀäŒõϹ©–´Ú]„´’lÙñV“i©x~Õ®­Yà3«ä4©»ªàéóàHé\<ž´Òu }6ÇOkÁ°y—-oå¿> tÆOµyÊ¿$9VŽìëöNRÕ›2|7múΚµÛ¸>bH—¯“¸d»÷üOBèÅΪßÏ ÝÍíáùfûuËÍÔ¡˜žÝO˜­cSÚ|D8ò3–ÎY>/¾«4²\“§$CåHi"lóž2Kq×&±5ôšo†—òLb.–ÎŒ"m±’c<Ü’úâ»^ÿqÎõEÎÿÆ1xsÁ¾’{-NÞâþMNu,‹oopcF\õ$ª•#¡ NX³¼á=?Áž ·ÑtØü¸1sÝÎz“Üõ¬ç+´»¥×_ò±ÙÙ0fÈþïO¶~|Ÿ³—?ØV½¬Jk¢:!ȹu¯]?Æý+LËÃd—>JyjHšVŸ ÝqÁ8ãÕ”WñSJOÞßøzò÷ívr‹XÍ‹F’ÌbÊØã{$g©æ. vR,îûexØëþ4Éq½ÉF¼ŠÖíe1œ Í¶hGûÂ&ˆ7¸>õÌÙÍc7í}u‹osmâY­.B©W0éîúá5ü%5iËÐ!ðÄóÿŒK©üKø¬Ìâ8ì|-¼€º[„2Ì1ëåÙ ç¦ãŒž¦~Ë Åûxw#®®ÏOúy’²Ä¯Ý[Ïô4 ýóßšî7ûDjêòÄ>u;N3ƒŽœsùWÄþ 7¾3øeñÂzþ™­µˆÒÂä2³Æ#'ÏyeägfbØ,kʤ·¿‘èÉ\úCdzãáFžÈIF¹c ‚¤Wœi"8|KáÅBJ'»_î‚i˜'ñ¨Šnmó;xJÇZñÅ/ŒvV2®¦7/ãžþ(ÓÌGs'ÉÈ%™wn¾PX`¡G¿éÖ:Fžml-¢´€Û"@ª=xêg£Iy l>áón ?.x¯7ñ߈ŸKð}7›­\A”M›„1±Ød˜cø¶Œå™NT©y$7t›¬¿á?³Ñ¯!e±ŽÑ®£’YK<ÒïHÙä'—vÊsÐF¸—÷^/°Œ'™þ‹3¡Z%îÚëþNÓ““¹…­±çÌËðŽÞk—ufÖn"X†9íƒ)À6 yi9ÉÊ0óðlZŒß³5­®p]EæGÍ‘±gÞ@bYrA;Ç£þaדÿ3'¬ÿ¯#ç}N_jOw}¬_]<{ÈÈ­¸ò  *åXðÉã­;E]VÇÇÞ2ÝÜ*}¶#('%>un§¿Oƽ.m,Ž(&æ›î}-â ”ö°ð*KOá¡ qÁ¸oýVF€«'Ê _³j×Dá@ë$ÃíÖ¼,oð_¢ýOS üUêξòËQšÙç:õÅ´®Åmí¡‰ÕU·«3c$“¸d“€8ºV£<Ò_i×È‹¨ÛmùjBJ¬2².yÁÁÉÁV8üôyjCEk[ôü}<Ïe§zœW†ì¾ËâJ#Xåšä†*Ü ±SÇûÇùõ&½&Ü¡—tض>àëZK½ä…ËGæÿ66ÎvBC:ºÿ9 àp}>ŸJ~£r±Ù«*ãiÏqÁÿ&–#^d˜RVåf¹i§|žǶvÿõ…c_]½¿…ndûKZ¿–Vâh”¬ev¿#œH#ÐsK üDú½ÆžÇ¬Y-çÃ=^ö˜îÙ´ùZ9"`T¯–Ë·+ׂ{õ=ëÀ4øëáΖK°‚-R{fˆ><Ö’-ËôäŸö}.¸FÏVšü™à×WŸËõDºW‡îd»g-#9Úq»úšôK}6ÒÞÁÄ1…# z×]ӑΓH}iÀ²“–?w¶Oÿªµ£Di•Ný¸'¨O–Tògã?þ£Z¯\ó&½ù21ˆX²›¤ž#ÃJc9Àä…Èüþ5›ª™,â[­?RyåVCÀP’;à“Ò°”6¦‰ÊÇ«h³ËuðîÂÚêä ÿ,Ë TåC1Û‘Ðtý3V­%·ŽîKwv[ÃÂ60ËtÁ#p9÷úšÖÚéЋ驱k#=¤lb8ÎUóÇ¿áéêkÅ~*Àÿñ$i9wyÿ‹9»Áöôü+*ZM•U{·9O è¢mE$<±aŒ¯ÿ­_Hhºq¶°X—pã§_Ó­MYnU(¥eIK¡îáä[ÉžõÓ¼º„8ó…}²1\Øÿ]M*ü×Õ¢øWfÑmaûb2kövÏZúIðü}6/êeÒ<‘h#¶òÎèvì$û²8ïžkÚ¨ìãèpQÕI$[ëWáéô–³†ûp;¹w‰í°®¬2»@]®G` ÍM¡OçŠä[«­FÃI*Å$Š4º’Û¶ p[ÆqXNœdÏG Ž­‡qJOG¥º§mS[¤ö;ÄÖ,³VßÃÖÏSÆ7ß^6ë¦$è¬Q©Á }å.ÊH­½!Ý|]àùÛ,˜S¸ôßs2qìAñ®7Ó÷RÐèÄcqêÞÚ´®ío’þ¾ó¦øÂd_Ú"õL`Dvm'9Ü!@ÃõSRI»k|mDKé·yb_1Nz®Á‡ó¬fµWì þé%Ýþ‡ø³PKÍ~Xmíb±Ž3¶H¡@¡œ–ÀãÛð®c`PwüëÒŠqvrhÍDußÏAÖ·­Q¦ñæ‘mmÆ2ÆB†³g9ÏÓœÕ;܈î‘÷WŠH øÁ™Ž×šÜ’[бÉ?Ÿ4íb6½{»y%¿ˆmâ.ÛŒEþ5çÁÙüÿCÔz$ÿ­É¤‹ÍÔ5YBm¼A%°WËíõÅløhͼEÎûK»½BFT%|ÔŒBŸ9Sβ…= Î:Ö.ÅZÍ\ô"æÖÚãQ¶²´žU2žIÁ$ÀÊŒ¨ô žAÏž+hÙi÷Éy,™W,¦Dcµ†ÞÞžÎ+Å—4¤“üB6Šv9ÝjkÍ>X¤Ÿí"ÚÕ·Ímk”ÉT0*qžI‚{pk‹Ö®…þ‰ âéóKæ|² ˆ<¹Ô)U$ìÁ=Hj›„‘š”N6sootÓI4V±-”y(ûR=¥Ð8Ž?CÍ`xªÚÒ?ÞÜÍ,RB°7Ù ¸E•‚SÉÉÁ9çŠõ}æþ㉴‘ô·Â?ÛøÁæmjû^ÏÔ±ë·=p3üëÖLƒÌã“È5 6ïÜÛm ½KT]+LK‚J1ÚòÎå‰>€—áî¥wmáß„ÚJÉ1ü;o$€yä0ç6ƒÇr í]îî¿®¦Vf7‚þÓsûAéšÖ«w5ô×7Ö–þk@îN¹'p^ZIOY@]®·q¿´ÖÉ[•ŽÌ´€ãÌ_Þm_ªÇ?íJõÚ´%ÊñoÌÓø[ûRþÐNÓù2ê?½s÷÷Ïm#(ç¢3´_öÏ«•ŽKk¿ïshÂ!câ{«kèò7I3¶”èüŽÑü¼W,þ91ø#êyßÄ¿ôþŸlwM»SÔî°§;"³ŽÍ3ÿë¬ø+ã[þÇ? ­¥€=Æ·­Kg’–H#/zÈÙuVËüêËNØÒI#ϯI] ¡üOë¹éu=sQ¶ñü>%T–~*–Õ%C¼ËEÞÏ…ÞXî9Ú gjª"ª/ÊÒë:Ü n[«ÕšF© ý—Ö¼›ZRG¤ídÏ_ñÉíÈO1¤†¡Hê@9ÿ>µæZ#nÖíÜ–èÔ©lŒâ7Ï㺳ƒ÷ßÄyÏ‚m?²~!|VæoßÎxÿžž\¿ûSô¯A|ŒzäqùTËãû¿ _ Ž'[ñÃÝÛéZý¦ååu¸ºVR¶ª„†À9÷üƒ#h!ÉÜSËl vÌ[ør[û’$º¸¾¶‰‰Uq`Û‘ïÇ5(7<©íÌì/ÝüÁ¦8(–Ef{q‚IϨïnäGÄ­%„žqk+”óB`¾^ ôàV‘³zù˜4yׯ©ðâÑ@—YQ) säH Ï<èµð²âæãàÝ슦öVÕ[k4§n^?3%™˜ó““—É$峸ö»,?ÌÉ/|à§kK_kv1+<Ã8Ž&`†7”ÀgnT©äô#“\.¡yoÿ „2@|ójþc”B|¶ 3òd§î·dnÚ~Kò8Ö’Ó£=›\›íaà]Ø]#®³Yš÷ñß^–µx£}AÞßpÁ™JcƒŒ|å‡=øí^uj|éú~¬î¡%_×ò=`fm*7CÆCg=±XW–së–ú†Ÿsìq42´¶ÆT‘:€@e9pwq¹¸æ¾J›9òÉm}?3èZrâTÐl.á¹Õ¾Þ#’á®2¯ •W\œHç#©é]sy²¨´ˆ¬cþZp®ÉYÕMu·äŒùZ}/ú•aµŽKˈáhc¹IŠ5r% 6âªç¦yñœš–¦¥ô©”œpØ8#üæ¯+÷#$ß¡—§Â.¯‚3•DRÇMx‡ÆïÍeeiá«66ë,B{½‡†HUëìIvZ×/„\ׯù‹& ýø{â[½7Äsi2L[JÕ£kiacò«°ÚŒ2@$} ÏA½ÌO…ÿh€:Û]óÆæÀâGÓšúz°Qn]/æ|ý)9%Ù”S5¾•æíQpÜ <®qÓ=úfŸnºŠÎMìÂG|íT\*Ç~õ+X³W£ÔÑ‚)%3¨yœ}6ýMoD« U÷•88ìqSkh'ª/K mjÌ,ƒ=z}=ÎkKOp–¥î#É£ìi©WÄž$°ð¿‡d½¼“tŽq~y˜òôr{~YùÖÿâ§Š_Q’[[˜¬¢fùbKt`Õ&¶§MKYÔ©Ë¢;KS³ðSk«âFµfÏ‚ÓícqC&ÀÏ»w»ŒA† ÞxÒïä!¯nìVK§—q$‹¸û•UÉîrzšubâ¥w§üzÔÚrM+koÁþ§¶øxéòézWÚ óãŽQ'Ù•ÙNÊ:‘õãµtÄXÜÁåCdÈS‡j…=1ÇsÐÖ‘I¤xò~ó2ãðîœ÷޳.Þ^V&UOñ2ðn¿äð>)ðD6׫w è ×+´ŽÜû äš–šØ”Õõ)jZmŬvš¶žë$¬Ùbg ˜É`CÎyëO´q.½oqn†ÚÛ¬‡=³øKtkc£':t0+&[#nÖêr:ûòÿ‰“ê:ø}%`ð4º ˜šéRæÒÂÜÈ»¥›hTB@Ï-‘Ç=qÖ´5 "Ò5™ŸQTûJë©uöt“¬b>ˆ2 õÆA¡Çž›Õÿ[§_빡cáýGPžêþïÈÐôù¤kŸ²F7N®À ù Œ¸çQ]™¤Zèð:ÙZ”™" ,„3%†X‘“’Î;w¨’º÷v_~‡c`öÿðŒ[¼¢eÀ!òŽÐxm™œŒ†øÀ¦]ézµõÒO¦Üy°Æ UIã;›9ÀÆW?ò•IQmyÜŠi2yîRe·‚£’bøØn'i?{±óž{Ž+ñjèÚW‡a¾ÕæÓ´ÇyJ™¥—!“äÀ Çœp£µT¥R¤ÓCQ„"Ó8=Bãíž·¹Ðöÿh^A@÷0ùÅOÉ·l[Hg%€ ÄüÃîž3å÷ÚH½ðÕíö¦g¾ÕÅį>¢OÚS‚ ÑWýž1“^¢j:|µ¹újÇbyµVÕu84½óQ¹ÜmàBì#s{ '¹ ¤“Q±»ÓV|ýâ_\ë0¼z]Â]Ggâí:eŽ\¬–®ŽèÈG,|¤ä çšï¾Ûªø§á> àÉ{/„žÝîŽÐ|¸ÕZ(ÎáC¾Üÿ´z“]ÔtŒ¯Øó'.i&¶¿ùž­à¡:ø¿J¸QŠ9¼Áƒ"-­àã®äSž8ÔR^\~ÔšœR.Û(Þ‹hÎüA˜=Žçˆ÷ã>µèÉûëúêq¯ÿ]Íï…Íkÿ ׉ÞȯØ>Û¨¥ºªV{o?9çþ>~Ò~‡Œvãá‘fý¦<í<ƒgo¯ßEª?zí¦ÑÌDÜDëù×,׿3²ž‰­é‚ø§âˆdÓMÍ…ÌY$Œ˜ kÃ+e°ßä‚Ï·“ðãF³Ö¿b¯ƒ“Èîô¯%ì2c Kç$g®T‘ߢºj’õý‡ñõÔú;ÀÈ‘_xœ©]·€™†pyP Ço»þq^Qè—w1Ùyö Ç`?C^7Wò=F´G§êò´Ÿ´–q‰NÒ3ƒåæ¼~ûÅš7„æ–çZœÙÀ÷º¶ÒÌçÉŒaUAf'aàzúQhÿ]†íÌs‹{•ûG|V²»ºŠÞõ(.É•Âóm"rI'søLÖ«â¦t)HÑ N'»–\M’LY? 3d‚~dÆÒ¥+sÝ®‹òDô±—⧇À?ï/´KhmÞÎ8£‚3QAeŒ / <èy׃µ;Íà&£}©Í%Åìþ,·34¼6|ÛF\c€0T€8Úºc Ðsëò3móò—¦j±\NG–– ’…¤9o@$|¿tô¬ùZ7Ö튺¢Ç?+üĸôáOB{p礯r[g›|J¸ûoÂêXÉÞþƒµž ¾L–LóïÆøS_àÜÁþ _DYßvªÅŸÌç"(óÈ$çŸ\þ=:uxm;•ª?CÝ´ëtÿ…g©*ǵå†x¤wåŠvÚIä¨29 Ðn8¾þÒˆx»Rðÿ‡¬Î§<÷AQ£?(U[æ8Î9bBñ¸“ZáZPm˜ÕÒJÇд3§íðöærg’]xÙÔ¼‰pON8Ý×Ò¹Q¯´ßÎchò%ž©4l« ÚÛ˜7¦ÓæN• VÿÃú±¥ÓÌ÷10±‘.aÌ’m*­¸cãÞ–2[Ò}æ8Éù‰<€ùé_) )Õrì} ©h$Š‘È±•›`g*@ôÿõÖ.«¯Ùèº|—÷ò‘Ý,¤ª0qŸÃéWIªØ¥bf¹(6Ì}V½—L’W¸/x |Êûö±QŽ]f¨ñ}†F„–  žsØy÷¯CééÐäÃ6ªº30¼•‰ÁxÍ|]ñ:ýõ‹Úü­·wÛòÎA òÌ/ëK*V¨ÿ®¨YŒŸ)Çù/ ¡‘®Ù‚>=y?çžÿE“u»lãP²óŽ[ý”×ÓÖÖž×æޓ׳ü™×Ü™ôøc(Щ!~¶§þúúñ[ªÃ϶”df.‡æã‚?ϵrÓ·!Û5ïh]¶?¿‘H#v:äŸÒµíyŒ7×­SÕjB'š`¶¬€à·Êp^ò©´ùÔ@Tp€àõ CL¥n‡Í~:ñ+ëþ4¸ž7f²„ùVªOGº½Œúô«ƒ æN¥ÉÉa…\Wt#ʬyÓw‘ôJè7’hCIÿ„¹¥Ó‰ìqÏ ï9Î ðNzZç.®}ZHá†[{[`¶ÐÇ8ÄŠ¨1–˜œ±‰"¹*)F:»ßOÔúrR•’·SÙ4ÖŠ(U‘íÕ0:ýxí[vºíªéâÚS/˜U2 ïL’ ƒŒ¸9­ÕÒ9¼ù]Ýì°À v^N:èíµ;;ˆM|Õ™v20Xc éƒôªµÄßC†“I:v±¼guŒl˺‚Ê2¿ÃÇÒÆ›þ“lÑÜÛLÁ¤ø—<’1ò}8¬¥kšE÷ñ–Ó(à7pvœäcè æ¼Óűùþ'´áöÆÝ¡ÜF?1Ö¸–³má4´8JJ®T2‘É'ö8öî}+½·’A°ï án7ù玿¡ö¢nÚv&¸bÈ0Þ\…‰ànã\×”x¾æÓPÒ/¢µž9vÝÛî#ß×#ð4QO™…E¡Wâ*øVºbmùúsŒË6¯eЯnÄVVp4b}‹ö™šO3Ê^ûx˜žV ãkzÕ¬œ},:¿1á—ºM½¯‹ü[w[‰Óbaq$ä P:`ÆÀ^Å«á=/ÁºuλªØÛêËp’½«\‰%B  $ç£1’:íS^|ùçÌ—™Ýêx›«hןmT $‹»åw§§søó^“á‡[¯¾\þâYí“r€D‰öÆ|ã>ã¨íÖºy_7¼r&¬Gñ /ü.ý[k†ÿ‰Ö9î¹þµé&M?XÔîþÆæ[fHdY7Æ@l®|zõéÉíÊ×¼wJêŠ^oô>hñœqéž<¹¶·,$ª‰NíÑ·;°Ë§Óžz5Òº]½´®þörG=‰RpúºnÉ£Ïi&ÓèKo4š¦·n†1öxÎW ƒÐdþ9É5Ùiú5½ÏÆh7gÊÓî/`{ÉD;ü¸Œ£Ìr£¨TVcížiü/ÐæGÛÉm}¬øƒÍðö˜4+A¨‹»{û…a*È!£VvùPÁÎ9á¬âñ<6——F'xàEÉyQCäónr@éŒU”7öÐÍ<öÄÈÛ[ n2©ç-Ï‘ŽÝ³Î+ »+"â‘ º½Æ öÑêo¶[PÈrÛ¹bAÜ äŽÏ®¶Ÿ6¼÷é§¥üzlioµÜ„l®;.1ÃGóÆEözîuAÉ-Ì=EΛ«[J5û«u›D–qÀì§Œ+'£mãÓ<ã®WŠe·Ö|:±´PCq‚xZ2Ò† Ä‹´£peäW&•‰•¹nyµž©o¥F–/ÂÌ»7º²2“IÃ``œt…w}y&“âa5¤–ɹŠ1Ø-ëÈõ/Ãã]øBÍ,ž»BÌßìÇÈö#žßλh¤£/C̦î£ëþg¡xòÓþ]T’) Iâ;Ûˆвˆ5À€y¾9çŠÎ¶ÔÖïöÌñ•¼l[ì~DSžQÖÒ/=0âs×¼uè;ó¯ë±šøõÜïþL'øâ»¤&8çÔµ=°,G-¬?øÿ”fïþ·=ó\áŠæËââϰÇmuâ¹ZæÜ‚ežGšÒ8JG‘ f$ccœŽgüI#®OŸ>!êZÔß´¬ô;­B-1£š6°Õ59ßN´º2Þâwc{å¶à ½þe¯bø'r’~Å^m«‘}8#‚IóË’NÝ«’¤›Šù/ÁT£fÙî dyõf‰rbb t9qŸ¯o¼´Yî¾óH(û’ çýqÛþƼí›ù‚|WñÒx7özð´ï¥Ü_]]yKHÉ„'ïÈÔ9 *“¹¾m íb<'Âß u߈ß4/x¬;h—V‚i,î[‚Ä•XÑ7# y˜8w!÷¶Ý:|ËVÿ¯ëþ JVìuú×ÙÇí»ñ_M‘KÃ5¾‹µA=~Åúƒ·z;Õo øê=cãf»á(,Å­¶•m)g¿$‰"GÐp«ó>3ÉÆxäP©©Iù%ù nÉy‘ümgýœµÛs'‘ç=º4½6pœÈלüŒ]ü¾µ•ÃLÝ*iËëâFq³µ.Çø›ìÑåÔäþ5æÎ<šEN§<›ÚÍ£±†úæ'ŠÞU[LU\¦ÀëÉÆG=±ž:õº‹WˆFíwXÿ«A…=¸9®ågcÄi¾…W»’}J†'h#á–VÜzö‘]dR/“A²0sÇç=h¾„ùœãÞÜKtQŽ]Iüƒòƒõõ<}=êqq%®‘#A3`ŠHÎ1Œç¾yüë)=]ö5C•ƒQ‘uÓ.ÕR)¦óìÝrq· öùCyëT|K|UjŒ¡ÏÙÔ€:«™]JÇCk”ұʒªŒÇŽz{zƺˆ\½ª¼C!p: äûÿZS)Ü‚7·óHnÜʼïÆ6vZEšÚÛGlfbf(€;ÉÀ÷5¯Íkè*‹Ýº3~ ±èÀ¨×±çž¿!ÿÛÑ5í7LÕ#ukF‰ÁÜEÈê’rN9¯[{ÆÇËšæé,ºŠg…âš}n-ü™«y$+¸ddù™ö$W¶Xø7FÔ4[MVóB·E6(.%¾·K©nðùÉo—b‡Ln·€HXÒ¹'ñhÎÈÆëUýj|Í ØËc¯_Z_B"žÞõÒaTPÈ`»:W¤ø^á¿áaxcY‘–íõ(a· ÝΊ²·ÌÑÆImÌø 2[hÁõÒ÷“h劵“'øþwÇ]VDÚcûlêŒFÚ½ò tVqjR‹„Š)-Ä_êa;Fþ29çóô®9É)+ö;Ò½êÏœüK>§ãmBòîm3˵¡c÷ ¸?•`•f·hÚPUœ1ùFr2=ºž+ЭsÈ•ïcªðí¢Ç"Êd‰ì¨wÁÇëé^ñðÇN‹Røã§ëš…ŤVšd"Hs$¯&bE\( û‰çÏ%pšrÑnΚvI6}g¨¨Ó‡Ø †[—ŒŸ´2‰”I5 ®GÈwòÄ u®úêêþ<Õb†ÞöÊãNŽ"ÖÚ³˜–q¿q$ qƒÏrÃÍ{¤wÚͺ²Òôoˆ׉¦­Ù,ešqÌð¡•È'C°ã· šá<ãmg[×u[]tÚÇpÉö»(6‰˜§ÔWù$“ÀIsÅ˱kÝiÉ¢ÚKÙ C T”!éÔäqë×ÐõãRòê8œÜHÞnÁ¶By#ГÏ'~+—’úµkšóYèg]C¤^›{£lß#ïòc2 Ä‚'ž„àsŽÕÇøšho<>’ÚY<QMŒåžGBA#9Ú3´ãp²{¤ùã!Y(4yºXD¾'´ºhRÛQ>ШIº†lƒ€y8Æ{qÀSSŽvðš±`†‘óÀÈí’ØÇ<Ž‚º¢ï4ÙƒV‘êþ!ÿaøa,lÛ̺ԭ8Iµ¡ ̾wò˜^ÏlWÆÚŒ÷7ÚE¤³\ÿFáòpÌÏ’O}ÌN}뺂÷/ßü™åã%yr®ŸðPðµÛÿÂ$‹€±kº7˜¬…Šàm÷È'Ôf¾¨øzóÿÂQðqîÐÇs&|gÃc(*8çôãâ®ùeèeCá‡õÜØð¥Ã?ìûàÏÅ5¼ÐìÔ‰’HA•R[k¦P­Ÿ”-r:ÆÞv®¥ƒKý«5ýFîò +{ØÀ(ò2* S•Lç ’ó61üUÚïÎZ^ë^æjø_Æ>Óþ:êèD¼µ–ïU’î㘗l*²„Qò¦"‹ælpI'å¯Ñ.¾!øßãM¥ö1†K]Q.+rJÉ’' dÎÑ•qÀ´°å«fÛ:©&â“> ð/Â]BÖôÍCX‘¼Kâ‚§Ûo9ŒŒˆÔ’Wœå‰g?ÄÍ^Eðb\þÄÚB+á£ÕnFW©8÷úÿãµË;ò_ÏüΘ;;#Þ|A>¸†V“3“Ó÷’ñŸÒ¾bñßÄ+›@|;á8d¿ñÚÄžLªÈ¶ñïsžN ú…K1 9妹ަòm#éÍ3G]wà7‡ô[-Ëͦ[ý¾ —*îY•#pèGn«¬´´‚ÒÙbD»\.1YÛ[”ω5ÍTÇÿ$ñΙ 4·k¥åØãËHìwír£·óœäþûM·íÁ¬Hbê÷QIöñó4Ó°üsžýk¶+Y>ñ_‘Îô·«=Ãã4Iyû9ëI#Gò™œ íU‘I?5å_/Tø3ĪÑìh/|ÙU X1Ïåµà4Eÿ³?_ò iRÞG]fªuWr¤(£ }ÑÎ?™üëW¸Û­i ÛïÊdœã÷2è+i©M^+´¿Ô¾.Ÿ¤@$ÔVXÌe†sµ‰o@§œs€@®{Ã_ èâK«¿µê×.$ºœ ¨¥€UHó”mÛêx>î/÷N62jÓ=cÂÞu΃5¬¬–Ò9/9 ”( £näôã¯n†ÂÂÚÊGFGùÏ,ä2ORp>Ô¢¬µ%»³Â¾5K»Æß‘$ÚÉ}+d·%°Æ=Fk'D²‰þ=ÊUBtĸ` $´R?ð01î=ëmÜW“üî DÙ蔌uûØæÄqœûóŸéXÂÿN>!};í°¥ègÙL«æíÇ]½qžý+åkBRÄÊÚÚÿ™ïS—-·×ü‰o )có? æ¸Þ%§€ ¯oç¥âpjåß©À¤R@ï]8Hþûn‡>'øv˜#Ä~4+g¸Óu«H °y‡Ï8$*È¿÷Ö\~5ïVv§5ù£Æ¦¹ªYö“;˜4öºðìÁ‘‘á÷”ȸýGé]N‘ XÛJ·áZâúhC´ÒÈ]—# 'µgÌäîû›ZËSIJ¦¹&ì¯îÕ‰'äu«Qüÿ»(y?)Ç=q\Ðív4´Héì<:±ºÝjsd2By ¼ íîq‹…®—uk2aárñ£ålœAàž ×ÏÖ«í*]tØöiÓä…™ÅÇ.»¡øª6ÐüAq¥$Ò¶LR2F2r¨¹¹õ§¿Õõ]F;ë¿øOBñzU§¼¼´^L¨®#Ù!(,~èë]Ýó)^Ïúþµ%A5Ë%tx¬Údë¦FÓxKÄw–™tŠïP_!{â1…8ÁÁóÈíÍ¥ÝÍíûÝ]…Y¥—,ªAUÀ€À°v¯b¤c§sZTkÎWQzv_ðYÝÇ,W:”Í2­Ò RîRsô=‡¨äŠÙ†r“(“l@žŠ£ü ÷®”š`ç±ëüÍE¼O!¾‰’ ó7¯꾃ž™úqŠiô°­üîe8n¡mNÎÒH‹‰¥Ç‘‘žO·:ùÊhs.“†Uo¸n¾¹?…g#XQ¯·#û™”ð·E„ÇÄq“ “&õ‰°yÔ@ü9®{QºžMbÔ^yi:Z¨wÎŒ’~cñ¬”nÓ6ö8¹ÜËpê«l‚D–<…$ïdŒöîN}+¤°Õ"Ÿ`2DÀ€[÷¨~¹ïŸéÖ³”/¹J†!}‡÷3Y—Í$EIU~eÀËzàs^gñ R±‘Ý£éã9ÇùÔÑV¨MZ5ܺþæexØMqàý.ÃJå[ =ë^e¦»GxJଗ6ð¶}ä/ÿ²W­[§Ëó<êxzéß‘õèûÓ½ßÀzó¸ÀL«îcAÿ ×Ó:Ùü £Â¿)kT$ùÅyoV½eaë¨k÷3æýCFÿµ{ £akÌ´œù¹PäòF¡ëß"©êwXx«ÁšÄW2À¶š”^–Àm)<’‰á¶’¤ŽTópØÅk\åx|Eþ÷3?T¹OüZœèñ](ݱóeŒ%³vü©ò¦Õ\ãäÖ»Ïí4¾Ö& F4aþ¬ôÀéÉÉÁãµqÔ^ýû/ëò;~¯]EEAýÌùßÄr«üAÖÝGÊo%Ãg¯Ìj•šC<À3ù¹ý+ÑŠµ4Ï!áësÛ‘ýÌõ½ ì¶ ’::/Ì€Ozíµ'IÖä’xn"’â;†Ý ¯ÞßÁëŒüà~5•¤ª&ŽÇ†Ä{6¹ÜÏdñö»©h:'…|5á­\[7onob%¬`ylCÀ6 £ GQUÖÑÄ-hèì¯$·i邪8Q†Ç'¯aYÖ>&»¿Ô|í>HãXN&–"6O!³Ç=2==s\ò²WwÐÕQ¬ßÂþæž$žÖîMFöÔéÚ_›‰îçÿV­´È=ÏAYº¦§o¨Çb¶Ø¾[’d†;²îàíÜT¼ô'§<­Íæ'B£¿ºþæqï,‘ºR+xP•ÆÜÊÈX’‹ƒœg<ð§§Q‚{‘®X³ÛB° ¨¢g,§ÍLòNÕÎA‘ëŠè¦¹ª¦g*5Ô~÷ãB}NÉw/rÚM+±ûÌ×SÿEè+Í.ŸÃ«*¦à°„UÎF6çÖ½$’–ÚÿíLJ:8‰ûÜTº?¢O ?õ¥¤Qkš\›Âô†èçÜžF=ëëo†“˨j_µ6Uó›A¿{™Xå™Ü€ œûv©¦½É2èЯŸ?¹ù—df ZÔk~ÇL(VKX;ziÿ¦Ð¼)}ªÜ,ÓÁ`ìmí†é%e\¸Áþq€r¡‰Àaôׇt=/úVM¬v° è‹Þä÷?Zå½Íù'Øêm¥Û}œ®r;s_"|rdÝ.%b=bç‚p8çCJ¢÷>kõ4§N£z'÷‘ðûĺ'Žì|y§éWòµžÞYJbr&3þòäcæÆ0Ë•'­QøqðsDð†£w¨ÜGý©{)_)î1ˆ’Ž9$}îXž rÞ¹»§Sšü¯î=ã*‘)(SŒô¯“~'~Я¢ø‚óFð”jÑ»Kn×Ë+¯ð« HÀÃáŠc ŽBÉ£xF2nû öuŸÃþGƒ|)¸–ëöˆñ~­«N—º¤Ïnémy$Gf   A ò2§ŒÈcÌx2k•ÿ‚ƒÞÂÃýõ}B@ÝK…«5l—¿7ýßѺ5ÒIÅèû3éo‰P%ßÀÄäùcLžG'°XÙè+ç…­Ò|;ø™=±ŽæÞÅeÙ{YØ‹™ã“·þe÷iz¯Ð®wåqéúCy—WS¾»Ô&þÕÔÚÙI“È@Œ¢4QÐdœKr2No€ÂtêÝ{¯îC¾[ sìDm‚ã €€ÀqÓÔJÜ¿Öì4Ûøa¼¾µ°ó„{›„‰IÁ<33ÇJ#y+!Êg?…ýÇ„|c/©øƒáËYÜïl¶·Í’wÉVR8=r OáéÚ‹æ= )Ãqcôä ÚÚGÑþdûêþãûŸc{PÕ “QÔõ%ªB®Ò€AË~B¾›Äº±ø¨|K»5¼7?xíçaç;qòã=8®8ÏVOÍ}ïþÕ‹§ˆ…iE÷ÙŸnG}¡£G{jwÛ\ÃÑ3 ¬¹vê+Åþ0^˜|-ªÆ$WØd£3&=¾ë¥qà¢ãˆ³èub©VöZAýÌùš9¦¶Õ­ç¶vŠxdDÈpUÈ#ß_nYÏð¶¸ÓÞK}9![@*$iÉuSØíRI\ðY¯s¯ó<|-é¿uôèO¨É»DºPýÃ(ãÔWÌZì߯¥Þܼ2dP7FÙ8 ŸÏñëƒ^>[¬™ëc°õä¾÷2Ø]-VÔÜ}¥ö'“àøAÀTú€8ÀÇ[^Ù¦ø‚òßS'[?-£’,Åã+‘Ï9#<`×ÑÎ<ѱáF–"5/ÈþæzF™x5kBÍ•ÆýñÄ[~ìÇ<3úW]k¹,!”n/ållóÈ®V£u^Ãõps!Œ?ü$Û“$ô?þªï´]5-âûUÃ,—~Dÿžcü}ÿúùáÅÏ–<«©ÕC ]ÊîO&X»¹”nQ÷HèCY0Á-ÌŽÎ6¨ûÌÜcÞ¼_#Õö5¿•ýÌänüo§Ã%‡ô©üC{ "!òÆÓ$ß{׬xĚЂçXKc„²ÒG6îÃrœ ô8|ûWTiYûÚù™¢ÃWjüîgÿÙlibspatialite-4.3.0a/test/sql_stmt_tests/reflectcoords5.testcase0000664000175000017500000000027512544707704022175 00000000000000reflectcoords5 :memory: #use in-memory database SELECT AsText(ReflectCoords("hello", 0, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords("hello", 0, 1)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb3.testcase0000664000175000017500000000022612544707704020740 00000000000000fromWkb - float :memory: #use in-memory database SELECT GeomFromWkb(1.67) 1 # rows (not including the header row) 1 # columns GeomFromWkb(1.67) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/atmisinvert1.testcase0000664000175000017500000000025312544707704021674 00000000000000ATM_IsInvertible() - NULL arg :memory: #use in-memory database SELECT ATM_IsInvertible(NULL) 1 # rows (not including the header row) 1 # columns ATM_IsInvertible(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt38.testcase0000664000175000017500000000113112544707704021253 00000000000000fromewkt38 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0 9 7), LINESTRING(1 1 9 7, 2 2 9 7)), GEOMETRYCOLLECTION(POINT(3 3 9 7), LINESTRING(4 4 9 7, 5 5 9 7)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0 9 7), LINESTRING(1 1 9 7, 2 2 9 7)), GEOMETRYCOLLECTION(POINT(3 3 9 7), LINESTRING(4 4 9 7, 5 5 9 7)))')); GEOMETRYCOLLECTION ZM(POINT ZM(0 0 9 7), POINT ZM(3 3 9 7), LINESTRING ZM(1 1 9 7, 2 2 9 7), LINESTRING ZM(4 4 9 7, 5 5 9 7)) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate8.testcase0000664000175000017500000000042612544707704021305 00000000000000ATM_Create() - invalid 3rd arg :memory: #use in-memory database SELECT ATM_Create(1.0, 2.0, 'a', 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0) 1 # rows (not including the header row) 1 # columns ATM_Create(1.0, 2.0, 'a', 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/st_z1.testcase0000664000175000017500000000031312544707704020303 00000000000000ST_Z1 :memory: #use in-memory database SELECT ST_Z(MakePointZ(136, -35, 0.0038723129645)); 1 # rows (not including the header row) 1 # columns ST_Z(MakePointZ(136, -35, 0.0038723129645)) 0.0038723129645 libspatialite-4.3.0a/test/sql_stmt_tests/fromgml57.testcase0000664000175000017500000000204612544707704021067 00000000000000FromGML - Polygon LinearRing outer/innerBoundary :memory: #use in-memory database SELECT AsText(GeomFromGml('0 05 05 50 50 01 12 12 21 21 1')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('0 05 05 50 50 01 12 12 21 21 1')):0 POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)) libspatialite-4.3.0a/test/sql_stmt_tests/badEWKT6.testcase0000664000175000017500000000066312544707704020562 00000000000000bad EWKT: MultiPolygon :memory: #use in-memory database SELECT GeomFromEWKT("SRID=4326;MULTIPOLYGON(((11.2 12.3, 11.3 12.3, 11.3 12.4, 11.2 12.4, 11.2 12.3)), ((10.2 11.3, 10.3 11.3, 10.3 11.4, 10.2 11.4, 10.2 11.3))"); 1 # rows (not including the header row) 1 # columns GeomFromEWKT("SRID=4326;MULTIPOLYGON(((11.2 12.3, 11.3 12.3, 11.3 12.4, 11.2 12.4, 11.2 12.3)), ((10.2 11.3, 10.3 11.3, 10.3 11.4, 10.2 11.4, 10.2 11.3))") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttomultipoint3.testcase0000664000175000017500000000035712544707704022760 00000000000000casttomultipoint - POINT :memory: #use in-memory database SELECT AsText(CastToMultiPoint(GeomFromText("POINT(1 2)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiPoint(GeomFromText("POINT(1 2)"))) MULTIPOINT(1 2) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector20.testcase0000664000175000017500000000035212544707704023272 00000000000000makecircularsector20 - NULL step :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, 30, 60, 4326, NULL); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, 30, 60, 4326, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/swapcoords3.testcase0000664000175000017500000000024112544707704021512 00000000000000swapcoords3 :memory: #use in-memory database SELECT SwapCoords(zeroblob(4)); 1 # rows (not including the header row) 1 # columns SwapCoords(zeroblob(4)); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/wkb21.testcase0000664000175000017500000000104712544707704020176 00000000000000Hex Wkb: GeometryCollection XY (single polygon) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))", 4326))); 010700000001000000010300000001000000050000000000000000002440000000000000244000000000000026400000000000002440000000000000264000000000000026400000000000002440000000000000264000000000000024400000000000002440 libspatialite-4.3.0a/test/sql_stmt_tests/fromgml21.testcase0000664000175000017500000000054512544707704021060 00000000000000FromGML - Point v2 3D :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2,10')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2,10')):0 SRID=4326;POINT(1 2 10) libspatialite-4.3.0a/test/sql_stmt_tests/collect45.testcase0000664000175000017500000000123712544707704021047 00000000000000collect - Polygon, PolygonZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGON((1 2, 3 4, 3 2, 1 2),(1.5 2.5, 2.5 3.5, 2.5 2.3, 1.5 2.5))"), GeomFromText("POLYGONZ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGON((1 2, 3 4, 3 2, 1 2),(1.5 2.5, 2.5 3.5, 2.5 2.3, 1.5 2.5))"), GeomFromText("POLYGONZ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))) MULTIPOLYGON Z(((1 2 0, 3 4 0, 3 2 0, 1 2 0), (1.5 2.5 0, 2.5 3.5 0, 2.5 2.3 0, 1.5 2.5 0)), ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2), (2 3 4, 3 4 1, 3 3 1, 2 3 4))) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull23.testcase0000664000175000017500000000026112544707704021403 00000000000000ForceAsNull() - DOUBLE - mismatching :memory: #use in-memory database SELECT ForceAsNull(1.5, 1.6) 1 # rows (not including the header row) 1 # columns ForceAsNull(1.5, 1.6) 1.5 libspatialite-4.3.0a/test/sql_stmt_tests/nrings4.testcase0000664000175000017500000000044712544707704020637 00000000000000nrings - Point plus linestring :memory: #use in-memory database SELECT ST_NRings(GeomFromText("GeometryCollection(POINT(1 2), LINESTRING(1 3, 4 6, 7 9))")) 1 # rows (not including the header row) 1 # columns ST_NRings(GeomFromText("GeometryCollection(POINT(1 2), LINESTRING(1 3, 4 6, 7 9))")) 0 libspatialite-4.3.0a/test/sql_stmt_tests/atmisvalid4.testcase0000664000175000017500000000023012544707704021462 00000000000000ATM_IsValid() - NULL :memory: #use in-memory database SELECT ATM_IsValid(NULL) 1 # rows (not including the header row) 1 # columns ATM_IsValid(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_tests/envintersects10.testcase0000664000175000017500000000035212544707704022303 00000000000000ST_EnvIntersects - bad geometry :memory: #use in-memory database SELECT ST_EnvIntersects(zeroblob(99), 2.1, 2.1, 3.1, 3.1) 1 # rows (not including the header row) 1 # columns ST_EnvIntersects(zeroblob(99), 2.1, 2.1, 3.1, 3.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asbinary11.testcase0000664000175000017500000000103212544707704021214 00000000000000asbinary - MULTILINESTRING :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTILINESTRING((0 0, 3 0,3 0, 3 3), (0 0, 0 3))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTILINESTRING((0 0, 3 0,3 0, 3 3), (0 0, 0 3))", 4326))) 010500000002000000010200000004000000000000000000000000000000000000000000000000000840000000000000000000000000000008400000000000000000000000000000084000000000000008400102000000020000000000000000000000000000000000000000000000000000000000000000000840 libspatialite-4.3.0a/test/sql_stmt_tests/addpoint23.testcase0000664000175000017500000000047412544707704021222 00000000000000ST_AddPoint() - append (no index) Z :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2)'), MakePoint(1, 1))) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2)'), MakePoint(1, 1))) LINESTRING Z(0 0 1, 1 0 2, 1 1 0) libspatialite-4.3.0a/test/sql_stmt_tests/getlayerextent6.testcase0000664000175000017500000000031512544707704022377 00000000000000GetLayerExtent - BLOB, TEXT :memory: #use in-memory database SELECT GetLayerExtent(zeroblob(4), 'column'); 1 # rows (not including the header row) 1 # columns GetLayerExtent(zeroblob(4), 'column'); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext17.testcase0000664000175000017500000000053212544707704022136 00000000000000geomfromtext17 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(MULTIPOINTZ((0 1 9), (2 3 9), (4 5 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZ(MULTIPOINTZ((0 1 9), (2 3 9), (4 5 9)))')); GEOMETRYCOLLECTION Z(POINT Z(0 1 9), POINT Z(2 3 9), POINT Z(4 5 9)) libspatialite-4.3.0a/test/sql_stmt_tests/updatestats2.testcase0000664000175000017500000000031512544707704021670 00000000000000UpdateLayerStatistics - TEXT, NULL :memory: #use in-memory database SELECT UpdateLayerStatistics('table', NULL); 1 # rows (not including the header row) 1 # columns UpdateLayerStatistics('table', NULL); 0 libspatialite-4.3.0a/test/sql_stmt_tests/mbr14.testcase0000664000175000017500000000045512544707704020177 00000000000000MbrEqual - Line + same Line :memory: #use in-memory database SELECT MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("LINESTRING(0 0, 1 2)")); 1 # rows (not including the header row) 1 # columns MbrEqual(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("LINESTRING(0 0, 1 2)")) # header 1libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints16.testcase0000664000175000017500000000057512544707704022643 00000000000000geometry constraints - MULTILINESTRINGZ :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("MULTILINESTRINGZ((1 2 3, 4 3 1),(0 4 4, 1 9 7))", 4326), "MULTILINESTRING", 4326, "XYZ") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("MULTILINESTRINGZ((1 2 3, 4 3 1),(0 4 4, 1 9 7))", 4326), "MULTILINESTRING", 4326, "XYZ") 1 libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude15.testcase0000664000175000017500000000150312544707704022443 00000000000000shiftlongitude - positive and negative longitude polygonzm, interior rings :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGONZM((-175 0 4 2, -176 10 5 3, 175 10 5 4, 176 0 5 1, -175 0 4 2),(-177 1 4 2, -177 2 5 3, -178 2 6 4, -178 1 9 2, -177 1 4 2),(-179 4 0 0, 179 4 0 0, 179 5 0 0, -179 5 0 0, -179 4 0 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGONZM((-175 0 4 2, -176 10 5 3, 175 10 5 4, 176 0 5 1, -175 0 4 2),(-177 1 4 2, -177 2 5 3, -178 2 6 4, -178 1 9 2, -177 1 4 2),(-179 4 0 0, 179 4 0 0, 179 5 0 0, -179 5 0 0, -179 4 0 0))", 4326))) POLYGON ZM((185 0 4 2, 184 10 5 3, 175 10 5 4, 176 0 5 1, 185 0 4 2), (183 1 4 2, 183 2 5 3, 182 2 6 4, 182 1 9 2, 183 1 4 2), (181 4 0 0, 179 4 0 0, 179 5 0 0, 181 5 0 0, 181 4 0 0)) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml44.testcase0000664000175000017500000000233712544707704021066 00000000000000FromGML - MultiPolygon v3 3D (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0 0 10 5 0 11 5 5 13 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 52 2 10 3 2 11 3 3 13 2 3 13 2 2 10')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0 0 10 5 0 11 5 5 13 0 5 13 0 0 101 1 5 2 1 5 2 2 5 1 2 5 1 1 52 2 10 3 2 11 3 3 13 2 3 13 2 2 10')):0 SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 13,2 3 13,2 2 10))) libspatialite-4.3.0a/test/sql_stmt_tests/st_m8.testcase0000664000175000017500000000030212544707704020273 00000000000000ST_M8 :memory: #use in-memory database SELECT ST_M(MakePointZ(136, -35, 0.0038723129645)); 1 # rows (not including the header row) 1 # columns ST_M(MakePointZ(136, -35, 0.0038723129645)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/invalidatestats3.testcase0000664000175000017500000000034112544707704022526 00000000000000InvalidateLayerStatistics - TEXT, TEXT :memory: #use in-memory database SELECT InvalidateLayerStatistics('table', 'column'); 1 # rows (not including the header row) 1 # columns InvalidateLayerStatistics('table', 'column'); 1 libspatialite-4.3.0a/test/sql_stmt_tests/sridflipped2.testcase0000664000175000017500000000027212544707704021636 00000000000000SridHasFlippedAxes() - TEXT SRID :memory: #use in-memory database SELECT SridHasFlippedAxes('srid') 1 # rows (not including the header row) 1 # columns SridHasFlippedAxes('srid') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/clonetable7.testcase0000664000175000017500000000043712544707704021451 00000000000000CloneTable() - NULL option #3 :memory: #use in-memory database SELECT CloneTable('prefix', 'in_table', 'out_table', 1, 'option-1', 'option-2', NULL) 1 # rows (not including the header row) 1 # columns CloneTable('prefix', 'in_table', 'out_table', 1, 'option-1', 'option-2', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector11.testcase0000664000175000017500000000035612544707704023277 00000000000000makeellipticsector11 - BLOB y_axis :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, zeroblob(4), 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, zeroblob(4), 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/updatestats6.testcase0000664000175000017500000000033512544707704021676 00000000000000UpdateLayerStatistics - BLOB, TEXT :memory: #use in-memory database SELECT UpdateLayerStatistics(zeroblob(4), 'column'); 1 # rows (not including the header row) 1 # columns UpdateLayerStatistics(zeroblob(4), 'column'); 0 libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector11.testcase0000664000175000017500000000034512544707704023274 00000000000000makecircularsector11 - BLOB start :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, zeroblob(4), 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, zeroblob(4), 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepointz-null2.testcase0000664000175000017500000000030512544707704022457 00000000000000makepointz-null2 :memory: #use in-memory database SELECT AsText(MakePointZ(26.0, "world", 0.54)); 1 # rows (not including the header row) 1 # columns AsText(MakePointZ(26.0, "world", 0.54)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint13.testcase0000664000175000017500000000042612544707704021216 00000000000000ST_AddPoint() - TEXT index :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 'alpha') 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/uncompressgeom1.testcase0000664000175000017500000000045512544707704022401 00000000000000uncompressgeometry :memory: #use in-memory database SELECT AsText(UncompressGeometry(GeomFromText("POLYGON((1 2, 3 1, 4 4, 1 2))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(UncompressGeometry(GeomFromText("POLYGON((1 2, 3 1, 4 4, 1 2))", 4326))) POLYGON((1 2, 3 1, 4 4, 1 2)) libspatialite-4.3.0a/test/sql_stmt_tests/namefrompath3.testcase0000664000175000017500000000025212544707704022011 00000000000000FileNameFromPath - DOUBLE :memory: #use in-memory database SELECT FileNameFromPath(1.1); 1 # rows (not including the header row) 1 # columns FileNameFromPath(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asewkb4.testcase0000664000175000017500000000062512544707704020611 00000000000000asewkb - LINESTRING :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("LINESTRING(1 3,1 0)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("LINESTRING(1 3,1 0)", 4326))) 303130323030303032304536313030303030303230303030303030303030303030303030303046303346303030303030303030303030303834303030303030303030303030304630334630303030303030303030303030303030 libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat7.testcase0000664000175000017500000000041212544707704022544 00000000000000normalizelonlat- out of range positive lat :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(4 180)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(4 180)", 4326))) POINT(4 0) libspatialite-4.3.0a/test/sql_stmt_tests/asfgf6.testcase0000664000175000017500000000037012544707704020422 00000000000000asfgf - pointxy, 0 dim :memory: #use in-memory database SELECT Hex(AsFGF(GeomFromText("POINT(1 2)"), 0)) 1 # rows (not including the header row) 1 # columns Hex(AsFGF(GeomFromText("POINT(1 2)"), 0)) 0100000000000000000000000000F03F0000000000000040 libspatialite-4.3.0a/test/sql_stmt_tests/reflectcoords12.testcase0000664000175000017500000000074512544707704022255 00000000000000reflectcoords12 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POLYGON((-10 -10, -20 -10, -20 -20, -20 -11, -10 -10), (-11 -11, -12 -11, -12 -12, -11 -12, -11 -11))"), 1, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POLYGON((-10 -10, -20 -10, -20 -20, -20 -11, -10 -10), (-11 -11, -12 -11, -12 -12, -11 -12, -11 -11))"), 1, 1)) POLYGON((10 10, 20 10, 20 20, 20 11, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11)) libspatialite-4.3.0a/test/sql_stmt_tests/getlayerextent7.testcase0000664000175000017500000000026612544707704022405 00000000000000GetLayerExtent - TEXT, INT :memory: #use in-memory database SELECT GetLayerExtent('table', 1); 1 # rows (not including the header row) 1 # columns GetLayerExtent('table', 1); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/envintersects4.testcase0000664000175000017500000000034312544707704022226 00000000000000ST_EnvIntersects - bad arg #4 :memory: #use in-memory database SELECT ST_EnvIntersects(zeroblob(50), 2, 2, "alpha", 3) 1 # rows (not including the header row) 1 # columns ST_EnvIntersects(zeroblob(50), 2, 2, "alpha", 3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/togars4.testcase0000664000175000017500000000034012544707704020626 00000000000000togars - northwest :memory: #use in-memory database SELECT ToGARS(GeomFromText("Point(-179.999 89.999)", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("Point(-179.999 89.999)", 4326)) 001QZ11libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry4.testcase0000664000175000017500000000063712544707704022747 00000000000000CompressGeometry - LINESTRING :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("LINESTRING(1 2, 3 4)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("LINESTRING(1 2, 3 4)", 4326))) 0001E6100000000000000000F03F0000000000000040000000000000084000000000000010407C42420F0002000000000000000000F03F000000000000004000000000000008400000000000001040FE libspatialite-4.3.0a/test/sql_stmt_tests/geomtype6.testcase0000664000175000017500000000043412544707704021166 00000000000000geometrytype6 - LINESTRING :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("LINESTRING(4 0, 4 4, 8 4)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) LINESTRING XYlibspatialite-4.3.0a/test/sql_stmt_tests/atmcreate14.testcase0000664000175000017500000000042612544707704021362 00000000000000ATM_Create() - invalid 9th arg :memory: #use in-memory database SELECT ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 'a', 10.0, 11.0, 12.0) 1 # rows (not including the header row) 1 # columns ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 'a', 10.0, 11.0, 12.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/removepoint1.testcase0000664000175000017500000000026612544707704021702 00000000000000ST_RemovePoint() - NULL line :memory: #use in-memory database SELECT ST_RemovePoint(NULL, NULL) 1 # rows (not including the header row) 1 # columns ST_RemovePoint(NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract21.testcase0000664000175000017500000000067012544707704022434 00000000000000Collection Extract - Extract POLYGONM :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POLYGONM((0 0 1, 10 0 2, 10 10 1, 0 0 1),(1 2 4, 4 3 1, 1 1 1, 1 2 4))"), 3)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POLYGONM((0 0 1, 10 0 2, 10 10 1, 0 0 1),(1 2 4, 4 3 1, 1 1 1, 1 2 4))"), 3)) POLYGON M((0 0 1, 10 0 2, 10 10 1, 0 0 1), (1 2 4, 4 3 1, 1 1 1, 1 2 4)) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatetrans7.testcase0000664000175000017500000000032412544707704022351 00000000000000ATM_CreateTranslate() - 3d invalid 1st arg :memory: #use in-memory database SELECT ATM_CreateTranslate('a', 2.0, 3.0) 1 # rows (not including the header row) 1 # columns ATM_CreateTranslate('a', 2.0, 3.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml5.testcase0000664000175000017500000000156612544707704021662 00000000000000From KML - POLYGON Z :memory: SELECT AsText(GeomFromKML("-112.3372510731295,36.14888505105317,1784 -112.3356128688403,36.14781540589019,1784 -112.3368169371048,36.14658677734382,1784 -112.3384408457543,36.14762778914076,1784 -112.3372510731295,36.14888505105317,1784")) 1 # rows 1 # column AsText(GeomFromKML("-112.3372510731295,36.14888505105317,1784 -112.3356128688403,36.14781540589019,1784 -112.3368169371048,36.14658677734382,1784 -112.3384408457543,36.14762778914076,1784 -112.3372510731295,36.14888505105317,1784")) POLYGON Z((-112.337251 36.148885 1784, -112.335613 36.147815 1784, -112.336817 36.146587 1784, -112.338441 36.147628 1784, -112.337251 36.148885 1784))libspatialite-4.3.0a/test/sql_stmt_tests/maxm1.testcase0000664000175000017500000000021212544707704020264 00000000000000MaxM - non-blob :memory: #use in-memory database SELECT ST_MaxM(3) 1 # rows (not including the header row) 1 # columns ST_MaxM(3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridprojection6.testcase0000664000175000017500000000027612544707704022377 00000000000000SridGetProjection() - 32632 :memory: #use in-memory database SELECT SridGetProjection(32632) 1 # rows (not including the header row) 1 # columns SridGetProjection(32632) Transverse_Mercator libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon14.testcase0000664000175000017500000000063612544707704021745 00000000000000makepolygon - Linestring exterior XYZM :memory: #use in-memory database SELECT ST_AsText(MakePolygon(GeomFromText('LINESTRINGZM(1 1 10 5, 1 2 11 6, 2 2 12 7, 2 1 11 8, 1 1 10 5)', 4326))); 1 # rows (not including the header row) 1 # columns ST_AsText(MakePolygon(GeomFromText('LINESTRINGZM(1 1 10 5, 1 2 11 6, 2 2 12 7, 2 1 11 8, 1 1 10 5)', 4326))) POLYGON ZM((1 1 10 5, 1 2 11 6, 2 2 12 7, 2 1 11 8, 1 1 10 5)) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull14.testcase0000664000175000017500000000030712544707704021404 00000000000000ForceAsNull() - BLOB/DOUBLE :memory: #use in-memory database SELECT Hex(ForceAsNull(x'0102a1b2', 1.5)) 1 # rows (not including the header row) 1 # columns Hex(ForceAsNull(x'0102a1b2', 1.5)) 0102A1B2 libspatialite-4.3.0a/test/sql_stmt_tests/fromgml61.testcase0000664000175000017500000000113112544707704021054 00000000000000FromGML - Box-2 :memory: #use in-memory database SELECT AsText(GeomFromGml('1329459.947339,4879353.546282 1442103.707005,4967559.686594')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('1329459.947339,4879353.546282 1442103.707005,4967559.686594')):0 POLYGON((1329459.947339 4879353.546282, 1442103.707005 4879353.546282, 1442103.707005 4967559.686594, 1329459.947339 4967559.686594, 1329459.947339 4879353.546282)) libspatialite-4.3.0a/test/sql_stmt_tests/casttotext4.testcase0000664000175000017500000000031712544707704021535 00000000000000CastToText() - INTEGER :memory: #use in-memory database SELECT CastToText(123), TypeOf(CastToText(123)) 1 # rows (not including the header row) 2 # columns CastToText(123) TypeOf(CastToText(123)) 123 text libspatialite-4.3.0a/test/sql_stmt_tests/dimension3.testcase0000664000175000017500000000033712544707704021321 00000000000000dimension3 - linestring :memory: #use in-memory database SELECT Dimension(GeomFromText("LINESTRING(4 0, 4 4, 8 4)")) 1 # rows (not including the header row) 1 # columns Dimension(GeomFromText("LINESTRING(4 0, 4 4, 8 4)")) 1libspatialite-4.3.0a/test/sql_stmt_tests/casttodouble2.testcase0000664000175000017500000000025512544707704022022 00000000000000CastToDouble() - BLOB :memory: #use in-memory database SELECT CastToDouble(zeroblob(4)) 1 # rows (not including the header row) 1 # columns CastToDouble(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/badGeoJSON2.testcase0000664000175000017500000000042612544707704021205 00000000000000bad GeoJSON: Linestring :memory: #use in-memory database SELECT GeomFromGeoJSON('{"type":"LineString","coordinates":[[1.1,2.2],[3.3,4.4]]'); 1 # rows (not including the header row) 1 # columns GeomFromGeoJSON('{"type":"LineString","coordinates":[[1.1,2.2],[3.3,4.4]]'):0 (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asgml8.testcase0000664000175000017500000000034112544707704020437 00000000000000asgml - bad args (non-int 3rd arg) :memory: #use in-memory database SELECT asgml(3, GeomFromText("Point(1 2)"), "four"); 1 # rows (not including the header row) 1 # columns asgml(3, GeomFromText("Point(1 2)"), "four") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/startpoint2.testcase0000664000175000017500000000026412544707704021541 00000000000000startpoint - bad blob (error) :memory: #use in-memory database SELECT StartPoint(zeroblob(10)); 1 # rows (not including the header row) 1 # columns StartPoint(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/extractmultipolygon2.testcase0000664000175000017500000000026012544707704023463 00000000000000extractmultipolygon - non-blob :memory: #use in-memory database SELECT ExtractMultiPolygon(4) 1 # rows (not including the header row) 1 # columns ExtractMultiPolygon(4) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson16.testcase0000664000175000017500000000057312544707704021752 00000000000000FromGeoJSON - bad type, SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"No such type","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[]}')); 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"No such type","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[]}')):0 (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/envintersects8.testcase0000664000175000017500000000041612544707704022233 00000000000000ST_EnvIntersects - ok [double coords] :memory: #use in-memory database SELECT ST_EnvIntersects(GeomFromText('POINT(2.5 2.8)'), 2.1, 2.1, 3.1, 3.1) 1 # rows (not including the header row) 1 # columns ST_EnvIntersects(GeomFromText('POINT(2.5 2.8)'), 2.1, 2.1, 3.1, 3.1) 1 libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt13.testcase0000664000175000017500000000121512544707704021247 00000000000000fromewkt13 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))))')); GEOMETRYCOLLECTION Z(POLYGON Z((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), POLYGON Z((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))) libspatialite-4.3.0a/test/sql_stmt_tests/getlayerextent4.testcase0000664000175000017500000000027012544707704022375 00000000000000GetLayerExtent - INT, TEXT :memory: #use in-memory database SELECT GetLayerExtent(1, 'column'); 1 # rows (not including the header row) 1 # columns GetLayerExtent(1, 'column'); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmyroll3.testcase0000664000175000017500000000074212544707704021177 00000000000000ATM_YRoll() - valid double :memory: #use in-memory database SELECT Hex(ATM_YRoll(ATM_Create(), 15.0)) 1 # rows (not including the header row) 1 # columns Hex(ATM_YRoll(ATM_Create(), 15.0)) 000115BF4847DDE8EE3F3A00000000000000003A900693C17D90D03F3A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A900693C17D90D0BF3A00000000000000003A15BF4847DDE8EE3F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/casttosingle9.testcase0000664000175000017500000000040212544707704022032 00000000000000casttosingle - LINESTRING :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("LINESTRING(4 1, 3 4)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("LINESTRING(4 1, 3 4)"))) LINESTRING(4 1, 3 4) libspatialite-4.3.0a/test/sql_stmt_tests/fromdms8.testcase0000664000175000017500000000055212544707704021007 00000000000000fromdms - valid DMS expression-3 :memory: #use in-memory database SELECT LongitudeFromDMS('40°26′47″S 079°58′36″E'), LatitudeFromDMS('40°26′47″S 079°58′36″E'); 1 # rows (not including the header row) 2 # columns LongitudeFromDMS('40°26′47″S 079°58′36″E') LatitudeFromDMS('40°26′47″S 079°58′36″E') 79.97666:5 -40.44638:5 libspatialite-4.3.0a/test/sql_stmt_tests/casttomultipoint8.testcase0000664000175000017500000000047412544707704022765 00000000000000casttomultipoint - GEOMETRYCOLLECTION - linestring :memory: #use in-memory database SELECT AsText(CastToMultiPoint(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(0 1, 2 3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiPoint(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(0 1, 2 3))"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext34.testcase0000664000175000017500000000061412544707704022136 00000000000000geomfromtext34 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2))))')); GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)) libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat12.testcase0000664000175000017500000000040112544707704022616 00000000000000normalizelonlat- in range -190 :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(4 -190)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(4 -190)", 4326))) POINT(4 10) libspatialite-4.3.0a/test/sql_stmt_tests/atmmultiply3.testcase0000664000175000017500000000032212544707704021707 00000000000000ATM_Multiply() - invalid blob2 :memory: #use in-memory database SELECT ATM_Multiply(ATM_Create(), zeroblob(4)) 1 # rows (not including the header row) 1 # columns ATM_Multiply(ATM_Create(), zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson15.testcase0000664000175000017500000000077412544707704021754 00000000000000FromGeoJSON - polygon with SRID, bad coords :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"Polygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[1,2.3],[4,1.2],[2,1.6],[1,2.3]],[[1.5,2],[3.5,9],[2.5,1],[]]]}')); 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"Polygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[1,2.3],[4,1.2],[2,1.6],[1,2.3]],[[1.5,2],[3.5,9],[2.5,1],[]]]}')):0 (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeline22.testcase0000664000175000017500000000035712544707704021204 00000000000000makeline - MULTIPOINT - invalid :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)"))) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/clonetable11.testcase0000664000175000017500000000051712544707704021523 00000000000000CloneTable() - NULL option #7 :memory: #use in-memory database SELECT CloneTable('prefix', 'in_table', 'out_table', 1, 'opt1', 'opt2', 'opt3', 'opt4', 'opt5', 'opt6', NULL) 1 # rows (not including the header row) 1 # columns CloneTable('prefix', 'in_table', 'out_table', 1, 'opt1', 'opt2', 'opt3', 'opt4', 'opt5', 'opt6', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ndims6.testcase0000664000175000017500000000051612544707704020450 00000000000000Coord Dimensions - GeometryCollection XYZM :memory: #use in-memory database SELECT CoordDimension(geom), ST_NDims(geom) FROM (SELECT GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 11, 5 6 102 12))') AS geom); 1 # rows (not including the header row) 2 # columns CoordDimension(geom) ST_NDims(geom) XYZM 4 libspatialite-4.3.0a/test/sql_stmt_tests/collect11.testcase0000664000175000017500000000047112544707704021037 00000000000000collect - Point, PointZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINT(1 2)"), GeomFromText("POINTZM(4 5 3.2 6)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINT(1 2)"), GeomFromText("POINTZM(4 5 3.2 6)"))) MULTIPOINT ZM(1 2 0 0, 4 5 3.2 6) libspatialite-4.3.0a/test/sql_stmt_tests/numgeometries2.testcase0000664000175000017500000000025112544707704022211 00000000000000numgeometries - non-blob :memory: #use in-memory database SELECT NumGeometries("hello") 1 # rows (not including the header row) 1 # columns NumGeometries("hello") (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/casttomultipoint9.testcase0000664000175000017500000000053412544707704022763 00000000000000casttomultipoint - Geometry collection, point plus polygon :memory: #use in-memory database SELECT CastToMultiPoint(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),POINT(1 2))")) 1 # rows (not including the header row) 1 # columns CastToMultiPoint(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),POINT(1 2))")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttomultipolygon5.testcase0000664000175000017500000000050112544707704023307 00000000000000casttomultipolygon - POLYGON :memory: #use in-memory database SELECT AsText(CastToMultiPolygon(GeomFromText("POLYGON((0 1, 2 1, 2 4, 0 4, 0 1))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiPolygon(GeomFromText("POLYGON((0 1, 2 1, 2 4, 0 4, 0 1))"))) MULTIPOLYGON(((0 1, 2 1, 2 4, 0 4, 0 1))) libspatialite-4.3.0a/test/sql_stmt_tests/wkb36.testcase0000664000175000017500000000231212544707704020200 00000000000000Hex Wkb: MultiPolygon XYZM (single polygon with interior ring) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTIPOLYGONZM(((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 3, 10 10 100 1), (11 11 100 1, 12 11 101 2, 12 12 102 3, 11 12 103 3, 11 11 100 1)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTIPOLYGONZM(((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 3, 10 10 100 1), (11 11 100 1, 12 11 101 2, 12 12 102 3, 11 12 103 3, 11 11 100 1)))", 4326))); 01BE0B00000100000001BB0B00000200000005000000000000000000244000000000000024400000000000005940000000000000F03F0000000000002E400000000000002440000000000040594000000000000000400000000000002E400000000000002E400000000000805940000000000000084000000000000024400000000000002E400000000000C059400000000000000840000000000000244000000000000024400000000000005940000000000000F03F05000000000000000000264000000000000026400000000000005940000000000000F03F00000000000028400000000000002640000000000040594000000000000000400000000000002840000000000000284000000000008059400000000000000840000000000000264000000000000028400000000000C059400000000000000840000000000000264000000000000026400000000000005940000000000000F03F libspatialite-4.3.0a/test/sql_stmt_tests/link_m.testcase0000664000175000017500000000023012544707704020512 00000000000000links to metres :memory: #use in-memory database SELECT CvtFromLink(4971); 1 # rows (not including the header row) 1 # columns CvtFromLink(4971) 1000:4 libspatialite-4.3.0a/test/sql_stmt_tests/rtreealign2.testcase0000664000175000017500000000030612544707704021463 00000000000000rtreealign - non-int second arg :memory: #use in-memory database SELECT RTreeAlign("notreal", "non-int", 2) 1 # rows (not including the header row) 1 # columns RTreeAlign("notreal", "non-int", 2) -1libspatialite-4.3.0a/test/sql_stmt_tests/collect47.testcase0000664000175000017500000000110212544707704021040 00000000000000collect - Polygon, Polygon :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGON((1 2, 3 4, 3 2, 1 2),(1.5 2.5, 2.5 3.5, 2.5 2.3, 1.5 2.5))"), GeomFromText("POLYGON((4 5, 1 2, 4 2, 4 5),(2 3, 3 4, 3 3, 2 3))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGON((1 2, 3 4, 3 2, 1 2),(1.5 2.5, 2.5 3.5, 2.5 2.3, 1.5 2.5))"), GeomFromText("POLYGON((4 5, 1 2, 4 2, 4 5),(2 3, 3 4, 3 3, 2 3))"))) MULTIPOLYGON(((1 2, 3 4, 3 2, 1 2), (1.5 2.5, 2.5 3.5, 2.5 2.3, 1.5 2.5)), ((4 5, 1 2, 4 2, 4 5), (2 3, 3 4, 3 3, 2 3))) libspatialite-4.3.0a/test/sql_stmt_tests/collect52.testcase0000664000175000017500000000145112544707704021043 00000000000000collect - PolygonZM, PolygonZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONZM((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1),(1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1))"), GeomFromText("POLYGONZM((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4),(2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONZM((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1),(1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1))"), GeomFromText("POLYGONZM((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4),(2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))"))) MULTIPOLYGON ZM(((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1), (1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1)), ((4 5 3.2 4, 1 2 4.6 5, 4 2 3.1 3, 4 5 3.2 4), (2 3 4 1, 3 4 1 2, 3 3 1 3, 2 3 4 1))) libspatialite-4.3.0a/test/sql_stmt_tests/mbr28.testcase0000664000175000017500000000045312544707704020202 00000000000000MbrDisjoint - Line + Point down :memory: #use in-memory database SELECT MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(-0.5 -2)")); 1 # rows (not including the header row) 1 # columns MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(-0.5 -2)")) # header 1libspatialite-4.3.0a/test/sql_stmt_tests/checkdupl1.testcase0000664000175000017500000000027012544707704021270 00000000000000CheckDuplicateRows() - NULL table :memory: #use in-memory database SELECT CheckDuplicateRows(NULL); 1 # rows (not including the header row) 1 # columns CheckDuplicateRows(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/setpoint23.testcase0000664000175000017500000000052412544707704021261 00000000000000ST_SetPoint() - ZM :memory: #use in-memory database SELECT AsText(SetPoint(GeomFromText('LINESTRINGZM(0 0 1 2, 1 0 2 3, 1 1 3 4)'), 1, MakePoint(2, 3))) 1 # rows (not including the header row) 1 # columns AsText(SetPoint(GeomFromText('LINESTRINGZM(0 0 1 2, 1 0 2 3, 1 1 3 4)'), 1, MakePoint(2, 3))) LINESTRING ZM(0 0 1 2, 2 3 0 0, 1 1 3 4) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromewkb1.testcase0000664000175000017500000000015512544707704022014 00000000000000From EWKB - bad text :memory: SELECT GeomFromEwkb("Hello!") 1 # rows 1 # column GeomFromEwkb("Hello!") (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/swapcoords9.testcase0000664000175000017500000000104412544707704021522 00000000000000swapcoords9 :memory: #use in-memory database SELECT AsText(SwapCoords(GeomFromText("POLYGONZ((10 10 100, 20 10 101, 20 20 102, 10 20 103, 10 10 100), (14 14 100, 16 14 101, 16 16 102, 14 16 103, 14 14 100))"))); 1 # rows (not including the header row) 1 # columns AsText(SwapCoords(GeomFromText("POLYGONZ((10 10 100, 20 10 101, 20 20 102, 10 20 103, 10 10 100), (14 14 100, 16 14 101, 16 16 102, 14 16 103, 14 14 100))"))); POLYGON Z((10 10 100, 10 20 101, 20 20 102, 20 10 103, 10 10 100), (14 14 100, 14 16 101, 16 16 102, 16 14 103, 14 14 100)) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext25.testcase0000664000175000017500000000120112544707704022127 00000000000000geomfromtext25 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONM(MULTIPOLYGONM(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONM(MULTIPOLYGONM(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))))')); GEOMETRYCOLLECTION M(POLYGON M((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), POLYGON M((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))) libspatialite-4.3.0a/test/sql_stmt_tests/invalidatestats7.testcase0000664000175000017500000000032212544707704022531 00000000000000InvalidateLayerStatistics - TEXT, INT :memory: #use in-memory database SELECT InvalidateLayerStatistics('table', 1); 1 # rows (not including the header row) 1 # columns InvalidateLayerStatistics('table', 1); 0 libspatialite-4.3.0a/test/sql_stmt_tests/togars6.testcase0000664000175000017500000000024012544707704020627 00000000000000togars - bad blob :memory: #use in-memory database SELECT ToGARS(zeroblob(100)) 1 # rows (not including the header row) 1 # columns ToGARS(zeroblob(100)) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/removepoint10.testcase0000664000175000017500000000040112544707704021751 00000000000000ST_RemovePoint() - negative index :memory: #use in-memory database SELECT ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), -1) 1 # rows (not including the header row) 1 # columns ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), -1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/isvalidrasterstats7.testcase0000664000175000017500000000037212544707704023272 00000000000000IsValidRasterStatistics - NULL #bands: 3 args NEW:memory: #use in-memory database SELECT IsValidRasterStatistics(zeroblob(4), 'UINT8', NULL); 1 # rows (not including the header row) 1 # columns IsValidRasterStatistics(zeroblob(4), 'UINT8', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector4.testcase0000664000175000017500000000033712544707704023220 00000000000000makeellipticsector4 - NULL cy :memory: #use in-memory database SELECT MakeEllipticSector(0, NULL, 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, NULL, 100, 200, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector7.testcase0000664000175000017500000000032512544707704023217 00000000000000makecircularsector7 - NULL radius :memory: #use in-memory database SELECT MakeCircularSector(0, 0, NULL, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, NULL, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry43.testcase0000664000175000017500000000111512544707704023022 00000000000000CompressGeometry - MULTIPOLYGON Z :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOLYGONZ(((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77)), ((15 15 55, 16 15 56, 16 16 57, 15 16 58, 15 15 55)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOLYGONZ(((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77)), ((15 15 55, 16 15 56, 16 16 57, 15 16 58, 15 15 55)))", 4326))) MULTIPOLYGON Z(((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77)), ((15 15 55, 16 15 56, 16 16 57, 15 16 58, 15 15 55))) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate10.testcase0000664000175000017500000000042612544707704021356 00000000000000ATM_Create() - invalid 5th arg :memory: #use in-memory database SELECT ATM_Create(1.0, 2.0, 3.0, 4.0, 'a', 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0) 1 # rows (not including the header row) 1 # columns ATM_Create(1.0, 2.0, 3.0, 4.0, 'a', 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/badGML2.testcase0000664000175000017500000000047512544707704020424 00000000000000bad GML: Point :memory: #use in-memory database SELECT GeomFromGML('1.1,2.21.1,2.21,12,2 3,34,4 10,4 10,10 4,10 4,45,5 6,5 6,6 5,6 5,5")) 1 # rows 1 # column AsText(GeomFromKML("1,12,2 3,34,4 10,4 10,10 4,10 4,45,5 6,5 6,6 5,6 5,5")) GEOMETRYCOLLECTION(POINT(1 1), LINESTRING(2 2, 3 3), POLYGON((4 4, 10 4, 10 10, 4 10, 4 4), (5 5, 6 5, 6 6, 5 6, 5 5))) libspatialite-4.3.0a/test/sql_stmt_tests/getlayerextent12.testcase0000664000175000017500000000032012544707704022450 00000000000000GetLayerExtent - TEXT, TEXT, INT :memory: #use in-memory database SELECT GetLayerExtent('table', 'column', 1); 1 # rows (not including the header row) 1 # columns GetLayerExtent('table', 'column', 1); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude19.testcase0000664000175000017500000000113712544707704022452 00000000000000shiftlongitude - negative long interior :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGON((185 0, 184 10, 175 10, 176 0, 185 0),(-177 1, -177 2, -178 2, -178 1, -177 1),(-179 4, 179 4, 179 5, -179 5, -179 4))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGON((185 0, 184 10, 175 10, 176 0, 185 0),(-177 1, -177 2, -178 2, -178 1, -177 1),(-179 4, 179 4, 179 5, -179 5, -179 4))", 4326))) POLYGON((185 0, 184 10, 175 10, 176 0, 185 0), (183 1, 183 2, 182 2, 182 1, 183 1), (181 4, 179 4, 179 5, 181 5, 181 4)) libspatialite-4.3.0a/test/sql_stmt_tests/makepoint14.testcase0000664000175000017500000000035212544707704021402 00000000000000makepoint - MakepointZM, bad M arg, SRID :memory: #use in-memory database SELECT AsText(MakePointZM(-71, 42, 3, "hello", 4326)) 1 # rows (not including the header row) 1 # columns AsText(MakePointZM(-71, 42, 3, "hello", 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/isfontitalic.testcase0000664000175000017500000000025712544707704021742 00000000000000IsFontItalic - standard NEW:memory: #use in-memory database SELECT IsFontItalic(zeroblob(4)); 1 # rows (not including the header row) 1 # columns IsFontItalic(zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_tests/ktorrent_sidebar.gif0000664000175000017500000000403512544707704021543 00000000000000GIF89a ¸ ¥.½½½ËËËÌÌÌÏÏÏÐÐÐÑÑÑÓÓÓÔÔÔÕÕÕ×××ØØØÙÙÙÛÛÛÜÜÜÞÞÞßßßâââãããäääåååæææçççèèèéééêêêëëëìììíííîîîïïïðððñññòòòóóóôôôõõõööö÷÷÷øøøùùùúúúûûûüüüýýýþþþÿÿÿ½¼Á½¼Á½¼Á½¼Á½¼Á½¼Á½¼Á½¼Á½¼Á½¼Á½¼Á½¼Á½¼Á½¼Á½¼Á½¼Á½¼Á½¼Á!ù ?, ¸ þÀ•*…2‘DžM¦2‰F¤’éÉeóy•j«Pìtkf©\óÜ=“Ã^tYüMÓåp7[]ŸÇßmkv{w€|x}y‚~zƒŽŒ‹Š‰ˆ‡†…„“–™œ’•˜›‘”—𣩢¨¡§ ¦Ÿ¥ž¤ª®²¶­±µ¬°´«¯³·¼Á¹¾Ã»À¸½Âº¿ÄËÅÌÆÍÇÎÈÏÉÐÊÑÞÝàÜâÛäÚæÙèØê×ìÖîÕðÔòÓôÒößãçëïó÷áåéÚÅ«‡à¾þòäGðŸ>ý >d˜Ð Ć Ft¸¡ÄŽ3^¬8Ñ#G-Rüˆ’$È”%Cª4)råÉ‘,qÞ´Y“æþL™1a¾tÙ2'ÏŸB‹îô”¨Îž@‡e*uiT¥P“>EêôhÓ©W·~µªÕkÕ¬]©bå ¶¬Z±gÙ’MÖìÚ±hÛÒu[÷­]¸wãâ•›w®ÞÆ^L¸ñàÇ‚#ž ¸òßË~3÷ÝÌ·óÞψC¦Œ™3hÅŽ%[Öì9tjÒ¬O‹V]º5êÑ«M»Æ][öëܶgÃÖ}›vìÝÆ‰ î›÷ñâÃÿî*i¥˜zJj§£r*ꦡj j¦Ÿ–šj«±¢Ê*¬§®úª©ªº*ë­¼Òš«¯¶î:+®½Öªë¯Æ{l°È ›ì°Ê»l±Ìf‹í¶×vkí·Õ†Kí¸Ó–+í¹þѦ íºÏ¶ëì»ÍÆ«­·âš«®»òr .¹è² ï¼ûÚëo¾ôò{ï¿úÖÛ/¾+|0Á/ŒpÁ3œ°Á7Œ±ÅK ±Ã_\ñÄ?¬ñÈoL2È—rÇ&‹ìñÉ3Ë3Ì/»Ü2Ë+«œ2Ê4߬sÏ@Ûœ3Ï?׌óÎ>}tÓF3]ôÒD+=tÒB#í´ÔVkuÕYCM5ÖOO}õÖ`—ݵØgM6×a›íõØh¿6Üjǽ¶ÜlÏÝ6Ýn×-xà„nøßˆû­xߌóíøÞë-yÞ”ãmùݘۭùà‡/þøä—o^xâG^y朓þùé¢w^:è¨î¹þé¡§>;ì­«N{쮯^»ì¯³n{ð¿÷¾{î· ¼ï¼ëŽûðÌ#O|óÉï¼òÆ?¿üñÐs¿½öÙc½õÕS?½ôÑwþøæ§ÿ½øå£ï}øäŸ¯>üö¿_¿ûô·??ûò[_üî·¿ÿ Pþ`þú@üñ€L  ¸@"J*HÆlñáš`Á „P„ È@DHB˜Ð(T! 3è¦p…#¤á 9  `†mà¡Âöð‡9DGÃ#‘Lì€4€D.ñPž8,j‘‹XDᓸDt€‡à"š˜F2Bq<,€þUÁ2z ‹rtãÖˆG"º0ØÀ 0ÜààÀ0Ç"’`¤9@BR’V8d%É9A“–ä<©ÄGв‘¥Ü$:0J2ÖЋ ð£ a)KÀQ…ÔäaˆËÒ…»äÀf¨‚C¾‹Ãô¥17Ùdæp™€l&1QP‚ˆ kd IXÍJfs›ì&6= Ív°Þ$'8S`t޳œ¾lg:áyÎt6œ*§-=pÏm×XàÏ›'5‚$Ôœádh@Pˆ¦ ¥¨BPɉV4‰m¨FsHC(Š´ÓĨlþ ”’”šÖd©K'Y„ƒ¶tšò¬dfJÇšŽ@§<Ý 0C°Ói.SE%é/¡( ”ˆ5ážJÆ¨Š€Tµ"F€ÕÖ±š\ÍjÛ Å ˆµ”Ý4«WÑŠNµú±›øèi\@®Ž¬ë]×ycÚU¬†1,2 3,4')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2 3,4')):0 SRID=4326;LINESTRING(1 2,3 4) libspatialite-4.3.0a/test/sql_stmt_tests/dimension1.testcase0000664000175000017500000000037712544707704021323 00000000000000dimension1 - POINT :memory: #use in-memory database SELECT Dimension(GeomFromText("POINT(-71.1043443253471 42.315067601582900)")); 1 # rows (not including the header row) 1 # columns Dimension(GeomFromText("POINT(-71.1043443253471 42.315067601582900)")) 0libspatialite-4.3.0a/test/sql_stmt_tests/numgeometries6.testcase0000664000175000017500000000047212544707704022222 00000000000000numgeometries - multipolygon :memory: #use in-memory database SELECT NumGeometries(GeomFromText("MULTIPOLYGON(((1 2, 3 4, 5 0, 1 2)),((0 0, 1 0, 1 1, 0 1, 0 0)))")) 1 # rows (not including the header row) 1 # columns NumGeometries(GeomFromText("MULTIPOLYGON(((1 2, 3 4, 5 0, 1 2)),((0 0, 1 0, 1 1, 0 1, 0 0)))")) 2libspatialite-4.3.0a/test/sql_stmt_tests/setendpoint3.testcase0000664000175000017500000000026712544707704021672 00000000000000ST_SetEndtPoint() - DOUBLE line :memory: #use in-memory database SELECT ST_SetEndPoint(1.5, NULL) 1 # rows (not including the header row) 1 # columns ST_SetEndPoint(1.5, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/dimension6.testcase0000664000175000017500000000043712544707704021325 00000000000000dimension6 - POLYGON :memory: #use in-memory database SELECT Dimension(PolygonFromText("POLYGON((-71 42, -70 41, -70 42, -70 42, -71 42))", 4326)); 1 # rows (not including the header row) 1 # columns Dimension(PolygonFromText("POLYGON((-71 42, -70 41, -70 42, -70 42, -71 42))", 4326)) 2libspatialite-4.3.0a/test/sql_stmt_tests/sridprimem1.testcase0000664000175000017500000000027412544707704021505 00000000000000SridGetPrimeMeridian() - NULL SRID :memory: #use in-memory database SELECT SridGetPrimeMeridian(NULL) 1 # rows (not including the header row) 1 # columns SridGetPrimeMeridian(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmtrans1.testcase0000664000175000017500000000076012544707704021163 00000000000000ATM_Translate() - valid 2d (int) :memory: #use in-memory database SELECT Hex(ATM_Translate(ATM_Create(), 1, 2)) 1 # rows (not including the header row) 1 # columns Hex(ATM_Translate(ATM_Create(), 1, 2)) 0001000000000000F03F3A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A000000000000F03F3A00000000000000003A00000000000000403A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/sridisprojected1.testcase0000664000175000017500000000025512544707704022526 00000000000000SridIsProjected() - NULL SRID :memory: #use in-memory database SELECT SridIsProjected(NULL) 1 # rows (not including the header row) 1 # columns SridIsProjected(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collect42.testcase0000664000175000017500000000131312544707704021037 00000000000000collect - PolygonZ, PolygonM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONZ((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONM((4 5 4, 1 2 5, 4 2 3, 4 5 4),(2 3 1, 3 4 2, 3 3 3, 2 3 1))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONZ((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONM((4 5 4, 1 2 5, 4 2 3, 4 5 4),(2 3 1, 3 4 2, 3 3 3, 2 3 1))"))) MULTIPOLYGON ZM(((1 2 4 0, 3 4 2 0, 3 2 3 0, 1 2 4 0), (1.5 2.5 4 0, 2.5 3.5 3 0, 2.5 2.3 3 0, 1.5 2.5 4 0)), ((4 5 0 4, 1 2 0 5, 4 2 0 3, 4 5 0 4), (2 3 0 1, 3 4 0 2, 3 3 0 3, 2 3 0 1))) libspatialite-4.3.0a/test/sql_stmt_tests/locatemeasure15.testcase0000664000175000017500000000075312544707704022252 00000000000000ST_Locate_Between_Measures - MultiPointZM :memory: #use in-memory database SELECT AsText(ST_Locate_Between_Measures(GeomFromText('MULTIPOINTZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.5)'), 2, 3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Locate_Between_Measures(GeomFromText('MULTIPOINTZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.5)'), 2, 3)) MULTIPOINT ZM(0 1 100 2.1, 2 1 102 2.1, 3 0 103 2.2, 5 0 105 2.5) libspatialite-4.3.0a/test/sql_stmt_tests/makepointzm-null7.testcase0000664000175000017500000000044412544707704022645 00000000000000makepointzm-null7 :memory: #use in-memory database SELECT AsWkt(MakePointZM(-71.1043443253471, 42.3150676015829, 0.0038723129645, 12.6389), 4.1); 1 # rows (not including the header row) 1 # columns AsWkt(MakePointZM(-71.1043443253471, 42.3150676015829, 0.0038723129645, 12.6389), 4.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/emptyfile.txt0000664000175000017500000000000012544707704020236 00000000000000libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext44.testcase0000664000175000017500000000114512544707704022137 00000000000000geomfromtext44 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(GEOMETRYCOLLECTIONZM(POINTZM(0 0 9 7), LINESTRINGZM(1 1 9 7, 2 2 9 7)), GEOMETRYCOLLECTIONZM(POINTZM(3 3 9 7), LINESTRINGZM(4 4 9 7, 5 5 9 7)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZM(GEOMETRYCOLLECTIONZM(POINTZM(0 0 9 7), LINESTRINGZM(1 1 9 7, 2 2 9 7)), GEOMETRYCOLLECTIONZM(POINTZM(3 3 9 7), LINESTRINGZM(4 4 9 7, 5 5 9 7)))')); GEOMETRYCOLLECTION ZM(POINT ZM(0 0 9 7), POINT ZM(3 3 9 7), LINESTRING ZM(1 1 9 7, 2 2 9 7), LINESTRING ZM(4 4 9 7, 5 5 9 7)) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt23.testcase0000664000175000017500000000057412544707704021257 00000000000000fromewkt23 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOINT((0 1 9 7), (2 3 9 7), (4 5 9 7)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOINT((0 1 9 7), (2 3 9 7), (4 5 9 7)))')); GEOMETRYCOLLECTION ZM(POINT ZM(0 1 9 7), POINT ZM(2 3 9 7), POINT ZM(4 5 9 7)) libspatialite-4.3.0a/test/sql_stmt_tests/badwkt3.testcase0000664000175000017500000000042512544707704020606 00000000000000bad WKT: Polygon :memory: #use in-memory database SELECT GeomFromText("POLYGON((11.2 12.3, 11.3 12.3, 11.3 12.4, 11.2 12.4, 11.2 12.3)"); 1 # rows (not including the header row) 1 # columns GeomFromText("POLYGON((11.2 12.3, 11.3 12.3, 11.3 12.4, 11.2 12.4, 11.2 12.3)") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/wkb29.testcase0000664000175000017500000000115112544707704020202 00000000000000Hex Wkb: GeometryCollection XY (point, polygon) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))", 4326))); 0107000000020000000101000000000000000000F03F0000000000000040010300000001000000050000000000000000002440000000000000244000000000000026400000000000002440000000000000264000000000000026400000000000002440000000000000264000000000000024400000000000002440 libspatialite-4.3.0a/test/sql_stmt_tests/greatcircle-poly6.testcase0000664000175000017500000000036412544707704022604 00000000000000great circle length linestringzm :memory: SELECT GreatCircleLength(GeomFromText("LINESTRINGZM(0 0 2 3, 0 1 3 4, 0 0 2 3)", 4326)); 1 # rows 1 # column GreatCircleLength(GeomFromText("LINESTRINGZM(0 0 2 3, 0 1 3 4, 0 0 2 3)", 4326)) 222390.15:9 libspatialite-4.3.0a/test/sql_stmt_tests/makeline19.testcase0000664000175000017500000000032612544707704021206 00000000000000makeline - POINTZ :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINTZ(1 2 3)"))) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINTZ(1 2 3)"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints3.testcase0000664000175000017500000000044412544707704022552 00000000000000geometry constraints - 3 arg, POINT / LINESTRING :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("Point(1 2)", 4326), "LINESTRING", 4326) 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("Point(1 2)", 4326), "LINESTRING", 4326) 0 libspatialite-4.3.0a/test/sql_stmt_tests/collect57.testcase0000664000175000017500000000032412544707704021046 00000000000000collect - step point :memory: #use in-memory database SELECT AsText(Collect(geom)) FROM (SELECT MakePoint(1,2) as geom) dummy; 1 # rows (not including the header row) 1 # columns AsText(Collect(geom)) POINT(1 2) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc19.testcase0000664000175000017500000000033712544707704022554 00000000000000makeellipticarc19 - NULL srid :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, 30, 60, NULL); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, 30, 60, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson13.testcase0000664000175000017500000000116412544707704021744 00000000000000FromGeoJSON - polygon Z :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"Polygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[1,2,2.3],[4,5,1.2],[2,2,1.6],[1,2,2.3]],[[1.5,2.5,2],[3.5,4.5,9],[2.5,3,1],[1.5,2.5,2]]]}')); 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"Polygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[1,2,2.3],[4,5,1.2],[2,2,1.6],[1,2,2.3]],[[1.5,2.5,2],[3.5,4.5,9],[2.5,3,1],[1.5,2.5,2]]]}')):0 SRID=3003;POLYGON((1 2 2.3,4 5 1.2,2 2 1.6,1 2 2.3),(1.5 2.5 2,3.5 4.5 9,2.5 3 1,1.5 2.5 2)) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype58.testcase0000664000175000017500000000064312544707704021257 00000000000000geometrytype - GEOMETRYCOLLECTIONZM - two points :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(4 6 4 1), POINTZM(3 3 29 2))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION ZM XYZM GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/setstartpoint5.testcase0000664000175000017500000000031212544707704022252 00000000000000ST_SetStartPoint() - BLOB line :memory: #use in-memory database SELECT ST_SetStartPoint(zeroblob(4), NULL) 1 # rows (not including the header row) 1 # columns ST_SetStartPoint(zeroblob(4), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/todms7.testcase0000664000175000017500000000026312544707704020464 00000000000000todms - TEXT latitude :memory: #use in-memory database SELECT LongLatToDMS(11.5, 'alpha'); 1 # rows (not including the header row) 1 # columns LongLatToDMS(11.5, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/setpoint9.testcase0000664000175000017500000000042212544707704021202 00000000000000ST_SetPoint() - BLOB index :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), zeroblob(4), NULL) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), zeroblob(4), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry68.testcase0000664000175000017500000000073112544707704023034 00000000000000CompressGeometry - GEOMETRYCOLLECTION M (1 Polygon) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONM(POLYGONM((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONM(POLYGONM((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7)))", 4326))) GEOMETRYCOLLECTION M(POLYGON M((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7))) libspatialite-4.3.0a/test/sql_stmt_tests/wkttosql2.testcase0000664000175000017500000000025212544707704021217 00000000000000ST_WKTToSQL - blob :memory: #use in-memory database SELECT ST_WKTToSQL(zeroblob(50)) 1 # rows (not including the header row) 1 # columns ST_WKTToSQL(zeroblob(50)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/locatemeasure8.testcase0000664000175000017500000000066312544707704022174 00000000000000ST_Locate_Between_Measures - MultiPointZM - no match :memory: #use in-memory database SELECT ST_Locate_Between_Measures(GeomFromText('MULTIPOINTZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.5)'), 20.1, 30); 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures(GeomFromText('MULTIPOINTZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.5)'), 20.1, 30) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector21.testcase0000664000175000017500000000036012544707704023272 00000000000000makecircularsector21 - TEXT step :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, 30, 60, 4326, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, 30, 60, 4326, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml2.testcase0000664000175000017500000000015212544707704021645 00000000000000From KML - bad text :memory: SELECT GeomFromKML("Hell0!") 1 # rows 1 # column GeomFromKML("Hell0!") (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/makecircle9.testcase0000664000175000017500000000027312544707704021440 00000000000000makecircle9 - BLOB radius :memory: #use in-memory database SELECT MakeCircle(0, 0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeCircle(0, 0, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry44.testcase0000664000175000017500000000105712544707704023030 00000000000000CompressGeometry - MULTIPOLYGON M :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOLYGONM(((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7)), ((15 15 5, 16 15 6, 16 16 7, 15 16 8, 15 15 5)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOLYGONM(((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7)), ((15 15 5, 16 15 6, 16 16 7, 15 16 8, 15 15 5)))", 4326))) MULTIPOLYGON M(((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7)), ((15 15 5, 16 15 6, 16 16 7, 15 16 8, 15 15 5))) libspatialite-4.3.0a/test/sql_stmt_tests/assvg18.testcase0000664000175000017500000000047312544707704020546 00000000000000assvg - relative/absolute Linestring XY :memory: #use in-memory database SELECT assvg(geom, 1) AS rel, assvg(geom, 0) AS abs FROM (SELECT GeomFromText("LINESTRING(1 2, 4 3, 5 6, 8 7)", 4326) AS geom) dummy; 1 # rows (not including the header row) 2 # columns rel abs M 1 -2 l 3 -1 1 -3 3 -1 M 1 -2 L 4 -3 5 -6 8 -7 libspatialite-4.3.0a/test/sql_stmt_tests/wkb26.testcase0000664000175000017500000000206012544707704020177 00000000000000Hex Wkb: GeometryCollection XYZ (2 polygons) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(POLYGONZ((10 10 100, 11 10 101, 11 11 102, 10 11 103, 10 10 100)), POLYGONZ((15 15 100, 16 15 101, 16 16 102, 15 16 103, 15 15 100)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(POLYGONZ((10 10 100, 11 10 101, 11 11 102, 10 11 103, 10 10 100)), POLYGONZ((15 15 100, 16 15 101, 16 16 102, 15 16 103, 15 15 100)))", 4326))); 01EF0300000200000001EB0300000100000005000000000000000000244000000000000024400000000000005940000000000000264000000000000024400000000000405940000000000000264000000000000026400000000000805940000000000000244000000000000026400000000000C0594000000000000024400000000000002440000000000000594001EB03000001000000050000000000000000002E400000000000002E40000000000000594000000000000030400000000000002E4000000000004059400000000000003040000000000000304000000000008059400000000000002E4000000000000030400000000000C059400000000000002E400000000000002E400000000000005940 libspatialite-4.3.0a/test/sql_stmt_tests/dirfrompath1.testcase0000664000175000017500000000024712544707704021651 00000000000000DirNameFromPath - NULL :memory: #use in-memory database SELECT DirNameFromPath(NULL); 1 # rows (not including the header row) 1 # columns DirNameFromPath(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepointzm-null4.testcase0000664000175000017500000000042412544707704022640 00000000000000makepointzm-null4 :memory: #use in-memory database SELECT AsText(MakePointZM("hello", 42.3150676015829, 0.0038723129645, 12.6389, 4326)); 1 # rows (not including the header row) 1 # columns AsText(MakePointZM("hello", 42.3150676015829, 0.0038723129645, 12.6389, 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/translate12.testcase0000664000175000017500000000071412544707704021410 00000000000000translate - Polygon XY :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 5, 6 5, 6 6, 5 6, 5 5))"), 1.4, 3.9, 5.3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 5, 6 5, 6 6, 5 6, 5 5))"), 1.4, 3.9, 5.3)) POLYGON((1.4 3.9, 11.4 3.9, 11.4 13.9, 1.4 13.9, 1.4 3.9), (6.4 8.9, 7.4 8.9, 7.4 9.9, 6.4 9.9, 6.4 8.9)) libspatialite-4.3.0a/test/sql_stmt_tests/atmisinvert4.testcase0000664000175000017500000000036412544707704021702 00000000000000ATM_IsInvertible() - not invertible :memory: #use in-memory database SELECT ATM_IsInvertible(ATM_Create(1,2,3,4,5,6,7,8,9,10,11,12)) 1 # rows (not including the header row) 1 # columns ATM_IsInvertible(ATM_Create(1,2,3,4,5,6,7,8,9,10,11,12)) 0 libspatialite-4.3.0a/test/sql_stmt_tests/ndims1.testcase0000664000175000017500000000036312544707704020443 00000000000000Coord Dimensions - bad blob :memory: #use in-memory database SELECT CoordDimension(geom), ST_NDims(geom) FROM (SELECT zeroblob(99) AS geom); 1 # rows (not including the header row) 2 # columns CoordDimension(geom) ST_NDims(geom) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml55.testcase0000664000175000017500000000162512544707704021067 00000000000000FromGML - MultiLinestring v3 3D (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1 2 10 3 4 11 5 6 137 8 13 9 10 13')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1 2 10 3 4 11 5 6 137 8 13 9 10 13')):0 SRID=4326;MULTILINESTRING((1 2 10,3 4 11,5 6 13),(7 8 13,9 10 13)) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull2.testcase0000664000175000017500000000025312544707704021321 00000000000000ForceAsNull() - INTEGER/TEXT :memory: #use in-memory database SELECT ForceAsNull(1, 'alpha') 1 # rows (not including the header row) 1 # columns ForceAsNull(1, 'alpha') 1 libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude10.testcase0000664000175000017500000000072412544707704022442 00000000000000shiftlongitude - positive and negative longitude linestringzm :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("LINESTRINGZM(-170 0 1 -2, -175 2 2.4 -4, -179 4 3.2 -5, 175.3 5 4.7 -9)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("LINESTRINGZM(-170 0 1 -2, -175 2 2.4 -4, -179 4 3.2 -5, 175.3 5 4.7 -9)", 4326))) LINESTRING ZM(190 0 1 -2, 185 2 2.4 -4, 181 4 3.2 -5, 175.3 5 4.7 -9) libspatialite-4.3.0a/test/sql_stmt_tests/sridspheroid5.testcase0000664000175000017500000000027512544707704022036 00000000000000SridGetSpheroid() - BLOB SRID :memory: #use in-memory database SELECT SridGetSpheroid(zeroblob(10)) 1 # rows (not including the header row) 1 # columns SridGetSpheroid(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmtrans9.testcase0000664000175000017500000000033612544707704021172 00000000000000ATM_Translate() - 3d invalid 3rd arg :memory: #use in-memory database SELECT ATM_Translate(ATM_Create(), 1.0, 2.0, 'a') 1 # rows (not including the header row) 1 # columns ATM_Translate(ATM_Create(), 1.0, 2.0, 'a') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttoint7.testcase0000664000175000017500000000034712544707704021351 00000000000000CastToInteger() - DOUBLE :memory: #use in-memory database SELECT CastToInteger(123.4), TypeOf(CastToInteger(123.4)) 1 # rows (not including the header row) 2 # columns CastToInteger(123.4) TypeOf(CastToInteger(123.4)) 123 integer libspatialite-4.3.0a/test/sql_stmt_tests/wkb19.testcase0000664000175000017500000000116512544707704020206 00000000000000Hex Wkb: GeometryCollection XYM (2 lines) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(1.2 3.4 12, 5.6 7.8 13), LINESTRINGM(5 6 11, 7 8 12))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(1.2 3.4 12, 5.6 7.8 13), LINESTRINGM(5 6 11, 7 8 12))", 4326))); 01D70700000200000001D207000002000000333333333333F33F3333333333330B40000000000000284066666666666616403333333333331F400000000000002A4001D2070000020000000000000000001440000000000000184000000000000026400000000000001C4000000000000020400000000000002840 libspatialite-4.3.0a/test/sql_stmt_tests/ring10.testcase0000664000175000017500000000045512544707704020352 00000000000000NumInteriorRings - Simple Polygon :memory: #use in-memory database SELECT NumInteriorRings(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")); 1 # rows (not including the header row) 1 # columns NumInteriorRings(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")) 0 libspatialite-4.3.0a/test/sql_stmt_tests/rotatecoords4.testcase0000664000175000017500000000136312544707704022045 00000000000000rotate coords - LINESTRING Z :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("LINESTRINGZ(0 0 2, 1 1 3)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) LINESTRING Z(0 0 2, 1 1 3) LINESTRING Z(0 0 2, 1 -1 3) LINESTRING Z(0 0 2, -1 -1 3) LINESTRING Z(0 0 2, -1 1 3) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints4.testcase0000664000175000017500000000044412544707704022553 00000000000000geometry constraints - 3 arg, POINT / MULTIPOINT :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("Point(1 2)", 4326), "MULTIPOINT", 4326) 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("Point(1 2)", 4326), "MULTIPOINT", 4326) 0 libspatialite-4.3.0a/test/sql_stmt_tests/scalecoords11.testcase0000664000175000017500000000213312544707704021710 00000000000000scale coords - POLYGONZ with inner ring :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("POLYGONZ((0 0 1, 0 4 1, 4 4 1, 4 0 1, 0 0 1),(1 2 1, 1 3 1, 2 3 1, 2 2 1, 1 2 1))") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) POLYGON Z((0 0 1, 0 0 1, 0 0 1, 0 0 1, 0 0 1), (0 0 1, 0 0 1, 0 0 1, 0 0 1, 0 0 1)) POLYGON Z((0 0 1, 0 0 1, 0 0 1, 0 0 1, 0 0 1), (0 0 1, 0 0 1, 0 0 1, 0 0 1, 0 0 1)) POLYGON Z((0 0 1, 0 12 1, 8 12 1, 8 0 1, 0 0 1), (2 6 1, 2 9 1, 4 9 1, 4 6 1, 2 6 1)) POLYGON Z((0 0 1, 0 -4 1, 4 -4 1, 4 0 1, 0 0 1), (1 -2 1, 1 -3 1, 2 -3 1, 2 -2 1, 1 -2 1)) (NULL) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttopoint8.testcase0000664000175000017500000000051512544707704021706 00000000000000casttopoint - Geometry collection, point plus polygon :memory: #use in-memory database SELECT CastToPoint(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),POINT(1 2))")) 1 # rows (not including the header row) 1 # columns CastToPoint(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),POINT(1 2))")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/expand4.testcase0000664000175000017500000000045012544707704020610 00000000000000Expand - Polygon :memory: #use in-memory database SELECT AsText(ST_Expand(GeomFromText("POLYGON((0 1, 1 0, 2 1, 1 2, 0 1))"), 1)) 1 # rows (not including the header row) 1 # columns AsText(ST_Expand(GeomFromText("POLYGON((0 1, 1 0, 2 1, 1 2, 0 1))"), 1)) POLYGON((-1 -1, 3 -1, 3 3, -1 3, -1 -1)) libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson21.testcase0000664000175000017500000000100112544707704021731 00000000000000FromGeoJSON - multilinestring, SRID one point :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"MultiLineString","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[-3,2,4,25],"coordinates":[[[1,2],[4,6]],[[2,3]]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"MultiLineString","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[-3,2,4,25],"coordinates":[[[1,2],[4,6]],[[2,3]]]}')):0 (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry15.testcase0000664000175000017500000000102112544707704023015 00000000000000CompressGeometry - MULTILINESTRINGZM :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("MULTILINESTRINGZM((1 2 2 1, 3 4 2 1))"))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("MULTILINESTRINGZM((1 2 2 1, 3 4 2 1))"))) 000100000000000000000000F03F0000000000000040000000000000084000000000000010407CBD0B00000100000069FA4D0F0002000000000000000000F03F00000000000000400000000000000040000000000000F03F000000000000084000000000000010400000000000000040000000000000F03FFE libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc25.testcase0000664000175000017500000000037112544707704022547 00000000000000makeellipticarc25 - BLOB step :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/assvg17.testcase0000664000175000017500000000037212544707704020543 00000000000000assvg - 3 arg excessive precision :memory: #use in-memory database SELECT assvg(GeomFromText("Point(1.3759 2)", 4326), 0, 17) 1 # rows (not including the header row) 1 # columns assvg(GeomFromText("Point(1.3759 2)", 4326), 0, 17) cx="1.3759" cy="-2" libspatialite-4.3.0a/test/sql_stmt_tests/collect50.testcase0000664000175000017500000000130212544707704021034 00000000000000collect - PolygonM, PolygonM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONM((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONM((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONM((1 2 4, 3 4 2, 3 2 3, 1 2 4),(1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4))"), GeomFromText("POLYGONM((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))) MULTIPOLYGON M(((1 2 4, 3 4 2, 3 2 3, 1 2 4), (1.5 2.5 4, 2.5 3.5 3, 2.5 2.3 3, 1.5 2.5 4)), ((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2), (2 3 4, 3 4 1, 3 3 1, 2 3 4))) libspatialite-4.3.0a/test/sql_stmt_tests/casttopoly7.testcase0000664000175000017500000000055712544707704021545 00000000000000casttopoly - Geometry collection, polygon x 2 :memory: #use in-memory database SELECT CastToPolygon(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),POLYGON((0 0, 1 0, 1 1, 0 0)))")) 1 # rows (not including the header row) 1 # columns CastToPolygon(GeomFromText("GEOMETRYCOLLECTION(POLYGON((4 3, 4 1, 0 3, 4 3)),POLYGON((0 0, 1 0, 1 1, 0 0)))")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/rtreealign4.testcase0000664000175000017500000000031012544707704021460 00000000000000rtreealign - null geometry :memory: #use in-memory database SELECT RTreeAlign("notreal", 2, zeroblob(100)) 1 # rows (not including the header row) 1 # columns RTreeAlign("notreal", 2, zeroblob(100)) 1libspatialite-4.3.0a/test/sql_stmt_tests/mpointfromtext2.testcase0000664000175000017500000000050312544707704022425 00000000000000multipointfromtext2 :memory: #use in-memory database SELECT AsWkt(MPointFromText("MULTIPOINT(-75 42, -70 45, -70 42, -70 42, -75 42)", 4326)) 1 # rows (not including the header row) 1 # columns AsWkt(MPointFromText("MULTIPOINT(-75 42, -70 45, -70 42, -70 42, -75 42)", 4326)) MULTIPOINT(-75 42,-70 45,-70 42,-70 42,-75 42) libspatialite-4.3.0a/test/sql_stmt_tests/mbrminmax6.testcase0000664000175000017500000000024212544707704021324 00000000000000MbrMinY- bad blob :memory: #use in-memory database SELECT MbrMinY(zeroblob(49)) 1 # rows (not including the header row) 1 # columns MbrMinY(zeroblob(49)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/checkspatialmetadata4.testcase0000664000175000017500000000032512544707704023466 00000000000000checkspatialmetadata - legacy 3.0.1 test-legacy-3.0.1.sqlite #use special legacy database (version 3.0.1) SELECT CheckSpatialMetaData() 1 # rows (not including the header row) 1 # columns CheckSpatialMetaData() 1 libspatialite-4.3.0a/test/sql_stmt_tests/pointn11.testcase0000664000175000017500000000050412544707704020716 00000000000000pointN - nasty geometry :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 1)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 1)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/maxz4.testcase0000664000175000017500000000037212544707704020313 00000000000000MaxZ - Linestring XYZ :memory: #use in-memory database SELECT ST_MaxZ(GeomFromText('LINESTRINGZ(1 2 100, 3 4 103, 5 6 101)')); 1 # rows (not including the header row) 1 # columns ST_MaxZ(GeomFromText('LINESTRINGZ(1 2 100, 3 4 103, 5 6 101)')) 103.0 libspatialite-4.3.0a/test/sql_stmt_tests/pointn1.testcase0000664000175000017500000000026212544707704020636 00000000000000pointn - text input (error) :memory: #use in-memory database SELECT PointN("hello world", 0); 1 # rows (not including the header row) 1 # columns PointN("hello world", 0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/removedupl4.testcase0000664000175000017500000000033512544707704021515 00000000000000RemoveDuplicateRows() - not existing table + transaction :memory: #use in-memory database SELECT RemoveDuplicateRows('table', 0); 1 # rows (not including the header row) 1 # columns RemoveDuplicateRows('table', 0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geojson4.testcase0000664000175000017500000000110712544707704020775 00000000000000GeoJSON MultiPolygon :memory: #use in-memory database SELECT AsGeoJSON(GeomFromText("MULTIPOLYGON(((5 5, 6 5, 6 6, 5 6, 5 5)), ((3 3, 4 3, 4 4, 3 4, 4 4)))", 4326), 2, 5); 1 # rows (not including the header row) 1 # columns AsGeoJSON(GeomFromText("MULTIPOLYGON(((5 5, 6 5, 6 6, 5 6, 5 5)), ((3 3, 4 3, 4 4, 3 4, 4 4)))", 4326), 2, 5) {"type":"MultiPolygon","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:4326"}},"bbox":[3,3,6,6],"coordinates":[[[[5,5],[6,5],[6,6],[5,6],[5,5]]],[[[3,3],[4,3],[4,4],[3,4],[4,4]]]]}:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr24.testcase0000664000175000017500000000026612544707704021055 00000000000000garsmbr - bad longitude - 7 :memory: #use in-memory database SELECT AsText(GARSMbr("-01AB14")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("-01AB14")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb24.testcase0000664000175000017500000000246612544707704021033 00000000000000fromWkb - mixed big-little-endian sub-items (1) :memory: #use in-memory database SELECT AsText(GeomFromWkb(CastToBlob('01070000000300000000000000013FF000000000000040000000000000000000000002000000020000000000000000000000000000000040140000000000004024000000000000010300000002000000050000000000000000000000000000000000000000000000000024400000000000000000000000000000244000000000000024400000000000000000000000000000244000000000000000000000000000000000050000000000000000001440000000000000144000000000000018400000000000001440000000000000184000000000000018400000000000001440000000000000184000000000000014400000000000001440', 1))); 1 # rows (not including the header row) 1 # columns AsText(GeomFromWkb(CastToBlob('01070000000300000000000000013FF000000000000040000000000000000000000002000000020000000000000000000000000000000040140000000000004024000000000000010300000002000000050000000000000000000000000000000000000000000000000024400000000000000000000000000000244000000000000024400000000000000000000000000000244000000000000000000000000000000000050000000000000000001440000000000000144000000000000018400000000000001440000000000000184000000000000018400000000000001440000000000000184000000000000014400000000000001440', 1))) GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(0 0, 5 10), POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 5, 6 5, 6 6, 5 6, 5 5))) libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints10.testcase0000664000175000017500000000036712544707704022634 00000000000000geometry constraints - 4 arg, zeroblob 4 :memory: #use in-memory database SELECT GeometryConstraints(zeroblob(4), "POINT", 4326, "XYM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(zeroblob(4), "POINT", 4326, "XYM") -1 libspatialite-4.3.0a/test/sql_stmt_tests/casttomultilinestring2.testcase0000664000175000017500000000030112544707704023771 00000000000000casttomultilinestring - nonblob :memory: #use in-memory database SELECT CastToMultiLineString("hello") 1 # rows (not including the header row) 1 # columns CastToMultiLineString("hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry66.testcase0000664000175000017500000000066112544707704023034 00000000000000CompressGeometry - GEOMETRYCOLLECTION (1 Polygon) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))", 4326))) GEOMETRYCOLLECTION(POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))) libspatialite-4.3.0a/test/sql_stmt_tests/casttoblob5.testcase0000664000175000017500000000023712544707704021471 00000000000000CastToBlob() - DOUBLE :memory: #use in-memory database SELECT CastToBlob(123.5) 1 # rows (not including the header row) 1 # columns CastToBlob(123.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/todms9.testcase0000664000175000017500000000031212544707704020461 00000000000000todms - Integer latitude :memory: #use in-memory database SELECT LongLatToDMS(-11.5, -42); 1 # rows (not including the header row) 1 # columns LongLatToDMS(-11.5, -42) 42°00′00″S 011°30′00″W libspatialite-4.3.0a/test/sql_stmt_tests/casttomultilinestring3.testcase0000664000175000017500000000054012544707704023777 00000000000000casttomultilinestring - GEOMETRYCOLLECTION - linestring :memory: #use in-memory database SELECT AsText(CastToMultiLineString(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(0 1, 2 3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiLineString(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(0 1, 2 3))"))) MULTILINESTRING((0 1, 2 3)) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt30.testcase0000664000175000017500000000116012544707704021245 00000000000000fromewkt30 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(9 9), GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)), POINT(8 8), GEOMETRYCOLLECTION(POINT(3 3), LINESTRING(4 4, 5 5)), POINT(7 7))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(9 9), GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2)), POINT(8 8), GEOMETRYCOLLECTION(POINT(3 3), LINESTRING(4 4, 5 5)), POINT(7 7))')); GEOMETRYCOLLECTION(POINT(9 9), POINT(0 0), POINT(8 8), POINT(3 3), POINT(7 7), LINESTRING(1 1, 2 2), LINESTRING(4 4, 5 5)) libspatialite-4.3.0a/test/sql_stmt_tests/ring13.testcase0000664000175000017500000000027112544707704020351 00000000000000NumInteriorRings - float input (error) :memory: #use in-memory database SELECT NumInteriorRings(3.14); 1 # rows (not including the header row) 1 # columns NumInteriorRings(3.14) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asbinary17.testcase0000664000175000017500000000205212544707704021225 00000000000000asbinary - POLYGONZM :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("POLYGONZM((0 0 0 0, 3 0 0 0,3 3 0 0, 0 3 0 0,0 0 0 0), (1 1 1 1, 1 2 1 1, 2 2 1 1, 2 1 1 1, 1 1 1 1))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("POLYGONZM((0 0 0 0, 3 0 0 0,3 3 0 0, 0 3 0 0,0 0 0 0), (1 1 1 1, 1 2 1 1, 2 2 1 1, 2 1 1 1, 1 1 1 1))", 4326))) 01BB0B000002000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000000000000000000000000000000000000000000000000000000000008400000000000000840000000000000000000000000000000000000000000000000000000000000084000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005000000000000000000F03F000000000000F03F000000000000F03F000000000000F03F000000000000F03F0000000000000040000000000000F03F000000000000F03F00000000000000400000000000000040000000000000F03F000000000000F03F0000000000000040000000000000F03F000000000000F03F000000000000F03F000000000000F03F000000000000F03F000000000000F03F000000000000F03F libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext24.testcase0000664000175000017500000000056612544707704022143 00000000000000geomfromtext24 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONM(MULTILINESTRINGM((0 1 9, 2 3 9), (4 5 9, 6 7 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONM(MULTILINESTRINGM((0 1 9, 2 3 9), (4 5 9, 6 7 9)))')); GEOMETRYCOLLECTION M(LINESTRING M(0 1 9, 2 3 9), LINESTRING M(4 5 9, 6 7 9)) libspatialite-4.3.0a/test/sql_stmt_tests/casttolinestring4.testcase0000664000175000017500000000045712544707704022734 00000000000000casttolinestring - MULTILINESTRING, 1 linestring :memory: #use in-memory database SELECT AsText(CastToLineString(GeomFromText("MULTILINESTRING((4 1, 3 4))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToLineString(GeomFromText("MULTILINESTRING((4 1, 3 4))"))) LINESTRING(4 1, 3 4) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint11.testcase0000664000175000017500000000042012544707704021206 00000000000000ST_AddPoint() - NULL index :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), NULL) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson8.testcase0000664000175000017500000000066712544707704021677 00000000000000FromGeoJSON - polygon :memory: #use in-memory database SELECT AsText(GeomFromGeoJSON('{"type":"Polygon","coordinates":[[[1,2],[4,5],[2,2],[1,2]],[[1.5,2.5],[3.5,4.5],[2.5,3],[1.5,2.5]]]}')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGeoJSON('{"type":"Polygon","coordinates":[[[1,2],[4,5],[2,2],[1,2]],[[1.5,2.5],[3.5,4.5],[2.5,3],[1.5,2.5]]]}')):0 POLYGON((1 2, 4 5, 2 2, 1 2), (1.5 2.5, 3.5 4.5, 2.5 3, 1.5 2.5)) libspatialite-4.3.0a/test/sql_stmt_tests/atmzroll5.testcase0000664000175000017500000000024712544707704021202 00000000000000ATM_ZRoll() - invalid 1st arg :memory: #use in-memory database SELECT ATM_ZRoll('a', 15) 1 # rows (not including the header row) 1 # columns ATM_ZRoll('a', 15) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/getmimetype2.testcase0000664000175000017500000000023112544707704021655 00000000000000GetMimeType - INTEGER :memory: #use in-memory database SELECT GetMimeType(1); 1 # rows (not including the header row) 1 # columns GetMimeType(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmisvalid2.testcase0000664000175000017500000000023012544707704021460 00000000000000ATM_IsValid() - double :memory: #use in-memory database SELECT ATM_IsValid(1.1) 1 # rows (not including the header row) 1 # columns ATM_IsValid(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_tests/extractmultipoint2.testcase0000664000175000017500000000025212544707704023126 00000000000000extractmultipoint - non-blob :memory: #use in-memory database SELECT ExtractMultiPoint(4) 1 # rows (not including the header row) 1 # columns ExtractMultiPoint(4) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/npoints2.testcase0000664000175000017500000000023612544707704021023 00000000000000npoints - non-blob :memory: #use in-memory database SELECT ST_NPoints("hello") 1 # rows (not including the header row) 1 # columns ST_NPoints("hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude13.testcase0000664000175000017500000000061412544707704022443 00000000000000shiftlongitude - positive and negative longitude polygon :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGON((-175 0, -176 10, 175 10, 176 0, -175 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGON((-175 0, -176 10, 175 10, 176 0, -175 0))", 4326))) POLYGON((185 0, 184 10, 175 10, 176 0, 185 0)) libspatialite-4.3.0a/test/sql_stmt_tests/srid1.testcase0000664000175000017500000000026312544707704020271 00000000000000SRID :memory: #use in-memory database SELECT SRID(GeomFromText("Point(1 2)", 4326)) 1 # rows (not including the header row) 1 # columns SRID(GeomFromText("Point(1 2)", 4326)) 4326libspatialite-4.3.0a/test/sql_stmt_tests/geodesic-len3.testcase0000664000175000017500000000033312544707704021666 00000000000000geodesic length linestringZ :memory: SELECT GeodesicLength(GeomFromText("LINESTRINGZ(0 0 4, 1 0 2, 0 0 1)", 4326)); 1 # rows 1 # column GeodesicLength(GeomFromText("LINESTRINGZ(0 0 4, 1 0 2, 0 0 1)", 4326)) 222638.98:9 libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate22.testcase0000664000175000017500000000032712544707704021361 00000000000000ATM_Create() - 2d invalid 6th arg :memory: #use in-memory database SELECT ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 'a') 1 # rows (not including the header row) 1 # columns ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 'a') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/setpoint10.testcase0000664000175000017500000000037612544707704021262 00000000000000ST_SetPoint() - NULL Point :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, NULL) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc17.testcase0000664000175000017500000000034512544707704022551 00000000000000makeellipticarc17 - BLOB stop :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, 30, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, 30, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeline28.testcase0000664000175000017500000000042412544707704021205 00000000000000makeline - MULTIPOINT (XY valid - reverse order) :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)"), 0)) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("MULTIPOINT(1 2,3 4)"), 0)) LINESTRING(3 4, 1 2) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector12.testcase0000664000175000017500000000034112544707704023272 00000000000000makeellipticsector12 - NULL start :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, NULL, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, NULL, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/dirfrompath3.testcase0000664000175000017500000000024712544707704021653 00000000000000DirNameFromPath - DOUBLE :memory: #use in-memory database SELECT DirNameFromPath(1.1); 1 # rows (not including the header row) 1 # columns DirNameFromPath(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/swapcoords1.testcase0000664000175000017500000000032212544707704021510 00000000000000swapcoords1 :memory: #use in-memory database SELECT AsText(SwapCoords(GeomFromText("POINT(1 2)"))); 1 # rows (not including the header row) 1 # columns AsText(SwapCoords(GeomFromText("POINT(1 2)"))) POINT(2 1) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml1.testcase0000664000175000017500000000013612544707704021646 00000000000000From KML - non text :memory: SELECT GeomFromKML(26) 1 # rows 1 # column GeomFromKML(26) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/todms13.testcase0000664000175000017500000000026512544707704020543 00000000000000todms - invalid negative latitude :memory: #use in-memory database SELECT LongLatToDMS(11.5, 92); 1 # rows (not including the header row) 1 # columns LongLatToDMS(11.5, 92) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype43.testcase0000664000175000017500000000062712544707704021253 00000000000000geometrytype - MULTIPOLYGONZM - one polygon :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTIPOLYGONZM(((30 20 1 2, 10 40 1 2, 45 40 1 2, 30 20 1 2)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTIPOLYGON ZM XYZM MULTIPOLYGONlibspatialite-4.3.0a/test/sql_stmt_tests/gml4.testcase0000664000175000017500000000067212544707704020116 00000000000000GML Linestring Z: no SRID :memory: #use in-memory database SELECT AsGML(3, GeomFromText("LINESTRINGZ(1 2 100, 3 4 101)")); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("LINESTRINGZ(1 2 100, 3 4 101)")) 1 2 100 3 4 101:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/swapcoords10.testcase0000664000175000017500000000075112544707704021576 00000000000000swapcoords10 :memory: #use in-memory database SELECT AsText(SwapCoords(GeomFromText("POLYGONM((10 10 1, 20 10 2, 20 20 3, 10 20 4, 10 10 1), (14 14 1, 16 14 2, 16 16 3, 14 16 4, 14 14 1))"))); 1 # rows (not including the header row) 1 # columns AsText(SwapCoords(GeomFromText("POLYGONM((10 10 1, 20 10 2, 20 20 3, 10 20 4, 10 10 1), (14 14 1, 16 14 2, 16 16 3, 14 16 4, 14 14 1))"))); POLYGON M((10 10 1, 10 20 2, 20 20 3, 20 10 4, 10 10 1), (14 14 1, 14 16 2, 16 16 3, 16 14 4, 14 14 1)) libspatialite-4.3.0a/test/sql_stmt_tests/npoints5.testcase0000664000175000017500000000064712544707704021034 00000000000000npoints - Polygon plus linestring :memory: #use in-memory database SELECT ST_NPoints(GeomFromText("GeometryCollection(POLYGON((1 2, 3 4, 5 0, 1 2), (1.6 2.1, 1.7 2.1, 1.7 2.2, 1.6 2.2, 1.6 2.1)), LINESTRING(1 3, 4 6))")) 1 # rows (not including the header row) 1 # columns ST_NPoints(GeomFromText("GeometryCollection(POLYGON((1 2, 3 4, 5 0, 1 2), (1.6 2.1, 1.7 2.1, 1.7 2.2, 1.6 2.2, 1.6 2.1)), LINESTRING(1 3, 4 6))")) 11 libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr2.testcase0000664000175000017500000000026612544707704020771 00000000000000garsmbr - bad text :memory: #use in-memory database SELECT GARSMbr("buzzys country store") 1 # rows (not including the header row) 1 # columns GARSMbr("buzzys country store") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr29.testcase0000664000175000017500000000035712544707704021063 00000000000000garsmbr - 361HN49 :memory: #use in-memory database SELECT AsText(GARSMbr("361HN49")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("361HN49")) POLYGON((0.416667 0, 0.5 0, 0.5 0.083333, 0.416667 0.083333, 0.416667 0)) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry31.testcase0000664000175000017500000000130412544707704023017 00000000000000CompressGeometry - GEOMETRYCOLLECTION Z :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(10 10 100, 11 11 101), POLYGONZ((0 0 100, 5 0 101, 5 5 102, 0 5 103, 0 0 100), (1 1 100, 2 1 101, 2 2 102, 1 2 103, 1 1 100)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(10 10 100, 11 11 101), POLYGONZ((0 0 100, 5 0 101, 5 5 102, 0 5 103, 0 0 100), (1 1 100, 2 1 101, 2 2 102, 1 2 103, 1 1 100)))", 4326))) GEOMETRYCOLLECTION Z(LINESTRING Z(10 10 100, 11 11 101), POLYGON Z((0 0 100, 5 0 101, 5 5 102, 0 5 103, 0 0 100), (1 1 100, 2 1 101, 2 2 102, 1 2 103, 1 1 100))) libspatialite-4.3.0a/test/sql_stmt_tests/sriddatum6.testcase0000664000175000017500000000024412544707704021330 00000000000000SridGetDatum() - 32632 :memory: #use in-memory database SELECT SridGetDatum(32632) 1 # rows (not including the header row) 1 # columns SridGetDatum(32632) WGS_1984 libspatialite-4.3.0a/test/sql_stmt_tests/m_cm.testcase0000664000175000017500000000023012544707704020154 00000000000000metres to centimetres :memory: #use in-memory database SELECT CvtToCm(21.00); 1 # rows (not including the header row) 1 # columns CvtToCm(21.00); 2100.0libspatialite-4.3.0a/test/sql_stmt_tests/fromgml11.testcase0000664000175000017500000000154312544707704021056 00000000000000FromGML - MultiLinestring v2 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2 3,4 5,6 7,810,10 11.3,11')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2 3,4 5,6 7,810,10 11.3,11')):0 SRID=4326;MULTILINESTRING((1 2,3 4,5 6,7 8),(10 10,11.3 11)) libspatialite-4.3.0a/test/sql_stmt_tests/ismeasured3.testcase0000664000175000017500000000031112544707704021465 00000000000000IsMeasured- Point XY :memory: #use in-memory database SELECT ST_IsMeasured(GeomFromText('POINT(1 2)')); 1 # rows (not including the header row) 1 # columns ST_IsMeasured(GeomFromText('POINT(1 2)')) 0 libspatialite-4.3.0a/test/sql_stmt_tests/casttoxym1.testcase0000664000175000017500000000025012544707704021357 00000000000000casttoxym - bad blob :memory: #use in-memory database SELECT CastToXYM(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToXYM(zeroblob(99)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull21.testcase0000664000175000017500000000025012544707704021377 00000000000000ForceAsNull() - INTEGER - mismatching :memory: #use in-memory database SELECT ForceAsNull(1, 2) 1 # rows (not including the header row) 1 # columns ForceAsNull(1, 2) 1 libspatialite-4.3.0a/test/sql_stmt_tests/ring3.testcase0000664000175000017500000000061712544707704020274 00000000000000ExteriorRing - Simple Polygon Z :memory: #use in-memory database SELECT AsText(ExteriorRing(GeomFromText("POLYGONZ((136 -35 4, 135.2 -34.5 6.5, 136 -35.2 9.4, 136 -35 4))"))); 1 # rows (not including the header row) 1 # columns AsText(ExteriorRing(GeomFromText("POLYGONZ((136 -35 4, 135.2 -34.5 6.5, 136 -35.2 9.4, 136 -35 4))"))); LINESTRING Z(136 -35 4, 135.2 -34.5 6.5, 136 -35.2 9.4, 136 -35 4) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry18.testcase0000664000175000017500000000056512544707704023034 00000000000000CompressGeometry - POINTM :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("POINTM(1 2 1)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("POINTM(1 2 1)", 4326))) 0001E6100000000000000000F03F0000000000000040000000000000F03F00000000000000407CD1070000000000000000F03F0000000000000040000000000000F03FFE libspatialite-4.3.0a/test/sql_stmt_tests/asbinary14.testcase0000664000175000017500000000142212544707704021222 00000000000000asbinary - MULTILINESTRINGZM :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTILINESTRINGZM((0 0 0 1, 3 0 1 1,3 0 2 1, 3 3 3 1), (0 0 1 2, 0 3 2 2))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTILINESTRINGZM((0 0 0 1, 3 0 1 1,3 0 2 1, 3 3 3 1), (0 0 1 2, 0 3 2 2))", 4326))) 01BD0B00000200000001BA0B000004000000000000000000000000000000000000000000000000000000000000000000F03F00000000000008400000000000000000000000000000F03F000000000000F03F000000000000084000000000000000000000000000000040000000000000F03F000000000000084000000000000008400000000000000840000000000000F03F01BA0B00000200000000000000000000000000000000000000000000000000F03F00000000000000400000000000000000000000000000084000000000000000400000000000000040 libspatialite-4.3.0a/test/sql_stmt_tests/SridFromAuthCRS3.testcase0000664000175000017500000000027612544707704022255 00000000000000SridFromAuthCRS - non-test first arg :memory: #use in-memory database SELECT SridFromAuthCRS(384, 4326) 1 # rows (not including the header row) 1 # columns SridFromAuthCRS(384, 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geometryn8.testcase0000664000175000017500000000036712544707704021355 00000000000000Geometry N - multipointM :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOINTM(1 2 4)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOINTM(1 2 4)"), 1)) POINT M(1 2 4) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype13.testcase0000664000175000017500000000062412544707704021245 00000000000000geometrytype - MULTIPOLYGON :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTIPOLYGON XY MULTIPOLYGONlibspatialite-4.3.0a/test/sql_stmt_tests/garsmbr27.testcase0000664000175000017500000000034412544707704021055 00000000000000garsmbr - 361HN37 :memory: #use in-memory database SELECT AsText(GARSMbr("361HN37")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("361HN37")) POLYGON((0 0, 0.083333 0, 0.083333 0.083333, 0 0.083333, 0 0)) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr9.testcase0000664000175000017500000000036012544707704020773 00000000000000garsmbr - 001AB3 :memory: #use in-memory database SELECT AsText(GARSMbr("001AB3")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("001AB3")) POLYGON((-180 -89.5, -179.75 -89.5, -179.75 -89.25, -180 -89.25, -180 -89.5)) libspatialite-4.3.0a/test/sql_stmt_tests/sanitizeGeometry6.testcase0000664000175000017500000000055712544707704022705 00000000000000Sanitize Geometry - POLYGON :memory: #use in-memory database SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON((-75 42, -70 39, -70 42, -70 42, -75 42))", 4326))) 1 # rows (not including the header row) 1 # columns AsEWkt(SanitizeGeometry(GeomFromText("POLYGON((-75 42, -70 39, -70 42, -70 42, -75 42))", 4326))) SRID=4326;POLYGON((-75 42,-70 39,-70 42,-75 42)) libspatialite-4.3.0a/test/sql_stmt_tests/casttotext6.testcase0000664000175000017500000000026712544707704021543 00000000000000CastToText() - INTEGER, NULL zero_pad :memory: #use in-memory database SELECT CastToText(123, NULL) 1 # rows (not including the header row) 1 # columns CastToText(123, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/clonetable13.testcase0000664000175000017500000000055712544707704021531 00000000000000CloneTable() - NULL option #9 :memory: #use in-memory database SELECT CloneTable('prefix', 'in_table', 'out_table', 1, 'opt1', 'opt2', 'opt3', 'opt4', 'opt5', 'opt6', 'opt7', 'opt8', NULL) 1 # rows (not including the header row) 1 # columns CloneTable('prefix', 'in_table', 'out_table', 1, 'opt1', 'opt2', 'opt3', 'opt4', 'opt5', 'opt6', 'opt7', 'opt8', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon17.testcase0000664000175000017500000000046612544707704021751 00000000000000makepolygon - Linestring DOUBLE interiors :memory: #use in-memory database SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), 1.5); 1 # rows (not including the header row) 1 # columns ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), 1.5); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asfgf9.testcase0000664000175000017500000000043012544707704020422 00000000000000asfgf - pointxy, 3 dim :memory: #use in-memory database SELECT Hex(AsFGF(GeomFromText("POINT(1 2)"), 3)) 1 # rows (not including the header row) 1 # columns Hex(AsFGF(GeomFromText("POINT(1 2)"), 3)) 0100000003000000000000000000F03F000000000000004000000000000000000000000000000000 libspatialite-4.3.0a/test/sql_stmt_tests/fullnamefrompath5.testcase0000664000175000017500000000033112544707704022674 00000000000000FullFileNameFromPath - ok :memory: #use in-memory database SELECT FullFileNameFromPath('/home/user/file.txt'); 1 # rows (not including the header row) 1 # columns FullFileNameFromPath('/home/user/file.txt')) file.txt libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson32.testcase0000664000175000017500000000056212544707704021746 00000000000000FromGeoJSON - invalid polygon :memory: #use in-memory database SELECT GeomFromGeoJSON('{"type":"Polygon","coordinates":[[[1,2],[4,5],[2,2],[1,2]],[[1.5,2.5],[3.5,4.5],[2.5,3],[1.5,2.5]]]'); 1 # rows (not including the header row) 1 # columns GeomFromGeoJSON('{"type":"Polygon","coordinates":[[[1,2],[4,5],[2,2],[1,2]],[[1.5,2.5],[3.5,4.5],[2.5,3],[1.5,2.5]]]'):0 (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/locatemeasure11.testcase0000664000175000017500000000050512544707704022241 00000000000000ST_Locate_Between_Measures - no M :memory: #use in-memory database SELECT ST_Locate_Between_Measures(GeomFromText('LINESTRING(0 1, 1 0, 2 1, 3 0, 4 1, 5 0)'), 20.1, 30); 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures(GeomFromText('LINESTRING(0 1, 1 0, 2 1, 3 0, 4 1, 5 0)'), 20.1, 30) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttotext3.testcase0000664000175000017500000000033412544707704021533 00000000000000CastToText() - TEXT :memory: #use in-memory database SELECT CastToText('alpha'), TypeOf(CastToText('alpha')) 1 # rows (not including the header row) 2 # columns CastToText('alpha') TypeOf(CastToText('alpha')) alpha text libspatialite-4.3.0a/test/sql_stmt_tests/makeline12.testcase0000664000175000017500000000051012544707704021172 00000000000000makeline12 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINTM(1 2 38.64)"), GeomFromText("POINTZM(0 0 1.3 38.5)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINTM(1 2 38.64)"), GeomFromText("POINTZM(0 0 1.3 38.5)"))) LINESTRING ZM(1 2 0 38.64, 0 0 1.3 38.5) libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat22.testcase0000664000175000017500000000076112544707704022630 00000000000000normalizelonlat- out of range negative lat polygonzm :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POLYGONZM((120 -140 5 20, 120 -150 20 30, 130 -150 20 1, 130 -140 2 8, 120 -140 5 20))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POLYGONZM((120 -140 5 20, 120 -150 20 30, 130 -150 20 1, 130 -140 2 8, 120 -140 5 20))", 4326))) POLYGON ZM((120 -40 5 20, 120 -30 20 30, 130 -30 20 1, 130 -40 2 8, 120 -40 5 20)) libspatialite-4.3.0a/test/sql_stmt_tests/buildmbr4.testcase0000664000175000017500000000040012544707704021124 00000000000000buildmbr - float args :memory: #use in-memory database SELECT AsText(BuildMbr(5.5, 6.6, 7.7, 8.8, 4326)) 1 # rows (not including the header row) 1 # columns AsText(BuildMbr(5.5, 6.6, 7.7, 8.8, 4326)) POLYGON((5.5 6.6, 7.7 6.6, 7.7 8.8, 5.5 8.8, 5.5 6.6)) libspatialite-4.3.0a/test/sql_stmt_tests/geometryn10.testcase0000664000175000017500000000037012544707704021420 00000000000000Geometry N - pointZM :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("POINTZM(1 2 4 1.6)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("POINTZM(1 2 4 1.6)"), 1)) POINT ZM(1 2 4 1.6) libspatialite-4.3.0a/test/sql_stmt_tests/makeline27.testcase0000664000175000017500000000045312544707704021206 00000000000000makeline - MULTIPOINT (XYZ valid - reverse order) :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("MULTIPOINTZ(1 2 10,3 4 11)"), 0)) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("MULTIPOINTZ(1 2 10,3 4 11)"), 0)) LINESTRING Z(3 4 11, 1 2 10) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt9.testcase0000664000175000017500000000164012544707704021176 00000000000000fromewkt9 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(8 8), MULTIPOLYGON(((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10))), POINT(7 7), MULTILINESTRING((0 1, 2 3), (4 5, 6 7)), POINT(6 6), MULTIPOINT((0 1), (2 3), (4 5)), POINT(9 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(8 8), MULTIPOLYGON(((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10))), POINT(7 7), MULTILINESTRING((0 1, 2 3), (4 5, 6 7)), POINT(6 6), MULTIPOINT((0 1), (2 3), (4 5)), POINT(9 9))')); GEOMETRYCOLLECTION(POINT(8 8), POINT(7 7), POINT(6 6), POINT(0 1), POINT(2 3), POINT(4 5), POINT(9 9), LINESTRING(0 1, 2 3), LINESTRING(4 5, 6 7), POLYGON((0 0, 5 0, 5 5, 0 5, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))) libspatialite-4.3.0a/test/sql_stmt_tests/casttopoint3.testcase0000664000175000017500000000033312544707704021677 00000000000000casttopoint - POINT :memory: #use in-memory database SELECT AsText(CastToPoint(GeomFromText("POINT(4 3)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToPoint(GeomFromText("POINT(4 3)"))) POINT(4 3) libspatialite-4.3.0a/test/sql_stmt_tests/greatcircle-badblob.testcase0000664000175000017500000000021312544707704023111 00000000000000great circle length - bad blob :memory: SELECT GreatCircleLength(zeroblob(34)); 1 # rows 1 # column GreatCircleLength(zeroblob(34)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/badGML7.testcase0000664000175000017500000000254612544707704020432 00000000000000bad GML: GeometryCollection :memory: #use in-memory database SELECT GeomFromGML('10,1011,11 12,120,0 4,0 4,4 0,4 0,01,1 2,1 2,2 1,2 1,110,1011,11 12,120,0 4,0 4,4 0,4 0,01,1 2,1 2,2 1,2 1,1-122.0822035425683,37.42228990140251,6-122,37,1.3")) 1 # rows 1 # column AsText(GeomFromKML("-122.0822035425683,37.42228990140251,6-122,37,1.3")) MULTIPOINT Z(-122.082204 37.42229 6, -122 37 1.3)libspatialite-4.3.0a/test/sql_stmt_tests/fromgml16.testcase0000664000175000017500000000254512544707704021066 00000000000000FromGML - GeometryCollection v3 (no namespaces) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('8 89 9 10 100 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 1')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('8 89 9 10 100 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 1')):0 SRID=4326;GEOMETRYCOLLECTION(POINT(8 8),LINESTRING(9 9,10 10),POLYGON((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1))) libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb1.testcase0000664000175000017500000000053112544707704020735 00000000000000fromWkb :memory: #use in-memory database SELECT Hex(GeomFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326)))) 1 # rows (not including the header row) 1 # columns Hex(GeomFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326)))) 000100000000000000000000F03F0000000000000040000000000000F03F00000000000000407C01000000000000000000F03F0000000000000040FE libspatialite-4.3.0a/test/sql_stmt_tests/casttodouble7.testcase0000664000175000017500000000034112544707704022023 00000000000000CastToDouble() - DOUBLE :memory: #use in-memory database SELECT CastToDouble(123.4), TypeOf(CastToDouble(123.4)) 1 # rows (not including the header row) 2 # columns CastToDouble(123.4) TypeOf(CastToDouble(123.4)) 123.4 real libspatialite-4.3.0a/test/sql_stmt_tests/checkdupl2.testcase0000664000175000017500000000030612544707704021271 00000000000000CheckDuplicateRows() - not existing table :memory: #use in-memory database SELECT CheckDuplicateRows('table'); 1 # rows (not including the header row) 1 # columns CheckDuplicateRows('table') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/togars12.testcase0000664000175000017500000000054112544707704020710 00000000000000togars - GeometryCollection: Point + Linestring :memory: #use in-memory database SELECT ToGARS(GeomFromText("GEOMETRYCOLLECTION(POINT(11.876910 43.461390), LINESTRING(11 43, 12 43))", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("GEOMETRYCOLLECTION(POINT(11.876910 43.461390), LINESTRING(11 43, 12 43))", 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridisgeographic2.testcase0000664000175000017500000000026412544707704022660 00000000000000SridIsGeographic() - TEXT SRID :memory: #use in-memory database SELECT SridIsGeographic('srid') 1 # rows (not including the header row) 1 # columns SridIsGeographic('srid') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ring12.testcase0000664000175000017500000000057412544707704020356 00000000000000NumInteriorRings - Polygon with 2 interior :memory: #use in-memory database SELECT NumInteriorRings(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))")); 1 # rows (not including the header row) 1 # columns NumInteriorRings(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))")) 2 libspatialite-4.3.0a/test/sql_stmt_tests/fromdms2.testcase0000664000175000017500000000033412544707704020777 00000000000000fromdms - Integer DMS expression :memory: #use in-memory database SELECT LongitudeFromDMS(1), LatitudeFromDMS(1); 1 # rows (not including the header row) 2 # columns LongitudeFromDMS(1) LatitudeFromDMS(1) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/extfrompath5.testcase0000664000175000017500000000030512544707704021672 00000000000000FileExtFromPath - ok :memory: #use in-memory database SELECT FileExtFromPath('/home/user/file.txt'); 1 # rows (not including the header row) 1 # columns FileExtFromPath('/home/user/file.txt')) txt libspatialite-4.3.0a/test/sql_stmt_tests/st_z2.testcase0000664000175000017500000000040712544707704020310 00000000000000ST_Z2 :memory: #use in-memory database SELECT Z(MakePointZ(-71.1043443253471, 42.3150676015829, 0.0038723129645, 4326)); 1 # rows (not including the header row) 1 # columns Z(MakePointZ(-71.1043443253471, 42.3150676015829, 0.0038723129645, 4326)) 0.0038723129645 libspatialite-4.3.0a/test/sql_stmt_tests/srid9.testcase0000664000175000017500000000044712544707704020305 00000000000000SRID - toxic :memory: #use in-memory database SELECT SRID(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))", 4326)) 1 # rows (not including the header row) 1 # columns SRID(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))", 4326)) 4326libspatialite-4.3.0a/test/sql_stmt_tests/dissolve13.testcase0000664000175000017500000000056212544707704021245 00000000000000dissolve - LINESTRING Z :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("LINESTRING Z(1 2 4.3, 4 1 49)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) LINESTRING Z(1 2 4.3, 4 1 49) MULTIPOINT Z(1 2 4.3, 4 1 49)libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry49.testcase0000664000175000017500000000055712544707704023041 00000000000000CompressGeometry - GEOMETRYCOLLECTION ZM (1 Point) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10))", 4326))) GEOMETRYCOLLECTION ZM(POINT ZM(1 2 100 10)) libspatialite-4.3.0a/test/sql_stmt_tests/clonetable14.testcase0000664000175000017500000000060012544707704021517 00000000000000CloneTable() - NULL option #10 :memory: #use in-memory database SELECT CloneTable('prefix', 'in_table', 'out_table', 1, 'opt1', 'opt2', 'opt3', 'opt4', 'opt5', 'opt6', 'opt7', 'opt8', 'opt9', NULL) 1 # rows (not including the header row) 1 # columns CloneTable('prefix', 'in_table', 'out_table', 1, 'opt1', 'opt2', 'opt3', 'opt4', 'opt5', 'opt6', 'opt7', 'opt8', 'opt9', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridunit1.testcase0000664000175000017500000000024112544707704021165 00000000000000SridGetUnit() - NULL SRID :memory: #use in-memory database SELECT SridGetUnit(NULL) 1 # rows (not including the header row) 1 # columns SridGetUnit(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson14.testcase0000664000175000017500000000107312544707704021744 00000000000000FromGeoJSON - polygon with SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"Polygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[1,2.3],[4,1.2],[2,1.6],[1,2.3]],[[1.5,2],[3.5,9],[2.5,1],[1.5,2]]]}')); 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"Polygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[[1,2.3],[4,1.2],[2,1.6],[1,2.3]],[[1.5,2],[3.5,9],[2.5,1],[1.5,2]]]}')):0 SRID=3003;POLYGON((1 2.3,4 1.2,2 1.6,1 2.3),(1.5 2,3.5 9,2.5 1,1.5 2)) libspatialite-4.3.0a/test/sql_stmt_tests/invalidatestats5.testcase0000664000175000017500000000033312544707704022531 00000000000000InvalidateLayerStatistics - DOUBLE, TEXT :memory: #use in-memory database SELECT InvalidateLayerStatistics(1.1, 'column'); 1 # rows (not including the header row) 1 # columns InvalidateLayerStatistics(1.1, 'column'); 0 libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson1.testcase0000664000175000017500000000040112544707704021652 00000000000000FromGeoJSON - Point :memory: #use in-memory database SELECT AsText(GeomFromGeoJSON('{"type":"Point","coordinates":[-1,1]}')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGeoJSON('{"type":"Point","coordinates":[-1,1]}')):0 POINT(-1 1) libspatialite-4.3.0a/test/sql_stmt_tests/sridunit6.testcase0000664000175000017500000000023612544707704021176 00000000000000SridGetUnit() - 32632 :memory: #use in-memory database SELECT SridGetUnit(32632) 1 # rows (not including the header row) 1 # columns SridGetUnit(32632) metre libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext28.testcase0000664000175000017500000000055012544707704022140 00000000000000geomfromtext28 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(MULTIPOINTZM(0 1 9 7, 2 3 9 7, 4 5 9 7))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZM(MULTIPOINTZM(0 1 9 7, 2 3 9 7, 4 5 9 7))')); GEOMETRYCOLLECTION ZM(POINT ZM(0 1 9 7), POINT ZM(2 3 9 7), POINT ZM(4 5 9 7)) libspatialite-4.3.0a/test/sql_stmt_tests/atmtransform3.testcase0000664000175000017500000000072612544707704022053 00000000000000ATM_Transform() - int matrix :memory: #use in-memory database SELECT ATM_Transform(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2), POLYGON((10 10, 20 10, 20 20, 10 20, 10 10), (14 14, 16 14, 16 16, 14 16, 14 14)))'), 1); 1 # rows (not including the header row) 1 # columns ATM_Transform(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2), POLYGON((10 10, 20 10, 20 20, 10 20, 10 10), (14 14, 16 14, 16 16, 14 16, 14 14)))'), 1); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate5.testcase0000664000175000017500000000110012544707704021270 00000000000000ATM_Create() - 3d valid (double) :memory: #use in-memory database SELECT Hex(ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0)) 1 # rows (not including the header row) 1 # columns Hex(ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0)) 0001000000000000F03F3A00000000000000403A00000000000008403A0000000000001C403A00000000000010403A00000000000014403A00000000000018403A00000000000026403A0000000000001C403A00000000000020403A00000000000022403A00000000000028403A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat4.testcase0000664000175000017500000000042312544707704022543 00000000000000normalizelonlat- out of range negative longitude :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(-721 2)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(-721 2)", 4326))) POINT(-1 2) libspatialite-4.3.0a/test/sql_stmt_tests/asgml2.testcase0000664000175000017500000000027012544707704020432 00000000000000asgml - bad args (broken blob, 2 arg) :memory: #use in-memory database SELECT asgml(2, zeroblob(20)); 1 # rows (not including the header row) 1 # columns asgml(2, zeroblob(20)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/isvalidrastertile6.testcase0000664000175000017500000000036112544707704023066 00000000000000IsValidRasterTile - standard NULL even-tile NEW:memory: #use in-memory database SELECT IsValidRasterTile('alpha', 0, zeroblob(4), NULL); 1 # rows (not including the header row) 1 # columns IsValidRasterTile('alpha', 0, zeroblob(4), NULL) 0 libspatialite-4.3.0a/test/sql_stmt_tests/badEWKT8.testcase0000664000175000017500000000034712544707704020563 00000000000000bad EWKT: illegal GeometryCollection :memory: #use in-memory database SELECT GeomFromEWKT("SRID=4326;GEOMETRYCOLLECTION()"); 1 # rows (not including the header row) 1 # columns GeomFromEWKT("SRID=4326;GEOMETRYCOLLECTION()") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/assvg26.testcase0000664000175000017500000000112312544707704020536 00000000000000assvg - relative/absolute GeometryCollection :memory: #use in-memory database SELECT assvg(geom, 1) AS rel, assvg(geom, 0) AS abs FROM (SELECT GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), POINT(7 8), LINESTRING(3 4, 5 6), POLYGON((71 11, 75 11, 75 15, 71 15, 71 11), (72 12, 73 12, 73 13, 72 13, 71 12)))", 4326) AS geom) dummy; 1 # rows (not including the header row) 2 # columns rel abs x="1" y="-2";x="7" y="-8";M 3 -4 l 2 -2 M 71 -11 l 4 0 0 -4 -4 0 z M 72 -12 l 1 0 0 -1 -1 0 z cx="1" cy="-2";cx="7" cy="-8";M 3 -4 L 5 -6 M 71 -11 L 75 -11 75 -15 71 -15 z M 72 -12 L 73 -12 73 -13 72 -13 z libspatialite-4.3.0a/test/sql_stmt_tests/km_m.testcase0000664000175000017500000000023112544707704020165 00000000000000kilometres to metres :memory: #use in-memory database SELECT CvtFromKm(6.76); 1 # rows (not including the header row) 1 # columns CvtFromKm(6.76); 6760.0libspatialite-4.3.0a/test/sql_stmt_tests/removepoint6.testcase0000664000175000017500000000040112544707704021676 00000000000000ST_RemovePoint() - NULL index :memory: #use in-memory database SELECT ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), NULL) 1 # rows (not including the header row) 1 # columns ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftcoords4.testcase0000664000175000017500000000027612544707704021666 00000000000000shiftcoords - text input (null) :memory: #use in-memory database SELECT ShiftCoords("shift", -1, -3); 1 # rows (not including the header row) 1 # columns ShiftCoords("shift", -1, -3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/spatialindex.testcase0000664000175000017500000000041012544707704021726 00000000000000VirtualSpatialIndex sql_stmt_tests/testdb1.sqlite SELECT ROWID FROM SpatialIndex WHERE f_table_name = 'roads' AND f_geometry_column = 'geom' AND search_frame = BuildMBR(11.215, 42.438, 11.218, 42.439); 1 # rows (not including the header row) 1 # columns rowid 26 libspatialite-4.3.0a/test/sql_stmt_tests/casttoxyzm3.testcase0000664000175000017500000000035712544707704021563 00000000000000casttoxy - POINT :memory: #use in-memory database SELECT AsText(CastToXYZM(GeomFromText("POINTZM(4 3 10 20)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYZM(GeomFromText("POINTZM(4 3 10 20)"))) POINT ZM(4 3 10 20) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry21.testcase0000664000175000017500000000062712544707704023025 00000000000000CompressGeometry - MULTIPOINTZ :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("MULTIPOINTZ(1 2 0)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("MULTIPOINTZ(1 2 0)", 4326))) 0001E6100000000000000000F03F0000000000000040000000000000F03F00000000000000407CEC0300000100000069E9030000000000000000F03F00000000000000400000000000000000FE libspatialite-4.3.0a/test/sql_stmt_tests/translate2.testcase0000664000175000017500000000035612544707704021331 00000000000000translate2 :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("POINT(1 2)"), -1, -3, -4)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("POINT(1 2)"), -1, -3, -4)) POINT(0 -1) libspatialite-4.3.0a/test/sql_stmt_tests/collect38.testcase0000664000175000017500000000065212544707704021051 00000000000000collect - LineStringZM, LineStringM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGZM(1 2 4 1, 3 4 2 2)"), GeomFromText("LINESTRINGM(4 5 1, 1 2 2, 4 2 4)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGZM(1 2 4 1, 3 4 2 2)"), GeomFromText("LINESTRINGM(4 5 1, 1 2 2, 4 2 4)"))) MULTILINESTRING ZM((1 2 4 1, 3 4 2 2), (4 5 0 1, 1 2 0 2, 4 2 0 4)) libspatialite-4.3.0a/test/sql_stmt_tests/casttotext9.testcase0000664000175000017500000000030512544707704021537 00000000000000CastToText() - INTEGER, BLOB zero_pad :memory: #use in-memory database SELECT CastToText(123, zeroblob(4)) 1 # rows (not including the header row) 1 # columns CastToText(123, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/isvalidrasterstats2.testcase0000664000175000017500000000035712544707704023270 00000000000000IsValidRasterStatistics - NULL coverage-name: 2 args NEW:memory: #use in-memory database SELECT IsValidRasterStatistics(NULL, zeroblob(4)); 1 # rows (not including the header row) 1 # columns IsValidRasterStatistics(NULL, zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_tests/swapcoords4.testcase0000664000175000017500000000052112544707704021514 00000000000000swapcoords4 :memory: #use in-memory database SELECT AsText(SwapCoords(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -36)"))); 1 # rows (not including the header row) 1 # columns AsText(SwapCoords(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -36)"))); LINESTRING(-35 136, -34.5 135.2, -35.2 136, -36 136) libspatialite-4.3.0a/test/sql_stmt_tests/sandro.jpg0000664000175000017500000005473312544707704017515 00000000000000ÿØÿàJFIF``ÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀ¼‘"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ç¦>XÂõ¨£%›‘Dù2ñÚ÷“ŽµÊ¬nÉB•pIâ¬4â5Z)xg53FŽA©”´!ŽyTÇœƤ²d-ò­!LazÓ£´1ËTèÆö¹7[`Œw¤Ú#­B%ÝÁ<ŠY®DiÏ>•Ta('ÊÉåì2i5$U3{#¶ÐM,·-?ʉ„˜úÖss‰´c¥É"²g;Øõ«2['—î9Lyiø„Ú¹!R|Ú™©>kÆ ²–*­T%¶aZ¶¯@†BzÕ\ÎŽ•Û{™Íä‚+RЖ‡yÍU–Å·ä Ö´µa€8Ç5¯B[#¶fó‚‘Á«?bÎ̸Á«_Ùûq"r{ŠŠë“ÈT)ô•ô3î-R9@^犷` çµQ‰d’RIàS§™£ùI"“Õ ®ƒ§,¯òu«–÷÷ \°ª0+±Üy5¯ºÜC‘ÔR»ÙÚZ k×xðÎsRØÜ5sƒXÚ”ÄûùÓ­U›K"çòi‘Éò2y¨f²qpjŒšÓ#d‚qïV­ï…èù—0„Ö­“ËmËN¨‰¾)‰ÅmEu`afgë\ÍÝŽÅiUO›¸¯5º“)Å3sSÔ#qåÛãvq‘Ri±|›åêk9 säõ&µW¬@£rídiù*î]xÇz®¤çµD<}Î(”HpÄcÞ²i Ëbä¡Þ,¨Þ«GpdcŸ6xÅW–æTA8ÅCo8Y¨õ¨h™&‹ÒYÆH;@­áŽ;QŽ[#?J„È$P¤/JŽG’‰ŠšSpMŽ{T…ÞåŠð7ÖMͤ…É­«‹´i²óPÎ0»†0kª.ñÔÒ*æu´ ¨O\Tr#¼›kFÒ@”޵am# ÉÐÕ2šèss,J;WS¦]4¶a;ŒV5ÛEæç‘Wôé6à¨â´OAZÆÒÇ»ïSL@7ËÖ¥Žä—œu¥*Ì+'"·+`øóz²»-Ž8ª¿h Á]°)gpÀs•¬Ô¬MúþÒû´V~Ø}(¦;ˆÙÛvj_+'ïTk.ÂqSFálsQ;n„îBA$n&˜\†À5jpÝsúUX3ç"’mîO©rýjS!òãPÉæ´ ‰[pOLzÑi²•Ø=ªühÆ>zQ4úÊç;-–âqSiöòC&ÞqZßb Á‰ëÍ>+l°çZÒÚãnÜ´[6ñŠ¡mi.HäŠ×º êÄŸzÈ‘ö6Oz‹»ÙÖ!kV–èÚ´)0›WuÍK¥ˆÛæÜ7{ÖÓˆW‡QëW{-H”ŒAv>Du楖å mÅgÝ(I²=j³]6ž•*:Ü4ðއéX7CȘ€IÉè+Z ÜÇ8éY,«8Ê’3Ö›W)½‡MÄñe³´ôëÆ,sŽ*¾™)0d ×5#ÜaË7JS¦¬Lt9¹áqu’Ç­>æm°…&­Í&÷'g5•xpÜU§¥cÜD».iï|î™V5•$r;g5¸Û€sº©¢[câ‰î.w5t6qyJ*¥¼q˜÷©ù‡Z³Œ“ t§7mL ¿½h•9ÌG+Y&`àõ¥ŽêI$Ù$÷¬åfQð˜Éšl~b§ÍšÖŠ5|ï\µX‹OM§Ì_–”l)MÛã÷¢¶~ÃgýÊ)Y󢄫·>¢…bƒW/! é:Ö8œòªr¹¡I-ËŒîZ{…òˆjŠ#$¿,`àš‡Ê2A®§ÃVðHLr(Í)G˜$Ñ”,(gž ¤eJíÇë]ÝΟl¶çå+ˆÕB,Œ¨å³3S¹O–âŸ,€ ŸuÁ¡Ë²óÒ›hF…¸V~HÅMr‰´"±QÛv2jÊÉ'²EJ³Ñ ŒnÂâ#†¦&åûÃÖ¯ùbfLô«w6 ±nt¢|‘fŽÆ<øò³×Š¥m˜[½[¸k*;yQcªŽ—E½‹vЮìw«)YaÅWiÑ2šSp%CÎ 'u¹ƒ'H@,Áö¬ûë–T*¦¯[•Ø|Ç5Ÿz#/Ô‘RÝö{• šE;æ¶ï6ø#µS‚$•1ÞèæƒšîS+J[y=5¯¤é‘\6FÀ›rw` $}*ÌWŽ–â5ÈÅi ÝÚÐèæ[uá”:V-Ö¥b±(üª‹yÌ ;›>µ]bf“ÃLŽ[n_þÒdL²}«.úô\¶Ô8céVÉO,†Šçæ9»ù=ja.ƒK©½¦Ç&Ý¡°3Öµ™OÖ±-¤ù@ç5m/Ú'Ã’Elµ*ò&º¹t!Xc5fÑÕÔe‡Ó5BîT¸ˆ>:§Îç*§¥;4³®ŠÖ9— F*½Þ…Šv‘ùÖ!½žË+š¦¾*¸‰Êh÷Y²{¿ØÓ[163éM’K‹qó ‘PZx„É026ÜÕÛˤ–2ê?TÊ(9­ñ·½ÓîuéUnm•[rõ¨ä¼hÉÁ Tqê»aÛšk]= 6r/– µ #ÁÅgÚ,ß ­x# Ãõ4›èIÛ2©ò†늅­.0ŠÖ @¡™~SÞ¯E<1Y¹rîÉmœ«¨ ‡AžõBH#–um®›R·²úW!4sy­åçƒW ©u5Œ´-Ëfˆ¼ Òéú8¾ºòúSt÷¹3¢L¤ŠÛ}Ö7QÏ=EhšZ‰»­ ›`X1üê“ÀbR9Ñ Wí"ŒÕ;‚­£šÍÕ÷¬Œã)'fsà–'qèjå¡HÈ>µ^X 1lñMÕO-È«Z›^è߃j¸>µf{•Ž3Ç5Šº„oU$0ïBË,sX§©“Zš\QU?}E^‚òïíi¶1×­W¶ÓÀ·Ök²!ó}꿆qé\Îr½Ý¥‘Á*¹§C+ÙM½IS] K D¤ãšÌÔiæ´RåZ±F}Ë«ªËuÃHÅsz Hy95b+‰-íéU¦Ÿí2cÍ6›ÔÑD£l±úÖ¬pŸJDŠ0 Ž½êʘ㊙&ÄÓl£žn9àUä²RÜcŽ´ö]Ã( 29dFÉRqV´h"‰6¤sÅ’«!U<ÕYeW“ |Õ^IÙ[ñYN<Ò¸ívT¹BòàdÕ6‰ãn2+ZÜ+Ê šY­·>v×RÒŹ«X4ûuž[¨«ãL_/*Nú“I·F}šØh¼©v®¦*ùyˆµÌH´ÖQ‡çš‚}8î-ŠèÚ@Ëå‘óæ©L£$´•Æ£c6ÎÈDyÍY}&;¦~0ý.öSŒqR¥ÉŒqÇ5§*-"!¤Â-ó¿,¼b™¢nÆÀsVÖrÙ&›[vi(«‡) Ö¡"ýÒëTص¹q÷Á­­ÊˆïJ`Û„ÁÏzRˆ8œuÉt ¬{eóo Íuwv2ÞõCNÒ˜] žù5œ)ê+Yí¬O’\ŠÊ»S½°:í.8m‘ ŽköÅ<‚냞jš³²#šÇ2ÆB„t ¡¸1ÍY•YQÀ=*Œ21›i^ôz—m ¸î­¶7\wïYÙ‚ìàw­µi)œÒ]BÑEódT=´)Ù[4³¨Çº9U!·# ~UWHDÈ'ó5&¦ÇiDçñ£Ú­Œžæ ìÓÌʽ3RÛi2Êù¬[¬q’JüÝëV Ñ ¨4œâµ*öcllœnÆi×7~]ÈÈ?…GsrÒέ÷séVÓN3¨‘²j¹Þ„Ü”Þ5Ô;•õV‚=àå}*T¶†¾| …Ð4gkdzf•JMê;ßB½î¤Œ‡æôÅG¦}Ë;íɬ-FO.r=êm*tBÉ«…8ØÒQ²ÐéšÖ7‘Ljg¨«’Y±†‘ÉaÐV'Û³ÌDäQöÉ>g5I¥¡–¬Ñš8”eÍ5-¤u *´ Ìjòƒ©´…fŒ[Ûvˆ$Ö{¦Õùy&»˜--îSçÁ5RïF‘Š`0æ¡;2ãQlröð8`Õµc c.imR?™}ÞµVêU„±ˆ‘S;=†õ5síEs?Úúš+>Y ¿5›†,‡#=3V,Ñ‹ínµ1fàrÛ‘ñé§(ó- år-”;0XÕØ8n•w™µIª—q2ž†¹Õ—»%Á£2[—Û´Œ{ÒÇlÒFOãVŸ™©¯3E€+º:-Jæ3ÚymŸæl®kL¼µž ¬À5Q†än<Ö|–¦ ̃šWBnçY3ÁoàÀæªÂË(wíX_é¨]Å…iÙÈb€©ÒM†¾ÀìOª“´ljiz“ƒÍVå·2*"¤Þ¥$-Èip½«z!¨ó:V½·Ùòàc5aîYcù[šëQM+f¤¨ÖÌT÷©$½fvp{œÖDWòÃô¥!»UrÀ‡µh£bã2<Œ2æ£Yœ0ÍU[øHÆãô¦Év€er=é—¡}ï" ‡uSkÙÛÇÖ©½üL¤(ª›ÝÙ˜°ê|²`æ§ó–D*¼W(×ÿ6 XŠûКVgB. `¹ëWá¹Äl‡8®l^*3ÍhÅ(òûœÐ ±)ó Ótð¶óînjÝÔ©Å*DÜ0&ª1%Ù“Þ\ dïŠÏ˜°ŒªŸ”õ«o2µ×'µDÌ›q…ëA­Lí©ojfŸË#©«W^he_z–ßj_Ϻ—d6àªî\sXÔvDJN,âmÅt"tö«:ЌƻzÖ•ÄP­×™€1XÚ”‚{•XŽTzSºqÐqÕܧ™åi$™ÙIcš¼–³² ¥A=“*çoêWÔ=Ó1® ž†…ÔqƒÅi¥Œf<°5NK(‘ÉàûU(@,™ º,èMtV×nmÔç"¹†…‰ èl~kEã§Z¥­‰œRØ’êI'ÀLŠjÁ(häš¶]pšêÇS·5*i»\8}M.YXw§B®`ã5«|Í;;ãð¨ÀåR|«CFôa}îÕ`¢³|¹ÍUó ã¥_¶PËó^öârX# 2 Hä1“JÖìS àÕSˆÅñŒwª’A¡f[Æ·P70üi"¾‘ø N}k:gk—ÆyøL¶ü·"¢TÕ®ÄÒݹ“ÎÈldÕ¹l û)gc¼óɬ¹î]ÜmÕ˜¥wVFÉȧ ¬T ?f‹Òгä7¥V{s*¬‹œúUØ.RN*¶ø„»K:â‹‹1Å4¬i-bHærÅR¸–V\0éZÖwA¢!ùÏcL¼HÊ€ZrvFI·¹…ˆÁ&§†É¥ƒWá±Sµ²\Þ±ü ;×<¤‘”­} ij sU~Ä·›wNy«W„Èv©ãڲ畭ÿÕ¹>¦”'}Ä“B ÛÊ=[ó®ìzÊóÌÀ篭/ïQIÉÅmõe¤ÍC=¿ÞlqU&ºFâ1ÅeÉ#–Ûšts6ñïWóueù.• Ú85E¦ensŠ›d.™ÝÍWp#$ÖéXÕóÔ÷;ª®N2ME‚¼à⥷…æo”gÚ©²’ ÊÍò-8Ç3Ÿ˜œbºMåÁtV„šlvðæ>µ.H®FrÑE²<ÿi¶yÐWUŠÂ3,©Œô¤gÏ·gŽt?frͤ¹=1ß4ø-H“ËÆMuϧlƒv*«iÁ”4k†Íé³g9si,'Œ·zu½Ë‡ÈÅtMmòmeæ³îtâ~d‹‹•¢E¼2 V`Àv§Gu±þSŸjʾÙ>^z𼋏t‘X‘Ó5¤%r%’gߎ*[›E ²îã¥VûBB¸.=Imp— ɸ ¦®@ØíòÀâµ-˜ªm=)‘©N:ŒR™$W=JièÄâ¤T¾OݱÚG=k7LRè´§ ú×DÊ%LÖ©5ŠFû°Fk%MÃ@™ãÜ;U+°Z<ôÇëSÊ©È5Fêv|„¥fÓnìÅE™Ò]²±P¹5¼2\ɹ† \ŽT/ É>• ¤Û.¶í ЍÙ%e Û‰¤¶; =kKK”°Ã OšÚ969÷ª…Œ(uìJÕ¬UdÅdêLɵefb¤œVmԥɫÏrãdÊOcÍO"ˆâ©š|"iÚ´ÚÙ°ŠèšÒåèd¤þd6ðkEvÂ^I•6u‹{míÖ˜䎕<ÖA~„âñÀÉìjI®2 >>j¡9,óÅQifuÁc¶ˆjCFÐHã"@Âq?˜¾ZŠÇK‡ ­Ç"ªncUä$™nÜ,R£Lp*ÕËÆÌ¦Õ†{â°&»i_hn*{khÁ›µ4­ª-+jhyw~†Š?·WÞŠ›•ÌÆ\l ÃóéQÚÜl Q¸-4ǧÛÅ"¶Ò:ÒŽ¤#y'ˆÇû¾µaݲ§øj…¬£ç‚*Ùic¶äesI§ÜL´—jË÷ª½ÅîÁ‚* ÞÈsÁ¥¸l)VzÖ Ÿ3¹1Šl¯ZXÈåOjªc.2ÜÔâ7Fw{Q¿åÚx5§.»%ØŽÚÜ´Ø+ÅhÉbâ0 pj¼D ß‘íQM¬ÆÂ{²Èλ-+EŠ4RÇ ïZºVˆ°Æ¥+b;HƒcesΧc¡A%s(A-¶?šOaSÚiRM?™8Ú ­¨¬âÜ·cS i³ò¶~´â&ÌÙ,#8P A&œg·Òܽ֕픎Vê.kÜ–„ÂÀ)5Ñ<³"» b#Œb²§ƒ,r ÔÞÅÅ™bÙn* 5F¶¾T»dQZ±Û7ð& 6k[‰æLÞ©HNÇ/«è«:™#]¯\ËZ\E)C㸯NŽÌÊ»séP\èAÌØ6ž >fµ¢Ï,»–X÷|¤væ¢Òõ[ ®xjíumLlÁk…û?Ùuíƒ[R«wc´ÒWGmmw…R¸+Þ®nWž½«žŽB„m?)•¡Â|¾õ´·2[l7/È@5Ã(Öš ÃphpW¶A¬Ú¸Êò§'nG¨¨ãÓüÆÎÞ*a$‘·ÊÙ†¯Y³çúV2ކr3峊5Øø¬ë˜¢BqÅoj*%]Šúç. bJ“Ï¥cÌÌÒ#7›¸Ú¡¸WvVI‰rzÓ3+a¿„U$mc&ÌsU ‘Íi³Äeº‘PÄÑdŒŽj¹InÅM44SàŽ tq,N›±óŠÏŠÑHÞµ«f‘´7PâÙŸ5ÊÒÀ$SŒUu±D%\õéVîÆ;â«ÞyBæ¥ÄÒ:®­ÄjFyíYém#€k§¹ÒÙ#GsÁâªÎ±À.Š#$‘†ÖÌ¿)ÆM*ÚO#`©Û]>‘eÄ‚iÊãÒ¶/!±ŽWo›ºW3öšÙmug$O•ëT¤–E8nk¢Õ.”LBTzV¸¸¹ «ƒJ“Т?4zQW¿²ÞŠ»ˉµ7Õ´"‘À¨ ³p Ž@Üô®täÙ¹©Ó•«Ö÷"à²Á¬xîI ’/™88õ­ÊtPÃn£ ʽêµï’" 7=«]Ü–Ãî"¦‘ÚX³Ž@¤×a+ÜHM]–x(8 ëX¦oŸkÂîCºª76NÛšlC|¡¸Åb]©I ýjìpÜm,;U[鈈ï\•FªWF=ÅÎ5Wr–Î*9ß2zf–2H­P™µ¡é¨\ª€~µêº5„vh  šÄðž›äÙù»pN+°¶ˆ/$ Ƭº4£¥Ë‘¢’1Waƒ#¥U„x©STžƒ¢€äw«Jƒo=0¸P(óךÐÅÂûR˜db—}ŠóÑÀªRÚäu­\ät#ëQ2­KE)XÊXvu«qˆÞ=¤f¤’%=zÔ[vœ â’)•$´u}È8Í_TYb*Ë´ã­KÐ>jI0£#U-‰g=©ZeJ‘‘^_âK#msæ¨ï^Ëv©,[‡&¼÷Å–{ cŠÎ2åš6Nñ9»y7Û$ƒ¨ëVЩ»V&‘rGµ—€IÅiŹ[i?JíNúœ¶µÍ›6ó„Ÿ—Ö¦vòØ¡ÐOµ_¸Nw.GZ r¼ÐÂèX}+1à2>Uxjä˜À;…[ҽĥö“X¨Ü‡î£4ÆŠÎ U¹fòÈW5ÑëºTvéæ0GPk8„ªqÚ³Öä9]‹³iÑY¼“mO½VgSØÖ߆4õžü<™Æ=+XY“{4kÜ‘2ü Su"Œ£Šë¯-#@Ò¹]a– IíQ'vD[¹ËÜG8¢dy`‘š•md•¼ÆoZÒ±!;$=¸¤»”åb{g8 ÉÀ­ˆdŽáD)ǵCoaöÂLDg¤´µ{;ìËÉ*’»Ô”îjâFÃt©š§kkl¸—w¥O¨ë¶F˜8ë\Ì·1gÝÉ4å.‘@®÷#¿Óå»Â¦y©týKó\|µ.,Ë8gQÒ´ïõ.ËDíØP¤’óob¾Õ¢¨y—?Ýj)çîá¦!àT0FDX`gšêšX¤É`;ÖT–¥åfŒàg4–ˆ§&Ë&(a]H§7FD žíXžcùÞ[ä€}kMð1S96…fˆ¥¼òI²}*·¼ŒÓ®V&$†æ«Çnžg ïYÆWÑ`NTäŒñUcs%ÃsÇ¥h}JðyÅf()vp3Ú´ƒÔq±~?5I#8‰®NòÈô®eˆáO5Îk!ƒ|ý4îËI 6ò:×Yá›å$W!»æ®·ÁùûX­e±¥?ˆõXXQíSã#¦j­¶]@Ç@+R²œ×+Z©èW’G«1FÁ…YŽ%ÀÈ« g¦A¦9 NÚvu7“··Ž »\ˆ€OAOfž6ÏJ•TcƒÅ d;HJÝÎÓV6‘Î8¥†èM&ä;r(U$ãcÊÅ8Eòü½h°›‹N9Ü3ÒnQȦ¼ƒôž„îEu&ØÚ¸HY_šínäÜ=«„ñ#c?5e}Má#ÎnÁóI÷ªŒJµ<¡.pCÊ¢‘C¦GÒ»ãðœÓÜ–ÄŠ9äUß0¶ßjÄF1¹\óZ0Üo¥;Ü›ê[ŠäÚ])ÏÊMuU»·Oœ|£¥rLË,däUÛ¢±IãŠ},niܪýÖ\Æ¢ŠÜÆàÆy<ÐeV´9ûã¥% –Vã8úW>ÌΣº&»Ý F‘±Uà‡ìÒnV¶ZÌ7\VlŒèJã+YÍXÆîÖ%}6Þå ù±š~‚mrQÎ0x¦BÛ²õ ÍáUÂ÷¨ƒkr•Ú±ÓëÄVðB ‘ŠæÖK©<ÛƒÇP Kgl]„³1gëRÞÜÆ.B…ÅRœn(«h‡Çaæ U“èÈX)üé"ñ5” œš¥¨xµÝ¶Ã÷kIY¡(ɲK;›2l^Æ›y®´Òm Ú°æ¿žõ² &™ģ¬Û»I–¢–ä²^IxøÆ­hC§Íä,1IªG™&µbµ¡ÆÓŒV‰$ ‰jѤ$8ç¥Çnå\æÊè}©‹xv•Û…¥t8ò–2hªßhoCEhV† ÍÓ¡*«UVætȉ(+'%±; <¯¸­kÆSb«’1V,–‹æ j+ØÒ93#4ö4å3õ6 Êk1e3«÷›Ÿ«°ÃŠ™YlL¬[·••wIhV[ÌóšWˆˆIÇjÊŽvŽbÃŽh„]î6ôÐïDÛvÇZâ|G*™Nœæ­Ç¬H¸éYÚ¨ócókn¤@ÂÝÍv~ M×½qCýgã^àèJ[I)ÅØÞžç¢éãÈ­Q(U<×4úµ½µ¡f‘A®}üc*¹Ul‚x¬£Χ$z8¸M¼žjQr›~SÍyÔ>,B£Ì=ûV„$‚f|SphQi¯ÛÀÀ&œnC 湨¯–_™[5v+€S­EÍ9 sp¸àÓÖïn9¬s0Nj­Å÷”¹ )ó!ÕC¨ 8p«ir­ÈÆ+ÏdñE×µ6?GlTçéVµ2”=$H¤Œâž]06ןÇãˆú°€­+?ZÜHâ¦*¹‹:ÆÄƒéU$^5%µÊOtÁCNœ(LŽõ”ÑHɹ'­q¾(€ùÔs]œË–®{]€InFk¹Ñ}¼m³\ÒG.c<ÔºÜ^UÓqÜÖlRØ®èJñ9jFÒ%çœ÷©Ë`®yœÕ”Œ²o^Õq3e¸$ËmÍk[DÌ™Qõ®~ LrîïšÝ²¼h¸íMì;›úUˆ¹…˜ž‡«Ñ[¤ GǵÕ<ŒqžÙ¨¦Ôæ‘É@zÖ êcQ6oÌÞlx­1-”FAƒT´ëÕÁ7ŠÐ“XÓ Cû̶:b²Ì’’2/b{|¶SYâhÊ6ãÍ^žìê2œ.Øýjm£|£üiF64L4éÈ~§m¶e‹(*Õ¥ºˆ‰Æ(¹·wQ·‘Z?!^Ìä¾Êä’sOHTpÙÍn=¡ H^{Õ_%waÆ)Ü9Š‘«.6­ZWe2Ó÷¬L#ö¸2Ñe"o©«¢Ílò´º¨#5>¥â›H_ìöÇv8ö®6ò爈>Õž œÝ2sÖš¾ÈµêÎâ=F9úã'Ú¬b#\Þ’® †<ÖëÛ—ñE¬L£mˆ|äõR}˜ûQEYˆò´dÄ«‘ëÖ¤BÃ÷ÀŒ «kˆ3ÏNµfVŠX*+™J\ÛÞÌÍ–å#› NJ¤˜üÛ½³Qï„Èr¨­ˆL>A#+fú–çtR†Õ\Ãóª·Ñyd×¥kÅwnŒT¨¨n^9T¼+“RÞ—D'äcIt2¯X¬åœ‘Ó5©} °"²á‰˜·éÁ·¸Øå‘I}½!9µh[Y<‡$p*]TG€:V·"+SŸ…wI^¡¡Ú¼=¸JלÙC¾áA^ÃchJ…yå(¨í¦Š»9 í§¹m¡¸›<­ü«Vöu°•úm¬£â¹_êÞø¬”´Ðêq[²EðݶIâ§Jx”äÖLšæ¤e"I•5®¥w#ÎÞ´í.â‹ÍÛi¤·!Nq] ”¥ÔÕÈ. fûËÈ®ÏÃÇvâzT(š¶’.>ZOZL„™­†ÖÜ—Ç+RÕÎ Æ;Ô:ã»qT<¦uÜNi;È›[RÄÕÒœnâ·4ÝQçm’ ÖØà ©,¦kYI úSØZHê‘‘ÜÏZ¡®EB] M³•™”çô5~þå²b@/C`·89nœ62G=jݼÞd3sŠ‚êXŒp3T·4éD^…=I–7’ëpŒ×Wid“„§ zU= Û” (ä×Kiwf¶Äq´ùì=Ìu¶ògM«…ç5,º´vჯN6ïRŠcÔž•ƒp$»˜Ë´í¡ÉØ]M/íäþᢳ>̿ݢ£žDÜ]>é¶æŸ$ÛÁÁ"³´ï™¶{ÖüZz˜÷7¥jì‘mêQ´hKíϽkÄ"ÆåzÈk':f­,®iFîé‰è]1C&w~u<0ňy¬èî m‰\ŽQ¸4dÓQ}Xœ›5­4ˆoC$ÍŠÌ»Ðම+ *ì7,œ–#Š«wtîØO=ê•¢® ýJÏnmy5“y§I"+ï[(·æÚß•6ây")Æw`¤Ó9[ `·ñFëZö;X¿Ñ#EÀ+ɬrÚ¬]>öZö[DÛd¨éý*ªìvÒ9?hÂF À úVÚ@ʹü+Ñ5Ib!±\­ÄRE!òÎÒ°NÌëI5côËyäÞÅ”÷¬¤@žZ)úšŸ27–¤†[¦MiÎÙjšEx­1ؼšî¼'bR?0ŽkÞØqÅvú[!•|èr)ShYt*kvmÁhðMmÚK j6¦? |ú¸$bY>µbŠ'ŒÉG\WKc4W*‘³ÜU˜d¦¬ZÙÆ$,ÅO5ÌÛEÛpªEJÑ©S»Å9a+Œt¤“©¦b·8Ÿ[©ÓdcÚ¼^[`Ó8¹5î>2`Ú\‡¯c›‡úšª*¯ÂRu2=8¦/Š·$%›jŽMK6–ðZù§Ö¶æå1P{™ìû˜f¶4xwK¸)"± ‰¤¸g­uÖP›hQº®k+™Mؽ(V ɘ‘.êjÞ¡yä¡‘OÌj…™:³žzÖ;»™¶Í½:$ŒÛsךµp"cƒ·$vªòÀÆ=ÈHâ³[ÏYH-NM®£gµGfØÜæ– 7Zb,›‰ëÍI™7gÔ¹¬¬}סfÞtŠ7N•ml¡–@@ÎkÄÞvíÆ¶mnP"ƒ÷‡E¾¦R…¶5£³Ž5 ª¤ÿ*Žì…·;¸,wQ„ùˆÎ*†¥t¯Xêer»2¤Xˆ'ë­¾Õ¨¬h+§Ó­âœ2ˌӥӭíe3´Œl®Ë½´*6†öЫ•ϵgIq$%’,žkBmZæàùãwn* [w·¸ qƒž ÒkPL†ÊØÜOæ\r= tI±„ ?­T¸ ª’Í–)¸Ši­…«ÔÓû$”U ŸïŠ)ò±Pm·ÔB‘Æk óCü¨M`kÍo|0pÙÈ9®“ÃV‹pA”å{ÖR\ÊéšÊÖ¹_íQDØnµ2ÜE!稼M¤¹ס¤³Óa\db°såÝ™»5rÉ´Šä L[)mç~í*›Q¿*µs;${{‘[Ó’jöQBêõb;3N±¾ŠGPÛj¬Zsj2dÚGJSbmŸËÝÈïC]G+t:A,F?•–¨]²yg"«Dç{TR–O.0Y¾•>ÎÎ÷")ÜË´PºÄ#JõXä.¨Wše¶Ôbi#ÇÏ^—§l©n8«Õ•bÚB³|®¹ª·:Ü úVäkb+ LþVn(ÙI¦qM¡ää“û9`åWšèçT'5“uÇ’Àâ“]Tœˆm`c ÏL×i§E嫚Ò"y#.ÜÕÐÛ>>\ZÒ(¦¥¹Ô²+- ÜJ‘[Q‘,ezÖeÓˆe#¦QÔ˜7²3e±V'óY7:DˆÅÕw{W@·Q¿°Gj‘6¹ìj9KŒÚzœ¤v®­óB*з´~Š1[†Ý ÍO £ fŽR¥Rå8-™@É«‘¬*P»yÛMp#ƒT£c&îZI~\qQ\0+Ú«‡ÚA¥™·O¥",qþ.—t‰“ÎkÈd_ßçëÖüTíØ óÉlL÷‘¤`ncNŽŒÚ¦±*ÚÛ¼’€,jþ©ÛD·Ç'“[qi±i‘üÙóq‘ÅsÚ­Á’aÛ·Ö­{Ò°5hv¶Þ]Ú>µÐÉp\UkXb0îJ%š(‡ÊŸv,?2ÕždÞ¦TÆGœ«}Ú»mµeR{T-{¹"5ÏÒ”j*z"ƒô¦°Ë¹ ³¢id’± qÖ²$ó#»ŒóUÿµæQµ@©\ÞK($œTK ®à‘µoy¼–P Ž´’\ûq?Z­¥Ï‹ 99ÝP^F÷[šä©¦’‹†hÝ kñó¡ÉªQ[eNZŸxœ†?-lÙqwÑšV—.ã÷ŠIŠÔ…!¸\´ûÖm¹^«»Ã#"´vŠ£g¡Zó̲ŸríY7w×7b`BÖ‡œÞsOZEXd—nMB•ö +]i·&Ѳq5¤È÷¬5µŒ>CVßgÀ œÕ6Ú±iCÄÛéI=–¾nOq™pÓLhîenp*l4QÚÿÞ¢§û ¿ßUY•ÌRñ‰++ÆsWôYgKUxó\åÈ-Xô­j‹ »FÃ8ïBIÅ¢žÆÜºŸÏ‰ylw¨Úå§_ÝÊ«:Çw1 ry«¶–œ)®xá£ÍpQVÔ[(ü¢<ϼjKñ>VÜM=¬Z9·1ô©VËd×M•¬‰r] ý?äf;±Ï­-×—$ß+å«B]. œm;¨4ßìX¡÷Gz–ˆÐªñ,ðüó¢´|;b¡ËºäЧ9H# Ó­5€¯Œü£ŠRjÂo±oÄÏšCéZ:mØ §=@¬kè_S¸Y²¨)!™£qÏÝàÒŠÒç~WѤwØ^ÔùuÏ8í\Ú_a3š%¾Ü¿JMÑ‚/Ý_œ7çYöы˰dl 9úÖEÝþæÚ¾¼Õ‹a)·c2ž¿ZIš4’Ðì-nÔ|¨Fx]®áó šóHµ‰mæ(Îr­jÛkžaÁcWÏ¡—-ÏEŠívžÕ7’·ñÒ¼òo‹uK1þêÕ›?M‚ÖTÅhrº±›¥®†®¬¯et<u­ñeœÔ3ÞkDŒ«ÔÖc3[˳÷¬ïÊl•Õ™×Cu•5~Aí\•µáÚ5¯mzªLÆtìmyªµCpK)ÇÞíQ „‘ñ@r;ÓnæV°Ð¬èyäRÂ<{ÔàÆ«’y5Ná¶Žõ œ÷ˆËóYºVŒ¥Ã¨ž ­»¸ÖM¬ÝŽkCOŽ)mJ‘óŽ•kD>cWÑ&º¸óv,(ɿ𳩼dŒÅ{.©ªG§hwçæÛ…õâz–é \Œääô§E5+Žsn6$†õ!˜'_­^’(æp “ÍqsÜJ$$±Ði7¥áŽx¯^Œ”•6jÌK›`3ÍRò]$q[2Éœu¬ÑvÐÈVA¹~•M$I’* µmçŽió2JÆDŒÔ@în˜"±©-‘ØèZP»³$‘X:ÌÛÞú0銿áÝeínö±ýßCSkæ;‹å” ‚kΚ÷Ó*˜Q•ØIw"õÏãZOp…ŒŽ*¡òç8 É¡Å^ìµ>ÆòMÛqòšê¬‚4e”z×9f© ŒÔ·¹XÝÀç°¢m5b{ Ô`q.èÇåU2þ5°Ïæm#š¥zÖì¡£À=ñYG±7èT•¥ Œž*”—³ÆøcÅlª%ÌAÓ®+:ú× œr+K4 ô4,'i4œŒU¦¹]»A®~ÚwDÚN^BÒGôäžâ±{ÌÿjŠ­†õ¢‹±ØÅ¹‡t'¥C¤2«º±Ç5³*İ8=@¬kKG7»”uéN ¡¤57àÚõûÕÐéó@°ù’°°ãQ.zw¬›û¹·•Œ¿Î­ö¢š:ÉîVgÀ“¥F>ò¯ç\„ÈË÷ˆ?ZŸÈvqºFÁ÷¬ìÓ3P]ΤÞGâ_Êí8Ú§?SXde}þÕbCöt phl,€pGç֨³ÞvòÈsIpî#ù{ÖRÔiìïn-K8~© »ÞìN 1ÉÅd[Ã$œ@5}­Å¹R&­+#Z.ÌÒXâ«Þ^lCLQ»£0ô¬Ú³=8ÏݹVÚìI8-ŒfºËyc[lñÈ®'ÚÀžÆ·¬ï G×€+{+XÅÔm‹¨Ù‰nKF0IÎEGm±¶Ì·­Z†V’fÚz ’ÎTk–óHôâ§’ÃS,Ao!`Åqžø­ë=>7`$‘T¼è”ª«UøîH#Ÿ\Ñ`çfê[Ç[P•™¨[™yqQI”c5Bç[H Sœš‰BåFm1‹säIµ‰ãŠÙ³¹Vð+Œ¼¿ŽS惎kGI¿YƒœÔ«š¹&ŽÚŒ”ÿõêÏŸ’1Ö± ulàâ§IqÆO™Œ‘©æ–àsPÎħңIB®:Þ„n -•§c)ÊSÊf,¹‚ 9ÖF*Xp3^/w(3±<šôŸC>£rþ^pEy¥Ý´°ÈVE æˆ5s:‰òܨϓIšB:ŠNÕЙƒC³H§šh¥^´Ñ/bí¤Ÿ68­x?y¨ñõ¬›h ×C§ÛyjöäWL.A<6¬¬ã´D`` Ô€´‘†nšǎµÕÙ&.v|Ɔ•­mnŽÞ¢«4€œOW r)8)n…± ú<©óDC¯Ö£‚Æv“%HÅM%ô‘ýÚlẔ¶X}^ ³ElX¶ìç֨ˣȯ•ËÛ²½Žê @ÃT’3Jž•SÂFÚÌÎpÁ,..+VÞ!5¾>ëù©ÙR^e©ðÚ´O”l§¥r}VQ{Ó–ºœÅúÎ\©v+šM—Èœø×Aqgº}¬ gKeåO0+Ÿáf“å{Zú%‚EB¶‡PbÁ°>•Y즔äf9¤³LŒãœµ*︿؟íÑQn7¥6,LË‹œ‚Šx¬ye+6sZ »˜šÍ»\J+K¥sVÖ÷ "¦3™_~*Lj¼fµ,ãs$ñZÒ‡3&NÃÃÙzÑ·p`Õ(„Öœ³m#šôb¬Œïs[yaŠ‚L &£†à3šžB¦<Õ=€ŽY› ^‘á?%ìßꫵ:„^õæör¥¥ôS:dŒW³hþ#þÓ"lF  zWŸ‹¨â´6§—ïnôïCåÚZ"`pÛy®RÿÅ7·¢>Ô5ÛN–·±çU`{ŸZâõ½”Œð)hsœŽÕâÎr½ÙèaÔ-©ÁêþÐf>¼š¢—‡y\×K}gæ@F9µÎÉÇ*ü¼çµuÑŸ2°ê«jt6F± ˜Šµ)r:Öd[R4 Fò+AbÝ`{sEHتNåHÑî&*í€)å~#'h§PsKЬ3Ò„Z’'1¼aXnÁ«V¾bÈ1Þ¡Gg€Œœv«HAƒíCÐJïsz®ÒÃ&®F꼟JÅIàTÞ{`|Ʀ÷"Q(xŒb%2½³Xšl‹B¤-t—…šE ¸®Hôðœg8ªŠ± écuJÞ`ÀqƒWtËd@ÛÊk M$€…­Ûˆ"ò{Õ¤Cb’ˆìB’sÅ]вYÉ3' t«¶>iÉ=jD(ˆÃÃ(–‘3NîÇ Ò_ÞÈü|ÌF+?\ðìWQ3*aCQ…“N× 6B;]‚F³Ú)ÆsÍrJN-3«•5cÄ5*{IYNÑYn„{W¯ëBÌŒv óýWJh ¸®šu”ŽZ´-ª9ÓÖ¤Œn"‘Ô†Áõ©í#2Lé]‘Ôå~fæhŠžl¤QŸ­Ký¬^_-WçÕ ëÂ@>U‘RØyr8fúâºiÝ»-ŽŽÊBËÉÈ#Š•Î§XZáKÄÅ‘š}Ì ÜZënÈÉngÉ€Ù¥Fã­E3M:&ÏJ”Ê.1Ò©I„çÞ®¹÷æ³îr¨žš©£]r¹æºÙǽq7UžÝë°†E{}äòEk^$È_,‡È5:¹R=j¿œë@nûªî'±yeBÁ›,0JGÊ ÕDa×"–IHè³”"÷B»%û*˜ÙUSØV=ý”Š¥œV‚\•}ÄÔÓ5C)¬e…ƒÕ*­hqÿ`OÖŠé6îŠ+ªÈ^Ò'*Œ ¨ÍVÔàÛ†ÐO¦Z ÊHCuÅdßÃ#G°6G½sÊ”áº)4E¦Ú¬È7zÖÊÛ…A8•co4*ø3É­Å aÉ"»©EX†îÊ­dç5Àˆ0N*Û;بœùœ0­š ج#Pr®*C) Œæ¡šÜ¯" ;×­CcH³çÇÔxO^‚Æs ÌÁdà6xÍqÝzÑ»iàþµh)ÆÅÂ\¬÷u¨ÿ»# Š/©Gâ¼óÁÞ2û;%† û # äô¯E’щ"!•†A•àÖ¥*o]ŽêsR2îtûy¥•_­yç‰l¤±¼-ýÛgW¥I¹+ž×lÅý› Æà *59^†ÎíXátùËHŠÍß¹®ÚÎ$1]yÅyœ¾m­àG%v·Jîô’²[#ÈH sÖ½8ÜÆ2pf³ÚÄ£}V’8qœqO¼¬'aâ©ÛÜŒ:úÖJ7U.lXG B¯Œ‘Å\[8™ EÎ+fPÁ‡¸­ˆucRà°çéµ}„çfH–ľ:b˜ýHSóŽÕ47Еê}j…èkyDÙçëSÉa{K…ÔȰ‘»cw_Zçæ"O›ž*íä¨ÈåÎFEcÉ0.§ëTÈ[š’«Í’Übºý"ÌyAÈ'½r:d~kå À®çN“ˇ§ÅR؉·±¢“-º:zqX×LËc9­)]Z"Œ•˜v™v‚¼š—«& Ú˜ž*ÑÁÒb½@<ÈØgŽÔh²oµPIÉÔjÐ |<èW<å\†’ º==?¼,mFwº-ÞÛîps\ޱ§oFãÖ»yHqÀ¬=J0T‚+–ÌÛ}Ô-ŒSãëCDµÜáØp*îµg™òz±j‚ÚÌ潬.±<êñ³9ýV3Ó8Í-”›O~µoTÃ.ìU \Sšè…ÔŒeµŽÇJÔLq€Ù'ñ®†9`¾M¤ Ø®7eL‚iÐê³[Êvë]Jkfbâ÷GM¢\’h´K׫!´÷÷º=Ä‚BR0Ã}k;Q¶X®¬wqJÖ~E-w3åàƒTnNPÕ¹j§pß-LÁêåeÖºÍ2à´J¤ñŒWß,™®I”Ó¢ú hÛš-Ä•ÍBŒÊ¥žYbA2òÞ¥I¡¸@ËÃw­Éd%>^µŸ’ ô©2æ«Ü _Ÿ˜Ð³É„ÈúU«ÕÆ×5”ìÅ>÷Ra¸¤¤6ŽŸÎŠŠÀóÏ©¢Ÿ9ž¢Ü–I [µ2[°NáÕjÅÌD¯N•ƒ$ÒY\‡ÇZÍ´ž¦–¹ª¹ŽR„ ‡µ'Î$dGãçµ,Wp\…`ÛN9¥ly¸Sž)éÐÔ|̦›¸îõ©Iù0j"@Î)ŒF އ5›JûÓÉ>´Â=©0*³*õ¨X“ÈU©"-Òª†Ç5›Ôi ÈÈ>ÕÓèÞ?Ô´˜|€VhGE~ÕÌ3 T 9¬*ÒRVf‘•^Óüq§j[c¹g˜ûðMiJRHƒÄÁÐ÷ë¼ÖFç­}3Ä·ºqýÜä§÷ñ^m\µ‰ÕN½ŽÅrïóÕ=MG¤jp4K3¹ x²ËQ€Çt‚2ÖÇÌÞ§Ùn öÎOLQAÊ –Hª––¨î æg*:T0Þ­°’3“žõÈÛë²ÆHÙúö«I©¤[©­œWBc;ò\ß#sÖ´t™Œóª¹ÈõÌ,èÄÃ¥gz±·ÈriE$T¦Ùܯ•œ±E±5ÝPH€ÉDz'×'¡ ¹[½Co\O™$úÐõ®ã¦º–uWU9S"·k›¼c<Ö¼1:•εX‚È 2¸À5Ë&Ó-¾ÎŠè,]ÇN4 !"¬Zæ7R­·&¥¶â„DU›5ZÞÕšéeϦfBûCdö­[@Œ1vx­i§'©•Ir¡×±ï°‘HÏËý+Ïà2 †P‡%z¢ÂßM˜ô%x®WO‰^-Ì»‰9ÏãYb‡†•õ´¿X×êØ Žõ­y;[JъϺ&X·…Éœ 󣹨pÚ¤'Ì' fÊùÂâ¯jWÉ<Ϊ¬6’ d“–ȯs v矈z•õýÖ ªvªLœŽ*Ýën‹§5 ˜Ës]Q^ñÊËûqPœ&´çŒvª3Ž´ä$2Þéâq‚G5Öiš‚jýžFëŒOçZú\{&VÝ‚9«¤ÛÐRî]»ã•ב֨Ê2 u¶Ÿo´£÷Ê:zŠæ¦ )4ä­ EÜÉbJÖÒØ†¬‹€C“ïZcaÅM'ï[tl¯×èx5‹p­gpz…íZ+¸ÂJç5^oô˜ HrÊx­çÜ„: •‘zóŠW>j”'šÌ¶Å.ÃÐõ¢ü0u)£šè¢\‚wsU¡s¿æ§”NAÁ¬ñ/•0úÔ^Ì ,QP}±}VAsWÌG×'¦+'P·Üjž)óƒœRL‹"í8õ¥=P£¡ÎÂÍ °)é¨É ™?0ô§ÜÄQÃ{Õ'Rd!ºÆílVŒÕí»`:{âý±hA5ÎÜ[˜ÎqÅ@¨Äô¨öÒ]ÊŽ™õ«Lp4‡[·Û÷ ®}-ÙJ—ìlGJ=¤û*5ι ãa¦ FÞ@rvÖ4–®ƒ8ªì ñÞ§ÚIn‡Êt&XŸî¸¦µ€$eïS-Ô«üGýªaÊÍG\j³·QQ-ùèÜýiÂt~¸›L5Aæm仑8ÜqJ_¡Ö€Ô8\jl3‘ŒÒÇ9\|ÕÙÏZB„T:m¦mÛ]# y­kK´B3‚ q‚RŸt÷­;)ÛMg$‘¢“g\dŽI‡~3ô­«x㦓\…¡œ0o-ÐVÜW3G3BèBV²m#¢7gDÂ$`Ô¢T0ê+ÀΜóW I]¨¬T÷©ŒdÙm[sSírJ¡A«Îÿ( ‘Ò¡¶Ð®ç9ÞW=+ªÒôUœn=Ío-îsΪŠÐ‡OÓ¤”«H1ž@®Šqtè*h`X”`T…Häô­’Q9\œ™…¬,Mx#¬´ŒZÛyj9«z|Ë‚j¡p ¯+W™Ù”#cí<Ô*W­gùr¤l»~ZÚ•2ÝEcê—Ll7cƒ\ðWÐ뾇Ÿkb(ï¤1Œf³c@ç‚sRßÏæÝ?~M$}}6Š<Êîì§z˜Lb™j  “QfÀÝIl8ü+hüF#ä8ªw *ÌÚ¥rr¸¥-»ùÖÅ’å…`Û1cÞ·í“ 9>•tØ™Óió|ƒÐ{Ö°PݹLc½hGpÑBDƒqX—2•jªš“ »óU«U[¿VlÇÎ*)üW)ìuÍò/oëU¤>\Žê[SòŠmê`ƒ]2Du*Þ 8•yÈçÚ¥·ËLüÀqI Vúv¨"cmpºÅf– 8´ŸtuªçÌ+Vätu<k2ä’jfR!ÝïE7Z*.; iu¼šÒI·G…®q•­¥ÇAšÑ‚r@§»Y‰¢ë„äŠÇŸ qµN@«³9 “Y‡—-žõ-#I¡YmWšª,°Ý*õ”¨cÚÕ}`Ldw«åRÌè,Æ:U±l¡qв¨Å?…]\¡-¸ÏJʼ° º2íPËdéYÎ Hiœ{FAÁ¦ì­›Ë ¤²­göžë™Á¢îWòÍ3M^Eæ¥6Êêvõ©å¾Ás=d+Þ¦YäìÕ¶ìÒˆ‰VF÷°hN&”ÐYÏZÑ‚$•AïRýwZ×Ù±sjc„Éã­X·-ªÛØŽ¨pj±õLûÖr¦Rfö®vïǧJî´Ïi÷PÇk} mÀÎÞkË­„M*‡Ü<×k¦øV-FÙf´™[ÕI®*ôÒWgU)ókaá«•E,JO8&µ­¬ô¸ðc¹‹ó¯6_ jä’ŽWý–«–þ˜œÉö…?S\±­É´Ý%-Ùê–âÑH 4˜­(–"¿$ŠGµy·†Øã—zýêÑŠËXÓÀ{{±:Ž«žEk uŸ¼c,*{3ÑV1·š§xî‘“Œ\í—‰]ØEp9@ÆpMI6»%ÍÀ³P0Ü’9®—ZŽŒÃØN,“irI=j¢É«±¯ïTµ›ûm2ѧÀ=–¼‰ë-¸v2uc´¤‘Â(¯4×¼H.dhmþà8'Ö™â~çW¸l1ä€+œe*rk¯ K[±Ô|±#fNMX…€Æ P,7žjxÎÁ¯nžˆó¥¸Ë×ß.=)mØt§óX± C±óT–·$eÁÁªSе9ùªœÇЉ‚nz¢º e] î"¹ÈIó?Ü´¸ÃÃ#t˜¤jK!òDd沦b $³ùSŠ‚iz¹Šsš­Ùƒæ-SsûÁWìFZ•5¨3r€*iÆø¿ ®¼-YFÜ›+¡íb62òRZ´WÌ‹Ì#ïPÝ!ã­2Úä¡*OÊÝk4ú ˜~ö23Ò¨\«*ö­/iÈéTçQ×?ZRCLÎù½è«[“ÒŠžF;•'Asü|Ê«´OƒÇj¿ ÁªSG²p@¬í­À±$…–ª9ùªÉpcuª¤|Ô1—-³Zä/Zζ늺£hD¢FÍXG,0jªš‘ZÑhŽ)¸ö¡ÜS‰Í1d„2œVMÕ±F'oZÝÏZ†h–UÚGZÎQºÎl¦¥‰¶žµ5Ô)1Ú¡QÍd•Š,´+2ôª¯g†àT¾nÑÖ”]‘ׇÊ!öhQñZ8¬Õ¹ã½YK‘ŒW-€´W#¥3g°¡%¥·¨˜Ï@ X³¹»ÓŸÌµ£Áìx4Â( ŠÊT”•˜Ôš;­âD•‡Uƒz¨æ»Í?TÓµhÃÙÜ¡b>éàŠðÒˆôªË5î“7™o#€r§¥y¸Œ wGD+@Ë4–þ’€Äz:ÖŒ" â[’8â¼cIø‘rA~<ØÏîvñ2Ì¢9·Bç Ðן,4ât)©-ÂëIŠê2²`ckL¬uYb¸;ÊûWM¿tƒvÉ5ÆêÓI¬’’Jž+·cX7-Ö¬ê oáUÍyŠu ORo- W¤ÛÌdÓnJýâ q3hìì\Œ÷«Š÷µ#kœgÙÿ†©êÆÉ®äY$G k“ñ<ŽÂ»hÎò±5»s™ÆI5$lwâ£È9§+½xl·.@ãO”Îj$É<Ñ+ü¦´¹(§9äÕy>í>FëP¿)YIÜcb??5«ËáY°Ä Í]ÎÄÛž´á ‡<œUw”ƒDÅUfæ›"ʶóšØÓÓ º²­£Ü3[ÿ žµ­="è~Çð«11 +9›åëSC.H´R%¢{Èù ޵–ÙV?ZØc¾{t¬¹ÐŽi5f4Z…üÕ Ñ‡ëU¯c*ÙéÅ2(á…>òO4úTÉÝ {¨¥Ø}h¬y˰äŸÌ>ô“®@8ªñüVÉ ƒ5[ˆ…Bùg=i…QRn Üô¦Éµb†C׊wOAjVkvSȦ‘ŠÕcÀäsUf´eä ŠN6Ê`Ô±œsMhØu )jP•¹ÍJ$Àª«JÍÅUì¡(¥$uªa“SÇ.E×ÒHA©Ò|J¦PÜŽ*“ ÜZ¤êY~ýg4,‘Áifd=jPÑÌ=Z³”mhú„–WHàýÓ^ÿ¢ßÅ­è $da¿*ùðÀs•ë]¼Hú=ø‚f" 8ÛžõÉéÄÚœìuž!>U¬¹ÏLW’ê ºSõ¯Zñ&Í@É ™Y—v+ɵX%¶ºxç]®+,~#¢½DÑœì@5ZG÷«:•ÀëTdmÍŠô$Î"dj”>MU"74&ŽwpBì7·Ö­F»W5i5ø@=*éR·-L`PÆGÒ­Ú¡b8ª‰ËñZ¶É°nª‚¹,²Ÿ*ý(ózŒS dÒª­.ÄDd*þÕ2¾áI5»`)‘‚84 —5jÞs&èØuéU±ÇÖ¥ƒ â©hÄÆ\.×Í59«—q†Œ*‚œ]u…¯0úQQgÚŠ¢L´œ5!åsTG­YFùkîh@ĉiÛ³L“ïÒÍEõb6«¾Z­©Ÿ…«LDr7=j<â”ç<ÓOZ4å$SZ} árN*ê +Ò³¢85z7â´˜™ä©$DÕû¢’0{PãØI™Ei„zÕ¹!Æxªì•›L¤ 1SÖ®ExÕ ¸¤4)5¸Ú5Ù#¸CózU9 d=Z‚9™[­]Šä0 àV¬ö&Ö*E41æ´Ñ&¢oªKnñšM1¦W'4Å8­FzÔ6…~œÕˆå`š¡ž)ÀœqT¤÷Mã#VFÍF“2žjÀIŒš`>­§ V ¥q$gæÕ-£&¤@W'5!kVÙ0€Ö”÷%–Qx* "ç4¹Ï±"ãÞ€„Ó”Uˆ” SJárX9O¥KœŒTe ´ 0qŒÕ-@§8Û%žjk„Ü•N7(ÛsÞ§á`k@E:å<ÄÍA åF:U²GZ=P–æg“E\Ø=(¬ùK9D¸eèjG¼3ÜÕ<ñMbq\Üìv͹ɡ>õ4u¥^µî2tëVâ5I:U˜MkK.ã+Tä\WcåMWœ ÖT$gJ„50Œ ´ãЬãšÁ¢Ó#9©¡”­FÝ)ªy¨Z1´lC88z92Fk9Ö”,r9®˜Jä4h¸SYy¤HÊÖÄ•Ýj¼‘ÕÝ žjc^x¤Ð&SeÀ¨ùªvYþõeÔ¢À?/Ö•Tš#¬¢ µ XóŽ*tŒc¥8(©ÀU¤1Ѧ{ U FÓø}kN.3DªN}(šM ;»•#9Å:åNqëS ƒ5‚(®Jo˜AéN—ån)QG§Z–Æ@íÎM=SzsN”Ò…c©¶·¦L \p(FT+*Øe¹­8x8*¢î!¸j*z(ÿÙlibspatialite-4.3.0a/test/sql_stmt_tests/fullnamefrompath2.testcase0000664000175000017500000000026312544707704022675 00000000000000FullFileNameFromPath - INTEGER :memory: #use in-memory database SELECT FullFileNameFromPath(1); 1 # rows (not including the header row) 1 # columns FullFileNameFromPath(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/clonetable1.testcase0000664000175000017500000000033312544707704021436 00000000000000CloneTable() - NULL db-prefix :memory: #use in-memory database SELECT CloneTable(NULL, 'in_table', 'out_table', 1) 1 # rows (not including the header row) 1 # columns CloneTable(NULL, 'in_table', 'out_table', 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/nrings2.testcase0000664000175000017500000000023312544707704020626 00000000000000nrings - non-blob :memory: #use in-memory database SELECT ST_NRings("hello") 1 # rows (not including the header row) 1 # columns ST_NRings("hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/yd_m.testcase0000664000175000017500000000021712544707704020176 00000000000000yards to metres :memory: #use in-memory database SELECT CvtFromYd(10); 1 # rows (not including the header row) 1 # columns CvtFromYd(10); 9.144libspatialite-4.3.0a/test/sql_stmt_tests/casttomulti1.testcase0000664000175000017500000000025612544707704021702 00000000000000casttomulti - bad blob :memory: #use in-memory database SELECT CastToMulti(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToMulti(zeroblob(99)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/getlayerextent13.testcase0000664000175000017500000000032712544707704022460 00000000000000GetLayerExtent - TEXT, TEXT, DOUBLE :memory: #use in-memory database SELECT GetLayerExtent('table', 'column', 1.1); 1 # rows (not including the header row) 1 # columns GetLayerExtent('table', 'column', 1.1); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridax2name3.testcase0000664000175000017500000000026612544707704021552 00000000000000SridGetAxis_2_Name() - DOUBLE SRID :memory: #use in-memory database SELECT SridGetAxis_2_Name(1.0) 1 # rows (not including the header row) 1 # columns SridGetAxis_2_Name(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon5.testcase0000664000175000017500000000027312544707704021662 00000000000000makepolygon - invalid BLOB exterior :memory: #use in-memory database SELECT MakePolygon(zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakePolygon(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr22.testcase0000664000175000017500000000041712544707704021051 00000000000000garsmbr - 001AB27 :memory: #use in-memory database SELECT AsText(GARSMbr("001AB27")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("001AB27")) POLYGON((-179.75 -89.25, -179.666667 -89.25, -179.666667 -89.166667, -179.75 -89.166667, -179.75 -89.25)) libspatialite-4.3.0a/test/sql_stmt_tests/envelope5.testcase0000664000175000017500000000024512544707704021151 00000000000000Envelope - bad blob :memory: #use in-memory database SELECT Envelope(zeroblob(28)) 1 # rows (not including the header row) 1 # columns Envelope(zeroblob(28)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry64.testcase0000664000175000017500000000065012544707704023030 00000000000000CompressGeometry - MULTIPOLYGON M (1 Polygon) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOLYGONM(((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOLYGONM(((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7)))", 4326))) MULTIPOLYGON M(((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7))) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt36.testcase0000664000175000017500000000131212544707704021252 00000000000000fromewkt36 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(POINTM(9 9 9), GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9)), POINTM(8 8 9), GEOMETRYCOLLECTIONM(POINTM(3 3 9), LINESTRINGM(4 4 9, 5 5 9)), POINTM(7 7 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(POINTM(9 9 9), GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9)), POINTM(8 8 9), GEOMETRYCOLLECTIONM(POINTM(3 3 9), LINESTRINGM(4 4 9, 5 5 9)), POINTM(7 7 9))')); GEOMETRYCOLLECTION M(POINT M(9 9 9), POINT M(0 0 9), POINT M(8 8 9), POINT M(3 3 9), POINT M(7 7 9), LINESTRING M(1 1 9, 2 2 9), LINESTRING M(4 4 9, 5 5 9)) libspatialite-4.3.0a/test/sql_stmt_tests/elemgeo3.testcase0000664000175000017500000000041512544707704020746 00000000000000ElementaryGeometries() - NULL output-table :memory: #use in-memory database SELECT ElementaryGeometries('in_table', 'geom', NULL, 'id', 'old_id'); 1 # rows (not including the header row) 1 # columns ElementaryGeometries('in_table', 'geom', NULL, 'id', 'old_id') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttodouble6.testcase0000664000175000017500000000033212544707704022022 00000000000000CastToDouble() - INTEGER :memory: #use in-memory database SELECT CastToDouble(123), TypeOf(CastToDouble(123)) 1 # rows (not including the header row) 2 # columns CastToDouble(123) TypeOf(CastToDouble(123)) 123.0 real libspatialite-4.3.0a/test/sql_stmt_tests/m_ind_ft.testcase0000664000175000017500000000024012544707704021021 00000000000000metres to Indian feet :memory: #use in-memory database SELECT CvtToIndFt(1.0); 1 # rows (not including the header row) 1 # columns CvtToIndFt(1.0); 3.2808570:9 libspatialite-4.3.0a/test/sql_stmt_tests/asgml5.testcase0000664000175000017500000000026112544707704020435 00000000000000asgml - bad args (non-blob, 3 arg) :memory: #use in-memory database SELECT asgml(2, "hello", 5); 1 # rows (not including the header row) 1 # columns asgml(2, "hello", 5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/removepoint16.testcase0000664000175000017500000000046212544707704021766 00000000000000ST_RemovePoint() - ZM :memory: #use in-memory database SELECT AsText(RemovePoint(GeomFromText('LINESTRINGZM(0 0 1 2, 1 0 2 3, 1 1 3 4)'), 1)) 1 # rows (not including the header row) 1 # columns AsText(RemovePoint(GeomFromText('LINESTRINGZM(0 0 1 2, 1 0 2 3, 1 1 3 4)'), 1)) LINESTRING ZM(0 0 1 2, 1 1 3 4) libspatialite-4.3.0a/test/sql_stmt_tests/srid7.testcase0000664000175000017500000000023712544707704020300 00000000000000SetSRID - non-geometry :memory: #use in-memory database SELECT SetSRID(100, 4326) 1 # rows (not including the header row) 1 # columns SetSRID(100, 4326) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml9.testcase0000664000175000017500000000500612544707704021657 00000000000000From KML - Geometrycollection - POLYGON with interior :memory: SELECT AsText(GeomFromKML(" -122.43193945401,37.801983684521,0 -122.431564131101,37.8020327731402,0 -122.431499536494,37.801715236748,0 -122.43187136387,37.8016634915437,0 -122.43193945401,37.801983684521,0 -122.431885303019,37.8019316061803,0 -122.431762847554,37.8019476932246,0 -122.431719843168,37.8017374462006,0 -122.431841863906,37.8017213314352,0 -122.431885303019,37.8019316061803,0 -122.431714248439,37.8019544341044,0 -122.431592404659,37.8019694509363,0 -122.431548777661,37.8017591041777,0 -122.431671453253,37.8017428443014,0 -122.431714248439,37.8019544341044,0 ")) 1 # rows 1 # column AsText(GeomFromKML(" -122.43193945401,37.801983684521,0 -122.431564131101,37.8020327731402,0 -122.431499536494,37.801715236748,0 -122.43187136387,37.8016634915437,0 -122.43193945401,37.801983684521,0 -122.431885303019,37.8019316061803,0 -122.431762847554,37.8019476932246,0 -122.431719843168,37.8017374462006,0 -122.431841863906,37.8017213314352,0 -122.431885303019,37.8019316061803,0 -122.431714248439,37.8019544341044,0 -122.431592404659,37.8019694509363,0 -122.431548777661,37.8017591041777,0 -122.431671453253,37.8017428443014,0 -122.431714248439,37.8019544341044,0 ")) MULTIPOLYGON Z(((-122.431939 37.801984 0, -122.431564 37.802033 0, -122.4315 37.801715 0, -122.431871 37.801663 0, -122.431939 37.801984 0), (-122.431885 37.801932 0, -122.431763 37.801948 0, -122.43172 37.801737 0, -122.431842 37.801721 0, -122.431885 37.801932 0), (-122.431714 37.801954 0, -122.431592 37.801969 0, -122.431549 37.801759 0, -122.431671 37.801743 0, -122.431714 37.801954 0)))libspatialite-4.3.0a/test/sql_stmt_tests/getlayerextent5.testcase0000664000175000017500000000027712544707704022405 00000000000000GetLayerExtent - DOUBLE, TEXT :memory: #use in-memory database SELECT GetLayerExtent(1.1, 'column'); 1 # rows (not including the header row) 1 # columns GetLayerExtent(1.1, 'column'); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/envelope1.testcase0000664000175000017500000000034212544707704021143 00000000000000Envelope :memory: #use in-memory database SELECT AsText(Envelope(GeomFromText("Point(1 2)"))) 1 # rows (not including the header row) 1 # columns AsText(Envelope(GeomFromText("Point(1 2)"))) POLYGON((1 2, 1 2, 1 2, 1 2, 1 2)) libspatialite-4.3.0a/test/sql_stmt_tests/assvg8.testcase0000664000175000017500000000036312544707704020463 00000000000000assvg - 3 arg bad second arg :memory: #use in-memory database SELECT assvg(GeomFromText("Point(1.3759 2)", 4326), "hello", -1) 1 # rows (not including the header row) 1 # columns assvg(GeomFromText("Point(1.3759 2)", 4326), "hello", -1) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat11.testcase0000664000175000017500000000037712544707704022631 00000000000000normalizelonlat- in range -30 :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(4 -30)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(4 -30)", 4326))) POINT(4 -30) libspatialite-4.3.0a/test/sql_stmt_tests/ewkb5.testcase0000664000175000017500000000047212544707704020266 00000000000000EWkb: Linestring XYZ :memory: #use in-memory database SELECT AsText(GeomFromEWkb('01020000A0E610000002000000000000000000F03F00000000000000400000000000005940000000000000084000000000000010400000000000405940')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom LINESTRING Z(1 2 100, 3 4 101) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr1.testcase0000664000175000017500000000034512544707704020766 00000000000000garsmbr - 001AB :memory: #use in-memory database SELECT AsText(GARSMbr("001AB")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("001AB")) POLYGON((-180 -89.5, -179.5 -89.5, -179.5 -89, -180 -89, -180 -89.5)) libspatialite-4.3.0a/test/sql_stmt_tests/linesfromrings7.testcase0000664000175000017500000000063612544707704022403 00000000000000LinesFromRings - Toxic polygon :memory: #use in-memory database SELECT AsText(LinesFromRings(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 1)); 1 # rows (not including the header row) 1 # columns AsText(LinesFromRings(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 1)) MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5)) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype10.testcase0000664000175000017500000000046112544707704021241 00000000000000geometrytype - LINESTRING ZM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("LINESTRINGZM(4 0 4 1, 4 4 4 2, 8 4 2 3)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) LINESTRING ZM XYZMlibspatialite-4.3.0a/test/sql_stmt_tests/mbr25.testcase0000664000175000017500000000045112544707704020175 00000000000000MbrDisjoint - Line + Point inside :memory: #use in-memory database SELECT MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(0.5 1)")); 1 # rows (not including the header row) 1 # columns MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(0.5 1)")) # header 0libspatialite-4.3.0a/test/sql_stmt_tests/swapcoords2.testcase0000664000175000017500000000023112544707704021510 00000000000000swapcoords2 :memory: #use in-memory database SELECT SwapCoords("hello"); 1 # rows (not including the header row) 1 # columns SwapCoords("hello"); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/wkb18.testcase0000664000175000017500000000117512544707704020206 00000000000000Hex Wkb: GeometryCollection XYZ (2 lines) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(1.2 3.4 100, 5.6 7.8 101), LINESTRINGZ(5 6 110, 7 8 111))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(1.2 3.4 100, 5.6 7.8 101), LINESTRINGZ(5 6 110, 7 8 111))", 4326))); 01EF0300000200000001EA03000002000000333333333333F33F3333333333330B40000000000000594066666666666616403333333333331F40000000000040594001EA03000002000000000000000000144000000000000018400000000000805B400000000000001C4000000000000020400000000000C05B40 libspatialite-4.3.0a/test/sql_stmt_tests/sridisgeographic1.testcase0000664000175000017500000000026012544707704022653 00000000000000SridIsGeographic() - NULL SRID :memory: #use in-memory database SELECT SridIsGeographic(NULL) 1 # rows (not including the header row) 1 # columns SridIsGeographic(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipse10.testcase0000664000175000017500000000027312544707704021704 00000000000000makeellipse10 - NULL y_axis :memory: #use in-memory database SELECT MakeEllipse(0, 0, 100, NULL); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, 100, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/expand5.testcase0000664000175000017500000000025312544707704020612 00000000000000Expand - bad blob :memory: #use in-memory database SELECT ST_Expand(zeroblob(28), 1) 1 # rows (not including the header row) 1 # columns ST_Expand(zeroblob(28), 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipse5.testcase0000664000175000017500000000030012544707704021617 00000000000000makeellipse5 - text cy :memory: #use in-memory database SELECT MakeEllipse(0, 'alpha', 100, 200); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 'alpha', 100, 200) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat24.testcase0000664000175000017500000000117212544707704022627 00000000000000normalizelonlat- out of range negative lat polygonz :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POLYGONZ((120 -140 5, 120 -150 20, 130 -150 20, 130 -140 2, 120 -140 5), (122 -142 0, 124 -142 1, 124 -144 2, 122 -144 3, 122 -142 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POLYGONZ((120 -140 5, 120 -150 20, 130 -150 20, 130 -140 2, 120 -140 5), (122 -142 0, 124 -142 1, 124 -144 2, 122 -144 3, 122 -142 0))", 4326))) POLYGON Z((120 -40 5, 120 -30 20, 130 -30 20, 130 -40 2, 120 -40 5), (122 -38 0, 124 -38 1, 124 -36 2, 122 -36 3, 122 -38 0)) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector5.testcase0000664000175000017500000000034512544707704023220 00000000000000makeellipticsector5 - text cy :memory: #use in-memory database SELECT MakeEllipticSector(0, 'alpha', 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 'alpha', 100, 200, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/assvg21.testcase0000664000175000017500000000053312544707704020535 00000000000000assvg - relative/absolute Linestring XYZM :memory: #use in-memory database SELECT assvg(geom, 1) AS rel, assvg(geom, 0) AS abs FROM (SELECT GeomFromText("LINESTRINGZM(1 2 100 10, 4 3 101 11, 5 6 102 12, 8 7 103 13)", 4326) AS geom) dummy; 1 # rows (not including the header row) 2 # columns rel abs M 1 -2 l 3 -1 1 -3 3 -1 M 1 -2 L 4 -3 5 -6 8 -7 libspatialite-4.3.0a/test/sql_stmt_tests/setendpoint11.testcase0000664000175000017500000000047512544707704021752 00000000000000ST_SetEndPoint() - not a line :memory: #use in-memory database SELECT ST_SetEndPoint(GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), MakePoint(2, 0)) 1 # rows (not including the header row) 1 # columns ST_SetEndPoint(GeomFromText('POLYGON((10 10, 11 10, 11 11, 10 11, 10 10))'), MakePoint(2, 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/mbr5.testcase0000664000175000017500000000035012544707704020111 00000000000000MbrContains - Point + Text (error) :memory: #use in-memory database SELECT MbrContains(GeomFromText("POINT(2 1)"), "hello"); 1 # rows (not including the header row) 1 # columns MbrContains(GeomFromText("POINT(2 1)"), "hello") (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/srid11.testcase0000664000175000017500000000025312544707704020351 00000000000000SetSRID - zeroblob :memory: #use in-memory database SELECT SetSRID(zeroblob(0), 4326) 1 # rows (not including the header row) 1 # columns SetSRID(zeroblob(0), 4326) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/atmxroll5.testcase0000664000175000017500000000024712544707704021200 00000000000000ATM_XRoll() - invalid 1st arg :memory: #use in-memory database SELECT ATM_XRoll('a', 15) 1 # rows (not including the header row) 1 # columns ATM_XRoll('a', 15) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ring15.testcase0000664000175000017500000000030212544707704020346 00000000000000InteriorRingN - bad blob (error) :memory: #use in-memory database SELECT InteriorRingN(zeroblob(12), 1); 1 # rows (not including the header row) 1 # column InteriorRingN(zeroblob(12), 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml32.testcase0000664000175000017500000000072512544707704021062 00000000000000FromGML - GeometryCollection, single pointZ, no namespace :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2,3.2')) 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2,3.2')):0 SRID=-1;GEOMETRYCOLLECTION(POINT(1 2 3.2)) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml15.testcase0000664000175000017500000000044012544707704021731 00000000000000From KML - Point 2D :memory: SELECT AsText(GeomFromKML("-122.0822035425683,37.42228990140251")) 1 # rows 1 # column AsText(GeomFromKML("-122.0822035425683,37.42228990140251"))) POINT(-122.082204 37.42229)libspatialite-4.3.0a/test/sql_stmt_tests/geomtype65.testcase0000664000175000017500000000056612544707704021261 00000000000000geometrytype - MULTIPOINTM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTIPOINTM (10 40 10, 40 30 15, 20 20 20, 30 10 9)") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTIPOINT M XYM MULTIPOINT libspatialite-4.3.0a/test/sql_stmt_tests/setstartpoint7.testcase0000664000175000017500000000040412544707704022256 00000000000000ST_SetStartPoint() - INTEGER Point :memory: #use in-memory database SELECT ST_SetStartPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1) 1 # rows (not including the header row) 1 # columns ST_SetStartPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat20.testcase0000664000175000017500000000054012544707704022621 00000000000000normalizelonlat- out of range negative lat linestringm :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("LINESTRINGM(120 -140 5, 130 -150 20)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("LINESTRINGM(120 -140 5, 130 -150 20)", 4326))) LINESTRING M(120 -40 5, 130 -30 20) libspatialite-4.3.0a/test/sql_stmt_tests/collect10.testcase0000664000175000017500000000045512544707704021040 00000000000000collect - Point, PointM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINT(1 2)"), GeomFromText("POINTM(4 5 3.2)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINT(1 2)"), GeomFromText("POINTM(4 5 3.2)"))) MULTIPOINT M(1 2 0, 4 5 3.2) libspatialite-4.3.0a/test/sql_stmt_tests/st_x4.testcase0000664000175000017500000000027712544707704020315 00000000000000ST_X4 :memory: #use in-memory database SELECT ST_X(GeomFromText("POINTM(136 -35 -8.6)")); 1 # rows (not including the header row) 1 # columns ST_X(GeomFromText("POINTM(136 -35 -8.6)")) 136.0 libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson12.testcase0000664000175000017500000000066512544707704021750 00000000000000FromGeoJSON - linestring with SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"LineString","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[1,2.3],[4,1.2]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"LineString","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"coordinates":[[1,2.3],[4,1.2]]}')):0 SRID=3003;LINESTRING(1 2.3,4 1.2) libspatialite-4.3.0a/test/sql_stmt_tests/collect35.testcase0000664000175000017500000000066112544707704021046 00000000000000collect - LineStringM, LineStringZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGM(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGZ(4 5 3.2, 1 2 4.6, 4 2 3.1)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGM(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGZ(4 5 3.2, 1 2 4.6, 4 2 3.1)"))) MULTILINESTRING ZM((1 2 0 4, 3 4 0 2), (4 5 3.2 0, 1 2 4.6 0, 4 2 3.1 0)) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract24.testcase0000664000175000017500000000111412544707704022431 00000000000000Collection Extract - Extract MULTILINESTRING :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0, 1 1), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)), POINT(1 1), LINESTRING(1 1, 2 2), POLYGON((1 1, 2 1, 2 2, 1 2, 1 1)))"), 2)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0, 1 1), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)), POINT(1 1), LINESTRING(1 1, 2 2), POLYGON((1 1, 2 1, 2 2, 1 2, 1 1)))"), 2)) MULTILINESTRING((0 0, 1 1), (1 1, 2 2)) libspatialite-4.3.0a/test/sql_stmt_tests/atmmultiply2.testcase0000664000175000017500000000032212544707704021706 00000000000000ATM_Multiply() - invalid blob1 :memory: #use in-memory database SELECT ATM_Multiply(zeroblob(4), ATM_Create()) 1 # rows (not including the header row) 1 # columns ATM_Multiply(zeroblob(4), ATM_Create()) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry20.testcase0000664000175000017500000000057712544707704023030 00000000000000CompressGeometry - MULTIPOINT :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("MULTIPOINT(1 2)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("MULTIPOINT(1 2)", 4326))) 0001E6100000000000000000F03F0000000000000040000000000000F03F00000000000000407C04000000010000006901000000000000000000F03F0000000000000040FE libspatialite-4.3.0a/test/sql_stmt_tests/dissolve2.testcase0000664000175000017500000000024612544707704021162 00000000000000dissolve - null input :memory: #use in-memory database SELECT DissolveSegments(null) 1 # rows (not including the header row) 1 # columns DissolveSegments(null) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/sridflipped4.testcase0000664000175000017500000000026612544707704021643 00000000000000SridHasFlippedAxes() - DOUBLE SRID :memory: #use in-memory database SELECT SridHasFlippedAxes(1.0) 1 # rows (not including the header row) 1 # columns SridHasFlippedAxes(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/getmimetype4.testcase0000664000175000017500000000024212544707704021661 00000000000000GetMimeType - TEXT :memory: #use in-memory database SELECT GetMimeType('alpha'); 1 # rows (not including the header row) 1 # columns GetMimeType('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/routing3.testcase0000664000175000017500000000060212544707704021016 00000000000000routing: integer ids (A*) sql_stmt_tests/testdb1.sqlite UPDATE roads_net SET Algorithm = 'A*'; SELECT Algorithm, ArcRowid, NodeFrom, NodeTo, Cost FROM roads_net WHERE NodeFrom = 29 AND NodeTo = 32; 4 # rows (not including the header row) 5 # columns Algorithm ArcRowid NodeFrom NodeTo Cost A* (NULL) 29 32 0.001856:6 A* 29 29 30 0.000512:6 A* 30 30 31 0.000445:6 A* 31 31 32 0.000898:6 libspatialite-4.3.0a/test/sql_stmt_tests/testFGF.sqlite0000664000175000017500000070000012544707704020233 00000000000000SQLite format 3€@ %%%-â# y`~˜}Å{êyÜyxxxsvK%%[tablesqlite_stat1sqlite_stat1CREATE TABLE sqlite_stat1(tbl,idx,stat)„ ##‡]tableCenterlinesCenterlinesCREATE TABLE Centerlines(PRIMARYINDEX INTEGER PRIMARY KEY, Geometry BLOB, ACCURACY_STATUS TEXT, ACCURACY_STATUS_V TEXT, BKCL TEXT, BKCL_V TEXT, END_INT INTEGER, LANES REAL, MAP_CLASSNAME TEXT, MAP_LABEL TEXT, MAP_MAPTIP TEXT, SEG_CLASS TEXT, SEG_CLASS_V TEXT, SEG_DIREC TEXT, SEG_ID REAL, SEG_JURIS TEXT, SEG_LENGTH REAL, SEG_OWNER TEXT, SEG_OWNER_V TEXT, SEG_SURF TEXT, SEG_SURF_V TEXT, SEG_TYPE TEXT, SEG_TYPE_V TEXT, SEG_WIDTH INTEGER, START_INT INTEGER, STR_CODE TEXT, STR_RNAME TEXT)ƒX//†_tableAssessmentParcelsAssessmentParcelsCREATE TABLE AssessmentParcels(PRIMARYINDEX INTEGER PRIMARY KEY, Geometry BLOB, FOLIO TEXT, GISLINK INTEGER, HOUSE INTEGER, LEGAL_ID TEXT, LEGAL_LONG1 TEXT, LEGAL_LONG2 TEXT, LEGAL_TYPE TEXT, LOT_DESC TEXT, LOT_SIZE TEXT, LSTATUS TEXT, LSTATUS_V TEXT, NOTE TEXT, PLAN TEXT, PLAN_NUMBER TEXT, POSTAL_CODE TEXT, PRCL_KEY TEXT, PRCL_TYPE TEXT, PRCL_TYPE_V TEXT, STREET TEXT, UNIT TEXT, WSTATUS TEXT, WSTATUS_V TEXT, ZONING TEXT)P%%‚ctableHouseNumbersHouseNumbersCREATE TABLE HouseNumbers(PRIMARYINDEX INTEGER PRIMARY KEY, Geometry BLOB, TEXT_HALIGN INTEGER, TEXT_HEIGHT REAL, TEXT_LABEL TEXT, TEXT_ROTATION REAL, TEXT_VALIGN INTEGER)E--‚=tablegeometry_columnsgeometry_columnsCREATE TABLE geometry_columns (f_table_name TEXT,f_geometry_column TEXT,geometry_type INTEGER,coord_dimension INTEGER,srid INTEGER,geometry_format TEXT)++qtablespatial_ref_sysspatial_ref_sysCREATE TABLE spatial_ref_sys(srid INTEGER PRIMARY KEY,sr_name TEXT, auth_name TEXT,auth_srid INTEGER,srtext TEXT ) ~Q~Qƒ,†GUTM83-10PROJCS["NAD_1983_UTM_Zone_10N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-123],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1]] “ݵ“ #CenterlinesGeometryFGF&/AssessmentParcelsGeometryFGF!%HouseNumbersGeometryFGF ~éÇ•j?~é(Ï<ffffVEA MÈTA980g(Ï <ÍÌÌÌPEA€3ÈTA870g(Ï <3333OEAÍÌÌŒ.ÈTA830g(Ï<š™™™SEA`8ÈTA882g/Ï<ffffDEAš™™¹˜ÈTA1150@E-€@6Îq<ffff*IAš™™YoÈTA@™™ 1121@vlà pd~Õ}–|R{?z/yx vìuÚtÈsµrŠqwpd‚Ê8\ #%'®GáL=Afff¶.ÈTAš™™™Q=Afffv7ÈTA= ×£=Aq= —7ÈTA\Âõ=Aq= ×.ÈTA®GáL=Afff¶.ÈTA83852.000Ÿ ¶106253LOT 13, BLOCK 3, DISTRICT LOT 96-G, NANAIMO DISTRICT, PLAN 2039LANDWIDTH/DEPTH50.00 115.002039V9S 1R6HUNTER STREETRS-1A‚Ê4\ #%'q= ׉=A\•.ÈTAö(\Ž=AfffV7ÈTAš™™™Q=Afffv7ÈTA®GáL=Afff¶.ÈTAq= ׉=A\•.ÈTA83851.000Ÿ ¤106250LOT 12, BLOCK 3, DISTRICT LOT 96-G, NANAIMO DISTRICT, PLAN 2039LANDWIDTH/DEPTH50.00 115.002039V9S 1R6HUNTER STREETRS-1A‚'Ê3\5#%-š™™™HAš™™i0ÈTA…ëQHAR¸e5ÈTAáz®žGAfff¦5ÈTAœGA®Gáª0ÈTAš™™™HAš™™i0ÈTA84915.000œ105475LOT 21, DISTRICT LOT 96-G, NEWCASTLE RESERVE, SECTION 1, NANAIMO DISTRICT, PLAN 7828LANDWIDTH/DEPTH65.50 99.007828V9S 5E2CHURCHILL AVENUERS-1A‚Ê1\ #%')\ÂÆ=AR¸u.ÈTAR¸…Ë=A\Â57ÈTAö(\Ž=AfffV7ÈTAq= ׉=A\•.ÈTA)\ÂÆ=AR¸u.ÈTA83850.000Ÿ ¢106249LOT 11, BLOCK 3, DISTRICT LOT 96-G, NANAIMO DISTRICT, PLAN 2039LANDWIDTH/DEPTH50.00 115.002039V9S 1R6HUNTER STREETRS-1A‚Ê.\ #%'…ëQ¸>AHázT.ÈTA ×£p>AR¸7ÈTAR¸…Ë=A\Â57ÈTA)\ÂÆ=AR¸u.ÈTA…ëQ¸>AHázT.ÈTA83849.000Ÿ 106248LOT 10, BLOCK 3, DISTRICT LOT 96G, NANAIMO DISTRICT, PLAN 2039LANDWIDTH/DEPTH50.00 115.002039V9S 1R6HUNTER STREETRS-1A‚Ê,\ #%'š™™™@>A= ×3.ÈTAffffE>AR¸õ6ÈTA ×£p>AR¸7ÈTA…ëQ¸>AHázT.ÈTAš™™™@>A= ×3.ÈTA83848.000ŸŽ106246LOT 9, BLOCK 3, DISTRICT LOT 96-G, NANAIMO DISTRICT, PLAN 2039LANDWIDTH/DEPTH50.00 115.002039V9S 1R6HUNTER STREETRS-1A‚Ê+\1%-ö(\ÌHA{®0ÈTA{®GÏHA3335ÈTA¤p= HHAÃõ(L5ÈTA…ëQEHA ×£P0ÈTAö(\ÌHA{®0ÈTA84918.000œ105474LOT 2, DISTRICT LOT 96G, NEWCASTLE RESERVE, SECTION 1, NANAIMO DISTRICT, PLAN 7837LAND65.50 111.007837V9S 5E1CHURCHILL AVENUERS-1A‚Ê&\ #%'¤p= Ð>A= ×ó-ÈTAáz®Ô>Aq= ·6ÈTAffff•>Aq= ×6ÈTA…ëQ¸>A= ×.ÈTA¤p= Ð>A= ×ó-ÈTA83918.000Ÿz106244LOT 16, BLOCK 8, DISTRICT LOT 96-G, NANAIMO DISTRICT, PLAN 2039LANDWIDTH/DEPTH52.00 115.002039V9S 1R5HUNTER STREETRS-1A‚Ê$\ #%'Ãõ(\?AHázÔ-ÈTA?A{®—6ÈTAáz®Ô>Aq= ·6ÈTA¤p= Ð>A= ×ó-ÈTAÃõ(\?AHázÔ-ÈTA83917.000Ÿp106242LOT 15, BLOCK 8, DISTRICT LOT 96G, NANAIMO DISTRICT, PLAN 2039LANDWidth/Depth52.00 115.002039V9S 1R5HUNTER STREETRS-1A‚ Ê \ #'áz®N?AHáz´-ÈTA…ëQS?A{®w6ÈTA?A{®—6ÈTAÃõ(\?AHázÔ-ÈTAáz®N?AHáz´-ÈTA83915.001õìf128492LOT 14, BLOCK 8, DISTRICT LOT 96-G, NANAIMO DISTRICT, PLAN 2039LANDWIDTH/DEPTH52 1152039V9S 1R5HUNTER STREETRS-1A‚Ê\ #%'¤p= Ž?AR¸•-ÈTA= ×£’?A{®W6ÈTA…ëQS?A{®w6ÈTAáz®N?AHáz´-ÈTA¤p= Ž?AR¸•-ÈTA83915.000žÿ\106239LOT 13, BLOCK 8, DISTRICT LOT 96-G, NANAIMO DISTRICT, PLAN 2039LANDWIDTH/DEPTH52.00 115.002039V9S 1R5HUNTER STREETRS-1A‚@Ê‚+#''¸…ëÑ?A…ëQ86ÈTA= ×£’?A{®W6ÈTA¤p= Ž?AR¸•-ÈTAÃõ(\Í?A\Âu-ÈTAáz® @A\ÂU-ÈTA×£p=@A…ëQ6ÈTA¸…ëÑ?A…ëQ86ÈTA83914.000žýR106237LOTS 11 & 12, BLOCK 8, DISTRICT LOT 96G, SECTION 1, PLAN 2039, NANAIMO DISTRICTLANDWIDTH/DEPTH104.00 115.002039V9S 1R5HUNTER STREETRS-1A‚;Ê‚#'/áz® @A\ÂU-ÈTAL@Afff6-ÈTA@AHáz-ÈTAR¸…“@Aq= ×5ÈTAö(\P@AÂõø5ÈTA×£p=@A…ëQ6ÈTAáz® @A\ÂU-ÈTA83912.000Ʋk116402LOTS 9 AND 10, BLOCK 8, DISTRICT LOT 96-G, NANAIMO DISTRICT, PLAN 2039LANDWIDTH/DEPTH115.00 107.002039V9S 4Z5SUNDERLAND AVENUERS-1A‚'Ê\3#%-…ëQèDAìQ¸þ.ÈTA…ëQ¸êDAö(\3ÈTAìQ¸gDA= ×Ó3ÈTAáz®dDA)\B/ÈTA…ëQèDAìQ¸þ.ÈTA85749.000£ o107296LOT 1, DISTRICT LOT 96G, NEWCASTLE RESERVE, SECTION 1, NANAIMO DISTRICT, PLAN 14412LANDWidth/Depth60.00 108.0014412V9S 5B4MILLSTONE AVENUERS-1A w ~ô}Å|Ì{Æz¯y©x w {‚cd!5##3333ù@Aš™™²ÈTA3333©>Afffæ²ÈTAORTHOPHOTOORTHOPHOTO REFERENCE­LOCALDUFFERIN STDUFFERIN ST CLASS: LOCAL OWNER: City TYPE: Single Lane SURFACE: PavedLOCALLOCALr@b]¥_×CITYCityPAVEDPavedSINGLESingle Lane²360ƒ‚]ƒ$!5## š™™™CA šÈTA3333CAš™™ùÈTAffffþBAš™™™¡ÈTAìBA3333¥ÈTAÍÌÌÌÚBA333§ÈTAÍÌÌ̶BAfffæ©ÈTAffff„BA`­ÈTAhBAš™™ù®ÈTAÍÌÌÌ4BA333ó°ÈTABAfff¦±ÈTAš™™™ùAAš™™Ù±ÈTA3333ù@Aš™™²ÈTAORTHOPHOTOORTHOPHOTO REFERENCE²LOCALDUFFERIN STDUFFERIN ST CLASS: LOCAL OWNER: City TYPE: Single Lane SURFACE: PavedLOCALLOCALl@gÜú 1©ACITYCityPAVEDPavedSINGLESingle Lane°360‚!d!5)#ÍÌÌÌð@AÍÌÌ ›ÈTAš™™™å@Afff†„ÈTAORTHOPHOTOORTHOPHOTO REFERENCE LOCALSUNDERLAND AVESUNDERLAND AVE CLASS: LOCAL OWNER: City TYPE: Single Lane SURFACE: PavedLOCALLOCAL©@V‰/ ÙôCITYCityPAVEDPavedSINGLESingle Lane¯1087‚ !5)#š™™™å@Afff†„ÈTAš™™™å@A333~ÈTAffffÚ@A nÈTAORTHOPHOTOORTHOPHOTO REFERENCEZLOCALSUNDERLAND AVESUNDERLAND AVE CLASS: LOCAL OWNER: City TYPE: Single Lane SURFACE: PavedLOCALLOCAL¨@VjT”á*OCITYCityPAVEDPavedSINGLESingle Lane 1087‚d!5)#ffffÚ@A nÈTAš™™™Ï@AfffFWÈTAORTHOPHOTOORTHOPHOTO REFERENCE‚LOCALSUNDERLAND AVESUNDERLAND AVE CLASS: LOCAL OWNER: City TYPE: Single Lane SURFACE: PavedLOCALLOCAL¦@VÜ&Ø€`oCITYCityPAVEDPavedSINGLESingle LaneZ1087vfd!5#š™™™³CAÍÌ̬™ÈTAš™™™CA šÈTAORTHOPHOTOORTHOPHOTO REFERENCE°LOCALOAKLEY STOAKLEY ST CLASS: LOCAL OWNER: City TYPE: Single Lane SURFACE: PavedLOCALLOCALk@FD¨j8Ÿ@CITYCityPAVEDPavedSINGLESingle Lane±828‚,d!5'!9';#3333NAš™™99ÈTA„KAš™™ù:ÈTAORTHOPHOTOORTHOPHOTO REFERENCEªNEIGHBOURHOODCYPRESS STCYPRESS ST CLASS: NEIGHBOURHOOD COLLECTOR OWNER: City TYPE: Single Lane SURFACE: PavedNEIGHBOURHOODNEIGHBOURHOOD COLLECTOR@dy+ÉCITYCityPAVEDPavedSINGLESingle Lane!318‚ !5!#„KAš™™ù:ÈTAÍÌÌÌtJAÍÌ̬;ÈTAš™™™EJAš™™™;ÈTAORTHOPHOTOORTHOPHOTO REFERENCE«LOCALCYPRESS STCYPRESS ST CLASS: LOCAL OWNER: City TYPE: Single Lane SURFACE: PavedLOCALLOCAL@SêW¾CàÅCITYCityPAVEDPavedSINGLESingle Laneª318 •îÕ«•+spatial_ref_sys1-geometry_columns3%HouseNumbers6/AssessmentParcels14#Centerlines8libspatialite-4.3.0a/test/sql_stmt_tests/ch_m.testcase0000664000175000017500000000022412544707704020152 00000000000000chains to metres :memory: #use in-memory database SELECT CvtFromCh(100); 1 # rows (not including the header row) 1 # columns CvtFromCh(100); 2011.68libspatialite-4.3.0a/test/sql_stmt_tests/reflectcoords16.testcase0000664000175000017500000000045212544707704022254 00000000000000reflectcoords - no reflection :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("LINESTRING(-1 -1, 1 0, 0 1)"), 0, 0)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("LINESTRING(-1 -1, 1 0, 0 1)"), 0, 0)) LINESTRING(-1 -1, 1 0, 0 1) libspatialite-4.3.0a/test/sql_stmt_tests/makepointm-null5.testcase0000664000175000017500000000035712544707704022454 00000000000000makepointm-null5 :memory: #use in-memory database SELECT AsText(MakePointM(-26.0, 42.3150676015829, 12.6389, 4326.0)); 1 # rows (not including the header row) 1 # columns AsText(MakePointM(-26.0, 42.3150676015829, 12.6389, 4326.0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridax2name6.testcase0000664000175000017500000000026612544707704021555 00000000000000SridGetAxis_2_Name() - 32632 :memory: #use in-memory database SELECT SridGetAxis_2_Name(32632) 1 # rows (not including the header row) 1 # columns SridGetAxis_2_Name(32632) Northing libspatialite-4.3.0a/test/sql_stmt_tests/atmzroll1.testcase0000664000175000017500000000027112544707704021173 00000000000000ATM_ZRoll() - invalid angle :memory: #use in-memory database SELECT ATM_ZRoll(ATM_Create(), 'a') 1 # rows (not including the header row) 1 # columns ATM_ZRoll(ATM_Create(), 'a') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/extractmultipolygon3.testcase0000664000175000017500000000071412544707704023470 00000000000000extractmultipolygon - POINT :memory: #use in-memory database SELECT AsText(ExtractMultiPolygon(GeomFromText("GEOMETRYCOLLECTION(POINT(4 3), LINESTRING(5 6, 6 7), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))"))) 1 # rows (not including the header row) 1 # columns AsText(ExtractMultiPolygon(GeomFromText("GEOMETRYCOLLECTION(POINT(4 3), LINESTRING(5 6, 6 7), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)))"))) MULTIPOLYGON(((10 10, 11 10, 11 11, 10 11, 10 10))) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc16.testcase0000664000175000017500000000033512544707704022547 00000000000000makeellipticarc15 - text stop :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, 30, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, 30, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint9.testcase0000664000175000017500000000036412544707704021144 00000000000000ST_AddPoint() - TEXT Point :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), 'alpha') 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract1.testcase0000664000175000017500000000036612544707704022354 00000000000000Collection Extract - Point :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POINT(1 2)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POINT(1 2)"), 1)) POINT(1 2) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml13.testcase0000664000175000017500000000056212544707704021734 00000000000000From KML - Multigeometry - Point 2D :memory: SELECT AsText(GeomFromKML("-122.0822035425683,37.42228990140251")) 1 # rows 1 # column AsText(GeomFromKML("-122.0822035425683,37.42228990140251")) MULTIPOINT(-122.082204 37.42229)libspatialite-4.3.0a/test/sql_stmt_tests/setpoint8.testcase0000664000175000017500000000041212544707704021200 00000000000000ST_SetPoint() - TEXT index :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 'alpha', NULL) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 'alpha', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sanitizeGeometry14.testcase0000664000175000017500000000136712544707704022764 00000000000000Sanitize Geometry - POLYGONZ with interior :memory: #use in-memory database SELECT AsText(SanitizeGeometry(GeomFromText("POLYGONZ((-10 -10 1, -10 -10 1, 10 -10 2, 10 10 3, -10 10 4, -10 -10 1, -10 -10 1),(-6 -6 2, -6 -5 3, -5 -5 3, -5 -5 4, -5 -5 4, -5 -6 9, -6 -6 2),(6 6 0, 5 6 0, 5 6 0, 5 5 0, 6 5 0, 6 6 0))"))) 1 # rows (not including the header row) 1 # columns AsText(SanitizeGeometry(GeomFromText("POLYGONZ((-10 -10 1, -10 -10 1, 10 -10 2, 10 10 3, -10 10 4, -10 -10 1, -10 -10 1),(-6 -6 2, -6 -5 3, -5 -5 3, -5 -5 4, -5 -5 4, -5 -6 9, -6 -6 2),(6 6 0, 5 6 0, 5 6 0, 5 5 0, 6 5 0, 6 6 0))"))) POLYGON Z((-10 -10 1, 10 -10 2, 10 10 3, -10 10 4, -10 -10 1), (-6 -6 2, -6 -5 3, -5 -5 3, -5 -5 4, -5 -6 9, -6 -6 2), (6 6 0, 5 6 0, 5 5 0, 6 5 0, 6 6 0)) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype20.testcase0000664000175000017500000000066212544707704021245 00000000000000geometrytype - MULTILINESTRINGM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTILINESTRINGM((30 20 1, 10 40 1, 45 40 1, 30 20 1),(15 5 2, 40 10 2, 10 20 2, 5 10 2, 15 5 2))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTILINESTRING M XYM MULTILINESTRINGlibspatialite-4.3.0a/test/sql_stmt_tests/linesfromrings1.testcase0000664000175000017500000000051312544707704022367 00000000000000LinesFromRings - Simple polygon, no multi :memory: #use in-memory database SELECT AsText(LinesFromRings(GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))"), 0)); 1 # rows (not including the header row) 1 # columns AsText(LinesFromRings(GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))"), 0)) LINESTRING(0 0, 1 1, 0 2, -1 1, 0 0) libspatialite-4.3.0a/test/sql_stmt_tests/atmscale6.testcase0000664000175000017500000000077112544707704021132 00000000000000ATM_Scale() - valid 3d (double) :memory: #use in-memory database SELECT Hex(ATM_Scale(ATM_Create(), 1.0, 2.0, 3.0)) 1 # rows (not including the header row) 1 # columns Hex(ATM_Scale(ATM_Create(), 1.0, 2.0, 3.0)) 0001000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A00000000000000403A00000000000000003A00000000000000003A00000000000000003A00000000000000003A00000000000008403A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt31.testcase0000664000175000017500000000066412544707704021256 00000000000000fromewkt31 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0 9), LINESTRING(1 1 9, 2 2 9))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0 9), LINESTRING(1 1 9, 2 2 9))))')); GEOMETRYCOLLECTION Z(POINT Z(0 0 9), LINESTRING Z(1 1 9, 2 2 9)) libspatialite-4.3.0a/test/sql_stmt_tests/gml15.testcase0000664000175000017500000000152312544707704020174 00000000000000GMLv2 MultiPolygon: no SRID :memory: #use in-memory database SELECT AsGML(GeomFromText("MULTIPOLYGON(((10 10, 20 10, 20 20, 10 20, 10 10)), ((85 85, 90 85, 90 90, 85 90, 85 85)))")); 1 # rows (not including the header row) 1 # columns AsGML(GeomFromText("MULTIPOLYGON(((10 10, 20 10, 20 20, 10 20, 10 10)), ((85 85, 90 85, 90 90, 85 90, 85 85)))")) 10,10 20,10 20,20 10,20 10,1085,85 90,85 90,90 85,90 85,85:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate20.testcase0000664000175000017500000000032712544707704021357 00000000000000ATM_Create() - 2d invalid 4th arg :memory: #use in-memory database SELECT ATM_Create(1.0, 2.0, 3.0, 'a', 5.0, 6.0) 1 # rows (not including the header row) 1 # columns ATM_Create(1.0, 2.0, 3.0, 'a', 5.0, 6.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype38.testcase0000664000175000017500000000063112544707704021252 00000000000000geometrytype - GEOMETRYCOLLECTIONM - two points :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONM(POINTM(4 6 4), POINTM(3 3 29))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION M XYM GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/garsmbr23.testcase0000664000175000017500000000026412544707704021052 00000000000000garsmbr - bad longitude - 6 :memory: #use in-memory database SELECT AsText(GARSMbr("-01AB1")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("-01AB1")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext19.testcase0000664000175000017500000000120112544707704022132 00000000000000geomfromtext13 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZ(MULTIPOLYGONZ(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZ(MULTIPOLYGONZ(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))))')); GEOMETRYCOLLECTION Z(POLYGON Z((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), POLYGON Z((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype54.testcase0000664000175000017500000000071512544707704021253 00000000000000geometrytype - GEOMETRYCOLLECTIONM - two polygons :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONM(POLYGONM((4 6 0,7 10 0, 12 3 1, 4 6 0)),POLYGONM((4 6 1,7 10 1, 12 3 2, 4 6 1)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION M XYM GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/maxz5.testcase0000664000175000017500000000036512544707704020316 00000000000000MaxZ - Linestring XYM :memory: #use in-memory database SELECT ST_MaxZ(GeomFromText('LINESTRINGM(1 2 10, 3 4 11, 5 6 12)')); 1 # rows (not including the header row) 1 # columns ST_MaxZ(GeomFromText('LINESTRINGM(1 2 10, 3 4 11, 5 6 12)')) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract12.testcase0000664000175000017500000000040112544707704022424 00000000000000Collection Extract - PointM :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POINTM(1 2 4)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POINTM(1 2 4)"), 1)) POINT M(1 2 4) libspatialite-4.3.0a/test/sql_stmt_tests/badGML3.testcase0000664000175000017500000000054612544707704020424 00000000000000bad GML: Linestring :memory: #use in-memory database SELECT GeomFromGML('1.1,2.2 3.3,4.41.1,2.2 3.3,4.4=DA@KJIPLKWLLPOOVQQUYX^YX_YX`ZZ_]\d^^b_`hrru{|}|€€†††‰ŠŠŒŽ”““”•”–––›——˜šš›ŸŸ¡£¢§ªª­´´µ¶¶·¸¸¼¹¹½¹¹¾ÂÇØÃÃÅÆÎÛÇÈÐÇÈÑËÌÌÑØäÒÔÅÔÔßÔ×ãÕÖÞÖ½××ÞרÝÙÙÙÚËÓÚ׿ÚÚâÛÛâÛÜãÛÞÍÜÖÞßàçààçàáçáÌÍâØÞãåìäÚÆäæÕåäêååæååëèçìéÙÛééìëèíëëïëëðììñííñïîòññôòòôòóóóóôóóõóóöôôöôô÷õõööööööøö÷÷÷÷÷÷÷ø÷÷ùøøúùùúùùûûûûûûüûûýüûüüüüüüýýýþþþýþþþþþÿþÿÿÿÿÿB±OüJtRNS !%&(-0?@KKLMX[^`ellmnoqv…’”˜ÇÇÈÈÐÐÛÛÜÜÞßææéñòöö÷øøøùûýþþþƲ°û IDATxÚ5Ï…RBEÑcww7vwbwwww7v·b*b¢ àý:ŸÌ°>`ÏlÈ)™;8Z¨AAÝ=nŒ³2›è­ 9½à¡©¥ îÿ.Ü É‘éuîéÕË·8B€ÇÌâêÄÎÿ]&}ãùÊì…­Ý½ÔØ˜ôÎŽ¶Ö]˜Ž®m%ã·ï€œ`ÇÙÜ? ô£ñÞ®†Á‰ì—™^ïmûõTL®0›;ç¿&ù?Õ” W÷Ô’3Tâï"Iš°°¼¢ª¤”¬OÞ燠ù9¿»¨ ¾8à Р=\6 +[òr‰" è‡6>ffçdQ´1þiz%ÔÑ×l>ÊDñ«jÉb¹ØÚø2V^ŽÚ¯£IEND®B`‚libspatialite-4.3.0a/test/sql_stmt_tests/mbr23.testcase0000664000175000017500000000043612544707704020176 00000000000000MbrTouches - Line + Point on :memory: #use in-memory database SELECT MbrTouches(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 2)")); 1 # rows (not including the header row) 1 # columns MbrTouches(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 2)")) # header 1libspatialite-4.3.0a/test/sql_stmt_tests/collect29.testcase0000664000175000017500000000070012544707704021043 00000000000000collect - LineStringZ, LineStringZM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGZ(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGZM(4 5 3.2 1, 1 2 4.6 2, 4 2 3.1 3)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGZ(1 2 4, 3 4 2)"), GeomFromText("LINESTRINGZM(4 5 3.2 1, 1 2 4.6 2, 4 2 3.1 3)"))) MULTILINESTRING ZM((1 2 4 0, 3 4 2 0), (4 5 3.2 1, 1 2 4.6 2, 4 2 3.1 3)) libspatialite-4.3.0a/test/sql_stmt_tests/setpoint11.testcase0000664000175000017500000000037312544707704021260 00000000000000ST_SetPoint() - INTEGER Point :memory: #use in-memory database SELECT ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, 1) 1 # rows (not including the header row) 1 # columns ST_SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ring6.testcase0000664000175000017500000000025512544707704020275 00000000000000ExteriorRing - float input (error) :memory: #use in-memory database SELECT ExteriorRing(3.14); 1 # rows (not including the header row) 1 # columns ExteriorRing(3.14) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridax1name3.testcase0000664000175000017500000000026612544707704021551 00000000000000SridGetAxis_1_Name() - DOUBLE SRID :memory: #use in-memory database SELECT SridGetAxis_1_Name(1.0) 1 # rows (not including the header row) 1 # columns SridGetAxis_1_Name(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/badKML1.testcase0000664000175000017500000000036512544707704020425 00000000000000bad KML: Point :memory: #use in-memory database SELECT GeomFromKML('1.1,2.21.1,2.20,0 4,0 4,4 0,4 0,01,1 2,1 2,2 1,2 1,15,5 6,5 6,6 5,6 5,50,0 4,0 4,4 0,4 0,01,1 2,1 2,2 1,2 1,15,5 6,5 6,6 5,6 5,5 :memory: #use in-memory database SELECT AsText(GeomFromGml('1 23 45 67 8')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('1 23 45 67 8')):0 LINESTRING(1 2, 3 4, 5 6, 7 8) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract2.testcase0000664000175000017500000000037112544707704022351 00000000000000Collection Extract - Point (NULL) :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POINT(1 2)"), 2)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POINT(1 2)"), 2)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/st_z9.testcase0000664000175000017500000000025212544707704020315 00000000000000ST_Z2 :memory: #use in-memory database SELECT Z(MakePointZ(-71, 42, 17, 4326)); 1 # rows (not including the header row) 1 # columns Z(MakePointZ(-71, 42, 17, 4326)) 17.0 libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb18.testcase0000664000175000017500000000120412544707704021023 00000000000000fromWkb - MULTILINESTRING with SRID :memory: #use in-memory database SELECT Hex(MultiLinestringFromWkb(AsBinary(GeomFromText("MULTILINESTRING((1 2, 2 1),(0 0, 2 5, 4 2))", 4326)), 4326)) 1 # rows (not including the header row) 1 # columns Hex(MultiLinestringFromWkb(AsBinary(GeomFromText("MULTILINESTRING((1 2, 2 1),(0 0, 2 5, 4 2))", 4326)), 4326)) 0001E610000000000000000000000000000000000000000000000000104000000000000014407C0500000002000000690200000002000000000000000000F03F00000000000000400000000000000040000000000000F03F690200000003000000000000000000000000000000000000000000000000000040000000000000144000000000000010400000000000000040FE libspatialite-4.3.0a/test/sql_stmt_tests/Makefile.am0000664000175000017500000015151212544707704017552 00000000000000 EXTRA_DIST = addpoint10.testcase \ addpoint11.testcase \ addpoint12.testcase \ addpoint13.testcase \ addpoint14.testcase \ addpoint15.testcase \ addpoint16.testcase \ addpoint17.testcase \ addpoint18.testcase \ addpoint19.testcase \ addpoint1.testcase \ addpoint20.testcase \ addpoint21.testcase \ addpoint22.testcase \ addpoint23.testcase \ addpoint24.testcase \ addpoint25.testcase \ addpoint26.testcase \ addpoint27.testcase \ addpoint28.testcase \ addpoint2.testcase \ addpoint3.testcase \ addpoint4.testcase \ addpoint5.testcase \ addpoint6.testcase \ addpoint7.testcase \ addpoint8.testcase \ addpoint9.testcase \ asbinary10.testcase \ asbinary11.testcase \ asbinary12.testcase \ asbinary13.testcase \ asbinary14.testcase \ asbinary15.testcase \ asbinary16.testcase \ asbinary17.testcase \ asbinary1.testcase \ asbinary2.testcase \ asbinary3.testcase \ asbinary4.testcase \ asbinary5.testcase \ asbinary6.testcase \ asbinary7.testcase \ asbinary8.testcase \ asbinary9.testcase \ asewkb10.testcase \ asewkb11.testcase \ asewkb12.testcase \ asewkb13.testcase \ asewkb14.testcase \ asewkb15.testcase \ asewkb16.testcase \ asewkb17.testcase \ asewkb1.testcase \ asewkb2.testcase \ asewkb3.testcase \ asewkb4.testcase \ asewkb5.testcase \ asewkb6.testcase \ asewkb7.testcase \ asewkb8.testcase \ asewkb9.testcase \ asfgf1.testcase \ asfgf2.testcase \ asfgf3.testcase \ asfgf4.testcase \ asfgf5.testcase \ asfgf6.testcase \ asfgf7.testcase \ asfgf8.testcase \ asfgf9.testcase \ asgeojson1.testcase \ asgeojson2.testcase \ asgeojson3.testcase \ asgeojson4.testcase \ asgeojson5.testcase \ asgeojson6.testcase \ asgeojson7.testcase \ asgeojson8.testcase \ asgml10.testcase \ asgml11.testcase \ asgml1.testcase \ asgml2.testcase \ asgml3.testcase \ asgml4.testcase \ asgml5.testcase \ asgml6.testcase \ asgml7.testcase \ asgml8.testcase \ asgml9.testcase \ assvg17.testcase \ assvg18.testcase \ assvg19.testcase \ assvg1.testcase \ assvg20.testcase \ assvg21.testcase \ assvg22.testcase \ assvg23.testcase \ assvg24.testcase \ assvg25.testcase \ assvg26.testcase \ assvg2.testcase \ assvg3.testcase \ assvg4.testcase \ assvg5.testcase \ assvg6.testcase \ assvg7.testcase \ assvg8.testcase \ assvg9.testcase \ aswkt-text.testcase \ atmastext1.testcase \ atmastext2.testcase \ atmastext3.testcase \ atmastext4.testcase \ atmastext5.testcase \ atmastext6.testcase \ atmcreate1.testcase \ atmcreate2.testcase \ atmcreate3.testcase \ atmcreate4.testcase \ atmcreate5.testcase \ atmcreate6.testcase \ atmcreate7.testcase \ atmcreate8.testcase \ atmcreate9.testcase \ atmcreate10.testcase \ atmcreate11.testcase \ atmcreate12.testcase \ atmcreate13.testcase \ atmcreate14.testcase \ atmcreate15.testcase \ atmcreate16.testcase \ atmcreate17.testcase \ atmcreate18.testcase \ atmcreate19.testcase \ atmcreate20.testcase \ atmcreate21.testcase \ atmcreate22.testcase \ atmcreate23.testcase \ atmcreatescale1.testcase \ atmcreatescale2.testcase \ atmcreatescale3.testcase \ atmcreatescale4.testcase \ atmcreatescale5.testcase \ atmcreatescale6.testcase \ atmcreatescale7.testcase \ atmcreatescale8.testcase \ atmcreatescale9.testcase \ atmcreatetrans1.testcase \ atmcreatetrans2.testcase \ atmcreatetrans3.testcase \ atmcreatetrans4.testcase \ atmcreatetrans5.testcase \ atmcreatetrans6.testcase \ atmcreatetrans7.testcase \ atmcreatetrans8.testcase \ atmcreatetrans9.testcase \ atmcreatexroll1.testcase \ atmcreatexroll2.testcase \ atmcreatexroll3.testcase \ atmcreateyroll1.testcase \ atmcreateyroll2.testcase \ atmcreateyroll3.testcase \ atmcreatezroll1.testcase \ atmcreatezroll2.testcase \ atmcreatezroll3.testcase \ atmdeterminant1.testcase \ atmdeterminant2.testcase \ atmdeterminant3.testcase \ atmdeterminant4.testcase \ atminvert1.testcase \ atminvert2.testcase \ atminvert3.testcase \ atminvert4.testcase \ atmisinvert1.testcase \ atmisinvert2.testcase \ atmisinvert3.testcase \ atmisinvert4.testcase \ atmisvalid1.testcase \ atmisvalid2.testcase \ atmisvalid3.testcase \ atmisvalid4.testcase \ atmisvalid5.testcase \ atmisvalid6.testcase \ atmmultiply1.testcase \ atmmultiply2.testcase \ atmmultiply3.testcase \ atmmultiply4.testcase \ atmmultiply5.testcase \ atmscale1.testcase \ atmscale2.testcase \ atmscale3.testcase \ atmscale4.testcase \ atmscale5.testcase \ atmscale6.testcase \ atmscale7.testcase \ atmscale8.testcase \ atmscale9.testcase \ atmscale10.testcase \ atmscale11.testcase \ atmscale12.testcase \ atmscale13.testcase \ atmtrans1.testcase \ atmtrans2.testcase \ atmtrans3.testcase \ atmtrans4.testcase \ atmtrans5.testcase \ atmtrans6.testcase \ atmtrans7.testcase \ atmtrans8.testcase \ atmtrans9.testcase \ atmtrans10.testcase \ atmtrans11.testcase \ atmtrans12.testcase \ atmtrans13.testcase \ atmtransform1.testcase \ atmtransform2.testcase \ atmtransform3.testcase \ atmtransform4.testcase \ atmtransform5.testcase \ atmtransform6.testcase \ atmtransform7.testcase \ atmtransform8.testcase \ atmxroll1.testcase \ atmxroll2.testcase \ atmxroll3.testcase \ atmxroll4.testcase \ atmxroll5.testcase \ atmyroll1.testcase \ atmyroll2.testcase \ atmyroll3.testcase \ atmyroll4.testcase \ atmyroll5.testcase \ atmzroll1.testcase \ atmzroll2.testcase \ atmzroll3.testcase \ atmzroll4.testcase \ atmzroll5.testcase \ badEWKT1.testcase \ badEWKT2.testcase \ badEWKT3.testcase \ badEWKT4.testcase \ badEWKT5.testcase \ badEWKT6.testcase \ badEWKT7.testcase \ badEWKT8.testcase \ badGeoJSON1.testcase \ badGeoJSON2.testcase \ badGeoJSON3.testcase \ badGeoJSON4.testcase \ badGeoJSON5.testcase \ badGeoJSON6.testcase \ badGeoJSON7.testcase \ badGML1.testcase \ badGML2.testcase \ badGML3.testcase \ badGML4.testcase \ badGML5.testcase \ badGML6.testcase \ badGML7.testcase \ badKML1.testcase \ badKML2.testcase \ badKML3.testcase \ badKML4.testcase \ badKML5.testcase \ badKML6.testcase \ badKML7.testcase \ badwkt1.testcase \ badwkt2.testcase \ badwkt3.testcase \ badwkt4.testcase \ badwkt5.testcase \ badwkt6.testcase \ badwkt7.testcase \ badwkt8.testcase \ badwkt9.testcase \ buildcirclembr10.testcase \ buildcirclembr11.testcase \ buildcirclembr12.testcase \ buildcirclembr1.testcase \ buildcirclembr2.testcase \ buildcirclembr3.testcase \ buildcirclembr4.testcase \ buildcirclembr5.testcase \ buildcirclembr6.testcase \ buildcirclembr7.testcase \ buildcirclembr8.testcase \ buildcirclembr9.testcase \ buildmbr10.testcase \ buildmbr11.testcase \ buildmbr12.testcase \ buildmbr13.testcase \ buildmbr14.testcase \ buildmbr1.testcase \ buildmbr2.testcase \ buildmbr3.testcase \ buildmbr4.testcase \ buildmbr5.testcase \ buildmbr6.testcase \ buildmbr7.testcase \ buildmbr8.testcase \ buildmbr9.testcase \ casttoblob10.testcase \ casttoblob12.testcase \ casttoblob13.testcase \ casttoblob14.testcase \ casttoblob1.testcase \ casttoblob2.testcase \ casttoblob3.testcase \ casttoblob4.testcase \ casttoblob5.testcase \ casttoblob6.testcase \ casttoblob7.testcase \ casttoblob8.testcase \ casttoblob9.testcase \ casttodouble1.testcase \ casttodouble2.testcase \ casttodouble3.testcase \ casttodouble4.testcase \ casttodouble5.testcase \ casttodouble6.testcase \ casttodouble7.testcase \ casttogeometrycollection2.testcase \ casttogeometrycollection3.testcase \ casttogeometrycollection4.testcase \ casttogeometrycollection5.testcase \ casttogeometrycollection6.testcase \ casttogeometrycollection.testcase \ casttoint1.testcase \ casttoint2.testcase \ casttoint3.testcase \ casttoint4.testcase \ casttoint5.testcase \ casttoint6.testcase \ casttoint7.testcase \ casttolinestring1.testcase \ casttolinestring2.testcase \ casttolinestring3.testcase \ casttolinestring4.testcase \ casttolinestring5.testcase \ casttolinestring6.testcase \ casttolinestring7.testcase \ casttolinestring8.testcase \ casttomulti11.testcase \ casttomulti1.testcase \ casttomulti2.testcase \ casttomulti3.testcase \ casttomulti4.testcase \ casttomulti5.testcase \ casttomulti6.testcase \ casttomulti7.testcase \ casttomulti8.testcase \ casttomultilinestring1.testcase \ casttomultilinestring2.testcase \ casttomultilinestring3.testcase \ casttomultilinestring4.testcase \ casttomultilinestring5.testcase \ casttomultilinestring6.testcase \ casttomultilinestring7.testcase \ casttomultipoint1.testcase \ casttomultipoint2.testcase \ casttomultipoint3.testcase \ casttomultipoint4.testcase \ casttomultipoint5.testcase \ casttomultipoint6.testcase \ casttomultipoint7.testcase \ casttomultipoint8.testcase \ casttomultipoint9.testcase \ casttomultipolygon1.testcase \ casttomultipolygon2.testcase \ casttomultipolygon3.testcase \ casttomultipolygon4.testcase \ casttomultipolygon5.testcase \ casttopoint1.testcase \ casttopoint2.testcase \ casttopoint3.testcase \ casttopoint4.testcase \ casttopoint5.testcase \ casttopoint6.testcase \ casttopoint7.testcase \ casttopoint8.testcase \ casttopoly1.testcase \ casttopoly2.testcase \ casttopoly3.testcase \ casttopoly4.testcase \ casttopoly5.testcase \ casttopoly6.testcase \ casttopoly7.testcase \ casttopoly8.testcase \ casttosingle10.testcase \ casttosingle12.testcase \ casttosingle1.testcase \ casttosingle2.testcase \ casttosingle3.testcase \ casttosingle4.testcase \ casttosingle5.testcase \ casttosingle6.testcase \ casttosingle7.testcase \ casttosingle8.testcase \ casttosingle9.testcase \ casttotext10.testcase \ casttotext11.testcase \ casttotext12.testcase \ casttotext13.testcase \ casttotext14.testcase \ casttotext15.testcase \ casttotext1.testcase \ casttotext2.testcase \ casttotext3.testcase \ casttotext4.testcase \ casttotext5.testcase \ casttotext6.testcase \ casttotext7.testcase \ casttotext8.testcase \ casttotext9.testcase \ casttoxy1.testcase \ casttoxy2.testcase \ casttoxy3.testcase \ casttoxym1.testcase \ casttoxym2.testcase \ casttoxym3.testcase \ casttoxym4.testcase \ casttoxym5.testcase \ casttoxym6.testcase \ casttoxyz1.testcase \ casttoxyz2.testcase \ casttoxyz3.testcase \ casttoxyz4.testcase \ casttoxyz5.testcase \ casttoxyz6.testcase \ casttoxyzm1.testcase \ casttoxyzm2.testcase \ casttoxyzm3.testcase \ casttoxyzm4.testcase \ casttoxyzm5.testcase \ casttoxyzm6.testcase \ checkspatialmetadata1.testcase \ checkspatialmetadata2.testcase \ checkspatialmetadata3.testcase \ checkdupl1.testcase \ checkdupl2.testcase \ checkspatialmetadata4.testcase \ checkspatialmetadata5.testcase \ clonetable1.testcase \ clonetable2.testcase \ clonetable3.testcase \ clonetable4.testcase \ clonetable5.testcase \ clonetable6.testcase \ clonetable7.testcase \ clonetable8.testcase \ clonetable9.testcase \ clonetable10.testcase \ clonetable11.testcase \ clonetable12.testcase \ clonetable13.testcase \ clonetable14.testcase \ clonetable15.testcase \ ch_m.testcase \ cm_m.testcase \ collect10.testcase \ collect11.testcase \ collect12.testcase \ collect13.testcase \ collect14.testcase \ collect15.testcase \ collect16.testcase \ collect17.testcase \ collect18.testcase \ collect19.testcase \ collect1.testcase \ collect20.testcase \ collect21.testcase \ collect23.testcase \ collect24.testcase \ collect25.testcase \ collect26.testcase \ collect27.testcase \ collect28.testcase \ collect29.testcase \ collect2.testcase \ collect30.testcase \ collect31.testcase \ collect32.testcase \ collect33.testcase \ collect34.testcase \ collect35.testcase \ collect36.testcase \ collect37.testcase \ collect38.testcase \ collect39.testcase \ collect3.testcase \ collect40.testcase \ collect41.testcase \ collect42.testcase \ collect43.testcase \ collect44.testcase \ collect45.testcase \ collect46.testcase \ collect47.testcase \ collect48.testcase \ collect49.testcase \ collect4.testcase \ collect50.testcase \ collect51.testcase \ collect52.testcase \ collect53.testcase \ collect54.testcase \ collect55.testcase \ collect56.testcase \ collect57.testcase \ collect58.testcase \ collect59.testcase \ collect5.testcase \ collect6.testcase \ collect7.testcase \ collect8.testcase \ collect9.testcase \ collectextract10.testcase \ collectextract11.testcase \ collectextract12.testcase \ collectextract13.testcase \ collectextract14.testcase \ collectextract15.testcase \ collectextract16.testcase \ collectextract17.testcase \ collectextract18.testcase \ collectextract19.testcase \ collectextract1.testcase \ collectextract20.testcase \ collectextract21.testcase \ collectextract22.testcase \ collectextract23.testcase \ collectextract24.testcase \ collectextract25.testcase \ collectextract2.testcase \ collectextract3.testcase \ collectextract4.testcase \ collectextract5.testcase \ collectextract6.testcase \ collectextract7.testcase \ collectextract8.testcase \ collectextract9.testcase \ compressgeometry10.testcase \ compressgeometry11.testcase \ compressgeometry12.testcase \ compressgeometry13.testcase \ compressgeometry14.testcase \ compressgeometry15.testcase \ compressgeometry17.testcase \ compressgeometry18.testcase \ compressgeometry19.testcase \ compressgeometry1.testcase \ compressgeometry20.testcase \ compressgeometry21.testcase \ compressgeometry22.testcase \ compressgeometry23.testcase \ compressgeometry24.testcase \ compressgeometry25.testcase \ compressgeometry26.testcase \ compressgeometry27.testcase \ compressgeometry28.testcase \ compressgeometry29.testcase \ compressgeometry2.testcase \ compressgeometry30.testcase \ compressgeometry31.testcase \ compressgeometry32.testcase \ compressgeometry33.testcase \ compressgeometry34.testcase \ compressgeometry35.testcase \ compressgeometry36.testcase \ compressgeometry37.testcase \ compressgeometry38.testcase \ compressgeometry39.testcase \ compressgeometry3.testcase \ compressgeometry40.testcase \ compressgeometry41.testcase \ compressgeometry42.testcase \ compressgeometry43.testcase \ compressgeometry44.testcase \ compressgeometry45.testcase \ compressgeometry46.testcase \ compressgeometry47.testcase \ compressgeometry48.testcase \ compressgeometry49.testcase \ compressgeometry4.testcase \ compressgeometry50.testcase \ compressgeometry51.testcase \ compressgeometry52.testcase \ compressgeometry53.testcase \ compressgeometry54.testcase \ compressgeometry55.testcase \ compressgeometry56.testcase \ compressgeometry57.testcase \ compressgeometry58.testcase \ compressgeometry59.testcase \ compressgeometry5.testcase \ compressgeometry60.testcase \ compressgeometry61.testcase \ compressgeometry62.testcase \ compressgeometry63.testcase \ compressgeometry64.testcase \ compressgeometry65.testcase \ compressgeometry66.testcase \ compressgeometry67.testcase \ compressgeometry68.testcase \ compressgeometry69.testcase \ compressgeometry6.testcase \ compressgeometry7.testcase \ compressgeometry8.testcase \ compressgeometry9.testcase \ createrastercoverages.testcase \ createvectorcoverages.testcase \ createuuid1.testcase \ decodeurl1.testcase \ decodeurl2.testcase \ decodeurl3.testcase \ decodeurl4.testcase \ decodeurl5.testcase \ dirfrompath1.testcase \ dirfrompath2.testcase \ dirfrompath3.testcase \ dirfrompath4.testcase \ dirfrompath5.testcase \ dimension1.testcase \ dimension2.testcase \ dimension3.testcase \ dimension4.testcase \ dimension5.testcase \ dimension6.testcase \ dimension7.testcase \ dimension8.testcase \ dissolve10.testcase \ dissolve11.testcase \ dissolve12.testcase \ dissolve13.testcase \ dissolve14.testcase \ dissolve15.testcase \ dissolve16.testcase \ dissolve17.testcase \ dissolve18.testcase \ dissolve19.testcase \ dissolve1.testcase \ dissolve20.testcase \ dissolve21.testcase \ dissolve22.testcase \ dissolve23.testcase \ dissolve24.testcase \ dissolve25.testcase \ dissolve26.testcase \ dissolve27.testcase \ dissolve28.testcase \ dissolve29.testcase \ dissolve2.testcase \ dissolve30.testcase \ dissolve3.testcase \ dissolve4.testcase \ dissolve5.testcase \ dissolve6.testcase \ dissolve7.testcase \ dissolve8.testcase \ dissolve9.testcase \ dm_m.testcase \ DSC_1467.JPG \ DSCN0042.JPG \ dropgeo1.testcase \ dropgeo2.testcase \ dropgeo3.testcase \ dropgeo4.testcase \ dropgeo5.testcase \ dropgeo6.testcase \ dropgeo7.testcase \ dropgeo8.testcase \ dropgeo9.testcase \ elemgeo1.testcase \ elemgeo2.testcase \ elemgeo3.testcase \ elemgeo4.testcase \ elemgeo5.testcase \ elemgeo6.testcase \ elemgeo7.testcase \ elemgeo8.testcase \ emptyfile.txt \ encodeurl1.testcase \ encodeurl2.testcase \ encodeurl3.testcase \ encodeurl4.testcase \ encodeurl5.testcase \ endpoint1.testcase \ envelope1.testcase \ envelope2.testcase \ envelope3.testcase \ envelope4.testcase \ envelope5.testcase \ envelope6.testcase \ envelope7.testcase \ envintersects10.testcase \ envintersects1.testcase \ envintersects2.testcase \ envintersects3.testcase \ envintersects4.testcase \ envintersects5.testcase \ envintersects6.testcase \ envintersects7.testcase \ envintersects8.testcase \ envintersects9.testcase \ ewkb10.testcase \ ewkb11.testcase \ ewkb12.testcase \ ewkb1.testcase \ ewkb2.testcase \ ewkb3.testcase \ ewkb4.testcase \ ewkb5.testcase \ ewkb6.testcase \ ewkb7.testcase \ ewkb8.testcase \ ewkb9.testcase \ expand1.testcase \ expand2.testcase \ expand3.testcase \ expand4.testcase \ expand5.testcase \ expand6.testcase \ expand7.testcase \ extfrompath1.testcase \ extfrompath2.testcase \ extfrompath3.testcase \ extfrompath4.testcase \ extfrompath5.testcase \ extent1.testcase \ extractmultilinestring1.testcase \ extractmultilinestring2.testcase \ extractmultilinestring3.testcase \ extractmultipoint1.testcase \ extractmultipoint2.testcase \ extractmultipoint3.testcase \ extractmultipolygon1.testcase \ extractmultipolygon2.testcase \ extractmultipolygon3.testcase \ fath_m.testcase \ fdo_ogr1.testcase \ fdo_ogr2.testcase \ fdo-wkb.sqlite_RO \ forcenull10.testcase \ forcenull11.testcase \ forcenull12.testcase \ forcenull13.testcase \ forcenull14.testcase \ forcenull15.testcase \ forcenull16.testcase \ forcenull17.testcase \ forcenull18.testcase \ forcenull19.testcase \ forcenull1.testcase \ forcenull20.testcase \ forcenull21.testcase \ forcenull22.testcase \ forcenull23.testcase \ forcenull24.testcase \ forcenull25.testcase \ forcenull26.testcase \ forcenull27.testcase \ forcenull28.testcase \ forcenull2.testcase \ forcenull3.testcase \ forcenull4.testcase \ forcenull5.testcase \ forcenull6.testcase \ forcenull7.testcase \ forcenull8.testcase \ forcenull9.testcase \ fromewkt10.testcase \ fromewkt11.testcase \ fromewkt12.testcase \ fromewkt13.testcase \ fromewkt14.testcase \ fromewkt15.testcase \ fromewkt16.testcase \ fromewkt17.testcase \ fromewkt18.testcase \ fromewkt19.testcase \ fromewkt1.testcase \ fromewkt20.testcase \ fromewkt22.testcase \ fromewkt23.testcase \ fromewkt24.testcase \ fromewkt25.testcase \ fromewkt26.testcase \ fromewkt27.testcase \ fromewkt28.testcase \ fromewkt29.testcase \ fromewkt2.testcase \ fromewkt30.testcase \ fromewkt31.testcase \ fromewkt32.testcase \ fromewkt33.testcase \ fromewkt34.testcase \ fromewkt35.testcase \ fromewkt36.testcase \ fromewkt37.testcase \ fromewkt38.testcase \ fromewkt39.testcase \ fromewkt3.testcase \ fromewkt4.testcase \ fromewkt5.testcase \ fromewkt6.testcase \ fromewkt7.testcase \ fromewkt8.testcase \ fromewkt9.testcase \ fromgeojson10.testcase \ fromgeojson11.testcase \ fromgeojson12.testcase \ fromgeojson13.testcase \ fromgeojson14.testcase \ fromgeojson15.testcase \ fromgeojson16.testcase \ fromgeojson17.testcase \ fromgeojson18.testcase \ fromgeojson19.testcase \ fromgeojson1.testcase \ fromgeojson20.testcase \ fromgeojson21.testcase \ fromgeojson22.testcase \ fromgeojson23.testcase \ fromgeojson24.testcase \ fromgeojson25.testcase \ fromgeojson26.testcase \ fromgeojson27.testcase \ fromgeojson28.testcase \ fromgeojson29.testcase \ fromgeojson2.testcase \ fromgeojson30.testcase \ fromgeojson31.testcase \ fromgeojson32.testcase \ fromgeojson3.testcase \ fromgeojson4.testcase \ fromgeojson5.testcase \ fromgeojson6.testcase \ fromgeojson7.testcase \ fromgeojson8.testcase \ fromgeojson9.testcase \ fromgml10.testcase \ fromgml11.testcase \ fromgml12.testcase \ fromgml13.testcase \ fromgml14.testcase \ fromgml15.testcase \ fromgml16.testcase \ fromgml17.testcase \ fromgml18.testcase \ fromgml19.testcase \ fromgml1.testcase \ fromgml20.testcase \ fromgml21.testcase \ fromgml22.testcase \ fromgml23.testcase \ fromgml24.testcase \ fromgml25.testcase \ fromgml26.testcase \ fromgml27.testcase \ fromgml28.testcase \ fromgml29.testcase \ fromgml2.testcase \ fromgml30.testcase \ fromgml31.testcase \ fromgml32.testcase \ fromgml33.testcase \ fromgml34.testcase \ fromgml35.testcase \ fromgml36.testcase \ fromgml37.testcase \ fromgml38.testcase \ fromgml39.testcase \ fromgml3.testcase \ fromgml40.testcase \ fromgml41.testcase \ fromgml43.testcase \ fromgml44.testcase \ fromgml45.testcase \ fromgml46.testcase \ fromgml47.testcase \ fromgml48.testcase \ fromgml49.testcase \ fromgml4.testcase \ fromgml50.testcase \ fromgml51.testcase \ fromgml52.testcase \ fromgml53.testcase \ fromgml54.testcase \ fromgml55.testcase \ fromgml56.testcase \ fromgml57.testcase \ fromgml58.testcase \ fromgml59.testcase \ fromgml5.testcase \ fromgml60.testcase \ fromgml61.testcase \ fromgml6.testcase \ fromgml7.testcase \ fromgml8.testcase \ fromgml9.testcase \ fromWkb10.testcase \ fromWkb11.testcase \ fromWkb12.testcase \ fromWkb13.testcase \ fromWkb14.testcase \ fromWkb15.testcase \ fromWkb16.testcase \ fromWkb17.testcase \ fromWkb18.testcase \ fromWkb19.testcase \ fromWkb1.testcase \ fromWkb20.testcase \ fromWkb21.testcase \ fromWkb22.testcase \ fromWkb23.testcase \ fromWkb24.testcase \ fromWkb25.testcase \ fromWkb26.testcase \ fromWkb2.testcase \ fromWkb3.testcase \ fromWkb4.testcase \ fromWkb5.testcase \ fromWkb6.testcase \ fromWkb7.testcase \ fromWkb8.testcase \ fromWkb9.testcase \ ft_m.testcase \ fullnamefrompath1.testcase \ fullnamefrompath2.testcase \ fullnamefrompath3.testcase \ fullnamefrompath4.testcase \ fullnamefrompath5.testcase \ garsmbr10.testcase \ garsmbr11.testcase \ garsmbr12.testcase \ garsmbr13.testcase \ garsmbr14.testcase \ garsmbr15.testcase \ garsmbr16.testcase \ garsmbr17.testcase \ garsmbr18.testcase \ garsmbr1.testcase \ garsmbr20.testcase \ garsmbr21.testcase \ garsmbr22.testcase \ garsmbr23.testcase \ garsmbr24.testcase \ garsmbr25.testcase \ garsmbr26.testcase \ garsmbr27.testcase \ garsmbr28.testcase \ garsmbr29.testcase \ garsmbr2.testcase \ garsmbr30.testcase \ garsmbr31.testcase \ garsmbr32.testcase \ garsmbr33.testcase \ garsmbr34.testcase \ garsmbr35.testcase \ garsmbr36.testcase \ garsmbr3.testcase \ garsmbr4.testcase \ garsmbr5.testcase \ garsmbr6.testcase \ garsmbr7.testcase \ garsmbr8.testcase \ garsmbr9.testcase \ geodesic-len1.testcase \ geodesic-len2.testcase \ geodesic-len3.testcase \ geodesic-len4.testcase \ geodesic-len5.testcase \ geodesic-len6.testcase \ geodesic-len7.testcase \ geodesic-len8.testcase \ geojson1.testcase \ geojson2.testcase \ geojson3.testcase \ geojson4.testcase \ geojson5.testcase \ geojson6.testcase \ geomcollfromtext1.testcase \ geomcollfromtext2.testcase \ geomconstraints10.testcase \ geomconstraints11.testcase \ geomconstraints12.testcase \ geomconstraints13.testcase \ geomconstraints14.testcase \ geomconstraints15.testcase \ geomconstraints16.testcase \ geomconstraints17.testcase \ geomconstraints18.testcase \ geomconstraints19.testcase \ geomconstraints1.testcase \ geomconstraints20.testcase \ geomconstraints21.testcase \ geomconstraints22.testcase \ geomconstraints23.testcase \ geomconstraints24.testcase \ geomconstraints25.testcase \ geomconstraints26.testcase \ geomconstraints27.testcase \ geomconstraints28.testcase \ geomconstraints2.testcase \ geomconstraints3.testcase \ geomconstraints4.testcase \ geomconstraints5.testcase \ geomconstraints6.testcase \ geomconstraints7.testcase \ geomconstraints8.testcase \ geomconstraints9.testcase \ geometryn10.testcase \ geometryn11.testcase \ geometryn12.testcase \ geometryn13.testcase \ geometryn14.testcase \ geometryn15.testcase \ geometryn16.testcase \ geometryn17.testcase \ geometryn18.testcase \ geometryn19.testcase \ geometryn1.testcase \ geometryn20.testcase \ geometryn2.testcase \ geometryn3.testcase \ geometryn4.testcase \ geometryn5.testcase \ geometryn6.testcase \ geometryn7.testcase \ geometryn8.testcase \ geometryn9.testcase \ geometryn.testcase \ geomfromewkb1.testcase \ geomfromewkb2.testcase \ geomfromkml10.testcase \ geomfromkml11.testcase \ geomfromkml12.testcase \ geomfromkml13.testcase \ geomfromkml14.testcase \ geomfromkml15.testcase \ geomfromkml16.testcase \ geomfromkml17.testcase \ geomfromkml18.testcase \ geomfromkml19.testcase \ geomfromkml1.testcase \ geomfromkml20.testcase \ geomfromkml21.testcase \ geomfromkml22.testcase \ geomfromkml23.testcase \ geomfromkml2.testcase \ geomfromkml3.testcase \ geomfromkml4.testcase \ geomfromkml5.testcase \ geomfromkml6.testcase \ geomfromkml7.testcase \ geomfromkml8.testcase \ geomfromkml9.testcase \ geomfromtext10.testcase \ geomfromtext11.testcase \ geomfromtext12.testcase \ geomfromtext13.testcase \ geomfromtext14.testcase \ geomfromtext15.testcase \ geomfromtext16.testcase \ geomfromtext17.testcase \ geomfromtext18.testcase \ geomfromtext19.testcase \ geomfromtext1.testcase \ geomfromtext20.testcase \ geomfromtext21.testcase \ geomfromtext22.testcase \ geomfromtext23.testcase \ geomfromtext24.testcase \ geomfromtext25.testcase \ geomfromtext26.testcase \ geomfromtext27.testcase \ geomfromtext28.testcase \ geomfromtext29.testcase \ geomfromtext2.testcase \ geomfromtext30.testcase \ geomfromtext31.testcase \ geomfromtext32.testcase \ geomfromtext33.testcase \ geomfromtext34.testcase \ geomfromtext35.testcase \ geomfromtext36.testcase \ geomfromtext37.testcase \ geomfromtext38.testcase \ geomfromtext39.testcase \ geomfromtext3.testcase \ geomfromtext40.testcase \ geomfromtext41.testcase \ geomfromtext42.testcase \ geomfromtext43.testcase \ geomfromtext44.testcase \ geomfromtext45.testcase \ geomfromtext4.testcase \ geomfromtext5.testcase \ geomfromtext6.testcase \ geomfromtext7.testcase \ geomfromtext8.testcase \ geomfromtext9.testcase \ geomtype10.testcase \ geomtype11.testcase \ geomtype12.testcase \ geomtype13.testcase \ geomtype14.testcase \ geomtype15.testcase \ geomtype16.testcase \ geomtype17.testcase \ geomtype18.testcase \ geomtype19.testcase \ geomtype1.testcase \ geomtype20.testcase \ geomtype21.testcase \ geomtype22.testcase \ geomtype23.testcase \ geomtype24.testcase \ geomtype25.testcase \ geomtype26.testcase \ geomtype27.testcase \ geomtype28.testcase \ geomtype29.testcase \ geomtype2.testcase \ geomtype30.testcase \ geomtype31.testcase \ geomtype32.testcase \ geomtype33.testcase \ geomtype34.testcase \ geomtype35.testcase \ geomtype36.testcase \ geomtype37.testcase \ geomtype38.testcase \ geomtype39.testcase \ geomtype3.testcase \ geomtype40.testcase \ geomtype41.testcase \ geomtype42.testcase \ geomtype43.testcase \ geomtype44.testcase \ geomtype45.testcase \ geomtype46.testcase \ geomtype47.testcase \ geomtype48.testcase \ geomtype49.testcase \ geomtype4.testcase \ geomtype50.testcase \ geomtype51.testcase \ geomtype52.testcase \ geomtype53.testcase \ geomtype54.testcase \ geomtype55.testcase \ geomtype56.testcase \ geomtype57.testcase \ geomtype58.testcase \ geomtype59.testcase \ geomtype5.testcase \ geomtype60.testcase \ geomtype61.testcase \ geomtype62.testcase \ geomtype63.testcase \ geomtype64.testcase \ geomtype65.testcase \ geomtype66.testcase \ geomtype67.testcase \ geomtype68.testcase \ geomtype69.testcase \ geomtype6.testcase \ geomtype7.testcase \ geomtype8.testcase \ geomtype9.testcase \ getmimetype1.testcase \ getmimetype2.testcase \ getmimetype3.testcase \ getmimetype4.testcase \ getmimetype5.testcase \ gml10.testcase \ gml11.testcase \ gml12.testcase \ gml13.testcase \ gml14.testcase \ gml15.testcase \ gml16.testcase \ gml1.testcase \ gml2.testcase \ gml3.testcase \ gml4.testcase \ gml5.testcase \ gml6.testcase \ gml7.testcase \ gml8.testcase \ gml9.testcase \ greatcircle-badblob.testcase \ greatcircle-poly2.testcase \ greatcircle-poly3.testcase \ greatcircle-poly4.testcase \ greatcircle-poly5.testcase \ greatcircle-poly6.testcase \ greatcircle-poly7.testcase \ greatcircle-poly.testcase \ greatcircle.testcase \ greatcircle-text.testcase \ ind_ch_m.testcase \ ind_ft_m.testcase \ ind_yd_m.testcase \ in_m.testcase \ is3d1.testcase \ is3d2.testcase \ is3d3.testcase \ is3d4.testcase \ is3d5.testcase \ is3d6.testcase \ isempty2.testcase \ isempty3.testcase \ isempty4.testcase \ isempty.testcase \ ismeasured1.testcase \ ismeasured2.testcase \ ismeasured3.testcase \ ismeasured4.testcase \ ismeasured5.testcase \ ismeasured6.testcase \ ispopulatedcoverage1.testcase \ ispopulatedcoverage2.testcase \ checkfontfacename1.testcase \ checkfontfacename2.testcase \ checkfontfacename3.testcase \ getfontfamily.testcase \ isfontbold.testcase \ isfontitalic.testcase \ isvalidfont1.testcase \ isvalidfont2.testcase \ isvalidnodata1.testcase \ isvalidnodata2.testcase \ isvalidnodata3.testcase \ isvalidnodata4.testcase \ isvalidpalette1.testcase \ isvalidpalette2.testcase \ isvalidpalette3.testcase \ isvalidrasterstats1.testcase \ isvalidrasterstats2.testcase \ isvalidrasterstats3.testcase \ isvalidrasterstats4.testcase \ isvalidrasterstats5.testcase \ isvalidrasterstats6.testcase \ isvalidrasterstats7.testcase \ isvalidrastertile1.testcase \ isvalidrastertile2.testcase \ isvalidrastertile3.testcase \ isvalidrastertile4.testcase \ isvalidrastertile5.testcase \ isvalidrastertile6.testcase \ isXblob5.testcase \ isXblob6.testcase \ isXblob7.testcase \ k3b-icon.png \ km_m.testcase \ ktorrent_grad1.jpg \ ktorrent_sidebar.gif \ La_folla_durante_il_Palio.jpg \ lhr1.testcase \ lhr2.testcase \ lhr3.testcase \ lhr4.testcase \ lhr5.testcase \ lhr6.testcase \ linefromtext1.testcase \ linefromtext2.testcase \ linesfromrings1.testcase \ linesfromrings2.testcase \ linesfromrings3.testcase \ linesfromrings4.testcase \ linesfromrings5.testcase \ linesfromrings6.testcase \ linesfromrings7.testcase \ link_m.testcase \ locatemeasure10.testcase \ locatemeasure11.testcase \ locatemeasure12.testcase \ locatemeasure13.testcase \ locatemeasure14.testcase \ locatemeasure15.testcase \ locatemeasure16.testcase \ locatemeasure17.testcase \ locatemeasure18.testcase \ locatemeasure19.testcase \ locatemeasure1.testcase \ locatemeasure2.testcase \ locatemeasure3.testcase \ locatemeasure4.testcase \ locatemeasure5.testcase \ locatemeasure6.testcase \ locatemeasure7.testcase \ locatemeasure8.testcase \ locatemeasure9.testcase \ makeline10.testcase \ makeline11.testcase \ makeline12.testcase \ makeline13.testcase \ makeline14.testcase \ makeline15.testcase \ makeline16.testcase \ makeline17.testcase \ makeline18.testcase \ makeline19.testcase \ makeline20.testcase \ makeline21.testcase \ makeline22.testcase \ makeline23.testcase \ makeline24.testcase \ makeline25.testcase \ makeline26.testcase \ makeline27.testcase \ makeline28.testcase \ makeline29.testcase \ makeline2.testcase \ makeline3.testcase \ makeline30.testcase \ makeline31.testcase \ makeline32.testcase \ makeline4.testcase \ makeline5.testcase \ makeline6.testcase \ makeline7.testcase \ makeline8.testcase \ makeline9.testcase \ makeline.testcase \ makepoint10.testcase \ makepoint11.testcase \ makepoint12.testcase \ makepoint13.testcase \ makepoint14.testcase \ makepoint15.testcase \ makepoint1.testcase \ makepoint2.testcase \ makepoint3.testcase \ makepoint4.testcase \ makepoint5.testcase \ makepoint6.testcase \ makepoint7.testcase \ makepoint8.testcase \ makepoint9.testcase \ makepointm-null1.testcase \ makepointm-null2.testcase \ makepointm-null3.testcase \ makepointm-null4.testcase \ makepointm-null5.testcase \ makepointm-null6.testcase \ makepointm-null7.testcase \ makepointm-null8.testcase \ makepoint-null1.testcase \ makepoint-null2.testcase \ makepoint-null3.testcase \ makepoint-null4.testcase \ makepoint-null5.testcase \ makepoint-null6.testcase \ makepoint-null7.testcase \ makepointzm-null10.testcase \ makepointzm-null1.testcase \ makepointzm-null2.testcase \ makepointzm-null3.testcase \ makepointzm-null4.testcase \ makepointzm-null5.testcase \ makepointzm-null6.testcase \ makepointzm-null7.testcase \ makepointzm-null8.testcase \ makepointzm-null9.testcase \ makepointz-null1.testcase \ makepointz-null2.testcase \ makepointz-null3.testcase \ makepointz-null4.testcase \ makepointz-null5.testcase \ makepointz-null6.testcase \ makepointz-null7.testcase \ makepointz-null8.testcase \ makepointz-null9.testcase \ makecircle1.testcase \ makecircle2.testcase \ makecircle3.testcase \ makecircle4.testcase \ makecircle5.testcase \ makecircle6.testcase \ makecircle7.testcase \ makecircle8.testcase \ makecircle9.testcase \ makeellipse1.testcase \ makeellipse2.testcase \ makeellipse3.testcase \ makeellipse4.testcase \ makeellipse5.testcase \ makeellipse6.testcase \ makeellipse7.testcase \ makeellipse8.testcase \ makeellipse9.testcase \ makeellipse10.testcase \ makeellipse11.testcase \ makeellipse12.testcase \ makeellipse14.testcase \ makeellipse15.testcase \ makeellipse16.testcase \ makeellipse18.testcase \ makeellipse19.testcase \ makeellipse20.testcase \ makearc1.testcase \ makearc2.testcase \ makearc3.testcase \ makearc4.testcase \ makearc5.testcase \ makearc6.testcase \ makearc7.testcase \ makearc8.testcase \ makearc9.testcase \ makearc10.testcase \ makearc11.testcase \ makearc12.testcase \ makearc13.testcase \ makearc14.testcase \ makearc16.testcase \ makearc17.testcase \ makearc18.testcase \ makearc20.testcase \ makearc21.testcase \ makearc22.testcase \ makeellipticarc1.testcase \ makeellipticarc2.testcase \ makeellipticarc3.testcase \ makeellipticarc4.testcase \ makeellipticarc5.testcase \ makeellipticarc6.testcase \ makeellipticarc7.testcase \ makeellipticarc8.testcase \ makeellipticarc9.testcase \ makeellipticarc10.testcase \ makeellipticarc11.testcase \ makeellipticarc12.testcase \ makeellipticarc13.testcase \ makeellipticarc14.testcase \ makeellipticarc15.testcase \ makeellipticarc16.testcase \ makeellipticarc17.testcase \ makeellipticarc19.testcase \ makeellipticarc20.testcase \ makeellipticarc21.testcase \ makeellipticarc23.testcase \ makeellipticarc24.testcase \ makeellipticarc25.testcase \ makecircularsector1.testcase \ makecircularsector2.testcase \ makecircularsector3.testcase \ makecircularsector4.testcase \ makecircularsector5.testcase \ makecircularsector6.testcase \ makecircularsector7.testcase \ makecircularsector8.testcase \ makecircularsector9.testcase \ makecircularsector10.testcase \ makecircularsector11.testcase \ makecircularsector12.testcase \ makecircularsector13.testcase \ makecircularsector14.testcase \ makecircularsector16.testcase \ makecircularsector17.testcase \ makecircularsector18.testcase \ makecircularsector20.testcase \ makecircularsector21.testcase \ makecircularsector22.testcase \ makecircularstripe1.testcase \ makecircularstripe2.testcase \ makecircularstripe3.testcase \ makecircularstripe4.testcase \ makecircularstripe5.testcase \ makecircularstripe6.testcase \ makecircularstripe7.testcase \ makecircularstripe8.testcase \ makecircularstripe9.testcase \ makecircularstripe10.testcase \ makecircularstripe11.testcase \ makecircularstripe12.testcase \ makecircularstripe13.testcase \ makecircularstripe14.testcase \ makecircularstripe16.testcase \ makecircularstripe17.testcase \ makecircularstripe18.testcase \ makecircularstripe20.testcase \ makecircularstripe21.testcase \ makecircularstripe22.testcase \ makecircularstripe24.testcase \ makecircularstripe25.testcase \ makecircularstripe26.testcase \ makeellipticsector1.testcase \ makeellipticsector2.testcase \ makeellipticsector3.testcase \ makeellipticsector4.testcase \ makeellipticsector5.testcase \ makeellipticsector6.testcase \ makeellipticsector7.testcase \ makeellipticsector8.testcase \ makeellipticsector9.testcase \ makeellipticsector10.testcase \ makeellipticsector11.testcase \ makeellipticsector12.testcase \ makeellipticsector13.testcase \ makeellipticsector14.testcase \ makeellipticsector15.testcase \ makeellipticsector16.testcase \ makeellipticsector17.testcase \ makeellipticsector19.testcase \ makeellipticsector20.testcase \ makeellipticsector21.testcase \ makeellipticsector23.testcase \ makeellipticsector24.testcase \ makeellipticsector25.testcase \ maxm1.testcase \ maxm2.testcase \ maxm3.testcase \ maxm4.testcase \ maxm5.testcase \ maxm6.testcase \ maxm7.testcase \ maxz1.testcase \ maxz2.testcase \ maxz3.testcase \ maxz4.testcase \ maxz5.testcase \ maxz6.testcase \ maxz7.testcase \ mbr10.testcase \ mbr11.testcase \ mbr12.testcase \ mbr13.testcase \ mbr14.testcase \ mbr15.testcase \ mbr16.testcase \ mbr17.testcase \ mbr18.testcase \ mbr19.testcase \ mbr1.testcase \ mbr20.testcase \ mbr21.testcase \ mbr22.testcase \ mbr23.testcase \ mbr24.testcase \ mbr25.testcase \ mbr26.testcase \ mbr27.testcase \ mbr28.testcase \ mbr29.testcase \ mbr2.testcase \ mbr30.testcase \ mbr31.testcase \ mbr32.testcase \ mbr3.testcase \ mbr4.testcase \ mbr5.testcase \ mbr6.testcase \ mbr7.testcase \ mbr8.testcase \ mbr9.testcase \ mbrminmax1.testcase \ mbrminmax2.testcase \ mbrminmax3.testcase \ mbrminmax4.testcase \ mbrminmax5.testcase \ mbrminmax6.testcase \ mbrminmax7.testcase \ mbrminmax8.testcase \ m_ch.testcase \ m_cm.testcase \ m_dm.testcase \ m_fath.testcase \ m_ft.testcase \ m_ft-text.testcase \ mi_m.testcase \ m_ind_ch.testcase \ m_ind_ft.testcase \ m_ind_yd.testcase \ minm1.testcase \ minm2.testcase \ minm3.testcase \ minm4.testcase \ minm5.testcase \ minm6.testcase \ m_in.testcase \ m_in_us.testcase \ minz1.testcase \ minz2.testcase \ minz3.testcase \ minz4.testcase \ minz5.testcase \ minz6.testcase \ m_km.testcase \ mlinefromtext1.testcase \ mlinefromtext2.testcase \ m_ln.testcase \ m_mi.testcase \ m_mm.testcase \ mm_m.testcase \ m_nm.testcase \ mpointfromtext1.testcase \ mpointfromtext2.testcase \ mpolygonfromtext1.testcase \ mpolygonfromtext2.testcase \ m_us_ch.testcase \ m_us_ft.testcase \ m_usmi.testcase \ m_yd.testcase \ m_yd_us.testcase \ namefrompath1.testcase \ namefrompath2.testcase \ namefrompath3.testcase \ namefrompath4.testcase \ namefrompath5.testcase \ ndims1.testcase \ ndims2.testcase \ ndims3.testcase \ ndims4.testcase \ ndims5.testcase \ ndims6.testcase \ nm_m.testcase \ normalizelonlat10.testcase \ normalizelonlat11.testcase \ normalizelonlat12.testcase \ normalizelonlat13.testcase \ normalizelonlat14.testcase \ normalizelonlat15.testcase \ normalizelonlat16.testcase \ normalizelonlat17.testcase \ normalizelonlat18.testcase \ normalizelonlat19.testcase \ normalizelonlat1.testcase \ normalizelonlat20.testcase \ normalizelonlat21.testcase \ normalizelonlat22.testcase \ normalizelonlat23.testcase \ normalizelonlat24.testcase \ normalizelonlat25.testcase \ normalizelonlat26.testcase \ normalizelonlat27.testcase \ normalizelonlat2.testcase \ normalizelonlat3.testcase \ normalizelonlat4.testcase \ normalizelonlat5.testcase \ normalizelonlat6.testcase \ normalizelonlat7.testcase \ normalizelonlat8.testcase \ normalizelonlat9.testcase \ npoints1.testcase \ npoints2.testcase \ npoints3.testcase \ npoints4.testcase \ npoints5.testcase \ npoints6.testcase \ nrings1.testcase \ nrings2.testcase \ nrings3.testcase \ nrings4.testcase \ nrings5.testcase \ nrings6.testcase \ numgeometries1.testcase \ numgeometries2.testcase \ numgeometries3.testcase \ numgeometries4.testcase \ numgeometries5.testcase \ numgeometries6.testcase \ NumPoints2.testcase \ NumPoints3.testcase \ NumPoints4.testcase \ NumPoints5.testcase \ NumPoints6.testcase \ NumPoints7.testcase \ NumPoints.testcase \ pointfromtext1.testcase \ pointfromtext2.testcase \ pointn10.testcase \ pointn11.testcase \ pointn12.testcase \ pointn13.testcase \ pointn14.testcase \ pointn15.testcase \ pointn1.testcase \ pointn2.testcase \ pointn3.testcase \ pointn4.testcase \ pointn5.testcase \ pointn6.testcase \ pointn7.testcase \ pointn8.testcase \ pointn9.testcase \ polygonfromtext1.testcase \ polygonfromtext2.testcase \ reflectcoords10.testcase \ reflectcoords11.testcase \ reflectcoords12.testcase \ reflectcoords13.testcase \ reflectcoords14.testcase \ reflectcoords15.testcase \ reflectcoords16.testcase \ reflectcoords17.testcase \ reflectcoords1.testcase \ reflectcoords2.testcase \ reflectcoords3.testcase \ reflectcoords4.testcase \ reflectcoords5.testcase \ reflectcoords6.testcase \ reflectcoords7.testcase \ reflectcoords8.testcase \ reflectcoords9.testcase \ removedupl1.testcase \ removedupl2.testcase \ removedupl3.testcase \ removedupl4.testcase \ removepoint10.testcase \ removepoint11.testcase \ removepoint12.testcase \ removepoint13.testcase \ removepoint14.testcase \ removepoint15.testcase \ removepoint16.testcase \ removepoint1.testcase \ removepoint2.testcase \ removepoint3.testcase \ removepoint4.testcase \ removepoint5.testcase \ removepoint6.testcase \ removepoint7.testcase \ removepoint8.testcase \ removepoint9.testcase \ reverse1.testcase \ reverse2.testcase \ reverse3.testcase \ reverse4.testcase \ reverse5.testcase \ reverse6.testcase \ ring10.testcase \ ring11.testcase \ ring12.testcase \ ring13.testcase \ ring14.testcase \ ring15.testcase \ ring16.testcase \ ring17.testcase \ ring18.testcase \ ring19.testcase \ ring1.testcase \ ring20.testcase \ ring21.testcase \ ring22.testcase \ ring23.testcase \ ring24.testcase \ ring25.testcase \ ring26.testcase \ ring27.testcase \ ring28.testcase \ ring2.testcase \ ring3.testcase \ ring4.testcase \ ring5.testcase \ ring6.testcase \ ring7.testcase \ ring8.testcase \ ring9.testcase \ rotatecoords10.testcase \ rotatecoords11.testcase \ rotatecoords12.testcase \ rotatecoords13.testcase \ rotatecoords14.testcase \ rotatecoords1.testcase \ rotatecoords2.testcase \ rotatecoords3.testcase \ rotatecoords4.testcase \ rotatecoords5.testcase \ rotatecoords6.testcase \ rotatecoords7.testcase \ rotatecoords8.testcase \ rotatecoords9.testcase \ routing1.testcase \ routing2.testcase \ routing3.testcase \ routing4.testcase \ routing5.testcase \ rtreealign1.testcase \ rtreealign2.testcase \ rtreealign3.testcase \ rtreealign4.testcase \ sandro.jpg \ sanitizeGeometry10.testcase \ sanitizeGeometry11.testcase \ sanitizeGeometry12.testcase \ sanitizeGeometry13.testcase \ sanitizeGeometry14.testcase \ sanitizeGeometry15.testcase \ sanitizeGeometry16.testcase \ sanitizeGeometry1.testcase \ sanitizeGeometry2.testcase \ sanitizeGeometry3.testcase \ sanitizeGeometry4.testcase \ sanitizeGeometry5.testcase \ sanitizeGeometry6.testcase \ sanitizeGeometry7.testcase \ sanitizeGeometry8.testcase \ sanitizeGeometry9.testcase \ scalecoords10.testcase \ scalecoords11.testcase \ scalecoords12.testcase \ scalecoords13.testcase \ scalecoords1.testcase \ scalecoords2.testcase \ scalecoords3.testcase \ scalecoords4.testcase \ scalecoords5.testcase \ scalecoords6.testcase \ scalecoords7.testcase \ scalecoords8.testcase \ scalecoords9.testcase \ seconds.wav \ setpoint10.testcase \ setpoint11.testcase \ setpoint12.testcase \ setpoint13.testcase \ setpoint14.testcase \ setpoint15.testcase \ setpoint16.testcase \ setpoint17.testcase \ setpoint18.testcase \ setpoint19.testcase \ setpoint1.testcase \ setpoint20.testcase \ setpoint21.testcase \ setpoint22.testcase \ setpoint23.testcase \ setpoint2.testcase \ setpoint3.testcase \ setpoint4.testcase \ setpoint5.testcase \ setpoint6.testcase \ setpoint7.testcase \ setpoint8.testcase \ setpoint9.testcase \ setendpoint10.testcase \ setendpoint11.testcase \ setendpoint12.testcase \ setendpoint13.testcase \ setendpoint14.testcase \ setendpoint15.testcase \ setendpoint16.testcase \ setendpoint1.testcase \ setendpoint2.testcase \ setendpoint3.testcase \ setendpoint4.testcase \ setendpoint5.testcase \ setendpoint6.testcase \ setendpoint7.testcase \ setendpoint8.testcase \ setendpoint9.testcase \ setstartpoint10.testcase \ setstartpoint11.testcase \ setstartpoint12.testcase \ setstartpoint13.testcase \ setstartpoint14.testcase \ setstartpoint15.testcase \ setstartpoint16.testcase \ setstartpoint1.testcase \ setstartpoint2.testcase \ setstartpoint3.testcase \ setstartpoint4.testcase \ setstartpoint5.testcase \ setstartpoint6.testcase \ setstartpoint7.testcase \ setstartpoint8.testcase \ setstartpoint9.testcase \ shiftcoords10.testcase \ shiftcoords11.testcase \ shiftcoords12.testcase \ shiftcoords13.testcase \ shiftcoords14.testcase \ shiftcoords15.testcase \ shiftcoords1.testcase \ shiftcoords2.testcase \ shiftcoords3.testcase \ shiftcoords4.testcase \ shiftcoords5.testcase \ shiftcoords6.testcase \ shiftcoords7.testcase \ shiftcoords8.testcase \ shiftcoords9.testcase \ shiftlongitude10.testcase \ shiftlongitude11.testcase \ shiftlongitude12.testcase \ shiftlongitude13.testcase \ shiftlongitude14.testcase \ shiftlongitude15.testcase \ shiftlongitude16.testcase \ shiftlongitude17.testcase \ shiftlongitude18.testcase \ shiftlongitude19.testcase \ shiftlongitude1.testcase \ shiftlongitude20.testcase \ shiftlongitude21.testcase \ shiftlongitude22.testcase \ shiftlongitude23.testcase \ shiftlongitude24.testcase \ shiftlongitude25.testcase \ shiftlongitude26.testcase \ shiftlongitude2.testcase \ shiftlongitude3.testcase \ shiftlongitude4.testcase \ shiftlongitude5.testcase \ shiftlongitude6.testcase \ shiftlongitude7.testcase \ shiftlongitude8.testcase \ shiftlongitude9.testcase \ spatialindex.testcase \ srid10.testcase \ srid11.testcase \ srid1.testcase \ srid2.testcase \ srid3.testcase \ srid4.testcase \ srid5.testcase \ srid6.testcase \ srid7.testcase \ srid8.testcase \ srid9.testcase \ SridFromAuthCRS2.testcase \ SridFromAuthCRS3.testcase \ SridFromAuthCRS4.testcase \ SridFromAuthCRS5.testcase \ SridFromAuthCRS6.testcase \ SridFromAuthCRS.testcase \ startpoint1.testcase \ startpoint2.testcase \ startpoint3.testcase \ st_m1.testcase \ st_m2.testcase \ st_m3.testcase \ st_m4.testcase \ st_m5.testcase \ st_m6.testcase \ st_m8.testcase \ st_x1.testcase \ st_x2.testcase \ st_x3.testcase \ st_x4.testcase \ st_x5.testcase \ st_x6.testcase \ st_x7.testcase \ st_x8.testcase \ st_x9.testcase \ st_y1.testcase \ st_y2.testcase \ st_y3.testcase \ st_y4.testcase \ st_y5.testcase \ st_y7.testcase \ st_y8.testcase \ st_y9.testcase \ st_z1.testcase \ st_z2.testcase \ st_z3.testcase \ st_z4.testcase \ st_z5.testcase \ st_z6.testcase \ st_z7.testcase \ st_z8.testcase \ st_z9.testcase \ swapcoords10.testcase \ swapcoords11.testcase \ swapcoords1.testcase \ swapcoords2.testcase \ swapcoords3.testcase \ swapcoords4.testcase \ swapcoords5.testcase \ swapcoords6.testcase \ swapcoords7.testcase \ swapcoords8.testcase \ swapcoords9.testcase \ testdb1.sqlite \ testFDO.sqlite \ testFGF.sqlite \ test.webp \ togars10.testcase \ togars11.testcase \ togars12.testcase \ togars13.testcase \ togars1.testcase \ togars2.testcase \ togars3.testcase \ togars4.testcase \ togars5.testcase \ togars6.testcase \ togars7.testcase \ togars8.testcase \ togars9.testcase \ translate10.testcase \ translate11.testcase \ translate12.testcase \ translate13.testcase \ translate14.testcase \ translate15.testcase \ translate16.testcase \ translate17.testcase \ translate18.testcase \ translate19.testcase \ translate1.testcase \ translate2.testcase \ translate3.testcase \ translate4.testcase \ translate5.testcase \ translate6.testcase \ translate7.testcase \ translate8.testcase \ translate9.testcase \ trivial.sqlite_RO \ uncompressgeom1.testcase \ uncompressgeom2.testcase \ uncompressgeom3.testcase \ unsafeTriggers1.testcase \ us_ch_m.testcase \ us_ft_m.testcase \ us_in_m.testcase \ us_mi_m.testcase \ us_yd_m.testcase \ wkb10.testcase \ wkb11.testcase \ wkb12.testcase \ wkb13.testcase \ wkb14.testcase \ wkb15.testcase \ wkb16.testcase \ wkb17.testcase \ wkb18.testcase \ wkb19.testcase \ wkb1.testcase \ wkb20.testcase \ wkb21.testcase \ wkb22.testcase \ wkb23.testcase \ wkb24.testcase \ wkb25.testcase \ wkb26.testcase \ wkb27.testcase \ wkb28.testcase \ wkb29.testcase \ wkb2.testcase \ wkb30.testcase \ wkb31.testcase \ wkb32.testcase \ wkb33.testcase \ wkb34.testcase \ wkb35.testcase \ wkb36.testcase \ wkb3.testcase \ wkb4.testcase \ wkb5.testcase \ wkb6.testcase \ wkb7.testcase \ wkb8.testcase \ wkb9.testcase \ wkbtosql1.testcase \ wkbtosql2.testcase \ wkbtosql3.testcase \ wkttosql1.testcase \ wkttosql2.testcase \ wkttosql3.testcase \ yd_m.testcase \ getlayerextent1.testcase \ getlayerextent2.testcase \ getlayerextent3.testcase \ getlayerextent4.testcase \ getlayerextent5.testcase \ getlayerextent6.testcase \ getlayerextent7.testcase \ getlayerextent8.testcase \ getlayerextent9.testcase \ getlayerextent10.testcase \ getlayerextent11.testcase \ getlayerextent12.testcase \ getlayerextent13.testcase \ getlayerextent14.testcase \ invalidatestats1.testcase \ invalidatestats2.testcase \ invalidatestats3.testcase \ invalidatestats4.testcase \ invalidatestats5.testcase \ invalidatestats6.testcase \ invalidatestats7.testcase \ invalidatestats8.testcase \ invalidatestats9.testcase \ invalidatestats10.testcase \ updatestats1.testcase \ updatestats2.testcase \ updatestats3.testcase \ updatestats4.testcase \ updatestats5.testcase \ updatestats6.testcase \ updatestats7.testcase \ updatestats8.testcase \ updatestats9.testcase \ updatestats10.testcase \ makepolygon1.testcase \ makepolygon2.testcase \ makepolygon3.testcase \ makepolygon4.testcase \ makepolygon5.testcase \ makepolygon7.testcase \ makepolygon8.testcase \ makepolygon9.testcase \ makepolygon10.testcase \ makepolygon11.testcase \ makepolygon12.testcase \ makepolygon13.testcase \ makepolygon14.testcase \ makepolygon15.testcase \ makepolygon16.testcase \ makepolygon17.testcase \ makepolygon18.testcase \ makepolygon19.testcase \ makepolygon20.testcase \ makepolygon21.testcase \ makepolygon22.testcase \ makepolygon23.testcase \ makepolygon24.testcase \ makepolygon25.testcase \ makepolygon26.testcase \ todms1.testcase \ todms2.testcase \ todms3.testcase \ todms4.testcase \ todms5.testcase \ todms6.testcase \ todms7.testcase \ todms8.testcase \ todms9.testcase \ todms10.testcase \ todms11.testcase \ todms12.testcase \ todms13.testcase \ fromdms1.testcase \ fromdms2.testcase \ fromdms3.testcase \ fromdms4.testcase \ fromdms5.testcase \ fromdms6.testcase \ fromdms7.testcase \ fromdms8.testcase \ fromdms9.testcase \ sridisgeographic1.testcase \ sridisgeographic2.testcase \ sridisgeographic3.testcase \ sridisgeographic4.testcase \ sridisgeographic5.testcase \ sridisgeographic6.testcase \ sridisgeographic7.testcase \ sridisprojected1.testcase \ sridisprojected2.testcase \ sridisprojected3.testcase \ sridisprojected4.testcase \ sridisprojected5.testcase \ sridisprojected6.testcase \ sridisprojected7.testcase \ sridflipped1.testcase \ sridflipped2.testcase \ sridflipped3.testcase \ sridflipped4.testcase \ sridflipped5.testcase \ sridflipped6.testcase \ sridflipped7.testcase \ sridspheroid1.testcase \ sridspheroid2.testcase \ sridspheroid3.testcase \ sridspheroid4.testcase \ sridspheroid5.testcase \ sridspheroid6.testcase \ sridprimem1.testcase \ sridprimem2.testcase \ sridprimem3.testcase \ sridprimem4.testcase \ sridprimem5.testcase \ sridprimem6.testcase \ sriddatum1.testcase \ sriddatum2.testcase \ sriddatum3.testcase \ sriddatum4.testcase \ sriddatum5.testcase \ sriddatum6.testcase \ sridunit1.testcase \ sridunit2.testcase \ sridunit3.testcase \ sridunit4.testcase \ sridunit5.testcase \ sridunit6.testcase \ sridprojection1.testcase \ sridprojection2.testcase \ sridprojection3.testcase \ sridprojection4.testcase \ sridprojection5.testcase \ sridprojection6.testcase \ sridax1name1.testcase \ sridax1name2.testcase \ sridax1name3.testcase \ sridax1name4.testcase \ sridax1name5.testcase \ sridax1name6.testcase \ sridax1orient1.testcase \ sridax1orient2.testcase \ sridax1orient3.testcase \ sridax1orient4.testcase \ sridax1orient5.testcase \ sridax1orient6.testcase \ sridax2name1.testcase \ sridax2name2.testcase \ sridax2name3.testcase \ sridax2name4.testcase \ sridax2name5.testcase \ sridax2name6.testcase \ sridax2orient1.testcase \ sridax2orient2.testcase \ sridax2orient3.testcase \ sridax2orient4.testcase \ sridax2orient5.testcase \ sridax2orient6.testcase libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector9.testcase0000664000175000017500000000032612544707704023222 00000000000000makecircularsector9 - NULL start :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, NULL, 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, NULL, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude3.testcase0000664000175000017500000000030112544707704022353 00000000000000shiftlongitude - bad blob :memory: #use in-memory database SELECT ST_Shift_Longitude(zeroblob(100)) 1 # rows (not including the header row) 1 # columns ST_Shift_Longitude(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/buildcirclembr11.testcase0000664000175000017500000000037312544707704022375 00000000000000buildcirclembr - float args / no srid :memory: #use in-memory database SELECT AsText(BuildCircleMbr(5.5, 6.6, 0.5)) 1 # rows (not including the header row) 1 # columns AsText(BuildCircleMbr(5.5, 6.6, 0.5)) POLYGON((5 6.1, 6 6.1, 6 7.1, 5 7.1, 5 6.1)) libspatialite-4.3.0a/test/sql_stmt_tests/wkb12.testcase0000664000175000017500000000074112544707704020176 00000000000000Hex Wkb: MultiLinestring XYZM (single line) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTILINESTRINGZM((1.2 3.4 100 12, 5.6 7.8 101 13))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTILINESTRINGZM((1.2 3.4 100 12, 5.6 7.8 101 13))", 4326))); 01BD0B00000100000001BA0B000002000000333333333333F33F3333333333330B400000000000005940000000000000284066666666666616403333333333331F4000000000004059400000000000002A40 libspatialite-4.3.0a/test/sql_stmt_tests/asfgf1.testcase0000664000175000017500000000023612544707704020416 00000000000000asfgf - non-blob input :memory: #use in-memory database SELECT AsFGF("hello", 1) 1 # rows (not including the header row) 1 # columns AsFGF("hello", 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/buildmbr13.testcase0000664000175000017500000000026112544707704021211 00000000000000buildmbr - null args, no SRID :memory: #use in-memory database SELECT BuildMbr(5, 4, 2, NULL) 1 # rows (not including the header row) 1 # columns BuildMbr(5, 4, 2, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/dissolve8.testcase0000664000175000017500000000101412544707704021162 00000000000000dissolve - toxic polygon :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING((136 -35, 135.2 -34.5), (135.2 -34.5, 136 -35.2), (136 -35.2, 136 -35), (136 -35, 135.2 -34.5)) MULTIPOINT(136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5)libspatialite-4.3.0a/test/sql_stmt_tests/swapcoords11.testcase0000664000175000017500000000114412544707704021574 00000000000000swapcoords11 :memory: #use in-memory database SELECT AsText(SwapCoords(GeomFromText("POLYGONZM((10 10 100 1, 20 10 101 2, 20 20 102 3, 10 20 103 4, 10 10 100 1), (14 14 100 1, 16 14 101 2, 16 16 102 3, 14 16 103 4, 14 14 100 1))"))); 1 # rows (not including the header row) 1 # columns AsText(SwapCoords(GeomFromText("POLYGONZM((10 10 100 1, 20 10 101 2, 20 20 102 3, 10 20 103 4, 10 10 100 1), (14 14 100 1, 16 14 101 2, 16 16 102 3, 14 16 103 4, 14 14 100 1))"))); POLYGON ZM((10 10 100 1, 10 20 101 2, 20 20 102 3, 20 10 103 4, 10 10 100 1), (14 14 100 1, 14 16 101 2, 16 16 102 3, 16 14 103 4, 14 14 100 1)) libspatialite-4.3.0a/test/sql_stmt_tests/asbinary15.testcase0000664000175000017500000000025412544707704021225 00000000000000asbinary - bad blob - long :memory: #use in-memory database SELECT AsBinary(zeroblob(50)) 1 # rows (not including the header row) 1 # columns AsBinary(zeroblob(50)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector1.testcase0000664000175000017500000000032512544707704023211 00000000000000makecircularsector1 - NULL cx :memory: #use in-memory database SELECT MakeCircularSector(NULL, 0, 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(NULL, 0, 100, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/dirfrompath5.testcase0000664000175000017500000000031512544707704021651 00000000000000DirNameFromPath - ok :memory: #use in-memory database SELECT DirNameFromPath('/home/user/file.txt'); 1 # rows (not including the header row) 1 # columns DirNameFromPath('/home/user/file.txt')) /home/user/ libspatialite-4.3.0a/test/sql_stmt_tests/fromgml9.testcase0000664000175000017500000000134212544707704021002 00000000000000FromGML - MultiPoint v2 (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,23,45,6')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,23,45,6')):0 SRID=4326;MULTIPOINT(1 2,3 4,5 6) libspatialite-4.3.0a/test/sql_stmt_tests/locatemeasure17.testcase0000664000175000017500000000104512544707704022247 00000000000000ST_Locate_Along_Measure - LinestringZM :memory: #use in-memory database SELECT AsText(ST_Locate_Along_Measure(GeomFromText('LINESTRINGZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.1, 6 1 106 2.1)'), 2.1)); 1 # rows (not including the header row) 1 # columns AsText(ST_Locate_Along_Measure(GeomFromText('LINESTRINGZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.1, 6 1 106 2.1)'), 2.1)) GEOMETRYCOLLECTION ZM(POINT ZM(0 1 100 2.1), POINT ZM(2 1 102 2.1), LINESTRING ZM(5 0 105 2.1, 6 1 106 2.1)) libspatialite-4.3.0a/test/sql_stmt_tests/asgeojson2.testcase0000664000175000017500000000026712544707704021325 00000000000000asgeojson - bad args (non-blob, 2 arg) :memory: #use in-memory database SELECT asgeojson("hello", 4); 1 # rows (not including the header row) 1 # columns asgeojson("hello", 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asfgf4.testcase0000664000175000017500000000031312544707704020415 00000000000000asfgf - negative second arg :memory: #use in-memory database SELECT AsFGF(GeomFromText("POINT(1 2)"), -1) 1 # rows (not including the header row) 1 # columns AsFGF(GeomFromText("POINT(1 2)"), -1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/assvg5.testcase0000664000175000017500000000024212544707704020454 00000000000000assvg - 1 arg bad blob :memory: #use in-memory database SELECT assvg(zeroblob(49)) 1 # rows (not including the header row) 1 # columns assvg(zeroblob(49)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridax1name2.testcase0000664000175000017500000000027212544707704021545 00000000000000SridGetAxis_1_Name() - TEXT SRID :memory: #use in-memory database SELECT SridGetAxis_1_Name('srid') 1 # rows (not including the header row) 1 # columns SridGetAxis_1_Name('srid') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/dimension8.testcase0000664000175000017500000000033012544707704021317 00000000000000dimension5 - GeometryCollection :memory: #use in-memory database SELECT Dimension(GeometryFromText("POINT EMPTY")) 1 # rows (not including the header row) 1 # columns Dimension(GeometryFromText("POINT EMPTY")) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/shiftcoords7.testcase0000664000175000017500000000037212544707704021666 00000000000000shiftcoords - float shift :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("POINT(1 2)"), 1.4, 3.9)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("POINT(1 2)"), 1.4, 3.9)) POINT(2.4 5.9) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext2.testcase0000664000175000017500000000022712544707704022051 00000000000000geomfromtext2 :memory: #use in-memory database SELECT GeomFromText(3.14); 1 # rows (not including the header row) 1 # columns GeomFromText(3.14) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate11.testcase0000664000175000017500000000042612544707704021357 00000000000000ATM_Create() - invalid 6th arg :memory: #use in-memory database SELECT ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 'a', 7.0, 8.0, 9.0, 10.0, 11.0, 12.0) 1 # rows (not including the header row) 1 # columns ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 'a', 7.0, 8.0, 9.0, 10.0, 11.0, 12.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector16.testcase0000664000175000017500000000033612544707704023301 00000000000000makecircularsector16 - NULL srid :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, 30, 60, NULL); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, 30, 60, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/shiftcoords13.testcase0000664000175000017500000000104112544707704021735 00000000000000shiftcoords - Polygon XYZ :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("POLYGONZ((0 0 10, 10 0 10, 10 10 11, 0 10 11, 0 0 10), (5 5 12, 6 5 12, 6 6 13, 5 6 13, 5 5 12))"), 1.4, 3.9)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("POLYGONZ((0 0 10, 10 0 10, 10 10 11, 0 10 11, 0 0 10), (5 5 12, 6 5 12, 6 6 13, 5 6 13, 5 5 12))"), 1.4, 3.9)) POLYGON Z((1.4 3.9 10, 11.4 3.9 10, 11.4 13.9 11, 1.4 13.9 11, 1.4 3.9 10), (6.4 8.9 12, 7.4 8.9 12, 7.4 9.9 13, 6.4 9.9 13, 6.4 8.9 12)) libspatialite-4.3.0a/test/sql_stmt_tests/buildcirclembr8.testcase0000664000175000017500000000027312544707704022322 00000000000000buildcirclembr - null args :memory: #use in-memory database SELECT BuildCircleMbr(5, 6, 7, NULL) 1 # rows (not including the header row) 1 # columns BuildCircleMbr(5, 6, 7, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromdms6.testcase0000664000175000017500000000055112544707704021004 00000000000000fromdms - valid DMS expression-1 :memory: #use in-memory database SELECT LongitudeFromDMS('N40°26′47″ W079°58′36″'), LatitudeFromDMS('N40°26′47″ W079°58′36″'); 1 # rows (not including the header row) 2 # columns LongitudeFromDMS('N40°26′47″ W079°58′36″') LatitudeFromDMS('N40°26′47″ W079°58′36″') -79.97666:5 40.44638:5 libspatialite-4.3.0a/test/sql_stmt_tests/m_ft-text.testcase0000664000175000017500000000022612544707704021155 00000000000000metres to feet text :memory: #use in-memory database SELECT CvtToFt("one"); 1 # rows (not including the header row) 1 # columns CvtToFt("one"); (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/collect18.testcase0000664000175000017500000000045512544707704021050 00000000000000collect - PointM, Point :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTM(4 5 3.2)"), GeomFromText("POINT(1 2)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTM(4 5 3.2)"), GeomFromText("POINT(1 2)"))) MULTIPOINT M(4 5 3.2, 1 2 0) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreatetrans5.testcase0000664000175000017500000000075412544707704022356 00000000000000ATM_CreateTranslate() - valid 3d (int) :memory: #use in-memory database SELECT Hex(ATM_CreateTranslate(1, 2, 3)) 1 # rows (not including the header row) 1 # columns Hex(ATM_CreateTranslate(1, 2, 3)) 0001000000000000F03F3A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A000000000000F03F3A00000000000000003A00000000000000403A00000000000000003A00000000000000003A000000000000F03F3A00000000000008403A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/m_ft.testcase0000664000175000017500000000022512544707704020172 00000000000000metres to feet :memory: #use in-memory database SELECT CvtToFt(1.0); 1 # rows (not including the header row) 1 # columns CvtToFt(1.0); 3.28083989:10 libspatialite-4.3.0a/test/sql_stmt_tests/geomtype64.testcase0000664000175000017500000000056612544707704021260 00000000000000geometrytype - MULTIPOINTZ :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTIPOINTZ (10 40 10, 40 30 15, 20 20 20, 30 10 9)") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTIPOINT Z XYZ MULTIPOINT libspatialite-4.3.0a/test/sql_stmt_tests/updatestats7.testcase0000664000175000017500000000030612544707704021675 00000000000000UpdateLayerStatistics - TEXT, INT :memory: #use in-memory database SELECT UpdateLayerStatistics('table', 1); 1 # rows (not including the header row) 1 # columns UpdateLayerStatistics('table', 1); 0 libspatialite-4.3.0a/test/sql_stmt_tests/geomtype44.testcase0000664000175000017500000000072112544707704021247 00000000000000geometrytype - GEOMETRYCOLLECTIONZ - linestring and polygon :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(4 6 0,7 10 0, 12 3 1),POLYGONZ((4 6 1,7 10 1, 12 3 2, 4 6 1)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION Z XYZ GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/atmcreate2.testcase0000664000175000017500000000074312544707704021301 00000000000000ATM_Create() - 2d valid (int) :memory: #use in-memory database SELECT Hex(ATM_Create(1, 2, 3, 4, 5, 6)) 1 # rows (not including the header row) 1 # columns Hex(ATM_Create(1, 2, 3, 4, 5, 6)) 0001000000000000F03F3A00000000000000403A00000000000000003A00000000000014403A00000000000008403A00000000000010403A00000000000000003A00000000000018403A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/geomtype42.testcase0000664000175000017500000000062212544707704021245 00000000000000geometrytype - MULTILINESTRINGM - one line :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTILINESTRINGM((30 20 1, 10 40 1, 45 40 1, 30 20 1))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTILINESTRING M XYM MULTILINESTRINGlibspatialite-4.3.0a/test/sql_stmt_tests/endpoint1.testcase0000664000175000017500000000037612544707704021155 00000000000000endpoint - regular LINESTRING :memory: #use in-memory database SELECT AsText(EndPoint(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"))); 1 # rows (not including the header row) 1 # columns AsText(EndPoint(GeomFromText("LINESTRING(4 0, 4 4, 8 4)"))) POINT(8 4) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt22.testcase0000664000175000017500000000056012544707704021251 00000000000000fromewkt22 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOINT(0 1 9 7, 2 3 9 7, 4 5 9 7))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOINT(0 1 9 7, 2 3 9 7, 4 5 9 7))')); GEOMETRYCOLLECTION ZM(POINT ZM(0 1 9 7), POINT ZM(2 3 9 7), POINT ZM(4 5 9 7)) libspatialite-4.3.0a/test/sql_stmt_tests/collect3.testcase0000664000175000017500000000031312544707704020753 00000000000000collect - second arg null :memory: #use in-memory database SELECT AsText(COLLECT(Makepoint(1,2), null)); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(Makepoint(1,2), null)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry65.testcase0000664000175000017500000000073112544707704023031 00000000000000CompressGeometry - MULTIPOLYGON ZM (1 Polygon) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOLYGONZM(((10 10 77 7, 11 10 88 8, 11 11 99 9, 10 11 88 8, 10 10 77 7)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOLYGONZM(((10 10 77 7, 11 10 88 8, 11 11 99 9, 10 11 88 8, 10 10 77 7)))", 4326))) MULTIPOLYGON ZM(((10 10 77 7, 11 10 88 8, 11 11 99 9, 10 11 88 8, 10 10 77 7))) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract14.testcase0000664000175000017500000000043612544707704022436 00000000000000Collection Extract - Extract linestring from point :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("MULTIPOINT(1 2, 4 2)"), 2)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("MULTIPOINT(1 2, 4 2)"), 2)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeline7.testcase0000664000175000017500000000031312544707704021117 00000000000000makeline7 :memory: #use in-memory database SELECT MakeLine(GeomFromText("POINT(0 0)"), "world"); 1 # rows (not including the header row) 1 # columns MakeLine(GeomFromText("POINT(0 0)"), "world") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/isXblob6.testcase0000664000175000017500000000106012544707704020733 00000000000000isXblob - zeroblob, 1 byte :memory: #use in-memory database SELECT Hex(blob), IsPngBlob(blob), IsGifBlob(blob), IsGeometryBlob(blob), IsZipBlob(blob), IsPdfBlob(blob), IsTiffBlob(blob), IsJpegBlob(blob), IsExifBlob(blob), IsExifGpsBlob(blob), IsWebpBlob(blob) FROM (SELECT zeroblob(1) as blob) dummy 1 # rows (not including the header row) 11 # columns Hex(blob) IsPngBlob(blob) IsGifBlob(blob) IsGeometryBlob(blob) IsZipBlob(blob) IsPdfBlob(blob) IsTiffBlob(blob) IsJpegBlob(blob) IsExifBlob(blob) IsExifGpsBlob(blob) IsWebpBlob(blob) 00 0 0 0 0 0 0 0 0 0 0 libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints18.testcase0000664000175000017500000000057512544707704022645 00000000000000geometry constraints - MULTILINESTRINGM :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("MULTILINESTRINGM((1 2 3, 4 3 1),(0 4 4, 1 9 7))", 4326), "MULTILINESTRING", 4326, "XYM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("MULTILINESTRINGM((1 2 3, 4 3 1),(0 4 4, 1 9 7))", 4326), "MULTILINESTRING", 4326, "XYM") 1 libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb11.testcase0000664000175000017500000000025012544707704021014 00000000000000fromWkb - float, args :memory: #use in-memory database SELECT GeomFromWkb(1.67, 4326) 1 # rows (not including the header row) 1 # columns GeomFromWkb(1.67, 4326) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/NumPoints.testcase0000664000175000017500000000026012544707704021200 00000000000000NumPoints - bad blob (error) :memory: #use in-memory database SELECT NumPoints(zeroblob(12)); 1 # rows (not including the header row) 1 # column NumPoints(zeroblob(12)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridax2orient2.testcase0000664000175000017500000000031712544707704022126 00000000000000SridGetAxis_2_Orientation() - TEXT SRID :memory: #use in-memory database SELECT SridGetAxis_2_Orientation('srid') 1 # rows (not including the header row) 1 # columns SridGetAxis_2_Orientation('srid') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asgeojson4.testcase0000664000175000017500000000037012544707704021322 00000000000000asgeojson - bad args (3 arg, bad precision) :memory: #use in-memory database SELECT asgeojson(GeomFromText("Point(1 2)", 4326), 4.2, 2); 1 # rows (not including the header row) 1 # columns asgeojson(GeomFromText("Point(1 2)", 4326), 4.2, 2) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract6.testcase0000664000175000017500000000030712544707704022354 00000000000000Collection Extract - Bad blob :memory: #use in-memory database SELECT CollectionExtract(zeroblob(4), 0); 1 # rows (not including the header row) 1 # columns CollectionExtract(zeroblob(4), 0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/assvg19.testcase0000664000175000017500000000051512544707704020544 00000000000000assvg - relative/absolute Linestring XYZ :memory: #use in-memory database SELECT assvg(geom, 1) AS rel, assvg(geom, 0) AS abs FROM (SELECT GeomFromText("LINESTRINGZ(1 2 100, 4 3 101, 5 6 102, 8 7 103)", 4326) AS geom) dummy; 1 # rows (not including the header row) 2 # columns rel abs M 1 -2 l 3 -1 1 -3 3 -1 M 1 -2 L 4 -3 5 -6 8 -7 libspatialite-4.3.0a/test/sql_stmt_tests/atmtrans8.testcase0000664000175000017500000000033612544707704021171 00000000000000ATM_Translate() - 3d invalid 2nd arg :memory: #use in-memory database SELECT ATM_Translate(ATM_Create(), 1.0, 'a', 3.0) 1 # rows (not including the header row) 1 # columns ATM_Translate(ATM_Create(), 1.0, 'a', 3.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/translate18.testcase0000664000175000017500000000036012544707704021413 00000000000000translate :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("POINTM(1 2 3)"), 1, 3, 4)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("POINTM(1 2 3)"), 1, 3, 4)) POINT M(2 5 3) libspatialite-4.3.0a/test/sql_stmt_tests/atmzroll2.testcase0000664000175000017500000000073312544707704021177 00000000000000ATM_ZRoll() - valid int :memory: #use in-memory database SELECT Hex(ATM_ZRoll(ATM_Create(), 15)) 1 # rows (not including the header row) 1 # columns Hex(ATM_ZRoll(ATM_Create(), 15)) 000115BF4847DDE8EE3F3A900693C17D90D0BF3A00000000000000003A00000000000000003A900693C17D90D03F3A15BF4847DDE8EE3F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/makepoint9.testcase0000664000175000017500000000033712544707704021331 00000000000000makepoint - MakepointM, int args, SRID :memory: #use in-memory database SELECT AsText(MakePointM(-71, 42, 3, 4326)) 1 # rows (not including the header row) 1 # columns AsText(MakePointM(-71, 42, 3, 4326)) POINT M(-71 42 3) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext4.testcase0000664000175000017500000000025712544707704022056 00000000000000geomfromtext4 :memory: #use in-memory database SELECT GeomFromText("POINT(0 1 2 3)"); 1 # rows (not including the header row) 1 # columns GeomFromText("POINT(0 1 2 3)") (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/atmastext4.testcase0000664000175000017500000000023112544707704021340 00000000000000ATM_AsText() - NULL :memory: #use in-memory database SELECT ATM_AsText(NULL) 1 # rows (not including the header row) 1 # columns ATM_AsText(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract20.testcase0000664000175000017500000000067012544707704022433 00000000000000Collection Extract - Extract POLYGONZ :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POLYGONZ((0 0 1, 10 0 2, 10 10 1, 0 0 1),(1 2 4, 4 3 1, 1 1 1, 1 2 4))"), 3)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POLYGONZ((0 0 1, 10 0 2, 10 10 1, 0 0 1),(1 2 4, 4 3 1, 1 1 1, 1 2 4))"), 3)) POLYGON Z((0 0 1, 10 0 2, 10 10 1, 0 0 1), (1 2 4, 4 3 1, 1 1 1, 1 2 4)) libspatialite-4.3.0a/test/sql_stmt_tests/badGeoJSON5.testcase0000664000175000017500000000056112544707704021210 00000000000000bad GeoJSON: MultiLinestring :memory: #use in-memory database SELECT GeomFromGeoJSON('{"type":"MultiLineString","coordinates":[[[1.1,2.2],[3.3,4.4]],[[5.5,6.6],[7.7,8.800000000000001]]]'); 1 # rows (not including the header row) 1 # columns GeomFromGeoJSON('{"type":"MultiLineString","coordinates":[[[1.1,2.2],[3.3,4.4]],[[5.5,6.6],[7.7,8.800000000000001]]]'):0 (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/translate19.testcase0000664000175000017500000000037112544707704021416 00000000000000translate :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("POINTZM(1 2 3 4)"), 1, 3, 4)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("POINTZM(1 2 3 4)"), 1, 3, 4)) POINT ZM(2 5 7 4) libspatialite-4.3.0a/test/sql_stmt_tests/sridax2orient5.testcase0000664000175000017500000000033312544707704022127 00000000000000SridGetAxis_2_Orientation() - BLOB SRID :memory: #use in-memory database SELECT SridGetAxis_2_Orientation(zeroblob(10)) 1 # rows (not including the header row) 1 # columns SridGetAxis_2_Orientation(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/setendpoint1.testcase0000664000175000017500000000026612544707704021667 00000000000000ST_SetEndPoint() - NULL line :memory: #use in-memory database SELECT ST_SetEndPoint(NULL, NULL) 1 # rows (not including the header row) 1 # columns ST_SetEndPoint(NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext30.testcase0000664000175000017500000000062512544707704022134 00000000000000geomfromtext30 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(MULTILINESTRINGZM((0 1 9 7, 2 3 9 7), (4 5 9 7, 6 7 9 7)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZM(MULTILINESTRINGZM((0 1 9 7, 2 3 9 7), (4 5 9 7, 6 7 9 7)))')); GEOMETRYCOLLECTION ZM(LINESTRING ZM(0 1 9 7, 2 3 9 7), LINESTRING ZM(4 5 9 7, 6 7 9 7)) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr7.testcase0000664000175000017500000000024612544707704020774 00000000000000garsmbr - bad segment number 0 :memory: #use in-memory database SELECT GARSMbr("001AA0") 1 # rows (not including the header row) 1 # columns GARSMbr("001AA0") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/numgeometries4.testcase0000664000175000017500000000045312544707704022217 00000000000000numgeometries - Point plus linestring :memory: #use in-memory database SELECT NumGeometries(GeomFromText("GeometryCollection(POINT(1 2), LINESTRING(1 3, 4 6))")) 1 # rows (not including the header row) 1 # columns NumGeometries(GeomFromText("GeometryCollection(POINT(1 2), LINESTRING(1 3, 4 6))")) 2libspatialite-4.3.0a/test/sql_stmt_tests/locatemeasure16.testcase0000664000175000017500000000072712544707704022254 00000000000000ST_Locate_Along_Measure - LinestringM :memory: #use in-memory database SELECT AsText(ST_Locate_Along_Measure(GeomFromText('LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.1, 6 1 2.1)'), 2.1)); 1 # rows (not including the header row) 1 # columns AsText(ST_Locate_Along_Measure(GeomFromText('LINESTRINGM(0 1 2.1, 1 0 1, 2 1 2.1, 3 0 2.2, 4 1 4, 5 0 2.1, 6 1 2.1)'), 2.1)) GEOMETRYCOLLECTION M(POINT M(0 1 2.1), POINT M(2 1 2.1), LINESTRING M(5 0 2.1, 6 1 2.1)) libspatialite-4.3.0a/test/sql_stmt_tests/polygonfromtext1.testcase0000664000175000017500000000047112544707704022611 00000000000000polygonfromtext1 :memory: #use in-memory database SELECT AsWkt(PolygonFromText("POLYGON((-71 42, -70 41, -70 42, -70 42, -71 42))"), 4); 1 # rows (not including the header row) 1 # columns AsWkt(PolygonFromText("POLYGON((-71 42, -70 41, -70 42, -70 42, -71 42))"), 4) POLYGON((-71 42,-70 41,-70 42,-70 42,-71 42))libspatialite-4.3.0a/test/sql_stmt_tests/dissolve3.testcase0000664000175000017500000000025412544707704021162 00000000000000dissolve - text input :memory: #use in-memory database SELECT DissolveSegments("hell0") 1 # rows (not including the header row) 1 # columns DissolveSegments("hell0") (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints23.testcase0000664000175000017500000000066412544707704022640 00000000000000geometry constraints - MULTIPOLYGONM :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("MULTIPOLYGONM(((0 0 0, 1 0 0, 1 1 0, 0 0 0)),((0 0 0, -1 0 0, -1 -1 0, 0 0 0)))", 4326), "MULTIPOLYGON", 4326, "XYM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("MULTIPOLYGONM(((0 0 0, 1 0 0, 1 1 0, 0 0 0)),((0 0 0, -1 0 0, -1 -1 0, 0 0 0)))", 4326), "MULTIPOLYGON", 4326, "XYM") 1 libspatialite-4.3.0a/test/sql_stmt_tests/sridax1name4.testcase0000664000175000017500000000026612544707704021552 00000000000000SridGetAxis_1_Name() - DOUBLE SRID :memory: #use in-memory database SELECT SridGetAxis_1_Name(1.0) 1 # rows (not including the header row) 1 # columns SridGetAxis_1_Name(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/SridFromAuthCRS5.testcase0000664000175000017500000000031212544707704022246 00000000000000SridFromAuthCRS - bad auth :memory: #use in-memory database SELECT SridFromAuthCRS('no such authority', 1) 1 # rows (not including the header row) 1 # columns SridFromAuthCRS('no such authority', 1) -1 libspatialite-4.3.0a/test/sql_stmt_tests/geometryn15.testcase0000664000175000017500000000043712544707704021431 00000000000000Geometry N - multipoint :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOINT(1 1.6, 2.3 8.7, 2 1, 1 2, 1 1)"), 3)) 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOINT(1 1.6, 2.3 8.7, 2 1, 1 2, 1 1)"), 3)) POINT(2 1) libspatialite-4.3.0a/test/sql_stmt_tests/linesfromrings3.testcase0000664000175000017500000000053112544707704022371 00000000000000LinesFromRings - Simple polygon, explicit multi :memory: #use in-memory database SELECT AsText(LinesFromRings(GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))"), 1)); 1 # rows (not including the header row) 1 # columns AsText(LinesFromRings(GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))"), 1)) MULTILINESTRING((0 0, 1 1, 0 2, -1 1, 0 0)) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry7.testcase0000664000175000017500000000077012544707704022750 00000000000000CompressGeometry - LINESTRINGZM :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("LINESTRINGZM(1 2 3 0, 3 4 3 0)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("LINESTRINGZM(1 2 3 0, 3 4 3 0)", 4326))) 0001E6100000000000000000F03F0000000000000040000000000000084000000000000010407CFA4D0F0002000000000000000000F03F0000000000000040000000000000084000000000000000000000000000000840000000000000104000000000000008400000000000000000FE libspatialite-4.3.0a/test/sql_stmt_tests/pointn10.testcase0000664000175000017500000000044012544707704020714 00000000000000pointN - regular LINESTRINGM (last point) :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("LINESTRINGM(4 0 9, 4 4 8, 8 4 7)"), -1)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("LINESTRINGM(4 0 9, 4 4 8, 8 4 7)"), -1)) POINT M(8 4 7) libspatialite-4.3.0a/test/sql_stmt_tests/atmscale8.testcase0000664000175000017500000000032212544707704021124 00000000000000ATM_Scale() - 3d invalid 2nd arg :memory: #use in-memory database SELECT ATM_Scale(ATM_Create(), 1.0, 'a', 3.0) 1 # rows (not including the header row) 1 # columns ATM_Scale(ATM_Create(), 1.0, 'a', 3.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt4.testcase0000664000175000017500000000047712544707704021200 00000000000000fromewkt4 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOINT(0 1, 2 3, 4 5))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOINT(0 1, 2 3, 4 5))')); GEOMETRYCOLLECTION(POINT(0 1), POINT(2 3), POINT(4 5)) libspatialite-4.3.0a/test/sql_stmt_tests/makecircle6.testcase0000664000175000017500000000027312544707704021435 00000000000000makecircle6 - BLOB cy :memory: #use in-memory database SELECT MakeCircle(0, zeroblob(4), 100); 1 # rows (not including the header row) 1 # columns MakeCircle(0, zeroblob(4), 100) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/wkb10.testcase0000664000175000017500000000066212544707704020176 00000000000000Hex Wkb: MultiLinestring XYZ (single line) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTILINESTRINGZ((1.2 3.4 100, 5.6 7.8 101))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTILINESTRINGZ((1.2 3.4 100, 5.6 7.8 101))", 4326))); 01ED0300000100000001EA03000002000000333333333333F33F3333333333330B40000000000000594066666666666616403333333333331F400000000000405940 libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry59.testcase0000664000175000017500000000124412544707704023034 00000000000000CompressGeometry - GEOMETRYCOLLECTION Z (2 Polygons) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(POLYGONZ((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77)), POLYGONZ((15 15 55, 16 15 56, 16 16 57, 15 16 58, 15 15 55)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(POLYGONZ((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77)), POLYGONZ((15 15 55, 16 15 56, 16 16 57, 15 16 58, 15 15 55)))", 4326))) GEOMETRYCOLLECTION Z(POLYGON Z((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77)), POLYGON Z((15 15 55, 16 15 56, 16 16 57, 15 16 58, 15 15 55))) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude21.testcase0000664000175000017500000000131012544707704022434 00000000000000shiftlongitude - polygonz, negative interior rings :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGONZ((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4),(-177 1 4, -177 2 5, -178 2 6, -178 1 9, -177 1 4),(-179 4 0, 179 4 0, 179 5 0, -179 5 0, -179 4 0))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGONZ((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4),(-177 1 4, -177 2 5, -178 2 6, -178 1 9, -177 1 4),(-179 4 0, 179 4 0, 179 5 0, -179 5 0, -179 4 0))", 4326))) POLYGON Z((185 0 4, 184 10 5, 175 10 5, 176 0 5, 185 0 4), (183 1 4, 183 2 5, 182 2 6, 182 1 9, 183 1 4), (181 4 0, 179 4 0, 179 5 0, 181 5 0, 181 4 0)) libspatialite-4.3.0a/test/sql_stmt_tests/geomcollfromtext2.testcase0000664000175000017500000000053512544707704022725 00000000000000geometrycollectionfromtext2 :memory: #use in-memory database SELECT AsWkt(GeometryCollectionFromText("GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))")) 1 # rows (not including the header row) 1 # columns AsWkt(GeometryCollectionFromText("GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))")) GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt15.testcase0000664000175000017500000000212512544707704021252 00000000000000fromewkt15 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 9), MULTIPOLYGON(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))), POINT(7 7 9), MULTILINESTRING((0 1 9, 2 3 9), (4 5 9, 6 7 9)), POINT(6 6 9), MULTIPOINT((0 1 9), (2 3 9), (4 5 9)), POINT(9 9 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(POINT(8 8 9), MULTIPOLYGON(((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), ((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))), POINT(7 7 9), MULTILINESTRING((0 1 9, 2 3 9), (4 5 9, 6 7 9)), POINT(6 6 9), MULTIPOINT((0 1 9), (2 3 9), (4 5 9)), POINT(9 9 9))')); GEOMETRYCOLLECTION Z(POINT Z(8 8 9), POINT Z(7 7 9), POINT Z(6 6 9), POINT Z(0 1 9), POINT Z(2 3 9), POINT Z(4 5 9), POINT Z(9 9 9), LINESTRING Z(0 1 9, 2 3 9), LINESTRING Z(4 5 9, 6 7 9), POLYGON Z((0 0 9, 5 0 9, 5 5 9, 0 5 9, 0 0 9), (1 1 9, 2 1 9, 2 2 9, 1 2 9, 1 1 9)), POLYGON Z((10 10 9, 11 10 9, 11 11 9, 10 11 9, 10 10 9))) libspatialite-4.3.0a/test/sql_stmt_tests/rotatecoords5.testcase0000664000175000017500000000136312544707704022046 00000000000000rotate coords - LINESTRING M :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("LINESTRINGM(0 0 2, 1 1 3)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) LINESTRING M(0 0 2, 1 1 3) LINESTRING M(0 0 2, 1 -1 3) LINESTRING M(0 0 2, -1 -1 3) LINESTRING M(0 0 2, -1 1 3) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/translate8.testcase0000664000175000017500000000045012544707704021332 00000000000000translate - Linestring XY :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("LINESTRING(1 2, 3 4)"), 1.4, 3.9, 5.3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("LINESTRING(1 2, 3 4)"), 1.4, 3.9, 5.3)) LINESTRING(2.4 5.9, 4.4 7.9) libspatialite-4.3.0a/test/sql_stmt_tests/shiftcoords6.testcase0000664000175000017500000000037412544707704021667 00000000000000shiftcoords - text shift both (error) :memory: #use in-memory database SELECT ShiftCoords(GeomFromText("POINT(1 2)"), "text", "three"); 1 # rows (not including the header row) 1 # columns ShiftCoords(GeomFromText("POINT(1 2)"), "text", "three") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ring18.testcase0000664000175000017500000000064212544707704020360 00000000000000InteriorRingN - first interior :memory: #use in-memory database SELECT AsText(InteriorRingN(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))"), 1)); 1 # rows (not including the header row) 1 # columns AsText(InteriorRingN(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1),(2 2, 2 3, 3 3, 3 2, 2 2))"), 1)) LINESTRING(1 1, 1 3, 3 3, 3 1, 1 1) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry11.testcase0000664000175000017500000000110012544707704023007 00000000000000CompressGeometry - GEOMETRYCOLLECTION / LINESTRINGZM :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("GeometryCollectionZM(LINESTRINGZM(1 2 0 1, 3 4 0 1))"))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("GeometryCollectionZM(LINESTRINGZM(1 2 0 1, 3 4 0 1))"))) 000100000000000000000000F03F0000000000000040000000000000084000000000000010407CBF0B00000100000069FA4D0F0002000000000000000000F03F00000000000000400000000000000000000000000000F03F000000000000084000000000000010400000000000000000000000000000F03FFE libspatialite-4.3.0a/test/sql_stmt_tests/ispopulatedcoverage2.testcase0000664000175000017500000000030212544707704023370 00000000000000IsPopulatedCoverage - NULL coverage-name NEW:memory: #use in-memory database SELECT IsPopulatedCoverage(NULL); 1 # rows (not including the header row) 1 # columns IsPopulatedCoverage(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_tests/createuuid1.testcase0000664000175000017500000000023612544707704021462 00000000000000CreateUUID() - NULL :memory: #use in-memory database SELECT Length(CreateUUID()); 1 # rows (not including the header row) 1 # columns Length(CreateUUID()) 36 libspatialite-4.3.0a/test/sql_stmt_tests/isvalidrasterstats1.testcase0000664000175000017500000000035212544707704023262 00000000000000IsValidRasterStatistics - standard: 2 args NEW:memory: #use in-memory database SELECT IsValidRasterStatistics('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns IsValidRasterStatistics('alpha', zeroblob(4)) 0 libspatialite-4.3.0a/test/sql_stmt_tests/gml8.testcase0000664000175000017500000000130712544707704020116 00000000000000GML MultiLinestring - no SRID :memory: #use in-memory database SELECT AsGML(3, GeomFromText("MULTILINESTRING((1 2, 3 4), (5 5, 6 6))")); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("MULTILINESTRING((1 2, 3 4), (5 5, 6 6))")) 1 2 3 45 5 6 6:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon16.testcase0000664000175000017500000000046312544707704021745 00000000000000makepolygon - Linestring INTEGER interiors :memory: #use in-memory database SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), 1); 1 # rows (not including the header row) 1 # columns ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), 1); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asbinary4.testcase0000664000175000017500000000051312544707704021141 00000000000000asbinary - multipoint :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MultiPoint(1 2,2 4)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MultiPoint(1 2,2 4)", 4326))) 0104000000020000000101000000000000000000F03F0000000000000040010100000000000000000000400000000000001040 libspatialite-4.3.0a/test/sql_stmt_tests/atmdeterminant4.testcase0000664000175000017500000000036312544707704022350 00000000000000ATM_Determinant() - not invertible :memory: #use in-memory database SELECT ATM_Determinant(ATM_Create(1,2,3,4,5,6,7,8,9,10,11,12)) 1 # rows (not including the header row) 1 # columns ATM_Determinant(ATM_Create(1,2,3,4,5,6,7,8,9,10,11,12)) 0.0 libspatialite-4.3.0a/test/sql_stmt_tests/casttomulti2.testcase0000664000175000017500000000024412544707704021700 00000000000000casttomulti - non-blob :memory: #use in-memory database SELECT CastToMulti("hello") 1 # rows (not including the header row) 1 # columns CastToMulti("hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/buildmbr12.testcase0000664000175000017500000000026712544707704021216 00000000000000buildmbr - null args, no SRID :memory: #use in-memory database SELECT BuildMbr(5, 4, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildMbr(5, 4, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/setendpoint7.testcase0000664000175000017500000000037612544707704021677 00000000000000ST_SetEndPoint() - INTEGER Point :memory: #use in-memory database SELECT ST_SetEndPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1) 1 # rows (not including the header row) 1 # columns ST_SetEndPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/scalecoords6.testcase0000664000175000017500000000152312544707704021636 00000000000000scale coords - POLYGON :memory: #use in-memory database SELECT AsText(ScaleCoords(geom, 0)), AsText(ScaleCoords(geom, 0.0)), AsText(ScaleCoords(geom, 2, 3.0)), AsText(ScaleCoords(geom, 1.0, -1)), ScaleCoords(zeroblob(20), 10), ScaleCoords(geom, "hello"), ScaleCoords(geom, 1, "hello"), ScaleCoords("foo", 2) FROM (SELECT GeomFromText("POLYGON((1 2, 1 3, 2 3, 2 2, 1 2))") as geom) dummy; 1 # rows (not including the header row) 8 # columns AsText(ScaleCoords(geom, 0)) AsText(ScaleCoords(geom, 0.0)) AsText(ScaleCoords(geom, 2, 3.0)) AsText(ScaleCoords(geom, 1.0, -1)) ScaleCoords(zeroblob(20), 10) ScaleCoords(geom, "hello") ScaleCoords(geom, 1, "hello") ScaleCoords("foo", 2) POLYGON((0 0, 0 0, 0 0, 0 0, 0 0)) POLYGON((0 0, 0 0, 0 0, 0 0, 0 0)) POLYGON((2 6, 2 9, 4 9, 4 6, 2 6)) POLYGON((1 -2, 1 -3, 2 -3, 2 -2, 1 -2)) (NULL) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull3.testcase0000664000175000017500000000026312544707704021323 00000000000000ForceAsNull() - INTEGER/BLOB :memory: #use in-memory database SELECT ForceAsNull(1, zeroblob(4)) 1 # rows (not including the header row) 1 # columns ForceAsNull(1, zeroblob(4)) 1 libspatialite-4.3.0a/test/sql_stmt_tests/casttoxym5.testcase0000664000175000017500000000034112544707704021364 00000000000000casttoxym - POINT :memory: #use in-memory database SELECT AsText(CastToXYM(GeomFromText("POINTZ(4 3 10)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToXYM(GeomFromText("POINTZ(4 3 10)"))) POINT M(4 3 0) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype36.testcase0000664000175000017500000000066312544707704021255 00000000000000geometrytype - GEOMETRYCOLLECTIONZ two linestring :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(4 6 0, 10 0 0), LINESTRINGZ(2 3 0, 5 1 0))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION Z XYZ GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson3.testcase0000664000175000017500000000030312544707704021655 00000000000000FromGeoJSON - bad text :memory: #use in-memory database SELECT AsText(GeomFromGeoJSON("not json")); 1 # rows (not including the header row) 1 # columns AsText(GeomFromGeoJSON("not json")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry53.testcase0000664000175000017500000000066012544707704023027 00000000000000CompressGeometry - GEOMETRYCOLLECTION ZM (2 Points) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), POINTZM(3 4 101 11))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), POINTZM(3 4 101 11))", 4326))) GEOMETRYCOLLECTION ZM(POINT ZM(1 2 100 10), POINT ZM(3 4 101 11)) libspatialite-4.3.0a/test/sql_stmt_tests/reverse1.testcase0000664000175000017500000000025112544707704021000 00000000000000reverse - zeroblob :memory: #use in-memory database SELECT ST_Reverse(zeroblob(99)); 1 # rows (not including the header row) 1 # columns ST_Reverse(zeroblob(99)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml49.testcase0000664000175000017500000000234512544707704021072 00000000000000FromGML - GeometryCollection v3 (no namespaces) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('8 89 9 10 100 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 1')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('8 89 9 10 100 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 1')):0 SRID=4326;GEOMETRYCOLLECTION(POINT(8 8),LINESTRING(9 9,10 10),POLYGON((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1))) libspatialite-4.3.0a/test/sql_stmt_tests/dissolve20.testcase0000664000175000017500000000107312544707704021241 00000000000000dissolve - POLYGON M :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGONM((0 0 4,10 0 5,10 10 6,0 10 7,0 0 4),(1 1 2, 2 2 3, 2 1 4, 1 1 2))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING M((0 0 4, 10 0 5), (10 0 5, 10 10 6), (10 10 6, 0 10 7), (0 10 7, 0 0 4), (1 1 2, 2 2 3), (2 2 3, 2 1 4), (2 1 4, 1 1 2)) MULTIPOINT M(0 0 4, 10 0 5, 10 10 6, 0 10 7, 0 0 4, 1 1 2, 2 2 3, 2 1 4, 1 1 2) libspatialite-4.3.0a/test/sql_stmt_tests/shiftcoords8.testcase0000664000175000017500000000043612544707704021670 00000000000000shiftcoords - Linestring XY :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("LINESTRING(1 2, 3 4)"), 1.4, 3.9)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("LINESTRING(1 2, 3 4)"), 1.4, 3.9)) LINESTRING(2.4 5.9, 4.4 7.9) libspatialite-4.3.0a/test/sql_stmt_tests/makepointz-null8.testcase0000664000175000017500000000033512544707704022470 00000000000000makepointz-null8 :memory: #use in-memory database SELECT AsText(MakePointZ(26.0, 42.3150676015829, 'alpha')); 1 # rows (not including the header row) 1 # columns AsText(MakePointZ(26.0, 42.3150676015829, 'alpha')) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sanitizeGeometry3.testcase0000664000175000017500000000027212544707704022674 00000000000000Sanitize Geometry - non-blob :memory: #use in-memory database SELECT SanitizeGeometry("hell0o"); 1 # rows (not including the header row) 1 # columns SanitizeGeometry("hell0o") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint15.testcase0000664000175000017500000000041512544707704021216 00000000000000ST_AddPoint() - invalid index :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 2) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 2) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeline16.testcase0000664000175000017500000000046312544707704021205 00000000000000makeline16 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINTM(0 0 4.1)"), GeomFromText("POINTZ(1 2 2.4)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINTM(0 0 4.1)"), GeomFromText("POINTZ(1 2 2.4)"))) LINESTRING ZM(0 0 0 4.1, 1 2 2.4 0) libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat15.testcase0000664000175000017500000000037712544707704022635 00000000000000normalizelonlat- in range 200 :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(4 200)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(4 200)", 4326))) POINT(4 -20) libspatialite-4.3.0a/test/sql_stmt_tests/todms4.testcase0000664000175000017500000000030712544707704020460 00000000000000todms - Integer longitude :memory: #use in-memory database SELECT LongLatToDMS(11, 42.5); 1 # rows (not including the header row) 1 # columns LongLatToDMS(11, 42.5) 42°30′00″N 011°00′00″E libspatialite-4.3.0a/test/sql_stmt_tests/mbr2.testcase0000664000175000017500000000043712544707704020114 00000000000000MbrContains - Line + Point :memory: #use in-memory database SELECT MbrContains(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 1)")); 1 # rows (not including the header row) 1 # columns MbrContains(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 1)")) # header 1libspatialite-4.3.0a/test/sql_stmt_tests/fromgml3.testcase0000664000175000017500000000041012544707704020767 00000000000000FromGML - bad text :memory: #use in-memory database SELECT GeomFromGml('1,21,21,2:0 libspatialite-4.3.0a/test/sql_stmt_tests/atmtrans13.testcase0000664000175000017500000000030712544707704021243 00000000000000ATM_Translate() - 3d invalid matrix :memory: #use in-memory database SELECT ATM_Translate(1, 1.0, 2.0, 3.0) 1 # rows (not including the header row) 1 # columns ATM_Translate(1, 1.0, 2.0, 3.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon13.testcase0000664000175000017500000000057412544707704021745 00000000000000makepolygon - Linestring exterior XYM :memory: #use in-memory database SELECT ST_AsText(MakePolygon(GeomFromText('LINESTRINGM(1 1 10, 1 2 11, 2 2 12, 2 1 11, 1 1 10)', 4326))); 1 # rows (not including the header row) 1 # columns ST_AsText(MakePolygon(GeomFromText('LINESTRINGM(1 1 10, 1 2 11, 2 2 12, 2 1 11, 1 1 10)', 4326))) POLYGON M((1 1 10, 1 2 11, 2 2 12, 2 1 11, 1 1 10)) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype60.testcase0000664000175000017500000000061112544707704021243 00000000000000geometrytype - GEOMETRYCOLLECTIONZ - one point :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(3 3 29))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION Z XYZ GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext22.testcase0000664000175000017500000000051612544707704022134 00000000000000geomfromtext22 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONM(MULTIPOINTM(0 1 9, 2 3 9, 4 5 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONM(MULTIPOINTM(0 1 9, 2 3 9, 4 5 9))')); GEOMETRYCOLLECTION M(POINT M(0 1 9), POINT M(2 3 9), POINT M(4 5 9)) libspatialite-4.3.0a/test/sql_stmt_tests/wkb5.testcase0000664000175000017500000000063712544707704020124 00000000000000Hex Wkb: GeometryCollection XY (2 points) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POINT(1.2 3.4), POINT(5.6 7.8))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTION(POINT(1.2 3.4), POINT(5.6 7.8))", 4326))); 0107000000020000000101000000333333333333F33F3333333333330B40010100000066666666666616403333333333331F40 libspatialite-4.3.0a/test/sql_stmt_tests/elemgeo6.testcase0000664000175000017500000000043412544707704020752 00000000000000ElementaryGeometries() - not existing table :memory: #use in-memory database SELECT ElementaryGeometries('in_table', 'geom', 'out_table', 'id', 'old_id'); 1 # rows (not including the header row) 1 # columns ElementaryGeometries('in_table', 'geom', 'out_table', 'id', 'old_id') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepointzm-null5.testcase0000664000175000017500000000042412544707704022641 00000000000000makepointzm-null5 :memory: #use in-memory database SELECT AsText(MakePointZM(-26.0, 42.3150676015829, 0.0038723129645, 12.6389, 4326.0)); 1 # rows (not including the header row) 1 # columns AsText(MakePointZM(-26.0, 42.3150676015829, 0.0038723129645, 12.6389, 4326.0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/locatemeasure6.testcase0000664000175000017500000000066312544707704022172 00000000000000ST_Locate_Between_Measures - LinestringZM - no match :memory: #use in-memory database SELECT ST_Locate_Between_Measures(GeomFromText('LINESTRINGZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.5)'), 20.1, 30); 1 # rows (not including the header row) 1 # columns ST_Locate_Between_Measures(GeomFromText('LINESTRINGZM(0 1 100 2.1, 1 0 101 1, 2 1 102 2.1, 3 0 103 2.2, 4 1 104 4, 5 0 105 2.5)'), 20.1, 30) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collect12.testcase0000664000175000017500000000045512544707704021042 00000000000000collect - PointZ, Point :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTZ(4 5 3.2)"), GeomFromText("POINT(1 2)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTZ(4 5 3.2)"), GeomFromText("POINT(1 2)"))) MULTIPOINT Z(4 5 3.2, 1 2 0) libspatialite-4.3.0a/test/sql_stmt_tests/casttoint4.testcase0000664000175000017500000000035312544707704021343 00000000000000CastToInteger() - TEXT valid :memory: #use in-memory database SELECT CastToInteger('123'), TypeOf(CastToInteger('123')) 1 # rows (not including the header row) 2 # columns CastToInteger('123') TypeOf(CastToInteger('123')) 123 integer libspatialite-4.3.0a/test/sql_stmt_tests/mbrminmax8.testcase0000664000175000017500000000022012544707704021322 00000000000000MbrMaxY- non blob :memory: #use in-memory database SELECT MbrMaxY(3.5) 1 # rows (not including the header row) 1 # columns MbrMaxY(3.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttoxy2.testcase0000664000175000017500000000021712544707704021206 00000000000000casttoxy - non-blob :memory: #use in-memory database SELECT CastToXY(4) 1 # rows (not including the header row) 1 # columns CastToXY(4) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry56.testcase0000664000175000017500000000102112544707704023022 00000000000000CompressGeometry - GEOMETRYCOLLECTION M (2 Linestrings) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(1 2 10, 3 4 11, 5 6 12), LINESTRINGM(7 7 11, 8 8 12, 9 9 13))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(1 2 10, 3 4 11, 5 6 12), LINESTRINGM(7 7 11, 8 8 12, 9 9 13))", 4326))) GEOMETRYCOLLECTION M(LINESTRING M(1 2 10, 3 4 11, 5 6 12), LINESTRING M(7 7 11, 8 8 12, 9 9 13)) libspatialite-4.3.0a/test/sql_stmt_tests/mm_m.testcase0000664000175000017500000000023612544707704020174 00000000000000millimetres to metres :memory: #use in-memory database SELECT CvtFromMm(2100.4); 1 # rows (not including the header row) 1 # columns CvtFromMm(2100.4); 2.1004libspatialite-4.3.0a/test/sql_stmt_tests/casttoxyzm2.testcase0000664000175000017500000000022512544707704021554 00000000000000casttoxyzm - non-blob :memory: #use in-memory database SELECT CastToXYZM(4) 1 # rows (not including the header row) 1 # columns CastToXYZM(4) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext42.testcase0000664000175000017500000000127212544707704022136 00000000000000geomfromtext42 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONM(POINTM(9 9 9), GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9)), POINTM(8 8 9), GEOMETRYCOLLECTIONM(POINTM(3 3 9), LINESTRINGM(4 4 9, 5 5 9)), POINTM(7 7 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONM(POINTM(9 9 9), GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9)), POINTM(8 8 9), GEOMETRYCOLLECTIONM(POINTM(3 3 9), LINESTRINGM(4 4 9, 5 5 9)), POINTM(7 7 9))')); GEOMETRYCOLLECTION M(POINT M(9 9 9), POINT M(0 0 9), POINT M(8 8 9), POINT M(3 3 9), POINT M(7 7 9), LINESTRING M(1 1 9, 2 2 9), LINESTRING M(4 4 9, 5 5 9)) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype3.testcase0000664000175000017500000000046412544707704021166 00000000000000geometrytype3 - POINTZM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("POINTZM(-71.1043443253471 42.315067601582900 26.2 3)") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) POINT ZM XYZMlibspatialite-4.3.0a/test/sql_stmt_tests/removepoint8.testcase0000664000175000017500000000040712544707704021706 00000000000000ST_RemovePoint() - TEXT index :memory: #use in-memory database SELECT ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 'alpha') 1 # rows (not including the header row) 1 # columns ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sriddatum5.testcase0000664000175000017500000000026412544707704021331 00000000000000SridGetDatum() - BLOB SRID :memory: #use in-memory database SELECT SridGetDatum(zeroblob(10)) 1 # rows (not including the header row) 1 # columns SridGetDatum(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridax2name2.testcase0000664000175000017500000000027212544707704021546 00000000000000SridGetAxis_2_Name() - TEXT SRID :memory: #use in-memory database SELECT SridGetAxis_2_Name('srid') 1 # rows (not including the header row) 1 # columns SridGetAxis_2_Name('srid') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepointz-null1.testcase0000664000175000017500000000036312544707704022462 00000000000000makepointz-null1 :memory: #use in-memory database SELECT AsText(MakePointZ("hello", 42.3150676015829, 0.0038723129645)); 1 # rows (not including the header row) 1 # columns AsText(MakePointZ("hello", 42.3150676015829, 0.0038723129645)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry8.testcase0000664000175000017500000000074312544707704022751 00000000000000CompressGeometry - GEOMETRYCOLLECTION / LINESTRING :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("GeometryCollection(LINESTRING(1 2, 3 4))"))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("GeometryCollection(LINESTRING(1 2, 3 4))"))) 000100000000000000000000F03F0000000000000040000000000000084000000000000010407C07000000010000006942420F0002000000000000000000F03F000000000000004000000000000008400000000000001040FE libspatialite-4.3.0a/test/sql_stmt_tests/casttoint3.testcase0000664000175000017500000000026012544707704021337 00000000000000CastToInteger() - TEXT invalid :memory: #use in-memory database SELECT CastToInteger('alpha') 1 # rows (not including the header row) 1 # columns CastToInteger('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepointzm-null3.testcase0000664000175000017500000000034212544707704022636 00000000000000makepointzm-null3 :memory: #use in-memory database SELECT AsText(MakePointZM(26.0, "world", 0.54, 18.63, 4326)); 1 # rows (not including the header row) 1 # columns AsText(MakePointZM(26.0, "world", 0.54, 18.63, 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract8.testcase0000664000175000017500000000036712544707704022364 00000000000000Collection Extract - Point Float idx (NULL) :memory: #use in-memory database SELECT CollectionExtract(GeomFromText("POINT(1 2)"), 3.2); 1 # rows (not including the header row) 1 # columns CollectionExtract(GeomFromText("POINT(1 2)"), 3.2) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asewkb6.testcase0000664000175000017500000000057412544707704020616 00000000000000asewkb - POINTZM :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("POINTZM(1 3 1 0)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POINTZM(1 3 1 0)", 4326))) 30313031303030304530453631303030303030303030303030303030303046303346303030303030303030303030303834303030303030303030303030304630334630303030303030303030303030303030 libspatialite-4.3.0a/test/sql_stmt_tests/fromgml13.testcase0000664000175000017500000000261512544707704021061 00000000000000FromGML - MultiPolygon v2 :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01,1 2,1 2,2 1,2 1,16,6 7,6 7,7 6,7 6,6')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01,1 2,1 2,2 1,2 1,16,6 7,6 7,7 6,7 6,6')):0 SRID=4326;MULTIPOLYGON(((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1)),((6 6,7 6,7 7,6 7,6 6))) libspatialite-4.3.0a/test/sql_stmt_tests/geometryn11.testcase0000664000175000017500000000057012544707704021423 00000000000000Geometry N - multilinestringzm :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTILINESTRINGZM((1 2 4 1.6, 4 2.3 9 8.7, 1 2 3 1),(0 1 2 3, 8 1 1 4))"), 2)); 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTILINESTRINGZM((1 2 4 1.6, 4 2.3 9 8.7, 1 2 3 1),(0 1 2 3, 8 1 1 4))"), 2)) LINESTRING ZM(0 1 2 3, 8 1 1 4) libspatialite-4.3.0a/test/sql_stmt_tests/ewkb10.testcase0000664000175000017500000000154412544707704020343 00000000000000EWkb: GeometryCollection XY :memory: #use in-memory database SELECT AsText(GeomFromEWkb('0107000020E61000000400000001010000009A9999999999F13F9A99999999990140010200000002000000000000000000F03F00000000000000400000000000000840000000000000104001030000000200000005000000000000000000244000000000000024400000000000002E4000000000000024400000000000002E400000000000002E4000000000000024400000000000002E400000000000002440000000000000244005000000000000000000284000000000000028400000000000002A4000000000000028400000000000002A400000000000002A4000000000000028400000000000002A4000000000000028400000000000002840010100000000000000000030400000000000003040')) AS wkt_geom; 1 # rows (not including the header row) 1 # columns wkt_geom GEOMETRYCOLLECTION(POINT(1.1 2.2), POINT(16 16), LINESTRING(1 2, 3 4), POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (12 12, 13 12, 13 13, 12 13, 12 12))) libspatialite-4.3.0a/test/sql_stmt_tests/minz5.testcase0000664000175000017500000000036512544707704020314 00000000000000MinZ - Linestring XYM :memory: #use in-memory database SELECT ST_MinZ(GeomFromText('LINESTRINGM(1 2 10, 3 4 11, 5 6 12)')); 1 # rows (not including the header row) 1 # columns ST_MinZ(GeomFromText('LINESTRINGM(1 2 10, 3 4 11, 5 6 12)')) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/maxm3.testcase0000664000175000017500000000034012544707704020270 00000000000000MaxM - Linestring XY :memory: #use in-memory database SELECT ST_MaxM(GeomFromText('LINESTRING(1 2, 3 4, 5 6)')); 1 # rows (not including the header row) 1 # columns ST_MaxM(GeomFromText('LINESTRING(1 2, 3 4, 5 6)')) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/is3d1.testcase0000664000175000017500000000020512544707704020166 00000000000000Is3D- non-blob :memory: #use in-memory database SELECT ST_Is3D(3) 1 # rows (not including the header row) 1 # columns ST_Is3D(3) -1 libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe7.testcase0000664000175000017500000000033512544707704023227 00000000000000makecircularstripe7 - NULL radius :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, NULL, 90, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, NULL, 90, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract4.testcase0000664000175000017500000000037712544707704022361 00000000000000Collection Extract - Point invalid type :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POINT(1 2)"), 4)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POINT(1 2)"), 4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/rotatecoords9.testcase0000664000175000017500000000154412544707704022053 00000000000000rotate coords - Simple polygonm :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("POLYGONM((0 0 1, 1 1 2, 1 2 3, -1 1 4, 0 0 1))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) POLYGON M((0 0 1, 1 1 2, 1 2 3, -1 1 4, 0 0 1)) POLYGON M((0 0 1, 1 -1 2, 2 -1 3, 1 1 4, 0 0 1)) POLYGON M((0 0 1, -1 -1 2, -1 -2 3, 1 -1 4, 0 0 1)) POLYGON M((0 0 1, -1 1 2, -2 1 3, -1 -1 4, 0 0 1)) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/numgeometries1.testcase0000664000175000017500000000026312544707704022213 00000000000000numgeometries - bad blob :memory: #use in-memory database SELECT NumGeometries(zeroblob(99)) 1 # rows (not including the header row) 1 # columns NumGeometries(zeroblob(99)) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/geodesic-len5.testcase0000664000175000017500000000035512544707704021674 00000000000000geodesic length linestring ZM :memory: SELECT GeodesicLength(GeomFromText("LINESTRINGZM(0 0 4 1, 1 0 2 6, 0 0 1 34)", 4326)); 1 # rows 1 # column GeodesicLength(GeomFromText("LINESTRINGZM(0 0 4 1, 1 0 2 6, 0 0 1 34)", 4326)) 222638.98:9 libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry42.testcase0000664000175000017500000000075512544707704023032 00000000000000CompressGeometry - MULTIPOLYGON :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOLYGON(((10 10, 11 10, 11 11, 10 11, 10 10)), ((15 15, 16 15, 16 16, 15 16, 15 15)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOLYGON(((10 10, 11 10, 11 11, 10 11, 10 10)), ((15 15, 16 15, 16 16, 15 16, 15 15)))", 4326))) MULTIPOLYGON(((10 10, 11 10, 11 11, 10 11, 10 10)), ((15 15, 16 15, 16 16, 15 16, 15 15))) libspatialite-4.3.0a/test/sql_stmt_tests/togars10.testcase0000664000175000017500000000045012544707704020705 00000000000000togars - GeometryCollection, single Point :memory: #use in-memory database SELECT ToGARS(GeomFromText("GEOMETRYCOLLECTION(POINT(11.876910 43.461390))", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("GEOMETRYCOLLECTION(POINT(11.876910 43.461390))", 4326)) 384MC22 libspatialite-4.3.0a/test/sql_stmt_tests/casttopoly2.testcase0000664000175000017500000000024012544707704021525 00000000000000casttopolygon - non blob :memory: #use in-memory database SELECT CastToPolygon(99) 1 # rows (not including the header row) 1 # columns CastToPolygon(99) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints24.testcase0000664000175000017500000000075512544707704022642 00000000000000geometry constraints - GEOMETRYCOLLECTION :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("GEOMETRYCOLLECTION(MULTIPOLYGONM(((0 0 0, 1 0 0, 1 1 0, 0 0 0)),((0 0 0, -1 0 0, -1 -1 0, 0 0 0))))", 4326), "GEOMETRYCOLLECTION", 4326, "XYM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("GEOMETRYCOLLECTION(MULTIPOLYGONM(((0 0 0, 1 0 0, 1 1 0, 0 0 0)),((0 0 0, -1 0 0, -1 -1 0, 0 0 0))))", 4326), "GEOMETRYCOLLECTION", 4326, "XYM") 1 libspatialite-4.3.0a/test/sql_stmt_tests/asbinary12.testcase0000664000175000017500000000122712544707704021223 00000000000000asbinary - MULTILINESTRINGZ :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTILINESTRINGZ((0 0 0, 3 0 1,3 0 2, 3 3 3), (0 0 1, 0 3 2))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTILINESTRINGZ((0 0 0, 3 0 1,3 0 2, 3 3 3), (0 0 1, 0 3 2))", 4326))) 01ED0300000200000001EA0300000400000000000000000000000000000000000000000000000000000000000000000008400000000000000000000000000000F03F00000000000008400000000000000000000000000000004000000000000008400000000000000840000000000000084001EA0300000200000000000000000000000000000000000000000000000000F03F000000000000000000000000000008400000000000000040 libspatialite-4.3.0a/test/sql_stmt_tests/buildmbr5.testcase0000664000175000017500000000033012544707704021127 00000000000000buildmbr - int args / no SRID :memory: #use in-memory database SELECT AsText(BuildMbr(5, 6, 7, 8)) 1 # rows (not including the header row) 1 # columns AsText(BuildMbr(5, 6, 7, 8)) POLYGON((5 6, 7 6, 7 8, 5 8, 5 6)) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt10.testcase0000664000175000017500000000053312544707704021246 00000000000000fromtewkt10 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOINT(0 1 9, 2 3 9, 4 5 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOINT(0 1 9, 2 3 9, 4 5 9))')); GEOMETRYCOLLECTION Z(POINT Z(0 1 9), POINT Z(2 3 9), POINT Z(4 5 9)) libspatialite-4.3.0a/test/sql_stmt_tests/mbrminmax1.testcase0000664000175000017500000000021412544707704021316 00000000000000MbrMinX- non-blob :memory: #use in-memory database SELECT MbrMinX(3) 1 # rows (not including the header row) 1 # columns MbrMinX(3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridax2orient1.testcase0000664000175000017500000000031212544707704022120 00000000000000SridGeAxis_2_Orientation() - NULL SRID :memory: #use in-memory database SELECT SridGetAxis_2_Orientation(NULL) 1 # rows (not including the header row) 1 # columns SridGetAxis_2_Orientation(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/reflectcoords6.testcase0000664000175000017500000000034712544707704022176 00000000000000reflectcoords6 :memory: #use in-memory database SELECT AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 1.0, 1)); 1 # rows (not including the header row) 1 # columns AsText(ReflectCoords(GeomFromText("POINT(1 2)"), 1.0, 1)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/isvalidpalette1.testcase0000664000175000017500000000033112544707704022336 00000000000000IsValidRasterPalette - standard NEW:memory: #use in-memory database SELECT IsValidRasterPalette(zeroblob(4), 'UINT8'); 1 # rows (not including the header row) 1 # columns IsValidRasterPalette(zeroblob(4), 'UINT8') 0 libspatialite-4.3.0a/test/sql_stmt_tests/atmcreateyroll1.testcase0000664000175000017500000000025112544707704022354 00000000000000ATM_CreateYRoll() - invalid :memory: #use in-memory database SELECT ATM_CreateYRoll('a') 1 # rows (not including the header row) 1 # columns ATM_CreateYRoll('a') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint21.testcase0000664000175000017500000000046312544707704021216 00000000000000ST_AddPoint() - insert into the middle :memory: #use in-memory database SELECT AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 1)) 1 # rows (not including the header row) 1 # columns AsText(AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 1)) LINESTRING(0 0, 1 1, 1 0) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector6.testcase0000664000175000017500000000034312544707704023216 00000000000000makecircularsector6 - BLOB cy :memory: #use in-memory database SELECT MakeCircularSector(0, zeroblob(4), 100, 30, 60); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, zeroblob(4), 100, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/wkb27.testcase0000664000175000017500000000201012544707704020173 00000000000000Hex Wkb: GeometryCollection XYM (2 polygons) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONM(POLYGONM((10 10 1, 11 10 2, 11 11 3, 10 11 3, 10 10 1)), POLYGONM((15 15 1, 16 15 2, 16 16 3, 15 16 3, 15 15 1)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONM(POLYGONM((10 10 1, 11 10 2, 11 11 3, 10 11 3, 10 10 1)), POLYGONM((15 15 1, 16 15 2, 16 16 3, 15 16 3, 15 15 1)))", 4326))); 01D70700000200000001D3070000010000000500000000000000000024400000000000002440000000000000F03F00000000000026400000000000002440000000000000004000000000000026400000000000002640000000000000084000000000000024400000000000002640000000000000084000000000000024400000000000002440000000000000F03F01D307000001000000050000000000000000002E400000000000002E40000000000000F03F00000000000030400000000000002E4000000000000000400000000000003040000000000000304000000000000008400000000000002E40000000000000304000000000000008400000000000002E400000000000002E40000000000000F03F libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints26.testcase0000664000175000017500000000071112544707704022634 00000000000000geometry constraints - GEOMETRYCOLLECTION :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0, 1 0, 1 1, 0 0)),((0 0, -1 0, -1 -1, 0 0))))", 4326), "GEOMETRYCOLLECTION", 4326, "XY") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0, 1 0, 1 1, 0 0)),((0 0, -1 0, -1 -1, 0 0))))", 4326), "GEOMETRYCOLLECTION", 4326, "XY") 1 libspatialite-4.3.0a/test/sql_stmt_tests/nrings6.testcase0000664000175000017500000000061012544707704020631 00000000000000nrings - multipolygon :memory: #use in-memory database SELECT ST_NRings(GeomFromText("MULTIPOLYGON(((1 2, 3 4, 5 0, 1 2),(1.6 2.1, 1.7 2.1, 1.7 2.2, 1.6 2.2, 1.6 2.1)),((0 0, 1 0, 1 1, 0 1, 0 0)))")) 1 # rows (not including the header row) 1 # columns ST_NRings(GeomFromText("MULTIPOLYGON(((1 2, 3 4, 5 0, 1 2),(1.6 2.1, 1.7 2.1, 1.7 2.2, 1.6 2.2, 1.6 2.1)),((0 0, 1 0, 1 1, 0 1, 0 0)))")) 3 libspatialite-4.3.0a/test/sql_stmt_tests/casttosingle8.testcase0000664000175000017500000000063112544707704022035 00000000000000casttosingle - 2 linestrings and polygon :memory: #use in-memory database SELECT AsText(CastToSingle(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 1, 3 4),LINESTRING(4 6, 3 1),POLYGON((0 1, 2 1, 2 4, 0 4, 0 1)))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToSingle(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 1, 3 4),LINESTRING(4 6, 3 1),POLYGON((0 1, 2 1, 2 4, 0 4, 0 1)))"))) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/assvg3.testcase0000664000175000017500000000035712544707704020461 00000000000000assvg - 3 arg non-relative :memory: #use in-memory database SELECT assvg(GeomFromText("Point(1.3759 2)", 4326), 0, 2) 1 # rows (not including the header row) 1 # columns assvg(GeomFromText("Point(1.3759 2)", 4326), 0, 2) cx="1.38" cy="-2" libspatialite-4.3.0a/test/sql_stmt_tests/makecircle7.testcase0000664000175000017500000000025512544707704021436 00000000000000makecircle7 - NULL radius :memory: #use in-memory database SELECT MakeCircle(0, 0, NULL); 1 # rows (not including the header row) 1 # columns MakeCircle(0, 0, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/maxm4.testcase0000664000175000017500000000037312544707704020277 00000000000000MaxM - Linestring XYZ :memory: #use in-memory database SELECT ST_MaxM(GeomFromText('LINESTRINGZ(1 2 100, 3 4 103, 5 6 101)')); 1 # rows (not including the header row) 1 # columns ST_MaxM(GeomFromText('LINESTRINGZ(1 2 100, 3 4 103, 5 6 101)')) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb17.testcase0000664000175000017500000000070312544707704021025 00000000000000fromWkb - LINESTRING with SRID :memory: #use in-memory database SELECT Hex(LinestringFromWkb(AsBinary(GeomFromText("LINESTRING(1 2, 2 1)", 4326)), 4326)) 1 # rows (not including the header row) 1 # columns Hex(LinestringFromWkb(AsBinary(GeomFromText("LINESTRING(1 2, 2 1)", 4326)), 4326)) 0001E6100000000000000000F03F000000000000F03F000000000000004000000000000000407C0200000002000000000000000000F03F00000000000000400000000000000040000000000000F03FFE libspatialite-4.3.0a/test/sql_stmt_tests/geomtype11.testcase0000664000175000017500000000050512544707704021241 00000000000000geometrytype - GEOMETRYCOLLECTION :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) GEOMETRYCOLLECTION XYlibspatialite-4.3.0a/test/sql_stmt_tests/fromewkt2.testcase0000664000175000017500000000015312544707704021165 00000000000000From EWKT - bad text :memory: SELECT GeomFromEwkt("g'day") 1 # rows 1 # column GeomFromEwkt("g'day") (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/sanitizeGeometry12.testcase0000664000175000017500000000076612544707704022764 00000000000000Sanitize Geometry - POLYGON M - point combinations :memory: #use in-memory database SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-70 42 2, -75 42 2, -70 39 2, -70 42 3, -70 42 3, -70 42 4, -75 42 2, -70 42 2))", 4326))) 1 # rows (not including the header row) 1 # columns AsEWkt(SanitizeGeometry(GeomFromText("POLYGON M((-70 42 2, -75 42 2, -70 39 2, -70 42 3, -70 42 3, -70 42 4, -75 42 2, -70 42 2))", 4326))) SRID=4326;POLYGONM((-70 42 2,-75 42 2,-70 39 2,-70 42 3,-75 42 2,-70 42 2)) libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints7.testcase0000664000175000017500000000044212544707704022554 00000000000000geometry constraints - 4 arg, POINT vs XYZ :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("Point(1 2)", 4326), "POINT", 4326, "XYZ") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("Point(1 2)", 4326), "POINT", 4326, "XYZ") 0 libspatialite-4.3.0a/test/sql_stmt_tests/npoints3.testcase0000664000175000017500000000025312544707704021023 00000000000000npoints - single point :memory: #use in-memory database SELECT ST_NPoints(MakePoint(2,3)) 1 # rows (not including the header row) 1 # columns ST_NPoints(MakePoint(2,3)) 1 libspatialite-4.3.0a/test/sql_stmt_tests/m_usmi.testcase0000664000175000017500000000023212544707704020534 00000000000000metres to US miles :memory: #use in-memory database SELECT CvtToUsMi(1000); 1 # rows (not including the header row) 1 # columns CvtToUsMi(1000); 0.6213:6 libspatialite-4.3.0a/test/sql_stmt_tests/dissolve10.testcase0000664000175000017500000000050512544707704021237 00000000000000dissolve - POINT M :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POINTM(1 2 4.3)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) POINT M(1 2 4.3) POINT M(1 2 4.3)libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry47.testcase0000664000175000017500000000053712544707704023035 00000000000000CompressGeometry - GEOMETRYCOLLECTION Z (1 Point) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100))", 4326))) GEOMETRYCOLLECTION Z(POINT Z(1 2 100)) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext40.testcase0000664000175000017500000000065612544707704022141 00000000000000geomfromtext40 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(GEOMETRYCOLLECTIONM(POINTM(0 0 9), LINESTRINGM(1 1 9, 2 2 9))))')); GEOMETRYCOLLECTION M(POINT M(0 0 9), LINESTRING M(1 1 9, 2 2 9)) libspatialite-4.3.0a/test/sql_stmt_tests/st_y7.testcase0000664000175000017500000000041612544707704020314 00000000000000ST_Y7 :memory: #use in-memory database SELECT ST_Y(MakePointZ(-71.1043443253471, 42.3150676015829, 0.0038723129645, 4326)); 1 # rows (not including the header row) 1 # columns ST_Y(MakePointZ(-71.1043443253471, 42.3150676015829, 0.0038723129645, 4326)) 42.3150676015829 libspatialite-4.3.0a/test/sql_stmt_tests/dissolve26.testcase0000664000175000017500000000106512544707704021250 00000000000000dissolve - Overlap points POLYGON ZM :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGONZM((0 1 0 2, 0 2 1 3, 1 2 2 4, 1 2 3 5, 1 2 3 6, 1 2 3 6, 0 1 0 2))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING ZM((0 1 0 2, 0 2 1 3), (0 2 1 3, 1 2 2 4), (1 2 2 4, 1 2 3 5), (1 2 3 5, 1 2 3 6), (1 2 3 6, 0 1 0 2)) MULTIPOINT ZM(0 1 0 2, 0 2 1 3, 1 2 2 4, 1 2 3 5, 1 2 3 6, 1 2 3 6, 0 1 0 2) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc12.testcase0000664000175000017500000000033012544707704022536 00000000000000makeellipticarc12 - NULL start :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, NULL, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, NULL, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml25.testcase0000664000175000017500000000246712544707704021071 00000000000000FromGML - MultiPolygon v2 3D (no namespace) :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0,0,10 5,0,11 5,5,13 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,52,2,10 3,2,11 3,3,13 2,3,13 2,2,10')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0,0,10 5,0,11 5,5,13 0,5,13 0,0,101,1,5 2,1,5 2,2,5 1,2,5 1,1,52,2,10 3,2,11 3,3,13 2,3,13 2,2,10')):0 SRID=4326;MULTIPOLYGON(((0 0 10,5 0 11,5 5 13,0 5 13,0 0 10),(1 1 5,2 1 5,2 2 5,1 2 5,1 1 5)),((2 2 10,3 2 11,3 3 13,2 3 13,2 2 10))) libspatialite-4.3.0a/test/sql_stmt_tests/makeline8.testcase0000664000175000017500000000044712544707704021130 00000000000000makeline8 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINTZ(0 0 0)"), GeomFromText("POINTZ(1 2 0.2)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINTZ(0 0 0)"), GeomFromText("POINTZ(1 2 0.2)"))) LINESTRING Z(0 0 0, 1 2 0.2) libspatialite-4.3.0a/test/sql_stmt_tests/invalidatestats4.testcase0000664000175000017500000000032412544707704022530 00000000000000InvalidateLayerStatistics - INT, TEXT :memory: #use in-memory database SELECT InvalidateLayerStatistics(1, 'column'); 1 # rows (not including the header row) 1 # columns InvalidateLayerStatistics(1, 'column'); 0 libspatialite-4.3.0a/test/sql_stmt_tests/maxz7.testcase0000664000175000017500000000066312544707704020321 00000000000000MaxZ - Polygon XYZM :memory: #use in-memory database SELECT ST_MaxZ(GeomFromText('POLYGONZM((0 0 100 10, 5 0 99 11, 5 5 102 12, 0 5 103 13, 0 0 100 10), (1 1 88 11, 2 1 102 12, 2 2 103 13, 1 2 104 14, 1 1 101 11))')); 1 # rows (not including the header row) 1 # columns ST_MaxZ(GeomFromText('POLYGONZM((0 0 100 10, 5 0 99 11, 5 5 102 12, 0 5 103 13, 0 0 100 10), (1 1 88 11, 2 1 102 12, 2 2 103 13, 1 2 104 14, 1 1 101 11))')); 104.0 libspatialite-4.3.0a/test/sql_stmt_tests/mbr26.testcase0000664000175000017500000000044712544707704020203 00000000000000MbrDisjoint - Line + Point outside :memory: #use in-memory database SELECT MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(2 2)")); 1 # rows (not including the header row) 1 # columns MbrDisjoint(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(2 2)")) # header 1libspatialite-4.3.0a/test/sql_stmt_tests/buildmbr7.testcase0000664000175000017500000000027312544707704021137 00000000000000buildmbr - null args :memory: #use in-memory database SELECT BuildMbr(5, 6, NULL, NULL, NULL) 1 # rows (not including the header row) 1 # columns BuildMbr(5, 6, NULL, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype57.testcase0000664000175000017500000000063112544707704021253 00000000000000geometrytype - GEOMETRYCOLLECTIONZ - two points :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(4 6 4), POINTZ(3 3 29))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION Z XYZ GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry67.testcase0000664000175000017500000000075012544707704023034 00000000000000CompressGeometry - GEOMETRYCOLLECTION Z (1 Polygon) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(POLYGONZ((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONZ(POLYGONZ((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77)))", 4326))) GEOMETRYCOLLECTION Z(POLYGON Z((10 10 77, 11 10 88, 11 11 99, 10 11 88, 10 10 77))) libspatialite-4.3.0a/test/sql_stmt_tests/dissolve30.testcase0000664000175000017500000000131112544707704021235 00000000000000dissolve - Overlap points POLYGON :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGON((-10 0, -10 10, -10 10, 10 10, 10 10, 10 10, 10 -10, -10 -10, -9 -9, -10 0),(0 1, 0 2, 1 2, 1 2, 2 3, 1 2, 0 1))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING((-10 0, -10 10), (-10 10, 10 10), (10 10, 10 -10), (10 -10, -10 -10), (-10 -10, -9 -9), (-9 -9, -10 0), (0 1, 0 2), (0 2, 1 2), (1 2, 2 3), (2 3, 1 2), (1 2, 0 1)) MULTIPOINT(-10 0, -10 10, -10 10, 10 10, 10 10, 10 10, 10 -10, -10 -10, -9 -9, -10 0, 0 1, 0 2, 1 2, 1 2, 2 3, 1 2, 0 1) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt17.testcase0000664000175000017500000000055212544707704021256 00000000000000fromewkt17 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(MULTIPOINTM((0 1 9), (2 3 9), (4 5 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(MULTIPOINTM((0 1 9), (2 3 9), (4 5 9)))')); GEOMETRYCOLLECTION M(POINT M(0 1 9), POINT M(2 3 9), POINT M(4 5 9)) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr32.testcase0000664000175000017500000000024512544707704021051 00000000000000garsmbr - bad keypad number :memory: #use in-memory database SELECT GARSMbr("001AA20") 1 # rows (not including the header row) 1 # columns GARSMbr("001AA20") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/st_m6.testcase0000664000175000017500000000022112544707704020271 00000000000000ST_M6 :memory: #use in-memory database SELECT ST_M(zeroblob(10)); 1 # rows (not including the header row) 1 # columns ST_M(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/wkb24.testcase0000664000175000017500000000141512544707704020200 00000000000000Hex Wkb: GeometryCollection XYZM (single polygon) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((10 10 100 1, 11 10 101 2, 11 11 102 3, 10 11 103 3, 10 10 100 1)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((10 10 100 1, 11 10 101 2, 11 11 102 3, 10 11 103 3, 10 10 100 1)))", 4326))); 01BF0B00000100000001BB0B00000100000005000000000000000000244000000000000024400000000000005940000000000000F03F00000000000026400000000000002440000000000040594000000000000000400000000000002640000000000000264000000000008059400000000000000840000000000000244000000000000026400000000000C059400000000000000840000000000000244000000000000024400000000000005940000000000000F03F libspatialite-4.3.0a/test/sql_stmt_tests/makeline14.testcase0000664000175000017500000000043612544707704021203 00000000000000makeline14 :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("POINT(0 0)"), GeomFromText("POINT M(1 2 0)"))); 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("POINT(0 0)"), GeomFromText("POINT M(1 2 0)"))) LINESTRING M(0 0 0, 1 2 0) libspatialite-4.3.0a/test/sql_stmt_tests/greatcircle-poly2.testcase0000664000175000017500000000040512544707704022574 00000000000000great circle length polygon :memory: SELECT GreatCircleLength(GeomFromText("POLYGON((0 0, 1 0, 0 0, 0 0),(0 0, 0 0, 0 0, 0 0))", 4326)); 1 # rows 1 # column GreatCircleLength(GeomFromText("POLYGON((0 0, 1 0, 0 0, 0 0),(0 0, 0 0, 0 0, 0 0))", 4326)) 222390.15:9 libspatialite-4.3.0a/test/sql_stmt_tests/addpoint17.testcase0000664000175000017500000000041212544707704021215 00000000000000ST_AddPoint() - not a line :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 2) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 2) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/isvalidrastertile1.testcase0000664000175000017500000000036012544707704023060 00000000000000IsValidRasterTile - standard NEW:memory: #use in-memory database SELECT IsValidRasterTile('alpha', 0, zeroblob(4), zeroblob(4)); 1 # rows (not including the header row) 1 # columns IsValidRasterTile('alpha', 0, zeroblob(4), zeroblob(4)) 0 libspatialite-4.3.0a/test/sql_stmt_tests/asewkb7.testcase0000664000175000017500000000021512544707704020607 00000000000000asewkb - float :memory: #use in-memory database SELECT AsEWKB(3.2) 1 # rows (not including the header row) 1 # columns AsEWKB(3.2) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/togars8.testcase0000664000175000017500000000034712544707704020641 00000000000000togars - southwest, plus a bit :memory: #use in-memory database SELECT ToGARS(GeomFromText("LINESTRING(0 0, 4 3)", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("LINESTRING(0 0, 4 3)", 4326)) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson17.testcase0000664000175000017500000000077012544707704021752 00000000000000FromGeoJSON - multipointZ, SRID :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"MultiPoint","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[1,2,4,6],"coordinates":[[1,2,3],[4,6,32]]}')) 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"MultiPoint","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3003"}},"bbox":[1,2,4,6],"coordinates":[[1,2,3],[4,6,32]]}')):0 SRID=3003;MULTIPOINT(1 2 3,4 6 32) libspatialite-4.3.0a/test/sql_stmt_tests/togars7.testcase0000664000175000017500000000035212544707704020634 00000000000000togars - southwest, plus a bit :memory: #use in-memory database SELECT ToGARS(GeomFromText("Point(-179.85 -89.85)", 4326)) 1 # rows (not including the header row) 1 # columns ToGARS(GeomFromText("Point(-179.85 -89.85)", 4326)) 001AA35libspatialite-4.3.0a/test/sql_stmt_tests/ismeasured2.testcase0000664000175000017500000000025512544707704021473 00000000000000IsMeasured- bad blob :memory: #use in-memory database SELECT ST_IsMeasured(zeroblob(48)) 1 # rows (not including the header row) 1 # columns ST_IsMeasured(zeroblob(48)) -1 libspatialite-4.3.0a/test/sql_stmt_tests/assvg25.testcase0000664000175000017500000000104312544707704020536 00000000000000assvg - relative/absolute MultiPolygon :memory: #use in-memory database SELECT assvg(geom, 1) AS rel, assvg(geom, 0) AS abs FROM (SELECT GeomFromText("MULTIPOLYGON(((10 10, 15 10, 15 15, 10 15, 10 10)), ((71 11, 75 11, 75 15, 71 15, 71 11), (72 12, 73 12, 73 13, 72 13, 71 12)))", 4326) AS geom) dummy; 1 # rows (not including the header row) 2 # columns rel abs M 10 -10 l 5 0 0 -5 -5 0 z M 71 -11 l 4 0 0 -4 -4 0 z M 72 -12 l 1 0 0 -1 -1 0 z M 10 -10 L 15 -10 15 -15 10 -15 z M 71 -11 L 75 -11 75 -15 71 -15 z M 72 -12 L 73 -12 73 -13 72 -13 z libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb6.testcase0000664000175000017500000000041512544707704020743 00000000000000fromWkb - mandatory LINESTRING, but POINT type :memory: #use in-memory database SELECT LinestringFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326))) 1 # rows (not including the header row) 1 # columns LinestringFromWkb(AsBinary(GeomFromText("Point(1 2)", 4326))) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/wkb30.testcase0000664000175000017500000000140012544707704020167 00000000000000Hex Wkb: GeometryCollection XYZ (point, polygon) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), POLYGONZ((10 10 100, 11 10 101, 11 11 102, 10 11 103, 10 10 100)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), POLYGONZ((10 10 100, 11 10 101, 11 11 102, 10 11 103, 10 10 100)))", 4326))); 01EF0300000200000001E9030000000000000000F03F0000000000000040000000000000594001EB0300000100000005000000000000000000244000000000000024400000000000005940000000000000264000000000000024400000000000405940000000000000264000000000000026400000000000805940000000000000244000000000000026400000000000C05940000000000000244000000000000024400000000000005940 libspatialite-4.3.0a/test/sql_stmt_tests/shiftcoords3.testcase0000664000175000017500000000030412544707704021655 00000000000000shiftcoords - bad blob (null) :memory: #use in-memory database SELECT ShiftCoords(zeroblob(4), -1, -3); 1 # rows (not including the header row) 1 # columns ShiftCoords(zeroblob(4), -1, -3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml51.testcase0000664000175000017500000000116112544707704021056 00000000000000FromGML - multipoint, multiple SRID - bad second SRID, no namespace :memory: #use in-memory database SELECT AsText(GeomFromGml('1,2,3.22,4,4.2')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('1,2,3.22,4,4.2')):0 MULTIPOINT Z(1 2 3.2, 2 4 4.2) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry39.testcase0000664000175000017500000000074712544707704023041 00000000000000CompressGeometry - MULTILINESTRING Z :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTILINESTRINGZ((10 10 100, 11 11 101, 12 12 102), (15 15 101, 16 16 102, 17 17 103))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTILINESTRINGZ((10 10 100, 11 11 101, 12 12 102), (15 15 101, 16 16 102, 17 17 103))", 4326))) MULTILINESTRING Z((10 10 100, 11 11 101, 12 12 102), (15 15 101, 16 16 102, 17 17 103)) libspatialite-4.3.0a/test/sql_stmt_tests/atmyroll5.testcase0000664000175000017500000000024712544707704021201 00000000000000ATM_YRoll() - invalid 1st arg :memory: #use in-memory database SELECT ATM_YRoll('a', 15) 1 # rows (not including the header row) 1 # columns ATM_YRoll('a', 15) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/setendpoint8.testcase0000664000175000017500000000040112544707704021665 00000000000000ST_SetEndPoint() - DOUBLE Point :memory: #use in-memory database SELECT ST_SetEndPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1.5) 1 # rows (not including the header row) 1 # columns ST_SetEndPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector19.testcase0000664000175000017500000000035012544707704023301 00000000000000makeellipticsector19 - NULL srid :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, 30, 60, NULL); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, 30, 60, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepoint8.testcase0000664000175000017500000000032612544707704021326 00000000000000makepoint - MakepointM, M int :memory: #use in-memory database SELECT AsText(MakePointM(-71.1, 42.3, 3)) 1 # rows (not including the header row) 1 # columns AsText(MakePointM(-71.1, 42.3, 3)) POINT M(-71.1 42.3 3) libspatialite-4.3.0a/test/sql_stmt_tests/removepoint14.testcase0000664000175000017500000000043612544707704021765 00000000000000ST_RemovePoint() - Z :memory: #use in-memory database SELECT AsText(RemovePoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2, 1 1 3)'), 1)) 1 # rows (not including the header row) 1 # columns AsText(RemovePoint(GeomFromText('LINESTRINGZ(0 0 1, 1 0 2, 1 1 3)'), 1)) LINESTRING Z(0 0 1, 1 1 3) libspatialite-4.3.0a/test/sql_stmt_tests/linesfromrings4.testcase0000664000175000017500000000027612544707704022400 00000000000000LinesFromRings - bad blob :memory: #use in-memory database SELECT LinesFromRings(zeroblob(4), 1); 1 # rows (not including the header row) 1 # columns LinesFromRings(zeroblob(4), 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromgml19.testcase0000664000175000017500000000130412544707704021061 00000000000000FromGML - MultiPoint v2 3D :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('1,2,103,4,11')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('1,2,103,4,11')):0 SRID=4326;MULTIPOINT(1 2 10,3 4 11) libspatialite-4.3.0a/test/sql_stmt_tests/dropgeo7.testcase0000664000175000017500000000033712544707704020777 00000000000000DropGeoTable - prefix, table (not existing) + transaction :memory: #use in-memory database SELECT DropGeoTable('prefix', 'table', 0); 1 # rows (not including the header row) 1 # columns DropGeoTable('prefix', 'table', 0) 0 libspatialite-4.3.0a/test/sql_stmt_tests/todms12.testcase0000664000175000017500000000026712544707704020544 00000000000000todms - invalid negative latitude :memory: #use in-memory database SELECT LongLatToDMS(11.5, -92); 1 # rows (not including the header row) 1 # columns LongLatToDMS(11.5, -92) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint12.testcase0000664000175000017500000000042012544707704021207 00000000000000ST_AddPoint() - DOUBLE index :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 1.1) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('LINESTRING(0 0, 1 0)'), MakePoint(1, 1), 1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipse20.testcase0000664000175000017500000000033512544707704021704 00000000000000makeellipse20 - BLOB step :memory: #use in-memory database SELECT MakeEllipse(0, 0, 100, 200, 4326, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, 0, 100, 200, 4326, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromewkb2.testcase0000664000175000017500000000014112544707704022010 00000000000000From EWKB - non text :memory: SELECT GeomFromEwkb(26) 1 # rows 1 # column GeomFromEwkb(26) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/fromgeojson30.testcase0000664000175000017500000000114612544707704021743 00000000000000FromGeoJSON - polygon with SRID and bbox :memory: #use in-memory database SELECT AsEWkt(GeomFromGeoJSON('{"type":"Polygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[1,2,4,9],"coordinates":[[[1,2.3],[4,1.2],[2,1.6],[1,2.3]],[[1.5,2],[3.5,9],[2.5,1],[1.5,2]]]}')); 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromGeoJSON('{"type":"Polygon","crs":{"type":"name","properties":{"name":"EPSG:3003"}},"bbox":[1,2,4,9],"coordinates":[[[1,2.3],[4,1.2],[2,1.6],[1,2.3]],[[1.5,2],[3.5,9],[2.5,1],[1.5,2]]]}')):0 SRID=3003;POLYGON((1 2.3,4 1.2,2 1.6,1 2.3),(1.5 2,3.5 9,2.5 1,1.5 2)) libspatialite-4.3.0a/test/sql_stmt_tests/makepoint-null6.testcase0000664000175000017500000000033412544707704022273 00000000000000makepoint-null6 :memory: #use in-memory database SELECT AsText(MakePoint(-26.0, 42.3150676015829, "WGS84")); 1 # rows (not including the header row) 1 # columns AsText(MakePoint(-26.0, 42.3150676015829, "WGS84")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector6.testcase0000664000175000017500000000033712544707704023222 00000000000000makeellipticsector5 - NULL x_axis :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, NULL, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, NULL, 200, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridax1name5.testcase0000664000175000017500000000030612544707704021546 00000000000000SridGetAxis_1_Name() - BLOB SRID :memory: #use in-memory database SELECT SridGetAxis_1_Name(zeroblob(10)) 1 # rows (not including the header row) 1 # columns SridGetAxis_1_Name(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype39.testcase0000664000175000017500000000061112544707704021251 00000000000000geometrytype - GEOMETRYCOLLECTIONM - one point :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONM(POINTM(3 3 29))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION M XYM GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/collect54.testcase0000664000175000017500000000140612544707704021045 00000000000000collect - PolygonZM, PolygonM :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POLYGONZM((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1),(1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1))"), GeomFromText("POLYGONM((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POLYGONZM((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1),(1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1))"), GeomFromText("POLYGONM((4 5 3.2, 1 2 4.6, 4 2 3.1, 4 5 3.2),(2 3 4, 3 4 1, 3 3 1, 2 3 4))"))) MULTIPOLYGON ZM(((1 2 4 1, 3 4 2 1, 3 2 3 2, 1 2 4 1), (1.5 2.5 4 1, 2.5 3.5 3 2, 2.5 2.3 3 1, 1.5 2.5 4 1)), ((4 5 0 3.2, 1 2 0 4.6, 4 2 0 3.1, 4 5 0 3.2), (2 3 0 4, 3 4 0 1, 3 3 0 1, 2 3 0 4))) libspatialite-4.3.0a/test/sql_stmt_tests/asgml7.testcase0000664000175000017500000000034212544707704020437 00000000000000asgml - bad args (non-int, 3 arg) :memory: #use in-memory database SELECT asgml("hello", GeomFromText("Point(1 2)"), 4); 1 # rows (not including the header row) 1 # columns asgml("hello", GeomFromText("Point(1 2)"), 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc2.testcase0000664000175000017500000000033412544707704022461 00000000000000makeellipticarc2 - text cx :memory: #use in-memory database SELECT MakeEllipticArc('alpha', 0, 100, 200, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc('alpha', 0, 100, 200, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext20.testcase0000664000175000017500000000041512544707704022130 00000000000000geomfromtext20 :memory: #use in-memory database SELECT AsText(GeomFromText('MULTIPOINTZ((0 1 9), (2 3 9), (4 5 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('MULTIPOINTZ((0 1 9), (2 3 9), (4 5 9))')); MULTIPOINT Z(0 1 9, 2 3 9, 4 5 9) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml8.testcase0000664000175000017500000000330612544707704021657 00000000000000From KML - MultiGeometry :memory: SELECT AsText(GeomFromKML(" -122.431885303019,37.8019316061803,0 -122.431762847554,37.8019476932246,0 -122.431719843168,37.8017374462006,0 -122.431841863906,37.8017213314352,0 -122.431885303019,37.8019316061803,0 -122.431714248439,37.8019544341044,0 -122.431592404659,37.8019694509363,0 -122.431548777661,37.8017591041777,0 -122.431671453253,37.8017428443014,0 -122.431714248439,37.8019544341044,0")) 1 # rows 1 # column AsText(GeomFromKML(" -122.431885303019,37.8019316061803,0 -122.431762847554,37.8019476932246,0 -122.431719843168,37.8017374462006,0 -122.431841863906,37.8017213314352,0 -122.431885303019,37.8019316061803,0 -122.431714248439,37.8019544341044,0 -122.431592404659,37.8019694509363,0 -122.431548777661,37.8017591041777,0 -122.431671453253,37.8017428443014,0 -122.431714248439,37.8019544341044,0")) MULTIPOLYGON Z(((-122.431885 37.801932 0, -122.431763 37.801948 0, -122.43172 37.801737 0, -122.431842 37.801721 0, -122.431885 37.801932 0)), ((-122.431714 37.801954 0, -122.431592 37.801969 0, -122.431549 37.801759 0, -122.431671 37.801743 0, -122.431714 37.801954 0)))libspatialite-4.3.0a/test/sql_stmt_tests/casttotext15.testcase0000664000175000017500000000040312544707704021613 00000000000000CastToText() - DOUBLE, zero_pad :memory: #use in-memory database SELECT CastToText(123.456, 10), TypeOf(CastToText(123.456, 10)) 1 # rows (not including the header row) 2 # columns CastToText(123.456, 10) TypeOf(CastToText(123.456, 10)) 0000000123.456 text libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc9.testcase0000664000175000017500000000032612544707704022471 00000000000000makeellipticarc9 - NULL y_axis :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, NULL, 30, 60); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, NULL, 30, 60) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector17.testcase0000664000175000017500000000034412544707704023301 00000000000000makecircularsector17 - text srid :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, 30, 60, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, 30, 60, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeline24.testcase0000664000175000017500000000050512544707704021201 00000000000000makeline - GEOMETRYCOLLECTION with polygon (error) :memory: #use in-memory database SELECT MakeLine(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2),POLYGON((0 0, 2 2, 0 2, 0 0)))")) 1 # rows (not including the header row) 1 # columns MakeLine(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2),POLYGON((0 0, 2 2, 0 2, 0 0)))")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype63.testcase0000664000175000017500000000061512544707704021252 00000000000000geometrytype - GEOMETRYCOLLECTION - two points :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTION(POINT(3 2), POINT(1 4))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION XY GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/st_x8.testcase0000664000175000017500000000037712544707704020322 00000000000000ST_X8 :memory: #use in-memory database SELECT ST_X(MakePointM(-71.1043443253471, 42.3150676015829, 12.6389, 4326)); 1 # rows (not including the header row) 1 # columns ST_X(MakePointM(-71.1043443253471, 42.3150676015829, 12.6389, 4326)) -71.1043443253471 libspatialite-4.3.0a/test/sql_stmt_tests/casttogeometrycollection5.testcase0000664000175000017500000000054012544707704024457 00000000000000casttogeometrycollection - POLYGON :memory: #use in-memory database SELECT AsText(CastToGeometryCollection(GeomFromText("POLYGON((0 1, 2 1, 2 4, 0 4, 0 1))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToGeometryCollection(GeomFromText("POLYGON((0 1, 2 1, 2 4, 0 4, 0 1))"))) GEOMETRYCOLLECTION(POLYGON((0 1, 2 1, 2 4, 0 4, 0 1))) libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon21.testcase0000664000175000017500000000063512544707704021742 00000000000000makepolygon - Linestring invalid Polygon interiors :memory: #use in-memory database SELECT ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('POLYGON((2 2, 3 2, 3 3, 2 3, 2 2))')); 1 # rows (not including the header row) 1 # columns ST_MakePolygon(GeomFromText('LINESTRING(1 1, 1 20, 20 20, 20 1, 1 1)', 4326), GeomFromText('POLYGON((2 2, 3 2, 3 3, 2 3, 2 2))')); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/forcenull17.testcase0000664000175000017500000000025212544707704021406 00000000000000ForceAsNull() - NULL/INTEGER :memory: #use in-memory database SELECT ForceAsNull(NULL, 1) 1 # rows (not including the header row) 1 # columns ForceAsNull(NULL, 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/namefrompath2.testcase0000664000175000017500000000024712544707704022014 00000000000000FileNameFromPath - INTEGER :memory: #use in-memory database SELECT FileNameFromPath(1); 1 # rows (not including the header row) 1 # columns FileNameFromPath(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/badEWKT1.testcase0000664000175000017500000000031012544707704020542 00000000000000bad EWKT: Point :memory: #use in-memory database SELECT GeomFromEWKT("SRID=4326;POINT(11.2 12.3"); 1 # rows (not including the header row) 1 # columns GeomFromEWKT("SRID=4326;POINT(11.2 12.3") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr10.testcase0000664000175000017500000000036412544707704021047 00000000000000garsmbr - 001AB2 :memory: #use in-memory database SELECT AsText(GARSMbr("001AB2")) 1 # rows (not including the header row) 1 # columns AsText(GARSMbr("001AB2")) POLYGON((-179.75 -89.25, -179.5 -89.25, -179.5 -89, -179.75 -89, -179.75 -89.25)) libspatialite-4.3.0a/test/sql_stmt_tests/rotatecoords14.testcase0000664000175000017500000000222412544707704022123 00000000000000rotate coords - Two ring polygonzm :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("POLYGONZM((0 0 1 1, 2 2 2 2, 2 4 3 3, -2 2 4 4, 0 0 1 1),(0 0 5 0, 1 1 6 1, 1 2 7 2, -1 1 8 3, 0 0 5 0))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) POLYGON ZM((0 0 1 1, 2 2 2 2, 2 4 3 3, -2 2 4 4, 0 0 1 1), (0 0 5 0, 1 1 6 1, 1 2 7 2, -1 1 8 3, 0 0 5 0)) POLYGON ZM((0 0 1 1, 2 -2 2 2, 4 -2 3 3, 2 2 4 4, 0 0 1 1), (0 0 5 0, 1 -1 6 1, 2 -1 7 2, 1 1 8 3, 0 0 5 0)) POLYGON ZM((0 0 1 1, -2 -2 2 2, -2 -4 3 3, 2 -2 4 4, 0 0 1 1), (0 0 5 0, -1 -1 6 1, -1 -2 7 2, 1 -1 8 3, 0 0 5 0)) POLYGON ZM((0 0 1 1, -2 2 2 2, -4 2 3 3, -2 -2 4 4, 0 0 1 1), (0 0 5 0, -1 1 6 1, -2 1 7 2, -1 -1 8 3, 0 0 5 0)) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/dropgeo1.testcase0000664000175000017500000000024412544707704020766 00000000000000DropGeoTable - NULL table :memory: #use in-memory database SELECT DropGeoTable(NULL); 1 # rows (not including the header row) 1 # columns DropGeoTable(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/rotatecoords10.testcase0000664000175000017500000000163412544707704022123 00000000000000rotate coords - Simple polygonzm :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("POLYGONZM((0 0 1 5, 1 1 2 6, 1 2 3 7, -1 1 4 8, 0 0 1 5))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) POLYGON ZM((0 0 1 5, 1 1 2 6, 1 2 3 7, -1 1 4 8, 0 0 1 5)) POLYGON ZM((0 0 1 5, 1 -1 2 6, 2 -1 3 7, 1 1 4 8, 0 0 1 5)) POLYGON ZM((0 0 1 5, -1 -1 2 6, -1 -2 3 7, 1 -1 4 8, 0 0 1 5)) POLYGON ZM((0 0 1 5, -1 1 2 6, -2 1 3 7, -1 -1 4 8, 0 0 1 5)) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/asgeojson1.testcase0000664000175000017500000000030412544707704021314 00000000000000asgeojson - bad args (broken blob, 2 arg) :memory: #use in-memory database SELECT asgeojson(zeroblob(20), 4); 1 # rows (not including the header row) 1 # columns asgeojson(zeroblob(20), 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridunit2.testcase0000664000175000017500000000024512544707704021172 00000000000000SridGetUnit() - TEXT SRID :memory: #use in-memory database SELECT SridGetUnit('srid') 1 # rows (not including the header row) 1 # columns SridGetUnit('srid') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry9.testcase0000664000175000017500000000102012544707704022737 00000000000000CompressGeometry - GEOMETRYCOLLECTION / LINESTRINGZ :memory: #use in-memory database SELECT Hex(CompressGeometry(GeomFromText("GeometryCollectionZ(LINESTRINGZ(1 2 0, 3 4 0))"))) 1 # rows (not including the header row) 1 # columns Hex(CompressGeometry(GeomFromText("GeometryCollectionZ(LINESTRINGZ(1 2 0, 3 4 0))"))) 000100000000000000000000F03F0000000000000040000000000000084000000000000010407CEF03000001000000692A460F0002000000000000000000F03F00000000000000400000000000000000000000000000084000000000000010400000000000000000FE libspatialite-4.3.0a/test/sql_stmt_tests/clonetable4.testcase0000664000175000017500000000035312544707704021443 00000000000000CloneTable() - NULL transaction :memory: #use in-memory database SELECT CloneTable('prefix', 'in_table', 'out_table', NULL) 1 # rows (not including the header row) 1 # columns CloneTable('prefix', 'in_table', 'out_table', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/reverse6.testcase0000664000175000017500000000243612544707704021014 00000000000000reverse - GeometryCollection XYZM :memory: #use in-memory database SELECT AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 13, 9 9 19 13), POLYGONZM((10 10 101 11, 15 10 102 13, 13 13 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 13 11.3 102 13, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 27 20 101 11, 22 18 102 13, 20 20 100 10), (21 19.5 101 11, 27 19.5 102 13, 22 18.5 103 13, 21 19.5 101 11)))", 4326))); 1 # rows (not including the header row) 1 # columns AsEWKT(ST_Reverse(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), LINESTRINGZM(3 4 101 10, 5 6 102 11, 7 8 103 13, 9 9 19 13), POLYGONZM((10 10 101 11, 15 10 102 13, 13 13 103 13, 10 10 101 11), (11 10.5 100 10, 13 10.5 101 11, 13 11.3 102 13, 11 10.5 100 10)), POLYGONZM((20 20 100 10, 27 20 101 11, 22 18 102 13, 20 20 100 10), (21 19.5 101 11, 27 19.5 102 13, 22 18.5 103 13, 21 19.5 101 11)))", 4326))) SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100 10),LINESTRING(9 9 19 13,7 8 103 13,5 6 102 11,3 4 101 10),POLYGON((10 10 101 11,13 13 103 13,15 10 102 13,10 10 101 11),(11 10.5 100 10,13 11.3 102 13,13 10.5 101 11,11 10.5 100 10)),POLYGON((20 20 100 10,22 18 102 13,27 20 101 11,20 20 100 10),(21 19.5 101 11,22 18.5 103 13,27 19.5 102 13,21 19.5 101 11))) libspatialite-4.3.0a/test/sql_stmt_tests/casttomultilinestring5.testcase0000664000175000017500000000055112544707704024003 00000000000000casttomultilinestring - GEOMETRYCOLLECTION - linestring + point :memory: #use in-memory database SELECT AsText(CastToMultiLineString(GeomFromText("GEOMETRYCOLLECTION(POINT(4 2),LINESTRING(0 1, 2 3))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMultiLineString(GeomFromText("GEOMETRYCOLLECTION(POINT(4 2),LINESTRING(0 1, 2 3))"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makeline32.testcase0000664000175000017500000000045212544707704021201 00000000000000makeline - MULTIPOINT (XYM valid - direct order) :memory: #use in-memory database SELECT AsText(MakeLine(GeomFromText("MULTIPOINTM(1 2 10,3 4 11)"), 1)) 1 # rows (not including the header row) 1 # columns AsText(MakeLine(GeomFromText("MULTIPOINTM(1 2 10,3 4 11)"), 1)) LINESTRING M(1 2 10, 3 4 11) libspatialite-4.3.0a/test/sql_stmt_tests/isvalidnodata1.testcase0000664000175000017500000000030712544707704022151 00000000000000IsValidPixel - standard NEW:memory: #use in-memory database SELECT IsValidPixel(zeroblob(4), 'UINT8', 1); 1 # rows (not including the header row) 1 # columns IsValidPixel(zeroblob(4), 'UINT8', 1) 0 libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticarc15.testcase0000664000175000017500000000032712544707704022547 00000000000000makeellipticarc15 - NULL stop :memory: #use in-memory database SELECT MakeEllipticArc(0, 0, 100, 200, 30, NULL); 1 # rows (not including the header row) 1 # columns MakeEllipticArc(0, 0, 100, 200, 30, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/ring16.testcase0000664000175000017500000000027212544707704020355 00000000000000InteriorRingN - text input (error) :memory: #use in-memory database SELECT InteriorRingN("hello", 1); 1 # rows (not including the header row) 1 # column InteriorRingN("hello", 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/extractmultipolygon1.testcase0000664000175000017500000000030612544707704023463 00000000000000extractmultipolygon - bad blob :memory: #use in-memory database SELECT ExtractMultiPolygon(zeroblob(99)) 1 # rows (not including the header row) 1 # columns ExtractMultiPolygon(zeroblob(99)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geodesic-len7.testcase0000664000175000017500000000021312544707704021667 00000000000000geodesic length (wrong) zeroblob arg :memory: SELECT GeodesicLength(zeroblob(23)); 1 # rows 1 # column GeodesicLength(zeroblob(23)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml21.testcase0000664000175000017500000000237512544707704021737 00000000000000From KML - MultiGeometry POLYGON [hole] x 2 - 3D :memory: SELECT AsText(GeomFromKML("10,10,100 15,10,101 15,15,102 10,15,103 10,10,10011,11,100 12,11,101 12,12,102 11,12,103 11,11,10016,16,100 17,16,101 17,17,102 16,17,103 16,16,100")) 1 # rows 1 # column AsText(GeomFromKML("10,10,100 15,10,101 15,15,102 10,15,103 10,10,10011,11,100 12,11,101 12,12,102 11,12,103 11,11,10016,16,100 17,16,101 17,17,102 16,17,103 16,16,100")) MULTIPOLYGON Z(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100)), ((16 16 100, 17 16 101, 17 17 102, 16 17 103, 16 16 100))) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype50.testcase0000664000175000017500000000067212544707704021251 00000000000000geometrytype - GEOMETRYCOLLECTIONZM - one POLYGONZM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((30 20 1 2, 10 40 1 2, 45 40 1 2, 30 20 1 2)))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION ZM XYZM GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat17.testcase0000664000175000017500000000025312544707704022630 00000000000000normalizelonlat- non-blob :memory: #use in-memory database SELECT NormalizeLonLat("htl") 1 # rows (not including the header row) 1 # columns NormalizeLonLat("htl") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/envintersects1.testcase0000664000175000017500000000031512544707704022222 00000000000000ST_EnvIntersects - bad arg #1 :memory: #use in-memory database SELECT ST_EnvIntersects("alpha", 2, 2, 3, 3) 1 # rows (not including the header row) 1 # columns ST_EnvIntersects("alpha", 2, 2, 3, 3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepoint7.testcase0000664000175000017500000000036212544707704021325 00000000000000makepoint7 :memory: #use in-memory database SELECT AsWkt(MakePoint(-71.1043443253471, 42.3150676015829), 4); 1 # rows (not including the header row) 1 # columns AsWkt(MakePoint(-71.1043443253471, 42.3150676015829), 4) POINT(-71.1043 42.3151) libspatialite-4.3.0a/test/sql_stmt_tests/atmtransform5.testcase0000664000175000017500000000116412544707704022052 00000000000000ATM_Transform() - XY :memory: #use in-memory database SELECT AsText(ATM_Transform(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2), POLYGON((10 10, 20 10, 20 20, 10 20, 10 10), (14 14, 16 14, 16 16, 14 16, 14 14)))'), ATM_Create())); 1 # rows (not including the header row) 1 # columns AsText(ATM_Transform(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2), POLYGON((10 10, 20 10, 20 20, 10 20, 10 10), (14 14, 16 14, 16 16, 14 16, 14 14)))'), ATM_Create())) GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2), POLYGON((10 10, 20 10, 20 20, 10 20, 10 10), (14 14, 16 14, 16 16, 14 16, 14 14))) libspatialite-4.3.0a/test/sql_stmt_tests/shiftlongitude14.testcase0000664000175000017500000000072112544707704022443 00000000000000shiftlongitude - positive and negative longitude polygonzm :memory: #use in-memory database SELECT AsText(ST_Shift_Longitude(GeomFromText("POLYGONZM((-175 0 4 2, -176 10 5 3, 175 10 5 4, 176 0 5 1, -175 0 4 2))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(ST_Shift_Longitude(GeomFromText("POLYGONZM((-175 0 4 2, -176 10 5 3, 175 10 5 4, 176 0 5 1, -175 0 4 2))", 4326))) POLYGON ZM((185 0 4 2, 184 10 5 3, 175 10 5 4, 176 0 5 1, 185 0 4 2)) libspatialite-4.3.0a/test/sql_stmt_tests/setendpoint6.testcase0000664000175000017500000000040112544707704021663 00000000000000ST_SetEndPoint() - NULL Point :memory: #use in-memory database SELECT ST_SetEndPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), NULL) 1 # rows (not including the header row) 1 # columns ST_SetEndPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/buildmbr9.testcase0000664000175000017500000000025712544707704021143 00000000000000buildmbr - null args :memory: #use in-memory database SELECT BuildMbr(5, 6, 7, 8, NULL) 1 # rows (not including the header row) 1 # columns BuildMbr(5, 6, 7, 8, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/isvalidrasterstats6.testcase0000664000175000017500000000036312544707704023271 00000000000000IsValidRasterStatistics - NULL sample-type: 3 args NEW:memory: #use in-memory database SELECT IsValidRasterStatistics(zeroblob(4), NULL, 1); 1 # rows (not including the header row) 1 # columns IsValidRasterStatistics(zeroblob(4), NULL, 1) -1 libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe16.testcase0000664000175000017500000000034612544707704023311 00000000000000makecircularstripe16 - NULL srid :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, 30, 60, NULL); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, 30, 60, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmastext1.testcase0000664000175000017500000000022212544707704021335 00000000000000ATM_AsText() - int :memory: #use in-memory database SELECT ATM_AsText(1) 1 # rows (not including the header row) 1 # columns ATM_AsText(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/pointn9.testcase0000664000175000017500000000050012544707704020641 00000000000000pointN - regular LINESTRINGZM (last point) :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("LINESTRINGZM(4 0 4.4 9, 4 4 2.2 8, 8 4 3.3 7)"), -1)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("LINESTRINGZM(4 0 4.4 9, 4 4 2.2 8, 8 4 3.3 7)"), -1)) POINT ZM(8 4 3.3 7) libspatialite-4.3.0a/test/sql_stmt_tests/badwkt9.testcase0000664000175000017500000000033712544707704020616 00000000000000bad WKT: illegal Point :memory: #use in-memory database SELECT PointFromText("LINESTRING(11.3 12.4, 11.4 12.4)"); 1 # rows (not including the header row) 1 # columns PointFromText("LINESTRING(11.3 12.4, 11.4 12.4)") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/dissolve27.testcase0000664000175000017500000000201012544707704021240 00000000000000dissolve - Overlap points POLYGON ZM :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("POLYGONZM((-10 0 0 0, -10 10 0 0, -10 10 10 0, 10 10 10 0, 10 10 10 10, 10 10 10 -10, 10 -10 10 -10, -10 -10 -10 -10, -10 0 0 0),(0 1 0 2, 0 2 1 3, 1 2 2 4, 1 2 3 5, 1 2 3 6, 1 2 3 6, 0 1 0 2))") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) MULTILINESTRING ZM((-10 0 0 0, -10 10 0 0), (-10 10 0 0, -10 10 10 0), (-10 10 10 0, 10 10 10 0), (10 10 10 0, 10 10 10 10), (10 10 10 10, 10 10 10 -10), (10 10 10 -10, 10 -10 10 -10), (10 -10 10 -10, -10 -10 -10 -10), (-10 -10 -10 -10, -10 0 0 0), (0 1 0 2, 0 2 1 3), (0 2 1 3, 1 2 2 4), (1 2 2 4, 1 2 3 5), (1 2 3 5, 1 2 3 6), (1 2 3 6, 0 1 0 2)) MULTIPOINT ZM(-10 0 0 0, -10 10 0 0, -10 10 10 0, 10 10 10 0, 10 10 10 10, 10 10 10 -10, 10 -10 10 -10, -10 -10 -10 -10, -10 0 0 0, 0 1 0 2, 0 2 1 3, 1 2 2 4, 1 2 3 5, 1 2 3 6, 1 2 3 6, 0 1 0 2) libspatialite-4.3.0a/test/sql_stmt_tests/asewkb17.testcase0000664000175000017500000000277612544707704020706 00000000000000asewkb - GEOMETRYCOLLECTION, polygonz and pointz :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(0 1 3), POLYGONZ((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 0,2 2 0, 2 1 0, 1 1 0)))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(0 1 3), POLYGONZ((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 0,2 2 0, 2 1 0, 1 1 0)))", 4326))) 30313037303030304130453631303030303030323030303030303031303130303030383030303030303030303030303030303030303030303030303030303030463033463030303030303030303030303038343030313033303030303830303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030343030303030303030303030303030303030303030303030303030303030303034303030303030303030303030304630334630303030303030303030303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030 libspatialite-4.3.0a/test/sql_stmt_tests/shiftcoords12.testcase0000664000175000017500000000070212544707704021737 00000000000000shiftcoords - Polygon XY :memory: #use in-memory database SELECT AsText(ShiftCoords(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 5, 6 5, 6 6, 5 6, 5 5))"), 1.4, 3.9)); 1 # rows (not including the header row) 1 # columns AsText(ShiftCoords(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 5, 6 5, 6 6, 5 6, 5 5))"), 1.4, 3.9)) POLYGON((1.4 3.9, 11.4 3.9, 11.4 13.9, 1.4 13.9, 1.4 3.9), (6.4 8.9, 7.4 8.9, 7.4 9.9, 6.4 9.9, 6.4 8.9)) libspatialite-4.3.0a/test/sql_stmt_tests/geometryn7.testcase0000664000175000017500000000036712544707704021354 00000000000000Geometry N - multipointZ :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOINTZ(1 2 4)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOINTZ(1 2 4)"), 1)) POINT Z(1 2 4) libspatialite-4.3.0a/test/sql_stmt_tests/asewkb1.testcase0000664000175000017500000000045712544707704020611 00000000000000asewkb - POINT :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("POINT(1 3)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POINT(1 3)", 4326))) 3031303130303030323045363130303030303030303030303030303030304630334630303030303030303030303030383430 libspatialite-4.3.0a/test/sql_stmt_tests/ndims3.testcase0000664000175000017500000000045712544707704020451 00000000000000Coord Dimensions - GeometryCollection XY :memory: #use in-memory database SELECT CoordDimension(geom), ST_NDims(geom) FROM (SELECT GeomFromText('GEOMETRYCOLLECTION(POINT(1 2), LINESTRING(3 4, 5 6))') AS geom); 1 # rows (not including the header row) 2 # columns CoordDimension(geom) ST_NDims(geom) XY 2 libspatialite-4.3.0a/test/sql_stmt_tests/asbinary5.testcase0000664000175000017500000000056612544707704021152 00000000000000asbinary - multipointz :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MultiPointZ(1 2 3,2 4 4)", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MultiPointZ(1 2 3,2 4 4)", 4326))) 01EC0300000200000001E9030000000000000000F03F0000000000000040000000000000084001E9030000000000000000004000000000000010400000000000001040 libspatialite-4.3.0a/test/sql_stmt_tests/st_m5.testcase0000664000175000017500000000036312544707704020277 00000000000000ST_M5 :memory: #use in-memory database SELECT ST_M(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")); 1 # rows (not including the header row) 1 # columns ST_M(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmzroll4.testcase0000664000175000017500000000026412544707704021200 00000000000000ATM_ZRoll() - invalid blob :memory: #use in-memory database SELECT ATM_ZRoll(zeroblob(4), 15) 1 # rows (not including the header row) 1 # columns ATM_ZRoll(zeroblob(4), 15) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sanitizeGeometry10.testcase0000664000175000017500000000063212544707704022752 00000000000000Sanitize Geometry - POLYGON Z :memory: #use in-memory database SELECT AsEWkt(SanitizeGeometry(GeomFromText("POLYGON Z((-75 42 2, -70 39 2, -70 42 3, -70 42 4, -75 42 2))", 4326))) 1 # rows (not including the header row) 1 # columns AsEWkt(SanitizeGeometry(GeomFromText("POLYGON Z((-75 42 2, -70 39 2, -70 42 3, -70 42 4, -75 42 2))", 4326))) SRID=4326;POLYGON((-75 42 2,-70 39 2,-70 42 3,-70 42 4,-75 42 2)) libspatialite-4.3.0a/test/sql_stmt_tests/atminvert1.testcase0000664000175000017500000000023512544707704021340 00000000000000ATM_Invert() - NULL arg :memory: #use in-memory database SELECT ATM_Invert(NULL) 1 # rows (not including the header row) 1 # columns ATM_Invert(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/translate9.testcase0000664000175000017500000000050312544707704021332 00000000000000translate - Linestring XYZ :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("LINESTRINGZ(1 2 10, 3 4 10)"), 1.4, 3.9, 5.3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("LINESTRINGZ(1 2 10, 3 4 10)"), 1.4, 3.9, 5.3)) LINESTRING Z(2.4 5.9 15.3, 4.4 7.9 15.3) libspatialite-4.3.0a/test/sql_stmt_tests/rotatecoords13.testcase0000664000175000017500000000205212544707704022121 00000000000000rotate coords - Two ring polygonm :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("POLYGONM((0 0 1, 2 2 2, 2 4 3, -2 2 4, 0 0 1),(0 0 5, 1 1 6, 1 2 7, -1 1 8, 0 0 5))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) POLYGON M((0 0 1, 2 2 2, 2 4 3, -2 2 4, 0 0 1), (0 0 5, 1 1 6, 1 2 7, -1 1 8, 0 0 5)) POLYGON M((0 0 1, 2 -2 2, 4 -2 3, 2 2 4, 0 0 1), (0 0 5, 1 -1 6, 2 -1 7, 1 1 8, 0 0 5)) POLYGON M((0 0 1, -2 -2 2, -2 -4 3, 2 -2 4, 0 0 1), (0 0 5, -1 -1 6, -1 -2 7, 1 -1 8, 0 0 5)) POLYGON M((0 0 1, -2 2 2, -4 2 3, -2 -2 4, 0 0 1), (0 0 5, -1 1 6, -2 1 7, -1 -1 8, 0 0 5)) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sanitizeGeometry5.testcase0000664000175000017500000000065212544707704022700 00000000000000Sanitize Geometry - MultilinestringM dupe points :memory: #use in-memory database SELECT AsText(SanitizeGeometry(GeomFromText('MULTILINESTRINGM((0 0 0, 1 0 9, 1 1 8, 0 1 8, 1 1 8, 1 1 8, 0 0 0))'))); 1 # rows (not including the header row) 1 # columns AsText(SanitizeGeometry(GeomFromText('MULTILINESTRINGM((0 0 0, 1 0 9, 1 1 8, 0 1 8, 1 1 8, 1 1 8, 0 0 0))'))) MULTILINESTRING M((0 0 0, 1 0 9, 1 1 8, 0 1 8, 1 1 8, 0 0 0)) libspatialite-4.3.0a/test/sql_stmt_tests/casttodouble5.testcase0000664000175000017500000000037312544707704022026 00000000000000CastToDouble() - TEXT valid decimals :memory: #use in-memory database SELECT CastToDouble('123.88'), TypeOf(CastToDouble('123.88')) 1 # rows (not including the header row) 2 # columns CastToDouble('123.88') TypeOf(CastToDouble('123.88')) 123.88 real libspatialite-4.3.0a/test/sql_stmt_tests/removepoint12.testcase0000664000175000017500000000037312544707704021763 00000000000000ST_RemovePoint() - not a line :memory: #use in-memory database SELECT ST_RemovePoint(GeomFromText('MULTIPOINT(0 0, 1 0, 1 1)'), 1) 1 # rows (not including the header row) 1 # columns ST_RemovePoint(GeomFromText('MULTIPOINT(0 0, 1 0, 1 1)'), 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/dissolve6.testcase0000664000175000017500000000025712544707704021170 00000000000000dissolve points - text input :memory: #use in-memory database SELECT DissolvePoints("hell0") 1 # rows (not including the header row) 1 # columns DissolvePoints("hell0") (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/wkb28.testcase0000664000175000017500000000237712544707704020214 00000000000000Hex Wkb: GeometryCollection XYZM (2 polygons) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((10 10 100 1, 11 10 101 2, 11 11 102 3, 10 11 103 3, 10 10 100 1)), POLYGONZM((15 15 100 1, 16 15 101 2, 16 16 102 3, 15 16 103 3, 15 15 100 1)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((10 10 100 1, 11 10 101 2, 11 11 102 3, 10 11 103 3, 10 10 100 1)), POLYGONZM((15 15 100 1, 16 15 101 2, 16 16 102 3, 15 16 103 3, 15 15 100 1)))", 4326))); 01BF0B00000200000001BB0B00000100000005000000000000000000244000000000000024400000000000005940000000000000F03F00000000000026400000000000002440000000000040594000000000000000400000000000002640000000000000264000000000008059400000000000000840000000000000244000000000000026400000000000C059400000000000000840000000000000244000000000000024400000000000005940000000000000F03F01BB0B000001000000050000000000000000002E400000000000002E400000000000005940000000000000F03F00000000000030400000000000002E400000000000405940000000000000004000000000000030400000000000003040000000000080594000000000000008400000000000002E4000000000000030400000000000C0594000000000000008400000000000002E400000000000002E400000000000005940000000000000F03F libspatialite-4.3.0a/test/sql_stmt_tests/makepointzm-null6.testcase0000664000175000017500000000042612544707704022644 00000000000000makepointzm-null6 :memory: #use in-memory database SELECT AsText(MakePointZM(-26.0, 42.3150676015829, 0.0038723129645, 12.6389, "WGS84")); 1 # rows (not including the header row) 1 # columns AsText(MakePointZM(-26.0, 42.3150676015829, 0.0038723129645, 12.6389, "WGS84")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt11.testcase0000664000175000017500000000054612544707704021253 00000000000000fromewkt11 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOINT((0 1 9), (2 3 9), (4 5 9)))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTIPOINT((0 1 9), (2 3 9), (4 5 9)))')); GEOMETRYCOLLECTION Z(POINT Z(0 1 9), POINT Z(2 3 9), POINT Z(4 5 9)) libspatialite-4.3.0a/test/sql_stmt_tests/asfgf3.testcase0000664000175000017500000000032412544707704020416 00000000000000asfgf - non-int second arg :memory: #use in-memory database SELECT AsFGF(GeomFromText("POINT(1 2)"), "world") 1 # rows (not including the header row) 1 # columns AsFGF(GeomFromText("POINT(1 2)"), "world") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/trivial.sqlite_RO0000664000175000017500000000400012544707704021000 00000000000000SQLite format 3@ -â ÁÁ=StablenotmuchnotmuchCREATE TABLE notmuch (name varchar) ðð%notmuchentrylibspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml20.testcase0000664000175000017500000000210712544707704021727 00000000000000From KML - MultiGeometry POLYGON [hole] x 2 - 2D :memory: SELECT AsText(GeomFromKML("10,10 15,10 15,15 10,15 10,1011,11 12,11 12,12 11,12 11,1116,16 17,16 17,17 16,17 16,16")) 1 # rows 1 # column AsText(GeomFromKML("10,10 15,10 15,15 10,15 10,1011,11 12,11 12,12 11,12 11,1116,16 17,16 17,17 16,17 16,16")) MULTIPOLYGON(((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11)), ((16 16, 17 16, 17 17, 16 17, 16 16))) libspatialite-4.3.0a/test/sql_stmt_tests/uncompressgeom3.testcase0000664000175000017500000000030312544707704022373 00000000000000uncompressgeometry - bad blob :memory: #use in-memory database SELECT UncompressGeometry(zeroblob(99)) 1 # rows (not including the header row) 1 # columns UncompressGeometry(zeroblob(99)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromWkb21.testcase0000664000175000017500000000070012544707704021015 00000000000000fromWkb - MULTIPOINT :memory: #use in-memory database SELECT Hex(MultiPointFromWkb(AsBinary(GeomFromText("MULTIPOINT(1 2,2 1)")), 4326)); 1 # rows (not including the header row) 1 # columns Hex(MultiPointFromWkb(AsBinary(GeomFromText("MULTIPOINT(1 2,2 1)")), 4326)) 0001E6100000000000000000F03F000000000000F03F000000000000004000000000000000407C04000000020000006901000000000000000000F03F000000000000004069010000000000000000000040000000000000F03FFE libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext1.testcase0000664000175000017500000000041612544707704022050 00000000000000geomfromtext1 :memory: #use in-memory database SELECT AsWkt(GeomFromText("POINT(-71.1043443253471 42.315067601582900)"), 4); 1 # rows (not including the header row) 1 # columns AsWkt(GeomFromText("POINT(-71.1043443253471 42.315067601582900)"), 4) POINT(-71.1043 42.3151)libspatialite-4.3.0a/test/sql_stmt_tests/ndims5.testcase0000664000175000017500000000047512544707704020453 00000000000000Coord Dimensions - GeometryCollection XYM :memory: #use in-memory database SELECT CoordDimension(geom), ST_NDims(geom) FROM (SELECT GeomFromText('GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 11, 5 6 12))') AS geom); 1 # rows (not including the header row) 2 # columns CoordDimension(geom) ST_NDims(geom) XYM 3 libspatialite-4.3.0a/test/sql_stmt_tests/casttoint2.testcase0000664000175000017500000000026012544707704021336 00000000000000CastToInteger() - BLOB :memory: #use in-memory database SELECT CastToInteger(zeroblob(4)) 1 # rows (not including the header row) 1 # columns CastToInteger(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/setstartpoint9.testcase0000664000175000017500000000041512544707704022262 00000000000000ST_SetStartPoint() - TEXT Point :memory: #use in-memory database SELECT ST_SetStartPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 'alpha') 1 # rows (not including the header row) 1 # columns ST_SetStartPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreate16.testcase0000664000175000017500000000042512544707704021363 00000000000000ATM_Create() - invalid 11th arg :memory: #use in-memory database SELECT ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 'a', 12.0) 1 # rows (not including the header row) 1 # columns ATM_Create(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 'a', 12.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/minm6.testcase0000664000175000017500000000041112544707704020270 00000000000000MinM - Linestring XYZM :memory: #use in-memory database SELECT ST_MinM(GeomFromText('LINESTRINGZM(1 2 100 10, 3 4 99 9, 5 6 101 12)')); 1 # rows (not including the header row) 1 # columns ST_MinM(GeomFromText('LINESTRINGZM(1 2 100 10, 3 4 99 9, 5 6 101 12)')) 9.0 libspatialite-4.3.0a/test/sql_stmt_tests/isempty4.testcase0000664000175000017500000000021712544707704021024 00000000000000isempty - text :memory: #use in-memory database SELECT IsEmpty("hello") 1 # rows (not including the header row) 1 # columns IsEmpty("hello") -1libspatialite-4.3.0a/test/sql_stmt_tests/asgml11.testcase0000664000175000017500000000022612544707704020513 00000000000000asgml - 2 arg :memory: #use in-memory database SELECT asgml(2, "hello"); 1 # rows (not including the header row) 1 # columns asgml(2, "hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/wkttosql3.testcase0000664000175000017500000000026112544707704021220 00000000000000ST_WKTToSQL - bad WKT :memory: #use in-memory database SELECT ST_WKTToSQL("Point(1 2 3)") 1 # rows (not including the header row) 1 # columns ST_WKTToSQL("Point(1 2 3)") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/fromewkt16.testcase0000664000175000017500000000053612544707704021257 00000000000000fromewkt16 :memory: #use in-memory database SELECT AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(MULTIPOINTM(0 1 9, 2 3 9, 4 5 9))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTIONM(MULTIPOINTM(0 1 9, 2 3 9, 4 5 9))')); GEOMETRYCOLLECTION M(POINT M(0 1 9), POINT M(2 3 9), POINT M(4 5 9)) libspatialite-4.3.0a/test/sql_stmt_tests/sridspheroid6.testcase0000664000175000017500000000025012544707704022030 00000000000000SridGetSpheroid() - 4326 :memory: #use in-memory database SELECT SridGetSpheroid(4326) 1 # rows (not including the header row) 1 # columns SridGetSpheroid(4326) WGS 84 libspatialite-4.3.0a/test/sql_stmt_tests/casttomultipolygon1.testcase0000664000175000017500000000030312544707704023303 00000000000000casttomultipolygon - bad blob :memory: #use in-memory database SELECT CastToMultiPolygon(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToMultiPolygon(zeroblob(99)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/setpoint20.testcase0000664000175000017500000000045112544707704021255 00000000000000ST_SetPoint() - XY :memory: #use in-memory database SELECT AsText(SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, MakePoint(2, 3))) 1 # rows (not including the header row) 1 # columns AsText(SetPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 1, MakePoint(2, 3))) LINESTRING(0 0, 2 3, 1 1) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype32.testcase0000664000175000017500000000052412544707704021245 00000000000000geometrytype - GEOMETRYCOLLECTIONM only linestring :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(4 6 0,7 10 0))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) GEOMETRYCOLLECTION M XYMlibspatialite-4.3.0a/test/sql_stmt_tests/routing2.testcase0000664000175000017500000000067212544707704021024 00000000000000routing: alphanumeric ids (Dijkstra) sql_stmt_tests/testdb1.sqlite SELECT Algorithm, ArcRowid, NodeFrom, NodeTo, Cost FROM alpha_roads_net WHERE NodeFrom = 'NODE_72' AND NodeTo = 'NODE_30'; 4 # rows (not including the header row) 5 # columns Algorithm ArcRowid NodeFrom NodeTo Cost Dijkstra (NULL) NODE_72 NODE_30 0.001575:6 Dijkstra 72 NODE_72 NODE_73 0.000162:6 Dijkstra 73 NODE_73 NODE_48 0.000810:6 Dijkstra 48 NODE_48 NODE_30 0.000602:6 libspatialite-4.3.0a/test/sql_stmt_tests/casttomulti3.testcase0000664000175000017500000000047012544707704021702 00000000000000casttomulti - 2 linestrings :memory: #use in-memory database SELECT AsText(CastToMulti(GeomFromText("MULTILINESTRING((4 1, 3 4),(4 6, 3 1))"))) 1 # rows (not including the header row) 1 # columns AsText(CastToMulti(GeomFromText("MULTILINESTRING((4 1, 3 4),(4 6, 3 1))"))) MULTILINESTRING((4 1, 3 4), (4 6, 3 1)) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext33.testcase0000664000175000017500000000241512544707704022136 00000000000000geomfromtext33 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(8 8 9 7), MULTIPOLYGONZM(((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), ((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))), POINTZM(7 7 9 7), MULTILINESTRINGZM((0 1 9 7, 2 3 9 7), (4 5 9 7, 6 7 9 7)), POINTZM(6 6 9 7), MULTIPOINTZM((0 1 9 7), (2 3 9 7), (4 5 9 7)), POINTZM(9 9 9 7))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(8 8 9 7), MULTIPOLYGONZM(((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), ((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))), POINTZM(7 7 9 7), MULTILINESTRINGZM((0 1 9 7, 2 3 9 7), (4 5 9 7, 6 7 9 7)), POINTZM(6 6 9 7), MULTIPOINTZM((0 1 9 7), (2 3 9 7), (4 5 9 7)), POINTZM(9 9 9 7))')); GEOMETRYCOLLECTION ZM(POINT ZM(8 8 9 7), POINT ZM(7 7 9 7), POINT ZM(6 6 9 7), POINT ZM(0 1 9 7), POINT ZM(2 3 9 7), POINT ZM(4 5 9 7), POINT ZM(9 9 9 7), LINESTRING ZM(0 1 9 7, 2 3 9 7), LINESTRING ZM(4 5 9 7, 6 7 9 7), POLYGON ZM((0 0 9 7, 5 0 9 7, 5 5 9 7, 0 5 9 7, 0 0 9 7), (1 1 9 7, 2 1 9 7, 2 2 9 7, 1 2 9 7, 1 1 9 7)), POLYGON ZM((10 10 9 7, 11 10 9 7, 11 11 9 7, 10 11 9 7, 10 10 9 7))) libspatialite-4.3.0a/test/sql_stmt_tests/geometryn5.testcase0000664000175000017500000000060512544707704021345 00000000000000Geometry N - toxic blob :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 1)); 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 1)) POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5)) libspatialite-4.3.0a/test/sql_stmt_tests/makeellipse4.testcase0000664000175000017500000000027112544707704021625 00000000000000makecircle4 - NULL cy :memory: #use in-memory database SELECT MakeEllipse(0, NULL, 100, 200); 1 # rows (not including the header row) 1 # columns MakeEllipse(0, NULL, 100, 200) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype24.testcase0000664000175000017500000000055712544707704021254 00000000000000geometrytype - POLYGONZM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("POLYGONZM((30 20 1 2, 10 40 1 2, 45 40 1 2, 30 20 1 2),(15 5 2 3, 40 10 2 3, 10 20 2 3, 5 10 2 3, 15 5 2 3))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) POLYGON ZM XYZMlibspatialite-4.3.0a/test/sql_stmt_tests/atmcreatezroll2.testcase0000664000175000017500000000072112544707704022360 00000000000000ATM_CreateZRoll() - valid int :memory: #use in-memory database SELECT Hex(ATM_CreateZRoll(15)) 1 # rows (not including the header row) 1 # columns Hex(ATM_CreateZRoll(15)) 000115BF4847DDE8EE3F3A900693C17D90D0BF3A00000000000000003A00000000000000003A900693C17D90D03F3A15BF4847DDE8EE3F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/rotatecoords11.testcase0000664000175000017500000000167412544707704022130 00000000000000rotate coords - Two ring polygon :memory: #use in-memory database SELECT AsText(RotateCoords(geom, 0)), AsText(RotateCoords(geom, 90.0)), AsText(RotateCoords(geom, 180.0)), AsText(RotateCoords(geom, -90)), RotateCoords(zeroblob(20), 10), RotateCoords(geom, "hello"), RotateCoords("foo", 30) FROM (SELECT GeomFromText("POLYGON((0 0, 2 2, 2 4, -2 2, 0 0),(0 0, 1 1, 1 2, -1 1, 0 0))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(RotateCoords(geom, 0)) AsText(RotateCoords(geom, 90.0)) AsText(RotateCoords(geom, 180.0)) AsText(RotateCoords(geom, -90)) RotateCoords(zeroblob(20), 10) RotateCoords(geom, "hello") RotateCoords("foo", 30) POLYGON((0 0, 2 2, 2 4, -2 2, 0 0), (0 0, 1 1, 1 2, -1 1, 0 0)) POLYGON((0 0, 2 -2, 4 -2, 2 2, 0 0), (0 0, 1 -1, 2 -1, 1 1, 0 0)) POLYGON((0 0, -2 -2, -2 -4, 2 -2, 0 0), (0 0, -1 -1, -1 -2, 1 -1, 0 0)) POLYGON((0 0, -2 2, -4 2, -2 -2, 0 0), (0 0, -1 1, -2 1, -1 -1, 0 0)) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/envintersects5.testcase0000664000175000017500000000034312544707704022227 00000000000000ST_EnvIntersects - bad arg #5 :memory: #use in-memory database SELECT ST_EnvIntersects(zeroblob(50), 2, 2, 3, "alpha") 1 # rows (not including the header row) 1 # columns ST_EnvIntersects(zeroblob(50), 2, 2, 3, "alpha") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/updatestats3.testcase0000664000175000017500000000032512544707704021672 00000000000000UpdateLayerStatistics - TEXT, TEXT :memory: #use in-memory database SELECT UpdateLayerStatistics('table', 'column'); 1 # rows (not including the header row) 1 # columns UpdateLayerStatistics('table', 'column'); 1 libspatialite-4.3.0a/test/sql_stmt_tests/swapcoords8.testcase0000664000175000017500000000065012544707704021523 00000000000000swapcoords8 :memory: #use in-memory database SELECT AsText(SwapCoords(GeomFromText("POLYGON((10 10, 20 10, 20 20, 10 20, 10 10), (14 14, 16 14, 16 16, 14 16, 14 14))"))); 1 # rows (not including the header row) 1 # columns AsText(SwapCoords(GeomFromText("POLYGON((10 10, 20 10, 20 20, 10 20, 10 10), (14 14, 16 14, 16 16, 14 16, 14 14))"))); POLYGON((10 10, 10 20, 20 20, 20 10, 10 10), (14 14, 14 16, 16 16, 16 14, 14 14)) libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints21.testcase0000664000175000017500000000073112544707704022631 00000000000000geometry constraints - MULTIPOLYGONZM :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("MULTIPOLYGONZM(((0 0 0 0, 1 0 0 0, 1 1 0 0, 0 0 0 0)),((0 0 0 0, -1 0 0 0, -1 -1 0 0, 0 0 0 0)))", 4326), "MULTIPOLYGON", 4326, "XYZM") 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("MULTIPOLYGONZM(((0 0 0 0, 1 0 0 0, 1 1 0 0, 0 0 0 0)),((0 0 0 0, -1 0 0 0, -1 -1 0 0, 0 0 0 0)))", 4326), "MULTIPOLYGON", 4326, "XYZM") 1 libspatialite-4.3.0a/test/sql_stmt_tests/geomtype5.testcase0000664000175000017500000000046512544707704021171 00000000000000geometrytype5 - zeroblob :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT zeroblob(20) as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) (NULL) (NULL) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/fromgml41.testcase0000664000175000017500000000144212544707704021057 00000000000000FromGML - Polygon v2, inner ring poslist, bad closing :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01 1 2 1 2 2 1 2 1 1')) 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,01 1 2 1 2 2 1 2 1 1')):0 (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/addpoint5.testcase0000664000175000017500000000027312544707704021137 00000000000000ST_AddPoint() - BLOB line :memory: #use in-memory database SELECT ST_AddPoint(zeroblob(4), NULL) 1 # rows (not including the header row) 1 # columns ST_AddPoint(zeroblob(4), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/m_ind_yd.testcase0000664000175000017500000000024112544707704021025 00000000000000metres to Indian yards :memory: #use in-memory database SELECT CvtToIndYd(1.0); 1 # rows (not including the header row) 1 # columns CvtToIndYd(1.0); 1.0936190:8 libspatialite-4.3.0a/test/sql_stmt_tests/wkb34.testcase0000664000175000017500000000177712544707704020214 00000000000000Hex Wkb: MultiPolygon XYZ (single polygon with interior ring) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100)))", 4326))); 01EE0300000100000001EB03000002000000050000000000000000002440000000000000244000000000000059400000000000002E40000000000000244000000000004059400000000000002E400000000000002E40000000000080594000000000000024400000000000002E400000000000C0594000000000000024400000000000002440000000000000594005000000000000000000264000000000000026400000000000005940000000000000284000000000000026400000000000405940000000000000284000000000000028400000000000805940000000000000264000000000000028400000000000C05940000000000000264000000000000026400000000000005940 libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon9.testcase0000664000175000017500000000045412544707704021667 00000000000000makepolygon - MultiLinestring exterior :memory: #use in-memory database SELECT MakePolygon(GeomFromText('MULTILINESTRING((1 1, 1 2), (2 2, 2 1, 1 1))', 4326)); 1 # rows (not including the header row) 1 # columns MakePolygon(GeomFromText('MULTILINESTRING((1 1, 1 2), (2 2, 2 1, 1 1))', 4326)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geojson2.testcase0000664000175000017500000000072112544707704020774 00000000000000GeoJSON Polygon :memory: #use in-memory database SELECT AsGeoJSON(GeomFromText("POLYGON((5 5, 6 5, 6 6, 5 6, 5 5))", 4326), 2, 5); 1 # rows (not including the header row) 1 # columns AsGeoJSON(GeomFromText("POLYGON((5 5, 6 5, 6 6, 5 6, 5 5))", 4326), 2, 5) {"type":"Polygon","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:4326"}},"bbox":[5,5,6,6],"coordinates":[[[5,5],[6,5],[6,6],[5,6],[5,5]]]}:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/geomtype35.testcase0000664000175000017500000000051312544707704021246 00000000000000geometrytype - GEOMETRYCOLLECTION only linestring :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTION(LINESTRING(4 6, 10 0))") as geom) dummy; 1 # rows (not including the header row) 2 # columns GeometryType(geom) CoordDimension(geom) GEOMETRYCOLLECTION XYlibspatialite-4.3.0a/test/sql_stmt_tests/atmyroll2.testcase0000664000175000017500000000073312544707704021176 00000000000000ATM_YRoll() - valid int :memory: #use in-memory database SELECT Hex(ATM_YRoll(ATM_Create(), 15)) 1 # rows (not including the header row) 1 # columns Hex(ATM_YRoll(ATM_Create(), 15)) 000115BF4847DDE8EE3F3A00000000000000003A900693C17D90D03F3A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A900693C17D90D0BF3A00000000000000003A15BF4847DDE8EE3F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/collect25.testcase0000664000175000017500000000063312544707704021044 00000000000000collect - LineString, LineStringZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("Linestring(1 2, 3 4)"), GeomFromText("LINESTRINGZ(4 5 3.2, 1 2 4.6, 4 2 3.1)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("Linestring(1 2, 3 4)"), GeomFromText("LINESTRINGZ(4 5 3.2, 1 2 4.6, 4 2 3.1)"))) MULTILINESTRING Z((1 2 0, 3 4 0), (4 5 3.2, 1 2 4.6, 4 2 3.1)) libspatialite-4.3.0a/test/sql_stmt_tests/gml6.testcase0000664000175000017500000000141312544707704020112 00000000000000GML MultiLinestring Z :memory: #use in-memory database SELECT AsGML(3, GeomFromText("MULTILINESTRINGZ((1 2 100, 3 4 101), (5 5 88, 6 6 99))", 4326)); 1 # rows (not including the header row) 1 # columns AsGML(3, GeomFromText("MULTILINESTRINGZ((1 2 100, 3 4 101), (5 5 88, 6 6 99))", 4326)) 1 2 100 3 4 1015 5 88 6 6 99:0 # trailing ":0" required to avoid truncation !!! libspatialite-4.3.0a/test/sql_stmt_tests/mbr9.testcase0000664000175000017500000000044712544707704020124 00000000000000MbrIntersects - Line + Point on :memory: #use in-memory database SELECT MbrIntersects(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 2)")); 1 # rows (not including the header row) 1 # columns MbrIntersects(GeomFromText("LINESTRING(0 0, 1 2)"), GeomFromText("POINT(1 2)")) # header 1libspatialite-4.3.0a/test/sql_stmt_tests/makepointm-null1.testcase0000664000175000017500000000034312544707704022443 00000000000000makepointm-null1 :memory: #use in-memory database SELECT AsText(MakePointM("hello", 42.3150676015829, 12.6389)); 1 # rows (not including the header row) 1 # columns AsText(MakePointM("hello", 42.3150676015829, 12.6389)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/todms6.testcase0000664000175000017500000000025512544707704020464 00000000000000todms - NULL latitude :memory: #use in-memory database SELECT LongLatToDMS(11.5, NULL); 1 # rows (not including the header row) 1 # columns LongLatToDMS(11.5, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/wkbtosql1.testcase0000664000175000017500000000053412544707704021177 00000000000000ST_WKBToSQL :memory: #use in-memory database SELECT Hex(ST_WKBToSQL(AsBinary(GeomFromText("Point(1 2)", 4326)))) 1 # rows (not including the header row) 1 # columns Hex(ST_WKBToSQL(AsBinary(GeomFromText("Point(1 2)", 4326)))) 000100000000000000000000F03F0000000000000040000000000000F03F00000000000000407C01000000000000000000F03F0000000000000040FE libspatialite-4.3.0a/test/sql_stmt_tests/makepointzm-null2.testcase0000664000175000017500000000032612544707704022637 00000000000000makepointzm-null2 :memory: #use in-memory database SELECT AsText(MakePointZM(26.0, "world", 0.54, 18.63)); 1 # rows (not including the header row) 1 # columns AsText(MakePointZM(26.0, "world", 0.54, 18.63)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/wkb23.testcase0000664000175000017500000000141512544707704020177 00000000000000Hex Wkb: GeometryCollection XYZM (single polygon) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((10 10 100 1, 11 10 101 2, 11 11 102 3, 10 11 103 3, 10 10 100 1)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("GEOMETRYCOLLECTIONZM(POLYGONZM((10 10 100 1, 11 10 101 2, 11 11 102 3, 10 11 103 3, 10 10 100 1)))", 4326))); 01BF0B00000100000001BB0B00000100000005000000000000000000244000000000000024400000000000005940000000000000F03F00000000000026400000000000002440000000000040594000000000000000400000000000002640000000000000264000000000008059400000000000000840000000000000244000000000000026400000000000C059400000000000000840000000000000244000000000000024400000000000005940000000000000F03F libspatialite-4.3.0a/test/sql_stmt_tests/collect20.testcase0000664000175000017500000000050012544707704021030 00000000000000collect - PointZM, PointZ :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("POINTZM(4 5 6 3.2)"), GeomFromText("POINTZ(1 2 4)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("POINTZM(4 5 6 3.2)"), GeomFromText("POINTZ(1 2 4)"))) MULTIPOINT ZM(4 5 6 3.2, 1 2 4 0) libspatialite-4.3.0a/test/sql_stmt_tests/removepoint11.testcase0000664000175000017500000000037612544707704021765 00000000000000ST_RemovePoint() - invalid index :memory: #use in-memory database SELECT ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 3) 1 # rows (not including the header row) 1 # columns ST_RemovePoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 3) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/pointn12.testcase0000664000175000017500000000033512544707704020721 00000000000000pointN - point input :memory: #use in-memory database SELECT AsText(PointN(GeomFromText("POINT(136 -35)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(PointN(GeomFromText("POINT(136 -35)"), 1)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry46.testcase0000664000175000017500000000051112544707704023024 00000000000000CompressGeometry - GEOMETRYCOLLECTION (1 Point) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2))", 4326))) GEOMETRYCOLLECTION(POINT(1 2)) libspatialite-4.3.0a/test/sql_stmt_tests/sridisprojected3.testcase0000664000175000017500000000025512544707704022530 00000000000000SridIsProjected() - DOUBLE SRID :memory: #use in-memory database SELECT SridIsProjected(1.0) 1 # rows (not including the header row) 1 # columns SridIsProjected(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/casttomultilinestring1.testcase0000664000175000017500000000031412544707704023774 00000000000000casttomultilinestring - bad blob :memory: #use in-memory database SELECT CastToMultiLineString(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToMultiLineString(zeroblob(99)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext8.testcase0000664000175000017500000000026312544707704022057 00000000000000geomfromtext8 :memory: #use in-memory database SELECT AsEWkt(GeomFromText(3.14, 4326)); 1 # rows (not including the header row) 1 # columns AsEWkt(GeomFromText(3.14, 4326)) (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/geomconstraints15.testcase0000664000175000017500000000053412544707704022635 00000000000000geometry constraints - MULTILINESTRING :memory: #use in-memory database SELECT GeometryConstraints(GeomFromText("MULTILINESTRING((1 2, 4 3),(0 4, 1 9))", 4326), "MULTILINESTRING", 4326) 1 # rows (not including the header row) 1 # columns GeometryConstraints(GeomFromText("MULTILINESTRING((1 2, 4 3),(0 4, 1 9))", 4326), "MULTILINESTRING", 4326) 1 libspatialite-4.3.0a/test/sql_stmt_tests/makepoint-null2.testcase0000664000175000017500000000026612544707704022273 00000000000000makepoint-null2 :memory: #use in-memory database SELECT AsText(MakePoint(26.0, "world")); 1 # rows (not including the header row) 1 # columns AsText(MakePoint(26.0, "world")) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/addpoint16.testcase0000664000175000017500000000041212544707704021214 00000000000000ST_AddPoint() - not a line :memory: #use in-memory database SELECT ST_AddPoint(GeomFromText('MULTIPOINT(0 0, 1 0)'), MakePoint(1, 1), 1) 1 # rows (not including the header row) 1 # columns ST_AddPoint(GeomFromText('MULTIPOINT(0 0, 1 0)'), MakePoint(1, 1), 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/collect31.testcase0000664000175000017500000000060512544707704021040 00000000000000collect - LineStringZ, LineString :memory: #use in-memory database SELECT AsText(COLLECT(GeomFromText("LINESTRINGZ(1 2 4, 3 4 2)"), GeomFromText("LINESTRING(4 5, 1 2, 4 2)"))); 1 # rows (not including the header row) 1 # columns AsText(COLLECT(GeomFromText("LINESTRINGZ(1 2 4, 3 4 2)"), GeomFromText("LINESTRING(4 5, 1 2, 4 2)"))) MULTILINESTRING Z((1 2 4, 3 4 2), (4 5 0, 1 2 0, 4 2 0)) libspatialite-4.3.0a/test/sql_stmt_tests/wkb33.testcase0000664000175000017500000000141412544707704020177 00000000000000Hex Wkb: MultiPolygon XY (single polygon with interior ring) :memory: #use in-memory database SELECT Hex(AsBinary(GeomFromText("MULTIPOLYGON(((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11)))", 4326))); 1 # rows (not including the header row) 1 # columns Hex(AsBinary(GeomFromText("MULTIPOLYGON(((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11)))", 4326))); 01060000000100000001030000000200000005000000000000000000244000000000000024400000000000002E4000000000000024400000000000002E400000000000002E4000000000000024400000000000002E4000000000000024400000000000002440050000000000000000002640000000000000264000000000000028400000000000002640000000000000284000000000000028400000000000002640000000000000284000000000000026400000000000002640 libspatialite-4.3.0a/test/sql_stmt_tests/geometryn19.testcase0000664000175000017500000000120512544707704021427 00000000000000Geometry N - multipolygonZM :memory: #use in-memory database SELECT AsText(GeometryN(GeomFromText("MULTIPOLYGONZM(((0 0 1 2, 10 0 1 2, 10 10 1 2, 0 10 1 2, 0 0 1 2),(2 2 2 3, 8 2 2 3, 8 8 2 3, 2 8 2 3, 2 2 2 3)),((0 0 3 4, -10 0 3 4, -10 -10 3 4, 0 -10 3 4, 0 0 3 4)))"), 1)) 1 # rows (not including the header row) 1 # columns AsText(GeometryN(GeomFromText("MULTIPOLYGONZM(((0 0 1 2, 10 0 1 2, 10 10 1 2, 0 10 1 2, 0 0 1 2),(2 2 2 3, 8 2 2 3, 8 8 2 3, 2 8 2 3, 2 2 2 3)),((0 0 3 4, -10 0 3 4, -10 -10 3 4, 0 -10 3 4, 0 0 3 4)))"), 1)) POLYGON ZM((0 0 1 2, 10 0 1 2, 10 10 1 2, 0 10 1 2, 0 0 1 2), (2 2 2 3, 8 2 2 3, 8 8 2 3, 2 8 2 3, 2 2 2 3)) libspatialite-4.3.0a/test/sql_stmt_tests/routing5.testcase0000664000175000017500000000070212544707704021021 00000000000000routing: alphanumeric ids (Dijkstra from-to) sql_stmt_tests/testdb1.sqlite SELECT Algorithm, ArcRowid, NodeFrom, NodeTo, Cost FROM alpha_roads_net WHERE NodeTo = 'NODE_30' AND NodeFrom = 'NODE_72'; 4 # rows (not including the header row) 5 # columns Algorithm ArcRowid NodeFrom NodeTo Cost Dijkstra (NULL) NODE_72 NODE_30 0.001575:6 Dijkstra 72 NODE_72 NODE_73 0.000162:6 Dijkstra 73 NODE_73 NODE_48 0.000810:6 Dijkstra 48 NODE_48 NODE_30 0.000602:6 libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry60.testcase0000664000175000017500000000120612544707704023022 00000000000000CompressGeometry - GEOMETRYCOLLECTION M (2 Polygons) :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONM(POLYGONM((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7)), POLYGONM((15 15 5, 16 15 6, 16 16 7, 15 16 8, 15 15 5)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("GEOMETRYCOLLECTIONM(POLYGONM((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7)), POLYGONM((15 15 5, 16 15 6, 16 16 7, 15 16 8, 15 15 5)))", 4326))) GEOMETRYCOLLECTION M(POLYGON M((10 10 7, 11 10 8, 11 11 9, 10 11 8, 10 10 7)), POLYGON M((15 15 5, 16 15 6, 16 16 7, 15 16 8, 15 15 5))) libspatialite-4.3.0a/test/sql_stmt_tests/getlayerextent1.testcase0000664000175000017500000000026712544707704022400 00000000000000GetLayerExtent - NULL, NULL :memory: #use in-memory database SELECT GetLayerExtent(NULL, NULL); 1 # rows (not including the header row) 1 # columns GetLayerExtent(NULL, NULL); (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/badKML4.testcase0000664000175000017500000000063212544707704020425 00000000000000bad KML: MultiPoint :memory: #use in-memory database SELECT GeomFromKML('1.1,2.23.3,4.41.1,2.23.3,4.40 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 16 6 7 6 7 7 6 7 6 6')); 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0 0 5 0 5 5 0 5 0 01 1 2 1 2 2 1 2 1 16 6 7 6 7 7 6 7 6 6')):0 SRID=4326;MULTIPOLYGON(((0 0,5 0,5 5,0 5,0 0),(1 1,2 1,2 2,1 2,1 1)),((6 6,7 6,7 7,6 7,6 6))) libspatialite-4.3.0a/test/sql_stmt_tests/casttolinestring3.testcase0000664000175000017500000000041612544707704022726 00000000000000casttolinestring - LINESTRING :memory: #use in-memory database SELECT AsText(CastToLineString(GeomFromText("LINESTRING(4 1, 3 4)"))) 1 # rows (not including the header row) 1 # columns AsText(CastToLineString(GeomFromText("LINESTRING(4 1, 3 4)"))) LINESTRING(4 1, 3 4) libspatialite-4.3.0a/test/sql_stmt_tests/asewkb13.testcase0000664000175000017500000000237712544707704020677 00000000000000asewkb - POLYGONZ :memory: #use in-memory database SELECT Hex(AsEWKB(GeomFromText("POLYGONZ((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 0,2 2 0, 2 1 0, 1 1 0))", 4326))) 1 # rows (not including the header row) 1 # columns Hex(AsEWKB(GeomFromText("POLYGONZ((0 0 0,10 0 0,10 10 0,0 10 0,0 0 0),(1 1 0,2 2 0, 2 1 0, 1 1 0))", 4326))) 303130333030303041304536313030303030303230303030303030353030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030303030303030303030303030303034303030303030303030303030303030343030303030303030303030303030303030303030303030303030303030303034303030303030303030303030304630334630303030303030303030303030303030303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030303030 libspatialite-4.3.0a/test/sql_stmt_tests/makeellipticsector24.testcase0000664000175000017500000000037212544707704023301 00000000000000makeellipticsector24 - text step :memory: #use in-memory database SELECT MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326, 'alpha'); 1 # rows (not including the header row) 1 # columns MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sridunit3.testcase0000664000175000017500000000024112544707704021167 00000000000000SridGetUnit() - DOUBLE SRID :memory: #use in-memory database SELECT SridGetUnit(1.0) 1 # rows (not including the header row) 1 # columns SridGetUnit(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomfromtext43.testcase0000664000175000017500000000071512544707704022140 00000000000000geomfromtext43 :memory: #use in-memory database SELECT AsText(GeomFromText('GEOMETRYCOLLECTIONZM(GEOMETRYCOLLECTIONZM(GEOMETRYCOLLECTIONZM(POINTZM(0 0 9 7), LINESTRINGZM(1 1 9 7, 2 2 9 7))))')); 1 # rows (not including the header row) 1 # columns AsText(GeomFromText('GEOMETRYCOLLECTIONZM(GEOMETRYCOLLECTIONZM(GEOMETRYCOLLECTIONZM(POINTZM(0 0 9 7), LINESTRINGZM(1 1 9 7, 2 2 9 7))))')); GEOMETRYCOLLECTION ZM(POINT ZM(0 0 9 7), LINESTRING ZM(1 1 9 7, 2 2 9 7)) libspatialite-4.3.0a/test/sql_stmt_tests/fath_m.testcase0000664000175000017500000000025012544707704020501 00000000000000fathoms to metres :memory: #use in-memory database SELECT CvtFromFath(546.806650); 1 # rows (not including the header row) 1 # columns CvtFromFath(546.806650) 1000.0:6 libspatialite-4.3.0a/test/sql_stmt_tests/translate16.testcase0000664000175000017500000000037112544707704021413 00000000000000translate - text shift (Z error) :memory: #use in-memory database SELECT ST_Translate(GeomFromText("POINT(1 2)"), 1, 2.5, "alpha"); 1 # rows (not including the header row) 1 # columns ST_Translate(GeomFromText("POINT(1 2)"), 1, 2.5, "alpha") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularstripe22.testcase0000664000175000017500000000040012544707704023275 00000000000000makecircularstripe21 - BLOB step :memory: #use in-memory database SELECT MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/geomtype66.testcase0000664000175000017500000000060212544707704021251 00000000000000geometrytype - MULTIPOINTZM :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("MULTIPOINTZM (10 40 10 1, 40 30 15 2, 20 20 20 2, 30 10 9 1)") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) MULTIPOINT ZM XYZM MULTIPOINT libspatialite-4.3.0a/test/sql_stmt_tests/atmtrans5.testcase0000664000175000017500000000076612544707704021175 00000000000000ATM_Translate() - valid 3d (int) :memory: #use in-memory database SELECT Hex(ATM_Translate(ATM_Create(), 1, 2, 3)) 1 # rows (not including the header row) 1 # columns Hex(ATM_Translate(ATM_Create(), 1, 2, 3)) 0001000000000000F03F3A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A000000000000F03F3A00000000000000003A00000000000000403A00000000000000003A00000000000000003A000000000000F03F3A00000000000008403A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/makepointzm-null10.testcase0000664000175000017500000000040112544707704022710 00000000000000makepointzm-null10 :memory: #use in-memory database SELECT AsText(MakePointZM(26.0, 42.3150676015829, 0.0038723129645, 'beta')); 1 # rows (not including the header row) 1 # columns AsText(MakePointZM(26.0, 42.3150676015829, 0.0038723129645, 'beta')) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makepolygon24.testcase0000664000175000017500000000103612544707704021741 00000000000000makepolygon - XYZ hole :memory: #use in-memory database SELECT AsText(ST_MakePolygon(GeomFromText('LINESTRINGZ(1 1 4, 1 20 3, 20 20 2, 20 1 3, 1 1 4)', 4326), GeomFromText('LINESTRINGZ(2 2 10, 3 2 11, 3 3 12, 2 3 13, 2 2 10)'))); 1 # rows (not including the header row) 1 # columns AsText(ST_MakePolygon(GeomFromText('LINESTRINGZ(1 1 4, 1 20 3, 20 20 2, 20 1 3, 1 1 4)', 4326), GeomFromText('LINESTRINGZ(2 2 10, 3 2 11, 3 3 12, 2 3 13, 2 2 10)'))) POLYGON Z((1 1 4, 1 20 3, 20 20 2, 20 1 3, 1 1 4), (2 2 10, 3 2 11, 3 3 12, 2 3 13, 2 2 10)) libspatialite-4.3.0a/test/sql_stmt_tests/testFDO.sqlite0000664000175000017500000037400012544707704020250 00000000000000SQLite format 3@ zc~~u?zc-â# ÓûöñìçâÝØÓÎ"++{tablespatial_ref_sysspatial_ref_sysCREATE TABLE spatial_ref_sys ( srid INTEGER UNIQUE, auth_name TEXT, auth_srid TEXT, srtext TEXT)=Q+indexsqlite_autoindex_spatial_ref_sys_1spatial_ref_sysq--ƒtablegeometry_columnsgeometry_columnsCREATE TABLE geometry_columns ( f_table_name VARCHAR, f_geometry_column VARCHAR, geometry_type INTEGER, coord_dimension INTEGER       ãàÄ¡eB"ã! !f06GEOMETRYÃPSPATIALITEf05GEOMETRYÃPWKB%f04WKT_GEOMETRYÃPWKT!!l07GEOMETRYÃPSPATIALITEl06GEOMETRYÃPWKB%l05WKT_GEOMETRYÃPWKT!!p05GEOMETRYÃPSPATIALITEp03GEOMETRYÃPWKB%p02WKT_GEOMETRYÃPWKT eeƒ†+ÃPPROJCS["ETRF_1989_UTM_Zone_32N",GEOGCS["GCS_ETRF_1989",DATUM["ETRF_1989",SPHEROID["WGS_84",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]] øøÃP mzóm!!POINT (664964.447224542032927 5170571.24573168437928 318.25)PÞ 2003/06/09 è!R;2005/09/01–Â!!POINT (664350.179539812728763 5171957.915655356831849 314.52)PÞ 2003/06/09 è ·R;2005/09/01–Â!!POINT (664642.36368551151827 5169415.339218452572823 294.37)PÞ 2003/06/09 è©R;2005/09/01– ((Á"q--ƒtablegeometry_columnsgeometry_columnsCREATE TABLE geometry_columns ( f_table_name VARCHAR, f_geometry_column VARCHAR, geometry_type INTEGER, coord_dimension INTEGER, srid INTEGER, geometry_format VARCHAR )"++{tablespatial_ref_sysspatial_ref_sysCREATE TABLE spatial_ref_sys ( srid INTEGER UNIQUE, auth_name TEXT, auth_srid TEXT, srtext TEXT)=Q+indexsqlite_autoindex_spatial_ref_sys_1spatial_ref_sys ââÞ„ˆtablep02p02CREATE TABLE 'p02' ( OGC_FID INTEGER PRIMARY KEY, WKT_GEOMETRY VARCHAR , 'feature_id' FLOAT, 'code' INTEGER, 'sub_type' INTEGER, 'datum' VARCHAR, 'code_firma' INTEGER, 'aufn_art' INTEGER, 'objectid' FLOAT, 'ort_id' INTEGER, 'text_d' VARCHAR, 'text_i' VARCHAR, 'text_l' VARCHAR, 'text_dil' VARCHAR, 'text_code' FLOAT, 'hoehe' FLOAT, 'hoehe_max' FLOAT, 'hoehe_rel' FLOAT, 'melde_code' FLOAT, 'hausnr' VARCHAR, 'geb_id' FLOAT, 'id_strasse' FLOAT, 'gueltig_v' VARCHAR, 'gueltig_b' VARCHAR, 'e_id' FLOAT, 'winkel' INTEGER) T›6ÑvÀe ¯TY F!€ÊEÈ_$A ´[k+¸SA)Ê€@{q2001/04/13 è\ÎR;08$Y F!€†í‹3E_$A@¾æä4¸SA`¸P@{q2001/04/13 è\ÍR;08$YF!€¥5[$&_$AN#x6¸SA`f$@{q2001/04/13 è\ÌR;08$YF!€bÞÏa,_$AãŠ(9¸SAà£H@{q2001/04/13 è\ËR;08$YF!€†À±W(_$AÕWi?¸SA ®;@{q2001/04/13 è\ÊR;08$YF!€@7Û¸Q_$A:ÔÔC¸SA€ëe@{q2001/04/13 è\ÉR;08$YF!€Ämšû:_$Aä ,ÄH¸SAàQD@{q2001/04/13 è\ÈR;08$cF!!€AÓ­6îL$Aœ w¨¸SAš™™™™r@{q2003/09/06 è.ùR;2005/09/0108$cF!!€ê@M$APBm¨¸SA)\Âõ€r@{q2003/09/06 è.øR;2005/09/0108$cF!!€H”UM$A. ú¨¸SAÃõ(\‚r@{q2003/09/06 è.÷R;2005/09/0108$ éé儈tablep03p03CREATE TABLE 'p03' ( OGC_FID INTEGER PRIMARY KEY, GEOMETRY BLOB , 'feature_id' FLOAT, 'code' INTEGER, 'sub_type' INTEGER, 'datum' VARCHAR, 'code_firma' INTEGER, 'aufn_art' INTEGER, 'objectid' FLOAT, 'ort_id' INTEGER, 'text_d' VARCHAR, 'text_i' VARCHAR, 'text_l' VARCHAR, 'text_dil' VARCHAR, 'text_code' FLOAT, 'hoehe' FLOAT, 'hoehe_max' FLOAT, 'hoehe_rel' FLOAT, 'melde_code' FLOAT, 'hausnr' VARCHAR, 'geb_id' FLOAT, 'id_strasse' FLOAT, 'gueltig_v' VARCHAR, 'gueltig_b' VARCHAR, 'e_id' FLOAT, 'winkel' INTEGER)ûûêdÞX!PÃá6çñ Z$A’=òö¶SAá6çñ Z$A’=òö¶SA|éá6çñ Z$A’=òö¶SAàQ€q@þËé1997/03/07 èuR;@q€Që…¸O§#!PÃGâú-Z$A|ÃÝI·SAGâú-Z$A|ÃÝI·SA|éGâú-Z$A|ÃÝI·SA€Â…q@þËé1997/03/07 ètR;@q…Â\(öO§#!PÃèUöަZ$A¨va$¾¶SAèUöަZ$A¨va$¾¶SA|éèUöަZ$A¨va$¾¶SAÀÌXq@þËé1997/03/07 èsR;@qXÌÌÌÌÍO§#!PÓy #’Z$AÐ ¤•öSA“y #’Z$AÐ ¤•öSA|é“y #’Z$AÐ ¤•öSA\q@þËé1997/03/07 èrR;@q\O§#!PÃH’÷×7Z$AɈû0ï¶SAH’÷×7Z$AɈû0ï¶SA|éH’÷×7Z$AɈû0ï¶SA …wq@þËé1997/03/07 èqR;@qw…¸QìO§#!PÃÑZÓôO`$Aëòì2¸SAÑZÓôO`$Aëòì2¸SA|éÑZÓôO`$Aëòì2¸SAÀ9‚@þËé2001/04/13 èLR;@‚9¸Që…O§#!PàP1|`$A¨`A¹>¸SA P1|`$A¨`A¹>¸SA|é P1|`$A¨`A¹>¸SAÀÌn‚@þËé2001/04/13 èKR;@‚nÌÌÌÌ ××Ó„&ˆ3tablep05p05 CREATE TABLE 'p05' ( OGC_FID INTEGER PRIMARY KEY, GEOMETRY BLOB , 'feature_id' FLOAT, 'code' INTEGER, 'sub_type' INTEGER, 'datum' VARCHAR, 'code_firma' INTEGER, 'aufn_art' INTEGER, 'objectid' FLOAT, 'ort_id' INTEGER, 'text_d' VARCHAR, 'text_i' VARCHAR, 'text_l' VARCHAR, 'text_dil' VARCHAR, 'text_code' FLOAT, 'hoehe' FLOAT, 'hoehe_max' FLOAT, 'hoehe_rel' FLOAT, 'melde_code' FLOAT, 'hausnr' VARCHAR, 'geb_id' FLOAT, 'id_strasse' FLOAT, 'textur' VARCHAR, 'gueltig_v' VARCHAR, 'gueltig_b' VARCHAR, 'e_id' FLOAT, 'winkel' INTEGER)öûöu‚g!!LINESTRING (665085.100727885961533 5170408.406696654856205 302.82,665085.961702213971876 5170407.155712282285094 302.82,665087.103690737741999 5170408.28568262886256 302.82)Ëê2003/09/06 è/)R;2005/09/01O§hv‚i!!LINESTRING (665084.531706119771115 5170404.447772771120071 302.82,665085.392680447548628 5170403.196788399480283 302.82,665086.534668971551582 5170404.326758746989071 302.82)Ëê2003/09/06 è/(R;2005/09/01O§ht‚e!!LINESTRING (665083.961684371111915 5170400.488848899491131 302.82,665084.8226586910896 5170399.236864545382559 302.82,665085.964647214976139 5170400.366834891960025 302.82)Ëê2003/09/06 è/'R;2005/09/01O§hu‚g!!LINESTRING (665083.392662604805082 5170396.52992501668632 302.82,665084.253636924782768 5170395.277940663509071 302.82,665085.395625448436476 5170396.407911010086536 302.82)Ëê2003/09/06 è/&R;2005 ââÞ„ˆtablel05l05 CREATE TABLE 'l05' ( OGC_FID INTEGER PRIMARY KEY, WKT_GEOMETRY VARCHAR , 'feature_id' FLOAT, 'code' INTEGER, 'sub_type' INTEGER, 'datum' VARCHAR, 'code_firma' INTEGER, 'aufn_art' INTEGER, 'objectid' FLOAT, 'ort_id' INTEGER, 'text_d' VARCHAR, 'text_i' VARCHAR, 'text_l' VARCHAR, 'text_dil' VARCHAR, 'text_code' FLOAT, 'hoehe' FLOAT, 'hoehe_max' FLOAT, 'hoehe_rel' FLOAT, 'melde_code' FLOAT, 'hausnr' VARCHAR, 'geb_id' FLOAT, 'id_strasse' FLOAT, 'gueltig_v' VARCHAR, 'gueltig_b' VARCHAR, 'e_id' FLOAT, 'winkel' INTEGER)ñ!ûöñ?‚!€$rÍöS$A{ÎÅî¹SA@3/u@ª‘S$A¢±nï¹SA G-u@õß*“S$A‡&npï¹SA,u@òü(†–S$AÉÚ9-ð¹SA`*u@ šS$A'Èð¹SA`*u@ë+1997/03/07 è†:R;[Üà'^!€@a:*aS$Aâ ÷ ï¹SA@ v@PÐ NgS$AlÂèï¹SA@ v@Î)²>jS$AXôdÙð¹SA€ë­v@Kê ÎjS$AÁèð¹SA G±v@ë+1997/03/07 è†9R;[ÜàƒG†!€Þw mWS$A;t‚•û¹SA`fŽw@1-6IXS$AÞ‹´xü¹SA@á¾w@9#ù>[S$Aˆa8dý¹SAÀÌÀw@í¤Ïb^S$AñH7$þ¹SA ®¿w@³-5IcS$A/ÏMÿ¹SA …¿w@Yl¹´fS$Ar;* ºSAÀÌÀw@lspSjS$A  ¤ÁºSAÀÁw@qWXnS$ARËFrºSAàzÀw@|7%òqS$Aµ›; ºSAà£Àw@F¦ú•tS$AB!ÀfºSAàzÀw@XaÆbvS$Aô¶¿¦ºSA ®¿w@@¬´}S$Aãò€\ºSA`fªw@èož]‚S$AwўѺSA …«w@6fªˆS$A0-dºSA \¯w@ˆzÄ’S$AD¦ºSA@3§w@•?]*”S$A©ñ||ºSA@3§w@ë-1997/03/07 è†8R;[Ý”v~!€?×Ñ>™S$AØØkºSAࣘw@) kXšS$AµÁ⢺SA`¸šw@ë+1997/03/07 è  éé儈tablel06l06CREATE TABLE 'l06' ( OGC_FID INTEGER PRIMARY KEY, GEOMETRY BLOB , 'feature_id' FLOAT, 'code' INTEGER, 'sub_type' INTEGER, 'datum' VARCHAR, 'code_firma' INTEGER, 'aufn_art' INTEGER, 'objectid' FLOAT, 'ort_id' INTEGER, 'text_d' VARCHAR, 'text_i' VARCHAR, 'text_l' VARCHAR, 'text_dil' VARCHAR, 'text_code' FLOAT, 'hoehe' FLOAT, 'hoehe_max' FLOAT, 'hoehe_rel' FLOAT, 'melde_code' FLOAT, 'hausnr' VARCHAR, 'geb_id' FLOAT, 'id_strasse' FLOAT, 'gueltig_v' VARCHAR, 'gueltig_b' VARCHAR, 'e_id' FLOAT, 'winkel' INTEGER)ì'ûöñì‚w„|!Pü/?ùR$A»Ý—Åî¹SAw€rS$A2Ô™üî¹SA v@íIŒsS$A»fYï¹SA v@ÐÜòösS$A+%p€ï¹SA v@þ91997/03/07& %#" ééå„ ˆtablel07l07CREATE TABLE 'l07' ( OGC_FID INTEGER PRIMARY KEY, GEOMETRY BLOB , 'feature_id' FLOAT, 'code' INTEGER, 'sub_type' INTEGER, 'datum' VARCHAR, 'code_firma' INTEGER, 'aufn_art' INTEGER, 'objectid' FLOAT, 'ort_id' INTEGER, 'text_d' VARCHAR, 'text_i' VARCHAR, 'text_l' VARCHAR, 'text_dil' VARCHAR, 'text_code' FLOAT, 'hoehe' FLOAT, 'hoehe_max' FLOAT, 'hoehe_rel' FLOAT, 'melde_code' FLOAT, 'hausnr' VARCHAR, 'geb_id' FLOAT, 'id_strasse' FLOAT, 'gueltig_v' VARCHAR, 'gueltig_b' VARCHAR, 'e_id' FLOAT, 'winkel' INTEGER) ËaûöñìçâÝ×Ñ˸.ïm!POLYGON ((666671.722027849YŸ2Q›)B’< :96421 ââ„ ˆtablef04f04CREATE TABLE 'f04' ( OGC_FID INTEGER PRIMARY KEY, WKT_GEOMETRY VARCHAR , 'feature_id' FLOAT, 'code' INTEGER, 'sub_type' INTEGER, 'datum' VARCHAR, 'code_firma' INTEGER, 'aufn_art' INTEGER, 'objectid' FLOAT, 'ort_id' INTEGER, 'text_d' VARCHAR, 'text_i' VARCHAR, 'text_l' VARCHAR, 'text_dil' VARCHAR, 'text_code' FLOAT, 'hoehe' FLOAT, 'hoehe_max' FLOAT, 'hoehe_rel' FLOAT, 'melde_code' FLOAT, 'hausnr' VARCHAR, 'geb_id' FLOAT, 'id_strasse' FLOAT, 'gueltig_v' VARCHAR, 'gueltig_b' VARCHAR, 'e_id' FLOAT, 'winkel' INTEGER)àvûöñìæà‚ƒ&!!€t %)ÎW$AäXQ K·SAR¸…ëýq@‡Ò…ÐW$Aî/…]J·SA{®Gáþq@ýÃëõÏW$A 'J·SAr@­½S\ÎW$A¾%ìJ·SA×£p= r@mV\ÌW$A&dJ·SA×£p= r@AÀÂÊW$APRjJ·SA…ëQ¸r@¢'öõÉW$Ah…ÝJ·SAR¸…ëýq@t %)ÎW$AäXQ K·SAR¸…ëýq@Ç« 2003/09/06 è/lR;2005/09/01MþÌ‚ƒ&!!€ÉÚ\ØW$An#*W@·SAÃõ(\þq@ô è(ÛW$AC6]J@·SA33333ÿq@6²õÛW$A)ùÃð?·SA33333ÿq@Ǩß(ÚW$AR’ù>·SAHáz®ûq@u¢GØW$A‘Æð=·SAHáz®ûq@ûkã(×W$Aã‚Æ>·SA¸…ëQüq@œSÖW$Aí.Ä@·SAÃõ(\þq@ÉÚ\ØW$An#*W@·SAÃõ(\þq@Ç« 2003/09/06 è/kR;2005/09/01MþÌ‚-ƒV!!€ -º[÷W$Aç«}'·SA= ×£pÁq@ ô»ŽýW$AÜDEW'·SA= ×£pÁq@ÖÊõX$AE{xê&·SA®GázÂq@}[X$AŠ;Ä&·SA®GázÂq@‚©ãÁX$A›k¤&·SA®GázÂq@Øò\(õW$A­ï¬½&·SA®GázÂq@)ÀÌŽîW$Aî¬'·SA®GázÂq@¯Îf(ïW$Açöd'·SA= ×£pÁq@-º[÷W$Aç«}'·SA= ×£pÁq@Ç« 2003/09/06 è/jR;2005/09/01Mþ̇}Žv!!€'s楠ýV$A®±ƒ z·SAðq@îñNW$Aa¤k‹Ai„Bf edc éé„ ˆtablef05f05CREATE TABLE 'f05' ( OGC_FID INTEGER PRIMARY KEY, GEOMETRY BLOB , 'feature_id' FLOAT, 'code' INTEGER, 'sub_type' INTEGER, 'datum' VARCHAR, 'code_firma' INTEGER, 'aufn_art' INTEGER, 'objectid' FLOAT, 'ort_id' INTEGER, 'text_d' VARCHAR, 'text_i' VARCHAR, 'text_l' VARCHAR, 'text_dil' VARCHAR, 'text_code' FLOAT, 'hoehe' FLOAT, 'hoehe_max' FLOAT, 'hoehe_rel' FLOAT, 'melde_code' FLOAT, 'hausnr' VARCHAR, 'geb_id' FLOAT, 'id_strasse' FLOAT, 'gueltig_v' VARCHAR, 'gueltig_b' VARCHAR, 'e_id' FLOAT, 'winkel' INTEGER)ç}ûöñìçŽDœ!!PÃm¾ß§0X$A0µm ·SA˜…߉X$A›Y¥œ#·SA|ë5m¾ß§0X$A¤­Ô·SA…ëQ¸Éq@Øq8X$AñPç·SAö(\©q@‘Ô®ô7X$AŠXNg·SA…ëQ¸©q@CÒãÐ6X$A.RÆë·SA ×£p=~q@¦8‰6X$AнJ‡·SA…ëQ¸©q@V·5X$A:¹d!·SAáz®GÅq@ô6-7X$AµH·!·SA)\ÂõÄq@äh¸ÈBX$A›Y¥œ#·SA¼t“Àq@Ó ‚–IX$A5q­P#·SA¤p= ׿q@«ZÑ"?X$A›”G·!·SAš™™™™Åq@¥ŽÑ"=X$Aôô¸4!·SA{®GáÆq@°åТ¸SA P1|`$A¨`A¹>¸SA|é P1|`$A¨`A¹>¸SAÀÌn‚@þËé2001/04/13 èKR;@‚nÌÌÌÌÍO§# nzôn !PèPcúÂY$Au(áùx¶SA¨PcúÂY$Au(áùx¶SA|é¨PcúÂY$Au(áùx¶SA@áFq@þËé1997/03/07 èxR;@qFáG®{O§# !PÃåÐÀûZZ$A @¾½õ¶SAåÐÀûZZ$A @¾½õ¶SA|éåÐÀûZZ$A @¾½õ¶SAÀ…q@þËé1997/03/07 èwR;@q…¸Që…O§#!PÊþë}Y$Ai¯n)S¶SAŠþë}Y$Ai¯n)S¶SA|éŠþë}Y$Ai¯n)S¶SA pyq@þËé1997/03/07 èvR;@qyp£× =O§#   u‚g!!LINESTRING (665085.100727885961533 5170408.406696654856205 302.82,665085.961702213971876 5170407.155712282285094 302.82,665087.103690737741999 5170408.28568262886256 302.82)Ëê2003/09/06 è/)R;2005/09/01O§hv‚i!!LINESTRING (665084.531706119771115 5170404.447772771120071 302.82,665085.392680447548628 5170403.196788399480283 302.82,665086.534668971551582 5170404.326758746989071 302.82)Ëê2003/09/06 è/(R;2005/09/01O§ht‚e!!LINESTRING (665083.961684371111915 5170400.488848899491131 302.82,665084.8226586910896 5170399.236864545382559 302.82,665085.964647214976139 5170400.366834891960025 302.82)Ëê2003/09/06 è/'R;2005/09/01O§hu‚g!!LINESTRING (665083.392662604805082 5170396.52992501668632 302.82,665084.253636924782768 5170395.277940663509071 302.82,665085.395625448436476 5170396.407911010086536 302.82)Ëê2003/09/06 è/&R;2005/09/01O§h ÝÒ×Ýw‚k!!LINESTRING (664364.677294756518677 5170158.237038942985237 295.486,664364.87169657764025 5170156.730071949772537 295.486,664366.403612907626666 5170157.21401733905077 295.486)Ëê2003/09/06 è/,R;2005/09/01O§hx‚m!!LINESTRING (664362.98980452818796 5170155.357023659162223 295.984,664363.168704005307518 5170153.848137790337205 295.984,664364.705514486529864 5170154.316309051588178 295.984)Ëê2003/09/06 è/+R;2005/09/01O§h‚+ƒS!!LINESTRING (664203.542119031655602 5169478.28163287974894 293.37,664207.192165044369176 5169492.111353524960577 293.67,664209.822181890718639 5169500.061188635416329 293.65,664213.602190028992482 5169509.500987526029348 293.99)Ä~2003/09/06 è/*R;2005/09/01LÁ8 S3S] ‚K!LINESTRING (666527.786393713671714 5171485.446564291603863 0,666526.836406901944429 5171484.956580830737948 0,666527.326390445814468 5171484.016593844629824 0)Ëê1997/03/07 èeR;O§hO ‚/!LINESTRING (666422.202313058427535 5171981.198463727720082 354.42999267578125,666424.662262809695676 5171980.478456822223961 354.459991455078125)Ëì1997/03/07 èdÿR;O¨0x‚m!!LINESTRING (664366.10539035173133 5170160.701673706993461 295.059,664366.330690213479102 5170159.199015542864799 295.059,664367.852347937179729 5170159.714310172013938 295.059)Ëê2003/09/06 è/-R;2005/09/01O§h Rˆ¾R?‚!€$rÍöS$A{ÎÅî¹SA@3/u@ª‘S$A¢±nï¹SA G-u@õß*“S$A‡&npï¹SA,u@òü(†–S$AÉÚ9-ð¹SA`*u@ šS$A'Èð¹SA`*u@ë+1997/03/07 è†:R;[Üà'^!€@a:*aS$Aâ ÷ ï¹SA@ v@PÐ NgS$AlÂèï¹SA@ v@Î)²>jS$AXôdÙð¹SA€ë­v@Kê ÎjS$AÁèð¹SA G±v@ë+1997/03/07 è†9R;[ÜàƒG†!€Þw mWS$A;t‚•û¹SA`fŽw@1-6IXS$AÞ‹´xü¹SA@á¾w@9#ù>[S$Aˆa8dý¹SAÀÌÀw@í¤Ïb^S$AñH7$þ¹SA ®¿w@³-5IcS$A/ÏMÿ¹SA …¿w@Yl¹´fS$Ar;* ºSAÀÌÀw@lspSjS$A  ¤ÁºSAÀÁw@qWXnS$ARËFrºSAàzÀw@|7%òqS$Aµ›; ºSAà£Àw@F¦ú•tS$AB!ÀfºSAàzÀw@XaÆbvS$Aô¶¿¦ºSA ®¿w@@¬´}S$Aãò€\ºSA`fªw@èož]‚S$AwўѺSA …«w@6fªˆS$A0-dºSA \¯w@ˆzÄ’S$AD¦ºSA@3§w@•?]*”S$A©ñ||ºSA@3§w@ë-1997/03/07 è†8R;[Ý”v~!€?×Ñ>™S$AØØkºSAࣘw@) kXšS$AµÁ⢺SA`¸šw@ë+1997/03/07 è†7R;[ÜÞ @VÄ@?‚!€Ú–É*çR$A›™Åî¹SA`þw@Ýç¯çR$ANlÖÏî¹SA`þw@ýqêñR$A¨¡œï¹SA@ ÿw@rÚ­ÓüR$A‡£v°ð¹SA`fúw@wÃ6S$AYÄtÀñ¹SA€ëùw@ë+1997/03/07 è†>R;[Üà?‚!€çÀ/$S$AQ µQö¹SA@3÷w@b±€%(S$AÑcCôö¹SA@3÷w@]ò",S$AÔÞÛ­÷¹SA€ëùw@¢«6D0S$Ai9§ªø¹SA@ ûw@-V§5S$A68S"ú¹SA pýw@ë+1997/03/07 è†=R;[Üà.!€{³&É~S$A&׳ºSA€ë­w@!³ ƒS$A!ºSA`f®w@n@šÝ‡S$AñÃÆ]ºSAׯw@ë+1997/03/07 è†rAS$AËÆG{ú¹SA@3·w@—uFS$Ay¯dÀû¹SA ®»w@Ÿ)*ÄHS$AW\0ü¹SA×Çw@üîââJS$AÁ¾?ý¹SAÐw@ýd–QS$AeÐ-ÿ¹SA)Ðw@§ƒº†WS$AÕÃæºSA)Ðw@ü?ò[S$A Ð„üºSA)Ðw@–¯„SbS$A*;KºSA€ÂÑw@Þøm¥iS$AÞìϺSA€ÂÑw@ÑZbNnS$Aä¨ÈºSA€Òw@T ¿]qS$A¤ú‡ÃºSA`æw@‡CItS$Aæ™ mºSA`êw@#â7òyS$A¸èz¬ºSAÀÌäw@þ­m€S$AYy—! ºSA påw@a ‡*„S$AºÓªß ºSAäw@þ‰ –†S$A;H´f ºSA@ ãw@ü6QwŒS$AIÊ“‘ ºSAàzäw@l÷‚ªS$A»h f ºSA`¸æw@u²É “S$A ’°Ö ºSAèw@@^´Ý”S$Aßgh%ºSAÀéw@ÈÐ8I–S$A˜Ô4bºSA@ ëw@ë+1997/03/07 è†?R;[Üà 4&­4v¸ ~!€*¦¥!kW$A‚¼ ¹SAàQ(w@*¦¥!kW$A‚¼ ¹SAàQ(w@ë)1997/03/07 è¢CR;[Üv„K~!€Ù`4PR$AÉvòªÅ¹SAu@Ù`4PR$AÉvòªÅ¹SAu@ë+1997/03/07 èˆR;[ÜàW ‚>!€wÃ6S$AYÄtÀñ¹SA€ëùw@ÂË­* S$A»/Cò¹SA€úw@ÒªcÉS$A!Áº±ò¹SA€ëùw@›©ªS$A¿›Îó¹SA ™ùw@¨ý’|S$AC4¦ó¹SA€Âùw@Ù£ªS$A¦w¢õ¹SA ®÷w@ë+1997/03/07 è†@R;[Üà X.tÒX‚w„|!Pü/?ùR$A»Ý—Åî¹SAw€rS$A2Ô™üî¹SA v@íIŒsS$A»fYï¹SA v@ÐÜòösS$A+%p€ï¹SA v@þ91997/03/07 èþR;bn¢W ll‰'‘\!Pà A¬Ý2S$AqIÔð¹SAÞw mWS$A;t‚•û¹SA|ê-Þw mWS$A;t‚•û¹SA w@.Å\¥VS$AÑÞtû¹SA w@çÖâUS$A¥ðaû¹SA w@¨_¯SS$AE:d`û¹SA w@$…_ŠL!PÃG•]GS$AÂöë4ñ¹SA´Y*^S$A;t‚•û¹SA|êG•]GS$AÂöë4ñ¹SA`w@Z^-wIS$AÕÌoñ¹SA`w@€x6NKS$A†½„®ñ¹SA`w@xņ†MS$A¬Qëñ¹SA`w@‚.oXQS$Ab/o@ò¹SA`w@Ó8Œ]SS$A"Pkò¹SA`w@q8¥US$A ßò¹SA`w@Љ]WS$A —Ìò¹SA`w@ˆÚYS$A]†: ó¹SA`w@Ø`øšZS$AÕé´aó¹SA`w@([}\S$A®0¾ó¹SA`w@ª!÷\S$AËØÜô¹SA`w@'Î É]S$A:YÜ}ô¹SA`w@¢®a^S$A‚Fžõ¹SA`w@´Y*^S$AŸt—õ¹SA`w@1Ú]]S$AŽ’Lö¹SA`w@d#b*\S$AxЇ÷¹SA`w@$ÀölZS$Aÿš*Æ÷¹SA`w@¢Ý$ÉXS$AbVˆø¹SA`w@Œ=˜XS$A#2Íöø¹SA`w@}Ç͹WS$A¾znù¹SA`w@”Äœ†WS$A`Å<äù¹SA`w@ÀìÑ9WS$A/àDú¹SA`w@–AONWS$AyÞú¹SA`w@TyªWS$AYjE;û¹SA`w@Þw mWS$A;t‚•û¹SA`w@þ91997/03/07 èþR;vn¢Wm¾´QS$AEghû¹SA w@é1rOS$A{þiû¹SA w@¢K{ÓMS$ASn1]û¹SA w@`I LS$A²É1û¹SA w@\b¿JS$Aþaøú¹SA w@ÈîIS$Ae¶e°ú¹SA w@ÉõS÷HS$Aû$=dú¹SA w@)¹]HS$AW„ ñù¹SA w@ äe¥HS$A}$š³ù¹SA w@¡÷èIS$At¿zù¹SA w@×9€ªJS$A¥H;ù¹SA w@à íJS$ARîÃßø¹SA w@w9îgJS$A ÷]‰ø¹SA w@,¨)òJS$AnóÎ6ø¹SA w@†àßLS$AÑÅø¹SA w@n ó>LS$Aeµ‡Å÷¹SA w@ÔùÒ9LS$AQ»ør÷¹SA w@ª=v*JS$A&7½ö¹SA w@úJNKS$AU½ƒö¹SA w@ò}ö•LS$A¤ÉADö¹SA w@#âòKS$A73Bôõ¹SA w@àã„XKS$A 0³±õ¹SA w@¦’ÿìIS$A+ l@õ¹SA w@—ê>JS$A¸©õ¹SA w@÷é–†JS$AÀàûâô¹SA w@ΖJS$A镌ô¹SA w@D±‹/IS$A)gHô¹SA w@HÝçGS$AÄ׿Øó¹SA w@ vGS$AÒéŠó¹SA w@˜ïHS$AëÌ¡Có¹SA w@ìæîGS$AÀ¹¶ñò¹SA w@Y«ï•ES$AbNê´ò¹SA w@€dòCS$Aã€àmò¹SA w@WbÓAS$A¥opò¹SA w@vár>S$A8¡R{ñ¹SA w@R#&É=S$Ah>Mñ¹SA w@åD„‡L!PîJ3ò S$Aß;•Åî¹SAËWòCS$A|>=ñ¹SA|ê®J3ò S$Aß;•Åî¹SA€w@)¤·Ý!S$AºHÈØî¹SA€w@o+í#S$A8Ãk ï¹SA€w@о9É%S$Ad³:ï¹SA€w@p .ò'S$AB}ï¹SA€w@|s»´*S$AúÅùËï¹SA€w@v{º4,S$AùIüï¹SA€w@ ¨–-S$Aï=Kð¹SA€w@‚1É/S$AÇ^Úð¹SA€w@¨2S$AàO6&ð¹SA€w@gÓ6S$AjfÏOð¹SA€w@E<÷8S$A úÄXð¹SA€w@z;«´:S$A­þÎoð¹SA€w@exž]=S$A/4‘•ð¹SA€w@jÔi*?S$Aû}*¿ð¹SA€w@¨Á?Î@S$A,¬ñð¹SA€w@D‰ì•BS$Aj+¹!ñ¹SA€w@ËWòCS$A|>=ñ¹SA€w@þ91997/03/07 èþR;xn¢Wƒ?† !PÃw€œÜñ¹SAàw@,@–S$A*¦ò¹SAàw@hs–S$AÂ?mò¹SAàw@úG‹Ó S$A8äì”ò¹SAàw@ÙðLI"S$AwØÆò¹SAàw@w~?$S$A¾m\Ró¹SAàw@Q¾%S$AÕÊÖ¶ó¹SAàw@-Ÿ'S$A§„Nô¹SAàw@ð6.S$AšÒÓ¶õ¹SAàw@=ð9.S$AÓ¨Xòõ¹SAàw@þ91997/03/07 èþR;~n¢W ^^ L!Põvr´dS$A¾½Åî¹SA­Œ¹eS$A®ßèî¹SA|êµvr´dS$A¾½Åî¹SA`v@­Œ¹eS$A®ßèî¹SA`v@þ91997/03/07 èþR;fn¢W ..‡O Ž,!PÃËWòCS$A|>=ñ¹SAS–ÝXS$A;t‚•û¹SA|ê$ËWòCS$A|>=ñ¹SA€w@¦òlGS$Aè=\‚ñ¹SA€w@‰ŠJS$A~a¸ñ¹SA€w@~Ú>LS$A̘üñ¹SA€w@>gOS$AßÈÕ6ò¹SA€w@ÊVÉQS$A:Hþrò¹SA€w@>1OÓSS$A oé¤ò¹SA€w@*±bUS$Aí×µáò¹SA€w@_XªVS$A¯âÉ/ó¹SA€w@ ô%÷VS$AÎmDtó¹SA€w@ŒO¶9WS$A"^üÂó¹SA€w@NhŽÝWS$AŒul0ô¹SA€w@é\¸9XS$AE™.†ô¹SA€w@U>qØXS$A1­BÔô¹SA€w@h5ÎXS$A8õ¹SA€w@.KB%WS$A gL[õ¹SA€w@õ–WSWS$A÷•`™õ¹SA€w@cxÈXS$AaDjö¹SA€w@S–ÝXS$AÕ’ˆUö¹SA€w@e WS$A¨Žä”ö¹SA€w@È‚Ä9VS$AŽ{@Ôö¹SA€w@ç ›VS$A´i ÷¹SA€w@n4“†VS$AQêí[÷¹SA€w@€ü³‹US$Aõ T’÷¹SA€w@º]nªTS$AþŠÄÏ÷¹SA€w@à˜US$A>’Sø¹SA€w@2×ê>US$AÝw]Yø¹SA€w@H·ì¾TS$A‚Èͦø¹SA€w@~~TS$A³)æø¹SA€w@¤Éï¾SS$A¿×¸ù¹SA€w@‡kÓSS$AÌ+RRù¹SA€w@ ϪÝSS$Ad)=Äù¹SA€w@\ØSS$AúÂÿù¹SA€w@ þ˜¯SS$A«‡Xú¹SA€w@7×9TS$AV¨Õ­ú¹SA€w@Þw mWS$A;t‚•û¹SA€w@þ91997/03/07 èþ R;xn¢W)5,666667.512040087254718 5172494.72720183711499 368.79998779296875,666665.082047137897462 5172490.177303694188595 368.57000732421875,666662.482054829713888 5172485.327412347309291 368.29998779296875,666652.752063623745926 5172464.707863573916256 366.8599853515625,666650.682064335560426 5172460.177962155081332 366.660003662109375,666647.612058821483515 5172452.648123023100197 366.239990234375,666646.362052820506506 5172449.118196905590594 366.160003662109375,666645.262044839328155 5172445.678267947398126 365.920013427734375,666644.542034771991894 5172442.828325253911316 365.67999267578125,666644.192018590169027 5172440.048378302715719 365.519989013671875,666643.961998784681782 5172437.088433633558452 365.399993896484375,666644.02197123283986 5172433.818492216989398 365.1099853515625,666645.011904548038729 5172427.788593124598265 364.769989013671875,666646.571828865678981 5172421.918686531484127 364.269989013671875,666648.911717244656757 5172413.348822394385934 363.829986572265625,666652.731552996905521 517*2401.579004080966115 363.269989013671875,666656.661384577280842 5172389.539189756847918 362.8900146484375,666663.891078864689916 5172367.899522129446268 362.589996337890625,666669.610834090271965 5172350.419791580177844 362.209991455078125,666674.830615909071639 5172335.110025880858302 361.95001220703125,666676.800533551955596 5172329.330114339478314 361.910003662109375,666677.480490352958441 5172325.510177839547396 361.829986572265625,666678.710412049782462 5172318.580293062143028 361.80999755859375,666679.930332308635116 5172311.450411980971694 361.769989013671875,666681.140248133917339 5172303.750541277229786 361.69000244140625,666682.26012381806504 5172290.890764507465065 361.75,666682.690031469333917 5172280.440949791111052 361.80999755859375,666682.639943902846426 5172269.511147630400956 362.029998779296875,666682.719867911073379 5172260.301313345320523 362.04998779296875,666682.949822315713391 5172255.1814039722085 362.170013427734375,666682.009650209569372 5172231.821833544410765 363.1000061035156+25,666681.479556336766109 5172219.042068684473634 363.339996337890625,666681.4695506086573 5172218.312081952579319 363.3599853515625,666681.42953036702238 5172215.722129059955478 363.399993896484375,666681.399517796235159 5172214.102158566005528 363.3599853515625,666681.04947830317542 5172208.442263641394675 363.420013427734375,666680.859448952483945 5172204.392338334582746 363.339996337890625,666680.549428810831159 5172201.21239828504622 363.459991455078125,666680.14940632856451 5172197.542467816732824 363.480010986328125,666679.579369755694643 5172191.75257701985538 363.660003662109375,666678.689339609118178 5172186.042687362991273 363.720001220703125,666678.04932485986501 5172182.792751250788569 363.8800048828125,666676.719294240698218 5172176.042883946560323 363.899993896484375,666674.299254326731898 5172165.713090129196644 364.3800048828125,666671.749218298704363 5172155.573293933644891 364.94000244140625,666670.869205940398388 5172152.083364098332822 365.17999267578125,666670.069190923590213 5172148,.443436324596405 365.3800048828125,666669.569172756047919 5172145.083501065149903 365.5,666668.869128979975358 5172138.113632634282112 365.920013427734375,666668.38908341655042 5172131.413757544010878 366.489990234375,666664.00916121294722 5172131.253795888274908 366.6300048828125,666664.249203015584499 5172136.953690982423723 366.04998779296875,666664.429259419091977 5172144.323556396178901 365.649993896484375,666665.279266005381942 5172147.033500565215945 365.45001220703125,666665.859277305426076 5172149.723447280935943 365.329986572265625,666671.769364846055396 5172173.72296591848135 364.010009765625,666672.539377652574331 5172177.022900076583028 363.899993896484375,666674.259406085708179 5172184.372753386385739 363.649993896484375,666675.509432240854949 5172190.392634526826441 363.45001220703125,666675.799443516414613 5172192.432595330290496 363.3699951171875,666676.079454163322225 5172194.372558021917939 363.290008544921875,666676.549489222699776 5172199.752457033842802 363.350006103515625,666677.139-58201254718 5172212.53222140762955 363.290008544921875,666678.049769714707509 5172237.75175847671926 362.730010986328125,666677.959820471820422 5172243.821649563498795 362.329986572265625,666678.029888574616052 5172252.391494190320373 362.30999755859375,666678.189928989508189 5172257.74139625672251 362.20001220703125,666678.500002633896656 5172267.531216906383634 362.010009765625,666678.230114918900654 5172280.800979387946427 361.709991455078125,666677.730180525919423 5172287.7908571716398 361.6300048828125,666676.150356694008224 5172306.030540481209755 361.6300048828125,666675.350446416065097 5172315.330378965474665 361.6300048828125,666673.320556729566306 5172324.430231019854546 361.75,666671.330647461232729 5172331.200124837458134 361.730010986328125,666668.510769611457363 5172339.99998870305717 361.850006103515625,666662.941007549408823 5172356.969727250747383 362.3699951171875,666658.541190364165232 5172369.739532195031643 362.54998779296875,666656.461275679524988 5172375.639442456886172 362.75,66665.2.191471525700763 5172390.309212028980255 362.8900146484375,666641.941930440021679 5172424.138683907687664 364.470001220703125,666640.062030193395913 5172432.268552266061306 365.1300048828125,666639.61206567788031 5172435.648494857363403 365.42999267578125,666639.502084985841066 5172437.788457089103758 365.54998779296875,666639.512107063899748 5172440.538407335057855 365.709991455078125,666639.612121932441369 5172442.598369314335287 365.80999755859375,666639.972132429946214 5172444.69832846801728 365.8699951171875,666640.222135038813576 5172445.578310548327863 365.92999267578125,666640.712139788898639 5172447.258276234380901 366.04998779296875,666641.192140025086701 5172448.358252480626106 366.07000732421875,666641.822139980853535 5172449.758222091011703 366.089996337890625,666648.532132864114828 5172463.847913266159594 366.829986572265625,666657.112123467260972 5172481.827519035898149 367.850006103515625,666666.832103440770879 5172501.037093359977007 369.30999755859375,666676.482090750127099 5172520.996654704213142 370.95001220703125,666685.162085699383169 5172539.73624593950808 372.730010986328125,666687.652083069784567 5172544.966131310909986 373.209991455078125,666691.0420635411283 5172550.116010845638812 374.010009765625,666693.862037145067006 5172553.145933287218213 374.3699951171875,666696.182009336771443 5172554.885883077979088 374.589996337890625,666698.691930179134943 5172550.705938268452883 374.3900146484375,666697.571944413240999 5172549.965960700064898 374.269989013671875,666695.211969868629239 5172547.84601809643209 374.04998779296875,666693.581984327523969 5172545.996064706705511 373.790008544921875,666692.361988711636513 5172543.816113960929215 373.470001220703125,666691.051995611749589 5172541.746161955408752 373.19000244140625,666689.251999379950576 5172538.196240649558604 372.790008544921875,666677.572017807513475 5172514.416764741763473 370.410003662109375,666671.722027849289589 5172502.607025422155857 370.410003662109375))  1997/03/07 è+ÓR;>·0.317931315861642 5172444.0164600526914 411.040008544921875,666874.15788700140547 5172442.646469907835126 411.519989013671875,666876.107845961814746 5172441.926467129029334 412,666878.597797518363222 5172441.496454740874469 412.55999755859375,666880.927755525917746 5172441.506435700692236 413.20001220703125,666883.027720114565454 5172441.816413104534149 413.82000732421875,666885.087688096798956 5172442.456384868361056 414.5,666887.397653103107587 5172443.286351177841425 415.040008544921875,666892.297545033507049 5172440.86635522916913 415.519989013671875,666889.747580638271756 5172439.57639916986227 415.1199951171875,666885.687641809694469 5172438.076459130272269 414.29998779296875,666882.067700458690524 5172437.24650342296809 413.44000244140625,666878.177771511254832 5172437.346533103846014 412.8599853515625,666874.777839057613164 5172438.106546895578504 412.17999267578125,666871.927900315262377 5172439.316548108123243 411.660003662109375,666869.707951410557143 5172440.676541510038078 411.1199951171875,666867.318012941512279 5172442.94651985168457 410.3599853515625,666863.598123742965981 5172448.336452600546181 409.339996337890625,666860.628226991160773 5172454.466365911066532 408.160003662109375,666858.358306914800778 5172459.276297400705516 406.959991455078125,666856.608382790465839 5172464.746212755329907 405.760009765625,666856.028417627443559 5172467.756163081154227 405.260009765625,666855.778447072487324 5172470.83610946778208 404.8599853515625,666856.258460825891234 5172473.606055547483265 404.459991455078125,666857.99847902439069 5172479.735930733382702 402.660003662109375,666859.178498269291595 5172484.745830684900284 401.399993896484375,666859.92852398334071 5172489.595737004652619 400.44000244140625,666860.288556011393666 5172494.355648110620677 399.660003662109375,666860.398586726281792 5172498.395574242807925 398.8599853515625,666865.678465077187866 5172495.145590209402144 399.55999755859375,666865.408449392998591 5172492.605638277716935 399.899993896484375))  1997/03/07 è+ÔR;>· ’’¸.ïm!POLYGON ((666671.722027849289589 5172502.607025422155857 370.41000366210937( pp—­!POLYGON ((666865.408449392998591 5172492.605638277716935 399.899993896484375,666864.888418554328382 5172487.635732262395322 400.67999267578125,666864.378397652646527 5172483.915803586132824 401.420013427734375,666863.348382579744793 5172479.755887068808079 402.420013427734375,666862.158363839029334 5172474.785986475646496 403.660003662109375,666861.428340273210779 5172470.246074392460287 404.600006103515625,666861.278315622825176 5172466.866136661730707 405.20001220703125,666861.758273201994598 5172462.696208101697266 406.3599853515625,666862.298243053606711 5172460.17624925263226 407.05999755859375,666863.578195090871304 5172457.106294345110655 407.660003662109375,666865.318136636051349 5172453.766340594738722 408.399993896484375,666867.898055081255734 5172449.44639774505049 409.420013427734375,666870.427981228218414 5172445.966440126299858 410.239990234375,666872/734375,666720.011681182077155 5172567.505462230183184 377.149993896484375,666701.461892949417233 5172552.285887306556106 375.040008544921875,666698.69197583058849 5172556.345836390741169 374.80999755859375,666718.871734630316496 5172571.565398119390011 377.410003662109375,666745.571418839506805 5172592.114810799248517 380.910003662109375,666753.05132416181732 5172597.104660118930042 382.07000732421875,666756.661279615829699 5172599.654584835283458 382.529998779296875,666759.651244565146044 5172601.994518363848329 383.1099853515625,666763.751196755911224 5172605.234426653012633 383.6300048828125,666765.44118072791025 5172607.024380641058087 383.75,666766.691176125896163 5172609.244330421090126 383.970001220703125,666767.19118733308278 5172611.744281214661896 384.04998779296875,666767.321205220767297 5172614.244235003367066 384.1300048828125,666767.011232187622227 5172616.884189827367663 384.209991455078125,666766.221274054609239 5172620.294134624302387 384.30999755859375))  1997/03/07 è+ÕR;>· DD1s!POLYGON ((666766.221274054609239 5172620.294134624302387 384.30999755859375,666789.330499064060859 5172576.104745790362358 384.290008544921875,666784.860635064309463 5172582.934658598154783 384.30999755859375,666780.040775765664876 5172589.564577852375805 384.3699951171875,666778.34081844240427 5172591.044564878568053 384.269989013671875,666775.040894381818362 5172593.064555102027953 384.089996337890625,666772.39094935671892 5172593.944560654461384 384.1099853515625,666765.961076472885907 5172595.304588134400547 383.3900146484375,666762.151143652154133 5172595.104622586630285 382.989990234375,666758.301205968600698 5172594.214669825509191 382.489990234375,666754.24126746377442 5172592.754729061387479 381.92999267578125,666749.751329114194959 5172590.35480875801295 381.45001220703125,666745.551383909536526 5172587.754889719188213 380.850006103515625,666733.861523445346393 5172578.915144022554159 379.17001342736777.431514392141253 5172674.993055816739798 389.04998779296875,666784.911438898299821 5172682.352862324565649 389.69000244140625,666795.321316648158245 5172690.472631388343871 390.769989013671875,666797.5412552729249 5172687.842660925351083 390.790008544921875,666784.461398457875475 5172676.352974346838892 389.510009765625,666778.731453278916888 5172670.34312928840518 389.029998779296875,666775.861476611113176 5172666.82321610301733 388.470001220703125,666773.761494295555167 5172664.323278257623315 388.1300048828125,666766.241479369695298 5172645.70367547031492 385.670013427734375,666765.121475634747185 5172642.743738004006445 385.30999755859375,666764.441479414817877 5172641.693762474693358 385.07000732421875,666764.111469185096212 5172639.693801272660494 384.92999267578125,666764.47145321406424 5172638.523819493129849 384.95001220703125,666772.021192310377955 5172623.134036378934979 384.769989013671875,666766.221274054609239 5172620.294134624302387 384.30999755859375))  1997/03/07 è+ÖR;>· ’’ˆK'!POLYGON ((666852.908526740851812 5172474.27607055939734 399.32000732421875,7uš{!POLYGON ((666766.221274054609239 5172620.294134624302387 384.30999755859375,666762.581408665515482 5172628.804010369814932 384.470001220703125,666760.661480245296843 5172633.363943539559841 384.529998779296875,666759.921512224711478 5172635.663907982409 384.6300048828125,666760.291535330470651 5172639.343838515691459 384.829986572265625,666760.951542029739358 5172641.643791628070176 384.989990234375,666762.761560744955204 5172647.993662272579968 385.510009765625,666764.761566882603802 5172653.213551793247461 386.30999755859375,666767.781560268253088 5172659.133420412428677 387.1099853515625,666770.511560104438104 5172665.20328866969794 387.829986572265625,666773.931536797201261 5172669.953175187110901 388.649993896484375,665666847.578631404554471 5172475.316094917245209 399.089996337890625,666847.358647275948897 5172476.786070143803954 399.100006103515625,666847.238667088211514 5172478.966031735762954 399.100006103515625,666847.508680667262524 5172481.245988366194069 399.079986572265625,666848.428681457648054 5172483.395942084491253 399,666850.258665977278724 5172485.565888073295355 398.959991455078125,666852.468647196888924 5172488.1758230375126 398.67999267578125,666855.708667044062167 5172497.855621960014105 396.70001220703125,666856.348678070353344 5172500.645566379651427 396,666860.398586726281792 5172498.395574242807925 398.8599853515625,666859.918585842475295 5172497.215599440969527 398.739990234375,666859.178572898497805 5172493.96566413808614 398.720001220703125,666857.898559992318042 5172489.515754883177578 398.899993896484375,666855.158554104040377 5172482.675900614820421 399.079986572265625,666852.908526740851812 5172474.27607055939734 399.32000732421875))  1997/03/07 è+×R;>· 360.8699951171875,666632.411742738331668 5172379.689563964493573 361.19000244140625,666639.681642381940037 5172383.509436117485166 361.8699951171875,666646.661542891291901 5172386.78932037204504 362.45001220703125,666649.791497541591525 5172388.169270108453929 362.649993896484375,666651.361476881196722 5172389.119240242056549 362.769989013671875,666652.191471525700763 5172390.309212028980255 362.8900146484375,666656.461275679524988 5172375.639442456886172 362.75,666654.751333510968834 5172378.969396144151688 362.670013427734375,666653.331372993532568 5172380.679376753047109 362.670013427734375,666652.201400844729505 5172381.599369280040264 362.670013427734375,666650.93142677238211 5172381.969372875057161 362.6300048828125,666648.911463733646087 5172382.029388141818345 362.45001220703125,666645.6915157266194 5172381.269427933730185 362.25,666631.611717603635043 5172374.799658769741654 361.089996337890625,666574.452580831362866 5172353.930498420260847 359.589996337890625))  1997/03/07 è+ØR;>· œœŠY”C!POLYGON ((666574.452580831362866 5172353.930498420260847 359.589996337890625,666573.052633955259807 5172357.37044761236757 359.709991455078125,666593.392323572770692 5172364.400155991315842 360.1099853515625,666614.552001620759256 5172371.829850506037474 360.529998779296875,666626.081833567586727 5172376.7896675849333418 À.À‡iŽc!POLYGON ((667014.540288269519806 5171817.066633986309171 413.98001098632812;…OŠ/!POLYGON ((666573.052633955259807 5172357.37044761236757 359.709991455078125,666565.912742648739368 5172354.870550562627614 359.45001220703125,666562.522793421172537 5172353.580601304769516 359.6099853515625,666563.362797355279326 5172355.940551876090467 359.6300048828125,666563.382806383306161 5172357.100530759431422 359.350006103515625,666560.692877216846682 5172359.850502858869731 359.25,666563.85282930219546 5172360.980456868186593 359.209991455078125,666567.122756818542257 5172359.320460386574268 359.57000732421875,666570.472685885266401 5172358.03045657183975 359.80999755859375,666573.052633955259807 5172357.37044761236757 359.709991455078125))  1997/03/07 è+ÙR;>·5,667014.290331554599106 5171821.856549486517906 413.8599853515625,667017.670317466370761 5171827.656417356804013 415.05999755859375,667020.070297601283528 5171830.556345545686781 415.899993896484375,667021.460277358070016 5171831.156323458999395 416.579986572265625,667023.650245582452044 5171832.116288390941918 421.019989013671875,667024.310236011631787 5171832.406277810223401 415.94000244140625,667026.490193732548505 5171832.046266666613519 416.260009765625,667024.070184495998546 5171825.5064043905586 416.160003662109375,667022.160217852913775 5171825.366422380320728 415.600006103515625,667020.190245493664406 5171824.386456028558314 415.279998779296875,667017.780268453177996 5171821.846521416679025 414.44000244140625,667015.940281282179058 5171819.326581832952797 414.079986572265625,667014.540288269519806 5171817.066633986309171 413.980010986328125))  1997/03/07 è+ÚR;>· T(TƒQ †3!POLYGON ((666788.160634320927784 5172590.20450056437403 384.3900146484375,666796.43034851772245 5172573.344738175161183 384.3900146484375,666789.330499064060859 5172576.104745790362358 384.290008544921875,666766.221274054609239 5172620.294134624302387 384.30999755859375,666772.021192310377955 5172623.134036378934979 384.769989013671875,666788.160634320927784 5172590.20450056437403 384.3900146484375))  1997/03/07 è+ÜR;>·ƒU †;!POLYGON ((666698.691930179134943 5172550.705938268452883 374.3900146484375,666696.182009336771443 5172554.885883077979088 374.589996337890625,666698.69197583058849 5172556.345836390741169 374.80999755859375,666701.461892949417233 5172552.285887306556106 374.769989013671875,666700.451906573609449 5172551.715905776247382 373.720001220703125,666698.691930179134943 5172550.705938268452883 374.3900146484375))  1997/03/07 è+ÛR;>·>5,666302.41449969203677 5170748.641698095016181 372.489990234375,666307.46444055205211 5170752.601585690863431 373.25,666311.304395734332502 5170755.631499876268208 373.480010986328125,666314.864349822048098 5170757.901430059224367 373.709991455078125,666321.884255674900487 5170761.931300442665815 374.19000244140625,666325.444213242502883 5170764.631222858093679 374.489990234375,666337.024075278546661 5170773.420970352366567 375.67999267578125,666345.333971273037605 5170779.110800311900675 376.399993896484375,666353.853860480245203 5170784.430635255761445 377.1400146484375,666358.173802220029756 5170786.870556214824319 377.739990234375,666365.603700912091881 5170790.930422740057111 378.29998779296875,666378.283522284124047 5170797.150207755155861 379.3800048828125,666396.4032574017765 5170804.849922006949782 380.79998779296875,666408.963067909586243 5170809.459737076424062 381.79998779296875,666422.782853156211786 5170813.759547548368573 382.8599853515625,666435.532648740336299 5170816.949386729858816 383?.8599853515625,666446.402470098575577 5170819.129259373061359 384.850006103515625,666456.602299508173019 5170820.809146471321583 385.779998779296875,666460.962225147639401 5170821.349101426079869 386.160003662109375,666466.722124939784408 5170821.819046319462359 386.660003662109375,666470.63205579132773 5170821.999011422507465 387.040008544921875,666474.341989040141925 5170822.028980851173401 387.329986572265625,666480.751870943233371 5170821.738934207707644 387.95001220703125,666491.891656912514009 5170820.148872764781117 389.55999755859375,666491.891656831838191 5170820.138872945681214 389.55999755859375,666497.181545686209574 5170818.208864995278418 389.55999755859375,666507.351339053828269 5170815.368833982385695 390.69000244140625,666502.43137035111431 5170808.259002236649394 389.67999267578125,666498.051465469179675 5170810.239001921378076 389.29998779296875,666494.851533370558172 5170811.489005241543055 389,666491.561601197696291 5170812.529013082385063 388.670013427734375,666488.501662686001509 51@70813.299023942090571 388.3599853515625,666484.751736067701131 5170813.999041646718979 388.05999755859375,666479.291839275858365 5170814.569075541570783 387.579986572265625,666474.851921555935405 5170814.829106780700386 387.07000732421875,666469.592016701353714 5170814.849148993380368 386.54998779296875,666460.442176181823015 5170814.139235875569284 385.75,666445.462427908089012 5170811.81939902715385 384.3599853515625,666436.682570913922973 5170809.899504772387445 383.600006103515625,666423.212786307674833 5170806.459675933234394 382.420013427734375,666411.78296478302218 5170803.009830764494836 381.55999755859375,666397.063186318613589 5170797.540048711933196 380.290008544921875,666381.783406392438337 5170790.640297023579478 379.19000244140625,666373.343528205063194 5170786.860433615744114 378.470001220703125,666371.673550914973021 5170785.940463748760521 378.29998779296875,666366.153626150102355 5170782.920562979765236 377.75,666365.103640254586935 5170782.320582317188382 377.75,666355.343772305292077 5A170776.860759937204421 376.829986572265625,666344.873905846383423 5170770.000968597829342 375.839996337890625,666336.224013239960186 5170763.97114753164351 375.1099853515625,666327.534113181056455 5170756.931345033459365 374.209991455078125,666317.604223859263584 5170748.451578584499657 373.3699951171875,666311.344287852523848 5170742.391738717444241 372.8800048828125,666309.644300825544633 5170740.201792035251856 372.839996337890625,666308.384305286686867 5170737.941843058913946 372.720001220703125,666307.84430605371017 5170736.831867479719222 372.70001220703125,666307.684302791603841 5170736.07188250310719 372.709991455078125,666307.754293757257983 5170735.111899276264012 372.709991455078125,666308.114279001369141 5170734.091914789751172 372.709991455078125,666301.014446383342147 5170738.93188482709229 372.30999755859375,666301.4644374481868 5170738.831882989965379 372.3699951171875,666302.594420199748129 5170739.221866797655821 372.5,666304.534395284717903 5170740.471828517504036 372.6199951171875,666307.444373169215396 5170744.231737044639885 372.910003662109375,666307.134382004966028 5170744.631732327863574 372.910003662109375,666303.254429729655385 5170741.871813586913049 372.579986572265625,666301.134452310507186 5170739.931865789927542 372.410003662109375,666300.924450922640972 5170739.291879049502313 372.30999755859375,666301.014446383342147 5170738.93188482709229 372.30999755859375,666292.534684333018959 5170749.411764150485396 371.779998779296875,666293.334668268449605 5170749.211761290207505 371.709991455078125,666294.304648729041219 5170748.961757955141366 376.519989013671875,666295.104633635608479 5170748.881752923130989 376.540008544921875,666297.984579120879062 5170748.571735215373337 372.6099853515625,666298.784564027097076 5170748.491730182431638 371.529998779296875,666299.784546293085441 5170748.531721368432045 371.790008544921875))  1997/03/07 è,ÉR;>· ‘ÖS’¬5!POLYGON ((665422.730003672884777 5170701.549668749794364 315.410003662109375,665422.590007334016263 5170701.689667354337871 315.410003662109375,665421.550037363427691 5170703.079650662839413 315.3699951171875,665420.210071758134291 5170704.339638748206198 315.329986572265625,665418.590109023498371 5170705.329633977264166 315.290008544921875,665416.80014774017036 5170706.119634193368256 315.25,665417.030150870676152 5170707.019616075791419 315.25,665416.940157270873897 5170707.609606145881116 315.25,665416.490169524913654 5170708.11960057541728 315.25,665415.690186155843548 5170708.389602174051106 315.25,665437.069757517194375 5170703.129524149000645 315.269989013671875,665436.299768022145145 5170702.709537968970835 315.230010986328125,665435.729770302306861 5170701.719560464844108 315.209991455078125,665435.589765546377748 5170700.819577855989337 315C§XsÎA!POLYGON ((666299.784546293085441 5170748.531721368432045 371.79000854492187=D.230010986328125,665432.989719907520339 5170689.379805544391274 315.209991455078125,665433.36970827030018 5170688.789813127368689 315.209991455078125,665433.029702512663789 5170687.319842431694269 315.209991455078125,665431.999722973210737 5170687.549846612848341 313.45001220703125,665431.86972564458847 5170687.589846942573786 313.45001220703125,665431.779727350454777 5170687.599847491830587 313.45001220703125,665431.699728633509949 5170687.579848499037325 313.45001220703125,665431.589730133768171 5170687.519850472919643 313.45001220703125,665431.519730750122108 5170687.439852486364543 313.45001220703125,665431.43973130476661 5170687.329855118878186 313.45001220703125,665430.799719147966243 5170684.399913225322962 313.45001220703125,665430.799718095688149 5170684.269915574230254 313.45001220703125,665430.829716663691215 5170684.159917320124805 313.45001220703125,665430.869715212844312 5170684.069918620400131 313.45001220703125,665430.949713282985613 5170684.009919056668878 313.45001220703125,665431.069710E79215873 5170683.96991880889982 313.45001220703125,665430.799705389072187 5170682.69994393363595 313.45001220703125,665430.719706995645538 5170682.719944220036268 313.45001220703125,665430.62970837764442 5170682.68994549009949 313.45001220703125,665430.519709878601134 5170682.62994746491313 313.45001220703125,665430.449710414279252 5170682.539949656464159 313.45001220703125,665430.369711049483158 5170682.439952111802995 313.45001220703125,665429.729698892682791 5170679.510010216385126 313.45001220703125,665429.729697840753943 5170679.380012565292418 313.45001220703125,665429.759696408407763 5170679.270014308393002 313.45001220703125,665429.799694957910106 5170679.180015610530972 313.45001220703125,665429.87969302770216 5170679.120016044937074 313.45001220703125,665429.999690537108108 5170679.080015797168016 313.45001220703125,665429.709685576031916 5170677.820040904916823 313.45001220703125,665429.639686921029352 5170677.830041291192174 313.45001220703125,665429.539688564836979 5170677.810042462311685 313F.45001220703125,665429.439689884893596 5170677.750044354237616 313.45001220703125,665429.35969060100615 5170677.660046628676355 313.45001220703125,665429.289690974634141 5170677.550049181096256 313.45001220703125,665428.639678998617455 5170674.620107369497418 313.45001220703125,665428.649677846697159 5170674.500109454616904 313.45001220703125,665428.679676414700225 5170674.390111200511456 313.45001220703125,665428.719674883410335 5170674.290112681686878 313.45001220703125,665428.799673033878207 5170674.240112937986851 313.45001220703125,665428.909670724067837 5170674.200112770311534 313.45001220703125,665428.629665582207963 5170672.940137795172632 313.45001220703125,665428.549667107639834 5170672.950138263404369 313.45001220703125,665428.459668571129441 5170672.930139351636171 313.45001220703125,665428.349670071620494 5170672.870141326449811 313.45001220703125,665428.279670607182197 5170672.780143519863486 313.45001220703125,665428.209670981392264 5170672.67014607321471 313.45001220703125,665427.559659004G793502 5170669.74020426068455 313.45001220703125,665427.569657772313803 5170669.610206527635455 313.45001220703125,665427.589656601427123 5170669.510208171792328 313.45001220703125,665427.639654889469966 5170669.410209573805332 313.45001220703125,665427.709653220954351 5170669.360209910199046 313.45001220703125,665427.829650729894638 5170669.320209659636021 313.45001220703125,665426.979641070589423 5170666.230272356420755 312.910003662109375,665426.909642577404156 5170666.26027237996459 312.910003662109375,665426.809644221095368 5170666.240273552015424 312.910003662109375,665426.699645802844316 5170666.190275345928967 312.910003662109375,665426.619646599632688 5170666.110277438536286 312.910003662109375,665426.529647415620275 5170666.010279972106218 312.910003662109375,665425.579641503980383 5170663.16033914219588 312.910003662109375,665425.56964071339462 5170663.040341391228139 312.910003662109375,665425.589639462064952 5170662.930343218147755 312.910003662109375,665425.619638111209497 5170662.8303447784H85596 312.910003662109375,665425.689636280527338 5170662.760345476679504 312.910003662109375,665425.799633970367722 5170662.72034530993551 312.910003662109375,665425.279633567319252 5170661.510371373966336 312.910003662109375,665425.209635155042633 5170661.550371220335364 312.910003662109375,665425.109636879642494 5170661.540372207760811 312.910003662109375,665424.999638704233803 5170661.520373460836709 312.910003662109375,665424.899639943265356 5170661.450375535525382 312.910003662109375,665424.799641101621091 5170661.370377789251506 312.910003662109375,665423.459643446840346 5170658.670437406748533 312.910003662109375,665423.439642755547538 5170658.540439914911985 312.910003662109375,665423.439641946228221 5170658.440441721118987 312.910003662109375,665423.459640775690787 5170658.340443366207182 312.910003662109375,665423.519639044767246 5170658.260444327257574 312.910003662109375,665423.629636653698981 5170658.210444339551032 312.910003662109375,665422.979639326920733 5170657.090469832532108 312.730010I986328125,665422.919640734209679 5170657.130469595082104 312.730010986328125,665422.81964270141907 5170657.150470042601228 312.730010986328125,665422.699644625885412 5170657.120471554808319 312.730010986328125,665422.599646026734263 5170657.070473269559443 312.730010986328125,665422.489647446665913 5170657.000475424341857 312.730010986328125,665420.859656403772533 5170654.470534317195415 312.730010986328125,665420.819656074047089 5170654.34053698554635 312.730010986328125,665420.809655364020728 5170654.23053905647248 312.730010986328125,665420.819654454942793 5170654.140540600754321 312.730010986328125,665420.869652742985636 5170654.040542001836002 312.730010986328125,665420.969650451792404 5170653.980542276985943 312.730010986328125,665421.049648683168925 5170653.940542353317142 312.730010986328125,665418.739668139023706 5170651.190610721707344 312.660003662109375,665416.849686081055552 5170649.190662146545947 312.6099853515625,665414.729708256665617 5170647.200715248472989 312.54998779296875,665402.4798J47231647 5170637.040997917763889 312.239990234375,665400.109875621274114 5170635.261049252003431 312.17999267578125,665398.859889128478244 5170634.141079601831734 312.149993896484375,665398.37988986459095 5170633.161101188510656 312.1300048828125,665398.479882960091345 5170632.531111759133637 312.1199951171875,665398.749874037923291 5170632.031118607148528 312.1199951171875,665397.479888958507217 5170631.041146767325699 312.160003662109375,665395.999902734067291 5170629.441187645308673 312.1199951171875,665394.759912014240399 5170627.821226946078241 312.079986572265625,665393.099920946289785 5170625.221287346445024 312.019989013671875,665390.869933697162196 5170621.821366809308529 311.8800048828125,665388.849942979170009 5170618.461443852633238 311.82000732421875,665387.909947084728628 5170616.871480180881917 311.779998779296875,665387.459945903159678 5170615.721504598855972 311.760009765625,665387.299940456170589 5170614.691524495370686 311.720001220703125,665387.249933023238555 5170613.661543506197631 3K11.720001220703125,665387.299923783983104 5170612.631561707705259 311.720001220703125,665387.599909302196465 5170611.511579508893192 311.67999267578125,665388.209888170473278 5170610.261597151868045 311.720001220703125,665388.869867835659534 5170609.221610597334802 311.720001220703125,665380.470080784521997 5170616.791541840881109 311.57000732421875,665381.530059215496294 5170616.491538679227233 311.57000732421875,665382.500045018503442 5170616.901523424312472 311.6099853515625,665384.180032729753293 5170619.131469546817243 311.6099853515625,665387.980011134175584 5170624.941333839669824 311.709991455078125,665391.69999017380178 5170630.65120059158653 311.8900146484375,665392.929982450325042 5170632.44115830399096 311.8900146484375,665393.09998545050621 5170633.191143377684057 311.910003662109375,665392.889993046643212 5170633.661136589944363 311.95001220703125,665392.300003052921966 5170633.581142810173333 311.95001220703125,665391.480013246880844 5170633.011159742251039 311.95001220703125,665385.7300595L33030726 5170625.901334709487855 311.850006103515625,665380.020106391631998 5170618.951506465673447 311.589996337890625,665379.91010101349093 5170618.041523794643581 311.589996337890625,665380.160089376964606 5170617.161537667736411 311.6300048828125,665380.470080784521997 5170616.791541840881109 311.57000732421875,665374.870201572775841 5170619.221543268300593 311.25,665381.470153777394444 5170628.04133053123951 311.730010986328125,665384.780126947443932 5170632.111230225302279 311.790008544921875,665388.170095921028405 5170635.841135411523283 311.8699951171875,665390.020080077578314 5170638.011081241071224 311.8900146484375,665392.820049507310614 5170640.481013962998986 311.92999267578125,665394.210033552953973 5170641.610982300713658 311.970001220703125,665394.500032039475627 5170642.070971645414829 311.989990234375,665394.610034342505969 5170642.600961181335151 312.019989013671875,665394.530040157260373 5170643.14095207490027 312.04998779296875,665394.20005137717817 5170643.790943004190922 312.089996337890625,665406.2298997027101 5170651.890699324198067 312.42999267578125,665415.40981753997039 5170662.220438432879746 313.489990234375,665416.63978885486722 5170661.420442926697433 313.489990234375,665416.94978293357417 5170661.380441141314805 313.489990234375,665417.269778935355134 5170661.600434578955173 313.489990234375,665418.889778413926251 5170665.150357339531183 313.510009765625,665421.939841178827919 5170679.71006965264678 314.42999267578125,665423.589876940473914 5170687.809909983538091 314.709991455078125,665424.839897587196901 5170693.149803406558931 315.1300048828125,665425.499921199399978 5170697.539718765765429 315.230010986328125,665425.529936277540401 5170699.469683660194278 315.350006103515625,665425.029958660481498 5170701.119657902047038 315.350006103515625,665424.679968946496956 5170701.609651884995401 315.3900146484375,665423.929983946494758 5170701.789654702879488 315.3900146484375,665422.730003672884777 5170701.549668749794364 315.410003662109375))  1997/03/07 è5R;>·N911 292.209991455078125,664909.300072603626177 5169564.524363229051232 292.670013427734375,664965.138890351634473 5169543.034299506805837 292.230010986328125,664965.158897759858519 5169543.994282007217407 292.149993896484375,664965.088904041564092 5169544.614271374419332 292.1300048828125,664964.718915497534908 5169545.204263712279499 292.1300048828125,664964.118929649936035 5169545.614261160604656 292.1300048828125,664930.689637228264473 5169558.454299768432975 292.220001220703125,664911.370045178802684 5169565.754324258305132 292.600006103515625,664910.590057968860492 5169565.594333461485803 292.6400146484375,664909.850067366030999 5169565.104348302818835 292.6400146484375,664909.300072603626177 5169564.524363229051232 292.670013427734375,664895.710360412835144 5169569.764378560706973 292.980010986328125,664891.370452297618613 5169571.434383515268564 293.079986572265625,664888.120507423765957 5169570.994417766109109 292.959991455078125,664887.88052519201301 5169572.654389719478786 292.80999755859375,664O887.44053686002735 5169573.114384975284338 292.779998779296875,664873.790826399927028 5169578.434399342164397 292.69000244140625,664868.071000178344548 5169587.144288301467896 292.3599853515625,664884.280804985202849 5169599.193939447402954 292.660003662109375,664885.140779986861162 5169598.0239536203444 292.660003662109375,664886.990726024378091 5169595.483984531834722 292.55999755859375,664889.7106467213016 5169591.754029897041619 293.04998779296875,664892.550563875236548 5169587.854077360592782 293.019989013671875,664890.870584338787012 5169586.63411299418658 293.019989013671875,664894.020492819836363 5169582.354164814576507 293.019989013671875,664898.220441742683761 5169585.414075551554561 293.25,664907.95015678787604 5169571.914240665733814 293.089996337890625,664910.620099024614319 5169570.734240370802581 292.739990234375,664911.360084367101081 5169570.574237273074687 292.730010986328125,664912.130070139071904 5169570.53423176612705 292.739990234375,664912.7400596907828 5169570.604225562885404 292.7P20001220703125,664920.299967929138802 5169576.134064488112926 292.589996337890625,664922.779894011677243 5169572.534109447151423 292.589996337890625,664922.479895382537507 5169572.034120906144381 292.589996337890625,664922.559889001073316 5169571.424131277948618 292.6099853515625,664922.979843380395323 5169566.724212777800858 292.470001220703125,664942.789424477377906 5169559.164189019240439 292.269989013671875,664975.638729557977058 5169546.594150226563215 292.32000732421875,664976.158719844184816 5169546.554146740585566 292.32000732421875,664976.798709905939177 5169546.754137950018048 292.32000732421875,664977.468702096608467 5169547.284122951328754 292.329986572265625,664978.828688382869586 5169548.624087744392455 292.339996337890625,664979.248679423006251 5169548.454087412916124 292.329986572265625,664984.478569119470194 5169546.49408049415797 292.170013427734375,664992.958390741376206 5169543.374068222939968 292.19000244140625,664995.698332684813067 5169542.314065196551383 292.17999267578125,664996.878307735198177 5169541.864063774235547 292.170013427734375,665001.068218477419578 5169540.184060210362077 292.149993896484375,665001.028214182239026 5169539.564071734435856 292.089996337890625,665001.018209830857813 5169539.00408193282783 292.089996337890625,665001.228201264049858 5169538.414090889506042 292.089996337890625,665001.528192771365866 5169538.034095327369869 292.089996337890625,665011.337984792073257 5169534.224084757268429 292.1099853515625,665012.477954090572894 5169532.974098110571504 292.079986572265625,665013.237929522409104 5169531.634116166271269 292.04998779296875,665013.757907102699392 5169530.024141040630639 291.980010986328125,665014.277881283778697 5169527.994173501618207 291.920013427734375,665014.68785834161099 5169526.074204864911735 291.8900146484375,665015.087833719211631 5169523.924240465275943 291.8599853515625,665011.317913692793809 5169525.39424442127347 291.95001220703125,665010.807924439781345 5169525.584245117381215 291.95001220703125))  1997/03/07 è5_R;>· bÑb°$›)ßY!POLYGON ((666613.259719115216285 5168380.441962315700948 287.70999145507812R¦’MË?!POLYGON ((665010.807924439781345 5169525.584245117381215 291.95001220703125,665010.807924520573579 5169525.594244935549796 291.95001220703125,665010.047953945002519 5169527.534216042608023 291.94000244140625,665009.577967853983864 5169528.204207744449377 291.94000244140625,665007.408014079905115 5169529.074209591373801 291.92999267578125,664982.338543990277685 5169538.61424015276134 292.019989013671875,664970.768787716166116 5169542.914256112650037 292.1199951171875,664969.918801608495414 5169542.734266244806349 292.1400146484375,664969.428807057905942 5169542.314277797006071 292.160003662109375,664968.958809475181624 5169541.564295148476958 292.160003662109375,664968.218825104064308 5169541.844296078197658 292.20001220703125,664966.998850937699899 5169542.314297460950MS5,666612.399702759226784 5168376.502040449529886 287.82000732421875,666612.229678960284218 5168373.182101801037788 287.79998779296875,666612.439648218685761 5168369.852160256356001 287.720001220703125,666612.829616977716796 5168366.862211112864316 287.600006103515625,666607.899819630663842 5168380.901997386477888 287.760009765625,666608.619807194918394 5168380.97199029289186 287.760009765625,666609.119802455301397 5168381.501976674422622 287.739990234375,666609.729802770190872 5168382.901946446858346 287.82000732421875,666611.509806396905333 5168387.321852195076644 287.839996337890625,666616.399782350286841 5168395.261669190600514 288.040008544921875,666617.509775254875422 5168396.861631303094327 288.040008544921875,666617.289783597574569 5168397.401623329147696 288.040008544921875,666616.229801687411964 5168397.271634256467223 288.040008544921875,666614.049837331869639 5168396.81166020873934 288.019989013671875,666610.079905381193385 5168396.361700466834009 287.899993896484375,666606.499970839242451 5168T396.461727633140981 287.899993896484375,666606.289972932077944 5168396.251733127050102 287.980010986328125,666606.159969209693372 5168395.501747726462781 287.94000244140625,666605.130038714851253 5168401.791642436757684 287.920013427734375,666605.590026361285709 5168401.291647746227682 287.920013427734375,666606.110015352489427 5168401.091647149994969 287.959991455078125,666607.859981160843745 5168400.771638767793775 288.040008544921875,666609.799946046783589 5168400.761623248457909 288.079986572265625,666611.999907775083557 5168400.941602190956473 288.079986572265625,666615.529850099468604 5168401.691560076549649 288.100006103515625,666618.79980165080633 5168403.001509948633611 288.079986572265625,666624.439727561082691 5168406.431402340531349 288.1199951171875,666629.14967544504907 5168410.501290700398386 288.239990234375,666629.499674627790228 5168411.181275585666299 288.32000732421875,666629.08968769677449 5168411.881266256794333 288.29998779296875,666628.509699951391667 5168412.101266977377236 288.29U998779296875,666627.269716921029612 5168411.431289117783308 288.29998779296875,666624.229759759502485 5168409.941340634599328 288.279998779296875,666621.229800581233576 5168408.291394719853997 288.279998779296875,666616.22987355326768 5168406.151473843492568 288.239990234375,666605.630039720912464 5168403.03161599021405 287.94000244140625,666605.300041066948324 5168402.461628956720233 287.920013427734375,666605.130038714851253 5168401.791642436757684 287.920013427734375,666604.790084995911457 5168406.751555590890348 288.019989013671875,666605.620069359894842 5168406.67155031580478 288.040008544921875,666608.27002967975568 5168407.681510626338422 288.019989013671875,666609.620011289953254 5168408.421486333012581 287.980010986328125,666610.010005784337409 5168408.611479742452502 288.05999755859375,666608.590034988475963 5168409.051483285613358 288.05999755859375,666605.340100799570791 5168409.931493693962693 288.019989013671875,666604.420118222595192 5168410.031499330885708 288,666603.770182078820653 516841V6.471388257108629 287.980010986328125,666604.340169277507812 5168416.161389243789017 288,666606.270134667749517 5168416.191373084671795 288.079986572265625,666607.650114279123954 5168416.751351797953248 288.079986572265625,666608.95009768253658 5168417.601325921714306 288.079986572265625,666610.070086197694764 5168418.681297349743545 288.040008544921875,666611.430073859170079 5168420.191259063780308 287.980010986328125,666611.820071024587378 5168420.711246515624225 287.920013427734375,666615.200004646205343 5168420.051231083460152 287.8800048828125,666613.010012550046667 5168416.141319438815117 288.05999755859375,666612.520010473090224 5168414.791347791440785 288.079986572265625,666612.250006932183169 5168413.751368762925267 288.079986572265625,666612.210001746658236 5168413.021382274106145 288.239990234375,666612.4699921956053 5168412.421391008421779 288.1400146484375,666617.529914417071268 5168414.101319709792733 288.160003662109375,666625.659804426599294 5168418.651171719655395 288.3599853515625,666634W.979686299804598 5168424.85098429210484 288.459991455078125,666640.699620882282034 5168429.530853459611535 288.579986572265625,666648.069539345335215 5168435.900678744539618 288.779998779296875,666656.3694561481243 5168444.140462720766664 288.82000732421875,666658.259437637287192 5168446.070412560366094 288.8599853515625,666658.499439211329445 5168446.800397430546582 288.8599853515625,666658.519444919889793 5168447.550383720546961 288.8599853515625,666658.069468746660277 5168449.490352318622172 288.8800048828125,666660.509443379240111 5168451.800290840677917 288.899993896484375,666661.579421062837355 5168451.430288868024945 288.899993896484375,666662.649403358926065 5168451.630276594310999 288.899993896484375,666663.929387851967476 5168452.570249253883958 288.94000244140625,666667.799348962609656 5168456.400148745626211 289.05999755859375,666668.199347242480144 5168457.080133225768805 289.269989013671875,666694.189088246319443 5168483.06945339217782 289.709991455078125,666695.259077583206818 5168484.139425404369831 289.739990234375,666700.498940469580702 5168478.889477835968137 289.82000732421875,666697.798969075083733 5168476.399544666521251 289.82000732421875,666687.899068216560408 5168466.559802541509271 289.540008544921875,666685.509092761669308 5168464.259863431565464 289.45001220703125,666673.909208843950182 5168452.720165776088834 289.3699951171875,666655.9493836928159 5168434.250644778832793 288.80999755859375,666642.979502906324342 5168420.041006441228092 288.470001220703125,666640.149527142988518 5168416.721089317463338 288.399993896484375,666622.069682226283476 5168395.54161824285984 287.970001220703125,666620.189696752582677 5168393.141676815226674 287.850006103515625,666617.439714931184426 5168389.251769339665771 287.850006103515625,666615.229724734090269 5168385.53185442648828 287.80999755859375,666614.129724689526483 5168383.071907767094672 287.75,666613.259719115216285 5168380.441962315700948 287.709991455078125))  1997/03/07 è9ÏR;>·2197265625,667829.174532054690644 5170452.46469063591212 583.05999755859375,667828.464510395540856 5170448.204773337580264 583.47998046875,667827.894496811903082 5170445.254831242375076 583.6199951171875,667826.844511887524277 5170444.774848410859704 583.6300048828125,667825.574537897133268 5170445.154851825907826 582.280029296875,667820.984633166808635 5170446.684861340560019 579.0999755859375,667819.434623358305544 5170442.014958243817091 579.19000244140625,667816.024694001534954 5170443.134965613484383 578.59002685546875,667818.244674066081643 5170445.624902662821114 579.1099853515625,667819.74466114374809 5170447.374858911149204 579.1099853515625,667820.564661148004234 5170449.204819216392934 579.1099853515625,667820.924680952448398 5170452.454757592640817 579.1300048828125,667818.734735068515874 5170454.25474280398339 579.45001220703125,667817.294765523751266 5170454.804744523018599 579.44000244140625,667824.434715586248785 5170464.564510424621403 580.4000244140625))¤w2001/04/13 è;êR;@>| __Ÿ2™;!POLYGON ((667824.434715586248785 5170464.564510424621403 580.4000244140625,667821.784720784868114 5170459.294627074152231 580.05999755859375,667825.354640615638345 5170457.354633222334087 580.5,667827.344649520236999 5170462.894517037086189 580.530029296875,667824.434715586248785 5170464.564510424621403 580.4000244140625,667827.044666673988104 5170464.344493274576962 580.52001953125,667828.674629954854026 5170463.444496337324381 580.96002197265625,667829.51459536049515 5170461.044532894156873 581.57000732421875,667829.504575387341902 5170458.554577955044806 582.09002685546875,667829.254553030012175 5170455.23463995102793 582.7100X[49993896484375,667437.053608354413882 5170698.97341148648411 485.07000732421875,667436.113609384279698 5170697.003454682417214 484.989990234375,667435.903599254554138 5170695.283487451262772 484.980010986328125,667435.933587219566107 5170693.863512859679759 484.980010986328125,667436.013574929209426 5170692.52353641949594 484.980010986328125,667436.183558180578984 5170690.833565572276711 485,667436.593538393150084 5170689.30358989071101 485.1199951171875,667437.013524819281884 5170688.563599860295653 485.149993896484375,667438.11349313845858 5170687.103617331013083 485.279998779296875,667440.073440019390546 5170684.91364102717489 485.459991455078125,667440.933419714332558 5170684.323644722811878 485.459991455078125,667441.72340569132939 5170684.353637787513435 485.55999755859375,667442.953388174646534 5170684.933617353439331 485.79998779296875,667444.973368371138349 5170686.993563792668283 486.230010986328125,667446.623353630537167 5170688.853516838513315 486.720001220703125,667448.163341118837707 5170690\.743470233865082 487.19000244140625,667449.333334964700043 5170692.59342734515667 487.529998779296875,667450.743328604614362 5170694.953373302705586 487.920013427734375,667452.18332121707499 5170697.253320096991956 488.230010986328125,667455.913240506313741 5170695.603319713845849 488.399993896484375,667453.983258198713884 5170693.483373627997935 487.95001220703125,667452.873264726484194 5170691.813412779942155 487.709991455078125,667452.193265350768343 5170690.373444299213588 487.470001220703125,667451.613264654530212 5170688.993473920039833 487.339996337890625,667451.323258559918031 5170687.593501556664705 487.1400146484375,667451.133247583988123 5170685.813535250723362 486.970001220703125,667450.763227636227384 5170682.523597677238286 486.829986572265625,667450.463206100976095 5170679.193660255521536 486.55999755859375,667450.213185929111205 5170676.143717375583947 486.45001220703125,667449.983152202912606 5170671.46380377933383 486.260009765625,667450.133085471577942 5170663.553945451043546 485.929992]67578125,667450.552996057784185 5170653.444124679081142 485.70001220703125,667451.622841082280502 5170636.684418776072562 485.25,667452.672649722080678 5170615.384795043617487 484.519989013671875,667453.292564062285237 5170606.184956217184663 484.220001220703125,667453.962466654367745 5170595.645141188986599 483.8800048828125,667455.152338083600625 5170582.415370546281338 483.600006103515625,667455.802289032959379 5170577.805448560044169 483.3900146484375,667456.402253673644736 5170574.77549843955785 483.279998779296875,667457.042224795673974 5170572.635531916283071 483.230010986328125,667457.402218537870795 5170572.66552846133709 483.269989013671875,667461.332023329334334 5170557.315773937851191 481.8599853515625,667460.602042177109979 5170558.015767199918628 482.040008544921875,667460.182053403928876 5170558.465762471780181 482.1099853515625,667458.882094200351276 5170560.605734336189926 482.30999755859375,667457.392143526463769 5170563.375696358270943 482.6099853515625,667456.452176284044981 5170565.32^566874101758 482.8599853515625,667455.432216880377382 5170568.065627500414848 483.089996337890625,667454.40226243250072 5170571.395575683563948 483.260009765625,667453.52231587911956 5170576.035498989745975 483.3699951171875,667452.362409913679585 5170585.065345257520676 483.6400146484375,667451.312508680159226 5170594.925175645388663 483.8599853515625,667450.652607769472525 5170605.694986435584724 484.05999755859375,667449.952737609157339 5170620.174730532802641 484.70001220703125,667448.892900012317114 5170637.874419376254082 485.279998779296875,667448.203018259606324 5170650.944188861176372 485.57000732421875,667447.623125050333329 5170662.843978593125939 485.8900146484375,667447.413201444549486 5170671.813818257302046 486.29998779296875,667447.363211574265733 5170672.953798069618642 486.279998779296875,667447.133223255397752 5170673.883783131837845 486.279998779296875,667446.613242762745358 5170675.133764759637415 486.279998779296875,667445.833265427150764 5170676.193751922808588 486.220001220703125,6_67444.323304673656821 5170677.673737411387265 486.100006103515625,667442.563348030089401 5170679.103725824505091 485.769989013671875,667441.613371740793809 5170679.913718882016838 485.670013427734375,667439.713419001433067 5170681.513705357909203 485.470001220703125,667439.353427930152975 5170681.81370285153389 485.42999267578125,667437.493476491537876 5170683.66368448920548 485.329986572265625,667436.483504847390577 5170684.913670084439218 485.25,667435.593533140723594 5170686.423650010488927 485.089996337890625,667434.623564011882991 5170688.073628053069115 485.019989013671875,667434.023586016148329 5170689.453607983887196 485.029998779296875,667433.343611083459109 5170691.033584943972528 484.980010986328125,667433.053625790635124 5170692.20356615819037 484.970001220703125,667432.943637570599094 5170693.413545191287994 484.8900146484375,667432.873647009255365 5170694.423527513630688 484.8599853515625,667433.033654723316431 5170695.733502554707229 484.8699951171875,667433.173659155727364 5170696.59348588`436842 484.8699951171875,667433.383659491548315 5170697.103474971838295 484.8900146484375,667433.833663263358176 5170698.573444776237011 484.8900146484375,667434.053671431262046 5170700.07341589871794 484.980010986328125,667434.083680845331401 5170701.30339343752712 484.94000244140625,667434.383687002235092 5170702.73336517624557 484.769989013671875,667437.303653536597267 5170705.113298550248146 485.239990234375,667439.673617619671859 5170705.963264015503228 485.239990234375,667441.973573900875635 5170705.693250274285674 485.489990234375,667443.413543770089746 5170705.183247835375369 485.970001220703125,667445.533496907562949 5170704.123249822296202 486.420013427734375,667448.803422074764967 5170702.173258582130075 487.350006103515625,667451.053372136550024 5170701.023261141031981 487.910003662109375,667452.77333589666523 5170700.383258782327175 488.170013427734375,667452.18332121707499 5170697.253320096991956 488.230010986328125),(667443.94334820122458 5170682.203658656217158 485.779998779296875,667443.783347448101267 5170681.753668081015348 485.779998779296875,667444.343332722201012 5170681.183673845604062 485.79998779296875,667444.913318382110447 5170680.683678263798356 485.910003662109375,667445.923292940016836 5170679.793686165474355 486.079986572265625,667447.013263301574625 5170678.563699563033879 486.32000732421875,667447.89323842653539 5170677.453712491318583 486.399993896484375,667447.98324368102476 5170678.303696407936513 486.45001220703125,667448.163258803775534 5170680.573653944768012 486.6300048828125,667448.363277936121449 5170683.383601565845311 486.79998779296875,667448.663298014551401 5170686.533542237244546 486.910003662109375,667448.503303412580863 5170686.843537931330502 486.850006103515625,667448.223307902691886 5170686.773541461676359 486.739990234375,667447.083318209042773 5170685.503573630005121 486.470001220703125,667445.093337552156299 5170683.453626768663526 486.079986572265625,667443.94334820122458 5170682.203658656217158 485.779998779296875))  1997/03/07 è-ûR;>· LL½ŸMù1!POLYGON ((667452.18332121707499 5170697.253320096991956 488.230010986328125,667451.413341273204423 5170698.013312601484358 488.05999755859375,667449.863378328154795 5170699.133304916322231 487.720001220703125,667447.633429281413555 5170700.453299121931195 487.19000244140625,667444.463501498568803 5170702.303291359916329 486.30999755859375,667442.123552252538502 5170703.35329133272171 485.779998779296875,667440.983574538026005 5170703.563296765089035 485.45001220703125,667439.933591880137101 5170703.363308875821531 485.329986572265625,667438.703606482944451 5170702.423335811123252 485.239990234375,667437.823609342798591 5170700.813372017815709 485.1ZSA¸…ëQðq@•ÓrÓ4W$AyŸkTq·SA= ×£píq@aËÉGW$A™oÔ:n·SAáz®Gíq@ÃòvÝRW$AM(3l·SAö(\Âíq@«‹%^W$AÆ• j·SA…ëQ¸íq@ž†‘>iW$AýˆøÏg·SA®Gázìq@°µHbxW$A ©‡d·SAìQ¸…ëq@: ‡W$AÙ{ya·SA{®Gáêq@¯®a’W$Aü0¯G^·SA{®Gáêq@‘ iö W$AÄðZ·SA33333ëq@TU|û¥W$AR1l6Y·SA33333ëq@ËÈgÒ²W$Aa䢉U·SAÃõ(\êq@0#(ö»W$AV£|½R·SA= ×£píq@ÁñõÓW$A‹´µpL·SA= ×£pr@»Í¿W$Aá«ìcJ·SA ×£p=þq@"Òj\»W$AHÄ'J·SA{®Gáþq@Õ0)¿W$AŒ:‡I·SA®Gázr@>–»W$A©“"WH·SA= ×£pr@8šõ®W$AKI7O·SAìQ¸…ïq@<–Áa¨W$Aü›ùR·SAÃõ(\æq@iÓภW$A›ÉöáT·SAáz®Gåq@à§³…žW$A$L®°U·SA)\Âõäq@‡Ú…W$AÒÖæªZ·SAáz®Gåq@füzŸŒW$A;ežy[·SA®Gázæq@05bŠW$AÇ-,\·SAÃõ(\æq@m(¤ö~W$Av|ô^·SA= ×£påq@ÞbÝvW$Aè`Âå`·SAÂõ(\ãq@MBX9nW$AÅ|éñb·SAìQ¸…ãq@&ÖcW$A·,‹be·SAÍÌÌÌÌäq@ÖP°•WW$AfÛºg·SA33333çq@fýº>MW$AÔw^Æi·SAq= ×£èq@h—©bAW$A¥êl·SAÂõ(\ëq@èÆO¥5W$A{ôn·SA= ×£píq@ç¡€*,W$A—Ü:Áo·SAfffffîq@ÎB,¿W$AGðßs·SA ×£p=îq@>‡ïV$AS'š'y·SAfffffîq@s楠ýV$A®±ƒ z·SAðq@Ǻ 2003/09/06 è/iR;2005/09/01Mü 2’bJ2‚ƒ&!!€t %)ÎW$AäXQ K·SAR¸…ëýq@‡Ò…ÐW$Aî/…]J·SA{®Gáþq@ýÃëõÏW$A 'J·SAr@­½S\ÎW$A¾%ìJ·SA×£p= r@mV\ÌW$A&dJ·SA×£p= r@AÀÂÊW$APRjJ·SA…ëQ¸r@¢'öõÉW$Ah…ÝJ·SAR¸…ëýq@t %)ÎW$AäXQ K·SAR¸…ëýq@Ç« 2003/09/06 è/lR;2005/09/01MþÌ‚ƒ&!!€ÉÚ\ØW$An#*W@·SAÃõ(\þq@ô è(ÛW$AC6]J@·SA33333ÿq@6²õÛW$A)ùÃð?·SA33333ÿq@Ǩß(ÚW$AR’ù>·SAHáz®ûq@u¢GØW$A‘Æð=·SAHáz®ûq@ûkã(×W$Aã‚Æ>·SA¸…ëQüq@œSÖW$Aí.Ä@·SAÃõ(\þq@ÉÚ\ØW$An#*W@·SAÃõ(\þq@Ç« 2003/09/06 è/kR;2005/09/01MþÌ‚-ƒV!!€ -º[÷W$Aç«}'·SA= ×£pÁq@ ô»ŽýW$AÜDEW'·SA= ×£pÁq@ÖÊõX$AE{xê&·SA®GázÂq@}[X$AŠ;Ä&·SA®GázÂq@‚©ãÁX$A›k¤&·SA®GázÂq@Øò\(õW$A­ï¬½&·SA®GázÂq@)ÀÌŽîW$Aî¬'·SA®GázÂq@¯Îf(ïW$Açöd'·SA= ×£pÁq@-º[÷W$Aç«}'·SA= ×£pÁq@Ç« 2003/09/06 è/jR;2005/09/01Mþ̇}Žv!!€'s楠ýV$A®±ƒ z·SAðq@îñNW$Aa¤êOy·SAðq@!}'?W$A@Tfu·b 00H0‚ƒ&!!€Û­Ò( X$A[·H·SA¤p= ×r@TT4 X$Aˆ„G·SAìQ¸…r@—lÂX$Asž¸0G·SAÃõ(\r@S*\X$A°ÒëCG·SAÃõ(\r@HÎoÂX$Aû¶ëcG·SAÃõ(\r@ù‚£õX$AYK¸G·SAÃõ(\r@îk \X$A¤F×G·SAÃõ(\r@Û­Ò( X$A[·H·SA¤p= ×r@Ç« 2003/09/06 è/oR;2005/09/01MþÌe‚F!!€ü6–õX$AWÛ‚H·SA{®Gár@’Ç(X$A°KéƒH·SA{®Gár@§“õX$A«ùOJH·SA\Âõ(r@CQÉ(X$Aš2H·SA{®Gár@ˆFÍ(X$AæâwH·SA{®Gár@ü6–õX$AWÛ‚H·SA{®Gár@Ç« 2003/09/06 è/nR;2005/09/01MþÌM‚!!€î³ýõÈW$AÆRƒ]L·SA×£p= ûq@¹ùõÊW$A‰i×K·SAáz®Gýq@îóÈÂÇW$AQªK·SAš™™™™ýq@”3)ÆW$AZI7L·SAq= ×£üq@î³ýõÈW$AÆRƒ]L·SA×£p= ûq@Ç« 2003/09/06 è/mR;2005/09/01MþÌ †mŒV!!€!|°ufàW$AN]‘H·SAÍÌÌÌÌr@{¸GäW$AUœqH·SAÍÌÌÌÌr@ô?ÇuèW$A]QH·SAÍÌÌÌÌr@„RƒëìW$A/YgH·SA)\Âõr@&Y+³ðW$Aø` ©G·SAR¸…ër@Évè¨óW$Aí3G·SA¤p= ×r@T5°õõW$Aì³ §F·SAáz®Gr@åó¿£÷W$AFÌ^F·SA= ×£pr@R$²LøW$AÓœ YE·SA…ëQ¸r@Ÿ°Ì÷W$A9²¹D·SA®Gázr@áŠöW$ARB,D·SA¤p= ×r@0'*áôW$AÎÈ·C·SAHáz®r@w®?òW$AQbQC·SAHáz®r@`žÛ(ïW$AÓs ëB·SAÂõ(\r@ÞŽÊúêW$A2xB·SA×£p= r@íæW$AÃLdQB·SAfffffr@yg¿ÌáW$Aún¬2B·SAš™™™™r@>ܺõÜW$AG>Á0B·SA®Gázr@8˶ØW$AG¸¢KB·SA33333ÿq@KQ‰ëÓW$AœmyB·SA ×£p=þq@7:­pÐW$A/3·¹B·SAö(\Âýq@¯WÍW$AÉŽ C·SAš™™™™ýq@w^$Ai„Í+s¹SAT~@\‹eXy^$Ad{ Øm¹SAàQH~@ïôÊ•z^$AšRÖ‹k¹SA …C~@èmÈì{^$AEþIéh¹SA€>~@ÞAÿM~^$AXn•še¹SA ™9~@Í Åš^$AxŒsd¹SA€=6~@Š1ôÍ€^$A5Ä¡±c¹SAàz4~@ }ž‚^$Aެ(c¹SA ®3~@”–ïÍ‚^$A°˜*c¹SAàQ4~@:öþ©Š^$Aä£5T_¹SA€Â~@Kß>4‰^$AnT_¹SA࣠~@6]ˆ^$Af Ï_¹SA€Â!~@ÝÙ¡Ã…^$AóYÄ&`¹SAÀõ$~@K ÇÈ‚^$A½h Ø`¹SA€Â)~@`¦ƒç€^$A´Á×Ta¹SA€Â-~@ì‡KÝ~^$A°=3b¹SA p1~@pWõÍ|^$A¬QÙb¹SA)4~@¦ül {^$AŽEd¹SA€ë5~@Îʹx^$Aà.Df¹SA€=:~@B# v^$Aé6»h¹SA€Â=~@›"Nu^$Ac¨zlk¹SAÀõ@~@R9Íçs^$AùÈ. o¹SA@3K~@¿0*Éq^$A°|öws¹SAàzT~@cògp^$A—m¼v¹SAÀY~@!? ?o^$Aʾ¶y¹SA€=^~@Æ#Ón^$A,™ô{¹SAÀÌd~@Þö¹n^$A =|¹SAàzd~@ªÖ5Dn^$A çx|¹SAàzd~@•ôú9m^$AšÈ|¹SAàzd~@Ä¡ªk^$Awnf }¹SA …c~@°0ˆ¥h^$A…ƒk}¹SA ™a~@+'o e^$A¤q£Æ}¹SAàQ\~@^Ü :c^$AÃ^zú}¹SA`¸Z~@_AEm_^$ApŒà`~¹SA …W~@sô´^^$A µt~¹SA@áV~@aó¨üZ^$A‚Îyê~¹SA GU~@†ò÷X^$A’y:¹SAT~@i“ã/W^$ASA pQ~@<ÈC?U^$ApR¶€¹SAàQP~@`w T^$AÈé]€¹SAàzP~@¼Êí¯R^$AwA&€¹SA ®O~@òÖtR^$AZ: ¹SA …O~@²v$ãQ^$A@†wZ¹SA€=N~@*©N¿Q^$A%›¹SA€ÂM~@ 1;R^$A³´ñî¹SA€ëM~@UÚéXR^$A8¬û%‚¹SA€ëM~@RoÄR^$A}UŸF‚¹SA€=N~@HéÕªS^$A¸Q³¤‚¹SA€=N~@dÒzT^$A™Ø²ƒ¹SA ®O~@<7Ø*T^$AOÌjSƒ¹SA@ O~@mŸrÄT^$A~tﮃ¹SAàQL~@òyx›Z^$AH@G„¹SA×S~@häX_^$A¦}„¹SA×S~@AGxòc^$Af6^l„¹SA×W~@P¼Óf^$A!UºK„¹SA …_~@µ&k^$A9SㄹSA`¸f~@`#Z›q^$A*«‹ƒ¹SA ™u~@º—Sv^$AL}Aƒ¹SA`~~@®ò‹y^$AØO‡ƒ¹SA`¸‚~@PGÜ]x^$Ae6P‚¹SA ®ƒ~@Ǻ( 1997/03/07 è=ÆR;Mü “[„B¦F!€fPGÜ]x^$Ae6P‚¹SA ®ƒ~@¥w¡Óv^$AÚ€‚¹SAÀõ€~@g¹ ºs^$AXˆÈ‚¹SA …{~@À×PDo^$ARÚƒ¹SA@ s~@„Píh^$A* i“ƒ¹SAÀõd~@¨=B?d^$A@SœÖƒ¹SAàz\~@ô—÷a^$Aà 䃹SA@3W~@BÁÿÝ_^$Aßs@׃¹SA GU~@ã?h]^$A¹SA×S~@°°¥[^$A‚I4ƒ¹SA`fR~@ârZ^$A±_L¾‚¹SAÀQ~@\+:X^$Aý™8@‚¹SA×O~@¾¤ÎW^$A¨$Ò¹SA ®O~@à$ÿÝW^$AqËCw¹SA ®O~@ KóX^$Aæž!¹SA ®O~@}Vû]X^$Aj#Yµ€¹SAP~@§Cä/Y^$AKnS€¹SA€ëQ~@¡¹ìZ^$A&$€¹SA`fR~@ÌÅ:\^$A–ªgr@d†2>ÙF$A€\¡@ð¹SA×Ór@8»½€ÚF$A=.þŸï¹SA×Ór@‘‹¸ÝF$A‚<˜ï¹SA@3Ór@¾J€ÍßF$A¬Æ¢°î¹SA@3Ór@µ*qöâF$AŒ*„kî¹SA@ Ór@WÔ¾æF$AAkŽ2î¹SA@ Ór@‡îRHêF$A8w˜)î¹SA@ Ór@š"‚ûíF$A•Z¢@î¹SA@ Ór@/× õF$AÌ«‡î¹SAà£Ôr@‚Ð-ûF$A·(µîî¹SA€ëÕr@€o|ÒþF$AîöC1ï¹SA@áÖr@;´\G$A÷Ü ð¹SA@ ×r@'’žG$AF’|ëñ¹SA …×r@ÊÉ8"G$A‚ÖŽ)ó¹SA`fÖr@[$G$-G$Ahê–`ô¹SA GÕr@e‘U)DG$A7 õö¹SAÀÕr@¹öOG$Az>Hø¹SAÀõÔr@kðÙkTG$AÏZõæø¹SAÀÌÔr@ ûöVG$A*e„ù¹SAà£Ôr@äñœáWG$Aò`ßøù¹SAà£Ôr@o¹ÜëWG$A̵ވú¹SAà£Ôr@øWÁæVG$Aá‚ û¹SAà£Ôr@Å䯸UG$Ablû¹SAà£Ôr@ÛaþRG$Avbü¹SAà£Ôr@/ü?¤OG$AeçOü¹SAà£Ôr@[õú†G$Aìs¡¾÷¹SAà£Ôr@2fG$A»¬Å÷¹SAÀÌÔr@tN3®}G$AÿúE¯÷¹SAÀÌÔr@Ù³ˆæyG$AœŒs÷¹SAÀÌÔr@æï•=vG$A'Sz"÷¹SAÀÌÔr@R«Å™lG$A^-Î ö¹SAàzÔr@껓¸MG$A”Žò¹SAàzÔr@¥Ö½G$A#üÓí¹SAÔr@ÁYÒG$AkØb¶í¹SA pÑr@…†®G$AŸn/î¹SA€=Òr@­šG$Aü á ì¹SA×Ór@⼿ þF$A}À®‡ë¹SAÀÌÔr@8ràûF$A ”â*ë¹SAà£Ôr@ÿzõ½ùF$A·%îê¹SAà£Ôr@ÖUpÒøF$A«Qãªê¹SAÀÌÔr@ÚK£…øF$Aõv ‡ê¹SAà£Ôr@Ǻ) 1997/03/07 èAbR;Mü qq‹A!€MÚK£…øF$Aõv ‡ê¹SAà£Ôr@UâZ³F$AP]Cñó¹SA@3Ûr@¶ÅÒ$µF$Aå_CÑó¹SA …Ûr@)g“š¶F$A¿_Åó¹SA€=Úr@tÞÍ$¹F$Az·Çó¹SA`fÚr@,¶v¼F$A¦d³îó¹SA€ëÙr@ÃC¹¿F$AÿÙ`Fô¹SA€ÂÙr@iņÏF$A ›ö¹SA`fÚr@3à’HÑF$A'L†Bö¹SA€=Úr@3õó\õF$AœO>ú¹SA ™Õr@H‰rvG$AÔCèþ¹SAàQÔr@Š£©G$A½BXÝþ¹SA ®Ór@ ½éŠ G$Aº´ ÿ¹SA ®Ór@ÑýÊ!G$Aü»W-ÿ¹SAà£Ôr@^Pq!G$Aæ"ÈZÿ¹SAÀÌÔr@¸ezÍ!G$A"µÿ¹SAÀõÔr@Hã|M!G$A¥ÿ“'ºSAàzÔr@€±çG$A¡L…ºSAÀõÔr@/ü?¤OG$AeçOü¹SAà£Ôr@?·E¤KG$A‰WŒü¹SAà£Ôr@ËÏ!ÈGG$A ©ü¹SAà£Ôr@ÆÕDG$Auw²ü¹SAà£Ôr@ë@Äa@G$AêI ®ü¹SAà£Ôr@–zv)ìÃCºSA€ëýr@ívåfãC$A7T BºSA€=úr@^<$ D$Aù?}?ºSAÀÌôr@B6D$AÝki©<ºSA pñr@½&zëAD$AûÏß;ºSAàQðr@⛋ðJD$A%§C;ºSA …ïr@3+s™TD$AZ œ:ºSA`¸îr@î4™zkD$A8dt9ºSAà£ìr@À`–D$A`–‰6ºSAàzìr@#ߣD$AlõÛö4ºSA×ër@|é̯D$AG«Ü¦3ºSA \ër@7¶D$A0—Ÿü2ºSA@ ër@6rßo¼D$A %X2ºSA`¸êr@+«h`ÌD$A O„0ºSA`fêr@—gæËÐD$A¼éc0ºSA`fêr@xÙk¼âD$AE…oÙ-ºSA€Âår@ ºŽ E$A¡\¼(ºSAà£är@É…É 4E$AÈÚv#ºSA Gár@Ìf¯fE$AðöfkºSA`¸âr@ÞÅÜ&E$A”ˆðºSA`fâr@OD1zE$Aþ[‰0ºSA×ßr@€Vœ¦E$An•<ºSA`fÞr@ò7¢ãÞE$AW‘»¼ ºSAàzÜr@Œ ‘ëE$A^<¨ ºSAàQÜr@äü+ÔíE$AhzºSAàQÜr@¥/žD F$A(,þºSA×Ûr@廯ò F$A€ÅºSA×Ûr@‹ƒ9ãF$AÚOy˺SA …Ûr@*èÅ9bF$AQðLù¹SA€ëÙr@÷'ülF$AÜq®÷¹SA`Ör@]pÉlF$Aàmb–÷¹SA`¸Ör@9¿¤âkF$A‹È0Sö¹SAàQØr@ö?0NbF$AF…Q(õ¹SA@áÚr@ƒâ™9rF$AîF¹ó¹SA ®×r@ÊtHqF$AŒÝöó¹SA)Ør@ç† pF$A! rÝò¹SAÀÙr@æÈ mF$AÿÄ…ò¹SAÀõÜr@¶1ÿñUF$A3fwÍï¹SA \ßr@·KÓOF$AÀ¼&ï¹SA \ßr@UáFüFF$AšóŽ î¹SA)àr@Ö“4JF$AØ;¸—í¹SAàQàr@Tiíì=F$AŸé'ì¹SAàQàr@eíè•:F$APnnã“ì¹SAàQàr@òR|8F$A)"^Øì¹SAàQàr@Ns–†/F$AbytÆë¹SA)àr@.ï•1F$A¤²€ë¹SA)àr@¤†4DF$AÑ£€ýè¹SAà£àr@4ß±çOF$A¬• `ê¹SA …ßr@òàÞ¤vF$A#¼=å¹SA …Ûr@\œôÒtF$Aµå¹SA …Ûr@¡x ´„F$A4Uyæâ¹SA …Ûr@Jž®v†F$A|Úóã¹SA …Ûr@ë—ÐÜ­F$AzÄ÷ݹSA€ëÝr@]h¢F$A$±"—ܹSAàr@K‡ë´F$Aæ¢.Ú¹SA@áÞr@‰êoÒºF$AÃù$GÙ¹SA@áÞr@|"ŠWÁF$A«* Ú¹SA@áÞr@}„N$ÆF$AWäðcÙ¹SA ®Ûr@q†×¿F$A°‹¦Ø¹SA ™Ýr@ðGöëÅF$Añ%××¹SA ™Ýr@郤³ÅF$Aë•¿Ð×¹SA ™Ýr@˜'  ÎF$Al¶O³Ö¹SA€ÂÝr@žëñBÎF$A„¶¹Ö¹SA€ÂÝr@à‡ŠŠÚF$AjÔ'Õ¹SA€ëÝr@ާÍàF$A˜°‚ÖÕ¹SAàQÜr@º ©ýF$A\3)÷ѹSA …Ûr@ \G$A²6ιSA \Ûr@8Ñ(&G$A<¶…fϹSAàQØr@°L>f+G$AŸÉàйSAà£Ør@4ùwð0G$AÚ1®Ð¹SA××r@Ùu€Ç2G$AêëÊÇйSA××r@8…K4G$A}йSA××r@±87G$AðÀPйSA`fÖr@@2^úcG$A·#J\ʹSA@áÖr@À¦fQaG$A²2ɹSA€ëÝr@zDûjdG$AìVãȹSA€ëÝr@³áå]G$AáiW#ȹSA`fÞr@l!þj]G$AsÔMœÇ¹SAàzÜr@Ë(ýj^G$A!©Ç¹SA@áÖr@pƒ™„YG$A=™mñƹSA`¸Úr@Pç!pSG$AöK¢ƹSA ®Ûr@s/º QG$AV ŹSA`¸Úr@ƒŒŒ­PG$AH¾ìÕùSA`¸Úr@Dš®‰SG$A¨rùSA€ëÙr@!Ü¿kG$Aãã(¿¹SAàQØor@ÄQ€G$AîÔÀ»¹SA GÙr@³„[“G$A·Á 4·¹SA@áÒr@@T<˜G$A¶Kδ¹SA`Òr@Ƹ‡ï•G$Açu:´¹SA@3Ór@1ã£ô–G$Aº".é³¹SA@3Ór@&¹Ë‹G$A÷qXe³¹SA`¦r@¬£†‹G$A,œ]³¹SA€ëÕr@`ù"sG$Aͤ¹+¹¹SA ®×r@s´²×ƹSA`fÖr@&C‹W~F$AHK¤Ç¹SA`fÖr@z¸Â€XF$A`rµ‹Ì¹SAÀÍr@paSÃWF$A<úN¥Ì¹SA \Ër@€¼`•DF$AF$MEϹSA ®»r@örjlEF$AoêuaϹSA ®»r@*ºÙR@F$A¬”ú йSA`Òr@OWç>F$Aðsú<йSA€Òr@å—õR0F$AþmÚ'Ò¹SA ™Ír@¸ä¤/F$Al «Ò¹SAÀÌÌr@²É™ì-F$A$w¯ûÓ¹SA@ Ër@# *-F$A\ʤdÔ¹SA€=Êr@ÎÈ$F$AŒiÄÔ¹SA€=Êr@Œã^´E$A·âeã¹SA€ëÕr@;ÁùÄE$AY¬2å¹SA××r@¾¤IµE$A&¿pç¹SAàzØr@>Ý Ù­E$AAñ“è¹SAÀõØr@ØQ–m¦E$AÑT8µé¹SA GÙr@؆ƒèŸE$A“L³ê¹SA ™Ùr@@‚Ùr’E$AT£øºì¹SA@áÚr@ð£DÙE$A„cpÏí¹SA@3Ûr@–Æf‡|E$AQNóê¹SA ®×r@Ï^°{E$AH×ë¹SA××r@4ÁíŽE$AðR¦Bí¹SA@3Ûr@Ê´i^ŒE$Aße5¥í¹SA …Ûr@†AM‚…E$A7c*®î¹SA)Ür@8º.T”E$A [þqð¹SAàQàr@Í@=‚˜E$AD15ð¹SA€ëÙr@ ϰ›®E$AŸÅÂgí¹SA)Ør@Ø0¾E$A«Ú¥ë¹SA@áÖr@=a2cÆE$AN¤@Œé¹SA@áÖr@Or›ÎE$AÑ ³™ç¹SAÀÕr@§Ã¡|×E$Aû(1^ä¹SA pÕr@ ëN›ÛE$Aš…­ââ¹SA pÕr@ˆiÉÓE$Avï)â¹SA pÕr@î…ålF$AN·ÈÐÚ¹SA××r@’MéËE$AÈ\áEã¹SA€ëÙr@æº5hÄE$A÷8¥‹â¹SA€ëÙr@‰¥PÓÿE$A)“ŒÚ¹SA××r@î…ålF$AN·ÈÐÚ¹SA××r@‘´ F$A”èÚ¹SA`Ör@ìÊq¯F$A=/¶RÙ¹SA`¸Ör@Ök F$A×Ìe*×¹SA ®×r@pvGØF$A÷ÔÊð×¹SA`Ör@”üöF$A!;عSAÀÌÌr@–ÎìF$Aò8.Ú¹SA \Ïr@oñ\/F$A˜2ÒgÚ¹SA)Ðr@Ô‰X/F$Awá¨{Ú¹SA×Ïr@l Œ¹#F$Aˆ7aÚ¹SAÀÌÐr@¶V]+F$Aª×8.Ù¹SAÀÌÐr@pÙœ2F$A«9/GعSAà£Ør@sÓnb*F$A˜1ÀY×¹SAàQÔr@„ 9]F$Aç ©Ð¹SA`fÖr@ì×gÃNF$A.ÖLõιSA@3×r@:·\yF$A±'YɹSA GÙr@~ԤܓF$AÈÌ6g̹SA \×r@ë0HœF$A>æïE˹SA`Ör@ —íëžF$A kêʹSA`Ör@¦º³¸¢F$AôÜgʹSA@3×r@élÒ½¢F$AÜgʹSA@3×r@˜`€¤F$At6žÊ¹SA€Ör@×× „F$A`ŽϹSA`Ör@ÔÃLgXF$AijëÔ¹SA@3×qr@.×kgGF$Aþ}$€×¹SA …×r@ƒ?S3F$AÖ "°Ú¹SA \×r@¨ôŸ*F$A„OãEܹSA ®×r@Þ¬‹F$Aôª¬²à¹SA)Ør@‡†° F$A8«[:à¹SAÔr@KZ÷F$AS,÷Û¹SA pÑr@”B ÷F$A‡AµÛ¹SA pÑr@:#j†F$Aµ\¼yÛ¹SAÀõÐr@|ËF$AòͼYÛ¹SAÀõÐr@ɾŠ4F$AœYžtÛ¹SA€ëÑr@D¹ F$A/øåµÛ¹SA€ÂÑr@.Û›öE$AÝ•^ÚÞ¹SA …Ór@žoÙ‹éE$A.4Îà¹SAÔr@,íãE$AÍ×îá¹SA …Ór@üÖ ºÜE$Aû—„ä¹SAàzÔr@— ÔÓE$AÚG-Þç¹SA`fÖr@;žŠòÊE$A&°5åé¹SA××r@p­°¼E$Aá¦\aì¹SA××r@³; ¦ E$A]8ÀWð¹SA€=Úr@,2T–E$AÖë´Ðñ¹SA×Ûr@rÃAJiE$Aù]_h÷¹SA×Ûr@ ?Ó hE$AˆX ÷¹SA×Ûr@8¤_E$A¶×‡dø¹SA ®Ûr@¨Cï VE$AÇb+%ù¹SA \Ûr@§÷ŒQE$Aó¶Iºù¹SAà£Ür@ôŒ«TNE$AËWú¹SA`fÞr@wœ·«ME$A«Εú¹SA€Þr@;¶RîHE$AW3¸ü¹SAà£àr@ þ^EE$ACǘÒü¹SAà£àr@o6:d4E$AEzóÿ¹SA ®Ûr@=*R E$A74XˆºSAÜr@4ÒŠþD$Aj2gºSA€=Þr@*»ËëD$AC@ŠºSA@áÞr@ûJïÖD$A‰¿]Ÿ ºSAàzàr@Š““~ÀD$A?¤à ºSAàQàr@§ˆ‚K«D$A^RÖºSAÀÌàr@’=S–D$AÕéAºSA Gár@|°ªÆ€D$AQS%ܺSA@3ãr@æC¢hD$A"Ýj ºSAàzär@ÊPŽ QD$AÞÜ¥gºSA ®çr@ 9žFD$A\ S¿ºSA …çr@ J+ž3C$A?éj;ºSA€þr@Âí×q0C$AY Ì:ºSA€þr@†Î*7C$AWøM:ºSA@áúr@ºr…:C$AF¿>ï:ºSA@áúr@f¨A†RC$A›jB@ºSA \ÿr@Œ—²lKC$Aß¼ Ã@ºSA)s@ ¤>3C$A?éj;ºSA€þr@ 2¢€âQC$A`~óDEºSA@3s@;|JC$AI×CºSA …s@‹%ªQC$Aa CºSA@3s@¦k SC$A5u×ïBºSA@ s@sÆùÍSC$Agy\ûBºSA`fs@´»ÐñUC$AO°2CºSA`fs@‡WÐqXC$A8*DºSA`fs@މîv\C$A¦Ìm)EºSA€=s@$}‰[C$Auµ:EºSA€ëír@ñ†WC$A/®m‰EºSA pír@JÌ|UC$AÖ9³EºSA Gs@çzæHSC$Aûs‚‡EºSA€=s@2¢€âQC$A`~óDEºSA@3s@†ÃQÝfC$AGÍtPGºSAÀõs@§¼ëveC$AÝœGºSAÀõs@&@mâgC$AÜ7ÖFºSAÀõs@GÓHiC$An ¨#GºSAÀõs@†ÃQÝfC$AGÍtPGºSAÀõs@žkR͘C$AâràÈ.ºSA pír@…rû‡C$AÑÕ Õ,ºSA€ëír@êøvR‹C$AHÎTf,ºSA€ëír@$vK{žC$AûTúæ)ºSAàQìr@æ¨å”C$AÒÑÊ)ºSAàQìr@0é­C$AxX¶'ºSAàQìr@Ã"®C$A»]•Ð'ºSAàQìr@bÇkµC$A¡mä&ºSAàQìr@|ïžÅC$A‘ísË(ºSAt@3ër@ðæM¾C$A›½^Í)ºSA×ër@`…ñG¿C$A@së)ºSA×ër@1´hׯC$AF™qû+ºSA×ër@¶U©®C$A|Íš×+ºSA×ër@|Uaû›C$Açð\.ºSA pír@žkR͘C$AâràÈ.ºSA pír@~ÜÇèC$ATÅ÷0ºSAà£èr@`"‡áÏC$AMcœ-ºSAàQèr@Þ„D$AÑàš7'ºSAÀér@åéÅÑD$AËw"*ºSA`¸êr@~ÜÇèC$ATÅ÷0ºSAà£èr@wÀ•ÑD$Aäæ&)ºSA ®çr@rÊ‚êÎD$AÕTçæ(ºSA ®çr@샚ïÒD$AsÝ_(ºSA ®çr@RÖê'ÕD$A»~ñ(ºSA ®çr@wÀ•ÑD$Aäæ&)ºSA ®çr@øÜ„’CE$AÐXÞºSAà£är@|¸˜i5E$Aõ(SºSA`ær@±} 0êE$Aƒ±•2ö¹SA ™ár@£õf¿éE$AUûÈ%ö¹SA ™ár@U2µ|ýE$AVP‹ó¹SA€=âr@9¼E¿ûE$AnônVó¹SA€=âr@••ã/ÿE$Aí8˜âò¹SA€=âr@µ SíF$AÖ”¶ó¹SA€=âr@œp{ F$AFuoFò¹SA€=âr@Wþ<–F$A³Gôqò¹SA€=âr@{+: F$AJYF:ò¹SA€=âr@‰Äº F$A1d;£ò¹SA€=âr@Úç F$A7)Ûò¹SA€=âr@zKœüF$AÒ“/¬ó¹SA€=âr@èup F$A$ÏÝsó¹SA€=âr@ ôhF$A?Èåó¹SA€=âr@0ÊGÄF$AëQô¹SA€=âr@KŒF$A-žö¹SA@ ãr@Ò¦-‘ F$AJ)²Wö¹SA@ ãr@TÕùF$Aën§÷¹SA@ ãr@ŠyÜF$AÑ_“Òö¹SA@ ãr@Þb¸NùE$A®÷!õ÷¹SA@ ãr@ÑÚÞøE$A€AUè÷¹SA@ ãr@øÜ„’CE$AÐXÞºSAà£är@!’Eh½E$AgÔ(7ä¹SAࣈs@tËÉS½E$AëÑÌä¹uSAࣈs@ú¾bm½E$AöÌ÷ã¹SAࣈs@…cM¿½E$Af™¸Ùã¹SAࣈs@ŽTL?¾E$A~¼½ã¹SAࣈs@ýç@è¾E$Aâ=¥ã¹SAࣈs@°¾í¯¿E$AÛ¸ ’ã¹SAࣈs@ûÕR–ÀE$AiRƒã¹SAࣈs@î!ŒÁE$AfM¤{ã¹SAࣈs@ØêŒÂE$A’¹¸yã¹SAࣈs@/ÌŒÃE$AL®}ã¹SAࣈs@æ±´|ÄE$AÛ͇ã¹SAࣈs@çÜXÅE$ASáÌ—ã¹SAࣈs@JMÆE$Atë¬ã¹SAࣈs@ÀTæ¯ÆE$A2儯ã¹SAࣈs@³ Š ÇE$AmˆQãã¹SAࣈs@åû]ÇE$A1ˆ­ä¹SAࣈs@Þ~WmÇE$AéUÿä¹SAࣈs@[‹¾SÇE$Aº1ÿ:ä¹SAࣈs@ N ÇE$A d·Yä¹SAࣈs@ 1‘ÆE$AQj!€ ¤»ì.C$A%+Ñ:ºSA Gs@ª|b4JC$AvtÙ@ºSA)s@¥­”gOC$A)¼ØBºSAÀõ s@@¢æŸQC$A\¯{°BºSAÀ s@Jä&ªOC$Aæ'ÎBºSA … s@àÌšgMC$A.gòBºSA … s@=À{‹FC$A9^CºSA G s@èç2*JC$AÍñ·DºSA ® s@{—QC$AÀEºSA`¸ s@ï”éqIC$A.éíEºSA€= s@}«—¹IC$AuÌcFºSA€= s@;WâJC$AðÔOFºSAÀÌs@ß<¶¾KC$AÂGm‰FºSAÀÌs@áBY¯NC$A».*GºSA G s@Ñù%QC$A™ìãGºSA€Â s@ÆýŸRC$A‹‹`BHºSA`¸ s@ˆvNØSC$AØœÆxHºSA`¸ s@fhûŸTC$AóÑùkHºSA@3 s@†Ç ªeC$AÒ¨t€GºSAÀõs@2}¹CfC$AÖc“uGºSAÀõs@Œ±$†~C$AÖ-L´EºSA`fs@&4C$Aõ‡ú{DºSA@ #s@œØê×—C$Aü>”õCºSA€Âs@Äúí®œC$A a¢CºSAÀõs@æS™{³C$AäûBºSAÀÌlp= ×Ïq@Tú˶oX$A¾vç ·SA¤p= ×Ïq@ËäkÐnX$AÅÛ²F·SA33333Ïq@¶«È6wX$A¬iåY·SA)\ÂõÌq@ÂõPyxX$AÊ C ·SAáz®GÍq@eÇ_[X$A۵㲠·SA®GázÐq@<‰¬\X$AU”z ·SAö(\ÂÑq@¹u"y‰X$A#3›Ñ ·SAÂõ(\Ãq@˜…߉X$AJ) ·SAÂõ(\+r@_5ïî}X$A°@U ·SA= ×£pÁq@d‚á;]X$AÃÕ¸ ·SA…ëQ¸Òq@v“ ZWX$Aê{9« ·SA…ëQ¸Òq@Î’ì»QX$A0µm ·SA…ëQ¸Òq@]ž jPX$AÒðy ·SA ×£p=ºq@/Ý#PX$AÄzï ·SA ×£p=ºq@v±PôMX$A¬“Z ·SAHáz®Ïq@o vô6X$A*øà·SAR¸…ëÍq@Úà4X$A%•:R·SA33333Ïq@c˜5X$A抷SA{®GáÎq@&©}o4X$A_Ú·SAÍÌÌÌÌÈq@«{U¼3X$A‘sáy·SA\Âõ(Èq@m¾ß§0X$A¤­Ô·SA…ëQ¸Éq@ ¨y·SA`Îq@InaK]X$AkZç)·SA@3Ïq@Æ`È1^X$A†.‹·SA …Ïq@Úµ§Õ\X$Aó_·SA …Ïq@NFfRX$AR~·SA@áÎq@¨y–»W$A©“"WH·SA= ×£pr@ƒÊûõµW$Aæc‹F·SAR¸…ëýq@.è+)µW$A3^YªE·SA¸…ëQüq@ÆÀµW$AƒZªD·SAüq@Í !)·W$Aeš[ªC·SA)\Âõüq@ÔJ\»W$A‰ÄB·SA)\Âõüq@M>\ÂW$AÏ|A·SA\Âõ(r@þp)ÃW$Ajx‘½@·SA¸…ëQìq@;P×õÁW$A]Ï]A·SA= ×£pñq@®—z¼W$A…¦ö#B·SA ×£p=îq@ðM\¹W$A>~\ÊB·SAáz®Gíq@Lë!)¶W$AçŽ(—C·SAš™™™™íq@8™[\´W$A4ÝD·SA= ×£péq@)úõ³W$AÛíòÃE·SA…ëQ¸éq@½´W$A@6XªF·SA= ×£péq@o,Ê·W$A*<Š}G·SAfffffêq@œMd\ºW$A¨"WH·SAfffffêq@íW$A0Aè#O·SAq= ×£ìq@8šõ®W$AKI7O·SAìQ¸…ïq@þë+2003/09/06 è/IR;2005/09/01[Üà :ñ:ƒ4…d!!PÃŒ•ÂW$AUën3·SA4v«õÈW$Aï¿®û8·SA|ë 4v«õÈW$Aï¿®û8·SAHáz®ïq@øxÂÈW$AHâ8·SAö(\­q@œ†\¿W$A±uI•8·SAHáz®¯q@Ñí(ºW$A>ýB8·SA ×£p=²q@MgW²W$A¸¶å7·SA¤p= ×»q@«Ï&\£W$AUën3·SA ×£p=Òq@Œ•ÂW$ADÔ·»3·SA\Âõ(Ôq@+‰•ÂW$AŠOQÕ3·SA= ×£pÝq@Þ×(\¢W$Aä ¢3·SA= ×£pÝq@¬ÏW³W$A4ån7·SAHáz®çq@ðcî(¹W$A m}H8·SA®Gázìq@Èé(¿W$A6SIµ8·SAÂõ(\ïq@4v«õÈW$Aï¿®û8·SAHáz®ïq@þë+2003/09/06 è/LR;2005/09/01[Üà‚ ƒ!!PÃ2 (çW$APHê.·SAª_‘[X$AÚ•ûÜ2·SA|ëLéŠzèW$AÚ•ûÜ2·SA¤p= ×£q@Áã¼[óW$ALr‚È0·SA®Gáz¬q@ª_‘[X$APHê.·SAÈq@ ˆ”òW$AäÛŒ¯0·SAR¸…ëÕq@2 (çW$A7ã€È2·SA{®GáÞq@LéŠzèW$AÚ•ûÜ2·SA¤p= ×£q@þë+2003/09/06 è/KR;2005/09/01[Üà JaJ„‡$!!PÃj ”rW$AµËÛp1·SAäîõ™W$AÛ}Ä;·SA|ëäîõ™W$AÛ}Ä;·SA ×£p=æq@•]úõxW$Aæ_ D5·SA= ×£pÙq@NΖvW$A¡ˆ D5·SA®GázØq@ šd\uW$Aµ!q*5·SA= ×£pÙq@–rW$A¶‰?÷3·SA= ×£pÙq@G§ÆÂrW$A4`sj3·SA= ×£pÙq@ì“')tW$AÎò „2·SAìQ¸…×q@€"RÜwW$A†6Ç‚1·SAHáz®Óq@Œd…wW$AµËÛp1·SAfffffÂq@æÝôusW$A¨5“o2·SAÄq@j ”rW$AÞ_\3·SAÃõ(\Æq@Ôa–rW$Aü'+é3·SA ×£p=Æq@V2©tW$A2"Ã"5·SAfffffÊq@ѱ—vW$AöU5·SAfffffÊq@¢daÜxW$A%Âb5·SAfffffÊq@[3#©—W$Aúi¹b;·SA33333×q@äîõ™W$AÛ}Ä;·SA ×£p=æq@þë+2003/09/06 è/NR;2005/09/01[Üàƒ…4!!Pð”OªW$A|Qõ2·SA’pÂÊW$A’^ã®7·SA|ë ’pÂÊW$A’^ã®7·SA×£p= ¯q@¥úoÂÊW$A¤%}ˆ7·SA= ×£píq@ï@ÇW$Aô[}ˆ7·SA¤p= ×ëq@Ò’à(ÁW$A„µB7·SAìQ¸…ëq@Qû°õ»W$A*¨6·SA ×£p=êq@&p‚ªW$A|Qõ2·SAØq@°”OªW$AQÞ·û2·SAÂõ(\Ïq@©\¸W$AZƒæ6·SA¤p= ×»q@ÍÂ~»W$A+ÅKÕ6·SAÂõ(\·q@ßâ(ÀW$A@^än7·SAìQ¸…³q@"\ÇW$Av9}¨7·SA¤p= ׫q@’pÂÊW$A’^ã®7·SA×£p= ¯q@þë+2003/09/06 è/MR;2005/09/01[Üà éƒL †!!PÃ-àòŒbD$A7E#_¸SAüÊG¿¤D$A/Zî/¸SA|ë-àòŒbD$A/Zî/¸SA ×£p=jr@êzñŒcD$A‘‹!#¸SA¤p= ×+r@E)spD$A=<ö¿y¸SAfffffNr@9»7TD$A^Dõøp¸SA{®GáJr@ ¯DŒD$A¬µ‡i¸SA…ëQ¸Mr@;g‹òžD$A… Cƒa¸SA®GázNr@üÊG¿¤D$A÷REC_¸SA®GázNr@‘{Œ£D$A7E#_¸SAq= ×£Pr@Y‚d¿™D$A‹ßtöb¸SA{®GáRr@;ß÷%‹D$AN„Ô|i¸SAXr@Ä…Õò†D$A×GžIl¸SAìQ¸…[r@Ì~½¿€D$Aõeöp¸SAìQ¸…[r@ëYoD$A}üy¸SAö(\Âer@-àòŒbD$A/Zî/¸SA ×£p=jr@þë+2003/09/06 è/PR;2005/09/01[Üà„‡$!!PÃ0#(ö»W$A G·J·SAI®-\óW$A¥¤¯ÐR·SA|ë‚)À½W$A¥¤¯ÐR·SA\Âõ(àq@}V\ÕW$A4‚L·SA)\Âõäq@ãìõØW$A°«ÝL·SA¤p= ×çq@„0°ÂÝW$A”÷K·SAÂõ(\ëq@xÝ )ãW$AÑ‚OjK·SA= ×£pñq@<³)ëW$AÞ éK·SAR¸…ëõq@~&cïW$Al+×J·SAö(\Âùq@ e/\òW$AP}K·SAHáz®ûq@I®-\óW$A9²]K·SA®Gázr@Š‚û(ðW$A G·J·SAq= ×£r@ö)éW$AûЂýJ·SAáz®Gr@`A\âW$AtWéCK·SA33333r@QÎãõÜW$A8×K·SA¸…ëQr@â/ )ØW$AªÂNªL·SAr@ÁñõÓW$A‹´µpL·SA= ×£pr@0#(ö»W$AV£|½R·SA…ëQ¸òq@‚)À½W$A¥¤¯ÐR·SA\Âõ(àq@þë+2003/09/06 è/OR;2005/09/01[Üà qq… ‰!!PÃöÑYaD$AÔ³Y|¸SA–4"óÀD$Aäãq‰Ž¸SA|ë–4"óÀD$Aäãq‰Ž¸SA®Gáz\r@Ь!óÀD$AÅ riޏSAHáz®Wr@Ù>¡Y©D$Aäø Ã¸SAÃõ(\Rr@“ÅÀD$A­1D–Œ¸SA¸…ëQPr@”˜Ú‡‚D$APàߟ‹¸SA×£p= Wr@Ë}ÏYvD$AèâoЏSA…ëQ¸]r@NXÅoD$A-!j‰¸SA…ëQ¸]r@è¼ÓYiD$A æÏ‡¸SAÍÌÌÌÌ\r@seD$AÕæ£†¸SAìQ¸…[r@’ióbD$AЯÀ#…¸SAìQ¸…[r@fb&tD$AGþ¿|¸SA)\ÂõPr@˜:0órD$AÔ³Y|¸SAR¸…ëIr@%bD$Ap"„i„¸SA= ×£p=r@öÑYaD$AƒSƒ)…¸SA®Gáznr@}ônócD$A¢¿ç¯†¸SA…ëQ¸mr@}¢&hD$A‡ýåSA¤p= ×kr@4¶mónD$A]"Jv‰¸SA{®Gájr@úuD$AÅŸ{‰Š¸SA®Gázfr@6á`óD$AÛ”¬¼‹¸SA¤p= ×cr@>4îŒD$A±£Œ¸SAq= ×£`r@ËâÀ¨D$A0Ý ã¸SA…ëQ¸]r@–4"óÀD$Aäãq‰Ž¸SA®Gáz\r@þë+2003/09/06 è/QR;2005/09/01[Üàlibspatialite-4.3.0a/test/sql_stmt_tests/setendpoint9.testcase0000664000175000017500000000040712544707704021674 00000000000000ST_SetEndPoint() - TEXT Point :memory: #use in-memory database SELECT ST_SetEndPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 'alpha') 1 # rows (not including the header row) 1 # columns ST_SetEndPoint(GeomFromText('LINESTRING(0 0, 1 0, 1 1)'), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/sriddatum3.testcase0000664000175000017500000000024412544707704021325 00000000000000SridGetDatum() - DOUBLE SRID :memory: #use in-memory database SELECT SridGetDatum(1.0) 1 # rows (not including the header row) 1 # columns SridGetDatum(1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat18.testcase0000664000175000017500000000050612544707704022632 00000000000000normalizelonlat- out of range positive lat linestring :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("LINESTRING(120 140, 130 150)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("LINESTRING(120 140, 130 150)", 4326))) LINESTRING(120 40, 130 30) libspatialite-4.3.0a/test/sql_stmt_tests/isempty3.testcase0000664000175000017500000000024012544707704021017 00000000000000isempty - zeroblob :memory: #use in-memory database SELECT IsEmpty(zeroblob(200)) 1 # rows (not including the header row) 1 # columns IsEmpty(zeroblob(200)) -1 libspatialite-4.3.0a/test/sql_stmt_tests/fromgml40.testcase0000664000175000017500000000136012544707704021055 00000000000000FromGML - Polygon v2, poslist, broken :memory: #use in-memory database SELECT AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,0foo')) 1 # rows (not including the header row) 1 # columns AsEwkt(GeomFromGml('0,0 5,0 5,5 0,5 0,0foo')):0 (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/casttoblob2.testcase0000664000175000017500000000037112544707704021465 00000000000000CastToBlob() - BLOB :memory: #use in-memory database SELECT Hex(CastToBlob(x'0102fafb')), TypeOf(CastToBlob(x'0102fafb')) 1 # rows (not including the header row) 2 # columns Hex(CastToBlob(x'0102fafb')) TypeOf(CastToBlob(x'0102fafb')) 0102FAFB blob libspatialite-4.3.0a/test/sql_stmt_tests/dirfrompath2.testcase0000664000175000017500000000024412544707704021647 00000000000000DirNameFromPath - INTEGER :memory: #use in-memory database SELECT DirNameFromPath(1); 1 # rows (not including the header row) 1 # columns DirNameFromPath(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/normalizelonlat3.testcase0000664000175000017500000000041312544707704022541 00000000000000normalizelonlat- out of range positive long :memory: #use in-memory database SELECT AsText(NormalizeLonLat(GeomFromText("POINT(721 2)", 4326))) 1 # rows (not including the header row) 1 # columns AsText(NormalizeLonLat(GeomFromText("POINT(721 2)", 4326))) POINT(1 2) libspatialite-4.3.0a/test/sql_stmt_tests/collectextract10.testcase0000664000175000017500000000040112544707704022422 00000000000000Collection Extract - PointZ :memory: #use in-memory database SELECT AsText(CollectionExtract(GeomFromText("POINTZ(1 2 3)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(CollectionExtract(GeomFromText("POINTZ(1 2 3)"), 1)) POINT Z(1 2 3) libspatialite-4.3.0a/test/sql_stmt_tests/st_z3.testcase0000664000175000017500000000022212544707704020304 00000000000000ST_Z - text :memory: #use in-memory database SELECT Z("hello world"); 1 # rows (not including the header row) 1 # columns Z("hello world") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/makecircularsector22.testcase0000664000175000017500000000037012544707704023274 00000000000000makecircularsector21 - BLOB step :memory: #use in-memory database SELECT MakeCircularSector(0, 0, 100, 30, 60, 4326, zeroblob(4)); 1 # rows (not including the header row) 1 # columns MakeCircularSector(0, 0, 100, 30, 60, 4326, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/dissolve15.testcase0000664000175000017500000000052512544707704021246 00000000000000dissolve - LINESTRING :memory: #use in-memory database SELECT AsText(DissolveSegments(geom)),AsText(DissolvePoints(geom)) from (SELECT GeomFromText("LINESTRING(1 2, 4 1)") as geom) dummy; 1 # rows (not including the header row) 2 # columns AsText(DissolveSegments(geom)) AsText(DissolvePoints(geom)) LINESTRING(1 2, 4 1) MULTIPOINT(1 2, 4 1)libspatialite-4.3.0a/test/sql_stmt_tests/translate13.testcase0000664000175000017500000000107712544707704021414 00000000000000translate - Polygon XYZ :memory: #use in-memory database SELECT AsText(ST_Translate(GeomFromText("POLYGONZ((0 0 10, 10 0 10, 10 10 11, 0 10 11, 0 0 10), (5 5 12, 6 5 12, 6 6 13, 5 6 13, 5 5 12))"), 1.4, 3.9, 5.3)); 1 # rows (not including the header row) 1 # columns AsText(ST_Translate(GeomFromText("POLYGONZ((0 0 10, 10 0 10, 10 10 11, 0 10 11, 0 0 10), (5 5 12, 6 5 12, 6 6 13, 5 6 13, 5 5 12))"), 1.4, 3.9, 5.3)) POLYGON Z((1.4 3.9 15.3, 11.4 3.9 15.3, 11.4 13.9 16.3, 1.4 13.9 16.3, 1.4 3.9 15.3), (6.4 8.9 17.3, 7.4 8.9 17.3, 7.4 9.9 18.3, 6.4 9.9 18.3, 6.4 8.9 17.3)) libspatialite-4.3.0a/test/sql_stmt_tests/mbr4.testcase0000664000175000017500000000036112544707704020112 00000000000000MbrContains - Text + Point (error) :memory: #use in-memory database SELECT MbrContains("hello", GeomFromText("POINT(2 1)")); 1 # rows (not including the header row) 1 # columns MbrContains("hello", GeomFromText("POINT(2 1)")) # header (NULL)libspatialite-4.3.0a/test/sql_stmt_tests/geomtype30.testcase0000664000175000017500000000064712544707704021251 00000000000000geometrytype - GEOMETRYCOLLECTIONZ :memory: #use in-memory database SELECT GeometryType(geom), CoordDimension(geom), GeometryAliasType(geom) from (SELECT GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(4 6 4), POINTZ(3 3 29), LINESTRINGZ(4 6 0,7 10 0))") as geom) dummy; 1 # rows (not including the header row) 3 # columns GeometryType(geom) CoordDimension(geom) GeometryAliasType(geom) GEOMETRYCOLLECTION Z XYZ GEOMETRYCOLLECTIONlibspatialite-4.3.0a/test/sql_stmt_tests/makepoint2.testcase0000664000175000017500000000037612544707704021325 00000000000000makepoint2 :memory: #use in-memory database SELECT AsText(MakePoint(-71.1043443253471, 42.3150676015829, 4326)); 1 # rows (not including the header row) 1 # columns AsText(MakePoint(-71.1043443253471, 42.3150676015829, 4326)) POINT(-71.104344 42.315068) libspatialite-4.3.0a/test/sql_stmt_tests/atmyroll1.testcase0000664000175000017500000000027112544707704021172 00000000000000ATM_YRoll() - invalid angle :memory: #use in-memory database SELECT ATM_YRoll(ATM_Create(), 'a') 1 # rows (not including the header row) 1 # columns ATM_YRoll(ATM_Create(), 'a') (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/garsmbr4.testcase0000664000175000017500000000024112544707704020764 00000000000000garsmbr - out of bounds lat :memory: #use in-memory database SELECT GARSMbr("001RA") 1 # rows (not including the header row) 1 # columns GARSMbr("001RA") (NULL) libspatialite-4.3.0a/test/sql_stmt_tests/atmcreateyroll3.testcase0000664000175000017500000000073012544707704022360 00000000000000ATM_CreateYRoll() - valid double :memory: #use in-memory database SELECT Hex(ATM_CreateYRoll(15.0)) 1 # rows (not including the header row) 1 # columns Hex(ATM_CreateYRoll(15.0)) 000115BF4847DDE8EE3F3A00000000000000003A900693C17D90D03F3A00000000000000003A00000000000000003A000000000000F03F3A00000000000000003A00000000000000003A900693C17D90D0BF3A00000000000000003A15BF4847DDE8EE3F3A00000000000000003A00000000000000003A00000000000000003A00000000000000003A000000000000F03FB3 libspatialite-4.3.0a/test/sql_stmt_tests/maxm7.testcase0000664000175000017500000000066212544707704020303 00000000000000MaxM - Polygon XYZM :memory: #use in-memory database SELECT ST_MaxM(GeomFromText('POLYGONZM((0 0 100 10, 5 0 101 9, 5 5 102 12, 0 5 103 13, 0 0 100 10), (1 1 101 8, 2 1 102 12, 2 2 103 13, 1 2 104 14, 1 1 101 11))')); 1 # rows (not including the header row) 1 # columns ST_MaxM(GeomFromText('POLYGONZM((0 0 100 10, 5 0 101 9, 5 5 102 12, 0 5 103 13, 0 0 100 10), (1 1 101 8, 2 1 102 12, 2 2 103 13, 1 2 104 14, 1 1 101 11))')); 14.0 libspatialite-4.3.0a/test/sql_stmt_tests/geomfromkml7.testcase0000664000175000017500000000465412544707704021665 00000000000000From KML - POLYGON with interior :memory: SELECT AsText(GeomFromKML(" -122.43193945401,37.801983684521,0 -122.431564131101,37.8020327731402,0 -122.431499536494,37.801715236748,0 -122.43187136387,37.8016634915437,0 -122.43193945401,37.801983684521,0 -122.431885303019,37.8019316061803,0 -122.431762847554,37.8019476932246,0 -122.431719843168,37.8017374462006,0 -122.431841863906,37.8017213314352,0 -122.431885303019,37.8019316061803,0 -122.431714248439,37.8019544341044,0 -122.431592404659,37.8019694509363,0 -122.431548777661,37.8017591041777,0 -122.431671453253,37.8017428443014,0 -122.431714248439,37.8019544341044,0 ")) 1 # rows 1 # column AsText(GeomFromKML(" -122.43193945401,37.801983684521,0 -122.431564131101,37.8020327731402,0 -122.431499536494,37.801715236748,0 -122.43187136387,37.8016634915437,0 -122.43193945401,37.801983684521,0 -122.431885303019,37.8019316061803,0 -122.431762847554,37.8019476932246,0 -122.431719843168,37.8017374462006,0 -122.431841863906,37.8017213314352,0 -122.431885303019,37.8019316061803,0 -122.431714248439,37.8019544341044,0 -122.431592404659,37.8019694509363,0 -122.431548777661,37.8017591041777,0 -122.431671453253,37.8017428443014,0 -122.431714248439,37.8019544341044,0 ")) POLYGON Z((-122.431939 37.801984 0, -122.431564 37.802033 0, -122.4315 37.801715 0, -122.431871 37.801663 0, -122.431939 37.801984 0), (-122.431885 37.801932 0, -122.431763 37.801948 0, -122.43172 37.801737 0, -122.431842 37.801721 0, -122.431885 37.801932 0), (-122.431714 37.801954 0, -122.431592 37.801969 0, -122.431549 37.801759 0, -122.431671 37.801743 0, -122.431714 37.801954 0))libspatialite-4.3.0a/test/sql_stmt_tests/compressgeometry45.testcase0000664000175000017500000000121512544707704023025 00000000000000CompressGeometry - MULTIPOLYGON ZM :memory: #use in-memory database SELECT AsText(CompressGeometry(GeomFromText("MULTIPOLYGONZM(((10 10 77 7, 11 10 88 8, 11 11 99 9, 10 11 88 8, 10 10 77 7)), ((15 15 55 5, 16 15 56 6, 16 16 57 7, 15 16 58 8, 15 15 55 5)))", 4326))) 1 # rows (not including the header row) 1 # columns AsText(CompressGeometry(GeomFromText("MULTIPOLYGONZM(((10 10 77 7, 11 10 88 8, 11 11 99 9, 10 11 88 8, 10 10 77 7)), ((15 15 55 5, 16 15 56 6, 16 16 57 7, 15 16 58 8, 15 15 55 5)))", 4326))) MULTIPOLYGON ZM(((10 10 77 7, 11 10 88 8, 11 11 99 9, 10 11 88 8, 10 10 77 7)), ((15 15 55 5, 16 15 56 6, 16 16 57 7, 15 16 58 8, 15 15 55 5))) libspatialite-4.3.0a/test/sql_stmt_tests/ind_ch_m.testcase0000664000175000017500000000024612544707704021010 00000000000000Indian chains to metres :memory: #use in-memory database SELECT CvtFromIndCh(100); 1 # rows (not including the header row) 1 # columns CvtFromIndCh(100); 2011.6695:9 libspatialite-4.3.0a/test/sql_stmt_tests/casttosingle1.testcase0000664000175000017500000000026112544707704022025 00000000000000casttosingle - bad blob :memory: #use in-memory database SELECT CastToSingle(zeroblob(99)) 1 # rows (not including the header row) 1 # columns CastToSingle(zeroblob(99)) (NULL) libspatialite-4.3.0a/test/stazioni2_se.xml0000664000175000017500000000130112544707704015547 00000000000000 Railway Stations 2 Railway Stations - red star yet another simple SE Point Symbolizer star #ff0000 8.0 libspatialite-4.3.0a/test/check_endian.c0000664000175000017500000004175312544707704015172 00000000000000/* check_endian.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include #define LITTLE_ENDIAN_ENCODED 1 #define BIG_ENDIAN_ENCODED 0 #define LITTLE_ENDIAN_ARCH 1 #define BIG_ENDIAN_ARCH 0 int main (int argc, char *argv[]) { unsigned char buf_in[8]; unsigned char buf_out[8]; short shrt_val; int int_val; sqlite3_int64 i64_val; float flt_val; double dbl_val; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* testing short values [16 bit] */ buf_in[0] = 0xdf; buf_in[1] = 0xfd; shrt_val = gaiaImport16 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExport16 (buf_out, shrt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xfd) { fprintf (stderr, "endian INT16 (1): got 0x%02x%02x, expected 0xdffd\n", buf_out[0], buf_out[1]); return -1; } shrt_val = gaiaImport16 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExport16 (buf_out, shrt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xfd) { fprintf (stderr, "endian INT16 (2): got 0x%02x%02x, expected 0xdffd\n", buf_out[0], buf_out[1]); return -2; } shrt_val = gaiaImport16 (buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExport16 (buf_out, shrt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xdf) { fprintf (stderr, "endian INT16 (3): got 0x%02x%02x, expected 0xfddf\n", buf_out[0], buf_out[1]); return -3; } shrt_val = gaiaImport16 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExport16 (buf_out, shrt_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xdf) { fprintf (stderr, "endian INT16 (4): got 0x%02x%02x, expected 0xfddf\n", buf_out[0], buf_out[1]); return -4; } shrt_val = gaiaImport16 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExport16 (buf_out, shrt_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xfd) { fprintf (stderr, "endian 16 bit (5): got 0x%02x%02x, expected 0xdffd\n", buf_out[0], buf_out[1]); return -5; } shrt_val = gaiaImport16 (buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExport16 (buf_out, shrt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xdf) { fprintf (stderr, "endian INT16 (6): got 0x%02x%02x, expected 0xfddf\n", buf_out[0], buf_out[1]); return -6; } /* testing int values [32 bit] */ buf_in[0] = 0xdf; buf_in[1] = 0xec; buf_in[2] = 0xce; buf_in[3] = 0xfd; int_val = gaiaImport32 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExport32 (buf_out, int_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce || buf_out[3] != 0xfd) { fprintf (stderr, "endian INT32 (1): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -7; } int_val = gaiaImport32 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExport32 (buf_out, int_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce || buf_out[3] != 0xfd) { fprintf (stderr, "endian INT32 (2): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -8; } int_val = gaiaImport32 (buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExport32 (buf_out, int_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { fprintf (stderr, "endian INT32 (3): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -9; } int_val = gaiaImport32 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExport32 (buf_out, int_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { fprintf (stderr, "endian INT32 (4): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -10; } int_val = gaiaImport32 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExport32 (buf_out, int_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { fprintf (stderr, "endian INT32 (5): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -11; } int_val = gaiaImport32 (buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExport32 (buf_out, int_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { fprintf (stderr, "endian INT32 (6): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -12; } /* testing long values [64 bit] */ buf_in[0] = 0xdf; buf_in[1] = 0xec; buf_in[2] = 0xa8; buf_in[3] = 0x63; buf_in[4] = 0x36; buf_in[5] = 0x8a; buf_in[6] = 0xce; buf_in[7] = 0xfd; i64_val = gaiaImportI64 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExportI64 (buf_out, i64_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 || buf_out[3] != 0x63 || buf_out[4] != 0x36 || buf_out[5] != 0x8a || buf_out[6] != 0xce || buf_out[7] != 0xfd) { fprintf (stderr, "endian INT64 (1): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -13; } i64_val = gaiaImportI64 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExportI64 (buf_out, i64_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 || buf_out[3] != 0x63 || buf_out[4] != 0x36 || buf_out[5] != 0x8a || buf_out[6] != 0xce || buf_out[7] != 0xfd) { fprintf (stderr, "endian INT64 (2): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -14; } i64_val = gaiaImportI64 (buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExportI64 (buf_out, i64_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { fprintf (stderr, "endian INT64 (3): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -15; } i64_val = gaiaImportI64 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExportI64 (buf_out, i64_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { fprintf (stderr, "endian INT64 (4): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -16; } i64_val = gaiaImportI64 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExportI64 (buf_out, i64_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { fprintf (stderr, "endian INT64 (5): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -17; } i64_val = gaiaImportI64 (buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExportI64 (buf_out, i64_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { fprintf (stderr, "endian INT64 (6): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -18; } /* testing float values */ buf_in[0] = 0xdf; buf_in[1] = 0xec; buf_in[2] = 0xce; buf_in[3] = 0xfd; flt_val = gaiaImportF32 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExportF32 (buf_out, flt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce || buf_out[3] != 0xfd) { fprintf (stderr, "endian FLOAT (1): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -19; } flt_val = gaiaImportF32 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExportF32 (buf_out, flt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xce || buf_out[3] != 0xfd) { fprintf (stderr, "endian FLOAT (2): got 0x%02x%02x%02x%02x, expected 0xdfeccefd\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -20; } flt_val = gaiaImportF32 (buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExportF32 (buf_out, flt_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { fprintf (stderr, "endian FLOAT (3): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -21; } flt_val = gaiaImportF32 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExportF32 (buf_out, flt_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { fprintf (stderr, "endian FLOAT (4): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -22; } flt_val = gaiaImportF32 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExportF32 (buf_out, flt_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { fprintf (stderr, "endian FLOAT (5): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -23; } flt_val = gaiaImportF32 (buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExportF32 (buf_out, flt_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0xec || buf_out[3] != 0xdf) { fprintf (stderr, "endian FLOAT (6): got 0x%02x%02x%02x%02x, expected 0xfdceecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3]); return -24; } /* testing double values */ buf_in[0] = 0xdf; buf_in[1] = 0xec; buf_in[2] = 0xa8; buf_in[3] = 0x63; buf_in[4] = 0x36; buf_in[5] = 0x8a; buf_in[6] = 0xce; buf_in[7] = 0xfd; dbl_val = gaiaImport64 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExport64 (buf_out, dbl_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 || buf_out[3] != 0x63 || buf_out[4] != 0x36 || buf_out[5] != 0x8a || buf_out[6] != 0xce || buf_out[7] != 0xfd) { fprintf (stderr, "endian DOUBLE (1): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -25; } dbl_val = gaiaImport64 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExport64 (buf_out, dbl_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xdf || buf_out[1] != 0xec || buf_out[2] != 0xa8 || buf_out[3] != 0x63 || buf_out[4] != 0x36 || buf_out[5] != 0x8a || buf_out[6] != 0xce || buf_out[7] != 0xfd) { fprintf (stderr, "endian DOUBLE (2): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xdfeca863368acefd\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -26; } dbl_val = gaiaImport64 (buf_in, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExport64 (buf_out, dbl_val, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { fprintf (stderr, "endian DOUBLE (3): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -27; } dbl_val = gaiaImport64 (buf_in, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExport64 (buf_out, dbl_val, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { fprintf (stderr, "endian DOUBLE (4): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -28; } dbl_val = gaiaImport64 (buf_in, LITTLE_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); gaiaExport64 (buf_out, dbl_val, BIG_ENDIAN_ENCODED, LITTLE_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { fprintf (stderr, "endian DOUBLE (5): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -29; } dbl_val = gaiaImport64 (buf_in, LITTLE_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); gaiaExport64 (buf_out, dbl_val, BIG_ENDIAN_ENCODED, BIG_ENDIAN_ARCH); if (buf_out[0] != 0xfd || buf_out[1] != 0xce || buf_out[2] != 0x8a || buf_out[3] != 0x36 || buf_out[4] != 0x63 || buf_out[5] != 0xa8 || buf_out[6] != 0xec || buf_out[7] != 0xdf) { fprintf (stderr, "endian DOUBLE (6): got 0x%02x%02x%02x%02x%02x%02x%02x%02x, expected 0xfdce8a3663a8ecdf\n", buf_out[0], buf_out[1], buf_out[2], buf_out[3], buf_out[4], buf_out[5], buf_out[6], buf_out[7]); return -30; } spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_add_tile_triggers_bad_table_name.c0000664000175000017500000001430612544707704022356 00000000000000/* check_add_tile_triggers_bad_table_name.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; void *cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_add_tile_triggers_bad_table_name.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* create a minimal raster_format_metadata table (not spec compliant) */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS raster_format_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP raster_format_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "CREATE TABLE raster_format_metadata (r_table_name TEXT NOT NULL, r_raster_column TEXT NOT NULL, mime_type TEXT NOT NULL DEFAULT 'image/jpeg', bit_depth INTEGER NOT NULL DEFAULT 24)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE raster_format_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } /* add in a test entry */ ret = sqlite3_exec (db_handle, "INSERT INTO raster_format_metadata VALUES (\"mytable_tiles\", \"tile_data\", \"image/png\", 24)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT raster_format_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } /* create a minimal tile_matrix_metadata table (not spec compliant) */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS tile_matrix_metadata", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } ret = sqlite3_exec (db_handle, "CREATE TABLE tile_matrix_metadata (t_table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } /* add in a test entry */ ret = sqlite3_exec (db_handle, "INSERT INTO tile_matrix_metadata VALUES (\"mytable_tiles\", 0, 1, 1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT tile_matrix_metadata error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } /* create a target table */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS mytable_tiles", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP mytable_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } ret = sqlite3_exec (db_handle, "CREATE TABLE mytable_tiles (id INTEGER PRIMARY KEY AUTOINCREMENT, zoom_level INTEGER NOT NULL DEFAULT 0, tile_column INTEGER NOT NULL DEFAULT 0, tile_row INTEGER NOT NULL DEFAULT 0, tile_data BLOB NOT NULL DEFAULT (zeroblob(4)))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE mytable_tiles error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* test trigger setup */ ret = sqlite3_exec (db_handle, "SELECT gpkgAddTileTriggers(\"no_such_table\")", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Unexpected gpkgAddTileTriggers result: %i\n", ret); return -12; } if (strcmp (err_msg, "no such table: main.no_such_table") != 0) { fprintf (stderr, "SELECT gpkgAddTileTriggers unexpected error message: %s\n", err_msg); sqlite3_free (err_msg); return -13; } sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_add_tile_triggers.c0000664000175000017500000003413512544707704017403 00000000000000/* check_add_tile_triggers.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; void *cache = spatialite_alloc_connection (); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv ("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv ("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_add_tile_triggers.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf ("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv (env); sqlite3_free (env); #else /* not WIN32 */ setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv ("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv ("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesTable(\"test1_matrix_tiles\", 4326, -180.0, -90.0, 180.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesTable() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -3; } /* test the trigger works - several different cases here */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES ( 0, 0, 0, 0, BlobFromFile('empty.png'))", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected INSERT INTO 4 result: %i (%s)\n", ret, err_msg); return -4; } if (strcmp (err_msg, "insert on table 'test1_matrix_tiles' violates constraint: zoom_level not specified for table in gpkg_tile_matrix") != 0) { fprintf (stderr, "unexpected INSERT INTO error message 5: %s\n", err_msg); sqlite3_free (err_msg); return -5; } sqlite3_free (err_msg); /* create matrix level 0 and 4 */ ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesZoomLevel(0) result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -6; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4, 360, 180)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesZoomLevel(4) result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -7; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES ( 0, 0, 1, 0, BlobFromFile('empty.png'))", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected INSERT INTO 8 result: %i\n", ret); return -8; } if (strcmp (err_msg, "insert on table 'test1_matrix_tiles' violates constraint: tile_column must be < matrix_width specified for table and zoom level in gpkg_tile_matrix") != 0) { fprintf (stderr, "unexpected INSERT INTO error message 9: %s\n", err_msg); sqlite3_free (err_msg); return -9; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES ( 0, 0, 1, BlobFromFile('empty.png'))", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected INSERT INTO 10 result: %i\n", ret); return -10; } if (strcmp (err_msg, "insert on table 'test1_matrix_tiles' violates constraint: tile_row must be < matrix_height specified for table and zoom level in gpkg_tile_matrix") != 0) { fprintf (stderr, "unexpected INSERT INTO error message 11: %s\n", err_msg); sqlite3_free (err_msg); return -11; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES ( 4, 16, 3, BlobFromFile('empty.png'))", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected INSERT INTO 12 result: %i\n", ret); return -12; } if (strcmp (err_msg, "insert on table 'test1_matrix_tiles' violates constraint: tile_column must be < matrix_width specified for table and zoom level in gpkg_tile_matrix") != 0) { fprintf (stderr, "unexpected INSERT INTO error message 13: %s\n", err_msg); sqlite3_free (err_msg); return -13; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES ( 4, 6, 16, BlobFromFile('empty.png'))", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected INSERT INTO 14 result: %i\n", ret); return -14; } if (strcmp (err_msg, "insert on table 'test1_matrix_tiles' violates constraint: tile_row must be < matrix_height specified for table and zoom level in gpkg_tile_matrix") != 0) { fprintf (stderr, "unexpected INSERT INTO error message 15: %s\n", err_msg); sqlite3_free (err_msg); return -15; } sqlite3_free (err_msg); /* Check a proper INSERT */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES (0, 0 ,0, BlobFromFile('empty.png'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT error 21: %s\n", err_msg); sqlite3_free (err_msg); return -21; } ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES (4, 15 , 15, BlobFromFile('empty.png'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT error 22: %s\n", err_msg); sqlite3_free (err_msg); return -22; } /* check negative row / column numbers */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES ( 4, -1, 15, BlobFromFile('empty.png'))", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected INSERT INTO 23 result: %i\n", ret); return -23; } if (strcmp (err_msg, "insert on table 'test1_matrix_tiles' violates constraint: tile_column cannot be < 0") != 0) { fprintf (stderr, "unexpected INSERT INTO error message 24: %s\n", err_msg); sqlite3_free (err_msg); return -24; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles (zoom_level, tile_column, tile_row, tile_data) VALUES ( 4, 15, -1, BlobFromFile('empty.png'))", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected INSERT INTO 25 result: %i\n", ret); return -25; } if (strcmp (err_msg, "insert on table 'test1_matrix_tiles' violates constraint: tile_row cannot be < 0") != 0) { fprintf (stderr, "unexpected INSERT INTO error message 26: %s\n", err_msg); sqlite3_free (err_msg); return -26; } sqlite3_free (err_msg); /* try some update checks */ ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles SET zoom_level = 1 WHERE id = 1", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected UPDATE 27 result: %i\n", ret); return -27; } if (strcmp (err_msg, "update on table 'test1_matrix_tiles' violates constraint: zoom_level not specified for table in gpkg_tile_matrix") != 0) { fprintf (stderr, "unexpected UPDATE error message 28: %s\n", err_msg); sqlite3_free (err_msg); return -28; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles SET zoom_level = -1 WHERE id = 1", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected UPDATE 29 result: %i\n", ret); return -29; } if (strcmp (err_msg, "update on table 'test1_matrix_tiles' violates constraint: zoom_level not specified for table in gpkg_tile_matrix") != 0) { fprintf (stderr, "unexpected UPDATE error message 30: %s\n", err_msg); sqlite3_free (err_msg); return -30; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles SET tile_column = -1 WHERE id = 1", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected UPDATE 31 result: %i\n", ret); return -31; } if (strcmp (err_msg, "update on table 'test1_matrix_tiles' violates constraint: tile_column cannot be < 0") != 0) { fprintf (stderr, "unexpected UPDATE error message 32: %s\n", err_msg); sqlite3_free (err_msg); return -32; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles SET tile_row = -1 WHERE id = 1", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected UPDATE 33 result: %i\n", ret); return -33; } if (strcmp (err_msg, "update on table 'test1_matrix_tiles' violates constraint: tile_row cannot be < 0") != 0) { fprintf (stderr, "unexpected UPDATE error message 34: %s\n", err_msg); sqlite3_free (err_msg); return -34; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles SET tile_row = 1 WHERE id = 1", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected UPDATE 35 result: %i\n", ret); return -35; } if (strcmp (err_msg, "update on table 'test1_matrix_tiles' violates constraint: tile_row must be < matrix_height specified for table and zoom level in gpkg_tile_matrix") != 0) { fprintf (stderr, "unexpected UPDATE error message 36: %s\n", err_msg); sqlite3_free (err_msg); return -36; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "UPDATE test1_matrix_tiles SET tile_column = 1 WHERE id = 1", NULL, NULL, &err_msg); if (ret != SQLITE_CONSTRAINT) { fprintf (stderr, "unexpected UPDATE 37 result: %i\n", ret); return -37; } if (strcmp (err_msg, "update on table 'test1_matrix_tiles' violates constraint: tile_column must be < matrix_width specified for table and zoom level in gpkg_tile_matrix") != 0) { fprintf (stderr, "unexpected UPDATE error message 38: %s\n", err_msg); sqlite3_free (err_msg); return -38; } sqlite3_free (err_msg); /* test trigger setup, bad table type */ ret = sqlite3_exec (db_handle, "SELECT gpkgAddTileTriggers(0)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "unexpected SELECT gpkgAddTileTriggers(0) result: %i\n", ret); return -100; } if (strcmp (err_msg, "gpkgAddTileTriggers() error: argument 1 [table] is not of the String type") != 0) { fprintf (stderr, "unexpected SELECT gpkgAddTileTriggers(0) error: %s\n", err_msg); sqlite3_free (err_msg); return -101; } sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_virtualtable2.c0000664000175000017500000010164212544707704016506 00000000000000/* check_virtualtable2.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Ahmadou Dicko Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #ifdef _WIN32 #include "asprintf4win.h" #endif int do_test (sqlite3 * db_handle) { #ifndef OMIT_ICONV /* only if ICONV is supported */ char *sql_statement; int ret; char *err_msg = NULL; char **results; int rows; int columns; ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest USING VirtualShape(\"shapetest1\", UTF-8, 4326);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_get_table (db_handle, "SELECT RegisterVirtualGeometry('shapetest')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -3; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -4; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); return -5; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 < 20;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -7; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -8; } if (strcmp (results[3], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); return -9; } if (strcmp (results[4], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -10; } if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -11; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 <= 19;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -13; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -14; } if (strcmp (results[3], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); return -15; } if (strcmp (results[4], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -16; } if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -17; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 = 20;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -19; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -20; } if (strcmp (results[3], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]); return -21; } if (strcmp (results[4], "20") != 0) { fprintf (stderr, "Unexpected error: integer2() bad result: %s.\n", results[4]); return -22; } if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -23; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 > 2;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -24; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -25; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -26; } if (strcmp (results[3], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees2 bad result: %s.\n", results[3]); return -27; } if (strcmp (results[4], "20") != 0) { fprintf (stderr, "Unexpected error: integer4() bad result: %s.\n", results[4]); return -28; } if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -29; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase2 >= 20;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -30; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -31; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -32; } if (strcmp (results[3], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees3 bad result: %s.\n", results[3]); return -33; } if (strcmp (results[4], "20") != 0) { fprintf (stderr, "Unexpected error: integer5() bad result: %s.\n", results[4]); return -33; } if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -34; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 < \"p\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -35; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -36; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -37; } if (strcmp (results[3], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]); return -38; } if (strcmp (results[4], "20") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -39; } if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -40; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 <= \"p\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -41; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -42; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -43; } if (strcmp (results[3], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]); return -44; } if (strcmp (results[4], "20") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -45; } if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -46; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "BEGIN;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "BEGIN error: %s\n", err_msg); sqlite3_free (err_msg); return -47; } asprintf (&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 > \"p\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -48; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -49; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -50; } if (strcmp (results[3], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); return -51; } if (strcmp (results[4], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -52; } if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -53; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "DELETE FROM shapetest WHERE testcase2 = 2;", NULL, NULL, &err_msg); if (ret != SQLITE_READONLY) { fprintf (stderr, "UPDATE error: %s\n", err_msg); sqlite3_free (err_msg); return -54; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "ROLLBACK;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "ROLLBACK error: %s\n", err_msg); sqlite3_free (err_msg); return -55; } asprintf (&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 >= \"p\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -56; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -57; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -58; } if (strcmp (results[3], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); return -59; } if (strcmp (results[4], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -60; } if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -61; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 = \"windward\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -62; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -63; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -64; } if (strcmp (results[3], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); return -65; } if (strcmp (results[4], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -66; } if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -67; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID = 1;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -68; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -69; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -70; } if (strcmp (results[3], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); return -71; } if (strcmp (results[4], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -72; } if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -73; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID < 2;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -74; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -75; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -76; } if (strcmp (results[3], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); return -77; } if (strcmp (results[4], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -78; } if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -79; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID <= 1;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -80; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -81; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -82; } if (strcmp (results[3], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); return -83; } if (strcmp (results[4], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -84; } if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -85; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID > 1;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -86; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -87; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -88; } if (strcmp (results[3], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]); return -89; } if (strcmp (results[4], "20") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -90; } if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -91; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2, AsText(Geometry) from shapetest where PKUID >= 2;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -92; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -93; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -94; } if (strcmp (results[3], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[3]); return -95; } if (strcmp (results[4], "20") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -96; } if (strcmp (results[5], "POINT(3482470.825574 4495691.054818)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -97; } sqlite3_free_table (results); asprintf (&sql_statement, "select PKUID, testcase1, testcase2, AsText(Geometry) from shapetest where testcase1 LIKE \"wind%%\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -98; } if ((rows != 1) || (columns != 4)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -99; } if (strcmp (results[0], "PKUID") != 0) { fprintf (stderr, "Unexpected error: header uid bad result: %s.\n", results[0]); return -100; } if (strcmp (results[1], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header bad result: %s.\n", results[1]); return -101; } if (strcmp (results[4], "1") != 0) { fprintf (stderr, "Unexpected error: windward PK bad result: %s.\n", results[4]); return -102; } if (strcmp (results[5], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[5]); return -103; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT DropVirtualGeometry('shapetest')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -104; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -105; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); return -106; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest2 USING VirtualShape(\"shp/merano-3d/roads\", CP1252, 25832);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -107; } ret = sqlite3_get_table (db_handle, "SELECT RegisterVirtualGeometry('shapetest2')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -108; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -109; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); return -110; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT UpdateLayerStatistics('shapetest2')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UpdateLayerStatistics error: %s\n", err_msg); sqlite3_free (err_msg); return -111; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "UpdateLayerStatistics Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -112; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "UpdateLayerStatistics Unexpected error: header() bad result: %s.\n", results[0]); return -113; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT DropVirtualGeometry('shapetest2')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -114; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -115; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); return -116; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest3 USING VirtualShape(\"shp/merano-3d/points\", CP1252, 25832);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -117; } ret = sqlite3_get_table (db_handle, "SELECT RegisterVirtualGeometry('shapetest3')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -118; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -119; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); return -120; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT DropVirtualGeometry('shapetest3')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -121; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -122; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); return -123; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest4 USING VirtualShape(\"shp/merano-3d/polygons\", CP1252, 25832);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -124; } ret = sqlite3_get_table (db_handle, "SELECT RegisterVirtualGeometry('shapetest4')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -125; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -126; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); return -127; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT DropVirtualGeometry('shapetest4')", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -128; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -129; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); return -130; } sqlite3_free_table (results); /* final DB cleanup */ ret = sqlite3_exec (db_handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -131; } ret = sqlite3_exec (db_handle, "VACUUM", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VACUUM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -132; } #endif /* end ICONV conditional */ return 0; } int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* testing current style metadata layout >= v.4.0.0 */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -2; } ret = do_test (db_handle); if (ret != 0) { fprintf (stderr, "error while testing legacy style metadata layout\n"); return ret; } sqlite3_close (db_handle); spatialite_cleanup_ex (cache); /* testing legacy style metadata layout <= v.3.1.0 */ ret = system ("cp test-legacy-3.0.1.sqlite copy-virt2-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot copy legacy v.3.0.1 database\n"); return -1; } cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 ("copy-virt2-legacy-3.0.1.sqlite", &db_handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = do_test (db_handle); if (ret != 0) { fprintf (stderr, "error while testing legacy style metadata layout\n"); return ret; } sqlite3_close (db_handle); spatialite_cleanup_ex (cache); ret = unlink ("copy-virt2-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot remove legacy v.3.0.1 database\n"); return -20; } #endif /* end ICONV conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/tile101.jpeg0000664000175000017500000001512612544707704014454 00000000000000ÿØÿàJFIFÿÛC  !"$"$ÿÛCÿÂ"ÿÄÿÄÿÚ þœ=ž  */o_ÉgÓæùܽ[òVý?Kç}n==]¼>FýéñT'}3Ϫí|½Ï-=/' Ø€@_óGâòtù=—Å®]ç^x}/Ñú÷óŒÙiŠfÓ5RÊÓ6€Q à÷|Ÿ?lõtù½s¼úûóÖÏ¥ÁfM¦WlÐ,©bÉ@°S?3Ýó>§ÙußÁgSîyƒpX–‘( D°¤—Lm`@¨¤%_ƒÕ›éöú3¯œ7%D¡@"…–T” <ïóü}~®õó  •@E ”•%•·Íšõ¼´ôÏ4O[‡xJPJI™©«KJI@…VY®Üe d(PIJ€”J¤5žšÆøÞ¼®f³Úo§—×ä͸ۯ.vÈÕߣ:Î}N=þxôùAD.½9uòßLÆüúÝ9qöæÉ¬Üï§.œâo³}±®]¥Çi©Û7Ì=>PJ9w–Yu¼jkc6ä©mIs/.˜Þ鯵Ó9n\ô–t—ùê;sÖs|ƒÕå›Ç^}±tÆÚš—J–K Ä3ñ³WŽìÜÍ­7s|ÛsÖ{ÜÜëLޏ`ãq;qêç½a×–s¾Úç9uë®v^ØÈÔÅ7¼n\pëÃY×\R9ô³¦³¬éÏ¥1ŽÜMÀ¸’ÏÿÄ(! 0"1@A2BC`ÿÚð~S­a%4õNj÷IÏMz|Š–Öak¡Ê TÇW¦¦y?"˜*­S€L¦™J £%ä#P åyºãp¨WÙƒP‚ÓÁTZ?¦~‰ª)»½1˜]†° ( € pÕ{"@8¾SîkC| c\ËzoŒ²›íc¨@,#ÛÂ=¿Û 2ÖçÀî!P-ß_éd„‚¿¬p{âù†)ÑüÒ€@Ãòòiˆ íâ{ÇÈÁ§@gÄösz©¦’GüùçrË­CÓCä‡Ì= ®á"@q^üîæ¨éò`í1cÿ#²7]×åŸ^M>?Z¶œ·ê)ÔÊ‚TIzæî­Z “XÐxZÒWÖW֬Šx´ÚÃŒ£±çxì«6±ùä¨|š­ÜÖ N‡aÐl.µ;Ù…<ˆS$Œ ÅUË»˜muOÆà#Q Ú"%N… Å9ÒZ%èÝÐæ:Òøe8gV6F ‰Õ¨jÌhU¨4¡L'™]”èÜ/zŠ O!ÖN̨Ô(CB6ŽügXYG ¸RŽ£aÛïœhÜNèã(©AœˆÑ»½p îE‚: avÜH™j B¦ÍW!HRÕ!Ò-W58…!HW5: )j–«š¥¨–© Z¤"à¤/ÿÄ# !01QAPÿÚ?Ðß)À‚«>“)Ì;[ÂúÐh “o• änøã+Ò‰žñv,øÃ$§3½¯†Çðcx âÚ ¤¦Ê屬%P,~ÕR`îS=µ³Ô÷@¹è?óªpš$Û)¯Œ)´‰TM9*¡ “D Yâ÷ÏâÊ ö€‹¸ün§¦º.:?ÿÄ$ !0@A"#Q1ÿÚ?èªÒæÀÚSžZxZ}UG>ÓÎ0¡B…U¥í:™ýOi BÞ »k˜¾™+OI®ù€ŽÝk½->Õ>“ wj̺k@ï©Oì»É… Ä2—Ьôñ˜R-í½â'’VkÚ{#è9Øþ ½mwè+Qds¥yêKÙ•„µ¶ï˜Q²¶P(Qè ¹ì•í‰_˜S³y¯CqjÙoŠa·è¶ì[Ý9\ì€á¸büêô‹hZ&Ø›xõÎ…]‚ƒ~§„´.Ãy„³'^/Š@ælK[zG ƒ†c6”meæL.çcTÎsâS¥žzߣÇ'¢ý)ôL>…u^}'Z–­Ÿ‰¸~îe[º—{~`²åÌðÏþþÌ®зÓ](‹ãÌä窵¯¥ÛÞslu_Ô06,8ƒ‡£:ÓË„5Æl‡nñÜ… Oê0s¨Êñí2Ò¶$ã_á‹tŒ1¨3y=,®7í)ÜyLhï¢X$âaÛöV©Úƒ²[e²ø†ƒˆðf6Ö²*ãöÕNÎY`ÝçMº Zˆl÷#Æ%è³öœŸU¹ÉP8-f+‰ö¨À²±´U™¶$J±Ìªêªî° "¯s¿â0Ò-¾¥ßd²ç3e£Œ7…UÅ)­ór¦æâ+]Ocx>l4é0ŸŽ˜+;K‹ˆªèh£Š¶Ñ›Ü¶QÚSâèlrV™pBß¼¸3ÏMÚ±ìÊÑY[ÌtÜZ ÒA”¨ «CBVVÄjB÷›‘‚ÞñÌÁ/2ˆMâÚ5™¼{È\¸CB2¥Ç0Nb± —¨â„SZÔ-×GhVkn#\ÊŒ+ŽDäÚ/N"»ŠƒŒ`Ëé¾WtöŠä@åE­£ K%Mˆv=æ+î7iºí–BìGCB—Ãi³K‚fÄ˺|éÍJ{9‹{£˜ÁÌî›fðøéh½¢êBt •ÒPßÙ m *LÁo0… ¥iÚ ºx}£¥:•*m«hfyx•r‰Ì •¥è8êÏxSJ•©hw7DÄLʘ¦nmŽú\ãKri vÐþAÅš^ŠYõ M“t³xB<âgmidß.ØiÆ•‡æ–;/Þl)÷žÞx»»A?í?Ö‡÷¡ýiþŒìMýþšn¹ÿ´§Ÿ½/t?½éMð/ÞUæ÷‡ö¡ý©þ”?µ+~ù—÷AÝ?ÜŸÓO÷§ÿÚ Ë Á@QyÕ 8Eï(H… 6P¡7ÃÎMì4¡·7Àá0×PQ'Ä%1FqY1` H— @"½‡àˆÀD™@ ‚ @€ ¤I–|¿¡ŒD‘Þ0Ä4ÀˆpâA …QLÀ2¿Ê€Íîú„ û7ìø$_Iað«ˆå 2½ù÷x7:ÅgñÄš<0•¥1åaÓ£…U¡#÷íwÑà‰'_˜º¥»qÅg³ÿÄ! 1A0Q@aÿÚ?¾Á¸€eÛ¤ÝXzµ‹ùƒ°£¹¡#ØBQ(¬œÍ¯Ø‹‚Õ˸T¢QÀîQác†“ØŠÜÔ5À¯y @î½øû5àÈ}‡ôV*W Êû3Ô]Ÿ ½JHE¶&’ PAÖ<ÆÇÈ©U¹ïùÂ.TbÙw]fçù`~Ëi—ÅQq) ÙC´AÈ# Cˆ…DZ¨A»hëQ(†á¬Óƒ!=KÍ  CQÎÑPàµ;îV§PÅÄøÄF]¦^E·c.\ÿÄ#! 1AQ0@aq¡ðÑÿÚ?Ï<˜û-É7xÀOõâ&Ý«r4üÀ&J»fÃÜÚÚñëyÎ ·ÔóV_°p ›»¿a|Ï÷ýÕÓ^ýÁOcy'~'nü2þ±ð~î7Ã"Í.þ?Qü¬}Øû“öÕ¥…Ÿœ_¼Ÿ~t±ùƒ8/˜¢x}CIw¶M“8Cv¤’qêÉ–Æ·ýX'¨ ųÔ÷ß:àó±0÷ è°z${e»Fï=Ùð$uow¹²ûÛbêÉ‚Éâët CÀ_ÿÄ'!1AQaq‘¡ ±ÁÑáðñÿÚ?Ví[–½±+vÜNí¾â·vË[[[¶à·vßríw™mÝ·-wmÅwmËrV+wlUvÜ"eXYk`ð‚ ïˆcLÙpYͲÀÌ“f˜9ÿ½!ÖfYË8Ƕ<$eÏY]Æb”•Z‚ð%Ù’uóU>²« ²ùܬÂwAr¬q_™˜Â¥=ñ Šž í*^e|Æ„ Õâ08{Ü¢¬/Yß´¦Ä Ë2İ.¬n¿EgÆHëPÒ¡u”¹c­/Ö}ñùb.Uq\]T°& ¡µW÷¬f>2ø¯‚™*¹ÌKÚmCÕËì‚FµÑ*>sQ}!¨YÐSR« ¹%Sø"¼^ïo虨*mÅc_D8¼mèâ-!L®wËÆúÂ5“NW¿i•¢¹"cÞªN•ÌÉ®–×}D¥,SeäðaÜnŸ ~F%ÚmúD)_‡wq¸oô3^b0‹P·ÅfjbZÐWâÖÖ—7³h'ÊA§9å¿í”´Vöíò9ðç%ÍmôšP£Q[aíÒq˜êw¯,=Xµk›^(°P2µÄD°†_úæuT-åR½,áÿ’ÂÆ7qbfüÞg§î}K¤P˜ö&D¼f9!ádžfÙñí.§>æa´(6R‰õÌ*µF«Óð@Q5SÛþ©WB·eWìB€@Mž,ºñÌæ2ÆÌ’‹×Ìv¢i…pT"׃$Œ%Oi|JÏ’`óP|_˜38ð’ëÃá@ăpŒqä˜L$Áf'eÆ:¸8ƒ1zŽa.¥žT¼Æ£¨bY/Θâq˜JÌc½N!ˆ,–ñÎ<8UÔ%fl”‡5 Ãê -B²ù”áœfh…ø¼Ôw©Ä1=о˜ŽÜ·LÁ/&ÉécaDXÖœ5S‚ø5±¬ê¯ê9²î+xo} ^§7r°º[[/ñÃÒ*I±}Ï¿â?‘¶fª±)x`'—G‹r1–Sñ)0ÕÔ"0^PJV®g“ܧ|0S)é¹Ú˜_#q¾¥¯™ž¥·vÅqy—êË{ĶðË{–êÜË{–Ýf[Ü· î[Ã/Ö[µ–™¶[õcϪ«Ô[¸T!{¿ÞYorÞÙnÜK{ÄyŠÆÞeûãË×—õk˜N|˜´¼ñˆ$ aLÿ°v)׋†A¸n>3s¡Nâø¼øq1âqsŸ éäÊøâ¢än!.Vc¨ŒÓðçHd§3$(&¦©‹©Tø©Ï7üLÀÆ_çæfÝJ—01õ ô3öÃÂÚY4æj@ ÉܬºòmŒÃâç¼w B0e›‚Ö‹ÜAí.SB¢Šj˜GŸWÄ~¡PˆZÆ•*`¡•‹z†£«\ în:Ü$švJÄöŒÀ JïÚW‚¯ð5åq€Û¢e4ð—ˆ.ØÃ,|ÜTÊAâ¦q–yÀަ‘&ê/UCt”«tL²­*mîT,æÝ1¨ºF(Ú3* zÇÛ+K_X¯ECÝhÁP '„O”à„ˆ!í3úCec¬R¯˜XÆZ`x1žE<_€¦fK„ܯÈRÕXE¥YX…‹WÚD9pKä¶T°Ø¸«Ž@TI†$3ñÅ4Ç:fÁï2pð"bqæãTΠ][ÜÂbÙ‰kæGô" mCó3Éu:‡Ø"ºTÚ iqÉ/4é‰ 5ë.¦ 1R’ ¸lRl”„·5uc¨’ ˆd3CÞkˆE¢Ù@%Œ_0”•åÛÔ)µ­¯1 ˆÑ6ದ¢u ¬Äžî*^Ò¤élÀ³,1Aé¼ÁpZ³YBÕ!* ,+ªçPÐo ûJfí¾ó-Á¯DÍj½.ê(,í(;cÅs•ÀÍe¯Rw8„YŒvǰóÓ3¶7׌ـd™ ㈵Z;î¥D²oŒAÇfå!–¦2‰Rƒ4¨´Š |@BÃFûâ:?2‹¶-Ehµ(ÇæU©L ÞÃi›·ô—T½8ƒ€üB$È–;[‰eÓØË›7- ¤t,)’ç3flgÔ[˜—qy€Waµ¨Ý?"æa?\RäŒ4±)K-‡Â…Ú¹ŠSÔ3AÔ<&óWmÄ6ñ(„2˜R­Á\sá#._á?r÷ƒä—Œá˜9. á-ÌAÄñ,eàX£LîÃF*. :TÁ€Ä½®€¶\¯’T¹ ˆ‘|ÅK»{GJsÄv;ˆòK£qýÌ ²›S9(”¯ ƒæ^®]–> ïQ1öòn1À]î ÒŸixÃZ–Nù0ï;—¸o>'¶ã+d-v2¶\]Ç ÅFVlðä–Žfàw–RìÄÂ$>æð?‹¡õŽ<Ë"âU·RJ`0Ý*ç¯ÌÈ–b –ÆÈ*q0{”Ú\xù‹á±7HÖØŠúu²ˆA}%¨¡—ÍçÒ;ÅG ¹‰r¶Xn$‹úJ–³û@w—0M‚%œ–&Åó)¸"Z².aIÁ-ì÷"&¶VAG$¶î3/™¢bŽì¿q\NŒ¿:,àà™áẸkW2Ù^rãè–Øå˜†%”¨—UÍÀ믉`±Äq¸25Šá*æÐ b§NAã_û¤jåcñ³èJZ~Œ£ƒ¯¯þŒ?(Bµø°g/¶\¡:¬¢øÅ'ÙÖ?‡ ‰÷@Ô œcŒõçø¼Aþ<¢¿Bïl^¹G¬Ò5ôBÛVœáÑW¶ÿÿÙlibspatialite-4.3.0a/test/WritingSQLTestCase.txt0000664000175000017500000002021512544707704016621 00000000000000Building a SQL statement test case This probably requires that you're using the "autoconf" build system at the moment. This is the case if you're running on Linux or some other Unix variant, including Mac OS X. It is the case for some kinds of Windows builds too (using MinGW / MSYS). I assume that you're mostly OK with building from fossil. If not, start at http://www.gaia-gis.it/gaia-sins/about-fossil.html. There are detailed build instructions linked off http://www.gaia-gis.it/gaia-sins/ for each major platform. Make sure you have all the dependencies. It is a bit of work but it will pay off in the long run. Once you've got that far, its time to start with the testing. Step 1. Just get the tests building. If you're in the build directory (i.e. where you ran the "./configure" and "make" steps), you should be able to run "make check" and have the tests build and run. Towards the end, it should report something like: ============================================================================ Testsuite summary for libspatialite 4.3.0-devel ============================================================================ # TOTAL: 83 # PASS: 83 # SKIP: 0 # XFAIL: 0 # FAIL: 0 # XPASS: 0 # ERROR: 0 ============================================================================ If any of them fail, please let us know ASAP. Step 2. After that works, its time to set up the coverage testing. Obviously we want to understand which code isn't being tested, then write a test to check that code, and finally make sure that the code is being tested. Fortunately, there are nice tools to check which code is being run. On Unix / Linux, you should have no problem obtaining "gcov" and "lcov" - they're probably available using your package / build system. Clean up the build: make distclean and then run configure with the --enable-gcov=yes option: ./configure --enable-gcov=yes You can add in any other options for configure at the same time (just as you did for the initial build). Then build as normal: make check You don't need to install (and probably don't want to install this version). Then zero out the coverage numbers: make coverage-init and build the tests: make check and finally do the coverage summary: make coverage At the end, you should see something like: Writing directory view page. Overall coverage rate: lines......: 64.9% (64946 of 100079 lines) functions..: 16.4% (218 of 1329 functions) branches...: 8.2% (1929 of 23468 branches) Step 3. Find some untested code. The results of the testing are converted into nice HTML, which is in the covresults/ directory. Point your web browser at covresults/index.html. Untested functions are the most important, then untested branches. Don't worry too much about untested lines. The colour coding should help. Step 4. Decide to do something about it. This is really the only hard part. Step 5. Think about how to test the code using SQL. Lets say you notice that the fnct_math_floor() function isn't being tested. [It is in src/spatialite/spatialite.c if you're looking for it]. Now further inspection shows its being mapped to the SQL floor function using: sqlite3_create_function (db, "floor", 1, SQLITE_ANY, 0, fnct_math_floor, 0, 0); So something like "SELECT floor(3.2);" would give us a test case. However libspatialite doesn't include the command line tools, so we have a simple test harness in the test directory called "check_sql_stmt". It basically loads test cases from a directory (test/sql_stmt_tests/). Any file ending with .testcase will be checked. A quick overview of the format: * anything after a # character is a comment. Line 1: the name of the test Line 2: the database file to use. ":memory:" is usually the best option, but you can load a pre-existing database if you need source data. Line 3: the SQL to run. Line 4: the number of rows of results you're expecting (not including the header row) Line 5: the number of columns of results you're expecting. remaining lines: the results, one line per cell. So lets write such a file: floor(3.2) # you can use the SQL if you're not feeling imaginative. :memory: SELECT floor(3.2); 1 # rows 1 # columns floor(3.2) # this is the header row 3.0 # this is really the result and save it (in test/sql_stmt_tests/ - I called mine floor32.testcase, but you can use anything that doesn't already exist and ends with .testcase). Now when you run "make check" you should see your new test being run, marked by an entry just above the PASS: check_sql_stmt that looks like: Test case: floor(3.2) [It won't change the total number of test cases reported by "make check" because that is just the number of unique programs that were run, and this is an extra test file within an existing program] Step 6. Re-run the coverage programs: make coverage-init && make check && make coverage and check the results with the browser. You should now see some green lines in fnct_math_floor. However you might notice that there are still some red lines (and red - and # marks on the left side, which indicate branches not taken). We can see that we're testing the case where we have SQLITE_FLOAT input, but not integer or some other inputs. Step 7. Write another test file: floor(integer) # integer input - this is just the name remember :memory: SELECT floor(3); # the SQL to run 1 # rows 1 # columns floor(3) # this is the header row 3.0 # this is really the result Save it, again in test/sql_stmt_tests/ - I called mine floorint.testcase, but anything will do. Then run the tests again: make check and you should see your new test case as well: Test case: floor(3.2) Test case: floor(integer) Step 8. Repeat the coverage program runs: make coverage-init && make check && make coverage and check the results with the browser. You should now see even more green lines in fnct_math_floor. However there is still the case for what happens if the input is neither integer nor float. For example, what happens if we put in a test entry. Step 9. Write another test file. floor(null) # text input, expecting null output :memory: SELECT floor("some text"); # the SQL to run 1 # rows 1 # columns floor("some text") # this is the header row (NULL) # this is really the result - special case for null value and do the save / check / check coverage things again. You should see pretty much all of that function is now being tested. Step 10. Send the results to be added to libspatialite! You can make a svn diff output if you're familiar with SVN, but you can just send the new files that you're written (e.g. as a tar.gz or zip file) to me (bradh@frogmouth.net) or to the spatialite-users mailing list. Hints: 1. If your test results in a null value, use "(NULL)" as the expected cell value. 2. If your test result is a floating point value, and it might vary at the least significant values, then you can make the test more reliable by limiting how close things need to be. You do this by adding a : character, then the number of characters to compare. So if you're looking for 2.7182818, but the result could vary a bit, then write the result as 2.7182818:8. If you need to put a colon (:) character in the value, you can use :0 at the end, to indicate that the precision should be "absolute match". 3. If you want to run the tests under valgrind, change into the test/ directory and use: libtool --mode=execute valgrind --track-origins=yes --tool=memcheck --num-callers=20 --leak-check=full --show-reachable=yes ./check_sql_stmt 4. Don't worry about the not-taken branch for GAIA_UNUSED(). This is just to avoid a warning, and isn't a problem. 5. Don't worry about not being able to write a test for every possible scenario. Even a little extra coverage helps. 6. If your test shows a problem, think twice before fixing the test to match the code. It could be that you've just found a bug, and that is really important news - we have a reliable way to reproduce the problem, and a way to make sure it doesn't sneak back in later. Please raise these issues separately. 7. You can "hold" failing test cases by renaming the file (I usually add ".on-hold", so pow00.testcase becomes pow00.testcase.on-hold). This allows you to keep testing without loosing the problem test cases. You can use that to "remove" the test cases for fnct_math_floor() if you want to reproduce this. libspatialite-4.3.0a/test/check_version.c0000664000175000017500000000426112544707704015412 00000000000000/* check_version.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ if (strcmp (spatialite_version (), VERSION) != 0) { fprintf (stderr, "SpatiaLite version mismatch: %s and %s\n", VERSION, spatialite_version ()); return -1; } spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_create.c0000664000175000017500000001717212544707704015175 00000000000000/* check_create.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiaaux.h" static int checkCache (void) { int i; int max = 1024; void *cache[1024]; char msg[64]; const char *m; for (i = 0; i < max; i++) { cache[i] = spatialite_alloc_connection (); } for (i = 0; i < max; i++) { if (cache[i] != NULL) { sprintf (msg, "Err%d", i); gaiaSetGeosErrorMsg_r (cache[i], msg); sprintf (msg, "Warn%d", i); gaiaSetGeosWarningMsg_r (cache[i], msg); sprintf (msg, "Aux%d", i); gaiaSetGeosAuxErrorMsg_r (cache[i], msg); } } for (i = 0; i < max; i++) { if (cache[i] != NULL) { sprintf (msg, "Err%d", i); m = gaiaGetGeosErrorMsg_r (cache[i]); if (m == NULL) { fprintf (stderr, "unexpected NULL: GeosErrorMsg %d\n", i); return -200 + i; } if (strcmp (m, msg) != 0) { fprintf (stderr, "unexpected GeosErrorMsg %d \"%s\"\n", i, m); return -300 + i; } sprintf (msg, "Warn%d", i); m = gaiaGetGeosWarningMsg_r (cache[i]); if (m == NULL) { fprintf (stderr, "unexpected NULL: GeosWarningMsg %d\n", i); return -400 + i; } if (strcmp (m, msg) != 0) { fprintf (stderr, "unexpected GeosWarningErrorMsg %d \"%s\"\n", i, m); return -500 + i; } sprintf (msg, "Aux%d", i); m = gaiaGetGeosAuxErrorMsg_r (cache[i]); if (m == NULL) { fprintf (stderr, "unexpected NULL: GeosAuxErrorMsg %d\n", i); return -600 + i; } if (strcmp (m, msg) != 0) { fprintf (stderr, "unexpected GeosAuxErrorMsg %d \"%s\"\n", i, m); return -700 + i; } } } for (i = 0; i < max; i++) { if (cache[i] != NULL) spatialite_cleanup_ex (cache[i]); } return 0; } int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; sqlite3_int64 log_pk; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } ret = sqlite3_exec (handle, "SELECT HasProj()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasProj() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -3; } ret = sqlite3_exec (handle, "SELECT HasGeos()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasGeos() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -4; } ret = sqlite3_exec (handle, "SELECT HasGeosAdvanced()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasGeosAdvanced() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -5; } ret = sqlite3_exec (handle, "SELECT HasIconv()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasIconv() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -6; } ret = sqlite3_exec (handle, "SELECT HasMathSql()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasMathSql() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -7; } ret = sqlite3_exec (handle, "SELECT HasGeoCallbacks()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasGeoCallbacks() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -8; } ret = sqlite3_exec (handle, "SELECT HasFreeXL()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasFreeXL() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -9; } ret = sqlite3_exec (handle, "SELECT HasEpsg()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasEpsg() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -10; } ret = sqlite3_exec (handle, "SELECT HasGeosTrunk()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasGeoTrunk() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -11; } ret = sqlite3_exec (handle, "SELECT HasLwGeom()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasLwGeom() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -12; } ret = sqlite3_exec (handle, "SELECT HasLibXml2()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "HasLibXml2() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -13; } gaiaInsertIntoSqlLog (handle, "test", "sql_statement_ok", &log_pk); gaiaUpdateSqlLog (handle, log_pk, 1, NULL); gaiaInsertIntoSqlLog (handle, "test", "sql_statement_no", &log_pk); gaiaUpdateSqlLog (handle, log_pk, 0, "some error message"); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -11; } spatialite_cleanup_ex (cache); ret = checkCache (); if (ret != 0) return ret; spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_gpkgGetImageFormat_nonimage.c0000664000175000017500000000747712544707704021322 00000000000000/* check_gpkgGetImageFormat_nonimage.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; void *cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_nonimage.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } sql_statement = "SELECT gpkgGetImageType(zeroblob(1000))"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg (db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf (stderr, "unexpected return value for first step: %i\n", ret); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) { fprintf (stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } if (strcmp ((const char *) sqlite3_column_text (stmt, 0), "unknown") != 0) { fprintf (stderr, "wrong image type: %s\n", sqlite3_column_text (stmt, 0)); return -33; } ret = sqlite3_step (stmt); if (ret != SQLITE_DONE) { fprintf (stderr, "unexpected return value for second step: %i\n", ret); return -34; } ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.3.0a/test/check_gpkgConvert.c0000664000175000017500000002031212544707704016211 00000000000000/* check_gpkgConvert.c - Test case for GeoPackage Extensions Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Sandro Furieri Portions created by the Initial Developer are Copyright (C) 2014 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "config.h" #ifdef ENABLE_GEOPACKAGE /* only if GEOPACKAGE is enabled */ #include "sqlite3.h" #include "spatialite.h" static void do_unlink_all () { /* deleting all temporary files */ unlink ("./copy-gpkg_test.sqlite"); unlink ("./copy-test-legacy-3.0.1.sqlite"); unlink ("./out1.gpkg"); unlink ("./out2.gpkg"); unlink ("./out1.sqlite"); unlink ("./out2.sqlite"); } static int do_load_legacy (const char *path) { /* loading the Legacy Test DB */ sqlite3 *db_handle; int ret; void *cache = NULL; const char *sql; char *sql_err = NULL; cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (path, &db_handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open '%s': %s\n", path, sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); return 0; } spatialite_init_ex (db_handle, cache, 0); /* creating a table */ sql = "CREATE TABLE test0 (id INTEGER NOT NULL PRIMARY KEY)"; ret = sqlite3_exec (db_handle, sql, NULL, NULL, &sql_err); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } /* adding a geometry */ sql = "SELECT AddGeometryColumn('test0', 'geom', 4326, 'POINT', 'XY')"; ret = sqlite3_exec (db_handle, sql, NULL, NULL, &sql_err); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } /* inserting one row */ sql = "INSERT INTO test0 (id, geom) VALUES(1, MakePoint(1, 2, 4326))"; ret = sqlite3_exec (db_handle, sql, NULL, NULL, &sql_err); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } sqlite3_close (db_handle); spatialite_cleanup_ex (cache); return 1; } static sqlite3 * connect_db (const char *path, int flags, void *cache) { /* attempting to connect a SQLite DB file */ sqlite3 *db_handle; int ret; ret = sqlite3_open_v2 (path, &db_handle, flags, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open '%s': %s\n", path, sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); return NULL; } spatialite_init_ex (db_handle, cache, 0); return db_handle; } static int already_existing (const char *path) { /* check if a file already exists */ FILE *in = fopen (path, "rb"); if (in != NULL) { /* already existing and accessible */ fclose (in); return 1; } if (errno == ENOENT) return 0; return 1; } static int open_connections (const char *path_origin, const char *path_destination, void *cache_in, void *cache_out, sqlite3 ** xhandle_in, sqlite3 ** xhandle_out) { /* establishing IN and OUT DB connections */ sqlite3 *handle_in = NULL; sqlite3 *handle_out = NULL; if (already_existing (path_destination)) { fprintf (stderr, "Already existing output destination:\n\"%s\"\n", path_destination); return 0; } /* attempting to connect the IN DB */ handle_in = connect_db (path_origin, SQLITE_OPEN_READONLY, cache_in); if (handle_in == NULL) goto error; /* attempting to connect the OUT DB */ handle_out = connect_db (path_destination, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, cache_out); if (handle_out == NULL) goto error; *xhandle_in = handle_in; *xhandle_out = handle_out; return 1; error: if (handle_in != NULL) sqlite3_close (handle_in); if (handle_out != NULL) sqlite3_close (handle_out); return 0; } int main (int argc, char *argv[]) { sqlite3 *handle_in = NULL; sqlite3 *handle_out = NULL; void *cache_in = NULL; void *cache_out = NULL; const char *path_origin; const char *path_destination; int ret; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ do_unlink_all (); /* converting from SpatiaLite v4 to GPKG */ ret = system ("cp ./gpkg_test.sqlite copy-gpkg_test.sqlite"); if (ret != 0) { fprintf (stderr, "cannot copy gpkg_test.sqlite database\n"); return -1; } path_origin = "./copy-gpkg_test.sqlite"; path_destination = "./out1.gpkg"; cache_in = spatialite_alloc_connection (); cache_out = spatialite_alloc_connection (); if (!open_connections (path_origin, path_destination, cache_in, cache_out, &handle_in, &handle_out)) { do_unlink_all (); return -1; } if (!gaiaSpatialite2GPKG (handle_in, path_origin, handle_out, path_destination)) { do_unlink_all (); return -1; } sqlite3_close (handle_in); sqlite3_close (handle_out); spatialite_cleanup_ex (cache_in); spatialite_cleanup_ex (cache_out); /* converting from GPKG to SpatiaLite */ path_origin = "./out1.gpkg"; path_destination = "./out1.sqlite"; cache_in = spatialite_alloc_connection (); cache_out = spatialite_alloc_connection (); if (!open_connections (path_origin, path_destination, cache_in, cache_out, &handle_in, &handle_out)) { do_unlink_all (); return -1; } if (!gaiaGPKG2Spatialite (handle_in, path_origin, handle_out, path_destination)) { do_unlink_all (); return -1; } sqlite3_close (handle_in); sqlite3_close (handle_out); spatialite_cleanup_ex (cache_in); spatialite_cleanup_ex (cache_out); /* converting from SpatiaLite v3 to GPKG */ ret = system ("cp ./test-legacy-3.0.1.sqlite copy-test-legacy-3.0.1.sqlite"); if (ret != 0) { do_unlink_all (); fprintf (stderr, "cannot copy test-legacy-3.0.1.sqlite database\n"); return -1; } if (!do_load_legacy ("./copy-test-legacy-3.0.1.sqlite")) { do_unlink_all (); return -1; } path_origin = "./copy-test-legacy-3.0.1.sqlite"; path_destination = "./out2.sqlite"; cache_in = spatialite_alloc_connection (); cache_out = spatialite_alloc_connection (); if (!open_connections (path_origin, path_destination, cache_in, cache_out, &handle_in, &handle_out)) { do_unlink_all (); return -1; } if (!gaiaSpatialite2GPKG (handle_in, path_origin, handle_out, path_destination)) { do_unlink_all (); return -1; } sqlite3_close (handle_in); sqlite3_close (handle_out); spatialite_cleanup_ex (cache_in); spatialite_cleanup_ex (cache_out); do_unlink_all (); return 0; } #endif /* endif GEOPACKAGE enabled */ libspatialite-4.3.0a/test/check_gpkgCreateTilesZoomLevel.c0000664000175000017500000002074412544707704020643 00000000000000/* check_gpkgCreateTilesZoomLevel.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011,2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; void *cache = spatialite_alloc_connection (); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv ("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv ("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_gpkgCreateTilesZoomLevel.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf ("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv (env); sqlite3_free (env); #else /* not WIN32 */ setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv ("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv ("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesTable(\"test1_matrix_tiles\", 4326, -180.0, -90.0, 180.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesTable() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -3; } /* create matrix level 0 */ ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesZoomLevel(0) result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -6; } /* try duplicate entry */ ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add zoom level, duplicate entry, got %i\n", ret); sqlite3_free (err_msg); return -10; } sqlite3_free (err_msg); /* try some bad arguments */ ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(9.4, 4, 360, 180)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add zoom level, non-string table name, got %i\n", ret); sqlite3_free (err_msg); return -18; } if (strcmp (err_msg, "gpkgCreateTilesZoomLevel() error: argument 1 [table] is not of the String type") != 0) { fprintf (stderr, "Unexpected error message for gpkgAddGeometryColumn arg 1 bad type: %s\n", err_msg); sqlite3_free (err_msg); return -21; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4.2, 360, 180)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add zoom level, non-integer zoom, got %i\n", ret); sqlite3_free (err_msg); return -20; } if (strcmp (err_msg, "gpkgCreateTilesZoomLevel() error: argument 2 [zoom level] is not of the integer type") != 0) { fprintf (stderr, "Unexpected error message for gpkgAddGeometryColumn arg 2 bad type: %s\n", err_msg); sqlite3_free (err_msg); return -21; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4, \"x\", 180)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add zoom level, non-numeric extent, got %i\n", ret); sqlite3_free (err_msg); return -22; } if (strcmp (err_msg, "gpkgCreateTilesZoomLevel() error: argument 3 [extent_width] is not of a numerical type") != 0) { fprintf (stderr, "Unexpected error message for gpkgAddGeometryColumn arg 3 bad type: %s\n", err_msg); sqlite3_free (err_msg); return -23; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4, 360, \"y\")", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add zoom level, non-numeric height extent, got %i\n", ret); sqlite3_free (err_msg); return -24; } if (strcmp (err_msg, "gpkgCreateTilesZoomLevel() error: argument 4 [extent_height] is not of a numerical type") != 0) { fprintf (stderr, "Unexpected error message for gpkgAddGeometryColumn arg 4 bad type: %s\n", err_msg); sqlite3_free (err_msg); return -25; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", -1, 360, 180)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add zoom level, negative zoom, got %i\n", ret); sqlite3_free (err_msg); return -26; } if (strcmp (err_msg, "gpkgCreateTilesZoomLevel() error: argument 2 [zoom level] must be >= 0") != 0) { fprintf (stderr, "Unexpected error message for gpkgAddGeometryColumn arg 2 bad value: %s\n", err_msg); sqlite3_free (err_msg); return -27; } sqlite3_free (err_msg); /* Try float extent */ ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 1, 360.0, 180.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesZoomLevel(1) result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -30; } ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/testcase1.csv0000664000175000017500000000517412544707704015041 000000000000002172515 "Candelo" "Candelo" "Candelo,Kandelo,Кандело" -36.76667 149.68333 "P" "PPL" "AU" 2 10550 895 152 "Australia/Sydney" "2011-08-08" 2172516 "Canbrae" "Canbrae" -28.21667 149.1 "S" "FRM" "AU" 4 33610 0 212 "Australia/Brisbane" "2011-06-04" 2172517 "Canberra" "Canberra" "Camberra,Canberra,Gorad Kanbera,Kamberra,Kambra,Kampera,Kanapera,Kanbera,Kanbero,Kanberra,Kanberrae,Kanbérra,KÄnapera,kaenbeola,kainabara,kan pei la,kanbra,kanpara,kenabera,kyanabera,kyanbera,kynbra,qnbrh,ΚαμπέÏα,Горад Канбера,Канбера,Канберрæ,Канберра,КанбєÌра,Ô¿Õ¡Õ¶Õ¢Õ¥Õ¼Õ¡,×§×נבער×,קנברה,كانبرا,کانبرا,کینبرا,कॅनबेरा,कैनबरा,কà§à¦¯à¦¾à¦¨à¦¬à§‡à¦°à¦¾,கானà¯à®ªà®°à®¾,à¹à¸„นเบอร์รา,à½à½“་པེ་རà¼,კáƒáƒœáƒ‘ერáƒ,ካንበራ,キャンベラ,åŽåŸ¹æ‹‰,堪培拉,캔버ë¼" -35.28346 149.12807 "P" "PPLC" "AU" 1 327700 609 "Australia/Sydney" "2009-08-04" 2172518 "Canberra" "Canberra" -26.78333 148.43333 "S" "FRM" "AU" 4 34860 0 386 "Australia/Brisbane" "2011-06-04" 2172519 "Canbelego" "Canbelego" -31.56667 146.31667 "P" "PPL" "AU" 2 11750 0 347 "Australia/Sydney" "2011-06-04" 2172520 "Canaway Range" "Canaway Range" -26.11667 142.86667 "T" "MTS" "AU" 4 0 175 "Australia/Brisbane" "1993-12-30" 2172521 "Mount Canaway" "Mount Canaway" -26 143.91667 "T" "MT" "AU" 4 0 305 "Australia/Brisbane" "1993-12-30" 2172522 "Canary Island South" "Canary Island South" -36.05 143.86667 "P" "PPL" "AU" 7 23940 0 124 "Australia/Melbourne" "2011-06-04" 2172523 "Canary Island" "Canary Island" -35.98333 143.85 "P" "PPL" "AU" 7 23940 0 105 "Australia/Melbourne" "2011-06-04" 2172524 "Canary Creek" "Canary Creek" -24.28333 148.61667 "H" "STM" "AU" 4 0 221 "Australia/Brisbane" "1993-12-30" 2172525 "Canara Creek" "Canara Creek" -26.36667 144.23333 "H" "STM" "AU" 4 0 269 "Australia/Brisbane" "1993-12-30" 2172526 "Canally" "Canally" -34.7 143.43333 "S" "FRM" "AU" 2 10300 0 62 "Australia/Sydney" "2011-06-04" 2172527 "Canally" "Canally" -32.61667 144.38333 "S" "FRM" "AU" 2 11700 0 93 "Australia/Sydney" "2011-06-04" 2172528 "Canal Lagoon" "Canal Lagoon" -35.21667 150.55 "H" "LGN" "AU" 2 0 -9999 "Australia/Sydney" "1993-12-30" 2172529 "Canal Creek Bore" "Canal Creek Bore" -20.63333 140.9 "H" "WLL" "AU" 4 0 252 "Australia/Brisbane" "1993-12-30" 2172530 "Canal Creek" "Canal Creek" -27.86667 151.51667 "H" "STM" "AU" 4 0 459 "Australia/Brisbane" "1993-12-30" 2172531 "Canal Creek" "Canal Creek" -25.91667 149.48333 "H" "STM" "AU" 4 0 287 "Australia/Brisbane" "1993-12-30" libspatialite-4.3.0a/test/shape_utf8_2.c0000664000175000017500000001456612544707704015070 00000000000000/* shape_utf8_2.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Ahmadou Dicko Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *kmlname = __FILE__ "test.kml"; char *geojsonname = __FILE__ "test.geojson"; char *err_msg = NULL; int row_count; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } ret = load_shapefile (handle, "./shp/taiwan/hystoric", "hystoric", "UTF-8", 4326, "col1", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/taiwan/hystoric: %s\n", err_msg); sqlite3_close (handle); return -3; } if (row_count != 15) { fprintf (stderr, "unexpected row count for shp/taiwan/hystoric: %i\n", row_count); sqlite3_close (handle); return -4; } ret = load_shapefile (handle, "./shp/taiwan/leisure", "leisure", "UTF-8", 4326, "col1", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/taiwan/leisure: %s\n", err_msg); sqlite3_close (handle); return -5; } if (row_count != 5) { fprintf (stderr, "unexpected row count for shp/taiwan/leisure: %i\n", row_count); sqlite3_close (handle); return -6; } ret = load_shapefile (handle, "./shp/taiwan/route", "route", "UTF-8", 4326, "col1", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/taiwan/route: %s\n", err_msg); sqlite3_close (handle); return -7; } if (row_count != 4) { fprintf (stderr, "unexpected row count for shp/taiwan/route: %i\n", row_count); sqlite3_close (handle); return -8; } #ifndef OMIT_PROJ /* only if PROJ is supported */ if (is_kml_constant (handle, "route", "name")) { fprintf (stderr, "unexpected result for is_kml_constant (1)\n"); return -9; } if (!is_kml_constant (handle, "route", "foo")) { fprintf (stderr, "unexpected result for is_kml_constant (2)\n"); return -10; } ret = dump_kml (handle, "route", "col1", kmlname, NULL, NULL, 10); if (!ret) { fprintf (stderr, "dump_kml (1) error for shp/taiwan/route: %s\n", err_msg); sqlite3_close (handle); return -11; } unlink (kmlname); ret = dump_kml (handle, "route", "col1", kmlname, "name", NULL, 10); if (!ret) { fprintf (stderr, "dump_kml (2) error for shp/taiwan/route: %s\n", err_msg); sqlite3_close (handle); return -12; } unlink (kmlname); ret = dump_kml (handle, "route", "col1", kmlname, "theta", NULL, 10); if (!ret) { fprintf (stderr, "dump_kml (3) error for shp/taiwan/route: %s\n", err_msg); sqlite3_close (handle); return -13; } unlink (kmlname); ret = dump_kml (handle, "route", "col1", kmlname, "name", "sub_type", 10); if (!ret) { fprintf (stderr, "dump_kml (4) error for shp/taiwan/route: %s\n", err_msg); sqlite3_close (handle); return -14; } unlink (kmlname); ret = dump_kml (handle, "route", "col1", kmlname, "theta", "beta", 10); if (!ret) { fprintf (stderr, "dump_kml (5) error for shp/taiwan/route: %s\n", err_msg); sqlite3_close (handle); return -15; } unlink (kmlname); #endif /* end PROJ conditional */ ret = dump_geojson (handle, "route", "col1", geojsonname, 10, 5); if (!ret) { fprintf (stderr, "dump_geojson() error for shp/taiwan/route: %s\n", err_msg); sqlite3_close (handle); return -16; } unlink (geojsonname); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -17; } spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_relations_fncts.c0000664000175000017500000015361312544707704017130 00000000000000/* check_relations_fncts.c -- SpatiaLite Test Case This does "boundary conditions" and error checks for gg_relations functions that are hard to test with SQL. Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiageo.h" static const double double_eps = 0.00000001; int test_extra_mode () { #ifndef OMIT_GEOS /* only if GEOS is supported */ int ret; sqlite3 *handle; int result; int returnValue = 0; gaiaGeomCollPtr geom_pt1; gaiaGeomCollPtr geom_pt2; gaiaGeomCollPtr geom_ln1; gaiaGeomCollPtr geom_ln2; gaiaGeomCollPtr geom_pg; gaiaGeomCollPtr g; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; void *cache = spatialite_alloc_connection (); /* Tests start here */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -101; } spatialite_init_ex (handle, cache, 0); /* preparing a Point */ geom_pt1 = gaiaAllocGeomColl (); gaiaAddPointToGeomColl (geom_pt1, 30.0, 30.0); gaiaMbrGeometry (geom_pt1); /* preparing another Point */ geom_pt2 = gaiaAllocGeomColl (); gaiaAddPointToGeomColl (geom_pt2, 10.5, 1.5); gaiaMbrGeometry (geom_pt2); /* preparing a Linestring */ geom_ln1 = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (geom_ln1, 3); gaiaSetPoint (ln->Coords, 0, 5.0, 0.0); gaiaSetPoint (ln->Coords, 1, 5.0, 20.0); gaiaSetPoint (ln->Coords, 2, 0.0, 20.0); gaiaMbrGeometry (geom_ln1); /* preparing another Linestring */ geom_ln2 = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (geom_ln2, 4); gaiaSetPoint (ln->Coords, 0, 0.0, 20.0); gaiaSetPoint (ln->Coords, 1, 5.0, 20.0); gaiaSetPoint (ln->Coords, 2, 5.0, 0.0); gaiaSetPoint (ln->Coords, 3, 0.0, 0.0); gaiaMbrGeometry (geom_ln2); /* preparing a Polygon */ geom_pg = gaiaAllocGeomColl (); pg = gaiaAddPolygonToGeomColl (geom_pg, 5, 1); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, 1.5, 1.5); gaiaSetPoint (rng->Coords, 1, 10.5, 1.5); gaiaSetPoint (rng->Coords, 2, 10.5, 10.5); gaiaSetPoint (rng->Coords, 3, 1.5, 10.5); gaiaSetPoint (rng->Coords, 4, 1.5, 1.5); rng = gaiaAddInteriorRing (pg, 0, 5); gaiaSetPoint (rng->Coords, 0, 5.5, 5.5); gaiaSetPoint (rng->Coords, 1, 6.5, 1.5); gaiaSetPoint (rng->Coords, 2, 6.5, 6.5); gaiaSetPoint (rng->Coords, 3, 5.5, 6.5); gaiaSetPoint (rng->Coords, 4, 5.5, 5.5); gaiaMbrGeometry (geom_pg); result = gaiaGeomCollDisjoint_r (cache, geom_pt1, geom_ln1); if (result != 1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -102; goto exit; } result = gaiaGeomCollDisjoint_r (cache, geom_pt2, geom_pg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -103; goto exit; } result = gaiaGeomCollDisjoint_r (cache, geom_pg, geom_ln1); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -104; goto exit; } result = gaiaGeomCollOverlaps_r (cache, geom_pt2, geom_ln1); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -105; goto exit; } result = gaiaGeomCollOverlaps_r (cache, geom_pt2, geom_pg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -106; goto exit; } result = gaiaGeomCollOverlaps_r (cache, geom_pg, geom_ln1); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -107; goto exit; } result = gaiaGeomCollCrosses_r (cache, geom_pt2, geom_ln1); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -108; goto exit; } result = gaiaGeomCollCrosses_r (cache, geom_pt2, geom_pg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -109; goto exit; } result = gaiaGeomCollCrosses_r (cache, geom_pg, geom_ln1); if (result != 1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -110; goto exit; } result = gaiaGeomCollTouches_r (cache, geom_pt2, geom_ln1); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -111; goto exit; } result = gaiaGeomCollTouches_r (cache, geom_pt2, geom_pg); if (result != 1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -112; goto exit; } result = gaiaGeomCollTouches_r (cache, geom_pg, geom_ln1); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -113; goto exit; } result = gaiaGeomCollWithin_r (cache, geom_pt2, geom_ln1); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -114; goto exit; } result = gaiaGeomCollWithin_r (cache, geom_pt2, geom_pg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -115; goto exit; } result = gaiaGeomCollWithin_r (cache, geom_pg, geom_ln1); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -116; goto exit; } result = gaiaGeomCollContains_r (cache, geom_pt2, geom_ln1); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -117; goto exit; } result = gaiaGeomCollContains_r (cache, geom_pg, geom_pt2); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -118; goto exit; } result = gaiaGeomCollContains_r (cache, geom_pg, geom_ln1); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -119; goto exit; } result = gaiaGeomCollCovers_r (cache, geom_pt1, geom_ln1); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -120; goto exit; } result = gaiaGeomCollCovers_r (cache, geom_pg, geom_pt2); if (result != 1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -121; goto exit; } result = gaiaGeomCollCovers_r (cache, geom_pg, geom_ln1); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -122; goto exit; } result = gaiaGeomCollCoveredBy_r (cache, geom_pt2, geom_ln1); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -120; goto exit; } result = gaiaGeomCollCoveredBy_r (cache, geom_pt2, geom_pg); if (result != 1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -121; goto exit; } result = gaiaGeomCollCoveredBy_r (cache, geom_pg, geom_ln1); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -122; goto exit; } g = gaiaSharedPaths_r (cache, geom_ln1, geom_ln2); if (g == NULL) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -123; goto exit; } gaiaFreeGeomColl (g); g = gaiaSharedPaths_r (cache, geom_ln1, geom_ln2); if (g == NULL) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -124; goto exit; } gaiaFreeGeomColl (g); /* Cleanup and exit */ exit: gaiaFreeGeomColl (geom_pt1); gaiaFreeGeomColl (geom_pt2); gaiaFreeGeomColl (geom_ln1); gaiaFreeGeomColl (geom_ln2); gaiaFreeGeomColl (geom_pg); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -133; } spatialite_cleanup_ex (cache); return returnValue; #endif /* end GEOS conditional */ return 0; } int test_current_mode () { #ifndef OMIT_GEOS /* only if GEOS is supported */ int ret; sqlite3 *handle; int result; double resultDouble; int returnValue = 0; gaiaGeomCollPtr geom; gaiaGeomCollPtr g; gaiaPolygonPtr pg; gaiaRingPtr rng; void *cache = spatialite_alloc_connection (); /* Common setup */ gaiaGeomCollPtr validGeometry = gaiaAllocGeomColl (); double dummyResultArg = 0.0; double dummyResultArg2 = 0.0; /* Tests start here */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); /* null inputs for a range of geometry functions */ result = gaiaGeomCollEquals_r (cache, 0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -1; goto exit; } result = gaiaGeomCollEquals_r (cache, validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -2; goto exit; } result = gaiaGeomCollEquals_r (cache, 0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -3; goto exit; } result = gaiaGeomCollIntersects_r (cache, 0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -4; goto exit; } result = gaiaGeomCollIntersects_r (cache, validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -5; goto exit; } result = gaiaGeomCollIntersects_r (cache, 0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -6; goto exit; } result = gaiaGeomCollOverlaps_r (cache, 0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -7; goto exit; } result = gaiaGeomCollOverlaps_r (cache, validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -8; goto exit; } result = gaiaGeomCollOverlaps_r (cache, 0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -9; goto exit; } result = gaiaGeomCollCrosses_r (cache, 0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -10; goto exit; } result = gaiaGeomCollCrosses_r (cache, validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -11; goto exit; } result = gaiaGeomCollCrosses_r (cache, 0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -12; goto exit; } result = gaiaGeomCollTouches_r (cache, 0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -13; goto exit; } result = gaiaGeomCollTouches_r (cache, validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -14; goto exit; } result = gaiaGeomCollTouches_r (cache, 0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -15; goto exit; } result = gaiaGeomCollDisjoint_r (cache, 0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -16; goto exit; } result = gaiaGeomCollDisjoint_r (cache, validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -17; goto exit; } result = gaiaGeomCollDisjoint_r (cache, 0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -18; goto exit; } result = gaiaGeomCollWithin_r (cache, 0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -19; goto exit; } result = gaiaGeomCollWithin_r (cache, validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -20; goto exit; } result = gaiaGeomCollWithin_r (cache, 0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -21; goto exit; } result = gaiaGeomCollContains_r (cache, 0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -22; goto exit; } result = gaiaGeomCollContains_r (cache, validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -23; goto exit; } result = gaiaGeomCollContains_r (cache, 0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -24; goto exit; } result = gaiaGeomCollRelate_r (cache, 0, validGeometry, "T********"); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -25; goto exit; } result = gaiaGeomCollRelate_r (cache, validGeometry, 0, "T********"); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -26; goto exit; } result = gaiaGeomCollRelate_r (cache, 0, 0, "T********"); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -27; goto exit; } result = gaiaHausdorffDistance_r (cache, 0, validGeometry, &dummyResultArg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -34; goto exit; } result = gaiaHausdorffDistance_r (cache, validGeometry, 0, &dummyResultArg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -35; goto exit; } result = gaiaHausdorffDistance_r (cache, 0, 0, &dummyResultArg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -36; goto exit; } result = gaiaGeomCollCovers_r (cache, 0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -37; goto exit; } result = gaiaGeomCollCovers_r (cache, validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -38; goto exit; } result = gaiaGeomCollCovers_r (cache, 0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -39; goto exit; } result = gaiaGeomCollCoveredBy_r (cache, 0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -40; goto exit; } result = gaiaGeomCollCoveredBy_r (cache, validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -41; goto exit; } result = gaiaGeomCollCoveredBy_r (cache, 0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -42; goto exit; } result = gaiaGeomCollDistance_r (cache, 0, validGeometry, &dummyResultArg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -43; goto exit; } result = gaiaGeomCollDistance_r (cache, validGeometry, 0, &dummyResultArg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -44; goto exit; } result = gaiaGeomCollDistance_r (cache, 0, 0, &dummyResultArg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -45; goto exit; } /* Check some of the single geometry analysis routines */ result = gaiaGeomCollLength_r (cache, 0, &dummyResultArg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -46; goto exit; } result = gaiaGeomCollArea_r (cache, 0, &dummyResultArg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -47; goto exit; } result = gaiaGeomCollCentroid_r (cache, 0, &dummyResultArg, &dummyResultArg2); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -48; goto exit; } result = gaiaGetPointOnSurface_r (cache, 0, &dummyResultArg, &dummyResultArg2); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -49; goto exit; } result = gaiaIsSimple_r (cache, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -32; goto exit; } result = gaiaIsValid_r (cache, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -33; goto exit; } resultDouble = gaiaLineLocatePoint_r (cache, 0, validGeometry); if (abs (resultDouble - -1.0) > double_eps) { fprintf (stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, resultDouble); returnValue = -62; goto exit; } resultDouble = gaiaLineLocatePoint_r (cache, validGeometry, 0); if (abs (resultDouble - -1.0) > double_eps) { fprintf (stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, resultDouble); returnValue = -63; goto exit; } resultDouble = gaiaLineLocatePoint_r (cache, 0, 0); if (abs (resultDouble - -1.0) > double_eps) { fprintf (stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, resultDouble); returnValue = -64; goto exit; } /* geometry generating functionality */ geom = NULL; geom = gaiaLinesCutAtNodes (0, validGeometry); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -50; goto exit; } geom = gaiaLinesCutAtNodes (validGeometry, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -51; goto exit; } geom = gaiaLinesCutAtNodes (0, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -52; goto exit; } geom = gaiaUnaryUnion_r (cache, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -53; goto exit; } geom = gaiaLineMerge (0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -54; goto exit; } geom = gaiaSnap_r (cache, 0, validGeometry, 4); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -55; goto exit; } geom = gaiaSnap_r (cache, validGeometry, 0, 4); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -56; goto exit; } geom = gaiaSnap_r (cache, 0, 0, 4); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -57; goto exit; } geom = gaiaShortestLine_r (cache, 0, validGeometry); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -58; goto exit; } geom = gaiaShortestLine_r (cache, validGeometry, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -59; goto exit; } geom = gaiaShortestLine_r (cache, 0, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -60; goto exit; } geom = gaiaLineSubstring_r (cache, 0, 0, 1); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -61; goto exit; } geom = gaiaGeometryIntersection_r (cache, 0, validGeometry); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -65; goto exit; } geom = gaiaGeometryIntersection_r (cache, validGeometry, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -66; goto exit; } geom = gaiaGeometryIntersection_r (cache, 0, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -67; goto exit; } geom = gaiaGeometryUnion_r (cache, 0, validGeometry); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -68; goto exit; } geom = gaiaGeometryUnion_r (cache, validGeometry, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -69; goto exit; } geom = gaiaGeometryUnion_r (cache, 0, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -70; goto exit; } geom = gaiaGeometryDifference_r (cache, 0, validGeometry); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -71; goto exit; } geom = gaiaGeometryDifference_r (cache, validGeometry, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -72; goto exit; } geom = gaiaGeometryDifference_r (cache, 0, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -73; goto exit; } geom = gaiaGeometrySymDifference_r (cache, 0, validGeometry); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -74; goto exit; } geom = gaiaGeometrySymDifference_r (cache, validGeometry, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -75; goto exit; } geom = gaiaGeometrySymDifference_r (cache, 0, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -76; goto exit; } geom = gaiaBoundary_r (cache, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -77; goto exit; } geom = gaiaGeomCollSimplify_r (cache, 0, 1.0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -78; goto exit; } geom = gaiaGeomCollSimplifyPreserveTopology_r (cache, 0, 1.0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -79; goto exit; } geom = gaiaConvexHull_r (cache, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -80; goto exit; } geom = gaiaGeomCollBuffer_r (cache, 0, 0.1, 10); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -81; goto exit; } geom = gaiaOffsetCurve_r (cache, 0, 1.5, 10, 1); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -82; goto exit; } geom = gaiaSingleSidedBuffer_r (cache, 0, 1.5, 10, 1); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -83; goto exit; } geom = gaiaSharedPaths_r (cache, 0, validGeometry); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -84; goto exit; } geom = gaiaSharedPaths_r (cache, validGeometry, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -85; goto exit; } geom = gaiaSharedPaths_r (cache, 0, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -86; goto exit; } geom = gaiaLineInterpolatePoint_r (cache, 0, 0.6); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -87; goto exit; } /* Test some strange conditions */ result = gaiaGeomCollLength_r (cache, validGeometry, &dummyResultArg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -88; goto exit; } /* preparing a collection of Polygons */ geom = gaiaAllocGeomColl (); pg = gaiaAddPolygonToGeomColl (geom, 5, 1); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, 1.5, 1.5); gaiaSetPoint (rng->Coords, 1, 10.5, 1.5); gaiaSetPoint (rng->Coords, 2, 10.5, 10.5); gaiaSetPoint (rng->Coords, 3, 1.5, 10.5); gaiaSetPoint (rng->Coords, 4, 1.5, 1.5); rng = gaiaAddInteriorRing (pg, 0, 5); gaiaSetPoint (rng->Coords, 0, 5.5, 5.5); gaiaSetPoint (rng->Coords, 1, 6.5, 1.5); gaiaSetPoint (rng->Coords, 2, 6.5, 6.5); gaiaSetPoint (rng->Coords, 3, 5.5, 6.5); gaiaSetPoint (rng->Coords, 4, 5.5, 5.5); pg = gaiaAddPolygonToGeomColl (geom, 5, 1); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, 8.5, 8.5); gaiaSetPoint (rng->Coords, 1, 18.5, 8.5); gaiaSetPoint (rng->Coords, 2, 18.5, 18.5); gaiaSetPoint (rng->Coords, 3, 8.5, 18.5); gaiaSetPoint (rng->Coords, 4, 8.5, 8.5); rng = gaiaAddInteriorRing (pg, 0, 5); gaiaSetPoint (rng->Coords, 0, 11.5, 11.5); gaiaSetPoint (rng->Coords, 1, 12.5, 11.5); gaiaSetPoint (rng->Coords, 2, 12.5, 12.5); gaiaSetPoint (rng->Coords, 3, 11.5, 12.5); gaiaSetPoint (rng->Coords, 4, 11.5, 11.5); pg = gaiaAddPolygonToGeomColl (geom, 5, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, 4.5, 4.5); gaiaSetPoint (rng->Coords, 1, 30.5, 4.5); gaiaSetPoint (rng->Coords, 2, 30.5, 30.5); gaiaSetPoint (rng->Coords, 3, 4.5, 30.5); gaiaSetPoint (rng->Coords, 4, 4.5, 4.5); /* Tests Polygons UnaryUnion [as in aggregate ST_Union] */ g = gaiaUnaryUnion_r (cache, geom); if (g == NULL) { fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -89; goto exit; } result = gaiaGeomCollLength_r (cache, g, &dummyResultArg); if (result == 1 && (dummyResultArg >= 122.84232 && dummyResultArg <= 122.84233)) ; else { fprintf (stderr, "bad result at %s:%i: %i %f\n", __FILE__, __LINE__, result, dummyResultArg); returnValue = -90; goto exit; } gaiaFreeGeomColl (g); /* Tests Polygons UnionCascaded [as in aggregate ST_Union] */ g = gaiaUnionCascaded_r (cache, geom); if (g == NULL) { fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -91; goto exit; } result = gaiaGeomCollLength_r (cache, g, &dummyResultArg); if (result == 1 && (dummyResultArg >= 122.84232 && dummyResultArg <= 122.84233)) ; else { fprintf (stderr, "bad result at %s:%i: %i %f\n", __FILE__, __LINE__, result, dummyResultArg); returnValue = -92; goto exit; } gaiaFreeGeomColl (g); gaiaFreeGeomColl (geom); /* Cleanup and exit */ exit: gaiaFreeGeomColl (validGeometry); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -133; } spatialite_cleanup_ex (cache); return returnValue; #endif /* end GEOS conditional */ return 0; } int test_legacy_mode () { #ifndef OMIT_GEOS /* only if GEOS is supported */ int ret; sqlite3 *handle; int result; double resultDouble; int returnValue = 0; gaiaGeomCollPtr geom; gaiaGeomCollPtr g; gaiaPolygonPtr pg; gaiaRingPtr rng; /* Common setup */ gaiaGeomCollPtr validGeometry = gaiaAllocGeomColl (); double dummyResultArg = 0.0; double dummyResultArg2 = 0.0; spatialite_init (0); /* Tests start here */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } /* null inputs for a range of geometry functions */ result = gaiaGeomCollEquals (0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -1; goto exit; } result = gaiaGeomCollEquals (validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -2; goto exit; } result = gaiaGeomCollEquals (0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -3; goto exit; } result = gaiaGeomCollIntersects (0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -4; goto exit; } result = gaiaGeomCollIntersects (validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -5; goto exit; } result = gaiaGeomCollIntersects (0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -6; goto exit; } result = gaiaGeomCollOverlaps (0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -7; goto exit; } result = gaiaGeomCollOverlaps (validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -8; goto exit; } result = gaiaGeomCollOverlaps (0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -9; goto exit; } result = gaiaGeomCollCrosses (0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -10; goto exit; } result = gaiaGeomCollCrosses (validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -11; goto exit; } result = gaiaGeomCollCrosses (0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -12; goto exit; } result = gaiaGeomCollTouches (0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -13; goto exit; } result = gaiaGeomCollTouches (validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -14; goto exit; } result = gaiaGeomCollTouches (0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -15; goto exit; } result = gaiaGeomCollDisjoint (0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -16; goto exit; } result = gaiaGeomCollDisjoint (validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -17; goto exit; } result = gaiaGeomCollDisjoint (0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -18; goto exit; } result = gaiaGeomCollWithin (0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -19; goto exit; } result = gaiaGeomCollWithin (validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -20; goto exit; } result = gaiaGeomCollWithin (0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -21; goto exit; } result = gaiaGeomCollContains (0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -22; goto exit; } result = gaiaGeomCollContains (validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -23; goto exit; } result = gaiaGeomCollContains (0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -24; goto exit; } result = gaiaGeomCollRelate (0, validGeometry, "T********"); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -25; goto exit; } result = gaiaGeomCollRelate (validGeometry, 0, "T********"); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -26; goto exit; } result = gaiaGeomCollRelate (0, 0, "T********"); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -27; goto exit; } result = gaiaHausdorffDistance (0, validGeometry, &dummyResultArg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -34; goto exit; } result = gaiaHausdorffDistance (validGeometry, 0, &dummyResultArg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -35; goto exit; } result = gaiaHausdorffDistance (0, 0, &dummyResultArg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -36; goto exit; } result = gaiaGeomCollCovers (0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -37; goto exit; } result = gaiaGeomCollCovers (validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -38; goto exit; } result = gaiaGeomCollCovers (0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -39; goto exit; } result = gaiaGeomCollCoveredBy (0, validGeometry); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -40; goto exit; } result = gaiaGeomCollCoveredBy (validGeometry, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -41; goto exit; } result = gaiaGeomCollCoveredBy (0, 0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -42; goto exit; } result = gaiaGeomCollDistance (0, validGeometry, &dummyResultArg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -43; goto exit; } result = gaiaGeomCollDistance (validGeometry, 0, &dummyResultArg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -44; goto exit; } result = gaiaGeomCollDistance (0, 0, &dummyResultArg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -45; goto exit; } /* Check some of the single geometry analysis routines */ result = gaiaGeomCollLength (0, &dummyResultArg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -46; goto exit; } result = gaiaGeomCollArea (0, &dummyResultArg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -47; goto exit; } result = gaiaGeomCollCentroid (0, &dummyResultArg, &dummyResultArg2); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -48; goto exit; } result = gaiaGetPointOnSurface (0, &dummyResultArg, &dummyResultArg2); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -49; goto exit; } result = gaiaIsSimple (0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -32; goto exit; } result = gaiaIsValid (0); if (result != -1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -33; goto exit; } resultDouble = gaiaLineLocatePoint (0, validGeometry); if (abs (resultDouble - -1.0) > double_eps) { fprintf (stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, resultDouble); returnValue = -62; goto exit; } resultDouble = gaiaLineLocatePoint (validGeometry, 0); if (abs (resultDouble - -1.0) > double_eps) { fprintf (stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, resultDouble); returnValue = -63; goto exit; } resultDouble = gaiaLineLocatePoint (0, 0); if (abs (resultDouble - -1.0) > double_eps) { fprintf (stderr, "bad result at %s:%i: %f\n", __FILE__, __LINE__, resultDouble); returnValue = -64; goto exit; } /* geometry generating functionality */ geom = NULL; geom = gaiaLinesCutAtNodes (0, validGeometry); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -50; goto exit; } geom = gaiaLinesCutAtNodes (validGeometry, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -51; goto exit; } geom = gaiaLinesCutAtNodes (0, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -52; goto exit; } geom = gaiaUnaryUnion (0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -53; goto exit; } geom = gaiaLineMerge (0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -54; goto exit; } geom = gaiaSnap (0, validGeometry, 4); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -55; goto exit; } geom = gaiaSnap (validGeometry, 0, 4); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -56; goto exit; } geom = gaiaSnap (0, 0, 4); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -57; goto exit; } geom = gaiaShortestLine (0, validGeometry); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -58; goto exit; } geom = gaiaShortestLine (validGeometry, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -59; goto exit; } geom = gaiaShortestLine (0, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -60; goto exit; } geom = gaiaLineSubstring (0, 0, 1); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -61; goto exit; } geom = gaiaGeometryIntersection (0, validGeometry); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -65; goto exit; } geom = gaiaGeometryIntersection (validGeometry, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -66; goto exit; } geom = gaiaGeometryIntersection (0, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -67; goto exit; } geom = gaiaGeometryUnion (0, validGeometry); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -68; goto exit; } geom = gaiaGeometryUnion (validGeometry, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -69; goto exit; } geom = gaiaGeometryUnion (0, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -70; goto exit; } geom = gaiaGeometryDifference (0, validGeometry); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -71; goto exit; } geom = gaiaGeometryDifference (validGeometry, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -72; goto exit; } geom = gaiaGeometryDifference (0, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -73; goto exit; } geom = gaiaGeometrySymDifference (0, validGeometry); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -74; goto exit; } geom = gaiaGeometrySymDifference (validGeometry, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -75; goto exit; } geom = gaiaGeometrySymDifference (0, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -76; goto exit; } geom = gaiaBoundary (0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -77; goto exit; } geom = gaiaGeomCollSimplify (0, 1.0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -78; goto exit; } geom = gaiaGeomCollSimplifyPreserveTopology (0, 1.0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -79; goto exit; } geom = gaiaConvexHull (0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -80; goto exit; } geom = gaiaGeomCollBuffer (0, 0.1, 10); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -81; goto exit; } geom = gaiaOffsetCurve (0, 1.5, 10, 1); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -82; goto exit; } geom = gaiaSingleSidedBuffer (0, 1.5, 10, 1); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -83; goto exit; } geom = gaiaSharedPaths (0, validGeometry); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -84; goto exit; } geom = gaiaSharedPaths (validGeometry, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -85; goto exit; } geom = gaiaSharedPaths (0, 0); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -86; goto exit; } geom = gaiaLineInterpolatePoint (0, 0.6); if (geom != NULL) { gaiaFree (geom); fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -87; goto exit; } /* Test some strange conditions */ result = gaiaGeomCollLength (validGeometry, &dummyResultArg); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -88; goto exit; } /* preparing a collection of Polygons */ geom = gaiaAllocGeomColl (); pg = gaiaAddPolygonToGeomColl (geom, 5, 1); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, 1.5, 1.5); gaiaSetPoint (rng->Coords, 1, 10.5, 1.5); gaiaSetPoint (rng->Coords, 2, 10.5, 10.5); gaiaSetPoint (rng->Coords, 3, 1.5, 10.5); gaiaSetPoint (rng->Coords, 4, 1.5, 1.5); rng = gaiaAddInteriorRing (pg, 0, 5); gaiaSetPoint (rng->Coords, 0, 5.5, 5.5); gaiaSetPoint (rng->Coords, 1, 6.5, 1.5); gaiaSetPoint (rng->Coords, 2, 6.5, 6.5); gaiaSetPoint (rng->Coords, 3, 5.5, 6.5); gaiaSetPoint (rng->Coords, 4, 5.5, 5.5); pg = gaiaAddPolygonToGeomColl (geom, 5, 1); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, 8.5, 8.5); gaiaSetPoint (rng->Coords, 1, 18.5, 8.5); gaiaSetPoint (rng->Coords, 2, 18.5, 18.5); gaiaSetPoint (rng->Coords, 3, 8.5, 18.5); gaiaSetPoint (rng->Coords, 4, 8.5, 8.5); rng = gaiaAddInteriorRing (pg, 0, 5); gaiaSetPoint (rng->Coords, 0, 11.5, 11.5); gaiaSetPoint (rng->Coords, 1, 12.5, 11.5); gaiaSetPoint (rng->Coords, 2, 12.5, 12.5); gaiaSetPoint (rng->Coords, 3, 11.5, 12.5); gaiaSetPoint (rng->Coords, 4, 11.5, 11.5); pg = gaiaAddPolygonToGeomColl (geom, 5, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, 4.5, 4.5); gaiaSetPoint (rng->Coords, 1, 30.5, 4.5); gaiaSetPoint (rng->Coords, 2, 30.5, 30.5); gaiaSetPoint (rng->Coords, 3, 4.5, 30.5); gaiaSetPoint (rng->Coords, 4, 4.5, 4.5); /* Tests Polygons UnaryUnion [as in aggregate ST_Union] */ g = gaiaUnaryUnion (geom); if (g == NULL) { fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -89; goto exit; } result = gaiaGeomCollLength (g, &dummyResultArg); if (result == 1 && (dummyResultArg >= 122.84232 && dummyResultArg <= 122.84233)) ; else { fprintf (stderr, "bad result at %s:%i: %i %f\n", __FILE__, __LINE__, result, dummyResultArg); returnValue = -90; goto exit; } gaiaFreeGeomColl (g); /* Tests Polygons UnionCascaded [as in aggregate ST_Union] */ g = gaiaUnionCascaded (geom); if (g == NULL) { fprintf (stderr, "bad result at %s:%i\n", __FILE__, __LINE__); returnValue = -91; goto exit; } result = gaiaGeomCollLength (g, &dummyResultArg); if (result == 1 && (dummyResultArg >= 122.84232 && dummyResultArg <= 122.84233)) ; else { fprintf (stderr, "bad result at %s:%i: %i %f\n", __FILE__, __LINE__, result, dummyResultArg); returnValue = -92; goto exit; } gaiaFreeGeomColl (g); gaiaFreeGeomColl (geom); /* Cleanup and exit */ exit: gaiaFreeGeomColl (validGeometry); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -133; } spatialite_cleanup (); return returnValue; #endif /* end GEOS conditional */ return 0; } int main (int argc, char *argv[]) { int ret; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = test_current_mode (); if (ret != 0) return ret; ret = test_extra_mode (); if (ret != 0) return ret; ret = test_legacy_mode (); if (ret != 0) return ret; return 0; } libspatialite-4.3.0a/test/sql_stmt_proj_tests/0000775000175000017500000000000012573314330016612 500000000000000libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform11.testcase0000664000175000017500000000066712544707704022466 00000000000000transform - Linestring ZM :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('LINESTRINGZM(11 43 100 1, 12 43 101 2, 12 42 102 3)', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('LINESTRINGZM(11 43 100 1, 12 43 101 2, 12 42 102 3)', 4326), 32632)) LINESTRING ZM(663019.070082 4762755.64169 100 1, 744533.019451 4765182.932802 101 2, 748464.920716 4654130.891324 102 3) libspatialite-4.3.0a/test/sql_stmt_proj_tests/output29.testcase0000664000175000017500000001121512544707704022013 00000000000000Output format tests - MULTIPOLYGONM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTIPOLYGONM(((10 10 1.2, 0 10 1.3, 0 0 1.1, 0 10 1.3, 10 10 1.2)),((-10 -10 4, -10 10 5, 10 10 6, 10 -10 5, -10 -10 4),(-8 -8 1, -2 -8 3, -2 -2 5, -8 -2 7, -8 -8 1),(8 8 11, 2 8 13, 2 2 17, 8 2 13, 8 8 11)))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTIPOLYGON M(((10 10 1.2, 0 10 1.3, 0 0 1.1, 0 10 1.3, 10 10 1.2)), ((-10 -10 4, -10 10 5, 10 10 6, 10 -10 5, -10 -10 4), (-8 -8 1, -2 -8 3, -2 -2 5, -8 -2 7, -8 -8 1), (8 8 11, 2 8 13, 2 2 17, 8 2 13, 8 8 11))) 10,10 0,10 0,0 0,10 10,10-10,-10 -10,10 10,10 10,-10 -10,-10-8,-8 -2,-8 -2,-2 -8,-2 -8,-88,8 2,8 2,2 8,2 8,8 10,10 0,10 0,0 0,10 10,10-10,-10 -10,10 10,10 10,-10 -10,-10-8,-8 -2,-8 -2,-2 -8,-2 -8,-88,8 2,8 2,2 8,2 8,8:0 {"type":"MultiPolygon","coordinates":[[[[10,10],[0,10],[0,0],[0,10],[10,10]]],[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]]}:0 MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;MULTIPOLYGONM(((10 10 1.2,0 10 1.3,0 0 1.1,0 10 1.3,10 10 1.2)),((-10 -10 4,-10 10 5,10 10 6,10 -10 5,-10 -10 4),(-8 -8 1,-2 -8 3,-2 -2 5,-8 -2 7,-8 -8 1),(8 8 11,2 8 13,2 2 17,8 2 13,8 8 11))) 30313036303030303630453631303030303030323030303030303031303330303030343030313030303030303035303030303030303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346303030303030303030303030303030303030303030303030303030303030303039413939393939393939393946313346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303130333030303034303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303138343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030353030303030303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303030433030303030303030303030303030304330303030303030303030303030313434303030303030303030303030303230433030303030303030303030303030304330303030303030303030303030314334303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463035303030303030303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032413430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032413430303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output2.testcase0000664000175000017500000000157212544707704021727 00000000000000Output format tests - POLYGON, no SRID :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsKML("myname", "mydesc", geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom) FROM (SELECT GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsKML("myname", "mydesc", geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) POLYGON((0 0, 1 1, 0 2, -1 1, 0 0)) (NULL) (NULL) 0,0 1,1 0,2 -1,1 0,0:0 # trailing ":0" required to avoid truncation !!! {"type":"Polygon","coordinates":[[[0,0],[1,1],[0,2],[-1,1],[0,0]]]}:0 # trailing ":0" required to avoid truncation !!! POLYGON((0 0,1 1,0 2,-1 1,0 0)) SRID=0;POLYGON((0 0,1 1,0 2,-1 1,0 0)) libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform6.testcase0000664000175000017500000000037112544707704022402 00000000000000transform - Point (NULL srid) :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POINT(11 43)', 4326), NULL)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POINT(11 43)', 4326), NULL)) (NULL) libspatialite-4.3.0a/test/sql_stmt_proj_tests/Makefile.in0000664000175000017500000003306212573313637020614 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_proj_tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = askml10.testcase \ askml11.testcase \ askml1.testcase \ askml2.testcase \ askml3.testcase \ askml4.testcase \ askml5.testcase \ askml6.testcase \ askml7.testcase \ askml8.testcase \ askml9.testcase \ fromgml42.testcase \ output10.testcase \ output11.testcase \ output12.testcase \ output13.testcase \ output14.testcase \ output15.testcase \ output16.testcase \ output17.testcase \ output18.testcase \ output19.testcase \ output1.testcase \ output20.testcase \ output21.testcase \ output22.testcase \ output23.testcase \ output24.testcase \ output25.testcase \ output26.testcase \ output27.testcase \ output28.testcase \ output29.testcase \ output2.testcase \ output30.testcase \ output31.testcase \ output32.testcase \ output33.testcase \ output34.testcase \ output35.testcase \ output36.testcase \ output37.testcase \ output38.testcase \ output3.testcase \ output4.testcase \ output5.testcase \ output6.testcase \ output7.testcase \ output8.testcase \ output9.testcase \ transform10.testcase \ transform11.testcase \ transform12.testcase \ transform13.testcase \ transform14.testcase \ transform15.testcase \ transform16.testcase \ transform17.testcase \ transform18.testcase \ transform19.testcase \ transform1.testcase \ transform20.testcase \ transform21.testcase \ transform2.testcase \ transform3.testcase \ transform4.testcase \ transform5.testcase \ transform6.testcase \ transform7.testcase \ transform8.testcase \ transform9.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_proj_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_proj_tests/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform18.testcase0000664000175000017500000000142412544707704022465 00000000000000transform - Polygon M :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POLYGONM((11 43 1, 12 43 2, 12 44 3, 11 44 4, 11 43 1), (11.4 43.4 1, 11.6 43.4 2, 11.6 43.6 3, 11.4 43.6 4, 11.4 43.4 1))', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POLYGONM((11 43 1, 12 43 2, 12 44 3, 11 44 4, 11 43 1), (11.4 43.4 1, 11.6 43.4 2, 11.6 43.6 3, 11.4 43.6 4, 11.4 43.4 1))', 4326), 32632)) POLYGON M((663019.070082 4762755.64169 1, 744533.019451 4765182.932802 2, 740526.321055 4876249.126963 3, 660349.410579 4873817.333441 4, 663019.070082 4762755.64169 1), (694349.575562 4808033.274618 1, 710545.984354 4808519.151148 2, 709851.653212 4830731.987849 3, 693708.725206 4830245.931093 4, 694349.575562 4808033.274618 1)) libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform15.testcase0000664000175000017500000000046112544707704022462 00000000000000transform - Point ZM :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POINTZM(663019 4762755 100 1)', 32632), 4326)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POINTZM(663019 4762755 100 1)', 32632), 4326)) POINT ZM(10.999999 42.999994 100 1) libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform5.testcase0000664000175000017500000000041412544707704022377 00000000000000transform - Point (unknown destination SRID) :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POINT(11 43)', 4326), 326320)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POINT(11 43)', 4326), 326320)) (NULL) libspatialite-4.3.0a/test/sql_stmt_proj_tests/output16.testcase0000664000175000017500000000216312544707704022011 00000000000000Output format tests - LINESTRINGZM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(GeomFromWkb(AsBinary(geom))), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;LINESTRING(-1 1 2.3 -1, 1 -2 4.6 -6)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(GeomFromWkb(AsBinary(geom))) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) LINESTRING ZM(-1 1 2.3 -1, 1 -2 4.6 -6) -1,1,2.3 1,-2,4.6 -1,1,2.3 1,-2,4.6:0 {"type":"LineString","coordinates":[[-1,1,2.3],[1,-2,4.6]]}:0 LINESTRING(-1 1,1 -2) SRID=4326;LINESTRING(-1 1 2.3 -1,1 -2 4.6 -6):0 30313032303030304530453631303030303030323030303030303030303030303030303030304630424630303030303030303030303046303346363636363636363636363636303234303030303030303030303030304630424630303030303030303030303046303346303030303030303030303030303043303636363636363636363636363132343030303030303030303030303031384330 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output24.testcase0000664000175000017500000000406712544707704022015 00000000000000Output format tests - MULTILINESTRINGZ via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTILINESTRING((-1 1 9, 2 3 8.4, 4 1 9.4),(0 2 1, 2 0 1, 0 0 2, 1 1 3))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTILINESTRING Z((-1 1 9, 2 3 8.4, 4 1 9.4), (0 2 1, 2 0 1, 0 0 2, 1 1 3)) -1,1,9 2,3,8.4 4,1,9.40,2,1 2,0,1 0,0,2 1,1,3 -1,1,9 2,3,8.4 4,1,9.40,2,1 2,0,1 0,0,2 1,1,3:0 {"type":"MultiLineString","coordinates":[[[-1,1,9],[2,3,8.4],[4,1,9.4]],[[0,2,1],[2,0,1],[0,0,2],[1,1,3]]]}:0 MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1)) SRID=4326;MULTILINESTRING((-1 1 9,2 3 8.4,4 1 9.4),(0 2 1,2 0 1,0 0 2,1 1 3)) 3031303530303030413045363130303030303032303030303030303130323030303038303033303030303030303030303030303030303030463042463030303030303030303030304630334630303030303030303030303032323430303030303030303030303030303034303030303030303030303030303038343043444343434343434343434332303430303030303030303030303030313034303030303030303030303030304630334643444343434343434343434332323430303130323030303038303034303030303030303030303030303030303030303030303030303030303030303030303030343030303030303030303030303046303346303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030383430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/askml1.testcase0000664000175000017500000000035112544707704021467 00000000000000askml - 2 arg bad precision (error) :memory: #use in-memory database SELECT askml(GeomFromText("Point(1 2)", 4326), "hello") 1 # rows (not including the header row) 1 # columns askml(GeomFromText("Point(1 2)", 4326), "hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform17.testcase0000664000175000017500000000152012544707704022461 00000000000000transform - Polygon Z :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POLYGONZ((11 43 100, 12 43 101, 12 44 102, 11 44 103, 11 43 100), (11.4 43.4 100, 11.6 43.4 101, 11.6 43.6 102, 11.4 43.6 103, 11.4 43.4 100))', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POLYGONZ((11 43 100, 12 43 101, 12 44 102, 11 44 103, 11 43 100), (11.4 43.4 100, 11.6 43.4 101, 11.6 43.6 102, 11.4 43.6 103, 11.4 43.4 100))', 4326), 32632)) POLYGON Z((663019.070082 4762755.64169 100, 744533.019451 4765182.932802 101, 740526.321055 4876249.126963 102, 660349.410579 4873817.333441 103, 663019.070082 4762755.64169 100), (694349.575562 4808033.274618 100, 710545.984354 4808519.151148 101, 709851.653212 4830731.987849 102, 693708.725206 4830245.931093 103, 694349.575562 4808033.274618 100)) libspatialite-4.3.0a/test/sql_stmt_proj_tests/output7.testcase0000664000175000017500000000244512544707704021734 00000000000000Output format tests - Linestring, NAD83 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom, 6), AsGML(2, geom, 7), AsGML(3, geom, 8), AsGeoJSON(geom, 6), AsGeoJSON(geom, 5, 4), AsWkt(geom, 5) FROM (SELECT GeomFromEwkt("SRID=3636;LINESTRING(1065407.0674 116445.5897, 2968193.5686 805860.5650)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom, 6) AsGML(2, geom, 7) AsGML(3, geom, 8) AsGeoJSON(geom, 6) AsGeoJSON(geom, 5, 4) AsWkt(geom, 5) LINESTRING(1065407.0674 116445.5897, 2968193.5686 805860.565) -104.05,45.93 -96.430658,47.805216 1065407.0674,116445.5897 2968193.5686,805860.565:0 1065407.0674 116445.5897 2968193.5686 805860.565:0 {"type":"LineString","coordinates":[[1065407.0674,116445.5897],[2968193.5686,805860.565]]}:0 {"type":"LineString","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:3636"}},"coordinates":[[1065407.0674,116445.5897],[2968193.5686,805860.565]]}:0 LINESTRING(1065407.0674 116445.5897,2968193.5686 805860.565) libspatialite-4.3.0a/test/sql_stmt_proj_tests/output18.testcase0000664000175000017500000000463512544707704022021 00000000000000Output format tests - POLYGONM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(GeomFromWkb(AsBinary(geom))), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;POLYGONM((-10 -10 1, -10 10 2, 10 10 3, 10 -10 4, -10 -10 1),(-1 1 2.3, 1 -2 4.6, 0 -2 1.6, -1 1 2.3))") as geom) dummy 1 # rows (not including the header row) 7 # columns AsText(GeomFromWkb(AsBinary(geom))) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) POLYGON M((-10 -10 1, -10 10 2, 10 10 3, 10 -10 4, -10 -10 1), (-1 1 2.3, 1 -2 4.6, 0 -2 1.6, -1 1 2.3)) -10,-10 -10,10 10,10 10,-10 -10,-10-1,1 1,-2 0,-2 -1,1 -10,-10 -10,10 10,10 10,-10 -10,-10-1,1 1,-2 0,-2 -1,1:0 {"type":"Polygon","coordinates":[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-1,1],[1,-2],[0,-2],[-1,1]]]}:0 POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-1 1,1 -2,0 -2,-1 1)):0 SRID=4326;POLYGONM((-10 -10 1,-10 10 2,10 10 3,10 -10 4,-10 -10 1),(-1 1 2.3,1 -2 4.6,0 -2 1.6,-1 1 2.3)) 303130333030303036304536313030303030303230303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463030303030303030303030303234433030303030303030303030303032343430303030303030303030303030303034303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303834303030303030303030303030303234343030303030303030303030303032344330303030303030303030303030313034303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463034303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430303030303030303030303030303030303030303030303030303030303030433039413939393939393939393946393346303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output8.testcase0000664000175000017500000000226112544707704021731 00000000000000Output format tests - MULTIPOINT, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom) FROM (SELECT GeomFromEWkt("SRID=4326;MULTIPOINT(0 0, 1 1, 0 2, -1 1)") as geom) dummy; 1 # rows (not including the header row) 6 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) MULTIPOINT(0 0, 1 1, 0 2, -1 1) 0,01,10,2-1,1 0,01,10,2-1,1:0 {"type":"MultiPoint","coordinates":[[0,0],[1,1],[0,2],[-1,1]]}:0 MULTIPOINT(0 0,1 1,0 2,-1 1) SRID=4326;MULTIPOINT(0 0,1 1,0 2,-1 1) libspatialite-4.3.0a/test/sql_stmt_proj_tests/output12.testcase0000664000175000017500000000146012544707704022004 00000000000000Output format tests - POINTM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(GeomFromWkb(AsBinary(geom))), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;POINTM(-1 1 2.3)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(GeomFromWkb(AsBinary(geom))) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) POINT M(-1 1 2.3) -1,1 -1,1:0 {"type":"Point","coordinates":[-1,1]}:0 POINT(-1 1) SRID=4326;POINTM(-1 1 2.3) 303130313030303036304536313030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/askml11.testcase0000664000175000017500000000042512544707704021552 00000000000000askml - 2 arg int descriptions excessive precision :memory: #use in-memory database SELECT askml(GeomFromText("Point(1 2)", 4326), 44) 1 # rows (not including the header row) 1 # columns askml(GeomFromText("Point(1 2)", 4326), 44) 1,2 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output21.testcase0000664000175000017500000000234312544707704022005 00000000000000Output format tests - MULTIPOINTZ via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTIPOINT(-1 1 2.3,1 2 4.1)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTIPOINT Z(-1 1 2.3, 1 2 4.1) -1,1,2.31,2,4.1 -1,1,2.31,2,4.1:0 {"type":"MultiPoint","coordinates":[[-1,1,2.3],[1,2,4.1]]}:0 MULTIPOINT(-1 1,1 2) SRID=4326;MULTIPOINT(-1 1 2.3,1 2 4.1) 30313034303030304130453631303030303030323030303030303031303130303030383030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030313031303030303830303030303030303030303030463033463030303030303030303030303030343036363636363636363636363631303430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/askml6.testcase0000664000175000017500000000045512544707704021501 00000000000000askml - 4 arg blob descriptions, bad precision (error) :memory: #use in-memory database SELECT askml(zeroblob(10), zeroblob(12), GeomFromText("Point(1 2)", 4326), 4.2) 1 # rows (not including the header row) 1 # columns askml(zeroblob(10), zeroblob(12), GeomFromText("Point(1 2)", 4326), 4.2) (NULL) libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform1.testcase0000664000175000017500000000024512544707704022375 00000000000000transform - null args :memory: #use in-memory database SELECT Transform(NULL, NULL) 1 # rows (not including the header row) 1 # columns Transform(NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_proj_tests/output10.testcase0000664000175000017500000000132112544707704021776 00000000000000Output format tests - POINT via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;POINT(-1 1)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) POINT(-1 1) -1,1 -1,1:0 {"type":"Point","coordinates":[-1,1]}:0 POINT(-1 1) SRID=4326;POINT(-1 1) 3031303130303030323045363130303030303030303030303030303030304630424630303030303030303030303046303346 libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform14.testcase0000664000175000017500000000044712544707704022465 00000000000000transform - Point ZM :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POINTZM(11 43 100 1)', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POINTZM(11 43 100 1)', 4326), 32632)) POINT ZM(663019.070082 4762755.64169 100 1) libspatialite-4.3.0a/test/sql_stmt_proj_tests/askml2.testcase0000664000175000017500000000034012544707704021466 00000000000000askml - 2 arg weird SRID (error) :memory: #use in-memory database SELECT askml(GeomFromText("Point(1 2)", 9999989), 4) 1 # rows (not including the header row) 1 # columns askml(GeomFromText("Point(1 2)", 9999989), 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_proj_tests/output38.testcase0000664000175000017500000000102712544707704022013 00000000000000Output format tests - XML masked chars :memory: #use in-memory database SELECT AsKML('myname', 'mydesc &"<>', GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))", 4326)); 1 # rows (not including the header row) 1 # columns AsKML('myname', 'mydesc &"<>', GeomFromText("POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))", 4326)) mynamemydesc &"<>0,0 1,1 0,2 -1,1 0,0 libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform10.testcase0000664000175000017500000000061712544707704022460 00000000000000transform - Linestring M :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('LINESTRINGM(11 43 1, 12 43 2, 12 42 3)', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('LINESTRINGM(11 43 1, 12 43 2, 12 42 3)', 4326), 32632)) LINESTRING M(663019.070082 4762755.64169 1, 744533.019451 4765182.932802 2, 748464.920716 4654130.891324 3) libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform9.testcase0000664000175000017500000000064112544707704022405 00000000000000transform - Linestring Z :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('LINESTRINGZ(11 43 100, 12 43 101, 12 42 102)', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('LINESTRINGZ(11 43 100, 12 43 101, 12 42 102)', 4326), 32632)) LINESTRING Z(663019.070082 4762755.64169 100, 744533.019451 4765182.932802 101, 748464.920716 4654130.891324 102) libspatialite-4.3.0a/test/sql_stmt_proj_tests/output26.testcase0000664000175000017500000000452212544707704022013 00000000000000Output format tests - MULTILINESTRINGZM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTILINESTRING((-1 1 9 1, 2 3 8.4 3, 4 1 9.4 1),(0 2 1 84, 2 0 1 26, 0 0 2 -2.1, 1 1 3 0))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTILINESTRING ZM((-1 1 9 1, 2 3 8.4 3, 4 1 9.4 1), (0 2 1 84, 2 0 1 26, 0 0 2 -2.1, 1 1 3 0)) -1,1,9 2,3,8.4 4,1,9.40,2,1 2,0,1 0,0,2 1,1,3 -1,1,9 2,3,8.4 4,1,9.40,2,1 2,0,1 0,0,2 1,1,3:0 {"type":"MultiLineString","coordinates":[[[-1,1,9],[2,3,8.4],[4,1,9.4]],[[0,2,1],[2,0,1],[0,0,2],[1,1,3]]]}:0 MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1)) SRID=4326;MULTILINESTRING((-1 1 9 1,2 3 8.4 3,4 1 9.4 1),(0 2 1 84,2 0 1 26,0 0 2 -2.1,1 1 3 0)) 303130353030303045304536313030303030303230303030303030313032303030304330303330303030303030303030303030303030303046304246303030303030303030303030463033463030303030303030303030303232343030303030303030303030303046303346303030303030303030303030303034303030303030303030303030303038343043444343434343434343434332303430303030303030303030303030303834303030303030303030303030303130343030303030303030303030303046303346434443434343434343434343323234303030303030303030303030304630334630313032303030304330303430303030303030303030303030303030303030303030303030303030303030303030303034303030303030303030303030304630334630303030303030303030303035353430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030334134303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303034304344434343434343434343433030433030303030303030303030303046303346303030303030303030303030463033463030303030303030303030303038343030303030303030303030303030303030 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output19.testcase0000664000175000017500000000552112544707704022015 00000000000000Output format tests - POLYGONZM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(GeomFromWkb(AsBinary(geom))), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;POLYGON((-10 -10 1 4, -10 10 2 5, 10 10 3 6.8, 10 -10 4 5, -10 -10 1 4),(-1 1 2.3 1, 1 -2 4.6 2, 0 -2 1.6 3.333, -1 1 2.3 1))") as geom) dummy 1 # rows (not including the header row) 7 # columns AsText(GeomFromWkb(AsBinary(geom))) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) POLYGON ZM((-10 -10 1 4, -10 10 2 5, 10 10 3 6.8, 10 -10 4 5, -10 -10 1 4), (-1 1 2.3 1, 1 -2 4.6 2, 0 -2 1.6 3.333, -1 1 2.3 1)) -10,-10,1 -10,10,2 10,10,3 10,-10,4 -10,-10,1-1,1,2.3 1,-2,4.6 0,-2,1.6 -1,1,2.3 -10,-10,1 -10,10,2 10,10,3 10,-10,4 -10,-10,1-1,1,2.3 1,-2,4.6 0,-2,1.6 -1,1,2.3:0 {"type":"Polygon","coordinates":[[[-10,-10,1],[-10,10,2],[10,10,3],[10,-10,4],[-10,-10,1]],[[-1,1,2.3],[1,-2,4.6],[0,-2,1.6],[-1,1,2.3]]]}:0 POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-1 1,1 -2,0 -2,-1 1)) SRID=4326;POLYGON((-10 -10 1 4,-10 10 2 5,10 10 3 6.8,10 -10 4 5,-10 -10 1 4),(-1 1 2.3 1,1 -2 4.6 2,0 -2 1.6 3.333,-1 1 2.3 1)) 303130333030303045304536313030303030303230303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303030343030303030303030303030303031343430303030303030303030303030323434303030303030303030303030303234343030303030303030303030303030383430333333333333333333333333314234303030303030303030303030303234343030303030303030303030303032344330303030303030303030303030313034303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030304630334630303030303030303030303031303430303430303030303030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030303030303030303030303046303346303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303030304330394139393939393939393939463933463434384236434537464241393041343030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030303030303030303030303046303346 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output4.testcase0000664000175000017500000000066612544707704021734 00000000000000Output format tests - text input :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsKML("myname", "mydesc", geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom) FROM (SELECT "hello" as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsKML("myname", "mydesc", geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_proj_tests/output35.testcase0000664000175000017500000000440012544707704022006 00000000000000Output format tests - GEOMETRYCOLLECTION XYZM (POINT, POINT LINESTRING) :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 100 10), POINTZM(2 3 101 11), LINESTRINGZM(3 4 100 10, 4 5 101 11))", 4326) AS geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) GEOMETRYCOLLECTION ZM(POINT ZM(1 2 100 10), POINT ZM(2 3 101 11), LINESTRING ZM(3 4 100 10, 4 5 101 11)) 1,2,1002,3,1013,4,100 4,5,101 1,2,1002,3,1013,4,100 4,5,101:0 # trailing ":0" required to avoid truncation !!! {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2,100]},{"type":"Point","coordinates":[2,3,101]},{"type":"LineString","coordinates":[[3,4,100],[4,5,101]]}]}:0 # trailing ":0" required to avoid truncation !!! GEOMETRYCOLLECTION(POINT(1 2),POINT(2 3),LINESTRING(3 4,4 5)) SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100 10),POINT(2 3 101 11),LINESTRING(3 4 100 10,4 5 101 11)) 3031303730303030453045363130303030303033303030303030303130313030303043303030303030303030303030304630334630303030303030303030303030303430303030303030303030303030353934303030303030303030303030303234343030313031303030304330303030303030303030303030303034303030303030303030303030303038343030303030303030303030343035393430303030303030303030303030323634303031303230303030433030323030303030303030303030303030303030303038343030303030303030303030303031303430303030303030303030303030353934303030303030303030303030303234343030303030303030303030303031303430303030303030303030303030313434303030303030303030303034303539343030303030303030303030303032363430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output31.testcase0000664000175000017500000001054612544707704022012 00000000000000Output format tests - GEOMETRY COLLECTION OF POLYGONZM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;GEOMETRYCOLLECTION(POLYGON((-10 -10 4 0, -10 10 5 0, 10 10 6 1, 10 -10 5 0, -10 -10 4 0),(-8 -8 1 1, -2 -8 3 4, -2 -2 5 6, -8 -2 7 9, -8 -8 1 1),(8 8 11 0, 2 8 13 -2, 2 2 17 -4, 8 2 13 -8, 8 8 11 0)))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) GEOMETRYCOLLECTION ZM(POLYGON ZM((-10 -10 4 0, -10 10 5 0, 10 10 6 1, 10 -10 5 0, -10 -10 4 0), (-8 -8 1 1, -2 -8 3 4, -2 -2 5 6, -8 -2 7 9, -8 -8 1 1), (8 8 11 0, 2 8 13 -2, 2 2 17 -4, 8 2 13 -8, 8 8 11 0))) -10,-10,4 -10,10,5 10,10,6 10,-10,5 -10,-10,4-8,-8,1 -2,-8,3 -2,-2,5 -8,-2,7 -8,-8,18,8,11 2,8,13 2,2,17 8,2,13 8,8,11 -10,-10,4 -10,10,5 10,10,6 10,-10,5 -10,-10,4-8,-8,1 -2,-8,3 -2,-2,5 -8,-2,7 -8,-8,18,8,11 2,8,13 2,2,17 8,2,13 8,8,11:0 {"type":"GeometryCollection","geometries":[{"type":"Polygon","coordinates":[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]}]}:0 GEOMETRYCOLLECTION(POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;GEOMETRYCOLLECTION(POLYGON((-10 -10 4 0,-10 10 5 0,10 10 6 1,10 -10 5 0,-10 -10 4 0),(-8 -8 1 1,-2 -8 3 4,-2 -2 5 6,-8 -2 7 9,-8 -8 1 1),(8 8 11 0,2 8 13 -2,2 2 17 -4,8 2 13 -8,8 8 11 0))) 3031303730303030453045363130303030303031303030303030303130333030303043303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303030303030303030303030303030303030323443303030303030303030303030303234343030303030303030303030303031343430303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030313834303030303030303030303030304630334630303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303030303030303030303030303030303030323443303030303030303030303030303234433030303030303030303030303031303430303030303030303030303030303030303035303030303030303030303030303030303030323043303030303030303030303030303230433030303030303030303030303046303346303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303130343030303030303030303030303030304330303030303030303030303030303043303030303030303030303030303134343030303030303030303030303031383430303030303030303030303030323043303030303030303030303030303030433030303030303030303030303031433430303030303030303030303030323234303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030304630334630353030303030303030303030303030303030303230343030303030303030303030303032303430303030303030303030303030323634303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030323034303030303030303030303030303241343030303030303030303030303030304330303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030313043303030303030303030303030303230343030303030303030303030303030303430303030303030303030303030324134303030303030303030303030303230433030303030303030303030303032303430303030303030303030303030323034303030303030303030303030303236343030303030303030303030303030303030 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output33.testcase0000664000175000017500000001005412544707704022006 00000000000000Output format tests - GEOMETRY COLLECTION OF POINTM and POLYGONM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 3),POLYGONM((-10 -10 4, -10 10 5, 10 10 6 , 10 -10 5, -10 -10 4),(-8 -8 1, -2 -8 3, -2 -2 5, -8 -2 7, -8 -8 1),(8 8 11, 2 8 13, 2 2 17, 8 2 13, 8 8 11)))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) GEOMETRYCOLLECTION M(POINT M(1 2 3), POLYGON M((-10 -10 4, -10 10 5, 10 10 6, 10 -10 5, -10 -10 4), (-8 -8 1, -2 -8 3, -2 -2 5, -8 -2 7, -8 -8 1), (8 8 11, 2 8 13, 2 2 17, 8 2 13, 8 8 11))) 1,2-10,-10 -10,10 10,10 10,-10 -10,-10-8,-8 -2,-8 -2,-2 -8,-2 -8,-88,8 2,8 2,2 8,2 8,8:0 1,2-10,-10 -10,10 10,10 10,-10 -10,-10-8,-8 -2,-8 -2,-2 -8,-2 -8,-88,8 2,8 2,2 8,2 8,8:0 {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2]},{"type":"Polygon","coordinates":[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]}]}:0 GEOMETRYCOLLECTION(POINT(1 2),POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 3),POLYGONM((-10 -10 4,-10 10 5,10 10 6,10 -10 5,-10 -10 4),(-8 -8 1,-2 -8 3,-2 -2 5,-8 -2 7,-8 -8 1),(8 8 11,2 8 13,2 2 17,8 2 13,8 8 11))) 303130373030303036304536313030303030303230303030303030313031303030303430303030303030303030303030463033463030303030303030303030303030343030303030303030303030303030383430303130333030303034303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303138343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030353030303030303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303030433030303030303030303030303030304330303030303030303030303030313434303030303030303030303030303230433030303030303030303030303030304330303030303030303030303030314334303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463035303030303030303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032413430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032413430303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform20.testcase0000664000175000017500000000140612544707704022456 00000000000000transform - Polygon :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POLYGON((663000 4762000, 663100 4762000, 663100 4762100, 663000 4762100, 663000 4762000), (663010 4762010, 663020 4762010, 663020 4762020, 663010 4762020, 663010 4762010))', 32632), 4326)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POLYGON((663000 4762000, 663100 4762000, 663100 4762100, 663000 4762100, 663000 4762000), (663010 4762010, 663020 4762010, 663020 4762020, 663010 4762020, 663010 4762010))', 32632), 4326)) POLYGON((10.999546 42.993204, 11.000772 42.993182, 11.000801 42.994082, 10.999575 42.994104, 10.999546 42.993204), (10.999671 42.993291, 10.999794 42.993289, 10.999797 42.993379, 10.999674 42.993381, 10.999671 42.993291)) libspatialite-4.3.0a/test/sql_stmt_proj_tests/askml9.testcase0000664000175000017500000000054012544707704021477 00000000000000askml - 4 arg null descriptions :memory: #use in-memory database SELECT askml(null, null, GeomFromText("Point(1 2)", 4326), 4) 1 # rows (not including the header row) 1 # columns askml(null, null, GeomFromText("Point(1 2)", 4326), 4) NULLNULL1,2 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output14.testcase0000664000175000017500000000203512544707704022005 00000000000000Output format tests - LINESTRINGZ via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(GeomFromWkb(AsBinary(geom))), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;LINESTRING(-1 1 2.3, 1 -2 4.6)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(GeomFromWkb(AsBinary(geom))) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) LINESTRING Z(-1 1 2.3, 1 -2 4.6) -1,1,2.3 1,-2,4.6 -1,1,2.3 1,-2,4.6:0 {"type":"LineString","coordinates":[[-1,1,2.3],[1,-2,4.6]]}:0 LINESTRING(-1 1,1 -2) SRID=4326;LINESTRING(-1 1 2.3,1 -2 4.6) 3031303230303030413045363130303030303032303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output23.testcase0000664000175000017500000000335012544707704022006 00000000000000Output format tests - MULTILINESTRING via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTILINESTRING((-1 1, 2 3, 4 1),(0 2, 2 0, 0 0, 1 1))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTILINESTRING((-1 1, 2 3, 4 1), (0 2, 2 0, 0 0, 1 1)) -1,1 2,3 4,10,2 2,0 0,0 1,1 -1,1 2,3 4,10,2 2,0 0,0 1,1:0 {"type":"MultiLineString","coordinates":[[[-1,1],[2,3],[4,1]],[[0,2],[2,0],[0,0],[1,1]]]}:0 MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1)) SRID=4326;MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1)) 30313035303030303230453631303030303030323030303030303031303230303030303030333030303030303030303030303030303030304630424630303030303030303030303046303346303030303030303030303030303034303030303030303030303030303038343030303030303030303030303031303430303030303030303030303030463033463031303230303030303030343030303030303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030303034303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030304630334630303030303030303030303046303346 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output27.testcase0000664000175000017500000000754312544707704022022 00000000000000Output format tests - MULTIPOLYGON via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTIPOLYGON(((10 10, 0 10, 0 0, 0 10, 10 10)),((-10 -10, -10 10, 10 10, 10 -10, -10 -10),(-8 -8, -2 -8, -2 -2, -8 -2, -8 -8),(8 8, 2 8, 2 2, 8 2, 8 8)))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTIPOLYGON(((10 10, 0 10, 0 0, 0 10, 10 10)), ((-10 -10, -10 10, 10 10, 10 -10, -10 -10), (-8 -8, -2 -8, -2 -2, -8 -2, -8 -8), (8 8, 2 8, 2 2, 8 2, 8 8))) 10,10 0,10 0,0 0,10 10,10-10,-10 -10,10 10,10 10,-10 -10,-10-8,-8 -2,-8 -2,-2 -8,-2 -8,-88,8 2,8 2,2 8,2 8,8 10,10 0,10 0,0 0,10 10,10-10,-10 -10,10 10,10 10,-10 -10,-10-8,-8 -2,-8 -2,-2 -8,-2 -8,-88,8 2,8 2,2 8,2 8,8:0 {"type":"MultiPolygon","coordinates":[[[[10,10],[0,10],[0,0],[0,10],[10,10]]],[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]]}:0 MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) 3031303630303030323045363130303030303032303030303030303130333030303030303031303030303030303530303030303030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303030303030303030303030303030303032343430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030323434303030303030303030303030303234343030303030303030303030303032343430303130333030303030303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303234433030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303234433030303030303030303030303032344330303530303030303030303030303030303030303032304330303030303030303030303030323043303030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303043303030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303043303030303030303030303030303230433030303030303030303030303032304330303530303030303030303030303030303030303032303430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032303430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303032303430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032303430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output3.testcase0000664000175000017500000000067712544707704021735 00000000000000Output format tests - bad blob input :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsKML("myname", "mydesc", geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom) FROM (SELECT zeroblob(40) as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsKML("myname", "mydesc", geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_proj_tests/output6.testcase0000664000175000017500000000135112544707704021726 00000000000000Output format tests - POINT input, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsKML("myname", "mydesc", geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom) FROM (SELECT MakePoint(1, 2, 4326) as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsKML("myname", "mydesc", geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) POINT(1 2) 1,2 mynamemydesc1,2 1,2:0 {"type":"Point","coordinates":[1,2]}:0 POINT(1 2) SRID=4326;POINT(1 2) libspatialite-4.3.0a/test/sql_stmt_proj_tests/output32.testcase0000664000175000017500000001022312544707704022003 00000000000000Output format tests - GEOMETRY COLLECTION OF POINTZ and POLYGONZ via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 3),POLYGON((-10 -10 4, -10 10 5, 10 10 6 , 10 -10 5, -10 -10 4),(-8 -8 1, -2 -8 3, -2 -2 5, -8 -2 7, -8 -8 1),(8 8 11, 2 8 13, 2 2 17, 8 2 13, 8 8 11)))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) GEOMETRYCOLLECTION Z(POINT Z(1 2 3), POLYGON Z((-10 -10 4, -10 10 5, 10 10 6, 10 -10 5, -10 -10 4), (-8 -8 1, -2 -8 3, -2 -2 5, -8 -2 7, -8 -8 1), (8 8 11, 2 8 13, 2 2 17, 8 2 13, 8 8 11))) 1,2,3-10,-10,4 -10,10,5 10,10,6 10,-10,5 -10,-10,4-8,-8,1 -2,-8,3 -2,-2,5 -8,-2,7 -8,-8,18,8,11 2,8,13 2,2,17 8,2,13 8,8,11 1,2,3-10,-10,4 -10,10,5 10,10,6 10,-10,5 -10,-10,4-8,-8,1 -2,-8,3 -2,-2,5 -8,-2,7 -8,-8,18,8,11 2,8,13 2,2,17 8,2,13 8,8,11:0 {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2,3]},{"type":"Polygon","coordinates":[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]}]}:0 GEOMETRYCOLLECTION(POINT(1 2),POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 3),POLYGON((-10 -10 4,-10 10 5,10 10 6,10 -10 5,-10 -10 4),(-8 -8 1,-2 -8 3,-2 -2 5,-8 -2 7,-8 -8 1),(8 8 11,2 8 13,2 2 17,8 2 13,8 8 11))) 303130373030303041304536313030303030303230303030303030313031303030303830303030303030303030303030463033463030303030303030303030303030343030303030303030303030303030383430303130333030303038303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303138343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030353030303030303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303030433030303030303030303030303030304330303030303030303030303030313434303030303030303030303030303230433030303030303030303030303030304330303030303030303030303030314334303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463035303030303030303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032413430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032413430303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform8.testcase0000664000175000017500000000044012544707704022401 00000000000000transform - illegal Linestring :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('LINESTRING(11 43, 12 43, 12 42', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('LINESTRING(11 43, 12 43, 12 42', 4326), 32632)) (NULL) libspatialite-4.3.0a/test/sql_stmt_proj_tests/output5.testcase0000664000175000017500000000116512544707704021730 00000000000000Output format tests - POINT input, no SRID :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsKML("myname", "mydesc", geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom) FROM (SELECT MakePoint(1,2) as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsKML("myname", "mydesc", geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) POINT(1 2) (NULL) (NULL) 1,2:0" required to avoid truncation !! {"type":"Point","coordinates":[1,2]}:0" required to avoid truncation !! POINT(1 2) SRID=0;POINT(1 2) libspatialite-4.3.0a/test/sql_stmt_proj_tests/output34.testcase0000664000175000017500000000665512544707704022023 00000000000000Output format tests - GEOMETRY COLLECTION OF POINT and POLYGON via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;GEOMETRYCOLLECTION(POINT(1 2),POLYGON((-10 -10, -10 10, 10 10 , 10 -10, -10 -10),(-8 -8, -2 -8, -2 -2, -8 -2, -8 -8),(8 8, 2 8, 2 2, 8 2, 8 8)))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) GEOMETRYCOLLECTION(POINT(1 2), POLYGON((-10 -10, -10 10, 10 10, 10 -10, -10 -10), (-8 -8, -2 -8, -2 -2, -8 -2, -8 -8), (8 8, 2 8, 2 2, 8 2, 8 8))) 1,2-10,-10 -10,10 10,10 10,-10 -10,-10-8,-8 -2,-8 -2,-2 -8,-2 -8,-88,8 2,8 2,2 8,2 8,8 1,2-10,-10 -10,10 10,10 10,-10 -10,-10-8,-8 -2,-8 -2,-2 -8,-2 -8,-88,8 2,8 2,2 8,2 8,8:0 {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2]},{"type":"Polygon","coordinates":[[[-10,-10],[-10,10],[10,10],[10,-10],[-10,-10]],[[-8,-8],[-2,-8],[-2,-2],[-8,-2],[-8,-8]],[[8,8],[2,8],[2,2],[8,2],[8,8]]]}]}:0 GEOMETRYCOLLECTION(POINT(1 2),POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;GEOMETRYCOLLECTION(POINT(1 2),POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) 3031303730303030323045363130303030303032303030303030303130313030303030303030303030303030303030304630334630303030303030303030303030303430303130333030303030303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303234433030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303234433030303030303030303030303032344330303530303030303030303030303030303030303032304330303030303030303030303030323043303030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303043303030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303043303030303030303030303030303230433030303030303030303030303032304330303530303030303030303030303030303030303032303430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032303430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303032303430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032303430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform13.testcase0000664000175000017500000000042712544707704022462 00000000000000transform - Point M :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POINTM(11 43 1)', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POINTM(11 43 1)', 4326), 32632)) POINT M(663019.070082 4762755.64169 1) libspatialite-4.3.0a/test/sql_stmt_proj_tests/askml10.testcase0000664000175000017500000000054212544707704021551 00000000000000askml - 4 arg int descriptions excessive precision :memory: #use in-memory database SELECT askml(2, 3, GeomFromText("Point(1 2)", 4326), 44) 1 # rows (not including the header row) 1 # columns askml(2, 3, GeomFromText("Point(1 2)", 4326), 44) 231,2 libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform3.testcase0000664000175000017500000000041312544707704022374 00000000000000transform - Point :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POINT(11 43)', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POINT(11 43)', 4326), 32632)) POINT(663019.070082 4762755.64169) libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform2.testcase0000664000175000017500000000027112544707704022375 00000000000000transform - zeroblob arg :memory: #use in-memory database SELECT Transform(zeroblob(48), NULL) 1 # rows (not including the header row) 1 # columns Transform(zeroblob(48), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_proj_tests/output36.testcase0000664000175000017500000000332712544707704022016 00000000000000Output format tests - GEOMETRYCOLLECTION XYZ (POINT LINESTRING) :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 100), LINESTRINGZ(3 4 100, 4 5 101))", 4326) AS geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) GEOMETRYCOLLECTION Z(POINT Z(1 2 100), LINESTRING Z(3 4 100, 4 5 101)) 1,2,1003,4,100 4,5,101 1,2,1003,4,100 4,5,101:0 # trailing ":0" required to avoid truncation !!! {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2,100]},{"type":"LineString","coordinates":[[3,4,100],[4,5,101]]}]}:0 # trailing ":0" required to avoid truncation !!! GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(3 4,4 5)) SRID=4326;GEOMETRYCOLLECTION(POINT(1 2 100),LINESTRING(3 4 100,4 5 101)) 303130373030303041304536313030303030303230303030303030313031303030303830303030303030303030303030463033463030303030303030303030303030343030303030303030303030303035393430303130323030303038303032303030303030303030303030303030303030303834303030303030303030303030303130343030303030303030303030303035393430303030303030303030303030313034303030303030303030303030303134343030303030303030303030343035393430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/askml3.testcase0000664000175000017500000000051412544707704021472 00000000000000askml - 4 arg int descriptions :memory: #use in-memory database SELECT askml(2, 3, GeomFromText("Point(1 2)", 4326), 4) 1 # rows (not including the header row) 1 # columns askml(2, 3, GeomFromText("Point(1 2)", 4326), 4) 231,2 libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform19.testcase0000664000175000017500000000162012544707704022464 00000000000000transform - Polygon ZM :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POLYGONZM((11 43 100 1, 12 43 101 2, 12 44 102 3, 11 44 103 4, 11 43 100 1), (11.4 43.4 100 1, 11.6 43.4 101 2, 11.6 43.6 102 3, 11.4 43.6 103 4, 11.4 43.4 100 1))', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POLYGONZM((11 43 100 1, 12 43 101 2, 12 44 102 3, 11 44 103 4, 11 43 100 1), (11.4 43.4 100 1, 11.6 43.4 101 2, 11.6 43.6 102 3, 11.4 43.6 103 4, 11.4 43.4 100 1))', 4326), 32632)) POLYGON ZM((663019.070082 4762755.64169 100 1, 744533.019451 4765182.932802 101 2, 740526.321055 4876249.126963 102 3, 660349.410579 4873817.333441 103 4, 663019.070082 4762755.64169 100 1), (694349.575562 4808033.274618 100 1, 710545.984354 4808519.151148 101 2, 709851.653212 4830731.987849 102 3, 693708.725206 4830245.931093 103 4, 694349.575562 4808033.274618 100 1)) libspatialite-4.3.0a/test/sql_stmt_proj_tests/fromgml42.testcase0000664000175000017500000000124712544707704022115 00000000000000FromGML - multipointZ, multiple SRID, no namespace :memory: #use in-memory database SELECT AsText(GeomFromGml('1,2,3.22,4,3.2')) 1 # rows (not including the header row) 1 # columns AsText(GeomFromGml('1,2,3.22,4,3.2')):0 MULTIPOINT Z(1 2 3.2, -4.356405 0.000738 79.631063) libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform7.testcase0000664000175000017500000000056712544707704022412 00000000000000transform - Linestring :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('LINESTRING(11 43, 12 43, 12 42)', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('LINESTRING(11 43, 12 43, 12 42)', 4326), 32632)) LINESTRING(663019.070082 4762755.64169, 744533.019451 4765182.932802, 748464.920716 4654130.891324) libspatialite-4.3.0a/test/sql_stmt_proj_tests/output37.testcase0000664000175000017500000000325512544707704022017 00000000000000Output format tests - GEOMETRYCOLLECTION XYM (POINT LINESTRING) :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 10), LINESTRINGM(3 4 10, 4 5 11))", 4326) AS geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) GEOMETRYCOLLECTION M(POINT M(1 2 10), LINESTRING M(3 4 10, 4 5 11)) 1,23,4 4,5 1,23,4 4,5:0 # trailing ":0" required to avoid truncation !!! {"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1,2]},{"type":"LineString","coordinates":[[3,4],[4,5]]}]}:0 # trailing ":0" required to avoid truncation !!! GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(3 4,4 5)) SRID=4326;GEOMETRYCOLLECTIONM(POINTM(1 2 10),LINESTRINGM(3 4 10,4 5 11)) 303130373030303036304536313030303030303230303030303030313031303030303430303030303030303030303030463033463030303030303030303030303030343030303030303030303030303032343430303130323030303034303032303030303030303030303030303030303030303834303030303030303030303030303130343030303030303030303030303032343430303030303030303030303030313034303030303030303030303030303134343030303030303030303030303032363430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output11.testcase0000664000175000017500000000147212544707704022006 00000000000000Output format tests - POINTZ via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(GeomFromWkb(AsBinary(geom))), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;POINT(-1 1 2.3)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(GeomFromWkb(AsBinary(geom))) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) POINT Z(-1 1 2.3) -1,1,2.3 -1,1,2.3:0 {"type":"Point","coordinates":[-1,1,2.3]}:0 POINT(-1 1) SRID=4326;POINT(-1 1 2.3) 303130313030303041304536313030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output22.testcase0000664000175000017500000000231512544707704022005 00000000000000Output format tests - MULTIPOINTM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTIPOINTM(-1 1 2.3,1 2 4.1)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTIPOINT M(-1 1 2.3, 1 2 4.1) -1,11,2 -1,11,2:0 {"type":"MultiPoint","coordinates":[[-1,1],[1,2]]}:0 MULTIPOINT(-1 1,1 2) SRID=4326;MULTIPOINTM(-1 1 2.3,1 2 4.1) 30313034303030303630453631303030303030323030303030303031303130303030343030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030313031303030303430303030303030303030303030463033463030303030303030303030303030343036363636363636363636363631303430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform12.testcase0000664000175000017500000000043512544707704022460 00000000000000transform - Point Z :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POINTZ(11 43 100)', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POINTZ(11 43 100)', 4326), 32632)) POINT Z(663019.070082 4762755.64169 100) libspatialite-4.3.0a/test/sql_stmt_proj_tests/Makefile.am0000664000175000017500000000277112544707704020606 00000000000000 EXTRA_DIST = askml10.testcase \ askml11.testcase \ askml1.testcase \ askml2.testcase \ askml3.testcase \ askml4.testcase \ askml5.testcase \ askml6.testcase \ askml7.testcase \ askml8.testcase \ askml9.testcase \ fromgml42.testcase \ output10.testcase \ output11.testcase \ output12.testcase \ output13.testcase \ output14.testcase \ output15.testcase \ output16.testcase \ output17.testcase \ output18.testcase \ output19.testcase \ output1.testcase \ output20.testcase \ output21.testcase \ output22.testcase \ output23.testcase \ output24.testcase \ output25.testcase \ output26.testcase \ output27.testcase \ output28.testcase \ output29.testcase \ output2.testcase \ output30.testcase \ output31.testcase \ output32.testcase \ output33.testcase \ output34.testcase \ output35.testcase \ output36.testcase \ output37.testcase \ output38.testcase \ output3.testcase \ output4.testcase \ output5.testcase \ output6.testcase \ output7.testcase \ output8.testcase \ output9.testcase \ transform10.testcase \ transform11.testcase \ transform12.testcase \ transform13.testcase \ transform14.testcase \ transform15.testcase \ transform16.testcase \ transform17.testcase \ transform18.testcase \ transform19.testcase \ transform1.testcase \ transform20.testcase \ transform21.testcase \ transform2.testcase \ transform3.testcase \ transform4.testcase \ transform5.testcase \ transform6.testcase \ transform7.testcase \ transform8.testcase \ transform9.testcase libspatialite-4.3.0a/test/sql_stmt_proj_tests/output13.testcase0000664000175000017500000000154212544707704022006 00000000000000Output format tests - POINTZM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(GeomFromWkb(AsBinary(geom))), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;POINT(-1 1 2.3 4)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(GeomFromWkb(AsBinary(geom))) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) POINT ZM(-1 1 2.3 4) -1,1,2.3 -1,1,2.3:0 {"type":"Point","coordinates":[-1,1,2.3]}:0 POINT(-1 1) SRID=4326;POINT(-1 1 2.3 4) 30313031303030304530453631303030303030303030303030303030303046304246303030303030303030303030463033463636363636363636363636363032343030303030303030303030303031303430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output1.testcase0000664000175000017500000000154712544707704021730 00000000000000Output format tests - POLYGON, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom) FROM (SELECT GeomFromEWkt("SRID=4326;POLYGON((0 0, 1 1, 0 2, -1 1, 0 0))") as geom) dummy; 1 # rows (not including the header row) 6 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) POLYGON((0 0, 1 1, 0 2, -1 1, 0 0)) 0,0 1,1 0,2 -1,1 0,0 0,0 1,1 0,2 -1,1 0,0:0 {"type":"Polygon","coordinates":[[[0,0],[1,1],[0,2],[-1,1],[0,0]]]}:0 POLYGON((0 0,1 1,0 2,-1 1,0 0)) SRID=4326;POLYGON((0 0,1 1,0 2,-1 1,0 0)) libspatialite-4.3.0a/test/sql_stmt_proj_tests/output9.testcase0000664000175000017500000000107712544707704021736 00000000000000Output format tests - POINT, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom) FROM (SELECT GeomFromEWkt("SRID=4326;POINT(-1 1)") as geom) dummy; 1 # rows (not including the header row) 6 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) POINT(-1 1) -1,1 -1,1:0 {"type":"Point","coordinates":[-1,1]}:0 POINT(-1 1) SRID=4326;POINT(-1 1) libspatialite-4.3.0a/test/sql_stmt_proj_tests/output15.testcase0000664000175000017500000000200712544707704022005 00000000000000Output format tests - LINESTRINGM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(GeomFromWkb(AsBinary(geom))), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;LINESTRINGM(-1 1 2.3, 1 -2 4.6)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(GeomFromWkb(AsBinary(geom))) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) LINESTRING M(-1 1 2.3, 1 -2 4.6) -1,1 1,-2 -1,1 1,-2:0 {"type":"LineString","coordinates":[[-1,1],[1,-2]]}:0 LINESTRING(-1 1,1 -2) SRID=4326;LINESTRINGM(-1 1 2.3,1 -2 4.6) 3031303230303030363045363130303030303032303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output30.testcase0000664000175000017500000001307412544707704022010 00000000000000Output format tests - MULTIPOLYGONZM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTIPOLYGON(((10 10 1.2 1, 0 10 1.3 -2, 0 0 1.1 5.8, 0 10 1.3 3, 10 10 1.2 1)),((-10 -10 4 0, -10 10 5 0, 10 10 6 1, 10 -10 5 0, -10 -10 4 0),(-8 -8 1 1, -2 -8 3 4, -2 -2 5 6, -8 -2 7 9, -8 -8 1 1),(8 8 11 0, 2 8 13 -2, 2 2 17 -4, 8 2 13 -8, 8 8 11 0)))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTIPOLYGON ZM(((10 10 1.2 1, 0 10 1.3 -2, 0 0 1.1 5.8, 0 10 1.3 3, 10 10 1.2 1)), ((-10 -10 4 0, -10 10 5 0, 10 10 6 1, 10 -10 5 0, -10 -10 4 0), (-8 -8 1 1, -2 -8 3 4, -2 -2 5 6, -8 -2 7 9, -8 -8 1 1), (8 8 11 0, 2 8 13 -2, 2 2 17 -4, 8 2 13 -8, 8 8 11 0))) 10,10,1.2 0,10,1.3 0,0,1.1 0,10,1.3 10,10,1.2-10,-10,4 -10,10,5 10,10,6 10,-10,5 -10,-10,4-8,-8,1 -2,-8,3 -2,-2,5 -8,-2,7 -8,-8,18,8,11 2,8,13 2,2,17 8,2,13 8,8,11 10,10,1.2 0,10,1.3 0,0,1.1 0,10,1.3 10,10,1.2-10,-10,4 -10,10,5 10,10,6 10,-10,5 -10,-10,4-8,-8,1 -2,-8,3 -2,-2,5 -8,-2,7 -8,-8,18,8,11 2,8,13 2,2,17 8,2,13 8,8,11:0 {"type":"MultiPolygon","coordinates":[[[[10,10,1.2],[0,10,1.3],[0,0,1.1],[0,10,1.3],[10,10,1.2]]],[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]]}:0 MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;MULTIPOLYGON(((10 10 1.2 1,0 10 1.3 -2,0 0 1.1 5.8,0 10 1.3 3,10 10 1.2 1)),((-10 -10 4 0,-10 10 5 0,10 10 6 1,10 -10 5 0,-10 -10 4 0),(-8 -8 1 1,-2 -8 3 4,-2 -2 5 6,-8 -2 7 9,-8 -8 1 1),(8 8 11 0,2 8 13 -2,2 2 17 -4,8 2 13 -8,8 8 11 0))) 303130363030303045304536313030303030303230303030303030313033303030304330303130303030303030353030303030303030303030303030303030303234343030303030303030303030303032343430333333333333333333333333463333463030303030303030303030304630334630303030303030303030303030303030303030303030303030303030323434304344434343434343434343434634334630303030303030303030303030304330303030303030303030303030303030303030303030303030303030303030303039413939393939393939393946313346333333333333333333333333313734303030303030303030303030303030303030303030303030303030303032343430434443434343434343434343463433463030303030303030303030303038343030303030303030303030303032343430303030303030303030303030323434303333333333333333333333334633334630303030303030303030303046303346303130333030303043303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303030303030303030303030303030303030323443303030303030303030303030303234343030303030303030303030303031343430303030303030303030303030303030303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030313834303030303030303030303030304630334630303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303030303030303030303030303030303030323443303030303030303030303030303234433030303030303030303030303031303430303030303030303030303030303030303035303030303030303030303030303030303030323043303030303030303030303030303230433030303030303030303030303046303346303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303130343030303030303030303030303030304330303030303030303030303030303043303030303030303030303030303134343030303030303030303030303031383430303030303030303030303030323043303030303030303030303030303030433030303030303030303030303031433430303030303030303030303030323234303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030304630334630353030303030303030303030303030303030303230343030303030303030303030303032303430303030303030303030303030323634303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030323034303030303030303030303030303241343030303030303030303030303030304330303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030313043303030303030303030303030303230343030303030303030303030303030303430303030303030303030303030324134303030303030303030303030303230433030303030303030303030303032303430303030303030303030303030323034303030303030303030303030303236343030303030303030303030303030303030 libspatialite-4.3.0a/test/sql_stmt_proj_tests/askml4.testcase0000664000175000017500000000054512544707704021477 00000000000000askml - 4 arg float descriptions :memory: #use in-memory database SELECT askml(2.5, 3.2, GeomFromText("Point(1 2)", 4326), 4) 1 # rows (not including the header row) 1 # columns askml(2.5, 3.2, GeomFromText("Point(1 2)", 4326), 4) 2.5000003.2000001,2 libspatialite-4.3.0a/test/sql_stmt_proj_tests/askml8.testcase0000664000175000017500000000060712544707704021502 00000000000000askml - 4 arg blob descriptions, GDA94 :memory: #use in-memory database SELECT askml(zeroblob(10), zeroblob(12), GeomFromText("Point(1 2)", 4283), 4) 1 # rows (not including the header row) 1 # columns askml(zeroblob(10), zeroblob(12), GeomFromText("Point(1 2)", 4283), 4) BLOBBLOB1,2 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output28.testcase0000664000175000017500000001146012544707704022014 00000000000000Output format tests - MULTIPOLYGONZ via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTIPOLYGON(((10 10 1.2, 0 10 1.3, 0 0 1.1, 0 10 1.3, 10 10 1.2)),((-10 -10 4, -10 10 5, 10 10 6, 10 -10 5, -10 -10 4),(-8 -8 1, -2 -8 3, -2 -2 5, -8 -2 7, -8 -8 1),(8 8 11, 2 8 13, 2 2 17, 8 2 13, 8 8 11)))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTIPOLYGON Z(((10 10 1.2, 0 10 1.3, 0 0 1.1, 0 10 1.3, 10 10 1.2)), ((-10 -10 4, -10 10 5, 10 10 6, 10 -10 5, -10 -10 4), (-8 -8 1, -2 -8 3, -2 -2 5, -8 -2 7, -8 -8 1), (8 8 11, 2 8 13, 2 2 17, 8 2 13, 8 8 11))) 10,10,1.2 0,10,1.3 0,0,1.1 0,10,1.3 10,10,1.2-10,-10,4 -10,10,5 10,10,6 10,-10,5 -10,-10,4-8,-8,1 -2,-8,3 -2,-2,5 -8,-2,7 -8,-8,18,8,11 2,8,13 2,2,17 8,2,13 8,8,11 10,10,1.2 0,10,1.3 0,0,1.1 0,10,1.3 10,10,1.2-10,-10,4 -10,10,5 10,10,6 10,-10,5 -10,-10,4-8,-8,1 -2,-8,3 -2,-2,5 -8,-2,7 -8,-8,18,8,11 2,8,13 2,2,17 8,2,13 8,8,11:0 {"type":"MultiPolygon","coordinates":[[[[10,10,1.2],[0,10,1.3],[0,0,1.1],[0,10,1.3],[10,10,1.2]]],[[[-10,-10,4],[-10,10,5],[10,10,6],[10,-10,5],[-10,-10,4]],[[-8,-8,1],[-2,-8,3],[-2,-2,5],[-8,-2,7],[-8,-8,1]],[[8,8,11],[2,8,13],[2,2,17],[8,2,13],[8,8,11]]]]}:0 MULTIPOLYGON(((10 10,0 10,0 0,0 10,10 10)),((-10 -10,-10 10,10 10,10 -10,-10 -10),(-8 -8,-2 -8,-2 -2,-8 -2,-8 -8),(8 8,2 8,2 2,8 2,8 8))) SRID=4326;MULTIPOLYGON(((10 10 1.2,0 10 1.3,0 0 1.1,0 10 1.3,10 10 1.2)),((-10 -10 4,-10 10 5,10 10 6,10 -10 5,-10 -10 4),(-8 -8 1,-2 -8 3,-2 -2 5,-8 -2 7,-8 -8 1),(8 8 11,2 8 13,2 2 17,8 2 13,8 8 11))) 30313036303030304130453631303030303030323030303030303031303330303030383030313030303030303035303030303030303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346303030303030303030303030303030303030303030303030303030303030303039413939393939393939393946313346303030303030303030303030303030303030303030303030303030303234343043444343434343434343434346343346303030303030303030303030323434303030303030303030303030303234343033333333333333333333333346333346303130333030303038303033303030303030303530303030303030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030303030303030303030303032344330303030303030303030303030323434303030303030303030303030303134343030303030303030303030303032343430303030303030303030303030323434303030303030303030303030303138343030303030303030303030303032343430303030303030303030303030323443303030303030303030303030303134343030303030303030303030303032344330303030303030303030303030323443303030303030303030303030303130343030353030303030303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463030303030303030303030303030433030303030303030303030303032304330303030303030303030303030303834303030303030303030303030303030433030303030303030303030303030304330303030303030303030303030313434303030303030303030303030303230433030303030303030303030303030304330303030303030303030303030314334303030303030303030303030303230433030303030303030303030303032304330303030303030303030303030463033463035303030303030303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430303030303030303030303030303034303030303030303030303030303230343030303030303030303030303032413430303030303030303030303030303034303030303030303030303030303030343030303030303030303030303033313430303030303030303030303030323034303030303030303030303030303030343030303030303030303030303032413430303030303030303030303030323034303030303030303030303030303230343030303030303030303030303032363430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output20.testcase0000664000175000017500000000246712544707704022013 00000000000000Output format tests - MULTIPOINTZM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTIPOINT(-1 1 2.3 4,1 2 4.1 1.9)") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTIPOINT ZM(-1 1 2.3 4, 1 2 4.1 1.9) -1,1,2.31,2,4.1 -1,1,2.31,2,4.1:0 {"type":"MultiPoint","coordinates":[[-1,1,2.3],[1,2,4.1]]}:0 MULTIPOINT(-1 1,1 2) SRID=4326;MULTIPOINT(-1 1 2.3 4,1 2 4.1 1.9) 303130343030303045304536313030303030303230303030303030313031303030304330303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030313034303031303130303030433030303030303030303030303046303346303030303030303030303030303034303636363636363636363636363130343036363636363636363636363646453346 libspatialite-4.3.0a/test/sql_stmt_proj_tests/output25.testcase0000664000175000017500000000400312544707704022004 00000000000000Output format tests - MULTILINESTRINGM via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(geom), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;MULTILINESTRINGM((-1 1 9, 2 3 8.4, 4 1 9.4),(0 2 1, 2 0 1, 0 0 2, 1 1 3))") as geom) dummy; 1 # rows (not including the header row) 7 # columns AsText(geom) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) MULTILINESTRING M((-1 1 9, 2 3 8.4, 4 1 9.4), (0 2 1, 2 0 1, 0 0 2, 1 1 3)) -1,1 2,3 4,10,2 2,0 0,0 1,1 -1,1 2,3 4,10,2 2,0 0,0 1,1:0 {"type":"MultiLineString","coordinates":[[[-1,1],[2,3],[4,1]],[[0,2],[2,0],[0,0],[1,1]]]}:0 MULTILINESTRING((-1 1,2 3,4 1),(0 2,2 0,0 0,1 1)) SRID=4326;MULTILINESTRINGM((-1 1 9,2 3 8.4,4 1 9.4),(0 2 1,2 0 1,0 0 2,1 1 3)) 3031303530303030363045363130303030303032303030303030303130323030303034303033303030303030303030303030303030303030463042463030303030303030303030304630334630303030303030303030303032323430303030303030303030303030303034303030303030303030303030303038343043444343434343434343434332303430303030303030303030303030313034303030303030303030303030304630334643444343434343434343434332323430303130323030303034303034303030303030303030303030303030303030303030303030303030303030303030303030343030303030303030303030303046303346303030303030303030303030303034303030303030303030303030303030303030303030303030303030303046303346303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303430303030303030303030303030463033463030303030303030303030304630334630303030303030303030303030383430 libspatialite-4.3.0a/test/sql_stmt_proj_tests/askml5.testcase0000664000175000017500000000060012544707704021470 00000000000000askml - 4 arg blob descriptions :memory: #use in-memory database SELECT askml(zeroblob(10), zeroblob(12), GeomFromText("Point(1 2)", 4326), 4) 1 # rows (not including the header row) 1 # columns askml(zeroblob(10), zeroblob(12), GeomFromText("Point(1 2)", 4326), 4) BLOBBLOB1,2 libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform4.testcase0000664000175000017500000000036212544707704022400 00000000000000transform - Point (unknown srid) :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POINT(11 43)'), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POINT(11 43)'), 32632)) (NULL) libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform16.testcase0000664000175000017500000000132212544707704022460 00000000000000transform - Polygon :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POLYGON((11 43, 12 43, 12 44, 11 44, 11 43), (11.4 43.4, 11.6 43.4, 11.6 43.6, 11.4 43.6, 11.4 43.4))', 4326), 32632)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POLYGON((11 43, 12 43, 12 44, 11 44, 11 43), (11.4 43.4, 11.6 43.4, 11.6 43.6, 11.4 43.6, 11.4 43.4))', 4326), 32632)) POLYGON((663019.070082 4762755.64169, 744533.019451 4765182.932802, 740526.321055 4876249.126963, 660349.410579 4873817.333441, 663019.070082 4762755.64169), (694349.575562 4808033.274618, 710545.984354 4808519.151148, 709851.653212 4830731.987849, 693708.725206 4830245.931093, 694349.575562 4808033.274618)) libspatialite-4.3.0a/test/sql_stmt_proj_tests/askml7.testcase0000664000175000017500000000045412544707704021501 00000000000000askml - 4 arg blob descriptions, weird SRID (error) :memory: #use in-memory database SELECT askml(zeroblob(10), zeroblob(12), GeomFromText("Point(1 2)", 9999989), 4) 1 # rows (not including the header row) 1 # columns askml(zeroblob(10), zeroblob(12), GeomFromText("Point(1 2)", 9999989), 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_proj_tests/transform21.testcase0000664000175000017500000000035712544707704022463 00000000000000transform - Point :memory: #use in-memory database SELECT AsText(Transform(GeomFromText('POINT(11 43)', 4326), 32656)) 1 # rows (not including the header row) 1 # columns AsText(Transform(GeomFromText('POINT(11 43)', 4326), 32656)) (NULL) libspatialite-4.3.0a/test/sql_stmt_proj_tests/output17.testcase0000664000175000017500000000474712544707704022024 00000000000000Output format tests - POLYGONZ via EWKB, WGS-84 :memory: #use in-memory database SELECT AsText(GeomFromWkb(AsBinary(geom))), AsKML(geom), AsGML(geom), AsGeoJSON(geom), AsWkt(geom), AsEWkt(geom), Hex(AsEWKB(geom)) FROM (SELECT GeomFromEWkt("SRID=4326;POLYGON((-10 -10 1, -10 10 2, 10 10 3, 10 -10 4, -10 -10 1),(-1 1 2.3, 1 -2 4.6, 0 -2 1.6, -1 1 2.3))") as geom) dummy 1 # rows (not including the header row) 7 # columns AsText(GeomFromWkb(AsBinary(geom))) AsKML(geom) AsGML(geom) AsGeoJSON(geom) AsWkt(geom) AsEWkt(geom) Hex(AsEWKB(geom)) POLYGON Z((-10 -10 1, -10 10 2, 10 10 3, 10 -10 4, -10 -10 1), (-1 1 2.3, 1 -2 4.6, 0 -2 1.6, -1 1 2.3)) -10,-10,1 -10,10,2 10,10,3 10,-10,4 -10,-10,1-1,1,2.3 1,-2,4.6 0,-2,1.6 -1,1,2.3 -10,-10,1 -10,10,2 10,10,3 10,-10,4 -10,-10,1-1,1,2.3 1,-2,4.6 0,-2,1.6 -1,1,2.3:0 {"type":"Polygon","coordinates":[[[-10,-10,1],[-10,10,2],[10,10,3],[10,-10,4],[-10,-10,1]],[[-1,1,2.3],[1,-2,4.6],[0,-2,1.6],[-1,1,2.3]]]}:0 POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-1 1,1 -2,0 -2,-1 1)) SRID=4326;POLYGON((-10 -10 1,-10 10 2,10 10 3,10 -10 4,-10 -10 1),(-1 1 2.3,1 -2 4.6,0 -2 1.6,-1 1 2.3)) 303130333030303041304536313030303030303230303030303030353030303030303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463030303030303030303030303234433030303030303030303030303032343430303030303030303030303030303034303030303030303030303030303234343030303030303030303030303032343430303030303030303030303030303834303030303030303030303030303234343030303030303030303030303032344330303030303030303030303030313034303030303030303030303030303234433030303030303030303030303032344330303030303030303030303030463033463034303030303030303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430303030303030303030303030463033463030303030303030303030303030433036363636363636363636363631323430303030303030303030303030303030303030303030303030303030303030433039413939393939393939393946393346303030303030303030303030463042463030303030303030303030304630334636363636363636363636363630323430 libspatialite-4.3.0a/test/f06.dxf0000664000175000017500000002442712544707704013530 00000000000000 0 SECTION 2 HEADER 9 $EXTMIN 10 663365.734 20 5165233.713 30 -6.270 9 $EXTMAX 10 669267.494 20 5173336.006 30 828.070 9 $LUPREC 70 7 0 ENDSEC 0 SECTION 2 TABLES 0 TABLE 2 LAYER 70 1 0 LAYER 2 SHP_POLY 70 64 62 7 6 CONTINUOUS 0 ENDTAB 0 ENDSEC 0 SECTION 2 BLOCKS 0 BLOCK 8 SHP_POLY 2 BLK000001 70 64 10 666648.328 20 5168231.314 30 284.570 0 POLYLINE 8 SHP_POLY 66 1 70 9 0 VERTEX 8 SHP_POLY 10 666648.328 20 5168231.314 30 284.570 70 32 0 VERTEX 8 SHP_POLY 10 666652.308 20 5168235.614 30 282.610 70 32 0 VERTEX 8 SHP_POLY 10 666651.978 20 5168241.614 30 282.570 70 32 0 VERTEX 8 SHP_POLY 10 666651.408 20 5168251.684 30 279.890 70 32 0 VERTEX 8 SHP_POLY 10 666651.268 20 5168254.114 30 282.570 70 32 0 VERTEX 8 SHP_POLY 10 666650.858 20 5168261.574 30 284.330 70 32 0 VERTEX 8 SHP_POLY 10 666651.588 20 5168262.864 30 284.310 70 32 0 VERTEX 8 SHP_POLY 10 666657.392 20 5168270.448 30 284.001 70 32 0 VERTEX 8 SHP_POLY 10 666660.794 20 5168269.261 30 283.990 70 32 0 VERTEX 8 SHP_POLY 10 666655.568 20 5168262.864 30 284.350 70 32 0 VERTEX 8 SHP_POLY 10 666654.568 20 5168260.824 30 284.430 70 32 0 VERTEX 8 SHP_POLY 10 666654.318 20 5168259.644 30 284.430 70 32 0 VERTEX 8 SHP_POLY 10 666654.308 20 5168257.774 30 284.450 70 32 0 VERTEX 8 SHP_POLY 10 666654.578 20 5168250.864 30 284.450 70 32 0 VERTEX 8 SHP_POLY 10 666655.858 20 5168233.744 30 284.810 70 32 0 VERTEX 8 SHP_POLY 10 666653.298 20 5168229.974 30 284.790 70 32 0 VERTEX 8 SHP_POLY 10 666653.198 20 5168226.764 30 284.710 70 32 0 VERTEX 8 SHP_POLY 10 666653.708 20 5168220.585 30 284.590 70 32 0 VERTEX 8 SHP_POLY 10 666661.418 20 5168215.005 30 285.050 70 32 0 VERTEX 8 SHP_POLY 10 666668.867 20 5168215.474 30 285.210 70 32 0 VERTEX 8 SHP_POLY 10 666671.327 20 5168218.824 30 285.170 70 32 0 VERTEX 8 SHP_POLY 10 666672.257 20 5168218.894 30 284.970 70 32 0 VERTEX 8 SHP_POLY 10 666674.767 20 5168219.074 30 284.970 70 32 0 VERTEX 8 SHP_POLY 10 666673.937 20 5168218.024 30 284.970 70 32 0 VERTEX 8 SHP_POLY 10 666674.917 20 5168217.094 30 284.970 70 32 0 VERTEX 8 SHP_POLY 10 666675.207 20 5168213.044 30 284.980 70 32 0 VERTEX 8 SHP_POLY 10 666674.367 20 5168211.995 30 284.980 70 32 0 VERTEX 8 SHP_POLY 10 666675.347 20 5168211.075 30 284.980 70 32 0 VERTEX 8 SHP_POLY 10 666675.627 20 5168207.045 30 284.980 70 32 0 VERTEX 8 SHP_POLY 10 666674.787 20 5168205.995 30 284.980 70 32 0 VERTEX 8 SHP_POLY 10 666675.767 20 5168205.065 30 284.990 70 32 0 VERTEX 8 SHP_POLY 10 666676.067 20 5168200.865 30 284.990 70 32 0 VERTEX 8 SHP_POLY 10 666679.857 20 5168196.155 30 284.990 70 32 0 VERTEX 8 SHP_POLY 10 666679.407 20 5168201.105 30 284.950 70 32 0 VERTEX 8 SHP_POLY 10 666683.607 20 5168201.405 30 284.810 70 32 0 VERTEX 8 SHP_POLY 10 666684.237 20 5168196.145 30 284.830 70 32 0 VERTEX 8 SHP_POLY 10 666669.687 20 5168178.795 30 285.030 70 32 0 VERTEX 8 SHP_POLY 10 666670.337 20 5168169.915 30 285.110 70 32 0 VERTEX 8 SHP_POLY 10 666692.737 20 5168171.275 30 284.210 70 32 0 VERTEX 8 SHP_POLY 10 666692.937 20 5168168.645 30 290.710 70 32 0 VERTEX 8 SHP_POLY 10 666686.967 20 5168168.005 30 284.090 70 32 0 VERTEX 8 SHP_POLY 10 666670.617 20 5168166.875 30 285.170 70 32 0 VERTEX 8 SHP_POLY 10 666667.677 20 5168166.675 30 285.170 70 32 0 VERTEX 8 SHP_POLY 10 666664.867 20 5168164.475 30 285.170 70 32 0 VERTEX 8 SHP_POLY 10 666664.207 20 5168173.905 30 283.640 70 32 0 VERTEX 8 SHP_POLY 10 666664.047 20 5168176.155 30 283.640 70 32 0 VERTEX 8 SHP_POLY 10 666662.977 20 5168177.415 30 284.980 70 32 0 VERTEX 8 SHP_POLY 10 666651.477 20 5168187.515 30 284.870 70 32 0 VERTEX 8 SHP_POLY 10 666650.438 20 5168205.285 30 284.950 70 32 0 VERTEX 8 SHP_POLY 10 666650.798 20 5168206.205 30 284.930 70 32 0 VERTEX 8 SHP_POLY 10 666650.218 20 5168220.295 30 284.550 70 32 0 VERTEX 8 SHP_POLY 10 666649.868 20 5168229.904 30 284.510 70 32 0 VERTEX 8 SHP_POLY 10 666648.328 20 5168231.314 30 284.570 70 32 0 SEQEND 8 SHP_POLY 0 POLYLINE 8 SHP_POLY 66 1 70 9 0 VERTEX 8 SHP_POLY 10 666654.238 20 5168211.325 30 284.930 70 32 0 VERTEX 8 SHP_POLY 10 666653.328 20 5168209.745 30 284.930 70 32 0 VERTEX 8 SHP_POLY 10 666654.717 20 5168188.655 30 284.890 70 32 0 VERTEX 8 SHP_POLY 10 666664.027 20 5168180.565 30 285.030 70 32 0 VERTEX 8 SHP_POLY 10 666666.977 20 5168180.685 30 285.030 70 32 0 VERTEX 8 SHP_POLY 10 666670.247 20 5168185.185 30 284.890 70 32 0 VERTEX 8 SHP_POLY 10 666663.647 20 5168191.765 30 284.910 70 32 0 VERTEX 8 SHP_POLY 10 666667.377 20 5168196.975 30 284.910 70 32 0 VERTEX 8 SHP_POLY 10 666670.647 20 5168200.655 30 284.950 70 32 0 VERTEX 8 SHP_POLY 10 666671.097 20 5168202.175 30 284.970 70 32 0 VERTEX 8 SHP_POLY 10 666670.417 20 5168208.475 30 284.970 70 32 0 VERTEX 8 SHP_POLY 10 666665.057 20 5168212.055 30 284.930 70 32 0 VERTEX 8 SHP_POLY 10 666654.238 20 5168211.325 30 284.930 70 32 0 SEQEND 8 SHP_POLY 0 POLYLINE 8 SHP_POLY 66 1 70 9 0 VERTEX 8 SHP_POLY 10 666673.417 20 5168199.475 30 285.010 70 32 0 VERTEX 8 SHP_POLY 10 666671.517 20 5168196.865 30 285.030 70 32 0 VERTEX 8 SHP_POLY 10 666672.017 20 5168189.235 30 285.050 70 32 0 VERTEX 8 SHP_POLY 10 666674.107 20 5168189.265 30 285.070 70 32 0 VERTEX 8 SHP_POLY 10 666677.817 20 5168193.665 30 285.030 70 32 0 VERTEX 8 SHP_POLY 10 666673.417 20 5168199.475 30 285.010 70 32 0 SEQEND 8 SHP_POLY 0 ENDBLK 0 BLOCK 8 SHP_POLY 2 BLK000002 70 64 10 666583.381 20 5168444.861 30 286.970 0 POLYLINE 8 SHP_POLY 66 1 70 9 0 VERTEX 8 SHP_POLY 10 666583.381 20 5168444.861 30 286.970 70 32 0 VERTEX 8 SHP_POLY 10 666589.780 20 5168417.361 30 288.090 70 32 0 VERTEX 8 SHP_POLY 10 666586.980 20 5168410.462 30 287.870 70 32 0 VERTEX 8 SHP_POLY 10 666586.580 20 5168406.662 30 287.770 70 32 0 VERTEX 8 SHP_POLY 10 666586.880 20 5168402.662 30 287.750 70 32 0 VERTEX 8 SHP_POLY 10 666587.580 20 5168398.662 30 287.810 70 32 0 VERTEX 8 SHP_POLY 10 666589.680 20 5168394.462 30 287.810 70 32 0 VERTEX 8 SHP_POLY 10 666593.180 20 5168390.462 30 288.010 70 32 0 VERTEX 8 SHP_POLY 10 666593.580 20 5168386.962 30 286.770 70 32 0 VERTEX 8 SHP_POLY 10 666592.980 20 5168389.462 30 287.090 70 32 0 VERTEX 8 SHP_POLY 10 666590.280 20 5168392.562 30 286.890 70 32 0 VERTEX 8 SHP_POLY 10 666588.680 20 5168395.162 30 286.830 70 32 0 VERTEX 8 SHP_POLY 10 666587.080 20 5168398.362 30 286.850 70 32 0 VERTEX 8 SHP_POLY 10 666586.180 20 5168402.462 30 286.590 70 32 0 VERTEX 8 SHP_POLY 10 666585.980 20 5168407.062 30 286.570 70 32 0 VERTEX 8 SHP_POLY 10 666586.370 20 5168410.662 30 286.590 70 32 0 VERTEX 8 SHP_POLY 10 666587.880 20 5168413.962 30 286.650 70 32 0 VERTEX 8 SHP_POLY 10 666589.180 20 5168417.361 30 286.650 70 32 0 VERTEX 8 SHP_POLY 10 666582.781 20 5168444.561 30 286.790 70 32 0 VERTEX 8 SHP_POLY 10 666583.381 20 5168444.861 30 286.970 70 32 0 SEQEND 8 SHP_POLY 0 ENDBLK 0 BLOCK 8 SHP_POLY 2 BLK000003 70 64 10 666616.449 20 5168334.043 30 286.070 0 POLYLINE 8 SHP_POLY 66 1 70 9 0 VERTEX 8 SHP_POLY 10 666616.449 20 5168334.043 30 286.070 70 32 0 VERTEX 8 SHP_POLY 10 666621.049 20 5168327.043 30 285.890 70 32 0 VERTEX 8 SHP_POLY 10 666640.949 20 5168310.843 30 285.570 70 32 0 VERTEX 8 SHP_POLY 10 666642.349 20 5168309.343 30 285.130 70 32 0 VERTEX 8 SHP_POLY 10 666620.849 20 5168326.643 30 282.830 70 32 0 VERTEX 8 SHP_POLY 10 666615.879 20 5168333.653 30 282.250 70 32 0 VERTEX 8 SHP_POLY 10 666616.449 20 5168334.043 30 286.070 70 32 0 SEQEND 8 SHP_POLY 0 ENDBLK 0 ENDSEC 0 SECTION 2 ENTITIES 0 INSERT 8 SHP_POLY 2 BLK000001 10 666648.328 20 5168231.314 30 284.570 0 INSERT 8 SHP_POLY 2 BLK000002 10 666583.381 20 5168444.861 30 286.970 0 INSERT 8 SHP_POLY 2 BLK000003 10 666616.449 20 5168334.043 30 286.070 0 EOF libspatialite-4.3.0a/test/test.wfs0000664000175000017500000000634012544707704014124 00000000000000unknown207021072003-06-091010004000412105100.00.00.00002005-09-0120702100664642.36368551,5169415.33921845207021072003-06-091010004015912105100.00.00.00002005-09-0120702100664350.17953981,5171957.91565536207021072003-06-091010004016722105100.00.00.00002005-09-0120702100664964.44722454,5170571.24573168libspatialite-4.3.0a/test/sld_sample.xml0000664000175000017500000000151312544707704015266 00000000000000 group style 1 Trento: Shaded Relief Orthophoto RGB aerial orthophoto draped over LIDAR DEM with Shaded Relief lidar_dem shaded_relief_default ortophoto libspatialite-4.3.0a/test/check_virtualtable4.c0000664000175000017500000003345412544707704016515 00000000000000/* check_virtualtable4.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #ifdef _WIN32 #include "asprintf4win.h" #endif struct test_step { const char *sql; const int num_rows; }; #define NUMSTEPS 36 struct test_step steps[NUMSTEPS] = { {"select col_2, col_4, col_5, col_7 from xltest WHERE col_2 > \"Canary Creek\";", 9}, {"select col_2, col_4, col_5, col_7 from xltest WHERE col_2 < \"Canary Creek\";", 7}, {"select col_2, col_4, col_5, col_7 from xltest WHERE col_2 >= \"Canary Creek\";", 10}, {"select col_2, col_4, col_5, col_7 from xltest WHERE col_2 <= \"Canary Creek\";", 8}, {"select col_2, col_4, col_5, col_7 from xltest WHERE col_2 = 3;", 0}, {"SELECT col_2, col_14 FROM xltest WHERE col_14 > 100000;", 1}, {"SELECT col_2, col_14 FROM xltest WHERE col_14 < 100000;", 16}, {"SELECT col_2, col_14 FROM xltest WHERE col_14 < 100000 AND col_14 > 0;", 1}, {"SELECT col_2, col_14 FROM xltest WHERE col_14 = 895;", 1}, {"SELECT col_2, col_14 FROM xltest WHERE col_14 = 895.0;", 1}, {"SELECT col_2, col_14 FROM xltest WHERE col_14 <= 895;", 16}, {"SELECT col_2, col_14 FROM xltest WHERE col_14 >= 895;", 2}, {"SELECT col_2, col_14 FROM xltest WHERE col_14 > 100000.0;", 1}, {"SELECT col_2, col_14 FROM xltest WHERE col_14 < 100000.0;", 16}, {"SELECT col_2, col_14 FROM xltest WHERE col_14 = 895.0;", 1}, {"SELECT col_2, col_14 FROM xltest WHERE col_14 <= 895.0;", 16}, {"SELECT col_2, col_14 FROM xltest WHERE col_14 >= 895.0;", 2}, {"SELECT col_2, col_14 FROM xltest WHERE row_no = 4", 1}, {"SELECT col_2, col_14 FROM xltest WHERE row_no < 4", 3}, {"SELECT col_2, col_14 FROM xltest WHERE row_no <= 4", 4}, {"SELECT col_2, col_14 FROM xltest WHERE row_no >= 4", 14}, {"SELECT col_2, col_14 FROM xltest WHERE row_no > 4", 13}, {"SELECT col_2, col_14 FROM xltest WHERE row_no = 4.00", 0}, {"select col_2, col_4, col_5 from xltest where col_4 < -30.0;", 8}, {"select col_2, col_4, col_5 from xltest where col_4 > -30.0;", 9}, {"select col_2, col_4, col_5 from xltest where col_4 <= -30.0;", 8}, {"select col_2, col_4, col_5 from xltest where col_4 >= -30.0;", 9}, {"select col_2, col_4, col_5 from xltest where col_5 = 149.1;", 1}, {"select col_2, col_4, col_5 from xltest where col_4 < -30;", 8}, {"select col_2, col_4, col_5 from xltest where col_4 > -30;", 9}, {"select col_2, col_4, col_5 from xltest where col_4 <= -30;", 8}, {"select col_2, col_4, col_5 from xltest where col_4 >= -30;", 9}, {"select col_2, col_4, col_5 from xltest where col_4 = -30;", 0}, {"SELECT row_no, col_4, col_5 from xltest", 17}, {"select rowid, col_4, col_5 from xltest where col_4 = -26.0;", 1}, {"select rowid, col_4, col_5 from xltest where col_4 = -26;", 1}, }; int main (int argc, char *argv[]) { #ifndef OMIT_FREEXL /* only if FreeXL is supported */ sqlite3 *db_handle = NULL; char *sql_statement; int ret; char *err_msg = NULL; int i; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE xltest USING VirtualXL(\"testcase1.xls\");", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualXL error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } asprintf (&sql_statement, "select col_2, col_4, col_5, col_7, rowid from xltest WHERE col_2 = \"Canal Creek\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != 2) || (columns != 5)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -11; } if (strcmp (results[0], "col_2") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -12; } if (strcmp (results[5], "Canal Creek") != 0) { fprintf (stderr, "Unexpected error: name5() bad result: %s.\n", results[5]); return -13; } if (strncmp (results[6], "-27.86667", 9) != 0) { fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n", results[6]); return -14; } if (strncmp (results[7], "151.51667", 9) != 0) { fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n", results[7]); return -15; } if (strcmp (results[10], "Canal Creek") != 0) { fprintf (stderr, "Unexpected error: name10() bad result: %s.\n", results[10]); return -16; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "BEGIN;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "BEGIN error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } ret = sqlite3_exec (db_handle, "DELETE FROM xltest WHERE col_14 > 100000;", NULL, NULL, &err_msg); if (ret != SQLITE_READONLY) { fprintf (stderr, "UPDATE error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "ROLLBACK;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "ROLLBACK error: %s\n", err_msg); sqlite3_free (err_msg); return -22; } for (i = 0; i < NUMSTEPS; ++i) { ret = sqlite3_get_table (db_handle, steps[i].sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -23; } if (rows != steps[i].num_rows) { fprintf (stderr, "Unexpected num of rows for test %i: %i.\n", i, rows); return -24; } sqlite3_free_table (results); } ret = sqlite3_exec (db_handle, "DROP TABLE xltest;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -25; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nosuchworksheet USING VirtualXL(\"testcase1.xls\", 3);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualXL error: %s\n", err_msg); sqlite3_free (err_msg); return -26; } ret = sqlite3_exec (db_handle, "DROP TABLE nosuchworksheet;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -27; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nosuchfile USING VirtualXL(\"not_a_file.xls\", 3);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualXL error: %s\n", err_msg); sqlite3_free (err_msg); return -28; } ret = sqlite3_exec (db_handle, "DROP TABLE nosuchfile;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -29; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE sheet2 USING VirtualXL(\"testcase1.xls\", 1, 1);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualXL error: %s\n", err_msg); sqlite3_free (err_msg); return -30; } asprintf (&sql_statement, "select row_no, place, lat, lon, rowid from sheet2 WHERE place = \"Canal Creek\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -31; } if ((rows != 4) || (columns != 5)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -32; } if (strcmp (results[0], "row_no") != 0) { fprintf (stderr, "Unexpected error: sheet2() bad result: %s.\n", results[0]); return -33; } if (strcmp (results[6], "Canal Creek") != 0) { fprintf (stderr, "Unexpected error: sheet2() bad result place: %s.\n", results[6]); return -34; } if (strncmp (results[7], "-27.86667", 9) != 0) { fprintf (stderr, "Unexpected error: sheet2() bad result lat: %s.\n", results[7]); return -35; } if (strncmp (results[8], "151.51667", 9) != 0) { fprintf (stderr, "Unexpected error: sheet2() bad result lon: %s.\n", results[8]); return -36; } if (strcmp (results[11], "Canal Creek") != 0) { fprintf (stderr, "Unexpected error: sheet2() bad result place2: %s.\n", results[11]); return -37; } sqlite3_free_table (results); asprintf (&sql_statement, "select row_no, place, lat, lon, rowid from sheet2 WHERE row_no = 16"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -38; } if ((rows != 1) || (columns != 5)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -39; } if (strcmp (results[0], "row_no") != 0) { fprintf (stderr, "Unexpected error: sheet2() bad result: %s.\n", results[0]); return -40; } if (strcmp (results[6], "Canal Creek") != 0) { fprintf (stderr, "Unexpected error: sheet2() bad result place: %s.\n", results[6]); return -41; } if (strncmp (results[7], "-27.86667", 9) != 0) { fprintf (stderr, "Unexpected error: sheet2() bad result lat: %s.\n", results[7]); return -42; } if (strncmp (results[8], "151.51667", 9) != 0) { fprintf (stderr, "Unexpected error: sheet2() bad result lon: %s.\n", results[8]); return -43; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "DROP TABLE sheet2;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -44; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE noquote USING VirtualXL(testcase1.xls);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualXL error: %s\n", err_msg); sqlite3_free (err_msg); return -45; } ret = sqlite3_exec (db_handle, "DROP TABLE noquote;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -46; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE noheader USING VirtualXL(\"testcase1.xls\", 0, 0);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualXL error: %s\n", err_msg); sqlite3_free (err_msg); return -47; } ret = sqlite3_exec (db_handle, "DROP TABLE noheader;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -48; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nofile USING VirtualXL();", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "VirtualXL unexpected result: %i\n", ret); return -49; } sqlite3_free (err_msg); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); #endif /* end FreeXL conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/empty.tif0000664000175000017500000011562312544707704014273 00000000000000MM*þcÆcšÍ¶¾( €?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A!‘Hä’Y4žQ)•Jå’Ùt¾a1™Læ“Y´Þq9Nç“ÙôþA¡Pè”Z5‘I¥Ré”Úu>¡Q©Tê•Zµ^±Y­Vë•Úõ~Áa±Xì–[5žÑiµZí–Ûu¾áq¹\î—[µÞñy½^ï—ÛõÿÁ`ð˜\6‰Åbñ˜Üv?!‘Édò™\¶_1À pH,„¡pÈl:ˆÄ¢qH¬Z/ŒÆ£qÈìz? ȤrI,šO(”Ê¥rÉlº_0˜Ì¦sI¬Úo8œÎ§sÉìú@ Ð¨tJ-H¤Ò©tÊm:ŸP¨ÔªuJ­Z¯X¬Ö«uÊíz¿`°Ø¬vK-šÏh´Ú­vËmºßp¸Ü®wK­Úïx¼Þ¯wËíúÿ€Àà°xL.ˆÄâ±xÌn;Èä²yL®[/˜€?àP8$ „BaP¸d6ˆDbQ8¤V-ŒFcQ¸äv=HdR9$–M'”JeR¹d¶]/˜LfS9¤Öm7œNgS¹äö}? PhT:%G¤RiTºe6O¨TjU:¥V­W¬VkUºåv½_°XlV;%–Íg´ZmV»e¶Ýo¸\nW;¥Öíw¼^oW»åöýÀ`pX<& ‡ÄbqX¼f7ÈdrY<¦W-—Ì@ð( ƒÂ!0¨\2‡Ä"1(œR+‹Æ#1¨Ür;È$2)’K&“Ê%2©\²[.—Ì&3)œÒk6›Î'3©Üò{>ŸÐ(4*‹F£Ò)4ª]2›N§Ô*5*R«V«Ö+5ªÝr»^¯Ø,6+’Ëf³Ú-6«]²Ûn·Ü.7+Òëv»Þ/7«Ýòû~¿à08, †Ãâ18¬^3ŽÇä29,žS+–Ëæ ø ƒAá˜T. ‡Câ”N)‹Eã˜Ôn9GäŽI%“Iå™T®Y-—Kæ”Îi5›Mç™Ôîy=ŸOè‰E£QéšU.™M§Sê•N©U«UëšÕn¹]¯WìŽÉe³Yí›U®Ùm·[î•Îéu»]ï›Õîù}¿_ð …ÃañœV/Çcò–O)•Ëeóü ‚Á ðˆL* †Ã¡ñŒJ'ŠÅ¢ñˆÌj7ŽÇ£ò ŠG$’ɤò‰LªW,–Ë¥ó ŒÊg4šÍ¦ó‰Ìêw<žÏ§ô ‡D¢Ñ¨ôŠM*—L¦Ó©õ J§TªÕªõŠÍj·\®×«ö ŠÇd²Ù¬ö‹Mª×l¶Û­÷ ÊçtºÝ®÷‹Íê÷|¾ß¯ø  „Âá°øŒN+ŒÆã±ù ŽK'”Êå²ùˆþ‚A`ÐxD& †CaÐø„F%ŠEbÑxÄf5ŽGcÑù†E#’IdÒyD¦U+–KeÒù„Æe3šMfÓyÄæu;žOgÓú…C¢QhÔzE&•K¦SiÔú…F¥SªUjÕzÅfµ[®WkÕû†Åc²YlÖ{E¦Õk¶[mÖû…Æåsº]n×{Åæõ{¾_o×üƒÂapØ|F'‹ÆcqØü†G%“ÊerÙ|ÄÿÁ °h<" …Ã!°è|B#‰Å"±h¼b3Ç#±èü‚C"‘É$²i<¢S*•Ë%²é|Âc2™Í&³i¼âs:Ï'³éýƒB¡Ñ(´j="“J¥Ó)´ê}B£R©Õ*µj½b³Z­×+µêý‚Ãb±Ù,¶k=¢ÓjµÛ-¶ë}Âãr¹Ý.·k½âóz½ß/·ëþ‚Áá0¸l>#ŠÅã1¸ì~C#’Éå2¹l¾bÿ@àX4 …BáØt>!‰Dâ‘X´^1Fã‘Øô~A€€libspatialite-4.3.0a/test/check_sql_stmt.c0000664000175000017500000004461212544707704015577 00000000000000/* check_sql_stmt.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include #ifndef _WIN32 #include #include #endif #include "config.h" #include "sqlite3.h" #include "spatialite.h" #ifndef OMIT_GEOS /* including GEOS */ #include #endif #ifdef _WIN32 #include "fnmatch4win.h" #include "scandir4win.h" #include "asprintf4win.h" #include "fnmatch_impl4win.h" #endif struct test_data { char *test_case_name; char *database_name; char *sql_statement; int expected_rows; int expected_columns; char **expected_results; int *expected_precision; }; struct db_conn { sqlite3 *db_handle; char *db_path; int read_only; const void *cache; }; static void close_connection (struct db_conn *conn) { if (conn->db_path != NULL) free (conn->db_path); conn->db_path = NULL; if (conn->db_handle != NULL) sqlite3_close (conn->db_handle); conn->db_handle = NULL; if (conn->cache == NULL) spatialite_cleanup (); } static void save_connection (struct db_conn *conn, const char *database_name, sqlite3 * db_handle, int read_only, int empty_db) { int len = strlen (database_name); conn->db_handle = db_handle; conn->read_only = read_only; if (read_only) { conn->db_path = malloc (len - 2); memcpy (conn->db_path, database_name, len - 3); *(conn->db_path + len - 3) = '\0'; } else if (empty_db) { conn->db_path = malloc (9); strcpy (conn->db_path, ":memory:"); } else { conn->db_path = malloc (len + 1); strcpy (conn->db_path, database_name); } } static int compare_path (const char *pth1, const char *pth2, int read_only) { int ret = 0; if (!read_only) { if (strcmp (pth1, pth2) == 0) ret = 1; } else { if (strncmp (pth1, pth2, strlen (pth2) - 3) == 0) ret = 1; } return ret; } static int load_dyn_extension (sqlite3 * db_handle) { int ret; char *err_msg = NULL; sqlite3_enable_load_extension (db_handle, 1); ret = sqlite3_exec (db_handle, "SELECT load_extension('mod_spatialite')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "load_extension() error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } int do_one_case (struct db_conn *conn, const struct test_data *data, int load_extension, int gpkg_amphibious_mode) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; int i; char **results; int rows; int columns; int read_only = 0; int empty_db = 0; int not_memory_db = 0; fprintf (stderr, "Test case: %s\n", data->test_case_name); if (strncmp ("_RO", data->database_name + strlen (data->database_name) - 3, strlen ("_RO")) == 0) read_only = 1; if (strcmp ("NEW:memory:", data->database_name) == 0) empty_db = 1; if (conn->db_handle != NULL) { if (empty_db) ; else if (compare_path (conn->db_path, data->database_name, read_only)) { if (conn->read_only == read_only) { db_handle = conn->db_handle; goto skip_init; } } close_connection (conn); } if (conn->cache == NULL && !load_extension) spatialite_init (0); /* This hack checks if the name ends with _RO */ if (strncmp ("_RO", data->database_name + strlen (data->database_name) - 3, strlen ("_RO")) == 0) { fprintf (stderr, "opening read_only\n"); read_only = 1; ret = sqlite3_open_v2 (data->database_name, &db_handle, SQLITE_OPEN_READONLY, NULL); } else if (empty_db) { ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); } else { if (strcmp (data->database_name, ":memory:") != 0) not_memory_db = 1; ret = sqlite3_open_v2 (data->database_name, &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open %s db: %s\n", data->database_name, sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } if (conn->cache != NULL) spatialite_init_ex (db_handle, conn->cache, 0); if (load_extension) { if (!load_dyn_extension (db_handle)) { sqlite3_close (db_handle); db_handle = NULL; return -3; } } save_connection (conn, data->database_name, db_handle, read_only, empty_db); if (read_only || not_memory_db) goto skip_init; ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } skip_init: if (gpkg_amphibious_mode) { sqlite3_exec (db_handle, "SELECT EnableGpkgAmphibiousMode()", NULL, NULL, NULL); } ret = sqlite3_get_table (db_handle, data->sql_statement, &results, &rows, &columns, &err_msg); if (gpkg_amphibious_mode) { sqlite3_exec (db_handle, "SELECT DisableGpkgAmphibiousMode()", NULL, NULL, NULL); } if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != data->expected_rows) || (columns != data->expected_columns)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -11; } for (i = 0; i < (data->expected_rows + 1) * data->expected_columns; ++i) { if (results[i] != NULL && data->expected_precision[i] == 0) { data->expected_precision[i] = strlen (results[i]); } if (results[i] == NULL) { if (strcmp ("(NULL)", data->expected_results[i]) == 0) { /* we expected this */ continue; } else { fprintf (stderr, "Null value at %i.\n", i); fprintf (stderr, "Expected value was: %s\n", data->expected_results[i]); return -12; } } else if (strlen (results[i]) == 0) { fprintf (stderr, "zero length result at %i\n", i); fprintf (stderr, "Expected value was : %s|\n", data->expected_results[i]); return -13; } else if (strncmp (results[i], data->expected_results[i], data->expected_precision[i]) != 0) { fprintf (stderr, "Unexpected value at %i: %s|\n", i, results[i]); fprintf (stderr, "Expected value was : %s|\n", data->expected_results[i]); return -14; } } sqlite3_free_table (results); return 0; } int get_clean_line (FILE * f, char **line) { size_t len = 0; ssize_t num_read = 0; ssize_t end = 0; char *tmp_line = NULL; #if !defined(_WIN32) &&!defined(__APPLE__) /* expecting to be on a sane minded platform [linux-like] */ num_read = getline (&(tmp_line), &len, f); #else /* neither Windows nor MacOsX support getline() */ len = 1024 * 1024; tmp_line = malloc (len); if (fgets (tmp_line, len, f) == NULL) { free (tmp_line); num_read = -1; } else num_read = strlen (tmp_line); #endif if (num_read < 1) { fprintf (stderr, "failed to read at %li: %li\n", ftell (f), num_read); return -1; } /* trim the trailing new line and any comments */ for (end = 0; end < num_read; ++end) { if (*(tmp_line + end) == '\n') break; if (*(tmp_line + end) == '#') break; } /* trim any trailing spaces */ while (end > 0) { if (*(tmp_line + end - 1) != ' ') { break; } *(tmp_line + end - 1) = '\0'; end--; } *line = malloc (end + 1); memcpy (*line, tmp_line, end); (*line)[end] = '\0'; free (tmp_line); return 0; } void handle_precision (char *expected_result, int *precision) { int i; int prcsn; int result_len = strlen (expected_result); *precision = 0; for (i = result_len - 1; i >= 0; --i) { if (expected_result[i] == ':') { prcsn = atoi (&(expected_result[i + 1])); if (prcsn > 0) { expected_result[i] = '\0'; *precision = prcsn; } break; } } } struct test_data * read_one_case (const char *filepath) { int num_results; int i; char *tmp; FILE *f; struct test_data *data; f = fopen (filepath, "r"); data = malloc (sizeof (struct test_data)); get_clean_line (f, &(data->test_case_name)); get_clean_line (f, &(data->database_name)); get_clean_line (f, &(data->sql_statement)); get_clean_line (f, &(tmp)); data->expected_rows = atoi (tmp); free (tmp); get_clean_line (f, &(tmp)); data->expected_columns = atoi (tmp); free (tmp); num_results = (data->expected_rows + 1) * data->expected_columns; data->expected_results = malloc (num_results * sizeof (char *)); data->expected_precision = malloc (num_results * sizeof (int)); for (i = 0; i < num_results; ++i) { get_clean_line (f, &(data->expected_results[i])); handle_precision (data->expected_results[i], &(data->expected_precision[i])); } fclose (f); return data; } void cleanup_test_data (struct test_data *data) { int i; int num_results = (data->expected_rows + 1) * (data->expected_columns); for (i = 0; i < num_results; ++i) { free (data->expected_results[i]); } free (data->expected_results); free (data->expected_precision); free (data->test_case_name); free (data->database_name); free (data->sql_statement); free (data); } int test_case_filter (const struct dirent *entry) { return (fnmatch ("*.testcase", entry->d_name, FNM_PERIOD) == 0); } int run_subdir_test (const char *subdirname, struct db_conn *conn, int load_extension, int gpkg_amphibious_mode) { struct dirent **namelist; int n; int i; int result = 0; n = scandir (subdirname, &namelist, test_case_filter, alphasort); if (n < 0) { perror ("scandir"); return -1; } for (i = 0; i < n; ++i) { struct test_data *data; char *path; if (asprintf (&path, "%s/%s", subdirname, namelist[i]->d_name) < 0) { return -1; } data = read_one_case (path); free (path); result = do_one_case (conn, data, load_extension, gpkg_amphibious_mode); cleanup_test_data (data); if (result != 0) { return result; } free (namelist[i]); } free (namelist); return result; } int run_all_testcases (struct db_conn *conn, int load_extension, int legacy) { int ret; int result = 0; const char *security_level; result = run_subdir_test ("sql_stmt_tests", conn, load_extension, 0); if (result != 0) { return result; } security_level = getenv ("SPATIALITE_SECURITY"); if (security_level == NULL) ; else if (strcasecmp (security_level, "relaxed") == 0) { result = run_subdir_test ("sql_stmt_security_tests", conn, load_extension, 0); if (result != 0) { return result; } } #ifndef OMIT_MATHSQL /* only if MATHSQL is supported */ result = run_subdir_test ("sql_stmt_mathsql_tests", conn, load_extension, 0); if (result != 0) { return result; } #endif /* end MATHSQL conditional */ #ifndef OMIT_EPSG /* only if full EPSG is supported */ #ifndef OMIT_PROJ /* only if PROJ is supported */ result = run_subdir_test ("sql_stmt_proj_tests", conn, load_extension, 0); if (result != 0) { return result; } #endif /* end PROJ conditional */ #endif /* end EPSG conditional */ #ifndef OMIT_GEOS /* only if GEOS is supported */ if (strcmp (GEOSversion (), "3.3") < 0) { /* skipping GEOS tests if some obsolete version is found rationale: obsolete versions may return substantially different results, thus causing many testcases to fail */ fprintf (stderr, "WARNING: skipping GEOS testcases; obsolete version found !!!\n"); goto skip_geos; } ret = system ("cp test_geos.sqlite test_geos_x.sqlite"); if (ret != 0) { fprintf (stderr, "cannot copy test_geos database\n"); return -1; } result = run_subdir_test ("sql_stmt_geos_tests", conn, load_extension, 0); if (result != 0) { return result; } ret = unlink ("test_geos_x.sqlite"); if (ret != 0) { fprintf (stderr, "cannot remove test_geos_x database\n"); return -20; } skip_geos: #endif /* end GEOS conditional */ #ifdef GEOS_ADVANCED /* only if GEOS_ADVANCED is supported */ if (strcmp (GEOSversion (), "3.4") < 0) { /* skipping GEOS tests if some obsolete version is found rationale: obsolete versions may return substantially different results, thus causing many testcases to fail */ fprintf (stderr, "WARNING: skipping GEOS_ADVANCED testcases; obsolete version found !!!\n"); goto skip_geos_advanced; } result = run_subdir_test ("sql_stmt_geosadvanced_tests", conn, load_extension, 0); if (result != 0) { return result; } skip_geos_advanced: #endif /* end GEOS_ADVANCED conditional */ #ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ result = run_subdir_test ("sql_stmt_lwgeom_tests", conn, load_extension, 0); if (result != 0) { return result; } #endif /* end LWGEOM conditional */ #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ result = run_subdir_test ("sql_stmt_libxml2_tests", conn, load_extension, 0); if (result != 0) { return result; } security_level = getenv ("SPATIALITE_SECURITY"); if (security_level == NULL) ; else if (strcasecmp (security_level, "relaxed") == 0) { result = run_subdir_test ("sql_stmt_xmlsec_tests", conn, load_extension, 0); if (result != 0) { return result; } } #endif /* end LIBXML2 conditional */ #ifdef ENABLE_GEOPACKAGE /* only if GeoPackage support is enabled */ if (!legacy) { result = run_subdir_test ("sql_stmt_geopackage_tests", conn, load_extension, 1); if (result != 0) { return result; } } #endif /* end GEOPACKAGE conditional */ #ifndef OMIT_FREEXL /* FREEXL is enabled */ security_level = getenv ("SPATIALITE_SECURITY"); if (security_level == NULL) ; else if (strcasecmp (security_level, "relaxed") == 0) { result = run_subdir_test ("sql_stmt_freexl_tests", conn, load_extension, 0); if (result != 0) { return result; } } #endif /* end FREEXL support */ /* testing global settings SQL functions */ if (legacy) { result = run_subdir_test ("sql_stmt_nocache_tests", conn, load_extension, 0); if (result != 0) { return result; } } else { result = run_subdir_test ("sql_stmt_cache_tests", conn, load_extension, 0); if (result != 0) { return result; } } return result; } int run_specified_testcases (int argc, char *argv[], struct db_conn *conn, int load_extension) { int result = 0; int i = 0; for (i = 1; i < argc; ++i) { struct test_data *data; data = read_one_case (argv[i]); result = do_one_case (conn, data, load_extension, 0); cleanup_test_data (data); if (result != 0) { break; } } return result; } int main (int argc, char *argv[]) { int result = 0; void *cache = spatialite_alloc_connection (); struct db_conn conn; conn.db_path = NULL; conn.db_handle = NULL; conn.cache = cache; /* testing in current mode */ if (argc == 1) { result = run_all_testcases (&conn, 0, 0); } else { result = run_specified_testcases (argc, argv, &conn, 0); } if (result != 0) { /* it looks like if MinGW applies some wrong assumption */ /* some negative values are incorrectly reported to be OK */ /* forcing -1 seems to resolve this issue */ result = -1; } close_connection (&conn); spatialite_cleanup_ex (conn.cache); conn.cache = NULL; if (result == 0) { /* testing again in legacy mode */ fprintf (stderr, "\n****************** testing again in legacy mode\n\n"); if (argc == 1) { result = run_all_testcases (&conn, 0, 1); } else { result = run_specified_testcases (argc, argv, &conn, 0); } close_connection (&conn); } if (result == 0) { /* testing again in load_extension mode */ fprintf (stderr, "\n****************** testing again in load_extension mode\n\n"); if (argc == 1) { result = run_all_testcases (&conn, 1, 0); } else { result = run_specified_testcases (argc, argv, &conn, 1); } close_connection (&conn); } spatialite_shutdown (); return result; } libspatialite-4.3.0a/test/check_extension.c0000664000175000017500000002224012544707704015736 00000000000000/* check_extension.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #ifdef _WIN32 #include "asprintf4win.h" #endif int main (int argc, char *argv[]) { sqlite3 *db_handle = NULL; char *sql_statement; int ret; char *err_msg = NULL; char **results; int rows; int columns; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } sqlite3_enable_load_extension (db_handle, 1); asprintf (&sql_statement, "SELECT load_extension('mod_spatialite')"); ret = sqlite3_exec (db_handle, sql_statement, NULL, NULL, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "load_extension() error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } asprintf (&sql_statement, "SELECT spatialite_version()"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: spatialite_version() bad result: %i/%i.\n", rows, columns); return -11; } if (strcmp (results[1], VERSION) != 0) { fprintf (stderr, "Unexpected error: spatialite_version() bad result: %s.\n", results[1]); return -12; } sqlite3_free_table (results); asprintf (&sql_statement, "SELECT geos_version()"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error2: %s\n", err_msg); sqlite3_free (err_msg); return -13; } #ifndef OMIT_GEOS /* only if GEOS is supported */ if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: geos_version() bad result: %i/%i.\n", rows, columns); return -14; } /* we tolerate any string here, because versions always change */ if (strlen (results[1]) == 0) { fprintf (stderr, "Unexpected error: geos_version() bad result.\n"); return -15; } #else /* GEOS is not supported */ /* in this case we expect a NULL */ if (results[1] != NULL) { fprintf (stderr, "Unexpected error: geos_version() bad result.\n"); return -15; } #endif /* end GEOS conditional */ sqlite3_free_table (results); asprintf (&sql_statement, "SELECT proj4_version()"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error3: %s\n", err_msg); sqlite3_free (err_msg); return -16; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: proj4_version() bad result: %i/%i.\n", rows, columns); return -17; } #ifndef OMIT_PROJ /* only if PROJ is supported */ /* we tolerate any string here, because versions always change */ if (strlen (results[1]) == 0) { fprintf (stderr, "Unexpected error: proj4_version() bad result.\n"); return -18; } #else /* PROJ is not supported */ /* in this case we expect a NULL */ if (results[1] != NULL) { fprintf (stderr, "Unexpected error: proj4_version() bad result.\n"); return -19; } #endif /* end PROJ conditional */ sqlite3_free_table (results); asprintf (&sql_statement, "SELECT spatialite_target_cpu()"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error4: %s\n", err_msg); sqlite3_free (err_msg); return -20; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: spatialite_target_cpu() bad result: %i/%i.\n", rows, columns); return -21; } sqlite3_free_table (results); asprintf (&sql_statement, "SELECT lwgeom_version()"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error5: %s\n", err_msg); sqlite3_free (err_msg); return -22; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: lwgeom_version() bad result: %i/%i.\n", rows, columns); return -23; } #ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ /* we tolerate any string here, because versions always change */ if (strlen (results[1]) == 0) { fprintf (stderr, "Unexpected error: lwgeom_version() bad result.\n"); return -24; } #else /* LWGEOM is not supported */ /* in this case we expect a NULL */ if (results[1] != NULL) { fprintf (stderr, "Unexpected error: lwgeom_version() bad result.\n"); return -25; } #endif /* end LWGEOM conditional */ sqlite3_free_table (results); asprintf (&sql_statement, "SELECT libxml2_version()"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error6: %s\n", err_msg); sqlite3_free (err_msg); return -26; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: libxml2_version() bad result: %i/%i.\n", rows, columns); return -27; } #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ /* we tolerate any string here, because versions always change */ if (strlen (results[1]) == 0) { fprintf (stderr, "Unexpected error: libxml2_version() bad result.\n"); return -28; } #else /* LIBXML2 is not supported */ /* in this case we expect a NULL */ if (results[1] != NULL) { fprintf (stderr, "Unexpected error: libxml2_version() bad result.\n"); return -29; } #endif /* end LIBXML2 conditional */ sqlite3_free_table (results); asprintf (&sql_statement, "SELECT freexl_version()"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error2: %s\n", err_msg); sqlite3_free (err_msg); return -30; } #ifndef OMIT_FREEXL /* only if FreeXL is supported */ if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: freexl_version() bad result: %i/%i.\n", rows, columns); return -31; } /* we tolerate any string here, because versions always change */ if (strlen (results[1]) == 0) { fprintf (stderr, "Unexpected error: freexl_version() bad result.\n"); return -32; } #else /* FreeXL is not supported */ /* in this case we expect a NULL */ if (results[1] != NULL) { fprintf (stderr, "Unexpected error: freexl_version() bad result.\n"); return -33; } #endif /* end FreeXL conditional */ sqlite3_free_table (results); sqlite3_close (db_handle); spatialite_cleanup (); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_virtualelem.c0000664000175000017500000010203512544707704016254 00000000000000/* check_virtualelem.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" static int create_table (sqlite3 * sqlite, const char *table) { /* creating a test table */ int ret; char *err_msg = NULL; char *sql; sql = sqlite3_mprintf ("CREATE TABLE %s (id INTEGER PRIMARY KEY AUTOINCREMENT, " "name TEXT NOT NULL)", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE \"%s\" error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int test_table (sqlite3 * sqlite, const char *prefix, const char *table, const char *column) { /* testing a resultset */ int ret; char *sql; sqlite3_stmt *stmt = NULL; int row_no = 0; if (prefix == NULL && column == NULL) sql = sqlite3_mprintf ("SELECT t.id, t.name, Count(e.geometry) " "FROM %s AS t JOIN ElementaryGeometries AS e ON " "(e.f_table_name = %Q AND e.origin_rowid = t.ROWID) " "GROUP BY t.id", table, table); else if (prefix != NULL && column != NULL) sql = sqlite3_mprintf ("SELECT t.id, t.name, Count(e.geometry) " "FROM %s AS t JOIN ElementaryGeometries AS e ON " "(e.db_prefix = %Q AND e.f_table_name = %Q AND " "e.f_geometry_column = %Q AND e.origin_rowid = t.ROWID) " "GROUP BY t.id", table, prefix, table, column); else if (prefix != NULL) sql = sqlite3_mprintf ("SELECT t.id, t.name, Count(e.geometry) " "FROM %s AS t JOIN ElementaryGeometries AS e ON " "(e.db_prefix = %Q AND e.f_table_name = %Q " "AND e.origin_rowid = t.ROWID) " "GROUP BY t.id", table, prefix, table); else sql = sqlite3_mprintf ("SELECT t.id, t.name, Count(e.geometry) " "FROM %s AS t JOIN ElementaryGeometries AS e ON " "(e.f_table_name = %Q AND e.f_geometry_column = %Q " "AND e.origin_rowid = t.ROWID) " "GROUP BY t.id", table, table, column); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "SELECT FROM \"%s\": \"%s\"\n", table, sqlite3_errmsg (sqlite)); return 0; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { int id = sqlite3_column_int (stmt, 0); const char *name = (const char *) sqlite3_column_text (stmt, 1); int count = sqlite3_column_int (stmt, 2); switch (row_no) { case 0: if (id == 1 && strcmp (name, "alpha") == 0 && count == 1) ; else { fprintf (stderr, "Unexpected result: table \"%s\" row=%d) [%d %s %d]\n", table, row_no, id, name, count); goto error; } break; case 1: if (id == 2 && strcmp (name, "beta") == 0 && count == 2) ; else { fprintf (stderr, "Unexpected result: table \"%s\" row=%d) [%d %s %d]\n", table, row_no, id, name, count); goto error; } break; case 2: if (id == 3 && strcmp (name, "gamma") == 0 && count == 3) ; else { fprintf (stderr, "Unexpected result: table \"%s\" row=%d) [%d %s %d]\n", table, row_no, id, name, count); goto error; } break; default: fprintf (stderr, "Unexpected row %d (table \"%s\")\n", row_no, table); goto error; }; } else goto error; row_no++; } sqlite3_finalize (stmt); return 1; error: if (stmt != NULL) sqlite3_finalize (stmt); return 0; } static int test_point_xy (sqlite3 * sqlite) { /* testing MULTIPOINT XY */ int ret; char *err_msg = NULL; char *sql; const char *table = "mpointxy"; /* creating the base Table */ ret = create_table (sqlite, table); if (!ret) return 0; /* adding the Geometry */ sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geom', 4326, " "'MULTIPOINT', 'XY')", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn \"%s\" error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* populating the test table */ sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'alpha', ST_GeomFromText('MULTIPOINT(1 1)', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #1 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'beta', ST_GeomFromText('MULTIPOINT(1 1, 2 2)', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #2 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'gamma', ST_GeomFromText('MULTIPOINT(1 1, 2 2, 3 3)', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #3 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* testing the table */ ret = test_table (sqlite, NULL, table, NULL); if (!ret) return 0; return 1; } static int test_point_xyz (sqlite3 * sqlite) { /* testing MULTIPOINT XYZ */ int ret; char *err_msg = NULL; char *sql; const char *table = "mpointxyz"; /* creating the base Table */ ret = create_table (sqlite, table); if (!ret) return 0; /* adding the Geometry */ sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geom', 4326, " "'MULTIPOINT', 'XYZ')", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn \"%s\" error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* populating the test table */ sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'alpha', ST_GeomFromText('MULTIPOINTZ(1 1 1)', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #1 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'beta', ST_GeomFromText('MULTIPOINTZ(1 1 1, 2 2 2)', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #2 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'gamma', ST_GeomFromText('MULTIPOINTZ(1 1 1, 2 2 2, 3 3 3)', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #3 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* testing the table */ ret = test_table (sqlite, "main", table, NULL); if (!ret) return 0; return 1; } static int test_point_xym (sqlite3 * sqlite) { /* testing MULTIPOINT XYM */ int ret; char *err_msg = NULL; char *sql; const char *table = "mpointxym"; /* creating the base Table */ ret = create_table (sqlite, table); if (!ret) return 0; /* adding the Geometry */ sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geom', 4326, " "'MULTIPOINT', 'XYM')", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn \"%s\" error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* populating the test table */ sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'alpha', ST_GeomFromText('MULTIPOINTM(1 1 1)', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #1 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'beta', ST_GeomFromText('MULTIPOINTM(1 1 1, 2 2 2)', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #2 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'gamma', ST_GeomFromText('MULTIPOINTM(1 1 1, 2 2 2, 3 3 3)', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #3 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* testing the table */ ret = test_table (sqlite, "main", table, "geom"); if (!ret) return 0; return 1; } static int test_point_xyzm (sqlite3 * sqlite) { /* testing MULTIPOINT XYZM */ int ret; char *err_msg = NULL; char *sql; const char *table = "mpointxyzm"; /* creating the base Table */ ret = create_table (sqlite, table); if (!ret) return 0; /* adding the Geometry */ sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geom', 4326, " "'MULTIPOINT', 'XYZM')", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn \"%s\" error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* populating the test table */ sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'alpha', ST_GeomFromText('MULTIPOINTZM(1 1 1 1)', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #1 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'beta', ST_GeomFromText('MULTIPOINTZM(1 1 1 1, 2 2 2 2)', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #2 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'gamma', ST_GeomFromText('MULTIPOINTZM(1 1 1 1, 2 2 2 2, 3 3 3 3)', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #3 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* testing the table */ ret = test_table (sqlite, NULL, table, "geom"); if (!ret) return 0; return 1; } static int test_linestring_xy (sqlite3 * sqlite) { /* testing MULTILINESTRING XY */ int ret; char *err_msg = NULL; char *sql; const char *table = "mlinestringxy"; /* creating the base Table */ ret = create_table (sqlite, table); if (!ret) return 0; /* adding the Geometry */ sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geom', 4326, " "'MULTILINESTRING', 'XY')", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn \"%s\" error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* populating the test table */ sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'alpha', ST_GeomFromText('MULTILINESTRING((1 1, 2 2))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #1 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'beta', ST_GeomFromText('MULTILINESTRING((1 1, 2 2), " "(3 3, 4 4))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #2 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'gamma', ST_GeomFromText('MULTILINESTRING((1 1, 2 2), " "(3 3, 4 4), (5 5, 6 6))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #3 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* testing the table */ ret = test_table (sqlite, NULL, table, NULL); if (!ret) return 0; return 1; } static int test_linestring_xyz (sqlite3 * sqlite) { /* testing MULTILINESTRING XYZ */ int ret; char *err_msg = NULL; char *sql; const char *table = "mlinestringxyz"; /* creating the base Table */ ret = create_table (sqlite, table); if (!ret) return 0; /* adding the Geometry */ sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geom', 4326, " "'MULTILINESTRING', 'XYZ')", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn \"%s\" error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* populating the test table */ sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'alpha', ST_GeomFromText('MULTILINESTRINGZ((1 1 1, 2 2 2))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #1 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'beta', ST_GeomFromText('MULTILINESTRINGZ((1 1 1, 2 2 2), " "(3 3 3, 4 4 4))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #2 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'gamma', ST_GeomFromText('MULTILINESTRINGZ((1 1 1, 2 2 2), " "(3 3 3, 4 4 4), (5 5 5, 6 6 6))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #3 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* testing the table */ ret = test_table (sqlite, "main", table, "geom"); if (!ret) return 0; return 1; } static int test_linestring_xym (sqlite3 * sqlite) { /* testing MULTILINESTRING XYM */ int ret; char *err_msg = NULL; char *sql; const char *table = "mlinestringxym"; /* creating the base Table */ ret = create_table (sqlite, table); if (!ret) return 0; /* adding the Geometry */ sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geom', 4326, " "'MULTILINESTRING', 'XYM')", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn \"%s\" error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* populating the test table */ sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'alpha', ST_GeomFromText('MULTILINESTRINGM((1 1 1, 2 2 2))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #1 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'beta', ST_GeomFromText('MULTILINESTRINGM((1 1 1, 2 2 2), " "(3 3 3, 4 4 4))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #2 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'gamma', ST_GeomFromText('MULTILINESTRINGM((1 1 1, 2 2 2), " "(3 3 3, 4 4 4), (5 5 5, 6 6 6))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #3 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* testing the table */ ret = test_table (sqlite, "main", table, NULL); if (!ret) return 0; return 1; } static int test_linestring_xyzm (sqlite3 * sqlite) { /* testing MULTILINESTRING XYZ */ int ret; char *err_msg = NULL; char *sql; const char *table = "mlinestringxyzm"; /* creating the base Table */ ret = create_table (sqlite, table); if (!ret) return 0; /* adding the Geometry */ sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geom', 4326, " "'MULTILINESTRING', 'XYZM')", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn \"%s\" error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* populating the test table */ sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'alpha', ST_GeomFromText('MULTILINESTRINGZM((1 1 1 1, 2 2 2 2))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #1 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'beta', ST_GeomFromText('MULTILINESTRINGZM((1 1 1 1, 2 2 2 2), " "(3 3 3 3, 4 4 4 4))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #2 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'gamma', ST_GeomFromText('MULTILINESTRINGZM((1 1 1 1, 2 2 2 2), " "(3 3 3 3, 4 4 4 4), (5 5 5 5, 6 6 6 6))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #3 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* testing the table */ ret = test_table (sqlite, NULL, table, "geom"); if (!ret) return 0; return 1; } static int test_polygon_xy (sqlite3 * sqlite) { /* testing MULTIPOLYGON XY */ int ret; char *err_msg = NULL; char *sql; const char *table = "mpolygonxy"; /* creating the base Table */ ret = create_table (sqlite, table); if (!ret) return 0; /* adding the Geometry */ sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geom', 4326, " "'MULTIPOLYGON', 'XY')", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn \"%s\" error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* populating the test table */ sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'alpha', ST_GeomFromText('MULTIPOLYGON(" "((1 1, 2 1, 2 2, 1 2, 1 1)))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #1 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'beta', ST_GeomFromText('MULTIPOLYGON(" "((1 1, 2 1, 2 2, 1 2, 1 1)), " "((10 10, 11 10, 11 11, 10 11, 10 10)))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #2 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'gamma', ST_GeomFromText('MULTIPOLYGON(" "((1 1, 2 1, 2 2, 1 2, 1 1)), " "((10 10, 11 10, 11 11, 10 11, 10 10)), " "((20 20, 31 20, 31 31, 20 31, 20 20), " "(25 25, 25 26, 26 26, 26 25, 25 25)))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #3 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* testing the table */ ret = test_table (sqlite, NULL, table, NULL); if (!ret) return 0; return 1; } static int test_polygon_xyz (sqlite3 * sqlite) { /* testing MULTIPOLYGON XYZ */ int ret; char *err_msg = NULL; char *sql; const char *table = "mpolygonxyz"; /* creating the base Table */ ret = create_table (sqlite, table); if (!ret) return 0; /* adding the Geometry */ sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geom', 4326, " "'MULTIPOLYGON', 'XYZ')", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn \"%s\" error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* populating the test table */ sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'alpha', ST_GeomFromText('MULTIPOLYGONZ(" "((1 1 1, 2 1 1, 2 2 2, 1 2 2, 1 1 1)))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #1 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'beta', ST_GeomFromText('MULTIPOLYGONZ(" "((1 1 1, 2 1 1, 2 2 2, 1 2 2, 1 1 1)), " "((10 10 10, 11 10 10, 11 11 11, 10 11 11, 10 10 10)))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #2 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'gamma', ST_GeomFromText('MULTIPOLYGONZ(" "((1 1 1, 2 1 1, 2 2 2, 1 2 2, 1 1 1)), " "((10 10 10, 11 10 10, 11 11 11, 10 11 11, 10 10 10)), " "((20 20 20, 31 20 20, 31 31 31, 20 31 31, 20 20 20), " "(25 25 25, 25 26 26, 26 26 26, 26 25 25, 25 25 25)))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #3 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* testing the table */ ret = test_table (sqlite, "main", table, "geom"); if (!ret) return 0; return 1; } static int test_polygon_xym (sqlite3 * sqlite) { /* testing MULTIPOLYGON XYM */ int ret; char *err_msg = NULL; char *sql; const char *table = "mpolygonxym"; /* creating the base Table */ ret = create_table (sqlite, table); if (!ret) return 0; /* adding the Geometry */ sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geom', 4326, " "'MULTIPOLYGON', 'XYM')", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn \"%s\" error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* populating the test table */ sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'alpha', ST_GeomFromText('MULTIPOLYGONM(" "((1 1 1, 2 1 1, 2 2 2, 1 2 2, 1 1 1)))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #1 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'beta', ST_GeomFromText('MULTIPOLYGONM(" "((1 1 1, 2 1 1, 2 2 2, 1 2 2, 1 1 1)), " "((10 10 10, 11 10 10, 11 11 11, 10 11 11, 10 10 10)))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #2 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'gamma', ST_GeomFromText('MULTIPOLYGONM(" "((1 1 1, 2 1 1, 2 2 2, 1 2 2, 1 1 1)), " "((10 10 10, 11 10 10, 11 11 11, 10 11 11, 10 10 10)), " "((20 20 20, 31 20 20, 31 31 31, 20 31 31, 20 20 20), " "(25 25 25, 25 26 26, 26 26 26, 26 25 25, 25 25 25)))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #3 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* testing the table */ ret = test_table (sqlite, "main", table, NULL); if (!ret) return 0; return 1; } static int test_polygon_xyzm (sqlite3 * sqlite) { /* testing MULTIPOLYGON XYZM */ int ret; char *err_msg = NULL; char *sql; const char *table = "mpolygonxyzm"; /* creating the base Table */ ret = create_table (sqlite, table); if (!ret) return 0; /* adding the Geometry */ sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geom', 4326, " "'MULTIPOLYGON', 'XYZM')", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn \"%s\" error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* populating the test table */ sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'alpha', ST_GeomFromText('MULTIPOLYGONZM(" "((1 1 1 1, 2 1 1 1, 2 2 2 2, 1 2 2 2, 1 1 1 1)))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #1 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'beta', ST_GeomFromText('MULTIPOLYGONZM(" "((1 1 1 1, 2 1 1 1, 2 2 2 2, 1 2 2 2, 1 1 1 1)), " "((10 10 10 10, 11 10 10 10, 11 11 11 11, 10 11 11 11, 10 10 10 10)))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #2 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql = sqlite3_mprintf ("INSERT INTO %s (id, name, geom) VALUES " "(NULL, 'gamma', ST_GeomFromText('MULTIPOLYGONZM(" "((1 1 1 1, 2 1 1 1, 2 2 2 2, 1 2 2 2, 1 1 1 1)), " "((10 10 10 10, 11 10 10 10, 11 11 11 11, 10 11 11 11, 10 10 10 10)), " "((20 20 20 20, 31 20 20 20, 31 31 31 31, 20 31 31 31, 20 20 20 20), " "(25 25 25 25, 25 26 26 26, 26 26 26 26, 26 25 25 25, 25 25 25 25)))', 4326))", table); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" #3 error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } /* testing the table */ ret = test_table (sqlite, NULL, table, "geom"); if (!ret) return 0; return 1; } int main (int argc, char *argv[]) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -2; } /* Testing MULTIPOINTs */ ret = test_point_xy (db_handle); if (!ret) { sqlite3_close (db_handle); return -3; } ret = test_point_xyz (db_handle); if (!ret) { sqlite3_close (db_handle); return -4; } ret = test_point_xym (db_handle); if (!ret) { sqlite3_close (db_handle); return -5; } ret = test_point_xyzm (db_handle); if (!ret) { sqlite3_close (db_handle); return -6; } /* Testing MULTILINESTRINGs */ ret = test_linestring_xy (db_handle); if (!ret) { sqlite3_close (db_handle); return -7; } ret = test_linestring_xyz (db_handle); if (!ret) { sqlite3_close (db_handle); return -8; } ret = test_linestring_xym (db_handle); if (!ret) { sqlite3_close (db_handle); return -9; } ret = test_linestring_xyzm (db_handle); if (!ret) { sqlite3_close (db_handle); return -10; } /* Testing MULTIPOLYGONs */ ret = test_polygon_xy (db_handle); if (!ret) { sqlite3_close (db_handle); return -11; } ret = test_polygon_xyz (db_handle); if (!ret) { sqlite3_close (db_handle); return -12; } ret = test_polygon_xym (db_handle); if (!ret) { sqlite3_close (db_handle); return -13; } ret = test_polygon_xyzm (db_handle); if (!ret) { sqlite3_close (db_handle); return -14; } sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_get_normal_zoom_bad_geopackage.c0000664000175000017500000001061712544707704022076 00000000000000/* check_get_normal_zoom_bad_geopackage.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_get_normal_zoom_bad_geopackage.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* create a corrupt gpkg_tile_matrix table (not spec compliant) */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS gpkg_tile_matrix", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP gpkg_tile_matrix error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "CREATE TABLE gpkg_tile_matrix (table_name TEXT NOT NULL, zoom_level TEXT NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE gpkg_tile_matrix error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } ret = sqlite3_exec (db_handle, "INSERT INTO gpkg_tile_matrix VALUES (\"test1_matrix_tiles\", \"foo\", 1, 1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT gpkg_tile_matrix zoom 0 error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for broken geopackage, got %i\n", ret); sqlite3_free (err_msg); return -7; } if (strcmp (err_msg, "gpkgGetNormalZoom: could not parse result (corrupt GeoPackage?)") != 0) { fprintf (stderr, "Unexpected error message for broken geopackage: %s\n", err_msg); sqlite3_free (err_msg); return -8; } sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.3.0a/test/check_multithread.c0000664000175000017500000005476012544707704016260 00000000000000/* check_multithread.c -- SpatiaLite Test Case Author: Alessandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #ifdef _WIN32 #define _CRT_RAND_S #endif #include #include #include #include #ifdef _WIN32 #include #include #include #else #include #include #endif #ifndef _WIN32 #include #include #endif #include "config.h" #include #include #ifdef _WIN32 #include "fnmatch4win.h" #include "scandir4win.h" #include "asprintf4win.h" #include "fnmatch_impl4win.h" #endif struct test_data { char *test_case_name; char *database_name; char *sql_statement; int expected_rows; int expected_columns; char **expected_results; int *expected_precision; struct test_data *next; }; struct test_list { struct test_data *first; struct test_data *last; int count; struct test_data **array; }; struct db_conn { sqlite3 *db_handle; void *cache; }; struct thread_params { int id; struct test_list *list; struct db_conn *conn; int done; int count; int errors; #ifndef _WIN32 int started; pthread_t thread_id; pthread_attr_t attr; #endif } mt_params[64]; static struct db_conn * alloc_connection (void) { struct db_conn *conn = malloc (sizeof (struct db_conn)); conn->db_handle = NULL; conn->cache = spatialite_alloc_connection (); return conn; } static void close_connection (struct db_conn *conn, int final) { if (conn->db_handle != NULL) sqlite3_close (conn->db_handle); conn->db_handle = NULL; if (final) { if (conn->cache != NULL) spatialite_cleanup_ex (conn->cache); conn->cache = NULL; } } static void open_connection (struct db_conn *conn) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open %s db: %s\n", ":memory:", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return; } spatialite_init_ex (db_handle, conn->cache, 0); ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return; } conn->db_handle = db_handle; } static void init_thread_params (int id, struct test_list *list) { struct thread_params *p = &(mt_params[id]); p->id = id; p->conn = alloc_connection (); p->list = list; p->done = 0; p->count = 0; p->errors = 0; #ifndef _WIN32 p->started = 0; #endif } static void free_thread_params (int id, int *total_sql, int *failures) { struct thread_params *p = &(mt_params[id]); if (p->conn != NULL) { close_connection (p->conn, 1); free (p->conn); p->conn = NULL; } #ifndef _WIN32 if (p->started) { void *ptr; pthread_join (p->thread_id, &ptr); pthread_attr_destroy (&(p->attr)); } #endif *total_sql += p->count; *failures += p->errors; } int get_clean_line (FILE * f, char **line) { size_t len = 0; ssize_t num_read = 0; ssize_t end = 0; char *tmp_line = NULL; #if !defined(_WIN32) &&!defined(__APPLE__) /* expecting to be on a sane minded platform [linux-like] */ num_read = getline (&(tmp_line), &len, f); #else /* neither Windows nor MacOsX support getline() */ len = 1024 * 1024; tmp_line = malloc (len); if (fgets (tmp_line, len, f) == NULL) { free (tmp_line); num_read = -1; } else num_read = strlen (tmp_line); #endif if (num_read < 1) { fprintf (stderr, "failed to read at %li: %li\n", ftell (f), num_read); return -1; } /* trim the trailing new line and any comments */ for (end = 0; end < num_read; ++end) { if (*(tmp_line + end) == '\n') break; if (*(tmp_line + end) == '#') break; } /* trim any trailing spaces */ while (end > 0) { if (*(tmp_line + end - 1) != ' ') { break; } *(tmp_line + end - 1) = '\0'; end--; } *line = malloc (end + 1); memcpy (*line, tmp_line, end); (*line)[end] = '\0'; free (tmp_line); return 0; } void handle_precision (char *expected_result, int *precision) { int i; int prcsn; int result_len = strlen (expected_result); *precision = 0; for (i = result_len - 1; i >= 0; --i) { if (expected_result[i] == ':') { prcsn = atoi (&(expected_result[i + 1])); if (prcsn > 0) { expected_result[i] = '\0'; *precision = prcsn; } break; } } } struct test_data * read_one_case (const char *filepath) { int num_results; int i; char *tmp; FILE *f; struct test_data *data; f = fopen (filepath, "r"); data = malloc (sizeof (struct test_data)); data->next = NULL; get_clean_line (f, &(data->test_case_name)); get_clean_line (f, &(data->database_name)); get_clean_line (f, &(data->sql_statement)); get_clean_line (f, &(tmp)); data->expected_rows = atoi (tmp); free (tmp); get_clean_line (f, &(tmp)); data->expected_columns = atoi (tmp); free (tmp); num_results = (data->expected_rows + 1) * data->expected_columns; data->expected_results = malloc (num_results * sizeof (char *)); data->expected_precision = malloc (num_results * sizeof (int)); for (i = 0; i < num_results; ++i) { get_clean_line (f, &(data->expected_results[i])); handle_precision (data->expected_results[i], &(data->expected_precision[i])); } fclose (f); return data; } void cleanup_test_data (struct test_data *data) { int i; int num_results = (data->expected_rows + 1) * (data->expected_columns); for (i = 0; i < num_results; ++i) { free (data->expected_results[i]); } free (data->expected_results); free (data->expected_precision); free (data->test_case_name); free (data->database_name); free (data->sql_statement); free (data); } static void add_test (struct test_list *list, struct test_data *data) { if (list->first == NULL) list->first = data; if (list->last != NULL) list->last->next = data; list->last = data; } static void list_cleanup (struct test_list *list) { struct test_data *p; struct test_data *pn; p = list->first; while (p != NULL) { pn = p->next; cleanup_test_data (p); p = pn; } if (list->array != NULL) free (list->array); } static int build_test_array (struct test_list *list) { struct test_data *p; struct test_data **pn; list->count = 0; if (list->array != NULL) free (list->array); list->array = NULL; p = list->first; while (p != NULL) { list->count++; p = p->next; } if (list->count <= 0) return 0; list->array = malloc (sizeof (struct test_data *) * list->count); pn = list->array; p = list->first; while (p != NULL) { *pn = p; pn++; p = p->next; } return 1; } int test_case_filter (const struct dirent *entry) { return (fnmatch ("*.testcase", entry->d_name, FNM_PERIOD) == 0); } static int load_testcases (struct test_list *list) { struct dirent **namelist; int n; int i; const char *security_level; const char *current_dir; char *path; /* plain SQL testcases */ current_dir = "sql_stmt_tests"; path = sqlite3_mprintf ("%s", current_dir); n = scandir (path, &namelist, test_case_filter, alphasort); if (n < 0) { perror ("scandir"); return 0; } sqlite3_free (path); for (i = 0; i < n; ++i) { struct test_data *data; char *path; path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name); data = read_one_case (path); if (strcmp (data->database_name, ":memory:") == 0) add_test (list, data); else cleanup_test_data (data); sqlite3_free (path); free (namelist[i]); } free (namelist); /* security related testcases */ security_level = getenv ("SPATIALITE_SECURITY"); if (security_level == NULL) ; else if (strcasecmp (security_level, "relaxed") == 0) { current_dir = "sql_stmt_security_tests"; path = sqlite3_mprintf ("%s", current_dir); n = scandir (path, &namelist, test_case_filter, alphasort); if (n < 0) { perror ("scandir"); return 0; } sqlite3_free (path); for (i = 0; i < n; ++i) { struct test_data *data; char *path; path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name); data = read_one_case (path); if (strcmp (data->database_name, ":memory:") == 0) add_test (list, data); else cleanup_test_data (data); sqlite3_free (path); free (namelist[i]); } free (namelist); } #ifndef OMIT_MATHSQL /* only if MATHSQL is supported */ /* Math SQL testcases */ current_dir = "sql_stmt_mathsql_tests"; path = sqlite3_mprintf ("%s", current_dir); n = scandir (path, &namelist, test_case_filter, alphasort); if (n < 0) { perror ("scandir"); return 0; } sqlite3_free (path); for (i = 0; i < n; ++i) { struct test_data *data; char *path; path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name); data = read_one_case (path); if (strcmp (data->database_name, ":memory:") == 0) add_test (list, data); else cleanup_test_data (data); sqlite3_free (path); free (namelist[i]); } free (namelist); #endif /* end MATHSQL conditional */ #ifndef OMIT_PROJ /* only if PROJ is supported */ /* PROJ.4 SQL testcases */ current_dir = "sql_stmt_proj_tests"; path = sqlite3_mprintf ("%s", current_dir); n = scandir (path, &namelist, test_case_filter, alphasort); if (n < 0) { perror ("scandir"); return 0; } sqlite3_free (path); for (i = 0; i < n; ++i) { struct test_data *data; char *path; path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name); data = read_one_case (path); if (strcmp (data->database_name, ":memory:") == 0) add_test (list, data); else cleanup_test_data (data); sqlite3_free (path); free (namelist[i]); } free (namelist); #endif /* end PROJ conditional */ #ifndef OMIT_GEOS /* only if GEOS is supported */ /* GEOS SQL testcases */ current_dir = "sql_stmt_geos_tests"; path = sqlite3_mprintf ("%s", current_dir); n = scandir (path, &namelist, test_case_filter, alphasort); if (n < 0) { perror ("scandir"); return 0; } sqlite3_free (path); for (i = 0; i < n; ++i) { struct test_data *data; char *path; path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name); data = read_one_case (path); if (strcmp (data->database_name, ":memory:") == 0) add_test (list, data); else cleanup_test_data (data); sqlite3_free (path); free (namelist[i]); } free (namelist); #endif /* end GEOS conditional */ #ifdef GEOS_ADVANCED /* only if GEOS_ADVANCED is supported - 3.4.0 */ /* GEOS ADVANCED SQL testcases */ current_dir = "sql_stmt_geosadvanced_tests"; path = sqlite3_mprintf ("%s", current_dir); n = scandir (path, &namelist, test_case_filter, alphasort); if (n < 0) { perror ("scandir"); return 0; } sqlite3_free (path); for (i = 0; i < n; ++i) { struct test_data *data; char *path; path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name); data = read_one_case (path); if (strcmp (data->database_name, ":memory:") == 0) add_test (list, data); else cleanup_test_data (data); sqlite3_free (path); free (namelist[i]); } free (namelist); #endif /* end GEOS_ADVANCED conditional */ #ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ /* LWGEOM SQL testcases */ current_dir = "sql_stmt_lwgeom_tests"; path = sqlite3_mprintf ("%s", current_dir); n = scandir (path, &namelist, test_case_filter, alphasort); if (n < 0) { perror ("scandir"); return 0; } sqlite3_free (path); for (i = 0; i < n; ++i) { struct test_data *data; char *path; path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name); data = read_one_case (path); if (strcmp (data->database_name, ":memory:") == 0) add_test (list, data); else cleanup_test_data (data); sqlite3_free (path); free (namelist[i]); } free (namelist); #endif /* end LWGEOM conditional */ #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ /* LIBXML2 SQL testcases */ current_dir = "sql_stmt_libxml2_tests"; path = sqlite3_mprintf ("%s", current_dir); n = scandir (path, &namelist, test_case_filter, alphasort); if (n < 0) { perror ("scandir"); return 0; } sqlite3_free (path); for (i = 0; i < n; ++i) { struct test_data *data; char *path; path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name); data = read_one_case (path); if (strcmp (data->database_name, ":memory:") == 0) add_test (list, data); else cleanup_test_data (data); sqlite3_free (path); free (namelist[i]); } free (namelist); /* security related testcases */ security_level = getenv ("SPATIALITE_SECURITY"); if (security_level == NULL) ; else if (strcasecmp (security_level, "relaxed") == 0) { current_dir = "sql_stmt_xmlsec_tests"; path = sqlite3_mprintf ("%s", current_dir); n = scandir (path, &namelist, test_case_filter, alphasort); if (n < 0) { perror ("scandir"); return 0; } sqlite3_free (path); for (i = 0; i < n; ++i) { struct test_data *data; char *path; path = sqlite3_mprintf ("%s/%s", current_dir, namelist[i]->d_name); data = read_one_case (path); if (strcmp (data->database_name, ":memory:") == 0 || strcmp (data->database_name, "NEW:memory:") == 0) add_test (list, data); else cleanup_test_data (data); sqlite3_free (path); free (namelist[i]); } free (namelist); } #endif /* end LIBXML2 conditional */ return 1; } int do_one_case (const struct test_data *data, struct db_conn *conn, int thread_id) { int ret; char *err_msg = NULL; int i; char **results; int rows; int columns; if (strcmp (data->database_name, "NEW:memory:") == 0) close_connection (conn, 0); if (conn->db_handle == NULL) open_connection (conn); if (conn->db_handle == NULL) return -9; ret = sqlite3_get_table (conn->db_handle, data->sql_statement, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { printf ("\nFAILED TEST: Thread #%d %s\n", thread_id, data->test_case_name); printf ("Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != data->expected_rows) || (columns != data->expected_columns)) { printf ("\nFAILED TEST: Thread #%d %s\n", thread_id, data->test_case_name); printf ("Unexpected error: bad result: %i/%i.\n", rows, columns); return -11; } for (i = 0; i < (data->expected_rows + 1) * data->expected_columns; ++i) { if (results[i] != NULL && data->expected_precision[i] == 0) { data->expected_precision[i] = strlen (results[i]); } if (results[i] == NULL) { if (strcmp ("(NULL)", data->expected_results[i]) == 0) { /* we expected this */ continue; } else { printf ("\nFAILED TEST: Thread #%d %s\n", thread_id, data->test_case_name); printf ("Null value at %i.\n", i); printf ("Expected value was: %s\n", data->expected_results[i]); return -12; } } else if (strlen (results[i]) == 0) { printf ("\nFAILED TEST: Thread #%d %s\n", thread_id, data->test_case_name); printf ("zero length result at %i\n", i); printf ("Expected value was : %s|\n", data->expected_results[i]); return -13; } else if (strncmp (results[i], data->expected_results[i], data->expected_precision[i]) != 0) { printf ("\nFAILED TEST: Thread #%d %s\n", thread_id, data->test_case_name); printf ("Unexpected value at %i: %s|\n", i, results[i]); printf ("Expected value was : %s|\n", data->expected_results[i]); return -14; } } sqlite3_free_table (results); return 0; } static void do_tests (struct thread_params *param) { int i; int j; struct test_list *list = param->list; struct db_conn *conn = param->conn; for (i = list->count - 1; i >= 0; i--) { /* tests in backward order */ struct test_data *px = *(list->array + i); for (j = 0; j < 32; j++) { int ret = do_one_case (px, conn, param->id); if (ret < 0) param->errors += 1; param->count++; } } for (i = 0; i < list->count; i++) { /* tests in forward order */ struct test_data *px = *(list->array + i); for (j = 0; j < 32; j++) { int ret = do_one_case (px, conn, param->id); if (ret < 0) param->errors += 1; param->count++; } } for (i = 0; i < 131072; i++) { /* tests in random order */ struct test_data *px; int ret; int x; #ifdef _WIN32 x = rand () % list->count; #else x = random () % list->count; #endif px = *(list->array + x); ret = do_one_case (px, conn, param->id); if (ret < 0) param->errors += 1; param->count++; } } #ifdef _WIN32 DWORD WINAPI exec_thread (void *arg) #else void * exec_thread (void *arg) #endif { /* thread implementation */ struct thread_params *param = (struct thread_params *) arg; do_tests (param); /* thread termination */ if (param->errors) printf ("\nThread %d reports %d error%c\n", param->id, param->errors, (param->errors > 1) ? 's' : ' '); param->done = 1; #ifdef _WIN32 return 0; #else pthread_exit (NULL); #endif } static void run_thread (int i) { struct thread_params *param = &(mt_params[i]); #ifdef _WIN32 HANDLE thread_handle; DWORD dw_thread_id; thread_handle = CreateThread (NULL, 0, exec_thread, param, 0, &dw_thread_id); SetThreadPriority (thread_handle, THREAD_PRIORITY_IDLE); #else int ok_prior = 0; int policy; int min_prio; struct sched_param sp; pthread_attr_init (&(param->attr)); param->started = 1; if (pthread_attr_setschedpolicy (&(param->attr), SCHED_RR) == 0) { /* attempting to set the lowest priority */ if (pthread_attr_getschedpolicy (&(param->attr), &policy) == 0) { min_prio = sched_get_priority_min (policy); sp.sched_priority = min_prio; if (pthread_attr_setschedparam (&(param->attr), &sp) == 0) { /* ok, setting the lowest priority */ ok_prior = 1; pthread_create (&(param->thread_id), &(param->attr), exec_thread, param); } } } if (!ok_prior) { /* failure: using standard priority */ pthread_create (&(param->thread_id), NULL, exec_thread, param); } #endif } int main (int argc, char *argv[]) { int i; int failures = 0; int total_sql = 0; int num_threads = 4; int mt_enabled = 0; struct test_list list; const char *env_var; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ env_var = getenv ("SPATIALITE_MULTITHREAD_TEST"); if (env_var == NULL) ; else if (strcasecmp (env_var, "yes") == 0) mt_enabled = 1; if (!mt_enabled) { printf ("check_multithread: SPATIALITE_MULTITHREAD_TEST non enabled .... skipping ...\n"); return 0; } env_var = getenv ("SPATIALITE_NUM_THREADS"); if (env_var == NULL) ; else { num_threads = atoi (env_var); if (num_threads < 1) num_threads = 1; if (num_threads > 64) num_threads = 64; } printf ("Testing %d concurrent threads\n", num_threads); /* seeding the pseudo-random generator */ #ifdef _WIN32 srand (getpid ()); #else srandom (getpid ()); #endif list.first = NULL; list.last = NULL; list.count = 0; list.array = NULL; if (!load_testcases (&list)) { fprintf (stderr, "Unable to load testcases !!!\n"); return -1; } if (!build_test_array (&list)) { fprintf (stderr, "No valid testcases found !!!\n"); return -1; } spatialite_initialize (); for (i = 0; i < num_threads; i++) init_thread_params (i, &list); for (i = 0; i < num_threads; i++) run_thread (i); while (1) { int cnt; #ifdef _WIN32 Sleep (5 * 1000); #else sleep (5); #endif cnt = 0; for (i = 0; i < num_threads; i++) { struct thread_params *p = &(mt_params[i]); if (p->done != 1) cnt++; } if (cnt == 0) break; } for (i = 0; i < num_threads; i++) free_thread_params (i, &total_sql, &failures); printf ("\n\nALL MULTITHREAD TEST PASSED\n\t[%d SQL tests: %d failures]\n\n", total_sql, failures); list_cleanup (&list); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/sql_stmt_freexl_tests/0000775000175000017500000000000012573314332017127 500000000000000libspatialite-4.3.0a/test/sql_stmt_freexl_tests/loadxls3.testcase0000664000175000017500000000033612544707704022346 00000000000000ImportXLS - NULL worksheet_index :memory: #use in-memory database SELECT ImportXLS('spreadsheet.xls', 'table', NULL); 1 # rows (not including the header row) 1 # columns ImportXLS('spreadsheet.xls', 'table', NULL); (NULL) libspatialite-4.3.0a/test/sql_stmt_freexl_tests/Makefile.in0000664000175000017500000003033512573313636021126 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_freexl_tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = loadxls1.testcase \ loadxls2.testcase \ loadxls3.testcase \ loadxls4.testcase \ loadxls5.testcase \ loadxls6.testcase \ loadxls7.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_freexl_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_freexl_tests/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/test/sql_stmt_freexl_tests/loadxls7.testcase0000664000175000017500000000034012544707704022345 00000000000000ImportXLS - existing spreadsheet :memory: #use in-memory database SELECT ImportXLS('./testcase1.xls', 'xlstable', 1, 1); 1 # rows (not including the header row) 1 # columns ImportXLS('./testcase1.xls', 'xlstable', 1, 1); 19 libspatialite-4.3.0a/test/sql_stmt_freexl_tests/loadxls1.testcase0000664000175000017500000000026012544707704022340 00000000000000ImportXLS - NULL filename :memory: #use in-memory database SELECT ImportXLS(NULL, 'table'); 1 # rows (not including the header row) 1 # columns ImportXLS(NULL, 'table') (NULL) libspatialite-4.3.0a/test/sql_stmt_freexl_tests/loadxls2.testcase0000664000175000017500000000030212544707704022336 00000000000000ImportXLS - NULL table :memory: #use in-memory database SELECT ImportXLS('spreadsheet.xls', NULL); 1 # rows (not including the header row) 1 # columns ImportXLS('spreadsheet.xls', NULL); (NULL) libspatialite-4.3.0a/test/sql_stmt_freexl_tests/loadxls4.testcase0000664000175000017500000000034512544707704022347 00000000000000ImportXLS - NULL first-line-title :memory: #use in-memory database SELECT ImportXLS('spreadsheet.xls', 'table', 1, NULL); 1 # rows (not including the header row) 1 # columns ImportXLS('spreadsheet.xls', 'table', 1, NULL); (NULL) libspatialite-4.3.0a/test/sql_stmt_freexl_tests/loadxls6.testcase0000664000175000017500000000034412544707704022350 00000000000000ImportXLS - negative worksheet index :memory: #use in-memory database SELECT ImportXLS('spreadsheet.xls', 'table', -1, 1); 1 # rows (not including the header row) 1 # columns ImportXLS('spreadsheet.xls', 'table', -1, 1); (NULL) libspatialite-4.3.0a/test/sql_stmt_freexl_tests/Makefile.am0000664000175000017500000000023612544707704021113 00000000000000 EXTRA_DIST = loadxls1.testcase \ loadxls2.testcase \ loadxls3.testcase \ loadxls4.testcase \ loadxls5.testcase \ loadxls6.testcase \ loadxls7.testcase libspatialite-4.3.0a/test/sql_stmt_freexl_tests/loadxls5.testcase0000664000175000017500000000034212544707704022345 00000000000000ImportXLS - not existing spreadsheet :memory: #use in-memory database SELECT ImportXLS('spreadsheet.xls', 'table', 1, 1); 1 # rows (not including the header row) 1 # columns ImportXLS('spreadsheet.xls', 'table', 1, 1); (NULL) libspatialite-4.3.0a/test/raster2_se.xml0000664000175000017500000000452512544707704015222 00000000000000 srtm2_style yet another SRTM Color Map derived from the original "srtm_plus" color rule (GRASS GIS) 1.0 Rasterdata -11000.00000000 #000000 -8000.00000000 #000032 -5000.00000000 #0a0a64 -3000.00000000 #1e1e96 -1000.00000000 #4646c8 -100.00000000 #6464e1 0.00000000 #aaaaff 0.10000000 #399769 100.00000000 #75c25d 500.00000000 #e6e680 1000.00000000 #ca9e4b 2000.00000000 #b99a64 3000.00000000 #dcdcdc 5000.00000000 #ffffff 8850.00000000 #6464c8 libspatialite-4.3.0a/test/books-bad.xsd0000664000175000017500000000126612544707704015007 00000000000000 libspatialite-4.3.0a/test/opera.xsd0000664000175000017500000000133712544707704014253 00000000000000 libspatialite-4.3.0a/test/check_exif.c0000664000175000017500000003713412544707704014665 00000000000000 /* check_exif.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include static sqlite3_int64 get_pixel_x (gaiaExifTagListPtr tag_list, int *ok) { /* trying to retrieve the ExifImageWidth */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0xA002) { /* ok, this one is the ExifImageWidth tag */ if (tag->Type == 3 && tag->Count == 1) { *ok = 1; return *(tag->ShortValues + 0); } else if (tag->Type == 4 && tag->Count == 1) { *ok = 1; return *(tag->LongValues + 0); } } tag = tag->Next; } return 0; } static sqlite3_int64 get_pixel_y (gaiaExifTagListPtr tag_list, int *ok) { /* trying to retrieve the ExifImageLength */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0xA003) { /* ok, this one is the ExifImageLength tag */ if (tag->Type == 3 && tag->Count == 1) { *ok = 1; return *(tag->ShortValues + 0); } else if (tag->Type == 4 && tag->Count == 1) { *ok = 1; return *(tag->LongValues + 0); } } tag = tag->Next; } return 0; } static void get_make (gaiaExifTagListPtr tag_list, const char **str, int *ok) { /* trying to retrieve the Make */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0x010F) { /* ok, this one is the Make tag */ if (tag->Type == 2) { *ok = 1; *str = tag->StringValue; return; } } tag = tag->Next; } return; } static void get_model (gaiaExifTagListPtr tag_list, const char **str, int *ok) { /* trying to retrieve the Model */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0x0110) { /* ok, this one is the Model tag */ if (tag->Type == 2) { *ok = 1; *str = tag->StringValue; return; } } tag = tag->Next; } return; } static void get_date (gaiaExifTagListPtr tag_list, const char **str, int *ok) { /* trying to retrieve the Date */ gaiaExifTagPtr tag = tag_list->First; *ok = 0; while (tag) { if (tag->TagId == 0x9003) { /* ok, this one is the Make tag */ if (tag->Type == 2) { *ok = 1; *str = tag->StringValue; return; } } tag = tag->Next; } return; } int main (int argc, char *argv[]) { int ret; sqlite3 *handle; FILE *fl; int sz = 0; int rd; int ok; int i; char tag_name[128]; char human[8192]; gaiaExifTagPtr pT; sqlite3_int64 val64; const char *result; unsigned char *blob = NULL; gaiaExifTagListPtr tag_list = NULL; double longitude; double latitude; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -100; } spatialite_init_ex (handle, cache, 0); fl = fopen ("sql_stmt_tests/DSC_1467.JPG", "rb"); if (!fl) { fprintf (stderr, "cannot open EXIF-JPEG image: DSC_1467.JPG\n"); return -1; } if (fseek (fl, 0, SEEK_END) == 0) sz = ftell (fl); if (sz <= 14) { fprintf (stderr, "invalid size EXIF-JPEG image: DSC_1467.JPG\n"); return -2; } blob = (unsigned char *) malloc (sz); rewind (fl); rd = fread (blob, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error EXIF-JPEG image: DSC_1467.JPG\n"); return -3; } tag_list = gaiaGetExifTags (blob, sz); if (tag_list == NULL) { fprintf (stderr, "cannot extract EXIF tags from JPEG image: DSC_1467.JPG\n"); return -4; } val64 = get_pixel_x (tag_list, &ok); if (!ok) { fprintf (stderr, "DSC_1467.JPG: PixelX tag not found\n"); return -5; } if (val64 != 2128) { fprintf (stderr, "DSC_1467.JPG: PixelX unexpected value: %d\n", (int) val64); return -6; } val64 = get_pixel_y (tag_list, &ok); if (!ok) { fprintf (stderr, "DSC_1467.JPG: PixelY tag not found\n"); return -7; } if (val64 != 1416) { fprintf (stderr, "DSC_1467.JPG: PixelY unexpected value: %d\n", (int) val64); return -8; } get_make (tag_list, &result, &ok); if (!ok) { fprintf (stderr, "DSC_1467.JPG: Make tag not found\n"); return -9; } if (strcmp (result, "NIKON CORPORATION") != 0) { fprintf (stderr, "DSC_1467.JPG: Make unexpected value: %s|\n", result); return -10; }; get_model (tag_list, &result, &ok); if (!ok) { fprintf (stderr, "DSC_1467.JPG: Model tag not found\n"); return -11; } if (strcmp (result, "NIKON D700") != 0) { fprintf (stderr, "DSC_1467.JPG: Model unexpected value: %s|\n", result); return -12; }; get_date (tag_list, &result, &ok); if (!ok) { fprintf (stderr, "DSC_1467.JPG: Date tag not found\n"); return -13; } if (strcmp (result, "2011:03:26 11:01:13") != 0) { fprintf (stderr, "DSC_1467.JPG: Date unexpected value: %s|\n", result); return -14; }; for (i = 0; i < gaiaGetExifTagsCount (tag_list); i++) { pT = gaiaGetExifTagByPos (tag_list, i); if (pT) { gaiaExifTagGetName (pT, tag_name, 128); gaiaExifTagGetValueType (pT); gaiaIsExifGpsTag (pT); gaiaExifTagGetValueType (pT); gaiaExifTagGetNumValues (pT); gaiaExifTagGetHumanReadable (pT, human, 8190, &ok); } } pT = gaiaGetExifTagById (tag_list, 0x0112); if (pT == NULL) { fprintf (stderr, "DSC_1467.JPG: tag Orientation not found: %s|\n", result); return -15; }; pT = gaiaGetExifTagByName (tag_list, "YCbCrPositioning"); if (pT == NULL) { fprintf (stderr, "DSC_1467.JPG: tag YCbCrPositioning not found: %s|\n", result); return -16; }; for (i = 0x0000; i < 0xffff; i++) { gaiaExifTag tag; tag.Gps = 0; tag.TagId = i; gaiaExifTagGetName (&tag, tag_name, 128); } for (i = 0x0000; i < 0xffff; i++) { gaiaExifTag tag; tag.Gps = 1; tag.TagId = i; gaiaExifTagGetName (&tag, tag_name, 128); } if (blob) free (blob); if (tag_list) gaiaExifTagsFree (tag_list); fclose (fl); fl = fopen ("sql_stmt_tests/DSCN0042.JPG", "rb"); if (!fl) { fprintf (stderr, "cannot open EXIF-JPEG image: DSCN0042.JPG\n"); return -100; } if (fseek (fl, 0, SEEK_END) == 0) sz = ftell (fl); if (sz <= 14) { fprintf (stderr, "invalid size EXIF-JPEG image: DSCN0042.JPG\n"); return -17; } blob = (unsigned char *) malloc (sz); rewind (fl); rd = fread (blob, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error EXIF-JPEG image: DSCN0042.JPG\n"); return -18; } tag_list = gaiaGetExifTags (blob, sz); if (tag_list == NULL) { fprintf (stderr, "cannot extract EXIF tags from JPEG image: DSCN0042.JPG\n"); return -19; } val64 = get_pixel_x (tag_list, &ok); if (!ok) { fprintf (stderr, "DSCN0042.JPG: PixelX tag not found\n"); return -20; } if (val64 != 640) { fprintf (stderr, "DSCN0042.JPG: PixelX unexpected value: %d\n", (int) val64); return -21; } val64 = get_pixel_y (tag_list, &ok); if (!ok) { fprintf (stderr, "DSCN0042.JPG: PixelY tag not found\n"); return -22; } if (val64 != 480) { fprintf (stderr, "DSCN0042.JPG: PixelY unexpected value: %d\n", (int) val64); return -23; } get_make (tag_list, &result, &ok); if (!ok) { fprintf (stderr, "DSCN0042.JPG: Make tag not found\n"); return -24; } if (strcmp (result, "NIKON") != 0) { fprintf (stderr, "DSCN0042.JPG: Make unexpected value: %s|\n", result); return -25; }; get_model (tag_list, &result, &ok); if (!ok) { fprintf (stderr, "DSCN0042.JPG: Model tag not found\n"); return -26; } if (strcmp (result, "COOLPIX P6000") != 0) { fprintf (stderr, "DSCN0042.JPG: Model unexpected value: %s|\n", result); return -27; }; get_date (tag_list, &result, &ok); if (!ok) { fprintf (stderr, "DSCN0042.JPG: Date tag not found\n"); return -28; } if (strcmp (result, "2008:10:22 17:00:07") != 0) { fprintf (stderr, "DSCN0042.JPG: Date unexpected value: %s|\n", result); return -29; }; for (i = 0; i < gaiaGetExifTagsCount (tag_list); i++) { pT = gaiaGetExifTagByPos (tag_list, i); if (pT) { gaiaExifTagGetName (pT, tag_name, 128); gaiaExifTagGetValueType (pT); gaiaIsExifGpsTag (pT); gaiaExifTagGetValueType (pT); gaiaExifTagGetNumValues (pT); gaiaExifTagGetHumanReadable (pT, human, 8190, &ok); } } pT = gaiaGetExifTagById (tag_list, 0x0112); if (pT == NULL) { fprintf (stderr, "DSCN0042.JPG: tag Orientation not found: %s|\n", result); return -30; }; pT = gaiaGetExifTagByName (tag_list, "YCbCrPositioning"); if (pT == NULL) { fprintf (stderr, "DSCN0042.JPG: tag YCbCrPositioning not found: %s|\n", result); return -31; }; for (i = 0x0000; i < 0xffff; i++) { gaiaExifTag tag; tag.Gps = 0; tag.TagId = i; gaiaExifTagGetName (&tag, tag_name, 128); } for (i = 0x0000; i < 0xffff; i++) { gaiaExifTag tag; tag.Gps = 1; tag.TagId = i; gaiaExifTagGetName (&tag, tag_name, 128); } if (!gaiaGetGpsLatLong (blob, sz, human, 8192)) { fprintf (stderr, "cannot extract GPS coords from JPEG image: DSCN0042.JPG\n"); return -32; } if (strcmp (human, "N 43.00 27.00 52.04 / E 11.00 52.00 53.32") != 0) { fprintf (stderr, "DSCN0042.JPG: GPS coords unexpected value: %s|\n", human); return -33; }; if (!gaiaGetGpsLatLong (blob, sz, human, 20)) { fprintf (stderr, "cannot extract GPS coords(20) from JPEG image: DSCN0042.JPG\n"); return -34; } if (strcmp (human, "N 43.00 27.00 52.04 ") != 0) { fprintf (stderr, "DSCN0042.JPG: GPS coords(20) unexpected value: %s|\n", human); return -35; }; if (!gaiaGetGpsCoords (blob, sz, &longitude, &latitude)) { fprintf (stderr, "cannot extract GPS long/lat from JPEG image: DSCN0042.JPG\n"); return -36; } if (longitude != 11.881478 || latitude != 43.464455) { fprintf (stderr, "DSCN0042.JPG: GPS long/lat unexpected values: %1.9f %1.9f|\n", longitude, latitude); return -37; }; if (blob) free (blob); if (tag_list) gaiaExifTagsFree (tag_list); fclose (fl); fl = fopen ("sql_stmt_tests/La_folla_durante_il_Palio.jpg", "rb"); if (!fl) { fprintf (stderr, "cannot open EXIF-JPEG image: La_folla_durante_il_Palio.jpg\n"); return -50; } if (fseek (fl, 0, SEEK_END) == 0) sz = ftell (fl); if (sz <= 14) { fprintf (stderr, "invalid size EXIF-JPEG image: La_folla_durante_il_Palio.jpg\n"); return -51; } blob = (unsigned char *) malloc (sz); rewind (fl); rd = fread (blob, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error EXIF-JPEG image: La_folla_durante_il_Palio.jpg\n"); return -52; } tag_list = gaiaGetExifTags (blob, sz); if (tag_list == NULL) { fprintf (stderr, "cannot extract EXIF tags from JPEG image: La_folla_durante_il_Palio.jpg\n"); return -53; } val64 = get_pixel_x (tag_list, &ok); if (!ok) { fprintf (stderr, "La_folla_durante_il_Palio.jpg: PixelX tag not found\n"); return -54; } if (val64 != 1280) { fprintf (stderr, "La_folla_durante_il_Palio.jpg: PixelX unexpected value: %d\n", (int) val64); return -55; } val64 = get_pixel_y (tag_list, &ok); if (!ok) { fprintf (stderr, "La_folla_durante_il_Palio.jpg: PixelY tag not found\n"); return -56; } if (val64 != 960) { fprintf (stderr, "La_folla_durante_il_Palio.jpg: PixelY unexpected value: %d\n", (int) val64); return -57; } get_make (tag_list, &result, &ok); if (!ok) { fprintf (stderr, "La_folla_durante_il_Palio.jpg: Make tag not found\n"); return -58; } if (strcmp (result, "Nokia") != 0) { fprintf (stderr, "La_folla_durante_il_Palio.jpg: Make unexpected value: %s|\n", result); return -59; }; get_model (tag_list, &result, &ok); if (!ok) { fprintf (stderr, "La_folla_durante_il_Palio.jpg: Model tag not found\n"); return -60; } if (strcmp (result, "6630") != 0) { fprintf (stderr, "La_folla_durante_il_Palio.jpg: Model unexpected value: %s|\n", result); return -61; }; for (i = 0; i < gaiaGetExifTagsCount (tag_list); i++) { pT = gaiaGetExifTagByPos (tag_list, i); if (pT) { gaiaExifTagGetName (pT, tag_name, 128); gaiaExifTagGetValueType (pT); gaiaIsExifGpsTag (pT); gaiaExifTagGetValueType (pT); gaiaExifTagGetNumValues (pT); gaiaExifTagGetHumanReadable (pT, human, 8190, &ok); } } for (i = 0x0000; i < 0xffff; i++) { gaiaExifTag tag; tag.Gps = 0; tag.TagId = i; gaiaExifTagGetName (&tag, tag_name, 128); } if (blob) free (blob); if (tag_list) gaiaExifTagsFree (tag_list); fclose (fl); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -133; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_control_points.c0000664000175000017500000007566212544707704017016 00000000000000/* check_contro_points.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" static int test_query (sqlite3 * sqlite, const char *sql, const char *expected) { /* testing some SQL query */ int ret; sqlite3_stmt *stmt = NULL; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "%s\n: \"%s\"\n", sql, sqlite3_errmsg (sqlite)); return 0; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *value; if (sqlite3_column_type (stmt, 0) == SQLITE_NULL) { if (expected == NULL) continue; else { fprintf (stderr, "Unexpected NULL result\nExpected: %s\n", expected); goto error; } } value = (const char *) sqlite3_column_text (stmt, 0); if (expected == NULL) { fprintf (stderr, "Unexpected result %s\nExpected: NULL\n", value); goto error; } if (strcasecmp (value, expected) != 0) { fprintf (stderr, "Unexpected result %s\nExpected: %s\n", value, expected); goto error; } } else goto error; } sqlite3_finalize (stmt); return 1; error: if (stmt != NULL) sqlite3_finalize (stmt); return 0; } static int test_transform (sqlite3 * handle, int order) { /* testing GCP_Transform */ char *sql; int ret; /* resolving Control Points 2D - CGP_Transform XY */ sql = sqlite3_mprintf ("SELECT AsText(GCP_Transform(g.geometry, b.gcp)) " "FROM test_xy AS g, " "(SELECT GCP_Compute(a.geometry, b.geometry, %d) AS gcp " "FROM point_a_xy AS a, point_b_xy AS b WHERE a.id = b.id) AS b", order); ret = test_query (handle, sql, "GEOMETRYCOLLECTION(POINT(-161 -64), LINESTRING(-160 -63, -159 -62), " "POLYGON((-151 -54, -141 -54, -141 -44, -151 -44, -151 -54), " "(-147 -50, -145 -50, -145 -48, -147 -48, -147 -50)))"); sqlite3_free (sql); if (!ret) return 0; /* resolving Control Points 2D - CGP_Transform XYM */ sql = sqlite3_mprintf ("SELECT AsText(GCP_Transform(g.geometry, b.gcp)) " "FROM test_xym AS g, " "(SELECT GCP_Compute(a.geometry, b.geometry, %d) AS gcp " "FROM point_a_xy AS a, point_b_xy AS b WHERE a.id = b.id) AS b", order); ret = test_query (handle, sql, "GEOMETRYCOLLECTION M(POINT M(-161 -64 1), " "LINESTRING M(-160 -63 1, -159 -62 3), " "POLYGON M((-151 -54 1, -141 -54 2, -141 -44 3, -151 -44 2, -151 -54 1), " "(-147 -50 1, -145 -50 2, -145 -48 2, -147 -48 2, -147 -50 1)))"); sqlite3_free (sql); if (!ret) return 0; /* resolving Control Points 3D - CGP_Transform XYZ */ sql = sqlite3_mprintf ("SELECT IsValid(GCP_Transform(g.geometry, b.gcp)) " "FROM test_xyz AS g, " "(SELECT GCP_Compute(a.geometry, b.geometry, %d) AS gcp " "FROM point_a_xyz AS a, point_b_xyz AS b WHERE a.id = b.id) AS b", order); ret = test_query (handle, sql, "1"); sqlite3_free (sql); if (!ret) return 0; /* resolving Control Points 3D - CGP_Transform XYZM */ sql = sqlite3_mprintf ("SELECT IsValid(GCP_Transform(g.geometry, b.gcp)) " "FROM test_xyzm AS g, " "(SELECT GCP_Compute(a.geometry, b.geometry, %d) AS gcp " "FROM point_a_xyz AS a, point_b_xyz AS b WHERE a.id = b.id) AS b", order); ret = test_query (handle, sql, "1"); sqlite3_free (sql); if (!ret) return 0; return 1; } static int test_invalid (sqlite3 * handle) { /* testing invalid calls */ const char *sql; sql = "SELECT GCP_Compute(NULL, GeomFromText('POINT(1 1)'))"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP_Compute(GeomFromText('POINT(1 1)'), NULL)"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP_Compute(GeomFromText('POINT(1 1)'), GeomFromText('POINT(2 2)'), NULL)"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP_Compute(GeomFromText('POINT(1 1)'), GeomFromText('POINT(2 2)'), -1)"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP_Compute(GeomFromText('POINT(1 1)'), GeomFromText('POINT(2 2)'), 4)"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP_Compute(GeomFromText('POINT(1 1)'), GeomFromText('POINTZ(2 2 2)'))"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP_Compute(GeomFromText('POINT(1 1)'), GeomFromText('POINT(2 2)'))"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP_Compute(GeomFromText('POINT(1 1)'), GeomFromText('LINESTRING(2 2, 3 2)'))"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP_Compute(GeomFromText('LINESTRING(2 2, 3 2)'), GeomFromText('POINT(1 1)'))"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP_Compute(GeomFromText('POINT(1 1)'), NULL)"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP_Compute(GeomFromText('POINT(1 1)'), zeroblob(10))"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP_Transform(NULL, b.gcp) " "FROM (SELECT GCP_Compute(a.geometry, b.geometry) AS gcp " "FROM point_a_xyz AS a, point_b_xyz AS b WHERE a.id = b.id) AS b"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP_Transform(zeroblob(10), b.gcp) " "FROM (SELECT GCP_Compute(a.geometry, b.geometry) AS gcp " "FROM point_a_xyz AS a, point_b_xyz AS b WHERE a.id = b.id) AS b"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP_Transform(GeomFromText('POINT(1 1)'), zeroblob(4))"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP_IsValid(NULL)"; if (!test_query (handle, sql, "-1")) return 0; sql = "SELECT GCP_IsValid(zeroblob(0))"; if (!test_query (handle, sql, "0")) return 0; sql = "SELECT GCP_AsText(NULL)"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP_AsText(zeroblob(0))"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP_Transform(GeomFromText('POINT(1 1)'), b.gcp, 1.0) " "FROM (SELECT GCP_Compute(a.geometry, b.geometry) AS gcp " "FROM point_a_xyz AS a, point_b_xyz AS b WHERE a.id = b.id) AS b"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP_Transform(zeroblob(4), b.gcp, 32632) " "FROM (SELECT GCP_Compute(a.geometry, b.geometry) AS gcp " "FROM point_a_xyz AS a, point_b_xyz AS b WHERE a.id = b.id) AS b"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP_Transform(GeomFromText('POINT(1 1)'), NULL)"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP2ATM(NULL)"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP2ATM(zeroblob(100))"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP2ATM(b.gcp) " "FROM (SELECT GCP_Compute(a.geometry, b.geometry, 2) AS gcp " "FROM point_a_xy AS a, point_b_xy AS b WHERE a.id = b.id) AS b"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP2ATM(b.gcp) " "FROM (SELECT GCP_Compute(a.geometry, b.geometry, 3) AS gcp " "FROM point_a_xy AS a, point_b_xy AS b WHERE a.id = b.id) AS b"; if (!test_query (handle, sql, NULL)) return 0; sql = "SELECT GCP2ATM(b.gcp) " "FROM (SELECT GCP_Compute(a.geometry, b.geometry, 0) AS gcp " "FROM point_a_xy AS a, point_b_xy AS b WHERE a.id = b.id) AS b"; if (!test_query (handle, sql, NULL)) return 0; return 1; } int main (int argc, char *argv[]) { #ifdef ENABLE_GCP /* only if Control Points (Grass) is enabled */ int ret; sqlite3 *handle; char *err_msg = NULL; const char *sql; int order; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory databse: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } /* creating and populating a test table - XY */ ret = sqlite3_exec (handle, "CREATE TABLE test_xy (" "id INTEGER PRIMARY KEY AUTOINCREMENT)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test_xy error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -3; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn(" "'test_xy', 'geometry', 4326, 'GEOMETRYCOLLECTION', 'XY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test_xy Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -4; } ret = sqlite3_exec (handle, "INSERT INTO test_xy VALUES (NULL, " "GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1, 2 2), " "POLYGON((10 10, 20 10, 20 20, 10 20, 10 10), " "(14 14, 16 14, 16 16, 14 16, 14 14)))', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO test_xy Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -5; } /* creating and populating a test table - XYZ */ ret = sqlite3_exec (handle, "CREATE TABLE test_xyz (" "id INTEGER PRIMARY KEY AUTOINCREMENT)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test_xyz error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -6; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn(" "'test_xyz', 'geometry', 4326, 'GEOMETRYCOLLECTION', 'XYz')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test_xyz Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -7; } ret = sqlite3_exec (handle, "INSERT INTO test_xyz VALUES (NULL, " "GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(0 0 1), " "LINESTRINGZ(1 1 1, 2 2 3), " "POLYGONZ((10 10 1, 20 10 2, 20 20 3, 10 20 2, 10 10 1), " "(14 14 1, 16 14 2, 16 16 2, 14 16 2, 14 14 1)))', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO test_xyz Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -8; } /* creating and populating a test table - XYM */ ret = sqlite3_exec (handle, "CREATE TABLE test_xym (" "id INTEGER PRIMARY KEY AUTOINCREMENT)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test_xym error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -9; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn(" "'test_xym', 'geometry', 4326, 'GEOMETRYCOLLECTION', 'XYM')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test_xym Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -10; } ret = sqlite3_exec (handle, "INSERT INTO test_xym VALUES (NULL, " "GeomFromText('GEOMETRYCOLLECTIONM(POINTM(0 0 1), " "LINESTRINGM(1 1 1, 2 2 3), " "POLYGONM((10 10 1, 20 10 2, 20 20 3, 10 20 2, 10 10 1), " "(14 14 1, 16 14 2, 16 16 2, 14 16 2, 14 14 1)))', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO test_xym Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -11; } /* creating and populating a test table - XYZM */ ret = sqlite3_exec (handle, "CREATE TABLE test_xyzm (" "id INTEGER PRIMARY KEY AUTOINCREMENT)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test_xyzm error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -12; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn(" "'test_xyzm', 'geometry', 4326, 'GEOMETRYCOLLECTION', 'XYZM')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE test_xyzm Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -13; } ret = sqlite3_exec (handle, "INSERT INTO test_xyzm VALUES (NULL, " "GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(0 0 1 1), " "LINESTRINGZM(1 1 1 1, 2 2 3 3), " "POLYGONZM((10 10 1 1, 20 10 2 2, 20 20 3 3, 10 20 2 2, 10 10 1 1), " "(14 14 1 1, 16 14 2 2, 16 16 2 2, 14 16 2 2, 14 14 1 1)))', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO test_xyzm Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -14; } /* creating and populating Point table #1 - XY */ ret = sqlite3_exec (handle, "CREATE TABLE point_a_xy (" "id INTEGER PRIMARY KEY AUTOINCREMENT)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE point_a_xy error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -15; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn(" "'point_a_xy', 'geometry', 4326, 'POINT', 'XY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE point_a_xy Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -16; } ret = sqlite3_exec (handle, "INSERT INTO point_a_xy VALUES " "(NULL, MakePoint(0, 0, 4326)), (NULL, MakePoint(1, 1, 4326)), " "(NULL, MakePoint(10, 10, 4326)), (NULL, MakePoint(11, 11, 4326)), " "(NULL, MakePoint(10, 0, 4326)), (NULL, MakePoint(11, 1, 4326)), " "(NULL, MakePoint(0, 10, 4326)), (NULL, MakePoint(1, 11, 4326)) ", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO point_a_xy Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -17; } ret = sqlite3_exec (handle, "INSERT INTO point_a_xy VALUES " "(NULL, MakePoint(5, 4, 4326)), (NULL, MakePoint(4, 5, 4326)), " "(NULL, MakePoint(8, 2, 4326)), (NULL, MakePoint(2, 8, 4326)), " "(NULL, MakePoint(20, 20, 4326)), (NULL, MakePoint(21, 21, 4326)), " "(NULL, MakePoint(30, 30, 4326)), (NULL, MakePoint(31, 31, 4326)), " "(NULL, MakePoint(30, 20, 4326)), (NULL, MakePoint(31, 21, 4326)) ", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO point_a_xy Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -18; } ret = sqlite3_exec (handle, "INSERT INTO point_a_xy VALUES " "(NULL, MakePoint(20, 30, 4326)), (NULL, MakePoint(21, 31, 4326)), " "(NULL, MakePoint(25, 24, 4326)), (NULL, MakePoint(24, 25, 4326)), " "(NULL, MakePoint(28, 22, 4326)), (NULL, MakePoint(22, 28, 4326)), " "(NULL, MakePoint(30, 0, 4326)), (NULL, MakePoint(0, 30, 4326)) ", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO point_a_xy Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -19; } /* creating and populating Point table #2 - XY */ ret = sqlite3_exec (handle, "CREATE TABLE point_b_xy (" "id INTEGER PRIMARY KEY AUTOINCREMENT)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE point_b_xy error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -20; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn(" "'point_b_xy', 'geometry', 4326, 'POINT', 'XY')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE point_b_xy Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -21; } ret = sqlite3_exec (handle, "INSERT INTO point_b_xy VALUES " "(NULL, MakePoint(-161 + 0, -64 + 0, 4326)), " "(NULL, MakePoint(-161 + 1, -64 + 1, 4326)), " "(NULL, MakePoint(-161 + 10, -64 + 10, 4326)), " "(NULL, MakePoint(-161 + 11, -64 + 11, 4326)), " "(NULL, MakePoint(-161 + 10, -64 + 0, 4326)), " "(NULL, MakePoint(-161 + 11, -64 + 1, 4326)) ", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO point_b_xy Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -22; } ret = sqlite3_exec (handle, "INSERT INTO point_b_xy VALUES " "(NULL, MakePoint(-161 + 0, -64 + 10, 4326)), " "(NULL, MakePoint(-161 + 1, -64 + 11, 4326)), " "(NULL, MakePoint(-161 + 5, -64 + 4, 4326)), " "(NULL, MakePoint(-161 + 4, -64 + 5, 4326)), " "(NULL, MakePoint(-161 + 8, -64 + 2, 4326)), " "(NULL, MakePoint(-161 + 2, -64 + 8, 4326)) ", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO point_b_xy Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -23; } ret = sqlite3_exec (handle, "INSERT INTO point_b_xy VALUES " "(NULL, MakePoint(-161 + 20, -64 + 20, 4326)), " "(NULL, MakePoint(-161 + 21, -64 + 21, 4326)), " "(NULL, MakePoint(-161 + 30, -64 + 30, 4326)), " "(NULL, MakePoint(-161 + 31, -64 + 31, 4326)), " "(NULL, MakePoint(-161 + 30, -64 + 20, 4326)), " "(NULL, MakePoint(-161 + 31, -64 + 21, 4326)) ", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO point_b_xy Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -24; } ret = sqlite3_exec (handle, "INSERT INTO point_b_xy VALUES " "(NULL, MakePoint(-161 + 20, -64 + 30, 4326)), " "(NULL, MakePoint(-161 + 21, -64 + 31, 4326)), " "(NULL, MakePoint(-161 + 25, -64 + 24, 4326)), " "(NULL, MakePoint(-161 + 24, -64 + 25, 4326)), " "(NULL, MakePoint(-161 + 28, -64 + 22, 4326)), " "(NULL, MakePoint(-161 + 22, -64 + 28, 4326)), " "(NULL, MakePoint(-161 + 30, -64 + 0, 4326)), " "(NULL, MakePoint(-161 + 0, -64 + 30, 4326)) ", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO point_b_xy Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -25; } /* creating and populating Point table #1 - XYZ */ ret = sqlite3_exec (handle, "CREATE TABLE point_a_xyz (" "id INTEGER PRIMARY KEY AUTOINCREMENT)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE point_a_xyz error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -26; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn(" "'point_a_xyz', 'geometry', 4326, 'POINT', 'XYZ')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE point_a_xy Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -27; } ret = sqlite3_exec (handle, "INSERT INTO point_a_xyz VALUES " "(NULL, MakePointZ(0, 0, 1, 4326)), (NULL, MakePointZ(1, 1, 2, 4326)), " "(NULL, MakePointZ(10, 10, 1, 4326)), (NULL, MakePointZ(11, 11, 2, 4326)), " "(NULL, MakePointZ(10, 0, 1, 4326)), (NULL, MakePointZ(11, 1, 2, 4326)), " "(NULL, MakePointZ(0, 10, 1, 4326)), (NULL, MakePointZ(1, 11, 2, 4326)) ", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO point_a_xyz Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -28; } ret = sqlite3_exec (handle, "INSERT INTO point_a_xyz VALUES " "(NULL, MakePointZ(5, 4, 1, 4326)), (NULL, MakePointZ(4, 5, 2, 4326)), " "(NULL, MakePointZ(8, 2, 1, 4326)), (NULL, MakePointZ(2, 8, 2, 4326)), " "(NULL, MakePointZ(20, 20, 1, 4326)), (NULL, MakePointZ(21, 21, 2, 4326)), " "(NULL, MakePointZ(70, 70, 1, 4326)), (NULL, MakePointZ(51, 51, 2, 4326)), " "(NULL, MakePointZ(30, 20, 1, 4326)), (NULL, MakePointZ(31, 21, 2, 4326)) ", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO point_a_xyz Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -29; } ret = sqlite3_exec (handle, "INSERT INTO point_a_xyz VALUES " "(NULL, MakePointZ(20, 30, 1, 4326)), (NULL, MakePointZ(21, 31, 2, 4326)), " "(NULL, MakePointZ(25, 24, 1, 4326)), (NULL, MakePointZ(24, 25, 2, 4326)), " "(NULL, MakePointZ(28, 22, 1, 4326)), (NULL, MakePointZ(22, 28, 2, 4326)), " "(NULL, MakePointZ(30, 0, 1, 4326)), (NULL, MakePointZ(0, 30, 2, 4326)) ", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO point_a_xyz Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -30; } /* creating and populating Point table #2 - XYZ */ ret = sqlite3_exec (handle, "CREATE TABLE point_b_xyz (" "id INTEGER PRIMARY KEY AUTOINCREMENT)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE point_b_xyz error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -31; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn(" "'point_b_xyz', 'geometry', 4326, 'POINT', 'XYZ')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE point_b_xyz Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -32; } ret = sqlite3_exec (handle, "INSERT INTO point_b_xyz VALUES " "(NULL, MakePointZ(-161 + 0, -64 + 0, 11, 4326)), " "(NULL, MakePointZ(-161 + 1, -64 + 1, 12, 4326)), " "(NULL, MakePointZ(-161 + 10, -64 + 10, 11, 4326)), " "(NULL, MakePointZ(-161 + 11, -64 + 11, 12, 4326)), " "(NULL, MakePointZ(-161 + 10, -64 + 0, 11, 4326)), " "(NULL, MakePointZ(-161 + 11, -64 + 1, 12, 4326)) ", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO point_b_xyz Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -33; } ret = sqlite3_exec (handle, "INSERT INTO point_b_xyz VALUES " "(NULL, MakePointZ(-161 + 0, -64 + 10, 11, 4326)), " "(NULL, MakePointZ(-161 + 1, -64 + 11, 12, 4326)), " "(NULL, MakePointZ(-161 + 5, -64 + 4, 11, 4326)), " "(NULL, MakePointZ(-161 + 4, -64 + 5, 12, 4326)), " "(NULL, MakePointZ(-161 + 8, -64 + 2, 11, 4326)), " "(NULL, MakePointZ(-161 + 2, -64 + 8, 12, 4326)) ", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO point_b_xyz Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -34; } ret = sqlite3_exec (handle, "INSERT INTO point_b_xyz VALUES " "(NULL, MakePointZ(-161 + 20, -64 + 20, 11, 4326)), " "(NULL, MakePointZ(-161 + 21, -64 + 21, 12, 4326)), " "(NULL, MakePointZ(-161 + 70, -64 + 70, 11, 4326)), " "(NULL, MakePointZ(-161 + 51, -64 + 51, 12, 4326)), " "(NULL, MakePointZ(-161 + 30, -64 + 20, 11, 4326)), " "(NULL, MakePointZ(-161 + 31, -64 + 21, 12, 4326)), " "(NULL, MakePointZ(-161 + 20, -64 + 30, 11, 4326)) ", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO point_b_xyz Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -35; } ret = sqlite3_exec (handle, "INSERT INTO point_b_xyz VALUES " "(NULL, MakePointZ(-161 + 21, -64 + 31, 12, 4326)), " "(NULL, MakePointZ(-161 + 25, -64 + 24, 11, 4326)), " "(NULL, MakePointZ(-161 + 24, -64 + 25, 12, 4326)), " "(NULL, MakePointZ(-161 + 28, -64 + 22, 11, 4326)), " "(NULL, MakePointZ(-161 + 22, -64 + 28, 12, 4326)), " "(NULL, MakePointZ(-161 + 30, -64 + 0, 11, 4326)), " "(NULL, MakePointZ(-161 + 0, -64 + 30, 12, 4326)) ", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO point_b_xyz Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -36; } /* resolving Control Points 2D - 1st order - IsValid */ sql = "SELECT GCP_IsValid(GCP_Compute(a.geometry, b.geometry, 1)) " "FROM point_a_xy AS a, point_b_xy AS b WHERE a.id = b.id"; if (!test_query (handle, sql, "1")) return -37; /* resolving Control Points 2D - 1st order- AsText */ sql = "SELECT GCP_AsText(GCP_Compute(a.geometry, b.geometry)) " "FROM point_a_xy AS a, point_b_xy AS b WHERE a.id = b.id"; if (!test_query (handle, sql, "E{-161.0000000000,1.0000000000,-0.0000000000}, " "N{-64.0000000000,-0.0000000000,1.0000000000}")) return -38; /* resolving Control Points 2D - 1st order - GCP2ATM */ sql = "SELECT ATM_IsValid(GCP2ATM(GCP_Compute(a.geometry, b.geometry))) " "FROM point_a_xy AS a, point_b_xy AS b WHERE a.id = b.id"; if (!test_query (handle, sql, "1")) return -39; /* resolving Control Points 3D - 1st order - IsValid */ sql = "SELECT GCP_IsValid(GCP_Compute(a.geometry, b.geometry, 1)) " "FROM point_a_xyz AS a, point_b_xyz AS b WHERE a.id = b.id"; if (!test_query (handle, sql, "1")) return -40; /* resolving Control Points 3D - 1st order - AsText */ sql = "SELECT GCP_AsText(GCP_Compute(a.geometry, b.geometry)) " "FROM point_a_xyz AS a, point_b_xyz AS b WHERE a.id = b.id"; if (!test_query (handle, sql, "E{-161.0000000000,1.0000000000,-0.0000000000,0.0000000000}, " "N{-64.0000000000,0.0000000000,1.0000000000,0.0000000000}, " "Z{10.0000000000,-0.0000000000,0.0000000000,1.0000000000}")) return -41; /* resolving Control Points 3D - 1st order - GCP2ATM */ sql = "SELECT ATM_IsValid(GCP2ATM(GCP_Compute(a.geometry, b.geometry))) " "FROM point_a_xyz AS a, point_b_xyz AS b WHERE a.id = b.id"; if (!test_query (handle, sql, "1")) return -42; /* resolving Control Points 2D - 2nd order - IsValid */ sql = "SELECT GCP_IsValid(GCP_Compute(a.geometry, b.geometry, 2)) " "FROM point_a_xy AS a, point_b_xy AS b WHERE a.id = b.id"; if (!test_query (handle, sql, "1")) return -43; /* resolving Control Points 2D - 2nd order- AsText */ sql = "SELECT GCP_IsValid(GCP_Compute(a.geometry, b.geometry, 2)) " "FROM point_a_xy AS a, point_b_xy AS b WHERE a.id = b.id"; if (!test_query (handle, sql,"1")) return -44; /* resolving Control Points 2D - 2nd order - GCP2ATM */ sql = "SELECT ATM_IsValid(GCP2ATM(GCP_Compute(a.geometry, b.geometry, 2))) " "FROM point_a_xy AS a, point_b_xy AS b WHERE a.id = b.id"; if (!test_query (handle, sql, "-1")) return -45; /* resolving Control Points 3D - 2nd order - IsValid */ sql = "SELECT GCP_IsValid(GCP_Compute(a.geometry, b.geometry, 2)) " "FROM point_a_xyz AS a, point_b_xyz AS b WHERE a.id = b.id"; if (!test_query (handle, sql, "1")) return -46; /* resolving Control Points 3D - 2nd order - AsText */ sql = "SELECT GCP_IsValid(GCP_Compute(a.geometry, b.geometry, 2)) " "FROM point_a_xyz AS a, point_b_xyz AS b WHERE a.id = b.id"; if (!test_query (handle, sql, "1")) return -47; /* resolving Control Points 3D - 2nd order - GCP2ATM */ sql = "SELECT ATM_IsValid(GCP2ATM(GCP_Compute(a.geometry, b.geometry, 2))) " "FROM point_a_xyz AS a, point_b_xyz AS b WHERE a.id = b.id"; if (!test_query (handle, sql, "-1")) return -48; /* resolving Control Points 2D - 3nd order - IsValid */ sql = "SELECT GCP_IsValid(GCP_Compute(a.geometry, b.geometry, 3)) " "FROM point_a_xy AS a, point_b_xy AS b WHERE a.id = b.id"; if (!test_query (handle, sql, "1")) return -49; /* resolving Control Points 2D - 3nd order- AsText */ sql = "SELECT GCP_IsValid(GCP_Compute(a.geometry, b.geometry, 3)) " "FROM point_a_xy AS a, point_b_xy AS b WHERE a.id = b.id"; if (!test_query (handle, sql, "1")) return -50; /* resolving Control Points 2D - 3nd order - GCP2ATM */ sql = "SELECT ATM_IsValid(GCP2ATM(GCP_Compute(a.geometry, b.geometry, 3))) " "FROM point_a_xy AS a, point_b_xy AS b WHERE a.id = b.id"; if (!test_query (handle, sql, "-1")) return -51; /* resolving Control Points 3D - 3nd order - IsValid */ sql = "SELECT GCP_IsValid(GCP_Compute(a.geometry, b.geometry, 3)) " "FROM point_a_xyz AS a, point_b_xyz AS b WHERE a.id = b.id"; if (!test_query (handle, sql, "1")) return -52; /* resolving Control Points 3D - 3nd order - AsText */ sql = "SELECT GCP_IsValid(GCP_Compute(a.geometry, b.geometry, 3)) " "FROM point_a_xyz AS a, point_b_xyz AS b WHERE a.id = b.id"; if (!test_query (handle, sql, "1")) return -53; /* resolving Control Points 3D - 3nd order - GCP2ATM */ sql = "SELECT ATM_IsValid(GCP2ATM(GCP_Compute(a.geometry, b.geometry, 3))) " "FROM point_a_xyz AS a, point_b_xyz AS b WHERE a.id = b.id"; if (!test_query (handle, sql, "-1")) return -54; for (order = 0; order <= 3; order++) { /* GCP_Trasform */ if (!test_transform (handle, order)) return -55; } if (!test_invalid (handle)) return -56; ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -57; } spatialite_cleanup_ex (cache); #endif /* end CGP conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/opera.xml0000664000175000017500000000162012544707704014250 00000000000000 Rigoletto Il trovatore La traviata Aida Nabucco Carmen The Barber of Seville William Tell The Marriage of Figaro Thus Do They All Don Giovanni libspatialite-4.3.0a/test/check_geom_aux.c0000664000175000017500000010054212544707704015530 00000000000000/* check_geoms.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include int main (int argc, char *argv[]) { int ret; sqlite3 *handle; gaiaDynamicLinePtr dyn; gaiaDynamicLinePtr dyn2; gaiaDynamicLinePtr dyn3; gaiaPointPtr pt; gaiaPointPtr pt1; gaiaPointPtr pt2; gaiaGeomCollPtr geom_pt; gaiaGeomCollPtr geom1; gaiaGeomCollPtr geom2; gaiaGeomCollPtr geom3; gaiaLinestringPtr ln; gaiaLinestringPtr line1; gaiaLinestringPtr line2; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaRingPtr ring1; gaiaRingPtr ring2; gaiaPolygonPtr polyg1; gaiaPolygonPtr polyg2; double xy[6]; unsigned char *blob; int size; double min; double max; int cnt; gaiaOutBuffer wkt; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1000; } spatialite_init_ex (handle, cache, 0); gaiaOutBufferInitialize (&wkt); /* testing Dynamic Line */ dyn = gaiaAllocDynamicLine (); pt1 = gaiaAppendPointToDynamicLine (dyn, 1.0, 2.0); pt2 = gaiaAppendPointToDynamicLine (dyn, 10.0, 11.0); gaiaDynamicLineInsertAfter (dyn, pt1, 2.0, 3.0); gaiaDynamicLineInsertBefore (dyn, pt2, 9.0, 10.0); gaiaAppendPointToDynamicLine (dyn, 11.0, 12.0); gaiaDynamicLineDeletePoint (dyn, pt2); dyn2 = gaiaCloneDynamicLine (dyn); dyn3 = gaiaReverseDynamicLine (dyn2); pt = dyn3->First; cnt = 0; while (pt) { /* testing result */ switch (cnt) { case 0: if (pt->X != 11.0 || pt->Y != 12.0) { fprintf (stderr, "ReverseDynamicLine: unexpected result (0)\n"); return -1; } break; case 1: if (pt->X != 9.0 || pt->Y != 10.0) { fprintf (stderr, "ReverseDynamicLine: unexpected result (1)\n"); return -3; } break; case 2: if (pt->X != 2.0 || pt->Y != 3.0) { fprintf (stderr, "ReverseDynamicLine: unexpected result (2)\n"); return -4; } break; case 3: if (pt->X != 1.0 || pt->Y != 2.0) { fprintf (stderr, "ReverseDynamicLine: unexpected result (3)\n"); return -5; } break; default: fprintf (stderr, "ReverseDynamicLine: Point count > 4\n"); return -6; }; cnt++; pt = pt->Next; } gaiaFreeDynamicLine (dyn3); gaiaFreeDynamicLine (dyn2); xy[0] = 10.0; xy[1] = 20.0; xy[2] = 11.0; xy[3] = 21.0; xy[4] = 12.0; xy[5] = 22.0; dyn3 = gaiaCreateDynamicLine (xy, 3); dyn2 = gaiaDynamicLineJoinAfter (dyn, pt1, dyn3); pt = dyn2->First; cnt = 0; while (pt) { /* testing result */ switch (cnt) { case 0: if (pt->X != 1.0 || pt->Y != 2.0) { fprintf (stderr, "DynamicLineJoinAfter: unexpected result (0)\n"); return -7; } break; case 1: if (pt->X != 10.0 || pt->Y != 20.0) { fprintf (stderr, "DynamicLineJoinAfter: unexpected result (1)\n"); return -8; } break; case 2: if (pt->X != 11.0 || pt->Y != 21.0) { fprintf (stderr, "DynamicLineJoinAfter: unexpected result (2)\n"); return -9; } break; case 3: if (pt->X != 12.0 || pt->Y != 22.0) { fprintf (stderr, "DynamicLineJoinAfter: unexpected result (3)\n"); return -10; } break; case 4: if (pt->X != 2.0 || pt->Y != 3.0) { fprintf (stderr, "DynamicLineJoinAfter: unexpected result (4)\n"); return -11; } break; case 5: if (pt->X != 9.0 || pt->Y != 10.0) { fprintf (stderr, "DynamicLineJoinAfter: unexpected result (5)\n"); return -12; } break; case 6: if (pt->X != 11.0 || pt->Y != 12.0) { fprintf (stderr, "DynamicLineJoinAfter: unexpected result (6)\n"); return -13; } break; default: fprintf (stderr, "DynamicLineJoinAfter: Point count > 7\n"); return -14; }; cnt++; pt = pt->Next; } gaiaFreeDynamicLine (dyn2); dyn2 = gaiaDynamicLineJoinBefore (dyn, pt1, dyn3); pt = dyn2->First; cnt = 0; while (pt) { /* testing result */ switch (cnt) { case 0: if (pt->X != 10.0 || pt->Y != 20.0) { fprintf (stderr, "DynamicLineJoinBefore: unexpected result (0)\n"); return -15; } break; case 1: if (pt->X != 11.0 || pt->Y != 21.0) { fprintf (stderr, "DynamicLineJoinBefore: unexpected result (1)\n"); return -16; } break; case 2: if (pt->X != 12.0 || pt->Y != 22.0) { fprintf (stderr, "DynamicLineJoinBefore: unexpected result (2)\n"); return -17; } break; case 3: if (pt->X != 1.0 || pt->Y != 2.0) { fprintf (stderr, "DynamicLineJoinBefore: unexpected result (3)\n"); return -18; } break; case 4: if (pt->X != 2.0 || pt->Y != 3.0) { fprintf (stderr, "DynamicLineJoinBefore: unexpected result (4)\n"); return -19; } break; case 5: if (pt->X != 9.0 || pt->Y != 10.0) { fprintf (stderr, "DynamicLineJoinBefore: unexpected result (5)\n"); return -20; } break; case 6: if (pt->X != 11.0 || pt->Y != 12.0) { fprintf (stderr, "DynamicLineJoinBefore: unexpected result (6)\n"); return -21; } break; default: fprintf (stderr, "DynamicLineJoinBefore: Point count > 7\n"); return -22; }; cnt++; pt = pt->Next; } gaiaFreeDynamicLine (dyn3); gaiaFreeDynamicLine (dyn2); dyn3 = gaiaCloneDynamicLine (dyn); pt1 = gaiaDynamicLineFindByCoords (dyn, 9.0, 10.0); dyn2 = gaiaDynamicLineSplitBefore (dyn, pt1); pt = dyn2->First; cnt = 0; while (pt) { /* testing result */ switch (cnt) { case 0: if (pt->X != 1.0 || pt->Y != 2.0) { fprintf (stderr, "DynamicLineSplitBefore: unexpected result (0)\n"); return -23; } break; case 1: if (pt->X != 2.0 || pt->Y != 3.0) { fprintf (stderr, "DynamicLineSplitBefore: unexpected result (1)\n"); return -24; } break; default: fprintf (stderr, "DynamicLineSplitBefore: Point count > 2\n"); return -25; }; cnt++; pt = pt->Next; } gaiaFreeDynamicLine (dyn2); gaiaFreeDynamicLine (dyn); pt1 = gaiaDynamicLineFindByPos (dyn3, 1); dyn2 = gaiaDynamicLineSplitAfter (dyn3, pt1); pt = dyn2->First; cnt = 0; while (pt) { /* testing result */ switch (cnt) { case 0: if (pt->X != 9.0 || pt->Y != 10.0) { fprintf (stderr, "DynamicLineSplitAfter: unexpected result (0)\n"); return -26; } break; case 1: if (pt->X != 11.0 || pt->Y != 12.0) { fprintf (stderr, "DynamicLineSplitAfter: unexpected result (1)\n"); return -27; } break; default: fprintf (stderr, "DynamicLineSplitAfter: Point count > 2\n"); return -28; }; cnt++; pt = pt->Next; } gaiaFreeDynamicLine (dyn2); gaiaFreeDynamicLine (dyn3); /* testing Geometry */ geom_pt = gaiaAllocGeomColl (); gaiaAddPointToGeomColl (geom_pt, 5.0, 5.0); geom1 = gaiaAllocGeomColl (); gaiaAddPointToGeomColl (geom1, 15.0, 15.0); ln = gaiaAddLinestringToGeomColl (geom1, 2); gaiaLineSetPoint (ln, 0, 1.0, 1.0, 0.0, 0.0); gaiaLineSetPoint (ln, 1, 2.0, 2.0, 0.0, 0.0); pg = gaiaAddPolygonToGeomColl (geom1, 5, 0); rng = pg->Exterior; gaiaRingSetPoint (rng, 0, 1.0, 1.0, 0.0, 0.0); gaiaRingSetPoint (rng, 1, 5.0, 1.0, 0.0, 0.0); gaiaRingSetPoint (rng, 2, 5.0, 5.0, 0.0, 0.0); gaiaRingSetPoint (rng, 3, 1.0, 5.0, 0.0, 0.0); gaiaRingSetPoint (rng, 4, 1.0, 1.0, 0.0, 0.0); rng = gaiaAllocRing (5); gaiaRingSetPoint (rng, 0, 2.0, 2.0, 0.0, 0.0); gaiaRingSetPoint (rng, 1, 3.0, 2.0, 0.0, 0.0); gaiaRingSetPoint (rng, 2, 3.0, 3.0, 0.0, 0.0); gaiaRingSetPoint (rng, 3, 2.0, 3.0, 0.0, 0.0); gaiaRingSetPoint (rng, 4, 2.0, 2.0, 0.0, 0.0); gaiaInsertInteriorRing (pg, rng); gaiaFreeRing (rng); rng = gaiaAllocRing (5); gaiaRingSetPoint (rng, 0, 3.5, 3.5, 0.0, 0.0); gaiaRingSetPoint (rng, 1, 4.0, 3.5, 0.0, 0.0); gaiaRingSetPoint (rng, 2, 4.0, 4.0, 0.0, 0.0); gaiaRingSetPoint (rng, 3, 3.5, 4.0, 0.0, 0.0); gaiaRingSetPoint (rng, 4, 3.5, 3.5, 0.0, 0.0); gaiaInsertInteriorRing (pg, rng); gaiaFreeRing (rng); geom2 = gaiaCloneGeomColl (geom1); gaiaOutWkt (&wkt, geom2); if (wkt.Error || wkt.Buffer == NULL) { fprintf (stderr, "Geom2D: unable to get WKT\n"); return -29; } else { /* testing WKT result */ if (strcmp (wkt.Buffer, "GEOMETRYCOLLECTION(POINT(15 15), LINESTRING(1 1, 2 2), POLYGON((1 1, 5 1, 5 5, 1 5, 1 1), (2 2, 3 2, 3 3, 2 3, 2 2), (3.5 3.5, 4 3.5, 4 4, 3.5 4, 3.5 3.5)))") != 0) { /* unexpected result */ fprintf (stderr, "Geom2D: unexpected result %s|\n", wkt.Buffer); return -30; } gaiaOutBufferReset (&wkt); } gaiaMakeLine (NULL, geom2, &blob, &size); if (blob) free (blob); gaiaMakeLine (geom_pt, NULL, &blob, &size); if (blob) free (blob); gaiaMakeLine (geom_pt, geom2, &blob, &size); if (blob) free (blob); gaiaMakeLine (geom1, geom2, &blob, &size); if (blob) free (blob); gaiaFreeGeomColl (geom2); geom2 = gaiaCloneGeomCollPoints (geom1); gaiaOutWkt (&wkt, geom2); if (wkt.Error || wkt.Buffer == NULL) { fprintf (stderr, "Geom2D Points: unable to get WKT\n"); return -30; } else { /* testing WKT result */ if (strcmp (wkt.Buffer, "MULTIPOINT(15 15)") != 0) { /* unexpected result */ fprintf (stderr, "Geom2D Points: unexpected result %s|\n", wkt.Buffer); return -31; } gaiaOutBufferReset (&wkt); } gaiaFreeGeomColl (geom2); geom2 = gaiaCloneGeomCollLinestrings (geom1); gaiaOutWkt (&wkt, geom2); if (wkt.Error || wkt.Buffer == NULL) { fprintf (stderr, "Geom2D Lines: unable to get WKT\n"); return -32; } else { /* testing WKT result */ if (strcmp (wkt.Buffer, "MULTILINESTRING((1 1, 2 2))") != 0) { /* unexpected result */ fprintf (stderr, "Geom2D Lines: unexpected result %s|\n", wkt.Buffer); return -33; } gaiaOutBufferReset (&wkt); } gaiaFreeGeomColl (geom2); geom2 = gaiaCloneGeomCollPolygons (geom1); gaiaOutWkt (&wkt, geom2); if (wkt.Error || wkt.Buffer == NULL) { fprintf (stderr, "Geom2D Polygons: unable to get WKT\n"); return -34; } else { /* testing WKT result */ if (strcmp (wkt.Buffer, "MULTIPOLYGON(((1 1, 5 1, 5 5, 1 5, 1 1), (2 2, 3 2, 3 3, 2 3, 2 2), (3.5 3.5, 4 3.5, 4 4, 3.5 4, 3.5 3.5)))") != 0) { /* unexpected result */ fprintf (stderr, "Geom2D Polygons: unexpected result %s|\n", wkt.Buffer); return -35; } gaiaOutBufferReset (&wkt); } gaiaFreeGeomColl (geom2); min = gaiaMeasureLength (geom1->FirstLinestring->DimensionModel, geom1->FirstLinestring->Coords, geom1->FirstLinestring->Points); rng = geom1->FirstPolygon->Exterior; min = gaiaMeasureArea (rng); gaiaRingCentroid (rng, &min, &max); gaiaIsPointOnPolygonSurface (geom1->FirstPolygon, 17.0, 22.0); min = gaiaMinDistance (1.0, 2.0, geom1->FirstLinestring->DimensionModel, geom1->FirstLinestring->Coords, geom1->FirstLinestring->Points); /* cast XYZ */ geom2 = gaiaCastGeomCollToXY (geom1); gaiaFreeGeomColl (geom2); geom2 = gaiaCastGeomCollToXYZ (geom1); geom3 = gaiaCloneGeomColl (geom2); gaiaFreeGeomColl (geom3); geom3 = gaiaCloneGeomCollPoints (geom2); gaiaFreeGeomColl (geom3); geom3 = gaiaCloneGeomCollLinestrings (geom2); gaiaFreeGeomColl (geom3); geom3 = gaiaCloneGeomCollPolygons (geom2); gaiaFreeGeomColl (geom3); rng = geom2->FirstPolygon->Exterior; min = gaiaMeasureLength (geom2->FirstLinestring->DimensionModel, geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points); if (min < 1.41421 || min > 1.41422) { /* unexpected result */ fprintf (stderr, "Geom3D Length: unexpected result %1.6f|\n", min); return -36; } min = gaiaMeasureArea (rng); if (min != 16.0) { /* unexpected result */ fprintf (stderr, "Geom3D Area: unexpected result %1.6f|\n", min); return -37; } gaiaRingCentroid (rng, &min, &max); if (min != 3.0 || max != 3.0) { /* unexpected result */ fprintf (stderr, "Geom3D Centroid: unexpected result %1.6f %1.6f|\n", min, max); return -38; } cnt = gaiaIsPointOnPolygonSurface (geom2->FirstPolygon, 17.0, 22.0); if (cnt) { /* unexpected result */ fprintf (stderr, "Geom3D IsPointOnPolygonSurface: unexpected result %d|\n", cnt); return -39; } min = gaiaMinDistance (1.0, 2.0, geom2->FirstLinestring->DimensionModel, geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points); if (min < 0.70710 || min > 0.70711) { /* unexpected result */ fprintf (stderr, "Geom3D MinDistance: unexpected result %1.6f|\n", min); return -40; } gaiaFreeGeomColl (geom2); /* cast to XYM */ geom2 = gaiaCastGeomCollToXYM (geom1); geom3 = gaiaCloneGeomColl (geom2); gaiaFreeGeomColl (geom3); geom3 = gaiaCloneGeomCollPoints (geom2); gaiaFreeGeomColl (geom3); geom3 = gaiaCloneGeomCollLinestrings (geom2); gaiaFreeGeomColl (geom3); geom3 = gaiaCloneGeomCollPolygons (geom2); gaiaFreeGeomColl (geom3); min = gaiaMeasureLength (geom2->FirstLinestring->DimensionModel, geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points); if (min < 1.41421 || min > 1.41422) { /* unexpected result */ fprintf (stderr, "GeomM Length: unexpected result %1.6f|\n", min); return -41; } rng = geom2->FirstPolygon->Exterior; min = gaiaMeasureArea (rng); if (min != 16.0) { /* unexpected result */ fprintf (stderr, "GeomM Area: unexpected result %1.6f|\n", min); return -42; } gaiaRingCentroid (rng, &min, &max); if (min != 3.0 || max != 3.0) { /* unexpected result */ fprintf (stderr, "GeomM Centroid: unexpected result %1.6f %1.6f|\n", min, max); return -43; } gaiaIsPointOnPolygonSurface (geom2->FirstPolygon, 17.0, 22.0); if (cnt) { /* unexpected result */ fprintf (stderr, "GeomM IsPointOnPolygonSurface: unexpected result %d|\n", cnt); return -44; } min = gaiaMinDistance (1.0, 2.0, geom2->FirstLinestring->DimensionModel, geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points); if (min < 0.70710 || min > 0.70711) { /* unexpected result */ fprintf (stderr, "GeomM MinDistance: unexpected result %1.6f|\n", min); return -45; } gaiaFreeGeomColl (geom2); /* cast to XYZM */ geom2 = gaiaCastGeomCollToXYZM (geom1); geom3 = gaiaCloneGeomColl (geom2); gaiaFreeGeomColl (geom3); gaiaMRangeGeometry (geom2, &min, &max); gaiaZRangeGeometry (geom2, &min, &max); geom3 = gaiaCloneGeomCollPoints (geom2); gaiaFreeGeomColl (geom3); geom3 = gaiaCloneGeomCollLinestrings (geom2); gaiaFreeGeomColl (geom3); geom3 = gaiaCloneGeomCollPolygons (geom2); gaiaFreeGeomColl (geom3); min = gaiaMeasureLength (geom2->FirstLinestring->DimensionModel, geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points); if (min < 1.41421 || min > 1.41422) { /* unexpected result */ fprintf (stderr, "GeomZM Length: unexpected result %1.6f|\n", min); return -46; } rng = geom2->FirstPolygon->Exterior; min = gaiaMeasureArea (rng); if (min != 16.0) { /* unexpected result */ fprintf (stderr, "GeomZM Area: unexpected result %1.6f|\n", min); return -47; } gaiaRingCentroid (rng, &min, &max); if (min != 3.0 || max != 3.0) { /* unexpected result */ fprintf (stderr, "GeomZM Centroid: unexpected result %1.6f %1.6f|\n", min, max); return -48; } gaiaIsPointOnPolygonSurface (geom2->FirstPolygon, 17.0, 22.0); if (cnt) { /* unexpected result */ fprintf (stderr, "GeomZM IsPointOnPolygonSurface: unexpected result %d|\n", cnt); return -49; } min = gaiaMinDistance (1.0, 2.0, geom2->FirstLinestring->DimensionModel, geom2->FirstLinestring->Coords, geom2->FirstLinestring->Points); if (min < 0.70710 || min > 0.70711) { /* unexpected result */ fprintf (stderr, "GeomZM MinDistance: unexpected result %1.6f|\n", min); return -50; } gaiaFreeGeomColl (geom2); gaiaFreeGeomColl (geom_pt); gaiaFreeGeomColl (geom1); gaiaIntersect (&min, &max, 0.0, 10.0, 20.0, 10.0, 5.0, 0.0, 5.0, 20.0); if (min != 5.0 || max != 10.0) { /* unexpected result */ fprintf (stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", min, max); return -51; } /* same, reversed line direction */ gaiaIntersect (&min, &max, 20.0, 10.0, 0.0, 10.0, 5.0, 20.0, 5.0, 0.0); if (min != 5.0 || max != 10.0) { /* unexpected result */ fprintf (stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", min, max); return -52; } /* non-intersecting MBRs*/ min = -20; max = -20; gaiaIntersect (&min, &max, 20.0, 12.0, 0.0, 10.0, 25.0, 40.0, 45.0, 40.0); if (min != -20 || max != -20) { /* unexpected result */ fprintf (stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", min, max); return -53; } /* Just intersecting */ min = 0; max = 0; gaiaIntersect (&min, &max, 0.0, 10.0, 20.0, 10.0, 5.0, 0.0, 5.0, 10.0); if (min != 5.0 || max != 10.0) { /* unexpected result */ fprintf (stderr, "gaiaIntersect: unexpected result %1.6f %1.6f|\n", min, max); return -54; } /* cloning a Linestring XY */ line1 = gaiaAllocLinestring (4); gaiaLineSetPoint (line1, 0, 1.1, 1.2, 100.1, 10.1); gaiaLineSetPoint (line1, 1, 1.3, 1.4, 100.2, 10.2); gaiaLineSetPoint (line1, 2, 1.5, 1.6, 100.3, 10.3); gaiaLineSetPoint (line1, 3, 1.7, 1.8, 100.4, 10.4); line2 = gaiaCloneLinestringSpecial (line1, GAIA_SAME_ORDER); gaiaFreeLinestring (line2); line2 = gaiaCloneLinestringSpecial (line1, GAIA_REVERSE_ORDER); gaiaFreeLinestring (line2); gaiaFreeLinestring (line1); /* cloning a Linestring XYZ */ line1 = gaiaAllocLinestringXYZ (4); gaiaLineSetPoint (line1, 0, 1.1, 1.2, 100.1, 10.1); gaiaLineSetPoint (line1, 1, 1.3, 1.4, 100.2, 10.2); gaiaLineSetPoint (line1, 2, 1.5, 1.6, 100.3, 10.3); gaiaLineSetPoint (line1, 3, 1.7, 1.8, 100.4, 10.4); line2 = gaiaCloneLinestringSpecial (line1, GAIA_SAME_ORDER); gaiaFreeLinestring (line2); line2 = gaiaCloneLinestringSpecial (line1, GAIA_REVERSE_ORDER); gaiaFreeLinestring (line2); gaiaFreeLinestring (line1); /* cloning a Linestring XYM */ line1 = gaiaAllocLinestringXYM (4); gaiaLineSetPoint (line1, 0, 1.1, 1.2, 100.1, 10.1); gaiaLineSetPoint (line1, 1, 1.3, 1.4, 100.2, 10.2); gaiaLineSetPoint (line1, 2, 1.5, 1.6, 100.3, 10.3); gaiaLineSetPoint (line1, 3, 1.7, 1.8, 100.4, 10.4); line2 = gaiaCloneLinestringSpecial (line1, GAIA_SAME_ORDER); gaiaFreeLinestring (line2); line2 = gaiaCloneLinestringSpecial (line1, GAIA_REVERSE_ORDER); gaiaFreeLinestring (line2); gaiaFreeLinestring (line1); /* cloning a Linestring XYZM */ line1 = gaiaAllocLinestringXYZM (4); gaiaLineSetPoint (line1, 0, 1.1, 1.2, 100.1, 10.1); gaiaLineSetPoint (line1, 1, 1.3, 1.4, 100.2, 10.2); gaiaLineSetPoint (line1, 2, 1.5, 1.6, 100.3, 10.3); gaiaLineSetPoint (line1, 3, 1.7, 1.8, 100.4, 10.4); line2 = gaiaCloneLinestringSpecial (line1, GAIA_SAME_ORDER); gaiaFreeLinestring (line2); line2 = gaiaCloneLinestringSpecial (line1, GAIA_REVERSE_ORDER); gaiaFreeLinestring (line2); gaiaFreeLinestring (line1); /* cloning a Ring XY */ ring1 = gaiaAllocRing (5); gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); ring2 = gaiaCloneRingSpecial (ring1, GAIA_SAME_ORDER); gaiaFreeRing (ring2); ring2 = gaiaCloneRingSpecial (ring1, GAIA_REVERSE_ORDER); gaiaFreeRing (ring2); gaiaFreeRing (ring1); /* cloning a Ring XYZ */ ring1 = gaiaAllocRingXYZ (5); gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); ring2 = gaiaCloneRingSpecial (ring1, GAIA_SAME_ORDER); gaiaFreeRing (ring2); ring2 = gaiaCloneRingSpecial (ring1, GAIA_REVERSE_ORDER); gaiaFreeRing (ring2); gaiaFreeRing (ring1); /* cloning a Ring XYM */ ring1 = gaiaAllocRingXYM (5); gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); ring2 = gaiaCloneRingSpecial (ring1, GAIA_SAME_ORDER); gaiaFreeRing (ring2); ring2 = gaiaCloneRingSpecial (ring1, GAIA_REVERSE_ORDER); gaiaFreeRing (ring2); gaiaFreeRing (ring1); /* cloning a Ring XYZM */ ring1 = gaiaAllocRingXYZM (4); gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); ring2 = gaiaCloneRingSpecial (ring1, GAIA_SAME_ORDER); gaiaFreeRing (ring2); ring2 = gaiaCloneRingSpecial (ring1, GAIA_REVERSE_ORDER); gaiaFreeRing (ring2); gaiaFreeRing (ring1); /* cloning a Polygon XY (1) */ polyg1 = gaiaAllocPolygon (5, 1); ring1 = polyg1->Exterior; gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 2.0, 1.0, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 1.0, 2.0, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER); gaiaFreePolygon (polyg2); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER); gaiaFreePolygon (polyg2); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER); gaiaFreePolygon (polyg2); gaiaFreePolygon (polyg1); /* cloning a Polygon XY (2) */ polyg1 = gaiaAllocPolygon (5, 1); ring1 = polyg1->Exterior; gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 1.0, 2.0, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 2.0, 1.0, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 1.1, 1.2, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 1.2, 1.1, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER); gaiaFreePolygon (polyg2); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER); gaiaFreePolygon (polyg2); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER); gaiaFreePolygon (polyg2); gaiaFreePolygon (polyg1); /* cloning a Polygon XYZ (1) */ polyg1 = gaiaAllocPolygonXYZ (5, 1); ring1 = polyg1->Exterior; gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 2.0, 1.0, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 1.0, 2.0, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER); gaiaFreePolygon (polyg2); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER); gaiaFreePolygon (polyg2); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER); gaiaFreePolygon (polyg2); gaiaFreePolygon (polyg1); /* cloning a Polygon XYZ (2) */ polyg1 = gaiaAllocPolygonXYZ (5, 1); ring1 = polyg1->Exterior; gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 1.0, 2.0, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 2.0, 1.0, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 1.1, 1.2, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 1.2, 1.1, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER); gaiaFreePolygon (polyg2); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER); gaiaFreePolygon (polyg2); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER); gaiaFreePolygon (polyg2); gaiaFreePolygon (polyg1); /* cloning a Polygon XYM (1) */ polyg1 = gaiaAllocPolygonXYM (5, 1); ring1 = polyg1->Exterior; gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 2.0, 1.0, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 1.0, 2.0, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER); gaiaFreePolygon (polyg2); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER); gaiaFreePolygon (polyg2); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER); gaiaFreePolygon (polyg2); gaiaFreePolygon (polyg1); /* cloning a Polygon XYM (2) */ polyg1 = gaiaAllocPolygonXYM (5, 1); ring1 = polyg1->Exterior; gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 1.0, 2.0, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 2.0, 1.0, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 1.1, 1.2, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 1.2, 1.1, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER); gaiaFreePolygon (polyg2); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER); gaiaFreePolygon (polyg2); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER); gaiaFreePolygon (polyg2); gaiaFreePolygon (polyg1); /* cloning a Polygon XYZM (1) */ polyg1 = gaiaAllocPolygonXYZM (5, 1); ring1 = polyg1->Exterior; gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 2.0, 1.0, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 1.0, 2.0, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 1.2, 1.1, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 1.1, 1.2, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER); gaiaFreePolygon (polyg2); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER); gaiaFreePolygon (polyg2); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER); gaiaFreePolygon (polyg2); gaiaFreePolygon (polyg1); /* cloning a Polygon XYZM (2) */ polyg1 = gaiaAllocPolygonXYZM (5, 1); ring1 = polyg1->Exterior; gaiaRingSetPoint (ring1, 0, 1.0, 1.0, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 1.0, 2.0, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 2.0, 2.0, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 2.0, 1.0, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.0, 1.0, 100.1, 10.1); ring1 = gaiaAddInteriorRing (polyg1, 0, 5); gaiaRingSetPoint (ring1, 0, 1.1, 1.1, 100.1, 10.1); gaiaRingSetPoint (ring1, 1, 1.1, 1.2, 100.2, 10.2); gaiaRingSetPoint (ring1, 2, 1.2, 1.2, 100.3, 10.3); gaiaRingSetPoint (ring1, 3, 1.2, 1.1, 100.4, 10.4); gaiaRingSetPoint (ring1, 4, 1.1, 1.1, 100.1, 10.1); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_SAME_ORDER); gaiaFreePolygon (polyg2); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_REVERSE_ORDER); gaiaFreePolygon (polyg2); polyg2 = gaiaClonePolygonSpecial (polyg1, GAIA_LHR_ORDER); gaiaFreePolygon (polyg2); gaiaFreePolygon (polyg1); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -1001; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_libxml2.c0000664000175000017500000004306212544707704015300 00000000000000 /* check_libxml2.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2013 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ #define ISO_METADATA 1 #define SLD_SE_STYLE 2 #define SVG 3 static int check_bad_xml (void *cache) { /* parsing a not-well-formed XML Sample */ FILE *fl; int sz = 0; int rd; unsigned char *xml = NULL; unsigned char *p_result = NULL; int len; char *err1; char *err2; char *version = gaia_libxml2_version (); if (version == NULL) { fprintf (stderr, "unable to get the library version\n"); return 0; } free (version); /* loading the XMLDocument */ fl = fopen ("books-bad.xml", "rb"); if (!fl) { fprintf (stderr, "cannot open \"books-bad.xml\"\n"); return 0; } if (fseek (fl, 0, SEEK_END) == 0) sz = ftell (fl); xml = malloc (sz); rewind (fl); rd = fread (xml, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error \"books-bad.xml\"\n"); return 0; } fclose (fl); /* parsing the XMLDocument */ gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &len, &err1, &err2); if (p_result != NULL) { fprintf (stderr, "this is not a well-formed XML !!!\n"); return 0; } free (xml); return 1; } static int check_bad_schema (void *cache) { /* validating by invalid Schema */ FILE *fl; int sz = 0; int rd; unsigned char *xml = NULL; unsigned char *p_result = NULL; int len; char *err1; char *err2; /* loading the XMLDocument */ fl = fopen ("books.xml", "rb"); if (!fl) { fprintf (stderr, "cannot open \"books.xml\"\n"); return 0; } if (fseek (fl, 0, SEEK_END) == 0) sz = ftell (fl); xml = malloc (sz); rewind (fl); rd = fread (xml, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error \"books.xml\"\n"); return 0; } fclose (fl); /* validating the XMLDocument */ gaiaXmlToBlob (cache, xml, rd, 1, "books-bad.xsd", &p_result, &len, &err1, &err2); if (p_result != NULL) { fprintf (stderr, "this is not a valid XML !!!\n"); return 0; } free (xml); return 1; } static int check_validate (void *cache, const char *path) { /* validating an XML Sample */ FILE *fl; int sz = 0; int rd; unsigned char *xml = NULL; char *schema_uri = NULL; char *schema_uri2 = NULL; unsigned char *p_result = NULL; int len; /* loading the XMLDocument */ fl = fopen (path, "rb"); if (!fl) { fprintf (stderr, "cannot open \"%s\"\n", path); return 0; } if (fseek (fl, 0, SEEK_END) == 0) sz = ftell (fl); xml = malloc (sz); rewind (fl); rd = fread (xml, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error \"%s\"\n", path); return 0; } fclose (fl); /* extracting the Internal SchemaURI */ schema_uri = gaiaXmlGetInternalSchemaURI (cache, xml, rd); if (schema_uri == NULL) { fprintf (stderr, "unable to identify the Schema for \"%s\"\n", path); return 0; } /* validating the XMLDocument */ gaiaXmlToBlob (cache, xml, rd, 1, schema_uri, &p_result, &len, NULL, NULL); if (p_result == NULL) { fprintf (stderr, "unable to validate \"%s\"\n", path); return 0; } if (!gaiaIsSchemaValidatedXmlBlob (p_result, len)) { fprintf (stderr, "validation failed: \"%s\"\n", path); return 0; } schema_uri2 = gaiaXmlBlobGetSchemaURI (p_result, len); if (schema_uri2 == NULL) { fprintf (stderr, "unable to retrieve the ValidationSchemaURI for \"%s\"\n", path); return 0; } if (strcmp (schema_uri, schema_uri2) != 0) { fprintf (stderr, "%s: mismatching SchemaURI \"%s\" (expected \"%s\")\n", path, schema_uri2, schema_uri); return 0; } free (schema_uri); free (schema_uri2); free (p_result); free (xml); return 1; } static int check_extended (void *cache, const char *path, int mode) { /* validating an XML Sample */ FILE *fl; int sz = 0; int rd; unsigned char *xml = NULL; int iso; int style; int svg; unsigned char *p_result = NULL; int len; char *file_id = NULL; char *parent_id = NULL; char *title = NULL; char *abstract = NULL; unsigned char *geom_blob; int geom_size; gaiaGeomCollPtr geom; /* loading the XMLDocument */ fl = fopen (path, "rb"); if (!fl) { fprintf (stderr, "cannot open \"%s\"\n", path); return 0; } if (fseek (fl, 0, SEEK_END) == 0) sz = ftell (fl); xml = malloc (sz); rewind (fl); rd = fread (xml, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error \"%s\"\n", path); return 0; } fclose (fl); /* simple parsing without validation */ gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &len, NULL, NULL); if (p_result == NULL) { fprintf (stderr, "unable to parse \"%s\"\n", path); return 0; } /* checking the payload type */ iso = gaiaIsIsoMetadataXmlBlob (p_result, len); style = gaiaIsSldSeRasterStyleXmlBlob (p_result, len); style = gaiaIsSldSeVectorStyleXmlBlob (p_result, len); svg = gaiaIsSvgXmlBlob (p_result, len); if (mode == ISO_METADATA && iso && !style && !svg) ; else if (mode == SLD_SE_STYLE && !iso && style && !svg) ; else if (mode == SVG && !iso && !style && svg) ; else { fprintf (stderr, "mismatching type: \"%s\" iso=%d style=%d svg=%d\n", path, iso, style, svg); return 0; } /* testing ISO Metadata attributes */ file_id = gaiaXmlBlobGetFileId (p_result, len); parent_id = gaiaXmlBlobGetParentId (p_result, len); title = gaiaXmlBlobGetTitle (p_result, len); abstract = gaiaXmlBlobGetAbstract (p_result, len); gaiaXmlBlobGetGeometry (p_result, len, &geom_blob, &geom_size); if (mode == ISO_METADATA) { /* verifying ISO Metadata attributes */ if (file_id == NULL) { fprintf (stderr, "unexpected NULL FileIdentifier in \"%s\"\n", path); return 0; } if (strcmp (file_id, "029097fd-2ef2-487c-a5ca-6ec7a3dbac53") != 0) { fprintf (stderr, "unexpected FileIdentifier in \"%s\" [%s]\n", path, file_id); return 0; } if (parent_id == NULL) { fprintf (stderr, "unexpected NULL ParentIdentifier in \"%s\"\n", path); return 0; } if (strcmp (parent_id, "024027fd-3ef2-487c-a8ca-6ec8a3dfac57") != 0) { fprintf (stderr, "unexpected ParentIdentifier in \"%s\" [%s]\n", path, parent_id); return 0; } if (title == NULL) { fprintf (stderr, "unexpected NULL Title in \"%s\"\n", path); return 0; } if (strcmp (title, "Image2000 Product 1 (nl2) Multispectral") != 0) { fprintf (stderr, "unexpected Title in \"%s\" [%s]\n", path, title); return 0; } if (abstract == NULL) { fprintf (stderr, "unexpected NULL Abstract in \"%s\"\n", path); return 0; } if (strcmp (abstract, "IMAGE2000 product 1 individual orthorectified scenes.") != 0) { fprintf (stderr, "unexpected Abstract in \"%s\" [%s]\n", path, abstract); return 0; } if (geom_blob == NULL) { fprintf (stderr, "unexpected NULL Geometry in \"%s\"\n", path); return 0; } geom = gaiaFromSpatiaLiteBlobWkb (geom_blob, geom_size); if (geom == NULL) { fprintf (stderr, "unexpected invalid Geometry in \"%s\"\n", path); return 0; } if (geom->Srid != 4326) { fprintf (stderr, "unexpected Geometry SRID in \"%s\" [%d]\n", path, geom->Srid); return 0; } if (geom->DeclaredType != GAIA_MULTIPOLYGON) { fprintf (stderr, "unexpected Geometry Type in \"%s\" [%d]\n", path, geom->DeclaredType); return 0; } if (geom->MinX != 3.93000000) { fprintf (stderr, "unexpected Geometry MinX in \"%s\" [%1.8f]\n", path, geom->MinX); return 0; } if (geom->MinY != 52.10000000) { fprintf (stderr, "unexpected Geometry MinY in \"%s\" [%1.8f]\n", path, geom->MinY); return 0; } if (geom->MaxX != 7.57000000) { fprintf (stderr, "unexpected Geometry MaxX in \"%s\" [%1.8f]\n", path, geom->MaxX); return 0; } if (geom->MaxY != 54.10000000) { fprintf (stderr, "unexpected Geometry MaxY in \"%s\" [%1.8f]\n", path, geom->MaxY); return 0; } gaiaFreeGeomColl (geom); } else { /* not ISO Metadata */ if (strcmp (path, "stazioni_se.xml") == 0) { if (strcmp (title, "Railway Stations - blue star") != 0) { fprintf (stderr, "unexpected Title in \"%s\"\n", path); return 0; } if (strcmp (abstract, "a simple SE Point Symbolizer") != 0) { fprintf (stderr, "unexpected Abstract in \"%s\"\n", path); return 0; } } else { if (title != NULL) { fprintf (stderr, "unexpected Title in \"%s\"\n", path); return 0; } if (abstract != NULL) { fprintf (stderr, "unexpected Abstract in \"%s\"\n", path); return 0; } } } free (p_result); free (xml); if (file_id) free (file_id); if (parent_id) free (parent_id); if (title) free (title); if (abstract) free (abstract); if (geom_blob) free (geom_blob); return 1; } static int check_parse (void *cache, const char *path) { /* parsing an XML Sample */ FILE *fl; int sz = 0; int rd; unsigned char *xml = NULL; int compressed_sz; int uncompressed_sz; int doc_sz; int formatted_sz; int formatted_txt_sz; unsigned char *p_result = NULL; unsigned char *out; char *txt; /* loading the XMLDocument */ fl = fopen (path, "rb"); if (!fl) { fprintf (stderr, "cannot open \"%s\"\n", path); return 0; } if (fseek (fl, 0, SEEK_END) == 0) sz = ftell (fl); xml = malloc (sz); rewind (fl); rd = fread (xml, 1, sz, fl); if (rd != sz) { fprintf (stderr, "read error \"%s\"\n", path); return 0; } fclose (fl); /* parsing the XMLDocument (no validation / compressed) */ gaiaXmlToBlob (cache, xml, rd, 1, NULL, &p_result, &compressed_sz, NULL, NULL); if (p_result == NULL) { fprintf (stderr, "unable to parse(1) \"%s\"\n", path); return 0; } doc_sz = gaiaXmlBlobGetDocumentSize (p_result, compressed_sz); gaiaXmlFromBlob (p_result, compressed_sz, 4, &out, &formatted_sz); if (out == NULL) { fprintf (stderr, "unable to format(1) \"%s\"\n", path); return 0; } free (out); txt = gaiaXmlTextFromBlob (p_result, compressed_sz, 2); if (txt == NULL) { fprintf (stderr, "unable to format-text(1) \"%s\"\n", path); return 0; } formatted_txt_sz = strlen (txt); free (txt); free (p_result); /* parsing the XMLDocument (no validation / not compressed) */ gaiaXmlToBlob (cache, xml, rd, 0, NULL, &p_result, &uncompressed_sz, NULL, NULL); if (p_result == NULL) { fprintf (stderr, "unable to parse(2) \"%s\"\n", path); return 0; } free (p_result); if (strcmp (path, "books.xml") == 0) { if (compressed_sz != 432) { fprintf (stderr, "books.xml: unexpected compressed size %d (expected 432)\n", compressed_sz); return 0; } if (uncompressed_sz != 780) { fprintf (stderr, "books.xml: unexpected compressed size %d (expected 780)\n", uncompressed_sz); return 0; } if (doc_sz != 741) { fprintf (stderr, "books.xml: unexpected document size %d (expected 741)\n", doc_sz); return 0; } if (formatted_sz != 864) { fprintf (stderr, "books.xml: unexpected formatted size %d (expected 864)\n", formatted_sz); return 0; } if (formatted_txt_sz != 803) { fprintf (stderr, "books.xml: unexpected formatted-text size %d (expected 803)\n", formatted_txt_sz); return 0; } } if (strcmp (path, "opera.xml") == 0) { if (compressed_sz != 425) { fprintf (stderr, "opera.xml: unexpected compressed size %d (expected 425)\n", compressed_sz); return 0; } if (uncompressed_sz != 951) { fprintf (stderr, "opera.xml: unexpected compressed size %d (expected 951)\n", uncompressed_sz); return 0; } if (doc_sz != 912) { fprintf (stderr, "opera.xml: unexpected document size %d (expected 912)\n", doc_sz); return 0; } if (formatted_sz != 970) { fprintf (stderr, "opera.xml: unexpected formatted size %d (expected 970)\n", formatted_sz); return 0; } if (formatted_txt_sz != 909) { fprintf (stderr, "opera.xml: unexpected formatted-text size %d (expected 909)\n", formatted_txt_sz); return 0; } } if (strcmp (path, "movies.xml") == 0) { if (compressed_sz != 577) { fprintf (stderr, "movies.xml: unexpected compressed size %d (expected 577)\n", compressed_sz); return 0; } if (uncompressed_sz != 1809) { fprintf (stderr, "movies.xml: unexpected compressed size %d (expected 1809)\n", uncompressed_sz); return 0; } if (doc_sz != 1770) { fprintf (stderr, "movies.xml: unexpected document size %d (expected 1770)\n", doc_sz); return 0; } if (formatted_sz != 945) { fprintf (stderr, "movies.xml: unexpected formatted size %d (expected 945)\n", formatted_sz); return 0; } if (formatted_txt_sz != 884) { fprintf (stderr, "movies.xml: unexpected formatted-text size %d (expected 884)\n", formatted_txt_sz); return 0; } } free (xml); return 1; } #endif int main (int argc, char *argv[]) { int ret; sqlite3 *handle; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ if (!check_parse (cache, "books.xml")) { fprintf (stderr, "unable to parse \"books.xml\"\n"); return -2; } if (!check_parse (cache, "opera.xml")) { fprintf (stderr, "unable to parse \"opera.xml\"\n"); return -3; } if (!check_parse (cache, "movies.xml")) { fprintf (stderr, "unable to parse \"movies.xml\"\n"); return -4; } if (!check_validate (cache, "books.xml")) { fprintf (stderr, "unable to validate \"books.xml\"\n"); return -5; } if (!check_validate (cache, "opera.xml")) { fprintf (stderr, "unable to validate \"opera.xml\"\n"); return -6; } if (!check_validate (cache, "movies.xml")) { fprintf (stderr, "unable to validate \"movies.xml\"\n"); return -7; } if (!check_extended (cache, "inspire-data-example.xml", ISO_METADATA)) { fprintf (stderr, "unable to parse \"inspire-data-example.xml\"\n"); return -8; } if (!check_extended (cache, "stazioni_se.xml", SLD_SE_STYLE)) { fprintf (stderr, "unable to parse \"stazioni_se.xml\"\n"); return -9; } if (!check_extended (cache, "thunderstorm_mild.svg", SVG)) { fprintf (stderr, "unable to parse \"thunderstorm_mild.svg\"\n"); return -10; } if (!check_bad_xml (cache)) { fprintf (stderr, "unable to test not well-formed XML\n"); return -11; } if (!check_bad_schema (cache)) { fprintf (stderr, "unable to test invalid Schema\n"); return -12; } #endif ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -10; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/hatch.dxf0000664000175000017500000005435412544707704014226 00000000000000 0 SECTION 2 HEADER 9 $ACADVER 1 AC1018 9 $ACADMAINTVER 70 0 9 $DWGCODEPAGE 3 ANSI_1252 9 $INSBASE 10 0.0 20 0.0 30 0.0 9 $EXTMIN 10 0 20 0 30 0.0 9 $EXTMAX 10 0 20 0 30 0.0 9 $LIMMIN 10 0.0 20 0.0 9 $LIMMAX 10 12.0 20 9.0 9 $ORTHOMODE 70 0 9 $REGENMODE 70 1 9 $FILLMODE 70 1 9 $QTEXTMODE 70 0 9 $MIRRTEXT 70 0 9 $LTSCALE 40 1.0 9 $ATTMODE 70 1 9 $TEXTSIZE 40 0.2 9 $TRACEWID 40 0.05 9 $TEXTSTYLE 7 Standard 9 $CLAYER 8 LineeTipo6 9 $CELTYPE 6 ByLayer 9 $CECOLOR 62 256 9 $CELTSCALE 40 1.0 9 $DISPSILH 70 0 9 $DIMSCALE 40 1.0 9 $DIMASZ 40 0.18 9 $DIMEXO 40 0.0625 9 $DIMDLI 40 0.38 9 $DIMRND 40 0.0 9 $DIMDLE 40 0.0 9 $DIMEXE 40 0.18 9 $DIMTP 40 0.0 9 $DIMTM 40 0.0 9 $DIMTXT 40 0.18 9 $DIMCEN 40 0.09 9 $DIMTSZ 40 0.0 9 $DIMTOL 70 0 9 $DIMLIM 70 0 9 $DIMTIH 70 1 9 $DIMTOH 70 1 9 $DIMSE1 70 0 9 $DIMSE2 70 0 9 $DIMTAD 70 0 9 $DIMZIN 70 0 9 $DIMBLK 1 9 $DIMASO 70 1 9 $DIMSHO 70 1 9 $DIMPOST 1 9 $DIMAPOST 1 9 $DIMALT 70 0 9 $DIMALTD 70 2 9 $DIMALTF 40 25.4 9 $DIMLFAC 40 1.0 9 $DIMTOFL 70 0 9 $DIMTVP 40 0.0 9 $DIMTIX 70 0 9 $DIMSOXD 70 0 9 $DIMSAH 70 1 9 $DIMBLK1 1 9 $DIMBLK2 1 Open30 9 $DIMSTYLE 2 Standard 9 $DIMCLRD 70 0 9 $DIMCLRE 70 0 9 $DIMCLRT 70 0 9 $DIMTFAC 40 1.0 9 $DIMGAP 40 0.09 9 $DIMJUST 70 0 9 $DIMSD1 70 0 9 $DIMSD2 70 0 9 $DIMTOLJ 70 1 9 $DIMTZIN 70 0 9 $DIMALTZ 70 0 9 $DIMALTTZ 70 0 9 $DIMUPT 70 0 9 $DIMDEC 70 4 9 $DIMTDEC 70 4 9 $DIMALTU 70 2 9 $DIMALTTD 70 2 9 $DIMTXSTY 7 Standard 9 $DIMAUNIT 70 0 9 $DIMADEC 70 0 9 $DIMALTRND 40 0.0 9 $DIMAZIN 70 0 9 $DIMDSEP 70 46 9 $DIMATFIT 70 3 9 $DIMFRAC 70 0 9 $DIMLDRBLK 1 9 $DIMLUNIT 70 2 9 $DIMLWD 70 -2 9 $DIMLWE 70 -2 9 $DIMTMOVE 70 0 9 $LUNITS 70 2 9 $LUPREC 70 4 9 $SKETCHINC 40 0.1 9 $FILLETRAD 40 0.0 9 $AUNITS 70 0 9 $AUPREC 70 0 9 $MENU 1 . 9 $ELEVATION 40 0.0 9 $PELEVATION 40 0.0 9 $THICKNESS 40 0.0 9 $LIMCHECK 70 0 9 $CHAMFERA 40 0.0 9 $CHAMFERB 40 0.0 9 $CHAMFERC 40 0.0 9 $CHAMFERD 40 0.0 9 $SKPOLY 70 0 9 $TDCREATE 40 2454180.428272026 9 $TDUCREATE 40 2454180.344938692 9 $TDUPDATE 40 2454238.487553021 9 $TDUUPDATE 40 2454238.404219688 9 $TDINDWG 40 1.0601266782 9 $TDUSRTIMER 40 1.0601209838 9 $USRTIMER 70 1 9 $ANGBASE 50 0.0 9 $ANGDIR 70 0 9 $PDMODE 70 0 9 $PDSIZE 40 0.0 9 $PLINEWID 40 0.0 9 $SPLFRAME 70 0 9 $SPLINETYPE 70 6 9 $SPLINESEGS 70 8 9 $HANDSEED 5 2AAE 9 $SURFTAB1 70 6 9 $SURFTAB2 70 6 9 $SURFTYPE 70 6 9 $SURFU 70 6 9 $SURFV 70 6 9 $UCSBASE 2 9 $UCSNAME 2 9 $UCSORG 10 0.0 20 0.0 30 0.0 9 $UCSXDIR 10 1.0 20 0.0 30 0.0 9 $UCSYDIR 10 0.0 20 1.0 30 0.0 9 $UCSORTHOREF 2 9 $UCSORTHOVIEW 70 0 9 $UCSORGTOP 10 0.0 20 0.0 30 0.0 9 $UCSORGBOTTOM 10 0.0 20 0.0 30 0.0 9 $UCSORGLEFT 10 0.0 20 0.0 30 0.0 9 $UCSORGRIGHT 10 0.0 20 0.0 30 0.0 9 $UCSORGFRONT 10 0.0 20 0.0 30 0.0 9 $UCSORGBACK 10 0.0 20 0.0 30 0.0 9 $PUCSBASE 2 9 $PUCSNAME 2 9 $PUCSORG 10 0.0 20 0.0 30 0.0 9 $PUCSXDIR 10 1.0 20 0.0 30 0.0 9 $PUCSYDIR 10 0.0 20 1.0 30 0.0 9 $PUCSORTHOREF 2 9 $PUCSORTHOVIEW 70 0 9 $PUCSORGTOP 10 0.0 20 0.0 30 0.0 9 $PUCSORGBOTTOM 10 0.0 20 0.0 30 0.0 9 $PUCSORGLEFT 10 0.0 20 0.0 30 0.0 9 $PUCSORGRIGHT 10 0.0 20 0.0 30 0.0 9 $PUCSORGFRONT 10 0.0 20 0.0 30 0.0 9 $PUCSORGBACK 10 0.0 20 0.0 30 0.0 9 $USERI1 70 0 9 $USERI2 70 0 9 $USERI3 70 0 9 $USERI4 70 0 9 $USERI5 70 0 9 $USERR1 40 0.0 9 $USERR2 40 0.0 9 $USERR3 40 0.0 9 $USERR4 40 0.0 9 $USERR5 40 0.0 9 $WORLDVIEW 70 1 9 $SHADEDGE 70 3 9 $SHADEDIF 70 70 9 $TILEMODE 70 1 9 $MAXACTVP 70 64 9 $PINSBASE 10 0.0 20 0.0 30 0.0 9 $PLIMCHECK 70 0 9 $PEXTMIN 10 1.000000000000000E+20 20 1.000000000000000E+20 30 1.000000000000000E+20 9 $PEXTMAX 10 -1.000000000000000E+20 20 -1.000000000000000E+20 30 -1.000000000000000E+20 9 $PLIMMIN 10 0.0 20 0.0 9 $PLIMMAX 10 12.0 20 9.0 9 $UNITMODE 70 0 9 $VISRETAIN 70 1 9 $PLINEGEN 70 1 9 $PSLTSCALE 70 1 9 $TREEDEPTH 70 3020 9 $CMLSTYLE 2 9 $CMLJUST 70 0 9 $CMLSCALE 40 1.0 9 $PROXYGRAPHICS 70 1 9 $MEASUREMENT 70 0 9 $CELWEIGHT 370 -1 9 $ENDCAPS 280 0 9 $JOINSTYLE 280 0 9 $LWDISPLAY 290 0 9 $INSUNITS 70 0 9 $HYPERLINKBASE 1 9 $STYLESHEET 1 9 $XEDIT 290 1 9 $CEPSNTYPE 380 0 9 $PSTYLEMODE 290 0 9 $FINGERPRINTGUID 2 {9F0361C4-6C7A-4C04-A603-B640F2F7BE05} 9 $VERSIONGUID 2 {AF92E7B2-CA18-4870-BB90-BAE43C40A327} 9 $EXTNAMES 290 1 9 $PSVPSCALE 40 0.0 9 $OLESTARTUP 290 0 9 $SORTENTS 280 127 9 $INDEXCTL 280 0 9 $HIDETEXT 280 0 9 $XCLIPFRAME 290 0 9 $HALOGAP 280 0 9 $OBSCOLOR 70 257 9 $OBSLTYPE 280 0 9 $INTERSECTIONDISPLAY 280 0 9 $INTERSECTIONCOLOR 70 257 9 $DIMASSOC 280 1 9 $PROJECTNAME 1 0 ENDSEC 0 SECTION 2 CLASSES 0 CLASS 1 ACDBDICTIONARYWDFLT 2 AcDbDictionaryWithDefault 3 ObjectDBX Classes 90 0 91 1 280 0 281 0 0 CLASS 1 IMAGE 2 AcDbRasterImage 3 ISM 90 127 91 0 280 0 281 1 0 CLASS 1 IMAGEDEF_REACTOR 2 AcDbRasterImageDefReactor 3 ISM 90 1 91 0 280 0 281 0 0 CLASS 1 SORTENTSTABLE 2 AcDbSortentsTable 3 ObjectDBX Classes 90 0 91 1 280 0 281 0 0 CLASS 1 IMAGEDEF 2 AcDbRasterImageDef 3 ISM 90 0 91 0 280 0 281 0 0 CLASS 1 RASTERVARIABLES 2 AcDbRasterVariables 3 ISM 90 0 91 1 280 0 281 0 0 ENDSEC 0 SECTION 2 TABLES 0 TABLE 2 VPORT 5 8 330 0 100 AcDbSymbolTable 70 9 0 VPORT 5 2AAD 330 8 100 AcDbSymbolTableRecord 100 AcDbViewportTableRecord 2 *Active 70 0 10 0.0 20 0.0 11 1.0 21 1.0 12 -84832.16874256809 22 45156.74916340834 13 0.0 23 0.0 14 1.0 24 1.0 15 0.0 25 0.0 16 0.0 26 0.0 36 1.0 17 0.0 27 0.0 37 0.0 40 35.99018809093105 41 1.786666666666666 42 50.0 43 0.0 44 0.0 50 0.0 51 0.0 71 0 72 1000 73 1 74 3 75 0 76 0 77 0 78 0 281 0 65 1 110 0.0 120 0.0 130 0.0 111 1.0 121 0.0 131 0.0 112 0.0 122 1.0 132 0.0 79 0 146 0.0 0 ENDTAB 0 TABLE 2 LTYPE 5 5 330 0 100 AcDbSymbolTable 70 15 0 LTYPE 5 13 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 ByBlock 70 0 3 72 65 73 0 40 0.0 0 LTYPE 5 14 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 ByLayer 70 0 3 72 65 73 0 40 0.0 0 LTYPE 5 15 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 Continuous 70 0 3 Solid line 72 65 73 0 40 0.0 0 LTYPE 5 2A9D 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 LineeTipo29 70 0 3 _ _ _ _ 72 65 73 2 40 5.299999999999999 49 3.799999999999999 74 0 49 -1.5 74 0 0 LTYPE 5 2A9E 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 LineeTipo30 70 0 3 croci 72 65 73 3 40 2.9 49 0.95 74 2 75 0 340 11 46 1.9 50 0.0 44 0.0 45 -0.95 9 | 49 0.95 74 0 49 -1.0 74 0 0 LTYPE 5 2A9F 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 LineeTipo5 70 0 3 - - - - 72 65 73 2 40 3.599999999999999 49 1.9 74 0 49 -1.7 74 0 0 LTYPE 5 2AA0 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 LineeTipo6 70 0 3 . . . 72 65 73 2 40 1.7 49 0.0 74 0 49 -1.7 74 0 0 LTYPE 5 2AA6 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 LineeTipo31 70 0 3 croce punto 72 65 73 5 40 3.5 49 0.95 74 2 75 0 340 11 46 1.9 50 0.0 44 0.0 45 -0.95 9 | 49 0.95 74 0 49 -0.8 74 0 49 0.0 74 0 49 -0.8 74 0 0 LTYPE 5 2AA7 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 LineeTipo32 70 0 3 croce punto punto 72 65 73 7 40 4.3 49 0.95 74 2 75 0 340 11 46 1.9 50 0.0 44 0.0 45 -0.95 9 | 49 0.95 74 0 49 -0.8 74 0 49 0.0 74 0 49 -0.8 74 0 49 0.0 74 0 49 -0.8 74 0 0 LTYPE 5 2AA8 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 LineeTipo33 70 0 3 tratto punto punto 72 65 73 6 40 4.2 49 1.5 74 0 49 -0.75 74 0 49 0.0 74 0 49 -1.199999999999999 74 0 49 0.0 74 0 49 -0.75 74 0 0 LTYPE 5 2AA9 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 LineeTipo34 70 0 3 tratto punto 72 65 73 4 40 3.0 49 1.5 74 0 49 -0.75 74 0 49 0.0 74 0 49 -0.75 74 0 0 LTYPE 5 2AAA 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 LineeTipo35 70 0 3 tratto tratto 72 65 73 2 40 2.5 49 1.5 74 0 49 -1.0 74 0 0 ENDTAB 0 TABLE 2 LAYER 5 2 330 0 100 AcDbSymbolTable 70 18 0 LAYER 5 10 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 0 70 0 62 7 6 Continuous 370 -3 390 2740 0 LAYER 5 72D 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 Simboli 70 0 62 7 6 Continuous 370 13 390 2740 0 LAYER 5 29F1 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 CODBO 70 0 62 7 6 Continuous 370 -3 390 2740 0 LAYER 5 29F2 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 Particelle 70 0 62 7 6 Continuous 370 13 390 2740 0 LAYER 5 29F3 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 RetinoFabb 70 0 62 7 6 Continuous 370 13 390 2740 0 LAYER 5 29F4 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 Testi 70 0 62 7 6 Continuous 370 25 390 2740 0 LAYER 5 29F5 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo1 70 0 62 7 6 Continuous 370 25 390 2740 0 LAYER 5 29F6 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo5 70 0 62 7 6 LineeTipo5 370 25 390 2740 0 LAYER 5 29F7 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo6 70 0 62 7 6 LineeTipo6 370 60 390 2740 0 LAYER 5 29F8 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo11 70 0 62 7 6 Continuous 370 25 390 2740 0 LAYER 5 29F9 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo12 70 1 62 7 6 Continuous 370 13 390 2740 0 LAYER 5 29FA 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo29 70 0 62 7 6 LineeTipo29 370 13 390 2740 0 LAYER 5 29FB 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo30 70 0 62 7 6 LineeTipo30 370 13 390 2740 0 LAYER 5 29FC 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo31 70 0 62 7 6 LineeTipo31 370 13 390 2740 0 LAYER 5 29FD 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo32 70 0 62 7 6 LineeTipo32 370 13 390 2740 0 LAYER 5 29FE 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo33 70 0 62 7 6 LineeTipo33 370 13 390 2740 0 LAYER 5 29FF 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo34 70 0 62 7 6 LineeTipo34 370 13 390 2740 0 LAYER 5 2A00 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 LineeTipo35 70 0 62 7 6 LineeTipo35 370 13 390 2740 0 ENDTAB 0 TABLE 2 STYLE 5 3 330 0 100 AcDbSymbolTable 70 2 0 STYLE 5 11 330 3 100 AcDbSymbolTableRecord 100 AcDbTextStyleTableRecord 2 Standard 70 0 40 0.0 41 1.0 50 0.0 71 0 42 0.2 3 txt 4 0 STYLE 5 2A03 330 3 100 AcDbSymbolTableRecord 100 AcDbTextStyleTableRecord 2 70 1 40 0.0 41 1.0 50 0.0 71 0 42 0.2 3 ltypeshp.shx 4 0 ENDTAB 0 TABLE 2 VIEW 5 6 330 0 100 AcDbSymbolTable 70 0 0 ENDTAB 0 TABLE 2 UCS 5 7 330 0 100 AcDbSymbolTable 70 0 0 ENDTAB 0 TABLE 2 APPID 5 9 330 0 100 AcDbSymbolTable 70 1 0 APPID 5 12 330 9 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 ACAD 70 0 0 ENDTAB 0 TABLE 2 DIMSTYLE 5 A 330 0 100 AcDbSymbolTable 70 1 100 AcDbDimStyleTable 71 1 340 710 0 DIMSTYLE 105 710 330 A 100 AcDbSymbolTableRecord 100 AcDbDimStyleTableRecord 2 Standard 70 0 173 1 340 11 344 775 0 ENDTAB 0 ENDSEC 0 SECTION 2 ENTITIES 0 LWPOLYLINE 100 AcDbEntity 100 AcDbPolyline 5 3AB5 90 9 70 128 8 Particelle 10 1674740.281 20 4851435.332 10 1674756.934 20 4851435.675 10 1674756.895 20 4851437.976 10 1674767.059 20 4851437.976 10 1674767.255 20 4851447.358 10 1674767.295 20 4851449.246 10 1674752.688 20 4851449.249 10 1674740.298 20 4851449.215 10 1674740.281 20 4851435.332 0 TEXT 100 AcDbEntity 100 AcDbText 5 3AB6 8 CODBO 1 1453 40 1.8 50 0 10 1674745.402 20 4851442.556 100 AcDbText 0 LWPOLYLINE 100 AcDbEntity 100 AcDbPolyline 5 4218 90 13 70 128 8 Particelle 10 1674507.564 20 4851463.201 10 1674505.527 20 4851457.662 10 1674504.389 20 4851454.568 10 1674503.801 20 4851453.115 10 1674500.606 20 4851444.521 10 1674498.904 20 4851439.903 10 1674514.521 20 4851433.919 10 1674516.258 20 4851438.699 10 1674519.209 20 4851446.586 10 1674518.701 20 4851446.915 10 1674519.874 20 4851450.062 10 1674522.508 20 4851457.742 10 1674507.564 20 4851463.201 0 TEXT 100 AcDbEntity 100 AcDbText 5 4219 8 CODBO 1 643 40 1.8 50 1.89171974522293 10 1674497.469 20 4851449.816 100 AcDbText 0 HATCH 5 4B48 330 20 100 AcDbEntity 100 AcDbHatch 8 RetinoFabb 10 0.0 20 0.0 30 0.0 210 0.0 220 0.0 230 1.0 2 ANSI31 70 0 71 0 91 1 92 16 93 13 72 1 10 1674393.216 20 4851421.768 11 1674392.525 21 4851422.191 72 1 10 1674392.525 20 4851422.191 11 1674391.267 21 4851422.962 72 1 10 1674391.267 20 4851422.962 11 1674382.854 21 4851428.021 72 1 10 1674382.854 20 4851428.021 11 1674378.659 21 4851430.452 72 1 10 1674378.659 20 4851430.452 11 1674371.438 21 4851423.932 72 1 10 1674371.438 20 4851423.932 11 1674372.188 21 4851423.488 72 1 10 1674372.188 20 4851423.488 11 1674374.743 21 4851420.983 72 1 10 1674374.743 20 4851420.983 11 1674374.201 21 4851420.130 72 1 10 1674374.201 20 4851420.130 11 1674376.013 21 4851418.669 72 1 10 1674376.013 20 4851418.669 11 1674376.557 21 4851419.422 72 1 10 1674376.557 20 4851419.422 11 1674385.032 21 4851413.382 72 1 10 1674385.032 20 4851413.382 11 1674386.977 21 4851411.968 72 1 10 1674386.977 20 4851411.968 11 1674393.216 21 4851421.768 97 0 75 0 76 1 52 0.0 41 10.0 77 0 78 1 53 45.0 43 0.0 44 0.0 45 -0.8838834764831842 46 0.8838834764831844 79 0 98 1 10 0.0 20 0.0 0 HATCH 5 4B36 330 20 100 AcDbEntity 100 AcDbHatch 8 RetinoFabb 10 0.0 20 0.0 30 0.0 210 0.0 220 0.0 230 1.0 2 ANSI31 70 0 71 0 91 1 92 16 93 11 72 1 10 1674842.191 20 4851309.751 11 1674842.877 21 4851309.799 72 1 10 1674842.877 20 4851309.799 11 1674842.813 21 4851316.024 72 1 10 1674842.813 20 4851316.024 11 1674841.655 21 4851316.003 72 1 10 1674841.655 20 4851316.003 11 1674839.300 21 4851315.989 72 1 10 1674839.300 20 4851315.989 11 1674839.266 21 4851317.271 72 1 10 1674839.266 20 4851317.271 11 1674835.567 21 4851317.166 72 1 10 1674835.567 20 4851317.166 11 1674832.808 21 4851317.089 72 1 10 1674832.808 20 4851317.089 11 1674832.833 21 4851315.951 72 1 10 1674832.833 20 4851315.951 11 1674837.234 21 4851315.977 72 1 10 1674837.234 20 4851315.977 11 1674837.351 21 4851309.667 72 1 10 1674837.351 20 4851309.667 11 1674842.191 21 4851309.751 97 0 75 0 76 1 52 0.0 41 10.0 77 0 78 1 53 60.0 43 0.0 44 0.0 45 -0.8838834764831842 46 0.8838834764831844 79 0 98 1 10 0.0 20 0.0 0 HATCH 5 4B4C 330 20 100 AcDbEntity 100 AcDbHatch 8 RetinoFabb 10 0.0 20 0.0 30 0.0 210 0.0 220 0.0 230 1.0 2 ANSI31 70 0 71 0 91 1 92 16 93 7 72 1 10 1674356.178 20 4851259.350 11 1674356.390 21 4851260.718 72 1 10 1674356.390 20 4851260.718 11 1674357.070 21 4851264.434 72 1 10 1674357.070 20 4851264.434 11 1674352.934 21 4851265.104 72 1 10 1674352.934 20 4851265.104 11 1674352.480 21 4851261.113 72 1 10 1674352.480 20 4851261.113 11 1674355.582 21 4851260.140 72 1 10 1674355.582 20 4851260.140 11 1674355.447 21 4851259.523 72 1 10 1674355.447 20 4851259.523 11 1674356.178 21 4851259.350 97 0 75 0 76 1 52 0.0 41 10.0 77 0 78 1 53 90.0 43 0.0 44 0.0 45 -0.8838834764831842 46 0.8838834764831844 79 0 98 1 10 0.0 20 0.0 0 HATCH 5 4A50 330 20 100 AcDbEntity 100 AcDbHatch 8 RetinoFabb 10 0.0 20 0.0 30 0.0 210 0.0 220 0.0 230 1.0 2 ANSI31 70 0 71 0 91 1 92 16 93 16 72 1 10 1681503.189 20 4849731.235 11 1681504.533 21 4849730.583 72 1 10 1681504.533 20 4849730.583 11 1681506.156 21 4849733.460 72 1 10 1681506.156 20 4849733.460 11 1681505.451 21 4849733.858 72 1 10 1681505.451 20 4849733.858 11 1681505.240 21 4849733.975 72 1 10 1681505.240 20 4849733.975 11 1681504.057 21 4849734.645 72 1 10 1681504.057 20 4849734.645 11 1681502.647 21 4849735.019 72 1 10 1681502.647 20 4849735.019 11 1681496.495 21 4849738.362 72 1 10 1681496.495 20 4849738.362 11 1681493.365 21 4849739.953 72 1 10 1681493.365 20 4849739.953 11 1681492.162 21 4849740.563 72 1 10 1681492.162 20 4849740.563 11 1681482.681 21 4849745.676 72 1 10 1681482.681 20 4849745.676 11 1681479.145 21 4849739.231 72 1 10 1681479.145 20 4849739.231 11 1681495.567 21 4849730.528 72 1 10 1681495.567 20 4849730.528 11 1681496.742 21 4849732.567 72 1 10 1681496.742 20 4849732.567 11 1681500.438 21 4849730.886 72 1 10 1681500.438 20 4849730.886 11 1681501.343 21 4849731.996 72 1 10 1681501.343 20 4849731.996 11 1681503.189 21 4849731.235 97 0 75 0 76 1 52 0.0 41 10.0 77 0 78 1 53 30.0 43 0.0 44 0.0 45 -0.8838834764831842 46 0.8838834764831844 79 0 98 1 10 0.0 20 0.0 0 ENDSEC 0 EOF libspatialite-4.3.0a/test/symbol.dxf0000664000175000017500000000254412544707704014436 00000000000000 0 SECTION 2 BLOCKS 0 BLOCK 5 4D 330 4A 100 AcDbEntity 8 P212 100 AcDbBlockBegin 2 S04 70 0 10 0.0 20 0.0 30 0.0 3 S17 1 0 CIRCLE 5 4E 330 4A 100 AcDbEntity 8 P212 100 AcDbCircle 10 0.0 20 0.0 30 0.0 40 0.4993929516959806 0 ARC 5 4F 330 4A 100 AcDbEntity 8 P212 100 AcDbCircle 10 0.0 20 0.0 30 0.0 40 0.4702375591390111 100 AcDbArc 50 1.352297952139852 51 213.1028912230649 0 ARC 5 50 330 4A 100 AcDbEntity 8 P212 100 AcDbCircle 10 0.1224526574460816 20 1.153653889613405 30 0.0 40 0.1224526574460816 100 AcDbArc 50 0.0 51 180.0 0 LINE 5 51 330 4A 100 AcDbEntity 8 P212 100 AcDbLine 10 0.0 20 0.4993929516959806 30 0.0 11 0.0 21 1.153653889613405 31 0.0 0 ENDBLK 5 52 330 4A 100 AcDbEntity 8 P212 100 AcDbBlockEnd 0 ENDSEC 0 SECTION 2 ENTITIES 0 INSERT 5 3F 330 2 100 AcDbEntity 8 P212 100 AcDbBlockReference 2 S04 10 1606600.703410613 20 4832060.545362558 30 9.65 41 7.0 42 7.0 43 7.0 50 53.0 0 INSERT 5 3F 330 2 100 AcDbEntity 8 P212 100 AcDbBlockReference 2 S04 10 1606500.703410613 20 4832560.545362558 30 9.65 41 7.0 42 7.0 43 7.0 50 53.0 0 ENDSEC 0 EOF libspatialite-4.3.0a/test/check_init.c0000664000175000017500000000613112544707704014666 00000000000000/* check_init.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { int ret; sqlite3 *handle; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -2; } spatialite_cleanup_ex (cache); cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -3; } spatialite_init_ex (handle, cache, 1); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -4; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.3.0a/test/check_gpkgCreateFeaturesTable.c0000664000175000017500000003617012544707704020454 00000000000000/* check_gkpgCreateFeaturesTable.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012-2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; void *cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_gkpgCreateFeaturesTable.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -100; } ret = sqlite3_exec (db_handle, "CREATE TABLE \"testfeats1\" (id INTEGER PRIMARY KEY AUTOINCREMENT, text_attribute TEXT, real_attribute REAL, boolean_attribute BOOLEAN, raster_or_photo BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected create testfeats1 table result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -101; } ret = sqlite3_exec (db_handle, "SELECT gpkgAddGeometryColumn(\"testfeats1\", \"thegeom\", \"POINT\", 0, 0, 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgAddGeometryColumn() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -102; } ret = sqlite3_exec (db_handle, "SELECT gpkgAddGeometryColumn(\"testfeats1\", \"thegeom\", \"POINT\", 0, 0, 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add geometry column duplicate column name, got %i\n", ret); sqlite3_free (err_msg); return -103; } #if 0 /* check gpkg_contents table entry is OK */ ret = sqlite3_get_table (db_handle, "SELECT data_type, identifier, description, last_change, min_x, min_y, max_x, max_y, srs_id FROM gpkg_contents WHERE table_name = 'testtiles1'", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error1: %s\n", err_msg); sqlite3_free (err_msg); return -104; } if ((rows != 1) || (columns != 9)) { sqlite3_free_table (results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -105; } if (strcmp (results[1 * columns + 0], "tiles") != 0) { fprintf (stderr, "Unexpected data_type result (got %s, expected tiles)", results[1 * columns + 0]); sqlite3_free_table (results); return -106; } if (results[1 * columns + 1] != NULL) { fprintf (stderr, "Unexpected identifier result (got %s, expected NULL)", results[1 * columns + 1]); sqlite3_free_table (results); return -107; } if (strcmp (results[1 * columns + 2], "") != 0) { fprintf (stderr, "Unexpected description result (got %s, expected an empty string)", results[1 * columns + 2]); sqlite3_free_table (results); return -108; } /* TODO: this test should be more rigorous */ if (results[1 * columns + 3] == NULL) { fprintf (stderr, "Unexpected last_change result - null)", results[1 * columns + 3]); sqlite3_free_table (results); return -109; } if ((results[1 * columns + 4] == NULL) || (strcmp (results[1 * columns + 4], "-180.0") != 0)) { fprintf (stderr, "Unexpected min_x result (got %s, expected -180.0)", results[1 * columns + 4]); sqlite3_free_table (results); return -110; } if ((results[1 * columns + 5] == NULL) || (strcmp (results[1 * columns + 5], "-90.0") != 0)) { fprintf (stderr, "Unexpected min_y result (got %s, expected -90.0)", results[1 * columns + 5]); sqlite3_free_table (results); return -111; } if ((results[1 * columns + 6] == NULL) || (strcmp (results[1 * columns + 6], "180.0") != 0)) { fprintf (stderr, "Unexpected max_x result (got %s, expected 180.0)", results[1 * columns + 6]); sqlite3_free_table (results); return -112; } if ((results[1 * columns + 7] == NULL) || (strcmp (results[1 * columns + 7], "90.0") != 0)) { fprintf (stderr, "Unexpected max_y result (got %s, expected 90.0)", results[1 * columns + 7]); sqlite3_free_table (results); return -113; } if ((results[1 * columns + 8] == NULL) || (strcmp (results[1 * columns + 8], "4326") != 0)) { fprintf (stderr, "Unexpected srid result (got %s, expected 4326)", results[1 * columns + 8]); sqlite3_free_table (results); return -114; } sqlite3_free_table (results); /* check gpkg_tile_matrix_set table entry is OK */ ret = sqlite3_get_table (db_handle, "SELECT min_x, min_y, max_x, max_y, srs_id FROM gpkg_tile_matrix_set WHERE table_name = 'testtiles1'", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error1: %s\n", err_msg); sqlite3_free (err_msg); return -140; } if ((rows != 1) || (columns != 5)) { sqlite3_free_table (results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -141; } if ((results[1 * columns + 0] == NULL) || (strcmp (results[1 * columns + 0], "-180.0") != 0)) { fprintf (stderr, "Unexpected min_x result (got %s, expected -180.0)", results[1 * columns + 0]); sqlite3_free_table (results); return -142; } if ((results[1 * columns + 1] == NULL) || (strcmp (results[1 * columns + 1], "-90.0") != 0)) { fprintf (stderr, "Unexpected min_y result (got %s, expected -90.0)", results[1 * columns + 1]); sqlite3_free_table (results); return -143; } if ((results[1 * columns + 2] == NULL) || (strcmp (results[1 * columns + 2], "180.0") != 0)) { fprintf (stderr, "Unexpected max_x result (got %s, expected 180.0)", results[1 * columns + 2]); sqlite3_free_table (results); return -144; } if ((results[1 * columns + 3] == NULL) || (strcmp (results[1 * columns + 3], "90.0") != 0)) { fprintf (stderr, "Unexpected max_y result (got %s, expected 90.0)", results[1 * columns + 3]); sqlite3_free_table (results); return -145; } if ((results[1 * columns + 4] == NULL) || (strcmp (results[1 * columns + 4], "4326") != 0)) { fprintf (stderr, "Unexpected srid result (got %s, expected 4326)", results[1 * columns + 4]); sqlite3_free_table (results); return -146; } sqlite3_free_table (results); #endif sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "CREATE TABLE \"ctd\" (id INTEGER PRIMARY KEY AUTOINCREMENT, text_attribute TEXT, real_attribute REAL, boolean_attribute BOOLEAN, raster_or_photo BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected create ctd table result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -200; } ret = sqlite3_exec (db_handle, "SELECT gpkgAddGeometryColumn(\"ctd\", 2.4, \"POINT\", 0, 0, 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add geometry column bad column type, got %i\n", ret); sqlite3_free (err_msg); return -201; } if (strcmp (err_msg, "gpkgAddGeometryColumn() error: argument 2 [geometry_column_name] is not of the string type") != 0) { fprintf (stderr, "Unexpected error message for gpkgAddGeometryColumn arg 2: %s\n", err_msg); sqlite3_free (err_msg); return -202; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", 4, 0, 0, 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add geometry column bad geom type, got %i\n", ret); sqlite3_free (err_msg); return -203; } if (strcmp (err_msg, "gpkgAddGeometryColumn() error: argument 3 [geometry_type] is not of the string type") != 0) { fprintf (stderr, "Unexpected error message for gpkgAddGeometryColumn arg 3: %s\n", err_msg); sqlite3_free (err_msg); return -204; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgAddGeometryColumn(8.3, \"the_geom\", \"POINT\", 0, 0, 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add geometry column bad table type, got %i\n", ret); sqlite3_free (err_msg); return -205; } if (strcmp (err_msg, "gpkgAddGeometryColumn() error: argument 1 [table] is not of the string type") != 0) { fprintf (stderr, "Unexpected error message for gpkgAddGeometryColumn arg 1: %s\n", err_msg); sqlite3_free (err_msg); return -206; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", \"POINT\", \"z\", 0, 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add geometry column bad z type, got %i\n", ret); sqlite3_free (err_msg); return -207; } if (strcmp (err_msg, "gpkgAddGeometryColumn() error: argument 4 [with_z] is not of the integer type") != 0) { fprintf (stderr, "Unexpected error message for gpkgAddGeometryColumn arg 4: %s\n", err_msg); sqlite3_free (err_msg); return -208; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", \"POINT\", 0, \"m\", 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add geometry column bad m type, got %i\n", ret); sqlite3_free (err_msg); return -209; } if (strcmp (err_msg, "gpkgAddGeometryColumn() error: argument 5 [with_m] is not of the integer type") != 0) { fprintf (stderr, "Unexpected error message for gpkgAddGeometryColumn arg 5: %s\n", err_msg); sqlite3_free (err_msg); return -210; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", \"POINT\", 3, 0, 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add geometry column bad z value, got %i\n", ret); sqlite3_free (err_msg); return -211; } if (strcmp (err_msg, "gpkgAddGeometryColumn() error: argument 4 [with_z] is not a known value (expected 0, 1 or 2)") != 0) { fprintf (stderr, "Unexpected error message for gpkgAddGeometryColumn arg 4: %s\n", err_msg); sqlite3_free (err_msg); return -212; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", \"POINT\", 0, 3, 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add geometry column bad m value, got %i\n", ret); sqlite3_free (err_msg); return -213; } if (strcmp (err_msg, "gpkgAddGeometryColumn() error: argument 5 [with_m] is not a known value (expected 0, 1 or 2)") != 0) { fprintf (stderr, "Unexpected error message for gpkgAddGeometryColumn arg 5: %s\n", err_msg); sqlite3_free (err_msg); return -214; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", \"POINT\", 0, 2, \"srid\")", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add geometry column bad srid type, got %i\n", ret); sqlite3_free (err_msg); return -215; } if (strcmp (err_msg, "gpkgAddGeometryColumn() error: argument 6 [srid] is not of the integer type") != 0) { fprintf (stderr, "Unexpected error message for gpkgAddGeometryColumn arg 6: %s\n", err_msg); sqlite3_free (err_msg); return -216; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "SELECT gpkgAddGeometryColumn(\"ctd\", \"the_geom\", \"blah\", 0, 1, 4326)", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for add geometry column bad geom type value, got %i\n", ret); sqlite3_free (err_msg); return -217; } if (strcmp (err_msg, "gpkgAddGeometryColumn() error: argument 3 [geometry_type] not a recognised geometry type") != 0) { fprintf (stderr, "Unexpected error message for gpkgAddGeometryColumn arg 3: %s\n", err_msg); sqlite3_free (err_msg); return -218; } sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -300; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/test-legacy-2.3.1.sqlite0000664000175000017500000003600012544707704016523 00000000000000SQLite format 3@ ñ‚},ñ‚-â#ìûöñì  h»hO³x3mepsgYøED50 / UTM zone 32N+proj=utm +zone=32 +ellps=intl +units=m +no_defsB¡fmepsgæWGS 84+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs   çç1spatialite_history# ëß½š{`C&éÃvU2ë!ˆe %Polygon_TestgeomZMì߈ ˆd %Polygon_TestgeomMì߈ ˆc %Polygon_TestgeomZì߈ˆb % Polygon_Testgeomì߈$ˆa +Linestring_TestgeomMZì߈ #ˆ` +Linestring_TestgeomMì߈ #ˆ_ +Linestring_TestgeomZì߈ ˆ^ + Linestring_Testgeomˆ] #MPoint_TestgeomMZˆ\ #MPoint_TestgeomMˆ[ #MPoint_TestgeomZˆZ # MPoint_TestgeomˆX !Point_TestgeomXYZM ˆW !Point_TestgeomXYˆßˆßˆV !Point_TestgeomMˆßˆßˆU ! Point_TestgeomZˆßˆß låɬyaH0çиŸ†l%Polygon_TestgeomZMe%Polygon_TestgeomZc%Polygon_TestgeomMd%Polygon_Testgeomb!Point_TestgeomZU!Point_TestgeomXYZMX!Point_TestgeomXYW!Point_TestgeomMV#MPoint_TestgeomZ[#MPoint_TestgeomMZ]#MPoint_TestgeomM\#MPoint_TestgeomZ+Linestring_TestgeomZ_+Linestring_TestgeomMZa+Linestring_TestgeomM`+Linestring_Testgeom^ ììÕäf++ƒtablespatial_ref_sysspatial_ref_sysCREATE TABLE spatial_ref_sys ( srid INTEGER NOT NULL PRIMARY KEY, auth_name VARCHAR(256) NOT NULL, auth_srid INTEGER NOT NULL, ref_sys_name VARCHAR(256), proj4text VARCHAR(2048) NOT NULL)‚ --ƒKtablegeometry_columnsgeometry_columnsCREATE TABLE geometry_columns ( f_table_name VARCHAR(256) NOT NULL, f_geometry_column VARCHAR(256) NOT NULL, type VARCHAR(30) NOT NULL, coord_dimension INTEGER NOT NULL, srid INTEGER, spatial_index_enabled INTEGER NOT NULL)‚11ƒ]tablespatialite_historyspatialite_historyCREATE TABLE spatialite_history ( event_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, table_name TEXT NOT NULL, geometry_column TEXT, event TEXT NOT NULL, timestamp TEXT NOT NULL, ver_sqlite TEXT NOT NULL, ver_splite TEXT NOT NULL) mm¿¿P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)ƒ}--‡-tablelayer_statisticslayer_statisticsCREATE TABLE layer_statistics ( raster_layer INTEGER NOT NULL, table_name TEXT NOT NULL, geometry_column TEXT NOT NULL, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_layer_statistics PRIMARY KEY (raster_layer, table_name, geometry_column), CONSTRAINT fk_layer_statistics FOREIGN KEY (table_name, geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)?S-indexsqlite_autoindex_layer_statistics_1layer_statistics   MM4ƒd99†ctableviews_layer_statisticsviews_layer_statistics CREATE TABLE views_layer_statistics ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_views_layer_statistics PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_views_layer_statistics FOREIGN KEY (view_name, view_geometry) REFERENCES views_geometry_columns (view_name, view_geometry) ON DELETE CASCADE)K_9indexsqlite_autoindex_views_layer_statistics_1views_layer_statistics } #-7indexidx_geocolsgeometry_columns CREATE UNIQUE INDEX idx_geocols ON geometry_columns (f_table_name, f_geometry_column)  ]]¢‚B 1+„3triggerfkd_refsys_geocolsspatial_ref_sysCREATE TRIGGER fkd_refsys_geocols BEFORE DELETE ON spatial_ref_sys FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'delete on table ''spatial_ref_sys'' violates constraint: ''geometry_columns.srid''') WHERE (SELECT srid FROM geometry_columns WHERE srid = OLD.srid) IS NOT NULL; END‚[ 1-„ctriggerfki_geocols_refsysgeometry_columnsCREATE TRIGGER fki_geocols_refsys BEFORE INSERT ON geometry_columns FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'insert on table ''geometry_columns'' violates constraint: ''spatial_ref_sys.srid''') WHERE NEW."srid" IS NOT NULL AND (SELECT srid FROM spatial_ref_sys WHERE srid = NEW.srid) IS NULL; END n¤n‚3 //„viewgeom_cols_ref_sysgeom_cols_ref_sysCREATE VIEW geom_cols_ref_sys AS SELECT f_table_name, f_geometry_column, type, coord_dimension, spatial_ref_sys.srid AS srid, auth_name, auth_srid, ref_sys_name, proj4text FROM geometry_columns, spatial_ref_sys WHERE geometry_columns.srid = spatial_ref_sys.srid‚Y 1-„_triggerfku_geocols_refsysgeometry_columnsCREATE TRIGGER fku_geocols_refsys BEFORE UPDATE ON geometry_columns FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'update on table ''geometry_columns'' violates constraint: ''spatial_ref_sys.srid''') WHERE NEW.srid IS NOT NULL AND (SELECT srid FROM spatial_ref_sys WHERE srid = NEW.srid) IS NULL; ENDlibspatialite-4.3.0a/test/check_math_funcs.c0000664000175000017500000000602512544707704016054 00000000000000/* check_math_funcs.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" static const double double_eps = 0.00000001; int main (int argc, char *argv[]) { double result; sqlite3_int64 result64; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ result = math_round (3.4); if (abs (result - 3) > double_eps) { fprintf (stderr, "bad math_round() result for 3.4: %f\n", result); return -1; } result = math_round (3.6); if (abs (result - 4) > double_eps) { fprintf (stderr, "bad math_round() result for 3.6: %f\n", result); return -2; } result = math_round (-3.4); if (abs (result + 3) > double_eps) { fprintf (stderr, "bad math_round() result for -3.4: %f\n", result); return -3; } result = math_round (-3.6); if (abs (result + 4) > double_eps) { fprintf (stderr, "bad math_round() result for -3.6: %f\n", result); return -4; } result64 = math_llabs ((sqlite3_int64) 26); if (result64 != 26) { fprintf (stderr, "bad math_llabs() result for 26"); return -5; } result64 = math_llabs ((sqlite3_int64) - 26); if (result64 != 26) { fprintf (stderr, "bad math_llabs() result for -26"); return -6; } return 0; } libspatialite-4.3.0a/test/testcase1.xls0000664000175000017500000004100012544707704015040 00000000000000ÐÏࡱá;þÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿ þÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿ » Ìá°Áâ\pCalc B°aÀ=œ¯¼=@ 8Æ@"·Ú1ÈÿArial1ÈÿArial1ÈÿArial1ÈÿArial1&Èÿ Lohit Hindi16ÈÿWenQuanYi Micro Hei ¤GENERAL¥@ ¦DD/MM/YY §HH:MM:SS¨DD/MM/YY\ HH:MMà¤õÿ À àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ àõÿ ôÀ ठÀ à+õÿ ðÀ à)õÿ ðÀ à,õÿ ðÀ à*õÿ ðÀ à õÿ ðÀ ॠÀ ঠÀ à§ À ਠÀ “€ÿ“€ÿ“€ÿ“€ÿ“€ÿ“€ÿ`…`Sheet1…›Sheet2…p1Sheet3Œ==ÁÁTëjðbð( 3 ð¿ À@@ñ  ÷ü½ -CandeloCandelo,Kandelo,0=45;>PPPLAUAustralia/Sydney 2011-08-08CanbraeSFRMAustralia/Brisbane 2011-06-04Canberra„ Camberra,Canberra,Gorad Kanbera,Kamberra,Kambra,Kampera,Kanapera,Kanbera,Kanbero,Kanberra,Kanberrae,Kanbérra,Knapera,kaenbeola,kainabara,kan pei la,kanbra,kanpara,kenabera,kyanabera,kyanbera,kynbra,qnbrh,š±¼À­Á±,>@04 0=15@0,0=15@0,0=15@@æ,0=15@@0,0=1T@0,?avbe|a,çÐàÑâèÐ,çàÑèÔ,C'F(1',©'F(1',©ÌF(1', E ( , G 0 > , H ( , 0 > ,• Í ¯ ¾ ¨ ¬ Ç ° ¾ ,• ¾ © Í ª ° ¾ ,A@-#L#2,AS Tz b ,ÙÐÜÑÔàÐ,«•`+,­0ã0ó0Ù0é0,NWùWÉb,*XùWÉb,”΄¼|·0189?@IJQR\]enrsxy|}€PPLC 2009-08-04 Canbelego Canaway RangeTMTS 1993-12-30 Mount CanawayMTCanary Island SouthAustralia/Melbourne Canary Island Canary CreekHSTM Canara CreekCanally Canal LagoonLGNCanal Creek BoreWLL Canal CreekIDplacenormal alternatelatlonrefWreally long header xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx Populationÿ -€ cc » Ì dü©ñÒMbP?_€%ÿÁ*+‚# &C&"Times New Roman,Normal"&12&A(%&C&"Times New Roman,Normal"&12Page &Pƒ„&333333é?'333333é?(ƒ-Ø‚-Øð?)ƒ-Ø‚-Øð?¡" d‚,,333333é?333333é?U } ” } O} ” H     ~ Ž™„ý ý ý ƒi>"bBÀLàÖݵb@ý ý ý ½  Ú¤ ~ þ ~ bý ý ~ ’™„ý ý :d¯w7<À~ ûèý ý  ý ½ *  ~ ~ Rý  ý  ~ –™„ý  ý  ý  ±ÜÒjH¤AÀ)³A&¤b@ý ý ý ~  ~ R~ † ý ý ~ š™„ý  ý  Æù›PˆÈ:ÀLàÖÝb@ý ý  ý ½ ²  ~ ~  ý  ý  ~ ž™„ý ý ÓŸýH‘?Àú³)"Jb@ý ý ý ½  š· ~ ~ ný ý  ~ ¢™„ý ý  lÊÞ:À”M¹Â»Ûa@ý ý ý ~  ~ ~ ¾ý  ý ~ ¦™„ý ý ~ šÿÿÿ.çR\Uýa@ý ý ý ~  ~ ~ Æý  ý ~ ª™„ý ý fffffBÀ”M¹Â»ûa@ý ý ý ½ v ~ ~ òý ý  ~ ®™„ý ý }–çÁÝýAÀ~ Çàý ý ý ½ v ~ ~ ¦ý ý  ~ ²™„ý ý  Æù›PˆH8À ”M¹Â»“b@ý ý ý ~ ~ ~ vý  ý ~ ¶™„ý ý   lÊÞ]:À Ÿåypwb@ý ý ý ~ ~ ~ 6ý  ý ~ º™„ý ý  š™™™™YAÀ LàÖÝía@ý ý  ý ½  ò  ~ ~ úý ý  ~ ¾™„ý ý  P6å ïN@À l²F=D b@ý ý  ý ½  Ò¶ ~ ~ vý ý  ~ ™„ý ý  ²×»›AÀ š™™™™Ñb@ý ý  ý ~  ~ ~ Æcÿÿý ý ~ Æ™„ý !ý !`“5ê!¢4À~ +Üý ý "ý ~  ~ ~ òý  ý ~ Ê™„ý #ý # lÊÞÝ;Àa†ˆðb@ý ý ý ~  ~ ~ .ý  ý ~ Ι„ý #ý #m9—âªê9ÀŸåypw¯b@ý ý ý ~  ~ ~ ~ý  ý ìPðHðð0ð( ð ð>¶@ggÿÿÿÿ » Ì dü©ñÒMbP?_€%ÿÁ*+‚# &C&"Times New Roman,Normal"&12&A(%&C&"Times New Roman,Normal"&12Page &Pƒ„&333333é?'333333é?(ƒ-Ø‚-Øð?)ƒ-Ø‚-Øð?¡" d,,333333é?333333é?U } ” } 7} ” f     ý $ý %ý &ý 'ý (ý )~ V-² @½^x ý * ÇqÇqÞ? é“>éA×ã@ý +ý ,~ Ž™„ý ý ý ƒi>"bBÀLàÖݵb@ý ý ý ½  Ú¤ ~ þ ~ bý ý ~ ’™„ý ý :d¯w7<À~ ûèý ý  ý ½ *  ~ ~ Rý  ý  ~ –™„ý  ý  ý  ±ÜÒjH¤AÀ)³A&¤b@ý ý ý ~  ~ R~ † ý ý ~ š™„ý  ý  Æù›PˆÈ:ÀLàÖÝb@ý ý  ý ½ ²  ~ ~  ý  ý  ~ ž™„ý ý ÓŸýH‘?Àú³)"Jb@ý ý ý ½  š· ~ ~ ný ý  ~ ¢™„ý ý  lÊÞ:À”M¹Â»Ûa@ý ý ý ~  ~ ~ ¾ý  ý ~ ¦™„ý ý ~ šÿÿÿ.çR\Uýa@ý ý ý ~  ~ ~ Æý  ý ~ ª™„ý ý fffffBÀ”M¹Â»ûa@ý ý ý ½ v ~ ~ òý ý  ~ ®™„ý ý  }–çÁÝýAÀ~ Çàý ý ý ½ v ~ ~ ¦ý ý  ~ ²™„ý ý  Æù›PˆH8À ”M¹Â»“b@ý ý ý ~ ~ ~ vý  ý ~ ¶™„ý ý   lÊÞ]:À Ÿåypwb@ý ý ý ~ ~ ~ 6ý  ý ~ º™„ý ý  š™™™™YAÀ LàÖÝía@ý ý  ý ½  ò  ~ ~ úý ý  ~ ¾™„ý ý  P6å ïN@À l²F=D b@ý ý  ý ½  Ò¶ ~ ~ vý ý  ~ ™„ý ý ²×»›AÀš™™™™Ñb@ý ý  ý ~   ~ ~ Æcÿÿý ý ~ Æ™„ý !ý !`“5ê!¢4À~ +Üý ý "ý ~  ~ ~ òý  ý ~ Ê™„ý #ý # lÊÞÝ;Àa†ˆðb@ý ý ý ~  ~ ~ .ý  ý ~ Ι„ý #ý #m9—âªê9ÀŸåypw¯b@ý ý ý ~  ~ ~ ~ý  ý ~ Ê™„ý #ý # lÊÞÝ;Àa†ˆðb@ý ý ý ~  ~ ~ .ý  ý ~ Ι„ý #ý #m9—âªê9ÀŸåypw¯b@ý ý ý ~  ~ ~ ~ý  ý ìPðH ðð0ð( ð ð>¶@ggÿÿÿÿ » Ì dü©ñÒMbP?_€%Á*+‚# &C&"Times New Roman,Normal"&12&A(%&C&"Times New Roman,Normal"&12Page &Pƒ„&333333é?'333333é?(ƒ-Ø‚-Øð?)ƒ-Ø‚-Øð?¡" d,,333333é?333333é?U } ” ìPðH0ð ð0ð( ð ð >¶@ggÿÿÿÿ þÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ ÿÿÿÿÀFMicrosoft Excel 97-TabelleBiff8þÿà…ŸòùOh«‘+'³Ù0|8 @ L X d péý4@€º@@X ³ùpÌ@€”¸a qÌþÿÕÍÕœ.“—+,ù®0éýRoot EntryÿÿÿÿÿÿÿÿÀFWorkbookÿÿÿÿM3CompObjÿÿÿÿÿÿÿÿIOle ÿÿÿÿÿÿÿÿÿÿÿÿSummaryInformation(ÿÿÿÿÿÿÿÿ¬DocumentSummaryInformation8ÿÿÿÿÿÿÿÿÿÿÿÿHÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿlibspatialite-4.3.0a/test/check_virtual_ovflw.c0000664000175000017500000003037212544707704016632 00000000000000/* check_virtual_ovflw.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; int rows; int columns; int suffix_len = 16 * 1024; /* 16 KB suffix */ char *suffix; char *table; char *sql; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -2; } /* setting up very long table and column names */ suffix = malloc (suffix_len); memset (suffix, 'z', suffix_len); suffix[suffix_len - 1] = '\0'; #ifndef OMIT_FREEXL /* only if FreeXL is supported */ table = sqlite3_mprintf ("xltest_%s", suffix); sql = sqlite3_mprintf ("create VIRTUAL TABLE %s USING VirtualXL(\"testcase1.xls\");", table); ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualXL error: %s\n", err_msg); sqlite3_free (err_msg); return -3; } sql = sqlite3_mprintf ("select col_2, col_4, col_5, col_7, rowid " "from %s WHERE col_2 = \"Canal Creek\";", table); ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } if ((rows != 2) || (columns != 5)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -5; } if (strcmp (results[0], "col_2") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -6; } if (strcmp (results[5], "Canal Creek") != 0) { fprintf (stderr, "Unexpected error: name5() bad result: %s.\n", results[5]); return -7; } if (strncmp (results[6], "-27.86667", 9) != 0) { fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n", results[6]); return -8; } if (strncmp (results[7], "151.51667", 9) != 0) { fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n", results[7]); return -9; } if (strcmp (results[10], "Canal Creek") != 0) { fprintf (stderr, "Unexpected error: name10() bad result: %s.\n", results[10]); return -10; } sqlite3_free_table (results); sqlite3_free (table); #endif /* end FreeXL conditional */ #ifndef OMIT_ICONV /* only if ICONV is supported */ table = sqlite3_mprintf ("shapetest_%s", suffix); sql = sqlite3_mprintf ("create VIRTUAL TABLE %s USING VirtualShape(\"shapetest1\", UTF-8, 4326);", table); ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } sql = sqlite3_mprintf ("SELECT RegisterVirtualGeometry(%Q)", table); ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "RegisterVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -13; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "RegisterVirtualGeometry Unexpected error: header() bad result: %s.\n", results[1]); return -14; } sqlite3_free_table (results); sql = sqlite3_mprintf ("select testcase1, testcase2, AsText(Geometry) from %s where testcase2 < 20;", table); ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -16; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -17; } if (strcmp (results[3], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[3]); return -18; } if (strcmp (results[4], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[4]); return -19; } if (strcmp (results[5], "POINT(3480766.311245 4495355.740524)") != 0) { fprintf (stderr, "Unexpected error: geometry() bad result: %s.\n", results[5]); return -20; } sqlite3_free_table (results); sql = sqlite3_mprintf ("SELECT DropVirtualGeometry(%Q)", table); ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "DropVirtualGeometry error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "DropVirtualGeometry Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -22; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "DropVirtualGeometry Unexpected error: header() bad result: %s.\n", results[0]); return -23; } sqlite3_free_table (results); sql = sqlite3_mprintf ("create VIRTUAL TABLE %s USING VirtualDBF(shapetest1.dbf, UTF-8);", table); ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualDBF error: %s\n", err_msg); sqlite3_free (err_msg); return -24; } sql = sqlite3_mprintf ("select testcase1, testcase2 from %s where testcase2 < 20;", table); ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -25; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -26; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -27; } if (strcmp (results[2], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -28; } if (strcmp (results[3], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -29; } sqlite3_free_table (results); sql = sqlite3_mprintf ("DROP TABLE %s;", table); ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -30; } sqlite3_free (table); #endif /* end ICONV conditional */ sqlite3_close (db_handle); spatialite_cleanup_ex (cache); ret = system ("cp sql_stmt_tests/testdb1.sqlite testdb1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot copy testdb1.sqlite database\n"); return -131; } cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 ("testdb1.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open testdb1.sqlite db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -31; } spatialite_init_ex (db_handle, cache, 0); table = sqlite3_mprintf ("roads_net_%s", suffix); sql = sqlite3_mprintf ("create VIRTUAL TABLE %s USING VirtualNetwork(\"roads_net_data\");", table); ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualNetwork error: %s\n", err_msg); sqlite3_free (err_msg); return -32; } sql = sqlite3_mprintf ("SELECT NodeFrom, NodeTo FROM %s WHERE NodeTo = 29 AND NodeFrom = 32;", table); ret = sqlite3_get_table (db_handle, sql, &results, &rows, &columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -33; } if ((rows != 4) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -34; } if (strcmp (results[0], "NodeFrom") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -35; } if (strcmp (results[2], "32") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -36; } if (strcmp (results[3], "29") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -37; } sqlite3_free_table (results); sql = sqlite3_mprintf ("DROP TABLE %s;", table); ret = sqlite3_exec (db_handle, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -38; } sqlite3_free (table); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); ret = unlink ("testdb1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot remove testdb1 database\n"); return -39; } free (suffix); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_xls_load.c0000664000175000017500000001044712544707704015535 00000000000000/* check_xls_load.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { #ifndef OMIT_FREEXL /* only if FreeXL is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; unsigned int row_count; int rcnt; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } ret = load_XL (handle, "./testcase1.xls", "test1", 0, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_XL() error: %s\n", err_msg); sqlite3_close (handle); return -3; } if (row_count != 17) { fprintf (stderr, "load_XL() unexpected row count: %u\n", row_count); sqlite3_close (handle); return -4; } ret = load_XL (handle, "./testcase1.xls", "test2", 1, 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_XL() error sheet 2: %s\n", err_msg); sqlite3_close (handle); return -5; } if (row_count != 19) { fprintf (stderr, "load_XL() unexpected row count sheet 2: %u\n", row_count); sqlite3_close (handle); return -6; } check_duplicated_rows (handle, "test1", &rcnt); if (rcnt != 0) { fprintf (stderr, "check_duplicated_rows() unexpected duplicate count: %d\n", rcnt); sqlite3_close (handle); return -8; } check_duplicated_rows (handle, "test2", &rcnt); if (rcnt != 2) { fprintf (stderr, "check_duplicated_rows() unexpected duplicate count sheet 2: %d\n", rcnt); sqlite3_close (handle); return -10; } remove_duplicated_rows (handle, "test1"); remove_duplicated_rows (handle, "test2"); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -11; } spatialite_cleanup_ex (cache); #endif /* end FreeXL conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/gpkg_test.gpkg0000664000175000017500000136200012544707704015264 00000000000000SQLite format 3@ WyyîGP10W-æ úùúä‚ Î¤‚¡f„ WGS84epsgæGEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]](5Undefined GeographicNONEUndefined(ÿÿÿÿÿÿÿÿÿ3Undefined CartesianNONEÿUndefinedöYûöÀ¿ !¥üòèݱ»ÆÑÐÆ¼±SH=1]gr}%¨ž”‰øîäÙ¥ test_pk! geo2d geo2dm geo3dz geo3dzm gc3dzm gc3dz gc2dmgc2d mpt2d mpt2dm mpt3dz mpt3dzm mln3dzm mln3dz mln2dm mln2d mpg2d mpg2dm mpg3dz mpg3dzm pg3dzm pg3dz pg2dm pg2d ln3dzm ln3dz ln2dmln2d pt3dzm pt3dz pt2dm pt2d !¥üòèݱ»ÆÑÐÆ¼±SH=1]gr}%¨ž”‰øîäÙ¥ test_pk! geo2d geo2dm geo3dz geo3dzm gc3dzm gc3dz gc2dmgc2d mpt2d mpt2dm mpt3dz mpt3dzm mln3dzm mln3dz mln2dm mln2d mpg2d mpg2dm mpg3dz mpg3dzm pg3dzm pg3dz pg2dm pg2d ln3dzm ln3dz ln2dmln2d pt3dzm pt3dz pt2dm pt2dûgûf !paQ 0@·¨™‰þîÞÍ ,<œ¬¼{l]MóäÕÅtest_pkgeom!geo2dgeom geo2dmgeomgeo3dzgeomgeo3dzmgeomgc3dzmgeomgc3dzgeomgc2dmgeom gc2dgeommpt2dgeommpt2dmgeommpt3dzgeommpt3dzmgeommln3dzmgeommln3dzgeommln2dmgeommln2dgeommpg2dgeommpg2dmgeommpg3dzgeommpg3dzmgeom pg3dzmgeom pg3dzgeom pg2dmgeom pg2dgeom ln3dzmgeomln3dzgeomln2dmgeom ln2dgeompt3dzmgeompt3dzgeompt2dmgeom  pt2dgeom !¥üòèݱ»ÆÑÐÆ¼±SH=1]gr}%¨ž”‰øîäÙ¥ test_pk! geo2d geo2dm geo3dz geo3dzm gc3dzm gc3dz gc2dmgc2d mpt2d mpt2dm mpt3dz mpt3dzm mln3dzm mln3dz mln2dm mln2d mpg2d mpg2dm mpg3dz mpg3dzm pg3dzm pg3dz pg2dm pg2d ln3dzm ln3dz ln2dmln2d pt3dzm pt3dz pt2dm pt2d   Å‚ 55ƒ5tablegpkg_spatial_ref_sysgpkg_spatial_ref_sysCREATE TABLE gpkg_spatial_ref_sys ( srs_name TEXT NOT NULL, srs_id INTEGER NOT NULL PRIMARY KEY, organization TEXT NOT NULL, organization_coordsys_id INTEGER NOT NULL, definition TEXT NOT NULL, description TEXT )ƒ+''†tablegpkg_contentsgpkg_contentsCREATE TABLE gpkg_contents ( table_name TEXT NOT NULL PRIMARY KEY, data_type TEXT NOT NULL, identifier TEXT UNIQUE, description TEXT DEFAULT '', last_change TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ',CURRENT_TIMESTAMP)), min_x DOUBLE, min_y DOUBLE, max_x DOUBLE, max_y DOUBLE, srs_id INTEGER, CONSTRAINT fk_gc_r_srid FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys(srs_id))9M'indexsqlite_autoindex_gpkg_contents_1gpkg_contents 44ojµ9M'indexsqlite_autoindex_gpkg_contents_2gpkg_contentsƒx77‡tablegpkg_geometry_columnsgpkg_geometry_columnsCREATE TABLE gpkg_geometry_columns ( table_name TEXT NOT NULL, column_name TEXT, geometry_type_name TEXT, srs_id INTEGER NOT NULL, z INTEGER NOT NULL, m TINYINT NOT NULL, CONSTRAINT pk_geom_cols PRIMARY KEY (table_name, column_name), CONSTRAINT uk_gc_table_name UNIQUE (table_name), CONSTRAINT fk_gc_tn FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name), CONSTRAINT fk_gc_srs FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys (srs_id))I]7indexsqlite_autoindex_gpkg_geometry_columns_1gpkg_geometry_columnsI]7indexsqlite_autoindex_gpkg_geometry_columns_2gpkg_geometry_columns   >>ç0ƒ&55…otablegpkg_tile_matrix_setgpkg_tile_matrix_set CREATE TABLE gpkg_tile_matrix_set ( table_name TEXT NOT NULL PRIMARY KEY, srs_id INTEGER NOT NULL, min_x DOUBLE NOT NULL, min_y DOUBLE NOT NULL, max_x DOUBLE NOT NULL, max_y DOUBLE NOT NULL, CONSTRAINT fk_gtms_table_name FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name), CONSTRAINT fk_gtms_srs FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys (srs_id))G [5indexsqlite_autoindex_gpkg_tile_matrix_set_1gpkg_tile_matrix_set ƒM --†Mtablegpkg_tile_matrixgpkg_tile_matrixCREATE TABLE gpkg_tile_matrix ( table_name TEXT NOT NULL, zoom_level INTEGER NOT NULL, matrix_width INTEGER NOT NULL, matrix_height INTEGER NOT NULL, tile_width INTEGER NOT NULL, tile_height INTEGER NOT NULL, pixel_x_size DOUBLE NOT NULL, pixel_y_size DOUBLE NOT NULL, CONSTRAINT pk_ttm PRIMARY KEY (table_name, zoom_level), CONSTRAINT fk_tmm_table_name FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name))   ss´Z§? S-indexsqlite_autoindex_gpkg_tile_matrix_1gpkg_tile_matrix‚` //„otablegpkg_data_columnsgpkg_data_columnsCREATE TABLE gpkg_data_columns ( table_name TEXT NOT NULL, column_name TEXT NOT NULL, name TEXT, title TEXT, description TEXT, mime_type TEXT, constraint_name TEXT, CONSTRAINT pk_gdc PRIMARY KEY (table_name, column_name), CONSTRAINT fk_gdc_tn FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name))A U/indexsqlite_autoindex_gpkg_data_columns_1gpkg_data_columns‚JEE„tablegpkg_data_column_constraintsgpkg_data_column_constraintsCREATE TABLE gpkg_data_column_constraints ( constraint_name TEXT NOT NULL, constraint_type TEXT NOT NULL, value TEXT, min NUMERIC, minIsInclusive BOOLEAN, max NUMERIC, maxIsInclusive BOOLEAN, CONSTRAINT gdcc_ntv UNIQUE (constraint_name, constraint_type, value))WkEindexsqlite_autoindex_gpkg_data_column_constraints_1gpkg_data_column_constraints       ÑÑà‚ ''ƒWtablegpkg_metadatagpkg_metadataCREATE TABLE gpkg_metadata ( id INTEGER CONSTRAINT m_pk PRIMARY KEY ASC NOT NULL UNIQUE, md_scope TEXT NOT NULL DEFAULT 'dataset', md_standard_uri TEXT NOT NULL, mime_type TEXT NOT NULL DEFAULT 'text/xml', metadata TEXT NOT NULL)9M'indexsqlite_autoindex_gpkg_metadata_1gpkg_metadataƒb;;†[tablegpkg_metadata_referencegpkg_metadata_referenceCREATE TABLE gpkg_metadata_reference ( reference_scope TEXT NOT NULL, table_name TEXT, column_name TEXT, row_id_value INTEGER, timestamp DATETIME NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ',CURRENT_TIMESTAMP)), md_file_id INTEGER NOT NULL, md_parent_id INTEGER, CONSTRAINT crmr_mfi_fk FOREIGN KEY (md_file_id) REFERENCES gpkg_metadata(id), CONSTRAINT crmr_mpi_fk FOREIGN KEY (md_parent_id) REFERENCES gpkg_metadata(id)) ØRûöñìçâÝØ/X MâB¾7™,q!QP ¬U3Ú¶U…Ý+Ampt3dzmgeomgpkg_geometry_type_trigger=d -pg3dzmgeomgpkg_rtree_index$ ‚-mpg2dgeomgpkg_rtree_index0!3ln2dgeomgpkg_srs_id_trigger 555t³}++ƒ1tablegpkg_extensionsgpkg_extensionsCREATE TABLE gpkg_extensions ( table_name TEXT, column_name TEXT, extension_name TEXT NOT NULL, definition TEXT NOT NULL, scope TEXT NOT NULL, CONSTRAINT ge_tce UNIQUE (table_name, column_name, extension_name))=Q+indexsqlite_autoindex_gpkg_extensions_1gpkg_extensions‚<Q-„triggergpkg_tile_matrix_zoom_level_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_zoom_level_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: zoom_level cannot be less than 0') WHERE (NEW.zoom_level < 0); END‚JQ-„!triggergpkg_tile_matrix_zoom_level_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_zoom_level_update' BEFORE UPDATE of zoom_level ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: zoom_level cannot be less than 0') WHERE (NEW.zoom_level < 0); END ^µ‚DU-„triggergpkg_tile_matrix_matrix_width_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_matrix_width_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: matrix_width cannot be less than 1') WHERE (NEW.matrix_width < 1); END‚TU-„1triggergpkg_tile_matrix_matrix_width_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_matrix_width_update' BEFORE UPDATE OF matrix_width ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: matrix_width cannot be less than 1') WHERE (NEW.matrix_width < 1); END‚HW-„triggergpkg_tile_matrix_matrix_height_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_matrix_height_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: matrix_height cannot be less than 1') WHERE (NEW.matrix_height < 1); END XX´‚YW-„9triggergpkg_tile_matrix_matrix_height_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_matrix_height_update' BEFORE UPDATE OF matrix_height ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: matrix_height cannot be less than 1') WHERE (NEW.matrix_height < 1); END‚IU-„triggergpkg_tile_matrix_pixel_x_size_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_pixel_x_size_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: pixel_x_size must be greater than 0') WHERE NOT (NEW.pixel_x_size > 0); END XX´‚YU-„;triggergpkg_tile_matrix_pixel_x_size_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_pixel_x_size_update' BEFORE UPDATE OF pixel_x_size ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: pixel_x_size must be greater than 0') WHERE NOT (NEW.pixel_x_size > 0); END‚IU-„triggergpkg_tile_matrix_pixel_y_size_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_pixel_y_size_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: pixel_y_size must be greater than 0') WHERE NOT (NEW.pixel_y_size > 0); END ¤¤‚YU-„;triggergpkg_tile_matrix_pixel_y_size_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_pixel_y_size_update' BEFORE UPDATE OF pixel_y_size ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: pixel_y_size must be greater than 0') WHERE NOT (NEW.pixel_y_size > 0); END ôô† G'‹/triggergpkg_metadata_md_scope_insertgpkg_metadataCREATE TRIGGER 'gpkg_metadata_md_scope_insert' BEFORE INSERT ON 'gpkg_metadata' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table gpkg_metadata violates constraint: md_scope must be one of undefined | fieldSession | collectionSession | series | dataset | featureType | feature | attributeType | attribute | tile | model | catalog | schema | taxonomy | software | service | collectionHardware | nonGeographicDataset | dimensionGroup') WHERE NOT(NEW.md_scope IN ('undefined','fieldSession','collectionSession','series','dataset', 'featureType','feature','attributeType','attribute','tile','model', 'catalog','schema','taxonomy','software','service', 'collectionHardware','nonGeographicDataset','dimensionGroup')); END ææ† G'‹Ktriggergpkg_metadata_md_scope_updategpkg_metadataCREATE TRIGGER 'gpkg_metadata_md_scope_update' BEFORE UPDATE OF 'md_scope' ON 'gpkg_metadata' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table gpkg_metadata violates constraint: md_scope must be one of undefined | fieldSession | collectionSession | series | dataset | featureType | feature | attributeType | attribute | tile | model | catalog | schema | taxonomy | software | service | collectionHardware | nonGeographicDataset | dimensionGroup') WHERE NOT(NEW.md_scope IN ('undefined','fieldSession','collectionSession','series','dataset', 'featureType','feature','attributeType','attribute','tile','model', 'catalog','schema','taxonomy','software','service', 'collectionHardware','nonGeographicDataset','dimensionGroup')); END OOƒK!i;…}triggergpkg_metadata_reference_reference_scope_insertgpkg_metadata_referenceCREATE TRIGGER 'gpkg_metadata_reference_reference_scope_insert' BEFORE INSERT ON 'gpkg_metadata_reference' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: reference_scope must be one of "geopackage", "table", "column", "row", "row/col"') WHERE NOT NEW.reference_scope IN ('geopackage','table','column','row','row/col'); ENDƒ`"i;†'triggergpkg_metadata_reference_reference_scope_updategpkg_metadata_referenceCREATE TRIGGER 'gpkg_metadata_reference_reference_scope_update' BEFORE UPDATE OF 'reference_scope' ON 'gpkg_metadata_reference' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: reference_scope must be one of "geopackage", "table", "column", "row", "row/col"') WHERE NOT NEW.reference_scope IN ('geopackage','table','column','row','row/col'); END ®®†O#a;Œ triggergpkg_metadata_reference_column_name_insertgpkg_metadata_referenceCREATE TRIGGER 'gpkg_metadata_reference_column_name_insert' BEFORE INSERT ON 'gpkg_metadata_reference' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: column name must be NULL when reference_scope is "geopackage", "table" or "row"') WHERE (NEW.reference_scope IN ('geopackage','table','row') AND NEW.column_name IS NOT NULL); SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: column name must be defined for the specified table when reference_scope is "column" or "row/col"') WHERE (NEW.reference_scope IN ('column','row/col') AND NOT NEW.table_name IN (SELECT name FROM SQLITE_MASTER WHERE type = 'table' AND name = NEW.table_name AND sql LIKE ('%' || NEW.column_name || '%'))); END   †]$a;Œ)triggergpkg_metadata_reference_column_name_updategpkg_metadata_referenceCREATE TRIGGER 'gpkg_metadata_reference_column_name_update' BEFORE UPDATE OF column_name ON 'gpkg_metadata_reference' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: column name must be NULL when reference_scope is "geopackage", "table" or "row"') WHERE (NEW.reference_scope IN ('geopackage','table','row') AND NEW.column_nameIS NOT NULL); SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: column name must be defined for the specified table when reference_scope is "column" or "row/col"') WHERE (NEW.reference_scope IN ('column','row/col') AND NOT NEW.table_name IN (SELECT name FROM SQLITE_MASTER WHERE type = 'table' AND name = NEW.table_name AND sql LIKE ('%' || NEW.column_name || '%'))); END ææ†%c;‹triggergpkg_metadata_reference_row_id_value_insertgpkg_metadata_referenceCREATE TRIGGER 'gpkg_metadata_reference_row_id_value_insert' BEFORE INSERT ON 'gpkg_metadata_reference' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: row_id_value must be NULL when reference_scope is "geopackage", "table" or "column"') WHERE NEW.reference_scope IN ('geopackage','table','column') AND NEW.row_id_value IS NOT NULL; SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: row_id_value must exist in specified table when reference_scope is "row" or "row/col"') WHERE NEW.reference_scope IN ('row','row/col') AND NOT EXISTS (SELECT rowid FROM (SELECT NEW.table_name AS table_name) WHERE rowid = NEW.row_id_value); END ÔÔ†)&c;‹?triggergpkg_metadata_reference_row_id_value_updategpkg_metadata_referenceCREATE TRIGGER 'gpkg_metadata_reference_row_id_value_update' BEFORE UPDATE OF 'row_id_value' ON 'gpkg_metadata_reference' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: row_id_value must be NULL when reference_scope is "geopackage", "table" or "column"') WHERE NEW.reference_scope IN ('geopackage','table','column') AND NEW.row_id_value IS NOT NULL; SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: row_id_value must exist in specified table when reference_scope is "row" or "row/col"') WHERE NEW.reference_scope IN ('row','row/col') AND NOT EXISTS (SELECT rowid FROM (SELECT NEW.table_name AS table_name) WHERE rowid = NEW.row_id_value); END íí„'];‡triggergpkg_metadata_reference_timestamp_insertgpkg_metadata_referenceCREATE TRIGGER 'gpkg_metadata_reference_timestamp_insert' BEFORE INSERT ON 'gpkg_metadata_reference' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: timestamp must be a valid time in ISO 8601 "yyyy-mm-ddThh-mm-ss.cccZ" form') WHERE NOT (NEW.timestamp GLOB '[1-2][0-9][0-9][0-9]-[0-1][0-9]-[1-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]Z' AND strftime('%s',NEW.timestamp) NOT NULL); END ŸŸÁ„(];‡1triggergpkg_metadata_reference_timestamp_updategpkg_metadata_referenceCREATE TRIGGER 'gpkg_metadata_reference_timestamp_update' BEFORE UPDATE OF 'timestamp' ON 'gpkg_metadata_reference' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: timestamp must be a valid time in ISO 8601 "yyyy-mm-ddThh-mm-ss.cccZ" form') WHERE NOT (NEW.timestamp GLOB '[1-2][0-9][0-9][0-9]-[0-1][0-9]-[1-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]Z' AND strftime('%s',NEW.timestamp) NOT NULL); END‚<)I7„triggergpkg_geometry_columns_z_insertgpkg_geometry_columnsCREATE TRIGGER 'gpkg_geometry_columns_z_insert' BEFORE INSERT ON 'gpkg_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table gpkg_geometry_columns violates constraint: z must be one of 0, 1 or 2') WHERE NOT(NEW.z IN (0, 1, 2)); END 77|»‚B*I7„triggergpkg_geometry_columns_z_updategpkg_geometry_columnsCREATE TRIGGER 'gpkg_geometry_columns_z_update' BEFORE UPDATE OF 'z' ON 'gpkg_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table gpkg_geometry_columns violates constraint: z must be one of 0, 1 or 2') WHERE NOT NEW.z IN (0, 1, 2); END‚<+I7„triggergpkg_geometry_columns_m_insertgpkg_geometry_columnsCREATE TRIGGER 'gpkg_geometry_columns_m_insert' BEFORE INSERT ON 'gpkg_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table gpkg_geometry_columns violates constraint: m must be one of 0, 1 or 2') WHERE NOT(NEW.m IN (0, 1, 2)); END‚B,I7„triggergpkg_geometry_columns_m_updategpkg_geometry_columnsCREATE TRIGGER 'gpkg_geometry_columns_m_update' BEFORE UPDATE OF 'm' ON 'gpkg_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table gpkg_geometry_columns violates constraint: m must be one of 0, 1 or 2') WHERE NOT NEW.m IN (0, 1, 2); END ·o& deltaGgammaGPæš™™™™™ù?š™™™™™ù?@@š™™™™™ù?@FbetaGPæš™™™™™ù?š™™™™™ù?ÍÌÌÌÌÌ@ÍÌÌÌÌÌ@š™™™™™ù?ÍÌÌÌÌÌ@GalphaGPæš™™™™™ñ?š™™™™™ñ?š™™™™™ñ?š™™™™™ñ?š™™™™™ñ?š™™™™™ñ? ƒƒ-‚tablept2dpt2d*CREATE TABLE "pt2d" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_pt2d" PRIMARY KEY ("id"))ƒe.)‡triggerfgti_pt2d_geompt2dCREATE TRIGGER "fgti_pt2d_geom" BEFORE INSERT ON "pt2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "pt2d" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END mmiƒy/)‡?triggerfgtu_pt2d_geompt2dCREATE TRIGGER "fgtu_pt2d_geom" BEFORE UPDATE OF "geom" ON "pt2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "pt2d" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒ0)…utriggerfgsi_pt2d_geompt2dCREATE TRIGGER "fgsi_pt2d_geom" BEFORE INSERT ON "pt2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "pt2d" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END ƒ(1)†triggerfgsu_pt2d_geompt2dCREATE TRIGGER "fgsu_pt2d_geom" BEFORE UPDATE OF "geom" ON "pt2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "pt2d" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END‚;29„3triggerrtree_pt2d_geom_insertpt2dCREATE TRIGGER "rtree_pt2d_geom_insert" AFTER INSERT ON "pt2d" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_pt2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END ››ÿ‚a3;„}triggerrtree_pt2d_geom_update1pt2dCREATE TRIGGER "rtree_pt2d_geom_update1" AFTER UPDATE OF "geom" ON "pt2d" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_pt2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END~4;ƒ7triggerrtree_pt2d_geom_update2pt2dCREATE TRIGGER "rtree_pt2d_geom_update2" AFTER UPDATE OF "geom" ON "pt2d" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pt2d_geom" WHERE id = OLD.ROWID; END ¢¢;Aƒ5;…gtriggerrtree_pt2d_geom_update3pt2dCREATE TRIGGER "rtree_pt2d_geom_update3" AFTER UPDATE OF "geom" ON "pt2d" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pt2d_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_pt2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚6;ƒAtriggerrtree_pt2d_geom_update4pt2dCREATE TRIGGER "rtree_pt2d_geom_update4" AFTER UPDATE ON "pt2d" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pt2d_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); END<79‚5triggerrtree_pt2d_geom_deletept2dCREATE TRIGGER "rtree_pt2d_geom_delete" AFTER DELETE ON "pt2d"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_pt2d_geom" WHERE id = OLD.ROWID; END 99‡D ?ŒÌÌ?ŒÌÍ?ŒÌÌ?ŒÌÍ?ÌÌË?ÌÌÍ@ff@fg?ÌÌË?ÌÌÍ@ @ RRÌMÖgx8++)tablertree_pt2d_geomrtree_pt2d_geomCREATE VIRTUAL TABLE "rtree_pt2d_geom" USING rtree(id, minx, maxx, miny, maxy)955!tablertree_pt2d_geom_nodertree_pt2d_geom_node0CREATE TABLE "rtree_pt2d_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB):77+tablertree_pt2d_geom_rowidrtree_pt2d_geom_rowid2CREATE TABLE "rtree_pt2d_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER);997tablertree_pt2d_geom_parentrtree_pt2d_geom_parent3CREATE TABLE "rtree_pt2d_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)<‚ tablept2dmpt2dm4CREATE TABLE "pt2dm" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_pt2dm" PRIMARY KEY ("id")) ñûöñ    ¯¤TOgammaGPæš™™™™™ñ?š™™™™™ñ?š™™™™™ñ?š™™™™™ñ?Ñš™™™™™ñ?š™™™™™ñ?$@NbetaGPæÍÌÌÌÌÌô?ÍÌÌÌÌÌô?ÍÌÌÌÌÌô?ÍÌÌÌÌÌô?ÑÍÌÌÌÌÌô?ÍÌÌÌÌÌô?&@ deltaOalphaGPæš™™™™™ù?š™™™™™ù?333333ó?333333ó?Ñš™™™™™ù?333333ó?"@ ÿƒj=+‡triggerfgti_pt2dm_geompt2dmCREATE TRIGGER "fgti_pt2dm_geom" BEFORE INSERT ON "pt2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "pt2dm" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒ~>+‡Etriggerfgtu_pt2dm_geompt2dmCREATE TRIGGER "fgtu_pt2dm_geom" BEFORE UPDATE OF "geom" ON "pt2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "pt2dm" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END ´´Pƒ?+…{triggerfgsi_pt2dm_geompt2dmCREATE TRIGGER "fgsi_pt2dm_geom" BEFORE INSERT ON "pt2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "pt2dm" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); ENDƒ-@+†#triggerfgsu_pt2dm_geompt2dmCREATE TRIGGER "fgsu_pt2dm_geom" BEFORE UPDATE OF "geom" ON "pt2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "pt2dm" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END NN‘ú‚@A;„9triggerrtree_pt2dm_geom_insertpt2dmCREATE TRIGGER "rtree_pt2dm_geom_insert" AFTER INSERT ON "pt2dm" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_pt2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚fB=…triggerrtree_pt2dm_geom_update1pt2dmCREATE TRIGGER "rtree_pt2dm_geom_update1" AFTER UPDATE OF "geom" ON "pt2dm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_pt2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚C=ƒ=triggerrtree_pt2dm_geom_update2pt2dmCREATE TRIGGER "rtree_pt2dm_geom_update2" AFTER UPDATE OF "geom" ON "pt2dm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pt2dm_geom" WHERE id = OLD.ROWID; END ’’1<ƒD=…otriggerrtree_pt2dm_geom_update3pt2dmCREATE TRIGGER "rtree_pt2dm_geom_update3" AFTER UPDATE OF "geom" ON "pt2dm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pt2dm_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_pt2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚E=ƒGtriggerrtree_pt2dm_geom_update4pt2dmCREATE TRIGGER "rtree_pt2dm_geom_update4" AFTER UPDATE ON "pt2dm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pt2dm_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDAF;‚;triggerrtree_pt2dm_geom_deletept2dmCREATE TRIGGER "rtree_pt2dm_geom_delete" AFTER DELETE ON "pt2dm"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_pt2dm_geom" WHERE id = OLD.ROWID; END 99‡D ?ÌÌË?ÌÌÍ?™™˜?™™š?¦ff?¦fh?¦ff?¦fh?ŒÌÌ?ŒÌÍ?ŒÌÌ?ŒÌÍ EEÂGÓg{G--+tablertree_pt2dm_geomrtree_pt2dm_geomCREATE VIRTUAL TABLE "rtree_pt2dm_geom" USING rtree(id, minx, maxx, miny, maxy)H77#tablertree_pt2dm_geom_nodertree_pt2dm_geom_node9CREATE TABLE "rtree_pt2dm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) I99-tablertree_pt2dm_geom_rowidrtree_pt2dm_geom_rowid;CREATE TABLE "rtree_pt2dm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)J;;9tablertree_pt2dm_geom_parentrtree_pt2dm_geom_parent srs_id); ENDƒ-O+†#triggerfgsu_pt3dz_geompt3dzCREATE TRIGGER "fgsu_pt3dz_geom" BEFORE UPDATE OF "geom" ON "pt3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "pt3dz" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END NN‘ú‚@P;„9triggerrtree_pt3dz_geom_insertpt3dzCREATE TRIGGER "rtree_pt3dz_geom_insert" AFTER INSERT ON "pt3dz" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_pt3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚fQ=…triggerrtree_pt3dz_geom_update1pt3dzCREATE TRIGGER "rtree_pt3dz_geom_update1" AFTER UPDATE OF "geom" ON "pt3dz" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_pt3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚R=ƒ=triggerrtree_pt3dz_geom_update2pt3dzCREATE TRIGGER "rtree_pt3dz_geom_update2" AFTER UPDATE OF "geom" ON "pt3dz" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pt3dz_geom" WHERE id = OLD.ROWID; END ’’1<ƒS=…otriggerrtree_pt3dz_geom_update3pt3dzCREATE TRIGGER "rtree_pt3dz_geom_update3" AFTER UPDATE OF "geom" ON "pt3dz" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pt3dz_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_pt3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚T=ƒGtriggerrtree_pt3dz_geom_update4pt3dzCREATE TRIGGER "rtree_pt3dz_geom_update4" AFTER UPDATE ON "pt3dz" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pt3dz_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDAU;‚;triggerrtree_pt3dz_geom_deletept3dzCREATE TRIGGER "rtree_pt3dz_geom_delete" AFTER DELETE ON "pt3dz"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_pt3dz_geom" WHERE id = OLD.ROWID; END 99‡D ?ÌÌË?ÌÌÍ?™™˜?™™š?ÌÌË?ÌÌÍ@ ÌÌ@ ÌÍ@&ff@&fh@ ÌÌ@ ÌÍ AA¾CÏc{V--+tablertree_pt3dz_geomrtree_pt3dz_geomCREATE VIRTUAL TABLE "rtree_pt3dz_geom" USING rtree(id, minx, maxx, miny, maxy)W77#tablertree_pt3dz_geom_nodertree_pt3dz_geom_nodeBCREATE TABLE "rtree_pt3dz_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) X99-tablertree_pt3dz_geom_rowidrtree_pt3dz_geom_rowidDCREATE TABLE "rtree_pt3dz_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)Y;;9tablertree_pt3dz_geom_parentrtree_pt3dz_geom_parentECREATE TABLE "rtree_pt3dz_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)Z‚tablept3dzmpt3dzmFCREATE TABLE "pt3dzm" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_pt3dzm" PRIMARY KEY ("id")) ñûöñ    ë§Oöë deltaW&gammaGPæffffff@ffffff@š™™™™™ @š™™™™™ @¹ ffffff@š™™™™™ @@@V&betaGPæš™™™™™ù?š™™™™™ù?š™™™™™ @š™™™™™ @¹ š™™™™™ù?š™™™™™ @@@W&alphaGPæÍÌÌÌÌÌ@ÍÌÌÌÌÌ@š™™™™™@š™™™™™@¹ ÍÌÌÌÌÌ@š™™™™™@&@@ ƒo[-‡#triggerfgti_pt3dzm_geompt3dzmCREATE TRIGGER "fgti_pt3dzm_geom" BEFORE INSERT ON "pt3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "pt3dzm" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END YY_„\-‡Ktriggerfgtu_pt3dzm_geompt3dzmCREATE TRIGGER "fgtu_pt3dzm_geom" BEFORE UPDATE OF "geom" ON "pt3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "pt3dzm" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒ]-†triggerfgsi_pt3dzm_geompt3dzmCREATE TRIGGER "fgsi_pt3dzm_geom" BEFORE INSERT ON "pt3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "pt3dzm" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END ¸ƒ2^-†)triggerfgsu_pt3dzm_geompt3dzmCREATE TRIGGER "fgsu_pt3dzm_geom" BEFORE UPDATE OF "geom" ON "pt3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "pt3dzm" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END‚E_=„?triggerrtree_pt3dzm_geom_insertpt3dzmCREATE TRIGGER "rtree_pt3dzm_geom_insert" AFTER INSERT ON "pt3dzm" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_pt3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END ‡‡õ‚k`?… triggerrtree_pt3dzm_geom_update1pt3dzmCREATE TRIGGER "rtree_pt3dzm_geom_update1" AFTER UPDATE OF "geom" ON "pt3dzm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_pt3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚a?ƒCtriggerrtree_pt3dzm_geom_update2pt3dzmCREATE TRIGGER "rtree_pt3dzm_geom_update2" AFTER UPDATE OF "geom" ON "pt3dzm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pt3dzm_geom" WHERE id = OLD.ROWID; END ‚‚'7ƒ"b?…wtriggerrtree_pt3dzm_geom_update3pt3dzmCREATE TRIGGER "rtree_pt3dzm_geom_update3" AFTER UPDATE OF "geom" ON "pt3dzm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pt3dzm_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_pt3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚ c?ƒMtriggerrtree_pt3dzm_geom_update4pt3dzmCREATE TRIGGER "rtree_pt3dzm_geom_update4" AFTER UPDATE ON "pt3dzm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pt3dzm_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDFd=‚Atriggerrtree_pt3dzm_geom_deletept3dzmCREATE TRIGGER "rtree_pt3dzm_geom_delete" AFTER DELETE ON "pt3dzm"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_pt3dzm_geom" WHERE id = OLD.ROWID; END ==½EÔk~e//-tablertree_pt3dzm_geomrtree_pt3dzm_geomCREATE VIRTUAL TABLE "rtree_pt3dzm_geom" USING rtree(id, minx, maxx, miny, maxy)f99%tablertree_pt3dzm_geom_nodertree_pt3dzm_geom_nodeMCREATE TABLE "rtree_pt3dzm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) g;;/tablertree_pt3dzm_geom_rowidrtree_pt3dzm_geom_rowidNCREATE TABLE "rtree_pt3dzm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)h==;tablertree_pt3dzm_geom_parentrtree_pt3dzm_geom_parentOCREATE TABLE "rtree_pt3dzm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)i‚tableln2dln2dRCREATE TABLE "ln2d" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_ln2d" PRIMARY KEY ("id")) 99‡D @&ff@&fh@ ÌÌ@ ÌÍ?ÌÌË?ÌÌÍ@LÌË@LÌÍ@³33@³35@LÌË@LÌÍ ñûöñ    h¨W °^¶d»hQ 3U!pt3dzmgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyX AU!pt3dzmgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyM -U!pt3dzgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyP3U!pt3dzgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyWAU!pt3dzgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyM-U!pt2dmgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyP3U!pt2dmgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyWAU!pt2dmgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyL-U!pt2dgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyO3U!pt2dgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyVAU!pt2dgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-only k°X¹`¿fÅkXAU!ln3dzmgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyM-U!ln3dzgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyP3U!ln3dzgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyWAU!ln3dzgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyM-U!ln2dmgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyP3U!ln2dmgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyWAU!ln2dmgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyL-U!ln2dgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyO3U!ln2dgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyV AU!ln2dgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyN -U!pt3dzmgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-only Ï£7ÚÏ delta[.gammaGPæð?ð?ð?ð?jNbetaGPæð?$@ð?$@$@ð?$@$@ð?$@[.alphaGPæð?@ð?@ð?ð?@@ ƒej)‡triggerfgti_ln2d_geomln2dCREATE TRIGGER "fgti_ln2d_geom" BEFORE INSERT ON "ln2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "ln2d" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒyk)‡?triggerfgtu_ln2d_geomln2dCREATE TRIGGER "fgtu_ln2d_geom" BEFORE UPDATE OF "geom" ON "ln2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "ln2d" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END ¾¾Uƒl)…utriggerfgsi_ln2d_geomln2dCREATE TRIGGER "fgsi_ln2d_geom" BEFORE INSERT ON "ln2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "ln2d" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); ENDƒ(m)†triggerfgsu_ln2d_geomln2dCREATE TRIGGER "fgsu_ln2d_geom" BEFORE UPDATE OF "geom" ON "ln2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "ln2d" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END ]]›ÿ‚;n9„3triggerrtree_ln2d_geom_insertln2dCREATE TRIGGER "rtree_ln2d_geom_insert" AFTER INSERT ON "ln2d" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_ln2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚ao;„}triggerrtree_ln2d_geom_update1ln2dCREATE TRIGGER "rtree_ln2d_geom_update1" AFTER UPDATE OF "geom" ON "ln2d" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_ln2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END~p;ƒ7triggerrtree_ln2d_geom_update2ln2dCREATE TRIGGER "rtree_ln2d_geom_update2" AFTER UPDATE OF "geom" ON "ln2d" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_ln2d_geom" WHERE id = OLD.ROWID; END ¢¢;Aƒq;…gtriggerrtree_ln2d_geom_update3ln2dCREATE TRIGGER "rtree_ln2d_geom_update3" AFTER UPDATE OF "geom" ON "ln2d" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_ln2d_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_ln2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚r;ƒAtriggerrtree_ln2d_geom_update4ln2dCREATE TRIGGER "rtree_ln2d_geom_update4" AFTER UPDATE ON "ln2d" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_ln2d_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); END srs_id); ENDƒ-|+†#triggerfgsu_ln2dm_geomln2dmCREATE TRIGGER "fgsu_ln2dm_geom" BEFORE UPDATE OF "geom" ON "ln2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "ln2dm" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END NN‘ú‚@};„9triggerrtree_ln2dm_geom_insertln2dmCREATE TRIGGER "rtree_ln2dm_geom_insert" AFTER INSERT ON "ln2dm" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_ln2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚f~=…triggerrtree_ln2dm_geom_update1ln2dmCREATE TRIGGER "rtree_ln2dm_geom_update1" AFTER UPDATE OF "geom" ON "ln2dm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_ln2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚=ƒ=triggerrtree_ln2dm_geom_update2ln2dmCREATE TRIGGER "rtree_ln2dm_geom_update2" AFTER UPDATE OF "geom" ON "ln2dm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_ln2dm_geom" WHERE id = OLD.ROWID; END /;ƒ=…otriggerrtree_ln2dm_geom_update3ln2dmCREATE TRIGGER "rtree_ln2dm_geom_update3" AFTER UPDATE OF "geom" ON "ln2dm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_ln2dm_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_ln2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚=ƒGtriggerrtree_ln2dm_geom_update4ln2dmCREATE TRIGGER "rtree_ln2dm_geom_update4" AFTER UPDATE ON "ln2dm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_ln2dm_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDA;‚;triggerrtree_ln2dm_geom_deleteln2dmCREATE TRIGGER "rtree_ln2dm_geom_delete" AFTER DELETE ON "ln2dm"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_ln2dm_geom" WHERE id = OLD.ROWID; END 99‡D ?€?€@ @ ??™š??™š @@¾DÑf{--+tablertree_ln2dm_geomrtree_ln2dm_geomCREATE VIRTUAL TABLE "rtree_ln2dm_geom" USING rtree(id, minx, maxx, miny, maxy)77#tablertree_ln2dm_geom_nodertree_ln2dm_geom_node`CREATE TABLE "rtree_ln2dm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) 99-tablertree_ln2dm_geom_rowidrtree_ln2dm_geom_rowidbCREATE TABLE "rtree_ln2dm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER);;9tablertree_ln2dm_geom_parentrtree_ln2dm_geom_parentcCREATE TABLE "rtree_ln2dm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)‚ tableln3dzln3dzdCREATE TABLE "ln3dz" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_ln3dz" PRIMARY KEY ("id")) ñûöñ    –“¡– deltakNgammaGPæ$@$@ê$@ð?$@@~betaGPæ@@@$@ê@@$@@@ @@$@@kNalphaGPæà?333333ã?à?333333ã?êà?à?$@333333ã?333333ã?@ þƒj+‡triggerfgti_ln3dz_geomln3dzCREATE TRIGGER "fgti_ln3dz_geom" BEFORE INSERT ON "ln3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "ln3dz" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒ~ +‡Etriggerfgtu_ln3dz_geomln3dzCREATE TRIGGER "fgtu_ln3dz_geom" BEFORE UPDATE OF "geom" ON "ln3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "ln3dz" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END ²²Oƒ +…{triggerfgsi_ln3dz_geomln3dzCREATE TRIGGER "fgsi_ln3dz_geom" BEFORE INSERT ON "ln3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "ln3dz" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); ENDƒ- +†#triggerfgsu_ln3dz_geomln3dzCREATE TRIGGER "fgsu_ln3dz_geom" BEFORE UPDATE OF "geom" ON "ln3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "ln3dz" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END KKù‚@ ;„9triggerrtree_ln3dz_geom_insertln3dzCREATE TRIGGER "rtree_ln3dz_geom_insert" AFTER INSERT ON "ln3dz" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_ln3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚f =…triggerrtree_ln3dz_geom_update1ln3dzCREATE TRIGGER "rtree_ln3dz_geom_update1" AFTER UPDATE OF "geom" ON "ln3dz" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_ln3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚=ƒ=triggerrtree_ln3dz_geom_update2ln3dzCREATE TRIGGER "rtree_ln3dz_geom_update2" AFTER UPDATE OF "geom" ON "ln3dz" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_ln3dz_geom" WHERE id = OLD.ROWID; END /;ƒ=…otriggerrtree_ln3dz_geom_update3ln3dzCREATE TRIGGER "rtree_ln3dz_geom_update3" AFTER UPDATE OF "geom" ON "ln3dz" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_ln3dz_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_ln3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚=ƒGtriggerrtree_ln3dz_geom_update4ln3dzCREATE TRIGGER "rtree_ln3dz_geom_update4" AFTER UPDATE ON "ln3dz" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_ln3dz_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDA;‚;triggerrtree_ln3dz_geom_deleteln3dzCREATE TRIGGER "rtree_ln3dz_geom_delete" AFTER DELETE ON "ln3dz"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_ln3dz_geom" WHERE id = OLD.ROWID; END 99‡D ??™š??™š@€@À@ A A A <<º@Íb{--+tablertree_ln3dz_geomrtree_ln3dz_geomCREATE VIRTUAL TABLE "rtree_ln3dz_geom" USING rtree(id, minx, maxx, miny, maxy)77#tablertree_ln3dz_geom_nodertree_ln3dz_geom_nodeiCREATE TABLE "rtree_ln3dz_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) 99-tablertree_ln3dz_geom_rowidrtree_ln3dz_geom_rowidkCREATE TABLE "rtree_ln3dz_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER);;9tablertree_ln3dz_geom_parentrtree_ln3dz_geom_parentlCREATE TABLE "rtree_ln3dz_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)‚tableln3dzmln3dzmmCREATE TABLE "ln3dzm" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_ln3dzm" PRIMARY KEY ("id")) ñûöñ    ^ƒæi^ delta{ngammaGPæ$@$@º $@ð?@$@@@‚.betaGPæ$@$@º ð?@$@@@$@$@@@{nalphaGPæ$@$@º ð?@$@$@@@   ƒo-‡#triggerfgti_ln3dzm_geomln3dzmCREATE TRIGGER "fgti_ln3dzm_geom" BEFORE INSERT ON "ln3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "ln3dzm" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END WW^„-‡Ktriggerfgtu_ln3dzm_geomln3dzmCREATE TRIGGER "fgtu_ln3dzm_geom" BEFORE UPDATE OF "geom" ON "ln3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "ln3dzm" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒ-†triggerfgsi_ln3dzm_geomln3dzmCREATE TRIGGER "fgsi_ln3dzm_geom" BEFORE INSERT ON "ln3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "ln3dzm" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END ·ƒ2-†)triggerfgsu_ln3dzm_geomln3dzmCREATE TRIGGER "fgsu_ln3dzm_geom" BEFORE UPDATE OF "geom" ON "ln3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "ln3dzm" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END‚E=„?triggerrtree_ln3dzm_geom_insertln3dzmCREATE TRIGGER "rtree_ln3dzm_geom_insert" AFTER INSERT ON "ln3dzm" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_ln3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END r­]´f »lÁrM!-U!pg3dzgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyP 3U!pg3dzgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyWAU!pg3dzgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyM-U!pg2dmgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyP3U!pg2dmgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyWAU!pg2dmgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyL-U!pg2dgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyO3U!pg2dgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyVAU!pg2dgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyN-U!ln3dzmgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyQ3U!ln3dzmgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-only ……ô‚k?… triggerrtree_ln3dzm_geom_update1ln3dzmCREATE TRIGGER "rtree_ln3dzm_geom_update1" AFTER UPDATE OF "geom" ON "ln3dzm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_ln3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚?ƒCtriggerrtree_ln3dzm_geom_update2ln3dzmCREATE TRIGGER "rtree_ln3dzm_geom_update2" AFTER UPDATE OF "geom" ON "ln3dzm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_ln3dzm_geom" WHERE id = OLD.ROWID; END %6ƒ"?…wtriggerrtree_ln3dzm_geom_update3ln3dzmCREATE TRIGGER "rtree_ln3dzm_geom_update3" AFTER UPDATE OF "geom" ON "ln3dzm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_ln3dzm_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_ln3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚ ?ƒMtriggerrtree_ln3dzm_geom_update4ln3dzmCREATE TRIGGER "rtree_ln3dzm_geom_update4" AFTER UPDATE ON "ln3dzm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_ln3dzm_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDF =‚Atriggerrtree_ln3dzm_geom_deleteln3dzmCREATE TRIGGER "rtree_ln3dzm_geom_delete" AFTER DELETE ON "ln3dzm"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_ln3dzm_geom" WHERE id = OLD.ROWID; END 88¹BÒj~!//-tablertree_ln3dzm_geomrtree_ln3dzm_geomCREATE VIRTUAL TABLE "rtree_ln3dzm_geom" USING rtree(id, minx, maxx, miny, maxy)"99%tablertree_ln3dzm_geom_nodertree_ln3dzm_geom_nodeuCREATE TABLE "rtree_ln3dzm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) #;;/tablertree_ln3dzm_geom_rowidrtree_ln3dzm_geom_rowidvCREATE TABLE "rtree_ln3dzm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)$==;tablertree_ln3dzm_geom_parentrtree_ln3dzm_geom_parentwCREATE TABLE "rtree_ln3dzm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)%‚tablepg2dpg2dxCREATE TABLE "pg2d" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_pg2d" PRIMARY KEY ("id")) 99‡D A A A A A A ñûöñ     nî deltaSƒgammaGPæ$@.@@$@.@.@@$@@$@(@@*@@*@@(@@~vbetaGPæ(@*@@@(@@*@@*@@(@@‚alphaGPæð?ð?ð?ð?ð?ð? ƒe&)‡triggerfgti_pg2d_geompg2dCREATE TRIGGER "fgti_pg2d_geom" BEFORE INSERT ON "pg2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "pg2d" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒy')‡?triggerfgtu_pg2d_geompg2dCREATE TRIGGER "fgtu_pg2d_geom" BEFORE UPDATE OF "geom" ON "pg2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "pg2d" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END ¼¼Tƒ()…utriggerfgsi_pg2d_geompg2dCREATE TRIGGER "fgsi_pg2d_geom" BEFORE INSERT ON "pg2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "pg2d" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); ENDƒ())†triggerfgsu_pg2d_geompg2dCREATE TRIGGER "fgsu_pg2d_geom" BEFORE UPDATE OF "geom" ON "pg2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "pg2d" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END ZZ™þ‚;*9„3triggerrtree_pg2d_geom_insertpg2dCREATE TRIGGER "rtree_pg2d_geom_insert" AFTER INSERT ON "pg2d" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_pg2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚a+;„}triggerrtree_pg2d_geom_update1pg2dCREATE TRIGGER "rtree_pg2d_geom_update1" AFTER UPDATE OF "geom" ON "pg2d" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_pg2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END~,;ƒ7triggerrtree_pg2d_geom_update2pg2dCREATE TRIGGER "rtree_pg2d_geom_update2" AFTER UPDATE OF "geom" ON "pg2d" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pg2d_geom" WHERE id = OLD.ROWID; END ŸŸ9@ƒ-;…gtriggerrtree_pg2d_geom_update3pg2dCREATE TRIGGER "rtree_pg2d_geom_update3" AFTER UPDATE OF "geom" ON "pg2d" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pg2d_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_pg2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚.;ƒAtriggerrtree_pg2d_geom_update4pg2dCREATE TRIGGER "rtree_pg2d_geom_update4" AFTER UPDATE ON "pg2d" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pg2d_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); END srs_id); ENDƒ-8+†#triggerfgsu_pg2dm_geompg2dmCREATE TRIGGER "fgsu_pg2dm_geom" BEFORE UPDATE OF "geom" ON "pg2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "pg2dm" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END KKù‚@9;„9triggerrtree_pg2dm_geom_insertpg2dmCREATE TRIGGER "rtree_pg2dm_geom_insert" AFTER INSERT ON "pg2dm" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_pg2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚f:=…triggerrtree_pg2dm_geom_update1pg2dmCREATE TRIGGER "rtree_pg2dm_geom_update1" AFTER UPDATE OF "geom" ON "pg2dm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_pg2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚;=ƒ=triggerrtree_pg2dm_geom_update2pg2dmCREATE TRIGGER "rtree_pg2dm_geom_update2" AFTER UPDATE OF "geom" ON "pg2dm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pg2dm_geom" WHERE id = OLD.ROWID; END /;ƒ<=…otriggerrtree_pg2dm_geom_update3pg2dmCREATE TRIGGER "rtree_pg2dm_geom_update3" AFTER UPDATE OF "geom" ON "pg2dm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pg2dm_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_pg2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚==ƒGtriggerrtree_pg2dm_geom_update4pg2dmCREATE TRIGGER "rtree_pg2dm_geom_update4" AFTER UPDATE ON "pg2dm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pg2dm_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDA>;‚;triggerrtree_pg2dm_geom_deletepg2dmCREATE TRIGGER "rtree_pg2dm_geom_delete" AFTER DELETE ON "pg2dm"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_pg2dm_geom" WHERE id = OLD.ROWID; END 99‡D ?€?€A@AP@@@A Ap@  <<ºAÏe{?--+tablertree_pg2dm_geomrtree_pg2dm_geomCREATE VIRTUAL TABLE "rtree_pg2dm_geom" USING rtree(id, minx, maxx, miny, maxy)@77#tablertree_pg2dm_geom_nodertree_pg2dm_geom_nodeˆCREATE TABLE "rtree_pg2dm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) A99-tablertree_pg2dm_geom_rowidrtree_pg2dm_geom_rowidŠCREATE TABLE "rtree_pg2dm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)B;;9tablertree_pg2dm_geom_parentrtree_pg2dm_geom_parent‹CREATE TABLE "rtree_pg2dm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)C‚ tablepg3dzpg3dzŒCREATE TABLE "pg3dz" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_pg3dz" PRIMARY KEY ("id")) ñûöñ    |F¥‡| delta‚„.gammaGPæ$@.@@ë$@@.@@.@@@$@@ @$@@(@@@*@@@*@@@(@@@‚6betaGPæ(@*@@@ë(@@@*@@@*@@ @(@@@7‚falphaGPæð?ð?ë@ð?@ð?ð?@ð?@@ þƒjD+‡triggerfgti_pg3dz_geompg3dzCREATE TRIGGER "fgti_pg3dz_geom" BEFORE INSERT ON "pg3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "pg3dz" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒ~E+‡Etriggerfgtu_pg3dz_geompg3dzCREATE TRIGGER "fgtu_pg3dz_geom" BEFORE UPDATE OF "geom" ON "pg3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "pg3dz" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END ²²OƒF+…{triggerfgsi_pg3dz_geompg3dzCREATE TRIGGER "fgsi_pg3dz_geom" BEFORE INSERT ON "pg3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "pg3dz" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); ENDƒ-G+†#triggerfgsu_pg3dz_geompg3dzCREATE TRIGGER "fgsu_pg3dz_geom" BEFORE UPDATE OF "geom" ON "pg3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "pg3dz" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END KKù‚@H;„9triggerrtree_pg3dz_geom_insertpg3dzCREATE TRIGGER "rtree_pg3dz_geom_insert" AFTER INSERT ON "pg3dz" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_pg3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚fI=…triggerrtree_pg3dz_geom_update1pg3dzCREATE TRIGGER "rtree_pg3dz_geom_update1" AFTER UPDATE OF "geom" ON "pg3dz" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_pg3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚J=ƒ=triggerrtree_pg3dz_geom_update2pg3dzCREATE TRIGGER "rtree_pg3dz_geom_update2" AFTER UPDATE OF "geom" ON "pg3dz" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pg3dz_geom" WHERE id = OLD.ROWID; END /;ƒK=…otriggerrtree_pg3dz_geom_update3pg3dzCREATE TRIGGER "rtree_pg3dz_geom_update3" AFTER UPDATE OF "geom" ON "pg3dz" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pg3dz_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_pg3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚L=ƒGtriggerrtree_pg3dz_geom_update4pg3dzCREATE TRIGGER "rtree_pg3dz_geom_update4" AFTER UPDATE ON "pg3dz" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pg3dz_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDAM;‚;triggerrtree_pg3dz_geom_deletepg3dzCREATE TRIGGER "rtree_pg3dz_geom_delete" AFTER DELETE ON "pg3dz"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_pg3dz_geom" WHERE id = OLD.ROWID; END 99‡D ?€?€A@AP@@@A Ap@  88¶=Ëa{N--+tablertree_pg3dz_geomrtree_pg3dz_geomCREATE VIRTUAL TABLE "rtree_pg3dz_geom" USING rtree(id, minx, maxx, miny, maxy)O77#tablertree_pg3dz_geom_nodertree_pg3dz_geom_node‘CREATE TABLE "rtree_pg3dz_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) P99-tablertree_pg3dz_geom_rowidrtree_pg3dz_geom_rowid“CREATE TABLE "rtree_pg3dz_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)Q;;9tablertree_pg3dz_geom_parentrtree_pg3dz_geom_parent”CREATE TABLE "rtree_pg3dz_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)R‚tablepg3dzmpg3dzm•CREATE TABLE "pg3dzm" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_pg3dzm" PRIMARY KEY ("id")) ñûöñ    ì]÷ì delta‚c…>gammaGPæ$@.@@» $@@@.@@@.@@@@$@@ @@$@@@(@@@@*@@@@*@@@@(@@@@>‚vbetaGPæ(@*@@@» (@@@@*@@@@*@@ @@(@@@@_ƒ6alphaGPæð?ð?» @@ð?@@ð?ð?@@ð?@@@@   ƒoS-‡#triggerfgti_pg3dzm_geompg3dzmCREATE TRIGGER "fgti_pg3dzm_geom" BEFORE INSERT ON "pg3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "pg3dzm" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END WW^„T-‡Ktriggerfgtu_pg3dzm_geompg3dzmCREATE TRIGGER "fgtu_pg3dzm_geom" BEFORE UPDATE OF "geom" ON "pg3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "pg3dzm" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒU-†triggerfgsi_pg3dzm_geompg3dzmCREATE TRIGGER "fgsi_pg3dzm_geom" BEFORE INSERT ON "pg3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "pg3dzm" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END ·ƒ2V-†)triggerfgsu_pg3dzm_geompg3dzmCREATE TRIGGER "fgsu_pg3dzm_geom" BEFORE UPDATE OF "geom" ON "pg3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "pg3dzm" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END‚EW=„?triggerrtree_pg3dzm_geom_insertpg3dzmCREATE TRIGGER "rtree_pg3dzm_geom_insert" AFTER INSERT ON "pg3dzm" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_pg3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END Y¦S¨T©V¬YQ,3U!mpg2dmgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyX+AU!mpg2dmgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyN*-U!mpg3dzgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyQ)3U!mpg3dzgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyX(AU!mpg3dzgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyO'-U!mpg3dzmgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyR&3U!mpg3dzmgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyY%AU!mpg3dzmgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyN$-U!pg3dzmgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyQ#3U!pg3dzmgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyX"AU!pg3dzmgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-only ……ô‚kX?… triggerrtree_pg3dzm_geom_update1pg3dzmCREATE TRIGGER "rtree_pg3dzm_geom_update1" AFTER UPDATE OF "geom" ON "pg3dzm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_pg3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚Y?ƒCtriggerrtree_pg3dzm_geom_update2pg3dzmCREATE TRIGGER "rtree_pg3dzm_geom_update2" AFTER UPDATE OF "geom" ON "pg3dzm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pg3dzm_geom" WHERE id = OLD.ROWID; END %6ƒ"Z?…wtriggerrtree_pg3dzm_geom_update3pg3dzmCREATE TRIGGER "rtree_pg3dzm_geom_update3" AFTER UPDATE OF "geom" ON "pg3dzm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pg3dzm_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_pg3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚ [?ƒMtriggerrtree_pg3dzm_geom_update4pg3dzmCREATE TRIGGER "rtree_pg3dzm_geom_update4" AFTER UPDATE ON "pg3dzm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_pg3dzm_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDF\=‚Atriggerrtree_pg3dzm_geom_deletepg3dzmCREATE TRIGGER "rtree_pg3dzm_geom_delete" AFTER DELETE ON "pg3dzm"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_pg3dzm_geom" WHERE id = OLD.ROWID; END ((©3Ä]~]//-tablertree_pg3dzm_geomrtree_pg3dzm_geomCREATE VIRTUAL TABLE "rtree_pg3dzm_geom" USING rtree(id, minx, maxx, miny, maxy)^99%tablertree_pg3dzm_geom_nodertree_pg3dzm_geom_nodeCREATE TABLE "rtree_pg3dzm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) _;;/tablertree_pg3dzm_geom_rowidrtree_pg3dzm_geom_rowidžCREATE TABLE "rtree_pg3dzm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)`==;tablertree_pg3dzm_geom_parentrtree_pg3dzm_geom_parentŸCREATE TABLE "rtree_pg3dzm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)a‚tablempg3dzmmpg3dzm CREATE TABLE "mpg3dzm" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_mpg3dzm" PRIMARY KEY ("id")) 99‡D ?€?€A@AP@@@A Ap@  ñûöñ    ¨Þ deltaHƒgammaGPæ?@@@?@@@¾ » ?@?@@@@@?@@@?@@@@@?@?@@@GƒbetaGPæ5@6@5@6@¾ » 5@5@@@6@5@@@5@6@@@5@5@@@‚U…"alphaGPæ4@?@4@?@¾ » 4@4@@@5@4@@@4@5@@@4@4@@@» >@>@@@?@>@@@>@?@@@>@>@@@ ƒtb/‡)triggerfgti_mpg3dzm_geommpg3dzmCREATE TRIGGER "fgti_mpg3dzm_geom" BEFORE INSERT ON "mpg3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mpg3dzm" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END MMY„c/‡Qtriggerfgtu_mpg3dzm_geommpg3dzmCREATE TRIGGER "fgtu_mpg3dzm_geom" BEFORE UPDATE OF "geom" ON "mpg3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mpg3dzm" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒ#d/†triggerfgsi_mpg3dzm_geommpg3dzmCREATE TRIGGER "fgsi_mpg3dzm_geom" BEFORE INSERT ON "mpg3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mpg3dzm" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END ÷÷²ƒ7e/†/triggerfgsu_mpg3dzm_geommpg3dzmCREATE TRIGGER "fgsu_mpg3dzm_geom" BEFORE UPDATE OF "geom" ON "mpg3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mpg3dzm" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END‚Jf?„Etriggerrtree_mpg3dzm_geom_insertmpg3dzmCREATE TRIGGER "rtree_mpg3dzm_geom_insert" AFTER INSERT ON "mpg3dzm" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mpg3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END {{ï‚pgA…triggerrtree_mpg3dzm_geom_update1mpg3dzmCREATE TRIGGER "rtree_mpg3dzm_geom_update1" AFTER UPDATE OF "geom" ON "mpg3dzm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mpg3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚ hAƒItriggerrtree_mpg3dzm_geom_update2mpg3dzmCREATE TRIGGER "rtree_mpg3dzm_geom_update2" AFTER UPDATE OF "geom" ON "mpg3dzm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpg3dzm_geom" WHERE id = OLD.ROWID; END oo1ƒ(iA…triggerrtree_mpg3dzm_geom_update3mpg3dzmCREATE TRIGGER "rtree_mpg3dzm_geom_update3" AFTER UPDATE OF "geom" ON "mpg3dzm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpg3dzm_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_mpg3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚jAƒStriggerrtree_mpg3dzm_geom_update4mpg3dzmCREATE TRIGGER "rtree_mpg3dzm_geom_update4" AFTER UPDATE ON "mpg3dzm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpg3dzm_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDKk?‚Gtriggerrtree_mpg3dzm_geom_deletempg3dzmCREATE TRIGGER "rtree_mpg3dzm_geom_delete" AFTER DELETE ON "mpg3dzm"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_mpg3dzm_geom" WHERE id = OLD.ROWID; END ¤1Åal11/tablertree_mpg3dzm_geomrtree_mpg3dzm_geomCREATE VIRTUAL TABLE "rtree_mpg3dzm_geom" USING rtree(id, minx, maxx, miny, maxy) m;;'tablertree_mpg3dzm_geom_nodertree_mpg3dzm_geom_node§CREATE TABLE "rtree_mpg3dzm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)n==1tablertree_mpg3dzm_geom_rowidrtree_mpg3dzm_geom_rowid¨CREATE TABLE "rtree_mpg3dzm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)o??=tablertree_mpg3dzm_geom_parentrtree_mpg3dzm_geom_parent©CREATE TABLE "rtree_mpg3dzm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)p‚tablempg3dzmpg3dzªCREATE TABLE "mpg3dz" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_mpg3dz" PRIMARY KEY ("id")) 99‡D A AøA AøA¨A°A¨A°AøBAøB ñûöñ    ˆè>“ˆ delta(‚HgammaGPæ?@@@?@@@îë?@?@@@@?@@?@@@@?@?@@'‚HbetaGPæ5@6@5@6@îë5@5@@6@5@@5@6@@5@5@@‚„"alphaGPæ4@?@4@?@îë4@4@@5@4@@4@5@@4@4@@ë>@>@@?@>@@>@?@@>@>@@   ƒoq-‡#triggerfgti_mpg3dz_geommpg3dzCREATE TRIGGER "fgti_mpg3dz_geom" BEFORE INSERT ON "mpg3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mpg3dz" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END WW^„r-‡Ktriggerfgtu_mpg3dz_geommpg3dzCREATE TRIGGER "fgtu_mpg3dz_geom" BEFORE UPDATE OF "geom" ON "mpg3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mpg3dz" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒs-†triggerfgsi_mpg3dz_geommpg3dzCREATE TRIGGER "fgsi_mpg3dz_geom" BEFORE INSERT ON "mpg3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mpg3dz" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END ·ƒ2t-†)triggerfgsu_mpg3dz_geommpg3dzCREATE TRIGGER "fgsu_mpg3dz_geom" BEFORE UPDATE OF "geom" ON "mpg3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mpg3dz" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END‚Eu=„?triggerrtree_mpg3dz_geom_insertmpg3dzCREATE TRIGGER "rtree_mpg3dz_geom_insert" AFTER INSERT ON "mpg3dz" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mpg3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END ……ô‚kv?… triggerrtree_mpg3dz_geom_update1mpg3dzCREATE TRIGGER "rtree_mpg3dz_geom_update1" AFTER UPDATE OF "geom" ON "mpg3dz" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mpg3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚w?ƒCtriggerrtree_mpg3dz_geom_update2mpg3dzCREATE TRIGGER "rtree_mpg3dz_geom_update2" AFTER UPDATE OF "geom" ON "mpg3dz" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpg3dz_geom" WHERE id = OLD.ROWID; END %6ƒ"x?…wtriggerrtree_mpg3dz_geom_update3mpg3dzCREATE TRIGGER "rtree_mpg3dz_geom_update3" AFTER UPDATE OF "geom" ON "mpg3dz" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpg3dz_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_mpg3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚ y?ƒMtriggerrtree_mpg3dz_geom_update4mpg3dzCREATE TRIGGER "rtree_mpg3dz_geom_update4" AFTER UPDATE ON "mpg3dz" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpg3dz_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDFz=‚Atriggerrtree_mpg3dz_geom_deletempg3dzCREATE TRIGGER "rtree_mpg3dz_geom_delete" AFTER DELETE ON "mpg3dz"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_mpg3dz_geom" WHERE id = OLD.ROWID; END ,,­7Èa~{//-tablertree_mpg3dz_geomrtree_mpg3dz_geomCREATE VIRTUAL TABLE "rtree_mpg3dz_geom" USING rtree(id, minx, maxx, miny, maxy)|99%tablertree_mpg3dz_geom_nodertree_mpg3dz_geom_node±CREATE TABLE "rtree_mpg3dz_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) };;/tablertree_mpg3dz_geom_rowidrtree_mpg3dz_geom_rowid²CREATE TABLE "rtree_mpg3dz_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)~==;tablertree_mpg3dz_geom_parentrtree_mpg3dz_geom_parent³CREATE TABLE "rtree_mpg3dz_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)‚tablempg2dmmpg2dm´CREATE TABLE "mpg2dm" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_mpg2dm" PRIMARY KEY ("id")) 99‡D A AøA AøA¨A°A¨A°AøBAøB ñûöñ    ˆè>“ˆ delta(‚HgammaGPæ?@@@?@@@ÖÓ?@?@@@@?@@?@@@@?@?@@'‚HbetaGPæ5@6@5@6@ÖÓ5@5@@6@5@@5@6@@5@5@@‚„"alphaGPæ4@?@4@?@ÖÓ4@4@@5@4@@4@5@@4@4@@Ó>@>@@?@>@@>@?@@>@>@@   ƒo‚-‡#triggerfgti_mpg2dm_geommpg2dmCREATE TRIGGER "fgti_mpg2dm_geom" BEFORE INSERT ON "mpg2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mpg2dm" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END WW^„‚-‡Ktriggerfgtu_mpg2dm_geommpg2dmCREATE TRIGGER "fgtu_mpg2dm_geom" BEFORE UPDATE OF "geom" ON "mpg2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mpg2dm" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒ‚-†triggerfgsi_mpg2dm_geommpg2dmCREATE TRIGGER "fgsi_mpg2dm_geom" BEFORE INSERT ON "mpg2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mpg2dm" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END ·ƒ2‚-†)triggerfgsu_mpg2dm_geommpg2dmCREATE TRIGGER "fgsu_mpg2dm_geom" BEFORE UPDATE OF "geom" ON "mpg2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mpg2dm" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END‚E‚=„?triggerrtree_mpg2dm_geom_insertmpg2dmCREATE TRIGGER "rtree_mpg2dm_geom_insert" AFTER INSERT ON "mpg2dm" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mpg2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END ……ô‚k‚?… triggerrtree_mpg2dm_geom_update1mpg2dmCREATE TRIGGER "rtree_mpg2dm_geom_update1" AFTER UPDATE OF "geom" ON "mpg2dm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mpg2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚‚?ƒCtriggerrtree_mpg2dm_geom_update2mpg2dmCREATE TRIGGER "rtree_mpg2dm_geom_update2" AFTER UPDATE OF "geom" ON "mpg2dm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpg2dm_geom" WHERE id = OLD.ROWID; END %6ƒ"‚?…wtriggerrtree_mpg2dm_geom_update3mpg2dmCREATE TRIGGER "rtree_mpg2dm_geom_update3" AFTER UPDATE OF "geom" ON "mpg2dm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpg2dm_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_mpg2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚ ‚?ƒMtriggerrtree_mpg2dm_geom_update4mpg2dmCREATE TRIGGER "rtree_mpg2dm_geom_update4" AFTER UPDATE ON "mpg2dm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpg2dm_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDF‚ =‚Atriggerrtree_mpg2dm_geom_deletempg2dmCREATE TRIGGER "rtree_mpg2dm_geom_delete" AFTER DELETE ON "mpg2dm"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_mpg2dm_geom" WHERE id = OLD.ROWID; END 00±;Ìe~‚ //-tablertree_mpg2dm_geomrtree_mpg2dm_geomCREATE VIRTUAL TABLE "rtree_mpg2dm_geom" USING rtree(id, minx, maxx, miny, maxy)‚ 99%tablertree_mpg2dm_geom_nodertree_mpg2dm_geom_node»CREATE TABLE "rtree_mpg2dm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) ‚ ;;/tablertree_mpg2dm_geom_rowidrtree_mpg2dm_geom_rowid¼CREATE TABLE "rtree_mpg2dm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)‚ ==;tablertree_mpg2dm_geom_parentrtree_mpg2dm_geom_parent½CREATE TABLE "rtree_mpg2dm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)‚‚ tablempg2dmpg2dÁCREATE TABLE "mpg2d" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_mpg2d" PRIMARY KEY ("id")) 99‡D A AøA AøA¨A°A¨A°AøBAøB ñûöñ    e°W¶] ¼b¿eX7AU!mln3dzgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyN6-U!mln2dmgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyQ53U!mln2dmgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyX4AU!mln2dmgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyM3-U!mln2dgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyP23U!mln2dgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyW1AU!mln2dgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyM0-U!mpg2dgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyP/3U!mpg2dgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyW.AU!mpg2dgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyN--U!mpg2dmgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-only 6¨Nô˜^"æ¨n2ö¸v6> =mpg3dzfeaturesmpg3dz 2014-05-22T09:02:18.210Z æ@ =mpg3dzmfeaturesmpg3dzm 2014-05-22T09:02:17.992Z æ< =pg3dzmfeaturespg3dzm 2014-05-22T09:02:17.552Zæ: =pg3dzfeaturespg3dz 2014-05-22T09:02:17.284Zæ: =pg2dmfeaturespg2dm 2014-05-22T09:02:16.968Zæ8 =pg2dfeaturespg2d 2014-05-22T09:02:16.674Zæ< =ln3dzmfeaturesln3dzm 2014-05-22T09:02:16.375Z æ: =ln3dzfeaturesln3dz 2014-05-22T09:02:16.028Z æ: =ln2dmfeaturesln2dm 2014-05-22T09:02:15.535Zæ8 =ln2dfeaturesln2d 2014-05-22T09:02:15.189Z æZ =pt3dzmfeaturespt3dzm 2014-05-22T09:02:14.912Z?ù™™™™™š@™™™™™š@ffffff@ ™™™™™šæX =pt3dzfeaturespt3dz 2014-05-22T09:02:14.643Z?ù™™™™™š?ó333333@ÌÌÌÌÌÍ@™™™™™šæX =pt2dmfeaturespt2dm 2014-05-22T09:02:14.211Z?ñ™™™™™š?ñ™™™™™š?ù™™™™™š?ôÌÌÌÌÌÍæV =pt2dfeaturespt2d 2014-05-22T09:02:13.902Z?ñ™™™™™š?ñ™™™™™š?ù™™™™™š@æ LÀ‚DÄ‚@À‚G ÍŽL@ =geo3dzmfeaturesgeo3dzm 2014-05-22T09:02:21.920Z æ= = gc3dzmfeaturesgc3dzm 2014-05-22T09:02:21.704Zæ; = gc3dzfeaturesgc3dz 2014-05-22T09:02:21.398Zæ; = gc2dmfeaturesgc2dm 2014-05-22T09:02:21.232Zæ9 = gc2dfeaturesgc2d 2014-05-22T09:02:21.071Zæ< =mpt2dfeaturesmpt2d 2014-05-22T09:02:20.751Zæ> =mpt2dmfeaturesmpt2dm 2014-05-22T09:02:20.501Zæ> =mpt3dzfeaturesmpt3dz 2014-05-22T09:02:20.158Zæ@ =mpt3dzmfeaturesmpt3dzm 2014-05-22T09:02:19.937Zæ@ =mln3dzmfeaturesmln3dzm 2014-05-22T09:02:19.774Zæ> =mln3dzfeaturesmln3dz 2014-05-22T09:02:19.546Zæ> =mln2dmfeaturesmln2dm 2014-05-22T09:02:19.179Zæ< =mln2dfeaturesmln2d 2014-05-22T09:02:18.960Zæ< =mpg2dfeaturesmpg2d 2014-05-22T09:02:18.692Z æ> =mpg2dmfeaturesmpg2dm 2014-05-22T09:02:18.478Z æ (“‚gammaGPæ?@@@?@@@?@?@@@?@?@@@?@?@‚betaGPæ5@6@5@6@5@5@6@5@5@6@5@5@ deltaUƒ"alphaGPæ4@?@4@?@4@4@5@4@4@5@4@4@>@>@?@>@>@?@>@>@ þƒj‚+‡triggerfgti_mpg2d_geommpg2dCREATE TRIGGER "fgti_mpg2d_geom" BEFORE INSERT ON "mpg2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mpg2d" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒ~‚+‡Etriggerfgtu_mpg2d_geommpg2dCREATE TRIGGER "fgtu_mpg2d_geom" BEFORE UPDATE OF "geom" ON "mpg2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mpg2d" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END ²²Oƒ‚+…{triggerfgsi_mpg2d_geommpg2dCREATE TRIGGER "fgsi_mpg2d_geom" BEFORE INSERT ON "mpg2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mpg2d" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); ENDƒ-‚+†#triggerfgsu_mpg2d_geommpg2dCREATE TRIGGER "fgsu_mpg2d_geom" BEFORE UPDATE OF "geom" ON "mpg2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mpg2d" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END KKù‚@‚;„9triggerrtree_mpg2d_geom_insertmpg2dCREATE TRIGGER "rtree_mpg2d_geom_insert" AFTER INSERT ON "mpg2d" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mpg2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚f‚=…triggerrtree_mpg2d_geom_update1mpg2dCREATE TRIGGER "rtree_mpg2d_geom_update1" AFTER UPDATE OF "geom" ON "mpg2d" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mpg2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚‚=ƒ=triggerrtree_mpg2d_geom_update2mpg2dCREATE TRIGGER "rtree_mpg2d_geom_update2" AFTER UPDATE OF "geom" ON "mpg2d" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpg2d_geom" WHERE id = OLD.ROWID; END /;ƒ‚=…otriggerrtree_mpg2d_geom_update3mpg2dCREATE TRIGGER "rtree_mpg2d_geom_update3" AFTER UPDATE OF "geom" ON "mpg2d" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpg2d_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_mpg2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚‚=ƒGtriggerrtree_mpg2d_geom_update4mpg2dCREATE TRIGGER "rtree_mpg2d_geom_update4" AFTER UPDATE ON "mpg2d" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpg2d_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDA‚;‚;triggerrtree_mpg2d_geom_deletempg2dCREATE TRIGGER "rtree_mpg2d_geom_delete" AFTER DELETE ON "mpg2d"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_mpg2d_geom" WHERE id = OLD.ROWID; END 99‡D A AøA AøA¨A°A¨A°AøBAøB <<ºAÏe{‚--+tablertree_mpg2d_geomrtree_mpg2d_geomCREATE VIRTUAL TABLE "rtree_mpg2d_geom" USING rtree(id, minx, maxx, miny, maxy)‚77#tablertree_mpg2d_geom_nodertree_mpg2d_geom_nodeÆCREATE TABLE "rtree_mpg2d_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) ‚99-tablertree_mpg2d_geom_rowidrtree_mpg2d_geom_rowidÈCREATE TABLE "rtree_mpg2d_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)‚;;9tablertree_mpg2d_geom_parentrtree_mpg2d_geom_parentÉCREATE TABLE "rtree_mpg2d_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)‚‚ tablemln2dmln2dÊCREATE TABLE "mln2d" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_mln2d" PRIMARY KEY ("id")) ñûöñ    pš {p delta ‚gammaGPæ@6@@6@6@(@(@6@@@&@&@ ‚betaGPæ@5@@5@5@&@&@5@@@$@$@d@alphaGPæ$@4@$@4@4@$@$@4@ þƒj‚+‡triggerfgti_mln2d_geommln2dCREATE TRIGGER "fgti_mln2d_geom" BEFORE INSERT ON "mln2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mln2d" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒ~‚+‡Etriggerfgtu_mln2d_geommln2dCREATE TRIGGER "fgtu_mln2d_geom" BEFORE UPDATE OF "geom" ON "mln2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mln2d" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END ²²Oƒ‚ +…{triggerfgsi_mln2d_geommln2dCREATE TRIGGER "fgsi_mln2d_geom" BEFORE INSERT ON "mln2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mln2d" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); ENDƒ-‚!+†#triggerfgsu_mln2d_geommln2dCREATE TRIGGER "fgsu_mln2d_geom" BEFORE UPDATE OF "geom" ON "mln2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mln2d" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END KKù‚@‚";„9triggerrtree_mln2d_geom_insertmln2dCREATE TRIGGER "rtree_mln2d_geom_insert" AFTER INSERT ON "mln2d" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mln2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚f‚#=…triggerrtree_mln2d_geom_update1mln2dCREATE TRIGGER "rtree_mln2d_geom_update1" AFTER UPDATE OF "geom" ON "mln2d" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mln2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚‚$=ƒ=triggerrtree_mln2d_geom_update2mln2dCREATE TRIGGER "rtree_mln2d_geom_update2" AFTER UPDATE OF "geom" ON "mln2d" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mln2d_geom" WHERE id = OLD.ROWID; END /;ƒ‚%=…otriggerrtree_mln2d_geom_update3mln2dCREATE TRIGGER "rtree_mln2d_geom_update3" AFTER UPDATE OF "geom" ON "mln2d" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mln2d_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_mln2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚‚&=ƒGtriggerrtree_mln2d_geom_update4mln2dCREATE TRIGGER "rtree_mln2d_geom_update4" AFTER UPDATE ON "mln2d" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mln2d_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDA‚';‚;triggerrtree_mln2d_geom_deletemln2dCREATE TRIGGER "rtree_mln2d_geom_delete" AFTER DELETE ON "mln2d"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_mln2d_geom" WHERE id = OLD.ROWID; END 99‡D A A A A @ A¨@ A¨@ÀA°@ÀA° 88¶=Ëa{‚(--+tablertree_mln2d_geomrtree_mln2d_geomCREATE VIRTUAL TABLE "rtree_mln2d_geom" USING rtree(id, minx, maxx, miny, maxy)‚)77#tablertree_mln2d_geom_nodertree_mln2d_geom_nodeÏCREATE TABLE "rtree_mln2d_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) ‚*99-tablertree_mln2d_geom_rowidrtree_mln2d_geom_rowidÑCREATE TABLE "rtree_mln2d_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)‚+;;9tablertree_mln2d_geom_parentrtree_mln2d_geom_parentÒCREATE TABLE "rtree_mln2d_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)‚,‚tablemln2dmmln2dmÓCREATE TABLE "mln2dm" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_mln2dm" PRIMARY KEY ("id")) ñûöñ     ŠÐ -‚RgammaGPæ@6@@6@ÕÒ6@(@@(@6@@Ò@@@&@&@@,‚RbetaGPæ@5@@5@ÕÒ5@&@@&@5@@Ò@@@$@$@@ deltat`alphaGPæ$@4@$@4@ÕÒ4@$@@$@4@@   ƒo‚--‡#triggerfgti_mln2dm_geommln2dmCREATE TRIGGER "fgti_mln2dm_geom" BEFORE INSERT ON "mln2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mln2dm" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END WW^„‚.-‡Ktriggerfgtu_mln2dm_geommln2dmCREATE TRIGGER "fgtu_mln2dm_geom" BEFORE UPDATE OF "geom" ON "mln2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mln2dm" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒ‚/-†triggerfgsi_mln2dm_geommln2dmCREATE TRIGGER "fgsi_mln2dm_geom" BEFORE INSERT ON "mln2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mln2dm" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END ·ƒ2‚0-†)triggerfgsu_mln2dm_geommln2dmCREATE TRIGGER "fgsu_mln2dm_geom" BEFORE UPDATE OF "geom" ON "mln2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mln2dm" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END‚E‚1=„?triggerrtree_mln2dm_geom_insertmln2dmCREATE TRIGGER "rtree_mln2dm_geom_insert" AFTER INSERT ON "mln2dm" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mln2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END ……ô‚k‚2?… triggerrtree_mln2dm_geom_update1mln2dmCREATE TRIGGER "rtree_mln2dm_geom_update1" AFTER UPDATE OF "geom" ON "mln2dm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mln2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚‚3?ƒCtriggerrtree_mln2dm_geom_update2mln2dmCREATE TRIGGER "rtree_mln2dm_geom_update2" AFTER UPDATE OF "geom" ON "mln2dm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mln2dm_geom" WHERE id = OLD.ROWID; END %6ƒ"‚4?…wtriggerrtree_mln2dm_geom_update3mln2dmCREATE TRIGGER "rtree_mln2dm_geom_update3" AFTER UPDATE OF "geom" ON "mln2dm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mln2dm_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_mln2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚ ‚5?ƒMtriggerrtree_mln2dm_geom_update4mln2dmCREATE TRIGGER "rtree_mln2dm_geom_update4" AFTER UPDATE ON "mln2dm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mln2dm_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDF‚6=‚Atriggerrtree_mln2dm_geom_deletemln2dmCREATE TRIGGER "rtree_mln2dm_geom_delete" AFTER DELETE ON "mln2dm"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_mln2dm_geom" WHERE id = OLD.ROWID; END ,,­7Èa~‚7//-tablertree_mln2dm_geomrtree_mln2dm_geomCREATE VIRTUAL TABLE "rtree_mln2dm_geom" USING rtree(id, minx, maxx, miny, maxy)‚899%tablertree_mln2dm_geom_nodertree_mln2dm_geom_nodeÚCREATE TABLE "rtree_mln2dm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) ‚9;;/tablertree_mln2dm_geom_rowidrtree_mln2dm_geom_rowidÛCREATE TABLE "rtree_mln2dm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)‚:==;tablertree_mln2dm_geom_parentrtree_mln2dm_geom_parentÜCREATE TABLE "rtree_mln2dm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)‚;‚tablemln3dzmln3dzÞCREATE TABLE "mln3dz" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_mln3dz" PRIMARY KEY ("id")) 99‡D A A A A @ A¨@ A¨@ÀA°@ÀA° ñûöñ    ==`‹¬Ðû@l޳Ýý Kl»Ü"3mpg2dgeomgpkg_srs_id_trigger/*Ampg2dmgeomgpkg_geometry_type_trigger+ -mpg2dmgeomgpkg_rtree_index-#3mpg2dmgeomgpkg_srs_id_trigger,*Ampg3dzgeomgpkg_geometry_type_trigger( -mpg3dzgeomgpkg_rtree_index*#3mpg3dzgeomgpkg_srs_id_trigger)+Ampg3dzmgeomgpkg_geometry_type_trigger%!-mpg3dzmgeomgpkg_rtree_index'$3mpg3dzmgeomgpkg_srs_id_trigger&)Ampt2dgeomgpkg_geometry_type_triggerF-mpt2dgeomgpkg_rtree_indexH"3mpt2dgeomgpkg_srs_id_triggerG*Ampt2dmgeomgpkg_geometry_type_triggerC -mpt2dmgeomgpkg_rtree_indexE#3mpt2dmgeomgpkg_srs_id_triggerD*Ampt3dzgeomgpkg_geometry_type_trigger@ -mpt3dzgeomgpkg_rtree_indexB#3mpt3dzgeomgpkg_srs_id_triggerA  ŠÐ -‚RgammaGPæ@6@@6@íê6@(@@(@6@@ê@@@&@&@@,‚RbetaGPæ@5@@5@íê5@&@@&@5@@ê@@@$@$@@ deltat`alphaGPæ$@4@$@4@íê4@$@@$@4@@   ƒo‚<-‡#triggerfgti_mln3dz_geommln3dzCREATE TRIGGER "fgti_mln3dz_geom" BEFORE INSERT ON "mln3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mln3dz" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END WW^„‚=-‡Ktriggerfgtu_mln3dz_geommln3dzCREATE TRIGGER "fgtu_mln3dz_geom" BEFORE UPDATE OF "geom" ON "mln3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mln3dz" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒ‚>-†triggerfgsi_mln3dz_geommln3dzCREATE TRIGGER "fgsi_mln3dz_geom" BEFORE INSERT ON "mln3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mln3dz" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END ·ƒ2‚?-†)triggerfgsu_mln3dz_geommln3dzCREATE TRIGGER "fgsu_mln3dz_geom" BEFORE UPDATE OF "geom" ON "mln3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mln3dz" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END‚E‚@=„?triggerrtree_mln3dz_geom_insertmln3dzCREATE TRIGGER "rtree_mln3dz_geom_insert" AFTER INSERT ON "mln3dz" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mln3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END `­]®]®]°`NB-U!mpt3dzgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyQA3U!mpt3dzgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyX@AU!mpt3dzgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyO?-U!mpt3dzmgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyR>3U!mpt3dzmgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyY=AU!mpt3dzmgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyO<-U!mln3dzmgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyR;3U!mln3dzmgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyY:AU!mln3dzmgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyN9-U!mln3dzgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyQ83U!mln3dzgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-only …‘…‚‚B?ƒCtriggerrtree_mln3dz_geom_update2mln3dzCREATE TRIGGER "rtree_mln3dz_geom_update2" AFTER UPDATE OF "geom" ON "mln3dz" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mln3dz_geom" WHERE id = OLD.ROWID; END‚k‚A?… triggerrtree_mln3dz_geom_update1mln3dzCREATE TRIGGER "rtree_mln3dz_geom_update1" AFTER UPDATE OF "geom" ON "mln3dz" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mln3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); ENDeÔºÔÙÞãèíò÷ü $).38=BGLQV[`ejoty~ƒˆ’—œ¡¦«°µº¿ÄÉÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôú    ! ""##$$%%&&''()),+.,0-2.4/71<5>6@7C8F:K>M?O@RAUCZG[H]I_JaKdLiSkTmUpVsXx\z]|^_ae f ghjnoprs t%y'z){,|/~4„6…8†;‡>‰CEŽGJM’R–S—U˜WšY›\œa¡b¢d£f¤h¥k¦p«q¬s­u®w¯z°µ‚¶‚·‚¸‚¹‚ ZI{F‚E=‚Atriggerrtree_mln3dz_geom_deletemln3dzCREATE TRIGGER "rtree_mln3dz_geom_delete" AFTER DELETE ON "mln3dz"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_mln3dz_geom" WHERE id = OLD.ROWID; END‚ ‚D?ƒMtriggerrtree_mln3dz_geom_update4mln3dzCREATE TRIGGER "rtree_mln3dz_geom_update4" AFTER UPDATE ON "mln3dz" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mln3dz_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDƒ"‚C?…wtriggerrtree_mln3dz_geom_update3mln3dzCREATE TRIGGER "rtree_mln3dz_geom_update3" AFTER UPDATE OF "geom" ON "mln3dz" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mln3dz_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_mln3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END (õdË(‚J‚tablemln3dzmmln3dzmêCREATE TABLE "mln3dzm" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_mln3dzm" PRIMARY KEY ("id"))‚I==;tablertree_mln3dz_geom_parentrtree_mln3dz_geom_parentéCREATE TABLE "rtree_mln3dz_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER) ‚H;;/tablertree_mln3dz_geom_rowidrtree_mln3dz_geom_rowidèCREATE TABLE "rtree_mln3dz_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)‚G99%tablertree_mln3dz_geom_nodertree_mln3dz_geom_nodeçCREATE TABLE "rtree_mln3dz_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)~‚F//-tablertree_mln3dz_geomrtree_mln3dz_geomCREATE VIRTUAL TABLE "rtree_mln3dz_geom" USING rtree(id, minx, maxx, miny, maxy) 99‡D A A A A @ A¨@ A¨@ÀA°@ÀA° ñûöñ    ÏyªÚÏ deltaMƒgammaGPæ@6@@6@½ º 6@(@@@(@6@@@º @@@@&@&@@"@LƒbetaGPæ@5@@5@½ º 5@&@@@&@5@@@º @@@ð?$@$@@@‚alphaGPæ$@4@$@4@½ º 4@$@@@$@4@@@ ƒt‚K/‡)triggerfgti_mln3dzm_geommln3dzmCREATE TRIGGER "fgti_mln3dzm_geom" BEFORE INSERT ON "mln3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mln3dzm" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END MôMƒ#‚M/†triggerfgsi_mln3dzm_geommln3dzmCREATE TRIGGER "fgsi_mln3dzm_geom" BEFORE INSERT ON "mln3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mln3dzm" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END„‚L/‡Qtriggerfgtu_mln3dzm_geommln3dzmCREATE TRIGGER "fgtu_mln3dzm_geom" BEFORE UPDATE OF "geom" ON "mln3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mln3dzm" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END ÷E÷‚J‚O?„Etriggerrtree_mln3dzm_geom_insertmln3dzmCREATE TRIGGER "rtree_mln3dzm_geom_insert" AFTER INSERT ON "mln3dzm" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mln3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); ENDƒ7‚N/†/triggerfgsu_mln3dzm_geommln3dzmCREATE TRIGGER "fgsu_mln3dzm_geom" BEFORE UPDATE OF "geom" ON "mln3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mln3dzm" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END {Œ{‚ ‚QAƒItriggerrtree_mln3dzm_geom_update2mln3dzmCREATE TRIGGER "rtree_mln3dzm_geom_update2" AFTER UPDATE OF "geom" ON "mln3dzm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mln3dzm_geom" WHERE id = OLD.ROWID; END‚p‚PA…triggerrtree_mln3dzm_geom_update1mln3dzmCREATE TRIGGER "rtree_mln3dzm_geom_update1" AFTER UPDATE OF "geom" ON "mln3dzm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mln3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END oT>okK‚T?‚Gtriggerrtree_mln3dzm_geom_deletemln3dzmCREATE TRIGGER "rtree_mln3dzm_geom_delete" AFTER DELETE ON "mln3dzm"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_mln3dzm_geom" WHERE id = OLD.ROWID; END‚‚SAƒStriggerrtree_mln3dzm_geom_update4mln3dzmCREATE TRIGGER "rtree_mln3dzm_geom_update4" AFTER UPDATE ON "mln3dzm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mln3dzm_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDƒ(‚RA…triggerrtree_mln3dzm_geom_update3mln3dzmCREATE TRIGGER "rtree_mln3dzm_geom_update3" AFTER UPDATE OF "geom" ON "mln3dzm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mln3dzm_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_mln3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END {îZ¾‚Y‚tablempt3dzmmpt3dzmôCREATE TABLE "mpt3dzm" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_mpt3dzm" PRIMARY KEY ("id"))‚X??=tablertree_mln3dzm_geom_parentrtree_mln3dzm_geom_parentóCREATE TABLE "rtree_mln3dzm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)‚W==1tablertree_mln3dzm_geom_rowidrtree_mln3dzm_geom_rowidòCREATE TABLE "rtree_mln3dzm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER) ‚V;;'tablertree_mln3dzm_geom_nodertree_mln3dzm_geom_nodeñCREATE TABLE "rtree_mln3dzm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)‚U11/tablertree_mln3dzm_geomrtree_mln3dzm_geomCREATE VIRTUAL TABLE "rtree_mln3dzm_geom" USING rtree(id, minx, maxx, miny, maxy) 99‡D A A A A @ A¨@ A¨@ÀA°@ÀA° ñûöñ    ªž ª`8gammaGPæ$@$@@@¼ ¹ $@@ð?@ delta‚betaGPæ$@4@$@4@¼ ¹ $@4@@@¹ 4@$@@@`8alphaGPæ@@@@¼ ¹ @@@@ ƒt‚Z/‡)triggerfgti_mpt3dzm_geommpt3dzmCREATE TRIGGER "fgti_mpt3dzm_geom" BEFORE INSERT ON "mpt3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mpt3dzm" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END MôMƒ#‚\/†triggerfgsi_mpt3dzm_geommpt3dzmCREATE TRIGGER "fgsi_mpt3dzm_geom" BEFORE INSERT ON "mpt3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mpt3dzm" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END„‚[/‡Qtriggerfgtu_mpt3dzm_geommpt3dzmCREATE TRIGGER "fgtu_mpt3dzm_geom" BEFORE UPDATE OF "geom" ON "mpt3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mpt3dzm" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END ÷E÷‚J‚^?„Etriggerrtree_mpt3dzm_geom_insertmpt3dzmCREATE TRIGGER "rtree_mpt3dzm_geom_insert" AFTER INSERT ON "mpt3dzm" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mpt3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); ENDƒ7‚]/†/triggerfgsu_mpt3dzm_geommpt3dzmCREATE TRIGGER "fgsu_mpt3dzm_geom" BEFORE UPDATE OF "geom" ON "mpt3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mpt3dzm" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END {Œ{‚ ‚`AƒItriggerrtree_mpt3dzm_geom_update2mpt3dzmCREATE TRIGGER "rtree_mpt3dzm_geom_update2" AFTER UPDATE OF "geom" ON "mpt3dzm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpt3dzm_geom" WHERE id = OLD.ROWID; END‚p‚_A…triggerrtree_mpt3dzm_geom_update1mpt3dzmCREATE TRIGGER "rtree_mpt3dzm_geom_update1" AFTER UPDATE OF "geom" ON "mpt3dzm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mpt3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); ENDaºtÆÌÒØÞäêðöü &,28>DJPV\bhntz€†Œ’˜ž¤ª°¶¼ÂÈÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôúÀº´®®®®s„r„‚ÂĂłǂ˂̂!Í‚$΂'Ђ,Ô‚-Õ‚/Ö‚1ׂ3Ø‚6Ù‚;ß‚<à‚>á‚@ã‚Bå‚Eæ‚Jë‚Kì‚Mí‚Oî‚Qï‚Tð‚Yõ‚Zö‚\÷‚^ø‚`ú‚cû‚h‚i‚k‚m‚o‚r‚w ‚x ‚z ‚|‚~ƒƒƒƒ ƒ ƒƒƒƒ ƒ!ƒ #ƒ$'ƒ&(ƒ()ƒ+*ƒ/,ƒ31ƒ52ƒ74ƒ:5ƒ>7ƒB;ƒC<ƒE=ƒG>ƒI?ƒL@ƒQEƒRFƒTGƒVHƒXIƒ[Jƒ`OƒaPƒcQƒeSƒgTƒjUƒo[ƒp\ƒr]ƒt^ƒv_ƒy`ƒ~h„i„j„k„ m„ oT>okK‚c?‚Gtriggerrtree_mpt3dzm_geom_deletempt3dzmCREATE TRIGGER "rtree_mpt3dzm_geom_delete" AFTER DELETE ON "mpt3dzm"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_mpt3dzm_geom" WHERE id = OLD.ROWID; END‚‚bAƒStriggerrtree_mpt3dzm_geom_update4mpt3dzmCREATE TRIGGER "rtree_mpt3dzm_geom_update4" AFTER UPDATE ON "mpt3dzm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpt3dzm_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDƒ(‚aA…triggerrtree_mpt3dzm_geom_update3mpt3dzmCREATE TRIGGER "rtree_mpt3dzm_geom_update3" AFTER UPDATE OF "geom" ON "mpt3dzm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpt3dzm_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_mpt3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END {îZ¾‚h‚tablempt3dzmpt3dzÿCREATE TABLE "mpt3dz" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_mpt3dz" PRIMARY KEY ("id"))‚g??=tablertree_mpt3dzm_geom_parentrtree_mpt3dzm_geom_parentþCREATE TABLE "rtree_mpt3dzm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)‚f==1tablertree_mpt3dzm_geom_rowidrtree_mpt3dzm_geom_rowidýCREATE TABLE "rtree_mpt3dzm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER) ‚e;;'tablertree_mpt3dzm_geom_nodertree_mpt3dzm_geom_nodeüCREATE TABLE "rtree_mpt3dzm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)‚d11/tablertree_mpt3dzm_geomrtree_mpt3dzm_geomCREATE VIRTUAL TABLE "rtree_mpt3dzm_geom" USING rtree(id, minx, maxx, miny, maxy) 99‡D @ @ @ @ A A A A A A @À@À ñûöñ    ˦0ÖË deltaX(gammaGPæ$@$@@@ìé$@@ð?tbbetaGPæ$@4@$@4@ìé$@4@@é4@$@@X(alphaGPæ@@@@ìé@@@   ƒo‚i-‡#triggerfgti_mpt3dz_geommpt3dzCREATE TRIGGER "fgti_mpt3dz_geom" BEFORE INSERT ON "mpt3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mpt3dz" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END WùWƒ‚k-†triggerfgsi_mpt3dz_geommpt3dzCREATE TRIGGER "fgsi_mpt3dz_geom" BEFORE INSERT ON "mpt3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mpt3dz" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END„‚j-‡Ktriggerfgtu_mpt3dz_geommpt3dzCREATE TRIGGER "fgtu_mpt3dz_geom" BEFORE UPDATE OF "geom" ON "mpt3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mpt3dz" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END J‚E‚m=„?triggerrtree_mpt3dz_geom_insertmpt3dzCREATE TRIGGER "rtree_mpt3dz_geom_insert" AFTER INSERT ON "mpt3dz" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mpt3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); ENDƒ2‚l-†)triggerfgsu_mpt3dz_geommpt3dzCREATE TRIGGER "fgsu_mpt3dz_geom" BEFORE UPDATE OF "geom" ON "mpt3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mpt3dz" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END …‘…‚‚o?ƒCtriggerrtree_mpt3dz_geom_update2mpt3dzCREATE TRIGGER "rtree_mpt3dz_geom_update2" AFTER UPDATE OF "geom" ON "mpt3dz" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpt3dz_geom" WHERE id = OLD.ROWID; END‚k‚n?… triggerrtree_mpt3dz_geom_update1mpt3dzCREATE TRIGGER "rtree_mpt3dz_geom_update1" AFTER UPDATE OF "geom" ON "mpt3dz" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mpt3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END ZI{F‚r=‚Atriggerrtree_mpt3dz_geom_deletempt3dzCREATE TRIGGER "rtree_mpt3dz_geom_delete" AFTER DELETE ON "mpt3dz"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_mpt3dz_geom" WHERE id = OLD.ROWID; END‚ ‚q?ƒMtriggerrtree_mpt3dz_geom_update4mpt3dzCREATE TRIGGER "rtree_mpt3dz_geom_update4" AFTER UPDATE ON "mpt3dz" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpt3dz_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDƒ"‚p?…wtriggerrtree_mpt3dz_geom_update3mpt3dzCREATE TRIGGER "rtree_mpt3dz_geom_update3" AFTER UPDATE OF "geom" ON "mpt3dz" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpt3dz_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_mpt3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END ,õdË,‚w‚tablempt2dmmpt2dm CREATE TABLE "mpt2dm" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_mpt2dm" PRIMARY KEY ("id"))‚v==;tablertree_mpt3dz_geom_parentrtree_mpt3dz_geom_parentCREATE TABLE "rtree_mpt3dz_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER) ‚u;;/tablertree_mpt3dz_geom_rowidrtree_mpt3dz_geom_rowidCREATE TABLE "rtree_mpt3dz_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)‚t99%tablertree_mpt3dz_geom_nodertree_mpt3dz_geom_nodeCREATE TABLE "rtree_mpt3dz_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)~‚s//-tablertree_mpt3dz_geomrtree_mpt3dz_geomCREATE VIRTUAL TABLE "rtree_mpt3dz_geom" USING rtree(id, minx, maxx, miny, maxy) 99‡D @ @ @ @ A A A A A A @À@À ñûöñ    ˦0ÖË deltaX(gammaGPæ$@$@@@ÔÑ$@@ð?tbbetaGPæ$@4@$@4@ÔÑ$@4@@Ñ4@$@@X(alphaGPæ@@@@ÔÑ@@@   ƒo‚x-‡#triggerfgti_mpt2dm_geommpt2dmCREATE TRIGGER "fgti_mpt2dm_geom" BEFORE INSERT ON "mpt2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mpt2dm" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END WùWƒ‚z-†triggerfgsi_mpt2dm_geommpt2dmCREATE TRIGGER "fgsi_mpt2dm_geom" BEFORE INSERT ON "mpt2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mpt2dm" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END„‚y-‡Ktriggerfgtu_mpt2dm_geommpt2dmCREATE TRIGGER "fgtu_mpt2dm_geom" BEFORE UPDATE OF "geom" ON "mpt2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mpt2dm" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END J‚E‚|=„?triggerrtree_mpt2dm_geom_insertmpt2dmCREATE TRIGGER "rtree_mpt2dm_geom_insert" AFTER INSERT ON "mpt2dm" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mpt2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); ENDƒ2‚{-†)triggerfgsu_mpt2dm_geommpt2dmCREATE TRIGGER "fgsu_mpt2dm_geom" BEFORE UPDATE OF "geom" ON "mpt2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mpt2dm" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END g¦SªX ±`¹gPM3U!gc2dmgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyWLAU!gc2dmgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyLK-U!gc2dgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyOJ3U!gc2dgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyVIAU!gc2dgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyMH-U!mpt2dgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyPG3U!mpt2dgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyWFAU!mpt2dgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyNE-U!mpt2dmgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyQD3U!mpt2dmgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyXCAU!mpt2dmgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-only …‘…‚‚~?ƒCtriggerrtree_mpt2dm_geom_update2mpt2dmCREATE TRIGGER "rtree_mpt2dm_geom_update2" AFTER UPDATE OF "geom" ON "mpt2dm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpt2dm_geom" WHERE id = OLD.ROWID; END‚k‚}?… triggerrtree_mpt2dm_geom_update1mpt2dmCREATE TRIGGER "rtree_mpt2dm_geom_update1" AFTER UPDATE OF "geom" ON "mpt2dm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mpt2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END ZI{Fƒ=‚Atriggerrtree_mpt2dm_geom_deletempt2dmCREATE TRIGGER "rtree_mpt2dm_geom_delete" AFTER DELETE ON "mpt2dm"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_mpt2dm_geom" WHERE id = OLD.ROWID; END‚ ƒ?ƒMtriggerrtree_mpt2dm_geom_update4mpt2dmCREATE TRIGGER "rtree_mpt2dm_geom_update4" AFTER UPDATE ON "mpt2dm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpt2dm_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDƒ"‚?…wtriggerrtree_mpt2dm_geom_update3mpt2dmCREATE TRIGGER "rtree_mpt2dm_geom_update3" AFTER UPDATE OF "geom" ON "mpt2dm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpt2dm_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_mpt2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END 0õdË0ƒ‚ tablempt2dmpt2dCREATE TABLE "mpt2d" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_mpt2d" PRIMARY KEY ("id"))ƒ==;tablertree_mpt2dm_geom_parentrtree_mpt2dm_geom_parentCREATE TABLE "rtree_mpt2dm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER) ƒ;;/tablertree_mpt2dm_geom_rowidrtree_mpt2dm_geom_rowidCREATE TABLE "rtree_mpt2dm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)ƒ99%tablertree_mpt2dm_geom_nodertree_mpt2dm_geom_nodeCREATE TABLE "rtree_mpt2dm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)~ƒ//-tablertree_mpt2dm_geomrtree_mpt2dm_geomCREATE VIRTUAL TABLE "rtree_mpt2dm_geom" USING rtree(id, minx, maxx, miny, maxy) 99‡D @ @ @ @ A A A A A A @À@À ñûöñ    ë®Höë deltaPgammaGPæ@@"@"@@"@dBbetaGPæ$@4@$@4@$@4@4@$@PalphaGPæ@@@@@@ ƒ~ƒ+‡Etriggerfgtu_mpt2d_geommpt2dCREATE TRIGGER "fgtu_mpt2d_geom" BEFORE UPDATE OF "geom" ON "mpt2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mpt2d" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒjƒ+‡triggerfgti_mpt2d_geommpt2dCREATE TRIGGER "fgti_mpt2d_geom" BEFORE INSERT ON "mpt2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mpt2d" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END ²c²ƒ-ƒ +†#triggerfgsu_mpt2d_geommpt2dCREATE TRIGGER "fgsu_mpt2d_geom" BEFORE UPDATE OF "geom" ON "mpt2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "mpt2d" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); ENDƒƒ +…{triggerfgsi_mpt2d_geommpt2dCREATE TRIGGER "fgsi_mpt2d_geom" BEFORE INSERT ON "mpt2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "mpt2d" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END K¼RK‚ƒ =ƒ=triggerrtree_mpt2d_geom_update2mpt2dCREATE TRIGGER "rtree_mpt2d_geom_update2" AFTER UPDATE OF "geom" ON "mpt2d" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpt2d_geom" WHERE id = OLD.ROWID; END‚fƒ =…triggerrtree_mpt2d_geom_update1mpt2dCREATE TRIGGER "rtree_mpt2d_geom_update1" AFTER UPDATE OF "geom" ON "mpt2d" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mpt2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚@ƒ ;„9triggerrtree_mpt2d_geom_insertmpt2dCREATE TRIGGER "rtree_mpt2d_geom_insert" AFTER INSERT ON "mpt2d" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_mpt2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END `T{ƒ--+tablertree_mpt2d_geomrtree_mpt2d_geomCREATE VIRTUAL TABLE "rtree_mpt2d_geom" USING rtree(id, minx, maxx, miny, maxy)Aƒ;‚;triggerrtree_mpt2d_geom_deletempt2dCREATE TRIGGER "rtree_mpt2d_geom_delete" AFTER DELETE ON "mpt2d"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_mpt2d_geom" WHERE id = OLD.ROWID; END‚ƒ=ƒGtriggerrtree_mpt2d_geom_update4mpt2dCREATE TRIGGER "rtree_mpt2d_geom_update4" AFTER UPDATE ON "mpt2d" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpt2d_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDƒƒ=…otriggerrtree_mpt2d_geom_update3mpt2dCREATE TRIGGER "rtree_mpt2d_geom_update3" AFTER UPDATE OF "geom" ON "mpt2d" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_mpt2d_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_mpt2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END 99‡D @ @ @ @ A A A A @À@ÀAA ¾yëU¾ƒ‚tablegc2dgc2dCREATE TABLE "gc2d" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_gc2d" PRIMARY KEY ("id"))ƒ;;9tablertree_mpt2d_geom_parentrtree_mpt2d_geom_parentCREATE TABLE "rtree_mpt2d_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER) ƒ99-tablertree_mpt2d_geom_rowidrtree_mpt2d_geom_rowidCREATE TABLE "rtree_mpt2d_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)ƒ77#tablertree_mpt2d_geom_nodertree_mpt2d_geom_nodeCREATE TABLE "rtree_mpt2d_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) ñûöñ    ‰`UÛ‰PgammaGPæ"@"@@@"@@xjbetaGPæ@4@@4@@@$@$@4@4@ delta‚2alphaGPæð?6@@6@ð?@5@5@6@5@5@6@5@5@ ƒyƒ)‡?triggerfgtu_gc2d_geomgc2dCREATE TRIGGER "fgtu_gc2d_geom" BEFORE UPDATE OF "geom" ON "gc2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "gc2d" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒeƒ)‡triggerfgti_gc2d_geomgc2dCREATE TRIGGER "fgti_gc2d_geom" BEFORE INSERT ON "gc2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "gc2d" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END ¼h¼ƒ(ƒ)†triggerfgsu_gc2d_geomgc2dCREATE TRIGGER "fgsu_gc2d_geom" BEFORE UPDATE OF "geom" ON "gc2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "gc2d" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); ENDƒƒ)…utriggerfgsi_gc2d_geomgc2dCREATE TRIGGER "fgsi_gc2d_geom" BEFORE INSERT ON "gc2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "gc2d" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END ZÁ\Z~ƒ;ƒ7triggerrtree_gc2d_geom_update2gc2dCREATE TRIGGER "rtree_gc2d_geom_update2" AFTER UPDATE OF "geom" ON "gc2d" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_gc2d_geom" WHERE id = OLD.ROWID; END‚aƒ;„}triggerrtree_gc2d_geom_update1gc2dCREATE TRIGGER "rtree_gc2d_geom_update1" AFTER UPDATE OF "geom" ON "gc2d" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_gc2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚;ƒ9„3triggerrtree_gc2d_geom_insertgc2dCREATE TRIGGER "rtree_gc2d_geom_insert" AFTER INSERT ON "gc2d" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_gc2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END $f_Ÿ$ xƒ ++)tablertree_gc2d_geomrtree_gc2d_geomCREATE VIRTUAL TABLE "rtree_gc2d_geom" USING rtree(id, minx, maxx, miny, maxy)<ƒ9‚5triggerrtree_gc2d_geom_deletegc2dCREATE TRIGGER "rtree_gc2d_geom_delete" AFTER DELETE ON "gc2d"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_gc2d_geom" WHERE id = OLD.ROWID; END‚ƒ;ƒAtriggerrtree_gc2d_geom_update4gc2dCREATE TRIGGER "rtree_gc2d_geom_update4" AFTER UPDATE ON "gc2d" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_gc2d_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDƒƒ;…gtriggerrtree_gc2d_geom_update3gc2dCREATE TRIGGER "rtree_gc2d_geom_update3" AFTER UPDATE OF "geom" ON "gc2d" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_gc2d_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_gc2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END 99‡D ?€A°@@A°@ A @@A AA@@ Ã|ñ^Ã$‚ tablegc2dmgc2dm&CREATE TABLE "gc2dm" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_gc2dm" PRIMARY KEY ("id"))ƒ#997tablertree_gc2d_geom_parentrtree_gc2d_geom_parent%CREATE TABLE "rtree_gc2d_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)ƒ"77+tablertree_gc2d_geom_rowidrtree_gc2d_geom_rowid$CREATE TABLE "rtree_gc2d_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)ƒ!55!tablertree_gc2d_geom_nodertree_gc2d_geom_node"CREATE TABLE "rtree_gc2d_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) ñûöñ    @8-š@X(gammaGPæ"@"@@@×Ñ"@@@‚betaGPæ@4@@4@×Ñ@@@Ò$@$@@4@4@ @ deltaEƒalphaGPæð?6@@6@×Ñð?@@Ó5@5@@6@5@@5@6@ @5@5@@ ƒ~ƒ&+‡Etriggerfgtu_gc2dm_geomgc2dmCREATE TRIGGER "fgtu_gc2dm_geom" BEFORE UPDATE OF "geom" ON "gc2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "gc2dm" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒjƒ%+‡triggerfgti_gc2dm_geomgc2dmCREATE TRIGGER "fgti_gc2dm_geom" BEFORE INSERT ON "gc2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "gc2dm" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END ²c²ƒ-ƒ(+†#triggerfgsu_gc2dm_geomgc2dmCREATE TRIGGER "fgsu_gc2dm_geom" BEFORE UPDATE OF "geom" ON "gc2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "gc2dm" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); ENDƒƒ'+…{triggerfgsi_gc2dm_geomgc2dmCREATE TRIGGER "fgsi_gc2dm_geom" BEFORE INSERT ON "gc2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "gc2dm" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END K¼RK‚ƒ+=ƒ=triggerrtree_gc2dm_geom_update2gc2dmCREATE TRIGGER "rtree_gc2dm_geom_update2" AFTER UPDATE OF "geom" ON "gc2dm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_gc2dm_geom" WHERE id = OLD.ROWID; END‚fƒ*=…triggerrtree_gc2dm_geom_update1gc2dmCREATE TRIGGER "rtree_gc2dm_geom_update1" AFTER UPDATE OF "geom" ON "gc2dm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_gc2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚@ƒ);„9triggerrtree_gc2dm_geom_insertgc2dmCREATE TRIGGER "rtree_gc2dm_geom_insert" AFTER INSERT ON "gc2dm" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_gc2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END `T{ƒ/--+tablertree_gc2dm_geomrtree_gc2dm_geomCREATE VIRTUAL TABLE "rtree_gc2dm_geom" USING rtree(id, minx, maxx, miny, maxy)Aƒ.;‚;triggerrtree_gc2dm_geom_deletegc2dmCREATE TRIGGER "rtree_gc2dm_geom_delete" AFTER DELETE ON "gc2dm"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_gc2dm_geom" WHERE id = OLD.ROWID; END‚ƒ-=ƒGtriggerrtree_gc2dm_geom_update4gc2dmCREATE TRIGGER "rtree_gc2dm_geom_update4" AFTER UPDATE ON "gc2dm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_gc2dm_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDƒƒ,=…otriggerrtree_gc2dm_geom_update3gc2dmCREATE TRIGGER "rtree_gc2dm_geom_update3" AFTER UPDATE OF "geom" ON "gc2dm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_gc2dm_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_gc2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END 99‡D ?€A°@@A°@ A @@A AA@@ ºyëUºƒ3‚ tablegc3dzgc3dz0CREATE TABLE "gc3dz" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_gc3dz" PRIMARY KEY ("id"))ƒ2;;9tablertree_gc2dm_geom_parentrtree_gc2dm_geom_parent.CREATE TABLE "rtree_gc2dm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER) ƒ199-tablertree_gc2dm_geom_rowidrtree_gc2dm_geom_rowid-CREATE TABLE "rtree_gc2dm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)ƒ077#tablertree_gc2dm_geom_nodertree_gc2dm_geom_node+CREATE TABLE "rtree_gc2dm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) ñûöñ    `±X·] º_ º`XXAU!geo3dzgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyOW-U!geo3dzmgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyRV3U!geo3dzmgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyYUAU!geo3dzmgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyNT-U!gc3dzmgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyQS3U!gc3dzmgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyXRAU!gc3dzmgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyMQ-U!gc3dzgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyPP3U!gc3dzgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyWOAU!gc3dzgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyMN-U!gc2dmgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-only @8-š@X(gammaGPæ"@"@@@ïé"@@@‚betaGPæ@4@@4@ïé@@@ê$@$@@4@4@ @ deltaEƒalphaGPæð?6@@6@ïéð?@@ë5@5@@6@5@@5@6@ @5@5@@ ƒ~ƒ5+‡Etriggerfgtu_gc3dz_geomgc3dzCREATE TRIGGER "fgtu_gc3dz_geom" BEFORE UPDATE OF "geom" ON "gc3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "gc3dz" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒjƒ4+‡triggerfgti_gc3dz_geomgc3dzCREATE TRIGGER "fgti_gc3dz_geom" BEFORE INSERT ON "gc3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "gc3dz" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END ²c²ƒ-ƒ7+†#triggerfgsu_gc3dz_geomgc3dzCREATE TRIGGER "fgsu_gc3dz_geom" BEFORE UPDATE OF "geom" ON "gc3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "gc3dz" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); ENDƒƒ6+…{triggerfgsi_gc3dz_geomgc3dzCREATE TRIGGER "fgsi_gc3dz_geom" BEFORE INSERT ON "gc3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "gc3dz" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END Ø)Mu”¶à#Mm»ÜýØ$3test_pkgeomgpkg_srs_id_triggerb+Atest_pkgeomgpkg_geometry_type_triggera#3pg3dzmgeomgpkg_srs_id_trigger#'A pt2dgeomgpkg_geometry_type_trigger-pt2dgeomgpkg_rtree_index!3pt2dgeomgpkg_srs_id_trigger)Apt2dmgeomgpkg_geometry_type_trigger-pt2dmgeomgpkg_rtree_index"3pt2dmgeomgpkg_srs_id_trigger)Apt3dzgeomgpkg_geometry_type_trigger-pt3dzgeomgpkg_rtree_index "3pt3dzgeomgpkg_srs_id_trigger*Apt3dzmgeomgpkg_geometry_type_trigger -pt3dzmgeomgpkg_rtree_index #3pt3dzmgeomgpkg_srs_id_trigger K¼RK‚ƒ:=ƒ=triggerrtree_gc3dz_geom_update2gc3dzCREATE TRIGGER "rtree_gc3dz_geom_update2" AFTER UPDATE OF "geom" ON "gc3dz" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_gc3dz_geom" WHERE id = OLD.ROWID; END‚fƒ9=…triggerrtree_gc3dz_geom_update1gc3dzCREATE TRIGGER "rtree_gc3dz_geom_update1" AFTER UPDATE OF "geom" ON "gc3dz" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_gc3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚@ƒ8;„9triggerrtree_gc3dz_geom_insertgc3dzCREATE TRIGGER "rtree_gc3dz_geom_insert" AFTER INSERT ON "gc3dz" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_gc3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END `T{ƒ>--+tablertree_gc3dz_geomrtree_gc3dz_geomCREATE VIRTUAL TABLE "rtree_gc3dz_geom" USING rtree(id, minx, maxx, miny, maxy)Aƒ=;‚;triggerrtree_gc3dz_geom_deletegc3dzCREATE TRIGGER "rtree_gc3dz_geom_delete" AFTER DELETE ON "gc3dz"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_gc3dz_geom" WHERE id = OLD.ROWID; END‚ƒ<=ƒGtriggerrtree_gc3dz_geom_update4gc3dzCREATE TRIGGER "rtree_gc3dz_geom_update4" AFTER UPDATE ON "gc3dz" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_gc3dz_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDƒƒ;=…otriggerrtree_gc3dz_geom_update3gc3dzCREATE TRIGGER "rtree_gc3dz_geom_update3" AFTER UPDATE OF "geom" ON "gc3dz" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_gc3dz_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_gc3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END 99‡D ?€A°@@A°@ A @@A AA@@ ¶yëU¶ƒB‚tablegc3dzmgc3dzm:CREATE TABLE "gc3dzm" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_gc3dzm" PRIMARY KEY ("id"))ƒA;;9tablertree_gc3dz_geom_parentrtree_gc3dz_geom_parent9CREATE TABLE "rtree_gc3dz_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER) ƒ@99-tablertree_gc3dz_geom_rowidrtree_gc3dz_geom_rowid8CREATE TABLE "rtree_gc3dz_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)ƒ?77#tablertree_gc3dz_geom_nodertree_gc3dz_geom_node6CREATE TABLE "rtree_gc3dz_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) ñûöñ    øeø delta`8gammaGPæ"@"@@@¿ ¹ "@@@@(‚JbetaGPæ@4@@4@¿ ¹ @@@ @º $@$@@ð?4@4@ @@mƒRalphaGPæð?6@@6@¿ ¹ ð?@@@» 5@5@@@6@5@@@5@6@ @ @5@5@@@   ƒoƒC-‡#triggerfgti_gc3dzm_geomgc3dzmCREATE TRIGGER "fgti_gc3dzm_geom" BEFORE INSERT ON "gc3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "gc3dzm" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END WùWƒƒE-†triggerfgsi_gc3dzm_geomgc3dzmCREATE TRIGGER "fgsi_gc3dzm_geom" BEFORE INSERT ON "gc3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "gc3dzm" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END„ƒD-‡Ktriggerfgtu_gc3dzm_geomgc3dzmCREATE TRIGGER "fgtu_gc3dzm_geom" BEFORE UPDATE OF "geom" ON "gc3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "gc3dzm" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END J‚EƒG=„?triggerrtree_gc3dzm_geom_insertgc3dzmCREATE TRIGGER "rtree_gc3dzm_geom_insert" AFTER INSERT ON "gc3dzm" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_gc3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); ENDƒ2ƒF-†)triggerfgsu_gc3dzm_geomgc3dzmCREATE TRIGGER "fgsu_gc3dzm_geom" BEFORE UPDATE OF "geom" ON "gc3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "gc3dzm" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END …‘…‚ƒI?ƒCtriggerrtree_gc3dzm_geom_update2gc3dzmCREATE TRIGGER "rtree_gc3dzm_geom_update2" AFTER UPDATE OF "geom" ON "gc3dzm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_gc3dzm_geom" WHERE id = OLD.ROWID; END‚kƒH?… triggerrtree_gc3dzm_geom_update1gc3dzmCREATE TRIGGER "rtree_gc3dzm_geom_update1" AFTER UPDATE OF "geom" ON "gc3dzm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_gc3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END ZI{FƒL=‚Atriggerrtree_gc3dzm_geom_deletegc3dzmCREATE TRIGGER "rtree_gc3dzm_geom_delete" AFTER DELETE ON "gc3dzm"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_gc3dzm_geom" WHERE id = OLD.ROWID; END‚ ƒK?ƒMtriggerrtree_gc3dzm_geom_update4gc3dzmCREATE TRIGGER "rtree_gc3dzm_geom_update4" AFTER UPDATE ON "gc3dzm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_gc3dzm_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDƒ"ƒJ?…wtriggerrtree_gc3dzm_geom_update3gc3dzmCREATE TRIGGER "rtree_gc3dzm_geom_update3" AFTER UPDATE OF "geom" ON "gc3dzm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_gc3dzm_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_gc3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END (õdË(ƒQ‚tablegeo3dzmgeo3dzmDCREATE TABLE "geo3dzm" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_geo3dzm" PRIMARY KEY ("id"))ƒP==;tablertree_gc3dzm_geom_parentrtree_gc3dzm_geom_parentCCREATE TABLE "rtree_gc3dzm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER) ƒO;;/tablertree_gc3dzm_geom_rowidrtree_gc3dzm_geom_rowidBCREATE TABLE "rtree_gc3dzm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)ƒN99%tablertree_gc3dzm_geom_nodertree_gc3dzm_geom_nodeACREATE TABLE "rtree_gc3dzm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)~ƒM//-tablertree_gc3dzm_geomrtree_gc3dzm_geomCREATE VIRTUAL TABLE "rtree_gc3dzm_geom" USING rtree(id, minx, maxx, miny, maxy) 99‡D ?€A°@@A°@ A @@A AA@@ ñûöñ    §+i^‚W…"epsilonGPæ4@?@4@?@¾ » 4@4@@@5@4@@@4@5@@@4@4@@@» >@>@@@?@>@@@>@?@@@>@>@@@ delta?‚vgammaGPæ4@5@4@5@» 4@4@@@5@4@@@4@5@@@4@4@@@znbetaGPæ&@(@@ @º &@@@@(@ @@@W&alphaGPæ$@$@@@¹ $@@@@ ƒtƒR/‡)triggerfgti_geo3dzm_geomgeo3dzmCREATE TRIGGER "fgti_geo3dzm_geom" BEFORE INSERT ON "geo3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "geo3dzm" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END MôMƒ#ƒT/†triggerfgsi_geo3dzm_geomgeo3dzmCREATE TRIGGER "fgsi_geo3dzm_geom" BEFORE INSERT ON "geo3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "geo3dzm" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END„ƒS/‡Qtriggerfgtu_geo3dzm_geomgeo3dzmCREATE TRIGGER "fgtu_geo3dzm_geom" BEFORE UPDATE OF "geom" ON "geo3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "geo3dzm" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END ÷E÷‚JƒV?„Etriggerrtree_geo3dzm_geom_insertgeo3dzmCREATE TRIGGER "rtree_geo3dzm_geom_insert" AFTER INSERT ON "geo3dzm" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_geo3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); ENDƒ7ƒU/†/triggerfgsu_geo3dzm_geomgeo3dzmCREATE TRIGGER "fgsu_geo3dzm_geom" BEFORE UPDATE OF "geom" ON "geo3dzm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "geo3dzm" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END {Œ{‚ ƒXAƒItriggerrtree_geo3dzm_geom_update2geo3dzmCREATE TRIGGER "rtree_geo3dzm_geom_update2" AFTER UPDATE OF "geom" ON "geo3dzm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_geo3dzm_geom" WHERE id = OLD.ROWID; END‚pƒWA…triggerrtree_geo3dzm_geom_update1geo3dzmCREATE TRIGGER "rtree_geo3dzm_geom_update1" AFTER UPDATE OF "geom" ON "geo3dzm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_geo3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END oT>okKƒ[?‚Gtriggerrtree_geo3dzm_geom_deletegeo3dzmCREATE TRIGGER "rtree_geo3dzm_geom_delete" AFTER DELETE ON "geo3dzm"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_geo3dzm_geom" WHERE id = OLD.ROWID; END‚ƒZAƒStriggerrtree_geo3dzm_geom_update4geo3dzmCREATE TRIGGER "rtree_geo3dzm_geom_update4" AFTER UPDATE ON "geo3dzm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_geo3dzm_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDƒ(ƒYA…triggerrtree_geo3dzm_geom_update3geo3dzmCREATE TRIGGER "rtree_geo3dzm_geom_update3" AFTER UPDATE OF "geom" ON "geo3dzm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_geo3dzm_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_geo3dzm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END {îZ¾ƒ`‚tablegeo3dzgeo3dzNCREATE TABLE "geo3dz" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_geo3dz" PRIMARY KEY ("id"))ƒ_??=tablertree_geo3dzm_geom_parentrtree_geo3dzm_geom_parentMCREATE TABLE "rtree_geo3dzm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)ƒ^==1tablertree_geo3dzm_geom_rowidrtree_geo3dzm_geom_rowidLCREATE TABLE "rtree_geo3dzm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER) ƒ];;'tablertree_geo3dzm_geom_nodertree_geo3dzm_geom_nodeKCREATE TABLE "rtree_geo3dzm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)ƒ\11/tablertree_geo3dzm_geomrtree_geo3dzm_geomCREATE VIRTUAL TABLE "rtree_geo3dzm_geom" USING rtree(id, minx, maxx, miny, maxy) 99‡D A A @€@€A0A@@ AA A¨A A¨A AøA Aø ìûöñì     |¯C¡–|‚„"epsilonGPæ4@?@4@?@îë4@4@@5@4@@4@5@@4@4@@ë>@>@@?@>@@>@?@@>@>@@ delta‚6gammaGPæ4@5@4@5@ë4@4@@5@4@@4@5@@4@4@@jNbetaGPæ&@(@@ @ê&@@@(@ @@OalphaGPæ$@$@@@é$@@@   ƒoƒa-‡#triggerfgti_geo3dz_geomgeo3dzCREATE TRIGGER "fgti_geo3dz_geom" BEFORE INSERT ON "geo3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "geo3dz" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END WùWƒƒc-†triggerfgsi_geo3dz_geomgeo3dzCREATE TRIGGER "fgsi_geo3dz_geom" BEFORE INSERT ON "geo3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "geo3dz" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END„ƒb-‡Ktriggerfgtu_geo3dz_geomgeo3dzCREATE TRIGGER "fgtu_geo3dz_geom" BEFORE UPDATE OF "geom" ON "geo3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "geo3dz" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END J‚Eƒe=„?triggerrtree_geo3dz_geom_insertgeo3dzCREATE TRIGGER "rtree_geo3dz_geom_insert" AFTER INSERT ON "geo3dz" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_geo3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); ENDƒ2ƒd-†)triggerfgsu_geo3dz_geomgeo3dzCREATE TRIGGER "fgsu_geo3dz_geom" BEFORE UPDATE OF "geom" ON "geo3dz" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "geo3dz" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END ·­]°`µf ·Rb3U!test_pkgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyYaAU!test_pkgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyM`-U!geo2dgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyP_3U!geo2dgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyW^AU!geo2dgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyN]-U!geo2dmgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyQ\3U!geo2dmgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyX[AU!geo2dmgeomgpkg_geometry_type_triggerGeoPackage 1.0 Specification Annex Nwrite-onlyNZ-U!geo3dzgeomgpkg_rtree_indexGeoPackage 1.0 Specification Annex Lwrite-onlyQY3U!geo3dzgeomgpkg_srs_id_triggerGeoPackage 1.0 Specification Annex Nwrite-only …‘…‚ƒg?ƒCtriggerrtree_geo3dz_geom_update2geo3dzCREATE TRIGGER "rtree_geo3dz_geom_update2" AFTER UPDATE OF "geom" ON "geo3dz" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_geo3dz_geom" WHERE id = OLD.ROWID; END‚kƒf?… triggerrtree_geo3dz_geom_update1geo3dzCREATE TRIGGER "rtree_geo3dz_geom_update1" AFTER UPDATE OF "geom" ON "geo3dz" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_geo3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END ZI{Fƒj=‚Atriggerrtree_geo3dz_geom_deletegeo3dzCREATE TRIGGER "rtree_geo3dz_geom_delete" AFTER DELETE ON "geo3dz"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_geo3dz_geom" WHERE id = OLD.ROWID; END‚ ƒi?ƒMtriggerrtree_geo3dz_geom_update4geo3dzCREATE TRIGGER "rtree_geo3dz_geom_update4" AFTER UPDATE ON "geo3dz" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_geo3dz_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDƒ"ƒh?…wtriggerrtree_geo3dz_geom_update3geo3dzCREATE TRIGGER "rtree_geo3dz_geom_update3" AFTER UPDATE OF "geom" ON "geo3dz" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_geo3dz_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_geo3dz_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END ,õdË,ƒo‚tablegeo2dmgeo2dmZCREATE TABLE "geo2dm" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_geo2dm" PRIMARY KEY ("id"))ƒn==;tablertree_geo3dz_geom_parentrtree_geo3dz_geom_parentXCREATE TABLE "rtree_geo3dz_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER) ƒm;;/tablertree_geo3dz_geom_rowidrtree_geo3dz_geom_rowidWCREATE TABLE "rtree_geo3dz_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)ƒl99%tablertree_geo3dz_geom_nodertree_geo3dz_geom_nodeVCREATE TABLE "rtree_geo3dz_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)~ƒk//-tablertree_geo3dz_geomrtree_geo3dz_geomCREATE VIRTUAL TABLE "rtree_geo3dz_geom" USING rtree(id, minx, maxx, miny, maxy) 99‡D A A @€@€A0A@@ AA A¨A A¨A AøA Aø ìûöñì     À€B>! =test_pkfeaturestest_pk 2014-05-22T09:02:22.751Z æ< =geo2dfeaturesgeo2d 2014-05-22T09:02:22.625Z æ> =geo2dmfeaturesgeo2dm 2014-05-22T09:02:22.368Z æ> =geo3dzfeaturesgeo3dz 2014-05-22T09:02:22.201Z æ |¯C¡–|‚„"epsilonGPæ4@?@4@?@ÖÓ4@4@@5@4@@4@5@@4@4@@Ó>@>@@?@>@@>@?@@>@>@@ delta‚6gammaGPæ4@5@4@5@Ó4@4@@5@4@@4@5@@4@4@@jNbetaGPæ&@(@@ @Ò&@@@(@ @@OalphaGPæ$@$@@@Ñ$@@@   ƒoƒp-‡#triggerfgti_geo2dm_geomgeo2dmCREATE TRIGGER "fgti_geo2dm_geom" BEFORE INSERT ON "geo2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "geo2dm" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END WùWƒƒr-†triggerfgsi_geo2dm_geomgeo2dmCREATE TRIGGER "fgsi_geo2dm_geom" BEFORE INSERT ON "geo2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "geo2dm" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END„ƒq-‡Ktriggerfgtu_geo2dm_geomgeo2dmCREATE TRIGGER "fgtu_geo2dm_geom" BEFORE UPDATE OF "geom" ON "geo2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "geo2dm" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END J‚Eƒt=„?triggerrtree_geo2dm_geom_insertgeo2dmCREATE TRIGGER "rtree_geo2dm_geom_insert" AFTER INSERT ON "geo2dm" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_geo2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); ENDƒ2ƒs-†)triggerfgsu_geo2dm_geomgeo2dmCREATE TRIGGER "fgsu_geo2dm_geom" BEFORE UPDATE OF "geom" ON "geo2dm" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "geo2dm" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END …‘…‚ƒv?ƒCtriggerrtree_geo2dm_geom_update2geo2dmCREATE TRIGGER "rtree_geo2dm_geom_update2" AFTER UPDATE OF "geom" ON "geo2dm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_geo2dm_geom" WHERE id = OLD.ROWID; END‚kƒu?… triggerrtree_geo2dm_geom_update1geo2dmCREATE TRIGGER "rtree_geo2dm_geom_update1" AFTER UPDATE OF "geom" ON "geo2dm" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_geo2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END ZI{Fƒy=‚Atriggerrtree_geo2dm_geom_deletegeo2dmCREATE TRIGGER "rtree_geo2dm_geom_delete" AFTER DELETE ON "geo2dm"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_geo2dm_geom" WHERE id = OLD.ROWID; END‚ ƒx?ƒMtriggerrtree_geo2dm_geom_update4geo2dmCREATE TRIGGER "rtree_geo2dm_geom_update4" AFTER UPDATE ON "geo2dm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_geo2dm_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDƒ"ƒw?…wtriggerrtree_geo2dm_geom_update3geo2dmCREATE TRIGGER "rtree_geo2dm_geom_update3" AFTER UPDATE OF "geom" ON "geo2dm" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_geo2dm_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_geo2dm_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END 0õdË0ƒ~‚ tablegeo2dgeo2deCREATE TABLE "geo2d" ( "id" "INTEGER" NOT NULL, "name" "TEXT" NOT NULL, geom BLOB, CONSTRAINT "pk_geo2d" PRIMARY KEY ("id"))ƒ}==;tablertree_geo2dm_geom_parentrtree_geo2dm_geom_parentcCREATE TABLE "rtree_geo2dm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER) ƒ|;;/tablertree_geo2dm_geom_rowidrtree_geo2dm_geom_rowidbCREATE TABLE "rtree_geo2dm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)ƒ{99%tablertree_geo2dm_geom_nodertree_geo2dm_geom_nodeaCREATE TABLE "rtree_geo2dm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)~ƒz//-tablertree_geo2dm_geomrtree_geo2dm_geomCREATE VIRTUAL TABLE "rtree_geo2dm_geom" USING rtree(id, minx, maxx, miny, maxy) 99‡D A A @€@€A0A@@ AA A¨A A¨A AøA Aø ìûöñì     JJl‘ºÙû%Eh’²Õ!-mpt3dzmgeomgpkg_rtree_index?$3mpt3dzmgeomgpkg_srs_id_trigger>(Apg2dgeomgpkg_geometry_type_trigger-pg2dgeomgpkg_rtree_index!3pg2dgeomgpkg_srs_id_trigger)Apg2dmgeomgpkg_geometry_type_trigger-pg2dmgeomgpkg_rtree_index"3pg2dmgeomgpkg_srs_id_trigger)Apg3dzgeomgpkg_geometry_type_trigger-pg3dzgeomgpkg_rtree_index!"3pg3dzgeomgpkg_srs_id_trigger *Apg3dzmgeomgpkg_geometry_type_trigger" õ·[ÚÏõWƒ"epsilonGPæ4@?@4@?@4@4@5@4@4@5@4@4@>@>@?@>@>@?@>@>@ deltavgammaGPæ4@5@4@5@4@4@5@4@4@5@4@4@Z.betaGPæ&@(@@ @&@@(@ @GalphaGPæ$@$@@@$@@ Hè϶œaC$ ïÔ¸–uT4íɤ„eF(åà‚eH geo2dmgeomGEOMETRYæ geo3dzgeomGEOMETRYæ geo3dzmgeomGEOMETRYæ!) gc3dzmgeomGEOMCOLLECTIONæ ) gc3dzgeomGEOMCOLLECTIONæ ) gc2dmgeomGEOMCOLLECTIONæ)gc2dgeomGEOMCOLLECTIONæ!mpt2dgeomMULTIPOINTæ! mpt2dmgeomMULTIPOINTæ! mpt3dzgeomMULTIPOINTæ! mpt3dzmgeomMULTIPOINTæ#+ mln3dzmgeomMULTILINESTRINGæ"+ mln3dzgeomMULTILINESTRINGæ"+ mln2dmgeomMULTILINESTRINGæ!+mln2dgeomMULTILINESTRINGæ%mpg2dgeomMULTIPOLYGONæ% mpg2dmgeomMULTIPOLYGONæ% mpg3dzgeomMULTIPOLYGONæ % mpg3dzmgeomMULTIPOLYGONæ  pg3dzmgeomPOLYGONæ  pg3dzgeomPOLYGONæ  pg2dmgeomPOLYGONæ pg2dgeomPOLYGONæ! ln3dzmgeomLINESTRINGæ! ln3dzgeomLINESTRINGæ! ln2dmgeomLINESTRINGæ!ln2dgeomLINESTRINGæ pt3dzmgeomPOINTæ pt3dzgeomPOINTæ pt2dmgeomPOINTæpt2dgeomPOINTæ ÆäÆ!test_pkgeomGEOMETRYæ geo2dgeomGEOMETRYæ ƒ~„+‡Etriggerfgtu_geo2d_geomgeo2dCREATE TRIGGER "fgtu_geo2d_geom" BEFORE UPDATE OF "geom" ON "geo2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "geo2d" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); ENDƒjƒ+‡triggerfgti_geo2d_geomgeo2dCREATE TRIGGER "fgti_geo2d_geom" BEFORE INSERT ON "geo2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "geo2d" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END ²c²ƒ-„+†#triggerfgsu_geo2d_geomgeo2dCREATE TRIGGER "fgsu_geo2d_geom" BEFORE UPDATE OF "geom" ON "geo2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "geo2d" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); ENDƒ„+…{triggerfgsi_geo2d_geomgeo2dCREATE TRIGGER "fgsi_geo2d_geom" BEFORE INSERT ON "geo2d" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "geo2d" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END K¼RK‚„=ƒ=triggerrtree_geo2d_geom_update2geo2dCREATE TRIGGER "rtree_geo2d_geom_update2" AFTER UPDATE OF "geom" ON "geo2d" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_geo2d_geom" WHERE id = OLD.ROWID; END‚f„=…triggerrtree_geo2d_geom_update1geo2dCREATE TRIGGER "rtree_geo2d_geom_update1" AFTER UPDATE OF "geom" ON "geo2d" WHEN OLD.ROWID = NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_geo2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END‚@„;„9triggerrtree_geo2d_geom_insertgeo2dCREATE TRIGGER "rtree_geo2d_geom_insert" AFTER INSERT ON "geo2d" WHEN (new."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN INSERT OR REPLACE INTO "rtree_geo2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END `T{„ --+tablertree_geo2d_geomrtree_geo2d_geomCREATE VIRTUAL TABLE "rtree_geo2d_geom" USING rtree(id, minx, maxx, miny, maxy)A„;‚;triggerrtree_geo2d_geom_deletegeo2dCREATE TRIGGER "rtree_geo2d_geom_delete" AFTER DELETE ON "geo2d"WHEN old."geom" NOT NULL BEGIN DELETE FROM "rtree_geo2d_geom" WHERE id = OLD.ROWID; END‚„=ƒGtriggerrtree_geo2d_geom_update4geo2dCREATE TRIGGER "rtree_geo2d_geom_update4" AFTER UPDATE ON "geo2d" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" IS NULL OR ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_geo2d_geom" WHERE id IN (OLD.ROWID, NEW.ROWID); ENDƒ„=…otriggerrtree_geo2d_geom_update3geo2dCREATE TRIGGER "rtree_geo2d_geom_update3" AFTER UPDATE OF "geom" ON "geo2d" WHEN OLD.ROWID != NEW.ROWID AND (NEW."geom" NOT NULL AND NOT ST_IsEmpty(NEW."geom")) BEGIN DELETE FROM "rtree_geo2d_geom" WHERE id = OLD.ROWID; INSERT OR REPLACE INTO "rtree_geo2d_geom" VALUES (NEW.ROWID, ST_MinX(NEW."geom"), ST_MaxX(NEW."geom"), ST_MinY(NEW."geom"), ST_MaxY(NEW."geom")); END 99‡D A A @€@€A0A@@ AA A¨A A¨A AøA Aø Q$yëU$ x„ ƒEtabletest_pktest_pkpCREATE TABLE "test_pk" ( "first_name" "TEXT" NOT NULL, "last_name" "TEXT" NOT NULL, "value1" "DOUBLE" NOT NULL, "value2" "DOUBLE" NOT NULL, geom BLOB, CONSTRAINT "pk_test_pk" PRIMARY KEY ("last_name", "first_name")).„Aindexsqlite_autoindex_test_pk_1test_pkq„ ;;9tablertree_geo2d_geom_parentrtree_geo2d_geom_parentoCREATE TABLE "rtree_geo2d_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER) „ 99-tablertree_geo2d_geom_rowidrtree_geo2d_geom_rowidnCREATE TABLE "rtree_geo2d_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)„ 77#tablertree_geo2d_geom_nodertree_geo2d_geom_nodelCREATE TABLE "rtree_geo2d_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) ìûöñì     ÄYÃO.Ähepsilonfive@@I@GPæ@@"@"@@"@deltafour@™™™™™š@D333333r.gammathree@ ffffff@>LÌÌÌÌÍGPæð?ð?ð?ð?vbetatwo@™™™™™š@4333333GPæ(@*@@@(@@*@@*@@(@@$‚alphaone?ñ™™™™™š@$333333GPæð?ð?ð?ð?ð?ð? ¶¶ÇóÖæfiveepsilonfourdeltathreegamma twobeta  onealpha ƒt„/‡)triggerfgti_test_pk_geomtest_pkCREATE TRIGGER "fgti_test_pk_geom" BEFORE INSERT ON "test_pk" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "test_pk" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END MôMƒ#„/†triggerfgsi_test_pk_geomtest_pkCREATE TRIGGER "fgsi_test_pk_geom" BEFORE INSERT ON "test_pk" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'insert on "test_pk" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); END„„/‡Qtriggerfgtu_test_pk_geomtest_pkCREATE TRIGGER "fgtu_test_pk_geom" BEFORE UPDATE OF "geom" ON "test_pk" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "test_pk" on "geom" violates constraint: ST_GeometryType("geom") is not assignable from gpkg_geometry_columns.geometry_type_name value') WHERE (SELECT geometry_type_name FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND gpkg_IsAssignable(geometry_type_name, ST_GeometryType(NEW."geom")) = 0); END EEOOW˜Èbƒ7„/†/triggerfgsu_test_pk_geomtest_pkCREATE TRIGGER "fgsu_test_pk_geom" BEFORE UPDATE OF "geom" ON "test_pk" FOR EACH ROW BEGIN SELECT RAISE (ROLLBACK, 'update of "test_pk" on "geom" violates constraint: ST_SRID("geom") does not match gpkg_geometry_columns.srs_id value') WHERE (SELECT srs_id FROM gpkg_geometry_columns WHERE Lower(table_name) = Lower('geom') AND Lower(column_name) = Lower('geom') AND ST_SRID(NEW."geom") <> srs_id); ENDxvwulibspatialite-4.3.0a/test/inspire-data-example.xml0000664000175000017500000004265612544707704017171 00000000000000 029097fd-2ef2-487c-a5ca-6ec7a3dbac53 eng 024027fd-3ef2-487c-a8ca-6ec8a3dfac57 dataset SDI Unit, Institute for Environment & Sustainability, Joint Research Centre image2000@jrc.it pointOfContact 2005-04-18 ISO19115 2003/Cor.1:2006 Image2000 Product 1 (nl2) Multispectral 2007-09-15 creation 2007-11-15T11:15:00 revision 2007-09-15 publication image2000_1_nl2_multi http://image2000.jrc.it IMAGE2000 product 1 individual orthorectified scenes. SDI Unit, Institute for Environment and Sustainability, Joint Research Centre image2000@jrc.it custodian Land cover GemetInspireTheme 2008-06-01 publication no conditions apply otherRestrictions no limitations 25.0 50000 eng imageryBaseMapsEarthCover 3.93 7.57 52.10 54.10 1977-03-10T11:45:30 2005-01-15T09:10:00 http://image2000.jrc.it/ dataset INSPIRE_D2.8.I.1 2011-05-15 publication See the referenced specification true Product 1 scenes correspond to the path/row of the Landsat orbit. All Image2000 product 1 scenes are ortho-corrected. The ortho-correction method consisted of using a physical model of the satellite's flight during the scene acquisition, which was then complemented with Ground Control Points (GCP's) and a Digital Elevation Model (DEM). Map projection information is attached to the model. The resulting product has excellent accuracy between the spectral bands, sub-pixel location accuracy throughout the image and excellent preservation of radiometric characteristics. The geometric correction was done on a Country basis - according to the relevant national map projection system(s). A rigorous orbital model was used. Control point measurements were used in a weighted least squares adjustment to estimate optimal values for the orbital and attitude parameters. The adjusted parameters were used to resample the raw scene by cubic convolution in a single step, instead of the usual two step procedure of first producing a system-corrected scene and then resampling a second time, thus causing unnecessary smoothing of the data. The final pixel size after resampling is 12.5m for the panchromatic band, 25m for the multispectral bands and 60m for the thermal band. All the orthorectified scenes are well within the requirement of Root Mean Square Error (RMSE) > 25m. libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/0000775000175000017500000000000012573314327017217 500000000000000libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupRaster7.testcase0000664000175000017500000000035012544707704025006 00000000000000RegisterStyledGroupRaster - DOUBLE coverage_name :memory: #use in-memory database SELECT SE_RegisterStyledGroupRaster('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupRaster('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVector12.testcase0000664000175000017500000000034412544707704024415 00000000000000UnRegisterVectorStyledLayer - Integer style_id :memory: #use in-memory database SELECT SE_UnRegisterVectorStyledLayer('alpha', 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyledLayer('alpha', 1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetparentid6.testcase0000664000175000017500000000057512544707704024662 00000000000000XB_GetParentId - valid XmlBLOB, no ParentIdentifier :memory: #use in-memory database SELECT XB_GetParentId(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); 1 # rows (not including the header row) 1 # columns XB_GetParentId(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupStyle10.testcase0000664000175000017500000000031412544707704025263 00000000000000UnRegisterGroupStyle - Integer force :memory: #use in-memory database SELECT SE_UnRegisterGroupStyle('alpha', 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterGroupStyle('alpha', 1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerVectorStyle5.testcase0000664000175000017500000000031412544707704025012 00000000000000RegisterVectorStyle - BLOB style :memory: #use in-memory database SELECT SE_RegisterVectorStyle(zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorStyle(zeroblob(100)) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRasterStyle4.testcase0000664000175000017500000000030012544707704025345 00000000000000UnRegisterRasterStyle - Integer style_id :memory: #use in-memory database SELECT SE_UnRegisterRasterStyle(1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyle(1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetschemauri3.testcase0000664000175000017500000000026412544707704025024 00000000000000XB_GetSchemaURI - DOUBLE XmlDocument :memory: #use in-memory database SELECT XB_GetSchemaURI(1.1); 1 # rows (not including the header row) 1 # columns XB_GetSchemaURI(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setVectorPaintOrder13.testcase0000664000175000017500000000036612544707704025016 00000000000000SetStyledGroupVectorPaintOrder - Int order :memory: #use in-memory database SELECT SE_SetStyledGroupVectorPaintOrder('alpha', 'beta', 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupVectorPaintOrder('alpha', 'beta', 1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVectorStyle6.testcase0000664000175000017500000000033012544707704025354 00000000000000UnRegisterVectorStyle - NULL second arg :memory: #use in-memory database SELECT SE_UnRegisterVectorStyle('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyle('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterrasterkeyword5.testcase0000664000175000017500000000036312544707704026003 00000000000000UnregisterRasterCoverageKeyword - NULL keyword :memory: #use in-memory database SELECT SE_UnregisterRasterCoverageKeyword('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_UnregisterRasterCoverageKeyword('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issldserststyle3.testcase0000664000175000017500000000027612544707704024247 00000000000000XB_IsSldSeRasterStyle - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeRasterStyle(1.1); 1 # rows (not including the header row) 1 # columns XB_IsSldSeRasterStyle(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerVectorStyle2.testcase0000664000175000017500000000027112544707704025011 00000000000000RegisterVectorStyle - Integer style :memory: #use in-memory database SELECT SE_RegisterVectorStyle(1); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorStyle(1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltoblob18.testcase0000664000175000017500000000106612544707704023055 00000000000000XB_Create - valid XMLDocument, UTF-8 :memory: #use in-memory database SELECT Hex(XB_Create(x'3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D227574662D3822203F3E3C613E746578743C2F613E')); 1 # rows (not including the header row) 1 # columns Hex(XB_Create(x'3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D227574662D3822203F3E3C613E746578743C2F613E')) 0003AC320000003A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB3B1AFC8CD51284B2D2ACECCCFB35532D433505248CD4BCE4FC9CC4BB7552A2D49D3B55052B0B7B349B42B49AD28B1D14FB403009EE70FE6BC1DE1AC65DD| libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadGroupStyle2.testcase0000664000175000017500000000032312544707704024263 00000000000000ReloadGroupStyle - Double style ID :memory: #use in-memory database SELECT SE_ReloadGroupStyle(1.1, zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_ReloadGroupStyle(1.1, zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgettitle6.testcase0000664000175000017500000000055112544707704024167 00000000000000XB_GetTitle - valid XmlBLOB, no Title :memory: #use in-memory database SELECT XB_GetTitle(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); 1 # rows (not including the header row) 1 # columns XB_GetTitle(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/addfileid7.testcase0000664000175000017500000000111312544707704022667 00000000000000XB_AddFileId - valid - default namespace :memory: #use in-memory database SELECT XB_GetFileId(XB_AddFileId(XB_Create(CastToBlob('')), 'newfileid', NULL, 'http://www.isotc211.org/2005/gmd', 'gco', 'http://www.isotc211.org/2005/gco')); 1 # rows (not including the header row) 1 # columns XB_GetFileId(XB_AddFileId(XB_Create(CastToBlob('')), 'newfileid', NULL, 'http://www.isotc211.org/2005/gmd', 'gco', 'http://www.isotc211.org/2005/gco')):0 newfileid libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/createisometa6.testcase0000664000175000017500000000027312544707704023614 00000000000000CreateIsoMetadataTables - relaxed NEW:memory: #use in-memory database SELECT CreateIsoMetadataTables(1); 1 # rows (not including the header row) 1 # columns CreateIsoMetadataTables(1) 1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltoblob5.testcase0000664000175000017500000000055712544707704022775 00000000000000XB_Create - valid XMLDocument :memory: #use in-memory database SELECT Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E')); 1 # rows (not including the header row) 1 # columns Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E')) 0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setPaintOrder1.testcase0000664000175000017500000000034212544707704023542 00000000000000SetStyledGroupLayerPaintOrder - NULL item ID :memory: #use in-memory database SELECT SE_SetStyledGroupLayerPaintOrder(NULL, 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupLayerPaintOrder(NULL, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updaterasterextent1.testcase0000664000175000017500000000031212544707704024707 00000000000000UpdateRasterCoverageExtent - all coverages :memory: #use in-memory database SELECT SE_UpdateRasterCoverageExtent(); 1 # rows (not including the header row) 1 # columns SE_UpdateRasterCoverageExtent() 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg17.testcase0000664000175000017500000000043612544707704024621 00000000000000RegisterVectorCoverage - BLOB title :memory: #use in-memory database SELECT SE_RegisterVectorCoverage('alpha', 'table', 'geom', zeroblob(4), 'abstract'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage('alpha', 'table', 'geom', zeroblob(4), 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerIsoMeta1.testcase0000664000175000017500000000030212544707704024061 00000000000000RegisterIsoMetadata - NULL scope :memory: #use in-memory database SELECT RegisterIsoMetadata(NULL, NULL); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata(NULL, NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issldsestyle6.testcase0000664000175000017500000000066712544707704023525 00000000000000XB_IsSldSeVectorStyle - valid XmlBLOB (TRUE) :memory: #use in-memory database SELECT XB_IsSldSeVectorStyle(x'0041AB19000000190000000000BA0000CA0000DA0000DB0000DC0000DDCB3C5374796C65644C6179657244657363726970746F72202F3EBCB987BFABDD'); 1 # rows (not including the header row) 1 # columns XB_IsSldSeVectorStyle(x'0041AB19000000190000000000BA0000CA0000DA0000DB0000DC0000DDCB3C5374796C65644C6179657244657363726970746F72202F3EBCB987BFABDD') 1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setvectorinfos2.testcase0000664000175000017500000000035212544707704024036 00000000000000SetVectorCoverageInfos - Int coverage :memory: #use in-memory database SELECT SE_SetVectorCoverageInfos(1, 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SE_SetVectorCoverageInfos(1, 'title', 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg9.testcase0000664000175000017500000000036412544707704024542 00000000000000RegisterVectorCoverage - NULL f_geometry_column :memory: #use in-memory database SELECT SE_RegisterVectorCoverage('alpha', 'table', NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage('alpha', 'table', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setRasterPaintOrder8.testcase0000664000175000017500000000040512544707704024732 00000000000000SetStyledGroupRasterPaintOrder - BLOB coverage :memory: #use in-memory database SELECT SE_SetStyledGroupRasterPaintOrder('alpha', zeroblob(4), 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupRasterPaintOrder('alpha', zeroblob(4), 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerRaster8.testcase0000664000175000017500000000034712544707704024000 00000000000000RegisterRasterStyledLayer - TEXT style_name :memory: #use in-memory database SELECT SE_RegisterRasterStyledLayer('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterStyledLayer('alpha', 'beta') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltoblob17.testcase0000664000175000017500000000044712544707704023056 00000000000000XB_Create - valid XMLDocument, compressed, SchemaURI (fail) :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, 'alpha.xsd'); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, 'alpha.xsd') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadRasterStyle6.testcase0000664000175000017500000000033512544707704024436 00000000000000ReloadRasterStyle - Text style_name :memory: #use in-memory database SELECT SE_ReloadRasterStyle('alpha', zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_ReloadRasterStyle('alpha', zeroblob(100)) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupVector2.testcase0000664000175000017500000000034012544707704025002 00000000000000RegisterStyledGroupVector - Integer group_name :memory: #use in-memory database SELECT SE_RegisterStyledGroupVector(1, 'beta'); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupVector(1, 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVectorStyle7.testcase0000664000175000017500000000033012544707704025355 00000000000000UnRegisterVectorStyle - DOUBLE second arg :memory: #use in-memory database SELECT SE_UnRegisterVectorStyle('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyle('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVectorStyle1.testcase0000664000175000017500000000030512544707704025351 00000000000000UnRegisterVectorStyle - NULL style_id :memory: #use in-memory database SELECT SE_UnRegisterVectorStyle(NULL); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyle(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerVector9.testcase0000664000175000017500000000034012544707704023774 00000000000000RegisterVectorStyledLayer - NULL style :memory: #use in-memory database SELECT SE_RegisterVectorStyledLayer('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorStyledLayer('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVectorStyle3.testcase0000664000175000017500000000032712544707704025357 00000000000000UnRegisterVectorStyle - BLOB style_id :memory: #use in-memory database SELECT SE_UnRegisterVectorStyle(zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyle(zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issldsestyle5.testcase0000664000175000017500000000032312544707704023511 00000000000000XB_IsSldSeVectorStyle - invalid XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeVectorStyle(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_IsSldSeVectorStyle(zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri1.testcase0000664000175000017500000000031012544707704026547 00000000000000XB_GetInternalSchemaURI - NULL XmlBLOB :memory: #use in-memory database SELECT XB_GetInternalSchemaURI(NULL); 1 # rows (not including the header row) 1 # columns XB_GetInternalSchemaURI(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerVector13.testcase0000664000175000017500000000035512544707704024055 00000000000000RegisterVectorStyledLayer - BLOB style :memory: #use in-memory database SELECT SE_RegisterVectorStyledLayer('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorStyledLayer('alpha', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmluncompress6.testcase0000664000175000017500000000106112544707704023702 00000000000000XB_Uncompress - valid XmlBLOB (compressed - legacy blob) :memory: #use in-memory database SELECT Hex(XB_Uncompress(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD')); 1 # rows (not including the header row) 1 # columns Hex(XB_Uncompress(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD')) 0001AC12000000120000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC2445E134DD libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg11.testcase0000664000175000017500000000036412544707704024613 00000000000000RegisterVectorCoverage - Double f_geometry_column :memory: #use in-memory database SELECT SE_RegisterVectorCoverage('alpha', 'table', 1.1); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage('alpha', 'table', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri2.testcase0000664000175000017500000000030512544707704026554 00000000000000XB_GetInternalSchemaURI - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_GetInternalSchemaURI(1); 1 # rows (not including the header row) 1 # columns XB_GetInternalSchemaURI(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setvectorinfos3.testcase0000664000175000017500000000036112544707704024037 00000000000000SetVectorCoverageInfos - Double coverage :memory: #use in-memory database SELECT SE_SetVectorCoverageInfos(1.1, 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SE_SetVectorCoverageInfos(1.1, 'title', 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetabstract4.testcase0000664000175000017500000000030312544707704024642 00000000000000XB_GetAbstract - BLOB XmlDocument :memory: #use in-memory database SELECT XB_GetAbstract(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetAbstract(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorkeyword3.testcase0000664000175000017500000000037012544707704026001 00000000000000UnregisterVectorCoverageKeyword - Double coverage :memory: #use in-memory database SELECT SE_UnregisterVectorCoverageKeyword(1.1, 'keyword'); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverageKeyword(1.1, 'keyword') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltextfromblob8.testcase0000664000175000017500000000067512544707704024227 00000000000000XB_GetDocument - valid XmlBLOB (compressed) :memory: #use in-memory database SELECT XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); 1 # rows (not including the header row) 1 # columns XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') text libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadVectorStyle8.testcase0000664000175000017500000000030612544707704024440 00000000000000ReloadVectorStyle - Integer style :memory: #use in-memory database SELECT SE_ReloadVectorStyle('alpha', -1); 1 # rows (not including the header row) 1 # columns SE_ReloadVectorStyle('alpha', -1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/iscompressedxmlblob6.testcase0000664000175000017500000000065712544707704025055 00000000000000XB_IsCompressed - valid XmlBLOB (compressed) :memory: #use in-memory database SELECT XB_IsCompressed(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); 1 # rows (not including the header row) 1 # columns XB_IsCompressed(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') 1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmluncompress5.testcase0000664000175000017500000000027612544707704023710 00000000000000XB_Uncompress - invalid XmlBLOB :memory: #use in-memory database SELECT XB_Uncompress(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_Uncompress(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgettitle5.testcase0000664000175000017500000000027112544707704024165 00000000000000XB_GetTitle - invalid XmlBLOB :memory: #use in-memory database SELECT XB_GetTitle(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetTitle(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setfileid2.testcase0000664000175000017500000000062712544707704022736 00000000000000XB_SetFileId - not ISO Metadata XmlBLOB :memory: #use in-memory database SELECT XB_SetFileId(XB_Create(CastToBlob('a')), 'alpha'); 1 # rows (not including the header row) 1 # columns XB_SetFileId(XB_Create(CastToBlob('a')), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadRasterStyle2.testcase0000664000175000017500000000032612544707704024432 00000000000000ReloadRasterStyle - Double style_id :memory: #use in-memory database SELECT SE_ReloadRasterStyle(1.1, zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_ReloadRasterStyle(1.1, zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/Makefile.in0000664000175000017500000007525212573313636021221 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_libxml2_tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = addfileid1.testcase \ addfileid2.testcase \ addfileid3.testcase \ addfileid4.testcase \ addfileid5.testcase \ addfileid6.testcase \ addfileid7.testcase \ addparentid1.testcase \ addparentid2.testcase \ addparentid3.testcase \ addparentid4.testcase \ addparentid5.testcase \ addparentid6.testcase \ addparentid7.testcase \ createisometa1.testcase \ createisometa2.testcase \ createisometa3.testcase \ createisometa4.testcase \ createisometa5.testcase \ createisometa6.testcase \ createstyling1.testcase \ createstyling2.testcase \ createstyling3.testcase \ createstyling4.testcase \ createstyling5.testcase \ createstyling6.testcase \ createstyling7.testcase \ createstyling8.testcase \ createstyling9.testcase \ createstyling10.testcase \ createstyling11.testcase \ getIsoMetaId1.testcase \ getIsoMetaId2.testcase \ getIsoMetaId3.testcase \ getIsoMetaId4.testcase \ getIsoMetaId5.testcase \ iscompressedxmlblob1.testcase \ iscompressedxmlblob2.testcase \ iscompressedxmlblob3.testcase \ iscompressedxmlblob4.testcase \ iscompressedxmlblob5.testcase \ iscompressedxmlblob6.testcase \ iscompressedxmlblob7.testcase \ isisometadata1.testcase \ isisometadata2.testcase \ isisometadata3.testcase \ isisometadata4.testcase \ isisometadata5.testcase \ isisometadata6.testcase \ isisometadata7.testcase \ isschemavalidatedxmlblob1.testcase \ isschemavalidatedxmlblob2.testcase \ isschemavalidatedxmlblob3.testcase \ isschemavalidatedxmlblob4.testcase \ isschemavalidatedxmlblob5.testcase \ isschemavalidatedxmlblob6.testcase \ issldserststyle1.testcase \ issldserststyle2.testcase \ issldserststyle3.testcase \ issldserststyle4.testcase \ issldserststyle5.testcase \ issldserststyle6.testcase \ issldserststyle7.testcase \ issldsestyle1.testcase \ issldsestyle2.testcase \ issldsestyle3.testcase \ issldsestyle4.testcase \ issldsestyle5.testcase \ issldsestyle6.testcase \ issldsestyle7.testcase \ issvg1.testcase \ issvg2.testcase \ issvg3.testcase \ issvg4.testcase \ issvg5.testcase \ issvg6.testcase \ issvg7.testcase \ isvalidxmlblob1.testcase \ isvalidxmlblob2.testcase \ isvalidxmlblob3.testcase \ isvalidxmlblob4.testcase \ isvalidxmlblob5.testcase \ isvalidxmlblob6.testcase \ registerGraphic10.testcase \ registerGraphic11.testcase \ registerGraphic12.testcase \ registerGraphic13.testcase \ registerGraphic14.testcase \ registerGraphic15.testcase \ registerGraphic16.testcase \ registerGraphic17.testcase \ registerGraphic18.testcase \ registerGraphic19.testcase \ registerGraphic1.testcase \ registerGraphic20.testcase \ registerGraphic21.testcase \ registerGraphic22.testcase \ registerGraphic2.testcase \ registerGraphic3.testcase \ registerGraphic4.testcase \ registerGraphic5.testcase \ registerGraphic6.testcase \ registerGraphic7.testcase \ registerGraphic8.testcase \ registerGraphic9.testcase \ registerGroupRaster1.testcase \ registerGroupRaster2.testcase \ registerGroupRaster3.testcase \ registerGroupRaster4.testcase \ registerGroupRaster5.testcase \ registerGroupRaster6.testcase \ registerGroupRaster7.testcase \ registerGroupRaster8.testcase \ registerGroupRaster9.testcase \ registerGroupVector1.testcase \ registerGroupVector2.testcase \ registerGroupVector3.testcase \ registerGroupVector4.testcase \ registerGroupVector5.testcase \ registerGroupVector6.testcase \ registerGroupVector7.testcase \ registerGroupVector8.testcase \ registerGroupVector9.testcase \ registerGroupStyle1.testcase \ registerGroupStyle2.testcase \ registerGroupStyle3.testcase \ registerGroupStyle4.testcase \ registerGroupStyle5.testcase \ registerIsoMeta10.testcase \ registerIsoMeta11.testcase \ registerIsoMeta12.testcase \ registerIsoMeta13.testcase \ registerIsoMeta14.testcase \ registerIsoMeta1.testcase \ registerIsoMeta2.testcase \ registerIsoMeta3.testcase \ registerIsoMeta4.testcase \ registerIsoMeta5.testcase \ registerIsoMeta6.testcase \ registerIsoMeta7.testcase \ registerIsoMeta8.testcase \ registerIsoMeta9.testcase \ registerRaster1.testcase \ registerRaster2.testcase \ registerRaster3.testcase \ registerRaster4.testcase \ registerRaster5.testcase \ registerRaster6.testcase \ registerRaster7.testcase \ registerRaster8.testcase \ registerRaster9.testcase \ registerrasterkeyword1.testcase \ registerrasterkeyword2.testcase \ registerrasterkeyword3.testcase \ registerrasterkeyword4.testcase \ registerrasterkeyword5.testcase \ registerrasterkeyword6.testcase \ registerrasterkeyword7.testcase \ registerrasterkeyword8.testcase \ registerrasterkeyword9.testcase \ registerrastersrid1.testcase \ registerrastersrid2.testcase \ registerrastersrid3.testcase \ registerrastersrid4.testcase \ registerrastersrid5.testcase \ registerrastersrid6.testcase \ registerrastersrid7.testcase \ registerrastersrid8.testcase \ registerrastersrid9.testcase \ registerRasterStyle1.testcase \ registerRasterStyle2.testcase \ registerRasterStyle3.testcase \ registerRasterStyle4.testcase \ registerRasterStyle5.testcase \ registerStllGroupStyle1.testcase \ registerStllGroupStyle3.testcase \ registerStllGroupStyle3.testcase \ registerStllGroupStyle4.testcase \ registerStllGroupStyle5.testcase \ registerStllGroupStyle6.testcase \ registerStllGroupStyle7.testcase \ registerStllGroupStyle8.testcase \ registerStllGroupStyle9.testcase \ registerVector1.testcase \ registerVector10.testcase \ registerVector11.testcase \ registerVector12.testcase \ registerVector13.testcase \ registerVector2.testcase \ registerVector3.testcase \ registerVector4.testcase \ registerVector9.testcase \ registervectorcvg1.testcase \ registervectorcvg2.testcase \ registervectorcvg3.testcase \ registervectorcvg4.testcase \ registervectorcvg5.testcase \ registervectorcvg6.testcase \ registervectorcvg7.testcase \ registervectorcvg8.testcase \ registervectorcvg9.testcase \ registervectorcvg10.testcase \ registervectorcvg11.testcase \ registervectorcvg12.testcase \ registervectorcvg13.testcase \ registervectorcvg14.testcase \ registervectorcvg15.testcase \ registervectorcvg16.testcase \ registervectorcvg17.testcase \ registervectorcvg18.testcase \ registervectorcvg19.testcase \ registervectorcvg20.testcase \ registervectorcvg21.testcase \ registervectorcvg22.testcase \ registervectorkeyword1.testcase \ registervectorkeyword2.testcase \ registervectorkeyword3.testcase \ registervectorkeyword4.testcase \ registervectorkeyword5.testcase \ registervectorkeyword6.testcase \ registervectorkeyword7.testcase \ registervectorkeyword8.testcase \ registervectorkeyword9.testcase \ registervectorsrid1.testcase \ registervectorsrid2.testcase \ registervectorsrid3.testcase \ registervectorsrid4.testcase \ registervectorsrid5.testcase \ registervectorsrid6.testcase \ registervectorsrid7.testcase \ registervectorsrid8.testcase \ registervectorsrid9.testcase \ registerVectorStyle1.testcase \ registerVectorStyle2.testcase \ registerVectorStyle3.testcase \ registerVectorStyle4.testcase \ registerVectorStyle5.testcase \ reloadGroupStyle1.testcase \ reloadGroupStyle2.testcase \ reloadGroupStyle3.testcase \ reloadGroupStyle4.testcase \ reloadGroupStyle5.testcase \ reloadGroupStyle6.testcase \ reloadGroupStyle7.testcase \ reloadGroupStyle8.testcase \ reloadGroupStyle9.testcase \ reloadGroupStyle10.testcase \ reloadRasterStyle1.testcase \ reloadRasterStyle2.testcase \ reloadRasterStyle3.testcase \ reloadRasterStyle5.testcase \ reloadRasterStyle6.testcase \ reloadRasterStyle7.testcase \ reloadRasterStyle8.testcase \ reloadRasterStyle9.testcase \ reloadRasterStyle10.testcase \ reloadVectorStyle1.testcase \ reloadVectorStyle2.testcase \ reloadVectorStyle3.testcase \ reloadVectorStyle5.testcase \ reloadVectorStyle6.testcase \ reloadVectorStyle7.testcase \ reloadVectorStyle8.testcase \ reloadVectorStyle9.testcase \ reloadVectorStyle10.testcase \ setfileid1.testcase \ setfileid2.testcase \ setfileid3.testcase \ setfileid4.testcase \ setfileid5.testcase \ setGroupInfos10.testcase \ setGroupInfos11.testcase \ setGroupInfos12.testcase \ setGroupInfos13.testcase \ setGroupInfos1.testcase \ setGroupInfos2.testcase \ setGroupInfos3.testcase \ setGroupInfos4.testcase \ setGroupInfos5.testcase \ setGroupInfos6.testcase \ setGroupInfos7.testcase \ setGroupInfos8.testcase \ setGroupInfos9.testcase \ setPaintOrder1.testcase \ setPaintOrder2.testcase \ setPaintOrder3.testcase \ setPaintOrder4.testcase \ setPaintOrder5.testcase \ setPaintOrder6.testcase \ setPaintOrder7.testcase \ setPaintOrder8.testcase \ setRasterPaintOrder1.testcase \ setRasterPaintOrder2.testcase \ setRasterPaintOrder3.testcase \ setRasterPaintOrder4.testcase \ setRasterPaintOrder5.testcase \ setRasterPaintOrder6.testcase \ setRasterPaintOrder7.testcase \ setRasterPaintOrder8.testcase \ setRasterPaintOrder9.testcase \ setRasterPaintOrder10.testcase \ setRasterPaintOrder11.testcase \ setRasterPaintOrder12.testcase \ setRasterPaintOrder13.testcase \ setVectorPaintOrder1.testcase \ setVectorPaintOrder2.testcase \ setVectorPaintOrder3.testcase \ setVectorPaintOrder4.testcase \ setVectorPaintOrder5.testcase \ setVectorPaintOrder6.testcase \ setVectorPaintOrder7.testcase \ setVectorPaintOrder8.testcase \ setVectorPaintOrder9.testcase \ setVectorPaintOrder10.testcase \ setVectorPaintOrder11.testcase \ setVectorPaintOrder12.testcase \ setVectorPaintOrder13.testcase \ setparentid1.testcase \ setparentid2.testcase \ setparentid3.testcase \ setparentid4.testcase \ setparentid5.testcase \ setvectorinfos1.testcase \ setvectorinfos2.testcase \ setvectorinfos3.testcase \ setvectorinfos4.testcase \ setvectorinfos5.testcase \ setvectorinfos6.testcase \ setvectorinfos7.testcase \ setvectorinfos8.testcase \ setvectorinfos9.testcase \ setvectorinfos10.testcase \ setvectorinfos11.testcase \ setvectorinfos12.testcase \ setvectorinfos13.testcase \ unregisterGraphic1.testcase \ unregisterGraphic2.testcase \ unregisterGraphic3.testcase \ unregisterGraphic4.testcase \ unregisterGraphic5.testcase \ unregisterGroup1.testcase \ unregisterGroup2.testcase \ unregisterGroup3.testcase \ unregisterGroup4.testcase \ unregisterGroup5.testcase \ unregisterGroupStyle1.testcase \ unregisterGroupStyle2.testcase \ unregisterGroupStyle3.testcase \ unregisterGroupStyle4.testcase \ unregisterGroupStyle5.testcase \ unregisterGroupStyle6.testcase \ unregisterGroupStyle7.testcase \ unregisterGroupStyle8.testcase \ unregisterGroupStyle9.testcase \ unregisterGroupStyle10.testcase \ unregisterGroupLayer1.testcase \ unregisterGroupLayer2.testcase \ unregisterGroupLayer3.testcase \ unregisterGroupLayer4.testcase \ unregisterGroupLayer5.testcase \ unregisterGroupRaster1.testcase \ unregisterGroupRaster2.testcase \ unregisterGroupRaster3.testcase \ unregisterGroupRaster4.testcase \ unregisterGroupRaster5.testcase \ unregisterGroupRaster6.testcase \ unregisterGroupRaster7.testcase \ unregisterGroupRaster8.testcase \ unregisterGroupRaster9.testcase \ unregisterGroupVector1.testcase \ unregisterGroupVector2.testcase \ unregisterGroupVector3.testcase \ unregisterGroupVector4.testcase \ unregisterGroupVector5.testcase \ unregisterGroupVector6.testcase \ unregisterGroupVector7.testcase \ unregisterGroupVector8.testcase \ unregisterGroupVector9.testcase \ unregisterRaster1.testcase \ unregisterRaster2.testcase \ unregisterRaster3.testcase \ unregisterRaster4.testcase \ unregisterRaster5.testcase \ unregisterRaster6.testcase \ unregisterRaster7.testcase \ unregisterRaster8.testcase \ unregisterRaster9.testcase \ unregisterrasterkeyword1.testcase \ unregisterrasterkeyword2.testcase \ unregisterrasterkeyword3.testcase \ unregisterrasterkeyword4.testcase \ unregisterrasterkeyword5.testcase \ unregisterrasterkeyword6.testcase \ unregisterrasterkeyword7.testcase \ unregisterrasterkeyword8.testcase \ unregisterrasterkeyword9.testcase \ unregisterrastersrid1.testcase \ unregisterrastersrid2.testcase \ unregisterrastersrid3.testcase \ unregisterrastersrid4.testcase \ unregisterrastersrid5.testcase \ unregisterrastersrid6.testcase \ unregisterrastersrid7.testcase \ unregisterrastersrid8.testcase \ unregisterrastersrid9.testcase \ unregisterRasterStyle1.testcase \ unregisterRasterStyle2.testcase \ unregisterRasterStyle3.testcase \ unregisterRasterStyle4.testcase \ unregisterRasterStyle5.testcase \ unregisterRasterStyle6.testcase \ unregisterRasterStyle7.testcase \ unregisterRasterStyle8.testcase \ unregisterRasterStyle9.testcase \ unregisterRasterStyle10.testcase \ unregisterStllGroupStyle1.testcase \ unregisterStllGroupStyle3.testcase \ unregisterStllGroupStyle3.testcase \ unregisterStllGroupStyle4.testcase \ unregisterStllGroupStyle5.testcase \ unregisterStllGroupStyle6.testcase \ unregisterStllGroupStyle7.testcase \ unregisterStllGroupStyle8.testcase \ unregisterStllGroupStyle9.testcase \ unregisterVector1.testcase \ unregisterVector2.testcase \ unregisterVector3.testcase \ unregisterVector4.testcase \ unregisterVector9.testcase \ unregisterVector10.testcase \ unregisterVector11.testcase \ unregisterVector12.testcase \ unregisterVector13.testcase \ unregistervectorcvg1.testcase \ unregistervectorcvg2.testcase \ unregistervectorcvg3.testcase \ unregistervectorcvg4.testcase \ unregistervectorcvg5.testcase \ unregistervectorkeyword1.testcase \ unregistervectorkeyword2.testcase \ unregistervectorkeyword3.testcase \ unregistervectorkeyword4.testcase \ unregistervectorkeyword5.testcase \ unregistervectorkeyword6.testcase \ unregistervectorkeyword7.testcase \ unregistervectorkeyword8.testcase \ unregistervectorkeyword9.testcase \ unregistervectorsrid1.testcase \ unregistervectorsrid2.testcase \ unregistervectorsrid3.testcase \ unregistervectorsrid4.testcase \ unregistervectorsrid5.testcase \ unregistervectorsrid6.testcase \ unregistervectorsrid7.testcase \ unregistervectorsrid8.testcase \ unregistervectorsrid9.testcase \ unregisterVectorStyle1.testcase \ unregisterVectorStyle2.testcase \ unregisterVectorStyle3.testcase \ unregisterVectorStyle4.testcase \ unregisterVectorStyle5.testcase \ unregisterVectorStyle6.testcase \ unregisterVectorStyle7.testcase \ unregisterVectorStyle8.testcase \ unregisterVectorStyle9.testcase \ unregisterVectorStyle10.testcase \ updaterasterextent1.testcase \ updaterasterextent2.testcase \ updaterasterextent3.testcase \ updaterasterextent4.testcase \ updaterasterextent5.testcase \ updaterasterextent6.testcase \ updaterasterextent7.testcase \ updaterasterextent8.testcase \ updaterasterextent9.testcase \ updaterasterextent10.testcase \ updaterasterextent11.testcase \ updaterasterextent12.testcase \ updaterasterextent13.testcase \ updaterasterextent14.testcase \ updaterasterextent15.testcase \ updatevectorextent1.testcase \ updatevectorextent2.testcase \ updatevectorextent3.testcase \ updatevectorextent4.testcase \ updatevectorextent5.testcase \ updatevectorextent6.testcase \ updatevectorextent7.testcase \ updatevectorextent8.testcase \ updatevectorextent9.testcase \ updatevectorextent10.testcase \ updatevectorextent11.testcase \ updatevectorextent12.testcase \ updatevectorextent13.testcase \ updatevectorextent14.testcase \ updatevectorextent15.testcase \ xmlblobgetabstract1.testcase \ xmlblobgetabstract2.testcase \ xmlblobgetabstract3.testcase \ xmlblobgetabstract4.testcase \ xmlblobgetabstract5.testcase \ xmlblobgetabstract6.testcase \ xmlblobgetdocumentsize1.testcase \ xmlblobgetdocumentsize2.testcase \ xmlblobgetdocumentsize3.testcase \ xmlblobgetdocumentsize4.testcase \ xmlblobgetdocumentsize5.testcase \ xmlblobgetdocumentsize6.testcase \ xmlblobgetencoding1.testcase \ xmlblobgetencoding2.testcase \ xmlblobgetencoding3.testcase \ xmlblobgetencoding4.testcase \ xmlblobgetencoding5.testcase \ xmlblobgetencoding6.testcase \ xmlblobgetencoding7.testcase \ xmlblobgetfileid1.testcase \ xmlblobgetfileid2.testcase \ xmlblobgetfileid3.testcase \ xmlblobgetfileid4.testcase \ xmlblobgetfileid5.testcase \ xmlblobgetfileid6.testcase \ xmlblobgetgeometry1.testcase \ xmlblobgetgeometry2.testcase \ xmlblobgetgeometry3.testcase \ xmlblobgetgeometry4.testcase \ xmlblobgetgeometry5.testcase \ xmlblobgetgeometry6.testcase \ xmlblobgetinternalschemauri1.testcase \ xmlblobgetinternalschemauri2.testcase \ xmlblobgetinternalschemauri3.testcase \ xmlblobgetinternalschemauri4.testcase \ xmlblobgetinternalschemauri5.testcase \ xmlblobgetparentid1.testcase \ xmlblobgetparentid2.testcase \ xmlblobgetparentid3.testcase \ xmlblobgetparentid4.testcase \ xmlblobgetparentid5.testcase \ xmlblobgetparentid6.testcase \ xmlblobgetschemauri1.testcase \ xmlblobgetschemauri2.testcase \ xmlblobgetschemauri3.testcase \ xmlblobgetschemauri4.testcase \ xmlblobgetschemauri5.testcase \ xmlblobgetschemauri6.testcase \ xmlblobgetname1.testcase \ xmlblobgetname2.testcase \ xmlblobgetname3.testcase \ xmlblobgetname4.testcase \ xmlblobgetname5.testcase \ xmlblobgetname6.testcase \ xmlblobgetname7.testcase \ xmlblobgetname8.testcase \ xmlblobgettitle1.testcase \ xmlblobgettitle2.testcase \ xmlblobgettitle3.testcase \ xmlblobgettitle4.testcase \ xmlblobgettitle5.testcase \ xmlblobgettitle6.testcase \ xmlcompress1.testcase \ xmlcompress2.testcase \ xmlcompress3.testcase \ xmlcompress4.testcase \ xmlcompress5.testcase \ xmlcompress6.testcase \ xmlcompress7.testcase \ xmlcompress8.testcase \ xmlfromblob10.testcase \ xmlfromblob11.testcase \ xmlfromblob12.testcase \ xmlfromblob13.testcase \ xmlfromblob1.testcase \ xmlfromblob2.testcase \ xmlfromblob3.testcase \ xmlfromblob4.testcase \ xmlfromblob5.testcase \ xmlfromblob6.testcase \ xmlfromblob7.testcase \ xmlfromblob8.testcase \ xmlfromblob9.testcase \ xmltextfromblob10.testcase \ xmltextfromblob11.testcase \ xmltextfromblob12.testcase \ xmltextfromblob13.testcase \ xmltextfromblob1.testcase \ xmltextfromblob2.testcase \ xmltextfromblob3.testcase \ xmltextfromblob4.testcase \ xmltextfromblob5.testcase \ xmltextfromblob6.testcase \ xmltextfromblob7.testcase \ xmltextfromblob8.testcase \ xmltextfromblob9.testcase \ xmltoblob10.testcase \ xmltoblob11.testcase \ xmltoblob12.testcase \ xmltoblob13.testcase \ xmltoblob14.testcase \ xmltoblob15.testcase \ xmltoblob16.testcase \ xmltoblob17.testcase \ xmltoblob18.testcase \ xmltoblob1.testcase \ xmltoblob2.testcase \ xmltoblob3.testcase \ xmltoblob4.testcase \ xmltoblob5.testcase \ xmltoblob6.testcase \ xmltoblob7.testcase \ xmltoblob8.testcase \ xmltoblob9.testcase \ xmluncompress1.testcase \ xmluncompress2.testcase \ xmluncompress3.testcase \ xmluncompress4.testcase \ xmluncompress5.testcase \ xmluncompress6.testcase \ xmluncompress7.testcase \ xmluncompress8.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_libxml2_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_libxml2_tests/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupVector1.testcase0000664000175000017500000000034412544707704025350 00000000000000UnRegisterStyledGroupVector - NULL group :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupVector(NULL, 'beta'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupVector(NULL, 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterrastersrid6.testcase0000664000175000017500000000034712544707704025263 00000000000000UnregisterRasterCoverageSrid - Double srid :memory: #use in-memory database SELECT SE_UnregisterRasterCoverageSrid('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_UnregisterRasterCoverageSrid('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadRasterStyle7.testcase0000664000175000017500000000030712544707704024436 00000000000000ReloadRasterStyle - NULL style :memory: #use in-memory database SELECT SE_ReloadRasterStyle('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_ReloadRasterStyle('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterStllGroupStyle4.testcase0000664000175000017500000000035112544707704026046 00000000000000UnRegisterStyledGroupStyle - BLOB group name :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupStyle(zeroblob(4), 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupStyle(zeroblob(4), 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerIsoMeta8.testcase0000664000175000017500000000032312544707704024073 00000000000000RegisterIsoMetadata - TEXT metadata :memory: #use in-memory database SELECT RegisterIsoMetadata('series', 'alpha'); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', 'alpha') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerrastersrid9.testcase0000664000175000017500000000033712544707704024722 00000000000000RegisterRasterCoverageSrid - Int srid :memory: #use in-memory database SELECT SE_RegisterRasterCoverageSrid('alpha', 4326); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterCoverageSrid('alpha', 4326) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetname7.testcase0000664000175000017500000000103112544707704023761 00000000000000XB_GetName - valid XmlBLOB, current blob (valid) :memory: #use in-memory database SELECT XB_GetName(x'0013AC370000002D0000000000BA0000CA0000DA0500DE616C7068610000DB0000DC0000DDCB789CB3094A2C2E492D0AAECC4DCACFC9AC4A2DB2B3F14BCC4DB54BCC29C848B4D107B36DF4311401003F711491BCD3962A3BDD'); 1 # rows (not including the header row) 1 # columns XB_GetName(x'0013AC370000002D0000000000BA0000CA0000DA0500DE616C7068610000DB0000DC0000DDCB789CB3094A2C2E492D0AAECC4DCACFC9AC4A2DB2B3F14BCC4DB54BCC29C848B4D107B36DF4311401003F711491BCD3962A3BDD') alpha libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issldsestyle7.testcase0000664000175000017500000000063412544707704023520 00000000000000XB_IsSldSeVectorStyle - valid XmlBLOB (FALSE) :memory: #use in-memory database SELECT XB_IsSldSeVectorStyle(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); 1 # rows (not including the header row) 1 # columns XB_IsSldSeVectorStyle(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setfileid1.testcase0000664000175000017500000000027112544707704022730 00000000000000XB_SetFileId - NULL XmlBLOB :memory: #use in-memory database SELECT XB_SetFileId(NULL, 'alpha'); 1 # rows (not including the header row) 1 # columns XB_SetFileId(NULL, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadVectorStyle7.testcase0000664000175000017500000000030712544707704024440 00000000000000ReloadVectorStyle - NULL style :memory: #use in-memory database SELECT SE_ReloadVectorStyle('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_ReloadVectorStyle('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isisometadata2.testcase0000664000175000017500000000025412544707704023611 00000000000000XB_IsIsoMetadata - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_IsIsoMetadata(1); 1 # rows (not including the header row) 1 # columns XB_IsIsoMetadata(1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetschemauri4.testcase0000664000175000017500000000030612544707704025022 00000000000000XB_GetSchemaURI - BLOB XmlDocument :memory: #use in-memory database SELECT XB_GetSchemaURI(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetSchemaURI(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setPaintOrder2.testcase0000664000175000017500000000034212544707704023543 00000000000000SetStyledGroupLayerPaintOrder - Double item ID :memory: #use in-memory database SELECT SE_SetStyledGroupLayerPaintOrder(1.1, 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupLayerPaintOrder(1.1, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupStyle9.testcase0000664000175000017500000000033612544707704025217 00000000000000UnRegisterGroupStyle - Text force :memory: #use in-memory database SELECT SE_UnRegisterGroupStyle('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_UnRegisterGroupStyle('alpha', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetschemauri6.testcase0000664000175000017500000000057212544707704025031 00000000000000XB_GetSchemaURI - valid XmlBLOB, not validated :memory: #use in-memory database SELECT XB_GetSchemaURI(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); 1 # rows (not including the header row) 1 # columns XB_GetSchemaURI(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadGroupStyle6.testcase0000664000175000017500000000030412544707704024266 00000000000000ReloadGroupStyle - NULL style :memory: #use in-memory database SELECT SE_ReloadGroupStyle('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_ReloadGroupStyle('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetname5.testcase0000664000175000017500000000026612544707704023770 00000000000000XB_GetName - invalid XmlBLOB :memory: #use in-memory database SELECT XB_GetName(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetName(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlcompress8.testcase0000664000175000017500000000112012544707704023335 00000000000000XB_Compress - valid XmlBLOB (already compressed - legacy blob) :memory: #use in-memory database SELECT Hex(XB_Compress(x'0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD')); 1 # rows (not including the header row) 1 # columns Hex(XB_Compress(x'0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD')) 0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltextfromblob12.testcase0000664000175000017500000000071212544707704024272 00000000000000XB_GetDocument - valid XmlBLOB, BLOB format :memory: #use in-memory database SELECT XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', zeroblob(4)); 1 # rows (not including the header row) 1 # columns XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVectorStyle4.testcase0000664000175000017500000000030012544707704025347 00000000000000UnRegisterVectorStyle - Integer style_id :memory: #use in-memory database SELECT SE_UnRegisterVectorStyle(1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyle(1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadGroupStyle4.testcase0000664000175000017500000000031712544707704024270 00000000000000ReloadGroupStyle - Integer style ID :memory: #use in-memory database SELECT SE_ReloadGroupStyle(1, zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_ReloadGroupStyle(1, zeroblob(100)) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorsrid9.testcase0000664000175000017500000000033712544707704024724 00000000000000RegisterVectorCoverageSrid - Int srid :memory: #use in-memory database SELECT SE_RegisterVectorCoverageSrid('alpha', 4326); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverageSrid('alpha', 4326) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerrasterkeyword7.testcase0000664000175000017500000000036012544707704025437 00000000000000RegisterRasterCoverageKeyword - Text keyword :memory: #use in-memory database SELECT SE_RegisterRasterCoverageKeyword('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterCoverageKeyword('alpha', 'beta') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorkeyword8.testcase0000664000175000017500000000037312544707704025446 00000000000000RegisterVectorCoverageKeyword - BLOB keyword :memory: #use in-memory database SELECT SE_RegisterVectorCoverageKeyword('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverageKeyword('alpha', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlcompress1.testcase0000664000175000017500000000024312544707704023333 00000000000000XB_Compress - NULL XmlBLOB :memory: #use in-memory database SELECT XB_Compress(NULL); 1 # rows (not including the header row) 1 # columns XB_Compress(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic13.testcase0000664000175000017500000000045112544707704024165 00000000000000RegisterExternalGraphic - BLOB title :memory: #use in-memory database SELECT SE_RegisterExternalGraphic('resource.png', zeroblob(4), zeroblob(4), NULL, NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic('resource.png', zeroblob(4), zeroblob(4), NULL, NULL); -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetschemauri5.testcase0000664000175000017500000000030512544707704025022 00000000000000XB_GetSchemaURI - invalid XmlBLOB :memory: #use in-memory database SELECT XB_GetSchemaURI(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetSchemaURI(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetgeometry6.testcase0000664000175000017500000000056512544707704024706 00000000000000XB_GetGeometry - valid XmlBLOB, no Abstract :memory: #use in-memory database SELECT XB_GetGeometry(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); 1 # rows (not including the header row) 1 # columns XB_GetGeometry(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorkeyword4.testcase0000664000175000017500000000040012544707704025431 00000000000000RegisterVectorCoverageKeyword - BLOB coverage :memory: #use in-memory database SELECT SE_RegisterVectorCoverageKeyword(zeroblob(4), 'keyword'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverageKeyword(zeroblob(4), 'keyword') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic10.testcase0000664000175000017500000000043312544707704024162 00000000000000RegisterExternalGraphic - NULL title :memory: #use in-memory database SELECT SE_RegisterExternalGraphic('resource.png', zeroblob(4), NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic('resource.png', zeroblob(4), NULL, NULL, NULL); -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorkeyword3.testcase0000664000175000017500000000036212544707704025437 00000000000000RegisterVectorCoverageKeyword - Double coverage :memory: #use in-memory database SELECT SE_RegisterVectorCoverageKeyword(1.1, 'keyword'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverageKeyword(1.1, 'keyword') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterrastersrid2.testcase0000664000175000017500000000033612544707704025255 00000000000000UnregisterRasterCoverageSrid - Int coverage :memory: #use in-memory database SELECT SE_UnregisterRasterCoverageSrid(1, 4326); 1 # rows (not including the header row) 1 # columns SE_UnregisterRasterCoverageSrid(1, 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadGroupStyle9.testcase0000664000175000017500000000031012544707704024266 00000000000000ReloadGroupStyle - Text style :memory: #use in-memory database SELECT SE_ReloadGroupStyle('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_ReloadGroupStyle('alpha', 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerIsoMeta4.testcase0000664000175000017500000000032012544707704024064 00000000000000RegisterIsoMetadata - BLOB scope :memory: #use in-memory database SELECT RegisterIsoMetadata(zeroblob(4), NULL); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata(zeroblob(4), NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerIsoMeta9.testcase0000664000175000017500000000033212544707704024074 00000000000000RegisterIsoMetadata - BLOB metadata :memory: #use in-memory database SELECT RegisterIsoMetadata('series', zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', zeroblob(4)) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupVector7.testcase0000664000175000017500000000035112544707704025354 00000000000000UnRegisterStyledGroupVector - Double coverage :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupVector('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupVector('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupRaster6.testcase0000664000175000017500000000034512544707704025011 00000000000000RegisterStyledGroupRaster - INTEGER coverage_name :memory: #use in-memory database SELECT SE_RegisterStyledGroupRaster('alpha', 1); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupRaster('alpha', 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updatevectorextent6.testcase0000664000175000017500000000033012544707704024716 00000000000000UpdateVectorCoverageExtent - Text coverage :memory: #use in-memory database SELECT SE_UpdateVectorCoverageExtent('alpha'); 1 # rows (not including the header row) 1 # columns SE_UpdateVectorCoverageExtent('alpha') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerrastersrid1.testcase0000664000175000017500000000033712544707704024712 00000000000000RegisterRasterCoverageSrid - NULL coverage :memory: #use in-memory database SELECT SE_RegisterRasterCoverageSrid(NULL, 4326); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterCoverageSrid(NULL, 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setGroupInfos5.testcase0000664000175000017500000000034612544707704023576 00000000000000SetStyledGroupInfos - NULL title :memory: #use in-memory database SELECT SE_SetStyledGroupInfos('group', NULL, 'abstract'); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupInfos('group', NULL, 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlfromblob11.testcase0000664000175000017500000000067112544707704023370 00000000000000XB_GetPayload - valid XmlBLOB, DOUBLE format :memory: #use in-memory database SELECT XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 1.1); 1 # rows (not including the header row) 1 # columns XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setGroupInfos7.testcase0000664000175000017500000000034612544707704023600 00000000000000SetStyledGroupInfos - DOUBLE title :memory: #use in-memory database SELECT SE_SetStyledGroupInfos('group', 1.4, 'abstract'); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupInfos('group', 1.4, 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issldserststyle7.testcase0000664000175000017500000000063412544707704024251 00000000000000XB_IsSldSeRasterStyle - valid XmlBLOB (FALSE) :memory: #use in-memory database SELECT XB_IsSldSeRasterStyle(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); 1 # rows (not including the header row) 1 # columns XB_IsSldSeRasterStyle(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetfileid5.testcase0000664000175000017500000000027412544707704024303 00000000000000XB_GetFileId - invalid XmlBLOB :memory: #use in-memory database SELECT XB_GetFileId(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetFileId(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerrastersrid2.testcase0000664000175000017500000000033012544707704024704 00000000000000RegisterRasterCoverageSrid - Int coverage :memory: #use in-memory database SELECT SE_RegisterRasterCoverageSrid(1, 4326); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterCoverageSrid(1, 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorsrid5.testcase0000664000175000017500000000034112544707704024713 00000000000000RegisterVectorCoverageSrid - NULL srid :memory: #use in-memory database SELECT SE_RegisterVectorCoverageSrid('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverageSrid('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob6.testcase0000664000175000017500000000067712544707704026031 00000000000000XB_IsSchemaValidated - not SchemaValidated XmlBLOB :memory: #use in-memory database SELECT XB_IsSchemaValidated(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); 1 # rows (not including the header row) 1 # columns XB_IsSchemaValidated(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize1.testcase0000664000175000017500000000027112544707704025551 00000000000000XB_GetDocumentSize - NULL XmlBLOB :memory: #use in-memory database SELECT XB_GetDocumentSize(NULL); 1 # rows (not including the header row) 1 # columns XB_GetDocumentSize(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issldserststyle6.testcase0000664000175000017500000000066312544707704024252 00000000000000XB_IsSldSeRasterStyle - valid XmlBLOB (TRUE) :memory: #use in-memory database SELECT XB_IsSldSeRasterStyle(x'0013AB10000000180000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB371CE2F4B2D4A4C4F0D2EA9CC49D5B7030032D505E7BCDB7BDDBCDD'); 1 # rows (not including the header row) 1 # columns XB_IsSldSeRasterStyle(x'0013AB10000000180000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB371CE2F4B2D4A4C4F0D2EA9CC49D5B7030032D505E7BCDB7BDDBCDD') 1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerrasterkeyword9.testcase0000664000175000017500000000035412544707704025444 00000000000000RegisterRasterCoverageKeyword - Int keyword :memory: #use in-memory database SELECT SE_RegisterRasterCoverageKeyword('alpha', 4326); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterCoverageKeyword('alpha', 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/getIsoMetaId1.testcase0000664000175000017500000000026612544707704023302 00000000000000GetIsoMetadataId - NULL fileIdentifier :memory: #use in-memory database SELECT GetIsoMetadataId(NULL); 1 # rows (not including the header row) 1 # columns GetIsoMetadataId(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterrasterkeyword7.testcase0000664000175000017500000000036612544707704026010 00000000000000UnregisterRasterCoverageKeyword - Text keyword :memory: #use in-memory database SELECT SE_UnregisterRasterCoverageKeyword('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_UnregisterRasterCoverageKeyword('alpha', 'beta') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize3.testcase0000664000175000017500000000027112544707704025553 00000000000000XB_GetDocumentSize - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_GetDocumentSize(1.1); 1 # rows (not including the header row) 1 # columns XB_GetDocumentSize(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg1.testcase0000664000175000017500000000036112544707704024527 00000000000000RegisterVectorCoverage - NULL coverage :memory: #use in-memory database SELECT SE_RegisterVectorCoverage(NULL, 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage(NULL, 'title', 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmluncompress1.testcase0000664000175000017500000000025112544707704023675 00000000000000XB_Uncompress - NULL XmlBLOB :memory: #use in-memory database SELECT XB_Uncompress(NULL); 1 # rows (not including the header row) 1 # columns XB_Uncompress(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVectorStyle5.testcase0000664000175000017500000000031312544707704025354 00000000000000UnRegisterVectorStyle - Text style_name :memory: #use in-memory database SELECT SE_UnRegisterVectorStyle('alpha'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyle('alpha') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupStyle2.testcase0000664000175000017500000000027712544707704025214 00000000000000UnRegisterGroupStyle - Double style :memory: #use in-memory database SELECT SE_UnRegisterGroupStyle(1.1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterGroupStyle(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/addfileid6.testcase0000664000175000017500000000104512544707704022672 00000000000000XB_AddFileId - valid - gmd namespace :memory: #use in-memory database SELECT XB_GetFileId(XB_AddFileId(XB_Create(CastToBlob('')), 'newfileid', 'gmd', NULL, 'gco', 'http://www.isotc211.org/2005/gco')); 1 # rows (not including the header row) 1 # columns XB_GetFileId(XB_AddFileId(XB_Create(CastToBlob('')), 'newfileid', 'gmd', NULL, 'gco', 'http://www.isotc211.org/2005/gco')):0 newfileid libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorsrid6.testcase0000664000175000017500000000034112544707704024714 00000000000000RegisterVectorCoverageSrid - Double srid :memory: #use in-memory database SELECT SE_RegisterVectorCoverageSrid('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverageSrid('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetparentid2.testcase0000664000175000017500000000025612544707704024652 00000000000000XB_GetParentId - INTEGER XmlDocument :memory: #use in-memory database SELECT XB_GetParentId(1); 1 # rows (not including the header row) 1 # columns XB_GetParentId(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupRaster4.testcase0000664000175000017500000000036212544707704025351 00000000000000UnRegisterStyledGroupRaster - BLOB group :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupRaster(zeroblob(4), 'beta'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupRaster(zeroblob(4), 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updaterasterextent2.testcase0000664000175000017500000000032412544707704024713 00000000000000UpdateRasterCoverageExtent - NULL coverage :memory: #use in-memory database SELECT SE_UpdateRasterCoverageExtent(NULL); 1 # rows (not including the header row) 1 # columns SE_UpdateRasterCoverageExtent(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setparentid4.testcase0000664000175000017500000000067612544707704023316 00000000000000XB_SetParentId - ISO Metadata - INTEGER parentId :memory: #use in-memory database SELECT XB_SetParentId(XB_Create(CastToBlob('a')), 1234); 1 # rows (not including the header row) 1 # columns XB_SetParentId(XB_Create(CastToBlob('a')), 1234) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVector4.testcase0000664000175000017500000000035712544707704024342 00000000000000UnRegisterVectorStyledLayer - BLOB coverage :memory: #use in-memory database SELECT SE_UnRegisterVectorStyledLayer(zeroblob(100), 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyledLayer(zeroblob(100), 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setRasterPaintOrder7.testcase0000664000175000017500000000037012544707704024732 00000000000000SetStyledGroupRasterPaintOrder - Double coverage :memory: #use in-memory database SELECT SE_SetStyledGroupRasterPaintOrder('alpha', 1.1, 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupRasterPaintOrder('alpha', 1.1, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerrastersrid5.testcase0000664000175000017500000000034112544707704024711 00000000000000RegisterRasterCoverageSrid - NULL srid :memory: #use in-memory database SELECT SE_RegisterRasterCoverageSrid('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterCoverageSrid('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic22.testcase0000664000175000017500000000046012544707704024165 00000000000000RegisterExternalGraphic - TEXT filename NEW:memory: #use in-memory database SELECT SE_RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 'gamma'); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 'gamma'); 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerIsoMeta7.testcase0000664000175000017500000000031512544707704024073 00000000000000RegisterIsoMetadata - DOUBLE metadata :memory: #use in-memory database SELECT RegisterIsoMetadata('series', 1.1); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmluncompress3.testcase0000664000175000017500000000024612544707704023703 00000000000000XB_Uncompress - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_Uncompress(1); 1 # rows (not including the header row) 1 # columns XB_Uncompress(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerRaster4.testcase0000664000175000017500000000035312544707704023771 00000000000000RegisterRasterStyledLayer - BLOB coverage :memory: #use in-memory database SELECT SE_RegisterRasterStyledLayer(zeroblob(4), NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterStyledLayer(zeroblob(4), NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterrastersrid4.testcase0000664000175000017500000000036312544707704025257 00000000000000UnregisterRasterCoverageSrid - BLOB coverage :memory: #use in-memory database SELECT SE_UnregisterRasterCoverageSrid(zeroblob(4), 4326); 1 # rows (not including the header row) 1 # columns SE_UnregisterRasterCoverageSrid(zeroblob(4), 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupVector1.testcase0000664000175000017500000000034312544707704025004 00000000000000RegisterStyledGroupVector - NULL group_name :memory: #use in-memory database SELECT SE_RegisterStyledGroupVector(NULL, 'beta'); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupVector(NULL, 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorkeyword7.testcase0000664000175000017500000000036612544707704026012 00000000000000UnregisterVectorCoverageKeyword - Text keyword :memory: #use in-memory database SELECT SE_UnregisterVectorCoverageKeyword('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverageKeyword('alpha', 'beta') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic5.testcase0000664000175000017500000000035412544707704024110 00000000000000RegisterExternalGraphic - NULL resource :memory: #use in-memory database SELECT SE_RegisterExternalGraphic('resource.png', NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic('resource.png', NULL); -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg18.testcase0000664000175000017500000000041512544707704024617 00000000000000RegisterVectorCoverage - NULL abstract :memory: #use in-memory database SELECT SE_RegisterVectorCoverage('alpha', 'table', 'geom', 'title', NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage('alpha', 'table', 'geom', 'title', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerrasterkeyword4.testcase0000664000175000017500000000040012544707704025427 00000000000000RegisterRasterCoverageKeyword - BLOB coverage :memory: #use in-memory database SELECT SE_RegisterRasterCoverageKeyword(zeroblob(4), 'keyword'); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterCoverageKeyword(zeroblob(4), 'keyword') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupLayer3.testcase0000664000175000017500000000033112544707704025160 00000000000000UnRegisterStyledGroupLayer - Text item ID :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupLayer('alpha'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupLayer('alpha') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetgeometry3.testcase0000664000175000017500000000026112544707704024674 00000000000000XB_GetGeometry - DOUBLE XmlDocument :memory: #use in-memory database SELECT XB_GetGeometry(1.1); 1 # rows (not including the header row) 1 # columns XB_GetGeometry(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerStllGroupStyle4.testcase0000664000175000017500000000034712544707704025510 00000000000000RegisterStyledGroupStyle - BLOB group name :memory: #use in-memory database SELECT SE_RegisterStyledGroupStyle(zeroblob(100), 1); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupStyle(zeroblob(100), 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorkeyword7.testcase0000664000175000017500000000036012544707704025441 00000000000000RegisterVectorCoverageKeyword - Text keyword :memory: #use in-memory database SELECT SE_RegisterVectorCoverageKeyword('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverageKeyword('alpha', 'beta') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerrasterkeyword1.testcase0000664000175000017500000000036212544707704025433 00000000000000RegisterRasterCoverageKeyword - NULL coverage :memory: #use in-memory database SELECT SE_RegisterRasterCoverageKeyword(NULL, 'keyword'); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterCoverageKeyword(NULL, 'keyword') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerrasterkeyword8.testcase0000664000175000017500000000037312544707704025444 00000000000000RegisterRasterCoverageKeyword - BLOB keyword :memory: #use in-memory database SELECT SE_RegisterRasterCoverageKeyword('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterCoverageKeyword('alpha', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/createstyling8.testcase0000664000175000017500000000031212544707704023640 00000000000000CreateStylingTables - TEXT transaction NEW:memory: #use in-memory database SELECT CreateStylingTables(1, 'alpha'); 1 # rows (not including the header row) 1 # columns CreateStylingTables(1, 'alpha') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorkeyword9.testcase0000664000175000017500000000035412544707704025446 00000000000000RegisterVectorCoverageKeyword - Int keyword :memory: #use in-memory database SELECT SE_RegisterVectorCoverageKeyword('alpha', 4326); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverageKeyword('alpha', 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupRaster1.testcase0000664000175000017500000000034412544707704025346 00000000000000UnRegisterStyledGroupRaster - NULL group :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupRaster(NULL, 'beta'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupRaster(NULL, 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setVectorPaintOrder6.testcase0000664000175000017500000000036112544707704024733 00000000000000SetStyledGroupVectorPaintOrder - Int coverage :memory: #use in-memory database SELECT SE_SetStyledGroupVectorPaintOrder('alpha', 1, 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupVectorPaintOrder('alpha', 1, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setRasterPaintOrder3.testcase0000664000175000017500000000036312544707704024730 00000000000000SetStyledGroupRasterPaintOrder - Double group :memory: #use in-memory database SELECT SE_SetStyledGroupRasterPaintOrder(1.1, 'beta', 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupRasterPaintOrder(1.1, 'beta', 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroup4.testcase0000664000175000017500000000033112544707704024164 00000000000000UnRegisterStyledGroup - BLOB group name :memory: #use in-memory database SELECT SE_UnRegisterStyledGroup(zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroup(zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setparentid5.testcase0000664000175000017500000000073312544707704023311 00000000000000XB_SetParentId - valid :memory: #use in-memory database SELECT XB_GetParentId(XB_SetParentId(XB_Create(CastToBlob('a')), 'newparentid')); 1 # rows (not including the header row) 1 # columns XB_GetParentId(XB_SetParentId(XB_Create(CastToBlob('a')), 'newparentid')) newparentid libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmluncompress2.testcase0000664000175000017500000000025712544707704023704 00000000000000XB_Uncompress - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_Uncompress('alpha'); 1 # rows (not including the header row) 1 # columns XB_Uncompress('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerRasterStyle5.testcase0000664000175000017500000000031412544707704025010 00000000000000RegisterRasterStyle - BLOB style :memory: #use in-memory database SELECT SE_RegisterRasterStyle(zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterStyle(zeroblob(100)) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issldserststyle1.testcase0000664000175000017500000000027612544707704024245 00000000000000XB_IsSldSeRasterStyle - NULL XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeRasterStyle(NULL); 1 # rows (not including the header row) 1 # columns XB_IsSldSeRasterStyle(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgettitle1.testcase0000664000175000017500000000025012544707704024156 00000000000000XB_GetTitle - NULL XmlDocument :memory: #use in-memory database SELECT XB_GetTitle(NULL); 1 # rows (not including the header row) 1 # columns XB_GetTitle(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRasterStyle10.testcase0000664000175000017500000000032412544707704025430 00000000000000UnRegisterRasterStyle - Integer second arg :memory: #use in-memory database SELECT SE_UnRegisterRasterStyle('alpha', 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyle('alpha', 1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltoblob13.testcase0000664000175000017500000000042712544707704023050 00000000000000XB_Create - valid XMLDocument, compressed, NULL SchemaURI :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, NULL); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setvectorinfos8.testcase0000664000175000017500000000037412544707704024050 00000000000000SetVectorCoverageInfos - BLOB title :memory: #use in-memory database SELECT SE_SetVectorCoverageInfos('alpha', zeroblob(4), 'abstract'); 1 # rows (not including the header row) 1 # columns SE_SetVectorCoverageInfos('alpha', zeroblob(4), 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadVectorStyle9.testcase0000664000175000017500000000030712544707704024442 00000000000000ReloadVectorStyle - Double style :memory: #use in-memory database SELECT SE_ReloadVectorStyle('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_ReloadVectorStyle('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerRasterStyle1.testcase0000664000175000017500000000027412544707704025011 00000000000000RegisterRasterStyle - NULL style :memory: #use in-memory database SELECT SE_RegisterRasterStyle(NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterStyle(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updaterasterextent14.testcase0000664000175000017500000000034312544707704024777 00000000000000UpdateRasterCoverageExtent - two args, Double coverage :memory: #use in-memory database SELECT SE_UpdateRasterCoverageExtent(1.1, 1); 1 # rows (not including the header row) 1 # columns SE_UpdateRasterCoverageExtent(1.1, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setGroupInfos10.testcase0000664000175000017500000000034012544707704023644 00000000000000SetStyledGroupInfos - INTEGER abstract :memory: #use in-memory database SELECT SE_SetStyledGroupInfos('group', 'title', 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupInfos('group', 'title', 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updaterasterextent9.testcase0000664000175000017500000000035412544707704024725 00000000000000UpdateRasterCoverageExtent - Text transaction :memory: #use in-memory database SELECT SE_UpdateRasterCoverageExtent('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_UpdateRasterCoverageExtent('alpha', 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRasterStyle1.testcase0000664000175000017500000000030512544707704025347 00000000000000UnRegisterRasterStyle - NULL style_id :memory: #use in-memory database SELECT SE_UnRegisterRasterStyle(NULL); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyle(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVector3.testcase0000664000175000017500000000033512544707704024335 00000000000000UnRegisterVectorStyledLayer - Double coverage :memory: #use in-memory database SELECT SE_UnRegisterVectorStyledLayer(1.1, 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyledLayer(1.1, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob3.testcase0000664000175000017500000000027312544707704026016 00000000000000XB_IsSchemaValidated - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_IsSchemaValidated(1.1); 1 # rows (not including the header row) 1 # columns XB_IsSchemaValidated(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterrasterkeyword4.testcase0000664000175000017500000000040612544707704026000 00000000000000UnregisterRasterCoverageKeyword - BLOB coverage :memory: #use in-memory database SELECT SE_UnregisterRasterCoverageKeyword(zeroblob(4), 'keyword'); 1 # rows (not including the header row) 1 # columns SE_UnregisterRasterCoverageKeyword(zeroblob(4), 'keyword') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRaster2.testcase0000664000175000017500000000033212544707704024327 00000000000000UnRegisterRasterStyledLayer - Integer coverage :memory: #use in-memory database SELECT SE_UnRegisterRasterStyledLayer(1, 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyledLayer(1, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroup3.testcase0000664000175000017500000000030712544707704024166 00000000000000UnRegisterStyledGroup - Double group name :memory: #use in-memory database SELECT SE_UnRegisterStyledGroup(1.1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroup(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupStyle2.testcase0000664000175000017500000000026612544707704024647 00000000000000RegisterGroupStyle - INTEGER style :memory: #use in-memory database SELECT SE_RegisterGroupStyle(1); 1 # rows (not including the header row) 1 # columns SE_RegisterGroupStyle(1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/createstyling7.testcase0000664000175000017500000000030412544707704023640 00000000000000CreateStylingTables - NULL transaction NEW:memory: #use in-memory database SELECT CreateStylingTables(1, NULL); 1 # rows (not including the header row) 1 # columns CreateStylingTables(1, NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerrastersrid3.testcase0000664000175000017500000000033712544707704024714 00000000000000RegisterRasterCoverageSrid - Double coverage :memory: #use in-memory database SELECT SE_RegisterRasterCoverageSrid(1.1, 4326); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterCoverageSrid(1.1, 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updatevectorextent7.testcase0000664000175000017500000000035012544707704024721 00000000000000UpdateVectorCoverageExtent - NULL transaction :memory: #use in-memory database SELECT SE_UpdateVectorCoverageExtent('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_UpdateVectorCoverageExtent('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupRaster8.testcase0000664000175000017500000000036712544707704025362 00000000000000UnRegisterStyledGroupRaster - BLOB coverage :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupRaster('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupRaster('alpha', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setvectorinfos9.testcase0000664000175000017500000000035312544707704024046 00000000000000SetVectorCoverageInfos - NULL abstract :memory: #use in-memory database SELECT SE_SetVectorCoverageInfos('alpha', 'title', NULL); 1 # rows (not including the header row) 1 # columns SE_SetVectorCoverageInfos('alpha', 'title', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRasterStyle5.testcase0000664000175000017500000000031312544707704025352 00000000000000UnRegisterRasterStyle - Text style_name :memory: #use in-memory database SELECT SE_UnRegisterRasterStyle('alpha'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyle('alpha') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupLayer2.testcase0000664000175000017500000000032312544707704025160 00000000000000UnRegisterStyledGroupLayer - Double item ID :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupLayer(1.1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupLayer(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issvg4.testcase0000664000175000017500000000023512544707704022116 00000000000000XB_IsSvg - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_IsSvg('alpha'); 1 # rows (not including the header row) 1 # columns XB_IsSvg('alpha') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupRaster2.testcase0000664000175000017500000000033512544707704025347 00000000000000UnRegisterStyledGroupRaster - Int group :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupRaster(1, 'beta'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupRaster(1, 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerIsoMeta12.testcase0000664000175000017500000000035712544707704024155 00000000000000RegisterIsoMetadata - BLOB id :memory: #use in-memory database SELECT RegisterIsoMetadata('series', zeroblob(4), zeroblob(4)); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', zeroblob(4), zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerrasterkeyword3.testcase0000664000175000017500000000036212544707704025435 00000000000000RegisterRasterCoverageKeyword - Double coverage :memory: #use in-memory database SELECT SE_RegisterRasterCoverageKeyword(1.1, 'keyword'); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterCoverageKeyword(1.1, 'keyword') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadVectorStyle3.testcase0000664000175000017500000000035012544707704024432 00000000000000ReloadVectorStyle - BLOB style_id :memory: #use in-memory database SELECT SE_ReloadVectorStyle(zeroblob(100), zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_ReloadVectorStyle(zeroblob(100), zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetschemauri1.testcase0000664000175000017500000000026412544707704025022 00000000000000XB_GetSchemaURI - NULL XmlDocument :memory: #use in-memory database SELECT XB_GetSchemaURI(NULL); 1 # rows (not including the header row) 1 # columns XB_GetSchemaURI(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVectorStyle2.testcase0000664000175000017500000000030512544707704025352 00000000000000UnRegisterVectorStyle - DOUBLE style_id :memory: #use in-memory database SELECT SE_UnRegisterVectorStyle(1.1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyle(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlcompress2.testcase0000664000175000017500000000025112544707704023333 00000000000000XB_Compress - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_Compress('alpha'); 1 # rows (not including the header row) 1 # columns XB_Compress('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issvg1.testcase0000664000175000017500000000022712544707704022114 00000000000000XB_IsSvg - NULL XmlBLOB :memory: #use in-memory database SELECT XB_IsSvg(NULL); 1 # rows (not including the header row) 1 # columns XB_IsSvg(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltoblob9.testcase0000664000175000017500000000042512544707704022773 00000000000000XB_Create - valid XMLDocument, BLOB compression :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', zeroblob(4)); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltoblob12.testcase0000664000175000017500000000056312544707704023050 00000000000000XB_Create - valid XMLDocument, uncompressed :memory: #use in-memory database SELECT Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 0)); 1 # rows (not including the header row) 1 # columns Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 0)) 0001AC12000000120000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC2445E134DD libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgettitle2.testcase0000664000175000017500000000024512544707704024163 00000000000000XB_GetTitle - INTEGER XmlDocument :memory: #use in-memory database SELECT XB_GetTitle(1); 1 # rows (not including the header row) 1 # columns XB_GetTitle(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterStllGroupStyle6.testcase0000664000175000017500000000034512544707704026053 00000000000000UnRegisterStyledGroupStyle - Double style ID :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupStyle('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupStyle('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updaterasterextent6.testcase0000664000175000017500000000033012544707704024714 00000000000000UpdateRasterCoverageExtent - Text coverage :memory: #use in-memory database SELECT SE_UpdateRasterCoverageExtent('alpha'); 1 # rows (not including the header row) 1 # columns SE_UpdateRasterCoverageExtent('alpha') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterrastersrid1.testcase0000664000175000017500000000034512544707704025254 00000000000000UnregisterRasterCoverageSrid - NULL coverage :memory: #use in-memory database SELECT SE_UnregisterRasterCoverageSrid(NULL, 4326); 1 # rows (not including the header row) 1 # columns SE_UnregisterRasterCoverageSrid(NULL, 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg2.testcase0000664000175000017500000000035212544707704024530 00000000000000RegisterVectorCoverage - Int coverage :memory: #use in-memory database SELECT SE_RegisterVectorCoverage(1, 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage(1, 'title', 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRaster4.testcase0000664000175000017500000000035712544707704024340 00000000000000UnRegisterRasterStyledLayer - BLOB coverage :memory: #use in-memory database SELECT SE_UnRegisterRasterStyledLayer(zeroblob(100), 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyledLayer(zeroblob(100), 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isisometadata7.testcase0000664000175000017500000000061512544707704023617 00000000000000XB_IsIsoMetadata - valid XmlBLOB (FALSE) :memory: #use in-memory database SELECT XB_IsIsoMetadata(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); 1 # rows (not including the header row) 1 # columns XB_IsIsoMetadata(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltextfromblob1.testcase0000664000175000017500000000025512544707704024212 00000000000000XB_GetDocument - NULL XmlBLOB :memory: #use in-memory database SELECT XB_GetDocument(NULL); 1 # rows (not including the header row) 1 # columns XB_GetDocument(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetfileid3.testcase0000664000175000017500000000025312544707704024276 00000000000000XB_GetFileId - DOUBLE XmlDocument :memory: #use in-memory database SELECT XB_GetFileId(1.1); 1 # rows (not including the header row) 1 # columns XB_GetFileId(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setvectorinfos5.testcase0000664000175000017500000000035612544707704024045 00000000000000SetVectorCoverageInfos - NULL title :memory: #use in-memory database SELECT SE_SetVectorCoverageInfos('alpha', NULL, 'abstract'); 1 # rows (not including the header row) 1 # columns SE_SetVectorCoverageInfos('alpha', NULL, 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/createstyling4.testcase0000664000175000017500000000027612544707704023645 00000000000000CreateStylingTables - BLOB :memory: #use in-memory database SELECT CreateStylingTables(zeroblob(4)); 1 # rows (not including the header row) 1 # columns CreateStylingTables(zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg19.testcase0000664000175000017500000000040612544707704024620 00000000000000RegisterVectorCoverage - Int abstract :memory: #use in-memory database SELECT SE_RegisterVectorCoverage('alpha', 'table', 'geom', 'title', 1); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage('alpha', 'table', 'geom', 'title', 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorkeyword5.testcase0000664000175000017500000000035512544707704025443 00000000000000RegisterVectorCoverageKeyword - NULL keyword :memory: #use in-memory database SELECT SE_RegisterVectorCoverageKeyword('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverageKeyword('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic3.testcase0000664000175000017500000000032212544707704024101 00000000000000RegisterExternalGraphic - DOUBLE URL :memory: #use in-memory database SELECT SE_RegisterExternalGraphic(1.1, NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic(1.1, NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterStllGroupStyle8.testcase0000664000175000017500000000034112544707704026051 00000000000000UnRegisterStyledGroupStyle - Integer style ID :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupStyle('alpha', 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupStyle('alpha', 1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setRasterPaintOrder13.testcase0000664000175000017500000000036612544707704025014 00000000000000SetStyledGroupRasterPaintOrder - Int order :memory: #use in-memory database SELECT SE_SetStyledGroupRasterPaintOrder('alpha', 'beta', 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupRasterPaintOrder('alpha', 'beta', 1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic16.testcase0000664000175000017500000000044412544707704024172 00000000000000RegisterExternalGraphic - DOUBLE abstract :memory: #use in-memory database SELECT SE_RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 1.1, NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 1.1, NULL); -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updatevectorextent1.testcase0000664000175000017500000000031212544707704024711 00000000000000UpdateVectorCoverageExtent - all coverages :memory: #use in-memory database SELECT SE_UpdateVectorCoverageExtent(); 1 # rows (not including the header row) 1 # columns SE_UpdateVectorCoverageExtent() 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorkeyword6.testcase0000664000175000017500000000035512544707704025444 00000000000000RegisterVectorCoverageKeyword - Double keyword :memory: #use in-memory database SELECT SE_RegisterVectorCoverageKeyword('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverageKeyword('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVector2.testcase0000664000175000017500000000033212544707704024331 00000000000000UnRegisterVectorStyledLayer - Integer coverage :memory: #use in-memory database SELECT SE_UnRegisterVectorStyledLayer(1, 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyledLayer(1, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/createisometa5.testcase0000664000175000017500000000027112544707704023611 00000000000000CreateIsoMetadataTables - no args NEW:memory: #use in-memory database SELECT CreateIsoMetadataTables(); 1 # rows (not including the header row) 1 # columns CreateIsoMetadataTables() 1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic20.testcase0000664000175000017500000000045012544707704024162 00000000000000RegisterExternalGraphic - DOUBLE filename :memory: #use in-memory database SELECT SE_RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 1.1); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 1.1); -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg14.testcase0000664000175000017500000000042012544707704024607 00000000000000RegisterVectorCoverage - NULL title :memory: #use in-memory database SELECT SE_RegisterVectorCoverage('alpha', 'table', 'geom', NULL, 'abstract'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage('alpha', 'table', 'geom', NULL, 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/createstyling5.testcase0000664000175000017500000000025512544707704023643 00000000000000CreateStylingTables - no args NEW:memory: #use in-memory database SELECT CreateStylingTables(); 1 # rows (not including the header row) 1 # columns CreateStylingTables() 1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob2.testcase0000664000175000017500000000027012544707704026012 00000000000000XB_IsSchemaValidated - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_IsSchemaValidated(1); 1 # rows (not including the header row) 1 # columns XB_IsSchemaValidated(1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterStllGroupStyle1.testcase0000664000175000017500000000033312544707704026043 00000000000000UnRegisterStyledGroupStyle - NULL group name :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupStyle(NULL, 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupStyle(NULL, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltoblob4.testcase0000664000175000017500000000026012544707704022763 00000000000000XB_Create - BLOB XMLDocument :memory: #use in-memory database SELECT XB_Create(zeroblob(4)); 1 # rows (not including the header row) 1 # columns XB_Create(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGraphic3.testcase0000664000175000017500000000031412544707704024445 00000000000000UnregisterExternalGraphic - Double URL :memory: #use in-memory database SELECT SE_UnregisterExternalGraphic(1.1); 1 # rows (not including the header row) 1 # columns SE_UnregisterExternalGraphic(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updatevectorextent13.testcase0000664000175000017500000000033412544707704025000 00000000000000UpdateVectorCoverageExtent - two args, Int coverage :memory: #use in-memory database SELECT SE_UpdateVectorCoverageExtent(1, 1); 1 # rows (not including the header row) 1 # columns SE_UpdateVectorCoverageExtent(1, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetname3.testcase0000664000175000017500000000024512544707704023763 00000000000000XB_GetName - DOUBLE XmlDocument :memory: #use in-memory database SELECT XB_GetName(1.1); 1 # rows (not including the header row) 1 # columns XB_GetName(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetencoding6.testcase0000664000175000017500000000066112544707704024636 00000000000000XB_GetEncoding - valid XmlBLOB, no encoding :memory: #use in-memory database SELECT XB_GetEncoding(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); 1 # rows (not including the header row) 1 # columns XB_GetEncoding(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issvg2.testcase0000664000175000017500000000022412544707704022112 00000000000000XB_IsSvg - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_IsSvg(1); 1 # rows (not including the header row) 1 # columns XB_IsSvg(1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setVectorPaintOrder10.testcase0000664000175000017500000000037612544707704025014 00000000000000SetStyledGroupVectorPaintOrder - Double order :memory: #use in-memory database SELECT SE_SetStyledGroupVectorPaintOrder('alpha', 'beta', 1.1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupVectorPaintOrder('alpha', 'beta', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerStllGroupStyle8.testcase0000664000175000017500000000034112544707704025506 00000000000000RegisterStyledGroupStyle - valid Integer style ID :memory: #use in-memory database SELECT SE_RegisterStyledGroupStyle('alpha', 1); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupStyle('alpha', 1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltoblob1.testcase0000664000175000017500000000024212544707704022760 00000000000000XB_Create - NULL XMLDocument :memory: #use in-memory database SELECT XB_Create(NULL); 1 # rows (not including the header row) 1 # columns XB_Create(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVector10.testcase0000664000175000017500000000035112544707704024411 00000000000000UnRegisterVectorStyledLayer - Double style_id :memory: #use in-memory database SELECT SE_UnRegisterVectorStyledLayer('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyledLayer('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setparentid2.testcase0000664000175000017500000000064512544707704023310 00000000000000XB_SetParentId - not ISO Metadata XmlBLOB :memory: #use in-memory database SELECT XB_SetParentId(XB_Create(CastToBlob('a')), 'alpha'); 1 # rows (not including the header row) 1 # columns XB_SetParentId(XB_Create(CastToBlob('a')), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupRaster5.testcase0000664000175000017500000000035112544707704025350 00000000000000UnRegisterStyledGroupRaster - NULL coverage :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupRaster('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupRaster('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setGroupInfos4.testcase0000664000175000017500000000037112544707704023573 00000000000000SetStyledGroupInfos - BLOB group_name :memory: #use in-memory database SELECT SE_SetStyledGroupInfos(zeroblob(4), 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupInfos(zeroblob(4), 'title', 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updatevectorextent9.testcase0000664000175000017500000000035412544707704024727 00000000000000UpdateVectorCoverageExtent - Text transaction :memory: #use in-memory database SELECT SE_UpdateVectorCoverageExtent('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_UpdateVectorCoverageExtent('alpha', 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setvectorinfos12.testcase0000664000175000017500000000037112544707704024120 00000000000000SetVectorCoverageInfos - BLOB abstract :memory: #use in-memory database SELECT SE_SetVectorCoverageInfos('alpha', 'title', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_SetVectorCoverageInfos('alpha', 'title', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg6.testcase0000664000175000017500000000034612544707704024537 00000000000000RegisterVectorCoverage - Int f_table_name :memory: #use in-memory database SELECT SE_RegisterVectorCoverage('alpha', 1, 'geom'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage('alpha', 1, 'geom') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetabstract1.testcase0000664000175000017500000000026112544707704024642 00000000000000XB_GetAbstract - NULL XmlDocument :memory: #use in-memory database SELECT XB_GetAbstract(NULL); 1 # rows (not including the header row) 1 # columns XB_GetAbstract(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorsrid1.testcase0000664000175000017500000000033712544707704024714 00000000000000RegisterVectorCoverageSrid - NULL coverage :memory: #use in-memory database SELECT SE_RegisterVectorCoverageSrid(NULL, 4326); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverageSrid(NULL, 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerStllGroupStyle1.testcase0000664000175000017500000000032512544707704025501 00000000000000RegisterStyledGroupStyle - NULL group name :memory: #use in-memory database SELECT SE_RegisterStyledGroupStyle(NULL, 1); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupStyle(NULL, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorsrid4.testcase0000664000175000017500000000035512544707704024717 00000000000000RegisterVectorCoverageSrid - BLOB coverage :memory: #use in-memory database SELECT SE_RegisterVectorCoverageSrid(zeroblob(4), 4326); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverageSrid(zeroblob(4), 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorcvg2.testcase0000664000175000017500000000030612544707704025072 00000000000000UnregisterVectorCoverage - Int coverage :memory: #use in-memory database SELECT SE_UnregisterVectorCoverage(1); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverage(1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltextfromblob2.testcase0000664000175000017500000000025212544707704024210 00000000000000XB_GetDocument - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_GetDocument(1); 1 # rows (not including the header row) 1 # columns XB_GetDocument(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltoblob15.testcase0000664000175000017500000000044512544707704023052 00000000000000XB_Create - valid XMLDocument, compressed, BLOB SchemaURI :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, zeroblob(4)); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/iscompressedxmlblob3.testcase0000664000175000017500000000025412544707704025043 00000000000000XB_IsCompressed - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_IsCompressed(1.1); 1 # rows (not including the header row) 1 # columns XB_IsCompressed(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlfromblob12.testcase0000664000175000017500000000070712544707704023371 00000000000000XB_GetPayload - valid XmlBLOB, BLOB format :memory: #use in-memory database SELECT XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', zeroblob(4)); 1 # rows (not including the header row) 1 # columns XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/iscompressedxmlblob7.testcase0000664000175000017500000000062112544707704025045 00000000000000XB_IsCompressed - valid XmlBLOB (uncompressed) :memory: #use in-memory database SELECT XB_IsCompressed(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); 1 # rows (not including the header row) 1 # columns XB_IsCompressed(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterrastersrid8.testcase0000664000175000017500000000036512544707704025265 00000000000000UnregisterRasterCoverageSrid - BLOB srid :memory: #use in-memory database SELECT SE_UnregisterRasterCoverageSrid('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_UnregisterRasterCoverageSrid('alpha', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setvectorinfos11.testcase0000664000175000017500000000035312544707704024117 00000000000000SetVectorCoverageInfos - Double abstract :memory: #use in-memory database SELECT SE_SetVectorCoverageInfos('alpha', 'title', 1.1); 1 # rows (not including the header row) 1 # columns SE_SetVectorCoverageInfos('alpha', 'title', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setGroupInfos6.testcase0000664000175000017500000000034312544707704023574 00000000000000SetStyledGroupInfos - INTEGER title :memory: #use in-memory database SELECT SE_SetStyledGroupInfos('group', 1, 'abstract'); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupInfos('group', 1, 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorsrid8.testcase0000664000175000017500000000035712544707704024725 00000000000000RegisterVectorCoverageSrid - BLOB srid :memory: #use in-memory database SELECT SE_RegisterVectorCoverageSrid('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverageSrid('alpha', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadGroupStyle5.testcase0000664000175000017500000000033212544707704024266 00000000000000ReloadGroupStyle - Text style Name :memory: #use in-memory database SELECT SE_ReloadGroupStyle('alpha', zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_ReloadGroupStyle('alpha', zeroblob(100)) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgettitle3.testcase0000664000175000017500000000025012544707704024160 00000000000000XB_GetTitle - DOUBLE XmlDocument :memory: #use in-memory database SELECT XB_GetTitle(1.1); 1 # rows (not including the header row) 1 # columns XB_GetTitle(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic14.testcase0000664000175000017500000000044412544707704024170 00000000000000RegisterExternalGraphic - NULL abstract :memory: #use in-memory database SELECT SE_RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', NULL, NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', NULL, NULL); -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlfromblob9.testcase0000664000175000017500000000053512544707704023316 00000000000000XB_GetPayload - valid XmlBLOB, NULL format :memory: #use in-memory database SELECT XB_GetPayload(x'0001AB12000000120000000000BACB3C613E3C623E746578743C2F623E3C2F613EBCF63D032ADD', NULL); 1 # rows (not including the header row) 1 # columns XB_GetPayload(x'0001AB12000000120000000000BACB3C613E3C623E746578743C2F623E3C2F613EBCF63D032ADD', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setVectorPaintOrder2.testcase0000664000175000017500000000035412544707704024731 00000000000000SetStyledGroupVectorPaintOrder - Int group :memory: #use in-memory database SELECT SE_SetStyledGroupVectorPaintOrder(1, 'beta', 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupVectorPaintOrder(1, 'beta', 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/addparentid7.testcase0000664000175000017500000000113312544707704023243 00000000000000XB_AddParentId - valid - default namespace :memory: #use in-memory database SELECT XB_GetParentId(XB_AddParentId(XB_Create(CastToBlob('')), 'newparentid', NULL, 'http://www.isotc211.org/2005/gmd', 'gco', 'http://www.isotc211.org/2005/gco')); 1 # rows (not including the header row) 1 # columns XB_GetParentId(XB_AddParentId(XB_Create(CastToBlob('')), 'newparentid', NULL, 'http://www.isotc211.org/2005/gmd', 'gco', 'http://www.isotc211.org/2005/gco')):0 newparentid libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterrasterkeyword6.testcase0000664000175000017500000000036312544707704026004 00000000000000UnregisterRasterCoverageKeyword - Double keyword :memory: #use in-memory database SELECT SE_UnregisterRasterCoverageKeyword('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_UnregisterRasterCoverageKeyword('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setVectorPaintOrder12.testcase0000664000175000017500000000041412544707704025007 00000000000000SetStyledGroupVectorPaintOrder - BLOB order :memory: #use in-memory database SELECT SE_SetStyledGroupVectorPaintOrder('alpha', 'beta', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupVectorPaintOrder('alpha', 'beta', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupStyle5.testcase0000664000175000017500000000031012544707704025203 00000000000000UnRegisterGroupStyle - Text style name :memory: #use in-memory database SELECT SE_UnRegisterGroupStyle('alpha'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterGroupStyle('alpha') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetencoding2.testcase0000664000175000017500000000025212544707704024626 00000000000000XB_GetEncoding - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_GetEncoding(1); 1 # rows (not including the header row) 1 # columns XB_GetEncoding(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupStyle1.testcase0000664000175000017500000000027112544707704024642 00000000000000RegisterGroupStyle - NULL style :memory: #use in-memory database SELECT SE_RegisterGroupStyle(NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterGroupStyle(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updaterasterextent8.testcase0000664000175000017500000000035012544707704024720 00000000000000UpdateRasterCoverageExtent - Double transaction :memory: #use in-memory database SELECT SE_UpdateRasterCoverageExtent('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_UpdateRasterCoverageExtent('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupStyle4.testcase0000664000175000017500000000027712544707704024653 00000000000000RegisterGroupStyle - Text Style :memory: #use in-memory database SELECT SE_RegisterGroupStyle('alpha'); 1 # rows (not including the header row) 1 # columns SE_RegisterGroupStyle('alpha') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetname4.testcase0000664000175000017500000000026712544707704023770 00000000000000XB_GetName - BLOB XmlDocument :memory: #use in-memory database SELECT XB_GetName(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetName(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorkeyword8.testcase0000664000175000017500000000040112544707704026001 00000000000000UnregisterVectorCoverageKeyword - BLOB keyword :memory: #use in-memory database SELECT SE_UnregisterVectorCoverageKeyword('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverageKeyword('alpha', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri4.testcase0000664000175000017500000000031612544707704026560 00000000000000XB_GetInternalSchemaURI - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_GetInternalSchemaURI('alpha'); 1 # rows (not including the header row) 1 # columns XB_GetInternalSchemaURI('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerRaster6.testcase0000664000175000017500000000033612544707704023774 00000000000000RegisterRasterStyledLayer - INTEGER style_id :memory: #use in-memory database SELECT SE_RegisterRasterStyledLayer('alpha', 1); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterStyledLayer('alpha', 1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/addparentid5.testcase0000664000175000017500000000102312544707704023237 00000000000000XB_AddParentId - valid - no namespaces :memory: #use in-memory database SELECT XB_GetParentId(XB_AddParentId(XB_Create(CastToBlob('a')), 'newparentid', NULL, NULL, NULL, NULL)); 1 # rows (not including the header row) 1 # columns XB_GetParentId(XB_AddParentId(XB_Create(CastToBlob('a')), 'newparentid', NULL, NULL, NULL, NULL)) newparentid libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setGroupInfos9.testcase0000664000175000017500000000034312544707704023577 00000000000000SetStyledGroupInfos - NULL abstract :memory: #use in-memory database SELECT SE_SetStyledGroupInfos('group', 'title', NULL); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupInfos('group', 'title', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/iscompressedxmlblob2.testcase0000664000175000017500000000025112544707704025037 00000000000000XB_IsCompressed - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_IsCompressed(1); 1 # rows (not including the header row) 1 # columns XB_IsCompressed(1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupRaster4.testcase0000664000175000017500000000036112544707704025005 00000000000000RegisterStyledGroupRaster - BLOB group_name :memory: #use in-memory database SELECT SE_RegisterStyledGroupRaster(zeroblob(4), 'beta'); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupRaster(zeroblob(4), 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetfileid2.testcase0000664000175000017500000000025012544707704024272 00000000000000XB_GetFileId - INTEGER XmlDocument :memory: #use in-memory database SELECT XB_GetFileId(1); 1 # rows (not including the header row) 1 # columns XB_GetFileId(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltextfromblob3.testcase0000664000175000017500000000025512544707704024214 00000000000000XB_GetDocument - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_GetDocument(1.1); 1 # rows (not including the header row) 1 # columns XB_GetDocument(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgettitle4.testcase0000664000175000017500000000027212544707704024165 00000000000000XB_GetTitle - BLOB XmlDocument :memory: #use in-memory database SELECT XB_GetTitle(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetTitle(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/addparentid1.testcase0000664000175000017500000000035712544707704023244 00000000000000XB_AddParentId - NULL XmlBLOB :memory: #use in-memory database SELECT XB_AddParentId(NULL, 'alpha', NULL, NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns XB_AddParentId(NULL, 'alpha', NULL, NULL, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmluncompress8.testcase0000664000175000017500000000101712544707704023705 00000000000000XB_Uncompress - valid XmlBLOB (compressed) :memory: #use in-memory database SELECT Hex(XB_Uncompress(x'0001AC12000000120000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC2445E134DD')); 1 # rows (not including the header row) 1 # columns Hex(XB_Uncompress(x'0001AC12000000120000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC2445E134DD')) 0001AC12000000120000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC2445E134DD libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updatevectorextent15.testcase0000664000175000017500000000036112544707704025002 00000000000000UpdateVectorCoverageExtent - two args, BLOB coverage :memory: #use in-memory database SELECT SE_UpdateVectorCoverageExtent(zeroblob(4), 1); 1 # rows (not including the header row) 1 # columns SE_UpdateVectorCoverageExtent(zeroblob(4), 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltoblob8.testcase0000664000175000017500000000041112544707704022765 00000000000000XB_Create - valid XMLDocument, TEXT compression :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 'yes'); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 'yes') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/getIsoMetaId3.testcase0000664000175000017500000000026612544707704023304 00000000000000GetIsoMetadataId - DOUBLE fileIdentifier :memory: #use in-memory database SELECT GetIsoMetadataId(1.1); 1 # rows (not including the header row) 1 # columns GetIsoMetadataId(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/getIsoMetaId5.testcase0000664000175000017500000000027312544707704023304 00000000000000GetIsoMetadataId - TEXT fileIdentifier :memory: #use in-memory database SELECT GetIsoMetadataId('alpha'); 1 # rows (not including the header row) 1 # columns GetIsoMetadataId('alpha') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetgeometry1.testcase0000664000175000017500000000026112544707704024672 00000000000000XB_GetGeometry - NULL XmlDocument :memory: #use in-memory database SELECT XB_GetGeometry(NULL); 1 # rows (not including the header row) 1 # columns XB_GetGeometry(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg15.testcase0000664000175000017500000000041112544707704024610 00000000000000RegisterVectorCoverage - Int title :memory: #use in-memory database SELECT SE_RegisterVectorCoverage('alpha', 'table', 'geom', 1, 'abstract'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage('alpha', 'table', 'geom', 1, 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlfromblob1.testcase0000664000175000017500000000025212544707704023302 00000000000000XB_GetPayload - NULL XmlBLOB :memory: #use in-memory database SELECT XB_GetPayload(NULL); 1 # rows (not including the header row) 1 # columns XB_GetPayload(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setGroupInfos13.testcase0000664000175000017500000000034612544707704023655 00000000000000SetStyledGroupInfos - valid :memory: #use in-memory database SELECT SE_SetStyledGroupInfos('group', 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupInfos('group', 'title', 'abstract') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVector11.testcase0000664000175000017500000000037312544707704024416 00000000000000UnRegisterVectorStyledLayer - BLOB style_id :memory: #use in-memory database SELECT SE_UnRegisterVectorStyledLayer('alpha', zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyledLayer('alpha', zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setVectorPaintOrder5.testcase0000664000175000017500000000037012544707704024732 00000000000000SetStyledGroupVectorPaintOrder - NULL coverage :memory: #use in-memory database SELECT SE_SetStyledGroupVectorPaintOrder('alpha', NULL, 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupVectorPaintOrder('alpha', NULL, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlfromblob3.testcase0000664000175000017500000000025212544707704023304 00000000000000XB_GetPayload - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_GetPayload(1.1); 1 # rows (not including the header row) 1 # columns XB_GetPayload(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerStllGroupStyle5.testcase0000664000175000017500000000033712544707704025510 00000000000000RegisterStyledGroupStyle - NULL stile ID :memory: #use in-memory database SELECT SE_RegisterStyledGroupStyle('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupStyle('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRasterStyle2.testcase0000664000175000017500000000030512544707704025350 00000000000000UnRegisterRasterStyle - DOUBLE style_id :memory: #use in-memory database SELECT SE_UnRegisterRasterStyle(1.1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyle(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setVectorPaintOrder7.testcase0000664000175000017500000000037012544707704024734 00000000000000SetStyledGroupVectorPaintOrder - Double coverage :memory: #use in-memory database SELECT SE_SetStyledGroupVectorPaintOrder('alpha', 1.1, 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupVectorPaintOrder('alpha', 1.1, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob1.testcase0000664000175000017500000000027312544707704026014 00000000000000XB_IsSchemaValidated - NULL XmlBLOB :memory: #use in-memory database SELECT XB_IsSchemaValidated(NULL); 1 # rows (not including the header row) 1 # columns XB_IsSchemaValidated(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isisometadata6.testcase0000664000175000017500000000060012544707704023610 00000000000000XB_IsIsoMetadata - valid XmlBLOB (TRUE) :memory: #use in-memory database SELECT XB_IsIsoMetadata(x'0081AB0F0000000F0000000000BA0000CA0000DA0000DB0000DC0000DDCB3C4D445F4D65746164617461202F3EBC8402E3A9DD'); 1 # rows (not including the header row) 1 # columns XB_IsIsoMetadata(x'0081AB0F0000000F0000000000BA0000CA0000DA0000DB0000DC0000DDCB3C4D445F4D65746164617461202F3EBC8402E3A9DD') 1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setPaintOrder8.testcase0000664000175000017500000000033412544707704023552 00000000000000SetStyledGroupLayerPaintOrder - ID - Int order :memory: #use in-memory database SELECT SE_SetStyledGroupLayerPaintOrder(1, 2); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupLayerPaintOrder(1, 2) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerVectorStyle1.testcase0000664000175000017500000000027412544707704025013 00000000000000RegisterVectorStyle - NULL style :memory: #use in-memory database SELECT SE_RegisterVectorStyle(NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorStyle(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerIsoMeta10.testcase0000664000175000017500000000034112544707704024144 00000000000000RegisterIsoMetadata - NULL id :memory: #use in-memory database SELECT RegisterIsoMetadata('series', zeroblob(4), NULL); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', zeroblob(4), NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/iscompressedxmlblob5.testcase0000664000175000017500000000030112544707704025036 00000000000000XB_IsCompressed - invalid XmlBLOB :memory: #use in-memory database SELECT XB_IsCompressed(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_IsCompressed(zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updatevectorextent2.testcase0000664000175000017500000000032412544707704024715 00000000000000UpdateVectorCoverageExtent - NULL coverage :memory: #use in-memory database SELECT SE_UpdateVectorCoverageExtent(NULL); 1 # rows (not including the header row) 1 # columns SE_UpdateVectorCoverageExtent(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupVector4.testcase0000664000175000017500000000036112544707704025007 00000000000000RegisterStyledGroupVector - BLOB group_name :memory: #use in-memory database SELECT SE_RegisterStyledGroupVector(zeroblob(4), 'beta'); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupVector(zeroblob(4), 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltextfromblob7.testcase0000664000175000017500000000063712544707704024224 00000000000000XB_GetDocument - valid XmlBLOB (uncompressed) :memory: #use in-memory database SELECT XB_GetDocument(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); 1 # rows (not including the header row) 1 # columns XB_GetDocument(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') text libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updaterasterextent12.testcase0000664000175000017500000000034312544707704024775 00000000000000UpdateRasterCoverageExtent - two args, NULL coverage :memory: #use in-memory database SELECT SE_UpdateRasterCoverageExtent(NULL, 1); 1 # rows (not including the header row) 1 # columns SE_UpdateRasterCoverageExtent(NULL, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize5.testcase0000664000175000017500000000031612544707704025555 00000000000000XB_GetDocumentSize - invalid XmlBLOB :memory: #use in-memory database SELECT XB_GetDocumentSize(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetDocumentSize(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/addfileid2.testcase0000664000175000017500000000071712544707704022673 00000000000000XB_AddFileId - not ISO Metadata XmlBLOB :memory: #use in-memory database SELECT XB_AddFileId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns XB_AddFileId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg5.testcase0000664000175000017500000000035512544707704024536 00000000000000RegisterVectorCoverage - NULL f_table_name :memory: #use in-memory database SELECT SE_RegisterVectorCoverage('alpha', NULL, 'geom'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage('alpha', NULL, 'geom') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetabstract3.testcase0000664000175000017500000000026112544707704024644 00000000000000XB_GetAbstract - DOUBLE XmlDocument :memory: #use in-memory database SELECT XB_GetAbstract(1.1); 1 # rows (not including the header row) 1 # columns XB_GetAbstract(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlcompress7.testcase0000664000175000017500000000101712544707704023341 00000000000000XB_Compress - valid XmlBLOB (uncompressed) :memory: #use in-memory database SELECT Hex(XB_Compress(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD')); 1 # rows (not including the header row) 1 # columns Hex(XB_Compress(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD')) 0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerRasterStyle2.testcase0000664000175000017500000000027112544707704025007 00000000000000RegisterRasterStyle - Integer style :memory: #use in-memory database SELECT SE_RegisterRasterStyle(1); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterStyle(1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadVectorStyle2.testcase0000664000175000017500000000032612544707704024434 00000000000000ReloadVectorStyle - Double style_id :memory: #use in-memory database SELECT SE_ReloadVectorStyle(1.1, zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_ReloadVectorStyle(1.1, zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupVector4.testcase0000664000175000017500000000036212544707704025353 00000000000000UnRegisterStyledGroupVector - BLOB group :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupVector(zeroblob(4), 'beta'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupVector(zeroblob(4), 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updatevectorextent12.testcase0000664000175000017500000000034312544707704024777 00000000000000UpdateVectorCoverageExtent - two args, NULL coverage :memory: #use in-memory database SELECT SE_UpdateVectorCoverageExtent(NULL, 1); 1 # rows (not including the header row) 1 # columns SE_UpdateVectorCoverageExtent(NULL, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetabstract6.testcase0000664000175000017500000000056512544707704024656 00000000000000XB_GetAbstract - valid XmlBLOB, no Abstract :memory: #use in-memory database SELECT XB_GetAbstract(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); 1 # rows (not including the header row) 1 # columns XB_GetAbstract(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setPaintOrder5.testcase0000664000175000017500000000035312544707704023550 00000000000000SetStyledGroupLayerPaintOrder - ID - Text order :memory: #use in-memory database SELECT SE_SetStyledGroupLayerPaintOrder(1, 'alpha'); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupLayerPaintOrder(1, 'alpha') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerIsoMeta2.testcase0000664000175000017500000000027712544707704024075 00000000000000RegisterIsoMetadata - INTEGER scope :memory: #use in-memory database SELECT RegisterIsoMetadata(1, NULL); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata(1, NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupLayer5.testcase0000664000175000017500000000031612544707704025165 00000000000000UnRegisterStyledGroupLayer - Integer item ID :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupLayer(1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupLayer(1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isisometadata5.testcase0000664000175000017500000000030412544707704023610 00000000000000XB_IsIsoMetadata - invalid XmlBLOB :memory: #use in-memory database SELECT XB_IsIsoMetadata(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_IsIsoMetadata(zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isisometadata3.testcase0000664000175000017500000000025712544707704023615 00000000000000XB_IsIsoMetadata - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_IsIsoMetadata(1.1); 1 # rows (not including the header row) 1 # columns XB_IsIsoMetadata(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/addfileid1.testcase0000664000175000017500000000035112544707704022664 00000000000000XB_AddFileId - NULL XmlBLOB :memory: #use in-memory database SELECT XB_AddFileId(NULL, 'alpha', NULL, NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns XB_AddFileId(NULL, 'alpha', NULL, NULL, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorsrid7.testcase0000664000175000017500000000035312544707704025263 00000000000000UnregisterVectorCoverageSrid - Text srid :memory: #use in-memory database SELECT SE_UnregisterVectorCoverageSrid('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverageSrid('alpha', 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerVectorStyle4.testcase0000664000175000017500000000030212544707704025006 00000000000000RegisterVectorStyle - Text style :memory: #use in-memory database SELECT SE_RegisterVectorStyle('alpha'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorStyle('alpha') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltoblob3.testcase0000664000175000017500000000024212544707704022762 00000000000000XB_Create - DOUBLE XMLDocument :memory: #use in-memory database SELECT XB_Create(1.1); 1 # rows (not including the header row) 1 # columns XB_Create(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setGroupInfos3.testcase0000664000175000017500000000035312544707704023572 00000000000000SetStyledGroupInfos - DOUBLE group_name :memory: #use in-memory database SELECT SE_SetStyledGroupInfos(1.5, 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupInfos(1.5, 'title', 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic1.testcase0000664000175000017500000000032212544707704024077 00000000000000RegisterExternalGraphic - NULL URL :memory: #use in-memory database SELECT SE_RegisterExternalGraphic(NULL, NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic(NULL, NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupVector2.testcase0000664000175000017500000000033512544707704025351 00000000000000UnRegisterStyledGroupVector - Int group :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupVector(1, 'beta'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupVector(1, 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterrastersrid5.testcase0000664000175000017500000000034712544707704025262 00000000000000UnregisterRasterCoverageSrid - NULL srid :memory: #use in-memory database SELECT SE_UnregisterRasterCoverageSrid('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_UnregisterRasterCoverageSrid('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupRaster5.testcase0000664000175000017500000000035012544707704025004 00000000000000RegisterStyledGroupRaster - NULL coverage_name :memory: #use in-memory database SELECT SE_RegisterStyledGroupRaster('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupRaster('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerIsoMeta6.testcase0000664000175000017500000000031212544707704024067 00000000000000RegisterIsoMetadata - INTEGER metadata :memory: #use in-memory database SELECT RegisterIsoMetadata('series', 1); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize2.testcase0000664000175000017500000000026612544707704025556 00000000000000XB_GetDocumentSize - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_GetDocumentSize(1); 1 # rows (not including the header row) 1 # columns XB_GetDocumentSize(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetencoding5.testcase0000664000175000017500000000030212544707704024625 00000000000000XB_GetEncoding - invalid XmlBLOB :memory: #use in-memory database SELECT XB_GetEncoding(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetEncoding(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmluncompress4.testcase0000664000175000017500000000025112544707704023700 00000000000000XB_Uncompress - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_Uncompress(1.1); 1 # rows (not including the header row) 1 # columns XB_Uncompress(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerrasterkeyword2.testcase0000664000175000017500000000035312544707704025434 00000000000000RegisterRasterCoverageKeyword - Int coverage :memory: #use in-memory database SELECT SE_RegisterRasterCoverageKeyword(1, 'keyword'); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterCoverageKeyword(1, 'keyword') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerRaster5.testcase0000664000175000017500000000034012544707704023766 00000000000000RegisterRasterStyledLayer - NULL style :memory: #use in-memory database SELECT SE_RegisterRasterStyledLayer('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterStyledLayer('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updatevectorextent4.testcase0000664000175000017500000000032412544707704024717 00000000000000UpdateVectorCoverageExtent - Double coverage :memory: #use in-memory database SELECT SE_UpdateVectorCoverageExtent(1.1); 1 # rows (not including the header row) 1 # columns SE_UpdateVectorCoverageExtent(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadVectorStyle10.testcase0000664000175000017500000000031312544707704024507 00000000000000ReloadVectorStyle - Text style :memory: #use in-memory database SELECT SE_ReloadVectorStyle('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_ReloadVectorStyle('alpha', 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorsrid3.testcase0000664000175000017500000000033712544707704024716 00000000000000RegisterVectorCoverageSrid - Double coverage :memory: #use in-memory database SELECT SE_RegisterVectorCoverageSrid(1.1, 4326); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverageSrid(1.1, 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRasterStyle8.testcase0000664000175000017500000000033612544707704025362 00000000000000UnRegisterRasterStyle - TEXT second arg :memory: #use in-memory database SELECT SE_UnRegisterRasterStyle('alpha', 'alpha'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyle('alpha', 'alpha') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRaster5.testcase0000664000175000017500000000035112544707704024333 00000000000000UnRegisterRasterStyledLayer - NULL style_id :memory: #use in-memory database SELECT SE_UnRegisterRasterStyledLayer('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyledLayer('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isvalidxmlblob3.testcase0000664000175000017500000000023512544707704023775 00000000000000XB_IsValid - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_IsValid(1.1); 1 # rows (not including the header row) 1 # columns XB_IsValid(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setfileid4.testcase0000664000175000017500000000065612544707704022742 00000000000000XB_SetFileId - ISO Metadata - INTEGER fileId :memory: #use in-memory database SELECT XB_SetFileId(XB_Create(CastToBlob('a')), 1234); 1 # rows (not including the header row) 1 # columns XB_SetFileId(XB_Create(CastToBlob('a')), 1234) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetabstract2.testcase0000664000175000017500000000025612544707704024647 00000000000000XB_GetAbstract - INTEGER XmlDocument :memory: #use in-memory database SELECT XB_GetAbstract(1); 1 # rows (not including the header row) 1 # columns XB_GetAbstract(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetgeometry2.testcase0000664000175000017500000000025612544707704024677 00000000000000XB_GetGeometry - INTEGER XmlDocument :memory: #use in-memory database SELECT XB_GetGeometry(1); 1 # rows (not including the header row) 1 # columns XB_GetGeometry(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setGroupInfos8.testcase0000664000175000017500000000036412544707704023601 00000000000000SetStyledGroupInfos - BLOB title :memory: #use in-memory database SELECT SE_SetStyledGroupInfos('group', zeroblob(4), 'abstract'); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupInfos('group', zeroblob(4), 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setRasterPaintOrder5.testcase0000664000175000017500000000037012544707704024730 00000000000000SetStyledGroupRasterPaintOrder - NULL coverage :memory: #use in-memory database SELECT SE_SetStyledGroupRasterPaintOrder('alpha', NULL, 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupRasterPaintOrder('alpha', NULL, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterrasterkeyword3.testcase0000664000175000017500000000037012544707704025777 00000000000000UnregisterRasterCoverageKeyword - Double coverage :memory: #use in-memory database SELECT SE_UnregisterRasterCoverageKeyword(1.1, 'keyword'); 1 # rows (not including the header row) 1 # columns SE_UnregisterRasterCoverageKeyword(1.1, 'keyword') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGraphic4.testcase0000664000175000017500000000033212544707704024446 00000000000000UnregisterExternalGraphic - BLOB URL :memory: #use in-memory database SELECT SE_UnregisterExternalGraphic(zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_UnregisterExternalGraphic(zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerrastersrid8.testcase0000664000175000017500000000035712544707704024723 00000000000000RegisterRasterCoverageSrid - BLOB srid :memory: #use in-memory database SELECT SE_RegisterRasterCoverageSrid('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterCoverageSrid('alpha', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic9.testcase0000664000175000017500000000037112544707704024113 00000000000000RegisterExternalGraphic - BLOB resource :memory: #use in-memory database SELECT SE_RegisterExternalGraphic('resource.png', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic('resource.png', zeroblob(4)); 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorkeyword4.testcase0000664000175000017500000000040612544707704026002 00000000000000UnregisterVectorCoverageKeyword - BLOB coverage :memory: #use in-memory database SELECT SE_UnregisterVectorCoverageKeyword(zeroblob(4), 'keyword'); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverageKeyword(zeroblob(4), 'keyword') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setPaintOrder6.testcase0000664000175000017500000000036312544707704023552 00000000000000SetStyledGroupLayerPaintOrder - ID - BLOB order :memory: #use in-memory database SELECT SE_SetStyledGroupLayerPaintOrder(1, zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupLayerPaintOrder(1, zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/addfileid5.testcase0000664000175000017500000000101312544707704022664 00000000000000XB_AddFileId - valid - no namespaces :memory: #use in-memory database SELECT XB_GetFileId(XB_AddFileId(XB_Create(CastToBlob('a')), 'newfileid', NULL, NULL, NULL, NULL)); 1 # rows (not including the header row) 1 # columns XB_GetFileId(XB_AddFileId(XB_Create(CastToBlob('a')), 'newfileid', NULL, NULL, NULL, NULL)) newfileid libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadRasterStyle10.testcase0000664000175000017500000000031312544707704024505 00000000000000ReloadRasterStyle - Text style :memory: #use in-memory database SELECT SE_ReloadRasterStyle('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_ReloadRasterStyle('alpha', 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updaterasterextent10.testcase0000664000175000017500000000036612544707704025000 00000000000000UpdateRasterCoverageExtent - BLOB transaction :memory: #use in-memory database SELECT SE_UpdateRasterCoverageExtent('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_UpdateRasterCoverageExtent('alpha', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupVector8.testcase0000664000175000017500000000036712544707704025364 00000000000000UnRegisterStyledGroupVector - BLOB coverage :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupVector('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupVector('alpha', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize4.testcase0000664000175000017500000000027712544707704025562 00000000000000XB_GetDocumentSize - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_GetDocumentSize('alpha'); 1 # rows (not including the header row) 1 # columns XB_GetDocumentSize('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetgeometry5.testcase0000664000175000017500000000030212544707704024672 00000000000000XB_GetGeometry - invalid XmlBLOB :memory: #use in-memory database SELECT XB_GetGeometry(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetGeometry(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorkeyword6.testcase0000664000175000017500000000036312544707704026006 00000000000000UnregisterVectorCoverageKeyword - Double keyword :memory: #use in-memory database SELECT SE_UnregisterVectorCoverageKeyword('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverageKeyword('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupVector8.testcase0000664000175000017500000000036612544707704025020 00000000000000RegisterStyledGroupVector - BLOB coverage_name :memory: #use in-memory database SELECT SE_RegisterStyledGroupVector('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupVector('alpha', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorsrid2.testcase0000664000175000017500000000033612544707704025257 00000000000000UnregisterVectorCoverageSrid - Int coverage :memory: #use in-memory database SELECT SE_UnregisterVectorCoverageSrid(1, 4326); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverageSrid(1, 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupRaster1.testcase0000664000175000017500000000034312544707704025002 00000000000000RegisterStyledGroupRaster - NULL group_name :memory: #use in-memory database SELECT SE_RegisterStyledGroupRaster(NULL, 'beta'); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupRaster(NULL, 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setfileid3.testcase0000664000175000017500000000067612544707704022743 00000000000000XB_SetFileId - ISO Metadata - no fileIdentfier :memory: #use in-memory database SELECT XB_SetFileId(XB_Create(CastToBlob('a')), 'alpha'); 1 # rows (not including the header row) 1 # columns XB_SetFileId(XB_Create(CastToBlob('a')), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issvg5.testcase0000664000175000017500000000025412544707704022120 00000000000000XB_IsSvg - invalid XmlBLOB :memory: #use in-memory database SELECT XB_IsSvg(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_IsSvg(zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadRasterStyle5.testcase0000664000175000017500000000032212544707704024431 00000000000000ReloadRasterStyle - Integet style_id :memory: #use in-memory database SELECT SE_ReloadRasterStyle(1, zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_ReloadRasterStyle(1, zeroblob(100)) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg7.testcase0000664000175000017500000000035512544707704024540 00000000000000RegisterVectorCoverage - Double f_table_name :memory: #use in-memory database SELECT SE_RegisterVectorCoverage('alpha', 1.1, 'geom'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage('alpha', 1.1, 'geom') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlcompress3.testcase0000664000175000017500000000024012544707704023332 00000000000000XB_Compress - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_Compress(1); 1 # rows (not including the header row) 1 # columns XB_Compress(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupStyle4.testcase0000664000175000017500000000027512544707704025214 00000000000000UnRegisterGroupStyle - Integer style ID :memory: #use in-memory database SELECT SE_UnRegisterGroupStyle(1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterGroupStyle(1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerStllGroupStyle3.testcase0000664000175000017500000000032512544707704025503 00000000000000RegisterStyledGroupStyle - Double group name :memory: #use in-memory database SELECT SE_RegisterStyledGroupStyle(1.1, 1); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupStyle(1.1, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorkeyword2.testcase0000664000175000017500000000036112544707704026000 00000000000000UnregisterVectorCoverageKeyword - Int coverage :memory: #use in-memory database SELECT SE_UnregisterVectorCoverageKeyword(1, 'keyword'); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverageKeyword(1, 'keyword') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg12.testcase0000664000175000017500000000040212544707704024605 00000000000000RegisterVectorCoverage - BLOB f_geometry_column :memory: #use in-memory database SELECT SE_RegisterVectorCoverage('alpha', 'table', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage('alpha', 'table', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadVectorStyle1.testcase0000664000175000017500000000032612544707704024433 00000000000000ReloadVectorStyle - NULL style_id :memory: #use in-memory database SELECT SE_ReloadVectorStyle(NULL, zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_ReloadVectorStyle(NULL, zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setRasterPaintOrder4.testcase0000664000175000017500000000040112544707704024722 00000000000000SetStyledGroupRasterPaintOrder - BLOB group :memory: #use in-memory database SELECT SE_SetStyledGroupRasterPaintOrder(zeroblob(4), 'beta', 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupRasterPaintOrder(zeroblob(4), 'beta', 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setRasterPaintOrder9.testcase0000664000175000017500000000037612544707704024742 00000000000000SetStyledGroupRasterPaintOrder - NULL order :memory: #use in-memory database SELECT SE_SetStyledGroupRasterPaintOrder('alpha', 'beta', NULL); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupRasterPaintOrder('alpha', 'beta', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerVector4.testcase0000664000175000017500000000035212544707704023772 00000000000000RegisterVectorStyledLayer - BLOB coverage_name :memory: #use in-memory database SELECT SE_RegisterVectorStyledLayer(zeroblob(4), 1); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorStyledLayer(zeroblob(4), 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/iscompressedxmlblob4.testcase0000664000175000017500000000026212544707704025043 00000000000000XB_IsCompressed - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_IsCompressed('alpha'); 1 # rows (not including the header row) 1 # columns XB_IsCompressed('alpha') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/createstyling3.testcase0000664000175000017500000000026012544707704023635 00000000000000CreateStylingTables - DOUBLE :memory: #use in-memory database SELECT CreateStylingTables(1.1); 1 # rows (not including the header row) 1 # columns CreateStylingTables(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorcvg5.testcase0000664000175000017500000000032212544707704025073 00000000000000UnregisterVectorCoverage - Text coverage :memory: #use in-memory database SELECT SE_UnregisterVectorCoverage('alpha'); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverage('alpha') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupStyle6.testcase0000664000175000017500000000032012544707704025205 00000000000000UnRegisterGroupStyle - NULL force :memory: #use in-memory database SELECT SE_UnRegisterGroupStyle('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_UnRegisterGroupStyle('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg21.testcase0000664000175000017500000000043312544707704024611 00000000000000RegisterVectorCoverage - BLOB abstract :memory: #use in-memory database SELECT SE_RegisterVectorCoverage('alpha', 'table', 'geom', 'title', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage('alpha', 'table', 'geom', 'title', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/addparentid2.testcase0000664000175000017500000000071512544707704023243 00000000000000XB_AddParentId - not ISO Metadata XmlBLOB :memory: #use in-memory database SELECT XB_AddParentId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns XB_AddParentId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setVectorPaintOrder3.testcase0000664000175000017500000000036312544707704024732 00000000000000SetStyledGroupVectorPaintOrder - Double group :memory: #use in-memory database SELECT SE_SetStyledGroupVectorPaintOrder(1.1, 'beta', 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupVectorPaintOrder(1.1, 'beta', 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadRasterStyle8.testcase0000664000175000017500000000030612544707704024436 00000000000000ReloadRasterStyle - Integer style :memory: #use in-memory database SELECT SE_ReloadRasterStyle('alpha', -1); 1 # rows (not including the header row) 1 # columns SE_ReloadRasterStyle('alpha', -1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerIsoMeta13.testcase0000664000175000017500000000033512544707704024152 00000000000000RegisterIsoMetadata - INTEGER id :memory: #use in-memory database SELECT RegisterIsoMetadata('series', zeroblob(4), 1); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', zeroblob(4), 1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupRaster9.testcase0000664000175000017500000000035212544707704025012 00000000000000RegisterStyledGroupRaster - Text coverage_name :memory: #use in-memory database SELECT SE_RegisterStyledGroupRaster('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupRaster('alpha', 'beta') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/createstyling9.testcase0000664000175000017500000000030412544707704023642 00000000000000CreateStylingTables - DOUBLE transaction NEW:memory: #use in-memory database SELECT CreateStylingTables(1, 1.1); 1 # rows (not including the header row) 1 # columns CreateStylingTables(1, 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issldsestyle2.testcase0000664000175000017500000000027312544707704023512 00000000000000XB_IsSldSeVectorStyle - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeVectorStyle(1); 1 # rows (not including the header row) 1 # columns XB_IsSldSeVectorStyle(1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetparentid3.testcase0000664000175000017500000000026112544707704024647 00000000000000XB_GetParentId - DOUBLE XmlDocument :memory: #use in-memory database SELECT XB_GetParentId(1.1); 1 # rows (not including the header row) 1 # columns XB_GetParentId(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerIsoMeta11.testcase0000664000175000017500000000034112544707704024145 00000000000000RegisterIsoMetadata - DOUBLE id :memory: #use in-memory database SELECT RegisterIsoMetadata('series', zeroblob(4), 1.1); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', zeroblob(4), 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerRasterStyle4.testcase0000664000175000017500000000030212544707704025004 00000000000000RegisterRasterStyle - Text style :memory: #use in-memory database SELECT SE_RegisterRasterStyle('alpha'); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterStyle('alpha') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issldsestyle4.testcase0000664000175000017500000000030412544707704023507 00000000000000XB_IsSldSeVectorStyle - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeVectorStyle('alpha'); 1 # rows (not including the header row) 1 # columns XB_IsSldSeVectorStyle('alpha') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorsrid1.testcase0000664000175000017500000000034512544707704025256 00000000000000UnregisterVectorCoverageSrid - NULL coverage :memory: #use in-memory database SELECT SE_UnregisterVectorCoverageSrid(NULL, 4326); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverageSrid(NULL, 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setGroupInfos11.testcase0000664000175000017500000000034312544707704023650 00000000000000SetStyledGroupInfos - DOUBLE abstract :memory: #use in-memory database SELECT SE_SetStyledGroupInfos('group', 'title', 0.1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupInfos('group', 'title', 0.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issldserststyle5.testcase0000664000175000017500000000032312544707704024242 00000000000000XB_IsSldSeRasterStyle - invalid XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeRasterStyle(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_IsSldSeRasterStyle(zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupStyle3.testcase0000664000175000017500000000031512544707704025206 00000000000000UnRegisterGroupStyle - BLOB style :memory: #use in-memory database SELECT SE_UnRegisterGroupStyle(zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_UnRegisterGroupStyle(zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupStyle7.testcase0000664000175000017500000000032012544707704025206 00000000000000UnRegisterGroupStyle - Double force :memory: #use in-memory database SELECT SE_UnRegisterGroupStyle('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterGroupStyle('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorkeyword2.testcase0000664000175000017500000000034512544707704025437 00000000000000RegisterVectorCoverageKeyword - Int coverage :memory: #use in-memory database SELECT SE_RegisterVectorCoverageSrid(1, 'keyword'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverageSrid(1, 'keyword') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroup1.testcase0000664000175000017500000000030712544707704024164 00000000000000UnRegisterStyledGroup - NULL group name :memory: #use in-memory database SELECT SE_UnRegisterStyledGroup(NULL); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroup(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupStyle5.testcase0000664000175000017500000000030612544707704024645 00000000000000RegisterGroupStyle - BLOB style :memory: #use in-memory database SELECT SE_RegisterGroupStyle(zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_RegisterGroupStyle(zeroblob(4)); 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updatevectorextent11.testcase0000664000175000017500000000034012544707704024773 00000000000000UpdateVectorCoverageExtent - Int transaction :memory: #use in-memory database SELECT SE_UpdateVectorCoverageExtent('alpha', 1); 1 # rows (not including the header row) 1 # columns SE_UpdateVectorCoverageExtent('alpha', 1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerVectorStyle3.testcase0000664000175000017500000000027412544707704025015 00000000000000RegisterVectorStyle - Double style :memory: #use in-memory database SELECT SE_RegisterVectorStyle(1.1); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorStyle(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerVector12.testcase0000664000175000017500000000035112544707704024050 00000000000000RegisterVectorStyledLayer - TEXT style_name :memory: #use in-memory database SELECT SE_RegisterVectorStyledLayer('alpha', 'gamma'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorStyledLayer('alpha', 'gamma') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setvectorinfos4.testcase0000664000175000017500000000037712544707704024047 00000000000000SetVectorCoverageInfos - BLOB coverage :memory: #use in-memory database SELECT SE_SetVectorCoverageInfos(zeroblob(4), 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SE_SetVectorCoverageInfos(zeroblob(4), 'title', 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetfileid1.testcase0000664000175000017500000000025312544707704024274 00000000000000XB_GetFileId - NULL XmlDocument :memory: #use in-memory database SELECT XB_GetFileId(NULL); 1 # rows (not including the header row) 1 # columns XB_GetFileId(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupVector6.testcase0000664000175000017500000000034512544707704025013 00000000000000RegisterStyledGroupVector - INTEGER coverage_name :memory: #use in-memory database SELECT SE_RegisterStyledGroupVector('alpha', 1); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupVector('alpha', 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetabstract5.testcase0000664000175000017500000000030212544707704024642 00000000000000XB_GetAbstract - invalid XmlBLOB :memory: #use in-memory database SELECT XB_GetAbstract(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetAbstract(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupStyle3.testcase0000664000175000017500000000027112544707704024644 00000000000000RegisterGroupStyle - DOUBLE style :memory: #use in-memory database SELECT SE_RegisterGroupStyle(1.1); 1 # rows (not including the header row) 1 # columns SE_RegisterGroupStyle(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg4.testcase0000664000175000017500000000037712544707704024541 00000000000000RegisterVectorCoverage - BLOB coverage :memory: #use in-memory database SELECT SE_RegisterVectorCoverage(zeroblob(4), 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage(zeroblob(4), 'title', 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issvg6.testcase0000664000175000017500000000051012544707704022114 00000000000000XB_IsSvg - valid XmlBLOB (TRUE) :memory: #use in-memory database SELECT XB_IsSvg(x'0021AB07000000070000000000BA0000CA0000DA0000DB0000DC0000DDCB3C737667202F3EBC120A914BDD'); 1 # rows (not including the header row) 1 # columns XB_IsSvg(x'0021AB07000000070000000000BA0000CA0000DA0000DB0000DC0000DDCB3C737667202F3EBC120A914BDD') 1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerStllGroupStyle7.testcase0000664000175000017500000000035512544707704025512 00000000000000RegisterStyledGroupStyle - BLOB stile ID :memory: #use in-memory database SELECT SE_RegisterStyledGroupStyle('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupStyle('alpha', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setvectorinfos1.testcase0000664000175000017500000000036112544707704024035 00000000000000SetVectorCoverageInfos - NULL coverage :memory: #use in-memory database SELECT SE_SetVectorCoverageInfos(NULL, 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SE_SetVectorCoverageInfos(NULL, 'title', 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetname2.testcase0000664000175000017500000000024212544707704023757 00000000000000XB_Getname - INTEGER XmlDocument :memory: #use in-memory database SELECT XB_GetName(1); 1 # rows (not including the header row) 1 # columns XB_GetName(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlcompress4.testcase0000664000175000017500000000024312544707704023336 00000000000000XB_Compress - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_Compress(1.1); 1 # rows (not including the header row) 1 # columns XB_Compress(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updatevectorextent14.testcase0000664000175000017500000000034312544707704025001 00000000000000UpdateVectorCoverageExtent - two args, Double coverage :memory: #use in-memory database SELECT SE_UpdateVectorCoverageExtent(1.1, 1); 1 # rows (not including the header row) 1 # columns SE_UpdateVectorCoverageExtent(1.1, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltextfromblob11.testcase0000664000175000017500000000067412544707704024300 00000000000000XB_GetDocument - valid XmlBLOB, DOUBLE format :memory: #use in-memory database SELECT XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 1.1); 1 # rows (not including the header row) 1 # columns XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setVectorPaintOrder11.testcase0000664000175000017500000000040412544707704025005 00000000000000SetStyledGroupVectorPaintOrder - Text order :memory: #use in-memory database SELECT SE_SetStyledGroupVectorPaintOrder('alpha', 'beta', 'gamma'); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupVectorPaintOrder('alpha', 'beta', 'gamma') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterrastersrid3.testcase0000664000175000017500000000034512544707704025256 00000000000000UnregisterRasterCoverageSrid - Double coverage :memory: #use in-memory database SELECT SE_UnregisterRasterCoverageSrid(1.1, 4326); 1 # rows (not including the header row) 1 # columns SE_UnregisterRasterCoverageSrid(1.1, 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setVectorPaintOrder8.testcase0000664000175000017500000000040512544707704024734 00000000000000SetStyledGroupVectorPaintOrder - BLOB coverage :memory: #use in-memory database SELECT SE_SetStyledGroupVectorPaintOrder('alpha', zeroblob(4), 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupVectorPaintOrder('alpha', zeroblob(4), 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupVector5.testcase0000664000175000017500000000035112544707704025352 00000000000000UnRegisterStyledGroupVector - NULL coverage :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupVector('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupVector('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isvalidxmlblob2.testcase0000664000175000017500000000023212544707704023771 00000000000000XB_IsValid - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_IsValid(1); 1 # rows (not including the header row) 1 # columns XB_IsValid(1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/createisometa4.testcase0000664000175000017500000000031212544707704023604 00000000000000CreateIsoMetadataTables - BLOB :memory: #use in-memory database SELECT CreateIsoMetadataTables(zeroblob(4)); 1 # rows (not including the header row) 1 # columns CreateIsoMetadataTables(zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetgeometry4.testcase0000664000175000017500000000030312544707704024672 00000000000000XB_GetGeometry - BLOB XmlDocument :memory: #use in-memory database SELECT XB_GetGeometry(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetGeometry(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterStllGroupStyle7.testcase0000664000175000017500000000036312544707704026054 00000000000000UnRegisterStyledGroupStyle - BLOB style ID :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupStyle('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupStyle('alpha', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerVector10.testcase0000664000175000017500000000033612544707704024051 00000000000000RegisterVectorStyledLayer - INTEGER style_id :memory: #use in-memory database SELECT SE_RegisterVectorStyledLayer('alpha', 1); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorStyledLayer('alpha', 1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupStyle1.testcase0000664000175000017500000000027712544707704025213 00000000000000UnRegisterGroupStyle - NULL style :memory: #use in-memory database SELECT SE_UnRegisterGroupStyle(NULL); 1 # rows (not including the header row) 1 # columns SE_UnRegisterGroupStyle(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setvectorinfos7.testcase0000664000175000017500000000035612544707704024047 00000000000000SetVectorCoverageInfos - Double title :memory: #use in-memory database SELECT SE_SetVectorCoverageInfos('alpha', 1.1, 'abstract'); 1 # rows (not including the header row) 1 # columns SE_SetVectorCoverageInfos('alpha', 1.1, 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltextfromblob5.testcase0000664000175000017500000000030712544707704024214 00000000000000XB_GetDocument - invalid BLOB XmlBLOB :memory: #use in-memory database SELECT XB_GetDocument(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetDocument(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGraphic1.testcase0000664000175000017500000000031412544707704024443 00000000000000UnregisterExternalGraphic - NULL URL :memory: #use in-memory database SELECT SE_UnregisterExternalGraphic(NULL); 1 # rows (not including the header row) 1 # columns SE_UnregisterExternalGraphic(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVectorStyle8.testcase0000664000175000017500000000033612544707704025364 00000000000000UnRegisterVectorStyle - TEXT second arg :memory: #use in-memory database SELECT SE_UnRegisterVectorStyle('alpha', 'alpha'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyle('alpha', 'alpha') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetparentid1.testcase0000664000175000017500000000026112544707704024645 00000000000000XB_GetParentId - NULL XmlDocument :memory: #use in-memory database SELECT XB_GetParentId(NULL); 1 # rows (not including the header row) 1 # columns XB_GetParentId(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updaterasterextent4.testcase0000664000175000017500000000032412544707704024715 00000000000000UpdateRasterCoverageExtent - Double coverage :memory: #use in-memory database SELECT SE_UpdateRasterCoverageExtent(1.1); 1 # rows (not including the header row) 1 # columns SE_UpdateRasterCoverageExtent(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic4.testcase0000664000175000017500000000034012544707704024102 00000000000000RegisterExternalGraphic - BLOB URL :memory: #use in-memory database SELECT SE_RegisterExternalGraphic(zeroblob(4), NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic(zeroblob(4), NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setvectorinfos6.testcase0000664000175000017500000000034712544707704024046 00000000000000SetVectorCoverageInfos - Int title :memory: #use in-memory database SELECT SE_SetVectorCoverageInfos('alpha', 1, 'abstract'); 1 # rows (not including the header row) 1 # columns SE_SetVectorCoverageInfos('alpha', 1, 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setGroupInfos1.testcase0000664000175000017500000000035312544707704023570 00000000000000SetStyledGroupInfos - NULL group_name :memory: #use in-memory database SELECT SE_SetStyledGroupInfos(NULL, 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupInfos(NULL, 'title', 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetdocumentsize6.testcase0000664000175000017500000000065312544707704025562 00000000000000XB_GetDocumentSize - valid XmlBLOB :memory: #use in-memory database SELECT XB_GetDocumentSize(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); 1 # rows (not including the header row) 1 # columns XB_GetDocumentSize(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') 18 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlcompress6.testcase0000664000175000017500000000106612544707704023344 00000000000000XB_Compress - valid XmlBLOB (already compressed) :memory: #use in-memory database SELECT Hex(XB_Compress(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD')); 1 # rows (not including the header row) 1 # columns Hex(XB_Compress(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD')) 0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issldsestyle3.testcase0000664000175000017500000000027612544707704023516 00000000000000XB_IsSldSeVectorStyle - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeVectorStyle(1.1); 1 # rows (not including the header row) 1 # columns XB_IsSldSeVectorStyle(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRaster7.testcase0000664000175000017500000000037312544707704024341 00000000000000UnRegisterRasterStyledLayer - BLOB style_id :memory: #use in-memory database SELECT SE_UnRegisterRasterStyledLayer('alpha', zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyledLayer('alpha', zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setRasterPaintOrder12.testcase0000664000175000017500000000041412544707704025005 00000000000000SetStyledGroupRasterPaintOrder - BLOB order :memory: #use in-memory database SELECT SE_SetStyledGroupRasterPaintOrder('alpha', 'beta', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupRasterPaintOrder('alpha', 'beta', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetparentid5.testcase0000664000175000017500000000030212544707704024645 00000000000000XB_GetParentId - invalid XmlBLOB :memory: #use in-memory database SELECT XB_GetParentId(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetParentId(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorsrid6.testcase0000664000175000017500000000034712544707704025265 00000000000000UnregisterVectorCoverageSrid - Double srid :memory: #use in-memory database SELECT SE_UnregisterVectorCoverageSrid('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverageSrid('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setRasterPaintOrder10.testcase0000664000175000017500000000037612544707704025012 00000000000000SetStyledGroupRasterPaintOrder - Double order :memory: #use in-memory database SELECT SE_SetStyledGroupRasterPaintOrder('alpha', 'beta', 1.1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupRasterPaintOrder('alpha', 'beta', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlfromblob7.testcase0000664000175000017500000000063412544707704023314 00000000000000XB_GetPayload - valid XmlBLOB (uncompressed) :memory: #use in-memory database SELECT XB_GetPayload(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); 1 # rows (not including the header row) 1 # columns XB_GetPayload(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') text libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerrasterkeyword6.testcase0000664000175000017500000000035512544707704025442 00000000000000RegisterRasterCoverageKeyword - Double keyword :memory: #use in-memory database SELECT SE_RegisterRasterCoverageKeyword('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterCoverageKeyword('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/createstyling1.testcase0000664000175000017500000000026012544707704023633 00000000000000CreateStylingTables - NULL :memory: #use in-memory database SELECT CreateStylingTables(NULL); 1 # rows (not including the header row) 1 # columns CreateStylingTables(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterrastersrid9.testcase0000664000175000017500000000034512544707704025264 00000000000000UnregisterRasterCoverageSrid - Int srid :memory: #use in-memory database SELECT SE_UnregisterRasterCoverageSrid('alpha', 4326); 1 # rows (not including the header row) 1 # columns SE_UnregisterRasterCoverageSrid('alpha', 4326) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updaterasterextent5.testcase0000664000175000017500000000034212544707704024716 00000000000000UpdateRasterCoverageExtent - BLOB coverage :memory: #use in-memory database SELECT SE_UpdateRasterCoverageExtent(zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_UpdateRasterCoverageExtent(zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorsrid5.testcase0000664000175000017500000000034712544707704025264 00000000000000UnregisterVectorCoverageSrid - NULL srid :memory: #use in-memory database SELECT SE_UnregisterVectorCoverageSrid('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverageSrid('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupVector3.testcase0000664000175000017500000000034412544707704025352 00000000000000UnRegisterStyledGroupVector - Double group :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupVector(1.1, 'beta'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupVector(1.1, 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadGroupStyle1.testcase0000664000175000017500000000032312544707704024262 00000000000000ReloadGroupStyle - NULL style ID :memory: #use in-memory database SELECT SE_ReloadGroupStyle(NULL, zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_ReloadGroupStyle(NULL, zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupRaster3.testcase0000664000175000017500000000034312544707704025004 00000000000000RegisterStyledGroupRaster - DOUBLE group_name :memory: #use in-memory database SELECT SE_RegisterStyledGroupRaster(1.1, 'beta'); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupRaster(1.1, 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setPaintOrder7.testcase0000664000175000017500000000034512544707704023553 00000000000000SetStyledGroupLayerPaintOrder - ID - Double order :memory: #use in-memory database SELECT SE_SetStyledGroupLayerPaintOrder(1, 1.1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupLayerPaintOrder(1, 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRaster3.testcase0000664000175000017500000000033512544707704024333 00000000000000UnRegisterRasterStyledLayer - Double coverage :memory: #use in-memory database SELECT SE_UnRegisterRasterStyledLayer(1.1, 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyledLayer(1.1, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/addfileid3.testcase0000664000175000017500000000076312544707704022675 00000000000000XB_AddFileId - ISO Metadata - already defined fileIdentfier :memory: #use in-memory database SELECT XB_AddFileId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns XB_AddFileId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRasterStyle9.testcase0000664000175000017500000000035212544707704025361 00000000000000UnRegisterRasterStyle - BLOB second arg :memory: #use in-memory database SELECT SE_UnRegisterRasterStyle('alpha', zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyle('alpha', zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isisometadata4.testcase0000664000175000017500000000026512544707704023615 00000000000000XB_IsIsoMetadata - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_IsIsoMetadata('alpha'); 1 # rows (not including the header row) 1 # columns XB_IsIsoMetadata('alpha') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltoblob11.testcase0000664000175000017500000000062112544707704023042 00000000000000XB_Create - valid XMLDocument, compressed - legacy format :memory: #use in-memory database SELECT Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1)); 1 # rows (not including the header row) 1 # columns Hex(XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1)) 0003AC120000001A0000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC23D8447EDD libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issldserststyle2.testcase0000664000175000017500000000027312544707704024243 00000000000000XB_IsSldSeRasterStyle - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeRasterStyle(1); 1 # rows (not including the header row) 1 # columns XB_IsSldSeRasterStyle(1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setvectorinfos10.testcase0000664000175000017500000000034412544707704024116 00000000000000SetVectorCoverageInfos - Int abstract :memory: #use in-memory database SELECT SE_SetVectorCoverageInfos('alpha', 'title', 1); 1 # rows (not including the header row) 1 # columns SE_SetVectorCoverageInfos('alpha', 'title', 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setVectorPaintOrder1.testcase0000664000175000017500000000036312544707704024730 00000000000000SetStyledGroupVectorPaintOrder - NULL group :memory: #use in-memory database SELECT SE_SetStyledGroupVectorPaintOrder(NULL, 'beta', 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupVectorPaintOrder(NULL, 'beta', 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmluncompress7.testcase0000664000175000017500000000101512544707704023702 00000000000000XB_Uncompress - valid XmlBLOB (already uncompressed) :memory: #use in-memory database SELECT Hex(XB_Uncompress(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD')); 1 # rows (not including the header row) 1 # columns Hex(XB_Uncompress(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD')) 0001AC12000000120000000000BA0000CA0000DA0000DE0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC2445E134DD libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlcompress5.testcase0000664000175000017500000000027012544707704023337 00000000000000XB_Compress - invalid XmlBLOB :memory: #use in-memory database SELECT XB_Compress(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_Compress(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isvalidxmlblob1.testcase0000664000175000017500000000023512544707704023773 00000000000000XB_IsValid - NULL XmlBLOB :memory: #use in-memory database SELECT XB_IsValid(NULL); 1 # rows (not including the header row) 1 # columns XB_IsValid(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVector13.testcase0000664000175000017500000000035712544707704024422 00000000000000UnRegisterVectorStyledLayer - Text style_name :memory: #use in-memory database SELECT SE_UnRegisterVectorStyledLayer('alpha', 'gamma'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyledLayer('alpha', 'gamma') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorkeyword5.testcase0000664000175000017500000000036312544707704026005 00000000000000UnregisterVectorCoverageKeyword - NULL keyword :memory: #use in-memory database SELECT SE_UnregisterVectorCoverageKeyword('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverageKeyword('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/createstyling6.testcase0000664000175000017500000000025712544707704023646 00000000000000CreateStylingTables - relaxed NEW:memory: #use in-memory database SELECT CreateStylingTables(1); 1 # rows (not including the header row) 1 # columns CreateStylingTables(1) 1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetfileid4.testcase0000664000175000017500000000027512544707704024303 00000000000000XB_GetFileId - BLOB XmlDocument :memory: #use in-memory database SELECT XB_GetFileId(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetFileId(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorkeyword1.testcase0000664000175000017500000000037012544707704025777 00000000000000UnregisterVectorCoverageKeyword - NULL coverage :memory: #use in-memory database SELECT SE_UnregisterVectorCoverageKeyword(NULL, 'keyword'); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverageKeyword(NULL, 'keyword') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic2.testcase0000664000175000017500000000031712544707704024104 00000000000000RegisterExternalGraphic - INTEGER URL :memory: #use in-memory database SELECT SE_RegisterExternalGraphic(1, NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic(1, NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerStllGroupStyle9.testcase0000664000175000017500000000035212544707704025511 00000000000000RegisterStyledGroupStyle - valid Text style name :memory: #use in-memory database SELECT SE_RegisterStyledGroupStyle('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupStyle('alpha', 'beta') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltoblob6.testcase0000664000175000017500000000036312544707704022771 00000000000000XB_Create - not well-formed XMLDocument :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F613E3C2F623E'); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F613E3C2F623E') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg3.testcase0000664000175000017500000000036112544707704024531 00000000000000RegisterVectorCoverage - Double coverage :memory: #use in-memory database SELECT SE_RegisterVectorCoverage(1.1, 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage(1.1, 'title', 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltextfromblob9.testcase0000664000175000017500000000067412544707704024227 00000000000000XB_GetDocument - valid XmlBLOB, NULL format :memory: #use in-memory database SELECT XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', NULL); 1 # rows (not including the header row) 1 # columns XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updaterasterextent15.testcase0000664000175000017500000000036112544707704025000 00000000000000UpdateRasterCoverageExtent - two args, BLOB coverage :memory: #use in-memory database SELECT SE_UpdateRasterCoverageExtent(zeroblob(4), 1); 1 # rows (not including the header row) 1 # columns SE_UpdateRasterCoverageExtent(zeroblob(4), 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVectorStyle9.testcase0000664000175000017500000000035212544707704025363 00000000000000UnRegisterVectorStyle - BLOB second arg :memory: #use in-memory database SELECT SE_UnRegisterVectorStyle('alpha', zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyle('alpha', zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorcvg3.testcase0000664000175000017500000000031512544707704025073 00000000000000UnregisterVectorCoverage - Double coverage :memory: #use in-memory database SELECT SE_UnregisterVectorCoverage(1.1); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverage(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorsrid4.testcase0000664000175000017500000000036312544707704025261 00000000000000UnregisterVectorCoverageSrid - BLOB coverage :memory: #use in-memory database SELECT SE_UnregisterVectorCoverageSrid(zeroblob(4), 4326); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverageSrid(zeroblob(4), 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg20.testcase0000664000175000017500000000041512544707704024610 00000000000000RegisterVectorCoverage - Double abstract :memory: #use in-memory database SELECT SE_RegisterVectorCoverage('alpha', 'table', 'geom', 'title', 1.1); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage('alpha', 'table', 'geom', 'title', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerIsoMeta14.testcase0000664000175000017500000000036212544707704024153 00000000000000RegisterIsoMetadata - TEXT fileIdentifier :memory: #use in-memory database SELECT RegisterIsoMetadata('series', zeroblob(4), 'alpha'); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', zeroblob(4), 'alpha') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updaterasterextent13.testcase0000664000175000017500000000033412544707704024776 00000000000000UpdateRasterCoverageExtent - two args, Int coverage :memory: #use in-memory database SELECT SE_UpdateRasterCoverageExtent(1, 1); 1 # rows (not including the header row) 1 # columns SE_UpdateRasterCoverageExtent(1, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltextfromblob4.testcase0000664000175000017500000000026312544707704024214 00000000000000XB_GetDocument - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_GetDocument('alpha'); 1 # rows (not including the header row) 1 # columns XB_GetDocument('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadVectorStyle6.testcase0000664000175000017500000000033512544707704024440 00000000000000ReloadVectorStyle - Text style_name :memory: #use in-memory database SELECT SE_ReloadVectorStyle('alpha', zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_ReloadVectorStyle('alpha', zeroblob(100)) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltoblob10.testcase0000664000175000017500000000040712544707704023043 00000000000000XB_Create - valid XMLDocument, DOUBLE compression :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1.1); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterStllGroupStyle5.testcase0000664000175000017500000000034512544707704026052 00000000000000UnRegisterStyledGroupStyle - NULL style ID :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupStyle('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupStyle('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetencoding7.testcase0000664000175000017500000000111312544707704024630 00000000000000XB_GetEncoding - valid XmlBLOB, UTF-8 encoding :memory: #use in-memory database SELECT XB_GetEncoding(x'0003AB38000000400000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB3B1AFC8CD51284B2D2ACECCCFB35532D433505248CD4BCE4FC9CC4BB7550A0D71D3B550B2B7B349B4B349B22B49AD28B1D14FB2B3D14FB40300FCAE114DBCD7E8866DDD'); 1 # rows (not including the header row) 1 # columns XB_GetEncoding(x'0003AB38000000400000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB3B1AFC8CD51284B2D2ACECCCFB35532D433505248CD4BCE4FC9CC4BB7550A0D71D3B550B2B7B349B4B349B22B49AD28B1D14FB2B3D14FB40300FCAE114DBCD7E8866DDD') UTF-8 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg16.testcase0000664000175000017500000000042012544707704024611 00000000000000RegisterVectorCoverage - Double title :memory: #use in-memory database SELECT SE_RegisterVectorCoverage('alpha', 'table', 'geom', 1.1, 'abstract'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage('alpha', 'table', 'geom', 1.1, 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadGroupStyle3.testcase0000664000175000017500000000034512544707704024270 00000000000000ReloadGroupStyle - BLOB style ID :memory: #use in-memory database SELECT SE_ReloadGroupStyle(zeroblob(100), zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_ReloadGroupStyle(zeroblob(100), zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVector1.testcase0000664000175000017500000000033512544707704024333 00000000000000UnRegisterVectorStyledLayer - NULL coverage :memory: #use in-memory database SELECT SE_UnRegisterVectorStyledLayer(NULL, 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyledLayer(NULL, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updaterasterextent7.testcase0000664000175000017500000000035012544707704024717 00000000000000UpdateRasterCoverageExtent - NULL transaction :memory: #use in-memory database SELECT SE_UpdateRasterCoverageExtent('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_UpdateRasterCoverageExtent('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupRaster6.testcase0000664000175000017500000000034212544707704025351 00000000000000UnRegisterStyledGroupRaster - Int coverage :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupRaster('alpha', 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupRaster('alpha', 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerVector11.testcase0000664000175000017500000000034012544707704024045 00000000000000RegisterVectorStyledLayer - DOUBLE style :memory: #use in-memory database SELECT SE_RegisterVectorStyledLayer('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorStyledLayer('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltoblob7.testcase0000664000175000017500000000040712544707704022771 00000000000000XB_Create - valid XMLDocument, NULL compression :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', NULL); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isvalidxmlblob5.testcase0000664000175000017500000000026112544707704023776 00000000000000XB_IsValid - invalid XmlBLOB :memory: #use in-memory database SELECT XB_IsValid(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_IsValid(zeroblob(100)) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setparentid3.testcase0000664000175000017500000000067612544707704023315 00000000000000XB_SetParentId - ISO Metadata - no parentIdentfier :memory: #use in-memory database SELECT XB_SetParentId(XB_Create(CastToBlob('a')), 'alpha'); 1 # rows (not including the header row) 1 # columns XB_SetParentId(XB_Create(CastToBlob('a')), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic8.testcase0000664000175000017500000000036212544707704024112 00000000000000RegisterExternalGraphic - TEXT resource :memory: #use in-memory database SELECT SE_RegisterExternalGraphic('resource.png', 'alpha'); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic('resource.png', 'alpha'); -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/addparentid4.testcase0000664000175000017500000000074412544707704023247 00000000000000XB_AddParentId - ISO Metadata - INTEGER fileId :memory: #use in-memory database SELECT XB_AddParentId(XB_Create(CastToBlob('a')), 1234, NULL, NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns XB_AddParentId(XB_Create(CastToBlob('a')), 1234, NULL, NULL, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setVectorPaintOrder9.testcase0000664000175000017500000000037612544707704024744 00000000000000SetStyledGroupVectorPaintOrder - NULL order :memory: #use in-memory database SELECT SE_SetStyledGroupVectorPaintOrder('alpha', 'beta', NULL); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupVectorPaintOrder('alpha', 'beta', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setGroupInfos2.testcase0000664000175000017500000000035012544707704023566 00000000000000SetStyledGroupInfos - INTEGER group_name :memory: #use in-memory database SELECT SE_SetStyledGroupInfos(1, 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupInfos(1, 'title', 'abstract') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorkeyword1.testcase0000664000175000017500000000036212544707704025435 00000000000000RegisterVectorCoverageKeyword - NULL coverage :memory: #use in-memory database SELECT SE_RegisterVectorCoverageKeyword(NULL, 'keyword'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverageKeyword(NULL, 'keyword') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterrasterkeyword8.testcase0000664000175000017500000000040112544707704025777 00000000000000UnregisterRasterCoverageKeyword - BLOB keyword :memory: #use in-memory database SELECT SE_UnregisterRasterCoverageKeyword('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_UnregisterRasterCoverageKeyword('alpha', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updaterasterextent11.testcase0000664000175000017500000000034012544707704024771 00000000000000UpdateRasterCoverageExtent - Int transaction :memory: #use in-memory database SELECT SE_UpdateRasterCoverageExtent('alpha', 1); 1 # rows (not including the header row) 1 # columns SE_UpdateRasterCoverageExtent('alpha', 1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/createisometa2.testcase0000664000175000017500000000030212544707704023601 00000000000000CreateIsoMetadataTables - TEXT :memory: #use in-memory database SELECT CreateIsoMetadataTables('alpha'); 1 # rows (not including the header row) 1 # columns CreateIsoMetadataTables('alpha') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterrasterkeyword9.testcase0000664000175000017500000000036212544707704026006 00000000000000UnregisterRasterCoverageKeyword - Int keyword :memory: #use in-memory database SELECT SE_UnregisterRasterCoverageKeyword('alpha', 4326); 1 # rows (not including the header row) 1 # columns SE_UnregisterRasterCoverageKeyword('alpha', 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupLayer4.testcase0000664000175000017500000000034512544707704025166 00000000000000UnRegisterStyledGroupLayer - Blob item ID :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupLayer(zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupLayer(zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setGroupInfos12.testcase0000664000175000017500000000036112544707704023651 00000000000000SetStyledGroupInfos - BLOB abstract :memory: #use in-memory database SELECT SE_SetStyledGroupInfos('group', 'title', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupInfos('group', 'title', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorcvg4.testcase0000664000175000017500000000033312544707704025074 00000000000000UnregisterVectorCoverage - BLOB coverage :memory: #use in-memory database SELECT SE_UnregisterVectorCoverage(zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverage(zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/getIsoMetaId4.testcase0000664000175000017500000000030412544707704023276 00000000000000GetIsoMetadataId - BLOB fileIdentifier :memory: #use in-memory database SELECT GetIsoMetadataId(zeroblob(4)); 1 # rows (not including the header row) 1 # columns GetIsoMetadataId(zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerrastersrid4.testcase0000664000175000017500000000035512544707704024715 00000000000000RegisterRasterCoverageSrid - BLOB coverage :memory: #use in-memory database SELECT SE_RegisterRasterCoverageSrid(zeroblob(4), 4326); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterCoverageSrid(zeroblob(4), 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupVector9.testcase0000664000175000017500000000035212544707704025014 00000000000000RegisterStyledGroupVector - Text coverage_name :memory: #use in-memory database SELECT SE_RegisterStyledGroupVector('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupVector('alpha', 'beta') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterrasterkeyword2.testcase0000664000175000017500000000036112544707704025776 00000000000000UnregisterRasterCoverageKeyword - Int coverage :memory: #use in-memory database SELECT SE_UnregisterRasterCoverageKeyword(1, 'keyword'); 1 # rows (not including the header row) 1 # columns SE_UnregisterRasterCoverageKeyword(1, 'keyword') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupRaster8.testcase0000664000175000017500000000036612544707704025016 00000000000000RegisterStyledGroupRaster - BLOB coverage_name :memory: #use in-memory database SELECT SE_RegisterStyledGroupRaster('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupRaster('alpha', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadRasterStyle9.testcase0000664000175000017500000000030712544707704024440 00000000000000ReloadRasterStyle - Double style :memory: #use in-memory database SELECT SE_ReloadRasterStyle('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_ReloadRasterStyle('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updaterasterextent3.testcase0000664000175000017500000000031612544707704024715 00000000000000UpdateRasterCoverageExtent - Int transaction :memory: #use in-memory database SELECT SE_UpdateRasterCoverageExtent(1); 1 # rows (not including the header row) 1 # columns SE_UpdateRasterCoverageExtent(1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupVector3.testcase0000664000175000017500000000034312544707704025006 00000000000000RegisterStyledGroupVector - DOUBLE group_name :memory: #use in-memory database SELECT SE_RegisterStyledGroupVector(1.1, 'beta'); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupVector(1.1, 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetschemauri2.testcase0000664000175000017500000000026112544707704025020 00000000000000XB_GetSchemaURI - INTEGER XmlDocument :memory: #use in-memory database SELECT XB_GetSchemaURI(1); 1 # rows (not including the header row) 1 # columns XB_GetSchemaURI(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setRasterPaintOrder2.testcase0000664000175000017500000000035412544707704024727 00000000000000SetStyledGroupRasterPaintOrder - Int group :memory: #use in-memory database SELECT SE_SetStyledGroupRasterPaintOrder(1, 'beta', 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupRasterPaintOrder(1, 'beta', 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupVector7.testcase0000664000175000017500000000035012544707704025010 00000000000000RegisterStyledGroupVector - DOUBLE coverage_name :memory: #use in-memory database SELECT SE_RegisterStyledGroupVector('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupVector('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadGroupStyle7.testcase0000664000175000017500000000030112544707704024264 00000000000000ReloadGroupStyle - Integer style :memory: #use in-memory database SELECT SE_ReloadGroupStyle('alpha', 1); 1 # rows (not including the header row) 1 # columns SE_ReloadGroupStyle('alpha', 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setVectorPaintOrder4.testcase0000664000175000017500000000040112544707704024724 00000000000000SetStyledGroupVectorPaintOrder - BLOB group :memory: #use in-memory database SELECT SE_SetStyledGroupVectorPaintOrder(zeroblob(4), 'beta', 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupVectorPaintOrder(zeroblob(4), 'beta', 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorsrid3.testcase0000664000175000017500000000034512544707704025260 00000000000000UnregisterVectorCoverageSrid - Double coverage :memory: #use in-memory database SELECT SE_UnregisterVectorCoverageSrid(1.1, 4326); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverageSrid(1.1, 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroup2.testcase0000664000175000017500000000030412544707704024162 00000000000000UnRegisterStyledGroup - Integer group name :memory: #use in-memory database SELECT SE_UnRegisterStyledGroup(1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroup(1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setRasterPaintOrder6.testcase0000664000175000017500000000036112544707704024731 00000000000000SetStyledGroupRasterPaintOrder - Int coverage :memory: #use in-memory database SELECT SE_SetStyledGroupRasterPaintOrder('alpha', 1, 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupRasterPaintOrder('alpha', 1, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/addfileid4.testcase0000664000175000017500000000074612544707704022677 00000000000000XB_AddFileId - ISO Metadata - INTEGER fileId :memory: #use in-memory database SELECT XB_AddFileId(XB_Create(CastToBlob('a')), 1234, NULL, NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns XB_AddFileId(XB_Create(CastToBlob('a')), 1234, NULL, NULL, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/addparentid3.testcase0000664000175000017500000000100312544707704023233 00000000000000XB_AddParentId - ISO Metadata - already defined parentIdentfier :memory: #use in-memory database SELECT XB_AddParentId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL); 1 # rows (not including the header row) 1 # columns XB_AddParentId(XB_Create(CastToBlob('a')), 'alpha', NULL, NULL, NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorkeyword9.testcase0000664000175000017500000000036212544707704026010 00000000000000UnregisterVectorCoverageKeyword - Int keyword :memory: #use in-memory database SELECT SE_UnregisterVectorCoverageKeyword('alpha', 4326); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverageKeyword('alpha', 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issldserststyle4.testcase0000664000175000017500000000030412544707704024240 00000000000000XB_IsSldSeRasterStyle - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeRasterStyle('alpha'); 1 # rows (not including the header row) 1 # columns XB_IsSldSeRasterStyle('alpha') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetname1.testcase0000664000175000017500000000024512544707704023761 00000000000000XB_GetName - NULL XmlDocument :memory: #use in-memory database SELECT XB_GetName(NULL); 1 # rows (not including the header row) 1 # columns XB_GetName(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVector9.testcase0000664000175000017500000000035112544707704024341 00000000000000UnRegisterVectorStyledLayer - NULL style_id :memory: #use in-memory database SELECT SE_UnRegisterVectorStyledLayer('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyledLayer('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/Makefile.am0000664000175000017500000004515012544707704021203 00000000000000 EXTRA_DIST = addfileid1.testcase \ addfileid2.testcase \ addfileid3.testcase \ addfileid4.testcase \ addfileid5.testcase \ addfileid6.testcase \ addfileid7.testcase \ addparentid1.testcase \ addparentid2.testcase \ addparentid3.testcase \ addparentid4.testcase \ addparentid5.testcase \ addparentid6.testcase \ addparentid7.testcase \ createisometa1.testcase \ createisometa2.testcase \ createisometa3.testcase \ createisometa4.testcase \ createisometa5.testcase \ createisometa6.testcase \ createstyling1.testcase \ createstyling2.testcase \ createstyling3.testcase \ createstyling4.testcase \ createstyling5.testcase \ createstyling6.testcase \ createstyling7.testcase \ createstyling8.testcase \ createstyling9.testcase \ createstyling10.testcase \ createstyling11.testcase \ getIsoMetaId1.testcase \ getIsoMetaId2.testcase \ getIsoMetaId3.testcase \ getIsoMetaId4.testcase \ getIsoMetaId5.testcase \ iscompressedxmlblob1.testcase \ iscompressedxmlblob2.testcase \ iscompressedxmlblob3.testcase \ iscompressedxmlblob4.testcase \ iscompressedxmlblob5.testcase \ iscompressedxmlblob6.testcase \ iscompressedxmlblob7.testcase \ isisometadata1.testcase \ isisometadata2.testcase \ isisometadata3.testcase \ isisometadata4.testcase \ isisometadata5.testcase \ isisometadata6.testcase \ isisometadata7.testcase \ isschemavalidatedxmlblob1.testcase \ isschemavalidatedxmlblob2.testcase \ isschemavalidatedxmlblob3.testcase \ isschemavalidatedxmlblob4.testcase \ isschemavalidatedxmlblob5.testcase \ isschemavalidatedxmlblob6.testcase \ issldserststyle1.testcase \ issldserststyle2.testcase \ issldserststyle3.testcase \ issldserststyle4.testcase \ issldserststyle5.testcase \ issldserststyle6.testcase \ issldserststyle7.testcase \ issldsestyle1.testcase \ issldsestyle2.testcase \ issldsestyle3.testcase \ issldsestyle4.testcase \ issldsestyle5.testcase \ issldsestyle6.testcase \ issldsestyle7.testcase \ issvg1.testcase \ issvg2.testcase \ issvg3.testcase \ issvg4.testcase \ issvg5.testcase \ issvg6.testcase \ issvg7.testcase \ isvalidxmlblob1.testcase \ isvalidxmlblob2.testcase \ isvalidxmlblob3.testcase \ isvalidxmlblob4.testcase \ isvalidxmlblob5.testcase \ isvalidxmlblob6.testcase \ registerGraphic10.testcase \ registerGraphic11.testcase \ registerGraphic12.testcase \ registerGraphic13.testcase \ registerGraphic14.testcase \ registerGraphic15.testcase \ registerGraphic16.testcase \ registerGraphic17.testcase \ registerGraphic18.testcase \ registerGraphic19.testcase \ registerGraphic1.testcase \ registerGraphic20.testcase \ registerGraphic21.testcase \ registerGraphic22.testcase \ registerGraphic2.testcase \ registerGraphic3.testcase \ registerGraphic4.testcase \ registerGraphic5.testcase \ registerGraphic6.testcase \ registerGraphic7.testcase \ registerGraphic8.testcase \ registerGraphic9.testcase \ registerGroupRaster1.testcase \ registerGroupRaster2.testcase \ registerGroupRaster3.testcase \ registerGroupRaster4.testcase \ registerGroupRaster5.testcase \ registerGroupRaster6.testcase \ registerGroupRaster7.testcase \ registerGroupRaster8.testcase \ registerGroupRaster9.testcase \ registerGroupVector1.testcase \ registerGroupVector2.testcase \ registerGroupVector3.testcase \ registerGroupVector4.testcase \ registerGroupVector5.testcase \ registerGroupVector6.testcase \ registerGroupVector7.testcase \ registerGroupVector8.testcase \ registerGroupVector9.testcase \ registerGroupStyle1.testcase \ registerGroupStyle2.testcase \ registerGroupStyle3.testcase \ registerGroupStyle4.testcase \ registerGroupStyle5.testcase \ registerIsoMeta10.testcase \ registerIsoMeta11.testcase \ registerIsoMeta12.testcase \ registerIsoMeta13.testcase \ registerIsoMeta14.testcase \ registerIsoMeta1.testcase \ registerIsoMeta2.testcase \ registerIsoMeta3.testcase \ registerIsoMeta4.testcase \ registerIsoMeta5.testcase \ registerIsoMeta6.testcase \ registerIsoMeta7.testcase \ registerIsoMeta8.testcase \ registerIsoMeta9.testcase \ registerRaster1.testcase \ registerRaster2.testcase \ registerRaster3.testcase \ registerRaster4.testcase \ registerRaster5.testcase \ registerRaster6.testcase \ registerRaster7.testcase \ registerRaster8.testcase \ registerRaster9.testcase \ registerrasterkeyword1.testcase \ registerrasterkeyword2.testcase \ registerrasterkeyword3.testcase \ registerrasterkeyword4.testcase \ registerrasterkeyword5.testcase \ registerrasterkeyword6.testcase \ registerrasterkeyword7.testcase \ registerrasterkeyword8.testcase \ registerrasterkeyword9.testcase \ registerrastersrid1.testcase \ registerrastersrid2.testcase \ registerrastersrid3.testcase \ registerrastersrid4.testcase \ registerrastersrid5.testcase \ registerrastersrid6.testcase \ registerrastersrid7.testcase \ registerrastersrid8.testcase \ registerrastersrid9.testcase \ registerRasterStyle1.testcase \ registerRasterStyle2.testcase \ registerRasterStyle3.testcase \ registerRasterStyle4.testcase \ registerRasterStyle5.testcase \ registerStllGroupStyle1.testcase \ registerStllGroupStyle3.testcase \ registerStllGroupStyle3.testcase \ registerStllGroupStyle4.testcase \ registerStllGroupStyle5.testcase \ registerStllGroupStyle6.testcase \ registerStllGroupStyle7.testcase \ registerStllGroupStyle8.testcase \ registerStllGroupStyle9.testcase \ registerVector1.testcase \ registerVector10.testcase \ registerVector11.testcase \ registerVector12.testcase \ registerVector13.testcase \ registerVector2.testcase \ registerVector3.testcase \ registerVector4.testcase \ registerVector9.testcase \ registervectorcvg1.testcase \ registervectorcvg2.testcase \ registervectorcvg3.testcase \ registervectorcvg4.testcase \ registervectorcvg5.testcase \ registervectorcvg6.testcase \ registervectorcvg7.testcase \ registervectorcvg8.testcase \ registervectorcvg9.testcase \ registervectorcvg10.testcase \ registervectorcvg11.testcase \ registervectorcvg12.testcase \ registervectorcvg13.testcase \ registervectorcvg14.testcase \ registervectorcvg15.testcase \ registervectorcvg16.testcase \ registervectorcvg17.testcase \ registervectorcvg18.testcase \ registervectorcvg19.testcase \ registervectorcvg20.testcase \ registervectorcvg21.testcase \ registervectorcvg22.testcase \ registervectorkeyword1.testcase \ registervectorkeyword2.testcase \ registervectorkeyword3.testcase \ registervectorkeyword4.testcase \ registervectorkeyword5.testcase \ registervectorkeyword6.testcase \ registervectorkeyword7.testcase \ registervectorkeyword8.testcase \ registervectorkeyword9.testcase \ registervectorsrid1.testcase \ registervectorsrid2.testcase \ registervectorsrid3.testcase \ registervectorsrid4.testcase \ registervectorsrid5.testcase \ registervectorsrid6.testcase \ registervectorsrid7.testcase \ registervectorsrid8.testcase \ registervectorsrid9.testcase \ registerVectorStyle1.testcase \ registerVectorStyle2.testcase \ registerVectorStyle3.testcase \ registerVectorStyle4.testcase \ registerVectorStyle5.testcase \ reloadGroupStyle1.testcase \ reloadGroupStyle2.testcase \ reloadGroupStyle3.testcase \ reloadGroupStyle4.testcase \ reloadGroupStyle5.testcase \ reloadGroupStyle6.testcase \ reloadGroupStyle7.testcase \ reloadGroupStyle8.testcase \ reloadGroupStyle9.testcase \ reloadGroupStyle10.testcase \ reloadRasterStyle1.testcase \ reloadRasterStyle2.testcase \ reloadRasterStyle3.testcase \ reloadRasterStyle5.testcase \ reloadRasterStyle6.testcase \ reloadRasterStyle7.testcase \ reloadRasterStyle8.testcase \ reloadRasterStyle9.testcase \ reloadRasterStyle10.testcase \ reloadVectorStyle1.testcase \ reloadVectorStyle2.testcase \ reloadVectorStyle3.testcase \ reloadVectorStyle5.testcase \ reloadVectorStyle6.testcase \ reloadVectorStyle7.testcase \ reloadVectorStyle8.testcase \ reloadVectorStyle9.testcase \ reloadVectorStyle10.testcase \ setfileid1.testcase \ setfileid2.testcase \ setfileid3.testcase \ setfileid4.testcase \ setfileid5.testcase \ setGroupInfos10.testcase \ setGroupInfos11.testcase \ setGroupInfos12.testcase \ setGroupInfos13.testcase \ setGroupInfos1.testcase \ setGroupInfos2.testcase \ setGroupInfos3.testcase \ setGroupInfos4.testcase \ setGroupInfos5.testcase \ setGroupInfos6.testcase \ setGroupInfos7.testcase \ setGroupInfos8.testcase \ setGroupInfos9.testcase \ setPaintOrder1.testcase \ setPaintOrder2.testcase \ setPaintOrder3.testcase \ setPaintOrder4.testcase \ setPaintOrder5.testcase \ setPaintOrder6.testcase \ setPaintOrder7.testcase \ setPaintOrder8.testcase \ setRasterPaintOrder1.testcase \ setRasterPaintOrder2.testcase \ setRasterPaintOrder3.testcase \ setRasterPaintOrder4.testcase \ setRasterPaintOrder5.testcase \ setRasterPaintOrder6.testcase \ setRasterPaintOrder7.testcase \ setRasterPaintOrder8.testcase \ setRasterPaintOrder9.testcase \ setRasterPaintOrder10.testcase \ setRasterPaintOrder11.testcase \ setRasterPaintOrder12.testcase \ setRasterPaintOrder13.testcase \ setVectorPaintOrder1.testcase \ setVectorPaintOrder2.testcase \ setVectorPaintOrder3.testcase \ setVectorPaintOrder4.testcase \ setVectorPaintOrder5.testcase \ setVectorPaintOrder6.testcase \ setVectorPaintOrder7.testcase \ setVectorPaintOrder8.testcase \ setVectorPaintOrder9.testcase \ setVectorPaintOrder10.testcase \ setVectorPaintOrder11.testcase \ setVectorPaintOrder12.testcase \ setVectorPaintOrder13.testcase \ setparentid1.testcase \ setparentid2.testcase \ setparentid3.testcase \ setparentid4.testcase \ setparentid5.testcase \ setvectorinfos1.testcase \ setvectorinfos2.testcase \ setvectorinfos3.testcase \ setvectorinfos4.testcase \ setvectorinfos5.testcase \ setvectorinfos6.testcase \ setvectorinfos7.testcase \ setvectorinfos8.testcase \ setvectorinfos9.testcase \ setvectorinfos10.testcase \ setvectorinfos11.testcase \ setvectorinfos12.testcase \ setvectorinfos13.testcase \ unregisterGraphic1.testcase \ unregisterGraphic2.testcase \ unregisterGraphic3.testcase \ unregisterGraphic4.testcase \ unregisterGraphic5.testcase \ unregisterGroup1.testcase \ unregisterGroup2.testcase \ unregisterGroup3.testcase \ unregisterGroup4.testcase \ unregisterGroup5.testcase \ unregisterGroupStyle1.testcase \ unregisterGroupStyle2.testcase \ unregisterGroupStyle3.testcase \ unregisterGroupStyle4.testcase \ unregisterGroupStyle5.testcase \ unregisterGroupStyle6.testcase \ unregisterGroupStyle7.testcase \ unregisterGroupStyle8.testcase \ unregisterGroupStyle9.testcase \ unregisterGroupStyle10.testcase \ unregisterGroupLayer1.testcase \ unregisterGroupLayer2.testcase \ unregisterGroupLayer3.testcase \ unregisterGroupLayer4.testcase \ unregisterGroupLayer5.testcase \ unregisterGroupRaster1.testcase \ unregisterGroupRaster2.testcase \ unregisterGroupRaster3.testcase \ unregisterGroupRaster4.testcase \ unregisterGroupRaster5.testcase \ unregisterGroupRaster6.testcase \ unregisterGroupRaster7.testcase \ unregisterGroupRaster8.testcase \ unregisterGroupRaster9.testcase \ unregisterGroupVector1.testcase \ unregisterGroupVector2.testcase \ unregisterGroupVector3.testcase \ unregisterGroupVector4.testcase \ unregisterGroupVector5.testcase \ unregisterGroupVector6.testcase \ unregisterGroupVector7.testcase \ unregisterGroupVector8.testcase \ unregisterGroupVector9.testcase \ unregisterRaster1.testcase \ unregisterRaster2.testcase \ unregisterRaster3.testcase \ unregisterRaster4.testcase \ unregisterRaster5.testcase \ unregisterRaster6.testcase \ unregisterRaster7.testcase \ unregisterRaster8.testcase \ unregisterRaster9.testcase \ unregisterrasterkeyword1.testcase \ unregisterrasterkeyword2.testcase \ unregisterrasterkeyword3.testcase \ unregisterrasterkeyword4.testcase \ unregisterrasterkeyword5.testcase \ unregisterrasterkeyword6.testcase \ unregisterrasterkeyword7.testcase \ unregisterrasterkeyword8.testcase \ unregisterrasterkeyword9.testcase \ unregisterrastersrid1.testcase \ unregisterrastersrid2.testcase \ unregisterrastersrid3.testcase \ unregisterrastersrid4.testcase \ unregisterrastersrid5.testcase \ unregisterrastersrid6.testcase \ unregisterrastersrid7.testcase \ unregisterrastersrid8.testcase \ unregisterrastersrid9.testcase \ unregisterRasterStyle1.testcase \ unregisterRasterStyle2.testcase \ unregisterRasterStyle3.testcase \ unregisterRasterStyle4.testcase \ unregisterRasterStyle5.testcase \ unregisterRasterStyle6.testcase \ unregisterRasterStyle7.testcase \ unregisterRasterStyle8.testcase \ unregisterRasterStyle9.testcase \ unregisterRasterStyle10.testcase \ unregisterStllGroupStyle1.testcase \ unregisterStllGroupStyle3.testcase \ unregisterStllGroupStyle3.testcase \ unregisterStllGroupStyle4.testcase \ unregisterStllGroupStyle5.testcase \ unregisterStllGroupStyle6.testcase \ unregisterStllGroupStyle7.testcase \ unregisterStllGroupStyle8.testcase \ unregisterStllGroupStyle9.testcase \ unregisterVector1.testcase \ unregisterVector2.testcase \ unregisterVector3.testcase \ unregisterVector4.testcase \ unregisterVector9.testcase \ unregisterVector10.testcase \ unregisterVector11.testcase \ unregisterVector12.testcase \ unregisterVector13.testcase \ unregistervectorcvg1.testcase \ unregistervectorcvg2.testcase \ unregistervectorcvg3.testcase \ unregistervectorcvg4.testcase \ unregistervectorcvg5.testcase \ unregistervectorkeyword1.testcase \ unregistervectorkeyword2.testcase \ unregistervectorkeyword3.testcase \ unregistervectorkeyword4.testcase \ unregistervectorkeyword5.testcase \ unregistervectorkeyword6.testcase \ unregistervectorkeyword7.testcase \ unregistervectorkeyword8.testcase \ unregistervectorkeyword9.testcase \ unregistervectorsrid1.testcase \ unregistervectorsrid2.testcase \ unregistervectorsrid3.testcase \ unregistervectorsrid4.testcase \ unregistervectorsrid5.testcase \ unregistervectorsrid6.testcase \ unregistervectorsrid7.testcase \ unregistervectorsrid8.testcase \ unregistervectorsrid9.testcase \ unregisterVectorStyle1.testcase \ unregisterVectorStyle2.testcase \ unregisterVectorStyle3.testcase \ unregisterVectorStyle4.testcase \ unregisterVectorStyle5.testcase \ unregisterVectorStyle6.testcase \ unregisterVectorStyle7.testcase \ unregisterVectorStyle8.testcase \ unregisterVectorStyle9.testcase \ unregisterVectorStyle10.testcase \ updaterasterextent1.testcase \ updaterasterextent2.testcase \ updaterasterextent3.testcase \ updaterasterextent4.testcase \ updaterasterextent5.testcase \ updaterasterextent6.testcase \ updaterasterextent7.testcase \ updaterasterextent8.testcase \ updaterasterextent9.testcase \ updaterasterextent10.testcase \ updaterasterextent11.testcase \ updaterasterextent12.testcase \ updaterasterextent13.testcase \ updaterasterextent14.testcase \ updaterasterextent15.testcase \ updatevectorextent1.testcase \ updatevectorextent2.testcase \ updatevectorextent3.testcase \ updatevectorextent4.testcase \ updatevectorextent5.testcase \ updatevectorextent6.testcase \ updatevectorextent7.testcase \ updatevectorextent8.testcase \ updatevectorextent9.testcase \ updatevectorextent10.testcase \ updatevectorextent11.testcase \ updatevectorextent12.testcase \ updatevectorextent13.testcase \ updatevectorextent14.testcase \ updatevectorextent15.testcase \ xmlblobgetabstract1.testcase \ xmlblobgetabstract2.testcase \ xmlblobgetabstract3.testcase \ xmlblobgetabstract4.testcase \ xmlblobgetabstract5.testcase \ xmlblobgetabstract6.testcase \ xmlblobgetdocumentsize1.testcase \ xmlblobgetdocumentsize2.testcase \ xmlblobgetdocumentsize3.testcase \ xmlblobgetdocumentsize4.testcase \ xmlblobgetdocumentsize5.testcase \ xmlblobgetdocumentsize6.testcase \ xmlblobgetencoding1.testcase \ xmlblobgetencoding2.testcase \ xmlblobgetencoding3.testcase \ xmlblobgetencoding4.testcase \ xmlblobgetencoding5.testcase \ xmlblobgetencoding6.testcase \ xmlblobgetencoding7.testcase \ xmlblobgetfileid1.testcase \ xmlblobgetfileid2.testcase \ xmlblobgetfileid3.testcase \ xmlblobgetfileid4.testcase \ xmlblobgetfileid5.testcase \ xmlblobgetfileid6.testcase \ xmlblobgetgeometry1.testcase \ xmlblobgetgeometry2.testcase \ xmlblobgetgeometry3.testcase \ xmlblobgetgeometry4.testcase \ xmlblobgetgeometry5.testcase \ xmlblobgetgeometry6.testcase \ xmlblobgetinternalschemauri1.testcase \ xmlblobgetinternalschemauri2.testcase \ xmlblobgetinternalschemauri3.testcase \ xmlblobgetinternalschemauri4.testcase \ xmlblobgetinternalschemauri5.testcase \ xmlblobgetparentid1.testcase \ xmlblobgetparentid2.testcase \ xmlblobgetparentid3.testcase \ xmlblobgetparentid4.testcase \ xmlblobgetparentid5.testcase \ xmlblobgetparentid6.testcase \ xmlblobgetschemauri1.testcase \ xmlblobgetschemauri2.testcase \ xmlblobgetschemauri3.testcase \ xmlblobgetschemauri4.testcase \ xmlblobgetschemauri5.testcase \ xmlblobgetschemauri6.testcase \ xmlblobgetname1.testcase \ xmlblobgetname2.testcase \ xmlblobgetname3.testcase \ xmlblobgetname4.testcase \ xmlblobgetname5.testcase \ xmlblobgetname6.testcase \ xmlblobgetname7.testcase \ xmlblobgetname8.testcase \ xmlblobgettitle1.testcase \ xmlblobgettitle2.testcase \ xmlblobgettitle3.testcase \ xmlblobgettitle4.testcase \ xmlblobgettitle5.testcase \ xmlblobgettitle6.testcase \ xmlcompress1.testcase \ xmlcompress2.testcase \ xmlcompress3.testcase \ xmlcompress4.testcase \ xmlcompress5.testcase \ xmlcompress6.testcase \ xmlcompress7.testcase \ xmlcompress8.testcase \ xmlfromblob10.testcase \ xmlfromblob11.testcase \ xmlfromblob12.testcase \ xmlfromblob13.testcase \ xmlfromblob1.testcase \ xmlfromblob2.testcase \ xmlfromblob3.testcase \ xmlfromblob4.testcase \ xmlfromblob5.testcase \ xmlfromblob6.testcase \ xmlfromblob7.testcase \ xmlfromblob8.testcase \ xmlfromblob9.testcase \ xmltextfromblob10.testcase \ xmltextfromblob11.testcase \ xmltextfromblob12.testcase \ xmltextfromblob13.testcase \ xmltextfromblob1.testcase \ xmltextfromblob2.testcase \ xmltextfromblob3.testcase \ xmltextfromblob4.testcase \ xmltextfromblob5.testcase \ xmltextfromblob6.testcase \ xmltextfromblob7.testcase \ xmltextfromblob8.testcase \ xmltextfromblob9.testcase \ xmltoblob10.testcase \ xmltoblob11.testcase \ xmltoblob12.testcase \ xmltoblob13.testcase \ xmltoblob14.testcase \ xmltoblob15.testcase \ xmltoblob16.testcase \ xmltoblob17.testcase \ xmltoblob18.testcase \ xmltoblob1.testcase \ xmltoblob2.testcase \ xmltoblob3.testcase \ xmltoblob4.testcase \ xmltoblob5.testcase \ xmltoblob6.testcase \ xmltoblob7.testcase \ xmltoblob8.testcase \ xmltoblob9.testcase \ xmluncompress1.testcase \ xmluncompress2.testcase \ xmluncompress3.testcase \ xmluncompress4.testcase \ xmluncompress5.testcase \ xmluncompress6.testcase \ xmluncompress7.testcase \ xmluncompress8.testcase libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadRasterStyle3.testcase0000664000175000017500000000035012544707704024430 00000000000000ReloadRasterStyle - BLOB style_id :memory: #use in-memory database SELECT SE_ReloadRasterStyle(zeroblob(100), zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_ReloadRasterStyle(zeroblob(100), zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadRasterStyle1.testcase0000664000175000017500000000032612544707704024431 00000000000000ReloadRasterStyle - NULL style_id :memory: #use in-memory database SELECT SE_ReloadRasterStyle(NULL, zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_ReloadRasterStyle(NULL, zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic19.testcase0000664000175000017500000000044512544707704024176 00000000000000RegisterExternalGraphic - INTEGER filename :memory: #use in-memory database SELECT SE_RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 1); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', 1); -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltoblob14.testcase0000664000175000017500000000042712544707704023051 00000000000000XB_Create - valid XMLDocument, compressed, DOUBLE SchemaURI :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, 1.1); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, 1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic11.testcase0000664000175000017500000000043012544707704024160 00000000000000RegisterExternalGraphic - INTEGER title :memory: #use in-memory database SELECT SE_RegisterExternalGraphic('resource.png', zeroblob(4), 1, NULL, NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic('resource.png', zeroblob(4), 1, NULL, NULL); -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerVector1.testcase0000664000175000017500000000033412544707704023767 00000000000000RegisterVectorStyledLayer - NULL coverage_name :memory: #use in-memory database SELECT SE_RegisterVectorStyledLayer(NULL, 1); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorStyledLayer(NULL, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setPaintOrder4.testcase0000664000175000017500000000034512544707704023550 00000000000000SetStyledGroupLayerPaintOrder - ID - NULL order :memory: #use in-memory database SELECT SE_SetStyledGroupLayerPaintOrder(1, NULL); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupLayerPaintOrder(1, NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerVector2.testcase0000664000175000017500000000033112544707704023765 00000000000000RegisterVectorStyledLayer - INTEGER coverage_name :memory: #use in-memory database SELECT SE_RegisterVectorStyledLayer(1, 1); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorStyledLayer(1, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerRaster2.testcase0000664000175000017500000000033212544707704023764 00000000000000RegisterRasterStyledLayer - INTEGER coverage :memory: #use in-memory database SELECT SE_RegisterRasterStyledLayer(1, NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterStyledLayer(1, NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupVector9.testcase0000664000175000017500000000035312544707704025360 00000000000000UnRegisterStyledGroupVector - Text coverage :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupVector('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupVector('alpha', 'beta') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlfromblob2.testcase0000664000175000017500000000024712544707704023307 00000000000000XB_GetPayload - INTEGER XmlBLOB :memory: #use in-memory database SELECT XB_GetPayload(1); 1 # rows (not including the header row) 1 # columns XB_GetPayload(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupVector6.testcase0000664000175000017500000000034212544707704025353 00000000000000UnRegisterStyledGroupVector - Int coverage :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupVector('alpha', 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupVector('alpha', 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerVector3.testcase0000664000175000017500000000033412544707704023771 00000000000000RegisterVectorStyledLayer - DOUBLE coverage_name :memory: #use in-memory database SELECT SE_RegisterVectorStyledLayer(1.1, 1); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorStyledLayer(1.1, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupRaster3.testcase0000664000175000017500000000034412544707704025350 00000000000000UnRegisterStyledGroupRaster - Double group :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupRaster(1.1, 'beta'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupRaster(1.1, 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic7.testcase0000664000175000017500000000035412544707704024112 00000000000000RegisterExternalGraphic - DOUBLE resource :memory: #use in-memory database SELECT SE_RegisterExternalGraphic('resource.png', 1.1); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic('resource.png', 1.1); -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorcvg1.testcase0000664000175000017500000000031512544707704025071 00000000000000UnregisterVectorCoverage - NULL coverage :memory: #use in-memory database SELECT SE_UnregisterVectorCoverage(NULL); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverage(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updatevectorextent3.testcase0000664000175000017500000000031612544707704024717 00000000000000UpdateVectorCoverageExtent - Int transaction :memory: #use in-memory database SELECT SE_UpdateVectorCoverageExtent(1); 1 # rows (not including the header row) 1 # columns SE_UpdateVectorCoverageExtent(1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updatevectorextent8.testcase0000664000175000017500000000035012544707704024722 00000000000000UpdateVectorCoverageExtent - Double transaction :memory: #use in-memory database SELECT SE_UpdateVectorCoverageExtent('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_UpdateVectorCoverageExtent('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerrastersrid6.testcase0000664000175000017500000000034112544707704024712 00000000000000RegisterRasterCoverageSrid - Double srid :memory: #use in-memory database SELECT SE_RegisterRasterCoverageSrid('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterCoverageSrid('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob5.testcase0000664000175000017500000000032012544707704026011 00000000000000XB_IsSchemaValidated - invalid XmlBLOB :memory: #use in-memory database SELECT XB_IsSchemaValidated(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_IsSchemaValidated(zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updatevectorextent5.testcase0000664000175000017500000000034212544707704024720 00000000000000UpdateVectorCoverageExtent - BLOB coverage :memory: #use in-memory database SELECT SE_UpdateVectorCoverageExtent(zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_UpdateVectorCoverageExtent(zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri3.testcase0000664000175000017500000000031012544707704026551 00000000000000XB_GetInternalSchemaURI - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_GetInternalSchemaURI(1.1); 1 # rows (not including the header row) 1 # columns XB_GetInternalSchemaURI(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupStyle8.testcase0000664000175000017500000000032412544707704025213 00000000000000UnRegisterGroupStyle - Text force :memory: #use in-memory database SELECT SE_UnRegisterGroupStyle('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterGroupStyle('alpha', 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerRasterStyle3.testcase0000664000175000017500000000027412544707704025013 00000000000000RegisterRasterStyle - Double style :memory: #use in-memory database SELECT SE_RegisterRasterStyle(1.1); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterStyle(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic12.testcase0000664000175000017500000000043312544707704024164 00000000000000RegisterExternalGraphic - DOUBLE title :memory: #use in-memory database SELECT SE_RegisterExternalGraphic('resource.png', zeroblob(4), 1.1, NULL, NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic('resource.png', zeroblob(4), 1.1, NULL, NULL); -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlfromblob6.testcase0000664000175000017500000000030412544707704023305 00000000000000XB_GetPayload - invalid BLOB XmlBLOB :memory: #use in-memory database SELECT XB_GetPayload(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetPayload(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerIsoMeta5.testcase0000664000175000017500000000031512544707704024071 00000000000000RegisterIsoMetadata - NULL metadata :memory: #use in-memory database SELECT RegisterIsoMetadata('series', NULL); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata('series', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issvg7.testcase0000664000175000017500000000056512544707704022127 00000000000000XB_IsSvg - valid XmlBLOB (FALSE) :memory: #use in-memory database SELECT XB_IsSvg(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD'); 1 # rows (not including the header row) 1 # columns XB_IsSvg(x'0001AB12000000120000000000BA0000CA0000DA0000DB0000DC0000DDCB3C613E3C623E746578743C2F623E3C2F613EBC49A10C93DD') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerRaster1.testcase0000664000175000017500000000033512544707704023766 00000000000000RegisterRasterStyledLayer - NULL coverage :memory: #use in-memory database SELECT SE_RegisterRasterStyledLayer(NULL, NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterStyledLayer(NULL, NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetinternalschemauri5.testcase0000664000175000017500000000031612544707704026561 00000000000000XB_GetInternalSchemaURI - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_GetInternalSchemaURI('alpha'); 1 # rows (not including the header row) 1 # columns XB_GetInternalSchemaURI('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/createstyling2.testcase0000664000175000017500000000026612544707704023642 00000000000000CreateStylingTables - TEXT :memory: #use in-memory database SELECT CreateStylingTables('alpha'); 1 # rows (not including the header row) 1 # columns CreateStylingTables('alpha') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerrasterkeyword5.testcase0000664000175000017500000000035512544707704025441 00000000000000RegisterRasterCoverageKeyword - NULL keyword :memory: #use in-memory database SELECT SE_RegisterRasterCoverageKeyword('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterCoverageKeyword('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic17.testcase0000664000175000017500000000046212544707704024173 00000000000000RegisterExternalGraphic - BLOB abstract :memory: #use in-memory database SELECT SE_RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', zeroblob(4), NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', zeroblob(4), NULL); -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setvectorinfos13.testcase0000664000175000017500000000036612544707704024125 00000000000000SetVectorCoverageInfos - Text abstract :memory: #use in-memory database SELECT SE_SetVectorCoverageInfos('alpha', 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SE_SetVectorCoverageInfos('alpha', 'title', 'abstract') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRaster1.testcase0000664000175000017500000000033512544707704024331 00000000000000UnRegisterRasterStyledLayer - NULL coverage :memory: #use in-memory database SELECT SE_UnRegisterRasterStyledLayer(NULL, 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyledLayer(NULL, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setparentid1.testcase0000664000175000017500000000027712544707704023310 00000000000000XB_SetParentId - NULL XmlBLOB :memory: #use in-memory database SELECT XB_SetParentId(NULL, 'alpha'); 1 # rows (not including the header row) 1 # columns XB_SetParentId(NULL, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isvalidxmlblob6.testcase0000664000175000017500000000062312544707704024001 00000000000000XB_IsValid - valid XmlBLOB :memory: #use in-memory database SELECT XB_IsValid(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); 1 # rows (not including the header row) 1 # columns XB_IsValid(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') 1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/addparentid6.testcase0000664000175000017500000000106512544707704023246 00000000000000XB_AddParentId - valid - gmd namespace :memory: #use in-memory database SELECT XB_GetParentId(XB_AddParentId(XB_Create(CastToBlob('')), 'newparentid', 'gmd', NULL, 'gco', 'http://www.isotc211.org/2005/gco')); 1 # rows (not including the header row) 1 # columns XB_GetParentId(XB_AddParentId(XB_Create(CastToBlob('')), 'newparentid', 'gmd', NULL, 'gco', 'http://www.isotc211.org/2005/gco')):0 newparentid libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlfromblob13.testcase0000664000175000017500000000070412544707704023367 00000000000000XB_GetPayload - valid XmlBLOB, INTEGER format :memory: #use in-memory database SELECT XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', -1); 1 # rows (not including the header row) 1 # columns XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', -1) text libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupRaster9.testcase0000664000175000017500000000035312544707704025356 00000000000000UnRegisterStyledGroupRaster - Text coverage :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupRaster('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupRaster('alpha', 'beta') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetname6.testcase0000664000175000017500000000055112544707704023766 00000000000000XB_GetName - valid XmlBLOB, legacy blob :memory: #use in-memory database SELECT XB_GetName(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); 1 # rows (not including the header row) 1 # columns XB_GetName(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg22.testcase0000664000175000017500000000043412544707704024613 00000000000000RegisterVectorCoverage - valid - long form :memory: #use in-memory database SELECT SE_RegisterVectorCoverage('alpha', 'table', 'geom', 'title', 'abstract'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage('alpha', 'table', 'geom', 'title', 'abstract') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorsrid9.testcase0000664000175000017500000000034512544707704025266 00000000000000UnregisterVectorCoverageSrid - Int srid :memory: #use in-memory database SELECT SE_UnregisterVectorCoverageSrid('alpha', 4326); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverageSrid('alpha', 4326) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterrastersrid7.testcase0000664000175000017500000000035312544707704025261 00000000000000UnregisterRasterCoverageSrid - Text srid :memory: #use in-memory database SELECT SE_UnregisterRasterCoverageSrid('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_UnregisterRasterCoverageSrid('alpha', 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterStllGroupStyle9.testcase0000664000175000017500000000035212544707704026054 00000000000000UnRegisterStyledGroupStyle - Text style name :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupStyle('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupStyle('alpha', 'beta') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlfromblob4.testcase0000664000175000017500000000026012544707704023304 00000000000000XB_GetPayload - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_GetPayload('alpha'); 1 # rows (not including the header row) 1 # columns XB_GetPayload('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRasterStyle3.testcase0000664000175000017500000000032712544707704025355 00000000000000UnRegisterRasterStyle - BLOB style_id :memory: #use in-memory database SELECT SE_UnRegisterRasterStyle(zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyle(zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGraphic5.testcase0000664000175000017500000000032012544707704024444 00000000000000UnregisterExternalGraphic - Text URL :memory: #use in-memory database SELECT SE_UnregisterExternalGraphic('alpha'); 1 # rows (not including the header row) 1 # columns SE_UnregisterExternalGraphic('alpha') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregistervectorsrid8.testcase0000664000175000017500000000036512544707704025267 00000000000000UnregisterVectorCoverageSrid - BLOB srid :memory: #use in-memory database SELECT SE_UnregisterVectorCoverageSrid('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_UnregisterVectorCoverageSrid('alpha', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlfromblob8.testcase0000664000175000017500000000067212544707704023317 00000000000000XB_GetPayload - valid XmlBLOB (compressed) :memory: #use in-memory database SELECT XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD'); 1 # rows (not including the header row) 1 # columns XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD') text libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterStllGroupStyle3.testcase0000664000175000017500000000033312544707704026045 00000000000000UnRegisterStyledGroupStyle - Double group name :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupStyle(1.1, 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupStyle(1.1, 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRaster9.testcase0000664000175000017500000000035512544707704024343 00000000000000UnRegisterRasterStyledLayer - Text style_id :memory: #use in-memory database SELECT SE_UnRegisterRasterStyledLayer('alpha', 'alpha'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyledLayer('alpha', 'alpha') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setPaintOrder3.testcase0000664000175000017500000000036012544707704023544 00000000000000SetStyledGroupLayerPaintOrder - BLOB item ID :memory: #use in-memory database SELECT SE_SetStyledGroupLayerPaintOrder(zeroblob(4), 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupLayerPaintOrder(zeroblob(4), 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setRasterPaintOrder1.testcase0000664000175000017500000000036312544707704024726 00000000000000SetStyledGroupRasterPaintOrder - NULL group :memory: #use in-memory database SELECT SE_SetStyledGroupRasterPaintOrder(NULL, 'beta', 1); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupRasterPaintOrder(NULL, 'beta', 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg13.testcase0000664000175000017500000000036112544707704024612 00000000000000RegisterVectorCoverage - valid short form :memory: #use in-memory database SELECT SE_RegisterVectorCoverage('alpha', 'table', 'geom'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage('alpha', 'table', 'geom') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadGroupStyle8.testcase0000664000175000017500000000030412544707704024270 00000000000000ReloadGroupStyle - Double style :memory: #use in-memory database SELECT SE_ReloadGroupStyle('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_ReloadGroupStyle('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/updatevectorextent10.testcase0000664000175000017500000000036612544707704025002 00000000000000UpdateVectorCoverageExtent - BLOB transaction :memory: #use in-memory database SELECT SE_UpdateVectorCoverageExtent('alpha', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_UpdateVectorCoverageExtent('alpha', zeroblob(4)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic6.testcase0000664000175000017500000000035112544707704024106 00000000000000RegisterExternalGraphic - INTEGER resource :memory: #use in-memory database SELECT SE_RegisterExternalGraphic('resource.png', 1); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic('resource.png', 1); -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupRaster2.testcase0000664000175000017500000000034012544707704025000 00000000000000RegisterStyledGroupRaster - Integer group_name :memory: #use in-memory database SELECT SE_RegisterStyledGroupRaster(1, 'beta'); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupRaster(1, 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltextfromblob10.testcase0000664000175000017500000000067412544707704024277 00000000000000XB_GetDocument - valid XmlBLOB, TEXT format :memory: #use in-memory database SELECT XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 'ok'); 1 # rows (not including the header row) 1 # columns XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 'ok') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic15.testcase0000664000175000017500000000044112544707704024166 00000000000000RegisterExternalGraphic - INTEGER abstract :memory: #use in-memory database SELECT SE_RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 1, NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 1, NULL); -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetname8.testcase0000664000175000017500000000104212544707704023764 00000000000000XB_GetName - valid XmlBLOB, current blob (undefined) :memory: #use in-memory database SELECT XB_GetName(x'0013AC390000002E0000000000BA0000CA0000DA0000DE0500DB616C7068610000DC0000DDCB789CB3094A2C2E492D0AAECC4DCACFC9AC4A2DB2B309C92CC949B54BCC29C848B4D187706CF43194010071941593BC159B9679DD'); 1 # rows (not including the header row) 1 # columns XB_GetName(x'0013AC390000002E0000000000BA0000CA0000DA0000DE0500DB616C7068610000DC0000DDCB789CB3094A2C2E492D0AAECC4DCACFC9AC4A2DB2B309C92CC949B54BCC29C848B4D187706CF43194010071941593BC159B9679DD') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetencoding3.testcase0000664000175000017500000000025512544707704024632 00000000000000XB_GetEncoding - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_GetEncoding(1.1); 1 # rows (not including the header row) 1 # columns XB_GetEncoding(1.1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setRasterPaintOrder11.testcase0000664000175000017500000000040412544707704025003 00000000000000SetStyledGroupRasterPaintOrder - Text order :memory: #use in-memory database SELECT SE_SetStyledGroupRasterPaintOrder('alpha', 'beta', 'gamma'); 1 # rows (not including the header row) 1 # columns SE_SetStyledGroupRasterPaintOrder('alpha', 'beta', 'gamma') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerRaster7.testcase0000664000175000017500000000034012544707704023770 00000000000000RegisterRasterStyledLayer - DOUBLE style :memory: #use in-memory database SELECT SE_RegisterRasterStyledLayer('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterStyledLayer('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorsrid2.testcase0000664000175000017500000000033012544707704024706 00000000000000RegisterVectorCoverageSrid - Int coverage :memory: #use in-memory database SELECT SE_RegisterVectorCoverageSrid(1, 4326); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverageSrid(1, 4326) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerRaster3.testcase0000664000175000017500000000033512544707704023770 00000000000000RegisterRasterStyledLayer - DOUBLE coverage :memory: #use in-memory database SELECT SE_RegisterRasterStyledLayer(1.1, NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterStyledLayer(1.1, NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic21.testcase0000664000175000017500000000046612544707704024172 00000000000000RegisterExternalGraphic - BLOB filename :memory: #use in-memory database SELECT SE_RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', zeroblob(4)); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', zeroblob(4)); -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issvg3.testcase0000664000175000017500000000022712544707704022116 00000000000000XB_IsSvg - DOUBLE XmlBLOB :memory: #use in-memory database SELECT XB_IsSvg(1.1); 1 # rows (not including the header row) 1 # columns XB_IsSvg(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerIsoMeta3.testcase0000664000175000017500000000030212544707704024063 00000000000000RegisterIsoMetadata - DOUBLE scope :memory: #use in-memory database SELECT RegisterIsoMetadata(1.1, NULL); 1 # rows (not including the header row) 1 # columns RegisterIsoMetadata(1.1, NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlfromblob10.testcase0000664000175000017500000000067112544707704023367 00000000000000XB_GetPayload - valid XmlBLOB, TEXT format :memory: #use in-memory database SELECT XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 'ok'); 1 # rows (not including the header row) 1 # columns XB_GetPayload(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', 'ok') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerRaster9.testcase0000664000175000017500000000036112544707704023775 00000000000000RegisterRasterStyledLayer - BLOB style :memory: #use in-memory database SELECT SE_RegisterRasterStyledLayer('alpha', zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterStyledLayer('alpha', zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/setfileid5.testcase0000664000175000017500000000070312544707704022734 00000000000000XB_SetFileId - valid :memory: #use in-memory database SELECT XB_GetFileId(XB_SetFileId(XB_Create(CastToBlob('a')), 'newfileid')); 1 # rows (not including the header row) 1 # columns XB_GetFileId(XB_SetFileId(XB_Create(CastToBlob('a')), 'newfileid')) newfileid libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/iscompressedxmlblob1.testcase0000664000175000017500000000025412544707704025041 00000000000000XB_IsCompressed - NULL XmlBLOB :memory: #use in-memory database SELECT XB_IsCompressed(NULL); 1 # rows (not including the header row) 1 # columns XB_IsCompressed(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupRaster7.testcase0000664000175000017500000000035112544707704025352 00000000000000UnRegisterStyledGroupRaster - Double coverage :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupRaster('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupRaster('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterrasterkeyword1.testcase0000664000175000017500000000037012544707704025775 00000000000000UnregisterRasterCoverageKeyword - NULL coverage :memory: #use in-memory database SELECT SE_UnregisterRasterCoverageKeyword(NULL, 'keyword'); 1 # rows (not including the header row) 1 # columns SE_UnregisterRasterCoverageKeyword(NULL, 'keyword') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/createisometa1.testcase0000664000175000017500000000027412544707704023610 00000000000000CreateIsoMetadataTables - NULL :memory: #use in-memory database SELECT CreateIsoMetadataTables(NULL); 1 # rows (not including the header row) 1 # columns CreateIsoMetadataTables(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroup5.testcase0000664000175000017500000000031312544707704024165 00000000000000UnRegisterStyledGroup - Text group name :memory: #use in-memory database SELECT SE_UnRegisterStyledGroup('alpha'); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroup('alpha') 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltextfromblob6.testcase0000664000175000017500000000030712544707704024215 00000000000000XB_GetDocument - invalid BLOB XmlBLOB :memory: #use in-memory database SELECT XB_GetDocument(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetDocument(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/issldsestyle1.testcase0000664000175000017500000000027612544707704023514 00000000000000XB_IsSldSeVectorStyle - NULL XmlBLOB :memory: #use in-memory database SELECT XB_IsSldSeVectorStyle(NULL); 1 # rows (not including the header row) 1 # columns XB_IsSldSeVectorStyle(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterVectorStyle10.testcase0000664000175000017500000000032412544707704025432 00000000000000UnRegisterVectorStyle - Integer second arg :memory: #use in-memory database SELECT SE_UnRegisterVectorStyle('alpha', 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterVectorStyle('alpha', 1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerStllGroupStyle6.testcase0000664000175000017500000000033712544707704025511 00000000000000RegisterStyledGroupStyle - Double stile ID :memory: #use in-memory database SELECT SE_RegisterStyledGroupStyle('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupStyle('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerrastersrid7.testcase0000664000175000017500000000034512544707704024717 00000000000000RegisterRasterCoverageSrid - Text srid :memory: #use in-memory database SELECT SE_RegisterRasterCoverageSrid('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_RegisterRasterCoverageSrid('alpha', 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGraphic2.testcase0000664000175000017500000000030512544707704024444 00000000000000UnregisterExternalGraphic - Int URL :memory: #use in-memory database SELECT SE_UnregisterExternalGraphic(1); 1 # rows (not including the header row) 1 # columns SE_UnregisterExternalGraphic(1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/createstyling11.testcase0000664000175000017500000000030112544707704023710 00000000000000CreateStylingTables - Integer transaction NEW:memory: #use in-memory database SELECT CreateStylingTables(1, 1); 1 # rows (not including the header row) 1 # columns CreateStylingTables(1, 1) 1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterGroupLayer1.testcase0000664000175000017500000000032312544707704025157 00000000000000UnRegisterStyledGroupLayer - NULL item ID :memory: #use in-memory database SELECT SE_UnRegisterStyledGroupLayer(NULL); 1 # rows (not including the header row) 1 # columns SE_UnRegisterStyledGroupLayer(NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltextfromblob13.testcase0000664000175000017500000000070712544707704024277 00000000000000XB_GetDocument - valid XmlBLOB, INTEGER format :memory: #use in-memory database SELECT XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', -1); 1 # rows (not including the header row) 1 # columns XB_GetDocument(x'0003AB120000001A0000000000BA0000CA0000DA0000DB0000DC0000DDCB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC5FDCA3F9DD', -1) text libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorsrid7.testcase0000664000175000017500000000034512544707704024721 00000000000000RegisterVectorCoverageSrid - Text srid :memory: #use in-memory database SELECT SE_RegisterVectorCoverageSrid('alpha', 'beta'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverageSrid('alpha', 'beta') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg10.testcase0000664000175000017500000000035512544707704024612 00000000000000RegisterVectorCoverage - Int f_geometry_column :memory: #use in-memory database SELECT SE_RegisterVectorCoverage('alpha', 'table', 1); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage('alpha', 'table', 1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRaster8.testcase0000664000175000017500000000034412544707704024340 00000000000000UnRegisterRasterStyledLayer - Integer style_id :memory: #use in-memory database SELECT SE_UnRegisterRasterStyledLayer('alpha', 1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyledLayer('alpha', 1) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRasterStyle7.testcase0000664000175000017500000000033012544707704025353 00000000000000UnRegisterRasterStyle - DOUBLE second arg :memory: #use in-memory database SELECT SE_UnRegisterRasterStyle('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyle('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetencoding4.testcase0000664000175000017500000000026312544707704024632 00000000000000XB_GetEncoding - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_GetEncoding('alpha'); 1 # rows (not including the header row) 1 # columns XB_GetEncoding('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadVectorStyle5.testcase0000664000175000017500000000032212544707704024433 00000000000000ReloadVectorStyle - Integet style_id :memory: #use in-memory database SELECT SE_ReloadVectorStyle(1, zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_ReloadVectorStyle(1, zeroblob(100)) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/getIsoMetaId2.testcase0000664000175000017500000000026312544707704023300 00000000000000GetIsoMetadataId - INTEGER fileIdentifier :memory: #use in-memory database SELECT GetIsoMetadataId(1); 1 # rows (not including the header row) 1 # columns GetIsoMetadataId(1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltoblob16.testcase0000664000175000017500000000043312544707704023050 00000000000000XB_Create - valid XMLDocument, compressed, InternalSchemaURI (fail) :memory: #use in-memory database SELECT XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, 1); 1 # rows (not including the header row) 1 # columns XB_Create(x'3C613E3C623E746578743C2F623E3C2F613E', 1, 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRaster6.testcase0000664000175000017500000000035112544707704024334 00000000000000UnRegisterRasterStyledLayer - Double style_id :memory: #use in-memory database SELECT SE_UnRegisterRasterStyledLayer('alpha', 1.1); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyledLayer('alpha', 1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isschemavalidatedxmlblob4.testcase0000664000175000017500000000030112544707704026007 00000000000000XB_IsSchemaValidated - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_IsSchemaValidated('alpha'); 1 # rows (not including the header row) 1 # columns XB_IsSchemaValidated('alpha') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetencoding1.testcase0000664000175000017500000000025512544707704024630 00000000000000XB_GetEncoding - NULL XmlBLOB :memory: #use in-memory database SELECT XB_GetEncoding(NULL); 1 # rows (not including the header row) 1 # columns XB_GetEncoding(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetfileid6.testcase0000664000175000017500000000056512544707704024307 00000000000000XB_GetFileId - valid XmlBLOB, no FileIdentifier :memory: #use in-memory database SELECT XB_GetFileId(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD'); 1 # rows (not including the header row) 1 # columns XB_GetFileId(x'0003AB120000001A0000000000BACB789CB349B4B349B22B49AD28B1D14FB2B3D14FB4030036540592BC0AA70332DD') (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGraphic18.testcase0000664000175000017500000000045012544707704024171 00000000000000RegisterExternalGraphic - NULL filename :memory: #use in-memory database SELECT SE_RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterExternalGraphic('resource.png', zeroblob(4), 'alpha', 'beta', NULL); -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlfromblob5.testcase0000664000175000017500000000030412544707704023304 00000000000000XB_GetPayload - invalid BLOB XmlBLOB :memory: #use in-memory database SELECT XB_GetPayload(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetPayload(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isvalidxmlblob4.testcase0000664000175000017500000000024312544707704023775 00000000000000XB_IsValid - TEXT XmlBLOB :memory: #use in-memory database SELECT XB_IsValid('alpha'); 1 # rows (not including the header row) 1 # columns XB_IsValid('alpha') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/createstyling10.testcase0000664000175000017500000000032612544707704023716 00000000000000CreateStylingTables - BLOB transaction NEW:memory: #use in-memory database SELECT CreateStylingTables(1, zeroblob(100)); 1 # rows (not including the header row) 1 # columns CreateStylingTables(1, zeroblob(100)) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/unregisterRasterStyle6.testcase0000664000175000017500000000033012544707704025352 00000000000000UnRegisterRasterStyle - NULL second arg :memory: #use in-memory database SELECT SE_UnRegisterRasterStyle('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_UnRegisterRasterStyle('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/createisometa3.testcase0000664000175000017500000000027412544707704023612 00000000000000CreateIsoMetadataTables - DOUBLE :memory: #use in-memory database SELECT CreateIsoMetadataTables(1.1); 1 # rows (not including the header row) 1 # columns CreateIsoMetadataTables(1.1) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmlblobgetparentid4.testcase0000664000175000017500000000030312544707704024645 00000000000000XB_GetParentId - BLOB XmlDocument :memory: #use in-memory database SELECT XB_GetParentId(zeroblob(100)); 1 # rows (not including the header row) 1 # columns XB_GetParentId(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/reloadGroupStyle10.testcase0000664000175000017500000000033012544707704024340 00000000000000ReloadGroupStyle - text coverage :memory: #use in-memory database SELECT SE_ReloadGroupStyle('alpha', zeroblob(100)); 1 # rows (not including the header row) 1 # columns SE_ReloadGroupStyle('alpha', zeroblob(100)) 0 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/xmltoblob2.testcase0000664000175000017500000000023712544707704022765 00000000000000XB_Create - INTEGER XMLDocument :memory: #use in-memory database SELECT XB_Create(1); 1 # rows (not including the header row) 1 # columns XB_Create(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registerGroupVector5.testcase0000664000175000017500000000035012544707704025006 00000000000000RegisterStyledGroupVector - NULL coverage_name :memory: #use in-memory database SELECT SE_RegisterStyledGroupVector('alpha', NULL); 1 # rows (not including the header row) 1 # columns SE_RegisterStyledGroupVector('alpha', NULL) -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/registervectorcvg8.testcase0000664000175000017500000000037312544707704024541 00000000000000RegisterVectorCoverage - BLOB f_table_name :memory: #use in-memory database SELECT SE_RegisterVectorCoverage('alpha', zeroblob(4), 'geom'); 1 # rows (not including the header row) 1 # columns SE_RegisterVectorCoverage('alpha', zeroblob(4), 'geom') -1 libspatialite-4.3.0a/test/sql_stmt_libxml2_tests/isisometadata1.testcase0000664000175000017500000000025712544707704023613 00000000000000XB_IsIsoMetadata - NULL XmlBLOB :memory: #use in-memory database SELECT XB_IsIsoMetadata(NULL); 1 # rows (not including the header row) 1 # columns XB_IsIsoMetadata(NULL) -1 libspatialite-4.3.0a/test/check_virtualtable5.c0000664000175000017500000001506312544707704016512 00000000000000/* check_virtualtable5.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" struct test_step { const char *sql; const int num_rows; }; struct test_step steps[] = { {"select DATUM from dbftest WHERE DATUM = 2450514.5;", 18}, {"select DATUM from dbftest WHERE DATUM < 2450514.5;", 0}, {"select DATUM from dbftest WHERE DATUM > 2450514.5;", 0}, {"select DATUM from dbftest WHERE DATUM >= 2450514.5;", 18}, {"select DATUM from dbftest WHERE DATUM <= 2450514.5;", 18}, {"select DATUM from dbftest WHERE DATUM = 2450514.5;", 18}, {"select Length, HOEHE from dbftest WHERE HOEHE = 0.0;", 18}, {"select Length, HOEHE from dbftest WHERE HOEHE = 1.0;", 0}, {"select Length, HOEHE from dbftest WHERE HOEHE != 0.0;", 0}, {"select Length, HOEHE from dbftest WHERE Length > 0.0;", 18}, {"select Length, HOEHE from dbftest WHERE Length >= 0.0;", 18}, {"select Length, HOEHE from dbftest WHERE Length <= 0.0;", 0}, {"select Length, HOEHE from dbftest WHERE Length > 1.0;", 0}, {"select Length, HOEHE from dbftest WHERE Length > 0.1;", 10}, {"select Length, HOEHE from dbftest WHERE Length < 0.1;", 8}, {"select Length, HOEHE from dbftest WHERE Length >= 0.1;", 10}, {"select Length, HOEHE from dbftest WHERE HOEHE = 0;", 18}, {"select Length, HOEHE from dbftest WHERE HOEHE >= 0;", 18}, {"select Length, HOEHE from dbftest WHERE HOEHE <= 0;", 18}, {"select Length, HOEHE from dbftest WHERE HOEHE > 0;", 0}, {"select Length, HOEHE from dbftest WHERE HOEHE < 0;", 0}, {"select Length, HOEHE from dbftest WHERE HOEHE = 1;", 0}, {"select Length, HOEHE from dbftest WHERE HOEHE <= 1;", 18}, {"select Length, HOEHE from dbftest WHERE HOEHE >= 1;", 0}, {"select Length, HOEHE from dbftest WHERE HOEHE < 1;", 18}, {"select Length, HOEHE from dbftest WHERE HOEHE > -1;", 18}, {"select Length, HOEHE from dbftest WHERE HOEHE < -1;", 0}, {"select Length, HOEHE from dbftest WHERE HOEHE <= -1;", 0}, {NULL, 0} }; int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; int i; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE dbftest USING VirtualDBF(\"shp/merano-3d/roads.dbf\", 'CP1252');", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualDBF error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "DROP TABLE dbftest;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -3; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE dbftest USING VirtualDBF('shp/merano-3d/roads.dbf', \"CP1252\");", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualDBF error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "DROP TABLE dbftest;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE dbftest USING VirtualDBF('shp/merano-3d/roads.dbf', CP1252);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualDBF error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } for (i = 0; steps[i].sql; ++i) { ret = sqlite3_get_table (db_handle, steps[i].sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } if (rows != steps[i].num_rows) { fprintf (stderr, "Unexpected num of rows for test %i: %i.\n", i, rows); return -8; } sqlite3_free_table (results); } ret = sqlite3_exec (db_handle, "DROP TABLE dbftest;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } sqlite3_close (db_handle); spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/p05.dxf0000664000175000017500000004072612544707704013541 00000000000000 0 SECTION 2 HEADER 9 $EXTMIN 10 663412.921 20 5165262.643 30 0.000 9 $EXTMAX 10 668486.317 20 5172964.162 30 589.850 9 $LUPREC 70 7 0 ENDSEC 0 SECTION 2 TABLES 0 TABLE 2 LAYER 70 1 0 LAYER 2 SHP_POINT 70 64 62 7 6 CONTINUOUS 0 ENDTAB 0 ENDSEC 0 SECTION 2 ENTITIES 0 POINT 8 SHP_POINT 10 667710.008 20 5169402.895 30 589.850 0 POINT 8 SHP_POINT 10 667687.978 20 5169352.046 30 583.140 0 POINT 8 SHP_POINT 10 666907.922 20 5168060.765 30 279.470 0 POINT 8 SHP_POINT 10 666953.070 20 5167886.338 30 277.750 0 POINT 8 SHP_POINT 10 666963.279 20 5167864.568 30 277.550 0 POINT 8 SHP_POINT 10 666902.562 20 5168129.154 30 280.360 0 POINT 8 SHP_POINT 10 666885.472 20 5168091.785 30 280.020 0 POINT 8 SHP_POINT 10 666814.808 20 5167436.647 30 279.590 0 POINT 8 SHP_POINT 10 666925.492 20 5168086.965 30 280.320 0 POINT 8 SHP_POINT 10 666849.489 20 5167587.904 30 276.430 0 POINT 8 SHP_POINT 10 666924.442 20 5168124.394 30 280.360 0 POINT 8 SHP_POINT 10 666921.113 20 5168191.263 30 281.700 0 POINT 8 SHP_POINT 10 666851.349 20 5167561.805 30 276.970 0 POINT 8 SHP_POINT 10 666814.404 20 5168103.605 30 279.260 0 POINT 8 SHP_POINT 10 666825.179 20 5167535.736 30 277.590 0 POINT 8 SHP_POINT 10 666808.189 20 5167544.035 30 277.050 0 POINT 8 SHP_POINT 10 666894.342 20 5168012.136 30 278.340 0 POINT 8 SHP_POINT 10 666914.519 20 5167734.521 30 275.820 0 POINT 8 SHP_POINT 10 666813.393 20 5167993.837 30 277.920 0 POINT 8 SHP_POINT 10 666805.314 20 5168083.186 30 279.380 0 POINT 8 SHP_POINT 10 666809.044 20 5168060.076 30 278.940 0 POINT 8 SHP_POINT 10 666812.124 20 5168140.855 30 279.740 0 POINT 8 SHP_POINT 10 666874.072 20 5168049.836 30 278.640 0 POINT 8 SHP_POINT 10 666842.629 20 5167527.566 30 277.410 0 POINT 8 SHP_POINT 10 666847.179 20 5167613.534 30 275.890 0 POINT 8 SHP_POINT 10 666880.017 20 5167401.757 30 281.130 0 POINT 8 SHP_POINT 10 666858.643 20 5168084.105 30 279.740 0 POINT 8 SHP_POINT 10 666893.941 20 5167918.688 30 277.100 0 POINT 8 SHP_POINT 10 666904.593 20 5168142.344 30 281.220 0 POINT 8 SHP_POINT 10 666856.861 20 5167902.649 30 277.200 0 POINT 8 SHP_POINT 10 666870.811 20 5167908.538 30 277.500 0 POINT 8 SHP_POINT 10 666933.110 20 5167929.448 30 278.130 0 POINT 8 SHP_POINT 10 666812.124 20 5168140.855 30 279.760 0 POINT 8 SHP_POINT 10 666852.131 20 5167856.729 30 277.500 0 POINT 8 SHP_POINT 10 666942.910 20 5167908.118 30 278.130 0 POINT 8 SHP_POINT 10 666835.703 20 5168022.817 30 278.280 0 POINT 8 SHP_POINT 10 666912.201 20 5167972.497 30 278.360 0 POINT 8 SHP_POINT 10 666822.903 20 5168046.076 30 278.380 0 POINT 8 SHP_POINT 10 666860.253 20 5168048.926 30 278.620 0 POINT 8 SHP_POINT 10 666935.943 20 5168246.662 30 283.110 0 POINT 8 SHP_POINT 10 666861.251 20 5167866.869 30 277.700 0 POINT 8 SHP_POINT 10 666855.252 20 5167924.678 30 277.460 0 POINT 8 SHP_POINT 10 666876.451 20 5167921.538 30 277.480 0 POINT 8 SHP_POINT 10 666885.001 20 5167909.578 30 277.420 0 POINT 8 SHP_POINT 10 666858.211 20 5167883.419 30 277.200 0 POINT 8 SHP_POINT 10 666877.181 20 5167884.029 30 277.200 0 POINT 8 SHP_POINT 10 666811.683 20 5168019.087 30 278.180 0 POINT 8 SHP_POINT 10 666846.222 20 5167965.148 30 277.260 0 POINT 8 SHP_POINT 10 666871.322 20 5167943.788 30 277.520 0 POINT 8 SHP_POINT 10 666927.183 20 5168217.002 30 282.130 0 POINT 8 SHP_POINT 10 666926.129 20 5167741.961 30 275.820 0 POINT 8 SHP_POINT 10 666886.331 20 5167934.758 30 277.480 0 POINT 8 SHP_POINT 10 666853.662 20 5167944.548 30 277.520 0 POINT 8 SHP_POINT 10 666810.403 20 5168041.406 30 278.540 0 POINT 8 SHP_POINT 10 666837.753 20 5168047.226 30 278.360 0 POINT 8 SHP_POINT 10 666903.801 20 5167990.657 30 278.440 0 POINT 8 SHP_POINT 10 667139.889 20 5168268.150 30 300.230 0 POINT 8 SHP_POINT 10 666939.139 20 5167750.291 30 275.820 0 POINT 8 SHP_POINT 10 666913.683 20 5168164.903 30 281.400 0 POINT 8 SHP_POINT 10 666907.902 20 5168060.755 30 279.420 0 POINT 8 SHP_POINT 10 666901.601 20 5167902.258 30 276.980 0 POINT 8 SHP_POINT 10 666809.683 20 5167973.798 30 277.460 0 POINT 8 SHP_POINT 10 666800.183 20 5167954.628 30 277.540 0 POINT 8 SHP_POINT 10 666896.812 20 5168116.994 30 280.760 0 POINT 8 SHP_POINT 10 666828.383 20 5168082.266 30 279.420 0 POINT 8 SHP_POINT 10 666828.122 20 5167915.299 30 276.740 0 POINT 8 SHP_POINT 10 666834.001 20 5167832.980 30 274.500 0 POINT 8 SHP_POINT 10 666825.112 20 5167954.688 30 277.260 0 POINT 8 SHP_POINT 10 666839.321 20 5167756.111 30 274.000 0 POINT 8 SHP_POINT 10 666831.222 20 5167873.979 30 276.400 0 POINT 8 SHP_POINT 10 666802.625 20 5168262.623 30 290.370 0 POINT 8 SHP_POINT 10 666923.279 20 5167710.892 30 276.610 0 POINT 8 SHP_POINT 10 666841.240 20 5167721.412 30 274.450 0 POINT 8 SHP_POINT 10 666944.458 20 5167689.562 30 277.710 0 POINT 8 SHP_POINT 10 666805.545 20 5168221.933 30 288.970 0 POINT 8 SHP_POINT 10 666894.869 20 5167738.331 30 275.320 0 POINT 8 SHP_POINT 10 666866.360 20 5167765.051 30 274.960 0 POINT 8 SHP_POINT 10 666808.425 20 5168181.414 30 295.560 0 POINT 8 SHP_POINT 10 666842.680 20 5167679.713 30 275.390 0 POINT 8 SHP_POINT 10 666836.761 20 5167792.981 30 274.820 0 POINT 8 SHP_POINT 10 667139.422 20 5168654.643 30 297.790 0 POINT 8 SHP_POINT 10 667147.662 20 5168678.422 30 300.650 0 POINT 8 SHP_POINT 10 667129.572 20 5168605.914 30 292.750 0 POINT 8 SHP_POINT 10 667133.592 20 5168630.033 30 295.630 0 POINT 8 SHP_POINT 10 667126.571 20 5168455.166 30 290.170 0 POINT 8 SHP_POINT 10 667002.952 20 5168356.009 30 287.270 0 POINT 8 SHP_POINT 10 666967.223 20 5168349.430 30 285.740 0 POINT 8 SHP_POINT 10 667019.202 20 5168365.799 30 286.590 0 POINT 8 SHP_POINT 10 667129.182 20 5168580.404 30 292.520 0 POINT 8 SHP_POINT 10 667129.322 20 5168554.815 30 291.620 0 POINT 8 SHP_POINT 10 667132.652 20 5168529.685 30 290.730 0 POINT 8 SHP_POINT 10 666641.059 20 5168310.503 30 285.490 0 POINT 8 SHP_POINT 10 666922.384 20 5168389.319 30 286.320 0 POINT 8 SHP_POINT 10 666946.924 20 5168378.649 30 286.420 0 POINT 8 SHP_POINT 10 666943.693 20 5168271.881 30 283.520 0 POINT 8 SHP_POINT 10 666896.975 20 5168398.969 30 286.240 0 POINT 8 SHP_POINT 10 667056.111 20 5168334.499 30 289.530 0 POINT 8 SHP_POINT 10 666993.673 20 5168365.259 30 286.850 0 POINT 8 SHP_POINT 10 667030.402 20 5168344.869 30 288.410 0 POINT 8 SHP_POINT 10 666959.363 20 5168323.460 30 284.800 0 POINT 8 SHP_POINT 10 667112.640 20 5168311.689 30 294.310 0 POINT 8 SHP_POINT 10 666822.256 20 5168429.449 30 287.080 0 POINT 8 SHP_POINT 10 666871.975 20 5168409.249 30 286.500 0 POINT 8 SHP_POINT 10 666768.718 20 5168453.599 30 287.620 0 POINT 8 SHP_POINT 10 666847.116 20 5168419.369 30 286.700 0 POINT 8 SHP_POINT 10 666742.388 20 5168468.039 30 287.620 0 POINT 8 SHP_POINT 10 667044.382 20 5168366.169 30 286.670 0 POINT 8 SHP_POINT 10 667096.071 20 5168367.278 30 287.950 0 POINT 8 SHP_POINT 10 666654.678 20 5168292.083 30 284.570 0 POINT 8 SHP_POINT 10 666967.803 20 5168369.919 30 286.460 0 POINT 8 SHP_POINT 10 667134.110 20 5168291.939 30 297.270 0 POINT 8 SHP_POINT 10 667112.041 20 5168381.448 30 288.950 0 POINT 8 SHP_POINT 10 667116.071 20 5168406.187 30 289.570 0 POINT 8 SHP_POINT 10 667123.401 20 5168429.967 30 289.790 0 POINT 8 SHP_POINT 10 666951.543 20 5168297.811 30 284.240 0 POINT 8 SHP_POINT 10 667133.431 20 5168504.696 30 290.180 0 POINT 8 SHP_POINT 10 667131.951 20 5168479.406 30 290.040 0 POINT 8 SHP_POINT 10 667087.081 20 5168322.529 30 291.870 0 POINT 8 SHP_POINT 10 666717.909 20 5168481.089 30 287.620 0 POINT 8 SHP_POINT 10 667070.851 20 5168366.469 30 287.050 0 POINT 8 SHP_POINT 10 666667.588 20 5168274.743 30 283.690 0 POINT 8 SHP_POINT 10 666792.687 20 5168442.329 30 287.400 0 POINT 8 SHP_POINT 10 666796.656 20 5168347.361 30 293.050 0 POINT 8 SHP_POINT 10 666794.247 20 5168406.680 30 294.560 0 POINT 8 SHP_POINT 10 666799.916 20 5168302.952 30 291.870 0 POINT 8 SHP_POINT 10 666795.166 20 5168376.341 30 293.520 0 POINT 8 SHP_POINT 10 667062.872 20 5169669.875 30 348.990 0 POINT 8 SHP_POINT 10 667227.370 20 5169769.262 30 377.470 0 POINT 8 SHP_POINT 10 667105.197 20 5169158.624 30 313.540 0 POINT 8 SHP_POINT 10 667023.749 20 5169177.534 30 308.700 0 POINT 8 SHP_POINT 10 667097.098 20 5169234.343 30 319.710 0 POINT 8 SHP_POINT 10 667103.877 20 5169196.163 30 317.720 0 POINT 8 SHP_POINT 10 667175.021 20 5169748.573 30 362.210 0 POINT 8 SHP_POINT 10 666808.520 20 5170129.959 30 377.670 0 POINT 8 SHP_POINT 10 667082.839 20 5169291.802 30 322.480 0 POINT 8 SHP_POINT 10 667106.443 20 5169853.661 30 361.980 0 POINT 8 SHP_POINT 10 667184.764 20 5168983.056 30 317.680 0 POINT 8 SHP_POINT 10 666992.477 20 5170080.978 30 381.120 0 POINT 8 SHP_POINT 10 667096.772 20 5169750.983 30 353.030 0 POINT 8 SHP_POINT 10 666892.616 20 5169744.285 30 349.150 0 POINT 8 SHP_POINT 10 666831.349 20 5170056.690 30 373.250 0 POINT 8 SHP_POINT 10 667216.190 20 5169774.902 30 378.960 0 POINT 8 SHP_POINT 10 666987.247 20 5170058.469 30 379.090 0 POINT 8 SHP_POINT 10 666818.448 20 5169881.053 30 358.650 0 POINT 8 SHP_POINT 10 667271.399 20 5169737.762 30 370.850 0 POINT 8 SHP_POINT 10 666880.121 20 5169159.076 30 305.590 0 POINT 8 SHP_POINT 10 666922.695 20 5169725.535 30 349.700 0 POINT 8 SHP_POINT 10 666808.839 20 5169983.471 30 366.540 0 POINT 8 SHP_POINT 10 667239.131 20 5169941.649 30 367.040 0 POINT 8 SHP_POINT 10 667198.751 20 5169895.650 30 364.390 0 POINT 8 SHP_POINT 10 666921.295 20 5169705.026 30 348.250 0 POINT 8 SHP_POINT 10 666924.536 20 5169798.714 30 354.790 0 POINT 8 SHP_POINT 10 667096.172 20 5169772.953 30 355.870 0 POINT 8 SHP_POINT 10 667111.413 20 5169901.370 30 366.750 0 POINT 8 SHP_POINT 10 666874.666 20 5169745.045 30 348.690 0 POINT 8 SHP_POINT 10 667137.236 20 5169097.435 30 312.580 0 POINT 8 SHP_POINT 10 667085.768 20 5169178.284 30 312.250 0 POINT 8 SHP_POINT 10 666815.910 20 5170114.879 30 377.030 0 POINT 8 SHP_POINT 10 666903.431 20 5169165.385 30 306.000 0 POINT 8 SHP_POINT 10 666857.452 20 5169151.216 30 304.820 0 POINT 8 SHP_POINT 10 667092.888 20 5169253.822 30 320.750 0 POINT 8 SHP_POINT 10 666813.069 20 5169960.612 30 364.820 0 POINT 8 SHP_POINT 10 666823.830 20 5170098.639 30 376.080 0 POINT 8 SHP_POINT 10 667072.803 20 5169811.122 30 358.910 0 POINT 8 SHP_POINT 10 666985.192 20 5169466.399 30 332.820 0 POINT 8 SHP_POINT 10 666857.797 20 5169881.573 30 359.470 0 POINT 8 SHP_POINT 10 666820.909 20 5170020.421 30 369.580 0 POINT 8 SHP_POINT 10 667181.865 20 5169029.446 30 313.010 0 POINT 8 SHP_POINT 10 666788.601 20 5170177.748 30 379.810 0 POINT 8 SHP_POINT 10 667247.049 20 5169753.722 30 373.240 0 POINT 8 SHP_POINT 10 667184.572 20 5168712.231 30 305.290 0 POINT 8 SHP_POINT 10 667089.008 20 5169273.062 30 322.150 0 POINT 8 SHP_POINT 10 667067.948 20 5169183.054 30 311.310 0 POINT 8 SHP_POINT 10 666929.820 20 5169166.655 30 306.340 0 POINT 8 SHP_POINT 10 667124.116 20 5169114.025 30 313.360 0 POINT 8 SHP_POINT 10 667075.502 20 5169692.625 30 350.030 0 POINT 8 SHP_POINT 10 666811.701 20 5170235.077 30 384.970 0 POINT 8 SHP_POINT 10 667045.170 20 5169361.591 30 326.260 0 POINT 8 SHP_POINT 10 667229.080 20 5169744.062 30 364.750 0 POINT 8 SHP_POINT 10 667092.792 20 5169712.254 30 350.360 0 POINT 8 SHP_POINT 10 667174.575 20 5169049.505 30 312.220 0 POINT 8 SHP_POINT 10 667078.862 20 5169733.464 30 351.890 0 POINT 8 SHP_POINT 10 667214.750 20 5169745.462 30 363.280 0 POINT 8 SHP_POINT 10 666916.794 20 5169627.667 30 342.420 0 POINT 8 SHP_POINT 10 667080.731 20 5169556.717 30 332.960 0 POINT 8 SHP_POINT 10 667110.697 20 5169155.904 30 315.240 0 POINT 8 SHP_POINT 10 666826.319 20 5170038.860 30 371.410 0 POINT 8 SHP_POINT 10 666793.031 20 5170160.018 30 379.070 0 POINT 8 SHP_POINT 10 666995.587 20 5170124.707 30 385.680 0 POINT 8 SHP_POINT 10 667058.953 20 5169754.314 30 354.220 0 POINT 8 SHP_POINT 10 667145.902 20 5169903.360 30 365.750 0 POINT 8 SHP_POINT 10 667052.973 20 5169776.883 30 360.210 0 POINT 8 SHP_POINT 10 666926.236 20 5169843.263 30 358.620 0 POINT 8 SHP_POINT 10 667024.871 20 5169397.380 30 328.210 0 POINT 8 SHP_POINT 10 667260.409 20 5169746.722 30 371.970 0 POINT 8 SHP_POINT 10 667100.878 20 5169214.833 30 318.580 0 POINT 8 SHP_POINT 10 666837.088 20 5169894.223 30 360.380 0 POINT 8 SHP_POINT 10 667164.682 20 5168696.892 30 303.170 0 POINT 8 SHP_POINT 10 667197.174 20 5168965.197 30 319.640 0 POINT 8 SHP_POINT 10 667265.511 20 5169952.698 30 370.430 0 POINT 8 SHP_POINT 10 667077.582 20 5169671.485 30 348.270 0 POINT 8 SHP_POINT 10 667100.222 20 5169704.504 30 350.270 0 POINT 8 SHP_POINT 10 667093.292 20 5169692.574 30 349.330 0 POINT 8 SHP_POINT 10 666990.988 20 5170233.305 30 396.600 0 POINT 8 SHP_POINT 10 666919.340 20 5170272.615 30 396.840 0 POINT 8 SHP_POINT 10 667034.800 20 5169379.780 30 327.100 0 POINT 8 SHP_POINT 10 667053.540 20 5169343.861 30 325.310 0 POINT 8 SHP_POINT 10 666801.908 20 5169775.475 30 349.950 0 POINT 8 SHP_POINT 10 667060.013 20 5169731.414 30 351.670 0 POINT 8 SHP_POINT 10 666818.269 20 5169938.072 30 363.800 0 POINT 8 SHP_POINT 10 667277.939 20 5169723.972 30 369.780 0 POINT 8 SHP_POINT 10 666831.913 20 5166820.108 30 276.130 0 ENDSEC 0 EOF libspatialite-4.3.0a/test/check_gpkgGetImageFormat_png.c0000664000175000017500000001104612544707704020274 00000000000000/* check_gpkgGetImageFormat_png.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; void *cache = spatialite_alloc_connection (); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv ("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv ("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_png.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf ("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv (env); sqlite3_free (env); #else /* not WIN32 */ setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv ("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv ("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } sql_statement = "SELECT gpkgGetImageType(BlobFromFile(\"empty.png\"))"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg (db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf (stderr, "unexpected return value for first step: %i\n", ret); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) { fprintf (stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } if (strcmp ((const char *) sqlite3_column_text (stmt, 0), "png") != 0) { fprintf (stderr, "wrong image type: %s\n", sqlite3_column_text (stmt, 0)); return -33; } ret = sqlite3_step (stmt); if (ret != SQLITE_DONE) { fprintf (stderr, "unexpected return value for second step: %i\n", ret); return -34; } ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.3.0a/test/check_gpkgGetImageFormat_tiff.c0000664000175000017500000001105112544707704020434 00000000000000/* check_gpkgGetImageFormat_tiff.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; void *cache = spatialite_alloc_connection (); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv ("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv ("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_tiff.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf ("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv (env); sqlite3_free (env); #else /* not WIN32 */ setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv ("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv ("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } sql_statement = "SELECT gpkgGetImageType(BlobFromFile(\"empty.tif\"))"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg (db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf (stderr, "unexpected return value for first step: %i\n", ret); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) { fprintf (stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } if (strcmp ((const char *) sqlite3_column_text (stmt, 0), "tiff") != 0) { fprintf (stderr, "wrong image type: %s\n", sqlite3_column_text (stmt, 0)); return -33; } ret = sqlite3_step (stmt); if (ret != SQLITE_DONE) { fprintf (stderr, "unexpected return value for second step: %i\n", ret); return -34; } ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.3.0a/test/check_gpkgGetImageFormat_nonblob.c0000664000175000017500000000650212544707704021142 00000000000000/* check_gpkgGetImageFormat_nonblob.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; char *sql_statement; sqlite3_stmt *stmt; int ret; void *cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_gpkgGetImageFormat_nonblobsqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } sql_statement = "SELECT gpkgGetImageType(1000)"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "failed to prepare SQL statement: %i (%s)\n", ret, sqlite3_errmsg (db_handle)); return -30; } ret = sqlite3_step (stmt); if (ret != SQLITE_ERROR) { fprintf (stderr, "unexpected return value for first step: %i\n", ret); return -31; } /* TODO: check the error string */ ret = sqlite3_finalize (stmt); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.3.0a/test/check_srid_fncts.c0000664000175000017500000002575212544707704016073 00000000000000/* check_srid_fncts.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" static int test_srid (sqlite3 * sqlite, int extended) { /* testing all SRID functions */ int ret; const char *sql; sqlite3_stmt *stmt = NULL; sql = "SELECT srid, SridIsGeographic(srid), SridIsProjected(srid), " "SridHasFlippedAxes(srid), SridGetSpheroid(srid), SridGetPrimeMeridian(srid), " "SridGetDatum(srid), SridGetUnit(srid), SridGetProjection(srid), " "SridGetAxis_1_Name(srid), SridGetAxis_1_Orientation(srid), " "SridGetAxis_2_Name(srid), SridGetAxis_2_Orientation(srid) " "FROM spatial_ref_sys"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "SELECT FROM spatial_ref_sys: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { int flag; const char *value; int srid = sqlite3_column_int (stmt, 0); if (srid == 4326) { flag = sqlite3_column_int (stmt, 1); if (flag != 1) { fprintf (stderr, "4326: Unexpected IsGeographic result (%d)\n", flag); goto error; } flag = sqlite3_column_int (stmt, 2); if (flag != 0) { fprintf (stderr, "4326: Unexpected IsProjected result (%d)\n", flag); goto error; } flag = sqlite3_column_int (stmt, 3); if (flag != 1) { fprintf (stderr, "4326: Unexpected HasFlippedAxes result (%d)\n", flag); goto error; } if (extended) { value = (const char *) sqlite3_column_text (stmt, 4); if (strcasecmp (value, "WGS 84") != 0) { fprintf (stderr, "4326: Unexpected GetSpheroid result (%s)\n", value); goto error; } value = (const char *) sqlite3_column_text (stmt, 5); if (strcasecmp (value, "Greenwich") != 0) { fprintf (stderr, "4326: Unexpected GetPrimeMeridian result (%s)\n", value); goto error; } value = (const char *) sqlite3_column_text (stmt, 6); if (strcasecmp (value, "WGS_1984") != 0) { fprintf (stderr, "4326: Unexpected GetDatum result (%s)\n", value); goto error; } value = (const char *) sqlite3_column_text (stmt, 7); if (strcasecmp (value, "degree") != 0) { fprintf (stderr, "4326: Unexpected GetUnit result (%s)\n", value); goto error; } if (sqlite3_column_type (stmt, 8) == SQLITE_TEXT) { value = (const char *) sqlite3_column_text (stmt, 8); if (strcasecmp (value, "none") != 0) { fprintf (stderr, "4326: Unexpected GetProjection result (%s)\n", value); goto error; } } value = (const char *) sqlite3_column_text (stmt, 9); if (strcasecmp (value, "Latitude") != 0) { fprintf (stderr, "4326: Unexpected GetAxis_1_Name result (%s)\n", value); goto error; } value = (const char *) sqlite3_column_text (stmt, 10); if (strcasecmp (value, "North") != 0) { fprintf (stderr, "4326: Unexpected GetAxis_1_Orientation result (%s)\n", value); goto error; } value = (const char *) sqlite3_column_text (stmt, 11); if (strcasecmp (value, "Longitude") != 0) { fprintf (stderr, "4326: Unexpected GetAxis_2_Name result (%s)\n", value); goto error; } value = (const char *) sqlite3_column_text (stmt, 12); if (strcasecmp (value, "East") != 0) { fprintf (stderr, "4326: Unexpected GetAxis_2_Orientation result (%s)\n", value); goto error; } } } if (srid == 32632) { flag = sqlite3_column_int (stmt, 1); if (flag != 0) { fprintf (stderr, "32632: Unexpected IsGeographic result (%d)\n", flag); goto error; } flag = sqlite3_column_int (stmt, 2); if (flag != 1) { fprintf (stderr, "32632: Unexpected IsProjected result (%d)\n", flag); goto error; } flag = sqlite3_column_int (stmt, 3); if (flag != 0) { fprintf (stderr, "32632: Unexpected HasFlippedAxes result (%d)\n", flag); goto error; } if (extended) { value = (const char *) sqlite3_column_text (stmt, 4); if (strcasecmp (value, "WGS 84") != 0) { fprintf (stderr, "32632: Unexpected GetSpheroid result (%s)\n", value); goto error; } value = (const char *) sqlite3_column_text (stmt, 5); if (strcasecmp (value, "Greenwich") != 0) { fprintf (stderr, "32632: Unexpected GetPrimeMeridian result (%s)\n", value); goto error; } value = (const char *) sqlite3_column_text (stmt, 6); if (strcasecmp (value, "WGS_1984") != 0) { fprintf (stderr, "32632: Unexpected GetDatum result (%s)\n", value); goto error; } value = (const char *) sqlite3_column_text (stmt, 7); if (strcasecmp (value, "metre") != 0) { fprintf (stderr, "32632: Unexpected GetUnit result (%s)\n", value); goto error; } if (sqlite3_column_type (stmt, 8) == SQLITE_TEXT) { value = (const char *) sqlite3_column_text (stmt, 8); if (strcasecmp (value, "Transverse_Mercator") != 0) { fprintf (stderr, "32632: Unexpected GetProjection result (%s)\n", value); goto error; } } value = (const char *) sqlite3_column_text (stmt, 9); if (strcasecmp (value, "Easting") != 0) { fprintf (stderr, "32632: Unexpected GetAxis_1_Name result (%s)\n", value); goto error; } value = (const char *) sqlite3_column_text (stmt, 10); if (strcasecmp (value, "East") != 0) { fprintf (stderr, "32632: Unexpected GetAxis_1_Orientation result (%s)\n", value); goto error; } value = (const char *) sqlite3_column_text (stmt, 11); if (strcasecmp (value, "Northing") != 0) { fprintf (stderr, "32632: Unexpected GetAxis_2_Name result (%s)\n", value); goto error; } value = (const char *) sqlite3_column_text (stmt, 12); if (strcasecmp (value, "North") != 0) { fprintf (stderr, "32632: Unexpected GetAxis_2_Orientation result (%s)\n", value); goto error; } } } } else goto error; } sqlite3_finalize (stmt); return 1; error: if (stmt != NULL) sqlite3_finalize (stmt); return 0; } int main (int argc, char *argv[]) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -2; } /* Step #1: testing via "spatial_ref_sys_aux" */ ret = test_srid (db_handle, 1); if (!ret) { sqlite3_close (db_handle); return -3; } ret = sqlite3_exec (db_handle, "DROP VIEW spatial_ref_sys_all", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP VIEW error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -4; } ret = sqlite3_exec (db_handle, "DROP TABLE spatial_ref_sys_aux", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP VIEW error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -4; } /* Step #2: testing via WKT */ ret = test_srid (db_handle, 1); if (!ret) { sqlite3_close (db_handle); return -5; } ret = sqlite3_exec (db_handle, "UPDATE spatial_ref_sys SET srtext = ' '", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UPDATE WKT error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (db_handle); return -6; } /* Step #3: testing via proj4 */ ret = test_srid (db_handle, 0); if (!ret) { sqlite3_close (db_handle); return -7; } sqlite3_close (db_handle); spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_init2.c0000664000175000017500000002551212544707704014754 00000000000000/* check_init2.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(\"NONE\")", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata(\"NONE\") error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } ret = sqlite3_exec (handle, "SELECT InsertEpsgSrid(4326)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Insert SRID 4326 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -3; } #ifndef OMIT_EPSG /* only if full EPSG support is enabled */ ret = sqlite3_exec (handle, "SELECT InsertEpsgSrid(2998)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Insert SRID 2998 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -4; } #endif ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -5; } spatialite_cleanup_ex (cache); cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -6; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_get_table (handle, "SELECT InitSpatialMetadata(3.4)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result InitSpatialMetadata() bad result: %i/%i.\n", rows, columns); return -8; } if (strcmp (results[1], "0") != 0) { fprintf (stderr, "Unexpected result: InitSpatialMetadata() with non-text passed: %s.\n", results[1]); return -9; } sqlite3_free_table (results); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -10; } spatialite_cleanup_ex (cache); cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -11; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_get_table (handle, "SELECT InitSpatialMetadata(\"EMPTY\")", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result InitSpatialMetadata(\"EMPTY\") bad result: %i/%i.\n", rows, columns); return -13; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: InitSpatialMetadata(\"EMPTY\"): %s.\n", results[1]); return -14; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT InsertEpsgSrid(4326)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result InsertEpsgSrid(4326) bad result: %i/%i.\n", rows, columns); return -16; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: InsertEpsgSrid(4326): %s.\n", results[1]); return -17; } sqlite3_free_table (results); ret = sqlite3_get_table (handle, "SELECT InsertEpsgSrid(\"Non-integer\")", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result InsertEpsgSrid(\"Non-integer\") bad result: %i/%i.\n", rows, columns); return -19; } if (strcmp (results[1], "0") != 0) { fprintf (stderr, "Unexpected result: InsertEpsgSrid() with non-integer passed: %s.\n", results[1]); return -20; } sqlite3_free_table (results); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -21; } spatialite_cleanup_ex (cache); cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -22; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_get_table (handle, "SELECT InitSpatialMetadata(\"WGS84\")", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -23; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result InitSpatialMetadata(\"WGS84\") bad result: %i/%i.\n", rows, columns); return -24; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: InitSpatialMetadata(\"WGS84\"): %s.\n", results[1]); return -25; } sqlite3_free_table (results); #ifndef OMIT_EPSG /* only if full EPSG support is enabled */ ret = sqlite3_get_table (handle, "SELECT InsertEpsgSrid(3003)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -26; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result InsertEpsgSrid(3003) bad result: %i/%i.\n", rows, columns); return -27; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: InsertEpsgSrid(3003): %s.\n", results[1]); return -28; } sqlite3_free_table (results); #endif ret = sqlite3_get_table (handle, "SELECT InsertEpsgSrid(4326)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -29; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result InsertEpsgSrid(4326) (dupe) bad result: %i/%i.\n", rows, columns); return -30; } if (strcmp (results[1], "0") != 0) { fprintf (stderr, "Unexpected result: InsertEpsgSrid(4326) duplicate passed: %s.\n", results[1]); return -31; } sqlite3_free_table (results); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -32; } spatialite_cleanup_ex (cache); cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -33; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_get_table (handle, "SELECT InitSpatialMetadata(\"WGS84_only\")", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -34; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected result InitSpatialMetadata(\"WGS84_ONLY\") bad result: %i/%i.\n", rows, columns); return -35; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: InitSpatialMetadata(\"WGS84_ONLY\"): %s.\n", results[1]); return -36; } sqlite3_free_table (results); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -32; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.3.0a/test/check_virtualtable6.c0000664000175000017500000002053712544707704016515 00000000000000/* check_virtualtable6.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" struct test_step { const char *sql; const int num_rows; }; struct test_step steps[] = { {"select DATUM, Geometry from shapetest WHERE DATUM = 2450514.5;", 18}, {"select DATUM from shapetest WHERE DATUM < 2450514.5;", 0}, {"select DATUM from shapetest WHERE DATUM > 2450514.5;", 0}, {"select DATUM from shapetest WHERE DATUM >= 2450514.5;", 18}, {"select DATUM from shapetest WHERE DATUM <= 2450514.5;", 18}, {"select DATUM from shapetest WHERE DATUM = 2450514.5;", 18}, {"select Length, HOEHE from shapetest WHERE HOEHE = 0.0;", 18}, {"select Length, HOEHE from shapetest WHERE HOEHE = 1.0;", 0}, {"select Length, HOEHE, Geometry from shapetest WHERE HOEHE != 0.0;", 0}, {"select Length, HOEHE from shapetest WHERE Length > 0.0;", 18}, {"select Length, HOEHE from shapetest WHERE Length >= 0.0;", 18}, {"select Length, HOEHE from shapetest WHERE Length <= 0.0;", 0}, {"select Length, HOEHE from shapetest WHERE Length > 1.0;", 0}, {"select Length, HOEHE from shapetest WHERE Length > 0.1;", 10}, {"select Length, HOEHE from shapetest WHERE Length < 0.1;", 8}, {"select Length, HOEHE from shapetest WHERE Length >= 0.1;", 10}, {"select Length, HOEHE from shapetest WHERE HOEHE = 0;", 18}, {"select Length, HOEHE from shapetest WHERE HOEHE >= 0;", 18}, {"select Length, HOEHE from shapetest WHERE HOEHE <= 0;", 18}, {"select Length, HOEHE from shapetest WHERE HOEHE > 0;", 0}, {"select Length, HOEHE from shapetest WHERE HOEHE < 0;", 0}, {"select Length, HOEHE from shapetest WHERE HOEHE = 1;", 0}, {"select Length, HOEHE from shapetest WHERE HOEHE <= 1;", 18}, {"select Length, HOEHE from shapetest WHERE HOEHE >= 1;", 0}, {"select Length, HOEHE from shapetest WHERE HOEHE < 1;", 18}, {"select Length, HOEHE from shapetest WHERE HOEHE > -1;", 18}, {"select Length, HOEHE from shapetest WHERE HOEHE < -1;", 0}, {"select Length, HOEHE from shapetest WHERE HOEHE <= -1;", 0}, {"select * from shapetest LIMIT 5 OFFSET 2;", 5}, {NULL, 0} }; int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; int i; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest USING VirtualShape('shp/merano-3d/roads', CP1252, 25832);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "DROP TABLE shapetest;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -3; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest USING VirtualShape(\"shp/merano-3d/roads\", 'CP1252', -1);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "DROP TABLE shapetest;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE unquoted USING VirtualShape(shapetest1, UTF8, -1);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } ret = sqlite3_exec (db_handle, "DROP TABLE unquoted;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE shapetest USING VirtualShape('shp/merano-3d/roads', \"CP1252\", 25832);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } for (i = 0; steps[i].sql; ++i) { ret = sqlite3_get_table (db_handle, steps[i].sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } if (rows != steps[i].num_rows) { fprintf (stderr, "Unexpected num of rows for test %i: %i.\n", i, rows); return -10; } sqlite3_free_table (results); } ret = sqlite3_exec (db_handle, "DROP TABLE shapetest;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nosuchfile USING VirtualShape(nosuchfile, UTF8, -1);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualShape error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } ret = sqlite3_exec (db_handle, "DROP TABLE nosuchfile;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE toofewargs USING VirtualShape(\"shapetest1\", UTF8);", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "VirtualShape unexpected result: %i\n", ret); return -14; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE toomanyargs USING VirtualShape(\"shapetest1\", UTF8, 4386, 1, 1);", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "VirtualShape unexpected result: %i\n", ret); return -15; } sqlite3_free (err_msg); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/gpkg_test_extrasrid.gpkg0000664000175000017500000011000012544707704017337 00000000000000SQLite format 3@ H$'GP10H-æ Î$ûöñìçâÝØÓÎ#"!      LLK½ƒ355† tablegpkg_tile_matrix_setgpkg_tile_matrix_setCREATE TABLE [gpkg_tile_matrix_set] ([table_name] TEXT NOT NULL PRIMARY KEY, [min_x] DOUBLE NOT NULL, [max_y] DOUBLE NOT NULL, [max_x] DOUBLE NOT NULL, [srs_id] INTEGER NOT NULL, [min_y] DOUBLE NOT NULL, CONSTRAINT fk_gtms_table_name FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name), CONSTRAINT fk_gtms_srs FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys (srs_id))G[5indexsqlite_autoindex_gpkg_tile_matrix_set_1gpkg_tile_matrix_set‚o//… tablegpkg_data_columnsgpkg_data_columnsCREATE TABLE [gpkg_data_columns] ([title] TEXT, [mime_type] TEXT, [description] TEXT, [constraint_name] TEXT, [name] TEXT, [table_name] TEXT NOT NULL, [column_name] TEXT NOT NULL, CONSTRAINT pk_gdc PRIMARY KEY (table_name, column_name), CONSTRAINT fk_gdc_tn FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name))AU/indexsqlite_autoindex_gpkg_data_columns_1gpkg_data_columns  ³³›ƒe;;†atablegpkg_metadata_referencegpkg_metadata_referenceCREATE TABLE [gpkg_metadata_reference] ([timestamp] DATETIME NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')), [md_file_id] INTEGER NOT NULL, [table_name] TEXT, [row_id_value] INTEGER, [md_parent_id] INTEGER, [column_name] TEXT, [reference_scope] TEXT NOT NULL, CONSTRAINT crmr_mfi_fk FOREIGN KEY (md_file_id) REFERENCES gpkg_metadata(id), CONSTRAINT crmr_mpi_fk FOREIGN KEY (md_parent_id) REFERENCES gpkg_metadata(id))‚b''…tablegpkg_metadatagpkg_metadata CREATE TABLE [gpkg_metadata] ([id] INTEGER CONSTRAINT m_pk PRIMARY KEY ASC AUTOINCREMENT NOT NULL UNIQUE, [md_scope] TEXT NOT NULL DEFAULT 'dataset', [mime_type] TEXT NOT NULL DEFAULT 'text/xml', [md_standard_URI] TEXT NOT NULL DEFAULT 'http://schemas.opengis.net/iso/19139/', [metadata] TEXT NOT NULL DEFAULT (''))   íí'gpkg_metadata   U§²ñ9M'indexsqlite_autoindex_gpkg_metadata_1gpkg_metadata P++Ytablesqlite_sequencesqlite_sequence CREATE TABLE sqlite_sequence(name,seq)‚ ++ƒGtablegpkg_extensionsgpkg_extensions CREATE TABLE [gpkg_extensions] ([scope] TEXT NOT NULL, [definition] TEXT NOT NULL, [table_name] TEXT, [extension_name] TEXT NOT NULL, [column_name] TEXT, CONSTRAINT ge_tce UNIQUE (table_name, column_name, extension_name))= Q+indexsqlite_autoindex_gpkg_extensions_1gpkg_extensions ‚ 55ƒ;tablegpkg_spatial_ref_sysgpkg_spatial_ref_sysCREATE TABLE [gpkg_spatial_ref_sys] ([organization] TEXT NOT NULL, [definition] TEXT NOT NULL, [organization_coordsys_id] INTEGER NOT NULL, [description] TEXT, [srs_name] TEXT NOT NULL, [srs_id] INTEGER PRIMARY KEY)ó úóØ4ž    ÖÖŠŃ1 ''†!tablegpkg_contentsgpkg_contentsCREATE TABLE [gpkg_contents] ([last_change] DATETIME NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')), [description] TEXT DEFAULT '', [data_type] TEXT NOT NULL, [table_name] TEXT PRIMARY KEY, [min_x] DOUBLE, [max_y] DOUBLE, [max_x] DOUBLE, [srs_id] INTEGER, [identifier] TEXT UNIQUE, [min_y] DOUBLE, CONSTRAINT fk_gc_r_srs_id FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys(srs_id))9 M'indexsqlite_autoindex_gpkg_contents_1gpkg_contents9M'indexsqlite_autoindex_gpkg_contents_2gpkg_contents    PPjµ„77‡Mtablegpkg_geometry_columnsgpkg_geometry_columnsCREATE TABLE [gpkg_geometry_columns] ([geometry_type_name] TEXT NOT NULL, [table_name] TEXT NOT NULL, [m] TINYINT NOT NULL, [z] TINYINT NOT NULL, [srs_id] INTEGER NOT NULL, [column_name] TEXT NOT NULL, CONSTRAINT pk_geom_cols PRIMARY KEY (table_name, column_name), CONSTRAINT uk_gc_table_name UNIQUE (table_name), CONSTRAINT fk_gc_tn FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name), CONSTRAINT fk_gc_srs FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys (srs_id))I]7indexsqlite_autoindex_gpkg_geometry_columns_1gpkg_geometry_columnsI]7indexsqlite_autoindex_gpkg_geometry_columns_2gpkg_geometry_columns   GGÆ‚|EE„{tablegpkg_data_column_constraintsgpkg_data_column_constraintsCREATE TABLE [gpkg_data_column_constraints] ([min] NUMERIC, [max] NUMERIC, [minIsInclusive] BOOLEAN, [description] TEXT, [constraint_name] TEXT NOT NULL, [maxIsInclusive] BOOLEAN, [value] TEXT, [constraint_type] TEXT NOT NULL DEFAULT 'enum', CONSTRAINT gdcc_ntv UNIQUE (constraint_name, constraint_type, value))WkEindexsqlite_autoindex_gpkg_data_column_constraints_1gpkg_data_column_constraintsƒ^--†otablegpkg_tile_matrixgpkg_tile_matrixCREATE TABLE [gpkg_tile_matrix] ([pixel_y_size] DOUBLE NOT NULL, [tile_width] INTEGER NOT NULL, [tile_height] INTEGER NOT NULL, [matrix_height] INTEGER NOT NULL, [pixel_x_size] DOUBLE NOT NULL, [matrix_width] INTEGER NOT NULL, [table_name] TEXT NOT NULL, [zoom_level] INTEGER NOT NULL, CONSTRAINT pk_ttm PRIMARY KEY (table_name, zoom_level), CONSTRAINT fk_tmm_table_name FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name))   33t³?S-indexsqlite_autoindex_gpkg_tile_matrix_1gpkg_tile_matrix‚<Q-„triggergpkg_tile_matrix_zoom_level_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_zoom_level_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: zoom_level cannot be less than 0') WHERE (NEW.zoom_level < 0); END‚JQ-„!triggergpkg_tile_matrix_zoom_level_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_zoom_level_update' BEFORE UPDATE of zoom_level ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: zoom_level cannot be less than 0') WHERE (NEW.zoom_level < 0); END Ê›…ž‰IC+EPSGPROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["Popular Visualisation CRS",DATUM["Popular_Visualisation_Datum",SPHEROID["Popular Visualisation Sphere",6378137,0,AUTHORITY["EPSG","7059"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6055"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4055"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],AUTHORITY["EPSG","3785"],AXIS["X",EAST],AXIS["Y",NORTH]]WGS 84 - Spherical MercatorPseudo-Mercator-5NONEundefinednullUndefined Geographic,ÿÿÿÿÿÿÿÿÿ3NONEundefinedÿnullUndefined Cartesian Ø…<Ø4‰}O7EPSGPROJCS["OSGB 1936 / British National Grid",GEOGCS["OSGB 1936",DATUM["OSGB_1936",SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],AUTHORITY["EPSG","6277"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4277"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",49],PARAMETER["central_meridian",-2],PARAMETER["scale_factor",0.9996012717],PARAMETER["false_easting",400000],PARAMETER["false_northing",-100000],AUTHORITY["EPSG","27700"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]l4OSGB 1936 / British National GridBritish National Grid‚$¡f„%EPSGGEOGCS["WGS 84", DATUM["WGS_1984", SPHEROID["WGS 84",6378137,298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG"," 8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4326"]]ænullGCS_WGS_1984 ™ß¾™!¶ 9EPSGdummy2abcddummy2bogus2¶ 8EPSGdummy 8dummybogus¶ 7 EPSGdummy3dummy3bogus3 ^µ‚DU-„triggergpkg_tile_matrix_matrix_width_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_matrix_width_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: matrix_width cannot be less than 1') WHERE (NEW.matrix_width < 1); END‚TU-„1triggergpkg_tile_matrix_matrix_width_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_matrix_width_update' BEFORE UPDATE OF matrix_width ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: matrix_width cannot be less than 1') WHERE (NEW.matrix_width < 1); END‚HW-„triggergpkg_tile_matrix_matrix_height_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_matrix_height_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: matrix_height cannot be less than 1') WHERE (NEW.matrix_height < 1); END XX´‚YW-„9triggergpkg_tile_matrix_matrix_height_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_matrix_height_update' BEFORE UPDATE OF matrix_height ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: matrix_height cannot be less than 1') WHERE (NEW.matrix_height < 1); END‚IU-„triggergpkg_tile_matrix_pixel_x_size_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_pixel_x_size_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: pixel_x_size must be greater than 0') WHERE NOT (NEW.pixel_x_size > 0); END XX´‚YU-„;triggergpkg_tile_matrix_pixel_x_size_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_pixel_x_size_update' BEFORE UPDATE OF pixel_x_size ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: pixel_x_size must be greater than 0') WHERE NOT (NEW.pixel_x_size > 0); END‚IU-„triggergpkg_tile_matrix_pixel_y_size_insertgpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_pixel_y_size_insert' BEFORE INSERT ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: pixel_y_size must be greater than 0') WHERE NOT (NEW.pixel_y_size > 0); END ¤¤‚YU-„;triggergpkg_tile_matrix_pixel_y_size_updategpkg_tile_matrixCREATE TRIGGER 'gpkg_tile_matrix_pixel_y_size_update' BEFORE UPDATE OF pixel_y_size ON 'gpkg_tile_matrix' FOR EACH ROW BEGIN SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: pixel_y_size must be greater than 0') WHERE NOT (NEW.pixel_y_size > 0); ENDlibspatialite-4.3.0a/test/check_virtualtable1.c0000664000175000017500000003213712544707704016507 00000000000000/* check_virtualtable1.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Ahmadou Dicko Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #ifdef _WIN32 #include "asprintf4win.h" #endif int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ sqlite3 *db_handle = NULL; char *sql_statement; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE places USING VirtualText(\"testcase1.csv\", UTF-8, 0, POINT, DOUBLEQUOTE);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualText error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } asprintf (&sql_statement, "select col003, col005, col006, col008 from places WHERE col003 = \"Canal Creek\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != 2) || (columns != 4)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -11; } if (strcmp (results[0], "COL003") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -12; } if (strcmp (results[4], "Canal Creek") != 0) { fprintf (stderr, "Unexpected error: name4() bad result: %s.\n", results[4]); return -13; } if (strncmp (results[5], "-27.86667", 9) != 0) { fprintf (stderr, "Unexpected error: lat1() bad result: %s.\n", results[5]); return -14; } if (strncmp (results[6], "151.51667", 9) != 0) { fprintf (stderr, "Unexpected error: lon2() bad result: %s.\n", results[6]); return -15; } if (strcmp (results[8], "Canal Creek") != 0) { fprintf (stderr, "Unexpected error: name8() bad result: %s.\n", results[8]); return -16; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "BEGIN;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "BEGIN error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } ret = sqlite3_exec (db_handle, "DELETE FROM places WHERE col015 > 100000;", NULL, NULL, &err_msg); if (ret != SQLITE_READONLY) { fprintf (stderr, "UPDATE error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "ROLLBACK;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "ROLLBACK error: %s\n", err_msg); sqlite3_free (err_msg); return -22; } ret = sqlite3_get_table (db_handle, "SELECT ROWNO, col003, col015 FROM places WHERE col015 > 100000", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -23; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -24; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col002 FROM places WHERE col001 > 2172517 AND col001 <= 2172519", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -25; } if ((rows != 2) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -26; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col002 FROM places WHERE col001 >= 2172517 AND col001 < 2172519", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -27; } if ((rows != 2) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -28; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col002 FROM places WHERE col001 = 2172517", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -29; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -30; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col002 > 'Canberra' AND col002 <= 'Canbrae'", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -31; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -32; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col002 >= 'Canberra' AND col002 < 'Canbrae'", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -33; } if ((rows != 2) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -34; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col002 = 'Canbrae'", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -29; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -30; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE ROWNO = 5", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -31; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -32; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 > 149.0 AND col006 <= 149.1", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -33; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -34; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 >= 149.1 AND col006 < 149.2", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -35; } if ((rows != 2) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -36; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 = 149.1", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -37; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -38; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 >= 149 AND col006 < 150", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -39; } if ((rows != 4) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -40; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col006 > 149 AND col006 <= 150", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -41; } if ((rows != 4) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -42; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col012 = 23940.0", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -43; } if ((rows != 2) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -44; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col012 >= 20000.0 AND col012 < 24000.0", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -45; } if ((rows != 2) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -46; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT col001 FROM places WHERE col012 > 20000.0 AND col012 <= 24000.0", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -45; } if ((rows != 2) || (columns != 1)) { fprintf (stderr, "Unexpected error: select columns bad result2: %i/%i.\n", rows, columns); return -46; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "DROP TABLE places;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -47; } sqlite3_close (db_handle); spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_get_normal_zoom.c0000664000175000017500000002313612544707704017122 00000000000000/* check_get_normal_zoom.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_get_normal_zoom.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* create tables to support future testing */ ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesTable(\"test1_matrix_tiles\", 4326, -180.0, -90.0, 180.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesTable() float bounds result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -3; } /* create matrix levels 0, 1 and 4 */ ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesZoomLevel(0) result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 1, 360, 180)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesZoomLevel(1) result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -5; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4, 360, 180)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesZoomLevel(4) result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -6; } ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error1: %s\n", err_msg); sqlite3_free (err_msg); return -9; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); sqlite3_free_table (results); return -10; } if (strcmp (results[1 * columns + 0], "4") != 0) { fprintf (stderr, "Unexpected result 0 (got %s, expected 4)", results[rows * columns + 0]); sqlite3_free_table (results); return -11; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 1)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error 2: %s\n", err_msg); sqlite3_free (err_msg); return -12; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -13; } if (strcmp (results[1 * columns + 0], "3") != 0) { fprintf (stderr, "Unexpected result 1 (got %s, expected 3)", results[rows * columns + 0]); return -14; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 4)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error 3: %s\n", err_msg); sqlite3_free (err_msg); return -15; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); sqlite3_free_table (results); return -16; } if (strcmp (results[1 * columns + 0], "0") != 0) { fprintf (stderr, "Unexpected result 4(got %s, expected 0)", results[rows * columns + 0]); sqlite3_free_table (results); return -17; } sqlite3_free_table (results); /* test an out-of-range zoom number - expect exception */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 5)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for overrange zoom level, got %i\n", ret); sqlite3_free (err_msg); return -18; } if (strcmp (err_msg, "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels") != 0) { fprintf (stderr, "Unexpected error message for overrange zoom level: %s\n", err_msg); sqlite3_free (err_msg); return -19; } sqlite3_free (err_msg); ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", -1)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for underrange zoom level, got %i\n", ret); sqlite3_free (err_msg); return -20; } if (strcmp (err_msg, "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels") != 0) { fprintf (stderr, "Unexpected error message for underrange zoom level: %s\n", err_msg); sqlite3_free (err_msg); return -21; } sqlite3_free (err_msg); /* test bad table name */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"no_such_table\", 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for bad table name level, got %i\n", ret); sqlite3_free (err_msg); return -22; } if (strcmp (err_msg, "gpkgGetNormalZoom: tile table not found in gpkg_tile_matrix") != 0) { fprintf (stderr, "Unexpected error message for bad table name: %s\n", err_msg); sqlite3_free (err_msg); return -23; } sqlite3_free (err_msg); /* test bad argument types */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(3, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for bad arg1 type, got %i\n", ret); sqlite3_free (err_msg); return -26; } if (strcmp (err_msg, "gpkgGetNormalZoom() error: argument 1 [tile_table_name] is not of the String type") != 0) { fprintf (stderr, "Unexpected error message for bad arg1 type: %s\n", err_msg); sqlite3_free (err_msg); return -27; } sqlite3_free (err_msg); /* test bad argument types */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0.2)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for bad arg2 type, got %i\n", ret); sqlite3_free (err_msg); return -28; } if (strcmp (err_msg, "gpkgGetNormalZoom() error: argument 2 [inverted zoom level] is not of the integer type") != 0) { fprintf (stderr, "Unexpected error message for bad arg2 type: %s\n", err_msg); sqlite3_free (err_msg); return -29; } sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.3.0a/test/describefeaturetype.wfs0000664000175000017500000000364012544707704017203 00000000000000 libspatialite-4.3.0a/test/tile111.jpeg0000664000175000017500000001403512544707704014453 00000000000000ÿØÿàJFIFÿÛC  !"$"$ÿÛCÿÂ"ÿÄÿÄÿÚ ý;Çìzü_—Ðáñûx¾§™vöx>ª[G’À¸«¨#—Qóóô9ùúxuí–ráî½3ñý]þ,ýmx=½ÝºÚ–??·žöø¯£–s>-ý_??W‹ÛÚKóHRQ(“ïŽ5ò=}ñ™Û—­Ë¯Õó3¬VÓ6l/>=¼+ÝÓ–ºùóèÏIö¼|ú”²i@J€¤§‹«‡Æú3sÞ»fÕçß«ÅÞYôx[#Éësן½PnJ€,z5†ç\ùsìáó}›Õëâœfç†/ªY¹@ )„ª‰@+ŸDqì ë‘æöMà (’Š ( € Š€ P€¤¨ !B  R—RäP I,-)DÔD¶” ‚Ë^’òºöç~oFœ{ysêç¬ùôöã:ôpígŸ~5¬ë±›®2¹õígÌÏÓãÓ—¬uåE{mž_V3Û'²Ó¦nmLË¿Lz}|{fêk9ÖS6vÄÑzÆu9k•5ÏH¹Ñ?§É©ÏXß§Í×—¶ù=?§²Ç——¾W‡Óª^=¸êfkV]óܽ33Î;qé—|Lfç;šš¹™ÉŸ/£‡nTtåí©äõi‚g:o|zÅË$IZÌSR—yÞWŸLyÖÙ¦¢xú<Ýyn9{dÏ›ÕuÈu˜%T‚Ê]MCQHLš[5–¹ÙÆç}üáséË>UˆT¥ Z7é™É¨ÕM[XsjYÀÏ^:ÇDpôÔ¢¬€)5)Q•`޼´nÙ(ãÛ)æÇ«–ó—>½¸m/M¹¥¸¦®,Va»f™†˜¦˜×›ß=FÙ͋ϟoóµ\ÿÿÄ( !10@A2"B3pÿÚ]K €aXB,*—³Dvª34ÌÚ_›Ú)9Ž—ç/5*5òKªk‘t™ªÊ%7`ã‹û€¿m´+¿5ºnEDªÔþ@Þ’U/Å*Lé©Î%`½17êçþz=ö2³0nLj-D'ªLQSVçuïQ '9MÏ uäX‹¿€Sû7`á*˜Žã¤šuñEð f†—3oÎÓ#Sĉ‚NÔ‡}ãrT#’ÚwÉRúë4¤Š~†ÿ (… ’ òœÕJ›Znî)å>MFäÚM-qÄcÀ9íÉ4Gù^.|¨6àÚ€Ðç!OFš,rà¡L¬ _ß+¬AiÙÖL{` A†M2…ÊsMd>Â)·sNn:ÅfÞQr¨U02Ö,QAMÞ6-4¢Âå9:IgæÒ‚‚žé"Χ=M6VU*5ÔÒc…ztñ¬Xÿ㽕ÒÑÏâDØ ›,QÓ*§ÔvÊ!EÅɰR¥N·qÛžØìÕ@öM‚•*{çL§pÑ“à/0ŽçÍ%À缑«„÷<“¥Èð|™Ó ÕMÇ5îõR…!KVAd…“T…“VMY5dÕ“VAdAdAHRAdÕ“VMY5dÕ“Q-NsS\Õ“gÿÄ$ 1!0@QAPÿÚ?[ƒBªnÖ=-CÒv÷hô´Â'Q„á;l*§H@Á”LÜÇKD('õ•ZƼ·’sÀ@…)•ȧ;WHÿ-ŽÒSiûA°‹ œ Ð<Äø‰F’"/%Àz:è;=ç B"9ÊÊÿÄ) !10@Q"#2APaÿÚ?e (ÂåZ§Pùf…Gsüî8T«Ä Ú¢·h ìÉÌÜaÆp¡s4ìΜͻ&eÆ;Ìšœ>´ý¿äV ,lÖ%5Í>.£Ô(yb¨QCvNUÈCNtø…±üMÙ¡ãcãWý¢cTý}Óãfæ"rŠ©ŸDoñÍ6’ð-L¬ †ë´Æ¤ >³$Ïñ \a5æ'€—\. Éó~7±Dm£Šð®5Ó·ãé&ÊôÄ=‚øöûÃÿÄ*1!0 "@AQqPa2pBRÿÚ?Nð²ŸBx©Çµ¼iõ„jBŽËwv¡].þÖ\{Y»ð¿t~Ö÷Ú-›K-ÚéÈî¾ÓA SwÔ}¾ÛפýõZí Ísªíý™SËŠ»­¡4RÃ2©$Ie´-ø¯âl´éKïgÑÏMº:ùN'‡ëªe›å}~ËvÐÂ…„Æðz ,›`©Mne,T&"ø þëà¤) B¤) B¤) B¤) B¤) B¤) B¤) B¤) B¿ÿÄ)!1 AQañ0@q‘ᡱÁÑPÿÚ?!*ÇQ’Üaù5ÅÍú‰ÅïàµþÄÚ¿Ã$½Îü^íÂ;êwxU³7y>åá ä%ÚÿÁ^rÔ¡±‹ýà Æ÷ßàÏ8Ù´“ßc8yj]ð'ê ƒ¹÷I#=ú²–‘ätCXqfìì5F¹i5ƒ%$ÏÒjÖ­ #mmï¡k’>b…Ù–Þ31")5&ª”,v‹P^îÌFÉjÂhH‡ïÒÜB_P‘ô)<±_"5‚Ü IJ¦ç­éiÛ£ŠTWF6}ié§ÖÜØûÒ.FÆOA=ôbt5­ŽÂdvðv/!*¤Û%[²ñµ•²)?Ò6¯a¿¨Q(”ëIJXŽÂèS-óg[f×ÐhØõ^mèÍ÷ €Äƈ٥[/GÛ›éÇØ£B±O:dïc5¬Á² ï)éêAýÙ]$ãfz3ªúS3B¾¯ƒ°q‹b/§E)d{]PĪhMj4e¢Æ±¢/ÈÌ~›£i±×ö;vïÖÇnHó¿S_ͦYpìZcáRÙ›‘\¼Q“U|ËUCqêZ §¯C¥”Éoˆ_ßwcÊ\¦Œ4Ôû$_ ñ~Ej½®>4ë_û¯çWɯ“#9œ4QÒâtÔ-¶›#–âÌYQÝæïü‡‡3¢qz)M'Hl,±"ú‰iëh£»Eá *eõ`kÂ!fY<‰™ƒÓA¢#É‘»BÄ^Œ´Ü %äÏè2¶šû±ú‘«[ì*äGü(4¡èW‚K#6ïvÜV§S\ F¸¡¤a¬÷F¾ƒ›»BkÏ1A¤‚Bo&Y’x£ÃƒÂ–~¼%Ãâ%àôcÀØox!‘©Dt+€H#¡yc.EÄ!h „ÃÃSõb¢(dÉ¢Óþÿ% ÙW¶ ͹~©7…ÊÃ-½3ü“ãUù†¨°õjòy!"b;ú™ÆèŠ.7ä¢rˆ-qx=Wx#·nW –f‰Þ„Z‚|¥äÀ\ ^)xf?@Zå¨ú_(B –Í‹ ÄÊRñ“Áe—>ÂáðŸ-ð¦â‚ðø]N‚ã\7³²³×¢à¥)Fæõ¥ÂènWW¡£.Š6R”¿ ¦|¢¸'—Ym÷o¥üT…ÐÙx„ ø¯r“ú>‹Ò¾éoˆ ÅÃ=B ¬òé‹‚c|î.ël¤×åÂé_"±Áô>â*)Nâs!|¥‚}F:]N޶ïÜÊ‘Êí¿Sß~=ø÷£Ýv=ø_²ïz=È_²=È÷#Ýv=Ø÷cÝ~ï…ûa~È÷#Ür=È÷"_öyúWB)}-šŸÌÿÚ €ø· _™ðppÔœp/'ËýF„Ï,”à¾wŽJ)¡„i 5 L0ˆ—Z@|u³,0@˜I1Ñ( ‘D@‰™  ÄIÜ °:$ŸË2ùj*\f”e°ô¦¿2ØPÜü"¾ÈÒ¹6cú5PÇ—»èìÿˆ$–ëÄ8 ,‚x솳5¤èÞQvöûýÎÐå0ñ°Î* °9xcsùàšG¯½G®¾³UH?ÿÄ! 10AQ@qÿÚ?ˆ EøÅhõ‚½ÍG°b1該 ¨="¨¨z…{ÁÊ¥5öm*(a<>ÌOîE¡[/ùV¡¡6ÂkïíÇm_‚ˆe®âDVà?/\ßÜ'®}Ku*µxÓ)`4'ÇüNÂJv#DOiòb*q@Q sT Ž.àE—Šûz—.\¸ÊÅà‹Áôr8‘á]8¿å—¾oÊ{-"*sråËÅË—^UD3ÿÄ$!1 AQ0aq@¡ÑðÿÚ?AÁŒ™Èõ(s÷ÔßpoÔÜ" L´ÿ|Â4’[Ó ]ϼ©s¹aw{Š£}¥Ôù@Ææá—Šßǹ«Z>ÒÀ+P“ØÇ?Å kßâ<|ª€9LRÛ‚MH7>?œV u¡_Aå‡Q%âkÞ¸Öú¨%0p•/iì ¿×~ºÃÁÔ³²î(wÆÉdê0BgOÊ{IlRü0V_ˆ>‘ÌZ¶Â`A¸­ÅjUE¸"©oSÔb¥M%%Ô`@À Êœ¦ˆ ©QŒ'ebõX X.*•¦5ÀNKÅÆõŠó©XLM°D³ÉÀb¢G7OÿÄ'!1AQaq‘ñ ¡±áðÑÁÿÚ?´nÛƒŽƒ”ƒ°ldWïøˆÁsƒä_~.<ªPÚésbª™K.[«K3¯lµ·»¼Æ—@mYE,ô¼Ì€°9hƒEµœ³#¥›§$°Ý·»¶åŽ¥ÅÞ¡7{k%˜À>ääöûŒÒgæu„u Øš—žXˆ½G_LÜØbx€Û‚ *ßæfÙx¢%SBtB6þxP"‚Ö “Uü“ëñwþ¹Z|/Ê jhÓSÑÃå™áÔhÆtNÊ˸w7fñÑ÷Mü@ ¬JÍÖ`$›jæw͈ó o•çÄyÌ}ǰ±(KiŸP¦@]D×? †(îP…€¤el-ª®üÞú ¹m‹¯õrÙÖ?á1¯EFîãêå·Â”åðLS@u{Œ@K•g¸ø4›:˜¿1`ܾ $ fgémÌé ¶‘(ŒRc±2bÄ ßr”8ø•µ ê\Yv®â‘-c¢d”ñTKî‰~ˆ4¸T¼ \j§L%ãC[¤hhˆKr…@ì~Å”*îëhw»hêãa…0¶V˜:¹…ë˜M—CXCp- zܨ%°àýV̲j_¢Rs¶u‚5Jâ¾(ÖÏ +~X©‘+Ø={QB ‘øs:p ÊÎø¼â9–Èjô ×÷·ÄbU WŸõF±±±§x¼ ªv81Üoô˜Ê¯|3¯Ò£´²½Ä#.æ¡ñÂÜHÛ§Ä¢ qYŽ?¡Ô»yp ‰pä‹+1Áo–0U†K•g‰JÉvÀ›†9¿3©QÜX™¹ÔÝܼÂo€¦<7 sxJŒÍÅ̬ÜuK›„+“fø³Sâ3¾>eO‰s¸Ë¹›„9Öæø\Ô.:ƒ5/&e× %æa™¹aŽŽã¨70Kæé¨$Äc«†H71â%Â]K'\(î51Y…JÏpÇPq%‡6•3xŒq:º„¬ÜÙ)<8áƒs~§zC\/¼8UÔ%fnR>xÔG}JWLªê#zež™Ÿ”øÌ³Ó2_¤j•Çñ6c2ÝŒÍi”øù”KÅÌÙA‰”Ý" R®êãX/ B€C©K¡Ä°·÷€ž²aOp*h5IW3z”ø–M2“ÊS>>e«LÏœKtË|Ëune¾smÄÒîl6Õl[ažà¨ô]ËJÿD²>ăÑtÙeZ­Ü`GÌeúõV]¹0 (Ô;(D¹j·Hµ Øv HzûaàU°1ôTZŠx`KMål׈ý ¡¢Áeç3åfM2ß;—å2¤È]C ýŒJzhrc¶ªe ú»,xyñó "Bà@¨ŠÂX@V‰‘xø– S‚ Ê—L•{•*n\HJŒ4GxûL…Ê,­Bà Á"jU°ÒBûzjê;AúókµsrËA™FðM‹}X-öÕºìðõP“8¹W쵌yõª3«º¯ë1 J1YÀ¢,ÆÃ‹.s©¦eEFš‚ÞÙ " J°<ÌT­M¼,̤BÙÝAî4µâ"ÌÔWHØÆ9¦æ1¡6 ²ñTz—¾cm¯‘qqœZ°²ÔÊã¾:â„wsHÕ×RÀĺU3* 4E`‡rÖ¥@©pÙÄ›F\L˜ýŽV@)Œ[7-Vñw,¬4ÄÁ8żؽA¨}FY¸®Ú³K̹´u¬N¤ZÓf ¡#ÙkîW †{&Я)-æ/¾3*0à ̼E†æjšxà°]3æä˜Üî¦a4¥dbüs‹Ã KƒÅçƒ^c„ÊQ†¦“¡\;«¨( =†!¹ïYâ)råÁý ¾‰®‰Ldn óÁ˜[†eÊßs"5ü0nwÃv,¸þ…ñ¹R¡0Kƒ/‰Y“õžXa±•Æø4ÖŸp‡uª—©§Äw\¹rá–rƶø!±eÅJÑ5üG–Y0Gešϳ9¡Oö!W«;ÄÙ|BáËÁ+™qgu3ûÀ»L1 ÂÁ¦ ÙÜ3Öâ0Üšz”b0xÜÃ"}D%ÛfÞ¼J%™"@e@†&¥ÊÄu>!V/²ªX`ÏS;Ö¥†•+Ô©d]T­¥=´À^ ­vJ¸Tp|~Î~??‡õ9—ÿ·þyøü¡_³ŸÓñ?kêò‡þyø<£ÏÃãý6~?—ÿË}ž7üYF¿k?¡áý^ÕçâóñxÿOŒk‹:ÂB-Å;^„¥+Ûn•?ÿÙlibspatialite-4.3.0a/test/movies.xsd0000664000175000017500000000134512544707704014446 00000000000000 libspatialite-4.3.0a/test/check_virtualtable3.c0000664000175000017500000005473712544707704016523 00000000000000/* check_virtualtable3.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Ahmadou Dicko Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define _GNU_SOURCE #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" #ifdef _WIN32 #include "asprintf4win.h" #endif int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ sqlite3 *db_handle = NULL; char *sql_statement; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } spatialite_init_ex (db_handle, cache, 0); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE dbftest USING VirtualDBF(shapetest1.dbf, UTF-8);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualDBF error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } asprintf (&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 < 20;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -3; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -4; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -5; } if (strcmp (results[2], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -6; } if (strcmp (results[3], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -7; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 <= 19;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -11; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -12; } if (strcmp (results[2], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -13; } if (strcmp (results[3], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -14; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 = 20;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -17; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -18; } if (strcmp (results[2], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]); return -19; } if (strcmp (results[3], "20") != 0) { fprintf (stderr, "Unexpected error: integer2() bad result: %s.\n", results[3]); return -20; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 > 2;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -22; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -23; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -24; } if (strcmp (results[2], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees2 bad result: %s.\n", results[2]); return -25; } if (strcmp (results[3], "20") != 0) { fprintf (stderr, "Unexpected error: integer4() bad result: %s.\n", results[3]); return -26; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2 from dbftest where testcase2 >= 20;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -28; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -29; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -30; } if (strcmp (results[2], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees3 bad result: %s.\n", results[2]); return -31; } if (strcmp (results[3], "20") != 0) { fprintf (stderr, "Unexpected error: integer5() bad result: %s.\n", results[3]); return -32; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 < \"p\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -34; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -35; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -36; } if (strcmp (results[2], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]); return -37; } if (strcmp (results[3], "20") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -38; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 <= \"p\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -40; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -41; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -42; } if (strcmp (results[2], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]); return -43; } if (strcmp (results[3], "20") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -44; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "BEGIN;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "BEGIN error: %s\n", err_msg); sqlite3_free (err_msg); return -46; } asprintf (&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 > \"p\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -48; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -49; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -50; } if (strcmp (results[2], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -51; } if (strcmp (results[3], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -52; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "DELETE FROM dbftest WHERE testcase2 = 2;", NULL, NULL, &err_msg); if (ret != SQLITE_READONLY) { fprintf (stderr, "UPDATE error: %s\n", err_msg); sqlite3_free (err_msg); return -46; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "ROLLBACK;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "ROLLBACK error: %s\n", err_msg); sqlite3_free (err_msg); return -47; } asprintf (&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 >= \"p\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -54; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -55; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -56; } if (strcmp (results[2], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -57; } if (strcmp (results[3], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -58; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2 from dbftest where testcase1 = \"windward\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -54; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -55; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -56; } if (strcmp (results[2], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -57; } if (strcmp (results[3], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -58; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2 from dbftest where PKUID = 1;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -60; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -61; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -62; } if (strcmp (results[2], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -63; } if (strcmp (results[3], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -64; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2 from dbftest where PKUID < 2;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -66; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -67; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -68; } if (strcmp (results[2], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -69; } if (strcmp (results[3], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -70; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2 from dbftest where PKUID <= 1;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -72; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -73; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -74; } if (strcmp (results[2], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[2]); return -75; } if (strcmp (results[3], "2") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -76; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2 from dbftest where PKUID > 1;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -78; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -79; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -80; } if (strcmp (results[2], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]); return -81; } if (strcmp (results[3], "20") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -82; } sqlite3_free_table (results); asprintf (&sql_statement, "select testcase1, testcase2 from dbftest where PKUID >= 2;"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -84; } if ((rows != 1) || (columns != 2)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -85; } if (strcmp (results[0], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header() bad result: %s.\n", results[0]); return -86; } if (strcmp (results[2], "orde lees") != 0) { fprintf (stderr, "Unexpected error: orde lees bad result: %s.\n", results[2]); return -87; } if (strcmp (results[3], "20") != 0) { fprintf (stderr, "Unexpected error: integer() bad result: %s.\n", results[3]); return -88; } sqlite3_free_table (results); asprintf (&sql_statement, "select PKUID, testcase1, testcase2 from dbftest where testcase1 LIKE \"wind%%\";"); ret = sqlite3_get_table (db_handle, sql_statement, &results, &rows, &columns, &err_msg); free (sql_statement); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -90; } if ((rows != 1) || (columns != 3)) { fprintf (stderr, "Unexpected error: select columns bad result: %i/%i.\n", rows, columns); return -91; } if (strcmp (results[0], "PKUID") != 0) { fprintf (stderr, "Unexpected error: header uid bad result: %s.\n", results[0]); return -92; } if (strcmp (results[1], "testcase1") != 0) { fprintf (stderr, "Unexpected error: header bad result: %s.\n", results[1]); return -93; } if (strcmp (results[3], "1") != 0) { fprintf (stderr, "Unexpected error: windward PK bad result: %s.\n", results[3]); return -93; } if (strcmp (results[4], "windward") != 0) { fprintf (stderr, "Unexpected error: windward bad result: %s.\n", results[4]); return -94; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "DROP TABLE dbftest;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -49; } /* error cases */ ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE toofewargs USING VirtualDBF(\"shapetest1.dbf\");", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "VirtualDBF unexpected result: %i\n", ret); return -95; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE toomanyargs USING VirtualDBF(\"shapetest1.dbf\", UTF-8, 1, 1);", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "VirtualDBF unexpected result: %i\n", ret); return -96; } sqlite3_free (err_msg); ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE nosuchfile USING VirtualDBF(\"not_a_file.dbf\", UTF-8);", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VirtualDBF error: %s\n", err_msg); sqlite3_free (err_msg); return -97; } ret = sqlite3_get_table (db_handle, "SELECT * from nosuchfile;", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -98; } if ((rows != 0) || (columns != 0)) { fprintf (stderr, "Unexpected error: select columns no suchfile: %i/%i.\n", rows, columns); return -99; } sqlite3_free_table (results); ret = sqlite3_exec (db_handle, "DROP TABLE nosuchfile;", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return -100; } ret = sqlite3_exec (db_handle, "create VIRTUAL TABLE onesidedquote USING VirtualDBF('shapetest1.dbf, UTF-8);", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "VirtualDBF unexpected result: %i\n", ret); return -101; } sqlite3_free (err_msg); sqlite3_close (db_handle); spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/Makefile.am0000664000175000017500000001236312544707704014462 00000000000000AM_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ check_PROGRAMS = check_endian \ check_version \ check_init \ check_init2 \ check_geom_aux \ check_geometry_cols \ check_create \ check_bufovflw \ check_fdo1 \ check_fdo2 \ check_fdo3 \ check_fdo_bufovflw \ check_md5 \ check_dbf_load \ check_shp_load \ check_shp_load_3d \ shape_cp1252 \ shape_primitives \ shape_utf8_1 \ shape_utf8_1ex \ shape_utf8_2 \ shape_3d \ check_clone_table \ check_xls_load \ check_math_funcs \ check_gaia_util \ check_gaia_utf8 \ check_extension \ check_recover_geom \ check_sql_stmt \ check_multithread \ check_virtualtable1 \ check_virtualtable2 \ check_virtualtable3 \ check_virtualtable4 \ check_virtualtable5 \ check_virtualtable6 \ check_virtual_ovflw \ check_mbrcache \ check_spatialindex \ check_exif \ check_exif2 \ check_relations_fncts \ check_extra_relations_fncts \ check_geoscvt_fncts \ check_libxml2 \ check_styling \ check_virtualxpath \ check_virtualbbox \ check_wfsin \ check_dxf \ check_metacatalog \ check_virtualelem \ check_srid_fncts \ check_control_points if ENABLE_GEOPACKAGE check_PROGRAMS += \ check_createBaseTables \ check_gpkgCreateTilesTable \ check_gpkgCreateTilesTableMissingSRID \ check_gpkgCreateTilesZoomLevel \ check_gpkgInsertEpsgSRID check_gpkgMode \ check_gpkgCreateFeaturesTable \ check_gpkg_base_core_container_data_file_format_application_id \ check_gpkg_base_core_spatial_ref_sys_data_table_def \ check_gpkg_base_core_spatial_ref_sys_data_values_default \ check_gpkg_base_core_contents_data_table_def \ check_gpkg_opt_extension_mechanism_extensions_data_table_def \ check_add_tile_triggers \ check_add_tile_triggers_bad_table_name \ check_get_normal_row \ check_get_normal_row_bad_geopackage \ check_get_normal_row_bad_geopackage2 \ check_get_normal_zoom \ check_get_normal_zoom_extension_load \ check_get_normal_zoom_bad_geopackage \ check_get_normal_zoom_bad_geopackage2 \ check_gpkgGetImageFormat \ check_gpkgGetImageFormat_nonimage \ check_gpkgGetImageFormat_nonblob \ check_gpkgGetImageFormat_png \ check_gpkgGetImageFormat_tiff \ check_gpkgGetImageFormat_webp \ check_gpkgConvert \ check_gpkgVirtual endif AM_CFLAGS = -I@srcdir@/../src/headers -I@srcdir@ if MINGW AM_LDFLAGS = -L../src -lspatialite -lm -lxml2 $(GCOV_FLAGS) else AM_LDFLAGS = -L../src -lpthread -lspatialite -lm -lxml2 $(GCOV_FLAGS) endif TESTS = $(check_PROGRAMS) MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = asprintf4win.h \ fnmatch_impl4win.h \ fnmatch4win.h \ scandir4win.h \ test_helpers.h \ shapetest1.dbf \ shapetest1.prj \ shapetest1.qpj \ shapetest1.shp \ shapetest1.shx \ test_under_valgrind.sh \ WritingSQLTestCase.txt \ test-legacy-2.3.1.sqlite \ test-legacy-3.0.1.sqlite \ test-invalid.sqlite \ test_geos.sqlite \ shp/new-caledonia/buildings.dbf \ shp/new-caledonia/buildings.prj \ shp/new-caledonia/buildings.shp \ shp/new-caledonia/buildings.shx \ shp/new-caledonia/points.dbf \ shp/new-caledonia/points.prj \ shp/new-caledonia/points.shp \ shp/new-caledonia/points.shx \ shp/new-caledonia/railways.dbf \ shp/new-caledonia/railways.shp \ shp/new-caledonia/railways.shx \ shp/gaza/aeroway.dbf \ shp/gaza/aeroway.prj \ shp/gaza/aeroway.shp \ shp/gaza/aeroway.shx \ shp/gaza/barrier.dbf \ shp/gaza/barrier.prj \ shp/gaza/barrier.shp \ shp/gaza/barrier.shx \ shp/gaza/route.dbf \ shp/gaza/route.prj \ shp/gaza/route.shp \ shp/gaza/route.shx \ shp/taiwan/hystoric.dbf \ shp/taiwan/hystoric.prj \ shp/taiwan/hystoric.shp \ shp/taiwan/hystoric.shx \ shp/taiwan/leisure.dbf \ shp/taiwan/leisure.prj \ shp/taiwan/leisure.shp \ shp/taiwan/leisure.shx \ shp/taiwan/route.dbf \ shp/taiwan/route.prj \ shp/taiwan/route.shp \ shp/taiwan/route.shx \ shp/merano-3d/points.dbf \ shp/merano-3d/points.prj \ shp/merano-3d/points.shp \ shp/merano-3d/points.shx \ shp/merano-3d/polygons.dbf \ shp/merano-3d/polygons.prj \ shp/merano-3d/polygons.shp \ shp/merano-3d/polygons.shx \ shp/merano-3d/roads.dbf \ shp/merano-3d/roads.prj \ shp/merano-3d/roads.shp \ shp/merano-3d/roads.shx \ shp/foggia/local_councils.dbf \ shp/foggia/local_councils.prj \ shp/foggia/local_councils.shp \ shp/foggia/local_councils.shx \ testcase1.xls \ testcase1.csv \ books.xml books.xsd opera.xml opera.xsd \ movies.xml movies.xsd books-bad.xml books-bad.xsd \ inspire-data-example.xml stazioni_se.xml \ stazioni2_se.xml raster_se.xml raster2_se.xml \ sld_sample.xml sld_sample2.xml thunderstorm_mild.svg \ tile000.jpeg tile101.jpeg tile111.jpeg \ test.webp tile100.jpeg tile110.jpeg \ Apple-iPhone-4.jpg empty.png empty.tif \ test.wfs testDescribeFeatureType.wfs \ getcapabilities-1.0.0.wfs \ getcapabilities-1.1.0.wfs \ describefeaturetype.wfs \ 22.dxf f06.dxf l02.dxf p05.dxf \ archaic.dxf linked.dxf hatch.dxf \ symbol.dxf gpkg_test.sqlite gpkg_test.gpkg \ gpkg_test_broken.gpkg gpkg_test_extrasrid.gpkg SUBDIRS = sql_stmt_geosadvanced_tests sql_stmt_geos_tests \ sql_stmt_libxml2_tests sql_stmt_lwgeom_tests \ sql_stmt_mathsql_tests sql_stmt_proj_tests \ sql_stmt_security_tests sql_stmt_tests \ sql_stmt_xmlsec_tests sql_stmt_geopackage_tests \ sql_stmt_freexl_tests sql_stmt_cache_tests \ sql_stmt_nocache_tests libspatialite-4.3.0a/test/shape_cp1252.c0000664000175000017500000001136612544707704014670 00000000000000/* shape_cp1252.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *dbfname = __FILE__ "test.dbf"; char *err_msg = NULL; int row_count; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } ret = load_shapefile (handle, "./shp/new-caledonia/points", "points", "CP1252", 4326, "col1", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/new-caledonia/points: %s\n", err_msg); sqlite3_close (handle); return -3; } if (row_count != 10) { fprintf (stderr, "unexpected row count for shp/new-caledonia/points: %i\n", row_count); sqlite3_close (handle); return -4; } ret = load_shapefile (handle, "./shp/new-caledonia/railways", "railways", "CP1252", 4326, "col1", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/new-caledonia/railways: %s\n", err_msg); sqlite3_close (handle); return -5; } if (row_count != 13) { fprintf (stderr, "unexpected row count for shp/new-caledonia/points: %i\n", row_count); sqlite3_close (handle); return -6; } ret = load_shapefile (handle, "./shp/new-caledonia/buildings", "buildings", "CP1252", 4326, "col1", 1, 0, 1, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/new-caledonia/buildings: %s\n", err_msg); sqlite3_close (handle); return -7; } if (row_count != 10) { fprintf (stderr, "unexpected row count for shp/new-caledonia/buildings: %i\n", row_count); sqlite3_close (handle); return -8; } ret = dump_dbf (handle, "points", dbfname, "CP1252", err_msg); if (!ret) { fprintf (stderr, "dump_dbf() error for points: %s\n", err_msg); sqlite3_close (handle); return -9; } unlink (dbfname); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -9; } spatialite_cleanup_ex (cache); #endif /* end ICONV conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/tile110.jpeg0000664000175000017500000002316712544707704014460 00000000000000ÿØÿàJFIFÿÛC  !"$"$ÿÛCÿÂ"ÿÄÿÄÿÚ ú)¤íâÌi2Ôg FcHÌÆ3@Ìi:Ò#1¥39¤ Ï@ f4™ÞÃ1¤&†8ˆÌ `n ›2,] ˆÈÓL` €& €€”0 ÓjÌíJÊõ‘1æ#†˜š` ª­B2¤À@U‘%I¬€L0  ¤ã:nΆÀÁ1¦€b®Á€b gcOsAN7(% €cZ%ÙÈÁ5X¥ŽÖš6W40Ue3ݬTÄ]p…f£.{!Gš$Óp{Ìì¢VµÅî‹)9‘•2˜€áž*ßw*0~–|ݳ¼Ç™>–R¥ª&w(×Lž§JÖ®2´¥äSéO:{ÖóÌnY[ìçß\è•kfªe̬(¢¾‡ ŠŠÔóÛ䯋«£C‘¶îf‡¾œ³ÉV12¼nxPt œ(›Îýˆ=wa›[¬(¶ÁYlV·d£f”x¾‹%¹¼ßsRXâUn^w*·FO ê4ù;– Ï¥ÃT²ºiÚ¿¢—6C^QW@Íp.fMRëõœ;«éU¬5¨Xœ2F¿2Í5-d޹À¤Ðãªec)“S“p$“§ÒÅXf‡BU\½Væs•\²Õ¬ÇG¯æ;Þ†:ÝÃ&Ѧ˜mqòô%ã×—¯F nËÐÓ ·žžéGM-œ¶¨Þ¸¥œ´˜éÒ+“„§-F»¡Ï<¹%¦üyûO/­ÒNÌjÕIσªŠ¶>žl jŽðÃu¾wfÕÊÊÔN ÜýežÛ›Ú3š¸ž»•®þ¥½^{ôgß´PLgQ²>G¦ï¦MiÏ8%–ìæËrï«YËm–o5U}^cÉ+Õe‚¥ÏéX¢þMÏF~—\ô)¦âDÃéhŽiŠ÷–º¨Â“ÞWoN+¸;9jÍ·›Xì'Õ<œ?K†G#¿ÍÙ3u7bïÎÒ«t4& }g™U RçÖÛ¹ ‹Anzl´—µÉJòUÜdªÆrëå`ßn jóþ…*õWmX1ˆ`!6ÿÄ(!1 "0A#2@C`BÿÚíÛ3µ;FvŒíÚ3¶gjvŒí™Û3¶ghÎÙ³;fvÌíÚ³;FvÌí™Ú3¶glÎÑ£;fvÌíø²Ÿ±MÆáeòx’b› uQÈÈÚ¬$íÿ!´ì@ ðßyƒû)™ ý•ò?×ïo¾Llý§ÇàW?wåÁþâ‰X—ÐÓ±C_I¾Ý…]™úÆý·í_He}÷Èérþ‹5ÐøëØ{Ì3÷ö.mÂo®ÞÃÕØ,.Ig©‹,¼Kä´2ú\¿"öXÆll½E0šÂfóh¥Íºåå¥ÜÌNaoƒdà?!¥ÀcM h<šxœF0Ù)áɵ&®!‰ã®VÑ25 2eͨe0æ]NCeîŠÓy´-¢ž{•7›Mã·*b4ÙL_ûdnÔ{µV6srÙqöpÓ'Äô¹|ˆÂ­ /«s6 ác\M¢:Ñ™Çñ湫ÊÙ0V!Oâ¨f¦kå9ÈÛ»þ×òAÚ膗45]qAØv² …Lr,-ÅZêÁDÇ…ûÙì&Qò®TB›DN p1Û Sµš°š1š›aÓŠ#k|QYé±ÏÒ†·:mÛ›˜Öa¬TãJŠ#xĵ+«LO‚B—8͹Îor³ïÓ/Œ8ýŽÄ!jO—{s£yÖZ•ì`fœ®8¸õ³z’Ëã—MG½‡aæ=Œõ6ÉeÍñÂNÔhÁ*WB:s B>*js*WJùgþ†•=ßö¿c ?úÇxq ¨`ÈPã0ä@ãu¶S‰®–ò\YnO53[€8„Ž™žÊzRÊ~±cbÞë‹a±Ì‘‡ SÌh‡S°€Ük¢JœAn\3™pÅeP™Q•kë©@…zñ E•aj~¶ÐcÚ„SÒ§ÆeÉLpxI“óù2²zuÛû)Ìš÷|{ÌŸ_q#•£éfD|ÒwÕfoUa}NÓ ÿcäž³t½ÿ¿…ôZ –4ÜLœ†PböŒ× R &¢eˆhÏR—’´8ò )Ó–˜×Cõlî"6vÄ’‚Nâ!vU‡‡Õ`Tšc´èã‚ ™Òæ\D¾,g(Âÿ?©“|ŽªÙ³ ÌÙ(ÊmýJ ÑÅ,ÐAìñúÏÜ«üÙž“'÷ÆÛ/Óà;…›Ã’.A?‹á}¬¶S®CÈ× ™P7+€õUÏV³åvLçlV@Sj¦Àú™U±·¥flŒ„÷>Õ #Û]k§ÿÄ'! 1A"0aBPQRÿÚ?þGìj¶±½êãô¹qÞ™;÷ö:£˜´Ò{ßã_D6z|‘UµXôâÍHsÁ7ì”ì‚I[±ÄP:höYÁhl¾ 21M5Dc‘7É{X¤XÙ™‘|J½“D¥HMÕQ‰Ó#$ÐäÉ;#€åFMð?ƒÉ "‰€´ø1%ßÒ~ÌZd´ÚV>6^Fïg!1ʼsç’¹S#~Ç!l‘:'.{_騦™LD­X´þY o=FÌα«âÆûš³2ɧÀõÒò‰SÙÉí)wd)Ñ‘û²ôjk‘¶üšOÑ)XŸ¢_Žþ«2ü‘•ð*‡&¬ó•ýŸÿÄ*! "1A0Q#2BPRÿÚ?þÇ/¤ ñ®>ð†Ñø^¾AnóÁîÄ#+ŠÐãÝø v´÷YVƒˆBW›nS¦“dÊn‚d„”sd§ 4¹æÖØôúâÙ\6\×Z–\·Ü}+$Ú–BíãjաˆQ´¸©ã‚JˆÒãás>–k˜‹Âl .b/¾²PA˜·!YܘD›”)%tß·Âp•‰On .uJ0¼ ý© miäyòœ,RcqÁšWãjXÿPÂÙ/Z0m9‡d`o(§†úMé,BsBr†?Âkyt@Õ|'5®nåK¤´[‰Ù6OÓÁb˜Z{ˆZ›-®LJ`å’švîŽÔVžÌJ¤/Ë’6)ö f¥á6[òž;–—NC²=Y3íF²gÚl™·j8?Ò ñü9iàlBý­LÞÕ¤',\ÉRèš‚¹I 4òÛ\Ø¡°¥! ƒÆ9É3´Ý…tÿÿÄ.!1 3"02Aa@Q`q¡P‘±áÿÚ?ÝzÝâ-×­×­×­×­×­×­×­×­×­×­×­×­×­Þ"ÝzÝzÝzÝâ-×­×­×­×­×­×­Þ"Ýâ-×­×­×­×þt$úÀ…:qõ„ÑL TáOÒÕ²²3JÚjŒ|6Y]e«ì|×…Oƒ?à‰úÀãérÔü¿åXBoÓuÓMA±R€š•Üý| cTB¨ @² ²o-´GR ‘Él·ÅÕñ÷Õ¿FT¹Qó|=,¿úè¡¢×BPüŽ„g1_‹ÇBOm®Bõ Æ[_Dé˜Â]¨´ Ð*.‰Œh­]Âc' ¯£T„ùÓíHRh¯ßFt8Š44?íFZâ4“K† Vý*#:)…1Ê#ƺ.PW9R©0§¥Uq®‹ò:Á;LÊ”sˆY@þVW•YEÔ˜ 1…WÒî¼M«ÝëL!™Ë—ÂÌM:„„0 VUÑUÍÑŒ Ð!e²ž•°²'T5xœj P™ÝÚ£ ±ü ê‘0œ íºübæ¸L!𿋹LÑ+c £2©…:•œ õÑ”GÚ&* 9t^7Þ½…X¥i…G *±¨2Mp§üR0 醿«¬kÌMGe”+{ ×;˜®b˜Ã.Z.Õí[ûÔä#(8ÙHŒ¸eéŽ&rˆMâOh…%ÄrÑpëØgúNs\tL…Þ[_xB©Ó"ÕfιќxY†*Œô¡ ¢«,UÖ~–P*¢+„GF ;Â-YCjª*ƒr¡Kô¿ÿÄ*!1AQaqÑ 0‘ðñ@¡áÁP±ÿÚ?!üÚ~øö–ÿSÚ~ í?öŸ±=§ìOiùûK~ŸiûÚ~IíÔûOÜžÓö'´ü“Ú~øößéöŸ’{OÁ=¥¿ÐöŸ’{OÁ=§îOiù'´üÚfö}§îiûÚ~ÄöŸ’{@µý>ÓðOoýƒä!~ ËjmVs2uŽ9"BØ’p[me‚íûÇ}.¥Øl}:–Êlqc£þ9C5é¡Jja…¾‘€ dñ¹ùgñ–_ø\o…O¤ø+6žÎìM¼w˜íÓ›¬ íð¿àD§ð=U,æÁâ *£«*T ëÏQTá`,»* ëä¿ ÅØn¸‡„×=ç>b^c6]ì3ˆ|ê­Zæ UPŸJññ¿‰æ(Ú,öˆOžõ- ï/.÷Z•#8¨놺g wK¶ÜwÚ +§1Cr‰mSÐøŠþ:€ñP¯’t£TTÜNÌf*zlwKZÏ÷®32ÌYp&Ÿ„ÙSñ vùízAEtµëµqlÏJèÀï¬Ðƒœ0ÉrCÚaøO‚è¶yà‰‚žÚ›˜‘Ñ?¬×«¥(;ç¥Ë—Xâ,,Êp0oª¢ú‰Ê’¡3I¦ÆzâÓ¼D™¥…EgO˜º¸^ÚrlûÔ8¨ºúÁÔyu¥Îú㥵3’âQ0øyÊxK¦ æyg©9+¼¬Kyƒ¸1€Ï¬a¼¦cX ‰Â4á—®Uz‹0Ã!xŠÀÀ*ñG‰J¬•‘]™ósv)è ¬äZ›œfYähó2Îg…À÷LÄ{t4y˜Ëie”­3%ÀÐ&¬»^Œ— Ë• -y†W‚íJi*›šŒ-=$Û›9„9j[¼Gå]%Ç™¡XŒKƒ˜v«éLß=Ð9M½æYE¦”l{Ç&ó2a›b Z€q4–&s™r'ƒ<*æ9ÉnT52LˆÊ‡¼bµÌ§,¶õ ²à0£Q•È—ª(\wdxÁñZ§lDqYl]Ë;oŒÁX–f¡†ºQD«R¼pãæ½oï¢ÇÞ‚½ª•íj¢ù·üžá黯X´¨Õ/ Ûô–¹L©¡R€ÂlU×ycìþÄÇ\ ùtA37p»’¼d¼Ä]KÍH©AI‰rÌB–<œEؘÒP¡RñCkWe̯¼Ìçs„njVfbÁÿÙ`)©€"Ùk㘣¦¢w„ÑÕ¥‹•âˆË̶×u4]C3!e„NÕxŠ-·Ev• Éb¼ÂËžeøló ßÝìeK/y|u/åâ:jJ*gµ]ÉZÊÌ®¤EŠIiØð}9uuê…è)´hÞ¥¨Û}J•Bh•r¾ÝW‰[)µ”°úKLú@ßÂqp0LÁCÊ–$è¿Im¤£ é(éKÓ2ÍËÇën%,À!Ùší Š g WKvš®“aˆB‚/h9P|K™ áe!Rƒk.a3h•3³ ¢åíKï—±å›RÌœ|¦µEx™Ìã´[<7…œ¢–q¦7µŽHîZBb`‰,Ó„Ê4ˆÂZLÊæ›–ʼ²¶­o´½Ê%Àoê1ðû¯=ûG0ð˜(-¸:YK+¨\b·P 16*í€ÎDO˜0VèÆUW3Yj.­A«÷© [ÝJ¡c¼LiôŸW´[3lC¦¹aUŠ©Q ¹‘x¸eoöM13)eaRœÚb(Ãf+ái*0LW°©sœJŒ2û•2è¸Ï÷ 8Ä{ÆØŠf&š€vB«¶%´\b]gìóâ¦àyè,;e㈎šC0•>°•Û3Œ>ÐÆA8ølòzO©Êm©WfPƨ»–)…á˜(n aô„IBšsõ¨»ÍËq*XðFY3,¢ïU*¾ÓÄq â¦ç ICcxªƒ£!™ž=ƨîMÅ ÔVÛ§1€0o㣓½^.QØm0X`u!ÛÖÑnÝósxCÍ\E©FÐø%nc¾;žó,a‡>¿ì¢•K³ÖwóÉ[Ì^fMÂVÄC÷Ö£èØ°V$ŠÕÝÎÌôÇLuÇ\EXw™Aj«YN¨)1•ÏëÅÄQ8%F°_/hŒÜÊQl²*Î[·ó¼Ú¢Ò¨|ÜXa£ eY–JÄ3Pj%ã0üêÖc¥›ùg­«Xß¼F¬ äfÌ‚n½¢U‡a¼û8'-Ž;D 0jŸtaw}âÙÌ·wÓà&*]–j :9¥b][eEìxˆÑߥˆr\óò©ÈF*óÚÉqcœ'ö–ÈjY*‡éÇE¬ÊY´d€ˆcÊo.v+ä‘Ü.RËÑÜ´’܇²„vGR³0,£s)º”ÝV`7U)º¬Ên«2›ªÌ¦ê³bRËÅ R—™zKÔ£Á€Ì jmUSšæSuR›ª”ÝTµÕfSuR›¨«ª”ÝTÿÚ Ã.CH.ÜâgÊÔ:aÚ5rרAfé£ÔÆ®j+Ä5˜Ö÷8ˆÇ}AMx0æ#*»–¢Eð ”CÔõŒs0âæ¢¼CQñºœBÎaX˜³¨ôëõ2mCŽÊ\i°Ñµj6m¹ö33Ð|âP¨Z¸ÌË2¢Ý €–ÃŽØiÍEnàBµq2¶˜¸Fb®ePkq‘W´³#p1à˜ó®fjYÌæ["ê¥ÅíÖrnåÛ-Âae /8‰›Û?& Ój(PF-ʵ·UÔîcläHÐQoÁGÜ×2ñ w7)NïˆNEôˆŽœžÊŒ'!¯ŒÌóáP—¡Ü§¶y†fªÚeI!ÀLµ®ûF‡r‚*1¸+y.㢗öÔt÷q…aëˆéìJ L€¥V°ÁÐÆgÆ£åÌb(™«)rVLO‘K¨Ù~å€H´áq˜ÃZâ%©m†æšº…•4¿ è/3´TæW¸(4¤¬0 S0VPõ†£+w, ˆÎö}š™s#Xƒ#ƒQÀ!áyš\=1ChLn%!RBÖfd7g1p;b.Œ?"­ Uƒ1X¥±*‚Ó–Ýqu,íËXE šºbUwU îéÔÝG)t=5œf0xwQ1ªî^ຬñ3ûy”.%“Š€ÖƲèã1È›ŽlB›SùˆÖ¡}fEZžÑ)% +õQ)ɹq)›"‹Oqè£|Ê¡—˜¶KoG©lE逃/ñ¦±pÁÀ¤Üª0µ-Vž@ƒZºXy´{p¶F±oîQ_a-4ŸÒÅ2—u{Ùï0Ë cjéÍWÜ5uˆŠh–1*l, eÌDIœÿ¨Ò`/8ÔN)w×ÂËæ2D4,ïyEÊCAϸ… (tFWIG¿s&LµE@ËìˆDÝæ9@;ÜFÏî*†Ž ‰ºË_R‘4srsŒê2®g¼ur¦ó™Z¯õÔS$s myœ[d÷(öng/sQ2ïÀ·ˆ¢èb,Ú¶çqÂÜ$£lkQ[‘:û|¸Ma»ÁêPÀfåצ¡Ý|–®º–Ô\†åè´Ðy‚Ѩ׸i3p¥Æ%Fè¾rÅÅiÜȶ¸¼Â߬DÓÙ- 4óf®ø€»Í)s‰VV5ÈTMÂÞã¸5ŠZaŽ®)6.X45t²ÝL¹1(moaH­rf%a ³ CRÌpÜvƒQå5†¿ˆiDeõ¥OòaeÑHÿp@!‡¢WEj2±"::î6MƒpuP"*Ó€µµº€³‹ ]Ý pb’òÑ)½«.F<ëFL Ü|bï‹Âä]Ýq ­Klã2Õ-V0zLj¶þ±"$M0ËóÈ?3Wì~#óhÍLƆC(–EB'|5$`‘PúTܨm jFøX¨¼u€\¡ù‡ÏPk”m^'8M¿‘H(±²/·.+ñ)AM‰¢Pâ.¡QÝ\g¸¥…˜#C¢Ò?"©lR¹®þC 䈪äÄ­8¢êZq]"ìCQsE`¯î [l|Ü2ÿPÃhðÍÉÔº­‡5ÃÁ5Ô©Pw¢ZV¯U*ÒYŽÁË©œÛt©€–E¹p+L—pš€Îmb´[ þ\ðu(enon“Žâƒ5ÿ#¸5fÈÕ8ƒ*JªÕz•r\´G.CÔ(Ðp½~"³V8 ʶ¬7¶SkþÄ/[‘bÑVâ €¢„<8§ #KÛëÜrE¯’ñ,üUibLÌ;x–*§ó˜ê±Š±Ù7w²µ^âJÁ³=.PÏâx¸µà†…Ù\–^#†Å…Ê þÒ•…¦C:‰Ü¡ÌA GÏÊÒ á.å»t*²ˆ¾ÓQ2›ciÓ!¾à•J¤†èÖW˜J•qé«IÄwåCñœy‚J‚`k BÍÀWÌ*ñM™C aws–«,SÐåF‚Ô½ Q•Ë¢,=…Ü©¸éýÆ€DSf` Êöš•冀[™X†\;¸ƒ†ïdÍÒ|”j‹®az…5êx^%æˆ-o'÷%Íh·è 2îhî]²¢¼f)†ÖŸœ~¡’ëÖ^¿?¸p‹UÉ]ÀÏK-y"1©¢)/»¥"€äDk¸ á¡,(¦/ òe,e)e¦êF/¢ÜAWØõȧ7)cÀ„nR²Ì‰'ýJà‡hþ #‚ÐŽ›lF´”»,¸a¬BTµS"RgŠõ ©ÌHØ.©•âmËl¨ê›b¶-Iš­\L0‰ Óߨ Œæ(  «Ä!¹VBb#vxÁ‰M6ùW+ø‚®pB\±E4GX…s¸Ôî¦ÚaBsFß@×a‚©ü ¨Î¦> cR¤„»•… q-»uAÉWCÔ¢£Ó ’-˜Ö±TvœÆaò#ÏØ P%‘âWž.jæã,–‰ºŽÂ­µ•ýDzÄÿùŒ &-l«æ­În£ÓqAaê)Š6†]®a®#šî°-]Dí6qœJ)»zæ=V[¢2 S»e ÑGÄpiéÈʶ|ĨVjã+ZÔ»{”U nQ\¾bJ>šÀر ©rèØŽ,r-@  Œ×žQʶ«««ÕÔÐOf¾Å¢]Â]ÑY®s~¦i‚æ)Ö¿rð 5ÜXc¶Ò©i§¦’R%æËˆÂñ„вÇ/ú÷î `¢p ÿLvGVk<ê-`‡$¡1þ¢C¤ÇŠ'0“a6GÞCŸc°jn%Šp–à«W wéµuÝÞŽ¥ E’4=…·"|®Xè¿â$jµ³ˆL^"BX@èm}*뺖´[¨½Ý×í˜îªVħֱ3†åð¾y£õ+Ÿ—àlÆÕ¡¶Âÿ£ôGͶµ¨ÒÕ^N&U8 d¦Êë!ûat€ï„.QÅ-–þ³î=G –ÎûY¸4†”­Ö{ÃØš ø,6AÎmkBÞñ©†iu’l.ê fŠ/¿0)´ÿÔt¢ËX%¤Ý 1î[e6ž¢vkäÁY}â;0 eýJ7lúþ%Rgî%·Ö&—õ¾&t­¯’L¶( ¸ZDÁ€GE[ƒfeg¶´¹V¡ÞüJjæWËEº-Á{•²M][¡ît€«à‰þ‹Æ3œ¯7l‘’“67ý¿qºé Êgrƒ"nyÍQå—çq %z;»â¡²‹ËR©êSê_iû”qÅy bŠ0•_!dniŽå\¾+Å\0O’åw Øÿ)ÉkË’a1PEÛ…ÃIzÓ1Í–ÑäÒXpwqÏÅ ß\¿½_S~jÉŒ˜ÜÃððÚ©X긧;ŽÞªF ­’ÑAš!a{®5üÊ…%çʼni*db¬|„`«Ì&ÆÔ¼Ë]ªüONª™=3:Äg`¬_¹IZ }Kâ/ˈKÏ€ ÁK Õ¼¸€joÜÈ Öî ^’"Æg˜Âš¥Ü°à5JTUóêR¨5¤LÜZB£%båÍÖXE¢ªu;7ˆpIÑ[„àlðÁ%ÌÜçÂÔ¿1ðÌ÷D¤;mª‚ªÚÙ\þÏÔºïɪ¨°Ú½Êæ*4ØîgyÖ–êYÿY}C}G|ô‹­_RôW¤…é¥zKê^‘Wšb"ËW\N3PvFKP<¶FÒ¨CÑKˆ kñ6_Q;õµ[Ä Yn"V+x‰”6ñR¶•oÿÙlibspatialite-4.3.0a/test/22.dxf0000664000175000017500000006055612544707704013363 00000000000000 0 SECTION 2 HEADER 9 $ACADVER 1 AC1015 9 $ACADMAINTVER 70 20 9 $DWGCODEPAGE 3 ANSI_1252 9 $INSBASE 10 0.0 20 0.0 30 0.0 9 $EXTMIN 10 602115.796875 20 961637.7187500001 30 0.0 9 $EXTMAX 10 605457.53125 20 964469.4531250001 30 0.0 9 $LIMMIN 10 0.0 20 0.0 9 $LIMMAX 10 12.0 20 9.0 9 $ORTHOMODE 70 1 9 $REGENMODE 70 1 9 $FILLMODE 70 1 9 $QTEXTMODE 70 0 9 $MIRRTEXT 70 0 9 $LTSCALE 40 1.0 9 $ATTMODE 70 1 9 $TEXTSIZE 40 0.2 9 $TRACEWID 40 0.05 9 $TEXTSTYLE 7 Standard 9 $CLAYER 8 0 9 $CELTYPE 6 Continuous 9 $CECOLOR 62 256 9 $CELTSCALE 40 1.0 9 $DISPSILH 70 0 9 $DIMSCALE 40 1.0 9 $DIMASZ 40 0.18 9 $DIMEXO 40 0.0625 9 $DIMDLI 40 0.38 9 $DIMRND 40 0.0 9 $DIMDLE 40 0.0 9 $DIMEXE 40 0.18 9 $DIMTP 40 0.0 9 $DIMTM 40 0.0 9 $DIMTXT 40 0.18 9 $DIMCEN 40 0.09 9 $DIMTSZ 40 0.0 9 $DIMTOL 70 0 9 $DIMLIM 70 0 9 $DIMTIH 70 1 9 $DIMTOH 70 1 9 $DIMSE1 70 0 9 $DIMSE2 70 0 9 $DIMTAD 70 0 9 $DIMZIN 70 0 9 $DIMBLK 1 9 $DIMASO 70 1 9 $DIMSHO 70 1 9 $DIMPOST 1 9 $DIMAPOST 1 9 $DIMALT 70 0 9 $DIMALTD 70 2 9 $DIMALTF 40 25.4 9 $DIMLFAC 40 1.0 9 $DIMTOFL 70 0 9 $DIMTVP 40 0.0 9 $DIMTIX 70 0 9 $DIMSOXD 70 0 9 $DIMSAH 70 0 9 $DIMBLK1 1 9 $DIMBLK2 1 9 $DIMSTYLE 2 Standard 9 $DIMCLRD 70 0 9 $DIMCLRE 70 0 9 $DIMCLRT 70 0 9 $DIMTFAC 40 1.0 9 $DIMGAP 40 0.09 9 $DIMJUST 70 0 9 $DIMSD1 70 0 9 $DIMSD2 70 0 9 $DIMTOLJ 70 1 9 $DIMTZIN 70 0 9 $DIMALTZ 70 0 9 $DIMALTTZ 70 0 9 $DIMUPT 70 0 9 $DIMDEC 70 4 9 $DIMTDEC 70 4 9 $DIMALTU 70 2 9 $DIMALTTD 70 2 9 $DIMTXSTY 7 Standard 9 $DIMAUNIT 70 0 9 $DIMADEC 70 0 9 $DIMALTRND 40 0.0 9 $DIMAZIN 70 0 9 $DIMDSEP 70 46 9 $DIMATFIT 70 3 9 $DIMFRAC 70 0 9 $DIMLDRBLK 1 9 $DIMLUNIT 70 2 9 $DIMLWD 70 -2 9 $DIMLWE 70 -2 9 $DIMTMOVE 70 0 9 $LUNITS 70 2 9 $LUPREC 70 4 9 $SKETCHINC 40 0.1 9 $FILLETRAD 40 0.0 9 $AUNITS 70 0 9 $AUPREC 70 0 9 $MENU 1 . 9 $ELEVATION 40 0.0 9 $PELEVATION 40 0.0 9 $THICKNESS 40 0.0 9 $LIMCHECK 70 0 9 $CHAMFERA 40 0.0 9 $CHAMFERB 40 0.0 9 $CHAMFERC 40 0.0 9 $CHAMFERD 40 0.0 9 $SKPOLY 70 0 9 $TDCREATE 40 2454957.424852315 9 $TDUCREATE 40 2454957.383185649 9 $TDUPDATE 40 2456297.477353959 9 $TDUUPDATE 40 2456297.435687292 9 $TDINDWG 40 0.4710542014 9 $TDUSRTIMER 40 0.4710542014 9 $USRTIMER 70 1 9 $ANGBASE 50 0.0 9 $ANGDIR 70 0 9 $PDMODE 70 0 9 $PDSIZE 40 0.0 9 $PLINEWID 40 0.0 9 $SPLFRAME 70 0 9 $SPLINETYPE 70 6 9 $SPLINESEGS 70 8 9 $HANDSEED 5 B1CE 9 $SURFTAB1 70 6 9 $SURFTAB2 70 6 9 $SURFTYPE 70 6 9 $SURFU 70 6 9 $SURFV 70 6 9 $UCSBASE 2 9 $UCSNAME 2 9 $UCSORG 10 0.0 20 0.0 30 0.0 9 $UCSXDIR 10 1.0 20 0.0 30 0.0 9 $UCSYDIR 10 0.0 20 1.0 30 0.0 9 $UCSORTHOREF 2 9 $UCSORTHOVIEW 70 0 9 $UCSORGTOP 10 0.0 20 0.0 30 0.0 9 $UCSORGBOTTOM 10 0.0 20 0.0 30 0.0 9 $UCSORGLEFT 10 0.0 20 0.0 30 0.0 9 $UCSORGRIGHT 10 0.0 20 0.0 30 0.0 9 $UCSORGFRONT 10 0.0 20 0.0 30 0.0 9 $UCSORGBACK 10 0.0 20 0.0 30 0.0 9 $PUCSBASE 2 9 $PUCSNAME 2 9 $PUCSORG 10 0.0 20 0.0 30 0.0 9 $PUCSXDIR 10 1.0 20 0.0 30 0.0 9 $PUCSYDIR 10 0.0 20 1.0 30 0.0 9 $PUCSORTHOREF 2 9 $PUCSORTHOVIEW 70 0 9 $PUCSORGTOP 10 0.0 20 0.0 30 0.0 9 $PUCSORGBOTTOM 10 0.0 20 0.0 30 0.0 9 $PUCSORGLEFT 10 0.0 20 0.0 30 0.0 9 $PUCSORGRIGHT 10 0.0 20 0.0 30 0.0 9 $PUCSORGFRONT 10 0.0 20 0.0 30 0.0 9 $PUCSORGBACK 10 0.0 20 0.0 30 0.0 9 $USERI1 70 0 9 $USERI2 70 0 9 $USERI3 70 0 9 $USERI4 70 0 9 $USERI5 70 0 9 $USERR1 40 0.0 9 $USERR2 40 0.0 9 $USERR3 40 0.0 9 $USERR4 40 0.0 9 $USERR5 40 0.0 9 $WORLDVIEW 70 1 9 $SHADEDGE 70 3 9 $SHADEDIF 70 70 9 $TILEMODE 70 1 9 $MAXACTVP 70 64 9 $PINSBASE 10 0.0 20 0.0 30 0.0 9 $PLIMCHECK 70 0 9 $PEXTMIN 10 1.000000000000000E+20 20 1.000000000000000E+20 30 1.000000000000000E+20 9 $PEXTMAX 10 -1.000000000000000E+20 20 -1.000000000000000E+20 30 -1.000000000000000E+20 9 $PLIMMIN 10 0.0 20 0.0 9 $PLIMMAX 10 12.0 20 9.0 9 $UNITMODE 70 0 9 $VISRETAIN 70 1 9 $PLINEGEN 70 0 9 $PSLTSCALE 70 1 9 $TREEDEPTH 70 3020 9 $CMLSTYLE 2 Standard 9 $CMLJUST 70 0 9 $CMLSCALE 40 1.0 9 $PROXYGRAPHICS 70 1 9 $MEASUREMENT 70 0 9 $CELWEIGHT 370 -1 9 $ENDCAPS 280 0 9 $JOINSTYLE 280 0 9 $LWDISPLAY 290 0 9 $INSUNITS 70 6 9 $HYPERLINKBASE 1 9 $STYLESHEET 1 9 $XEDIT 290 1 9 $CEPSNTYPE 380 0 9 $PSTYLEMODE 290 1 9 $FINGERPRINTGUID 2 {E4D93A1D-E743-440C-AF20-08095301FC97} 9 $VERSIONGUID 2 {4ABEB1F0-D49C-4879-85A9-6A4C0FB530C9} 9 $EXTNAMES 290 1 9 $PSVPSCALE 40 0.0 9 $OLESTARTUP 290 0 0 ENDSEC 0 SECTION 2 CLASSES 0 CLASS 1 ACDBDICTIONARYWDFLT 2 AcDbDictionaryWithDefault 3 ObjectDBX Classes 90 0 280 0 281 0 0 CLASS 1 TABLESTYLE 2 AcDbTableStyle 3 ObjectDBX Classes 90 2047 280 0 281 0 0 CLASS 1 DICTIONARYVAR 2 AcDbDictionaryVar 3 ObjectDBX Classes 90 0 280 0 281 0 0 CLASS 1 ACDBPLACEHOLDER 2 AcDbPlaceHolder 3 ObjectDBX Classes 90 0 280 0 281 0 0 CLASS 1 LAYOUT 2 AcDbLayout 3 ObjectDBX Classes 90 0 280 0 281 0 0 CLASS 1 SORTENTSTABLE 2 AcDbSortentsTable 3 ObjectDBX Classes 90 0 280 0 281 0 0 ENDSEC 0 SECTION 2 TABLES 0 TABLE 2 VPORT 5 1F 330 0 100 AcDbSymbolTable 70 6 0 VPORT 5 B1C7 330 1F 100 AcDbSymbolTableRecord 100 AcDbViewportTableRecord 2 *Active 70 0 10 0.0 20 0.0 11 1.0 21 1.0 12 603786.6640625001 22 963053.5859375001 13 0.0 23 0.0 14 1.0 24 1.0 15 0.0 25 0.0 16 0.0 26 0.0 36 1.0 17 0.0 27 0.0 37 0.0 40 2854.418495493941 41 1.635026737967914 42 50.0 43 0.0 44 0.0 50 0.0 51 0.0 71 0 72 100 73 1 74 1 75 0 76 0 77 0 78 0 281 0 65 1 110 0.0 120 0.0 130 0.0 111 1.0 121 0.0 131 0.0 112 0.0 122 1.0 132 0.0 79 0 146 0.0 0 ENDTAB 0 TABLE 2 LTYPE 5 1A 330 0 100 AcDbSymbolTable 70 2 0 LTYPE 5 1B 330 1A 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 ByBlock 70 0 3 72 65 73 0 40 0.0 0 LTYPE 5 1C 330 1A 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 ByLayer 70 0 3 72 65 73 0 40 0.0 0 LTYPE 5 A 330 1A 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 Continuous 70 0 3 Solid line 72 65 73 0 40 0.0 0 ENDTAB 0 TABLE 2 LAYER 5 12 102 {ACAD_XDICTIONARY 360 13 102 } 330 0 100 AcDbSymbolTable 70 21 0 LAYER 5 6 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 0 70 0 62 7 6 Continuous 370 -3 390 7 0 LAYER 5 247 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 FERR_LIN 70 0 62 7 6 Continuous 370 -3 390 7 0 LAYER 5 B161 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 GRIGLIA 70 0 62 150 6 Continuous 370 -3 390 7 0 LAYER 5 B16B 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 GRIGLIA_TESTI 70 0 62 150 6 Continuous 370 -3 390 7 0 LAYER 5 2CD 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 QUARTIERI 70 0 62 30 6 Continuous 370 -3 390 7 0 LAYER 5 2D6 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 QUARTIERI_TESTI 70 0 62 30 6 Continuous 370 -3 390 7 0 LAYER 5 2DA 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 SCARPATE 70 0 62 253 6 Continuous 370 -3 390 7 0 LAYER 5 33D 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 TOPONIMI 70 0 62 253 6 Continuous 370 -3 390 7 0 LAYER 5 376 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 TORRENTIRID 70 0 62 140 6 Continuous 370 -3 390 7 0 LAYER 5 B15E 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 TUSCS 70 0 62 50 6 Continuous 370 -3 390 7 0 LAYER 5 388 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 VESPOL 70 0 62 253 6 Continuous 370 -3 390 7 0 LAYER 5 3C0 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 VESPUN 70 0 62 253 6 Continuous 370 -3 390 7 0 LAYER 5 437 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 VIAB02NOMI 70 0 62 254 6 Continuous 370 -3 390 7 0 LAYER 5 1245 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 VIAB04 70 0 62 3 6 Continuous 370 -3 390 7 0 LAYER 5 3C0C 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 VIAB04_TESTI 70 0 62 3 6 Continuous 370 -3 390 7 0 LAYER 5 2E 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 VUOVIA 70 0 62 253 6 Continuous 370 -3 390 7 0 LAYER 5 B50 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 VIAB02NOMI_TESTI 70 0 62 1 6 Continuous 370 -3 390 7 0 LAYER 5 65DB 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 FABBRI 70 0 62 31 6 Continuous 370 -3 390 7 0 LAYER 5 A609 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 VIAB01 70 0 62 7 6 Continuous 370 -3 390 7 0 LAYER 5 7F4B 330 12 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 VESLIN 70 0 62 253 6 Continuous 370 -3 390 7 0 ENDTAB 0 TABLE 2 STYLE 5 17 330 0 100 AcDbSymbolTable 70 2 0 STYLE 5 18 330 17 100 AcDbSymbolTableRecord 100 AcDbTextStyleTableRecord 2 Standard 70 0 40 0.0 41 1.0 50 0.0 71 0 42 0.2 3 txt 4 0 STYLE 5 B51 330 17 100 AcDbSymbolTableRecord 100 AcDbTextStyleTableRecord 2 Arial 70 0 40 0.0 41 1.0 50 0.0 71 0 42 0.2 3 ARIAL.TTF 4 1001 ACAD 1000 Arial 1071 0 0 ENDTAB 0 TABLE 2 VIEW 5 1D 330 0 100 AcDbSymbolTable 70 0 0 ENDTAB 0 TABLE 2 UCS 5 1E 330 0 100 AcDbSymbolTable 70 0 0 ENDTAB 0 TABLE 2 APPID 5 21 330 0 100 AcDbSymbolTable 70 1 0 APPID 5 16 330 21 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 ACAD 70 0 0 ENDTAB 0 TABLE 2 DIMSTYLE 5 22 330 0 100 AcDbSymbolTable 70 2 100 AcDbDimStyleTable 71 0 0 DIMSTYLE 105 2C 330 22 100 AcDbSymbolTableRecord 100 AcDbDimStyleTableRecord 2 Standard 70 0 340 18 0 ENDTAB 0 TABLE 2 BLOCK_RECORD 5 1 330 0 100 AcDbSymbolTable 70 1 0 BLOCK_RECORD 5 2 102 {ACAD_XDICTIONARY 360 3 102 } 330 1 100 AcDbSymbolTableRecord 100 AcDbBlockTableRecord 2 *Model_Space 340 C 0 BLOCK_RECORD 5 E 330 1 100 AcDbSymbolTableRecord 100 AcDbBlockTableRecord 2 *Paper_Space 340 11 0 ENDTAB 0 ENDSEC 0 SECTION 2 BLOCKS 0 BLOCK 5 5 330 2 100 AcDbEntity 8 0 100 AcDbBlockBegin 2 *Model_Space 70 0 10 0.0 20 0.0 30 0.0 3 *Model_Space 1 0 ENDBLK 5 B 330 2 100 AcDbEntity 8 0 100 AcDbBlockEnd 0 BLOCK 5 F 330 E 100 AcDbEntity 67 1 8 0 100 AcDbBlockBegin 2 *Paper_Space 70 0 10 0.0 20 0.0 30 0.0 3 *Paper_Space 1 0 ENDBLK 5 10 330 E 100 AcDbEntity 67 1 8 0 100 AcDbBlockEnd 0 ENDSEC 0 SECTION 2 ENTITIES 0 LWPOLYLINE 5 2D 330 2 100 AcDbEntity 8 VUOVIA 100 AcDbPolyline 90 33 70 0 43 0.0 10 605067.461566588 20 964463.8900049555 10 605066.1518000001 20 964456.5304000005 10 605063.7647000002 20 964450.0256000032 10 605062.2284000013 20 964446.8836000022 10 605060.9081000006 20 964444.3896999993 10 605059.7345000003 20 964441.822400002 10 605058.2675000019 20 964439.0351000019 10 605056.7272000005 20 964436.614600001 10 605054.8201000011 20 964434.5607999992 10 605053.8715000023 20 964433.7307999991 10 605053.0597000011 20 964433.0204000027 10 605051.8126999996 20 964432.2869000006 10 605050.1256999997 20 964431.4801000003 10 605048.9832999995 20 964431.1649000012 10 605047.9984999998 20 964430.8933000006 10 605046.7014000006 20 964430.8231000024 10 605045.2846000009 20 964430.7466000022 10 605042.0571999997 20 964430.4531999994 10 605035.9438000005 20 964430.1807000005 10 605034.2199999998 20 964429.9991999995 10 605029.2704999996 20 964429.9230000022 10 605023.8299000003 20 964430.5518999994 10 605019.5698000006 20 964431.2432000004 10 605014.9455999993 20 964432.5893000011 10 605010.626600001 20 964434.2849000024 10 605005.5176000008 20 964436.2206999995 10 605001.8887000018 20 964438.1926000008 10 604998.1287000012 20 964441.2343000025 10 604994.8519000011 20 964445.0837999993 10 604992.1574000009 20 964449.1583000013 10 604990.3370000003 20 964452.9418000002 10 604988.7713000011 20 964458.1443000008 10 604986.9848936607 20 964462.5783273287 0 LWPOLYLINE 5 36 330 2 100 AcDbEntity 8 VUOVIA 100 AcDbPolyline 90 8 70 1 43 0.0 10 605038.3097 20 964417.4635000043 10 605036.2088000001 20 964411.8126999979 10 605032.9289000007 20 964414.1215000004 10 605030.8686000016 20 964415.2428000012 10 605030.6259000013 20 964415.3749000039 10 605028.6983000003 20 964417.4445000011 10 605031.4258000013 20 964417.258899998 10 605034.9945999998 20 964417.0161000026 0 LWPOLYLINE 5 C4 330 2 100 AcDbEntity 8 VUOVIA 100 AcDbPolyline 90 26 70 1 43 0.0 10 603445.1815999998 20 963097.616200002 10 603444.025200001 20 963097.5636000037 10 603442.7571000001 20 963097.7266000007 10 603441.3175999997 20 963098.3131000029 10 603440.2007000009 20 963099.2204999998 10 603439.3112000013 20 963100.4066000024 10 603438.7155999998 20 963101.7378000002 10 603438.5389 20 963103.4700000007 10 603438.9316999996 20 963105.3219000008 10 603439.4432000016 20 963106.3120000046 10 603439.6689999997 20 963106.5830000025 10 603440.104700001 20 963107.105800003 10 603441.4987999992 20 963108.1560999994 10 603442.9342999999 20 963108.7232000009 10 603444.4706000016 20 963108.8629000002 10 603446.0024000006 20 963108.5491000023 10 603447.1664000005 20 963108.0453000013 10 603448.1980999997 20 963107.2027000023 10 603449.1846000012 20 963105.8812000027 10 603449.6464 20 963104.7010000031 10 603449.8492 20 963103.2444999982 10 603449.7118999995 20 963101.8539000024 10 603449.3681000014 20 963101.0634000004 10 603448.9886000017 20 963100.1905000024 10 603447.8212000011 20 963098.8406000007 10 603446.6119 20 963098.0631000028 0 TEXT 5 53E1 330 2 100 AcDbEntity 8 VIAB04_TESTI 100 AcDbText 10 605403.3043343842 20 962381.2785594415 30 0.0 40 1.016002032004063 1 24 A 7 Arial 72 1 11 605404.7652704576 21 962380.9777784853 31 0.0 100 AcDbText 73 1 0 TEXT 5 53E2 330 2 100 AcDbEntity 8 VIAB04_TESTI 100 AcDbText 10 605167.4293343854 20 962423.9035594415 30 0.0 40 1.016002032004063 1 49 A 7 Arial 72 1 11 605168.8902704587 21 962423.6027784853 31 0.0 100 AcDbText 73 1 0 LWPOLYLINE 5 AE8E 330 2 100 AcDbEntity 8 VIAB01 100 AcDbPolyline 90 117 70 1 43 0.0 10 605234.4713000003 20 964005.9986000006 10 605228.7942000003 20 964007.4591000006 10 605253.3174999999 20 964096.7792000008 10 605253.3578000003 20 964096.9129000009 10 605253.7092000005 20 964097.9879000001 10 605253.7198999999 20 964098.0200999994 10 605253.7890999997 20 964098.2039 10 605253.8044999996 20 964098.2404999995 10 605254.2511 20 964099.2795000002 10 605254.3167000003 20 964099.4217000008 10 605254.3685999997 20 964099.5220999997 10 605254.9067000001 20 964100.5168999994 10 605254.9473000001 20 964100.5896000006 10 605255.0456999997 20 964100.7484000009 10 605255.6710000001 20 964101.6907000002 10 605255.6763000004 20 964101.6985999998 10 605255.7906 20 964101.8582000008 10 605255.8300000001 20 964101.9083999992 10 605256.5373999998 20 964102.7907999998 10 605256.6226000004 20 964102.8923000005 10 605256.7156999996 20 964102.9936999997 10 605257.4995999997 20 964103.8089000005 10 605257.5406999999 20 964103.8508000001 10 605257.6840000003 20 964103.9849999994 10 605257.6948999996 20 964103.9945000002 10 605258.5488 20 964104.7360999994 10 605258.6896000001 20 964104.8511999995 10 605258.7604000001 20 964104.9037999996 10 605259.6775000003 20 964105.5656000004 10 605259.7663000003 20 964105.6272999998 10 605259.9033000004 20 964105.7136000004 10 605260.8761999998 20 964106.2903000005 10 605260.9058999997 20 964106.3077000007 10 605261.0789999999 20 964106.4002 10 605261.1140000001 20 964106.4171999992 10 605262.1347000003 20 964106.9042000008 10 605262.2785 20 964106.9682000001 10 605262.3833999997 20 964107.0094000008 10 605263.4437999995 20 964107.4026999996 10 605263.5226999997 20 964107.4307000003 10 605263.7007 20 964107.4849999995 10 605264.7921000001 20 964107.7814000007 10 605264.8019000003 20 964107.7840999999 10 605264.9930999996 20 964107.8287000006 10 605265.0553000002 20 964107.8402999994 10 605266.1688999999 20 964108.0374999997 10 605266.3004000001 20 964108.0578000007 10 605266.4365999997 20 964108.0725999998 10 605267.5635000002 20 964108.1688999999 10 605267.6227000002 20 964108.1733999998 10 605267.8189000003 20 964108.1798000001 10 605267.8329999997 20 964108.1798000001 10 605268.9638999999 20 964108.1744999999 10 605269.1459999998 20 964108.1680999995 10 605269.2334000003 20 964108.1611000002 10 605270.3592999996 20 964108.0541999992 10 605270.4672999997 20 964108.0418999997 10 605270.6264000004 20 964108.0165999998 10 605271.7381999996 20 964107.8090000004 10 605271.7728000004 20 964107.8024000005 10 605271.9639999997 20 964107.7577999999 10 605272.0011 20 964107.7476000004 10 605273.0895999996 20 964107.4408999998 10 605273.2402999997 20 964107.3940999993 10 605273.3454999998 20 964107.3562000002 10 605274.4022000004 20 964106.9529999999 10 605274.4808 20 964106.9217000008 10 605274.6497999998 20 964106.8454999999 10 605275.6659000004 20 964106.3489999995 10 605275.6756999996 20 964106.3442000003 10 605275.7857999997 20 964106.2871000004 10 605296.5012999997 20 964094.9835 10 605298.1973000001 20 964094.1017000006 10 605299.8998999996 20 964093.3014000003 10 605301.6333999997 20 964092.5700000003 10 605303.3947999999 20 964091.9087000007 10 605305.1812000004 20 964091.3186000009 10 605307.0477 20 964090.7839000002 10 605306.2215999998 20 964087.8999000006 10 605305.4451000001 20 964085.0021000002 10 605305.3954999996 20 964085.0159000009 10 605303.4711999996 20 964085.5670999997 10 605303.3563000001 20 964085.602499999 10 605301.4556 20 964086.2303999998 10 605301.4323000005 20 964086.2381999996 10 605301.3421000001 20 964086.2704000008 10 605299.4681000002 20 964086.9739999995 10 605299.3744999999 20 964087.0110000001 10 605299.3564999997 20 964087.0185000004 10 605297.5121999998 20 964087.796599999 10 605297.4022000004 20 964087.8456999995 10 605295.5905999998 20 964088.6972000004 10 605295.5398000004 20 964088.7215999999 10 605295.4828000004 20 964088.7504999993 10 605293.7067999998 20 964089.6739000009 10 605293.6536999997 20 964089.7020999995 10 605272.9710999997 20 964100.9878000003 10 605272.1370000001 20 964101.3954000008 10 605271.3324999995 20 964101.702299999 10 605270.5039999997 20 964101.9357999994 10 605269.6577000004 20 964102.0938000009 10 605268.8006999996 20 964102.1752000005 10 605267.9397999998 20 964102.1791999992 10 605267.0821000003 20 964102.1059000008 10 605266.2344000005 20 964101.9558000007 10 605265.4035999998 20 964101.7302000001 10 605264.5964999999 20 964101.4308000002 10 605263.8196000001 20 964101.0601000004 10 605263.0789999999 20 964100.6210999993 10 605262.381 20 964100.1174999999 10 605261.7309999997 20 964099.5528999996 10 605261.1342000002 20 964098.9322999995 10 605260.5958000003 20 964098.2607000005 10 605260.1198000004 20 964097.5434000008 10 605259.7101999996 20 964096.7862000001 10 605259.3701999998 20 964095.9952000008 10 605259.0824999995 20 964095.1151000002 0 LWPOLYLINE 5 B1B9 330 2 100 AcDbEntity 8 FABBRI 100 AcDbPolyline 90 12 70 0 43 0.0 10 605432.0055819957 20 963146.2840280269 10 605430.7353971335 20 963140.603414833 10 605425.809581031 20 963141.9281802715 10 605423.9687499774 20 963136.4999999805 10 605341.1515153713 20 963156.8659114115 10 605348.750000009 20 963185.6249999753 10 605363.8437500146 20 963181.7656249964 10 605370.2031249767 20 963205.9375000064 10 605402.7812500186 20 963197.562499975 10 605406.3682850699 20 963210.9199146306 10 605430.7495699418 20 963203.524590796 10 605431.0016530944 20 963203.4812683187 0 POINT 5 3C0A 330 2 100 AcDbEntity 8 VIAB04 100 AcDbPoint 10 602685.9717 20 964122.329500001 30 0.0 0 POINT 5 3CA 330 2 100 AcDbEntity 8 VESPUN 100 AcDbPoint 10 602499.40625 20 962249.5781250002 30 0.0 0 POINT 5 3CB 330 2 100 AcDbEntity 8 VESPUN 100 AcDbPoint 10 602378.4531250001 20 962051.515625 30 0.0 0 POINT 5 3CA 330 2 100 AcDbEntity 8 VESPUN 100 AcDbPoint 10 602499.40625 20 962249.5781250002 30 0.0 0 ENDSEC 0 EOF libspatialite-4.3.0a/test/check_get_normal_row.c0000664000175000017500000003031012544707704016735 00000000000000/* check_get_normal_row.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011, 2014 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); char *old_SPATIALITE_SECURITY_ENV = NULL; #ifdef _WIN32 char *env; #endif /* not WIN32 */ old_SPATIALITE_SECURITY_ENV = getenv ("SPATIALITE_SECURITY"); #ifdef _WIN32 putenv ("SPATIALITE_SECURITY=relaxed"); #else /* not WIN32 */ setenv ("SPATIALITE_SECURITY", "relaxed", 1); #endif ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_get_normal_row.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (old_SPATIALITE_SECURITY_ENV) { #ifdef _WIN32 env = sqlite3_mprintf ("SPATIALITE_SECURITY=%s", old_SPATIALITE_SECURITY_ENV); putenv (env); sqlite3_free (env); #else /* not WIN32 */ setenv ("SPATIALITE_SECURITY", old_SPATIALITE_SECURITY_ENV, 1); #endif } else { #ifdef _WIN32 putenv ("SPATIALITE_SECURITY="); #else /* not WIN32 */ unsetenv ("SPATIALITE_SECURITY"); #endif } if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* create tables to support future testing */ ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesTable(\"test1_matrix_tiles\", 4326, -180.0, -90.0, 180.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesTable() float bounds result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -3; } /* create matrix levels 0, 1, 2 and 4 */ ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesZoomLevel(0) result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 1, 360, 180)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesZoomLevel(1) result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -5; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 2, 360, 180)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesZoomLevel(2) result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -6; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4, 360, 180)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesZoomLevel(4) result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -7; } /* Check a proper INSERT */ ret = sqlite3_exec (db_handle, "INSERT INTO test1_matrix_tiles VALUES (6, 0, 0 ,0, BlobFromFile('empty.png'))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT error 11: %s\n", err_msg); sqlite3_free (err_msg); return -11; } ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 0, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error12: %s\n", err_msg); sqlite3_free (err_msg); return -12; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table (results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -13; } if (strcmp (results[1 * columns + 0], "0") != 0) { fprintf (stderr, "Unexpected result (got %s, expected 0)", results[rows * columns + 0]); sqlite3_free_table (results); return -14; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error 2: %s\n", err_msg); sqlite3_free (err_msg); return -15; } if ((rows != 1) || (columns != 1)) { sqlite3_free_table (results); fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -16; } if (strcmp (results[1 * columns + 0], "3") != 0) { fprintf (stderr, "Unexpected result (got %s, expected 3)", results[rows * columns + 0]); sqlite3_free_table (results); return -17; } sqlite3_free_table (results); /* test an out-of-range zoom number - expect exception */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 5, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for overrange zoom level, got %i\n", ret); sqlite3_free (err_msg); return -18; } if (strcmp (err_msg, "gpkgGetNormalRow: tile table or zoom level not found") != 0) { fprintf (stderr, "Unexpected error message for overrange zoom level: %s\n", err_msg); sqlite3_free (err_msg); return -19; } sqlite3_free (err_msg); ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", -1, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for underrange zoom level, got %i\n", ret); sqlite3_free (err_msg); return -20; } if (strcmp (err_msg, "gpkgGetNormalRow: tile table or zoom level not found") != 0) { fprintf (stderr, "Unexpected error message for underrange zoom level: %s\n", err_msg); sqlite3_free (err_msg); return -21; } sqlite3_free (err_msg); /* test bad table name */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"no_such_table\", 0, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for bad table name level, got %i\n", ret); sqlite3_free (err_msg); return -22; } if (strcmp (err_msg, "gpkgGetNormalRow: tile table or zoom level not found") != 0) { fprintf (stderr, "Unexpected error message for bad table name: %s\n", err_msg); sqlite3_free (err_msg); return -23; } sqlite3_free (err_msg); /* test bad argument types */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(3, 0, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for bad arg1 type, got %i\n", ret); sqlite3_free (err_msg); return -26; } if (strcmp (err_msg, "gpkgGetNormalRow() error: argument 1 [tile_table_name] is not of the String type") != 0) { fprintf (stderr, "Unexpected error message for bad arg1 type: %s\n", err_msg); sqlite3_free (err_msg); return -27; } sqlite3_free (err_msg); /* test bad argument types */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 3.2, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for bad arg2 type, got %i\n", ret); sqlite3_free (err_msg); return -28; } if (strcmp (err_msg, "gpkgGetNormalRow() error: argument 2 [normal zoom level] is not of the integer type") != 0) { fprintf (stderr, "Unexpected error message for bad arg2 type: %s\n", err_msg); sqlite3_free (err_msg); return -29; } sqlite3_free (err_msg); /* test bad argument types */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, 1.6)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for bad arg3 type, got %i\n", ret); sqlite3_free (err_msg); return -30; } if (strcmp (err_msg, "gpkgGetNormalRow() error: argument 3 [inverted_row_number] is not of the integer type") != 0) { fprintf (stderr, "Unexpected error message for bad arg3 type: %s\n", err_msg); sqlite3_free (err_msg); return -31; } sqlite3_free (err_msg); /* test overrange row number */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, 4)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for overrange row number level, got %i\n", ret); sqlite3_free (err_msg); return -32; } if (strcmp (err_msg, "gpkgGetNormalRow: row number outside of matrix height range") != 0) { fprintf (stderr, "Unexpected error message for overrange zoom level: %s\n", err_msg); sqlite3_free (err_msg); return -33; } sqlite3_free (err_msg); /* test underrange row number */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 2, -1)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for underrange row number level, got %i\n", ret); sqlite3_free (err_msg); return -34; } if (strcmp (err_msg, "gpkgGetNormalRow: row number outside of matrix height range") != 0) { fprintf (stderr, "Unexpected error message for underrange zoom level: %s\n", err_msg); sqlite3_free (err_msg); return -35; } sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.3.0a/test/test-invalid.sqlite0000664000175000017500000152200012544707704016247 00000000000000SQLite format 3@ %©g%-æQk©ûöñìçâÝØÓÎÉÄ¿ºµ°«¦¡œ—’ˆƒ~ytoje`[VQLGB=83.)$ ü÷òíèãÞÙÔÏÊÅÀ»¶±¬§¢˜“މ„zupk¨o§m¤j£i¢h¡g fŸeždcœb›aš`™_˜^—]–\•[”Z“Y’X‘WVUŽTSŒR‹QŠP‰OˆN‡M†L…K„JƒI‚HG€FE~D}C|B{Az?y=x<w;v:u9t8s7r6q5p4o3n2m1l0k/j.i,h*g)f(e'd&1%+(%"   §Ì—§…k³x 3)ŠepsgYøED50 / UTM zone 32N+proj=utm +zone=32 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_defsPROJCS["ED50 / UTM zone 32N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","23032"]]3K NONEUndefined - Geographic Long/LatUndefined*ÿÿÿÿÿÿÿÿÿ7 NONEÿUndefined - CartesianUndefinedû6û5 ÂèРcom2011ž1sql_statements_log 1spatialite_history ääcom2011geometryYø ìì com2011geometry }}’®‚++ƒ[tablespatial_ref_sysspatial_ref_sysCREATE TABLE spatial_ref_sys ( srid INTEGER NOT NULL PRIMARY KEY, auth_name TEXT NOT NULL, auth_srid INTEGER NOT NULL, ref_sys_name TEXT NOT NULL DEFAULT 'Unknown', proj4text TEXT NOT NULL, srtext TEXT NOT NULL DEFAULT 'Undefined')‚11ƒ]tablespatialite_historyspatialite_historyCREATE TABLE spatialite_history ( event_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, table_name TEXT NOT NULL, geometry_column TEXT, event TEXT NOT NULL, timestamp TEXT NOT NULL, ver_sqlite TEXT NOT NULL, ver_splite TEXT NOT NULL)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq) ßß¿ƒ]--†mtablegeometry_columnsgeometry_columnsCREATE TABLE geometry_columns ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, geometry_type INTEGER NOT NULL, coord_dimension INTEGER NOT NULL, srid INTEGER NOT NULL, spatial_index_enabled INTEGER NOT NULL, CONSTRAINT pk_geom_cols PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_srs FOREIGN KEY (srid) REFERENCES spatial_ref_sys (srid), CONSTRAINT ck_gc_rtree CHECK (spatial_index_enabled IN (0,1,2)))?S-indexsqlite_autoindex_geometry_columns_1geometry_columns   0}„99‡Wtableviews_geometry_columnsviews_geometry_columns CREATE TABLE views_geometry_columns ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, view_rowid TEXT NOT NULL, f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, read_only INTEGER NOT NULL, CONSTRAINT pk_geom_cols_views PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_views_geom_cols FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE, CONSTRAINT ck_vw_rdonly CHECK (read_only IN (0,1)))K_9indexsqlite_autoindex_views_geometry_columns_1views_geometry_columns ƒ99…tablevirts_geometry_columnsvirts_geometry_columns CREATE TABLE virts_geometry_columns ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, geometry_type INTEGER NOT NULL, coord_dimension INTEGER NOT NULL, srid INTEGER NOT NULL, CONSTRAINT pk_geom_cols_virts PRIMARY KEY (virt_name, virt_geometry), CONSTRAINT fk_vgc_srid FOREIGN KEY (srid) REFERENCES spatial_ref_sys (srid))   II–©K _9indexsqlite_autoindex_virts_geometry_columns_1virts_geometry_columns „ CC‡'tablegeometry_columns_statisticsgeometry_columns_statisticsCREATE TABLE geometry_columns_statistics ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, last_verified TIMESTAMP, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_gc_statistics PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_statistics FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)U iCindexsqlite_autoindex_geometry_columns_statistics_1geometry_columns_statistics ææ com2011geometry ìì com2011geometry   ŠŠ„ OO‡tableviews_geometry_columns_statisticsviews_geometry_columns_statisticsCREATE TABLE views_geometry_columns_statistics ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, last_verified TIMESTAMP, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_vwgc_statistics PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_vwgc_statistics FOREIGN KEY (view_name, view_geometry) REFERENCES views_geometry_columns (view_name, view_geometry) ON DELETE CASCADE)a uOindexsqlite_autoindex_views_geometry_columns_statistics_1views_geometry_columns_statistics   ˆˆ„OO‡tablevirts_geometry_columns_statisticsvirts_geometry_columns_statisticsCREATE TABLE virts_geometry_columns_statistics ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, last_verified TIMESTAMP, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_vrtgc_statistics PRIMARY KEY (virt_name, virt_geometry), CONSTRAINT fk_vrtgc_statistics FOREIGN KEY (virt_name, virt_geometry) REFERENCES virts_geometry_columns (virt_name, virt_geometry) ON DELETE CASCADE)auOindexsqlite_autoindex_virts_geometry_columns_statistics_1virts_geometry_columns_statistics   Íͧ…WEEŠ1tablegeometry_columns_field_infosgeometry_columns_field_infosCREATE TABLE geometry_columns_field_infos ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, ordinal INTEGER NOT NULL, column_name TEXT NOT NULL, null_values INTEGER NOT NULL, integer_values INTEGER NOT NULL, double_values INTEGER NOT NULL, text_values INTEGER NOT NULL, blob_values INTEGER NOT NULL, max_size INTEGER, integer_min INTEGER, integer_max INTEGER, double_min DOUBLE, double_max DOUBLE, CONSTRAINT pk_gcfld_infos PRIMARY KEY (f_table_name, f_geometry_column, ordinal, column_name), CONSTRAINT fk_gcfld_infos FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)WkEindexsqlite_autoindex_geometry_columns_field_infos_1geometry_columns_field_infos   ÁÁ›…WQQŠtableviews_geometry_columns_field_infosviews_geometry_columns_field_infosCREATE TABLE views_geometry_columns_field_infos ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, ordinal INTEGER NOT NULL, column_name TEXT NOT NULL, null_values INTEGER NOT NULL, integer_values INTEGER NOT NULL, double_values INTEGER NOT NULL, text_values INTEGER NOT NULL, blob_values INTEGER NOT NULL, max_size INTEGER, integer_min INTEGER, integer_max INTEGER, double_min DOUBLE, double_max DOUBLE, CONSTRAINT pk_vwgcfld_infos PRIMARY KEY (view_name, view_geometry, ordinal, column_name), CONSTRAINT fk_vwgcfld_infos FOREIGN KEY (view_name, view_geometry) REFERENCES views_geometry_columns (view_name, view_geometry) ON DELETE CASCADE)cwQindexsqlite_autoindex_views_geometry_columns_field_infos_1views_geometry_columns_field_infos   ¿¿›…YQQŠtablevirts_geometry_columns_field_infosvirts_geometry_columns_field_infosCREATE TABLE virts_geometry_columns_field_infos ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, ordinal INTEGER NOT NULL, column_name TEXT NOT NULL, null_values INTEGER NOT NULL, integer_values INTEGER NOT NULL, double_values INTEGER NOT NULL, text_values INTEGER NOT NULL, blob_values INTEGER NOT NULL, max_size INTEGER, integer_min INTEGER, integer_max INTEGER, double_min DOUBLE, double_max DOUBLE, CONSTRAINT pk_vrtgcfld_infos PRIMARY KEY (virt_name, virt_geometry, ordinal, column_name), CONSTRAINT fk_vrtgcfld_infos FOREIGN KEY (virt_name, virt_geometry) REFERENCES virts_geometry_columns (virt_name, virt_geometry) ON DELETE CASCADE)cwQindexsqlite_autoindex_virts_geometry_columns_field_infos_1virts_geometry_columns_field_infos ¡¡]===com2011geometry2013-03-24T13:25:51.768Z0000-01-01T00:00:00.000Z2013-03-24T13:36:59.733Z ìì com2011geometry wwµ„;77ˆtablegeometry_columns_timegeometry_columns_time CREATE TABLE geometry_columns_time ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, last_insert TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', last_update TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', last_delete TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', CONSTRAINT pk_gc_time PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_time FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)I]7indexsqlite_autoindex_geometry_columns_time_1geometry_columns_time! êêcom2011geometry ìì com2011geometry §§µ„ 77‡5tablegeometry_columns_authgeometry_columns_auth#CREATE TABLE geometry_columns_auth ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, read_only INTEGER NOT NULL, hidden INTEGER NOT NULL, CONSTRAINT pk_gc_auth PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_auth FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE, CONSTRAINT ck_gc_ronly CHECK (read_only IN (0,1)), CONSTRAINT ck_gc_hidden CHECK (hidden IN (0,1)))I]7indexsqlite_autoindex_geometry_columns_auth_1geometry_columns_auth$   $$å<ƒ>CC†tableviews_geometry_columns_authviews_geometry_columns_auth&CREATE TABLE views_geometry_columns_auth ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, hidden INTEGER NOT NULL, CONSTRAINT pk_vwgc_auth PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_vwgc_auth FOREIGN KEY (view_name, view_geometry) REFERENCES views_geometry_columns (view_name, view_geometry) ON DELETE CASCADE, CONSTRAINT ck_vwgc_hidden CHECK (hidden IN (0,1)))UiCindexsqlite_autoindex_views_geometry_columns_auth_1views_geometry_columns_auth'ƒACC† tablevirts_geometry_columns_authvirts_geometry_columns_auth)CREATE TABLE virts_geometry_columns_auth ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, hidden INTEGER NOT NULL, CONSTRAINT pk_vrtgc_auth PRIMARY KEY (virt_name, virt_geometry), CONSTRAINT fk_vrtgc_auth FOREIGN KEY (virt_name, virt_geometry) REFERENCES virts_geometry_columns (virt_name, virt_geometry) ON DELETE CASCADE, CONSTRAINT ck_vrtgc_hidden CHECK (hidden IN (0,1)))   ððGUiCindexsqlite_autoindex_virts_geometry_columns_auth_1virts_geometry_columns_auth*ƒ611†tablesql_statements_logsql_statements_log,CREATE TABLE sql_statements_log ( id INTEGER PRIMARY KEY AUTOINCREMENT, time_start TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', time_end TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', user_agent TEXT NOT NULL, sql_statement TEXT NOT NULL, success INTEGER NOT NULL DEFAULT 0, error_cause TEXT NOT NULL DEFAULT 'ABORTED', CONSTRAINT sqllog_success CHECK (success IN (0,1)))}ƒQtablecom2011com2011-CREATE TABLE "com2011" ( "PK_UID" INTEGER PRIMARY KEY AUTOINCREMENT, "COD_REG" INTEGER, "COD_PRO" INTEGER, "PRO_COM" INTEGER, "NOME_COM" TEXT, "NOME_TED" TEXT, "SHAPE_Leng" DOUBLE, "SHAPE_Area" DOUBLE, "Geometry" MULTIPOLYGON)û8û7 ÄcúôîèâÜÖÐÊÄ=›4›› Ôšx¸’ŒcYˆLSˆKI‡|H„o EæžV)Ân_E 1spatialite_history13 com201112RCigeometry_columns_statisticssqlite_autoindex_geometry_columns_statistics_11 1 1<-Sgeometry_columnssqlite_autoindex_geometry_columns_11 1 1'--geometry_columnsidx_srid_geocols1 1++3spatial_ref_sysidx_spatial_ref_sys3 1 1F7]geometry_columns_timesqlite_autoindex_geometry_columns_time_11 1 1F7]geometry_columns_authsqlite_autoindex_geometry_columns_auth_11 1 11sql_statements_log11 ³f:àµrWCi geometry_columns_statisticssqlite_autoindex_geometry_columns_statistics_1com2011A-S geometry_columnssqlite_autoindex_geometry_columns_1com2011)-- geometry_columnsidx_srid_geocolsYø-+3 spatial_ref_sysidx_spatial_ref_sysYø)+3 spatial_ref_sysidx_spatial_ref_sys*+3 spatial_ref_sysidx_spatial_ref_sysÿK7] geometry_columns_timesqlite_autoindex_geometry_columns_time_1com2011K7] geometry_columns_authsqlite_autoindex_geometry_columns_auth_1com2011 úú Yø wwÄ †|K %%[tablesqlite_stat1sqlite_stat1.CREATE TABLE sqlite_stat1(tbl,idx,stat)Z!%%ytablesqlite_stat3sqlite_stat3/CREATE TABLE sqlite_stat3(tbl,idx,neq,nlt,ndlt,sample)d"--}indexidx_srid_geocolsgeometry_columns0CREATE INDEX idx_srid_geocols ON geometry_columns (srid)#'99indexidx_viewsjoinviews_geometry_columns2CREATE INDEX idx_viewsjoin ON views_geometry_columns (f_table_name, f_geometry_column)k$'9indexidx_virtssridvirts_geometry_columns3CREATE INDEX idx_virtssrid ON virts_geometry_columns (srid)%3+1indexidx_spatial_ref_sysspatial_ref_sys4CREATE UNIQUE INDEX idx_spatial_ref_sys ON spatial_ref_sys (auth_srid, auth_name)   ßõìß YøepsgYøNONE ÿNONEÿ ›¥IÂ;¯#› -=!geometry_columnstrigger 'geometry_columns_geometry_type_insert' successfully created2013-03-24T13:24:13.466Z3.7.164.1.0-beta  -=!geometry_columnstrigger 'geometry_columns_f_geometry_column_update' successfully created2013-03-24T13:24:13.466Z3.7.164.1.0-beta  -=!geometry_columnstrigger 'geometry_columns_f_geometry_column_insert' successfully created2013-03-24T13:24:13.466Z3.7.164.1.0-beta -=!geometry_columnstrigger 'geometry_columns_f_table_name_update' successfully created2013-03-24T13:24:13.463Z3.7.164.1.0-beta -=!geometry_columnstrigger 'geometry_columns_f_table_name_insert' successfully created2013-03-24T13:24:13.463Z3.7.164.1.0-betaZ-A=!geometry_columnstable successfully created2013-03-24T13:24:13.463Z3.7.164.1.0-betaY+A=!spatial_ref_systable successfully created2013-03-24T13:24:13.461Z3.7.164.1.0-beta xîdô—z =!com2011GeometryGeometry [MULTIPOLYGON,XY,SRID=23032] successfully created2013-03-24T13:25:48.733Z3.7.164.1.0-beta[ +E=!spatial_ref_systable successfully populated2013-03-24T13:24:19.278Z3.7.164.1.0-betan /g=!geom_cols_ref_sysview 'geom_cols_ref_sys' successfully created2013-03-24T13:24:13.468Z3.7.164.1.0-beta -=!geometry_columnstrigger 'geometry_columns_coord_dimension_update' successfully created2013-03-24T13:24:13.468Z3.7.164.1.0-beta -=!geometry_columnstrigger 'geometry_columns_coord_dimension_insert' successfully created2013-03-24T13:24:13.468Z3.7.164.1.0-beta -=!geometry_columnstrigger 'geometry_columns_geometry_type_update' successfully created2013-03-24T13:24:13.468Z3.7.164.1.0-beta yOÀžùy~==)o 2013-03-24T13:28:08.407Z2013-03-24T13:28:08.572Zspatialite_guiselect * from com2011 where isvalid(geometry) = 1success" ==)5 2013-03-24T13:27:34.407Z2013-03-24T13:27:46.903Zspatialite_guidelete from com2011 where isvalid(geometry) = 1 and (pk_uid < 1000 or pk_uid > 1200)success==)q 2013-03-24T13:26:38.566Z2013-03-24T13:26:40.966Zspatialite_guiselect * from com2011 where isvalid(geometry) != 1success==)sW2013-03-24T13:26:32.358Z2013-03-24T13:26:32.458Zspatialite_guiselect * from com2011 where is_valid(geometry) != 1SQL error: no such function: is_valid  ==) 2013-03-24T13:25:11.423Z2013-03-24T13:25:11.887Zspatialite_guidelete FROM "spatial_ref_sys" where srid not in (-1, 0, 23032)success. ==)U2013-03-24T13:25:04.409Z2013-03-24T13:25:04.549Zspatialite_guidelete from FROM "spatial_ref_sys" where srid not in (-1, 0, 23032)SQL error: near "FROM": syntax error ½[ÚRÌV½ ==) 2013-10-31T19:03:05.406Z2013-10-31T19:03:05.477Zspatialite_guiSELECT ST_Equals(a.geometry, b.geometry) FROM com2011 AS a, com2011 AS bsuccesst ==)[ 2013-03-24T13:36:59.715Z2013-03-24T13:36:59.776Zspatialite_guidelete from com2011 where pk_uid > 4000success ==)y 2013-03-24T13:35:32.858Z2013-03-24T13:35:33.059Zspatialite_guidelete from com2011 where pk_uid between 1021 and 1098success ==)} 2013-03-24T13:34:47.760Z2013-03-24T13:34:47.803Zspatialite_guiSELECT ROWID, "PK_UID", isvalid(geometry) FROM "com2011"success==)q 2013-03-24T13:28:55.681Z2013-03-24T13:28:55.899Zspatialite_guiselect * from com2011 where isvalid(geometry) != 1success" ==)5 2013-03-24T13:28:34.704Z2013-03-24T13:28:35.221Zspatialite_guidelete from com2011 where isvalid(geometry) = 1 and (pk_uid < 1020 or pk_uid > 1100)success:fQAÌÀ¡ž1AlL )fQAÌ€ž1AlL`fQAÌ€…ž1AlL` fQAÌrž1AlLþeQAÌÀTž1AlL úeQAÌÀ-ž1AlL@öeQAÌ@ž1AlLàèeQAÌ,ž1AlLãeQAÌ€Nž1AlLàÞeQAÌež1AlLàÕeQAÌ€_ž1AlL@ÌeQAÌ@Kž1AlL@»eQAÌ€:ž1AlL`®eQAÌ@(ž1AlLÀ£eQAÌž1AlL€ŽeQAÌ@©1AlL ŠeQAÌ€;1AlL@†eQAÌÀéœ1AlLàƒeQAÌ€Ÿœ1AlLÀ‚eQAÌ@Lœ1AlL`}eQAÌÀœ1AlLàyeQA̬›1AlL€seQAÌ@P›1AlL heQAÌ€(›1AlL ceQAÌÀñš1AlL YeQAÌ@Öš1AlLàNeQAÌ@»š1AlLÀBeQAÌÀ£š1AlL@9eQAÌÀ·™1AlLÀ/eQAÌÀ¨™1AlLÀeQAÌÀš™1AlLeQAÌ€Œ™1AlL eQAÌ@x™1AlL`eQAÌ€2™1AlLÀùdQAÌ@ߘ1AlLÀôdQAÌ€˜˜1AlLîdQAÌ@A˜1AlL@édQAÌ€˜1AlL âdQAÌ@²—1AlL€ÚdQAÌ@ž—1AlL€ìdQAÌk—1AlL òdQAÌ€—1AlL€ùdQÀŖ1AlL ÿdQAÌÀW–1AlLàeQAÌ€‚•1AlL eQAÌ€ •1AlL eQAÌ€™”1AlL eQAÌÀn”1AlLÀeQAÌ ”1AlL@eQAÌ@Û“1AlL`eQAÌÀ®“1AlL`eQAÌÀ‡“1AlL eQAÌF“1AlL@eQAÌ€“1AlL eQAÌð’1AlL üdQA̦’1AlL@÷dQAÌ@t’1AlL`ñdQAÌ€A’1AlL€èdQAÌ@’1AlLÀãdQAÌ€ü‘1AlL`ðdQAÌ@å‘1AlL@üdQAÌÀ·‘1AlLÀüdQAÌe‘1AlLÀùdQAÌ@ü1Al;L€òdQAÌÀˆ1AlL ædQAÌ@>1AlLÀÞdQAÌ@ú1AlL`ÕdQA̰1AlLÍdQAÌ€‰1AlL€ÉdQAÌ€;1AlLÀËdQAÌÀþŽ1AlLÐdQAÌÀµŽ1AlL€ØdQAÌÀ‰Ž1AlL`ßdQAÌ@zŽ1AlL@±dQAÌpŽ1AlL€£dQAÌiŽ1AlL ‰dQAÌ€cŽ1AlLàtdQAÌ^Ž1AlL`]dQAÌ^Ž1AlLHdQAÌVŽ1AlL5dQAÌÀHŽ1AlL 'dQAÌ@5Ž1AlL dQAÌ€5Ž1AlL° dQAÌ@þ1AlL€dQAÌÀØ1AlLà!dQAÌÀ 1AlL@+dQAÌ€{1AlLà1dQAÌ@G1AlL 9dQAÌÀ1AlL =dQAÌÀîŒ1AlL CdQAÌ«Œ1AlL€JdQAÌÀ_Œ1AlL€MdQAÌ€1Œ1AlLMdQAÌ@ì‹1AlLÀHdQAÌ©‹1AlL`HdQAÌ€i‹1AlL`PdQAÌÀ,‹1AlLàZdQAÌ€‹1AlL ^dQAÌ@½Š1AlLÀZdQAÌÀaŠ1AlL adQAÌ@WŠ1AlLàmdQAÌ€4Š1AlLÀ”dQAÌ@8Š1AlL`²dQAÌNŠ1AlL`ÍdQAÌ@lŠ1AlL îdQAÌÀ‚Š1AlL€ eQA̬Š1AlL 'eQAÌ@äŠ1AlL>eQAÌÀJ‹1AlLÀueQAÌ€{‹1AlLŽeQA̦‹1AlLà£eQAÌæ‹1AlL`ÂeQAÌŒ1AlL°ÎeQAÌÀŒ1AlL`ÐeQAÌGŒ1AlL€ÚeQAÌ€ÁŒ1AlL@îeQAÌ 1AlL@fQAÌ€A1AlLfQAÌ€m1AlLÀ8fQAÌ@1AlLPfQAÌÀÅ1AlLàlfQAÌÀŽ1AlLfQAÌ?Ž1AlL°›fQAÌÀMŽ1AlLÀŸfQAÌ@VŽ1AlL¢fQAÌ€»Ž1AlL µfQAÌ@F1AlL`ÈfQAÌÀ¡<1AlLÀ×fQAÌ@ú1AlL€êfQAÌ€[1AlLÀ÷fQAÌ€º1AlLÀgQAÌÀè1AlL gQAÌÀ‘1AlLÀ1gQAÌd‘1AlLAgQAÌ@¬‘1AlL€>gQAÌ@’1AlL@0gQAÌ@[’1AlLà0gQAÌÀ„’1AlL@nQAÌ€ö™1AlLÀ:nQAÌÇ™1AlLBnQAÌÀ ™1AlL InQAÌÀw™1AlL€OnQAÌÀJ™1AlL@YnQAÌ€U™1AlL_nQAÌÀm™1AlLlnQAÌ€w™1AlLÀunQAÌ€™1AlL„nQAÌ„™1AlL nQAÌ…™1AlLПnQAÌ@…™1AlL€¡nQAÌ€«™1AlL@¥nQAÌ@¾™1AlL ªnQAÌ€á™1AlL€­nQAÌÀš1AlL@ªnQAÌÀ-š1AlL€ªnQAÌ@Fš1AlLÀ±nQAÌ@cš1AlLÀ²nQAÌÀ™š1AlL@¶nQA̹š1AlL€½nQAÌÄš1AlLàËnQAÌÀÕš1AlLàoQAÌÀ ›1AlL`oQAÌÀ=›1AlLÀoQAÌ€h›1AlLÀ!oQAÌr›1AlL`.oQAÌ€s›1AlLp0oQAÌ@u›1AlL`2oQAÌÀo›1AlL`BoQAÌ¡›1AlLàToQÀʛ1AlL`_oQAÌ œ1AlL noQAÌ€8œ1AlLÀxoQAÌ€Lœ1AlLÀŽoQAÌ@Gœ1AlL—oQAÌhœ1AlLà›oQAÌ@}œ1AlL€¢oQAÌÀ“œ1AlL ©oQAÌ œ1AlL³oQAÌ@®œ1AlLÁoQAÌÀ·œ1AlLàÒoQÀ̜1AlLÀåoQAÌ€Õœ1AlLÀpQAÌâœ1AlL@pQAÌ@1AlL#pQAÌÀ 1AlL@"pQAÌU1AlL€pQAÌý1AlL pQAÌÀ÷1AlL` pQAÌž1AlL #pQAÌ:ž1AlL!pQAÌ€zž1AlL pQAÌ@Íž1AlL@pQAÌ€™Ÿ1AlLÐûoQAÌ@c 1AlL€DpQAÌÀ“ 1AlL iQAÌЯ1AlL@BiQĂ¯1AlLàEiQAÌi¯1AlL@FiQAÌ€M¯1AlLàGiQAÌ€3¯1AlL`IiQA̯1AlL@JiQAÌÀí®1AlL@HiQAÌÀ¼®1AlLÀBiQAÌ@†®1AlL ;iQAÌ@V®1AlL@9iQAÌ€8®1AlL9iQAÌ€®1AlL€:iQAÌ€ê­1AlL :iQAÌÀÒ­1AlL€iQAÌ@Y¬1AlL€;iQAÌ2¬1AlL 8iQAÌ@,¬1AlL@iQAÌÀ0¬1AlL iQAÌ€\«1AlL€ÿhQA̼ª1AlL@þhQAÌrª1AlL€þhQAÌ@eª1AlL€þhQAÌ€Cª1AlL ÿhQAÌ@ ª1AlLàþhQAÌ@ô©1AlLûhQAÌ@·©1AlL òhQAÌ€©1AlLíhQAÌÀj©1AlLÀæhQAÌÀG©1AlLàÞhQAÌ€,©1AlL ×hQAÌ@ô¨1AlL ÌhQAÌÀÛ¨1AlCL ÆhQAÌ@¸¨1AlLà¿hQAÌ€›¨1AlL ºhQAÌ€r¨1AlL ±hQAÌÀï§1AlL`hQĄ1AlL€ˆhQAÌÀ¨1AlL ~hQAÌ€ ¨1AlL`thQAÌï§1AlL nhQAÌ@ݧ1AlL@ihQAÌ€»§1AlLÀchQAÌž§1AlL`ahQAÌ€w§1AlL^hQAÌP§1AlLÀ[hQAÌñ¥1AlL@ðgQAÌÀ3¥1AlL€ÕgQAÌÀê¤1AlL€ÏgQAÌ ¤1AlLàÈgQAÌ@v¤1AlLàÃgQAÌ€K¤1AlL ·gQAÌ@E¤1AlL ¬gQAÌA¤1AlL£gQAÌ@D¤1AlL€šgQAÌÇ£1AlL°…gQAÌ@Á£1AlL€“gQAÌ@¿£1AlL›gQAÌ@¾£1AlLÀ¤gQAÌž£1AlL@¬gQAÌ€†£1AlL ±gQAÌw¢1AlL pgQAÌÀi¢1AlLðlgQAÌÀL¢1AlLfgQAÌ€¯¡1AlL@>gQAÌ€!¡1AlL@gQAÌ€ú 1AlLÀ gQAÌß 1AlL@gQAÌÀÌ 1AlL`ýfQAÌÆ 1AlL0ûfQAÌÀÀ 1AlL€ùfQA̯ 1AlLÀófQAÌ™ 1AlL éfQAÌ¢ 1AlL ÞfQAÌ€³ 1AlLàÑfQAÌ 1AlL€ÑfQAÌ€O 1AlLÀÙfQAÌ€2 1AlLàfQAÌÀ 1AlLÀåfQAÌ@ñŸ1AlL@îfQAÌÀ, 1AlL3gQAÌ@9 1AlL=gQAÌG 1AlL IgQAÌ€` 1AlL sgQAÌÀx 1AlLà¢gQAÌ€‹ 1AlL@ÈgQAÌÀ™ 1AlL ÚgQAÌ@Ÿ 1AlLàêgQAÌ€¥ 1AlL€õgQAÌÀÀ 1AlL€ôgQAÌ ¡1AlLïgQAÌ€K¡1AlLëgQAÌ@€¡1AlL ægQAÌ€°¡1AlLãgQAÌæ¡1AlLàÞgQAÌÀ¢1AlL@ÜgQAÌ@"¢1AlL`ãgQAÌ€(¢1AlL`ígQAÌ€,¢1AlL€øgQAÌÀ1¢1AlL hQAÌ€=¢1AlLÀhQAÌÀ>¢1AlL hQAÌÀ=¢1AlLàhQAÌ@3¢1AlL`(hQAÌ@¢1AlL@+hQAÌî¡1AlL /hQAÌÀÆ¡1AlL7hQAÌÀ ¡1AlLà@hQAÌÀw¡1AlL QhQAÌ€U¡1AlL `hQAÌ@E¡1AlL hhQAÌÀ&¡1AlL phQAÌ¡1AlLàuhQAÌù 1AlL€|hQAÌÚ 1AlL‚hQAÌ@® 1AlL€‡hQAÌ‚ 1AlLÀ†hQAÌ@K 1AlL€hQAÌ€ 1AlL@hQAÌ€âŸ1AlL@~hQAÌ€»Ÿ1AlL€€hQAÌ@ƒŸ1AlL €hQAÌTŸ1AlL€hQAÌøž1AlLÀ„hQAÌ@¶ž1AlL ‰hQAÌ€vž1AlL hQAÌ@Fž1AlLÀhQAÌ6ž1AlL@ŠhQAÌ@$ž1AlL`‚hQAÌž1AlL`whQAÌÀð1AlLÀhhQAÌÀÌ1AlL@\hQAÌ€µ1AlLOhQAÌœ1AlLÀDhQAÌÀ~1AlLÀ=hQAÌf1AlL5hQAÌÀB1AlL@*hQAÌÀž1AlLÀ hQAÌÀž1AlL@hQAÌÀõ1AlL`hQAÌ@Ï1AlL ügQAÌÀ¸1AlL ïgQA̶1AlLægQAÌ@Ï1AlL ÛgQAÌÀé1AlLàÖgQAÌž1AlL×gQAÌx1AlLEgQAÌ@u1AlL€BgQAÌ™1AlL >gQAÌ×1AlL€4gQAÌ ž1AlL +gQAÌÀCž1AlLÀ"gQAÌ@ž1AlL€gQAÌÁž1AlLgQAÌ€Ÿ1AlL gQAÌÀOŸ1AlLÀöfQAÌpŸ1AlL ófQAÌ’Ÿ1AlL ðfQA̰Ÿ1AlL`ðfQAÌÒŸ1AlLÀñfQAþE¤²`û;AL €tISApÈI <Ašm gISAùQÌ2<Av§`ISApÑÓÿ‹;AnÄ @_ISA°l)ßÚ;AlLLISApãçþu<A(RÀ1ISA°l)=AnÄ `ISAàÚÌàA=Ar<€ISAàõjÕ=A–õ` ISA‘/à©>A(R úHSAÐ,…¿?A’}àòHSApÑÓÿÄ?A’}àâHSApÑÓï?AL @ÞHSAÀqÀ@A’}ÚHSAÐ,…@A™ÀÐHSApÑÓD@A*ÊàÅHSA£Cßh@A–õ ¾HSA‘/`Ô@ANƒÀ·HSA¿P¿–@AlL¬HSAPÿc`o@AÞg à¡HSA¶ÆŸz@A(RÀ‘HSAàìà_«@AÚï †HSA¬Í~hAAr<@tHSAm˜ ŸBAšm WHSAm˜` CAlLÀMHSA¿PÿCAr<`KHSA Q‹ÀBA¼& DHSApÈI >BAàßà>HSA°l)ŸEBA! À;HSA°Z CAÚï`(HSA°cŸ BA$Ú`HSAÐ5Ÿÿ@AÚï`HSA v"€m@A! `þGSA06~à AAH“óGSA¶ÆßdAAlLìGSA­<@BA$Ú@ØGSAPxŸüAAÞg  ÓGSAðþô¹AAàßàÎGSAÐ5_?AAH“@ÉGSAPöÙ¾@ANƒ ÀGSAš¹ÿSAA¶6à³GSA‘/`âAA*ÊÀ¦GSAàìàß+@A! `ŽGSAPöÙ>?A™àGSA`ÿ?Aàß }GSA°Z M@Aº®hGSAm˜ ¼@AÚï``GSA£CŸá@A¶6à[GSA ‘ÀÞ²@Aº® WGSA°cŸ?¿?AnÄ IGSA‘/à~>A! `6GSA@H’Ÿß=A¶6à+GSAp¿¿@©=A¶6À$GSA£CŸ}?A(RÀ GSA¿P?Ý?A¶6ÀGSAàõjÿ¸>AH“ òFSA ¬_;>AH“ êFSAm˜ X=A(R ÚFSA ˆ6¿ˆ<A¼&@ËFSAPöÙ@E<A’} ÉFSAp¿¿€<AÞg  ËFSA°cŸ¿÷:AlLÜFSA¿Pÿ€9AàßîFSAðþô^N9AnÄ ðFFSAàãVÞ8A! ÀëFSA ˆ6ÿ:8AH“ãFSA¤²àl7A$Ú@ØFSA+8;L7AJ- w×FSAðþôž*6Ašm€ÐFSA¤² ­5AL `ÍFSAš¹ÿ5A*ÊÍFSAàìà_4A¶6ÀÌFSAàõj¿N4Ar<@ÌFSA06~ ¼3Aº®àÈFSAPÿc =3A¶6 ÅFSAm˜`Ã2AH“@ÁFSApIߣx2AØÄzáÀFSA Q‹ù1A$Ú@ÀFSAp¿¿ÀÓ1A$Ú@ÀFSA0?@¼0Ašm€ÀFSAàìà_0Ašm€ÀFSA°cŸ)/ANƒ ÀFSA0?À--ANƒ€ÁFSA£C -Ar< ÁFSA°cŸâ,A¶6ÀÄFSAp¿¿À·,Aº®ÈFSA‘/ ÷+A$Ú€ÖFSAÐ5ñ+A$Ú`ÇFSA¤²`í+A¼&@³FSAPî¿ç+AlL¬FSAPÿc  +AÞg À¢FSAPÿc !+AL @–FSAÀ#ûŸ£*A™à‡FSA v"Àt*AlLà„FSAàõj?$*Ar<€‚FSApãç~¼(A*Êà}FSAm˜à4'ANƒ xFSAš¹ÿ(&AH“ ªFSA¶Æú%A! `®FSA¤²àÐ%Ašm`±FSA¤²à¥%Ar< ±FSApÈI “%Aº®à¸FSApÑÓo%AÞg ÀÂFSA ˆ6ÿÖ#ANƒ ÀFSApÈI ¯#Aà߯FSA£CŒ#Ar< ÉFSAàõj9#Ašm€ÐFSA‘/`ð"A™à×FSAš¹¿¡"A*ÊàÝFSAPöÙ€Z"AÞg ÀâFSA¿P?3"A–õ@åFSA¿P¿¤!ANƒ€ñFSApÚ]ßY!Aº® ÷FSAàìàß!A’}àúFSAPîÿà Aàß ýFSA¿P¿$ AL `ýFSAÀ#û@A¼& üFSA£CŸA(R GSAˆ¥êAÚï GSAÐ,…A(R€ GSApãç¾'A™GSAÀ#û_U Ar<@GSAÀq@!A™GSA¤² ô"Ar<€GSAÐ,…ÿ#A*ÊàGSA°cŸ?”$Ašm GSAPî?Ë%A¶6à#GSA¶Æßd&AºG® 'GSApãç>R&Aº®à(GSAPx_ç%A! `6GSAÐ,…œ%A! `>GSAPxß<%A$Ú`GGSAàÚÌ`ì$Aº®PGSAp¿¿ÀŒ$Aàß ]GSAàÚÌàA$Ar<€jGSAÐ,…8$A(R€sGSA@H’ß$A¼&@{GSAˆ¥À#AH“›GSA‘/`ð"A–õ ¶GSA Q‹Àã"Aº®¸GSA°l)_>"ANƒ ÐGSA0?€_!A¼& ôGSA ¬ Aþ¨þHSAÀ#û_9 Aàßà.HSA v"À»Ašm€PHSA­<BA’} qHSApãçþuAH“sHSA0?À A™PxHSAPî' Ašm`yHSA`ÿ Aº®ˆHSA°l)ß A(R ¢HSA0?€ ANƒ€ÁHSA‘/` A! ÀÃHSApÑÓ¿=!A’}ÊHSAPÿcà "AàßÎHSA¶Æ_¬!A*ÊåHSA0?ÀØ AnÄ ISAÐ5_?"Aº® ISAp¿¿°!Aº®à8ISA`ÿ!Aàß@TISAPî¿g A!  lISA Q‹ Ar<€zISA ¬_×A¼&`‚ISAð fÍAZÄ¢„ISA°cŸ?›Aº®ISA¶ÆŸ3AH“@™ISApãçþAšm€ ISA¤² ôAL `¥ISA ‘À^A™À¨ISA¬Í~èA*ÊÀ®ISAÐ,…¿±ANƒ ¸ISA¬Íþ AÞg  »ISAPî¿.AÞg àÙISA0?'Aàß@ÜISApÚ]_ËAÚï`øISAÐ5ŸAÚï`JSA£C_LA’}JSA Q‹ÜAàß@JSApÑÓýA™JSApÚ]Ÿ A*ÊJSAàõjr A$Ú`JSA¶ÆßÈ Ašm`!JSAš¹?¾!A*Êà%JSA0?€Ñ#ANƒ€9JSAàÚÌ`Þ$Aàß>JSA06~`à'A$Ú€NJSAàÚÌ`^(A’} QJSA¬Íþ )AÞg  KJSAÈÚÈ)A’}àJJSAm˜à&+AnÄ `NJSAp¿¿À,Ašm`QJSAPÿc`(,AlLTJSAàõj?2,A$Ú@XJSAÐ5_M,Aàß^JSA°l)ß“,Ar<€bJSAÀ#û_-A$Ú€fJSApÚ]ß’-A¼&@kJSA Q‹Àª-AÞg ÀbJSAPÿc Ë-AÞg àYJSA¶ÆŸˆ.ANƒÀ_JSAm˜à_/A¶6àcJSA`¿Ñ/A™àgJSAÀ#ûß80AÞg àiJSAPî?Ë0A(R jJSAˆ¥ê0A’}jJSA¿P¿]1A™àgJSA v"€´1A$Ú@hJSA£C_L2AL `mJSA°Z £2Aº®pJSAÀq@ä2A(RÀqJSA°Z 3AÞg ÀrJSA‘/àE3A¼& tJSA@H’|3AlLÀuJSAPî§3Ašm€xJSAp¿¿À·3A¼&@{JSAÀ#û߸3A*ÊÀ~JSAÀ#û߸3AH“@JSA£CŸ¨3A*Ê…JSA°cŸ©3Ašm ‡JSA ˆ6¿³3Aþ¨þ‹JSAp¿¿°3Ašm€JSAm˜ ®3Ar<`“JSApÈI ¡3A–õ@•JSAàÚÌ`—3AH“ šJSApÚ]_„3AÞg  ›JSA¬Í~h3A¶6 JSA v"€m3A(RÀ¡JSApÚ]_„3AlLà¤JSAàÚÌ`¥3AnÄ @§JSA0?À­3AL €¬JSA06~ ®3Aº®°JSAš¹ÿ¶3Ar<€²JSA°l)T4A(R€³JSA­<€—4A™¯JSA@H’_­4A$Ú€¦JSAÈÚÞÀ4Aàß JSA¶Æ_º4AnÄ `–JSA£CŸ¶4Aº®àJSA`¿´4AL @†JSAPÿc Ë4Ar<`{JSA°cŸ¿é4AÚï€wJSA­<{5A™ÀxJSAÐ,…¿6A¶6à{JSA ¬_t6A’} JSA­<€³6Aº®àˆJSA06~`µ6Aº® JSA°Z ¿6Aþ¨þ›JSA0?ÀÊ6A(RÀ¡JSA¶Æßä6A$Ú€¦JSApÑÓÿD7AH“@¹JSA ˆ6s7AÞg àÁJSA¶Æ_ó7A(R ÂJSApÈI Z8A¼&@ÃJSA`ÿæ8AÞg àÁJSApÚ]_=9Ašm`ÁJSAþ ššÚ2„o 3´HhSannicandro di Bari @èŒÕ=œ A‹ã[` øYÌ€4Š1AlL° dQAÌ@É´1AlL€DpQA|iÌÌÒŸ1AlLÀñfQAÌ@ñŸ1AlL@îfQAÌ€êŸ1AlLáfQAÌ@ÓŸ1AlL@ÓfQAÌ@ÇŸ1AlL€ÄfQAÌÀ¸Ÿ1AlL ³fQA̱Ÿ1AlLà¦fQAÌ@£Ÿ1AlL ›fQAÌ€SŸ1AlL ”fQAÌ@+Ÿ1AlL fQAÌ Ÿ1AlL€zfQAÌ@üž1AlLlfQAÌ€ùž1AlL@ifQAÌ@Ùž1AlL€LfQA̾ž1AlL :9 ¥b‡| Ë ïCressa @ËÅvì¨4gA[·´øY£C_LANƒ xFSAm˜` CA¼&@ÃJSA|i(pÚ]_=9Ašm`ÁJSAÐ5_M9A–õ ŽJSApÚ]o9A–õ`„JSAPöÙ>:A’}àzJSAàìàß¹:A–õ`|JSA°l)Ô:A¼& |JSA°Z Û:AnÄ xJSAÈÚÞÜ:A¶6àkJSAÐ5ã:A¶6àcJSA°l)_é:A$Ú`_JSA£C߯:AàßVJSAÀ#ûߪ:A$Ú€NJSAPxŸÑ:AH“ JJSAPxŸÑ:AL @FJSA¶ÆßÈ:Ašm€@JSAðþôž¸:A¼&`*JSAðþôž¸:ANƒ€!JSAÐ,…¿?;A$Ú@ JSAàãV€z;A™àJSAàõjŽ;A–õ JSApÚ]_ö;AàßJSA v"Š<A(RÀñISApÚ]_=AnÄ áISA¿P?Ï=AlLÀÍISA£Cßv>Aº®àÀISAÐ5Ÿ>A¶6À¼ISAÈÚ^y>Ašm`¹ISAÀq@ò=AlLÀµISA£CŸ6=AÚï`°ISA°cŸ¿°<A(R€«ISA¶ÆßH<AL @¦ISAàÚÌ ,<A¼&`¢ISApÚ]ß <A™ŸISAàìàŸ$<A!@’ISAàÚÌà<AàߎISA¶ÆŸÏ;A¶6à‹ISA@Q»;AnÄ @‡ISAš¹?¾;A–õ@…ISA°l)ŸÅ;Aº®€ISA@H’_Ø;AL `}ISA°Z`ñ;A¼&@{ISADK&A*Ê@bÂRA°cŸÿŒ&AÚï bÂRApã羘&ANƒ@CÂRA£CŸ‹&AL 8ÂRA°cŸ~&A*Ê€0ÂRAÀq€N&A(R &ÂRA­<Àd%AlL€'ÂRAÐ5_0%A’}€%ÂRAPxÃ$AL àÂRAPîÿm$AL ÂRA`Ϩx0$ALǪ ÂRAàõjñ#A(R@ÂRA v"Àe#A–õàÂRA06~à´"A$Úà ÂRAš¹?"Aº®` ÂRA£C6"A(R÷ÁRA€ÌŸ.I"A ´³šìÁRA°cŸ?["AnÄ ÀâÁRAPî "Ar<ÀßÁRA0?€¦ Aº® ÒÁRA v"€ÐA™€ÊÁRA‘/ ZA(R@ÅÁRAÐ,…?øAnÄ €ÄÁRA ‘À^²A¶6@ÈÁRApãç> Ar<ÀÏÁRAÀq2A$ÚÚÁRAPA¶6@àÁRA‘/à6A$ÚàâÁRA v" Aàß àÁRAÀqÀãA(RßÁRA¤² AnÄ ÀÚÁRA–ô¯ÚA¶6€ÒÁRAPÿcànAàß ÈÁRA ‘À^¤Aþ¨þŸ¶ÁRA v"À×AnÄ  ³ÁRAàõj?A$ÚÀ£ÁRA ¬ŸˆAšmœÁRA v"@tA™€šÁRA ¬ŸúA–õ ‘ÁRAPÿc <Aàß`šÁRA0?ÀŸA–õpŸÁRA£C_hA¶6 ¡ÁRA0?€¦A¶6 ™ÁRA`?{AH“ ÁRAÈÚ€ANƒ@ƒÁRA¬Í~®A(R ~ÁRA`?A’}€uÁRAðþôÞ†AlL€gÁRAàõjqAL ÀaÁRAP A–õàWÁRAš¹¿½ AÞg `MÁRA@H’Ÿ¥ Aàß XÁRA0?Q AnÄ €TÁRA@H’ßs AlL`HÁRAðþô^ê A$ÚJÁRAÈÚ^ÎAH“ MÁRAP1JÏwAr<°TÁRAàÚÌ HA’}€UÁRAˆ¥"Ar< UÁRAðþô^xAnÄ ÀRÁRA`¿PA$ÚRÁRAPî5Aà߀QÁRAàÚÌà$A¶6@PÁRAÈÚA! àIÁRAL¤²`³A*Ê@:ÁRApãç¾mA! à)ÁRAàìàŸ#AH“€ÁRApÚ]ßAlL`ÁRAðþô^ÍA¼& ÁRAš¹¿„Aº® úÀRAÀ#û_AlL`èÀRApÚ]_çAlL€ßÀRAàãV€ùAÞg @ÞÀRAÈÚÞ#A’} ÜÀRA­<3A™`ÛÀRA­<3AL ÀÙÀRA0?€4A*Ê`ÑÀRAÀCÍ<Aº®ËÀRA¶ÆßdAr<à¾ÀRAÐ5ŸbAlL@¹ÀRA@Q?^Ašmà´ÀRAàõj¿?AL À±ÀRA¿P?A’}€­ÀRA0?@æA*Ê@ªÀRA‘/`ÅAr<à¦ÀRA06~à¦AÚïà›ÀRA°Z †A*Ê@ŠÀRA@Q¿^Ašm|ÀRA@Q,Aº® rÀRAPîüAšmlÀRAš¹ÿÒAr<ÀgÀRAàãV€yAlL@aÀRA£CßA! àYÀRAÐ,…ÿ©AnÄ  SÀRA0?@fAr<NÀRAPöÙ@6A¶6@HÀRApÈIàAšmDÀRA@H’ŸAL @ÀRAðþôžÿAº® *ÀRA£CáAÚï "ÀRApÑÓ?ËAH“ÀÀRA¤² ¬A¼&ÀÀRA­<^AÞg @ÀRA¶Æß+AÞg ÀRAÐ5_÷AÞg ÿ¿RAðþô¸A(R ö¿RA@H’_tAr<àî¿RA¬Í~.Aº®`ä¿RApÑÓ AšmÜ¿RAàõj¿êÿA$ÚÒ¿RAàãV@äÿANƒ Ì¿RAÐ5ŸÅÿA¶6 É¿RA°l)_“ÿAšm ÿRApÑÓ¿gÿA*Ê`¹¿RA@QeÿAH“À¬¿RAPî5ÿA’} œ¿RAðþô^øþA–õà—¿RA¶Æ–þA¶6 ‘¿RA¿PGþAº®€‹¿RAÀ#û_ÿýAnÄ €„¿RA‘/`·ýA™€z¿RA¿PÿGýA™€j¿RA¿P¿ýAr< e¿RA°Z`›üAàß X¿RA¤²àAüAr<ÀO¿RA¿P?üA’}`F¿RA¬Í~õûA(R@E¿RAÐ,…ûAnÄ ÀBM¿RApÈI`ýúA! A¿RA`¿ÐúAþ¨þŸ>¿RA@Q¿ˆúA*Ê€8¿RA°Z`púAšmà4¿RAÈÚžcúAÚï3¿RApÈI /úA! (¿RA Q‹ÀâùAšm #¿RA¿P€ùAr<à¿RAðþôžÿøA! à¿RA v"@øAnÄ €¿RA°l)ßhøAº® ¿RA ¬ŸAøA(R@ ¿RApÈIàý÷ANƒ@¿RA°Z`Ô÷ANƒý¾RA0?€¦÷A$Úú¾RAÀq€#÷Ar<ö¾RApãç>nöA*Ê`ñ¾RA@QÿôAÞg `å¾RApÑÓÒóA! á¾RA ˆ6ÿ¹óAlL`à¾RA°Z`©ñA$ÚàÒ¾RA¶ÆAðA! àɾRAÐ,…FîA(R@½¾RAàõj¿êíAÚ﻾RA¤² ,íAH“€¶¾RAàìàëìA’} ´¾RApÚ]ŸüìA¶6 ±¾RAPÿc gíA’}`–¾RA v"€ÐíA(R ~¾RA@H’ßóìA¶6@x¾RA‘/`šìA’}€u¾RA ¬ßìAº®€s¾RAàãV@òëANƒ@s¾RAàÚÌà²ëA™@t¾RApÚ]_YëAþ¨þŸv¾RAˆ¥@)ëAr<àv¾RAPÿc`îêAÞg @v¾RA@H’ŸÂêA’}€u¾RA ¬^êA¼&àu¾RA v" êAþ¨þŸv¾RAPÿc ¼éAL àx¾RA v"{éAnÄ Àz¾RAàìà@éA!À}¾RA ‘ÀéA(R¾RAš¹¿èèAÞg ¾RA`?´èA! €¾RAPÿc`nèA$Ú‚¾RA°l) èAnÄ €„¾RAÀqÀœçA’}`†¾RApãç>CçAr<à†¾RA ˆ6?çAr<à†¾RAÐ,…?ÍæAÞg @†¾RApÚ]ßuæA(R@…¾RA`?ßåA$Úà‚¾RA‘/ ¢åA™€‚¾RAPxŸmåA$Úà‚¾RAàÚÌ`åAr< …¾RApãç¾ßäA’}€…¾RApÈIà™äA(R@…¾RA£CŸDäAnÄ €„¾RAÐ,…?øãAr< …¾RApãçþ­ãA¼&À†¾RAPî?uãAlL€o¾RAˆ¥[ãAÞNg @f¾RAàÚÌ VãAL Àa¾RApÑÓÿŠãA! a¾RAm˜à^äA! @_¾RA`?{äAÚïà[¾RAš¹}äAL X¾RA`?{äANƒ 4¾RAàìàyäA’}`¾RAš¹}äA! ¾RAˆ¥@›äAšmà ¾RApÚ]§ãAr<¾RAm˜à%ãAr<¾RA¶ÆŸ¤âAÚï ¾RA06~`5âAÞg @¾RAÐ,…?ÍáA! ¾RAÐ,…ÿpàA’}@÷½RA°Z øÞA™@ì½RApÈI ZÞA¼&àå½RA`?˜ÝAH“ å½RAÀ#ûŸ?ÜA(Rç½RAš¹šÛA’}`æ½RAðþôÞÍÚA¼&àå½RAm˜ tÚAþ¨þŸæ½RAPÿc ½ÙA$Úàê½RA°cŸðØA™ í½RAÈÚžØAÚï ê½RApÑÓ?öÖA! è½RA‘/àáÕA¼&Àæ½RA Q‹€øÔA$Úàâ½RA°ZàŒÔA™ å½RAàãV@ÔA’} ì½RApÑÓ¿çÓA™€ò½RA ‘ÀÞ@ÓA! àù½RAˆ¥À ÓA™@ü½RA°l)ßèÒA’}@ÿ½RA°l)Ÿ¶ÒAlL@¾RA¿P?kÒAÚï ¾RA06~ .ÒA™@¾RA¤² žÑA$ÚÀ ¾RAš¹?/ÑA*Ê`¾RA¬Í>àÐA™€¾RA‘/àSÐAÞg `¾RA°cŸðÏAL à¾RApÈI hÏA’} ¾RA¿Pÿ*ÏA(R ¾RAPxßæÎA!À¾RAˆ¥€wÎAº® ¾RA‘/à6ÎA$Ú¾RA£CïÍAÚï¾RAPÿc`§ÍA(R@¾RA v"ûÌA™`#¾RAš¹¨ÌAº®`$¾RA¶Æ]ÌA™`#¾RAˆ¥@›ËA–õÀ ¾RA¿PòÊA–õÀ ¾RA Q‹@qÊA–õà¾RA ¬ßÖÉAH“€¾RAàõj¿1ÉA™`¾RA v"@ÈA–õ ¾RA¿P¿ÜÇAL À¾RApãçþ‚ÇA™`¾RA°l)_ÇA’}€¾RAàìàßcÆA(R¾RA¤² ÅA¶6@ ¾RAPîîOÄAL à ¾RAàõjÄA™@$¾RA¬Í>ÃAlL@)¾RAàãV€‡ÂAÞg /¾RA¿P?ëÁAnÄ  3¾RAm˜à^ÁA¶6`7¾RA`¿ÐÀAàß 8¾RA@H’_ÀAlL@9¾RA°u³¾ÀA–õ 9¾RAPöÙ@o¿Ašmà<¾RA ˆ6?¿Ar<>¾RA Q‹£¾AH“ =¾RAðþôžF¾A$ÚÀ;¾RA­<@º½AL 8¾RAðþôž½A’}`6¾RA­<€A½A’}€5¾RAàõjª¼Ašm 3¾RA­<@å»A! 1¾RAÀq@Ž»AL 0¾RAp¿¿€L»A! 0¾RAÈÚ»Ašm4¾RA¤²àÁºA*Ê€8¾RAàìàŸºAà߀A¾RAPÿcà|¹A! àI¾RA@QW¹AnÄ €L¾RAÐ5ß…¸Ašm [¾RAPÿc  ¸A(R_¾RA¬Í¾à·AL `¾RA¿P?]·A*Ê€`¾RA0?€û¶AL Àa¾RApÈI Ë¶Aº® b¾RAàãVA¶AnÄ €d¾RAÀ#ûßâµAnÄ €d¾RApÈI`oµAnÄ €d¾RA¶Æß+µAH“ e¾RA°l)ßµA! @g¾RA°l)_è´AÚïk¾RAàõj?j´Aº®€{¾RApãç>C´ANƒ@ƒ¾RA‘/`´A¼& ‡¾RAÀqÀÿ³A¶6 ‰¾RA¤²àO³A–õÀ¾RA@Q?^²AÞg Ÿ¾RApÚ]_õ±AH“ ¥¾RAˆ¥@·±Aº®`¬¾RA v"Às±A! ¹¾RAˆ¥ÀS±AH“À¼¾RAÐ5_°°AnÄ  Ë¾RAm˜àì¯A! @ϾRA ‘Àd¯A$ÚÀÓ¾RA¶ÆÝ®AL ÀÙ¾RApÑÓ¿’­A™@ä¾RAm˜`&­A(Rç¾RAPöÙ@¨¬A’}€å¾RAš¹¿¬ANƒ ä¾RApÈIàÄ«AÚïàã¾RAPîÿ4«Ašmàä¾RA ˆ6ÿªA! @ç¾RA¤²`3ªAnÄ Àê¾RApãçþæ©AlL@ñ¾RA°cŸ¿¡©AÚï ú¾RA v"À:©A*Ê€¿RAÀqù¨A! @¿RAP¨A¼&À¿RAP¬Í>à§AlL@)¿RAàãV€‡§A’}`6¿RApÚ]ß<§A–õà?¿RA°cŸÿŒ¦A! @O¿RAàìàŸ@¦A™€Z¿RAPÿc ½¥AÚïc¿RApÑÓ?ö¤AÞg w¿RAðþôÞ°¤A! à¿RAm˜ X¤ANƒ Œ¿RAÐ,…??¤Aàß`’¿RAm˜`&¤AnÄ  £¿RA`ÿ¤A–õ ±¿RAm˜à ¤A™`»¿RApÈI è£Aº® Ê¿RApÈI`¨¢A™€Ê¿RApÚ]ߟ AÚïàË¿RA06~ çŸA! @Ï¿RA¤² IŸAr<Ö¿RA°Z °žA–õ á¿RA v"{žAH“ å¿RA¿P?kAL àø¿RA ‘ÀÞΜA! àÀRA ‘À^$œAH“À ÀRA0?€BœAH“€ÀRA@H’ßžœA$ÚÀ#ÀRAm˜ WA(R 6ÀRA v"€ÐAþ¨þŸFÀRAPÿc çAr<NÀRAÐ5_0žAnÄ ÀjÀRA@QWžAH“À|ÀRA°cŸÿšžAº®€ƒÀRAPÿc`'ŸAlL@‰ÀRAàõjUŸA$Úà’ÀRA ¬_žŸAr<ÀŸÀRA°l)7 ANƒ@³ÀRApãç~Ê AL ÀÁÀRA ˆ6?l¡AÞg ÏÀRA06~` ¢AÚï ÚÀRAPxŸ¦¢A*Ê`áÀRA¶Æß+£Ar<ÀçÀRA0?€¦£AnÄ ÀêÀRAàãV@V¤A¼& ïÀRA¶Æ_d¥AL ÀùÀRAˆ¥€é¥A™€ÁRA ‘ÀÞ•¦AL ÁRA@H’_§A’}`ÁRA¬ÍþʧA*Ê€ ÁRApÚ]¨Aàß`"ÁRA v"€ì¨A$Úà"ÁRA¤²`l©A™`#ÁRA06~àß©A¶6`'ÁRApãç>|ªA¼&à-ÁRAÀ#ûß «Ašmà4ÁRAðþô^±«A! @?ÁRA`?˜¬A*Ê@JÁRA¶Æßò¬A–õàOÁRA Q‹Àb­Ar< UÁRA0?€û­AH“À\ÁRA Q‹?®A*Ê@bÁRA@H’_t®A¶6`gÁRA£CŸ™®AnÄ €lÁRAÐ5Ÿp¯Ar<à~ÁRA ‘À^ù¯Aàß`ŠÁRA¬Í¾5°AnÄ  “QÁRAÀqk°A™`›ÁRAÐ5Ÿ~°A! à¡ÁRA¤² ž°A’} ¤ÁRA v"€Þ°A(R§ÁRA@Qe±A! ©ÁRApÚ]à±A™€ªÁRA@Q?^²AnÄ ÀªÁRA‘/ ¾²Aà߀©ÁRA06~ .³Aàß ¨ÁRAPî¿X³Aàß ¨ÁRAàõj?#´A*Ê€¨ÁRA°l)Ó´AnÄ ÀªÁRA£CßKµAnÄ €¬ÁRA­<€–µA’}€­ÁRApÈIàÒµAšmà¬ÁRAàãVA¶A¼&à­ÁRAÐ,…¿é¶AÞg `­ÁRAàãVÀ9·A$ÚÀ«ÁRA Q‹¿·AÚï ªÁRAPÿc` ¸A™€ªÁRA v"Àž¸A™@¬ÁRAˆ¥¹A! @¯ÁRAÈÚžŽ¹A¶6@°ÁRA¤²à3ºA! @¯ÁRA@QÿȺAšmà¬ÁRApÚ]ŸC»Ašm¬ÁRAPî?õ»A$ÚàªÁRAPîѼA$ÚàªÁRAÀ#ûßÔ½A™@¬ÁRAÀ#û_¾Ašm¬ÁRAÐ,… ¿Aàß`ªÁRAàãVÀò¿A–õÀ¨ÁRA°u³~KÀAÚï ªÁRA£C¶ÀAº®`¬ÁRAPÿc` ÁAnÄ  «ÁRA`ÿ¬ÁAL à¨ÁRAm˜à%ÂA¶6`§ÁRA‘/àSÃA¼&à¥ÁRAPî?çÃAÞg `¥ÁRA‘/ wÄAÞg `¥ÁRAPî¿ÅAÞg §ÁRAàõjÿÅAlL@©ÁRAðþôÞÆA*Ê@ªÁRAàÚÌà]ÆAÚï ªÁRA ˆ6ÈAL À©ÁRApÈI`ýÈA¶6@¨ÁRApÑÓ?½ÉA! ¨ÁRA¬ÍþuÊAL ¨ÁRA°Z ÷ÊAL à¨ÁRA°cŸÿSËA™€ªÁRA¿PÇËAH“À¬ÁRA¤²`ÌAþ¨þŸ®ÁRAÐ5©ÌAàß °ÁRA ¬—ÍANƒ@³ÁRAPî¿XÎAº®€³ÁRA ¬ßÖÎANƒ@³ÁRAš¹ÿDÏAšm ³ÁRA Q‹jÏANƒ@³ÁRA Q‹@ªÏAº®€³ÁRA¶ÆzÐAÞg ·ÁRA¶ÆŸ$ÑAnÄ  »ÁRA°Zà©ÑAþ¨þŸ¾ÁRA¶ÆŸùÑA¶6@ÀÁRA¶Æ_ÒAlRL`ÀÁRAm˜ ÓAr<À¿ÁRAÐ,…?ÍÓAr< ½ÁRA¿P¿yÔA! à¹ÁRA°l)_>ÕAÚï ºÁRAàÚÌà²ÕAr< ½ÁRApÑÓ'ÖAL ÀÁÁRAˆ¥@·ÖAšm ËÁRAàãVˆ×A¶6`ßÁRAðþôžÿ×A(RçÁRAðþôÞ[ØAº®€ëÁRAÐ,…âØAnÄ €ôÁRA@H’_­ÙA’}€ÂRA`ôÙA*Ê` ÂRAàõj¿øÚA¼& ÂRA ˆ6ÜA!ÀÂRAÐ,…?”ÜA*Ê@ÂRA v"€‰ÝAnÄ  #ÂRA Q‹?ÞAº® *ÂRApãçþæÞA–õà/ÂRA°u³~ËßANƒ5ÂRA£C_áAº®`<ÂRAðþô^øáA–õÀ@ÂRAÐ,…??ãA¶6`GÂRAÐ,…¿÷ãA™`KÂRAm˜ ­åANƒUÂRA ¬ßæAlL€WÂRA ˆ6?læA$ÚàZÂRAp¿¿ÀšæAº®`\ÂRAš¹6çA–õà_ÂRAÈÚ«çAL ÀaÂRA@Q¿lèAº®€cÂRAPx_éAH“ eÂRAPÿcà|êA*Ê€hÂRA¿P¿ëA*Ê@jÂRAˆ¥ÀþëA(R@mÂRAàÚÌ ºíAà߀qÂRA ‘ÀÞ‡îAº® rÂRAPÿc ÙðAlL@yÂRA ‘ÀñAlL@yÂRA°cŸ?>òA’} |ÂRA ‘À^kóA¶6@€ÂRA£CßËôAº®`„ÂRA°cŸÿáöAnÄ à‰ÂRAm˜ tøAþ¨þŸŽÂRA06~`µùA$Úà’ÂRA06~ ƒúA(R@•ÂRA ¬_×úA’}`–ÂRAˆ¥ÀSüA$ÚÀ›ÂRA¿PÿÇýAÚï ¢ÂRApÈIà§þAH“ ¥ÂRAðþôžAº®€«ÂRA°l)_>AnÄ à±ÂRA¿P¿Aº®`´ÂRAàõjÿñAnÄ ÀºÂRAðþôÞAr<à¾ÂRAPÿc`îA–õ ÁÂRAàãV€2ANƒ@ÃÂRAˆ¥¿AšmàÄÂRA¤²  A! @ÇÂRAðþô^Í AL ÈÂRA ˆ6È A$ÚàÊÂRA°Z ¿ AšmàÌÂRAÐ,…¿wA(RÏÂRAàãV@òAL ÀÑÂRA Q‹@*A$ÚÀÓÂRA¬Í¾CAr< ÝÂRAÀ#ûŸAº®`äÂRAš¹aAàßÀïÂRA¤² A(R@õÂRAÈÚ^\Aº®`üÂRA@H’_AÚï ÃRA¿P¿‡AlL@ ÃRAД§+CAz 1iÃRA ƒqošA°“rÁÃRAÀ™Û¼A®¬å,#ÃRA€ÌŸ®åAl™„Õ,ÃRAð~xAæ*Ö3ÃRA°§™­=Aöüá==ÃRA@…-µ©A{nDÃRA'skA’0„fUÃRAðÄÐ`A¼·š¯lÃRA°l)ßhAnÄ àqÃRA ˆ6ÿ€A! yÃRA¤² Aº®`|ÃRAÀq€±AàßÀÃRA0?ÑAH“À”ÃRAðþôžT AšmàœÃRAÐ5Æ A™`£ÃRA ‘Àžr!Ašm «ÃRAPxŸß!A’}`®ÃRA¶Æ]"Aàß °ÃRApãç~¼"AL À±ÃRAPÿc #A$Úà²ÃRA­<@#A(R ¶ÃRA¬Í>ý#Ašm »ÃRAðþôž$AnÄ €¼ÃRAÀ#û_8$A¶6`¿ÃRAÐ,…ÿE$AÞg @ÆÃRAðþôU$ANƒ@ËÃRA£C_v$A! ÑÃRA°cŸ?¢$Ar<ÖÃRAÀqÀÕ$Aº® ÚÃRA0?€û$A! àÃRAàìàß%AÞg `åÃRA¤² ;%A$ÚêÃRAÀ#ûŸ?%ANƒ ìÃRAÐ,…ÿ7%A!ÀíÃRAm˜à%%AÚïóÃRA ‘À^$%A’}€õÃRAš¹6%A! øÃRA Q‹ÀT%Aº® úÃRAàõjq%AnÄ  ûÃRAˆ¥ÀŒ%AnÄ  ûÃRAPîÿß%AH“ÀüÃRA£C_&A¼&àýÃRAPÿcàC&ANƒýÃRA v"€‰&Aº® úÃRApÑÓÄ&Aàß øÃRA°l)ßè&A*Ê€øÃRA`¿'AnÄ àùÃRAàõj?N'ANƒ üÃRA06~`˜'AÞg ÿÃRA¤²`Ð'A$ÚàÄRA£Cï'ANƒÄRA v"À(A¶6 ÄRAÀ#ûN(A™@üÃRApãç>|(Aà߀ùÃRAþ ÎUˆK œf¶Bernezzo @Ú3}¸ÎéAx¥ÏWwškøY ‘À^$œA$Úàâ½RAPxÑ-ANƒÄRA|iopãç>|(Aà߀ùÃRAÀ#û_ª(A¼& ÷ÃRA¿P¿ù(A(R@õÃRApãçþ;)AnÄ  óÃRA£Cßg)AÚï òÃRA v"‰)AL ðÃRA Q‹£)AÞg `íÃRA°l)·)A–õàçÃRAÀ#ûŸÍ)Aàß àÃRA`æ)A*Ê@ÚÃRA­<À*AnÄ €ÔÃRAš¹?L*AnÄ ÀÊÃRAàìàk*A¼&àÅÃRA Q‹@*A*Ê`ÁÃRA0_ÚïŒ*AnÄ  »ÃRA°l)_“*A¼&àµÃRAÀqÀœ*AÚï ²ÃRA°Z`Ô*AÚï ªÃRA v"€B+A(R@ÃRAàìàŸ£+AnÄ  “ÃRA¬Í~®+AlL@‘ÃRA¶Æz+AÚï‹ÃRAÐ,…ÿþ*A’}€}ÃRA0?@æ*Ašm {ÃRA`ñ¥/k*AL àlÃRA ˆ6Ö)AlL€_ÃRA¿PÿG+Ar< MÃRApÑÓÿà+Aº®`LÃRAPöÙ¡,AÞg OÃRA‘/`·,A! HÃRAˆ¥@ð,Ašm ;ÃRA¤²`-AlL@1ÃRAPxC-AÞg `%ÃRA¤² s-A*Ê`ÃRAPxŠ-A¶6`ÃRA‘/à¨-AÚïàÃRAPxÑ-ANƒõÂRAàõj?‡-AnÄ àùÂRA`¿Â,A(R æÂRAàìàŸÎ+AlL@ÑÂRAPîÿ˜*AàßÀ¯ÂRAÐ,…T*AL ¨ÂRAPxß-*AnÄ  £ÂRAPÿcà'*Ar< •ÂRA°l)ß!*A™@|ÂRAàãV@ò)A*Ê@rÂRAp¿¿À¶)A¶6 aÂRAÐ,…Ô(A¼&àeÂRAàãV@ò'AšmdÂRA Q‹@ªJUÜA’} <ÍRA°cŸ?ÛÛA! 0ÍRA¿P¿ùÛA$ÚÀ#ÍRA‘/àÜAnÄ  ÍRAÀq@€ÜA$ÚÍRA@H’ ÝANƒ ÍRA0?5ÝA¼& ÍRA06~à_ÝAL ÀùÌRA°u³¾DÝA¶6 ùÌRA@H’_XÝANƒ`òÌRApÈI hÝAlL æÌRAPx_‘ÝA–õà×ÌRAš¹¿ÚÝAšm ËÌRA@Q?ûÝA’}`¾ÌRA°ZàÞA(R ®ÌRAš¹¿ÞAL à ÌRA­<ÀºÝA*Ê€˜ÌRAàìà–ÝAÚïà“ÌRAÐ5ŸbÝAnÄ ÀŠÌRAàìàëÜAÚï ‚ÌRAÀ#ûßÜANƒ`zÌRAÀq€ÜÛAnÄ ÀrÌRAÐ,…¿?ÛA¼&ÀnÌRA¤²`—ÚAÞg €lÌRAàãVÀòÙAà߀iÌRAp¿¿€>ÙAL hÌRA`¿_ØAÚïàcÌRAš¹?ØAà߀aÌRA£CßÙ×AÚï@YÌRAm˜ ƒ×AšmàTÌRA ˆ6?ìÖA¼& OÌRAÐ5ŸTÖAr<FÌRA0?€ßÕAL @ÌRAÀ#ûŸjÕAnÄ À:ÌRA¬Í~ÕA™€:ÌRAˆ¥ÀbÔAšm<ÌRApãç~ÔA*Ê€@ÌRAˆ¥€°ÓA(RGÌRA Q‹\ÓAlL`PÌRA@QÿóÒAÞg €\ÌRA¤²`{ÒA’}€eÌRAPÿc ¯ÑA–õÀpÌRA@H’ŸíÐAº®`tÌRA v"@IÐA™€rÌRA06~ ¼ÏAL xÌRA ˆ6¿ÏAÞg €|ÌRAPîÿ˜ÎAr<~ÌRAàõj?ÎA¼& ÌRA°Z`›ÍA! ÌRApÈI >ÍAÞg `…ÌRA@H’ßÍANƒ`ŠÌRAš¹¿¡ÌA™`ƒÌRA0?ŠÌA! yÌRAÀ#ûß8ÌANƒ`rÌRA°l)©ËAº®`tÌRApÚ]ßÊÊANƒ@sÌRAm˜`&ÊA! qÌRApÈI ZÉA¶6`oÌRAÈÚ¹ÈA*Ê@jÌRA06~àCÈAnÄ ÀbÌRA£C(ÈAL XÌRAÈÚÈAÚïàKÌRAðþôÈA! @ÌRA£CÈANƒ 4ÌRAV¤²àÁÇANƒ`2ÌRAm˜àÇAnÄ À2ÌRA@QÿeÆAnÄ  3ÌRAš¹ÿïÅA’} 4ÌRA£CßvÅAÞg €4ÌRApÈIàDÅA(R@5ÌRAm˜`¦ÄA¼& 7ÌRAàõj?ÀÃAr<à6ÌRAÐ5ÔÂA(R7ÌRA v"@IÂAÚï 2ÌRAÐ5_ÍÁA! @'ÌRA ˆ6?3ÁAnÄ ÀÌRA¿PÿœÀAr< ÌRAPöÙÀA! ÌRA06~ ƒ¿AÚï@ùËRA ˆ6ÿä¾A(R öËRA ¬Þ½AÚï@ñËRA£CŸï¼AL  ïËRApÚ]_Ù»AÞg @îËRA0?'»AÚïàëËRA°Z`ºAlL îËRAp¿¿ÀoºA!ÀíËRApÑÓÿRºA¼&íËRAàõj¿Ü¹ANƒ@ëËRA°l)_L¹AL ÀéËRAàÚÌàë¸AÞg @æËRA‘/ [¸AnÄ ÀâËRAàÚÌ`ì·AÞg @ÞËRAp¿¿°·ANƒ ÜËRAˆ¥·AH“ÀÜËRA Q‹\¶AÞg €ÜËRA`?¶AlL ÞËRAàõjÿµA(R@ÝËRA¤²`µA$ÚÚËRAš¹¿v´AÞg @ÖËRA¬Í¾à³AlL ÖËRA£Cßö²A¶6@ØËRA£C_ö±AH“ ÕËRAàõjU±A! ÑËRA¶Æ_ó°AÞg €ÌËRAðþôª°AÚïàÃËRA¬Í¾'°A–õà¿ËRAàãV@¯A™@¼ËRAÈÚ+¯AnÄ ÀºËRAàìà®AH“ µËRA@H’ßW­A¶6 ±ËRApÚ]_ç¬A*Ê@ªËRAˆ¥Àþ«A™`«ËRAÈÚÞ£«AnÄ à±ËRApÑÓÿR«A¶6 ¹ËRAPöÙ€èªA$ÚàÂËRAÀ#ûŸ±ªAÚï@ÉËRA ˆ6ªA(R@ÕËRApÑÓ?ö©A$ÚÚËRA­<€Þ©A¼& çËRApÚ]Ä©A–õ ñËRAðþôc©AàßÀ÷ËRAàõj©Aàß ÌRAàãVÀ«¨A*Ê€ÌRA ˆ6ÿV¨AlL`ÌRAÐ,…?ø§A¶6@ÌRA ¬ЧAº®€#ÌRA¿P¹§Aº®€+ÌRA0?'§A’}€5WÌRA`?¦¦A¼&=ÌRA ˆ6¿A¦AlL FÌRAÐ5ÿ¥A(ROÌRAm˜`´¥AH“€VÌRA¿P9¥Ar<^ÌRA‘/ Ú¤Ar< eÌRA¶Æß¹¤AÞg €lÌRAPöÙ“¤AÚïàsÌRAàìà_¤AH“ uÌRAàãVϤA¼&àuÌRAPÿc g¥AH“€vÌRAÀ#û_ª¥A(R@uÌRAPxŸ_¦Aº®€sÌRA@H’_;§A’} tÌRAˆ¥€i§A’} tÌRApÑÓÿn§A¼&à}ÌRAp¿¿@~§AH“ …ÌRAÈÚ^‡§AÞg €ŒÌRA@Qž§ANƒ@“ÌRAàãV€Ï§Aà߀™ÌRAˆ¥@¨AnÄ  £ÌRAÐ,…?j¨AL À©ÌRA°Z 1§AnÄ  «ÌRApÚ]Ÿà¦A¼&À®ÌRA°cŸ?°¦AL à°ÌRA@H’ßW¦AnÄ À²ÌRA ¬_×¥A!ÀµÌRA06~àŠ¥A–õÀ¸ÌRA¶Æ_:¥AÚïà»ÌRA0?@J¥A¼&½ÌRA0?C¥AÞg @ÆÌRA ˆ6ÿ¥AH“ ÍÌRAÀ#ûß8¥A¼&ÀÖÌRAš¹ÿ}¥A!ÀÝÌRA£Cß„¥AH“€æÌRAàãVl¥A’}€íÌRA0?Àf¥AH“€öÌRAš¹ÿo¥Aº®`üÌRA@QI¥AL ÍRApÈI „¥A¼& ÍRAPÿc g¥AH“€ÍRAÀqÀ*¥Ar< ÍRA°cŸ¿é¤Aº®€ÍRA­<Àº¤A™`#ÍRApÈIà‹¤Aà߀)ÍRA ˆ6ÿV¤A¼& /ÍRA¶Æß¤AàßÀ7ÍRA°cŸ?M¤A¼&=ÍRAPöÙ“¤A¼& ?ÍRAPÿc ®¤A™€BÍRA@Qå¤A™`KÍRAP¤AÚï@QÍRA¶Æˆ¤AšmàTÍRAPîÿQ¤A¼&àUÍRA@QÉ£A¶6@XÍRAPöÙÀD£Ar< ]ÍRA`ÿ»¢Aà߀aÍRA°cŸÿŒ¢AlL`hÍRAàõjÿq¢A¶6@pÍRAp¿¿€L¢Aº® zÍRAÐ5_?¢Aº®€ƒÍRA£Cß ¢A(R‡ÍRAàÚÌ È¡AàßÀ‡ÍRAÈÚž€¡AX! @‡ÍRAPÿcà5¡Aº®`ŒÍRA0?€m¡A¶6@ÍRAðþôž¸¡A(R—ÍRAPîÿß¡A™@œÍRAàãV@¢A*Ê@¢ÍRA°Z ¢AL  §ÍRA Q‹Ü¡ANƒ@«ÍRA`¿{¡AH“À¬ÍRAp¿¿@E¡AlL€¯ÍRAàìàß¡Aº® ²ÍRA v"&¡AÚï@¹ÍRAÀ#ûß8¡A™€ÂÍRAÈÚ^2¡Ar<ÆÍRAàìà_+¡Ar< ÍÍRA@Q¿ì A$ÚÒÍRApãç¾µ A¶6 ÙÍRA­<— A’}`ÞÍRApãç>n A™`ãÍRA‘/àS AlL æÍRAPÿc  A! @ïÍRAàìà2 AÚïóÍRAPî¿® A! øÍRA¬Í~¡A(R þÍRA‘/ Û¡A¼&ÀÎRAPÿcà™¢AH“€ÎRAPî?u£A*Ê`ùÍRApÑÓ¿ç£A™€òÍRAàìàŸ2¤Aà߀éÍRAÀ#û•¤A’}`æÍRAm˜ ʤA–õàßÍRApãçþJ¥ANƒ`ÚÍRApÑÓ?¡¥AÚï@ÙÍRApÚ]¦AÚïÛÍRA¬ÍþY¦A$ÚÀãÍRApÚ]ßʦAÞg €ôÍRAš¹¿h§A–õàïÍRA°cŸ?é§A’}€íÍRA¤²àA¨AÚï@éÍRAÐ,…ƨA’}`æÍRAm˜ f©AnÄ ÀêÍRA06~ ƒ©ANƒ@ëÍRA¶ÆßªA¼&àíÍRA°Z éªA–õ ñÍRA‘/àa«A! ñÍRA£CŸÄ«AÞg €ìÍRAPÿc =¬A! éÍRApãç~­A*Ê€èÍRA°l)›­A’} ìÍRAPî'®AÚïëÍRA¿P?ˆ®AÞg @æÍRAˆ¥@›®A(RßÍRA@H’´®A–õÀØÍRAàõj¿Ü®AšmÔÍRAàÚÌयA’} ÔÍRApÚ]ß<°AH“€ÖÍRAÈÚ^ù°AÞg €ÔÍRA¿PÿU±AlL`ÐÍRAš¹¿ö±AÚïàËÍRA°Z i²A¼&ÀÆÍRAàìàŸÀ²A–õà¿ÍRAÐ,…?1³Ašm¼ÍRA v"˜³A(R·ÍRA°Z é³A$ÚàºÍRA°cŸÿ´AlL`ÀÍRA ‘ÀÞ²´A$ÚÂÍRA Q‹€ø´A’}€ÅÍRA ˆ6¿µA¶6 ÉÍRAš¹¿/µANƒ ÌÍRAàãV3µAÚï ÒÍRA­<€lµAÞg @ÖÍRAÈÚäµANƒ@ãÍRAˆ¥€0¶Ar<àæÍRAPÿc`™¶Aàß èÍRA06~ õ¶ANƒ äÍRA¿P?k·AnÄ àéÍRAÐ,…ÿ)¸AàßÀïÍRApÑÓ?v¸AÞg €ôÍRA¿P+¹A–õÀøÍRA°Z Í¹A$ÚÀûÍRAàõj?yºA(R þÍRAš¹ÿ¨ºA–õàÿÍRA¿P¿ëºA–õàÿÍRA­<%»A*Ê@ÎRAÀ#ûß»Aº®€ÎRAš¹?Ú»A’} ÎRAš¹(¼A™@ÎRA¤² s¼AÞg € ÎRA@Q?{¼Ar<àÎRAÐ,…¿†¼A$ÚàÎRA¬Í>Ò¼A! @ÎRAàÚÌàO½ANƒ@ÎRAp¿¿@©½A¶6 !ÎRAPî¿®½Ašmà$ÎRAÀ#ûÀ½A*Ê@*ÎRApãç~¾AlL€/ÎRA ¬_e¾A¶6 1ÎRAm˜ t¾AL  7ÎRA¿P?¿Aº®€;ÎRAðþô^•¿A™`CÎRA0?€ÀAšm KÎRA°ZàbÀA!ÀMÎRA£CŒÀA! @OÎRAPxßÁA!ÀUÎRA°Z`¸ÁAnÄ àYÎRA£C_!ÂA’}€]ÎRA`?ŠÂA$ÚàbÎRA¬ÍþçÂAr< eÎRA¶ÆŸAÃAL àhÎRAðþôÞ±ÃA¼&ÀnÎRApãç~JÄA¶6 qÎRAÀ#û_ÅAL ÀqÎRA¿PÿÇÅAÞg `uÎRA06~`'ÆA¼&àuÎRAÐ,…?jÆAH“€vÎRA@Q¿¥ÆAnÄ ÀzÎRA¿P¿kÇAÞg €|ÎRApãç~®ÇAÞg @~ÎRA@H’ŸPÈAL àxÎRAàìà_€ÈAàßÀwÎRAÀq@¹ÈA! yÎRA°Zà7ÉAnÄ  {ÎRA°l)_…ÉA–õ yÎRAPîÃÉAÚï@yÎRA v"€ûÉA*Ê`yÎRAÐ,…?1ÊAº®€{ÎRAPxßtÊA¼& ÎRA°Z ÍÊAlL ~ÎRAþ ¿¿®%ˆL Ü·Bonvicino @ɶÁF>¨²A[ŸE]XâøYPÿc  A*Ê@ªËRA°ZàÞA¼& ÎRA|il°Z ÍÊAlL ~ÎRAàãVÀ9ËA™€zÎRA@H’ŸûËA¼&}ÎRAPxß‘ÌAº®`|ÎRAÀ#û_ŽÌAàß xÎRAÐ,…¿"ÍA¶6`wÎRAPxŸ˜ÍAr<àvÎRA0?ÀæÍAL àxÎRA0?'ÎAlL€wÎRA Q‹ÎÎAÚï rÎRApÚ]ŸnÏA(RoÎRAàõj?ÐANƒ@kÎRAm˜`´ÐANƒ dÎRA°l)ŸaÑAº®`\ÎRApÑÓÿîÑA$ÚàRÎRA¤²`PÒA*Ê`IÎRAPÿcàîÒAL HÎRAm˜ ­ÓAÞg @FÎRApãçþJÔANƒ@CÎRApÈI ÚÔA(R >ÎRA°òÕAr< =ÎRA v"€ûÔA*Ê@*ÎRA°cŸðÔAH“ÀÎRAÈÚ^ëÔA*Ê@ÎRApÈI ÌÔA™@ÎRA Q‹@qÔA$Úà ÎRAˆ¥À7ÔA¼&àÎRAàãVOÔA’} üÍRA ‘À^¤ÔANƒ@óÍRA°l)ÕAlL îÍRA Q‹ÀÔÕA™`ãÍRA‘/`~ÖA–õÀØÍRA°Z ¿ÖAr< ÕÍRA@Q¿×A! ÐÍRA ¬_W×ANƒ@ËÍRAàÚÌ ØAÚï@ÁÍRAm˜`´ØAšm ³ÍRAPî?KÙANƒ`ªÍRAš¹ÿáÙA¼&ÀžÍRA€±PïÚAàß(‘ÍRA ƒq/»ÛA(R ‚ÍRAm˜à4ÜAàß xÍRA°l)ŸEÜA$ÚÀsÍRA¶Æ_VÜA’}€eÍRAàãVÀ+ÜAnÄ àAÍRA¶Æ_T[*A ;9Iž[SA8— Â f*AÔnlôŸ[SAH´iHf*A.d&  [SA(sxÄ#f*Av§% [SA¨°‹.f*Aìrº¡[SAκ¢5f*A¶X÷¢[SA8u£ëDf*Aˆ¦dk£[SA˜A7Bf*Aº’¥[SA ƒaü6f*A ´³~¦[SA¨²­Â+f*A¼·šÇ§[SAxzf*AÔLo9©[SAT„f*AêïCª[SAxÞ< f*A’0„R«[SA@ö8f*A\ôÆ?¬[SAŠéðe*AVÀµ¹­[SAؘ\(ße*Aãÿd¯[SA8"§Óe*Av’%½°[SAÀúý¾Èe*AZÄê±[SAo"–ºe*A:DTK³[SA¸#Z®¨e*Aøl!µ[SAxs›e*AJ¾Šª¶[SA@²>á„e*AêØ¹µ[SA˜ÉõR‹e*A$Iˆ$¸[SAШEÀe*A ]6À¹[SAìa‹we*A4v:†»[SA¨‡&Œfe*AÔÿêß»[SAx³‹¥Xe*A4T=+½[SAþuêVe*Aè‹5ʾ[SAØõÉMNe*A6¡Á À[SAø•S^‰«âa*AˆYàý\SAØÒèÕa*AÌSΙ!\SA€ÅŸ$Ëa*ARû%¤#\SAÀØH¾a*A~­Ã?%\SAh¨Ö^²a*AJO Ú&\SA0ɆQ¦a*Aêï3(\SA€+—é‘a*AT·+Ž)\SA¸pÞ{ˆa*AšÜ H+\SA¸›e2ya*AVâ²-\SA€$Òia*AHµ¯.\SAˆO¿[a*AöIf[0\SAX £|Ma*Aò„ÖÝ1\SA°¢Ä =a*AìáC›3\SAH‰âq*a*AN6–B3\SAÜxs0a*A—¼5\SA uÍ!a*A6îEÊ7\SA_9¾a*A½=¢9\SA@!ÀEa*Aæñ,÷:\SA0|$ó`*A*Z<\SAh–Âä`*AÌÂOâ<\SA€ÅŸ„ã`*AÌ1ÑJ?\SA°«NjØ`*AFùúDA\SAÐÇDÍ`*A¬_aC\SA¨° Ã`*AªÅXÔD\SA`b±iº`*A€EÀF\SA𪛰`*AÈòìH\]SA`7*ó¥`*A0þ.&K\SAè£ï—`*A~>B›K\SAhõZ,Ÿ`*AÌ R»L\SAÀúý¾”`*Aþ†ÝN\SAH<^d‹`*AÐeâàP\SA@M®`*A\ôÆ+S\SA $Éow`*AòóWÚT\SAHøcvp`*A(RüU\SAØÞŒg`*AÄ3üV\SA(ad%_`*AnæX\SAà÷ô”V`*AH…Y\SA°U@K`*AnUŠ/Z\SA)ý >`*AF×ý5Z\SAÈ >9`*AˆÈa \\SAØÃãÞ1`*Aþ9}×]\SA¨C,>'`*A¼&,`\SA•äü`*AÍ&êa\SA0…Œƒ`*AdeRc\SAˆh2 `*Aj!y¡d\SA@æOw`*A¼Ù—âe\SA`@´²ø_*A`JÕå]*AÀ|*¨\SAxo‘wÚ]*A¼&@©\SA(ÀüñÍ]*AúÁq_«\SAØÃãþÃ]*A®¬åЬ\SAè+ ½]*A~ñ½ñ­\SAº{<³]*AŽÚu%¯\SA°ÐΪ]*A «3°\SAØÞŒ]*AHq9±\SA¸,ä­Ž]*A¾s M²\SA@ÝÅ×€]*A¼HŸ²\SAðµ%Žƒ]*A¢ˆ½–´\SAtVÇz]*A,9Ÿäµ\SA8~- q]*A`JÕì¶\SA`¸¿öe]*A ø­¸\SAxÕˆüS]*AÄÒ8‚¹\SA —$D]*A€ØJêº\SA(ûlÀ8]*Atøþ»\SAèMb,]*Aü}w ½\SA_â"]*Ap¹Ø½\SAÈóž¦]*AJà‡å¾\SAØmÕ]*AüÊûÀ\SA qMû\*At~HÁ\SA@6Fí\*AN¥oÂ\SAðé6DÝ\*AŠóèÈÃ\SApKi9Í\*A˜þ7Å\SAX”—¸¿\*AÖ™óbÆ\SAÐ}¾)³\*AØUù€Ç\SA “Jô¥\*A¤ÊŠÈ\SA`8š\*A&– Ê\SA[ãÏŠ\*A¾ÝÊ\SAˆ ÅY\*AtÑË\SAè_Ar\*AŒür”Ì\SA`·;`\*A¼Ù—vÎ\SAÓîR\*AÂÉ®²Ï\SAhD$D\*A$IˆÀÐ\SA àÎa3\*AV/7"Ò\SAh†Ù§!\*AÚ€€ÿÒ\SAxˆï\*AÎ~UpÓ\SAÈÑ¡\*A 7t!Ô\SA FƦ\*AŠóè¼Õ\SAèxŠxô[*AÄœÚÖ\SAx³‹¥å[*A”9Ö\SAÀ¶Ñç[*AH“0Ø\SAøòÀÃÞ[*AT°oÙ\SA˜žn<Ð[*A2K³¯Ú\SAðତÀ[*Ap¹ Ü\SA8í®´[*Aô`%Ý\SA ý©¨[*A:÷Ï%Þ\SAP x˜[*AÜø‹wß\SAÌ[Š[*ALÇŠà\SAX%”}[*AòU]á\SA u p[*Ah‡pâ\SA𾯠e[*AJœ7á\SAH#ëŒf[*Aü}w5ã\SA]×X[*Aœå*°ä\SAÐãµL[*AêG;øå\SA°«NÊ=[*A"ç\SA ~œ,2[*ARj§äç\SA08([*AN™¯è\SA°øÒ—[*A®gyé\SAXá&[_*A„áÔYê\SA¨ÔªÙ[*A—$ë\SA`Ú¼­üZ*A.Ó§ì\SAÀˆ^ïZ*Ahöñí\SA8~-káZ*A`—Yî\SAèMÂÕZ*AÈòï\SAIÇZ*AÄ3Hð\SA_9Þ¹Z*AkFñ\SApBß9¯Z*A€iÉ ò\SAÈÈ Z*A2º4,ó\SA€®ñ’Z*AökcFô\SAØKØšˆZ*A~>B/õ\SAP`†Â~Z*AÔ»ðö\SAƒÐ‚Z*Ahes{÷\SAè+k}Z*Aþ¨þãø\SAHïÙtZ*A¨+P‘ú\SA¸’Û2iZ*Aô@ÜÇû\SA¨e)õ_Z*ABï˜ü\SA@»ÈÀSZ*AÄc·Iý\SAhRȱDZ*Aêï—ü\SAXØ‘æ>Z*AŠóèþ\SA(âùh+Z*A:÷Ï•ÿ\SAP`†Z*AhÔôë]SAhÁI¶Z*Av#¤Ìÿ\SA}àæZ*AñNè]SA€¼åüY*AÊuË,]SAÀ‹|:ûY*Aº?#]SAXŒ4ôY*AZ§Bf]SA0žÿzäY*A8;Êï]SAøûJCåY*AD¬vo]SA(&ô6ÎY*Ap¹8]SAo"¶¹Y*AÐö`Ì]SA0냛Y*A† \( ]SA@æO‰Y*AÊuˤ ]SA¨C,~qY*AÈJD&]SAÈü(_Y*Adef]SA@Aª?Y*AÚ€€‡]SAûÛA4Y*AFh|M]SAâhŠ%Y*AˆYà ]SA£3ÌY*A´é€¶]SAȯ¤˜ Y*Aè>±]SAo"výX*ARŒ¤]SA€®±ðX*Aò¦Óà]SA8 *âåX*AŽ–{Ÿ]SA XÚ%ÛX*AòbÙ"]SAPñ>ÍX*AÒ²f¾]SAHÄR@ºX*A–d•ä]SAÙÞê¯X*A˜þ“]SAXG ¡X*Apï’z]SA€çœX*AP®¡¢]SAØmÕ…X*Aê¶¼¸]SA8~-+{X*AÄÒ8Ò]SAxÌþ|qX*AD¬v§]SAxîûócX*A"¯•]SAˆÇÊ«WX*A~­Ãw]SAØÃã^MX*Aà’”v]SAøûJ#CX*A0 ,¡]SAØåàµ@X*A~­ÃC]SAÕ{LX*A¸Ð k]SAøHºWX*A’Ÿû]SAÈÈpWX*AŠ„g]SA0…ŒcŽX*AZÉ?}]SApcÇÆX*AÌÂOš]SAˆÇÊkÖX*ALz„]SAˆq`¼¾âX*AN¼Õ]SAˆF5( X*A‹ð]SA0|d’X*A¤ÊÖ]SAˆF5ÈpX*AªÝI ]SApKiYgX*A¨xÔÂ]SA˜ÉõYX*A`JÕ0 ]SA@æOWLX*A¢÷>Ç ]SA@²>CX*A¸aŒJ"]SAèؼ_C÷\SAx÷…óe*ARÙ(­æ\SA8Â'ù e*A ‰,Ìå\SAð 4›Xe*A¨çUcÞ\SAàT e*A˜þg×\SAè4ªÞe*Aè´EÑ\SAèMée*A ´³:Ð\SAà]ìôe*AÖæwôÎ\SA€$2f*A(RÀÊ\aSA_bf*A–õ€Ã\SA(ÐåéÑf*Aþ€´½\SA÷2éf*AFŠy4¼\SAH€X²g*AÔnl4¸\SA¸#ZŽJg*A¬ÎâS´\SAPg*Aï#%¯\SApoëàg*A¢ÕA8¨\SAH«ßèh*ALÇ.¤\SAÈ{“7h*A(Rà¡\SApoKEh*AJà‡¥\SA€¬,­uh*A&¸ %¡\SAغYŸ7i*Ad1bE‘\SAàDyci*Ar<Ž\SAà4Qi*AúÁq÷‰\SAØdKòZi*AL  ‰\SA÷ò²i*Ar< \SA×Db»i*A(R€|\SAîŒòói*A¼&àt\SA×Dbj*Aàß`r\SAÈ{“7j*A(RÀj\SA×DbBj*Aà߀i\SA˜Ò’tj*A(Ràa\SA°Ðäj*AÈò4T\SAˆq¼~òj*Aæ`®/R\SA8 *ùj*Aº® P\SAØ Q$þj*AÞÖŽ(N\SA÷rk*A¼&@:\SA˜ëò©¼k*AÔ»ð™5\SAvNÇk*A¢ˆ½–4\SAè£àk*ABðp0\SA¨©##ék*AÆAº/\SAØBN{ðk*Aàp—ç-\SA Ìl*A’}ü(\SAXG+,l*AÊuË8%\SAH’l‘;l*A€ØJÂ#\SAÈY–ëýl*AŒür\SAÌ›>m*Aáet \SAhX¨m*AYqtÿ[SA€çœ›âm*Aáetú[SA8~-ëXn*Aáetò[SA ¥^3~n*ABn´í[SAØ2eƒ©n*AiZé[SA ¥^³ o*AŠ„g”à[SA¸yh|o*ABnTØ[SA¼¦šo*AÔnl´Õ[SA€çœ›Èo*Aáe”Ð[SA ¥^3$p*AbS_TÄ[SA@LGœÄp*Aô¯]4µ[SAÐ0:þp*Aáet°[SAÐ0:œ¢q*Aô¯]4¥[SA0llëq*Að7RTŸ[SA¨‡&ìr*AiZ”š[SA˜Ž…„Ár*A<"WtŒ[SA(sxQs*A¬=dT[SAðùœ`t*AŠ„gr[SAÐ'°œ”t*Aáe”n[SAèð•œÎt*A^ÛSÔi[SA•䜅u*A¬=dTX[SAÈÚ+¯Äu*AÄc·aQ[SAX6v*AÐö`ÔD[SA`ó/…dv*AñN4?[SAÐÇ„ov*AÂÉ®6>[SA¡˜v*A^ÛS”:[SAÁÚ4¶v*AÐöb`49[SA€ù°zðv*A€iÉe8[SAã×ëÿv*AÈlA=6[SAìak6w*A¤³DM0[SA@!ÀÅlw*A´ ~u*[SA˜ÒÃw*ANƒ [SA¥Í4Þw*A ´³[SAð$§r$x*A–õà[SAh9U[x*Aáed[SA[ã¯fx*Atgžš[SAxˆ/x*AL³[SA@»È·x*AƽS[SAP`†Íx*Ar<`[SAPßðžöx*Aü[zR[SAòQ‚ey*AL @[SA@LG|˜y*Aø–êX[SA(òâ Ÿy*A€úGµ[SA Ìx«y*AL 8[SA(&ôöÔy*AЇßøZSAH<^äìy*Azè3ôZSA€šnz*A#5ßïZSA(Œë2z*AªV×£èZSA¸,äMWz*AÚïLâZSA¸yh‘z*A`¹VýÝZSA8— bÚz*AÞg `ØZSAøÐà T{*A¢ÕAœÍZSA¨°«b{*Aˆ7ã.ÍZSA˜Ò’t{*AàßÀÏZSA°gT<|*A8ªKx¾ZSAhtÅH}*A>MÞjœZSA0…ŒCB}*A†.YS•ZSAè=Êk}*A~ñ½•ZSA FÆÆ™}*AðêÍjZSAðq+ ©}*Ap¢ñŒZSA ƒa\~*AÊJ܉ZSAP›öð&~*A\°Ì¥ˆZSA°ÍKa~*AP®¡Ö„ZSAx³‹Å³~*AˆYàU~ZSAàDybÕ~*Ar<`{ZSAø·PUþ~*AtuZSA•ä¼*AÝîoZSA 1K*AÞÖŽDfZSAfD*AЩÜ>cZSA‘m@*AFŠyð`ZSA¸›e²=*Aò„ÖÝ^ZSAõëê=*AÈò[ZSA€ šY*A¬_a7RZSA𾯠b*A,¨ …PZSAH<^äi*Aî ËñNZSAøÇ9­*AfËj4MZSAèxŠ˜š*A¾5MZSA0/~–¸*AÔÿê“NZSA8u£«Þ*Aþ†ÕRZSAà¡æGê*Av§MRZSA8Jö*A܉–QZSAøHϰF€*A®¬å´JZSApKiœ€*AˆÈaöJZSAκà€*A–õ JZSAòQ*Aà߀IZSAàªpÇ'*A´ ~HZSAPÆ}Ç=*Azè3vFZSApKi¹Q*AÀÀ$gDZSAð$§2k*A²àö¦?ZSA8 *‚€*A|»Ô:ZSA˜€íc*A†ÚS2ZSAП»@.‚*A"¯%,ZSAØÜV¶F‚*AÂ뫵)ZSA ¥^³L‚*A|5¸óZSAȦ9Q‚*Aºû”5ZSA z×Ü[‚*Ap3ŒZSAØþSÍh‚*ARj§øZSA`ü¹„‡‚*A%`6 ZSA蚇OŒ‚*AZÄÖZSA€£¢ Ÿ‚*AìrÂ’þYSAÈ{“Bá‚*AðÈÐSýYSAPèz~ö‚*A²qu6üYSAã×+ ƒ*A{nóûYSAîŒr%ƒ*AÞg úYSAøûJCrƒ*A–†’ëðYSAðh¡ƒ*Aäè¢SíYSA_9þ¯ƒ*A–Ó5ëYSA ƒaœîƒ*ALz|èYSA@*J „*Aœå*ÜåYSAøaBˆ„*AÔ…åYSAP½óÇ8„*ARû%ôàYSAo"¶y„*AÊäLÚYSA àÎì„*Aþ€ðÌYSAòQâ…*A™ÀÈYSAP`†‚)…*AL €ÆYSA¨²­âu…*A–õÀÁYSAκµ…*Aº® ÀYSA¬½«ð…*AšmtÁYSAàDy‚8†*AL àÂYSAåóP†*A°×lÃYSA $É/t†*AWFYÄYSA¸5n­®†*A$Ú´ÅYSA8— âý†*A–õ ÇYSA0ô ˆ‡*A4þCÆYSAˆXIǺ‡*AªÅXÂYSAh¨Ö~ä‡*AÈJD–ÀYSA FÆÆˆ*AÊuË´½YSA‘퉈*A¬Îâs¹YSA€ š‰*A¢ŸSµYSAàDyâ[Š*A(R©YSA¨©#C–Š*A¬_aó¦YSAX¿»Š*AhCvp¥YSAκ☋*A–õ€›YSAàéŒ*AiZÔ’YSA¸]VŒ*A´ ~±YSAp)lbŽŒ*A(R‰YSA(sx䤌*Až2¯‘‡YSAå“ÓŒ*AÜ<†u„YSA8 *BB*AêG;”YSAÀúýþµ*AèÄð{YSAD›Ç*ALé{YSAH€XŽ*Ar< yYSAÐì?`Ž*AÚ€€ãvYSApåq”ÎŽ*A(RÔrYSAìa«K*A®ŠèõnYSAp)l‚À*AnÄ €gYSA°F¹*Aáe´XYSAH€Xh‘*A™ NYSA@A*Å‘*A°×l“IYSAøÙML”’*A ¦õ¥AYSA°‰Q“å’*A®ùiv>YSAP,u,9“*A¨xÔ:+áÍYSA¸›e6*A¼&àÔYSAH‰â‘1ž*AýÕYSA`@´rcž*A¼&ÀÕYSA8— býž*A™ ÖYSAøÕbI *AÞg ÓYSAp˜í&r *Aº’”ÒYSA8— b¡ *Aàß@ÓYSAh0Ëúà¡*AVs1ôÏYSAX‹ ù7¢*A²¾ù¯ÎYSA€çœ[‰¢*AØÿZÍYSAˆœCÏ¢*Az›¯0ÌYSAp â‚£*AÞg @ÉYSA¨²­D¤*A™@ÅYSAˆéÇbô¤*A™ÀÀYSA)6¨*A¢ÕA´³YSAˆéÇ‚í¨*A(R€´YSA¸’Ûr…©*A™`´YSApcª*A(0 µYSAP`†â>ª*A™@µYSA€¥Öµª*A²¾ù;ÉYSA ~œ,Ī*A2˜7ÑÑYSAàéð̪*A:fQZÕYSAÐì?n«*Aè´EñYSAø&ÒÙM«*A8ŒýYSA¨*¹&X«*A{n§ÿYSAШE€]«*AöÚäîZSAP`†‚›«*ANƒ€ZSA*ANƒÀZSA0Ò‘/¬*A˜ ›²ZSAκâf¬*AL ZSApBß™¥¬*A|Æ6sýYSA8:3½¿¬*AølõûYSA·áóÞ¬*A0Ü1O÷YSAèM­*AnŽ©ïYSA6õ0­*AbÂàœãYSA8©´a@­*Ar<dÜYeSA œÔ3D­*AtÝØYSAÈȰ<­*AÌÔßÐYSA¸yh[5­*AL ˆÍYSA0cl(­*AJ- ƒÉYSA ä“Q­*A®ŠèÄYSAàDy‚ñ¬*AT°ƒ»YSAެ*AøtíŵYSAÐ[Áò ­*A(Rà±YSA(®èò.­*ANƒ€°YSA¨Ý4ùŒ­*A¦MM4«YSA€ š’®*A(R £YSA9æxÍ®*A|»”–YSA˜Éõ¯*A–õàYSA¨²­‚<°*A–õ YSAøÕâl°*AÞg À|YSA¸’Û’½°*A™wYSA8— ‚è°*AL àrYSA€Î)¤L²*A”[ Õ[YSA˜Òrß²*A¼&@RYSA¸’Û’(³*A™`LYSAøjÌç`³*Ar^+HYSAp â´*AL @@YSA˜Ò’I´*A–õ€;YSAκ‚Ê´*A¼&à4YSAp ââVµ*A™`,YSAÐR7bµ*AìrÂZ+YSA€£¢}µ*A ]6Ü(YSAð$§µ*Aº®@'YSAøÕb^¶*AnÄ €YSA`·;¢¶*AÊäL5YSA˜Ò·*AàßÀYSAÐ[Áò0·*Aº®`YSAκâX·*AL  YSAhtŨշ*AÎ\XõYSAøÕ‚ó·*Aº® YSAøÕ‚3¸*Aº® YSAÐãµn߸*Atø~õXSAÈ{“âï¸*AÞg ÀôXSAHÄR€¹*A(0­÷XSA0l /¹*Aäè¢sùXSApmfðT¹*ABïüóXSA€šŽ¹*AÒÔc•òXSAÈü(f¼¹*A¶ÙòXSA@ÿÂNȹ*AЩÜZðXSA8¹ùÙ¹*A42@¨ìXSA¸qVº*AüìøõãXSA8— "Qº*Aª£[5ãXSAPWü‚º*ANƒ äXSA0ý—'¯º*AÌ RSâXSAκ‚&»*AL àêXSA(ÐåÉ~»*AYq´çXSA¸èéÿš»*A,¨ µÜXSA¸yh›¬»*AŽ–{÷ÖXSA`¸¿¶Æ»*AÊJxÎXSAP`†"ö»*A‹¿XSAÕû¼*A*Êô®XSA¨Ôª™V¼*AØÿ~šXSA•ä\„¼*AðêÍî‰XSA(j¼*Aª4Ú4XSAª’¤Í¼*A>šb@uXSA`@´òø¼*Aàß@sXSA·á3i½*AV/7®eXSAðª»r¾*A¿hyMXSAhŸLŸ›¾*A§f±ÛDXSA`b±‰ ¾*Av#¤àBXSAxîûS¿¾*AÄc·M7XSApmfõ¾*AØÄz/XSAÈ&=¿*AxN+*XSA`¦«÷G¿*AÞg XSA0|äk¿*Afï1XSA‘ Û¿*AL `øWSAòQ…À*Aº® éWSAhìÐŒ/Á*AnÄ @ÜWSAàÕ÷}íÁ*ApaÌWSA€Š/¶ÿÁ*A—„ÊWSAsçå¿Â*A—ŒµWSA0ZmçÂ*AÞg `±WSA8 *ÏÃ*AL œWSAhìÐŒÚÄ*Aº®àƒWSAhìÐìÀÅ*A™ nWSAÀ>ø ‚Æ*AÞg `YWSAÀ>ø úÆ*AÞg àEWSA¨»7‚£Ç*AnÄ `*WSA0Zí.È*Aº®€WSA_‚¼È*A–õÀñVSA@ÝÅwâÈ*AÞg @ëVSA8 *‚É*AL àäVSAòQÉ*A–õÀáVSApÓ]õ=É*AyC”ÛVSA°øÒw“É*AnÄ ÍVSA í±ñÉ*Aãÿ¿VSAPÆ}‡JÊ*Aԅ±VSA(Hñ-dÊ*A6îEN­VSAH`ÏùÊ*Aþ9}w“VSAÀ>ø ³Ë*AnÄ @tVSAp)l‚IÌ*Aº®@`VSAÀ>øì„Ì*AL `XVSA˜€™Ì*A4v:®UVSA8©´a¹Ì*AÈò€QVSA 6ÝNÌÌ*A¾Q£ OVSAxo‘·&Í*A(R@CVSAXØ‘F{Í*Ax,.¤(VSA u†Í*AÞg %VSAàDyÞÍ*AL @VSAòQ÷Í*Aº®À VSAH#ëìÎ*A–õàVSAÐÁ¸wÎ*AÞg àVSA°ïHØÎ*AôÑZ§VSAo"v'Î*AÌÔïVSA€ù°:.Î*AZÄšVSA u GÎ*A–õ`ýUSAH#ëŒPÎ*Aº®ÀûUSA×DB›Î*AnÄ `ïUSAT„wÏ*AL ÛUSAÀ>ø ^Ï*A–õ€ËUSA€ù°ºÐ*AJ¾ŠÆ³USAØÞì`Ð*Aî ËÁ«USA_‚®Ñ*A(R‰USAâhª$Ò*AfËj(}USApo+|Ò*AÄÒ8VtUSAÐÁ¸wÓ*A! gUSA0Z yÔ*AL `@USA€¬, ýÕ*A(R USAØÞìj×*AÞg óTSAP`†Ø*A! ×TSAÐÁ¸wÀÙ*AnÄ  ¸TSA€_¨ŸLÚ*A:ÕÒf«TSAxo‘wÊÛg*Aº®`‡TSAè4JíÜ*A@çæ9iTSAxo‘wÝ*Aº®ÀdTSAèÞ]Þ*Aâ,¡UTSA‘í3ß*AnÄ ETSAP`†à*AnÄ @$TSAÞ£zæà*A¢Ÿ/TSA€¬,mÁá*A–õTSA u 8ã*A! àçSSA‘“ä*A™@ÍSSAð“(wÖä*Aº’ ÉSSAÐÁ¸÷£å*Aº®€¾SSA°U@Hæ*A,õ¤’¸SSAàDy‚æ*Aº®€¶SSAÀáŠG÷æ*APa¬SSAøÇ9Šç*A–õ ŸSSA8Â'ùÁç*A<"W°šSSA@ÝÅ÷è*AÞg ”SSA·á5è*A¸aŒ”SSAòQ‚¦è*AÆý¿ˆ”SSAØÜVöé*A"¯Ù’SSA(®è¨è*ANƒà…SSA0°ú‰è*AJ- Ó~SSA¸’Ûr(è*ANƒ`qSSAx“è*AÖwöÓlSSA¨©#Sç*AL  QSSAÀr cÿæ*AL `GSSAPWüâæ*A™`BÓÌQSAp â%Ð*AÞg  ÍQSAˆéÇ‚PÏ*AL  ÉQSA(®èò.Ï*A™@ÅQSA`@´ÞÎ*A8´ÁQSAøƒ?ßàÍ*AžÃ-9ºQSAèΘeÕÌ*AnŽuÀQSAxs×Ë*Aàß ÐQSA·áË*AöÚä2×QSA@wÎòŒÊ*A¼&ÀåQSAÐÁ¸É*AŠ„gTþQSA°ïH˜åÈ*Ar«˜tRSAøÕâÁÈ*A¼&ÀRSAxóeÈ*Ar<RSAhdÜÐ8È*A8Í”RSAè_aÈ*AöIf/RSAÈ&òÇ*A6¡Á”!RSAPèz~ÞÇ*A¸ò ¦'RSAàÌm^ÝÇ*A6]Ç®-RSA˜A÷éÇ*A(Ÿ–µ3RSA°gTü>Ç*Av§ÅERSA°ÐîÝÆ*AŒkô|!RSAÀP ÌÕÆ*AdígwRSAà³ú&¾Æ*AbS_ðRSAÎºâ­Æ*A™àRSA@AнÆ*A®hëj RSAˆzFþÇ*A˜± þQSApºê=Ç*AŠ„gàûQSAØTbýÆ*ADøÓöQSAØÜVãÆ*AòóWòêQSAx÷…SÓÆ*AdígwåQSAè¬›î–Æ*AØ3ü…×QSA€Š/–ŽÆ*AšK"uÐQSA —yÆ*AÄ3ÈQSAêqÆ*AúØ3ÆQSAPWübGÆ*A™¿QSAà;ï2Æ*Aº®€½QSAÈ@#´!Æ*ARj§à¹QSAð$§r"Æ*AÈòt¶QSAhdÜÆ*AúŸt4¬QSA (ŽÆ*A´é€.§QSAx‘ŽNúÅ*AŒ¯îþ£QSA(âùh©Å*A¿h¥”QSAÐ}¾ ¢Å*A$k…Ó†QSA°´Øé‹Å*AZ8Áõ}QSAh[Rñ~Å*Aü}w•zQSAüeÅ*AŠ@mæuQSA(•u{;Å*AÐeâ´hQSAhdܰÅ*A <¨RaQSA¸ß_@èÄ*AîPÅWRQSAPWüâ¸Ä*AàßÀOQSA€ÅŸä§Ä*Aº®ÔMQSAП» ™Ä*AÔnl KQSAà]ìÙÄ*A&'‹¥HQSA(Q{-ŒÄ*A|Æ6WGQSA0ý—GyÄ*A,õ¤ªAQSA@C½|`Ä*AÜ«²4QSApBßùYÄ*AX|»³/QSA0•þVÄ*A¤ÊV(QiSAx³‹¥QÄ*AæÏ/\&QSAp ââ9Ä*A(R #QSA"žÈ+Ä*AÌ1Ѫ QSApÓ]• Ä*AÍ&QSAð-1RÄ*AnÄ QSAЉüÃ*AP? 2þPSAÀ>øŒùÃ*Al™„éúPSAxfØáÃ*APçXøPSA à7ÜÃ*AšÜ @öPSAàfvYÚÃ*AÀ ©4óPSA`¸¿–¾Ã*A˜þëPSA°<ÍExÃ*A–õÍPSA8ÛšðUÃ*AWFÁ·PSA@nD3]Ã*A¢fÀ;®PSAv.YÃ*AešªPSA08VUÃ*A܉ “¨PSAè““BÃ*A›@s¥PSA°‰Q“/Ã*A4T=¡PSAðh¡ Ã*Ar<ŸPSA°ÐŽãÂ*A”[ ešPSAÐR7“ÅÂ*AZ…EÓ—PSAð 4§Â*Ahöñv’PSAè tSÂ*AÔÝíXyPSAX­ IÂ*AÈlA5vPSAaÓ&=Â*Ax½¬—rPSA¨»7B0Â*A|‚<±nPSA VøÂ*A䤨µiPSAKú—ËÁ*A›@#\PSAPu’Á*A®ùiÎTPSAûÛÁ*Ad~æÖAPSAøjÌú¿*A|Æ6‹(PSA0§‰š(¿*A.êÕPSA(®è=¾*ANƒàýOSApvð!¾*AŠ„gÈúOSAH’l±>¾*A<Þ\6öOSA Vø§¾*AT&­ëOSA qM=l¾*AŠóè àOSA`@´’U¾*Ar< ÝOSA@eºѽ*A$üÿéOSA(®èǽ*Ar^£èOSAîŒr‚½*A™ ÞOSA µGk½*AŠóè ÍOSA`@´rλ*ANƒ ŸOSA(adåT»*Ajÿ{FŒOSA`Ú¼M’»*Aè‹5’…OSA¡¥Ù»*Ap}}OSAØKØšQ»*Aü[z"jOSA`@´r»*Aà߀aOSA¨²­‚¼º*AL àbOSA¨²­âµº*AÎ\XYOSAPpoz¬º*AšmœLOSAHÖfhº*AšÜ ”KOSAîŒòó¹*A¼&LOSA VÕ¹*Anw‡6LOSAã×+€¹*ABntNOSA¸,äÍH¹*A ¦õ¹POSAhÎC1¹*Av’%µQOSAà"|+¹*ABðp•ROSA¸’Ûòĸ*A(R`UOSAà]ìùv¸*A"¯•TOSA(®è’ ¸*Ar<VOSAÐ[Áê·*A*Ê€WOSA¨²­‚¼·*AàßÀWOSAàÕ÷‹·*AŠ„jgø û²*AŒkôü‹OSA qMݳ*A2º4OSAPWüâ³*Aø–ê@ŽOSAˆà=ƒ&³*AÆý¿4OSA¨°k6³*AFFVOSA 6ÝND³*A>MÞr‘OSAXúŽýR³*A"¯“OSAx³‹E^³*A*}™*”OSAèVÁf³*A~­Ã+•OSA蚇/p³*AVÀµE–OSA2‡`~³*AtÖã–OSA¸èé³*A™ô–OSApþ䋚³*Aâ,á—OSA`-|¤³*AЩܲ˜OSA˜Ò²›´*A{nªOSA+(¨¦´*A¢Ÿ‡©OSAà³ú¦²´*ALÇ«OSA`7*Ó¼´*Ad ãy¬OSAàˆsÐÆ´*Ar<À­OSA¸pÞ{Õ´k*AG]Ñ®OSAÀùå´*AØÄz9°OSAŠÀ4ò´*Aò¦Ó ±OSAàtý´*AÎËÙí±OSA0Zí µ*Azy²³OSA8Ûš µ*AŽ'ú®´OSAП»`/µ*A®g¶OSAxM”@<µ*Aº?s·OSA€ÅŸDGµ*A§±“¹OSA@²>A8µ*Aþõ‚­½OSA0 ¿nµ*AýûÀOSAXršA{µ*A>+áç½OSAÐÁ¸÷‚µ*A~>B·¼OSAà³úf޵*AT•.¯½OSA¸#Z.›µ*AFùúx¾OSApºê=ªµ*Azè3¿OSA0|¤·µ*AØÿ¾ÀOSAT„Wŵ*AàߤÁOSA¸qÖÕµ*A‚Ò¨ÂOSAØÃãæµ*Aw1ÃOSAÈ„ôµ*AÎËÙÕÂOSAào9¶*APçTÃOSA@»È€ÿµ*Aª4ÚŒÅOSAø?EѶ*A.d&ûÆOSA€VÀU¶*A5IÌOSA@M.g¶*AWFuÍOSA"ž{¶*A‹WÿÍOSAPu¶*A¨çU“ÍOSAh¨Öœ¶*Az›¯ðÍOSAÈê'‰¶*A(Ÿ–ÁÏOSAX”—˜©¶*ABðp‰ÒOSA8u£Ë«¶*A,9ŸÔOSA@Ô;x ¶*A4v:×OSAXƒ¶*AÆŽ>|ÝOSA8"'‚¶*A>+áàOSA€+— ¶*A|»ˆáOSA(Ùo‰Q¶*Aô¯]ÞOSA -SïM¶*AXž¸¾àOSAX. s@¶*A‚Ò”âOSAÀic¶*A­TVæOSA0cìV¶*A˜B˜!èOSAD›_S¶*AP? êéOSA`8ÀL¶*A˜þëëOSA¸‚òZE¶*AÂZ-VíOSAŠÀÔ>¶*Ap¹îOSAØ)Û£5¶*A䯥TðOSA`-¼)¶*ABï´ñOSAˆh2Ÿ!¶*A¬=dœóOSA¨L¶}!¶*A*ÊõOSAèMb+¶*AJœŸöOSA°Ðî8¶*AŒp“÷OSApÓ]ÕB¶*AÞ´‘UøOSAà÷ôôM¶*Að7R0ùOSAP5ÿ‹[¶*A(R<úOSAØdKre¶*A’0„þúOSA8Â'™p¶*Aˆæ×ûOSAØ2eC~¶*Aþ9}ßüOSA@²>Aˆ¶*Al*ýOSA`ü¹$–¶*AtþOSAà÷ôt¥¶*Al*±ÿOSAð“(×´¶*AÖÂPSAðµ%nÀ¶*ARÙ(‘PSA œÔ“ʶ*AÄ3HPSA Â–ºÔ¶*AøtíPSAÀlˆ¾Þ¶*A@çæ½PSA FƦè¶*Aä5'}PSA(òâ`ò¶*AÖæw@PSAȦYö¶*A”ÊŒPSA(Q{ ü¶*AÌ R PSAø¥<6 ·*A4T=ë PSA¸pÞ›·*Ax½¬¯ PSA¨C,¾·*Aú0ó+PSAø¥<6 ·*A4T=ë PSA8 *ú¶*A(RPSAøÐÃìì¶*Aº®À PSAÐÁ¸÷¿¶*AL  PSApvðO¯¶*A¶)PSA(jîD¡¶*AžÃ-yPSA@!Àe¶*Ax,.hPSA@wÎ’†¶*AL‘¢PSAˆq¼~|¶*AÎ:[âPSA€Š/öq¶*A‚%Ï7PSAÜxsg¶*A@çæ‰PSAxƒê\¶*AL ÜPSAг¥N¶*AiZàPSAˆF5èB¶*A> äPSA 6ÝŽ8¶*A¶X[PSA8J5.¶*AÀ © ÿOSA@C½Ü#¶*Að{LæþOSA¡…¶*A8;Ê+þOSAxó¶*A¦oJýOSA œÔ“¶*Až3ÇüOSAXØ‘Fúµ*A† \üOSApºê½ëµ*A~`?ûOSA ƒa\Úµ*AÒ!èÞùOSAÈÚ+Ïǵ*A‚ÒØøOSAhÃý¸µ*AªÝuúOSA`¯5׬µ*A:÷Ï)úOSA 1ÿµµ*AR#ûöOSAàfv­µ*A¼&ðõOSA Ç[Ê¢µ*A`(Ø õOSA°æ¾x®µ*A|5¸'ôOSA`-|»µ*AX :ïóOSAš©Ì‘µ*A¿h%ðOSAH‰âñ‹µ*AÒÔc±ñOSA@eº³Žµ*Aæ`®GóOSAV¯>~µ*Axp(ÎòOSAh–Âßpµ*A°µoôñOSA¡‘]µ*Av§½ðOSAhà µ*Aº®xìOSAHaµ*A¢÷>këOSA(Q{­ÿ´*A*[œ/êOSAHøcvð´*ATHªéOSA`¦«—ã´*AH“œèOSA(Œë[ ´*ARÙ(åØOSAP`†‚Õ²*A”[ ±ÃOSA ÌXú²*A–d•¼ºOSA¸Æìh£²*AÞE¡´OSA \Ÿ²*A ;9¹OSA lˆx²*AÒ²f>½OSAèç ½m²*AnŽy¼OSAH3Ôdc²*AØUùÀ»OSAåóW²*AP®¡»OSA¸pÞ›D²*A¼& ºOSAÀ¿ð4²*A¾â!>¹OSAèM'²*ALX“}¸OSA`ê¥E²*AæÏ/·OSAX¶”ï ²*AFŠy”¶OmSAÈóžFþ±*A6ĵOSAÀ™‘±*AòóWæ­OSApÃt„±*AtgžÖ¬OSA@ÝÅ÷w±*Aè‹5¦«OSA@»È \±*A.B)lªOSA`ꥅI±*AÌ R©OSAðª<±*A€iÉi¨OSA˜~…D±*AÔ»ðM¥OSAP¤€ðW±*A!° OSA°´Ø©b±*AräÿOSAh}O(°*A¬^b…OSA0žÿºÓ¯*A䤨MOSAØþSíǯ*Aì%>ÑŽOSAHgåZ¯*Aü}w9OSA&c8¸¯*A^ýP·‹OSAð“(—¬¯*AX :KŠOSAÀ”z ¯*A\°Ì‰OSAX¿¯*AÞEí‡OSAàoY—¯*Apï’Ò…OSAðzµŸ¯*A´ ~•{OSAرÏÿø®*Aš)%ByOSAhdÜË®*A!C®*Anw‡²ƒOSA°^Ê0®*AFùú¬ƒOSA¨ö§p®*A(Á“`ƒOSAˆ Ź®*AÖ*r¶‚OSA(Hñmõ­*ArÍ•ã‚OSA`¦«Þ­*AìrÂR„OSAˆF5hÒ­*A䤨†OSAè=ŠÇ­*A¬^š†OSAà;ï·­*A¼jr‡OSAèVᣭ*Až3'ˆOSAÜx“•­*A¶M‰OSAàÌm^‡­*AúÁq—ŠOSAÀP ,w­*Aäè¢_ŒOSA(jh­*A~>BKOSAÈI­[­*A~ñ½YŽOSAØKØÚN­*AÜø‹SOSA°^ʼC­*A{n§OSA¨Ý4y9­*Aº’H’OSA_9~/­*AbÂà“OSAP5ÿ+#­*AàÓ”OSA Â–z­*AUn–OSA¼¦c­*AðÈÐÛ—OSAp˜ífø¬*A˜¯˜OSA÷’ì¬*AÎËÙÍ™OSA@»È`ã¬*AÆÇíšOSA¸›erܬ*A¿h©œOSApBßY׬*Aæ`®ËžOSAÀ.µÍ¬*AúØ7 OSA8Ju¼¬*A”ᢡOSA0 Ÿ­¬*AH“œ¢OSA¨L¶½ ¬*AlL<£OSAèÞ‘¬*A6Äñ£OSA`ꥅ}¬*AúRnð^¤OSAPèz¾…¬*AÖ*r.£OSAHgåZ¬*A wž¡OSA@*JE€¬*A€‹Æ¡OSAП»àm¬*Aޏx&¡OSAØ QD_¬*A 7tI¡OSA0l,V¬*Aº’0¢OSAÀr £J¬*A ´³ê£OSA`I>ò8¬*AbäÝë¤OSAÈóžf)¬*Aj²÷ð¤OSAx‘ŽŽ¬*A²ˆÃ¤OSA ‘Ȭ*A «)[£OSAÅ0£ ¬*AÜ«¢OSAPñžþ«*ALé9¢OSAˆF5èï«*A¾ñ¢OSA àÎ!ê«*Aœv©Û¤OSAÅ0CÙ«*AêG;x¥OSAЖ1¡Ç«*A’0„¥OSA¨Ý49²«*A¬=d¨¤OSAH`¯ «*AúØã¤OSAè£oŽ«*A¨šÑu¥OSA`ê¥%~«*AÆŽ>ô¥OSAø6»s«*A`—YV¦OSAø&Òùg«*Aæñ,¿¦OSA±ñÜ[«*A&– *§OSA(®èÒH«*A`ÐŒ§OSA@ö89«*Adíg;§OSA@ÿÂŽ*«*A «³¦OSAˆq¼¾«*A씿1¦OSA€ù°š«*ADøÏ¥OSAXؑƫ*AHµ{¥OSA8Ûšõª*AÔ…:¥OSAèVaåª*AÈlA5¥OSA@»È Òª*A8¨¥OSAÀ”Úª*A¨xÔN¦OSAðé6D²ª*Aâ  ò¦OSAþujª*A²àöv§OSAƒÐ½‰ª*Aư;¨OSA°ÐNyª*A¨ SΩOSAp±`žqª*AtÖ«OSAÀ%…•dª*AÂë«M¬OSAØ)ÛcWª*A»·¬OSAÀiCGª*A*[œS­OSA¨°Ë5ª*Aư;û­OSAùAy*ª*Aâ  š®OSA¸5nÍ ª*A*[œg¯OSA¡±ª*Aô@Üw°OSA°æ¾xª*A”[ ±OSAà¡æg÷©*AˆÈa:±OSA˜8w7å©*AD=õF±OSAâhJÖ©*AšÜ |±OSA°ÄÁ¡Ê©*A:÷ÏÙ±OSA¨C,>¼©*AJ¾Š¶²OSAào9±©*Aæñ,´OSA8S¦4¦©*AnÄ œ´OSA0 ™©*A‹4´OSA 6݉©*Aư;£´OSAøaB¨x©*AÚ^ƒìµOSA€¬,íh©*A0 ,9·OSA]W[©*A˜ ›6¸OSA¨Ý4¹N©*ARj§@¹OSA¸èéŸB©*AŽI÷ºOSA \Ÿ•7©*ARÙ(A¼OSAH^[»,©*Anæ{½OSA $É#©o*A­Tv¾OSA8:3Ý©*Aô¯]ؾOSA XÚ… ©*AŽ'ú¿OSA輄f©*A†ê^ɽOSAH×-ó¨*Ak~¼OSA`ó/åá¨*A î´÷ºOSA¸èé_Ó¨*Anw‡ê¹OSAhÊӵȨ*Aèú¶F¹OSA 1_»¨*AÒi³¸OSA ‘¨°¨*A¶ÇƒÃ·OSAP,ul”¨*AÞÖŽd¶OSAXŒT€¨*A:fQnµOSA€Vàk¨*AÊ—Èã´OSA8S¦T4¨*Aü[zµOSA¸›eR'¨*A^NBµOSA€ÅŸD ¨*A$üõOSA`ó/%Á§*A¾â!¢µOSAˆO¿‡¯§*Av§QµOSA±ñü˜§*ADøã°OSAV¯þ §*AøãnN´OSAà÷ô §*AhÔôçµOSA˜|q%n§*A Ö°m·OSA2‡8§*AYqè»OSAÈü(†'§*A,†#î¼OSAÓîÓ§*AÚ€€'¾OSA°ÄÁA§*Aþ€0¼OSAaÓ&§*ADÎs¿OSA(âù(‘¦*Aœ˜¦ªÉOSA€£¢ t¦*Aæñ,ÄOSA`k; Z¦*A"bû¯¾OSA@»È U¦*AnæÓ¼OSA•ä|<¦*Aãÿì½OSAM%5¦*AÖ*rÆ¿OSAÐ=ÅH¦*AÀ/¦W¿OSAp)lB…¦*Aþõ‚™ÊOSAº{¦*A¼Ù—¢ÔOSAX¶”o«¥*AŽÚuËOSAø•Sž‘¥*AÊäLíÇOSAP½óG„¥*AXž¸bÆOSA¸èé¿t¥*Aà'ÅOSA¸’Û²R¥*AÔÝí ÂOSApþä‹C¥*AH…˜ÄOSA ~œ¬4¥*A^¥éÅOSA8©´¥*A‚%ϯÆOSAȦùí¤*A"bûG¾OSA8©´¸¤*AÊ—ÈgµOSAP«¤*AG])¶OSAp âb/¤*A’¶OSA˜ÀkÓô£*AœT¬šOSA¨Ý4¹)£*A:fQÖ¥OSAàéߢ*AŽI÷Í¡OSAà颢*AÊ—È·OSAðO. h¢*Ap€šOSA(j÷¢*Azy²1•OSA ~œì¢*ATHª“OSAȯ¤Ø¢*Af©m”OSA€ šrÈ¡*Af\égOSAˆ¡*A°µo„ŒOSA±ñ\k¡*A¶¥†ÀŠOSA`ü¹d[¡*AÒ!èÒ‰OSAȯ¤8P¡*A¤‘GЉOSA(•u^¡*A"bû·†OSAÀ>ø¬>¡*A6]ÇÒ„OSA¸ß_ #¡*Aø–ê\ƒOSARpY0¡*Ajnýª„OSA8˱X¡*AJ¾Š²†OSA`k;) ¡*A¶6HŠOSAPèzÞ$¡*A§±£‹OSA@nD3@¡*AЇßsOSAàÌm^H¡*AJà‡5‹OSAðh¡ ¢*A"¯1–OSA€çœ›`¢*Ap¹ ›OSA`ó/¥£*Aˆæ÷¦OSAîŒR»¢*Aþ€`«OSA +á *A¤ÉêÇOSAˆF5¨‘ *AJœWÃOSAPpoú *A{n«ºOSA08¶ÔŸ*AªV׿·OSA°‰Qs¨Ÿ*AöIf3µOSA€¬,ícŸ*Ax½¬Ã°OSAð¾¯í"Ÿ*A¨+PѬOSAøHÚõž*AÆŽ>ªOSA(Àüñçž*AöÚäfªOSAX¿Oñž*ABnÈ«OSA8˱xŸ*AÔLoy®OSA¨g}œŸ*ADøC¶OSAIœŸ*AЩÜò·OSA(jW¦Ÿ*A4å»·OSA¨n³TΟ*Aþ€@¹OSAÈóž&öŸ*A˜±Ú»OSAП»@øŸ*A:fQʽOSA@nD *Ahöñ~¼OSA8í®ÏŠ *Ajÿ{ÖÄOSAH×Ò *AÄ…´ÌÉOSAðq+À÷ *Av´"TÈOSApùê#£*A&– Ò§OSAàîj5ó£*AÎíÖø›OSApc(¤*A”[ ŸOSAðŠž×=¤*A&Ž’£OSA àÎáC¤*A:fQº¥OSA(•u»I¤*AbS_§OSAÈêgS¤*AT°'©OSA`ȨN_¤*A.ê«OSA°€Çse¤*AL \­OSAXŒ´j¤*A¼Hÿ®OSAð×"%r¤*Aì%>Q±OSA0ޤ*AB4kO²OSA(·r‡¤*A"´OSA¨g=‹¤*A–õ`¶OSAÀ>ø,‹¤*AޏxƸOSA?Ö/Ò¤*A$k…?ÇOSAШEàå¤*AЩÜÚÊOSA¨w=ôö¤*AÀ/¦OÍOSAèV¥*AÖ*r¢ÓOSAôeD¥*Aì%>¥ÜOSAèVÁ¥*APaàOSA]—Τ*A2˜7©ÐOSAгE̤*Av’%MÎOSA˜~åÁ¤*A\ôÆ—ÐOSAàt³¤*A¶…ÒOSAÐT˨¤*Aˆ7ãŠÓOSA`ó/ež¤*A’ŸSÔOSA ‘è¤*A‚͇ÕOSA@nDÓy¤*Af©m¡ÖOSA(?gŽj¤*ADÎsj×OSAh¨Ö>Z¤*A\AK1ØOSAðé6„E¤*A>+áÙOSA±ñ|1¤*AØÛ¨ÙOqSA`'AÛ¤*A¾s ¥ÙOSA@ö8/¤*At‰›AÚOSA8í®ü£*A(0‰ÛOSAø¾Úñ£*A¾â!&ÝOSA`-\Ø£*ANò›„ÞOSAàˆsPã*AJœwàOSA`Ȩ.¶£*A‚ÍwáOSAÀ>øl«£*A ÂGâOSA`Ñ2®–£*AXë<øãOSA˜€£*AÔ…ÚæOSAª’äv£*A íîçOSA@‡·jm£*AvE¡éOSAàªpçc£*AÔLoêOSAàˆsX£*A0þ.ŽëOSA˜°‚›I£*Av’%ÕìOSAXØ‘æ1£*A*ìÇîOSAhìÐŒ#£*Adíg‹ðOSA¨:¢^£*Aˆ7ãZòOSA à·õ¢*A–õ÷OSA(sx¤ë¢*A~`?ÎøOSAx]}8ã¢*ADÎs*úOSA0|ÄТ*AtMûOSA°æ¾Ø¾¢*A¸ò †üOSA€$Ò«¢*A˜B˜þOSAІH)¢*A¬=dPSA0|D“¢*AHµ{PSA)ýŠ¢*A óy_PSA¨²­‚|¢*A¦¼ÎœPSA¸ çVn¢*Aà£PSA_9ž_¢*ABnìPSA°<ÍEL¢*AXZ¾°PSAÀኇ5¢*A\°Ì½ PSA¨w=4¢*AZ8Á¡PSA81©ý¢*A42@8PSAÁÚô÷¡*A¿hÍPSA`¦«7î¡*AP? :PSA`ü¹dæ¡*A¼·šcPSA81©½Ü¡*A¨xÔÞPSAÀG‚ Ï¡*AêG;4PSA¸‚òú´¡*A*”÷PSAˆzFþ¨¡*AnÄ @PSAð 4{ž¡*Aökc~PSAXáÆ–¡*A$k…‡!PSAÀYŽ¡*A,¢#PSA¨»7"†¡*AFh|$PSAP5ÿ+{¡*AžÃ- &PSA8\0ôp¡*AnÄ 'PSA ng¡*Atø*)PSAhÊÓõX¡*AD=õ^*PSA˜ëòÉO¡*AˆÈaV+PSA¨°+O¡*AÀ/¦/PSA¸Ná$J¡*A²¾ùÃ0PSAˆ;ú ¡*AlÝ~:PSAðO.©þ *A‚”P9PSA(jîDPŸ*A|Æ6Ç~PSA65nŸ*A"Ñ|pPSAh9U|Ÿ*Aÿ áPSAîŒ2Ÿ*AÒ²fš|PSA哳Ÿ*A(Ÿ–}~PSA8— ¢¼Ÿ*ArÍ•7}PSAxf¸¡Ÿ*A܉ £zPSA=<Ç»Ÿ*AÌÔKvPSA J‹6ËŸ*APçwPSAx]}8ÞŸ*AøãrnvxPSA@A*çŸ*Aú؇yPSA ~œLóŸ*Aæñ,+{PSAé¡÷Ÿ*A<‘ØŒ|PSAàDy÷Ÿ*A­T~PSA8S¦ôñŸ*AN¥óPSAx÷…síŸ*Aà{PSAxzOן*Anæ_„PSA¨²­"ÙŸ*AšK"­†PSAûÛAØŸ*AøtíQ‰PSAÀP ¬×Ÿ*A™ìŠPSAh–Â_ÖŸ*A\°ÌŒPSAX}ÓŸ*AH…`ŽPSAP•П*A"¯áPSAø®Æ•ÍŸ*A(R¸‘PSAؘ\¨ÉŸ*A „øŠ“PSAxÞ\ÄŸ*AÄÒ8 •PSA0•>½Ÿ*A¤ÉÞ–PSAˆ;šµŸ*AÖ™ó ™PSAØÜV–±Ÿ*A$ü‡šPSA H¬Ÿ*A2)¶8œPSA`Y'ʪŸ*A¼Ù—žPSA9渵Ÿ*A®g­ŸPSAÀYŸ*AdígË PSAXŒ´ÑŸ*A¸aŒÖ¡PSAÊdÔâŸ*AD=õz¢PSA0§‰Z÷Ÿ*A,õ¤b£PSAàîjÕ  *ARŒ¤C¤PSA ¥^“ *A^ŽÏR¥PSA€=«è% *AЩܞ¦PSAÀ.5 *AdeÖ¦PSA€¬,m *Aº®§PSA¥Í´öŸ*A’0„¦§PSAH3ÔäêŸ*Ajú©¨PSAØTbúÝŸ*A(Ÿ–QªPSAP½óÇÓŸ*A씿m¬PSAØ QÄÊŸ*A í^®PSA0l¬ÇŸ*Axp(n°PSAp2öAÇŸ*ARû%`²PSAè4JËŸ*Aüìøe´PSAx¬UœŸ*Apù¸PSA"žèž*AjnýþàPSAOYó*A¶¥†ˆáPSAXiÂà*Azè3¶âPSAˆ•íÖ*AP®¡JäPSAˆO¿gÊ*AŒkô˜åPSA0\YÈ*A0 ,}çPSAÈꇸ*AöüáMéPSAxˆO­*AX :éPSA`¯5— *Af©m%éPSA0Ɇ±*A>+á³éPSA˜žnœ„*A~`? ëPSAи.xx*A~ÏÀíPSA€¼…g*A¢÷>cïPSAØv_ñX*AЩÜòðPSA(?gîI*AÀ ©tòPSAÐ0:@*AÒCå…óPSA J‹4*Aøãn õPSA¸ çö'*AVQ4EöPSAPÆ}§*AWF¥÷PSAÐ[Á’*A6îEÖøPSAˆO¿ç*AèÄ0úPSAXGkûœ*Aî.ȘûPSAx‘Žöœ*AhöñnýPSAùAùíœs*AªV×ÛþPSA@Ô;8âœ*Aî¿FðQSAøHÏPל*A§±QSAè=JÚœ*A"bû+QSA`-<ãœ*A’¶[QSAHøc–íœ*Ad~æ’ QSAˆF5¨óœ*Ad1bù QSA ̘ùœ*AX|»c QSAxƒjÿœ*Aœå*QSA “J4*A’}àQSAx‘ŽÎ *At~ÀQSA0 Ÿ*AhCv¼QSA8"*AÞE¹QSAHïÙ¶*AÎ~UTQSAH3Ô„*Ar^?QSA`-<$*A`ÛbQSAàîj5,*AÀ ©¸QSAx]}ø7*A¼jâQSAv.E*AnÄ ¨QSAX%tV*AôÑZkQSA}àm*AlÝ~ûQSAð·™~*A^ÛSQSAØÓÌV“*Al»ÜQSA8J5¥*Aœv©[QSAàò ¶*AP? QSAh[R1Æ*AÐö`äQSAðœ²6Ñ*Až¡0ŠQSA˜Òrá*A ´³úQSA(òâò*A†ê^QQSAÈÈž*A>Ó1QSAà;ï"ž*ARŒ¤×QSAˆÇÊë ž*AžÃ- QSA¼¦c/ž*Aâ  JQSA(?g®>ž*A’¶ÃQSAÐ}¾‰Jž*Aà›QSAàhLVž*AbäÝŸQSA¨L¶Ýaž*AnÄ ÌQSAˆ-ÂPmž*AžÃ-QSA (Ž¿xž*AÎ\XeQSAØÓÌ6„ž*Ahes§QSAàéð’ž*A>+á»QSA@ÿÂΞž*A„rS±QSA¨Ý4yªž*A|¤9¼QSAxzO¾ž*A <¨QSAÐì?Íž*Av´"TQSA¨ö§Ùž*A^ŽÏîQSA  ™#çž*AH$‚ËQSA8— bòž*A>¼_óQSAx“ýž*Aè‹5NQSAÅ0ãŸ*A˜B˜™QSA à÷óž*A¢ÕAQSAhD¤ñž*AH$‚×QSAàîjÕýž*A¶Þ!QSAå3Ÿ*AÐ^G"QSAf!Ÿ*AVQ4©"QSA°´Øi'Ÿ*A~­Ãë"QSAP`†b:Ÿ*A¿hA#QSA¸èéÿGŸ*Aº’Ì$QSA@eº³PŸ*AøtíÕ&QSAhÎÃ=Ÿ*A²Ox·'QSA@Ô;ø¯ž*AT&­¢.QSAX!¸³ž*A^ýP‡0QSA8— Â+Ÿ*Ac‡+QSAØBN›3Ÿ*A4v:z-QSA`¸t¿Ö?Ÿ*A|Æ6ë/QSAÀØèFŸ*AØÄz2QSA0°úEŸ*AîIA4QSA¸ß_€JŸ*AÈÛÂ}6QSA€ù°ºMŸ*A3O8QSAøÐìIŸ*Apï’N:QSA  ™CAŸ*AP? *¼_+fQSA£3¬ž*AJœShQSAÀ‹|Zž*A@çæÍiQSAX¿¯ž*AXž¸FkQSAØKØšþ*A:DT·lQSA˜8w÷ï*A\AKnQSAø&ÒYâ*A{nËnQSAhÎCÑ*Ar< oQSAÐ0:È*A–†’“pQSA ÌxË*Aæ`®#rQSA?ÖÕ*ABïsQSA]—à*A î´“sQSAHøcVï*Atø†tQSAðà¬Äþ*A¦MMœuQSApBß9 ž*AZ…EãvQSA Ë šž*A4T=ÃwQSA(jîD(ž*A|Æ6OxQSAðù¼3ž*AÜø‹7yQSAh}OÈ1ž*Aî¿F{QSAÀúý^)ž*A®g|QSAõëÊ#ž*Aâ›Ê}QSA ¹ [ž*AÈÛÂE}QSAàîjuž*A íV‚QSAè ´ø*A¶XÄQSAH#ë  *A8ÌH‹¯QSA"žñŸ*AÖæw,ÙQSAÀP ÌëŸ*AöÚä‚ÛQSAÈÑ¡ÏÞŸ*AúÁq›ÜQSAx÷…s´Ÿ*A¦oJ éQSAH3Ô¤ªŸ*A6]ÇÎëQuSAø?E1¡Ÿ*Aœ(×êQSAx¬µcŸ*AÚ͵õQSAx;€Á|Ÿ*Aº?÷úQSA¸ß_@EŸ*A6îEJÿQSApKi¹-Ÿ*Anæ§úQSAˆq¼þŸ*A´-{üQSAØõÉÍО*A†{ÝRSAàˆsðÞ*A0m°–RSAìa«¥ž*AL ¸RSAûÛ!ž*A¶6 ÞQSAP‚ƒÙæ*AÜ<†¹àQSAPÏgÑž*AÀž'`RSAhÃ=О*A‚%Ï%RSAhãFÅž*A,¨ &RSA65´ž*A g/ 'RSA°<Ímž*A4v:Ö RSA@nD“}*A²¾ù—çQSAX}`*A†.Y7éQSABpØí*AŽ–{ RSA n„*AªV×ÓRSAPèz¾«œ*Aäè¢ßÝQSA8— ‚‹œ*A^ŽÏ:àQSAP>‰Kˆ*Ar<øRSA`ü¹Ä*Aæ‚«ÒRSA8u£‹}*Apï’ !RSAè4*.œ*AœT¬¸RSAÈóž&M›*AN6–†RSA µGkU›*Ap¹ÌRSA@ö8/C›*AZÄÆRSAðO.©7›*A”¨º1RSA¬½‹&›*A#5o6RSAðh¡  ›*A’‡O6RSAØ Q„üš*A,†#–1RSAûÛá›*AÎËÙRSA•äÜùš*AÀ/¦RSA8¹òš*A‹lRSApBß™½š*A´-{(RSAh9UÚÅš*A g/­RSA€xWÆš*A&ŽúþQSAà;ïBÈš*Aº’€õQSAÐÇ„¯š*A,†#õQSAðù|®š*AŠóè¬öQSAP>‰‹­š*A Ö°AÿQSAèxŠx¬š*Aø–êäRSAÐãµÎ¦š*A^lÒÃRSAPyù¹à™*A0þ.ŠRSA°æ¾Xæ™*A”ÊŒ RSAxîûÓÍ™*AªÅXìRSA4²'È™*AáeRSAˆµ¶ÌÙ*A¤"ÆmRSAX%ÔÁ™*AtgžÎRSA°^Ê<Á™*AŽ'úV"RSA`¸¿ÖÀ™*A¢<†&RSA°gTÁ™*A䤨%)RSAX‹ Á™*AÌSν-RSA`¯5÷¾™*Aî.È0/RSAð 4{µ™*A’ì‰p0RSAÀÏvh£™*AÈJD²0RSA€£¢í•™*A¸Ð ÿ.RSAè4J“™*AšK"M-RSA@eºS—™*Aøãn‚RSA°‰Q³—™*Aß:]RSAø&Òy™*AöÚäîRSAhtŨ…™*A¨ vSRSAHøcö™*Aº?«RSAÀG‚ì…™*A”¨þRSA¨¥‡„™*A’‡ëRSA(sxh™*A6]ÇÞRSA˜€f™*A^lÒCRSAhdÜZ™*Aè‹5ŠRSAèÅFR™*A‚¶M#>RSApc'E™*AtgžBRSA?Ö.™*AŠbjMBRSA éX¡"™*A~ñ½>RSA8©´a(™*At~¨RSAxS ™*Aœ(?RSA°F¯™*A`ÛªRSAÐÇÄ™*Ah‡p>RSAØÓÌÖ™*A„¿×¢RSA˜cþí™*AFùú RSA`-\™*Ahöñ.÷QSA=<Ç™*AáeÀæQSA;`ü˜*A0 ,%æQSAàÕ÷ý™*AÀ ©”ÕQSA ¹ [ ™*AG]MÀQSAhãF ™*A4þ_ŽQSA0/~–%—*AnŽýoQSA°´Ø‰š”*ADøcIQSAhÃ}¯“*A²¾ùŸ;QSAHÖf_+“*A”;^QSA¸ÆìÈW’*Aº?‹–QSA?°Ý”*A"@þÀ¼QSA8˱Œ•*A4T=›ÆQSAØÃã>G–*AºŒ©ÑQSA¸]7ö–*AFh|ÉÜQSA˜/íwô–*ABðpáQSAÈ{“"ê–*Axß©ŠûQSA –*A@çæaûQSAÅ0À–*AÄô5ÉýQSAP½ógµ–*Ax½¬ûÿQSAPNr¤–*A䤨mRSAhX³–*A:ÕÒ RSAH<^8”*A¬ðßÊ)RSAè“S©“*A4v:†+RSA(âùÈÅ’*AŠÑë%RSAЉo’*A˜þ;"RSAèVÏŽ*AÜø‹§RSA¨L¶½…Ž*AtgžÞ0RSAHa *A’0„Î5RSA(•uû+*A4v::6RSA˜ô|é8*AÔ»ð¥6RSA¸WkÄE*AX :7RSA NZ*ALz°7RSA¸èéßm*A íJ8RSA¥Í´~*A|¤9Ì8RSA8©´!*A^ÛS@9RSA0l,Ÿ*Aì%>­9RSA𜲖²*AtÖ/:RSAš©,7*Ad ãñ=RSAŠÀôH*A"bûo>RSA8 *]*A>šb?RSAÈY–‹m*AÐ^w?RSA¨¥ç|*Aè>±Ü?RSAaÓæ.‘*A²ˆ DRSAˆh2ßF‘*ACÿDRSAØ2eÃQ‘*AølARRSAø¾Ú}*AÌÂO:^RSA (Ž_ÁŽw*A¿hqwRSAàfvùVŽ*AP? ¦xRSAXG‹3Ž*Aï#%yRSA˜žn¼÷*A²qu*wRSA0ŽÕ*Aâ½YvRSAxÞ¼u*AH“”sRSAÀ>ø E*A°µoLrRSAðù\*AjnýÚpRSA¸NáDåŒ*AðêÍ‚oRSApo뵌*A¾s -nRSA`„®àƒŒ*A2)¶èlRSA(òâ QŒ*AXž¸~kRSAØþS-Œ*AYqÜiRSA€¬,­ì‹*A%`jhRSAˆÇÊ+º‹*AæÏ/øfRSA¸›e2‡‹*A8ˆNñeRSAhìÐ z‹*Af\é›eRSA Â–Úm‹*A`JÕ0eRSAШE@%‹*AÄc·RSA8"Ç‹*A¨šÑe“RSA2‡@Œ*A°×l»¤RSAh¨Ö>¹*Aü}wõ¥RSA€çœ»¹*A¦ÞËw§RSA•ä¼¼*A´-{ì¬RSAØ Q¤¿*AHqQ²RSA; Â*A8ͼ·RSAи.˜Å*A¸ƒ‰5½RSAP xuÈ*Að7R¤ÂRSAرÏ_Ë*AŠóèÈRSAŸÝ]Î*A¬=d„ÍRSAàTÑ*AÌ RÿÒRSA¸ÆìHÔ*AÔLoqØRSAÈI­3×*A(RäÝRSApc'Ú*A¼·šWãRSAX!ØÜ*Aò„ÖÅèRSAІH à*A8HîRSA¨C,¾â*A «³òRSAº{¼©*Aˆ¦d;ôRSA (ެ*AŒ¯îšùRSA(Ùo©­*A¸aŒÞüRSA¨²­Â®*Aœ(ÿRSAˆ;ÚÓ*AVâ²SSAèóò*AÄ…´ SSA8¬æŽ*Aè‹5† SSAðh¡ 5Ž*A²ô]SSA¨Ý4yXŽ*AŠbjySSAP5zŽ*Al»\SSAPyùY›Ž*A «)_SSA˜cþ½Ž*AXž¸SSA@eºsߎ*A’‡+#SSAІHi*A¤Éú&SSAÅ0Ã"*Aì%>-+SSA°æ¾ø*A²¾ù/SSAp âüŽ*AÒ²f¢0SSA0 ß *A 7t%5SSA0ɆÑ)*AXë ‹SSAàh z’*AØÛXˆSSA(jîÄd’*AŽÚuÁ‡SSAHÍÜ_’*A8ˆNí~SSAP‚ƒ¹’*AR#ãzSSA(÷ß’*A$‚‚pSSAðO.É’*AØUù,iSSAÀúý>’*A‚”PdhSSAHøcÖ0’*A\ÒÉÌgSSA0\9-’*ALécSSAx]}Ø'’*A:³Õï]SSAPßð’*A,õ¤fUSSAШE’*AÖ™óÂLSSAà¡æÇ’*AP? :HSSAÃ’*AýGSSAàÌmß’*A¦oJÛ8SSA°ïH8]“*A|5¸K/SSAØõÉmt“*A‚Ò.SSAÐt4Jº“*AÆý¿l+SSA±ñ<”*A6ÄÉ,SSA€¬,l”*A0 ,A3SSA¨n³ô{”*At~è5SSA8"§j”*Aœå*8SSAø¾zP”*AŒñ?;SSA€=«¨;”*A®¬åÜ=SSA éX$”*Axp(6ASSA(òâ` ”*A:÷Ï9DSSAØv_1Ø“*A¬^&KSSA  ™#æ“*ADÎsJMSSA¸ñsŸð“*Aï#9NSSA˜…ûDû“*A:³ÕçOSSAè ”*A0Ü1óJSSA8¬æ-”*AJO JISSAxfx£”*A|¤9H:SSAH´iˆ½”*AÂ80·=SSA€¼EÚ”*AôÑZ‡ASSAØÜV¶œ”*A¾Q£zISSAØ2ec0”*A¿hVSSA¨Ý4™”*AL‘*ZSSA0ô ($”*A¤ÉÆ]SSAhDdó“*A 7tídSSAÀ­y‘O”*AÝ^YSSA˜ëòév”*A­T¢SSSAè=ª}”*A0m°ÒTSSA¡qo”*A,¿WSSAèVÁŽ”*A6¡Á([SSA¬½‹½”*AÊäL USSA \Ÿ5ë”*A.d&¯ZSSAè£ïÿ”*A‚Í¿XSSA"žˆE•*A¾Q£ŽaSSAÈI­sX•*A¶6dSSAè ô€”*AÎ:[6~SSAø¥ äDôSSAÀP ŒÙ™*AÚÍTSAØTb š*A «{TSAШEÀš*A”ÊŒiTSA°ÖÕ`ÿ™*A|¤9$TSAÐÁ¸×Å™*AЇß_TSAH´iH£™*A^lÒÿTSAÀ‹|z”™*A”ÊŒ)TSAp)l™*AŒñ7TSAØåà5œ™*A.d&TSAÈêgu™*AÞg ˆTSA_9Þ™*AØ¢}TSA(jîdÿ˜*Aâ  fTSApùªç˜*A.êÑTSAرÏ_И*Aê¶¼DTSA¨g}¸˜*Ar^·TSA J‹Ö ˜*A"Ñ|0TSAØÒ(E˜*AÚï@TSAI>˜*AúÁqTSAP8˜*A®g‘ TSAˆzF2˜*AüÊûf$TSAÞ£:,˜*A’¶C(TSAøŒÉž%˜*AÎíÖä,TSAÈkªê+™*A>+áw3TSAsçE9˜*A&'‹©wTSAHÍÜŸº–*AÆý¿¼`TSARY0y–*AhesrTSAŸÝýô—*AÂ뫵ˆTSAðq+ ä–*A<Þ\2ÈTSAH^[;}•{*A˜B˜a³TSApÜç´z”*AÌSÎM÷TSAX¿O9”*AYqpUSAH¢Ué÷“*Ar^“USAPá“*AÌSΙUSA`-<”*A–d•$#USA0žÿz”*Aâ  ’$USAØÒè\”*AÖ™ó")USAÈ&â”*A\AK±0USA¸ß_@#”*A6îE¶dUSAø•S¾#“*AL+VUSA`Ñ2.­“*A «ß2USA¸›eR†“*A§±0USAÅ0)“*Aàp—IUSAP`†“*A¾Q£vSUSAtV'õ’*Azè3†VUSA 1¿Ú’*AÀž'L]USAÀÏv(½’*AÜø‹eUSA[ãè’*ARŒ¤»gUSAè4*Þ’*A”9ºiUSAp2öAÙ’*AЇß+lUSAˆh2ßÖ’*A6]ÇrnUSA"žˆÒ’*Al™„qUSAð-1òÍ’*ALX“sUSA8í®oÊ’*AX|»“tUSAxÄ’*AÝwUSAà"|ë¾’*AXž¸yUSAâh º’*A‚%ÏëzUSA¸ß_à¶’*ARŒ¤×}USA S¶¹’*A”¨Š€USAX‹ ù»’*AN™WƒUSA¸Nád¼’*A8ˆNµ…USA¸ß_ ¼’*A°Fî÷‡USAØ)Ûƒ¼’*Aây!7ŠUSA˜~庒*A‚GÌê‹USAP½ó‡¸’*A›@ŽUSAÀ%…5¶’*AÀž',USAرÏ´’*A²qu’USAÈÈp²’*Ae^”USA°‰Q²’*ARÙ(u–USAè=j±’*A"¯i˜USA°U@°’*AØÛä™USA@LG|¯’*Ax½¬‹›USAøjÌg«’*AÞE%USAh¨Ö^£’*A´é€NŸUSA¨!/§œ’*Aæ*Ž¡USA¨ö§Ð—’*A.d&?£USA8í®O”’*A@Vh¤USA˜cþ†’*Aˆ¦dצUSA(ûl €’*Aø–êà¨USA€Š/vy’*A°×l¯ªUSAPpo:q’*A g/ѬUSA˜Ò’n’*Aô`Ù®USAXŒk’*Abu\ǰUSApÜç´e’*Af©m•²USAØdK’Z’*ABn”´USA0§‰ÚP’*Až¡0N¶USAÜx“I’*AØ3ü¸USAX £\A’*AjnýÖ¹USA@wÎR;’*Azè3.»USAÀÏvè4’*AÌ R¿¼USAˆ-°-’*AÄ3¾USAT„—$’*Af\ék¿USA81©’*AXZ¾˜ÁUSA¸#|Z®’*A¢ˆ½‚ÃUSAhÊÓõ’*A.Ó§;ÅUSA —Dþ‘*AÂë«ÑÆUSA˜AW÷‘*A4T=_ÈUSA¨*¹Æ÷‘*A|»,ÊUSA0ÒQñ‘*A$üçËUSA`„®`æ‘*Aÿ mÍUSA¸¤ïQâ‘*A\cHDÏUSAP`†¢Ú‘*Aþ9};ÑUSA°ÍKAÒ‘*AC ÓUSA¨¼ïΑ*AÐ^‹ÔUSA`¯5—Ê‘*A®¬åèÕUSAØv_ñÇ‘*Ahes[×USA€$2Á‘*Aî ËØUSAh0˽‘*Aêi8óÙUSAhãF¸‘*AN™ÏÛUSAØmÕq±‘*AöüáõÝUSAè+K­‘*ALëßUSAV¯¾¤‘*A*}™âUSA°ïH8œ‘*A~ÏÀòãUSA0•Þ–‘*AýÃåUSA€$’‘‘*A|Æ6‡çUSA8(þˆ‘*AêG;ØéUSAhDDƒ‘*Að{LÒëUSA`¯5÷‚‘*A@xeíUSAã×ë‚‘*A&Ž^ïUSA@²>b‘*AÖ*rVøUSAÀˆn‘*A2º4ÜùUSAŠÀô]‘*A\cH°þUSAè_AQ‘*A:÷Ï þUSA81©D‘*A2˜7…VSA0°š=‘*AH$‚çVSAxÌþÜE‘*AºŒ9VSA°‰Q2‘*AVs1tVSA`I>R'‘*AÚÍéVSA˜A÷!‘*A>MÞrVSAؘ\è‘*A¾•¼VSAx“‘*AzWµê$VSA°Fïê*A",VSA¨ÿ1Ðä*Ar<D.VSA@*JÅÞ*AîPÅË/VSA¨»7‚Ù*AZ8Á=1VSAp˜íË*AÍ&Ú1VSAð଄À*A`—Y¦3VSAèç }¸*A Ì·ü4VSAÀ¿P­*A&¸ q6VSA@ÝŤ*AYqT7VSAîŒò˜*Aœå*x8VSA¬½+Ž*Ax,.Ì9VSA@!À%‚*Aè´ý9VSAà]ìY{*A E2N8VSAH¢U‰z*A¨ S^6VSAXØ‘f*AÌSÎ=5VSAxD ‰*AÄœÚ3VSA¨¼¯“*A¢÷>—2VSA8˱xž*AÎ\Xý0VSAHÄR`›*AÐö`¼.VSA@eºÓ“*AF×ýá/VSA0§‰Úˆ*AŒür1VSA¨¼¯|*Aj²÷ü1VSA°ÖÕ@u*AlÝ~3VSAàîjUl*AÂ805VSA(jîY*A!t6VSAàÕ÷]D*AðêÍ®6V}SAhDd4*A|¤9<7VSAøŒÉ&*AtÖ8VSAx" J*AÂë«)8VSAÈ„¢ÿ*Ašº£8VSAH’l1ï*AòbÙ¶7VSAÀúýþÚ*A˜ ›^7VSAÀ”ZÆ*AÔ…æ6VSA(?gN²*A@çæ­6VSA¨©#ã¤*A$Úd7VSAØBN{“*Aêi8'9VSAdmˆ*A¬_a:VSAÈœ=*AX :×;VSA 1¿w*A(Á“4=VSAШE`p*A2)¶¼>VSA¸Ná„g*Aø'i<@VSAÈ„B]*A܉BVSAÀ™O*A@Åé^DVSApùÊD*Aâ›*FVSAÀúý~<*AvE¡gGVSAÁÚ”4*A’‡ËHVSA`Y' ,*A¶X‹JVSA0l,$*A*ìLVSAèM"*Aâ  òMVSA(Œë;*AÆý¿ OVSAxƒJ *A0Ü1{QVSAh0ËÚ*AÂë«áRVSAà³ú&*Av#¤pTVSAh}OˆýŽ*AJà‡ÑUVSA[ãoùŽ*A<‘ØdWVSA`Ñ2îöŽ*AÍ&ÆXVSAÈI­sòŽ*A¨šÑUZVSA¨e)ÕíŽ*A®¬å\VSAXi¢çŽ*Ap¢5^VSA8¬fߎ*At~È_VSA@LG\ÔŽ*AàßxaVSAh}OÌŽ*A˜cVSAH3ÔdÀŽ*AÊ(GWeVSAXG벎*Apï’îfVSAHÄR@¦Ž*A^N2hVSAÐãµNšŽ*AdígûgVSA(ÀüÑŽ*A4þ»fVSAÀ‡Ž*A¸ƒ‰ hVSA?0|Ž*Aø–ê°iVSAØåàrŽ*AjnýFkVSA8©´!gŽ*A w†mVSAxîûó[Ž*A~ñ½AoVSAPRŽ*ADÎsªpVSAØKغEŽ*Aú0ó[rVSAxÕˆ|?Ž*AÞg ¨sVSA˜Zt®:Ž*Aß:UuVSAè t8Ž*A‹˜wVSApùj9Ž*A˜B˜ÙyVSAÐ[Áò9Ž*AŠ„gØ{VSAM%;Ž*A*ì«}VSA¸5n­=Ž*A@VhZVSAø·Pµ@Ž*AÂZ-RVSA€=«ˆCŽ*Ap€î‚VSA˜cþ­FŽ*ARj§”„VSA@æO—JŽ*Ax½¬c†VSAX¶”/LŽ*Aº®4ˆVSAXršÁWŽ*AÁΆVSA XÚEdŽ*AJœ[ƒVSAhÃmŽ*A2)¶x…VSA ¨zŽ*A6¡~Á@†VSApcLJŽ*Awñ†VSA`ê¥Å”Ž*ARŒ¤¯‡VSA¸,äMŸŽ*A@çæ‰VSAm÷n¬Ž*Ar«˜ˆVSAÕ›»Ž*Av’%u„VSA;àÆŽ*Afï9…VSAøÇ9M³Ž*Atgž&ŠVSAòQ°Ž*A>Óá‹VSAHïÙ¯Ž*A¾VSAè+‹¯Ž*Aˆæk‘VSA ƒa¼ÀŽ*A¬=dd•VSAX¶”/ÊŽ*Aî ˱—VSAØ QäàŽ*AbäÝœVSA µG+ìŽ*Ajÿ{òžVSAX‹ YùŽ*A¾EžVSA˜žnœ*AÈlA‘ŸVSAKúw *Abu\'¡VSAØ)Û#*AŽI÷£VSAHgåZ*Aº’ ¥VSA0Z­*Aì%>¹¦VSA Û r*Aìr¨VSA¨w=4ùŽ*Arä§©VSA¨™: òŽ*Aº’H«VSAX{$ÁìŽ*A†{Ý´¬VSAPñ¾äŽ*A‚%Ï¿®VSAÐ0:|ØŽ*A씿ѰVSAðF¤©ÕŽ*AXZ¾¬²VSA(&ôvàŽ*AÊäLý±VSAP,uìëŽ*Aè‹5n°VSA¬½‹öŽ*A”9J®VSA˜Ž…äþŽ*Aèú¶j¬VSAˆà=c*AÞ#†ªVSA8— *Aü[z©VSAvŽ*Aây!Ó§VSA2‡€*AŽ'ú¦VSApåqÔT*A\°ÌªVSA ä“Q=*A˜ã±VSAh¨Ö¾+*AØÛ¨¶VSA8Â'ù,*AÖ™óª¸VSAM%5*AÞg лVSAàfvùB*AÐ^£¼VSA0Ž#;*AÈJDŽÁVSA`Y'*,*AÊ—ÈÆVSA`·{*AÁ6ÆVSA¨©#ã*Aæ‚«ÆÇVSAìa‹ *AbS_\ÌVSAXiâñŽ*A½=ÚÌVSAð 4[äŽ*AšÜ øÎVSA`@´rÐŽ*AÜ<†¥ÏVSAˆF5HÂŽ*AL'ÑVSA˜zÀºŽ*Aü[zÓVSAPßð~´Ž*A¼·šÕVSA¸¤ï‘ÀŽ*A‚¶M÷ÕVSAðà¬ÄÅŽ*Aš)%¦ÔVSA"žˆÖŽ*ANò›èÑVSA`@´ÒéŽ*A¸ò .ÒVSA(Àüq+*Aà×VSAÈ„b!*A¾s %ÙVSAXáf*Arä—ÛVSAˆÇÊ‹íŽ*AÊuË$âVSAÐ=àŽ*A䤨åVSAØÃã~ÛŽ*A4T=ÿæVSAvNÑŽ*A Ö°õèVSA¸ß_àÕŽ*Aâ½!ëVSA08áŽ*AÞ´‘ìVSA éX׎*AnŽUïVSA°ÍKaÓŽ*ABnñVSA˜…û¤ÆŽ*AÞ#’ðVSA(Q{í¶Ž*A"@þÜòVSA¸`õƒ§Ž*A\ôÆ×ñVSA°øÒšŽ*Aê¶¼hôVSA¨™:+‹Ž*AðYO'óVSAÐ=…~Ž*A씿½ðVSAøƒ?ÿsŽ*AüìøÑîVSA˜cþ {Ž*AT·+"íVSA à—~Ž*At~ëVSA˜A7uŽ*AnæéVSAØÓÌ–oŽ*Aìr¦ëVSA˜/íwkŽ*AÀ|*íVSA2‡€aŽ*A~`?òíVSAÈê‡MŽ*A Ì·˜îVSAÀ¿AŽ*A@Vh2ïVSApù :Ž*A¼jjðVSAˆœCÕ/Ž*AôÑZ3òVSARYP5Ž*A´zÿÍóVSA±ñ\Ž*AX :—÷VSA°€ÇsŽ*A®¬åœõVSA°<Í…ÿ*A@Vh¢÷VSA`¸¿6Í*Aš)%BôVSAŸÝ=Ö*AdígßòVSA€ð&›Ý*A”ÊŒñVSApKiÙæ*AúØçïVSA8~-Kï*A ]60îVSA 6Ý.ç*Aà'íVSAÈÈØ*A`JÕôîVSA}àæÍ*A*}™ÒðVSAPñ^Ä*A¨šÑòVSA8©´Á»*A&Ž:ôVSAhÎc°*A¼·šÿõVSAx;€¡¦*Aö¸ç÷VSAˆO¿GŸ*Ap3¤øVSAÐT ˜*ALÇæùVSAø&Ò9*AJœ³ûVSAà]ì™*AÂZ-rýVSAøHúw*A,¢ñþVSAàh,n*A¢÷>gWSA0Ɇ‘_*A:fQÆWSA¨°‹V*AèļWSAØÓÌVK*AޏxÂWSAxÕˆ\?*ADÎsÆWSA +‘4*Aœv©WSA8¬¦%*Ar«˜hWSAà"|‹*AšmhWSA¸‚òÚ*A¤³DWSAH#ël*Aº’X WSAPpoýŒ*A” WSA0ɆðŒ*A~­Ã WSAÐ}¾©áŒ*A|¤9,WSAØÜVÖÓŒ*Af©mEWSA¸Æì(ÈŒ*Aøãn.WSA@‡·Š½Œ*AƽçWSA0Ž㯌*A¾íWSAP>‰ë£Œ*AŠóèWSAµÐ˜Œ*A#5/WSA˜ ðàŠŒ*A°×l?WSAµP‹Œ*A&'‹ÕWSARYÐ'*A"FWSAØÓ€Ì68*A<Þ\jWSA V8O*Az 1} WSA(÷Ÿ¾*ADø#÷VSAÀ.Õü*Atgž¶üVSA S×*A¤"ƽWSAØÓÌV£*A¸Ð ÷ WSAxÕˆ<€*AbäÝSWSA@M.*A¨šÑå"WSA@C½ÜŒ*AØUùHWSAH#ëÌ*An~#WSA¨ÿ1úŒ*A씿}%WSA ¥^óìŒ*Aº’„'WSA°æ¾¸àŒ*A6CE)WSA¨C,ÞÖŒ*A®Šè™*WSA˜ÉõÒÊŒ*AeZ,WSA³DÂŒ*ADøŸ-WSAÀ­yñ¹Œ*A*}™î.WSApcg±Œ*Aº®P0WSA`-œªŒ*AàNš|1WSAh¨Ö¢Œ*A´ ~½2WSAП»—Œ*A¤ÉZ4WSAèøŠŒ*A.Ó§6WSAèxŠ€Œ*A\AKÑ7WSA¨n³rŒ*AúRð:WSAm÷NfŒ*AnÄ ì;WSA_9Þ\Œ*A¸ƒ‰e=WSApÓ]UQŒ*AÒ²f"?WSAP½ógCŒ*A†ê^9AWSAØÓÌv5Œ*Az›¯PCWSAh0Ëú(Œ*AH“0EWSA8¹9Œ*A‚GÌ GWSA à—Œ*Aü}w}HWSA¨²­B Œ*A† \JWSAЖ1û‹*A,9ŸLWSA¨ÔªÙð‹*Aü[z’MWSA¸5nMæ‹*A(R$OWSAX{$ÁÛ‹*AÂ뫵PWSA@»ÈàÒ‹*A>¼_RWSAX}Ç‹*A€¢¸SWSA˜z ¾‹*Aâ› UWSAÀ>øìµ‹*Ad ãUVWSA Ç[ªª‹*APО XWSAÁÚt›‹*A «ãYWSA裋*A(R¬[WSA@LGü~‹*AêØ¹k]WSA¨gýq‹*A¸Ð _WSAo"Öc‹*AìrÂ’`WSAˆœCµY‹*AÔnl˜aWSA0§‰:M‹*A䯥èbWSA¸NádA‹*A^ŽÏJdWSARY8‹*AP®¡^eWSA@‡·J/‹*AZÉ?mfWSAØåàU$‹*A†{ݤgWSA àΡ‹*Az 1™hWSAˆ“¹u ‹*Ar^'jWSA°ïHþŠ*AbS_ÜkWSAØÃã¾ôŠ*AN¼élWSA€çœ»êŠ*AD_òñmWSAˆh2ÞŠ*A#5KoWSAøaBˆÓŠ*A”9–pWSAx;€aÆŠ*A°×lóqWSA}àf¸Š*Aޏx~sWSA ¥^ó¬Š*AlLÄtWSAX‹ ¢Š*AfïvWSAÈb «—Š*Aš)%BwWSA¸èé_ŒŠ*A’0„†xWSA0l,ƒŠ*A íŠyWSA¨¼tŠ*A¤‘G"{WSA@ÿÂÎhŠ*A^ŽÏf|WSAàéP^Š*A¨+P‘}WSAo"MŠ*Aè>±`WSA°3C&?Š*At~WSAx÷…ó5Š*A8ªK„‚WSA÷ò-Š*Aêï„WSA¨n³´&Š*A¨+Pu†WSAÀ>øŒ!Š*AÎíÖ‰WSA@æOw Š*A\cHè‹WSAT„—!Š*A «³WSAøÕ"#Š*Aª4Ú4WSA(Hñm&Š*A^ýPó‘WSAàÌm~Š*A‚%ÏŸ’WSA€ù°: Š*A$ÚP“WSAÐ9Ä{ø‰*A´œü$“WSApÜçtô‰*A(RŒ”WSAàˆsÐù‰*A2K³›–WSApTó8þ‰*AzWµ ™WSA@Ô;˜õ‰*A¢ˆ½›WSA¸Æì(ê‰*Av’% WSA˜8w×Ù‰*AJ¾ŠŸWSAx" jΉ*A´zÿ] WSAHøc¶Â‰*A¼HË¡WSA(òâ µ‰*Aìr £WSA —Ħ‰*A>šb¢WSAøHš§‰*A­Tz¤WSAp2öA›‰*Ar<à¥WSA¸½bé‰*AúŸt(§WSAX¿o…‰*A%`^¨WSA€=«(x‰*A@Vhâ©WSA XÚ…j‰*A§±o«WSA˜žnüY‰*A8¸¬WSAغYßH‰*AäW$t¬WSAHÍÜŸ=‰*Aè´¬WSAŸÝ}?‰*A ‰,®WSAð$§2:‰*A¢ÕAÔ¯WSAØmÕq.‰*AúÁq»°WSA°3C¦!‰*A¼Hÿ±WSA FÆÆ‰*Aökc:³WSAˆ6LP‰*Ad~æÖ´WSAPpoÿˆ*Aäè¢ÛµWSA; ôˆ*AÊ—È·WSAþuªåˆ*AäW$¸¸WSA(®èRÚˆ*Ad ãé¹WSA(÷ψ*AðêÍ»WSAH`¯¯ˆ*A’Ÿw¾WSAÈœý¢ˆ*AzWµÂ¿WSA lˆ­˜ˆ*Aü}wÁWSAˆ•mˆ*AR#7ÂWSAX%ô„ˆ*AŒp‹ÃWSAÀiCyˆ*AXž¸ÒÄWSAXnˆ*Aþ†ñÅWSAØKØZbˆ*A|»@ÇWSA@™ËÉQˆ*Aêi8ßÈWSAxM”€Bˆ*AšÜ œÊWSAð$§r6ˆ*A–d•ÄËWSAøaB(+ˆ*Av§ ÍWSAà"|‹ˆ*A»—ÎWSABpXˆ*A6ÄUÐWSAPßðþˆ*A,†‚#¦ÑWSAà]ìYõ‡*Aæ™éÒWSA¨*¹é‡*A4v:6ÔWSAøaB܇*AZ8ÁéÕWSAè tÒ‡*Aþõ‚ØWSA°ÄÁ¡È‡*A>šbìØWSA¸Wk¤¼‡*AÒ²f.ÙWSApTó˜°‡*A8ˆNmÚWSA8 *¢¬‡*A²àöîÛWSAå3’‡*A˜#ßWSA€¼e„‡*A²qu®ßWSAÐR7|‡*AŠbjÅàWSA˜ y‡*AWFmâWSA¨ÿ1n‡*A.Ó§—ãWSAÀG‚lc‡*Aây!wäWSAP`†BZ‡*A†ê^™åWSA˜/íL‡*Aj²÷LçWSAp¡wæ@‡*Aj²÷œèWSA€šŽ8‡*AÒCå•éWSAˆ“¹50‡*AÌ1ÑŽêWSA8í®¯&‡*A˜ ›šëWSAɇ*AÜø‹íWSA9æø ‡*A@ÅéºîWSAðh¡À‡*Ax,.àïWSAx¬5ø†*Axß©BñWSA¸ÆìÈî†*A<‘ØdòWSAø·Pã†*ARû%ÐóWSAðO.IÖ†*A˜þ_õWSA8¹Ydž*Aây!óöWSAàò‹‘†*Aˆ7ã¾ýWSA éXÁ„†*A˜sÿWSA¨g]E†*A”á~XSA ¹ {þ…*AJà‡•XSA Â–:¯…*AÌ R+XSABpØŸ…*A6¡ÁXSAÜxÓq…*A ´³ "XSA(÷Ÿc…*A|5¸K#XSA8(¾'…*AŠbj±*XSAèç ý…*A¼&|,XSAõëjè„*AHq52XSA¨!/GÛ„*A$IˆÀ3XSAèÅF¹„*A`—YF9XSAø®ÆU¡„*A¦ÞËK=XSA&cØ„*A|‚<}9XSAhdÜy„*A&– F8XSA (Ž¿n„*A!(7XSA¥Í`„*Aâ  6XSA°¢ÄÊR„*A8 5XSAØÒÈA„*A¶¥†è4XSA_Â1„*A:÷Ï5XSAÕ›&„*A|‚XSA Â–º „*A²OxˆjXSA€Î)ƒ*A ]60lXSA(®èRø‚*A4å»òmXSA°ÄÁî‚*A–ÓQoXSA¨C,¾å‚*A3gpXSAØÒˆØ‚*A^¥ÁqXSA OP¦É‚*A´ ~UsXSAð·ù»‚*A¢÷>‡tXSA¨¼ï«‚*Aî ËíuXSAòQb›‚*Aî¿F wXSAøHÏÐ’‚*Ajÿ{þxXSA¸Nኂ*A|Æ6zXSAÌ‚*Aý {XSAP>‰ku‚*Aò¦Óè{XSAxˆl‚*Anæß|XSAÙX^‚*Aþ9}C~XSAvŽN‚*A „øÚXSA¸`õCA‚*AÀÀ$'XSA`ó/7‚*Axp("‚XSAð$§r*‚*A›@sƒXSAÐt4 ‚*AbS_,…XSAÈü( ‚*A”¨z†XSA¸#Z®‚*A~`?¦‡XSA ¥^3õ*A$k…»ˆXSAX¿Oè*Aú0óë‰XSA`ȨÎÙ*Ax½¬‹XSA0Ò‘Ë*AJœŒXSAÐ=…º*ABðp}XSAp â‚©*AT°×ŽXSAÀ‹„|Ú’*A42@äXSAÐ'°ƒ*A¬=d¬XSAˆÇÊËt*AHµw‘XSAèņb*A „øZ’XSA£3ìR*A‹ø’XSAÐ[ÁrB*AH“¸“XSAh}OH2*A”á”XSAH‰â1&*A²àöš”XSApùj*A.B)ü”XSAðà¬d *A‚Í[•XSAøHÏü€*Ad1bÁ•XSA@nDÓê€*AÌ1ÑB–XSAÐ=ÅÙ€*AVÀµ—XSAÀ¶QÌ€*A°Fî›—XSA6õº€*A!4˜XSA¸`õC©€*AŒpG™XSAØÓÌ—€*A¶ešXSA0•^‡€*Aþ€x›XSA`·Ûz€*A:÷ÏaœXSAÐ=En€*AýOXSA¨‡&,d€*Aä5'žXSAH’lÑX€*Aò¦ÓðžXSAHa K€*A ]6ôŸXSA9æ¸;€*A¤"Æ¡XSAh†Ù§.€*A~>Bû¡XSA`b±I#€*AØ3üÑ¢XSAІHÉ€*AØÿº£XSA Ç[J €*AÊ(G›¤XSAèç ]þ*A²ˆs¥XSA˜ ð`ñ*AbÂàP¦XSAˆ“¹uâ*A ¦õQ§XSA¨‡&LÕ*A‚Ò@¨XSAp±`þÈ*Ar«˜,©XSAûÛA¾*AnŽý©XSAƒÐ½¯*A‚GÌ «XSA¨¥¤*Ar^ß«XSA@Aʘ*AÞÖŽ¨¬XSA8Â'9*AÐ^w­XSAtVÇ‚*A°“r5®XSA€šv*A<Þ\¯XSA¨‡&ìe*AF×ý5°XSAκY*AÐ©Ü ±XSAâh*L*AêG;²XSAHaM?*Aư;³XSA°^Ê4*A’‡£³XSA¨»7â#*A:ÕÒ2´XSA lˆ­*AFh|õ´XSAè“ *A:fQîµXSA˜AW*A2˜7é¶XSAxM”`ò~*A0 ,¸XSAØ2eƒà~*Ajúµ¸XSA8"gÑ~*A>¼_ë¹XSAhdÜp¾~*AÌSÎåºXSA¸]w²~*A^lÒo»XSA —¤¢~*A´-{8¼XSAøûJƒ‘~*A42@4½XSAÐR7ó„~*A<‘Ø,¾XSAÈÚ+/w~*A›@3¿XSAhRÈñi~*AdeÞ¿XSAÀr £^~*Aî¿FxÀXSA˜Ò’O~*A ;9iÁXSAðh¡à:~*AÔLo¡ÂXSAòQ¢)~*A˜ ›†ÃXSAP xu~*A²quFÄX…SAø®Æ~*A ªº=ÅXSAÞ£šý}*AÔLo-ÆXSAˆ6Lðë}*A¤ÊÂÆXSA˜§ø›Þ}*AÒ²fÇXSA`„®Õ}*AÒ!èÞÇXSApTóØÈ}*Ap3ÀÈXSA˜8w7¸}*AØUù ÉXSA`Ñ2î©}*A¤ÊnÊXSAHÖfß›}*A€úG=ËXSAø¾Ú‹}*A„áÔÌXSAP5ÿ ~}*Af©mÝÌXSAШEÀo}*A°µo ÍXSAø•S~c}*A¦MM4ÎXSA(ÀüqU}*AP®¡òÎXSA`8 C}*AÁöÏXSA¨w=T5}*A4þïÐXSA J‹V'}*AªV×£ÑXSA†j}*Aî ËaÒXSAhÃ]}*A.±ªLÓXSA˜§ø›õ|*AšK"ÔXSAè¸ç|*AÂë«QÕXSA z×ÜÙ|*A^ýP#ÖXSAÐ}¾IÎ|*AìrÂöÖXSA€š.¾|*AÞÖŽ¸×XSA×DB¯|*AØ3üØXSA·áó¢|*Apï’NÙXSA€¬, “|*AÈJDRÚXSA 6Ý®‹|*A$‚ÞÛXSA¨©#‘|*A4å»ZÝXSA ~œlz|*A2º4ôÞXSAhÎck|*Ac3ÞXSA€$rY|*A¨çU—ÞXSAõë*I|*A”9ŠßXSAPu;|*A¬ðߺàXSAX £¼,|*A2˜7‰áXSA¥Ít|*Aò¦ÓpâXSA s|*AUfãXSAH×m |*AtÖoäXSA@²>!ÿ{*A"Ñ|ŒåXSA¬½‹ô{*ARj§ÌæXSAàˆs0è{*Ajú1èXSA¡QÖ{*A„áÔéXSAsçåÆ{*Až²êXSA˜Qꮲ{*ARû%ÔëXSAp2öáŒ{*AèÄäîXSA OPæc{*A@çæÉñXSA`'A›O{*AàNšÄôXSA8~-K'{*AšÜ ÷XSA°«Nê{*AˆYàÅ÷XSA àΡ{*AøtíYùXSAPWüB{*Aöüá5ûXSAôÅ {*AúRðüXSA¨C,>{*Aº®(úXSAІH)ðz*AØ¢}îùXSAØÒHÝz*Arä¯úXSAÈÑ¡oÌz*AXž¸ûXSA˜§øû¿z*A „øbüXSAÈü(†¯z*A:fQŽýXSApTóX›z*AhCvÜþXSAÉŠz*A†ê^±ÿXSA¸Æìh{z*A¦MMäÿXSAX!¸kz*AYqYSA Ìø_z*A¢ˆ½ZYSA€ð&Zz*A¨+†PÙÿXSAP>‰«Hz*AD¬v›ÿXSA°ïH˜8z*AìrÂêÿXSA8S¦”+z*AÞg xYSAo"öz*AŽÚuYSAÀˆ¾z*AØ3ü±YSA Ç[*þy*ALYSAˆ Åyïy*AòU©ÿXSA8¹™Üy*AáeÀÿXSAðœ²öÐy*A¦¼Î¸YSAðF¤iÉy*ABn¼YSA $É/ªy*AÖwö»YSA&c˜Ÿy*A°µohYSAPñÞ£y*A‚Ò(þXSA¸èé?•y*A.ê¥ýXSA÷2‡y*A8ªKpüXSA°gTü‡y*A>¼_/þXSAκ¢Žy*A¾• YSA8¬æ„y*AàNšŒYSAø•SÞ|y*A(Ÿ–ÁYSAÙÞªqy*Atø.YSAx÷…3ey*A~ÏÀ®YSAø6»Ñ]y*AÜ« YSAxM” Yy*A^ŽÏ>þXSAàªp]y*ACüXSA°€ÇSNy*A€úGáüXSA@LG|Ay*A4v:†ýXSAhìÐ 2y*ARû%¼ýXSAtV§%y*A>šb¸þXSA€Š/vy*AàNš þXSAx‘Ž y*AJ- /ýXSA8 *ây*Aî¿FHýXSA裯óx*A€¢`ýXSA8(þåx*Al™„ÍýXSAhDäÞx*Aò„ÖýÿXSA ¾ÑŠÑx*Aä5'eYSA˜ëòéÃx*AbS_¨YSA¨ö§p´x*Aê¶¼0YSA81©}¨x*A0 ,5YSA˜žnܧx*A5IÚYSAxÌþ¼—x*A’}üYSA8\04‹x*Anw‡* YSA8˱X~x*AæÏ/T YSA8¹ùmx*A ;9 YSA˜8w÷`x*AŽ'úF YSAȦ¹Rx*A„rSA YSAxD ¡Ix*AŠbjÍ YSA¸‚òz:x*A½=ÆYSA¸,ä &x*A í¦YSA`¯5×x*AVÀµYSA=<' x*AFŠyYSA(Hñ x*A¤ÉYSA(òâ€õw*AÈòYSAõëJéw*Aæ‚«YSAPñÞÖw*A%`ZYSAˆœCÉw*A^¥qYSA`@´¹w*A°$ñxYSAp¡wf¦w*A¢÷>+YSAhtÅ“w*Aƽ{YSAôEw*A wªYSA8Â'Yrw*AnUŠÿYSA0/~öew*A†.YOYSAІH)Yw*A¤"ÆYSAxªfGw*Av§YSA°EWE6w‡*AdígOYSAІH 'w*Ax½¬YSA8 *Bw*Ad ãíYSA0ý—Çw*Aò„Ö­YSAÞ£úýv*Aè‹5ÎYSA@²>÷v*A”/YSA€£¢mêv*A@VhšYSA`ü¹Dàv*A›@oYSAåÓv*Ap¹ì YSAPñÇv*Aï#9 YSA€ šR·v*AÐeâP YSAøHú«v*AÁº YSAD›ß¢v*A`¹VÙ YSA¸Wk„—v*A.êY YSA¸5nmˆv*Al» YSAÊdƒv*A*ì YSA \ŸU3v*AìáC; YSA lˆÍ'v*A~ñ½ YSAÀ%…•v*Aøtí]YSA€VÀv*AˆYà‘YSA@Ô;Ø÷u*Ap€6YSA¨¥çèu*A4þ'YSAhãFÍÙu*A䤨YSA(ad¥Îu*A E2¾YSAÈóžÆ¬u*AÔ…YSA0cÌ©u*AüìøùYSA˜/íu*AF×ýùYSAT„·•u*Aƽ7YSAð-12u*A> äÌYSAÐÁ¸—u*AŠbjYSA àÎxu*AzWµòYSA˜~åru*A^ÛSlYSA€ù°Zeu*Aè´õYSA¨²­"Yu*A®¬å,YSA8(>Nu*A wêYSA8"GCu*A¸ƒ‰‘YSA9æx7u*A*[œSYSA(jî$+u*A"@þYSA; u*AÎ\XqYSAxÞ\u*A¶EYSA8˱u*Aœv©ßYSA8~-ëðt*AJO žYSAи.˜æt*Al™„)YSA V8Üt*Aˆæ7YSAòQÂÌt*Aäè¢wYSA@eº½t*AôÑZçYSA œÔó¯t*A8üYSAŠ© t*AP®¡YSA0…Œã’t*AiZPYSA OPƈt*A‹¨YSAøÙM¬t*A€ØJ‚YSA@‡·Šyt*A®Šè!YSAàòËtt*Aò„ÖI#YSA¨:¢~pt*Ajný.%YSA0•lt*A@çæ 'YSA¨e)•ht*AÒ²f²(YSA(j·dt*Aˆ7ãÞ*YSA¨w=Ô`t*AªÝA-YSAèÞ}]t*Ajÿ{"/YSA ƒa\Yt*AÒ²f61YSAXúŽXt*A"@þx3YSAÀúý~ft*Aây!+3YSAXŒ4t*AT°ë&YSAhÃÝ”t*A¬=d (YSAØKˆØZ t*Aè­2ù*YSA¡¥®t*AòóWŽ.YSA ýɨt*Ap%2YSA8¹Y§t*AV/764YSA(j·¦t*AÏQ±5YSAX”—X¦t*AêïK7YSA Ë ú¥t*A\ôÆc9YSAÈkªj§t*A|¤9Ü:YSAÀ¶¨t*AèÄŒYSAÈê'Ÿt*A óy¿@YSA¸NáÄ‘t*AìáC³BYSAØBNûƒt*A6]ÇbDYSAÁÚôtt*Aèú¶¢EYSAÀúý^et*A8ÍxFYSA°<Í%St*A@VhFYSA°<ÍÅ>t*AÔ»ð™GYSAX £\Qt*Ar«˜˜GYSAo"6]t*A:÷ÏÍGYSA+(hRt*A|Æ6“IYSAx;€áDt*A²qurKYSA0…Œƒ5t*A,9Ÿ|LYSAð×"…+t*AFh|}MYSAXáf#t*AhÔô?OYSAXt*ABðpQYSAà‘ý¯t*A”áÊRYSAðX¸èt*AøláSYSAàÌm>ös*AyCSYSAÈ7™”és*A¶ÞqTYSA˜Ž…äãs*AtgžfVYSAÞ£ÚÛs*Aø–ê`XYSA íÑÒs*ARŒ¤‹ZYSA˜ëò‰Ïs*AbS_\YSAo"Îs*A^lÒ÷]YSAи.8×s*Až¡0Þ_YSA0A’5âs*Aâ½aYSAð$§RÛs*A¢ˆ½êbYSAH^[{Îs*A€ØJZdYSAaÓ¦Çs*A*” fYSA€+—iÃs*AŽ–{ÓgYSAXúŽ¿s*Au*AG]Õ»YSApKiY*u*A@ÅéJÁYSA_‚u*Axp(’ÅYSAùAùu*AØÄz-ÇYSA8J•ýt*A¦oJãÈYSA€ÅŸ¤ùt*A—´ÊYSAhõZ út*Aú0ó—ÍYSAxM”@út*A2º4¨ÏYSAX­ ðæt*AL‘"ÒYSA±ñ\št*AݦÜYSA˜ ð`‰t*A¼H³ßYSAOù©t*A¤É†ãYSAð×"e‚t*A,†#éYSA0/~Yt*Az 1¥ðYSA˜/í×Mt*AÜ<†½ôYSA ¥^ó[SAÙXfi*Aô`"[SA¨C,ÞQi*A¦MMl%[SA ƒa[SAµch*Aº®@[SAº{bh*Aäè¢+B[SApþäËXh*A g/ÕC[SAè Nh*A"@þÔE[SA@ÿ®Eh*AîPÅŸG[SAø¾š;h*Av’%]I[SAØõÉ 2h*AN6–îJ[SA(•uÛ(h*AàNš|L[SAèxŠ˜h*A.B)`K[SAP xõ!h*AwN[SA°¢ÄŠh*AZ…E¿O[SA¸,ä­h*AÌ RçP[SAÐR73h*AÊ(GÃR[SAº{ÿg*AàNšŒT[SAð“(÷÷g*Aœv©V[SAÈü(&ðg*A˜ ›¢W[SAh–Âæg*AN6–ÞY[SAhdÜág*A’0„Ž[[SA@MîØg*Aôß ^[SAxo‘×Ðg*AàNš„`[SAÜxóÉg*AêØ¹¯b[SAð×"eÅg*AœT¬ d[SAP½óçÀg*AÄc·¥e[SA Vø¼g*A°“r‘g[SA@Mî¹g*A&Ži[SA€=«(µg*AÒÔcek[SAh–Âß°g*AÂë«am[SAXØ‘¦­g*AÔnlèn[SA¨*¹f©g*Aš)%Îp[SA(ûl ¤g*Av§ir[SARYP›g*AÞ#Nt[SApmf°g*AÌ Rsv[SA=iƒ[SA+(ˆ&g*Av#¤ø„[SApmfPg*AÄ3ä…[SA¨Ôª¹ g*A”¨ê…[SAÐR7óûf*A>+ᣄ[SAi¦ÐŸ»á‘*AU)USAÈ7™4ç‘*AîPÅÇ*USAOY÷‘*A8ÌH+USAàˆsP²’*A™œUSApTó˜“*Az›¯|USAȧa+“*A(Ÿ–‘USA umÄ’*AT•.× USA˜cþ­P•*AÏQÉ`TSAÐT V•*Ap€n_TSA4²Ç]•*AŒürx]TSA˜Zt.e•*Av’%•[TSAx‘ŽNj•*AÁFZTSA(Ðåio•*A0þ.öXTSAÙxt•*A˜B˜¥WTSA9æXy•*A¬^ZVTSAШE€•*Adíg«TTSA(Ùoi„•*AH…HSTSAX. ³Š•*A Ì·pQTSA@ö8¯’•*AÔnlüNTSAX{$˜•*AŠÑë MTSAhdÜ0œ•*A¤ÊªKTSA8 *Ÿ•*Aư;OJTSA˜/í÷£•*A î´wHTSA “J´¦•*A¨xÔÖFTSA Ë Ú¨•*A^ŽÏ^ETSAhë•*A<ZMCTSA×D®•*Aô`5ATSAXؑƯ•*Aäè¢K?TSAòQâ°•*AN™¿øì’•*A*}™¢6TSA¼¦ƒ‹•*A8ÍÜ7TSA¨¼/Š•*A¾E9TSAÐR7ÓŠ•*Ašm;TSA —䉕*A`Ð|TSARY0‰•*AúØû@ŽTSA¸Æìˆ‡•*Aj²÷ÌBTSAp2ö¡‚•*A—ETSA àÎ!}•*Aì%>iGTSAP>‰ z•*Aæ`®çHTSAàh¬u•*A¢fÀßJTSA¸pÞo•*A2˜75MTSA Ë :h•*A0­uOTSA u-a•*A⛢QTSA°ÄÁA[•*AÒ²f>STSAsç¥T•*A²¾ùÃTTSA¨™:ËM•*AhCv VTSAø·PõD•*AÊ—ÈÓWTSA8S¦=•*A®ŠèYTSAèð•4•*A¦¼Î([TSA0A’Õ)•*AŽÚu±\TSA0/~v-•*A^ÛS\^TSA “Jt&•*A¸ƒ‰E`TSAˆXI'•*AN¥cbTSAÐì?•*A´ ~idTSA}ক*A ªºIfTSAH¢U •*A¼j*hTSA¸5ní•*A.êÅiTSApùJø”*A|Æ6ókTSAX. óð”*A¤‘GòmTSAhdÜPé”*A8;ÊãoTSAâh*â”*A0þ.ºqTSAðO.ÉÜ”*A,¨ msTSAhõZ¬Ö”*AH…ÌtTSA¨gÝД*Ap€ºvTSA@‡· Ê”*A¶axTSAÐì?”*AØ¢}†zTSAÈ@#»”*A²quV|TSAøÕ´”*AZ…E³}TSAˆ-­”*A@xeeTSA¸›e²¨”*AŠ@mnTSAÈ >£”*AÚ^ƒƒTSA8©´Áœ”*A¾•x„TSAÀáŠg’”*A@Vh ‡TSAˆœCu‰”*A:÷ÏU‰TSAÈ&Ý}”*A¢ˆ½î‹TSA[ã/v”*A¶Çƒ+ŽTSA€¼Ep”*AJ¾Š:TSA¸‚òZi”*AnÄ |’TSA°´ØÉa”*AÐeâ”TSAøòÀCZ”*A¢<ö•TSAÈÑ¡R”*ARŒ¤?˜TSA°FÏI”*Aß:]šTSAP>‰kC”*AÜ<†!œTSA —„;”*A¬ðß^žTSAˆzFž4”*ARÙ( TSA€4!©-”*A씿‰¡TSAùAY'”*AÊ—Èû¢TSA¼¦"”*A¼jJ¤TSA8í®Ï”*AD_òµ¥TSAÀØH”*ADøw§TSA†j”*AúÁq[©TSA¨¼”*AG]•«TSA(âù¨”*A€¢ø¬TSAPWüÂü“*A†ÚO®TSAÀ%…õò“*Aÿ å°TSAÈœýé“*A3/³TSA€ð&{à“*AP®¡ZµTSA`Ú¼­Ø“*Aÿ U·TSA¨²­‚Г*AòbÙ†¹TSA蚇oÈ“*Aþõ‚¹»TSAP xµÁ“*Aø–êl½TSABpøº“*At!¿TSA¨Ôª¶“*AÜ«¦ÀTSA˜௓*A|Æ6oÂTSA0§‰zª“*Abu\ÏÃTSA Â–:¥“*Af©mqÅTSAàDybŸ“*AØUù<ÇTSA¨ÿ1™“*APa©ÈTSAÐÊB·““*Av#¤ÊTSA ¥^‹“*A5IÌTSAðX¸èƒ“*A¨xÔÎTSAÈ |“*AB£ìïÏTSA`ê¥er“*A8ˆN9ÒTSA°‰Q³m“*AÖ™óºÓTSApÜç”g“*AôÑZ»ÕTSAp¡wf^“*AJ- ØTSAˆ-ÂPW“*A”ÊŒqÙTSAàO“*AØ¢}NÛTSA€ÅŸ$F“*ARÙ(ÉÝTSA¸’Û2?“*AWF¹ßTSAŸÝÝ9“*AeZáTSApåq´3“*AbS_ ãTSA@Ô;Ø+“*Al™„åTSA¨¥'&“*A<Þ\~æTSA¸5n “*ARÙ(MèTSA˜cþ “*Aî Ë…êTSA9æØ“*A½=RìTSA˜~å“*A,¨ îTSA`ü¹Dÿ’*AyC ðTSA¸yh›ö’*Aây!{òTSA(òâàî’*AYq˜ôTSA@ö8ïå’*AúÁqÏöTSA€ù°Zà’*A0m°ÆøTSAð$§²Û’*A܉ SúTSAˆµ¶ Ö’*AFùúŒûTSAÈ„‚Í’*Aþ¨þÇýTSAPyùùÆ’*AØÿŽÿTSAèVa¿’*A íJUSA¸’Û²¸’*AúRðUSAàDy"³’*Anæ³USA0 Ÿ¬’*AúØUSA SÖ¦’*A¶UUSAðO.ÉŸ’*AbS_ USAÅ0ƒ˜’*AnŽU USAˆµ¶l’*AJ¾Šú USA€ÅŸ„’*AFŠyüUSA€x—s’*AÞg USA°´ØIf’*A’}ìUSAÈb K]’*AYq\USAˆF5èR’*A6îEÂUSAîŒrH’*AYqxUSA¨!/G:’*AÞÖŽUSA(ÐåÉ.’*AUZUSApþäk%’*A<ZÕUSA€š.’*AZÄþUSA˜Qê.’*A¾Q£Î USA uí’*A «)S"USAP½óþ‘*A3·#USARYò‘*A<Þ\v%USAhãF-è‘*A"@þ'USAП»á‘*AU)USAi pºê=†‡*AÜø‹øPSAÐÇäò‡*AäW$¤»PSA¨ÔªÙE‰*A’‡ŸþOSA@M®6‰*AtøBþOSA(&ô6á‡*A´é€‚»PSA¬½ v‡*Anw‡ž÷PSA9æ8]‡*AàNšXQSA°ÄÁÁu†*Aôß,…QSAÐÊBW†*ANò›è…QSA`¸¿“†*AJ¾ŠÒ€QSAؘ\Èm‡*AJà‡ÍQSApºê=†‡*AÜø‹øPSAi°<Í%€‡*Aþõ‚åÉRSAP x5‡*AR]ÊRSAH×­qˆ*AòóW.QRSA@AJbˆ*A°×lÃPRSA°<Í%€‡*Aþõ‚åÉRSAiÐÁ¸·ú†*A”[ Í'RSA8\04 ‡*A`Ð4(RSA ‘hæ‡*Aˆ7ã®QSAØ Qdׇ*A‚GÌŠ­QSAÐÁ¸·ú†*A”[ Í'RSAiH€XòÞž*Aáe,®OSA(Àüñçž*AöÚäfªOSAO9ùž*AÚ^ƒœ§OSA°^ʜٞ*AÊ—È3¥OSAÈ„¾ž*A˜þ¿£OSA@!ÀŰž*Ašº£ý¦OSA8 *‚¥ž*Aþ€ˆªOSAH€XòÞž*Aáe,®OSAiH´i(r*A\ôÆO’SSA(Q{íÏ*Aêi8gžSSAØTbZz*AkJ‘SSA‘ R*AVÀµY‚SSApÜç”*A† \SSAàÌmß’*A¦oJÛ8SSAi¸pÞ›@t*A E2F’YSA um2t*A€¢¸YSA`I>26t*AŒñ““YSA`¯5w8t*AŠóèÌ•YSAP>‰ë7t*A¶Çƒc˜YSA°«NŠ6t*A°‘×lךYSAXáf5t*A$ücYSA€¼e4t*AFŠy YSAˆ×³ƒ4t*AØUù8¢YSA XÚeAt*ANƒ8¢YSAø¥<6At*A2K³7 YSA Ç[jAt*AÐeâžYSA@M.Bt*AÎíÖ$œYSAàh Ct*AÂ80—šYSAŠ©Ct*AêØ¹·˜YSAŠÀtDt*AÊäLÝ–YSAÀ%…Et*A¢<º”YSA¸pÞ›@t*A E2F’YSAi?0è¦*Al» ¥OSA àΧ*A€‹Æ¨OSA¨»7¢%§*A²àöÒªOSAˆXIl§*AÈlA¹­OSAè£N§*A‚GÌn«OSA`Ȩ+§*AN6–Ú¨OSA?0è¦*Al» ¥OSAièxŠ8xp*ALcVZSAЖ1A|p*A óyÏTZSAà;ï†p*A€E,SZSA`k;‰”p*A¾s IRZSA +Q¨p*A@xe¥RZSAøÕ‚¸p*A4T=+SZSAPñ~°p*A8ˆNQZSA0žÿ¥p*A6]ǺPZSAÀP ìp*A¸Ð ×PZSA8(>p*AiZÐQZSAˆéÇ"pp*A6¡Á8TZSA˜8w—ip*A¢÷>+VZSAxop*Aº®hWZSAèxŠ8xp*ALcVZSAi o"V0e*AT&­&¼[SA`I>’t*AÔ»ð™GYSAÐ'°\/t*A´œüIYSA0ɆÑ(t*A4v:²JYSAÐ'°4t*A­TbJYSA˜~å;t*AdígIYSAiÀኧìf*AÈJD΃[SAÐR7óûf*A>+ᣄ[SAàÌm¾ñf*A`(Øa‚[SA0cŒãf*Aökcî[SAÀኧìf*AÈJD΃[SAihÁI–7{*AXZ¾äîXSAHgåL{*A`—Y*îXSA(Ðå‰S{*Adíg»ìXSA˜Éõ²A{*AØUùtíXSAhÁI–7{*AXZ¾äîXSAi`Ñ2N"{*A óy¯ðXSA¨*¹æ0{*Aj!yUðXSAhÁI–7{*AXZ¾äîXSA˜cþm*{*A íïXSA`Ñ2N"{*A óy¯ðXSAi°gTsž*AàßxŸOSAøÐÃluž*Aô@Ü¡OSAtV瀞*A¸aŒ¾ŸOSA°gTsž*AàßxŸOSAi@‡· Zž*A*r¥OSA@eºsgž*AÌÔo¦OSA`'A{ež*A$‚â¤OSA@‡· Zž*A*r¥OSAiPñ>Ÿž*Ahes§£OSAø&Òy©ž*A„áÔ£OSA`8@£ž*A‹W›¡OSAPñ>Ÿž*Ahes§£OSAi@»È U¦*AnæÓ¼OSA0Z b¦*A~ÏÀÒ¼OSAøaB¨\¦*AÈlA‰»OSA@»È U¦*AnæÓ¼OSAþ ƒÃzŒc ‡‡0 }Trieste @õ왾¨GA”Iûò¬‹DøYȦX*Aº® -OSAØÜVöé*AL ²]SA|i² ÐR7óûf*A>+ᣄ[SAˆ$8Ñúf*A>¼_¯†[SA ä“Ñìf*Aè´™‡[SA ƒaœàf*AÞEñ…[SA€+—éÔf*A.B)d„[SAØBN{Éf*Aâ›ʃ[SAH¢U)¾f*AòUÑ„[SAˆzF~¶f*A¶Çƒã…[SA€_¨_«f*AÜ<†=‡[SA˜|qf*AðYOûˆ[SAÀኇf*Až3«Š[SAÐì?ƒf*AÐeâtŒ[SAP`†¢vf*AÚ€€ÿ[SAH¢UIjf*A¶Xƒ[SA0 ¿Yf*A®¬åô[SAH3Ô„Kf*AlÝ~‡‘[SA8 *‚Bf*A.Ó§“[SA@‡·ê9f*A$Ú„[SApTó˜(f*A\ÒÉ”[SA¸èéf*Aî ËE‘[SA8— ‚ f*AL“[SAÐÁ¸wf*A¸Ð ‹”[SAM%ß÷e*AV/7–•[SAàÌm>îe*A(0½–[SA FÆFße*Aºû”}˜[SAx;€AÏe*Aº’|š[SAÈY– Êe*Ar«˜„œ[SApvðïÙe*A8ˆNé›[SAH€Xäe*A¦¼Îøš[SAø&Òy f*A’Ÿ»–[SAº{|#f*A®g¡“[SA÷2/f*Aè´i’[SAøƒ?¿Cf*A ø­¸”[SA@UÑ{Mf*A¢<–[SA°FoÓf*Af:ì†[SAغYßõf*A8;ÊëŠ[SA˜8w÷•f*AtÖ–[SAÀ”z?f*A42@¨ [SAH#ëÌf*Aý‡œ[SA¨w=4fZ”ë.AÐö` DPAKú÷Òë.AŠ„g ?PAи.øûë.AÊJ 6PA Vxì.Aô¯] -PAxfø.ì.AªÅXÀ%PAȯ¤ø1ì.A¦MM`PAx]}xì.Aáe€PA°ïHxûë.AÊJ` PA˜/íwÚë.A† \ PA VØÅë.A¬=d øPAè˜Îë.AªÅX æPA˜8w÷ì.Aáe€äPAsçeFì.AêG;ÀäPAx]}8ì.A† \ãPA Ìx¢ì.A>šb€ÝPA Vøºì.AÐö` ÔPA&cøÏì.A† \ËPA Ìxâì.A¦MM`ÃPAèxŠxòì.A<"W¼PA°æ¾x8í.A8ªKÀ°PAX!˜cí.A<"W@ªPA Ìx”í.AŠ„g`¥PAKúwÄí.A^ÛSÀžPAèØãí.AbS_@˜PAèxŠøî.A† \ ’PAèxŠØ'î.AbS_ ‰PA8˱øFî.AbS_`PABpøVî.AñN@tPA°ïHø^î.A‚”P hPAàoÙrî.Aô¯]À\PAи.ø­î.AñN@TPAèxŠxòî.AÎ~U€HPA&c˜Lï.AñN 5PA VxPï.Aô¯] -PAȯ¤x\ï.AÊJ &PAȦùuï.A<"WPA Ìx”ï.A† \PAX”—x¹ï.Aø'iÀ PAX”—øãï.A>šb€ýPApTóøð.Aáe€ôPAÙx)ð.A<"WìPAx]}ørð.AŠ„g@ÞPA8Â'y§ð.A† \ ÒPAÙøÓð.Aô¯] ÅPAùAù4ñ.AªÅXà¼PApKiyeñ.A‚”P °PA¨Ý4yQñ.A^ÛS¥PAȯ¤˜5ñ.AiZ`˜PA8Â'ùQñ.AiZ`PA9æx~ñ.A‚”P ˆPA¨Ý4yŠñ.AÊJ@}PAÙø…ñ.Að7R`rPA¨Ý4yJñ.Aø'iàpPAÙØåð.AñN@lPA8Â'ùXð.A¦MM aPAøaBhýï.Aáe [PAÈü(Ækï.A42@ \PA&cøï.AúŸt \PAx]}øyî.Aô¯]€VPAи.Øÿí.AbS_RPA Ìø¾í.A^ÛSàMPA°æ¾xí.AÎ~U`IPAKúwýì.AñN@<PAKú÷ ì.AÎ~U€8PA`•¸¿–Pì.AÔnlà7PA¨!/ç ì.A ]6à<PAèxŠØÙë.AÊJ`<PAKú÷Òë.A>šb`6PAðŠžwãë.AÎ~U`)PAKú—ëë.AŠ„g`PAȯ¤xì.Að7R`PA Vxì.AñN PA Vxì.Aø'iÀùPA@Ô;øì.AÐö` ìPAðŠž÷øë.Aø'iààPAX!xõë.Að7R ÔPAðŠž÷øë.AbS_ÂPA`¦«wøë.A>šb@·PAKú×ùë.AiZ`¨PAи.Øì.AÐö`àšPA˜/í÷ ì.AŠ„g`PA°ïH˜ì.Aô¯]€~PA VØì.AñNnPAèxŠøì.AŠ„g@^PAxo‘wì.A† \àSPAxfxì.A† \ JPA@Ô;øì.AŠ„g`=PABp8úë.AáeÀ2PAи.øíë.A¬=d (PA°ïHxûë.AªÅXàPAи.øûë.Aø'iàPAx]}xÖë.AñN@PAx]}øòë.AbS_`÷PAÐÁ¸wì.AÐö` ìPA à×Aì.A^ÛSÀæPAxf˜€ì.Aô¯] ÝPAèxŠø‡ì.A¬=d ÐPA@ÝÅ—‰ì.Aø'iàÀPA à—zì.AfËj ºPAxo‘w•ì.A† \ ²PA`¦«×´ì.A‚”PÀ§PA°ïH8ôì.AªÅXÀPA¨ö§pDí.A ø­ šPAèxŠøÀí.AÊJ žPA0Zî.ARû% PAèΘ…vî.AªÅXàœPA°æ¾x¿î.A¬=d ˜PA&c8ï.A\cH€“PA@Ô;Øbï.AÎ~U PA8˱˜Êï.AÊJ@PAx]}ø2ð.Að7R€‰PA9æx~ð.A¬=d ˆPAxîûÓÆð.AiZ€‡PAXØ‘æHñ.AXë<@ˆPA輄ÆÓñ.Aî¿FàˆPA˜/í×]ò.AÜ<†UPAи.x‘ò.A8ªKPA@6æõò.A8ªKPAO™[ó.Aáe€ŒPA0\ùÞó.AbS_`‡PA¨Ý4yQô.A<"W„PAÈóž&úô.AÊJ`„PA8Â'ù˜õ.A¬=d ˆPAPyùùöõ.Aô¯] PA8¹y²ö.AÐö`À“PAàfvù÷.Aø'i˜PAÀÙY÷.AÐö`àšPA¨:¢þÒ÷.Aâ,½œ–PAPyùÙø.A^ÛSÀžPApBßÙPø.A¦MM`£PAøHÚÆø.A¬=d ¨PA Â–zVù.A>šb@¯PA Ë z ú.A¦MM€²PAØTbztú.A¬=dà¹PA€ù°zÀú.Aø'iÀÁPA@ö8ïÿú.Aökc–ÆPAà]ìÙ,û.AbS_ÊPAØTbÚ·û.AÎ~U`ÑPAàªpgü.Aô¯] ÕPAç-šŽü.A¬=dàÙPAøjÌçý.A† \ ÚPA0§‰Úvý.AÐö`ÀÛPA ¹ ›Èý.AñN ÝPAÀ‹|úOþ.AbS_@àPA ¹ ûÄþ.Að7R@ãPApvðï,ÿ.AñN@äPAà¡æçÿ.A¦MM`ãPAè=jÍÿ.AÞEáàPA0žÿúèÿ.A^ÛSàÝPA ¹ û/A† \ÛPAh0Ëz*/A¬=dÑPA˜°‚›L/A‚”P ÀPAðª{]/AfËj€³PA`'A{|/AÐö`à¢PAØBNÛ/A† \à“PA˜°‚›…/A^ÛS…PA€ð&{„/AÐö`ÀsPA˜°‚{—/AbS_bPA(•u;Â/AªÅXÀMPAðªÛà/AñN =PA0žÿÚú/A<"W@2PAHgåš /AbS_ !PAÕû/AªÅX PA€çœ›6/AñN@PAÐ9Ä{U/AiZ€÷PA€ð&›r/A^ÛSàåPAÐ9ÄÛ|/A† \ ÒPA0žÿÚz/A¦MM€ÂPAð 4{`/AbS_`¯PAh0ËÚ&/Að7R`¢PAØKØš&/Að7R@“PA ¹ {!/A¬=dàPAð 4{/AbS_@xPA ¹ ÛÈ/A‚”PànPAø¾zŽ/AŠ„g gPA`'A›c/A‚”P XPA`'AûJ/AÔnl FPAø¾:@/AñN@4PAÞ£ú@/AŠ„g PA˜°‚{W/A¦MM` PAÓîS\/AÌÂOR PA0žÿz…/A8ªKà÷ PA ¹ ûÄ/A¬=dàé PAØBN{/AªÅX Þ PA€ð&{K/A<"W Ó PA˜°‚ûz/AªÅXàÄ PAØKØÚÂ/A† \ º PAØKØzÿ/A¦MM ± PA€çœûd/AªÅXठPA˜ëòé±/AfËjì£ PA¸‚òúÓ/AfËj€£ PAø¥<ös/Aø—'iÀ¡ PApvðï¥/A|¤9 ¢ PA˜ZtÎ/AÖæw`¡ PAH^[û{/AfËj`¤ PAH^[›Æ/AiZ€§ PA(•u{P/AŠ„g`­ PA¸,ä-ž/AäW$@® PA`k;) /A† \à« PAÐ0:œ€/AbS_@¨ PA(ŒëÛ /AÎ~U § PAÐ'°Ü’/A† \£ PAÐ9Ä›ü/AÎ~U€  PA`Ú¼mm/Aø'i  PA¸pÞûâ/Að7R`¢ PA8©´Q /A”§¤ PAxÕˆüs /AŠ„g`¥ PAèð•|å /A‚”PÀ§ PA@LGü< /A‚”P€© PAÀáŠG© /A¢fÀ‹¯ PAX £|º /AÎ~U€° PA0Ž /A‚”P ¸ PApmfð7 /Ahöñ^¾ PA@™ËiH /A† \» PA qM}` /AÔnl ¶ PAX £|º /A^ÛSÀ® PApÃtÝM /A‚”P€© PAŒZ}î /AbS_¢ PA8:3=¡ /AÐö`àš PA•äÜí /A^ÛSÀ– PAÈœ}%/A† \à“ PA°¢Ä ~/A˜þ' PAƒÐýŽ/AŠ„g@Ž PAŸÝî/A¬=d ˆ PA°U@ÝG/AÐö`à‚ PAÈœÝÓ/Aø'iàx PAo"¶4/A|»˜o PAŸÝ}N/AñN m PA°U@}Ë/ABnÀ` PA81©ý/A<"W [ PApºêÝ_/Aô¯] U PApÃt}Ÿ/A† \àK PA¸]×è/Ašº£á= PA8(Þ:/AªÅX F PA=<çn/AbäÝ—H PA@M.¦/A>šb€E PAàÌmžê/A^ÛS= PA¨C,þ//AiZ€/ PAPèzž/A‚”P€! PAPèzÞ/AñN  PAŸÝ݃/Aô¯]À PAø•SÞÎ/Að7R@ PAˆq¼ž¯/AñNö PA0•ž°/AÔnlàï PAˆzF>è/A^ÛSàå PA0•þ/A‚”PàÞ PAh¨Ö>]/AŠ„g`Õ PAPèz~˜/AÔnlàÏ PA¨:¢þú/A† \àà PAh¨ÖþG/Aô¯]`· PAÈ Þ¥/AªÅXଠPAðµ%n/AtÖÿ§ PAøŒÉÞK/AÐö`ࢠPA¨C,~Z/Að7R`’ PA0•Þ~/AªÅX ~ PA0•Þ°˜/AÔnlà_ PAp±`~ç/AiZ`@ PAÀˆž /AfËj`4 PAø•Sþ5/AÎ~U€ PAø•S~R/AfËj` PAPèz>J/AfËj@ý PA0•þe/Að7R`ê PA0•þž/AªÅXÀÝ PAM%ŸÞ/A>šb@Ï PAV¯~,/ABnÀÀ PAøƒ??Œ/ABn€² PAˆq¼Þö/A>šb@Ÿ PAÀˆžT/Aø'ià PAh¨Öþ•/AŠ„g ‡ PAغYË/A>šb€} PAh¨Öþ/Aø'iàp PAHÖfÿu/A<"W [ PA€_¨ßÅ/AÎ~U€P PA (Žÿ;/Aô¯] = PAØÃãÞƒ/A‚”Pà. PAhŸL?á/A‚”P€! PA(÷?9/AªÅX  PA€_¨Ÿ°/Aô¯]  PAH´iÈø/A*Ê PAh0ËZ/Aè>±Ü PAD›ÿ/A<"W@ PA`8€p/Aáe€ô PA`8@©/AÔnlàç PAШEð/Aô¯]`ß PA (ŽX/AfËj`Ô PA€Và/Að7R Ì PA˜Î/ABn€Â PAHÄRà /AñN¶ PAðzµ?W /AŠ„g@¦ PA¸ß_€„ /ABnÀ˜ PAرÏÿ² /A°µo@Œ PA;€ñ /AÎ~U€€ PA(ûl/!/AÔnl v PA(ûlv!/AÎ~U`i PA`8€Å!/AÐö`À[ PA(ûlà"/AÔnl N PAП»àL"/A°µo`; PAرÏ"/A† \3 PAX. ó“"/A,¨ 92 PAxM”€Ñ"/AÎ~U / PA°ÖÕ€#/AªÅX . PA¸èéŸ'#/AÎ~U€( PA¸èéŸY#/AÎ~U`! PA€V@¸#/AŠ„g` PA@»È$/A† \ PA@»Èàh$/AªÅX þ PAШE·$/Að7R@ó PAòQ‚7%/Ax,.àæ PA(òâ€O%/AÐö` ä PA2‡à8%/A† \ Ú PA(ûlà%/Aø'iÀÑ PAðq+àå$/AÎ~U Ç PA`„®€û$/A¬=d¹ PA2‡@5%/AÔnl ® PA˜ ð@%/Aáe £ PA°ÖÕ@ú%/AÐö`àš PAxM”€X&/Aô¯]`— PA2‡àq&/AbS_ ‘ PAX{$A¿&/AÐö`À{ PA@™»È€,'/A^ÛSÀn PA°ÖÕ ¨'/AbS_@` PA°ÖÕ@ì'/Að7R`R PA@²>)(/A‚”P H PAx;€v(/A‚”P 8 PA°ÄÁæ(/A<"W@* PA8©´áb)/A>šb` PAûÛº)/A<"W PAØv_*/AiZÐ PAûÛAž*/AiZ€ PAˆœC°*/AB4kÏ PAÈ„B+/AªÅXàüPAx;€`+/Aø'iÀñPA@²>÷+/ABn áPAèM‚r,/AiZ@ÙPA_÷,/A>šb€ÍPAàDyZ-/AiZ@ÁPA_‚Ú-/AŠ„g@¶PA8— ‚<./AiZ€¯PA8©´­./AYqà¦PA8— ¢//AYqžPAèMB«//ABn€’PA¨»7‚ 0/Að7R@‹PAˆéÇ‚‚0/Aø'i ‚PAòQB"1/AŠ„g`uPAˆéÇ‚»1/Aáe€lPAp)l‚a2/Aø'i bPAà;ïâý2/Aø'iXPAPWü¢}3/AYqNPAκ4/A^ÛSEPAhXã¥4/AŒür€9PAøòÀƒ5/AÔnlà/PAøûJƒ¢5/A>šb@'PAøûJƒ6/A<"W PA0Ž£u6/AÐö`ÀPA¸`õƒº6/A^ÛSÀPA —A7/Aô¯]`PA¸`õã¶7/AŒür€PAHEèƒ^8/Aø'iøPAØ QDÆ8/A† \ òPAøòÀã9/A>šb€íPA¸Wk¤^9/AÔnlçPA0…Œƒ’9/AÔnlàßPA¸Wkäì9/AŒür ØPA˜Ž…DZ:/Aô¯]`ÏPAhDD±:/AŠ„g@ÆPAðà¬;/AYq¾PAH<^D›;/AŠ„g`µPAª’äò;/AÔnl¯PA³D2/AúŸt@ƒPA°EW¥¦>/AÎ~U€xPA¡¥ï>/AiZ€oPAÐÇDJ?/AYqÀgPA(ad¿?/A°µo`[PA`ü¹ @/AáeÀRPA¡…z@/AúŸt@KPA¸NáØ@/AfËj@EPAÐÇäA/AiZ`@PA¡…HA/AªÅXÀ=šPA˜…ûDžA/A>šb@7PA`ꥅB/A^ÛSà-PA¸Náä>B/AúŸt $PA(adå×B/AbS_@PAsçE_C/A<"W PA°<Í¥êC/A† \ PA`ê¥aD/AáeÀúPAx³‹ÅD/AÐö`ÀóPAèÅæ/E/Aáe ëPAô…ÉE/Aô¯]€ÞPA輄TF/A°µo`ÓPAsçEæF/A¬=dÉPAôfG/AªÅX ¾PAôæG/AfËj`´PA8¬F¨H/AªÅX ¦PAj]†øH/AÔnlŸPA FÆæjI/AÔnlà—PA輄âI/AÔnlPA FÆæJ/AbS_ŠPAà³úF{J/AŒür`‚PA8¬¦ÝJ/AÐö`àzPA8"‡HK/AáeÀrPA8¬F¯K/AŠ„g@nPA8¬æL/AúŸt lPAà³ú†BL/AÎ~U`iPAˆXIÝL/A† \ bPA=šb`¦PAÀÏvˆV/A<"W@šPA ý ÊV/AŒür€‰PA€=«èW/A¬=dPAðO.I—W/Aø'iÀqPAH«ßèãW/ABn iPA¸½b‰GX/AÔnlà_PA ý‰­X/A°µo UPA@™Ë‰=Y/Aô¯]`GPA¸Æì§Y/AªÅXÀ=PA€+— ÿY/A>šb`6PA˜ô|‰qZ/AúŸt@+PA˜ëòéªZ/A°µo %PA°´ØéÇZ/AhCv PAx" êâZ/AB›n€PAè= [/AÔnlÿPA`k;é6[/AŒür àPA(ÐåéN[/A¬=dÑPA`k; ž[/ABnÀ¨PAðO.©Ó[/AYqà†PAx" ª\/AYqnPAè=Š-\/AbS_ YPAðF¤ M\/AhCvÀFPAŠ q\/AYqÀ/PAH¢UI–\/AªÅX PA`b±‰Å\/AÖæw`PA`Y'êþ\/A† \àãPAH¢U‰9]/AbS_@ÀPA˜ëòéq]/AúŸtPA(ÐåéÎ]/A¬=dqPAþuê^/A† \ÀLPAª8^/Aáe€,PAâhêu^/AúŸt@ PAè=ê·^/AŒür èPAè4êû^/AhCvÀÆPAè=J-_/AŒür ¨PA`Y'ŠW_/Aô¯] PA°´Øéy_/AbS_rPAÐt4Š¥_/AfËj€[PAâh ä_/AbS_@8PAÐt4Š`/A† \ÀPA°«Nªo`/A°µo@ìPAâh `/AáeÀÒPAxƒŠÜ`/AfËj@­PAx" êa/AªÅXÀPAÙÞŠ=a/A¬=dàiPAþuJ‡a/A† \àKPAdm/8b/AŠ„g@ PA¨™:ËÞa/AÊuËèPAþuÊa/A2)¶(4PA°¢Äje`/Ap¹ˆPPAx" Êæ_/A2)¶(dPAè=êw_/A Ì·¨wPA°¢ÄÊÚ^/A8͈“PAâhÊ@^/Aî.Èè©PAjj]/Aê¶¼ˆÇPA°´Ø‰Ë\/Aê¶¼¨ÞPAŠÉ[\/A¦¼ÎhôPAŠéÉ[/A Ì·è PA@AjL[/AÆý¿#PAÐ}¾i³Z/A¤DÃè:PA°´ØÉZ/A8ÍÈQPA¸ÆìèxY/A¤DÃèjPA`k;ÉÝX/AÆý¿ƒPA¸Æì(NX/A\ÒɈœPA€4!)›W/Aê¶¼ˆ·PA(Ùo)®V/A¤DÃÚPA0ëƒÈ"V/A Ì·ÈîPAhtÅè€U/A\Òɨ PAh}OÈU/A ø­PA ýiT/A\Òɨ3PA+(hT/AèĈEPAðX¸(ºS/Aê¶¼¨VPA0ëƒèPS/A Ì·¨gPAh}OˆòR/AÆý¿sPA"ž(R/Ap¹H‚PA ("R/AÆý¿È”PA4²gÁQ/Az›¯È¨PA4²'sœQ/Aè>±H´PAà¡ægêP/AÊuË(ÇPAH´i(µP/A\ÒÉhÍPAP½óçbP/Az›¯ÈÐPAà¡æg#P/AÆý¿ÛPA4²ç²O/AÊuËHîPAˆF5(ZO/Aê¶¼¨þPAˆF5h!O/AVâ²èPAh†ÙçêN/A ø­PAˆXI'’N/AÆý¿èPA0ý—g^N/AÊuËH&PAÈêgN/A¤DÃè2PAP½óÇ´M/AÊuË(?PAPÆ}g{M/A¤DÃ(IPA4²ÇKM/A|»(SPA8"gM/Aè>±h[PA4²ÇÄL/A6¡ÁhgPAàªp‡L/Aî.ÈqPA}àæTL/A¤DÃ(yPA FÆæ*L/Ap¹ˆ€PAˆXI‡€K/Aî.ÈÈšPA8¬&K/Aè>±H¬PApc'ƒJ/A¤DÃÂPA輄fJ/A¤DÃÒPA8¬æÀI/Az›¯èßPAà³úfbI/AÊuË(ïPA}àæI/A|»èüPAaÓæ¿H/A.±ªÈ PAÈü(æYH/A|»PAXáfïG/A|»,PA@6f‹G/A¤DÃ:PAxªf>G/A€‹ÆHGPA@6æîF/AÆý¿ÈTPA XÚŦF/A€‹Æ(`PA°<Í…JF/A ø­oPA°<ÍeêE/A Ì·è}PAг%¤E/Az›¯¨‰PAXØ‘&^E/AœT¬h”PAгåE/AXZ¾H¡PAXØ‘†ÌD/A ø­H­PAj]fŠD/A.±ªè¸PA°3C†GD/A\ÒÉhÅPAèÅf D/A Ì·ÈÎPAj]fØC/A Ì·èÕPAÈü(æRC/A ø­ßPAXá†C/A2)¶HãPA(ade­B/Aè>±hëPA°<ÍejB/AÄ…´ˆñPA€¼Å+B/A Ì·èõPA(adå×A/AœT¬hüPA˜|q%{A/Az›¯ÈPAð×"e A/A|»( PAÐ=%§@/AXZ¾(PA€¼Å$@/A\ÒÉhPAÐÇdã?/A¤DÃè"PA°EWå´?/A ø­'PA˜~Åa?/AèĨ,PA˜~% ?/AÆý¿È4PA˜~åº>/AÆý¿è;PAH3ÔÄt>/Aè>±hCPA˜Ž…$%>/A.±ªÈIPA¸Ná$Í=/AÄ…´¨PPA@*J%u=/A6¡ÁhWPA@*J%.=/AèĨ\PA˜…ûäè±H,PAÅ0c‘4/AèĨ4PAøÕbi4/AXZ¾h8PAp â‚ì3/AXZ¾h@PAÅ0ãf3/Az›¯¨IPAøûJÃð2/Aî.ÈQPAà;ïÂV2/Aî.ÈÈZPAÀr #ö1/AÆý¿cPAàDyb1/A2)¶HkPAp)lÂ61/AÀ ©(oPA8 *b˜0/A Ì·èuPAÈ„bC0/A2)¶H{PAXrš'0/A0m°þ|PA8— "0/A Ì·È~PAàDy‚Ä//AÆý¿ƒPA¨²­âT//A.±ªèˆPAP`†Âç./AVⲎPA×Dbt./A\Òɨ“PAèMb ./A2)¶(œPAP`†b²-/AèĨ¤PAÈ{“b9-/Aî.ȱPA àÎáÓ,/Aî.ÈȺPA_¡,/A€‹ÆhÆPA¨»7bŸ,/Aî.ÈÈÒPAûÛÁ,/A6¡Á¨ÝPAûÛ!~,/AÄ…´¨èPA8 *bQ,/A2)¶õPA àÎa¾+/A.±ªèPAfád+/AÆý¿PAp2öÁ++/ARj§ˆPA àÎÞ*/A ø­(PAûÛ!w*/Az›¯èPAûÛÁ*/A ø­H PA°ÍKa¥)/Aî.ÈPA°ÍKÁZ)/AÀ ©hPAXršaã(/A6¡ÁˆPAЖ1›(/AVâ²(%PAxD áŠ(/A ø­(&PAhtÅHo(/AÄ…´È'žPAÀ.µ-(/AyC¨+PAЖ1Áâ'/Az›¯È(PAП»`i'/AVâ²&PAП»`ð&/AÆý¿#PA \ŸŠ&/AÄ…´h"PA@»È€3&/Aè>±ˆ"PA8(¾Ì%/Ar«˜(#PA°ÖÕÀV%/A Ì·èPA˜zàÜ$/AXZ¾hPA`8À…$/AVâ²PAxD Á1$/A2)¶PA¸ß_€}#/ARj§¨PAÙXû"/A‚ÒˆPA2‡`Ž"/Aè>±hPA(ûlÀ "/A ø­HPAðq+`Â!/Az›¯ÈPAHÍÜo!/A ø­(PAðzµ¿,!/A ø­(&PA (Ž¿í /Aê¶¼ˆ/PA€VÀ› /AœT¬¨2PA˜zà\ /AÀ ©(7PA(÷ /A.±ªè@PAðq+` /AÆý¿KPAHÄRÀï/A Ì·¨WPAرϿÖ/AXZ¾HaPAHÖf /AèĨlPA€VÀT/A¤DÃèzPAШEà/A¤DÃ(‰PAhŸL_Á/AœT¬ˆ“PA˜`|/AXZ¾h PA;€1/A䯥©PAhŸL_Á/Az›¯è¯PA0 J/A2)¶µPA€_¨_Û/AÀ ©h½PA0ll\/AVâ²(ÅPAˆ¾@Ì×/AàNšèÌPA µG«S/A2)¶(ÌPA[ãÏé/Aè>±ˆÊPAM%ßl/ARj§ÈÊPAh¨ÖÞî/AèĈÍPA¨:¢¾e/AÄ…´hÒPAM%_/A6¡ÁHØPAàˆsðŒ/AŠbj}âPAø•S^ë/A6¡ÁˆîPA0•¾W/AÆý¿èûPAÀˆ^/A¤DÃ( PAPèz•/AVâ² PAÀˆ¾4/AèĈ PAPèzÞÔ/AÄ…´È' PAPèz\/A䯥(0 PA81©÷/AÄ…´¨8 PApºêµ/ARj§¨C PAhýk/Ap¹hQ PAø•S/AèĈU PA¨C,Þ/AÄ…´hZ PAˆzF^/A¤DÃ(i PA¨C,ÞO/ARj§Èj PA qM]+/AÀ ©(o PApºê½ñ/AÄ…´ˆy PAÈ&ÝÖ/Aê¶¼¨~ PA¨L¶ÝÄ/AÀ ©H† PAèÞ¸/A Ì·¨ PApºê]µ/A2)¶ PA8(Þº/A¤ŸDÃ(© PA8:3Á/AÆý¿È´ PAÈ ´/AÄ…´h PAPñÞ‚/AÄ…´ÈÇ PA81©7/ARj§ÈÊ PAŸÝ]ç/AÀ ©hÍ PAèç Ýž/AXZ¾HÑ PA¨L¶]h/A Ì·èÕ PApºê]</Az›¯Èà PA¨g/A䯥é PAèç ]Â/A|»(ó PA•ä|/AœT¬¨ú PAèç B/A¤Dà PA°^ʼ/AXZ¾( PAxÌþæ/AÆý¿È PAxÌþ¼¢/Aè>±ˆ PA•ä|x/A6¡Áˆ PAX £¼O/Aê¶¼ˆ PAÊd42/AÁ"- PAÐ'°Ü/ARj§¨; PAXúŽ½Þ /A2)¶HC PA@C½|¤ /Aê¶¼¨N PA°^ÊR /Ap¹HZ PAÈ&]ú /Ap¹ˆ` PAX £Ü} /AÆý¿èk PA°gTÜÿ /Av#¤hv PA°^Ê¼Ž /A ø­ PAèð•0 /A6¡Áh‡ PA°gT|à /AÆý¿“ PA@nDóR /A¢Ÿ3ž PA˜žn¸ /AÀ ©H® PA z×¼# /A¤DÃ(¹ PAðùÜÖ/A6¡Á¨½ PA ýÉt/Az›¯ÈÀ PA`7*Óï/A\cHHÅ PAІHɤ/A¾•( PA講În/A¬^f¹ PAº{|4/Av#¤h® PA@LG¼ü/A Ì·è¥ PAÐ0:¤/A2)¶hš PA€çœ{H/Av#¤¨” PAð¾¯Íÿ/AôßH‘ PAØåàÕ²/A´-{(’ PA`'AÛq/Az›¯è PA¸pÞÛ&/AÆý¿ÈŒ PA(•u[é/AœT¬ˆ‹ PA(•u/A2)¶Hƒ PA`'A»C/AÀ ©h} PA`I>rÝ/AºŒÉx PAH×Mp/AúŸtè} PAðX¸Èö/Aè>±h{ PAHg庢/A|»(s PAØBN[\/Aè>±hk PA`'A/AÀ ©(g PA€çœ[š/A.±ªÈa PA(•uT/Az›¯¨Y PAH^[Û/A䯥HO PA ¹ [¬/Az›¯è? PAPpo/A|»(3 PA€ù°ºÎÿ.A ø­H- PAh0ËZ|ÿ.AXZ¾H! PA0žÿZWÿ.Aè>±h PA€ù°Dÿ.A€¢ PAh9UZÿ.AšÜ (ù PAøHzØ þ.Az›¯Èð PA ¹ [zþ.AœT¬hä PAø¾'þ.AXZ¾(Ú PAÞ£öý.A|»Ô PA0§‰Œý.A€¢èÊ PAÞ£Ú`ý.AÆý¿ÈÄ PAØKØÚ;ý.A€¢èº PA0§‰Ú6ý.A䯥± PA Ë º'ý.A Ì·¨§ PA0§‰ºý.Aè>±h› PAø¾ºñü.A€¢È‹ PA€ù°Zàü.AÄ…´h‚ PA Â–Z¯ü.AXZ¾hx PAøHz‘ü.Az›¯èo PAPpoZpü.Aê¶¼Èe PAÀ‹|ZLü.AVâ²^ PA¨ÔªY ü.Av#¤ˆU PA8¹ü.Aê¶¼ÈM PA0°ZÖû.AVâ²(E PAh9UÚ©û.Aê¶¼È= PAˆ ÅY‘û.ARj§È2 PAPyù¹šû.AÆý¿È$ PAPpoºÞû.Aê¶¼È PAà]ì¹ü.ARj§ˆ PA Â–ü.Ap¹HúPA˜…û¤ ü.Azy²¹ëPA0°º ü.Az›¯¨éPAh9UÚü.A Ì·èÕPA0§‰>ü.A.±ªÈÉPAˆ;‡ü.A ø­HµPA Â–Z¶ü.A Ì·¨§PAˆ ÅYØü.Ap¹ˆ˜PAÀ”Zý.A2)¶H‹PA0°ºRý.ARj§èyPAˆ;€ý.ARj§¨kPApBß¹°ý.A2)¶HcPAPpoâý.Ap¹hYPAç-Úþ.AÆý¿ÈLPA Ë ÚGþ.Aê¶¼ˆ?PAˆ;€þ.A2)¶(4PA0°ºþ.A ø­H%PAÀ”Zóþ.Aè>±hPAÀ‹|7ÿ.A|»è PAç-rÿ.A.±ªPAØKØZŸÿ.AXZ¾(òPAÞ£ºòÿ.A.±ªèàPAHgåZ-/AÆý¿ÈÌPAø¾ºc/AšÜ (¹PAØTbZ›/A Ì·È¦PA2‡€Ã/AޏxæžPAh0Ëî/A6¡Áˆ–PAÀ‹|Z>/A Ì·¨‡PAPpoºe/AÀ ©h}PA¸‚òº…/A€¢rPA¸èéÿŽ/AÔÿê÷mPAø¾Z§/A2)¶HcPAPpoÛ/A|»èTPA¸yh8/A.±ªHPAØBN[£/AÀ ©(?PA€ð&Û/A6¡Áh7PAÕz/A2)¶(,PA¸yhÛ¢/AœT¬ˆ#PA€çœ /Aè>±ˆPA(•u[/AšÜ HPA€¡çœ{/A ø­(þPA¸‚òzé/A|»ôPAH^[Ü/A6¡ÁhçPAÌÛö/A€¢âPAðX¸HS/A€¢âPAå³»/AœT¬¨âPA+(H,/Aè>±ˆâPA€çœ[š/Aè>±hãPA`'A{î/A2)¶(äPAàéPF/Al»ˆåPAH´iÈ¿/AœT¬ˆãPA(Œë[/A.±ªÈáPA(•u”/AÀ ©hÝPA`-Üù/A䯥H×PA ƒa\j/A|»ÌPA¸pÞ»Æ/A6¡ÁHÀPAðªÛ /AÆý¿È´PA(ŒëÛB /A Ì·è­PAxՈ܌ /Aè>±ˆªPA@UÑç /Aè>±h£PA(Œë /AVⲞPA@UÑn /A|»(“PA ƒaÜ /A2)¶(ŒPA˜§ø{› /AVâ²(…PA˜žnª /AÆý¿È|PA°gT¼Ã /A6¡Á¨uPA¸pÞÛ& /AœT¬hlPAèð•p /A ø­gPAÐ0:\² /Aê¶¼ˆ_PA@C½ý /A ø­WPAðù\A /A䯥HOPA°gTÜx /Ap¹hIPAxÕˆÜÌ /AVâ²>PA@C½¼ /A6¡Áh7PA•äÜ /A6¡Á¨-PA†jÆ /A²¾ù_'PA z× /A2)¶H#PA˜žn\8 /A ø­HPAÐ'°|– /AXZ¾(PAÐ0:¼Ù /AÄ…´¨PAÈ&}/AVâ²þPA8:3]A/A6¡Áh÷PAxÌþ܉/A|»(ëPAº{ܰ/AÆý¿¨ÝPAº{Ü÷/AÄ…´¨ØPA°U@]V/AVâ²(ÕPAÀ‹|©/A> äHÐPA@A å/AH…ÑPA°^Ê|/A Ì·ÈÆPAèç ] /A궼ȽPAX £\/A궼ȵPA@C½¼y/AÄ…´h²PAÈœ½ì/A궼ȭPA°U@H/AÆý¿è«PAŒZ}µ/Ap¹HªPAèÞÝb/Ap¹h¡PAÈœ}ž/AÀ ©(—PAèÞ]Í/AVâ²è†PAèÞÿ/A Ì·¨wPApºê½*/Av#¤ˆmPAÈ&]l/AVâ²è^PAÀr c½/A$ÚÐPPAˆœCõÖ/AN¼YLPAÈ ¾÷/Aê¶¼¨F¢PAЉÿ/AFùútEPAPñ¾b/A ø­(6PAàÕ÷]Š/A䯥H/PAèÞ]Ô/ARj§ˆ$PA81©]/AœT¬ˆPA81©½H/Az›¯¨PA_9^z/AÀ ©(PAàÕ÷ݦ/A6¡ÁˆþPAXúŽÔ/A2)¶õPAÈœ½ú/Aè>±HìPAø•SÞ@/A䯥áPA_9^z/A ø­×PAXúŽ]©/A¤DÃÊPAp±`ë/AÆý¿ÃPAV¯¾3/ARj§ÈºPA0•¾‰/AÆý¿è³PA@Ô;¸í/AŠóè±PAŸÝ}G/Aè>±ˆ²PA¨™:K/A¾•³PAà"|k§/AVâ²¶PAØåàµ/AÔnlȸPA ¾Ñªˆ/A ø­(¶PA¨:¢"/AXZ¾H±PAÀúý®/Aê¶¼¨®PAøƒ?%/AXZ¾(ªPAh¨Ö^„/AÆý¿È¤PAâhÊ/AÂ뫉žPAˆh2¿/AVⲞPAD›_†/AVâ²È—PAøŒÉ¾ä/Ap¹ˆPAÀúý^ƒ/A䯥‰PAHÖf_ë/A¤DÂPAM%w/ARj§¨{PA˜àÑ/A2)¶(tPA€Và‚ /Aè>±HlPA¸èéß.!/AVâ²fPAHÄRÀ¯!/A¤DÃbPA0 _*"/A6¡Áˆ^PAHÍÜ_Ä"/A|»\PA(ûl€R#/A¤DÃ(YPA€VÀé#/ARj§ˆTPA(ûlÀ`$/AèÄÈKPA(÷¿Õ$/ARj§¨CPA(ûl`d%/AÆý¿è;PA˜ ð`ý%/A2)¶(4PAðh¡ x&/A|»,PA@»È`>'/A䯥è!PA°ÖÕ Ì'/A Ì·¨PAfár(/AÆý¿È PAfÁ)/Ap¹HPA éXÁï)/AÆý¿èóPAxD •*/A ø­(æPA éXá+/A|»èÜPAXrš‘+/A ø­HÕPAȧ!1,/AèÄÈËPA8©´á¢,/AÆý¿¨ÅPA°ÄÁP-/ARj§ˆ¼PAÈ„âæ-/AÆý¿¨µPA àÎaw./AÀ ©H®PAûÛa//ARj§ˆ¤PAòQâº//A2)¶H›PAp2öáY0/AœT¬ˆ“PA8 *bØ0/Aè>±HŒPAàDyâ²1/A£p¹hPAˆéÇbT2/AÄ…´¨xPA_ÂÚ2/Az›¯¨qPAPWü"š3/AÄ…´¨hPAˆà=ã4/ARj§ˆdPAPWüâ’4/A ø­(^PA0ŽÃ5/AXZ¾hXPA0Ž#’5/A|»(SPA  ™Ã.6/AVâ²ÈGPAøûJâ6/A.±ªè@PA¸`õã(7/A¤DÃ:PAØ2ec¥7/A¤DÃè2PA —ä 8/AVâ²(-PA¨©##§8/Aê¶¼¨&PAˆ×³c#9/A Ì·¨PAˆ×³cÜ9/AVâ²ÈPAPNr#l:/A Ì·è PA¼¦c;/Aê¶¼ÈPA`ü¹dÎ;/AÆý¿¨ýPA€Î)d /AÆý¿ãPA€¼Åk?/Aî.ÈèÙPA@*J%ü?/Aî.ÈÈÒPA˜…ûÄA/Aî.ÈÈÊPA(jîd°A/A6¡ÁhÇPAx³‹åOB/A ø­(¾PAгåÜB/A¤DúPA`ê¥Å`C/AVâ²È·PAôe›C/A6¡Áˆ¶PA`ó/…ÎC/A\ÒÉhµPA°EWÅTD/AVâ²È¯PA@M®ÛD/A^¥IªPA XÚ%1E/AœT¬h¤PAô%ÔE/AœT¬hœPA@!ÀeGF/A€‹ÆH—PA`ê¥%ÈF/AVâ²ÈPA輄æsG/A ø­(†PAèÅfH/A ø­H}PAp˜í†­H/Aî.ÈÈrPAXá†VI/A¤DÃèjPAp˜í†-J/Aê¶¼ˆ_PAXØ‘æJ/Aè>±h[PAaÓ&K/Aî.ÈQPAÈóžfˆK/Aî.ÈèIPAˆXIÇL/Aî.ÈAPAà³ú†‚L/Az›¯È8PA¨¥ÇöL/AXZ¾(2PApc'nM/AèĨ,PA0ý—Ç!N/AèÄÈ#PAˆO¿Ç N/A ø­PA=<ç.O/Az›¯èPA4²ÇÄO/Aè>±ˆ PAà¡æçFP/A|»PAh}OhÒP/AÊuËHþPAÀáŠÇ7Q/A8ÍèøPAøj̇§Q/Aî.ÈÈòPA0ý—‡ R/AÊuËHîPA (pR/Ap¹ˆèPAøaBhöR/AXZ¾HáPA"žh^S/A¤DÃèÚPAðX¸èÖS/Aè>±ˆÒPAøaBÈ2T/A\ÒɈÌPAؘ\Ȫ¤T/AÆý¿¨ÅPAH«ßhùT/A¤DÃÂPAÀÏv(|U/A8ÍȹPA€4!‰—V/A6¡Áˆ®PA¸Æì(W/Aê¶¼¨¦PA˜ô|)ƒW/AÊuËHžPA¸Æì(X/Ap¹H’PA¸½b‰ÎX/Aê¶¼ˆ‡PA`k;i¡Y/A2)¶(|PA‰{Z/A8ͨrPAÊ&[/AXZ¾(jPA€+—ɰ[/A6¡ÁH`PA(Ùoi.\/Aê¶¼¨VPA`b±)Ð\/AèĨLPA€+—‰¢]/Aè>±ˆBPA Ç[êY^/A8ÍÈ9PAè4j _/Aê¶¼ˆ/PA Ç[ʲ_/AÊuËè(PAþujî`/AÄ…´ˆPAõëêa/A€‹Æ(PA8~-Ë—a/Az›¯¨PAõëÊça/AVâ²PAdm/8b/AŠ„g@ PA µGËóa/A Ì·èPA°¢Ä*åa/Aè>±(PAè+Ë‘`/Aè>±HôPAh0Ëš `/AèĈíPAxƒ*n_/Aê¶¼ÈåPAÐt4ʬ^/A|»ÜPA`b±ie]/AèÄÈËPA@AÊÈ\/A|»(ÃPA¸½bÉ\\/A궼ȽPAx" ê”[/AèÄȳPA(Ð剙Z/AVâ²È§PA`k;iÚY/AœT¬hœPAi"Y/AœT¬¨’PAH¢UÉyX/Aè>±ˆŠPAhtÅhW/AÊuËè€PAh}OÈÎV/A Ì·¨wPA ‘èV/Az›¯èoPAH´ih5U/AXZ¾cPAà¡æ‡‘T/AÄ…´¨XPA"žèìS/A€‹Æ(PPA+((7S/AÊuËHFPAP½ó‡_R/AœT¬ˆ;PAtVÇqQ/Az›¯È0PApcdžP/AœT¬h$PAtV‡£O/Az›¯ÈPAà³ú&FN/A€‹Æ(PAà³úÆPM/A\bU1÷ÿOAp˜íæ[L/Aø&v1ßÿOA輄ƓK/AŒûQËÿOAÈü(&¨J/A¬Äeñ´ÿOA FƆnI/AÐ}bÑ–ÿOAÈóžfºH/A°´|Q„ÿOA@6æõG/A\bUpÿOAèÅÆAG/A‘^ÿOA@!À%rF/A¤ÔNIÿOA(ad%æE/Aô6_1<ÿOA@*J%|E/A€R‘,ÿOA`ó/ÅE/AÔmyñ'ÿOAèΘ…¨D/AdRl‘&ÿOA(adÅ)D/AÔmyÿOAг…§C/A€RqÿOA¥¡å6C/A@™o‘ ÿOAÐ=ŪB/AÜ]ÑÿOA(jîd0B/A€RÑúþOA€¼e¯A/AlBƒ1ôþOA˜Ž…Ä6A/Aˆ i1êþOAÐÇäÆ@/Aˆ iQáþOA¸WkdP@/AH‰†qÙþOA˜Ž…äÖ?/AÔmyqÔþOA —äY?/AÐ}bñÍþOAHEèƒ×>/Að[QÌþOAÐÇ$U>/A°´|±ÉþOA0|$Ì=/AÔmyqÄþOAØ Qd-=/AÔmyqÄþOA¸WkÄŒaÐ./A°´|1 þOA@²>a./AÈKQþOA@²>i-/A8©XÑøýOA àÎ!â,/AÈKòýOA8©´áb,/A@™o‘íýOA˜ ð`,/A@™oqæýOA`„®`[+/A$Љ±ÞýOAX{$!Ê*/A\bUñØýOA`„® ?*/AàrÑýOA`8àz)/Að[ñÆýOAП»À¥(/AÐ}bñ½ýOA€VÀ(/A¬Äe1³ýOA˜z ¹'/AÔmy‘«ýOA`„®àþ&/AÈK¢ýOAHÄR l&/Aˆ i1šýOA`8àú%/A€RÑšýOA˜À*%/AÐ}bq‘ýOAШEÀš$/AdRl±ýOAhŸL_$/Að[QŒýOA€VÀ›#/AÔmy‘‹ýOAD›_#/AÐ}bцýOAM%_"/AlBƒ1„ýOAÀúý¾Æ!/A¤ÔNq~ýOA0 ßF!/Aô6_qzýOAÀúýµ /A°´|výOA¸ñs5 /Aˆ is¦ýOAD›_ /Aà‘¡ÇqýOAHÖf¿§/Aø&v1oýOA¨:¢¾/AlBƒ‘pýOAV¯¾/AàrqýOAˆzF^/AÈKÑsýOAh¨ÖÞ`/A€RquýOA¨C,¾¡/Að[ñvýOAÀˆ¾»/AìFH1rýOAÀˆÞé/AàrÑrýOAàÌm@/A\bUpýOAàÌm^\/Aô6_qjýOA81©]Œ/A°´|fýOA8:3½Ë/AÔmyqdýOAX]×/AàraýOA¨L¶]/A4¹A‘`ýOAX/A4¹AÑ^ýOA±ñ\ß/A¤ÔNq^ýOAXú޽^/A\bUq\ýOAŒZÝê/Að[‘ZýOA°U@Ý@/AÐ}bÑVýOAèç Ýž/A¬Äe1SýOA±ñ\Ø/Aô6_‘QýOAèð•¼3/Aø&vñPýOAxÕˆ\·/A8©XñOýOA˜§ø»>/AÔmyñGýOA˜§ø»w/A\bU17ýOA $ɯæ/AT‹±À)ýOAÐ0:Ï/AE‘'ýOAÐ9Ä»£/A€R±#ýOAX £\/A@™oqýOAxÕˆ\p /AÔmy‘ûüOA@LG|î /A8©XÑèüOAðª»k /AÈK1ÙüOA`'A»Ê /AXr>qÂüOA(•u[[ /AìFH‘®üOAرÏ?Ó /AXPAò˜üOA¸pÞ»F /AìFHñƒüOA˜°‚»ì /A€RñqüOA@UÑ[u /Aàrq]üOAø¾ºñ/Aô6_‘AüOAH^[»m/AdRlq/üOA¸yhø/Aˆ iñüOA0žÿ‚/AÐ}bqüOA0žÿZå/Aø&vñüOA`'AÛ1/A@™oñòûOA€ù°Ú®/AEÑåûOAh0ËÚ/AXr>ñÕûOA0žÿºš/A|+;±ÀûOAøHZ#/A|+;1­ûOAh9Uº´/A@™oÑ›ûOA€ù°K/AÐ}b‘ˆûOAØTbZÔ/A€RñqûOAø&ÒX/A8©XÑXûOAPpoâ/A@™oqFûOAøHºf/A4¹AQ2ûOAPyù¹Ú/Aœä7ñûOA¨Ôª¹/AXr>‘ùúOAø&Ò¹Tÿ.Aø&vñàúOAùAY¸þ.AÈKQÐúOAÀy$þ.Að[Q¼úOAP‚ƒÙ}ý.AìFH«úOAP‚ƒYáü.Aô6_qšúOAȦyRü.Aàr±‹úOAÙ¸7û.AX§r>qrúOAÙXú.A€R±cúOA&céù.A@™o‘]úOA ÌØWù.A4¹A±WúOA8˱¸ÿø.Aœä71VúOAȯ¤Ø‘ø.AdRlñRúOAàoy(ø.Aœä71FúOAȯ¤ØØ÷.Aˆ iñ;úOA9渓÷.AÐ}b±/úOABp¸V÷.AìFH1"úOAX”—x÷.Aø&vQúOA&c·ö.A@™o‘ úOA°æ¾‘ö.AÐ}bQ úOAKú·Rö.Aˆ iÑúOAª’¤+ö.AL,äúOA VØö.AìFH‘þùOA@ÝÅ··õ.AÐ}bÑöùOAÐÁ¸·Tõ.A¤ÔN1ðùOAðù2õ.AÔþ÷üêùOAÐÁ¸·õ.AdRl‘æùOA˜/í·¶ô.A|+;ÖùOAxfXkô.Aœä7±ÉùOAèØ#ô.AìFH‘¾ùOAи.Üó.A|+;Q´ùOAè¸|ó.A€R1§ùOA˜/í·6ó.AÈK¢ùOAè$ó.Aœä7Ñ ùOA`¯5·Âò.Aô6_1œùOAxfXrò.Aˆ iñ›ùOAxf¸ò.A@™o‘ùOAKú·Äñ.AE±žùOAT„wrñ.AäV1Q–ùOA€x·ñ.Aˆ iqˆùOAÐÊBÔð.AìFH1‚ùOAT„·‡ð.AÐ}bñ}ùOAÐÁ¸×ûï.AÈK1yùOAHïÙlï.AÀ4QmùOA˜A·àî.AÐ}b‘hùOA˜A·gî.AìFH[ùOA(jî.A8©X1NùOA J‹vÜí.Að[1EùOA˜Aלí.AìFH1BùOA€¥VQí.A@™oqFùOA0/~¶í.AäV1±;ùOA¸qVÄì.A¬Äe‘/ùOAHøcÖ‹ì.A@™o1(ùOA J‹¶#ì.A@™oq&ùOAÀ.u±ë.A˜"õ(ùOAHøc!ë.Aô6_Q#ùOAo"Ö›ê.A8©X1ùOAØåàµDê.AìFH1ùOA0/~Òé.Aˆ iQùOAf˜VŠé.AE‘÷øOA SÖ?é.AÈKQðøOAø®ÆÞè.Aˆ iÑôøOA \Ÿ‘è.A¬Äe‘ïøOAhÁI7è.AìFH‘ÞøOAo"êç.A¤ÔN1ÐøOA€Š/Æç.A.1ÈøOA \ŸU-ç.A4¹A‘°øOAˆœCÕ¯æ.Aˆ iñ›øOAÀ%…µ*æ.Aœä71†øOAo"êå.A\bUpøOAÀû²å.AÐ}b‘XøOAPîUk¨å.A.ÑBøOAP xå.A8©XÑ(øOAP xµÜä.A4¹AQøOAÀ.ªä.AÀ4Qý÷OAP xµcä.A¤ÔN‘å÷OAx¬Uôã.A.1Ø÷OAà÷ôTŽã.Að[Î÷OAP xµ#ã.A4¹AÑÎ÷OA¨e)Æâ.AÐ}bQÊ÷OAÀ.\â.A4¹A‘À÷OAÀ.Uêá.AìFH±µ÷OAÁÚT–á.AÀ4Q­÷OA8S¦Ôá.AÈKq§÷OAŠÀT³à.A¬Äeœ÷OAÊdKà.AXr>q’÷OAÊd´Çß.AäV11÷OAXŒ´†ß.Aô6_‘q÷OA8\0Ôß.A8©X1^÷OAŠÀÞÞ.Að[1U÷OAÈ7™T´Þ.Aœä7O÷OA8(>¢Þ.Aœl,%M÷OApåq´#Þ.AÐ}b±?÷OAxîûsØÝ.Aô6_q:÷OA8Ûš0‰Ý.AÊ´7÷OA \ŸQÝ.AX{ÈÈK÷OA6)Ý.A¨ÝØhr÷OAàîj•àÜ.A|4ÅÈ”÷OA@eº3LÜ.AL›š ¯÷OAÈ@#ÔLÜ.A(âàÔ÷OAÜxÓmÜ.A4ÂËé÷OApåqÔÃÜ.AT‹±€û÷OAà4Ý.A” ”€ øOAà”XÝ.AX{ÈøOAX. ó¡Ý.AT‹±@øOAè ÔÔÝ.AÜ *øOAÊdÔîÝ.AĦ¾ ;øOAÈ7™”ÂÝ.AÜ ZøOA°€ÇÓrÝ.A íÁ€wøOA®Wt2Ý.A¸Æ‡øOAX. sðÜ.Aè_»øOAX%Ô°Ü.A)¡ ªøOAÈ@#”pÜ.AX{È ¹øOA@eºÓ$Ü.A ¸ÆøOA°€ÇÓëÛ.Aào¤ ÑøOA·áó|Û.A0Ò´€âøOAÈI­ÓúÚ.A” ”þøOAÈI­“zÚ.A¼¶§ ùOAèóÚ.Aào¤À$ùOAÈI­“zÙ.A4ÂË@7ùOA`7*3%Ù.A9ŠàAùOAx3­Ø.A” ”NùOA@nD3OØ.A” ” UùOA  ™Ã§×.AÌŸ_€fùOA¸5nÍ×.Aào¤ÀdùOAÈI­“¬Ö.Aào¤€fùOA€ šÒ3Ö.A¸ÆgùOA`@´2èÕ.A|4Å{ùOA@nD“„Õ.A|4Å€ŽùOA(·rÒ4Õ.ApT—@£ùOA˜ÒòðÔ.A(â`ÁùOA˜ÒÒ×Ô.AX{È€ÕùOA¸›e2•Ô.A” ” õùOA`7*slÔ.AÜ úOAØdK29Ô.A(â`!úOA(©·ròÔ.A|4Å 5úOA˜ÉõræÓ.A¼¶§àRúOA`@´r¨Ó.AÜpúOA XÚå”Ó.A´,ˆ xúOA`I>ÒYÓ.A íÁ`úOA@wÎÒÓ.Aœýªà©úOAH€XrÕÒ.A¼¶§€½úOA`I>’‹Ò.AĦ¾ÔúOA€$òVÒ.A0Ò´@äúOA¸›eÒÒ.ApT—`úúOAîŒr÷Ñ.A¸ÆûOA`Y'jðÑ.Ad0oòûOA`I>òÎÑ.AT‹±?ûOA(®èò­Ñ.A0Ò´ YûOA(ÀüqtÑ.Aào¤`ûOAð$§ò=Ñ.A)¡ –ûOA¸’ÛÒñÐ.A ¸¦ûOAîŒÒ^Ð.A¸Æ@µûOA¸¤ïñ Ð.Aào¤€ÆûOAØdKrÇÏ.AĦ¾€ÐûOA¸¤ïñÏ.A$ò†@çûOAð-1’vÏ.AÜüOA€ š2iÏ.A|4Åà#üOA¸¤ïÑ[Ï.AĦ¾`9üOAð-12Ï.A)¡SüOA Û rÐÏ.AxD®xüOA€ šò(Ð.A)¡ –üOAØÓÌBÐ.AÜ;“ªŸüOA Û ’pÐ.A íÁ`°üOA€ šÒ³Ð.Aào¤ ÍüOA€$2åÐ.A¸ÆçüOA€$’!Ñ.AÜ ýOA Û ÒEÑ.AxD®`-ýOAȧfÑ.A)¡ JýOAÐTkhÑ.AØT ^ýOA÷ÒhÑ.AĦ¾@býOAÐ[Áò`Ñ.Aè_»À~ýOA@wÎrRÑ.A íÁ ’ýOA˜ÉõÒMÑ.A¼¶§àÂýOA÷ÒZÑ.A¸Æ@åýOA÷ÒaÑ.A ¸ þOA€ šòhÑ.A¸Æ`,þOA¸›eÒfÑ.AT‹±€KþOAð-1rÑ.AĦ¾@bþOAØdKÒîÑ.AĦ¾à|þOA(·r28Ò.Aào¤ ‘þOA`I>2¤Ò.AÜ ºþOAð$§’úÒ.AÜ ÊþOA(®è2nÓ.A ¸ÖþOAèÓÚÓ.AÜ@ÞþOA`7*Ó!Ô.A” ”`ãþOA`7*“aÔ.Aè_»íþOAð$§ÒÔ.AT‹±`ÿOAè“s©Ô.A4ÂË`ÿOA@nD“ÄÔ.AxD®8ÿOAð$§ÒÖÔ.A íÁ`PÿOA`@´ÒäÔ.AxD®@fÿOA°‰QÓîÔ.AxD®xÿOAð$§òöÔ.AL›šÀ†ÿOA(®èrƒÕ.A4ÂË@·ÿOAÐ[Á2}Õ.AxD®@ÆÿOAÐR7órÕ.AÜ ×ÿOAx÷…ÓIÕ.A(â óÿOA˜ÉõÒÕ.A€E€ªPAX. s÷Ô.AiZ@ PAxÓ¾Ô.A‚”P PA˜Éõ’Ô.A>šb@PAå“TÔ.A¦MM@PAÜxsñÓ.A‚”P€!PAÐ[Ár½Ó.AñN %PAÐR7ÓKÓ.A8ªK'PA@wÎÒÇÒ.AÎ~U`)PAÀ>ø,VÒ.Aàß+PAp2öÁëÑ.Aî¿F 'PAh–ŸÃÑ.A¶¥†ð"PA éXÁ¯Ñ.A† \PA(·rÒÂÑ.A€E` PA¸›eÒíÑ.Aî¿FPA@nDsÒ.Aî¿FàPA`7*Ó!Ò.Aào¤ ñÿOA€ šòÒ.A¼¶§€ÝÿOA€ šòÒ.AĦ¾àÌÿOAð$§2þÑ.A” ”À¸ÿOA`I>ÒçÑ.Aœýªà©ÿOAès—Ñ.A0Ò´`{ÿOA÷2^Ñ.AxD®@fÿOA÷òÑ.A íÁ€WÿOAØdK2²Ð.AX{ÈàJÿOA÷2^Ð.AX{ÈBÿOAH€XÒ Ð.A ¸ =ÿOAîŒ2¢Ï.AxD®8ÿOA@wÎ2RÏ.Aè_»ÿOA˜ÒrÏ.A(â ÿOA@»ÈÀÈÎ.A)¡@ÿOA€®1hÎ.Aào¤ ÿOAЖ1ÁðÍ.A$ò†ÀÿOA`„®À‰Í.A)¡ ÿOAð-1rÍ.AT‹± ÿOAfïÌ.A$ò† üþOA¸¤ï‘†Ì.A$ò†@çþOAh[Rq*Ì.AL›šÀÖþOA Û òìË.AT‹± ÂþOA`I>2Ë.A ¸À§þOA0Ɇ1iË.A)¡`˜þOA +1Ë.A íÁÀ…þOA¡1šÊ.A(â`þOA(Àü‘ÛÉ.ApT—ÀoþOAP›öpBÉ.AÜÀaþOAP›öзÈ.A(â`QþOAhdÜÈ.A0Ò´€BþOAh[RÑXÇ.A|4ÅÀ<þOAàép´Æ.Aè_»-þOAøHÏðÆ.A9Š #þOApmfpMÅ.AT‹± þOAhdÜ0ÊÄ.A9Š€ þOAH<^Ä0Ä.A íÁ€þOA0ÒѯÃ.AL›š€þOAàé"Ã.A” ”ÀþOAàé›Â.AÜ *þOApmfÐÂ.AT‹± BþOARYmÁ.AĦ¾ [þOAàˆsÐåÀ.AÜ wþOAˆ6LðTÀ.A¼¶§€þOAP¤€0ð¿.A¸Æ·þOAرϿ–¿.ApT— ÈþOA˜|qEi¿.A2+ˆÓþOAX¶”ï ¿.A(âàäþOAX¶”Ϲ¾.A0«Ò´à÷þOA $Éïm¾.A0Ò´@ÿOAغY¿¾.A0Ò´` ÿOAV¯^¾½.A)¡€ÿOA@ö8ÏQ½.ApT—ÀÿOA $ÉÏÿ¼.AxD®` ÿOApvð°¼.ApT— ÿOA -SÏI¼.A)¡ÿOAX¶”/ï».AT‹±€ûþOA -S/».Aào¤ ñþOAm÷Ž!».A¸Æ îþOA8í®o™º.ApT—`êþOA(ÙoÉñ¹.A Ï çþOA°Fox¹.A(â@êþOA@ÿÂnѸ.A íÁ òþOA -SÏI¸.ApT—þþOA€çœ[(¸.A éüÿOA 6Ýn·.A)¡`ÿOAªx·.AH’ÿOAÐãµ.5·.Aào¤@ÿOAx‘Ž.ý¶.A ¸àÿOA°FϦ¶.A íÁ€'ÿOA@ö8oc¶.AT‹±€+ÿOA`Ñ2ŽØµ.A)¡`8ÿOA˜Qê.‚µ.AD«ƒBÿOAÐì?n8µ.AxD®àPÿOA@ÿÂÎ µ.AT‹±ÀYÿOA@MÎ×´.A íÁ€gÿOA°Ðn¦´.Ahd€ÀlÿOA講ÎG´.A¸Æ@uÿOA`Ñ2.ã³.AL›š |ÿOA@M.³.A0Ò´€‚ÿOAvî³.A0Ò´ÀÿOA˜ZtnÓ².Aè_»ÿOAÐì?Îm².A9йÿOA˜cþíù±.A¸Æ@ÅÿOAÐì?ŽŸ±.AxD®@ÆÿOA îN±.A¸ÆÇÿOA`ü¹Ä›°.A¼J;ÌÿOA`Ñ2.c°.AD¢ùÈÏÿOAvn/°.Ah[ö×ÿOA(?g.ð¯.A`k߈àÿOA 6Ýη¯.Aô?é(éÿOA€š.2¯.A4ÂˈôÿOA(?gnÌ®.AfËjDPAvnh®.AŒürDPAÐì?n®.AáeD PA¸,äÌ­.A¬=d PA˜cþ„­.Aáe„PA¸#Znb­.A°µoDPAŠ c­.A˜ ›úPAÐì?Žf­.AÔnlä#PA(?gn~­.AhCv„,PAv.“­.ABn„6PA講n ­.AÐö`ÄGPA€£¢Íª­.AbS_äVPA€£¢ª­.AŒürDgPA`Ñ2ŽŠ­.AŒürd~PA`Ñ2nj­.AhCvdPA講ÎN­.A°µoD˜PA lˆí5­.AbS_žPA î­.ABndŸPAèç ÝŬ.A®g½žPAˆ•mn¬.AúŸtÄ¢PA˜Ztî6¬¬.AhCv„¤PA¸5nÍÏ«.AÖæwD¦PA¸5ní„«.ABnd§PA¸5nÍ«.AÐö`„©PAØþS-¢ª.At~¤©PAð¾¯mJª.Aáed¡PA(Hñ-ó©.A"Ñ|$žPAØþS-¢©.Aø'i„ŸPA¸,ä-W©.AŠ„gä¤PAÀ>øì©.AŒürd®PA€£¢ê¨.A>šb$´PA`ڼ͔¨.A"Ñ|·PA0Z-]¨.A´-{DµPAØÞŒ¨.AÖæwD¶PAøÇ9-¸§.A¬=däµPAhìÐìz§.A>šb$´PAøÇ9Í;§.A¬=däµPAøÐÃÌ÷¦.A´-{d¼PA lˆíµ¦.AŠ„g$ÃPAøÇ9{¦.AÖæwÈPA‘-¦.At~„ÒPA lˆmÒ¥.AÐö`Ä×PAØÞlz¥.AúŸtÄÚPAؘ\èQ¥.Aø'ipÜPA‘íF¥.AŠ„gäÜPAHa3¥.AÐö`ÄßPAš©, ¥.Aø'iÄåPAøÐÃÌ÷¤.AŒürdîPAHaì¤.AhCv„ôPAhìÐ,Ф.AŠ„gäüPAP,u,¶¤.A°µoDPAHaͺ¤.A>šbDPA¸5nÍ–¤.AFŠyÄPAÀ>øì9¤.AÔnlPA€¬,æ£.AYq¤$PAÀ>øÌÒ£.AÖæw$/PAP,u̹£.A°µo$9PAÀ>øìG£.AÐö`Ä/PAˆ¾@ì £.AúŸt1PAøÐÃ쬢.Aø'i„7PA¨‡&,1¢.AŒürd>PA0lÌØ¡.A>šbdBPAøÙM,©¡.Aô¯]DDPAH#ëŒv¡.AŠ„gäLPAÀG‚l`¡.A¬=dUPAÀ>ølV¡.AÔnlÄ\PAøÙM,)¡.AŒürdfPAP5ÿ+ò .AYqÄkPAˆµ¶Ì° .Aø'iÄuPAP5ÿky .AÔnlä{PAøÐÃlP .At~¤PAP,uÌ9 .AfËj$ŠPAP,uŒ+ .A>šbd’PAš©,J .AfËjd PApþä‹o .AÖæwD®PAH#ëlˆ .Aáe„¸PAhìÐ,‰ .AŒürdÆPAhõZ,… .At~¤ÑPA ~œl| .ABndßPAP5ÿk‡ .AfËjDéPAhõZl“ .At~ÄøPA£3ì~ .AhCvdPAP5ÿ‹` .AÐö`„PAhõZì= .AbS_PA0­cŒ .AbS_.PAøÐÃ,ôŸ.AÐö`Ä7PApþä+ .Aô¯]DDPA¨‡&l8 .A>šb$LPAP,u,h .A´-{dTPAàò+– .A´-{D]PAˆ¾@ŒÐ .Aáe„hPAÀ>øÌ¡.AfËjdpPAhìÐÌS¡.AÖæw$wPA0cŒŽ¡.ABn¤}PA£3ÌС.AbS_†PAàhÌ$¢.Ade¢‘PA0ZÍ.¢.AÔnl“PAH#ëlO¢.At~¤™PA0ZÍg¢.AFŠyä PAH#ëì¢.AŠ„gä¬PAÀ>øÌË¢.AŒür„µPAH#ë,£.A¬=dľPA uí*£.ABndÇPA€¬,m£.AŠ„g$ÓPAøÇ9Í£.AŠ„gäÜPAhìÐÌÚ£.AÐö`ÄßPAP,uÌù£.AhCv¤ãPA u5¤.AfËjdèPAÀ>ø,–¤.A°µoDðPA u-ù¤.AFŠy¤úPAˆµ¶,¥.AbS_äþPA¸5n-Œ¥.ABn¤ PAð¾¯mÑ¥.AÔnläPA‘m¦.Aáe„PAØÞ,l¦.AYqÄPAˆ•Íã¦.AfËjD!PAhãFí~§.Aþ€D,PAHaº§.A°µo2PAØþSÍì§.AFŠyÄ9PA@ÝÅW4¨.Aþ¨þ<PA¸5n-S¨.Aø'iÄ=PA lˆm’¨.AŠ„g<PAˆ•©.AÔnl;PAHaÍ©.AYqÄ;PA˜cþíò©.A>šbd:PA˜cþvª.AFŠyä8PAˆ•-«.AÖæw$?PA lˆ-D«.Aþ€dCPA¸#ZîL«.AFŠyÄIPA˜Ztî/«.AŒürDWPA˜Ztî/«.AbS_ä^PA`Ú¼-X«.AbS_äfPA¸,ä-ž«.A´-{„kPA˜cþ-ú«.A°µoDpPAx‘Ž.}¬.AhCv¤sPA`Ȩέ.ABn¤}PA@Mîw­.A>šb$„PA¸#ZŽž­.AúŸtÄŠPA`Ñ2îÍ­.Aþ€D”PA°Ðî—®.Aø'i¤žPA講nà®.At~„¢PAx‘ŽÎù®.Aø'i„§PA°Ðî ¯.Al»ä®PA°Ðn&¯.Aø'i¤¶PA 6ÝÎw¯.A´-{d¼PA¸#ZÎå¯.AÐö`„ÁPAvn/°.AŠ„g$ÃPA°Ðî°.AYq¤Ä®PA -Sí°.AYq¤ÄPAm÷ŽZ±.AYqÄÃPA@ÿÂnر.AFŠyÄÁPAX¿oy².A´-{DÅPAÈÚ+/³.AŠ„gäÌPAÈÚ+o‡³.A´-{„ÓPAà‘ýO÷³.A0­åØPAdmå³.AhCv¤ëPAè£/Ö³.Aáed PA8í®Ç³.AfËj$PAxˆoϳ.AÖæwD&PAxˆï³.A¬=dä5PA蚇´.At~¤APAH`´.AŠ„g$SPAÈÑ¡ù³.AFŠyä`PAH`ÏÞ³.Aø'iÄmPA蚇ïij.AFŠyäxPA -So³.A>šbDƒPA蚇/Z³.Aþ€$PA°Ð.&³.Aþ€D”PAè£ïù².A>šb$œPAxˆ/º².AÖæwD¦PAxˆÏ„².Al»¤°PAÈÑ¡/}².Aþ€d»PAè£.AFŠyÄÁPA -So†².At~ÄÈPAm÷.l².AFŠyäÐPAm÷.².AYqÄÛPAH`o©±.AhCv¤ãPAvnv±.AúŸtéPAvn/±.AáeDòPA@ö8/±.AúŸtäùPA`Y'ª÷°.AÞEÿPAx‘ŽŽä°.ABn„PAÈÚ+Ïʰ.AáedPAxˆï²°.Al»¤PA`Ȩnn°.A°µo$!PA°ÐÎ)°.Aáed)PA˜Qêîó¯.A°µoD0PA@MÎׯ.A>šb$<PAxˆ/º¯.AŒürdFPAX¿/¤¯.A°µoRPAxˆï¯.Aþ€^PA@ö8ÏŸ¯.A>šbdjPA`È¨ŽŽ¯.AŒür$xPAÐãµn|¯.Aþ€D„PAÐãµn<¯.A"Ñ|PAÐãµ..¯.A"Ñ|—PA@Mî>¯.AhCvd¥PA@ö8Q¯.AÔnlä³PA@ö8oU¯.Al»ÄÇPAÈÚ+Ï<¯.A´-{dÔPA˜Qêί.ABn¤ÝPA講î¯.AÔnlÄìPAÈÚ+ç®.AŠ„gäüPA講îî®.AFŠyÄ PA`ȨÎñ®.AfËjdPA°Ð.ß®.AúŸtPAÐì?.¸®.ABn„&PA¸#Z.”®.AfËjD9PA(?gn…®.ABn„FPAvΤ®.AÔnläSPA@MnÔ®.Aáe„`PA˜Ztná®.Aø¯'i¤fPA˜Qêî¯.AŒür„uPA -Sï"¯.AŠ„g$ƒPA -So”¯.Aþ€$•PA -Sí¯.Aáe¤ŸPAè£D°.A"Ñ|$®PAdmow°.AFŠyä¸PA講Ε°.A>šb$ÄPAÐãµî¦°.ABn¤ÍPAÐãµnð.AYq¤ÜPA Ìøæ°.A\ôÆÃíPA $Éc±.AЇ߷âPApvðoɱ.A°Fî7ÛPA蚇%².Aô@ÜwÕPA¨¼o¼².AhÔô÷ÓPA8í®Ï\³.A²¾ù·ÜPA?Ö/ß³.AhÔô×äPA[ãoB´.AˆæwóPA[ã/¦´.AˆæWPA8ä$ÐÙ´.AhÔô×PA8í®¯.µ.Aˆæw3PApvðoµ.Aô@Ü—DPApmfpM¶.AB£ì—HPAøHÏ·.Aú0óWIPAˆ6L0£·.AB£ì—HPA¨ÿ1K¸.Af\éwRPAÈÈ¡¸.Aö¸ç÷fPAÀ¶q¹.AÔÿêmPApmf°©¹.A¬Îâ÷oPApmfpTº.A>+áwlPAàˆsp0».AŒñ·fPA í±Ö».Aö¸ç×gPAh[R±q¼.AŒñ—oPAH’l±"½.Aú0ó{PA í1³½.A¬Îâ‡PAø?E±U¾.Aý·‹PA +ï¾.AB£ì׆PAH’l1†¿.Aú0ó7zPAH‰âÀ.Aþ¨þ—lPA÷r¬À.Arä·aPAØmÕ±JÁ.Aö¸ç÷VPAH‰â±ØÁ.Aþ¨þ—TPAhRÈ«Â.AÔÿê÷UPAH‰âcÃ.Aý·[PAøHÏІÃ.AØUù@[PAð-1rÖÃ.Aú0ó7ZPA˜Òr Ä.AÔÿêMPA€ š2÷Ã.A²¾ù—=PAð$§åÃ.AbäÝW.PAîŒréÃ.AЇß×!PAîŒ4Ä.Aêï×PA˜Ò˜Ä.A"bûWPAhRÈqîÄ.AB£ì·÷PA˜Ò&Å.Aþ¨þwåPA Û rPÅ.AЇß×ÙPAÐ[Ár}Å.Aþ¨þ—ÄPAòQb†Å.AìA:·PA`@´ÒÅ.AB£ì—¨PAÐ[Á²™Å.Aú0óW¡PA(·r²ÆÅ.AÖwöWPA@wÎÒÆ.AB£ì׆PA÷iÆ.AhÔô·uPA€ šrÇ.AŒñ·nPAð$§òvÇ.Aæ‚«¦lPA€ šr̰Ç.Aú0ókPAÐR7LÈ.Aú0óWiPA`@´²ýÈ.AB£ì·gPA@nDáÉ.A>+á—cPAx÷…˜Ê.A¬Îâ÷WPAð$§rË.A²¾ù·LPAè3WÌ.Af\éwBPA·ás'Í.AÖwöW@PA·ás Í.AŒñ—?PAX%t4Î.Aþ¨þw=PA°€Çs½Î.Aêï÷4PAX. ³LÏ.AÖwöW0PAX. ûÏ.A°Fîw)PA®W4]Ð.AÔÿê÷%PAÈI­ÞÐ.AÔÿê÷PA “JtOÑ.Aþ¨þ—PA¨w=4¥Ñ.Aú0ó7 PAÓîsüÑ.A>+áWýPAxîû\Ò.A"bûWïPAà´¸Ò.Aö¸ç÷æPA®W6Ó.AÔÿê÷åPA¨w=tºÓ.ADøêPAàuÔ.Aú0óëPAà´øÔ.A"bûéPAŠÀ¬Õ.Aþ¨þ—äPA¨e)54Ö.Af\é—áPAà4œÖ.Aú0óÓPAÈ7™´éÖ.Aþ¨þwÅPApåqY×.A¬Îâ÷·PAø·P5×.A"bû7¨PAŠÀ4“×.AhÔôלPAˆœC¾×.Aêï”PAà4Ø.AЇ߷ŠPA8JÕpØ.A²¾ù·„PA8S¦t°Ø.A¬Îâ7~PA6éØ.A²¾ù—}PAÀ.Õ[Ù.A"bû‰PAÁÚ4¯Ù.AhÔô—–PAˆœCÕïÙ.AÔÿê÷¥PAˆœCµÚ.AŒñ—ÇPAPÚ.Af\éwÚPAã׫Ú.AàßÈÜPAø®ÆµÚ.AhÔô×ìPApÓ](Ú.Aö¸ç×÷PAÀ%….Ú.AB£ì·PAx¬5 Ú.AlL PA0A’µFÚ.Aþ¨þw5PAÀ%…nÚ.AÖwö—FPAPu¼Ú.Aþ¨þWVPA€4!IÂÚ.A¨šÑ¥XPAˆ“¹ÕìÚ.A°FîwiPA \ŸÕûÚ.AÖwöwwPApÓ]èÚ.Aú0ó7’PAø·PÓÚ.AŒñ—§PA \ŸÕÂÚ.A¬Îâ·PApÓ]µ¹Ú.A"bûÉPAPµ˜Ú.A²¾ùwÖPAˆœC~Ú.AB£ì׿PAPµ‘Ú.AB£ì·ïPAPµŸÚ.Aý·ûPAØåàu}Ú.Aö¸ç÷PAàîju2Ú.AÔÿê7PAˆ“¹ÕìÙ.Aý÷)PA65‰Ù.A>+á—;PAà±îjµGÙ.Aêï×MPAø·PÕ Ù.A>+áw\PAà÷ô4àØ.ADø÷jPA0A’µÆØ.Aþ¨þwuPAx¬u¢Ø.A>+áW…PAÁÚˆØ.AÖwö7™PAÀ.ÕTØ.Arä—¢PAÀ.Ø.AlL8¯PA¥ÍÔØ.A>+á—»PA8J1Ø.AhÔô×ÌPA¥ÍÔ+Ø.AB£ì×ÖPAˆœC5ì×.AÔÿêåPAŠÀ4“×.AhÔô·õPAÀ%…uc×.A>+áwPAø·PµO×.Aú0óPAPu×.A¬Îâ76PA8S¦Ô¬Ö.Af\é—QPAP x‹Ö.A>+áwdPAà4UÖ.Aú0ósPA¨n³4)Ö.Aö¸ç†PA8S¦t÷Õ.A²¾ù·”PA¨e)Õ¾Õ.AЇß÷¨PAŠÀ¥Õ.Aý·³PApåq´jÕ.A>+á—ÃPAÈ7™t"Õ.A"bûWÏPApåq4ÇÔ.AŒñwØPApÜç´uÔ.Arä—âPAÈÑ¡]Ô.A¾Q£RåPAÀ.*Ô.ADø÷êPAPµXÓ.Arä×ðPA8\0´Ó.Arä·ùPA¨n³4·Ò.Arä· PAàuÒ.AÖwö7 PA¨n³t>Ò.Af\é— PAÈ7™tÒ.AÖwö7 PAÊdtÀÑ.AŒñ—' PAÊd’Ñ.A>+á—3 PA¥Í´vÑ.A¬Îâ7> PA8S¦4›Ñ.Arä×P PAX%t´Ñ.Aö¸ç^ PAÊdtùÑ.AŒñwp PAÈ7™4?Ò.A"bû PA8\0Ô¡Ò.A²¾ù·Œ PA¨n³Ô³Ò.A>+áwœ PAà÷ô4™Ò.AÔÿê­ PAàfvYyÒ.A€‹Æ”¿ PA°‰QóÓ.AªÅXÀÍ PAxîûó»Ó.AiZ@á PAè“ó>Ô.A† \àó PAx÷…ó°Ô.A‚”P  PA°€Çs/Õ.AñN@$ PAÈI­s“Õ.A^ÛS= PA8S¦4âÕ.A\cH€S PAè ôÖ.A\cHÀi PA°€ÇsvÖ.A† \à{ PA¥Íô×.AÐö`À‹ PA¥ÍôÄ×.Aî¿Fà˜ PA®WÔ`Ø.A^ÛSÀ¦ PApåqô¿Ø.A‚”P À PAXŒô"Ù.AiZ€Ï PA¨e)ÕwÙ.A<"W@â PA8S¦”ÞÙ.A^ÛSõ PAÁÚÔ9Ú.Að7R@ PAˆœCu,Û.AÎ~U ² PAP xu•Û.Aô¯]€. PA8Ju;Ü.AbS_@@ PAø·PÕ¶Ü.AñNN PAPu<Ý.AñN@\ PAȧÁ‡Ý.Aì%>b PA°^Êœ¦Ý.A˜ ›Nk PA°ÍKAÁÝ.A «)£n PA€Î)¤êÝ.AVÀµ=r PA “J4ùÝ.A„PVöw PAÞ£Ú Þ.AŽI÷I PAÐÁ¸wFÞ.AÊ—Èó‚ PA@‡·j~Þ.A¦¼ÎH„ PA sa¦Þ.Aâ  ò‡ PAøÙM¬ÓÞ.AœT¬œŠ PA˜ ÜÞ.AR#«‹ PA¸Ná¤óÞ.A4þ›Ž PA8\0”;ß.AN6–š“ PA·áÓ˜ß.A¢÷>Cœ PAV¯Æß.A€E˜ PAìakëß.AÞEíŸ PA8JUKà.APОA£ PA°¢Äê¥à.A «ë¥ PA¸›e2µà.A¢<¦ PA¸q–á.AªÅXÀ­ PAÀû5Òá.A\cH º PAf˜6\â.AÐö`Àà PAÀûÕã.A† \ Ò PAÀúý~8ã.AÖwöçÓ PA¸qÖ ã.AiZ@Ù PAðœ²ö0ä.A¬=dàá PAHøcvÏä.AáeÀê PAf˜vªå.Aô¯]€ö PAhÁIöAæ.AÊJ@ý PA(&ôö.ç.AiZ@ PAV¯þ¼ç.Av§ PA€V`è.AàßL PAè“jè.AØ¢}r PA¸Wkè.AÜ« PA8ä$Ð é.A´œüÀ PA@ÝÅ×^é.A† \ PAxo‘7²é.A‚”P€ PAðŠžwãé.A‚”Pà PAð“(wê.A8ªKà PA°øÒ÷Zê.A8ªKÀ( PAðŠžwªê.A\cH 2 PAxo‘wë.AbS_ 9 PA¸]—aë.A^ÛSà= PAèΘeÏë.A‚”PÀ? PA[ãbì.A2º4@B PA µGËÁì.A"Ñ|@A PAи.˜8í.Aáe€D PA`¦«÷[í.A<"W@J PAxf؇í.AáeÀR PAX!ظí.AªÅXà\ PA°ïH˜î.AñN@d PAX!8®î.Aáe€l PA@Ô;ø ï.AñNn PA&cxlï.A^ÛSÀn PA@Ô;Øéï.AÎ~U€p PAÈü(&vð.AÎ~U`q PAøÇ9-øð.AªV×v PAj]fQñ.Aî¿Fàp PApTóø¶ñ.AfËj j PAÐÁ¸wò.Aγ~U`i PAXØ‘æ–ò.A\cHÀi PA@Ô;øÐò.AÊJ f PABpØ=ó.AñN^ PA8˱x£ó.AbS_@X PApTóøô.AñNV PAp¡w†iô.AÊJ V PAˆÇÊ+×ô.A8€W PAaÓ&Gõ.AªÅXàT PA¨Ý49µõ.A<"W@R PAàfv9ö.AªÅXÀM PAx]}8Èö.A¦MM`K PA輄ÆL÷.A42@ÀK PAxÕˆª÷.AP®¡¾G PAÕÛø.AÞÖŽ J PAûÛŒø.AÆý¿|O PAèΘe£ø.AÀ ©HW PA@eº³—ø.AÊ(Gwc PAx" j|ø.A@Åé²m PA8(žtø.AÜ<†áy PApåqTYø.A@çæ™„ PApåqTYø.A”¨âŒ PApåqTYø.A ªº1” PAV¯Þgø.AZÉ?1™ PA OPeø.Að{LF¤ PAˆ¾@ìhø.A˜þ×´ PA0냈Qø.A\AK-» PAµðAø.AFh|‰À PAm÷®ø.AÚïPÊ PAð¾¯-ì÷.AÊJÒ PAhÊÓ•Ü÷.A"¯}Õ PA¨²­‚—÷.AL÷Û PA?r÷.A ]6ˆÛ PA¨Ý4ùŸö.Aø'iÈ PA 6Ý.-ö.A$Iˆ€Ä PAȦÙÕõ.AÊJ Æ PA0\yõ.A† \àË PAàfv9,õ.Aáe Ó PAP‚ƒÙËô.A¦MM`Û PA Ìø~ô.AfËj€ã PA8˱8#ô.A^ÛSàí PAùAÙÍó.A‚”PÀ÷ PA°æ¾x†ó.AbS_  PA Û ’0ó.Aý¿ PAH¢UiËò.A$Iˆ`ý PAx]}Ø’ò.AñNþ PA°æ¾øbò.Aø'ià PA°ïHø—ò.AŠ„g  PA9æ8ðò.AÎ~U  PA8Â'yüò.A¦MM€" PAO™âò.A^ÛSà- PA8Â'Ù£ò.A>šb`> PA8˱Ø_ò.AiZ@Q PA Ìx"ò.AÐö`àb PA Vøìñ.A8ªKÀp PA&cx³ñ.A‚”Pà~ PAèxŠxkñ.A^ÛSà PA VØSñ.Aô¯]À” PAX‹ Ù@ñ.AfËj š PA VØñ.A‚”PÀ§ PAè8Òð.A¦MM ¹ PAèø¼ð.A8ªKÇ PAȯ¤ØÑð.A‚”P€Ñ PAàoyöð.AÊJ`Ü PApTóxÓ´ð.A¬=dàá PAxf8„ð.A>šb@ï PAÙØ%ð.AfËj ú PAȯ¤xŽï.A<"W PA˜/í×$ï.A‚”P PAKú×¹î.AÎ~U`)PA V˜wî.A8ªKÀ8PAèx.î.Aø'iÀIPAX!8çí.AáeÀZPA à÷¨í.A<"W@jPAèxŠø€í.A>šb€uPA@ÝÅ—Pí.A>šb€…PAи.ø4í.A8ªKàPA@Ô;Ø"í.AñN@œPA àw í.AiZ`¨PAÐÁ¸—ôì.AiZ€¯PA Vx×ì.A¬=d¹PAT„wÀì.AÊJ ÆPA°øÒw·ì.A¬=d ÐPA@Ô;øÂì.AñN ÝPAX!xÃì.AÎ~U ïPAx]}ØÄì.AÎ~U€øPAKúw„ì.A^ÛSPAи.˜8ì.A8ªKPA à÷öë.A>šb€PAè8’ë.Að7R€!PA¸]÷Vë.AªÅX .PAÐÁ¸78ë.A\cH€CPA(j÷+ë.A<"W SPA¸]÷Ýê.A\cH bPAи.ø´ê.AbS_`gPA(j×}ê.AñN mPA¡…ê.AñN@tPAsç…Âé.AbS_@xPA@ÝÅ÷Œé.AbS_@xPA(sx¤sé.A¬ðßsPA(j÷dé.A¬=d pPA˜A×é.A‚”PÀ_PAЖ1¡é.A’¶{ZPA(adÅéè.A42@€UPA€xwÃè.AñNNPAð“(w¦è.A8ªKàGPAÐÁ¸wè.Að7R€APA¸ çöKè.A¬=d 8PAÐÁ¸w”ç.AÊJ`4PA¸ çöç.A¦MM 1PA€¥ö¢æ.A^ÛSà-PAf˜v#æ.A¬=d (PAðœ²ö~å.A† \#PA J‹Öå.AÐö` PA(&ôv„ä.A\cH PA J‹öøã.Að7R@ PA¸ çö’ã.A\cH PA¸ çv/ã.A\cHÀùPA€Š/ö×â.A>šb@ïPA€¥–mâ.A¦MM`ãPAØÜVöÖá.AŠ„g ×PAPîu‹á.AbS_ÒPAhÁI6Pá.A<"WÌPAx¬õÅà.A>šb@¿PA°¢Äj3à.AFŠy »PAÀûu ß.AªÅX ¾PAPîõ.Þ.A<"W@ÂPA0A’Õ&Ý.AŠ„g ÇPA€µ_¨Ÿ÷Ü.Aò„Ö¥ÇPApÓ]•DÜ.A¦MM ÉPA¨e)uIÛ.AŠ„g`ÍPAàîjÕîÙ.AÐö`àÒPA¨n³”åÙ.Aáe€ÜPA6•ÌÙ.AñNîPA¥Ít¯Ù.A>šb@ÿPAÁÚt}Ù.AŠ„g@PAàîjÕuÙ.A8ªKÀ(PA6ueÙ.AÊJ@=PA8Ju-Ù.AñN@TPApÜç”Ù.A<"WlPA8S¦t·Ø.A>šb€}PAXŒt†Ø.A<"W@šPAP xõqØ.A^ÛSà­PAŠÀÔOØ.AÊJ@ÅPAàîju2Ø.A† \ëPAàîjõØ.A¬=dPA8Juí×.A<"W PAXŒtÆ×.AÊJ`$PAàô×.A† \à;PAP•j×.AÎ~U`QPA¡å=×.Aˆæ^PApÜçt×.AñN ]PAXŒÔôÖ.A<"W\PApåqÔCÖ.AiZ`XPA¨n³ô¡Õ.AªÅXÀUPAøÕÂåÔ.AñN@TPApåq”üÓ.Að7R TPA8— âxÓ.A† \ RPA°€ÇsïÒ.AbS_@PPAÈ7™ô>Ò.Aô¯]€NPA “JôrÑ.AªÅXàLPA8\0ôÁÐ.AiZ@IPA˜ÀksêÏ.AñNFPAòQb^Ï.AªÅXàDPA œÔ“ùÎ.A^ÛSEPAXØ‘ÆaÎ.A† \CPAÈ„âæÍ.Að7R@CPA°Ð.fÍ.A42@ÀCPAfÍ.Aœv©_BPAòQ‚þÌ.AyCàAPAÉ^Ì.AhCv ?PAP,uìÙË.AæÏ/ @PA蚇/LË.Ap3 >PA¨»7â Ë.A\cH BPA¸’ÛrµÊ.A<"W@BPAˆ¾@l"Ê.AšÜ €>PA=+á—£PA(Àüq‚¸.ADø²PA(Àü1­¸.A>+áw¼PAh[R1Õ¸.A°Fî—ÈPA€$²¹.Af\é—ÙPA÷0¹.A>+á—ëPA0Ɇ±>¹.A†Ú÷ùPA¡±h¹.AhÔô· PA0ɆÑl¹.AhÔô×PA€$2s¹.Aô·@Ü·+PAÀ­y±p¹.AhÔô÷;PAØmÕq<¹.A>+á—KPA(Àü±¹.Af\éwZPAH‰â1 ¹.Aú0ókPA¡ì¸.AB£ì÷}PA¡±¨¸.A²¾ù׋PAø6»±g¸.AÔÿê•PAH’l18¸.ADø÷¢PA0Ɇ1i¸.ADø7¹PA0ɆѬ¸.AhÔô·ÍPAH€X²Ü¸.Arä—ÚPAhRȱü¸.A¬Îâ7æPA¡1¹.A°Fî7óPA÷²:¹.Aêï×PA ä“±Z¹.Arä·PAH€X²£¹.AÖwöW PA Û ²å¹.AŒñw0PA÷ÒÚ¹.A°FîwAPAø6»Ö¹.A°Fî7KPA˜Ò2 º.A>+áwTPAØdK²‡º.A²¾ù·\PA¸¤ï1».AÖwö—fPA˜Ò²©».AB£ì·oPAH‰â1<¼.A>+á—{PAð$§²á¼.Aú0ó7‚PA`I>2V½.Af\éw‚PAH€XÒ ¾.AB£ì×~PAè3о.A>+á·zPA¸›e2\¿.Aö¸ç×PA`@´2!À.A¬Îâ÷‡PA˜Ò²¢À.Aêï×PAå3_Á.ADøšPAx÷…³ÛÁ.Aú0ó›PA ¥^³•Â.A†Ú™PA°€Ç³DÃ.Arä× PA œÔ3}Ã.AЇß¨PA@eº³¶Ã.AhÔô×´PAÜx3ÜÃ.A¬Îâ7¾PAè“3 Ä.AÖwöWÈPA°€Ç³KÄ.A°Fî7ÛPA蓳wÄ.AˆæwëPA@nD3Ä.A†Ú7øPA@eº3ŒÄ.A¬Îâ7PAè 4˜Ä.Af\é—PA°€Ç3¡Ä.Aö¸ç÷PA°€Ç³ÒÄ.AbäÝw%PA8\04Å.Aö¸ç.PAxîû³_Å.AˆæW4PA°€Ç³„Å.A†Ú÷9PA·á3™Å.AЇß÷@PAx÷…³¢Å.AЇß×IPA@nD3Å.AhÔô÷[PA@nD³yÅ.AB£ì×fPA8\0´ºÅ.A²¾ù·tPAè ´-Æ.A¬Îâ÷PAÈ@#´žÆ.Aˆæw‹PA¸5n­èÆ.Ar«˜˜—PAˆà=£&Ç.AÔÿêW›PAp)lÅÇ.AðÈÐw PAPWü"aÈ.A^lÒ7¢PAκØÈ.AÌÔפPA0…Œ£²É.A†Ú÷©PA  ™#$Ê.Aô@Ü—¬PA  ™#ëÊ.AªV×·¬PAøÕ"©Ë.A^lÒ7ªPAøòÀ#cÌ.A^lÒ÷«PAÀr #vÍ.Aêï÷´PAÀi£Î.AªV×׳PA0|¤ïÎ.AB£ì÷µPA³¤™Ï.Aêï´PA0|$!Ð.AB£ì÷­PA¼¦#€Ð.A°Fîw©PAhÎ#?Ñ.Arä׸PAhDÜÑ.AªV×·ÔPA¼¦#GÒ.AB£ì׿PAØ)Û# Ó.A†Ú7àPAØ Q$ŸÓ.AÌÔ—ÎPAx÷…ÓÔ.A^N¦ÄPA¸Wk¤žÔ.AB£ì··PA0•þ×Ô.Aæñ,W°PAHEè£Õ.Af\éwªPAhD¤mÕ.A†Ú7˜PA`ü¹$•Õ.AÌÔ·…PAH3Ô$±Õ.A^lÒsPAhD$üÕ.A°FîWbPA¡%…Ö.Aö¸çVPA˜Ž…¤ˆÖ.AêïDPAhD¤æÖ.AbäÝw5PAH3Ô$8×.AúØW'PA¸Nᤢ×.AЇßPA€Î)¤Ã×.AB£ì×PAhD¤ß×.A°Fî7PAðà¬$ò×.AªV×÷òPA¸Ná$Ø.A¬ÎâçPA¡Ø.A>+áwÜPA(jî¤~Ø.A†Ú7ÐPAÐ=%çØ.A>+áwÄPA`ó/%‹Ù.A°Fî7³PA€¼%èÙ.AB£ì÷­PA(sx$eÚ.A:³Õ7©PA˜~%Û.Aö¸ç×§PA`ó/¥nÛ.A†Ú©PA(jî¤ÅÛ.Af\é· PA(jî$[Ü.AÔÿêW“PA˜~%×Ü.Aô@Ü—”PA¡eZÝ.A>+á—“PA¸Ná$ÍÝ.AÔÿêW“PA@*J¥_Þ.A¬Îâ÷PAx³‹¥ÁÞ.AЇß÷ˆPA XÚ%#ß.AˆæwƒPAsç%xß.A:³Õ‚PAxªà.Aêï÷tPA(ad%_à.A>+á—kPA°EW¥´à.A†Ú÷QPA˜|q%´à.A>+á—CPAxª&âà.AŒñw8PA˜~¥:á.Aô@Ü—4PAxª&°á.Aö¸ç÷.PA˜|q¥%â.AªV×·,PA˜|q¥¥â.Af\éw*PA°3C&Rã.A>+á—#PAj]¦ßã.AúØwPAг%dä.Aö¸ç÷PAp¡w¦×ä.A>+áW PAXá&!å.Aêï× PAj]&|å.A†Ú÷PAðO.éïå.AÁJPAþ þþ‚ªe „ÕWSáBronte AÇG„A­ç£ë§ðøYøÐÃ,ôŸ.AÊ´7÷OAdm/8b/AB£ì׿PA|iP ðO.éïå.AÁJPA`¯5w4æ.AiZ`PAxo‘÷jæ.Aø'iøPA˜Aw™æ.A‚”PÀçPA`¯5w´æ.A† \ ÚPAÐÊB÷Þæ.A^ÛSàÍPA`¦«÷Mç.AiZ@ÉPAKú÷ ç.AÎ~U€ÈPAXiâÊç.A¦¼Î„ÇPAKú÷ è.A>šb€ÅPA˜/íwoè.AÎ~U`ÁPA˜8w÷¹è.A† \ ºPAðŠž÷ÿè.AªÅX ®PA Vø3é.Að7R@£PA@ÝÅ×Wé.A¬=d™PA@Ô;xfé.A‚”PÀPABpxzé.A8ªKà‡PA@ÝÅ÷¾é.A¬=d xPAX!Øøé.AiZ@qPABp8:ê.Að7R@kPAKú—dê.AŠ„g gPAðŠžw£ê.A† \ bPA°øÒ×óê.A† \[PA˜/í—Hë.A† \ RPAX!x|ë.Að7R@KPA Vø³“ºSA@(Ào\¤A(R`¤SA`ß‘pP¤A(R ®SAÐ)pD¤A¶6`·SA`ñ¥o$¤ANƒ ÀSAp7ËdÇ£Aî¿FPÊSA€™ò£AVs1ðÌSA¿P?¤AÞg `ÍSAàÚÌàˆ¤A’}ÀÓSApÈI`·¤A$Ú@ØSA°cŸâ¤AH“ÀÜSA°cŸÿð¤AL @ÞSAPÿc /¥A(R@åSAàãV€3¥AH“ëSA°l)¥Ašm@òSApÑÓá¤Aº®àøSApÚ]_ˤAšm ûSAÐ,…¿ø£A! øSA v"C£A(R`ôSA°cŸÿb¢A! ðSAàõjÿª¡A¼& ìSA‘/àð AlL€çSA0?ÀæŸAÚï@áSAm˜`|ŸANƒ@ãSAàãV—ŸA¼&àÝSA¿PVŸAr< ÝSA@H’ߟA!ÜSApÈI ÌžAnÄ àÙSA¤²àBžAr<ÖSA v"€˜Ašm`ÑSApÈI Ar< ÍSA06~ ¼œAH“ËSA°cŸ¿é›A’} ÄSA Q‹€j›A$Ú ÁSA°Z êšA¼&½SAÀqÀ9šA*Ê ·SApÚ]¶™A’}À³SA¬Í¾ ™AlL ®SAˆ¥˜AL @¦SA0?À‘—AÚï ¢SA@H’—AlLÀSA­<@–A™ ™SA°u³þ=–A–õ—SA£C_Ú•AH“À”SA@Q¿—•A$Ú ‘SAPî?Y•AH“ÀŒSA v"€ß”A!ŒSA ˆ6ÿº”Ar<@ŒSA Q‹À”A! `ŽSA°Zàÿ’AnÄ à‘SA@Qf’Aþ¨þß”SApÑÓ?èA™ ™SApÈI ÷A! `žSA06~ ½ŽAšm £SApÈI ÚAÚï`¨SAð)|õŠAÆAºªªSAm˜ uŽAr<@´SAÈÚAÞg €¼SA¶Æ‰AL @ÆSA°l) A$Ú@ÐSApÈI …AnÄ ÀÚSA06~ ÙA!äSAPÿc !‘Ar<@ìSApÚ]a‘A$Ú@øSA°Z ±‘AÞ»g €SAm˜ õ‘AnÄ SAÀq@’ANƒ@SA Q‹@U’A¶6€&SA0?@u’A!4SAp¿¿@©’Aº®ÀASA ºîÆ’A"@þJSAàõj?ù’AL @VSApÑÓ?…’Ar<@dSA v"@’AH“kSA Q‹@¹‘A’}ÀsSAàõj?y‘Aº®ÀSA ¬_-‘A¶6€ŽSA¬Í~½Ar<@œSA¬Í~!Aº®À™SA v"€mA’}À“SA Q‹€±ŽA™ÀSA­<€ ŽAàßÀSA¶ÆŸAAÞg €”SA ÕºŒßŒA˜ ›˜SAÈÚžŒA™€šSA¶ÆŸÁ‹A(R@¥SApÈI !‹Aº®À±SAÐ5ŸŠAL @¾SAm˜ ŠA™ÀÈSAÐ5Ÿ‰A¶6€ÖSA v"À-‰AL àSA06~ൈAšm@êSA°ZàˆAšm@òSAÀ#ûßqˆAšm@úSAPxß‘ˆA!SAðþôÞ±ˆA! SAàìàß¹ˆAH“SA°Zà ‰AàßSAPxßu‰AL (SAÀ#ûßñ‰A!4SA@H’ßIŠAnÄ À:SAPÿcàýŠAnÄ ÀBSAàìàß¹‹A–õGSAÀ#ûßUŒANƒ@KSAPxßAL @NSA£Cß=ŽAàßÀOSAàõj¿AàßÀOSA ¬Ÿ A! €MSA°Z 1‘A$Ú@HSApÈI …’AlLÀESAPÿc ½“Ašm@BSApÈI !•A*ÊÀ>SA¿P–A*ÊÀ6SApÑÓa–A¶6€.SA¿P–A! @'SAp¿¿€é–A(R€SAàÚÌ`%—A(R€SA„àpT—AX|»‡SAàãV@—A’}À SAàõj?Ý—AÞg €SA Q‹@U˜AL @þSA°cŸ?͘A*Ê€øSA¬Í>a™AÞg €ôSA ˆ6?%šA–õïSA°cŸ?ÍšAšm@êSA Q‹@U›AlLÀåSA0?@õ›A! €ÝSApÚ]aœAàßÖSApÈI 鼜AàßÎSAÐ5qAL ÈSA`ÿôA™€ÂSAp¿¿ižA’}À»SA0?ŸAH“³SAPe[ExŸAð7Rð­SA0?À< A(R€£SA£Cßu¡A¢ˆ½ÁSA v"@­¡AL @ÆSA ˆ6?¥¢A(R@ÝSA`yš‹¢A¾s ùàSA ˆ6?%¡A–õçSA v"@- AÞg €ìSAàãV@eŸAnÄ ÀòSA@Q?mžA¼&ýSAˆ¥@A–õSA v"@­œAL SAF¨à›A䯥\SA ˆ6?%›A! @SApÑÓ?…šA¶6€&SAàõj?ù™A(R@-SA`?Q™A(R@5SApÚ]Ÿ™˜AÚï@ASAPÿc =˜AnÄ ÀJSAðþôžñ—AnÄ ÀRSAàÚÌ —AÚï@YSAP‡Xü(—A:ÕÒÎ\SAàìàŸÝ–A$Ú@`SA ¬Ÿ‰–A! €eSA£CŸá—ANƒ€qSAàÚÌ ˜AnÄ ÀbSA°Z 1™AàßÀgSApÚ]Ÿý™A–õWSA`?µšA!\SA06~ ušA(R€cSAÈÚžšAlL€oSApÚ]ŸšAàßÀwSAàìàŸ]šA*ÊÀ~SAPxŸ5›AH“À|SA°l)Ÿ©›Ašm@zSAPî?=œAlL€wSA v"@­œAàßvSA Q‹@9A! €uSAPî?½AlLÀuSAàõj?yžAr<@tSA`?QŸAàßÀoSA ˆ6?ùŸA(R@kSApÑÓ?… AlL€gSA ˆ6? ¡A’}ÀcSA­<@É¡AlLÀ]SAàãV@£ANƒ@SSAˆ¥@ñ¤AÞg €DSAp¿¿@)¥A(R€KSA v"@‘¥A! €USAPî?Y¦AL @VSA Q‹@9§A¼&USA­<@ɧA!TSA¿P?A¨ANƒ@SSAàãVÀȨA™€RSAp¿¿Àp©Ašm@RSApãç¾à©Ašm@RSA°cŸ¿”ªAÚï@QSA ˆ6¿«A$Ú@PSAàõj¿Ü«AL XSA ½Q‹À8¬AÞg €\SA0?ÀX­A¼&mSAp¿¿ÀŒ¬AlLÀ}SA v"À¬AL @†SAàãV@«Ašm@’SAˆ¥@ «A¶6€žSAàõj?yªAr<@¬SA ˆ6? ªA*Ê€¸SAˆ¥@©A! €ÅSA v"@©Ar<@ÔSAÐ,…?•¨AL àSA`?5¨A$Ú@èSA­<@ɧANƒ€ñSAàõj?y§A’}ÀûSApÈI r§AöIfSAˆ¥@q§A*Ê€SAÐ,…?•§Ašm@SA¿P?Á§A*ÊÀSA ˆ6? ¨A! @/SAPî?Y¨AlLÀ=SA`?µ¨Aº®ÀISA Q‹@9©AL XSAp¿¿@©©Aº®ÀaSA`?5ªA!lSA°cŸ?ͪAlLÀuSA°cŸ?M«AlL€SAÀq@¬A(R€‹SApãç>­AH“ÀlSAàãV@­A¼&]SAàãV@å­AH“ÀLSAˆ¥@ ®Ašm@BSApãç>}®A!4SAàãV@å®A¼&%SA0?@u¯AàßÀSA`E‰•¥¯A†Ú‹üSA v"@­¯ANƒ€ùSAˆ¥@ñ¯A(R€ëSA0?ÀX°AàßÀßSA°cŸ¿°°AÞg €ÔSApÑÓ¿è°A¶6€¾SAàãVÀȱANƒ€ÁSAPÂÈŠ4²A’0„ZÀSAàõj¿@³A! €½SApÑÓ¿h³ANƒ@ÃSAˆ¥ÀT³A™€ÊSA°\@§$³AnŽùÐSA ˆ6¿ì²AÞg €ÜSA Q‹Àœ³A™ÀàSA@Q¿P´AÞg €äSAàõj¿À´A–õçSAÐ,…¿xµAL øSA Q‹À¸µA*Ê€SA@Q¿ÐµAL SA v"À¶AlLÀSA0?À<¶AlL€SA`¿˜¶A¶6€.SA¿P¿·AnÄ À:SA v"À·A$ÚBSA Q‹À¸¶AàßÀWSAp¿¿Àp·A™ÀXSAPî¿ ¸A$ÚZSAàãVÀȸAšm@ZSAˆ¥ÀT¹A$Ú@XSA ˆ6¿ì¹A$ÚR¾SA06~``»AÞg €DSA@H’_ؼAàß6SAÀpmy¾A8Ít*SA ‘À^ÀA! €SA@H’_XÁAL @SA`ÿŸÂAlLÀSA°\@g„ÃAr<þSA0?àÃAÞg € SA°cŸÿ›ÃA™€SAàãVlÃANƒ@SA¬ÍþKÃAšm@"SAŸ~<ÃAú0óï&SAPöÙ0ÃAnÄ À*SA°cŸÿÃANƒ€1SAˆ¥øÂA!<SAàõjÿÇÂA!DSA¶Æ_¬ÂANƒ@KSA@H’_XÂA!\SA¤²`4ÂAÞg €dSA ¬_ÂAr<@lSA£C_ÌÁAnÄ ÀzSA ¬_ÁAÞg €„SA°eÊFŠÁA‚ÒhŽSApÚ]_„ÁAL ˜SAÈÚ^¤ÁAnÄ À¢SA@H’_ØÁA¼&­SAÈÚ^$ÂAlL€·SApÈI`pÂAnÄ ÁSAàÚÌ`ÐÂANƒ€ÉSAÈÚ^$ÃA–õÏSAÀ#û_€ÃAH“ÓSAPx_<ÄAH“ÛSA°l)_°ÄA*ÊÀÞSA°Z`8ÅAàßÀßSAPîÿ§ÅA*Ê€àSAPîÿCÆAnÄ ÀâSA ˆ6ÿóÆA(R€ãSA°cŸÿ›ÇANƒ€áSAàõjÿGÈAH“ÀÜSAPöÙ°ÈA™€ÚSAPîÿ'ÉA–õ×SA¿Pÿ«ÉAnÄ ÀÒSAÀqˆÊA!ÌSApÚ]ßçÊAL ÈSAÀ#ûßcËA¼&ÅSAÐ5ßÛËANƒ€ÁSAÈÚÞkÌAr<@¼SA Q‹ÀÿÌAàß¶SAPÿc ¯ÍA$Ú@°SA£CŸSÎAº®À©SA‘/ ÷ÎAlL€ŸSAPÿc ¯ÏANƒ@“SA¶ÆŸ3ÐAÞg €ŒSA¶ÆŸ³ÐAnÄ À’SA ¬Ÿ—ÑAL @žSAàãV€3ÒAr<@¤SAàõjÇÒA$ÚªSApÑÓoÓA™€²SAPÿc /ÔAÚï@¹SAp¿¿@›ÖA$Ú@ÐSA@Q?{×ANƒ€ÙSA¬Í>Ó×A! @ßSAš¹?ÛØA*ÊÀæSApãç>‹ÙAH¿“ëSAÀq@+ÚAÞg €ìSAˆ¥@ãÚAÞg €ìSAðþôÇÛA*Ê€èSAàìàOÜA! €åSAàìà³ÜAlL€ßSAP€ùcÔÜAbS_DÝSA¤² ÝA$Ú@ØSApåµTÝAºŒÓSA¬Íþ’ÝAàßÎSApÑÓÿÒÝAL @ÆSA Q‹ÞAšm@ºSAàõjÿÞAàß®SAš¹ÿÞA$Ú@ SAˆ¥#ÞAlL€SA`pì#ÞAáedŒSA0?'ÞA$Ú‚SAˆ¥#ÞA! @wSA0?'ÞAH“ÀlSAš¹ÿÞA’}ÀcSAš¹ÿÞAº®ÀYSA¬Í¾ÒáAšm@RSA­<ÀºáA*Ê€hSAPî¿®áAH“ÀtSAPî¿’áA!„SA ˆ6¿záAlL€SA0?ÀJáA(R€›SA°cŸ¿"áA! @§SA ª36áA.d& «SApÑÓ¿öàA™À¸SA¬Í¾ÒàA(R€ËSA­<ÀºàAlLÀÕSApÚ]ß®àAlLÀÝSA0?‹àAH“ÀäSA``'´UàAhÔôéSAàõjÿàA–õïSA@Qÿ‚àAº®ÀùSAàãV@óàAL SA­<ÀžáA$Ú@SA¿P¿âAàßSA¬Í¾¶âAšm@SAÐ,…¿jãA(R€SA¬Í¾6äA*Ê€SAÀqÀåA(R€ SApãç¾îåAlLÀSAàìàŸ–æAnÄ SAàìàŸçAàßþSAðþôžªçA!üSA°Z jèA’}À SAðþôžéA™ÀSA°cŸ¿¢éA’}À#SA¤²`&êA! €-SAm˜`ŠêA! @7SA ‘À^zíAlL€/SAðþô^NíAÚï@9SA¤²`&íA$ÚBSAPx_®ìAL @NSA zÊtìAÞ#¦SSA@H’_fìA¼&USA¤²`ÂíAnÄ ySAÈÚ^2ïAnÄ ™SApÚ]_vðA™€²SA‘/`FñAÞg €ÄSAÐ5_òAšm@ÒSAàãV@žÀòA¼&ÝSApãç>RóA¶6€æSAp¿¿@âóAH“ëSA ˆ6?^ôA¼&íSA zçO&õAº®ÀñSAàõj? öA¢ÕA€ôSApÑÓÿ÷A! @÷SA­<¦÷A¶6€öSAš¹ÿaøAÞg €ôSAÀqúøA–õïSA0?ÒùA! @çSAÐ,…ÿqúAšm@âSA`'ûúAÎ\XÁÜSAÐhûA¢ˆ½rÛSAç=FûA”¨JÙSA ¬Ÿ¡ûAhesƒÇSA`ƦûA–Ó!ÄSA¨ï½ûA™€²SAm˜àÑûAnÄ ¡SA ¬ßåûA$Ú@SAàìàß¹úAlL€‡SA£Cß!ùA$Ú‚SA¬Íþ=÷AlL€wSAPxÒõAnÄ iSA¿PÿôAàßÀWSA­<ÂóAlLÀESApãçþuóAnÄ À:SAàãVÞôA$Ú@(SA@—A48÷Ar^ SAPxß‘øA™ÀøSA0?ÀùAnÄ áSAÎÊ50ùA8;ÊSÚSA‘/ iùAlLÀÍSA¤² ­úA$ÚÊSAPxŸµüAÞg €ÌSA°l)ŸÅýAL ÐSAàìàŸ]þA(R€ÛSA°cŸ ÿAL @æSAPî™ÿA$ÚêSA ˆ6eAÞg €ìSAÐØ¡’AÂÉ®ÚçSAàõj¹A’}ÀãSA`›—BÓA¾s aáSAÀ#û_ÕAº®ÀÉSAàãV@A™€ÂSA v"@‘A¼&ÅSA06~ YA$Ú@ÐSA¶Æ‰A™€ÚSApÚ]aANƒ@ÛSA ˆ6ÿ, Ar<@ÄSA¬Íþ„ AH“«SAÀqÝ Ašm@’SA¬Íþ AÞg €|SApÈIà( AH“kSA0ƒ®, A”[ 5fSA Q‹À8 A–õWSApÑÓ¿h A$ÚBSA@§*¬ At~:SAPî¿  A¶6€.SA Ùœï AÐeâÀSA VPМ ANƒ@SA0?ÀØ A¼& SAˆ¥ÀÔAlLÀSAš¹?iAº®ÀùSAÁˆ¥1ANƒ€éSA¿PÿdA!ÜSA v"ÑAH“ÀÌSAPîÿ|AÚï@ÁSA°8i®Al*a¿SA¿PA(R€£SA¿P¿ÏANƒ€‰SA@QæAnÄ ÀjSA‘/ ¢Aº® ZSAÀ#ûŸ•AÞg €TSAPÿc`ýAÞg  KSAÈÚžòA!<SA£CŸáA! `>SA`?|AÞg `=SA ¬ß,AÞg €<SA°Z ÎÿA(R€;SA¬Í>oÿAÚï :SApãçþÿAº®à8SA¤²`_þA¶6`7SAÀq@ÖýA¶6€6SA£C_>ýA–õà7SAˆ¥@ñüA¼&à5SA0?àüAL @.SA Q‹ÀüA! @'SA@QÿžüAL  SA0?€ üAÚï SA¶ÆŸ³úAàßöSAÐ5_øùAšm@êSA ˆ6¿ÞùAº®àèSA v"ÀôùA–õçSAÀq€$úAnÄ ÀâSAš¹¿>úA–õàßSAm˜àQúAÞg `ÝSAPÿc`aúA’}àÚSA ¬Ÿ{úAþ¨þßÔSAàãV—úA! @ÏSAm˜`µúAH“ËSAPÿcàÄúAlL ÆSAp¿¿ÛúAº®àÀSAàìàŸëúA¼&à½SAPöÙ÷úAšm »SAðþô^ûAÞg `µSA£Cß!ûAº® ²SApÚ]_=ûA¼&­SAˆ¥€MûAnÄ à©SApÑÓ?hûA’} ¤SAðþôÇûA(R€£SApãç¾üûAnÄ à¡SA£C_üAÞg `SA06~ <üAr<@”SA Q‹€NüA™ÀSAàãVÀVüAlL ŽSAš¹püA*Ê€ˆSAàãVÀüAÞg `…SAÈÚ^¤üA! €}SA Q‹@¹üAÚï@ySA`ÊüAÞg `uSA°l)ßÌüAÞg  sSA£C_¡üA’}ÀsSA`ƒüAr<@tSA­<€‰üAÚï@qSA¬Í>šüA™ÀhSA£C©üAÚï``SAàìàŸ²üA’} \ÂSA¶Æ_ºüA¶6`WSAÀqÁüA’}ÀSSA°Z ÎüAlLÀMSA¤² ×üAº®àHSApÈI ÚüA¶6 ESAÐ,…ãüA$ÚBSA ¬íüA(R@=SAàÚÌ óüA™ 9SAàìà_ýA!4SA0?ÀýANƒ€1SA°Zà ýA! €-SA ‘ÀÞýA™À(SA`ýAH“À$SA£CŸ ýAº®À!SA£C ýA–õSAÀqÀýA(R€SA ¬íüA¼&àSA¬ÍþÙüAL SA­<€ÐüAþ¨þß SAÈÚÈüAnÄ à SA`¿¦üA(R`SA¿P?ˆüAàßàþSAÀqzüA!üSAPÿc hüA$Ú ùSA0?RüA¶6€öSApÑÓ¿=üA!ôSA v"€&üAšm`ñSAm˜ üA¶6€îSA ¬ŸûûA¼& ìSAˆ¥ÜûAÚï êSA¤²`ÂûA*Ê çSA0?ÀŸûA¼&àåSA°cŸÿ~ûAH“àãSA‘/ [ûAÚï âSAš¹?0ûAÚï`àSA°l)ßûAL  ßSApÑÓ¿¡úA’} ÜSA°l)_wúAr<`ÛSAPöÙ@EúA$ÚÚSA v"úAàß ØSA v"ÀôùA$Ú@ØSAˆ¥@ªùAL  ×SAPî¿YùAr<ÖSAÈÚ^2ùAÞg `ÕSA v"ÀùAÞg €ÔSA ¬ŸÐøA’}ÀÓSAàãV@¬øANƒ@ÓSAPÿc vøAÚï ÒSAÐ,…¿?øAšm`ÑSA°cŸ?øAàß ÐSAPöÙ÷÷A! ÐSA@Qÿ×÷A–õàÏSAp¿¿ÀÓ÷AÚï ÒSA°cŸ?±÷Aº®ÀÑSAPÿc`}÷Ašm`ÑSA06~`R÷Ašm`ÑSAàõj?ëöA$Ú ÑSA0?À¼öAº®àÐSA¿P?ˆöA™ÀÐSAðþôžUöAàß ÐSA v"€&öA¶6`ÏSA Q‹€öAÞg `ÍSAÐ,…ÿñõAšm ËSA°cŸ?”õArÃ< ÍSAÀq@õAàßÀÏSA ¬ßåôA*Ê€ÐSAÈÚºôAº®ÀÑSAm˜ fôAÞg €ÔSAˆ¥ôA¶6`×SAPîÄóAº®ÀÙSA¿PÿóA’}àÚSA06~ uóA(R@ÝSA¬Í>SóAàßàÞSA°l)ß0óA™ áSA@Q¿ûòA¶6 åSAÐ5ŸÆòAº® êSApÑÓ?¡òA$Ú@ðSA ˆ6¿zòAL @öSA`ÿXòANƒ@ûSA°ZàFòAnÄ SA ˆ6?BòAH“àSA£C7òAšm` SA¶ÆŸ%òA¶6`SA°l)òA(R@SAàãV€òA’}ÀSAÐ,…?#òAº®à SAðþôÞ1òA!$SA ˆ6?BòAàßÀ'SAPÿc ZòA(R@-SA`ÿtòAH“3SAÐ,…ÿòAàß 8SA v"€˜òA!<SApãç¾§òA(R`DSAPî?¯òANƒ`JSAš¹·òA! PSA£Cß½òAL @VSAPÿcàÄòAšm`YSAàìà_ÈòAÞg €dSA`¿ÑòANƒ@kSAÐ,…?ÜòAH“àsSAðþôÞÜòAlL vSA`ñ¥¯äòAÚïðSAÐ,…?ÎòAlL –SA¿P?ÁòA–õ·SA‘/`òAº®ÀÑSA ˆ6¿%òAr< åSAPÿc /ñA–õ÷SAÐ,…ÿFïA–õSApãç~ ïAº® "SA¶ÆŸúîA! @'SAš¹ÅîAþ¨þß,SA¬Í¾}îA™€2SAàõjÿGîA–õ 6SAPÿc`ïíA’} <SA¤²à¥íA$ÚBSAðþô^@íAº®ÀISA¤² íA(R`LSAÀqÀ9ìA’} LSA¬Í~¡ëA(R`LSAÈÚVêA(R@MSAPî?ËéA! €MSA°l)Ÿ7éA! €MSAm˜ JèAàßNSAÐ,…ñçAH“SSA Q‹ÀqæAnÄ iSAÀqAæA!dSAàìàŸåAÞg €<SAàãV@sÄàAr<`3SA@Q¿4àAnÄ p)SA Q‹À8àAšm@"SA¶ÆßàAÚï SA v"€¦ßAÚï SAš¹¿wßA¼& SApÚ]Ÿ}ßA! `SA@H’ßæßA™ ñSA Q‹À8àA–õçSA@H’îàA–õ ÖSAàãV@âAH“àÃSA0?`ãAàß ¸SA v"@æéAþ¨þßœSAàãV€3êAr< SAÀq@«ëAlL€ŸSA¶ÆŸzìA(R€£SAp¿¿@âìAÚï rSA°Z`¸éAÚï`hSA­<méAº®ÀiSAÀ#ûŸ@éAÚï jSA¤²àÞèAnÄ ÀjSApÚ]Ÿ}èAr<`kSA06~ èA!lSA@H’ÃçAÞg €lSAàõj?–çA(R`lSA ˆ6¿3çA(R`lSA¬Í>ÓæAÞg €lSAPî?væAH“àkSA ‘ÀÞæANƒ@kSA Q‹€êåAšm@jSA Q‹€£åA™ÀhSAàìàßdåAlL€gSA°cŸFåA*ÊÀfSA°u³> åAlLÀeSAm˜àíäAþ¨þßdSAp¿¿À·äAH“àcSAÀ#û‡äAnÄ ÀbSApãç>`äA$ÚbSAÀ#û_äAÚï``SA v"ÑãA¶6`_SAš¹©ãA! `^SAÀq@dãAr< ]SA°Z 1ãA!\SA ¬ûâAšm [SA ¬ßåâA–õ ^SA`¼âA(R@]SAPÿc „âAþ¨þß\SAPxßXâA!\SAàÚÌ ,âA’}àZSA¤²àÐáAšm`YSAðþôráAàßÀWSA ¬ŸáAL @VSApãçþ¼àAÞg €TSAˆ¥•àAr<`SSA¤² -àA¶6`OSA°cŸÿßAÞg `MSA@QÉßA(R€KSA¶ÆŸ¥ßA™€JSAPî?vßA$Ú ISA06~ KßA™ÀHSA­<€ ßAÚï`HSApãç~çÞAÚï`HSA¤²`{ÞA$Ú@HSA0? ÞA™ÀHSApÅÑÓ¿ËÝAšm`ISA`?|ÝA™ ISApãç~.ÝA™ ISAàÚÌàìÜA$Ú ISA°cŸ?¿ÜA*Ê€HSA ˆ6?‰ÜA–õGSAÈÚÞ@ÜAr< ESAp¿¿ÜAnÄ ÀBSA‘/ éÛA™ ASA°l)_°ÛA*ÊÀ>SAàõj?–ÛAþ¨þß<SAàÚÌ`lÛAÚï :SA Q‹NÛA*Ê 7SAàÚÌà3ÛAþ¨þß4SAàìà_ÛAÚï 2SA¤²à ÛAàßà.SA°cŸÿðÚANƒ`*SAPx_ÙÚA¶6€&SA0?ÀÊÚAÞg  #SAm˜ ¼ÚA$Ú@ SAPöÙÀ¨ÚA¼& SAm˜à˜ÚAlL€SA¶Æ‰ÚA’}àSA@Q‚ÚA! `SAm˜ uÚANƒ€ SAÐ,…¿jÚANƒ@SAÐ,…¿jÚA¶6`ÿSA06~`nÚAÞg  ûSA@Q¿{ÚA$Ú@øSAàãV€ˆÚA(R@õSAàãVÀÚA™€òSA@Q»ÚA! @ïSA¬Í~èÚAH“ëSApÈI`þÚAL èSApÈI`þÚAr< åSApÈI ÛA¶6`ßSA¬Í¾ ÛAº® ÚSAš¹ÿ ÛA(R@ÕSAàìàŸÛA¼&ÍSA°cŸÛANƒ€ÉSA¤² ÛAlL ÆSAÀq$ÛA™ ÁSA ˆ6?%ÛAþ¨þß¼SAPxÛAº®À¹SA Q‹€ÛAàßÀ·SApãçþ.ÛAÞg `µSAàÚÌ`PÛANƒ@³SAàÚÌàˆÛA–õà¯SA°l)_¢ÛAlL ®SA`¿ÑÛA(R€«SAàãV€úÛAnÄ ©SAPî¿ ÜA*Ê §SA¶Æ_sÜAr<@¬SA ˆ6¿³ÜA*Ê §SA v"@ØÜAH“À¤SA ˆ6óÜAšm £SAÀ#ûßÝA*Ê ŸSAÐ5ß"ÝA! €SA v" ÝAH“ÀœSAPx_çÜANƒ@›SA¿P¿ÏÜA™ ™SA ˆ6óÜAàßà–SAÐ5Ÿ ÝAÞg €”SApãç~ ÝAšm “ÆSA ‘À^3ÝAº®À‘SAPÿc KÝA¶6`SA@H’ŸmÝAþ¨þߌSA`¿ŠÝA™€ŠSApÑÓ?¡ÝAÚï`ˆSA ¬ßåÝAšm ƒSA¶Æ%ÞAr< …SA¬Í>SÞAL @†SA¬Í>¨ÞAº®àˆSA¿PÖÞAšm@ŠSAˆ¥@ñÞA’}àŠSA­<À:ßAšm ‹SA°Z`qßAÞg  ‹SAp¿¿”ßA¼& ŒSA@Q»ßAH“ÀŒSAÀq€ëßAlLÀSAÀqàAL @ŽSAš¹)àA! @SA°cŸ?MàA$Ú@SAàìà_dàAšm`‘SApÈI …àAnÄ À’SA@H’Ÿ¦àAÞg €”SApãç¾ÃàAL @–SAÀ#ûßãàAàß ˜SAàõjáAnÄ ÀšSA£CŸ(áA–õ žSAÐ,…?@áA$Ú@ SAp¿¿[áAnÄ À¢SAm˜ uáA¶6 ¥SAÐ,…ÿáAL ¨SApÚ]ß áANƒ`ªSAðþô¹áAþ¨þ߬SA¶ÆßÖáAL °SAš¹¿÷áAH“³SAÀqÀâAr< µSAàÚÌ ,âA¶6`·SA v"CâA™ ¹SA°l)_[âAH“à»SA¿PÿrâA¼&à½SA¿P?ˆâAlL€¿SA`?§âA$ÚÂSA°l)ŸÅâAr<@ÄSAÈÚžäâA–õ ÆSAàõj?ùâA! @ÇSAp¿¿@ãAº®àÈSA ˆ6WãAÞg  ËSA ˆ6?—ãA¶6 ÍSAÐ5_±ãA*ÊÀÎSA Q‹ÀããA™ÀÐSApãç>äA$ÚÒSA­<€PäA’}ÀÓSA°Z jäA’} ÔSA`ŸäAr<ÖSAPî¿ÙäA*Ê ×SAÐ5Ÿ8åAšm@ÚSApÈI ¡åA’} ÜSAÀ#û_ÇåA¶6 ÝSAˆ¥À æAlL€ßSAp¿¿MæA$Ú áSAÐ,…ÿqæA$ÚâSA¶Æ—æAšm@âSAðþô¹æA™€âSAm˜ ØæA’}àâSAÐ5ßçAÞÇg  ãSA¿PÿdçA’} äSA v"˜çAr< åSA­<€ÞçAlLÀåSA ¬ß,èAL @æSAðþô^yèA*ÊÀæSAÀqÏèAL  çSA Q‹@UéAàßÀçSA06~`îéA$Ú@èSAPîÿCêAàß èSApÈI ¾êAº®àèSA¿PëAnÄ éSA°l)ßLëAlL€çSA£CßvëAL  çSA`¿¦ëA–õ æSAPî?ËëA(R@åSA¬ÍþìA¼& äSApÈI`7ìAH“ãSApÈI hìAÚï âSA v"ŠìAº®ààSA­<@»ìA–õßSA@H’ íAL @ÞSA`ÿíA¶6`ßSAàãVÀÖíAH“ÀÜSAm˜ îA¼&àÕSA Q‹€#îAL  ÇSA­<À,îA$Ú@ÀSA06~  ñA’}àºSA ˆ6,ðA! @ŸSApãç~ðAšm@’SA`¿ÑïAr<~SAš¹ÿ>íA(R°}SAàãV@eíAnÄ ySAðþô^yíA! €uSAPî?„íAšm@rSAðþô^‡íAlL nSA¶ÆßíAÚï`hSA‘/ xíA!dSA¶ÆŸlíA*Ê _SAàìàßäíAr<`[SA¤² îAÚï ZSA v"CîAº®àXSA0_Ú¯îAH“pWSA‘/`FðAnÄ À:SA@j–ˆðA ‰,¬0SA “šðA†.Yï-SA ˆ6ÿºðAnÄ )SA°ZàÔðA! `SApãç¾îðAL @SA°ZàÔðA–õSA¬Íþ ðAÚï SAPÿcàÄïA*Ê€øSAÀq€yïA*Ê ÷SAÐ,…ïAlL öSA`¿íîA–õ öSA°l)_¢îAÞg `õSA@Q?mîA(R@õSA¶ÆŸzìAšm@òSA­<ÂêA™ ùSAàãV€3êANƒ`úSA­<@WéAL øSA°l)ŸâèAšm@òSAàãVÀÈèA¶6`ÇSA°l)ŸâèA! €µSA­<€ ÈéAH“«SAÀq@déAÞg `¥SA£CŸ êAÚï ¢SA Q‹ÀëAÚï`˜SA@H’_‘ëAnÄ à‘SApÚ]Ÿ`ìAlLÀ…SAPxß<íANƒ@{SAˆ¥•íAnÄ qSA£Cß=íAšm@jSAÈÚÞíA–õ fSAÈÚžäìAL `SAÀ#ûŸÀìAH“[SAàìàŸ¤ìA¶6 USAˆ¥€”ìAlL€OSA ‘ÀÞ–ìAþ¨þßLSA06~àŠìANƒ`JSAÀ#ûßcìANƒ€ISAp¿¿€ìA¶6`GSAðþôžªëA! €ESAPöÙ@EëAH“CSAàìàëA–õà?SAPöÙÀáêA–õ >SAPî?’êANƒ`:SA`ÿXêAr<6SAPx_ êA™ 1SAðþôêAL  /SAðþôÞøéA(R`,SA ¬ŸÞéAH“à#SAàìàÏéA–õ SAˆ¥@¸éA(R@SA¶ÆŸ³éAº® SAp¿¿€¢éAàßàSAPî¿ éAr<@ SApãç~®éA$Ú SAp¿¿€¢éA! `SAÐ5Ÿ›éANƒ@SA@H’_‘éA*Ê ÷SA‘/`éA¶6€îSA¤²à‰éA$Ú éSA¿P¿ˆéAr<æSA¿P?ˆéANƒ`âSA¤² téAÚï`àSAÀqOéA¶6€ÞSA£CŸ(éA! €ÝSA£CßöèAÞg €ÜSA­<ÀžèA$ÚÚSAÀqÀrèAÚï@ÙSApÑÓÿDèAnÄ ÙSApÑÓÿèAàß ØSA@QæçA$Ú@ØSA°l)Ÿ·çAL ØSA0?‹çAàß ØSAˆ¥€[çAnÄ ÙSAàÚÌ ,çAšm`ÙSAàÚÌàÏæA$ÚÚSA°Z`œæANƒ`ÚSAðþôræAnÄ ÀÚSAÀqæA(R€ÛSAÀ#û_råA¼&àÝSAˆ¥€åA! @ßSA¶Æ_óäAL àSA@Q­äA*Ê€àSA0?@ƒäAº®ÀáSA°ZàTäAÞg  ãSAðÉþôžããAšm`éSA ¬ßžãAH“ÀìSAÈÚždãAšm`ñSApÑÓ(ãA¼&àõSA@H’îâAÚï úSApÈIàÓâAþ¨þßüSAm˜à˜âAÚï SA`¿_âA–õSAàìàOâA™  SA¿P:âAþ¨þß SAÐ,…*âA–õàSA°Zà âA¶6 SAðþôâAr<`SAÐ5ßéáAÚï@!SA°l)ÔáA–õ'SA@H’_ÊáA$Ú*SAPxÄáA¼&-SA ‘ÀžÈáAnÄ À2SA¤²àÂáAàß 8SAÐ5Ÿ¸áA¶6€>SAPÿc`¶áA!DSA­<´áAÚï JSA¬Í~¯áA’}àRSAPx_®áA$Ú@XSAp¿¿ÀÅáAnÄ ÀZSA ˆ6¿ìáA¶6`_SAàÚÌ`%âAlLÀeSAÐ,…?\âAÞg €lSA¬Í¾oâAlL nSAˆ¥À›âA¼& tSA¿P?ÏâA$ÚzSAm˜àûâA¶6`SA‘/`ãAH“ƒSA°Z 1ãA! €…SA v"@JãAàß ˆSApãç~gãA!ŒSAˆ¥ÀãA™ÀSA0?§ãANƒ@“SA ˆ6ÿºãA! €•SA°cŸ?ÍãA–õà—SA°cŸâãANƒ`šSA v"ÀôãA(R`œSAPx äA*ÊÀžSAÀ#ûŸ#äANƒ€¡SAp¿¿€>äAþ¨þߤSA@QÿeäAnÄ ©SA¬Í¾ÒäA¼&à¥SAPÿc`ïäA¼&¥SA`? åAÞg `¥SAPöÙ0åA$Ú ©SA¬ÍþKåAþ¨þ߬SAPî¿YåA! @¯SAPî‹åAÞg €´SAÀqÏåAþ¨þß¼SAPÿc`ýåAÚï ÂSAÀ#ûßæAr<ÆSA v"À;æA$ÚÊSAðþô^@æAþ¨þßÌSA Q‹yæAr<`ÓSA@Q?{æA¶6 ÕSAàìàzæA! ØSA`¿ŠæAr<`ÛSA@H’ß»æAàßàÞSA£CßöæAº®ÀáÊSAÀ#ûß*çAšm ãSA‘/`bçAàßàæSA‘/ ”çAnÄ ÀêSAðþôžÇçA–õïSAàãVÀèA!üSAPÿc`(èA¶6`ÿSAPxRèA’}ÀSApÚ]ßgèAlL SAPÿc vèAàß SAàÚÌ`—èA¼& SApÚ]_ËèA(R€SA0?àèAr<SApãç>ýèA(R`SAàìà_éANƒ€!SAàãV€AéAL  'SA06~àQéAlL .SApÑÓÿ6éAlL€/SAp¿¿éAL 0SAðþôžñèA–õà/SA¤²àÂèAlL€/SAPî™èA! @/SA¶ÆŸzèA*ÊÀ.SAPÿcàRèA¶6€.SAÀq@èAàßà.SA¤²`íçAàßÀ/SA°ZàÆçAàßÀ/SAàìà_çA*Ê /SA°l)ß>çAàßÀ/SApãçþçA! 0SAp¿¿ÀðæAÚï`0SA¬Íþ½æAÚï@1SAš¹ÿšæANƒ`2SApÑÓ¿hæANƒ`2SApÚ]ŸDæA$Ú 1SApÈI "æAº®à0SApÈI æAÚï@1SAÈÚ^ÝåA™ 1SAðþôžªåAnÄ à1SA Q‹‡åAº®À1SA°Z`cåAšm`1SA v"À;åANƒ€1SA­<€åAº®À1SA¶Æ_óäAÚï 2SAÀ#ûŸÀäAšm@2SAðþô^•äAnÄ À2SA°l)ŸpäA’}à2SAàìàß9äAH“3SAˆ¥€äAr<`3SAp¿¿@ðãAÞg  3SA ˆ6?ÂãAr<@4SAPöÙ€“ãA(R`4SA°cŸbãA’} 4SA°cŸFãAH“À4SA°Zà ãA¼&5SAÀq€ÝâAþ¨þß4SA¬Íþ½âA¼&5SAm˜ ƒâAÞg €4SAÐ,…ÿFâA’} 4SA£CŸ(âA(R`4SA@Q¿ûáAH“à3SAPÿcàÄáAšm 3SAàÚÌ`—áAH“3SA ˆ6¿záANƒ@3SAp¿¿@TáAÞËg  3SA¶ÆŸ%áAH“3SAm˜ õàA’}à2SA`ÊàA(R€3SA­<À¬àA¼& 4SA£CpàAr<@4SAàãV€AàA(R`4SAm˜ àAÞg  3SA¿P?úßAšm 3SA‘/`âßA!4SA@H’ß»ßAlLÀ5SApÈI ¡ßA¶6€6SA¬Íþ„ßA¶6`7SA°Z \ßA*Ê€8SA°cŸÿ7ßA™À8SA°cŸÿßAnÄ 9SA ˆ6¿ìÞAÚï@9SApÑÓÿ¶ÞAÚï@9SAàÚÌàlÞAÚï@9SAÐ5_MÞAnÄ 9SA°l)ß0ÞAàß 8SA v"ÀÞAàß 8SAPÿcààÝA*Ê€8SA Q‹@¹ÝAº®À9SA`ŸÝAº® :SA¿P?zÝAÞg  ;SAàõjÿUÝAr<@<SA¿Pÿ9ÝA(R`<SA`¿ÝAr<@<SAàÚÌ`ìÜAH“à;SA06~ ËÜAÞg  ;SA`ÿŸÜAH“;SA°cŸ¿[ÜAnÄ à9SA Q‹ÀÜAšm`9SA°cŸÿðÛAàß 8SApÚ]Ÿ¶ÛAÚï`8SA Q‹ÀÛA–õà7SAàÚÌàAÛAàßÀ7SA¤²àÛA¶6`7SA¶ÆìÚAL  7SAPöÙ€“ÚA–õ7SAp¿¿@bÚAlL€7SApãç~ÚAnÄ 9SAÀ#ûßñÙAº®À9SAàìà_ÖÙA™€:SApÈIà¨ÙAr<`;SAš¹?iÙAþ¨þß<SA ˆ6?BÙAÞg `=SApÑÓ(ÙA–õ >SA0?ÀÙA–õ?SA v"ߨA–õà?SAàìàŸ²ØANƒ€ASAPÿc “ØAr<@DSAÐ5߆ØAr<FSA°Z`ØAÚï`HSAàõjrØA™€JSAðþô^\ØAÞg €LSAàÚÌ IØA¶6€NSAÈÚÞ2ØAL PSA@H’ŸØAÚï@QSAPxŸü×Ašm@RSApãçþÊ×A!TSA°Z`ª×Aþ¨þßTSAÀ#û_€×A–õ VSA ¬_Ì×A! @WSA¶ÆßH×A$Ú@XSAÈÚ×ANƒ€YSA0?€îÖAnÄ ÀZSA0?À¼ÖAr<@\SA0?ÀŸÖA¼&]SAàÚÌ`lÖA–õ ^SAÐ,…ÿ8ÖAlL€_SAàõjÿÖA*Ê€`SA@Q?íÕAº®ÀaSA°l)ÔÕAnÄ ÀbSAPx™ÕA’} dSA°cŸÕA¶6 eSAÐ,…cÕAàßàfSAp¿¿ÀEÕAàßÀgSAÀ#ûß*ÕA*Ê€hSAÀ#ûßÕANƒ€iSAp¿¿ÛÔA™€jSAˆ¥€¿ÔA(R€kSA`‘ÔAr< mSA£CŸaÔAàßànSA v"@JÔAL pSA°Z 1ÔA$Ú qSAš¹ÿÔANƒ`rSAm˜ ÔAÞg  sSAÈÚÖÓAlLÀuSAp¿¿@©ÓA$Ú@xSAàÚÌ ÓA™ ySA¬Í~hÓAr<@|SAÈÚ^OÓA¶6 }SA ˆ6?ÓAnÄ SApÑÓ¿öÒAH“ƒSA­<À×ÒAþ¨þß„SAàÚÌ »ÒA¶6€†SA ¬Ÿ—ÒA$Ú@ˆSAàìà߀ÒANƒ€‰SA°Z jÒAº® ŠSAPxŸ5ÒA(R@SA°ZàÒA! `ŽSA£CþÑAL SAPx_çÑA$Ú ‘SA@Q?ÑÑAšm@’SA@H’Ÿ´ÑAH“à“SAPxŸŠÑA¼&à•SA0?nÑA¶6`—SA@H’_XÑAº®à˜SAðþôÞ?ÑA™€šSA£CŸ(ÑA¼& œSA£CŸ ÑAÞg `SAš¹ÿïÐAlL žSAàÚÌàÁÐAnÄ ¡SA ¬ß¬ÐAšm@¢SA0?€ŠÐA¼& ¤SA@H’ßfÐA¼&à¥SApãç~KÐAL  §SAp¿¿ÐAšm`©SAàãVÀäÏAnÄ ÀªSApÚ]¨ÏAÞg €¬SA@H’_ƒÏA! €­SA`¸²cÏAøãnf®SAÀq@ÏA*Ê€°SA0?€îÎAšm`±SAàõjÇÎANƒ`²SAPîÿ§ÎANƒ@³SAÐÍ,…?‡ÎAH“à³SAàõj?kÎAÞg €´SA@QÿIÎA(R@µSAÈÚž+ÎA¼&àµSA0? ÎAL @¶SA@Q?íÍA¶6€¶SA@Q?ÑÍAàßà¶SAPÿc`¶ÍA! @·SA­<€—ÍA*Ê ·SAPî?vÍA–õà·SA ˆ6?PÍA$Ú@¸SA£CŸ(ÍAº®à¸SA¿PÿÍAšm`¹SAm˜ ÊÌAÚï ºSA¤²à—ÌAnÄ ÀºSA¤²`mÌAÞg  »SA£CEÌA(R`¼SA ˆ6ÿÌAÞg `½SApãç¾îËA–õ ¾SApÚ]¨ËA! @¿SAÈÚ^kËA! ÀSApãç¾'ËA™ÀÀSA¤²`ßÊANƒ€ÁSAðþôÞ£ÊAnÄ àÁSA­<mÊANƒ`ÂSAàõj¿NÊAH“ÃSAðþô+ÊAšm ÃSAàÚÌ ÉÉAšm ÃSAÐ5ŸÉAH“ÃSA°cŸÿbÉANƒ@ÃSA­<ÀÉAH“ÃSAàÚÌ ÉA’}àÂSAPöÙ€ÌÈAº® ÂSAPx™ÈAnÄ àÁSAš¹?iÈAnÄ àÁSA‘/ 0ÈANƒ€ÁSAPÿcàýÇAÚï@ÁSA¿P¿ÏÇA™ÀÀSA°Zà›ÇA–õà¿SA0?ÀJÇAL @¾SApãç¾'ÇA¶6 ½SApÑÓ¿èÆA’} ¼SAàìà³ÆAnÄ ÀºSA¶Æ—ÆAº®À¹SA06~à|ÆA! ¸SAPî?KÆA¼&àµSA¿P¿$ÆAÞg €´SA Q‹ÆANƒ@³SA¬ÍþÙÅA$Ú ±SA°cŸ?±ÅA¶6`¯SAp¿¿†ÅA(R@­SA v"€_ÅA’}àªSAÐ5_?ÅAº®à¨SA@H’ßÅAàßà¦SAPx_õÄAH“À¤SA ˆ6×ÄA’}à¢SA06~ ’ÄA! `žSA ˆ6¿lÄA¼& œSAPîRÄA™€šSA v"@-ÄA! ˜SAPöÙ€ÄA*ÊÀ–SA ¬ŸûÃA¼&•SA06~ ½ÃAšm`‘SA°l)_”ÃAL  ÎSA ‘ÀsÃAH“ÀŒSAàãV^ÃAr<`‹SA¤² IÃAÚï ŠSAÐ,…¿1ÃAº®àˆSA@QÿÃA! @‡SAˆ¥øÂAr<†SAàãVÀÖÂA’} „SA@H’ß­ÂAH“ƒSA ¬Ÿ‰ÂAnÄ SAPöÙiÂA–õ ~SA@H’QÂAšm {SA@Q;ÂA*Ê wSA°cŸÿ)ÂA! €uSA¬Í>ÂA’}ÀsSA0?€îÁAL pSA06~àÑÁAlLÀmSA@Q¿ÂÁA’}ÀkSAÀq@«ÁA¶6`gSAš¹¿¡ÁA’} dSA@Q?˜ÁANƒ`bSAÐ5ß”ÁA$Ú@`SA¶ÆßÁAÞg `]SAPÿcà‹ÁAH“[SA@Qÿ‚ÁA*Ê€XSAš¹~ÁA¼&àUSA`ÿtÁAH“SSA°cŸ¿iÁAÚï`PSA@H’_fÁA¼&àMSA ¬ßeÁAH“àKSAš¹ÿaÁA¶6`GSA`¿_ÁAH“àCSAàãV@eÁA–õ >SAš¹?iÁAº® :SAðþôrÁAL @6SAPÿcà}ÁAšm`1SA Q‹€‡ÁA(R@-SAðþôŽÁA! (SAÀq–ÁA’}à"SA@QÿžÁA™À SAm˜ ¼ÁA–õSAPîàÁA! €SA£C_ÂAÞg €SApÚ]ß ÂAH“àSA v"@JÂAšm SA¬Í¾oÂAÚï SA@H’_ŸÂAL SA°cŸ?¿ÂAlLÀSAÀq@ÖÂA!SA06~ çÂANƒ`SAðþôÞøÂAº®àSA ¬_ÃA¶6`SA@Q?4ÃAr<@ SA Q‹@GÃAº®À SA°l)TÃA*Ê SAPî`ÃA¼&SAPî¿uÃAÚï`SA0?€|ÃA¶6 ýSAˆ¥@ÃAnÄ àùSA¤² ÃAH“ÀôSA£C_“ÃANƒ€ñSA£C_“ÃA¶6€îSAp¿¿”ÃAº® êSApÚ]šÃA(R`äSA0ào3šÃA>Ï äŒÞSAPî™ÃA(R`ÜSA¤²à—ÃAlL ÖSAPöÙÀšÃAþ¨þßÔSAÀ#ûŸ£ÃAÞg `ÍSAàõjÿªÃAÞg  ÃSAÀq@«ÃA¶6`¿SAàõj«ÃA™À¸SAàõjÿªÃAšm`±SA0?§ÃA¶6€®SA0?ÀŸÃAnÄ ÀªSA¤²à—ÃAL ¨SAp¿¿@ÃAH“à£SA¿P?ˆÃAàß  SA€±P‚ÃAnÄ àSApÚ]_vÃAšm`™SA ˆ6eÃA! €•SAÀ#û]ÃA(R€“SAˆ¥€MÃAlL€SAPîÿCÃAÞg `SA@Q?4ÃA™ ‰SAPîÿ'ÃA–õ †SAm˜àÃA’}à‚SA06~à ÃA*ÊÀ~SA Q‹@ÃAH“à{SAPÿc öÂAÚï`xSAÐ5ñÂAr<vSA@QæÂAr<`sSAàãVÀÖÂA$Ú@pSAàãVÀÈÂAL @nSApãç¾µÂANƒ`jSApÈI ¢ÂA*Ê gSAÈÚ^–ÂAlLÀeSApãç>‹ÂAH“àcSApÈI`pÂA*Ê€`SA¬ÍþYÂAL @^SApÚ]ŸDÂA’} \SA¿P¿2ÂANƒ@[SAÀ#ûßÂAàß XSAPî¿õÁAlL VSA°l)_ÛÁA(R@USA¶ÆŸ¥ÁAÚï RSA¶ÆŸzÁA–õàOSA°cŸ?MÁA¶6 MSA°cŸÿ)ÁAÞg  KSA­<@ÁAnÄ ÀJSA°l)ŸâÀA¶6`GSAp¿¿€°ÀA¼&ESAàìà–ÀAÞg  CSA£C~ÀAnÄ ÀBSA ˆ6?^ÀA™ ASAÀq@+ÀA$Ú@@SA@H’Ÿß¿A¶6€>SA@H’ß­¿A! €=SAPöÙ@~¿AH“À<SA£CE¿A!<SAPî ¿AH“à;SAš¹¿¡¾A(R`<SAÐ,…?\¾A¼& <SA0?à½A(R`<SAPî?½½AH“À<SAÀq@V½A¼&=SAðþôÞ#½Ar<>SAàãVÀ½Aàßà>SAÈÚ^ÏмA! @SA ‘À¬¼AnÄ ASA°Zà¼Ašm@BSApÚ]o¼AÞg  CSA06~ ¼AL @FSAÐ5ã»A*Ê GSA ¬´»A™ÀHSA‘/à~»A™ ISA­<€P»Aº® JSA¬Í~!»Ar<`KSAÀ#û_»Ar<@LSA¤²`ߺA! €MSA Q‹²ºA! @OSAm˜ ‘ºAÚï`PSA¶ÆlºAšm@RSAðþôÞ?ºA(R`TSA°cŸÿºA¶6€VSAÈÚºA$Ú@XSAÐ,…Õ¹Ašm [SAp¿¿@·¹Ar< ]SA¤² Ÿ¹A! `^SAÀ#ûy¹A! `SAàìàŸ]¹A*Ê€`SA@Q-¹AL `SA@Qÿ¹AÚï``SA°cŸ¿é¸A™ aSApÈI`Ó¸ANƒ@cSA@H’Ÿ¦¸A! `fSAÐ,…?‡¸AnÄ iSAPx_g¸A!lSApÚ]ŸR¸Ar<nSAPxß<¸Aº®àpSA¤² -¸Ar<`sSAàÚÌ ¸A! €uSA¿P?¸A*Ê wSA@Qÿå·Ašm@zSA06~ Ë·A!|SA@Q¿´·AL  SAàìàß«·A™À€SA@Q?¦·Aº® ‚SA06~  ·AÞg `…SAÐ5Ÿ›·AL  ‡SA°cŸÿ~·AnÄ à‰SAÀqÀr·A’} ŒSA`?n·AlL ŽSA°cŸÿb·A$Ú ‘SApÈI`S·A’}à’SAPÿcàD·A(R`”SA°cŸÿ)·A! `–SA°Z ê¶AÞg €œSAÀqÀ«¶Aº® ¢SA‘/ w¶AlL€§SA@Q¿B¶AÞg `­SAðþôÞ#¶AÚï@±SApÚ]_¶AÞg €´SAp¿¿€éµA*Ê ·SA@Q¿ÂµANƒ`ºSA v"@ŸµAr< ½SAš¹¿wµAL ÀSA06~àQµAnÄ ÀÂSAPöÙÀ(µA¼&ÅSAPöÙ€µA*ÊÀÆSApÑÓÓ´Ar<`ËSAÐ5_£´A*ÊÀÎSA Ñ‘Àž´AL ÐSA°Z`c´A(R€ÓSA ¬_I´Aþ¨þßÔSA@H’Ÿ&´A–õ ÖSA v"ü³AàßÀ×SA ¬_ɳA$Ú ÙSA v"€˜³Aº® ÚSAPî?Y³A(R`ÜSAÐ58³A! €ÝSApÚ]³A–õßSAÈÚžò²AÚï@áSA­<ÀײANƒ`âSAš¹ÿš²A¼&åSApãç~Y²A! @çSAðþôž²A™ éSAàõj¿Ü±A!ìSA06~  ±A¶6 íSAPî?„±A¶6€îSA v"@f±A–õïSApÚ]_K±AlL€ïSAm˜ .±A! ðSA0?À±Ašm`ñSAÐ,…?ê°AnÄ ÀòSA£CŰA!ôSA`ÿŸ°AlLÀõSApÑÓ?…°AL  ÷SAÐ5_j°A™ÀøSA°ZàF°A’}àúSAPî¿°Ar<þSA­<@ɯAlL þSAÀq@«¯A¶6€þSA£C_…¯A–õÿSA¤² W¯A¶6`ÿSA¿P?3¯A*Ê ÿSA06~ ¯A*Ê€SA¤² ô®AÚï@SAàìàßÇ®ANƒ`SAðþô^•®A(R€SA°cŸÿp®AÞg €SA Q‹@®A(R@SApÈIà®Ar<SA06~ ç­A¶6€SA£CŸ¶­A*ÊÀSA£CS­A–õSAàÚÌ ×¬A¶6`SAÐ5_x¬AL  SA­<@W¬AàßàSA`ÿ¬AL @SAàõj?ù«AlLÀSA v"@Ÿ«A¶6€SA¿Pÿr«A*ÊÀSA Q‹€1«AL  SAPî¿«A¶6`SAš¹ÓªAlL€SA06~ uªA! @SA06~`'ªAàßàSA¿PªA*ÊÀSAš¹Å©AlL SAÈÚÞÀ¨AàßàSAàÚÌàˆ¨AlL SA°l)ßL¨AL @SAš¹¿¨A(R@SA°l)ß̧A(R`SApÑÓ§Aº®ÀÒSAÀq@ò¦A$Ú SAPÿc`ĦAàß SA°cŸ?”¦A–õàÿSAPöÙw¦AL  ÿSA­<@I¦A(R@ýSAp¿¿€"¦Ar<@üSAðþôžã¥A’}ÀûSAPöÙ°¥ANƒ@ûSAm˜ f¥AnÄ àùSA°l)ß0¥Aº®àøSA`? ¥A$Ú@øSApÑÓ?è¤A*Ê ÷SAÐ5_ͤAàßàöSAàìàO¤A–õ öSA¤² -¤Ar<öSApãç¾î£A(R`ôSAPî?Ë£AH“óSAàõj?–£A*Ê€ðSA£CŸo£AlL îSA`J£A(R`ìSA v"@-£Ašm ëSAPxî¢Aàß èSAàÚÌàÁ¢A! `æSAÐ5ß”¢Ar<@äSA v"@f¢ANƒ`âSAm˜`5¢AÚï`àSAPî ¢AlL ÞSA£C_Ì¡Ar<@ÜSAàìàŸ–¡Aº®ÀÙSAPöÙÀa¡AL  ×SAÐ5Ÿ8¡A! €ÕSApÈI` ¡Ar<`ÓSA¿Pÿä AnÄ àÑSA°l)ß° A! @ÏSAm˜à{ A¼&àÍSA¿P¿O A¼& ÌSApÚ]_/ A™€ÊSA ˆ6 Aàß ÈSA@Q?ûŸA¶6`ÇSAm˜`ÑŸAr< ÅSA ‘À^³ŸA!ÄSA°cŸŸAº® ÂSA¿P?lŸANƒ€ÁSAPÿcàDŸA*Ê€ÀSA0?ÀŸA¶6`¿SA¤²`ûžA¼&à½SApÑÓ?ÚžA(R`¼SA v"@­žAšm@ºSAàÚÌàˆžA™À¸SAPî¿gžAL  ·SAp¿¿ÀEžAr<¶SA06~` žAr<@´SAˆ¥@ñAH“³SA0?ÀØA™ ±SA0?€ÃAàßÀ¯SAˆ¥@ªA¶6 ­SAp¿¿@›A(R€«SA06~`‹AnÄ ©SA€º‹¯sAL `¥SA`Ê›A™€zSAˆ¥@›A™€jSA°Z ±›Aàßà^SA°l)_”›AÞg €\SA°cŸ?†›A$ÓÚZSAÐ,…?•›A*Ê WSA ¬Ÿ—›AÞg  SSA¿P?³›AÞg `MSApÑÓ¿Ë›A¶6`GSAPîÿà›AÚï@ASAàÚÌàì›AlL >SApãç~õ›A!<SA°l)ß°›A*Ê 7SAÐ,…ÿF›A™ 1SA­<€ ›AlLÀ-SAPÿc ½šANƒ€)SAàÚÌ šA–õ &SA°cŸ¿[šA!$SA ¬_;šAÚï "SA°l)ßšAàß  SA‘/`ð™AH“#SAm˜à¦™A! @'SAÈÚžd™Ar<`+SAàÚÌ`%™A–õ/SA ¬ß™A(R`,SApÚ]ý˜Ašm`)SAš¹?Û˜A¼& $SA ˆ6ÿȘAnÄ !SAÐ5_±˜A¼&àSA ˆ6ÿ˜AÚï@SAàãVÀd˜A¶6€SAPxŸC˜A¼& SA06~ ˜AÚï`SApÚ]_½—AH“À SAÐ,…q—Ašm` SAPxßJ—AÚï`SA@H’Ÿí–A–õ SAš¹Œ–A(R`SAp¿¿@7–AH“àSAÀqÀ–AH“àSAPÿc Ú•Aþ¨þßSAš¹?°•AL  SApãç¾n•Ar<` SAàìàO•A! € SAm˜à&•AL SA ˆ6ó”A! SA@H’ŸÑ”Aº®àSAàÚÌ`¥”ANƒ`SA Q‹Àc”AÞg €SA£Cß=”AL @SA06~` ”A*Ê€SA ˆ6å“Aº® SA¶Æßº“A’} SApãç~’“A*ÊÀSApÈIào“Aº®à SApÚ]ŸR“AH“#SA ‘À:“A¼&%SAàãVÀ“A*ÊÀ&SA ‘À^“A*Ê€(SApÈIàï’AÚï *SA v"À»’AÞg `-SAÐ,…ÿ’A*Ê€0SApÈI Z’A¼& 4SAm˜ -’AL  7SA0?À’A™ 9SA°Z`ã‘A’}À;SAm˜à´‘A¶6€>SA v"|‘AnÄ àASA@QI‘A(R@ESAPÿcà ‘A™ÀHSApÈI`·AlLÀMSA ¬mA™ QSA v"€BA(R€SSA°l)ßA(R@USA Q‹²A$Ú YSAÈÚ^–A™€ZSAÈÚÞyA’}À[SA ¬_A!\SA°cŸ¿ÍŽA(R€[SA v"€mŽANƒ`ZSA ˆ6¿ìAº®àXSAÀ#ûŸ‡A! XSA`?QA*ÊÀVSA£Cß!A¼&àUSApÚ]_öŒAr<@TSApÑÓ?hŒA*Ê€PSApÈI é‹Ar< MSA¤² I‹AÚï@ISAPÿc`áŠA! `FSA¬Í¾¶ŠAr< ESA°cŸ?±ŠAL HSA‘/ wŠA(R@MSA°l)Ÿ7ŠAÚï RSA`ŠAàßàVSA ‘ÀÞë‰Ašm`YSAàÚÌ É‰AlL ^SA‘/ °‰A’} dSA¶Æ_ž‰Aº® jSA°Zà‰A$Ú@pSApÚ]_„‰A¼&àuSApÚ]_„‰A¼& |SApÑÓÿ}‰Ar< …SA06~ ƒ‰A’}àŠSA‘/ ”‰Ašm “SAàãV³‰Aº®à˜SApÈIඉA’}À›SAàãVÀä‰ANƒ`¢SAàÚÌ`—‰AnÄ À¢SA°cŸ?‰A(R€£SA‘/ éˆA¼& ¤SA¿P?úˆA–õà§SAàÚÌà3‰Aþ¨þ߬SA@H’_f‰Aº®À±SAPî¿ ‰A–õ ¶SApÈI`Ó‰A’}àºSAˆ¥€MŠAÞg €ÄSAàÚÌ`ÞŠAnÄ ÁSA v"Àt‹A! ÀSAˆ¥@8ŒA*Ê ÇSA06~à A’}àÒSAàõj?ÝŽAnÄ ñSA v" ANƒ`úSAàìàŸëAšm` SA¶Æß’A’} 4SAàõjr“A–õOSA0?€5–AÚï`XSApÚ]ßË–ANƒ@[SApãç¾C™A–õoSApÈI è›A! €…SAàãV€ÁœA!ŒSAÐ,…œžAšm@šSApÚ]Ÿ½¡AL еSAþ º<ºÈšx 7ƒHHAAcquaviva delle Fonti @úq;óL]§AŸz>Þ5?øYÌÀB1AlL ¢RQAÌÀÏ1AlLÀµjQA|iôÌ€ƒ­ÕÜO? 1ƒ¸FÇIsola Sant'Antonio @éu¬G IAvu'—$tøYÀ#ûßqˆAL ØSA Ùœï A! @÷SA|iÞpÚ]Ÿ½¡AL еSAp7ËdÇ£Aî¿FPÊSA@âš:X£AÆŽ>TÁSA0_Úo£A™à»SA`ñ¥oÈ¢Aàßà¶SA0_Úo8¢AnÄ °SA€¨wp4¡AL  §SA ƒqo Ar< SA ƒqoôžANƒ`’SA q]püA™ ‰SA`ñ¥o$Aº® ‚SAÀ#ûß\œA(R`xSA°(/1è›Apï’:qSAˆ¥€œA¶6 eSAà=o<œAÞg  [SA@(Ào\œA’} TSAðÞ"o„œAnÄ HSAðÌpÌœAº®à@SA–ôopA¶6`?SA`ñ¥oäAàßà>SA`ñ¥odžA–õ >SA`ß‘pìžA! `>SAðÞ"o„ŸAº®à<SA€¨wp4 AnÄ à=SA`ñ¥o$¡ANƒ`BSA0_Úo8¡Aº®àLSA°:Cpà¡AnÄ àQSApÚ]h¢A(R`TSA‘/ ø¢ANƒ XSA ¬˜£AnÄ à]SA‘/ 8¤A™ iSAÀ#ûd¤A™ qSA@H’|¤A’}àzSAÀ#û_€¤AnÄ àSA0_Úox¤A–õ ŠSA–ôop¤A’}à’SA`ß‘pl¤ANƒ`š¹Ö1AlL@waQÀƭ1AlL`waQAÌ€®1AlL —aQAÌ€\®1AlL •aQAÌ@p®1AlL€±aQAÌÀi®1AlLÂaQAÌ®1AlL@ÁaQAÌ@®1AlL±aQAÌ€Ô­1AlLÀ¯aQAÌ€ƒ­1AlL@waQAÌÀw­1AlL@naQAÌ€i­1AlL caQAÌ­1AlL baQAÌ@ê¬1AlL`aaQAÌÀ׬1AlLÀqaQAÌ@Ú¬1AlL ~aQAÌ@â¬1AlL`‰aQAÌæ¬1AlL@•aQAÌÀè¬1AlL ¡aQAÌ@ê¬1AlLÀªaQAÌÀä¬1AlL ³aQAÌ€ ­1AlL ½aQAÌ€­1AlL@ÄaQAÌ­1AlL ÍaQAÌ` ­1AlL˜ÏaQAÌý¬1AlL ÖaQAÌô¬1AlLÀÜaQA̸¬1AlL@ÙaQA̲¬1AlL àaQAÌ@¦¬1AlLÀíaQAÌ€§¬1AlL`ôaQAÌÀ̬1AlLÀûaQÀ̬1AlL€bQAÌ€%¬1AlL bQAÌÀ#¬1AlL€%bQA̬1AlL`$bQAÌÀò«1AlL@0bQAÌÀM¬1AlL 5bQAÌ€4¬1AlL@KbQAÌd«1AlL°9bQAÌ@X«1AlLÀJbQAÌ«1AlLLbQAÌ€r«1AlLàbbQAÌÀL«1AlL€bbQAÌ@G«1AlL@obQAÌÀĪ1AlLÀpbQA̵ª1AlL@”bQAÌÀ]«1AlLÀ˜bQAÌ{«1AlL ³bQAÌÆ«1AlL`ªbQAÌ@í«1AlLÐ¥bQA̬1AlL€½bQAÌ@(¬1AlL ÒbQAÌ€1¬1AlL`äbQAÌÀ¡«1AlL àbQAÌ@U«1AlL äbQA̘«1AlL cQAÌÀ-«1AlL cQAÌ@%«1AlLpcQAÌ€áª1AlLÀcQAÌÀ«1AlL BcQÀͪ1AlLFcQAÌÀçª1AlL`bcQAÌÀïª1AlL qcQAÌ×À «1AlLPxcQAÌ0«1AlLà€cQAÌÀR«1AlLàwcQAÌz«1AlL@pcQAÌ@”«1AlL@kcQAÌŸ«1AlL0icQAÌ´«1AlL „cQAÌ€¬1AlL`„cQAÌ@8¬1AlLà†cQAÌ€e¬1AlLˆcQAÌ€~¬1AlL`ˆcQAÌ@ž¬1AlLŽcQAÌÀº¬1AlLàšcQAÌ@Û¬1AlLà¡cQAÌ@ݬ1AlLÀ¯cQAÌ€è¬1AlL »cQAÌ€þ¬1AlL@ÆcQAÌ€­1AlLàÍcQAÌÙ¬1AlLÀÍcQAÌ@¤¬1AlLËcQAÌ@Ь1AlL`ËcQAÌ€œ¬1AlL€ÖcQAÌ€N¬1AlL@ÞcQAÌÀ:¬1AlLÍcQAÌÀÛ«1AlLàÒcQAÌ@Ñ«1AlL ÉcQAÌ@¤«1AlLàËcQÀǫ1AlL äcQAÌ@ª«1AlL dQAÌc«1AlL€dQAÌ0«1AlL€dQAÌ@€«1AlL dQAÌ@y«1AlL€dQAÌ€>«1AlLà-dQAÌ€ìª1AlL€,dQAÌ´ª1AlL€)dQAÌÀŠª1AlL€$dQé1AlL/dQAÌ@¤©1AlLÀ:dQAÌÀË©1AlL€HdQAÌÀà©1AlL OdQAÌ€ò©1AlL@ZdQAÌþ©1AlLbdQAÌÀ:ª1AlLÀsdQAÌ@ ª1AlLÀwdQAÌ@Ù©1AlLà€dQAÌ@h©1AlL@dQAÌÀר1AlLÀ dQAÌ€¨¨1AlLàvdQAÌ€>¨1AlL@udQAÌâ§1AlL`qdQAÌÀá§1AlLÀxdQAÌ€Ÿ§1AlLÀwdQAÌ€˜§1AlL ŠdQAÌŒ§1AlL¡dQAÌ€…§1AlL§dQAÌÀk§1AlL€¨dQAÌ€F§1AlL ¬dQAÌ@+§1AlLÀ°dQAÌ.§1AlL`¸dQAÌA§1AlL@ÀdQAÌ=§1AlL€ÇdQAÌÀ#§1AlLàÒdQA̧1AlL`ßdØQA̧1AlL€ídQAÌ€ò¦1AlL@ùdQAÌ@‡¦1AlL ðdQAÌ@y¦1AlLÀødQAÌÀ¦1AlLàúdQA̹¦1AlL eQAÌÀƦ1AlL  eQAÌÀΦ1AlL eQAÌ€à¦1AlL"eQAÌ€§1AlLÀ@eQAÌÀ§1AlL@JeQAÌ€"§1AlL€UeQAÌÀ©¦1AlLSeQAÌ€›¦1AlL deQAÌÀh¦1AlL€beQAÌ@.¦1AlL `eQAÌò¥1AlL ^eQA̹¥1AlL€aeQAÌ@n¥1AlLfeQAÌ@¥1AlLjeQAÌÀ¤¤1AlL€peQAÌM¤1AlLàteQAÌ€ã£1AlL {eQAÌ@£1AlL`}eQAÌÀ3£1AlL €eQAÌ£1AlLàweQAÌ@£1AlL`oeQAÌ@£1AlLÀgeQAÌ'£1AlL`^eQAÌ€/£1AlL€UeQAÌ£1AlLOeQAÌÀë¢1AlL =eQAÌÀâ¢1AlL 1eQAÌ€Ö¢1AlL 'eQÀȢ1AlL`eQAÌÀ²¢1AlLàeQĄ¢1AlLÀeQAÌ@—¢1AlL`ódQAÌ@ƒ¢1AlLèdQAÌ@i¢1AlLÀßdQAÌ@X¢1AlLà×dQAÌ€S¢1AlL@ÌdQAÌ€K¢1AlLÁdQAÌU¢1AlL ºdQAÌ[¡1AlL ¼dQAÌÀa¡1AlL ÐdQAÌÀl¡1AlL âdQAÌÀ~¡1AlL€eQA̘¡1AlL:eQAÌ@¢¡1AlL GeQAÌÀ¥¡1AlLUeQAÌ©¡1AlLà^eQAÌ€°¡1AlL`leQAÌ€²¡1AlL€zeQAÌ@¸¡1AlL †eQAÌ`¶¡1AlL˜eQAÌ@‘¡1AlL —eQAÌÀr¡1AlL œeQAÌ€Y¡1AlL eQAÌ@=¡1AlL¤eQAÌÀ¡1AlL@©eQAÌü 1AlLÀ±eQAÌ€å 1AlL`¶eQAÌ@Ó 1AlLÙàºeQAÌÀ¸ 1AlLÀ¿eQÄ 1AlL€ÈeQAÌÀf 1AlL ÏeQAÌ> 1AlLÀØeQAÌÀD 1AlL@äeQAÌÀ- 1AlLàêeQAÌ€ 1AlLÀòeQAÌ 1AlL@ûeQAÌ@þŸ1AlL€fQAÌ@ 1AlL` fQAÌÀ 1AlLÀfQAÌ€4 1AlLà"fQAÌÀN 1AlL )fQAÌL 1AlLà0fQAÌ@C 1AlLà6fQAÌJ 1AlL@?fQAÌ@[ 1AlL`FfQAÌ@ 1AlL€MfQAÌ€» 1AlL VfQAÌ@á 1AlL€_fQAÌÀƒ¡1AlL {fQAÌÑ 1AlL ·fQA̼ 1AlLÅfQAÌ€¶ 1AlL ËfQAÌ€³ 1AlLàÑfQAÌ¢ 1AlL ÞfQAÌ™ 1AlL éfQA̯ 1AlLÀófQAÌÀÀ 1AlL€ùfQAÌÆ 1AlL0ûfQAÌÀÌ 1AlL`ýfQAÌß 1AlL@gQAÌ€ú 1AlLÀ gQAÌ€!¡1AlL@gQAÌ€¯¡1AlL@>gQAÌÀL¢1AlLfgQAÌÀi¢1AlLðlgQAÌw¢1AlL pgQAÌ€†£1AlL ±gQAÌž£1AlL@¬gQAÌ@¾£1AlLÀ¤gQAÌ@¿£1AlL›gQAÌ@Á£1AlL€“gQAÌÇ£1AlL°…gQAÌ@D¤1AlL€šgQAÌA¤1AlL£gQAÌ@E¤1AlL ¬gQAÌ€K¤1AlL ·gQAÌ@v¤1AlLàÃgQAÌ ¤1AlLàÈgQAÌÀê¤1AlL€ÏgQAÌÀ3¥1AlL€ÕgQAÌñ¥1AlL@ðgQAÌP§1AlLÀ[hQAÌ€w§1AlL^hQAÌž§1AlL`ahQAÌ€»§1AlLÀchQAÌ@ݧ1AlL@ihQAÌï§1AlL nhQAÌ€ ¨1AlL`thQAÌÀ¨1AlL ~hQĄ1AlL€ˆhQAÌÀï§1AlL`hQAÌ€r¨Ú1AlL ±hQAÌ€›¨1AlL ºhQAÌ@¸¨1AlLà¿hQAÌÀÛ¨1AlL ÆhQAÌ@ô¨1AlL ÌhQAÌ€,©1AlL ×hQAÌÀG©1AlLàÞhQAÌÀj©1AlLÀæhQAÌ€©1AlLíhQAÌ@·©1AlL òhQAÌ@ô©1AlLûhQAÌ@ ª1AlLàþhQAÌ€Cª1AlL ÿhQAÌ@eª1AlL€þhQAÌrª1AlL€þhQA̼ª1AlL@þhQAÌ€\«1AlL€ÿhQAÌÀ0¬1AlL iQAÌ@,¬1AlL@iQAÌ2¬1AlL 8iQAÌ@Y¬1AlL€;iQAÌÀ{¬1AlL >iQAÌ€˜¬1AlL`@iQAÌÀ°¬1AlL BiQAÌÀά1AlL BiQAÌ€­1AlL BiQAÌÀ)­1AlLàBiQAÌ€J­1AlLBiQAÌÀn­1AlL AiQAÌŽ­1AlLà@iQAÌÀ«­1AlL ?iQAÌÀÒ­1AlL€iQAÌ€°1AlL@;iQAÌ7°1AlLÀ9iQAÌU°1AlL€6iQAÌ€‡°1AlLÀ.iQAÌÀǰ1AlL ,iQAÌÀë°1AlLÀ*iQAÌ@$±1AlL %iQAÌÀ\±1AlL iQAÌ@“±1AlLàiQAÌű1AlL iQAÌå±1AlL`iQAÌ€ ²1AlL +iQAÌ!²1AlL 8iQAÌ€7²1AlL`EiQAÌ€N²1AlLàQiQAÌÀ‹²1AlL€`iQAÌÀ¸²1AlL iiQAÌÀß²1AlL uiQAÌÛ@ã²1AlL‚iQAÌ€ì²1AlLiQAÌÀó²1AlL@¥iQAÌ€³1AlL`ÅiQAÌÀ<³1AlL@åiQAÌY³1AlLàþiQAÌ€a³1AlL€jQAÌ@³1AlL,jQAÌ–³1AlL :jQAÌ@“³1AlL@mjQAÌ«³1AlLÀ|jQAÌ€¬³1AlLÀ‘jQAÌ@½³1AlLà£jQÀʳ1AlLÀµjQAÌÀø³1AlLÀµjQAÌÀ ´1AlL@´jQAÌ€N´1AlL²jQAÌ€´1AlL ¬jQAÌÀ±´1AlL ¡jQAÌÀþ´1AlL•jQAÌ@Qµ1AlLà†jQAÌÀ~µ1AlLàjQAÌ€»µ1AlL@sjQAÌ@éµ1AlLgjQAÌ€ÿµ1AlL@XjQAÌ@¶1AlLGjQAÌÀ-¶1AlL€4jQAÌÀ2¶1AlL€)jQAÌ@ƒ¶1AlL "jQAÌ@ö1AlL$jQAÌÀä¶1AlL@&jQAÌù¶1AlLÀ4jQAÌÀý¶1AlLà@jQAÌ€3·1AlL CjQAÌa·1AlL`8jQAÌÀª·1AlL,jQAÌ@á·1AlL !jQAÌ€¸1AlLàjQAÌ€?¸1AlLàjQAÌ@w¸1AlL@ jQAÌ€~¸1AlLÀÓiQAÌr¸1AlL ÆiQAÌÀu¸1AlL µiQAÌ€ˆ¸1AlL`¬iQAÌ@Џ1AlL@žiQAÌ@ƒ¸1AlLiQAÌÀ~¸1AlL ‚iQAÌÀ~¸1AlLtiQAÌÀ¸1AlLàaiQAÌ€‰¸1AlL MiQAÌ€‹¸1AlL ?iQAÌÀޏ1AlL@,iQAÌÀ‰¸1AlLÀiQAÌ€Ž¸1AlLiQA̘¸1AlLÀñhQAÌ€«¸1AlL`àhQAÌ@²¸1AlL`ÏhQAÌ@Á¸1AlLºhQAÌ@Õ¸1AlLÀ¨hQAÌ@ä¸1AlL šhQAÌç¸1AlL “hQAÌ@í¸1AlL ‘hQAÌ@÷¸1AlL hQA̹1AlL’hÜQAÌ@8¹1AlL@˜hQAÌÀí¹1AlL€‚hQAÌ@ê¹1AlL€¥hQAÌÀUº1AlL€¦hQAÌ@º1AlL€¥hQAÌϺ1AlL ¢hQAÌ@»1AlL€žhQAÌN»1AlLžhQAÌ€¯»1AlL žhQAÌÀ÷»1AlLàžhQAÌD¼1AlL¡hQAÌ€w¼1AlL £hQAÌÀ«¼1AlLЧhQAÌ@Ú¼1AlL ªhQAÌ:½1AlLà¼hQAÌZ½1AlL@ÁhQAÌ€¢½1AlL ÌhQAÌý1AlLàÒhQAÌÀ¾1AlL âhQAÌñ½1AlLàiQAÌ@ܽ1AlL iQAÌ€ã½1AlL )iQAÌ@î½1AlL 2iQAÌ€ø½1AlL iQAÌÀ—Á1AlLà,iQAÌÀ¬Á1AlL iQAÌ€ªÁ1AlLàiQAÌÀªÁ1AlL€òhQA̤Á1AlL€ßhQAÌÀ‹Á1AlLÀÉhQAÌ@ˆÁ1AlLP·hQÄÁ1AlL°µhQAÌÀ‡Á1AlLÀ³hQAÌ€„Á1AlLžhQAÌ€…Á1AlL hQAÌ@Á1AlL@hQA̵Á1AlL€rhQAÌÈÁ1AlL VhQAÌ€ÉÁ1AlLÀAhQAÌ€¹Á1AlL@+hQAÌ@»Á1AlL€hQAÌ@Â1AlLÝ€ðgQAÌ5Â1AlL`àgQAÌÀfÂ1AlL`ÍgQAÌ€~Â1AlL`¼gQAÌ@zÂ1AlL ®gQAÌ€žÂ1AlL gQAÌÀÊÂ1AlLŠgQAÌÍÂ1AlL@wgQAÌÎÂ1AlLàdgQAÌ@ÈÂ1AlL@NgQAÌ€ÙÂ1AlL 8gQAÌëÂ1AlL@ gQAÌÀéÂ1AlLgQAÌ€éÂ1AlLàgQAÌ€öÂ1AlLÀöfQAÌ€Ã1AlLßfQAÌ€-Ã1AlLÀÈfQAÌÀpÃ1AlLÀ©fQAÌ€Ã1AlL –fQAÌuÃ1AlLÀ‡fQAÌ€qÃ1AlLpfQAÌÀ‰Ã1AlL@RfQA̱Ã1AlL@?fQAÌ@ÀÃ1AlL7fQAÌ@ÒÃ1AlL€.fQAÌÀâÃ1AlLàfQAÌ€æÃ1AlLfQAÌ@Ä1AlL ðeQAÌÀ Ä1AlL ÚeQAÌ/Ä1AlL€ÊeQAÌ€KÄ1AlL »eQAÌkÄ1AlLà§eQAÌ€ŒÄ1AlLÀ‘eQA̬Ä1AlL ~eQAÌÀ»Ä1AlL€peQAÌÀÂÄ1AlLp]eQAÌÄÄ1AlLZeQAÌ€ÕÄ1AlL`FeQAÌ€áÄ1AlL *eQAÌÀôÄ1AlL eQAÌÀòÄ1AlL eQAÌÅ1AlLàödQAÌ@Å1AlLàßdQAÌ"Å1AlL ÙdQAÌ€'Å1AlL ÐdQAÌ@5Å1AlLàÇdQAÌ€2Å1AlL ·dQAÌÀ(Å1AlL  dQAÌ€+Å1AlL€‹dQAÌ@9Å1AlL zdQAÌAÅ1AlL@bdQAÌ@NÅ1AlL`RdQAÌ€pÅ1AlLà@dQAÌÀÀÅ1AlL€!dQAÌ€èÅ1AlL dQAÌÆ1AlL  dQAÌÀ:Æ1AlL`dQAÌDÆ1AlL ôcQAÌ@=Æ1AlL€ècQAÌÀ*Æ1AlL€ÚcQAÌ@)Æ1AlLàÊcQAÌIÆ1AlLÀ¶cQAÌÀSÆ1AlL ¥cQAÌ@lÆ1AlL`™cQAÌ€ÆÞ1AlL`cQAÌ€$Ç1AlL`¡cQAÌVÇ1AlLÀ cQAÌ@²Ç1AlL`©cQAÌ@È1AlL`¯cQAÌ\È1AlLàµcQAÌ@³È1AlL`»cQAÌÉ1AlL`ÂcQAÌ€MÉ1AlLàÉcQAÌÀ¼É1AlLàÒcQAÌ€Ê1AlL`ÝcQAÌcÊ1AlL åcQAÌ@{Ê1AlL`ècQAÌÊ1AlL€×cQAÌ™Ê1AlL`ÊcQAÌ@œÊ1AlL@ºcQAÌ€‹Ê1AlL¢cQAÌ@zÊ1AlL cQAÌ@mÊ1AlLÀ~cQAÌ€]Ê1AlL gcQAÌÀNÊ1AlLÀScQAÌAÊ1AlLÀ8cQAÌ€6Ê1AlL`cQAÌ@.Ê1AlL€cQAÌÀ"Ê1AlL@ðbQAÌ@Ê1AlL@ãbQAÌÀhÉ1AlL€îbQAÌ5É1AlLàëbQAÌãÈ1AlL€ñbQAÌ¥È1AlL€öbQAÌ@iÈ1AlLübQAÌ€nÈ1AlL ÇbQAÌ€øÇ1AlLÏbQAÌ€È1AlLà²bQAÌ€5È1AlLà¤bQAÌ@@È1AlL0ŸbQAÌÀPÈ1AlL€–bQAÌ]È1AlL`‡bQAÌ@nÈ1AlL@qbQAÌÀ€È1AlLàYbQAÌ‘È1AlLCbQAÌ@È1AlL 0bQA̘È1AlLà"bQA̧È1AlL@ bQAÌ€ÍÈ1AlLàîaQAÌ€äÈ1AlLÞaQAÌÀøÈ1AlL ÇaQAÌÀôÈ1AlLÀaQAÌ€êÈ1AlL¶aQAÌÀƒÈ1AlL ®aQAÌÝÈ1AlLyaQAÌþÈ1AlL \aQAÌ@)É1AlL€JaQAÌHÉ1AlLà9aQAÌVÉ1AlLà2aQAÌ@<É1AlLaQAÌ@2É1AlL`aQAÌ€4É1AlLÀò`QAÌ=É1AlL â`QAÌ?É1AlLàß`QAÌ€JÉ1AlLÒ`QAÌ€jÉ1AlL Ä`QAÌ•É1AlL€µ`QAÌÀ«É1AlLÀ¤`QAÌ߀½É1AlL `QAÌÉÉ1AlL x`QAÌ@Ê1AlLÀ>`QAÌ€Ê1AlL (`QAÌ€¨Ê1AlL`+`QAÌ¥Ê1AlLà`QAÌ€¦Ê1AlLà`QAÌ€¨Ê1AlLî_QAÌÀ¦Ê1AlL×_QAÌÀ½Ê1AlLà«_QAÌ€ÖÊ1AlL@‰_QAÌéÊ1AlLÀy_QAÌúÊ1AlLàc_QAÌ€Ë1AlL`P_QAÌ€Ë1AlLÀA_QAÌ@!Ë1AlLà0_QAÌ@EË1AlL _QAÌ€QË1AlL _QAÌ€iË1AlL _QAÌsË1AlL0_QȦË1AlLà _QAÌÀ“Ë1AlL€_QAÌ@¹Ë1AlL Ü^QAÌ@çË1AlLÅ^QAÌÀøË1AlL£^QAÌ Ì1AlL ‰^QAÌÌ1AlLàn^QAÌ@óË1AlL`[^QAÌÀïË1AlL J^QAÌ€ùË1AlL:^QAÌ@ Ì1AlL )^QAÌ@,Ì1AlLà^QAÌ€GÌ1AlL`^QAÌ@fÌ1AlLpø]QAÌÀ`Í1AlL^QAÌ€„Í1AlL@^QAÌÉÍ1AlL$^QAÌÀÎ1AlL .^QAÌÀ_Î1AlLÀ7^QAÌÀ¤Î1AlLÀ?^QAÌÒÎ1AlL°G^QAÌ@ÕÎ1AlL )^QAÌÀëÎ1AlL ^QAÌ@êÎ1AlL€^QAÌÀ÷Î1AlLàö]QAÌ€Ï1AlL é]QAÌÀÏ1AlL@á]QAÌ@üÎ1AlL€Û]QAÌ€ÞÎ1AlL Ò]QAÌÑÎ1AlLÀÈ]QAÌÀÆÎ1AlLÀº]QAÌ@¿Î1AlL ±]QAÌ@£Î1AlL€©]QAÌÀ~Î1AlL ¢]QAÌ@RÎ1AlL€œ]QAÌÀ9Î1AlL]QAÌ!Î1AlL ˆ]QAÌüÍ1AlL`ˆ]QAÌ€ÄÍ1AlLÀ„]QAÌ@¤Í1AlL z]QAÌ€ŒÍ1AlLÀf]QAÌ@qÍ1AlL@Z]QAÌ@QÍ1AlL`Z]QAÌ@$Í1AlL`]àQAÌ@$Í1AlL@k]QAÌÍ1AlLÀv]QAÌÍ1AlL ]QAÌ€îÌ1AlL€†]QAÌÀÓÌ1AlLà‡]QAÌ@3Ì1AlL Œ]QAÌÀÌ1AlLà‰]QAÌ€ÜË1AlL`†]QAÌ Ë1AlL€‚]QAÌ@_Ë1AlL ]QAÌ-Ë1AlL`]QAÌ@Ë1AlL ]QAÌÀæÊ1AlL@‰]QAÌ@¿Ê1AlLÀ‚]QAÌ¡Ê1AlLà~]QAÌ€Ê1AlL |]QAÌÀgÊ1AlL z]QAÌKÊ1AlL y]QAÌ Ê1AlL w]QAÌ€ÛÉ1AlL ‚]QAÌ@˜É1AlL {]QAÌeÉ1AlL`r]QAÌ€0É1AlL€h]QAÌ@)É1AlL h]QAÌÀÉ1AlLàf]QAÌ@äÈ1AlL`j]QA̸È1AlLàf]QAÌ€ƒÈ1AlL`]QAÌ@cÈ1AlL X]QAÌ@7È1AlL€P]QAÌÀ.È1AlL O]QAÌÈ1AlLN]QAÌÀÈ1AlLàL]QAÌÀðÇ1AlL€E]QAÌÏÇ1AlL ]QAÌÀ¨Ç1AlLÀ]QAÌÀVÇ1AlL é\QAÌ@2Ç1AlL Û\QAÌ@Ç1AlLÀË\QAÌÀàÆ1AlLà½\QAÌÀ»Æ1AlL ²\QAÌÀ“Æ1AlL`¥\QAÌ€nÆ1AlLàš\QAÌ@žÆ1AlL ’\QAÌ€hÆ1AlLð\QAÌ@dÆ1AlLÀ€\QAÌ@8Æ1AlLàq\QAÌÀ Æ1AlLÀg\QAÌÀ¥Å1AlL`V\QAÌ€„Å1AlLH\QAÌ@oÅ1AlL€9\QAÌ@RÅ1AlL`&\QAÌ@1Å1AlL \QAÌ"Å1AlL\QAÌÀ!Å1AlL@÷[QAÌ@KÅ1AlL`ï[QAÌÀ]Å1AlL`ê[QAÌoÅ1AlL`â[QAÌ0Å1AlLÙ[QAÌ€íÄ1AlLÀÎ[QAÌÀÑÄ1AlLÉ[QAÌ€ºÄ1AlLÀÅ[QAÌ@¦Ä1AlL Â[QAÌÀšÄ1AlLá`¼[QAÌ@–Ä1AlL³[QAÌ€¦Ä1AlL¬[QAÌ€¹Ä1AlL¡[QAÌÆÄ1AlL ˜[QAÌ<Ã1AlL@ [QAÌÀeÃ1AlL [QAÌ7Ã1AlL@ [QAÌÄ1AlLàÍZQAÌ@ÜÃ1AlL ÇZQAÌ@Ä1AlLÀ½ZQAÌ@Â1AlLcZQAÌ@›Â1AlL ;ZQAÌ}Â1AlL€4ZQAÌ@lÂ1AlLà+ZQAÌ€RÂ1AlLàZQAÌ@UÂ1AlL€ZQAÌ@[Â1AlL ZQAÌ@MÂ1AlL ZQAÌ€6Â1AlL ùYQAÌ€Â1AlL òYQAÌÀ Â1AlL€éYQAÌ@Â1AlLàYQAÌÀöÁ1AlL€ÖYQAÌ@ìÁ1AlLÍYQAÌÀßÁ1AlLÃYQAÌÉÁ1AlL½YQAÌ©Á1AlL@ÀYQAÌ€tÁ1AlL ½YQAÌRÁ1AlL@»YQAÌ@%Á1AlL@µYQAÌòÀ1AlLÀ­YQAÌÏÀ1AlL ¨YQAÌ@¨À1AlLà¢YQAÌ@sÀ1AlLžYQAÌ>À1AlLYQAÌÀ À1AlL@ YQAÌÊ¿1AlLà¤YQAÌ€ ¿1AlLÀ­YQAÌÀ¿1AlL@³YQAÌ@Q¿1AlL@·YQAÌ@;¿1AlL`½YQAÌÀ¿1AlL ÂYQAÌ@ؾ1AlL@ÉYQAÌ€§¾1AlLÀÎYQAÌ@j¾1AlL@ÕYQAÌ@G¾1AlL ×YQA̾1AlL@ÛYQAÌÀã½1AlLÀÞYQAÌ@¦½1AlL€ÞYQAÌ_½1AlLÞYQAÌ9½1AlL ÜYQAÌÀ1½1AlL`ÜYQAÌ€+½1AlL0ÚYQAÌÀ½1AlLàÕYQAÌ€3½1AlL`ÌYQAÌà7½1AlL0ÊYQAÌÀX½1AlL ºYQAÌ`Z½1AlL¸YQAÌÀp½1AlLYQAÌ@ƒ½1AlLŠYQAÌ@†½1AlL„YQAÌ@‹½1AlLÀzYQAÌ޽1AlL jYQAÌÀŒ½â1AlLà_YQAÌÀ‰½1AlL`QYQAÌ€ƒ½1AlL@CYQAÌÀ½1AlL@3YQAÌÀ‚½1AlLÀ,YQAÌÀƒ½1AlL@%YQAÌ€½1AlL YQAÌ@z½1AlLà YQAÌl½1AlL€ûXQAÌ€Y½1AlL`îXQAÌ€H½1AlLßXQAÌÀ3½1AlLÀÎXQAÌ€!½1AlLÀÀXQAÌ€ ½1AlL ±XQAÌý¼1AlL@¤XQAÌã¼1AlL ”XQAÌÀ̼1AlLÀ‰XQA̳¼1AlLàuXQAÌÀœ¼1AlL`dXQAÌ€Œ¼1AlL€YXQAÌj¼1AlLàOXQAÌ€C¼1AlL EXQAÌ€6¼1AlLðAXQAÌÀ"¼1AlL@¼1AlLÀlYQAÌ€û»1AlL@fYQÀû1AlL€aYQAÌ@˜»1AlL€bYQAÌÀœ»1AlL@YQAÌÀ›»1AlLÀ—YQAÌ@•»1AlL¤YQAÌ’»1AlL@°YQAÌÀŠ»1AlL¼YQAÌ€A»1AlLÁYQAÌ@»1AlL ÁYQAÌ€åº1AlL ¿YQAÌ€¥º1AlL ¾YQAÌ€}º1AlL ½YQAÌ@Nº1AlL€»YQAÌ@1º1AlLà»YQAÌÀ,º1AlL ÓYQAÌ€ê¹1AlLÀÕYQAÌ@Ϲ1AlL ÚYQAÌ€¦¹1AlL@ßYQAÌÀ‚¹1AlLàäYQAÌ@c¹1AlL éYQAÌ€³¸1AlL nZQAÌû¸1AlL yZQAÌ€¹1AlL€ZQAÌÀH¹1AlL ƒZQAÌo¹1AlL„ZQAÌÀœ¹1AlL@†ZQAÌƹ1AlLÀˆZQAÌ÷¹1AlLàŠZQA̺1AlLÀŠZQAÌ_º1AlL †ZQAÌ€º1AlL „ZQAÌÙº1AlLÀ˜ZQAÌ€êº1AlL`žZQAÌ@ »1AlLà§ZQAÌ@*»1AlLà¯ZQAÌX»1AlLÀ¹ZQAÌÀ»1AlL@»ZQAÌ@P»1AlL ÁZQAÌÀ»1AlL ÃZQAÌ@éº1AlL ÀZQAÌĺ1AlL€¹ZQAÌ@§º1AlL`°ZQAÌ€sº1AlL©ZQAÌ\º1AlLà¸ZQAÌÀ6º1AlL@¹ZQAÌÀÿ¹1AlL ³ZQAÌÀÖ¹1AlL€¬ZQAÌÀ°¹1AlL`ªZQAÌÀ†¹1AlL®ZQAÌl¹1AlL³ZQAÌ@R¹1AlL`¼ZQAÌÀH¹1AlL ÉZQAÌÀE¹1AlL ØZQAÌ@F¹1AlL€äZQAÌ€I¹1AlL ëZQA̹1AlL€õZQAÌ׸1AlL`åZQAÌÀN¸1AlL`îZQAÌô·1AlL ôZQAÌ@Û·1AlL ÷ZäQAÌÀâ·1AlLÀ¤ZQAÌ@ý·1AlL`¡ZQA̸1AlLÀkZQAÌ@¸1AlLUZQAÌÀ ¸1AlL`DZQAÌÀñ·1AlLà4ZQAÌ@Õ·1AlLà*ZQAÌ€²·1AlLàZQAÌ@¦·1AlLàZQAÌ—·1AlL@ ZQAÌÀ‚·1AlL`ZQAÌ€q·1AlLÀýYQAÌÀ;¶1AlLÀZQAÌÀȵ1AlL€ZQAÌ€µ1AlL@ZQAÌÀQ´1AlLpZQAÌÀK´1AlLÐZQA̱³1AlL ZQAÌ€¨³1AlLàZQAÌÀ–³1AlL€ZQA̳1AlLàZQAÌ£³1AlL ýYQAÌ~³1AlL@øYQA̳1AlLçYQAÌ€Ù²1AlLÀâYQAÌ€w²1AlL@àYQAÌÀ0²1AlL€ÝYQA̲1AlLØYQAÌÀ̱1AlLÀÎYQA̱1AlL€ÜYQẢ°1AlLàZQAÌ@W±1AlLÀZQAÌ€=±1AlL`$ZQAÌ@-±1AlL€3ZQAÌ€b°1AlLà;ZQAÌ3°1AlL€[QAÌ€õ¨1AlL`J[QAÌÀ.©1AlL N[QAÌÀ$©1AlL `[QAÌ©1AlL j[QAÌ©1AlL`p[QAÌ€Þ¨1AlL@y[QAÌ@¿¨1AlL€|[QAÌ@¨¨1AlL €[QAÌÀ’¨1AlL „[QAÌÀq¨1AlLàŠ[QAÌ€[¨1AlL@[QAÌ@B¨1AlL “[QAÌ€)¨1AlLÀ—[QAÌ@ ¨1AlL€™[QAÌ@ì§1AlL`Ÿ[QAÌ@¼§1AlLà¡[QAÌ€›§1AlL £[QAÌ@§1AlL £[QAÌÀb§1AlL`¤[QAÌ€S§1AlL`¦[QAÌ9§1AlLÀ©[QAÌ€5§1AlL@³[QAÌ@-§1AlL »[QAÌ@$§1AlLÀÅ[QAÌÀ§1AlLÀÎ[QA̧1AlL@Õ[QAÌÀ§1AlL@Ý[QAÌ@§1AlL ì[QAÌ@#§1AlL õ[QAÌÀ.§1AlLàý[QAÌ`2§1AlL \QAÌ€7§1AlLà\QAÌÀ6§1AlL \QAÌ€0§1AlLà\QAÌ€2§1AlL$\QAÌ@0§1AlLÀ/\QAÌ1§1AlL`8\QAÌÀ3§1AlLA\QAÌ:§1AlL J\QAÌ@U§1AlL@Y\QAÌ@d§1AlL€`\QAÌ€z§1AlL€k\QAÌ€‚§1AlL€s\QAÌÀu§1AlLÀ–\QAÌ€l§1AlL©\QAÌ€d§1AlL ³\QAÌ\§1AlL ½\QAÌU§1AlL Ò\QAÌ@U§1AlL`Û\QAÌ@^§1AlL ä\QAÌ€g§1AlL î\QAÌ€s§1AlL`ö\QAÌ€§1AlLàý\QAÌ€¯§1AlL@]QÀɧæ1AlL€ ]QAÌÀÛ§1AlL ]QAÌò§1AlL ]QĄ1AlL(]QAÌ(¨1AlL 0]QAÌ€6¨1AlLÀ@]QAÌÀ9¨1AlL`K]QAÌ@C¨1AlL T]QAÌ@M¨1AlLà[]QAÌ€T¨1AlLc]QAÌÀ`¨1AlL`m]QAÌ@x¨1AlL z]QAÌ@ލ1AlL†]QAÌàœ¨1AlL¨]QAÌŸ¨1AlLà«]QAÌ@œ¨1AlL½]QAÌ€¤¨1AlL`Ç]QAÌ@¦¨1AlL@Ó]QAÌ@«¨1AlL@Þ]QAÌ@²¨1AlLàé]QAÌ€²¨1AlLð]QAÌ€µ¨1AlLðø]QAÌÀ¶¨1AlL ý]QĄ1AlL ^QAÌÀÔ¨1AlL@^QAÌÀì¨1AlL€#^QAÌ@©1AlL 1^QAÌ€!©1AlL <^QAÌ6©1AlL€B^QAÌÀI©1AlLI^QAÌ@V©1AlL M^QAÌÀ^©1AlL°O^QAÌ€v©1AlLW^QAÌ@•©1AlL°b^QAÌœ©1AlL@e^QAÌÀ²©1AlL@r^QAÌÀÈ©1AlL~^QAÌ@Ö©1AlL€‡^QAÌ@à©1AlL^QAÌÀá©1AlL0”^QAÌ@ã©1AlL ™^QAÌ@ê©1AlL ¡^QAÌú©1AlLà©^QAÌ€ ª1AlLÀ²^QA̪1AlL€¹^QAÌÀ7ª1AlL°¸^QAÌ€Sª1AlL@µ^QAÌÀlª1AlL ±^QAÌ€„ª1AlL ¯^QA|Wãꢪ1A¸ƒ‰¥­^QAÌ@ê1AlL ®^QAÌ€äª1AlL®^QA «WŸôª1A„PV‚°^QAÌ@ «1AlLà³^QAÌÀ3«1AlL ½^QAÌ@O«1AlL Ä^QAÌ@h«1AlL É^QAÌ€«1AlLàÏ^QAÌ ’«1AlLÔ^QAÌ›«1AlL Ö^QAÌ€£«1AlLàß^QĄ«1AlLÀè^QAÌ@Ô«1AlLè^QAÌê«1AlL€ù^QAÌç¬1AlL`ú^QAÌ@J¬1AlL`ú^QAÌp¬1AlLù^QAÌ€¬1AlL@ô^QAÌÀ­¬1AlLÀì^QÀȬ1AlL ã^QAÌ@Õ¬1AlL@Ý^QAÌ€ç¬1AlL Ö^QAÌÀù¬1AlL`Î^QAÌ@"­1AlL@Æ^QAÌÀG­1AlL Å^QAÌ€h­1AlL Æ^QAÌ€œ­1AlLÅ^QAÌÀâ­1AlL@Æ^QAÌ@ð­1AlLÐ^QAÌ@â­1AlLàÝ^QAÌÀÑ­1AlL ã^QAÌ@í1AlL€è^QAÌÀ¼­1AlL ñ^QAÌ@¦­1AlL`ý^QAÌ€|­1AlLÀ_QAÌI­1AlL  _QAÌ€­1AlLà_QAÌ€û¬1AlL _QAÌ€ÿ¬1AlL '_QAÌÀü¬1AlL`-_QAÌÀî¬1AlL 7_QAÌÀé¬1AlL`?_QAÌ@â¬1AlL`H_QAÌ@ج1AlLÀR_QAÌÕ¬1AlL[_QAÌÀݬ1AlLÀf_QAÌ@ê¬1AlL€g_QAÌÀð¬1AlLàg_QAÌ@­1AlL@j_QAÌ€K­1AlL`n_QAÌ@h­1AlL`p_QAÌŸ­1AlL r_QÀȭ1AlL`v_QAÌ€ó­1AlL y_QAÌ€!®1AlL z_QAÌ€Z®1AlL x_QAÌ@®1AlL€t_QAÌ€¤®1AlL€m_QAÌÕ®1AlL i_QAÌ@ ¯1AlL@f_QAÌ6¯1AlL@d_QAÌÀS¯1AlLÀb_QAÌ€‚¯1AlLa_QAÌÀ¼¯1AlL@^_QAÌî¯1AlL[_QA̰1AlLàZ_QAÌ5°1AlL€[_QAÌ]°1AlL\_QAÌ@~°1AlLZ_QAÌ@£°1AlL Z_QAÌÀŰ1AlLÀ]_QAÌÙ°1AlL d_QAÌê°1AlL@l_QAÌ@ñ°1AlL€v_QAÌ€±1AlL@}_QAÌ ±1AlLÀƒ_QAÌ@±1AlLŽ_QAÌ)±1AlL –_èQAÌ@4±1AlL` _QAÌ€+±1AlLà­_QAÌÀ&±1AlL`¸_QAÌ€-±1AlL€À_QAÌ>±1AlL Ê_QAÌ€K±1AlLàÏ_QAÌé°1AlLÚ_QAÌ@ ±1AlL€è_QAÌ€±1AlLàî_QA̱1AlLÀû_QAÌ@±1AlL`QAÌ@±1AlL  `QAÌ@ ±1AlLÀ`QAÌ€ ±1AlL `QAÌB°1AlLà0`QAÌ€C°1AlLà9`QAÌ@G°1AlL J`QAÌZ°1AlLV`QAÌ€k°1AlL f`QAÌ€°1AlLw`QAÌ.°1AlL ‹`QAÌ€°1AlL `QAÌ@ä¯1AlL@“`QÀį1AlL •`QẢ¯1AlL •`QAÌ@M¯1AlL —`QAÌÀ&¯1AlL˜`QAÌÀý®1AlLÀ™`QAÌÛ®1AlLœ`QAÌ®1AlL@ž`QAÌ€¥®1AlL ¢`QAÌ€‡®1AlLà¥`QAÌÀa®1AlLp•`QAÌ@>®1AlL€œ`QAÌÀ!®1AlL`¢`QAÌ€Ò­1AlLà‹`QAÌ€ö­1AlLà…`QAÌ€5®1AlL €`QAÌL®1AlLÀz`QAÌÀp®1AlLàu`QAÌ€Œ®1AlL@p`QA̳®1AlL k`QAÌá®1AlL e`QAÌ€ú®1AlL ``QAÌÀ¯1AlL]`QAÌ3¯1AlLY`QAÌ/¯1AlL`Q`QAÌ@ ¯1AlL`H`QAÌí®1AlL€=`QAÌ@Õ®1AlLà4`QAÌ¿®1AlL -`QAÌ@–®1AlL`$`QAÌ@u®1AlLÀ`QAÌ€V®1AlL `QAÌ:®1AlL0 `QAÌ$®1AlL `QAÌ®1AlL€`QAÌ@®1AlLà `QAÌ€®1AlL &`QAÌÀ®1AlL€1`QAÌ@®1AlL7`QAÌ@®1AlL :`QAÌü­1AlL@E`QAÌ@â­1AlLé K`QÀʭ1AlL@M`QAÌ@¿­1AlL@E`QAÌÀ½­1AlLà=`QAÌÀ´­1AlL`2`QAÌ@²­1AlLÀ'`QAÌÀ_­1AlL )`QAÌ@u­1AlL =`QAÌÀ.­1AlLD`QAÌÀ ­1AlL`G`QAÌ€b­1AlL0„`QAÌ@†­1AlLàœ`QAÌÀ­1AlL€©`QAÌ@ö¬1AlL —`QAÌ_¬1AlL  `QAÌ@‡¬1AlL@¾`QAÌÁ¬1AlL¸`QAÌ@í¬1AlLµ`QAÌ€ì¬1AlLp¹`QAÌ€ç¬1AlL€Í`QAÌ@ä¬1AlLàÝ`QAÌ€è¬1AlLç`QAÌ€@­1AlLé`QAÌÀ;­1AlLàà`QAÌ@@­1AlL Ñ`QAÌI­1AlLàÇ`QAÌ@R­1AlL€¼`QAÌ@X­1AlL@±`QAÌ@‹­1AlL ¬`QAÌ€²­1AlL@ª`QÀЭ1AlL ·`QAÌû­1AlLP²`QAÌ+®1AlL€Â`QAÌ‹®1AlL®`QAÌ€¸®1AlL º`QÀƮ1AlLÖ`QAÌÀo®1AlLðé`QAÌ@]®1AlL ß`QAÌG®1AlL Õ`QAÌâ­1AlL Ú`QAÌ@ ®1AlLÀì`QAÌ€-®1AlL`ø`QAÌ@J®1AlLÀaQAÌ€f®1AlLaQAÌ”®1AlL aQAÌ€½®1AlL aQAÌÖ®1AlL€aQAÌ€Á®1AlL *aQAÌ9®1AlLÀ(aQAÌ8®1AlLàaQAÌ€ô­1AlL`aQAÌ®1AlLà/aQAÌ@Á­1AlL€0aQAÌÀË­1AlL`SaQAÌÀ­1AlL`UaQAÌ€š­1AlLmaQAÌ€ƒ­1AlL@waQAiµÌ€8º1AlL€BWQAÌÀº1AlL@*WQAÌ º1AlL WQAÌ@ó¹1AlL WQAÌ@ã¹1AlL óVQÀܹ1AlLàÜVQAÌ€Û¹1AlêLÀÊVQAÌÀƹ1AlLÀºVQAÌ€¹1AlL@«VQAÌÀ`¹1AlL`žVQAÌ9¹1AlLVQAÌ ¹1AlL vVQAÌ€Þ¸1AlL dVQAÌ@»¸1AlL NVQAÌÀž¸1AlL *VQAÌ€Ž¸1AlLÀVQAÌr¸1AlL VQAÌ€K¸1AlLÀñUQAÌÀ.¸1AlLæUQAÌÀ ¸1AlL€ÏUQAÌ€¸1AlL@ºUQAÌ@ò·1AlL€ UQAÌ€é·1AlL€”UQAÌàÛ·1AlL¨UQAÌ@É·1AlLàˆUQAÌÀ™·1AlL`tUQAÌx·1AlL`cUQAÌ€m·1AlLDUQAÌÀ^·1AlL 1UQAÌX·1AlL`!UQAÌÀQ·1AlL UQAÌÀH·1AlL`UQAÌ@F·1AlL ìTQAÌÀP·1AlL€ÜTQAÌg·1AlLà¾TQAÌj·1AlL@¬TQAÌ@|·1AlLàŽTQAÌ€y·1AlL wTQAÌÀy·1AlL UTQ÷1AlL@CTQĂ·1AlL`8TQAÌ@•·1AlL (TQÀܷ1AlLàòSQAÌÀë·1AlL`ãSQAÌ@ñ·1AlL ÝSQAÌÀ ¸1AlL ÃSQAÌÀ%¸1AlL`±SQAÌ€<¸1AlL`¥SQAÌÀP¸1AlL ŽSQAÌ€O¸1AlL uSQAÌ@H¸1AlL `SQAÌ?¸1AlLKSQAÌ@;¸1AlLÀ,SQAÌÀ9¸1AlL`SQAÌ:¸1AlL€SQAÌÀ9¸1AlL€ SQAÌ€8¸1AlLÀSQAÌ€)¸1AlLàôRQAÌ%¸1AlL èRQAÌ%¸1AlLPÜRQAÌ€¸1AlL€ÛRQAÌÀü·1AlL ÙRQAÌ€×·1AlL`ÑRQAÌ@¹·1AlL ÉRQAÌÀŸ·1AlLÁRQAÌ€Y·1AlL`¼RQAÌÀ·1AlLÀ¸RQAÌ€¹¶1AlL`¶RQAÌÀG¶1AlL ¶RQAÌÞµ1AlL ¹RQAÌ@ëµ1AlLºRQAÌÀ)µ1AlL@·RQAÌ@¼´1AlLàµRQAÌÀ<´1AlLà³RQAÌ@ð³1AlL ³RQAÌr³1AlL@´RQAÌ€ð²1AlL¬RQAÌ€Š²1AlL ¤RQAÌÀ,²1AlL@¤RQA̯±1AlL`¤RQAÌÀG±1AlL ¢RQAÌ@á°1AlL ¥RQAÌÀo°1AlLÀ«RQA̰1AlL@¯RQAÌÀ¤¯1AlLà³RQAÌO¯1AlL`´RQAÌí®1AlL¶RQAÌ®1AlL »RQAÌÀº­1AlLºRQAÌÀÁ­1AlLÀÄRQAÌ@È­1AlL ÍRQAÌÒ­1AlLÀÝRQAÌ@Õ­1AlL ëRQAÌ€Ö­1AlL@öRQAÌ@â­1AlL@SQAÌ€æ­1AlL€SQAÌ@ë­1AlL*SQAÌÀê­1AlL@7SQAÌ@õ­1AlL SSQAÌ@ù­1AlL`eSQAÌ€ù­1AlL@vSQAÌ@ú­1AlL`†SQAÌÀü­1AlL`›SQAÌ@ü­1AlLà§SQAÌø­1AlL»SQAÌü­1AlL ÌSQAÌ@®1AlL0èSQAÌ ®1AlL TQAÌÀ®1AlL`TQAÌÀ ®1AlL@.TQAÌ0®1AlL CTQAÌ@F®1AlL€UTQAÌÀd®1AlLHnTQAÌÀh®1AlL qTQÄ®1AlLˆTQAÌ@¤®1AlL`™TQAÌ@Ï®1AlL€±TQAÌè®1AlL€ÄTQAÌý®1AlL€ÔTQAÌÀ¯1AlL ëTQAÌÀ%¯1AlL€öTQAÌ@H¯1AlLUQAÌ€X¯1AlL-UQAÌ@v¯1AlL`=UQAÌÀ‘¯1AlLÀUUQAÌ€˜¯1AlL@eUQAÌ@©¯1AlLàxUQAÌÀº¯1AlLà‰UQAÌ€Ö¯1AlLÀ™UQAÌد1AlL`UQÀد1AlLŸUQÀݯ1AlLà¬UQAÌ@ݯ1AlLÀ»UQAÌï¯1AlL€ÐUQAÌì€÷¯1AlLÀàUQAÌ€ú¯1AlLóUQAÌ@°1AlL VQAÌÀ°1AlL@"VQA̰1AlL@;VQA̰1AlL€MVQAÌÀ°1AlL€`VQAÌ=°1AlLhVQAÌ€j°1AlL`vVQAÌ€{°1AlLÀ„VQAÌ€‹°1AlL VQA̪°1AlLà–VQAÌ€¿°1AlLÀ¯VQAÌȰ1AlL ÁVQAÌ@ɰ1AlL@ÃVQẢ³1AlL€WQAÌ€Á³1AlL WQAÌ<´1AlLWQAÌ@›´1AlLàWQAÌ€ä´1AlL@$WQAÌ€7µ1AlL.WQAÌ€tµ1AlL@3WQAÌÀϵ1AlL`4WQAÌ ¶1AlLà3WQAÌÀH¶1AlL JWQAÌ@ˆ¶1AlLUWQA̸¶1AlL bWQAÌ@ó¶1AlL@jWQAÌÀ·1AlLðlWQAÌ€#·1AlL sWQAÌ?·1AlL xWQAÌ€˜·1AlLˆWQAÌ×·1AlL ‹WQAÌ@Ý·1AlLà‹WQAÌÀ#¸1AlL`ŽWQAÌÀr¸1AlL`”WQA̸1AlL•WQAÌ€•¸1AlL0–WQAÌè¸1AlL`šWQAÌÀE¹1AlLWQAÌ€ï¹1AlL`ŸWQAÌ€€º1AlL€¥WQAÌ@Ùº1AlLà¦WQAÌÀ‘º1AlL`zWQAÌtº1AlLÀiWQAÌIº1AlLàRWQAÌ€8º1AlL€BWQAiRÌ€vž1AlL hQAÌ@¶ž1AlL ‰hQAÌøž1AlLÀ„hQAÌTŸ1AlL€hQAÌ@ƒŸ1AlL €hQAÌ€»Ÿ1AlL€€hQAÌ€âŸ1AlL@~hQAÌ€ 1AlL@hQAÌ@K 1AlL€hQAÌ‚ 1AlLÀ†hQAÌ@® 1AlL€‡hQAÌÚ 1AlL‚hQAÌù 1AlL€|hQAÌ¡1AlLàuhQAÌÀ&¡1AlL phQAÌ@E¡1AlL hhQAíÌ€U¡1AlL `hQAÌÀw¡1AlL QhQAÌÀ ¡1AlLà@hQAÌÀÆ¡1AlL7hQAÌî¡1AlL /hQAÌ@¢1AlL@+hQAÌ@3¢1AlL`(hQAÌÀ=¢1AlLàhQAÌÀ>¢1AlL hQAÌ€=¢1AlLÀhQAÌÀ1¢1AlL hQAÌ€,¢1AlL€øgQAÌ€(¢1AlL`ígQAÌ@"¢1AlL`ãgQAÌÀ¢1AlL@ÜgQAÌæ¡1AlLàÞgQAÌ€°¡1AlLãgQAÌ@€¡1AlL ægQAÌ€K¡1AlLëgQAÌ ¡1AlLïgQAÌÀÀ 1AlL€ôgQAÌ€¥ 1AlL€õgQAÌ@Ÿ 1AlLàêgQAÌÀ™ 1AlL ÚgQAÌ€‹ 1AlL@ÈgQAÌÀx 1AlLà¢gQAÌ€` 1AlL sgQAÌG 1AlL IgQAÌ@9 1AlL=gQAÌÀ, 1AlL3gQAÌ@ñŸ1AlL@îfQAÌÒŸ1AlLÀñfQA̰Ÿ1AlL`ðfQAÌ’Ÿ1AlL ðfQAÌpŸ1AlL ófQAÌÀOŸ1AlLÀöfQAÌ€Ÿ1AlL gQAÌÁž1AlLgQAÌ@ž1AlL€gQAÌÀCž1AlLÀ"gQAÌ ž1AlL +gQAÌ×1AlL€4gQAÌ™1AlL >gQAÌ@u1AlL€BgQAÌx1AlLEgQAÌž1AlL×gQAÌÀé1AlLàÖgQAÌ@Ï1AlL ÛgQA̶1AlLægQAÌÀ¸1AlL ïgQAÌ@Ï1AlL ügQAÌÀõ1AlL`hQAÌÀž1AlL@hQAÌÀž1AlLÀ hQAÌÀB1AlL@*hQAÌf1AlL5hQAÌÀ~1AlLÀ=hQAÌœ1AlLÀDhQAÌ€µ1AlLOhQAÌÀÌ1AlL@\hQAÌÀð1AlLÀhhQAÌž1AlL`whQAÌ@$ž1AlL`‚hQAÌ6ž1AlL@ŠhQAÌ@Fž1AlLÀhQAÌ€vž1AlL hQAi$Ì@"º1AlL !YQAÌ€$º1AlL`YQAÌ@*º1AlL YQAÌÀ-º1AlLÐòXQAÌ@Ò¹1AlLûXQAÌ@»¹1AlLàýXQAÌ@“¹1AlL@YQAÌÀg¹1AlLYQAÌ*¹1AlL€ YQAÌâ¸1AlL@YQAÌ€¼¸1AlL@YQAÌ@£¸1AlL YQAÌc¸1AlLÀYQAÌ@8¸1AlL &YQAÌ€!¸1AlL€,YQAÌ€Ó·1AlL`1YQAÌ€®·1AlL@4YQAÌη1AlLÀEYQAÌ@û·1AlL TYQAÌÀ¸1AlL@^YQAÌ@9¸1AlLàhYQø1AlL kYQAÌ@¹1AlL qYQAÌŒ¹1AlL@xYQAÌ€´¹1AlLÀ{YQAÌÓ¹1AlL pYQAÌã¹1AlL fYQA̺1AlL`YQAÌ€Šº1AlL ZYQAÌ@غ1AlLàUYQAÌúº1AlLÀPYQAÌÀóº1AlLÀBYQAÌÀîº1AlL7YQAÌͺ1AlL2YQAÌ€~º1AlLÀ*YQAÌ@"º1AlL !YQAi Ì@«1AlLà _QAÌ@Ùª1AlLð^QAÌ€¡ª1AlLpô^QAÌ€0ª1AlL€ý^QAÌ€7ª1AlL€_QAÌ@Wª1AlL`_QAÌ@ª1AlL@"_QAÌ@©1AlLÀ1_QAÌŽª1AlL{_QAÌ€À«1AlLàQ_QAÌ€„«1AlL@6_QAÌ@«1AlLà _QAi ÌÀ0»1AlL@©YQAÌÀ»1AlL°ŸYQAÌèº1AlLà¢YQAÌ€¾º1AlLà¨YQAÌ@Òº1AlLà±YQAÌ€Öº1AlL ·YQAÌ@»1AlL ¸YQAÌL»1AlLÀ¹YQAÌÀv»1AlL ·YQAÌ_»1AlL ±YQAÌÀ0»1AlL@©YQAþïà|i1AlL`(QAÌ€„i1AlL )QẢi1AlL +QAÌ i1AlLp,QAÌ “i1AlLð,QAÌ€œi1AlL,QAÌ`¡i1AlL@+QAÌ@§i1AlL@+QAÌÀ­i1AlL,QAÌ ±i1AlL*QAÌÀ²i1AlL (QAÌÀ²i1AlL'QAÌ ·i1AlL`%QAÌÀ¿i1AlL`%QAÌ Æi1AlL`%QAÌÌi1AlL$QAÌ Ói1AlL°"QAÌ Þi1AlL`!QAÌèi1AlLP!QAÌÀði1AlLà!QAÌ ÷i1AlL°"QAÌÀüi1AlL$QAÌpj1AlL°%QAÌ j1AlL`'QAÌ` j1AlLp(QAÌàj1AlL°(QAÌj1AlLÀ)QAÌj1AlLÐ)QAÌ`#j1AlL@*QAÌ*j1AlLh*QAÌÀ/j1AlL@+QAÌ€5j1AlLP+QAÌÀ9j1AlL`*QAÌ@?j1AlLÀ)QAÌÀKj1AlL@*QAÌ@Sj1AlL`*QAÌ Zj1AlLð)QAÌÀaj1AlL@)QAÌ`gj1AlL0(QAÌÀkj1AlL€&QAÌ oj1AlL $QAÌ€rj1AlL°&QAÌ|j1AlLp#QAÌÀ‰j1AlL@!QAÌ€’j1AlL QAÌ€˜j1AlLÀQAÌÀžj1AlLpQAÌÀ¢j1AlL QAÌ€®j1AlLQAÌ@µj1AlLàQAÌÀ»j1AlLÀQAÌÆj1AlL@QAÌÀÏj1AlLàQAÌÀÕj1AlL@QAÌ@Ûj1AlLÀQAÌ äj1AlL0QAÌÀíj1AlL@QAÌ@ûj1AlL QAÌ€ûj1AlL€QAÌ@k1AlL QAÌ%k1AlLÀ QAÌ@%k1AlLQAÌ4k1AlL@QAÌ@?k1AlL ðQAÌGk1AlL@QAÌÀLk1AlL`QAÌ Vk1AlLPQAÌÀ^k1AlL@QAÌ@nk1AlL€QAÌ@wk1AlL QAÌ€k1AlLÀQAÌÀ†k1AlL QAÌÀŒk1AlLQAÌ@“k1AlL`QAÌ k1AlL QA̳k1AlL QAÌ€¾k1AlLQAÌ€Ôk1AlL ÿ€QAÌÀÚk1AlLÀþ€QAÌÀÞk1AlL ý€QAÌ€äk1AlLPü€QAÌ`ìk1AlLý€QAÌ€òk1AlL ý€QAÌ€ýk1AlL`ü€QAÌÀl1AlLü€QAÌ@ l1AlL û€QAÌl1AlL@û€QAÌÀl1AlLàú€QAÌÀ(l1AlL ú€QAÌ€/l1AlL€ú€QAÌ@;l1AlL`ú€QAÌHl1AlL ú€QAÌ Nl1AlL8û€QAÌÀEl1AlLQAÌÀGl1AlL0QAÌQl1AlLÀQAÌÀYl1AlL@QAÌÀbl1AlL QAÌll1AlLÀQAÌyl1AlLQAÌ€l1AlLÀQAÌà„l1AlLØQAÌÀl1AlLQAÌÀsl1AlL`ÿ€QAÌ€tl1AlL ü€QAÌ@ol1AlL`ý€QAÌ€il1AlL¸ý€QAÌ`al1AlL@ü€QAÌ€bl1AlL€ù€QAÌ`ll1AlL`ø€QAÌ sl1AlLxù€QAÌÀ‚l1AlL ù€QAÌÀƒl1AlLðý€QAÌà„l1AlLØQAÌ€l1AlLÀQAÌ@•l1AlLQAÌœl1AlLðQAÌÀ¢l1AlLÀQĄl1AlLøÿ€QAÌ ­l1AlL8þ€QAÌ`²l1AlLà÷€QAÌ€·l1AlL0÷€QAÌÀ¹l1AlL`õ€QAÌ`Ãl1AlL0ô€QAÌ€Çl1AlLàò€QAÌÐl1AlLpô€QAÌÀÝl1AlLàñ€QAÌêl1AlñLñ€QAÌ€õl1AlL ð€QAÌ€ûl1AlLñ€QAÌàm1AlLØò€QAÌà m1AlLHò€QAÌm1AlLÐó€QAÌm1AlLô€QAÌ€ m1AlLàõ€QAÌ€m1AlLPø€QAÌàm1AlL`ú€QAÌ@(m1AlL@û€QAÌ€.m1AlLü€QAÌÀ4m1AlLàü€QAÌ@Cm1AlL0ÿ€QAÌ@am1AlL QAÌÀ†m1AlLÀQAÌ€–m1AlLpQAÌ@¨m1AlLàQAÌ€¸m1AlL`QAÌÀÅm1AlLPQAÌÏm1AlL€ÿ€QAÌÚm1AlLÿ€QAÌåm1AlL€ü€QAÌ@ñm1AlL@ü€QAÌ€÷m1AlL ü€QAÌ@üm1AlLþ€QAÌÀùm1AlLPQAÌÀn1AlLQAÌ€n1AlLQAÌÀ n1AlL°QAÌ@n1AlLHQAÌÀ n1AlL QAÌ#n1AlL QAÌ@*n1AlL QAÌÀ1n1AlLÐ QAÌÀ8n1AlL° QAÌ€7n1AlL°QAÌ@En1AlLÐQAÌWn1AlL@QAÌÀZn1AlLQAÌZn1AlLØQAÌ@]n1AlLQAÌ@dn1AlL°QAÌÀln1AlL°QAÌ@sn1AlLàQAÌ€|n1AlLðQĂn1AlLxQAÌ@ˆn1AlL QAÌ@ƒn1AlLp"QAÌÀ‰n1AlL0$QAÌ”n1AlL0%QAÌ›n1AlL0&QAÌÀ n1AlL 'QAÌÀ¢n1AlL)QAÌ®n1AlL`+QAÌ€´n1AlL°,QAÌ@¾n1AlL .QAÌ@Än1AlLð.QAÌ0Ên1AlL`0QAÌÀÔn1AlLP0QAÌ@ãn1AlL°2QAÌ€ín1AlLÐ2QAÌ€ín1AlLà/QAÌæn1AlL`-QAÌëòn1AlL`+QAÌÀën1AlLà)QAÌ@ìn1AlLÐ&QAÌên1AlL0$QAÌ@ãn1AlLà"QAÌ Ún1AlL¸!QAÌÖn1AlL QAÌ€Ön1AlL QAÌ€×n1AlL€QAÌÜn1AlLÀQAÌàn1AlLQAÌ€çn1AlL QAÌ în1AlL QAÌ`øn1AlL QAÌo1AlLQAÌÀ o1AlL°QAÌào1AlLPQA8ªyü!o1Aø'iQAÌào1AlLxQAÌo1AlLPQAÌ`$o1AlL°QAÌ0.o1AlL4QAÌÀ4o1AlLQAÌÀ2o1AlLÐQA¸é®*4o1AòUQAÌ0>o1AlLŒQAÌ0=o1AlL°QAÌàDo1AlL@QAÌ@Qo1AlL QAÌ@Yo1AlL0QAÌÀfo1AlL`QAÌjo1AlL@QAÌlo1AlLÀQAÌto1AlLQAÌ@}o1AlL`QĂo1AlL QAÌÀ’o1AlL QAÌŸo1AlLàQAÌ€©o1AlL@QA̱o1AlLøQAÌÀ·o1AlL@QAÌ@»o1AlL\QA̹o1AlLQA̱o1AlLÐQAÌ®o1AlL0QAÌ ¬o1AlL  QAÌ€­o1AlL "QAÌ@¹o1AlLð#QAÌÀºo1AlLP&QA̺o1AlL°)QAÌàÄo1AlLX)QAÌ@Ìo1AlLp)QAÌ€Öo1AlL *QAÌ@áo1AlL +QAÌèo1AlLÀ+QAÌ ìo1AlLÀ,QAÌ@óo1AlL€-QAÌPùo1AlL4.QAÌ€ÿo1AlL .QAÌàp1AlL¨.QAÌÀp1AlL .QAÌ@p1AlLÀ-QAÌ€-p1AlLÈ-QAÌ€3p1AlL°.QAÌó@:p1AlL`/QAÌ€Cp1AlL.QAÌÀKp1AlL@-QAÌàRp1AlLH+QAÌ€Yp1AlL@)QAÌÀ_p1AlL (QAÌ€jp1AlLà'QAÌ op1AlLX&QAÌÀwp1AlL€%QAÌp1AlLà#QAÌ‚p1AlLÀ!QAÌ€p1AlL°QAÌp1AlLQAÌ€zp1AlLˆQAÌà}p1AlLðQAÌ…p1AlLQAÌŒp1AlLˆQA¬V8Žp1A"RQAÌà˜p1AlL8QAÌ Ÿp1AlLèQAÌ@¦p1AlL QAÌÀ¬p1AlL€QAÌ€­p1AlLXQAÌÀ±p1AlLQAÌ´p1AlL@QAÌÀ¶p1AlL` QAÌ@¶p1AlL€ QAÌÀ«p1AlL QA̱p1AlLàQAÌ µp1AlL QAÌÀ¸p1AlL€QAÌ¿p1AlLàQAÌàÅp1AlLÀQAÌ@Êp1AlLÀÿ€QAÌÒp1AlL€þ€QAÌ€Ùp1AlLý€QAÌÀãp1AlL ú€QAÌíp1AlL@ú€QAÌ@ôp1AlLÀø€QAÌ@ÿp1AlL€ø€QAÌ€q1AlLÀú€QAÌ€q1AlL€û€QAÌ€q1AlLý€QAÌ0q1AlLþ€QAÌq1AlLàü€QAÌ(q1AlL ü€QAÌÀ.q1AlL@ý€QAÌÀ2q1AlL`þ€QAÌt1AlL0þ€QAÌ€At1AlLQAÌDt1AlLPQAÌ?t1AlLQAÌ4t1AlLPQAÌ@-t1AlL€QAÌÀ2t1AlL  QAÌ*t1AlL0 QAÌÀt1AlLpQAÌ@t1AlL°QAÌ€t1AlL QAÌ€t1AlL QAÌ@øs1AlL`QAÌñs1AlLpQAÌ@ës1AlL@QAÌäs1AlLÐQAÌÀÜs1AlLÀQAÌÀÕs1AlLPQAÌ@Ís1AlLQAÌ@Æs1AlLQAÌà¿s1AlLàQAÌ`²ös1AlL QAÌ@¬s1AlL@QAÌàªs1AlL°QAÌ¥s1AlL  QAÌÀ£s1AlLP"QAÌ€©s1AlL $QAÌ@²s1AlL%QAÌ@½s1AlLð$QAÌ@Äs1AlL@$QAÌÀÌs1AlLÀ#QAÌ€Ôs1AlL0#QAÌ@Üs1AlL@"QAÌås1AlL`!QAÌÀìs1AlL€ QAÌôs1AlLQAÌÀüs1AlL QAÌt1AlLQAÌ t1AlL°QAÌ€t1AlLQAÌÀt1AlLÐQAÌ€t1AlL€QAÌ$t1AlLÀQAÌ)t1AlLÐQAÌÀ/t1AlLQAÌ ;t1AlL@QAÌÀJt1AlL QAÌVt1AlLx QAÌÀZt1AlL@ QAÌ€ct1AlL° QAÌ€it1AlLÀQAÌ@ut1AlL€QAÌ€|t1AlLQAÌ@„t1AlL€QAÌ@Œt1AlLpQAÌÀ”t1AlLðQAÌÀt1AlLQAÌ@¨t1AlLàQAÌÀÄt1AlL`ý€QAÌÌt1AlLPü€QAÌÕt1AlLPü€QAÌåt1AlL`û€QAÌ€ët1AlL û€QAÌ€ót1AlL`ù€QAÌ@ót1AlL ÷€QAÌ€ñt1AlL@ö€QAÌ ët1AlL8ö€QAÌ@åt1AlL÷€QAÌ@Ùt1AlL°ö€QAÌÀÑt1AlLàö€QAÌÀÂt1AlL@ö€QAÌ»t1AlL ö€QA̲t1AlL0ö€QAÌ€°t1AlL ò€QAÌ«t1AlL î€QAÌ ªt1AlL ì€QAÌ€ªt1AlLê€QAÌ©t1AlLàç€QAÌÀ¢t1AlLØâ€QAÌ€£t1AlLá€QAÌ`¦t1AlL߀QAÌ«t1AlL°Ý€QAÌ@²t1AlL Ü€QA̵t1AlLÀÚ€QAÌ€»t1AlLPÙ€QAÌ÷ÀÁt1AlLà×€QAÌÀËt1AlLÐÕ€QAÌ@Òt1AlLÔ€QAÌ×t1AlLÒ€QA¸é®jÔt1Aæ‚«ЀQAÌ Øt1AlL Ì€QAÌpÞt1AlLpÈ€QAÌ€ât1AlL Æ€QAÌÀæt1AlLÅ€QAÌ@ët1AlL€Ã€QAÌðt1AlL €QAÌôt1AlL€À€QAÌàõt1AlLð¾€QAÌ€üt1AlL€¼€QAÌu1AlL€º€QAÌu1AlLP·€QAÌàu1AlLà´€QAÌ€u1AlL€³€QAÌ@u1AlLÀ±€QAÌÀ!u1AlL€±€QAÌ@+u1AlL ¯€QAÌÀ3u1AlL0®€QAÌÀ9u1AlL¬€QAÌÀ=u1AlLÀª€QAÌ€Fu1AlL0©€QAÌ€Ru1AlLЧ€QAÌ@Yu1AlL ¨€QAÌ€`u1AlL§€QAÌ@eu1AlL`¥€QAÌeu1AlL ¡€QAÌÀmu1AlLÀž€QAÌuu1AlL`œ€QAÌ€{u1AlL€š€QAÌ@u1AlL@™€QAÌ€„u1AlLà—€QAÌÀ‰u1AlLÀ–€QAÌÀŽu1AlLÀ•€QAÌÀ–u1AlL ”€QAÌ€žu1AlLð“€QA̤u1AlLH’€QAÌ€¯u1AlL€QAÌÀµu1AlL €QA̽u1AlLà€QAÌ@Çu1AlLPŒ€QAÌ@Ôu1AlL€Š€QAÌ€Ýu1AlL@‰€QAÌÀæu1AlLà‡€QAÌ@ïu1AlL€‡€QAÌ@ûu1AlL€†€QAÌÀv1AlL …€QAÌ@v1AlLÀ„€QAÌÀv1AlL@„€QAÌ@#v1AlLà†€QAÌ*v1AlLÀ‰€QAÌ8v1AlL0†€QAÌFv1AlLÀ…€QAÌàQv1AlL`†€QAÌ€lv1AlLPƒ€QAä5UUtv1Aæ‚«Šƒ€QAÌà|v1AlLƒ€QAÌð†v1AlLƒ€QAÌ€„v1AlLÀ€€QAÌàŒv1AlLp€QAÌ@’v1AlL ø€QAÌ@—v1AlLà~€QAÌœv1AlL˜|€QAÌ@£v1AlLp{€QAÌ@¤v1AlLày€QAÌ@¨v1AlLx€QAÌ@®v1AlL°x€QAÌ€«v1AlLÀv€QAÌ€³v1AlLÀw€QA̳v1AlLPu€QAÌÀ¶v1AlL`r€QAÌÀ¿v1AlL˜r€QAÌ@Äv1AlLàs€QAÌ€Ëv1AlLs€QAÌ@Ðv1AlLÐp€QAÌÆv1AlL o€QAÌ@Ìv1AlLÀn€QAÌàÒv1AlLn€QAÌÙv1AlLÀl€QAÌ@Ûv1AlL k€QAÌÚv1AlL@i€QAÌ Øv1AlLàg€QAÌ`Üv1AlLf€QA̰âv1AlL0e€QAÌÀãv1AlLÀb€QAÌàêv1AlLÐb€QAÌ€ív1AlL`€QAÌÀðv1AlL@_€QAÌ@õv1AlLÐ]€QAÌõv1AlL`\€QAÌ@ív1AlLÐ\€QAÌ€îv1AlL`[€QAÌ`îv1AlLY€QAÌÀôv1AlLPX€QAÌöv1AlLV€QAÌ€÷v1AlLpT€QAÌÀøv1AlLˆR€QAÌúv1AlLØP€QAÌw1AlL P€QAÌÀw1AlL`L€QAÌàùv1AlL`K€QAÌÀôv1AlL@J€QAÌÀîv1AlLI€QAÌæv1AlLàG€QAÌÀÝv1AlLpF€QAÌÕv1AlLðD€QAÌàÑv1AlLÀA€QAÌpÉv1AlLà?€QAÌ Ëv1AlL >€QAÌÀÑv1AlLà:€QAÌ€Òv1AlL(9€QAÌ@Øv1AlL 8€QAÌ@Ýv1AlL`6€QAÌ@Þv1AlL 4€QAÌ ãv1AlL°2€QAÌ äv1AlLÀ/€QAÌÀåv1AlLà-€QAÌ€çv1AlL€,€QAÌàév1AlLà*€QAÌÀðv1AlLÀ)€QAÌ öv1AlLp(€QAÌ@ûv1AlL€'€QAÌ w1AlL &€QAÌ€w1AlL€%€QAÌ@ w1AlùL@$€QAÌ€w1AlLÀ"€QAÌ`w1AlL"€QAÌ€$w1AlLÈ €QAÌ€+w1AlLP €QAÌ-w1AlL $€QAÌÀ4w1AlL€'€QAÌ€9w1AlL *€QAÌ@Aw1AlL,€QAÌÀFw1AlL -€QAÌ@Lw1AlL1€QAÌRw1AlLP3€QAÌÀYw1AlL5€QAÌ@bw1AlL 6€QAÌ€dw1AlLð8€QAÌÀrw1AlL;€QAÌ}w1AlL<€QAÌÀ~w1AlL0>€QAÌŒw1AlLÀ?€QAÌ@“w1AlL°@€QAÌ€›w1AlL A€QA̤w1AlLÀA€QAÌ@¯w1AlLPC€QAÌ@Âw1AlL C€QAÌÀØw1AlLðB€QAÌ@ûw1AlLà@€QAÌx1AlL@€QAÌ,x1AlLÀ=€QAÌ€;x1AlL`;€QAÌ@Lx1AlLp8€QAÌÀ[x1AlL6€QAÌsx1AlL@3€QAÌÀ‚x1AlL`0€QAÌ’x1AlL@.€QAÌŸx1AlL`-€QAÌ@°x1AlL ,€QAÌ€ºx1AlL0*€QAÌÀÆx1AlL(€QAÌ@×x1AlL &€QAÌ€íx1AlL@"€QAÌýx1AlL° €QAÌ y1AlLà€QAÌ.y1AlLð€QAÌ@9y1AlL€QAÌÀMy1AlLЀQAÌ@sy1AlLà€QAÌ€~y1AlLà€QAÌ€§y1AlLp€QA̾y1AlLÀ€QAÌ×y1AlL €QAÌ@îy1AlL€€QAÌ€z1AlL€€QAÌÀz1AlLP€QAÌÀ'z1AlLà€QAÌÀ8z1AlL0€QAÌÀQz1AlL@€QAÌfz1AlLЀQAÌ€~z1AlLp€QAÌÀŸz1AlLpýQAÌ@Àz1AlLûQAÌäz1AlLÀôQAÌ@ÿz1AlLòQAÌ€{1AlLíQAÌÀ<{1AlL°çQAÌÀKú{1AlLàæQAÌ€j{1AlLpãQAÌ@Š{1AlLÜQAÌ€¡{1AlL°ØQA̳{1AlLàÖQAÌ@Ã{1AlLÕQAÌÀÛ{1AlLÖQAÌÀë{1AlLÀÕQAÌÀñ{1AlLÀÊQAÌÀà{1AlLpÇQAÌï{1AlL ÂQAÌþ{1AlL ¾QAÌ@|1AlL½QAÌ€|1AlLà¾QAÌÀ%|1AlL ¿QAÌÀ7|1AlLð¿QAÌ€F|1AlL°ÀQAÌT|1AlLÀÁQAÌÀ`|1AlLpÁQAÌ€m|1AlL0ÂQAÌ€}|1AlL`ÁQAÌ|1AlLPÃQAÌ@£|1AlL ÃQAÌÀ¹|1AlL°ÂQAÌ€Û|1AlL¿QAÌÀá|1AlLÀ½QAÌ@õ|1AlL°¾QAÌ}1AlL`¼QAÌ@}1AlL ¼QAÌ€"}1AlL¼QAÌ2}1AlLpºQAÌÀA}1AlL€·QAÌ@Z}1AlL ¶QAÌ@f}1AlLP¶QAÌ€p}1AlL¯QAÌ@}1AlL`«QAÌ€š}1AlL«QAÌÀ¥}1AlLÀ«QAÌ@¨}1AlL ®QA̰}1AlL`°QAÌ@À}1AlL³QAÌ€Ñ}1AlL¶QAÌÀú}1AlLpºQAÌ@~1AlL²QAÌ€)~1AlL¯QAÌ€A~1AlL¬QAÌ€Y~1AlL«QAÌ€i~1AlLªQAÌÀv~1AlL°¨QAÌÀ†~1AlL0¨QAÌÀ–~1AlLp¨QAÌ£~1AlL@¦QAÌ€§~1AlLÀ¨QAÌ@³~1AlLð¤QAÌ@À~1AlLУQAÌ€Ð~1AlLТQAÌÞ~1AlL` QAÌ@î~1AlLŸQAÌ€ù~1AlL QAÌ€1AlLžQAÌ@1AlLžQAÌ€31AlL žQAÌÀG1AlL€šQAÌ€V1AlL@šQAÌû_1AlLàšQAÌÀe1AlLð™QAÌ@r1AlLà™QAÌx1AlL`™QAÌ@}1AlLÀ˜QAÌ„1AlL—QAÌ€1AlL˜QAÌÀ™1AlLP–QAÌ€¡1AlL •QAÌ ­1AlL€•QAÌ º1AlL”QAÌ»1AlLP‘QAÌ@Á1AlL°‘QAÌ@Æ1AlLàŽQAÌÀÎ1AlL‹QAÌÀÕ1AlLÀˆQAÌå1AlL0‡QAÌ€å1AlL „QAÌø1AlL`‚QAÌ@€1AlL`QAÌ€€1AlLðƒQAÌ@€1AlLP‡QAÌÀ-€1AlL@‰QAÌÀ<€1AlLðŒQAÌÀT€1AlLpŽQAÌ@f€1AlLQAÌz€1AlL’QAÌ€1AlLpQAÌž€1AlLàŽQAÌÀ­€1AlLàŽQAÌ€¾€1AlL@ŒQAÌÊ€1AlLQAÌ@Û€1AlL@ŒQAÌè€1AlLÀˆQAÌÀø€1AlLP…QAÌÀ1AlLÀ„QAÌ@1AlLà‚QAÌ+1AlLà€QAÌ@1AlL€}QAÌ@O1AlL0|QAÌÀS1AlLðzQAÌÀn1AlL€yQAÌ@n1AlL {QAÌ€t1AlL€{QAÌ@€1AlLð{QAÌ@ˆ1AlL0}QAÌ“1AlLP}QAÌ€ª1AlLð|QAÌ€¸1AlLà{QAÌÀÇ1AlL@zQAÌ€Ø1AlLàwQAÌ€í1AlL@xQAÌÀ‚1AlLðtQAÌ€‚1AlLÀqQAÌ@‚1AlLÐfQAÌÀ*‚1AlLgQAÌÀA‚1AlLpdQAÌ@O‚1AlLeQAÌV‚1AlLPdQAÌ€_‚1AlL°dQAÌj‚1AlL0eQAÌ€t‚1AlLeQAÌ|‚1AlLðdQAÌ€‹‚1AlL@füQAÌÀ‚1AlLfQAÌ€§‚1AlLàdQAÌ€¹‚1AlL€eQAÌ@Ê‚1AlLfQÀ܂1AlLeQAÌí‚1AlLpcQAÌ@ƒ1AlL `QAÌÀ ƒ1AlLÀ_QAÌ€ƒ1AlL`_QÃ1AlL@_QAÌ€(ƒ1AlL@\QAÌÀ9ƒ1AlLðZQAÌ@Jƒ1AlL`YQAÌ€Tƒ1AlL ZQAÌÀ^ƒ1AlLP[QA„áÞjƒ1AŽ'ú¾ZQAÌÀ~ƒ1AlL[QAÌ¥ƒ1AlL€[QAÌÀ±ƒ1AlL0[QAÌÀ¾ƒ1AlLZQAÌ@Ôƒ1AlL YQAÌ@òƒ1AlLÐXQAÌ@„1AlLÀWQAÌ€„1AlL°VQAÌÀ&„1AlL SQAÌ2„1AlL PQAÌC„1AlL0MQAÌ@^„1AlL€JQAÌ@}„1AlLpMQAÌ€„1AlLÀIQAÌ@ „1AlLFQAÌ@·„1AlL€GQAÌ@Ò„1AlLð>QAÌ@å„1AlL;QAÌ€ö„1AlL@:QAÌ€…1AlL:QAÌ…1AlL ;QAÌ€4…1AlL @QAÌ€K…1AlL BQAÌÀY…1AlLðCQAÌÀa…1AlLðEQAÌo…1AlLHQAÌÀ‚…1AlLpIQAÌ@‘…1AlLKQAÌ€©…1AlLLQAÌ@¾…1AlLpIQAÌÀË…1AlLÀFQAÌÀÕ…1AlLPEQAÌÀâ…1AlL0DQAÌÀî…1AlL`CQAÌÀô…1AlL@QĂ1AlLP<QAÌ †1AlL€9QAÌÀ†1AlLà8QAÌ@!†1AlL€7QAÌ(†1AlLÐ;QAÌÀ.†1AlLàBQAÌ9†1AlLÐCQAÌ@F†1AlL`EQAÌ@U†1AlL EQAÌ@e†1AlLàHQAÌ@|†1AlL FQAÌÀ‘†1AlLðEQAÌš†1AlýLFQAÌ£†1AlL EQA̲†1AlLÐCQAÌ@Á†1AlL@CQÀІ1AlL°AQÀ݆1AlLà@QAÌ@å†1AlLð?QAÌ@ë†1AlL@QAÌò†1AlL ?QAÌÀ ‡1AlLP?QAÌ€‡1AlL°:QAÌ€$‡1AlL9QAÌ:‡1AlL 8QAÌÀJ‡1AlLp9QAÌ@[‡1AlL;QAÌr‡1AlL=QAÌ@„‡1AlLPAQAÌÀЇ1AlL°<QAÌ@Ÿ‡1AlL ?QAÌ@°‡1AlL0?QAÌˇ1AlL ;QAÌ€Ó‡1AlLÀ:QAÌ@è‡1AlL@9QAÌï‡1AlLÀ7QAÌ@ô‡1AlL°5QAÌ€ý‡1AlL 5QAÌ` ˆ1AlL€5QÄ1AlL5QAÌ ˆ1AlLh3QAÌ@ö‡1AlL`QAÌ݇1AlLò~QÀЇ1AlL€ß~QAÌ€à‡1AlLÐÞ~QAÌ@ ˆ1AlLÝ~QAÌ0ˆ1AlL`Û~QAÌ€.ˆ1AlL@Ù~QAÌ ˆ1AlLàª~QAÌ€ˆ1AlL`¦~QAÌà‡1AlLo~QÀ݇1AlL k~QAÌÛ‡1AlL€Z~QAÌÀ܇1AlLU~QÀ߇1AlLÀJ~QAÌ@ȇ1AlL@ó}QAÌÙ†1AlL`ì}QAÌ€=†1AlLàç}QAÌ*†1AlL Ø}QAÌÀY„1AlL@¨}QAÌ€„1AlL@¢}QAÌ@áƒ1AlL@…}QAÌ@؃1AlL@{}QAÌ@Òƒ1AlL@s}QAÌ@ƃ1AlLa}QAÌ΃1AlL@S}QAÌ@¢ƒ1AlL€Q}QAÌ2ƒ1AlL@R}QAÌ"ƒ1AlL ]}QAÌ@¼‚1AlL a}QAÌK‚1AlLÀb}QAÌ€(‚1AlLÀT}QAÌÀ‚1AlLàD}QAÌ@à1AlLà}QAÌÀ}€1AlL`(}QẢ€1AlL€}QAÌ€Iþ€1AlLà}QAÌ€1AlL@}QAÌ€á1AlLÀ}QAÌ@Ø1AlL@ }QAÌØ1AlL`ý|QAÌÀÓ1AlLÀð|QA̰1AlL`ë|QAÌÀg1AlL ê|QAÌ<1AlLàã|QAÌ€81AlL`Ø|QAÌ;1AlL Î|QAÌ@1AlL`Ó|QAÌ@Û~1AlL ú|QAÌv~1AlLò|QAÌa~1AlLàð|QAÌÀW~1AlL æ|QAÌÀ~1AlL@ä|QAÌ@þ}1AlL`ì|QAÌÞ}1AlL`ê|QAÌÀ™}1AlL`å|QAÌÀ9}1AlL€â|QAÌ}1AlL€à|QAÌö|1AlL@Ô|QAÌÀÜ|1AlL€Î|QAÌÀ”|1AlLÀÚ|QAÌ€a|1AlL@ä|QAÌR|1AlLß|QAÌ€;|1AlL@Ï|QAÌÀ|1AlL`Á|QAÌò{1AlLÀ·|QAÌ­{1AlLÀ§|QAÌ€v{1AlL œ|QAÌ@2{1AlL@œ|QAÌÀÖz1AlL œ|QAÌÀuz1AlLÀœ|QAÌ$z1AlL`ž|QAÌ€ðy1AlL€ž|QAÌ@Ÿy1AlL  |QAÌ@My1AlL€¦|QAÌÀy1AlL€¥|QAÌ@¶x1AlL ¥|QAÌ€§x1AlL¤|QAÌ€sx1AlL ¢|QAÌÀx1AlL Ÿ|QAÌ€¯w1AlL€™|QAÌ@˜w1AlLÀ‹|QAÌ€vw1AlL {|QAÌ@!w1AlL z|QAÌ€þv1AlLàl|QAÌùv1AlL@]|QAÌ€Áv1AlL`Q|QAÌÀv1AlLM|QAÌ@1v1AlL`K|QAÌ€Øu1AlLD|QAÌÀ·u1AlLàA|QAÌÀƒu1AlL@>|QAÌ€+u1AlL@@|QAÌÕt1AlLÀ4|QAÌÀ…t1AlL%|QAÌ€It1AlL |QAÌ@2t1AlL`|QAÌ@7t1AlL|QAÌÀ7t1AlLÀï{QAÌÀ t1AlLÀê{QAÌÿ@Ës1AlL ì{QAÌ€”s1AlLí{QAÌ€es1AlLàí{QAÌ@=s1AlLÀî{QAÌ€êr1AlL€î{QAÌär1AlL é{QAÌÀØr1AlL ß{QAÌ@Ár1AlL Ò{QAÌwr1AlLàÔ{QAÌr1AlLàÙ{QAÌr1AlL Î{QAÌ@ÿq1AlLÀ¯{QAÌ€êq1AlL@˜{QAÌ€Èq1AlL€z{QAÌÀœq1AlL\{QAÌ@¨q1AlL€O{QAÌ@¦q1AlLà9{QAÌ€q1AlL;{QAÌÀ?q1AlLà>{QAÌ€úp1AlL€F{QAÌ€£p1AlL`R{QAÌÀjp1AlL€Z{QAÌ@&p1AlL ^{QAÌÀço1AlLài{QAÌ@³o1AlL@r{QAÌ@·o1AlL x{QÃo1AlLx{QAÌ*o1AlL z{QAÌÀo1AlL€k{QAÌ@o1AlLÀV{QAÌ€Ún1AlL <{QAÌ@ºn1AlL@,{QAÌÀ™n1AlL -{QAÌ>n1AlL 9{QAÌ@þm1AlL I{QAÌ€àm1AlL@V{QAÌÀÚm1AlLÀb{QAÌ@Èm1AlLh{QAÌ@m1AlL€j{QAÌ€1m1AlL€r{QAÌ@Ül1AlL€{{QAÌÀ»l1AlLb{QAÌÀ€l1AlL`L{QAÌÀ^l1AlL0<{QAÌÀpl1AlLà-{QAÌwl1AlL`"{QAÌLl1AlL  {QAÌ€ l1AlL"{QAÌÀßk1AlLàåzQAÌÀÏk1AlL ŸzQAÌ€Ék1AlLàŸzQAÌ€µk1AlL  zQAÌk1AlL@¢zQAÌ]k1AlL`¦zQAÌ€ñj1AlLà­zQAÌ@ˆj1AlL ²zQAÌÀ)j1AlL@¶zQAÌÀòi1AlL°½zQAÌ€äi1AlL ¿zQAÌÀ¬i1AlLÀËzQAÌÀji1AlL@ÜzQAÌÀi1AlLïzQAÌÀÀh1AlL@ÿzQAÌ€—h1AlL {QAÌ@h1AlL€{QAÌÀ/h1AlLÀðzQAÌ@úg1AlL ÜzQAÌÀÄg1AlL@ÂzQAÌ@*g1AlL`ÇzQAÌ€öf1AlL •zQAÌ@Ñf1AlL–zQAÌ@¢f1AlL€˜zQAÌ@€f1AlLÀ}zQAÌ€Jf1AlL ^zQAÌ€-f1AlL =zQAÌÀf1AlL zQAÌÀf1AlL`zQAÌÀèe1AlL€zQAÌ…e1AlLà zQAÌÀFe1AlLÀzQAÌJe1AlL€áyQAÌÀ3e1AlL€®yQAÌ€"e1AlLð‡yQAÌÀ6e1AlLÀbyQAÌ@Ce1AlL 9yQAÌ@e1AlL4yQAÌÔd1AlLÀ0yQAÌ@ßd1AlL°yQAÌÀÓd1AlL`yQAÌ€•d1AlLÀòxQAÌd1AlLÀÔxQAÌ@ºc1AlLÀºxQAÌ@¤c1AlL ´xQAÌ@ac1AlLÀ¼xQAÌ9c1AlLÀ±xQAÌ€sa1AlL`¤xQAÌa1AlLÀ»xQAÌ@ a1AlL ÆxQAÌ@”`1AlL`ÙxQAÌ@c`1AlL æxQAÌ@!`1AlLàöxQAÌÄ_1AlLà yQAÌ@l_1AlLÀyQAÌ€D_1AlL "yQAÌA_1AlL@>yQAÌ€5_1AlLUyQAÌ_1AlLlyQAÌ@Ù^1AlL‡yQAÌÀ¶^1AlL yQAÌ@Á^1AlLÝyQAÌÀ`^1AlL@ÖyQAÌ@W^1AlLÀ zQAÌ^1AlL  zQAÌÀ¬]1AlLÀ zQAÌÀ‹]1AlLzQAÌÀ‹]1AlLÀ\zQAÌ€J]1AlLÀdzQAÌ@Y]1AlL szQAÌÀ£\1AlL€zQAÌc\1AlLà¡zQAÌ€‹\1AlL°zQAÌ€"^1AlLàÇzQAÌ@_^1AlL ÊzQAÌ@{^1AlL€ÐzQAÌ@œ^1AlL`×zQAÌÀÑ^1AlLózQAÌÀ _1AlL {QAÌU_1AlLà({QAÌ@ª_1AlL@{QAÌ@ý_1AlL`T{QAÌ@Z`1AlL€e{QAÌ®`1AlL w{QAÌ@è`1AlL‡{QAÌa1AlL@–{QAÌ@Pa1AlL`š{QAÌ@¶a1AlL ¢{QAÌ€b1AlL ©{QAÌ@Cb1AlL€¶{QAÌÀdb1AlL€Ï{QAÌ€b1AlL@ã{QAÌ@çb1AlL€ù{QAÌÀ'c1AlLà|QAÌ€/c1AlL€|QAÌ€hc1AlLÀ|QAÌŽc1AlL|QAÌ@¨c1AlL |QAÌÕc1AlL`!|QAÌ€×c1AlL .|QAÌ€Õc1AlL€@|QAÌÀÔc1AlL€N|QAÌ@ºc1AlLZ|QAÌÀ¨c1AlL a|QAÌÀrc1AlL o|QAÌ`$c1AlL˜w|QAÌ@³b1AlL |QAÌÀ`b1AlLà|QAÌ€.b1AlLà¥|QAÌ@b1AlL Â|QAÌ€b1AlLÀÝ|QAÌÀâa1AlLàõ|QAÌ@¹a1AlL` }QAÌ€Œa1AlL!}QAÌ@na1AlL 6}QAÌÀUa1AlL`E}QAÌ€>a1AlL@R}QAÌÀ'a1AlL`[}QAÌa1AlL`f}QAÌ€a1AlL¸g}QAÌÀ.a1AlL h}QAÌ€aa1AlL@k}QAÌÀµa1AlL@p}QAÌ@ÿa1AlLÀl}QAÌFb1AlLÀo}QAÌŠb1AlL m}QAÌ@Ãb1AlL`r}QAÌ@c1AlL t}QAÌFc1AlL€v}QAÌ€,c1AlL`…}QAÌ@;c1AlL@}QAÌYc1AlL€š}QAÌÀPc1AlLÀ¦}QAÌ8c1AlL ·}QAÌÀ&c1AlLÊ}QAÌ@c1AlLÞ}QAÌc1AlL ä}QAÌ@c1AlLPæ}QAÌc1AlLÀô}QAÌ@ c1AlL€ ~QAÌ€ c1AlL`~QAÌc1AlL !~QAÌ@c1AlL€0~QAÌ@Öb1AlL`3~QAÌ€™b1AlL 1~QAÌÀ´b1AlL _~QAÌ@Ãb1AlL ~QAÌÉb1AlL –~QAÌ€°b1AlL@¢~QAÌ@ub1AlL@¨~QAÌ@Rb1AlL€µ~QAÌ€Mb1AlLÖ~QAÌ@\b1AlL í~QAÌ€Mb1AlLÀQAÌ€Rb1AlLQAÌ€ƒb1AlLàQAÌÀ¢b1AlL@DQAÌc1AlL`;QAÌKc1AlL JQAÌ€¯c1AlLàOQAÌÀ(d1AlLVQAÌ€od1AlLXQAÌ@§d1AlLÀWQAÌÃd1AlL\QAÌÕd1AlL gQAÌÀ*e1AlLàgQAÌe1AlLÀ}QAÌ€Te1AlL`‘QAÌ@/e1AlL ªQAÌ€'e1AlL`·QAÌ\e1AlL ¾QAÌ@ae1AlLÉQAÌ€×e1AlL`ÏQAÌÀÚe1AlLàéQAÌäe1AlL øQAÌ€,f1AlL ûQAÌ@7f1AlLÀûQAÌtf1AlL üQAÌÀŽf1AlLà€QAÌ·f1AlL€!€QAÌ@Éf1AlL 1€QAÌ@Ôf1AlLÀ:€QAÌÀïf1AlL@F€QAÌÀMg1AlL O€QAÌ@sg1AlL U€QAÌ@‰g1AlL g€QAÌæg1AlLÀh€QAÌ€1h1AlL l€QAÌÀih1AlL p€QAÌ€Šh1AlL n€QAÌxh1AlLà€QAÌ”h1AlL€…€QAÌÀ’h1AlL€‘€QA̺h1AlL–€QAÌvh1AlL·€QAÌ€gh1AlL Ã€QAÌÀjh1AlL@Ñ€QAÌ€‹h1AlL€æ€QAÌ@¤h1AlL@õ€QAÌ€²h1AlLàQAÌ€Ïh1AlL ý€QAÌýh1AlL`!QAÌ i1AlL`,QAÌ@i1AlLÀ7QAÌ i1AlLð6QAÌ`i1AlLP6QAÌ i1AlLà4QAþ ~~¢)› !‚ÄHVGiovinazzo @äxɆµ[—A…šª=øYÌc\1AlL`¤xQAÌ0ˆ1AlLÀ7QA|i Ì i1AlLà4QAÌði1AlL3QAÌÀ(i1AlLÐ2QAÌ@+i1AlL 0QAÌ€1i1AlL /QAÌ :i1AlL0/QAÌ@?i1AlLà-QAÌÀAi1AlL +QAÌ Ei1AlL*QAÌ@Ji1AlL (QAÌ Mi1AlL &QAÌRi1AlLÀ$QAÌ [i1AlLà#QAÌci1AlL #QAÌÀii1AlL$QAÌÀpi1AlLà$QAÌui1AlLÀ&QAÌîà I2AlL¸lQAÌI2AlL°µlQAÌ@I2AlL´lQAÌI2AlL`²lQAÌ€I2AlL¯lQAÌ€I2AlL®lQAÌ€I2AlL§lQAÌ@I2AlLÀ¤lQAÌÀI2AlL£lQAÌ'I2AlL€¤lQAÌ3I2AlL¤lQAÌFI2AlL ¡lQAÌEI2AlLlQAÌ€7I2AlLЙlQAÌ6I2AlL`–lQAÌ€>I2AlL”lQAÌàDI2AlLp“lQAÌ@XI2AlL`”lQAÌbI2AlL0“lQAÌ jI2AlLÐlQAÌ@tI2AlLlQAÌÀ}I2AlLlQAÌ@…I2AlL’lQAÌ@I2AlLà’lQAÌÀ›I2AlLà”lQAÌ£I2AlLà–lQAÌ ªI2AlL°–lQAÌ€¯I2AlL`—lQAÌ´I2AlL€˜lQAÌÀºI2AlL`™lQAÌÁI2AlL ˜lQAÌ`¿I2AlLЖlQAÌ@ºI2AlLà•lQA̱I2AlLP“lQAÌÀ©I2AlL‘lQA̤I2AlLÐlQAÌ€®I2AlL°lQAÌËI2AlL0lQAÌÀÑI2AlLÐlQAÌÀÓI2AlL@’lQAÌ`ÚI2AlL(–lQAÌ€ÝI2AlLà™lQAÌàI2AlL ›lQAÌ@èI2AlL€œlQAÌÀïI2AlLàœlQAÌùI2AlLPœlQAÌ@þI2AlL™lQAÌ@J2AlLЗlQAÌ`J2AlL`–lQAÌÀJ2AlL˜lQAÌÀJ2AlL€œlQAÌ€$J2AlL°žlQAÌ@.J2AlL¢lQAÌÀBJ2AlL`¢lQAÌKJ2AlLp¡lQAÌ€VJ2AlL°žlQAÌZJ2AlLÀœlQAÌ _J2AlLp›lQAÌÀhJ2AlL°œlQAÌÀpJ2AlLПlQAÌ|J2AlLp¢lQAÌ‘J2AlL¤lQAÌœJ2AlL¢lQAÌÀšJ2AlL lQAÌ¢J2AlLàlQAÌ€©J2AlL¸lQAÌ ¯J2AlLPŸlQAÌ€®J2AlL°¡lQAÌ@«J2AlL£lQAÌ€©J2AlL¥lQAÌÀ®J2AlLP¦lQAÌJ2AlL0­lQAÌ@¦J2AlLÀ°lQAÌÀ¯J2AlL ®lQAÌ@¹J2AlL€®lQAÌØJ2AlL ¦lQAÌ€ÍJ2AlL ¥lQAÌÒJ2AlLð lQAÌÀÞJ2AlL žlQAÌ@êJ2AlL`œlQAÌóJ2AlL€™lQAÌóJ2AlLà–lQAÌ€ K2AlLÀ”lQAÌ€K2AlL “lQAÌÀK2AlL‘lQAÌÀK2AlL@‘lQAÌ@)K2AlLlQAÌ€3K2AlLÀlQAÌ€:K2AlL lQAÌÀAK2AlLÀlQAÌ@KK2AlL lQAÌÀSK2AlL0ŽlQAÌ€(L2AlL@§lQAÌbL2AlLp§lQA̽L2AlL žlQAÌ€‰M2AlL`ˆlQAÌÀ}M2AlL`~lQAÌÀRL2AlLžlQAÌÀ"L2AlLðžlQAÌÀœK2AlLplQAÌÀK2AlL`ŒlQAÌ€uK2AlLÀŠlQAÌaK2AlL‰lQAÌ+K2AlL€‚lQAÌ@0K2AlL{lQAÌ€"K2AlLÀxlQAÌÀK2AlLàslQAÌ€ùJ2AlLqlQAÌ@K2AlLmlQAÌÀ.K2AlL`olQAÌHK2AlL slQAÌÀsK2AlL`ylQAÌÀ‹K2AlLnlQAÌ@«K2AlLðolQAÌÀ¿K2AlLqlQAÌêK2AlL`^lQAÌ@ñK2AlLð\lQAÌ@þK2AlLZlQAÌ€L2AlL@VlQAÌ€L2AlL RlQAÌ@L2AlLPNlQAÌÀL2AlLÀIlQAÄ…âì÷K2Aèú¶ŽHlQAÌ@ðK2AlLðHlQAÌÀçK2AlL JlQAÌ@áK2AlLàElQAÌØK2AlL DlQAÌÀÎK2AlLÀBlQAÌÇK2AlL`DlQA̵K2AlLPFlQAÌÀ­K2AlL FlQAÌ¥K2AlLGlQAÌÀžK2AlL FlQAÌ´K2AlLPDlQA̺K2AlL =lQA̘K2AlLN2AlL vkQAÌFN2AlLvkQAÌ€NN2AlL xkQAÌ€TN2AlLÐvkQAÌÀTN2AlLðrkQAÌPN2AlL@okQAÌ€NN2AlL lkQAÌ€FN2AlLàkkQAÌHN2AlLàikQAÌJN2AlLàgkQAÌ@XN2AlL fkQAÌ@aN2AlLàekQAÌ€eN2AlLðgkQAÌ€fN2AlL`jkQAÌqN2AlL`jkQAÌ€wN2AlL€lkQAÌ@‚N2AlLlkQAÌÀƒN2AlLokQAÌÀ‰N2AlLqkQAÌ@•N2AlLskQAÌÀœN2AlL`rkQAÌÀ¢N2AlLàpkQAÌ@­N2AlL`rkQA̰N2AlLàokQAÌ@³N2AlLpmkQAÌ ¿N2AlLØmkQAÌÀÄN2AlL°lkQAÌËN2AlL mkQAÌ@ÔN2AlLàmkQAÌ€ÛN2AlL mkQAÌÀÞN2AlLlkQAÌÀÜN2AlLPikQAÌÜN2AlLpfkQAÌÀáN2AlL fkQAÌäN2AlL°ckQAÌéN2AlL`akQAÌ€îN2AlLà_kQAÌÀõN2AlLp_kQAÌÀO2AlL_kQAÌ@O2AlL€_kQAÌÀO2AlLð]kQAÌ€O2AlLPZkQAÌO2AlLðWkQAÌ@O2AlLPUkQAÌ@O2AlL°TkQAÌ  O2AlLðTkQAÌ@(O2AlLPUkQAÌ,O2AlL TkQAÌ6O2AlL°TkQAÌÀ;O2AlLPWkQAÌ€BO2AlL°XkQAÌÀKO2AlL0YkQAÌRO2AlLàWkQAÌ€UO2AlLUkQAÌ@\O2AlL TkQAÌeO2AlLTkQAÌ@jO2AlL€Vk QAÌ@mO2AlL€XkQAÌÀuO2AlL0YkQAÌwO2AlL@WkQAÌ€zO2AlLpTkQAÌÀƒO2AlLðTkQAÌŠO2AlL VkQAÌ ’O2AlL¸UkQAÌœO2AlLVkQAÌ£O2AlLÀVkQAÌ€³O2AlLÐVkQAÌ€ÂO2AlLpWkQAÌ@ÏO2AlLÀXkQAÌ@ßO2AlLÐ\kQAÌ@éO2AlLp`kQAÌ÷O2AlLPbkQAÌÀÿO2AlLpbkQAÌ€P2AlL`dkQAÌP2AlLgkQAÌÀP2AlLphkQAÌ#P2AlLðgkQAÌ@"P2AlL`ekQAÌÀP2AlL€ckQAÌ P2AlL¸akQAÌÀP2AlLh_kQAÌÀP2AlL``kQAÌ P2AlL@`kQAÌ@P2AlL ^kQAÌ€P2AlL¸\kQAÌ@ P2AlL0\kQAÌà P2AlL¸ZkQAÌ€P2AlL0ZkQAÌ@P2AlLWkQAÌ P2AlL@UkQAÌ P2AlLÐSkQAÌ@P2AlLÐSkQAÌ@P2AlL`QkQAÌ@ P2AlL0OkQAÌÀP2AlLÀMkQAÌÀP2AlLàKkQAÌ@P2AlLÐIkQAÌÀP2AlL HkQAÌÀ P2AlLpEkQAÌ@P2AlLDkQAÌ€ûO2AlLCkQAÌöO2AlLpAkQAÌ€ôO2AlL?kQAÌ@úO2AlL P2AlL03kQAÌ@HP2AlL 2kQAÌ@RP2AlL2kQAÌÀZP2AlLÀ2kQAÌcP2AlL4kQAÌÀkP2AlLP6kQAÌ€oP2AlLÀ8kQAÌ@sP2AlLÀ:kQAÌP2AlL °9kQAÌ€„P2AlLÐ7kQAÌ~P2AlL`3kQAÌ{P2AlL01kQAÌ€oP2AlLp.kQAÌÀiP2AlLP+kQAÌÀbP2AlLð'kQAÌ@_P2AlL€%kQAÌ€`P2AlLÐ"kQAÌ€eP2AlL` kQAÌ€mP2AlLkQAÌwP2AlL kQAÌ@~P2AlL`kQAÌ€…P2AlL€kQÄP2AlL`kQAÌ@‡P2AlLð!kQÄP2AlL°#kQAÌÀˆP2AlLÀ%kQAÌ€’P2AlLÀ%kQAÌ@˜P2AlL`'kQAÌ€¢P2AlL@'kQAÌÀ®P2AlLø'kQAÌÀºP2AlL0'kQA̸P2AlLP)kQAÌ@¿P2AlL *kQAÌÉP2AlL *kQAÌÇP2AlL€,kQA̼P2AlL`.kQAÌ@·P2AlL1kQAÌ@¼P2AlLà2kQAÌÀÂP2AlL4kQAÌ€»P2AlL:kQA̵P2AlL°;kQA̯P2AlL°?kQAÌ´P2AlLÐAkQAÌ»P2AlLð@kQAÌ€ÃP2AlL0@kQAÌÀÅP2AlL€BkQAÌÀÎP2AlLDkQAÌ ÕP2AlLFkQAÌÀ×P2AlL0DkQAÌÀàP2AlLPDkQAÌ€èP2AlLÐEkQAÌñP2AlLÀDkQAÌÀüP2AlLPDkQAÌ@Q2AlLðFkQAÌ€ Q2AlL GkQAÌ Q2AlLøIkQAÌ€!Q2AlLàJkQAÌ%Q2AlL0HkQAÌ#Q2AlLÀEkQAÌQ2AlLDkQAÌÀQ2AlLpBkQAÌ Q2AlLÀAkQAÌ€ Q2AlLÐ>kQAÌQ2AlLPS2AlL0€jQAÌ@>S2AlLà|jQAÌÀAS2AlLzjQAÌÀAS2AlL`wjQAÌ€=S2AlL°tjQAÌ@ES2AlLrjQAÌ€SS2AlL@qjQAÌÀbS2AlL@sjQAÌ@nS2AlL wjQAÌ€S2AlL@jQAÌ€ŒS2AlL‚jQAÌ€’S2AlLð€jQAÌ€šS2AlLÐjQAÌÀžS2AlLðƒjQAÌÀ¡S2AlL@†jQAÌ€±S2AlL`†jQAÌÀ½S2AlL „jQAÌ€ÁS2AlL°jQAÌ€ÅS2AlL°jQAÌÍS2AlL€€jQAÌ×S2AlLàjQAÌÀáS2AlL€€jQAÌÀíS2AlL€jQAÌ@öS2AlL`jQAÌ@ýS2AlL°jQAÌT2AlL€jQAÌT2AlLÐ}jQAÌ€T2AlLð}jQAÌÀ%T2AlLð{jQAÌ@'T2AlL€xjQAÌ/T2AlL0vjQAÌ@'T2AlLÐsjQAÌ@"T2AlL`ojQAÌÀT2AlL mjQAÌÀøS2AlL ijQAÌ€ÿS2AlL gjQAÌ T2AlLpfjQAÌT2AlLÀgjQAÌ%T2AlL0jjQAÌ@7T2AlLpljQAÌ@FT2AlL`mjQAÌ@KT2AlLPqjQAÌ@VT2AlL@tjQAÌ@fT2AlL vjQAÌ€qT2AlL vjQAÌyT2AlL@rjQAÌÀ‚T2AlLqjQAÌ€T2AlL0sjQAÌ T2AlL sjQAÌÀ¶T2AlL`tjQAÌ»T2AlL0rjQAÌÀÀT2AlLojQAÌ@ËT2AlL ljQAÌÚT2AlLkjQAÌ@êT2AlL`jjQAÌÀþT2AlLàhjQAÌÀU2AlL€ejQAÌ@!U2AlLPbjQAÌ€*U2AlL_jQAÌ@.U2AlLp[jQAÌ@0U2AlLðVjQAÌ%U2AlLÐTjQAÌ@$U2AlL0RjQAÌ"U2AlL@PjQAÌU2AlL@OjQAÌ@U2AlL MjQAÌ€ U2AlL@MjQAÌ@U2AlLpMjQAÌ€ÿT2AlL JjQAÌ€ôT2AlLpJjQAÌñT2AlL HjQAÌîT2AlL0FjQAÌéT2AlLðFjQAÌâT2AlLDjQAÌ€×T2AlLðAjQAÌÀÈT2AlL°=jQAÌÄT2AlL;jQAÌÀÊT2AlLà8jQAÌ€ÖT2AlLp9jQAÌÀáT2AlL€;jQAÌ€òT2AlL0=jQAÌU2AlLp?jQAÌU2AlL0BjQAÌÀU2AlL DjQAÌ"U2AlL`FjQAÌ€'U2AlL°HjQAÌÀ8U2AlL KjQAÌÀKU2AlLNjQAÌ@^U2AlL€NjQAÌ€eU2AlLMjQAÌÀoU2AlL`KjQAÌ@}U2AlL°JjQAÌ€†U2AlLÐIjQAÌU2AlLàFjQAÌ@“U2AlL DjQAÌ¥U2AlL0@jQA̦U2AlL€>jQAÌ€¢U2AlL€hQAÌ€©[2AlLð7hQAÌ£[2AlL`7hQAÌÀ“[2AlL@8hQAÌ€[2AlL 4hQAÌÀ“[2AlL°2hQAÌ€¤[2AlL00hQA̱[2AlL0hQAÌÀ[2AlL/hQAÌ@Ã[2AlLÐ*hQAÌÅ[2AlL`(hQAÌÎ[2AlL°&hQAÌÏ[2AlL@$hQAÌ€½[2AlL"hQA̳[2AlLPhQAÌ@®[2AlLhQAÌ€³[2AlLhQAÌ€¿[2AlL hQAÌÀÄ[2AlLðhQAÌ@Ó[2AlLàhQAÌä[2AlL hQAÌë[2AlLPhQAÌ@ó[2AlLÐhQAÌ€ò[2AlLðhQAÌ€ê[2AlL° hQAÌ÷[2AlL`hQAÌÀ\2AlLPhQAÌÀ\2AlLðhQAÌÀ\2AlL`hQAÌ€,\2AlLðhQAÌÀ=\2AlLhQAÌ@@\2AlL°hQAÌ<\2AlLðhQAÌ€<\2AlLhQAÌ€6\2AlL@ÿgQAÌÀ/\2AlLhQAÌ@&\2AlLÀÿgQAÌ@!\2AlL0þgQAÌ)\2AlL`ügQAÌÀ7\2AlLàügQAÌÀ7\2AlLÀøgQAÌ0\2AlLðögQAÌ'\2AlL@õgQAÌ€\2AlLÐógQAÌÀ\2AlLðògQAÌ€\2AlL ñgQAÌ@\2AlL0ñgQAÌ\2AlLògQAÌ@*\2AlLÀógQAÌÀ;\2AlL0ôgQAÌÀ@\2AlL`ògQAÌÀJ\2AlL°ògQAÌÀQ\2AlLñgQAÌW\2AlL ìgQAÌ@\\2AlL€ëgQAÌ€^\2AlLàègQAÌ€a\2AlL@ægQAÌ€h\2AlLãgQAÌÀf\2AlL ßgQAÌ^\2AlLÛgQAÌ@T\2AlLðÙgQAÌÀG\2AlLpÙgQAÌ@B\2AlL ×gQAÌD\2AlL`ÔgQAÌ€9\2AlL0ÔgQAÌ0\2AlL ÕgQAÌÀ#\2AlLÐÒgQAÌÀ\2AlLÐÒgQAÌ@\2AlL ÑgQAÌ€\2AlL@ÏgQAÌ \2AlLÐÎgQAÌ@\2AlLðËgQAÌ@þ[2AlLPÊgQAÌ\2AlLPÉgQAÌ@\2AlL ÇgQAÌ\2AlLàÅgQAÌÀõ[2AlL`ÄgQAÌ@\2AlLнgQAÌÀ \2AlL@¹gQAÌ€\2AlLp¸gQAÌ@*\2AlL°·gQAÌ€7\2AlL@·gQAÌ8\2AlLPµgQAÌÀ7\2AlL³gQAÌÀ)\2AlLP±gQAÌÀ2\2AlL`®gQAÌ€@\2AlLð¬gQAÌÀM\2AlL€­gQAÌ@W\2AlL°¬gQAÌ€Y\2AlL ªgQAÌ@e\2AlLÀ¬gQAÌÀb\2AlL ¯gQAÌ€d\2AlL@³gQAÌr\2AlL²gQAÌÀ~\2AlL€²gQAÌ@Œ\2AlL ´gQAÌ@‘\2AlLP°gQAÌ@•\2AlLp­gQAÌÀš\2AlLP«gQAÌ‘\2AlL°¨gQAÌÀ—\2AlLp¦gQAÌ€›\2AlLà gQAÌ@¥\2AlL šgQAÌ \2AlLp”gQAÌ@£\2AlL“gQA̲\2AlL‘gQAÌ@¶\2AlLàŽgQAÌÀÁ\2AlLgQAÌ€Á\2AlL‘gQAÌ€Ì\2AlL’gQAÌË\2AlLÀ•gQAÌÔ\2AlLð”gQAÌÞ\2AlL“gQAÌ@Þ\2AlLgQAÌ@ò\2AlL0gQAÌö\2AlL ’gQAÌ€õ\2AlL0–gQAÌÀö\2AlL0˜gQAÌ€]2AlLЗgQAÌÀ]2AlLð•gQAÌÀ]2AlLà’gQAÌ€]2AlLŽgQAÌ€]2AlLPŒgQAÌÀò\2AlL`ŠgQAÌ@ã\2AlLpˆgQAÌ€à\2AlLP†gQAÌà\2AlLЃgQAÌÀä\2AlL€gQAÌ@é\2AlL°~gQAÌÀõ\2AlL`}gQAÌ]2AlLð}gQAÌ@ ]2AlL|gQAÌ@]2AlLðygQAÌ€]2AlLxgQAÌ$]2AlLpxgQAÌ1]2AlL€wgQAÌ€6]2AlL€vgQAÌ€5]2AlL`qgQAÌ;]2AlL€ogQAÌ€J]2AlLÐmgQAÌQ]2AlLPjgQAÌ€Z]2AlLhgQAÌd]2AlLPhgQAÌ€q]2AlL0kgQAÌ{]2AlL`kgQAÌ„]2AlLàhgQAÌ]2AlLPegQAÌÀ†]2AlL agQAÌ]2AlL_gQAÌÀŠ]2AlL^gQAÌ€—]2AlL\gQĄ]2AlL _gQAÌ@±]2AlL_gQAÌÀµ]2AlLp]gQA̲]2AlL [gQA̪]2AlLÐWgQA̬]2AlLPVgQAÌ€¹]2AlLðSgQAÌÀÂ]2AlL@TgQAÌ@Ç]2AlL`VgQAÌ€Ê]2AlLÐXgQAÌ€Õ]2AlLÀVgQAÌ€á]2AlLÐSgQAÌ@Û]2AlLðOgQAÌç]2AlLÀMgQAÌÀì]2AlL KgQAÌ@ì]2AlL HgQAÌí]2AlL@FgQAÌ@ó]2AlLCgQAÌ^2AlLpBgQAÌ€^2AlLpBgQAÌ^2AlLpCgQAÌ%^2AlLBgQAÌ.^2AlLp?gQAÌ€:^2AlLð>gQAÌÀD^2AlL ;gQAÌJ^2AlL°8gQAÌÀ\^2AlL 5gQAÌs^2AlL`3gQAÌ^2AlL0gQAÌ€¦^2AlL/gQA̯^2AlLð0gQAÌ@¹^2AlLp1gQAÌ€¼^2AlL0gQAÌ@¸^2AlLÐ-gQAÌÕ^2AlL*gQAÌ@à^2AlL)gQAÌÿ^2AlLÐ$gQAÌÀ_2AlL#gQAÌ€!_2AlLð!gQAÌÀ*_2AlL gQAÌ._2AlLàgQAÌ?_2AlL`gQAÌ@Q_2AlLpgQAÌ@c_2AlLðgQAÌ€i_2AlL gQAÌ„_2AlLàgQAÌ@˜_2AlLÀ gQA̹_2AlLàgQAÌÀÕ_2AlL€gQAÌõ_2AlLgQAÌ@`2AlL gQAÌ€"`2AlLPÿfQAÌ€/`2AlLÐgQAÌÀ5`2AlLÐgQAÌ@7`2AlL gQAÌÀ>`2AlLp gQAÌ@K`2AlLÐ gQAÌ€Y`2AlL gQAÌÀY`2AlL` gQAÌU`2AlL@gQAÌ@L`2AlLPgQAÌ@I`2AlL@þfQAÌ@M`2AlL0ýfQAÌ€_`2AlL°ûfQAÌ@t`2AlLÐúfQAÌÀˆ`2AlL`ùfQAÌ@™`2AlLp÷fQAÌ€£`2AlLÐôfQAÌ@²`2AlL`ñfQA̺`2AlL ïfQAÌÀË`2AlLífQAÌ@ë`2AlLPêfQAÌ a2AlLêfQAÌÀ(a2AlLÀéfQAÌÀ;a2AlL€éfQAÌea2AlL`éfQAÌya2AlLðèfQAÌ€a2AlLèfQAÌ£a2AlLPåfQAÌÀ£a2AlLâfQAÌÀ«a2AlL€ßfQAÌ»a2AlLÝfQAÌÀ×a2AlLÙfQAÌía2AlLàÖfQAÌ@ùa2AlL0ØfQAÌ@b2AlLÐÝfQAÌ€b2AlL0ÝfQAÌ*b2AlL°ÚfQAÌd2AlL€ªfQAÌ@…d2AlL¡fQAÌÀ¸d2AlLðœfQAÌe2AlLЗfQÄe2AlLÐ’fQAÌ€že2AlL°‘fQAÌ€f2AlL°fQAÌÀ#f2AlL ŒfQAÌ€Gf2AlL€ˆfQAÌ@zf2AlL„fQAÌ€¼f2AlL €fQAÌ@Ïf2AlLpfQAÌÀêf2AlL|fQAÌ÷f2AlLÐzfQAÌÀ g2AlL0zfQAÌ€g2AlL°|fQAÌ@ g2AlLp~fQAÌ0g2AlL0€fQAÌÀGg2AlL€fQAÌÀOg2AlL~fQAÌÀ_g2AlLpyfQAÌÀhg2AlL vfQAÌvg2AlLPvfQAÌ@g2AlL€rfQAÌÀg2AlLÐnfQAÌÀ g2AlLÀifQAÌÀ g2AlL dfQAÌ@°g2AlLPbfQAÌ×g2AlLð[fQAÌÀ÷g2AlL@XfQAÌ@h2AlL@VfQAÌ@h2AlLWfQAÌ€,h2AlLZfQAÌÀ3h2AlL`]fQAÌ€>h2AlL0_fQAÌ@Th2AlL `fQAÌ€vh2AlL0`fQAÌ@Šh2AlLð]fQAÌ›h2AlLYfQAÌ€¯h2AlL UfQAÌ¿h2AlL0RfQAÌÀÐh2AlL@RfQAÌ@Þh2AlL`TfQAÌ@Ûh2AlL WfQAÌ@Úh2AlLP[fQAÌÀi2AlLÐ_fQAÌÀ'i2AlL€afQAÌ@Hi2AlL afQAÌÀai2AlLà_fQAÌ@si2AlL \fQAÌ@‹i2AlLWfQAÌ@¡i2AlL SfQAÌ€ºi2AlL RfQAÌ€Òi2AlLpTfQAÌèi2AlL TfQAÌþi2AlLRfQAÌÀ j2AlL OfQAÌÀ"j2AlLKfQAÌJj2AlL@HfQAÌvj2AlLPBfQAÌÌj2AlL07fQAÌ@ýj2AlLP0fQAÌ€/k2AlL€%fQAÌfk2AlL0fQAÌÀMk2AlL`fQAÌ:k2AlL üeQAÌÀ!k2AlL ñeQAÌ@ k2AlL`èeQAÌÙj2AlLÀãeQAÌÀj2AlL`æeQAÌ€j2AlLçeQAÌÀzj2AlLÀêeQAÌ€Zj2AlL ðeQAÌÀj2AlL`üeQAÌËi2AlLàfQAÌvi2AlL@ fQAÌ€i2AlL@ fQAÌ€îh2AlL fQAÌ€i2AlL€üeQAÌ€i2AlL@öeQAÌ@^i2AlL€êeQA̤i2AlL ÚeQAÌyi2AlL ÒeQAÌ@Ji2AlL€ÌeQAÌóh2AlL ÀeQAÌ@ªh2AlL®eQAÌ@sh2AlLÀ¡eQAÌ€#h2AlL”eQAÌÀÃg2AlLÀ‹eQAÌZg2AlL „eQAÌ€ðf2AlLÀ{eQAÌÀf2AlL@meQAÌ/f2AlL€beQAÌÃe2AlL€TeQAÌÀ€e2AlLÀGeQAÌ€fe2AlL3eQAÌÀEe2AlL`eQAÌ€e2AlLÀeQAÌ€åd2AlL@ôdQAÌÀ£d2AlLÀídQAÌ€d2AlL`ódQAÌpd2AlL@ödQAÌRd2AlL€üdQAÌ€#d2AlLàîdQAÌd2AlL€ædQAÌÀd2AlLàädQAÌ€d2AlLàÞdQAÌÀÖc2AlLÎdQAÌ@ªc2AlLÀÃdQAÌÀgc2AlL€¼dQAÌ@9c2AlLàµdQAÌ@æb2AlL ¥dQAÌ€ºb2AlL€—dQAÌÀŒb2AlL ŠdQAÌ^b2AlL}dQAÌÀb2AlLmdQAÌ€Ûa2AlLàYdQAÌ@‘a2AlLGdQAÌ=a2AlLAdQAÌ€ñ`2AlL 9dQAÌ€®`2AlL )dQAÌÀ­`2AlL°dQAÌ€­`2AlL`dQAÌ€±`2AlL þcQAÌÀ–`2AlL€ìcQAÌÀž`2AlLÀÞcQAÌÀ“`2AlL ÈcQAÌÀ`2AlL ¯cQAÌ€¶`2AlL€£cQAÌ€Æ`2AlLà›cQAÌÀÃ`2AlL•cQAÌ€¿`2AlL‰cQA̤`2AlL {cQAÌ€w`2AlL@qcQAÌ@4`2AlL@ecQAÌã_2AlL@YcQAÌ@„_2AlLàTcQAÌ@M_2AlL ScQAÌé^2AlL€XcQAÌ€Í^2AlL€YcQAÌ@Ç^2AlL@XcQAÌ ^2AlLàOcQAÌ€f^2AlL DcQAÌ@X^2AlLà@cQAÌ@8^2AlLÀ8cQAÌ^2AlL@-cQAÌ@î]2AlL@(cQAÌË]2AlL !cQA̾]2AlLÀcQAÌ€·]2AlLcQAÌ€«]2AlL€cQAÌ@š]2AlL cQAÌ]2AlL@cQAÌ@h]2AlL cQAÌ@C]2AlL  cQAÌ@3]2AlL cQAÌ€]2AlL cQAÌ@û\2AlL`cQAÌÕ\2AlLÀÿbQAÌ€ž\2AlLàôbQAÌ€_\2AlLÀëbQAÌÀ\2AlLÞbQAÌ@(\2AlL ÏbQAÌY\2AlL@ÂbQAÌ–\2AlL¶bQAÌ€Ö\2AlL@¦bQAÌ@æ\2AlL bQAÌ@Õ\2AlL€ŠbQAÌ@Ë\2AlL`tbQAÌ]2AlLhbQAÌñ\2AlL YbQAÌÀÆ\2AlL€FbQAÌ@˜\2AlL@4bQAÌ€j\2AlLà bQAÌ€W\2AlL bQAÌ3\2AlL ÿaQAÌÀô[2AlL`ðaQAÌ@£[2AlLàÝaQAÌ€e[2AlLàËaQAÌ€[2AlL ¯aQAÌÚZ2AlL@aQAÌ€¹Z2AlL`zaQAÌ@˜Z2AlL€YaQAÌ€Z2AlL AaQAÌ€[Z2AlL 5aQAÌ@ Z2AlL@&aQAÌÀÐY2AlL`aQAÌvY2AlL`aQAÌ7Y2AlLø`QAÌ€)Y2AlLö`QAÌÀÖX2AlL€ê`QAÌÍX2AlL`á`QAÌ@ÅX2AlL@Ú`QAÌÀ˜X2AlL Ì`QAÌÀUX2AlL€³`QAÌ@X2AlL ¢`QAÌ€éW2AlLÀ”`QAÌ@ÅW2AlL ‚`QAÌ@±W2AlLÀw`QAÌ–W2AlL h`QAÌÀLW2AlLQ`QAÌ,W2AlL€?`QAÌ@%W2AlLà;`QAÌ€îV2AlL@'`QAÌ’V2AlL"`QAÌÀSV2AlL`(`QAÌ@9V2AlL€4`QAÌÀV2AlL=`QAÌÀ·U2AlLà2`QAÌ€†U2AlL€`QAÌ|U2AlLÀ `QAÌ@gU2AlL€û_QAÌ@TU2AlL ö_QAÌÀ3U2AlLí_QAÌ€ÕT2AlL`ä_QAÌxT2AlL`ã_QAÌpT2AlL@ã_QAÌ5T2AlL`æ_QAÌT2AlLøï_QAÌÜS2AlLàæ_QAÌ@­S2AlL@Ü_QAÌ€S2AlLÊ_QAÌÀVS2AlL¾_QAÌP2AlL0Ž]QAÌP2AlL ”]QAÌÀåO2AlL€—]QAÌÀ½O2AlLà™]QAÌÀO2AlLà›]QAÌJO2AlL€ ]QAÌÀO2AlL£]QAÌÀúN2AlL€£]QA̸N2AlLÀ¦]QAÌÀwN2AlL@­]QAÌHN2AlLÀ²]QAÌ€þM2AlLµ]QAÌÎM2AlL ´]QAÌ€žM2AlLÀ®]QAÌÀM2AlL`«]QAÌ€qM2AlL€©]QAÌ€\M2AlLà©]QAÌ4M2AlL ª]QAÌÀöL2AlL`ª]QAÌ@çL2AlL`ª]QAÌ@ÄL2AlLÀ¤]QAÌ–L2AlL ¢]QAÌÀtL2AlLŸ]QAÌÀaL2AlLP]QAÌ@ML2AlL€Ÿ]QAÌ@>L2AlL ¡]QAÌ€#L2AlL€¢]QAÌÀL2AlLà¡]QAÌÐK2AlL@¢]QAÌ@K2AlL ¡]QAÌÀGK2AlL` ]QAÌ€K2AlL@œ]QAÌÀÎJ2AlL™]QAÌÀŽJ2AlL —]QAÌ>J2AlL@”]QAÌ@÷I2AlL@‘]QAÌ€¶I2AlL`Ž]QAÌ|I2AlL Š]QAÌÀ.I2AlL@ˆ]QAÌ$I2AlLà‡]QAÌ@ýH2AlLЇ]QAÌÀñH2AlLÀ‡]QAÌ’H2AlL ‡]QAÌÀ:H2AlL`]QAÌH2AlLàŽ]QAÌÀÙG2AlL’]QAÌ@G2AlL ™]QAÌ@FG2AlLà¡]QAÌÀ G2AlL ¥]QAÌ€ÂF2AlL ¨]QAÌÀ…F2AlL0©]QAÌ@XF2AlL ©]QAÌ@®E2AlL@¨]QAÌÀŒE2AlL §]QAÌVE2AlL§]QAÌÀ,E2AlL€¦]QAÌ@óD2AlL§]QAÌ€»D2AlL@¨]QAÌ[D2AlL`ª]QAÌÀ.D2AlLª]QAÌßC2AlL«]QAÌ@«C2AlL «]QAÌ€^C2AlL ¬]QAÌ€C2AlL`­]QAÌ€ C2AlL ­]QAÌÀÖB2AlLà®]QAÌ€¥B2AlLÀ®]QAÌÀqB2AlL °]QAÌ€5B2AlL ³]QAÌÀB2AlL´]QAÌ€ºA2AlL@¶]QAÌÀˆA2AlL ·]QAÌÀ`A2AlL€º]QAÌ@EA2AlL€»]QAÌ&A2AlL€»]QAÌÀß@2AlL ½]QA̪@2AlLà¾]QAÌÀk@2AlL Á]QAÌ@K@2AlL Á]QAÌ€3@2AlL@Á]QAÌ@2AlL À]QAÌ€@2AlLà¿]QAÌô?2AlLp¿]QAÌ€í?2AlL@¿]QAÌ€Û?2AlL ¾]QAÌ£?2AlL »]QAÌ€w?2AlL ¸]QAÌ@1?2AlLÀµ]QAÌ@ú>2AlL·]QAÌ€¿>2AlL@¹]QAÌ@Ž>2AlL ¶]QAÌc>2AlLð´]QAÌW>2AlL ´]QAÌ@5>2AlL`¶]QAÌ&>2AlL ·]QAÌÀ >2AlL`·]QAÌù=2AlLÀ·]QAÌÀá=2AlL¸]QAÌÀ¿=2AlL ¹]QAÌÀš=2AlL€º]QAÌ‚=2AlL º]QAÌ@a=2AlLà¸]QAÌ@K=2AlL ¸]QA̸<2AlL ´]QAÌÀ~<2AlL º]QAh©›™v<2Aæ™Ù¼]QAÌÀ}<2AlLÀÌ]QAÌÀ„<2AlL€Ø]QAÌ€}<2AlL@ò]QAÌÀ†<2AlL ^QAÌÀ{<2AlL ^QAÌ@Y<2AlLà%^QAÌ€¬;2AlL`e^QAÌf;2AlL€j^QAÌ@Ó;2AlL`–^QAÌ@ÿ<2AlL`„^QAÌÀ =2AlL ^QAÌ@=2AlLm^QAÌÀJ=2AlLÀl^QAÌ @u=2AlLl^QAÌ·=2AlLðe^QAÌ@Æ=2AlLàj^QAÌÀç=2AlL€t^QAÌ >2AlL|^QAÌÀC>2AlL`†^QAÌJ>2AlL ‡^QAÌ€m>2AlL`^QAÌ@œ>2AlL`x^QAÌ@Ç>2AlL€q^QAÌÀì>2AlL m^QAÌ4?2AlL j^QAÌ€\?2AlLÐ[^QAÌ€y?2AlL _^QAÌ€—?2AlL€c^QAÌÀ­?2AlL€N^QAÌ@Þ?2AlL`B^QAÌÀå?2AlL L^QAÌö?2AlL€S^QAÌ@@2AlLàl^QAÌÀ£@2AlL0`^QAÌ™A2AlLÐ^QAÌ@®A2AlL €^QAÌ€ÌA2AlL ^QAÌÀB2AlL`„^QAÌ€QB2AlL@Ž^QAÌ@†B2AlL€˜^QAÌÆA2AlL¼^QAÌŸ?2AlLà_QAÌ@ ?2AlLÀ'_QAÌ@¬?2AlL3_QAÌÀÎ?2AlL <_QAÌ€û?2AlL@C_QAÌÀ>@2AlLO_QAÌ@M@2AlL R_QAÌ€c@2AlL X_QAÌ€f@2AlLàf_QAÌ€Y@2AlL`i_QAÌ@R@2AlLÐj_QAÌ@n?2AlLÀ—_QAÌÀ?2AlLà_QAÌe=2AlLà `QAÌÀ=2AlL:`QAÌ€t<2AlLÀõ_QAÌ€¹<2AlL Ú_QAÌ€ñ<2AlLÀÅ_QAÌ€@=2AlL€¶_QAÌÀd<2AlL€i_QAÌÀæ;2AlLà=_QA̘;2AlL'_QAÌ@’;2AlL(_QAÌÀ;2AlLÀA_QAÌî:2AlL@O_QAÌÊ:2AlL U_QAÌÀ :2AlL€\_QAÌ€y:2AlL g_QAÌV:2AlL v_QAÌ€8:2AlL_QAÌ:2AlL Š_QAÌ@ó92AlL Œ_QAÌÀB:2AlL@®_QAÌ@€:2AlLÀÃ_QAÌ€®:2AlL Ò_QAÌ€æ:2AlLß_!QAÌÀV:2AlL@û_QAÌ*:2AlL`QA̤92AlL `QAÌ@ž92AlLà`QAÌã82AlL `QAÌè82AlLp$`QAÌ€92AlL`k`QAÌ€92AlLàq`QAÌ@î82AlLˆw`QAÌ@Ý82AlL}`QAÌÀ92AlL@‹`QAÌ*92AlLÀ•`QAÌ€M92AlL `QAÌÀ¥92AlLà¬`QAÌã92AlL@µ`QAÌÀ :2AlL@¾`QAÌÀ":2AlLàÅ`QAÌò92AlL Ï`QAÌ@Ã92AlL`×`QAÌ@¤92AlLÀÝ`QAÌ€‡92AlL@ã`QAÌ]92AlLÀñ`QAÌQ92AlLö`QAÌk92AlLþ`QAÌ@‰92AlL aQA̸92AlL (aQAÌ€æ92AlL€:aQAÌ@ñ92AlL >aQAÌÀ :2AlL HaQAÌ@d:2AlL€;aQAÌ€ ;2AlLÀ3aQAÌ£;2AlL`/aQAÌ€Î;2AlLà,aQAÌû;2AlLÀ*aQAÌC<2AlLÀ+aQAÌt<2AlL -aQAÌÀë<2AlL`HaQAÌÀx<2AlLmaQAÌe<2AlLÀoaQAÌ@D<2AlL`taQȦ;2AlLŠaQAÌ@c;2AlLÀ™aQAÌk;2AlL¦aQAÌÀ©;2AlL°aQAÌÜ;2AlLà»aQAÌ(<2AlL`ÐaQAÌ)<2AlL`ÚaQAÌ€)<2AlLÝaQAÌ@g;2AlL@bQAÌÀÓ;2AlL€cQAÌ@62AlLàMcQAÌ€z62AlL bcQAÌ€f62AlL€scQAÌb62AlL€‡cQAÌÀ~62AlLàcQAÌ€’62AlL€cQAÌ@i62AlL ¤cQAÌÀE62AlLÀ¬cQAÌ€+62AlLà³cQAÌ@ 62AlLºcQAÌÀä52AlL ¸cQAÌÀ®52AlL@¶cQAÌÀ”52AlL¤cQAÌÀƒ52AlL ”cQAÌ€x52AlL€ŠcQAÌ\52AlLІcQAÌ€*52AlLŠcQAÌÀ 52AlL`‰cQAÌÀ'42AlL`œcQAÌÀÐ32AlL ¡cQAÌ€¡32AlL@¨cQAÌ€J32AlL@©cQAÌÀ32AlL ªcQAÌ€æ22AlL€¬cQA̼22AlL ­cQAÌ@‘2#2AlL ¬cQAÌ€{22AlLÀ®cQAÌÀt22AlLвcQAÌÀl22AlLÀ·cQAÌ@U22AlLà¼cQAÌ@22AlLàÈcQAÌÀÿ12AlL`ÒcQAÌ€á12AlL`ÙcQAÌÀÑ12AlL ßcQAÌÀò12AlLÀæcQAÌã12AlLàðcQAÌÀ´12AlL øcQAÌž12AlL€ýcQAÌ€˜12AlLÀdQAÌ¥12AlL dQAÌÒ12AlL dQAÌ22AlL€ dQAÌ@'22AlL@dQAÌ@A22AlL dQAÌÀB22AlL@dQAÌ722AlL`dQAÌ€-22AlLdQAÌÀ/22AlL #dQAÌ@¥22AlL`+dQAÌ@É22AlLÀ dQAÌ@Ñ22AlL dQAÌG32AlLÀþcQAÌ|32AlLàñcQAÌ@ž32AlLðcQAÌ@§32AlL`ùcQAÌ”32AlLdQAÌÀ{32AlLà dQAÌÀn32AlLÀdQAÌk32AlL@$dQAÌ€g32AlL0dQAÌÀN32AlL:dQAÌ@O32AlL@@dQAÌ€_32AlLÀFdQAÌ@232AlL UdQAÌÀ32AlL€_dQAÌÖ22AlL ^dQAÌÀ–22AlLà`dQAÌ€W22AlL€cdQAÌÀ22AlL€gdQAÌÀì12AlL@jdQAÌ«12AlLÐcdQAÌ@h12AlLidQAÌh12AlLadQAÌö02AlL xdQA̼02AlL€jdQAÌÀƒ02AlLÀcdQAÌÀa02AlLà[dQAÌ@N02AlLVdQAÌ%02AlL€UdQAÌ@02AlL_dQAÌÀù/2AlL kdQAÌ@æ/2AlL€{dQAÌß/2AlLÀ‰dQAÌ€è/2AlL@—dQAÌ÷/2AlL`¨dQAÌ@02AlL`ºdQAÌÀ<02AlL ÈdQAÌP02AlLÓdQAÌÀ)02AlL€ádQAÌ$€02AlLÀödQAÌê/2AlL`eQAÌ@Ú/2AlL€eQAÌÀÑ/2AlLàeQAÌ@ë/2AlLàeQAÌ@å/2AlLÀeQAÌ Ó/2AlL@-eQAÌÌ/2AlL€5eQAÌ€È/2AlLÀAeQAÌÀ®/2AlLÀReQAÌ€ƒ/2AlL€oeQAÌj/2AlL {eQAÌd/2AlL`‰eQAÌb/2AlL`˜eQAÌ@b/2AlL€£eQAÌ€b/2AlL©eQAÌÿ.2AlLБeQAÌ€›.2AlLÀªeQAÌÀŽ.2AlL@ÊeQAÌ@~.2AlLÀÌeQAÌÀf.2AlL`ÐeQAÌ€\.2AlL ÒeQAÌ€D.2AlLÀ×eQAÌ@#.2AlL`âeQAÌ€ù-2AlL çeQAÌ€Í-2AlLîeQAÌ€¹-2AlLàôeQAÌ€Õ-2AlL@fQAÌ€í-2AlL€fQAÌ.2AlLÀ fQAÌÀ1.2AlL -fQAÌ@Z.2AlL`8fQAÌ€‡.2AlLCfQAÌÀ¤.2AlL`JfQAÌ€–.2AlL€UfQAÌÀ.2AlL [fQAÌ€†.2AlL@dfQAÌÀp.2AlL@jfQAÌb.2AlL@ofQAÌÀJ.2AlL`zfQAÌÀ8.2AlLàfQAÌ€.2AlL@…fQAÌÀû-2AlL ‡fQAÌ€×-2AlL`ŠfQAÌÀÂ-2AlLÀfQAÌÀÒ-2AlLà›fQAÌÀç-2AlL ¨fQAÌ€÷-2AlLà¬fQAÌ.2AlL@¶fQAÌ#.2AlLÀºfQAÌ@ó-2AlLÀÃfQAÌ€Þ-2AlL`ÈfQAÌÈ-2AlL`ÎfQAÌ­-2AlL ÔfQAÌ€‚-2AlLÜfQAÌÀV-2AlL€áfQAÌ@ÿ,2AlL@½fQAÌÀ™,2AlLPfQAÌ€_,2AlL`¤fQAÌ6,2AlL€¨fQAÌÀ),2AlLÀ©fQAÌÀ`,2AlL ÄfQAÌX,2AlLËfQAÌ},2AlL@×f%QAÌ@ª,2AlL`åfQAÌÌ,2AlLÀòfQAÌÀç,2AlLàûfQAÌÀò,2AlL€ÿfQAÌ€ú,2AlLÀgQAÌ€÷,2AlLgQAÌß,2AlL€gQAÌ@Ñ,2AlLgQAÌ£,2AlL€gQAÌÀ‘,2AlLÀ$gQAÌ€c,2AlLÀ+gQAÌ€4,2AlL -gQAÌ€ÿ+2AlL@+gQAÌõ+2AlL@#gQAÌ@É+2AlLP gQAÌ@¡+2AlLà&gQAÌÀ+2AlL`/gQAÌ@h+2AlL€7gQAÌ@4+2AlL @gQAÌ@8+2AlLàHgQAÌÀ!+2AlLNgQAÌÀ+2AlLÀRgQAÌ@þ*2AlL RgQAÌñ*2AlL@RgQAÌ€×*2AlL@ZgQAÌ@Ð*2AlL@_gQAÌ@Ë*2AlL bgQAÌ€­*2AlL ggQAÌš*2AlLàkgQAÌÀo*2AlL`kgQAÌ@M*2AlLigQAÌÀ0)2AlLà¤gQAÌ@ )2AlLžgQAÌæ(2AlL ¥gQAÌ@)2AlLàÆgQAÌÀØ(2AlL@ËgQAÌÀ¨(2AlLàÐgQAÌ€j(2AlLàÓgQAÌ@?(2AlL ÓgQAÌ€(2AlLàÜgQAÌó'2AlL€ëgQAÌÀÖ'2AlLîgQAÌÀ®'2AlL ígQAÌÂ'2AlL`hQAÌØ'2AlL`hQAÌ@ô'2AlL =hQAÌ€û'2AlLàNhQAÌ@ä'2AlL`ahQAÌ@¾'2AlL rhQAÌ '2AlLˆhQAÌ‘'2AlL@šhQAÌ@­'2AlL©hQAÌ@´'2AlL@·hQAÌ@­'2AlL@ÍhQAÌÀ°'2AlLÀÚhQAÌ€ð'2AlL`ähQAÌÀ (2AlL æhQAÌ@>(2AlL@ëhQAÌ€h(2AlLÀîhQAÌÀx(2AlLàühQAÌ@’(2AlL ÿhQAÌ@Ã(2AlL€iQAÌÀÛ(2AlLÀiQAÌ€Î(2AlL& iQA̱(2AlLàiQAÌ€(2AlL`#iQAÌ@w(2AlL€'iQAÌ€_(2AlL ,iQAÌ@e(2AlL@8iQAÌ@•(2AlL`6iQAÌ@¢(2AlL€IiQA̤(2AlL@diQAÌ@·(2AlLÀ|iQAÌ@Ë(2AlL@“iQAÌ€Ù(2AlL`iQAÌ€Ñ(2AlLÀ¤iQAÌÀê(2AlL€¯iQAÌÀ )2AlLÀ¾iQAÌ@)2AlL`ÌiQAÌÀ)2AlL ÜiQAÌ€þ(2AlLàîiQAÌ@þ(2AlL ÷iQAÌ€F)2AlLÀûiQAÌ@Z)2AlL jQAÌ€])2AlL  jQAÌÀw)2AlLjQAÌ´)2AlLà$jQAÌÀë)2AlL .jQAÌ@õ)2AlLà8jQAÌ€÷)2AlL€BjQAÌ*2AlLLjQAÌÀ#*2AlLàPjQAÌ@D*2AlLàLjQAÌÀg*2AlL ZjQAÌÀ–*2AlLÀcjQAÌÀÇ*2AlLàdjQAÌÀî*2AlLÀajQAÌ+2AlL^jQAÌK+2AlL€ujQAÌ€g+2AlL€jQAÌw+2AlLà…jQAÌ@e+2AlLà’jQAÌ@c+2AlL@¨jQAÌ€w+2AlLÀ³jQAÌ€|+2AlL¼jQAÌ€{+2AlLà¾jQAÌ+2AlLÅjQAÌ@ž+2AlL`ËjQAÌ@ª+2AlLÏjQAÌÀ·+2AlLÀÊjQAÌÀÕ+2AlL@ÇjQAÌ€û+2AlLàÅjQAÌÀ),2AlL ¿jQAÌ@O,2AlL»jQAÌÀU,2AlLÀ´jQAÌ9,2AlLÀ«jQAÌ€",2AlL ¦jQAÌ@!,2AlL€›jQAÌ@#,2AlL`‘jQAÌ1,2AlLà‹jQAÌÀ],2AlLàŒjQAÌq,2AlLÀ—jQAÌÀu,2AlL@§jQÄ,2AlLà±jQA̹,2AlL@·jQA̱,2AlL ¾jQAÌ…,2AlLÅjQAÌ@n,'2AlL`ÉjQAÌ€x,2AlLÀÞjQAÌ@Ë,2AlLÀÓjQAÌë,2AlLàÜjQAÌ@J-2AlL ÌjQAÌ@a-2AlL ÐjQAÌÀ-2AlL`ÈjQA̪-2AlLÀÁjQAÌÀâ-2AlL`¹jQAÌÀ .2AlL³jQAÌÀI.2AlL@­jQAÌ€–.2AlL ¦jQAÌ@µ.2AlL`£jQAÌ@è.2AlL ¡jQAÌ-/2AlL ¤jQAÌM/2AlL@¬jQAÌÀc/2AlL ±jQAÌ€€/2AlL@¾jQAÌŒ/2AlL`ÏjQAÌ€–/2AlL ãjQAÌ—/2AlLðjQAÌ€…/2AlL€ùjQAÌ@^/2AlLÀkQAÌ€#/2AlL€kQAÌ/2AlL`kQAÌ@ /2AlLàkQAÌ@)/2AlLkQAÌÀ8/2AlLkQAÌg/2AlLàkQAÌ€Å/2AlL€kQAÌØ/2AlLÀkQAÌÀê/2AlL€kQAÌÀ02AlLkQAÌ€02AlL€(kQAÌÀ"02AlL`0kQAÌ€02AlL ;kQAÌö/2AlL GkQAÌ@Ø/2AlLàSkQAÌÀ™/2AlL SkQAÌ@Ž/2AlL MkQAÌ€/2AlL BkQAÌ‹/2AlL 2AlLpznQAÌ@ >2AlLÐxnQAÌ>2AlLÀxnQAÌÀ%>2AlLÐwnQAÌÀ,>2AlL`unQAÌÀ,>2AlLàrnQAÌ(>2AlL qnQAÌ>2AlL pnQAÌÀ>2AlLnnQAÌ€ >2AlLmnQAÌ@>2AlLðknQAÌÀ>2AlL€gnQAÌ>2AlLàcnQAÌÀ >2AlLð`nQAÌÀ>2AlLà`nQAÌ@>2AlL€_nQAÌ@>2AlL`]nQAÌ€>2AlL°[nQAÌÀ>2AlLØXnQAÌ>2AlLàVnQAÌ>2AlL UnQAÌÀ>2AlLðSnQAÌ >2AlL SnQAÌ>2AlLÀLnQAÌ€ >2AlL@JnQAÌÀ >2AlL FnQAÌ@>2AlLPCnQAÌ€ >2AlLð?nQAÌ>2AlL@>nQAÌ>2AlLÐ2AlLÀ;nQAÌ >2AlLÀ9nQAÌ€>2AlL 9nQAÌ>2AlLÐ9nQAÌ€!>2AlL°;nQAÌÀ(>2AlL`:nQAÌ€0>2AlLÐ7nQAÌÀ5>2AlLÐ6nQAÌ@F>2AlL`7nQAÌ€R>2AlL7nQAÌ@]>2AlLp6nQAÌÀc>2AlL 5nQAÌ€]>2AlLp3nQAÌ@X>2AlLÀ1nQAÌ€Q>2AlL°0nQAÌ€P>2AlLð-nQAÌ€L>2AlLÐ+nQAÌ`L>2AlLX)nQAÌT>2AlL`*nQAÌ€]>2AlLÀ,nQAÌa>2AlLÐ/nQAÌ@i>2AlL°2nQAÌ€q>+2AlL5nQAÌ@v>2AlL6nQȦ>2AlLÀ5nQAÌŒ>2AlL 3nQAÌÀ>2AlL0nQAÌ€>2AlLð-nQAÌÀ›>2AlL-nQAÌ€©>2AlL°+nQAÌ@°>2AlL0*nQAÌ@´>2AlL@'nQAÌ@¶>2AlLÀ$nQAÌ€¼>2AlL#nQAÌÀ¼>2AlLðnQAÌÀ¸>2AlL nQAÌÀ¯>2AlL`nQAÌ¢>2AlL nQAÌ€¢>2AlLðnQAÌž>2AlLnQA̘>2AlLnQAÌ >2AlL nQAÌÀŸ>2AlL@nQAÌ€ž>2AlLnQAÌ€™>2AlLÀ nQAÌ@ >2AlL@ nQAÌ¢>2AlLÐnQAÌÀ®>2AlLnQAÌÀ¹>2AlLpnQAÌÀÊ>2AlLPnQAÌÀØ>2AlLPÿmQAÌå>2AlLðnQAÌÀð>2AlLÐnQAÌ@ÿ>2AlLnQAÌÀ?2AlLnQAÌ@ ?2AlL`nQAÌ@?2AlL@nQAÌ€?2AlL0nQAÌ?2AlL0nQAÌ€ ?2AlLpþmQAÌ?2AlL þmQAÌ€ü>2AlL ümQAÌ€ü>2AlLømQAÌ€þ>2AlLÀòmQAÌ€ÿ>2AlL@ïmQAÌÀÿ>2AlL ìmQAÌ@ ?2AlLÀémQAÌ@?2AlLèmQAÌ?2AlLÐémQAÌÀ2?2AlL`ìmQAÌC?2AlL@ìmQAÌÀK?2AlLîmQAÌ€V?2AlL€ðmQAÌÀu?2AlL ñmQAÌ€…?2AlL0ómQAÌ€?2AlLómQAÌ€ª?2AlL€òmQA̯?2AlL°ðmQAÌÀ¹?2AlLàïmQAÌÒ?2AlL ómQAÌÖ?2AlLPõmQAÌÀÙ?2AlLðömQAÌÀå?2AlL ÷mQAÌ€ó?2AlL°ùmQAÌ@2AlL0úmQAÌÀ@2AlLÀümQAÌ,€@2AlL@nQAÌ€@2AlLPnQAÌÀ*@2AlL  nQAÌ€3@2AlLÐnQAÌ@3@2AlLðnQAÌ€5@2AlL€nQAÌ@>@2AlLðnQAÌ@?@2AlL€!nQAÌI@2AlLà%nQAÌ T@2AlL°(nQAÌÀ^@2AlL°(nQAÌ€b@2AlL€+nQAÌ€f@2AlLà-nQAÌ€l@2AlL1nQAÌ€s@2AlL`1nQAÌ@€@2AlL/nQAÌ@ƒ@2AlL0,nQAÌ€„@2AlLÀ)nQAÌ€@2AlL€)nQAÌÀ—@2AlL'nQAÌÀ¥@2AlL&nQA̰@2AlL0&nQAÌ€»@2AlL€$nQAÌ@Æ@2AlL°$nQAÌ€Ð@2AlL #nQAÌØ@2AlL #nQAÌ€ç@2AlL`#nQAÌõ@2AlL`$nQAÌ A2AlL#nQAÌ@A2AlLà"nQAÌ€A2AlL`&nQAÌ@A2AlL *nQAÌ@A2AlLÀ,nQAÌ#A2AlLp-nQAÌ@'A2AlLð.nQAÌ1A2AlL0nQAÌÀ>A2AlL-nQAÌ€MA2AlL)nQAÌÀjA2AlLP%nQAÌ@wA2AlL0"nQAÌ€„A2AlL nQAÌ€ˆA2AlLÀnQAÌ€’A2AlL@nQAÌ@¡A2AlLPnQAÌ¥A2AlL@nQAÌ€´A2AlL0nQA̸A2AlL nQA̾A2AlLÀnQAÌÄA2AlL0nQAÌÖA2AlLnQAÌ@àA2AlL nQAÌ@æA2AlLðnQAÌ€âA2AlL nQAÌÝA2AlLPnQAÌàA2AlL€ nQAÌ@åA2AlL nQAÌ€ãA2AlL0nQAÌÀçA2AlL nQAÌçA2AlLnQAÌÀöA2AlLnQAÌÀýA2AlL nQAÌ€B2AlLÀnQAÌB2AlLnQAÌ€B2AlL0n-QAÌÀ-B2AlLànQAÌ@9B2AlLnQAÌ€AB2AlLnQAÌGB2AlL` nQAÌ\B2AlLPnQAÌ€_B2AlL nQAÌ€eB2AlL nQAÌ€WB2AlLðÿmQAÌ@MB2AlLÀýmQAÌ€EB2AlLümQAÌÀRB2AlL`úmQAÌaB2AlLÀúmQAÌÀkB2AlL°ýmQAÌÀ~B2AlLÀýmQAÌ€B2AlLýmQA̤B2AlLÐûmQAÌÀ·B2AlL€ùmQAÌÅB2AlLp÷mQA̺B2AlLómQAÌÀ©B2AlLñmQAÌ@ B2AlL°îmQAÌ@¢B2AlLðèmQAÌœB2AlLæmQAÌ‘B2AlLPãmQAÌ–B2AlLâmQAÌ€¨B2AlL0ãmQAÌ€·B2AlLPåmQAÌ€¾B2AlLàæmQAÌÀÂB2AlL€ämQAÌ@¾B2AlLÐámQA̶B2AlL€ÞmQAÌ@·B2AlLÜmQAÌ€¿B2AlL`ÛmQAÌÀÆB2AlLÐßmQAÌ@ÒB2AlLpàmQAÌ@ÖB2AlLðämQAÌÕB2AlL@çmQAÌ@ÙB2AlL êmQAÌ€ãB2AlLìmQAÌ@ïB2AlLìmQAÌ@úB2AlL@îmQAÌÀC2AlLïmQAÌÀC2AlLïmQAÌC2AlLÐìmQAÌ€&C2AlL°ëmQAÌ€3C2AlLpêmQAÌÀ=C2AlLðêmQAÌÀGC2AlL°ìmQAÌPC2AlL`ìmQAÌ@JC2AlL°émQAÌ@LC2AlLàæmQAÌ@MC2AlL@ãmQAÌ€KC2AlLÐàmQAÌ@SC2AlLÞmQAÌYC2AlL`ÜmQAÌbC2AlL ÜmQAÌ@oC2AlLàÜmQAÌ@pC2AlL€ßmQAÌÀqC2AlL@âmQAÌ~C2AlL ãmQAÌ€’C2AlL`âmQAÌ@¢C2AlLðámQAÌÀ³C2AlL@ámQAÌÀÅC2AlL. àmQAÌÐC2AlL°ÞmQAÌ@ÔC2AlL0ÜmQAÌ€ÎC2AlLðÙmQAÌ@ÎC2AlLàÖmQAÌ@ÊC2AlL€ÔmQAÌ@ÂC2AlLÒmQAÌ€¹C2AlL ÐmQAÌ´C2AlL`ÏmQAÌÀµC2AlLðÌmQAÌ€©C2AlL ËmQAÌœC2AlLÐÊmQAÌŽC2AlL°ÉmQAÌ€’C2AlLpÇmQAÌ€¡C2AlLpÅmQA̬C2AlL@ÅmQAÌ€¯C2AlLÐÂmQA̬C2AlLÁmQAÌÀ¹C2AlLÁmQAÌ@ÀC2AlL ÂmQAÌÀÅC2AlLÀ¾mQAÌÀÄC2AlLà¼mQAÌÏC2AlL ¼mQAÌÀØC2AlL¿mQAÌÝC2AlL0ÂmQAÌ€æC2AlL`ÅmQAÌòC2AlLàÇmQAÌÀþC2AlL°ÉmQAÌÀD2AlLÀÊmQAÌÀ D2AlL`ÍmQAÌ€D2AlLpÍmQAÌ+D2AlLÊmQAÌE2AlL nmQAÌÀ(E2AlLPomQAÌE2AlLpomQAÌ@E2AlL pmQAÌE2AlL rmQAÌ€÷D2AlL rmQAÌÀïD2AlLpqmQAÌ€öD2AlL@omQAÌ€þD2AlLðkmQAÌE2AlLàjmQAÌ@E2AlL0imQAÌE2AlL@hmQAÌ€ E2AlLàfmQAÌ€E2AlL`emQAÌòD2AlL cmQAÌ ðD2AlL8amQAÌèD2AlLÀamQAÌ€èD2AlL€_mQAÌñD2AlLP^mQAÌ@ñD2AlLà\mQAÌ`ïD2AlLp[mQAÌÀ÷D2AlL\mQAÌÀþD2AlL ^mQAÌE2AlLà]mQAÌE2AlLP_mQAÌÀE2AlL_mQAÌ@E2AlLÀ\mQAÌ€E2AlLÐZmQAÌ€E2AlL8XmQAÌ€E2AlL YmQAÌE2AlLPXmQAÌ@E2AlL@VmQAÌ€E2AlL SmQAÌ@E2AlL€QmQAÌ@ E2AlL@OmQAÌ@(E2AlL€MmQAÌ@3E2AlL@MmQAÌ@9E2AlL°NmQAÌ€@E2AlL@QmQAÌ€NE2AlLQmQAÌ0`E2AlLðOmQAÌÀkE2AlL`MmQAÌ€wE2AlLÀMmQAÌÀ€E2AlLàOmQAÌ€†E2AlLRmQAÌ€•E2AlL TmQAÌ€§E2AlLPUmQAÌ@´E2AlLUmQAÌ€ÆE2AlL@TmQAÌ€ÊE2AlLPRmQAÌ€ÄE2AlLQmQAÌ€¼E2AlLÐPmQAÌ€¶E2AlLÐOmQAÌ€»E2AlLNmQAÌ@ÄE2AlLpKmQAÌÊE2AlLÐImQAÌÊE2AlL€GmQAÌ@ÉE2AlL0DmQAÌ€ÎE2AlLPAmQAÌ€×E2AlL0>mQAÌßE2AlLI2AlL@ÜlQAÌ€HI2AlLÛlQAÌÀSI2AlLÙlQAÌ@TI2AlLàÖlQAÌÀVI2AlLðÔlQAÌ_I2AlLÐÓlQAÌ@dI2AlL@ÓlQAÌ bI2AlL¨ÐlQAÌ€`I2AlL`ÎlQAÌàZI2AlLPÍlQAÌ€WI2AlLÀÊlQAÌ`QI2AlL@ÊlQAÌ@NI2AlLÆlQAÌÀGI2AlLÀÃlQAÌNI2AlLø¿lQAÌÀVI2AlLp½lQAÌTI2AlL»lQAÌII2AlL°ºlQAÌ@9I2AlL ºlQAÌ5I2AlL0¹lQAÌ)I2AlL0¹lQAÌ6ø1AlL&oQAÌ@¹ø1AlLpoQA̯ø1AlL@þnQAÌÀ’ø1AlL ènQAÌÀø1AlL ÏnQAÌ@Œø1AlLà¾nQAÌÀø1AlL ªnQAÌ€yø1AlLà›nQAÌ@vø1AlL–nQAÌ@Sø1AlL€†nQAÌ€(ø1AlL vnQAÌ€ø1AlL`fnQAÌÀÖ÷1AlL@YnQAÌ»÷1AlLÀRnQAÌ@¨÷1AlL`NnQAÌ€’÷1AlLà:nQĂ÷1AlLÀ"nQAÌÀÌ÷1AlL nQAÌ€ø1AlLÀnQAÌ@Jø1AlLànQAÌ€kø1AlLÀìmQAÌxø1AlL@ÖmQAÌ@lø1AlL@ÂmQAÌ€[ø1AlLÀªmQAÌ@Qø1AlLà‘mQAÌLø1AlL`}mQAÌ6ø1AlL0rmQAÌ@í÷1AlL umQAÌ@¤÷1AlL€wmQAÌm÷1AlL{mQAÌ*÷1AlL`|mQAÌÀßö1AlL mQAÌ›ö1AlLÀ†mQAÌiö1AlLÀmQAÌ@ö1AlL šmQAÌÀÊõ1AlLàšmQAÌÀ˜õ1AlL mQAÌ@eõ1AlL zmQAÌ@Dõ1AlL gmQAÌTõ1AlL€RmQAÌ\õ1AlLÀpQAÌ@Þ1AlLRpQAÌÀIÞ1AlL`ZpQAÌ€eÞ1AlL _pQAÌ€’Þ1AlLÀkpQAÌÀ§Þ1AlL€opQAÌÀÛÞ1AlL`wpQAÌ€ ß1AlLÀ€pQAÌ@%ß1AlL€ƒpQAÌÀ0ß1AlL€ƒpQAÌ€mß1AlL€ƒpQAÌÀ‰ß1AlL€‡pQAÌ@žß1AlL pQAÌ@Àß1AlL’pQAÌ@òß1AlLà“pQAÌ€,à1AlLà—pQAÌ@Hà1AlL ™pQAÌ@aà1AlL`¡pQAÌ“à1AlL¨pQAÌ€»à1AlL€®pQAÌÔà1AlL€·pQAÌ@Þà1AlL¾pQAÌÀõà1AlL€ÏpQAÌ@ªá1AlL ÍpQAÌ€±á1AlL@±pQAÌéá1AlLÀ¯pQAÌ€òá1AlLÀ¶pQAÌ€)â1AlL ·pQAÌ@Nâ1AlL ÅpQAÌÀnâ1AlLÇpQAÌ@“â1AlL€¿pQAÌ€šâ1AlLà³pQAÌÀã1AlLà¶pQAÌÀã1AlL€ÄpQÃã1AlLÆpQAÌ;@„ã1AlLà¿pQAÌ€¯ã1AlL`¾pQAÌ@§ã1AlLàËpQAÌ€®ã1AlL ÜpQAÌÀÞã1AlLÜpQAÌÀ×ã1AlL€ïpQAÌnã1AlL òpQAÌ€rã1AlL` qQAÌ€Pã1AlLàqQAÌÀ\ã1AlLàqQAÌmã1AlL"qQÄã1AlL€*qQA̰ã1AlL1qQAÌÀÃã1AlLà+qQAÌ€çã1AlL $qQAÌ€ûã1AlL  qQAÌ€*ä1AlLqQAÌ@Mä1AlLqQAÌÀlä1AlL@ qQAÌä1AlLPqQAÌ€¤ä1AlLÀ qQAÌÀÈä1AlL qQAÌ€Ðä1AlL@qQAÌ€Úä1AlLqQAÌ€“ä1AlLÀ6qQAÌÀ¶ä1AlL`7qQAÌ@Òä1AlLà8qQAÌûä1AlL@;qQAÌå1AlLÀ;qQAÌ/å1AlL@@qQAÌ@Tå1AlLà9qQAÌyå1AlL`4qQAÌ€ å1AlL@,qQAÌÀÙå1AlL@)qQAÌ€äå1AlL°(qQAÌ@éå1AlL/qQAÌ@æ1AlL@4qQAÌ1æ1AlL ÷1AlL€‘oQAÌ€*÷1AlLÀsoQAÌv÷1AlL€soQAÌ€¡÷1AlLzoQAÌ€–÷1AlLSoQAÌÀiø1AlL@DoQAÌ€ƒø1AlLÀ;oQAÌ£ø1AlLÀ3oQAÌ­5?_0QAÌ@ÐÌ3AlLðZ0QAÌÚÌ3AlLàX0QAÌßÌ3AlLV0QAÌ@ëÌ3AlLpW0QAÌ€úÌ3AlL€S0QAÌõÌ3AlL`Q0QAÌüÌ3AlL0N0QAÌûÌ3AlLK0QAÌúÌ3AlLI0QAÌ€Í3AlLD0QAÌÍ3AlL0A0QAÌ€Í3AlL=0QAÌÀÍ3AlL`<0QAÌÍ3AlLp<0QAÌÀ2Í3AlL€80QAÌ€CÍ3AlLp50QAÌÀOÍ3AlL030QAÌ@aÍ3AlL€30QAÌ@nÍ3AlL€50QAÌ }Í3AlLp50QAÌ€ŽÍ3AlLP40QAÌ€“Í3AlL50QAÌÀœÍ3AlL 30QAÌ£Í3AlL40QAÌà£Í3AlL800QAÌ¢Í3AlLð-0QAÌ@—Í3AlLÀ-0QAÌ•Í3AlLÀ/0QAÌ€Í3AlL°.0QAÌ€~Í3AlL*0QAÌ@€Í3AlL0'0QAÌ@Í3AlL€$0QAÌ@xÍ3AlLÐ 0QAÌ€€Í3AlL 0QAÌ”Í3AlL0QAÌ€«Í3AlL€0QAÌ@ÅÍ3AlL`0QAÌ@ÑÍ3AlL0QAÌ€ÞÍ3AlL`0QAÌþÍ3AlL`0QAÌÀÎ3AlL  0QAÌ@+Î3AlL@0QAÌ@1Î3AlL0QAÌ 0Î3AlL0QAÌÀ8Î3AlL@0QAÌ€?Î3AlL°0QAÌÀCÎ3AlL 0QAÌDÎ3AlL°0QAÌ€HÎ3AlLð0QAÌ@TÎ3AlL 0QAÌZÎ3AlL@0QAÌÀbÎ3AlLà0QAÌ`Î3AlLð0QAÌ@hÎ3AlLÀ0QAÌ@hÎ3AlL  0QAÌ@gÎ3AlLð0QAÌÀnÎ3AlLP0QAÌkÎ3AlL0QAÌÀ`Î3AlL0QAÌ€bÎ3AlL0QAÌ€hÎ3AlL ý/QAÌ@pÎ3AlLû/QAÌÀlÎ3AlL0ø/QAÌmÎ3A@lLðó/QAÌÀqÎ3AlL°ò/QAÌÀ{Î3AlLÀñ/QAÌÀ|Î3AlLpî/QAÌÀzÎ3AlLë/QAÌÀyÎ3AlL0é/QAÌ@€Î3AlLå/QAÌ€…Î3AlLÐá/QAÌ€”Î3AlLPÞ/QAÌ@¤Î3AlL@Ù/QAÌ€°Î3AlL Ö/QAÌ¿Î3AlLÕ/QAÌÀËÎ3AlLÑ/QAÌÀØÎ3AlLË/QAÌÀäÎ3AlL0Æ/QAÌôÎ3AlL°Â/QAÌ€Ï3AlLðÀ/QAÌÀÏ3AlL`½/QAÌÀ*Ï3AlL ½/QAÌ€BÏ3AlLн/QAÌÐEÏ3AlLü¾/QAÌOÏ3AlLÀÀ/QAÌ€RÏ3AlL@Ä/QAÌ€`Ï3AlLÃ/QAÌ@fÏ3AlLØÁ/QAÌÀlÏ3AlLè¿/QAÌ€uÏ3AlL ¿/QAÌ |Ï3AlLÀÀ/QAÌÐ{Ï3AlLì½/QAÌÀvÏ3AlLØ»/QAÌ`vÏ3AlL º/QAÌÀlÏ3AlLp·/QAÌÀgÏ3AlL0¶/QAÌhÏ3AlL ´/QAÌ€sÏ3AlL€±/QAÌ€…Ï3AlLЭ/QAÌ@ŽÏ3AlLÀ¬/QAÌ œÏ3AlL¸¬/QAÌÀ¡Ï3AlL°/QAÌ@§Ï3AlLЮ/QAÌ@¨Ï3AlLð«/QAÌ@©Ï3AlLP©/QAÌ@©Ï3AlL §/QAÌ€°Ï3AlL §/QA̼Ï3AlLP§/QAÌÇÏ3AlLð¥/QAÌ@ÐÏ3AlL¥/QAÌ@×Ï3AlLP¥/QAÌÙÏ3AlL@¢/QAÌ€ßÏ3AlLР/QAÌÀâÏ3AlL ž/QAÌëÏ3AlLp/QAÌòÏ3AlL ›/QAÌÀôÏ3AlLЗ/QAÌþÏ3AlLÀ•/QAÌÐ3AlLP•/QAÌÀÐ3AlL“/QAÌÐ3AlLÐ/QAÌ€Ð3AlL‘/QAÌ`%Ð3AlLØ/QAÌÀ2Ð3AlLp‘/QAÌ@6Ð3AlL0Ž/QAÌ€DÐ3AlLpŠ/QAÌÀRÐ3AlLð†/QAÌAbÐ3AlL ƒ/QAÌ€|Ð3AlLP€/QAÌ€ŒÐ3AlL€}/QAÌ@ Ð3AlL@|/QAÌÀ¦Ð3AlL€{/QA̪Ð3AlLà|/QAÌ@¹Ð3AlLÐ{/QAÌÅÐ3AlL{/QAÌ€×Ð3AlL {/QAÌîÐ3AlL@z/QAÌÀÑ3AlLw/QAÌ€-Ñ3AlLÐu/QAÌ€?Ñ3AlLt/QAÌLÑ3AlLp/QAÌÀ[Ñ3AlL@k/QAÌcÑ3AlL@j/QAÌlÑ3AlLpj/QAÌgÑ3AlLÐh/QAÌ@bÑ3AlLðf/QAÌÀfÑ3AlLàc/QAÌ@pÑ3AlLð`/QȦÑ3AlLÐ[/QAÌ€ŽÑ3AlLZ/QAÌ@˜Ñ3AlL0Z/QAÌÀ™Ñ3AlLX/QAÌ€®Ñ3AlLÐV/QAÌ€½Ñ3AlLàV/QAÌ ÌÑ3AlLàX/QAÌÀ×Ñ3AlL€U/QAÌ@âÑ3AlL°U/QAÌÀäÑ3AlL€S/QAÌ@ÚÑ3AlLS/QAÌ@ÝÑ3AlLÀQ/QAÌ€àÑ3AlL O/QAÌ€ëÑ3AlLN/QAÌÀðÑ3AlLpK/QAÌõÑ3AlL`H/QAÌÒ3AlL@D/QAÌ€Ò3AlL@B/QAÌ€2Ò3AlLA/QAÌ€IÒ3AlLð@/QAÌ@YÒ3AlL B/QAÌ€]Ò3AlLÀE/QAÌeÒ3AlLH/QAÌÀvÒ3AlLÐJ/QAÌ@Ò3AlLÀL/QĂÒ3AlLJ/QAÌ€ŒÒ3AlLpI/QAÌ@Ò3AlLPF/QAÌ@•Ò3AlLI/QAÌ€—Ò3AlL`K/QAÌ@¢Ò3AlLPK/QĄÒ3AlLpO/QAÌÀ¯Ò3AlLpP/QAÌÀ°Ò3AlL M/QA̱Ò3AlL€H/QAÌà«Ò3AlLÀD/QAÌ€¨Ò3AlLpA/QAÌ@²Ò3AlL0A/QAÌ¿Ò3AlL0C/QAÌ€ÄÒ3AlL B/QAÌ€ºÒ3AlLp@/QAÌ€¾Ò3AlL€>/QAÌÄÒ3AlLÐ:/QAB̾Ò3AlL@:/QAÌÀÂÒ3AlL9/QAÌÀÌÒ3AlL 7/QAÌ€ÑÒ3AlL 6/QAÌ@ÖÒ3AlL`5/QAÌàÒ3AlLP5/QAÌÀèÒ3AlL 6/QAÌ@ñÒ3AlLà8/QAÌóÒ3AlLÀ3/QAÌíÒ3AlLp3/QAÌ éÒ3AlLH1/QAÌÀÝÒ3AlLÀ0/QAÌ@ÖÒ3AlL@//QAÌÀ×Ò3AlLð)/QAÌÀßÒ3AlL0)/QAÌÔÒ3AlL'/QAÌÓÒ3AlL$/QAÌ@ÕÒ3AlLÐ"/QAÌ€ÜÒ3AlL@"/QAÌ@ÔÒ3AlL°/QAÌ€ÍÒ3AlL@/QAÌ@ØÒ3AlL /QAÌÀäÒ3AlL /QAÌ€îÒ3AlL/QAÌ@öÒ3AlL°/QAÌÀÿÒ3AlL/QAÌ€Ó3AlL /QAÌÀ Ó3AlL0/QAÌ€Ó3AlLð /QAÌÀÓ3AlL° /QAÌÓ3AlLð/QAÌ€#Ó3AlL0/QAÌ@3Ó3AlLP/QAÌ@@Ó3AlLÀ/QAÌVÓ3AlLàü.QAÌ€]Ó3AlL€ú.QAÌiÓ3AlL ÷.QAÌÀtÓ3AlLô.QAÌ@ƒÓ3AlL0ò.QAÌ@ŽÓ3AlL ñ.QAÌ ŸÓ3AlLñ.QAÌÀ§Ó3AlLÀê.QAÌÀ¯Ó3AlLðá.QAÌÀ¸Ó3AlLÞ.QAÌ@ÁÓ3AlLàÚ.QAÌ@ËÓ3AlLÀ×.QAÌ€ÛÓ3AlLpÔ.QAÌ@íÓ3AlL@Ò.QAÌÀøÓ3AlLpÐ.QAÌÔ3AlLÐÏ.QAÌ Ô3AlLÎ.QAÌÔ3AlL Ì.QAÌ€Ô3AlLÐÉ.QAÌ(Ô3AlLÆ.QAÌ€:Ô3AlLÐÄ.QAÌ€RÔ3AlL Â.QAÌ@‚Ô3AlL€¿.QAÌžÔ3AlL½.QAÌ@¸Ô3AlLÀ».QAÌÌÔ3AlLð¹.QAÌÀÖÔ3AlL ¹.QAÌ@ßÔ3AlLº.QAÌ€äÔ3AlL ¸.QAÌðÔ3AlL C·.QAÌÀøÔ3AlLð·.QAÌ@þÔ3AlLð¸.QAÌ@Õ3AlLð¸.QAÌ@ Õ3AlL·.QAÌÀÕ3AlL·.QAÌÀ&Õ3AlLð¶.QAÌ€7Õ3AlL@·.QAÌÀGÕ3AlLà¸.QAÌ€XÕ3AlL€º.QAÌÀdÕ3AlL0».QAÌÀvÕ3AlL0¼.QAÌ€Õ3AlL¿.QAÌ@•Õ3AlL Á.QAÌ€Õ3AlLpÈ.QA̪Õ3AlL0Î.QAÌ@¶Õ3AlL@Ñ.QAÌÀ¹Õ3AlLÓ.QAÌ€¯Õ3AlL Ø.QAÌ@®Õ3AlLPÚ.QAÌÀ¾Õ3AlLÝ.QAÌÝÕ3AlLÀß.QAÌÀüÕ3AlL`á.QAÌ€Ö3AlLä.QAÌ*Ö3AlLÀå.QAÌ7Ö3AlLæ.QAÌ>Ö3AlLpã.QAÌ?Ö3AlL0à.QAÌ'Ö3AlLÐÞ.QAÌ€ÏÕ3AlLÙ.QAÌÀÄÕ3AlL0×.QAÌÀÌÕ3AlLðÑ.QAÌÜÕ3AlLàÒ.QAÌÀÜÕ3AlL0Ð.QAÌ€ÎÕ3AlL Ï.QAÌÈÕ3AlL@Í.QAÌÀÕ3AlL Í.QAÌ@·Õ3AlL€Ë.QA̦Õ3AlL Å.QAÌ€ŸÕ3AlLÀ¿.QAÌ©Õ3AlLÀº.QAÌ@¹Õ3AlL@´.QAÌ@ÈÕ3AlLÀ´.QAÌ@ÍÕ3AlLp².QAÌ@ÀÕ3AlL0®.QAÌÄÕ3AlLP¨.QAÌÐÕ3AlL` .QAÌ€âÕ3AlL œ.QAÌÀõÕ3AlL°˜.QAÌÀþÕ3AlL°“.QAÌ@ûÕ3AlL .QAÌÀöÕ3AlL€Œ.QAÌøÕ3AlL€ˆ.QAÌýÕ3AlL ….QAÌÖ3AlLÀ†.QAÌ Ö3AlLЂ.QAÌ@$Ö3AlL „.QAÌ€.Ö3AlLp†.QAÌÀ.Ö3AlL€.QAÌ@:Ö3AlLÀŽ.QAÌ€XÖ3AlL“.QAÌÀmÖ3AlLÀ—.QAÌ@nÖ3AlLð.QAÌ@^Ö3AlL°.QAÌ@\Ö3ADlLà .QAÌÀfÖ3AlL`¡.QAÌeÖ3AlLÀ£.QAÌ@lÖ3AlLð¤.QAÌgÖ3AlLð¨.QAÌ€^Ö3AlLÀ«.QAÌ@SÖ3AlL@®.QAÌÀ@Ö3AlL².QAÌÀ8Ö3AlL@´.QAÌ4Ö3AlLµ.QAÌ@Ö3AlLð´.QAÌ@Ö3AlLp².QAÌàÖ3AlLP°.QAÌ@#Ö3AlLà±.QAÌ Ö3AlL °.QAÌàÖ3AlL\­.QAÌ€(Ö3AlL®.QAÌ@+Ö3AlL ¯.QAÌ`6Ö3AlLد.QAÌ7Ö3AlLà¬.QAÌ0Ö3AlL¬.QAÌ/Ö3AlLpª.QAÌ@)Ö3AlL©.QAÌ€/Ö3AlLP¨.QAÌ€%Ö3AlL°¥.QAÌÀÖ3AlL¥.QAÌÀÖ3AlLP§.QAÌ€Ö3AlLà¨.QAÌÖ3AlLpª.QAÌÿÕ3AlL­.QAÌ@ùÕ3AlLP¯.QAÌ@Ö3AlL°¯.QAÌÖ3AlL±.QAÌùÕ3AlL°±.QAÌÀäÕ3AlL€³.QAÌÓÕ3AlLp¶.QAÌÀÏÕ3AlLº.QAÌ€ÖÕ3AlL0¼.QAÌ€ÐÕ3AlLð½.QAÌÐÕ3AlL@À.QAÌ@ÜÕ3AlL Â.QAÌ@ðÕ3AlL€À.QAÌ@ùÕ3AlL`Á.QAÌ€øÕ3AlL Ã.QAÌÖ3AlLðÄ.QAÌ@ Ö3AlLPÈ.QAÌÖ3AlLÀÆ.QAÌÀÖ3AlLpÃ.QAÌ@"Ö3AlLàÂ.QAÌ)Ö3AlLÀ.QAÌ€2Ö3AlL€¾.QAÌÀEÖ3AlLð¹.QAÌ@dÖ3AlL ².QAÌuÖ3AlL`®.QAÌ@Ö3AlL«.QAÌ€…Ö3AlLð¥.QĂÖ3AlL°Ÿ.QAÌ@„Ö3AlLPš.QAÌÀ¡Ö3AlLP™.QAÌÀ Ö3AlLÀ–.QAÌÀƒÖ3AlLÀ–.QAÌ@ƒÖ3AlL°”.QAÌ@‰Ö3AlL`“.QAÌ{Ö3AlL°.QAÌEiÖ3AlL .QAÌbÖ3AlLp‹.QAÌÀhÖ3AlL@Š.QAÌ€]Ö3AlL€†.QAÌUÖ3AlLp….QAÌUÖ3AlL°ƒ.QAÌÀXÖ3AlLð.QAÌYÖ3AlL€.QAÌ@`Ö3AlLP}.QAÌiÖ3AlLp{.QAÌÀpÖ3AlLp{.QAÌ€xÖ3AlLð|.QAÌ@‡Ö3AlL ~.QAÌÀ“Ö3AlL°.QAÌ€šÖ3AlLÀ€.QAÌ@§Ö3AlLƒ.QAÌ@«Ö3AlL „.QAÌ@°Ö3AlL`.QAÌ€¯Ö3AlLð~.QAÌ´Ö3AlLð{.QAÌÀ±Ö3AlLpx.QAÌ@¹Ö3AlL@x.QAÌÀÀÖ3AlL{.QAÌÉÖ3AlL`z.QAÌ€ÉÖ3AlL`x.QAÌ€ÄÖ3AlL°v.QAÌ€ÉÖ3AlLt.QA̹Ö3AlLàq.QAÌ@­Ö3AlL`n.QAÌ@°Ö3AlL€k.QAÌ€ºÖ3AlL€i.QAÌ@ÂÖ3AlLi.QAÌ€ÈÖ3AlL`h.QAÌÃÖ3AlLg.QAÌ€ÆÖ3AlL d.QAÌÀÇÖ3AlLÀ`.QAÌ@ÆÖ3AlLð\.QAÌÐÖ3AlL\.QAÌ@ÚÖ3AlL ].QAÌåÖ3AlL`].QAÌñÖ3AlL`^.QAÌ üÖ3AlLh_.QAÌ€×3AlL€^.QAÌ@×3AlLP\.QAÌ@×3AlL0[.QAÌ`ýÖ3AlLZ.QAÌ€ùÖ3AlLðX.QAÌÀýÖ3AlL W.QAÌ×3AlLðW.QAÌÀ×3AlL(U.QAÌ ×3AlL U.QAÌ ×3AlL S.QAÌ ×3AlL(R.QAÌ@×3AlLÐQ.QAÌ€×3AlL`S.QAÌ@×3AlLHU.QAÌ ×3AlL€W.QAÌÀ!×3AlL Y.QAÌ€'×3AlL°Y.QAÌ@'×3AlL€W.QAÌÀ!×3AlLXU.QAÌÀ&×3AlL T.QAÌà!×3AlL€R.QAÌÀ"×3AlL°P.QAFÌÀ+×3AlLS.QAÌÀ1×3AlLðR.QAÌ€/×3AlLP.QAÌ.×3AlL`N.QAÌ)×3AlL`L.QAÌ€0×3AlLH.QAÌ5×3AlL€D.QAÌ€C×3AlLA.QAÌ@R×3AlL0@.QAÌÀd×3AlL`@.QAÌ@m×3AlLÀ?.QAÌp×3AlL =.QAÌr×3AlL :.QAÌÀu×3AlL 8.QAÌÀ~×3AlLð7.QAÌ@Š×3AlL€6.QAÌ€š×3AlL 4.QAÌÄ×3AlL2.QAÌÀÉ×3AlL2.QAÌÀÐ×3AlL@1.QAÌÀØ×3AlLÀ0.QAÌ€æ×3AlL/.QAÌ€ñ×3AlL/.QAÌÀØ3AlL..QAÌ@Ø3AlL -.QAÌÀØ3AlL ,.QAÌ@&Ø3AlL0,.QAÌÀ1Ø3AlLà,.QAÌ€:Ø3AlL..QAÌ CØ3AlLh0.QAÌ@GØ3AlLd2.QAÌ0OØ3AlL42.QAÌÀRØ3AlL0.QAÌàZØ3AlLØ..QAÌ@[Ø3AlLÀ,.QAÌcØ3AlLà-.QAÌ€eØ3AlLP+.QAÌ gØ3AlLð).QAÌ@sØ3AlLð).QAÌ€yØ3AlL*.QAÌ@|Ø3AlL ,.QAÌ@}Ø3AlLP/.QAÌ€Ø3AlL0.QÄØ3AlL1.QAÌ ‹Ø3AlLˆ3.QAÌà”Ø3AlL4.QAÌ@žØ3AlL5.QAÌ@¦Ø3AlL@6.QA̯Ø3AlL7.QAÌÀ¶Ø3AlL5.QAÌ·Ø3AlLP3.QAÌÀ°Ø3AlLP3.QA̶Ø3AlLè1.QA̾Ø3AlL1.QAÌ ÂØ3AlLˆ/.QAÌ€ÇØ3AlLH0.QAÌÊØ3AlLð,.QAÌ@ÄØ3AlLð+.QAÌàÁØ3AlLð).QAÌÀÁØ3AlL°'.QAÌËØ3AlLÐ'.QAÌ€ÓØ3AlL`'.QAÌ ÙØ3AlL°(.QAÌÀÙØ3AlL@G+.QAÌÀåØ3AlLP+.QAÌ@ìØ3AlL*.QAÌ ðØ3AlLè+.QAÌÀõØ3AlL*.QAÌüØ3AlLð).QAÌ`üØ3AlL(.QAÌøØ3AlL¸%.QAÌàÙ3AlLX$.QAÌÙ3AlLP".QAÌ@Ù3AlL .QAÌÀ Ù3AlL .QAÌÀÙ3AlL .QAÌ€Ù3AlL!.QAÌ€#Ù3AlL#.QAÌÀÙ3AlLP%.QAÌÙ3AlLà&.QAÌ@Ù3AlLà'.QAÌÀÙ3AlL*.QAÌ€Ù3AlL°,.QAÌ€Ù3AlL-.QAÌ€+Ù3AlLÀ-.QAÌ1Ù3AlL -.QAÌ@,Ù3AlL`+.QAÌ3Ù3AlLp(.QAÌ€7Ù3AlLÐ$.QAÌ€8Ù3AlL`!.QAÌ7Ù3AlL .QAÌ€<Ù3AlL@.QAÌ€DÙ3AlLÀ.QAÌ€SÙ3AlL.QAÌRÙ3AlLð.QAÌ`Ù3AlLp.QAÌ€eÙ3AlL`.QAÌ nÙ3AlL.QAÌ@~Ù3AlLà.QAÌ€ŒÙ3AlL`.QAÌ@—Ù3AlL€.QAÌ€’Ù3AlL .QAÌ€Ù3AlL`.QAÌŒÙ3AlLÐ .QAÌ€—Ù3AlL!.QAÌÀ¡Ù3AlL.QA̧Ù3AlLÀ.QA̯Ù3AlLÀ.QAÌÀ¸Ù3AlLp.QAÌÀÙ3AlLð.QAÌ€¼Ù3AlL.QAÌ@¸Ù3AlLÐ .QA̸Ù3AlL#.QAÌÀÂÙ3AlL0#.QAÌÇÙ3AlLà .QAÌ€ÄÙ3AlLx.QAÌÀÌÙ3AlL .QAÌ@ÕÙ3AlLð.QAÌÀÛÙ3AlL.QAÌ`ÝÙ3AlL.QAÌåÙ3AlL0.QAÌçÙ3AlL0.QAÌ@ÞÙ3AlLP.QAÌÖÙ3AlL.QAÌÀÌÙ3AlL¸.QAÌ@ÎÙ3AlL.QAÌÀØÙ3AlLà .QAÌÀáÙ3AHlLð.QAÌ€ìÙ3AlLð.QAÌ@üÙ3AlL .QAÌÀ Ú3AlL.QAÌ€Ú3AlL.QAÌÀÚ3AlLà.QAÌ@Ú3AlL@ .QAÌÚ3AlL .QAÌÚ3AlLÐ .QAÌÚ3AlL.QA Ã[5&Ú3Aæ‚«.QAÌ-Ú3AlL`.QAÌ€2Ú3AlL0.QAÌà6Ú3AlL .QAÌ@7Ú3AlLh .QA¸é®ê1Ú3Aæ‚«º .QAÌÐ.Ú3AlL<.QAÌ /Ú3AlL.QAÌ1Ú3AlLð.QA\Ò÷È.Ú3A8ˆNe.QAÌ;Ú3AlL.QAÌ8Ú3AlLp.QAÌÀ?Ú3AlL¨.QAÌÀ@Ú3AlLþ-QAÌ IÚ3AlLHþ-QAÌÀRÚ3AlLðý-QAÌUÚ3AlL ü-QAÌ@UÚ3AlLˆú-QAÌ _Ú3AlLhú-QAÌÀlÚ3AlL`ù-QAÌ@uÚ3AlLù-QAÌ}Ú3AlLÀù-QAÌ@†Ú3AlLPû-QAÌ€…Ú3AlL þ-QAÌ€€Ú3AlLÐÿ-QAÌ †Ú3AlL€.QAˆ¦’¿„Ú3Aü}wá.QAÌ@‹Ú3AlLP.QAÌ€Ú3AlLÿ-QAÌ “Ú3AlLØü-QAÌ`“Ú3AlL.QAÌÀÚ3AlL.QA̘Ú3AlLh.QAÌÀžÚ3AlLð.QA̤Ú3AlL`.QAÌÀ©Ú3AlL@.QAÄ8^¯«Ú3A‚”P¬þ-QAÌ`°Ú3AlL(.QA̸Ú3AlL€.QAÌ€»Ú3AlL.QAÌ@¼Ú3AlL°.QAÌ@ÃÚ3AlL@.QA@+@ÔÚ3AVâ²°.QAÌ@ÝÚ3AlLà.QAÌ åÚ3AlL¬.QAÌÀçÚ3AlLàÿ-QAÌÀíÚ3AlLPÿ-QAÌòÚ3AlLðý-QAÌÀóÚ3AlL€ü-QAÌ@îÚ3AlL û-QAÌÀçÚ3AlL û-QAÌàãÚ3AlL@ù-QAÌÀâÚ3AlL°ö-QAÌ@éÚ3AlLðõ-QAÌIõÚ3AlL°ô-QAÌ€Û3AlLó-QAÌ`Û3AlLøò-QAÌ!Û3AlL ò-QAÌÀ*Û3AlLò-QAÌ@2Û3AlL0ò-QAÌ=Û3AlL ó-QAÌ@6Û3AlLø-QAÌÀ<Û3AlL@ú-QAÌ€:Û3AlLÐý-QAÌ4Û3AlLÐþ-QAÌ 3Û3AlLx.QAÌ€3Û3AlL@.QAÌÀ4Û3AlL`.QAÌÀ2Û3AlL .QAÌ/Û3AlLÀ .QAÌ€9Û3AlLÐ .QAÌÀ7Û3AlL0 .QAÌ/Û3AlLÀ .QAÌ€,Û3AlL .QAÌÀ2Û3AlLÀ.QAÌ9Û3AlL .QAÌ`=Û3AlLà .QAÌ@DÛ3AlLà .QAÌ@CÛ3AlLð .QAÌ@KÛ3AlLÀ .QAÌPDÛ3AlLX.QAÌ@DÛ3AlLð.QAÌÀJÛ3AlL€.QAÌJÛ3AlL.QAÌRÛ3AlL`.QAÌ@YÛ3AlL.QAÌ`Û3AlLð.QAÌ€eÛ3AlLð.QAÌjÛ3AlL .QAÌ€lÛ3AlL0.QAÌ`kÛ3AlLà.QAÌ@dÛ3AlL.QAÌ@eÛ3AlL .QAÌ`lÛ3AlLÈ .QAÌÀmÛ3AlL .QAÌrÛ3AlLØ.QAÌvÛ3AlL(.QAÌ@rÛ3AlL`.QAÌ@lÛ3AlLÈ.QAÌ@gÛ3AlL0.QAÌ `Û3AlL.QAÌÀWÛ3AlL.QAÌ€RÛ3AlLÐ.QAÌ@QÛ3AlL€.QAÌÀTÛ3AlL.QA°$iWÛ3AÂ80C.QAÌ€SÛ3AlL0þ-QAÌ@XÛ3AlL û-QA̰_Û3AlLÔü-QAÌ@`Û3AlL þ-QA°$iWÛ3AÂ80C.QAÌÀ\Û3AlLÜ.QAÌ€cÛ3AlL.QAÌÀmÛ3AlLà.QAÌÀtÛ3AlL.QAÌ0yÛ3AlLþ-QAÌ yÛ3AlL€û-QAÌ tÛ3AlLhú-QAJÌkÛ3AlLDú-QAÌhÛ3AlL€ø-QAÌ@jÛ3AlL0÷-QAÌ@oÛ3AlLhö-QAÌplÛ3AlLó-QAÌÀfÛ3AlL0ñ-QAÌoÛ3AlLàð-QAÌwÛ3AlLàð-QAÌ@yÛ3AlLàî-QAÌÀsÛ3AlLðí-QAÌÀlÛ3AlL€ì-QAÌÀgÛ3AlL0ë-QAÌ`Û3AlL¸ê-QAÌ@ZÛ3AlLé-QAÌÀUÛ3AlLç-QAÌà]Û3AlLØä-QAÌÀcÛ3AlLã-QAÌ@dÛ3AlL á-QAÌ€]Û3AlLâ-QAÌÀ_Û3AlLà-QAÌ@eÛ3AlL(ß-QAÌ€kÛ3AlL0ß-QAÌ€mÛ3AlLðÚ-QAÌàgÛ3AlL Ù-QAÌàcÛ3AlLø×-QAÌhÛ3AlLðÖ-QAÌÀmÛ3AlLðÔ-QAÌ@vÛ3AlLPÓ-QAÌ€Û3AlLhÒ-QAÌ€ŒÛ3AlLÀÑ-QAÌ@Û3AlLÔ-QAÌ@—Û3AlLÕ-QAÌÀžÛ3AlLàÓ-QAÌ ¦Û3AlLäÔ-QAÌ ©Û3AlL€Ó-QAÌÀ°Û3AlLpÓ-QA̺Û3AlL@Ô-QA̽Û3AlL ×-QAÌ@ÂÛ3AlLTÙ-QAÌ`ÈÛ3AlLHÛ-QAÌÀÊÛ3AlLPÝ-QAÌ@ÒÛ3AlL€Ü-QAÌ@ÔÛ3AlL Þ-QAÌàÛÛ3AlL(Þ-QAä5UUÜÛ3Aæ‚«Zà-QAÌ ØÛ3AlLèâ-QAÌÚÛ3AlLÐä-QAÌÛÛ3AlL¸æ-QAÌ€ÞÛ3AlLPè-QAÌ€ëÛ3AlLÐê-QAÌ òÛ3AlL é-QAÌ€úÛ3AlLàê-QAÌ€Ü3AlLë-QAÌÜ3AlL°ì-QAÌàÜ3AlL@í-QAÌ@Ü3AlLÀî-QAÌ  Ü3AlL€ð-QAÌ`Ü3AlL`ñ-QAÌÜ3AòU%ò-QAÌ€!Ü3AlL°ð-QAÌÀ#Ü3AlL€î-QAÌ"Ü3AlLàì-QAÌ!Ü3AlLðé-QAÌÀÜ3AlLðKç-QAÌÜ3AlLØä-QAÌÀÜ3AlLá-QAÌÀÜ3AlLÐß-QAÌ€Ü3AlL á-QAÌÜ3AlL@ä-QAÌ$Ü3AlL(ä-QAÌp(Ü3AlLøá-QAÌp3Ü3AlL â-QAÌ <Ü3AlL¨â-QAÌÀBÜ3AlL`á-QA Ã[õDÜ3A`¹VEß-QAÌ GÜ3AlL8Ý-QAÌÀDÜ3AlL°Ú-QAÌEÜ3AlL€×-QAÌÐKÜ3AlLTÕ-QAÌSÜ3AlLÐÒ-QAÌÀYÜ3AlL Ò-QAÌ€`Ü3AlL`Ð-QAÌ iÜ3AlLÎ-QAÌ@rÜ3AlL Í-QAÌÀtÜ3AlLÀË-QAÌ€zÜ3AlLðË-QAÌÀ‚Ü3AlLÀÇ-QAÌ Ü3AlLÆ-QAÌÀ†Ü3AlLÄ-QAÌ€Ü3AlLÂ-QAÌ@Ü3AlL€¼-QAÌ@¢Ü3AlL°»-QAÌ@£Ü3AlLð¹-QA̬Ü3AlLº-QAÌÀ®Ü3AlLз-QA̶Ü3AlLж-QAÌ€·Ü3AlLµ-QA̼Ü3AlLh²-QAÌ€¼Ü3AlL¯-QAÌÀÁÜ3AlL¯-QAÌÀÆÜ3AlL®-QAÌÊÜ3AlLÀ¬-QAÌËÜ3AlL€ª-QAÌ€ÌÜ3AlLð¨-QAÌÀÐÜ3AlL°§-QAÌÒÜ3AlL€¤-QAÌ@ÚÜ3AlL¢-QAÌàãÜ3AlLŸ-QAÌàîÜ3AlLèš-QAÌÀôÜ3AlL°˜-QA̰óÜ3AlLd–-QAÌàýÜ3AlLp”-QAÌúÜ3AlL0“-QAÌ ùÜ3AlL°-QAÌòÜ3AlL-QAÌ õÜ3AlLp-QAÌ`úÜ3AlL8‹-QAÌPÝ3AlL‰-QAÌ Ý3AlLL‡-QAÌ@Ý3AlLh…-QAÌ€Ý3AlL`ƒ-QAÜÍ2YþÜ3A’‡'-QAÌàÝ3AlL-QAÌ@ Ý3AlLà€-QAÌ Ý3AlL(-QAÌ@Ý3AlLp}-QAÌ` Ý3AlL|-QAÌàÝ3ALlLØz-QAÌÀÝ3AlLPw-QAÌÀúÜ3AlLu-QAÌöÜ3AlLs-QAÌ@óÜ3AlL j-QAÌ@ïÜ3AlLe-QAÌ€ñÜ3AlL a-QAÌ€îÜ3AlL_-QAÌ äÜ3AlL0^-QAÌ€ãÜ3AlLp\-QAÌ@äÜ3AlLZ-QAÌ@çÜ3AlLX-QAÌ@ïÜ3AlLàW-QAÌ ÷Ü3AlL0X-QAÌ@Ý3AlL€X-QAÌÝ3AlL X-QAÌÀ Ý3AlL`Z-QAÌ€ Ý3AlLÐ^-QAÌ€Ý3AlL`_-QAÌ€Ý3AlLpa-QAÌ€Ý3AlLc-QAÌ€Ý3AlLe-QAÌÀÝ3AlL`g-QAÌ@Ý3AlLd-QAÌÀÝ3AlLa-QAÌ€Ý3AlL ]-QAÌÝ3AlL¸[-QAÌàÝ3AlL€Z-QAÌ@$Ý3AlLPZ-QAÌÀ$Ý3AlL X-QAÌÀ)Ý3AlLW-QAÌ0Ý3AlL°X-QAÌ`3Ý3AlLhV-QAÌ 7Ý3AlLàT-QAÌ <Ý3AlLV-QAÌ`>Ý3AlLØT-QAÌ>Ý3AlL˜R-QAÌ€AÝ3AlL°P-QAÌ€CÝ3AlLäM-QAÌ@IÝ3AlL H-QAÌÀ@Ý3AlLG-QAÌ€@Ý3AlLÐC-QA¸é®jAÝ3AlLà@-QAÌÀCÝ3AlL>-QAÌ`=Ý3AlLÐ<-QAÌ<Ý3AlLP;-QAÌDÝ3AlL9-QAÌ JÝ3AlL(:-QAÌðSÝ3AlL:-QAÌ€TÝ3AlLP7-QAÌ\Ý3AlL 6-QAÌ@`Ý3AlL°7-QAÌbÝ3AlL0;-QAÌ€\Ý3AlL@<-QAÌ€]Ý3AlL B-QAÌfÝ3AlLPC-QAÌtÝ3AlL0G-QAÌ€zÝ3AlLàI-QAÌ@„Ý3AlL(G-QAÌ‹Ý3AlL0E-QAÌ‹Ý3AlL0C-QAÌ ‘Ý3AlLxA-QAÌ›Ý3AlLC-QAÌÀ–Ý3AlL@D-QAÌ@M™Ý3AlLÀF-QAÌ€œÝ3AlL I-QAÌ@•Ý3AlL°K-QAÌ’Ý3AlLPM-QAÌðŽÝ3AlLP-QAÌÀŠÝ3AlL R-QAÌÀ‘Ý3AlLðS-QAÌàÝ3AlLÐV-QAÌ@¥Ý3AlLX-QAÌà­Ý3AlLèX-QAÌ@ªÝ3AlL@U-QAÌ °Ý3AlLPV-QAÌÀ³Ý3AlLX-QAÌ@½Ý3AlLY-QAÌÀ·Ý3AlLV-QAÌÀ©Ý3AlLpQ-QAÌ€¥Ý3AlL O-QAÌ@©Ý3AlL0N-QAÌ@¦Ý3AlL L-QĄÝ3AlLK-QAÌÀ®Ý3AlL J-QAÌ€µÝ3AlLèG-QAÌ@ÀÝ3AlL H-QAÌ ÉÝ3AlLXH-QAÌÀÖÝ3AlLÐG-QAÌ éÝ3AlL`F-QAÌïÝ3AlLG-QAÌ èÝ3AlLHI-QAÌôÝ3AlLJ-QAÌÀßÝ3AlLpK-QAÌâÝ3AlLPM-QAÌàçÝ3AlLØO-QAÌ èÝ3AlL˜Q-QAÌ€ïÝ3AlLPS-QAÌàøÝ3AlL8R-QAÌ€Þ3AlL€R-QAÌ@Þ3AlLÐR-QAÌà Þ3AlLXT-QAÌÀÞ3AlLS-QAlݬ?Þ3AbS_ÄS-QAÌ@Þ3AlLHU-QAÌ` Þ3AlLS-QAÌ€!Þ3AlLU-QAÌ@Þ3AlL°W-QAÌÀÞ3AlLàY-QAÌ@Þ3AlLðY-QAÌ$Þ3AlLpZ-QAÌ€,Þ3AlLðX-QAÌÀ*Þ3AlLøV-QAÌÀ0Þ3AlL°U-QAÌà.Þ3AlLpS-QAÌ/Þ3AlLÐQ-QAÌ€"Þ3AlLpQ-QAÌð%Þ3AlLøN-QAÌÀ/Þ3AlL0M-QAÌ03Þ3AlL-QAÌÞ3AlLP:-QAÌ€ Þ3AlL ;-QAÌ@Þ3AlL°9-QAÌ@Þ3AlL`7-QAÌ€ Þ3AlLp6-QAÌ€Þ3AlLð5-QAÌÞ3AlL6-QAÌÞ3AlL5-QAÌ@Þ3AlL /-QAÌÞ3AlLP*-QAÌàÞ3AlLx(-QAÌÀÞ3AlL#-QAÌ€ Þ3AlL°!-QAÌ€Þ3AlLÀ"-QAÌ@Þ3AlL!-QAÌøÝ3AlL-QAÌòÝ3AlL@-QAÌ€ìÝ3AlL°-QAÌ@îÝ3AlLp-QAÌçÝ3AlL@-QAÌÀÜÝ3AlL-QAÌÀØÝ3AlL-QAÌÈÝ3AlL-QAÌÀÉÝ3AlLP-QAÌÀÏÝ3AlLP-QAÌ€ÕÝ3AlLÐ-QAÌ@ÖÝ3AlL -QA¸é®ªÛÝ3Aæ‚«ú-QAÌåÝ3AlLP-QAÌåÝ3AlL-QAÌÀëÝ3AlLp-QAÌ`òÝ3AlL-QAÌ€ôÝ3AlLð-QAÌÀíÝ3AlL`-QAÌ@ëÝ3AlLP -QAÌðæÝ3AlLˆ -QAÌ@âÝ3AlL0 -QAÌ@ÞÝ3AlL¼-QAÌ@×Ý3AlLð-QAÌ ÛÝ3AlL˜-QAÌ€àÝ3AlL-QAÌ@çÝ3AlL°-QAÌàíÝ3AlL(-QAÌ÷Ý3AlL€-QAÌ@þÝ3AlLÐ-QAÌ Þ3AlL8-QAÌ  Þ3AlL-QAÌÞ3AlL-QAÌp"Þ3AlL,-QAÌ'Þ3AlL€-QAÌ,Þ3AlL -QAÌ€5Þ3AlL° -QAÌ :Þ3AlL0 -QAÌÀ@Þ3AlLP-QAÌ GÞ3AlL -QAÌ@LÞ3AlL -QAÌ@WÞ3AlL -QAÌ@_Þ3AlLÐ-QAÌgÞ3AlL€ -QAÌ€lÞ3AlL -QAÌ@iÞ3AlL€-QAÌkÞ3AlL0O-QAÌ€kÞ3AlL8-QAÌlÞ3AlL-QA¬V¨xÞ3AlL4-QAÌ@~Þ3AlLÀ-QAÌ €Þ3AlLØ-QAÌàˆÞ3AlL-QAÌ@Þ3AlLð-QAÌÞ3AlLp-QAÌ€•Þ3AlLX-QAÌÀ™Þ3AlLp-QAÌ ŸÞ3AlL´-QAÌ@¡Þ3AlL0-QAÌ@¦Þ3AlLÐ-QAÌ€¯Þ3AlL -QAÌ@­Þ3AlL@-QAÌ ¯Þ3AlL°-QA̯Þ3AlL-QAÌÀ³Þ3AlL€-QAÌÀ»Þ3AlL˜-QA̰½Þ3AlL8-QAÌ€¹Þ3AlL€-QAÌ@¹Þ3Aæ‚« -QAÌ@ÀÞ3AlLÐ-QAÌÀÄÞ3AlL€-QAÌ@ÉÞ3AlL -QAÌ@ÓÞ3AlLÀ-QAÌ@ÚÞ3AlL -QAÌÐàÞ3AlL¤-QAÌåÞ3AlLð-QAÌ0ìÞ3AlL-QAÌÀïÞ3AlL°-QAÌÀòÞ3AlL-QAÌùÞ3AlLà -QAÌ€ÿÞ3AlL  -QAÌ@ß3AlLÀ-QAÌ ß3AlLxý,QAÌÀß3AlLHû,QAÌ€ß3AlLø,QAÌ€ß3AlLÐõ,QAÌ#ß3AlL õ,QAÌÀ$ß3AlL€ò,QAÌ&ß3AlLàð,QAÌ@0ß3AlL`ï,QAÌ@3ß3AlL ì,QAÌ:ß3AlLðê,QAÌAß3AlLPé,QAÌ@Hß3AlLÐç,QAÌ@Mß3AlL@æ,QAÌ€Yß3AlL å,QAÌtß3AlLâ,QAÌvß3AlLhß,QAÌzß3AlL¸Ý,QAÌÀ|ß3AlLÀÚ,QAÌ@€ß3AlL€Ù,QĂß3AlLà×,QAX|é;ƒß3A䯥ôÔ,QAÌ€‹ß3AlLÓ,QAÌÀ’ß3AlL€Ð,QAÌ€•ß3AlL€Î,QAÌœß3AlL°Ë,QAÌ€žß3AlL°È,QAÌ ¡ß3AlLÆ,QAÌ@ ß3AlLÀÂ,QAÌ@£ß3APlL@¾,QAÌ€¤ß3AlL ¼,QAÌ ¬ß3AlL ¼,QAÌÀ²ß3AlLP¼,QAÌ·ß3AlL»,QAÌ@°ß3AlLع,QĄß3AlLp¹,QAÌ¥ß3AlLP¶,QAÌP¥ß3AlL²,QAÌ€¬ß3AlL ¯,QAÌ@¬ß3AlLp¬,QA̯ß3AlL\ª,QAÌ`¯ß3AlL€§,QAÌ´ß3AlLÐ¥,QAÌ@µß3AlLŒ£,QAÌ@³ß3AlL€¡,QAÌ ¸ß3AlL¨Ÿ,QAÌÀ¹ß3AlL0ž,QAÌÀ½ß3AlL,QAÌÀ¿ß3AlL`›,QAÌÀÀß3AlL`™,QAÌÀÄß3AlLP—,QAÌ@Æß3AlL •,QAÌ`Æß3AlL ”,QAÌ€Íß3AlL ”,QAÌ@Ïß3AlL@‘,QAÌÀÍß3AlLŽ,QAÌ`Éß3AlL¨‹,QAÌ@Àß3AlL‹,QAÌ`¿ß3AlL‰,QAÌÂß3AlL@†,QAÌ Æß3AlLð„,QAÌ€Ìß3AlLˆƒ,QAÌ Çß3AlL ‚,QAÌÀÆß3AlL€,QAÌÀÎß3AlL €,QAÌàËß3AlLx},QAÌÅß3AlL€},QAÌÄß3AlLð{,QAÌÁß3AlLz,QAÌ`Àß3AlL`w,QAÌ ·ß3AlLXu,QAÌ€±ß3AlL@s,QAÌ€³ß3AlLPq,QA̳ß3AlLo,QA̰·ß3AlL¸m,QAÌ ¸ß3AlLpk,QAÌÀß3AlLj,QAÌÀÅß3AlLi,QAÌÌß3AlL€h,QAÌ€Ïß3AlL`g,QAÌÒß3AlLðe,QAÌ Íß3AlLøb,QA¬V(Êß3AlLta,QAÌÇß3AlL _,QAÌÉß3AlL^,QAÌÊß3AlL\,QAÌÀÌß3AlLPZ,QAÌàÐß3AlL8\,QAÌÔß3AlLpZ,QAÌÀÙß3AlLPZ,QAÌÙß3AlLàX,QAÌpÒß3AlLìW,QAÌ Ñß3AlL U,QAÌÀQÄß3AlLT,QA Ã[õ¾ß3A`¹VS,QAÌÀ´ß3AlLQ,QAä5U¯ß3AlLHN,QAÌ@²ß3AlL`J,QAÌ ¶ß3AlL°H,QAÌ@³ß3AlL¨F,QAÌ€¯ß3AlL°D,QAÌ€¢ß3AlLB,QAÌÀß3AlLÐ@,QAÌ ›ß3AlL@?,QAÌ •ß3AlLp>,QAÌ@”ß3AlL <,QAÌ ß3AlLˆ<,QAÌ ‰ß3AlL(;,QAÌÀ†ß3AlL 9,QĂß3AlLP7,QAÌ@ƒß3AlLà5,QAÌÀ‚ß3AlL3,QAÌ~ß3AlL@1,QAÌÀxß3AlL€0,QAÌvß3AlL .,QAÌ@qß3AlL@-,QAÌ jß3AlL(,,QAÌÀdß3AlLà),QAÌÀbß3AlL0',QAÌbß3AlL°#,QAÌ@hß3AlLx ,QAÌ@_ß3AlL,QAÌ€_ß3AlLp,QAÌ€Zß3AlLÀ,QAÌ€Hß3AlLÐ,QAÌ@;ß3AlL`,QAÌÀ2ß3AlLp,QAÌ@2ß3AlL`,QA Ã[u%ß3Aæ‚«¢,QAÌÀ(ß3AlLÀ ,QAÌ@ß3AlLÀ ,QAÌÀ#ß3AlLð ,QAÌÀ"ß3AlL°,QAÌ€%ß3AlLÈ,QAÌà-ß3AlL¨,QAÌÀ/ß3AlL ,QAÌP:ß3AlLÄ,QAÌ Aß3AlLX,QAÌIß3AlLD,QAÌ@Sß3AlLà,QAÌàZß3AlLhÿ+QAÌ bß3AlL`,QAÌdß3AlL€þ+QAÌ€kß3AlL ý+QAÌrß3AlL°û+QAÌ€yß3AlLøú+QAÌ@}ß3AlL˜ù+QAÌ ~ß3AlLÐ÷+QAÌ@€ß3AlLÀõ+QAÌ€„ß3AlL`ô+QĂß3AlLó+QA¸é®ê‹ß3AòUÕð+QAÌ@’ß3AlL ñ+QA¸é®Ê‘ß3A`¹VUï+QAÌÀ–ß3AlLí+QAÌ@™ß3AlL,ë+QAÌÀŸß3AlLðè+QARÌ šß3AlLˆç+QAÌ@•ß3AlL°å+QAÌ@‘ß3AlLtã+QAÌ`Žß3AlL(å+QAÌð‡ß3AlL|ä+QAÌ@‘ß3AlLtã+QAÌ@Œß3AlLâ+QAÌ@Œß3AlL€à+QAÌ‹ß3AlLðÞ+QAÌЋß3AlL@Ü+QAÌ@ß3AlLhÚ+QAÌ•ß3AlLÙ+QAÌà—ß3AlL8×+QAÌ@›ß3AlL8Õ+QAÌ•ß3AlLpÔ+QAÌ —ß3AlL8Ò+QAÌ”ß3AlLàÐ+QAÌÀ”ß3AlLpÏ+QAÌšß3AlL`Î+QAÌ€”ß3AlLPÍ+QAp€?Šß3AÖ*r²Ë+QAÌ@‘ß3AlLÉ+QẢß3AlLØÉ+QAÌ@ƒß3AlLPÉ+QAÌzß3AlL@Ç+QAÌtß3AlL°Æ+QAÌ@mß3AlLàÅ+QAÌdß3AlL0Ã+QAÌàZß3AlL¸Á+QAÌÀYß3AlLð¾+QAÌ€Yß3AlLà»+QAÌÀ^ß3AlL ¸+QAÌ@tß3AlLð®+QAÌÀ|ß3AlL0¬+QAÌ@…ß3AlL€¨+QAÌ€¨ß3AlLЙ+QAÌÀÎß3AlLŒ+QAÌ€ à3AlL€z+QÄà3AlLða+QAÌ@¸à3AlL€V+QAÌïà3AlLðM+QAÌ@ûà3AlLO+QAÌÀ á3AlLPK+QAÌ4á3AlLF+QAÌ@[á3AlLÀA+QAÌÀgá3AlLB+QAÌ@uá3AlLàB+QAÌ@€á3AlL0B+QAÌÀŠá3AlL@C+QAÌ€¤á3AlL€E+QAÌÀ°á3AlLàF+QAÌÁá3AlL I+QAÌÀËá3AlL@J+QAÌÒá3AlLK+QAÌÀÖá3AlLI+QAÌÛá3AlLG+QAÌ€àá3AlL@D+QAÌ èá3AlL€B+QAÌôá3AlL`B+QAÌÀüá3AlL`C+QAÌàâ3AlLE+QAÌ@ â3AlL`F+QAÌÀâ3AlLÐI+QAÌ@â3AlL0SK+QAÌÀ â3AlL€M+QAÌ€*â3AlLÐN+QAÌÀ2â3AlL°Q+QAÌ€5â3AlL°T+QAÌ@>â3AlL@U+QAÌ@Iâ3AlLU+QAÌ€Qâ3AlLðW+QAÌ€dâ3AlLPX+QAÌÀsâ3AlL€[+QAÌ €â3AlL`[+QAÌ€ˆâ3AlL [+QAÌÀ‹â3AlLàY+QAÌ•â3AlLàW+QAÌ œâ3AlLPV+QAÌ@¦â3AlLU+QAÌÀ±â3AlL@V+QAÌÉâ3AlL T+QAÌÎâ3AlLV+QAÌÞâ3AlL0W+QAÌ€ãâ3AlLZ+QAÌ@óâ3AlL [+QAÌ@ôâ3AlL€X+QAÌÀùâ3AlL°W+QAÌÀþâ3AlL0V+QAÌã3AlLpU+QAÌÀã3AlLÐU+QAÌ€ã3AlLPW+QAÌã3AlL Y+QAÌ@#ã3AlL`X+QAÌ(ã3AlL@Y+QAÌ€,ã3AlLZ+QAÌ€5ã3AlL0[+QAÌ7ã3AlL\+QAÌ<ã3AlLÐ]+QAÌ€Bã3AlLÀ\+QAÌàEã3AlLZ+QAÌÀKã3AlLPY+QAÌ@Sã3AlLàW+QAÌ€Wã3AlL V+QAÌ@^ã3AlL T+QAÌÀ\ã3AlLÐR+QAÌ€dã3AlLàP+QAÌ€mã3AlLðJ+QAÌ€pã3AlL F+QAÌ€lã3AlL°D+QAÌÀnã3AlLP?+QAÌ€oã3AlL <+QAÌ@yã3AlLÀ:+QAÌ@yã3AlLà6+QAÌ€nã3AlL°6+QAÌÀsã3AlL4+QAÌ zã3AlL€0+QAÌ€‰ã3AlL )+QAÌÀã3AlL°)+QAÌ@–ã3AlL )+QAÌ@ã3AlLÀ&+QAÌžã3AlL€$+QAÌÀ›ã3AlLp"+QA̦ã3AlLP+QAÌ@ªã3AlL +QAÌ@³ã3AlLÀ+QAÌÀ»ã3AlL +QAÌÀÌã3AlLÐ+QAÌÀÙã3ATlL@ü*QAÌæã3AlL°÷*QAÌ@óã3AlLÐñ*QAÌ@üã3AlLÐç*QAÌ€ä3AlLPà*QAÌ€ä3AlL Ø*QAÌ€#ä3AlL@Ö*QAÌÀ*ä3AlLÒ*QAÌ€,ä3AlL Ï*QAÌ0ä3AlLÍ*QAÌÀ/ä3AlLðÊ*QAÌ@0ä3AlL°È*QAÌ7ä3AlL Ã*QAÌ€Bä3AlLÁ*QAÌÀNä3AlL°¿*QAÌÀHä3AlL¾*QAÌÀMä3AlL¹*QAÌÀWä3AlL0²*QAÌ€`ä3AlL`­*QAÌÀbä3AlLp¨*QAÌ@oä3AlL€¢*QAÌ@vä3AlLPœ*QAÌ„ä3AlL˜*QAÌä3AlL‘*QAÌ—ä3AlLp‹*QAÌ@–ä3AlL‡*QAÌä3AlLІ*QAÌ@•ä3AlL „*QAÌÀšä3AlL@„*QAÌ@¥ä3AlLÀ*QAÌÀ­ä3AlL}*QAÌ€¬ä3AlL {*QAÌ«ä3AlLz*QAÌ´ä3AlLw*QA̱ä3AlL€t*QAÌÀ­ä3AlLPp*QA̬ä3AlL°l*QA̤ä3AlLPl*QAÌ€£ä3AlLPj*QAÌ@¢ä3AlLph*QAÌ@›ä3AlL€d*QAÌ€šä3AlL¨`*QAÌÀªä3AlLð`*QAÌàªä3AlL^*QAÌ€Ÿä3AlLà^*QAÌ–ä3AlL`]*QAÌÀŽä3AlL]*QAÌ‘ä3AlL@[*QẢä3AlL`[*QAÌ€€ä3AlLP\*QAÌÀvä3AlL@Z*QAÌ`zä3AlLÐV*QAÌÀ|ä3AlLÐT*QAÌ€sä3AlLT*QAÌlä3AlLPT*QAÌÀiä3AlLPV*QAÌ@hä3AlLX*QAÌXä3AlL€X*QAÌÀSä3AlL°Z*QAÌÀJä3AlLPZ*QAÌÀ<ä3AlL Y*QAÌ@4ä3AlLÀV*QAÌ€3ä3AlLàR*QAÌÀ4ä3AlL`N*QAÌ€U,ä3AlLK*QAÌ€1ä3AlL F*QAÌ€8ä3AlLP@*QAÌ0ä3AlLÐ>*QAÌ€)ä3AlL`?*QAÌ@%ä3AlLð=*QAÌ€*ä3AlL;*QAÌÀ%ä3AlL09*QAÌÀä3AlL 8*QAÌä3AlLP4*QAÌ@ä3AlL@0*QAÌ@#ä3AlL.*QAÌ@0ä3AlL`-*QAÌ€.ä3AlLð)*QAÌÀ>ä3AlLà&*QAÌPä3AlL@&*QAÌ@jä3AlL&*QAÌ@lä3AlLP(*QAÌÀuä3AlLP'*QAÌ}ä3AlLÐ#*QAÌÀ‰ä3AlL0 *QAÌ€”ä3AlL0*QAÌ@œä3AlL°*QAÌ€¦ä3AlLà*QAÌ­ä3AlLÀ*QAÌ€®ä3AlL€ *QAÌ€¦ä3AlL` *QAÌ«ä3AlL` *QAÌÀ²ä3AlLp*QA̽ä3AlLÀ*QAÌ€Ää3AlLx *QAÌ@Íä3AlLÀ *QAÌÕä3AlL0 *QAÌ@×ä3AlL° *QAÌ€Õä3AlL€*QAÌ€Óä3AlLÀ*QAÌÀÕä3AlLð*QAÌÀæä3AlLx*QAÌàíä3AlLè*QAÌÀòä3AlLð*QAÌõä3AlLp*QAÌ ìä3AlLp*QAÌîä3AlL`*QAÌ@íä3AlL *QAÌ€õä3AlL *QAÌ€ýä3AlL *QAÌ@å3AlLP*QAÌ å3AlLÐ*QAÌ å3AlLH*QAÌå3AlL€*QAÌå3AlL*QAÌ€ å3AlL`*QAÌÀ å3AlLðÿ)QAÌÀå3AlL€ÿ)QAÌÀå3AlLpü)QAÌ@!å3AlLÀú)QAÌ@å3AlLPù)QAÌå3AlL ú)QAÌ€å3AlLý)QAÌ@å3AlLþ)QAÌ å3AlL û)QAÌå3AlL ú)QAÌ@å3AlL@ø)QAÌ€å3AlL°ö)QAVÌÀ$å3AlL€õ)QAÌ@*å3AlL°ô)QAÌ@*å3AlL ö)QAÌ0å3AlLÀö)QAÌ€5å3AlL õ)QAÌÀ8å3AlLàó)QAÌ@@å3AlLÀó)QAÌ@Jå3AlL@ó)QAÌUå3AlLàò)QAÌ@aå3AlLàð)QAÌ€eå3AlL î)QAÌ@cå3AlL°ì)QAÌfå3AlLê)QAÌÀmå3AlLðé)QAÌ€må3AlL0è)QAÌ@ˆå3AlL å)QAÌ€—å3AlL ã)QAÌ€¬å3AlL`Ú)QA̶å3AlLPÖ)QAÌ@°å3AlL€Ò)QAÌ€¨å3AlL@Ð)QAÌžå3AlL@Ñ)QAÌ@“å3AlL Ò)QAÌÀ‡å3AlL@Õ)QAÌ€zå3AlLÐÕ)QAÌ€nå3AlLpÕ)QAÌ€hå3AlLÐÑ)QAÌ€gå3AlLPÐ)QAÌÀuå3AlL€Ï)QAÌuå3AlL€Ì)QAÌ@tå3AlLpÊ)QAÌ€Uå3AlLÐÀ)QAÌDå3AlLð»)QAÌ€$å3AlLÀ¯)QAÌÀå3AlLp©)QAÌÞä3AlLС)QAÌ Öä3AlLh )QAÌ€Åä3AlLP)QAÌ¡ä3AlL°)QAÌ@rä3AlL”)QAÌ@Rä3AlL0‹)QAÌ@3ä3AlL`ƒ)QAÌÀ ä3AlL€|)QAÌÀ¾ã3AlL@v)QAÌ€ ã3AlL`s)QAÌ@‹ã3AlL`q)QAÌ€Kã3AlL k)QAÌÀã3AlLe)QAÌ@ã3AlLÐ[)QAÌ@*ã3AlLN)QAÌ@iã3AlLP)QAÌ@ƒã3AlLðÿ(QAÌ€’ã3AlLPô(QAÌ@¢ã3AlLàê(QAÌÀ³ã3AlLàá(QAÌÄã3AlL0Ú(QAÌÏã3AlLÀÏ(QAÌÛã3AlL@Ä(QAÌ@ëã3AlL»(QAÌä3AlL`°(QAÌ€ä3AlL¤(QAÌ+ä3AlLГ(QAÌ7ä3AlLÀ…(QAÌÀDä3AlLÀW{(QAÌ€Uä3AlLðm(QAÌ€eä3AlLc(QAÌ@qä3AlLPZ(QAÌóä3AlLc(QAÌ€å3AlLpW(QAÌ$å3AlLÐJ(QAÌ€-å3AlL>(QAÌ€6å3AlLð3(QAÌ€4å3AlL€,(QAÌþä3AlL`((QAÌÀÕä3AlLà#(QAÌÀ¶ä3AlL`#(QAÌÀ‘ä3AlL "(QAÌsä3AlL(QAÌKä3AlL(QAÌ@&ä3AlL (QAÌ÷ã3AlL`(QAÌ€Ñã3AlL(QAÌÀ©ã3AlL°(QAÌ€‚ã3AlL@(QAÌ€Tã3AlLð(QAÌÀ7ã3AlLp(QAÌ€ã3AlL` (QAÌ@ã3AlLÀ(QAÌÀ ã3AlLÐú'QAÌã3AlLï'QAÌÀ#ã3AlLpÞ'QAÌ@4ã3AlLÎ'QAÌ€Bã3AlLà¾'QAÌ@Lã3AlL±'QAÌVã3AlL@§'QAÌiã3AlLp™'QAÌ€€ã3AlL'QAÌÀœã3AlL v'QAÌÀ¸ã3AlL@^'QAÌÄã3AlL@R'QAÌÔã3AlL€D'QAÌÞã3AlL8'QAÌ€ìã3AlL°,'QAÌ€þã3AlL0&'QAÌ€ ä3AlLÐ'QAÌ@ä3AlLà'QAÌ€ä3AlL@'QAÌ€!ä3AlL'QAÌÀ0ä3AlL÷&QAÌÀBä3AlL@é&QAÌIä3AlL Ü&QAÌ Fä3AlLÐÐ&QAÌ@Dä3AlL0Ã&QAÌÀ8ä3AlL0¸&QAÌ,ä3AlL °&QAÌÀä3AlL¨&QAÌÀä3AlLà¡&QAÌÀä3AlLp’&QAÌä3AlLp‹&QAÌÀäã3AlL€…&QAÌ€Çã3AlL0~&QAÌ@Áã3AlL`}&QAÌÀ£ã3AlLy&QAÌã3AlLÐu&QAÌíâ3AlLÀp&QAÌ€¾â3AlLÐm&QAÌ@™â3AlLpi&QAÌ@„â3AXlL`e&QAÌÀUâ3AlL°a&QAÌÀ;â3AlLà`&QAÌÀ-â3AlL0d&QAÌ$â3AlL`f&QAÌ€òá3AlLc&QAÌ€Ïá3AlL0b&QAÌ®á3AlL b&QAÌ@•á3AlL°d&QAÌÀpá3AlLe&QAÌ€?á3AlL@g&QAÌÀ:á3AlL€_&QAÌ%á3AlLÐV&QAÌ€á3AlLàL&QAÌÀ÷à3AlL@F&QAÌÜà3AlL?&QAÌ@¸à3AlLÀ5&QAÌÀšà3AlLÀ,&QAÌ}à3AlL%&QAÌ€Oà3AlLP&QAÌÀ#à3AlL€&QAÌ@à3AlLÀ &QAÌÀÙß3AlL€&QAÌÀ¿ß3AlL€&QAÌ@¤ß3AlL`þ%QAÌÀžß3AlL  &QAÌ•ß3AlL&QÄß3AlLp&QAÌ@{ß3AlLÀ"&QAÌ@`ß3AlL )&QAÌIß3AlLP4&QAÌ@'ß3AlL D&QAÌ@ ß3AlLPN&QAÌ@ÝÞ3AlL`[&QAÌÀÃÞ3AlL`X&QAÌÀ›Þ3AlLðS&QAÌ€^Þ3AlL@S&QAÌ@Þ3AlLÐO&QAÌÀíÝ3AlL°M&QAÌ€œÝ3AlLL&QAÌ@?Ý3AlLðI&QAÌÀîÜ3AlLPI&QAÌÀ†Ü3AlLÐE&QAÌÀUÜ3AlL°C&QAÌ@Ü3AlL°B&QAÌåÛ3AlL€B&QAÌ€ÝÛ3AlL€9&QA̾Û3AlL7&QAÌÀšÛ3AlLp6&QAÌÀÛ3AlL`9&QAÌ€cÛ3AlL 9&QAÌÀ@Û3AlLÀ6&QAÌÛ3AlLð3&QAÌ&Û3AlL°&QAÌÀ/Û3AlL0&QAÌ€aÛ3AlL &QAÌ€fÛ3AlL ú%QAÌ€rÛ3AlL0í%QAÌ€wÛ3AlLàç%QAÌÀ‚Û3AlL`Ô%QAÌ€”Û3AlLp½%QAÌ€Û3AlLð­%QAÌ€¤Û3AlL0Ÿ%QAÌ€°Û3AlL@Ž%QAÌYÔÛ3AlL°~%QAÌ€ýÛ3AlL o%QAÌ€FÜ3AlLX%QAÌ€€Ü3AlLÐ?%QAÌ@.Ý3AlL %QAÌÀRÝ3AlL %QAÌÀ|Ý3AlLPï$QAÌ@‰Ý3AlL€ë$QAÌÞ3AlL€Æ$QAÌ.Þ3AlLи$QAÌBÞ3AlL®$QAÌGÞ3AlL§$QAÌBÞ3AlLÀ¥$QAÌ@4Þ3AlLà $QAÌÀÞ3AlLp›$QAÌ@êÝ3AlL€—$QA̾Ý3AlLP“$QAÌœÝ3AlL ‘$QAÌÀgÝ3AlL ’$QAÌ@JÝ3AlLÀ’$QAÌ€2Ý3AlL°$QAÌÝ3AlLp$QAÌ€ÇÜ3AlL†$QAÌÜ3AlLÐ$QAÌÀNÜ3AlLp}$QAÌ@Ü3AlL€y$QAÌ€×Û3AlLr$QAÌ€£Û3AlL m$QAÌ@rÛ3AlLi$QAÌÀCÛ3AlL h$QAÌ@#Û3AlLpl$QAÌ€ÿÚ3AlLpr$QAÌÀÒÚ3AlL0t$QAÌ@ƒÚ3AlL a$QAÌ€`Ú3AlL\$QAÌÀQÚ3AlL0V$QAÌKÚ3AlLÀM$QAÌQÚ3AlLPF$QAÌIÚ3AlL >$QAÌ-Ú3AlL6$QAÌ@Ú3AlL01$QAÌõÙ3AlL`($QAÌÞÙ3AlLÐ#$QAÌ@·Ù3AlL`"$QẢÙ3AlL#$QAÌdÙ3AlL@$$QAÌHÙ3AlLP'$QAÌ@$Ù3AlL°($QAÌ@÷Ø3AlL°*$QAÌÀnØ3AlLp+$QAÌ(Ø3AlL°($QAÌø×3AlLÀ%$QAÌ@Ñ×3AlL0%$QAÌÀ`×3AlL $QAÌ€×3AlL$QAÌ€¹Ö3AlLp$QAÌ@€Ö3AlLP$QAÌNÖ3AlLp $QAÌ€Ö3AlL@$QAÌÀñÕ3AlL@$QAÌ€´Õ3AlLðú#QAÌ@™Õ3AlL°ö#QAÌ@rÕ3AlL0ò#QAÌ@)Õ3AlL°ï#QAZÌ@ôÔ3AlLðð#QAÌ@xÔ3AlLí#QAÌ#Ô3AlL ë#QAÌ@ÒÓ3AlLPç#QAÌ@¯Ó3AlL°ä#QAÌÀ™Ó3AlLã#QAÌ€mÓ3AlLß#QAÌ&Ó3AlLÛ#QAÌ€Ó3AlL0Ø#QAÌ€úÒ3AlLÐ×#QAÌÀåÒ3AlLðÖ#QAÌ€ÊÒ3AlLÞ#QAÌÀJÒ3AlLÀ$QAÌÀ9Ò3AlL€ $QAÌ@"Ò3AlLp$QAÌ@Ò3AlLà"$QAÌ€Ò3AlLp/$QAÌíÑ3AlL°B$QAÌ€ÜÑ3AlLÀL$QAÌÀÍÑ3AlL°]$QAÌÀ¼Ñ3AlLàf$QAÌ€£Ñ3AlL n$QAÌ€‡Ñ3AlL@|$QAÌnÑ3AlLp…$QAÌJÑ3AlL`‹$QAÌ¡Ð3AlLP®$QAÌ@bÐ3AlLðÀ$QAÌ@AÐ3AlLðÊ$QAÌÐ3AlL`Ù$QAÌÀûÏ3AlL@ä$QAÌ€eÏ3AlL%QAÌ@YÏ3AlLP%QAÌ@Ï3AlLà%QAÌ€Ï3AlL %QAÌúÎ3AlLÀ/%QAÌÀôÎ3AlL8%QAÌèÎ3AlL€E%QAÌ€âÎ3AlL€N%QAÌ@ëÎ3AlL@[%QAÌÏ3AlLÐ[%QAÌ"Ï3AlLP]%QAÌUÏ3AlL@b%QAÌÀpÏ3AlLðd%QAÌ€GÏ3AlL ˆ%QAÌîÎ3AlL €%QAÌÀËÎ3AlL°Ž%QA̼Î3AlLà™%QAÌÀ·Î3AlLà %QAÌ€®Î3AlLp¬%QAÌ@$Î3AlLp±%QAÌÀèÍ3AlLà%QAÌÀÈÍ3AlL@Ü%QAÌÀyÍ3AlLàõ%QAÌ@[Í3AlLÐ&QAÌVÍ3AlLp&QAÌ@QÍ3AlL` &QAÌ€2Í3AlL@&QAÌÀ Í3AlLà&&QAÌ@ÙÌ3AlLÀ5&QA̺Ì3AlLA&QAÌÀ“Ì3AlL°M&QAÌ@{Ì3AlL V&QAÌ€[Ì3AlL@`&QAÌ:Ì3AlL[l&QAÌÀ!Ì3AlLz&QAÌÀ Ì3AlL°†&QAÌ Ì3AlL@ˆ&QAÌ€ôË3AlL ”&QAÌ@äË3AlL &QAÌ@ÝË3AlL§&QAÌÀ¡Ë3AlL £&QAÌÀxË3AlL¢&QAÌ€_Ë3AlL ¡&QAÌ@4Ë3AlL¡&QAÌ€Ë3AlL`Ÿ&QAÌ@ôÊ3AlL@Ÿ&QAÌÈÊ3AlLÀž&QAÌ@ÕÊ3AlL ¸&QAÌÀÂÊ3AlLÀÀ&QAÌ@±Ê3AlLpÎ&QAÌ@‚Ê3AlLå&QAÌpÊ3AlL°ô&QAÌeÊ3AlLPþ&QAÌ€XÊ3AlL 'QAÌ¿Ê3AlL`'QAÌÊ3AlL09'QAÌÀ}Ê3AlLð:'QAÌ@sÊ3AlL@'QAÌÀ@Ê3AlLL'QAÌ€Ê3AlLPS'QAÌ@ÿÉ3AlL€|'QAÌ€öÉ3AlL0'QAÌ@çÉ3AlLð«'QAÌ@ÔÉ3AlL°«'QAÌÀ/É3AlLЩ'QAÌ€ëÈ3AlLÄ'QAÌ€™È3AlLÐä'QAÌ€yÈ3AlLpù'QAÌ€LÈ3AlLà(QAÌÀÈ3AlLà(QAÌÀæÇ3AlLÐ/(QAÌ@Ç3AlL G(QAÌ@LÇ3AlL0W(QAÌEÇ3AlLY(QAÌ&Ç3AlL c(QAÌ€ßÆ3AlLð{(QAÌ@ÆÆ3AlL€‰(QA̱Æ3AlL –(QAÌœÆ3AlLœ(QAÌ‹Æ3AlLà¦(QA̘Æ3AlLp®(QAÌ€ŸÆ3AlLð»(QAÌ€ŽÆ3AlLÇ(QAÌzÆ3AlLPÏ(QAÌ@eÆ3AlLÀÜ(QAÌ€–Æ3AlL0ç(QA̽Æ3AlL`ï(QAÌäÆ3AlLpÿ(QAÌÇ3AlLÐ )QAÌ"Ç3AlL )QAÌÀ6Ç3AlL°')QAÌSÇ3AlL3)QAÌ~Ç3AlL0C)QAÌ@£Ç3AlL`N)QAÌ€ßÇ3AlLð^)QAÌÀ0È3AlLpw)QAÌ€HÈ3AlLЇ)QAÌÈ3A\lL°”)QAÌÀÜÇ3AlLЛ)QA̲Ç3AlL¢)QAÌÀWÇ3AlL@¯)QAÌ€$Ç3AlL ±)QAÌæÆ3AlL€µ)QAÌ€ÐÆ3AlL·)QAÌ~Æ3AlL°¼)QAÌ?Æ3AlL€½)QAÌ@úÅ3AlL¾)QAÌÀÊÅ3AlLp¿)QĂÅ3AlL ¾)QAÌYÅ3AlL@Á)QAÌ€QÅ3AlL°À)QAÌ8Å3AlL`¾)QAÌ@ Å3AlLà¸)QAÌ€Å3AlLpµ)QAÌÀÅ3AlL0©)QAÌÀÅ3AlL°)QAÌ@Å3AlL˜)QAÌ€ûÄ3AlL ’)QAÌ€öÄ3AlL`)QAÌ@ÞÄ3AlL°‡)QAÌ«Ä3AlL@€)QAÌ@\Ä3AlLy)QAÌ@Ã3AlL`n)QAÌÀXÃ3AlLpj)QAÌ@ Ã3AlL`j)QAÌÀÃ3AlLa)QAÌ@àÂ3AlLN)QAÌÀ­Â3AlLG)QAÌ|Â3AlLE)QAÌ>Â3AlLpF)QAÌ€Â3AlL`J)QAÌÀÝÁ3AlLPG)QAÌ€ÌÀ3AlLP4)QAÌKÀ3AlL€*)QAÌ BÀ3AlL(*)QAÌ€¾¿3AlL0$)QA̧¿3AlL)QAÌÀ¦¿3AlLà)QAÌ¿3AlL)QAÌÀ|¿3AlL ÿ(QAÌ€9¿3AlL0ý(QAÌÀð¾3AlL€ó(QAÌÀµ¾3AlL î(QAÌÀ|¾3AlLpè(QAÌG¾3AlLá(QAÌ%¾3AlLá(QAÌ@¾3AlL`æ(QAÌ€ä½3AlL€æ(QAÌ@°½3AlLç(QAÌ@½3AlLæ(QAÌq½3AlL@â(QAÌÀ½3AlLÀÆ(QAÌ1½3AlL Â(QAÌ,½3AlL»(QAÌ€ ½3AlL`°(QAÌ@μ3AlLP¤(QAÌ€°¼3AlLàž(QAÌÀ޼3AlL0œ(QAÌc¼3AlL“(QAÌÀl¼3AlL€…(QAÌÀ{¼3AlLp}(QAÌ]’¼3AlL€v(QAÌ@ ¼3AlL€j(QAÌÀ£¼3AlLb(QAÌ@–¼3AlL0\(QAÌ0¼3AlL`B(QAÌ@¼3AlLÐ:(QA̼3AlL4(QAÌ€ ¼3AlL°*(QA̼3AlLp$(QAÌ@¼3AlLà(QAÌ!¼3AlL(QAÌ"¼3AlLÀ(QAÌÀ¼3AlLÀ(QAÌÀÚ»3AlL€(QA̯»3AlLÿ'QÄ»3AlLÀû'QAÌ@`»3AlLù'QAÌ€D»3AlL÷'QAÌ»3AlL ô'QAÌÀ »3AlLï'QAÌ@ùº3AlLPé'QAÌ€ëº3AlL â'QAÌ̺3AlL×'QA̪º3AlLpè'QĂº3AlL@÷'QAÌ@&º3AlLì'QAÌÀé¹3AlLàó'QAÌ€ ¹3AlL æ'QAÌÀF¹3AlLpè'QAÌ@Ù¸3AlL°ò'QAÌ@œ¸3AlL0ñ'QAÌÀ¸3AlLpá'QAÌ÷3AlLÚ'QAÌ€y·3AlL Î'QAÌT·3AlLðÇ'QAÌ@=·3AlLÇ'QAÌ@·3AlL@Å'QAÌÀ·3AlLàÆ'QAÌ@ã¶3AlLË'QAÌ€Ô¶3AlL€Ø'QÀܶ3AlLpä'QAÌ€×¶3AlLî'QAÌ@Ô¶3AlL€÷'QAÌ@ж3AlL þ'QAÌѶ3AlLÐ(QÀж3AlL(QAÌÀÙ¶3AlLÐ/(QAÌ€·3AlL5(QAÌÀá¶3AlL E(QAÌĶ3AlLQ(QAÌt¶3AlL Q(QAÌ@E¶3AlL S(QAÌ@¶3AlLÀZ(QAÌ€òµ3AlL `(QAÌäµ3AlLÀm(QAÌÀ¶3AlLt(QAÌ€þµ3AlL@‚(QAÌK¶3AlLˆ(QAÌÀb¶3AlL`(QAÌ€W¶3AlL0—(QAÌ€Y¶3AlLP (QAÌÀX¶3AlL¯(QAÌ€B¶3AlL°µ(QA̶3AlLº(QA^Ì@òµ3AlL º(QAÌ@äµ3AlL Â(QAÌðµ3AlLÀÌ(QAÌ€¶3AlLÐ(QA̶3AlLØ(QAÌÖµ3AlLðç(QAÌ@«µ3AlLÐî(QA̵3AlL )QAÌœ´3AlL€A)QAÌ–´3AlLC)QAÌÀ‹´3AlLG)QȦ´3AlL°H)QAÌ€7´3AlL0d)QAÌ€$´3AlL`r)QAÌ@´3AlLðƒ)QAÌ€õ³3AlL`‘)QAÌÀà³3AlL°¡)QAÌ@ݳ3AlL0«)QAÌ@a³3AlLÀÖ)QAÌœ³3AlL€Ù)QAÌÀÙ³3AlL à)QAÌ€ ´3AlLæ)QAÌs´3AlLPì)QAÌ€×´3AlLø)QAÌ€Dµ3AlL`*QAÌ€žµ3AlL*QAÌÀÞµ3AlL *QAÌ ¶3AlL*QAÌK¶3AlL0*QAÌ‚¶3AlL@"*QAÌ€¯¶3AlLP)*QAÌ@Þ¶3AlL /*QAÌ€·3AlL`3*QAÌÀ'·3AlL`7*QAÌU·3AlL<*QAÌ@{·3AlL@*QAÌÀ£·3AlLpC*QAÌÈ·3AlLPG*QAÌ€ô·3AlL J*QAÌ@¸3AlL0L*QAÌ€9¸3AlLM*QAÌ@c¸3AlLO*QAÌ€}¸3AlL`R*QAÌÀž¸3AlL@V*QAÌ@º¸3AlLÀ\*QAÌÀÚ¸3AlL°_*QAÌ@ú¸3AlL@_*QAÌ@4¹3AlL `*QAÌ€;¹3AlLàg*QAÌ@B¹3AlL€p*QAÌÀN¹3AlL w*QAÌ€g¹3AlL *QAÌ€H¹3AlLà…*QAÌ€+¹3AlLЋ*QAÌ@ ¹3AlLp“*QAÌÀè¸3AlL0˜*QAÌ@ɸ3AlLð›*QAÌÀ›¸3AlLP *QAÌ@{¸3AlL€¨*QAÌ@Z¸3AlL²*QAÌÀ>¸3AlL@º*QAÌ€7¸3AlLÐÂ*QAÌÀ<¸3AlLÑ*QAÌÀE¸3AlL_ß*QAÌÀB¸3AlL°æ*QAÌ€6¸3AlLàí*QAÌÀ/¸3AlLàñ*QAÌÀ¸3AlLàû*QAÌ ¸3AlLð+QAÌþ·3AlL+QAÌ€¸3AlL°+QAÌ*¸3AlLp+QAÌE¸3AlL !+QAÌ]¸3AlL &+QAÌÀm¸3AlLP++QAÌÀ‰¸3AlL€3+QAÌ@¬¸3AlLp=+QAÌ@–¸3AlLàD+QAÌ€j¸3AlLM+QA̸3AlL@^+QAÌ€ò·3AlLpj+QAÌ@Ê·3AlLu+QAÌø·3AlL0{+QAÌ€'¸3AlL†+QAÌÀ?¸3AlL‘+QAÌÀ"¸3AlLðš+QA̸3AlLà¤+QAÌ@-¸3AlL «+QAÌ@Y¸3AlLµ+QAÌ€~¸3AlLм+QAÌ@ˆ¸3AlL@Å+QAÌ•¸3AlLÍ+QAÌ€§¸3AlLP×+QAÌ@¸¸3AlL°à+QÀظ3AlLpè+QAÌ€ñ¸3AlL0ì+QA̹3AlLó+QAÌÀ.¹3AlLPø+QAÌ@L¹3AlLàþ+QAÌÀ^¹3AlL,QAÌ€m¹3AlLÐ ,QAÌÀ…¹3AlL,QAÌÀŸ¹3AlL@,QAÌ@ƹ3AlLp,QAÌ€ê¹3AlLÐ,QAÌ º3AlLP,QAÌ€aº3AlLP,QAÌ€•º3AlLð,QAÌ@ĺ3AlL,QAÌ@ûº3AlL ,QAÌÀÿº3AlL`-,QAÌ!»3AlL 1,QAÌC»3AlL 6,QAÌZ»3AlL:,QAÌ€y»3AlLà@,QAÌÀ}»3AlL@B,QAÌ@•»3AlLðI,QAÌ€a»3AlLàN,QAÌÀ2»3AlL S,QAÌ€»3AlLàZ,QAÌÀ¸º3AlLm,QAÌ@º3AlL q,QAÌ@€º3AlLðw,QAÌ@Uº3AlLÐz,QAÌ@!º3AlL €,QAÌõ¹3AlL°†,QAÌ€Ú¹3AlL Š,QAÌǹ3A`lL Œ,QAÌ@¹3AlLà,QAÌ€°¹3AlL`’,QAÌ@ž¹3AlL ™,QAÌ€„¹3AlLP¢,QAÌÀ]¹3AlLP«,QAÌ@D¹3AlL°,QAÌ@-¹3AlL·,QAÌÀ¹3AlLP¼,QA̹3AlL°Ä,QAÌã¸3AlL0Ï,QAÌ@ ¹3AlL Ì,QAÌÀ.¹3AlL°Ê,QAÌ€M¹3AlLÉ,QAÌ€e¹3AlLàÉ,QA̹3AlLÌ,QAÌ—¹3AlLÀÑ,QAÌ@°¹3AlLÒ,QAÌ@ع3AlL Ó,QAÌÀû¹3AlL`Ò,QAÌ€º3AlLàÓ,QAÌ@7º3AlLÖ,QAÌ€hº3AlLÀ×,QA̺3AlL€Õ,QAÌ@žº3AlL Ò,QAÌ@¶º3AlL Ò,QÀɺ3AlLÐÙ,QAÌÚº3AlLà,QAÌÀüº3AlLé,QAÌ€»3AlLðî,QAÌ€<»3AlLõ,QAÌ€^»3AlLù,QAÌ€Ž»3AlLÿ,QAÌ€´»3AlLð-QAÌ@ß»3AlLp -QA̼3AlLà -QAÌ&¼3AlLð -QAÌ€^¼3AlL-QAÌ€¼3AlLP-QAÌ€«¼3AlL-QAÌ@»¼3AlL@"-QAÌ€×¼3AlLà1-QAÌ@ù¼3AlLÐA-QAÌ@ô¼3AlL€P-QAÌÀÚ¼3AlLpY-QAÌ@Û¼3AlL b-QAÌî¼3AlLàg-QAÌ@½3AlLÀn-QAÌ&½3AlL p-QAÌÀ<½3AlL@{-QAÌ@)½3AlL ‚-QAÌ€½3AlLˆ-QAÌ#½3AlL`’-QAÌÀ`½3AlLP -QAÌ@’½3AlLàª-QAÌÀŸ½3AlLµ-QAÌ€¥½3AlLPÁ-QAÌ€ž½3AlLÏ-QAÌÀ•½3AlL€Ù-QAÌ€‡½3AlL@è-QAÌ€½3AlLàø-QAÌ™½3AlLú-QAÌ»½3AlLðú-QAÌ@ܽ3AlLû-QAÌ€aï½3AlLÀö-QAÌ@?¾3AlL¸.QAÌÀD¾3AlLp.QAÌ@=¾3AlL`.QAÌ ¾3AlL@5.QAÌ€ï½3AlLP=.QAÌ€ä½3AlLà@.QAÌ@ƽ3AlLpK.QA̧½3AlL°V.QAÌ@…½3AlL0_.QAÌ€`½3AlLpd.QAÌC½3AlL i.QAÌÀ'½3AlLÀp.QAÌ@½3AlLpy.QAÌ€½3AlL ‡.QA̽3AlLÀž.QAÌÀ½3AlL ¡.QA̽3AlLà¢.QAÌ€û¼3AlLЮ.QA̽3AlL ½.QAÌ6½3AlLàÄ.QAÌ@I½3AlLÀË.QAÌÀI½3AlLÙ.QAÌ O½3AlLàã.QAÌÀ½3AlL`í.QAÌÀ«½3AlL ó.QAÌÀë½3AlLû.QAÌ$¾3AlL@/QAÌÀ)¾3AlLP/QAÌ@^¾3AlL/QAÌš¾3AlL°/QAÌÀÙ¾3AlL@%/QAÌÀ#¿3AlL€3/QAÌÀG¿3AlL0;/QAÌ€{¿3AlL€E/QÀ߿3AlL@[/QAÌ€À3AlLd/QAÌ€`À3AlL m/QAÌ€¡À3AlLÀs/QAÌ€ËÀ3AlL@w/QAÌ€×À3AlL@x/QAÌ@ùÀ3AlL{/QAÌÀmÁ3AlLà„/QAÌ@£Á3AlLpˆ/QAÌÝÁ3AlLÀŒ/QAÌÀÂ3AlLÐ’/QAÌ@AÂ3AlL0™/QAÌ@ZÂ3AlLÀž/QAÌ@|Â3AlL°©/QAÌ€›Â3AlLð´/QAÌÀ¾Â3AlL À/QAÌ@ÕÂ3AlL°Ç/QAÌùÂ3AlLÍ/QAÌÀÃ3AlL Î/QAÌÀ2Ã3AlL€Ò/QAÌAÃ3AlLPÕ/QAÌ€6Ã3AlLÀâ/QAÌ€Ã3AlLé/QAÌ@&Ã3AlLò/QAÌ@dÃ3AlLÿ/QAÌÀˆÃ3AlLP0QAÌ©Ã3AlLÀ0QAÌÀ³Ã3AlL€0QAÌÀ¿Ã3AlL`0QAbÌ@úÃ3AlL00QAÌÀ*Ä3AlLÀ0QAÌ@šÄ3AlLp*0QAÌÀ=Å3AlLðD0QAÌvÅ3AlLðL0QAÌ€©Å3AlL U0QAÌ@ÝÅ3AlL`^0QAÌ@Æ3AlLb0QAÌ1Æ3AlL°p0QAÌEÆ3AlL€t0QAÌÀrÆ3AlL w0QAÌ@¤Æ3AlL{0QAÌëÆ3AlL 0QAÌ€bÇ3AlL Œ0QAÌ€yÇ3AlLPŒ0QAÌ@Ç3AlLpŒ0QAÌÀ˜Ç3AlLŒ0QAÌ@ Ç3AlLP0QAÌÀÆÇ3AlL`‘0QAÌ€CÈ3AlL©0QAÌyÈ3AlLð³0QAÌ@‹È3AlLP·0QAÌ@®É3AlLðì0QAÌÀ,Ê3AlLP1QAÌ€IÊ3AlLp1QAÌ€mÊ3AlLà1QAÌ€ˆÊ3AlL 1QAÌ•Ê3AlLÐ1QAÌÀ Ê3AlLð1QAÌ@ÂÊ3AlLp1QAÌÆÊ3AlL1QAÌ@ÅÊ3AlL1QAÌ€ÂÊ3AlL€1QAÌ@ÁÊ3AlL1QAÌ€ÃÊ3AlL 1QAÌÌÊ3AlLp 1QAÌ@ÝÊ3AlLð1QAÌ@õÊ3AlL1QAÌ€Ë3AlL1QAÌÀË3AlLpý0QAÌ€Ë3AlLÀû0QAÌÀ Ë3AlL`ú0QAÌË3AlLðø0QAÌ€Ë3AlLÐø0QAÌ€Ë3AlLÐö0QAÌ€Ë3AlL0ô0QAÌ)Ë3AlL@ñ0QAÌ€(Ë3AlLë0QAÌ(Ë3AlLPè0QAÌ€!Ë3AlLðæ0QAÌ€"Ë3AlL¸ä0QAÌ€(Ë3AlL€ä0QAÌà,Ë3AlLTâ0QAÌ@)Ë3AlLÀß0QAÌÀ+Ë3AlL@Þ0QAÌÀ0Ë3AlL€Ü0QAÌÀ7Ë3AòU%Û0QAÌÀ3Ë3AlLÚ0QAÌ@1Ë3AlLÀØ0QAÌà2Ë3AlL(Ö0QAÌ`6Ë3AlL@Ô0QAÌ@?Ë3AlL Ò0QAÌÀGË3AlL@Ð0QAÌÐOË3AlL$Î0QAÌÀXË3AlL@Î0QAÌ ^Ë3AlLÀÎ0QAÌàeË3AlLÎ0QAÌ mË3AlL€Ì0QAÌhË3AlL°Ë0QAÌ@aË3AlLÀÉ0QAÌ cË3AlLèÆ0QAÌ€kË3AlLØÅ0QAÌ€iË3AlLÄ0QAÌ@gË3AlL Â0QA̰`Ë3AlLÐÀ0QAÌÀdË3AlL ¿0QAÌdË3AlL½0QAÌ€hË3AlL`»0QAÌÀ{Ë3AlL¸0QAÌÀˆË3AlLÀ¶0QAÌ€Ë3AlLðµ0QAÌ@•Ë3AlLð³0QAÌ›Ë3AlLx³0QAÌ€¡Ë3AlL ²0QAÌÀ¥Ë3AlLP¯0QA̪Ë3AlL­0QAÌÀ³Ë3AlLP­0QAÌ@¾Ë3AlL¬0QAÌ@ÊË3AlLpª0QAÌ@×Ë3AlL°¨0QAÌ@çË3AlLp§0QAÌ@ñË3AlL0¦0QAÌ`ûË3AlLؤ0QAÌÌ3AlL¨¢0QAÌÀÌ3AlLà 0QAÌ@:Ì3AlL°Ÿ0QAÌ€LÌ3AlL°ž0QAÌ`Ì3AlL0QAÌÀrÌ3AlL°œ0QAÌ€€Ì3AlL`0QAÌ€‹Ì3AlL`ž0QAÌÀ‘Ì3AlL@œ0QAÌ ›Ì3AlLp™0QAÌÀŸÌ3AlL0–0QAÌ€˜Ì3AlL@–0QAÌ€™Ì3AlLà0QAÌ€žÌ3AlL`0QAi Ì€žÌ3AlL`0QAÌ`¬Ì3AlL0QAÌà·Ì3AlL‘0QAÌ ÃÌ3AlLp’0QAÌ ÄÌ3AlLè0QAÌÀ½Ì3AlLˆ0QA̵Ì3AlLh0QAÌ@­Ì3AlL`Ž0QAÌ€£Ì3AlL@Ž0QAÌ€žÌ3AlL`0QAiÌÍÚ3AlL@.QA@+@ÔÚ3AVâ²°.QAÌ@ÌÚ3AlLP.QAÌÍÚ3AlL@.QAiÌ@àÝ3AlLÐI-QAÌ èÝ3AlLHI-QAÌÀâÝ3AlL0H-QAÌ@àÝ3AlLÐI-QAþ ÓÓ‚©›H !„ÑTK%#Melendugno @îÿ äA–DG>ÅmøYÌ@a³3AlLðÖ#QA̶å3AlLp1QA|i. Ì€žÌ3AlL`0QAÌ€Ì3AlL0QAÌ@†Ì3AlL`Ž0QAÌ@{Ì3AlL°Œ0QAÌ€rÌ3AlL`ˆ0QAÌ@pÌ3AlLЄ0QAÌ@pÌ3AlLà€0QAÌ€qÌ3AlL`|0QAÌ@xÌ3AlL0w0QĂÌ3AlLo0QAÌ€ Ì3AlLÀd0QAÌ@¹Ì3AlL0> pp… &U-‰#triggergeometry_columns_f_table_name_insertgeometry_columnsCREATE TRIGGER geometry_columns_f_table_name_insert BEFORE INSERT ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END __…'U-‰Etriggergeometry_columns_f_table_name_updategeometry_columnsCREATE TRIGGER geometry_columns_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END CC…:(_-‰striggergeometry_columns_f_geometry_column_insertgeometry_columnsCREATE TRIGGER geometry_columns_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END --…P)_-Štriggergeometry_columns_f_geometry_column_updategeometry_columnsCREATE TRIGGER geometry_columns_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END åå„*W-‡7triggergeometry_columns_geometry_type_insertgeometry_columnsCREATE TRIGGER geometry_columns_geometry_type_insert BEFORE INSERT ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'geometry_type must be one of 0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007') WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007)); END ³³á„++W-‡]triggergeometry_columns_geometry_type_updategeometry_columnsCREATE TRIGGER geometry_columns_geometry_type_update BEFORE UPDATE OF 'geometry_type' ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'geometry_type must be one of 0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007') WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007)); END‚,[-ƒ;triggergeometry_columns_coord_dimension_insertgeometry_columnsCREATE TRIGGER geometry_columns_coord_dimension_insert BEFORE INSERT ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4') WHERE NOT(NEW.coord_dimension IN (2,3,4)); END ††º‚1-[-ƒetriggergeometry_columns_coord_dimension_updategeometry_columnsCREATE TRIGGER geometry_columns_coord_dimension_update BEFORE UPDATE OF 'coord_dimension' ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4') WHERE NOT(NEW.coord_dimension IN (2,3,4)); END‚C.//„9viewgeom_cols_ref_sysgeom_cols_ref_sysCREATE VIEW geom_cols_ref_sys AS SELECT f_table_name, f_geometry_column, geometry_type, coord_dimension, spatial_ref_sys.srid AS srid, auth_name, auth_srid, ref_sys_name, proj4text, srtext FROM geometry_columns, spatial_ref_sys WHERE geometry_columns.srid = spatial_ref_sys.srid ……„x/79‰ triggervwgc_view_name_insertviews_geometry_columnsCREATE TRIGGER vwgc_view_name_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END ww…079‰'triggervwgc_view_name_updateviews_geometry_columnsCREATE TRIGGER vwgc_view_name_update BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END aa…1?9‰Ktriggervwgc_view_geometry_insertviews_geometry_columnsCREATE TRIGGER vwgc_view_geometry_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END NN…/2?9‰qtriggervwgc_view_geometry_updateviews_geometry_columnsCREATE TRIGGER vwgc_view_geometry_update BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END ff…399‰Gtriggervwgc_view_rowid_updateviews_geometry_columnsCREATE TRIGGER vwgc_view_rowid_update BEFORE UPDATE OF 'view_rowid' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_rowid value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_rowid value must not contain a double quote') WHERE NEW.view_rowid LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_rowid value must be lower case') WHERE NEW.view_rowid <> lower(NEW.view_rowid); END ||…499‰triggervwgc_view_rowid_insertviews_geometry_columnsCREATE TRIGGER vwgc_view_rowid_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_rowid value must not contain a single quote') WHERE NEW.view_rowid LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_rowid value must not contain a double quote') WHERE NEW.view_rowid LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_rowid value must be lower case') WHERE NEW.view_rowid <> lower(NEW.view_rowid); END jj…5=9‰;triggervwgc_f_table_name_insertviews_geometry_columnsCREATE TRIGGER vwgc_f_table_name_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END YY…$6=9‰]triggervwgc_f_table_name_updateviews_geometry_columnsCREATE TRIGGER vwgc_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END ==…@7G9Š triggervwgc_f_geometry_column_insertviews_geometry_columnsCREATE TRIGGER vwgc_f_geometry_column_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END ''…V8G9Š7triggervwgc_f_geometry_column_updateviews_geometry_columnsCREATE TRIGGER vwgc_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END ……„x979‰ triggervtgc_virt_name_insertvirts_geometry_columnsCREATE TRIGGER vtgc_virt_name_insert BEFORE INSERT ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END ww…:79‰'triggervtgc_virt_name_updatevirts_geometry_columnsCREATE TRIGGER vtgc_virt_name_update BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END aa…;?9‰Ktriggervtgc_virt_geometry_insertvirts_geometry_columnsCREATE TRIGGER vtgc_virt_geometry_insert BEFORE INSERT ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END NN…/<?9‰qtriggervtgc_virt_geometry_updatevirts_geometry_columnsCREATE TRIGGER vtgc_virt_geometry_update BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END ññ„ =?9‡+triggervtgc_geometry_type_insertvirts_geometry_columnsCREATE TRIGGER vtgc_geometry_type_insert BEFORE INSERT ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'geometry_type must be one of 0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007') WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007)); END ËËí„>?9‡Qtriggervtgc_geometry_type_updatevirts_geometry_columnsCREATE TRIGGER vtgc_geometry_type_update BEFORE UPDATE OF 'geometry_type' ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'geometry_type must be one of 0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007') WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007)); END‚?C9ƒ/triggervtgc_coord_dimension_insertvirts_geometry_columnsCREATE TRIGGER vtgc_coord_dimension_insert BEFORE INSERT ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4') WHERE NOT(NEW.coord_dimension IN (2,3,4)); END ++S‚%@C9ƒYtriggervtgc_coord_dimension_updatevirts_geometry_columnsCREATE TRIGGER vtgc_coord_dimension_update BEFORE UPDATE OF 'coord_dimension' ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4') WHERE NOT(NEW.coord_dimension IN (2,3,4)); END…*A;C‰atriggergcs_f_table_name_insertgeometry_columns_statisticsCREATE TRIGGER gcs_f_table_name_insert BEFORE INSERT ON 'geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END BB…;B;CŠtriggergcs_f_table_name_updategeometry_columns_statisticsCREATE TRIGGER gcs_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END &&…WCECŠ1triggergcs_f_geometry_column_insertgeometry_columns_statisticsCREATE TRIGGER gcs_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END …mDECŠ]triggergcs_f_geometry_column_updategeometry_columns_statisticsCREATE TRIGGER gcs_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END LL…1E9O‰etriggervwgcs_view_name_insertviews_geometry_columns_statisticsCREATE TRIGGER vwgcs_view_name_insert BEFORE INSERT ON 'views_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END >>…?F9OŠtriggervwgcs_view_name_updateviews_geometry_columns_statisticsCREATE TRIGGER vwgcs_view_name_update BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END ((…UGAOŠ%triggervwgcs_view_geometry_insertviews_geometry_columns_statisticsCREATE TRIGGER vwgcs_view_geometry_insert BEFORE INSERT ON 'views_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END …hHAOŠKtriggervwgcs_view_geometry_updateviews_geometry_columns_statisticsCREATE TRIGGER vwgcs_view_geometry_update BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END LL…1I9O‰etriggervtgcs_virt_name_insertvirts_geometry_columns_statisticsCREATE TRIGGER vtgcs_virt_name_insert BEFORE INSERT ON 'virts_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END >>…?J9OŠtriggervtgcs_virt_name_updatevirts_geometry_columns_statisticsCREATE TRIGGER vtgcs_virt_name_update BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END ((…UKAOŠ%triggervtgcs_virt_geometry_insertvirts_geometry_columns_statisticsCREATE TRIGGER vtgcs_virt_geometry_insert BEFORE INSERT ON 'virts_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END …hLAOŠKtriggervtgcs_virt_geometry_updatevirts_geometry_columns_statisticsCREATE TRIGGER vtgcs_virt_geometry_update BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END LL…1M=E‰ktriggergcfi_f_table_name_insertgeometry_columns_field_infosCREATE TRIGGER gcfi_f_table_name_insert BEFORE INSERT ON 'geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END ;;…BN=EŠ triggergcfi_f_table_name_updategeometry_columns_field_infosCREATE TRIGGER gcfi_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END …^OGEŠ;triggergcfi_f_geometry_column_insertgeometry_columns_field_infosCREATE TRIGGER gcfi_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END   …tPGEŠgtriggergcfi_f_geometry_column_updategeometry_columns_field_infosCREATE TRIGGER gcfi_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END EE…8Q;Q‰otriggervwgcfi_view_name_insertviews_geometry_columns_field_infosCREATE TRIGGER vwgcfi_view_name_insert BEFORE INSERT ON 'views_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END 77…FR;QŠ triggervwgcfi_view_name_updateviews_geometry_columns_field_infosCREATE TRIGGER vwgcfi_view_name_update BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END !!…\SCQŠ/triggervwgcfi_view_geometry_insertviews_geometry_columns_field_infosCREATE TRIGGER vwgcfi_view_geometry_insert BEFORE INSERT ON 'views_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END …oTCQŠUtriggervwgcfi_view_geometry_updateviews_geometry_columns_field_infosCREATE TRIGGER vwgcfi_view_geometry_update BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END EE…8U;Q‰otriggervtgcfi_virt_name_insertvirts_geometry_columns_field_infosCREATE TRIGGER vtgcfi_virt_name_insert BEFORE INSERT ON 'virts_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END 77…FV;QŠ triggervtgcfi_virt_name_updatevirts_geometry_columns_field_infosCREATE TRIGGER vtgcfi_virt_name_update BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END !!…\WCQŠ/triggervtgcfi_virt_geometry_insertvirts_geometry_columns_field_infosCREATE TRIGGER vtgcfi_virt_geometry_insert BEFORE INSERT ON 'virts_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END …oXCQŠUtriggervtgcfi_virt_geometry_updatevirts_geometry_columns_field_infosCREATE TRIGGER vtgcfi_virt_geometry_update BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END oo…Y=7‰3triggergctm_f_table_name_insertgeometry_columns_timeCREATE TRIGGER gctm_f_table_name_insert BEFORE INSERT ON 'geometry_columns_time' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END ^^…Z=7‰Utriggergctm_f_table_name_updategeometry_columns_timeCREATE TRIGGER gctm_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_time' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END BB…;[G7Štriggergctm_f_geometry_column_insertgeometry_columns_timeCREATE TRIGGER gctm_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns_time' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END ,,…Q\G7Š/triggergctm_f_geometry_column_updategeometry_columns_timeCREATE TRIGGER gctm_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_time' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END oo…]=7‰3triggergcau_f_table_name_insertgeometry_columns_authCREATE TRIGGER gcau_f_table_name_insert BEFORE INSERT ON 'geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END ^^…^=7‰Utriggergcau_f_table_name_updategeometry_columns_authCREATE TRIGGER gcau_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END BB…;_G7Štriggergcau_f_geometry_column_insertgeometry_columns_authCREATE TRIGGER gcau_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END ,,…Q`G7Š/triggergcau_f_geometry_column_updategeometry_columns_authCREATE TRIGGER gcau_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END hh…a;C‰7triggervwgcau_view_name_insertviews_geometry_columns_authCREATE TRIGGER vwgcau_view_name_insert BEFORE INSERT ON 'views_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END ZZ…#b;C‰Striggervwgcau_view_name_updateviews_geometry_columns_authCREATE TRIGGER vwgcau_view_name_update BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END DD…9cCC‰wtriggervwgcau_view_geometry_insertviews_geometry_columns_authCREATE TRIGGER vwgcau_view_geometry_insert BEFORE INSERT ON 'views_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END 00…MdCCŠtriggervwgcau_view_geometry_updateviews_geometry_columns_authCREATE TRIGGER vwgcau_view_geometry_update BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END hh…e;C‰7triggervtgcau_virt_name_insertvirts_geometry_columns_authCREATE TRIGGER vtgcau_virt_name_insert BEFORE INSERT ON 'virts_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END ZZ…#f;C‰Striggervtgcau_virt_name_updatevirts_geometry_columns_authCREATE TRIGGER vtgcau_virt_name_update BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END DD…9gCC‰wtriggervtgcau_virt_geometry_insertvirts_geometry_columns_authCREATE TRIGGER vtgcau_virt_geometry_insert BEFORE INSERT ON 'virts_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END 11…LhCCŠtriggervtgcau_virt_geometry_updatevirts_geometry_columns_authCREATE TRIGGER vtgcau_virt_geometry_update BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END --‡Pi''Žcviewvector_layersvector_layersCREATE VIEW vector_layers AS SELECT 'SpatialTable' AS layer_type, f_table_name AS table_name, f_geometry_column AS geometry_column, geometry_type AS geometry_type, coord_dimension AS coord_dimension, srid AS srid, spatial_index_enabled AS spatial_index_enabled FROM geometry_columns UNION SELECT 'SpatialView' AS layer_type, a.view_name AS table_name, a.view_geometry AS geometry_column, b.geometry_type AS geometry_type, b.coord_dimension AS coord_dimension, b.srid AS srid, b.spatial_index_enabled AS spatial_index_enabled FROM views_geometry_columns AS a LEFT JOIN geometry_columns AS b ON (Upper(a.f_table_name) = Upper(b.f_table_name) AND Upper(a.f_geometry_column) = Upper(b.f_geometry_column)) UNION SELECT 'VirtualShape' AS layer_type, virt_name AS table_name, virt_geometry AS geometry_column, geometry_type AS geometry_type, coord_dimension AS coord_dimension, srid AS srid, 0 AS spatial_index_enabled FROM virts_geometry_columns …aj11Šqviewvector_layers_authvector_layers_authCREATE VIEW vector_layers_auth AS SELECT 'SpatialTable' AS layer_type, f_table_name AS table_name, f_geometry_column AS geometry_column, read_only AS read_only, hidden AS hidden FROM geometry_columns_auth UNION SELECT 'SpatialView' AS layer_type, a.view_name AS table_name, a.view_geometry AS geometry_column, b.read_only AS read_only, a.hidden AS hidden FROM views_geometry_columns_auth AS a JOIN views_geometry_columns AS b ON (Upper(a.view_name) = Upper(b.view_name) AND Upper(a.view_geometry) = Upper(b.view_geometry)) UNION SELECT 'VirtualShape' AS layer_type, virt_name AS table_name, virt_geometry AS geometry_column, 1 AS read_only, hidden AS hidden FROM virts_geometry_columns_authCT 'SpatialTable' AS layer_type, f_table_name AS table_name, f_geometry_column AS geometry_column, last_verified AS last_verified, row_count AS row_count, extent_min_x AS extent_min_x, extent_min_y AS extent_min_y, extent_max_x AS extent_max_x, extent_max_y AS extent_max_y FROM geometry_columns_statistics UNION SELECT 'SpatialView' AS layer_type, view_name AS table_name, view_geometry AS geometry_column, last_verified AS last_verified, row_count AS row_count, extent_min_x AS extent_min_x, extent_min_y AS extent_min_y, extent_max_x AS extent_max_x, extent_max_y AS extent_max_y FROM views_geometry_columns_statistics UNION SELECT 'VirtualShape' AS layer_type, virt_name AS table_name, virt_geometry AS geometry_column, last_verified AS last_verified, row_count AS row_count, extent_min_x AS extent_min_x, extent_min_y AS extent_min_y, extent_max_x AS extent_max_x, extent_max_y AS extent_max_y FROM virts_geometry_columns_statisticser_max, double_min AS double_min, double_max double_max FROM geometry_columns_field_infos UNION SELECT 'SpatialView' AS layer_type, view_name AS table_name, view_geometry AS geometry_column, ordinal AS ordinal, column_name AS column_name, null_values AS null_values, integer_values AS integer_values, double_values AS double_values, text_values AS text_values, blob_values AS blob_values, max_size AS max_size, integer_min AS integer_min, integer_max AS integer_max, double_min AS double_min, double_max double_max FROM views_geometry_columns_field_infos UNION SELECT 'VirtualShape' AS layer_type, virt_name AS table_name, virt_geometry AS geometry_column, ordinal AS ordinal, column_name AS column_name, null_values AS null_values, integer_values AS integer_values, double_values AS double_values, text_values AS text_values, blob_values AS blob_values, max_size AS max_size, integer_min AS integer_min, integer_max AS integer_max, double_min AS double_min, double_max double_max FROM virts_geometry_columns_field_infos OO½ˆk==7viewvector_layers_statisticsvector_layers_statisticsCREATE VIEW vector_layers_statistics AS SELE¥‹Ul??–=viewvector_layers_field_infosvector_layers_field_infosCREATE VIEW vector_layers_field_infos AS SELECT 'SpatialTable' AS layer_type, f_table_name AS table_name, f_geometry_column AS geometry_column, ordinal AS ordinal, column_name AS column_name, null_values AS null_values, integer_values AS integer_values, double_values AS double_values, text_values AS text_values, blob_values AS blob_values, max_size AS max_size, integer_min AS integer_min, integer_max AS integ¦am%%tableSpatialIndexSpatialIndexCREATE VIRTUAL TABLE SpatialIndex USING VirtualSpatialIndex() tt:ƒCn5†Atriggerggi_com2011_Geometrycom2011CREATE TRIGGER "ggi_com2011_Geometry" BEFORE INSERT ON "com2011" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'com2011.Geometry violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('com2011') AND Lower(f_geometry_column) = Lower('Geometry') AND GeometryConstraints(NEW."Geometry", geometry_type, srid) = 1) IS NULL; ENDƒCo5†Atriggerggu_com2011_Geometrycom2011CREATE TRIGGER "ggu_com2011_Geometry" BEFORE UPDATE ON "com2011" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'com2011.Geometry violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('com2011') AND Lower(f_geometry_column) = Lower('Geometry') AND GeometryConstraints(NEW."Geometry", geometry_type, srid) = 1) IS NULL; END ^Ê”^‚3r5„!triggertmd_com2011_Geometrycom2011CREATE TRIGGER "tmd_com2011_Geometry" AFTER DELETE ON "com2011" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('com2011') AND Lower(f_geometry_column) = Lower('Geometry'); END‚3q5„!triggertmi_com2011_Geometrycom2011CREATE TRIGGER "tmi_com2011_Geometry" AFTER INSERT ON "com2011" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('com2011') AND Lower(f_geometry_column) = Lower('Geometry'); END‚3p5„!triggertmu_com2011_Geometrycom2011CREATE TRIGGER "tmu_com2011_Geometry" AFTER UPDATE ON "com2011" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('com2011') AND Lower(f_geometry_column) = Lower('Geometry'); ENDlibspatialite-4.3.0a/test/check_extra_relations_fncts.c0000664000175000017500000002066712544707704020335 00000000000000/* check_extra_relations_fncts.c -- SpatiaLite Test Case This tests a couple of functions in gg_relations.c that aren't used in spatialite, but are provided for backwards compatibility. Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiageo.h" static const double double_eps = 0.00000001; int main (int argc, char *argv[]) { int result; int returnValue = 0; gaiaRingPtr interior; /* Common setup */ gaiaLinestringPtr linestr1 = gaiaAllocLinestring (0); gaiaLinestringPtr linestr2 = gaiaAllocLinestring (0); gaiaPolygonPtr poly1 = gaiaAllocPolygon (0, 0); gaiaPolygonPtr poly2 = gaiaAllocPolygon (0, 0); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* Tests start here */ /* zero length linestring */ result = gaiaLinestringEquals (linestr1, linestr2); if (result != 1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -1; goto exit; } /* non-matching linestring lengths */ gaiaFreeLinestring (linestr1); gaiaFreeLinestring (linestr2); linestr1 = gaiaAllocLinestring (2); linestr2 = gaiaAllocLinestring (3); gaiaSetPoint (linestr1->Coords, 0, 1, 3); /* line1, first point */ gaiaSetPoint (linestr1->Coords, 1, 2, 4); /* line1, second point */ gaiaSetPoint (linestr2->Coords, 0, 4, -2); /* line2, first point */ gaiaSetPoint (linestr2->Coords, 1, 1, 5); /* line2, second point */ gaiaSetPoint (linestr2->Coords, 2, 3, 4); /* line2, third point */ result = gaiaLinestringEquals (linestr1, linestr2); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -2; goto exit; } /* identical lines */ gaiaFreeLinestring (linestr2); linestr2 = gaiaCloneLinestring (linestr1); result = gaiaLinestringEquals (linestr1, linestr2); if (result != 1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -3; goto exit; } /* not quite identical lines */ gaiaSetPoint (linestr2->Coords, 1, 2, -4); result = gaiaLinestringEquals (linestr1, linestr2); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -4; goto exit; } /* zero length polygon */ result = gaiaPolygonEquals (poly1, poly2); if (result != 1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -5; goto exit; } /* matching polygons */ gaiaFreePolygon (poly1); gaiaFreePolygon (poly2); poly1 = gaiaAllocPolygon (5, 0); gaiaSetPoint (poly1->Exterior->Coords, 0, 0, 0); gaiaSetPoint (poly1->Exterior->Coords, 1, 10, 0); gaiaSetPoint (poly1->Exterior->Coords, 2, 10, 10); gaiaSetPoint (poly1->Exterior->Coords, 3, 0, 10); gaiaSetPoint (poly1->Exterior->Coords, 4, 0, 0); poly2 = gaiaClonePolygon (poly1); result = gaiaPolygonEquals (poly1, poly2); if (result != 1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -6; goto exit; } /* not quite matching polygons */ gaiaSetPoint (poly2->Exterior->Coords, 2, 10, -10); result = gaiaPolygonEquals (poly1, poly2); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -7; goto exit; } /* polygons with different numbers of interiors */ gaiaFreePolygon (poly2); poly2 = gaiaAllocPolygon (5, 1); gaiaSetPoint (poly2->Exterior->Coords, 0, 0, 0); gaiaSetPoint (poly2->Exterior->Coords, 1, 10, 0); gaiaSetPoint (poly2->Exterior->Coords, 2, 10, 10); gaiaSetPoint (poly2->Exterior->Coords, 3, 0, 10); gaiaSetPoint (poly2->Exterior->Coords, 4, 0, 0); interior = gaiaAddInteriorRing (poly2, 0, 4); gaiaSetPoint (interior->Coords, 0, 1, 1); gaiaSetPoint (interior->Coords, 1, 3, 2); gaiaSetPoint (interior->Coords, 2, 3, 1); gaiaSetPoint (interior->Coords, 3, 1, 1); result = gaiaPolygonEquals (poly1, poly2); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -8; goto exit; } /* same exteriors and interiors */ gaiaFreePolygon (poly1); poly1 = gaiaClonePolygon (poly2); result = gaiaPolygonEquals (poly1, poly2); if (result != 1) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -9; goto exit; } /* slightly different interiors */ gaiaSetPoint (interior->Coords, 2, 3, 3); result = gaiaPolygonEquals (poly1, poly2); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -10; goto exit; } /* different number of exterior points */ gaiaFreePolygon (poly2); poly2 = gaiaAllocPolygon (4, 1); gaiaSetPoint (poly2->Exterior->Coords, 0, 0, 0); gaiaSetPoint (poly2->Exterior->Coords, 1, 10, 0); gaiaSetPoint (poly2->Exterior->Coords, 2, 10, 10); gaiaSetPoint (poly2->Exterior->Coords, 3, 0, 0); interior = gaiaAddInteriorRing (poly2, 0, 4); gaiaSetPoint (interior->Coords, 0, 1, 1); gaiaSetPoint (interior->Coords, 1, 3, 2); gaiaSetPoint (interior->Coords, 2, 3, 1); gaiaSetPoint (interior->Coords, 3, 1, 1); result = gaiaPolygonEquals (poly1, poly2); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -11; goto exit; } /* same exterior points, but different number of points on first interior */ gaiaFreePolygon (poly2); poly2 = gaiaAllocPolygon (5, 1); gaiaSetPoint (poly2->Exterior->Coords, 0, 0, 0); gaiaSetPoint (poly2->Exterior->Coords, 1, 10, 0); gaiaSetPoint (poly2->Exterior->Coords, 2, 10, 10); gaiaSetPoint (poly2->Exterior->Coords, 3, 0, 10); gaiaSetPoint (poly2->Exterior->Coords, 4, 0, 0); interior = gaiaAddInteriorRing (poly2, 0, 5); gaiaSetPoint (interior->Coords, 0, 1, 1); gaiaSetPoint (interior->Coords, 1, 3, 2); gaiaSetPoint (interior->Coords, 2, 3, 3); gaiaSetPoint (interior->Coords, 3, 1, 3); gaiaSetPoint (interior->Coords, 4, 1, 1); result = gaiaPolygonEquals (poly1, poly2); if (result != 0) { fprintf (stderr, "bad result at %s:%i: %i\n", __FILE__, __LINE__, result); returnValue = -12; goto exit; } /* Cleanup and exit */ exit: gaiaFreeLinestring (linestr1); gaiaFreeLinestring (linestr2); gaiaFreePolygon (poly1); gaiaFreePolygon (poly2); spatialite_shutdown (); return returnValue; } libspatialite-4.3.0a/test/sld_sample2.xml0000664000175000017500000000151312544707704015350 00000000000000 group style 2 Trento: Shaded Relief Orthophoto RGB aerial orthophoto draped over LIDAR DEM with Shaded Relief lidar_dem shaded_relief_default ortophoto libspatialite-4.3.0a/test/shapetest1.qpj0000664000175000017500000000043012544707704015213 00000000000000GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4326"]] libspatialite-4.3.0a/test/sql_stmt_security_tests/0000775000175000017500000000000012573314330017507 500000000000000libspatialite-4.3.0a/test/sql_stmt_security_tests/exportshp2.testcase0000664000175000017500000000033412544707704023313 00000000000000exportSHP - NULL geo-column :memory: #use in-memory database SELECT ExportSHP('test', NULL, 'shapefile', 'UTF-8'); 1 # rows (not including the header row) 1 # columns ExportSHP('test', NULL, 'shapefile', 'UTF-8') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportdbf4.testcase0000664000175000017500000000032312544707704023254 00000000000000exportDBF - not existing table :memory: #use in-memory database SELECT ExportDBF('table', 'test.dbf', 'UTF-8'); 1 # rows (not including the header row) 1 # columns ExportDBF('table', 'test.dbf', 'UTF-8') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxfdir10.testcase0000664000175000017500000000042712544707704024054 00000000000000importDXFfromDir - NULL layer :memory: #use in-memory database SELECT ImportDXFfromDir('foo', 4326, 1, '3D', 'DISTINCT', 'LINKED', 'prefix', NULL); 1 # rows (not including the header row) 1 # columns ImportDXFfromDir('foo', 4326, 1, '3D', 'DISTINCT', 'LINKED', 'prefix', NULL) 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/eval3.testcase0000664000175000017500000000034212544707704022206 00000000000000eval('SELECT 1 + 10, 2 * 10, sqrt(225)') :memory: #use in-memory database SELECT eval('SELECT 1 + 10, 2 * 10, sqrt(225)') 1 # rows (not including the header row) 1 # columns eval('SELECT 1 + 10, 2 * 10, sqrt(225)') 11 20 15.0 libspatialite-4.3.0a/test/sql_stmt_security_tests/exportshp3.testcase0000664000175000017500000000032012544707704023307 00000000000000exportSHP - NULL filename :memory: #use in-memory database SELECT ExportSHP('test', 'geom', NULL, 'UTF-8'); 1 # rows (not including the header row) 1 # columns ExportSHP('test', 'geom', NULL, 'UTF-8') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/isXblob1.testcase0000664000175000017500000000475712544707704022675 00000000000000isXblob - png :memory: #use in-memory database SELECT Hex(blob), IsPngBlob(blob), IsGifBlob(blob), IsGeometryBlob(blob), IsZipBlob(blob), IsPdfBlob(blob), IsTiffBlob(blob), IsJpegBlob(blob), IsExifBlob(blob), IsExifGpsBlob(blob), IsWebpBlob(blob) FROM (SELECT BlobFromFile("sql_stmt_tests/k3b-icon.png") as blob) dummy 1 # rows (not including the header rows) 11 # columns Hex(blob) IsPngBlob(blob) IsGifBlob(blob) IsGeometryBlob(blob) IsZipBlob(blob) IsPdfBlob(blob) IsTiffBlob(blob) IsJpegBlob(blob) IsExifBlob(blob) IsExifGpsBlob(blob) IsWebpBlob(blob) 89504E470D0A1A0A0000000D4948445200000010000000100803000000282D0F5300000231504C54450000009FA1ACA1A0AAAFB2B7A3A7ADAFB2B7919AABADA796AFB4B6B7BBBDBCC0C4BEC4C62122239FA495B9BDBFBFC3C5000000000000121212131313989CA4A2A7AD989CA5A2A7AD5E61640000000404040000000303039B9FA79EA2A99A9FA79EA3A91D1E1E1A1B1C1415162A2B2D2B2C2E212223979CA9AB9AA2B4B8BCADB2B6BCC0C3C8CBCE504C535A585C737374767673EBE6E7F0F0F19CA7B1B1B39CC6C8CBCCCFD0D2D5D7D2D5D6A8A8A8ACACACB8B8B8888889878788B2B4BEB9AFB8D8DADEC1C4C9CCCED3F4F4F5E9D9CD898A8BBDC3C98E8E8E959595E7E7E718181E1B1B2123222927252E3231393938423E3D4441404B4A49504C4B574C4C504F4F5651515559585E59585F5958605A5A5F5D5C645E5E625F60687272757B7C7F7D7C818080868686898A8A8C8F8E90908F9493939495949696969B9797989A9A9B9F9FA1A3A2A7AAAAADB4B4B5B6B6B7B8B8BCB9B9BDB9B9BEC2C7D8C3C3C5C6CEDBC7C8D0C7C8D1CBCCCCD1D8E4D2D4C5D4D4DFD4D7E3D5D6DED6C2BDD7D7DED7D8DDD9D9D9DACBD3DAD7BFDADAE2DBDBE2DBDCE3DBDECDDCD6DEDFE0E7E0E0E7E0E1E7E1CCCDE2D8DEE3E5ECE4DAC6E4E6D5E5E4EAE5E5E6E5E5EBE8E7ECE9D9DBE9E9ECEBE8EDEBEBEFEBEBF0ECECF1EDEDF1EFEEF2F1F1F4F2F2F4F2F3F3F3F3F4F3F3F5F3F3F6F4F4F6F4F4F7F5F5F6F6F6F6F6F6F8F6F7F7F7F7F7F7F7F8F7F7F9F8F8FAF9F9FAF9F9FBFBFBFBFBFBFCFBFBFDFCFBFCFCFCFCFCFCFDFDFDFEFEFEFDFEFEFEFEFEFFFEFFFFFFFFFF42B14FFC0000004A74524E53000B0B0B0D0D111111111213212526282D303F404B4B4C4D585B5E60656C6C6D6E6F71768181858F9090929498C7C7C8C8D0D0DBDBDCDCDEDFE6E6E9F1F2F6F6F7F8F8F8F9FBFDFEFEFEC6B2B0FB0000010A4944415478DA35CF855242011445D163777737767762777777773776B762072A0662A2A0E0FD3A9FCCB03E60CF6CC829993B385AA84141DD3D6E8CB3329BE8AD0D39BDE0A1A9A50DEE19FF2EDC000C8D90C991E975EEE9D5CBB738420780C7CCE2EAC4CE05FF5D267DE3F900CAEC85ADDDBDD4D898F4CE8EB6D6145D988EAE6D1F250710E3B7EF809C60C7D9DC3F09F4A3F1DEAE86C101891BEC97995E90EF6D7FFBF58D544CAE309B3BE7BF26F93FD5940D57F7D4923354E2EF0522499AB0B0BCA2AAA494AC014FDEE787A0F939BFBBA8A0BE38C30AD00A133D5C36092B5BF27289220D01E8871E1F363E6666E76451B431FE697A25D4D1D78F6C3ECA44F1AB6AC962B9D8DA1801F8033208565E8EDAAFA30000000049454E44AE426082 1 0 0 0 0 0 0 0 0 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxf10.testcase0000664000175000017500000000042012544707704023346 00000000000000importDXF - NULL layer :memory: #use in-memory database SELECT ImportDXF('sample.dxf', 4326, 1, '3D', 'DISTINCT', 'LINKED', 'prefix', NULL); 1 # rows (not including the header row) 1 # columns ImportDXF('sample.dxf', 4326, 1, '3D', 'DISTINCT', 'LINKED', 'prefix', NULL) 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxf2.testcase0000664000175000017500000000025512544707704023275 00000000000000importDXF - not existing file :memory: #use in-memory database SELECT ImportDXF('sample.dxf'); 1 # rows (not including the header row) 1 # columns ImportDXF('sample.dxf') 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/exportkml3.testcase0000664000175000017500000000030012544707704023276 00000000000000exportKML - NULL filename :memory: #use in-memory database SELECT ExportKML('table', 'geom', NULL); 1 # rows (not including the header row) 1 # columns ExportKML('table', 'geom', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportdxf5.testcase0000664000175000017500000000052712544707704023311 00000000000000exportDXF - null geo_column :memory: #use in-memory database SELECT ExportDXF('testdir', 'test.dxf', 'sql', 'layer', NULL, 'label', 'height', 'rotation', BuildMBR(0, 0, 10, 10)); 1 # rows (not including the header row) 1 # columns ExportDXF('testdir', 'test.dxf', 'sql', 'layer', NULL, 'label', 'height', 'rotation', BuildMBR(0, 0, 10, 10)) 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/Makefile.in0000664000175000017500000003525512573313637021517 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_security_tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = blobfromfile1.testcase \ blobfromfile2.testcase \ blobfromfile3.testcase \ blobfromfile4.testcase \ blobtofile1.testcase \ blobtofile2.testcase \ blobtofile3.testcase \ blobtofile4.testcase \ eval1.testcase \ eval2.testcase \ eval3.testcase \ eval4.testcase \ exportdbf1.testcase \ exportdbf2.testcase \ exportdbf3.testcase \ exportdbf4.testcase \ exportdxf1.testcase \ exportdxf2.testcase \ exportdxf3.testcase \ exportdxf4.testcase \ exportdxf5.testcase \ exportdxf6.testcase \ exportdxf7.testcase \ exportdxf7.testcase \ exportdxf8.testcase \ exportdxf9.testcase \ exportdxf10.testcase \ exportgeojson1.testcase \ exportgeojson2.testcase \ exportgeojson3.testcase \ exportgeojson4.testcase \ exportgeojson5.testcase \ exportgeojson6.testcase \ exportgeojson7.testcase \ exportgeojson8.testcase \ exportgeojson9.testcase \ exportgeojson10.testcase \ exportgeojson11.testcase \ exportkml1.testcase \ exportkml2.testcase \ exportkml3.testcase \ exportkml4.testcase \ exportkml5.testcase \ exportkml6.testcase \ exportkml7.testcase \ exportshp1.testcase \ exportshp2.testcase \ exportshp3.testcase \ exportshp4.testcase \ exportshp5.testcase \ exportshp6.testcase \ exportdxf11.testcase \ importdbf1.testcase \ importdbf2.testcase \ importdbf3.testcase \ importdbf4.testcase \ importdbf5.testcase \ importdbf6.testcase \ importdbf7.testcase \ importdxf1.testcase \ importdxf2.testcase \ importdxf3.testcase \ importdxf4.testcase \ importdxf5.testcase \ importdxf6.testcase \ importdxf7.testcase \ importdxf8.testcase \ importdxf9.testcase \ importdxf10.testcase \ importdxf11.testcase \ importdxf12.testcase \ importdxf13.testcase \ importdxf14.testcase \ importdxf15.testcase \ importdxf16.testcase \ importdxfdir1.testcase \ importdxfdir2.testcase \ importdxfdir3.testcase \ importdxfdir4.testcase \ importdxfdir5.testcase \ importdxfdir6.testcase \ importdxfdir7.testcase \ importdxfdir8.testcase \ importdxfdir9.testcase \ importdxfdir10.testcase \ importdxfdir11.testcase \ importdxfdir12.testcase \ importdxfdir13.testcase \ importdxfdir14.testcase \ importdxfdir15.testcase \ importdxfdir16.testcase \ importshp1.testcase \ importshp2.testcase \ importshp3.testcase \ importshp4.testcase \ importshp5.testcase \ importshp6.testcase \ importshp7.testcase \ importshp8.testcase \ importshp9.testcase \ importshp10.testcase \ importshp11.testcase \ importshp12.testcase \ importshp13.testcase \ importshp14.testcase \ isXblob1.testcase \ isXblob2.testcase \ isXblob3.testcase \ isXblob4.testcase \ isXblob8.testcase \ isXblob9.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_security_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_security_tests/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/test/sql_stmt_security_tests/exportshp1.testcase0000664000175000017500000000032712544707704023314 00000000000000exportSHP - NULL table :memory: #use in-memory database SELECT ExportSHP(NULL, 'geom', 'shapefile', 'UTF-8'); 1 # rows (not including the header row) 1 # columns ExportSHP(NULL, 'geom', 'shapefile', 'UTF-8') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportdxf2.testcase0000664000175000017500000000051512544707704023303 00000000000000exportDXF - null filepath :memory: #use in-memory database SELECT ExportDXF('testdir', NULL, 'sql', 'layer', 'geom', 'label', 'height', 'rotation', BuildMBR(0, 0, 10, 10)); 1 # rows (not including the header row) 1 # columns ExportDXF('testdir', NULL, 'sql', 'layer', 'geom', 'label', 'height', 'rotation', BuildMBR(0, 0, 10, 10)) 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/importshp14.testcase0000664000175000017500000000037512544707704023374 00000000000000importSHP - existing shapefile :memory: #use in-memory database SELECT ImportSHP('./shp/merano-3d/roads', 'shptable', 'UTF-8', 32632); 1 # rows (not including the header row) 1 # columns ImportSHP('./shp/merano-3d/roads', 'shptable', 'UTF-8', 32632) 18 libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxfdir11.testcase0000664000175000017500000000042512544707704024053 00000000000000importDXFfromDir - INT layer :memory: #use in-memory database SELECT ImportDXFfromDir('.', 4326, 1, '3D', 'DISTINCT', 'UNLINKED', 'prefix', 1); 1 # rows (not including the header row) 1 # columns ImportDXFfromDir('.', 4326, 1, '3D', 'DISTINCT', 'UNLINKED', 'prefix', 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/blobtofile1.testcase0000664000175000017500000000031012544707704023371 00000000000000blobtofile - null payload :memory: #use in-memory database SELECT BlobToFile(null, 'abracadabra.outfile') 1 # rows (not including the header row) 1 # columns BlobToFile(null, 'abracadabra.outfile') 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/exportkml4.testcase0000664000175000017500000000033512544707704023307 00000000000000exportKML - NULL precision :memory: #use in-memory database SELECT ExportKML('table', 'geom', 'sample.kml', NULL); 1 # rows (not including the header row) 1 # columns ExportKML('table', 'geom', 'sample.kml', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxfdir14.testcase0000664000175000017500000000043212544707704024054 00000000000000importDXFfromDir - invalid mode :memory: #use in-memory database SELECT ImportDXFfromDir('.', 4326, 1, '3D', 'foo', 'UNLINKED', 'prefix', 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXFfromDir('.', 4326, 1, '3D', 'foo', 'UNLINKED', 'prefix', 'layer') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportkml6.testcase0000664000175000017500000000037412544707704023314 00000000000000exportKML - NULL description_column :memory: #use in-memory database SELECT ExportKML('table', 'geom', 'sample.kml', 6, 'name', NULL); 1 # rows (not including the header row) 1 # columns ExportKML('table', 'geom', 'sample.kml', 6, 'name', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxf16.testcase0000664000175000017500000000024712544707704023363 00000000000000importDXF - existing file :memory: #use in-memory database SELECT ImportDXF('./f06.dxf'); 1 # rows (not including the header row) 1 # columns ImportDXF('./f06.dxf') 1 libspatialite-4.3.0a/test/sql_stmt_security_tests/blobtofile3.testcase0000664000175000017500000000032012544707704023374 00000000000000blobtofile - ok :memory: #use in-memory database SELECT BlobToFile(zeroblob(100), 'abracadabra.outfile') 1 # rows (not including the header row) 1 # columns BlobToFile(zeroblob(100), 'abracadabra.outfile') 1 libspatialite-4.3.0a/test/sql_stmt_security_tests/exportgeojson6.testcase0000664000175000017500000000042212544707704024167 00000000000000exportGeoJSON - not existing table #1 :memory: #use in-memory database SELECT ExportGeoJSON('table', 'geom', 'sample.geojson', 'withShortCRS', 6); 1 # rows (not including the header row) 1 # columns ExportGeoJSON('table', 'geom', 'sample.geojson', 'withShortCRS', 6) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/isXblob4.testcase0000664000175000017500000013310312544707704022664 00000000000000isXblob - jpeg with plain jfif :memory: #use in-memory database SELECT Hex(blob), IsPngBlob(blob), IsGifBlob(blob), IsGeometryBlob(blob), IsZipBlob(blob), IsPdfBlob(blob), IsTiffBlob(blob), IsJpegBlob(blob), IsExifBlob(blob), IsExifGpsBlob(blob), GeomFromExifGpsBlob(blob), IsWebpBlob(blob) FROM (SELECT BlobFromFile("sql_stmt_tests/sandro.jpg") as blob) dummy 1 # rows (not including the header row) 12 # columns Hex(blob) IsPngBlob(blob) IsGifBlob(blob) IsGeometryBlob(blob) IsZipBlob(blob) IsPdfBlob(blob) IsTiffBlob(blob) IsJpegBlob(blob) IsExifBlob(blob) IsExifGpsBlob(blob) GeomFromExifGpsBlob(blob) IsWebpBlob(blob) FFD8FFE000104A46494600010101006000600000FFDB004300080606070605080707070909080A0C140D0C0B0B0C1912130F141D1A1F1E1D1A1C1C20242E2720222C231C1C2837292C30313434341F27393D38323C2E333432FFDB0043010909090C0B0C180D0D1832211C213232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232FFC000110801BC019103012200021101031101FFC4001F0000010501010101010100000000000000000102030405060708090A0BFFC400B5100002010303020403050504040000017D01020300041105122131410613516107227114328191A1082342B1C11552D1F02433627282090A161718191A25262728292A3435363738393A434445464748494A535455565758595A636465666768696A737475767778797A838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F0100030101010101010101010000000000000102030405060708090A0BFFC400B51100020102040403040705040400010277000102031104052131061241510761711322328108144291A1B1C109233352F0156272D10A162434E125F11718191A262728292A35363738393A434445464748494A535455565758595A636465666768696A737475767778797A82838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F00E7A63E58C2F5A8A3259B9144F932F1DA9DF7938EB5CAAC6EC942957049E2AC34E235155A29047804673533468E410719A99414B4218E7954C79C1DC6A4B2642DF21FAD218D4C617AD3A3B4318DCB54E8C6F6B9375B171C608C77A4DA0723AD4225DDC13C8A59AE4469CF3E9554612827CAC9E5EC32691A352455337B23B6D04D2CB72D3FCA071489118D8498FAD6737389B463A5C922B2673BD8F5AB325B2797EE05391D4C791D69F80E8413DAB921527CDA99A93E6B1CC6A0B2962AAD5425B6610E5AB6AF4086427AD5195CCE028E95DB037B9911CDE4822B52D0968779CD5596C5B7E40AD6B4B561128038C735AF425B23B666F38291C1AB3F628FCECCB8C1AB5FD9FB7122727B8A8AEB7F93C81C5429F41295F433EE2D5239405EE78AB71C6020E7B5518964925249E053A799A3F9492293D50DAE83A72CAFF275AB96F7F709185CB0AA302BB1DC7935AF05BADC4391D452BBD912DA5A0D6BD778F0CE7352D8DC0F35738358DA9412C4FB17F9D3AD1655019B3C5394535EF21B49A3B7578576B155DBDFDAA1BEB28EEE3FDC63A66B063BC6C8C9C015A11EA5E56369A8D1AB1924EF638FD663786708C738E2B4349984B12C48393D6AA6BB3ADD5FA9038EF52DB1FB2A87420E450D3E4B22E71B1AF26991C9F2103279A866B21671706A8C9AD323648271EF56ADEF85E8F99703153084D6AD93CB6DCB1A4EA889BE2989C56D45756061666703EB5CCDDD8EC569554F159B148FB8AF35BA9329C5337353D42371E5DBE37671915269B17C9BE5EA6B02390C73E4F526B516579000AC40A372ED6469F92AEE5D78C77AAE18A4E7B5448F3C7DCE28944870C463DEB2690ACB62E4A1DE2CA803DEAB477064631C9F3678C55796E6541B4138C5436F38598FA8F5A86899268BD259C6483B40AD08E18E3B518E5B233F4A84C82450A42F4A8E47920889078A9A53704D128E7B5485DEE58AF037D64DCDA48581C9ADAB8BB469C2B2F350CE30BB86306BAA2EF1D4D22AE675B40CA84F5C547223BC9B066B46D24015948EB5616D2320C9D0D5329AE873732C904A3B5753A65D34B6613B8C5635DB45E61DE79157F4E936E0A8E2B44F415AC6D2C7BBEF534C4037CBD6A58EE41501979C75A52A0FCC2B2722B7162B60F8F3077AB2BB2D158E38AABF680AC15DB0296770C07395ACD4AC4DFA0EFED28FFBB4567ED87D28A63B1388D9DB766A5F2B0327EF546B2EC2715346E1816C73513B6E84EE4241246E26985C86C0356A70121DDD73FA55581433E722926DEE4FA97212FD6A532100F207E350C93C691E10FCD5488966CB64E0D69192BD992D21F24C4B900F7ED53A06D80BF4A6D9C2A189735627202E145126E3AC41BB11EC1C143565197006066AA443073939A591F6F3CD613ABCCAC0E572E92A2AB5CCAC8410D5596EB2D83D2A5660E3AD73A5283215D320B964963DA4E4D64CC4433715A5700015952C666623278AED83B9D0B6356CE48660A09C9ADC8E2531E140AE6F4F876483731DB5ACACD1BFC84E3AD697B12D96E777B5C038C524EAB3C448DBC8E6ABDC4CD30553CE2890F976ACC302B2B59E84346529D9707681C0ED4D92DCCF282073524316EF9CF735A11C6888188EF436DC95C3616D6148D4029CFD2B46358421643B5B15424BD4CEE180CB5546A4C250C3E95A3496A8D2C90F9545C5D2A939C1AD3B6D3A39131C64565199DA5F315307D7157ECEF248F923AD65CD27A33297910DFE9FE53652B318BAE54E6BA2FB50958865ACCBC306E2C78AA50499317AD9986D67E74DB9873EE6B40D895B704F4C7AD1106918B295D83DAAFC68C63E7A5134FA1ACAE73B2D96E2715369F6F24326DE715ADF620AC189EBCD3E2B6CB0E78F5AD2DA06E36EDCB45B36F18AA16D14692E48E48AD7BA81120DEAC49F7AC891F6364F7A8BBBD90ED6216B5696E8140703DAB41A29309B570075CD4BA588DBE6DC377BD6D3881E0257018751EB577B2D48948C41763E4475E6A596E50C206DC567DD2849B23D6AB35D10369E952A3ADC1334F08E8718E9583743C8988049C9E82B5A201EDC90C738E959132CAB38CA9233D69B5729BD0E874DC4F165B3B40EF4EBC62C1906738E2ABE992930640C01D73523DC61CB374A53A6AC4C7439B9E1717592C7AD3EE66DB08526ADCD26F727670735957870DC55A7A58D63DC44BB112E69EF7CEE9956359524723B67071535B8DB8073BAA9A25B63E289EE2E7735743671794A062AA5BC7198F7A9F9875AB3148C930C74A71611376D4C0ABFBD1D689539CC472B598F261860E0F5A58EEA4924D91124F7ACE5665105F098C9819A6C7E62A7CD9AD68A357CEF5CB5588B4F4DA7CC5F96946C294D18DBE3F7A2B67EC367FDCA295919F3A284ABB73EA285621783572F210916E93AD6389CF2AA72B9A1492DCB8CEE5A7B85F2886A8A2324BF2C60E09A87CA321041AEA7C356F0484C7228CD29479824D1942C1C2867069E0AA4654AEDC7EB5DDDCE9F6CB6E7E51D2B88D5422C8C141001A8E5B33353B9044F96E29F2C809009159F1B75C1A1CBB2F3D29B684685B8567E48C54D7289B40522B151DB76326ACAC9271BB2454AB3D1A08C6EC2E202002386A626E5FBC307D6AFF962664CF4AB77360AB16E0474A27C91668EC63CF8F2B3D78AA56D1F985B03BD5BB8011B6B1E2A3B7951186315AA8E9745BD8B76D0AEEC77AB2919590861C55769D11C321C9A53702543CE0D2775B9832748402CC181F6ACFBEB96542AA6AF5B95D87CC7359F7A232FD49152DDF6057B95209A451D3BE6B612EF36F823B553822495311FDE14E8E611131C839A15EE532B4A5B793D0135AFA4E9915C1F3646C0159B727760A0247D2ACC578E96E235C8C569A0DDDAD0E8E65B1B75E194903A562DD6A51862B128FCAA8B79CC093B9B3EB55D62669390C315124C8E5B6E5FFED2644CB20E7DAB2EFAF45CB6D43863E956C94F2C86038AE7E639BBF93D6A612E834BA9BDA6C726DDA1B033D6B50799171B4FD6B12DA4F940E7356D2FDA27C392456CB52AF226BAB9742158633566D1D5D46587D33542EE54B8883E7F3AA705CEE72AA7A53B341AB3AE8AD639970C462ABDDE851C8A7691F9D621BD9E08CB2B9AA6BE2AB889CA1E68F7591CB27B1ABFD8D35B31113633E94D924B8B71F30C91505A7884C9303236DCD5DBCBA49632EA3F1C54CA2839ADF114B7BDD3EE75E9556E6D955B72F5A8E4BC68C9C1205471EA11BB61DB9A6B5D8D3D0B3672132F96091EB5A0230FC1C567DA812CDF20AD78230BC3F5349BE84912DB32A9F28601EB8A85AD2E300E188AD62040A1997E53DEAF453C0F0E3159B972EEC96D9CABA80D87419EF542482396751C6DAE9B52B78D90B2FA5721347379ADE5E7835709A975358CB42DCB6688BC0CD2E9FA38BEBAF2FA5374F7B933A24CA48ADB7DD63751CF1E013D45689A5A89BBAD027F0A9B605831FCEA93C06252003915D10D57ED1101228CD53B82AD1B00A39ACDD5F7AC8CE329276673E0962771E86AE5A148C83EB55E580A316CF14D8DD54F2DC8AB5A9B5EE8DF836AB83EB5667B958E3318C7358ABA846F10552430EF42CB2C8F907358A7A9935A9A5C51553F7D455E8216F2EFED69B631D7AD57B6D3C004B7D69D6BB221F37DEABF1B8671E95CCE72BD81DD10A591C12AB9A7432BD94DBD49535D0C4B0A44A4E39ACCD412170769E6B452E55AB1467DCBABAACB7511C31248C5737AA09048793935622B892D14EDE955A69FED321663CD369BD4D144A36C1CB1FAD6AC70078F9F4A448A30A08EBDEACA1D98E38A9926C4D36CA31D9E6E39E055E4B252DC638EB4F65DC3280D32396446C9527156B468228936A47301C51792AB21553CD559655793207CD55E49D95B04F1594E3CD2B8ED7654B942F2E064D53689E36E322B5ADC2BCA180C9A59ADB73E76D752D2C5B9AB5834FB759E125BA8ABE34C5F2F2A4EFA9349B7467D8DC29AD868BCA976AE0FA62AF97988B5CC48B4D65187E79A827D38EE2D818AE8DA40CBE591F3E6A94CA3241EB495149DC6A36336CEC8447918CD597D263BA67E30C3BD2EF6538C7152A5C98C71C735A72A2D2221A4C22DF3BF2CBC62991DA26EC6C07356D672D9269B905B766928AB87290CD6A122FDD281EB541ED8B5B971F7C1ADADCACB86EF4A60DB0384C1CF7A5288389C75C9740C08AC7B65F36F0B01CD7577763210DEF5434ED2985D0C9EF9359C29EA2B5916EDAC4F925C8ACABB53BDB03A1AED2E16386D9109038E6B16F6C53C82EB839E6A9AB3B2239AC732C6428474150AA10FB831CD59955951C01D3D2A8C32319B695EF47A976D0DB8EE11ADB6375C77EF5913D982ECE077AD04B56900299CD25D42D145F364543D04B429D95B34B3A8C702BA395521B72319207E55574844C827F33526A6C76944E7F1A3DAAD8C9EE60CECD3CCCABD3352DB6932CAF902AC5BAC71924AFCDDEB560BD10E0AA8349CE2B52AF61B636C6C9C6EC669D7377E5DC8C83F85477372D2CEADF773E956D34E33A891B26A14B9DE84DC94DE35D43B1B9514F556823DE0E57D2A54B68618BE7C0A85D034676B647A66954A4DEA3BDF42BDEEA48C87E604F4C547A67D9DCB3BEDC9AC2D464F2E723DEA6D2A744219C9AB8538D8D251B2D0E99AD637914C6A1467A8AB9259C2B18691C961D05627DBB3CC44E451F6C9193E673549A5A196ACD19A38946500CD352DA475201E2AB40E1F0ACC6AF21D831BA9B485668C5BDB768D8824D67BA6D5F97926BB982D2DEE53E7C13552EF4681918A6030E6A13B32E3516C72F6F03860D5B5630A632E696D523F99187DDEB556EA5584B18891533B3D86F5357F73ED45733FDA12FA9A2B3E590CBF359B862C87233D33562CD18BED6EB5316690E01A72DB9116F1C3A9A728F32D09E5722D943B3058D51B9DD8386E95777F99B54919AA9771321C9E86B9D51A97BB25C1A3325B97DBB48C7BD2C76CD2464FE35604119F99A9AF3345809D2BBA3A2D4AE633DA796D9FE66CAE6B7F4CBCB59E20ACC035511686E46E3CD67C96A6090ECC839A57426EE75933C16F1EE0C0E6AAC2CB2877ED585FE912A85DC58569D9C86280A91CD24D028D86BEC0EC4F18AA93B46C6A697A9383CD5616E5B712322A22A4DEA5242D8DC86970BDAB7A2113A8F33A5615BDB7D9F2E0633561EE5963F95B9AEB514D072B66A4A8D6CC190E54F7A924BD668D76707B9CD64457F205C3F407A521BB5572C01287B568A362E31B1A323C8C3218E6A3599C1C30CD555BF848C6E3F4A6C9768065723DE997A17DEF220B8D8775536B9DD9DBC7D6A9BDFC4CA42805AA9BDD10D90314981BB0EA007CB260E6A7F396442ABC5728D7FF00360D588AFBD09A561A67422E0960B9EB57E1B9C46C871D38AE6C5E062A33CD68C528F2FB9CD00CB129F3140CD374F0B6F3EE6E6A16DDD4A9C52A44DC3026AA3125D993DE5C0964EF8ACF98B08CAA9F94F5AB6F3281B5D727B544CC9B71851DEB1941AD4CEDA98D6F6A669FCB23A9AB575E1F6800655F7A96DF6A5F06CF02BA976436E0AAEE5C7358D476444A4E2CE26D1CC5742274F6AB3AD08CC6BB7AD695C450ADD799803158DA94827B95588E547A53BA71D071D5DCA7179912E5692499D949639ABC96B3B20C8FA5413D932AE76F1DEA1A57D43DD331AE0A9E8685D40E7183C569A58C663CB019354E4B2891C9E0FB5528402C9920BA2CE84D7456D76E6DD4E722B9868589181C0AE86C7E6B45E3A75AA518AD899C52D892EA4927C04C8A6AC1288F68E49AB65D7002819A05EAC71153B7352A69BB5C13387D4D1D2E595877A742AE60E335AB7C90CD3B3BE3F0A8C08D13E515527CAB4346F41D618119127DEED560A2B37CB9CD55F30120E3A55FB650CB90C302B35EF6E28F7258230A320E0D48E431081C934AD6EC5320E0D5531C88C5F18C77AA9241A1665BC6B7503730FC6922BE91F80C4E7D6B3A676B97C67914F84CB6FCB722A254D5AEC4D2DD13B993CEC86C64D5B96CA0FB296763BCF3C9ACB9EE5DDC6D1CD598A5775646C9C8A70DAC540A3F668BD28AB3E437A51556197B732AAC8B9CFA55D82E01521D4E2AB6F884BB4B023AE28B8B901B3101C534AC692D116248E6077203C552B896565C30E95AD67741A221F9CF634CBC48CA80075A72764649B7B9908588C126A786C9A51C8357E1B153B5B2055CDEB1FCA00E3BD73CA49194AD7D0A696A208F7303557EC4B71B9B774E79AB5784C876A9E3DAB2E795ADFF00D5B93EA694277DC493420CDBCA3D055BF314AEEC0F7ACAF3CCC0E7AFAD2FEF5149C9C56D08F565A4CD433DBFDE6C715526BA46E231C565C92396DB9A74730036F1EF5718F315187565F92E95A0DA383545A6656E738A9B642E99DDCD5770002324D6E958D50EF3D4F73BAA19AE004E324D4582BCE0E2A5B785E66F9467DAA9B2922012CACDF22D38C7339F989C62BA1B4D19E5C1740056849A6C76F09017E63EB52E48AE4672D145B23C18FF001A69B6791BD05755168AC2332CA98CF4A41A67CFB767068E743F6672CDA4B93D31DF34F82D4893CBC64D75CFA76C83762AAB69C194346B86CD1CE907B3673973692C278CB77A75BDCB8187C8C5744D6DF26D65E6B3EE74E27E64068B8B95A245BC32205660C076A74775B1FE539F6ACA8F10BED93E5E7A9ABC8B1AB874915891D335A42572251B16819267DF8E2A5B9B450AB2EE04E3A556FB4242B82E0F3D05496D70970CC9B80AA6AE40D8EDF2C0E2B52D98AA6D3D2991A94E3A8C52991924031C573D4A69E8C4E2A454BE4FDDB1DA473D6B374C8152E8B4A720FAD744CA254C11D6A9358A46FBB0466B250E4D81C34099E3DC020E3B552BB05A3CF4C7EB53CAA911C83546EA767C8403A566D36EECC54599D25DB2B150B93515BC325CC9B9860D5C8E04542F20C93E950DA4DB2EB6ED20138AA8D9152565A0DB89A4B63B0A023D6B4B4B94B0C30C034F9ADA39143639F7AA858C120028751DEC4AD51AAC5564C564EA4CC9C21EB5656662A49C566DD4A5C905AB0517CF72E31B156490CA154F63CD4F2288E2071DA99A7C22691BDAB4DA05D9B08AE89AD2E5E864A4FE648136F06B4576C2005E491F95361B758B7B6DEDD69801E48E953CD6417E84E2F1C0C9EC6A49AE32A03E3E6AA139022CF3C551696675C163B6886A4346D048E32240C29D713F98BE5A8AC74B870A16ADC722AA6E6355E424996EDC2C52A34C702AD5CBC6CCA6D5867BE2B026BB695F686E2A7B6B8168C19BB534ADAA2D2B6A6879777E868A3FB757DE8A9B95CCC65C6C0BC3F3E951DADC046C120D51B82D34C719A7DBC522B6D23AD28EA42379278D88C707FBBEB561DDB2A7F86A85AC1BA3E7822AD96963B6E4657349A7DC4CB4976ACB81F7AABDC5EEC1822A0B7FDEC873C1A5B86C29561C7AD60A9F33B9318A6C8DAF5A58C8E54F6AAA632E32DCD4E20E3746777B51BFE5DA7835A72EBB1725D88EDADCB4D82BC568C962E230A0706ABC44A0DF91ED514DAC3C64C790D55EF3D8145943508D6038EFDEB29E71D3356350BB32C9B9F8AC992652DEB5D34E324B52D16C5CB03C3714E5B87638DC6B3C4A49C2D741A26912DDC8AECBC6456927646905763EC6C27BB208C81FCEBB2D2B458A3452C70DEF5ABA5688B0C6A5900E2B623B4883636573CEA763A141257328411C2DB63F9A4F6153DA69524D3F9938DA17A0ADA8ACE2DC0E02B763530B69B3F2B67EB4E226CCD92C2338500D41269C106702B7D2DC8FBDD695ED948E141A56EA2E6B1CDC9684C2C0293590D13C1303B322BB0962238C62B2A7832C72A0D4DEC5C59962D96E172AA03546B6BE54BB64515AB1DB37F0260D366B5B8917E64C01DEA9484EC72FABE8AB3A99235DAF5CCB5A5C45294319E3B8AF4E8ECCCABB0E73E9505CE8411BCCD8369E0D3E66B506A2CF2CBB9658F77CA476E6A2D2F5065BA0AE786AED756D054C6CC16B85FB3FD97515ED835B52AB77631AB4D257476D6D778552B82BDEAE6E571C9EBDAB9E8E42846D3F291E95A105C212037CBEF5B4B7325B1A6C372FC840351B1900C32803D69A170BC37068705700B641ACDAB8CAF2C2A7276E47A8A8E3D3FCC6CEDE2A612491B7CAD91E86AF59B317E71CFA56328E867233E5B38A35D8F8ACEB98A2421971C56F6A2A255D8A0EFAE72E20624A93CFA563CCCCD223379BB807DAA1B857765614490889727AD3332B61BF8455246D106326CC7355C2160D91CD69B3C49065BA9150C4D1648C8E6AB9496EC54D343453E08E0D74712C4E9BB1F38ACF8AD148DEB5AB6691B47F370450E2D99F35CAD2C024538C5575B144255CF5E956EE06C63B18E2AB08DE7942E6A5C4D23A14AEADC46A4679ED59E96D2313806BA7B9D2D9234773C1E2AACEB1C0032E188A2324129186D6CCBF29C64D2ADA4F2360A9DB5D3E916505C48269CAE3D2B62F21B18E12576F029BBA5733F69AD91E6D7567244F95EB54A49645386E6BA2D52E944C4200547A561CB8B8B90AAB834A1293D0A23F347A5157BFB2DE8ABB05CB89B5183704D58FB42291C0A80C0FB37015098E40DCF4AE74E4D917B9A915D38195ABD6F722E0B213C1AC7806EE054920922F993838F5AD05CA7450C36EA30CCABDEAB5EF922220373DAB005DDC96C3EE22A691DA58B38E40A4D7612BDC48EE1E198004804D5D96781828380DEB58A66F9F6B1A90C2EE0143BAAA37364EDB9A6C437CA1B8C5625DA94909FD6AEC70DC6D2C3B555BE98888EF5C1E9546AA57463DC5CE060F35577296CE2A39DF32127A669605324800AD5099B5A1E98DA85CAA81800E7EB5EABA35847668A020181C9AC4F09E9BE4D9F9BB704E2BB0B6882F240AC6ACBA1D34A3A5CB91A2923157618323A55584027815A9011C035314549E83A28005E477AB4A836F3D0530B85028F313D79AD0C58FC2FB52140698641C62977D17158AF3C391C0AA52DA16E475AD5CE47423EB5132AD4B452958CA587675AB7188DE3DA466A492253D7AD45B769C0CE292299524B4757DC838CD5F5459622ACBB4E3AD4B16D03E6A4930A32381552D89673DA95A654A91915E5FE24B236D73E6A8EF5ECB76A92C5B8726BCF7C5967BA0638ACE32E59A364EF139BB7937DB2483A8EB56D0A91BBB562691721247B5978049C569C5B95B693F4AED4EFA9CB6B5CD9B36F308849F97D6A676F2D8A13C67AD65412295250FCC0F35712549464FE34D88B4E8AEA1F2A40A9ADE5546C0C0A8E2CAA6DFE135048460B2B104563376224AE8B97775E58E3696AE7EE44D2C8641F77393537DB064890671ED55E7D5146026467B62B06AFB1118114872BF30AA77137969B7B5692CB1CB1E4F5F7E2A19ED22788B6FE7146A8B5646499BCD5C134D96711C8857823355F3E4CC71D8D4371234F28F6A7177645EE741A7EA1BA250E01607D6B5A3B98719FBA3B8AE72D60912D7BE0D59198EDF1CE4D69715936695D5CA09032F4A6B5F2C255947CB594B704B61C6714F7963F2F6FDE27B54295F41E8F437354D7239AC9638C7CF8C573F2BCCF116C9AB165664B07704A9ED8ADD9B4FB76B3255467152ED129B5B1C8C5AADDC0C5558A0A9CDF5D5D11BE4622AC4BA7066248E29F6B6055B38E2AE3A912496A52BD2CB092413C77ACAB462D72BF5AE9754548AD082064D62E9702CB71803BD3F2426EE8DADF27A0A2AC7D968ACB9591CC3E7223B7DB815451C73BB18AB1A9DEC1E52953838AC579B3CAB1E6AA9C6E99A289A913C692E5783FCEAF3AACF1650FCDE95CF5A095E655EC7BD742B6EF0C40E4F22869A15ACCA6B2794C5644EF56522329DA8BD69D25A79E8181C11CF34A924B0018619142B0A450BDD16757F342E02D5AB29A282DBF7806E15249AA5CCDF2390474AA4EB1B0209009AB5E434EFB8B35CF9CC7C9231DEB0F532CB192CC6BA3B6B48BCA2432D61788D045B54107E94752A32B3B1CCB37CDF8D6AE8B6C66BA45C719ACA55264FC6BABF0C460DEA2F15ABD8D23AB3D474E8560B08D40E702AEA4A138A8A00AB0A81E82A46C2906B8A4FDE3BE0B42FDBCC091DAB4E3689B18E4FD6B9D490F9838ABF048E7A71FD6AE2C528E86D87555C6051E728FE1AA7E6BEC2314CDCDD4E6AB98CB94BA6507B6293CDC1AA8920CF5A93706E7AD170B16FCCC8EA0D2EF045552572300D264E0ED6E68B8B94B0D8269A63C722ABE64F5A9E370461A80155493C83C539B19E4FCB4E041E94E2A08CF7A64B6529E2C2E54900D727E27847D89CF5E3AD76D291B086F4AE23C4EC3C860A3039AC9EE6B06790DC86B7BD2CBEB5B505D89163627B62B1EF97FD218FB9A7DA4C231B4F7AEE83F74E79FC46FA38864DE3BD5817217A8F94D6525CE70AC06DA9B398D81E0F51CF5A7703A28240F08208C531B19259B8ACFD3AE03ED04F03B55FB84E772E4715135A0B72BCD0C2E8581E7D2B31E0323E5578156AE498C03B855BD205BDC4A51DF69358A8DC87EEA334C68A00CE0D55B966F2C85735D1EBBA5476E9E6023047506B023884AA71DAB3D6E4395D188B03B31269D159BC936D4FBD56675314D800D6DF8634F59EFC3C99C63D2B5859937B17346B1FDC9132FCA0537508228C1DA38AEBAF2D2381408FD2B95D619605209049ED512776445BB9CBDC154738A20864790360919A956D6495BCC6076F5AD2B19D213B24033DB8A4BB94E5627B67380AC9C0AD88648EE144298DC7B5436F61F6C24C446719A4B4B57B3BECCBC91D2A92BBD494EE6AC3A246C374A99AA77F6B6B6CB88D9777A54FA8EBC218B6469838EB5CCCB70F3167DDC934E52E9140AEF723BFD3E5BBC2A679A974FD064B16F35C7CB52E9D2CCB38671951D2B4EFF5192E13CB44EDD850A492F31B6F62BED5A2A879973FDD6A298F90E7EEE19DA62190E054304644815860679AEA9A58A4C9603BD65496A5E5668CE067349688A726CB2628618D5D480702A7374644209E08ED589E63F9DE5BE4807D6B4D140404F031533936856688A5BCF24901B27D2A0FB7BC8D8CD3AE56262486E6ABC76E9E670DEF59C65706D1604E54E48CF155637325C373C7A5687D9D4AF079C5662829767033DAB483D471B17E3F354923381589AE4EF2C801F4AE8D166588E14F35CE6B21837CC3BD34EECB49190A36F23AD759E1019BE5245721BBE6AEB7C1F9FB58AD65B1A53F88F558581451ED53E323A66AADB65D40C7402B5218B29CD72B5A9DA9E85711924718AB3146C185598E25C0C8AB0B1467A641A690390D8D4EDA76187503153793B704B7148E140ABB195C88804F414F11061C669E3611CF4A95546383C50D03643B481F4A00DDCED3563691CE38A51186E84D1626E43B72285524E31563CAC53845F2FCBD68B09B1A8B814E39DC33D2906E51C8A6BC831EF49E84EE457526D8DAB80F1348595F9AED6EE4DC0F3DAB84F123633F35657D4DE11B23CE6EC1F349F7AA8C4A1AB53CA12E1870431FCAA29143A647D2BBE3F09CD3DC9619C48A39E455DF30B6DF6AC44631B95CF35A30DC00016FA53BDC9BEA5B8AE4DA5D29CFCA4D750255BBB74F9C7CA3A5724CCB2C647F10E455DB1BA2B11049E38A7D2C1D6E69DCAAFDD65C1EC6A28ADCC6E0C6793CD06556B439FBE3A525A09656E338FA573ECCCEA3BA26BB13DD204691B155E087ECD2056E56B65ACC0803375C566C8CE84AE32B59CD58C6EED6257D36DEE50B20F9B19A7E828F6D7251CE3078A642DB10B21C1EF50DCDE155C29018F7A8836B7295DAB1D3EB1AC456F005420B918AE61ED64BA93CDB83C7500D4B676C5D84B33167EB52DEDCC61B2E4285C5529C6E28AB6887C761E62055191493E80EC85829FCE922F135940A149C9AA5A878B5DDB6C3F76B4959A128C9B24B3B9B9D326C07185EC69B79AEB4D2176DA081DAB0E6BF9EF5B209269D059967CCA719ACDBBB4996A296E4B25E4978F8C607AD6843A7CDE4072C31491DAA478D9926B562B59DA1C6D38C5689240D896AD1A42438E7A50EC76EE518155CE612CAE87DA98B787695DB85A57438F2963268AADF686F43456856860DCDD3A12AAB5556E6743C77AD59ED04EA19579A3EC8890012280E2B2725B13B19A03CAFB80FAD6BC65362AB119231562C96048BE60A6A2BD8D2393318032334F634E533F518360DCA6B31657F3319ABF79B9F02AB08B0C38A99596C4CAC5BB7959577134968565BCCF39A57888849C76ACA8E768E62C38E68845DEE36F4D0EF1A4416DB7603C75AE27C472A99004E9CE6ADC7AC481705B8E959DAA8F363F36B6EA440C2DDCD767E0C4DD705BD057143FD67E35E81E0E84A5B4929C512D8DE9EE7A2E9E381C8AD512855183CD734FAB5BDB5A1669141AE7DFC632AB9556C8278ACA316CEA7247A38B84DBC9E6A51729B7E53CD79D43E2C42A3CC3DFB56841E248266187C53706851699DAFDBC0C0269C6E430CE6B9A8AF965F995B35762B8053AD45CD390D7370B8E0D3D6EF6E39AC7330084E6AADC5F794B90C29F30721D543A820387008AB6972ADC8C62BCF64F10245D7B5363F1C47136C54E7E956B53294123D2448A48CE29E5D3036D79FC7E388FAB01F80AD2B3F175ADC4806E20FA62AB9198B3AC6C483E955245E0F3525B5CA4F1074C1434E9C284C8EF594D148C99DB927AD71BE2880F905D4735D9CCB96AE7B5D80496E466B15B9D1077D0F1BBC6DB31F5CD2472E633CD4BADC5E55D371DCD66C521DD8AEE84AF1396A46D22590E79CF7A911CB601AAE18799CD5948CB26F5ED5713365B824CB6DCD6B5B44CC9951F5AE7E094C72EEEF9ADDB2BC68B8ED4DEC3B9BFA5588B985989E8718ABD15BA40C471C1AC7B5D53C8C90719ED9A8A6D4E691C9407AD60DEA6351366FCCDE6C7807AD312D944641048354B4EBD5C137008AD09358D3A043FBCCB63A62B29DCC9292322F627B7CB6085359E268CA36E3CD5E9EECEA329C2ED8FD6A196DA3007CA3FC694636344C34E9C87EA76D1AB6658B282AD5A5BA8889C628B9B77751B7915A3F215ECCE4BECAE492734F485470D9CD6E3DA10A485E7BD55F257761C629DC398A91AB2E36AD5A57651F32D3F7AC4C002314F6B88F1F32D165226FA9ABA2CD6CF28FB4BAA80323353EA5E29B485FECF6C77638F6AE36F2E70488883ED59E209C9DDD3273D69ABEC8B51BEACEE23D4639FAE327DAAC1781622300135CDE92AE0A863CD6EBDB9700F145AC4CA36D887CE4F514527D98FB5145905988F2B464C4AB91EBD6A41242C3F7C08C0AAB6B7F1C8833CF4EB566568A588F2A2B994A5CDB1ADECCCD96E5239B0A4E0F4A11A498FCDBBDB351EF84C8720707A8AD884C3E41231D2B66FA96E7745286D55C1DC3F3AAB7D1796408D7A56BC5776E8C54A8A86E5E3954BC2B9352DE974427E46349741632AF58ACE59C91D335A97D04810BB022B2E18998B71DE9C1B7B8D8E50491497DBD21193907B5685B593C8724702A1D5D5447803A56B7222B539F8577495EA1A1DA08BC3DB80E4AD79CD943BEE1411C135EC36368174A8579E528A8ED13A68ABB3909EDA7B96DA1B8069B1E813CADFCAB56F675B095FA6DACA3E21BB95F16EA06DEF8AC94B4D0EA715BB245F0DDC2B649E2A78F4A7894E4D64C9AE6A46522491B1E9535AEA577231605CEDEB4ED2EE28B8DCDDB69A4B7214E715D0D94A5D41DD5C82EA066FBCBC8AECFC390C77606E27A54289AB6922E3E5A3C62B0AF0BABB0CF15DBDC58A2C4401F376AE17577F225209E01359BBDC70926664B6AF364AB73541B45BA66383C1AB8FAA0897E414C4D76784190852BE98AB8B904A2ADA91DBF87EF18EDCB63EB5B369A05CC3872C4629B61E35B1120134657B64575763AB69D7F16619E324FF0E79AD54A68C1A453B0BFBDB2611B0252BA0B6D44DC2E0F07D2A9EC8DCF18C7B52888472020D4CA57DC9E54693F2BF5ACEBE80342D91D41AD18A32F1D3258098C8AC648A83B3B1E29E2CB4F2E72C076AE5617C3107D6BD3FC6DA7010170066BCBA41B24603AD6F41F433AEBA96650032903AD4F0C8108C0F97BD546626119A9607DC361AE9473962E061D5D7BD68C522B468EA7E6C63158AE5973CF15A1A6481CED6E68DD033650AE0165AB9E746231B1067E95527B7D90A9539C8E94EB79BCB2A64C62B06FA112B9A56E629A3FDE802B3DACE396F7098C54F3324D8308C1F6A8D7313E4F5A4C8499AD1086D6DC97C71D2B0752D5CE0AC63BD43A8DE3BB050E71543CA675DC4E693BC89B5B52C41AD5D29C6EE2B734DD51E76D920CD61AD81316E009A92CA66B594920FA53D85A48EA9191DC1000CF5AA1AE4512425D080D4DB3959994E71CF4357EFE08E5B262402F4360B738396E9C3632473D6ADDBCDE647F33738A82EA02588C703354B7340E00E9445E853D49963792EB70048CD757696493C284A7207A553D20DB940D2804E4D74B697766B6C4719DB4F9EC3DCC75B6F2674DAB85E7352CBAB476E183AF4E0536EF528A1763D49E95837024BB98CBB4EDA1C9D8125D4D2FEDE4FEE1A2B33ECCBFDDA2A39E44DC5D3EE905B608E69F24DBC1C122B3B4EF99B67BD6FC5A7A98F737A56AEC916DEA51B4684B00EDCFBD6BC422C6E57AC86B0227053A66AD2C0F10AE6946EEE989E85D314326777E753C30C59D8879ACE8EE0C6D89055C8E51B83464D3517D589C9B35AD34886F4324CD818ACCBBD0E0B6B82B110C2AEC372C9C96238AAB7774EED88D4F3DEA95A2AE0AFD4ACF6E026D8D79359379A74922152BEF5B28B703E6DADF9536E27916221929C67760A4D3395B0B60B7F146C3AB7F5AF63B58BFD123451FC02BC9AC72DAAC5D3EF67F5AF65B44DB0464A8E9FD2AAAEC76D2393F1068C2460CC00CFA56041606DA40CAB9FC2BD13514496221B1815CADC4524521F2CE07D2B04ECCEB4935631DF4CB79E4DEC594F702ACA410409E5A29FA9A9F32370596A486105BA64D69CED96A9A4578AD1031D8BC9AEEBC2762523F308E6B06DED871C576FA045B213C55C4C6AE88BB7A0242186738E78AF3DD62106779186466BD22F08303645729A85A09413818AC5AD428B3CFA4B5865930475AD28E087EC6D6EC830C382474ABF71A41C33AEDAAA85E066478C30FA552925A1BD948E7D7C3F2BCDC6D31E73E957CE872295368591C742A6B76136DC168F04D6DDA4B0C6A36A63F0A7CFA19B82462593EB5628A278CC9181D475C574B6334572A1991B3DC55986412021C02A6AC5AD9C6242C00C54F35CCDB45DB70021DAA454AD1A953BB19C539612B8C74A47F93A9A662B7389F195BA9D36463DABC5E5B60D33807B935EE3E3260DA5C871D01AF16639B87FA9AAA1F132AAFC2527502323D38A62F038AB724259B6A8E4D4B3696F05AF9A7D6B6E6E531507B99ECFB9866B63478774BB82922B12089A4B80067AD75D6509B6851BA1AAE6B2B994DD8BD28560303040AC998912E01EA6ADEA179E4A1914FCC6A85990F3AB39E7AD63BBB99B6CDBD3A248C02DB73D79AB570226383B72476AAF2C0C63DC848E2B35BCF59482D4E4D1317AEA367B54766D8DCE69608140C375A622C9B89EBCD499937671ED4B9ACAC8D7DD7A166DE748D8A374E956D6CA1964040CE6B14C4DE76EDC6B66D6E502283F7871445BEA65285B635A3B38E350CAAA4FF002A8EEC85B73BB8152C775184F988CE2A86A574AF1158EA657212BB32A45888271DEB15ADBED5A8AC682BA7D3ADE29C32CB8CD3A5D3ADED65330602B48C6CAECBBDB42A3686F6D0AB039518CFB56749712425922C9E6B426D5AE6E0F916E3776E2A0B5B77B7B80D71839EA0D26B504C86CAD8DC4FE65C723D0D744915B184200A3FAD54B811050D1E071DAA92CD9629B88A69AD85ABD4D3FB241E94550C9FEF8A29F2B118506DB7D44291C66BA0F343FCA84D606B16CD6F7C3070D9C839AE93C3568B704194E57BD6525CCAE99ACAD6B95FED5144D86EB532DC4521E718A8BC4DA415B906D7A1A4B3D39D61065C6462B073E5DD99BB3572C9B48AE40C114C5B296DE71B7EED2A03149B51BF2AB5733B247B7B915BD3926AF61C5142EAF5623B0E334EB1BE8A4750DB6AAC5A736A321264DA474A53626D9FCBDDC8EF435D472B743A412C463F9596A85DB2796722AB448D1AE77B545216964F2E3059BE953ECECEF72229DCCBB450BAC42303064AF558E42EA8071800579A0865B6D4626923C7CF5E97A76C90A96E3815ABD51E951562DA42B37CAEB9AAB73A1A15DC09FA56E46B1F04629D2BA04CFE1C566E28D949A6714DA118E419E41A93FB3960E5579AE8E7542735937F751AC78192C0E2935D8D549C886D606320CF4CD769A745E5C2081DAB9AD22279232EDC1ED5D0DB3E3E5C90075AD228C2A6A5B9D4B21E2B2DA0DC4A915B51912C657AD665D388652306A651D49837B23365B1562700F359373A4488C5D5777B5740B751BF01B0476A9136B9EC6A394B8CDA7A9CA476AEADF3427F2AD0B7B47E8A315B86DD09CD4F1C0AA320668E52A552E5382D9940C9AB918DAC2A50BB79DB4D7007238354A36326EE5A497E5C71515C302BDAAB87DA41A599B70E4F18A5222C71FE2E971A748993CE6BC8645FDFE71DEBD6FC5481EDD80AF3C96C4CF791A4606E634E8E8CDAA6B12ADADBBC9280172C6AFEA91EDB44B7C727935B7169B16991FCD9F37191C573DAADC19261DBB7D6AD7BD2B035681976B6DE5DDA903EB5D0C9708D0E075C556B586230EE7F4A259A2887CA9F9D762C3F32D59E64DEA654C6479CAB7DDABB6DB565527B542D7B1AB92235CFD2946A2A7A2283F4A6B0CBB90DB3A269649200B10C71D6B224F32390BB118CF355FF00B5E651B54002A95CDE4B28249C544B0DAEE091B56F79BC96500A8EB4925CC3BB71183F5AADA5CF8B1313203939DD505E468FF75B9AE4A914A6921D8B8668DD81040A6BF1F3A1C9AA515B654E5A9F11789C863F2D1A6CD97177D19A56972EE3F78A49078AD48521B85C11B4FBD66DB95E08ABBBC323150722B4768A14A367A15AF3CCB29F117208ED593777D7370E626042D6879CDE7319074F5A45586497076E4D4295F60B2B5D9069B726D1B2137135A4C8F7AC1F183508B58C3E43015604DF67C00D9CD536DAB1056943C4DB1BE9493D8F96BE6E054F719970C3934C68EE658F6E702A146C3451DAFF00DEA2A7FB0CBFDF14555995CC52F104892B2BC67357F459674B5578F35CE5C82D0E58F4AD8F0F6A8B0DBB46C338EF4249C5A29EC6DCBA9FCF89796C77A8DAE5A75FDD8FCAAB3AC77731207279ABB6968D9C29AE78E1A3CD705156D45B28FCA23CCFBC6A4BF1163E56DC4D3DAC5A39B731F4A9560881CB64D74D95AC89725D0CFD3FE4663BB1CFAD2DD79724DF2BE5AB425D2E0B9C6D3B0FA834DFEC58A101F712477A9688D0AAF12CF0FC8DF30EA2B47C3B62A1CBBAE48AA73948082320D3AD3580AF8CFCA38A526AC26FB16FC4CF089A05014303E95A3A6DD80AA73D40AC6BE85F53B85911B2A8292199A371CFDDE0D28AD2E77E1A57D19DA477D85ED4F9750181CF38ED5CDA5F61339A25BEDCBF4A4D9DD1822FDD5F119C37E759F6D18BCBB0646C2039FAD645DDFEE6DABEBCD58B6129B7631B329EBF5A499A3492D0EC2D6ED47CA8460715785DAEE1F30C9AF348B5896DE628CE720FAD6ADB6B9E61C16357CFA1972DCF458AED76819ED53792B71CF1D2BCF26F108B751B4B31FEEAD59B3F1C4D9082D654038DC56872BAB19BA5AE86AEACAF6574083C1A75ADF1651C9CD433DE7F6B448C14AB01D4D663335BCBB318F7ACEFCA6C95D599D743759503357E1941ED5C95B5E1DA0135AF6D7A0601AA4CC674EC6D79AA0FB543704B29C7DEED51098491F140723BD36EE656B0D0ACE879E45207C2153C7BD4E0C6AB9279354EE1B61C8EF5160B9CF78890CB1E10F359BA568C14A5C3A80F9E09ADBBB8D64DACDD8E6B434F8E296D4A91F38E956B443E631357D126BAB8F3768F2C28C915E69AB301A9BC648C06C57B2EA9AA47A768770EE7E6DB851EF5E27A96E90B5C8CE4E4F4A745352B8E736E362486F52198275FAD5E9228E68F700B93CD7173DC4A2424B115D06937A5E1018E78AF5E8C94958F366ACC4B9B603381CD52F25D1B24715B1332C99C75ACD176D0C85641B97E954D244904922A0C0EB5116DE7048E69F3324AC6448CD440EE6E9822B1A92D0691D8E85A50BBB3241191583ACC12DBDE18FA30E98ABFE1DD65ED6EF6B1FDDF43536BE63B8BE5940C826BCE9AF7D32A1B98511B950090D814497722F5CFE35A4F7F147085118C8E2AA1F2E7380BC9A1C55EECB5143EC6F24DDB71F29AEAAC823465940E7AD73966A910208C1AD4B7B95806DDC0E7B0A26D35621B7B0DD460712EE8C7E5550432FE35B0CFE66D239AA57F7AD6ECA1A3C03DF15947B137E85495A50B8C9E2A9497B3C6F863C56CAA25CC41D3AE2B3AFAD7099C722B4B3409F4342C276914349C8C55A6B95DBB41AE7EDA7744DA4E055E42D210471EF4E49EE2B17BCCFF006A8AAD86F5A28BB1D8C5B987742703A543A432ABBAB1C735B32AC4B0383D40AC6B4B4737BB941C75E94E0BA1A43537E0DA0EF5FBD5D0E9F340B0F992B006B0E3511A2E7A77AC9BFBB9B7958C90BFCEADF61CA29A3AC9EE5667C093A5461A3EF2AFE75C8412C8CBF7883F5A9FC87671BA46C1F7ACECD333505DCEA4DE4710E25FCA8FED0338DAA73F53587F641115657DFED56243F67405090C0670686C1C2C1A807047E7D6A8C21919B3DE8176F2C803734970EE23F97BD652D46917ECEF6E2D4B387E08A920BBDEEC4E0B31C9C5645BC3249C1240357DADC5B9520F26AD2B235A2ECCD21758E2ABDE5E6C434C51BB1516A3183016F4ACDAB33D38CFDDB956DAEC49382D8C66BACB79635B6CF1C8AE0127DAC09EC6B7ACEF0B47D7802B7B2B58C5D46D8BA8D9896E4B463049CE45476D14B1B6CCB7AD5A86569266DA7A0A92CE546B96F348F4E2A792C3532C416F2160C5719EF8ADEB3D3E376024079154BCE894AAAB55F8EE4803239F5CD160E766EA5BC7145B500E9599A85B99790071518D4994633542E75B4809539C9A8942E5466D318B73E449B589E38AD9B3B95600F02B8CBCBF8E53E6838E6B4749BF5917839CD4AB9AB9268EDA1B8C0F94FF00F5EACF9F9231D6B1A0756C1CE0E2A74971C64F06998C91A9E696E07350CEC4A7D2A34942AE3A13DE846E092D95A7632910CA53CA663C6C527EB5C4C5E3B82CEFA5565638622BA7D5E71069372E3BAD7855F485AE5DB77539FD69C55E56279AD13ADF1278BE6D71F68F921FEEE7AD65ADD0680072DB7B573A2E0A8E4D4B1DF100A9F98574C22A2633A8E4497AD06415CE7356F4B6207CB5852CACD2138C73572C7526B66E06735D1467CBB984F53A5919B6E704D519E497BC7C7A91500D55E453DBE94D134B29DA58E2BA1C9321683D8EE1F7706A291B647B875A98293C67352CBA55C5C2828A0D6334DAD1149A441A7CD8739FAD684B74C4605525B19EDF968CFA74A9141046462B99C1ADCAD3702924AD9CD5CB742B8623A547BC2AF039A7472939C8A8B264B771B737059C761D2ACDAAACACA371CD549222E09C525ACC61941C74A5648967676B6E362E79E2AAEBF10B8B4215482BDEA1B5D4833AEE180055D9248EE3E4E81856334B7410D19CEE9D72D000AFC01C569CE3ED3092BCF154756B416AE181183CF152E9776A61298CB7A56B1775660D6B728450C827218719AD2F385BC38E334F74C3921304F35977DE6679E47A5269A29163ED87D28ACDDC7D28A5C84DCD57DA570FD0D32D716F29665C8ED50CE5A40D8FBBD45537BAC2ED1D4714FD0D9248E865BA8E540A005A82E6DA168490C09ACB8659188A9F05A4C39DB9A8B3B94D6822DB9119640302AEDAC4F3A74E955DC2DBA81BB39ABB6B7236809C57652C3CA68CA5A6C4AB68EBF7739A65CD94B36001CD5A8EF1A12491BA9FFDA99E8A0557D4F5D599B948CE1A3CB12F98EC063D4D45318E060D292C07A735A52DC99D4E7D2B25E768DC8DB91F4AD3D8462526D8B26BD69163C98B91EB5147AAAEA371B768423D29FF00D943506023B472C7BC60D6A587C3BD6F7ACF05BB08C0E778C7158D4925A686D4E37632370985EA6A6BA8BCFB5FBBDAA1311B4B931B8F9D4E1867BD5B0C366411F415C9257D51DD17A58E6934D677254720D483CEB4E0838AE974DB64999F70C9A7DDE991B823151CD62D462CE5E39897C062A0D5AC0500A4993DEADCBA4847195A174A63D8814F999A46921F05D148BE6396ED532EAB232ED0D8C5363D21C8E738FAD685AF877CD6C818E3D69DD87B24B76517BC729BB7F359B712195B2EC71ED5DA43E168800586E3E9573FE11BB768F1E50A96EC26A279B4685C61726B63C3F0C893312A719AD4D5741160DBD4000D49605228576804E79A77E6445ADA9B70E0ED0320D4E8CD14BEB8F5AA124E17E74E302A582569C641CD28A264CD38E4DEA4D3D5C9427B551590EC2A0F353C05CEE20135691949983E2CB9820D39D6462A5870335E2F772833B1073C9AF49F1B433EA372FE5E709D4579A5DDB4B0C8564520E68835733A89F2DCA8CF93499A423A8A4ED5D0998343B348A79A68A55EB4D12F62EDA49F3638AD783F79C2A804F1F5AC9B680BD743A7DB796A1CF6E4574C2E413C360EACACE302B44460600CD480B491866EC29AC78EB5D508D913262E767CC4861E8695AD6D6E8E0808DEA2AB34809C134F570A722938296E85B10CFA3CA9F34443AFD6A382C676932548C54D25F491FDDA6C5ACCB1B61C03587D5E170BB3456C1E58B6ECE7D6A8CBA3C8AF95CB1ADBB2BD8EEA2040C3549233104A9E9553C246DA13CCCE70C12C2E032E2B56DE2135BE3EEB0EF9A9D9525E1C65A9F0DAB44F946CA7A5727D56517B1AD396BA9CC5FACE5CA9762B9A8F4D97C89C120FF8D7417167BA7DAC0E0D674B65E54F90302B9FE16693E57B175AFA250011824542B6875062C1B03E9559ECA6940703E4156639A4B34C8CE3149CB52A14EFB8BFD89FEDD1517F6E37A515361F2C4CCB8B9C828A78AC79652B36735A0CBB989ACDBB5C4A2B4B10A57356D6F7080922A633995F7E7F2AC78812BC66B52CE3731924F15AD28733264EC3C312D97AD1B7701460D517288401D69CB36D239AF462AC8CEF735B79618A824CA026A386E033019A9E42A63CD53D808E19599B0B5E91E13F0025EC11DFEAABB53A845EF5E6F672A5A5F4533A078D64048C57B368FE23FED308226C46A00C7A579F8BA8E2B436A71B97EF6EF4EF0F43E5DA5A226070DB79AE52FF00C537B704A23ED435DB4E96B7B118E755607B9F5AE2F57F0FBD948CF02968739C8ED5E2CE72BDD9E861D42DA9C1EA01FED0663EBC9AA29787795CD74B7D67E64046391EB5CEC902C72AFCBCE7B575D19F32B0EAAB6A74361246B10C1F988AB52905723AD6645B52340A46F22B4162DD18607B734548D8AA4EE548D1EE262AED8029E51B7E232768A710501C734B1C8AAC33D2848D5A922731BC61586EC1AB56BE62C831DEA14767808C9C76AB1048410083ED43D04AEF737A1902AED2C326AE46EABC9F4AC5491B19E054DE7B607CC6A6F7225128788C19622532BDB3589A6C8B110642A42D74971207859A450CB8AE488FF4C3B09C6738AA8AB10DE96375904ADE60C00471835774CB6440DB8FCA6B0C4D24800185ADDB19018822F27BD5A443629288EC429273C55D8A7FB259C933272074AB16B63E69C9183D6A1D442888C3C302289691334EEEC7150DD25FDEC8FC7CCC462B3F5CF0EC5751332A618F435185934ED70A36423B035D8246B3DA29C673CD724A4E2D33AB953563C4351D2A7B4959194ED1596E841E7B57AFEB1A42CC8C760AF3FD574A680B10B819AE9A75948E5AB42DAA39D3D6A48C6E2291D486C1F5A9ED23324C00E95D91D4E57E66E69D688A9E6CA404519FAD4BFDAC5E5F2D5711E700D50BEBC202403E55039152D8797238661DFAE2BA69DDBB112D8E8ECA42CBC9C8238A95CE01A7585AE14BC4C590919A7DCC0D19DC075AEB6EC8C96E67C980D9A546E3AD4533104D3A26CF4A94CA1D2E31D2A94984E7DEAEB9F7E6B3EE7201A89E9A81A9A35D0572B9E6BA02D9C7BD7116371E55C29EDDEBB086457B7DE4F2456B195E24C85F2C87C8353AB9523D6ABF9C00EB406EFBAAEE27B1796542C19B069D2C304A47CAA0D54461D722964948E8C2B39422F742BB25FB2A98D9558153D8563DFD948AA5149C56825C957DC4D4D30F35432919AC658583D51B2AAD6871FF00607F4FD68AE9361FEE8A2B0FAAC85ED2272A8C0BA8CD56D4E0DB8615D04FA65AA0CA484375C564DFC32347B03647BD73CA94E1BA293445A6DAACC8377AD6CADB851B41381595636F342A1FF833C9ADC5002061C922BBA9455886EECAAD6418E7351BC088304E2ADB3B0ED8A89CF99C30AD9A0BD8AC235072AE2A4329098CE6A19ADCAF22A03BD7AD436348B3E70EC715D4784F5E82C6730CCCC164E03678CD71DD7AD1BB69E0FEB58D6829C6C5C25CACF775170504A8FF00BB23208A9D2F1CA947191EE2BCF3C1DE32FB3B2586A0FBA0230AE4F4AF459200D18922219586411E95E0D6A52A6F5D8EEA735232EE74FB79A5121F950F5FAD79E7896CA4B1BC2D18FDDB670457A549B92B9ED76CC5FD9B20C6E00D2A35395E86CEED58E174F9CB488ACDDFB9AEDACE2431005D79C5799CBE6DADE0472576B74AEEF492B25B23C848040C73D6BD071538DCC6327066B3DAC4A37D569238719C714FBC90AC2761E2A9DBDC128C3AFAD64A1637552E6C58470942AF8C91C55C5B38990945CE2B05660250C187B8AD887508635210E0B0E71DE9B57D84E7664896C4BE3A6298FD4853F38ED534371BD095EA7D6A85E86B7944D9E7EB53C9617B4B85D4C8B091BB63775F5AE7E62219074F9B9E2AEDE4A8C8E58FCE464563C9302E04A7EB54C85B9A1692ABCD920EDC62BAFD22CC7941C827BD723A647E6BE509C0AEE74E93CB87A718C552D889B7B1A2932DBA3A907A7158D74C19CB6339AD295D5A22188C1E959876997682BC9A97AB260ADA989E2AD1C1D262BD403CC8D8678ED468B26FB55049C915D46AD0097C3CE8573C1FE55C86920DBA053D3D3F1AC2BC2C6D4677BA2DDEDBEE0470735C8EB1A76F46E3D6BB794871C0AC3D4A3054822B960ECCDB7D0F1ED42D8C53E31DEB4344B5DCE1D8702AEEB56799F2077AB16A82DACC0EE6BDAC2EB13CEAF1B339FD56331DD31038CD2D949B4F1D7EB56F54C32EEC550B5C06539AE885D48C65B58EC74AD44C7180D90727F1AE863960BE4DA40DD8AE0E37654C8269D0EAB35BCA0876EB5D4A6B6662E2F7474D7FA25C14926890B44BD71DAB1A21B4F7F706BA3D1BC48242125230C3057D6B3B51B658AE9D9010AC77714AD67E452D7733E5E083546E4E50D5B98F6AA770DF2D4CC119EAE56503D6BACD32E0B44AA4F18C571CDF2C99AE8F49941500D3A2FA0A68DB9A2DC495CD428CCA08A59E59624132F207DEA549A1B840CBC377ADC91E64253E5EB5089F920919F4A93203E6ABDCA05F9F1498D0B3C984C818FA55AB1BD5C6D73594ECC53EF715145261B8A4A4368E9FCE8A8AC0F3CFA9A29F399EA2DC96490B0E5BB532175BB04E06E1D56AC5CC44AF4E958324D2595C8719C75ACDB49EA696B9AAB98E52840D87B527CE246447E319E7B52C57705C8560DB4E39A56C79B8539E29E9D0051BD47CCCA69BB8EEF5A949F9306A2240CE298C46208E8735149B4AFBD3C93EB4C23DA9302AB32AF5A85893C81C55A9222DD2AA1C86C7359BD4698190A0C8C83ED5D3E8DE3FD4B4987C80566847457ED5CC330C540C0139AC2AD252566691958F5ED3FC71A76A5B63B91F6798FBF04D694A524883C4C1D0F71DEBC2BCD646E718AD7D33C4B7BA71FDDCE4A7F718F15E6D5C1DB589D54EBD8E8FC51A72EFF3D5003D4D47A46A70344B1B3306048DB9A078B2CB5180C7748232C396C715CCDEA7D96E0CF6CE194F4C5141CA0B9648AA9696A8EE0CE6672A1F083A5430DEADB09233939EF5C8DBEBB2C60248D9FAF6AB49A9A49D5BA9AD9C5742633B1BF25C8DDF2373D6B474998CF3AAB9C81EF5CC2CE8C41DC315A5677AB1B7C87269452454A6D9DCAF951B9CB14502B135DD50074880C9C706B227D72701A109B95BBD436F135C4F991B24FAD0F508AEE3A6BA96755755391C5322B76B9B81BC633CD6BC16313A95CE0FB55882C80932B8C0359DCB26D32DBECE188AE82C5D9D1901C7154E3410A0210722AC5AE63752ADB726A5B605E28444559B355ADED59AE965CF02A66642FB4364F6AD5B18408C31037678AD69A727A9954972A1D7B1EFB09148CFCBFD2BCFE0320B865087258D7A16A2C2DF4D98F42578AE574F895E2DCCBB8939CFE35962878695F50112B4008FBF58D7EAD8208EF5AD793B5B4A06D18ACFBA2658B785C91C9C0AF3A3B9D870DAA427CC271D0D66CAF9C2E2AF6A57C93CCEAAAC36920D649396C8AF73091F76E79F887A95F506FDD609AA76AA4C9C8E2ADDEB6E8BA7350D98CB735D515EF1CACBFB711D509C1526B418E78C76AA338EB4E42432DEE9E271824735D6699A826A10FD9E46C31E15AB8C084FE75AFA5C7B2656DD8239ABA4DBD052EE5DBB8DE39D95D791D6A8CA320D7517B69F6FB40EA3F7CA3A7A8AE6A6050B291834E4ADA045DCC990624AD6D2D886AC8B804393EF5A1A6361C54D27EF0E5B1D746CAF16D7E878358B70AD67707A85ED5A2BB8C24AE7355E6FF4980A4872CA78ADE7DC843A0B95917AF38A573E6A94279ACCB690C52EC3D01EF5A2FC30751F29A39AE8A2165C82777355A173BF04E6A794104E41C1ACF12F9530FAD45ECC0D2C51507DB17D051556417357CC1247D727A62B2750B7DC086A9E29F3839C03524C8B22ED0738F5A53D50A3A1CEC2CD0BB01D29E9A8C90C993F30F4A7DCC451C37BD527526421BA1AC6ED6C568CD51AEDBB603A907BE29DFDB168064135CEDC5B98CE71C540A8C4F4A8F6D25D07CA8E99F5AB4C701B34875BB7DBF709AE7D2DD98F4A97EC6C474A3DA4FB072A35CEB909E361A60D46DE407276D63496AE8338AAEC0AF1DEA7DA496E87CA7426589FEEB8A61EB5802465EF532DD4ABFC4714FDAA61CACD475C026AB3B751512DF9E8DCFD69C2747EB8149B4C3541E66D14E4BB9138DC714A155FA114D680D4385C6A6C1E7F33918CD2C7395C7CD51FD9CF5A4284543A6D16A66DDB5D23200E79AD6B4BB44233820D7182529F74F7AD3B29DB1C1E4D672491A293675C648E49877E33F4ADAB78E310A61B935C85A19C306F2D8FD056DC573347183342E80F4256B26D23A237674410C2002460D4A2540030EA2B121BC0CE159CF357A0491E5DA8AC54F7A98C64D96D5B7353ED724AA14118AB11CEFF00280B91D2A1B6D0AEE739DE573D2BAAD2F40481559C6E3DCD6F1A2DEE73CEAA8AD0874FD3A494AB48319E40AE8A1B711A74E82A6860589460548548E4F4AD9251395C9C9985AC032C4D1E782318ACB48C5ADB796A3915AB7A7CCB82076AA1700918AF2B155799D91D9423631AED3CD42A57AD67F972A46CBB7E5ADA9532DD4563EA971E4C6C3763835CF057D0EBBE879F6B6228EFA4318C66B36340E7827352DFCFE6DD3F7E4D247D057D061E368A3CCAEEECA77A984C62996AA00A935166C0DD496C38FC2B68FC4623E438AA770C2ACCC39AA57272B8A52D0105BB03F9D6C592E58560DB311263DEB7ED932015393E9574D899D369F390007C83D07BD606B050DDB94C63BD684770D1424483031D7158973207958F6AAA9A931D0CBB81F355AB0E1C555B8FBF566CC7CE2A29FC5729EC7516CDF22F6FEB55A43E5CC5BDEA5B53F28A6DEA60835D3244752ADE20389579C8E7DAA5B790CB114CFCC071490B07568DFA76A822636D7015BA03C56696A038B49F7475AA13E77FCC2B56E474753C1E6B32E4926A665221DDEF45378F5A2A2E3B0B6975BC019AD249B74785AE7195ADA5C7419AD1827240A719BB5989A2EB849010E4038AC79F0B71B54E40ABB3390B935987972D9EF52D8D2349A1596D57039AAA2CB0DD2AF594A863DAD57D604C6477ABE55215CCE82CC63A55B16CA1718AB202A8C5073F855D905CA12DB8CF4ACABCB0201602BA3201ED50CB0864E959CE0A48699C7B4641C1A6ECAD9BCB20A4B28FAD6718F69E9DEB99C1A2EE57F2CD33054D5E45E6A536CAEA76F5A9E5BEC1733D642BDEA659E4ECD51CB6EC8DD2888956191446F7B0684E2694D059CF5AD182249541EF52FD90775AD7D9B1736A6384C9E3AD58B72D13061DAADBD88EA8706A1314B1F54CFBD672A65266F69DAE1876EFC7A74AEEB4CF1869F750C76B7D0C6D10C0CEDE6BCBAD844D2A87DC173CD76BA6F8562D46D966B4995BD549AE2AF4D257675529F31E816B61E1AB9512452C4A4F3826B5ADACF4B8F063B98BF3AF365F096A16E4928E57FD96AB96FE1F989CC9F6853F535CB1ADC9B48DDD252DD9EA96E2D1480B347F98AD289622BF248A47B5798DB786D8E31797087AFDEAD18ACB58D3C07B7BB13A8EAB9E456B0C759FBC632C2A7B33D15631B7819AA778EE91938C015CED97895DD845701E3940C618704D4936BB25CDC0B35030DC9239AE975A138E8CC3D84E2C936972493D6A19A2C9ABB1AF18EF54B59BFB6D32D1A79DC03D96BC89EB2D0EB87632751963B481A491C228AF34D7BC482E64686DFEE03827D699E21D7EE757B86C3110E4802B9C652A726BAF0D4B5BB1D47CB11B23664E4D588580C60D502C379E6A78CE08C1AF6E9E88F3A5B8CBD7DF2E3D296DD874A714F358B1A043B1F35496B72465C1C1AA531C8AB539F9AA9CC78A8982196E7F7AA2BA0B655DA0EE22B9C849F33F1ADCB4B8C300C323157498A46A4B21F24464E6B2A662091524B390F9538A8269038F7AB9058A731F9AADD983E62D5373FBC157EC465A9535A8337213802A69C6F8BF0AAEBC2D5946DC9B2BA1ED623632F2525AB457CC8BCC2318EF50DD2104E3AD32DAE4A12A4FCADD6B34FA0C987EF63233D2A85CAB2AF6AD1F2F69C8E954E751D73F5A52434CCEF9BDE8AB5B93D28A9E463B9527417306FC7CC38AAB03B44F83C76ABF0A18C119AA5347B27040ACEDADC0B1248596AA39F9AAC970630075AAA47CD431972DB35A08E42F5ACEB6EB8ABAA3156844A246CD58472C306AAA819A91060F5AD101688E29B8F6A11BDC5389CD31156484329C564DD5B146276F5ADDCF5A86689655DA475ACE51BA04CE6CA61AA589B69EB535D4062931DAA151CD64958A2CB42B32F4AAAF6786E054BE6ED1D6945D91D70687CA21F66851F15A3818ACD5B919E3BD594B918C1357192D80B45723A53367B0A12506A5041AB7A8109811CF400D58B3B9BBD39FCCB59DA3C1EC7834C2280D8ACA54949598D49A3BAD17E24490958755837A0E03A8E6BBCD3F54D3B568C3D9DCA1623EE9E08AF0D204CB8619F4AACB35EE9337996F23800E72A7A579B88C0C7747442B1F40CB34968DFE9280C47A3AD68C2209E2055B9238E2BC6349F8917210417E3CD8CF19EE05761E1FF11C32CCA239B742E72013D0D79F2C34E27429A92D0EC2EB498AEA32B26063906B0F4C8DAC755962B83BCA8F90FB574DBF741B8376C935C6EAD34906AC92924A9E2B08B7176358372D19D6ACEA096FE155CD79178A750B8D4F5290166F2D090057A4DBCC64D36E4AFDE20D713368ECEC5C8CF7AB8AF7B51C236B9C67D91DFF0086A9EA16C605C918AEE45924470C066B93F11B0F3C8EC2BB68CEF2B13517BB7399C64935246C77E2A3C839A72B00C2BD781E6CB72E400EE34F9411CE6A1824C93CD12BFCA6B4B928A739E4D5793EED3E46EB50BF295949DC63623F3F35AB07CB1EE159B0C409CD5DCEC4DB9EB4E1A0873C9C55779483448DC55566E69B9022CAB6F39AD8D3D30BBAB2ADA3DC335B16FF00200B9EB5AD3D0522E87EC7F0AB31310C2B399BE5EB53432E4806B45225A27BC8F90D8EB596D9563F5AD863BE1E7B74ACB9D08E693566345A85FCD50BD187EB55AF632AD9E9C5321728E1853EF24F341CFA54C9DD09197BA8A5D87D68AC79CBB0E49FCC3EF493AE4038AAF1FC8D56C90C83355B888542F9673D69850751526E0ADCF4A6C93C78C28E696831F6E486AB80E455280F39AB41B8AA4C44EAD8A432EDE6A2DD504AF95AA720B0F92F4AB706A68EF72464D663F5A6A9C1A853770E53A0122C801CD23120F159B6F332F19AB624E335AA62B0E9A359D318E6B16789A0739AD766E73514A1278F6B019159CA3D50D18CCE48A666AD4F68D19C8E45562A4562CAD0746DCD4BB88AAEA79A9450845B8A53BBAD5A496B39477A9D1C835A290AC682BE452D5647A943639ABBDC0941C1A9D595D0AB60A91554B6450B260E334D24F46056BDD3D95BCC8B91E9505A6A371652E55D9483D01AD98E55CFCC01AA57BA7097324630DD6B9AA51EA8D233B1E8DE14F88E0AA5AEA446CC001CF6AE875A962BBB6F3A13B97EF022BC0C33C2F8DC4106BA4D17C5171643C9918B43FDDAF32B61549DE3B9D34AAF2B3D87C2B74B730CB131CFB1AD0B9B550182815C4784B58886AEBB48DB276AF44BD40A770E8466B8AB46516AE7429A6EE721A85B6CDCD5E61AF49BEEA4FAD7AB6B122AC4E723A1AF22D6240F70F8F535D58357770AEFDC324D3148C9CD4990074A86461B4D7AFD0F349607DA4F3523BE54D5489AA72DFBBAA5B125673F3535BEED29FBD4D6A902584038C9A57399300D2C4BB62CD318F0698586BB13C522479393483AE6A78D7730A23AB132DDB21C8C55D71B306A2B74DAB9A9E400AD745AC840AF9142B957C8351C630DC7E353601EF420342DA4DE98FCEA1B98C60902A2B66DA460E3FAD5C9BE688FAD5BD50BA9963AE33529198EA26FBE454B1328E0F7ACDEC5329EDA2ADF934567CA519F243CE7DE81F77156582B74A81F1B48154F425155F1B8D47800E69C4FCF4A7150864B15585E955E3A9F3C55880B62A176A73B62A02D9349B18D6A5419348DD69E9D2A5012C6B8A90CD8E334C4CF34D78DBA81557603BCDE7AD065AACCA452648A5CC05F8E7523630C8351CB64AEBBE3E7DAAA6F3EB5621B8643D78A774F416A566B7653C8A6918AD5631DC0E4735566B465E40C8A4E361DCA60D4B19C734D68D8750C2914106A501695B9CD4A24C0AAAB4ACDC555EC05A128A52475AA1E61079353C72E451CD702D24841A9D27F7C8F4AA61C50DC8E2A930B12DC5AA4EA597EFD67342C8D91C1156966643D6A50D1CC3D5AB394131A6D1268FA84965748E0FDD35EFF00A2DFC5ADE8092464191061BF2AF9F0C07395EB5D7F81BC48FA3DF88266220938DB9EF5C389C3A9C4DA9CEC759E213E55ACB9CF4C5792EA0DBA53F5AF5AF126CD40C90D99591997762BC9B55825B6BA78E75DAE2B2C1C1C7E23A2BD44D19CEC40355A47F7AB123A95C0EB54646DCD8AF424CE22646A943E4D55071522373426038E771A7042EC053704B7D6AD46BB5735691235F8403D2A16E952B72D4C601450C647D2ADDAA16238AA89CBF15AB6C9B06EAA82B92CB29F2AFD28F37A8C530B64D2AA16AD2EC444642AFED532BEE14935BB609029918238340C97356ADE7326E8D875E955B1C7D6A5830AE2A968C4C65C2ED7CD350F39AB9771868C102A829C1C1A5D750E85AF30FA515167DA8AA24CB49C90013521E573544707AD5946F96B04EE6840C48969DBB34C93EFD203CD45F5196236AB1BBE5AAD19A99F85AB4C4472373D6A3CE294E73CD34F5A901734E52453075A7D0809E1724E2AEAA02BD2B3A238357A37E2B48F98991C90E41AA924441AD5FBC2A292307B50E3D84999456984907AD5B921C678AAEC959B4CA4093153D6AE45780100D50DB8A4342935B8DA35D923B81943F37A553920643D0F5A8239995BAD5D8AE4300AE01156ACF626D62A12453431E6B41ED1261BA26FC2AA4B6EF11C1C9A4D31A657273406C538AD467AD43605857E9CD588E504609AA19E29C09C7154A405F74DE32315015646CD4693329E6AC090498C9A603E1BADA70D560CA5712467E61CD52DA326A44057273C5125741B1BD67AD3FF0068C772F29407E4722B235FB9FB45EB48AC5D4F4268B56DF6D3425410DCEE3DA924B352983229C0E95828B6F62D3309F7119A8B1CD58B9528E573C544B116E943DEC219D294139E2A4F239A916309CF7A12B08727CB8CF5A999B0B558C84B6295DCE6B4E6113A48B91BAA59635299154A205DEAD9E5428AB4EE8432DE2DCFD3A569E00502A18A308A08EB53A8DD571D0058E3E7245598B078C1A87385C6696263BC73DEAD09974AEF4C75AA72405189ABE8015CD472C794CE2A9A1265655F96A445F9C5440E1B152A1E6945EA365C74F321183F5ACB993CB63DB9AD78496E2A9DE4203138A2A2B893286EF61452EC14545CA332480A9351A928D8AD560922F1551E10AC6B371B0EE5394E1F34D46F98D24C7E7C546A7E6ACAFA8CB8870455C48F760D6723E6B4219300735AC1888E540A0E055467DA79AD195770CD674E9934A4AC084F3076A5128355B247149CF5ACF98763423705AAE44D9158D1CB83D6AFDBCE3D6B48484D1A2A6A4C645451B86152A8ADB72485D073559E2C76AD02063A544D18349A1DCCD6515195ABF242369E2AB18F07A566D0CAE4522E41AB053DA91539A94807452306041AD059B78024C1154963DBCD3CB718AB8BB0AC4B359C720CC640359D2DBC91FDE5C0F51575646079E952EF0C30CB9068693D82E64018352C6326ADCD6B952D18CFB55239538231516E5DC65811034BB369A8A39086193C54AF260552D0052FC62985CE2A32C739A4627143606959DF4105B4B1CF1960FF00C40F4AAF717B0471958D58679C9AA0CCD4D9C16407BD65CCD3D0A424920979CD2420EEE7A51042C54961C54C133C29AADF5621CC19B8514D16CCC79AB300DBD6A772BB6AF9534233668BCA1D6AAB31AB574D9EF548F5AC9EE51244C41AD1832E326B3E35216B56D93080D694F725965178152A0E0D22E734B9CF15B122E3DE80841CD3945588941EA0534AE17258394FA54B9C8C5406650DB40A9030718CD52D40A738DB25119E6A6B84DC954E3728DB73DEA7E1606B40453AE53CC4CD410BE5463A55B203475A3D5096E66793455CD83D28ACF94B3944B865E86A47BC0633DCD53CF14D62715CDCEC761ACDB9C9A13EF53475A55EB59DEE3274EB56E235493A55984D6B164B2EE32B54E45C135763E54D579C0CD68F5424674A8435308C0AB4E38AACE39AC1A2D32339A9A194AD46DD29AA79A85A31B46C433838157A3932466B1216391CD6942C7239AE984AE4346881B8535979A48D8D48C38AD6C495DD6ABC91D5DDA09E6A19635E78A4D0265365C0A881F9AA761559FEF565D4A2C03F2FD695549A231902ACA20AB5110C58F38E2A748C63A538281DA9C055A49031D1A67B0C550D46D3F8907D6B4E2E3344AA194E7D289A4D093B1CC213BB1E95230239C53AE5024E71EB53200C83358228AE0F1F4A6F9841E94E97E56E295147A75A96C640EDCE4D3D537A734E9401D2851B6318A9B6B718A64CA05C702846543C75A55398CD30D5DC9272D9C1A6BC85462A2DE474A6312413439680412B139CD44A371A593934E8C62B3193C69C0AD3B7E702B354D5AB5918498ADA0C4D1A0CDB475A6F9A3AD473B9249AAAD237AD539D98AC5D374B1F5A960BD8D9F05B00D639624F35164AB1C1A4AADFA09A3AA681644DC873507EF623C838ACFB19E40400C6B6E2959C00D820D6C85B15C4C5FE5355A550AF9AD836D1633B71F4AA7731A8538A24BA85C2D9805AD0425A3E2B2AD865B9AD3878381D2AA2EE21B86A2A7A2819FFD9 0 0 0 0 0 0 1 0 0 (NULL) 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/exportdxf10.testcase0000664000175000017500000000051412544707704023361 00000000000000exportDXF - invalid BBOX :memory: #use in-memory database SELECT ExportDXF('testdir', 'test.dxf', 'sql', 'layer', 'geom', 'label', 'height', 'rotation', zeroblob(100), 1); 1 # rows (not including the header row) 1 # columns ExportDXF('testdir', 'test.dxf', 'sql', 'layer', 'geom', 'label', 'height', 'rotation', zeroblob(100), 1) 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/blobfromfile3.testcase0000664000175000017500000000031312544707704023717 00000000000000blobfromfile - missing file :memory: #use in-memory database SELECT BlobFromFile("no such file.whatever") 1 # rows (not including the header row) 1 # columns BlobFromFile("no such file.whatever") (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxfdir4.testcase0000664000175000017500000000043712544707704024000 00000000000000importDXFfromDir - NULL append :memory: #use in-memory database SELECT ImportDXFfromDir('.', 4326, NULL, 'AUTO', 'MIXED', 'NONE', 'prefix', 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXFfromDir('.', 4326, NULL, 'AUTO', 'MIXED', 'NONE', 'prefix', 'layer') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxf6.testcase0000664000175000017500000000041612544707704023300 00000000000000importDXF - NULL mode :memory: #use in-memory database SELECT ImportDXF('sample.dxf', 4326, 1, 'AUTO', NULL, 'NONE', 'prefix', 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXF('sample.dxf', 4326, 1, 'AUTO', NULL, 'NONE', 'prefix', 'layer') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportgeojson10.testcase0000664000175000017500000000042612544707704024246 00000000000000exportGeoJSON - not existing table #5 :memory: #use in-memory database SELECT ExportGeoJSON('table', 'geom', 'sample.geojson', 'MBRwithLongCRS', 6); 1 # rows (not including the header row) 1 # columns ExportGeoJSON('table', 'geom', 'sample.geojson', 'MBRwithLongCRS', 6) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxfdir7.testcase0000664000175000017500000000043412544707704024000 00000000000000importDXFfromDir - NULL special_rings :memory: #use in-memory database SELECT ImportDXFfromDir('.', 4326, 1, 'AUTO', 'MIXED', NULL, 'prefix', 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXFfromDir('.', 4326, 1, 'AUTO', 'MIXED', NULL, 'prefix', 'layer') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/eval1.testcase0000664000175000017500000000020412544707704022201 00000000000000eval(NULL) :memory: #use in-memory database SELECT eval(NULL) 1 # rows (not including the header row) 1 # columns eval(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/isXblob9.testcase0000664000175000017500000002437412544707704022702 00000000000000isXblob - Webp :memory: #use in-memory database SELECT Hex(blob), IsPngBlob(blob), IsGifBlob(blob), IsGeometryBlob(blob), IsZipBlob(blob), IsPdfBlob(blob), IsTiffBlob(blob), IsJpegBlob(blob), IsExifBlob(blob), IsExifGpsBlob(blob), GeomFromExifGpsBlob(blob), IsWebpBlob(blob) FROM (SELECT BlobFromFile("sql_stmt_tests/test.webp") as blob) dummy 1 # rows (not including the header row) 12 # columns Hex(blob) IsPngBlob(blob) IsGifBlob(blob) IsGeometryBlob(blob) IsZipBlob(blob) IsPdfBlob(blob) IsTiffBlob(blob) IsJpegBlob(blob) IsExifBlob(blob) IsExifGpsBlob(blob) GeomFromExifGpsBlob(blob) IsWebpBlob(blob) 52494646381300005745425056503820FC120000D03E009D012A80008000000708858588858488028219C1D32F2755672A4E67F137FFDD8CFDBE9D39FDFA9FE7536E0AFC2BF32FC1D7AD7DCFF573C95F595A85FCB3EDE7EA3FBCFEE3FC65FE03BCFF923A82FB13FD5F8ABEC36DA3FD6FFCEF505EF07FC5FF01E2DBFEE7A0DF5BBFE77B80FF32FE61FEDBD54FF37E141F75FF4BEC03FD1BFB67FD6FF3DF98DF249FF17F99FCDEF6EFF4CFFE4FF35F00FFAB3FF2FFBC7B5EFFFFF73DFB85ECB1FAC7FF87DEFCD6E1CCB7C52211F324FAD197772F07ADFF320C8A6E3C954257AA7D1D37D2E3DFE692A22442982085E1D214D44549FE4B87B9AF1AA705E5618B9A6CB936CF8D950E9D08F2262F84562F4D3A9EC827E7EEBDD7BD95ED9637C83E991EB4E61D31D8688EDC9F6DAE95789CF8178A989A30CE4B3DBBF88671461109594162D6878D75E4198E04D7225B1A17CBC83189D0AA0EBF3290BE2B020FB221914F0E75A2FE86661E2224636ECB04DA2E078107BDD1BD79A073912F2255BA4A9E3F2E5CAB360885056C7FF617FF2D128EC21630BAA994E7FF19467493FA443061439801CCE618020B0A60E239DC6DCC4E6E9D21EBAF822697B6731EDF7766E4EB449B6870CB32CD316120FFFF112CB5AB755AC0A728D7CF1C882794C50DF5BC848870054E346FB04C426A5DEE7E50F9B6CA043A4D5819BF7500DF3DD5EB43A5EDA5F766B8733DE67B21D802F45D051870127ABBB9A0FEFFFE1381F5747C039FFF921BF9E7FD5E69A3FFC9BC2FEE2C690BA401704F7EF1BF3EACDCE82334409DED4675F173A1C1C417F03FC220A554FD54F4DBD328E45139063A58698F766F82FCD2B591549E20E23BF425C47FC7A1FCAE2DFFB04ECB2C8076274C9FF456233F65E2F6ABEA766FD6F30CD8596D9DDE7F491BF36955BA853B80B7DD7D2DB7466230967B8035373285B84630EF4A084D1388367502F970A662A37561708B6B7D392C1D959FCA8DD88A5BEA53C69FC239E39CF0A500D2658B751E67D12F185EADB6664F2B58573CB7880F61F8B54E7F66BFD6DFFBE896767BFE61931A97F9442FBFEE2CBB9EE91A4D215960754CA00BD922C191AA1F949535D7E26A5BE8002ADD5CD8B1B8A7F43E3851AD08BF00B5FF7AE99D3D3474CD0388168AEE9775E50BB7D0FA08327B3D04BC2F77EFA0D157E9C5D32A155C4714A97531FFC1B55B1363E825BD814D13EF96CF72363FFEFC44357DCC6283F4D30FF3C32ADC0E7FFE733B95DA5B3D7BB9FFA67F6571D35612FFF109509DE5DA5AFBFDB95896E2B2E51FAAD29F41787A55C068A62E011F1AFC72E709D7F2FAA2FEAF7F46E64FD6514D34EE1C0A11EAC027FC578C58D02DCCABF46A6AB2B2EAB608BD1903E3D882EA978A6D80304A127A0E8BEE556567DF49447780352611F4D253C4ECE8FCC8EFDB1D6F946FFF011C9E981C8F795C91F26DA2DDFEECE906CA45832D4201B17E5E2CCAE32E75871588DE9ADBF75FB3577F9D4AD9F0135BBF8624DE5FF880A1C293C1C4B94305366B09E25FC07EBB23D4920988B08D39024334650A9D1576A8955C5D1BB5FF56F9A6B3743FD39F8F04F10835E088A68F03D11D0C11AF2939721065C8C87FFA6A5E964AC9C914684D9D4489A42558716F07CB7A781D6342CF8C42B07414A8322CEDA3C88DF2691FD146B6405116000F21294A9C1303491EB1228668ED7767F72CA5A4B5E8B9C09277ADAC135353AADF56D858D240CB91EFCB37E68E3B687DC74D8FE4D9FDF41F0B435839C87D9971EFF3ACF1D15C477D84E3E01231B174F16E4D1C84A12FE9D9E7ACD3256D28B32E751641CA25663EDA61D903A00D2141C16D9E2A9A98F2DC6776DB2F2DFC1E72B97A5142DC347B48E23AE9706311E9E987F5543AF8CF2983C2CD1BE96D2EF46FEC81105A1C92B9E6D03631E0201271437201299B73D6F8733BC6FEFB31934D8FBF6F6F900E2809F05A1643364566C6ABF94F96095E7CD5F47B69F891C0ECB906A706106010730D01A20460FD122A9CAD3471A0A2F85918883AE0E6F43FE6AE84B0E23DD80A57F50DE5BFB5DA6F0F2A650971267B7D2925EE5A16D387A2BBC441443F66DA408991A23CF13DF96615385430C544F62CF0BB4E0DA8C663E78D868D4688DC1175A01B5DEFA2720075AB17CA74084D4B9EE325F33A11AB969742857EC5461B9050F0475983F94E6B6CC27D04E01313A52A9CD8F949925B781A4484675499BADBF8B9904F31BA5CC2266820E65662688FA65E3D47DA990098933EA095642C430C8120F80ACF1BD7B0FC44F1F4CF7D4610EFAE786C658A821F4A0EF142F546455692A296B8DCC28C57C4AEC85AF4DFE680749C3065CE2EE8A716F2B1E518FB01ED4B76B5EBF225EC13877A71E614E25C4B4B72B068A68E4FCF5EEE6C879B22C4DCE83C6F33EB8B144F4A2BA134B962FDC8B42B50E3CA19BCF431A7D746CC681C5CB9C789BEB4F3373029511B2A62C038CDC1FF612A903D2A6242FC75ECDA5FBB6B830F3F09C0589A6C9E0FE162B5736B957073931DF627E0A95593DDED2F919F96C281458B75F16F71BD8721EA97D45FD9BE3D4BA97EF1E8478B25172F3D8E2F35CAE99B96DAF13D060C96C1901A6E42A18BCE7913CCAC787778C970AB41E3489E5D37EBEFDDE1AE28793D6129F01E79BFE8F71EF9E2FBA6FEF5184C6F0878FF3FCEABF97CA7D1552D623B980CF69409A0B8AD241EF855F79C2DF32B66A26730F03124C04F56AF74C3BC5C8B7050982CAF44CB23A3A12FF25305D98556D854E9578CAFFA14F30317B784429AA6FE4521F16B179AC8724A78FCBC2398676EEF4809FD47BA160BEB3008B55403374EFE07D3FBB1BFD25A2771D8B414DAE124561355D39CBB6E3A919FAD83F12C83EBFDA741D5A7F0976CA032A194FC3A2490DBE9C373E1EFC555175979283DC2F22B7FEA0E3C0139DEA1E60865B88D156907B738CE1896679C1156F348C3A71F84ED748D8CE7F61C2F01073848BA043CDF4C46B0237C9BF5F7C58A02EE25F1FDADF45E3D5D98F93E2211263E07B368A76A9B8CADC0878C48D591E14693DE1E8D4EFC192B4235CF5F54C191E39EC66C2B59A4B36B4A38961A60D7F20B6B038C50468CF6AB7105EF7C5BB5FDF855C2AB9BE89D39C1C38394701D5EEA1E62FFBC9B41B6B3FB5D9A15316F05AA31FA0791EBE7FEEBBCBF8A1196372196794CA47A9F361AACCFC998CF9273FC3ECE5B38944DD276B0C45C2C97B749B745B84752CCA1F9F8ECFE0041023F8D5455F86745F6D7F0343A7951524F4DF4CC5B9314BF0DF650D43C006A5DD6DCB75761D7603150FDADCDC100C7E84C641157B80B4688C054BAAFB0AC8F79A19728F473D4A6491D8CC940A9985B91F731F79677F30F982F615F5D1E8B710A04A3CEC757477C7903F39BA92A1815571990770813EE970AFB080F0D99D8888B59157900AF8FFC54F117B089A2D9FF99E6B1948A7A2BFA779CD7EED737C911020D2281A833D70A5EAD5A9625786570CD7D4E834F6D6EF5C16DDF88BE427EB417F098532175F7FA1E9858C5C3E75CD5EE8733DB3830116FFF0669FCDD3FC1AAABBD9D65F2FB15AE2D142CCD1452C850FC6B563880E35DA8D6CD937B263699C3B974151AAB748EAB8922B3478531B43B4A505AF8C2DE2A2F660D9A5E37AEFACFB6AFA5D981A8C70A6F04B76197261EBB0FF3328ED056EF9C24AE8754E0A3F42D23D2FF7F6E8566B6D91DEC01DF4C272479593B9A2B6519EC16FFA83CBED670867AEE5D806D75CD6BD4F9BB47E4447A2439619F2EDF1F913632617DF30203AF0251FC82455FA639983E5332E44F9B00BB66AFEC61DC21CBDA5419BCE84FD1FF55F845A9063AC622B451D8465E7E7D893C3565B5DD06E49FE6CCE94F5EDB3EF441EC8AF35FA69681799FFEE9462F3CD7EEB9BE83C411CA2EBECA8A42B8CD5627F6E25A3875A9E12784E259C1844F4B7B3A582147CCE8C32553C25B75CB727758FEF364CB0F687330601B9AC8EABB67B426C1B4348D64B1578E79C09A4C5D971E3D5C4834E4245EC778F05E5423183A9B3415A115B6FA910561C053F41A57C67A23578ED3B45B63BE6433FE51444E0FE2D764FC1655AF28918AAA87FC2F926D01CA76DE6451287ABFC5B3197ED971A0CDBC35F6D39F82F497A7C9C5EBE757E00182941DE76F22CF3BE0D835CA1D60E33B2DEF7AB1D4760DCA69AABBCD9868BD05E748C3D49DC74F2D9BC04E37F676E67BFB086EFB6C6CBF4127EC3011B70A9F483381DEC0018C1A1B3724AAFCEC8A0973BEA7FD31FA7CF50C3FA99C8A8123EF0EF92D4CDA395D1915B02693D375D576DD29AE5280B454537A5B6009AB1137D296C47715398E1038FC0E7F01B2B034FD1361717416E75157D7E5B14C0F3825170708C009B86A25B168935D3C7609F6F47F6F2035C02C78079BD45C6E28C6B71E8C0E539FE8A2C2F58E1B072B0109318E5CE0DC7EB3CAA10EEFA1C5A3711FAD493B5C7EC999D27E657369E439B4D08302B8AEE65F8D73DB79D9DEE1696232359FE7F68D196C683787E278221228D5D7253F0E7278A0947E073ED2AC4559AE65247A98736793B9FBED54D3CBBF8D215D95010FE2BA7F0C6C16F38B7CD152F04BD39BDD681EA7CA6372CF33F1C8AB544D97C03594B2F3DF9B74B889F070CCCBCF7D2CE63A096BEB28785705B74E54139DEF95B0F210C7CFB1E030AB4E39FBD0866BE0DFE4BF6BA43C6EF34D7EEFC770DC76326D0F8289323044C38E78E5D08FDFDE4DAE74B47EA2FD38C2E847340D6D2C5AD71281C8687320CDFFD7DA37F2B1BD7A26D3C6DF60DDE0AD5AFD201C237F203C473417AFF8F551B7D49575A086910D59E65011661FC2EA0F54B5919B26DAE1A1E9B7BD8B46CF984637B9C70DA2C5B6A7297FD6420F16CFEF7F839DC0E97BE8A80729FCF2CEE4E0FFA440B0D36B6828CEBF2618DE96F70340B317D524D0D701BEF4624580BD576C109F46083226AB7B163280B21778F371B32B186EF4005383538E5EFFF8B09EE648E32D79022ED5F305F0262D20A434C7D6463B520430C480800AF5D3E880F133D0781A2C61B358519DE88003B1C843ADE2F1201BA10B83D57255B8EF70663C139B27609240580D4B8168C6AC4F014D6032209928BF5FB65A293F1CACFE3491313DD683040F97452C9C48EFD6365C152A74E94156F8CBA544388FFAD737199D9269D2447821C88133DA943FD56663CE10F2574D53C85190BB7768AFF7189548FE817726C6ED00C43A383C34955CD09443A35326693524F65E94048D9D13740D39D0B27ABB3B111FB0C91779D5913B28E61FFF965999C6662A48A0E4643834F2D6CA8E5098DE1520B5EFCB7B0BD34F36388B5B23A35A7A50B893EECF3CC7396CFF51FE1CDB1C9736C40DB11B2022A65D43FED9189CF9B6D24D88EAA613949425030861FE846CEC72BD5D1329167CB2B134518959485587E18D98ABA1B10095673ED69E1458410337DCE7D02A1CE49116E3959E897033639F56711501298FB4CE63280BFB51188590BAD6654F823CD4E7416EC031DD3268125DB01C2867780427D309208971E6CF9AFED31E91F0C31A6B2EA4F9992BA582CC7D221C55436637FE3145E4CABDB051320BD52CC5805FDCAE119DB659D90EE08F35F4009C9E1B578E863F8720B824134175FC7C757EB0318E0BCFF64DB8EA99D8B7FFE59D19BA0796A3FF94312ED0D26549D6E1E3B2619EA0C4B529B19A9B1CA82740D38437ADD1D6BB0EA4C502774F539F0A34193EA9108D7860CB0800E81B94D0C966F1893D102E91BF22730D7A9B8768C7ABED66016CBC430F00163F5F3B5EBBA2F0EEA0BA8DA054DD18437BD4CA49725FE6FB06F609AC4829B158D4C03A4952A2226F378E50130DA7625021260533393929024CECC98564D0A0F5179E25A444F31B5BCFBEE042C4310816604534B42AE39B0C337A42C4C8F6595A6690FA47D698FCFA8C81A6114AB5149E29A77F57DB5AF5FE974FCA5FD676A1D18E47E983A842ABB4D3A24366993CEC14790B44481DC7B98CD8BF023EB2BC80EC58C6ED80C406C79B89F8003EBE641731864EC091464367A30405B7406713805F60038037B94D403181E2CE30EA92EB1F1405ED43DB6704BE529F94B3FA130EB13E31554788FC996D08AE2B50CDB2CE06EE60AFD6E404863069CB7229041A9A00BCA53347BAC08C2A60BDC708916ACCA8176AF5C30C80E3501A98AC99535A0324E8C9AE9BE365C64212677CF11F7897F852A8F240135F9F7622BAEC84B962285E65503BDA3BD0E5D674EE36B54C9EAC921EE7EF6A7C8E169D14D034223CD55AB82BAA1700467C42FD7954148032D919E9C00E247A26364046F09E86CB9E24B48D7EEE1949E698B0731033C79022715A5B3ACEF98DD3AB4E6E0F9F32C0BB563C31C1D9F700694623BB6881C184B1BFDBB2FDE4552DA930FD0B7A247DC121884709258EA5EF46EE15D4A5BF1F37A274432AE1CA0A54FE12B43CA9D49EC25F300CD3021DCC4BC651265F7C2FB4F61941B360A70371F4EB3CBA13480CF3C5B1B28C3E59FC8F6F0990C46F033E2643736C00DE293FB65ACFB9AD54BEAAD5B4B2EF47CEC5C8D804EA198646E61BCB3E0E3A6AE1F63834470F228740D0C12EB4860A5A962BCB74D62C66EDE2A2AC5E845EB6A23BF6726B027ECA8C599719E43C910BFBA285FD0AD1E5184623A1B47691C3105D5906DA48EA8D929EA89A4801CA3D2586CF4A84732C0750A94B1D489F9C6C3205BE384E0CCBD41D70B1D198A1AEC92B7133551E7948932A900494B61154C4A86DCCF37DE4BE3D6A6E7508AA288A3C1E627CB942CD11E8FE27A75E070686B90846A6AC7F460CECA0FD032A23DA8730B11CA3D417565FFC1C82B23F1AA0432037911B27A04468EE14BB69928074E834EF5ABAB3110EC3E7DEE90700004941525408000000756E6B6E6F776E0049434F5005000000323031300000494E414D09000000796F73656D6974650000 0 0 0 0 0 0 0 0 0 (NULL) 1 libspatialite-4.3.0a/test/sql_stmt_security_tests/isXblob8.testcase0000664000175000017500000000262012544707704022667 00000000000000isXblob - RIFF, not Webp :memory: #use in-memory database SELECT Hex(blob), IsPngBlob(blob), IsGifBlob(blob), IsGeometryBlob(blob), IsZipBlob(blob), IsPdfBlob(blob), IsTiffBlob(blob), IsJpegBlob(blob), IsExifBlob(blob), IsExifGpsBlob(blob), GeomFromExifGpsBlob(blob), IsWebpBlob(blob) FROM (SELECT BlobFromFile("sql_stmt_tests/seconds.wav") as blob) dummy 1 # rows (not including the header row) 12 # columns Hex(blob) IsPngBlob(blob) IsGifBlob(blob) IsGeometryBlob(blob) IsZipBlob(blob) IsPdfBlob(blob) IsTiffBlob(blob) IsJpegBlob(blob) IsExifBlob(blob) IsExifGpsBlob(blob) GeomFromExifGpsBlob(blob) IsWebpBlob(blob) 524946467C01000057415645666D74201200000007000100401F0000401F000001000800000066616374040000004A010000646174614A010000523B2832AC9EAE2E3D61432B2BB49FA43B3560493827D5A2A0F62E5E4B3D293EA79EB52D4B4B3B2B2CB09DA53435593E3728F7A19E682D5E4B3E2737A89DBB2B4E56442D2EAD9CAA2F3E59453126C09E9F40306B41392544A49ED12EEF4C41292EAB9DB52C42624C3029BA9EA837397E4C3A27649F9F5C3463473D283BA89EBD304D45422E2DAF9DAB3540523C3328D29FA24534553E392A4DA29ED5315C423E2D32AC9EB3344F5644322AB99EA83D37504139284CA1A0713250483E2A38A89EBC2E44574D2F2CB49DAA343C5E443627DF9EA247345E4B3F273FA19FDD2D4949442C2FA99DB4303F6446302ABB9DA83C35584A3D284EA09F7D314E3E3F2A36A59DBC2E4E4B442F2BB29EAB3336574B3B28E89FA24D3150503E2646A29FDA2D4851522C32AA9DB52E3E4D4E312AB79DA733335D563B27E99FA2462D584C3F2941A29ECB2C4449402D31AB 0 0 0 0 0 0 0 0 0 (NULL) 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxf11.testcase0000664000175000017500000000042212544707704023351 00000000000000importDXF - INT layer :memory: #use in-memory database SELECT ImportDXF('sample.dxf', 4326, 1, '3D', 'DISTINCT', 'UNLINKED', 'prefix', 1); 1 # rows (not including the header row) 1 # columns ImportDXF('sample.dxf', 4326, 1, '3D', 'DISTINCT', 'UNLINKED', 'prefix', 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxf3.testcase0000664000175000017500000000042412544707704023274 00000000000000importDXF - NULL srid :memory: #use in-memory database SELECT ImportDXF('sample.dxf', NULL, 1, 'AUTO', 'MIXED', 'NONE', 'prefix', 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXF('sample.dxf', NULL, 1, 'AUTO', 'MIXED', 'NONE', 'prefix', 'layer') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importshp7.testcase0000664000175000017500000000037112544707704023312 00000000000000importSHP - NULL pk-column :memory: #use in-memory database SELECT ImportSHP('shapefile', 'table', 'UTF-8', 4326, 'geom', NULL); 1 # rows (not including the header row) 1 # columns ImportSHP('shapefile', 'table', 'UTF-8', 4326, 'geom', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportkml7.testcase0000664000175000017500000000041212544707704023306 00000000000000exportKML - not existing column :memory: #use in-memory database SELECT ExportKML('table', 'geom', 'sample.kml', 6, 'name', 'description'); 1 # rows (not including the header row) 1 # columns ExportKML('table', 'geom', 'sample.kml', 6, 'name', 'description') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportgeojson2.testcase0000664000175000017500000000034712544707704024171 00000000000000exportGeoJSON - NULL geometry-column :memory: #use in-memory database SELECT ExportGeoJSON('table', NULL, 'sample.geojson'); 1 # rows (not including the header row) 1 # columns ExportGeoJSON('table', NULL, 'sample.geojson') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxfdir15.testcase0000664000175000017500000000044312544707704024057 00000000000000importDXFfromDir - invalid special rings :memory: #use in-memory database SELECT ImportDXFfromDir('.', 4326, 1, '3D', 'DISTINCT', 'foo', 'prefix', 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXFfromDir('.', 4326, 1, '3D', 'DISTINCT', 'foo', 'prefix', 'layer') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/isXblob2.testcase0000664000175000017500000001120312544707704022656 00000000000000isXblob - gif :memory: #use in-memory database SELECT Hex(blob), IsPngBlob(blob), IsGifBlob(blob), IsGeometryBlob(blob), IsZipBlob(blob), IsPdfBlob(blob), IsTiffBlob(blob), IsJpegBlob(blob), IsExifBlob(blob), IsExifGpsBlob(blob), IsWebpBlob(blob) FROM (SELECT BlobFromFile("sql_stmt_tests/ktorrent_sidebar.gif") as blob) dummy 1 # rows (not including the header row) 11 # columns Hex(blob) IsPngBlob(blob) IsGifBlob(blob) IsGeometryBlob(blob) IsZipBlob(blob) IsPdfBlob(blob) IsTiffBlob(blob) IsJpegBlob(blob) IsExifBlob(blob) IsExifGpsBlob(blob) IsWebpBlob(blob) 4749463839610D00B80BA52E00BDBDBDCBCBCBCCCCCCCFCFCFD0D0D0D1D1D1D3D3D3D4D4D4D5D5D5D7D7D7D8D8D8D9D9D9DBDBDBDCDCDCDEDEDEDFDFDFE2E2E2E3E3E3E4E4E4E5E5E5E6E6E6E7E7E7E8E8E8E9E9E9EAEAEAEBEBEBECECECEDEDEDEEEEEEEFEFEFF0F0F0F1F1F1F2F2F2F3F3F3F4F4F4F5F5F5F6F6F6F7F7F7F8F8F8F9F9F9FAFAFAFBFBFBFCFCFCFDFDFDFEFEFEFFFFFFBDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC1BDBCC121F904010A003F002C000000000D00B80B0006FEC0952A853291449E4DA63201088946A492E91C168FC965F379956AAB50EC746B8D66A95CF318DC3D93C35E7459FC4DD3E570375B5D9FC7DF6D6B767F7B77807C78817D79827E7A838F8E8D8C8B8A898887868584909396999C9295989B9194979A9DA3A9A2A8A1A7A0A69FA59EA4AAAEB2B6ADB1B5ACB0B4ABAFB3B7BCC1B9BEC3BBC0B8BDC2BABFC4CBC5CCC6CDC7CEC8CFC9D0CAD1DEDDE0DCE2DBE4DAE6D9E8D8EAD7ECD6EED5F0D4F2D3F4D2F6DFE3E7EBEFF3F7E1E5E9DAC5AB870FE0BE81FEF205E447F09F3E81FD0A3E6498D020C4860A0F4674B810A1C48E1B335EAC38D123478D182D52FC889224C8942543AA342972E5C9912C71DEB45993E6FE4C993161BE74D93227CF9F428BEEF41994A8CE9E40871A652A756954A550933E45EAF468D3A957B77EB5AAD56BD5AC5DA962E50AB6AC5AB167D9924D1BD6ECDAB168DBD2755BF7AD5DB877E3E2959B77AEDEC38613175E4CB8F1E0C78223079E0CB8F2DFCB7E33F7DDCCB7F3DECF881943A68C993368C58E255BD6EC39746AD2AC4F8B565DBA35EAD1AB4DBBC65D5BF6EBDCB667C3D67D9B76ECDDC6890B07EE9BF7F1E2C383FFEE8D3C7AF3E4D29D2B9FFE7C3975E8CCAB8707FFDD7B77EEDBB567C77EDDBAF8F2E8D7BB277F5E7DFBF1E6D3B37F5F7F3F7DFDF3E5271F7EF1DD079F7DFC01482082FF0D78A07F021AD85F800526E8E0840B4258618312FE2AF820850C46686187177A88E1871982A861881B8AC8E18830BE28A38B34B668238B38AEA8A38A3CA6E8238A409E28A489449668248948C658638E3D0659649233DEB8E38F431EA9A4944D5609E592533A6965944C52F9E495617AB92596627EC965966382D9A59664BED9E69A699E59269C6EB2A9269A66C6A9A79D72EE79E79C7CE249679F79D6E9A7A289227AA8A185123AA8A08102FAE7A28E464AE9A58D423AA9A58C3E2A69A5987A4A6AA7A3722AEAA6A16A0A6AA69F969A6AABB1A2CA2AACA7AEFAAAA9AABA2AEBADBCD29AABAFB6EE3A2BAEBDD6AAEBAFC6027B6CB0C80A9BECB0CA12BB6CB1CC668BEDB6D7766BEDB7D5864BEDB8D3962BEDB9FED1A60BEDBACFB6EBECBBCDC6ABADB7E29AABAEBBF2720B2EB9E8B20BEFBCFBDAEB6FBEF4F27BEFBFFAD6DB2FBE002B7C30C1012F8C70C102339CB0C103378CB1C5144B0CB1C3195F5CF1C4113FACF1C81F6F4C32C81C971C72C7268BECF1C933CB1C33CC2FBBDC32CB2BAB9C32CA34DFAC73CF40DB9C33CF3FD78CF3CE3E077D74D346335DF4D2442B3D74D24223EDB4D4566B1D75D559434D35D64F4F7DF5D66097DDB5D8677F4D36D7619BEDF5D868BF9D36DC6AC7BDB6DC6CCFDD36DD6ED72D78E084036EF8DF88FBAD78DF8CF3EDF8DE90EB2D79DE94E36DF9DD98DBADF9E0872FFEF8E4976F5E78E28D475E79E69C93FEF9E9A2775E3AE8A88FEEB9FEE9A1A73E3BECADAB4E7BECAEAF5EBBECAFB36E7BF0BFF7BE7BEEB70B0FBCEFBCEB8EFBF0CC234F7CF3C917EFBCF2C63FBFFCF1D073BFBDF6D9637FBDF5D5533FBDF4D1770FFEF8E6A7FFBDF8E5A3EF7DF8E49FAF3EFCF6BF5FBFFBF4B73F3FFBF25B5FFCEEB7BFFF0D507FFE1360FEFA1740FCF10F80044CA0030DB8400822104A2A48C6106CF1040E0EE1049A60C10A8450841120810319C840004448421398D0032854210B33E8C213A6708523A4E10B39A0810C0860866DE0A10F8108C213F6F087394401084700C3231291044CEC8006348044122EF1031D50C2009E38022C6A918B5844E11693B8441074808704E022089A98463242718D3C2C8008FE5590C1327A208B7274E308D6884722BA30041FD8C0060C30C3149CE08F1FE0C0060E30C70F2292031C60A4101C390240425292563864251319C93912419396E400023CA9C4478AB291A5DC24073A304A32D6D08B09F0A30961294B11C0510185D4E41E6188CB1C1AD285BBE4C00266A88243BE118BC3F4A53137D98164E67099806C2631515082128820046B64000B4958CD4A66739B19EC26363DA0CD1176B004DE242738536002748EB39CBE6C673AE179CE7436009C2A90A72D3D70CF6D12019DD704810358E0CF1300149B030527358F10821024D49CE16468081E405088A6A00412A5A8428D50C9895634891C6DA846734843288AB405D3C4A8086CFE09019492949AD664A94B27598483B6749AF2AC6404664AC79A8E40A73CDD203043B0D3692E53044525E92FA12802091094881835E1049E4AC6A88A800254B522468F80D58FD6B19A5CCD6A1DDB09C50A88B594DD34AB57D18A4EB5FAB19B16F8E8130E6904125C40AE8EACEB5DD7790263DA55AC863C6435310058B612D6AB9F34A8093080D2422A91AE1968AC2F1F6B02136440AE56346607B26A452596C0039CB582673F20D9C99692B47825C2691B5BC8C48280B54A45816C43D082D2AA800B2810416D9FCAC214586104BBCDAA6F89005CD6F6D60A2408AE57877051E58AB091C574EE0A66B802144897BAD635EE74E758DDDAB2B605D3F5A5779F0A415E8B8E97A0E535670ACECB02F0FA93BDEE15AF724BBB82F5CE57AEF6FD6E7BD5EB5DF6EE5705FD752E78011C60DE0E38C0286DAC4B11DC5EF48A10C1C175691000003B 0 1 0 0 0 0 0 0 0 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxfdir9.testcase0000664000175000017500000000042012544707704023775 00000000000000importDXFfromDir - INT prefix :memory: #use in-memory database SELECT ImportDXFfromDir('.', 4326, 1, '3D', 'DISTINCT', 'LINKED', 1, 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXFfromDir('.', 4326, 1, '3D', 'DISTINCT', 'LINKED', 1, 'layer') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxfdir5.testcase0000664000175000017500000000043112544707704023773 00000000000000importDXFfromDir - NULL dimensions :memory: #use in-memory database SELECT ImportDXFfromDir('.', 4326, 1, NULL, 'MIXED', 'NONE', 'prefix', 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXFfromDir('.', 4326, 1, NULL, 'MIXED', 'NONE', 'prefix', 'layer') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportgeojson4.testcase0000664000175000017500000000035612544707704024173 00000000000000exportGeoJSON - NULL format :memory: #use in-memory database SELECT ExportGeoJSON('table', 'geom', 'sample.geojson', NULL); 1 # rows (not including the header row) 1 # columns ExportGeoJSON('table', 'geom', 'sample.geojson', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxfdir1.testcase0000664000175000017500000000025612544707704023774 00000000000000importDXFfromDir - NULL dir :memory: #use in-memory database SELECT ImportDXFfromDir(NULL); 1 # rows (not including the header row) 1 # columns ImportDXFfromDir(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportshp4.testcase0000664000175000017500000000032712544707704023317 00000000000000exportSHP - NULL charset :memory: #use in-memory database SELECT ExportSHP('test', 'geom', 'shapefile', NULL); 1 # rows (not including the header row) 1 # columns ExportSHP('test', 'geom', 'shapefile', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdbf6.testcase0000664000175000017500000000034412544707704023252 00000000000000importDBF - not existing file :memory: #use in-memory database SELECT ImportDBF('test.dbf', 'table', 'UTF-8', 'id', 1); 1 # rows (not including the header row) 1 # columns ImportDBF('test.dbf', 'table', 'UTF-8', 'id', 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportkml2.testcase0000664000175000017500000000032312544707704023302 00000000000000exportKML - NULL geometry-column :memory: #use in-memory database SELECT ExportKML('table', NULL, 'sample.kml'); 1 # rows (not including the header row) 1 # columns ExportKML('table', NULL, 'sample.kml') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxf14.testcase0000664000175000017500000000042712544707704023361 00000000000000importDXF - invalid mode :memory: #use in-memory database SELECT ImportDXF('sample.dxf', 4326, 1, '3D', 'foo', 'UNLINKED', 'prefix', 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXF('sample.dxf', 4326, 1, '3D', 'foo', 'UNLINKED', 'prefix', 'layer') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxf15.testcase0000664000175000017500000000044012544707704023355 00000000000000importDXF - invalid special rings :memory: #use in-memory database SELECT ImportDXF('sample.dxf', 4326, 1, '3D', 'DISTINCT', 'foo', 'prefix', 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXF('sample.dxf', 4326, 1, '3D', 'DISTINCT', 'foo', 'prefix', 'layer') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportshp5.testcase0000664000175000017500000000035712544707704023323 00000000000000exportSHP - NULL geometry-type :memory: #use in-memory database SELECT ExportSHP('test', 'geom', 'shapefile', 'UTF-8', NULL); 1 # rows (not including the header row) 1 # columns ExportSHP('test', 'geom', 'shapefile', 'UTF-8', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportdxf7.testcase0000664000175000017500000000051712544707704023312 00000000000000exportDXF - null height :memory: #use in-memory database SELECT ExportDXF('testdir', 'test.dxf', 'sql', 'layer', 'geom', 'label', NULL, 'rotation', BuildMBR(0, 0, 10, 10)); 1 # rows (not including the header row) 1 # columns ExportDXF('testdir', 'test.dxf', 'sql', 'layer', 'geom', 'label', NULL, 'rotation', BuildMBR(0, 0, 10, 10)) 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/importshp13.testcase0000664000175000017500000000045312544707704023370 00000000000000importSHP - not existing shapefile :memory: #use in-memory database SELECT ImportSHP('shapefile', 'table', 'UTF-8', 4326, 'geom', 'id', 'POINT', 1, 1, 1, 1); 1 # rows (not including the header row) 1 # columns ImportSHP('shapefile', 'table', 'UTF-8', 4326, 'geom', 'id', 'POINT', 1, 1, 1, 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportshp6.testcase0000664000175000017500000000036512544707704023323 00000000000000exportSHP - not existing table :memory: #use in-memory database SELECT ExportSHP('test', 'geom', 'shapefile', 'UTF-8', 'POINT'); 1 # rows (not including the header row) 1 # columns ExportSHP('test', 'geom', 'shapefile', 'UTF-8', 'POINT') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxfdir2.testcase0000664000175000017500000000026412544707704023774 00000000000000importDXFfromDir - not existing file :memory: #use in-memory database SELECT ImportDXFfromDir('foo'); 1 # rows (not including the header row) 1 # columns ImportDXFfromDir('foo') 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/exportdbf3.testcase0000664000175000017500000000030712544707704023255 00000000000000exportDBF - NULL charset :memory: #use in-memory database SELECT ExportDBF('table', 'test.dbf', NULL); 1 # rows (not including the header row) 1 # columns ExportDBF('table', 'test.dbf', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxf7.testcase0000664000175000017500000000043112544707704023276 00000000000000importDXF - NULL special_rings :memory: #use in-memory database SELECT ImportDXF('sample.dxf', 4326, 1, 'AUTO', 'MIXED', NULL, 'prefix', 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXF('sample.dxf', 4326, 1, 'AUTO', 'MIXED', NULL, 'prefix', 'layer') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxfdir8.testcase0000664000175000017500000000041412544707704023777 00000000000000importDXFfromDir - NULL prefix :memory: #use in-memory database SELECT ImportDXFfromDir('foo', 4326, 1, '2D', 'MIXED', 'NONE', NULL, 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXFfromDir('foo', 4326, 1, '2D', 'MIXED', 'NONE', NULL, 'layer') 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/exportgeojson8.testcase0000664000175000017500000000043012544707704024170 00000000000000exportGeoJSON - not existing table #4 :memory: #use in-memory database SELECT ExportGeoJSON('table', 'geom', 'sample.geojson', 'MBRwithShortCRS', 6); 1 # rows (not including the header row) 1 # columns ExportGeoJSON('table', 'geom', 'sample.geojson', 'MBRwithShortCRS', 6) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdbf7.testcase0000664000175000017500000000033712544707704023255 00000000000000importDBF - existing file :memory: #use in-memory database SELECT ImportDBF('./shapetest1.dbf', 'dbftable', 'UTF-8'); 1 # rows (not including the header row) 1 # columns ImportDBF('./shapetest1.dbf', 'dbftable', 'UTF-8') 2 libspatialite-4.3.0a/test/sql_stmt_security_tests/exportdxf11.testcase0000664000175000017500000000054412544707704023365 00000000000000exportDXF - NULL precision :memory: #use in-memory database SELECT ExportDXF('.', 'test12345.dxf', 'sql', 'layer', 'geom', 'label', 'height', 'rotation', BuildMBR(0, 0, 10, 10), NULL); 1 # rows (not including the header row) 1 # columns ExportDXF('.', 'test12345.dxf', 'sql', 'layer', 'geom', 'label', 'height', 'rotation', BuildMBR(0, 0, 10, 10), NULL) 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxf1.testcase0000664000175000017500000000023612544707704023273 00000000000000importDXF - NULL filename :memory: #use in-memory database SELECT ImportDXF(NULL); 1 # rows (not including the header row) 1 # columns ImportDXF(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdbf4.testcase0000664000175000017500000000033312544707704023246 00000000000000importDBF - NULL pk_column :memory: #use in-memory database SELECT ImportDBF('test.dbf', 'table', 'UTF-8', NULL); 1 # rows (not including the header row) 1 # columns ImportDBF('test.dbf', 'table', 'UTF-8', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportdbf1.testcase0000664000175000017500000000030512544707704023251 00000000000000exportDBF - NULL table :memory: #use in-memory database SELECT ExportDBF(NULL, 'test.dbf', 'UTF-8'); 1 # rows (not including the header row) 1 # columns ExportDBF(NULL, 'test.dbf', 'UTF-8') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/blobtofile4.testcase0000664000175000017500000000026312544707704023403 00000000000000blobtofile - non-text path :memory: #use in-memory database SELECT BlobToFile(zeroblob(100), 1) 1 # rows (not including the header row) 1 # columns BlobToFile(zeroblob(100), 1) 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/exportgeojson5.testcase0000664000175000017500000000040112544707704024163 00000000000000exportGeoJSON - NULL precision :memory: #use in-memory database SELECT ExportGeoJSON('table', 'geom', 'sample.geojson', 'none', NULL); 1 # rows (not including the header row) 1 # columns ExportGeoJSON('table', 'geom', 'sample.geojson', 'none', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importshp10.testcase0000664000175000017500000000043612544707704023366 00000000000000importSHP - NULL compressed :memory: #use in-memory database SELECT ImportSHP('shapefile', 'table', 'UTF-8', 4326, 'geom', 'id', 'POINT', 1, NULL); 1 # rows (not including the header row) 1 # columns ImportSHP('shapefile', 'table', 'UTF-8', 4326, 'geom', 'id', 'POINT', 1, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/isXblob3.testcase0000664000175000017500000000247712544707704022674 00000000000000isXblob - jpeg with (token) EXIF header :memory: #use in-memory database SELECT Hex(blob), IsPngBlob(blob), IsGifBlob(blob), IsGeometryBlob(blob), IsZipBlob(blob), IsPdfBlob(blob), IsTiffBlob(blob), IsJpegBlob(blob), IsExifBlob(blob), IsExifGpsBlob(blob), IsWebpBlob(blob) FROM (SELECT BlobFromFile("sql_stmt_tests/ktorrent_grad1.jpg") as blob) dummy 1 # rows (not including the header row) 11 # columns Hex(blob) IsPngBlob(blob) IsGifBlob(blob) IsGeometryBlob(blob) IsZipBlob(blob) IsPdfBlob(blob) IsTiffBlob(blob) IsJpegBlob(blob) IsExifBlob(blob) IsExifGpsBlob(blob) IsWebpBlob(blob) FFD8FFE000104A46494600010101004800480000FFE100164578696600004D4D002A00000008000000000000FFFE0017437265617465642077697468205468652047494D50FFDB0043000503040404030504040405050506070C08070707070F0B0B090C110F1212110F111113161C1713141A1511111821181A1D1D1F1F1F13172224221E241C1E1F1EFFDB0043010505050706070E08080E1E1411141E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1EFFC00011080014000103012200021101031101FFC400160001010100000000000000000000000000000607FFC4001C1001000104030000000000000000000000000401031453151661FFC40017010003010000000000000000000000000003040607FFC400161101010100000000000000000000000000000313FFDA000C03010002110311003F0087EB9E8B6E62269B225729361D6CCC33E56CA8019F7FFFD9 0 0 0 0 0 0 1 1 0 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/exportdxf6.testcase0000664000175000017500000000052012544707704023303 00000000000000exportDXF - null label :memory: #use in-memory database SELECT ExportDXF('testdir', 'test.dxf', 'sql', 'layer', 'geom', NULL, 'height', 'rotation', BuildMBR(0, 0, 10, 10)); 1 # rows (not including the header row) 1 # columns ExportDXF('testdir', 'test.dxf', 'sql', 'layer', 'geom', NULL, 'height', 'rotation', BuildMBR(0, 0, 10, 10)) 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/exportdxf3.testcase0000664000175000017500000000052212544707704023302 00000000000000exportDXF - null SQL :memory: #use in-memory database SELECT ExportDXF('testdir', 'test.dxf', NULL, 'layer', 'geom', 'label', 'height', 'rotation', BuildMBR(0, 0, 10, 10)); 1 # rows (not including the header row) 1 # columns ExportDXF('testdir', 'test.dxf', NULL, 'layer', 'geom', 'label', 'height', 'rotation', BuildMBR(0, 0, 10, 10)) 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/exportgeojson1.testcase0000664000175000017500000000033312544707704024163 00000000000000exportGeoJSON - NULL table :memory: #use in-memory database SELECT ExportGeoJSON(NULL, 'geom', 'sample.geojson'); 1 # rows (not including the header row) 1 # columns ExportGeoJSON(NULL, 'geom', 'sample.geojson') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdbf2.testcase0000664000175000017500000000030512544707704023243 00000000000000importDBF - NULL table :memory: #use in-memory database SELECT ImportDBF('test.dbf', NULL, 'UTF-8'); 1 # rows (not including the header row) 1 # columns ImportDBF('test.dbf', NULL, 'UTF-8') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importshp5.testcase0000664000175000017500000000035212544707704023307 00000000000000importSHP - NULL geo-column :memory: #use in-memory database SELECT ImportSHP('shapefile', 'table', 'UTF-8', 4326, NULL); 1 # rows (not including the header row) 1 # columns ImportSHP('shapefile', 'table', 'UTF-8', 4326, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/eval2.testcase0000664000175000017500000000022612544707704022206 00000000000000eval(NULL, NULL) :memory: #use in-memory database SELECT eval(NULL, NULL) 1 # rows (not including the header row) 1 # columns eval(NULL, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importshp8.testcase0000664000175000017500000000041112544707704023306 00000000000000importSHP - NULL geometry-tryp :memory: #use in-memory database SELECT ImportSHP('shapefile', 'table', 'UTF-8', 4326, 'geom', 'id', NULL); 1 # rows (not including the header row) 1 # columns ImportSHP('shapefile', 'table', 'UTF-8', 4326, 'geom', 'id', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importshp11.testcase0000664000175000017500000000044712544707704023371 00000000000000importSHP - NULL spatial_index :memory: #use in-memory database SELECT ImportSHP('shapefile', 'table', 'UTF-8', 4326, 'geom', 'id', 'POINT', 1, 1, NULL); 1 # rows (not including the header row) 1 # columns ImportSHP('shapefile', 'table', 'UTF-8', 4326, 'geom', 'id', 'POINT', 1, 1, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importshp2.testcase0000664000175000017500000000030712544707704023304 00000000000000importSHP - NULL table :memory: #use in-memory database SELECT ImportSHP('shapefile', NULL, 'UTF-8'); 1 # rows (not including the header row) 1 # columns ImportSHP('shapefile', NULL, 'UTF-8') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importshp6.testcase0000664000175000017500000000035212544707704023310 00000000000000importSHP - NULL geo-column :memory: #use in-memory database SELECT ImportSHP('shapefile', 'table', 'UTF-8', 4326, NULL); 1 # rows (not including the header row) 1 # columns ImportSHP('shapefile', 'table', 'UTF-8', 4326, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/blobfromfile4.testcase0000664000175000017500000000027012544707704023722 00000000000000blobfromfile - emptyfile :memory: #use in-memory database SELECT BlobFromFile("emptyfile.txt") 1 # rows (not including the header row) 1 # columns BlobFromFile("emptyfile.txt") (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportgeojson11.testcase0000664000175000017500000000037712544707704024254 00000000000000exportGeoJSON - undefined format :memory: #use in-memory database SELECT ExportGeoJSON('table', 'geom', 'sample.geojson', 'crazy', 6); 1 # rows (not including the header row) 1 # columns ExportGeoJSON('table', 'geom', 'sample.geojson', 'crazy', 6) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportgeojson3.testcase0000664000175000017500000000031412544707704024164 00000000000000exportGeoJSON - NULL filename :memory: #use in-memory database SELECT ExportGeoJSON('table', 'geom', NULL); 1 # rows (not including the header row) 1 # columns ExportGeoJSON('table', 'geom', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdbf5.testcase0000664000175000017500000000035012544707704023246 00000000000000importDBF - NULL text_dates :memory: #use in-memory database SELECT ImportDBF('test.dbf', 'table', 'UTF-8', 'id', NULL); 1 # rows (not including the header row) 1 # columns ImportDBF('test.dbf', 'table', 'UTF-8', 'id', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxf12.testcase0000664000175000017500000000044012544707704023352 00000000000000importDXF - Not existing DXF :memory: #use in-memory database SELECT ImportDXF('sample.dxf', 4326, 1, '3D', 'DISTINCT', 'UNLINKED', 'prefix', 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXF('sample.dxf', 4326, 1, '3D', 'DISTINCT', 'UNLINKED', 'prefix', 'layer') 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/eval4.testcase0000664000175000017500000000036112544707704022210 00000000000000eval('SELECT 1 + 10, 2 * 10, sqrt(225)', ';') :memory: #use in-memory database SELECT eval('SELECT 1 + 10, 2 * 10, sqrt(225)', ';') 1 # rows (not including the header row) 1 # columns eval('SELECT 1 + 10, 2 * 10, sqrt(225)', ';') 11;20;15.0 libspatialite-4.3.0a/test/sql_stmt_security_tests/importshp12.testcase0000664000175000017500000000045212544707704023366 00000000000000importSHP - NULL text_dates :memory: #use in-memory database SELECT ImportSHP('shapefile', 'table', 'UTF-8', 4326, 'geom', 'id', 'POINT', 1, 1, 1, NULL); 1 # rows (not including the header row) 1 # columns ImportSHP('shapefile', 'table', 'UTF-8', 4326, 'geom', 'id', 'POINT', 1, 1, 1, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/Makefile.am0000664000175000017500000000515012544707704021475 00000000000000 EXTRA_DIST = blobfromfile1.testcase \ blobfromfile2.testcase \ blobfromfile3.testcase \ blobfromfile4.testcase \ blobtofile1.testcase \ blobtofile2.testcase \ blobtofile3.testcase \ blobtofile4.testcase \ eval1.testcase \ eval2.testcase \ eval3.testcase \ eval4.testcase \ exportdbf1.testcase \ exportdbf2.testcase \ exportdbf3.testcase \ exportdbf4.testcase \ exportdxf1.testcase \ exportdxf2.testcase \ exportdxf3.testcase \ exportdxf4.testcase \ exportdxf5.testcase \ exportdxf6.testcase \ exportdxf7.testcase \ exportdxf7.testcase \ exportdxf8.testcase \ exportdxf9.testcase \ exportdxf10.testcase \ exportgeojson1.testcase \ exportgeojson2.testcase \ exportgeojson3.testcase \ exportgeojson4.testcase \ exportgeojson5.testcase \ exportgeojson6.testcase \ exportgeojson7.testcase \ exportgeojson8.testcase \ exportgeojson9.testcase \ exportgeojson10.testcase \ exportgeojson11.testcase \ exportkml1.testcase \ exportkml2.testcase \ exportkml3.testcase \ exportkml4.testcase \ exportkml5.testcase \ exportkml6.testcase \ exportkml7.testcase \ exportshp1.testcase \ exportshp2.testcase \ exportshp3.testcase \ exportshp4.testcase \ exportshp5.testcase \ exportshp6.testcase \ exportdxf11.testcase \ importdbf1.testcase \ importdbf2.testcase \ importdbf3.testcase \ importdbf4.testcase \ importdbf5.testcase \ importdbf6.testcase \ importdbf7.testcase \ importdxf1.testcase \ importdxf2.testcase \ importdxf3.testcase \ importdxf4.testcase \ importdxf5.testcase \ importdxf6.testcase \ importdxf7.testcase \ importdxf8.testcase \ importdxf9.testcase \ importdxf10.testcase \ importdxf11.testcase \ importdxf12.testcase \ importdxf13.testcase \ importdxf14.testcase \ importdxf15.testcase \ importdxf16.testcase \ importdxfdir1.testcase \ importdxfdir2.testcase \ importdxfdir3.testcase \ importdxfdir4.testcase \ importdxfdir5.testcase \ importdxfdir6.testcase \ importdxfdir7.testcase \ importdxfdir8.testcase \ importdxfdir9.testcase \ importdxfdir10.testcase \ importdxfdir11.testcase \ importdxfdir12.testcase \ importdxfdir13.testcase \ importdxfdir14.testcase \ importdxfdir15.testcase \ importdxfdir16.testcase \ importshp1.testcase \ importshp2.testcase \ importshp3.testcase \ importshp4.testcase \ importshp5.testcase \ importshp6.testcase \ importshp7.testcase \ importshp8.testcase \ importshp9.testcase \ importshp10.testcase \ importshp11.testcase \ importshp12.testcase \ importshp13.testcase \ importshp14.testcase \ isXblob1.testcase \ isXblob2.testcase \ isXblob3.testcase \ isXblob4.testcase \ isXblob8.testcase \ isXblob9.testcase libspatialite-4.3.0a/test/sql_stmt_security_tests/importshp9.testcase0000664000175000017500000000042612544707704023315 00000000000000importSHP - NULL coerce2d :memory: #use in-memory database SELECT ImportSHP('shapefile', 'table', 'UTF-8', 4326, 'geom', 'id', 'POINT', NULL); 1 # rows (not including the header row) 1 # columns ImportSHP('shapefile', 'table', 'UTF-8', 4326, 'geom', 'id', 'POINT', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportdxf1.testcase0000664000175000017500000000052012544707704023276 00000000000000exportDXF - null directory :memory: #use in-memory database SELECT ExportDXF(NULL, 'test.dxf', 'sql', 'layer', 'geom', 'label', 'height', 'rotation', BuildMBR(0, 0, 10, 10)); 1 # rows (not including the header row) 1 # columns ExportDXF(NULL, 'test.dxf', 'sql', 'layer', 'geom', 'label', 'height', 'rotation', BuildMBR(0, 0, 10, 10)) 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/importshp4.testcase0000664000175000017500000000033012544707704023302 00000000000000importSHP - NULL srid :memory: #use in-memory database SELECT ImportSHP('shapefile', 'table', 'UTF-8', NULL); 1 # rows (not including the header row) 1 # columns ImportSHP('shapefile', 'table', 'UTF-8', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxf8.testcase0000664000175000017500000000040512544707704023300 00000000000000importDXF - NULL prefix :memory: #use in-memory database SELECT ImportDXF('sample.dxf', 4326, 1, '2D', 'MIXED', 'NONE', NULL, 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXF('sample.dxf', 4326, 1, '2D', 'MIXED', 'NONE', NULL, 'layer') 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/importdbf1.testcase0000664000175000017500000000030212544707704023237 00000000000000importDBF - NULL filename :memory: #use in-memory database SELECT ImportDBF(NULL, 'table', 'UTF-8'); 1 # rows (not including the header row) 1 # columns ImportDBF(NULL, 'table', 'UTF-8') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxf13.testcase0000664000175000017500000000045312544707704023357 00000000000000importDXF - invalid dimensions :memory: #use in-memory database SELECT ImportDXF('sample.dxf', 4326, 1, '123D', 'DISTINCT', 'UNLINKED', 'prefix', 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXF('sample.dxf', 4326, 1, '123D', 'DISTINCT', 'UNLINKED', 'prefix', 'layer') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/blobfromfile2.testcase0000664000175000017500000000023512544707704023721 00000000000000blobfromfile - non-text :memory: #use in-memory database SELECT BlobFromFile(32) 1 # rows (not including the header row) 1 # columns BlobFromFile(32) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportgeojson7.testcase0000664000175000017500000000040012544707704024164 00000000000000exportGeoJSON - not existing table #2 :memory: #use in-memory database SELECT ExportGeoJSON('table', 'geom', 'sample.geojson', 'MBR', 6); 1 # rows (not including the header row) 1 # columns ExportGeoJSON('table', 'geom', 'sample.geojson', 'MBR', 6) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdbf3.testcase0000664000175000017500000000030712544707704023246 00000000000000importDBF - NULL charset :memory: #use in-memory database SELECT ImportDBF('test.dbf', 'table', NULL); 1 # rows (not including the header row) 1 # columns ImportDBF('test.dbf', 'table', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxfdir16.testcase0000664000175000017500000000042612544707704024061 00000000000000importDXFfromDir - existing file :memory: #use in-memory database SELECT ImportDXFfromDir('.', 32632, 1, '3D', 'DISTINCT', 'NONE', 'prefix_', NULL); 1 # rows (not including the header row) 1 # columns ImportDXFfromDir('.', 32632, 1, '3D', 'DISTINCT', 'NONE', 'prefix_', NULL) 9 libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxfdir13.testcase0000664000175000017500000000045612544707704024061 00000000000000importDXFfromDir - invalid dimensions :memory: #use in-memory database SELECT ImportDXFfromDir('.', 4326, 1, '123D', 'DISTINCT', 'UNLINKED', 'prefix', 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXFfromDir('.', 4326, 1, '123D', 'DISTINCT', 'UNLINKED', 'prefix', 'layer') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportdbf2.testcase0000664000175000017500000000030212544707704023247 00000000000000exportDBF - NULL filename :memory: #use in-memory database SELECT ExportDBF('table', NULL, 'UTF-8'); 1 # rows (not including the header row) 1 # columns ExportDBF('table', NULL, 'UTF-8') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/blobfromfile1.testcase0000664000175000017500000000024312544707704023717 00000000000000blobfromfile - null input :memory: #use in-memory database SELECT BlobFromFile(null) 1 # rows (not including the header row) 1 # columns BlobFromFile(null) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxf5.testcase0000664000175000017500000000042612544707704023300 00000000000000importDXF - NULL dimensions :memory: #use in-memory database SELECT ImportDXF('sample.dxf', 4326, 1, NULL, 'MIXED', 'NONE', 'prefix', 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXF('sample.dxf', 4326, 1, NULL, 'MIXED', 'NONE', 'prefix', 'layer') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportdxf4.testcase0000664000175000017500000000052012544707704023301 00000000000000exportDXF - null layer :memory: #use in-memory database SELECT ExportDXF('testdir', 'test.dxf', 'sql', NULL, 'geom', 'label', 'height', 'rotation', BuildMBR(0, 0, 10, 10)); 1 # rows (not including the header row) 1 # columns ExportDXF('testdir', 'test.dxf', 'sql', NULL, 'geom', 'label', 'height', 'rotation', BuildMBR(0, 0, 10, 10)) 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/exportdxf8.testcase0000664000175000017500000000051512544707704023311 00000000000000exportDXF - null rotation :memory: #use in-memory database SELECT ExportDXF('testdir', 'test.dxf', 'sql', 'layer', 'geom', 'label', 'height', NULL, BuildMBR(0, 0, 10, 10)); 1 # rows (not including the header row) 1 # columns ExportDXF('testdir', 'test.dxf', 'sql', 'layer', 'geom', 'label', 'height', NULL, BuildMBR(0, 0, 10, 10)) 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxf4.testcase0000664000175000017500000000043412544707704023276 00000000000000importDXF - NULL append :memory: #use in-memory database SELECT ImportDXF('sample.dxf', 4326, NULL, 'AUTO', 'MIXED', 'NONE', 'prefix', 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXF('sample.dxf', 4326, NULL, 'AUTO', 'MIXED', 'NONE', 'prefix', 'layer') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxfdir6.testcase0000664000175000017500000000042112544707704023773 00000000000000importDXFfromDir - NULL mode :memory: #use in-memory database SELECT ImportDXFfromDir('.', 4326, 1, 'AUTO', NULL, 'NONE', 'prefix', 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXFfromDir('.', 4326, 1, 'AUTO', NULL, 'NONE', 'prefix', 'layer') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxfdir3.testcase0000664000175000017500000000042712544707704023776 00000000000000importDXFfromDir - NULL srid :memory: #use in-memory database SELECT ImportDXFfromDir('.', NULL, 1, 'AUTO', 'MIXED', 'NONE', 'prefix', 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXFfromDir('.', NULL, 1, 'AUTO', 'MIXED', 'NONE', 'prefix', 'layer') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportgeojson9.testcase0000664000175000017500000000042012544707704024170 00000000000000exportGeoJSON - not existing table #4 :memory: #use in-memory database SELECT ExportGeoJSON('table', 'geom', 'sample.geojson', 'withLongCRS', 6); 1 # rows (not including the header row) 1 # columns ExportGeoJSON('table', 'geom', 'sample.geojson', 'withLongCRS', 6) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importshp1.testcase0000664000175000017500000000030212544707704023276 00000000000000importSHP - NULL filename :memory: #use in-memory database SELECT ImportSHP(NULL, 'table', 'UTF-8'); 1 # rows (not including the header row) 1 # columns ImportSHP(NULL, 'table', 'UTF-8') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportdxf9.testcase0000664000175000017500000000046112544707704023312 00000000000000exportDXF - null BBOX :memory: #use in-memory database SELECT ExportDXF('testdir', 'test.dxf', 'sql', 'layer', 'geom', 'label', 'height', 'rotation', NULL); 1 # rows (not including the header row) 1 # columns ExportDXF('testdir', 'test.dxf', 'sql', 'layer', 'geom', 'label', 'height', 'rotation', NULL) 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/exportkml1.testcase0000664000175000017500000000030712544707704023303 00000000000000exportKML - NULL table :memory: #use in-memory database SELECT ExportKML(NULL, 'geom', 'sample.kml'); 1 # rows (not including the header row) 1 # columns ExportKML(NULL, 'geom', 'sample.kml') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importshp3.testcase0000664000175000017500000000031112544707704023300 00000000000000importSHP - NULL charset :memory: #use in-memory database SELECT ImportSHP('shapefile', 'table', NULL); 1 # rows (not including the header row) 1 # columns ImportSHP('shapefile', 'table', NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/exportkml5.testcase0000664000175000017500000000034512544707704023311 00000000000000exportKML - NULL name_column :memory: #use in-memory database SELECT ExportKML('table', 'geom', 'sample.kml', 6, NULL); 1 # rows (not including the header row) 1 # columns ExportKML('table', 'geom', 'sample.kml', 6, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxfdir12.testcase0000664000175000017500000000044712544707704024060 00000000000000importDXFfromDir - Not existing Dir :memory: #use in-memory database SELECT ImportDXFfromDir('foo', 4326, 1, '3D', 'DISTINCT', 'UNLINKED', 'prefix', 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXFfromDir('foo', 4326, 1, '3D', 'DISTINCT', 'UNLINKED', 'prefix', 'layer') 0 libspatialite-4.3.0a/test/sql_stmt_security_tests/importdxf9.testcase0000664000175000017500000000041512544707704023302 00000000000000importDXF - INT prefix :memory: #use in-memory database SELECT ImportDXF('sample.dxf', 4326, 1, '3D', 'DISTINCT', 'LINKED', 1, 'layer'); 1 # rows (not including the header row) 1 # columns ImportDXF('sample.dxf', 4326, 1, '3D', 'DISTINCT', 'LINKED', 1, 'layer') (NULL) libspatialite-4.3.0a/test/sql_stmt_security_tests/blobtofile2.testcase0000664000175000017500000000032212544707704023375 00000000000000blobtofile - non-Blob payload :memory: #use in-memory database SELECT BlobToFile('alpha', 'abracadabra.outfile') 1 # rows (not including the header row) 1 # columns BlobToFile('alpha', 'abracadabra.outfile') 0 libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/0000775000175000017500000000000012573314326020270 500000000000000libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull4.testcase0000664000175000017500000000026212544707704024477 00000000000000ST_ConcaveHull - NULL input (error) :memory: #use in-memory database SELECT ST_ConcaveHull(NULL); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull16.testcase0000664000175000017500000000130112544707704024555 00000000000000ST_ConcaveHull - allow_holes :memory: #use in-memory database SELECT ST_Area(ST_ConcaveHull(GeomFromText('MULTIPOINT(10 10, 10 12, 10 14, 10 16, 10 18, 10 20, 12 10, 12 12, 12 14, 12 16, 12 18, 12 20, 14 10, 14 12, 14 14, 14 18, 14 20, 17 10, 17 12, 17 14, 17 16, 17 18, 17 20, 16 10, 16 12, 16 14, 16 16, 16 18, 16 20, 18 10, 18 20, 20 10, 20 20)'), 3, 1)); 1 # rows (not including the header row) 1 # columns ST_Area(ST_ConcaveHull(GeomFromText('MULTIPOINT(10 10, 10 12, 10 14, 10 16, 10 18, 10 20, 12 10, 12 12, 12 14, 12 16, 12 18, 12 20, 14 10, 14 12, 14 14, 14 18, 14 20, 17 10, 17 12, 17 14, 17 16, 17 18, 17 20, 16 10, 16 12, 16 14, 16 16, 16 18, 16 20, 18 10, 18 20, 20 10, 20 20)'), 3, 1)) 64.0 libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay3.testcase0000664000175000017500000000031512544707704023635 00000000000000ST_DelaunayTriangulation - integer input (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(1); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj12.testcase0000664000175000017500000000050712544707704023612 00000000000000ST_VoronojDiagram - BLOB tolerance (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 0.0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 0.0, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/Makefile.in0000664000175000017500000003263312573313636022267 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_geosadvanced_tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = concave_hull10.testcase \ concave_hull11.testcase \ concave_hull12.testcase \ concave_hull13.testcase \ concave_hull14.testcase \ concave_hull15.testcase \ concave_hull16.testcase \ concave_hull17.testcase \ concave_hull18.testcase \ concave_hull19.testcase \ concave_hull1.testcase \ concave_hull2.testcase \ concave_hull3.testcase \ concave_hull4.testcase \ concave_hull5.testcase \ concave_hull6.testcase \ concave_hull7.testcase \ concave_hull8.testcase \ concave_hull9.testcase \ delaunay10.testcase \ delaunay11.testcase \ delaunay12.testcase \ delaunay13.testcase \ delaunay14.testcase \ delaunay15.testcase \ delaunay16.testcase \ delaunay17.testcase \ delaunay18.testcase \ delaunay19.testcase \ delaunay1.testcase \ delaunay2.testcase \ delaunay3.testcase \ delaunay4.testcase \ delaunay5.testcase \ delaunay6.testcase \ delaunay7.testcase \ delaunay8.testcase \ delaunay9.testcase \ voronoj10.testcase \ voronoj11.testcase \ voronoj12.testcase \ voronoj13.testcase \ voronoj14.testcase \ voronoj15.testcase \ voronoj16.testcase \ voronoj17.testcase \ voronoj18.testcase \ voronoj19.testcase \ voronoj1.testcase \ voronoj20.testcase \ voronoj2.testcase \ voronoj3.testcase \ voronoj4.testcase \ voronoj5.testcase \ voronoj6.testcase \ voronoj8.testcase \ voronoj9.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_geosadvanced_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_geosadvanced_tests/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj11.testcase0000664000175000017500000000046612544707704023615 00000000000000ST_VoronojDiagram - NULL extra_frame_size (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, NULL); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj6.testcase0000664000175000017500000000046012544707704023533 00000000000000ST_VoronojDiagram - text edges_only (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull11.testcase0000664000175000017500000000045012544707704024554 00000000000000ST_ConcaveHull - NULL allow_holes (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, NULL); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj13.testcase0000664000175000017500000000050012544707704023604 00000000000000ST_VoronojDiagram - text tolerancey (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 0.0, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 0.0, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay9.testcase0000664000175000017500000000052212544707704023643 00000000000000ST_DelaunayTriangulation - BLOB tolerance (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay6.testcase0000664000175000017500000000050512544707704023641 00000000000000ST_DelaunayTriangulation - text edges_only (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj8.testcase0000664000175000017500000000045212544707704023536 00000000000000ST_VoronojDiagram - double edges_only (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0.0); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull7.testcase0000664000175000017500000000043512544707704024504 00000000000000ST_ConcaveHull - NULL factor (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), NULL); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay16.testcase0000664000175000017500000000124412544707704023723 00000000000000ST_DelaunayTriangulation XYM - (only_edges=no) :memory: #use in-memory database SELECT ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTM(0 0 10, 1 1 11, 2 2 12, 0 1 13, 2 1 14)'), 0), GeomFromText('MULTIPOLYGONM(((0 1 0, 1 1 0, 0 0 0, 0 1 0)), ((0 1 0, 2 2 0, 1 1 0, 0 1 0)), ((2 2 0, 2 1 0, 1 1 0, 2 2 0)), ((0 0 0, 1 1 0, 2 1 0, 0 0 0)))')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTM(0 0 10, 1 1 11, 2 2 12, 0 1 13, 2 1 14)'), 0), GeomFromText('MULTIPOLYGONM(((0 1 0, 1 1 0, 0 0 0, 0 1 0)), ((0 1 0, 2 2 0, 1 1 0, 0 1 0)), ((2 2 0, 2 1 0, 1 1 0, 2 2 0)), ((0 0 0, 1 1 0, 2 1 0, 0 0 0)))')) 1 libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj5.testcase0000664000175000017500000000045212544707704023533 00000000000000ST_VoronojDiagram - NULL edges_only (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), NULL); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj4.testcase0000664000175000017500000000027312544707704023533 00000000000000ST_VoronojDiagram - NULL input (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(NULL); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay1.testcase0000664000175000017500000000034612544707704023637 00000000000000ST_DelaunayTriangulation - Invalid BLOB input (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull19.testcase0000664000175000017500000000335012544707704024566 00000000000000ST_ConcaveHull XYZM - no_holes :memory: #use in-memory database SELECT ST_Equals(ST_ConcaveHull(GeomFromText('MULTIPOINTZM(10 10 100 10, 10 12 100 10, 10 14 100 10, 10 16 100 10, 10 18 100 10, 10 20 100 10, 12 10 100 10, 12 12 100 10, 12 14 100 10, 12 16 100 10, 12 18 100 10, 12 20 100 10, 14 10 100 10, 14 12 100 10, 14 14 100 10, 14 18 100 10, 14 20 100 10, 17 10 100 10, 17 12 100 10, 17 14 100 10, 17 16 100 10, 17 18 100 10, 17 20 100 10, 16 10 100 10, 16 12 100 10, 16 14 100 10, 16 16 100 10, 16 18 100 10, 16 20 100 10, 18 10 100 10, 18 20 100 10, 20 10 100 10, 20 20 100 10)')), GeomfromText('POLYGON ZM((12 10 100 0, 10 10 100 0, 10 12 100 0, 10 14 100 0, 10 16 100 0, 10 18 100 0, 10 20 100 0, 12 20 100 0, 14 20 100 0, 16 20 100 0, 17 20 100 0, 18 20 100 0, 17 18 100 0, 17 16 100 0, 17 14 100 0, 17 12 100 0, 18 10 100 0, 17 10 100 0, 16 10 100 0, 14 10 100 0, 12 10 100 0))')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_ConcaveHull(GeomFromText('MULTIPOINTZM(10 10 100 10, 10 12 100 10, 10 14 100 10, 10 16 100 10, 10 18 100 10, 10 20 100 10, 12 10 100 10, 12 12 100 10, 12 14 100 10, 12 16 100 10, 12 18 100 10, 12 20 100 10, 14 10 100 10, 14 12 100 10, 14 14 100 10, 14 18 100 10, 14 20 100 10, 17 10 100 10, 17 12 100 10, 17 14 100 10, 17 16 100 10, 17 18 100 10, 17 20 100 10, 16 10 100 10, 16 12 100 10, 16 14 100 10, 16 16 100 10, 16 18 100 10, 16 20 100 10, 18 10 100 10, 18 20 100 10, 20 10 100 10, 20 20 100 10)')), GeomfromText('POLYGON ZM((12 10 100 0, 10 10 100 0, 10 12 100 0, 10 14 100 0, 10 16 100 0, 10 18 100 0, 10 20 100 0, 12 20 100 0, 14 20 100 0, 16 20 100 0, 17 20 100 0, 18 20 100 0, 17 18 100 0, 17 16 100 0, 17 14 100 0, 17 12 100 0, 18 10 100 0, 17 10 100 0, 16 10 100 0, 14 10 100 0, 12 10 100 0))')) 1 libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj18.testcase0000664000175000017500000000153612544707704023623 00000000000000ST_VoronojDiagram - XYM (only_edges=no) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINTM(10 5 10, 15 5 11, 20 4 12, 12 3 13, 17 2 14, 16 6 15)'), 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINTM(10 5 10, 15 5 11, 20 4 12, 12 3 13, 17 2 14, 16 6 15)'), 0))) MULTIPOLYGON M(((12.5 5.5 0, 14.5 2.5 0, 14.5 1.5 0, 9.5 1.5 0, 9.5 2.5 0, 12.5 5.5 0)), ((14.5 2.5 0, 12.5 5.5 0, 12.5 8.5 0, 16.9 4.1 0, 14.5 2.5 0)), ((12.5 8.5 0, 12.5 5.5 0, 9.5 2.5 0, 9.5 9 0, 12.416667 9 0, 12.5 8.5 0)), ((16.9 4.1 0, 12.5 8.5 0, 12.416667 9 0, 20 9 0, 17.642857 4.285714 0, 16.9 4.1 0)), ((14.5 2.5 0, 16.9 4.1 0, 17.642857 4.285714 0, 19.5 1.5 0, 14.5 1.5 0, 14.5 2.5 0)), ((19.5 1.5 0, 17.642857 4.285714 0, 20 9 0, 20.5 9 0, 20.5 1.5 0, 19.5 1.5 0))) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj3.testcase0000664000175000017500000000027012544707704023527 00000000000000ST_VoronojDiagram - integer input (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(1); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay2.testcase0000664000175000017500000000032612544707704023636 00000000000000ST_DelaunayTriangulation - text input (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation('alpha'); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay13.testcase0000664000175000017500000000110712544707704023716 00000000000000ST_DelaunayTriangulation XY - (only_edges=yes) :memory: #use in-memory database SELECT ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1), GeomFromText('MULTILINESTRING((0 1, 2 2), (0 0, 0 1), (0 0, 2 1), (2 1, 2 2), (1 1, 2 1), (1 1, 2 2), (0 1, 1 1), (0 0, 1 1))')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1), GeomFromText('MULTILINESTRING((0 1, 2 2), (0 0, 0 1), (0 0, 2 1), (2 1, 2 2), (1 1, 2 1), (1 1, 2 2), (0 1, 1 1), (0 0, 1 1))')) 1libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj15.testcase0000664000175000017500000000135412544707704023616 00000000000000ST_VoronojDiagram - (only_edges=no) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINT(10 5, 15 5, 20 4, 12 3, 17 2, 16 6)'), 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINT(10 5, 15 5, 20 4, 12 3, 17 2, 16 6)'), 0))) MULTIPOLYGON(((12.5 5.5, 14.5 2.5, 14.5 1.5, 9.5 1.5, 9.5 2.5, 12.5 5.5)), ((14.5 2.5, 12.5 5.5, 12.5 8.5, 16.9 4.1, 14.5 2.5)), ((12.5 8.5, 12.5 5.5, 9.5 2.5, 9.5 9, 12.416667 9, 12.5 8.5)), ((16.9 4.1, 12.5 8.5, 12.416667 9, 20 9, 17.642857 4.285714, 16.9 4.1)), ((14.5 2.5, 16.9 4.1, 17.642857 4.285714, 19.5 1.5, 14.5 1.5, 14.5 2.5)), ((19.5 1.5, 17.642857 4.285714, 20 9, 20.5 9, 20.5 1.5, 19.5 1.5))) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull13.testcase0000664000175000017500000000046212544707704024561 00000000000000ST_ConcaveHull - text tolerance (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 1, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 1, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay15.testcase0000664000175000017500000000130712544707704023722 00000000000000ST_DelaunayTriangulation - (only_edges=yes) :memory: #use in-memory database SELECT ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTZ(0 0 10, 1 1 11, 2 2 12, 0 1 13, 2 1 14)'), 1), GeomFromText('MULTILINESTRINGZ((0 1 13, 2 2 12), (0 0 10, 0 1 13), (0 0 10, 2 1 14), (2 1 14, 2 2 12), (1 1 11, 2 1 14), (1 1 11, 2 2 12), (0 1 13, 1 1 11), (0 0 10, 1 1 11))')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTZ(0 0 10, 1 1 11, 2 2 12, 0 1 13, 2 1 14)'), 1), GeomFromText('MULTILINESTRINGZ((0 1 13, 2 2 12), (0 0 10, 0 1 13), (0 0 10, 2 1 14), (2 1 14, 2 2 12), (1 1 11, 2 1 14), (1 1 11, 2 2 12), (0 1 13, 1 1 11), (0 0 10, 1 1 11))')) 1 libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull15.testcase0000664000175000017500000000126212544707704024562 00000000000000ST_ConcaveHull - no_holes :memory: #use in-memory database SELECT ST_Area(ST_ConcaveHull(GeomFromText('MULTIPOINT(10 10, 10 12, 10 14, 10 16, 10 18, 10 20, 12 10, 12 12, 12 14, 12 16, 12 18, 12 20, 14 10, 14 12, 14 14, 14 18, 14 20, 17 10, 17 12, 17 14, 17 16, 17 18, 17 20, 16 10, 16 12, 16 14, 16 16, 16 18, 16 20, 18 10, 18 20, 20 10, 20 20)'))); 1 # rows (not including the header row) 1 # columns ST_Area(ST_ConcaveHull(GeomFromText('MULTIPOINT(10 10, 10 12, 10 14, 10 16, 10 18, 10 20, 12 10, 12 12, 12 14, 12 16, 12 18, 12 20, 14 10, 14 12, 14 14, 14 18, 14 20, 17 10, 17 12, 17 14, 17 16, 17 18, 17 20, 16 10, 16 12, 16 14, 16 16, 16 18, 16 20, 18 10, 18 20, 20 10, 20 20)'))) 72.0 libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull3.testcase0000664000175000017500000000025712544707704024502 00000000000000ST_ConcaveHull - integer input (error) :memory: #use in-memory database SELECT ST_ConcaveHull(1); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(1) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj1.testcase0000664000175000017500000000032112544707704023522 00000000000000ST_VoronojDiagram - Invalid BLOB input (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj14.testcase0000664000175000017500000000047112544707704023614 00000000000000ST_VoronojDiagram - NULL tolerance (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 0.0, NULL); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 0.0, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay7.testcase0000664000175000017500000000051512544707704023643 00000000000000ST_DelaunayTriangulation - BLOB edges_only (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj16.testcase0000664000175000017500000000113612544707704023615 00000000000000ST_VoronojDiagram - (only_edges=yes) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINT(10 5, 15 5, 20 4, 12 3, 17 2, 16 6)'), 1))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINT(10 5, 15 5, 20 4, 12 3, 17 2, 16 6)'), 1))) MULTILINESTRING((12.5 5.5, 14.5 2.5), (12.5 5.5, 12.5 8.5), (12.5 5.5, 9.5 2.5), (12.5 8.5, 16.9 4.1), (12.5 8.5, 12.416667 9), (16.9 4.1, 14.5 2.5), (16.9 4.1, 17.642857 4.285714), (17.642857 4.285714, 19.5 1.5), (17.642857 4.285714, 20 9), (14.5 2.5, 14.5 1.5)) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay12.testcase0000664000175000017500000000110112544707704023707 00000000000000ST_DelaunayTriangulation XY - (only_edges=no) :memory: #use in-memory database SELECT ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0), GeomFromText('MULTIPOLYGON(((0 1, 1 1, 0 0, 0 1)), ((0 1, 2 2, 1 1, 0 1)), ((2 2, 2 1, 1 1, 2 2)), ((0 0, 1 1, 2 1, 0 0)))')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0), GeomFromText('MULTIPOLYGON(((0 1, 1 1, 0 0, 0 1)), ((0 1, 2 2, 1 1, 0 1)), ((2 2, 2 1, 1 1, 2 2)), ((0 0, 1 1, 2 1, 0 0)))')) 1 libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay11.testcase0000664000175000017500000000050412544707704023714 00000000000000ST_DelaunayTriangulation - NULL tolerance (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, NULL); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj17.testcase0000664000175000017500000000153212544707704023616 00000000000000ST_VoronojDiagram - (only_edges=no) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINTZ(10 5 10, 15 5 11, 20 4 12, 12 3 13, 17 2 14, 16 6 15)'), 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINTZ(10 5 10, 15 5 11, 20 4 12, 12 3 13, 17 2 14, 16 6 15)'), 0))) MULTIPOLYGON Z(((12.5 5.5 0, 14.5 2.5 0, 14.5 1.5 0, 9.5 1.5 0, 9.5 2.5 0, 12.5 5.5 0)), ((14.5 2.5 0, 12.5 5.5 0, 12.5 8.5 0, 16.9 4.1 0, 14.5 2.5 0)), ((12.5 8.5 0, 12.5 5.5 0, 9.5 2.5 0, 9.5 9 0, 12.416667 9 0, 12.5 8.5 0)), ((16.9 4.1 0, 12.5 8.5 0, 12.416667 9 0, 20 9 0, 17.642857 4.285714 0, 16.9 4.1 0)), ((14.5 2.5 0, 16.9 4.1 0, 17.642857 4.285714 0, 19.5 1.5 0, 14.5 1.5 0, 14.5 2.5 0)), ((19.5 1.5 0, 17.642857 4.285714 0, 20 9 0, 20.5 9 0, 20.5 1.5 0, 19.5 1.5 0))) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull2.testcase0000664000175000017500000000027012544707704024474 00000000000000ST_ConcaveHull - text input (error) :memory: #use in-memory database SELECT ST_ConcaveHull('alpha'); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull14.testcase0000664000175000017500000000045412544707704024563 00000000000000ST_ConcaveHull - NULL tolerance (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 1, NULL); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 1, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull18.testcase0000664000175000017500000000256512544707704024574 00000000000000ST_ConcaveHull XYM - no_holes :memory: #use in-memory database SELECT ST_Equals(ST_ConcaveHull(GeomFromText('MULTIPOINTM(10 10 100, 10 12 100, 10 14 100, 10 16 100, 10 18 100, 10 20 100, 12 10 100, 12 12 100, 12 14 100, 12 16 100, 12 18 100, 12 20 100, 14 10 100, 14 12 100, 14 14 100, 14 18 100, 14 20 100, 17 10 100, 17 12 100, 17 14 100, 17 16 100, 17 18 100, 17 20 100, 16 10 100, 16 12 100, 16 14 100, 16 16 100, 16 18 100, 16 20 100, 18 10 100, 18 20 100, 20 10 100, 20 20 100)')), GeomFromText('POLYGON M((12 10 0, 10 10 0, 10 12 0, 10 14 0, 10 16 0, 10 18 0, 10 20 0, 12 20 0, 14 20 0, 16 20 0, 17 20 0, 18 20 0, 17 18 0, 17 16 0, 17 14 0, 17 12 0, 18 10 0, 17 10 0, 16 10 0, 14 10 0, 12 10 0))')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_ConcaveHull(GeomFromText('MULTIPOINTM(10 10 100, 10 12 100, 10 14 100, 10 16 100, 10 18 100, 10 20 100, 12 10 100, 12 12 100, 12 14 100, 12 16 100, 12 18 100, 12 20 100, 14 10 100, 14 12 100, 14 14 100, 14 18 100, 14 20 100, 17 10 100, 17 12 100, 17 14 100, 17 16 100, 17 18 100, 17 20 100, 16 10 100, 16 12 100, 16 14 100, 16 16 100, 16 18 100, 16 20 100, 18 10 100, 18 20 100, 20 10 100, 20 20 100)')), GeomFromText('POLYGON M((12 10 0, 10 10 0, 10 12 0, 10 14 0, 10 16 0, 10 18 0, 10 20 0, 12 20 0, 14 20 0, 16 20 0, 17 20 0, 18 20 0, 17 18 0, 17 16 0, 17 14 0, 17 12 0, 18 10 0, 17 10 0, 16 10 0, 14 10 0, 12 10 0))')) 1 libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay8.testcase0000664000175000017500000000047712544707704023653 00000000000000ST_DelaunayTriangulation - double edges_only (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0.0); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull6.testcase0000664000175000017500000000044312544707704024502 00000000000000ST_ConcaveHull - text factor (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay19.testcase0000664000175000017500000000145012544707704023725 00000000000000ST_DelaunayTriangulation XYZM - (only_edges=yes) :memory: #use in-memory database SELECT ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTZM(0 0 10 1, 1 1 11 2, 2 2 12 3, 0 1 13 4, 2 1 14 5)'), 1), GeomFromText('MULTILINESTRINGZM((0 1 13 0, 2 2 12 0), (0 0 10 0, 0 1 13 0), (0 0 10 0, 2 1 14 0), (2 1 14 0, 2 2 12 0), (1 1 11 0, 2 1 14 0), (1 1 11 0, 2 2 12 0), (0 1 13 0, 1 1 11 0), (0 0 10 0, 1 1 11 0)) ')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTZM(0 0 10 1, 1 1 11 2, 2 2 12 3, 0 1 13 4, 2 1 14 5)'), 1), GeomFromText('MULTILINESTRINGZM((0 1 13 0, 2 2 12 0), (0 0 10 0, 0 1 13 0), (0 0 10 0, 2 1 14 0), (2 1 14 0, 2 2 12 0), (1 1 11 0, 2 1 14 0), (1 1 11 0, 2 2 12 0), (0 1 13 0, 1 1 11 0), (0 0 10 0, 1 1 11 0)) ')) 1 libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj10.testcase0000664000175000017500000000047412544707704023613 00000000000000ST_VoronojDiagram - text extra_frame_size (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull5.testcase0000664000175000017500000000045312544707704024502 00000000000000ST_ConcaveHull - BLOB factor (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay4.testcase0000664000175000017500000000032012544707704023632 00000000000000ST_DelaunayTriangulation - NULL input (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(NULL); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay10.testcase0000664000175000017500000000051312544707704023713 00000000000000ST_DelaunayTriangulation - text tolerancey (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay5.testcase0000664000175000017500000000047712544707704023650 00000000000000ST_DelaunayTriangulation - NULL edges_only (error) :memory: #use in-memory database SELECT ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), NULL); 1 # rows (not including the header row) 1 # columns ST_DelaunayTriangulation(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj9.testcase0000664000175000017500000000047512544707704023544 00000000000000ST_VoronojDiagram - BLOB tolerance (error) :memory: #use in-memory database SELECT ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 0, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj2.testcase0000664000175000017500000000030112544707704023521 00000000000000ST_VoronojDiagram - text input (error) :memory: #use in-memory database SELECT ST_VoronojDiagram('alpha'); 1 # rows (not including the header row) 1 # columns ST_VoronojDiagram('alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull1.testcase0000664000175000017500000000031012544707704024466 00000000000000ST_ConcaveHull - Invalid BLOB input (error) :memory: #use in-memory database SELECT ST_ConcaveHull(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull8.testcase0000664000175000017500000000046612544707704024511 00000000000000ST_ConcaveHull - BLOB allow_holes (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay14.testcase0000664000175000017500000000130412544707704023716 00000000000000ST_DelaunayTriangulation XYZ - (only_edges=no) :memory: #use in-memory database SELECT ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTZ(0 0 10, 1 1 11, 2 2 12, 0 1 13, 2 1 14)'), 0), GeomFromText('MULTIPOLYGONZ(((0 1 13, 1 1 11, 0 0 10, 0 1 13)), ((0 1 13, 2 2 12, 1 1 11, 0 1 13)), ((2 2 12, 2 1 14, 1 1 11, 2 2 12)), ((0 0 10, 1 1 11, 2 1 14, 0 0 10)))')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTZ(0 0 10, 1 1 11, 2 2 12, 0 1 13, 2 1 14)'), 0), GeomFromText('MULTIPOLYGONZ(((0 1 13, 1 1 11, 0 0 10, 0 1 13)), ((0 1 13, 2 2 12, 1 1 11, 0 1 13)), ((2 2 12, 2 1 14, 1 1 11, 2 2 12)), ((0 0 10, 1 1 11, 2 1 14, 0 0 10)))')) 1 libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay18.testcase0000664000175000017500000000144112544707704023724 00000000000000ST_DelaunayTriangulation XYZM - (only_edges=no) :memory: #use in-memory database SELECT ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTZM(0 0 10 1, 1 1 11 2, 2 2 12 3, 0 1 13 4, 2 1 14 5)'), 0), GeomFromText('MULTIPOLYGONZM(((0 1 13 0, 1 1 11 0, 0 0 10 0, 0 1 13 0)), ((0 1 13 0, 2 2 12 0, 1 1 11 0, 0 1 13 0)), ((2 2 12 0, 2 1 14 0, 1 1 11 0, 2 2 12 0)), ((0 0 10 0, 1 1 11 0, 2 1 14 0, 0 0 10 0))) ')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTZM(0 0 10 1, 1 1 11 2, 2 2 12 3, 0 1 13 4, 2 1 14 5)'), 0), GeomFromText('MULTIPOLYGONZM(((0 1 13 0, 1 1 11 0, 0 0 10 0, 0 1 13 0)), ((0 1 13 0, 2 2 12 0, 1 1 11 0, 0 1 13 0)), ((2 2 12 0, 2 1 14 0, 1 1 11 0, 2 2 12 0)), ((0 0 10 0, 1 1 11 0, 2 1 14 0, 0 0 10 0))) ')) 1 libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj19.testcase0000664000175000017500000000170012544707704023615 00000000000000ST_VoronojDiagram - XYZM (only_edges=no) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINTZM(10 5 10 1, 15 5 11 2, 20 4 12 3, 12 3 13 4, 17 2 14 5, 16 6 15 6)'), 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINTZM(10 5 10 1, 15 5 11 2, 20 4 12 3, 12 3 13 4, 17 2 14 5, 16 6 15 6)'), 0))) MULTIPOLYGON ZM(((12.5 5.5 0 0, 14.5 2.5 0 0, 14.5 1.5 0 0, 9.5 1.5 0 0, 9.5 2.5 0 0, 12.5 5.5 0 0)), ((14.5 2.5 0 0, 12.5 5.5 0 0, 12.5 8.5 0 0, 16.9 4.1 0 0, 14.5 2.5 0 0)), ((12.5 8.5 0 0, 12.5 5.5 0 0, 9.5 2.5 0 0, 9.5 9 0 0, 12.416667 9 0 0, 12.5 8.5 0 0)), ((16.9 4.1 0 0, 12.5 8.5 0 0, 12.416667 9 0 0, 20 9 0 0, 17.642857 4.285714 0 0, 16.9 4.1 0 0)), ((14.5 2.5 0 0, 16.9 4.1 0 0, 17.642857 4.285714 0 0, 19.5 1.5 0 0, 14.5 1.5 0 0, 14.5 2.5 0 0)), ((19.5 1.5 0 0, 17.642857 4.285714 0 0, 20 9 0 0, 20.5 9 0 0, 20.5 1.5 0 0, 19.5 1.5 0 0))) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/Makefile.am0000664000175000017500000000251212544707704022250 00000000000000 EXTRA_DIST = concave_hull10.testcase \ concave_hull11.testcase \ concave_hull12.testcase \ concave_hull13.testcase \ concave_hull14.testcase \ concave_hull15.testcase \ concave_hull16.testcase \ concave_hull17.testcase \ concave_hull18.testcase \ concave_hull19.testcase \ concave_hull1.testcase \ concave_hull2.testcase \ concave_hull3.testcase \ concave_hull4.testcase \ concave_hull5.testcase \ concave_hull6.testcase \ concave_hull7.testcase \ concave_hull8.testcase \ concave_hull9.testcase \ delaunay10.testcase \ delaunay11.testcase \ delaunay12.testcase \ delaunay13.testcase \ delaunay14.testcase \ delaunay15.testcase \ delaunay16.testcase \ delaunay17.testcase \ delaunay18.testcase \ delaunay19.testcase \ delaunay1.testcase \ delaunay2.testcase \ delaunay3.testcase \ delaunay4.testcase \ delaunay5.testcase \ delaunay6.testcase \ delaunay7.testcase \ delaunay8.testcase \ delaunay9.testcase \ voronoj10.testcase \ voronoj11.testcase \ voronoj12.testcase \ voronoj13.testcase \ voronoj14.testcase \ voronoj15.testcase \ voronoj16.testcase \ voronoj17.testcase \ voronoj18.testcase \ voronoj19.testcase \ voronoj1.testcase \ voronoj20.testcase \ voronoj2.testcase \ voronoj3.testcase \ voronoj4.testcase \ voronoj5.testcase \ voronoj6.testcase \ voronoj8.testcase \ voronoj9.testcase libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/delaunay17.testcase0000664000175000017500000000125712544707704023730 00000000000000ST_DelaunayTriangulation XYM - (only_edges=yes) :memory: #use in-memory database SELECT ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTM(0 0 10, 1 1 11, 2 2 12, 0 1 13, 2 1 14)'), 1), GeomFromText('MULTILINESTRINGM((0 1 0, 2 2 0), (0 0 0, 0 1 0), (0 0 0, 2 1 0), (2 1 0, 2 2 0), (1 1 0, 2 1 0), (1 1 0, 2 2 0), (0 1 0, 1 1 0), (0 0 0, 1 1 0)) ')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_DelaunayTriangulation(GeomFromText('MULTIPOINTM(0 0 10, 1 1 11, 2 2 12, 0 1 13, 2 1 14)'), 1), GeomFromText('MULTILINESTRINGM((0 1 0, 2 2 0), (0 0 0, 0 1 0), (0 0 0, 2 1 0), (2 1 0, 2 2 0), (1 1 0, 2 1 0), (1 1 0, 2 2 0), (0 1 0, 1 1 0), (0 0 0, 1 1 0)) ')) 1 libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/voronoj20.testcase0000664000175000017500000000152412544707704023611 00000000000000ST_VoronojDiagram - (only_edges=no) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINT(5 10, 2 15, 4 20, 3 12, 2 17, 6 16)'), 0))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(ST_VoronojDiagram(GeomFromText('MULTIPOINT(5 10, 2 15, 4 20, 3 12, 2 17, 6 16)'), 0))) MULTIPOLYGON(((3.875 16, 4.346154 14.115385, 1.5 13.166667, 1.5 16, 3.875 16)), ((4.346154 14.115385, 3.875 16, 4.285714 17.642857, 6.5 18.75, 6.5 12.833333, 5.928571 12.928571, 4.346154 14.115385)), ((4.285714 17.642857, 3.875 16, 1.5 16, 1.5 19.5, 4.285714 17.642857)), ((6.5 18.75, 4.285714 17.642857, 1.5 19.5, 1.5 20.5, 6.5 20.5, 6.5 18.75)), ((4.346154 14.115385, 5.928571 12.928571, 2.5 9.5, 1.5 9.5, 1.5 13.166667, 4.346154 14.115385)), ((2.5 9.5, 5.928571 12.928571, 6.5 12.833333, 6.5 9.5, 2.5 9.5))) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull17.testcase0000664000175000017500000000270712544707704024571 00000000000000ST_ConcaveHull XYZ - no_holes :memory: #use in-memory database SELECT ST_Equals(ST_ConcaveHull(GeomFromText('MULTIPOINTZ(10 10 100, 10 12 100, 10 14 100, 10 16 100, 10 18 100, 10 20 100, 12 10 100, 12 12 100, 12 14 100, 12 16 100, 12 18 100, 12 20 100, 14 10 100, 14 12 100, 14 14 100, 14 18 100, 14 20 100, 17 10 100, 17 12 100, 17 14 100, 17 16 100, 17 18 100, 17 20 100, 16 10 100, 16 12 100, 16 14 100, 16 16 100, 16 18 100, 16 20 100, 18 10 100, 18 20 100, 20 10 100, 20 20 100)')), GeomFromText('POLYGONZ((12 10 100, 10 10 100, 10 12 100, 10 14 100, 10 16 100, 10 18 100, 10 20 100, 12 20 100, 14 20 100, 16 20 100, 17 20 100, 18 20 100, 17 18 100, 17 16 100, 17 14 100, 17 12 100, 18 10 100, 17 10 100, 16 10 100, 14 10 100, 12 10 100))')); 1 # rows (not including the header row) 1 # columns ST_Equals(ST_ConcaveHull(GeomFromText('MULTIPOINTZ(10 10 100, 10 12 100, 10 14 100, 10 16 100, 10 18 100, 10 20 100, 12 10 100, 12 12 100, 12 14 100, 12 16 100, 12 18 100, 12 20 100, 14 10 100, 14 12 100, 14 14 100, 14 18 100, 14 20 100, 17 10 100, 17 12 100, 17 14 100, 17 16 100, 17 18 100, 17 20 100, 16 10 100, 16 12 100, 16 14 100, 16 16 100, 16 18 100, 16 20 100, 18 10 100, 18 20 100, 20 10 100, 20 20 100)')), GeomFromText('POLYGONZ((12 10 100, 10 10 100, 10 12 100, 10 14 100, 10 16 100, 10 18 100, 10 20 100, 12 20 100, 14 20 100, 16 20 100, 17 20 100, 18 20 100, 17 18 100, 17 16 100, 17 14 100, 17 12 100, 18 10 100, 17 10 100, 16 10 100, 14 10 100, 12 10 100))')) 1 libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull10.testcase0000664000175000017500000000045012544707704024553 00000000000000ST_ConcaveHull - double allow_holes (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 2.3); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 2.3) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull12.testcase0000664000175000017500000000047212544707704024561 00000000000000ST_ConcaveHull - BLOB tolerance (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 1, zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 1, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geosadvanced_tests/concave_hull9.testcase0000664000175000017500000000045612544707704024511 00000000000000ST_ConcaveHull - text allow_holes (error) :memory: #use in-memory database SELECT ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 'alpha'); 1 # rows (not including the header row) 1 # columns ST_ConcaveHull(GeomFromText('MULTIPOINT(0 0, 1 1, 2 2, 0 1, 2 1)'), 1, 'alpha') (NULL) libspatialite-4.3.0a/test/tile100.jpeg0000664000175000017500000002164412544707704014455 00000000000000ÿØÿàJFIFÿÛC  !"$"$ÿÛCÿÂ"ÿÄÿÄÿÚ ú)¤íâÌi€Îi4è˜Ò31¤ Æ3@Ï@Ìi1¤ Òù Æ3@Ìi1¦@"`R ‰Q;™ì´álÖ@H2¨tè1@¤À¨XÀ@‰(“3yúweZ¯¡7¬¢¯jvFôc\ÓNM-·Ë²±¨ÈH€ *3ºJ¹¥o)5îV„ìDçB™V“Ïé#ISé ‰ÜÀ"B$d"¢“ºØ-*Ö¨óîË¢U-¤úvÌFº uζÓ<4Õ.ûÊß›M / óÓBçH-v³ ìÊ9FšÛé&еVŲˆj7˜Ñ›Mbò²`C&"Q! MmTÒZœÝ7ÚÍV›­CÓlά¯K×xÐÎwCŸ¢e±\ýyõÖ‰¬@% Æ…ß*ó '¾¥ø­¤÷Ï4ÂTÅ«ÊïZ¤ï3K2™UZ¼ëP—^ºxwBëÎÜzAvÒR² –F4¼ù<´ÅGéçXt[Ú¤Üz-ÎÓ¬uYÌØ¯¢È~˜â½ÜÑKÒT4¥×Š·d¼¨™£é‚–—•Zm=ÄÄÖ`œ\ñß;Cvd͇®g'K7ÊåFg¥¸n>Ç_Çõ+¿GU3¿¯…‡rzR²ØW¼Hh¢Y=q% jb@åp=§Ÿå9[qïá£r÷ _ˆŽï.ÑËØá–›e\u·^.…—vRïAA4€šµŠugó÷ªIô34D‚—%.5éñ:‡ªù±ÌêYK›Îï#·Ÿ…]½\c7Qô¼(·"`eRø)Òï˜ ØS6eñûUhg5‹s§ œvºðßÓS=œHÖ8rüžÍ6W’"ÐÅÁ,˜™¨ÖÌËæÛN?±Ñm½<øÍhêžl²"eHV×pèµ¼¿DÚòbHX"A˜w8Î裛IÛÇìW)³+²Ö¬íH f0yÝ9ç߃«Q'¿æÁ DY,ašY¤Ï¥Hˆ$ –†Q׃“lKò©«_&õÏ¢gŸôÙ‚f¤"1í2q4ïžÿÄ)!1 "02@A3#BPÿÚâ3ŒÎ#8Œâ3ŠqÆgœFq™ÆgœFq™Ægœfq™Å8Ìâ3ŒÎ38Œâ3ŒÎ#8Ìã3ˆÎ/ý«› ýbjo0’±Zõs*ËXØÄú³³¼Œ»¿íºoÐ)#)iݬ~™1 Øä~M±ù*£@;}Žje;Š¥‘Ü)º"!¨ì"°˜Õ˜.Qa 1{„OC7üS¶Ö½Î·j ²˜zêz„¸A·E0äm«á^cË1V7‹Š{ ÞŒ·P÷yö;A‡\ɽ—"*Ü`A+`õ&<ªáŒÈà3ä1_â¦Æ†„ëNµÏøú{­<À {}N=Í‘b ƒc“Ò­7¦ þœ c îÜÊÉ·¥¾÷NJž›9^½¦Ë¥}>±_»ôì®TV2cË®ü÷Ê®eÃsÉ8† ‰Ã¬Rêu:ŸÙ´Oùý÷æ‹ vÃþLmzT|TÙI͇&Æ“?¾“'ìä\xö}/×Õ›ýX cƒͰ’ÞKñçêeÿfs¶dùŸGB&4_a5?¶&á·LŒü½¥uôco\†35bcEŒl¤FÍQÝ™½"ßØãº¿­–æØlE¦ï™ùL‰8Ð úÜô¦PÛý„ÔÞ'"ÍÂS7‰È±]LÈ;Èh‰W?ÆZÿ+ì?]Í›Šc`A6,Ú P…Å@4l{‚u1”±-m~¾£Äñìéˉ¯qY›?ÃÑŠÄDÚbïúO‹îÄ'ï — ¼|L‘@›„±ô7‚æÃMߢÊ l¹1|6ežŸÔXVV÷çÇq ±­k‘I‡_^Æ¥{žÀv')wb;{7…˜eûö ®ÿÿÄ$ !1"A0Q2@qÿÚ?þÂ8=Ô CõøÔÛù³†Ýœ_áÒ¢I} Ì&ó¢éô]v…áojg5C÷4ÿc¢ÐÿÝ£.ð—¸5²-O¢P¤7Õ£‰8ÖÉã(8šT9!ñgÄà½GÉ‘‡Ðî1ä¨jˆø1Ë~n¨‹tSg‡M ¨ŠV9R±Jºd½ ú$ÄJv«xÉ¢RÙîÊT9r[6¥q­ëjÊ Xôb8$YÈåx¦²P¸¢ú%CÓ¬á{–„ÓTqû&è“±å§ ¸äz·ÑªþBËKO›Œ´ì_CàÛ°ƒ÷ñ¥jNÃn*îÉÙG°©‹fÝ0ž•“C*ºa®0º|d¾ 7Ñ;*Ô£´c÷Þ Ù‘ŒéT 7q|¦„ÆDõ¦HÚZ›ê¸e®Å4æWIu2«¬¿íŦZG©;¸«ÙEO8ÜNõ:ˆ¾Eô'±} Ä‘Uö*þU>¤âëNd>Ô%>Ç\ Ê´Èõ#)~ޝà©[0µeÿ*EŠªÉ•;Õ–¦+Z“íM¿à“•<³”Ó‘éî¤ÉõAê§ì:&–Ðí‹"—sûq}ì6Ó|Æë·mM¾Ý‡Ç¾¨Qñˆ7evXðI*l_qº Ԏ̤\uºã=\¡àü„' íÏC#f2©™HA«!u½7v¢Û6‘‘ ²þes+K Žû’ÇÿÄ*!1AQÑ aq0¡ðñ‘@±áÁPÿÚ?!üÄýñâ~Äñ?ñ?ñ-ÇÙñ?bxë|OÁ}l=j‰jaìè»Iš`-{YáÂe /£²’nu~¤^S‘*ì`æÚÆlކAå0V‰9G@ €3Ú8 ª]ét·_í‹ šåZÿp²N’êÚó2}p{#Ìnß1™!ųï2¡¼:ì¹XœeσâQ„{‰`‚0Fµ±ýKJï0æ4Ö¡µZKú«DG$"Ä€BÕÊ÷%ÝÁÍ„yô]/|AŽP­¤äú¼â¬ÅûL4b15u â9n©u™þ}]ÑŠ<£HÌ¡_U Êó1Ðè,Æå¹¨Ê¹[§˜•í9÷-ºè. üºdT°Ã],«…IêAeÊáe EZ1&ù™5,%"ºAMŠM™Ž¬K—Q‹¯Ìã¯WÊ ­9ôªþ @vEš(u j¦%ð›‹X%Æÿ;Ì&| w-`–VùCVÆ]Äg²¹Xª…ÜœùVƹ‡~—÷Â*—kp›Ì ;zqÃú‚Ü—‹Š 3€[ìJ_èƒ9ƒ‰.°î# @Òç 2á˜`^ˆ´íz°˜Ê÷@w2¼ô¶âÒw›«^„¹[{¢d]v›±'ð×±¸EÄC< RÍd®q(-­°k@±Ùšj^*„Š˜†­zÑʽõe:sèNr¾­˜ *,™Ÿú̽bßî>wS¹EJ½—^ÜǺb/ÏE”s‡Ê 5ïÔtÜÇú¬ š¾‚Jíf?=nùñ¢$§ˆ—÷JƒÄ@Ì2’ñˆ—w˜=¥®âÐtÌ ‚ŽDú¡·EÔºަ2^·/íq½ê,ÛÑ­,»±ý¢pÓ_—–’wEÊ;â¡ËÚbù—V æ; ÌÅåpÂÙ…¦e9!«èÓr¨+Ù;ûîcÖº‹Nfá6Ôªúð½±Ë„HPí7ÖZæùо[Cå›ó-è?¿3Al²Èp6:“ò¬5›7ìK#ÔP ”‰Î¢:UvbX7ïˆr_J …M6ûÊ÷Ž=G@#ts)Å¿´Ò¥‘±?ƒ´¾¢ðð”ö™íî'¹ò’–E—Z°õ{!RýŽœß=ú0÷ávTaê¶éS42ÙR“AÂî5,©Ÿ¹TRzÔ.4pÞÜDQV[8&'CÅ«Ôá Uiñ?½dUÊ[¿G·ÒçŸi¿qNø&Vê£ÓP  Šwˆhæ f[\íë¹\ÅXq†`$5¥Üß<Îâ3ŒÆ=‘2Þ`ž¶b²Þ»ìÃùVEw¹íeý>áì $ h©¤(–¾cp/r¦>W‰Q2»~“Ð¶Ô 6Åí¸iÁž…ÜüAÿâYs¬LWŸŠ€(Ï—ú˜/5ñÛ¶¢Àœ¤¾ÐrÍ .ä÷é±Y¢9˜;Jþ&:bKYq¨àÄ £Ħ¥% ðJG$n/“WÌA3 â;ÚÙ ]Ž&&+»™™\EnÈtÇLLtÇF¥P½÷” 0J{½(.qÛè¡Òß jq¹–lÁ •P"Ë™W ‚ÖqZÚ')nàÇ×Ð ÷7r*p'ÚCr¨<{k×{Öå¥ôÂí_àÔ"hjžk,OkW]¢C´+P®f¶}lh‹¤b¤¦ê¥7U™kª”ÝVe7U˜¥VkÑT®;ó¥V›ç¼îªÎ¥7U™MÕK]T¦ê¥7Qª”Jnª$U»"K ³¼¹Ê¤JÜv–V°a Én€ÝVe7U™MÕfSuY”ÝT¥j³6k÷'ÿÚ óÈ"Ì4@Î(bE< APŠû¸ € E [â ekX› ¥pRTYØDes´æN`GŠ ›Eƒë´7º¿è€)©…Ô-J¤'0†IZó“¾ÚR 6ëø-®x2ÒmH¤áTwëÃú*‚-0uI!Q…úxëák× ŒHV˜tˆS…J”—JSxBþÀ(Ñ N߸zťЦ² ÐÄj yáa ð¨¥2\ ´—ëáªÎÿÄ"!1 A0Qa¡q±ÿÚ?¶Û|í¶ùÛmücx.ɸ5È÷›5ºÖÌåùܺÎ[ø !t剋8Ï ?¹×=Å›ò9+ æ˜UHÕÏ0Ý¢œ½‹=soD€£Ž’öammV¼&9áü#Mor¿† 8Jÿ‹¨‰bïÃ&ýºé°ë Ædüe‰_î=¿ÕÌ;ã ;CÏ`Ë;ÔwŸ›aÎDt‹f3×6\2[ë|þ¤Yc±ä3Ï "ñ¾dÈIBŽ–/6¼Ôã†P¹“|Ü›…®–2$ç’×ÔáðbàÍÉ“8#O¶>5«[¿M“¹Ó‹d¿á-wÓ|e€-lôÛ¶Å7X¹qíÜôGÃÝuI—)ê|’^llll²ÆËaÊÿI?\ØÙæâmpMp,:¢Õ ª¿xÛu‚v=ÄE1T=ñ5ß3Ô ‹ ,;C »ç^fßÇ5¨®·Q-Rˆêñ.eCYnS0ѕٷœã <ÿST6 Á¡‚*Ôñ3YÝÔ¨ÞÈ‚S,1)ÀÒoÌC[Pú‰¦×‚CÔ •à䇊Ÿ~7?©Ç‚@çQ+K’¯7ZüÇŸŠÛ?—€·%µgöè†.-´UjÝå~¦%3«—D@C3£¨f> -‘8²g.cÕ™oæ_–7ŸÁ Ëkõ+Ÿ pÄnÿ†™™¼ø wà]NrYšÍ„¥Kº¸ ƒñ¸¿AMèæô~ân“º}^sø¹FÊ‚Pëþ£!î6¶9d@%0ÄÚàuãh¥Ž./fQñŠ™¿ ÷8†w0<3œCMs |ïÔe?'P*Óõ«æ™e ̵ˆVâØæ[TC9…ð{Ħ0‰`DKŠ8Ñ(²Ø­I~§Îæ¡cñΣ ߇3K•™ÕFKAt\¶n»ŒK®™R°×F" î¢3cËV©9eþæn¢Bpæ5Ø”©_Rë$N¨ËNsÖc{¹6T¿³î6´ƒ B¸ÏÓVXŠ©‡åøD,Žs¥Ž£Ê¦VǪ37>åxø‹8„fü$JÚ·˜Å¯O1DtÄs)Äy17–«W fZš³_ý€ ªª÷Ü9…ì\ùdxa à A‹F]3Ø~ß÷™`óh"·výÁ©«¥ó ¸Jlj~/ǹS\Î!nç0¬eª`~á¥5ä NõöÌ…ßq(š%Õrj®P„ðè‡Àéü1-+ÉNNf(áí°ŠÎ7Ù£Ÿ)]O™¹Äa¨xüÅKÊu1f@¹ jã^¾áF™Äûz QÚÊáHá̹ÀqLÔe> É6f¶+1ª«ŠÄ@Ý5,FÍÜ 2ºŸ1Ô¥±ö ÜʬôBê 8F>¼šÅ†£P3že÷5gMÌÝ™h Âà œàŒvÃ7ÌÁ«¨--!¨UìLST¨ì³”q•HrqpӾجjÈUÅxð4«!RÐ7Xå–îQºÔ§v½æ.*õÔÁ„ ¼æ-ic'RÜó]Ô£–ˆ1…ôÅÂh癉kHê´5P`0L5T÷0ip1XHɇ;Ž+°²¸µ†Ç'Ô¦{3–`ˆWƒ ¯‹±®ÉA„½_0ƒö¦±•Íýb&0´žÕΞû•35r*Šæ÷ý%ËH«Ûí÷½Î ™zÓˆŒ®Œ-ªŽR¨^&”~ªî`5Aº ¦ì/­ÀÚ£PÜ^à½têeÁNúcº€Ï¶WÑuu©hh.´1½A ›V «V\Í(mŽ*%Nkˆ U²l³S=2›ÔQ*ëqzØ Â“Tn;´s3 æ×ývÙR€a:@TiœÒJÀPÚ1‰:üˆâ2öó‡½Ì;Ä!–â„E†ÊækªÆ+˜hɯXš&®|iWf·G0UȲUÙÙä#T³.á z¸€g„vŠûp²óàPÎù†®ã“±pžÖ-R‡™EC%â©®p~Æ Jru.ËI–±R‚Y`°Hë1túa®“Çר°e•˜­qËÔ\Ñ*üª±1½rÆìá6Gä\@‚Ë6f84 Zó,Lm øÜT׆º\C"áDb7¿purÈr3Lod¦³n_ˆkL8Â}儺:1£ÛP”àS~åõŒFÜ'ÔýA¨]'"o‘`f[ ´•áÇ€.ÕD¡|@‘¡”âÕâ\Õήq[»a¯ÜF÷áØ£æ Ô†ê£FXè×Z• oxQ‚r·Ó jo|æ ÿ\¤”¥”«:\© ›!öó+2D˜Sp»ÈS’] ±-y€¨…4ÎH!¯è‡i¤õPmÀZ¯,¸åó*ÌlØè‰ ¥nã~6JLx([G2£ŠHг0tø†ãcß>-#Uõè6mƒ“ñ%çä\’Ëqõ¸˜hF Rƒå€4¦Ëº¬sx¨ «T\6×÷‰I=Yßæþ*`±˜fË+êqÈ¨ê žPêÿÉy’Pöw&/ËX¼'ئÈÀtNpûúX†„Q1ú&~lWõdZW¦GþÌtË Eªà%m¸¼\oe,¸džqçÁˆ‚ŠZj/€0>úù™‹¥…~¢ ´âg<퀱GÈkEËß„ó‘}×hc ¬ÐÌTcB!c˜\Ê‹L½7¾"‘š9˜;&Êù™kÖˆe`Žå]¬Ó@)§7Ë®-Ú5ù‹ ‚4àÖ_É0· —Gê…RÚ0oübpä–5‹Üç‡ÑqE=¹Sÿa[§æ­ý?˜µ øæh‹Æ£•ýB¦€*Ü7´(€mØ6ƒ8Â[Χ? RŸGQÒ1 ¹J‘yi3Dð°Ü`–ÙFYX1ÉÔ4à©tpó©vÝlÇ=Ê%’m 4 ×þij8sż#JÃ5 ¥T:6à¸(PjêûeŒ'†àx¨$÷oøF1 où¢ ñ·Â º½";æ+GDRZýŸUJ8šÊ ÷Ææa± ʃ œµˆ )UÀ}ÛïBâ¼&–Õ_’Ýâ¶§¢)DÀ0@Vmv¨ns‹,{ ÆbY‰P¬Ý†•‡¶â×L¦K­þu +Z×;ÿ Ö…º»SnHƒn¶½Gè?‰’C=òÝ×õ6À¹ª¬|c÷¡Œªów3BÕ‚1C·©×q*•;Ó±—ê)Š¥·0²”«509[ƒ 切äÉ ¹Lõ ˜eLSLºUÊs 7™½Ï‰{nf´QèD.?©йf y7ü«SfÈ"œ"O¬F’áÖÇÌVxܱ¨Ñ©]¬s­Fò>OqS¹ Ë/9ðxf¼‘T)#À÷¶*‡ƒPÑ­ ]Ýÿs)ÃTßWþ±3E Ä2,/“Ô%›V¤ÿÉùšszɈ¥ÍÖþ&#v­vèù`ä·Vo·GìŠÍ-•õ((¼¹†[0b›Ëî °7ˆ¥-²â&ˆe7 ¤¬ïÙuŽHK¯>¥ÓGF®Pà™õñš´ÐR9müF«/ê¼¾¡ÈjG­1þÇMK¢Çû ]Ì­¡_KÒѧß÷Ì’©ýKЀ.ÊÍýˆÉLáÃ?¢V¹oe©ˆí^bFœµñ`ƒu¢ŒbSV&ÙDbËø†…üâ'7ú”¹kâ`aYÏÆ%XÏêcW(Á~±÷Üà”lŽëPc*aÂ\FÍk¤s¨aŒ«—ÅxÜ0F!2á.¨M…9€ ɶ¾–Û˜Ž„©R´iÂZiÐ\ÈÀ¿™†«Åƒ*K ’8ZýJWI¾ŸàÞ¼ eñü\Bc¾L‚ S *ºÄƸœæÚKàÆjô²½9=ÍHâ¡ÝÇÇ2î ·Yï©Iia3Ÿü^|jb¢’ÊÜ(r’ó³ÂúòS„Tv:õ3\ÃäÝ›Œ¿•CýÈU,aÀí³}F¡¸—+‡„eA®Ør)Ä~õ±_Q¨—¤¢Åo<®„®ÜœJ} žË3ú†m|¿ÇîWfå]”>˜²ãÍkÊ—þŸˆ˜KÒ%j·‰@JÞ"W+x‰Š6ñb·ˆ€Š]|«8†F!<¾©á—ëü‰u uø/±ëé|\D fSža8ð/TgôþeB–"ê^“ŸzC©Ä3Ò]‘}C0zK]®Õ˜bë?ÿÙlibspatialite-4.3.0a/test/shape_primitives.c0000664000175000017500000007475612544707704016163 00000000000000/* shape_primitives.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Ahmadou Dicko Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" void cleanup_shapefile (const char *filename) { char nam[1000]; if (!filename) { return; } snprintf (nam, 1000, "%s.dbf", filename); unlink (nam); snprintf (nam, 1000, "%s.prj", filename); unlink (nam); snprintf (nam, 1000, "%s.shp", filename); unlink (nam); snprintf (nam, 1000, "%s.shx", filename); unlink (nam); } int do_test (sqlite3 * handle) { /* testing some DB */ #ifndef OMIT_ICONV /* only if ICONV is supported */ char *dumpname = __FILE__ "dump"; char *err_msg = NULL; int row_count; int ret; gaiaVectorLayersListPtr list; ret = sqlite3_exec (handle, "CREATE TABLE Point_Test (Name TEXT, Description TEXT)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -3; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Point_Test', 'geomZ', 4326, 'POINT', 'XYZ', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn POINT XYZ error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -4; } ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomZ) VALUES ('Point 1', 'Some point', GeomFromText('POINTZ(136 -33 365)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POINT XYZ error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -5; } ret = dump_shapefile (handle, "Point_Test", "geomZ", dumpname, "UTF-8", "POINT", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POINT XYZ: %s\n", err_msg); sqlite3_close (handle); return -6; } cleanup_shapefile (dumpname); ret = dump_shapefile (handle, "Point_Test", "geomZ", dumpname, "UTF-8", "MULTIPOINT", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POINT XYZ: %s\n", err_msg); sqlite3_close (handle); return -7; } cleanup_shapefile (dumpname); ret = dump_shapefile (handle, "Point_Test", "geomZ", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POINT XYZ: %s\n", err_msg); sqlite3_close (handle); return -7; /* dupe */ } cleanup_shapefile (dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Point_Test', 'geomM', 4326, 'POINT', 'XYM', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn POINT XYM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -8; } ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomM) VALUES ('Point 2', 'Some pointM', GeomFromText('POINTM(136 -33 26.7)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POINT XYM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -9; } ret = dump_shapefile (handle, "Point_Test", "geomM", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POINT XYM: %s\n", err_msg); sqlite3_close (handle); return -10; } cleanup_shapefile (dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Point_Test', 'geomXY', 4326, 'POINT', 'XY', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn POINT XY error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -11; } ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomXY) VALUES ('Point 3', 'Some point', GeomFromText('POINT(136 -33)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POINT XY error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -12; } ret = dump_shapefile (handle, "Point_Test", "geomXY", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POINT XY: %s\n", err_msg); sqlite3_close (handle); return -13; } cleanup_shapefile (dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Point_Test', 'geomXYZM', 4326, 'POINT', 'XYZM', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn POINT XYZM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -14; } ret = sqlite3_exec (handle, "INSERT INTO Point_Test (Name, Description, geomXYZM) VALUES ('Point 4', 'Some pointXYZM', GeomFromText('POINT(136 -33 424 233.2)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POINT XYZM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -15; } ret = dump_shapefile (handle, "Point_Test", "geomXYZM", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POINT XYZM: %s\n", err_msg); sqlite3_close (handle); return -16; } cleanup_shapefile (dumpname); ret = sqlite3_exec (handle, "DROP TABLE Point_Test", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE Point_Test error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -20; } ret = sqlite3_exec (handle, "CREATE TABLE MPoint_Test (Name TEXT, Description TEXT)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE MPoint_Test error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -21; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('MPoint_Test', 'geom', 4326, 'MULTIPOINT', 'XY', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn MPOINT XY error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -22; } ret = sqlite3_exec (handle, "INSERT INTO MPoint_Test (Name, Description, geom) VALUES ('Point 1', 'Some point', GeomFromText('MULTIPOINT(136 -33, 47 2, -20, 12)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT MPOINT XY error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -23; } ret = dump_shapefile (handle, "MPoint_Test", "geom", dumpname, "UTF-8", "MULTIPOINT", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for MPOINT XY: %s\n", err_msg); sqlite3_close (handle); return -24; } cleanup_shapefile (dumpname); ret = dump_shapefile (handle, "MPoint_Test", "geom", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for MPOINT XY: %s\n", err_msg); sqlite3_close (handle); return -25; } cleanup_shapefile (dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('MPoint_Test', 'geomZ', 4326, 'MULTIPOINT', 'XYZ', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn MPOINT XYZ error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -26; } ret = sqlite3_exec (handle, "INSERT INTO MPoint_Test (Name, Description, geomZ) VALUES ('Point 2', 'Some pointZ', GeomFromText('MULTIPOINTZ(136 -33 1, 47 2 2, -20, 12 3)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT MPOINT XYZ error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -27; } ret = dump_shapefile (handle, "MPoint_Test", "geomZ", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for MPOINT XYZ: %s\n", err_msg); sqlite3_close (handle); return -28; } cleanup_shapefile (dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('MPoint_Test', 'geomM', 4326, 'MULTIPOINT', 'XYM', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn MPOINT XYM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -29; } ret = sqlite3_exec (handle, "INSERT INTO MPoint_Test (Name, Description, geomM) VALUES ('Point 3', 'Some pointM', GeomFromText('MULTIPOINTM(136 -33 1, 47 2 2, -20, 12 3)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT MPOINT XYM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -30; } ret = dump_shapefile (handle, "MPoint_Test", "geomM", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for MPOINT XYM: %s\n", err_msg); sqlite3_close (handle); return -31; } cleanup_shapefile (dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('MPoint_Test', 'geomMZ', 4326, 'MULTIPOINT', 'XYZM', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn MPOINT XYZM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -32; } ret = sqlite3_exec (handle, "INSERT INTO MPoint_Test (Name, Description, geomMZ) VALUES ('Point 4', 'Some pointMZ', GeomFromText('MULTIPOINTMZ(136 -33 1 4.2, 47 2 2.3 1, -20, 12 3 -2)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT MPOINT XYZM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -33; } ret = dump_shapefile (handle, "MPoint_Test", "geomMZ", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for MPOINT XYZM %s\n", err_msg); sqlite3_close (handle); return -34; } cleanup_shapefile (dumpname); ret = sqlite3_exec (handle, "DROP TABLE MPoint_Test", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE MPoint_Test error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -35; } ret = sqlite3_exec (handle, "CREATE TABLE Linestring_Test (Name TEXT, Description TEXT)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE Linestring_Test error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -36; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Linestring_Test', 'geom', 4326, 'LINESTRING', 'XY', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn LINESTRING XY error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -37; } ret = sqlite3_exec (handle, "INSERT INTO Linestring_Test (Name, Description, geom) VALUES ('Point 1', 'Some linestring', GeomFromText('LINESTRING(136 -33, 47 2, -20, 12)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT LINESTRING XY error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -38; } ret = dump_shapefile (handle, "Linestring_Test", "geom", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for LINESTRING XY: %s\n", err_msg); sqlite3_close (handle); return -39; } cleanup_shapefile (dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Linestring_Test', 'geomZ', 4326, 'LINESTRING', 'XYZ', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn LINESTRING XYZ error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -40; } ret = sqlite3_exec (handle, "INSERT INTO Linestring_Test (Name, Description, geomZ) VALUES ('Point 2', 'Some linestringZ', GeomFromText('LINESTRINGZ(136 -33 3, 47 2 3.8, -20 12 10.1)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT LINESTRING XYZ error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -41; } ret = dump_shapefile (handle, "Linestring_Test", "geomZ", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for LINESTRING XYZ: %s\n", err_msg); sqlite3_close (handle); return -42; } cleanup_shapefile (dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Linestring_Test', 'geomM', 4326, 'LINESTRING', 'XYM', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn LINESTRING XYM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -43; } ret = sqlite3_exec (handle, "INSERT INTO Linestring_Test (Name, Description, geomM) VALUES ('Point 3', 'Some linestringM', GeomFromText('LINESTRINGM(136 -33 3, 47 2 3.8, -20 12 10.1)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT LINESTRING XYM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -44; } ret = dump_shapefile (handle, "Linestring_Test", "geomM", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for LINESTRING XYM: %s\n", err_msg); sqlite3_close (handle); return -45; } cleanup_shapefile (dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Linestring_Test', 'geomMZ', 4326, 'LINESTRING', 'XYZM', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn LINESTRING XYZM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -46; } ret = sqlite3_exec (handle, "INSERT INTO Linestring_Test (Name, Description, geomMZ) VALUES ('Point 3', 'Some linestringZM', GeomFromText('LINESTRINGZM(136 -33 3 4.2, 47 2 3.8 1, -20 12 10.1 321)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT LINESTRING XYZM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -47; } ret = dump_shapefile (handle, "Linestring_Test", "geomMZ", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for LINESTRING XYZM: %s\n", err_msg); sqlite3_close (handle); return -48; } cleanup_shapefile (dumpname); ret = sqlite3_exec (handle, "DROP TABLE Linestring_Test", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE Linestring_Test error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -49; } ret = sqlite3_exec (handle, "CREATE TABLE Polygon_Test (Name TEXT, Description TEXT, thing1 INTEGER, thing2 REAL, thing3 DOUBLE, thing4 BLOB)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE Polygon_Test error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -50; } ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Polygon_Test', 'geom', 4326, 'POLYGON', 'XY', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn POLYGON XY error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -51; } /* TODO: try dumping an empty table */ ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, thing1, thing2, thing3, thing4, geom) VALUES ('Polygon 1', 'Some polygon', 2, 4.25, 343.343, zeroblob(40), GeomFromText('POLYGON((136 -33, 47 2, -20 -1, 136 -33),(10 -2, -20 -0.4, 40 0.1, 10 -2))', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POLYGON XY error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -54; } ret = dump_shapefile (handle, "Polygon_Test", "geom", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POLYGON XY: %s\n", err_msg); sqlite3_close (handle); return -55; } cleanup_shapefile (dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Polygon_Test', 'geomZ', 4326, 'POLYGON', 'XYZ', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn POLYGON XYZ error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -56; } ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, thing1, thing2, thing3, thing4, geomZ) VALUES ('Polygon 2', 'Some polygonZ', 12, 14.25, 1343.343, zeroblob(140), GeomFromText('POLYGONZ((136 -33 4, 47 2 4.2, -20 -1 1, 136 -33 4),(10 -2 4, 40 0.1 1.6, -20 -0.4 1, 10 -2 4)', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POLYGON XYZ error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -57; } ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, geomZ) VALUES ('Polygon 2', 'wrong direction', GeomFromText('POLYGONZ((136 -33 4, 47 2 4.2, -20 -1 1, 136 -33 4),(10 -2 4, -20 -0.4 1, 40 0.1 1.6, 10 -2 4))', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POLYGON XYZ 2 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -57; /* dupe */ } ret = dump_shapefile (handle, "Polygon_Test", "geomZ", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POLYGON XYZ: %s\n", err_msg); sqlite3_close (handle); return -58; } cleanup_shapefile (dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Polygon_Test', 'geomM', 4326, 'POLYGON', 'XYM', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn POLYGON XYM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -59; } ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, geomM) VALUES ('Polygon 3', 'Some polygonM', GeomFromText('POLYGONM((136 -33 4, 47 2 4.2, -20 -1 1, 136 -33 4),(10 -2 4, -20 -0.4 1, 40 0.1 1.6, 10 -2 4))', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POLYGON XYM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -60; } ret = dump_shapefile (handle, "Polygon_Test", "geomM", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POLYGON XYM: %s\n", err_msg); sqlite3_close (handle); return -61; } cleanup_shapefile (dumpname); ret = sqlite3_exec (handle, "SELECT AddGeometryColumn('Polygon_Test', 'geomZM', 4326, 'POLYGON', 'XYZM', 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "AddGeometryColumn POLYGON XYZM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -62; } ret = sqlite3_exec (handle, "INSERT INTO Polygon_Test (Name, Description, geomZM) VALUES ('Polygon 4', 'Some polygonZM', GeomFromText('POLYGONZM((136 -33 4 4, 47 2 4.2 4.4, -20 -1 1 1, 136 -33 4 4),(10 -2 4 1, -20 -0.4 1 1, 40 0.1 1.6 1, 10 -2 4 1))', 4326))", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT POLYGON XYZM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -63; } ret = dump_shapefile (handle, "Polygon_Test", "geomZM", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for POLYGON XYZM: %s\n", err_msg); sqlite3_close (handle); return -64; } cleanup_shapefile (dumpname); /* testing VectorLayersList (several flavors) */ list = gaiaGetVectorLayersList (handle, NULL, NULL, GAIA_VECTORS_LIST_OPTIMISTIC); gaiaFreeVectorLayersList (list); list = gaiaGetVectorLayersList (handle, NULL, NULL, GAIA_VECTORS_LIST_PESSIMISTIC); gaiaFreeVectorLayersList (list); list = gaiaGetVectorLayersList (handle, "Polygon_Test", "geomZM", GAIA_VECTORS_LIST_OPTIMISTIC); gaiaFreeVectorLayersList (list); gaiaStatisticsInvalidate (handle, NULL, NULL); list = gaiaGetVectorLayersList (handle, NULL, NULL, GAIA_VECTORS_LIST_PESSIMISTIC); gaiaFreeVectorLayersList (list); gaiaStatisticsInvalidate (handle, "Polygon_Test", NULL); list = gaiaGetVectorLayersList (handle, NULL, NULL, GAIA_VECTORS_LIST_PESSIMISTIC); gaiaFreeVectorLayersList (list); gaiaStatisticsInvalidate (handle, "Polygon_Test", "geomZM"); list = gaiaGetVectorLayersList (handle, NULL, NULL, GAIA_VECTORS_LIST_PESSIMISTIC); gaiaFreeVectorLayersList (list); gaiaStatisticsInvalidate (handle, "Palygon_Tost", "ZMgeom"); ret = sqlite3_exec (handle, "DROP TABLE Polygon_Test", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE Polygon_Test error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -65; } /* final DB cleanup */ ret = sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -66; } ret = sqlite3_exec (handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -66; } ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VACUUM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -66; } #endif /* end ICONV conditional */ /* ok, succesfull termination */ return 0; } int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ #ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* testing current style metadata layout >= v.4.0.0 */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } ret = do_test (handle); if (ret != 0) { fprintf (stderr, "error while testing current style metadata layout\n"); return ret; } spatialite_cleanup_ex (cache); sqlite3_close (handle); /* testing legacy style metadata layout <= v.3.1.0 */ cache = spatialite_alloc_connection (); ret = system ("cp test-legacy-3.0.1.sqlite copy-primitives-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot copy legacy v.3.0.1 database\n"); return -1; } ret = sqlite3_open_v2 ("copy-primitives-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = do_test (handle); if (ret != 0) { fprintf (stderr, "error while testing legacy style metadata layout\n"); return ret; } spatialite_cleanup_ex (cache); sqlite3_close (handle); ret = unlink ("copy-primitives-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot remove legacy v.3.0.1 database\n"); return -1; } /* testing invalid geometries [check/repair] */ cache = spatialite_alloc_connection (); ret = system ("cp test-invalid.sqlite copy-invalid.sqlite"); if (ret != 0) { fprintf (stderr, "cannot copy invalid-geoms database\n"); return -1; } ret = sqlite3_open_v2 ("copy-invalid.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open invalid-geoms database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = check_all_geometry_columns_r (cache, handle, "./report", NULL, NULL); if (!ret) { fprintf (stderr, "check_all_geometry_columns() error\n"); sqlite3_close (handle); return -61; } ret = sanitize_all_geometry_columns_r (cache, handle, "tmp_", "./report", NULL, NULL); if (!ret) { fprintf (stderr, "sanitize_all_geometry_columns() error\n"); sqlite3_close (handle); return -62; } spatialite_cleanup_ex (cache); sqlite3_close (handle); ret = unlink ("copy-invalid.sqlite"); if (ret != 0) { fprintf (stderr, "cannot remove invalid-geoms database\n"); return -1; } /* testing invalid geometries [check/repair] - legacy mode */ spatialite_init (0); ret = system ("cp test-invalid.sqlite copy-invalid.sqlite"); if (ret != 0) { fprintf (stderr, "cannot copy invalid-geoms database\n"); return -1; } ret = sqlite3_open_v2 ("copy-invalid.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open invalid-geoms database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } ret = check_all_geometry_columns (handle, "./report", NULL, NULL); if (!ret) { fprintf (stderr, "check_all_geometry_columns() error\n"); sqlite3_close (handle); return -91; } ret = sanitize_all_geometry_columns (handle, "tmp_", "./report", NULL, NULL); if (!ret) { fprintf (stderr, "sanitize_all_geometry_columns() error\n"); sqlite3_close (handle); return -92; } spatialite_cleanup (); sqlite3_close (handle); ret = unlink ("copy-invalid.sqlite"); if (ret != 0) { fprintf (stderr, "cannot remove invalid-geoms database\n"); return -1; } /* testing legacy style metadata layout (v.2.3.1) */ cache = spatialite_alloc_connection (); ret = system ("cp test-legacy-2.3.1.sqlite copy-legacy-2.3.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot copy legacy v.2.3.1 database\n"); return -1; } ret = sqlite3_open_v2 ("copy-legacy-2.3.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open legacy v.2.3.1 database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = do_test (handle); if (ret != 0) { fprintf (stderr, "error while testing legacy (2.3.1) style metadata layout\n"); return ret; } spatialite_cleanup_ex (cache); sqlite3_close (handle); ret = unlink ("copy-legacy-2.3.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot remove legacy v.2.3.1 database\n"); return -1; } #endif /* end LWGEOM conditionals */ #endif /* end ICONV conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/test_helpers.h0000664000175000017500000000260112544707704015272 00000000000000#if __GNUC__ #define UNUSED __attribute__ ((__unused__)) #else #define UNUSED #endif #ifdef __WIN32 /* * Windows replacement for strcastr * * original code from: * https://code.google.com/p/msysgit/source/browse/compat/strcasestr.c?repo=4msysgit&name=mingw-v1.5.2.4-devel */ static char * strcasestr (const char *haystack, const char *needle) { int nlen = strlen (needle); int hlen = strlen (haystack) - nlen + 1; int i; for (i = 0; i < hlen; i++) { int j; for (j = 0; j < nlen; j++) { unsigned char c1 = haystack[i + j]; unsigned char c2 = needle[j]; if (toupper (c1) != toupper (c2)) goto next; } return (char *) haystack + i; next: ; } return NULL; } #endif #ifdef __WIN32 /* * public domain strtok_r() by Charlie Gordon * * from comp.lang.c 9/14/2007 * * http://groups.google.com/group/comp.lang.c/msg/2ab1ecbb86646684 * * (Declaration that it's public domain): * http://groups.google.com/group/comp.lang.c/msg/7c7b39328fefab9c */ static char * strtok_r (char *str, const char *delim, char **nextp) { char *ret; if (str == NULL) { str = *nextp; } str += strspn (str, delim); if (*str == '\0') { return NULL; } ret = str; str += strcspn (str, delim); if (*str) { *str++ = '\0'; } *nextp = str; return ret; } #endif libspatialite-4.3.0a/test/gpkg_test.sqlite0000664000175000017500000154400012544707704015637 00000000000000SQLite format 3@ µ² µ-æûåûöñìçâÝØÓÎÉÄ¿º÷µ°«¦¡œ—’ˆƒ~ytoje`[VQLGB=83.)$ ü÷òíèãÞÙÔÏÊÅÀ»¶±¬§¢˜’Œ†€ztnhb\VPJD>82,& üñëåßÙÓÍÇÁ»µ¯©£—‘‹…ysmg_ÒmÑkÐhÏfÎcÍaÌ^Ê\ÉYÈWÇTÆRÅOÄMÃJÁHÀF½D¼Bº?¹=¸:·8µ5geo3dzmgeom=gc3dzmgeom<gc3dzgeom;gc2dmgeom: gc2dgeom! mpt2dgeom9mpt2dmgeom8mpt3dzgeom7mpt3dzmgeom6mln3dzmgeom5mln3dzgeom4mln2dmgeom3mln2dgeom2mpg2dgeom1mpg2dmgeom0mpg3dzgeom/mpg3dzmgeom.pg3dzmgeom-pg3dzgeom,pg2dmgeom+ pg2dgeom*ln3dzmgeom)ln3dzgeom(ln2dmgeom' ln2dgeom&pt3dzmgeom%pt3dzgeom$pt2dmgeom#   ŠŠ##auOindexsqlite_autoindex_virts_geometry_columns_statistics_1virts_geometry_columns_statistics„ OO‡tableviews_geometry_columns_statisticsviews_geometry_columns_statisticsCREATE TABLE views_geometry_columns_statistics ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, last_verified TIMESTAMP, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_vwgc_statistics PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_vwgc_statistics FOREIGN KEY (view_name, view_geometry) REFERENCES views_geometry_columns (view_name, view_geometry) ON DELETE CASCADE)a uOindexsqlite_autoindex_views_geometry_columns_statistics_1views_geometry_columns_statistics   ˆˆ++WkEindexsqlite_autoindex_geometry_columns_field_infos_1geometry_columns_field_infos„OO‡tablevirts_geometry_columns_statisticsvirts_geometry_columns_statisticsCREATE TABLE virts_geometry_columns_statistics ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, last_verified TIMESTAMP, row_count INTEGER, extent_min_x DOUBLE, extent_min_y DOUBLE, extent_max_x DOUBLE, extent_max_y DOUBLE, CONSTRAINT pk_vrtgc_statistics PRIMARY KEY (virt_name, virt_geometry), CONSTRAINT fk_vrtgc_statistics FOREIGN KEY (virt_name, virt_geometry) REFERENCES virts_geometry_columns (virt_name, virt_geometry) ON DELETE CASCADE)auOindexsqlite_autoindex_virts_geometry_columns_statistics_1virts_geometry_columns_statisticsñ«ûöñ¨X¥;¤Ìªå̧pg2dgeomgeom¦mln2dmgeomgeom9 ÍͧddcwQindexsqlite_autoindex_views_geometry_columns_field_infos_1views_geometry_columns_field_infos…WEEŠ1tablegeometry_columns_field_infosgeometry_columns_field_infosCREATE TABLE geometry_columns_field_infos ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, ordinal INTEGER NOT NULL, column_name TEXT NOT NULL, null_values INTEGER NOT NULL, integer_values INTEGER NOT NULL, double_values INTEGER NOT NULL, text_values INTEGER NOT NULL, blob_values INTEGER NOT NULL, max_size INTEGER, integer_min INTEGER, integer_max INTEGER, double_min DOUBLE, double_max DOUBLE, CONSTRAINT pk_gcfld_infos PRIMARY KEY (f_table_name, f_geometry_column, ordinal, column_name), CONSTRAINT fk_gcfld_infos FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)WkEindexsqlite_autoindex_geometry_columns_field_infos_1geometry_columns_field_infos   ÁÁ›XXcwQindexsqlite_autoindex_virts_geometry_columns_field_infos_1virts_geometry_columns_field_infos…WQQŠtableviews_geometry_columns_field_infosviews_geometry_columns_field_infosCREATE TABLE views_geometry_columns_field_infos ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, ordinal INTEGER NOT NULL, column_name TEXT NOT NULL, null_values INTEGER NOT NULL, integer_values INTEGER NOT NULL, double_values INTEGER NOT NULL, text_values INTEGER NOT NULL, blob_values INTEGER NOT NULL, max_size INTEGER, integer_min INTEGER, integer_max INTEGER, double_min DOUBLE, double_max DOUBLE, CONSTRAINT pk_vwgcfld_infos PRIMARY KEY (view_name, view_geometry, ordinal, column_name), CONSTRAINT fk_vwgcfld_infos FOREIGN KEY (view_name, view_geometry) REFERENCES views_geometry_columns (view_name, view_geometry) ON DELETE CASCADE)cwQindexsqlite_autoindex_views_geometry_columns_field_infos_1views_geometry_columns_field_infos   ¿¿›ppI]7indexsqlite_autoindex_geometry_columns_time_1geometry_columns_time!…YQQŠtablevirts_geometry_columns_field_infosvirts_geometry_columns_field_infosCREATE TABLE virts_geometry_columns_field_infos ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, ordinal INTEGER NOT NULL, column_name TEXT NOT NULL, null_values INTEGER NOT NULL, integer_values INTEGER NOT NULL, double_values INTEGER NOT NULL, text_values INTEGER NOT NULL, blob_values INTEGER NOT NULL, max_size INTEGER, integer_min INTEGER, integer_max INTEGER, double_min DOUBLE, double_max DOUBLE, CONSTRAINT pk_vrtgcfld_infos PRIMARY KEY (virt_name, virt_geometry, ordinal, column_name), CONSTRAINT fk_vrtgcfld_infos FOREIGN KEY (virt_name, virt_geometry) REFERENCES virts_geometry_columns (virt_name, virt_geometry) ON DELETE CASCADE)cwQindexsqlite_autoindex_virts_geometry_columns_field_infos_1virts_geometry_columns_field_infosöÛûöDë’8à‡.W ===pg3dzgeom0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZW ===pg2dmgeom0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZV ===pg2dgeom0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZX===ln3dzmgeom0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZW===ln3dzgeom0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZW===ln2dmgeom0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZV===ln2dgeom0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZX===pt3dzmgeom0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZW===pt3dzgeom0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZW===pt2dmgeom0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZV===pt2dgeom0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000Z0000-01-01T00:¿¾ !paQ 0@·¨™‰þîÞÍ ,<œ¬¼{l]MóäÕÅtest_pkgeom!geo2dgeom geo2dmgeomgeo3dzgeomgeo3dzmgeomgc3dzmgeomgc3dzgeomgc2dmgeom gc2dgeommpt2dgeommpt2dmgeommpt3dzgeommpt3dzmgeommln3dzmgeommln3dzgeommln2dmgeommln2dgeommpg2dgeommpg2dmgeommpg3dzgeommpg3dzmgeom pg3dzmgeom pg3dzgeom pg2dmgeom pg2dgeom ln3dzmgeomln3dzgeomln2dmgeom ln2dgeompt3dzmgeompt3dzgeompt2dmgeom  pt2dgeom wwµ((I]7indexsqlite_autoindex_geometry_columns_auth_1geometry_columns_auth$„;77ˆtablegeometry_columns_timegeometry_columns_time CREATE TABLE geometry_columns_time ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, last_insert TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', last_update TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', last_delete TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', CONSTRAINT pk_gc_time PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_time FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE)I]7indexsqlite_autoindex_geometry_columns_time_1geometry_columns_time! !ÞñáÑÀ±¡‘€qaQ@. üìÛʸ¦•„teUE4"ðÞ!test_pkgeom geo2dgeomgeo2dmgeomgeo3dzgeomgeo3dzmgeomgc3dzmgeomgc3dzgeomgc2dmgeom gc2dgeommpt2dgeommpt2dmgeommpt3dzgeommpt3dzmgeommln3dzmgeommln3dzgeommln2dmgeommln2dgeommpg2dgeommpg2dmgeommpg3dzgeom mpg3dzmgeom pg3dzmgeom pg3dzgeom pg2dmgeom pg2dgeomln3dzmgeomln3dzgeomln2dmgeom ln2dgeompt3dzmgeompt3dzgeompt2dmgeom pt2dgeom !paQ 0@·¨™‰þîÞÍ ,<œ¬¼{l]MóäÕÅtest_pkgeom!geo2dgeom geo2dmgeomgeo3dzgeomgeo3dzmgeomgc3dzmgeomgc3dzgeomgc2dmgeom gc2dgeommpt2dgeommpt2dmgeommpt3dzgeommpt3dzmgeommln3dzmgeommln3dzgeommln2dmgeommln2dgeommpg2dgeommpg2dmgeommpg3dzgeommpg3dzmgeom pg3dzmgeom pg3dzgeom pg2dmgeom pg2dgeom ln3dzmgeomln3dzgeomln2dmgeom ln2dgeompt3dzmgeompt3dzgeompt2dmgeom  pt2dgeom §§µLLUiCindexsqlite_autoindex_views_geometry_columns_auth_1views_geometry_columns_auth'„ 77‡5tablegeometry_columns_authgeometry_columns_auth#CREATE TABLE geometry_columns_auth ( f_table_name TEXT NOT NULL, f_geometry_column TEXT NOT NULL, read_only INTEGER NOT NULL, hidden INTEGER NOT NULL, CONSTRAINT pk_gc_auth PRIMARY KEY (f_table_name, f_geometry_column), CONSTRAINT fk_gc_auth FOREIGN KEY (f_table_name, f_geometry_column) REFERENCES geometry_columns (f_table_name, f_geometry_column) ON DELETE CASCADE, CONSTRAINT ck_gc_ronly CHECK (read_only IN (0,1)), CONSTRAINT ck_gc_hidden CHECK (hidden IN (0,1)))I]7indexsqlite_autoindex_geometry_columns_auth_1geometry_columns_auth$   $$å<ƒ>CC†tableviews_geometry_columns_authviews_geometry_columns_auth&CREATE TABLE views_geometry_columns_auth ( view_name TEXT NOT NULL, view_geometry TEXT NOT NULL, hidden INTEGER NOT NULL, CONSTRAINT pk_vwgc_auth PRIMARY KEY (view_name, view_geometry), CONSTRAINT fk_vwgc_auth FOREIGN KEY (view_name, view_geometry) REFERENCES views_geometry_columns (view_name, view_geometry) ON DELETE CASCADE, CONSTRAINT ck_vwgc_hidden CHECK (hidden IN (0,1)))UiCindexsqlite_autoindex_views_geometry_columns_auth_1views_geometry_columns_auth'ƒACC† tablevirts_geometry_columns_authvirts_geometry_columns_auth)CREATE TABLE virts_geometry_columns_auth ( virt_name TEXT NOT NULL, virt_geometry TEXT NOT NULL, hidden INTEGER NOT NULL, CONSTRAINT pk_vrtgc_auth PRIMARY KEY (virt_name, virt_geometry), CONSTRAINT fk_vrtgc_auth FOREIGN KEY (virt_name, virt_geometry) REFERENCES virts_geometry_columns (virt_name, virt_geometry) ON DELETE CASCADE, CONSTRAINT ck_vrtgc_hidden CHECK (hidden IN (0,1)))   u.ŸŠUiCindexsqlite_autoindex_virts_geometry_columns_auth_1virts_geometry_columns_auth*ƒ611†tablesql_statements_logsql_statements_log,CREATE TABLE sql_statements_log ( id INTEGER PRIMARY KEY AUTOINCREMENT, time_start TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', time_end TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z', user_agent TEXT NOT NULL, sql_statement TEXT NOT NULL, success INTEGER NOT NULL DEFAULT 0, error_cause TEXT NOT NULL DEFAULT 'ABORTED', CONSTRAINT sqllog_success CHECK (success IN (0,1)))oAtablept2dpt2d-CREATE TABLE pt2d ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" POINT)r Ctablept3dzpt3dz.CREATE TABLE pt3dz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" POINT)u!Etablept3dzmpt3dzm/CREATE TABLE pt3dzm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" POINT)t"Ktableln2dln2d0CREATE TABLE ln2d ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" LINESTRING)8IJûöñìçâÝØÓÎÉÄ¿ºµ°«¦¡œ–Š„~xrlf`ZTNHB<60*$ úôîèâÜÖÐÊÄ08:49:36.639Zspatialite_guiCREATE TABLE ln3dz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)% 2014-05-20T08:49:29.307Z2014-05-20T08:49:29.526Zspatialite_guiCREATE TABLE ln2d ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)) 2014-05-20T08:49:15.423Z2014-05-20T08:49:15.657Zspatialite_guiCREATE TABLE pt3dzm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)' 2014-05-20T08:49:11.820Z2014-05-20T08:49:12.069Zspatialite_guiCREATE TABLE pt3dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)succes±‚)¡‚% ‚Ÿ‚ž‚‚œ‚›‚š‚™‚˜|—w–r•n”j“e’`‘ZVRŽNIŒD‹=Š6‰1ˆ,‡%†…„ƒ‚  €~|}w|r{mehDa"YQêIÚBË<»6±0£*^$]\[Z Y ¸q) deltaFgammaæš™™™™™ù?@š™™™™™ù?@|š™™™™™ù?@þEbetaæš™™™™™ù?ÍÌÌÌÌÌ@š™™™™™ù?ÍÌÌÌÌÌ@|š™™™™™ù?ÍÌÌÌÌÌ@þFalphaæš™™™™™ñ?š™™™™™ñ?š™™™™™ñ?š™™™™™ñ?|š™™™™™ñ?š™™™™™ñ?þ °a deltaNgammaæÍÌÌÌÌÌ@š™™™™™@ÍÌÌÌÌÌ@š™™™™™@|éÍÌÌÌÌÌ@š™™™™™@&@þMbetaæš™™™™™ù?š™™™™™@š™™™™™ù?š™™™™™@|éš™™™™™ù?š™™™™™@*@þNalphaæš™™™™™ù?333333ó?š™™™™™ù?333333ó?|éš™™™™™ù?333333ó?"@þ î¨Qùî deltaV$gammaæffffff@š™™™™™ @ffffff@š™™™™™ @|¹ ffffff@š™™™™™ @@@þU$betaæš™™™™™ù?š™™™™™ @š™™™™™ù?š™™™™™ @|¹ š™™™™™ù?š™™™™™ @@@þV$alphaæÍÌÌÌÌÌ@š™™™™™@ÍÌÌÌÌÌ@š™™™™™@|¹ ÍÌÌÌÌÌ@š™™™™™@&@@þ Ò¤9ÝÒ deltaZ,gammaæð?ð?|ð?ð?þiLbetaæð?ð?$@$@|$@ð?$@$@ð?$@þZ,alphaæð?ð?@@|ð?ð?@@þ ™”¤™ deltajLgammaæ$@$@|ê$@ð?$@@þ|betaæ@@@$@|ê@@$@@@ @@$@@þjLalphaæà?à?333333ã?333333ã?|êà?à?$@333333ã?333333ã?@þ 4ißXÑMÁiŠœœz%Otableln3dzmln3dzm4CREATE TABLE ln3dzm ( id INTEGER NOT NULL PRt(Gtablepg2dmpg2dm7CREATE TABLE pg2dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" POLYGON)w#Mtableln3dzln3dz1CREATE TABLE ln3dz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" LINESTRING)w$Mtableln2dmln2dm3CREATE TABLE ln2dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" LINESTRING)z%Otableln3dzmln3dzm4CREATE TABLE ln3dzm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" LINESTRING)r&Ctablept2dmpt2dm5CREATE TABLE pt2dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" POINT)q'Etablepg2dpg2d6CREATE TABLE pg2d ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" POLYGON)V'tablepg2dmpg2dm7CREATE TABLE pg2dm ( id INTEGER NOT NULL PRIMARY KEY, namt)Gtablepg3dzpg3dz8CREATE TABLE pg3dz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" POLYGON) ™”¤™ deltajLgammaæà?à?333333ã?333333ã?|Òà?à?$@333333ã?333333ã?@þ|betaæ@@|Ò@ð?@@@@@þjLalphaæð?ð?|Ò$@ð?ð?"@þ alè„a deltazlalphaæ$@$@|º ð?@$@$@@@þ‚,betaæ$@$@|º ð?@$@@@$@$@@@þzlgammaæ$@$@|º $@ð?@$@@@þ a° deltaNalphaæš™™™™™ù?333333ó?š™™™™™ù?333333ó?|Ñš™™™™™ù?333333ó?"@þMbetaæÍÌÌÌÌÌô?ÍÌÌÌÌÌô?ÍÌÌÌÌÌô?ÍÌÌÌÌÌô?|ÑÍÌÌÌÌÌô?ÍÌÌÌÌÌô?&@þNgammaæš™™™™™ñ?š™™™™™ñ?š™™™™™ñ?š™™™™™ñ?|Ñš™™™™™ñ?š™™™™™ñ?$@þ ß oð åRƒgammaæ$@.@@|$@.@.@@$@@$@(@@*@@*@@(@@þ delta}tbetaæ(@@*@@|(@@*@@*@@(@@þ‚alphaæð?ð?|ð?ð?ð?ð?þ U8õ6‚dalphaæð?ð?|Ó@ð?@ð?ð?@ð?@@þ‚„,gammaæ$@.@@|Ó$@@.@@.@@@$@@ @$@@(@@@*@@@*@@@(@@@þ‚4betaæ(@@*@@|Ó(@@@*@@@*@@ @(@@@þ delta §`Š delta‚„,gammaæ$@.@@|ë$@@.@@.@@@$@@ @$@@(@@@*@@@*@@@(@@@þ6‚dalphaæð?ð?|ë@ð?@ð?ð?@ð?@@þ‚4betaæ(@@*@@|ë(@@@*@@@*@@ @(@@@þ î¯Jùîe@be deltaOgammaæ@"@@"@|i@"@þc@betaæ$@$@4@4@|i$@4@i4@$@þOalphaæ@@@@|i@@þ Χ2ÙÎ deltaW&gammaæ$@@$@@|ÔiÑ$@@ð?þs`betaæ$@$@4@4@|ÔiÑ$@4@@iÑ4@$@@þW&alphaæ@@@@|ÔiÑ@@@þ Χ2ÙÎ deltaW&gammaæ$@@$@@|ìié$@@ð?þs`betaæ$@$@4@4@|ìié$@4@@ié4@$@@þW&alphaæ@@@@|ìié@@@þ ’ ‡‚Å1—Kg,)tablempt3dzmpt3dz;CREATE TABLE mpt3dz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)j-+tablempt3dzmmpt3dzm=CREATE TABLE mpt3dzm ( id INTEGER NOT NULL PRIMARY KEY, namw.Itablepg3dzmpg3dzm>CREATE TABLE pg3dzm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" POLYGON)w*Mtablempt2dmpt2d9CREATE TABLE mpt2d ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" MULTIPOINT)z+Otablempt2dmmpt2dm:CREATE TABLE mpt2dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" MULTIPOINT)z,Otablempt3dzmpt3dz;CREATE TABLE mpt3dz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" MULTIPOINT)}-Qtablempt3dzmmpt3dzm=CREATE TABLE mpt3dzm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" MULTIPOINT)|/Wtablemln2dmln2d?CREATE TABLE mln2d ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" MULTILINESTRING) ­Ÿ­¸ delta_6gammaæ$@@$@@|¼ i¹ $@@ð?@þ‚betaæ$@$@4@4@|¼ i¹ $@4@@@i¹ 4@$@@@þ_6alphaæ@@@@|¼ i¹ @@@@þ ï_@úï delta‚b…alphaæ$@$@4@4@|i4@$@$@4@þ #‹#Ý. delta,‚Pgammaæ@@6@6@|ÕiÒ6@(@@(@6@@iÒ@@@&@&@@þ+‚Pbetaæ@@5@5@|ÕiÒ5@&@@&@5@@iÒ@@@$@$@@þs^alphaæ$@$@4@4@|ÕiÒ4@$@@$@4@@þ #‹#Ý. delta,‚Pgammaæ@@6@6@|íiê6@(@@(@6@@iê@@@&@&@@þ+‚Pbetaæ@@5@5@|íiê5@&@@&@5@@iê@@@$@$@@þs^alphaæ$@$@4@4@|íiê4@$@@$@4@@þ Òz¬ÝÒ deltaLƒgammaæ@@6@6@|½ iº 6@(@@@(@6@@@iº @@@@&@&@@"@þKƒbetaæ@@5@5@|½ iº 5@&@@@&@5@@@iº @@@ð?$@$@@@þ~alphaæ$@$@4@4@|½ iº 4@$@@@$@4@@@þ  )   delta‚gammaæ?@?@@@@@|i?@?@@@?@?@@@?@?@þ‚betaæ5@5@6@6@|i5@5@6@5@5@6@5@5@þTƒ alphaæ4@4@?@?@|i4@4@5@4@4@5@4@4@i>@>@?@>@>@?@>@>@þ ‹é@–‹ delta'‚Fgammaæ?@?@@@@@|ÖiÓ?@?@@@@?@@?@@@@?@?@@þ&‚Fbetaæ5@5@6@6@|ÖiÓ5@5@@6@5@@5@6@@5@5@@þ‚„ alphaæ4@4@?@?@|ÖiÓ4@4@@5@4@@4@5@@4@4@@iÓ>@>@@?@>@@>@?@@>@>@@þ ßéŒ5 delta&‚Fbetaæ5@5@6@6@|îië5@5@@6@5@@5@6@@5@5@@þ'‚Fgammaæ?@?@@@@@|îië?@?@@@@?@@?@@@@?@?@@þ beta‚„ alphaæ4@4@?@?@|îië4@4@@5@4@@4@5@@4@4@@ië>@>@@?@>@@>@?@@>@>@@þ ƒƒ¯¯|5Stablempg3dzmpg3dzECREATE TABLE mpg3dz ( id INTEGER NOT NULL PRIMARY K0Ytablemln2dmmln2dm@CREATE TABLE mln2dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" MULTILINESTRING)1Ytablemln3dzmln3dzACREATE TABLE mln3dz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" MULTILINESTRING)2[tablemln3dzmmln3dzmBCREATE TABLE mln3dzm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" MULTILINESTRING)y3Qtablempg2dmpg2dCCREATE TABLE mpg2d ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" MULTIPOLYGON)|4Stablempg2dmmpg2dmDCREATE TABLE mpg2dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" MULTIPOLYGON)|5Stablempg3dzmpg3dzECREATE TABLE mpg3dz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" MULTIPOLYGON)6Utablempg3dzmmpg3dzmGCREATE TABLE mpg3dzm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" MULTIPOLYGON)  ©à deltaGƒgammaæ?@?@@@@@|¾ i» ?@?@@@@@?@@@?@@@@@?@?@@@þFƒbetaæ5@5@6@6@|¾ i» 5@5@@@6@5@@@5@6@@@5@5@@@þ‚T… alphaæ4@4@?@?@|¾ i» 4@4@@@5@4@@@4@5@@@4@4@@@i» >@>@@@?@>@@@>@?@@@>@>@@@þ ŒVõÝŒOgammaæ"@@"@@|i"@@þwhbetaæ@@4@4@|i@@i$@$@4@4@þ‚0alphaæð?@6@6@|ið?@i5@5@6@5@5@6@5@5@þ delta C9C§N deltaW&gammaæ"@@"@@|×iÑ"@@@þ‚betaæ@@4@4@|×iÑ@@@iÒ$@$@@4@4@ @þDƒalphaæð?@6@6@|×iÑð?@@iÓ5@5@@6@5@@5@6@ @5@5@@þ C9C§N deltaW&gammaæ"@@"@@|ïié"@@@þ‚betaæ@@4@4@|ïié@@@iê$@$@@4@4@ @þDƒalphaæð?@6@6@|ïiéð?@@ië5@5@@6@5@@5@6@ @5@5@@þ ñü¦ñ delta'‚Hbetaæ@@4@4@|¿ i¹ @@@ @iº $@$@@ð?4@4@ @@þ_6gammaæ"@@"@@|¿ i¹ "@@@@þ betalƒPalphaæð?@6@6@|¿ i¹ ð?@@@i» 5@5@@@6@5@@@5@6@ @ @5@5@@@þ ù¸]Ýù deltaVƒ epsilonæ4@4@?@?@|i4@4@5@4@4@5@4@4@i>@>@?@>@>@?@>@>@þ~tgammaæ4@4@5@5@|4@4@5@4@4@5@4@4@þY,betaæ&@@(@ @|&@@(@ @þFalphaæ$@@$@@|$@@þ €°E¤€‹ delta‚„ epsilonæ4@4@?@?@|ÖiÓ4@4@@5@4@@4@5@@4@4@@iÓ>@>@@?@>@@>@?@@>@>@@þ‚4gammaæ4@4@5@5@|Ó4@4@@5@4@@4@5@@4@4@@þiLbetaæ&@@(@ @|Ò&@@@(@ @@þNalphaæ$@@$@@|Ñ$@@@þ €°E¤€‹ delta‚„ epsilonæ4@4@?@?@|îië4@4@@5@4@@4@5@@4@4@@ië>@>@@?@>@@>@?@@>@>@@þ‚4gammaæ4@4@5@5@|ë4@4@@5@4@@4@5@@4@4@@þiLbetaæ&@@(@ @|ê&@@@(@ @@þNalphaæ$@@$@@|é$@@@þ ¨-l delta‚V… epsilonæ4@4@?@?@|¾ i» 4@4@@@5@4@@@4@5@@@4@4@@@i» >@>@@@?@>@@@>@?@@@>@>@@@þ>‚tgammaæ4@4@5@5@|» 4@4@@@5@4@@@4@5@@@4@4@@@þylbetaæ&@@(@ @|º &@@@@(@ @@@þV$alphaæ$@@$@@|¹ $@@@@þ • †žx<Ktablegeo2dmgeo2dmMCREATE TABLE geo2dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "g|7[tablegc2dgc2dHCREATE TABLE gc2d ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" GEOMETRYCOLLECTION)8]tablegc2dmgc2dmICREATE TABLE gc2dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" GEOMETRYCOLLECTION)9]tablegc3dzgc3dzJCREATE TABLE gc3dz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" GEOMETRYCOLLECTION):_tablegc3dzmgc3dzmKCREATE TABLE gc3dzm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" GEOMETRYCOLLECTION)u;Itablegeo2dgeo2dLCREATE TABLE geo2d ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" GEOMETRY)x<Ktablegeo2dmgeo2dmMCREATE TABLE geo2dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" GEOMETRY)x=Ktablegeo3dzgeo3dzNCREATE TABLE geo3dz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" GEOMETRY) Ÿæ¹Ÿ1sql_statements_log36++3spatial_ref_sysidx_spatial_ref_sys3 1 11spatialite_history12 zÔ©z-+3 spatial_ref_sysidx_spatial_ref_sysæ)+3 spatial_ref_sysidx_spatial_ref_sys*+3 spatial_ref_sysidx_spatial_ref_sysÿ !úóìåÞ×ÐÉ»´­¦Ÿ˜‘Šƒ|ung`YRKD=6/(!æ!æ æææææææææææææææææææ æ æ æ æ æææææææ æ   ßõìß æepsgæNONE ÿNONEÿ £E¼3¥ -=#geometry_columnstrigger 'geometry_columns_geometry_type_insert' successfully created2014-05-20T08:47:54.662Z3.8.4.34.2.0-devel  -=#geometry_columnstrigger 'geometry_columns_f_geometry_column_update' successfully created2014-05-20T08:47:54.662Z3.8.4.34.2.0-devel  -=#geometry_columnstrigger 'geometry_columns_f_geometry_column_insert' successfully created2014-05-20T08:47:54.662Z3.8.4.34.2.0-devel -=#geometry_columnstrigger 'geometry_columns_f_table_name_update' successfully created2014-05-20T08:47:54.662Z3.8.4.34.2.0-devel -=#geometry_columnstrigger 'geometry_columns_f_table_name_insert' successfully created2014-05-20T08:47:54.662Z3.8.4.34.2.0-devel\-A=#geometry_columnstable successfully created2014-05-20T08:47:54.662Z3.8.4.34.2.0-devel[+A=#spatial_ref_systable successfully created2014-05-20T08:47:54.631Z3.8.4.34.2.0-devel ?vê^ì¯?ns=#pt3dzgeomGeometry [POINT,XYZ,SRID=4326] successfully created2014-05-20T08:58:02.783Z3.8.4.34.2.0-develns=#pt2dmgeomGeometry [POINT,XYM,SRID=4326] successfully created2014-05-20T08:57:52.549Z3.8.4.34.2.0-devell q=#pt2dgeomGeometry [POINT,XY,SRID=4326] successfully created2014-05-20T08:57:41.161Z3.8.4.34.2.0-devel] +E=#spatial_ref_systable successfully populated2014-05-20T08:47:55.426Z3.8.4.34.2.0-develp /g=#geom_cols_ref_sysview 'geom_cols_ref_sys' successfully created2014-05-20T08:47:54.662Z3.8.4.34.2.0-devel -=#geometry_columnstrigger 'geometry_columns_coord_dimension_update' successfully created2014-05-20T08:47:54.662Z3.8.4.34.2.0-devel -=#geometry_columnstrigger 'geometry_columns_coord_dimension_insert' successfully created2014-05-20T08:47:54.662Z3.8.4.34.2.0-devel -=#geometry_columnstrigger 'geometry_columns_geometry_type_update' successfully created2014-05-20T08:47:54.662Z3.8.4.34.2.0-devel McÅ'ˆëM ==)' 2014-05-20T08:49:36.436Z2014-05-20T08:49:36.639Zspatialite_guiCREATE TABLE ln3dz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)% 2014-05-20T08:49:29.307Z2014-05-20T08:49:29.526Zspatialite_guiCREATE TABLE ln2d ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)) 2014-05-20T08:49:15.423Z2014-05-20T08:49:15.657Zspatialite_guiCREATE TABLE pt3dzm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)' 2014-05-20T08:49:11.820Z2014-05-20T08:49:12.069Zspatialite_guiCREATE TABLE pt3dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)' 2014-05-20T08:49:06.219Z2014-05-20T08:49:06.453Zspatialite_guiCREATE TABLE pt3dz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)% 2014-05-20T08:48:53.474Z2014-05-20T08:48:53.724Zspatialite_guiCREATE TABLE pt2d ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success LbÃ%ˆêL ==)' 2014-05-20T08:50:55.000Z2014-05-20T08:50:55.203Zspatialite_guiCREATE TABLE pg3dz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)' 2014-05-20T08:50:45.328Z2014-05-20T08:50:45.515Zspatialite_guiCREATE TABLE pg2dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)% 2014-05-20T08:50:39.540Z2014-05-20T08:50:39.790Zspatialite_guiCREATE TABLE pg2d ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)' 2014-05-20T08:50:22.957Z2014-05-20T08:50:23.176Zspatialite_guiCREATE TABLE pt2dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)) 2014-05-20T08:49:56.202Z2014-05-20T08:49:56.420Zspatialite_guiCREATE TABLE ln3dzm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)' 2014-05-20T08:49:49.759Z2014-05-20T08:49:49.977Zspatialite_guiCREATE TABLE ln2dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success FaÃ$…åF ==)) 2014-05-20T08:52:17.974Z2014-05-20T08:52:18.177Zspatialite_guiCREATE TABLE pg3dzm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)+ 2014-05-20T08:51:45.279Z2014-05-20T08:51:45.481Zspatialite_guiCREATE TABLE mpt3dzm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)) 2014-05-20T08:51:40.365Z2014-05-20T08:51:40.567Zspatialite_guiCREATE TABLE mpt3dz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)) 2014-05-20T08:51:33.766Z2014-05-20T08:51:33.984Zspatialite_guiCREATE TABLE mpt2dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)' 2014-05-20T08:51:28.836Z2014-05-20T08:51:29.039Zspatialite_guiCREATE TABLE mpt2d ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)) 2014-05-20T08:50:59.274Z2014-05-20T08:50:59.477Zspatialite_guiCREATE TABLE pg3dzz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ,F¨ jÊ, ==)' 2014-05-20T08:53:53.656Z2014-05-20T08:53:53.875Zspatialite_guiCREATE TABLE mpg2d ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)+ 2014-05-20T08:53:10.944Z2014-05-20T08:53:11.162Zspatialite_guiCREATE TABLE mln3dzm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)) 2014-05-20T08:53:03.346Z2014-05-20T08:53:03.549Zspatialite_guiCREATE TABLE mln3dz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)) 2014-05-20T08:52:53.706Z2014-05-20T08:52:53.908Zspatialite_guiCREATE TABLE mln2dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)' 2014-05-20T08:52:48.589Z2014-05-20T08:52:48.792Zspatialite_guiCREATE TABLE mln2d ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success7 ==)%U2014-05-20T08:52:41.390Z2014-05-20T08:52:41.484Zspatialite_guiCREATE TABLE ln2d ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)SQL error: table ln2d already exists IaÂ"…çI ==)' 2014-05-20T08:54:49.817Z2014-05-20T08:54:50.066Zspatialite_guiCREATE TABLE gc3dz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)' 2014-05-20T08:54:41.252Z2014-05-20T08:54:41.455Zspatialite_guiCREATE TABLE gc2dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)% 2014-05-20T08:54:35.745Z2014-05-20T08:54:35.964Zspatialite_guiCREATE TABLE gc2d ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)+ 2014-05-20T08:54:11.706Z2014-05-20T08:54:11.924Zspatialite_guiCREATE TABLE mpg3dzm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)) 2014-05-20T08:54:06.714Z2014-05-20T08:54:06.917Zspatialite_guiCREATE TABLE mpg3dz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)) 2014-05-20T08:53:58.539Z2014-05-20T08:53:58.742Zspatialite_guiCREATE TABLE mpg2dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success YaÃ$…åY $ ==) 2014-05-20T08:56:31.669Z2014-05-20T08:56:32.246Zspatialite_guidelete from spatial_ref_sys where srid not in (-1, 0, 4326)success# ==)+ 2014-05-20T08:55:51.811Z2014-05-20T08:55:52.045Zspatialite_guiCREATE TABLE geo3dzm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success" ==)) 2014-05-20T08:55:46.819Z2014-05-20T08:55:47.022Zspatialite_guiCREATE TABLE geo3dz ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success! ==)) 2014-05-20T08:55:39.487Z2014-05-20T08:55:39.690Zspatialite_guiCREATE TABLE geo2dm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)' 2014-05-20T08:55:33.933Z2014-05-20T08:55:34.136Zspatialite_guiCREATE TABLE geo2d ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success ==)) 2014-05-20T08:54:56.478Z2014-05-20T08:54:56.696Zspatialite_guiCREATE TABLE gc3dzm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL)success pp… EU-‰#triggergeometry_columns_f_table_name_insertgeometry_columnsCREATE TRIGGER geometry_columns_f_table_name_insert BEFORE INSERT ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END __…FU-‰Etriggergeometry_columns_f_table_name_updategeometry_columnsCREATE TRIGGER geometry_columns_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END CC…:G_-‰striggergeometry_columns_f_geometry_column_insertgeometry_columnsCREATE TRIGGER geometry_columns_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END --…PH_-Štriggergeometry_columns_f_geometry_column_updategeometry_columnsCREATE TRIGGER geometry_columns_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END åå„IW-‡7triggergeometry_columns_geometry_type_insertgeometry_columnsCREATE TRIGGER geometry_columns_geometry_type_insert BEFORE INSERT ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'geometry_type must be one of 0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007') WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007)); END ³³á„+JW-‡]triggergeometry_columns_geometry_type_updategeometry_columnsCREATE TRIGGER geometry_columns_geometry_type_update BEFORE UPDATE OF 'geometry_type' ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'geometry_type must be one of 0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007') WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007)); END‚K[-ƒ;triggergeometry_columns_coord_dimension_insertgeometry_columnsCREATE TRIGGER geometry_columns_coord_dimension_insert BEFORE INSERT ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4') WHERE NOT(NEW.coord_dimension IN (2,3,4)); END ††º‚1L[-ƒetriggergeometry_columns_coord_dimension_updategeometry_columnsCREATE TRIGGER geometry_columns_coord_dimension_update BEFORE UPDATE OF 'coord_dimension' ON 'geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4') WHERE NOT(NEW.coord_dimension IN (2,3,4)); END‚CM//„9viewgeom_cols_ref_sysgeom_cols_ref_sysCREATE VIEW geom_cols_ref_sys AS SELECT f_table_name, f_geometry_column, geometry_type, coord_dimension, spatial_ref_sys.srid AS srid, auth_name, auth_srid, ref_sys_name, proj4text, srtext FROM geometry_columns, spatial_ref_sys WHERE geometry_columns.srid = spatial_ref_sys.srid ……„xN79‰ triggervwgc_view_name_insertviews_geometry_columnsCREATE TRIGGER vwgc_view_name_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END ww…O79‰'triggervwgc_view_name_updateviews_geometry_columnsCREATE TRIGGER vwgc_view_name_update BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END aa…P?9‰Ktriggervwgc_view_geometry_insertviews_geometry_columnsCREATE TRIGGER vwgc_view_geometry_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END NN…/Q?9‰qtriggervwgc_view_geometry_updateviews_geometry_columnsCREATE TRIGGER vwgc_view_geometry_update BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END ff…R99‰Gtriggervwgc_view_rowid_updateviews_geometry_columnsCREATE TRIGGER vwgc_view_rowid_update BEFORE UPDATE OF 'view_rowid' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_rowid value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_rowid value must not contain a double quote') WHERE NEW.view_rowid LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: view_rowid value must be lower case') WHERE NEW.view_rowid <> lower(NEW.view_rowid); END ||…S99‰triggervwgc_view_rowid_insertviews_geometry_columnsCREATE TRIGGER vwgc_view_rowid_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_rowid value must not contain a single quote') WHERE NEW.view_rowid LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_rowid value must not contain a double quote') WHERE NEW.view_rowid LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: view_rowid value must be lower case') WHERE NEW.view_rowid <> lower(NEW.view_rowid); END jj…T=9‰;triggervwgc_f_table_name_insertviews_geometry_columnsCREATE TRIGGER vwgc_f_table_name_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END YY…$U=9‰]triggervwgc_f_table_name_updateviews_geometry_columnsCREATE TRIGGER vwgc_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END ==…@VG9Š triggervwgc_f_geometry_column_insertviews_geometry_columnsCREATE TRIGGER vwgc_f_geometry_column_insert BEFORE INSERT ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END ''…VWG9Š7triggervwgc_f_geometry_column_updateviews_geometry_columnsCREATE TRIGGER vwgc_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'views_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END ……„xX79‰ triggervtgc_virt_name_insertvirts_geometry_columnsCREATE TRIGGER vtgc_virt_name_insert BEFORE INSERT ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END ww…Y79‰'triggervtgc_virt_name_updatevirts_geometry_columnsCREATE TRIGGER vtgc_virt_name_update BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END aa…Z?9‰Ktriggervtgc_virt_geometry_insertvirts_geometry_columnsCREATE TRIGGER vtgc_virt_geometry_insert BEFORE INSERT ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END NN…/[?9‰qtriggervtgc_virt_geometry_updatevirts_geometry_columnsCREATE TRIGGER vtgc_virt_geometry_update BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END ññ„ \?9‡+triggervtgc_geometry_type_insertvirts_geometry_columnsCREATE TRIGGER vtgc_geometry_type_insert BEFORE INSERT ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'geometry_type must be one of 0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007') WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007)); END ËËí„]?9‡Qtriggervtgc_geometry_type_updatevirts_geometry_columnsCREATE TRIGGER vtgc_geometry_type_update BEFORE UPDATE OF 'geometry_type' ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'geometry_type must be one of 0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007') WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,1000,1001,1002,1003,1004,1005,1006,1007,2000,2001,2002,2003,2004,2005,2006,2007,3000,3001,3002,3003,3004,3005,3006,3007)); END‚^C9ƒ/triggervtgc_coord_dimension_insertvirts_geometry_columnsCREATE TRIGGER vtgc_coord_dimension_insert BEFORE INSERT ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4') WHERE NOT(NEW.coord_dimension IN (2,3,4)); END ++S‚%_C9ƒYtriggervtgc_coord_dimension_updatevirts_geometry_columnsCREATE TRIGGER vtgc_coord_dimension_update BEFORE UPDATE OF 'coord_dimension' ON 'virts_geometry_columns' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4') WHERE NOT(NEW.coord_dimension IN (2,3,4)); END…*`;C‰atriggergcs_f_table_name_insertgeometry_columns_statisticsCREATE TRIGGER gcs_f_table_name_insert BEFORE INSERT ON 'geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END BB…;a;CŠtriggergcs_f_table_name_updategeometry_columns_statisticsCREATE TRIGGER gcs_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END &&…WbECŠ1triggergcs_f_geometry_column_insertgeometry_columns_statisticsCREATE TRIGGER gcs_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END …mcECŠ]triggergcs_f_geometry_column_updategeometry_columns_statisticsCREATE TRIGGER gcs_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END LL…1d9O‰etriggervwgcs_view_name_insertviews_geometry_columns_statisticsCREATE TRIGGER vwgcs_view_name_insert BEFORE INSERT ON 'views_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END >>…?e9OŠtriggervwgcs_view_name_updateviews_geometry_columns_statisticsCREATE TRIGGER vwgcs_view_name_update BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END ((…UfAOŠ%triggervwgcs_view_geometry_insertviews_geometry_columns_statisticsCREATE TRIGGER vwgcs_view_geometry_insert BEFORE INSERT ON 'views_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END …hgAOŠKtriggervwgcs_view_geometry_updateviews_geometry_columns_statisticsCREATE TRIGGER vwgcs_view_geometry_update BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END LL…1h9O‰etriggervtgcs_virt_name_insertvirts_geometry_columns_statisticsCREATE TRIGGER vtgcs_virt_name_insert BEFORE INSERT ON 'virts_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END >>…?i9OŠtriggervtgcs_virt_name_updatevirts_geometry_columns_statisticsCREATE TRIGGER vtgcs_virt_name_update BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END ((…UjAOŠ%triggervtgcs_virt_geometry_insertvirts_geometry_columns_statisticsCREATE TRIGGER vtgcs_virt_geometry_insert BEFORE INSERT ON 'virts_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END …hkAOŠKtriggervtgcs_virt_geometry_updatevirts_geometry_columns_statisticsCREATE TRIGGER vtgcs_virt_geometry_update BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns_statistics' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END LL…1l=E‰ktriggergcfi_f_table_name_insertgeometry_columns_field_infosCREATE TRIGGER gcfi_f_table_name_insert BEFORE INSERT ON 'geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END ;;…Bm=EŠ triggergcfi_f_table_name_updategeometry_columns_field_infosCREATE TRIGGER gcfi_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END …^nGEŠ;triggergcfi_f_geometry_column_insertgeometry_columns_field_infosCREATE TRIGGER gcfi_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END   …toGEŠgtriggergcfi_f_geometry_column_updategeometry_columns_field_infosCREATE TRIGGER gcfi_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END EE…8p;Q‰otriggervwgcfi_view_name_insertviews_geometry_columns_field_infosCREATE TRIGGER vwgcfi_view_name_insert BEFORE INSERT ON 'views_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END 77…Fq;QŠ triggervwgcfi_view_name_updateviews_geometry_columns_field_infosCREATE TRIGGER vwgcfi_view_name_update BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END !!…\rCQŠ/triggervwgcfi_view_geometry_insertviews_geometry_columns_field_infosCREATE TRIGGER vwgcfi_view_geometry_insert BEFORE INSERT ON 'views_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END …osCQŠUtriggervwgcfi_view_geometry_updateviews_geometry_columns_field_infosCREATE TRIGGER vwgcfi_view_geometry_update BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END EE…8t;Q‰otriggervtgcfi_virt_name_insertvirts_geometry_columns_field_infosCREATE TRIGGER vtgcfi_virt_name_insert BEFORE INSERT ON 'virts_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END 77…Fu;QŠ triggervtgcfi_virt_name_updatevirts_geometry_columns_field_infosCREATE TRIGGER vtgcfi_virt_name_update BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END !!…\vCQŠ/triggervtgcfi_virt_geometry_insertvirts_geometry_columns_field_infosCREATE TRIGGER vtgcfi_virt_geometry_insert BEFORE INSERT ON 'virts_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END …owCQŠUtriggervtgcfi_virt_geometry_updatevirts_geometry_columns_field_infosCREATE TRIGGER vtgcfi_virt_geometry_update BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns_field_infos' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END oo…x=7‰3triggergctm_f_table_name_insertgeometry_columns_timeCREATE TRIGGER gctm_f_table_name_insert BEFORE INSERT ON 'geometry_columns_time' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END ^^…y=7‰Utriggergctm_f_table_name_updategeometry_columns_timeCREATE TRIGGER gctm_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_time' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END BB…;zG7Štriggergctm_f_geometry_column_insertgeometry_columns_timeCREATE TRIGGER gctm_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns_time' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END ,,…Q{G7Š/triggergctm_f_geometry_column_updategeometry_columns_timeCREATE TRIGGER gctm_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_time' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END oo…|=7‰3triggergcau_f_table_name_insertgeometry_columns_authCREATE TRIGGER gcau_f_table_name_insert BEFORE INSERT ON 'geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END ^^…}=7‰Utriggergcau_f_table_name_updategeometry_columns_authCREATE TRIGGER gcau_f_table_name_update BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_table_name value must not contain a single quote') WHERE NEW.f_table_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_table_name value must not contain a double quote') WHERE NEW.f_table_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_table_name value must be lower case') WHERE NEW.f_table_name <> lower(NEW.f_table_name); END BB…;~G7Štriggergcau_f_geometry_column_insertgeometry_columns_authCREATE TRIGGER gcau_f_geometry_column_insert BEFORE INSERT ON 'geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END ,,…QG7Š/triggergcau_f_geometry_column_updategeometry_columns_authCREATE TRIGGER gcau_f_geometry_column_update BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_geometry_column value must not contain a single quote') WHERE NEW.f_geometry_column LIKE ('%''%'); SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_geometry_column value must not contain a double quote') WHERE NEW.f_geometry_column LIKE ('%"%'); SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: f_geometry_column value must be lower case') WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column); END gg…;C‰7triggervwgcau_view_name_insertviews_geometry_columns_authCREATE TRIGGER vwgcau_view_name_insert BEFORE INSERT ON 'views_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END YY…#;C‰Striggervwgcau_view_name_updateviews_geometry_columns_authCREATE TRIGGER vwgcau_view_name_update BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_name value must not contain a single quote') WHERE NEW.view_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_name value must not contain a double quote') WHERE NEW.view_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_name value must be lower case') WHERE NEW.view_name <> lower(NEW.view_name); END CC…9CC‰wtriggervwgcau_view_geometry_insertviews_geometry_columns_authCREATE TRIGGER vwgcau_view_geometry_insert BEFORE INSERT ON 'views_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END //…MCCŠtriggervwgcau_view_geometry_updateviews_geometry_columns_authCREATE TRIGGER vwgcau_view_geometry_update BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_geometry value must not contain a single quote') WHERE NEW.view_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_geometry value must not contain a double quote') WHERE NEW.view_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: view_geometry value must be lower case') WHERE NEW.view_geometry <> lower(NEW.view_geometry); END gg…;C‰7triggervtgcau_virt_name_insertvirts_geometry_columns_authCREATE TRIGGER vtgcau_virt_name_insert BEFORE INSERT ON 'virts_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END YY…#;C‰Striggervtgcau_virt_name_updatevirts_geometry_columns_authCREATE TRIGGER vtgcau_virt_name_update BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_name value must not contain a single quote') WHERE NEW.virt_name LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_name value must not contain a double quote') WHERE NEW.virt_name LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_name value must be lower case') WHERE NEW.virt_name <> lower(NEW.virt_name); END CC…9CC‰wtriggervtgcau_virt_geometry_insertvirts_geometry_columns_authCREATE TRIGGER vtgcau_virt_geometry_insert BEFORE INSERT ON 'virts_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END 00…LCCŠtriggervtgcau_virt_geometry_updatevirts_geometry_columns_authCREATE TRIGGER vtgcau_virt_geometry_update BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns_auth' FOR EACH ROW BEGIN SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_geometry value must not contain a single quote') WHERE NEW.virt_geometry LIKE ('%''%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_geometry value must not contain a double quote') WHERE NEW.virt_geometry LIKE ('%"%'); SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: virt_geometry value must be lower case') WHERE NEW.virt_geometry <> lower(NEW.virt_geometry); END ,,‡P''Žcviewvector_layersvector_layersCREATE VIEW vector_layers AS SELECT 'SpatialTable' AS layer_type, f_table_name AS table_name, f_geometry_column AS geometry_column, geometry_type AS geometry_type, coord_dimension AS coord_dimension, srid AS srid, spatial_index_enabled AS spatial_index_enabled FROM geometry_columns UNION SELECT 'SpatialView' AS layer_type, a.view_name AS table_name, a.view_geometry AS geometry_column, b.geometry_type AS geometry_type, b.coord_dimension AS coord_dimension, b.srid AS srid, b.spatial_index_enabled AS spatial_index_enabled FROM views_geometry_columns AS a LEFT JOIN geometry_columns AS b ON (Upper(a.f_table_name) = Upper(b.f_table_name) AND Upper(a.f_geometry_column) = Upper(b.f_geometry_column)) UNION SELECT 'VirtualShape' AS layer_type, virt_name AS table_name, virt_geometry AS geometry_column, geometry_type AS geometry_type, coord_dimension AS coord_dimension, srid AS srid, 0 AS spatial_index_enabled FROM virts_geometry_columns ¬¬‘…a 11Šqviewvector_layers_authvector_layers_authCREATE VIEW vector_layers_auth AS SELECT 'SpatialTable' AS layer_type, f_table_name AS table_name, f_geometry_column AS geometry_column, read_only AS read_only, hidden AS hidden FROM geometry_columns_auth UNION SELECT 'SpatialView' AS layer_type, a.view_name AS table_name, a.view_geometry AS geometry_column, b.read_only AS read_only, a.hidden AS hidden FROM views_geometry_columns_auth AS a JOIN views_geometry_columns AS b ON (Upper(a.view_name) = Upper(b.view_name) AND Upper(a.view_geometry) = Upper(b.view_geometry)) UNION SELECT 'VirtualShape' AS layer_type, virt_name AS table_name, virt_geometry AS geometry_column, 1 AS read_only, hidden AS hidden FROM virts_geometry_columns_authˆ ==7viewvector_layers_statisticsvector_layers_statisticsCREATE VIEW vector_layers_statistics AS SELE CT 'SpatialTable' AS layer_type, f_table_name AS table_name, f_geometry_column AS geometry_column, last_verified AS last_verified, row_count AS row_count, extent_min_x AS extent_min_x, extent_min_y AS extent_min_y, extent_max_x AS extent_max_x, extent_max_y AS extent_max_y FROM geometry_columns_statistics UNION SELECT 'SpatialView' AS layer_type, view_name AS table_name, view_geometry AS geometry_column, last_verified AS last_verified, row_count AS row_count, extent_min_x AS extent_min_x, extent_min_y AS extent_min_y, extent_max_x AS extent_max_x, extent_max_y AS extent_max_y FROM views_geometry_columns_statistics UNION SELECT 'VirtualShape' AS layer_type, virt_name AS table_name, virt_geometry AS geometry_column, last_verified AS last_verified, row_count AS row_count, extent_min_x AS extent_min_x, extent_min_y AS extent_min_y, extent_max_x AS extent_max_x, extent_max_y AS extent_max_y FROM virts_geometry_columns_statisticser_max, double_min AS double_min, double_max double_max FROM geometry_columns_field_infos UNION SELECT 'SpatialView' AS layer_type, view_name AS table_name, view_geometry AS geometry_column, ordinal AS ordinal, column_name AS column_name, null_values AS null_values, integer_values AS integer_values, double_values AS double_values, text_values AS text_values, blob_values AS blob_values, max_size AS max_size, integer_min AS integer_min, integer_max AS integer_max, double_min AS double_min, double_max double_max FROM views_geometry_columns_field_infos UNION SELECT 'VirtualShape' AS layer_type, virt_name AS table_name, virt_geometry AS geometry_column, ordinal AS ordinal, column_name AS column_name, null_values AS null_values, integer_values AS integer_values, double_values AS double_values, text_values AS text_values, blob_values AS blob_values, max_size AS max_size, integer_min AS integer_min, integer_max AS integer_max, double_min AS double_min, double_max double_max FROM virts_geometry_columns_field_infos ßšš{ß‹U ??–=v‹U ??–=viewvector_layers_field_infosvector_layers_field_infosCREATE VIEW vector_layers_field_infos AS SELECT 'Spat‹U ‹U ‹U ??–=viewvector_layers_field_infosvector_layers_field_infosCREATE VIEW vector_layers_field_infos AS SELECT 'SpatialTable' AS layer_type, f_table_name AS table_name, f_geometry_column AS geometry_column, ordinal AS ordinal, column_name AS column_name, null_values AS null_values, integer_values AS integer_values, double_values AS double_values, text_values AS text_values, blob_values AS blob_values, max_size AS max_size, integer_min AS integer_min, integer_max AS integ¡a %%tableSpatialIndexSpatialIndexCREATE VIRTUAL TABLE SpatialIndex USING VirtualSpatialIndex()!)„triggertmd_geo2d_geomgeo2dCREATE TRIGGER "tmd_geo2d_geom" AFTER DELETE ON "geo2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('geo2d') AND Lower(f_geometry_column) = Lower('geom'); END ˜râRÀ-˜* ==) 2014-05-20T08:58:50.129Z2014-05-20T08:58:51.283Zspatialite_guiselect AddGeometryColumn('ln2dm', 'geom', 4326, 'LINESTRING', 'XYM')success) ==) 2014-05-20T08:58:39.380Z2014-05-20T08:58:40.519Zspatialite_guiselect AddGeometryColumn('ln2d', 'geom', 4326, 'LINESTRING', 'XY')success( ==) 2014-05-20T08:58:12.626Z2014-05-20T08:58:13.796Zspatialite_guiselect AddGeometryColumn('pt3dzm', 'geom', 4326, 'POINT', 'XYZM')success ' ==) 2014-05-20T08:58:01.722Z2014-05-20T08:58:02.876Zspatialite_guiselect AddGeometryColumn('pt3dz', 'geom', 4326, 'POINT', 'XYZ')success & ==) 2014-05-20T08:57:51.363Z2014-05-20T08:57:52.643Zspatialite_guiselect AddGeometryColumn('pt2dm', 'geom', 4326, 'POINT', 'XYM')success % ==) 2014-05-20T08:57:40.006Z2014-05-20T08:57:41.286Zspatialite_guiselect AddGeometryColumn('pt2d', 'geom', 4326, 'POINT', 'XY')success ¬²;¾9¬¡'† triggerggu_pt2d_geompt2dCREATE TRIGGER "ggu_pt2d_geom" BEFORE UPDATE ON "pt2d" FOR EACH ROW BEGIN SELECT³-†!t­ „ 553tableidx_gc2d_geom_parentidx_gc2d_geom_parent\CREATE TABLE "idx_gc2d_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)„ 33'tableidx_gc2d_geom_rowididx_gc2d_geom_rowid[CREATE TABLE "idx_gc2d_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)z„ 11tableidx_gc2d_geom_nodeidx_gc2d_geom_nodeZCREATE TABLE "idx_gc2d_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)t„ '')tableidx_gc2d_geomidx_gc2d_geomCREATE VIRTUAL TABLE "idx_gc2d_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚J„ '„ctriggergid_gc2d_geomgc2dCREATE TRIGGER "gid_gc2d_geom" AFTER DELETE ON "gc2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('gc2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_gc2d_geom" WHERE pkid=OLD.ROWID; END îwî!ƒ#)†triggerggi_pt2dm_geompt2dmCREATE TRIGGER "ggi_pt2dm_geom" BEFORE INSERT ON "pt2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pt2dm.geom violates Geometry constraint [geom-type or SRID not allowƒ‚0'…Ytriggergiu_pt2d_geompt2dCREATE TRIGGER "giu_pt2d_geom" AFTER UPDATE ON "pt2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pt2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pt2d_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_pt2d_geom', NEW.ROWID, NEW."geom"); ENDƒ‚/'…Ytriggergii_pt2d_geompt2dCREATE TRIGGER "gii_pt2d_geom" AFTER INSERT ON "pt2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pt2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pt2d_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_pt2d_geom', NEW.ROWID, NEW."geom"); END ²Y²߃#)†triggerggu_pt2dm_geompt2dmCREATE TRIGGER "ggu_pt2dm_geom" BEFORE UPDATE ON "pt2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pt2dm.geom violateƒ#‚7)†triggerggu_pt2dm_geompt2dmCREATE TRIGGER "ggu_pt2dm_geom" BEFORE UPDATE ON "pt2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pt2dm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('pt2dm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ#‚6)†triggerggi_pt2dm_geompt2dmCREATE TRIGGER "ggi_pt2dm_geom" BEFORE INSERT ON "pt2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pt2dm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('pt2dm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END àpàƒ#)†triggerggi_pt3dz_geompt3dzCREATE TRIGGER "ggi_pt3dz_geom" BEFORE INSERT ON "pt3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pt3dz.geom violates Geometry constraint [geom-type or SRID not aƒ ‚9)…ctriggergiu_pt2dm_geompt2dmCREATE TRIGGER "giu_pt2dm_geom" AFTER UPDATE ON "pt2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pt2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pt2dm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_pt2dm_geom', NEW.ROWID, NEW."geom"); ENDƒ ‚8)…ctriggergii_pt2dm_geompt2dmCREATE TRIGGER "gii_pt2dm_geom" AFTER INSERT ON "pt2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pt2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pt2dm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_pt2dm_geom', NEW.ROWID, NEW."geom"); END ²Y²߃#)†triggerggu_pt3dz_geompt3dzCREATE TRIGGER "ggu_pt3dz_geom" BEFORE UPDATE ON "pt3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pt3dz.geom violateƒ#‚@)†triggerggu_pt3dz_geompt3dzCREATE TRIGGER "ggu_pt3dz_geom" BEFORE UPDATE ON "pt3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pt3dz.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('pt3dz') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ#‚?)†triggerggi_pt3dz_geompt3dzCREATE TRIGGER "ggi_pt3dz_geom" BEFORE INSERT ON "pt3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pt3dz.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('pt3dz') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END àpàƒ)+†triggerggi_pt3dzm_geompt3dzmCREATE TRIGGER "ggi_pt3dzm_geom" BEFORE INSERT ON "pt3dzm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pt3dzm.geom violates Geometry constraint [geom-type or SRID not alƒ ‚B)…ctriggergiu_pt3dz_geompt3dzCREATE TRIGGER "giu_pt3dz_geom" AFTER UPDATE ON "pt3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pt3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pt3dz_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_pt3dz_geom', NEW.ROWID, NEW."geom"); ENDƒ ‚A)…ctriggergii_pt3dz_geompt3dzCREATE TRIGGER "gii_pt3dz_geom" AFTER INSERT ON "pt3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pt3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pt3dz_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_pt3dz_geom', NEW.ROWID, NEW."geom"); END ¦S¦ƒ)‚I+†triggerggu_pt3dzm_geompt3dzmCREATE TRIGGER "ggu_pt3dzm_geom" BEFORE UPDATE ON "pt3dzm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pt3dzm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('pt3dzm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ)‚H+†triggerggi_pt3dzm_geompt3dzmCREATE TRIGGER "ggi_pt3dzm_geom" BEFORE INSERT ON "pt3dzm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pt3dzm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('pt3dzm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END ÒiÒ_‚"+„ triggertmi_pt3dzm_geompt3dzmCREATE TRIGGER "tmi_pt3dzm_geom" AFTER INSERT ON "pt3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZƒ‚K+…mtriggergiu_pt3dzm_geompt3dzmCREATE TRIGGER "giu_pt3dzm_geom" AFTER UPDATE ON "pt3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pt3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pt3dzm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_pt3dzm_geom', NEW.ROWID, NEW."geom"); ENDƒ‚J+…mtriggergii_pt3dzm_geompt3dzmCREATE TRIGGER "gii_pt3dzm_geom" AFTER INSERT ON "pt3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pt3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pt3dzm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_pt3dzm_geom', NEW.ROWID, NEW."geom"); END fަ1ºJØfpw=#pg3dzgeomGeometry [POLYGON,XYZ,SRID=4326] successfully created2014-05-20T09:00:34.711Z3.8.4.34.2.0-develpw=#pg2dmgeomGeometry [POLYGON,XYM,SRID=4326] successfully created2014-05-20T09:00:14.275Z3.8.4.34.2.0-develnu=#pg2dgeomGeometry [POLYGON,XY,SRID=4326] successfully created2014-05-20T09:00:04.931Z3.8.4.34.2.0-develu=#ln3dzmgeomGeometry [LINESTRING,XYZM,SRID=4326] successfully created2014-05-20T08:59:26.570Z3.8.4.34.2.0-devels}=#ln3dzgeomGeometry [LINESTRING,XYZ,SRID=4326] successfully created2014-05-20T08:59:15.728Z3.8.4.34.2.0-devels}=#ln2dmgeomGeometry [LINESTRING,XYM,SRID=4326] successfully created2014-05-20T08:58:51.189Z3.8.4.34.2.0-develq{=#ln2dgeomGeometry [LINESTRING,XY,SRID=4326] successfully created2014-05-20T08:58:40.425Z3.8.4.34.2.0-develpu=#pt3dzmgeomGeometry [POINT,XYZM,SRID=4326] successfully created2014-05-20T08:58:13.687Z3.8.4.34.2.0-devel ¾_¾äƒ"'† triggerggu_ln2d_geomln2dCREATE TRIGGER "ggu_ln2d_geom" BEFORE UPDATE ON "ln2d" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'ln2d.geom violatesƒ‚m'† triggerggu_ln2d_geomln2dCREATE TRIGGER "ggu_ln2d_geom" BEFORE UPDATE ON "ln2d" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'ln2d.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('ln2d') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ‚l'† triggerggi_ln2d_geomln2dCREATE TRIGGER "ggi_ln2d_geom" BEFORE INSERT ON "ln2d" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'ln2d.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('ln2d') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END îwî_ƒ‚%'ƒtriggertmd_ln2d_geomln2dCREATE TRIGGER "tmd_ln2d_geom" AFTER DELETE ON "ln2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lowerƒ‚o'…Ytriggergiu_ln2d_geomln2dCREATE TRIGGER "giu_ln2d_geom" AFTER UPDATE ON "ln2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('ln2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_ln2d_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_ln2d_geom', NEW.ROWID, NEW."geom"); ENDƒ‚n'…Ytriggergii_ln2d_geomln2dCREATE TRIGGER "gii_ln2d_geom" AFTER INSERT ON "ln2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('ln2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_ln2d_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_ln2d_geom', NEW.ROWID, NEW."geom"); END š¬2²*šƒ#')†triggerggu_ln2dm_geomln2dmCREATE TRIGGER "ggu_ln2dm_geom" BEFORE UPDATE ON "ln2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLB ‚k775tableidx_ln2dm_geom_parentidx_ln2dm_geom_parentCREATE TABLE "idx_ln2dm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)‚j55)tableidx_ln2dm_geom_rowididx_ln2dm_geom_rowidCREATE TABLE "idx_ln2dm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)}‚i33tableidx_ln2dm_geom_nodeidx_ln2dm_geom_nodeCREATE TABLE "idx_ln2dm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)w‚h))+tableidx_ln2dm_geomidx_ln2dm_geomCREATE VIRTUAL TABLE "idx_ln2dm_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚P‚g)„ktriggergid_ln2dm_geomln2dmCREATE TRIGGER "gid_ln2dm_geom" AFTER DELETE ON "ln2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('ln2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_ln2dm_geom" WHERE pkid=OLD.ROWID; END àpàƒ ‚f)…ctriggergiu_ln2dm_geomln2dmCREATE TRIGGER "giu_ln2dm_geom" AFTER UPDATE ON "ln2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('ln2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_ln2dm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_ln2dm_geom', NEW.ROWID, NEW."geom"); ENDƒ ‚e)…ctriggergii_ln2dm_geomln2dmCREATE TRIGGER "gii_ln2dm_geom" AFTER INSERT ON "ln2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('ln2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_ln2dm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_ln2dm_geom', NEW.ROWID, NEW."geom"); END ‹kÖ?¯‹0 ==) 2014-05-20T09:00:22.247Z2014-05-20T09:00:22.340Zspatialite_guiselect AddGeometryColumn('pg2dz', 'geom', 4326, 'POLYGON', 'XYZ')success/ ==) 2014-05-20T09:00:13.136Z2014-05-20T09:00:14.369Zspatialite_guiselect AddGeometryColumn('pg2dm', 'geom', 4326, 'POLYGON', 'XYM')success . ==) 2014-05-20T09:00:03.823Z2014-05-20T09:00:05.024Zspatialite_guiselect AddGeometryColumn('pg2d', 'geom', 4326, 'POLYGON', 'XY')success- ==) 2014-05-20T08:59:25.509Z2014-05-20T08:59:26.664Zspatialite_guiselect AddGeometryColumn('ln3dzm', 'geom', 4326, 'LINESTRING', 'XYZM')success, ==) 2014-05-20T08:59:14.667Z2014-05-20T08:59:15.822Zspatialite_guiselect AddGeometryColumn('ln3dz', 'geom', 4326, 'LINESTRING', 'XYZ')success+ ==) 2014-05-20T08:59:02.047Z2014-05-20T08:59:02.156Zspatialite_guiselect AddGeometryColumn('ln3dm', 'geom', 4326, 'LINESTRING', 'XYZ')success š¬2²*šƒ#,)†triggerggu_ln3dz_geomln3dzCREATE TRIGGER "ggu_ln3dz_geom" BEFORE UPDATE ON "ln3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLB ‚b775tableidx_ln3dz_geom_parentidx_ln3dz_geom_parent CREATE TABLE "idx_ln3dz_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)‚a55)tableidx_ln3dz_geom_rowididx_ln3dz_geom_rowid CREATE TABLE "idx_ln3dz_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)}‚`33tableidx_ln3dz_geom_nodeidx_ln3dz_geom_node CREATE TABLE "idx_ln3dz_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)w‚_))+tableidx_ln3dz_geomidx_ln3dz_geomCREATE VIRTUAL TABLE "idx_ln3dz_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚P‚^)„ktriggergid_ln3dz_geomln3dzCREATE TRIGGER "gid_ln3dz_geom" AFTER DELETE ON "ln3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('ln3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_ln3dz_geom" WHERE pkid=OLD.ROWID; END àpàƒ ‚])…ctriggergiu_ln3dz_geomln3dzCREATE TRIGGER "giu_ln3dz_geom" AFTER UPDATE ON "ln3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('ln3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_ln3dz_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_ln3dz_geom', NEW.ROWID, NEW."geom"); ENDƒ ‚\)…ctriggergii_ln3dz_geomln3dzCREATE TRIGGER "gii_ln3dz_geom" AFTER INSERT ON "ln3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('ln3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_ln3dz_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_ln3dz_geom', NEW.ROWID, NEW."geom"); END ‡¦)¥‡‚Y997tableidx_ln3dzm_geom_parentidx_ln3dzm_geom_parent CREATE TABLE "idx_ln3dzm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)‚X77+tableidx_ln3dzm_geom_rowididx_ln3dzm_geom_rowidCREATE TABLE "idx_ln3dzm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)‚W55!tableidx_ln3dzm_geom_nodeidx_ln3dzm_geom_nodeCREATE TABLE "idx_ln3dzm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)z‚V++-tableidx_ln3dzm_geomidx_ln3dzm_geomCREATE VIRTUAL TABLE "idx_ln3dzm_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚V‚U+„striggergid_ln3dzm_geomln3dzmCREATE TRIGGER "gid_ln3dzm_geom" AFTER DELETE ON "ln3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('ln3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_ln3dzm_geom" WHERE pkid=OLD.ROWID; END ÒiÒƒ‚T+…mtriggergiu_ln3dzm_geomln3dzmCREATE TRIGGER "giu_ln3dzm_geom" AFTER UPDATE ON "ln3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('ln3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_ln3dzm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_ln3dzm_geom', NEW.ROWID, NEW."geom"); ENDƒ‚S+…mtriggergii_ln3dzm_geomln3dzmCREATE TRIGGER "gii_ln3dzm_geom" AFTER INSERT ON "ln3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('ln3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_ln3dzm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_ln3dzm_geom', NEW.ROWID, NEW."geom"); END ùùvÆ|0{>Mtablegeo3dzmgeo3dzmOCREATE TABLE geo3dzm ( id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, "geom" GEOMETRY)K?%%[tablesqlite_stat1sqlite_stat1QCREATE TABLE sqlite_stat1(tbl,idx,stat)Z@%%ytablesqlite_stat3sqlite_stat3RCREATE TABLE sqlite_stat3(tbl,idx,neq,nlt,ndlt,sample)eA--indexidx_srid_geocolsgeometry_columnsSCREATE INDEX idx_srid_geocols ON geometry_columns (srid) B'99indexidx_viewsjoinviews_geometry_columnsTCREATE INDEX idx_viewsjoin ON views_geometry_columns (f_table_name, f_geometry_column)kC'9indexidx_virtssridvirts_geometry_columnsUCREATE INDEX idx_virtssrid ON virts_geometry_columns (srid)D3+1indexidx_spatial_ref_sysspatial_ref_sysVCREATE UNIQUE INDEX idx_spatial_ref_sys ON spatial_ref_sys (auth_srid, auth_name) ¾_¾äƒ6'† triggerggu_pg2d_geompg2dCREATE TRIGGER "ggu_pg2d_geom" BEFORE UPDATE ON "pg2d" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pg2d.geom violatesƒ‚v'† triggerggu_pg2d_geompg2dCREATE TRIGGER "ggu_pg2d_geom" BEFORE UPDATE ON "pg2d" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pg2d.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('pg2d') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ‚u'† triggerggi_pg2d_geompg2dCREATE TRIGGER "ggi_pg2d_geom" BEFORE INSERT ON "pg2d" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pg2d.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('pg2d') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END îwî!ƒ#:)†triggerggi_pg2dm_geompg2dmCREATE TRIGGER "ggi_pg2dm_geom" BEFORE INSERT ON "pg2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pg2dm.geom violates Geometry constraint [geom-type or SRID not allowƒ‚x'…Ytriggergiu_pg2d_geompg2dCREATE TRIGGER "giu_pg2d_geom" AFTER UPDATE ON "pg2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pg2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pg2d_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_pg2d_geom', NEW.ROWID, NEW."geom"); ENDƒ‚w'…Ytriggergii_pg2d_geompg2dCREATE TRIGGER "gii_pg2d_geom" AFTER INSERT ON "pg2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pg2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pg2d_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_pg2d_geom', NEW.ROWID, NEW."geom"); END ²Y²߃#;)†triggerggu_pg2dm_geompg2dmCREATE TRIGGER "ggu_pg2dm_geom" BEFORE UPDATE ON "pg2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pg2dm.geom violateƒ#‚)†triggerggu_pg2dm_geompg2dmCREATE TRIGGER "ggu_pg2dm_geom" BEFORE UPDATE ON "pg2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pg2dm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('pg2dm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ#‚~)†triggerggi_pg2dm_geompg2dmCREATE TRIGGER "ggi_pg2dm_geom" BEFORE INSERT ON "pg2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pg2dm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('pg2dm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END àpàƒ#?)†triggerggi_pg3dz_geompg3dzCREATE TRIGGER "ggi_pg3dz_geom" BEFORE INSERT ON "pg3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pg3dz.geom violates Geometry constraint [geom-type or SRID not aƒ ƒ)…ctriggergiu_pg2dm_geompg2dmCREATE TRIGGER "giu_pg2dm_geom" AFTER UPDATE ON "pg2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pg2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pg2dm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_pg2dm_geom', NEW.ROWID, NEW."geom"); ENDƒ ƒ)…ctriggergii_pg2dm_geompg2dmCREATE TRIGGER "gii_pg2dm_geom" AFTER INSERT ON "pg2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pg2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pg2dm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_pg2dm_geom', NEW.ROWID, NEW."geom"); END znÚ@¨z6 ==) 2014-05-20T09:01:37.455Z2014-05-20T09:01:38.687Zspatialite_guiselect AddGeometryColumn('mpg2d', 'geom', 4326, 'MULTIPOLYGON', 'XY')success5 ==) 2014-05-20T09:01:28.516Z2014-05-20T09:01:29.748Zspatialite_guiselect AddGeometryColumn('mpg2dm', 'geom', 4326, 'MULTIPOLYGON', 'XYM')success4 ==) 2014-05-20T09:01:16.332Z2014-05-20T09:01:17.596Zspatialite_guiselect AddGeometryColumn('mpg3dz', 'geom', 4326, 'MULTIPOLYGON', 'XYZ')success3 ==) 2014-05-20T09:01:07.253Z2014-05-20T09:01:08.657Zspatialite_guiselect AddGeometryColumn('mpg3dzm', 'geom', 4326, 'MULTIPOLYGON', 'XYZM')success2 ==) 2014-05-20T09:00:42.199Z2014-05-20T09:00:43.494Zspatialite_guiselect AddGeometryColumn('pg3dzm', 'geom', 4326, 'POLYGON', 'XYZM')success1 ==) 2014-05-20T09:00:33.572Z2014-05-20T09:00:34.820Zspatialite_guiselect AddGeometryColumn('pg3dz', 'geom', 4326, 'POLYGON', 'XYZ')success ²Y²߃#@)†triggerggu_pg3dz_geompg3dzCREATE TRIGGER "ggu_pg3dz_geom" BEFORE UPDATE ON "pg3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pg3dz.geom violateƒ#ƒ)†triggerggu_pg3dz_geompg3dzCREATE TRIGGER "ggu_pg3dz_geom" BEFORE UPDATE ON "pg3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pg3dz.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('pg3dz') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ#ƒ)†triggerggi_pg3dz_geompg3dzCREATE TRIGGER "ggi_pg3dz_geom" BEFORE INSERT ON "pg3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pg3dz.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('pg3dz') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END àpàƒ)D+†triggerggi_pg3dzm_geompg3dzmCREATE TRIGGER "ggi_pg3dzm_geom" BEFORE INSERT ON "pg3dzm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pg3dzm.geom violates Geometry constraint [geom-type or SRID not alƒ ƒ )…ctriggergiu_pg3dz_geompg3dzCREATE TRIGGER "giu_pg3dz_geom" AFTER UPDATE ON "pg3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pg3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pg3dz_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_pg3dz_geom', NEW.ROWID, NEW."geom"); ENDƒ ƒ )…ctriggergii_pg3dz_geompg3dzCREATE TRIGGER "gii_pg3dz_geom" AFTER INSERT ON "pg3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pg3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pg3dz_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_pg3dz_geom', NEW.ROWID, NEW."geom"); END .¨OöœDë’8à‡.W ===pg3dzgeom2014-05-20T10:12:21.561Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZW ===pg2dmgeom2014-05-20T10:12:03.324Z2014-05-20T09:44:13.493Z0000-01-01T00:00:00.000ZV ===pg2dgeom2014-05-20T10:11:46.648Z2014-05-20T09:39:13.233Z0000-01-01T00:00:00.000ZX===ln3dzmgeom2014-05-20T10:11:23.825Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZW===ln3dzgeom2014-05-20T10:11:03.638Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZW===ln2dmgeom2014-05-20T10:10:34.254Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZV===ln2dgeom2014-05-20T10:10:13.444Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZX===pt3dzmgeom2014-05-20T10:05:53.750Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZW===pt3dzgeom2014-05-20T10:05:29.242Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZW===pt2dmgeom2014-05-20T10:05:06.248Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZV===pt2dgeom2014-05-20T10:04:36.889Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000Z !¦Kñ—>å‹1Ö{!X===mpt3dzgeom2014-05-20T10:16:58.383Z2014-05-20T09:54:18.712Z2014-05-20T09:55:22.610ZY===mpt3dzmgeom2014-05-20T10:17:26.042Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZY===mln3dzmgeom2014-05-20T10:26:12.637Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZX===mln3dzgeom2014-05-20T10:25:54.978Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZX===mln2dmgeom2014-05-20T10:25:39.815Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZW===mln2dgeom2014-05-20T10:25:12.546Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZW===mpg2dgeom2014-05-20T10:50:16.953Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZX===mpg2dmgeom2014-05-20T10:50:35.267Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZX===mpg3dzgeom2014-05-20T10:50:50.945Z0000-01-01T00:00:00.000Z2014-05-20T10:47:14.464ZY ===mpg3dzmgeom2014-05-20T10:51:16.186Z0000-01-01T00:00:00.000Z2014-05-20T10:44:14.408ZX ===pg3dzmgeom2014-05-20T10:12:38.783Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000Z ¦S¦ƒ)ƒ+†triggerggu_pg3dzm_geompg3dzmCREATE TRIGGER "ggu_pg3dzm_geom" BEFORE UPDATE ON "pg3dzm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pg3dzm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('pg3dzm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ)ƒ+†triggerggi_pg3dzm_geompg3dzmCREATE TRIGGER "ggi_pg3dzm_geom" BEFORE INSERT ON "pg3dzm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pg3dzm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('pg3dzm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END ‡¦)¥‡ƒ997tableidx_pg3dzm_geom_parentidx_pg3dzm_geom_parent%CREATE TABLE "idx_pg3dzm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)ƒ77+tableidx_pg3dzm_geom_rowididx_pg3dzm_geom_rowid$CREATE TABLE "idx_pg3dzm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)ƒ55!tableidx_pg3dzm_geom_nodeidx_pg3dzm_geom_node#CREATE TABLE "idx_pg3dzm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)zƒ++-tableidx_pg3dzm_geomidx_pg3dzm_geomCREATE VIRTUAL TABLE "idx_pg3dzm_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚Vƒ+„striggergid_pg3dzm_geompg3dzmCREATE TRIGGER "gid_pg3dzm_geom" AFTER DELETE ON "pg3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pg3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pg3dzm_geom" WHERE pkid=OLD.ROWID; END 7Œ˜©/³7z =#mln3dzgeomGeometry [MULTILINESTRING,XYZ,SRID=4326] successfully created2014-05-20T09:02:24.785Z3.8.4.34.2.0-develz =#mln2dmgeomGeometry [MULTILINESTRING,XYM,SRID=4326] successfully created2014-05-20T09:02:08.233Z3.8.4.34.2.0-develx =#mln2dgeomGeometry [MULTILINESTRING,XY,SRID=4326] successfully created2014-05-20T09:01:58.062Z3.8.4.34.2.0-develt=#mpg2dgeomGeometry [MULTIPOLYGON,XY,SRID=4326] successfully created2014-05-20T09:01:38.578Z3.8.4.34.2.0-develw =#mpg2dmgeomGeometry [MULTIPOLYGON,XYM,SRID=4326] successfully created2014-05-20T09:01:29.639Z3.8.4.34.2.0-develw =#mpg3dzgeomGeometry [MULTIPOLYGON,XYZ,SRID=4326] successfully created2014-05-20T09:01:17.486Z3.8.4.34.2.0-devely =#mpg3dzmgeomGeometry [MULTIPOLYGON,XYZM,SRID=4326] successfully created2014-05-20T09:01:08.548Z3.8.4.34.2.0-develry=#pg3dzmgeomGeometry [POLYGON,XYZM,SRID=4326] successfully created2014-05-20T09:00:43.385Z3.8.4.34.2.0-devel ÒiÒƒƒ+…mtriggergiu_pg3dzm_geompg3dzmCREATE TRIGGER "giu_pg3dzm_geom" AFTER UPDATE ON "pg3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pg3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pg3dzm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_pg3dzm_geom', NEW.ROWID, NEW."geom"); ENDƒƒ+…mtriggergii_pg3dzm_geompg3dzmCREATE TRIGGER "gii_pg3dzm_geom" AFTER INSERT ON "pg3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pg3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pg3dzm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_pg3dzm_geom', NEW.ROWID, NEW."geom"); END u  ™ uƒ!;;9tableidx_mpg3dzm_geom_parentidx_mpg3dzm_geom_parent)CREATE TABLE "idx_mpg3dzm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER) ƒ 99-tableidx_mpg3dzm_geom_rowididx_mpg3dzm_geom_rowid(CREATE TABLE "idx_mpg3dzm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)ƒ77#tableidx_mpg3dzm_geom_nodeidx_mpg3dzm_geom_node'CREATE TABLE "idx_mpg3dzm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)}ƒ--/tableidx_mpg3dzm_geomidx_mpg3dzm_geomCREATE VIRTUAL TABLE "idx_mpg3dzm_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚\ƒ-„{triggergid_mpg3dzm_geommpg3dzmCREATE TRIGGER "gid_mpg3dzm_geom" AFTER DELETE ON "mpg3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpg3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpg3dzm_geom" WHERE pkid=OLD.ROWID; END Äbăƒ-…wtriggergiu_mpg3dzm_geommpg3dzmCREATE TRIGGER "giu_mpg3dzm_geom" AFTER UPDATE ON "mpg3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpg3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpg3dzm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mpg3dzm_geom', NEW.ROWID, NEW."geom"); ENDƒƒ-…wtriggergii_mpg3dzm_geommpg3dzmCREATE TRIGGER "gii_mpg3dzm_geom" AFTER INSERT ON "mpg3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpg3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpg3dzm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mpg3dzm_geom', NEW.ROWID, NEW."geom"); END ‡¦)¥‡ƒ*997tableidx_mpg3dz_geom_parentidx_mpg3dz_geom_parent.CREATE TABLE "idx_mpg3dz_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)ƒ)77+tableidx_mpg3dz_geom_rowididx_mpg3dz_geom_rowid-CREATE TABLE "idx_mpg3dz_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)ƒ(55!tableidx_mpg3dz_geom_nodeidx_mpg3dz_geom_node,CREATE TABLE "idx_mpg3dz_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)zƒ'++-tableidx_mpg3dz_geomidx_mpg3dz_geomCREATE VIRTUAL TABLE "idx_mpg3dz_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚Vƒ&+„striggergid_mpg3dz_geommpg3dzCREATE TRIGGER "gid_mpg3dz_geom" AFTER DELETE ON "mpg3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpg3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpg3dz_geom" WHERE pkid=OLD.ROWID; END ÒiÒƒƒ%+…mtriggergiu_mpg3dz_geommpg3dzCREATE TRIGGER "giu_mpg3dz_geom" AFTER UPDATE ON "mpg3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpg3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpg3dz_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mpg3dz_geom', NEW.ROWID, NEW."geom"); ENDƒƒ$+…mtriggergii_mpg3dz_geommpg3dzCREATE TRIGGER "gii_mpg3dz_geom" AFTER INSERT ON "mpg3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpg3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpg3dz_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mpg3dz_geom', NEW.ROWID, NEW."geom"); END ‡¦)¥‡ƒ3997tableidx_mpg2dm_geom_parentidx_mpg2dm_geom_parent2CREATE TABLE "idx_mpg2dm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)ƒ277+tableidx_mpg2dm_geom_rowididx_mpg2dm_geom_rowid1CREATE TABLE "idx_mpg2dm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)ƒ155!tableidx_mpg2dm_geom_nodeidx_mpg2dm_geom_node0CREATE TABLE "idx_mpg2dm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)zƒ0++-tableidx_mpg2dm_geomidx_mpg2dm_geomCREATE VIRTUAL TABLE "idx_mpg2dm_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚Vƒ/+„striggergid_mpg2dm_geommpg2dmCREATE TRIGGER "gid_mpg2dm_geom" AFTER DELETE ON "mpg2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpg2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpg2dm_geom" WHERE pkid=OLD.ROWID; END ÒiÒƒƒ.+…mtriggergiu_mpg2dm_geommpg2dmCREATE TRIGGER "giu_mpg2dm_geom" AFTER UPDATE ON "mpg2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpg2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpg2dm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mpg2dm_geom', NEW.ROWID, NEW."geom"); ENDƒƒ-+…mtriggergii_mpg2dm_geommpg2dmCREATE TRIGGER "gii_mpg2dm_geom" AFTER INSERT ON "mpg2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpg2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpg2dm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mpg2dm_geom', NEW.ROWID, NEW."geom"); END š¬2²*š ƒ<775tableidx_mpg2d_geom_parentidx_mpg2d_geom_parent6CREATE TABLE "idx_mpg2d_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)ƒ;55)tableidx_mpg2d_geom_rowididx_mpg2d_geom_rowid5CREATE TABLE "idx_mpg2d_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)}ƒ:33tableidx_mpg2d_geom_nodeidx_mpg2d_geom_node4CREATE TABLE "idx_mpg2d_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)wƒ9))+tableidx_mpg2d_geomidx_mpg2d_geomCREATE VIRTUAL TABLE "idx_mpg2d_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚Pƒ8)„ktriggergid_mpg2d_geommpg2dCREATE TRIGGER "gid_mpg2d_geom" AFTER DELETE ON "mpg2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpg2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpg2d_geom" WHERE pkid=OLD.ROWID; END fgÌ1”üf< ==) 2014-05-20T09:02:59.620Z2014-05-20T09:03:00.930Zspatialite_guiselect AddGeometryColumn('mpt3dz', 'geom', 4326, 'MULTIPOINT', 'XYZ')success; ==) 2014-05-20T09:02:51.461Z2014-05-20T09:02:52.818Zspatialite_guiselect AddGeometryColumn('mpt3dzm', 'geom', 4326, 'MULTIPOINT', 'XYZM')success: ==)% 2014-05-20T09:02:33.755Z2014-05-20T09:02:35.097Zspatialite_guiselect AddGeometryColumn('mln3dzm', 'geom', 4326, 'MULTILINESTRING', 'XYZM')success9 ==)! 2014-05-20T09:02:23.646Z2014-05-20T09:02:24.879Zspatialite_guiselect AddGeometryColumn('mln3dz', 'geom', 4326, 'MULTILINESTRING', 'XYZ')success8 ==)! 2014-05-20T09:02:07.095Z2014-05-20T09:02:08.343Zspatialite_guiselect AddGeometryColumn('mln2dm', 'geom', 4326, 'MULTILINESTRING', 'XYM')success7 ==) 2014-05-20T09:01:56.908Z2014-05-20T09:01:58.171Zspatialite_guiselect AddGeometryColumn('mln2d', 'geom', 4326, 'MULTILINESTRING', 'XY')success àpàƒ ƒ7)…ctriggergiu_mpg2d_geommpg2dCREATE TRIGGER "giu_mpg2d_geom" AFTER UPDATE ON "mpg2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpg2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpg2d_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mpg2d_geom', NEW.ROWID, NEW."geom"); ENDƒ ƒ6)…ctriggergii_mpg2d_geommpg2dCREATE TRIGGER "gii_mpg2d_geom" AFTER INSERT ON "mpg2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpg2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpg2d_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mpg2d_geom', NEW.ROWID, NEW."geom"); END š¬2²*š „775tableidx_mln2d_geom_parentidx_mln2d_geom_parentYCREATE TABLE "idx_mln2d_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)„55)tableidx_mln2d_geom_rowididx_mln2d_geom_rowidXCREATE TABLE "idx_mln2d_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)}„33tableidx_mln2d_geom_nodeidx_mln2d_geom_nodeWCREATE TABLE "idx_mln2d_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)w„))+tableidx_mln2d_geomidx_mln2d_geomCREATE VIRTUAL TABLE "idx_mln2d_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚P„)„ktriggergid_mln2d_geommln2dCREATE TRIGGER "gid_mln2d_geom" AFTER DELETE ON "mln2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mln2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mln2d_geom" WHERE pkid=OLD.ROWID; END àpàƒ ƒ)…ctriggergiu_mln2d_geommln2dCREATE TRIGGER "giu_mln2d_geom" AFTER UPDATE ON "mln2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mln2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mln2d_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mln2d_geom', NEW.ROWID, NEW."geom"); ENDƒ ƒ~)…ctriggergii_mln2d_geommln2dCREATE TRIGGER "gii_mln2d_geom" AFTER INSERT ON "mln2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mln2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mln2d_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mln2d_geom', NEW.ROWID, NEW."geom"); END ‡¦)¥‡ƒ{997tableidx_mln2dm_geom_parentidx_mln2dm_geom_parentUCREATE TABLE "idx_mln2dm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)ƒz77+tableidx_mln2dm_geom_rowididx_mln2dm_geom_rowidTCREATE TABLE "idx_mln2dm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)ƒy55!tableidx_mln2dm_geom_nodeidx_mln2dm_geom_nodeSCREATE TABLE "idx_mln2dm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)zƒx++-tableidx_mln2dm_geomidx_mln2dm_geomCREATE VIRTUAL TABLE "idx_mln2dm_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚Vƒw+„striggergid_mln2dm_geommln2dmCREATE TRIGGER "gid_mln2dm_geom" AFTER DELETE ON "mln2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mln2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mln2dm_geom" WHERE pkid=OLD.ROWID; END ÒiÒƒƒv+…mtriggergiu_mln2dm_geommln2dmCREATE TRIGGER "giu_mln2dm_geom" AFTER UPDATE ON "mln2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mln2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mln2dm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mln2dm_geom', NEW.ROWID, NEW."geom"); ENDƒƒu+…mtriggergii_mln2dm_geommln2dmCREATE TRIGGER "gii_mln2dm_geom" AFTER INSERT ON "mln2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mln2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mln2dm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mln2dm_geom', NEW.ROWID, NEW."geom"); END ‡¦)¥‡ƒr997tableidx_mln3dz_geom_parentidx_mln3dz_geom_parentPCREATE TABLE "idx_mln3dz_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)ƒq77+tableidx_mln3dz_geom_rowididx_mln3dz_geom_rowidOCREATE TABLE "idx_mln3dz_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)ƒp55!tableidx_mln3dz_geom_nodeidx_mln3dz_geom_nodeNCREATE TABLE "idx_mln3dz_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)zƒo++-tableidx_mln3dz_geomidx_mln3dz_geomCREATE VIRTUAL TABLE "idx_mln3dz_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚Vƒn+„striggergid_mln3dz_geommln3dzCREATE TRIGGER "gid_mln3dz_geom" AFTER DELETE ON "mln3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mln3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mln3dz_geom" WHERE pkid=OLD.ROWID; END ÒiÒƒƒm+…mtriggergiu_mln3dz_geommln3dzCREATE TRIGGER "giu_mln3dz_geom" AFTER UPDATE ON "mln3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mln3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mln3dz_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mln3dz_geom', NEW.ROWID, NEW."geom"); ENDƒƒl+…mtriggergii_mln3dz_geommln3dzCREATE TRIGGER "gii_mln3dz_geom" AFTER INSERT ON "mln3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mln3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mln3dz_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mln3dz_geom', NEW.ROWID, NEW."geom"); END u  ™ uƒi;;9tableidx_mln3dzm_geom_parentidx_mln3dzm_geom_parentLCREATE TABLE "idx_mln3dzm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER) ƒh99-tableidx_mln3dzm_geom_rowididx_mln3dzm_geom_rowidKCREATE TABLE "idx_mln3dzm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)ƒg77#tableidx_mln3dzm_geom_nodeidx_mln3dzm_geom_nodeJCREATE TABLE "idx_mln3dzm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)}ƒf--/tableidx_mln3dzm_geomidx_mln3dzm_geomCREATE VIRTUAL TABLE "idx_mln3dzm_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚\ƒe-„{triggergid_mln3dzm_geommln3dzmCREATE TRIGGER "gid_mln3dzm_geom" AFTER DELETE ON "mln3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mln3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mln3dzm_geom" WHERE pkid=OLD.ROWID; END 2‚ ”ª.°2|'  =#gc3dzgeomGeometry [GEOMETRYCOLLECTION,XYZ,SRID=4326] successfully created2014-05-20T09:04:07.464Z3.8.4.34.2.0-devel|&  =#gc2dmgeomGeometry [GEOMETRYCOLLECTION,XYM,SRID=4326] successfully created2014-05-20T09:03:58.042Z3.8.4.34.2.0-develz%  =#gc2dgeomGeometry [GEOMETRYCOLLECTION,XY,SRID=4326] successfully created2014-05-20T09:03:49.368Z3.8.4.34.2.0-develr${=#mpt2dgeomGeometry [MULTIPOINT,XY,SRID=4326] successfully created2014-05-20T09:03:22.037Z3.8.4.34.2.0-develt#}=#mpt2dmgeomGeometry [MULTIPOINT,XYM,SRID=4326] successfully created2014-05-20T09:03:12.911Z3.8.4.34.2.0-develt"}=#mpt3dzgeomGeometry [MULTIPOINT,XYZ,SRID=4326] successfully created2014-05-20T09:03:00.805Z3.8.4.34.2.0-develv!=#mpt3dzmgeomGeometry [MULTIPOINT,XYZM,SRID=4326] successfully created2014-05-20T09:02:52.693Z3.8.4.34.2.0-devel|  =#mln3dzmgeomGeometry [MULTILINESTRING,XYZM,SRID=4326] successfully created2014-05-20T09:02:34.972Z3.8.4.34.2.0-devel Äbăƒd-…wtriggergiu_mln3dzm_geommln3dzmCREATE TRIGGER "giu_mln3dzm_geom" AFTER UPDATE ON "mln3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mln3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mln3dzm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mln3dzm_geom', NEW.ROWID, NEW."geom"); ENDƒƒc-…wtriggergii_mln3dzm_geommln3dzmCREATE TRIGGER "gii_mln3dzm_geom" AFTER INSERT ON "mln3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mln3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mln3dzm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mln3dzm_geom', NEW.ROWID, NEW."geom"); ENDH˜•˜¢§¬±¶»ÀÅÊÏÔÙÞèãíò÷ü $).38=BGLQV[`ejoty~ƒˆ’—œ¡¦«°µº¿ÄÉÎÓØÝâçìñöûÉÎÔÚàæìòøþ "(.4:@FLRX^djpv|‚ˆŽ”𠦬²¸¾ÄÊÐÖÜâèîôú[UOIC=71+%fÎâ‚ á‚ à‚߂ނÝÜ|ÙzØw×uÕr   "%(+"2)F6¶D_E`FaGbHcIdKeMfNgOhPiQjRkSlTmUnVoWpXqYrZs[t\u^v`waxbyczd{e|f}g~hi€jk‚lƒm„n…o†p‡qˆr‰sŠt   "%(+"2) ==) 2014-05-20T09:03:20.758Z2014-05-20T09:03:22.162Zspatialite_guiselect AddGeometryColumn('mpt2d', 'geom', 4326, 'MULTIPOINT', 'XY')success= ==) 2014-05-20T09:03:11.632Z2014-05-20T09:03:13.067Zspatialite_guiselect AddGeometryColumn('mpt2dm', 'geom', 4326, 'MULTIPOINT', 'XYM')success &¦MõœCéŽ4Ú&Y!===test_pkgeom2014-05-20T21:17:58.531Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZW ===geo2dgeom2014-05-20T10:39:08.648Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZX===geo2dmgeom2014-05-20T10:39:26.151Z0000-01-01T00:00:00.000Z2014-05-20T10:33:11.345ZX===geo3dzgeom2014-05-20T10:39:48.381Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZY===geo3dzmgeom2014-05-20T10:40:06.773Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZX===gc3dzmgeom2014-05-20T11:01:10.937Z0000-01-01T00:00:00.000Z2014-05-20T10:59:30.658ZW===gc3dzgeom2014-05-20T11:00:52.217Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZW===gc2dmgeom2014-05-20T11:00:36.507Z0000-01-01T00:00:00.000Z0000-01-01T00:00:00.000ZV===gc2dgeom2014-05-20T10:54:55.912Z2014-05-20T10:53:35.260Z0000-01-01T00:00:00.000ZW===mpt2dgeom2014-05-20T10:13:04.211Z0000-01-01T00:00:00.000Z2014-05-20T09:57:45.334ZX===mpt2dmgeom2014-05-20T10:13:21.636Z0000-01-01T00:00:00.000Z2014-05-20T09:55:11.939Z ÒiÒƒƒR+…mtriggergiu_mpt3dz_geommpt3dzCREATE TRIGGER "giu_mpt3dz_geom" AFTER UPDATE ON "mpt3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpt3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpt3dz_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mpt3dz_geom', NEW.ROWID, NEW."geom"); ENDƒƒQ+…mtriggergii_mpt3dz_geommpt3dzCREATE TRIGGER "gii_mpt3dz_geom" AFTER INSERT ON "mpt3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpt3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpt3dz_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mpt3dz_geom', NEW.ROWID, NEW."geom"); END ‡¦)¥‡ƒN997tableidx_mpt2dm_geom_parentidx_mpt2dm_geom_parent?CREATE TABLE "idx_mpt2dm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)ƒM77+tableidx_mpt2dm_geom_rowididx_mpt2dm_geom_rowid>CREATE TABLE "idx_mpt2dm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)ƒL55!tableidx_mpt2dm_geom_nodeidx_mpt2dm_geom_node=CREATE TABLE "idx_mpt2dm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)zƒK++-tableidx_mpt2dm_geomidx_mpt2dm_geomCREATE VIRTUAL TABLE "idx_mpt2dm_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚VƒJ+„striggergid_mpt2dm_geommpt2dmCREATE TRIGGER "gid_mpt2dm_geom" AFTER DELETE ON "mpt2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpt2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpt2dm_geom" WHERE pkid=OLD.ROWID; END ÒiÒƒƒI+…mtriggergiu_mpt2dm_geommpt2dmCREATE TRIGGER "giu_mpt2dm_geom" AFTER UPDATE ON "mpt2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpt2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpt2dm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mpt2dm_geom', NEW.ROWID, NEW."geom"); ENDƒƒH+…mtriggergii_mpt2dm_geommpt2dmCREATE TRIGGER "gii_mpt2dm_geom" AFTER INSERT ON "mpt2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpt2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpt2dm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mpt2dm_geom', NEW.ROWID, NEW."geom"); END àpà‚‚)„triggertmd_mpt2d_geommpt2dCREATE TRIGGER "tmd_mpt2d_geomƒ ƒ@)…ctriggergiu_mpt2d_geommpt2dCREATE TRIGGER "giu_mpt2d_geom" AFTER UPDATE ON "mpt2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpt2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpt2d_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mpt2d_geom', NEW.ROWID, NEW."geom"); ENDƒ ƒ?)…ctriggergii_mpt2d_geommpt2dCREATE TRIGGER "gii_mpt2d_geom" AFTER INSERT ON "mpt2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpt2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpt2d_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_mpt2d_geom', NEW.ROWID, NEW."geom"); END ¾_¾ƒ„'† triggerggu_gc2d_geomgc2dCREATE TRIGGER "ggu_gc2d_geom" BEFORE UPDATE ON "gc2d" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'gc2d.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('gc2d') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ„'† triggerggi_gc2d_geomgc2dCREATE TRIGGER "ggi_gc2d_geom" BEFORE INSERT ON "gc2d" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'gc2d.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('gc2d') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END ¾¾_¬³-†!t­+†t§)†tƒ‚-'† triggerggi_pt2d_geompt2dCREATE TRIGGER "ggi_pt2d_geom" BEFORE INSERT ON "pt2d" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pt2d.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('pt2d') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ‚.'† triggerggu_pt2d_geompt2dCREATE TRIGGER "ggu_pt2d_geom" BEFORE UPDATE ON "pt2d" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'pt2d.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('pt2d') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END îw'…Ytriggergiu_gc2d_geomgc2dCREATE TRIGGER "giu_gc2d_geom" AFTER UPDATE ON "gc2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('gc2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_gc2d_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_gc2d_geom', NEW.ROWID, NEW."geom"); ENDƒ„'…Ytriggergii_gc2d_geomgc2dCREATE TRIGGER "gii_gc2d_geom" AFTER INSERT ON "gc2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('gc2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_gc2d_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_gc2d_geom', NEW.ROWID, NEW."geom"); END š¬2²*š „775tableidx_gc2dm_geom_parentidx_gc2dm_geom_parent`CREATE TABLE "idx_gc2dm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)„55)tableidx_gc2dm_geom_rowididx_gc2dm_geom_rowid_CREATE TABLE "idx_gc2dm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)}„33tableidx_gc2dm_geom_nodeidx_gc2dm_geom_node^CREATE TABLE "idx_gc2dm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)w„))+tableidx_gc2dm_geomidx_gc2dm_geomCREATE VIRTUAL TABLE "idx_gc2dm_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚P„)„ktriggergid_gc2dm_geomgc2dmCREATE TRIGGER "gid_gc2dm_geom" AFTER DELETE ON "gc2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('gc2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_gc2dm_geom" WHERE pkid=OLD.ROWID; END àpàƒ „)…ctriggergiu_gc2dm_geomgc2dmCREATE TRIGGER "giu_gc2dm_geom" AFTER UPDATE ON "gc2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('gc2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_gc2dm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_gc2dm_geom', NEW.ROWID, NEW."geom"); ENDƒ „)…ctriggergii_gc2dm_geomgc2dmCREATE TRIGGER "gii_gc2dm_geom" AFTER INSERT ON "gc2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('gc2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_gc2dm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_gc2dm_geom', NEW.ROWID, NEW."geom"); ENDmr°†Œ’˜ž¤ª°¶¼DÂ8ÈÎ2ÔÚ,àæ& ø ìþ"(.4:@üFRLö^Xðjdêvpä‚|ÞÖØÒÊâÌ¾ÐÆ²ÄÀ¦¸ºš¬´Ž ®ˆ”òîè¨úô¢zÜœn€–btVhŠJ\„>P~xr¯„Q®„Ow„Jð„Cî„:ì„1è„(æ„ㄤ„ σ{уrÓƒi׃`ÙƒW݃N8ƒE߃@ʃ<ȃ3ƃ*ă!Áƒ½ƒ ºƒ¸‚x®‚o²‚b´‚Y‚P«‚K©‚B§‚9¥‚0ò„E¢‚,r„<ó„Gn„3ñ„>j„*ï„5f„!í„,a„ë„#–—˜™š›œžŸ á‚.ô‚5¦‚7ø‚>¨‚@ü‚Gª‚I¯‚kÍ„‚d­‚m ‚[°‚fµ‚T‚R³‚]‚t·‚v‚}¹‚ƒ¼ƒƒÃÀƒŃ&ƒǃ%+ƒ#Ƀ./ƒ,̃73ƒ5Vƒ}Rƒt΃MƒkЃvIƒbÒƒmEƒYÕƒd@ƒP؃[<ƒG܃R7ƒ>ç„ÞƒIâ„à„ä„]„ š¬2²*š „775tableidx_gc3dz_geom_parentidx_gc3dz_geom_parentdCREATE TABLE "idx_gc3dz_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)„55)tableidx_gc3dz_geom_rowididx_gc3dz_geom_rowidcCREATE TABLE "idx_gc3dz_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)}„33tableidx_gc3dz_geom_nodeidx_gc3dz_geom_nodebCREATE TABLE "idx_gc3dz_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)w„))+tableidx_gc3dz_geomidx_gc3dz_geomCREATE VIRTUAL TABLE "idx_gc3dz_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚P„)„ktriggergid_gc3dz_geomgc3dzCREATE TRIGGER "gid_gc3dz_geom" AFTER DELETE ON "gc3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('gc3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_gc3dz_geom" WHERE pkid=OLD.ROWID; END àpàƒ „)…ctriggergiu_gc3dz_geomgc3dzCREATE TRIGGER "giu_gc3dz_geom" AFTER UPDATE ON "gc3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('gc3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_gc3dz_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_gc3dz_geom', NEW.ROWID, NEW."geom"); ENDƒ „)…ctriggergii_gc3dz_geomgc3dzCREATE TRIGGER "gii_gc3dz_geom" AFTER INSERT ON "gc3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('gc3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_gc3dz_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_gc3dz_geom', NEW.ROWID, NEW."geom"); END ‡¦)¥‡„(997tableidx_gc3dzm_geom_parentidx_gc3dzm_geom_parentiCREATE TABLE "idx_gc3dzm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)„'77+tableidx_gc3dzm_geom_rowididx_gc3dzm_geom_rowidhCREATE TABLE "idx_gc3dzm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)„&55!tableidx_gc3dzm_geom_nodeidx_gc3dzm_geom_nodegCREATE TABLE "idx_gc3dzm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)z„%++-tableidx_gc3dzm_geomidx_gc3dzm_geomCREATE VIRTUAL TABLE "idx_gc3dzm_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚V„$+„striggergid_gc3dzm_geomgc3dzmCREATE TRIGGER "gid_gc3dzm_geom" AFTER DELETE ON "gc3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('gc3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_gc3dzm_geom" WHERE pkid=OLD.ROWID; END € –"°Kåd/_=#pt3dzgeomR*Tree Spatial Index successfully created2014-05-20T09:06:08.162Z3.8.4.34.2.0-develd._=#pt2dmgeomR*Tree Spatial Index successfully created2014-05-20T09:06:00.034Z3.8.4.34.2.0-develc-_=#pt2dgeomR*Tree Spatial Index successfully created2014-05-20T09:05:53.279Z3.8.4.34.2.0-develp,w=#geo2dgeomGeometry [GEOMETRY,XY,SRID=4326] successfully created2014-05-20T09:05:14.529Z3.8.4.34.2.0-develr+y=#geo2dmgeomGeometry [GEOMETRY,XYM,SRID=4326] successfully created2014-05-20T09:05:05.372Z3.8.4.34.2.0-develr*y=#geo3dzgeomGeometry [GEOMETRY,XYZ,SRID=4326] successfully created2014-05-20T09:04:52.424Z3.8.4.34.2.0-develt){=#geo3dzmgeomGeometry [GEOMETRY,XYZM,SRID=4326] successfully created2014-05-20T09:04:40.256Z3.8.4.34.2.0-devel~( =#gc3dzmgeomGeometry [GEOMETRYCOLLECTION,XYZM,SRID=4326] successfully created2014-05-20T09:04:18.556Z3.8.4.34.2.0-devel FjÖB°8¿FwI==)a 2014-05-20T09:06:06.508Z2014-05-20T09:06:08.271Zspatialite_guiselect CreateSpatialIndex('pt3dz', 'geom')successwH==)a 2014-05-20T09:05:58.162Z2014-05-20T09:06:00.143Zspatialite_guiselect CreateSpatialIndex('pt2dm', 'geom')successvG==)_ 2014-05-20T09:05:51.251Z2014-05-20T09:05:53.404Zspatialite_guiselect CreateSpatialIndex('pt2d', 'geom')successF ==) 2014-05-20T09:05:12.906Z2014-05-20T09:05:14.654Zspatialite_guiselect AddGeometryColumn('geo2d', 'geom', 4326, 'GEOMETRY', 'XY')successE ==) 2014-05-20T09:05:03.812Z2014-05-20T09:05:05.496Zspatialite_guiselect AddGeometryColumn('geo2dm', 'geom', 4326, 'GEOMETRY', 'XYM')successD ==) 2014-05-20T09:04:50.864Z2014-05-20T09:04:52.548Zspatialite_guiselect AddGeometryColumn('geo3dz', 'geom', 4326, 'GEOMETRY', 'XYZ')successC ==) 2014-05-20T09:04:38.680Z2014-05-20T09:04:40.365Zspatialite_guiselect AddGeometryColumn('geo3dzm', 'geom', 4326, 'GEOMETRY', 'XYZM')success ÒiÒƒ„#+…mtriggergiu_gc3dzm_geomgc3dzmCREATE TRIGGER "giu_gc3dzm_geom" AFTER UPDATE ON "gc3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('gc3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_gc3dzm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_gc3dzm_geom', NEW.ROWID, NEW."geom"); ENDƒ„"+…mtriggergii_gc3dzm_geomgc3dzmCREATE TRIGGER "gii_gc3dzm_geom" AFTER INSERT ON "gc3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('gc3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_gc3dzm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_gc3dzm_geom', NEW.ROWID, NEW."geom"); END u  ™ u„1;;9tableidx_geo3dzm_geom_parentidx_geo3dzm_geom_parentmCREATE TABLE "idx_geo3dzm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER) „099-tableidx_geo3dzm_geom_rowididx_geo3dzm_geom_rowidlCREATE TABLE "idx_geo3dzm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)„/77#tableidx_geo3dzm_geom_nodeidx_geo3dzm_geom_nodekCREATE TABLE "idx_geo3dzm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)}„.--/tableidx_geo3dzm_geomidx_geo3dzm_geomCREATE VIRTUAL TABLE "idx_geo3dzm_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚\„--„{triggergid_geo3dzm_geomgeo3dzmCREATE TRIGGER "gid_geo3dzm_geom" AFTER DELETE ON "geo3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('geo3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_geo3dzm_geom" WHERE pkid=OLD.ROWID; END Äbă„,-…wtriggergiu_geo3dzm_geomgeo3dzmCREATE TRIGGER "giu_geo3dzm_geom" AFTER UPDATE ON "geo3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('geo3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_geo3dzm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_geo3dzm_geom', NEW.ROWID, NEW."geom"); ENDƒ„+-…wtriggergii_geo3dzm_geomgeo3dzmCREATE TRIGGER "gii_geo3dzm_geom" AFTER INSERT ON "geo3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('geo3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_geo3dzm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_geo3dzm_geom', NEW.ROWID, NEW."geom"); END ‡¦)¥‡„:997tableidx_geo3dz_geom_parentidx_geo3dz_geom_parentqCREATE TABLE "idx_geo3dz_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)„977+tableidx_geo3dz_geom_rowididx_geo3dz_geom_rowidpCREATE TABLE "idx_geo3dz_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)„855!tableidx_geo3dz_geom_nodeidx_geo3dz_geom_nodeoCREATE TABLE "idx_geo3dz_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)z„7++-tableidx_geo3dz_geomidx_geo3dz_geomCREATE VIRTUAL TABLE "idx_geo3dz_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚V„6+„striggergid_geo3dz_geomgeo3dzCREATE TRIGGER "gid_geo3dz_geom" AFTER DELETE ON "geo3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('geo3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_geo3dz_geom" WHERE pkid=OLD.ROWID; END ÒiÒƒ„5+…mtriggergiu_geo3dz_geomgeo3dzCREATE TRIGGER "giu_geo3dz_geom" AFTER UPDATE ON "geo3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('geo3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_geo3dz_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_geo3dz_geom', NEW.ROWID, NEW."geom"); ENDƒ„4+…mtriggergii_geo3dz_geomgeo3dzCREATE TRIGGER "gii_geo3dz_geom" AFTER INSERT ON "geo3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('geo3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_geo3dz_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_geo3dz_geom', NEW.ROWID, NEW."geom"); END ‡¦)¥‡„C997tableidx_geo2dm_geom_parentidx_geo2dm_geom_parentuCREATE TABLE "idx_geo2dm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)„B77+tableidx_geo2dm_geom_rowididx_geo2dm_geom_rowidtCREATE TABLE "idx_geo2dm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)„A55!tableidx_geo2dm_geom_nodeidx_geo2dm_geom_nodesCREATE TABLE "idx_geo2dm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)z„@++-tableidx_geo2dm_geomidx_geo2dm_geomCREATE VIRTUAL TABLE "idx_geo2dm_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚V„?+„striggergid_geo2dm_geomgeo2dmCREATE TRIGGER "gid_geo2dm_geom" AFTER DELETE ON "geo2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('geo2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_geo2dm_geom" WHERE pkid=OLD.ROWID; END ÒiÒƒ„>+…mtriggergiu_geo2dm_geomgeo2dmCREATE TRIGGER "giu_geo2dm_geom" AFTER UPDATE ON "geo2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('geo2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_geo2dm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_geo2dm_geom', NEW.ROWID, NEW."geom"); ENDƒ„=+…mtriggergii_geo2dm_geomgeo2dmCREATE TRIGGER "gii_geo2dm_geom" AFTER INSERT ON "geo2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('geo2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_geo2dm_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_geo2dm_geom', NEW.ROWID, NEW."geom"); END ²²Yƒ#„D)†triggerggi_geo2d_geomgeo2dCREATE TRIGGER "ggi_geo2d_geom" BEFORE INSERT ON "geo2d" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'geo2d.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('geo2d') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ#„E)†triggerggu_geo2d_geomgeo2dCREATE TRIGGER "ggu_geo2d_geom" BEFORE UPDATE ON "geo2d" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'geo2d.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('geo2d') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END ààpƒ „F)…ctriggergii_geo2d_geomgeo2dCREATE TRIGGER "gii_geo2d_geom" AFTER INSERT ON "geo2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('geo2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_geo2d_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_geo2d_geom', NEW.ROWID, NEW."geom"); ENDƒ „G)…ctriggergiu_geo2d_geomgeo2dCREATE TRIGGER "giu_geo2d_geom" AFTER UPDATE ON "geo2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('geo2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_geo2d_geom" WHERE pkid=NEW.ROWID; SELECT RTreeAlign('idx_geo2d_geom', NEW.ROWID, NEW."geom"); END ¬²;¾9¬ ‚5553tableidx_pt2d_geom_parentidx_pt2d_geom_parent÷CREATE TABLE "idx_pt2d_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)‚433'tableidx_pt2d_geom_rowididx_pt2d_geom_rowidöCREATE TABLE "idx_pt2d_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)z‚311tableidx_pt2d_geom_nodeidx_pt2d_geom_nodeõCREATE TABLE "idx_pt2d_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)t‚2'')tableidx_pt2d_geomidx_pt2d_geomCREATE VIRTUAL TABLE "idx_pt2d_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚J‚1'„ctriggergid_pt2d_geompt2dCREATE TRIGGER "gid_pt2d_geom" AFTER DELETE ON "pt2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pt2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pt2d_geom" WHERE pkid=OLD.ROWID; END 99‡D ?ŒÌÌ?ŒÌÍ?ŒÌÌ?ŒÌÍ?ÌÌË?ÌÌÍ@ff@fg?ÌÌË?ÌÌÍ@ @ ñûöñ    š¬2²*š ‚>775tableidx_pt2dm_geom_parentidx_pt2dm_geom_parentûCREATE TABLE "idx_pt2dm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)‚=55)tableidx_pt2dm_geom_rowididx_pt2dm_geom_rowidúCREATE TABLE "idx_pt2dm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)}‚<33tableidx_pt2dm_geom_nodeidx_pt2dm_geom_nodeùCREATE TABLE "idx_pt2dm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)w‚;))+tableidx_pt2dm_geomidx_pt2dm_geomCREATE VIRTUAL TABLE "idx_pt2dm_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚P‚:)„ktriggergid_pt2dm_geompt2dmCREATE TRIGGER "gid_pt2dm_geom" AFTER DELETE ON "pt2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pt2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pt2dm_geom" WHERE pkid=OLD.ROWID; END 99‡D ?ŒÌÌ?ŒÌÍ?ŒÌÌ?ŒÌÍ?¦ff?¦fh?¦ff?¦fh?ÌÌË?ÌÌÍ?™™˜?™™š ññöû    š¬2²*š ‚G775tableidx_pt3dz_geom_parentidx_pt3dz_geom_parentÿCREATE TABLE "idx_pt3dz_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)‚F55)tableidx_pt3dz_geom_rowididx_pt3dz_geom_rowidþCREATE TABLE "idx_pt3dz_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)}‚E33tableidx_pt3dz_geom_nodeidx_pt3dz_geom_nodeýCREATE TABLE "idx_pt3dz_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)w‚D))+tableidx_pt3dz_geomidx_pt3dz_geomCREATE VIRTUAL TABLE "idx_pt3dz_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚P‚C)„ktriggergid_pt3dz_geompt3dzCREATE TRIGGER "gid_pt3dz_geom" AFTER DELETE ON "pt3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pt3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pt3dz_geom" WHERE pkid=OLD.ROWID; END 99‡D ?ÌÌË?ÌÌÍ?™™˜?™™š?ÌÌË?ÌÌÍ@ ÌÌ@ ÌÍ@&ff@&fh@ ÌÌ@ ÌÍ ñûöñ    8† “¢*±8wQ==)a 2014-05-20T09:07:06.241Z2014-05-20T09:07:07.879Zspatialite_guiselect CreateSpatialIndex('pg3dz', 'geom')successwP==)a 2014-05-20T09:06:58.831Z2014-05-20T09:07:00.999Zspatialite_guiselect CreateSpatialIndex('pg2dm', 'geom')successvO==)_ 2014-05-20T09:06:51.811Z2014-05-20T09:06:53.963Zspatialite_guiselect CreateSpatialIndex('pg2d', 'geom')successvN==)_ 2014-05-20T09:06:43.106Z2014-05-20T09:06:45.165Zspatialite_guiselect CreateSpatialIndex('ln2d', 'geom')successwM==)a 2014-05-20T09:06:36.569Z2014-05-20T09:06:38.457Zspatialite_guiselect CreateSpatialIndex('ln2dm', 'geom')successwL==)a 2014-05-20T09:06:28.208Z2014-05-20T09:06:30.095Zspatialite_guiselect CreateSpatialIndex('ln3dz', 'geom')successxK==)c 2014-05-20T09:06:21.796Z2014-05-20T09:06:23.996Zspatialite_guiselect CreateSpatialIndex('ln3dzm', 'geom')successxJ==)c 2014-05-20T09:06:13.575Z2014-05-20T09:06:15.104Zspatialite_guiselect CreateSpatialIndex('pt3dzm', 'geom')success ‡¦)¥‡‚P997tableidx_pt3dzm_geom_parentidx_pt3dzm_geom_parentCREATE TABLE "idx_pt3dzm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)‚O77+tableidx_pt3dzm_geom_rowididx_pt3dzm_geom_rowidCREATE TABLE "idx_pt3dzm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)‚N55!tableidx_pt3dzm_geom_nodeidx_pt3dzm_geom_nodeCREATE TABLE "idx_pt3dzm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)z‚M++-tableidx_pt3dzm_geomidx_pt3dzm_geomCREATE VIRTUAL TABLE "idx_pt3dzm_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚V‚L+„striggergid_pt3dzm_geompt3dzmCREATE TRIGGER "gid_pt3dzm_geom" AFTER DELETE ON "pt3dzm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pt3dzm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pt3dzm_geom" WHERE pkid=OLD.ROWID; END 99‡D @&ff@&fh@ ÌÌ@ ÌÍ?ÌÌË?ÌÌÍ@LÌË@LÌÍ@³33@³35@LÌË@LÌÍ ñûöñ    i™2Ìfœ6Ðie8_=#pg3dzmgeomR*Tree Spatial Index successfully created2014-05-20T09:07:14.072Z3.8.4.34.2.0-develd7_=#pg3dzgeomR*Tree Spatial Index successfully created2014-05-20T09:07:07.769Z3.8.4.34.2.0-develd6_=#pg2dmgeomR*Tree Spatial Index successfully created2014-05-20T09:07:00.890Z3.8.4.34.2.0-develc5_=#pg2dgeomR*Tree Spatial Index successfully created2014-05-20T09:06:53.854Z3.8.4.34.2.0-develc4_=#ln2dgeomR*Tree Spatial Index successfully created2014-05-20T09:06:45.071Z3.8.4.34.2.0-develd3_=#ln2dmgeomR*Tree Spatial Index successfully created2014-05-20T09:06:38.363Z3.8.4.34.2.0-develd2_=#ln3dzgeomR*Tree Spatial Index successfully created2014-05-20T09:06:29.986Z3.8.4.34.2.0-devele1_=#ln3dzmgeomR*Tree Spatial Index successfully created2014-05-20T09:06:23.871Z3.8.4.34.2.0-devele0_=#pt3dzmgeomR*Tree Spatial Index successfully created2014-05-20T09:06:15.010Z3.8.4.34.2.0-devel ¦S¦ƒ)‚R+†triggerggu_ln3dzm_geomln3dzmCREATE TRIGGER "ggu_ln3dzm_geom" BEFORE UPDATE ON "ln3dzm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'ln3dzm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('ln3dzm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ)‚Q+†triggerggi_ln3dzm_geomln3dzmCREATE TRIGGER "ggi_ln3dzm_geom" BEFORE INSERT ON "ln3dzm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'ln3dzm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('ln3dzm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D A A A A A A ññöû    ²Y²ƒ#‚[)†triggerggu_ln3dz_geomln3dzCREATE TRIGGER "ggu_ln3dz_geom" BEFORE UPDATE ON "ln3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'ln3dz.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('ln3dz') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ#‚Z)†triggerggi_ln3dz_geomln3dzCREATE TRIGGER "ggi_ln3dz_geom" BEFORE INSERT ON "ln3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'ln3dz.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('ln3dz') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D ??™š??™š@€@À@ A A A ñûöñ    ²Y²ƒ#‚d)†triggerggu_ln2dm_geomln2dmCREATE TRIGGER "ggu_ln2dm_geom" BEFORE UPDATE ON "ln2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'ln2dm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('ln2dm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ#‚c)†triggerggi_ln2dm_geomln2dmCREATE TRIGGER "ggi_ln2dm_geom" BEFORE INSERT ON "ln2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'ln2dm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('ln2dm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D ?€?€@ @ ??™š??™š ñûöñ    ¬²;¾9¬ ‚t553tableidx_ln2d_geom_parentidx_ln2d_geom_parentCREATE TABLE "idx_ln2d_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)‚s33'tableidx_ln2d_geom_rowididx_ln2d_geom_rowidCREATE TABLE "idx_ln2d_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)z‚r11tableidx_ln2d_geom_nodeidx_ln2d_geom_nodeCREATE TABLE "idx_ln2d_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)t‚q'')tableidx_ln2d_geomidx_ln2d_geomCREATE VIRTUAL TABLE "idx_ln2d_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚J‚p'„ctriggergid_ln2d_geomln2dCREATE TRIGGER "gid_ln2d_geom" AFTER DELETE ON "ln2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('ln2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_ln2d_geom" WHERE pkid=OLD.ROWID; END 99‡D ?€@?€@?€A ?€A ?€?€ ñûöñ    ¬²;¾9¬ ‚}553tableidx_pg2d_geom_parentidx_pg2d_geom_parentCREATE TABLE "idx_pg2d_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)‚|33'tableidx_pg2d_geom_rowididx_pg2d_geom_rowidCREATE TABLE "idx_pg2d_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)z‚{11tableidx_pg2d_geom_nodeidx_pg2d_geom_nodeCREATE TABLE "idx_pg2d_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)t‚z'')tableidx_pg2d_geomidx_pg2d_geomCREATE VIRTUAL TABLE "idx_pg2d_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚J‚y'„ctriggergid_pg2d_geompg2dCREATE TRIGGER "gid_pg2d_geom" AFTER DELETE ON "pg2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pg2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pg2d_geom" WHERE pkid=OLD.ROWID; END 99‡D ?€?€A Ap@ A@AP@@@ ñûöñ    š¬2²*š ƒ775tableidx_pg2dm_geom_parentidx_pg2dm_geom_parentCREATE TABLE "idx_pg2dm_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)ƒ55)tableidx_pg2dm_geom_rowididx_pg2dm_geom_rowidCREATE TABLE "idx_pg2dm_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)}ƒ33tableidx_pg2dm_geom_nodeidx_pg2dm_geom_nodeCREATE TABLE "idx_pg2dm_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)wƒ))+tableidx_pg2dm_geomidx_pg2dm_geomCREATE VIRTUAL TABLE "idx_pg2dm_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚Pƒ)„ktriggergid_pg2dm_geompg2dmCREATE TRIGGER "gid_pg2dm_geom" AFTER DELETE ON "pg2dm" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pg2dm') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pg2dm_geom" WHERE pkid=OLD.ROWID; END 99‡D A@AP@@@A Ap@ ?€?€ ññûö    š¬2²*š ƒ775tableidx_pg3dz_geom_parentidx_pg3dz_geom_parent!CREATE TABLE "idx_pg3dz_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)ƒ55)tableidx_pg3dz_geom_rowididx_pg3dz_geom_rowid CREATE TABLE "idx_pg3dz_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)}ƒ 33tableidx_pg3dz_geom_nodeidx_pg3dz_geom_nodeCREATE TABLE "idx_pg3dz_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)wƒ ))+tableidx_pg3dz_geomidx_pg3dz_geomCREATE VIRTUAL TABLE "idx_pg3dz_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚Pƒ )„ktriggergid_pg3dz_geompg3dzCREATE TRIGGER "gid_pg3dz_geom" AFTER DELETE ON "pg3dz" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('pg3dz') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_pg3dz_geom" WHERE pkid=OLD.ROWID; END 99‡D A@AP@@@?€?€A Ap@  ñöûñ    1† ‘ž%«1xY==)c 2014-05-20T09:08:01.122Z2014-05-20T09:08:02.760Zspatialite_guiselect CreateSpatialIndex('mpt3dz', 'geom')successxX==)c 2014-05-20T09:07:53.836Z2014-05-20T09:07:55.443Zspatialite_guiselect CreateSpatialIndex('mpt2dm', 'geom')successwW==)a 2014-05-20T09:07:48.423Z2014-05-20T09:07:49.890Zspatialite_guiselect CreateSpatialIndex('mpt2d', 'geom')successwV==)a 2014-05-20T09:07:42.464Z2014-05-20T09:07:43.977Zspatialite_guiselect CreateSpatialIndex('mpg2d', 'geom')successxU==)c 2014-05-20T09:07:34.290Z2014-05-20T09:07:35.756Zspatialite_guiselect CreateSpatialIndex('mpg2dm', 'geom')successxT==)c 2014-05-20T09:07:25.897Z2014-05-20T09:07:27.410Zspatialite_guiselect CreateSpatialIndex('mpg3dz', 'geom')successyS==)e 2014-05-20T09:07:20.062Z2014-05-20T09:07:21.513Zspatialite_guiselect CreateSpatialIndex('mpg3dzm', 'geom')successxR==)c 2014-05-20T09:07:12.465Z2014-05-20T09:07:14.181Zspatialite_guiselect CreateSpatialIndex('pg3dzm', 'geom')success 99‡D A@AP@@@?€?€A Ap@  ñöûñ    šMšƒ/ƒ-†!triggerggu_mpg3dzm_geommpg3dzmCREATE TRIGGER "ggu_mpg3dzm_geom" BEFORE UPDATE ON "mpg3dzm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mpg3dzm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mpg3dzm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ/ƒ-†!triggerggi_mpg3dzm_geommpg3dzmCREATE TRIGGER "ggi_mpg3dzm_geom" BEFORE INSERT ON "mpg3dzm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mpg3dzm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mpg3dzm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D A AøA AøA¨A°A¨A°AøBAøB ñûöñ    `˜1Êdþ—0È`fA_=#mln3dzmgeomR*Tree Spatial Index successfully created2014-05-20T09:08:17.720Z3.8.4.34.2.0-develf@_=#mpt3dzmgeomR*Tree Spatial Index successfully created2014-05-20T09:08:08.282Z3.8.4.34.2.0-devele?_=#mpt3dzgeomR*Tree Spatial Index successfully created2014-05-20T09:08:02.635Z3.8.4.34.2.0-devele>_=#mpt2dmgeomR*Tree Spatial Index successfully created2014-05-20T09:07:55.334Z3.8.4.34.2.0-develd=_=#mpt2dgeomR*Tree Spatial Index successfully created2014-05-20T09:07:49.796Z3.8.4.34.2.0-develd<_=#mpg2dgeomR*Tree Spatial Index successfully created2014-05-20T09:07:43.884Z3.8.4.34.2.0-devele;_=#mpg2dmgeomR*Tree Spatial Index successfully created2014-05-20T09:07:35.662Z3.8.4.34.2.0-devele:_=#mpg3dzgeomR*Tree Spatial Index successfully created2014-05-20T09:07:27.285Z3.8.4.34.2.0-develf9_=#mpg3dzmgeomR*Tree Spatial Index successfully created2014-05-20T09:07:21.420Z3.8.4.34.2.0-devel ¦S¦ƒ)ƒ#+†triggerggu_mpg3dz_geommpg3dzCREATE TRIGGER "ggu_mpg3dz_geom" BEFORE UPDATE ON "mpg3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mpg3dz.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mpg3dz') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ)ƒ"+†triggerggi_mpg3dz_geommpg3dzCREATE TRIGGER "ggi_mpg3dz_geom" BEFORE INSERT ON "mpg3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mpg3dz.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mpg3dz') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D A AøA AøAøBAøBA¨A°A¨A° ñûñö    ¦S¦ƒ)ƒ,+†triggerggu_mpg2dm_geommpg2dmCREATE TRIGGER "ggu_mpg2dm_geom" BEFORE UPDATE ON "mpg2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mpg2dm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mpg2dm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ)ƒ++†triggerggi_mpg2dm_geommpg2dmCREATE TRIGGER "ggi_mpg2dm_geom" BEFORE INSERT ON "mpg2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mpg2dm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mpg2dm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D A AøA AøA¨A°A¨A°AøBAøB ñûöñ    ²Y²ƒ#ƒ5)†triggerggu_mpg2d_geommpg2dCREATE TRIGGER "ggu_mpg2d_geom" BEFORE UPDATE ON "mpg2d" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mpg2d.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mpg2d') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ#ƒ4)†triggerggi_mpg2d_geommpg2dCREATE TRIGGER "ggi_mpg2d_geom" BEFORE INSERT ON "mpg2d" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mpg2d.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mpg2d') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D A AøA AøA¨A°A¨A°AøBAøB ñûöñ    ²Y²ƒ#ƒ>)†triggerggu_mpt2d_geommpt2dCREATE TRIGGER "ggu_mpt2d_geom" BEFORE UPDATE ON "mpt2d" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mpt2d.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mpt2d') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ#ƒ=)†triggerggi_mpt2d_geommpt2dCREATE TRIGGER "ggi_mpt2d_geom" BEFORE INSERT ON "mpt2d" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mpt2d.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mpt2d') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END š¬2²*š ƒE775tableidx_mpt2d_geom_parentidx_mpt2d_geom_parent;CREATE TABLE "idx_mpt2d_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)ƒD55)tableidx_mpt2d_geom_rowididx_mpt2d_geom_rowid:CREATE TABLE "idx_mpt2d_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER)}ƒC33tableidx_mpt2d_geom_nodeidx_mpt2d_geom_node9CREATE TABLE "idx_mpt2d_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB)wƒB))+tableidx_mpt2d_geomidx_mpt2d_geomCREATE VIRTUAL TABLE "idx_mpt2d_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)‚PƒA)„ktriggergid_mpt2d_geommpt2dCREATE TRIGGER "gid_mpt2d_geom" AFTER DELETE ON "mpt2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('mpt2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_mpt2d_geom" WHERE pkid=OLD.ROWID; END 99‡D @ @ @ @ A A A A @À@ÀAA ñûöñ    ¦S¦ƒ)ƒG+†triggerggu_mpt2dm_geommpt2dmCREATE TRIGGER "ggu_mpt2dm_geom" BEFORE UPDATE ON "mpt2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mpt2dm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mpt2dm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ)ƒF+†triggerggi_mpt2dm_geommpt2dmCREATE TRIGGER "ggi_mpt2dm_geom" BEFORE INSERT ON "mpt2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mpt2dm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mpt2dm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D @ @ @ @ A A A A A A @À@À ñûöñ    ¦S¦ƒ)ƒP+†triggerggu_mpt3dz_geommpt3dzCREATE TRIGGER "ggu_mpt3dz_geom" BEFORE UPDATE ON "mpt3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mpt3dz.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mpt3dz') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ)ƒO+†triggerggi_mpt3dz_geommpt3dzCREATE TRIGGER "ggi_mpt3dz_geom" BEFORE INSERT ON "mpt3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mpt3dz.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mpt3dz') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D @ @ @ @ A A A A A A @À@À ñûöñ    3… %¬3wa==)a 2014-05-20T09:08:58.732Z2014-05-20T09:09:00.214Zspatialite_guiselect CreateSpatialIndex('gc3dz', 'geom')successw`==)a 2014-05-20T09:08:51.572Z2014-05-20T09:08:53.070Zspatialite_guiselect CreateSpatialIndex('gc2dm', 'geom')successv_==)_ 2014-05-20T09:08:45.504Z2014-05-20T09:08:47.048Zspatialite_guiselect CreateSpatialIndex('gc2d', 'geom')successw^==)a 2014-05-20T09:08:37.080Z2014-05-20T09:08:38.562Zspatialite_guiselect CreateSpatialIndex('mln2d', 'geom')successx]==)c 2014-05-20T09:08:31.136Z2014-05-20T09:08:32.618Zspatialite_guiselect CreateSpatialIndex('mln2dm', 'geom')successx\==)c 2014-05-20T09:08:23.414Z2014-05-20T09:08:24.958Zspatialite_guiselect CreateSpatialIndex('mln3dz', 'geom')successy[==)e 2014-05-20T09:08:16.160Z2014-05-20T09:08:17.829Zspatialite_guiselect CreateSpatialIndex('mln3dzm', 'geom')successyZ==)e 2014-05-20T09:08:06.722Z2014-05-20T09:08:08.376Zspatialite_guiselect CreateSpatialIndex('mpt3dzm', 'geom')success šMšƒ/ƒY-†!triggerggu_mpt3dzm_geommpt3dzmCREATE TRIGGER "ggu_mpt3dzm_geom" BEFORE UPDATE ON "mpt3dzm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mpt3dzm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mpt3dzm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ/ƒX-†!triggerggi_mpt3dzm_geommpt3dzmCREATE TRIGGER "ggi_mpt3dzm_geom" BEFORE INSERT ON "mpt3dzm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mpt3dzm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mpt3dzm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D @ @ @ @ A A A A A A @À@À ñûöñ    šMšƒ/ƒb-†!triggerggu_mln3dzm_geommln3dzmCREATE TRIGGER "ggu_mln3dzm_geom" BEFORE UPDATE ON "mln3dzm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mln3dzm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mln3dzm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ/ƒa-†!triggerggi_mln3dzm_geommln3dzmCREATE TRIGGER "ggi_mln3dzm_geom" BEFORE INSERT ON "mln3dzm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mln3dzm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mln3dzm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D A A A A @ A¨@ A¨@ÀA°@ÀA° ñûöñ    ¦S¦ƒ)ƒk+†triggerggu_mln3dz_geommln3dzCREATE TRIGGER "ggu_mln3dz_geom" BEFORE UPDATE ON "mln3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mln3dz.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mln3dz') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ)ƒj+†triggerggi_mln3dz_geommln3dzCREATE TRIGGER "ggi_mln3dz_geom" BEFORE INSERT ON "mln3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mln3dz.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mln3dz') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D A A A A @ A¨@ A¨@ÀA°@ÀA° ñûöñ    e™2Ìg›4ÌeeJ_=#geo3dzgeomR*Tree Spatial Index successfully created2014-05-20T09:09:19.013Z3.8.4.34.2.0-develfI_=#geo3dzmgeomR*Tree Spatial Index successfully created2014-05-20T09:09:13.755Z3.8.4.34.2.0-develeH_=#gc3dzmgeomR*Tree Spatial Index successfully created2014-05-20T09:09:05.674Z3.8.4.34.2.0-develdG_=#gc3dzgeomR*Tree Spatial Index successfully created2014-05-20T09:09:00.105Z3.8.4.34.2.0-develdF_=#gc2dmgeomR*Tree Spatial Index successfully created2014-05-20T09:08:52.976Z3.8.4.34.2.0-develcE_=#gc2dgeomR*Tree Spatial Index successfully created2014-05-20T09:08:46.954Z3.8.4.34.2.0-develdD_=#mln2dgeomR*Tree Spatial Index successfully created2014-05-20T09:08:38.468Z3.8.4.34.2.0-develeC_=#mln2dmgeomR*Tree Spatial Index successfully created2014-05-20T09:08:32.524Z3.8.4.34.2.0-develeB_=#mln3dzgeomR*Tree Spatial Index successfully created2014-05-20T09:08:24.865Z3.8.4.34.2.0-devel ¦S¦ƒ)ƒt+†triggerggu_mln2dm_geommln2dmCREATE TRIGGER "ggu_mln2dm_geom" BEFORE UPDATE ON "mln2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mln2dm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mln2dm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ)ƒs+†triggerggi_mln2dm_geommln2dmCREATE TRIGGER "ggi_mln2dm_geom" BEFORE INSERT ON "mln2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mln2dm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mln2dm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D A A A A @ A¨@ A¨@ÀA°@ÀA° ñûöñ    ²Y²ƒ#ƒ})†triggerggu_mln2d_geommln2dCREATE TRIGGER "ggu_mln2d_geom" BEFORE UPDATE ON "mln2d" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mln2d.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mln2d') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ#ƒ|)†triggerggi_mln2d_geommln2dCREATE TRIGGER "ggi_mln2d_geom" BEFORE INSERT ON "mln2d" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'mln2d.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('mln2d') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D A A A A @ A¨@ A¨@ÀA°@ÀA° ñûöñ    99‡D ?€A°@@A°@ A @@A AA@@ ñûöñ    ²Y²ƒ#„)†triggerggu_gc2dm_geomgc2dmCREATE TRIGGER "ggu_gc2dm_geom" BEFORE UPDATE ON "gc2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'gc2dm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('gc2dm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ#„)†triggerggi_gc2dm_geomgc2dmCREATE TRIGGER "ggi_gc2dm_geom" BEFORE INSERT ON "gc2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'gc2dm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('gc2dm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D ?€A°@@A°@ A @@A AA@@ ñûöñ    ²Y²ƒ#„)†triggerggu_gc3dz_geomgc3dzCREATE TRIGGER "ggu_gc3dz_geom" BEFORE UPDATE ON "gc3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'gc3dz.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('gc3dz') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ#„)†triggerggi_gc3dz_geomgc3dzCREATE TRIGGER "ggi_gc3dz_geom" BEFORE INSERT ON "gc3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'gc3dz.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('gc3dz') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D ?€A°@@A°@ A @@A AA@@ ñûöñ    =† ‘ží=-h ==)K 2014-05-20T09:13:09.831Z2014-05-20T09:13:10.049Zspatialite_guiINSERT INTO pt2d (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'POINT (1.6 2.1)', 4326))success.g ==)M 2014-05-20T09:12:51.734Z2014-05-20T09:12:52.031Zspatialite_guiINSERT INTO pt2d (id, name, geom) VALUES (1, 'alpha', ST_GeomFromText( 'POINT (1.1 1.1)', 4326))successwf==)a 2014-05-20T09:09:31.851Z2014-05-20T09:09:33.333Zspatialite_guiselect CreateSpatialIndex('geo2d', 'geom')successxe==)c 2014-05-20T09:09:26.313Z2014-05-20T09:09:27.905Zspatialite_guiselect CreateSpatialIndex('geo2dm', 'geom')successxd==)c 2014-05-20T09:09:17.406Z2014-05-20T09:09:19.106Zspatialite_guiselect CreateSpatialIndex('geo3dz', 'geom')successyc==)e 2014-05-20T09:09:12.211Z2014-05-20T09:09:13.849Zspatialite_guiselect CreateSpatialIndex('geo3dzm', 'geom')successxb==)c 2014-05-20T09:09:04.270Z2014-05-20T09:09:05.768Zspatialite_guiselect CreateSpatialIndex('gc3dzm', 'geom')success ¦S¦ƒ)„!+†triggerggu_gc3dzm_geomgc3dzmCREATE TRIGGER "ggu_gc3dzm_geom" BEFORE UPDATE ON "gc3dzm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'gc3dzm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('gc3dzm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ)„ +†triggerggi_gc3dzm_geomgc3dzmCREATE TRIGGER "ggi_gc3dzm_geom" BEFORE INSERT ON "gc3dzm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'gc3dzm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('gc3dzm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D ?€A°@@A°AA@@@ A @@A  ñûñö    šMšƒ/„*-†!triggerggu_geo3dzm_geomgeo3dzmCREATE TRIGGER "ggu_geo3dzm_geom" BEFORE UPDATE ON "geo3dzm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'geo3dzm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('geo3dzm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ/„)-†!triggerggi_geo3dzm_geomgeo3dzmCREATE TRIGGER "ggi_geo3dzm_geom" BEFORE INSERT ON "geo3dzm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'geo3dzm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('geo3dzm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D A A @€@€A0A@@ AA A¨A A¨A AøA Aø ìûöñì     ¦S¦ƒ)„3+†triggerggu_geo3dz_geomgeo3dzCREATE TRIGGER "ggu_geo3dz_geom" BEFORE UPDATE ON "geo3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'geo3dz.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('geo3dz') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ)„2+†triggerggi_geo3dz_geomgeo3dzCREATE TRIGGER "ggi_geo3dz_geom" BEFORE INSERT ON "geo3dz" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'geo3dz.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('geo3dz') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D A A @€@€A0A@@ AA A¨A A¨A AøA Aø ìûöñì     ¦S¦ƒ)„<+†triggerggu_geo2dm_geomgeo2dmCREATE TRIGGER "ggu_geo2dm_geom" BEFORE UPDATE ON "geo2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'geo2dm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('geo2dm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; ENDƒ)„;+†triggerggi_geo2dm_geomgeo2dmCREATE TRIGGER "ggi_geo2dm_geom" BEFORE INSERT ON "geo2dm" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'geo2dm.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('geo2dm') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END 99‡D A A @€@€A0A@@ AA A¨A A¨A AøA Aø ìûöñì     X™3ÌXrNw=#test_pkgeomGeometry [GEOMETRY,XY,SRID=4326] successfully created2014-05-20T21:14:06.428Z3.8.4.34.2.0-develeM!57=#ALL-TABLESALL-GEOMETRY-COLUMNSUpdateLayerStatistics2014-05-20T11:44:07.749Z3.8.4.34.2.0-develdL_=#geo2dgeomR*Tree Spatial Index successfully created2014-05-20T09:09:33.224Z3.8.4.34.2.0-develeK_=#geo2dmgeomR*Tree Spatial Index successfully created2014-05-20T09:09:27.811Z3.8.4.34.2.0-devel ²²€‚P„H)„ktriggergid_geo2d_geomgeo2dCREATE TRIGGER "gid_geo2d_geom" AFTER DELETE ON "geo2d" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('geo2d') AND Lower(f_geometry_column) = Lower('geom'); DELETE FROM "idx_geo2d_geom" WHERE pkid=OLD.ROWID; ENDw„I))+tableidx_geo2d_geomidx_geo2d_geomCREATE VIRTUAL TABLE "idx_geo2d_geom" USING rtree(pkid, xmin, xmax, ymin, ymax)}„J33tableidx_geo2d_geom_nodeidx_geo2d_geom_nodexCREATE TABLE "idx_geo2d_geom_node"(nodeno INTEGER PRIMARY KEY, data BLOB) 99‡D A A @€@€A0A@@ AA A¨A A¨A AøA Aø ìûöñì     zO™ä/z2m ==)U 2014-05-20T09:15:18.936Z2014-05-20T09:15:19.170Zspatialite_guiINSERT INTO pt3dz (id, name, geom) VALUES (1, 'alpha', ST_GeomFromText( 'POINTZ (1.6 1.2 9)', 4326))success2l ==)U 2014-05-20T09:14:45.724Z2014-05-20T09:14:45.958Zspatialite_guiINSERT INTO pt2dm (id, name, geom) VALUES (0, 'alpha', ST_GeomFromText( 'POINTM (1.6 1.2 9)', 4326))success2k ==)U 2014-05-20T09:14:23.229Z2014-05-20T09:14:23.463Zspatialite_guiINSERT INTO pt2dm (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'POINTM (1.3 1.3 11)', 4326))success3j ==)W 2014-05-20T09:14:00.312Z2014-05-20T09:14:00.546Zspatialite_guiINSERT INTO pt2dm (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'POINTM (1.1 1.1 10)', 4326))success.i ==)M 2014-05-20T09:13:26.429Z2014-05-20T09:13:26.663Zspatialite_guiINSERT INTO pt2d (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'POINT (1.6 2.5)', 4326))success mK–à'm7r ==)_ 2014-05-20T09:16:32.320Z2014-05-20T09:16:32.538Zspatialite_guiINSERT INTO pt3dzm (id, name, geom) VALUES (1, 'alpha', ST_GeomFromText( 'POINTZM (2.6 2.2 11 2)', 4326))success6q ==)] 2014-05-20T09:16:24.643Z2014-05-20T09:16:24.768Zspatialite_guiINSERT INTO pt3dz (id, name, geom) VALUES (1, 'alpha', ST_GeomFromText( 'POINTZM (2.6 2.2 11 2)', 4326))success3p ==)W 2014-05-20T09:15:57.733Z2014-05-20T09:15:57.967Zspatialite_guiINSERT INTO pt3dz (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'POINTZ (2.6 2.2 11)', 4326))success2o ==)U 2014-05-20T09:15:41.431Z2014-05-20T09:15:41.650Zspatialite_guiINSERT INTO pt3dz (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'POINTZ (1.6 2.2 13)', 4326))success2n ==)U 2014-05-20T09:15:34.334Z2014-05-20T09:15:34.443Zspatialite_guiINSERT INTO pt3dz (id, name, geom) VALUES (1, 'beta', ST_GeomFromText( 'POINTZ (1.6 2.2 13)', 4326))success bHØb4w ==)Y 2014-05-20T09:19:41.065Z2014-05-20T09:19:41.283Zspatialite_guiINSERT INTO ln2d (id, name, geom) VALUES (2, 'gamma', ST_GeomFromText( 'LINESTRING (0 0, 1 1)', 4326))success5 ==)m 2014-05-20T10:01:16.349Z2014-05-20T10:01:16.598Zspatialite_guiINSERT INTO mpt2dm (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'MULTIPOINTM (10 20 3, 20 10 5)', 4326))success44 ==)Y 2014-05-20T10:00:43.433Z2014-05-20T10:00:43.713Zspatialite_guiINSERT INTO mpt2dm (id, name, geom) VALUES (1, 'alpha', ST_GeomFromText( 'MULTIPOINTM (5 5 7)', 4326))success;3 ==)g 2014-05-20T10:00:16.413Z2014-05-20T10:00:16.663Zspatialite_guiINSERT or replace into mpt2d (id, name, geom) VALUES (2, 'gamma', ST_GeomFromText( 'MULTIPOINT (6 9)', 4326))successT2 ==)]W2014-05-20T10:00:09.589Z2014-05-20T10:00:09.714Zspatialite_guiINSERT or replace mpt2d (id, name, geom) VALUES (2, 'gamma', ST_GeomFromText( 'MULTIPOINT (6 9)', 4326))SQL error: near "mpt2d": syntax error ZYÚZÚYÚZ}===)m 2014-05-20T10:10:34.129Z2014-05-20T10:10:34.363Zspatialite_guiinsert into ln2dm (id, name) values (4, 'delta')success|<==)k 2014-05-20T10:10:13.334Z2014-05-20T10:10:13.553Zspatialite_guiinsert into ln2d (id, name) values (3, 'delta')success~;==)o 2014-05-20T10:05:53.625Z2014-05-20T10:05:53.859Zspatialite_guiinsert into pt3dzm (id, name) values (4, 'delta')success}:==)m 2014-05-20T10:05:29.117Z2014-05-20T10:05:29.351Zspatialite_guiinsert into pt3dz (id, name) values (4, 'delta')success}9==)m 2014-05-20T10:05:06.139Z2014-05-20T10:05:06.357Zspatialite_guiinsert into pt2dm (id, name) values (1, 'delta')success|8==)k 2014-05-20T10:04:36.779Z2014-05-20T10:04:36.998Zspatialite_guiinsert into pt2d (id, name) values (4, 'delta')success#7==)ki2014-05-20T10:04:30.787Z2014-05-20T10:04:30.912Zspatialite_guiinsert into pt2d (id, nome) values (4, 'delta')SQL error: table pt2d has no column named nome fgçfçgçf~D==)o 2014-05-20T10:12:38.674Z2014-05-20T10:12:38.892Zspatialite_guiinsert into pg3dzm (id, name) values (4, 'delta')success}C==)m 2014-05-20T10:12:21.436Z2014-05-20T10:12:21.670Zspatialite_guiinsert into pg3dz (id, name) values (4, 'delta')success}B==)m 2014-05-20T10:12:03.215Z2014-05-20T10:12:03.433Zspatialite_guiinsert into pg2dm (id, name) values (4, 'delta')success|A==)k 2014-05-20T10:11:46.523Z2014-05-20T10:11:46.741Zspatialite_guiinsert into pg2d (id, name) values (4, 'delta')success~@==)o 2014-05-20T10:11:23.716Z2014-05-20T10:11:23.934Zspatialite_guiinsert into ln3dzm (id, name) values (3, 'delta')success}?==)m 2014-05-20T10:11:03.529Z2014-05-20T10:11:03.748Zspatialite_guiinsert into ln3dz (id, name) values (3, 'delta')success>==)mK2014-05-20T10:10:54.924Z2014-05-20T10:10:55.049Zspatialite_guiinsert into ln2dz (id, name) values (3, 'delta')SQL error: no such table: ln2dz Ì€ÿG…Ì5I ==)[ 2014-05-20T10:15:14.565Z2014-05-20T10:15:14.830Zspatialite_guiINSERT INTO mpt3dz (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'MULTIPOINTZ (10 6 1)', 4326))success>H ==)m 2014-05-20T10:14:40.900Z2014-05-20T10:14:41.150Zspatialite_guiINSERT INTO mpt3dz (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'MULTIPOINTZ (10 20 3, 20 10 5)', 4326))success4G ==)Y 2014-05-20T10:14:06.861Z2014-05-20T10:14:07.126Zspatialite_guiINSERT INTO mpt3dz (id, name, geom) VALUES (1, 'alpha', ST_GeomFromText( 'MULTIPOINTZ (5 5 7)', 4326))success~F==)o 2014-05-20T10:13:21.511Z2014-05-20T10:13:21.761Zspatialite_guiinsert into mpt2dm (id, name) values (4, 'delta')success}E==)m 2014-05-20T10:13:04.086Z2014-05-20T10:13:04.336Zspatialite_guiinsert into mpt2d (id, name) values (3, 'delta')success ¼D|¿>¼N==)q 2014-05-20T10:17:25.917Z2014-05-20T10:17:26.167Zspatialite_guiinsert into mpt3dzm (id, name) values (2, 'delta')success~M==)o 2014-05-20T10:16:58.258Z2014-05-20T10:16:58.508Zspatialite_guiinsert into mpt3dz (id, name) values (4, 'delta')success9L ==)c 2014-05-20T10:16:29.227Z2014-05-20T10:16:29.507Zspatialite_guiINSERT INTO mpt3dzm (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'MULTIPOINTZM (10 6 1 4)', 4326))successDK ==)y 2014-05-20T10:16:12.004Z2014-05-20T10:16:12.254Zspatialite_guiINSERT INTO mpt3dzm (id, name, geom) VALUES (1, 'beta', ST_GeomFromText( 'MULTIPOINTZM (10 20 3 6, 20 10 5 7)', 4326))success8J ==)a 2014-05-20T10:15:46.654Z2014-05-20T10:15:46.904Zspatialite_guiINSERT INTO mpt3dzm (id, name, geom) VALUES (0, 'alpha', ST_GeomFromText( 'MULTIPOINTZM (5 5 7 2)', 4326))success Ï<k™ÏFR ==)} 2014-05-20T10:20:35.301Z2014-05-20T10:20:35.567Zspatialite_guiINSERT INTO mln2dm (id, name, geom) VALUES (0, 'alpha', ST_GeomFromText( 'MULTILINESTRINGM ((20 10 3, 10 20 7))', 4326))successNQ ==)‚ 2014-05-20T10:20:01.325Z2014-05-20T10:20:01.574Zspatialite_guiINSERT INTO mln2d (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'MULTILINESTRING ((22 12, 12 22), (6 6, 11 11))', 4326))successMP ==)‚ 2014-05-20T10:19:33.167Z2014-05-20T10:19:33.416Zspatialite_guiINSERT INTO mln2d (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'MULTILINESTRING ((21 11, 11 21), (5 5, 10 10))', 4326))success@O ==)q 2014-05-20T10:18:56.319Z2014-05-20T10:18:56.584Zspatialite_guiINSERT INTO mln2d (id, name, geom) VALUES (1, 'alpha', ST_GeomFromText( 'MULTILINESTRING ((20 10, 10 20))', 4326))success ¤%I¤WV ==)‚ 2014-05-20T10:22:43.768Z2014-05-20T10:22:44.033Zspatialite_guiINSERT INTO mln3dz (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'MULTILINESTRINGZ ((21 11 6, 11 21 7), (5 5 3, 10 10 2))', 4326))successFU ==)} 2014-05-20T10:22:26.093Z2014-05-20T10:22:26.358Zspatialite_guiINSERT INTO mln3dz (id, name, geom) VALUES (0, 'alpha', ST_GeomFromText( 'MULTILINESTRINGZ ((20 10 3, 10 20 7))', 4326))successXT ==)‚! 2014-05-20T10:21:39.308Z2014-05-20T10:21:39.574Zspatialite_guiINSERT INTO mln2dm (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'MULTILINESTRINGM ((22 12 4, 12 22 7), (6 6 2, 11 11 5))', 4326))successWS ==)‚ 2014-05-20T10:20:56.455Z2014-05-20T10:20:56.736Zspatialite_guiINSERT INTO mln2dm (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'MULTILINESTRINGM ((21 11 6, 11 21 7), (5 5 3, 10 10 2))', 4326))success ‰$To‰bZ ==)‚5 2014-05-20T10:24:16.447Z2014-05-20T10:24:16.681Zspatialite_guiINSERT INTO mln3dzm (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'MULTILINESTRINGZM ((22 12 4 6, 12 22 7 6), (6 6 2 4, 11 11 5 9))', 4326))successaY ==)‚3 2014-05-20T10:23:53.391Z2014-05-20T10:23:53.625Zspatialite_guiINSERT INTO mln3dzm (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'MULTILINESTRINGZM ((21 11 6 2, 11 21 7 3), (5 5 3 1, 10 10 2 7))', 4326))successLX ==)‚ 2014-05-20T10:23:31.800Z2014-05-20T10:23:32.019Zspatialite_guiINSERT INTO mln3dzm (id, name, geom) VALUES (1, 'alpha', ST_GeomFromText( 'MULTILINESTRINGZM ((20 10 3 5, 10 20 7 2))', 4326))successXW ==)‚! 2014-05-20T10:23:01.832Z2014-05-20T10:23:02.113Zspatialite_guiINSERT INTO mln3dz (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'MULTILINESTRINGZ ((22 12 4, 12 22 7), (6 6 2, 11 11 5))', 4326))success ²€ådãa²+` ==)G 2014-05-20T10:27:31.994Z2014-05-20T10:27:32.260Zspatialite_guiINSERT INTO geo2d (id, name, geom) VALUES (1, 'alpha', ST_GeomFromText( 'POINT(10 4)', 4326))success_==)q 2014-05-20T10:26:12.528Z2014-05-20T10:26:12.777Zspatialite_guiinsert into mln3dzm (id, name) values (4, 'delta')success~^==)o 2014-05-20T10:25:54.869Z2014-05-20T10:25:55.087Zspatialite_guiinsert into mln3dz (id, name) values (1, 'delta')success~]==)o 2014-05-20T10:25:39.705Z2014-05-20T10:25:39.955Zspatialite_guiinsert into mln2dm (id, name) values (1, 'delta')success\==)oM2014-05-20T10:25:32.545Z2014-05-20T10:25:32.639Zspatialite_guiinsert into mln2dn (id, name) values (1, 'delta')SQL error: no such table: mln2dn}[==)m 2014-05-20T10:25:12.421Z2014-05-20T10:25:12.655Zspatialite_guiinsert into mln2d (id, name) values (4, 'delta')success FÄÒ/e ==)O 2014-05-20T10:31:00.116Z2014-05-20T10:31:00.381Zspatialite_guiINSERT INTO geo2dm (id, name, geom) VALUES (0, 'alpha', ST_GeomFromText( 'POINTM(10 4 5)', 4326))successnd ==)‚M 2014-05-20T10:30:02.458Z2014-05-20T10:30:02.739Zspatialite_guiINSERT INTO geo2d (id, name, geom) VALUES (5, 'epsilon', ST_GeomFromText( 'MULTIPOLYGON(((20 20, 21 20, 20 21, 20 20)), ((30 30, 31 30, 30 31, 30 30)))', 4326))successEc ==){ 2014-05-20T10:28:51.681Z2014-05-20T10:28:51.946Zspatialite_guiINSERT INTO geo2d (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'POLYGON((20 20, 21 20, 20 21, 20 20))', 4326))success5b ==)[ 2014-05-20T10:28:05.271Z2014-05-20T10:28:05.536Zspatialite_guiINSERT INTO geo2d (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'LINESTRING(11 5, 12 8)', 4326))success6a ==)] 2014-05-20T10:27:52.945Z2014-05-20T10:27:53.070Zspatialite_guiINSERT INTO geo2d (id, name, geom) VALUES (1, 'alpha', ST_GeomFromText( 'LINESTRING(11 5, 12 8)', 4326))success XAn›ÈXmj==)M 2014-05-20T10:33:11.205Z2014-05-20T10:33:11.485Zspatialite_guidelete from geo2dm where id >= 3successOi ==)‚ 2014-05-20T10:32:35.590Z2014-05-20T10:32:35.855Zspatialite_guiINSERT INTO geo2dm (id, name, geom) VALUES (4, 'gamma', ST_GeomFromText( 'POLYGONM((20 20 5, 21 20 8, 20 21 9, 20 20 5))', 4326))successOh ==)‚ 2014-05-20T10:32:14.060Z2014-05-20T10:32:14.200Zspatialite_guiINSERT INTO geo2dm (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'POLYGONM((20 20 5, 21 20 8, 20 21 9, 20 20 5))', 4326))successOg ==)‚ 2014-05-20T10:31:46.136Z2014-05-20T10:31:46.401Zspatialite_guiINSERT INTO geo2dm (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'POLYGONM((20 20 2, 21 20 3, 20 21 4, 20 20 2))', 4326))success;f ==)g 2014-05-20T10:31:23.594Z2014-05-20T10:31:23.875Zspatialite_guiINSERT INTO geo2dm (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'LINESTRINGM(11 5 3, 12 8 6)', 4326))success ·-)v·;n ==)g 2014-05-20T10:35:34.584Z2014-05-20T10:35:34.865Zspatialite_guiINSERT INTO geo3dz (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'LINESTRINGZ(11 5 3, 12 8 6)', 4326))success/m ==)O 2014-05-20T10:35:13.415Z2014-05-20T10:35:13.696Zspatialite_guiINSERT INTO geo3dz (id, name, geom) VALUES (0, 'alpha', ST_GeomFromText( 'POINTZ(10 4 5)', 4326))success‚l ==)‚q 2014-05-20T10:34:31.685Z2014-05-20T10:34:31.966Zspatialite_guiINSERT INTO geo2dm (id, name, geom) VALUES (5, 'epsilon', ST_GeomFromText( 'MULTIPOLYGONM(((20 20 3, 21 20 6, 20 21 7, 20 20 3)), ((30 30 4, 31 30 7, 30 31 2, 30 30 4)))', 4326))successOk ==)‚ 2014-05-20T10:33:35.681Z2014-05-20T10:33:35.977Zspatialite_guiINSERT INTO geo2dm (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'POLYGONM((20 20 2, 21 20 3, 20 21 4, 20 20 2))', 4326))success ­-)r­Ar ==)s 2014-05-20T10:36:53.224Z2014-05-20T10:36:53.489Zspatialite_guiINSERT INTO geo3dzm (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'LINESTRINGZM(11 5 3 6, 12 8 6 7)', 4326))success3q ==)W 2014-05-20T10:36:33.147Z2014-05-20T10:36:33.412Zspatialite_guiINSERT INTO geo3dzm (id, name, geom) VALUES (0, 'alpha', ST_GeomFromText( 'POINTZM(10 4 5 7)', 4326))success‚p ==)‚q 2014-05-20T10:36:06.596Z2014-05-20T10:36:06.861Zspatialite_guiINSERT INTO geo3dz (id, name, geom) VALUES (5, 'epsilon', ST_GeomFromText( 'MULTIPOLYGONZ(((20 20 3, 21 20 6, 20 21 7, 20 20 3)), ((30 30 4, 31 30 7, 30 31 2, 30 30 4)))', 4326))successOo ==)‚ 2014-05-20T10:35:51.354Z2014-05-20T10:35:51.651Zspatialite_guiINSERT INTO geo3dz (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'POLYGONZ((20 20 2, 21 20 3, 20 21 4, 20 20 2))', 4326))success s# tôs~w==)o 2014-05-20T10:39:26.026Z2014-05-20T10:39:26.291Zspatialite_guiinsert into geo2dm (id, name) values (4, 'delta')success}v==)m 2014-05-20T10:39:08.492Z2014-05-20T10:39:08.788Zspatialite_guiinsert into geo2d (id, name) values (4, 'delta')successu==)mK2014-05-20T10:39:03.141Z2014-05-20T10:39:03.250Zspatialite_guiinsert into geo2e (id, name) values (4, 'delta')SQL error: no such table: geo2e‚t ==)ƒ 2014-05-20T10:38:05.842Z2014-05-20T10:38:06.107Zspatialite_guiINSERT INTO geo3dzm (id, name, geom) VALUES (5, 'epsilon', ST_GeomFromText( 'MULTIPOLYGONZM(((20 20 3 7, 21 20 6 3, 20 21 7 4, 20 20 3 7)), ((30 30 4 3, 31 30 7 5, 30 31 2 7, 30 30 4 3)))', 4326))successYs ==)‚# 2014-05-20T10:37:25.766Z2014-05-20T10:37:26.093Zspatialite_guiINSERT INTO geo3dzm (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'POLYGONZM((20 20 2 5, 21 20 3 3, 20 21 4 7, 20 20 2 5))', 4326))success (ýë (^| ==)‚- 2014-05-20T10:42:59.029Z2014-05-20T10:42:59.263Zspatialite_guiINSERT INTO mpg3dzm (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'MULTIPOLYGON(((31 31 4 3, 32 31 7 5, 31 32 2 7, 31 31 4 3)))', 4326))success]{ ==)‚+ 2014-05-20T10:42:20.497Z2014-05-20T10:42:20.746Zspatialite_guiINSERT INTO mpg3dzm (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'MULTIPOLYGON(((21 21 3 7, 22 21 6 3, 21 22 7 4, 21 21 3 7)))', 4326))success‚z ==)ƒ 2014-05-20T10:41:28.408Z2014-05-20T10:41:28.689Zspatialite_guiINSERT INTO mpg3dzm (id, name, geom) VALUES (1, 'alpha', ST_GeomFromText( 'MULTIPOLYGON(((20 20 3 7, 21 20 6 3, 20 21 7 4, 20 20 3 7)), ((30 30 4 3, 31 30 7 5, 30 31 2 7, 30 30 4 3)))', 4326))successy==)q 2014-05-20T10:40:06.648Z2014-05-20T10:40:06.898Zspatialite_guiinsert into geo3dzm (id, name) values (4, 'delta')success~x==)o 2014-05-20T10:39:48.240Z2014-05-20T10:39:48.521Zspatialite_guiinsert into geo3dz (id, name) values (4, 'delta')success ‰¦Â`‚ ==)‚1 2014-05-20T10:45:19.663Z2014-05-20T10:45:19.928Zspatialite_guiINSERT INTO mpg3dzm (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'MULTIPOLYGONZM(((31 31 4 3, 32 31 7 5, 31 32 2 7, 31 31 4 3)))', 4326))success_ ==)‚/ 2014-05-20T10:45:08.571Z2014-05-20T10:45:08.805Zspatialite_guiINSERT INTO mpg3dzm (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'MULTIPOLYGONZM(((21 21 3 7, 22 21 6 3, 21 22 7 4, 21 21 3 7)))', 4326))success‚~ ==)ƒ 2014-05-20T10:44:56.559Z2014-05-20T10:44:56.809Zspatialite_guiINSERT INTO mpg3dzm (id, name, geom) VALUES (1, 'alpha', ST_GeomFromText( 'MULTIPOLYGONZM(((20 20 3 7, 21 20 6 3, 20 21 7 4, 20 20 3 7)), ((30 30 4 3, 31 30 7 5, 30 31 2 7, 30 30 4 3)))', 4326))success`}==)3 2014-05-20T10:44:14.268Z2014-05-20T10:44:14.517Zspatialite_guidelete from mpg3dzmsuccess pþ#IpU‚ ==)‚ 2014-05-20T10:47:31.062Z2014-05-20T10:47:31.312Zspatialite_guiINSERT INTO mpg3dz (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'MULTIPOLYGONZ(((21 21 7, 22 21 3, 21 22 7, 21 21 7)))', 4326))successV‚ ==)‚ 2014-05-20T10:47:01.703Z2014-05-20T10:47:01.952Zspatialite_guiINSERT INTO mpg3dz (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'MULTIPOLYGONZ(((31 31 3, 32 31 7, 31 32 2, 31 31 3)))', 4326))successW‚ ==)‚ 2014-05-20T10:46:26.587Z2014-05-20T10:46:26.837Zspatialite_guiINSERT INTO mpg3dz (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'MULTIPOLYGONZ(((21 21 7, 22 21 3, 21 22 7 4, 21 21 7)))', 4326))success~‚ ==)‚m 2014-05-20T10:46:00.208Z2014-05-20T10:46:00.457Zspatialite_guiINSERT INTO mpg3dz (id, name, geom) VALUES (1, 'alpha', ST_GeomFromText( 'MULTIPOLYGONZ(((20 20 7, 21 20 6, 20 21 4, 20 20 7)), ((30 30 3, 31 30 7, 30 31 2, 30 30 3)))', 4326))success [þ%K[l‚ ==)‚I 2014-05-20T10:48:59.608Z2014-05-20T10:48:59.842Zspatialite_guiINSERT INTO mpg2d (id, name, geom) VALUES (0, 'alpha', ST_GeomFromText( 'MULTIPOLYGON(((20 20, 21 20, 20 21, 20 20)), ((30 30, 31 30, 30 31, 30 30)))', 4326))successV‚ ==)‚ 2014-05-20T10:48:23.712Z2014-05-20T10:48:23.946Zspatialite_guiINSERT INTO mpg2dm (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'MULTIPOLYGONM(((31 31 3, 32 31 7, 31 32 2, 31 31 3)))', 4326))successU‚ ==)‚ 2014-05-20T10:48:05.257Z2014-05-20T10:48:05.476Zspatialite_guiINSERT INTO mpg2dm (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'MULTIPOLYGONM(((21 21 7, 22 21 3, 21 22 7, 21 21 7)))', 4326))success~‚ ==)‚m 2014-05-20T10:47:48.425Z2014-05-20T10:47:48.674Zspatialite_guiINSERT INTO mpg2dm (id, name, geom) VALUES (1, 'alpha', ST_GeomFromText( 'MULTIPOLYGONM(((20 20 7, 21 20 6, 20 21 4, 20 20 7)), ((30 30 3, 31 30 7, 30 31 2, 30 30 3)))', 4326))success ]1aá`ß]‚==)q 2014-05-20T10:51:16.061Z2014-05-20T10:51:16.311Zspatialite_guiinsert into mpg3dzm (id, name) values (4, 'delta')success~‚ ==)o 2014-05-20T10:50:50.805Z2014-05-20T10:50:51.054Zspatialite_guiinsert into mpg3dz (id, name) values (4, 'delta')success~‚ ==)o 2014-05-20T10:50:35.158Z2014-05-20T10:50:35.392Zspatialite_guiinsert into mpg2dm (id, name) values (4, 'delta')success}‚ ==)m 2014-05-20T10:50:16.828Z2014-05-20T10:50:17.078Zspatialite_guiinsert into mpg2d (id, name) values (1, 'delta')successL‚ ==)‚ 2014-05-20T10:49:39.388Z2014-05-20T10:49:39.653Zspatialite_guiINSERT INTO mpg2d (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'MULTIPOLYGON(((31 31, 32 31, 31 32, 31 31)))', 4326))successK‚ ==)‚ 2014-05-20T10:49:18.889Z2014-05-20T10:49:19.123Zspatialite_guiINSERT INTO mpg2d (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'MULTIPOLYGON(((21 21, 22 21, 21 22, 21 21)))', 4326))success –1W–=‚ ==)k 2014-05-20T10:54:55.788Z2014-05-20T10:54:56.053Zspatialite_guiINSERT INTO gc2d (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'GEOMETRYCOLLECTION(POINT(9 2))', 4326))successV‚ ==)‚ 2014-05-20T10:54:22.934Z2014-05-20T10:54:23.215Zspatialite_guiINSERT INTO gc2d (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'GEOMETRYCOLLECTION(POINT(5 3), LINESTRING(10 10, 20 20))', 4326))successd‚ ==)‚9 2014-05-20T10:53:21.033Z2014-05-20T10:53:21.314Zspatialite_guiINSERT INTO gc2d (id, name, geom) VALUES (0, 'alpha', ST_GeomFromText( 'GEOMETRYCOLLECTION(POINT(1 3), POLYGON((21 21, 22 21, 21 22, 21 21)))', 4326))successc‚ ==)‚7 2014-05-20T10:52:55.870Z2014-05-20T10:52:56.151Zspatialite_guiINSERT INTO gc2d (id, name, geom) VALUES (1, 'alpha', ST_GeomFromText( 'GEOMETRYCOLLECTION(POINT(1 3), POLYGON((21 21, 22 21, 21 22, 21 21))', 4326))success j &`jr‚ ==)‚U 2014-05-20T10:56:54.597Z2014-05-20T10:56:54.863Zspatialite_guiINSERT INTO gc3dz (id, name, geom) VALUES (0, 'alpha', ST_GeomFromText( 'GEOMETRYCOLLECTIONZ(POINTZ(1 3 7), POLYGONZ((21 21 3, 22 21 5, 21 22 8, 21 21 3)))', 4326))successB‚ ==)u 2014-05-20T10:56:31.977Z2014-05-20T10:56:32.243Zspatialite_guiINSERT INTO gc2dm (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'GEOMETRYCOLLECTIONM(POINTM(9 2 7))', 4326))success`‚ ==)‚1 2014-05-20T10:56:13.257Z2014-05-20T10:56:13.523Zspatialite_guiINSERT INTO gc2dM (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'GEOMETRYCOLLECTIONM(POINTM(5 3 5), LINESTRINGM(10 10 6, 20 20 8))', 4326))successr‚ ==)‚U 2014-05-20T10:55:40.201Z2014-05-20T10:55:40.497Zspatialite_guiINSERT INTO gc2dm (id, name, geom) VALUES (0, 'alpha', ST_GeomFromText( 'GEOMETRYCOLLECTIONM(POINTM(1 3 7), POLYGONM((21 21 3, 22 21 5, 21 22 8, 21 21 3)))', 4326))success fVRfh‚ ==)‚A 2014-05-20T10:58:40.754Z2014-05-20T10:58:41.003Zspatialite_guiINSERT INTO gc3dzm (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'GEOMETRYCOLLECTIONZ(POINTZM(5 3 5 8), LINESTRINGZ(10 10 6 1, 20 20 8 3))', 4326))success‚‚ ==)‚q 2014-05-20T10:58:11.316Z2014-05-20T10:58:11.613Zspatialite_guiINSERT INTO gc3dzm (id, name, geom) VALUES (1, 'alpha', ST_GeomFromText( 'GEOMETRYCOLLECTIONZM(POINTZM(1 3 7 2), POLYGONZM((21 21 3 5, 22 21 5 4, 21 22 8 8, 21 21 3 5)))', 4326))successB‚ ==)u 2014-05-20T10:57:27.685Z2014-05-20T10:57:27.982Zspatialite_guiINSERT INTO gc3dz (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'GEOMETRYCOLLECTIONZ(POINTZ(9 2 7))', 4326))success`‚ ==)‚1 2014-05-20T10:57:14.097Z2014-05-20T10:57:14.378Zspatialite_guiINSERT INTO gc3dz (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'GEOMETRYCOLLECTIONZ(POINTZ(5 3 5), LINESTRINGZ(10 10 6, 20 20 8))', 4326))success 65HZ·6~‚==)o 2014-05-20T11:00:36.398Z2014-05-20T11:00:36.632Zspatialite_guiinsert into gc2dm (id, name) values (1, 'delta') success‚==)m_2014-05-20T11:00:28.987Z2014-05-20T11:00:29.096Zspatialite_guiinsert intogc2dm (id, name) values (1, 'delta') SQL error: near "intogc2dm": syntax errorj‚ ==)‚E 2014-05-20T10:59:39.519Z2014-05-20T10:59:39.769Zspatialite_guiINSERT INTO gc3dzm (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'GEOMETRYCOLLECTIONZM(POINTZM(5 3 5 8), LINESTRINGZM(10 10 6 1, 20 20 8 3))', 4326))successi‚ ==)‚C 2014-05-20T10:59:22.141Z2014-05-20T10:59:22.406Zspatialite_guiINSERT INTO gc3dzm (id, name, geom) VALUES (2, 'beta', ST_GeomFromText( 'GEOMETRYCOLLECTIONZ(POINTZM(5 3 5 8), LINESTRINGZM(10 10 6 1, 20 20 8 3))', 4326))successG‚ ==) 2014-05-20T10:58:59.583Z2014-05-20T10:58:59.864Zspatialite_guiINSERT INTO gc3dzm (id, name, geom) VALUES (3, 'gamma', ST_GeomFromText( 'GEOMETRYCOLLECTIONZM(POINTZM(9 2 7 2))', 4326))success 4ýÉ4‚% ==) 2014-05-20T21:14:06.238Z2014-05-20T21:14:06.266Zspatialite_guiSELECT AddGeometryColumn('test_pk', 'geom', 4326, 'GEOMETRY', 'XY')success2‚$ ==) c2014-05-20T21:13:57.018Z2014-05-20T21:13:57.036Zspatialite_guiSELECT AddGeometryKey('test_pk', 'geom', 4326, 'GEOMETRY', 'XY')SQL error: no such function: AddGeometryKey‚ ‚# ==)ƒ 2014-05-20T21:13:21.416Z2014-05-20T21:13:21.463Zspatialite_guiCREATE TABLE test_pk ( first_name TEXT NOT NULL, last_name TEXT NOT NULL, value1 DOUBLE NOT NULL, value2 DOUBLE NOT NULL, CONSTRAINT pk_test_pk PRIMARY KEY (last_name, first_name))successk‚"==)I 2014-05-20T11:44:06.256Z2014-05-20T11:44:07.758Zspatialite_guiSELECT UpdateLayerStatistics()success‚!==)q 2014-05-20T11:01:10.812Z2014-05-20T11:01:11.062Zspatialite_guiinsert into gc3dzm (id, name) values (4, 'delta') success~‚ ==)o 2014-05-20T11:00:52.092Z2014-05-20T11:00:52.341Zspatialite_guiinsert into gc3dz (id, name) values (1, 'delta') success æU·kуUUUUUUUUUUUUUUUUUUUUUUUUUU,& =ln2dgeom2014-05-20T11:44:06.433Z L% =pt3dzmgeom2014-05-20T11:44:06.386Z?ù™™™™™š@™™™™™š@ffffff@ ™™™™™šK$ =pt3dzgeom2014-05-20T11:44:06.355Z?ù™™™™™š?ó333333@ÌÌÌÌÌÍ@™™™™™šK# =pt2dmgeom2014-05-20T11:44:06.323Z?ñ™™™™™š?ñ™™™™™š?ù™™™™™š?ôÌÌÌÌÌÍJ" =pt2dgeom2014-05-20T11:44:06.290Z?ñ™™™™™š?ñ™™™™™š?ù™™™™™š@-! = gc2dgeom2014-05-20T11:43:39.927ZñÜÆ±‰u`K5 õá͸£xdP=( ^Ñ¢rD涃QY&óÁ^/9 =mpt2dgeom2014-05-20T11:44:07.324Z08 =mpt2dmgeom2014-05-20T11:44:07.248Z07 =mpt3dzgeom2014-05-20T11:44:07.198Z16 =mpt3dzmgeom2014-05-20T11:44:07.167Z15 =mln3dzmgeom2014-05-20T11:44:07.135Z04 =mln3dzgeom2014-05-20T11:44:07.077Z03 =mln2dmgeom2014-05-20T11:44:07.036Z/2 =mln2dgeom2014-05-20T11:44:06.992Z/1 =mpg2dgeom2014-05-20T11:44:06.951Z 00 =mpg2dmgeom2014-05-20T11:44:06.907Z 0/ =mpg3dzgeom2014-05-20T11:44:06.787Z 1. =mpg3dzmgeom2014-05-20T11:44:06.755Z .- =pg3dzmgeom2014-05-20T11:44:06.725Z-, =pg3dzgeom2014-05-20T11:44:06.653Z-+ =pg2dmgeom2014-05-20T11:44:06.623Z,* =pg2dgeom2014-05-20T11:44:06.588Z.) =ln3dzmgeom2014-05-20T11:44:06.527Z -( =ln3dzgeom2014-05-20T11:44:06.497Z -' =ln2dmgeom2014-05-20T11:44:06.466Z MãÄ£†gG) èʪ‰jI' ëË­lN. îͪnM pg2dgeomgeomÈ pg2dgeomname pg2dgeomid! ln3dzmgeomgeom ln3dzmgeomnameln3dzmgeomid ln3dzgeomgeomx ln3dzgeomnameln3dzgeomid ln2dmgeomgeomx ln2dmgeomname ln2dmgeomid ln2dgeomgeom` ln2dgeomnameln2dgeomid  pt3dzmgeomgeomL pt3dzmgeomname  pt3dzmgeomid  pt3dzgeomgeomD  pt3dzgeomname  pt3dzgeomid  pt2dmgeomgeomD pt2dmgeomnamept2dmgeomid pt2dgeomgeom< pt2dgeomname pt2dgeomid gc2dgeomgeom’ gc2dgeomnamegc2dgeomid Nâ ‚b@!ݽ›wX7õÔ±“sQ3ñÒ±ŽoN; mln3dzgeomname:mln3dzgeomid!9 mln2dmgeomgeom¢8 mln2dmgeomname7mln2dmgeomid 6 mln2dgeomgeom‚5 mln2dgeomname4 mln2dgeomid 3 mpg2dgeomgeomÊ2 mpg2dgeomname1mpg2dgeomid!0 mpg2dmgeomgeom / mpg2dmgeomname. mpg2dmgeomid!- mpg3dzgeomgeom , mpg3dzgeomname+ mpg3dzgeomid"* mpg3dzmgeomgeomJ ) mpg3dzmgeomname( mpg3dzmgeomid!' pg3dzmgeomgeomX& pg3dzmgeomname% pg3dzmgeomid $ pg3dzgeomgeom# pg3dzgeomname" pg3dzgeomid ! pg2dmgeomgeom  pg2dmgeomname pg2dmgeomid )¥;L`uˆ³ÆÛñл¥úã2F$\qˆ ²ÆÛî,AWk˜«ÀÖêgeo2dgeomgeom` geo2dgeomname_geo2dgeomid^geo2dmgeomgeom] geo2dmgeomname\geo2dmgeomid[geo3dzgeomgeomZ gc2dgeomid gc2dgeomnamegc2dgeomgeomgc2dmgeomidL gc2dmgeomnameMgc2dmgeomgeomNgc3dzgeomidO gc3dzgeomnamePgc3dzgeomgeomQgc3dzmgeomidR gc3dzmgeomnameSgc3dzmgeomgeomTgeo3dzgeomidX geo3dzgeomnameYgeo3dzmgeomidU geo3dzmgeomnameVgeo3dzmgeomgeomWln2dgeomid ln2dgeomnameln2dgeomgeomln2dmgeomid ln2dmgeomnameln2dmgeomgeomln3dzgeomid ln3dzgeomnameln3dzgeomgeomln3dzmgeomid ln3dzmgeomnameln3dzmgeomgeommln2dgeomid4 mln2dgeomname5mln2dgeomgeom6mln2dmgeomid7 mln2dmgeomname8 MMawŽ£ºÒåú$:Qe{’§¾Öéþ(>Ui–«ÂÚìmln3dzgeomid: mln3dzgeomname;mln3dzgeomgeom<mln3dzmgeomid= mln3dzmgeomname>mln3dzmgeomgeom?mpg2dgeomid1 mpg2dgeomname2mpg2dgeomgeom3mpg2dmgeomid. mpg2dmgeomname/mpg2dmgeomgeom0mpg3dzgeomid+ mpg3dzgeomname,mpg3dzgeomgeom-mpg3dzmgeomid( mpg3dzmgeomname)mpg3dzmgeomgeom*mpt2dgeomidI mpt2dgeomnameJmpt2dgeomgeomKmpt2dmgeomidF mpt2dmgeomnameGmpt2dmgeomgeomHmpt3dzgeomidC mpt3dzgeomnameDmpt3dzgeomgeomEmpt3dzmgeomid@ mpt3dzmgeomnameAmpt3dzmgeomgeomBpg2dgeomid pg2dgeomname Gݽ›wW5óÒ°‘pN0ïѱqQ/ï̬ŠfGXgeo3dzgeomid"W geo3dzmgeomgeomJ V geo3dzmgeomnameUgeo3dzmgeomid!T gc3dzmgeomgeomâS gc3dzmgeomnameR gc3dzmgeomid Q gc3dzgeomgeomºP gc3dzgeomnameOgc3dzgeomid N gc2dmgeomgeomºM gc2dmgeomnameLgc2dmgeomidK mpt2dgeomgeomZJ mpt2dgeomnameImpt2dgeomid H mpt2dmgeomgeomjG mpt2dmgeomnameF mpt2dmgeomid E mpt3dzgeomgeomjD mpt3dzgeomnameC mpt3dzgeomid!B mpt3dzmgeomgeomz A mpt3dzmgeomname@mpt3dzmgeomid"? mln3dzmgeomgeom > mln3dzmgeomname= mln3dzmgeomid!< mln3dzgeomgeom¢ ‘Рo< ا‘A test_pkgeom/@ =geo2dgeom2014-05-20T11:44:07.707Z 0? =geo2dmgeom2014-05-20T11:44:07.663Z 0> =geo3dzgeom2014-05-20T11:44:07.621Z 1= =geo3dzmgeom2014-05-20T11:44:07.529Z /< = gc3dzmgeom2014-05-20T11:44:07.485Z.; = gc3dzgeom2014-05-20T11:44:07.395Z.: = gc2dmgeom2014-05-20T11:44:07.355Z KK^s‰œ±ÇÛñ.CVk”©¿Óépg2dmgeomid pg2dmgeomname pg2dmgeomgeom!pg3dzgeomid" pg3dzgeomname#pg3dzgeomgeom$pg3dzmgeomid% pg3dzmgeomname&pg3dzmgeomgeom'pt2dgeomid pt2dgeomnamept2dgeomgeompt2dmgeomid pt2dmgeomnamept2dmgeomgeom pt3dzgeomid  pt3dzgeomname pt3dzgeomgeom pt3dzmgeomid  pt3dzmgeomnamept3dzmgeomgeom ùß¼|Y;ù ` geo2dgeomgeomÊ_ geo2dgeomname^ geo2dgeomid!] geo2dmgeomgeom \ geo2dmgeomname[geo2dmgeomid!Z geo3dzgeomgeom Y geo3dzgeomname ÈZÅR1Ègepsilonfive@@I@æ@"@@"@|i@"@þdeltafour@™™™™™š@D333333q,gammathree@ ffffff@>LÌÌÌÌÍæð?ð?|ð?ð?þtbetatwo@™™™™™š@4333333æ(@@*@@|(@@*@@*@@(@@þ#‚alphaone?ñ™™™™™š@$333333æð?ð?|ð?ð?ð?ð?þ ¶¶ÇóÖæfiveepsilonfourdeltathreegamma twobeta  onealpha xèùȃ/„O-†!triggerggi_test_pk_geomtest_pkCREATE TRIGGER "ggi_test_pk_geom" BEFORE INSERT ON "test_pk" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'test_pk.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('test_pk') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END.„NAindexsqlite_autoindex_test_pk_1test_pk­k„Mƒ+tabletest_pktest_pk¬CREATE TABLE test_pk ( first_name TEXT NOT NULL, last_name TEXT NOT NULL, value1 DOUBLE NOT NULL, value2 DOUBLE NOT NULL, "geom" GEOMETRY, CONSTRAINT pk_test_pk PRIMARY KEY (last_name, first_name)) „L775tableidx_geo2d_geom_parentidx_geo2d_geom_parentzCREATE TABLE "idx_geo2d_geom_parent"(nodeno INTEGER PRIMARY KEY, parentnode INTEGER)„K55)tableidx_geo2d_geom_rowididx_geo2d_geom_rowidyCREATE TABLE "idx_geo2d_geom_rowid"(rowid INTEGER PRIMARY KEY, nodeno INTEGER) "M"‚'„Q-„triggertmu_test_pk_geomtest_pkCREATE TRIGGER "tmu_test_pk_geom" AFTER UPDATE ON "test_pk" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_update = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('test_pk') AND Lower(f_geometry_column) = Lower('geom'); ENDƒ/„P-†!triggerggu_test_pk_geomtest_pkCREATE TRIGGER "ggu_test_pk_geom" BEFORE UPDATE ON "test_pk" FOR EACH ROW BEGIN SELECT RAISE(ROLLBACK, 'test_pk.geom violates Geometry constraint [geom-type or SRID not allowed]') WHERE (SELECT geometry_type FROM geometry_columns WHERE Lower(f_table_name) = Lower('test_pk') AND Lower(f_geometry_column) = Lower('geom') AND GeometryConstraints(NEW."geom", geometry_type, srid) = 1) IS NULL; END ªÕª‚'„S-„triggertmd_test_pk_geomtest_pkCREATE TRIGGER "tmd_test_pk_geom" AFTER DELETE ON "test_pk" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_delete = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('test_pk') AND Lower(f_geometry_column) = Lower('geom'); END‚'„R-„triggertmi_test_pk_geomtest_pkCREATE TRIGGER "tmi_test_pk_geom" AFTER INSERT ON "test_pk" FOR EACH ROW BEGIN UPDATE geometry_columns_time SET last_insert = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE Lower(f_table_name) = Lower('test_pk') AND Lower(f_geometry_column) = Lower('geom'); END ª+W€ªR‚) ==)‚ 2014-05-20T21:17:20.134Z2014-05-20T21:17:20.179Zspatialite_guiINSERT INTO test_pk (first_name, last_name, value1, value2, geom) SELECT 'delta', 'four', 4.4, 40.40, geom FROM ln2d where rowid = 3successS‚( ==)‚ 2014-05-20T21:16:54.988Z2014-05-20T21:16:55.026Zspatialite_guiINSERT INTO test_pk (first_name, last_name, value1, value2, geom) SELECT 'gamma', 'three', 3.3, 30.30, geom FROM ln2d where rowid = 2successP‚' ==)‚ 2014-05-20T21:16:16.319Z2014-05-20T21:16:16.348Zspatialite_guiINSERT INTO test_pk (first_name, last_name, value1, value2, geom) SELECT 'beta', 'two', 2.2, 20.20, geom FROM pg2d where rowid = 2successQ‚& ==)‚ 2014-05-20T21:15:55.591Z2014-05-20T21:15:55.634Zspatialite_guiINSERT INTO test_pk (first_name, last_name, value1, value2, geom) SELECT 'alpha', 'one', 1.1, 10.10, geom FROM pg2d where rowid = 1success ''U‚* ==)‚ 2014-05-20T21:17:58.492Z2014-05-20T21:17:58.521Zspatialite_guiINSERT INTO test_pk (first_name, last_name, value1, value2, geom) SELECT 'epsilon', 'five', 5.5, 50.50, geom FROM mpt2d where rowid = 2successlibspatialite-4.3.0a/test/sql_stmt_mathsql_tests/0000775000175000017500000000000012573314330017311 500000000000000libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/acos2.testcase0000664000175000017500000000021512544707704022004 00000000000000acos(2) :memory: #use in-memory database SELECT acos(2); 1 # rows (not including the header row) 1 # columns acos(2) # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/signtext.testcase0000664000175000017500000000022512544707704022643 00000000000000sign-text :memory: SELECT sign("text"); # the SQL to run 1 # rows 1 # column sign("text") # this is the header row (NULL) # this is really the resultlibspatialite-4.3.0a/test/sql_stmt_mathsql_tests/stddev.testcase0000664000175000017500000000071112544707704022267 00000000000000stddev sql_stmt_tests/testdb1.sqlite SELECT stddev_pop(a), stddev_pop(b), stddev_pop(nulls), stddev_pop(blobs), stddev_samp(a), stddev_samp(b), stddev_samp(blobs), stddev_samp(nulls) from data1; 1 # rows (not including the header row) 8 # columns stddev_pop(a) stddev_pop(b) stddev_pop(nulls) stddev_pop(blobs) stddev_samp(a) stddev_samp(b) stddev_samp(blobs) stddev_samp(nulls) 10.2211654:8 12.252709:8 (NULL) (NULL) 11.1967257:8 13.422171:8 (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/ceilfloat2.testcase0000664000175000017500000000021712544707704023023 00000000000000ceil-float2 :memory: SELECT ceil(3.1); # the SQL to run 1 # rows 1 # column ceil(3.1) # this is the header row 4.0 # this is really the result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/expneg.testcase0000664000175000017500000000026612544707704022271 00000000000000exp-neg # test of exp() function, with negative :memory: #use in-memory database SELECT exp(-1.0); 1 # rows (not including the header row) 1 # columns exp(-1.0)# header 0.36787944:8 libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/atan23.testcase0000664000175000017500000000025012544707704022064 00000000000000atan2 - first arg NULL :memory: # use in-memory database SELECT atan2(NULL, 0.0); 1 # rows (not including the header row) 1 # columns atan2(NULL, 0.0) # header (NULL) libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/rad-text.testcase0000664000175000017500000000027012544707704022526 00000000000000radians(text) # test of radians() :memory: #use in-memory database SELECT radians("text"); 1 # rows (not including the header row) 1 # columns radians("text") # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/cot00.testcase0000664000175000017500000000022012544707704021716 00000000000000cot(0.0) :memory: #use in-memory database SELECT cot(0.0); 1 # rows (not including the header row) 1 # columns cot(0.0) # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/logn2-text4.testcase0000664000175000017500000000025212544707704023065 00000000000000logn(text, double) :memory: #use in-memory database SELECT log(1.0, "text"); 1 # rows (not including the header row) 1 # columns log(1.0, "text") # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/acos.testcase0000664000175000017500000000021212544707704021717 00000000000000acos(1) :memory: #use in-memory database SELECT acos(1); 1 # rows (not including the header row) 1 # columns acos(1) # header 0.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/atan26.testcase0000664000175000017500000000025512544707704022074 00000000000000atan2 - second arg TEXT :memory: # use in-memory database SELECT atan2(0.0, 'test'); 1 # rows (not including the header row) 1 # columns atan2(0.0, 'test') # header (NULL) libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/Makefile.in0000664000175000017500000003431512573313637021315 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_mathsql_tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = acos10.testcase \ acos20.testcase \ acos2.testcase \ acos.testcase \ acos-text.testcase \ asin10.testcase \ asin1.testcase \ asin20.testcase \ asin2.testcase \ asin-text.testcase \ atan00.testcase \ atan0.testcase \ atan-text.testcase \ atan21.testcase \ atan22.testcase \ atan23.testcase \ atan24.testcase \ atan25.testcase \ atan26.testcase \ atan27.testcase \ atan28.testcase \ ceilfloat2.testcase \ ceilfloat.testcase \ ceil-int.testcase \ ceilnull.testcase \ cos00.testcase \ cos0.testcase \ cos-text.testcase \ cot00.testcase \ cot0.testcase \ cotpi2.testcase \ cot-text.testcase \ degrees45.testcase \ degrees.testcase \ degreestext.testcase \ exp00.testcase \ exp0.testcase \ exp10.testcase \ exp1.testcase \ expneg.testcase \ exptext.testcase \ floor32.testcase \ floorint.testcase \ floornull.testcase \ log10-0.0.testcase \ log10-100.0.testcase \ log10-100.testcase \ log10-text.testcase \ log2-0.0.testcase \ log2-0.testcase \ log2-4.0.testcase \ log2-4.testcase \ log2-text.testcase \ logn00.testcase \ logn0.testcase \ logn10.testcase \ logn1.testcase \ logn2-01.testcase \ logn2-02.testcase \ logn2-2.2.testcase \ logn2-4.2int.testcase \ logn2-4.2.testcase \ logn2-text2.testcase \ logn2-text3.testcase \ logn2-text4.testcase \ logn2-text.testcase \ logn-text.testcase \ pi.testcase \ pow00-1.testcase \ pow00-2.testcase \ pow00double.testcase \ pow00.testcase \ pow-badarg1.testcase \ pow-badarg2.testcase \ pow-edom.testcase \ pow-fp.testcase \ rad0.testcase \ radpi.testcase \ rad-text.testcase \ sign00.testcase \ sign01.testcase \ sign0.testcase \ sign10.testcase \ signeg2int.testcase \ signeg2.testcase \ signeg.testcase \ signtext.testcase \ sin00.testcase \ sin0.testcase \ sin-pi2.testcase \ sinpi2.testcase \ sin-pi.testcase \ sinpi.testcase \ sin-text.testcase \ sqrt00.testcase \ sqrt0.testcase \ sqrt-10.testcase \ sqrt-1.testcase \ sqrt-640.testcase \ sqrt-64.testcase \ sqrt-text.testcase \ stddev.testcase \ tan00.testcase \ tan0.testcase \ tanpi4.testcase \ tan-pi.testcase \ tanpi.testcase \ tan-text.testcase \ variance.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_mathsql_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_mathsql_tests/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/atan00.testcase0000664000175000017500000000022112544707704022055 00000000000000atan(0.0) :memory: # use in-memory database SELECT atan(0.0); 1 # rows (not including the header row) 1 # columns atan(0.0) # header 0.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/degrees.testcase0000664000175000017500000000022312544707704022412 00000000000000degrees(0) :memory: #use in-memory database SELECT degrees(0); 1 # rows (not including the header row) 1 # columns degrees(0) # header 0.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/pow00double.testcase0000664000175000017500000000026612544707704023143 00000000000000pow(0.0, 0.0) # test of pow() function :memory: #use in-memory database SELECT pow(0.0, 0.0); 1 # rows (not including the header row) 1 # columns pow(0.0, 0.0) # header 1.0 # result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/log10-100.testcase0000664000175000017500000000022312544707704022214 00000000000000log10(100) :memory: #use in-memory database SELECT log10(100); 1 # rows (not including the header row) 1 # columns log10(100) # header 2.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/logn2-text.testcase0000664000175000017500000000025212544707704023001 00000000000000logn(text, double) :memory: #use in-memory database SELECT log("text", 0.0); 1 # rows (not including the header row) 1 # columns log("text", 0.0) # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/sqrt-640.testcase0000664000175000017500000000021712544707704022277 00000000000000sqrt(64.0) :memory: SELECT sqrt(64.0); # the SQL to run 1 # rows 1 # column sqrt(64.0) # this is the header row 8.0 # this is really the resultlibspatialite-4.3.0a/test/sql_stmt_mathsql_tests/atan25.testcase0000664000175000017500000000026712544707704022076 00000000000000atan2 - second arg BLOB :memory: # use in-memory database SELECT atan2(0.0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns atan2(0.0, zeroblob(4)) # header (NULL) libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/sinpi.testcase0000664000175000017500000000022612544707704022121 00000000000000sin(pi) :memory: #use in-memory database SELECT 1 + sin(pi()); 1 # rows (not including the header row) 1 # columns 1 + sin(pi()) # header 1.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/sqrt-10.testcase0000664000175000017500000000022212544707704022202 00000000000000sqrt(-1.0) :memory: SELECT sqrt(-1.0); # the SQL to run 1 # rows 1 # column sqrt(-1.0) # this is the header row (NULL) # this is really the resultlibspatialite-4.3.0a/test/sql_stmt_mathsql_tests/pow-badarg1.testcase0000664000175000017500000000032512544707704023103 00000000000000pow(0.0, "test") # test of pow() function with bad arguments :memory: #use in-memory database SELECT pow(0.0, "test"); 1 # rows (not including the header row) 1 # columns pow(0.0, "test") # header (NULL) # result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/logn10.testcase0000664000175000017500000000021612544707704022076 00000000000000logn(1.0) :memory: #use in-memory database SELECT log(1.0); 1 # rows (not including the header row) 1 # columns log(1.0) # header 0.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/asin1.testcase0000664000175000017500000000023012544707704022005 00000000000000asin(1) :memory: #use in-memory database SELECT asin(1); 1 # rows (not including the header row) 1 # columns asin(1) # header 1.570796326794:14 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/pow00-2.testcase0000664000175000017500000000026012544707704022101 00000000000000pow(0, 0.0) # test of pow() function :memory: #use in-memory database SELECT pow(0, 0.0); 1 # rows (not including the header row) 1 # columns pow(0, 0.0) # header 1.0 # result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/atan0.testcase0000664000175000017500000000021212544707704021775 00000000000000atan(0) :memory: #use in-memory database SELECT atan(0); 1 # rows (not including the header row) 1 # columns atan(0) # header 0.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/sqrt00.testcase0000664000175000017500000000020612544707704022126 00000000000000sqrt(0) :memory: SELECT sqrt(0); # the SQL to run 1 # rows 1 # column sqrt(0) # this is the header row 0.0 # this is really the resultlibspatialite-4.3.0a/test/sql_stmt_mathsql_tests/sqrt0.testcase0000664000175000017500000000022612544707704022050 00000000000000sqrt(text) :memory: SELECT sqrt("text"); # the SQL to run 1 # rows 1 # column sqrt("text") # this is the header row (NULL) # this is really the resultlibspatialite-4.3.0a/test/sql_stmt_mathsql_tests/signeg.testcase0000664000175000017500000000021612544707704022252 00000000000000sign-neg :memory: SELECT sign(-1.0); # the SQL to run 1 # rows 1 # column sign(-1.0) # this is the header row -1.0 # this is really the resultlibspatialite-4.3.0a/test/sql_stmt_mathsql_tests/logn2-4.2int.testcase0000664000175000017500000000022112544707704023027 00000000000000logn(4, 2) :memory: #use in-memory database SELECT log(4, 2); 1 # rows (not including the header row) 1 # columns log(4, 2) # header 2.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/cot0.testcase0000664000175000017500000000021212544707704021637 00000000000000cot(0) :memory: #use in-memory database SELECT cot(0); 1 # rows (not including the header row) 1 # columns cot(0) # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/tanpi4.testcase0000664000175000017500000000022412544707704022174 00000000000000tan(pi/4) :memory: #use in-memory database SELECT tan(pi()/4); 1 # rows (not including the header row) 1 # columns tan(pi()/4) # header 1.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/sign10.testcase0000664000175000017500000000021112544707704022072 00000000000000sign10 :memory: SELECT sign(1.0); # the SQL to run 1 # rows 1 # column sign(1.0) # this is the header row 1.0 # this is really the resultlibspatialite-4.3.0a/test/sql_stmt_mathsql_tests/log10-text.testcase0000664000175000017500000000023512544707704022703 00000000000000log10(text) :memory: #use in-memory database SELECT log10("text"); 1 # rows (not including the header row) 1 # columns log10("text") # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/log2-0.0.testcase0000664000175000017500000000022312544707704022132 00000000000000log2(0.0) :memory: #use in-memory database SELECT log2(0.0); 1 # rows (not including the header row) 1 # columns log2(0.0) # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/atan27.testcase0000664000175000017500000000025512544707704022075 00000000000000atan2 - second arg DOUBLE - valid :memory: # use in-memory database SELECT atan2(0.0, 0.0); 1 # rows (not including the header row) 1 # columns atan2(0.0, 0.0) # header 0.0 libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/sqrt-text.testcase0000664000175000017500000000022612544707704022752 00000000000000sqrt(text) :memory: SELECT sqrt("text"); # the SQL to run 1 # rows 1 # column sqrt("text") # this is the header row (NULL) # this is really the resultlibspatialite-4.3.0a/test/sql_stmt_mathsql_tests/pi.testcase0000664000175000017500000000021712544707704021407 00000000000000pi :memory: # use in-memory database SELECT pi(); 1 # rows (not including the header row) 1 # columns pi() # header 3.141592653589:14 # result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/rad0.testcase0000664000175000017500000000025012544707704021622 00000000000000radians(0) # test of radians() :memory: #use in-memory database SELECT radians(0); 1 # rows (not including the header row) 1 # columns radians(0) # header 0.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/exptext.testcase0000664000175000017500000000032312544707704022476 00000000000000exp-text # test of exp() function, with text argument :memory: #use in-memory database SELECT exp("hello world"); 1 # rows (not including the header row) 1 # columns exp("hello world") # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/logn2-02.testcase0000664000175000017500000000024012544707704022233 00000000000000logn(1.0, 1.0) :memory: #use in-memory database SELECT log(1.0, 1.0); 1 # rows (not including the header row) 1 # columns log(1.0, 1.0) # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/log2-text.testcase0000664000175000017500000000023212544707704022621 00000000000000log2(text) :memory: #use in-memory database SELECT log2("text"); 1 # rows (not including the header row) 1 # columns log2("text") # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/logn2-2.2.testcase0000664000175000017500000000023512544707704022317 00000000000000logn(2.0, 2.0) :memory: #use in-memory database SELECT log(2.0, 2.0); 1 # rows (not including the header row) 1 # columns log(2.0, 2.0) # header 1.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/sin-text.testcase0000664000175000017500000000022712544707704022553 00000000000000sin(text) :memory: #use in-memory database SELECT sin("text"); 1 # rows (not including the header row) 1 # columns sin("text") # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/floorint.testcase0000664000175000017500000000030212544707704022626 00000000000000floor(integer) # integer input - this is just the name remember :memory: SELECT floor(3); # the SQL to run 1 # rows 1 # columns floor(3) # this is the header row 3.0 # this is really the result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/sin0.testcase0000664000175000017500000000020712544707704021647 00000000000000sin(0) :memory: #use in-memory database SELECT sin(0); 1 # rows (not including the header row) 1 # columns sin(0) # header 0.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/sign0.testcase0000664000175000017500000000020412544707704022013 00000000000000sign0 :memory: SELECT sign(0); # the SQL to run 1 # rows 1 # column sign(0) # this is the header row 0.0 # this is really the resultlibspatialite-4.3.0a/test/sql_stmt_mathsql_tests/tanpi.testcase0000664000175000017500000000022612544707704022112 00000000000000tan(pi) :memory: #use in-memory database SELECT 1 + tan(pi()); 1 # rows (not including the header row) 1 # columns 1 + tan(pi()) # header 1.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/log2-4.0.testcase0000664000175000017500000000022012544707704022133 00000000000000log2(4.0) :memory: #use in-memory database SELECT log2(4.0); 1 # rows (not including the header row) 1 # columns log2(4.0) # header 2.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/sqrt-64.testcase0000664000175000017500000000021112544707704022211 00000000000000sqrt(64) :memory: SELECT sqrt(64); # the SQL to run 1 # rows 1 # column sqrt(64) # this is the header row 8.0 # this is really the resultlibspatialite-4.3.0a/test/sql_stmt_mathsql_tests/floornull.testcase0000664000175000017500000000031112544707704023006 00000000000000floor(null) # text input, expecting null output :memory: SELECT floor("some text"); # the SQL to run 1 # rows 1 # columns floor("some text") # this is the header row (NULL) # this is really the result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/logn2-text2.testcase0000664000175000017500000000024612544707704023066 00000000000000logn(text, double) :memory: #use in-memory database SELECT log("text", 0); 1 # rows (not including the header row) 1 # columns log("text", 0) # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/ceilfloat.testcase0000664000175000017500000000021612544707704022740 00000000000000ceil-float :memory: SELECT ceil(3.0); # the SQL to run 1 # rows 1 # column ceil(3.0) # this is the header row 3.0 # this is really the result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/degreestext.testcase0000664000175000017500000000024012544707704023316 00000000000000degrees-text :memory: #use in-memory database SELECT degrees("foo"); 1 # rows (not including the header row) 1 # columns degrees("foo") # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/acos10.testcase0000664000175000017500000000022012544707704022057 00000000000000acos(1.0) :memory: #use in-memory database SELECT acos(1.0); 1 # rows (not including the header row) 1 # columns acos(1.0) # header 0.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/logn0.testcase0000664000175000017500000000021212544707704022011 00000000000000log(0) :memory: #use in-memory database SELECT log(0); 1 # rows (not including the header row) 1 # columns log(0) # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/logn00.testcase0000664000175000017500000000022012544707704022070 00000000000000log(0.0) :memory: #use in-memory database SELECT log(0.0); 1 # rows (not including the header row) 1 # columns log(0.0) # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/atan24.testcase0000664000175000017500000000025112544707704022066 00000000000000atan2 - second arg NULL :memory: # use in-memory database SELECT atan2(0.0, NULL); 1 # rows (not including the header row) 1 # columns atan2(0.0, NULL) # header (NULL) libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/log2-4.testcase0000664000175000017500000000021212544707704021776 00000000000000log2(4) :memory: #use in-memory database SELECT log2(4); 1 # rows (not including the header row) 1 # columns log2(4) # header 2.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/atan-text.testcase0000664000175000017500000000022312544707704022701 00000000000000atan-text :memory: # use in-memory database SELECT atan('test'); 1 # rows (not including the header row) 1 # columns atan('test') # header (NULL) libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/sin-pi.testcase0000664000175000017500000000023112544707704022172 00000000000000sin(-pi) :memory: #use in-memory database SELECT 1 + sin(-pi()); 1 # rows (not including the header row) 1 # columns 1 + sin(-pi()) # header 1.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/cotpi2.testcase0000664000175000017500000000023712544707704022201 00000000000000cot(pi2) :memory: #use in-memory database SELECT (1 + cot(pi()/2)); 1 # rows (not including the header row) 1 # columns (1 + cot(pi()/2)) # header 1.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/pow00-1.testcase0000664000175000017500000000026012544707704022100 00000000000000pow(0.0, 0) # test of pow() function :memory: #use in-memory database SELECT pow(0.0, 0); 1 # rows (not including the header row) 1 # columns pow(0.0, 0) # header 1.0 # result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/exp10.testcase0000664000175000017500000000035312544707704021735 00000000000000exp(1.0) # test of exp() function, with argument 1.0 :memory: #use in-memory database SELECT exp(1.0); 1 # rows (not including the header row) 1 # columns exp(1.0)# header 2.71828182845905:8#result, with limited precision comparision libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/asin2.testcase0000664000175000017500000000021512544707704022011 00000000000000asin(2) :memory: #use in-memory database SELECT asin(2); 1 # rows (not including the header row) 1 # columns asin(2) # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/cos0.testcase0000664000175000017500000000020712544707704021642 00000000000000cos(0) :memory: #use in-memory database SELECT cos(0); 1 # rows (not including the header row) 1 # columns cos(0) # header 1.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/log10-100.0.testcase0000664000175000017500000000023112544707704022351 00000000000000log10(100.0) :memory: #use in-memory database SELECT log10(100.0); 1 # rows (not including the header row) 1 # columns log10(100.0) # header 2.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/sign00.testcase0000664000175000017500000000021112544707704022071 00000000000000sign00 :memory: SELECT sign(0.0); # the SQL to run 1 # rows 1 # column sign(0.0) # this is the header row 0.0 # this is really the resultlibspatialite-4.3.0a/test/sql_stmt_mathsql_tests/logn1.testcase0000664000175000017500000000021012544707704022010 00000000000000logn(1) :memory: #use in-memory database SELECT log(1); 1 # rows (not including the header row) 1 # columns log(1) # header 0.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/floor32.testcase0000664000175000017500000000027112544707704022265 00000000000000floor(3.2) # you can use the SQL if you're not feeling imaginative. :memory: SELECT floor(3.2); 1 # rows 1 # columns floor(3.2) # this is the header row 3.0 # this is really the result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/cos-text.testcase0000664000175000017500000000022612544707704022545 00000000000000cos-text :memory: #use in-memory database SELECT cos('test'); 1 # rows (not including the header row) 1 # columns cos('test') # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/logn2-4.2.testcase0000664000175000017500000000023512544707704022321 00000000000000logn(4.0, 2.0) :memory: #use in-memory database SELECT log(4.0, 2.0); 1 # rows (not including the header row) 1 # columns log(4.0, 2.0) # header 2.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/acos-text.testcase0000664000175000017500000000027412544707704022711 00000000000000acos-text # check of text argument to acos() :memory: #use in-memory database SELECT acos("test"); 1 # rows (not including the header row) 1 # columns acos("test") # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/signeg2.testcase0000664000175000017500000000021712544707704022335 00000000000000sign-neg2 :memory: SELECT sign(-2.0); # the SQL to run 1 # rows 1 # column sign(-2.0) # this is the header row -1.0 # this is really the resultlibspatialite-4.3.0a/test/sql_stmt_mathsql_tests/logn2-01.testcase0000664000175000017500000000023512544707704022236 00000000000000logn(-0.1, 2) :memory: #use in-memory database SELECT log(-0.1, 2); 1 # rows (not including the header row) 1 # columns log(-0.1, 2) # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/sin-pi2.testcase0000664000175000017500000000023012544707704022253 00000000000000sin(-pi/2) :memory: #use in-memory database SELECT sin(-pi()/2); 1 # rows (not including the header row) 1 # columns sin(-pi()/2) # header -1.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/exp00.testcase0000664000175000017500000000030512544707704021731 00000000000000exp(0.0) # test of exp() function, with argument 0 (i.e. a float) :memory: #use in-memory database SELECT exp(0.0); 1 # rows (not including the header row) 1 # columns exp(0.0)# header 1.0#result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/tan-pi.testcase0000664000175000017500000000023112544707704022163 00000000000000tan(-pi) :memory: #use in-memory database SELECT 1 + tan(-pi()); 1 # rows (not including the header row) 1 # columns 1 + tan(-pi()) # header 1.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/exp1.testcase0000664000175000017500000000034312544707704021654 00000000000000exp(1) # test of exp() function, with argument 1 :memory: #use in-memory database SELECT exp(1); 1 # rows (not including the header row) 1 # columns exp(1)# header 2.71828182845905:8#result, with limited precision comparision libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/log2-0.testcase0000664000175000017500000000021512544707704021775 00000000000000log2(0) :memory: #use in-memory database SELECT log2(0); 1 # rows (not including the header row) 1 # columns log2(0) # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/acos20.testcase0000664000175000017500000000022312544707704022063 00000000000000acos(2.0) :memory: #use in-memory database SELECT acos(2.0); 1 # rows (not including the header row) 1 # columns acos(2.0) # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/cot-text.testcase0000664000175000017500000000022712544707704022547 00000000000000cot(text) :memory: #use in-memory database SELECT cot("text"); 1 # rows (not including the header row) 1 # columns cot("text") # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/asin10.testcase0000664000175000017500000000023612544707704022073 00000000000000asin(1.0) :memory: #use in-memory database SELECT asin(1.0); 1 # rows (not including the header row) 1 # columns asin(1.0) # header 1.570796326794:14 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/asin-text.testcase0000664000175000017500000000027412544707704022716 00000000000000asin-text # check of text argument to asin() :memory: #use in-memory database SELECT asin("test"); 1 # rows (not including the header row) 1 # columns asin("test") # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/exp0.testcase0000664000175000017500000000026012544707704021651 00000000000000exp(0) # test of exp() function, with argument 0 :memory: #use in-memory database SELECT exp(0); 1 # rows (not including the header row) 1 # columns exp(0)# header 1.0#result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/radpi.testcase0000664000175000017500000000027012544707704022075 00000000000000radians(pi()) # test of radians() :memory: #use in-memory database SELECT radians(180.0); 1 # rows (not including the header row) 1 # columns radians(180.0) # header 3.1415:6 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/logn-text.testcase0000664000175000017500000000023012544707704022713 00000000000000logn(text) :memory: #use in-memory database SELECT log("text"); 1 # rows (not including the header row) 1 # columns log("text") # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/logn2-text3.testcase0000664000175000017500000000024612544707704023067 00000000000000logn(text, double) :memory: #use in-memory database SELECT log(1, "text"); 1 # rows (not including the header row) 1 # columns log(1, "text") # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/pow-edom.testcase0000664000175000017500000000027412544707704022531 00000000000000pow(-2.1, 3.6) # test of pow() function :memory: #use in-memory database SELECT pow(-2.1, 3.6); 1 # rows (not including the header row) 1 # columns pow(-2.1, 3.6) # header (NULL) # result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/Makefile.am0000664000175000017500000000421312544707704021276 00000000000000 EXTRA_DIST = acos10.testcase \ acos20.testcase \ acos2.testcase \ acos.testcase \ acos-text.testcase \ asin10.testcase \ asin1.testcase \ asin20.testcase \ asin2.testcase \ asin-text.testcase \ atan00.testcase \ atan0.testcase \ atan-text.testcase \ atan21.testcase \ atan22.testcase \ atan23.testcase \ atan24.testcase \ atan25.testcase \ atan26.testcase \ atan27.testcase \ atan28.testcase \ ceilfloat2.testcase \ ceilfloat.testcase \ ceil-int.testcase \ ceilnull.testcase \ cos00.testcase \ cos0.testcase \ cos-text.testcase \ cot00.testcase \ cot0.testcase \ cotpi2.testcase \ cot-text.testcase \ degrees45.testcase \ degrees.testcase \ degreestext.testcase \ exp00.testcase \ exp0.testcase \ exp10.testcase \ exp1.testcase \ expneg.testcase \ exptext.testcase \ floor32.testcase \ floorint.testcase \ floornull.testcase \ log10-0.0.testcase \ log10-100.0.testcase \ log10-100.testcase \ log10-text.testcase \ log2-0.0.testcase \ log2-0.testcase \ log2-4.0.testcase \ log2-4.testcase \ log2-text.testcase \ logn00.testcase \ logn0.testcase \ logn10.testcase \ logn1.testcase \ logn2-01.testcase \ logn2-02.testcase \ logn2-2.2.testcase \ logn2-4.2int.testcase \ logn2-4.2.testcase \ logn2-text2.testcase \ logn2-text3.testcase \ logn2-text4.testcase \ logn2-text.testcase \ logn-text.testcase \ pi.testcase \ pow00-1.testcase \ pow00-2.testcase \ pow00double.testcase \ pow00.testcase \ pow-badarg1.testcase \ pow-badarg2.testcase \ pow-edom.testcase \ pow-fp.testcase \ rad0.testcase \ radpi.testcase \ rad-text.testcase \ sign00.testcase \ sign01.testcase \ sign0.testcase \ sign10.testcase \ signeg2int.testcase \ signeg2.testcase \ signeg.testcase \ signtext.testcase \ sin00.testcase \ sin0.testcase \ sin-pi2.testcase \ sinpi2.testcase \ sin-pi.testcase \ sinpi.testcase \ sin-text.testcase \ sqrt00.testcase \ sqrt0.testcase \ sqrt-10.testcase \ sqrt-1.testcase \ sqrt-640.testcase \ sqrt-64.testcase \ sqrt-text.testcase \ stddev.testcase \ tan00.testcase \ tan0.testcase \ tanpi4.testcase \ tan-pi.testcase \ tanpi.testcase \ tan-text.testcase \ variance.testcase libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/sqrt-1.testcase0000664000175000017500000000021412544707704022123 00000000000000sqrt(-1) :memory: SELECT sqrt(-1); # the SQL to run 1 # rows 1 # column sqrt(-1) # this is the header row (NULL) # this is really the resultlibspatialite-4.3.0a/test/sql_stmt_mathsql_tests/pow00.testcase0000664000175000017500000000025212544707704021743 00000000000000pow(0, 0) # test of pow() function :memory: #use in-memory database SELECT pow(0, 0); 1 # rows (not including the header row) 1 # columns pow(0, 0) # header 1.0 # result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/ceilnull.testcase0000664000175000017500000000030612544707704022605 00000000000000ceil(null) # text input, expecting null output :memory: SELECT ceil("some text"); # the SQL to run 1 # rows 1 # columns ceil("some text") # this is the header row (NULL) # this is really the result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/pow-badarg2.testcase0000664000175000017500000000031712544707704023105 00000000000000pow("test", 1) # test of pow() function with bad arguments :memory: #use in-memory database SELECT pow("test", 1); 1 # rows (not including the header row) 1 # columns pow("test", 1) # header (NULL) # result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/sin00.testcase0000664000175000017500000000021512544707704021726 00000000000000sin(0.0) :memory: #use in-memory database SELECT sin(0.0); 1 # rows (not including the header row) 1 # columns sin(0.0) # header 0.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/atan28.testcase0000664000175000017500000000023412544707704022073 00000000000000atan2 - INT args - valid :memory: # use in-memory database SELECT atan2(0, 0); 1 # rows (not including the header row) 1 # columns atan2(0, 0) # header 0.0 libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/pow-fp.testcase0000664000175000017500000000033012544707704022203 00000000000000pow(0, -3.6) # test of pow() function :memory: #use in-memory database SELECT pow(0, -3.6); 1 # rows (not including the header row) 1 # columns pow(0, -3.6) # header (NULL) # result - its basically division by zero. libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/tan00.testcase0000664000175000017500000000021512544707704021717 00000000000000tan(0.0) :memory: #use in-memory database SELECT tan(0.0); 1 # rows (not including the header row) 1 # columns tan(0.0) # header 0.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/variance.testcase0000664000175000017500000000066612544707704022577 00000000000000variance sql_stmt_tests/testdb1.sqlite SELECT var_pop(a), var_pop(b), var_pop(nulls), var_pop(blobs), var_samp(a), var_samp(b), var_samp(blobs), var_samp(nulls) from data1; 1 # rows (not including the header row) 8 # columns var_pop(a) var_pop(b) var_pop(nulls) var_pop(blobs) var_samp(a) var_samp(b) var_samp(blobs) var_samp(nulls) 104.472222222222:10 150.12888888888:10 (NULL) (NULL) 125.36666666666:10 180.15466666666:10 (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/sign01.testcase0000664000175000017500000000021112544707704022072 00000000000000sign01 :memory: SELECT sign(0.1); # the SQL to run 1 # rows 1 # column sign(0.1) # this is the header row 1.0 # this is really the resultlibspatialite-4.3.0a/test/sql_stmt_mathsql_tests/atan21.testcase0000664000175000017500000000025412544707704022066 00000000000000atan2 - first arg TEXT :memory: # use in-memory database SELECT atan2('test', 0.0); 1 # rows (not including the header row) 1 # columns atan2('test', 0.0) # header (NULL) libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/asin20.testcase0000664000175000017500000000022312544707704022070 00000000000000asin(2.0) :memory: #use in-memory database SELECT asin(2.0); 1 # rows (not including the header row) 1 # columns asin(2.0) # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/tan-text.testcase0000664000175000017500000000022712544707704022544 00000000000000tan(text) :memory: #use in-memory database SELECT tan("text"); 1 # rows (not including the header row) 1 # columns tan("text") # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/sinpi2.testcase0000664000175000017500000000022412544707704022201 00000000000000sin(pi/2) :memory: #use in-memory database SELECT sin(pi()/2); 1 # rows (not including the header row) 1 # columns sin(pi()/2) # header 1.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/log10-0.0.testcase0000664000175000017500000000022612544707704022214 00000000000000log10(0.0) :memory: #use in-memory database SELECT log10(0.0); 1 # rows (not including the header row) 1 # columns log10(0.0) # header (NULL) #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/cos00.testcase0000664000175000017500000000021512544707704021721 00000000000000cos(0.0) :memory: #use in-memory database SELECT cos(0.0); 1 # rows (not including the header row) 1 # columns cos(0.0) # header 1.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/signeg2int.testcase0000664000175000017500000000021612544707704023047 00000000000000sign-neg2int :memory: SELECT sign(-2); # the SQL to run 1 # rows 1 # column sign(-2) # this is the header row -1.0 # this is really the resultlibspatialite-4.3.0a/test/sql_stmt_mathsql_tests/ceil-int.testcase0000664000175000017500000000027612544707704022510 00000000000000ceil(integer) # integer input - this is just the name remember :memory: SELECT ceil(3); # the SQL to run 1 # rows 1 # column ceil(3) # this is the header row 3.0 # this is really the result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/tan0.testcase0000664000175000017500000000020712544707704021640 00000000000000tan(0) :memory: #use in-memory database SELECT tan(0); 1 # rows (not including the header row) 1 # columns tan(0) # header 0.0 #result libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/atan22.testcase0000664000175000017500000000026612544707704022072 00000000000000atan2 - first arg BLOB :memory: # use in-memory database SELECT atan2(zeroblob(4), 0.0); 1 # rows (not including the header row) 1 # columns atan2(zeroblob(4), 0.0) # header (NULL) libspatialite-4.3.0a/test/sql_stmt_mathsql_tests/degrees45.testcase0000664000175000017500000000023512544707704022566 00000000000000degrees45 :memory: #use in-memory database SELECT degrees(pi()/4); 1 # rows (not including the header row) 1 # columns degrees(pi()/4) # header 45.0 #result libspatialite-4.3.0a/test/thunderstorm_mild.svg0000664000175000017500000000613712544707704016714 00000000000000 image/svg+xml libspatialite-4.3.0a/test/test_under_valgrind.sh0000775000175000017500000000041012544707704017015 00000000000000#! /bin/bash for i in *; do if test -x $i -a -f $i -a $i != "test_under_valgrind.sh"; then libtool --mode=execute valgrind --track-origins=yes --tool=memcheck --num-callers=20 --leak-check=full --show-reachable=yes --suppressions=geos-init.supp $i fi; done; libspatialite-4.3.0a/test/check_recover_geom.c0000664000175000017500000014033412544707704016403 00000000000000/* check_recover_geom.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; const char *sql; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } /* creating a Point XY table */ sql = "CREATE TABLE pt_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -3; } /* creating a Point XYZ table */ sql = "CREATE TABLE pt_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } /* creating a Point XYM table */ sql = "CREATE TABLE pt_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } /* creating a Point XYZM table */ sql = "CREATE TABLE pt_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } /* creating a Linestring XY table */ sql = "CREATE TABLE ln_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } /* creating a Linestring XYZ table */ sql = "CREATE TABLE ln_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } /* creating a Linestring XYM table */ sql = "CREATE TABLE ln_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } /* creating a Linestring XYZM table */ sql = "CREATE TABLE ln_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } /* creating a Polygon XY table */ sql = "CREATE TABLE pg_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* creating a Polygon XYZ table */ sql = "CREATE TABLE pg_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } /* creating a Polygon XYM table */ sql = "CREATE TABLE pg_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } /* creating a Polygon XYZM table */ sql = "CREATE TABLE pg_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } /* creating a MultiPoint XY table */ sql = "CREATE TABLE mpt_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } /* creating a MultiPoint XYZ table */ sql = "CREATE TABLE mpt_XYZ (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } /* creating a MultiPoint XYM table */ sql = "CREATE TABLE mpt_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } /* creating a MultiPoint XYZM table */ sql = "CREATE TABLE mpt_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } /* creating a MultiLinestring XY table */ sql = "CREATE TABLE mln_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -19; } /* creating a MultiLinestring XYZ table */ sql = "CREATE TABLE mln_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -20; } /* creating a MultiLinestring XYM table */ sql = "CREATE TABLE mln_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } /* creating a MultiLinestring XYZM table */ sql = "CREATE TABLE mln_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -22; } /* creating a MultiPolygon XY table */ sql = "CREATE TABLE mpg_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -23; } /* creating a MultiPolygon XYZ table */ sql = "CREATE TABLE mpg_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -24; } /* creating a MultiPolygon XYM table */ sql = "CREATE TABLE mpg_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -25; } /* creating a MultiPolygon XYZM table */ sql = "CREATE TABLE mpg_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -26; } /* creating a GeometryCollection XY table */ sql = "CREATE TABLE gcoll_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -27; } /* creating a GeometryCollection XYZ table */ sql = "CREATE TABLE gcoll_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -28; } /* creating a GeometryCollection XYM table */ sql = "CREATE TABLE gcoll_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -29; } /* creating a GeometryCollection XYZM table */ sql = "CREATE TABLE gcoll_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -30; } /* creating a Geometry XY table */ sql = "CREATE TABLE geom_xy (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -31; } /* creating a Geometry XYZ table */ sql = "CREATE TABLE geom_xyz (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -32; } /* creating a Geometry XYM table */ sql = "CREATE TABLE geom_xym (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -33; } /* creating a Geometry XYZM table */ sql = "CREATE TABLE geom_xyzm (id INTEGER, g BLOB)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -34; } /* Inserting into pt_xy */ sql = "INSERT INTO pt_xy (id, g) VALUES (1, GeomFromText('POINT(1 2)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -35; } /* Inserting into pt_xyz */ sql = "INSERT INTO pt_xyz (id, g) VALUES (1, GeomFromText('POINTZ(1 2 3)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -36; } /* Inserting into pt_xym */ sql = "INSERT INTO pt_xym (id, g) VALUES (1, GeomFromText('POINTM(1 2 10)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -37; } /* Inserting into pt_xyzm */ sql = "INSERT INTO pt_xyzm (id, g) VALUES (1, GeomFromText('POINTZM(1 2 3 10)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -38; } /* Inserting into ln_xy */ sql = "INSERT INTO ln_xy (id, g) VALUES (1, GeomFromText('LINESTRING(1 2, 4 5)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -39; } /* Inserting into ln_xyz */ sql = "INSERT INTO ln_xyz (id, g) VALUES (1, GeomFromText('LINESTRINGZ(1 2 3, 4 5 6)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -40; } /* Inserting into ln_xym */ sql = "INSERT INTO ln_xym (id, g) VALUES (1, GeomFromText('LINESTRINGM(1 2 10, 4 5 11)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -41; } /* Inserting into ln_xyzm */ sql = "INSERT INTO ln_xyzm (id, g) VALUES (2, GeomFromText('LINESTRINGZM(1 2 3 10, 4 5 6 11)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -42; } /* Inserting into pg_xy */ sql = "INSERT INTO pg_xy (id, g) VALUES (1, GeomFromText('POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 1 12, 11 12, 11 11))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -43; } /* Inserting into pg_xyz */ sql = "INSERT INTO pg_xyz (id, g) VALUES (1, GeomFromText('POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -44; } /* Inserting into pg_xym */ sql = "INSERT INTO pg_xym (id, g) VALUES (1, GeomFromText('POLYGONM((10 10 10, 15 10 11, 15 15 12, 10 15 13, 10 10 10), (11 11 10, 12 11 11, 1 12 12, 11 12 13, 11 11 10))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -45; } /* Inserting into pg_xyzm */ sql = "INSERT INTO pg_xyzm (id, g) VALUES (1, GeomFromText('POLYGONZM((10 10 100 10, 15 10 101 11, 15 15 102 12, 10 15 103 13, 10 10 100 10), (11 11 100 10, 12 11 101 11, 1 12 102 12, 11 12 103 13, 11 11 100 10))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -46; } /* Inserting into mpt_xy */ sql = "INSERT INTO mpt_xy (id, g) VALUES (1, GeomFromText('MULTIPOINT(1 2, 4 5)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -47; } /* Inserting into mpt_xyz */ sql = "INSERT INTO mpt_xyz (id, g) VALUES (1, GeomFromText('MULTIPOINTZ(1 2 3, 4 5 6)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -48; } /* Inserting into mpt_xym */ sql = "INSERT INTO mpt_xym (id, g) VALUES (1, GeomFromText('MULTIPOINTM(1 2 10, 4 5 11)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -49; } /* Inserting into mpt_xyzm */ sql = "INSERT INTO mpt_xyzm (id, g) VALUES (1, GeomFromText('MULTIPOINTZM(1 2 3 10, 4 5 6 10)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -50; } /* Inserting into mln_xy */ sql = "INSERT INTO mln_xy (id, g) VALUES (1, GeomFromText('MULTILINESTRING((1 2, 4 5), (7 8, 10 11))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -51; } /* Inserting into mln_xyz */ sql = "INSERT INTO mln_xyz (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZ((1 2 3, 4 5 6), (7 8 9, 10 11 12))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -52; } /* Inserting into mln_xym */ sql = "INSERT INTO mln_xym (id, g) VALUES (1, GeomFromText('MULTILINESTRINGM((1 2 10, 4 5 11), (7 8 12, 10 11 13))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -53; } /* Inserting into mln_xyzm */ sql = "INSERT INTO mln_xyzm (id, g) VALUES (1, GeomFromText('MULTILINESTRINGZM((1 2 3 10, 4 5 6 11), (7 8 9 12, 10 11 12 13))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -54; } /* Inserting into mpg_xy */ sql = "INSERT INTO mpg_xy (id, g) VALUES (1, GeomFromText('MULTIPOLYGON(((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 1 12, 11 12, 11 11)), ((0 0, 1 0, 1 1, 0 1, 0 0)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -55; } /* Inserting into mpg_xyz */ sql = "INSERT INTO mpg_xyz (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 1 12 102, 11 12 103, 11 11 100)), ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -56; } /* Inserting into mpg_xym */ sql = "INSERT INTO mpg_xym (id, g) VALUES (1, GeomFromText('MULTIPOLYGONM(((10 10 11, 15 10 12, 15 15 13, 10 15 14, 10 10 11), (11 11 5, 12 11 6, 12 12 7, 11 12 8, 11 11 5)), ((0 0 11, 1 0 12, 1 1 13, 0 1 14, 0 0 11)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -57; } /* Inserting into mpg_xyzm */ sql = "INSERT INTO mpg_xyzm (id, g) VALUES (1, GeomFromText('MULTIPOLYGONZM(((10 10 100 11, 15 10 101 12, 15 15 102 13, 10 15 103 14, 10 10 100 11), (11 11 100 5, 12 11 101 6, 1 12 102 7, 11 12 103 8, 11 11 100 5)), ((0 0 1 11, 1 0 2 12, 1 1 3 13, 0 1 4 14, 0 0 1 11)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -58; } /* Inserting into gcoll_xy */ sql = "INSERT INTO gcoll_xy (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(5 5, 6 6), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -59; } /* Inserting into gcoll_xyz */ sql = "INSERT INTO gcoll_xyz (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -60; } /* Inserting into gcoll_xym */ sql = "INSERT INTO gcoll_xym (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONM(POINTM(10 10 100), LINESTRINGM(5 5 10, 6 6 11), POLYGONM((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -61; } /* Inserting into gcoll_xyzm */ sql = "INSERT INTO gcoll_xyzm (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(10 10 100 11), LINESTRINGZM(5 5 10 11, 6 6 11 12), POLYGONZM((0 0 1 10, 1 0 2 11, 1 1 3 12, 0 1 4 13, 0 0 1 10)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -62; } /* Inserting into geom_xy */ sql = "INSERT INTO geom_xy (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTION(POINT(10 10), LINESTRING(5 5, 6 6), POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -63; } sql = "INSERT INTO geom_xy (id, g) VALUES (2, GeomFromText('POINT(10 10)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -64; } /* Inserting into geom_xyz */ sql = "INSERT INTO geom_xyz (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(10 10 100), LINESTRINGZ(5 5 10, 6 6 11), POLYGONZ((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -65; } sql = "INSERT INTO geom_xyz (id, g) VALUES (2, GeomFromText('POINTZ(10 10 100)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -66; } /* Inserting into geom_xym */ sql = "INSERT INTO geom_xym (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONM(POINTM(10 10 100), LINESTRINGM(5 5 10, 6 6 11), POLYGONM((0 0 1, 1 0 2, 1 1 3, 0 1 4, 0 0 1)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -67; } sql = "INSERT INTO geom_xym (id, g) VALUES (2, GeomFromText('POINTM(10 10 100)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -68; } /* Inserting into geom_xyzm */ sql = "INSERT INTO geom_xyzm (id, g) VALUES (1, GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(10 10 100 11), LINESTRINGZM(5 5 10 11, 6 6 11 12), POLYGONZM((0 0 1 10, 1 0 2 11, 1 1 3 12, 0 1 4 13, 0 0 1 10)))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -69; } sql = "INSERT INTO geom_xyzm (id, g) VALUES (2, GeomFromText('POINTZM(10 10 100 11)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -70; } /* recovering pt_xy */ sql = "SELECT RecoverGeometryColumn('pt_xy', 'g', 4326, 'POINT', 2);"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -71; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -72; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -73; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -74; } sqlite3_free_table (results); /* recovering pt_xyz */ sql = "SELECT RecoverGeometryColumn('pt_xyz', 'g', 4326, 'POINT', 3);"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -75; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -76; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -77; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -78; } sqlite3_free_table (results); /* recovering pt_xym */ sql = "SELECT RecoverGeometryColumn('pt_xym', 'g', 4326, 'POINT', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -79; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -80; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -81; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -82; } sqlite3_free_table (results); /* recovering pt_xyzm */ sql = "SELECT RecoverGeometryColumn('pt_xyzm', 'g', 4326, 'POINT', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -83; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -84; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -85; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -86; } sqlite3_free_table (results); /* recovering ln_xy */ sql = "SELECT RecoverGeometryColumn('ln_xy', 'g', 4326, 'LINESTRING', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -87; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -88; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -89; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -90; } sqlite3_free_table (results); /* recovering ln_xyz */ sql = "SELECT RecoverGeometryColumn('ln_xyz', 'g', 4326, 'LINESTRING', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -91; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -92; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -93; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -94; } sqlite3_free_table (results); /* recovering ln_xym */ sql = "SELECT RecoverGeometryColumn('ln_xym', 'g', 4326, 'LINESTRING', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -95; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -96; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -97; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -98; } sqlite3_free_table (results); /* recovering ln_xyzm */ sql = "SELECT RecoverGeometryColumn('ln_xyzm', 'g', 4326, 'LINESTRING', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -99; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -100; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -101; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -102; } sqlite3_free_table (results); /* recovering pg_xy */ sql = "SELECT RecoverGeometryColumn('pg_xy', 'g', 4326, 'POLYGON', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -103; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -104; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -105; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -106; } sqlite3_free_table (results); /* recovering pg_xyz */ sql = "SELECT RecoverGeometryColumn('pg_xyz', 'g', 4326, 'POLYGON', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -107; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -108; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -109; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -110; } sqlite3_free_table (results); /* recovering pg_xym */ sql = "SELECT RecoverGeometryColumn('pg_xym', 'g', 4326, 'POLYGON', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -111; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -112; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -113; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -114; } sqlite3_free_table (results); /* recovering pg_xyzm */ sql = "SELECT RecoverGeometryColumn('pg_xyzm', 'g', 4326, 'POLYGON', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -115; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -116; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -117; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -118; } sqlite3_free_table (results); /* recovering mpt_xy */ sql = "SELECT RecoverGeometryColumn('mpt_xy', 'g', 4326, 'MULTIPOINT', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -119; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -120; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -121; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -122; } sqlite3_free_table (results); /* recovering mpt_xyz */ sql = "SELECT RecoverGeometryColumn('mpt_xyz', 'g', 4326, 'MULTIPOINT', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -123; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -124; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -125; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -126; } sqlite3_free_table (results); /* recovering mpt_xym */ sql = "SELECT RecoverGeometryColumn('mpt_xym', 'g', 4326, 'MULTIPOINT', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -127; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -128; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -129; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -130; } sqlite3_free_table (results); /* recovering mpt_xyzm */ sql = "SELECT RecoverGeometryColumn('mpt_xyzm', 'g', 4326, 'MULTIPOINT', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -131; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -132; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -133; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -134; } sqlite3_free_table (results); /* recovering mln_xy */ sql = "SELECT RecoverGeometryColumn('mln_xy', 'g', 4326, 'MULTILINESTRING', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -135; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -136; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -137; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -138; } sqlite3_free_table (results); /* recovering mln_xyz */ sql = "SELECT RecoverGeometryColumn('mln_xyz', 'g', 4326, 'MULTILINESTRING', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -139; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -140; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -141; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -142; } sqlite3_free_table (results); /* recovering mln_xym */ sql = "SELECT RecoverGeometryColumn('mln_xym', 'g', 4326, 'MULTILINESTRING', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -143; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -144; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -145; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -146; } sqlite3_free_table (results); /* recovering mln_xyzm */ sql = "SELECT RecoverGeometryColumn('mln_xyzm', 'g', 4326, 'MULTILINESTRING', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -147; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -148; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -149; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -150; } sqlite3_free_table (results); /* recovering mpg_xy */ sql = "SELECT RecoverGeometryColumn('mpg_xy', 'g', 4326, 'MULTIPOLYGON', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -151; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -152; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -153; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -154; } sqlite3_free_table (results); /* recovering mpg_xyz */ sql = "SELECT RecoverGeometryColumn('mpg_xyz', 'g', 4326, 'MULTIPOLYGON', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -155; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -156; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -157; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -158; } sqlite3_free_table (results); /* recovering mpg_xym */ sql = "SELECT RecoverGeometryColumn('mpg_xym', 'g', 4326, 'MULTIPOLYGON', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -159; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -160; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -161; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -162; } sqlite3_free_table (results); /* recovering mpg_xyzm */ sql = "SELECT RecoverGeometryColumn('mpg_xyzm', 'g', 4326, 'MULTIPOLYGON', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -163; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -164; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -165; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -166; } sqlite3_free_table (results); /* recovering gcoll_xy */ sql = "SELECT RecoverGeometryColumn('gcoll_xy', 'g', 4326, 'GEOMETRYCOLLECTION', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -167; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -168; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -169; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -170; } sqlite3_free_table (results); /* recovering gcoll_xyz */ sql = "SELECT RecoverGeometryColumn('gcoll_xyz', 'g', 4326, 'GEOMETRYCOLLECTION', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -171; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -172; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -173; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -174; } sqlite3_free_table (results); /* recovering gcoll_xym */ sql = "SELECT RecoverGeometryColumn('gcoll_xym', 'g', 4326, 'GEOMETRYCOLLECTION', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -175; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -176; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -177; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -178; } sqlite3_free_table (results); /* recovering gcoll_xyzm */ sql = "SELECT RecoverGeometryColumn('gcoll_xyzm', 'g', 4326, 'GEOMETRYCOLLECTION', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -179; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -180; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -181; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -182; } sqlite3_free_table (results); /* recovering geom_xy */ sql = "SELECT RecoverGeometryColumn('geom_xy', 'g', 4326, 'GEOMETRY', 'XY');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -183; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -184; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -185; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -186; } sqlite3_free_table (results); /* recovering geom_xyz */ sql = "SELECT RecoverGeometryColumn('geom_xyz', 'g', 4326, 'GEOMETRY', 'XYZ');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -187; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -188; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -189; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -190; } sqlite3_free_table (results); /* recovering geom_xym */ sql = "SELECT RecoverGeometryColumn('geom_xym', 'g', 4326, 'GEOMETRY', 'XYM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -191; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -192; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -193; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -194; } sqlite3_free_table (results); /* recovering geom_xyzm */ sql = "SELECT RecoverGeometryColumn('geom_xyzm', 'g', 4326, 'GEOMETRY', 'XYZM');"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -195; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected error: bad result: %i/%i.\n", rows, columns); return -196; } if (results[1] == NULL) { fprintf (stderr, "Unexpected error: NULL result\n"); return -197; } if (strcmp (results[1], "1") != 0) { fprintf (stderr, "Unexpected error: invalid result\n"); return -198; } sqlite3_free_table (results); ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -199; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.3.0a/test/sql_stmt_geos_tests/0000775000175000017500000000000012573314327016603 500000000000000libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring4.testcase0000664000175000017500000000044212544707704023237 00000000000000linesubstring - out-of-range limits :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), -1, 2)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), -1, 2)) LINESTRING(0 0, 10 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromtext10.testcase0000664000175000017500000000030012544707704023477 00000000000000BdPolyFromText - point, no SRID :memory: #use in-memory database SELECT BdPolyFromText("Point(1 2)"); 1 # rows (not including the header row) 1 # columns BdPolyFromText("Point(1 2)") (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/boundary7.testcase0000664000175000017500000000046712544707704022204 00000000000000Boundary - open linestringZM :memory: #use in-memory database SELECT AsText(Boundary(GeomFromText("LINESTRINGZM(1 2 3 5, 4 -3 6 -3, 2 -1 -4 8)"))) 1 # rows (not including the header row) 1 # columns AsText(Boundary(GeomFromText("LINESTRINGZM(1 2 3 5, 4 -3 6 -3, 2 -1 -4 8)"))) MULTIPOINT ZM(1 2 3 0, 2 -1 -4 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/ringsnodes5.testcase0000664000175000017500000000034012544707704022520 00000000000000RingsCutAtNodes - non-polygon (point) :memory: #use in-memory database SELECT RingsCutAtNodes(GeomFromText("POINT(1 2)")) 1 # rows (not including the header row) 1 # columns RingsCutAtNodes(GeomFromText("POINT(1 2)")) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid7.testcase0000664000175000017500000000066212544707704022011 00000000000000isvalid (MULTYPOLYGON with hole) :memory: #use in-memory database SELECT IsValid(GeomFromText("MULTIPOLYGON(((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11)), ((20 20, 21 20, 21 21, 20 21, 20 20)))")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("MULTIPOLYGON(((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11)), ((20 20, 21 20, 21 21, 20 21, 20 20)))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/union24.testcase0000664000175000017500000000230112544707704021555 00000000000000union - GEOMETRYCOLLECTION ZM (Polygon with hole / Linestring) :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(30 30 100 1, 31 31 101 2), POLYGONZM((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 4, 10 10 100 1), (11 11 100 1, 12 11 101 2, 12 12 102 3, 11 12 103 4, 11 11 100 1)))"), GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(31 31 101 2, 35 0 100 1), POLYGONZM((15 10 101 2, 16 10 102 1, 16 15 102 3, 10 15 103 4, 15 10 101 2)))"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(30 30 100 1, 31 31 101 2), POLYGONZM((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 4, 10 10 100 1), (11 11 100 1, 12 11 101 2, 12 12 102 3, 11 12 103 4, 11 11 100 1)))"), GeomFromText("GEOMETRYCOLLECTIONZM(LINESTRINGZM(31 31 101 2, 35 0 100 1), POLYGONZM((15 10 101 2, 16 10 102 1, 16 15 102 3, 10 15 103 4, 15 10 101 2)))"))) GEOMETRYCOLLECTION ZM(LINESTRING ZM(30 30 100 0, 31 31 101 0), LINESTRING ZM(31 31 101 0, 35 0 100 0), POLYGON ZM((15 10 101 0, 10 10 100 0, 10 15 103 0, 15 15 102 0, 16 15 102 0, 16 10 102 0, 15 10 101 0), (11 11 100 0, 12 11 101 0, 12 12 102 0, 11 12 103 0, 11 11 100 0))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/geoserror7.testcase0000664000175000017500000000111712544707704022361 00000000000000GEOS_Error - invalid Polygon (collapsed to a line) :memory: #use in-memory database SELECT ST_IsValid(ST_GeomFromText('POLYGON((0 0, 0 0, 1 1, 0 0))')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg()); 1 # rows (not including the header row) 5 # columns ST_IsValid(ST_GeomFromText('POLYGON((0 0, 0 0, 1 1, 0 0))')) GEOS_GetLastWarningMsg() GEOS_GetLastErrorMsg() GEOS_GetLastAuxErrorMsg() ST_AsText(GEOS_GetCriticalPointFromMsg()) 0 Too few points in geometry component at or near point 0 0 (NULL) (NULL) POINT(0 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/simplify9.testcase0000664000175000017500000000043612544707704022213 00000000000000SimplifyPreserveTopology - bad second arg :memory: #use in-memory database SELECT SimplifyPreserveTopology(GeomFromText("LINESTRING(1 2, 3 4)"), "hello") 1 # rows (not including the header row) 1 # columns SimplifyPreserveTopology(GeomFromText("LINESTRING(1 2, 3 4)"), "hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/offsetcurve2.testcase0000664000175000017500000000042312544707704022677 00000000000000OffsetCurve - polygon :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('POLYGON((0 0, 0 1, 4 1, 4 0, 0 0))'), 1)); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('POLYGON((0 0, 0 1, 4 1, 4 0, 0 0))'), 1)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/shortestline2.testcase0000664000175000017500000000050412544707704023067 00000000000000ShortestLine - line and point :memory: #use in-memory database SELECT AsText(ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("POINT(10 2)"))) 1 # rows (not including the header row) 1 # columns AsText(ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("POINT(10 2)"))) LINESTRING(10 0, 10 2) libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint14.testcase0000664000175000017500000000050312544707704023154 00000000000000Closest Point - LINE AND PointZ :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("POINTZ(4 6 4)"), GeomFromText("LINESTRING(0 0, 0 10)"))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("POINTZ(4 6 4)"), GeomFromText("LINESTRING(0 0, 0 10)"))) POINT Z(4 6 4) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isclosed8.testcase0000664000175000017500000000054612544707704022165 00000000000000isclosed - multilinestring, both closed :memory: #use in-memory database SELECT IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35),(10 10, 0 10, 0 0, 10 10))")) 1 # rows (not including the header row) 1 # columns IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35),(10 10, 0 10, 0 0, 10 10))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid9.testcase0000664000175000017500000000076112544707704022013 00000000000000isvalid (MULTYPOLYGONM with hole) :memory: #use in-memory database SELECT IsValid(GeomFromText("MULTIPOLYGONM(((10 10 1, 15 10 2, 15 15 3, 10 15 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1)), ((20 20 2, 21 20 3, 21 21 4, 20 21 5, 20 20 2)))")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("MULTIPOLYGONM(((10 10 1, 15 10 2, 15 15 3, 10 15 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1)), ((20 20 2, 21 20 3, 21 21 4, 20 21 5, 20 20 2)))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance_geogr3.testcase0000664000175000017500000000047112544707704023325 00000000000000Distance Long/Lat metric (great circle) - two 2D-M points :memory: #use in-memory database SELECT ST_Distance(MakePointM(11.1, 42.1, 0.1), MakePointM(11.2, 42.2, 0.2), 0); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePointM(11.1, 42.1, 0.1), MakePointM(11.2, 42.2, 0.2), 0) 13842.154368:6 libspatialite-4.3.0a/test/sql_stmt_geos_tests/offsetcurve8.testcase0000664000175000017500000000041112544707704022702 00000000000000OffsetCurve - points :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('MULTIPOINT(0 0, 0 1, 4 1, 4 0)'), 1)); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('MULTIPOINT(0 0, 0 1, 4 1, 4 0)'), 1)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/createtopo13.testcase0000664000175000017500000000035412544707704022576 00000000000000CreateTopology - 3 arguments, quote in prefix NEW:memory: #use in-memory database SELECT CreateTopologyTables("hello'_world", 4326, 3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("hello'_world", 4326, 3) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid11.testcase0000664000175000017500000000046212544707704022575 00000000000000SquareGrid - Polygon geom - double edges_only :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 1.6); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 1.6) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid22.testcase0000664000175000017500000000056412544707704022566 00000000000000TriangularGrid - valid - no Origin, edges_only :memory: #use in-memory database SELECT ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1)); 1 # rows (not including the header row) 1 # columns ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1)) 18.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/linemerge9.testcase0000664000175000017500000000050412544707704022322 00000000000000linemerge - toxic blob :memory: #use in-memory database SELECT AsText(LineMerge(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) 1 # rows (not including the header row) 1 # columns AsText(LineMerge(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid10.testcase0000664000175000017500000000116612544707704022063 00000000000000isvalid (MULTYPOLYGONZM with hole) :memory: #use in-memory database SELECT IsValid(GeomFromText("MULTIPOLYGONZM(((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 4, 10 10 100 1), (11 11 100 1, 12 11 101 2, 12 12 102 3, 11 12 103 4, 11 11 100 1)), ((20 20 110 11, 21 20 111 12, 21 21 112 13, 20 21 113 14, 20 20 110 11)))")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("MULTIPOLYGONZM(((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 4, 10 10 100 1), (11 11 100 1, 12 11 101 2, 12 12 102 3, 11 12 103 4, 11 11 100 1)), ((20 20 110 11, 21 20 111 12, 21 21 112 13, 20 21 113 14, 20 20 110 11)))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/offsetcurve1.testcase0000664000175000017500000000043512544707704022701 00000000000000OffsetCurve - non-num radius :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0)'), 'alpha')); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0)'), 'alpha')) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistancewithin6.testcase0000664000175000017500000000035212544707704023732 00000000000000PtDistWithin- two points, float distance :memory: #use in-memory database SELECT PtDistWithin(Makepoint(4,2), MakePoint(4,4), 2.1) 1 # rows (not including the header row) 1 # columns PtDistWithin(Makepoint(4,2), MakePoint(4,4), 2.1) 1libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid21.testcase0000664000175000017500000000130512544707704022573 00000000000000SquareGrid - valid - with Origin :memory: #use in-memory database SELECT AsText(SquareGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)'))); 1 # rows (not including the header row) 1 # columns AsText(SquareGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)'))) MULTIPOLYGON(((0.1 0.1, 1.1 0.1, 1.1 1.1, 0.1 1.1, 0.1 0.1)), ((1.1 0.1, 2.1 0.1, 2.1 1.1, 1.1 1.1, 1.1 0.1)), ((2.1 0.1, 3.1 0.1, 3.1 1.1, 2.1 1.1, 2.1 0.1)), ((0.1 1.1, 1.1 1.1, 1.1 2.1, 0.1 2.1, 0.1 1.1)), ((1.1 1.1, 2.1 1.1, 2.1 2.1, 1.1 2.1, 1.1 1.1)), ((2.1 1.1, 3.1 1.1, 3.1 2.1, 2.1 2.1, 2.1 1.1))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/difference1.testcase0000664000175000017500000000035012544707704022434 00000000000000difference - two points :memory: #use in-memory database SELECT AsText(Difference(Makepoint(1,2), MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(Difference(Makepoint(1,2), MakePoint(2,3))) POINT(1 2) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_length9.testcase0000664000175000017500000000060612544707704022345 00000000000000ST_Length - MultiPolygon :memory: #use in-memory database SELECT ST_Length(GeomFromText("MULTIPOLYGON(((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10)))")); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("MULTIPOLYGON(((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10)))")) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/centroid8.testcase0000664000175000017500000000052012544707704022157 00000000000000Centroid - polygonM (problem case - GEOS throws away the M coordinates) :memory: #use in-memory database SELECT astext(centroid(geomFromText("POLYGONM((0 0 1, 0 2 1, 2 2 1, 2 0 1, 0 0 1))"))) 1 # rows (not including the header row) 1 # columns astext(centroid(geomFromText("POLYGONM((0 0 1, 0 2 1, 2 2 1, 2 0 1, 0 0 1))"))) POINT(1 1) libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid10.testcase0000664000175000017500000000047012544707704022573 00000000000000SquareGrid - Polygon geom - text edges_only :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 'alpha'); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb17.testcase0000664000175000017500000000027112544707704023471 00000000000000BdMPolyFromWKB - zeroblob :memory: #use in-memory database SELECT BdMPolyFromWKB(zeroblob(25)); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(zeroblob(25)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid23.testcase0000664000175000017500000000055612544707704022070 00000000000000HexagonalGrid - valid - no Origin, edges_only :memory: #use in-memory database SELECT ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1)); 1 # rows (not including the header row) 1 # columns ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1)) 19.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/shortestline5.testcase0000664000175000017500000000041512544707704023073 00000000000000ShortestLine - zeroblob second arg :memory: #use in-memory database SELECT ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), zeroblob(487)) 1 # rows (not including the header row) 1 # columns ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), zeroblob(487)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring3.testcase0000664000175000017500000000042612544707704023240 00000000000000linesubstring - int limits :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), 0, 1)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), 0, 1)) LINESTRING(0 0, 10 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/polygonize7.testcase0000664000175000017500000000056612544707704022560 00000000000000POLYGONIZE - simple polygonzm :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("LINESTRINGZM(0 0 5 4, 1 1 6 2, 0 2 7 3, -1 1 6 1, 0 0 5 4)"))) 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("LINESTRINGZM(0 0 5 4, 1 1 6 2, 0 2 7 3, -1 1 6 1, 0 0 5 4)"))) POLYGON ZM((0 0 5 0, -1 1 6 0, 0 2 7 0, 1 1 6 0, 0 0 5 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/covers_covered1.testcase0000664000175000017500000000066212544707704023360 00000000000000Covers / Covered :memory: #use in-memory database SELECT Covers(geom1,geom2),CoveredBy(geom1,geom2),Covers(geom2,geom1),CoveredBy(geom2,geom1) from (SELECT GeomFromText("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))") as geom1,GeomFromText("POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))") as geom2) dummy; 1 # rows (not including the header row) 4 # columns Covers(geom1,geom2) CoveredBy(geom1,geom2) Covers(geom2,geom1) CoveredBy(geom2,geom1) 0 1 1 0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/hausdorffdistance3.testcase0000664000175000017500000000040312544707704024037 00000000000000HausdorffDistance - non blob first arg :memory: #use in-memory database SELECT HausdorffDistance(3, GeomFromText("LINESTRING(0 2, 10 2)")) 1 # rows (not including the header row) 1 # columns HausdorffDistance(3, GeomFromText("LINESTRING(0 2, 10 2)")) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistwithin5.testcase0000664000175000017500000000031112544707704023075 00000000000000PtDistWithin invalid arg: TEXT pt1 :memory: SELECT PtDistWithin('a', GeomFromText("POINT(5 5)", 4326), 10.0, 1); 1 # rows 1 # column PtDistWithin('a', GeomFromText("POINT(5 5)", 4326), 10.0, 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/pointonsurface2.testcase0000664000175000017500000000047712544707704023414 00000000000000PointOnSurface - toxic :memory: #use in-memory database SELECT PointOnSurface(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")); 1 # rows (not including the header row) 1 # columns PointOnSurface(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/simplify2.testcase0000664000175000017500000000057612544707704022211 00000000000000Simplify - linestring :memory: #use in-memory database SELECT AsText(Simplify(geom, 0.1)), AsText(SimplifyPreserveTopology(geom, 0.1)) FROM (SELECT GeomFromText("LINESTRING(1 2, 4.0001 4.9999, 4 5)") as geom) dummy 1 # rows (not including the header row) 2 # columns AsText(Simplify(geom, 0.1)) AsText(SimplifyPreserveTopology(geom, 0.1)) LINESTRING(1 2, 4 5) LINESTRING(1 2, 4 5) libspatialite-4.3.0a/test/sql_stmt_geos_tests/relate4.testcase0000664000175000017500000000045612544707704021630 00000000000000Relate - bad blob second arg :memory: #use in-memory database SELECT Relate(geom1, zeroblob(100), "T*T***T**") FROM (SELECT GeomFromText("POINT(1 2)") as geom1, GeomFromText("POINT(1 2)") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Relate(geom1, zeroblob(100), "T*T***T**") -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/intersection1.testcase0000664000175000017500000000035112544707704023051 00000000000000intersection - two points :memory: #use in-memory database SELECT AsText(Intersection(Makepoint(1,2), MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(Intersection(Makepoint(1,2), MakePoint(2,3))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths29.testcase0000664000175000017500000000106612544707704022747 00000000000000shared paths - multilineM - prepend :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRINGM((5 0 10, 15 0 30),(5 0 10, 5 5 10))"),GeomFromText("MULTILINESTRINGM((0 0 0, 4 0 8, 6 0 12, 10 0 20),(11 0 22, 5 0 10),(5 0 10, 5 5 10))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRINGM((5 0 10, 15 0 30),(5 0 10, 5 5 10))"),GeomFromText("MULTILINESTRINGM((0 0 0, 4 0 8, 6 0 12, 10 0 20),(11 0 22, 5 0 10),(5 0 10, 5 5 10))"))) MULTILINESTRING M((5 5 0, 5 0 0, 6 0 0, 10 0 0, 11 0 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/makearc15.testcase0000664000175000017500000000030612544707704022033 00000000000000makearc14 - valid :memory: #use in-memory database SELECT ST_Length(MakeArc(0, 0, 100, 30, 60)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeArc(0, 0, 100, 30, 60)) 52.2934:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/buffer4.testcase0000664000175000017500000000033012544707704021614 00000000000000buffer4 :memory: #use in-memory database SELECT Buffer(GeomFromText("LINESTRING(0 0, 100 0)"), "foo"); 1 # rows (not including the header row) 1 # columns Buffer(GeomFromText("LINESTRING(0 0, 100 0)"), "foo") (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/shortestline6.testcase0000664000175000017500000000037112544707704023075 00000000000000ShortestLine - non-blob second arg :memory: #use in-memory database SELECT ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), 3.4) 1 # rows (not including the header row) 1 # columns ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), 3.4) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/snap5.testcase0000664000175000017500000000042012544707704021305 00000000000000Snap - non blob first arg :memory: #use in-memory database SELECT Snap("hello", GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 2) 1 # rows (not including the header row) 1 # columns Snap("hello", GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 2) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid9.testcase0000664000175000017500000000046212544707704022524 00000000000000SquareGrid - Polygon geom - NULL edges_only :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, NULL); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb18.testcase0000664000175000017500000000032112544707704023466 00000000000000BdMPolyFromWKB - zeroblob, invalid SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(zeroblob(25), 'a'); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(zeroblob(25), 'a') (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/locatepoint2.testcase0000664000175000017500000000050312544707704022664 00000000000000locate point - POLYGON first arg :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("POLYGON((0 0, 10 10, 0 10, 0 0))"), GeomFromText("POINT(5 3)")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("POLYGON((0 0, 10 10, 0 10, 0 0))"), GeomFromText("POINT(5 3)")) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid18.testcase0000664000175000017500000000045412544707704022571 00000000000000TriangularGrid - Polygon geom - zero size :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 0.0); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 0.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isring1.testcase0000664000175000017500000000040112544707704021632 00000000000000isring1 :memory: #use in-memory database SELECT IsRing(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35)")); 1 # rows (not including the header row) 1 # columns IsRing(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35)")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid15.testcase0000664000175000017500000000057212544707704022603 00000000000000SquareGrid - Polygon geom - Linestring origin :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('LINESTRING(0 0, 1 1)')); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('LINESTRING(0 0, 1 1)')) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid1.testcase0000664000175000017500000000022512544707704021776 00000000000000isvalid1 :memory: #use in-memory database SELECT IsValid(zeroblob(10)); 1 # rows (not including the header row) 1 # columns IsValid(zeroblob(10)) -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/issimple3.testcase0000664000175000017500000000026212544707704022173 00000000000000issimple3 :memory: #use in-memory database SELECT IsSimple(GeomFromText("POLYGON()")); 1 # rows (not including the header row) 1 # columns IsSimple(GeomFromText("POLYGON()")) -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid1.testcase0000664000175000017500000000025112544707704022510 00000000000000SquareGrid - NULL geom :memory: #use in-memory database SELECT SquareGrid(NULL, 1.0); 1 # rows (not including the header row) 1 # columns SquareGrid(NULL, 1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb4.testcase0000664000175000017500000000027012544707704023404 00000000000000BdMPolyFromWKB - non-text, SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(26, 4326); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(26, 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/snap4.testcase0000664000175000017500000000032712544707704021312 00000000000000Snap - non-blob second arg :memory: #use in-memory database SELECT Snap(GeomFromText("POINT(0.1 0.2)"), 5, 0.4) 1 # rows (not including the header row) 1 # columns Snap(GeomFromText("POINT(0.1 0.2)"), 5, 0.4) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/relate7.testcase0000664000175000017500000000041312544707704021624 00000000000000Relate - bad text third arg :memory: #use in-memory database SELECT Relate(geom1, geom2, "") FROM (SELECT GeomFromText("POINT(1 2)") as geom1, GeomFromText("POINT(1 2)") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Relate(geom1, geom2, "") -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring26.testcase0000664000175000017500000000052312544707704023323 00000000000000linesubstring - using both segments Z :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRINGZ(0 0 0, 10 0 0, 10 10 0)"), 0.2, 0.8)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRINGZ(0 0 0, 10 0 0, 10 10 0)"), 0.2, 0.8)) LINESTRING Z(4 0 0, 10 0 0, 10 6 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromtext14.testcase0000664000175000017500000000031112544707704023505 00000000000000BdPolyFromText - point, SRID :memory: #use in-memory database SELECT BdPolyFromText("Point(1,2)", 4326); 1 # rows (not including the header row) 1 # columns BdPolyFromText("Point(1,2)", 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint19.testcase0000664000175000017500000000072512544707704023167 00000000000000Closest Point - polygonM with interior and Point :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("POINTM(4 6 1)"), GeomFromText("POLYGONM((0 0 1, 10 0 2, 10 10 3, 0 10 2, 0 0 1),( 1 1 4, 3 1 5, 3 3 6, 1 3 5, 1 1 4))"))) 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("POINTM(4 6 1)"), GeomFromText("POLYGONM((0 0 1, 10 0 2, 10 10 3, 0 10 2, 0 0 1),( 1 1 4, 3 1 5, 3 3 6, 1 3 5, 1 1 4))"))) POINT M(4 6 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/centroid2.testcase0000664000175000017500000000033412544707704022154 00000000000000Centroid - point :memory: #use in-memory database SELECT astext(centroid(geomFromText("POINT(1,1)", 4326))); 1 # rows (not including the header row) 1 # columns astext(centroid(geomFromText("POINT(1,1)", 4326))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromtext14.testcase0000664000175000017500000000031612544707704023667 00000000000000BdMPolyFromText - bad wkt, SRID :memory: #use in-memory database SELECT BdMPolyFromText("Point(1,2)", 4326); 1 # rows (not including the header row) 1 # columns BdMPolyFromText("Point(1,2)", 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/union7.testcase0000664000175000017500000000055112544707704021503 00000000000000union - toxic first point :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(136,-35))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(136,-35))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/createtopo3.testcase0000664000175000017500000000033712544707704022516 00000000000000CreateTopology - 3 arguments, 2D NEW:memory: #use in-memory database SELECT CreateTopologyTables("my_prefix", 4326, "XY"); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("my_prefix", 4326, "XY") 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/relate9.testcase0000664000175000017500000000045612544707704021635 00000000000000Relate - toxic second arg :memory: #use in-memory database SELECT Relate(geom1, geom2, "T*T***T**") FROM (SELECT GeomFromText("LINESTRING(1 1, 2 2)") as geom1, GeomFromText('LINESTRING(1 1, 1 1)') as geom2) dummy; 1 # rows (not including the header row) 1 # columns Relate(geom1, geom2, "T*T***T**") 0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/Makefile.in0000664000175000017500000007474412573313636020612 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/sql_stmt_geos_tests ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = bdmpolyfromtext10.testcase \ bdmpolyfromtext13.testcase \ bdmpolyfromtext14.testcase \ bdmpolyfromtext15.testcase \ bdmpolyfromtext16.testcase \ bdmpolyfromtext17.testcase \ bdmpolyfromtext1.testcase \ bdmpolyfromtext2.testcase \ bdmpolyfromtext3.testcase \ bdmpolyfromtext4.testcase \ bdmpolyfromtext9.testcase \ bdmpolyfromwkb10.testcase \ bdmpolyfromwkb11.testcase \ bdmpolyfromwkb12.testcase \ bdmpolyfromwkb13.testcase \ bdmpolyfromwkb14.testcase \ bdmpolyfromwkb15.testcase \ bdmpolyfromwkb16.testcase \ bdmpolyfromwkb17.testcase \ bdmpolyfromwkb18.testcase \ bdmpolyfromwkb19.testcase \ bdmpolyfromwkb1.testcase \ bdmpolyfromwkb2.testcase \ bdmpolyfromwkb3.testcase \ bdmpolyfromwkb4.testcase \ bdmpolyfromwkb5.testcase \ bdmpolyfromwkb6.testcase \ bdmpolyfromwkb7.testcase \ bdmpolyfromwkb8.testcase \ bdmpolyfromwkb9.testcase \ bdpolyfromtext10.testcase \ bdpolyfromtext11.testcase \ bdpolyfromtext12.testcase \ bdpolyfromtext13.testcase \ bdpolyfromtext14.testcase \ bdpolyfromtext15.testcase \ bdpolyfromtext16.testcase \ bdpolyfromtext1.testcase \ bdpolyfromtext2.testcase \ bdpolyfromtext3.testcase \ bdpolyfromtext4.testcase \ bdpolyfromtext5.testcase \ bdpolyfromtext6.testcase \ bdpolyfromtext7.testcase \ bdpolyfromtext8.testcase \ bdpolyfromtext9.testcase \ bdpolyfromwkb10.testcase \ bdpolyfromwkb11.testcase \ bdpolyfromwkb12.testcase \ bdpolyfromwkb13.testcase \ bdpolyfromwkb14.testcase \ bdpolyfromwkb15.testcase \ bdpolyfromwkb16.testcase \ bdpolyfromwkb17.testcase \ bdpolyfromwkb18.testcase \ bdpolyfromwkb19.testcase \ bdpolyfromwkb1.testcase \ bdpolyfromwkb2.testcase \ bdpolyfromwkb3.testcase \ bdpolyfromwkb4.testcase \ bdpolyfromwkb5.testcase \ bdpolyfromwkb6.testcase \ bdpolyfromwkb7.testcase \ bdpolyfromwkb8.testcase \ bdpolyfromwkb9.testcase \ boundary1.testcase \ boundary2.testcase \ boundary3.testcase \ boundary4.testcase \ boundary5.testcase \ boundary6.testcase \ boundary7.testcase \ boundary8.testcase \ boundary9.testcase \ buffer10.testcase \ buffer11.testcase \ buffer12.testcase \ buffer1.testcase \ buffer2.testcase \ buffer3.testcase \ buffer4.testcase \ buffer5.testcase \ buffer6.testcase \ buffer7.testcase \ buffer8.testcase \ buffer9.testcase \ buildarea1.testcase \ buildarea2.testcase \ buildarea3.testcase \ buildarea4.testcase \ buildarea5.testcase \ buildarea6.testcase \ centroid1.testcase \ centroid2.testcase \ centroid3.testcase \ centroid4.testcase \ centroid5.testcase \ centroid6.testcase \ centroid7.testcase \ centroid8.testcase \ convexhull10.testcase \ convexhull1.testcase \ convexhull2.testcase \ convexhull3.testcase \ convexhull4.testcase \ convexhull5.testcase \ convexhull6.testcase \ convexhull7.testcase \ convexhull8.testcase \ convexhull9.testcase \ difference10.testcase \ difference11.testcase \ difference12.testcase \ difference1.testcase \ difference2.testcase \ difference3.testcase \ difference4.testcase \ difference6.testcase \ difference7.testcase \ difference8.testcase \ difference9.testcase \ distance10.testcase \ distance1.testcase \ distance2.testcase \ distance3.testcase \ distance4.testcase \ distance5.testcase \ distance6.testcase \ distance7.testcase \ distance8.testcase \ distance9.testcase \ intersection10.testcase \ intersection11.testcase \ intersection12.testcase \ intersection1.testcase \ intersection2.testcase \ intersection3.testcase \ intersection4.testcase \ intersection5.testcase \ intersection6.testcase \ intersection7.testcase \ intersection8.testcase \ intersection9.testcase \ isclosed10.testcase \ isclosed1.testcase \ isclosed2.testcase \ isclosed3.testcase \ isclosed4.testcase \ isclosed5.testcase \ isclosed6.testcase \ isclosed7.testcase \ isclosed8.testcase \ isclosed9.testcase \ isring1.testcase \ isring2.testcase \ isring3.testcase \ isring4.testcase \ isring5.testcase \ isring6.testcase \ isring7.testcase \ isring8.testcase \ isring9.testcase \ issimple1.testcase \ issimple2.testcase \ issimple3.testcase \ issimple4.testcase \ issimple5.testcase \ issimple6.testcase \ isvalid10.testcase \ isvalid11.testcase \ isvalid12.testcase \ isvalid13.testcase \ isvalid14.testcase \ isvalid15.testcase \ isvalid16.testcase \ isvalid17.testcase \ isvalid18.testcase \ isvalid19.testcase \ isvalid1.testcase \ isvalid20.testcase \ isvalid2.testcase \ isvalid3.testcase \ isvalid4.testcase \ isvalid5.testcase \ isvalid6.testcase \ isvalid7.testcase \ isvalid8.testcase \ isvalid9.testcase \ isvaliddetail1.testcase \ isvaliddetail2.testcase \ isvaliddetail3.testcase \ isvaliddetail4.testcase \ isvaliddetail5.testcase \ isvalidreason1.testcase \ isvalidreason2.testcase \ isvalidreason3.testcase \ isvalidreason4.testcase \ isvalidreason5.testcase \ pointonsurface1.testcase \ pointonsurface2.testcase \ pointonsurface3.testcase \ pointonsurface4.testcase \ pointonsurface5.testcase \ pointonsurface6.testcase \ pointonsurface7.testcase \ polygonize10.testcase \ polygonize11.testcase \ polygonize12.testcase \ polygonize13.testcase \ polygonize14.testcase \ polygonize1.testcase \ polygonize2.testcase \ polygonize3.testcase \ polygonize4.testcase \ polygonize5.testcase \ polygonize6.testcase \ polygonize7.testcase \ polygonize8.testcase \ polygonize9.testcase \ ptdistancewithin10.testcase \ ptdistancewithin11.testcase \ ptdistancewithin12.testcase \ ptdistancewithin13.testcase \ ptdistancewithin14.testcase \ ptdistancewithin15.testcase \ ptdistancewithin16.testcase \ ptdistancewithin17.testcase \ ptdistancewithin18.testcase \ ptdistancewithin1.testcase \ ptdistancewithin2.testcase \ ptdistancewithin3.testcase \ ptdistancewithin4.testcase \ ptdistancewithin5.testcase \ ptdistancewithin6.testcase \ ptdistancewithin7.testcase \ ptdistancewithin8.testcase \ ptdistancewithin9.testcase \ ptdistwithin10.testcase \ ptdistwithin11.testcase \ ptdistwithin12.testcase \ ptdistwithin13.testcase \ ptdistwithin14.testcase \ ptdistwithin15.testcase \ ptdistwithin16.testcase \ ptdistwithin1.testcase \ ptdistwithin2.testcase \ ptdistwithin3.testcase \ ptdistwithin4.testcase \ ptdistwithin5.testcase \ ptdistwithin6.testcase \ ptdistwithin7.testcase \ ptdistwithin8.testcase \ ptdistwithin9.testcase \ relate1.testcase \ relate2.testcase \ relate3.testcase \ relate4.testcase \ relate5.testcase \ relate6.testcase \ relate7.testcase \ relate8.testcase \ relate9.testcase \ relations1.testcase \ relations2.testcase \ relations3.testcase \ relations4.testcase \ relations5.testcase \ relations6.testcase \ relations7.testcase \ relations8.testcase \ routing6.testcase \ simplify10.testcase \ simplify11.testcase \ simplify12.testcase \ simplify13.testcase \ simplify14.testcase \ simplify15.testcase \ simplify16.testcase \ simplify1.testcase \ simplify2.testcase \ simplify3.testcase \ simplify4.testcase \ simplify5.testcase \ simplify6.testcase \ simplify7.testcase \ simplify8.testcase \ simplify9.testcase \ st_area1.testcase \ st_area2.testcase \ st_area3.testcase \ st_area4.testcase \ st_area5.testcase \ st_area6.testcase \ st_area7.testcase \ st_area8.testcase \ st_area9.testcase \ st_length10.testcase \ st_length11.testcase \ st_length12.testcase \ st_length13.testcase \ st_length14.testcase \ st_length15.testcase \ st_length16.testcase \ st_length17.testcase \ st_length18.testcase \ st_length1.testcase \ st_length2.testcase \ st_length3.testcase \ st_length4.testcase \ st_length5.testcase \ st_length6.testcase \ st_length7.testcase \ st_length8.testcase \ st_length9.testcase \ st_perimeter10.testcase \ st_perimeter11.testcase \ st_perimeter12.testcase \ st_perimeter13.testcase \ st_perimeter14.testcase \ st_perimeter15.testcase \ st_perimeter16.testcase \ st_perimeter17.testcase \ st_perimeter18.testcase \ st_perimeter1.testcase \ st_perimeter2.testcase \ st_perimeter3.testcase \ st_perimeter4.testcase \ st_perimeter5.testcase \ st_perimeter6.testcase \ st_perimeter7.testcase \ st_perimeter8.testcase \ st_perimeter9.testcase \ symdifference10.testcase \ symdifference11.testcase \ symdifference1.testcase \ symdifference2.testcase \ symdifference3.testcase \ symdifference4.testcase \ symdifference5.testcase \ symdifference6.testcase \ symdifference7.testcase \ symdifference8.testcase \ symdifference9.testcase \ union10.testcase \ union11.testcase \ union12.testcase \ union13.testcase \ union14.testcase \ union15.testcase \ union16.testcase \ union17.testcase \ union18.testcase \ union19.testcase \ union1.testcase \ union20.testcase \ union21.testcase \ union22.testcase \ union23.testcase \ union24.testcase \ union25.testcase \ union26.testcase \ union27.testcase \ union28.testcase \ union29.testcase \ union2.testcase \ union3.testcase \ union4.testcase \ union5.testcase \ union6.testcase \ union7.testcase \ union8.testcase \ union9.testcase \ makearc15.testcase \ makearc19.testcase \ makearc23.testcase \ makecircle10.testcase \ makecircle11.testcase \ makecircle12.testcase \ makecircle13.testcase \ makecircle14.testcase \ makecircle15.testcase \ makecircle16.testcase \ makecircle17.testcase \ makecircle18.testcase \ makeellipse13.testcase \ makeellipse17.testcase \ makeellipse21.testcase \ makeellipticarc18.testcase \ makeellipticarc22.testcase \ makeellipticarc26.testcase \ makecircularsector15.testcase \ makecircularsector19.testcase \ makecircularsector23.testcase \ makecircularstripe15.testcase \ makecircularstripe19.testcase \ makecircularstripe23.testcase \ makeellipticsector18.testcase \ makeellipticsector22.testcase \ makeellipticsector26.testcase \ geoserror1.testcase \ geoserror2.testcase \ geoserror3.testcase \ geoserror4.testcase \ geoserror5.testcase \ geoserror6.testcase \ geoserror7.testcase \ geoserror7.testcase \ testgeos1.testcase \ testgeos2.testcase \ testgeos3.testcase \ testgeos4.testcase \ testgeos5.testcase \ testgeos6.testcase \ testgeos7.testcase \ testgeos8.testcase \ testgeos9.testcase \ testgeos10.testcase \ closestpoint10.testcase \ closestpoint11.testcase \ closestpoint12.testcase \ closestpoint13.testcase \ closestpoint14.testcase \ closestpoint15.testcase \ closestpoint16.testcase \ closestpoint17.testcase \ closestpoint18.testcase \ closestpoint19.testcase \ closestpoint1.testcase \ closestpoint20.testcase \ closestpoint21.testcase \ closestpoint22.testcase \ closestpoint2.testcase \ closestpoint3.testcase \ closestpoint4.testcase \ closestpoint5.testcase \ closestpoint6.testcase \ closestpoint7.testcase \ closestpoint8.testcase \ closestpoint9.testcase \ coveredby1.testcase \ coveredby2.testcase \ covers1.testcase \ covers2.testcase \ covers_covered1.testcase \ covers_covered2.testcase \ covers_covered3.testcase \ covers_covered4.testcase \ covers_covered5.testcase \ covers_covered6.testcase \ covers_covered7.testcase \ createtopo10.testcase \ createtopo11.testcase \ createtopo12.testcase \ createtopo13.testcase \ createtopo14.testcase \ createtopo15.testcase \ createtopo16.testcase \ createtopo17.testcase \ createtopo18.testcase \ createtopo1.testcase \ createtopo2.testcase \ createtopo3.testcase \ createtopo4.testcase \ createtopo5.testcase \ createtopo6.testcase \ createtopo7.testcase \ createtopo8.testcase \ createtopo9.testcase \ distance_geogr10.testcase \ distance_geogr11.testcase \ distance_geogr12.testcase \ distance_geogr1.testcase \ distance_geogr2.testcase \ distance_geogr3.testcase \ distance_geogr4.testcase \ distance_geogr5.testcase \ distance_geogr6.testcase \ distance_geogr7.testcase \ distance_geogr8.testcase \ distance_geogr9.testcase \ hausdorffdistance1.testcase \ hausdorffdistance2.testcase \ hausdorffdistance3.testcase \ hausdorffdistance4.testcase \ hausdorffdistance5.testcase \ hausdorffdistance6.testcase \ hausdorffdistance7.testcase \ hexgrid10.testcase \ hexgrid11.testcase \ hexgrid12.testcase \ hexgrid13.testcase \ hexgrid14.testcase \ hexgrid15.testcase \ hexgrid16.testcase \ hexgrid17.testcase \ hexgrid18.testcase \ hexgrid19.testcase \ hexgrid1.testcase \ hexgrid20.testcase \ hexgrid21.testcase \ hexgrid22.testcase \ hexgrid23.testcase \ hexgrid2.testcase \ hexgrid3.testcase \ hexgrid4.testcase \ hexgrid5.testcase \ hexgrid6.testcase \ hexgrid7.testcase \ hexgrid8.testcase \ hexgrid9.testcase \ interpolateequidistantpoint10.testcase \ interpolateequidistantpoint11.testcase \ interpolateequidistantpoint12.testcase \ interpolateequidistantpoint13.testcase \ interpolateequidistantpoint14.testcase \ interpolateequidistantpoint1.testcase \ interpolateequidistantpoint2.testcase \ interpolateequidistantpoint3.testcase \ interpolateequidistantpoint4.testcase \ interpolateequidistantpoint5.testcase \ interpolateequidistantpoint6.testcase \ interpolateequidistantpoint7.testcase \ interpolateequidistantpoint8.testcase \ interpolateequidistantpoint9.testcase \ interpolatepoint10.testcase \ interpolatepoint11.testcase \ interpolatepoint12.testcase \ interpolatepoint13.testcase \ interpolatepoint14.testcase \ interpolatepoint1.testcase \ interpolatepoint2.testcase \ interpolatepoint3.testcase \ interpolatepoint4.testcase \ interpolatepoint5.testcase \ interpolatepoint6.testcase \ interpolatepoint7.testcase \ interpolatepoint8.testcase \ interpolatepoint9.testcase \ linemerge10.testcase \ linemerge1.testcase \ linemerge2.testcase \ linemerge3.testcase \ linemerge4.testcase \ linemerge5.testcase \ linemerge6.testcase \ linemerge7.testcase \ linemerge8.testcase \ linemerge9.testcase \ linesnodes10.testcase \ linesnodes11.testcase \ linesnodes12.testcase \ linesnodes13.testcase \ linesnodes14.testcase \ linesnodes15.testcase \ linesnodes16.testcase \ linesnodes17.testcase \ linesnodes18.testcase \ linesnodes19.testcase \ linesnodes1.testcase \ linesnodes2.testcase \ linesnodes3.testcase \ linesnodes4.testcase \ linesnodes5.testcase \ linesnodes6.testcase \ linesnodes7.testcase \ linesnodes8.testcase \ linesnodes9.testcase \ linesubstring10.testcase \ linesubstring11.testcase \ linesubstring12.testcase \ linesubstring13.testcase \ linesubstring14.testcase \ linesubstring15.testcase \ linesubstring16.testcase \ linesubstring17.testcase \ linesubstring18.testcase \ linesubstring19.testcase \ linesubstring1.testcase \ linesubstring20.testcase \ linesubstring21.testcase \ linesubstring22.testcase \ linesubstring23.testcase \ linesubstring24.testcase \ linesubstring25.testcase \ linesubstring26.testcase \ linesubstring2.testcase \ linesubstring3.testcase \ linesubstring4.testcase \ linesubstring5.testcase \ linesubstring6.testcase \ linesubstring7.testcase \ linesubstring8.testcase \ linesubstring9.testcase \ locatepoint10.testcase \ locatepoint11.testcase \ locatepoint12.testcase \ locatepoint1.testcase \ locatepoint2.testcase \ locatepoint3.testcase \ locatepoint4.testcase \ locatepoint5.testcase \ locatepoint6.testcase \ locatepoint7.testcase \ locatepoint8.testcase \ locatepoint9.testcase \ offsetcurve10.testcase \ offsetcurve11.testcase \ offsetcurve12.testcase \ offsetcurve13.testcase \ offsetcurve14.testcase \ offsetcurve1.testcase \ offsetcurve2.testcase \ offsetcurve3.testcase \ offsetcurve4.testcase \ offsetcurve5.testcase \ offsetcurve6.testcase \ offsetcurve7.testcase \ offsetcurve8.testcase \ offsetcurve9.testcase \ ringsnodes1.testcase \ ringsnodes2.testcase \ ringsnodes3.testcase \ ringsnodes4.testcase \ ringsnodes5.testcase \ ringsnodes6.testcase \ sharedpaths10.testcase \ sharedpaths11.testcase \ sharedpaths12.testcase \ sharedpaths13.testcase \ sharedpaths14.testcase \ sharedpaths15.testcase \ sharedpaths16.testcase \ sharedpaths17.testcase \ sharedpaths18.testcase \ sharedpaths19.testcase \ sharedpaths1.testcase \ sharedpaths20.testcase \ sharedpaths21.testcase \ sharedpaths22.testcase \ sharedpaths23.testcase \ sharedpaths24.testcase \ sharedpaths25.testcase \ sharedpaths26.testcase \ sharedpaths27.testcase \ sharedpaths28.testcase \ sharedpaths29.testcase \ sharedpaths2.testcase \ sharedpaths30.testcase \ sharedpaths31.testcase \ sharedpaths32.testcase \ sharedpaths3.testcase \ sharedpaths4.testcase \ sharedpaths5.testcase \ sharedpaths6.testcase \ sharedpaths7.testcase \ sharedpaths8.testcase \ sharedpaths9.testcase \ shortestline1.testcase \ shortestline2.testcase \ shortestline3.testcase \ shortestline4.testcase \ shortestline5.testcase \ shortestline6.testcase \ shortestline7.testcase \ singlesidedbuffer11.testcase \ singlesidedbuffer12.testcase \ singlesidedbuffer13.testcase \ singlesidedbuffer14.testcase \ singlesidedbuffer15.testcase \ singlesidedbuffer16.testcase \ singlesidedbuffer17.testcase \ singlesidedbuffer1.testcase \ singlesidedbuffer2.testcase \ singlesidedbuffer3.testcase \ singlesidedbuffer4.testcase \ singlesidedbuffer5.testcase \ singlesidedbuffer6.testcase \ singlesidedbuffer7.testcase \ singlesidedbuffer8.testcase \ singlesidedbuffer9.testcase \ snap10.testcase \ snap1.testcase \ snap2.testcase \ snap3.testcase \ snap4.testcase \ snap5.testcase \ snap6.testcase \ snap7.testcase \ snap8.testcase \ snap9.testcase \ squaregrid10.testcase \ squaregrid11.testcase \ squaregrid12.testcase \ squaregrid13.testcase \ squaregrid14.testcase \ squaregrid15.testcase \ squaregrid16.testcase \ squaregrid17.testcase \ squaregrid18.testcase \ squaregrid19.testcase \ squaregrid1.testcase \ squaregrid20.testcase \ squaregrid21.testcase \ squaregrid22.testcase \ squaregrid23.testcase \ squaregrid2.testcase \ squaregrid3.testcase \ squaregrid4.testcase \ squaregrid5.testcase \ squaregrid6.testcase \ squaregrid7.testcase \ squaregrid8.testcase \ squaregrid9.testcase \ trianggrid10.testcase \ trianggrid11.testcase \ trianggrid12.testcase \ trianggrid13.testcase \ trianggrid14.testcase \ trianggrid15.testcase \ trianggrid16.testcase \ trianggrid17.testcase \ trianggrid18.testcase \ trianggrid19.testcase \ trianggrid1.testcase \ trianggrid20.testcase \ trianggrid21.testcase \ trianggrid22.testcase \ trianggrid23.testcase \ trianggrid2.testcase \ trianggrid3.testcase \ trianggrid4.testcase \ trianggrid5.testcase \ trianggrid6.testcase \ trianggrid7.testcase \ trianggrid8.testcase \ trianggrid9.testcase \ unaryunion1.testcase \ unaryunion2.testcase \ unaryunion3.testcase \ unaryunion4.testcase \ unaryunion5.testcase \ unaryunion6.testcase \ unaryunion7.testcase \ unaryunion8.testcase all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/sql_stmt_geos_tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/sql_stmt_geos_tests/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_length8.testcase0000664000175000017500000000033612544707704022344 00000000000000ST_Length - toxic linestring :memory: #use in-memory database SELECT ST_Length(GeomFromText('LINESTRING(1 1, 1 1)')); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText('LINESTRING(1 1, 1 1)')) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/difference11.testcase0000664000175000017500000000034712544707704022523 00000000000000difference - zeroblob second point :memory: #use in-memory database SELECT AsText(Difference(MakePoint(2,3),zeroblob(48))) 1 # rows (not including the header row) 1 # columns AsText(Difference(MakePoint(2,3),zeroblob(48))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths26.testcase0000664000175000017500000000076212544707704022746 00000000000000shared paths - multiline, not quite matching :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 15 0),(5 0, 5 5))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(11 0, 5 0),(5 5, 5 1))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 15 0),(5 0, 5 5))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(11 0, 5 0),(5 5, 5 1))"))) MULTILINESTRING((5 0, 6 0, 10 0, 11 0), (5 1, 5 5))libspatialite-4.3.0a/test/sql_stmt_geos_tests/symdifference10.testcase0000664000175000017500000000057712544707704023260 00000000000000symdifference - toxic first point :memory: #use in-memory database SELECT AsText(SymDifference(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(136,-35))); 1 # rows (not including the header row) 1 # columns AsText(SymDifference(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(136,-35))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths6.testcase0000664000175000017500000000051212544707704022655 00000000000000shared paths - two lines, no intersect. :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("LINESTRING(0 0, 1 0)"),GeomFromText("LINESTRING(5 0, 15 0)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("LINESTRING(0 0, 1 0)"),GeomFromText("LINESTRING(5 0, 15 0)"))) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolateequidistantpoint14.testcase0000664000175000017500000000065312544707704026307 00000000000000interpolate equidistant points - basic lineM :memory: #use in-memory database SELECT AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRINGM(0 0 4, 10 6 14)"), 2.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRINGM(0 0 4, 10 6 14)"), 2.5)) MULTIPOINT M(2.143732 1.286239 2.5, 4.287465 2.572479 5, 6.431197 3.858718 7.5, 8.574929 5.144958 10) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromtext16.testcase0000664000175000017500000000061412544707704023672 00000000000000BdMPolyFromText :memory: #use in-memory database SELECT AsEwkt(BdMPolyFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))', 4326)); 1 # rows (not including the header row) 1 # columns AsEwkt(BdMPolyFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))', 4326)) SRID=4326;MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(2 2,8 2,8 8,2 8,2 2))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid1.testcase0000664000175000017500000000026512544707704022501 00000000000000TriangularGrid - NULL geom :memory: #use in-memory database SELECT TriangularGrid(NULL, 1.0); 1 # rows (not including the header row) 1 # columns TriangularGrid(NULL, 1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/createtopo11.testcase0000664000175000017500000000035412544707704022574 00000000000000CreateTopology - 3 arguments, float dim (error) :memory: #use in-memory database SELECT CreateTopologyTables("hello_world", 4326, 3.3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("hello_world", 4326, 3.3) 0libspatialite-4.3.0a/test/sql_stmt_geos_tests/union19.testcase0000664000175000017500000000122312544707704021563 00000000000000union - POLYGON M with hole :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("POLYGONM((10 10 1, 15 10 2, 15 15 3, 10 15 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1))"), GeomFromText("POLYGONM((15 10 2, 16 10 1, 16 15 3, 10 15 4, 15 10 2))"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("POLYGONM((10 10 1, 15 10 2, 15 15 3, 10 15 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1))"), GeomFromText("POLYGONM((15 10 2, 16 10 1, 16 15 3, 10 15 4, 15 10 2))"))) POLYGON M((15 10 0, 10 10 0, 10 15 0, 15 15 0, 16 15 0, 16 10 0, 15 10 0), (11 11 0, 12 11 0, 12 12 0, 11 12 0, 11 11 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb4.testcase0000664000175000017500000000026512544707704023233 00000000000000BdPolyFromWKB - non-text, SRID :memory: #use in-memory database SELECT BdPolyFromWKB(26, 4326); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(26, 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths20.testcase0000664000175000017500000000121212544707704022727 00000000000000shared paths - two polygonZM, internal ring :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGONZM((0 0 2 4, 10 0 12 4, 10 10 12 4, 0 10 2 4, 0 0 2 4),(1 1 3 5, 3 1 5 5, 3 3 5 5, 1 3 3 5, 1 1 3 5))"),GeomFromText("POLYGONZM((5 0 7 4, 15 0 17 4, 15 10 17 4, 5 10 7 4, 5 0 7 4))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGONZM((0 0 2 4, 10 0 12 4, 10 10 12 4, 0 10 2 4, 0 0 2 4),(1 1 3 5, 3 1 5 5, 3 3 5 5, 1 3 3 5, 1 1 3 5))"),GeomFromText("POLYGONZM((5 0 7 4, 15 0 17 4, 15 10 17 4, 5 10 7 4, 5 0 7 4))"))) MULTILINESTRING ZM((5 0 7 0, 10 0 12 0), (10 10 12 0, 5 10 7 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/createtopo4.testcase0000664000175000017500000000034112544707704022512 00000000000000CreateTopology - 3 arguments, 3D NEW:memory: #use in-memory database SELECT CreateTopologyTables("my_prefix", 4326, "XYZ"); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("my_prefix", 4326, "XYZ") 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb7.testcase0000664000175000017500000000030712544707704023410 00000000000000BdMPolyFromWKB - zeroblob(58), no SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(zeroblob(58)); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(zeroblob(58)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint3.testcase0000664000175000017500000000033412544707704023074 00000000000000Closest Point - bad first geom :memory: #use in-memory database SELECT ClosestPoint(zeroblob(67), MakePoint(1, 2)); 1 # rows (not including the header row) 1 # columns ClosestPoint(zeroblob(67), MakePoint(1, 2)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/hausdorffdistance4.testcase0000664000175000017500000000043212544707704024042 00000000000000HausdorffDistance - bad blob second arg :memory: #use in-memory database SELECT HausdorffDistance(GeomFromText("LINESTRING(0 0, 10 0)"), zeroblob(40)) 1 # rows (not including the header row) 1 # columns HausdorffDistance(GeomFromText("LINESTRING(0 0, 10 0)"), zeroblob(40)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/singlesidedbuffer16.testcase0000664000175000017500000000055612544707704024124 00000000000000singlesidedbuffer - LINESTRINGM -X, float radius, right side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRINGM(0 20 1, 0 0 2)"), 3.5, 0)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRINGM(0 20 1, 0 0 2)"), 3.5, 0)) POLYGON M((0 20 0, 0 0 0, -3.5 0 0, -3.5 20 0, 0 20 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/polygonize3.testcase0000664000175000017500000000025512544707704022547 00000000000000POLYGONIZE - bad blob :memory: #use in-memory database SELECT Polygonize(zeroblob(9)); 1 # rows (not including the header row) 1 # columns Polygonize(zeroblob(9)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid6.testcase0000664000175000017500000000025712544707704022010 00000000000000isvalid6 :memory: #use in-memory database SELECT IsValid(GeomFromText("POLYGON()")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("POLYGON()")) -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/createtopo1.testcase0000664000175000017500000000031512544707704022510 00000000000000CreateTopology - 2 arguments, 2D NEW:memory: #use in-memory database (empty) SELECT CreateTopologyTables(4326, "XY"); 1 # rows (not including the header row) 1 # columns CreateTopologyTables(4326, "XY") 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid22.testcase0000664000175000017500000000066012544707704022063 00000000000000HexagonalGrid - valid - with Origin, edges_only :memory: #use in-memory database SELECT ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)'))); 1 # rows (not including the header row) 1 # columns ST_Length(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)'))) 22.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/shortestline4.testcase0000664000175000017500000000034012544707704023067 00000000000000ShortestLine - non-blob first arg :memory: #use in-memory database SELECT ShortestLine(3, GeomFromText("POINT(10 2)")) 1 # rows (not including the header row) 1 # columns ShortestLine(3, GeomFromText("POINT(10 2)")) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring1.testcase0000664000175000017500000000045212544707704023235 00000000000000linesubstring - basic :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRINGZ(0 0 10, 10 0 10)"), 0, 0.4)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRINGZ(0 0 10, 10 0 10)"), 0, 0.4)) LINESTRING Z(0 0 10, 4 0 10) libspatialite-4.3.0a/test/sql_stmt_geos_tests/polygonize11.testcase0000664000175000017500000000040412544707704022622 00000000000000POLYGONIZE - points :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("MULTIPOINT(0 0, 1 1, 0 2, -1 1)"))); 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("MULTIPOINT(0 0, 1 1, 0 2, -1 1)"))); (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromtext5.testcase0000664000175000017500000000027012544707704023431 00000000000000BdPolyFromText - null, SRID :memory: #use in-memory database SELECT BdPolyFromText(null, 4326); 1 # rows (not including the header row) 1 # columns BdPolyFromText(null, 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/buffer1.testcase0000664000175000017500000000477012544707704021625 00000000000000buffer1 :memory: #use in-memory database SELECT AsText(Buffer(GeomFromText("LINESTRING(0 0, 1 0)"), 0.2)); 1 # rows (not including the header row) 1 # columns AsText(Buffer(GeomFromText("LINESTRING(0 0, 1 0)"), 0.2)) POLYGON((1 0.2, 1.010467 0.199726, 1.020906 0.198904, 1.031287 0.197538, 1.041582 0.19563, 1.051764 0.193185, 1.061803 0.190211, 1.071674 0.186716, 1.081347 0.182709, 1.090798 0.178201, 1.1 0.173205, 1.108928 0.167734, 1.117557 0.161803, 1.125864 0.155429, 1.133826 0.148629, 1.141421 0.141421, 1.148629 0.133826, 1.155429 0.125864, 1.161803 0.117557, 1.167734 0.108928, 1.173205 0.1, 1.178201 0.090798, 1.182709 0.081347, 1.186716 0.071674, 1.190211 0.061803, 1.193185 0.051764, 1.19563 0.041582, 1.197538 0.031287, 1.198904 0.020906, 1.199726 0.010467, 1.2 0, 1.199726 -0.010467, 1.198904 -0.020906, 1.197538 -0.031287, 1.19563 -0.041582, 1.193185 -0.051764, 1.190211 -0.061803, 1.186716 -0.071674, 1.182709 -0.081347, 1.178201 -0.090798, 1.173205 -0.1, 1.167734 -0.108928, 1.161803 -0.117557, 1.155429 -0.125864, 1.148629 -0.133826, 1.141421 -0.141421, 1.133826 -0.148629, 1.125864 -0.155429, 1.117557 -0.161803, 1.108928 -0.167734, 1.1 -0.173205, 1.090798 -0.178201, 1.081347 -0.182709, 1.071674 -0.186716, 1.061803 -0.190211, 1.051764 -0.193185, 1.041582 -0.19563, 1.031287 -0.197538, 1.020906 -0.198904, 1.010467 -0.199726, 1 -0.2, 0 -0.2, -0.010467 -0.199726, -0.020906 -0.198904, -0.031287 -0.197538, -0.041582 -0.19563, -0.051764 -0.193185, -0.061803 -0.190211, -0.071674 -0.186716, -0.081347 -0.182709, -0.090798 -0.178201, -0.1 -0.173205, -0.108928 -0.167734, -0.117557 -0.161803, -0.125864 -0.155429, -0.133826 -0.148629, -0.141421 -0.141421, -0.148629 -0.133826, -0.155429 -0.125864, -0.161803 -0.117557, -0.167734 -0.108928, -0.173205 -0.1, -0.178201 -0.090798, -0.182709 -0.081347, -0.186716 -0.071674, -0.190211 -0.061803, -0.193185 -0.051764, -0.19563 -0.041582, -0.197538 -0.031287, -0.198904 -0.020906, -0.199726 -0.010467, -0.2 0, -0.199726 0.010467, -0.198904 0.020906, -0.197538 0.031287, -0.19563 0.041582, -0.193185 0.051764, -0.190211 0.061803, -0.186716 0.071674, -0.182709 0.081347, -0.178201 0.090798, -0.173205 0.1, -0.167734 0.108928, -0.161803 0.117557, -0.155429 0.125864, -0.148629 0.133826, -0.141421 0.141421, -0.133826 0.148629, -0.125864 0.155429, -0.117557 0.161803, -0.108928 0.167734, -0.1 0.173205, -0.090798 0.178201, -0.081347 0.182709, -0.071674 0.186716, -0.061803 0.190211, -0.051764 0.193185, -0.041582 0.19563, -0.031287 0.197538, -0.020906 0.198904, -0.010467 0.199726, 0 0.2, 1 0.2)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_length7.testcase0000664000175000017500000000032112544707704022335 00000000000000ST_Length - Empty linestring :memory: #use in-memory database SELECT ST_Length(GeomFromText("LINESTRING()")); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("LINESTRING()")) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/union26.testcase0000664000175000017500000000075612544707704021573 00000000000000union - MULTIPOLYGON (two Polygons) :memory: #use in-memory database SELECT AsText(ST_ForceLHR(GUnion(GeomFromText("POLYGON((10 10, 15 10, 15 15, 10 15, 10 10))"), GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))")))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(GUnion(GeomFromText("POLYGON((10 10, 15 10, 15 15, 10 15, 10 10))"), GeomFromText("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))")))) MULTIPOLYGON(((10 10, 10 15, 15 15, 15 10, 10 10)), ((1 1, 1 2, 2 2, 2 1, 1 1))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_perimeter1.testcase0000664000175000017500000000047712544707704023056 00000000000000ST_Perimeter - Polygon with 1 interior :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1))")); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1))")) 24.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/geoserror4.testcase0000664000175000017500000000104112544707704022352 00000000000000GEOS_Error - valid self-intersecting Linestring :memory: #use in-memory database SELECT ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 2 1, 1 2, 0 1, 2 0)')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg()); 1 # rows (not including the header row) 5 # columns ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 2 1, 1 2, 0 1, 2 0)')) GEOS_GetLastWarningMsg() GEOS_GetLastErrorMsg() GEOS_GetLastAuxErrorMsg() ST_AsText(GEOS_GetCriticalPointFromMsg()) 1 (NULL) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolateequidistantpoint13.testcase0000664000175000017500000000073712544707704026311 00000000000000interpolate equidistant points - basic lineZM :memory: #use in-memory database SELECT AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRINGZM(0 0 4 2, 10 6 14 12)"), 2.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRINGZM(0 0 4 2, 10 6 14 12)"), 2.5)) MULTIPOINT ZM(2.143732 1.286239 6.143732 2.5, 4.287465 2.572479 8.287465 5, 6.431197 3.858718 10.431197 7.5, 8.574929 5.144958 12.574929 10) libspatialite-4.3.0a/test/sql_stmt_geos_tests/locatepoint11.testcase0000664000175000017500000000037712544707704022755 00000000000000locate point - bad blob first arg :memory: #use in-memory database SELECT Line_Locate_Point(zeroblob(100), GeomFromText("POINT(0 1)")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(zeroblob(100), GeomFromText("POINT(0 1)")) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/union27.testcase0000664000175000017500000000026512544707704021567 00000000000000union - POINT :memory: #use in-memory database SELECT AsText(GUnion(makepoint(1,2))) 1 # rows (not including the header row) 1 # columns AsText(GUnion(makepoint(1,2))) POINT(1 2) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_perimeter17.testcase0000664000175000017500000000121212544707704023131 00000000000000ST_Perimeter - GeometryCollection (Long/Lat metric - Ellipsoid) :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 1); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 1) 102821.231470:6 libspatialite-4.3.0a/test/sql_stmt_geos_tests/pointonsurface1.testcase0000664000175000017500000000035612544707704023407 00000000000000pointonsurface - point :memory: #use in-memory database SELECT astext(PointOnSurface(geomFromText("POINT(1,1)", 4326))); 1 # rows (not including the header row) 1 # columns astext(PointOnSurface(geomFromText("POINT(1,1)", 4326))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistancewithin11.testcase0000664000175000017500000000035312544707704024007 00000000000000PtDistWithin - WGS-84 first arg :memory: #use in-memory database SELECT PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4), 2) 1 # rows (not including the header row) 1 # columns PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4), 2) 1libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistancewithin18.testcase0000664000175000017500000000050512544707704024015 00000000000000PtDistWithin - LINESTRING and POINT, WGS-84 both args, geodesic :memory: #use in-memory database SELECT PtDistWithin(GeomFromText("LINESTRING(4 2, 3 2)", 4326), MakePoint(4,4,4326), 5, 1) 1 # rows (not including the header row) 1 # columns PtDistWithin(GeomFromText("LINESTRING(4 2, 3 2)", 4326), MakePoint(4,4,4326), 5, 1) 1libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistancewithin9.testcase0000664000175000017500000000042112544707704023732 00000000000000PtDistWithin- two points, float distance, bad fourth arg :memory: #use in-memory database SELECT PtDistWithin(Makepoint(4,2), MakePoint(4,4), 2.1, "hello") 1 # rows (not including the header row) 1 # columns PtDistWithin(Makepoint(4,2), MakePoint(4,4), 2.1, "hello") (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/createtopo5.testcase0000664000175000017500000000033512544707704022516 00000000000000CreateTopology - 3 arguments, 3D int NEW:memory: #use in-memory database SELECT CreateTopologyTables("my_prefix", 4326, 3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("my_prefix", 4326, 3) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/makeellipticsector26.testcase0000664000175000017500000000044212544707704024316 00000000000000makeellipticsector26 - valid step :memory: #use in-memory database SELECT ST_Area(MakeEllipticSector(0.0, 0.0, 100.0, 200.0, 30.0, 60.0, 4326, 1.0)); 1 # rows (not including the header row) 1 # columns ST_Area(MakeEllipticSector(0.0, 0.0, 100.0, 200.0, 30.0, 60.0, 4326, 1.0)) 5235.7219:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/makecircle13.testcase0000664000175000017500000000033212544707704022524 00000000000000makecircle13 - BLOB srid :memory: #use in-memory database SELECT ST_Length(MakeCircle(0, 0, 100, zeroblob(4))); 1 # rows (not including the header row) 1 # columns ST_Length(MakeCircle(0, 0, 100, zeroblob(4))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromtext8.testcase0000664000175000017500000000031212544707704023431 00000000000000BdPolyFromText - zeroblob(58), SRID :memory: #use in-memory database SELECT BdPolyFromText(zeroblob(58), 4); 1 # rows (not including the header row) 1 # columns BdPolyFromText(zeroblob(58), 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/buildarea2.testcase0000664000175000017500000000025512544707704022277 00000000000000buildarea - zeroblob arg :memory: #use in-memory database SELECT BuildArea(zeroblob(48)) 1 # rows (not including the header row) 1 # columns BuildArea(zeroblob(48)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/centroid5.testcase0000664000175000017500000000024712544707704022162 00000000000000Centroid - zeroblob :memory: #use in-memory database SELECT centroid(zeroblob(40)); 1 # rows (not including the header row) 1 # columns centroid(zeroblob(40)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/polygonize5.testcase0000664000175000017500000000052412544707704022550 00000000000000POLYGONIZE - simple polygonz :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("LINESTRINGZ(0 0 5, 1 1 6, 0 2 7, -1 1 6, 0 0 5)"))) 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("LINESTRINGZ(0 0 5, 1 1 6, 0 2 7, -1 1 6, 0 0 5)"))) POLYGON Z((0 0 5, -1 1 6, 0 2 7, 1 1 6, 0 0 5)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolateequidistantpoint4.testcase0000664000175000017500000000051212544707704026220 00000000000000interpolate equidistant points - basic line, zero distance :memory: #use in-memory database SELECT AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), 0)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistwithin1.testcase0000664000175000017500000000031312544707704023073 00000000000000PtDistWithin invalid arg: NULL pt1 :memory: SELECT PtDistWithin(NULL, GeomFromText("POINT(5 5)", 4326), 10.0, 1); 1 # rows 1 # column PtDistWithin(NULL, GeomFromText("POINT(5 5)", 4326), 10.0, 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linemerge2.testcase0000664000175000017500000000022512544707704022313 00000000000000linemerge - non-blob :memory: #use in-memory database SELECT LineMerge(44) 1 # rows (not including the header row) 1 # columns LineMerge(44) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb5.testcase0000664000175000017500000000026512544707704023234 00000000000000BdPolyFromWKB - null, SRID :memory: #use in-memory database SELECT BdPolyFromWKB(null, 4326); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(null, 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolatepoint6.testcase0000664000175000017500000000032512544707704023751 00000000000000interpolate point - bad blob :memory: #use in-memory database SELECT Line_Interpolate_Point(zeroblob(100), 0.5) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Point(zeroblob(100), 0.5) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/convexhull5.testcase0000664000175000017500000000025512544707704022541 00000000000000convex hull - zeroblob :memory: #use in-memory database SELECT ConvexHull(zeroblob(100)) 1 # rows (not including the header row) 1 # columns ConvexHull(zeroblob(100)) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/buildarea3.testcase0000664000175000017500000000056512544707704022304 00000000000000buildarea - simple polygon :memory: #use in-memory database SELECT AsText(BuildArea(GeomFromText('MULTILINESTRING((0 0, 10 0), (10 0, 10 10), (10 10, 0 10), (0 10, 0 0))'))) 1 # rows (not including the header row) 1 # columns AsText(BuildArea(GeomFromText('MULTILINESTRING((0 0, 10 0), (10 0, 10 10), (10 10, 0 10), (0 10, 0 0))'))) POLYGON((10 0, 0 0, 0 10, 10 10, 10 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance_geogr4.testcase0000664000175000017500000000051112544707704023321 00000000000000Distance Long/Lat metric (great circle) - two 3D-M points :memory: #use in-memory database SELECT ST_Distance(MakePointZM(11.1, 42.1, 0.1, 1), MakePointZM(11.2, 42.2, 0.2, 2), 0); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePointZM(11.1, 42.1, 0.1, 1), MakePointZM(11.2, 42.2, 0.2, 2), 0) 13842.154368:6 libspatialite-4.3.0a/test/sql_stmt_geos_tests/intersection12.testcase0000664000175000017500000000063412544707704023137 00000000000000intersection - POLYGONZM, POINTZM, non-intersecting :memory: #use in-memory database SELECT AsText(Intersection(GeomFromText("POLYGONZM((0 0 1 4, 4 0 1 2, 4 4 1 4, 0 4 1 2, 0 0 1 4))"), GeomFromText("POINTZM(-1 3 1 4)"))) 1 # rows (not including the header row) 1 # columns AsText(Intersection(GeomFromText("POLYGONZM((0 0 1 4, 4 0 1 2, 4 4 1 4, 0 4 1 2, 0 0 1 4))"), GeomFromText("POINTZM(-1 3 1 4)"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance9.testcase0000664000175000017500000000044712544707704022153 00000000000000Distance - toxic first line :memory: #use in-memory database SELECT Distance(GeomFromText("LINESTRING(0 0, 0 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 1 # rows (not including the header row) 1 # columns Distance(GeomFromText("LINESTRING(0 0, 0 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid3.testcase0000664000175000017500000000033012544707704022474 00000000000000TriangularGrid - Point geom :memory: #use in-memory database SELECT TriangularGrid(MakePoint(1, 1, 4326), 1.0); 1 # rows (not including the header row) 1 # columns TriangularGrid(MakePoint(1, 1, 4326), 1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring17.testcase0000664000175000017500000000050312544707704023321 00000000000000linesubstring - basic vary ZM :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRINGZM(0 0 10 5, 10 0 5 0)"), 0.2, 0.7)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRINGZM(0 0 10 5, 10 0 5 0)"), 0.2, 0.7)) LINESTRING ZM(2 0 9 0, 7 0 6.5 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths31.testcase0000664000175000017500000000074012544707704022736 00000000000000shared paths - multiline, reverse :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 15 0),(5 0, 5 5))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(5 0, 11 0),(5 0, 5 5))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 15 0),(5 0, 5 5))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(5 0, 11 0),(5 0, 5 5))"))) MULTILINESTRING((5 5, 5 0, 6 0, 10 0, 11 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/testgeos3.testcase0000664000175000017500000000034512544707704022205 00000000000000GEOS test - Disjoint test_geos_x.sqlite SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Disjoint(a.geometry, b.geometry) = 1; 1 # rows (not including the header row) 1 # columns Count(*) 2 libspatialite-4.3.0a/test/sql_stmt_geos_tests/covers_covered4.testcase0000664000175000017500000000042712544707704023362 00000000000000CoveredBy- zero blob first arg :memory: #use in-memory database SELECT CoveredBy(geom1,geom2) from (SELECT zeroblob(48) as geom1,GeomFromText("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))") as geom2) dummy; 1 # rows (not including the header row) 1 # columns CoveredBy(geom1,geom2) -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/issimple6.testcase0000664000175000017500000000037512544707704022203 00000000000000IsSimple - GeometryCollection, single point :memory: #use in-memory database SELECT IsSimple(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2))")) 1 # rows (not including the header row) 1 # columns IsSimple(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2))")) -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid12.testcase0000664000175000017500000000057412544707704022067 00000000000000isvalid (POLYGONM with hole) :memory: #use in-memory database SELECT IsValid(GeomFromText("POLYGONM((10 10 1, 15 10 2, 15 15 3, 10 15 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1))")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("POLYGONM((10 10 1, 15 10 2, 15 15 3, 10 15 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid7.testcase0000664000175000017500000000044212544707704022520 00000000000000SquareGrid - Polygon geom - NULL size :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), NULL); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes5.testcase0000664000175000017500000000060312544707704022512 00000000000000LinesCutAtNodes - line, endnodes :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINT(0 0, 10 0)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINT(0 0, 10 0)"))) LINESTRING(0 0, 0 10, 10 10, 10 0)libspatialite-4.3.0a/test/sql_stmt_geos_tests/union4.testcase0000664000175000017500000000031112544707704021472 00000000000000union - null second point :memory: #use in-memory database SELECT AsText(GUnion(MakePoint(2,3), null)); 1 # rows (not including the header row) 1 # columns AsText(GUnion(MakePoint(2,3), null)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance_geogr12.testcase0000664000175000017500000000072512544707704023407 00000000000000Distance Long/Lat metric (NULL use_ellipsoid) :memory: #use in-memory database SELECT ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), GeomFromText('POLYGON((11.3 42.3, 11.4 42.3, 11.4 42.4, 11.3 42.4, 11.3 42.3))'), NULL); 1 # rows (not including the header row) 1 # columns ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), GeomFromText('POLYGON((11.3 42.3, 11.4 42.3, 11.4 42.4, 11.3 42.4, 11.3 42.3))'), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_length4.testcase0000664000175000017500000000037012544707704022336 00000000000000ST_Length - Linestring not closed :memory: #use in-memory database SELECT ST_Length(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0)")); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0)")) 12.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolatepoint2.testcase0000664000175000017500000000043312544707704023745 00000000000000interpolate point - basic line :memory: #use in-memory database SELECT AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), 0.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), 0.5)) POINT(5 3)libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb1.testcase0000664000175000017500000000052212544707704023401 00000000000000BdMPolyFromWKB :memory: #use in-memory database SELECT AsText(BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')))); 1 # rows (not including the header row) 1 # columns AsText(BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')))) MULTIPOLYGON(((0 0, 0 1, 1 1, 1 0, 0 0))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/locatepoint9.testcase0000664000175000017500000000037612544707704022703 00000000000000locate point - NULL second arg :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), NULL) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes16.testcase0000664000175000017500000000062212544707704022575 00000000000000LinesCutAtNodes - closed linestring, polygon second arg :memory: #use in-memory database SELECT LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"),GeomFromText("POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))")) 1 # rows (not including the header row) 1 # columns LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"),GeomFromText("POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))")) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/hausdorffdistance5.testcase0000664000175000017500000000042012544707704024040 00000000000000HausdorffDistance - non blob second arg :memory: #use in-memory database SELECT HausdorffDistance(GeomFromText("LINESTRING(0 0, 10 0)"), "hello") 1 # rows (not including the header row) 1 # columns HausdorffDistance(GeomFromText("LINESTRING(0 0, 10 0)"), "hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring6.testcase0000664000175000017500000000031212544707704023235 00000000000000linesubstring - bad arg :memory: #use in-memory database SELECT AsText(Line_Substring(null, 0.2, 0.6)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(null, 0.2, 0.6)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid3.testcase0000664000175000017500000000032512544707704022000 00000000000000HexagonalGrid - Point geom :memory: #use in-memory database SELECT HexagonalGrid(MakePoint(1, 1, 4326), 1.0); 1 # rows (not including the header row) 1 # columns HexagonalGrid(MakePoint(1, 1, 4326), 1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/hausdorffdistance6.testcase0000664000175000017500000000050512544707704024045 00000000000000HausdorffDistance - two multipoints :memory: #use in-memory database SELECT HausdorffDistance(GeomFromText("MULTIPOINT(0 0, 10 0)"), GeomFromText("MULTIPOINT(0 2, 10 2)")) 1 # rows (not including the header row) 1 # columns HausdorffDistance(GeomFromText("MULTIPOINT(0 0, 10 0)"), GeomFromText("MULTIPOINT(0 2, 10 2)")) 2.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb19.testcase0000664000175000017500000000031312544707704023470 00000000000000BdMPolyFromWKB - zeroblob, SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(zeroblob(25), 4326); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(zeroblob(25), 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/union16.testcase0000664000175000017500000000044712544707704021567 00000000000000union - MULTIPOINTM :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("MULTIPOINTM(1 3 4)"),GeomFromText("POINTM(1 3 4)"))) 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("MULTIPOINTM(1 3 4)"),GeomFromText("POINTM(1 3 4)"))) MULTIPOINT M(1 3 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/polygonize13.testcase0000664000175000017500000000126012544707704022625 00000000000000POLYGONIZE - polygonzm with two inner ring :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("MULTILINESTRINGZM((0 0 5 4, 10 0 6 2, 10 12 7 3, 0 12 6 1, 0 0 5 4),(1 1 0 0, 3 1 0 2, 3 3 4 1, 1 3 1 2, 1 1 0 0),(4 4 0 0, 5 4 0 0, 5 5 0 0, 4 5 1 0, 4 4 0 0))"))) 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("MULTILINESTRINGZM((0 0 5 4, 10 0 6 2, 10 12 7 3, 0 12 6 1, 0 0 5 4),(1 1 0 0, 3 1 0 2, 3 3 4 1, 1 3 1 2, 1 1 0 0),(4 4 0 0, 5 4 0 0, 5 5 0 0, 4 5 1 0, 4 4 0 0))"))) POLYGON ZM((0 0 5 0, 0 12 6 0, 10 12 7 0, 10 0 6 0, 0 0 5 0), (1 1 0 0, 3 1 0 0, 3 3 4 0, 1 3 1 0, 1 1 0 0), (4 4 0 0, 5 4 0 0, 5 5 0 0, 4 5 1 0, 4 4 0 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid14.testcase0000664000175000017500000000046112544707704022064 00000000000000isvalid Geometry Collection of one polygon :memory: #use in-memory database SELECT IsValid(GeomFromText("GEOMETRYCOLLECTION(POLYGON((0 0, 10 0, 10 10, 0 10, 0 0)))")) 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("GEOMETRYCOLLECTION(POLYGON((0 0, 10 0, 10 10, 0 10, 0 0)))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/union17.testcase0000664000175000017500000000106712544707704021567 00000000000000union - POLYGON with hole :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11))"), GeomFromText("POLYGON((15 10, 16 10, 16 15, 10 15, 15 10))"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11))"), GeomFromText("POLYGON((15 10, 16 10, 16 15, 10 15, 15 10))"))) POLYGON((15 10, 10 10, 10 15, 15 15, 16 15, 16 10, 15 10), (11 11, 12 11, 12 12, 11 12, 11 11)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/routing6.testcase0000664000175000017500000000043112544707704022036 00000000000000routing: integer ids (A*, from-to) sql_stmt_tests/testdb1.sqlite UPDATE roads_net SET Algorithm = 'a*'; SELECT GLength(Geometry) FROM roads_net WHERE NodeTo = 29 AND NodeFrom = 32; 4 # rows (not including the header row) 1 # columns GLength(Geometry) 0.0018:4 (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance2.testcase0000664000175000017500000000033512544707704022140 00000000000000Distance - two identical points :memory: #use in-memory database SELECT ST_Distance(MakePoint(1, 2), MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns ST_Distance(MakePoint(1, 2), MakePoint(1, 2)) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/makeellipticarc26.testcase0000664000175000017500000000043312544707704023564 00000000000000makeellipticarc26 - valid step :memory: #use in-memory database SELECT ST_Length(MakeEllipticArc(0.0, 0.0, 100.0, 200.0, 30.0, 60.0, 4326, 1.0)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeEllipticArc(0.0, 0.0, 100.0, 200.0, 30.0, 60.0, 4326, 1.0)) 82.4595:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb3.testcase0000664000175000017500000000025412544707704023230 00000000000000BdPolyFromWKB - non-text, no SRID :memory: #use in-memory database SELECT BdPolyFromWKB(26); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(26) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb2.testcase0000664000175000017500000000054112544707704023226 00000000000000BdPolyFromWKB - SRID :memory: #use in-memory database SELECT AsEWkt(BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')), 4326)); 1 # rows (not including the header row) 1 # columns AsEWkt(BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')), 4326)) SRID=4326;POLYGON((0 0,0 1,1 1,1 0,0 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths27.testcase0000664000175000017500000000072712544707704022750 00000000000000shared paths - multiline :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 15 0),(5 0, 5 5))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(11 0, 5 0),(5 5, 5 0))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 15 0),(5 0, 5 5))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(11 0, 5 0),(5 5, 5 0))"))) MULTILINESTRING((5 5, 5 0, 6 0, 10 0, 11 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/boundary3.testcase0000664000175000017500000000024612544707704022173 00000000000000Boundary - bad blob :memory: #use in-memory database SELECT Boundary(zeroblob(100)) 1 # rows (not including the header row) 1 # columns Boundary(zeroblob(100)) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint13.testcase0000664000175000017500000000045512544707704023161 00000000000000Closest Point - lineZ and Point :memory: #use in-memory database SELECT AsText(ClosestPoint(MakePoint(4, 6), GeomFromText("LINESTRINGZ(0 0 0, 0 10 5)"))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(MakePoint(4, 6), GeomFromText("LINESTRINGZ(0 0 0, 0 10 5)"))) POINT(4 6) libspatialite-4.3.0a/test/sql_stmt_geos_tests/symdifference8.testcase0000664000175000017500000000047212544707704023201 00000000000000symdifference - two pointM :memory: #use in-memory database SELECT AsText(SymDifference(GeomFromText("POINTM(1 3 4)"),GeomFromText("POINTM(4 2 6)"))) 1 # rows (not including the header row) 1 # columns AsText(SymDifference(GeomFromText("POINTM(1 3 4)"),GeomFromText("POINTM(4 2 6)"))) MULTIPOINT M(1 3 0, 4 2 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring10.testcase0000664000175000017500000000053312544707704023315 00000000000000linesubstring - geometry collection - line :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("GeometryCollection(LINESTRING(0 0, 1 2))"), 0.2, 0.6)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("GeometryCollection(LINESTRING(0 0, 1 2))"), 0.2, 0.6)) LINESTRING(0.2 0.4, 0.6 1.2) libspatialite-4.3.0a/test/sql_stmt_geos_tests/boundary8.testcase0000664000175000017500000000044012544707704022174 00000000000000Boundary - open linestringM :memory: #use in-memory database SELECT AsText(Boundary(GeomFromText("LINESTRINGM(1 2 3, 4 -3 6, 2 -1 -4)"))) 1 # rows (not including the header row) 1 # columns AsText(Boundary(GeomFromText("LINESTRINGM(1 2 3, 4 -3 6, 2 -1 -4)"))) MULTIPOINT M(1 2 0, 2 -1 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid14.testcase0000664000175000017500000000050612544707704022577 00000000000000SquareGrid - Polygon geom - zeroblob origin :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths32.testcase0000664000175000017500000000074612544707704022745 00000000000000shared paths - multiline, reverse first :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 5 5),(5 0, 15 0))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(5 0, 11 0),(5 0, 5 5))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 5 5),(5 0, 15 0))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(5 0, 11 0),(5 0, 5 5))"))) MULTILINESTRING((11 0, 10 0, 6 0, 5 0, 5 5))libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb1.testcase0000664000175000017500000000051012544707704023221 00000000000000BdPolyFromWKB :memory: #use in-memory database SELECT AsText(BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')))); 1 # rows (not including the header row) 1 # columns AsText(BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')))) POLYGON((0 0, 0 1, 1 1, 1 0, 0 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb19.testcase0000664000175000017500000000031012544707704023310 00000000000000BdPolyFromWKB - zeroblob, SRID :memory: #use in-memory database SELECT BdPolyFromWKB(zeroblob(25), 4326); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(zeroblob(25), 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_perimeter9.testcase0000664000175000017500000000062012544707704023054 00000000000000ST_Perimeter - MultiPolygon :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("MULTIPOLYGON(((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10)))")); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("MULTIPOLYGON(((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1)), ((10 10, 11 10, 11 11, 10 11, 10 10)))")) 28.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/locatepoint5.testcase0000664000175000017500000000050712544707704022673 00000000000000locate point - LINESTRING second arg :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), GeomFromText("LINESTRING(10 0, 0 10)")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), GeomFromText("LINESTRING(10 0, 0 10)")) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/createtopo2.testcase0000664000175000017500000000030712544707704022512 00000000000000CreateTopology - 2 arguments, 3D NEW:memory: #use in-memory database SELECT CreateTopologyTables(4326, "XYZ"); 1 # rows (not including the header row) 1 # columns CreateTopologyTables(4326, "XYZ") 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/symdifference1.testcase0000664000175000017500000000037212544707704023171 00000000000000symdifference - two points :memory: #use in-memory database SELECT AsText(SymDifference(Makepoint(1,2), MakePoint(2,3))) 1 # rows (not including the header row) 1 # columns AsText(SymDifference(Makepoint(1,2), MakePoint(2,3))) MULTIPOINT(1 2, 2 3) libspatialite-4.3.0a/test/sql_stmt_geos_tests/simplify10.testcase0000664000175000017500000000044112544707704022257 00000000000000SimplifyPreserveTopology - negative second arg :memory: #use in-memory database SELECT SimplifyPreserveTopology(GeomFromText("LINESTRING(1 2, 3 4)"), -287.3) 1 # rows (not including the header row) 1 # columns SimplifyPreserveTopology(GeomFromText("LINESTRING(1 2, 3 4)"), -287.3) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/createtopo8.testcase0000664000175000017500000000035412544707704022522 00000000000000CreateTopology - 3 arguments, text SRID (error) :memory: #use in-memory database SELECT CreateTopologyTables("my_prefix", "WGS-84", 3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("my_prefix", "WGS-84", 3) 0libspatialite-4.3.0a/test/sql_stmt_geos_tests/union18.testcase0000664000175000017500000000134712544707704021571 00000000000000union - POLYGON Z with hole :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("POLYGONZ((10 10 100, 15 10 100, 15 15 100, 10 15 100, 10 10 100), (11 11 102, 12 11 102, 12 12 102, 11 12 102, 11 11 102))"), GeomFromText("POLYGONZ((15 10 100, 16 10 100, 16 15 100, 10 15 100, 15 10 100))"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("POLYGONZ((10 10 100, 15 10 100, 15 15 100, 10 15 100, 10 10 100), (11 11 102, 12 11 102, 12 12 102, 11 12 102, 11 11 102))"), GeomFromText("POLYGONZ((15 10 100, 16 10 100, 16 15 100, 10 15 100, 15 10 100))"))) POLYGON Z((15 10 100, 10 10 100, 10 15 100, 15 15 100, 16 15 100, 16 10 100, 15 10 100), (11 11 102, 12 11 102, 12 12 102, 11 12 102, 11 11 102)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistancewithin13.testcase0000664000175000017500000000036512544707704024014 00000000000000PtDistWithin - WGS-84 both args :memory: #use in-memory database SELECT PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4,4326), 2) 1 # rows (not including the header row) 1 # columns PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4,4326), 2) 0libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid14.testcase0000664000175000017500000000051712544707704022065 00000000000000HexagonalGrid - Polygon geom - zeroblob origin :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linemerge6.testcase0000664000175000017500000000053112544707704022317 00000000000000linemerge - GEOMETRY COLLECTION :memory: #use in-memory database SELECT AsText(LineMerge(GeomFromText("GeometryCollection(LINESTRING(0 1, 1 2),LINESTRING(1 2, 3 4))"))) 1 # rows (not including the header row) 1 # columns AsText(LineMerge(GeomFromText("GeometryCollection(LINESTRING(0 1, 1 2),LINESTRING(1 2, 3 4))"))) LINESTRING(0 1, 1 2, 3 4) libspatialite-4.3.0a/test/sql_stmt_geos_tests/convexhull9.testcase0000664000175000017500000000067312544707704022551 00000000000000convex hull - polygonZM :memory: #use in-memory database SELECT AsText(ConvexHull(GeomFromText("POLYGONZM((0 0 1 1, 1 0 3 2, 1 1 5 3, 2 1 5 4, 2 0 3 5, 10 0 1 6, 10 10 2 7, 0 10 2 2, 0 0 1 1))"))) 1 # rows (not including the header row) 1 # columns AsText(ConvexHull(GeomFromText("POLYGONZM((0 0 1 1, 1 0 3 2, 1 1 5 3, 2 1 5 4, 2 0 3 5, 10 0 1 6, 10 10 2 7, 0 10 2 2, 0 0 1 1))"))) POLYGON ZM((0 0 1 0, 0 10 2 0, 10 10 2 0, 10 0 1 0, 0 0 1 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/testgeos4.testcase0000664000175000017500000000034512544707704022206 00000000000000GEOS test - Overlaps test_geos_x.sqlite SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Overlaps(a.geometry, b.geometry) = 1; 1 # rows (not including the header row) 1 # columns Count(*) 0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid2.testcase0000664000175000017500000000030712544707704022477 00000000000000TriangularGrid - zeroblob geom :memory: #use in-memory database SELECT TriangularGrid(zeroblob(4), 1.0); 1 # rows (not including the header row) 1 # columns TriangularGrid(zeroblob(4), 1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/relations4.testcase0000664000175000017500000000113012544707704022342 00000000000000Relationship tests - bad second blob :memory: #use in-memory database SELECT Equals(geom1, geom2), Intersects(geom1, geom2), Disjoint(geom1, geom2), Overlaps(geom1, geom2), Crosses(geom1, geom2), Touches(geom1, geom2), Within(geom1, geom2), Contains(geom1, geom2) FROM (SELECT GeomFromText("POINT(3 4)") as geom1, zeroblob(10) as geom2) dummy; 1 # rows (not including the header row) 8 # columns Equals(geom1, geom2) Intersects(geom1, geom2) Disjoint(geom1, geom2) Overlaps(geom1, geom2) Crosses(geom1, geom2) Touches(geom1, geom2) Within(geom1, geom2) Contains(geom1, geom2) -1 -1 -1 -1 -1 -1 -1 -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring24.testcase0000664000175000017500000000050512544707704023321 00000000000000linesubstring - zero length :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRINGZM(0 0 1 0, 0 0 2 2, 0 0 3 4)"), 0, 1)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRINGZM(0 0 1 0, 0 0 2 2, 0 0 3 4)"), 0, 1)) LINESTRING ZM(0 0 1 0, 0 0 1 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid5.testcase0000664000175000017500000000056212544707704022005 00000000000000HexagonalGrid - Collection (Point - Polygon) geom :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/makecircularstripe23.testcase0000664000175000017500000000043712544707704024325 00000000000000makecircularstripe23 - valid step :memory: #use in-memory database SELECT ST_Area(MakeCircularStripe(0.0, 0.0, 100.0, 90.0, 30.0, 60.0, 4326, 1.0)); 1 # rows (not including the header row) 1 # columns ST_Area(MakeCircularStripe(0.0, 0.0, 100.0, 90.0, 30.0, 60.0, 4326, 1.0)) 497.3935:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid10.testcase0000664000175000017500000000050412544707704022555 00000000000000TriangularGrid - Polygon geom - text edges_only :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 'alpha'); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid19.testcase0000664000175000017500000000060612544707704022571 00000000000000TriangularGrid - Polygon geom - MultiPoint Origin :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('MULTIPOINT(0 0, 1 1)')); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('MULTIPOINT(0 0, 1 1)')) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_perimeter15.testcase0000664000175000017500000000051412544707704023133 00000000000000ST_Perimeter - Linestring (Long/Lat metric - Ellipsoid) :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8)"), 1); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8)"), 1) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_perimeter6.testcase0000664000175000017500000000027012544707704023052 00000000000000ST_Perimeter - bad blob (error) :memory: #use in-memory database SELECT ST_Perimeter(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_Perimeter(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid2.testcase0000664000175000017500000000036612544707704022005 00000000000000isvalid2 :memory: #use in-memory database SELECT IsValid(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/convexhull4.testcase0000664000175000017500000000047312544707704022542 00000000000000convex hull - polygon without chip :memory: #use in-memory database SELECT AsText(ConvexHull(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))"))) 1 # rows (not including the header row) 1 # columns AsText(ConvexHull(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))"))) POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb13.testcase0000664000175000017500000000050412544707704023307 00000000000000BdPolyFromWKB - text SRID :memory: #use in-memory database SELECT BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', "not an int"))); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', "not an int"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/testgeos5.testcase0000664000175000017500000000034312544707704022205 00000000000000GEOS test - Crosses test_geos_x.sqlite SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Crosses(a.geometry, b.geometry) = 1; 1 # rows (not including the header row) 1 # columns Count(*) 0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/union22.testcase0000664000175000017500000000210412544707704021554 00000000000000union - GEOMETRYCOLLECTION Z (Polygon with hole / Linestring) :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(30 30 100, 31 31 101), POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100)))"), GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(31 31 101, 35 0 100), POLYGONZ((15 10 101, 16 10 102, 16 15 102, 10 15 103, 15 10 101)))"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(30 30 100, 31 31 101), POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100)))"), GeomFromText("GEOMETRYCOLLECTIONZ(LINESTRINGZ(31 31 101, 35 0 100), POLYGONZ((15 10 101, 16 10 102, 16 15 102, 10 15 103, 15 10 101)))"))) GEOMETRYCOLLECTION Z(LINESTRING Z(30 30 100, 31 31 101), LINESTRING Z(31 31 101, 35 0 100), POLYGON Z((15 10 101, 10 10 100, 10 15 103, 15 15 102, 16 15 102, 16 10 102, 15 10 101), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/pointonsurface4.testcase0000664000175000017500000000057712544707704023417 00000000000000PointOnSurface - square :memory: #use in-memory database SELECT Contains(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326), PointOnSurface(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326))); 1 # rows (not including the header row) 1 # columns Contains(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326), PointOnSurface(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326))) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/ringsnodes3.testcase0000664000175000017500000000025712544707704022525 00000000000000RingsCutAtNodes - non-blob :memory: #use in-memory database SELECT RingsCutAtNodes("hello") 1 # rows (not including the header row) 1 # columns RingsCutAtNodes("hello") (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid13.testcase0000664000175000017500000000071712544707704022067 00000000000000isvalid (POLYGONZM with hole) :memory: #use in-memory database SELECT IsValid(GeomFromText("POLYGONZM((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 4, 10 10 100 1), (11 11 100 1, 12 11 101 2, 12 12 102 3, 11 12 103 4, 11 11 100 1))")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("POLYGONZM((10 10 100 1, 15 10 101 2, 15 15 102 3, 10 15 103 4, 10 10 100 1), (11 11 100 1, 12 11 101 2, 12 12 102 3, 11 12 103 4, 11 11 100 1))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb16.testcase0000664000175000017500000000067112544707704023474 00000000000000BdMPolyFromWKB :memory: #use in-memory database SELECT AsEwkt(BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')), 4326)); 1 # rows (not including the header row) 1 # columns AsEwkt(BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')), 4326)) SRID=4326;MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(2 2,8 2,8 8,2 8,2 2))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolateequidistantpoint3.testcase0000664000175000017500000000051412544707704026221 00000000000000interpolate equidistant points - basic line, exceding distance :memory: #use in-memory database SELECT AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 1 1)"), 3)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 1 1)"), 3)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/polygonize6.testcase0000664000175000017500000000052412544707704022551 00000000000000POLYGONIZE - simple polygonm :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("LINESTRINGM(0 0 5, 1 1 6, 0 2 7, -1 1 6, 0 0 5)"))) 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("LINESTRINGM(0 0 5, 1 1 6, 0 2 7, -1 1 6, 0 0 5)"))) POLYGON M((0 0 0, -1 1 0, 0 2 0, 1 1 0, 0 0 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/coveredby2.testcase0000664000175000017500000000040412544707704022325 00000000000000CoveredBy - non-geom2 :memory: #use in-memory database SELECT CoveredBy(geom1,geom2) from (SELECT "hello" as geom2,GeomFromText("POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))") as geom1) dummy; 1 # rows (not including the header row) 1 # columns CoveredBy(geom1,geom2) -1libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolatepoint13.testcase0000664000175000017500000000047412544707704024034 00000000000000interpolate point - basic lineZM :memory: #use in-memory database SELECT AsText(Line_Interpolate_Point(GeomFromText("LINESTRINGZM(0 0 4 2, 10 6 14 12)"), 0.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Point(GeomFromText("LINESTRINGZM(0 0 4 2, 10 6 14 12)"), 0.5)) POINT ZM(5 3 9 0)libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_perimeter5.testcase0000664000175000017500000000031012544707704023044 00000000000000ST_Perimeter - Point :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("POINT(0 0)")); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("POINT(0 0)")) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolatepoint14.testcase0000664000175000017500000000045412544707704024033 00000000000000interpolate point - basic lineM :memory: #use in-memory database SELECT AsText(Line_Interpolate_Point(GeomFromText("LINESTRINGM(0 0 4, 10 6 14)"), 0.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Point(GeomFromText("LINESTRINGM(0 0 4, 10 6 14)"), 0.5)) POINT M(5 3 0)libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_perimeter2.testcase0000664000175000017500000000040212544707704023043 00000000000000ST_Perimeter - Simple Polygon :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0))")); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0))")) 16.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_length5.testcase0000664000175000017500000000027712544707704022345 00000000000000ST_Length - Point :memory: #use in-memory database SELECT ST_Length(GeomFromText("POINT(0 0)")); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("POINT(0 0)")) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/unaryunion8.testcase0000664000175000017500000000061012544707704022557 00000000000000unaryunion - toxic blob :memory: #use in-memory database SELECT AsText(UnaryUnion(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) 1 # rows (not including the header row) 1 # columns AsText(UnaryUnion(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5, 136 -35)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistwithin4.testcase0000664000175000017500000000043112544707704023077 00000000000000PtDistWithin invalid arg: NULL use-sferoid :memory: SELECT PtDistWithin(GeomFromText("POINT(5.1 5.1)", 4326), GeomFromText("POINT(5 5)", 4326), 10.0, NULL); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5.1 5.1)", 4326), GeomFromText("POINT(5 5)", 4326), 10.0, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid6.testcase0000664000175000017500000000061312544707704022003 00000000000000HexagonalGrid - Collection (Linestring - Polygon) geom :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 2 2), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 2 2), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths9.testcase0000664000175000017500000000055512544707704022667 00000000000000shared paths - two lineM :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("LINESTRINGM(1 2 1, 10 2 1)"),GeomFromText("LINESTRINGM(5 2 1, 15 2 1)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("LINESTRINGM(1 2 1, 10 2 1)"),GeomFromText("LINESTRINGM(5 2 1, 15 2 1)"))) MULTILINESTRING M((5 2 0, 10 2 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/makecircularsector15.testcase0000664000175000017500000000034512544707704024315 00000000000000makecircularsector15 - valid :memory: #use in-memory database SELECT ST_Area(MakeCircularSector(0, 0, 100, 30, 60)); 1 # rows (not including the header row) 1 # columns ST_Area(MakeCircularSector(0, 0, 100, 30, 60)) 2604.7226:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/geoserror1.testcase0000664000175000017500000000076012544707704022356 00000000000000GEOS_Error - valid Linestring :memory: #use in-memory database SELECT ST_IsValid(ST_GeomFromText('LINESTRING(1 1, 2 2)')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg()); 1 # rows (not including the header row) 5 # columns ST_IsValid(ST_GeomFromText('LINESTRING(1 1, 2 2)')) GEOS_GetLastWarningMsg() GEOS_GetLastErrorMsg() GEOS_GetLastAuxErrorMsg() ST_AsText(GEOS_GetCriticalPointFromMsg()) 1 (NULL) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/offsetcurve12.testcase0000664000175000017500000000046512544707704022766 00000000000000OffsetCurve - linestringz :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('LINESTRINGZ(0 0 1, 0 1 2, 4 1 2, 4 0 1)'), -1)) 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('LINESTRINGZ(0 0 1, 0 1 2, 4 1 2, 4 0 1)'), -1)) LINESTRING Z(3 0 0, 1 0 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/buffer8.testcase0000664000175000017500000000523012544707704021624 00000000000000buffer - linestringz :memory: #use in-memory database SELECT AsText(Buffer(GeomFromText("LINESTRINGZ(1 2 1, 4 6 3)"), 1)) 1 # rows (not including the header row) 1 # columns AsText(Buffer(GeomFromText("LINESTRINGZ(1 2 1, 4 6 3)"), 1)) POLYGON Z((3.2 6.6 0, 3.232498 6.641046 0, 3.2671 6.680336 0, 3.30371 6.717761 0, 3.342229 6.753218 0, 3.382551 6.786611 0, 3.424565 6.817848 0, 3.468156 6.846843 0, 3.513206 6.873517 0, 3.559589 6.897796 0, 3.60718 6.919615 0, 3.655847 6.938914 0, 3.705458 6.955638 0, 3.755875 6.969744 0, 3.806963 6.981191 0, 3.858579 6.989949 0, 3.910582 6.995994 0, 3.962831 6.999309 0, 4.015182 6.999885 0, 4.067491 6.99772 0, 4.119615 6.99282 0, 4.171412 6.9852 0, 4.222738 6.974878 0, 4.273454 6.961885 0, 4.32342 6.946255 0, 4.3725 6.928032 0, 4.420559 6.907265 0, 4.467465 6.884011 0, 4.51309 6.858335 0, 4.557309 6.830305 0, 4.6 6.8 0, 4.641046 6.767502 0, 4.680336 6.7329 0, 4.717761 6.69629 0, 4.753218 6.657771 0, 4.786611 6.617449 0, 4.817848 6.575435 0, 4.846843 6.531844 0, 4.873517 6.486794 0, 4.897796 6.440411 0, 4.919615 6.39282 0, 4.938914 6.344153 0, 4.955638 6.294542 0, 4.969744 6.244125 0, 4.981191 6.193037 0, 4.989949 6.141421 0, 4.995994 6.089418 0, 4.999309 6.037169 0, 4.999885 5.984818 0, 4.99772 5.932509 0, 4.99282 5.880385 0, 4.9852 5.828588 0, 4.974878 5.777262 0, 4.961885 5.726546 0, 4.946255 5.67658 0, 4.928032 5.6275 0, 4.907265 5.579441 0, 4.884011 5.532535 0, 4.858335 5.48691 0, 4.830305 5.442691 0, 4.8 5.4 0, 1.8 1.4 0, 1.767502 1.358954 0, 1.7329 1.319664 0, 1.69629 1.282239 0, 1.657771 1.246782 0, 1.617449 1.213389 0, 1.575435 1.182152 0, 1.531844 1.153157 0, 1.486794 1.126483 0, 1.440411 1.102204 0, 1.39282 1.080385 0, 1.344153 1.061086 0, 1.294542 1.044362 0, 1.244125 1.030256 0, 1.193037 1.018809 0, 1.141421 1.010051 0, 1.089418 1.004006 0, 1.037169 1.000691 0, 0.984818 1.000115 0, 0.932509 1.00228 0, 0.880385 1.00718 0, 0.828588 1.0148 0, 0.777262 1.025122 0, 0.726546 1.038115 0, 0.67658 1.053745 0, 0.6275 1.071968 0, 0.579441 1.092735 0, 0.532535 1.115989 0, 0.48691 1.141665 0, 0.442691 1.169695 0, 0.4 1.2 0, 0.358954 1.232498 0, 0.319664 1.2671 0, 0.282239 1.30371 0, 0.246782 1.342229 0, 0.213389 1.382551 0, 0.182152 1.424565 0, 0.153157 1.468156 0, 0.126483 1.513206 0, 0.102204 1.559589 0, 0.080385 1.60718 0, 0.061086 1.655847 0, 0.044362 1.705458 0, 0.030256 1.755875 0, 0.018809 1.806963 0, 0.010051 1.858579 0, 0.004006 1.910582 0, 0.000691 1.962831 0, 0.000115 2.015182 0, 0.00228 2.067491 0, 0.00718 2.119615 0, 0.0148 2.171412 0, 0.025122 2.222738 0, 0.038115 2.273454 0, 0.053745 2.32342 0, 0.071968 2.3725 0, 0.092735 2.420559 0, 0.115989 2.467465 0, 0.141665 2.51309 0, 0.169695 2.557309 0, 0.2 2.6 0, 3.2 6.6 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/union6.testcase0000664000175000017500000000033412544707704021501 00000000000000union - zeroblob first point :memory: #use in-memory database SELECT AsText(GUnion(zeroblob(48), MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(zeroblob(48), MakePoint(2,3))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/buffer9.testcase0000664000175000017500000000523012544707704021625 00000000000000buffer - linestringm :memory: #use in-memory database SELECT AsText(Buffer(GeomFromText("LINESTRINGM(1 2 1, 4 6 3)"), 1)) 1 # rows (not including the header row) 1 # columns AsText(Buffer(GeomFromText("LINESTRINGM(1 2 1, 4 6 3)"), 1)) POLYGON M((3.2 6.6 0, 3.232498 6.641046 0, 3.2671 6.680336 0, 3.30371 6.717761 0, 3.342229 6.753218 0, 3.382551 6.786611 0, 3.424565 6.817848 0, 3.468156 6.846843 0, 3.513206 6.873517 0, 3.559589 6.897796 0, 3.60718 6.919615 0, 3.655847 6.938914 0, 3.705458 6.955638 0, 3.755875 6.969744 0, 3.806963 6.981191 0, 3.858579 6.989949 0, 3.910582 6.995994 0, 3.962831 6.999309 0, 4.015182 6.999885 0, 4.067491 6.99772 0, 4.119615 6.99282 0, 4.171412 6.9852 0, 4.222738 6.974878 0, 4.273454 6.961885 0, 4.32342 6.946255 0, 4.3725 6.928032 0, 4.420559 6.907265 0, 4.467465 6.884011 0, 4.51309 6.858335 0, 4.557309 6.830305 0, 4.6 6.8 0, 4.641046 6.767502 0, 4.680336 6.7329 0, 4.717761 6.69629 0, 4.753218 6.657771 0, 4.786611 6.617449 0, 4.817848 6.575435 0, 4.846843 6.531844 0, 4.873517 6.486794 0, 4.897796 6.440411 0, 4.919615 6.39282 0, 4.938914 6.344153 0, 4.955638 6.294542 0, 4.969744 6.244125 0, 4.981191 6.193037 0, 4.989949 6.141421 0, 4.995994 6.089418 0, 4.999309 6.037169 0, 4.999885 5.984818 0, 4.99772 5.932509 0, 4.99282 5.880385 0, 4.9852 5.828588 0, 4.974878 5.777262 0, 4.961885 5.726546 0, 4.946255 5.67658 0, 4.928032 5.6275 0, 4.907265 5.579441 0, 4.884011 5.532535 0, 4.858335 5.48691 0, 4.830305 5.442691 0, 4.8 5.4 0, 1.8 1.4 0, 1.767502 1.358954 0, 1.7329 1.319664 0, 1.69629 1.282239 0, 1.657771 1.246782 0, 1.617449 1.213389 0, 1.575435 1.182152 0, 1.531844 1.153157 0, 1.486794 1.126483 0, 1.440411 1.102204 0, 1.39282 1.080385 0, 1.344153 1.061086 0, 1.294542 1.044362 0, 1.244125 1.030256 0, 1.193037 1.018809 0, 1.141421 1.010051 0, 1.089418 1.004006 0, 1.037169 1.000691 0, 0.984818 1.000115 0, 0.932509 1.00228 0, 0.880385 1.00718 0, 0.828588 1.0148 0, 0.777262 1.025122 0, 0.726546 1.038115 0, 0.67658 1.053745 0, 0.6275 1.071968 0, 0.579441 1.092735 0, 0.532535 1.115989 0, 0.48691 1.141665 0, 0.442691 1.169695 0, 0.4 1.2 0, 0.358954 1.232498 0, 0.319664 1.2671 0, 0.282239 1.30371 0, 0.246782 1.342229 0, 0.213389 1.382551 0, 0.182152 1.424565 0, 0.153157 1.468156 0, 0.126483 1.513206 0, 0.102204 1.559589 0, 0.080385 1.60718 0, 0.061086 1.655847 0, 0.044362 1.705458 0, 0.030256 1.755875 0, 0.018809 1.806963 0, 0.010051 1.858579 0, 0.004006 1.910582 0, 0.000691 1.962831 0, 0.000115 2.015182 0, 0.00228 2.067491 0, 0.00718 2.119615 0, 0.0148 2.171412 0, 0.025122 2.222738 0, 0.038115 2.273454 0, 0.053745 2.32342 0, 0.071968 2.3725 0, 0.092735 2.420559 0, 0.115989 2.467465 0, 0.141665 2.51309 0, 0.169695 2.557309 0, 0.2 2.6 0, 3.2 6.6 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/issimple5.testcase0000664000175000017500000000021612544707704022174 00000000000000issimple5 :memory: #use in-memory database SELECT IsSimple("hello"); 1 # rows (not including the header row) 1 # columns IsSimple("hello") -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/makeellipticarc18.testcase0000664000175000017500000000035112544707704023564 00000000000000makeellipticarc18 - valid :memory: #use in-memory database SELECT ST_Length(MakeEllipticArc(0, 0, 100, 200, 30, 60)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeEllipticArc(0, 0, 100, 200, 30, 60)) 82.3891:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/locatepoint8.testcase0000664000175000017500000000064312544707704022677 00000000000000locate point - GeometryCollection second arg :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), GeomFromText("GeometryCollection(POINT(0 1),LINESTRING(0 0, 10 0, 10 10, 0 0))")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), GeomFromText("GeometryCollection(POINT(0 1),LINESTRING(0 0, 10 0, 10 10, 0 0))")) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid10.testcase0000664000175000017500000000050112544707704022052 00000000000000HexagonalGrid - Polygon geom - text edges_only :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 'alpha'); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/intersection6.testcase0000664000175000017500000000035712544707704023064 00000000000000intersection - zeroblob first point :memory: #use in-memory database SELECT AsText(Intersection(zeroblob(48), MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(Intersection(zeroblob(48), MakePoint(2,3))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalidreason5.testcase0000664000175000017500000000053512544707704023216 00000000000000isvalidreason5 :memory: #use in-memory database SELECT IsValidReason(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5, 136 -35))")); 1 # rows (not including the header row) 1 # columns IsValidReason(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5, 136 -35))")) Self-intersection[135.2 -34.5] libspatialite-4.3.0a/test/sql_stmt_geos_tests/union13.testcase0000664000175000017500000000056012544707704021560 00000000000000union - MULTIPOLYGON and POINT :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("MULTIPOLYGON(((0 0, 2 0, 2 2, 0 2, 0 0)))"),GeomFromText("POINT(0 0)"))) 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("MULTIPOLYGON(((0 0, 2 0, 2 2, 0 2, 0 0)))"),GeomFromText("POINT(0 0)"))) MULTIPOLYGON(((0 0, 0 2, 2 2, 2 0, 0 0))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/singlesidedbuffer9.testcase0000664000175000017500000000046512544707704024045 00000000000000singlesidedbuffer - LINESTRING X, int radius, bad side (error) :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), 3, 3.5)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), 3, 3.5)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/simplify4.testcase0000664000175000017500000000024112544707704022200 00000000000000Simplify - bad arg :memory: #use in-memory database SELECT Simplify("hello", 0) 1 # rows (not including the header row) 1 # columns Simplify("hello", 0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvaliddetail3.testcase0000664000175000017500000000043112544707704023162 00000000000000isvaliddetail3 :memory: #use in-memory database SELECT IsValidDetail(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")); 1 # rows (not including the header row) 1 # columns IsValidDetail(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/difference8.testcase0000664000175000017500000000044412544707704022447 00000000000000difference - XYZ points :memory: #use in-memory database SELECT AsText(Difference(GeomFromText("POINTZ(1 3 5)"), GeomFromText("POINTZ(2 4 6)"))) 1 # rows (not including the header row) 1 # columns AsText(Difference(GeomFromText("POINTZ(1 3 5)"), GeomFromText("POINTZ(2 4 6)"))) POINT Z(1 3 5)libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistancewithin2.testcase0000664000175000017500000000032612544707704023727 00000000000000PtDistWithin- two points :memory: #use in-memory database SELECT PtDistWithin(Makepoint(4,2), MakePoint(4,4), 2) 1 # rows (not including the header row) 1 # columns PtDistWithin(Makepoint(4,2), MakePoint(4,4), 2) 1libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid17.testcase0000664000175000017500000000051212544707704022064 00000000000000isvalid Geometry Collection of point and linestring :memory: #use in-memory database SELECT IsValid(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(1 1, 4 1, 4 4, 1 4, 1 1))")) 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(1 1, 4 1, 4 4, 1 4, 1 1))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/geoserror6.testcase0000664000175000017500000000104412544707704022357 00000000000000GEOS_Error - invalid unclosed Polygon :memory: #use in-memory database SELECT ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1))')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg()); 1 # rows (not including the header row) 5 # columns ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1))')) GEOS_GetLastWarningMsg() GEOS_GetLastErrorMsg() GEOS_GetLastAuxErrorMsg() ST_AsText(GEOS_GetCriticalPointFromMsg()) 0 (NULL) (NULL) gaia detected a not-closed Ring (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/offsetcurve5.testcase0000664000175000017500000000045612544707704022710 00000000000000OffsetCurve - non-number radius :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0)'), "not a number")); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0)'), "not a number")) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/intersection2.testcase0000664000175000017500000000036412544707704023056 00000000000000intersection - two common points :memory: #use in-memory database SELECT AsText(Intersection(Makepoint(1,2), MakePoint(1,2))); 1 # rows (not including the header row) 1 # columns AsText(Intersection(Makepoint(1,2), MakePoint(1,2))) POINT(1 2) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths5.testcase0000664000175000017500000000036012544707704022655 00000000000000shared paths - non-blob first arg :memory: #use in-memory database SELECT SharedPaths(1, GeomFromText("LINESTRING(5 0, 15 0)")) 1 # rows (not including the header row) 1 # columns SharedPaths(1, GeomFromText("LINESTRING(5 0, 15 0)")) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/snap10.testcase0000664000175000017500000000055112544707704021366 00000000000000Snap, LINESTRING, pointZM :memory: #use in-memory database SELECT AsText(Snap(GeomFromText("POINTZM(0.1 0.2 1 4)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 0.4)) 1 # rows (not including the header row) 1 # columns AsText(Snap(GeomFromText("POINTZM(0.1 0.2 1 4)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 0.4)) POINT ZM(0 0 0 0)libspatialite-4.3.0a/test/sql_stmt_geos_tests/geoserror2.testcase0000664000175000017500000000101112544707704022345 00000000000000GEOS_Error - valid Polygon :memory: #use in-memory database SELECT ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg()); 1 # rows (not including the header row) 5 # columns ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) GEOS_GetLastWarningMsg() GEOS_GetLastErrorMsg() GEOS_GetLastAuxErrorMsg() ST_AsText(GEOS_GetCriticalPointFromMsg()) 1 (NULL) (NULL) (NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid20.testcase0000664000175000017500000000156512544707704022566 00000000000000TriangularGrid - valid - no Origin :memory: #use in-memory database SELECT AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)); 1 # rows (not including the header row) 1 # columns AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)) MULTIPOLYGON(((-0.5 0, 0.5 0, 0 0.866025, -0.5 0)), ((0 0.866025, 0.5 0, 1 0.866025, 0 0.866025)), ((0.5 0, 1.5 0, 1 0.866025, 0.5 0)), ((1 0.866025, 1.5 0, 2 0.866025, 1 0.866025)), ((1.5 0, 2.5 0, 2 0.866025, 1.5 0)), ((2 0.866025, 2.5 0, 3 0.866025, 2 0.866025)), ((0 0.866025, 1 0.866025, 0.5 1.732051, 0 0.866025)), ((0.5 1.732051, 1 0.866025, 1.5 1.732051, 0.5 1.732051)), ((1 0.866025, 2 0.866025, 1.5 1.732051, 1 0.866025)), ((1.5 1.732051, 2 0.866025, 2.5 1.732051, 1.5 1.732051)), ((2 0.866025, 3 0.866025, 2.5 1.732051, 2 0.866025))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_area1.testcase0000664000175000017500000000053612544707704021766 00000000000000ST_Area - Polygon with 1 interior :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1))")); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1))")) 12.0 # 16.0 for the exterior, 4.0 for the interior libspatialite-4.3.0a/test/sql_stmt_geos_tests/simplify5.testcase0000664000175000017500000000035612544707704022210 00000000000000Simplify - bad second arg :memory: #use in-memory database SELECT Simplify(GeomFromText("LINESTRING(1 2, 3 4)"), "hello") 1 # rows (not including the header row) 1 # columns Simplify(GeomFromText("LINESTRING(1 2, 3 4)"), "hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistwithin6.testcase0000664000175000017500000000031112544707704023076 00000000000000PtDistWithin invalid arg: TEXT pt2 :memory: SELECT PtDistWithin(GeomFromText("POINT(5 5)", 4326), 'a', 10.0, 1); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5 5)", 4326), 'a', 10.0, 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring16.testcase0000664000175000017500000000045712544707704023330 00000000000000linesubstring - basic vary M :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRINGM(0 0 0, 10 0 5)"), 0.2, 0.7)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRINGM(0 0 0, 10 0 5)"), 0.2, 0.7)) LINESTRING M(2 0 0, 7 0 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/relate2.testcase0000664000175000017500000000045512544707704021625 00000000000000Relate - bad blob first arg :memory: #use in-memory database SELECT Relate(zeroblob(100), geom2, "T*T***T**") FROM (SELECT GeomFromText("POINT(1 2)") as geom1, GeomFromText("POINT(1 2)") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Relate(zeroblob(100), geom2, "T*T***T**") -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/unaryunion3.testcase0000664000175000017500000000047212544707704022560 00000000000000unaryunion - points Z :memory: #use in-memory database SELECT AsText(UnaryUnion(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 3), POINTZ(2 3 4))"))) 1 # rows (not including the header row) 1 # columns AsText(UnaryUnion(GeomFromText("GEOMETRYCOLLECTIONZ(POINTZ(1 2 3), POINTZ(2 3 4))"))); MULTIPOINT Z(1 2 3, 2 3 4) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring22.testcase0000664000175000017500000000062412544707704023321 00000000000000linesubstring - using both segments ZM :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRINGZM(0 0 1 0, 10 0 1 0, 10 10 1 0)"), 0.2, 0.8)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRINGZM(0 0 1 0, 10 0 1 0, 10 10 1 0)"), 0.2, 0.8)) LINESTRING ZM(4 0 1 0, 10 0 1 0, 10 6 1 0) # yeah, it would have been m = 0.0 anyway. libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid13.testcase0000664000175000017500000000046412544707704022601 00000000000000SquareGrid - Polygon geom - NULL origin :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, NULL); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/simplify8.testcase0000664000175000017500000000032112544707704022203 00000000000000SimplifyPreserveTopology - bad arg :memory: #use in-memory database SELECT SimplifyPreserveTopology("hello", 0) 1 # rows (not including the header row) 1 # columns SimplifyPreserveTopology("hello", 0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isclosed6.testcase0000664000175000017500000000046512544707704022163 00000000000000isclosed - multilinestring, one linestring :memory: #use in-memory database SELECT IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -36))")) 1 # rows (not including the header row) 1 # columns IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -36))")) 0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/testgeos10.testcase0000664000175000017500000000034712544707704022265 00000000000000GEOS test - CoveredBy test_geos_x.sqlite SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_CoveredBy(a.geometry, b.geometry) = 1; 1 # rows (not including the header row) 1 # columns Count(*) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/centroid6.testcase0000664000175000017500000000052012544707704022155 00000000000000Centroid - polygonZ (problem case - GEOS throws away the Z coordinates) :memory: #use in-memory database SELECT astext(centroid(geomFromText("POLYGONZ((0 0 1, 0 2 1, 2 2 1, 2 0 1, 0 0 1))"))) 1 # rows (not including the header row) 1 # columns astext(centroid(geomFromText("POLYGONZ((0 0 1, 0 2 1, 2 2 1, 2 0 1, 0 0 1))"))) POINT(1 1) libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolateequidistantpoint12.testcase0000664000175000017500000000072212544707704026302 00000000000000interpolate equidistant points - basic lineZ :memory: #use in-memory database SELECT AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRINGZ(0 0 4, 10 6 14)"), 2.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRINGZ(0 0 4, 10 6 14)"), 2.5)) MULTIPOINT ZM(2.143732 1.286239 6.143732 2.5, 4.287465 2.572479 8.287465 5, 6.431197 3.858718 10.431197 7.5, 8.574929 5.144958 12.574929 10) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isring8.testcase0000664000175000017500000000042112544707704021643 00000000000000isring1 - LINESTRINGZM, non-ring :memory: #use in-memory database SELECT IsRing(GeomFromText("LINESTRINGZM(1 1 3 4, 2 1 4 9, 2 2 5 4, 1 2 4 3)")) 1 # rows (not including the header row) 1 # columns IsRing(GeomFromText("LINESTRINGZM(1 1 3 4, 2 1 4 9, 2 2 5 4, 1 2 4 3)")) 0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/symdifference4.testcase0000664000175000017500000000035712544707704023177 00000000000000symdifference - zeroblob second arg :memory: #use in-memory database SELECT AsText(SymDifference(MakePoint(1,2),zeroblob(50))) 1 # rows (not including the header row) 1 # columns AsText(SymDifference(MakePoint(1,2),zeroblob(50))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/makecircle15.testcase0000664000175000017500000000033012544707704022524 00000000000000makecircle15 - NULL step :memory: #use in-memory database SELECT ST_Length(MakeCircle(0, 0, 100, 4326, NULL)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeCircle(0, 0, 100, 4326, NULL)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/difference12.testcase0000664000175000017500000000055412544707704022524 00000000000000difference - toxic second point :memory: #use in-memory database SELECT ST_Difference(MakePoint(136,-35), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) 1 # rows (not including the header row) 1 # columns ST_Difference(MakePoint(136,-35), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/testgeos7.testcase0000664000175000017500000000034112544707704022205 00000000000000GEOS test - Within test_geos_x.sqlite SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Within(a.geometry, b.geometry) = 1; 1 # rows (not including the header row) 1 # columns Count(*) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/ringsnodes1.testcase0000664000175000017500000000047212544707704022522 00000000000000RingsCutAtNodes :memory: #use in-memory database SELECT AsText(RingsCutAtNodes(GeomFromText("POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))"))) 1 # rows (not including the header row) 1 # columns AsText(RingsCutAtNodes(GeomFromText("POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))"))) MULTILINESTRING((0 0, 0 10, 10 10, 10 0, 0 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistwithin13.testcase0000664000175000017500000000040012544707704023153 00000000000000PtDistWithin: WGS84 (INT dist) :memory: SELECT PtDistWithin(GeomFromText("POINT(5 5)", 4326), GeomFromText("POINT(5.1 5.1)", 4326), 100000); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5 5)", 4326), GeomFromText("POINT(5.1 5.1)", 4326), 100000) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid4.testcase0000664000175000017500000000040412544707704021777 00000000000000HexagonalGrid - Linestring geom :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('LINESTRING(1 1, 2 2)', 4326), 1.0); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('LINESTRING(1 1, 2 2)', 4326), 1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_length1.testcase0000664000175000017500000000046512544707704022340 00000000000000ST_Length - Polygon with 1 interior :memory: #use in-memory database SELECT ST_Length(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1))")); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1))")) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/makecircularsector19.testcase0000664000175000017500000000036612544707704024324 00000000000000makecircularsector19 - WGS84 srid :memory: #use in-memory database SELECT ST_Area(MakeCircularSector(0, 0, 100, 30, 60, 4326)); 1 # rows (not including the header row) 1 # columns ST_Area(MakeCircularSector(0, 0, 100, 30, 60, 4326)) 2604.7226:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid2.testcase0000664000175000017500000000030412544707704021774 00000000000000HexagonalGrid - zeroblob geom :memory: #use in-memory database SELECT HexagonalGrid(zeroblob(4), 1.0); 1 # rows (not including the header row) 1 # columns HexagonalGrid(zeroblob(4), 1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/simplify6.testcase0000664000175000017500000000036112544707704022205 00000000000000Simplify - negative second arg :memory: #use in-memory database SELECT Simplify(GeomFromText("LINESTRING(1 2, 3 4)"), -287.3) 1 # rows (not including the header row) 1 # columns Simplify(GeomFromText("LINESTRING(1 2, 3 4)"), -287.3) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb13.testcase0000664000175000017500000000050712544707704023467 00000000000000BdMPolyFromWKB - text SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', "not an int"))); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', "not an int"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/difference4.testcase0000664000175000017500000000032612544707704022442 00000000000000difference - null second point :memory: #use in-memory database SELECT AsText(Difference(MakePoint(2,3), null)); 1 # rows (not including the header row) 1 # columns AsText(Difference(MakePoint(2,3), null)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/createtopo10.testcase0000664000175000017500000000032512544707704022571 00000000000000CreateTopology - 3 arguments, integer prefix (error) :memory: #use in-memory database SELECT CreateTopologyTables(3, 4326, 3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables(3, 4326, 3) 0libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid11.testcase0000664000175000017500000000047612544707704022566 00000000000000TriangularGrid - Polygon geom - double edges_only :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 4.5); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 4.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromtext11.testcase0000664000175000017500000000045412544707704023512 00000000000000BdPolyFromText - toxic, no SRID :memory: #use in-memory database SELECT BdPolyFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"); 1 # rows (not including the header row) 1 # columns BdPolyFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))") (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/difference7.testcase0000664000175000017500000000056612544707704022453 00000000000000difference - toxic first point :memory: #use in-memory database SELECT AsText(Difference(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(136,-35))); 1 # rows (not including the header row) 1 # columns AsText(Difference(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(136,-35))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/covers_covered7.testcase0000664000175000017500000000043112544707704023360 00000000000000CoveredBy - zero blob second arg :memory: #use in-memory database SELECT CoveredBy(geom2,geom1) from (SELECT zeroblob(48) as geom1,GeomFromText("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))") as geom2) dummy; 1 # rows (not including the header row) 1 # columns CoveredBy(geom2,geom1) -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/relations7.testcase0000664000175000017500000000116212544707704022352 00000000000000Relationship tests - toxic first arg :memory: #use in-memory database SELECT Equals(geom1, geom2), Intersects(geom1, geom2), Disjoint(geom1, geom2), Overlaps(geom1, geom2), Crosses(geom1, geom2), Touches(geom1, geom2), Within(geom1, geom2), Contains(geom1, geom2) FROM (SELECT GeomFromText('LINESTRING(1 1, 1 1)') as geom1, GeomFromText("LINESTRING(1 1, 2 2)") as geom2) dummy; 1 # rows (not including the header row) 8 # columns Equals(geom1, geom2) Intersects(geom1, geom2) Disjoint(geom1, geom2) Overlaps(geom1, geom2) Crosses(geom1, geom2) Touches(geom1, geom2) Within(geom1, geom2) Contains(geom1, geom2) 0 1 0 0 0 0 1 0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/convexhull2.testcase0000664000175000017500000000052112544707704022532 00000000000000convex hull - linestring :memory: #use in-memory database SELECT AsText(ConvexHull(GeomFromText("LINESTRING(0 0, 1 0, 1 1, 2 1, 2 0, 10 0, 10 10, 0 10)"))) 1 # rows (not including the header row) 1 # columns AsText(ConvexHull(GeomFromText("LINESTRING(0 0, 1 0, 1 1, 2 1, 2 0, 10 0, 10 10, 0 10)"))) POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_area7.testcase0000664000175000017500000000031312544707704021765 00000000000000ST_Area - Empty linestring :memory: #use in-memory database SELECT ST_Area(GeomFromText("LINESTRING()")); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("LINESTRING()")) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isclosed3.testcase0000664000175000017500000000040712544707704022154 00000000000000isclosed3 :memory: #use in-memory database SELECT IsClosed(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -36)")); 1 # rows (not including the header row) 1 # columns IsClosed(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -36)")) 0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/union10.testcase0000664000175000017500000000043712544707704021560 00000000000000union - POINTM :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("POINTM(1 3 4)"),GeomFromText("POINTM(2 5 9)"))) 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("POINTM(1 3 4)"),GeomFromText("POINTM(2 5 9)"))) MULTIPOINT M(1 3 0, 2 5 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/difference9.testcase0000664000175000017500000000046412544707704022452 00000000000000difference - XYZM points :memory: #use in-memory database SELECT AsText(Difference(GeomFromText("POINTZM(1 3 5 4)"), GeomFromText("POINTZM(2 4 6 9)"))) 1 # rows (not including the header row) 1 # columns AsText(Difference(GeomFromText("POINTZM(1 3 5 4)"), GeomFromText("POINTZM(2 4 6 9)"))) POINT ZM(1 3 5 0)libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid21.testcase0000664000175000017500000000125712544707704022065 00000000000000HexagonalGrid - valid - no Origin :memory: #use in-memory database SELECT AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)); 1 # rows (not including the header row) 1 # columns AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)) MULTIPOLYGON(((0 0, 0.5 -0.866025, 1.5 -0.866025, 2 0, 1.5 0.866025, 0.5 0.866025, 0 0)), ((-1.5 0.866025, -1 0, 0 0, 0.5 0.866025, 0 1.732051, -1 1.732051, -1.5 0.866025)), ((1.5 0.866025, 2 0, 3 0, 3.5 0.866025, 3 1.732051, 2 1.732051, 1.5 0.866025)), ((0 1.732051, 0.5 0.866025, 1.5 0.866025, 2 1.732051, 1.5 2.598076, 0.5 2.598076, 0 1.732051))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb8.testcase0000664000175000017500000000030712544707704023234 00000000000000BdPolyFromWKB - zeroblob(58), SRID :memory: #use in-memory database SELECT BdPolyFromWKB(zeroblob(58), 4); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(zeroblob(58), 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance_geogr6.testcase0000664000175000017500000000046412544707704023332 00000000000000Distance Long/Lat metric (ellipsoid) - two 3D points :memory: #use in-memory database SELECT ST_Distance(MakePointZ(11.1, 42.1, 0.1), MakePointZ(11.2, 42.2, 0.2), 1); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePointZ(11.1, 42.1, 0.1), MakePointZ(11.2, 42.2, 0.2), 1) 13845.545374:6 libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_area2.testcase0000664000175000017500000000036312544707704021765 00000000000000ST_Area - Simple Polygon :memory: #use in-memory database SELECT ST_Area(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0))")); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0))")) 16.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid8.testcase0000664000175000017500000000105612544707704022010 00000000000000isvalid (MULTYPOLYGON Z with hole) :memory: #use in-memory database SELECT IsValid(GeomFromText("MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100)), ((20 20 110, 21 20 111, 21 21 112, 20 21 113, 20 20 110)))")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("MULTIPOLYGONZ(((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100)), ((20 20 110, 21 20 111, 21 21 112, 20 21 113, 20 20 110)))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/simplify1.testcase0000664000175000017500000000055712544707704022207 00000000000000Simplify - linestring :memory: #use in-memory database SELECT AsText(Simplify(geom, 0.1)), AsText(SimplifyPreserveTopology(geom, 0.1)) FROM (SELECT GeomFromText("LINESTRING(1 2, 4 5)") as geom) dummy 1 # rows (not including the header row) 2 # columns AsText(Simplify(geom, 0.1)) AsText(SimplifyPreserveTopology(geom, 0.1)) LINESTRING(1 2, 4 5) LINESTRING(1 2, 4 5) libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolatepoint12.testcase0000664000175000017500000000045412544707704024031 00000000000000interpolate point - basic lineZ :memory: #use in-memory database SELECT AsText(Line_Interpolate_Point(GeomFromText("LINESTRINGZ(0 0 4, 10 6 14)"), 0.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Point(GeomFromText("LINESTRINGZ(0 0 4, 10 6 14)"), 0.5)) POINT Z(5 3 9)libspatialite-4.3.0a/test/sql_stmt_geos_tests/isring6.testcase0000664000175000017500000000040212544707704021640 00000000000000isring1 - LINESTRINGM :memory: #use in-memory database SELECT IsRing(GeomFromText("LINESTRINGM(1 1 3, 2 1 4, 2 2 5, 1 2 4, 1 1 3)")) 1 # rows (not including the header row) 1 # columns IsRing(GeomFromText("LINESTRINGM(1 1 3, 2 1 4, 2 2 5, 1 2 4, 1 1 3)")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/buffer11.testcase0000664000175000017500000000041312544707704021674 00000000000000buffer - linestring - NULL quadrantsegments :memory: #use in-memory database SELECT AsText(Buffer(GeomFromText("LINESTRING(1 2, 4 6)"), 1, NULL)) 1 # rows (not including the header row) 1 # columns AsText(Buffer(GeomFromText("LINESTRING(1 2, 4 6)"), 1, NULL)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/convexhull10.testcase0000664000175000017500000000061112544707704022611 00000000000000convex hull - polygonM :memory: #use in-memory database SELECT AsText(ConvexHull(GeomFromText("POLYGONM((0 0 1, 1 0 2, 1 1 3, 2 1 4, 2 0 5, 10 0 6, 10 10 7, 0 10 2, 0 0 1))"))) 1 # rows (not including the header row) 1 # columns AsText(ConvexHull(GeomFromText("POLYGONM((0 0 1, 1 0 2, 1 1 3, 2 1 4, 2 0 5, 10 0 6, 10 10 7, 0 10 2, 0 0 1))"))) POLYGON M((0 0 0, 0 10 0, 10 10 0, 10 0 0, 0 0 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistancewithin4.testcase0000664000175000017500000000032012544707704023723 00000000000000PtDistWithin - bad second arg :memory: #use in-memory database SELECT PtDistWithin(Makepoint(4,2), "helo", 2) 1 # rows (not including the header row) 1 # columns PtDistWithin(Makepoint(4,2), "helo", 2) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromtext16.testcase0000664000175000017500000000060212544707704023512 00000000000000BdPolyFromText :memory: #use in-memory database SELECT AsEwkt(BdPolyFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))', 4326)); 1 # rows (not including the header row) 1 # columns AsEwkt(BdPolyFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))', 4326)) SRID=4326;POLYGON((0 0,0 10,10 10,10 0,0 0),(2 2,8 2,8 8,2 8,2 2)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/makearc19.testcase0000664000175000017500000000032712544707704022042 00000000000000makearc19 - WGS84 srid :memory: #use in-memory database SELECT ST_Length(MakeArc(0, 0, 100, 30, 60, 4326)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeArc(0, 0, 100, 30, 60, 4326)) 52.2934:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/singlesidedbuffer3.testcase0000664000175000017500000000051112544707704024027 00000000000000singlesidedbuffer - LINESTRING X, int radius, right side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), 3, 0)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), 3, 0)) POLYGON((0 0, 0 20, 3 20, 3 0, 0 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/buildarea4.testcase0000664000175000017500000000066312544707704022304 00000000000000buildarea - polygon-hole :memory: #use in-memory database SELECT AsText(BuildArea(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10), (10 10, 0 10, 0 0), (5 5, 6 5, 6 6), (6 6, 5 6, 5 5))'))) 1 # rows (not including the header row) 1 # columns AsText(BuildArea(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10), (10 10, 0 10, 0 0), (5 5, 6 5, 6 6), (6 6, 5 6, 5 5))'))) POLYGON((10 10, 10 0, 0 0, 0 10, 10 10), (5 5, 6 5, 6 6, 5 6, 5 5)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromtext1.testcase0000664000175000017500000000043312544707704023426 00000000000000BdPolyFromText :memory: #use in-memory database SELECT AsText(BdPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')); 1 # rows (not including the header row) 1 # columns AsText(BdPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')) POLYGON((0 0, 0 1, 1 1, 1 0, 0 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/geoserror3.testcase0000664000175000017500000000111212544707704022350 00000000000000GEOS_Error - invalid Linestring (collapses to a Point) :memory: #use in-memory database SELECT ST_IsValid(ST_GeomFromText('LINESTRING(1 1, 1 1, 1 1)')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg()); 1 # rows (not including the header row) 5 # columns ST_IsValid(ST_GeomFromText('LINESTRING(1 1, 1 1, 1 1)')) GEOS_GetLastWarningMsg() GEOS_GetLastErrorMsg() GEOS_GetLastAuxErrorMsg() ST_AsText(GEOS_GetCriticalPointFromMsg()) 0 Too few points in geometry component at or near point 1 1 (NULL) (NULL) POINT(1 1) libspatialite-4.3.0a/test/sql_stmt_geos_tests/singlesidedbuffer8.testcase0000664000175000017500000000047312544707704024043 00000000000000singlesidedbuffer - LINESTRING X, bad radius, right side (error) :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), "foo", 0)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), "foo", 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_length10.testcase0000664000175000017500000000047012544707704022414 00000000000000ST_Length - MultiLinestring :memory: #use in-memory database SELECT ST_Length(GeomFromText("MULTILINESTRING((0 0, 0 4, 4 4, 4 0, 0 0), (10 10, 11 10, 11 11))")); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("MULTILINESTRING((0 0, 0 4, 4 4, 4 0, 0 0), (10 10, 11 10, 11 11))")) 18.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/hausdorffdistance7.testcase0000664000175000017500000000051512544707704024047 00000000000000HausdorffDistance - co-incident multipoints :memory: #use in-memory database SELECT HausdorffDistance(GeomFromText("MULTIPOINT(0 0, 10 0)"), GeomFromText("MULTIPOINT(0 0, 10 0)")) 1 # rows (not including the header row) 1 # columns HausdorffDistance(GeomFromText("MULTIPOINT(0 0, 10 0)"), GeomFromText("MULTIPOINT(0 0, 10 0)")) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/union28.testcase0000664000175000017500000000024212544707704021563 00000000000000union - zeroblob :memory: #use in-memory database SELECT GUnion(zeroblob(100)) 1 # rows (not including the header row) 1 # columns GUnion(zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistwithin7.testcase0000664000175000017500000000041612544707704023105 00000000000000PtDistWithin invalid arg: TEXT distance :memory: SELECT PtDistWithin(GeomFromText("POINT(5.1 5.1)", 4326), GeomFromText("POINT(5 5)", 4326), 'a', 1); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5.1 5.1)", 4326), GeomFromText("POINT(5 5)", 4326), 'a', 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/boundary4.testcase0000664000175000017500000000041112544707704022166 00000000000000Boundary - open linestring :memory: #use in-memory database SELECT AsText(Boundary(GeomFromText("LINESTRING(1 2, 4 -3, 0 -1)"))) 1 # rows (not including the header row) 1 # columns AsText(Boundary(GeomFromText("LINESTRING(1 2, 4 -3, 0 -1)"))) MULTIPOINT(1 2, 0 -1) libspatialite-4.3.0a/test/sql_stmt_geos_tests/unaryunion6.testcase0000664000175000017500000000025312544707704022560 00000000000000unaryunion - non-blob :memory: #use in-memory database SELECT AsText(UnaryUnion(3.14)) 1 # rows (not including the header row) 1 # columns AsText(UnaryUnion(3.14)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/relations8.testcase0000664000175000017500000000116312544707704022354 00000000000000Relationship tests - toxic second arg :memory: #use in-memory database SELECT Equals(geom1, geom2), Intersects(geom1, geom2), Disjoint(geom1, geom2), Overlaps(geom1, geom2), Crosses(geom1, geom2), Touches(geom1, geom2), Within(geom1, geom2), Contains(geom1, geom2) FROM (SELECT GeomFromText("LINESTRING(1 1, 2 2)") as geom1, GeomFromText('LINESTRING(1 1, 1 1)') as geom2) dummy; 1 # rows (not including the header row) 8 # columns Equals(geom1, geom2) Intersects(geom1, geom2) Disjoint(geom1, geom2) Overlaps(geom1, geom2) Crosses(geom1, geom2) Touches(geom1, geom2) Within(geom1, geom2) Contains(geom1, geom2) 0 1 0 0 0 0 0 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistancewithin10.testcase0000664000175000017500000000034112544707704024003 00000000000000PtDistWithin - bad blob second arg :memory: #use in-memory database SELECT PtDistWithin(MakePoint(4,4), zeroblob(98), 2) 1 # rows (not including the header row) 1 # columns PtDistWithin(MakePoint(4,4), zeroblob(98), 2) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths18.testcase0000664000175000017500000000071712544707704022747 00000000000000shared paths - two polygon - different overlap :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))"),GeomFromText("POLYGON((5 0, 15 0, 15 10, -5 10, -5 0, 5 0))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))"),GeomFromText("POLYGON((5 0, 15 0, 15 10, -5 10, -5 0, 5 0))"))) MULTILINESTRING((0 0, 5 0, 10 0), (10 10, 0 10))libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistwithin11.testcase0000664000175000017500000000040512544707704023156 00000000000000PtDistWithin: WGS84 no spheroid :memory: SELECT PtDistWithin(GeomFromText("POINT(5 5)", 4326), GeomFromText("POINT(5.1 5.1)", 4326), 100000.0); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5 5)", 4326), GeomFromText("POINT(5.1 5.1)", 4326), 100000.0) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/union21.testcase0000664000175000017500000000152712544707704021563 00000000000000union - GEOMETRYCOLLECTION (Polygon with hole / Linestring) :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(30 30, 31 31), POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11)))"), GeomFromText("GEOMETRYCOLLECTION(LINESTRING(31 31, 35 0), POLYGON((15 10, 16 10, 16 15, 10 15, 15 10)))"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(30 30, 31 31), POLYGON((10 10, 15 10, 15 15, 10 15, 10 10), (11 11, 12 11, 12 12, 11 12, 11 11)))"), GeomFromText("GEOMETRYCOLLECTION(LINESTRING(31 31, 35 0), POLYGON((15 10, 16 10, 16 15, 10 15, 15 10)))"))) GEOMETRYCOLLECTION(LINESTRING(30 30, 31 31), LINESTRING(31 31, 35 0), POLYGON((15 10, 10 10, 10 15, 15 15, 16 15, 16 10, 15 10), (11 11, 12 11, 12 12, 11 12, 11 11))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_length13.testcase0000664000175000017500000000067712544707704022430 00000000000000ST_Length - Polygon with 1 interior (Long/Lat metric - Ellipsoid) :memory: #use in-memory database SELECT ST_Length(GeomFromText("POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55))"), 1); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55))"), 1) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/locatepoint4.testcase0000664000175000017500000000063412544707704022673 00000000000000locate point - GeomCollection first arg :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("GeometryCollection(LINESTRING(0 1, 1 2),POLYGON((0 0, 10 0, 10 10, 0 0)))"), GeomFromText("POINT(5 3)")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("GeometryCollection(LINESTRING(0 1, 1 2),POLYGON((0 0, 10 0, 10 10, 0 0)))"), GeomFromText("POINT(5 3)")) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/covers_covered2.testcase0000664000175000017500000000073012544707704023355 00000000000000Covers / Covered - partial overlap :memory: #use in-memory database SELECT Covers(geom1,geom2),CoveredBy(geom1,geom2),Covers(geom2,geom1),CoveredBy(geom2,geom1) from (SELECT GeomFromText("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))") as geom1,GeomFromText("POLYGON((0.5 0.5, 2.5 0.5, 2.5 2.5, 0.5 2.5, 0.5 0.5))") as geom2) dummy; 1 # rows (not including the header row) 4 # columns Covers(geom1,geom2) CoveredBy(geom1,geom2) Covers(geom2,geom1) CoveredBy(geom2,geom1) 0 0 0 0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromtext9.testcase0000664000175000017500000000030312544707704023432 00000000000000BdPolyFromText - point, SRID :memory: #use in-memory database SELECT BdPolyFromText("Point(1 2)", 4); 1 # rows (not including the header row) 1 # columns BdPolyFromText("Point(1 2)", 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb15.testcase0000664000175000017500000000065512544707704023475 00000000000000BdMPolyFromWKB :memory: #use in-memory database SELECT AsText(BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')))); 1 # rows (not including the header row) 1 # columns AsText(BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')))) MULTIPOLYGON(((0 0, 0 10, 10 10, 10 0, 0 0), (2 2, 8 2, 8 8, 2 8, 2 2))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/union11.testcase0000664000175000017500000000046112544707704021556 00000000000000union - POINTZM :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("POINTZM(1 3 4 5)"),GeomFromText("POINTZM(2 5 9 5)"))) 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("POINTZM(1 3 4 5)"),GeomFromText("POINTZM(2 5 9 5)"))) MULTIPOINT ZM(1 3 4 0, 2 5 9 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/symdifference6.testcase0000664000175000017500000000034712544707704023200 00000000000000symdifference - non-blob second point :memory: #use in-memory database SELECT AsText(SymDifference(MakePoint(1,2),"hello")) 1 # rows (not including the header row) 1 # columns AsText(SymDifference(MakePoint(1,2),"hello")) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths10.testcase0000664000175000017500000000055512544707704022737 00000000000000shared paths - two lineZ :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("LINESTRINGZ(0 0 1, 10 0 1)"),GeomFromText("LINESTRINGZ(5 0 1, 15 0 1)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("LINESTRINGZ(0 0 1, 10 0 1)"),GeomFromText("LINESTRINGZ(5 0 1, 15 0 1)"))) MULTILINESTRING Z((5 0 1, 10 0 1))libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint4.testcase0000664000175000017500000000033512544707704023076 00000000000000Closest Point - bad second blob :memory: #use in-memory database SELECT ClosestPoint(MakePoint(1, 2), zeroblob(25)); 1 # rows (not including the header row) 1 # columns ClosestPoint(MakePoint(1, 2), zeroblob(25)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isclosed7.testcase0000664000175000017500000000044512544707704022162 00000000000000isclosed - multilinestring :memory: #use in-memory database SELECT IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")) 1 # rows (not including the header row) 1 # columns IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/pointonsurface3.testcase0000664000175000017500000000027312544707704023407 00000000000000PointOnSurface - null blob :memory: #use in-memory database SELECT PointOnSurface(zeroblob(40)); 1 # rows (not including the header row) 1 # columns PointOnSurface(zeroblob(40)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/polygonize1.testcase0000664000175000017500000000046212544707704022545 00000000000000POLYGONIZE - simple polygon :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("LINESTRING(0 0, 1 1, 0 2, -1 1, 0 0)"))); 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("LINESTRING(0 0, 1 1, 0 2, -1 1, 0 0)"))) POLYGON((0 0, -1 1, 0 2, 1 1, 0 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths12.testcase0000664000175000017500000000102512544707704022732 00000000000000shared paths - two polygonZM :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGONZM((0 0 4 1, 10 0 4 1, 10 10 4 1, 0 10 4 1, 0 0 4 1))"),GeomFromText("POLYGONZM((5 0 4 1, 15 0 4 1, 15 10 4 1, 5 10 4 1, 5 0 4 1))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGONZM((0 0 4 1, 10 0 4 1, 10 10 4 1, 0 10 4 1, 0 0 4 1))"),GeomFromText("POLYGONZM((5 0 4 1, 15 0 4 1, 15 10 4 1, 5 10 4 1, 5 0 4 1))"))) MULTILINESTRING ZM((5 0 4 0, 10 0 4 0), (10 10 4 0, 5 10 4 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths22.testcase0000664000175000017500000000061612544707704022740 00000000000000shared paths - two multilines :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRING((0 0, 10 0),(12 0, 16 0))"),GeomFromText("LINESTRING(5 0, 15 0)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRING((0 0, 10 0),(12 0, 16 0))"),GeomFromText("LINESTRING(5 0, 15 0)"))) MULTILINESTRING((5 0, 10 0), (12 0, 15 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths25.testcase0000664000175000017500000000072712544707704022746 00000000000000shared paths - multiline :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 15 0),(5 0, 5 5))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(11 0, 5 0),(5 0, 5 5))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRING((5 0, 15 0),(5 0, 5 5))"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(11 0, 5 0),(5 0, 5 5))"))) MULTILINESTRING((5 5, 5 0, 6 0, 10 0, 11 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/buffer2.testcase0000664000175000017500000000511612544707704021621 00000000000000buffer2 :memory: #use in-memory database SELECT AsText(Buffer(GeomFromText("LINESTRING(0 0, 100 0)"), 1)); 1 # rows (not including the header row) 1 # columns AsText(Buffer(GeomFromText("LINESTRING(0 0, 100 0)"), 1)) POLYGON((100 1, 100.052336 0.99863, 100.104528 0.994522, 100.156434 0.987688, 100.207912 0.978148, 100.258819 0.965926, 100.309017 0.951057, 100.358368 0.93358, 100.406737 0.913545, 100.45399 0.891007, 100.5 0.866025, 100.544639 0.838671, 100.587785 0.809017, 100.62932 0.777146, 100.669131 0.743145, 100.707107 0.707107, 100.743145 0.669131, 100.777146 0.62932, 100.809017 0.587785, 100.838671 0.544639, 100.866025 0.5, 100.891007 0.45399, 100.913545 0.406737, 100.93358 0.358368, 100.951057 0.309017, 100.965926 0.258819, 100.978148 0.207912, 100.987688 0.156434, 100.994522 0.104528, 100.99863 0.052336, 101 0, 100.99863 -0.052336, 100.994522 -0.104528, 100.987688 -0.156434, 100.978148 -0.207912, 100.965926 -0.258819, 100.951057 -0.309017, 100.93358 -0.358368, 100.913545 -0.406737, 100.891007 -0.45399, 100.866025 -0.5, 100.838671 -0.544639, 100.809017 -0.587785, 100.777146 -0.62932, 100.743145 -0.669131, 100.707107 -0.707107, 100.669131 -0.743145, 100.62932 -0.777146, 100.587785 -0.809017, 100.544639 -0.838671, 100.5 -0.866025, 100.45399 -0.891007, 100.406737 -0.913545, 100.358368 -0.93358, 100.309017 -0.951057, 100.258819 -0.965926, 100.207912 -0.978148, 100.156434 -0.987688, 100.104528 -0.994522, 100.052336 -0.99863, 100 -1, 0 -1, -0.052336 -0.99863, -0.104528 -0.994522, -0.156434 -0.987688, -0.207912 -0.978148, -0.258819 -0.965926, -0.309017 -0.951057, -0.358368 -0.93358, -0.406737 -0.913545, -0.45399 -0.891007, -0.5 -0.866025, -0.544639 -0.838671, -0.587785 -0.809017, -0.62932 -0.777146, -0.669131 -0.743145, -0.707107 -0.707107, -0.743145 -0.669131, -0.777146 -0.62932, -0.809017 -0.587785, -0.838671 -0.544639, -0.866025 -0.5, -0.891007 -0.45399, -0.913545 -0.406737, -0.93358 -0.358368, -0.951057 -0.309017, -0.965926 -0.258819, -0.978148 -0.207912, -0.987688 -0.156434, -0.994522 -0.104528, -0.99863 -0.052336, -1 0, -0.99863 0.052336, -0.994522 0.104528, -0.987688 0.156434, -0.978148 0.207912, -0.965926 0.258819, -0.951057 0.309017, -0.93358 0.358368, -0.913545 0.406737, -0.891007 0.45399, -0.866025 0.5, -0.838671 0.544639, -0.809017 0.587785, -0.777146 0.62932, -0.743145 0.669131, -0.707107 0.707107, -0.669131 0.743145, -0.62932 0.777146, -0.587785 0.809017, -0.544639 0.838671, -0.5 0.866025, -0.45399 0.891007, -0.406737 0.913545, -0.358368 0.93358, -0.309017 0.951057, -0.258819 0.965926, -0.207912 0.978148, -0.156434 0.987688, -0.104528 0.994522, -0.052336 0.99863, 0 1, 100 1)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring23.testcase0000664000175000017500000000047312544707704023324 00000000000000linesubstring - using no segments ZM :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRINGZM(0 0 1 0, 10 0 1 0, 10 10 1 0)"), 0, 0)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRINGZM(0 0 1 0, 10 0 1 0, 10 10 1 0)"), 0, 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/snap1.testcase0000664000175000017500000000051012544707704021301 00000000000000Snap, LINESTRING, point :memory: #use in-memory database SELECT AsText(Snap(GeomFromText("POINT(1 1)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 2)) 1 # rows (not including the header row) 1 # columns AsText(Snap(GeomFromText("POINT(1 1)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 2)) POINT(0 0)libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring13.testcase0000664000175000017500000000054412544707704023322 00000000000000linesubstring - geometry collection - polygon :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("GeometryCollection(POLYGON((0 0, 1 0, 1 2, 0 2, 0 0)))"), 0.2, 0.6)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("GeometryCollection(POLYGON((0 0, 1 0, 1 2, 0 2, 0 0)))"), 0.2, 0.6)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_perimeter8.testcase0000664000175000017500000000034712544707704023061 00000000000000ST_Perimeter - toxic linestring :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText('LINESTRING(1 1, 1 1)')); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText('LINESTRING(1 1, 1 1)')) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid5.testcase0000664000175000017500000000056512544707704022510 00000000000000TriangularGrid - Collection (Point - Polygon) geom :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_length16.testcase0000664000175000017500000000120212544707704022414 00000000000000ST_Length - GeometryCollection (Long/Lat metric - GreatCircle) :memory: #use in-memory database SELECT ST_Length(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 0); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 0) 49082.124419:6 libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistwithin16.testcase0000664000175000017500000000052212544707704023163 00000000000000PtDistWithin: Polygon / Linestring :memory: SELECT PtDistWithin(GeomFromText("POLYGON((5 5, 5.1 5, 5.1 5.1, 5 5.1, 5 5))", 4326), GeomFromText("LINESTRING(4 4, 4.1 4.1)", 4326), 200); 1 # rows 1 # column PtDistWithin(GeomFromText("POLYGON((5 5, 5.1 5, 5.1 5.1, 5 5.1, 5 5))", 4326), GeomFromText("LINESTRING(4 4, 4.1 4.1)", 4326), 200) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint18.testcase0000664000175000017500000000072512544707704023166 00000000000000Closest Point - polygonZ with interior and Point :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("POINTZ(4 6 1)"), GeomFromText("POLYGONZ((0 0 1, 10 0 2, 10 10 3, 0 10 2, 0 0 1),( 1 1 4, 3 1 5, 3 3 6, 1 3 5, 1 1 4))"))) 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("POINTZ(4 6 1)"), GeomFromText("POLYGONZ((0 0 1, 10 0 2, 10 10 3, 0 10 2, 0 0 1),( 1 1 4, 3 1 5, 3 3 6, 1 3 5, 1 1 4))"))) POINT Z(4 6 1) libspatialite-4.3.0a/test/sql_stmt_geos_tests/singlesidedbuffer13.testcase0000664000175000017500000000050312544707704024111 00000000000000singlesidedbuffer - POLYGON, int radius, right side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("POLYGON((0 0, 0 20, 1 20, 1 0, 0 0))"), 3, 0)) 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("POLYGON((0 0, 0 20, 1 20, 1 0, 0 0))"), 3, 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/intersection5.testcase0000664000175000017500000000036012544707704023055 00000000000000intersection - zeroblob second point :memory: #use in-memory database SELECT AsText(Intersection(MakePoint(2,3), zeroblob(48))); 1 # rows (not including the header row) 1 # columns AsText(Intersection(MakePoint(2,3), zeroblob(48))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/geoserror5.testcase0000664000175000017500000000112112544707704022352 00000000000000GEOS_Error - invalid self-intersecting Polygon :memory: #use in-memory database SELECT ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 0, 0 1, 1 1, 0 0))')), GEOS_GetLastWarningMsg(), GEOS_GetLastErrorMsg(), GEOS_GetLastAuxErrorMsg(), ST_AsText(GEOS_GetCriticalPointFromMsg(4326)); 1 # rows (not including the header row) 5 # columns ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 0, 0 1, 1 1, 0 0))')) GEOS_GetLastWarningMsg() GEOS_GetLastErrorMsg() GEOS_GetLastAuxErrorMsg() ST_AsText(GEOS_GetCriticalPointFromMsg(4326)) 0 Self-intersection at or near point 0.5 0.5 (NULL) (NULL) POINT(0.5 0.5) libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid8.testcase0000664000175000017500000000045112544707704022521 00000000000000SquareGrid - Polygon geom - alpha size :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 'alpha'); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes10.testcase0000664000175000017500000000040312544707704022564 00000000000000LinesCutAtNodes - non-blob first arg :memory: #use in-memory database SELECT LinesCutAtNodes(6.3 ,GeomFromText("MULTIPOINT(0 10, 10 10)")) 1 # rows (not including the header row) 1 # columns LinesCutAtNodes(6.3 ,GeomFromText("MULTIPOINT(0 10, 10 10)")) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistwithin9.testcase0000664000175000017500000000033712544707704023111 00000000000000PtDistWithin invalid arg: zeroblob pt1 :memory: SELECT PtDistWithin(zeroblob(25), GeomFromText("POINT(5 5)", 4326), 10.0, 1); 1 # rows 1 # column PtDistWithin(zeroblob(25), GeomFromText("POINT(5 5)", 4326), 10.0, 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/singlesidedbuffer7.testcase0000664000175000017500000000052712544707704024042 00000000000000singlesidedbuffer - LINESTRING -X, float radius, right side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 20, 0 0)"), 3.5, 0)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 20, 0 0)"), 3.5, 0)) POLYGON((0 20, 0 0, -3.5 0, -3.5 20, 0 20)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolateequidistantpoint11.testcase0000664000175000017500000000064012544707704026300 00000000000000interpolate equidistant points - wrong geometry type :memory: #use in-memory database SELECT Line_Interpolate_Equidistant_Points(GeomFromText("GeometryCollection(LINESTRING(0 1, 1 2),POLYGON((0 0, 10 0, 10 10, 0 0)))"), 0.6) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Equidistant_Points(GeomFromText("GeometryCollection(LINESTRING(0 1, 1 2),POLYGON((0 0, 10 0, 10 10, 0 0)))"), 0.6) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring21.testcase0000664000175000017500000000057612544707704023326 00000000000000linesubstring - using both segments M :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRINGM(0 0 0, 10 0 0, 10 10 0)"), 0.2, 0.8)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRINGM(0 0 0, 10 0 0, 10 10 0)"), 0.2, 0.8)) LINESTRING M(4 0 0, 10 0 0, 10 6 0) # yeah, it would have been m = 0.0 anyway. libspatialite-4.3.0a/test/sql_stmt_geos_tests/makecircle18.testcase0000664000175000017500000000034712544707704022537 00000000000000makecircle18 - valid step :memory: #use in-memory database SELECT ST_Length(MakeCircle(0.0, 0.0, 100.0, 4326, 1.0)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeCircle(0.0, 0.0, 100.0, 4326, 1.0)) 628.3105:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring18.testcase0000664000175000017500000000046412544707704023330 00000000000000linesubstring - ignoring second segment :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0, 10 10)"), 0, 0.2)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0, 10 10)"), 0, 0.2)) LINESTRING(0 0, 4 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths1.testcase0000664000175000017500000000052312544707704022652 00000000000000shared paths - two lines :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("LINESTRING(0 0, 10 0)"),GeomFromText("LINESTRING(5 0, 15 0)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("LINESTRING(0 0, 10 0)"),GeomFromText("LINESTRING(5 0, 15 0)"))) MULTILINESTRING((5 0, 10 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/relations5.testcase0000664000175000017500000000112112544707704022343 00000000000000Relationship tests - bad second arg :memory: #use in-memory database SELECT Equals(geom1, geom2), Intersects(geom1, geom2), Disjoint(geom1, geom2), Overlaps(geom1, geom2), Crosses(geom1, geom2), Touches(geom1, geom2), Within(geom1, geom2), Contains(geom1, geom2) FROM (SELECT GeomFromText("POINT(3 4)") as geom1, "hello" as geom2) dummy; 1 # rows (not including the header row) 8 # columns Equals(geom1, geom2) Intersects(geom1, geom2) Disjoint(geom1, geom2) Overlaps(geom1, geom2) Crosses(geom1, geom2) Touches(geom1, geom2) Within(geom1, geom2) Contains(geom1, geom2) -1 -1 -1 -1 -1 -1 -1 -1libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring9.testcase0000664000175000017500000000043212544707704023243 00000000000000linesubstring - wrong type of limits 2 :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), 0, null)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), 0, null)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromtext4.testcase0000664000175000017500000000027012544707704023430 00000000000000BdPolyFromText - non-text, SRID :memory: #use in-memory database SELECT BdPolyFromText(26, 4326); 1 # rows (not including the header row) 1 # columns BdPolyFromText(26, 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid13.testcase0000664000175000017500000000050012544707704022554 00000000000000TriangularGrid - Polygon geom - NULL origin :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, NULL); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistwithin2.testcase0000664000175000017500000000031312544707704023074 00000000000000PtDistWithin invalid arg: NULL pt2 :memory: SELECT PtDistWithin(GeomFromText("POINT(5 5)", 4326), NULL, 10.0, 1); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5 5)", 4326), NULL, 10.0, 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/unaryunion2.testcase0000664000175000017500000000044412544707704022556 00000000000000unaryunion - points :memory: #use in-memory database SELECT AsText(UnaryUnion(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), POINT(2 3))"))) 1 # rows (not including the header row) 1 # columns AsText(UnaryUnion(GeomFromText("GEOMETRYCOLLECTION(POINT(1 2), POINT(2 3))"))); MULTIPOINT(1 2, 2 3) libspatialite-4.3.0a/test/sql_stmt_geos_tests/simplify13.testcase0000664000175000017500000000062212544707704022263 00000000000000Simplify - linestringM :memory: #use in-memory database SELECT AsText(Simplify(geom, 0.1)), AsText(SimplifyPreserveTopology(geom, 0.1)) FROM (SELECT GeomFromText("LINESTRINGM(1 2 1, 4.0001 4.9999 5, 4 5 5)") as geom) dummy 1 # rows (not including the header row) 2 # columns AsText(Simplify(geom, 0.1)) AsText(SimplifyPreserveTopology(geom, 0.1)) LINESTRING M(1 2 0, 4 5 0) LINESTRING M(1 2 0, 4 5 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/pointonsurface7.testcase0000664000175000017500000000073112544707704023412 00000000000000PointOnSurface - square, Z and M (problem case - throws away Z and M component) :memory: #use in-memory database SELECT Contains(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326), PointOnSurface(geomFromText("POLYGONZM((0 0 1 4, 0 1 2 4, 1 1 2 2, 0 0 1 4))", 4326))) 1 # rows (not including the header row) 1 # columns Contains(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326), PointOnSurface(geomFromText("POLYGONZM((0 0 1 4, 0 1 2 4, 1 1 2 2, 0 0 1 4))", 4326))) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/snap3.testcase0000664000175000017500000000055412544707704021313 00000000000000Snap, LINESTRING, point, non-number 3rd arg :memory: #use in-memory database SELECT AsText(Snap(GeomFromText("POINT(0.1 0.2)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), "hello")) 1 # rows (not including the header row) 1 # columns AsText(Snap(GeomFromText("POINT(0.1 0.2)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), "hello")) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/singlesidedbuffer12.testcase0000664000175000017500000000050312544707704024110 00000000000000singlesidedbuffer - POLYGON, int radius, right side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("POLYGON((0 0, 0 20, 1 20, 1 0, 0 0))"), 3, 0)) 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("POLYGON((0 0, 0 20, 1 20, 1 0, 0 0))"), 3, 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistwithin12.testcase0000664000175000017500000000041012544707704023153 00000000000000PtDistWithin: WGS84 spheroid :memory: SELECT PtDistWithin(GeomFromText("POINT(5 5)", 4326), GeomFromText("POINT(5.1 5.1)", 4326), 100000.0, 1); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5 5)", 4326), GeomFromText("POINT(5.1 5.1)", 4326), 100000.0, 1) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring5.testcase0000664000175000017500000000036512544707704023244 00000000000000linesubstring - bad geom :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("POINT(0 0"), 0.2, 0.6)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("POINT(0 0"), 0.2, 0.6)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/intersection8.testcase0000664000175000017500000000057512544707704023070 00000000000000intersection - toxic second point :memory: #use in-memory database SELECT AsText(Intersection(MakePoint(136,-35), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))); 1 # rows (not including the header row) 1 # columns AsText(Intersection(MakePoint(136,-35), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance_geogr11.testcase0000664000175000017500000000073312544707704023405 00000000000000Distance Long/Lat metric (text use_ellipsoid) :memory: #use in-memory database SELECT ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), GeomFromText('POLYGON((11.3 42.3, 11.4 42.3, 11.4 42.4, 11.3 42.4, 11.3 42.3))'), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), GeomFromText('POLYGON((11.3 42.3, 11.4 42.3, 11.4 42.4, 11.3 42.4, 11.3 42.3))'), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/convexhull6.testcase0000664000175000017500000000023112544707704022534 00000000000000convex hull - non-blob :memory: #use in-memory database SELECT ConvexHull(3.2) 1 # rows (not including the header row) 1 # columns ConvexHull(3.2) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/symdifference5.testcase0000664000175000017500000000035012544707704023171 00000000000000symdifference - non-blob first point :memory: #use in-memory database SELECT AsText(SymDifference("hello", MakePoint(1,2))) 1 # rows (not including the header row) 1 # columns AsText(SymDifference("hello", MakePoint(1,2))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolateequidistantpoint7.testcase0000664000175000017500000000036112544707704026225 00000000000000interpolate equidistant points - non-blob :memory: #use in-memory database SELECT Line_Interpolate_Equidistant_Points("hello", 0.5) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Equidistant_Points("hello", 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/union3.testcase0000664000175000017500000000031012544707704021470 00000000000000union - null first point :memory: #use in-memory database SELECT AsText(GUnion(null, MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(null, MakePoint(2,3))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/simplify3.testcase0000664000175000017500000000054712544707704022210 00000000000000Simplify - linestring :memory: #use in-memory database SELECT AsText(Simplify(geom, 0)), AsText(SimplifyPreserveTopology(geom, 0)) FROM (SELECT GeomFromText("LINESTRING(1 2, 4 5)") as geom) dummy 1 # rows (not including the header row) 2 # columns AsText(Simplify(geom, 0)) AsText(SimplifyPreserveTopology(geom, 0)) LINESTRING(1 2, 4 5) LINESTRING(1 2, 4 5) libspatialite-4.3.0a/test/sql_stmt_geos_tests/polygonize4.testcase0000664000175000017500000000025512544707704022550 00000000000000POLYGONIZE - text :memory: #use in-memory database SELECT Polygonize("hello world"); 1 # rows (not including the header row) 1 # columns Polygonize("hello world") (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_length15.testcase0000664000175000017500000000051612544707704022422 00000000000000ST_Length - Linestring (Long/Lat metric - Ellipsoid) :memory: #use in-memory database SELECT ST_Length(GeomFromText("LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8)"), 1); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8)"), 1) 48935.452049:6 libspatialite-4.3.0a/test/sql_stmt_geos_tests/relate6.testcase0000664000175000017500000000042012544707704021621 00000000000000Relate - non text third arg :memory: #use in-memory database SELECT Relate(geom1, geom2, 26.7) FROM (SELECT GeomFromText("POINT(1 2)") as geom1, GeomFromText("POINT(1 2)") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Relate(geom1, geom2, 26.7) -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/isring4.testcase0000664000175000017500000000022212544707704021636 00000000000000isring4 :memory: #use in-memory database SELECT IsRing(zeroblob(10)); 1 # rows (not including the header row) 1 # columns IsRing(zeroblob(10)) -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint1.testcase0000664000175000017500000000036212544707704023073 00000000000000Closest Point - two points :memory: #use in-memory database SELECT AsText(ClosestPoint(MakePoint(1, 2), MakePoint(4, 6))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(MakePoint(1, 2), MakePoint(4, 6))) POINT(1 2) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes7.testcase0000664000175000017500000000055112544707704022516 00000000000000LinesCutAtNodes - line, wrong geometry :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINTZ(0 10 0)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINTZ(0 10 0)"))) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/covers_covered3.testcase0000664000175000017500000000067612544707704023367 00000000000000Covers / Covered - identical :memory: #use in-memory database SELECT Covers(geom1,geom2),CoveredBy(geom1,geom2),Covers(geom2,geom1),CoveredBy(geom2,geom1) from (SELECT GeomFromText("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))") as geom1,GeomFromText("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))") as geom2) dummy; 1 # rows (not including the header row) 4 # columns Covers(geom1,geom2) CoveredBy(geom1,geom2) Covers(geom2,geom1) CoveredBy(geom2,geom1) 1 1 1 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring15.testcase0000664000175000017500000000046112544707704023322 00000000000000linesubstring - basic vary Z :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRINGZ(0 0 0, 10 0 5)"), 0.2, 0.7)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRINGZ(0 0 0, 10 0 5)"), 0.2, 0.7)) LINESTRING Z(2 0 1, 7 0 3.5) libspatialite-4.3.0a/test/sql_stmt_geos_tests/snap7.testcase0000664000175000017500000000035512544707704021316 00000000000000Snap - bad blob second arg :memory: #use in-memory database SELECT Snap(GeomFromText("POINT(0.1 0.2)"), zeroblob(87), 0.4) 1 # rows (not including the header row) 1 # columns Snap(GeomFromText("POINT(0.1 0.2)"), zeroblob(87), 0.4) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/buildarea1.testcase0000664000175000017500000000023012544707704022267 00000000000000buildarea - null arg :memory: #use in-memory database SELECT BuildArea(NULL) 1 # rows (not including the header row) 1 # columns BuildArea(NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_length12.testcase0000664000175000017500000000070112544707704022413 00000000000000ST_Length - Polygon with 1 interior (Long/Lat metric - GreatCircle) :memory: #use in-memory database SELECT ST_Length(GeomFromText("POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55))"), 0); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55))"), 0) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/makecircle17.testcase0000664000175000017500000000034612544707704022535 00000000000000makecircle17 - BLOB step :memory: #use in-memory database SELECT ST_Length(MakeCircle(0, 0, 100, 4326, zeroblob(4))); 1 # rows (not including the header row) 1 # columns ST_Length(MakeCircle(0, 0, 100, 4326, zeroblob(4))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistancewithin17.testcase0000664000175000017500000000045312544707704024016 00000000000000PtDistWithin - LINESTRING and POINT, first arg WGS-84 :memory: #use in-memory database SELECT PtDistWithin(GeomFromText("LINESTRING(4 2, 3 2)", 4326), MakePoint(4,4), 5) 1 # rows (not including the header row) 1 # columns PtDistWithin(GeomFromText("LINESTRING(4 2, 3 2)", 4326), MakePoint(4,4), 5) 1libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_perimeter16.testcase0000664000175000017500000000121412544707704023132 00000000000000ST_Perimeter - GeometryCollection (Long/Lat metric - GreatCircle) :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 0); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 0) 102862.738784:6 libspatialite-4.3.0a/test/sql_stmt_geos_tests/relations1.testcase0000664000175000017500000000113712544707704022346 00000000000000Relationship tests - POINTs identical :memory: #use in-memory database SELECT Equals(geom1, geom2), Intersects(geom1, geom2), Disjoint(geom1, geom2), Overlaps(geom1, geom2), Crosses(geom1, geom2), Touches(geom1, geom2), Within(geom1, geom2), Contains(geom1, geom2) FROM (SELECT GeomFromText("POINT(1 2)") as geom1, GeomFromText("POINT(1 2)") as geom2) dummy; 1 # rows (not including the header row) 8 # columns Equals(geom1, geom2) Intersects(geom1, geom2) Disjoint(geom1, geom2) Overlaps(geom1, geom2) Crosses(geom1, geom2) Touches(geom1, geom2) Within(geom1, geom2) Contains(geom1, geom2) 1 1 0 0 0 0 1 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid17.testcase0000664000175000017500000000044612544707704022605 00000000000000SquareGrid - Polygon geom - negative size :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), -1.0); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), -1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes18.testcase0000664000175000017500000000074012544707704022600 00000000000000LinesCutAtNodes - closed linestringM, nodes :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRINGM(0 0 1, 0 10 1, 10 10 1, 10 0 1, 0 0 1)"),GeomFromText("MULTIPOINTM(0 10 1, 10 10 1)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRINGM(0 0 1, 0 10 1, 10 10 1, 10 0 1, 0 0 1)"),GeomFromText("MULTIPOINTM(0 10 1, 10 10 1)"))) MULTILINESTRING M((10 10 1, 10 0 1, 0 0 1, 0 10 1), (0 10 1, 10 10 1))libspatialite-4.3.0a/test/sql_stmt_geos_tests/offsetcurve14.testcase0000664000175000017500000000051512544707704022764 00000000000000OffsetCurve - linestringzm :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('LINESTRINGZM(0 0 1 4, 0 1 2 4, 4 1 2 4, 4 0 1 4)'), -1)) 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('LINESTRINGZM(0 0 1 4, 0 1 2 4, 4 1 2 4, 4 0 1 4)'), -1)) LINESTRING ZM(3 0 0 0, 1 0 0 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid17.testcase0000664000175000017500000000046212544707704022567 00000000000000TriangularGrid - Polygon geom - negative size :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), -1.0); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), -1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/singlesidedbuffer4.testcase0000664000175000017500000000052312544707704024033 00000000000000singlesidedbuffer - LINESTRING X, float radius, right side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), 3.5, 0)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), 3.5, 0)) POLYGON((0 0, 0 20, 3.5 20, 3.5 0, 0 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid19.testcase0000664000175000017500000000060312544707704022066 00000000000000HexagonalGrid - Polygon geom - MultiPoint Origin :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('MULTIPOINT(0 0, 1 1)')); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('MULTIPOINT(0 0, 1 1)')) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_area4.testcase0000664000175000017500000000036112544707704021765 00000000000000ST_Area - Linestring not closed :memory: #use in-memory database SELECT ST_Area(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0)")); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0)")) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/offsetcurve10.testcase0000664000175000017500000000047612544707704022766 00000000000000OffsetCurve - multilinestring, 1 linestring :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('MULTILINESTRING((0 0, 0 1, 4 1, 4 0))'), -1)); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('MULTILINESTRING((0 0, 0 1, 4 1, 4 0))'), -1)) LINESTRING(3 0, 1 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/makecircle10.testcase0000664000175000017500000000030012544707704022514 00000000000000makecircle10 - valid :memory: #use in-memory database SELECT ST_Length(MakeCircle(0, 0, 100)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeCircle(0, 0, 100)) 627.5213:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_perimeter11.testcase0000664000175000017500000000121212544707704023123 00000000000000ST_Perimeter - GeometryCollection :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("GEOMETRYCOLLECTION(POINT(100 100), POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1)), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)), LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0), LINESTRING(10 10, 11 10, 11 11), POINT(200 200))")); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("GEOMETRYCOLLECTION(POINT(100 100), POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1)), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)), LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0), LINESTRING(10 10, 11 10, 11 11), POINT(200 200))")) 28.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/symdifference11.testcase0000664000175000017500000000057712544707704023261 00000000000000symdifference - toxic second point :memory: #use in-memory database SELECT AsText(SymDifference(MakePoint(136,-35), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) 1 # rows (not including the header row) 1 # columns AsText(SymDifference(MakePoint(136,-35), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/difference3.testcase0000664000175000017500000000032512544707704022440 00000000000000difference - null first point :memory: #use in-memory database SELECT AsText(Difference(null, MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(Difference(null, MakePoint(2,3))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/snap6.testcase0000664000175000017500000000043212544707704021311 00000000000000Snap - bad blob first arg :memory: #use in-memory database SELECT Snap(zeroblob(50), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 2) 1 # rows (not including the header row) 1 # columns Snap(zeroblob(50), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 2) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/locatepoint7.testcase0000664000175000017500000000064112544707704022674 00000000000000locate point - GeometryCollection second arg :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), GeomFromText("GeometryCollection(POINT(0 1),POLYGON((0 0, 10 0, 10 10, 0 0)))")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), GeomFromText("GeometryCollection(POINT(0 1),POLYGON((0 0, 10 0, 10 10, 0 0)))")) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/makecircularstripe15.testcase0000664000175000017500000000035412544707704024324 00000000000000makecircularstripe15 - valid :memory: #use in-memory database SELECT ST_Area(MakeCircularStripe(0, 0, 100, 90, 30, 60)); 1 # rows (not including the header row) 1 # columns ST_Area(MakeCircularStripe(0, 0, 100, 90, 30, 60)) 494.8973:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/makecircularsector23.testcase0000664000175000017500000000040012544707704024304 00000000000000makecircularsector23 - valid step :memory: #use in-memory database SELECT ST_Area(MakeCircularSector(0, 0, 100, 30, 60, 4326, 1.0)); 1 # rows (not including the header row) 1 # columns ST_Area(MakeCircularSector(0, 0, 100, 30, 60, 4326, 1.0)) 2617.8609:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/intersection9.testcase0000664000175000017500000000056312544707704023066 00000000000000intersection - POLYGONZ, POINT :memory: #use in-memory database SELECT AsText(Intersection(GeomFromText("POLYGONZ((0 0 1, 4 0 1, 4 4 1, 0 4 1, 0 0 1))"), GeomFromText("POINT Z(0 3 1)"))) 1 # rows (not including the header row) 1 # columns AsText(Intersection(GeomFromText("POLYGONZ((0 0 1, 4 0 1, 4 4 1, 0 4 1, 0 0 1))"), GeomFromText("POINT Z(0 3 1)"))) POINT Z(0 3 1) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes2.testcase0000664000175000017500000000057212544707704022514 00000000000000LinesCutAtNodes - line, node :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("POINT(0 10)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("POINT(0 10)"))) MULTILINESTRING((0 0, 0 10), (0 10, 10 10, 10 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/simplify12.testcase0000664000175000017500000000062212544707704022262 00000000000000Simplify - linestringZ :memory: #use in-memory database SELECT AsText(Simplify(geom, 0.1)), AsText(SimplifyPreserveTopology(geom, 0.1)) FROM (SELECT GeomFromText("LINESTRINGZ(1 2 1, 4.0001 4.9999 5, 4 5 5)") as geom) dummy 1 # rows (not including the header row) 2 # columns AsText(Simplify(geom, 0.1)) AsText(SimplifyPreserveTopology(geom, 0.1)) LINESTRING Z(1 2 1, 4 5 5) LINESTRING Z(1 2 1, 4 5 5) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvaliddetail4.testcase0000664000175000017500000000046312544707704023170 00000000000000isvaliddetail4 :memory: #use in-memory database SELECT IsValidDetail(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")); 1 # rows (not including the header row) 1 # columns IsValidDetail(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/union1.testcase0000664000175000017500000000034512544707704021476 00000000000000union - two points :memory: #use in-memory database SELECT AsText(GUnion(Makepoint(1,2), MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(Makepoint(1,2), MakePoint(2,3))) MULTIPOINT(1 2, 2 3) libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistwithin15.testcase0000664000175000017500000000035212544707704023163 00000000000000PtDistWithin: unknown Srid :memory: SELECT PtDistWithin(GeomFromText("POINT(5 5)", -1), GeomFromText("POINT(5.1 5.1)", -1), 1); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5 5)", -1), GeomFromText("POINT(5.1 5.1)", -1), 1) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/polygonize10.testcase0000664000175000017500000000074112544707704022625 00000000000000POLYGONIZE - polygonM with inner ring :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("MULTILINESTRINGM((0 0 5, 10 0 6, 10 12 7, 0 12 6, 0 0 5),(1 1 0, 3 1 0, 3 3 4, 1 3 1, 1 1 0))"))) 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("MULTILINESTRINGM((0 0 5, 10 0 6, 10 12 7, 0 12 6, 0 0 5),(1 1 0, 3 1 0, 3 3 4, 1 3 1, 1 1 0))"))) POLYGON M((0 0 0, 0 12 0, 10 12 0, 10 0 0, 0 0 0), (1 1 0, 3 1 0, 3 3 0, 1 3 0, 1 1 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/intersection7.testcase0000664000175000017500000000057412544707704023066 00000000000000intersection - toxic first point :memory: #use in-memory database SELECT AsText(Intersection(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(136,-35))); 1 # rows (not including the header row) 1 # columns AsText(Intersection(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(136,-35))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/union8.testcase0000664000175000017500000000055212544707704021505 00000000000000union - toxic second point :memory: #use in-memory database SELECT AsText(GUnion(MakePoint(136,-35), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(MakePoint(136,-35), GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/boundary5.testcase0000664000175000017500000000040612544707704022173 00000000000000Boundary - closed linestring :memory: #use in-memory database SELECT AsText(Boundary(GeomFromText("LINESTRING(1 2, 4 -3, 0 -1, 1 2)"))) 1 # rows (not including the header row) 1 # columns AsText(Boundary(GeomFromText("LINESTRING(1 2, 4 -3, 0 -1, 1 2)"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/symdifference7.testcase0000664000175000017500000000047212544707704023200 00000000000000symdifference - two pointZ :memory: #use in-memory database SELECT AsText(SymDifference(GeomFromText("POINTZ(1 3 4)"),GeomFromText("POINTZ(4 2 6)"))) 1 # rows (not including the header row) 1 # columns AsText(SymDifference(GeomFromText("POINTZ(1 3 4)"),GeomFromText("POINTZ(4 2 6)"))) MULTIPOINT Z(1 3 4, 4 2 6) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromtext2.testcase0000664000175000017500000000047612544707704023613 00000000000000BdMPolyFromText - SRID :memory: #use in-memory database SELECT AsEWkt(BdMPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', 4326)); 1 # rows (not including the header row) 1 # columns AsEWkt(BdMPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', 4326)) SRID=4326;MULTIPOLYGON(((0 0,0 1,1 1,1 0,0 0))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/union20.testcase0000664000175000017500000000150112544707704021552 00000000000000union - POLYGON ZM with hole :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("POLYGONZM((10 10 100 1, 15 10 100 2, 15 15 100 3, 10 15 100 4, 10 10 100 1), (11 11 102 1, 12 11 102 2, 12 12 102 3, 11 12 102 4, 11 11 102 1))"), GeomFromText("POLYGONZM((15 10 100 2, 16 10 100 1, 16 15 100 3, 10 15 100 4, 15 10 100 2))"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("POLYGONZM((10 10 100 1, 15 10 100 2, 15 15 100 3, 10 15 100 4, 10 10 100 1), (11 11 102 1, 12 11 102 2, 12 12 102 3, 11 12 102 4, 11 11 102 1))"), GeomFromText("POLYGONZM((15 10 100 2, 16 10 100 1, 16 15 100 3, 10 15 100 4, 15 10 100 2))"))) POLYGON ZM((15 10 100 0, 10 10 100 0, 10 15 100 0, 15 15 100 0, 16 15 100 0, 16 10 100 0, 15 10 100 0), (11 11 102 0, 12 11 102 0, 12 12 102 0, 11 12 102 0, 11 11 102 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/testgeos6.testcase0000664000175000017500000000034312544707704022206 00000000000000GEOS test - Touches test_geos_x.sqlite SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Touches(a.geometry, b.geometry) = 1; 1 # rows (not including the header row) 1 # columns Count(*) 9 libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_length14.testcase0000664000175000017500000000052012544707704022414 00000000000000ST_Length - Linestring (Long/Lat metric - GreatCircle) :memory: #use in-memory database SELECT ST_Length(GeomFromText("LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8)"), 0); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8)"), 0) 49082.124419:6 libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint5.testcase0000664000175000017500000000032312544707704023074 00000000000000Closest Point - text first geom :memory: #use in-memory database SELECT ClosestPoint("world", MakePoint(1, 2)); 1 # rows (not including the header row) 1 # columns ClosestPoint("world", MakePoint(1, 2)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid2.testcase0000664000175000017500000000027312544707704022515 00000000000000SquareGrid - zeroblob geom :memory: #use in-memory database SELECT SquareGrid(zeroblob(4), 1.0); 1 # rows (not including the header row) 1 # columns SquareGrid(zeroblob(4), 1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths16.testcase0000664000175000017500000000065012544707704022741 00000000000000shared paths - two polygon :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))"),GeomFromText("POLYGON((5 0, 15 0, 15 10, 5 10, 5 0))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))"),GeomFromText("POLYGON((5 0, 15 0, 15 10, 5 10, 5 0))"))) MULTILINESTRING((5 0, 10 0), (10 10, 5 10))libspatialite-4.3.0a/test/sql_stmt_geos_tests/unaryunion4.testcase0000664000175000017500000000047212544707704022561 00000000000000unaryunion - points M :memory: #use in-memory database SELECT AsText(UnaryUnion(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 3), POINTM(2 3 4))"))) 1 # rows (not including the header row) 1 # columns AsText(UnaryUnion(GeomFromText("GEOMETRYCOLLECTIONM(POINTM(1 2 3), POINTM(2 3 4))"))); MULTIPOINT M(1 2 0, 2 3 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring11.testcase0000664000175000017500000000033312544707704023314 00000000000000linesubstring - bad blob :memory: #use in-memory database SELECT AsText(Line_Substring(zeroblob(10), 0.2, 0.6)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(zeroblob(10), 0.2, 0.6)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalidreason3.testcase0000664000175000017500000000044112544707704023210 00000000000000isvalidreason3 :memory: #use in-memory database SELECT IsValidReason(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")); 1 # rows (not including the header row) 1 # columns IsValidReason(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")) Valid Geometry libspatialite-4.3.0a/test/sql_stmt_geos_tests/offsetcurve7.testcase0000664000175000017500000000031012544707704022677 00000000000000OffsetCurve - zeroblob :memory: #use in-memory database SELECT AsText(OffsetCurve(zeroblob(40), 1)); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(zeroblob(40), 1)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint7.testcase0000664000175000017500000000045712544707704023106 00000000000000Closest Point - two pointZs :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("POINTZ(1 2 3)"), GeomFromText("POINTZ(4 6 0)"))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("POINTZ(1 2 3)"), GeomFromText("POINTZ(4 6 0)"))) POINT Z(1 2 3) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromtext7.testcase0000664000175000017500000000030712544707704023434 00000000000000BdPolyFromText - zeroblob(58), no SRID :memory: #use in-memory database SELECT BdPolyFromText(zeroblob(58)); 1 # rows (not including the header row) 1 # columns BdPolyFromText(zeroblob(58)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/makeellipse13.testcase0000664000175000017500000000031512544707704022721 00000000000000makeellipse13 - valid :memory: #use in-memory database SELECT ST_Length(MakeEllipse(0, 0, 100, 200)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeEllipse(0, 0, 100, 200)) 967.6155:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/pointonsurface5.testcase0000664000175000017500000000067312544707704023415 00000000000000PointOnSurface - square, Z (problem case - throws away Z component) :memory: #use in-memory database SELECT Contains(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326), PointOnSurface(geomFromText("POLYGONZ((0 0 1, 0 1 2, 1 1 2, 0 0 1))", 4326))) 1 # rows (not including the header row) 1 # columns Contains(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326), PointOnSurface(geomFromText("POLYGONZ((0 0 1, 0 1 2, 1 1 2, 0 0 1))", 4326))) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistancewithin14.testcase0000664000175000017500000000040112544707704024004 00000000000000PtDistWithin - WGS-84 both args :memory: #use in-memory database SELECT PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4,4326), 2000000) 1 # rows (not including the header row) 1 # columns PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4,4326), 2000000) 1libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_perimeter13.testcase0000664000175000017500000000072412544707704023134 00000000000000ST_Perimeter - Polygon with 1 interior (Long/Lat metric - Ellipsoid) :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55))"), 1); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55))"), 1) 102821.231470:6 libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_perimeter12.testcase0000664000175000017500000000072612544707704023135 00000000000000ST_Perimeter - Polygon with 1 interior (Long/Lat metric - GreatCircle) :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55))"), 0); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55))"), 0) 102862.738784:6 libspatialite-4.3.0a/test/sql_stmt_geos_tests/singlesidedbuffer11.testcase0000664000175000017500000000051612544707704024113 00000000000000singlesidedbuffer - closed LINESTRING, int radius, left side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20, 1 20, 1 0, 0 0)"), 3, 1)) 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20, 1 20, 1 0, 0 0)"), 3, 1)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linemerge5.testcase0000664000175000017500000000032212544707704022314 00000000000000linemerge - POINT :memory: #use in-memory database SELECT AsText(LineMerge(GeomFromText("POINT(3 3)"))) 1 # rows (not including the header row) 1 # columns AsText(LineMerge(GeomFromText("POINT(3 3)"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/centroid1.testcase0000664000175000017500000000042312544707704022152 00000000000000Centroid - polygon :memory: #use in-memory database SELECT astext(centroid(geomFromText("POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))", 4326))); 1 # rows (not including the header row) 1 # columns astext(centroid(geomFromText("POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))", 4326))); POINT(1 1) libspatialite-4.3.0a/test/sql_stmt_geos_tests/covers2.testcase0000664000175000017500000000037312544707704021651 00000000000000Covers - non-geom2 :memory: #use in-memory database SELECT Covers(geom1,geom2) from (SELECT "hello" as geom2,GeomFromText("POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))") as geom1) dummy; 1 # rows (not including the header row) 1 # columns Covers(geom1,geom2) -1libspatialite-4.3.0a/test/sql_stmt_geos_tests/testgeos1.testcase0000664000175000017500000000034112544707704022177 00000000000000GEOS test - Equals test_geos_x.sqlite SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Equals(a.geometry, b.geometry) = 1; 1 # rows (not including the header row) 1 # columns Count(*) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes6.testcase0000664000175000017500000000063512544707704022520 00000000000000LinesCutAtNodes - line, co-incident nodes :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINT(0 10, 0 10)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINT(0 10, 0 10)"))) MULTILINESTRING((0 0, 0 10), (0 10, 10 10, 10 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromtext1.testcase0000664000175000017500000000044512544707704023606 00000000000000BdMPolyFromText :memory: #use in-memory database SELECT AsText(BdMPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')); 1 # rows (not including the header row) 1 # columns AsText(BdMPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')) MULTIPOLYGON(((0 0, 0 1, 1 1, 1 0, 0 0))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb11.testcase0000664000175000017500000000053412544707704023465 00000000000000BdMPolyFromWKB - toxic, no SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(AsBinary(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(AsBinary(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring14.testcase0000664000175000017500000000063712544707704023326 00000000000000linesubstring - geometry collection - polygon and linestring :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("GeometryCollection(LINESTRING(0 0, 10 0),POLYGON((0 0, 1 0, 1 2, 0 2, 0 0)))"), 0.2, 0.6)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("GeometryCollection(LINESTRING(0 0, 10 0),POLYGON((0 0, 1 0, 1 2, 0 2, 0 0)))"), 0.2, 0.6)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid11.testcase0000664000175000017500000000047312544707704022063 00000000000000HexagonalGrid - Polygon geom - double edges_only :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 4.5); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 4.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb10.testcase0000664000175000017500000000035512544707704023310 00000000000000BdPolyFromWKB - point, no SRID :memory: #use in-memory database SELECT BdPolyFromWKB(AsBinary(GeomFromText("Point(1 2)"))); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(AsBinary(GeomFromText("Point(1 2)"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid5.testcase0000664000175000017500000000055112544707704022517 00000000000000SquareGrid - Collection (Point - Polygon) geom :memory: #use in-memory database SELECT SquareGrid(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('GEOMETRYCOLLECTION(POINT(0 0), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint6.testcase0000664000175000017500000000032412544707704023076 00000000000000Closest Point - text second blob :memory: #use in-memory database SELECT ClosestPoint(MakePoint(1, 2), "hello"); 1 # rows (not including the header row) 1 # columns ClosestPoint(MakePoint(1, 2), "hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance1.testcase0000664000175000017500000000032312544707704022134 00000000000000Distance - two points :memory: #use in-memory database SELECT ST_Distance(MakePoint(1, 2), MakePoint(4, 6)) 1 # rows (not including the header row) 1 # columns ST_Distance(MakePoint(1, 2), MakePoint(4, 6)) 5.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_area6.testcase0000664000175000017500000000025112544707704021765 00000000000000ST_Area - bad blob (error) :memory: #use in-memory database SELECT ST_Area(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_Area(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistancewithin15.testcase0000664000175000017500000000042112544707704024007 00000000000000PtDistWithin - WGS-84 both args, geodesic :memory: #use in-memory database SELECT PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4,4326), 2000000, 1) 1 # rows (not including the header row) 1 # columns PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4,4326), 2000000, 1) 1libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_perimeter10.testcase0000664000175000017500000000050012544707704023121 00000000000000ST_Perimeter - MultiLinestring :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("MULTILINESTRING((0 0, 0 4, 4 4, 4 0, 0 0), (10 10, 11 10, 11 11))")); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("MULTILINESTRING((0 0, 0 4, 4 4, 4 0, 0 0), (10 10, 11 10, 11 11))")) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/shortestline3.testcase0000664000175000017500000000037012544707704023071 00000000000000ShortestLine - zeroblob first arg :memory: #use in-memory database SELECT ShortestLine(zeroblob(100), GeomFromText("POINT(10 2)")) 1 # rows (not including the header row) 1 # columns ShortestLine(zeroblob(100), GeomFromText("POINT(10 2)")) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb7.testcase0000664000175000017500000000030412544707704023230 00000000000000BdPolyFromWKB - zeroblob(58), no SRID :memory: #use in-memory database SELECT BdPolyFromWKB(zeroblob(58)); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(zeroblob(58)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/snap2.testcase0000664000175000017500000000052412544707704021307 00000000000000Snap, LINESTRING, point :memory: #use in-memory database SELECT AsText(Snap(GeomFromText("POINT(0.1 0.2)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 0.4)) 1 # rows (not including the header row) 1 # columns AsText(Snap(GeomFromText("POINT(0.1 0.2)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 0.4)) POINT(0 0)libspatialite-4.3.0a/test/sql_stmt_geos_tests/relate5.testcase0000664000175000017500000000043612544707704021627 00000000000000Relate - non blob second arg :memory: #use in-memory database SELECT Relate(geom1, "foo", "T*T***T**") FROM (SELECT GeomFromText("POINT(1 2)") as geom1, GeomFromText("POINT(1 2)") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Relate(geom1, "foo", "T*T***T**") -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/union15.testcase0000664000175000017500000000054712544707704021567 00000000000000union - MULTILINESTRING and POINT :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("MULTILINESTRING((0 0, 2 0, 2 2, 0 2))"),GeomFromText("POINT(0 0)"))) 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("MULTILINESTRING((0 0, 2 0, 2 2, 0 2))"),GeomFromText("POINT(0 0)"))) MULTILINESTRING((0 0, 2 0, 2 2, 0 2)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/unaryunion1.testcase0000664000175000017500000000033112544707704022550 00000000000000unaryunion - point :memory: #use in-memory database SELECT AsText(UnaryUnion(GeomFromText("POINT(1 2)"))); 1 # rows (not including the header row) 1 # columns AsText(UnaryUnion(GeomFromText("POINT(1 2)"))) POINT(1 2) libspatialite-4.3.0a/test/sql_stmt_geos_tests/locatepoint6.testcase0000664000175000017500000000053012544707704022670 00000000000000locate point - POLYGON second arg :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), GeomFromText("POLYGON((10 0, 0 10, 0 0, 10 0))")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 2)"), GeomFromText("POLYGON((10 0, 0 10, 0 0, 10 0))")) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_perimeter4.testcase0000664000175000017500000000040012544707704023043 00000000000000ST_Perimeter - Linestring not closed :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0)")); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0)")) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes11.testcase0000664000175000017500000000041012544707704022563 00000000000000LinesCutAtNodes - non-blob second arg :memory: #use in-memory database SELECT LinesCutAtNodes(GeomFromText("MULTIPOINT(0 10, 10 10)"), "get") 1 # rows (not including the header row) 1 # columns LinesCutAtNodes(GeomFromText("MULTIPOINT(0 10, 10 10)"), "get") (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvaliddetail2.testcase0000664000175000017500000000041512544707704023163 00000000000000isvaliddetail2 :memory: #use in-memory database SELECT IsValidDetail(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")); 1 # rows (not including the header row) 1 # columns IsValidDetail(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring2.testcase0000664000175000017500000000043012544707704023232 00000000000000linesubstring - basic :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), 0.2, 0.6)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), 0.2, 0.6)) LINESTRING(2 0, 6 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid12.testcase0000664000175000017500000000051412544707704022560 00000000000000TriangularGrid - Polygon geom - BLOB edges_only :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/simplify14.testcase0000664000175000017500000000064412544707704022270 00000000000000Simplify - linestringZM :memory: #use in-memory database SELECT AsText(Simplify(geom, 0.1)), AsText(SimplifyPreserveTopology(geom, 0.1)) FROM (SELECT GeomFromText("LINESTRINGZM(1 2 1 4, 4.0001 4.9999 5 6, 4 5 5 6)") as geom) dummy 1 # rows (not including the header row) 2 # columns AsText(Simplify(geom, 0.1)) AsText(SimplifyPreserveTopology(geom, 0.1)) LINESTRING ZM(1 2 1 0, 4 5 5 0) LINESTRING ZM(1 2 1 0, 4 5 5 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/singlesidedbuffer15.testcase0000664000175000017500000000056112544707704024117 00000000000000singlesidedbuffer - LINESTRINGZ -X, float radius, right side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRINGZ(0 20 1, 0 0 2)"), 3.5, 0)) 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRINGZ(0 20 1, 0 0 2)"), 3.5, 0)) POLYGON Z((0 20 1, 0 0 2, -3.5 0 nan, -3.5 20 nan, 0 20 1)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance_geogr1.testcase0000664000175000017500000000043712544707704023325 00000000000000Distance Long/Lat metric (great circle) - two 2D points :memory: #use in-memory database SELECT ST_Distance(MakePoint(11.1, 42.1), MakePoint(11.2, 42.2), 0); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePoint(11.1, 42.1), MakePoint(11.2, 42.2), 0) 13842.154368:6 libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistancewithin12.testcase0000664000175000017500000000035312544707704024010 00000000000000PtDistWithin - WGS-84 first arg :memory: #use in-memory database SELECT PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4), 1) 1 # rows (not including the header row) 1 # columns PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4), 1) 0libspatialite-4.3.0a/test/sql_stmt_geos_tests/convexhull1.testcase0000664000175000017500000000051512544707704022534 00000000000000convex hull - points :memory: #use in-memory database SELECT AsText(ConvexHull(GeomFromText("MULTIPOINT(0 0, 1 0, 1 1, 2 1, 2 0, 10 0, 10 10, 0 10)"))) 1 # rows (not including the header row) 1 # columns AsText(ConvexHull(GeomFromText("MULTIPOINT(0 0, 1 0, 1 1, 2 1, 2 0, 10 0, 10 10, 0 10)"))) POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/offsetcurve4.testcase0000664000175000017500000000042012544707704022676 00000000000000OffsetCurve :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0)'), -1)); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0)'), -1)) LINESTRING(3 0, 1 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths3.testcase0000664000175000017500000000042712544707704022657 00000000000000shared paths - zeroblob second arg :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("LINESTRING(5 0, 15 0)"),zeroblob(100))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("LINESTRING(5 0, 15 0)"),zeroblob(100))) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/isclosed9.testcase0000664000175000017500000000055212544707704022163 00000000000000isclosed - multilinestring, second not closed :memory: #use in-memory database SELECT IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35),(1 10, 0 10, 0 0, 10 10))")) 1 # rows (not including the header row) 1 # columns IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35),(1 10, 0 10, 0 0, 10 10))")) 0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/offsetcurve9.testcase0000664000175000017500000000043612544707704022712 00000000000000OffsetCurve - closed linestring :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0, 0 0)'), 1)); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0, 0 0)'), 1)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/issimple2.testcase0000664000175000017500000000044012544707704022170 00000000000000issimple2 :memory: #use in-memory database SELECT IsSimple(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")); 1 # rows (not including the header row) 1 # columns IsSimple(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint9.testcase0000664000175000017500000000047712544707704023112 00000000000000Closest Point - two pointZMs :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("POINTZM(1 2 0 4)"), GeomFromText("POINTZM(4 6 1 5)"))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("POINTZM(1 2 0 4)"), GeomFromText("POINTZM(4 6 1 5)"))) POINT ZM(1 2 0 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint21.testcase0000664000175000017500000000046112544707704023155 00000000000000Closest Point - Point and lineM :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("LINESTRINGM(0 0 0, 0 10 5)"), MakePoint(4, 6))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("LINESTRINGM(0 0 0, 0 10 5)"), MakePoint(4, 6))) POINT M(0 6 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolateequidistantpoint5.testcase0000664000175000017500000000052012544707704026220 00000000000000interpolate equidistant points - basic line, negative distance :memory: #use in-memory database SELECT AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), -1)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), -1)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isring9.testcase0000664000175000017500000000035312544707704021650 00000000000000isring9 - toxic ring :memory: #use in-memory database SELECT IsRing(GeomFromText("LINESTRING(1 1, 1 1, 1 1, 1 1, 1 1)")) 1 # rows (not including the header row) 1 # columns IsRing(GeomFromText("LINESTRING(1 1, 1 1, 1 1, 1 1, 1 1)")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid4.testcase0000664000175000017500000000043412544707704022003 00000000000000isvalid4 :memory: #use in-memory database SELECT IsValid(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) 0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid4.testcase0000664000175000017500000000037312544707704022520 00000000000000SquareGrid - Linestring geom :memory: #use in-memory database SELECT SquareGrid(GeomFromText('LINESTRING(1 1, 2 2)', 4326), 1.0); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('LINESTRING(1 1, 2 2)', 4326), 1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/boundary9.testcase0000664000175000017500000000060612544707704022201 00000000000000boundary - toxic polygon :memory: #use in-memory database SELECT AsText(Boundary(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) 1 # rows (not including the header row) 1 # columns AsText(Boundary(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5, 136 -35) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid3.testcase0000664000175000017500000000040212544707704021775 00000000000000isvalid3 :memory: #use in-memory database SELECT IsValid(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/buffer12.testcase0000664000175000017500000000174412544707704021705 00000000000000buffer - linestring - 10 quadrantsegments :memory: #use in-memory database SELECT AsText(Buffer(GeomFromText("LINESTRING(1 2, 4 6)"), 1, 10)) 1 # rows (not including the header row) 1 # columns AsText(Buffer(GeomFromText("LINESTRING(1 2, 4 6)"), 1, 10)) POLYGON((3.2 6.6, 3.30371 6.717761, 3.424565 6.817848, 3.559589 6.897796, 3.705458 6.955638, 3.858579 6.989949, 4.015182 6.999885, 4.171412 6.9852, 4.32342 6.946255, 4.467465 6.884011, 4.6 6.8, 4.717761 6.69629, 4.817848 6.575435, 4.897796 6.440411, 4.955638 6.294542, 4.989949 6.141421, 4.999885 5.984818, 4.9852 5.828588, 4.946255 5.67658, 4.884011 5.532535, 4.8 5.4, 1.8 1.4, 1.69629 1.282239, 1.575435 1.182152, 1.440411 1.102204, 1.294542 1.044362, 1.141421 1.010051, 0.984818 1.000115, 0.828588 1.0148, 0.67658 1.053745, 0.532535 1.115989, 0.4 1.2, 0.282239 1.30371, 0.182152 1.424565, 0.102204 1.559589, 0.044362 1.705458, 0.010051 1.858579, 0.000115 2.015182, 0.0148 2.171412, 0.053745 2.32342, 0.115989 2.467465, 0.2 2.6, 3.2 6.6))| libspatialite-4.3.0a/test/sql_stmt_geos_tests/linemerge3.testcase0000664000175000017500000000037212544707704022317 00000000000000linemerge - single line :memory: #use in-memory database SELECT AsText(LineMerge(GeomFromText("LINESTRING(0 0, 2 3)"))) 1 # rows (not including the header row) 1 # columns AsText(LineMerge(GeomFromText("LINESTRING(0 0, 2 3)"))) LINESTRING(0 0, 2 3) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isclosed10.testcase0000664000175000017500000000055712544707704022240 00000000000000isclosed - multilinestring, first not closed :memory: #use in-memory database SELECT IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35.4),(10 10, 0 10, 0 0, 10 10))")) 1 # rows (not including the header row) 1 # columns IsClosed(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35.4),(10 10, 0 10, 0 0, 10 10))")) 0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes13.testcase0000664000175000017500000000042712544707704022575 00000000000000LinesCutAtNodes - zeroblob first arg :memory: #use in-memory database SELECT LinesCutAtNodes(zeroblob(100), GeomFromText("MULTIPOINT(0 10, 10 10)")) 1 # rows (not including the header row) 1 # columns LinesCutAtNodes(zeroblob(100), GeomFromText("MULTIPOINT(0 10, 10 10)")) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint16.testcase0000664000175000017500000000066412544707704023166 00000000000000Closest Point - toxic geom + line :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), GeomFromText("LINESTRING(130 -35, 0 0)"))) 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), GeomFromText("LINESTRING(130 -35, 0 0)"))) POINT(135.2 -34.5) libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid16.testcase0000664000175000017500000000063412544707704022067 00000000000000HexagonalGrid - Polygon geom - Polygon Origin :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb10.testcase0000664000175000017500000000036012544707704023461 00000000000000BdMPolyFromWKB - point, no SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(AsBinary(GeomFromText("Point(1 2)"))); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(AsBinary(GeomFromText("Point(1 2)"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/createtopo12.testcase0000664000175000017500000000035312544707704022574 00000000000000CreateTopology - 3 arguments, spaces in prefix NEW:memory: #use in-memory database SELECT CreateTopologyTables("hello world", 4326, 3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("hello world", 4326, 3) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/simplify7.testcase0000664000175000017500000000026412544707704022210 00000000000000Simplify - zeroblob arg :memory: #use in-memory database SELECT Simplify(zeroblob(1000), 0) 1 # rows (not including the header row) 1 # columns Simplify(zeroblob(1000), 0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid7.testcase0000664000175000017500000000045612544707704022511 00000000000000TriangularGrid - Polygon geom - NULL size :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), NULL); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/buildarea6.testcase0000664000175000017500000000047112544707704022303 00000000000000buildarea - not a polygon :memory: #use in-memory database SELECT AsText(BuildArea(GeomFromText('MULTILINESTRING((0 0, 10 0), (10 0, 10 10), (10 10, 0 10))'))) 1 # rows (not including the header row) 1 # columns AsText(BuildArea(GeomFromText('MULTILINESTRING((0 0, 10 0), (10 0, 10 10), (10 10, 0 10))'))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes4.testcase0000664000175000017500000000066712544707704022523 00000000000000LinesCutAtNodes - line, multinodes :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINT(0 10, 0 4, 3 10, 10 10)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINT(0 10, 0 4, 3 10, 10 10)"))) MULTILINESTRING((0 0, 0 10), (0 10, 10 10), (10 10, 10 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/covers_covered6.testcase0000664000175000017500000000041712544707704023363 00000000000000Covers - zero blob first arg :memory: #use in-memory database SELECT Covers(geom1,geom2) from (SELECT zeroblob(48) as geom1,GeomFromText("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Covers(geom1,geom2) -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths15.testcase0000664000175000017500000000075312544707704022744 00000000000000shared paths - two polygon, internal ring :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 3 1, 3 3, 1 3, 1 1))"),GeomFromText("POLYGON((5 0, 15 0, 15 10, 5 10, 5 0))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 3 1, 3 3, 1 3, 1 1))"),GeomFromText("POLYGON((5 0, 15 0, 15 10, 5 10, 5 0))"))) MULTILINESTRING((5 0, 10 0), (10 10, 5 10))libspatialite-4.3.0a/test/sql_stmt_geos_tests/buffer3.testcase0000664000175000017500000000021612544707704021616 00000000000000buffer3 :memory: #use in-memory database SELECT Buffer("foo", 1); 1 # rows (not including the header row) 1 # columns Buffer("foo", 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb8.testcase0000664000175000017500000000031212544707704023405 00000000000000BdMPolyFromWKB - zeroblob(58), SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(zeroblob(58), 4); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(zeroblob(58), 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/createtopo6.testcase0000664000175000017500000000033512544707704022517 00000000000000CreateTopology - 3 arguments, 2D int NEW:memory: #use in-memory database SELECT CreateTopologyTables("my_prefix", 4326, 2); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("my_prefix", 4326, 2) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid12.testcase0000664000175000017500000000050012544707704022567 00000000000000SquareGrid - Polygon geom - BLOB edges_only :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/convexhull8.testcase0000664000175000017500000000061112544707704022540 00000000000000convex hull - polygonZ :memory: #use in-memory database SELECT AsText(ConvexHull(GeomFromText("POLYGONZ((0 0 1, 1 0 3, 1 1 5, 2 1 5, 2 0 3, 10 0 1, 10 10 2, 0 10 2, 0 0 1))"))) 1 # rows (not including the header row) 1 # columns AsText(ConvexHull(GeomFromText("POLYGONZ((0 0 1, 1 0 3, 1 1 5, 2 1 5, 2 0 3, 10 0 1, 10 10 2, 0 10 2, 0 0 1))"))) POLYGON Z((0 0 1, 0 10 2, 10 10 2, 10 0 1, 0 0 1))libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes12.testcase0000664000175000017500000000043012544707704022566 00000000000000LinesCutAtNodes - zeroblob second arg :memory: #use in-memory database SELECT LinesCutAtNodes(GeomFromText("MULTIPOINT(0 10, 10 10)"), zeroblob(100)) 1 # rows (not including the header row) 1 # columns LinesCutAtNodes(GeomFromText("MULTIPOINT(0 10, 10 10)"), zeroblob(100)) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance6.testcase0000664000175000017500000000031112544707704022136 00000000000000Distance - bad blob second arg :memory: #use in-memory database SELECT Distance(MakePoint(1, 2), "hello") 1 # rows (not including the header row) 1 # columns Distance(MakePoint(1, 2), "hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_perimeter14.testcase0000664000175000017500000000051612544707704023134 00000000000000ST_Perimeter - Linestring (Long/Lat metric - GreatCircle) :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8)"), 0); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8)"), 0) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/locatepoint3.testcase0000664000175000017500000000042512544707704022670 00000000000000locate point - POINT first arg :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("POINT(0 0)"), GeomFromText("POINT(5 3)")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("POINT(0 0)"), GeomFromText("POINT(5 3)")) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb9.testcase0000664000175000017500000000030012544707704023226 00000000000000BdPolyFromWKB - point, SRID :memory: #use in-memory database SELECT BdPolyFromWKB("Point(1 2)", 4); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB("Point(1 2)", 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid20.testcase0000664000175000017500000000144112544707704022057 00000000000000HexagonalGrid - valid - with Origin :memory: #use in-memory database SELECT AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)'))); 1 # rows (not including the header row) 1 # columns AsText(HexagonalGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)'))) MULTIPOLYGON(((0.1 0.1, 0.6 -0.766025, 1.6 -0.766025, 2.1 0.1, 1.6 0.966025, 0.6 0.966025, 0.1 0.1)), ((-1.4 0.966025, -0.9 0.1, 0.1 0.1, 0.6 0.966025, 0.1 1.832051, -0.9 1.832051, -1.4 0.966025)), ((1.6 0.966025, 2.1 0.1, 3.1 0.1, 3.6 0.966025, 3.1 1.832051, 2.1 1.832051, 1.6 0.966025)), ((0.1 1.832051, 0.6 0.966025, 1.6 0.966025, 2.1 1.832051, 1.6 2.698076, 0.6 2.698076, 0.1 1.832051))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring19.testcase0000664000175000017500000000046712544707704023334 00000000000000linesubstring - using second segment :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0, 10 10)"), 0.6, 0.8)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0, 10 10)"), 0.6, 0.8)) LINESTRING(10 2, 10 6) libspatialite-4.3.0a/test/sql_stmt_geos_tests/ringsnodes4.testcase0000664000175000017500000000027312544707704022524 00000000000000RingsCutAtNodes - bad blob :memory: #use in-memory database SELECT RingsCutAtNodes(zeroblob(100)) 1 # rows (not including the header row) 1 # columns RingsCutAtNodes(zeroblob(100)) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/union12.testcase0000664000175000017500000000052612544707704021561 00000000000000union - POLYGON and POINT :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))"),GeomFromText("POINT(0 0)"))) 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))"),GeomFromText("POINT(0 0)"))) POLYGON((0 0, 0 2, 2 2, 2 0, 0 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolatepoint4.testcase0000664000175000017500000000044712544707704023754 00000000000000interpolate point - basic line, out of range :memory: #use in-memory database SELECT AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), -1)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), -1)) POINT(0 0)libspatialite-4.3.0a/test/sql_stmt_geos_tests/polygonize2.testcase0000664000175000017500000000040512544707704022543 00000000000000POLYGONIZE - not ring :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("LINESTRING(0 0, 1 1, 0 2, -1 1)"))); 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("LINESTRING(0 0, 1 1, 0 2, -1 1)"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/relations6.testcase0000664000175000017500000000112012544707704022343 00000000000000Relationship tests - bad first arg :memory: #use in-memory database SELECT Equals(geom1, geom2), Intersects(geom1, geom2), Disjoint(geom1, geom2), Overlaps(geom1, geom2), Crosses(geom1, geom2), Touches(geom1, geom2), Within(geom1, geom2), Contains(geom1, geom2) FROM (SELECT "hello" as geom1, GeomFromText("POINT(3 4)") as geom2) dummy; 1 # rows (not including the header row) 8 # columns Equals(geom1, geom2) Intersects(geom1, geom2) Disjoint(geom1, geom2) Overlaps(geom1, geom2) Crosses(geom1, geom2) Touches(geom1, geom2) Within(geom1, geom2) Contains(geom1, geom2) -1 -1 -1 -1 -1 -1 -1 -1libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring25.testcase0000664000175000017500000000042712544707704023325 00000000000000linesubstring - zero length 2d :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(1 1, 1 1)"), 0, 1)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(1 1, 1 1)"), 0, 1)) LINESTRING(1 1, 1 1) libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid7.testcase0000664000175000017500000000045312544707704022006 00000000000000HexagonalGrid - Polygon geom - NULL size :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), NULL); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/singlesidedbuffer17.testcase0000664000175000017500000000060712544707704024122 00000000000000singlesidedbuffer - LINESTRINGZM -X, float radius, right side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRINGZM(0 20 1 4, 0 0 2 6)"), 3.5, 0)) 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRINGZM(0 20 1 4, 0 0 2 6)"), 3.5, 0)) POLYGON ZM((0 20 1 0, 0 0 2 0, -3.5 0 nan 0, -3.5 20 nan 0, 0 20 1 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths13.testcase0000664000175000017500000000073712544707704022744 00000000000000shared paths - two polygonZ :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGONZ((0 0 4, 10 0 4, 10 10 4, 0 10 4, 0 0 4))"),GeomFromText("POLYGONZ((5 0 4, 15 0 4, 15 10 4, 5 10 4, 5 0 4))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGONZ((0 0 4, 10 0 4, 10 10 4, 0 10 4, 0 0 4))"),GeomFromText("POLYGONZ((5 0 4, 15 0 4, 15 10 4, 5 10 4, 5 0 4))"))) MULTILINESTRING Z((5 0 4, 10 0 4), (10 10 4, 5 10 4))libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid19.testcase0000664000175000017500000000054212544707704022071 00000000000000isvalid Geometry Collection of two points and a polygon :memory: #use in-memory database SELECT IsValid(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0),POINT(3 4),POLYGON((1 1, 4 1, 4 4, 1 4, 1 1)))")) 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0),POINT(3 4),POLYGON((1 1, 4 1, 4 4, 1 4, 1 1)))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/linemerge10.testcase0000664000175000017500000000060712544707704022376 00000000000000linemerge - weird linestring :memory: #use in-memory database SELECT AsText(LineMerge(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5)"))) 1 # rows (not including the header row) 1 # columns AsText(LineMerge(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5)"))) LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_length11.testcase0000664000175000017500000000120112544707704022406 00000000000000ST_Length - GeometryCollection :memory: #use in-memory database SELECT ST_Length(GeomFromText("GEOMETRYCOLLECTION(POINT(100 100), POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1)), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)), LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0), LINESTRING(10 10, 11 10, 11 11), POINT(200 200))")); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("GEOMETRYCOLLECTION(POINT(100 100), POLYGON((0 0, 0 4, 4 4, 4 0, 0 0),(1 1, 1 3, 3 3, 3 1, 1 1)), POLYGON((10 10, 11 10, 11 11, 10 11, 10 10)), LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0), LINESTRING(10 10, 11 10, 11 11), POINT(200 200))")) 18.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/isclosed2.testcase0000664000175000017500000000044012544707704022150 00000000000000isclosed2 :memory: #use in-memory database SELECT IsClosed(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")); 1 # rows (not including the header row) 1 # columns IsClosed(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) 0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring12.testcase0000664000175000017500000000046212544707704023320 00000000000000linesubstring - geometry collection - point :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("GeometryCollection(POINT(1 2))"), 0.2, 0.6)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("GeometryCollection(POINT(1 2))"), 0.2, 0.6)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/polygonize8.testcase0000664000175000017500000000104112544707704022546 00000000000000POLYGONIZE - polygonzm with inner ring :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("MULTILINESTRINGZM((0 0 5 4, 10 0 6 2, 10 12 7 3, 0 12 6 1, 0 0 5 4),(1 1 0 0, 3 1 0 2, 3 3 4 1, 1 3 1 2, 1 1 0 0))"))) 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("MULTILINESTRINGZM((0 0 5 4, 10 0 6 2, 10 12 7 3, 0 12 6 1, 0 0 5 4),(1 1 0 0, 3 1 0 2, 3 3 4 1, 1 3 1 2, 1 1 0 0))"))) POLYGON ZM((0 0 5 0, 0 12 6 0, 10 12 7 0, 10 0 6 0, 0 0 5 0), (1 1 0 0, 3 1 0 0, 3 3 4 0, 1 3 1 0, 1 1 0 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/union23.testcase0000664000175000017500000000173012544707704021561 00000000000000union - GEOMETRYCOLLECTION M (Polygon with hole / Linestring) :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(30 30 1, 31 31 2), POLYGONM((10 10 1, 15 10 2, 15 15 3, 10 15 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1)))"), GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(31 31 2, 35 0 1), POLYGONM((15 10 2, 16 10 1, 16 15 3, 10 15 4, 15 10 2)))"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(30 30 1, 31 31 2), POLYGONM((10 10 1, 15 10 2, 15 15 3, 10 15 4, 10 10 1), (11 11 1, 12 11 2, 12 12 3, 11 12 4, 11 11 1)))"), GeomFromText("GEOMETRYCOLLECTIONM(LINESTRINGM(31 31 2, 35 0 1), POLYGONM((15 10 2, 16 10 1, 16 15 3, 10 15 4, 15 10 2)))"))) GEOMETRYCOLLECTION M(LINESTRING M(30 30 0, 31 31 0), LINESTRING M(31 31 0, 35 0 0), POLYGON M((15 10 0, 10 10 0, 10 15 0, 15 15 0, 16 15 0, 16 10 0, 15 10 0), (11 11 0, 12 11 0, 12 12 0, 11 12 0, 11 11 0))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint8.testcase0000664000175000017500000000045712544707704023107 00000000000000Closest Point - two pointMs :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("POINTM(1 2 4)"), GeomFromText("POINTM(4 6 5)"))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("POINTM(1 2 4)"), GeomFromText("POINTM(4 6 5)"))) POINT M(1 2 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromtext15.testcase0000664000175000017500000000056612544707704023522 00000000000000BdPolyFromText :memory: #use in-memory database SELECT AsText(BdPolyFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')); 1 # rows (not including the header row) 1 # columns AsText(BdPolyFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')) POLYGON((0 0, 0 10, 10 10, 10 0, 0 0), (2 2, 8 2, 8 8, 2 8, 2 2)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/union29.testcase0000664000175000017500000000022012544707704021560 00000000000000union - non-blob :memory: #use in-memory database SELECT GUnion(4.78) 1 # rows (not including the header row) 1 # columns GUnion(4.78) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/makecircle12.testcase0000664000175000017500000000032212544707704022522 00000000000000makecircle12 - text srid :memory: #use in-memory database SELECT ST_Length(MakeCircle(0, 0, 100, 'alpha')); 1 # rows (not including the header row) 1 # columns ST_Length(MakeCircle(0, 0, 100, 'alpha')) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/unaryunion5.testcase0000664000175000017500000000051612544707704022561 00000000000000unaryunion - points ZM :memory: #use in-memory database SELECT AsText(UnaryUnion(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 3 1), POINTZM(2 3 4 1))"))) 1 # rows (not including the header row) 1 # columns AsText(UnaryUnion(GeomFromText("GEOMETRYCOLLECTIONZM(POINTZM(1 2 3 1), POINTZM(2 3 4 1))"))); MULTIPOINT ZM(1 2 3 0, 2 3 4 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linemerge7.testcase0000664000175000017500000000057112544707704022324 00000000000000linemerge - GEOMETRY COLLECTION M :memory: #use in-memory database SELECT AsText(LineMerge(GeomFromText("GeometryCollectionM(LINESTRINGM(0 1 0, 1 2 0),LINESTRINGM(1 2 0, 3 4 0))"))) 1 # rows (not including the header row) 1 # columns AsText(LineMerge(GeomFromText("GeometryCollectionM(LINESTRINGM(0 1 0, 1 2 0),LINESTRINGM(1 2 0, 3 4 0))"))) LINESTRING M(0 1 0, 1 2 0, 3 4 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid12.testcase0000664000175000017500000000051112544707704022055 00000000000000HexagonalGrid - Polygon geom - BLOB edges_only :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/createtopo18.testcase0000664000175000017500000000031712544707704022602 00000000000000CreateTopology - 2 arguments, float dims (error) :memory: #use in-memory database SELECT CreateTopologyTables(4326, 2.0); 1 # rows (not including the header row) 1 # columns CreateTopologyTables(4326, 2.0) 0libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_length2.testcase0000664000175000017500000000037012544707704022334 00000000000000ST_Length - Simple Polygon :memory: #use in-memory database SELECT ST_Length(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0))")); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("POLYGON((0 0, 0 4, 4 4, 4 0, 0 0))")) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes3.testcase0000664000175000017500000000064012544707704022511 00000000000000LinesCutAtNodes - line, multinodes :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINT(0 10, 0 4, 3 10)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("MULTIPOINT(0 10, 0 4, 3 10)"))) MULTILINESTRING((0 0, 0 10), (0 10, 10 10, 10 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistancewithin16.testcase0000664000175000017500000000041712544707704024015 00000000000000PtDistWithin - WGS-84 both args, geodesic :memory: #use in-memory database SELECT PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4,4326), 100000, 1) 1 # rows (not including the header row) 1 # columns PtDistWithin(MakePoint(4, 2, 4326), MakePoint(4,4,4326), 100000, 1) 0libspatialite-4.3.0a/test/sql_stmt_geos_tests/isring3.testcase0000664000175000017500000000021012544707704021632 00000000000000isring3 :memory: #use in-memory database SELECT IsRing("hello"); 1 # rows (not including the header row) 1 # columns IsRing("hello") -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/singlesidedbuffer6.testcase0000664000175000017500000000040312544707704024032 00000000000000singlesidedbuffer - bad blob, float radius, right side (error) :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(zeroblob(20), 3.5, 0)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(zeroblob(20), 3.5, 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/centroid4.testcase0000664000175000017500000000051612544707704022160 00000000000000Centroid - toxic :memory: #use in-memory database SELECT astext(centroid(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))); 1 # rows (not including the header row) 1 # columns astext(centroid(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) POINT(135.733333 -34.9) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromtext4.testcase0000664000175000017500000000027312544707704023610 00000000000000BdMPolyFromText - non-text, SRID :memory: #use in-memory database SELECT BdMPolyFromText(26, 4326); 1 # rows (not including the header row) 1 # columns BdMPolyFromText(26, 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromtext6.testcase0000664000175000017500000000025712544707704023437 00000000000000BdPolyFromText - null, no SRID :memory: #use in-memory database SELECT BdPolyFromText(null); 1 # rows (not including the header row) 1 # columns BdPolyFromText(null) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_length3.testcase0000664000175000017500000000036712544707704022343 00000000000000ST_Length - Linestring :memory: #use in-memory database SELECT ST_Length(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0)")); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0)")) 16.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/convexhull7.testcase0000664000175000017500000000057012544707704022543 00000000000000convex hull - toxic polygon :memory: #use in-memory database SELECT AsText(ConvexHull(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) 1 # rows (not including the header row) 1 # columns AsText(ConvexHull(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) POLYGON((136 -35.2, 135.2 -34.5, 136 -35, 136 -35.2)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb11.testcase0000664000175000017500000000053112544707704023305 00000000000000BdPolyFromWKB - toxic, no SRID :memory: #use in-memory database SELECT BdPolyFromWKB(AsBinary(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(AsBinary(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolatepoint5.testcase0000664000175000017500000000045212544707704023751 00000000000000interpolate point - basic line, out of range :memory: #use in-memory database SELECT AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), 1.6)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), 1.6)) POINT(10 6)libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths24.testcase0000664000175000017500000000063012544707704022736 00000000000000shared paths - multiline :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("LINESTRING(5 0, 15 0)"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(11 0, 5 0))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("LINESTRING(5 0, 15 0)"),GeomFromText("MULTILINESTRING((0 0, 4 0, 6 0, 10 0),(11 0, 5 0))"))) MULTILINESTRING((5 0, 6 0, 10 0, 11 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid11.testcase0000664000175000017500000000064512544707704022065 00000000000000isvalid (POLYGON Z with hole) :memory: #use in-memory database SELECT IsValid(GeomFromText("POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100))")); 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("POLYGONZ((10 10 100, 15 10 101, 15 15 102, 10 15 103, 10 10 100), (11 11 100, 12 11 101, 12 12 102, 11 12 103, 11 11 100))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/locatepoint12.testcase0000664000175000017500000000042212544707704022745 00000000000000locate point - bad blob second arg :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 1)"), zeroblob(47)) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("LINESTRING(0 1, 1 1)"), zeroblob(47)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb6.testcase0000664000175000017500000000025712544707704023413 00000000000000BdMPolyFromWKB - null, no SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(null); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(null) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance5.testcase0000664000175000017500000000027412544707704022145 00000000000000Distance - non-blob first arg :memory: #use in-memory database SELECT Distance(3, MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns Distance(3, MakePoint(1, 2)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromtext17.testcase0000664000175000017500000000030512544707704023670 00000000000000BdMPolyFromText - bad wkt, no SRID :memory: #use in-memory database SELECT BdMPolyFromText("Point(1,2)"); 1 # rows (not including the header row) 1 # columns BdMPolyFromText("Point(1,2)") (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_length18.testcase0000664000175000017500000000121512544707704022422 00000000000000ST_Length - GeometryCollection (Long/Lat metric - text use_ellipsoid) :memory: #use in-memory database SELECT ST_Length(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/relations3.testcase0000664000175000017500000000112712544707704022347 00000000000000Relationship tests - bad first blob :memory: #use in-memory database SELECT Equals(geom1, geom2), Intersects(geom1, geom2), Disjoint(geom1, geom2), Overlaps(geom1, geom2), Crosses(geom1, geom2), Touches(geom1, geom2), Within(geom1, geom2), Contains(geom1, geom2) FROM (SELECT zeroblob(10) as geom1, GeomFromText("POINT(3 4)") as geom2) dummy; 1 # rows (not including the header row) 8 # columns Equals(geom1, geom2) Intersects(geom1, geom2) Disjoint(geom1, geom2) Overlaps(geom1, geom2) Crosses(geom1, geom2) Touches(geom1, geom2) Within(geom1, geom2) Contains(geom1, geom2) -1 -1 -1 -1 -1 -1 -1 -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_perimeter7.testcase0000664000175000017500000000033212544707704023052 00000000000000ST_Perimeter - Empty linestring :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("LINESTRING()")); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("LINESTRING()")) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid20.testcase0000664000175000017500000000100712544707704022571 00000000000000SquareGrid - valid - no Origin :memory: #use in-memory database SELECT AsText(SquareGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)); 1 # rows (not including the header row) 1 # columns AsText(SquareGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0)) MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((1 0, 2 0, 2 1, 1 1, 1 0)), ((2 0, 3 0, 3 1, 2 1, 2 0)), ((0 1, 1 1, 1 2, 0 2, 0 1)), ((1 1, 2 1, 2 2, 1 2, 1 1)), ((2 1, 3 1, 3 2, 2 2, 2 1))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid16.testcase0000664000175000017500000000063712544707704022572 00000000000000TriangularGrid - Polygon geom - Polygon Origin :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isring2.testcase0000664000175000017500000000043312544707704021640 00000000000000isring2 :memory: #use in-memory database SELECT IsRing(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")); 1 # rows (not including the header row) 1 # columns IsRing(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes1.testcase0000664000175000017500000000055512544707704022514 00000000000000LinesCutAtNodes - line, non-node :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("POINT(0 5)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0)"),GeomFromText("POINT(0 5)"))) LINESTRING(0 0, 0 10, 10 10, 10 0)libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromtext10.testcase0000664000175000017500000000030312544707704023657 00000000000000BdMPolyFromText - point, no SRID :memory: #use in-memory database SELECT BdMPolyFromText("Point(1 2)"); 1 # rows (not including the header row) 1 # columns BdMPolyFromText("Point(1 2)") (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid22.testcase0000664000175000017500000000054612544707704022602 00000000000000SquareGrid - valid - no Origin, only_edges :memory: #use in-memory database SELECT ST_Length(SquareGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1)); 1 # rows (not including the header row) 1 # columns ST_Length(SquareGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1)) 17.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolateequidistantpoint2.testcase0000664000175000017500000000055412544707704026224 00000000000000interpolate equidistant points - basic line :memory: #use in-memory database SELECT AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), 5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), 5)) MULTIPOINT M(4.287465 2.572479 5, 8.574929 5.144958 10) libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid8.testcase0000664000175000017500000000046512544707704022512 00000000000000TriangularGrid - Polygon geom - alpha size :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 'alpha'); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid20.testcase0000664000175000017500000000061112544707704022056 00000000000000isvalid Geometry Collection of two lines and a polygon :memory: #use in-memory database SELECT IsValid(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(0 0, 4 1),LINESTRING(3 4, 4 6),POLYGON((1 1, 4 1, 4 4, 1 4, 1 1)))")) 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("GEOMETRYCOLLECTION(LINESTRING(0 0, 4 1),LINESTRING(3 4, 4 6),POLYGON((1 1, 4 1, 4 4, 1 4, 1 1)))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/createtopo17.testcase0000664000175000017500000000031612544707704022600 00000000000000CreateTopology - 2 arguments, text SRID (error) :memory: #use in-memory database SELECT CreateTopologyTables("4326", 2); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("4326", 2) 0libspatialite-4.3.0a/test/sql_stmt_geos_tests/covers_covered5.testcase0000664000175000017500000000042012544707704023354 00000000000000Covers - zero blob second arg :memory: #use in-memory database SELECT Covers(geom2,geom1) from (SELECT zeroblob(48) as geom1,GeomFromText("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Covers(geom2,geom1) -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths23.testcase0000664000175000017500000000063512544707704022742 00000000000000shared paths - two multilines, reverse order :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRING((0 0, 10 0),(16 0, 12 0))"),GeomFromText("LINESTRING(5 0, 15 0)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRING((0 0, 10 0),(16 0, 12 0))"),GeomFromText("LINESTRING(5 0, 15 0)"))) MULTILINESTRING((5 0, 10 0), (15 0, 12 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb17.testcase0000664000175000017500000000026612544707704023320 00000000000000BdPolyFromWKB - zeroblob :memory: #use in-memory database SELECT BdPolyFromWKB(zeroblob(25)); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(zeroblob(25)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistwithin8.testcase0000664000175000017500000000042712544707704023110 00000000000000PtDistWithin invalid arg: TEXT use-sferoid :memory: SELECT PtDistWithin(GeomFromText("POINT(5.1 5.1)", 4326), GeomFromText("POINT(5 5)", 4326), 10.0, 'a'); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5.1 5.1)", 4326), GeomFromText("POINT(5 5)", 4326), 10.0, 'a') (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid6.testcase0000664000175000017500000000061612544707704022506 00000000000000TriangularGrid - Collection (Linestring - Polygon) geom :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 2 2), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 2 2), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths11.testcase0000664000175000017500000000060712544707704022736 00000000000000shared paths - two lineZM :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("LINESTRINGZM(0 0 4 1, 10 0 4 1)"),GeomFromText("LINESTRINGZM(5 0 4 1, 15 0 4 1)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("LINESTRINGZM(0 0 4 1, 10 0 4 1)"),GeomFromText("LINESTRINGZM(5 0 4 1, 15 0 4 1)"))) MULTILINESTRING ZM((5 0 4 0, 10 0 4 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/convexhull3.testcase0000664000175000017500000000052612544707704022540 00000000000000convex hull - polygon :memory: #use in-memory database SELECT AsText(ConvexHull(GeomFromText("POLYGON((0 0, 1 0, 1 1, 2 1, 2 0, 10 0, 10 10, 0 10, 0 0))"))) 1 # rows (not including the header row) 1 # columns AsText(ConvexHull(GeomFromText("POLYGON((0 0, 1 0, 1 1, 2 1, 2 0, 10 0, 10 10, 0 10, 0 0))"))) POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths2.testcase0000664000175000017500000000042612544707704022655 00000000000000shared paths - zeroblob first arg :memory: #use in-memory database SELECT AsText(SharedPaths(zeroblob(100),GeomFromText("LINESTRING(5 0, 15 0)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(zeroblob(100),GeomFromText("LINESTRING(5 0, 15 0)"))) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromtext13.testcase0000664000175000017500000000043212544707704023665 00000000000000BdMPolyFromText - text SRID :memory: #use in-memory database SELECT BdMPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', "not an int"); 1 # rows (not including the header row) 1 # columns BdMPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', "not an int") (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalidreason4.testcase0000664000175000017500000000052212544707704023211 00000000000000isvalidreason4 :memory: #use in-memory database SELECT IsValidReason(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")); 1 # rows (not including the header row) 1 # columns IsValidReason(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))")) Invalid: Unclosed Rings were detected libspatialite-4.3.0a/test/sql_stmt_geos_tests/simplify11.testcase0000664000175000017500000000034412544707704022262 00000000000000SimplifyPreserveTopology - zeroblob arg :memory: #use in-memory database SELECT SimplifyPreserveTopology(zeroblob(1000), 0) 1 # rows (not including the header row) 1 # columns SimplifyPreserveTopology(zeroblob(1000), 0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolateequidistantpoint8.testcase0000664000175000017500000000046712544707704026235 00000000000000interpolate equidistant points - non-number :memory: #use in-memory database SELECT Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), "hello") 1 # rows (not including the header row) 1 # columns Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), "hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint22.testcase0000664000175000017500000000047612544707704023164 00000000000000Closest Point - Point and lineZM :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("LINESTRINGZM(0 0 0 0, 0 10 5 2)"), MakePoint(4, 6))) 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("LINESTRINGZM(0 0 0 0, 0 10 5 2)"), MakePoint(4, 6))) POINT ZM(0 6 3 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance3.testcase0000664000175000017500000000032412544707704022137 00000000000000Distance - bad blob first arg :memory: #use in-memory database SELECT Distance(zeroblob(100), MakePoint(1, 2)) 1 # rows (not including the header row) 1 # columns Distance(zeroblob(100), MakePoint(1, 2)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid13.testcase0000664000175000017500000000047512544707704022067 00000000000000HexagonalGrid - Polygon geom - NULL origin :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, NULL); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromtext2.testcase0000664000175000017500000000046412544707704023433 00000000000000BdPolyFromText - SRID :memory: #use in-memory database SELECT AsEWkt(BdPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', 4326)); 1 # rows (not including the header row) 1 # columns AsEWkt(BdPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', 4326)) SRID=4326;POLYGON((0 0,0 1,1 1,1 0,0 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths14.testcase0000664000175000017500000000073712544707704022745 00000000000000shared paths - two polygonM :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGONM((0 0 4, 10 0 4, 10 10 4, 0 10 4, 0 0 4))"),GeomFromText("POLYGONM((5 0 4, 15 0 4, 15 10 4, 5 10 4, 5 0 4))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGONM((0 0 4, 10 0 4, 10 10 4, 0 10 4, 0 0 4))"),GeomFromText("POLYGONM((5 0 4, 15 0 4, 15 10 4, 5 10 4, 5 0 4))"))) MULTILINESTRING M((5 0 0, 10 0 0), (10 10 0, 5 10 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes17.testcase0000664000175000017500000000074012544707704022577 00000000000000LinesCutAtNodes - closed linestringZ, nodes :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRINGZ(0 0 1, 0 10 1, 10 10 1, 10 0 1, 0 0 1)"),GeomFromText("MULTIPOINTZ(0 10 1, 10 10 1)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRINGZ(0 0 1, 0 10 1, 10 10 1, 10 0 1, 0 0 1)"),GeomFromText("MULTIPOINTZ(0 10 1, 10 10 1)"))) MULTILINESTRING Z((10 10 1, 10 0 1, 0 0 1, 0 10 1), (0 10 1, 10 10 1))libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb6.testcase0000664000175000017500000000025412544707704023233 00000000000000BdPolyFromWKB - null, no SRID :memory: #use in-memory database SELECT BdPolyFromWKB(null); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(null) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/unaryunion7.testcase0000664000175000017500000000025312544707704022561 00000000000000unaryunion - bad blob :memory: #use in-memory database SELECT UnaryUnion(zeroblob(40)) 1 # rows (not including the header row) 1 # columns UnaryUnion(zeroblob(40)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint2.testcase0000664000175000017500000000034512544707704023075 00000000000000Closest Point - coincident points :memory: #use in-memory database SELECT ClosestPoint(MakePoint(1, 2), MakePoint(1, 2)); 1 # rows (not including the header row) 1 # columns ClosestPoint(MakePoint(1, 2), MakePoint(1, 2)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linemerge8.testcase0000664000175000017500000000062712544707704022327 00000000000000linemerge - GEOMETRY COLLECTION ZM :memory: #use in-memory database SELECT AsText(LineMerge(GeomFromText("GeometryCollectionZM(LINESTRINGZM(0 1 1 0, 1 2 1 0),LINESTRINGZM(1 2 1 0, 3 4 1 0))"))) 1 # rows (not including the header row) 1 # columns AsText(LineMerge(GeomFromText("GeometryCollectionZM(LINESTRINGZM(0 1 1 0, 1 2 1 0),LINESTRINGZM(1 2 1 0, 3 4 1 0))"))) LINESTRING ZM(0 1 1 0, 1 2 1 0, 3 4 1 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/difference10.testcase0000664000175000017500000000044412544707704022520 00000000000000difference - XYM points :memory: #use in-memory database SELECT AsText(Difference(GeomFromText("POINTM(1 3 4)"), GeomFromText("POINTM(2 4 9)"))) 1 # rows (not including the header row) 1 # columns AsText(Difference(GeomFromText("POINTM(1 3 4)"), GeomFromText("POINTM(2 4 9)"))) POINT M(1 3 0)libspatialite-4.3.0a/test/sql_stmt_geos_tests/relations2.testcase0000664000175000017500000000113612544707704022346 00000000000000Relationship tests - POINTs different :memory: #use in-memory database SELECT Equals(geom1, geom2), Intersects(geom1, geom2), Disjoint(geom1, geom2), Overlaps(geom1, geom2), Crosses(geom1, geom2), Touches(geom1, geom2), Within(geom1, geom2), Contains(geom1, geom2) FROM (SELECT GeomFromText("POINT(1 2)") as geom1, GeomFromText("POINT(3 4)") as geom2) dummy; 1 # rows (not including the header row) 8 # columns Equals(geom1, geom2) Intersects(geom1, geom2) Disjoint(geom1, geom2) Overlaps(geom1, geom2) Crosses(geom1, geom2) Touches(geom1, geom2) Within(geom1, geom2) Contains(geom1, geom2) 0 0 1 0 0 0 0 0libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistancewithin1.testcase0000664000175000017500000000032612544707704023726 00000000000000PtDistWithin- two points :memory: #use in-memory database SELECT PtDistWithin(Makepoint(1,2), MakePoint(4,4), 2) 1 # rows (not including the header row) 1 # columns PtDistWithin(Makepoint(1,2), MakePoint(4,4), 2) 0libspatialite-4.3.0a/test/sql_stmt_geos_tests/buildarea5.testcase0000664000175000017500000000073612544707704022306 00000000000000buildarea - multipolygon :memory: #use in-memory database SELECT AsText(BuildArea(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10), (10 10, 0 10, 0 0), (15 15, 16 15, 16 16), (16 16, 15 16, 15 15))'))) 1 # rows (not including the header row) 1 # columns AsText(BuildArea(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10), (10 10, 0 10, 0 0), (15 15, 16 15, 16 16), (16 16, 15 16, 15 15))'))) MULTIPOLYGON(((10 10, 10 0, 0 0, 0 10, 10 10)), ((16 16, 16 15, 15 15, 15 16, 16 16))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolatepoint1.testcase0000664000175000017500000000043312544707704023744 00000000000000interpolate point - basic line :memory: #use in-memory database SELECT AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), 0.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), 0.5)) POINT(5 3)libspatialite-4.3.0a/test/sql_stmt_geos_tests/linemerge4.testcase0000664000175000017500000000041412544707704022315 00000000000000linemerge - single line Z :memory: #use in-memory database SELECT AsText(LineMerge(GeomFromText("LINESTRINGZ(0 0 1, 2 3 3)"))) 1 # rows (not including the header row) 1 # columns AsText(LineMerge(GeomFromText("LINESTRINGZ(0 0 1, 2 3 3)"))) LINESTRING Z(0 0 1, 2 3 3) libspatialite-4.3.0a/test/sql_stmt_geos_tests/makeellipse17.testcase0000664000175000017500000000033612544707704022730 00000000000000makeellipse17 - WGS84 srid :memory: #use in-memory database SELECT ST_Length(MakeEllipse(0, 0, 100, 200, 4326)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeEllipse(0, 0, 100, 200, 4326)) 967.6155:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/symdifference3.testcase0000664000175000017500000000036012544707704023170 00000000000000symdifference - zeroblob first arg :memory: #use in-memory database SELECT AsText(SymDifference(zeroblob(50), MakePoint(1,2))) 1 # rows (not including the header row) 1 # columns AsText(SymDifference(zeroblob(50), MakePoint(1,2))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/hausdorffdistance1.testcase0000664000175000017500000000050412544707704024037 00000000000000HausdorffDistance - parallel lines :memory: #use in-memory database SELECT HausdorffDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 1 # rows (not including the header row) 1 # columns HausdorffDistance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 2.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/makecircle11.testcase0000664000175000017500000000031412544707704022522 00000000000000makecircle11 - NULL srid :memory: #use in-memory database SELECT ST_Length(MakeCircle(0, 0, 100, NULL)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeCircle(0, 0, 100, NULL)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb2.testcase0000664000175000017500000000055312544707704023406 00000000000000BdMPolyFromWKB - SRID :memory: #use in-memory database SELECT AsEWkt(BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')), 4326)); 1 # rows (not including the header row) 1 # columns AsEWkt(BdMPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))')), 4326)) SRID=4326;MULTIPOLYGON(((0 0,0 1,1 1,1 0,0 0))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes8.testcase0000664000175000017500000000056312544707704022522 00000000000000LinesCutAtNodes - polygon, nodes :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))"),GeomFromText("MULTIPOINT(0 10, 10 10)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))"),GeomFromText("MULTIPOINT(0 10, 10 10)"))) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/isclosed5.testcase0000664000175000017500000000020212544707704022147 00000000000000isclosed5 :memory: #use in-memory database SELECT IsClosed(3); 1 # rows (not including the header row) 1 # columns IsClosed(3) -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/ringsnodes6.testcase0000664000175000017500000000037112544707704022525 00000000000000RingsCutAtNodes - non-polygon (linestring) :memory: #use in-memory database SELECT RingsCutAtNodes(GeomFromText("LINESTRING(1 3, 2 6)")) 1 # rows (not including the header row) 1 # columns RingsCutAtNodes(GeomFromText("LINESTRING(1 3, 2 6)")) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths28.testcase0000664000175000017500000000107312544707704022744 00000000000000shared paths - multilineZ - prepend :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRINGZ((5 0 10, 15 0 30),(5 0 10, 5 5 10))"),GeomFromText("MULTILINESTRINGZ((0 0 0, 4 0 8, 6 0 12, 10 0 20),(11 0 22, 5 0 10),(5 0 10, 5 5 10))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRINGZ((5 0 10, 15 0 30),(5 0 10, 5 5 10))"),GeomFromText("MULTILINESTRINGZ((0 0 0, 4 0 8, 6 0 12, 10 0 20),(11 0 22, 5 0 10),(5 0 10, 5 5 10))"))) MULTILINESTRING Z((5 5 10, 5 0 10, 6 0 12, 10 0 20, 11 0 22))libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_area5.testcase0000664000175000017500000000027112544707704021766 00000000000000ST_Area - Point :memory: #use in-memory database SELECT ST_Area(GeomFromText("POINT(0 0)")); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("POINT(0 0)")) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/difference6.testcase0000664000175000017500000000035112544707704022442 00000000000000difference - zeroblob first point :memory: #use in-memory database SELECT AsText(Difference(zeroblob(48), MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(Difference(zeroblob(48), MakePoint(2,3))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/testgeos9.testcase0000664000175000017500000000034112544707704022207 00000000000000GEOS test - Covers test_geos_x.sqlite SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Covers(a.geometry, b.geometry) = 1; 1 # rows (not including the header row) 1 # columns Count(*) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring8.testcase0000664000175000017500000000044612544707704023247 00000000000000linesubstring - wrong type of limits 1 :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), "hello", null)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), "hello", null)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/symdifference2.testcase0000664000175000017500000000036212544707704023171 00000000000000symdifference - two points, same :memory: #use in-memory database SELECT AsText(SymDifference(Makepoint(1,2), MakePoint(1,2))) 1 # rows (not including the header row) 1 # columns AsText(SymDifference(Makepoint(1,2), MakePoint(1,2))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance10.testcase0000664000175000017500000000045112544707704022216 00000000000000Distance - toxic first line :memory: #use in-memory database SELECT Distance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 0)")) 1 # rows (not including the header row) 1 # columns Distance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 0)")) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/makeellipticarc22.testcase0000664000175000017500000000037112544707704023561 00000000000000makeellipticarc22 - WGS84 sid :memory: #use in-memory database SELECT ST_Length(MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeEllipticArc(0, 0, 100, 200, 30, 60, 4326)) 82.3891:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/linemerge1.testcase0000664000175000017500000000025112544707704022311 00000000000000linemerge - bad blob :memory: #use in-memory database SELECT LineMerge(zeroblob(44)) 1 # rows (not including the header row) 1 # columns LineMerge(zeroblob(44)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths21.testcase0000664000175000017500000000106612544707704022737 00000000000000shared paths - two polygonM, internal ring :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGONM((0 0 4, 10 0 4, 10 10 4, 0 10 4, 0 0 4),(1 1 5, 3 1 5, 3 3 5, 1 3 5, 1 1 5))"),GeomFromText("POLYGONM((5 0 4, 15 0 4, 15 10 4, 5 10 4, 5 0 4))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGONM((0 0 4, 10 0 4, 10 10 4, 0 10 4, 0 0 4),(1 1 5, 3 1 5, 3 3 5, 1 3 5, 1 1 5))"),GeomFromText("POLYGONM((5 0 4, 15 0 4, 15 10 4, 5 10 4, 5 0 4))"))) MULTILINESTRING M((5 0 0, 10 0 0), (10 10 0, 5 10 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/createtopo16.testcase0000664000175000017500000000030712544707704022577 00000000000000CreateTopology - 2 arguments, 4D int (error) :memory: #use in-memory database SELECT CreateTopologyTables(4326, 4); 1 # rows (not including the header row) 1 # columns CreateTopologyTables(4326, 4) 0libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid17.testcase0000664000175000017500000000045712544707704022073 00000000000000HexagonalGrid - Polygon geom - negative size :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), -1.0); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), -1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid9.testcase0000664000175000017500000000047612544707704022515 00000000000000TriangularGrid - Polygon geom - NULL edges_only :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, NULL); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvaliddetail5.testcase0000664000175000017500000000054112544707704023166 00000000000000isvaliddetail5 :memory: #use in-memory database SELECT AsText(IsValidDetail(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5, 136 -35))"))); 1 # rows (not including the header row) 1 # columns AsText(IsValidDetail(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5, 136 -35))"))) POINT(135.2 -34.5) libspatialite-4.3.0a/test/sql_stmt_geos_tests/offsetcurve6.testcase0000664000175000017500000000044312544707704022705 00000000000000OffsetCurve - float radius :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0)'), -1.0)); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('LINESTRING(0 0, 0 1, 4 1, 4 0)'), -1.0)) LINESTRING(3 0, 1 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_area8.testcase0000664000175000017500000000023512544707704021771 00000000000000ST_Area - text (error) :memory: #use in-memory database SELECT ST_Area("hello"); 1 # rows (not including the header row) 1 # columns ST_Area("hello") (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance7.testcase0000664000175000017500000000045112544707704022144 00000000000000Distance - parallel lines :memory: #use in-memory database SELECT Distance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 1 # rows (not including the header row) 1 # columns Distance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 2, 10 2)")) 2.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/union25.testcase0000664000175000017500000000056712544707704021572 00000000000000union - MULTILINESTRING (two Lines) :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("LINESTRING(30 30, 31 31)"), GeomFromText("LINESTRING(20 20, 10 10)"))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("LINESTRING(30 30, 31 31)"), GeomFromText("LINESTRING(20 20, 10 10)"))) MULTILINESTRING((30 30, 31 31), (20 20, 10 10)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/offsetcurve13.testcase0000664000175000017500000000046512544707704022767 00000000000000OffsetCurve - linestringm :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('LINESTRINGM(0 0 1, 0 1 2, 4 1 2, 4 0 1)'), -1)) 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('LINESTRINGM(0 0 1, 0 1 2, 4 1 2, 4 0 1)'), -1)) LINESTRING M(3 0 0, 1 0 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/boundary2.testcase0000664000175000017500000000023212544707704022165 00000000000000Boundary - non-blob :memory: #use in-memory database SELECT Boundary("hello") 1 # rows (not including the header row) 1 # columns Boundary("hello") (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid16.testcase0000664000175000017500000000050512544707704022065 00000000000000isvalid Geometry Collection of point and polygon :memory: #use in-memory database SELECT IsValid(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0),POLYGON((1 1, 4 1, 4 4, 1 4, 1 1)))")) 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0),POLYGON((1 1, 4 1, 4 4, 1 4, 1 1)))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalidreason2.testcase0000664000175000017500000000042512544707704023211 00000000000000isvalidreason2 :memory: #use in-memory database SELECT IsValidReason(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")); 1 # rows (not including the header row) 1 # columns IsValidReason(GeomFromText("LINESTRINGZ(136 -35 635.2, 135.2 -34.5 675.1)")) Valid Geometry libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb14.testcase0000664000175000017500000000037112544707704023467 00000000000000BdMPolyFromWKB - point, SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(AsBinary(GeomFromText("Point(1,2)")), 4326); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(AsBinary(GeomFromText("Point(1,2)")), 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb16.testcase0000664000175000017500000000065712544707704023323 00000000000000BdPolyFromWKB :memory: #use in-memory database SELECT AsEwkt(BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')), 4326)); 1 # rows (not including the header row) 1 # columns AsEwkt(BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')), 4326)) SRID=4326;POLYGON((0 0,0 10,10 10,10 0,0 0),(2 2,8 2,8 8,2 8,2 2)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistancewithin8.testcase0000664000175000017500000000034012544707704023731 00000000000000PtDistWithin - bad blob first arg :memory: #use in-memory database SELECT PtDistWithin(zeroblob(98), MakePoint(4,4), 2) 1 # rows (not including the header row) 1 # columns PtDistWithin(zeroblob(98), MakePoint(4,4), 2) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/covers1.testcase0000664000175000017500000000037312544707704021650 00000000000000Covers - non-geom1 :memory: #use in-memory database SELECT Covers(geom1,geom2) from (SELECT "hello" as geom1,GeomFromText("POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Covers(geom1,geom2) -1libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_perimeter3.testcase0000664000175000017500000000037712544707704023057 00000000000000ST_Perimeter - Linestring :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0)")); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0)")) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/testgeos8.testcase0000664000175000017500000000034512544707704022212 00000000000000GEOS test - Contains test_geos_x.sqlite SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Contains(a.geometry, b.geometry) = 1; 1 # rows (not including the header row) 1 # columns Count(*) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid21.testcase0000664000175000017500000000172512544707704022565 00000000000000TriangularGrid - valid - with Origin :memory: #use in-memory database SELECT AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)'))); 1 # rows (not including the header row) 1 # columns AsText(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 0, GeomFromText('POINT(0.1 0.1)'))) MULTIPOLYGON(((-0.5 0.1, 0.5 0.1, 0 0.966025, -0.5 0.1)), ((0 0.966025, 0.5 0.1, 1 0.966025, 0 0.966025)), ((0.5 0.1, 1.5 0.1, 1 0.966025, 0.5 0.1)), ((1 0.966025, 1.5 0.1, 2 0.966025, 1 0.966025)), ((1.5 0.1, 2.5 0.1, 2 0.966025, 1.5 0.1)), ((2 0.966025, 2.5 0.1, 3 0.966025, 2 0.966025)), ((0 0.966025, 1 0.966025, 0.5 1.832051, 0 0.966025)), ((0.5 1.832051, 1 0.966025, 1.5 1.832051, 0.5 1.832051)), ((1 0.966025, 2 0.966025, 1.5 1.832051, 1 0.966025)), ((1.5 1.832051, 2 0.966025, 2.5 1.832051, 1.5 1.832051)), ((2 0.966025, 3 0.966025, 2.5 1.832051, 2 0.966025))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid3.testcase0000664000175000017500000000031412544707704022512 00000000000000SquareGrid - Point geom :memory: #use in-memory database SELECT SquareGrid(MakePoint(1, 1, 4326), 1.0); 1 # rows (not including the header row) 1 # columns SquareGrid(MakePoint(1, 1, 4326), 1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/Makefile.am0000664000175000017500000004465312544707704020576 00000000000000EXTRA_DIST = bdmpolyfromtext10.testcase \ bdmpolyfromtext13.testcase \ bdmpolyfromtext14.testcase \ bdmpolyfromtext15.testcase \ bdmpolyfromtext16.testcase \ bdmpolyfromtext17.testcase \ bdmpolyfromtext1.testcase \ bdmpolyfromtext2.testcase \ bdmpolyfromtext3.testcase \ bdmpolyfromtext4.testcase \ bdmpolyfromtext9.testcase \ bdmpolyfromwkb10.testcase \ bdmpolyfromwkb11.testcase \ bdmpolyfromwkb12.testcase \ bdmpolyfromwkb13.testcase \ bdmpolyfromwkb14.testcase \ bdmpolyfromwkb15.testcase \ bdmpolyfromwkb16.testcase \ bdmpolyfromwkb17.testcase \ bdmpolyfromwkb18.testcase \ bdmpolyfromwkb19.testcase \ bdmpolyfromwkb1.testcase \ bdmpolyfromwkb2.testcase \ bdmpolyfromwkb3.testcase \ bdmpolyfromwkb4.testcase \ bdmpolyfromwkb5.testcase \ bdmpolyfromwkb6.testcase \ bdmpolyfromwkb7.testcase \ bdmpolyfromwkb8.testcase \ bdmpolyfromwkb9.testcase \ bdpolyfromtext10.testcase \ bdpolyfromtext11.testcase \ bdpolyfromtext12.testcase \ bdpolyfromtext13.testcase \ bdpolyfromtext14.testcase \ bdpolyfromtext15.testcase \ bdpolyfromtext16.testcase \ bdpolyfromtext1.testcase \ bdpolyfromtext2.testcase \ bdpolyfromtext3.testcase \ bdpolyfromtext4.testcase \ bdpolyfromtext5.testcase \ bdpolyfromtext6.testcase \ bdpolyfromtext7.testcase \ bdpolyfromtext8.testcase \ bdpolyfromtext9.testcase \ bdpolyfromwkb10.testcase \ bdpolyfromwkb11.testcase \ bdpolyfromwkb12.testcase \ bdpolyfromwkb13.testcase \ bdpolyfromwkb14.testcase \ bdpolyfromwkb15.testcase \ bdpolyfromwkb16.testcase \ bdpolyfromwkb17.testcase \ bdpolyfromwkb18.testcase \ bdpolyfromwkb19.testcase \ bdpolyfromwkb1.testcase \ bdpolyfromwkb2.testcase \ bdpolyfromwkb3.testcase \ bdpolyfromwkb4.testcase \ bdpolyfromwkb5.testcase \ bdpolyfromwkb6.testcase \ bdpolyfromwkb7.testcase \ bdpolyfromwkb8.testcase \ bdpolyfromwkb9.testcase \ boundary1.testcase \ boundary2.testcase \ boundary3.testcase \ boundary4.testcase \ boundary5.testcase \ boundary6.testcase \ boundary7.testcase \ boundary8.testcase \ boundary9.testcase \ buffer10.testcase \ buffer11.testcase \ buffer12.testcase \ buffer1.testcase \ buffer2.testcase \ buffer3.testcase \ buffer4.testcase \ buffer5.testcase \ buffer6.testcase \ buffer7.testcase \ buffer8.testcase \ buffer9.testcase \ buildarea1.testcase \ buildarea2.testcase \ buildarea3.testcase \ buildarea4.testcase \ buildarea5.testcase \ buildarea6.testcase \ centroid1.testcase \ centroid2.testcase \ centroid3.testcase \ centroid4.testcase \ centroid5.testcase \ centroid6.testcase \ centroid7.testcase \ centroid8.testcase \ convexhull10.testcase \ convexhull1.testcase \ convexhull2.testcase \ convexhull3.testcase \ convexhull4.testcase \ convexhull5.testcase \ convexhull6.testcase \ convexhull7.testcase \ convexhull8.testcase \ convexhull9.testcase \ difference10.testcase \ difference11.testcase \ difference12.testcase \ difference1.testcase \ difference2.testcase \ difference3.testcase \ difference4.testcase \ difference6.testcase \ difference7.testcase \ difference8.testcase \ difference9.testcase \ distance10.testcase \ distance1.testcase \ distance2.testcase \ distance3.testcase \ distance4.testcase \ distance5.testcase \ distance6.testcase \ distance7.testcase \ distance8.testcase \ distance9.testcase \ intersection10.testcase \ intersection11.testcase \ intersection12.testcase \ intersection1.testcase \ intersection2.testcase \ intersection3.testcase \ intersection4.testcase \ intersection5.testcase \ intersection6.testcase \ intersection7.testcase \ intersection8.testcase \ intersection9.testcase \ isclosed10.testcase \ isclosed1.testcase \ isclosed2.testcase \ isclosed3.testcase \ isclosed4.testcase \ isclosed5.testcase \ isclosed6.testcase \ isclosed7.testcase \ isclosed8.testcase \ isclosed9.testcase \ isring1.testcase \ isring2.testcase \ isring3.testcase \ isring4.testcase \ isring5.testcase \ isring6.testcase \ isring7.testcase \ isring8.testcase \ isring9.testcase \ issimple1.testcase \ issimple2.testcase \ issimple3.testcase \ issimple4.testcase \ issimple5.testcase \ issimple6.testcase \ isvalid10.testcase \ isvalid11.testcase \ isvalid12.testcase \ isvalid13.testcase \ isvalid14.testcase \ isvalid15.testcase \ isvalid16.testcase \ isvalid17.testcase \ isvalid18.testcase \ isvalid19.testcase \ isvalid1.testcase \ isvalid20.testcase \ isvalid2.testcase \ isvalid3.testcase \ isvalid4.testcase \ isvalid5.testcase \ isvalid6.testcase \ isvalid7.testcase \ isvalid8.testcase \ isvalid9.testcase \ isvaliddetail1.testcase \ isvaliddetail2.testcase \ isvaliddetail3.testcase \ isvaliddetail4.testcase \ isvaliddetail5.testcase \ isvalidreason1.testcase \ isvalidreason2.testcase \ isvalidreason3.testcase \ isvalidreason4.testcase \ isvalidreason5.testcase \ pointonsurface1.testcase \ pointonsurface2.testcase \ pointonsurface3.testcase \ pointonsurface4.testcase \ pointonsurface5.testcase \ pointonsurface6.testcase \ pointonsurface7.testcase \ polygonize10.testcase \ polygonize11.testcase \ polygonize12.testcase \ polygonize13.testcase \ polygonize14.testcase \ polygonize1.testcase \ polygonize2.testcase \ polygonize3.testcase \ polygonize4.testcase \ polygonize5.testcase \ polygonize6.testcase \ polygonize7.testcase \ polygonize8.testcase \ polygonize9.testcase \ ptdistancewithin10.testcase \ ptdistancewithin11.testcase \ ptdistancewithin12.testcase \ ptdistancewithin13.testcase \ ptdistancewithin14.testcase \ ptdistancewithin15.testcase \ ptdistancewithin16.testcase \ ptdistancewithin17.testcase \ ptdistancewithin18.testcase \ ptdistancewithin1.testcase \ ptdistancewithin2.testcase \ ptdistancewithin3.testcase \ ptdistancewithin4.testcase \ ptdistancewithin5.testcase \ ptdistancewithin6.testcase \ ptdistancewithin7.testcase \ ptdistancewithin8.testcase \ ptdistancewithin9.testcase \ ptdistwithin10.testcase \ ptdistwithin11.testcase \ ptdistwithin12.testcase \ ptdistwithin13.testcase \ ptdistwithin14.testcase \ ptdistwithin15.testcase \ ptdistwithin16.testcase \ ptdistwithin1.testcase \ ptdistwithin2.testcase \ ptdistwithin3.testcase \ ptdistwithin4.testcase \ ptdistwithin5.testcase \ ptdistwithin6.testcase \ ptdistwithin7.testcase \ ptdistwithin8.testcase \ ptdistwithin9.testcase \ relate1.testcase \ relate2.testcase \ relate3.testcase \ relate4.testcase \ relate5.testcase \ relate6.testcase \ relate7.testcase \ relate8.testcase \ relate9.testcase \ relations1.testcase \ relations2.testcase \ relations3.testcase \ relations4.testcase \ relations5.testcase \ relations6.testcase \ relations7.testcase \ relations8.testcase \ routing6.testcase \ simplify10.testcase \ simplify11.testcase \ simplify12.testcase \ simplify13.testcase \ simplify14.testcase \ simplify15.testcase \ simplify16.testcase \ simplify1.testcase \ simplify2.testcase \ simplify3.testcase \ simplify4.testcase \ simplify5.testcase \ simplify6.testcase \ simplify7.testcase \ simplify8.testcase \ simplify9.testcase \ st_area1.testcase \ st_area2.testcase \ st_area3.testcase \ st_area4.testcase \ st_area5.testcase \ st_area6.testcase \ st_area7.testcase \ st_area8.testcase \ st_area9.testcase \ st_length10.testcase \ st_length11.testcase \ st_length12.testcase \ st_length13.testcase \ st_length14.testcase \ st_length15.testcase \ st_length16.testcase \ st_length17.testcase \ st_length18.testcase \ st_length1.testcase \ st_length2.testcase \ st_length3.testcase \ st_length4.testcase \ st_length5.testcase \ st_length6.testcase \ st_length7.testcase \ st_length8.testcase \ st_length9.testcase \ st_perimeter10.testcase \ st_perimeter11.testcase \ st_perimeter12.testcase \ st_perimeter13.testcase \ st_perimeter14.testcase \ st_perimeter15.testcase \ st_perimeter16.testcase \ st_perimeter17.testcase \ st_perimeter18.testcase \ st_perimeter1.testcase \ st_perimeter2.testcase \ st_perimeter3.testcase \ st_perimeter4.testcase \ st_perimeter5.testcase \ st_perimeter6.testcase \ st_perimeter7.testcase \ st_perimeter8.testcase \ st_perimeter9.testcase \ symdifference10.testcase \ symdifference11.testcase \ symdifference1.testcase \ symdifference2.testcase \ symdifference3.testcase \ symdifference4.testcase \ symdifference5.testcase \ symdifference6.testcase \ symdifference7.testcase \ symdifference8.testcase \ symdifference9.testcase \ union10.testcase \ union11.testcase \ union12.testcase \ union13.testcase \ union14.testcase \ union15.testcase \ union16.testcase \ union17.testcase \ union18.testcase \ union19.testcase \ union1.testcase \ union20.testcase \ union21.testcase \ union22.testcase \ union23.testcase \ union24.testcase \ union25.testcase \ union26.testcase \ union27.testcase \ union28.testcase \ union29.testcase \ union2.testcase \ union3.testcase \ union4.testcase \ union5.testcase \ union6.testcase \ union7.testcase \ union8.testcase \ union9.testcase \ makearc15.testcase \ makearc19.testcase \ makearc23.testcase \ makecircle10.testcase \ makecircle11.testcase \ makecircle12.testcase \ makecircle13.testcase \ makecircle14.testcase \ makecircle15.testcase \ makecircle16.testcase \ makecircle17.testcase \ makecircle18.testcase \ makeellipse13.testcase \ makeellipse17.testcase \ makeellipse21.testcase \ makeellipticarc18.testcase \ makeellipticarc22.testcase \ makeellipticarc26.testcase \ makecircularsector15.testcase \ makecircularsector19.testcase \ makecircularsector23.testcase \ makecircularstripe15.testcase \ makecircularstripe19.testcase \ makecircularstripe23.testcase \ makeellipticsector18.testcase \ makeellipticsector22.testcase \ makeellipticsector26.testcase \ geoserror1.testcase \ geoserror2.testcase \ geoserror3.testcase \ geoserror4.testcase \ geoserror5.testcase \ geoserror6.testcase \ geoserror7.testcase \ geoserror7.testcase \ testgeos1.testcase \ testgeos2.testcase \ testgeos3.testcase \ testgeos4.testcase \ testgeos5.testcase \ testgeos6.testcase \ testgeos7.testcase \ testgeos8.testcase \ testgeos9.testcase \ testgeos10.testcase \ closestpoint10.testcase \ closestpoint11.testcase \ closestpoint12.testcase \ closestpoint13.testcase \ closestpoint14.testcase \ closestpoint15.testcase \ closestpoint16.testcase \ closestpoint17.testcase \ closestpoint18.testcase \ closestpoint19.testcase \ closestpoint1.testcase \ closestpoint20.testcase \ closestpoint21.testcase \ closestpoint22.testcase \ closestpoint2.testcase \ closestpoint3.testcase \ closestpoint4.testcase \ closestpoint5.testcase \ closestpoint6.testcase \ closestpoint7.testcase \ closestpoint8.testcase \ closestpoint9.testcase \ coveredby1.testcase \ coveredby2.testcase \ covers1.testcase \ covers2.testcase \ covers_covered1.testcase \ covers_covered2.testcase \ covers_covered3.testcase \ covers_covered4.testcase \ covers_covered5.testcase \ covers_covered6.testcase \ covers_covered7.testcase \ createtopo10.testcase \ createtopo11.testcase \ createtopo12.testcase \ createtopo13.testcase \ createtopo14.testcase \ createtopo15.testcase \ createtopo16.testcase \ createtopo17.testcase \ createtopo18.testcase \ createtopo1.testcase \ createtopo2.testcase \ createtopo3.testcase \ createtopo4.testcase \ createtopo5.testcase \ createtopo6.testcase \ createtopo7.testcase \ createtopo8.testcase \ createtopo9.testcase \ distance_geogr10.testcase \ distance_geogr11.testcase \ distance_geogr12.testcase \ distance_geogr1.testcase \ distance_geogr2.testcase \ distance_geogr3.testcase \ distance_geogr4.testcase \ distance_geogr5.testcase \ distance_geogr6.testcase \ distance_geogr7.testcase \ distance_geogr8.testcase \ distance_geogr9.testcase \ hausdorffdistance1.testcase \ hausdorffdistance2.testcase \ hausdorffdistance3.testcase \ hausdorffdistance4.testcase \ hausdorffdistance5.testcase \ hausdorffdistance6.testcase \ hausdorffdistance7.testcase \ hexgrid10.testcase \ hexgrid11.testcase \ hexgrid12.testcase \ hexgrid13.testcase \ hexgrid14.testcase \ hexgrid15.testcase \ hexgrid16.testcase \ hexgrid17.testcase \ hexgrid18.testcase \ hexgrid19.testcase \ hexgrid1.testcase \ hexgrid20.testcase \ hexgrid21.testcase \ hexgrid22.testcase \ hexgrid23.testcase \ hexgrid2.testcase \ hexgrid3.testcase \ hexgrid4.testcase \ hexgrid5.testcase \ hexgrid6.testcase \ hexgrid7.testcase \ hexgrid8.testcase \ hexgrid9.testcase \ interpolateequidistantpoint10.testcase \ interpolateequidistantpoint11.testcase \ interpolateequidistantpoint12.testcase \ interpolateequidistantpoint13.testcase \ interpolateequidistantpoint14.testcase \ interpolateequidistantpoint1.testcase \ interpolateequidistantpoint2.testcase \ interpolateequidistantpoint3.testcase \ interpolateequidistantpoint4.testcase \ interpolateequidistantpoint5.testcase \ interpolateequidistantpoint6.testcase \ interpolateequidistantpoint7.testcase \ interpolateequidistantpoint8.testcase \ interpolateequidistantpoint9.testcase \ interpolatepoint10.testcase \ interpolatepoint11.testcase \ interpolatepoint12.testcase \ interpolatepoint13.testcase \ interpolatepoint14.testcase \ interpolatepoint1.testcase \ interpolatepoint2.testcase \ interpolatepoint3.testcase \ interpolatepoint4.testcase \ interpolatepoint5.testcase \ interpolatepoint6.testcase \ interpolatepoint7.testcase \ interpolatepoint8.testcase \ interpolatepoint9.testcase \ linemerge10.testcase \ linemerge1.testcase \ linemerge2.testcase \ linemerge3.testcase \ linemerge4.testcase \ linemerge5.testcase \ linemerge6.testcase \ linemerge7.testcase \ linemerge8.testcase \ linemerge9.testcase \ linesnodes10.testcase \ linesnodes11.testcase \ linesnodes12.testcase \ linesnodes13.testcase \ linesnodes14.testcase \ linesnodes15.testcase \ linesnodes16.testcase \ linesnodes17.testcase \ linesnodes18.testcase \ linesnodes19.testcase \ linesnodes1.testcase \ linesnodes2.testcase \ linesnodes3.testcase \ linesnodes4.testcase \ linesnodes5.testcase \ linesnodes6.testcase \ linesnodes7.testcase \ linesnodes8.testcase \ linesnodes9.testcase \ linesubstring10.testcase \ linesubstring11.testcase \ linesubstring12.testcase \ linesubstring13.testcase \ linesubstring14.testcase \ linesubstring15.testcase \ linesubstring16.testcase \ linesubstring17.testcase \ linesubstring18.testcase \ linesubstring19.testcase \ linesubstring1.testcase \ linesubstring20.testcase \ linesubstring21.testcase \ linesubstring22.testcase \ linesubstring23.testcase \ linesubstring24.testcase \ linesubstring25.testcase \ linesubstring26.testcase \ linesubstring2.testcase \ linesubstring3.testcase \ linesubstring4.testcase \ linesubstring5.testcase \ linesubstring6.testcase \ linesubstring7.testcase \ linesubstring8.testcase \ linesubstring9.testcase \ locatepoint10.testcase \ locatepoint11.testcase \ locatepoint12.testcase \ locatepoint1.testcase \ locatepoint2.testcase \ locatepoint3.testcase \ locatepoint4.testcase \ locatepoint5.testcase \ locatepoint6.testcase \ locatepoint7.testcase \ locatepoint8.testcase \ locatepoint9.testcase \ offsetcurve10.testcase \ offsetcurve11.testcase \ offsetcurve12.testcase \ offsetcurve13.testcase \ offsetcurve14.testcase \ offsetcurve1.testcase \ offsetcurve2.testcase \ offsetcurve3.testcase \ offsetcurve4.testcase \ offsetcurve5.testcase \ offsetcurve6.testcase \ offsetcurve7.testcase \ offsetcurve8.testcase \ offsetcurve9.testcase \ ringsnodes1.testcase \ ringsnodes2.testcase \ ringsnodes3.testcase \ ringsnodes4.testcase \ ringsnodes5.testcase \ ringsnodes6.testcase \ sharedpaths10.testcase \ sharedpaths11.testcase \ sharedpaths12.testcase \ sharedpaths13.testcase \ sharedpaths14.testcase \ sharedpaths15.testcase \ sharedpaths16.testcase \ sharedpaths17.testcase \ sharedpaths18.testcase \ sharedpaths19.testcase \ sharedpaths1.testcase \ sharedpaths20.testcase \ sharedpaths21.testcase \ sharedpaths22.testcase \ sharedpaths23.testcase \ sharedpaths24.testcase \ sharedpaths25.testcase \ sharedpaths26.testcase \ sharedpaths27.testcase \ sharedpaths28.testcase \ sharedpaths29.testcase \ sharedpaths2.testcase \ sharedpaths30.testcase \ sharedpaths31.testcase \ sharedpaths32.testcase \ sharedpaths3.testcase \ sharedpaths4.testcase \ sharedpaths5.testcase \ sharedpaths6.testcase \ sharedpaths7.testcase \ sharedpaths8.testcase \ sharedpaths9.testcase \ shortestline1.testcase \ shortestline2.testcase \ shortestline3.testcase \ shortestline4.testcase \ shortestline5.testcase \ shortestline6.testcase \ shortestline7.testcase \ singlesidedbuffer11.testcase \ singlesidedbuffer12.testcase \ singlesidedbuffer13.testcase \ singlesidedbuffer14.testcase \ singlesidedbuffer15.testcase \ singlesidedbuffer16.testcase \ singlesidedbuffer17.testcase \ singlesidedbuffer1.testcase \ singlesidedbuffer2.testcase \ singlesidedbuffer3.testcase \ singlesidedbuffer4.testcase \ singlesidedbuffer5.testcase \ singlesidedbuffer6.testcase \ singlesidedbuffer7.testcase \ singlesidedbuffer8.testcase \ singlesidedbuffer9.testcase \ snap10.testcase \ snap1.testcase \ snap2.testcase \ snap3.testcase \ snap4.testcase \ snap5.testcase \ snap6.testcase \ snap7.testcase \ snap8.testcase \ snap9.testcase \ squaregrid10.testcase \ squaregrid11.testcase \ squaregrid12.testcase \ squaregrid13.testcase \ squaregrid14.testcase \ squaregrid15.testcase \ squaregrid16.testcase \ squaregrid17.testcase \ squaregrid18.testcase \ squaregrid19.testcase \ squaregrid1.testcase \ squaregrid20.testcase \ squaregrid21.testcase \ squaregrid22.testcase \ squaregrid23.testcase \ squaregrid2.testcase \ squaregrid3.testcase \ squaregrid4.testcase \ squaregrid5.testcase \ squaregrid6.testcase \ squaregrid7.testcase \ squaregrid8.testcase \ squaregrid9.testcase \ trianggrid10.testcase \ trianggrid11.testcase \ trianggrid12.testcase \ trianggrid13.testcase \ trianggrid14.testcase \ trianggrid15.testcase \ trianggrid16.testcase \ trianggrid17.testcase \ trianggrid18.testcase \ trianggrid19.testcase \ trianggrid1.testcase \ trianggrid20.testcase \ trianggrid21.testcase \ trianggrid22.testcase \ trianggrid23.testcase \ trianggrid2.testcase \ trianggrid3.testcase \ trianggrid4.testcase \ trianggrid5.testcase \ trianggrid6.testcase \ trianggrid7.testcase \ trianggrid8.testcase \ trianggrid9.testcase \ unaryunion1.testcase \ unaryunion2.testcase \ unaryunion3.testcase \ unaryunion4.testcase \ unaryunion5.testcase \ unaryunion6.testcase \ unaryunion7.testcase \ unaryunion8.testcase libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistwithin3.testcase0000664000175000017500000000042012544707704023074 00000000000000PtDistWithin invalid arg: NULL distance :memory: SELECT PtDistWithin(GeomFromText("POINT(5.1 5.1)", 4326), GeomFromText("POINT(5 5)", 4326), NULL, 1); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5.1 5.1)", 4326), GeomFromText("POINT(5 5)", 4326), NULL, 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/pointonsurface6.testcase0000664000175000017500000000067312544707704023416 00000000000000PointOnSurface - square, M (problem case - throws away M component) :memory: #use in-memory database SELECT Contains(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326), PointOnSurface(geomFromText("POLYGONM((0 0 1, 0 1 2, 1 1 2, 0 0 1))", 4326))) 1 # rows (not including the header row) 1 # columns Contains(geomFromText("POLYGON((0 0, 0 1, 1 1, 0 0))", 4326), PointOnSurface(geomFromText("POLYGONM((0 0 1, 0 1 2, 1 1 2, 0 0 1))", 4326))) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/makecircle16.testcase0000664000175000017500000000033612544707704022533 00000000000000makecircle16 - text step :memory: #use in-memory database SELECT ST_Length(MakeCircle(0, 0, 100, 4326, 'alpha')); 1 # rows (not including the header row) 1 # columns ST_Length(MakeCircle(0, 0, 100, 4326, 'alpha')) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid19.testcase0000664000175000017500000000057212544707704022607 00000000000000SquareGrid - Polygon geom - MultiPoint Origin :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('MULTIPOINT(0 0, 1 1)')); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('MULTIPOINT(0 0, 1 1)')) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolateequidistantpoint10.testcase0000664000175000017500000000051412544707704026277 00000000000000interpolate equidistant points - wrong geometry type :memory: #use in-memory database SELECT Line_Interpolate_Equidistant_Points(GeomFromText("POLYGON((0 0, 10 6, 10 0, 0 0))"), 0.6) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Equidistant_Points(GeomFromText("POLYGON((0 0, 10 6, 10 0, 0 0))"), 0.6) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb12.testcase0000664000175000017500000000056212544707704023312 00000000000000BdPolyFromWKB - toxic, SRID :memory: #use in-memory database SELECT BdPolyFromWKB(AsBinary(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))", 4326))); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(AsBinary(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))", 4326))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/createtopo15.testcase0000664000175000017500000000030312544707704022572 00000000000000CreateTopology - 2 arguments, 3D int NEW:memory: #use in-memory database SELECT CreateTopologyTables(4326, 3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables(4326, 3) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/shortestline7.testcase0000664000175000017500000000047212544707704023100 00000000000000ShortestLine - coincident lines :memory: #use in-memory database SELECT ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(10 0, 0 0)")) 1 # rows (not including the header row) 1 # columns ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(10 0, 0 0)")) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/createtopo14.testcase0000664000175000017500000000030312544707704022571 00000000000000CreateTopology - 2 arguments, 2D int NEW:memory: #use in-memory database SELECT CreateTopologyTables(4326, 2); 1 # rows (not including the header row) 1 # columns CreateTopologyTables(4326, 2) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid5.testcase0000664000175000017500000000021312544707704021777 00000000000000isvalid5 :memory: #use in-memory database SELECT IsValid("hello"); 1 # rows (not including the header row) 1 # columns IsValid("hello") -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths8.testcase0000664000175000017500000000045412544707704022664 00000000000000shared paths - point and line :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POINT(15 0)"),GeomFromText("LINESTRING(0 0, 1 0)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POINT(15 0)"),GeomFromText("LINESTRING(0 0, 1 0)"))) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/centroid7.testcase0000664000175000017500000000055512544707704022166 00000000000000Centroid - polygonZM (problem case - GEOS throws away the Z and M coordinates) :memory: #use in-memory database SELECT astext(centroid(geomFromText("POLYGONZM((0 0 1 4, 0 2 1 4, 2 2 1 4, 2 0 1 4, 0 0 1 4))"))) 1 # rows (not including the header row) 1 # columns astext(centroid(geomFromText("POLYGONZM((0 0 1 4, 0 2 1 4, 2 2 1 4, 2 0 1 4, 0 0 1 4))"))) POINT(1 1) libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid9.testcase0000664000175000017500000000047312544707704022012 00000000000000HexagonalGrid - Polygon geom - NULL edges_only :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, NULL); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, NULL) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance_geogr5.testcase0000664000175000017500000000043412544707704023326 00000000000000Distance Long/Lat metric (ellipsoid) - two 2D points :memory: #use in-memory database SELECT ST_Distance(MakePoint(11.1, 42.1), MakePoint(11.2, 42.2), 1); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePoint(11.1, 42.1), MakePoint(11.2, 42.2), 1) 13845.545374:6 libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistwithin14.testcase0000664000175000017500000000052212544707704023161 00000000000000PtDistWithin: Linestring / Polygon :memory: SELECT PtDistWithin(GeomFromText("LINESTRING(4 4, 4.1 4.1)", 4326), GeomFromText("POLYGON((5 5, 5.1 5, 5.1 5.1, 5 5.1, 5 5))", 4326), 200); 1 # rows 1 # column PtDistWithin(GeomFromText("LINESTRING(4 4, 4.1 4.1)", 4326), GeomFromText("POLYGON((5 5, 5.1 5, 5.1 5.1, 5 5.1, 5 5))", 4326), 200) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistancewithin7.testcase0000664000175000017500000000040512544707704023732 00000000000000PtDistWithin- two points, float distance, optional fourth arg :memory: #use in-memory database SELECT PtDistWithin(Makepoint(4,2), MakePoint(4,4), 2.1, 0) 1 # rows (not including the header row) 1 # columns PtDistWithin(Makepoint(4,2), MakePoint(4,4), 2.1, 0) 1libspatialite-4.3.0a/test/sql_stmt_geos_tests/intersection11.testcase0000664000175000017500000000062312544707704023134 00000000000000intersection - POLYGONZM, POINTZM :memory: #use in-memory database SELECT AsText(Intersection(GeomFromText("POLYGONZM((0 0 1 4, 4 0 1 2, 4 4 1 4, 0 4 1 2, 0 0 1 4))"), GeomFromText("POINTZM(0 3 1 4)"))) 1 # rows (not including the header row) 1 # columns AsText(Intersection(GeomFromText("POLYGONZM((0 0 1 4, 4 0 1 2, 4 4 1 4, 0 4 1 2, 0 0 1 4))"), GeomFromText("POINTZM(0 3 1 4)"))) POINT ZM(0 3 1 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvaliddetail1.testcase0000664000175000017500000000025312544707704023162 00000000000000isvaliddetail1 :memory: #use in-memory database SELECT IsValidDetail(zeroblob(10)); 1 # rows (not including the header row) 1 # columns IsValidDetail(zeroblob(10)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromtext15.testcase0000664000175000017500000000057512544707704023677 00000000000000BdMPolyFromText :memory: #use in-memory database SELECT AsEwkt(BdMPolyFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')); 1 # rows (not including the header row) 1 # columns AsEwkt(BdMPolyFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')) SRID=0;MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(2 2,8 2,8 8,2 8,2 2))) libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolatepoint11.testcase0000664000175000017500000000057012544707704024027 00000000000000interpolate point - wrong geometry type :memory: #use in-memory database SELECT Line_Interpolate_Point(GeomFromText("GeometryCollection(LINESTRING(0 1, 1 2),POLYGON((0 0, 10 0, 10 10, 0 0)))"), 0.6) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Point(GeomFromText("GeometryCollection(LINESTRING(0 1, 1 2),POLYGON((0 0, 10 0, 10 10, 0 0)))"), 0.6) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint11.testcase0000664000175000017500000000046112544707704023154 00000000000000Closest Point - Point and lineZ :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("LINESTRINGZ(0 0 0, 0 10 5)"), MakePoint(4, 6))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("LINESTRINGZ(0 0 0, 0 10 5)"), MakePoint(4, 6))) POINT Z(0 6 3) libspatialite-4.3.0a/test/sql_stmt_geos_tests/union14.testcase0000664000175000017500000000051512544707704021561 00000000000000union - LINESTRING and POINT :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("LINESTRING(0 0, 2 0, 2 2, 0 2)"),GeomFromText("POINT(0 0)"))) 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("LINESTRING(0 0, 2 0, 2 2, 0 2)"),GeomFromText("POINT(0 0)"))) LINESTRING(0 0, 2 0, 2 2, 0 2) libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolateequidistantpoint6.testcase0000664000175000017500000000037512544707704026231 00000000000000interpolate equidistant points - bad blob :memory: #use in-memory database SELECT Line_Interpolate_Equidistant_Points(zeroblob(100), 0.5) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Equidistant_Points(zeroblob(100), 0.5) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb5.testcase0000664000175000017500000000027012544707704023405 00000000000000BdMPolyFromWKB - null, SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(null, 4326); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(null, 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance_geogr2.testcase0000664000175000017500000000046712544707704023331 00000000000000Distance Long/Lat metric (great circle) - two 3D points :memory: #use in-memory database SELECT ST_Distance(MakePointZ(11.1, 42.1, 0.1), MakePointZ(11.2, 42.2, 0.2), 0); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePointZ(11.1, 42.1, 0.1), MakePointZ(11.2, 42.2, 0.2), 0) 13842.154368:6 libspatialite-4.3.0a/test/sql_stmt_geos_tests/snap8.testcase0000664000175000017500000000052512544707704021316 00000000000000Snap, mismatched geom dims :memory: #use in-memory database SELECT AsText(Snap(GeomFromText("POINTZ(1 1 4)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 2)) 1 # rows (not including the header row) 1 # columns AsText(Snap(GeomFromText("POINTZ(1 1 4)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 2)) POINT Z(0 0 0)libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromtext3.testcase0000664000175000017500000000026212544707704023605 00000000000000BdMPolyFromText - non-text, no SRID :memory: #use in-memory database SELECT BdMPolyFromText(26); 1 # rows (not including the header row) 1 # columns BdMPolyFromText(26) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid18.testcase0000664000175000017500000000054512544707704022073 00000000000000isvalid Geometry Collection of two points and linestring :memory: #use in-memory database SELECT IsValid(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0),POINT(3 4),LINESTRING(1 1, 4 1, 4 4, 1 4, 1 1))")) 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("GEOMETRYCOLLECTION(POINT(0 0),POINT(3 4),LINESTRING(1 1, 4 1, 4 4, 1 4, 1 1))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths4.testcase0000664000175000017500000000036512544707704022661 00000000000000shared paths - non-blob second arg :memory: #use in-memory database SELECT SharedPaths(GeomFromText("LINESTRING(5 0, 15 0)"), 3.4) 1 # rows (not including the header row) 1 # columns SharedPaths(GeomFromText("LINESTRING(5 0, 15 0)"), 3.4) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/relate1.testcase0000664000175000017500000000070512544707704021622 00000000000000Relate - POINTs identical :memory: #use in-memory database SELECT Relate(geom1, geom2, "T*T***T**"), Relate(geom1, geom2, "T*F**FFF*"), Relate(geom1, geom2, "FF*FF****") FROM (SELECT GeomFromText("POINT(1 2)") as geom1, GeomFromText("POINT(1 2)") as geom2) dummy; 1 # rows (not including the header row) 3 # columns Relate(geom1, geom2, "T*T***T**") # overlaps Relate(geom1, geom2, "T*F**FFF*") # equal Relate(geom1, geom2, "FF*FF****") # disjoint 0 1 0libspatialite-4.3.0a/test/sql_stmt_geos_tests/singlesidedbuffer1.testcase0000664000175000017500000000043012544707704024025 00000000000000singlesidedbuffer - bad args (point, left side) :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("Point(1 2)", 4326), 3, 1)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("Point(1 2)", 4326), 3, 1)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/testgeos2.testcase0000664000175000017500000000035212544707704022202 00000000000000GEOS test - Intersects test_geos_x.sqlite SELECT Count(*) FROM comuni AS a, comuni AS b WHERE a.ROWID = 2 AND b.ROWID <> 2 AND ST_Intersects(a.geometry, b.geometry) = 1; 1 # rows (not including the header row) 1 # columns Count(*) 10 libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes19.testcase0000664000175000017500000000101612544707704022576 00000000000000LinesCutAtNodes - closed linestringZM, nodes :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRINGZM(0 0 1 4, 0 10 1 2, 10 10 1 6, 10 0 1 3, 0 0 1 4)"),GeomFromText("MULTIPOINTZM(0 10 1 2, 10 10 1 6)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRINGZM(0 0 1 4, 0 10 1 2, 10 10 1 6, 10 0 1 3, 0 0 1 4)"),GeomFromText("MULTIPOINTZM(0 10 1 2, 10 10 1 6)"))) MULTILINESTRING ZM((10 10 1 6, 10 0 1 3, 0 0 1 4, 0 10 1 2), (0 10 1 2, 10 10 1 6))libspatialite-4.3.0a/test/sql_stmt_geos_tests/makecircularstripe19.testcase0000664000175000017500000000037412544707704024332 00000000000000makecircularstrpe19 - WGS84 srid :memory: #use in-memory database SELECT ST_Area(MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326)); 1 # rows (not including the header row) 1 # columns ST_Area(MakeCircularStripe(0, 0, 100, 90, 30, 60, 4326)) 494.8973:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/coveredby1.testcase0000664000175000017500000000040412544707704022324 00000000000000CoveredBy - non-geom1 :memory: #use in-memory database SELECT CoveredBy(geom1,geom2) from (SELECT "hello" as geom1,GeomFromText("POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))") as geom2) dummy; 1 # rows (not including the header row) 1 # columns CoveredBy(geom1,geom2) -1libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid16.testcase0000664000175000017500000000062312544707704022601 00000000000000SquareGrid - Polygon geom - Polygon Origin :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid18.testcase0000664000175000017500000000045112544707704022066 00000000000000HexagonalGrid - Polygon geom - zero size :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 0.0); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 0.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance_geogr10.testcase0000664000175000017500000000074312544707704023405 00000000000000Distance Long/Lat metric (ellipsoid) - Linestring/Polygon :memory: #use in-memory database SELECT ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), GeomFromText('POLYGON((11.3 42.3, 11.4 42.3, 11.4 42.4, 11.3 42.4, 11.3 42.3))'), 1); 1 # rows (not including the header row) 1 # columns ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), GeomFromText('POLYGON((11.3 42.3, 11.4 42.3, 11.4 42.4, 11.3 42.4, 11.3 42.3))'), 1) 8232.9862107:6 libspatialite-4.3.0a/test/sql_stmt_geos_tests/ringsnodes2.testcase0000664000175000017500000000063612544707704022525 00000000000000RingsCutAtNodes - with internal ring :memory: #use in-memory database SELECT AsText(RingsCutAtNodes(GeomFromText("POLYGON((0 0, 0 10, 10 10, 10 0, 0 0),(1 1, 3 1, 3 3, 1 3, 1 1))"))) 1 # rows (not including the header row) 1 # columns AsText(RingsCutAtNodes(GeomFromText("POLYGON((0 0, 0 10, 10 10, 10 0, 0 0),(1 1, 3 1, 3 3, 1 3, 1 1))"))) MULTILINESTRING((0 0, 0 10, 10 10, 10 0, 0 0), (1 1, 3 1, 3 3, 1 3, 1 1))libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes15.testcase0000664000175000017500000000057212544707704022600 00000000000000LinesCutAtNodes - closed linestring, lines second arg :memory: #use in-memory database SELECT LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"),GeomFromText("LINESTRING(0 10, 10 10)")) 1 # rows (not including the header row) 1 # columns LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"),GeomFromText("LINESTRING(0 10, 10 10)")) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromtext9.testcase0000664000175000017500000000030612544707704023612 00000000000000BdMPolyFromText - point, SRID :memory: #use in-memory database SELECT BdMPolyFromText("Point(1 2)", 4); 1 # rows (not including the header row) 1 # columns BdMPolyFromText("Point(1 2)", 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/relate3.testcase0000664000175000017500000000044112544707704021621 00000000000000Relate - non blob first arg :memory: #use in-memory database SELECT Relate("hello", geom2, "T*T***T**") FROM (SELECT GeomFromText("POINT(1 2)") as geom1, GeomFromText("POINT(1 2)") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Relate("hello", geom2, "T*T***T**") -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/union5.testcase0000664000175000017500000000033512544707704021501 00000000000000union - zeroblob second point :memory: #use in-memory database SELECT AsText(GUnion(MakePoint(2,3), zeroblob(48))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(MakePoint(2,3), zeroblob(48))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/buffer10.testcase0000664000175000017500000000563212544707704021703 00000000000000buffer - linestringzm :memory: #use in-memory database SELECT AsText(Buffer(GeomFromText("LINESTRINGZM(1 2 1 4, 4 6 3 4)"), 1)) 1 # rows (not including the header row) 1 # columns AsText(Buffer(GeomFromText("LINESTRINGZM(1 2 1 4, 4 6 3 4)"), 1)) POLYGON ZM((3.2 6.6 0 0, 3.232498 6.641046 0 0, 3.2671 6.680336 0 0, 3.30371 6.717761 0 0, 3.342229 6.753218 0 0, 3.382551 6.786611 0 0, 3.424565 6.817848 0 0, 3.468156 6.846843 0 0, 3.513206 6.873517 0 0, 3.559589 6.897796 0 0, 3.60718 6.919615 0 0, 3.655847 6.938914 0 0, 3.705458 6.955638 0 0, 3.755875 6.969744 0 0, 3.806963 6.981191 0 0, 3.858579 6.989949 0 0, 3.910582 6.995994 0 0, 3.962831 6.999309 0 0, 4.015182 6.999885 0 0, 4.067491 6.99772 0 0, 4.119615 6.99282 0 0, 4.171412 6.9852 0 0, 4.222738 6.974878 0 0, 4.273454 6.961885 0 0, 4.32342 6.946255 0 0, 4.3725 6.928032 0 0, 4.420559 6.907265 0 0, 4.467465 6.884011 0 0, 4.51309 6.858335 0 0, 4.557309 6.830305 0 0, 4.6 6.8 0 0, 4.641046 6.767502 0 0, 4.680336 6.7329 0 0, 4.717761 6.69629 0 0, 4.753218 6.657771 0 0, 4.786611 6.617449 0 0, 4.817848 6.575435 0 0, 4.846843 6.531844 0 0, 4.873517 6.486794 0 0, 4.897796 6.440411 0 0, 4.919615 6.39282 0 0, 4.938914 6.344153 0 0, 4.955638 6.294542 0 0, 4.969744 6.244125 0 0, 4.981191 6.193037 0 0, 4.989949 6.141421 0 0, 4.995994 6.089418 0 0, 4.999309 6.037169 0 0, 4.999885 5.984818 0 0, 4.99772 5.932509 0 0, 4.99282 5.880385 0 0, 4.9852 5.828588 0 0, 4.974878 5.777262 0 0, 4.961885 5.726546 0 0, 4.946255 5.67658 0 0, 4.928032 5.6275 0 0, 4.907265 5.579441 0 0, 4.884011 5.532535 0 0, 4.858335 5.48691 0 0, 4.830305 5.442691 0 0, 4.8 5.4 0 0, 1.8 1.4 0 0, 1.767502 1.358954 0 0, 1.7329 1.319664 0 0, 1.69629 1.282239 0 0, 1.657771 1.246782 0 0, 1.617449 1.213389 0 0, 1.575435 1.182152 0 0, 1.531844 1.153157 0 0, 1.486794 1.126483 0 0, 1.440411 1.102204 0 0, 1.39282 1.080385 0 0, 1.344153 1.061086 0 0, 1.294542 1.044362 0 0, 1.244125 1.030256 0 0, 1.193037 1.018809 0 0, 1.141421 1.010051 0 0, 1.089418 1.004006 0 0, 1.037169 1.000691 0 0, 0.984818 1.000115 0 0, 0.932509 1.00228 0 0, 0.880385 1.00718 0 0, 0.828588 1.0148 0 0, 0.777262 1.025122 0 0, 0.726546 1.038115 0 0, 0.67658 1.053745 0 0, 0.6275 1.071968 0 0, 0.579441 1.092735 0 0, 0.532535 1.115989 0 0, 0.48691 1.141665 0 0, 0.442691 1.169695 0 0, 0.4 1.2 0 0, 0.358954 1.232498 0 0, 0.319664 1.2671 0 0, 0.282239 1.30371 0 0, 0.246782 1.342229 0 0, 0.213389 1.382551 0 0, 0.182152 1.424565 0 0, 0.153157 1.468156 0 0, 0.126483 1.513206 0 0, 0.102204 1.559589 0 0, 0.080385 1.60718 0 0, 0.061086 1.655847 0 0, 0.044362 1.705458 0 0, 0.030256 1.755875 0 0, 0.018809 1.806963 0 0, 0.010051 1.858579 0 0, 0.004006 1.910582 0 0, 0.000691 1.962831 0 0, 0.000115 2.015182 0 0, 0.00228 2.067491 0 0, 0.00718 2.119615 0 0, 0.0148 2.171412 0 0, 0.025122 2.222738 0 0, 0.038115 2.273454 0 0, 0.053745 2.32342 0 0, 0.071968 2.3725 0 0, 0.092735 2.420559 0 0, 0.115989 2.467465 0 0, 0.141665 2.51309 0 0, 0.169695 2.557309 0 0, 0.2 2.6 0 0, 3.2 6.6 0 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolatepoint8.testcase0000664000175000017500000000041712544707704023755 00000000000000interpolate point - non-number :memory: #use in-memory database SELECT Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), "hello") 1 # rows (not including the header row) 1 # columns Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), "hello") (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromtext3.testcase0000664000175000017500000000025712544707704023434 00000000000000BdPolyFromText - non-text, no SRID :memory: #use in-memory database SELECT BdPolyFromText(26); 1 # rows (not including the header row) 1 # columns BdPolyFromText(26) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/centroid3.testcase0000664000175000017500000000025612544707704022160 00000000000000Centroid - non-geometry :memory: #use in-memory database SELECT astext(centroid("foo")); 1 # rows (not including the header row) 1 # columns astext(centroid("foo")) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/createtopo7.testcase0000664000175000017500000000033512544707704022520 00000000000000CreateTopology - 3 arguments, 4D (error) :memory: #use in-memory database SELECT CreateTopologyTables("my_prefix", 4326, 4); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("my_prefix", 4326, 4) 0libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistancewithin5.testcase0000664000175000017500000000035312544707704023732 00000000000000PtDistWithin - bad third arg :memory: #use in-memory database SELECT PtDistWithin(Makepoint(4,2), MakePoint(4,4), "hello") 1 # rows (not including the header row) 1 # columns PtDistWithin(Makepoint(4,2), MakePoint(4,4), "hello") (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolateequidistantpoint9.testcase0000664000175000017500000000044412544707704026231 00000000000000interpolate equidistant points - wrong geometry type :memory: #use in-memory database SELECT Line_Interpolate_Equidistant_Points(GeomFromText("POINT(10 6)"), 0.6) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Equidistant_Points(GeomFromText("POINT(10 6)"), 0.6) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring7.testcase0000664000175000017500000000043112544707704023240 00000000000000linesubstring - out-of-range limits 2 :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), 2, -0.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0)"), 2, -0.5)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/simplify15.testcase0000664000175000017500000000040312544707704022262 00000000000000Simplify - toxic first arg :memory: #use in-memory database SELECT AsText(Simplify(GeomFromText('LINESTRING(1 1, 1 1)'),0.1)) 1 # rows (not including the header row) 1 # columns AsText(Simplify(GeomFromText('LINESTRING(1 1, 1 1)'),0.1)) LINESTRING(1 1, 1 1) libspatialite-4.3.0a/test/sql_stmt_geos_tests/union2.testcase0000664000175000017500000000033712544707704021500 00000000000000union - two common points :memory: #use in-memory database SELECT AsText(GUnion(Makepoint(1,2), MakePoint(1,2))); 1 # rows (not including the header row) 1 # columns AsText(GUnion(Makepoint(1,2), MakePoint(1,2))) POINT(1 2)libspatialite-4.3.0a/test/sql_stmt_geos_tests/union9.testcase0000664000175000017500000000043712544707704021510 00000000000000union - POINTZ :memory: #use in-memory database SELECT AsText(GUnion(GeomFromText("POINTZ(1 3 4)"),GeomFromText("POINTZ(2 5 9)"))) 1 # rows (not including the header row) 1 # columns AsText(GUnion(GeomFromText("POINTZ(1 3 4)"),GeomFromText("POINTZ(2 5 9)"))) MULTIPOINT Z(1 3 4, 2 5 9) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_area3.testcase0000664000175000017500000000036012544707704021763 00000000000000ST_Area - Linestring :memory: #use in-memory database SELECT ST_Area(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0)")); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText("LINESTRING(0 0, 0 4, 4 4, 4 0, 0 0)")) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid8.testcase0000664000175000017500000000046212544707704022007 00000000000000HexagonalGrid - Polygon geom - alpha size :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 'alpha'); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/intersection10.testcase0000664000175000017500000000056412544707704023137 00000000000000intersection - POLYGONM, POINTM :memory: #use in-memory database SELECT AsText(Intersection(GeomFromText("POLYGONM((0 0 1, 4 0 1, 4 4 1, 0 4 1, 0 0 1))"), GeomFromText("POINT M(0 3 1)"))) 1 # rows (not including the header row) 1 # columns AsText(Intersection(GeomFromText("POLYGONM((0 0 1, 4 0 1, 4 4 1, 0 4 1, 0 0 1))"), GeomFromText("POINT M(0 3 1)"))) POINT M(0 3 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistancewithin3.testcase0000664000175000017500000000030512544707704023725 00000000000000PtDistWithin - bad first arg :memory: #use in-memory database SELECT PtDistWithin(4, MakePoint(4,4), 2) 1 # rows (not including the header row) 1 # columns PtDistWithin(4, MakePoint(4,4), 2) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/shortestline1.testcase0000664000175000017500000000050012544707704023062 00000000000000ShortestLine - line and point :memory: #use in-memory database SELECT AsText(ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("POINT(0 2)"))) 1 # rows (not including the header row) 1 # columns AsText(ShortestLine(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("POINT(0 2)"))) LINESTRING(0 0, 0 2) libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint12.testcase0000664000175000017500000000047712544707704023164 00000000000000Closest Point - PointZ and line :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("LINESTRING(0 0, 0 10)"), GeomFromText("POINTZ(4 6 4)"))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("LINESTRING(0 0, 0 10)"), GeomFromText("POINTZ(4 6 4)"))) POINT(0 6) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isclosed1.testcase0000664000175000017500000000040712544707704022152 00000000000000isclosed1 :memory: #use in-memory database SELECT IsClosed(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35)")); 1 # rows (not including the header row) 1 # columns IsClosed(GeomFromText("LINESTRING(136 -35, 135.2 -34.5, 136 -35.2, 136 -35)")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/difference2.testcase0000664000175000017500000000035012544707704022435 00000000000000difference - two common points :memory: #use in-memory database SELECT AsText(Difference(Makepoint(1,2), MakePoint(1,2))); 1 # rows (not including the header row) 1 # columns AsText(Difference(Makepoint(1,2), MakePoint(1,2))) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid14.testcase0000664000175000017500000000052212544707704022561 00000000000000TriangularGrid - Polygon geom - zeroblob origin :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, zeroblob(4)); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance4.testcase0000664000175000017500000000032512544707704022141 00000000000000Distance - bad blob second arg :memory: #use in-memory database SELECT Distance(MakePoint(1, 2), zeroblob(100)) 1 # rows (not including the header row) 1 # columns Distance(MakePoint(1, 2), zeroblob(100)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/intersection3.testcase0000664000175000017500000000033312544707704023053 00000000000000intersection - null first point :memory: #use in-memory database SELECT AsText(Intersection(null, MakePoint(2,3))); 1 # rows (not including the header row) 1 # columns AsText(Intersection(null, MakePoint(2,3))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/singlesidedbuffer2.testcase0000664000175000017500000000051312544707704024030 00000000000000singlesidedbuffer - LINESTRING X, int radius, left side :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), 3, 1)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("LINESTRING(0 0, 0 20)"), 3, 1)) POLYGON((0 20, 0 0, -3 0, -3 20, 0 20)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb9.testcase0000664000175000017500000000030312544707704023406 00000000000000BdMPolyFromWKB - point, SRID :memory: #use in-memory database SELECT BdMPolyFromWKB("Point(1 2)", 4); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB("Point(1 2)", 4) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromtext13.testcase0000664000175000017500000000042712544707704023514 00000000000000BdPolyFromText - text SRID :memory: #use in-memory database SELECT BdPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', "not an int"); 1 # rows (not including the header row) 1 # columns BdPolyFromText('MULTILINESTRING((0 0, 1 0, 1 1, 0 1, 0 0))', "not an int") (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb15.testcase0000664000175000017500000000064312544707704023315 00000000000000BdPolyFromWKB :memory: #use in-memory database SELECT AsText(BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')))); 1 # rows (not including the header row) 1 # columns AsText(BdPolyFromWKB(AsBinary(GeomFromText('MULTILINESTRING((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 2 8, 8 8, 8 2, 2 2))')))) POLYGON((0 0, 0 10, 10 10, 10 0, 0 0), (2 2, 8 2, 8 8, 2 8, 2 2)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/singlesidedbuffer14.testcase0000664000175000017500000000054612544707704024121 00000000000000singlesidedbuffer - toxic blob :memory: #use in-memory database SELECT AsText(SingleSidedBuffer(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 3, 0)) 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 3, 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint17.testcase0000664000175000017500000000061212544707704023160 00000000000000Closest Point - polygon with interior and Point :memory: #use in-memory database SELECT AsText(ClosestPoint(MakePoint(4, 6), GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),( 1 1, 3 1, 3 3, 1 3, 1 1))"))) 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(MakePoint(4, 6), GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),( 1 1, 3 1, 3 3, 1 3, 1 1))"))) POINT(4 6) libspatialite-4.3.0a/test/sql_stmt_geos_tests/snap9.testcase0000664000175000017500000000053712544707704021322 00000000000000Snap, LINESTRING, pointM :memory: #use in-memory database SELECT AsText(Snap(GeomFromText("POINTM(0.1 0.2 4)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 0.4)) 1 # rows (not including the header row) 1 # columns AsText(Snap(GeomFromText("POINTM(0.1 0.2 4)"), GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"), 0.4)) POINT M(0 0 0)libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_length6.testcase0000664000175000017500000000025712544707704022344 00000000000000ST_Length - bad blob (error) :memory: #use in-memory database SELECT ST_Length(zeroblob(4)); 1 # rows (not including the header row) 1 # columns ST_Length(zeroblob(4)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_length17.testcase0000664000175000017500000000120012544707704022413 00000000000000ST_Length - GeometryCollection (Long/Lat metric - Ellipsoid) :memory: #use in-memory database SELECT ST_Length(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 1); 1 # rows (not including the header row) 1 # columns ST_Length(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 1) 48935.452049:6 libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid15.testcase0000664000175000017500000000060612544707704022565 00000000000000TriangularGrid - Polygon geom - Linestring origin :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('LINESTRING(0 0, 1 1)')); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('LINESTRING(0 0, 1 1)')) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb3.testcase0000664000175000017500000000025712544707704023410 00000000000000BdMPolyFromWKB - non-text, no SRID :memory: #use in-memory database SELECT BdMPolyFromWKB(26); 1 # rows (not including the header row) 1 # columns BdMPolyFromWKB(26) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/polygonize9.testcase0000664000175000017500000000074112544707704022555 00000000000000POLYGONIZE - polygonz with inner ring :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("MULTILINESTRINGZ((0 0 5, 10 0 6, 10 12 7, 0 12 6, 0 0 5),(1 1 0, 3 1 0, 3 3 4, 1 3 1, 1 1 0))"))) 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("MULTILINESTRINGZ((0 0 5, 10 0 6, 10 12 7, 0 12 6, 0 0 5),(1 1 0, 3 1 0, 3 3 4, 1 3 1, 1 1 0))"))) POLYGON Z((0 0 5, 0 12 6, 10 12 7, 10 0 6, 0 0 5), (1 1 0, 3 1 0, 3 3 4, 1 3 1, 1 1 0)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/symdifference9.testcase0000664000175000017500000000051412544707704023177 00000000000000symdifference - two pointZM :memory: #use in-memory database SELECT AsText(SymDifference(GeomFromText("POINTZM(1 3 6 4)"),GeomFromText("POINTZM(4 2 3 6)"))) 1 # rows (not including the header row) 1 # columns AsText(SymDifference(GeomFromText("POINTZM(1 3 6 4)"),GeomFromText("POINTZM(4 2 3 6)"))) MULTIPOINT ZM(1 3 6 0, 4 2 3 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths19.testcase0000664000175000017500000000110012544707704022733 00000000000000shared paths - two polygonZ, internal ring :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGONZ((0 0 2, 10 0 12, 10 10 12, 0 10 2, 0 0 2),(1 1 3, 3 1 5, 3 3 5, 1 3 3, 1 1 3))"),GeomFromText("POLYGONZ((5 0 7, 15 0 17, 15 10 17, 5 10 7, 5 0 7))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGONZ((0 0 2, 10 0 12, 10 10 12, 0 10 2, 0 0 2),(1 1 3, 3 1 5, 3 3 5, 1 3 3, 1 1 3))"),GeomFromText("POLYGONZ((5 0 7, 15 0 17, 15 10 17, 5 10 7, 5 0 7))"))) MULTILINESTRING Z((5 0 7, 10 0 12), (10 10 12, 5 10 7))libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromtext12.testcase0000664000175000017500000000050512544707704023510 00000000000000BdPolyFromText - toxic, SRID :memory: #use in-memory database SELECT BdPolyFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))", 4326); 1 # rows (not including the header row) 1 # columns BdPolyFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))", 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdmpolyfromwkb12.testcase0000664000175000017500000000056512544707704023472 00000000000000BdMpolyFromWKB - toxic, SRID :memory: #use in-memory database SELECT BdMpolyFromWKB(AsBinary(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))", 4326))); 1 # rows (not including the header row) 1 # columns BdMpolyFromWKB(AsBinary(GeomFromText("MULTILINESTRING((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))", 4326))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/createtopo9.testcase0000664000175000017500000000033312544707704022520 00000000000000CreateTopology - 3 arguments, 0 SRID (error) :memory: #use in-memory database SELECT CreateTopologyTables("my_prefix", 0, 3); 1 # rows (not including the header row) 1 # columns CreateTopologyTables("my_prefix", 0, 3) 0libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance_geogr8.testcase0000664000175000017500000000050612544707704023331 00000000000000Distance Long/Lat metric (ellipsoid) - two 3D-M points :memory: #use in-memory database SELECT ST_Distance(MakePointZM(11.1, 42.1, 0.1, 1), MakePointZM(11.2, 42.2, 0.2, 2), 1); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePointZM(11.1, 42.1, 0.1, 1), MakePointZM(11.2, 42.2, 0.2, 2), 1) 13845.545374:6 libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_area9.testcase0000664000175000017500000000036112544707704021772 00000000000000ST_Area - Toxic Polygon :memory: #use in-memory database SELECT ST_Area(GeomFromText('POLYGON((0 0, 0 0, 0 4, 4 0, 0 0))')); 1 # rows (not including the header row) 1 # columns ST_Area(GeomFromText('POLYGON((0 0, 0 0, 0 4, 4 0, 0 0))')) 8.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/st_perimeter18.testcase0000664000175000017500000000122612544707704023137 00000000000000ST_Perimeter - GeometryCollection (Long/Lat metric - text use_ellipsoid) :memory: #use in-memory database SELECT ST_Perimeter(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 'alpha'); 1 # rows (not including the header row) 1 # columns ST_Perimeter(GeomFromText("GEOMETRYCOLLECTION(POINT(0.1 0.1), LINESTRING(0.7 0.7, 0.7 0.8, 0.8 0.8, 0.8 0.7, 0.7 0.8), POLYGON((0.5 0.5, 0.5 0.6, 0.6 0.6, 0.6 0.5, 0.5 0.5),(0.55 0.55, 0.56 0.55, 0.56 0.56, 0.56 0.56, 0.055 0.55)))"), 'alpha') (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolatepoint10.testcase0000664000175000017500000000044412544707704024026 00000000000000interpolate point - wrong geometry type :memory: #use in-memory database SELECT Line_Interpolate_Point(GeomFromText("POLYGON((0 0, 10 6, 10 0, 0 0))"), 0.6) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Point(GeomFromText("POLYGON((0 0, 10 6, 10 0, 0 0))"), 0.6) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolatepoint7.testcase0000664000175000017500000000031112544707704023745 00000000000000interpolate point - non-blob :memory: #use in-memory database SELECT Line_Interpolate_Point("hello", 0.5) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Point("hello", 0.5) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/intersection4.testcase0000664000175000017500000000033412544707704023055 00000000000000intersection - null second point :memory: #use in-memory database SELECT AsText(Intersection(MakePoint(2,3), null)); 1 # rows (not including the header row) 1 # columns AsText(Intersection(MakePoint(2,3), null)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/singlesidedbuffer5.testcase0000664000175000017500000000037112544707704024035 00000000000000singlesidedbuffer - text arg, float radius, right side (error) :memory: #use in-memory database SELECT AsText(SingleSidedBuffer("hello", 3.5, 0)); 1 # rows (not including the header row) 1 # columns AsText(SingleSidedBuffer("hello", 3.5, 0)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/offsetcurve11.testcase0000664000175000017500000000050312544707704022756 00000000000000OffsetCurve - multilinestring, 2 linestring :memory: #use in-memory database SELECT AsText(OffsetCurve(GeomFromText('MULTILINESTRING((0 0, 0 1, 4 1, 4 0),(4 1, 3 2))'), 1)) 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(GeomFromText('MULTILINESTRING((0 0, 0 1, 4 1, 4 0),(4 1, 3 2))'), 1)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/boundary1.testcase0000664000175000017500000000031512544707704022166 00000000000000Boundary - Point :memory: #use in-memory database SELECT AsText(Boundary(GeomFromText("POINT(1 2)"))) 1 # rows (not including the header row) 1 # columns AsText(Boundary(GeomFromText("POINT(1 2)"))) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid15.testcase0000664000175000017500000000060312544707704022062 00000000000000HexagonalGrid - Polygon geom - Linestring origin :memory: #use in-memory database SELECT HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('LINESTRING(0 0, 1 1)')); 1 # rows (not including the header row) 1 # columns HexagonalGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 1.0, 0, GeomFromText('LINESTRING(0 0, 1 1)')) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/issimple4.testcase0000664000175000017500000000023012544707704022167 00000000000000issimple4 :memory: #use in-memory database SELECT IsSimple(zeroblob(10)); 1 # rows (not including the header row) 1 # columns IsSimple(zeroblob(10)) -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/simplify16.testcase0000664000175000017500000000046312544707704022271 00000000000000SimplifyPreserveTopology - toxic first arg :memory: #use in-memory database SELECT AsText(SimplifyPreserveTopology(GeomFromText('LINESTRING(1 1, 1 1)'),0.1)) 1 # rows (not including the header row) 1 # columns AsText(SimplifyPreserveTopology(GeomFromText('LINESTRING(1 1, 1 1)'),0.1)) LINESTRING(1 1, 1 1) libspatialite-4.3.0a/test/sql_stmt_geos_tests/makearc23.testcase0000664000175000017500000000036512544707704022037 00000000000000makearc23 - valid step :memory: #use in-memory database SELECT ST_Length(MakeArc(0.0, 0.0, 100.0, 30.0, 60.0, 4326, 1.0)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeArc(0.0, 0.0, 100.0, 30.0, 60.0, 4326, 1.0)) 52.3592:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance_geogr7.testcase0000664000175000017500000000046612544707704023335 00000000000000Distance Long/Lat metric (ellipsoid) - two 2D-M points :memory: #use in-memory database SELECT ST_Distance(MakePointM(11.1, 42.1, 0.1), MakePointM(11.2, 42.2, 0.2), 1); 1 # rows (not including the header row) 1 # columns ST_Distance(MakePointM(11.1, 42.1, 0.1), MakePointM(11.2, 42.2, 0.2), 1) 13845.545374:6 libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolateequidistantpoint1.testcase0000664000175000017500000000150012544707704026213 00000000000000interpolate equidistant points - basic line :memory: #use in-memory database SELECT AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), 0.5)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Equidistant_Points(GeomFromText("LINESTRING(0 0, 10 6)"), 0.5)) MULTIPOINT M(0.428746 0.257248 0.5, 0.857493 0.514496 1, 1.286239 0.771744 1.5, 1.714986 1.028992 2, 2.143732 1.286239 2.5, 2.572479 1.543487 3, 3.001225 1.800735 3.5, 3.429972 2.057983 4, 3.858718 2.315231 4.5, 4.287465 2.572479 5, 4.716211 2.829727 5.5, 5.144958 3.086975 6, 5.573704 3.344222 6.5, 6.00245 3.60147 7, 6.431197 3.858718 7.5, 6.859943 4.115966 8, 7.28869 4.373214 8.5, 7.717436 4.630462 9, 8.146183 4.88771 9.5, 8.574929 5.144958 10, 9.003676 5.402205 10.5, 9.432422 5.659453 11, 9.861169 5.916701 11.5) libspatialite-4.3.0a/test/sql_stmt_geos_tests/relate8.testcase0000664000175000017500000000045512544707704021633 00000000000000Relate - toxic first arg :memory: #use in-memory database SELECT Relate(geom1, geom2, "T*T***T**") FROM (SELECT GeomFromText('LINESTRING(1 1, 1 1)') as geom1, GeomFromText("LINESTRING(1 1, 2 2)") as geom2) dummy; 1 # rows (not including the header row) 1 # columns Relate(geom1, geom2, "T*T***T**") 0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid18.testcase0000664000175000017500000000044012544707704022600 00000000000000SquareGrid - Polygon geom - zero size :memory: #use in-memory database SELECT SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 0.0); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('POLYGON((3 3, 3 4, 4 4, 4 3, 3 3))', 4326), 0.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/locatepoint10.testcase0000664000175000017500000000052512544707704022747 00000000000000locate point - NULL first arg :memory: #use in-memory database SELECT Line_Locate_Point(NULL, GeomFromText("GeometryCollection(POINT(0 1),LINESTRING(0 0, 10 0, 10 10, 0 0))")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(NULL, GeomFromText("GeometryCollection(POINT(0 1),LINESTRING(0 0, 10 0, 10 10, 0 0))")) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance8.testcase0000664000175000017500000000045312544707704022147 00000000000000Distance - intersecting lines :memory: #use in-memory database SELECT Distance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 1 # rows (not including the header row) 1 # columns Distance(GeomFromText("LINESTRING(0 0, 10 0)"), GeomFromText("LINESTRING(0 0, 0 5)")) 0.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/makeellipticsector18.testcase0000664000175000017500000000036012544707704024316 00000000000000makeellipticsector18 - valid :memory: #use in-memory database SELECT ST_Area(MakeEllipticSector(0, 0, 100, 200, 30, 60)); 1 # rows (not including the header row) 1 # columns ST_Area(MakeEllipticSector(0, 0, 100, 200, 30, 60)) 5209.4453:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/ptdistwithin10.testcase0000664000175000017500000000033712544707704023161 00000000000000PtDistWithin invalid arg: zeroblob pt2 :memory: SELECT PtDistWithin(GeomFromText("POINT(5 5)", 4326), zeroblob(25), 10.0, 1); 1 # rows 1 # column PtDistWithin(GeomFromText("POINT(5 5)", 4326), zeroblob(25), 10.0, 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/hausdorffdistance2.testcase0000664000175000017500000000043312544707704024041 00000000000000HausdorffDistance - bad blob first arg :memory: #use in-memory database SELECT HausdorffDistance(zeroblob(100), GeomFromText("LINESTRING(0 2, 10 2)")) 1 # rows (not including the header row) 1 # columns HausdorffDistance(zeroblob(100), GeomFromText("LINESTRING(0 2, 10 2)")) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb14.testcase0000664000175000017500000000036612544707704023316 00000000000000BdPolyFromWKB - point, SRID :memory: #use in-memory database SELECT BdPolyFromWKB(AsBinary(GeomFromText("Point(1,2)")), 4326); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(AsBinary(GeomFromText("Point(1,2)")), 4326) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalid15.testcase0000664000175000017500000000057012544707704022066 00000000000000isvalid Geometry Collection of two polygons :memory: #use in-memory database SELECT IsValid(GeomFromText("GEOMETRYCOLLECTION(POLYGON((0 0, 10 0, 10 10, 0 10, 0 0)),POLYGON((1 1, 4 1, 4 4, 1 4, 1 1)))")) 1 # rows (not including the header row) 1 # columns IsValid(GeomFromText("GEOMETRYCOLLECTION(POLYGON((0 0, 10 0, 10 10, 0 10, 0 0)),POLYGON((1 1, 4 1, 4 4, 1 4, 1 1)))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolatepoint9.testcase0000664000175000017500000000037412544707704023760 00000000000000interpolate point - wrong geometry type :memory: #use in-memory database SELECT Line_Interpolate_Point(GeomFromText("POINT(10 6)"), 0.6) 1 # rows (not including the header row) 1 # columns Line_Interpolate_Point(GeomFromText("POINT(10 6)"), 0.6) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/hexgrid1.testcase0000664000175000017500000000026212544707704021776 00000000000000HexagonalGrid - NULL geom :memory: #use in-memory database SELECT HexagonalGrid(NULL, 1.0); 1 # rows (not including the header row) 1 # columns HexagonalGrid(NULL, 1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/buffer5.testcase0000664000175000017500000000023412544707704021620 00000000000000buffer5 :memory: #use in-memory database SELECT Buffer(zeroblob(40), 1); 1 # rows (not including the header row) 1 # columns Buffer(zeroblob(40), 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths30.testcase0000664000175000017500000000117312544707704022736 00000000000000shared paths - multilineZM - prepend :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("MULTILINESTRINGZM((5 0 10 0, 15 0 30 0),(5 0 10 0, 5 5 10 0))"),GeomFromText("MULTILINESTRINGZM((0 0 0 0, 4 0 8 0, 6 0 12 0, 10 0 20 0),(11 0 22 0, 5 0 10 0),(5 0 10 0, 5 5 10 0))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("MULTILINESTRINGZM((5 0 10 0, 15 0 30 0),(5 0 10 0, 5 5 10 0))"),GeomFromText("MULTILINESTRINGZM((0 0 0 0, 4 0 8 0, 6 0 12 0, 10 0 20 0),(11 0 22 0, 5 0 10 0),(5 0 10 0, 5 5 10 0))"))) MULTILINESTRING ZM((5 5 10 0, 5 0 10 0, 6 0 12 0, 10 0 20 0, 11 0 22 0))libspatialite-4.3.0a/test/sql_stmt_geos_tests/makeellipticsector22.testcase0000664000175000017500000000040012544707704024304 00000000000000makeellipticsector22 - WGS84 sid :memory: #use in-memory database SELECT ST_Area(MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326)); 1 # rows (not including the header row) 1 # columns ST_Area(MakeEllipticSector(0, 0, 100, 200, 30, 60, 4326)) 5209.4453:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes14.testcase0000664000175000017500000000054612544707704022600 00000000000000LinesCutAtNodes - point first arg :memory: #use in-memory database SELECT LinesCutAtNodes(GeomFromText("MULTIPOINT(0 0, 0 10, 10 10, 10 0, 0 0)"),GeomFromText("MULTIPOINT(0 10, 10 10)")) 1 # rows (not including the header row) 1 # columns LinesCutAtNodes(GeomFromText("MULTIPOINT(0 0, 0 10, 10 10, 10 0, 0 0)"),GeomFromText("MULTIPOINT(0 10, 10 10)")) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/bdpolyfromwkb18.testcase0000664000175000017500000000031612544707704023315 00000000000000BdPolyFromWKB - zeroblob, invalid SRID :memory: #use in-memory database SELECT BdPolyFromWKB(zeroblob(25), 'a'); 1 # rows (not including the header row) 1 # columns BdPolyFromWKB(zeroblob(25), 'a') (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/polygonize12.testcase0000664000175000017500000000040712544707704022626 00000000000000POLYGONIZE - already Polygon :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("POLYGON((0 0, 1 1, 0 2, 0 0))"))) 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("POLYGON((0 0, 1 1, 0 2, 0 0))"))) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint15.testcase0000664000175000017500000000060312544707704023156 00000000000000Closest Point - toxic geom :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(130, -35))) 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), MakePoint(130, -35))) POINT(135.2 -34.5) libspatialite-4.3.0a/test/sql_stmt_geos_tests/buffer6.testcase0000664000175000017500000000027412544707704021625 00000000000000buffer6 :memory: #use in-memory database SELECT Buffer(GeomFromText("LINESTRING()"), 1); 1 # rows (not including the header row) 1 # columns Buffer(GeomFromText("LINESTRING()"), 1) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/makecircle14.testcase0000664000175000017500000000032112544707704022523 00000000000000makecircle14 - WGS84 srid :memory: #use in-memory database SELECT ST_Length(MakeCircle(0, 0, 100, 4326)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeCircle(0, 0, 100, 4326)) 627.5213:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/isclosed4.testcase0000664000175000017500000000023012544707704022147 00000000000000isclosed4 :memory: #use in-memory database SELECT IsClosed(zeroblob(10)); 1 # rows (not including the header row) 1 # columns IsClosed(zeroblob(10)) -1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/isring5.testcase0000664000175000017500000000040212544707704021637 00000000000000isring1 - LINESTRINGZ :memory: #use in-memory database SELECT IsRing(GeomFromText("LINESTRINGZ(1 1 3, 2 1 4, 2 2 5, 1 2 4, 1 1 3)")) 1 # rows (not including the header row) 1 # columns IsRing(GeomFromText("LINESTRINGZ(1 1 3, 2 1 4, 2 2 5, 1 2 4, 1 1 3)")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/issimple1.testcase0000664000175000017500000000040512544707704022170 00000000000000issimple1 :memory: #use in-memory database SELECT IsSimple(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")); 1 # rows (not including the header row) 1 # columns IsSimple(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35))")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid23.testcase0000664000175000017500000000066312544707704022567 00000000000000TriangularGrid - valid - with Origin, edges_only :memory: #use in-memory database SELECT ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)'))); 1 # rows (not including the header row) 1 # columns ST_Length(TriangularGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)'))) 18.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesnodes9.testcase0000664000175000017500000000066112544707704022522 00000000000000LinesCutAtNodes - closed linestring, nodes :memory: #use in-memory database SELECT AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"),GeomFromText("MULTIPOINT(0 10, 10 10)"))) 1 # rows (not including the header row) 1 # columns AsText(LinesCutAtNodes(GeomFromText("LINESTRING(0 0, 0 10, 10 10, 10 0, 0 0)"),GeomFromText("MULTIPOINT(0 10, 10 10)"))) MULTILINESTRING((10 10, 10 0, 0 0, 0 10), (0 10, 10 10))libspatialite-4.3.0a/test/sql_stmt_geos_tests/buffer7.testcase0000664000175000017500000001201112544707704021616 00000000000000buffer7 :memory: #use in-memory database SELECT AsText(ST_ForceLHR(Buffer(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 1))); 1 # rows (not including the header row) 1 # columns AsText(ST_ForceLHR(Buffer(GeomFromText("POLYGON((136 -35, 135.2 -34.5, 136 -35.2, 136 -35, 135.2 -34.5))"), 1))) POLYGON((136.529999 -34.152002, 136.529999 -34.152002, 136.574402 -34.181426, 136.617174 -34.213174, 136.658196 -34.247153, 136.69735 -34.283269, 136.734525 -34.321419, 136.769617 -34.361494, 136.802524 -34.40338, 136.833155 -34.44696, 136.861421 -34.492109, 136.887243 -34.538698, 136.910548 -34.586597, 136.931269 -34.635669, 136.949348 -34.685774, 136.964733 -34.736771, 136.977381 -34.788515, 136.987256 -34.840859, 136.994329 -34.893654, 136.998581 -34.946752, 137 -35, 137 -35.2, 136.998646 -35.252013, 136.994589 -35.303886, 136.987839 -35.355478, 136.978415 -35.406648, 136.966342 -35.457259, 136.951653 -35.507174, 136.934388 -35.556257, 136.914593 -35.604375, 136.892322 -35.651399, 136.867635 -35.697201, 136.8406 -35.741657, 136.811289 -35.784646, 136.779781 -35.826052, 136.746162 -35.865764, 136.710524 -35.903673, 136.672961 -35.939678, 136.633577 -35.97368, 136.592478 -36.005587, 136.549774 -36.035313, 136.505583 -36.062778, 136.460022 -36.087907, 136.413216 -36.110633, 136.365292 -36.130893, 136.316378 -36.148633, 136.266608 -36.163805, 136.216117 -36.176368, 136.16504 -36.186287, 136.113516 -36.193536, 136.061685 -36.198096, 136.009687 -36.199953, 135.957663 -36.199103, 135.905754 -36.195549, 135.854099 -36.189299, 135.80284 -36.180371, 135.752114 -36.168789, 135.70206 -36.154584, 135.652812 -36.137795, 135.604504 -36.118468, 135.557266 -36.096653, 135.511228 -36.072411, 135.466512 -36.045808, 135.423241 -36.016914, 135.381531 -35.985809, 135.341495 -35.952577, 134.541495 -35.252577, 134.503051 -35.21712, 134.466512 -35.179703, 134.43198 -35.140426, 134.399548 -35.099397, 134.369306 -35.056729, 134.341336 -35.012539, 134.315714 -34.966946, 134.292511 -34.920076, 134.27179 -34.872058, 134.253608 -34.823021, 134.238015 -34.773102, 134.225052 -34.722435, 134.214757 -34.67116, 134.207156 -34.619416, 134.20227 -34.567346, 134.200114 -34.515092, 134.200692 -34.462797, 134.204004 -34.410603, 134.21004 -34.358654, 134.218783 -34.307091, 134.230211 -34.256056, 134.24429 -34.205689, 134.260984 -34.156126, 134.280246 -34.107504, 134.302024 -34.059955, 134.326258 -34.01361, 134.352882 -33.968595, 134.381823 -33.925034, 134.413001 -33.883046, 134.446332 -33.842744, 134.481725 -33.804241, 134.519082 -33.76764, 134.558301 -33.733043, 134.599276 -33.700543, 134.641894 -33.670231, 134.686038 -33.642187, 134.731588 -33.61649, 134.778419 -33.593209, 134.826403 -33.572409, 134.875409 -33.554145, 134.925303 -33.538469, 134.975949 -33.525423, 135.027207 -33.515042, 135.078937 -33.507355, 135.130999 -33.502383, 135.18325 -33.50014, 135.235546 -33.500632, 135.287745 -33.503857, 135.339704 -33.509807, 135.391281 -33.518465, 135.442335 -33.529807, 135.492726 -33.543804, 135.542316 -33.560415, 135.59097 -33.579597, 135.638555 -33.601296, 135.68494 -33.625453, 135.729999 -33.652002, 136.529999 -34.152002, 136.529999 -34.152002), (135.132863 -35.497419, 135.165007 -35.499388, 135.217358 -35.499849, 135.269663 -35.497571, 135.321776 -35.492558, 135.373556 -35.484824, 135.42486 -35.474391, 135.475547 -35.461288, 135.525479 -35.445549, 135.574519 -35.427219, 135.622533 -35.406347, 135.669389 -35.382992, 135.714958 -35.357216, 135.759115 -35.32909, 135.80174 -35.298692, 135.842716 -35.266105, 135.88193 -35.231418, 135.919275 -35.194726, 135.954648 -35.15613, 135.987953 -35.115736, 136.019098 -35.073653, 136.047998 -35.029999, 136.074574 -34.984892, 136.098753 -34.938456, 136.120468 -34.890818, 136.13966 -34.842108, 136.156277 -34.792462, 136.170273 -34.742013, 136.181609 -34.690901, 136.190255 -34.639266, 136.196187 -34.587249, 136.199388 -34.534993, 136.199849 -34.482642, 136.197571 -34.430337, 136.192558 -34.378224, 136.184824 -34.326444, 136.174391 -34.27514, 136.161288 -34.224453, 136.145549 -34.174521, 136.127219 -34.125481, 136.106347 -34.077467, 136.082992 -34.030611, 136.067137 -34.002581, 136.034993 -34.000612, 135.982642 -34.000151, 135.930337 -34.002429, 135.878224 -34.007442, 135.826444 -34.015176, 135.77514 -34.025609, 135.724453 -34.038712, 135.674521 -34.054451, 135.625481 -34.072781, 135.577467 -34.093653, 135.530611 -34.117008, 135.485042 -34.142784, 135.440885 -34.17091, 135.39826 -34.201308, 135.357284 -34.233895, 135.31807 -34.268582, 135.280725 -34.305274, 135.245352 -34.34387, 135.212047 -34.384264, 135.180902 -34.426347, 135.152002 -34.470001, 135.125426 -34.515108, 135.101247 -34.561544, 135.079532 -34.609182, 135.06034 -34.657892, 135.043723 -34.707538, 135.029727 -34.757987, 135.018391 -34.809099, 135.009745 -34.860734, 135.003813 -34.912751, 135.000612 -34.965007, 135.000151 -35.017358, 135.002429 -35.069663, 135.007442 -35.121776, 135.015176 -35.173556, 135.025609 -35.22486, 135.038712 -35.275547, 135.054451 -35.325479, 135.072781 -35.374519, 135.093653 -35.422533, 135.117008 -35.469389, 135.132863 -35.497419)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/polygonize14.testcase0000664000175000017500000000055112544707704022630 00000000000000POLYGONIZE - toxic geometry :memory: #use in-memory database SELECT AsText(Polygonize(GeomFromText("MULTILINESTRING((0 0, 1 1, 0 2, -1 1), (4 0, 4 0), (-1 1, 0 0))"))); 1 # rows (not including the header row) 1 # columns AsText(Polygonize(GeomFromText("MULTILINESTRING((0 0, 1 1, 0 2, -1 1), (4 0, 4 0), (-1 1, 0 0))"))) POLYGON((-1 1, 0 2, 1 1, 0 0, -1 1)) libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid23.testcase0000664000175000017500000000064712544707704022605 00000000000000SquareGrid - valid - with Origin, only_edges :memory: #use in-memory database SELECT ST_Length(SquareGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)'))); 1 # rows (not including the header row) 1 # columns ST_Length(SquareGrid(GeomFromText('POLYGON((0.2 0.2, 2.2 0.2, 2.2 1.2, 0.2 1.2, 0.2 0.2))', 4326), 1.0, 1, GeomFromText('POINT(0.1 0.1)'))) 17.0 libspatialite-4.3.0a/test/sql_stmt_geos_tests/makeellipse21.testcase0000664000175000017500000000037012544707704022721 00000000000000makeellipse21 - valid step :memory: #use in-memory database SELECT ST_Length(MakeEllipse(0.0, 0.0, 100.0, 200.0, 4326, 1.0)); 1 # rows (not including the header row) 1 # columns ST_Length(MakeEllipse(0.0, 0.0, 100.0, 200.0, 4326, 1.0)) 968.8325:4 libspatialite-4.3.0a/test/sql_stmt_geos_tests/boundary6.testcase0000664000175000017500000000044112544707704022173 00000000000000Boundary - open linestringZ :memory: #use in-memory database SELECT AsText(Boundary(GeomFromText("LINESTRINGZ(1 2 3, 4 -3 6, 2 -1 -4)"))) 1 # rows (not including the header row) 1 # columns AsText(Boundary(GeomFromText("LINESTRINGZ(1 2 3, 4 -3 6, 2 -1 -4)"))) MULTIPOINT Z(1 2 3, 2 -1 -4) libspatialite-4.3.0a/test/sql_stmt_geos_tests/locatepoint1.testcase0000664000175000017500000000044312544707704022666 00000000000000locate point - basic line :memory: #use in-memory database SELECT Line_Locate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), GeomFromText("POINT(5 3)")) 1 # rows (not including the header row) 1 # columns Line_Locate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), GeomFromText("POINT(5 3)")) 0.5libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths7.testcase0000664000175000017500000000045412544707704022663 00000000000000shared paths - line and point :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("LINESTRING(0 0, 1 0)"),GeomFromText("POINT(15 0)"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("LINESTRING(0 0, 1 0)"),GeomFromText("POINT(15 0)"))) (NULL)libspatialite-4.3.0a/test/sql_stmt_geos_tests/squaregrid6.testcase0000664000175000017500000000060212544707704022515 00000000000000SquareGrid - Collection (Linestring - Polygon) geom :memory: #use in-memory database SELECT SquareGrid(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 2 2), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0); 1 # rows (not including the header row) 1 # columns SquareGrid(GeomFromText('GEOMETRYCOLLECTION(LINESTRING(1 1, 2 2), POLYGON((3 3, 3 4, 4 4, 4 3, 3 3)))', 4326), 1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint10.testcase0000664000175000017500000000044212544707704023152 00000000000000Closest Point - Point and line :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("LINESTRING(0 0, 0 10)"), MakePoint(4, 6))); 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("LINESTRING(0 0, 0 10)"), MakePoint(4, 6))) POINT(0 6) libspatialite-4.3.0a/test/sql_stmt_geos_tests/offsetcurve3.testcase0000664000175000017500000000026412544707704022703 00000000000000OffsetCurve - null :memory: #use in-memory database SELECT AsText(OffsetCurve(null, 1)); 1 # rows (not including the header row) 1 # columns AsText(OffsetCurve(null, 1)) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/closestpoint20.testcase0000664000175000017500000000101112544707704023144 00000000000000Closest Point - polygonZM with interior and Point :memory: #use in-memory database SELECT AsText(ClosestPoint(GeomFromText("POINTZM(4 6 1 3)"), GeomFromText("POLYGONZM((0 0 1 3, 10 0 2 3, 10 10 3 3, 0 10 2 3, 0 0 1 3),( 1 1 4 1, 3 1 5 1, 3 3 6 1, 1 3 5 2, 1 1 4 1))"))) 1 # rows (not including the header row) 1 # columns AsText(ClosestPoint(GeomFromText("POINTZM(4 6 1 3)"), GeomFromText("POLYGONZM((0 0 1 3, 10 0 2 3, 10 10 3 3, 0 10 2 3, 0 0 1 3),( 1 1 4 1, 3 1 5 1, 3 3 6 1, 1 3 5 2, 1 1 4 1))"))) POINT ZM(4 6 1 0) libspatialite-4.3.0a/test/sql_stmt_geos_tests/isring7.testcase0000664000175000017500000000043112544707704021643 00000000000000isring1 - LINESTRINGZM :memory: #use in-memory database SELECT IsRing(GeomFromText("LINESTRINGZM(1 1 3 4, 2 1 4 9, 2 2 5 4, 1 2 4 3, 1 1 3 1)")) 1 # rows (not including the header row) 1 # columns IsRing(GeomFromText("LINESTRINGZM(1 1 3 4, 2 1 4 9, 2 2 5 4, 1 2 4 3, 1 1 3 1)")) 1 libspatialite-4.3.0a/test/sql_stmt_geos_tests/isvalidreason1.testcase0000664000175000017500000000027312544707704023211 00000000000000isvalidreason1 :memory: #use in-memory database SELECT IsValidReason(zeroblob(10)); 1 # rows (not including the header row) 1 # columns IsValidReason(zeroblob(10)) Invalid: NULL Geometry libspatialite-4.3.0a/test/sql_stmt_geos_tests/interpolatepoint3.testcase0000664000175000017500000000044212544707704023746 00000000000000interpolate point - basic line, endpoint :memory: #use in-memory database SELECT AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), 1)) 1 # rows (not including the header row) 1 # columns AsText(Line_Interpolate_Point(GeomFromText("LINESTRING(0 0, 10 6)"), 1)) POINT(10 6)libspatialite-4.3.0a/test/sql_stmt_geos_tests/distance_geogr9.testcase0000664000175000017500000000074512544707704023337 00000000000000Distance Long/Lat metric (great circle) - Linestring/Polygon :memory: #use in-memory database SELECT ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), GeomFromText('POLYGON((11.3 42.3, 11.4 42.3, 11.4 42.4, 11.3 42.4, 11.3 42.3))'), 0); 1 # rows (not including the header row) 1 # columns ST_Distance(GeomFromText('LINESTRING(11.1 42.1, 11.2 42.2, 11.2 43.3)'), GeomFromText('POLYGON((11.3 42.3, 11.4 42.3, 11.4 42.4, 11.3 42.4, 11.3 42.3))'), 0) 8211.259574:6 libspatialite-4.3.0a/test/sql_stmt_geos_tests/trianggrid4.testcase0000664000175000017500000000040712544707704022502 00000000000000TriangularGrid - Linestring geom :memory: #use in-memory database SELECT TriangularGrid(GeomFromText('LINESTRING(1 1, 2 2)', 4326), 1.0); 1 # rows (not including the header row) 1 # columns TriangularGrid(GeomFromText('LINESTRING(1 1, 2 2)', 4326), 1.0) (NULL) libspatialite-4.3.0a/test/sql_stmt_geos_tests/sharedpaths17.testcase0000664000175000017500000000070212544707704022740 00000000000000shared paths - two polygon - different overlap :memory: #use in-memory database SELECT AsText(SharedPaths(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))"),GeomFromText("POLYGON((-5 0, 15 0, 15 10, -5 10, -5 0))"))) 1 # rows (not including the header row) 1 # columns AsText(SharedPaths(GeomFromText("POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))"),GeomFromText("POLYGON((-5 0, 15 0, 15 10, -5 10, -5 0))"))) MULTILINESTRING((0 0, 10 0), (10 10, 0 10))libspatialite-4.3.0a/test/sql_stmt_geos_tests/linesubstring20.testcase0000664000175000017500000000047312544707704023321 00000000000000linesubstring - using both segments :memory: #use in-memory database SELECT AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0, 10 10)"), 0.2, 0.8)) 1 # rows (not including the header row) 1 # columns AsText(Line_Substring(GeomFromText("LINESTRING(0 0, 10 0, 10 10)"), 0.2, 0.8)) LINESTRING(4 0, 10 0, 10 6) libspatialite-4.3.0a/test/check_gpkg_base_core_contents_data_table_def.c0000664000175000017500000002433112544707704023552 00000000000000/* check_gpkg_base_core_contents_data_table_def - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #define __USE_GNU #include #include "sqlite3.h" #include "spatialite.h" #include "test_helpers.h" struct tableDefinitionElement { const char *column_name; const char *column_type; bool mayBeNull; const char *defaultValue; const char *keySignature; bool wasFound; }; struct tableDefinitionElement tableValues[] = { {"table_name", "TEXT", false, NULL, "PRIMARY KEY", false}, {"data_type", "TEXT", false, NULL, NULL, false}, {"identifier", "TEXT", true, NULL, NULL, false}, {"description", "TEXT", true, "''", NULL, false}, {"min_x", "DOUBLE", true, NULL, NULL, false}, {"min_y", "DOUBLE", true, NULL, NULL, false}, {"max_x", "DOUBLE", true, NULL, NULL, false}, {"max_y", "DOUBLE", true, NULL, NULL, false}, {"srs_id", "INTEGER", true, NULL, NULL, false}, {NULL, NULL, false, NULL, NULL, false} }; int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char *sql_statement; sqlite3_stmt *stmt; void *cache = spatialite_alloc_connection (); int i, j; char *sql; char *str; char *token; char *saveptr; bool valid_last_change = false; bool valid_fk_constraint = false; ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_gpkg_base_core_spatial_ref_sys_data_table_def.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } /* / Test Case ID /base/core/contents/data/table_def / Test Purpose Verify that the gpkg_contents table exists and has the correct definition. / Test Method / SELECT sql FROM sqlite_master WHERE type = table AND tbl_name = gpkg_contents / Fail if returns an empty result set. / Pass if the column names and column definitions in the returned CREATE TABLE statement, / including data type, nullability, default values and primary, foreign and unique key / constraints match all of those in the contents of C.2 Table 18. Column order, check / constraint and trigger definitions, and other column definitions in the returned sql / are irrelevant. / Fail Otherwise / Reference Clause 1.1.3.1.1 Req 13: / Test Type Basic */ sql_statement = "SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'gpkg_contents'"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "failed to prepare SQL SELECT statement: %i (%s)\n", ret, sqlite3_errmsg (db_handle)); return -10; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf (stderr, "unexpected return value for first step: %i (%s)\n", ret, sqlite3_errmsg (db_handle)); return -11; } if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) { fprintf (stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -12; } sql = strdup (strstr ((const char *) sqlite3_column_text (stmt, 0), "(") + strlen ("(")); if (!sql) { fprintf (stderr, "unrecognised format for SQL\n"); return -13; } for (j = 1, str = sql;; j++, str = NULL) { token = strtok_r (str, ",", &saveptr); if (token == NULL) { break; } for (i = 0; tableValues[i].column_name != NULL; ++i) { while (isspace (*token)) { token++; } if (strncasecmp (token, "CONSTRAINT", strlen ("CONSTRAINT")) == 0) { if (strcasestr (token, "FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys(srs_id)")) { valid_fk_constraint = true; } continue; } if (strcasestr (token, tableValues[i].column_name)) { if (!strcasestr (token, tableValues[i].column_type)) { fprintf (stderr, "missing COLUMN TYPE %s for %s: %s\n", tableValues[i].column_type, tableValues[i].column_name, token); return -20; } if (tableValues[i].mayBeNull && strcasestr (token, "NOT NULL")) { fprintf (stderr, "Unexpected NOT NULL constraint for %s: %s\n", tableValues[i].column_name, token); return -21; } if ((!tableValues[i].mayBeNull) && (!strcasestr (token, "NOT NULL"))) { fprintf (stderr, "Missing NOT NULL constraint for %s: %s\n", tableValues[i].column_name, token); return -22; } if ((tableValues[i].keySignature != NULL) && (!strcasestr (token, tableValues[i].keySignature))) { fprintf (stderr, "Missing %s constraint for %s: %s\n", tableValues[i].keySignature, tableValues[i].column_name, token); return -23; } if ((tableValues[i].keySignature == NULL) && (strcasestr (token, "KEY"))) { fprintf (stderr, "Unexpected key constraint for %s: %s\n", tableValues[i].column_name, token); return -24; } if ((tableValues[i].defaultValue == NULL) && (strcasestr (token, "DEFAULT"))) { fprintf (stderr, "Unexpected default value for %s: %s\n", tableValues[i].column_name, token); return -25; } if ((tableValues[i].defaultValue != NULL) && (!strcasestr (token, tableValues[i].defaultValue))) { fprintf (stderr, "Missing default value for %s: %s\n", tableValues[i].column_name, token); return -26; } tableValues[i].wasFound = true; } } if (strcasestr (token, "last_change ")) { /* last_change default has an embedded ',' so we need to grab the next token too. */ char *nexttoken = strtok_r (str, ",", &saveptr); char *fulltoken = malloc (strlen (token) + strlen (",") + strlen (nexttoken) + 1); strcpy (fulltoken, token); strcat (fulltoken, ","); strcat (fulltoken, nexttoken); if (!strcasestr (fulltoken, "DATETIME")) { fprintf (stderr, "missing COLUMN TYPE DATETIME for last_change: %s\n", fulltoken); free (fulltoken); return -40; } if (!strcasestr (fulltoken, "NOT NULL")) { fprintf (stderr, "Missing NOT NULL constraint for last_change: %s\n", fulltoken); free (fulltoken); return -41; } if (strcasestr (fulltoken, "KEY")) { fprintf (stderr, "Unexpected KEY constraint for last_change: %s\n", token); free (fulltoken); return -42; } if (!strcasestr (fulltoken, "DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ',CURRENT_TIMESTAMP))")) { fprintf (stderr, "Missing default value for last_change: %s\n", fulltoken); free (fulltoken); return -43; } free (fulltoken); valid_last_change = true; } } free (sql); for (i = 0; tableValues[i].column_name != NULL; ++i) { if (tableValues[i].wasFound == false) { fprintf (stderr, "did not find expected %s column\n", tableValues[i].column_name); return -50; } } if (!valid_last_change) { fprintf (stderr, "did not find expected last_change column, or required properties were not found\n"); return -51; } if (!valid_fk_constraint) { fprintf (stderr, "did not find expected FK constraint\n"); return -52; } ret = sqlite3_step (stmt); if (ret != SQLITE_DONE) { fprintf (stderr, "unexpected return value for second step: %i\n", ret); return -199; } ret = sqlite3_finalize (stmt); sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_gpkg_opt_extension_mechanism_extensions_data_table_def.c0000664000175000017500000002210512544707704027111 00000000000000/* check_gpkg_opt_extension_mechanism_extensions_data_table_def - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #define __USE_GNU #include #include "sqlite3.h" #include "spatialite.h" #include "test_helpers.h" struct tableDefinitionElement { const char *column_name; const char *column_type; bool mayBeNull; const char *defaultValue; const char *keySignature; bool wasFound; }; struct tableDefinitionElement tableValues[] = { {"table_name", "TEXT", true, NULL, NULL, false}, {"column_name", "TEXT", true, NULL, NULL, false}, {"extension_name", "TEXT", false, NULL, NULL, false}, {"definition", "TEXT", false, NULL, NULL, false}, {"scope", "TEXT", false, NULL, NULL, false}, {NULL, NULL, false, NULL, NULL, false} }; int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char *sql_statement; sqlite3_stmt *stmt; void *cache = spatialite_alloc_connection (); int i, j; char *sql; char *str; char *token; char *saveptr; bool valid_fk_constraint = false; ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_gpkg_opt_extension_mechanism_extensions_data_table_def.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } /* / Test Case ID /opt/extension_mechanism/extensions/data/table_def / Test Purpose Verify that a gpkg_extensions table exists and has the correct definition. / Test Method: / 1) SELECT sql FROM sqlite_master WHERE type = table AND tbl_name = gpkg_extensions / 2) Fail if returns an empty result set. / 3) Pass if the column names and column definitions in the returned Create TABLE statement / in the sql column value, including data type, nullability, default values and primary, / foreign and unique key constraints match all of those in the contents of Table 36. / Column order, check constraint and trigger definitions, and other column definitions / in the returned sql are irrelevant. / 4) Fail otherwise. / Reference Clause 2.5.2.1.1 Req 78: / Test Type Basic */ sql_statement = "SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'gpkg_extensions'"; ret = sqlite3_prepare_v2 (db_handle, sql_statement, strlen (sql_statement), &stmt, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "failed to prepare SQL SELECT statement: %i (%s)\n", ret, sqlite3_errmsg (db_handle)); return -10; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf (stderr, "unexpected return value for first step: %i (%s)\n", ret, sqlite3_errmsg (db_handle)); return -11; } if (sqlite3_column_type (stmt, 0) != SQLITE_TEXT) { fprintf (stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -12; } sql = strdup (strstr ((const char *) sqlite3_column_text (stmt, 0), "(") + strlen ("(")); if (!sql) { fprintf (stderr, "unrecognised format for SQL\n"); return -13; } for (j = 1, str = sql;; j++, str = NULL) { token = strtok_r (str, ",", &saveptr); if (token == NULL) { break; } while (isspace (*token)) { token++; } if (strncasecmp (token, "CONSTRAINT", strlen ("CONSTRAINT")) == 0) { /* unique constraint has embedded ','s so we need to grab the next two tokens */ char *nexttoken1 = strtok_r (str, ",", &saveptr); char *nexttoken2 = strtok_r (str, ",", &saveptr); char *fulltoken = malloc (strlen (token) + strlen (",") + strlen (nexttoken1) + strlen (",") + strlen (nexttoken2) + 1); strcpy (fulltoken, token); strcat (fulltoken, ","); strcat (fulltoken, nexttoken1); strcat (fulltoken, ","); strcat (fulltoken, nexttoken2); if (strcasestr (fulltoken, "UNIQUE (table_name, column_name, extension_name)")) { valid_fk_constraint = true; } continue; } for (i = 0; tableValues[i].column_name != NULL; ++i) { if (strcasestr (token, tableValues[i].column_name)) { if (!strcasestr (token, tableValues[i].column_type)) { fprintf (stderr, "missing COLUMN TYPE %s for %s: %s\n", tableValues[i].column_type, tableValues[i].column_name, token); return -20; } if (tableValues[i].mayBeNull && strcasestr (token, "NOT NULL")) { fprintf (stderr, "Unexpected NOT NULL constraint for %s: %s\n", tableValues[i].column_name, token); return -21; } if ((!tableValues[i].mayBeNull) && (!strcasestr (token, "NOT NULL"))) { fprintf (stderr, "Missing NOT NULL constraint for %s: %s\n", tableValues[i].column_name, token); return -22; } if ((tableValues[i].keySignature != NULL) && (!strcasestr (token, tableValues[i].keySignature))) { fprintf (stderr, "Missing %s constraint for %s: %s\n", tableValues[i].keySignature, tableValues[i].column_name, token); return -23; } if ((tableValues[i].keySignature == NULL) && (strcasestr (token, "KEY"))) { fprintf (stderr, "Unexpected key constraint for %s: %s\n", tableValues[i].column_name, token); return -24; } if ((tableValues[i].defaultValue == NULL) && (strcasestr (token, "DEFAULT"))) { fprintf (stderr, "Unexpected default value for %s: %s\n", tableValues[i].column_name, token); return -25; } if ((tableValues[i].defaultValue != NULL) && (!strcasestr (token, tableValues[i].defaultValue))) { fprintf (stderr, "Missing default value for %s: %s\n", tableValues[i].column_name, token); return -26; } tableValues[i].wasFound = true; } } } free (sql); for (i = 0; tableValues[i].column_name != NULL; ++i) { if (tableValues[i].wasFound == false) { fprintf (stderr, "did not find expected %s column\n", tableValues[i].column_name); return -50; } } if (!valid_fk_constraint) { fprintf (stderr, "did not find expected FK constraint\n"); return -52; } ret = sqlite3_step (stmt); if (ret != SQLITE_DONE) { fprintf (stderr, "unexpected return value for second step: %i\n", ret); return -199; } ret = sqlite3_finalize (stmt); sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_clone_table.c0000664000175000017500000012765112544707704016205 00000000000000/* check_clone_table.c -- SpatiaLite Test Case This tests a couple of functions in gg_relations.c that aren't used in spatialite, but are provided for backwards compatibility. Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "sqlite3.h" #include "spatialite.h" #include "spatialite/gaiageo.h" int execute_check (sqlite3 * sqlite, const char *sql, char **error) { /* executing an SQL statement returning True/False */ sqlite3_stmt *stmt; int ret; int retcode = 0; *error = NULL; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { *error = sqlite3_mprintf ("%s", sqlite3_errmsg (sqlite)); return SQLITE_ERROR; } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) { if (sqlite3_column_int (stmt, 0) == 1) retcode = 1; } sqlite3_finalize (stmt); if (retcode == 1) return SQLITE_OK; return SQLITE_ERROR; } int create_origin () { /* creating the origin DB */ int ret; sqlite3 *handle; char *err_msg = NULL; const char *sql; void *cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 ("clone_origin.sqlite", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open clone_origin database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } /* creating the input table #1 */ sql = "CREATE TABLE input_1 (id INTEGER NOT NULL PRIMARY KEY," "name TEXT NOT NULL, measure DOUBLE NOT NULL)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -3; } /* populating the input table #1 */ sql = "INSERT INTO input_1 (id, name, measure) VALUES " "(1, 'alpha', 1.51), (2, 'beta', 2.34), (3, 'gamma', 3.75), " "(4, 'delta', 4.81), (5, 'epsilon', 5.03)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } /* creating the input table #2 */ sql = "CREATE TABLE input_2 (first_name TEXT, last_name TEXT, " "birthday TEXT, address TEXT, town TEXT DEFAULT 'Arezzo', " "code_2 TEXT, code_1 TEXT, number INT, code_3 TEXT, " "CONSTRAINT pk_2 PRIMARY KEY (code_1, code_2, code_3))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } /* populating the input table #2 */ sql = "INSERT INTO input_2 (first_name, last_name, birthday, " " address, town, code_2, code_1, number, code_3) VALUES " "('Peter', 'Smith', '1935-05-28', 'Oak Road', 'London', 'uk', 'bb', 1, 'cc'), " "('Paul', 'Dupont', '1981-02-13', 'Rue Blanche', 'Paris', 'fr', 'kk', 2, 'zz'), " "('Daniel', 'Khun', '1967-11-12', 'Berner Strasse', 'Berlin', 'de', 'mm', 3, 'nn')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } sql = "INSERT INTO input_2 (first_name, last_name, address, " " code_2, code_1, number, code_3) VALUES " "('Mario', 'Rossi', NULL, 'it', 'aa', 1, '01'), " "('Lucia', 'Bianchi', NULL, 'it', 'aa', 1, '02'), " "('Tina', 'Gialli', 'Via Roma', 'it', 'ab', 1, '01'), " "('Paolo', 'Verdi', NULL, 'it', 'ab', 2, '02')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } /* creating the input table #3 */ sql = "CREATE TABLE input_3 (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } sql = "SELECT AddGeometryColumn('input_3', 'geom', 4326, 'POLYGON', 'XY')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } sql = "SELECT CreateSpatialIndex('input_3', 'geom')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } /* populating the input table #3 */ sql = "INSERT INTO input_3 (id, name, geom) VALUES " "(NULL, 'one', BuildMbr(0, 0, 1, 1, 4326)), " "(NULL, 'two', BuildMbr(1, 1, 2, 2, 4326)), " "(NULL, 'three', BuildMbr(2, 2, 3, 3, 4326)), " "(NULL, 'four', BuildMbr(3, 3, 4, 4, 4326)), " "(NULL, 'five', BuildMbr(4, 4, 5, 5, 4326)), " "(1000, 'six', BuildMbr(5, 5, 6, 6, 4326)), " "(NULL, 'seven', BuildMbr(6, 6, 7, 7, 4326)), " "(NULL, 'height', BuildMbr(7, 7, 8, 8, 4326)), " "(NULL, 'nine', BuildMbr(8, 8, 9, 9, 4326)), " "(NULL, 'ten', BuildMbr(9, 9, 10, 10, 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* creating the input table #4 */ sql = "CREATE TABLE input_4 (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT, tbl_1 INTEGER, code_2 TEXT NOT NULL, " "code_3 TEXT NOT NULL, code_1 TEXT NOT NULL, tbl_3 INTEGER, " "ignore_1 TEXT DEFAULT 'foo', ignore_2 TEXT DEFAULT 'foo', " "ignore_3 TEXT DEFAULT 'foo', ignore_4 TEXT DEFAULT 'foo', " "ignore_5 TEXT DEFAULT 'foo', ignore_6 TEXT DEFAULT 'foo', " "ignore_7 TEXT DEFAULT 'foo', ignore_8 TEXT DEFAULT 'foo', " "ignore_9 TEXT DEFAULT 'foo', ignore_10 TEXT DEFAULT 'foo', " "CONSTRAINT fk_tbl4_tbl1 FOREIGN KEY (tbl_1) REFERENCES input_1 (id), " "CONSTRAINT fk_tbl4_tbl2 FOREIGN KEY (code_1, code_2, code_3) " "REFERENCES input_2 (code_1, code_2, code_3) " "ON UPDATE CASCADE ON DELETE CASCADE)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } sql = "SELECT AddGeometryColumn('input_4', 'geom', 4326, 'POINT', 'XY')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } /* adding several Indices */ sql = "CREATE INDEX idx_4_tbl1 ON input_4 (tbl_1)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } sql = "CREATE INDEX idx_4_tbl2 ON input_4 (code_1, code_2, code_3)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } sql = "CREATE UNIQUE INDEX idx_4_name ON input_4 (name)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } /* creating Triggers on input table #4 */ sql = "CREATE TRIGGER find_polygon_ins AFTER INSERT ON input_4 " "BEGIN UPDATE input_4 SET tbl_3 = " "(SELECT id FROM input_3 WHERE ST_Intersects(geom, NEW.geom) = 1) " "WHERE id = NEW.id; END"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } sql = "CREATE TRIGGER find_polygon_upd AFTER UPDATE OF geom ON input_4 " "BEGIN UPDATE input_4 SET tbl_3 = " "(SELECT id FROM input_3 WHERE ST_Intersects(geom, NEW.geom) = 1) " "WHERE id = NEW.id; END"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } /* populating the input table #4 */ sql = "INSERT INTO input_4 (id, name, tbl_1, code_2, code_3, code_1, geom) VALUES " "(NULL, 'alpha', 1, 'it', '01', 'aa', MakePoint(0.5, 0.5, 4326)), " "(NULL, 'beta', 1, 'fr', 'zz', 'kk', MakePoint(1.5, 1.5, 4326)), " "(NULL, 'gamma', 2, 'uk', 'cc', 'bb', MakePoint(2.5, 2.5, 4326)), " "(100, 'delta', 2, 'de', 'nn', 'mm', MakePoint(3.5, 3.5, 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -19; } sql = "INSERT INTO input_4 (id, name, tbl_1, code_2, code_3, code_1, geom) VALUES " "(NULL, 'epsilon', 3, 'it', '01', 'ab', MakePoint(4.5, 4.5, 4326)), " "(200, 'zeta', 3, 'it', '01', 'ab', MakePoint(5.5, 5.5, 4326)), " "(300, 'eta', 4, 'it', '02', 'aa', MakePoint(6.5, 6.5, 4326)), " "(NULL, 'iota', 5, 'it', '02', 'ab', MakePoint(7.5, 7.5, 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -20; } /* creating the input table Linestring XY */ sql = "CREATE TABLE ln_xy (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } sql = "SELECT AddGeometryColumn('ln_xy', 'geom', 4326, 'LINESTRING', 'XY')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -22; } /* populating the input table Linestring XY */ sql = "INSERT INTO ln_xy (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('LINESTRING(0 0, 1 1)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -23; } /* creating the input table Linestring XYZ */ sql = "CREATE TABLE ln_xyz (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -24; } sql = "SELECT AddGeometryColumn('ln_xyz', 'geom', 4326, 'LINESTRING', 'XYZ')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -25; } /* populating the input table Linestring XYZ */ sql = "INSERT INTO ln_xyz (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('LINESTRINGZ(0 0 0, 1 1 1)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -26; } /* creating the input table Linestring XYM */ sql = "CREATE TABLE ln_xym (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -27; } sql = "SELECT AddGeometryColumn('ln_xym', 'geom', 4326, 'LINESTRING', 'XYM')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -28; } /* populating the input table Linestring XYM */ sql = "INSERT INTO ln_xym (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('LINESTRINGM(0 0 0, 1 1 1)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -29; } /* creating the input table Linestring XYZM */ sql = "CREATE TABLE ln_xyzm (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -27; } sql = "SELECT AddGeometryColumn('ln_xyzm', 'geom', 4326, 'LINESTRING', 'XYZM')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -28; } /* populating the input table Linestring XYZM */ sql = "INSERT INTO ln_xyzm (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('LINESTRINGZM(0 0 0 0, 1 1 1 1)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -29; } /* creating the input table Polygon XYZ */ sql = "CREATE TABLE pg_xyz (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -30; } sql = "SELECT AddGeometryColumn('pg_xyz', 'geom', 4326, 'POLYGON', 'XYZ')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -31; } /* populating the input table Linestring XYZ */ sql = "INSERT INTO pg_xyz (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('POLYGONZ(0 0 0, 0 1 1, 1 1 1, 1 0 1, 0 0 0)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -32; } /* creating the input table Polygon XYM */ sql = "CREATE TABLE pg_xym (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -33; } sql = "SELECT AddGeometryColumn('pg_xym', 'geom', 4326, 'POLYGON', 'XYM')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -34; } /* populating the input table Linestring XYM */ sql = "INSERT INTO pg_xym (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('POLYGONM(0 0 0, 0 1 1, 1 1 1, 1 0 1, 0 0 0)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -35; } /* creating the input table Polygon XYZM */ sql = "CREATE TABLE pg_xyzm (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -36; } sql = "SELECT AddGeometryColumn('pg_xyzm', 'geom', 4326, 'POLYGON', 'XYZM')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -37; } /* populating the input table Linestring XYZM */ sql = "INSERT INTO pg_xyz (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('POLYGONZM(0 0 0 0, 0 1 1 1, 1 1 1 1, 1 0 1 1, 0 0 0 0)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -38; } /* creating the input table Point XY */ sql = "CREATE TABLE pt_xy (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -39; } sql = "SELECT AddGeometryColumn('pt_xy', 'geom', 4326, 'POINT', 'XY', 1)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -40; } /* populating the input table Point XY */ sql = "INSERT INTO pt_xy (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('POINT(0 0)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -41; } /* creating the input table Point XYZ */ sql = "CREATE TABLE pt_xyz (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -42; } sql = "SELECT AddGeometryColumn('pt_xyz', 'geom', 4326, 'POINT', 'XYZ', 1)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -43; } /* populating the input table Point XYZ */ sql = "INSERT INTO pt_xyz (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('POINTZ(0 0 0)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -44; } /* creating the input table Point XYM */ sql = "CREATE TABLE pt_xym (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -45; } sql = "SELECT AddGeometryColumn('pt_xym', 'geom', 4326, 'POINT', 'XYM', 1)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -46; } /* populating the input table Point XYM */ sql = "INSERT INTO pt_xym (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('POINTM(0 0 0)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -47; } /* creating the input table Point XYZM */ sql = "CREATE TABLE pt_xyzm (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -48; } sql = "SELECT AddGeometryColumn('pt_xyzm', 'geom', 4326, 'POINT', 'XYZM', 1)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -49; } /* populating the input table Point XYZM */ sql = "INSERT INTO pt_xyzm (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('POINTZM(0 0 0 0)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -50; } /* creating the input table GeometryCollection XY */ sql = "CREATE TABLE gc_xy (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -51; } sql = "SELECT AddGeometryColumn('gc_xy', 'geom', 4326, 'GEOMETRYCOLLECTION', 'XY', 1)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -52; } /* populating the input table GeometryCollection XY */ sql = "INSERT INTO gc_xy (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('GEOMETRYCOLLECTION(POINT(0 0))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -53; } /* creating the input table GeometryCollection XYZ */ sql = "CREATE TABLE gc_xyz (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -54; } sql = "SELECT AddGeometryColumn('gc_xyz', 'geom', 4326, 'GEOMETRYCOLLECTION', 'XYZ', 1)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -55; } /* populating the input table GeometryCollection XYZ */ sql = "INSERT INTO gc_xyz (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('GEOMETRYCOLLECTIONZ(POINTZ(0 0 0))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -56; } /* creating the input table GeometryCollection XYM */ sql = "CREATE TABLE gc_xym (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -57; } sql = "SELECT AddGeometryColumn('gc_xym', 'geom', 4326, 'GEOMETRYCOLLECTION', 'XYM', 1)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -58; } /* populating the input table GeometryCollection XYM */ sql = "INSERT INTO gc_xym (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('GEOMETRYCOLLECTIONM(POINTM(0 0 0))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -59; } /* creating the input table GeometryCollection XYZM */ sql = "CREATE TABLE gc_xyzm (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -60; } sql = "SELECT AddGeometryColumn('gc_xyzm', 'geom', 4326, 'GEOMETRYCOLLECTION', 'XYZM', 1)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -61; } /* populating the input table GeometryCollection XYZM */ sql = "INSERT INTO gc_xyzm (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('GEOMETRYCOLLECTIONZM(POINTZM(0 0 0 0))', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -62; } /* creating the input table Geometry XY */ sql = "CREATE TABLE geo_xy (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -63; } sql = "SELECT AddGeometryColumn('geo_xy', 'geom', 4326, 'GEOMETRY', 'XY', 1)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -64; } /* populating the input table Geometry XY */ sql = "INSERT INTO geo_xy (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('POINT(0 0)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -65; } /* creating the input table Geometry XYZ */ sql = "CREATE TABLE geo_xyz (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -66; } sql = "SELECT AddGeometryColumn('geo_xyz', 'geom', 4326, 'GEOMETRY', 'XYZ', 1)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -67; } /* populating the input table Geometry XYZ */ sql = "INSERT INTO geo_xyz (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('POINTZ(0 0 0)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -68; } /* creating the input table Geometry XYM */ sql = "CREATE TABLE geo_xym (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -69; } sql = "SELECT AddGeometryColumn('geo_xym', 'geom', 4326, 'GEOMETRY', 'XYM', 1)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -70; } /* populating the input table Geometry XYM */ sql = "INSERT INTO geo_xym (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('POINTM(0 0 0)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -71; } /* creating the input table Geometry XYZM */ sql = "CREATE TABLE geo_xyzm (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -72; } sql = "SELECT AddGeometryColumn('geo_xyzm', 'geom', 4326, 'GEOMETRY', 'XYZM', 1)"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -73; } /* populating the input table Geometry XYZM */ sql = "INSERT INTO geo_xyzm (id, name, geom) VALUES " "(NULL, 'one', GeomFromText('POINTZM(0 0 0 0)', 4326))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -74; } /* creating the input table #5 (append) */ sql = "CREATE TABLE input_5 (id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT, code_2 TEXT NOT NULL, " "code_3 TEXT NOT NULL, code_1 TEXT NOT NULL, tbl_3 INTEGER, " "ignore_1 TEXT DEFAULT 'foo', ignore_2 TEXT DEFAULT 'foo', " "ignore_3 TEXT DEFAULT 'foo', ignore_4 TEXT DEFAULT 'foo', " "extra_1 TEXT DEFAULT 'extra_foo', extra_2 TEXT DEFAULT 'extra_foo', " "extra_3 TEXT DEFAULT 'extra_foo', extra_4 TEXT DEFAULT 'extra_foo', " "extra_5 TEXT DEFAULT 'extra_foo', extra_6 TEXT DEFAULT 'extra_foo', " "extra_7 TEXT DEFAULT 'extra_foo', extra_8 TEXT DEFAULT 'extra_foo', " "extra_9 TEXT DEFAULT 'extra_foo', extra_10 TEXT DEFAULT 'extra_foo')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -75; } sql = "SELECT AddGeometryColumn('input_5', 'geom', 4326, 'POINT', 'XY')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -76; } sql = "SELECT AddGeometryColumn('input_5', 'extra_geom', 4326, 'LINESTRING', 'XY')"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -77; } /* populating the input table #5 */ sql = "INSERT INTO input_5 (id, name, code_2, code_3, code_1, geom, extra_geom) VALUES " "(NULL, 'phi', 'it', '01', 'aa', MakePoint(0.5, 0.5, 4326), " "MakeLine(MakePoint(10, 10, 4326), MakePoint(11, 11, 4326))), " "(NULL, 'chi', 'fr', 'zz', 'kk', MakePoint(1.5, 1.5, 4326), " "MakeLine(MakePoint(11, 11, 4326), MakePoint(12, 12, 4326))), " "(NULL, 'psi', 'uk', 'cc', 'bb', MakePoint(2.5, 2.5, 4326), " "MakeLine(MakePoint(12, 12, 4326), MakePoint(13, 13, 4326))), " "(100, 'omega', 'de', 'nn', 'mm', MakePoint(3.5, 3.5, 4326), " "MakeLine(MakePoint(13, 13, 4326), MakePoint(14, 14, 4326)))"; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -78; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -79; } spatialite_cleanup_ex (cache); return 0; } int test_clone_table (int base, int with_extra, int ignore, int resequence, int cast2multi) { /* performing a CloneTable testcase */ int ret; sqlite3 *handle; char *err_msg = NULL; const char *sql; int retcode = 0; void *cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); retcode = -1; goto end; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); retcode = -2; goto end; } /* attaching the origin DB */ sql = "ATTACH DATABASE \"./clone_origin.sqlite\" AS \"input\""; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -3; } /* cloning input_1 */ if (with_extra) sql = "SELECT CloneTable('input', 'input_1', 'input_1', 1, '::with-foreign-keys::', '::with-triggers::')"; else sql = "SELECT CloneTable('input', 'input_1', 'input_1', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } /* cloning input_2 */ if (with_extra) sql = "SELECT CloneTable('input', 'input_2', 'input_2', 1, '::with-foreign-keys::', '::with-triggers::')"; else sql = "SELECT CloneTable('input', 'input_2', 'input_2', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -5; } /* cloning input_3 */ if (with_extra) sql = "SELECT CloneTable('input', 'input_3', 'input_3', 1, '::with-foreign-keys::', '::with-triggers::')"; else if (cast2multi) sql = "SELECT CloneTable('input', 'input_3', 'input_3', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'input_3', 'input_3', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -6; } /* cloning input_4 */ if (with_extra) sql = "SELECT CloneTable('input', 'input_4', 'input_4', 1, '::with-foreign-keys::', '::with-triggers::')"; else if (ignore) sql = "SELECT CloneTable('input', 'input_4', 'input_4', 1, '::ignore::ignore_1', '::ignore::ignore_2', " "'::ignore::ignore_3', '::ignore::ignore_4', '::ignore::ignore_5', '::ignore::ignore_6', " "'::ignore::ignore_7', '::ignore::ignore_8', '::ignore::ignore_9', '::ignore::ignore_10')"; else if (resequence) sql = "SELECT CloneTable('input', 'input_4', 'input_4', 1, '::resequence::')"; else sql = "SELECT CloneTable('input', 'input_4', 'input_4', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -7; } /* cloning Linestring XY */ if (cast2multi) sql = "SELECT CloneTable('input', 'ln_xy', 'ln_xy', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'ln_xy', 'ln_xy', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -8; } /* cloning Linestring XYZ */ if (cast2multi) sql = "SELECT CloneTable('input', 'ln_xyz', 'ln_xyz', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'ln_xyz', 'ln_xyz', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -9; } /* cloning Linestring XYM */ if (cast2multi) sql = "SELECT CloneTable('input', 'ln_xym', 'ln_xym', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'ln_xym', 'ln_xym', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -10; } /* cloning Linestring XYZM */ if (cast2multi) sql = "SELECT CloneTable('input', 'ln_xyzm', 'ln_xyzm', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'ln_xyzm', 'ln_xyzm', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -11; } /* cloning Polygon XYZ */ if (cast2multi) sql = "SELECT CloneTable('input', 'pg_xyz', 'pg_xyz', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'pg_xyz', 'pg_xyz', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } /* cloning Polygon XYM */ if (cast2multi) sql = "SELECT CloneTable('input', 'pg_xym', 'pg_xym', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'pg_xym', 'pg_xym', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -13; } /* cloning Polygon XYZM */ if (cast2multi) sql = "SELECT CloneTable('input', 'pg_xyzm', 'pg_xyzm', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'pg_xyzm', 'pg_xyzm', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -14; } /* cloning Point XY */ if (cast2multi) sql = "SELECT CloneTable('input', 'pt_xy', 'pt_xy', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'pt_xy', 'pt_xy', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -15; } /* cloning Point XYZ */ if (cast2multi) sql = "SELECT CloneTable('input', 'pt_xyz', 'pt_xyz', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'pt_xyz', 'pt_xyz', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -16; } /* cloning Point XYM */ if (cast2multi) sql = "SELECT CloneTable('input', 'pt_xym', 'pt_xym', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'pt_xym', 'pt_xym', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -17; } /* cloning Point XYZM */ if (cast2multi) sql = "SELECT CloneTable('input', 'pt_xyzm', 'pt_xyzm', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'pt_xyzm', 'pt_xyzm', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -18; } /* cloning GeometryCollection XY */ if (cast2multi) sql = "SELECT CloneTable('input', 'gc_xy', 'gc_xy', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'gc_xy', 'gc_xy', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -19; } /* cloning GeometryCollection XYZ */ if (cast2multi) sql = "SELECT CloneTable('input', 'gc_xyz', 'gc_xyz', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'gc_xyz', 'gc_xyz', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -20; } /* cloning GeometryCollection XYM */ if (cast2multi) sql = "SELECT CloneTable('input', 'gc_xym', 'gc_xym', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'gc_xym', 'gc_xym', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -21; } /* cloning GeometryCollection XYZM */ if (cast2multi) sql = "SELECT CloneTable('input', 'gc_xyzm', 'gc_xyzm', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'gc_xyzm', 'gc_xyzm', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -22; } /* cloning Geometry XY */ if (cast2multi) sql = "SELECT CloneTable('input', 'geo_xy', 'geo_xy', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'geo_xy', 'geo_xy', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -23; } /* cloning Geometry XYZ */ if (cast2multi) sql = "SELECT CloneTable('input', 'geo_xyz', 'geo_xyz', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'geo_xyz', 'geo_xyz', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -24; } /* cloning Geometry XYM */ if (cast2multi) sql = "SELECT CloneTable('input', 'geo_xym', 'geo_xym', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'geo_xym', 'geo_xym', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -25; } /* cloning Geometry XYZM */ if (cast2multi) sql = "SELECT CloneTable('input', 'geo_xyzm', 'geo_xyzm', 1, '::cast2multi::geom')"; else sql = "SELECT CloneTable('input', 'geo_xyzm', 'geo_xyzm', 1)"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -22; } /* cloning input_5 (APPEND) */ if (ignore) sql = "SELECT CloneTable('input', 'input_5', 'input_4', 1, '::ignore::ignore_1', '::ignore::ignore_2', " "'::ignore::ignore_3', '::ignore::ignore_4', '::resequence::', '::append::', " "'::ignore::extra_7', '::ignore::extra_8', '::ignore::extra_9', '::ignore::extra_10')"; else sql = "SELECT CloneTable('input', 'input_5', 'input_4', 1, '::resequence::', '::append::')"; ret = execute_check (handle, sql, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -23; } /* detaching the origin DB */ sql = "DETACH DATABASE \"input\""; ret = sqlite3_exec (handle, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error: %s\n", err_msg); sqlite3_free (err_msg); return -12; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); retcode = -9; goto end; } spatialite_cleanup_ex (cache); end: if (retcode < 0) return base + retcode; return 0; } int main (int argc, char *argv[]) { int ret; int retcode = 0; if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ if (create_origin () < 0) { retcode = -66; goto end; } /* base test: no options */ ret = test_clone_table (-100, 0, 0, 0, 0); if (ret < 0) { retcode = ret; goto end; } /* advanced test: with-foreign-keys and with-triggers */ ret = test_clone_table (-200, 1, 0, 0, 0); if (ret < 0) { retcode = ret; goto end; } /* advanced test: ignore */ ret = test_clone_table (-300, 0, 1, 0, 0); if (ret < 0) { retcode = ret; goto end; } /* advanced test: resequence */ ret = test_clone_table (-400, 0, 0, 1, 0); if (ret < 0) { retcode = ret; goto end; } /* advanced test: cast2multi */ ret = test_clone_table (-400, 0, 0, 0, 1); if (ret < 0) { retcode = ret; goto end; } end: /* removing the origin DB */ unlink ("clone_origin.sqlite"); spatialite_shutdown (); return retcode; } libspatialite-4.3.0a/test/check_gpkg_base_core_spatial_ref_sys_data_values_default.c0000664000175000017500000002201412544707704026176 00000000000000/* check_gpkg_base_core_spatial_ref_sys_data_values_default - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2013 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "sqlite3.h" #include "spatialite.h" #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; void *cache = spatialite_alloc_connection (); int rows; int columns; ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_gpkg_base_core_spatial_ref_sys_data_values_default.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } /* / Test Case ID: /base/core/spatial_ref_sys/data_values_default / Test Purpose: Verify that the spatial_ref_sys table contains the required default contents. / Test Method: / 1) SELECT srid, auth_name, auth_srid, srtext FROM spatial_ref_sys WHERE srid = -1 returns -1 “NONE†-1 “Undefinedâ€, AND / 2) SELECT srid, auth_name, auth_srid, srtext FROM spatial_ref_sys WHERE srid = 0 returns 0 “NONE†0 “Undefinedâ€, AND / 3) SELECT srid, auth_name, auth_srid, srtext FROM spatial_ref_sys WHERE srid = 4326 returns / 4326 epsg 4326 GEOGCS["WGS 84", DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563, AUTHORITY["EPSG","7030"]], / AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4326"]] / (whitespace irrelevant) / Pass if tests 1-3 are met / Fail otherwise / Reference: Clause 1.1.2.1.2 Req 11: / Test Type: Capability */ ret = sqlite3_get_table (db_handle, "SELECT srs_id, organization, organization_coordsys_id, definition FROM gpkg_spatial_ref_sys WHERE srs_id = -1", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "get table error, srs_id = -1: %s\n", err_msg); sqlite3_free (err_msg); return -9; } if ((rows != 1) || (columns != 4)) { fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); sqlite3_free_table (results); return -10; } if (strcmp (results[1 * columns + 0], "-1") != 0) { fprintf (stderr, "Unexpected srs_id result (got %s, expected -1)", results[1 * columns + 0]); sqlite3_free_table (results); return -11; } if (strcmp (results[1 * columns + 1], "NONE") != 0) { fprintf (stderr, "Unexpected organization result (got %s, expected NONE)", results[1 * columns + 1]); sqlite3_free_table (results); return -12; } if (strcmp (results[1 * columns + 2], "-1") != 0) { fprintf (stderr, "Unexpected organization_coordsys_id result (got %s, expected -1)", results[1 * columns + 2]); sqlite3_free_table (results); return -13; } if (strcmp (results[1 * columns + 3], "Undefined") != 0) { fprintf (stderr, "Unexpected definition result (got %s, expected Undefined)", results[1 * columns + 3]); sqlite3_free_table (results); return -14; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT srs_id, organization, organization_coordsys_id, definition FROM gpkg_spatial_ref_sys WHERE srs_id = 0", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "get table error, srs_id = 0: %s\n", err_msg); sqlite3_free (err_msg); return -20; } if ((rows != 1) || (columns != 4)) { fprintf (stderr, "Unexpected row / column count (srs_id0): %i x %i\n", rows, columns); sqlite3_free_table (results); return -21; } if (strcmp (results[1 * columns + 0], "0") != 0) { fprintf (stderr, "Unexpected srs_id result (got %s, expected 0)", results[1 * columns + 0]); sqlite3_free_table (results); return -22; } if (strcmp (results[1 * columns + 1], "NONE") != 0) { fprintf (stderr, "Unexpected organization result (got %s, expected NONE)", results[1 * columns + 1]); sqlite3_free_table (results); return -23; } if (strcmp (results[1 * columns + 2], "0") != 0) { fprintf (stderr, "Unexpected organization_coordsys_id result (got %s, expected 0)", results[1 * columns + 2]); sqlite3_free_table (results); return -24; } if (strcmp (results[1 * columns + 3], "Undefined") != 0) { fprintf (stderr, "Unexpected definition result (got %s, expected Undefined)", results[1 * columns + 3]); sqlite3_free_table (results); return -25; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT srs_id, organization, organization_coordsys_id, definition FROM gpkg_spatial_ref_sys WHERE srs_id = 4326", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "get table error, srs_id = 4326: %s\n", err_msg); sqlite3_free (err_msg); return -30; } if ((rows != 1) || (columns != 4)) { fprintf (stderr, "Unexpected row / column count (srs_id4326): %i x %i\n", rows, columns); sqlite3_free_table (results); return -31; } if (strcmp (results[1 * columns + 0], "4326") != 0) { fprintf (stderr, "Unexpected srs_id result (got %s, expected 4326)", results[1 * columns + 0]); sqlite3_free_table (results); return -32; } if (strcasecmp (results[1 * columns + 1], "epsg") != 0) { fprintf (stderr, "Unexpected organization result (got %s, expected epsg)", results[1 * columns + 1]); sqlite3_free_table (results); return -33; } if (strcmp (results[1 * columns + 2], "4326") != 0) { fprintf (stderr, "Unexpected organization_coordsys_id result (got %s, expected 4326)", results[1 * columns + 2]); sqlite3_free_table (results); return -34; } if (strcmp (results[1 * columns + 3], "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]") != 0) { fprintf (stderr, "Unexpected definition result (got %s, expected GEOGCS[...])", results[1 * columns + 3]); sqlite3_free_table (results); return -35; } sqlite3_free_table (results); sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/shape_utf8_1.c0000664000175000017500000003100512544707704015052 00000000000000/* shape_utf8_1.c -- SpatiaLite Test Case Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Ahmadou Dicko Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" void cleanup_shapefile (const char *filename) { char nam[1000]; if (!filename) { return; } snprintf (nam, 1000, "%s.dbf", filename); unlink (nam); snprintf (nam, 1000, "%s.prj", filename); unlink (nam); snprintf (nam, 1000, "%s.shp", filename); unlink (nam); snprintf (nam, 1000, "%s.shx", filename); unlink (nam); } int do_test (sqlite3 * handle, int legacy) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; char *dumpname = __FILE__ "dump"; char *err_msg = NULL; int row_count; ret = load_shapefile (handle, "./shp/gaza/barrier", "barrier", "UTF-8", 4326, NULL, 1, 0, 1, 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/gaza/barrier: %s\n", err_msg); sqlite3_close (handle); return -3; } if (row_count != 5) { fprintf (stderr, "unexpected row count for shp/gaza/barrier: %i\n", row_count); sqlite3_close (handle); return -4; } ret = load_shapefile (handle, "./shp/gaza/aeroway", "aeroway", "UTF-8", 4326, "col1", 1, 0, 0, 0, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/gaza/aeroway: %s\n", err_msg); sqlite3_close (handle); return -5; } if (row_count != 1) { fprintf (stderr, "unexpected row count for shp/gaza/aeroway: %i\n", row_count); sqlite3_close (handle); return -6; } ret = load_shapefile (handle, "./shp/gaza/route", "route", "UTF-8", 4326, NULL, 1, 0, 1, 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "load_shapefile() error for shp/gaza/route: %s\n", err_msg); sqlite3_close (handle); return -7; } if (row_count != 2) { fprintf (stderr, "unexpected row count for shp/gaza/route: %i\n", row_count); sqlite3_close (handle); return -8; } if (legacy) { sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, NULL); sqlite3_exec (handle, "DELETE FROM views_layer_statistics", NULL, NULL, NULL); } else { sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, NULL, NULL); sqlite3_exec (handle, "DELETE FROM views_geometry_columns_statistics", NULL, NULL, NULL); } ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", err_msg); sqlite3_close (handle); return -9; } cleanup_shapefile (dumpname); if (row_count != 2) { fprintf (stderr, "unexpected dump row count for UTF-8_1 route: %i\n", row_count); sqlite3_close (handle); return -10; } ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", "LINESTRING", 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for UTF-8_1 route: %s\n", err_msg); sqlite3_close (handle); return -13; } cleanup_shapefile (dumpname); if (row_count != 2) { fprintf (stderr, "unexpected dump row count for UTF-8_1 route LINESTRING: %i\n", row_count); sqlite3_close (handle); return -14; } ret = sqlite3_exec (handle, "SELECT DiscardGeometryColumn('route', 'Geometry')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DiscardGeometry route error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -15; } if (legacy) ret = sqlite3_exec (handle, "INSERT INTO geometry_columns (f_table_name, f_geometry_column, type, coord_dimension, srid, spatial_index_enabled) VALUES ('beta', 'gamma', 'LINESTRING', 'XY', 4326, 0)", NULL, NULL, &err_msg); else ret = sqlite3_exec (handle, "INSERT INTO geometry_columns (f_table_name, f_geometry_column, geometry_type, coord_dimension, srid, spatial_index_enabled) VALUES (Lower('Beta'), Lower('Gamma'), 2, 2, 4326, 0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "GeometryColumns route error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -16; } if (legacy) { sqlite3_exec (handle, "DELETE FROM layer_statistics", NULL, NULL, NULL); ret = sqlite3_exec (handle, "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column) VALUES ('route', 'Geometry', 'ROWID', 'beta', 'gamma')", NULL, NULL, &err_msg); } else { sqlite3_exec (handle, "DELETE FROM geometry_columns_statistics", NULL, NULL, NULL); ret = sqlite3_exec (handle, "INSERT INTO views_geometry_columns (view_name, view_geometry, view_rowid, f_table_name, f_geometry_column, read_only) VALUES (Lower('Route'), Lower('Geometry'), Lower('ROWID'), Lower('Beta'), Lower('gamma'), 1)", NULL, NULL, &err_msg); } if (ret != SQLITE_OK) { fprintf (stderr, "ViewsGeometryColumns route error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -17; } ret = dump_shapefile (handle, "route", "Geometry", dumpname, "UTF-8", NULL, 1, &row_count, err_msg); if (!ret) { fprintf (stderr, "dump_shapefile() error for UTF-8_1 route (2): %s\n", err_msg); sqlite3_close (handle); return -17; } cleanup_shapefile (dumpname); if (row_count != 2) { fprintf (stderr, "unexpected dump row count for UTF-8_1 route LINESTRING (2): %i\n", row_count); sqlite3_close (handle); return -18; } if (legacy) { /* final DB cleanup */ ret = sqlite3_exec (handle, "DROP TABLE aeroway", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE aeroway error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -19; } ret = sqlite3_exec (handle, "DROP TABLE barrier", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE barrier error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -20; } ret = sqlite3_exec (handle, "DROP TABLE route", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE route error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -21; } ret = sqlite3_exec (handle, "DROP TABLE idx_route_Geometry", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE idx_route_Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -22; } ret = sqlite3_exec (handle, "DROP TABLE idx_barrier_Geometry", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP TABLE idx_barrier_Geometry error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -23; } ret = sqlite3_exec (handle, "DELETE FROM geometry_columns", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM geometry_columns error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -24; } ret = sqlite3_exec (handle, "DELETE FROM views_geometry_columns", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM views_geometry_columns error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -25; } ret = sqlite3_exec (handle, "DELETE FROM spatialite_history WHERE geometry_column IS NOT NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE FROM spatialite_history error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -26; } ret = sqlite3_exec (handle, "VACUUM", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "VACUUM error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -27; } } #endif /* end ICONV conditional */ /* ok, succesfull termination */ return 0; } int main (int argc, char *argv[]) { #ifndef OMIT_ICONV /* only if ICONV is supported */ int ret; sqlite3 *handle; char *err_msg = NULL; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* testing current style metadata layout >= v.4.0.0 */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } ret = do_test (handle, 0); if (ret != 0) { fprintf (stderr, "error while testing current style metadata layout\n"); return ret; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -19; } spatialite_cleanup_ex (cache); /* testing legacy style metadata layout <= v.3.1.0 */ cache = spatialite_alloc_connection (); ret = system ("cp test-legacy-3.0.1.sqlite copy-utf8_1-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot copy legacy v.3.0.1 database\n"); return -1; } ret = sqlite3_open_v2 ("copy-utf8_1-legacy-3.0.1.sqlite", &handle, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open legacy v.3.0.1 database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = do_test (handle, 1); if (ret != 0) { fprintf (stderr, "error while testing legacy style metadata layout\n"); return ret; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -19; } spatialite_cleanup_ex (cache); ret = unlink ("copy-utf8_1-legacy-3.0.1.sqlite"); if (ret != 0) { fprintf (stderr, "cannot remove legacy v.3.0.1 database\n"); return -20; } #endif /* end ICONV conditional */ spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/shapetest1.prj0000664000175000017500000000021712544707704015217 00000000000000GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]libspatialite-4.3.0a/test/shp/0000775000175000017500000000000012573314326013267 500000000000000libspatialite-4.3.0a/test/shp/gaza/0000775000175000017500000000000012573314326014211 500000000000000libspatialite-4.3.0a/test/shp/gaza/barrier.shx0000664000175000017500000000021412544707704016304 00000000000000' Fèaݾñ A@!¨¿¨8?@ Ôs‰9A@A5pƒ?@2 @ N \ j libspatialite-4.3.0a/test/shp/gaza/aeroway.dbf0000664000175000017500000000032412544707704016260 00000000000000RidNsub_typeC nameC6 41317768aerodromeمطار ياسر Ø¹Ø±ÙØ§Øª الدولي (مقÙلة)libspatialite-4.3.0a/test/shp/gaza/barrier.prj0000664000175000017500000000040312544707704016275 00000000000000GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]] libspatialite-4.3.0a/test/shp/gaza/aeroway.shx0000664000175000017500000000015412544707704016330 00000000000000' 6èÍ~8£A"A@¾ÒC~G:?@¸ñÝœ$A@úì%2B?@2ølibspatialite-4.3.0a/test/shp/gaza/route.shx0000664000175000017500000000016412544707704016020 00000000000000' :è°£»5ú6A@‹ æùX?@÷ù9O†?A@½5_%o?@2 Z òlibspatialite-4.3.0a/test/shp/gaza/route.prj0000664000175000017500000000040312544707704016005 00000000000000GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]] libspatialite-4.3.0a/test/shp/gaza/barrier.dbf0000664000175000017500000000107712544707704016245 00000000000000YidNsub_typeCnameC8 328444065border_controlמעבר ×›×¨× ×©×œ×•× Ù…Ø¹Ø¨Ø± كرم أبو سالم 504288554entrance Main entrance for UNRWA 504293363entrance Saraya Entrance 505112371gate Karm Abu Salem Crossing 1266480503gate Rafah Crossing libspatialite-4.3.0a/test/shp/gaza/route.dbf0000664000175000017500000000033412544707704015750 00000000000000-idNsub_typeCnameC 1393012bicycleסינגל ב×רי 1560935bicycleסינגל רעי×libspatialite-4.3.0a/test/shp/gaza/aeroway.prj0000664000175000017500000000040312544707704016316 00000000000000GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]] libspatialite-4.3.0a/test/shp/gaza/aeroway.shp0000664000175000017500000000113412544707704016317 00000000000000' .èÍ~8£A"A@¾ÒC~G:?@¸ñÝœ$A@úì%2B?@øÍ~8£A"A@¾ÒC~G:?@¸ñÝœ$A@úì%2B?@ý’©"A@¾ÒC~G:?@‘D/£X"A@,@€±c:?@ïœô["A@ç£1ÿ:?@Í~8£A"A@-Îæ;?@éŽÄÃ"A@–‚$¢N??@ÚHÈö#A@[uÂð¶A?@«£™ÝI#A@î‚ïéA?@'”tƒW#A@úì%2B?@ÞÅ ¸ˆ#A@²§x· B?@¡»$Ί#A@ˆ—LºÒA?@ ±é÷³#A@»Ø {A?@¬Â ǘ#A@0 ¼8–@?@B‡¯eè#A@÷ßš…??@b̧Øâ#A@‘kL??@¸ñÝœ$A@P0žA??@‹Ç nû#A@°žIQ??@x}Úò#A@æ>9 ??@»Hüåî#A@‰Š'q ??@Çmæë#A@»&¤5??@# ¨Üé#A@ẽÿ>?@èƒelè#A@'À°üù>?@̸©æ#A@ùiÜ›ß>?@rÆ‹àÚ#A@ȱõ á>?@Ø–¦­#A@B¢¿†–=?@–"ùJ #A@6ÀV®«Ì:?@»Rà®"A@Œ=Å»m:?@ý’©"A@¾ÒC~G:?@libspatialite-4.3.0a/test/shp/gaza/barrier.shp0000664000175000017500000000036012544707704016276 00000000000000' xèaݾñ A@!¨¿¨8?@ Ôs‰9A@A5pƒ?@ ¬Z- "A@!¨¿¨8?@ äIÒ5“8A@A5pƒ?@  Ôs‰9A@§-ddƒ?@ ÒîFÕe"A@¢@D!9?@ aݾñ A@œ‘œ§•??@libspatialite-4.3.0a/test/shp/gaza/route.shp0000664000175000017500000002541412544707704016015 00000000000000' †è°£»5ú6A@‹ æùX?@÷ù9O†?A@½5_%o?@ Z°£»5ú6A@þþƒþøe?@÷ù9O†?A@½5_%o?@'GPü"$÷ù9O†?A@õq·Úm?@çüÇ?A@°XÃEîm?@^G²?A@°"þ¼n?@?ˆ z?A@Ó™ÅÕn?@8©Ãep?A@ÕÿÞ%n?@éû_d?A@^\ô_1n?@7i¿ZZ?A@S¬¿ÊFn?@œdõXD?A@¸)yÐGn?@SG";?A@H;ɱPn?@í0¶0?A@¤²ÀJn?@" ¸ø%?A@g-öMn?@çó?A@ ø$fn?@CŽ­g?A@Ö…i)jn?@·åm¶?A@C¶âÑ|n?@}Ì?A@N:Šn?@š¤è7?A@¢œÃ”n?@>ë-?A@ö5Cªn?@i÷õù>A@š[!¬Æn?@ÉÝŒ?ö>A@Q諚Ön?@®óo—ý>A@i¢èn?@®óo—ý>A@I’Iün?@|œiÂö>A@»òYžo?@žä?î>A@½5_%o?@¯Þò¢À>A@Š1úþn?@(F–̱>A@E-nín?@´¥¬>A@¡†oaÝn?@à¸1â§>A@ÍE×àØn?@Ú–\ œ>A@üÝà°Ùn?@é?!–>A@ }ömÒn?@üçÄy“>A@Åú«lÄn?@ŒI/…>A@ ƒC¹n?@¼n¶^x>A@3®òœn?@jHªv>A@ÕðˆeŽn?@eпi>A@i(¤ëxn?@a$jX>A@ÈMæ„n?@wIœQ>A@¢Òˆ™}n?@wˆÚ‘E>A@nwÅBcn?@ñ)Æ3>A@H;ɱPn?@¡„>A@m?2n?@“1ãì=A@Ep93n?@0ÈLXÑ=A@Ê:wn?@†.òü³=A@S/®§ n?@ÿñ¹n¥=A@¼»„ùm?@åXƒœœ=A@ðøm?@È9V΃=A@6¦q¹ n?@Öû2½i=A@ØÆŽ|n?@—®»Ôc=A@©@w“)n?@EÇÄœV=A@q”ô9n?@ª@ÒL=A@ü@n?@úw"-:=A@™ã*`n?@>¬Ü°=A@ÙàŽ†n?@æÚJùj?@-eÏT7A@²Ü-j?@(XP7A@à<‹”j?@~8gD7A@±æ¶3j?@Ø&ºÓB7A@ ktÝi?@§Ê÷ŒD7A@bx6õËi?@‘+˜B7A@h¼cgÀi?@ÓA¨œ@7A@÷ƵF©i?@ܵÛ.7A@‡×Ë¥i?@ÜÜóW#7A@lù’×”i?@"q¥7A@î·Ñ[—i?@cÍmg7A@¡ªŠi?@-!Ä:ú6A@"–ƒwi?@°£»5ú6A@•EaEi?@î'¾5 7A@ó=#i?@$ºÂ7A@b,Ó/i?@ÂI?†37A@=lØ¥üh?@”É_G7A@Êjºžèh?@ û=±N7A@Ü1Ðh?@R©È×T7A@u~@V¦h?@í¥ßt7A@Á°W³)h?@¡bA—7A@×lå%ÿg?@g؃¤ª7A@IÚ>æg?@„6ïî·7A@ÔåÞ ³g?@óUò±»7A@Δ1™…g?@*/žæ7A@×™ŒtPg?@]ŸÞ1á7A@FbÝÓ0g?@ëÿæ7A@Mjü"g?@r+)æ7A@%XÎüf?@x—0?Ü7A@¾÷7h¯f?@¬ÉSVÓ7A@Çê \df?@dõýŠë7A@Êq.#f?@žÈ8ëø7A@°ÆÙtf?@¤cÁ8A@þþƒþøe?@-B±48A@_xÊf?@cbóqm8A@°Ág'f?@­dl­8A@ì1‘Òlf?@pÍÂC½8A@Ymþ_uf?@Â>ðçÊ8A@ôïDZtf?@ øëê8A@¨/ÿ|f?@Jª)û8A@Çü’Czf?@8æ+79A@0?Áf?@32m¤9A@¹õ?e¡f?@Psò"9A@eEÒ¹f?@F"ÙÈ9A@áçSÇf?@ZF„"9A@Z~…qÜf?@[r&·79A@™¦c)íf?@ÞY»íB9A@Ù"i7úf?@¤¡ëgV9A@c³Èg?@oŒSc9A@?²$g?@aªôn‡9A@·uÜ•g?@»}V™9A@GñàÝf?@Þ§OÎ9A@èàô‰—f?@/ùŸüÝ9A@rÃM¡f?@²¬ê›ê9A@à¤Ä §f?@û·\ý9A@[ë‹„¶f?@1ïq¦ :A@牮f?@¸ý—:A@!äK¨f?@yÖ$.:A@°Øp¢§f?@à?ÿ=:A@|[U›¤f?@–(Ö¬:A@Á:éØf?@éI™ÔÐ:A@µ‡½PÀf?@_î“£;A@kùÜd¯f?@˶x;A@¢Y~…qf?@+Gm‡+;A@ïíLWff?@iOn€>;A@ʦ\á]f?@ËfI;A@õˆ,-~f?@Gÿ˵h;A@~°çÆOf?@½o|í™;A@)a§f?@Pød©;A@aðzz¶f?@zÜ\¡´;A@/fðœÒf?@+ÚÁ-Ä;A@ðº4Ùf?@ÚÀÂîà;A@wîâ¢ÿf?@¦´þ–g?@FB[Î¥A@¡ªŠi?@÷*è¬>A@aTR' i?@·è >A@¦Ž´i?@ÏÑOÝ>A@êß?'Îi?@dߺ>A@Õ·ÀÔi?@yY>A@Ýý;ìÏi?@ø„‘>A@•Þí0Üi?@øMì>A@ñjíi?@úéä± >A@W;Ðùi?@‹¥H¾>A@|'f½j?@û/I >A@¬Aó”0j?@‘+õ,>A@öHÞ”Mj?@'á_>A@üVF~Xj?@ÇÝÕ>A@A˜€jj?@–ùX ý=A@¤‹M+…j?@ »õõ=A@ʈ8Œj?@Iý«}ð=A@K®bñ›j?@ˆÿ*vê=A@©–¾!žj?@,õ,å=A@ãIíj?@)YNBé=A@.¢7&Õj?@=}þð=A@}2ôj?@ÁMëÛî=A@§{ø k?@W·Õí=A@éθk?@.ÅUeß=A@r!ES,k?@÷Ÿë±ã=A@s[‚Bk?@ìskˆà=A@ˆ4ˆjk?@DÕT»Ë=A@,¬e|©k?@ß4}vÀ=A@*u$ò¸k?@ÅÝÅ ¸=A@j¦{Ôk?@­§±Ð=A@g0û+l?@Ÿ¥ÐÔ=A@BôïDl?@ÓBrï=A@^ñyjšl?@s–£};A@±Êàƒ2n?@‡oaÝx;A@Ñ11§n?@Êgei;A@€j.n?@6í½S\;A@8®n?@*Y\-;A@~/Ï”çm?@¿•‘;A@„Ø™Bçm?@†è8;A@W«”Õm?@T¨n.þ:A@ªXF4Ëm?@˜à/Á;A@œ0{¸m?@­ _p;A@ìZ1m?@Ä>#;A@£žôtdm?@ÑZÑæ8;A@™•’Škm?@å~‡¢@;A@Í¢vdm?@vŸˆêR;A@`é×1m?@ˆÂ¤S;A@èR·m?@z¸.Fn;A@ TÌl?@«1×Xx;A@¿=tæÃl?@b‚¾…;A@Ko$u§l?@êìdp”;A@r@Ê•l?@Jô;A@º“™ˆl?@eP·¯;A@NüGl?@y¨ ¶;A@×#ÃàPl?@!XU/¿;A@‡Ä=–>l?@ Ì Eº;A@‰û~ /l?@g ;ª;A@´âÀP,l?@93K§;A@ÞúU%6l?@¼辜;A@`¹ñ8l?@íwÍP;A@)Sqˆ]l?@µc;A@Õ?ˆdl?@6wô¿\;A@¬Õhƒ]l?@J›ª{d;A@s™?Kl?@6wô¿\;A@‡Ø(l?@¡·¿\;A@F}íôÞk?@h$é?;A@Dq"Uk?@‘Ê^+;A@F]kïSk?@u'Žò:A@Pö;¹Kk?@•|‘uÝ:A@&`*ìXk?@öÃ^Í:A@Ä­'_uk?@öÃ^Í:A@Ä­'_uk?@"•²:A@ź!k?@R”ð)¥;A@$’2ó.n?@Å‘"‹;A@ËË«„8n?@s–£};A@±Êàƒ2n?@ òÐé~£9A@‹ æùX?@òÿô°a=A@JXc?@{B_š"Àé9A@JXc?@ÚÍç9A@^×/Ø c?@ŠÀ¢lÛ9A@› Eøb?@º-‘ Î9A@¬­3éb?@{Dñϱ9A@hÈÛ×b?@Žj"}¤9A@³øÔb?@Ðé~£9A@&,;Íb?@áh}€¤9A@ôG]Æb?@¤Î’¶§9A@ãÿéaÃb?@wƒh­9A@†ŠE´b?@ž( ‰´9A@K,ßé„b?@˜š©µ9A@ßÖ'ob?@Ûø]Ç9A@[öÚ"b?@«^~§É9A@Ö*°¶b?@¡i‰•Ñ9A@ ¿/‰b?@‚% $Þ9A@#Ô±ïa?@âx>ê9A@Æ‹àÚäa?@ò„ò÷9A@UÄÚÎa?@™g%­ø9A@CÆ£TÂa?@›±Ãó9A@–jU­a?@À¦1ý9A@*2ßf–a?@â\Æÿ9A@¯ÀFH“a?@£Ê0î:A@<$Æ|Ša?@¸®˜:A@ __ëRa?@?{ó:A@€ˆÃˆ3a?@îð2:A@ÂþF–'a?@?¼s(:A@qGQ a?@ê‘«ýB:A@(åÿŸÔ`?@ŽªËÎG:A@¨K6Ã`?@I‰¸”N:A@]÷ûj³`?@šO:A@Õr m¥`?@ÀzÜ·Z:A@‚ò-bŽ`?@¦äæe^:A@ E`?@4³;I_:A@p•'v`?@K¬‚b:A@n$îm`?@¦/ßUj:A@£Öêa`?@ëã¡ïn:A@^Ÿ9ëS`?@Çâí÷z:A@‡ø‡-=`?@Þ X(ˆ:A@ÉÁ¶&`?@;i†ù—:A@Psò"`?@ +&€¬:A@ŸUfJë_?@§ý Ü®:A@íÕÇCß_?@(K±:A@Æ?"\·_?@,›9$µ:A@êk§÷ž_?@þ6zë²:A@¼2¹b_?@°Q{¶³:A@˜Ãî;†_?@¼Cåº:A@€-¯\o_?@”ص½:A@,¨^m_?@4|È:A@Øf¾ÞX_?@ØíXÚ:A@$ŠŽE_?@j(ÿ¤ë:A@® ä~,_?@ß'X-ú:A@Þ Š_?@qÏNa;A@6ÝüÐ_?@‡ô€;A@ Káæù^?@`Òsf;A@‚% $Þ^?@ ,ʶ;A@…™9Ø^?@Yä2É#;A@sËcÍ^?@ÓÜ a5;A@Bo;~¹^?@•júG:;A@žá¨^?@A[sìE;A@À%ÿ”^?@›†M;A@{k»dw^?@МwR;A@p¢LY^?@¬pËGR;A@œmnLO^?@ÚÿhI;A@ <÷^?@i>B(J;A@‚Ò^?@" ‡”U;A@â§¶ ^?@w®9Q\;A@I"E®å]?@H—íùP;A@é¢|œÄ]?@þ‡O•J;A@ ½†]?@s˜ÔuM;A@­mŽs]?@¦=Ê-R;A@Ï ±Ÿj]?@S÷·ºR;A@j¡drj]?@«d[aU;A@<õíÉh]?@)9Ì<^;A@øiâl]?@ä»”ºd;A@dËòu]?@ÑÃu1r;A@ØSa"”]?@«K|¤w;A@“¨|š]?@®zeƒ;A@KÜtœ]?@šªÅñ;A@zªCn†]?@Q–k;A@]8kKx]?@ÁEݽ’;A@µ&Ìjp]?@×ñg•;A@$|‰g]?@£;A@ØŽ˜Z]?@7|Á]¬;A@²!IZ]?@oh%²;A@“~±­U]?@‘(´;A@Þ™M]?@¼å´;A@ZYì@]?@y`[š¶;A@Yz#©;]?@£ÎÜCÂ;A@ÌîÉÃB]?@Xæ.Ó;A@ñö{½V]?@gÖR@Ú;A@"\·÷_]?@µ|ùä;A@ Qtk]?@Ȇ$ií;A@¯Å¸,p]?@µþ–ü;A@0¬Ñat]?@›)c2 »2^]?@a cI6n\?@[”~g ,\?@–vj.7U£W[?@•m–¹ÝŠZ?@`,¹;A@¦(—Æ/Z?@ å3²;A@í°=Z?@ÈÜÙ²;A@ Â¤RZ?@[ “”ª;A@Ì,jZ?@]j„~¦;A@ÙÌ!©…Z?@ßBhN¨;A@Õ”dŽZ?@£H­;A@›C­Ä—Z?@EþO´;A@äÜ•žZ?@¦ÒO8»;A@¤ý°Z?@ÔxŽm¾;A@Ø­¯¿Z?@(Å(¾;A@äÀ«åÎZ?@¡‹áEº;A@/ŒO\éZ?@â]‰›®;A@wpfª[?@ñ ~À¨;A@.Þ4"[?@pG“;A@…B˜6[?@ü°9bˆ;A@·›;U[?@`~]î¶f:A@.‰Xi_?@}9i:A@šÒUu_?@:Õ k:A@Ü!Ž£_?@Ýh¶áf:A@*Ã]bÑ_?@ôBð®i:A@ßÓæIã_?@ë›êo:A@`—<ù_?@«¸ÌDl:A@—uZû_?@¼ #m:A@‘¾¤Œ`?@ª¯SQa:A@€H¿}`?@§`èl\:A@cÈû‚'`?@DïžMX:A@ë$Ð3`?@zPPŠV:A@€/àÀ?`?@gxXM:A@ ïX`?@_{fI:A@ûp5Wr`?@?,åÆ>:A@R ô.ƒ`?@‰Âx9:A@ž£D‘`?@Ñ8y6:A@ïúq `?@|ëhÁ0:A@•¬Ôý­`?@IŸVÑ:A@Y«Ñ»`?@ÇàM:A@7Zi­Ã`?@ô³¢:A@“ `Ê`?@%ÚŸÕ:A@™ß¥È`?@>L :A@?tA}Ë`?@?²_:A@ !Ò%Ò`?@ùœ:A@ãñþ‰Û`?@ˆÏçí:A@2Ì Úä`?@¶ŒŠî:A@yHuð`?@ÎXV:A@ë16ú`?@xÁ– :A@¡ca?@±¸¤:A@D ¯na?@üлg:A@üáç¿a?@Omº¯:A@™„la?@ŸªÎ:A@x'Ÿa?@£Ÿ_J:A@Z𢯠a?@²–L_:A@³8­%.a?@?{ó:A@€ˆÃˆ3a?@libspatialite-4.3.0a/test/shp/taiwan/0000775000175000017500000000000012573314326014552 500000000000000libspatialite-4.3.0a/test/shp/taiwan/leisure.shp0000664000175000017500000000057412544707704016670 00000000000000' ¾èVLYã`^@Jð†4* 9@Ó‚¼Ãa^@I}þ 9@pVLYã`^@Jð†4* 9@Ó‚¼Ãa^@I}þ 9@ V¢Gç`^@I}þ 9@pdy²ö`^@·V  9@h?RDa^@á¾Ä 9@Ó‚¼Ãa^@Æ-‹. 9@‡˜\Öa^@uæ 9@Cw¤Ua^@ÕÅ·Áš 9@›ò×a^@Jð†4* 9@VLYã`^@l{»%9 9@ðò¢å`^@æÂ’¼„ 9@H½L¹ç`^@Bñ¾…Ð 9@V¢Gç`^@I}þ 9@libspatialite-4.3.0a/test/shp/taiwan/hystoric.prj0000664000175000017500000000040312544707704017054 00000000000000GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]] libspatialite-4.3.0a/test/shp/taiwan/hystoric.shp0000664000175000017500000000101012544707704017046 00000000000000' 蚸°Éõ ^@‹´C²66@E&…Öo^@`ûn_¬(9@ zñW^@¿÷’!"¬6@ tŠŸK6^@ L[æ§8@ Ô Ãײ^@xfÝš…7@ FKÔÁ0,^@„#íëe&8@ UX_ˆc^@•€˜„ 9@ õÐãœ};^@‘Wð6Þ7@ VÄŸ&^@_©xm€—6@  CǪ/^@‹´C²66@ ˪¾©þ/^@ùÀŽÿ6@ š¸°Éõ ^@dNáRÿ6@ ¤Ÿº ^@Ò+¯¦ü6@ Ñ·`è ^@µ" µü6@ 7BõÅ^@%”¾rž6@ E&…Öo^@Tâ:Æ'9@ ãgÈ[m^@`ûn_¬(9@libspatialite-4.3.0a/test/shp/taiwan/route.shx0000664000175000017500000000020412544707704016354 00000000000000' BèÌO`ðL^@. GF½¨6@ ±‚„Íg^@ú01L\#9@2 T ŠxPZ˜libspatialite-4.3.0a/test/shp/taiwan/hystoric.dbf0000664000175000017500000000165412544707704017025 000000000000006idNsub_typeCnameC 262996077monument 293422100memorial 鄭漢紀念碑 309679442monument 王得祿墓 378727035archaeological_siteå°ä¸­æ”¾é€å±€ 695446660wayside_shrine 800332375memorial 800771510monument 劉æ°å®—祠 945771195city_gate South Gate 945771291city_gate East Gate 946524530monument ChiKanLou 948007214city_gate Great South Gate 949661330city_gate East Gate 1085529876monument British Embassy 1129844115ruins Dutch Fort 1364234523castle Japanese Fort libspatialite-4.3.0a/test/shp/taiwan/route.prj0000664000175000017500000000040312544707704016346 00000000000000GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]] libspatialite-4.3.0a/test/shp/taiwan/hystoric.shx0000664000175000017500000000033412544707704017066 00000000000000' n蚸°Éõ ^@‹´C²66@E&…Öo^@`ûn_¬(9@2 @ N \ j x † ” ¢ ° ¾ Ì Ú è ö libspatialite-4.3.0a/test/shp/taiwan/route.dbf0000664000175000017500000000045612544707704016316 00000000000000+idNsub_typeCnameC 447449subway文湖線 447451subwayæ·¡æ°´ç·š 447471subway新店線 80497291ferry Fugang to Green Islibspatialite-4.3.0a/test/shp/taiwan/leisure.dbf0000664000175000017500000000060112544707704016620 000000000000003idNsub_typeCnameC 1289086park自強公園 (Ziciang Park) 1289102parkç¦æž—公園 (Fulin Park) 1289104park介壽公園 (Jieshou Park) 1289105park陽明公園 (Yangming Park) 28357585park228 Memorial Park libspatialite-4.3.0a/test/shp/taiwan/leisure.shx0000664000175000017500000000021412544707704016667 00000000000000' FèVLYã`^@Jð†4* 9@Ó‚¼Ãa^@I}þ 9@28>DJplibspatialite-4.3.0a/test/shp/taiwan/route.shp0000664000175000017500000002175412544707704016361 00000000000000' öèÌO`ðL^@. GF½¨6@ ±‚„Íg^@ú01L\#9@ TáÓœ¼Èb^@‹3†9Aÿ8@ ±‚„Íg^@1‡“êñ9@DG‰–œŸ§¬²ºÂÆÑpÜñSc^@1‡“êñ9@Á!¯bLc^@Ç€ìõî9@úÙ#/Fc^@ë íâ9@|~!~%9@Í 5žãb^@Ãõƒ9@ã®Ûb^@¯w$å9@„ Úb^@¤›®Ê9@tïá’ãb^@q³Ój£9@î€FD c^@w¦)9@qø²#c^@_$´å\9@Ê6pjc^@5Odœu9@“\Yýlc^@è|Â#;9@EYÆac^@RJÜ9@¢vdQc^@“Øý9@qó×u9c^@Œ>0‘9@9ÂX•3c^@üÙ4[9@Õðˆec^@|¼ëÇ9@f¦ c^@Î[+9@jy/öb^@ˆt.{È9@³g*Ýc^@ÕSõ<É9@²ÚWyÝc^@øõè²=9@ú™zÝc^@¯|ñ 49@jy/öb^@ˆt.{È9@ÕH¦žàb^@Óò¨9@~¹`ºÚb^@ hDz9@ ñ’I×b^@å,G#ú9@°”ÀAÖb^@:³Mà9@Î Öb^@ÚW¤§9@] /ÒÕb^@ÓÇ2³…9@{%ÚŸÕb^@¿ÙA€g9@®lÕb^@L»=­G9@É®´ŒÔb^@‘æÙö‡9@ôÃáÑb^@„õÚÇe 9@y UŒÎb^@‰Ñs ] 9@ö_ç¦Íb^@Ü«Eú£ 9@\¸b5Ìb^@1zn¡ 9@oƒÀÊb^@¾XΔŒ9@Õ%ãÉb^@w§–¯9@áÓœ¼Èb^@{(=x9@F=ééÈb^@]M n9@ZŒpÉb^@œ7©Ãe9@æ\Š«Êb^@.”§`9@êX¥ôÌb^@+HØ\9@$NÝKÐb^@öÁè¨Y9@áoÅßb^@*ÌÖU9@£Èðb^@óÀl§R9@ Ö8›c^@°¼õ«J9@h†žÞVc^@F­ÕÃ<9@rõZc^@²O[~;9@§wñ~\c^@–æûN89@G Àš^c^@†Ï1{49@±‰Ì\`c^@A«ÝÀ.9@¹Œ›hc^@]­Í9@[- ·c^@o<é9@ÁÙ÷òÌc^@-•·#œ9@ÿÊJ“Òc^@hµØ…9@¤Y4øÖc^@`îî\s9@Þh›Ùc^@g>Œµd9@Hè]Ûc^@9½æ°V9@ë˜Üc^@¸ŸF9@Mq LÝc^@,ôÁ269@²ÚWyÝc^@õ«ï²9@³g*Ýc^@ÕSõ<É9@·ÇÉc^@-ɦ9@93°Äc^@žÙdCí9@Ôº j¿c^@Ö4”Ò9@_)&ʹc^@Ëlë¹9@È“I²³c^@@øP¢9@YLl>®c^@r¶Ê]•9@‘œLܪc^@¿⿊9@YQÞ¢c^@Qr=ÀI9@`cD¢c^@õ9-.D9@BLxø¡c^@.t =9@klex¢c^@— ~Y59@Jð†4ªc^@ÃOM“e^@×Ju9@iÝ«ûle^@¹Däªh9@ ýL½ne^@ †7k9@g´úqe^@¬¾¸j9@U@rfe^@V|P9@e¹¶ie^@` µìZ9@t_Île^@.8ƒ¿_9@>i—%pe^@.8ƒ¿_9@xë¡"se^@¦,žÕ]9@ç€nyve^@Ìæ_Y9@‡†jïxe^@(rÒET9@'µa^‘e^@ÔIt9@g´úqe^@¬¾¸j9@óé çue^@M¢^ði9@!v¦Ðye^@19ÿÀf9@À{¢F|e^@ĺ§a9@aª™µ”e^@9œùÕ9@+Ñ£se^@ù`¾aG9@LwLve^@¥µ³<9@úý¬Ce^@Þš*Î9@šNe^@²Ë9@:#J{ƒe^@8%j³ûÿ8@ã­N)Še^@NÈióÿ8@e¹¶ie^@` µìZ9@dncXje^@øf@b`9@iÝ«ûle^@¹Däªh9@ÙÿJøoe^@19ÿÀf9@‚Uõre^@ßþ\4d9@^-we^@¦,žÕ]9@¼ Z£ye^@8‰œX9@Á¤?’e^@»á-F9@ôH("he^@Xön=T9@úÔ±Jie^@z¬tÒV9@iÝ«ûle^@–ÔZ9@ØrxRpe^@–ÔZ9@xxtÈre^@8‰œX9@ñ˜ue^@ =êT9@Qs¨•xe^@ºÎЉN9@Œ8S×e^@¸à±D 9@²m¬ve^@YoB9@V‰h*ze^@'ûB#39@+û®~e^@ãüM(9@y¡oÁˆe^@Ä2G  9@U@rfe^@V|P9@ôH("he^@Xön=T9@ÿ]Ÿ9ke^@ =êT9@9úN‚me^@(rÒET9@£ìˆžoe^@ sQ9@Ýn“›re^@ZŒpI9@+Ñ£se^@ù`¾aG9@²m¬ve^@YoB9@‹‚…8{e^@Cd¢R69@ËPÊe^@ï(„Ä,9@R¶HÚe^@¨Éçp9@×b]Åg^@¹ž2H 9@!¡Êg^@y†ð9@ ±‚„Íg^@Ž{NÕ9@®—Ëg^@H‘@Å9@Xó-½Çg^@ˆ„J·9@˜Št¿g^@We•ˆ¦9@. ø±g^@#föyŒ9@g4¨ìªg^@)Yóˆv9@:!tÐ¥g^@‘´ÀÃY9@¡ÇÞA¢g^@øä¼ZI9@ñ×rg^@ ¹¢)9@Ö0è)—g^@× Où!9@ –Í’g^@ˆ–áä#9@;5—Œg^@¶j2>'9@ë7Ó…g^@Þ•¸é*9@kÛg^@MY—d.9@s‚69|g^@n ß?9@©›0{g^@]\,V9@­þc|g^@b´3ñ³9@Oë6¨}g^@¶¬±:(9@˜[€ng^@çä ßR9@ßÛôgg^@‡Å%`9@R?q_g^@õõ|Ír9@&ÖóXg^@-AF@…9@™ á(Tg^@IÛø•9@#S™½Gg^@ïh-Ð9@ P >e^@"Löt9@ÿ äÄ e^@1ÓQi9@m [ie^@æîÎ5'9@j„#íëd^@†Ê¿–W9@¿M•¹d^@° (§9@‰ñŒd^@5,¡Þ9@б(‘id^@…UaØ9@7¨ýÖNd^@êÒÞ9@|a2U0d^@«í±9@?ëÐd^@»>59@ÎUód^@ç°VHT9@ý9æc^@#†Ƥ9@ƒTåÖc^@ô®Õy¯9@~|øèÃc^@`ZÔ'¹9@!ÈA ³c^@ε œ9@eJ5ý£c^@m’zªž9@Ýöó\•c^@<…\©9@Ô]~Lc^@YtFï¯9@ §ùt†c^@í’‚¸¼9@…¹8…pc^@1•~ÂÙ9@Ó$”cc^@ba-ã9@pÜñSc^@1‡“êñ9@xú ÒŒÅ]^@g:…9@'Z¨ë¿a^@ú01L\#9@‹04/§Ä$a^@g:…9@öâÕƒa^@Þ…÷få9@—Gí4a^@GNpû/ 9@XB-¼a^@~Wÿ[ 9@B‚˜:þ`^@Þƒ!¼‡ 9@)Õ™Öa^@ã3~†Ü 9@§[Rÿ`^@ªWÛ^ 9@Cw¤Ua^@ÕÅ·Áš 9@ÝzMa^@m‹×añ 9@"¨½a^@ ²¯†Õ 9@‚óóð/a^@I£]àM 9@™ýpFa^@~$A¸ 9@X5­¹Ha^@AlD‹Ç 9@(8«ôIa^@±ÂHÔ 9@’··¶Ka^@Ô|•|ì 9@M„ Oa^@K= By 9@ˆ‚Sa^@ó›x½9@¦I*Sa^@§èH.9@qùYvRa^@YCóJ9@lpl‡Pa^@ÆÐûe9@—qSMa^@.a#ÿ‚9@(ö+øHa^@.úª¦9@s½m¦Ba^@yî˜å9@6Û&&9a^@hðREL9@ËAu8a^@{E\¥`9@fKVE8a^@ Tµ“w9@›ÑEù8a^@³Êñ¯Š9@›ÑEù8a^@³Êñ¯Š9@ÚÜ=å=a^@ ªü!ì9@øˆ=YÖ_^@MPq#"9@HÐN¼¹_^@5g؃¤"9@šøY™_^@ƒ .g#9@¼k%y_^@èN°ÿ:#9@%/!Õf_^@d._MT#9@«’m…U_^@ú01L\#9@øá !J_^@…|гY#9@ÊÁl _^@wWŠ.#9@keÂ/õ^^@äø#9@ “1ã^^@êÒÞ#9@㊋£^^@ªnäpœ"9@ÖT…^^@˜ûä(@"9@æI^^@ÀM"|!9@8û^ž)^^@¡N"!9@y"ˆóð]^@Æ‹…!r 9@ÁÿV²ã]^@6¸c ! 9@MnoÞ]^@.x, 9@|Y$7Ô]^@¨!ªÚ9@ú ÒŒÅ]^@%¤Û·9@iàG5ì_^@•÷Ìí¹!9@)›Í>ê_^@—œ$§À!9@¥õ·à_^@6´\‘ó!9@øˆ=YÖ_^@MPq#"9@ÚÜ=å=a^@ ªü!ì9@zx…ôJa^@a Å C9@„Y²tOa^@Uú g·9@Êåš]Ra^@¸fá¡Þ9@ñ8û¹Wa^@OPÔã9@°Ñ(ma^@[uÂð¶9@|ÐX ‚a^@ˆÑR9@K¶V…a^@lkU\f9@O%^ù‡a^@hY÷…9@‰4;œŠa^@ÇÂÆ«9@c/oia^@ýI|î9@¹Õ½_–a^@Q[ÙôV9@(–¡ša^@|´8c˜9@»Ö9aa^@vÛ*-È9@[—¡Ÿa^@?u í9@Õ'¢a^@¯¦üµ9@vjÓ}¥a^@¤fYA9@PûRäµa^@ÔÕúl9@¿ƒºa^@’í!†9@‡‘?½a^@f?œÑ 9@æm¶¿a^@ÌÎG¾·9@3{é¿a^@-hÕ9@'Z¨ë¿a^@é0ºó9@‡™Ç«½a^@J³Œ9@eÏT>ºa^@çœéoS9@D~ ¶a^@P)”9@q¥CL®a^@¨ë?!ñ9@h 2ªa^@ug7D&9@ea>¤a^@‰ÿ"h9@ ¢“Ja^@C9Ñ®9@6(Pz•a^@Ù~ú9@AeüûŒa^@šj<9@÷}“{a^@R½iÈ9@áî¬Ýva^@$´÷ó9@Ü­v^ta^@³ÙG]!9@×€­·ra^@Hƒ€!P9@<³na^@Ǹââ¨9@oIOla^@Òq+Î9@׎=Öga^@B4ó9@å ¯ba^@7µ" 9@ûY,Ea^@(5jt½9@;{';a^@Á¬P¤û9@¶²Žô3a^@_sX+$9@»c±M*a^@ZS‡[9@¸«6$a^@[¶1Ñ{9@:w»^a^@åîs|´9@倸a^@óÓqë9@‹ZPÎa^@U˜e+9@/÷ÉQa^@HÅÿQ9@V΃`ú`^@²æít9@Ê9@Aç$`^@ˆ”°€S9@mu9% `^@6ðþÓh9@å´§ä`^@š»ñI‚9@R¹‰Z`^@ÕU&¡9@AÊ™7`^@X¤§È9@ãá=`^@¼W­Lø9@µiö`^@þ¯ß¸1 9@¤`|‡`^@`«©ÑP 9@Ä`^@جDê‡ 9@}ß  `^@MY<«» 9@­Åº `^@ ê¶Ÿç 9@ã°êb `^@$ÜÇþ 9@D«îì`^@U×Fá!9@oÃ`^@­P¤û9!9@Ë^ÿ_^@cV9þU!9@ÐoNÛõ_^@s昇!9@iàG5ì_^@•÷Ìí¹!9@P/§Ä$a^@‡³>Jõ8@u¡ܽb^@g:…9@G/§Ä$a^@g:…9@TÝÈá8a^@÷ü9@;":_Ga^@ß%Æ×9@°Ræ‹ba^@íU^<9@%®c\qa^@§”×Jè9@ÿ—kÑ‚a^@kF¹‹9@!Ï#a^@ ˆE ;9@̱aò«a^@'¥û”¾9@²U88Ça^@ö@+0d9@¶Øí³Êa^@ÇWñüX9@Ù—l<Øa^@Jö¾§(9@9b^@Å›ëêD9@Ž•˜g%b^@‡{v 9@m.HDBb^@ |(Ñ’9@ÀnÝMb^@àw»U9@€'-\Vb^@ÁÊüþ(9@ Û9^b^@öÊmû9@Ì1Oeb^@<}©D~9@=ÖŒ rb^@í‘ã 9@›zb^@—Á½×9@CÊOª}b^@»Å²O¶9@$8?b^@+ƒÊ 9@fÄb^@q1PcŒ9@~åœ3}b^@Õé@ÖS9@-!Ä:zb^@Ý­Ñ9@Qàxb^@®œ½3Ú9@ 3‰zb^@Ô#²´9@\Z ‰{b^@Xõh¥9@ 6ªÓb^@÷÷c9@E[ßÑb^@™·áÿ8@%És}Ÿb^@†ª˜J?ÿ8@kšwœ¢b^@íþgƒÿ8@²¢aŒ£b^@3Vö¸Êþ8@wýÝ–£b^@­Ýv¡¹þ8@3g¢b^@bhur†þ8@ QW-Ÿb^@¶ êJþ8@ålðtb^@ªÙ^f3þ8@(þ9–b^@­1è„Ðý8@®>h‡‰b^@G> 2]ý8@» l‡b^@0)>>!ý8@ôûþÍ‹b^@Ã{³rÔü8@›ûPŽb^@dG™Ã¤ü8@£té_’b^@ëýF;nü8@¬;q”—b^@îmDAü8@ºC/HŸb^@«ÏÕVìû8@Eôkë§b^@ÿø\·Rû8@ê¹;!ªb^@Õ-ñ6%û8@¦µil¯b^@‘Œ‹Yåú8@4½H²b^@àòýy¿ú8@’ðy´b^@Å£ù¡ú8@±ª¹·b^@ýq±Xyú8@qci–ºb^@ÿÞ·kSú8@¸Çwλb^@›£3Õ8ú8@|’…ù¼b^@Šh…3 ú8@d•Ò3½b^@ʨ2Œ»ù8@jßÜ_½b^@he±ù8@LÆ1’½b^@!ÒÊzù8@u¡ܽb^@…úL¬Bù8@™¿Ÿ½b^@©H*øù8@›*κb^@6Ÿ)*Ñø8@€³9s´b^@ü­øá{ø8@]µ|n²b^@Mç]ø8@ó2/,¤b^@xá¬÷8@¢qòl b^@Úô±Ìl÷8@àÀ€b^@P)e¶ö8@„Iññ‰b^@¨/ÿ|ö8@î¨{®€b^@cÉžJö8@'©§êyb^@îëÀ9#ö8@ Ü¶ob^@õP6@Äõ8@ͰQÖob^@2+Ê[dõ8@ºµñÌpb^@‡³>Jõ8@˜ÌO`ðL^@. GF½¨6@¤à)d^^@šÌ¢vÊ6@÷eLL^@šÌ¢vÊ6@ösTNL^@? }ömÊ6@ ,!Ä:L^@ÇhUMÊ6@Qw¯¤&L^@!Rxu3Ê6@ÌO`ðL^@ôØ;HôÉ6@¾nÔ/L^@Ùÿ¥±bÉ6@òSf”xL^@} yçPÈ6@xnÿ8O^@¢oÂBÁ6@_P•¥ŒS^@¤ÂØB·6@„c–= W^@‘qÖñ©±6@}ª¯SQ[^@;ùÞ:¬6@÷EøÍ3]^@+1‰ª6@QÚ|á]^@C D•©6@41¸AH^^@7¹Lò¨6@¤à)d^^@ºùFtϨ6@!gP#c^^@. GF½¨6@libspatialite-4.3.0a/test/shp/taiwan/leisure.prj0000664000175000017500000000040312544707704016660 00000000000000GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]] libspatialite-4.3.0a/test/shp/new-caledonia/0000775000175000017500000000000012573314326015775 500000000000000libspatialite-4.3.0a/test/shp/new-caledonia/buildings.dbf0000664000175000017500000000167012544707704020362 00000000000000 ¡OPK_UIDNosm_idNnameCtypeC 128410303Le Stanley hotel 228412605Péage de Koutio 337372024Mairie de Nouméa townhall 437372027Recette Principale de l'OPT post_office 537372028Marché municipal de Nouméa 637624918Station du Marais fuel 737624926 837624927Clinique de la Baie des Citronshospital 937667818La Rhumérie ruins 1037731103Salle omnisport de l'Anse Vata libspatialite-4.3.0a/test/shp/new-caledonia/points.shp0000664000175000017500000000057412544707704017757 00000000000000' ¾èU5œ°Ëd@˾+‚ÿ«6Àü“S–<ðd@Hs¿ž ç5À úärÍîïd@˾+‚ÿ«6À ü“S–<ðd@ªTšÞ©6À "¶ªÛOÎd@fI%áçJ6À -ܨúËd@AoàÄð5À í̥Íd@În-“áð5À #Á¯ìÍd@3 ƒÓ'ð5À U5œ°Ëd@IÀC¬Yè5À ¿a¢AJÌd@Hs¿ž ç5À lûhBÐd@,¼ËE|-6À Ú &4Ðd@fâ±ú~-6Àlibspatialite-4.3.0a/test/shp/new-caledonia/points.prj0000664000175000017500000000040312544707704017747 00000000000000GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]] libspatialite-4.3.0a/test/shp/new-caledonia/points.shx0000664000175000017500000000026412544707704017763 00000000000000' ZèU5œ°Ëd@˾+‚ÿ«6Àü“S–<ðd@Hs¿ž ç5À2 @ N \ j x † ” ¢ ° libspatialite-4.3.0a/test/shp/new-caledonia/railways.shx0000664000175000017500000000031412544707704020276 00000000000000' fè/Ž%DZd@ù ±D±06À8…• jÏd@ò66à$5À2(^@¢0ÖhB0v(¢Hî((F@Š8Æ ê(libspatialite-4.3.0a/test/shp/new-caledonia/railways.dbf0000664000175000017500000000213512544707704020232 00000000000000_ Losm_idN nameC0typeC 72831435Tunnel de Tonghoué rail 73736038Ancienne Gare du Mont Mou station 76811935Chargement en Mer platform 76988035La serpentine de Kouaoua rail 76988036Chargement en Mer rail 76988037Chargement en Mer rail 76988049La serpentine de Kouaoua rail 76988054La serpentine de Kouaoua rail 76988056La serpentine de Kouaoua rail 76988058La serpentine de Kouaoua rail 76988060La serpentine de Kouaoua rail 76988072La serpentine de Kouaoua rail 76988304La serpentine de Kouaoua rail libspatialite-4.3.0a/test/shp/new-caledonia/railways.shp0000664000175000017500000000405412544707704020273 00000000000000' è/Ž%DZd@ù ±D±06À8…• jÏd@ò66à$5À(ÁÑDŽcÏd@ù ±D±06À8…• jÏd@¢A žB06À8…• jÏd@ù ±D±06ÀÁÑDŽcÏd@¢A žB06À@‚[Ò¬Ìd@w­Î{6À´êÎnÌd@ЇAªr6À¯ÿ„ÄÌd@ЇAªr6À‚[Ò¬Ìd@)±k{6À¢–æVÌd@w­Î{6À´êÎnÌd@NUës6À¯ÿ„ÄÌd@ЇAªr6À0/Ž%DZd@  ÀØ%5Àw ï×±d@ò66à$5À/Ž%DZd@  ÀØ%5ÀÕŠ€TÔ±d@m6Vbž%5Àw ï×±d@ò66à$5Àh¨OΚºd@ir1Öi5ÀÔyùB­ºd@t< ç¿f5À ¨OΚºd@ir1Öi5ÀlÖ¡ºd@[¥y‡i5ÀŽg†C¥ºd@ÿ¹;^i5Àç5v‰ªºd@µ`ó»úh5ÀRµ‚K¬ºd@H}£gÄh5ÀÔyùB­ºd@ç1ozh5Àõˆ,­ºd@`O…‰Ph5À:óa¬ºd@:üæ½g5À’c¡Œ§ºd@3b?g5À«¨ ¦ºd@t< ç¿f5À0ªŠ_§ºd@rï+ þe5ÀÚPÖ­ºd@áöºûÒe5ÀªŠ_§ºd@rï+ þe5À%?âW¬ºd@ÇÖÆØe5ÀÚPÖ­ºd@áöºûÒe5À(ÚPÖ­ºd@áöºûÒe5À«ƒr‘±ºd@WTi0²e5ÀÚPÖ­ºd@áöºûÒe5À«ƒr‘±ºd@WTi0²e5ÀHÊ€ý!Gºd@’¤µ³m5ÀÓ$Tºd@jjÙZ_l5ÀÊ€ý!Gºd@’¤µ³m5ÀÀHºd@[Íß)‰m5À´Fó¶Hºd@o l•`m5Àqt«Lºd@…çJ©ðl5ÀÅE¤\Pºd@ƒÓ̤—l5ÀÓ$Tºd@jjÙZ_l5À(´$›Fºd@uJQxn5ÀÊ€ý!Gºd@’¤µ³m5À´$›Fºd@uJQxn5ÀÊ€ý!Gºd@’¤µ³m5À (Ó$Tºd@jjÙZ_l5ÀŽŽSYºd@Ÿ¸Ò!l5ÀÓ$Tºd@jjÙZ_l5ÀŽŽSYºd@Ÿ¸Ò!l5À @>® cºd@øÄ:U¾k5ÀðhˆÏ‚ºd@â Y8¤j5À>® cºd@øÄ:U¾k5ÀŸƒxnkºd@NUësk5ÀfO›sºd@B!§T.k5À.™ì|ºd@DãäÙj5ÀðhˆÏ‚ºd@â Y8¤j5À 8ðhˆÏ‚ºd@â Y8¤j5À¨OΚºd@ir1Öi5ÀðhˆÏ‚ºd@â Y8¤j5À,i ñ†ºd@NX,j5ÀØþ„iŽºd@{>j5À¨OΚºd@ir1Öi5À  H^Œ7h¸d@¡GŒžu5À‰E ;Lºd@uJQxn5À!H^Œ7h¸d@‘CÄÍ©t5ÀÜþKˆ¸d@Ã7Ét5ÀÇÆrž¸d@d|óvßt5À´¦·¸d@Í‹Kút5ÀtF”öƸd@´EY u5Àè%À׸d@ ºsu5ÀÎYë¸d@JÂt*u5ÀÏ´X¹d@³^ åDu5Àå† ¹d@9¬ºXbu5À¶t¿9¹d@yɤ+}u5À÷õùJ¹d@™‘‹u5À Ð¥n]¹d@¡GŒžu5À€,z¹d@àPS&u5À3ó‰á¹d@¯}½pu5ÀSÛ—}¨¹d@JÂt*u5À¾ƒŸ8À¹d@¤P¾¾t5À%0ŒªÕ¹d@¥% Ó=t5ÀΕ÷'ç¹d@ ‚ØãÏs5Àýydý¹d@¶.5B?s5ÀÞ}qºd@;¸…øÑr5À…uˆ$ºd@î›Ver5À:#/+ºd@†è8r5À†žƒ5ºd@Ÿ ¨Ë½q5ÀNèšn>ºd@[ÃVBq5ÀߺEºd@RôÓp5À´¹ Iºd@ûé?k~p5Àn‚áKºd@)Kcjp5À‰E ;Lºd@# ²˜o5ÀÓZKºd@KxB¯?o5Àчx5Jºd@Ç]ζän5À´Fó¶Hºd@¹Ïà¥n5ÀäCõ{Gºd@È-œZn5À´$›Fºd@uJQxn5À (ŽŽSYºd@Ÿ¸Ò!l5À>® cºd@øÄ:U¾k5ÀŽŽSYºd@Ÿ¸Ò!l5À>® cºd@øÄ:U¾k5Àlibspatialite-4.3.0a/test/shp/new-caledonia/buildings.shp0000664000175000017500000000454412544707704020424 00000000000000' ²èôl¦ Îd@¬¹íŒL6À‘Ù´­Ïd@ ×D u'6À ˜3ÛúÎd@g.Ë2I6ÀКtÏd@–"ùJ I6Àœ…â3þÎd@ P I6Àþ÷;oþÎd@š‹ {$I6À Où!Ïd@–"ùJ I6ÀКtÏd@W s'I6À%QÔþÎd@UPQõ+I6À†7kðþÎd@ ô?¯.I6À4?H`ýÎd@"T2I6ÀRoü?ýÎd@5?£0I6ÀšÜÞ$üÎd@g.Ë2I6À˜3ÛúÎd@ Ìeþ,I6ÀÐ=aúÎd@c>Å'I6À ÊÄüÎd@CÑòò*I6ÀˆäUüÎd@§$F*I6Àvß1üÎd@EY 'I6À™ðKýüÎd@ÃÂÿ %I6Àí×îüÎd@}¦¨D#I6Àœ…â3þÎd@ P I6À@ˆlö¶Îd@v"wÇ66À¶8 ¹Îd@··[’66À@•‰¸Îd@··[’66À¶8 ¹Îd@Áîß66Àþ¥ûï·Îd@v"wÇ66Àˆlö¶Îd@–G’{66À@•‰¸Îd@··[’66Àèôl¦ Îd@¹é…ñ‰E6Àn,ÍÎd@/>»2^E6ÀH®ö Îd@™0õN`E6ÀkVÇ;Îd@ÄÁ”7vE6ÀFÎd@¦ð ÙuE6ÀS?o*Îd@1yÌ|E6ÀÃcÎd@ꄆ´|E6ÀtÙCVÎd@¸[’vE6À>¬Ü°Îd@ùîûÜuE6Àn,ÍÎd@ix“„E6ÀåLnoÎd@'„º„E6Àµ±ÈeÎd@$‘±E6ÀÁv‹Îd@»2^E6ÀH®ö Îd@™0õN`E6À „‰šC-Îd@ºž~F6À’Ü« 3Îd@ ¾Ä³_F6ÀÎ% N3Îd@ž±/ÙxF6À›“rR3Îd@ívb{F6ÀluÞk-Îd@ºž~F6À„‰šC-Îd@§ia`gF6Àú¶`©.Îd@Z¸¬ÂfF6ÀD‹Ç .Îd@©jÝaF6Àý¾3Îd@ ¾Ä³_F6ÀW ‡3Îd@göÔEeF6ÀÔÎÕû2Îd@mWèƒeF6ÀQù2Îd@PcdF6Àÿ<²^1Îd@;B¼dF6ÀóË`1Îd@UŸPôeF6À”[Iá0Îd@Þ‚[-fF6Àsë0Îd@o õkF6À­mŽ3Îd@v5yÊjF6À’Ü« 3Îd@ ÄF´xF6ÀÎ% N3Îd@ž±/ÙxF6ÀP{‘¿jÎd@%˜Å F6Ày"*Îd@Na¥‚ŠF6À÷•b¢Îd@Na¥‚ŠF6ÀƒÿÎd@ŸÃ!ÀŽF6Ày"*Îd@:¿rΙF6Àý òÎd@%˜Å F6ÀÑrÎd@Ú:8Ø›F6À{‘¿jÎd@ž£D‘F6À÷•b¢Îd@Na¥‚ŠF6À@2xó¯Ïd@AÇýýG6À‘Ù´­Ïd@4$8?G6À2xó¯Ïd@Ü¥h@G6ÀÇeÜÔÏd@4$8?G6À‘Ù´­Ïd@ÂÄzþG6À<–ˆÏd@AÇýýG6À2xó¯Ïd@Ü¥h@G6ÀP‹UÞé©Îd@„?hâÂF6Àq2ò­Îd@‰ê­­F6À­Ú5!­Îd@ú¹üâ­F6Àq2ò­Îd@sGÿ˵F6ÀLÊ8¡«Îd@„?hâÂF6À‹UÞé©Îd@Žþ<²F6À|:hÀªÎd@‰ê­­F6ÀyW⦫Îd@[g<¶F6À­Ú5!­Îd@ú¹üâ­F6Àÿº‰ Îd@º_ª>üK6ÀA^´lÎd@‡LžWáK6Àÿº‰ Îd@©ºì|äK6ÀÒUº»Îd@†,Á˜ãK6ÀUÄÚÎd@9¯V’áK6ÀT¾ kÎd@‡LžWáK6À à-Îd@KvlâK6À?‡ž9Îd@ ˆZäèK6ÀºyôÎd@“»ìK6À¯•Ð]Îd@4û—ÿëK6ÀA^´lÎd@OñnüK6ÀœžªÎd@º_ª>üK6À!¥Îd@«HàjøK6Àä1^Îd@cTcSøK6À[jsRÎd@7‰ïK6ÀÇhU Îd@V}SýïK6Àÿº‰ Îd@©ºì|äK6À @WËBàíÎd@Èghòƒ'6ÀG“‹1ðÎd@ ×D u'6ÀG“‹1ðÎd@TcSø}'6Àe9 ¥ïÎd@Èghòƒ'6ÀWËBàíÎd@ë\¬{'6ÀÕúlîÎd@ ×D u'6ÀG“‹1ðÎd@TcSø}'6À @ÃyÝÇ6Îd@¬¹íŒL6À¨¬¥<Îd@¢³ïåK6À#Àé]<Îd@¢³ïåK6À¨¬¥<Îd@a©ÕüK6ÀIfõ7Îd@¬¹íŒL6ÀÃyÝÇ6Îd@î&ø¦éK6À#Àé]<Îd@¢³ïåK6Àlibspatialite-4.3.0a/test/shp/new-caledonia/buildings.prj0000664000175000017500000000040312544707704020413 00000000000000GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]] libspatialite-4.3.0a/test/shp/new-caledonia/points.dbf0000664000175000017500000000243012544707704017711 00000000000000 ÁoPK_UIDNosm_idNtimestampCnameC'typeC 12420705042011-07-15T23:00:12ZBaie de Vao attraction 22420709002010-01-20T01:33:09Z attraction 33127154912010-11-22T00:06:42Z traffic_signals 43404840792011-07-25T05:33:53ZBanc de la Rivière du Humboldt bench 53404860902011-02-06T19:01:40ZCol à 1000m bench 63404863852011-02-06T19:00:49ZBascule Cote Est (Rando des 4 rivieres)attraction 73407068922011-07-15T04:26:59Zsource bench 83407070922011-07-15T05:05:17ZRefuge du Vulcain shelter 93481687652009-02-21T01:27:08ZAcrobranches attraction 103481687692010-06-20T07:00:25Z parking libspatialite-4.3.0a/test/shp/new-caledonia/buildings.shx0000664000175000017500000000026412544707704020427 00000000000000' Zèôl¦ Îd@¬¹íŒL6À‘Ù´­Ïd@ ×D u'6À2 Ö@è ªPþ@BP–*@n@libspatialite-4.3.0a/test/shp/foggia/0000775000175000017500000000000012573314326014523 500000000000000libspatialite-4.3.0a/test/shp/foggia/local_councils.prj0000664000175000017500000000114012544707704020151 00000000000000PROJCS["ED50 / UTM zone 32N",GEOGCS["ED50",DATUM["European_Datum_1950",SPHEROID["International 1924",6378388,297,AUTHORITY["EPSG","7022"]],AUTHORITY["EPSG","6230"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4230"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","23032"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] libspatialite-4.3.0a/test/shp/foggia/local_councils.shx0000664000175000017500000000111412544707704020161 00000000000000' &è(Q{mõY.A´é€¢ÊjQAÌ™Â0AlLëQA2¸î0("Ð7ö0G*U6gR%&Œ|@¦ÀȼŒ8ìõ|  @)d =ˆ>\{èh–T@±˜,ݶ-à š<€H#k"Pv;PºÊ ÆÞ*hñJ”ÿâv#3z#(V¦j¾Ð|’H˜ÞH«*Ⱥö4(ï"Cš2À =Ì*Èh˜¸„T3¾¸'°ßÊ3à® ¾Ø"š4âW€&H}Ì‘`ø¥\Ø®8$ ÒÜ/¼œˆ( 6L@Q˜o, |À%Ø¢œDXæø÷Œ€  `t 0libspatialite-4.3.0a/test/shp/foggia/local_councils.shp0000664000175000017500000344352012544707704020167 00000000000000' #¨è(Q{mõY.A´é€¢ÊjQAÌ™Â0AlLëQA¸(Q{mõY.AlLÀk QA˜™.AlLÀe§QAô˜€Õn.AlLë¦QA˜€ko.AlLá¦QA˜5p.AlLä¦QA˜Kq.AlL ß¦QA˜€ëq.AlL`ѦQA˜€s.AlL€Ê¦QA˜©s.AlLÀÁ¦QA˜€üs.AlL`À¦QA˜€Pt.AlL À¦QA˜€¾t.AlL ¦QA˜du.AlL Ç¦QA˜€ùu.AlL€Ñ¦QA˜úv.AlLÀÖ¦QA˜Öw.AlL Õ¦QA¸pÞû©x.AUÊÒ¦QA˜€ñx.AlLÒ¦QA˜€z.AlL€É¦QA˜€{.AlLÀ½¦QA˜ù{.AlL`¯¦QA˜n|.AlLદQA˜Â|.AlL€™¦QA˜}.AlLÀ¦QA˜}.AlLq¦QA˜€%}.AlL@W¦QA˜€6}.AlL€C¦QAHÍÜ_?}.AÔnl¼.¦QA˜€B}.AlL'¦QA˜€-}.AlL ¦QA˜€4}.AlLàû¥QA˜€ˆ}.AlLàÞ¥QA˜€~.AlL€Ë¥QA˜€¿~.AlL`¼¥QA˜€@.AlL€µ¥QA˜)€.AlL@¯¥QA˜.AlL`¡¥QA˜€£.AlL ’¥QA˜€5‚.AlLà‡¥QAxˆS‚.AiZŒ…¥QA˜É‚.AlL@|¥QA˜ƒ.AlLx¥QA˜€Žƒ.AlL€t¥QA˜(„.AlLv¥QA˜+„.AlL ƒ¥QA˜Öƒ.AlL@–¥QA˜vƒ.AlL€£¥QA˜÷‚.AlLÀ¶¥QA˜ý‚.AlL`Å¥QA˜€ƒ.AlL`Ì¥QA˜ïƒ.AlL Õ¥QAp2ö!7„.A`ÛØ¥QA˜¬„.AlLÀÜ¥QA˜€I….AlLàߥQA˜ë….AlL€Þ¥QA˜€h†.AlLàÕ¥QA˜€Õ†.AlLÀÍ¥QA˜A‡.AlL`Á¥QA˜g‡.AlL º¥QA˜€Ž‡.AlL °¥QA˜€¼‡.AlL@¦¥QA˜Ò‡.AlL`¥QA˜€ñ‡.AlL ¥QA˜ ˆ.AlL€€¥QA˜€ˆ.AlL`q¥QA˜ ˆ.AlL g¥QA˜*ˆ.AlL€G¥QA˜€Iˆ.AlL`=¥QA˜€tˆ.AlL@5¥QA˜€Îˆ.AlL+¥QA˜€x‰.AlL "¥QA˜€&Š.AlL ¥QA˜€™Š.AlL ¥QA˜Y‹.AlLÀ¥QA˜€%Œ.AlL¥QA˜€.AlL@¥QA˜†.AlL`¥QA˜€ñ.AlL`$¥QA˜UŽ.AlL€-¥QA˜€ÉŽ.AlL 5¥QA˜€\.AlL ;¥QA˜Ò.AlLà=¥QA˜€z.AlLà>¥QA˜€Ê.AlL ?¥QA˜€8‘.AlL=¥QA˜¥‘.AlL 5¥QA˜€ì‘.AlL@0¥QA˜X’.AlL '¥QA˜Ž’.AlL`$¥QA˜ñ’.AlLÀ#¥QA˜€2“.AlL@!¥QA˜‡“.AlL@!¥QA˜Þ“.AlL@$¥QA˜€(”.AlL '¥QA˜n”.AlL)¥QA˜µ”.AlL +¥QA˜€ÿ”.AlL`/¥QA˜8•.AlL 2¥QA˜T•.AlL`2¥QAÈkªªœ•.AlLÀ:¥QA˜€¨•.AlLà.¥QA˜»•.AlL #¥QA˜Õ.AlLà¥QA˜€Å•.AlLÀ¥QA˜€ë•.AlL¥QA˜€K–.AlL€¥QA˜€^–.AlLàó¤QA˜©–.AlL Þ¤QA˜€ã–.AlL€Ë¤QA˜€—.AlLÀ½¤QA˜—.AlL@¬¤QA˜€1—.AlL`š¤QA˜f—.AlLÀƒ¤QA˜–—.AlLo¤QA˜¿—.AlL@[¤QA˜ã—.AlLJ¤QA˜˜.AlL3¤QA˜@˜.AlL`!¤QA˜€˜.AlL ¤QA˜¦˜.AlL@ú£QA˜̘.AlL@é£QA˜™.AlL€Ë£QA˜õ–.AlL@É£QA˜€!—.AlLàÁ£QA˜€?—.AlL@»£QA˜k—.AlL ´£QA˜™—.AlL®£QA˜Ó—.AlL€§£QA˜€î—.AlL ¡£QA˜˜.AlL ›£QA˜˜.AlL`”£QA˜€˜.AlLàŠ£QA˜#˜.AlL€€£QA˜€<˜.AlL`z£QA˜k˜.AlL@s£QA˜˜.AlL€l£QA˜€¢˜.AlL`b£QA˜¶˜.AlL€X£QA˜Ș.AlL K£QA˜ʘ.AlL C£QA˜€À˜.AlLà3£QA˜€}˜.AlL2£QA˜€A˜.AlLà?£QA˜€˜.AlLàG£QA˜Ç—.AlL`J£QA˜€—.AlLàI£QA˜m—.AlLÀA£QA˜€©—.AlL€:£QA˜´—.AlL€2£QA˜€o—.AlL`'£QA˜€P—.AlL@£QA˜B—.AlLÿ¢QA˜€@—.AlL`ï¢QA˜V—.AlLâ¢QA˜]—.AlLÀÕ¢QA˜€:—.AlLÀ΢QA˜€ü–.AlL`Ê¢QA˜‘–.AlLàÄ¢QA˜€™–.AlL`²¢QA˜€I–.AlL ª¢QA˜€ï•.AlLଢQA˜‹•.AlL »¢QA˜[•.AlL@É¢QA˜€>•.AlL`Ô¢QA˜€Ê”.AlL`Ú¢QA˜Ñ”.AlL€á¢QA˜Ô.AlL è¢QA˜ª”.AlL@ñ¢QA˜€”.AlLà÷¢QA˜R”.AlLþ¢QA˜€”.AlLÀ£QA˜€æ“.AlL £QA˜€v“.AlL û¢QA˜J“.AlL@£QA˜Ø’.AlLÀ£QA˜€‚’.AlL€£QA˜€,’.AlLÀ£QA˜€Û‘.AlL@£QA˜ˆ‘.AlL þ¢QA˜€v‘.AlL ý¢QA˜P‘.AlLú¢QA˜'‘.AlLàð¢QA˜€ý.AlLÀè¢QA˜€Ø.AlL Û¢QA˜€Ë.AlL Ï¢QA˜ ‘.AlLàÁ¢QA˜€„‘.AlL ²¢QA˜€Þ‘.AlL ¤¢QA˜’.AlL@ž¢QA˜€“.AlL¢¢QA˜€`“.AlL ¢QA˜€Š“.AlL€–¢QA˜œ“.AlL ¢QA˜€‡“.AlL@x¢QA˜€¤“.AlL€o¢QA˜€É“.AlL@c¢QA˜€¹“.AlL€[¢QA˜y“.AlLU¢QA˜*“.AlLO¢QA˜Ý’.AlLÀH¢QA˜€]’.AlL C¢QA˜€Ð‘.AlL F¢QA˜€¡‘.AlL@A¢QA˜€n‘.AlL€>¢QA˜¨.AlL@=¢QA˜€;.AlL =¢QA˜¶.AlL@;¢QA˜Q.AlL ;¢QA˜ñŽ.AlL@>¢QA˜½Ž.AlL@>¢QA˜€‡Ž.AlL5¢QA˜WŽ.AlL .¢QA˜€(Ž.AlLà#¢QA˜4Ž.AlL ¢QA˜lŽ.AlL  ¢QA˜xŽ.AlL`¢QA˜FŽ.AlLàù¡QA˜Ž.AlLÀò¡QA˜Ž.AlL ç¡QA˜Ž.AlL€Ù¡QA˜€Ž.AlLÀË¡QA˜Ž.AlL ¾¡QA˜Ž.AlLೡQA˜€Ž.AlL §¡QA˜à.AlL€›¡QA˜À.AlLà“¡QA˜«.AlL ‹¡QA˜€Ê.AlL „¡QA˜€Õ.AlL@|¡QA˜Â.AlLÀs¡QA˜q.AlLÀp¡QA˜.AlL@q¡QA˜€tŒ.AlLàk¡QA˜à‹.AlL@d¡QA˜€n‹.AlL[¡QA˜€ÿŠ.AlLàL¡QA˜³Š.AlL`>¡QA˜€[Š.AlLÀ*¡QA˜€«‰.AlL@¡QA˜7‰.AlL`¡QA˜Žˆ.AlL  ¡QA˜ñ‡.AlLÀ¡QA˜4‡.AlLú QA˜‰†.AlLó QA˜2….AlL ¡QA˜€½„.AlL ¡QA˜ðƒ.AlL` ¡QA˜ ƒ.AlL¡QA˜ˆ‚.AlL !¡QA˜‚.AlLÀ*¡QA˜ .AlL1¡QA˜€Ú€.AlL9¡QA˜)€.AlLÀ@¡QA˜€’.AlL@N¡QA˜.AlL`W¡QA˜€º~.AlL^¡QA˜€ê|.AlLàR¡QA˜€€{.AlL€K¡QA˜€7{.AlL0N¡QA˜Ðz.AlLR¡QA˜xz.AlL@X¡QA˜€-z.AlL`\¡QA˜€õy.AlL`X¡QA˜€Üy.AlLàQ¡QA˜Åy.AlLÀC¡QA˜Ây.AlLB¡QA˜€¬x.AlL@ü QA˜€Ëw.AlL`Û QA˜5w.AlL Â QA˜ w.AlLའQA˜Év.AlLÀ¹ QA˜€›v.AlL@´ QA˜Ov.AlL ­ QA˜ v.AlL² QA˜Ëu.AlL´ QA˜u.AlL`¶ QA˜€Qu.AlLÀ¸ QA˜€u.AlLའQA˜gt.AlL€Å QA˜€Ós.AlL@Ñ QA˜€×r.AlL Ï QA˜æq.AlL@Ë QA˜†q.AlL Ë QA˜~q.AlL`Ò QA˜vq.AlLàÜ QA˜€Hq.AlL@ß QA˜äp.AlL`ß QA˜íp.AlL@è QA˜Ãp.AlLàî QA˜€p.AlL€ï QA˜wo.AlLì QA˜€o.AlLê QA˜€Þn.AlL ç QA˜€¨n.AlL€æ QA˜_n.AlL€å QA˜€ n.AlL ê QA˜€¢m.AlL€ï QA˜Gm.AlL€ô QA˜êl.AlL ù QA˜€ƒl.AlLÀø QA˜l.AlL@ó QA˜¤k.AlL@î QA˜;k.AlLàä QA˜ j.AlLàÏ QA˜€ˆj.AlL`Ç QA˜€dj.AlL¼ QA˜€Xj.AlL ´ QA˜j.AlLठQA˜€íi.AlL€˜ QA˜ºi.AlLÀ QA˜€Œi.AlL Š QA˜Zi.AlL`‡ QA˜À!i.AlLˆ„ QA˜ðh.AlL@ƒ QA˜€¸h.AlLÀ QA˜‰h.AlLÀ QA˜€Eh.AlL} QA˜ñg.AlLØu QA˜€Žf.AlLÀk QA˜‡f.AlLm QA˜Áe.AlL@ QAÈb ëXd.AhÔô«˜ QA˜€Gd.AlL ™ QA˜ðd.AlL » QA˜€ód.AlLÀÔ QA˜€e.AlL á QA˜e.AlLð QA˜€ýd.AlL ù QA˜Íd.AlL@¡QA˜€›d.AlLà¡QA˜•d.AlL ¡QA˜‡d.AlL@$¡QA˜€rd.AlL 0¡QA˜€pd.AlL;¡QA˜€¼d.AlLÀM¡QA˜e.AlL ]¡QA˜€[e.AlL@m¡QA˜€®e.AlLt¡QA˜f.AlL¡QA˜%f.AlL€¡QA˜€f.AlL@œ¡QA˜€ e.AlLÀ°¡QA˜e.AlL Ä¡QA˜d.AlL Ø¡QA˜d.AlLÀê¡QA˜cc.AlL@¢QA˜€õb.AlL ¢QA˜Áb.AlL@.¢QA˜ˆb.AlLÀH¢QA˜_b.AlLc¢QA˜€Rb.AlL@€¢QA˜€b.AlLà›¢QA˜»b.AlL@³¢QA˜íb.AlL@¾¢QA˜€c.AlL`Ì¢QA˜€cc.AlLÀí¢QA˜€bc.AlL ý¢QA˜Yc.AlL` £QA˜€Qc.AlLà*£QA˜bc.AlL`8£QA˜c.AlL E£QA˜€wd.AlL G£QA0cÌe.A5IjE£QA8~- e.Aêi8 E£QAX!x•e.A^NVA£QA0lL¨e.AØ¢}æ@£QAp¡w&f.A2)¶ˆ?£QA`ê¥å%f.A¸Ð ã>£QAPpoXf.AŒkôœ<£QA˜f.AlL@=£QA˜Âf.AlLà<£QA˜€ûf.AlLà>£QA˜g.AlL`A£QA˜g.AlL@G£QA˜€g.AlLÀM£QA˜òf.AlL@W£QA˜€»f.AlL@^£QA˜«f.AlL c£QA˜«f.AlLÀi£QA˜€©f.AlLt£QA8©´!¥f.AÔnlx£QA?Öœf.A^ýP·y£QA˜€Df.AlL€p£QA˜€f.AlLÀo£QA˜ñe.AlLàh£QA˜€Åe.AlL c£QA˜€„e.AlL a£QA˜Te.AlL`a£QA˜€e.AlL€e£QA˜Çd.AlL@i£QA˜€d.AlLÀg£QA˜d.AlL@i£QA˜Ãc.AlLg£QA˜ûb.AlL€a£QA˜€Ÿb.AlL f£QA˜b.AlL@g£QA˜Œb.AlL l£QA˜€b.AlLq£QA˜_b.AlL@ƒ£QA˜€Yb.AlL@£QAÅ0£0b.A «)_“£QA˜@ b.AlL˜–£QA˜€Êa.AlL •£QA˜Qa.AlLŒ£QA˜€Ù`.AlL †£QA˜€@`.AlL`†£QAPpošö_.A$Iˆxˆ£QA˜€è_.AlL ‰£QA˜€À_.AlLÀ£QA FÆf”_.AŠbjµ™£QAPÆ}GO_.A™Ä £QA˜€µ^.AlLÀ £QA˜k^.AlL ¡£QAÕ_^.A°µo@¢£QA˜€^.AlL`¬£QA˜ð].AlLÀ·£QAè_a‘].AÔLoAÉ£QA€_¨_Ñ\.AÄô5ÉߣQA€xwÂ\.Aø'iXá£QA(âù^\.AN™Çë£QA€+—)N\.A¼&@í£QA0/~VÇ[.Arä_ø£QAÀ.•·[.Aœ(Ûù£QAè+kW[.A<‘Ø$¤QA@eºI[.A¬_a¿¤QA˜ÖZ.AlLà¤QA˜€ªZ.AlL€%¤QA˜€{Z.AlLÀ8¤QA˜FZ.AlL I¤QA(Q{mõY.AÔnlP^¤QA˜€ Z.AlL@]¤QA˜Z.AlLÀp¤QAÁÚÔZ.A˜±~¤QA˜€-Z.AlL‡¤QA˜Àk“>Z.A*ÊÈŽ¤QA˜€ZZ.AlL€›¤QA ‘èbZ.Aº’¤QA˜Z.AlL`¢¤QA˜€ÖZ.AlL€²¤QA˜‚[.AlL@ʤQA˜€?\.AlL â¤QA˜O].AlLàÿ¤QA˜€F^.AlL ¥QA˜ù^.AlL$¥QA˜€w_.AlL 3¥QA˜€ê_.AlLàN¥QA˜N`.AlL f¥QA˜€Ô`.AlLàx¥QA˜–a.AlL`Š¥QA ~œlêa.AZ§B•¥QA˜b.AlLà—¥QA˜}b.AlL@«¥QA˜€êb.AlL Â¥QA˜c.AlLàÕ¥QA˜Ac.AlL é¥QA˜€ˆc.AlL ¦QA˜Ýc.AlL@,¦QA˜d.AlL ?¦QA˜€xd.AlL N¦QA˜€µd.AlLàV¦QA˜€üd.AlL b¦QA˜e.AlL g¦QA¨¼ï0e.A¨ Sžj¦QA˜€Fe.AlLn¦QAÈkªªye.AlL€v¦QA˜¢e.AlL €¦QA˜µe.AlL ‰¦QA˜Ée.AlL ”¦QA˜øe.AlL`¦QA˜7f.AlL€ª¦QA˜Qf.AlL@¶¦QA˜Rf.AlL¿¦QA˜hf.AlL Í¦QA˜€tf.AlL€Û¦QA˜€xf.AlLàé¦QA˜€ƒf.AlL@ö¦QA˜¥f.AlL §QA˜€»f.AlLÀ§QA˜€êf.AlL $§QA˜€g.AlLÀ1§QA˜€Cg.AlL€8§QA˜€tg.AlL@B§QA˜€¾g.AlLJ§QA˜€h.AlL N§QA˜€Dh.AlL R§QA˜€Šh.AlL`Z§QA˜€¸h.AlL_§QA˜ñh.AlL@e§QA˜€=i.AlLÀe§QA˜€ƒi.AlL€b§QA˜ñi.AlL@]§QA˜€Mj.AlLR§QA˜¼j.AlL`H§QA˜.k.AlL@>§QA˜¨k.AlL€1§QA˜l.AlL@"§QA8Â'Ù–l.A„¿×n§QA˜€©l.AlL`§QA˜m.AlL€§QA˜m.AlL`þ¦QA˜4n.AlL ö¦QA˜€Õn.AlLë¦QA0Ì œ80AlL»QAÌ€ès0AlL@äÅQAÌÀDR0AlLÒÅQAÌ€@R0AlL`ÉÅQAÌÀBR0AlL€¨ÅQAÌ@cR0AlL  ÅQAÌ€}R0AlL€ŸÅQAÌ@¹R0AlL@˜ÅQAÌ€ÎR0AlL ”ÅQAÌS0AlLÅQAÌ@S0AlL ‹ÅQAÌ6S0AlL@‰ÅQAÌUS0AlLàƒÅQAÌÀxS0AlLà€ÅQAÌÀŽS0AlL€}ÅQAÌ@ÇS0AlL@yÅQAÌ€ïS0AlLàvÅQAÌÀT0AlLvÅQAÌ€0T0AlLtÅQAÌÀMT0AlLpÅQAÌÀjT0AlLkÅQAÌ€“T0AlL eÅQAÌ€·T0AlL€[ÅQAÌÅT0AlLÀUÅQAÌ@ØT0AlL€KÅQAÌÀðT0AlLÀ=ÅQAÌ€þT0AlL€4ÅQAÌ€U0AlL`/ÅQAÌÀ2U0AlL .ÅQAÌ@IU0AlL@*ÅQAÌÀTU0AlLà$ÅQAÌ@bU0AlLàÅQAÌÀwU0AlL@ÅQAÌÀ”U0AlL`ÅQAÌÀoU0AlL@îÄQAÌ@¹U0AlL@ëÄQAÌ€×U0AlL€çÄQAÌñU0AlL@éÄQAÌV0AlL äÄQAÌ@PV0AlL€ÙÄQAÌ@sV0AlLàÒÄQAÌ@œV0AlL ÐÄQAÌ€ÃV0AlLÌÄQAÌ@ÌV0AlLàÊÄQAÌáV0AlL@ÈÄQAÌÀþV0AlLÀÅÄQAÌ€ W0AlL€ÀÄQAÌ€8W0AlL ½ÄQAÌ@ZW0AlL€·ÄQAÌÀqW0AlL`³ÄQAÌ@ŒW0AlL@¯ÄQA̳W0AlLà¨ÄQAÌ€ËW0AlL ¤ÄQAÌÀèW0AlL€œÄQAÌÀ X0AlL –ÄQAÌ€ÄQAÌÊY0AlL8ÄQAÌ€ùY0AlL-ÄQAÌÀaZ0AlL@ÄQAÌ@}Z0AlLþÃQAÌ€‹Z0AlLöÃQAÌ€¨Z0AlL`äÃQAÌ@×Z0AlLàÕÃQAÌ@[0AlLàÄÃQAÌ€"[0AlLÀ¼ÃQAÌ€9[0AlL`²ÃQAÌP[0AlLà¦ÃQAÌ@v[0AlL@ŸÃQA̰[0AlL`ÃQAÌ@â[0AlL ~ÃQAÌë[0AlL {ÃQAÌÀ\0AlL@hÃQAÌ€@\0AlLàaÃQAÌ€Z\0AlL [ÃQAÌ€‚\0AlLÀRÃQAÌ€™\0AlL`LÃQAÌÉ\0AlL€=ÃQAÌ@Û\0AlLà8ÃQAÌ@]0AlL@3ÃQAÌ€']0AlL`.ÃQAÌ@]]0AlL@)ÃQAÌ£]0AlL`!ÃQAÌ@^0AlLÀÃQAÌ@D^0AlL`ÃQAÌÀ€^0AlL`ÿÂQAÌÀ·^0AlL@úÂQAÌê^0AlL öÂQAÌ&_0AlLàóÂQAÌV_0AlLÀõÂQAÌ}_0AlL ÷ÂQAÌÀ(`0AlLàöÂQAÌ@`0AlLàôÂQAÌÀÆ`0AlLàóÂQAÌÀî`0AlL`õÂQAÌa0AlLÀøÂQAÌ€=a0AlL@÷ÂQAÌÀVa0AlL óÂQAÌsa0AlL ðÂQAÌ€—a0AlL@ìÂQA̲a0AlLÀêÂQAÌ@Äa0AlL€æÂQAÌ@Èa0AlL€ÛÂQAÌ@Ìa0AlLÀÓÂQAÌÜa0AlLÀÇÂQAÌÀêa0AlL ÁÂQAÌÀþa0AlLÀ»ÂQAÌ€b0AlL`µÂQAÌ@4b0AlL ¬ÂQAÌBb0AlL@¢ÂQAÌbb0AlL@œÂQAÌ€‚b0AlL€–ÂQAÌÀ¶b0AlL`ÂQAÌ@áb0AlL`…ÂQAÌ€ c0AlLÂQAÌÀ2c0AlL`yÂQAÌLc0AlL@kÂQAÌGc0AlL aÂQAÌ€Cc0AlL€ZÂQAÌHc0AlL@SÂQAÌÀVc0AlLÀHÂQAÌ@xc0AlL€@ÂQAÌÀc0AlL >ÂQAÌÀ®c0AlL€<ÂQAÌÀÜc0AlL:ÂQAÌÀõc0AlLà6ÂQAÌ@ d0AlL@2ÂQAÌÀ.d0AlLÀ*ÂQAÌ@Td0AlL€%ÂQAÌ@ld0AlL`ÂQAÌxd0AlLÀÂQAÌ€Šd0AlL€ÂQAÌÀ¡d0AlLàÂQAÌÄd0AlL€ ÂQAÌ€úd0AlLàÂQA̸e0AlL ©ÁQA̼e0AlL œÁQAÌÀÅe0AlL–ÁQAÌ€Ïe0AlLàÁQAÌ@ée0AlLÀ†ÁQAÌÀøe0AlLÀ€ÁQAÌ@f0AlLàxÁQAÌÀ(f0AlL@pÁQAÌJf0AlLlÁQAÌ@bf0AlL kÁQAÌÀƒf0AlL@kÁQA̦f0AlL hÁQAÌ@Âf0AlLgÁQAÌàf0AlL@bÁQAÌÀûf0AlL\ÁQAÌÀ g0AlL€UÁQAÌ€g0AlL€OÁQAÌ*g0AlL JÁQAÌ@Hg0AlLàEÁQAÌ@ig0AlL@DÁQAÌ@‰g0AlL€=ÁQAÌÀ£g0AlL9ÁQAÌ@»g0AlL 4ÁQAÌÐg0AlLÀ/ÁQAÌßg0AlL *ÁQAÌh0AlLÀ ÁQAÌ@h0AlLàÁQAÌh0AlL@ÁQAÌ5h0AlL ÁQAÌ@Mh0AlL@ÁQAÌÀ^h0AlL€øÀQAÌÀ€h0AlL`òÀQAÌÀìh0AlLàßÀQAÌi0AlLÀÜÀQAÌ?i0AlLÀÙÀQAÌÀ_i0AlL€ÖÀQAÌwi0AlL ÓÀQAÌ“i0AlLàÌÀQAÌÀ§i0AlL ÃÀQAÌ@¼i0AlLÀºÀQAÌäi0AlL µÀQAÌk0AlLà‘ÀQAÌ@Dk0AlL€‘ÀQAÌ€nk0AlL€’ÀQAÌ@§k0AlL€”ÀQAÌ@Ôk0AlL@ŽÀQAÌÀþk0AlLŠÀQAÌ€)l0AlL@‰ÀQAÌ@Xl0AlL€‰ÀQAÌÀ’l0AlL`ŠÀQAÌ€Ål0AlL@ŒÀQAÌ@ìl0AlLà†ÀQAÌ@øl0AlL@ÀQAÌÀm0AlL@mÀQAÌm0AlL`gÀQAÌ€`m0AlL@OÀQAÌ@Šm0AlLGÀQĄm0AlLà?ÀQAÌÀÃm0AlL ;ÀQAÌ@Ûm0AlLÀ5ÀQAÌ@óm0AlL ,ÀQAÌ@ïm0AlL@%ÀQAÌÀêm0AlL ÀQAÌ€âm0AlL€ÀQAÌ€Üm0AlL€ÀQAÌ@Úm0AlL@ÀQAÌám0AlL@ú¿QAÌ@n0AlLÀË¿QAÌ@$n0AlLÀÄ¿QAÌÀ9n0AlL À¿QAÌ€Qn0AlLÀº¿QAÌÀ[n0AlL ²¿QAÌ_n0AlL «¿QAÌ@\n0AlL€¢¿QAÌbn0AlL œ¿QAÌon0AlLÀ•¿QAÌ€„n0AlL`¿QAÌ n0AlL ‹¿QAÌÀ³n0AlL …¿QAÌÊn0AlL@~¿QAÌ@o0AlL€{¿QAÌo0AlL t¿QAÌÀ©o0AlL`r¿QAÌÀÕo0AlL o¿QAÌño0AlL@l¿QAÌÀp0AlL€c¿QAÌÀ$p0AlL@Y¿QAÌ€Gp0AlL S¿QA̾p0AlL`I¿QAÌ€q0AlL`>¿QAÌAq0AlL@:¿QAÌ€kq0AlL€6¿QAÌŒq0AlL`8¿QA̪q0AlL =¿QAÌ@Øq0AlL A¿QAÌþq0AlL B¿QAÌr0AlL?¿QAÌ@5r0AlL`F¿QAÌNr0AlL`K¿QAÌÀmr0AlL I¿QAÌ@…r0AlLA¿QAÌÀ’r0AlL 8¿QAÌÀ”r0AlL`1¿QAÌ®r0AlL*¿QAÌ@Ër0AlL@&¿QAÌ@îr0AlLà"¿QAÌ€s0AlL€"¿QAÌÀ+s0AlLà¿QAÌ@Is0AlL ¿QAÌ€ks0AlL€¿QAÌŒs0AlLÀ¿QA̱s0AlL¿QAÌ@És0AlLà¿QAÌ€ès0AlL ¿QAÌàs0AlL€ ¿QAÌÀËs0AlL€¿QAÌ@§s0AlL`ü¾QAÌ€Šs0AlLô¾QAÌ^s0AlL€í¾QAÌ@8s0AlL@ä¾QAÌs0AlLÀݾQAÌ€ñr0AlL@×¾QAÌÆr0AlLàоQAÌ@Œr0AlL Ê¾QAÌar0AlL`ǾQAÌ8r0AlL Â¾QAÌ@r0AlL ¹¾QAÌ€r0AlL ‘¾QAÌÀÝq0AlL „¾QAÌÀÃq0AlL`y¾QAÌ€¬q0AlL`r¾QAÌ@q0AlL k¾QAÌ€nq0AlL@c¾QAÌÀSq0AlL Z¾QAÌ3q0AlL@Q¾QAÌ@q0AlL H¾QAÌq0AlL :¾QAÌ€÷p0AlLÀ0¾QAÌÀÙp0AlLÀ$¾QAÌÀ¹p0AlL ¾QAÌ@‚p0AlL€¾QAÌ@Mp0AlL@ø½QAÌ€p0AlL è½QAÌÀëo0AlLà×½QAÌ@Ëo0AlL`ýQAÌ@œo0AlL °½QAÌÀOo0AlL “½QAÌ@ìn0AlL`k½QAÌÀºn0AlL@]½QAÌ”n0AlLÀT½QAÌqn0AlL P½QAÌÀ2n0AlLL½QAÌûm0AlLÀI½QAÌÀÇm0AlLàE½QAÌ€˜m0AlL@B½QAÌÀem0AlL€<½QAÌ@7m0AlLP8½QAÌ€ m0AlLà;½QAÌíl0AlLpA½QAÌÀÖl0AlL€=½QAÌ»l0AlL :½QAÌ@¤l0AlL°8½QAÌ€nl0AlLÀB½QAÌÀDl0AlLðC½QAÌ€.l0AlLà?½QAÌl0AlL 7½QAÌÀèk0AlL 6½QAÌ@Æk0AlL@8½QAÌ@”k0AlL@>½QAÌ@Uk0AlLÐA½QAÌ@/k0AlL?½QAÌ€k0AlL`:½QAÌÀ¾j0AlLà2½QAÌÀ€j0AlL€*½QAÌ@Vj0AlL€!½QAÌÀ2j0AlL€½QAÌ@!j0AlL`ü¼QAÌÀÿi0AlL@ö¼QAÌ@Ìi0AlLö¼QAÌÀ±i0AlL û¼QAÌ@‡i0AlLPþ¼QAÌÀni0AlLú¼QAÌÀdi0AlLÀò¼QAÌ\i0AlLÀé¼QAÌÀ[i0AlL€à¼QAÌ@Si0AlL€Ú¼QAÌÀFi0AlLÒ¼QAÌÀi0AlL€Ó¼QAÌÀÜh0AlL`Ù¼QAÌÀªh0AlL`Ú¼QAÌÀVh0AlL`Ö¼QAÌ€h0AlLÒ¼QAÌÕg0AlL€Ë¼QAÌ@•g0AlL ¼QAÌ€Zg0AlL€¸¼QAÌÀ-f0AlL Ÿ¼QAÌ€èe0AlL š¼QAÌ´e0AlLÀ”¼QAÌ@ e0AlL ’¼QAÌ6e0AlL`‰¼QAÌ@ìd0AlL ƒ¼QAÌ€Ÿd0AlL€}¼QAÌ~d0AlLs¼QAÌud0AlLàk¼QAÌ€Zd0AlL`_¼QAÌ¿QAÌ€IH0AlL B¿QAÌ@H0AlLàH¿QAÌÀÝG0AlLN¿QA̬G0AlLÀV¿QAÌ€gG0AlL`^¿QAÌ/G0AlL b¿QAÌG0AlL€h¿QAÌßF0AlLàq¿QAÌ€ÐF0AlL ¿QA̼F0AlL`Š¿QAÌ£F0AlLŽ¿QAÌÀäE0AlL`®¿QAÌ€VE0AlLÀÀ¿QAÌÀE0AlL`Í¿QAÌ@×D0AlL@Ü¿QAÌÀ™D0AlLàâ¿QAÌ@uD0AlL`î¿QAÌüC0AlLÀÀQAÌ€C0AlLà:ÀQAÌ@VC0AlL`>ÀQAÌ€.C0AlLÀGÀQAÌ@îB0AlL JÀQAÌ€ºB0AlL€OÀQAÌ@ŠB0AlL`RÀQAÌÀbB0AlL€TÀQAÌÀGB0AlL`ZÀQAÌ@:B0AlL`jÀQAÌÀ5B0AlL vÀQAÌ0B0AlLàÀQAÌ,B0AlL ‹ÀQAÌÀ"B0AlL–ÀQAÌ@B0AlL€¢ÀQAÌÀB0AlLà«ÀQAÌÀÿA0AlL`²ÀQAÌÀìA0AlL ¹ÀQAÌäA0AlL€ÂÀQAÌ€àA0AlLÀËÀQAÌ@éA0AlLØÀQAÌ€õA0AlL@åÀQAÌ@ïA0AlL ìÀQAÌÀäA0AlL@òÀQAÌ@ÆA0AlL þÀQAÌ@°A0AlLÀ ÁQAÌ@¡A0AlL`ÁQAÌ@¦A0AlL%ÁQAÌ€«A0AlLp+ÁQAÌ@¯A0AlL0ÁQAÌ@­A0AlL;ÁQAÌÀ’A0AlL`JÁQAÌ€vA0AlLÀQÁQAÌUA0AlL€]ÁQAÌÀ)A0AlL@hÁQAÌ@A0AlL pÁQAÌ@Þ@0AlL`ÁQAÌÀž@0AlLàÁQAÌo@0AlLà¦ÁQAÌ@h@0AlL`­ÁQAÌ€eA0AlL äÁQAÌ@oA0AlL ìÁQAÌXA0AlL€ðÁQAÌ€'A0AlL õÁQAÌ€)A0AlL€ÿÁQAÌ!A0AlL ÂQAÌA0AlLÂQAÌ€þ@0AlL@ÂQAÌ€A0AlL )ÂQAÌ€ô@0AlL 0ÂQAÌ@æ@0AlL 8ÂQAÌ€ê@0AlLÀAÂQAÌ A0AlL HÂQAÌã@0AlL€NÂQAÌ@»@0AlL`SÂQAÌ@•@0AlL€]ÂQAÌ€@0AlL€oÂQAÌ@Û?0AlLàyÂQAÌ@ª?0AlL`€ÂQAÌÀk?0AlL ˆÂQAÌ@;?0AlL@‹ÂQAÌÀ?0AlL ÂQAÌ?0AlL`šÂQAÌ€í>0AlLŸÂQAÌÀÃ>0AlL`§ÂQAÌ€£>0AlL@«ÂQAÌ€|>0AlL`±ÂQAÌ€r>0AlL²ÂQAÌ@i>0AlL²ÂQAÌZ>0AlL€³ÂQAÌ`S>0AlL0´ÂQAÌÀ >0AlL ÄÂQAÌ@ú=0AlL ×ÂQA̲=0AlL€ëÂQAÌÀh=0AlL ÃQAÌÀ =0AlLÀÃQAÌÀ·<0AlLà9ÃQAÌÀv<0AlL QÃQAÌ@!<0AlLgÃQAÌÏ;0AlLÀwÃQAÌ@o;0AlL`ÃQAÌÀÐ:0AlL ²ÃQAÌ œ80AlLÈIÄQAÌ@ A0AlLPuÄQAÌÀA0AlL€uÄQAÌ€5A0AlL vÄQAÌ@8A0AlLàlÄQAÌGA0AlL hÄQAÌÀ]A0AlLaÄQAÌÀ|A0AlL€ZÄQAÌ‘A0AlL VÄQAÌ@¨A0AlLÀSÄQAÌÄA0AlLàPÄQAÌÀêA0AlL`NÄQAÌÀB0AlL LÄQAÌ€9B0AlL JÄQAÌ€fB0AlL DÄQAÌ@B0AlL ?ÄQA̳B0AlL€=ÄQAÌáB0AlL@:ÄQAÌÀC0AlLÀ8ÄQAÌ€LC0AlL 7ÄQAÌ@}C0AlL9ÄQAÌÀ¤C0AlLà8ÄQAÌ€ÌC0AlL 6ÄQAÌëC0AlL 2ÄQAÌÀD0AlL`0ÄQAÌ%D0AlL 3ÄQAÌFD0AlL 0ÄQAÌ@nD0AlL 0ÄQAÌ@—D0AlL`1ÄQA̶D0AlL 3ÄQAÌãD0AlL 3ÄQAÌÀE0AlL 9ÄQAÌÀ9E0AlLÀ=ÄQAÌ@WE0AlLÀ<ÄQÃE0AlL@;ÄQAÌE0AlL<ÄQAÌ€·E0AlLÀ>ÄQAÌÀÚE0AlL BÄQAÌ@F0AlL EÄQAÌ€&F0AlLàCÄQAÌ@GF0AlL@>ÄQAÌ@]F0AlL4ÄQAÌ€yF0AlL@.ÄQAÌ‘F0AlL`3ÄQAÌ@§F0AlLà6ÄQAÌ@ÆF0AlL 6ÄQAÌ€ÌF0AlL=ÄQAÌêF0AlLàBÄQAÌ@üF0AlL <ÄQAÌÀG0AlL 3ÄQAÌÀ3G0AlL€-ÄQAÌ@iG0AlL 2ÄQAÌÀxG0AlL9ÄQAÌ@G0AlL?ÄQAÌ—G0AlL DÄQAÌÀºG0AlLIÄQAÌÐG0AlL`LÄQAÌ€òG0AlL@KÄQAÌ@H0AlLpIÄQAÌ 2H0AlLCÄQAÌ@VH0AlL @ÄQAÌsH0AlLà=ÄQAÌÀH0AlL ?ÄQAÌ@´H0AlL FÄQAÌ€ÉH0AlL€IÄQAÌ€áH0AlL`MÄQAÌ@I0AlLàOÄQAÌÀ,I0AlLQÄQAÌ@RI0AlLàOÄQAÌÀlI0AlLàUÄQAÌvI0AlL`\ÄQAÌ—I0AlLÀdÄQAÌÌI0AlL fÄQAÌ€ÙI0AlLÐfÄQAÌÀäI0AlL`gÄQAÌÀJ0AlLÀlÄQAÌ€#J0AlL€iÄQAÌ@EJ0AlL@dÄQAÌvJ0AlL _ÄQAÌ€¥J0AlLÀaÄQAÌÀåJ0AlL€cÄQAÌ€K0AlLÀgÄQA̱K0AlL€qÄQAÌØK0AlL`qÄQAÌ€úK0AlLxÄQAÌL0AlL`ÄQAÌÀ0L0AlL@ƒÄQAÌfL0AlL •ÄQAÌ@|L0AlL€™ÄQAÌ@­L0AlL šÄQAÌÎL0AlL¢ÄQAÌÀåL0AlL ¨ÄQAÌ@òL0AlLµÄQAÌ@þL0AlL@¼ÄQAÌ@ M0AlL`ÆÄQAÌ M0AlLàËÄQAÌqM0AlL@ãÄQAÌ@—M0AlL@ëÄQAÌ@¸M0AlL òÄQAÌ@ÖM0AlL öÄQAÌ€ N0AlL`ÅQAÌ]N0AlL ÅQAÌvN0AlL ÅQAÌ€œN0AlLÅQAÌÀÖN0AlL !ÅQAÌíN0AlL€%ÅQAÌO0AlL.ÅQAÌ€#O0AlL`3ÅQAÌ@7O0AlL€;ÅQAÌÀGO0AlL DÅQAÌÀKO0AlL`KÅQAÌÀUO0AlLàRÅQAÌ@^O0AlL \ÅQAÌ€oO0AlL€gÅQĂO0AlLuÅQAÌ€žO0AlL}ÅQAÌ@µO0AlL`…ÅQAÌ€¿O0AlL ÅQAÌ€âO0AlL”ÅQAÌ@úO0AlLÀ•ÅQAÌP0AlL ˜ÅQAÌP0AlL ¡ÅQAÌÀP0AlLÀªÅQAÌ@9P0AlL°ÅQAÌ@tP0AlL@¯ÅQAÌÀ•P0AlL °ÅQAÌÀ¸P0AlLµÅQAÌÒP0AlLà¸ÅQAÌ@ÈP0AlL ÃÅQAÌÒP0AlLÊÅQAÌîP0AlL@ÎÅQAÌQ0AlLÀÏÅQAÌ@5Q0AlL€ÏÅQAÌHQ0AlLàÓÅQAÌZQ0AlL€ÛÅQAÌ@†Q0AlLàâÅQAÌ@­Q0AlL@äÅQAÌ€ÑQ0AlL ßÅQAÌöQ0AlLßÅQAÌ€R0AlLÀÝÅQAÌ€8R0AlL ØÅQAÌÀDR0AlLÒÅQAИ€¦“.AlLÙ QA˜€¯Ð.AlLÀôªQA÷˜€½.AlL ½ªQA˜p½.AlLÀ¢ªQA˜€´½.AlL€ŒªQA˜ö½.AlLàwªQA˜1¾.AlL pªQA˜€m¾.AlL`lªQA˜€ ¾.AlLgªQA˜€Ö¾.AlLaªQA˜€¿.AlL`ZªQA˜F¿.AlL WªQA˜¿.AlL ZªQA˜€ À.AlL WªQA˜€FÀ.AlL`RªQA˜–À.AlLFªQA˜€¤À.AlL`CªQA˜PÁ.AlL $ªQA˜€¡Á.AlLÀªQA˜€Â.AlL@ªQA˜ªÂ.AlL@ªQA˜ Ã.AlL`ö©QA˜VÃ.AlL ì©QA˜€œÃ.AlL à©QA˜€íÃ.AlLÕ©QA˜€!Ä.AlL`Ç©QA˜€]Ä.AlL`½©QA˜°Ä.AlL@µ©QA˜Å.AlL`­©QA˜_Å.AlL€§©QA˜€ØÅ.AlL@¢©QA˜›Æ.AlL`œ©QA˜RÇ.AlL€˜©QA˜ÑÇ.AlL@”©QA˜€`È.AlL€©QA˜É.AlL@Œ©QA˜€]É.AlL€©QA˜€¢É.AlLà™©QA˜€Ê.AlL€ž©QA˜€|Ê.AlL`§©QA˜ÎÊ.AlL௩QA˜€(Ë.AlL೩QA˜™Ë.AlL ³©QA˜éË.AlL­©QA˜€%Ì.AlL¨©QA˜ñË.AlL€¢©QA˜÷Ë.AlL˜©QA˜€Ì.AlL Œ©QA˜€Ì.AlL€|©QA˜€#Ì.AlL€s©QA˜€ Ì.AlL`j©QA˜€ÿË.AlL€]©QA˜€ÆË.AlL`>©QA˜³Ë.AlLà2©QA˜§Ë.AlL€'©QA˜žË.AlLÀ©QA˜€³Ë.AlL` ©QA˜ÓË.AlL`ù¨QA˜€Ì.AlL ã¨QA˜Ì.AlL€Î¨QA˜(Ì.AlL¨QA˜€HÌ.AlL@³¨QA˜“Ì.AlL¡¨QA˜ºÌ.AlL’¨QA˜€ãÌ.AlLÀ€¨QA˜€ Í.AlL€t¨QA˜Í.AlLÀa¨QA˜€/Í.AlL R¨QA˜€LÍ.AlL`F¨QA˜˜Í.AlL 6¨QA˜€òÍ.AlL (¨QA˜WÎ.AlL`¨QA˜€¼Î.AlL þ§QA˜€Ï.AlL`ñ§QA˜€&Ï.AlL î§QA˜€jÏ.AlL@ã§QA˜€lÏ.AlL Í§QA˜@Ï.AlL@À§QA˜óÎ.AlLࣧQA˜€ÒÎ.AlLÀ’§QA˜§Î.AlL@|§QA˜€—Î.AlLÀl§QA˜{Î.AlL [§QA˜‰Î.AlLM§QA˜€ªÎ.AlL`?§QA˜ÚÎ.AlL/§QA˜€úÎ.AlLÀ#§QA˜€*Ï.AlL€§QA˜€WÏ.AlLà§QA˜©Ï.AlLàî¦QA˜€êÏ.AlL Ý¦QA˜€Ð.AlL Õ¦QA˜fÐ.AlL Ê¦QA˜€•Ð.AlL€Á¦QA˜€ƒÐ.AlL¶¦QA˜€SÐ.AlL@«¦QA˜sÐ.AlL Œ¦QA˜€xÐ.AlLp¦QA˜’Ð.AlL@P¦QA˜€¯Ð.AlL`8¦QA˜€’Ð.AlLà2¦QA˜hÐ.AlL@)¦QA˜€SÐ.AlL@¦QA˜SÐ.AlL ¦QA˜€zÏ.AlL ö¥QA˜€LÏ.AlL é¥QA˜FÏ.AlLÀç¥QA˜€Ï.AlL€Ø¥QA˜€ÒÍ.AlL`¥QA˜¾Ì.AlL`N¥QA˜JË.AlL¥QA˜€ÄÊ.AlL ã¤QA˜—Ê.AlLÀº¤QA˜™Ê.AlL ·¤QA˜€£Ê.AlL@¤¤QA˜šÊ.AlL ˜¤QA˜‹Ê.AlL ˆ¤QA˜€0Ê.AlLÀ¤QA˜ Ê.AlL@¤QA˜É.AlL ¤QA˜—È.AlL À¤QA˜€¬È.AlLˆ¤QA˜‰È.AlLÀp¤QA˜€lÈ.AlL€b¤QA˜€CÈ.AlL@R¤QA˜€È.AlL G¤QA˜€ÞÆ.AlLÀ¤QA˜^Æ.AlL à£QA˜ýÄ.AlL°˜£QA˜êÄ.AlLÀ”£QA˜€'Ã.AlL3£QA˜›Á.AlL`Ý¢QA˜À.AlL ‚¢QA˜€Å¾.AlL`2¢QA˜§½.AlLó¡QA˜€-½.AlL Ô¡QA˜ܼ.AlL@Ë¡QA˜€’¼.AlL »¡QA˜Ø».AlL€½¡QA˜».AlLª¡QA˜¸º.AlL`¢¡QA˜}º.AlLÀ›¡QA˜€„º.AlL@€¡QA˜€`º.AlL |¡QA˜€1º.AlL`v¡QA˜€º.AlL€s¡QA˜€Û¹.AlL n¡QA˜½¹.AlLàg¡QA˜”¹.AlLà]¡QA˜s¹.AlLÀV¡QA˜z¹.AlL`L¡QA˜€©¹.AlLF¡QA˜˜¹.AlL€=¡QA˜f¹.AlL ;¡QA˜3¹.AlLà:¡QA˜€ú¸.AlLà:¡QA˜§¸.AlL`=¡QA˜€p¸.AlL 6¡QA˜€S¸.AlL 0¡QA˜6¸.AlL +¡QA˜€¸.AlL#¡QA˜€î·.AlLà¡QA˜€¹·.AlL`¡QA˜€‹·.AlLÀ¡QA˜K·.AlLà¡QA˜·.AlL@ ¡QA˜Ó¶.AlL  ¡QA˜€¨¶.AlL@¡QA˜€¶.AlL`¡QA˜J¶.AlL`û QA˜ãµ.AlL ù QA˜µ.AlL û QA˜€\µ.AlLÀû QA˜€$µ.AlL@û QA˜€Ñ´.AlLü QA˜€g´.AlL û QA˜5´.AlL`ø QA˜€´.AlL€ô QA˜§³.AlL ì QA˜p³.AlLàè QA˜9³.AlL æ QA˜ë².AlLæ QA˜°².AlL à QA˜s².AlL Ý QA˜&².AlLÀÞ QA˜€Ð±.AlL€à QA˜€„±.AlL à QA˜I±.AlLÀÞ QA˜€ï°.AlLÙ QA˜€Ÿ°.AlL`ß QA˜€1°.AlLé QA˜€Ü¯.AlLÀí QA˜€™¯.AlL î QA˜E¯.AlLpê QA˜€ù®.AlLí QA˜Ô®.AlL€ú QA˜£®.AlLàû QA˜€N®.AlL ÿ QA˜€®.AlL@¡QA˜®.AlL¡QA˜€Ä­.AlLð¡QA˜€‹­.AlL¡QA˜F­.AlL`¡QA˜€­.AlL ¡QA˜ø¬.AlL`!¡QA˜׬.AlL`&¡QA˜€`¬.AlL -¡QA˜ ¬.AlL 3¡QA˜³«.AlL8¡QA˜v«.AlL`A¡QA˜€ÿª.AlL@O¡QA˜€šª.AlL@b¡QA˜Nª.AlL t¡QA˜€ª.AlL ‚¡QA˜€ª.AlL ‹¡QA˜$ª.AlLÀ—¡QA˜@ª.AlL£¡QA˜€"ª.AlL€¨¡QA˜€Ø©.AlL`«¡QA˜Ó©.AlL€µ¡QA˜Ä©.AlL`¡QA˜€Ž©.AlL€Ë¡QA˜V©.AlL@Ë¡QA˜€©.AlLÀÆ¡QA˜»¨.AlLÀ¡QA˜€„¨.AlLàÄ¡QA˜‰¨.AlLÀË¡QA˜€“¨.AlLàÑ¡QA˜€–¨.AlL Þ¡QA˜œ¨.AlL€æ¡QA˜€›¨.AlLÀî¡QA˜z¨.AlLPô¡QA˜€o¨.AlLö¡QA˜€3¨.AlLü¡QA˜¨.AlLà¢QA˜à§.AlL`¢QA˜´§.AlL@¢QA˜€o§.AlL`¢QA˜€§.AlL ¢QA˜Þ¦.AlLà¢QA˜©¦.AlL@¢QA˜f¦.AlL@"¢QA˜ ¦.AlL (¢QA˜€à¥.AlL 1¢QA˜´¥.AlL9¢QA˜•¥.AlLÀA¢QA˜W¥.AlL@H¢QA˜€¥.AlL N¢QA˜€²¤.AlLàR¢QA˜b¤.AlL€Y¢QA˜€¤.AlL@c¢QA˜Ø£.AlL n¢QA˜¦£.AlLy¢QA˜g£.AlLà„¢QA˜£.AlL ¢QA˜»¢.AlL€œ¢QA˜€‹¢.AlL`¥¢QA˜€`¢.AlL€±¢QA˜€-¢.AlLརQA˜¢.AlL`Ç¢QA˜¿¡.AlL Ó¢QA˜­¡.AlL@Þ¢QA˜š¡.AlLàí¢QA˜Ž¡.AlL ÿ¢QA˜t¡.AlL@£QA˜L¡.AlL€#£QA˜%¡.AlL3£QA˜¡.AlL`?£QA˜€¡.AlLB£QA˜ .AlL`Y£QA˜€f .AlL `£QA˜€R .AlLo£QA˜€= .AlL x£QA˜€ .AlL ‡£QA˜€ .AlLÀ—£QA˜üŸ.AlL`¥£QA˜ß.AlL`­£QA˜iŸ.AlL`³£QA˜Ÿ.AlL¾£QA˜Ìž.AlL Ì£QA˜ž.AlLÙ£QA˜Tž.AlLâ£QA˜€ž.AlL€ð£QA˜€Žž.AlLàö£QA˜€Kž.AlL ÿ£QA˜€ž.AlL ¤QA˜Ö.AlL¤QA˜ø.AlL¤QA˜(ž.AlLÀ!¤QA˜€Iž.AlL@*¤QA˜€&ž.AlL3¤QA˜€Á.AlL;¤QA˜€e.AlL@E¤QA˜€I.AlL@O¤QA˜€B.AlL`_¤QA˜".AlLàn¤QA˜.AlL w¤QA˜€±œ.AlLðz¤QA˜€œ.AlL@y¤QA˜8œ.AlL z¤QA˜€ã›.AlL€…¤QA˜b›.AlL †¤QA˜›.AlL¤QA˜€ôš.AlL`w¤QA˜€zš.AlLy¤QA˜)š.AlL †¤QA˜ š.AlLÀ•¤QA˜É™.AlL¢¤QA˜€_™.AlL@À¤QA˜€9™.AlLÀʤQA˜€™.AlL@Ö¤QA˜€Ô˜.AlLàܤQA˜±˜.AlL`ã¤QA˜¡˜.AlL î¤QA˜Œ˜.AlL ö¤QA˜Y˜.AlL@ÿ¤QA˜$˜.AlL ¥QA˜Ù—.AlL@¥QA˜€š—.AlL¥QA˜€W—.AlLP¥QA˜ —.AlLÀ¥QA˜Ø–.AlLÀ ¥QA˜ –.AlL¥QA˜€q–.AlLà¥QA˜€K–.AlL€¥QA˜€ë•.AlL¥QA˜€Å•.AlLÀ¥QA˜Õ.AlLà¥QA˜»•.AlL #¥QA˜€¨•.AlLà.¥QAÈkªªœ•.AlLÀ:¥QA˜À±•.AlLÀ@¥QA˜€~•.AlLàP¥QA˜a•.AlL`W¥QA˜I•.AlL€Z¥QA˜;•.AlL a¥QA˜€-•.AlLÀj¥QA˜ •.AlL t¥QA˜ß”.AlL¥QA˜Ÿ”.AlL€Š¥QA˜€W”.AlL€—¥QA˜À”.AlL`¡¥QA˜á“.AlL ´¥QA˜€À“.AlL`¿¥QA˜€¦“.AlLÀÔ¥QA˜¯“.AlLÀé¥QA˜Ì“.AlL ¦QA˜û“.AlL #¦QA˜€)”.AlL@=¦QA˜Q”.AlLàO¦QA˜|”.AlL h¦QA˜€–”.AlL€y¦QA˜ç”.AlL@‡¦QA˜X•.AlLަQA˜€Ó•.AlLà“¦QA˜w–.AlL@š¦QA˜€+—.AlLÀ¥¦QA˜Š—.AlL ­¦QA˜€ú—.AlL`¸¦QA˜€1˜.AlLàĦQA˜3˜.AlLѦQA˜˜.AlL Þ¦QA˜ø—.AlL ï¦QA˜ó—.AlL@ÿ¦QA˜€T˜.AlL`§QA˜ø˜.AlL@§QA˜€‘™.AlL€þ¦QA˜ö™.AlLàó¦QA˜bš.AlLî¦QA˜ ›.AlLÀé¦QA˜€Ï›.AlL ã¦QA€ÅŸ„qœ.A"bû³à¦QA˜€Šœ.AlL@à¦QA˜)ž.AlL@ئQA˜-Ÿ.AlLÀצQA˜öŸ.AlL@Û¦QA˜Р.AlL@á¦QA˜€@¡.AlL€å¦QAÀûUK¡.AbÂàˆê¦QA˜e¡.AlL ö¦QA˜€(¡.AlL`§QA˜€» .AlL C§QA˜€& .AlLo§QA˜ÒŸ.AlLÀ‡§QA˜€‡Ÿ.AlL §QA˜€\Ÿ.AlL€¸§QA˜]Ÿ.AlL€É§QA˜‘Ÿ.AlLàâ§QA˜€àŸ.AlL@÷§QA˜€Y .AlL`¨QA˜€ö .AlL`!¨QA˜F¡.AlL 1¨QA˜€…¡.AlLÀD¨QA˜™¡.AlLQ¨QA˜‰¡.AlL_¨QA Îv¡.A2˜7Uj¨QA˜€p¡.AlL n¨QA˜a¡.AlL@{¨QA˜€`¡.AlL ‡¨QA˜€i¡.AlL€“¨QApÓ]Õ„¡.AlL ¨QA˜€—¡.AlL€©¨QA˜Ô¡.AlL ´¨QA`Ñ2NÝ¡.Av§À¨QA˜€à¡.AlL@ŨQA˜ü¡.AlLàØ¨QA˜€(¢.AlLàí¨QA˜O¢.AlLø¨QA˜²¢.AlL€ ©QA˜O£.AlL€"©QA˜€²£.AlL +©QA˜€F¤.AlL@;©QA˜€¨¤.AlL F©QA˜î¤.AlLàO©QA˜>¥.AlL W©QA˜°¥.AlL d©QAxˆoÈ¥.A ;9ee©QAƒÐ]Ô¥.A$‚úe©QA˜!¦.AlLài©QA˜€µ¦.AlL@n©QA˜W§.AlL`p©QA(®èrŸ§.A¶68r©QA˜à§.AlLàs©QA˜€`¨.AlLx©QA˜€Ù¨.AlL€z©QA˜h©.AlLx©QA˜ÿ©.AlLÀs©QA˜{ª.AlLàj©QA˜ «.AlLZ©QA˜€ˆ«.Aæ‚«U©QAòQç«.Aˆ7ãªU©QA˜€ô«.AlLÀU©QA˜¿¬.AlLÀS©QA˜€J­.AlL R©QA˜«­.AlL@R©QA˜ ®.AlL \©QA˜@®.AlL `©QA˜®.AlL\©QA˜Ä®.AlLÀV©QA˜€&¯.AlL S©QA˜]¯.AlL W©QA˜€|¯.AlL`_©QA˜©¯.AlL w©QA˜¶¯.AlL`‹©QA˜Ÿ¯.AlL@”©QA˜€€¯.AlLœ©QA˜a¯.AlL@¢©QA˜€J¯.AlL ª©QA˜€M¯.AlLÀ½©QA˜€a¯.AlLÀÏ©QA˜€^¯.AlL à©QA˜€_¯.AlL@ð©QA˜’¯.AlL@ªQA˜ï¯.AlLàªQA˜Y°.AlLàªQA˜€×°.AlL@ªQA˜‰±.AlL€ªQA˜€A².AlL ªQA˜Á².AlL€ªQA˜P³.AlL@ªQA˜̳.AlL@ªQA˜ò³.AlL ªQA˜W´.AlL-ªQA˜u´.AlL 1ªQA˜¢´.AlL@3ªQA˜€ñ´.AlL@8ªQA˜ µ.AlL ;ªQA˜cµ.AlL@AªQA˜€Œµ.AlL FªQA˜Ôµ.AlL`OªQA˜€¶.AlL VªQA˜€$¶.AlL ZªQA˜O¶.AlLÀ`ªQA˜€u¶.AlL fªQA˜ж.AlL mªQA˜€œ¶.AlL@xªQA˜¶¶.AlLàƒªQA˜Õ¶.AlL ªQA˜€ô¶.AlLÀœªQA˜ú¶.AlL ¤ªQA˜·.AlL@°ªQA˜€·.AlL ´ªQA˜€D·.AlL ³ªQA˜‘·.AlL€²ªQA˜€Ð·.AlLÀ°ªQA˜ ¸.AlL€«ªQA˜€L¸.AlLપQA˜€¤¸.AlL ¬ªQA˜è¸.AlLÀ­ªQA˜L¹.AlLபQA@ö8OV¹.A^lÒ‹¯ªQA˜©¹.AlLà´ªQA˜€º.AlLཪQA˜€ƒº.AlL ÄªQA˜ýº.AlLÕªQA˜@~».AlL@ߪQA˜@þ».AlL`ëªQAÈkªª@¼.AlLÀôªQA˜‹¼.AlLàðªQA˜€Î¼.AlL€êªQA˜€½.AlL ãªQA˜€,½.AlLÀÚªQA˜€½.AlLÀϪQA˜€½.AlLɪQA˜€½.AlL ½ªQA0˜}º.AlLào¡QA˜€?ù.AlL€µ«QAã˜Æè.AlL€Ä©QA˜€è.AlL`¿©QA˜mè.AlLº©QA˜è.AlL ®©QA˜Øç.AlL`¥©QA˜¾ç.AlL€™©QA˜€ç.AlLàŠ©QA˜Nç.AlL |©QA˜&ç.AlL@m©QA˜€ ç.AlLà[©QA˜éæ.AlL@M©QA˜€½æ.AlLàA©QA˜æ.AlL€7©QA˜æ.AlL€'©QA˜Óå.AlLà*©QA˜„å.AlL@3©QA˜ å.AlL 5©QA˜«ä.AlL 5©QA˜2ä.AlL`6©QA˜€ãã.AlL`/©QA˜€²ã.AlL`&©QA˜ƒã.AlL€!©QA˜€ ã.AlL ©QA˜ã.AlLÀ©QA˜Úâ.AlL`©QA˜Ââ.AlLà©QA˜Šâ.AlLàü¨QA˜•â.AlL`ó¨QA˜²â.AlL`ë¨QA˜€°â.AlLÀâ¨QA˜Hâ.AlL€Å¨QA˜â.AlLÀ¿¨QA˜âá.AlLº¨QA˜€Âá.AlL@±¨QA˜€˜á.AlL@¢¨QA˜€{á.AlL •¨QA˜:á.AlL@¨QA˜€á.AlL@‚¨QA˜€$á.AlL€y¨QA˜ôà.AlL@o¨QA˜¡à.AlLi¨QA˜€mà.AlLàg¨QA˜€à.AlLÀa¨QA˜à.AlLÀY¨QA˜oà.AlL@Z¨QA˜íà.AlLàW¨QA˜“á.AlLÀR¨QA˜€%â.AlLÀK¨QA˜¸â.AlL@E¨QA˜9ã.AlL@A¨QA˜†ä.AlL <¨QA˜€Så.AlL`7¨QA˜€æ.AlL 4¨QA˜€úæ.AlLÀ.¨QA˜€Žè.AlL€+¨QA˜€cé.AlL )¨QA˜æé.AlL&¨QA˜€Yê.AlL€ ¨QA˜€¤ê.AlL "¨QA˜Âê.AlL +¨QA˜€ë.AlL H¨QA˜€œë.AlL`ЍQA˜Cì.AlL ˨QA˜ýì.AlL +©QA˜;í.AlL 2©QA˜hí.AlLÀ*©QA˜¿í.AlLà©QA˜(î.AlL`ý¨QA˜Pî.AlL è¨QA˜€“î.AlL بQA˜ìî.AlLàÆ¨QA˜ñî.AlL À¨QA˜€×î.AlLµ¨QA˜¦î.AlL¬¨QA˜rî.AlL¨QA˜€¤î.AlL •¨QA˜€¤î.AlL ލQA˜^î.AlLÀ‡¨QA˜€:î.AlLà~¨QA˜î.AlL y¨QA˜ôí.AlL m¨QA˜€ßí.AlL`c¨QA˜€´í.AlL]¨QA˜ží.AlL€S¨QA˜í.AlL€M¨QA˜í.AlLB¨QA˜€·ì.AlL`8¨QA˜€ƒì.AlL`-¨QA˜€lì.AlL` ¨QA˜Lì.AlL€¨QA˜9í.AlL@ ¨QA˜€åí.AlL ¨QA˜€jî.AlL÷§QA˜€*ï.AlL ç§QA˜€ ñ.AlL¶§QA˜¤ó.AlL@‡§QA˜Òô.AlL@j§QA˜(ö.AlL@I§QA˜€m÷.AlL -§QA˜ÀÍø.AlL@§QA˜ãø.AlL ø¦QA˜ ù.AlL`ñ¦QA˜<ù.AlL€é¦QA˜€?ù.AlLÀâ¦QA˜€-ù.AlL°ß¦QA˜€ù.AlL Û¦QA˜Ôø.AlLÀÕ¦QA˜ø.AlL€Ë¦QA˜€r÷.AlLà¦QA˜€Èö.AlL๦QA˜%ö.AlL`°¦QA˜€Sõ.AlL£¦QA˜“ô.AlL@š¦QA˜¼ó.AlLÀ¦QA˜7ó.AlLàˆ¦QA˜€tò.AlLà¦QA˜ ò.AlL w¦QA˜€Dñ.AlL j¦QA˜€ºð.AlLà^¦QA˜7ð.AlL R¦QA˜€'ð.AlLP¦QA˜€¹ï.AlL@A¦QA˜ï.AlL+¦QA˜ãí.AlLÀÿ¥QA˜€aí.AlL ö¥QA˜õì.AlL`ï¥QA˜|ì.AlLpç¥QA˜Lì.AlL@ä¥QA˜”ë.AlL`Ø¥QA˜ë.AlL@Ñ¥QA˜€ê.AlLÀÇ¥QA˜€ ê.AlLཥQA˜³é.AlL@´¥QA˜pé.AlL`§¥QA˜ é.AlL œ¥QA˜»è.AlL ‘¥QA˜Xè.AlL„¥QA˜€øç.AlL`z¥QA˜oç.AlL q¥QA˜€ôæ.AlL€f¥QA˜‘æ.AlLÀ\¥QA˜/æ.AlL`Q¥QA˜Çå.AlL`E¥QA˜€`å.AlL€:¥QA˜€ää.AlL .¥QA˜€~ä.AlL`"¥QA˜ä.AlLÀ¥QA˜eâ.AlLÀФQA˜Ñá.AlL ¼¤QA˜Lá.AlL §¤QA˜€á.AlL ¤QA˜½à.AlL¤QA˜€à.AlL {¤QA˜bà.AlL€k¤QA˜€=à.AlLàa¤QA˜$à.AlL€U¤QA˜ïß.AlL€H¤QA˜¸ß.AlL€7¤QA˜€ˆß.AlL€+¤QA˜=ß.AlL@"¤QA˜€óÞ.AlL¤QA˜€ß.AlL ¤QA˜ß.AlL@ ¤QA˜Jß.AlL ¤QA˜€pß.AlL€¤QA˜³ß.AlL  ¤QA˜€üß.AlLÀ ¤QA˜à.AlL  ¤QA˜€à.AlL€¤QA˜ à.AlL ¤QA˜€à.AlLÀð£QA˜üß.AlLâ£QA˜€Ñß.AlLÀÅ£QA˜€¨ß.AlL`¼£QA˜Kß.AlL€¨£QA˜€äÞ.AlL ’£QA˜€»Þ.AlL€…£QA˜hÞ.AlL q£QA˜YÞ.AlLÀp£QA˜€¡Ý.AlLàe£QA˜ÕÜ.AlLV£QA˜€úÛ.AlLÀF£QA˜€6Û.AlL=£QA˜sÚ.AlL€,£QA˜˜Ù.AlLÀ£QA˜ìØ.AlL  £QA˜€mØ.AlL€£QA˜€Ô×.AlLàó¢QA˜Î×.AlL@æ¢QA˜²×.AlLàТQA˜€W×.AlL€Ì¢QA˜ðÖ.AlL Ë¢QA˜€qÖ.AlLÊ¢QA˜Ö.AlL Ç¢QA˜”Õ.AlL âQA˜Õ.AlL€¼¢QA˜žÔ.AlL`³¢QA˜2Ô.AlL`ª¢QA˜€ÝÓ.AlL€˜¢QA˜ÂÓ.AlL‰¢QA˜€œÓ.AlL€u¢QA˜qÓ.AlL€e¢QA˜€Ó.AlLR¢QA˜€ÒÒ.AlL€D¢QA˜€ˆÒ.AlL€5¢QA˜=Ò.AlL 0¢QA˜ÝÑ.AlL@/¢QA˜€ZÑ.AlL +¢QA˜€Ñ.AlL€"¢QA˜iÐ.AlL`¢QA˜€áÏ.AlLà¢QA˜€4Ï.AlLú¡QA˜)Ï.AlL`ñ¡QA˜€÷Î.AlL é¡QA˜€ÇÎ.AlLæ¡QA˜ÐÎ.AlL€Ú¡QA˜€ÓÎ.AlL@Ó¡QA˜µÎ.AlL@Í¡QA˜‡Î.AlL€Å¡QA˜\Î.AlLà¿¡QA˜€õÍ.AlL`»¡QA˜€¤Í.AlL€¼¡QA˜€zÍ.AlLз¡QA˜¼Ì.AlL`¢¡QA˜£Ì.AlL ª¡QA˜=Ì.AlL ¸¡QA˜ÎË.AlLË¡QA˜dË.AlL`Ñ¡QA˜€ßÊ.AlL€Ô¡QA˜sÊ.AlL@Ô¡QA˜Ê.AlL@Ò¡QA˜€•É.AlLàСQA˜€,É.AlL ΡQA˜ÕÈ.AlL`Ì¡QA˜€{È.AlL`Ê¡QA˜€4È.AlLÈ¡QA˜áÇ.AlL€Æ¡QA˜•Ç.AlLÁ¡QA˜zÇ.AlL¹¡QA˜€=Ç.AlL®¡QA˜€Ç.AlL@«¡QA˜ËÆ.AlLডQA˜€{Æ.AlL€¤¡QA˜;Æ.AlL ¡¡QA˜€ÉÅ.AlLà›¡QA˜‘Å.AlL ˜¡QA˜€eÅ.AlL€“¡QA˜€BÅ.AlL ¡QA˜"Å.AlLÀ†¡QA˜Å.AlL@|¡QA˜íÄ.AlLÀv¡QA˜žÄ.AlLÀs¡QA˜€<Ä.AlLàq¡QA˜ãÃ.AlLào¡QA˜²Ã.AlLu¡QA˜‹Ã.AlLÀy¡QA˜UÃ.AlL€}¡QA˜€Ã.AlLÀ‚¡QA˜ðÂ.AlL ˆ¡QA˜¿Â.AlLÀ¡QA˜€ŒÂ.AlL ‘¡QA˜€!Â.AlL“¡QA˜€ËÁ.AlLà¡QA˜€Á.AlLàˆ¡QA˜2Á.AlL€¡QA˜€äÀ.AlLÀv¡QA˜qÀ.AlL@u¡QA˜À.AlL x¡QA˜€š¿.AlL€~¡QA˜€-¿.AlL€¡QA˜¬¾.AlLà€¡QA˜<¾.AlLÀ¡QA˜ö½.AlL ‚¡QA˜¥½.AlLà†¡QA˜J½.AlL „¡QA˜€×¼.AlL`€¡QA˜€ª¼.AlLÀ…¡QA˜l¼.AlL€¡QA˜€¼.AlL`¡QA˜€¹».AlLÀ¡QA˜b».AlLŽ¡QA˜ûº.AlL‹¡QA˜»º.AlL€†¡QA˜€„º.AlL@€¡QA˜}º.AlLÀ›¡QA˜¸º.AlL`¢¡QA˜».AlLª¡QA˜Ø».AlL€½¡QA˜€’¼.AlL »¡QA˜ܼ.AlL@Ë¡QA˜€-½.AlL Ô¡QA˜§½.AlLó¡QA˜€Å¾.AlL`2¢QA˜À.AlL ‚¢QA˜›Á.AlL`Ý¢QA˜€'Ã.AlL3£QA˜êÄ.AlLÀ”£QA˜ýÄ.AlL°˜£QA˜^Æ.AlL à£QA˜€ÞÆ.AlLÀ¤QA˜€È.AlL G¤QA˜€CÈ.AlL@R¤QA˜€lÈ.AlL€b¤QA˜‰È.AlLÀp¤QA˜€¬È.AlLˆ¤QA˜—È.AlL À¤QA˜É.AlL ¤QA˜ Ê.AlL@¤QA˜€0Ê.AlLÀ¤QA˜‹Ê.AlL ˆ¤QA˜šÊ.AlL ˜¤QA˜€£Ê.AlL@¤¤QA˜™Ê.AlL ·¤QA˜—Ê.AlLÀº¤QA˜€ÄÊ.AlL ã¤QA˜JË.AlL¥QA˜¾Ì.AlL`N¥QA˜€ÒÍ.AlL`¥QA˜€Ï.AlL€Ø¥QA˜FÏ.AlLÀç¥QA˜€LÏ.AlL é¥QA˜€zÏ.AlL ö¥QA˜SÐ.AlL ¦QA˜€SÐ.AlL@¦QA˜hÐ.AlL@)¦QA˜€’Ð.AlLà2¦QA˜€¯Ð.AlL`8¦QA˜’Ð.AlL@P¦QA˜€xÐ.AlLp¦QA˜sÐ.AlL Œ¦QA˜€SÐ.AlL@«¦QA˜€ƒÐ.AlL¶¦QA˜€•Ð.AlL€Á¦QA˜fÐ.AlL Ê¦QA˜€Ð.AlL Õ¦QA˜€êÏ.AlL Ý¦QA˜©Ï.AlLàî¦QA˜€WÏ.AlLà§QA˜€*Ï.AlL€§QA˜€úÎ.AlLÀ#§QA˜ÚÎ.AlL/§QA˜€ªÎ.AlL`?§QA˜‰Î.AlLM§QA˜{Î.AlL [§QA˜€—Î.AlLÀl§QA˜§Î.AlL@|§QA˜€ÒÎ.AlLÀ’§QA˜óÎ.AlLࣧQA˜@Ï.AlL@À§QA˜€lÏ.AlL Í§QA˜€jÏ.AlL@ã§QA˜€&Ï.AlL î§QA˜€Ï.AlL`ñ§QA˜€¼Î.AlL þ§QA˜WÎ.AlL`¨QA˜€òÍ.AlL (¨QA˜˜Í.AlL 6¨QA˜€LÍ.AlL`F¨QA˜€/Í.AlL R¨QA˜Í.AlLÀa¨QA˜€ Í.AlL€t¨QA˜€ãÌ.AlLÀ€¨QA˜ºÌ.AlL’¨QA˜“Ì.AlL¡¨QA˜€HÌ.AlL@³¨QA˜(Ì.AlL¨QA˜Ì.AlL€Î¨QA˜€Ì.AlL ã¨QA˜ÓË.AlL`ù¨QA˜€³Ë.AlL` ©QA˜žË.AlLÀ©QA˜§Ë.AlL€'©QA˜³Ë.AlLà2©QA˜€ÆË.AlL`>©QA˜€ÿË.AlL€]©QA˜€ Ì.AlL`j©QA˜€#Ì.AlL€s©QA˜€Ì.AlL€|©QA˜€Ì.AlL Œ©QA˜÷Ë.AlL˜©QA˜ñË.AlL€¢©QA˜€%Ì.AlL¨©QA˜€rÌ.AlL@¨©QA˜¾Ì.AlL`£©QA˜öÌ.AlL€ ©QA˜%Í.AlLÀž©QA˜€`Í.AlL@œ©QA˜’Í.AlL š©QA˜ÍÍ.AlL`™©QA˜€Î.AlLà–©QA˜KÎ.AlL€–©QA˜~Î.AlL •©QA˜€ÄÎ.AlLÀ‘©QA˜úÎ.AlL`©QA˜ZÏ.AlL€Œ©QA˜€Ï.AlL@‰©QA˜€ÕÏ.AlL„©QA˜€Ð.AlL€©QA˜hÐ.AlLÀy©QA˜€®Ð.AlL v©QA˜€Ñ.AlL€s©QA˜mÑ.AlL@p©QA˜±Ñ.AlL€p©QA˜ÖÑ.AlLPr©QA˜êÑ.AlL@s©QA˜Ò.AlL ƒ©QA˜÷Ñ.AlL •©QA˜€ïÑ.AlL`¦©QA˜ßÑ.AlL`éQA˜ÏÑ.AlLàÑ©QA˜ÌÑ.AlLàÞ©QA˜€ËÑ.AlLî©QA˜»Ñ.AlL`ù©QA˜€¢Ñ.AlL@ªQA˜ŒÑ.AlL ªQA˜€€Ñ.AlL€ªQA˜mÑ.AlL€ ªQA˜^Ñ.AlL`)ªQA˜iÑ.AlL6ªQA˜€|Ñ.AlL@>ªQA˜ËÑ.AlLIªQA˜€4Ò.AlLYªQA˜xÒ.AlL eªQA˜ÅÒ.AlLàrªQA˜Ó.AlL@~ªQA˜DÓ.AlLà‡ªQA˜€¨Ó.AlLà–ªQA˜ßÓ.AlL  ªQA˜þÓ.AlLÀ©ªQA˜€XÔ.AlL€µªQA˜ºÔ.AlLàÁªQA˜ Õ.AlL€ÒªQA˜`Õ.AlL@àªQA˜ÈÕ.AlL@ïªQA˜€4Ö.AlL€öªQA˜ÚÖ.AlL€«QA˜i×.AlL` «QA˜€ Ø.AlL@«QA˜€¦Ø.AlL@!«QA˜Ù.AlL.«QA˜€eÚ.AlL€D«QA˜€Û.AlL V«QA˜€ÂÛ.AlLÀi«QA˜©Ü.AlL €«QA˜OÝ.AlL@‘«QA˜€˜Ý.AlL`–«QA˜€6Þ.AlL ¦«QA˜ÓÞ.AlL€µ«QA˜€*ß.AlLà¡«QA˜Cß.AlL š«QA˜€`ß.AlL@«QA˜€zß.AlL€‰«QA˜€Žß.AlLà~«QA˜€Ÿß.AlLàu«QA˜°ß.AlLÀm«QA˜€Âß.AlL b«QA˜Üß.AlL€X«QA˜à.AlL€I«QA˜-à.AlL ;«QA˜Bà.AlL€2«QA˜€pà.AlL@#«QA˜”à.AlL@«QA˜€·à.AlL «QA˜Éà.AlL «QA˜"á.AlLÀìªQA˜Ôá.AlL ÊªQA˜Üá.AlL€ÉªQA˜€â.AlL ÁªQA˜€³â.AlL ¦ªQA˜€(ã.AlL@—ªQA˜€lã.AlL ªQA˜€_ä.AlLÀpªQA˜€¾å.AlL GªQA˜²æ.AlL ªQA˜ç.AlL ªQA˜€Iç.AlL@ ªQA˜€[ç.AlL` ªQA˜ç.AlLÀÿ©QA˜€¶ç.AlLö©QA˜ïç.AlL`ë©QA˜è.AlLß©QA˜€4è.AlL`שQA˜Æè.AlL€Ä©QA˜€t§/AlL€ß€QAÌÀ0AlLŠQA¾˜„ú/AlL ¸‰QA˜€Sü/AlL`g‰QA˜€?ý/AlL0Z‰QA˜€¾þ/AlLÀD‰QAÌ€a0AlLÀ}‰QAÌj0AlL ƒ‰QAÌx0AlLàŠ‰QAÌÀ”0AlL@”‰QAÌ€¼0AlLÀœ‰QAÌä0AlL Ÿ‰QAÌ€0AlL@¢‰QAÌÀK0AlLÀ¢‰QAÌ@t0AlL¥‰QAÌ@ 0AlL§‰QAÌÎ0AlL©‰QAÌÀD0AlL੉QAÌ`0AlL ª‰QAÌ€0AlL`ª‰QAÌÀ0AlL@˜‰QAÌ@u0AlL@•‰QAÌ€O0AlLà“‰QAÌ€-0AlLÀ’‰QAÌÀ0AlL€‘‰QAÌ€ç0AlL@‰QAÌ€Ü0AlL`‰QAÌ,0AlL€’‰QAÌ€0AlL ‰QAÌà0AlL`‚‰QAÌ@±0AlL@y‰QAÌ@—0AlL@r‰QĂ0AlL@k‰QAÌÀt0AlLàd‰QAÌÀh0AlL°]‰QAÌ@#0AlL`‰QAÌ0AlL Y‰QAÌ@Ý0AlL T‰QAÌ€¹0AlL@O‰QAÌ€¢0AlLàG‰QA̤0AlL>‰QA̧0AlLÀ6‰QAÌ@§0AlL€/‰QAÌ@¨0AlL€(‰QAÌ€©0AlLÀ‰QAÌ€­0AlL@‰QAÌ@°0AlL ‰QAÌ@¹0AlL€‰QA˜€þ/AlL€‰QA˜Ôý/AlLÀ‰QA˜–ý/AlL@þˆQA˜€Tý/AlL øˆQA˜ý/AlL óˆQA˜Ðü/AlL`íˆQA˜ü/AlL€æˆQA˜€^ü/AlL àˆQA˜ü/AlLà߈QA˜°û/AlLèˆQA˜»ú/AlLÀÚˆQA˜€–ú/AlL`ЈQA˜€}ú/AlL`ʈQA˜Sú/AlL`ÈQA˜€#ú/AlL€¾ˆQA˜Ôù/AlL@µˆQA˜ªù/AlL ®ˆQA˜€ˆù/AlL@¨ˆQA˜€ ø/AlLÀ~ˆQA˜€E÷/AlLàmˆQA˜ûö/AlLÐiˆQA˜€Æö/AlLgˆQA˜ö/AlL `ˆQA˜€±õ/AlL _ˆQA˜õ/AlLÀXˆQA˜€Øô/AlL SˆQA˜€…ô/AlL MˆQA˜€ ô/AlL€DˆQA˜€‘ó/AlLÀ;ˆQA˜€ó/AlLà2ˆQA˜€§ò/AlLà*ˆQA˜€ò/AlL ˆQA˜€¬ñ/AlLˆQA˜€êð/AlLàˆQA˜€Žð/AlL@ˆQA˜ð/AlL€ˆQA˜€«ï/AlL@ ˆQA˜€ï/AlL ˆQA˜Šî/AlL ö‡QA˜€î/AlL`í‡QA˜€eí/AlL€Þ‡QA˜€†ë/AlL@¬‡QA˜@ê/AlLàž‡QA˜½ê/AlL€-‡QA˜;ë/AlL`‡QA˜ì/AlL`ÆQA˜:ì/AlL ¸†QA˜„ì/AlLÀª†QA˜€Ïì/AlLÀ¡†QA˜€ í/AlL€›†QA˜fí/AlLPc†QA˜kí/AlL0`†QA˜€=î/AlLÀÚ…QA˜î/AlL`£…QA˜€&ð/AlLàõ„QA˜€fð/AlL ð„QA˜€Þð/AlL ê„QA˜€\ñ/AlL`à„QA˜€ò/AlL@Ó„QA˜€~ò/AlLÇ„QA˜ó/AlL€±„QA˜Óó/AlL „QA˜÷ñ/AlL`x„QA˜éð/AlLZ„QA˜€Wð/AlL^„QA˜€9í/AlLÀ7„QA˜€Wí/AlL )„QA˜€Êì/AlLƒQA˜¸ê/AlL@GƒQA˜€bê/AlLà6ƒQA˜+ê/AlL 5ƒQA˜€Óé/AlL`0ƒQA˜€é/AlL $ƒQA˜€™é/AlLÀƒQA˜Æé/AlLÀƒQA˜€êé/AlL í‚QA˜@ñé/AlLØê‚QA˜€+ê/AlL`Ö‚QA˜Ëê/AlL ž‚QA˜ûê/AlL`‚QA˜€©ë/AlL T‚QA˜€Àë/AlLL‚QA˜€Ùë/AlLà8‚QA˜€ì/AlL`&‚QA˜€!ì/AlL€‚QA˜€?ì/AlL ‚QA˜€Êì/AlL€ÏQA˜€zì/AlLpËQA˜€ ì/AlL ÙQA˜€sê/AlL°ìQA˜;é/AlLÜQA˜€Äç/AlLàéQA˜0ç/AlLÀ‚QA˜€Áæ/AlL‚QA˜tÝ/AlLÐï€QA˜€aÝ/AlL í€QA˜êÜ/AlL€ß€QA˜@õÛ/AlLà QA˜ÜÛ/AlLàQA˜€ÆÚ/AlL 8QA˜·Ù/AlL€[QA˜€Ù/AlL vQA˜€³Ø/AlL€|QA˜pØ/AlL QA˜dØ/AlL QA˜×Ö/AlLqQA˜€Ö/AlLÀmQA˜Ö/AlLkQA˜€¡Õ/AlLàhQA˜€ Õ/AlLÀeQA˜pÔ/AlLàcQA˜€ÇÓ/AlL@dQA˜€ÞÒ/AlL@cQA˜€’Å/AlL€{QA˜€ÔÄ/AlL`QA˜8Ä/AlL „QA˜€ÅÃ/AlLàƒQA˜Ã/AlL „QA˜€fÂ/AlL …QA˜Â/AlL QA˜€bÂ/AlLÀ©QA˜€´Â/AlLà¼QA˜Ã/AlLàÚQA˜€8Ã/AlL@íQA˜€BÃ/AlL ôQA˜ÇÁ/AlL  ‚QA˜€€Á/AlL@‚QA˜=Á/AlLà‚QA˜€Á/AlL ‚QA˜€ºÀ/AlL€ ‚QA˜€À/AlL %‚QA˜€À/AlLÀ+‚QA˜Õ¿/AlL€2‚QA˜€¤¿/AlL€6‚QA˜€/¿/AlL E‚QA˜;/AlL`M‚QA˜€f¾/AlL€W‚QA˜€¾/AlL c‚QA˜€Ý½/AlLài‚QA˜Ľ/AlLq‚QA˜¾/AlL`t‚QA˜€0¾/AlL@{‚QA˜f¾/AlLÀ|‚QA˜€²¾/AlL`€‚QA˜ã¾/AlL ‡‚QA˜ ¿/AlLÀŒ‚QA˜€D¿/AlL”‚QA˜Y¿/AlL@š‚QA˜€ž¿/AlLàŸ‚QA˜€Ñ¿/AlLूQA˜€ò¿/AlL`«‚QA˜€À/AlL@´‚QA˜>À/AlLÀ¾‚QA˜[À/AlL€È‚QA˜€fÀ/AlL Ñ‚QA˜€ƒÀ/AlLàÖ‚QA˜ÑÀ/AlLàÛ‚QA˜õÀ/AlLÀà‚QA˜€ Á/AlL€ì‚QA˜Á/AlL€û‚QA˜€4Á/AlL€ƒQA˜\Á/AlLàƒQA˜€Á/AlLÀƒQA˜€Á/AlL`!ƒQA˜€ŸÁ/AlL *ƒQA˜€¾Á/AlL`/ƒQA˜øÁ/AlL`0ƒQA˜€0Â/AlL 3ƒQA˜-Â/AlLP:ƒQA˜€(Â/AlL8<ƒQA˜Â/AlL <ƒQA˜Á/AlL CƒQA˜ÚÀ/AlL GƒQA˜€xÀ/AlL@PƒQA˜€Õ¿/AlL@[ƒQA˜€0¿/AlLàhƒQA˜€¾/AlL|ƒQA˜€à½/AlLÀƒQA˜D½/AlL`›ƒQA˜ð¼/AlL@¥ƒQA˜€}¼/AlLೃQA˜€'¼/AlL`ÁƒQA˜€¼/AlLƃQA˜€â»/AlLÀЃQA˜€»/AlL`àƒQA˜»/AlLòƒQA˜€šº/AlL „QA˜dº/AlL„QA˜€º/AlL 5„QA˜ѹ/AlL L„QA˜й/AlLà[„QA˜€¹/AlL€q„QA˜€°¸/AlL |„QA˜‘·/AlL –„QA˜€ú¶/AlL §„QA˜€©¶/AlLÀº„QAhìÐÌL¶/AlL0Å„QA˜B¶/AlL`Æ„QA˜€7¶/AlL Ç„QA˜Ôµ/AlL Í„QA˜µ/AlLÀÖ„QA˜ª³/AlL€ë„QA˜³²/AlLÀû„QA˜F²/AlL€…QA˜é±/AlL…QA˜{±/AlLà…QA˜ ±/AlLà…QA˜€<°/AlLÀ!…QA˜€w®/AlLp:…QA˜â­/AlL B…QA˜€,­/AlL€L…QA˜Ŭ/AlL`Q…QA˜€i¬/AlL S…QA˜¬/AlL@Z…QA˜€¸«/AlL b…QA˜€,«/AlL€k…QA˜îª/AlL`q…QA˜Õª/AlLÀs…QA˜€Ÿª/AlL z…QA˜€Yª/AlL ‡…QA˜€ª/AlL@•…QA˜€É©/AlLÀ¢…QA˜€p©/AlL ²…QA˜'©/AlL€¾…QA˜€ë¨/AlL Ì…QA˜€¢¨/AlL@Û…QA˜€\¨/AlLæ…QA˜6¨/AlLî…QA˜è§/AlLàþ…QA˜€t§/AlL@ †QA˜€€§/AlL@†QA˜€Ì§/AlLà!†QA˜4¨/AlLà.†QA˜€Â¨/AlLà@†QA˜í¨/AlL`S†QA˜€©/AlLÀ[†QA˜€©/AlL€b†QA˜Kª/AlL`l†QA˜€¤ª/AlL`n†QA˜€1ª/AlL@…†QA˜F«/AlL€†QA˜€Ú«/AlL™†QA˜€s¬/AlL †QA˜÷¬/AlL@¢†QA˜·­/AlL¬†QA˜p®/AlL`³†QA˜€¯/AlL@»†QA˜¨¯/AlL`Á†QA˜!°/AlL@ȆQA˜€p°/AlL€Ñ†QA˜Õ°/AlLàÔ†QA˜I±/AlL Ù†QA˜¥±/AlL€Þ†QA˜€õ²/AlL@ó†QA˜Z´/AlLÀ‡QA˜Gµ/AlL ‡QA˜€Z¶/AlLÀ"‡QA˜¥¶/AlLÀ)‡QA˜Þ¶/AlL@3‡QA˜-·/AlL=‡QA˜€Œ·/AlL @‡QA˜€¸/AlL @‡QA˜@¸/AlL ?‡QA˜€—¸/AlLà<‡QA˜¹/AlL N‡QA˜€»/AlL;‡QA˜€Q»/AlL`5‡QA˜€»/AlL=‡QA˜л/AlL€D‡QA˜€¼/AlLàE‡QA˜€J¼/AlL B‡QA˜€¼/AlL >‡QA˜Ù¼/AlL>‡QA˜ÿ¼/AlLàB‡QA˜#½/AlL@J‡QA˜¥½/AlLàK‡QA˜€ò½/AlL€M‡QA˜€)¾/AlL@O‡QA˜€X¾/AlL@V‡QA˜€›¾/AlL \‡QA˜€¿/AlL`i‡QA˜R¿/AlL@h‡QA˜¿/AlL`f‡QA˜ä¿/AlLf‡QA˜)À/AlL`h‡QA˜[À/AlLàl‡QA˜À/AlLÀr‡QA˜€ÙÀ/AlL€x‡QA˜Á/AlL€y‡QA˜€bÁ/AlL`x‡QA˜€ÃÁ/AlL@z‡QA˜€XÂ/AlL`~‡QA˜€ÏÂ/AlLà€‡QA˜Ã/AlL€‡QA˜\Ã/AlL@~‡QA˜˜Ã/AlL€z‡QA˜€ôÃ/AlL`x‡QA˜@Ä/AlL@y‡QA˜€žÄ/AlL €‡QA˜€îÄ/AlL ‰‡QA˜;Å/AlL@‡QA˜‚Å/AlL ’‡QA˜ÒÅ/AlL ’‡QA˜7Æ/AlLÀ–‡QA˜œÆ/AlLÀŸ‡QA˜€Ç/AlL`¤‡QA˜€IÇ/AlL€ª‡QA˜Ç/AlL`¬‡QA˜€¾Ç/AlLÀ©‡QA˜€"È/AlL §‡QA˜€¬È/AlL€¨‡QA˜"É/AlLÀ§‡QA˜€„É/AlLઇQA˜ÓÉ/AlL ²‡QA˜;Ê/AlL ¶‡QA˜€¬Ê/AlL ½‡QA˜Ë/AlL ̇QA˜EË/AlLׇQA˜€’Ë/AlL݇QA˜€èË/AlL݇QA˜qÌ/AlL@á‡QA˜€Í/AlL`ç‡QA˜€€Í/AlL ó‡QA˜€ÖÍ/AlL€ˆQA˜€yÎ/AlL€ˆQA˜€×Î/AlL`ˆQA˜€eÏ/AlLàˆQA˜€ñÏ/AlL  ˆQA˜4Ð/AlL@'ˆQA˜–Ð/AlL 3ˆQA˜€ÃÐ/AlL`?ˆQA˜€Ñ/AlLMˆQA˜dÑ/AlL ]ˆQA˜ÅÑ/AlL€`ˆQA˜€ñÑ/AlL cˆQA˜.Ò/AlL fˆQA˜€rÒ/AlLjˆQA˜±Ò/AlLàmˆQA˜ÝÒ/AlLÀqˆQA˜€ Ó/AlL tˆQA˜\Ó/AlL yˆQA˜¤Ó/AlLÀ}ˆQA˜ÞÓ/AlLàˆQA˜0Ô/AlL@†ˆQA˜tÔ/AlL ‰ˆQA˜€ÌÔ/AlLÀˆQA˜ Õ/AlL@’ˆQA˜€dÕ/AlLàšˆQA˜€®Õ/AlLŸˆQA˜€úÕ/AlLÀ£ˆQA˜€…×/AlL«ˆQA˜€Ã×/AlL`®ˆQA˜)Ú/AlLψQA˜³Û/AlLáˆQA˜ôÜ/AlL@íˆQA˜€3Þ/AlLà‰QA˜jÞ/AlL ‰QA˜€¨Þ/AlL‰QA˜ìÞ/AlL`‰QA˜€>ß/AlL "‰QA˜•ß/AlL*‰QA˜ôß/AlL 3‰QA˜€6à/AlLÀ:‰QA˜€à/AlLàD‰QA˜€êà/AlLàN‰QA˜€õä/AlL ‹‰QA˜å/AlL`…‰QA˜>å/AlL@€‰QA˜€?å/AlL}‰QA˜€Uå/AlLÀO‰QA˜€Vå/AlL M‰QA˜€‘æ/AlL V‰QA˜€+ç/AlLÀV‰QA˜ç/AlLÀV‰QA˜€è/AlL€R‰QA˜€jè/AlL@R‰QA˜€ é/AlL W‰QA˜£é/AlL€[‰QA˜"ê/AlL _‰QA˜€ê/AlLd‰QA˜€éê/AlL h‰QA˜_ë/AlL n‰QA˜€¸ë/AlLÀp‰QA˜€ðð/AlL€£‰QA˜ò/AlLà ‰QA˜€šò/AlL€¡‰QA˜Ùò/AlLÀ‰QA˜>ó/AlLàœ‰QA˜®ó/AlLà‰QA˜€ ô/AlL ¡‰QA˜€pô/AlLÀ¥‰QA˜ õ/AlL¶‰QA˜{õ/AlL@ʼnQA˜€ö/AlL â‰QA˜€Dö/AlLÀó‰QA˜”ö/AlLàŠQA˜ø/AlL°ŠQA˜€*ø/AlLŠQA˜€Fú/AlL`¾‰QA˜„ú/AlL ¸‰QA˜€…/AlLÀi…QA˜€T6/AlLàäŒQA@˜¦,/AlLÀàŒQA˜€Ù,/AlL`ØŒQA˜î,/AlLÀÏŒQA˜-/AlL`ÉŒQA˜€€-/AlLÀÈŒQA˜€µ-/AlLÌŒQA˜ê-/AlLÀÏŒQA˜#./AlLàÍŒQA˜l./AlLÀÌŒQA˜ž./AlLÑŒQA˜//AlLÔŒQA˜€U//AlL ÓŒQA˜®//AlL`ÐŒQA˜€ù//AlLËŒQA˜€I0/AlL ÈŒQA˜€„0/AlL`ÆŒQA˜€Ð0/AlL@ÀŒQA˜€1/AlL ¹ŒQA˜f1/AlL€­ŒQA˜€q1/AlL€£ŒQA˜€~1/AlLšŒQA˜¦1/AlL ”ŒQA˜€Ú1/AlL@†ŒQA˜C2/AlL ŒQA˜€“2/AlL{ŒQA˜€Õ2/AlLà{ŒQA˜3/AlL@{ŒQA˜—3/AlLxŒQA˜€Ý3/AlLðuŒQA˜ 4/AlL€tŒQA˜p4/AlL`qŒQA˜ç4/AlL lŒQA˜<5/AlLÀgŒQA˜±5/AlL€cŒQA˜K6/AlLp_ŒQA˜P6/AlL XŒQA˜I6/AlLÀNŒQA˜=6/AlL DŒQA˜=6/AlLÀ4ŒQA˜?6/AlL@.ŒQA˜€S6/AlL`#ŒQA˜€T6/AlL@ŒQA˜M6/AlLŒQA˜€,6/AlL ŒQA˜€6/AlL`ÿ‹QA˜ö5/AlLÀõ‹QA˜Ì5/AlLàé‹QA˜€ž5/AlL`Ý‹QA˜]5/AlL€Õ‹QA˜:5/AlLà΋QA˜5/AlL@ËQA˜€Û4/AlL€µ‹QA˜·4/AlL`«‹QA˜Š4/AlL ¡‹QA˜N4/AlL–‹QA˜.4/AlL@‹QA˜4/AlL…‹QA˜À3/AlL`w‹QA˜u3/AlLÀn‹QA˜83/AlL h‹QA˜€3/AlLà_‹QA˜€Ú2/AlL€W‹QA˜·2/AlLàK‹QA˜ª2/AlLF‹QA˜˜2/AlLÀ>‹QA˜_2/AlL #‹QA˜€=2/AlL€‹QA˜2/AlLÀ‹QA˜å1/AlL ‹QA˜€Ý1/AlLüŠQA˜×1/AlL`õŠQA˜þ1/AlL@ñŠQA˜€2/AlL@çŠQA˜€2/AlL@ÞŠQA˜ö1/AlL€×ŠQA˜2/AlLàЊQA˜€2/AlLÊŠQA˜2/AlLÀÀŠQA˜€½1/AlL ³ŠQA˜“1/AlL ©ŠQA˜Ù0/AlL€ŸŠQA˜0/AlL€sŠQA˜€‰0/AlLeŠQA˜€f0/AlL0`ŠQA˜W0/AlL^ŠQA˜€0/AlLÀTŠQA˜û//AlL`KŠQA˜€Ç//AlLà>ŠQA˜ƒ//AlLà/ŠQA˜€l//AlL )ŠQA˜€B//AlLÀŠQA˜€ø./AlL ŠQA˜Ã./AlL`÷‰QA˜€Œ./AlL í‰QA˜9./AlL`á‰QA˜€ì-/AlL`Ù‰QA˜¡-/AlLÀЉQA˜€m-/AlLȉQA˜€,-/AlL`¾‰QA˜ -/AlLÀ±‰QA˜€ù,/AlL@¢‰QA˜-/AlL’‰QA˜ö,/AlL‰QA˜€Ô,/AlL u‰QA˜€¸,/AlL@b‰QA˜‘,/AlL S‰QA˜€ƒ,/AlL C‰QA˜r,/AlL 3‰QA˜V,/AlL`(‰QA˜/,/AlL`‰QA˜€ ,/AlL@‰QA˜ó+/AlL@ýˆQA˜Ø+/AlLõˆQA˜š+/AlL èˆQA˜e+/AlLàÞˆQA˜\+/AlLÀÖˆQA˜€W+/AlL`ψQA˜€p+/AlL@^ˆQA˜3+/AlLàUˆQA˜ +/AlL€KˆQA˜+/AlL@DˆQA˜€+/AlL9ˆQA˜€+/AlLà-ˆQA˜€+/AlL !ˆQA˜A+/AlLÀˆQA˜€`+/AlLPˆQA˜j+/AlLˆQA˜´+/AlL ˆQA˜€ü+/AlLÀˆQA˜€@,/AlL ˆQA˜€¿,/AlLÀˆQA˜€B-/AlL %ˆQA˜€™-/AlL@(ˆQA˜Û-/AlL@*ˆQA˜€0./AlLÀ+ˆQA˜z./AlL 0ˆQA˜±./AlL.ˆQA˜€Û./AlL,ˆQA˜€Ä./AlL€"ˆQA˜’./AlLÀˆQA˜Y./AlLÀˆQA˜ ./AlL€ ˆQA˜Á-/AlL`ˆQA˜Š-/AlL`ˆQA˜y-/AlL ù‡QA˜v-/AlLàð‡QA˜€/-/AlLÀñ‡QA˜ç,/AlL í‡QA˜Ú,/AlL`ç‡QA˜÷,/AlL`߇QA˜€ÿ,/AlL Ö‡QA˜Û,/AlL@ЇQA˜Å,/AlLàȇQA˜Ö,/AlL À‡QA˜€Ì,/AlLÀ·‡QA˜˜,/AlL@°‡QA˜\,/AlL©‡QA˜€k,/AlL`¢‡QA˜D,/AlL`“‡QA˜I,/AlLà‰‡QA˜€X,/AlL„‡QA˜q,/AlL {‡QA˜•,/AlLàt‡QA˜€½,/AlLÀp‡QA˜×,/AlL`j‡QA˜Û,/AlL c‡QA˜€â,/AlL`Y‡QA˜€-/AlLàN‡QA˜€&-/AlL`H‡QA˜J-/AlLÀB‡QA˜y-/AlL =‡QA˜ª-/AlL9‡QA˜€Ð-/AlL€4‡QA˜ó-/AlL€/‡QA˜€./AlL`*‡QA˜,./AlLÀ#‡QA˜€<./AlL€‡QA˜n./AlL`‡QA˜|./AlLÀ‡QA˜›./AlL@‡QA˜Þ./AlLú†QA˜þ./AlLô†QA˜€//AlL í†QA˜//AlL ã†QA˜8//AlL Û†QA˜€^//AlL Ö†QA˜“//AlL φQA˜€²//AlL ɆQA˜Ó//AlL@Á†QA˜Ú//AlL`»†QA˜á//AlL ³†QA˜€î//AlLଆQA˜ú//AlL@£†QA˜00/AlL`˜†QA˜Ž0/AlLàŠ†QA˜Ð0/AlLà|†QA˜ñ0/AlL`t†QA˜€1/AlL l†QA˜;1/AlL`f†QA˜€V1/AlLà`†QA˜Ñ1/AlL@D†QA˜€D1/AlL€5†QA˜1/AlLà*†QA˜ä0/AlL'†QA˜€Ö0/AlLà%†QA˜f0/AlL †QA˜€0/AlL`†QA˜€Û//AlL  †QA˜€ˆ//AlL †QA˜6//AlLÀú…QA˜Ý./AlLí…QA˜./AlLàà…QA˜./AlL`×…QA˜¼-/AlLÀÎ…QA˜€;-/AlLàÃ…QA˜Û,/AlL¼…QA˜‡,/AlL¸…QA˜€(,/AlL ´…QA˜©+/AlL²…QA˜€I+/AlL€¯…QA˜Õ*/AlL «…QA˜v*/AlL ¥…QA˜€*/AlLÀš…QA˜¥)/AlL`…QA˜e)/AlL€‡…QA˜€)/AlL`~…QA˜€ž(/AlLx…QA˜€/(/AlLÀt…QA˜Ÿ'/AlLÀi…QA˜€œ'/AlLpk…QA˜€”'/AlL q…QA˜p'/AlL y…QA˜G'/AlL …QA˜€&'/AlL †…QA˜€ø&/AlLÀŒ…QA˜€Ñ&/AlL`‘…QA˜œ&/AlL€”…QA˜&/AlL ¥…QA˜¦%/AlL@§…QA˜O%/AlLÀ«…QA˜€õ$/AlL ¦…QA˜€o$/AlL@š…QA˜1$/AlL Œ…QA˜€ì#/AlLÀ„…QA˜€w#/AlLÀ……QA˜€ÿ"/AlL…QA˜€L#/AlLÀ˜…QA˜€µ#/AlL`£…QA˜þ#/AlL ®…QA˜5$/AlL`¾…QA˜m$/AlL@Ê…QA˜g$/AlLÀØ…QA˜P$/AlL á…QA˜€"$/AlLî…QA˜€×#/AlL ò…QA˜€o#/AlL€î…QA˜<#/AlL€á…QA˜€#/AlL Ô…QA˜ð"/AlL€Ù…QA˜€š"/AlL@Ø…QA˜P"/AlL Õ…QA˜€"/AlL@Ñ…QA˜€½!/AlLÀÏ…QA˜€U!/AlL Ï…QA˜€ê /AlL×…QA˜€™ /AlL ß…QA˜D /AlL€è…QA˜ñ/AlLà÷…QA˜¼/AlLÀ†QA˜›/AlL@†QA˜€‡/AlLÀ,†QA˜m/AlL€4†QA˜*/AlLÀ8†QA˜÷/AlLÀ6†QA˜/AlL€2†QA˜€e/AlL )†QA˜F/AlL`†QA˜/AlLÀ†QA˜¦/AlL@†QA˜/AlL`!†QA˜x/AlLÀ.†QA˜æ/AlLÀ:†QA˜`/AlL E†QA˜/AlLK†QA˜Ä/AlLÀM†QA˜€Š/AlL O†QA˜€;/AlLQ†QA˜€Ã/AlL€S†QA˜$/AlL`_†QA˜È/AlLàh†QA˜€/AlLào†QA˜z/AlL x†QA˜€ò/AlL@€†QA˜4/AlL`††QA˜€×/AlL Š†QA˜\/AlL@†QA˜Ö/AlLà”†QA˜/AlL@–†QA˜/AlLÀ–†QA˜€¿/AlLÀš†QA˜€</AlL¦†QA˜è/AlL`°†QA˜¦/AlL@·†QA˜k/AlL ¿†QA˜€D/AlL€Ã†QA˜€</AlL@ΆQA˜€R/AlLÖ†QA˜€7/AlLÛ†QA˜/AlL Ý†QA˜€ç/AlL â†QA˜>/AlLî†QA˜,/AlL ô†QA˜€/AlLý†QA˜ï/AlL@‡QA˜ƒ/AlLÀ‡QA˜</AlLà ‡QA˜€ /AlLÀ‡QA˜²/AlL ‡QA˜€—/AlL‡QA˜i/AlL@‡QA˜$/AlL ‡QA˜€ò/AlL‡QA˜€©/AlL`‡QA˜€…/AlL@‡QA˜€…/AlL ‡QA˜u/AlL@‡QA˜:/AlL þ†QA˜€ô /AlL ý†QA˜² /AlLÀõ†QA˜v /AlL ç†QA˜% /AlL`ë†QA˜ /AlL`ø†QA˜€þ /AlL€‡QA˜€Ï /AlL ‡QA˜ž /AlL@‡QA˜„ /AlL "‡QA˜€¬ /AlL@,‡QA˜ /AlL 3‡QA˜K /AlL€?‡QA˜€¦ /AlL L‡QA˜€È /AlLÀZ‡QA˜€² /AlL e‡QA˜€ /AlL q‡QA˜o /AlLpw‡QA˜€\ /AlL{‡QA˜€? /AlLƒ‡QA˜€ /AlLÀ‘‡QA˜€÷ /AlLࢇQA˜€ç /AlL€±‡QA˜€» /AlL ¼‡QA˜€… /AlL€¾‡QA˜€S /AlL྇QA˜€æ /AlLàŇQA˜€ /AlLàχQA˜€= /AlL@ׇQA˜G /AlL à‡QA˜ /AlL@è‡QA˜Õ /AlLô‡QA˜€Ÿ /AlLàö‡QA˜† /AlLàí‡QA˜€O /AlLÀæ‡QA˜ /AlLà݇QA˜Å /AlL܇QA˜´ /AlL@ö‡QA˜Î /AlL ˆQA˜¶ /AlL@ˆQA˜€Ÿ /AlL`*ˆQA˜€9 /AlL 0ˆQA˜€Õ /AlL@/ˆQA˜Ÿ /AlL $ˆQA˜u /AlL@ˆQA˜8 /AlLà ˆQA˜€¼/AlL  ˆQA˜–/AlL€ˆQA˜œ/AlL` ˆQA˜€p/AlL &ˆQA˜/AlLˆQA˜Ú/AlL ˆQA˜Œ/AlL€ˆQA˜E/AlLàˆQA˜2/AlLÀˆQA˜/AlL *ˆQA˜ë/AlL@3ˆQA˜®/AlL€4ˆQA˜"/AlL`6ˆQA˜/AlL€BˆQA˜/AlL OˆQA˜€¥/AlLÀhˆQA˜€h/AlLà†ˆQA˜&/AlL@ ˆQA˜ó/AlLà°ˆQA˜€¹/AlLÀĈQA˜¢/AlLàÓˆQA˜ç/AlL@ÔˆQA˜!/AlL€ÕˆQA˜S/AlL݈QA˜A/AlL ëˆQA˜€ /AlLüˆQA˜€Ü/AlL`‰QA˜ª/AlLÀ ‰QA˜€/AlL‰QA˜b/AlL@‰QA˜I/AlL€‰QA˜€/AlL€-‰QA˜/AlL 9‰QA˜é/AlLÀE‰QA˜Í/AlLÀL‰QA˜‘/AlL`^‰QA˜Q/AlLào‰QA˜/AlL‰QA˜€½/AlLމQA˜€•/AlLÀ—‰QA˜€a/AlL ª‰QA˜N/AlLྉQA˜€@/AlL@ωQA˜/AlL@â‰QA˜€/AlLàø‰QA˜ó/AlL@ ŠQA˜Ö/AlLÀŠQA˜€Ç/AlL€#ŠQA˜·/AlL .ŠQA˜€ž/AlL€6ŠQA˜€…/AlL@ŠQA˜€Ç/AlL =ŠQA˜€/AlL ;ŠQA˜X/AlL`:ŠQA˜œ/AlLà9ŠQA˜€Þ/AlLÀ9ŠQA˜€(/AlL`7ŠQA˜b/AlL 5ŠQA˜€¥/AlLà2ŠQA˜€ì/AlL€.ŠQA˜$/AlL,ŠQA˜Y/AlL $ŠQA˜ö/AlL€'ŠQA˜\/AlLà+ŠQA˜€É/AlL 1ŠQA˜O/AlL`7ŠQA˜€à/AlL AŠQA˜€,/AlL`FŠQA˜œ/AlLàOŠQA˜/AlLÀXŠQA˜€r/AlL@bŠQA˜Ö/AlLÀkŠQA˜€! /AlLàsŠQA˜„ /AlLàŠQA˜´ /AlL€†ŠQA˜€ /AlL€‘ŠQA˜€; /AlL ˜ŠQA˜€f /AlLžŠQA˜€— /AlL࣊QA˜Ë /AlL ¨ŠQA˜ /AlL­ŠQA˜e /AlL@­ŠQA˜€¥ /AlL ®ŠQA˜ /AlL ³ŠQA˜€u /AlL ·ŠQA˜€* /AlLÀÁŠQA˜€Š /AlL`ÆŠQA˜€/AlL@ÑŠQA˜/AlLЊQA˜T/AlLàÌŠQA˜€—/AlLÈŠQA˜€ /AlLÅŠQA˜L/AlLÀÄŠQA˜€{/AlL ÅŠQA˜Ë/AlL ÇŠQA˜;/AlL ÅŠQA˜€†/AlLÊQA˜€â/AlL¾ŠQA˜/AlL@½ŠQA˜n/AlL ¿ŠQA˜€Í/AlL@ÁŠQA˜€Í/AlLÊQA˜/AlLàÄŠQA˜m/AlL ÅŠQA˜€Æ/AlL`ÀŠQA˜ÿ/AlL ¼ŠQA˜O/AlL0ÊQA˜€o/AlLðÈŠQA˜®/AlL ΊQA˜Ø/AlL`ÒŠQA˜€/AlL`׊QA˜d/AlL ÜŠQA˜€§/AlLàߊQA˜ö/AlL äŠQA˜I/AlLàéŠQA˜/AlL@ôŠQA˜€T/AlL@õŠQA˜€Š/AlL@ùŠQA˜€å/AlL`ÿŠQA˜/AlL ‹QA˜X/AlL ‹QA˜€­/AlL ‹QA˜ó/AlLÀ ‹QA˜€:/AlL  ‹QA˜•/AlL` ‹QA˜€á/AlL€ ‹QA˜;/AlL@ ‹QA˜ˆ/AlLÀ‹QA˜»/AlL‹QA˜ /AlL ‹QA˜€8/AlL€‹QA˜’/AlLà‹QA˜€æ/AlL‹QA˜€$/AlL`‹QA˜€‹/AlL€‹QA˜­/AlL "‹QA˜ /AlLà%‹QA˜i/AlL(‹QA˜€/AlLà-‹QA˜€E/AlL &‹QA˜€v/AlL@$‹QA˜Ä/AlL€‹QA˜€ó/AlL`‹QA˜f /AlLÀ‹QA˜¬ /AlL ‹QA˜â /AlL ‹QA˜€'!/AlL`‹QA˜R!/AlL ‹QA˜’!/AlL‹QA˜€¾!/AlLà$‹QA˜€ø!/AlL '‹QA˜€3"/AlLà%‹QA˜€ª"/AlLÐ+‹QA˜Ý"/AlL`7‹QA˜#/AlL€?‹QA˜[#/AlL C‹QA˜€Æ#/AlL@I‹QA˜ó#/AlL€P‹QA˜€ü#/AlL`Y‹QA˜$/AlL@d‹QA˜$/AlLÀf‹QA˜€n$/AlLs‹QA˜€Â$/AlLy‹QA˜Ö$/AlL{‹QA˜€%/AlL`ƒ‹QA˜€l%/AlLà’‹QA˜€¶%/AlL ¡‹QA˜ü%/AlLଋQA˜€D&/AlL¶‹QA˜“&/AlL@½‹QA˜¦&/AlL`Ì‹QA˜€&/AlL@Ú‹QA˜€’&/AlLàå‹QA˜€•&/AlL€ñ‹QA˜â&/AlLŒQA˜8'/AlLŒQA˜€s'/AlLÐŒQA˜•'/AlL ŒQA˜€Ÿ'/AlL "ŒQA˜(/AlLŒQA˜€(/AlL "ŒQA˜(/AlL .ŒQA˜>(/AlL@:ŒQA˜€g(/AlLÀFŒQA˜¡(/AlL`ZŒQA˜¨(/AlLgŒQA˜(/AlLoŒQA˜€x(/AlLŒQA˜€Œ(/AlL€”ŒQA˜À(/AlL` ŒQA˜€)/AlL€©ŒQA˜€P)/AlLp°ŒQA˜[)/AlLºŒQA˜p)/AlL`ÂŒQA˜­)/AlLÀÈŒQA˜ó)/AlLÀÑŒQA˜w*/AlLàÚŒQA˜Ñ*/AlLàÓŒQA˜€+/AlLÙŒQA˜:+/AlL`áŒQA˜‰+/AlL@àŒQA˜ô+/AlL@ãŒQA˜€_,/AlLàäŒQA˜¦,/AlLÀàŒQA%&˜@]¹.AlLàlžQA˜€/AlL Å­QA¡»ÏK˜€È/AlL û¨QA˜µ/AlL ï¨QA˜/AlL`á¨QA˜€/AlLÙ¨QA˜€„/AlLÀȨQA˜…/AlL€¼¨QA˜“/AlL §¨QA˜€r/AlL`¨QA˜M/AlLÀ”¨QA˜€./AlL`ЍQA˜€L/AlL`ƒ¨QA˜n/AlL }¨QA˜£/AlL@x¨QA˜¬/AlLào¨QA˜€‹/AlLÀe¨QA˜€‹/AlL@^¨QA˜|/AlL€N¨QA˜a/AlL€E¨QA˜R/AlL=¨QA˜€Y/AlL€2¨QA˜€/AlL (¨QA˜€Â/AlL` ¨QA˜€/AlL ¨QA˜€5/AlL€¨QA˜y/AlL€ ¨QA˜¶/AlL@¨QA˜å/AlL`ú§QA˜ú/AlL@ò§QA˜ /AlLàè§QA˜€ü/AlL Þ§QA˜Ú/AlL`اQA˜¤/AlL Ð§QA˜€V/AlL`ǧQA˜€(/AlL À§QA˜€/AlL๧QA˜è/AlL@±§QA˜€Ô/AlL@©§QA˜ /AlL@§QA˜€z/AlL ˆ§QA˜€_/AlL ‚§QA˜€7/AlL z§QA˜/AlL u§QA˜ð/AlL@n§QA˜«/AlLàd§QA˜{/AlLà\§QA˜€S/AlLÀW§QA˜€/AlLàO§QA˜Ñ/AlL@I§QA˜›/AlLE§QA˜€c/AlL@@§QA˜/AlL ;§QA˜Ø/AlL@3§QA˜­/AlL )§QA˜’/AlL@#§QA˜€/AlL §QA˜€m/AlL §QA˜e/AlLÀ§QA˜€x/AlL þ¦QA˜a/AlLàò¦QA˜€M/AlL ê¦QA˜/AlLàߦQA˜/AlL`ئQA˜€U/AlLàÔ¦QA˜\/AlL`ͦQA˜€+/AlL É¦QA˜€/AlLàæQA˜€,/AlL`½¦QA˜ú/AlL ²¦QA˜â/AlL ¨¦QA˜¿/AlL€¡¦QA˜“/AlLš¦QA˜Àm/AlLÀ€¦QA˜N/AlL h¦QA˜?/AlLÀX¦QA˜€)/AlLàH¦QA˜./AlL`=¦QA˜€Y/AlL0¦QA˜’/AlL ¦QA˜€ø/AlL` ¦QA˜2/AlLà¦QA˜{/AlLàö¥QA˜´/AlL`ë¥QA˜è/AlLä¥QA˜ /AlLÀÖ¥QA˜ý/AlLÀÌ¥QA˜Ù/AlLàÁ¥QA˜³/AlLÀ¶¥QA˜A/AlL@ª¥QA˜Ø/AlL@ ¥QA˜|/AlL`”¥QA˜//AlL Ž¥QA˜ó/AlL Š¥QA˜¤/AlL „¥QA˜s/AlLÀ¥QA˜€^/AlL {¥QA˜V/AlL`x¥QA˜€k/AlL0v¥QA˜€|/AlL€t¥QA˜Ì/AlL s¥QA˜:/AlLào¥QA˜€£/AlLk¥QA˜ý/AlLÀh¥QA˜d/AlLàd¥QA˜´/AlLÀa¥QA˜/AlL [¥QA˜€†/AlLU¥QA˜Þ/AlLP¥QA˜9/AlL€J¥QA˜€x/AlL`H¥QA˜Z/AlLÀ=¥QA˜€h/AlL@<¥QA˜š/AlL@7¥QA˜ð/AlL -¥QA˜€5/AlL€'¥QA˜€{/AlL !¥QA˜¾/AlL ¥QA˜ /AlL€¥QA˜­ /AlL@ý¤QA˜t /AlL`á¤QA˜€Ž /AlL`¤QA˜€ /AlLતQA˜g /AlL •¤QA˜€{ /AlL°¤QA˜‡ /AlLޤQA˜€ /AlL u¤QA˜[ /AlL€Z¤QA˜€h/AlL`=¤QA˜¬/AlL`-¤QA˜ /AlL ¤QA˜Ï/AlLàð£QA˜/AlLÀá£QA˜ñ/AlLà×£QA˜€á/AlL€Ð£QA˜Ú/AlLÀË£QA˜ô/AlL`½£QA˜€M/AlL@¦£QA˜€Ï/AlL€ƒ£QA˜€0/AlL`e£QA˜/AlLE£QA˜®/AlLÀö¢QA˜D/AlL`Ê¢QA˜ƒ/AlL@¯¢QA˜€°/AlLÀž¢QA˜Ï/AlL€“¢QA˜ï/AlL@‰¢QA˜/AlL}¢QA˜(/AlL q¢QA˜P/AlLàc¢QA˜€J/AlLP^¢QA˜F/AlLÀY¢QA˜/AlL Z¢QA˜€½/AlLÀ_¢QA˜€w/AlLc¢QA˜$/AlLÀg¢QA˜Î/AlLÀj¢QA˜y/AlL n¢QA˜€/AlLÀr¢QA˜«/AlL x¢QA˜O/AlLà~¢QA˜€/AlL „¢QA˜à/AlL ‰¢QA˜Š/AlL@¢QA˜¬/AlL ™¢QA˜}/AlL`’¢QA˜:/AlL€Œ¢QA˜€/AlL‰¢QA˜€Ï/AlL …¢QA˜…/AlLà}¢QA˜ˆ/AlLàu¢QA˜ž/AlLn¢QA˜x/AlL`f¢QA˜€L/AlL€a¢QA˜/AlLàW¢QA˜ã /AlLÀT¢QA˜€Å /AlL[¢QA˜ˆ /AlLÀd¢QA˜€n /AlL j¢QA˜€A /AlL@s¢QA˜$ /AlL@y¢QA˜Ñ /AlL`„¢QA˜€” /AlLà‹¢QA˜€x /AlLÀ’¢QA˜ê /AlL`¨¢QA˜6 /AlL ¿¢QA˜À /AlLТQA˜U /AlLàߢQA˜Ã/AlL@ô¢QA˜€Ž/AlLÀé¢QA˜€/AlLàæ¢QA˜[/AlLÞ¢QA˜€ /AlL€Ï¢QA˜«/AlLÀ¢QA˜z/AlL ¸¢QA˜€H/AlL ¸¢QA˜/AlL@´¢QA˜¾/AlL °¢QA˜€‚/AlL`§¢QA˜V/AlL` ¢QA˜€í/AlL¢QA˜€^/AlL ’¢QA˜0/AlL€ˆ¢QA˜€(/AlL |¢QA˜€ú/AlL t¢QA˜€Â/AlL l¢QA˜Ž/AlL i¢QA˜€Q/AlL f¢QA˜€ /AlLÀl¢QA˜ /AlL@f¢QA˜€s/AlL``¢QA˜./AlL@b¢QA˜ü/AlL`b¢QA˜ô/AlL[¢QA˜ó/AlLàM¢QA˜ä/AlLÀD¢QA˜€Í/AlL€>¢QA˜€²/AlL@5¢QA˜Œ/AlL`.¢QA˜]/AlL '¢QA˜€&/AlL !¢QA˜€Ã/AlL@¢QA˜€‡/AlL@¢QA˜b/AlL`¢QA˜X/AlLÀ ¢QA˜E/AlL@¢QA˜€>/AlLàú¡QA˜€/AlLõ¡QA˜ý/AlL€î¡QA˜¼/AlL è¡QA˜€Ã/AlL@â¡QA˜À/AlL`Ú¡QA˜€«/AlLàÏ¡QA˜€š/AlL áQA˜€a/AlL`¶¡QA˜`/AlL®¡QA˜/AlL@©¡QA˜Õ/AlL@¦¡QA˜€ô/AlLÀœ¡QA˜€Ý/AlL@—¡QA˜€œ/AlL ”¡QA˜P/AlL@Ž¡QA˜P/AlL …¡QA˜I/AlL€y¡QA˜€,/AlLo¡QA˜€ßÿ.AlLb¡QA˜Ãÿ.AlLàS¡QA˜’ÿ.AlL`F¡QA˜ÿ.AlLÀ<¡QA˜€¸þ.AlL`.¡QA˜cþ.AlL¡QA˜#þ.AlL ¡QA˜ñý.AlL¡QA˜€³ý.AlL`û QA˜Pý.AlLõ QA˜€*ý.AlL`ð QA˜Ïü.AlLÀê QA˜›ü.AlL`í QA˜=ü.AlLÀì QA˜€âû.AlLê QA˜ˆû.AlL é QA˜€û.AlL@î QA˜€½ú.AlL`ë QA˜^ú.AlL`æ QA˜)ú.AlLÜ QA˜?ú.AlL Ò QA˜@ú.AlLÄ QA˜Îù.AlL@µ QA˜€qù.AlL€® QA˜ù.AlL`¬ QA˜èø.AlL@¦ QA˜ ø.AlL¡ QA˜€Pø.AlLà› QA˜€ ø.AlL› QA˜÷.AlL`› QA˜@÷.AlL ’ QA˜€M÷.AlLÀŒ QA˜.÷.AlL@‡ QA˜ñö.AlL … QA˜€ºö.AlL€‰ QA˜ö.AlL€ QA˜Qö.AlL`’ QA˜€òô.AlL v QA˜Ûó.AlL`\ QA˜-ò.AlL@? QA˜€çñ.AlL6 QA˜£ñ.AlLÀ5 QA˜^ñ.AlL@0 QA˜äð.AlL€' QA˜€“ð.AlL` QA˜‹ð.AlL€  QA˜€ð.AlLàûŸQA˜Zð.AlL ìŸQA˜€ð.AlL àŸQA˜€Îï.AlL ßŸQA˜€„ï.AlL@ÛŸQA˜ï.AlLÀÒŸQA˜€„ï.AlL ÉŸQA˜€wï.AlLÀŸQA˜ï.AlL€¶ŸQA˜Oï.AlL@«ŸQA˜€îî.AlL œŸQA˜Åî.AlL`”ŸQA˜€î.AlLŸQA˜Tî.AlL ‚ŸQA˜€î.AlLvŸQA˜Ôí.AlL hŸQA˜í.AlL ZŸQA˜€ãì.AlL@FŸQA˜¦ì.AlL9ŸQA˜[ì.AlL€6ŸQA˜/ì.AlL 9ŸQA˜Üë.AlLà6ŸQA˜žë.AlL`3ŸQA˜Së.AlL`)ŸQA˜ë.AlLà*ŸQA˜€ºê.AlL`3ŸQA˜€Aê.AlLà3ŸQA˜é.AlLÀ6ŸQA˜€é.AlL`<ŸQA˜­è.AlLà;ŸQA˜Kè.AlL;ŸQA˜Îç.AlL<ŸQA˜€:ç.AlL€DŸQA˜€Êæ.AlL€FŸQA˜Aæ.AlL€<ŸQA˜îå.AlL`(ŸQA˜»å.AlLÀ%ŸQA˜^å.AlLà"ŸQA˜øä.AlLÀ!ŸQA˜xä.AlL@(ŸQA˜Ûã.AlL 6ŸQA˜Yã.AlL GŸQA˜ùâ.AlLàQŸQA˜—â.AlLÀZŸQA˜€gâ.AlL \ŸQA˜€ôá.AlL ]ŸQA˜pá.AlLÀYŸQA˜€Ðà.AlL [ŸQA˜€.à.AlLÀ\ŸQA˜zß.AlLà[ŸQA˜ªÞ.AlL ]ŸQA˜€tÞ.AlLp]ŸQA˜€WÞ.AlL`]ŸQA˜€Þ.AlLàcŸQA˜ÏÝ.AlL€kŸQA˜AÝ.AlL qŸQA˜ÅÜ.AlLpŸQA˜€TÜ.AlL@aŸQA˜#Ü.AlL€TŸQA˜ÀÛ.AlLÀDŸQA˜pÛ.AlL<ŸQA˜HÛ.AlL`8ŸQA˜€Û.AlLà9ŸQA˜’Ú.AlL =ŸQA˜Ú.AlLÀ9ŸQA˜€ÂÙ.AlLÀ2ŸQA˜?Ù.AlL&ŸQA˜€ÔØ.AlL@ŸQA˜nØ.AlL ŸQA˜Ø.AlL€ŸQA˜€³×.AlL ùžQA˜€`×.AlL`öžQA˜åÖ.AlLêžQA˜€”Ö.AlLÀâžQA˜€EÖ.AlLÜžQA˜Ö.AlLÔžQA˜þÕ.AlLÌžQA˜€£Õ.AlL@ÌžQA˜OÕ.AlL@ÁžQA˜Õ.AlL ¹žQA˜–Ô.AlL๞QA˜qÔ.AlL ­žQA˜EÔ.AlL¦žQA˜€ÇÓ.AlL ˜žQA˜tÓ.AlL ‘žQA˜€?Ó.AlL`ŒžQA˜ÑÒ.AlL`~žQA˜€WÒ.AlLÀtžQA˜ Ò.AlL@pžQA˜áÑ.AlLàlžQA˜ÃÑ.AlLxžQA˜¦Ñ.AlL€žQA˜€œÑ.AlL ‚žQA˜€‡Ñ.AlLà’žQA˜yÑ.AlL€žžQA˜{Ñ.AlL °žQA˜€{Ñ.AlL€¾žQA˜eÑ.AlL מQA˜€AÑ.AlL€èžQA˜ Ñ.AlL`ŸQA˜†Ð.AlL ŸQA˜øÏ.AlL@3ŸQA˜®Ï.AlLà=ŸQA˜ãÎ.AlL€OŸQA˜1Î.AlL _ŸQA˜€ÑÍ.AlL€aŸQA˜WÍ.AlLà`ŸQA˜€ÝÌ.AlL ^ŸQA˜€[Ì.AlLÀVŸQA˜€©Ë.AlLàWŸQA˜€LË.AlL@kŸQA˜€íÊ.AlLwŸQA˜˜Ê.AlL€ŸQA˜€7Ê.AlL‡ŸQA˜Ê.AlLÀŽŸQA˜°É.AlL šŸQA˜.É.AlL౟QA˜ É.AlL@ÄŸQA˜ŸÈ.AlLóŸQA˜€dÈ.AlL° QA˜È.AlLÀ QA˜ÕÇ.AlL€# QA˜|Ç.AlL`, QA˜Ç.AlL 8 QA˜€Ç.AlLÀH QA˜€Ç.AlL V QA˜€ÒÆ.AlLàb QA˜³Æ.AlLÀp QA˜±Æ.AlL@{ QA˜]Æ.AlL „ QA˜Æ.AlLà’ QA˜ÑÅ.AlL€  QA˜kÅ.AlLÀ­ QA˜^Å.AlL๠QA˜CÅ.AlLÊ QA˜Å.AlL Ö QA˜æÄ.AlL á QA˜ÓÄ.AlLê QA˜€žÄ.AlL`ø QA˜€uÄ.AlL ¡QA˜€>Ä.AlLà ¡QA˜€·Ã.AlLÀ ¡QA˜Ã.AlL ¡QA˜€oÃ.AlLÀ)¡QA˜ñÂ.AlL€4¡QA˜€ƒÂ.AlL @¡QA˜YÂ.AlLÀG¡QA˜Â.AlL€W¡QA˜ìÁ.AlL`Z¡QA˜€¦Á.AlLÀX¡QA˜qÁ.AlLàT¡QA˜4Á.AlLÀM¡QA˜€ÚÀ.AlLÀS¡QA˜»À.AlL]¡QA˜€®À.AlL@g¡QA˜qÀ.AlL@u¡QA˜€äÀ.AlLÀv¡QA˜2Á.AlL€¡QA˜€Á.AlLàˆ¡QA˜€ËÁ.AlLà¡QA˜€!Â.AlL“¡QA˜€ŒÂ.AlL ‘¡QA˜¿Â.AlLÀ¡QA˜ðÂ.AlL ˆ¡QA˜€Ã.AlLÀ‚¡QA˜UÃ.AlL€}¡QA˜‹Ã.AlLÀy¡QA˜²Ã.AlLu¡QA˜ãÃ.AlLào¡QA˜€<Ä.AlLàq¡QA˜žÄ.AlLÀs¡QA˜íÄ.AlLÀv¡QA˜Å.AlL@|¡QA˜"Å.AlLÀ†¡QA˜€BÅ.AlL ¡QA˜€eÅ.AlL€“¡QA˜‘Å.AlL ˜¡QA˜€ÉÅ.AlLà›¡QA˜;Æ.AlL ¡¡QA˜€{Æ.AlL€¤¡QA˜ËÆ.AlLডQA˜€Ç.AlL@«¡QA˜€=Ç.AlL®¡QA˜zÇ.AlL¹¡QA˜•Ç.AlLÁ¡QA˜áÇ.AlL€Æ¡QA˜€4È.AlLÈ¡QA˜€{È.AlL`Ê¡QA˜ÕÈ.AlL`Ì¡QA˜€,É.AlL ΡQA˜€•É.AlLàСQA˜Ê.AlL@Ò¡QA˜sÊ.AlL@Ô¡QA˜€ßÊ.AlL€Ô¡QA˜dË.AlL`Ñ¡QA˜ÎË.AlLË¡QA˜=Ì.AlL ¸¡QA˜£Ì.AlL ª¡QA˜¼Ì.AlL`¢¡QA˜€zÍ.AlLз¡QA˜€¤Í.AlL€¼¡QA˜€õÍ.AlL`»¡QA˜\Î.AlLà¿¡QA˜‡Î.AlL€Å¡QA˜µÎ.AlL@Í¡QA˜€ÓÎ.AlL@Ó¡QA˜ÐÎ.AlL€Ú¡QA˜€ÇÎ.AlLæ¡QA˜€÷Î.AlL é¡QA˜)Ï.AlL`ñ¡QA˜€4Ï.AlLú¡QA˜€áÏ.AlLà¢QA˜iÐ.AlL`¢QA˜€Ñ.AlL€"¢QA˜€ZÑ.AlL +¢QA˜ÝÑ.AlL@/¢QA˜=Ò.AlL 0¢QA˜€ˆÒ.AlL€5¢QA˜€ÒÒ.AlL€D¢QA˜€Ó.AlLR¢QA˜qÓ.AlL€e¢QA˜€œÓ.AlL€u¢QA˜ÂÓ.AlL‰¢QA˜€ÝÓ.AlL€˜¢QA˜2Ô.AlL`ª¢QA˜žÔ.AlL`³¢QA˜Õ.AlL€¼¢QA˜”Õ.AlL âQA˜Ö.AlL Ç¢QA˜€qÖ.AlLÊ¢QA˜ðÖ.AlL Ë¢QA˜€W×.AlL€Ì¢QA˜²×.AlLàТQA˜Î×.AlL@æ¢QA˜€Ô×.AlLàó¢QA˜€mØ.AlL€£QA˜ìØ.AlL  £QA˜˜Ù.AlLÀ£QA˜sÚ.AlL€,£QA˜€6Û.AlL=£QA˜€úÛ.AlLÀF£QA˜ÕÜ.AlLV£QA˜€¡Ý.AlLàe£QA˜YÞ.AlLÀp£QA˜hÞ.AlL q£QA˜€»Þ.AlL€…£QA˜€äÞ.AlL ’£QA˜Kß.AlL€¨£QA˜€¨ß.AlL`¼£QA˜€Ñß.AlLÀÅ£QA˜üß.AlLâ£QA˜€à.AlLÀð£QA˜ à.AlL ¤QA˜€à.AlL€¤QA˜à.AlL  ¤QA˜€üß.AlLÀ ¤QA˜³ß.AlL  ¤QA˜€pß.AlL€¤QA˜Jß.AlL ¤QA˜ß.AlL@ ¤QA˜€ß.AlL ¤QA˜€óÞ.AlL¤QA˜=ß.AlL@"¤QA˜€ˆß.AlL€+¤QA˜¸ß.AlL€7¤QA˜ïß.AlL€H¤QA˜$à.AlL€U¤QA˜€=à.AlLàa¤QA˜bà.AlL€k¤QA˜€à.AlL {¤QA˜½à.AlL¤QA˜€á.AlL ¤QA˜Lá.AlL §¤QA˜Ñá.AlL ¼¤QA˜eâ.AlLÀФQA˜ä.AlLÀ¥QA˜€~ä.AlL`"¥QA˜€ää.AlL .¥QA˜€`å.AlL€:¥QA˜Çå.AlL`E¥QA˜/æ.AlL`Q¥QA˜‘æ.AlLÀ\¥QA˜€ôæ.AlL€f¥QA˜oç.AlL q¥QA˜€øç.AlL`z¥QA˜Xè.AlL„¥QA˜»è.AlL ‘¥QA˜ é.AlL œ¥QA˜pé.AlL`§¥QA˜³é.AlL@´¥QA˜€ ê.AlLཥQA˜€ê.AlLÀÇ¥QA˜ë.AlL@Ñ¥QA˜”ë.AlL`Ø¥QA˜Lì.AlL@ä¥QA˜|ì.AlLpç¥QA˜õì.AlL`ï¥QA˜€aí.AlL ö¥QA˜ãí.AlLÀÿ¥QA˜ï.AlL+¦QA˜€¹ï.AlL@A¦QA˜€'ð.AlLP¦QA˜7ð.AlL R¦QA˜€ºð.AlLà^¦QA˜€Dñ.AlL j¦QA˜ ò.AlL w¦QA˜€tò.AlLà¦QA˜7ó.AlLàˆ¦QA˜¼ó.AlLÀ¦QA˜“ô.AlL@š¦QA˜€Sõ.AlL£¦QA˜%ö.AlL`°¦QA˜€Èö.AlL๦QA˜€r÷.AlLà¦QA˜ø.AlL€Ë¦QA˜Ôø.AlLÀÕ¦QA˜€ù.AlL Û¦QA˜€-ù.AlL°ß¦QA˜€?ù.AlLÀâ¦QA˜<ù.AlL€é¦QA˜ ù.AlL`ñ¦QA˜ãø.AlL ø¦QA˜ÀÍø.AlL@§QA˜€m÷.AlL -§QA˜(ö.AlL@I§QA˜Òô.AlL@j§QA˜¤ó.AlL@‡§QA˜€Óó.AlLÀ§QA˜ôó.AlL—§QA˜€ô.AlLࢧQA˜6ô.AlL@­§QA˜€Mô.AlLµ§QA˜nô.AlL`¿§QA˜€ô.AlLÀƧQA˜€–ô.AlLѧQA˜¬ô.AlLÙ§QA˜Åô.AlLâ§QA˜áô.AlL í§QA˜€üô.AlL ù§QA˜€õ.AlL ¨QA˜€>õ.AlL  ¨QA˜€_õ.AlL`¨QA˜€Žõ.AlL`"¨QA˜€¡õ.AlL +¨QA˜¼õ.AlL`6¨QA˜€Kö.AlL 1¨QA˜Ôö.AlLÀ*¨QA˜…÷.AlL@¨QA˜ ø.AlL ¨QA˜nø.AlL`¨QA˜äø.AlL` ¨QA˜=ù.AlL ¨QA˜€³ù.AlL ¨QA˜€%ú.AlLàý§QA˜€‹ú.AlL@ø§QA˜€ýú.AlL ñ§QA˜=û.AlL è§QA˜’û.AlLàã§QA˜¿û.AlL é§QA˜€ôû.AlLàò§QA˜€úû.AlL ù§QA˜€ü.AlLà¨QA˜€qü.AlL ¨QA˜¦ü.AlL`¨QA˜€íü.AlL@"¨QA˜1ý.AlL`.¨QA˜€Uý.AlL€5¨QA˜€oý.AlL=¨QA˜€bý.AlLÀE¨QA˜€%ý.AlL@N¨QA˜²ü.AlLàY¨QA˜lü.AlLd¨QA˜€ü.AlL`m¨QA˜€¹û.AlLr¨QA˜_û.AlLu¨QA˜‘û.AlLÀƒ¨QA˜€Èû.AlLà¨QA˜áû.AlL —¨QA˜ü.AlL  ¨QA˜€Vü.AlLÀª¨QA˜€Šü.AlL@³¨QA˜€Àü.AlL€º¨QA˜ý.AlLàèQA˜€7ý.AlL`ȨQA˜uý.AlL Í¨QA˜€¼ý.AlLàÒ¨QA˜€þ.AlL`רQA˜€Hþ.AlL Û¨QA˜qþ.AlLÀÞ¨QA˜€`/AlL¹¨QA˜‡/AlL࿨QA˜¾/AlLĄ̀QA˜€Ò/AlLרQA˜€ú/AlL`â¨QA˜/AlL ë¨QA˜€ì/AlL@ì¨QA˜€¶/AlL@î¨QA˜9/AlL î¨QA˜€È/AlL`ñ¨QA˜€//AlL ð¨QA˜”/AlL€ô¨QA˜€ü/AlL û¨QA˜k/AlL ©QA˜Ñ/AlL ©QA˜T/AlL ©QA˜Ä/AlLÀ ©QA˜€­/AlL€ ©QA˜â/AlL@ ©QA˜€Ù/AlL ©QA˜€È/AlL û¨QA˜ÚÖ.AlL€«QA˜€4Ö.AlL€öªQA˜ÈÕ.AlL@ïªQA˜`Õ.AlL@àªQA˜ Õ.AlL€ÒªQA˜ºÔ.AlLàÁªQA˜€XÔ.AlL€µªQA˜þÓ.AlLÀ©ªQA˜ßÓ.AlL  ªQA˜€¨Ó.AlLà–ªQA˜DÓ.AlLà‡ªQA˜Ó.AlL@~ªQA˜ÅÒ.AlLàrªQA˜xÒ.AlL eªQA˜€4Ò.AlLYªQA˜ËÑ.AlLIªQA˜€|Ñ.AlL@>ªQA˜iÑ.AlL6ªQA˜^Ñ.AlL`)ªQA˜mÑ.AlL€ ªQA˜€€Ñ.AlL€ªQA˜ŒÑ.AlL ªQA˜€¢Ñ.AlL@ªQA˜»Ñ.AlL`ù©QA˜€ËÑ.AlLî©QA˜ÌÑ.AlLàÞ©QA˜ÏÑ.AlLàÑ©QA˜ßÑ.AlL`éQA˜€ïÑ.AlL`¦©QA˜÷Ñ.AlL •©QA˜Ò.AlL ƒ©QA˜êÑ.AlL@s©QA˜ÖÑ.AlLPr©QA˜±Ñ.AlL€p©QA˜mÑ.AlL@p©QA˜€Ñ.AlL€s©QA˜€®Ð.AlL v©QA˜hÐ.AlLÀy©QA˜€Ð.AlL€©QA˜€ÕÏ.AlL„©QA˜€Ï.AlL@‰©QA˜ZÏ.AlL€Œ©QA˜úÎ.AlL`©QA˜€ÄÎ.AlLÀ‘©QA˜~Î.AlL •©QA˜KÎ.AlL€–©QA˜€Î.AlLà–©QA˜ÍÍ.AlL`™©QA˜’Í.AlL š©QA˜€`Í.AlL@œ©QA˜%Í.AlLÀž©QA˜öÌ.AlL€ ©QA˜¾Ì.AlL`£©QA˜€rÌ.AlL@¨©QA˜€%Ì.AlL¨©QA˜éË.AlL­©QA˜™Ë.AlL ³©QA˜€(Ë.AlL೩QA˜ÎÊ.AlL௩QA˜€|Ê.AlL`§©QA˜€Ê.AlL€ž©QA˜€¢É.AlLà™©QA˜€]É.AlL€©QA˜É.AlL@Œ©QA˜€`È.AlL€©QA˜ÑÇ.AlL@”©QA˜RÇ.AlL€˜©QA˜›Æ.AlL`œ©QA˜€ØÅ.AlL@¢©QA˜_Å.AlL€§©QA˜Å.AlL`­©QA˜°Ä.AlL@µ©QA˜€]Ä.AlL`½©QA˜€!Ä.AlL`Ç©QA˜€íÃ.AlLÕ©QA˜€œÃ.AlL à©QA˜VÃ.AlL ì©QA˜ Ã.AlL`ö©QA˜ªÂ.AlL@ªQA˜€Â.AlL@ªQA˜€¡Á.AlLÀªQA˜PÁ.AlL $ªQA˜€¤À.AlL`CªQA˜–À.AlLFªQA˜€FÀ.AlL`RªQA˜€ À.AlL WªQA˜¿.AlL ZªQA˜F¿.AlL WªQA˜€¿.AlL`ZªQA˜€Ö¾.AlLaªQA˜€ ¾.AlLgªQA˜€m¾.AlL`lªQA˜1¾.AlL pªQA˜ö½.AlLàwªQA˜€´½.AlL€ŒªQA˜p½.AlLÀ¢ªQA˜€½.AlL ½ªQA˜€½.AlLɪQA˜€½.AlLÀϪQA˜€,½.AlLÀÚªQA˜€½.AlL ãªQA˜€Î¼.AlL€êªQA˜‹¼.AlLàðªQAÈkªª@¼.AlLÀôªQA˜@¼.AlLàøªQA˜@œ¼.AlL «QA˜Á¼.AlL«QA˜˼.AlL` «QA˜@€¼.AlL€«QA˜€¼.AlLà«QA˜ÀÍ».AlLÀ«QA˜@w».AlL@«QA˜@7».AlL€$«QA˜çº.AlLà'«QA˜‰º.AlL@-«QA˜€4º.AlL`1«QA˜ç¹.AlL;«QA˜€ˆ¹.AlL >«QA˜c¹.AlLàC«QA˜@]¹.AlL N«QA˜„¹.AlLÀ^«QA˜Àƹ.AlL`i«QA˜€Ú¹.AlL`q«QA˜€è¹.AlLà«QA˜ú¹.AlL€«QA˜ º.AlLÀ›«QA˜@*º.AlL`¨«QA˜_º.AlL€¼«QA˜§º.AlL€Ð«QA6uºº.AÆý¿ÈÚ«QA˜ƺ.AlLàà«QA˜@ÿº.AlL ñ«QA˜F».AlL`ÿ«QA˜À ».AlL ¬QA˜û».AlL@¬QA˜À_¼.AlL ¬QA˜À ¼.AlL`¬QA°ïHøà¼.Aôßü÷«QA˜À ½.AlLÀñ«QA˜3½.AlLÀè«QA˜`t½.AlL Þ«QA Ç[J~½.AlLÝ«QA˜­½.AlL@Ø«QA˜Àæ½.AlL@Ò«QA˜À¾.AlLàÇ«QA˜À5¾.AlL»«QA˜@[¾.AlL@®«QA˜@z¾.AlL ž«QA˜À|¾.AlLàŽ«QA˜À–¾.AlL@«QA˜À¯¾.AlL q«QA˜»¾.AlL``«QA˜Àà¾.AlL S«QA˜@þ¾.AlL F«QA˜À-¿.AlL`8«QA˜À‡¿.AlL /«QA˜Àõ¿.AlL`,«QA˜ÀWÀ.AlL &«QA˜@ïÀ.AlL@(«QA˜ÀlÁ.AlL *«QA˜ÀíÁ.AlL #«QA˜7Â.AlL@«QA˜ÀŽÂ.AlL€«QA˜@Ã.AlL€«QA˜@SÃ.AlL`«QA˜ïÃ.AlL«QA˜ÀaÄ.AlL «QA˜@öÄ.AlLà«QA˜@>Å.AlL#«QA˜ZÅ.AlL€'«QA˜@zÅ.AlLà5«QA˜ÀŒÅ.AlLà?«QA˜@«Å.AlLN«QA˜@°Å.AlL`Z«QA˜ ðÀºÅ.AŒ¯îæ]«QA˜ÙÅ.AlLh«QA˜íÅ.AlLz«QA˜@ÊÅ.AlL`‰«QA˜ÀÅ.AlL ›«QA˜À-Å.AlL ©«QA˜ÀóÄ.AlL€·«QA ¾ÑÊÊÄ.A’0„ÊëQA˜@¾Ä.AlL Ç«QA˜À›Ä.AlL Ö«QA˜À†Ä.AlLê«QA˜‹Ä.AlL@ÿ«QA˜À¨Ä.AlL ¬QA˜@áÄ.AlL@.¬QA˜@1Å.AlLÀ@¬QA˜ÀiÅ.AlL S¬QAˆÇÊKÅ.AúØÓX¬QA˜@žÅ.AlLà`¬QA˜À®Å.AlLàg¬QA˜@¼Å.AlLÀv¬QA˜æÅ.AlLÀ†¬QA˜@DÆ.AlLà¬QA˜À¢Æ.AlL@§¬QA˜@Ç.AlLÀ³¬QA˜ÀvÇ.AlLÀº¬QA˜@öÇ.AlL༬QA˜@MÈ.AlL Ã¬QA˜@‘È.AlL Ò¬QA˜@¿È.AlL á¬QA˜ÀÉ.AlL@ì¬QA˜ÀDÉ.AlL ö¬QA˜@›É.AlLÀ­QA˜ÀîÉ.AlL ­QA˜4Ê.AlL ­QA˜@Ê.AlLÀ$­QA˜ÀÅÊ.AlL@1­QA˜@ãÊ.AlL @­QA˜ÀVË.AlL J­QA˜@©Ë.AlL@Q­QA˜ÀãË.AlL@X­QA˜À&Ì.AlL`e­QA˜ÀAÌ.AlL n­QA˜@ŒÌ.AlL y­QA˜@¯Ì.AlL€{­QA˜ÀøÌ.AlL „­QA2‡@1Í.AüÊû‚ˆ­QA˜FÍ.AlL Š­QA˜àÍ.AlLÀ’­QA˜@FÎ.AlL`š­QA˜@ÛÎ.AlL¨­QAðµ%.(Ï.A ;9%­­QA˜@@Ï.AlLÀ®­QA˜@íÏ.AlL€¹­QA˜Ñ.AlL Å­QA˜3Ñ.AlL ¼­QA˜€VÑ.AlL ²­QA˜€ŽÑ.AlL@¤­QA˜ÔÑ.AlLÀ”­QA˜€+Ò.AlL@€­QA˜…Ò.AlLðn­QA˜€“Ò.AlL@l­QA˜éÒ.AlLà^­QA˜‚Ó.AlLàL­QA˜Ô.AlL@>­QA˜€ëÔ.AlL *­QA˜€ÌÕ.AlL€­QA˜ÙÖ.AlL€­QA˜v×.AlL­QA˜€]Ú.AlL`û¬QA˜ôÚ.AlL`í¬QA˜"Û.AlL€ã¬QA˜bÛ.AlL@Ò¬QA˜€®Û.AlL¼¬QA˜€óÛ.AlLÀ¥¬QA˜LÜ.AlL`—¬QA˜ Ü.AlL@‚¬QA˜ Ý.AlLn¬QA˜€ÂÝ.AlL Y¬QA˜úÝ.AlLðP¬QA˜€ØÞ.AlL@0¬QA˜ß.AlLÀ#¬QA˜eß.AlL ¬QA˜€˜ß.AlL€¬QA˜€Ýß.AlL@ÿ«QA˜€1à.AlL`î«QA˜Nà.AlLß«QA˜à.AlL@׫QA˜€Àß.AlL@ΫQA˜~ß.AlL`Ä«QA˜ÓÞ.AlL€µ«QA˜€6Þ.AlL ¦«QA˜€˜Ý.AlL`–«QA˜OÝ.AlL@‘«QA˜©Ü.AlL €«QA˜€ÂÛ.AlLÀi«QA˜€Û.AlL V«QA˜€eÚ.AlL€D«QA˜Ù.AlL.«QA˜€¦Ø.AlL@!«QA˜€ Ø.AlL@«QA˜i×.AlL` «QA˜ÚÖ.AlL€«QA˜€ùð.AlL8©QA˜Êð.AlLÀ,©QA˜€§ð.AlLà%©QA˜vð.AlL@©QA˜€Hð.AlL€©QA˜Að.AlL ©QA˜Vð.AlL©QA˜`ð.AlL`ø¨QA˜Eð.AlL ó¨QA˜€ ð.AlL€í¨QA˜ìï.AlLÀè¨QA˜€Âï.AlLàà¨QA˜€–ï.AlLàØ¨QA˜€qï.AlL@Ó¨QA˜ ï.AlL€Ê¨QA˜ìî.AlLàÆ¨QA˜€“î.AlL بQA˜Pî.AlL è¨QA˜(î.AlL`ý¨QA˜¿í.AlLà©QA˜hí.AlLÀ*©QA˜;í.AlL 2©QA˜ýì.AlL +©QA˜Cì.AlL ˨QA˜€œë.AlL`ЍQA˜€ë.AlL H¨QA˜Âê.AlL +¨QA˜€¤ê.AlL "¨QA˜€Yê.AlL€ ¨QA˜æé.AlL&¨QA˜€cé.AlL )¨QA˜€Žè.AlL€+¨QA˜€úæ.AlLÀ.¨QA˜€æ.AlL 4¨QA˜€Så.AlL`7¨QA˜†ä.AlL <¨QA˜9ã.AlL@A¨QA˜¸â.AlL@E¨QA˜€%â.AlLÀK¨QA˜“á.AlLÀR¨QA˜íà.AlLàW¨QA˜oà.AlL@Z¨QA˜à.AlLÀY¨QA˜€à.AlLÀa¨QA˜€mà.AlLàg¨QA˜¡à.AlLi¨QA˜ôà.AlL@o¨QA˜€$á.AlL€y¨QA˜€á.AlL@‚¨QA˜:á.AlL@¨QA˜€{á.AlL •¨QA˜€˜á.AlL@¢¨QA˜€Âá.AlL@±¨QA˜âá.AlLº¨QA˜â.AlLÀ¿¨QA˜Hâ.AlL€Å¨QA˜€°â.AlLÀâ¨QA˜²â.AlL`ë¨QA˜•â.AlL`ó¨QA˜Šâ.AlLàü¨QA˜Ââ.AlLà©QA˜Úâ.AlL`©QA˜ã.AlLÀ©QA˜€ ã.AlL ©QA˜ƒã.AlL€!©QA˜€²ã.AlL`&©QA˜€ãã.AlL`/©QA˜2ä.AlL`6©QA˜«ä.AlL 5©QA˜ å.AlL 5©QA˜„å.AlL@3©QA˜Óå.AlLà*©QA˜æ.AlL€'©QA˜æ.AlL€7©QA˜€½æ.AlLàA©QA˜éæ.AlL@M©QA˜€ ç.AlLà[©QA˜&ç.AlL@m©QA˜Nç.AlL |©QA˜€ç.AlLàŠ©QA˜¾ç.AlL€™©QA˜Øç.AlL`¥©QA˜è.AlL ®©QA˜mè.AlLº©QA˜€è.AlL`¿©QA˜Æè.AlL€Ä©QA˜€bé.AlL€Ï©QA˜€šé.AlLÀÓ©QA˜€Îé.AlLØ©QA˜ê.AlLÀÚ©QA˜€jê.AlL à©QA˜€¬ê.AlLå©QA˜€âê.AlL@é©QA˜€ë.AlL ì©QA˜€Kë.AlL€ó©QA˜€ë.AlL ù©QA˜²ë.AlL`ªQA˜¡ë.AlLà ªQA˜ì.AlL€ªQA˜ì.AlLÀªQA˜ì.AlL€ ªQA˜-í.AlL€ ªQA˜€íí.AlLàªQA˜›î.AlLàø©QA˜€`ï.AlLÀð©QA˜&ð.AlLÀì©QA˜òð.AlL ã©QA˜fñ.AlL Û©QA˜€‘ñ.AlLØ©QA˜hñ.AlL Ï©QA˜zñ.AlL€È©QA˜’ñ.AlL`©QA˜ªñ.AlL€º©QA˜€¢ñ.AlL ®©QA˜€–ñ.AlL¤©QA˜€€ñ.AlL™©QA˜€uñ.AlL`Œ©QA˜€Tñ.AlL@|©QA˜Cñ.AlL@p©QA˜€Gñ.AlL@d©QA˜>ñ.AlL€X©QA˜0ñ.AlLàP©QA˜ñ.AlL`D©QA˜€ùð.AlL8©QA˜ñ/AlL`¦QA˜/AlL€ý¥QA˜€/AlLÀó¥QA˜€/AlL ë¥QA˜ /AlL â¥QA˜€/AlL`Ü¥QA˜ö/AlL Ô¥QA˜€/AlLàË¥QA˜/AlLÀ»¥QA˜€/AlLÀ¯¥QA˜Î/AlL@©¥QA˜€y/AlLÀ¥QA˜./AlL€•¥QA˜€Í/AlL`Š¥QA˜€¦/AlL„¥QA˜p/AlL~¥QA˜€@/AlL€{¥QA˜/AlL@z¥QA˜°/AlLx¥QA˜"/AlL@v¥QA˜Ñ/AlL`w¥QA˜€p/AlL@w¥QA˜/AlLp¥QA˜€j/AlL`f¥QA˜•/AlL€[¥QA˜€;/AlL V¥QA˜ð/AlL@T¥QA˜€®/AlL`O¥QA˜|/AlL`H¥QA˜€F/AlL C¥QA˜/AlLF¥QA˜ñ/AlL@L¥QA˜½/AlL€O¥QA˜l/AlL`P¥QA˜ /AlL€M¥QA˜Û/AlL N¥QA˜€Â/AlLà*¥QA˜€/AlLÀ,¥QA˜€/AlL  ¥QA˜€/AlL ¥QA˜€/AlLà ¥QA˜/AlL þ¤QA˜€ù/AlL@ê¤QA˜ì/AlL Û¤QA˜ß/AlL`ͤQA˜â/AlLÐɤQA˜€ê/AlLÀ¤QA˜€î/AlL൤QA˜à/AlL¨¤QA˜€š/AlL £¤QA˜€0/AlLà¤QA˜Í/AlL€œ¤QA˜¨/AlLÀ¯¤QA˜–/AlL »¤QA˜€‘/AlL€¾¤QA˜€C/AlLàÖ¤QA˜€u/AlLÀ¥QA˜Ž/AlL ª¥QA˜€/AlL`¨¥QA˜Ž /AlL á¥QA˜/AlL ã¥QA˜¯/AlL@æ¥QA˜C/AlL@è¥QA˜%/AlL€í¥QA˜€i/AlL ô¥QA˜€[/AlLù¥QA˜€¹/AlL€ü¥QA˜O/AlLàÿ¥QA˜€V/AlLà¦QA˜œ/AlL ¦QA˜€Ó/AlL@ ¦QA˜€(/AlL€¦QA˜/AlL¦QA˜€K/AlL€¦QA˜¦/AlL@¦QA˜€/AlL ¦QA˜€n/AlL¦QA˜€0/AlL ¦QA˜€Ô/AlLà ¦QA˜>/AlL ¦QA˜€Ë/AlLà¦QA˜€(/AlL ¦QA˜€u/AlL ¦QA˜Ü/AlL€¦QA˜€ê/AlL ¦QA˜ñ/AlL`¦QA@˜€K_.AlL§™QA˜€žµ.AlLP¥QAE˜€zš.AlLy¤QA˜€ôš.AlL`w¤QA˜›.AlL¤QA˜b›.AlL †¤QA˜€ã›.AlL€…¤QA˜8œ.AlL z¤QA˜€œ.AlL@y¤QA˜€±œ.AlLðz¤QA˜.AlL w¤QA˜".AlLàn¤QA˜€B.AlL`_¤QA˜€I.AlL@O¤QA˜€e.AlL@E¤QA˜€Á.AlL;¤QA˜€&ž.AlL3¤QA˜€Iž.AlL@*¤QA˜(ž.AlLÀ!¤QA˜ø.AlL¤QA˜Ö.AlL¤QA˜€ž.AlL ¤QA˜€Kž.AlL ÿ£QA˜€Žž.AlLàö£QA˜€ž.AlL€ð£QA˜Tž.AlLâ£QA˜ž.AlLÙ£QA˜Ìž.AlL Ì£QA˜Ÿ.AlL¾£QA˜iŸ.AlL`³£QA˜ß.AlL`­£QA˜üŸ.AlL`¥£QA˜€ .AlLÀ—£QA˜€ .AlL ‡£QA˜€= .AlL x£QA˜€R .AlLo£QA˜€f .AlL `£QA˜ .AlL`Y£QA˜€¡.AlLB£QA˜¡.AlL`?£QA˜%¡.AlL3£QA˜L¡.AlL€#£QA˜t¡.AlL@£QA˜Ž¡.AlL ÿ¢QA˜š¡.AlLàí¢QA˜­¡.AlL@Þ¢QA˜¿¡.AlL Ó¢QA˜¢.AlL`Ç¢QA˜€-¢.AlLརQA˜€`¢.AlL€±¢QA˜€‹¢.AlL`¥¢QA˜»¢.AlL€œ¢QA˜£.AlL ¢QA˜g£.AlLà„¢QA˜¦£.AlLy¢QA˜Ø£.AlL n¢QA˜€¤.AlL@c¢QA˜b¤.AlL€Y¢QA˜€²¤.AlLàR¢QA˜€¥.AlL N¢QA˜W¥.AlL@H¢QA˜•¥.AlLÀA¢QA˜´¥.AlL9¢QA˜€à¥.AlL 1¢QA˜ ¦.AlL (¢QA˜f¦.AlL@"¢QA˜©¦.AlL@¢QA˜Þ¦.AlLà¢QA˜€§.AlL ¢QA˜€o§.AlL`¢QA˜´§.AlL@¢QA˜à§.AlL`¢QA˜¨.AlLà¢QA˜€3¨.AlLü¡QA˜€o¨.AlLö¡QA˜z¨.AlLPô¡QA˜€›¨.AlLÀî¡QA˜œ¨.AlL€æ¡QA˜€–¨.AlL Þ¡QA˜€“¨.AlLàÑ¡QA˜‰¨.AlLÀË¡QA˜€„¨.AlLàÄ¡QA˜»¨.AlLÀ¡QA˜€©.AlLÀÆ¡QA˜V©.AlL@Ë¡QA˜€Ž©.AlL€Ë¡QA˜Ä©.AlL`¡QA˜Ó©.AlL€µ¡QA˜€Ø©.AlL`«¡QA˜€"ª.AlL€¨¡QA˜@ª.AlL£¡QA˜$ª.AlLÀ—¡QA˜€ª.AlL ‹¡QA˜€ª.AlL ‚¡QA˜Nª.AlL t¡QA˜€šª.AlL@b¡QA˜€ÿª.AlL@O¡QA˜v«.AlL`A¡QA˜³«.AlL8¡QA˜ ¬.AlL 3¡QA˜€`¬.AlL -¡QA˜׬.AlL`&¡QA˜ø¬.AlL`!¡QA˜€­.AlL ¡QA˜F­.AlL`¡QA˜€‹­.AlL¡QA˜€Ä­.AlLð¡QA˜®.AlL¡QA˜€®.AlL@¡QA˜€N®.AlL ÿ QA˜£®.AlLàû QA˜Ô®.AlL€ú QA˜€ù®.AlLí QA˜E¯.AlLpê QA˜€™¯.AlL î QA˜€Ü¯.AlLÀí QA˜€1°.AlLé QA˜€Ÿ°.AlL`ß QA˜€ï°.AlLÙ QA˜€±.AlLàΠQA˜€±.AlLÀÇ QA˜±.AlLའQA˜ÿ°.AlL€¶ QA˜€ê°.AlL€¯ QA˜€æ°.AlLठQA˜±.AlL`™ QA˜û°.AlL@’ QA˜±.AlL‹ QA˜8±.AlL … QA˜€k±.AlL@j QA˜o±.AlL`] QA˜¬±.AlLàP QA˜ë±.AlL`H QA˜€².AlL: QA˜€D².AlL' QA˜€R².AlL@ QA˜€<².AlL€  QA˜€A².AlL€ýŸQA˜€[².AlL ïŸQA˜T².AlL@æŸQA˜,².AlL ÛŸQA˜3².AlL`ÒŸQA˜€s².AlL ÇŸQA˜¸².AlL µŸQA˜ݲ.AlLଟQA˜à².AlL |ŸQA˜¨².AlL xŸQA˜k².AlL`uŸQA˜k².AlLkŸQA˜€Ž².AlLÀdŸQA˜€‡².AlLàWŸQA˜¨².AlL`LŸQA˜ò².AlL?ŸQA˜<³.AlLÀ)ŸQA˜T³.AlL0"ŸQA˜f³.AlL@ŸQA˜°³.AlL ŸQA˜€Ò³.AlL` ŸQA˜€Ò³.AlLŸQA˜€ù³.AlL úžQA˜€^´.AlL çžQA˜€ ´.AlL ÖžQA˜»´.AlLÇžQA˜€Ó´.AlL »žQA˜€Q´.AlL ¬žQA˜€ ´.AlL¦žQA˜س.AlL@›žQA˜€¹³.AlL`žQA˜¼³.AlL`…žQA˜½³.AlLàxžQA˜À³.AlLÀhžQA˜±³.AlL \žQA˜‹³.AlL€TžQA˜€Y³.AlL`HžQA˜H³.AlL9žQA˜€=³.AlLÀ'žQA˜€%³.AlLÀžQA˜³.AlL  žQA˜õ².AlLàñQA˜ز.AlLÀÙQA˜€Ý².AlLÀÏQA˜€ ³.AlL@ÃQA˜€!³.AlL ·QA˜³.AlL@¨QA˜€R³.AlL •QA˜–³.AlLàˆQA˜€Ö³.AlL@QA˜´.AlLÀwQA˜€´.AlL@nQA˜#´.AlL@dQA˜€Y´.AlL`UQA˜€´.AlLÀNQA˜д.AlL€GQA˜€ú´.AlL`CQA˜0µ.AlL€9QA˜€pµ.AlLp1QA˜€žµ.AlL +QA˜µ.AlL€QA˜€Aµ.AlL QA˜€ð´.AlL þœQA˜€°´.AlLóœQA˜€j´.AlL çœQA˜€!´.AlL ÚœQA˜׳.AlL€ÏœQA˜€‚³.AlLàÄœQA˜€„³.AlL๜QA˜–³.AlLÀ¬œQA˜€ˆ³.AlLÀ œQA˜€b³.AlL •œQA˜8³.AlL€‹œQA˜8³.AlL €œQA˜A³.AlL wœQA˜B³.AlL nœQA˜I³.AlL`eœQA˜€P³.AlL`[œQA˜1³.AlLLœQA˜³.AlL CœQA˜€1³.AlL€=œQA˜³.AlL`)œQA˜ä².AlL œQA˜€¸².AlLàœQA˜€§².AlL€œQA˜™².AlLô›QA˜€¥².AlLÀè›QA˜€Ö².AlL à›QA˜³.AlL Ñ›QA˜E³.AlL@Ç›QA˜y³.AlL`¼›QA˜€ï³.AlLÀ£›QA˜€'´.AlL ™›QA˜;´.AlL@›QA˜[´.AlL€ˆ›QA˜€a´.AlL›QA˜t´.AlL`u›QA˜€}´.AlLàj›QA˜€…´.AlLà`›QA˜®´.AlLÀ\›QA˜€»´.AlL V›QA˜€®´.AlLàL›QA˜³´.AlL D›QA˜€Ê´.AlLÀ3›QA˜Ò´.AlLÀ&›QA˜€¾´.AlL@›QA˜·´.AlL@›QA˜€É´.AlLÀ ›QA˜€Ù´.AlL ›QA˜ò´.AlL@ûšQA˜€µ.AlL`ôšQA˜†´.AlLÀòšQA˜:´.AlL@ýšQA˜€ë³.AlL ›QA˜€˜³.AlL ›QA˜€@³.AlL@›QA˜€â².AlL`›QA˜n².AlL$›QA˜€ÿ±.AlL€+›QA˜š±.AlL1›QA˜€õ°.AlLð:›QA˜ذ.AlL D›QA˜j°.AlLK›QA˜Þ¯.AlLÀV›QA˜U¯.AlLj›QA˜€#¯.AlL`p›QA˜ý®.AlL@w›QA˜Û®.AlL@‚›QA˜²®.AlLŠ›QA˜p®.AlL•›QA˜€-®.AlLÀŸ›QA˜í­.AlL«›QA˜€¹­.AlL ·›QA˜›­.AlLà¿›QA˜…­.AlL€Ê›QA˜€G­.AlL×›QA˜€­.AlL ß›QA˜ø¬.AlL@ë›QA˜è¬.AlL ý›QA˜ެ.AlLÀ œQA˜¬.AlL€œQA˜™«.AlLÀ1œQA˜€Z«.AlL @œQA˜€F«.AlLDœQA˜€«.AlLàMœQA˜€ßª.AlL SœQA˜€Sª.AlL@YœQA˜å©.AlL€_œQA˜€n©.AlL€fœQA˜©.AlL`jœQA˜€¿¨.AlL€mœQA˜0¨.AlLtœQA˜€­§.AlLÀnœQA˜€[§.AlLlœQA˜€é¦.AlLmœQA˜‹¦.AlL pœQA˜€ý¥.AlLÀxœQA˜€¯¥.AlL|œQA˜€{¥.AlL {œQA˜€¥.AlL`vœQA˜€“¤.AlL qœQA˜€2¤.AlLoœQA˜@Ä£.AlL@mœQA˜r£.AlLÀiœQA˜€@£.AlL`eœQA˜£.AlL€^œQA˜€Ö¢.AlL0]œQA˜¹¢.AlL bœQA˜€X¢.AlL jœQA˜€É¡.AlL`nœQA˜4¡.AlL`sœQA˜€Y .AlLÀxœQA˜€áŸ.AlLyœQA˜€@Ÿ.AlLwœQA˜œž.AlL`wœQA˜Gž.AlL xœQA˜Ú.AlL€œQA˜€.AlL€ŠœQA˜þœ.AlLÀšœQA˜€œ.AlL ¡œQA˜€}œ.AlLଜQA˜>œ.AlL¹œQA˜€æ›.AlL@œQA˜€e›.AlL€ÍœQA˜€7›.AlL ÔœQA˜*›.AlL éœQA˜"›.AlL`óœQA˜€ ›.AlLÿœQA˜€øš.AlL  QA˜ôš.AlL QA˜Õš.AlL`QA˜š.AlLÐ!QA˜*™.AlL  QA˜€e˜.AlLÀøœQA˜Í—.AlL åœQA˜p—.AlL@ÜœQA˜¹–.AlL ÐœQA˜ÀB–.AlLÄœQA˜à•.AlL`ºœQA˜>•.AlLজQA˜€û”.AlL@™œQA˜€”.AlL`œQA˜”.AlL ŠœQA˜ ”.AlL€‰œQA˜€õ’.AlL€lœQA˜€¥’.AlLÀ]œQA˜$’.AlLÀEœQA˜Å‘.AlL4œQA˜>‘.AlLÀ)œQA˜€·.AlL°$œQA˜z.AlL`(œQA˜€.AlL1œQA˜f.AlL;œQA˜€.AlL€JœQA˜û.AlL ZœQA˜].AlL€_œQA˜€7Œ.AlL ^œQA˜€±‹.AlLZœQA˜€ïŠ.AlLTœQA˜]Š.AlLMœQA˜€{‰.AlLÀCœQA˜Sˆ.AlL GœQA˜ï†.AlL HœQA˜€Ö….AlLàEœQA˜Œ„.AlL€;œQA˜ïƒ.AlLà1œQA˜;ƒ.AlL`!œQA˜±‚.AlL`œQA˜€ã.AlL@œQA˜€U.AlLÀþ›QA˜Û€.AlLàó›QA˜¡€.AlL€ä›QA˜K€.AlLÕ›QA˜€.AlLÀÍ›QA˜k.AlL ¶›QA˜€à~.AlLࣛQA˜€p~.AlL‘›QA˜€ù}.AlLà{›QA˜€…}.AlLÀa›QA˜<}.AlL I›QA˜€ö|.AlL@6›QA˜«|.AlL€&›QA˜€×{.AlL›QA˜U{.AlLà ›QA˜€Ûz.AlLÀ›QA˜z.AlLàñšQA˜€?z.AlLéšQA˜z.AlL ØšQA˜ z.AlLàÇšQA˜ z.AlL ¾šQA˜Îy.AlL@­šQA˜€my.AlL@ŸšQA˜€½x.AlL ‹šQA˜¡x.AlL`}šQA˜Áx.AlL@lšQA˜€åx.AlL€cšQA˜€y.AlL [šQA˜y.AlL LšQA˜y.AlL0KšQA˜€y.AlLà<šQA˜€´x.AlL@$šQA˜€Kx.AlL@šQA˜±w.AlL@ë™QA˜€1w.AlL@Ú™QA˜€Tv.AlLÁ™QA˜€ƒu.AlL`µ™QApÓ]Uu.AlL§™QA˜¤t.AlL@«™QA˜nt.AlL ª™QA˜Àt.AlL ª™QA˜€Âs.AlL`«™QA˜Es.AlL ´™QA˜ôr.AlL€¼™QA˜@‹r.AlL Ä™QA˜€9r.AlL Æ™QA˜€öq.AlL`Ç™QA˜ˆq.AlL Ä™QA˜€1q.AlL Ã™QA˜€Çp.AlL Â™QA˜Úo.AlL`ÙQA˜@Bo.AlLàË™QA˜@Ân.AlL€Î™QA˜€9n.AlL Ñ™QA˜Ÿm.AlLÀÑ™QA˜$m.AlL€Õ™QA˜@´l.AlL@Û™QA˜€_l.AlLàâ™QA˜À-l.AlL é™QA˜l.AlLàí™QA˜À l.AlLàõ™QA˜€el.AlL€ü™QA˜°l.AlLàÿ™QA˜ÀÉl.AlLàšQA˜Íl.AlLÀ šQA˜@³l.AlLšQA˜@‹l.AlL€šQA˜Bl.AlL šQA˜þk.AlL@šQA˜Ãk.AlL@šQA˜€˜k.AlLàšQA˜€¢k.AlL€šQA˜³k.AlL šQA˜À¸k.AlLÀ šQA˜€Åk.AlL€ šQA˜¶k.AlL€šQA¸¤ïQŒk.Ade¦ÿ™QA˜€Bk.AlL@ô™QA˜€ k.AlL é™QA˜ k.AlLàÞ™QA˜€õj.AlL Ô™QA˜€çj.AlL@Í™QA˜Îj.AlL€È™QA˜€¯j.AlL Å™QA˜€‡j.AlL Å™QA˜€[j.AlL Ä™QA˜@j.AlLÆ™QA˜Üi.AlLàÉ™QA˜™i.AlLΙQA˜€Ni.AlL Î™QA˜€i.AlLÀÏ™QA˜Àëh.AlLàÒ™QA˜»h.AlL Ó™QA˜@ˆh.AlL`Ô™QA˜Wh.AlLÖ™QApÓ]Õ5h.AlLÀÖ™QA˜Àh.AlLÀ×™QA˜€ºg.AlL@×™QA˜€jg.AlL@Ö™QA˜Àg.AlLàÖ™QA8Â'Ù˜f.A¢÷>ãÛ™QA˜Àff.AlL@Þ™QA˜À1f.AlL`ã™QA˜€f.AlL è™QA˜áe.AlL@ò™QA˜À¤e.AlL@ù™QA˜Te.AlL ý™QA˜ýd.AlL þ™QA˜À˜d.AlLÀý™QA˜Xd.AlL þ™QA˜ÀÝc.AlL šQA˜mc.AlL šQA˜c.AlL šQA˜ÀÓb.AlL€šQA˜‰b.AlLà*šQA˜@Ab.AlL ;šQA˜€b.AlLIšQA˜€Úa.AlLàQšQA˜€£a.AlLÀ]šQA˜€ya.AlL hšQA˜€_a.AlL€ršQA˜@oa.AlL šQA˜€„a.AlLÀ‘šQA˜ta.AlL`¤šQA˜€Ua.AlL·šQA˜4a.AlLÄšQA˜a.AlL`ÔšQA˜a.AlL@äšQA˜ð`.AlLàîšQA˜Àà`.AlL`ÿšQA˜ë`.AlL€ ›QA˜Àý`.AlL "›QA˜@ a.AlL5›QA˜a.AlL`D›QA˜€ø`.AlL Z›QA˜€÷`.AlL j›QA˜€Ì`.AlL z›QAKú·½`.A˜ ›*~›QA˜`.AlL‡›QA˜8`.AlL“›QA˜€Æ_.AlL`¦›QA˜†_.AlLà¿›QA˜R_.AlLàÑ›QA˜€K_.AlL á›QA˜_.AlL ô›QA@!À¥‰_.AŒürüö›QA˜€¿_.AlLÀœQA˜€`.AlL œQA˜@g`.AlL0œQA˜‡`.AlLàBœQA˜€“`.AlLÀSœQA˜€z`.AlL€–œQA˜m`.AlL@«œQA˜ÀL`.AlL€¹œQA˜N`.AlL ÆœQA˜O`.AlLàÕœQA˜€g`.AlL àœQA˜€Ù`.AlLÀïœQA˜€$a.AlLÀõœQA˜{a.AlL€QA˜„a.AlL@QA˜«a.AlLÀ3QA˜€¼a.AlL BQA˜äa.AlLàYQA˜@b.AlL qQA˜€)b.AlL‡QA˜@Ob.AlL ™QA˜Àzb.AlL °QA˜€§b.AlL`ÅQA˜€Ùb.AlL€ØQAÈY–Ëñb.A2K³ÓÞQA˜c.AlLàãQA˜€0c.AlLéQA˜€tc.AlL`ðQA˜²c.AlL€ùQA˜ìc.AlL`žQA˜€ d.AlL žQA˜€Hd.AlLÀžQA˜€fd.AlL ,žQA˜Šd.AlL@<žQA˜€¨d.AlL`JžQA˜@Îd.AlL€VžQA˜€Úd.AlLàcžQA˜ãd.AlLÀmžQA˜€Æd.AlLàužQA˜@šd.AlL}žQA˜€jd.AlL`ŠžQA˜€>d.AlLà˜žQA˜Ñc.AlLÀ¨žQA˜¬c.AlL@±žQA˜@¨c.AlLÀžQA˜€¹c.AlL@ÏžQA˜éc.AlL@ßžQA˜"d.AlLÀèžQA˜Šd.AlLôžQA˜Àúd.AlL€ŸQA˜€Ke.AlL  ŸQA˜Ùe.AlL`ŸQA˜€*f.AlLà)ŸQA˜‰f.AlL`<ŸQA˜€³f.AlLFŸQA˜€Ûf.AlLàMŸQA˜g.AlLXŸQA˜@$g.AlL cŸQA˜€1g.AlL€kŸQA˜g.AlL sŸQA˜@Õf.AlL yŸQA˜@€f.AlL zŸQA˜ f.AlLÀ}ŸQA˜€Ée.AlL…ŸQA˜€Ÿe.AlLÀ‹ŸQA˜€Ne.AlL€©ŸQA˜@$e.AlL ±ŸQA˜Üd.AlLÀ·ŸQA˜¯d.AlL༟QA˜Àjd.AlL ÃŸQA˜+d.AlLàÍŸQA˜€ðc.AlL ØŸQA˜ªc.AlLàãŸQA˜€tc.AlLÀìŸQA˜€vc.AlLøŸQA˜À‘c.AlL€ QA˜€Óc.AlL  QA˜€ d.AlLÀ QA˜Nd.AlL  QA˜nd.AlL  QA˜€qd.AlLÀ* QA˜@qd.AlL@6 QA˜Àfd.AlLB QA˜]d.AlLL QA˜À^d.AlLàZ QA˜Ud.AlLàh QA˜_d.AlL€w QA˜\d.AlL@€ QA˜ÀXd.AlL@ QA˜Vd.AlL€’ QAÈb ëXd.AhÔô«˜ QA˜Áe.AlL@ QA˜‡f.AlLm QA˜€Žf.AlLÀk QA˜ñg.AlLØu QA˜€Eh.AlL} QA˜‰h.AlLÀ QA˜€¸h.AlLÀ QA˜ðh.AlL@ƒ QA˜À!i.AlLˆ„ QA˜Zi.AlL`‡ QA˜€Œi.AlL Š QA˜ºi.AlLÀ QA˜€íi.AlL€˜ QA˜j.AlLठQA˜€Xj.AlL ´ QA˜€dj.AlL¼ QA˜€ˆj.AlL`Ç QA˜ j.AlLàÏ QA˜;k.AlLàä QA˜¤k.AlL@î QA˜l.AlL@ó QA˜€ƒl.AlLÀø QA˜êl.AlL ù QA˜Gm.AlL€ô QA˜€¢m.AlL€ï QA˜€ n.AlL ê QA˜_n.AlL€å QA˜€¨n.AlL€æ QA˜€Þn.AlL ç QA˜€o.AlLê QA˜wo.AlLì QA˜€p.AlL€ï QA˜Ãp.AlLàî QA˜íp.AlL@è QA˜äp.AlL`ß QA˜€Hq.AlL@ß QA˜vq.AlLàÜ QA˜~q.AlL`Ò QA˜†q.AlL Ë QA˜æq.AlL@Ë QA˜€×r.AlL Ï QA˜€Ós.AlL@Ñ QA˜gt.AlL€Å QA˜€u.AlLའQA˜€Qu.AlLÀ¸ QA˜u.AlL`¶ QA˜Ëu.AlL´ QA˜ v.AlL² QA˜Ov.AlL ­ QA˜€›v.AlL@´ QA˜Év.AlLÀ¹ QA˜ w.AlLའQA˜5w.AlL Â QA˜€Ëw.AlL`Û QA˜€¬x.AlL@ü QA˜Ây.AlLB¡QA˜Åy.AlLÀC¡QA˜€Üy.AlLàQ¡QA˜€õy.AlL`X¡QA˜€-z.AlL`\¡QA˜xz.AlL@X¡QA˜Ðz.AlLR¡QA˜€7{.AlL0N¡QA˜€€{.AlL€K¡QA˜€ê|.AlLàR¡QA˜€º~.AlL^¡QA˜.AlL`W¡QA˜€’.AlL@N¡QA˜)€.AlLÀ@¡QA˜€Ú€.AlL9¡QA˜ .AlL1¡QA˜‚.AlLÀ*¡QA˜ˆ‚.AlL !¡QA˜ ƒ.AlL¡QA˜ðƒ.AlL` ¡QA˜€½„.AlL ¡QA˜2….AlL ¡QA˜‰†.AlLó QA˜4‡.AlLú QA˜ñ‡.AlLÀ¡QA˜Žˆ.AlL  ¡QA˜7‰.AlL`¡QA˜€«‰.AlL@¡QA˜€[Š.AlLÀ*¡QA˜³Š.AlL`>¡QA˜€ÿŠ.AlLàL¡QA˜€n‹.AlL[¡QA˜à‹.AlL@d¡QA˜€tŒ.AlLàk¡QA˜.AlL@q¡QA˜q.AlLÀp¡QA˜Â.AlLÀs¡QA˜€Õ.AlL@|¡QA˜€Ê.AlL „¡QA˜«.AlL ‹¡QA˜À.AlLà“¡QA˜à.AlL€›¡QA˜€Ž.AlL §¡QA˜Ž.AlLೡQA˜Ž.AlL ¾¡QA˜€Ž.AlLÀË¡QA˜Ž.AlL€Ù¡QA˜Ž.AlL ç¡QA˜Ž.AlLÀò¡QA˜FŽ.AlLàù¡QA˜xŽ.AlL`¢QA˜lŽ.AlL  ¢QA˜4Ž.AlL ¢QA˜€(Ž.AlLà#¢QA˜WŽ.AlL .¢QA˜€‡Ž.AlL5¢QA˜½Ž.AlL@>¢QA˜ñŽ.AlL@>¢QA˜Q.AlL ;¢QA˜¶.AlL@;¢QA˜€;.AlL =¢QA˜¨.AlL@=¢QA˜€n‘.AlL€>¢QA˜€¡‘.AlL@A¢QA˜€Ð‘.AlL F¢QA˜€]’.AlL C¢QA˜Ý’.AlLÀH¢QA˜*“.AlLO¢QA˜y“.AlLU¢QA˜€¹“.AlL€[¢QA˜€É“.AlL@c¢QA˜€¤“.AlL€o¢QA˜€‡“.AlL@x¢QA˜œ“.AlL ¢QA˜€Š“.AlL€–¢QA˜€`“.AlL ¢QA˜€“.AlL¢¢QA˜’.AlL@ž¢QA˜€Þ‘.AlL ¤¢QA˜€„‘.AlL ²¢QA˜ ‘.AlLàÁ¢QA˜€Ë.AlL Ï¢QA˜€Ø.AlL Û¢QA˜€ý.AlLÀè¢QA˜'‘.AlLàð¢QA˜P‘.AlLú¢QA˜€v‘.AlL ý¢QA˜ˆ‘.AlL þ¢QA˜€Û‘.AlL@£QA˜€,’.AlLÀ£QA˜€‚’.AlL€£QA˜Ø’.AlLÀ£QA˜J“.AlL@£QA˜€v“.AlL û¢QA˜€æ“.AlL £QA˜€”.AlLÀ£QA˜R”.AlLþ¢QA˜€”.AlLà÷¢QA˜ª”.AlL@ñ¢QA˜Ô.AlL è¢QA˜Ñ”.AlL€á¢QA˜€Ê”.AlL`Ú¢QA˜€>•.AlL`Ô¢QA˜[•.AlL@É¢QA˜‹•.AlL »¢QA˜€ï•.AlLଢQA˜€I–.AlL ª¢QA˜€™–.AlL`²¢QA˜‘–.AlLàÄ¢QA˜€ü–.AlL`Ê¢QA˜€:—.AlLÀ΢QA˜]—.AlLÀÕ¢QA˜V—.AlLâ¢QA˜€@—.AlL`ï¢QA˜B—.AlLÿ¢QA˜€P—.AlL@£QA˜€o—.AlL`'£QA˜´—.AlL€2£QA˜€©—.AlL€:£QA˜m—.AlLÀA£QA˜€—.AlLàI£QA˜Ç—.AlL`J£QA˜€˜.AlLàG£QA˜€A˜.AlLà?£QA˜€}˜.AlL2£QA˜€À˜.AlLà3£QA˜ʘ.AlL C£QA˜Ș.AlL K£QA˜¶˜.AlL€X£QA˜€¢˜.AlL`b£QA˜˜.AlL€l£QA˜k˜.AlL@s£QA˜€<˜.AlL`z£QA˜#˜.AlL€€£QA˜€˜.AlLàŠ£QA˜˜.AlL`”£QA˜˜.AlL ›£QA˜€î—.AlL ¡£QA˜Ó—.AlL€§£QA˜™—.AlL®£QA˜k—.AlL ´£QA˜€?—.AlL@»£QA˜€!—.AlLàÁ£QA˜õ–.AlL@É£QA˜™.AlL€Ë£QA˜̘.AlL@é£QA˜¦˜.AlL@ú£QA˜€˜.AlL ¤QA˜@˜.AlL`!¤QA˜˜.AlL3¤QA˜ã—.AlLJ¤QA˜¿—.AlL@[¤QA˜–—.AlLo¤QA˜f—.AlLÀƒ¤QA˜€1—.AlL`š¤QA˜—.AlL@¬¤QA˜€—.AlLÀ½¤QA˜€ã–.AlL€Ë¤QA˜©–.AlL Þ¤QA˜€^–.AlLàó¤QA˜€K–.AlL€¥QA˜€q–.AlLà¥QA˜ –.AlL¥QA˜Ø–.AlLÀ ¥QA˜ —.AlLÀ¥QA˜€W—.AlLP¥QA˜€š—.AlL¥QA˜Ù—.AlL@¥QA˜$˜.AlL ¥QA˜Y˜.AlL@ÿ¤QA˜Œ˜.AlL ö¤QA˜¡˜.AlL î¤QA˜±˜.AlL`ã¤QA˜€Ô˜.AlLàܤQA˜€™.AlL@Ö¤QA˜€9™.AlLÀʤQA˜€_™.AlL@À¤QA˜É™.AlL¢¤QA˜ š.AlLÀ•¤QA˜)š.AlL †¤QA˜€zš.AlLy¤QA Ș³ý.AlL@‚QA˜€e5/AlL€RŠQA¶˜€…/AlL@ŠQA˜€ž/AlL€6ŠQA˜·/AlL .ŠQA˜€Ç/AlL€#ŠQA˜Ö/AlLÀŠQA˜ó/AlL@ ŠQA˜€/AlLàø‰QA˜/AlL@â‰QA˜€@/AlL@ωQA˜N/AlLྉQA˜€a/AlL ª‰QA˜€•/AlLÀ—‰QA˜€½/AlLމQA˜/AlL‰QA˜Q/AlLào‰QA˜‘/AlL`^‰QA˜Í/AlLÀL‰QA˜é/AlLÀE‰QA˜/AlL 9‰QA˜€/AlL€-‰QA˜I/AlL€‰QA˜b/AlL@‰QA˜€/AlL‰QA˜ª/AlLÀ ‰QA˜€Ü/AlL`‰QA˜€ /AlLüˆQA˜A/AlL ëˆQA˜S/AlL݈QA˜!/AlL€ÕˆQA˜ç/AlL@ÔˆQA˜¢/AlLàÓˆQA˜€¹/AlLÀĈQA˜ó/AlLà°ˆQA˜&/AlL@ ˆQA˜€h/AlLà†ˆQA˜€¥/AlLÀhˆQA˜/AlL OˆQA˜/AlL€BˆQA˜"/AlL`6ˆQA˜®/AlL€4ˆQA˜ë/AlL@3ˆQA˜/AlL *ˆQA˜2/AlLÀˆQA˜E/AlLàˆQA˜Œ/AlL€ˆQA˜Ú/AlL ˆQA˜/AlLˆQA˜€p/AlL &ˆQA˜œ/AlL` ˆQA˜–/AlL€ˆQA˜€¼/AlL  ˆQA˜8 /AlLà ˆQA˜u /AlL@ˆQA˜Ÿ /AlL $ˆQA˜€Õ /AlL@/ˆQA˜€9 /AlL 0ˆQA˜€Ÿ /AlL`*ˆQA˜¶ /AlL@ˆQA˜Î /AlL ˆQA˜´ /AlL@ö‡QA˜Å /AlL܇QA˜ /AlLà݇QA˜€O /AlLÀæ‡QA˜† /AlLàí‡QA˜€Ÿ /AlLàö‡QA˜Õ /AlLô‡QA˜ /AlL@è‡QA˜G /AlL à‡QA˜€= /AlL@ׇQA˜€ /AlLàχQA˜€æ /AlLàŇQA˜€S /AlL྇QA˜€… /AlL€¾‡QA˜€» /AlL ¼‡QA˜€ç /AlL€±‡QA˜€÷ /AlLࢇQA˜€ /AlLÀ‘‡QA˜€? /AlLƒ‡QA˜€\ /AlL{‡QA˜o /AlLpw‡QA˜€ /AlL q‡QA˜€² /AlL e‡QA˜€È /AlLÀZ‡QA˜€¦ /AlL L‡QA˜K /AlL€?‡QA˜ /AlL 3‡QA˜€¬ /AlL@,‡QA˜„ /AlL "‡QA˜ž /AlL@‡QA˜€Ï /AlL ‡QA˜€þ /AlL€‡QA˜ /AlL`ø†QA˜% /AlL`ë†QA˜v /AlL ç†QA˜² /AlLÀõ†QA˜€ô /AlL ý†QA˜:/AlL þ†QA˜u/AlL@‡QA˜€…/AlL ‡QA˜€…/AlL@‡QA˜€©/AlL`‡QA˜€ò/AlL‡QA˜$/AlL ‡QA˜i/AlL@‡QA˜€—/AlL‡QA˜²/AlL ‡QA˜€ /AlLÀ‡QA˜</AlLà ‡QA˜ƒ/AlLÀ‡QA˜ï/AlL@‡QA˜€/AlLý†QA˜,/AlL ô†QA˜>/AlLî†QA˜€ç/AlL â†QA˜/AlL Ý†QA˜€7/AlLÛ†QA˜€R/AlLÖ†QA˜€</AlL@ΆQA˜€D/AlL€Ã†QA˜k/AlL ¿†QA˜¦/AlL@·†QA˜è/AlL`°†QA˜€</AlL¦†QA˜€¿/AlLÀš†QA˜/AlLÀ–†QA˜/AlL@–†QA˜Ö/AlLà”†QA˜\/AlL@†QA˜€×/AlL Š†QA˜4/AlL`††QA˜€ò/AlL@€†QA˜z/AlL x†QA˜€/AlLào†QA˜È/AlLàh†QA˜$/AlL`_†QA˜€Ã/AlL€S†QA˜€;/AlLQ†QA˜€Š/AlL O†QA˜Ä/AlLÀM†QA˜/AlLK†QA˜`/AlL E†QA˜æ/AlLÀ:†QA˜x/AlLÀ.†QA˜/AlL`!†QA˜¦/AlL@†QA˜/AlLÀ†QA˜F/AlL`†QA˜€e/AlL )†QA˜/AlL€2†QA˜÷/AlLÀ6†QA˜*/AlLÀ8†QA˜m/AlL€4†QA˜€‡/AlLÀ,†QA˜›/AlL@†QA˜¼/AlLÀ†QA˜ñ/AlLà÷…QA˜D /AlL€è…QA˜€™ /AlL ß…QA˜€ê /AlL×…QA˜€U!/AlL Ï…QA˜€½!/AlLÀÏ…QA˜€"/AlL@Ñ…QA˜P"/AlL Õ…QA˜€š"/AlL@Ø…QA˜ð"/AlL€Ù…QA˜€#/AlL Ô…QA˜<#/AlL€á…QA˜€o#/AlL€î…QA˜€×#/AlL ò…QA˜€"$/AlLî…QA˜P$/AlL á…QA˜g$/AlLÀØ…QA˜m$/AlL@Ê…QA˜5$/AlL`¾…QA˜þ#/AlL ®…QA˜€µ#/AlL`£…QA˜€L#/AlLÀ˜…QA˜€ÿ"/AlL…QA˜€w#/AlLÀ……QA˜€ì#/AlLÀ„…QA˜1$/AlL Œ…QA˜€o$/AlL@š…QA˜€õ$/AlL ¦…QA˜O%/AlLÀ«…QA˜¦%/AlL@§…QA˜&/AlL ¥…QA˜œ&/AlL€”…QA˜€Ñ&/AlL`‘…QA˜€ø&/AlLÀŒ…QA˜€&'/AlL †…QA˜G'/AlL …QA˜p'/AlL y…QA˜€”'/AlL q…QA˜€œ'/AlLpk…QA˜Ÿ'/AlLÀi…QA˜€/(/AlLÀt…QA˜€ž(/AlLx…QA˜€)/AlL`~…QA˜e)/AlL€‡…QA˜¥)/AlL`…QA˜€*/AlLÀš…QA˜v*/AlL ¥…QA˜Õ*/AlL «…QA˜€I+/AlL€¯…QA˜©+/AlL²…QA˜€(,/AlL ´…QA˜‡,/AlL¸…QA˜Û,/AlL¼…QA˜€;-/AlLàÃ…QA˜¼-/AlLÀÎ…QA˜./AlL`×…QA˜./AlLàà…QA˜Ý./AlLí…QA˜6//AlLÀú…QA˜€ˆ//AlL †QA˜€Û//AlL  †QA˜€0/AlL`†QA˜f0/AlL †QA˜€Ö0/AlLà%†QA˜ä0/AlL'†QA˜1/AlLà*†QA˜€D1/AlL€5†QA˜Ñ1/AlL@D†QA˜2/AlL 8†QA˜O2/AlL@0†QA˜€–2/AlL#†QA˜€Ä2/AlL`†QA˜3/AlL€†QA˜€C3/AlLà †QA˜ò3/AlL@õ…QA˜€Î3/AlL ì…QA˜€À3/AlLàÞ…QA˜Á3/AlL Ö…QA˜€µ3/AlL€É…QA˜€¨3/AlLº…QA˜€3/AlLÀ«…QA˜€ƒ3/AlLÀ…QA˜€t3/AlLÀ…QA˜R3/AlL |…QA˜€?3/AlL`n…QA˜€.3/AlL ]…QA˜*3/AlL@P…QA˜€.3/AlL@@…QA˜%3/AlLà-…QA˜€3/AlL !…QA˜€/3/AlLÀ…QA˜€a3/AlL  …QA˜€€3/AlL …QA˜Ÿ3/AlL …QA˜Å3/AlL õ„QA˜ó3/AlLÀê„QA˜€)4/AlLàß„QA˜€`4/AlL€×„QA˜•4/AlL€Ï„QA˜€Å4/AlL€Ä„QA˜ÿ4/AlL@»„QA˜€/5/AlL಄QA˜€e5/AlLÀ¬„QA˜W5/AlLª„QA˜5/AlL€ž„QA˜€à4/AlL›„QA˜€›4/AlLà”„QA˜€^4/AlLàŽ„QA˜€+4/AlL`ˆ„QA˜€ã3/AlL@„QA˜€–3/AlL€{„QA˜€=3/AlL€w„QA˜€ç2/AlLÀs„QA˜€„2/AlL l„QA˜€62/AlL`d„QA˜€2/AlL ]„QA˜2/AlL@[„QA˜€ø1/AlL€V„QA˜€Ø1/AlL@Q„QA˜€æ1/AlLG„QA˜€ø1/AlLà?„QA˜Ø1/AlL€8„QA˜ž1/AlL€8„QA˜€m1/AlLà8„QA˜€ð0/AlL@6„QA˜€k0/AlLà2„QA˜ñ//AlLà5„QA˜€t//AlL@5„QA˜€ä./AlL@4„QA˜0./AlL 2„QA˜€ -/AlL 0„QA˜€›,/AlL`/„QA˜€ê+/AlLà+„QA˜€¨+/AlLÀ+„QA˜€Ö*/AlL@%„QA˜€f*/AlL€„QA˜€ */AlLà„QA˜€¤)/AlL  „QA˜€&)/AlL „QA˜€®(/AlLÀ„QA˜€(/AlLûƒQA˜]'/AlLÀóƒQA˜€´&/AlLÀòƒQA˜€&/AlL€ïƒQA˜€›%/AlLàñƒQA˜û$/AlL€íƒQA˜©$/AlL€ìƒQA˜5$/AlL€ëƒQA˜€Ç#/AlLÀéƒQA˜€R#/AlLêƒQA˜€×"/AlLÀíƒQA˜€“"/AlL ñƒQA˜"/AlL`ôƒQA˜€¾!/AlLà÷ƒQA˜€!/AlL`„QA˜€C!/AlL „QA˜€ô /AlL`ùƒQA˜€ë /AlL0õƒQA˜ã /AlL@ñƒQA˜€ˆ /AlL íƒQA˜û/AlLàêƒQA˜€‘/AlLéƒQA˜€/AlLçƒQA˜€Á/AlLÀäƒQA˜›/AlLàãƒQA˜1/AlL`߃QA˜€¬/AlLÀÚƒQA˜€%/AlLÀ׃QA˜€³/AlL€ÒƒQA˜€r/AlLÀЃQA˜€2/AlL ÏƒQA˜û/AlL€ÕƒQA˜€±/AlL ÛƒQA˜€\/AlL ÜƒQA˜4/AlL@ÙƒQA˜û/AlLÀÖƒQA˜€Ì/AlL`ÔƒQA˜€š/AlL`˃QA˜€Ã/AlL ÆƒQA˜õ/AlL ÁƒQA˜€/AlL`»ƒQA˜€E/AlL@¶ƒQA˜€v/AlLృQA˜€ /AlL`¯ƒQA˜D/AlL@°ƒQA˜€—/AlL«ƒQA˜€ä/AlL§ƒQA˜€4/AlLࢃQA˜€‡/AlLÀšƒQA˜€à/AlLÀ“ƒQA˜€C/AlL ‹ƒQA˜€Á/AlL`ƒQA˜€*/AlL€yƒQA˜€Ÿ/AlL rƒQA˜€ý/AlL@kƒQA˜€Œ /AlL dƒQA˜€þ /AlL ^ƒQA˜€z!/AlLàTƒQA˜€ö!/AlLàNƒQA˜€}"/AlLGƒQA˜€ï"/AlL€CƒQA˜€ƒ#/AlLÀ:ƒQA˜€1$/AlL`1ƒQA˜€»$/AlL@(ƒQA˜ %/AlL#ƒQA˜€~%/AlLàƒQA˜&/AlL@ƒQA˜S&/AlL ƒQA˜€’&/AlL@ƒQA˜€,'/AlLÀƒQA˜€‚'/AlL@ƒQA˜Ý'/AlLàƒQA˜€ (/AlL`ƒQA˜^(/AlL@ƒQA˜€›(/AlLƒQA˜€Ö(/AlLÀƒQA˜€)/AlLàƒQA˜€&)/AlL` ƒQA˜)/AlL ƒQA˜)/AlL`õ‚QA˜€()/AlLÀì‚QA˜Ê(/AlLàé‚QA˜‹(/AlL ê‚QA˜€?(/AlL è‚QA˜€ù'/AlLå‚QA˜€¾'/AlLâ‚QA˜€g'/AlLØ‚QA˜€T'/AlL€Ï‚QA˜€A'/AlL@Æ‚QA˜€5'/AlLགQA˜€è&/AlL ´‚QA˜˜&/AlLÀ­‚QA˜5&/AlL€£‚QA˜Á%/AlL—‚QA˜X%/AlLÀ‰‚QA˜€Ü$/AlLà|‚QA˜€G$/AlLÀn‚QA˜€ü#/AlL@`‚QA˜€Ì#/AlLÀM‚QA˜Á#/AlL@>‚QA˜¯#/AlLà3‚QA˜€Ÿ#/AlL`$‚QA˜€’#/AlL`‚QA˜€t#/AlL`‚QA˜€X#/AlL@‚QA˜€ø"/AlL€‚QA˜½"/AlL€‚QA˜€‚"/AlL ‚QA˜€$"/AlL€‚QA˜€¯!/AlL‚QA˜€ë /AlL '‚QA˜€Š /AlL`/‚QA˜€ /AlL 7‚QA˜›/AlLàA‚QA˜"/AlL J‚QA˜€¶/AlL@R‚QA˜€k/AlL Z‚QA˜€/AlLÀd‚QA˜€É/AlL`k‚QA˜€š/AlLp‚QA˜€_/AlL@u‚QA˜/AlL}‚QA˜€Û/AlLÀ‚‚QA˜€¨/AlL@„‚QA˜€0/AlL‡‚QA˜€Ø/AlLÀ‰‚QA˜€/AlLà‚QA˜€*/AlL@œ‚QA˜€–/AlL°‚QA˜€ý/AlLÂQA˜“/AlL@Ç‚QA˜€S/AlL@È‚QA˜ /AlL Æ‚QA˜€Ô/AlL Ä‚QA˜€ª/AlL Ã‚QA˜€€/AlL Ä‚QA˜€M/AlL€Ä‚QA˜€/AlL È‚QA˜€Ö/AlL Ë‚QA˜X/AlL€Ø‚QA˜€”/AlL@ë‚QA˜€ß/AlL@ý‚QA˜A/AlL€ƒQA˜€®/AlLÀƒQA˜€N/AlL@#ƒQA˜Ï/AlL@+ƒQA˜€\/AlL6ƒQA˜€þ/AlL@@ƒQA˜€€/AlL€PƒQA˜€{/AlLZƒQA˜€3/AlL@dƒQA˜€Ý/AlLà[ƒQA˜‰/AlL PƒQA˜€"/AlL`EƒQA˜Ç/AlLà<ƒQA˜€H/AlL2ƒQA˜€Ó/AlLà*ƒQA˜€z/AlL`(ƒQA˜€/AlL@#ƒQA˜ë/AlLà0ƒQA˜€±/AlLEƒQA˜€n/AlLUƒQA˜€?/AlL@hƒQA˜/AlLsƒQA˜€´ /AlL€ƒQA˜€t /AlLà„ƒQA˜T /AlLà„ƒQA˜ /AlLà„ƒQA˜€ /AlL „ƒQA˜€¶ /AlL€ƒQA˜€– /AlL`{ƒQA˜z /AlL`wƒQA˜€! /AlL xƒQA˜€¡ /AlL zƒQA˜€ó /AlL`ƒQA˜€Ô /AlL ˆƒQA˜€ä /AlLàšƒQA˜€ì /AlLà°ƒQA˜€ë /AlL ŃQA˜€ã /AlLáƒQA˜á /AlL äƒQA˜Ë /AlL„QA˜€f /AlLÀ „QA˜û /AlL`„QA˜ç /AlLÀ„QA˜€Ÿ /AlL"„QA˜€" /AlL 6„QA˜ù/AlL ;„QA˜€Í/AlL @„QA˜€¼/AlL D„QA˜¡/AlLJ„QA˜€€/AlL N„QA˜/AlLà`„QA˜€Ò/AlL q„QA˜€Â/AlLx„QA˜€¶/AlL`€„QA˜½/AlL€ƒ„QA˜€Ð/AlL@†„QA˜€ã/AlLÀ‡„QA˜€ø/AlLÀ‰„QA˜€!/AlL€Œ„QA˜;/AlL‘„QA˜G/AlL”„QA˜€T/AlL—„QA˜€n/AlL š„QA˜‰/AlLàž„QA˜€¯/AlL€£„QA˜€Â/AlL€¨„QA˜×/AlL`¬„QA˜€ê/AlL@¯„QA˜²/AlL ¸„QA˜[/AlL ¼„QA˜€p/AlLàÇ„QA˜€Š/AlLÀׄQA˜€¯/AlL`è„QA˜É/AlL õ„QA˜€Ø/AlLø„QA˜€å/AlLú„QA˜€ /AlL ý„QA˜€ /AlLà…QA˜€U /AlL …QA˜€´ /AlL…QA˜€ô /AlL€…QA˜€ /AlL …QA˜€ /AlLà …QA˜€ /AlLÀ#…QA˜€ /AlL@*…QA˜€ /AlLÀ0…QA˜€î /AlL7…QA˜€Ð /AlLà?…QA˜€œ /AlL`K…QA˜g /AlLàX…QA˜ /AlL€e…QA˜Ø/AlL`n…QA˜§/AlLm…QA˜\/AlL@i…QA˜€!/AlLàf…QA˜€ /AlLÀh…QA˜€Ø/AlLh…QA˜€Ò/AlLài…QA˜€Ë/AlLàl…QA˜€Ä/AlL€o…QA˜½/AlL r…QA˜€¹/AlL@w…QA˜¿/AlLày…QA˜€ã/AlL`…QA˜€/AlL`‡…QA˜-/AlL`‹…QA˜€J/AlL`Ž…QA˜€w/AlLà‘…QA˜€’/AlLà”…QA˜€Ì/AlLà˜…QA˜€ /AlL`œ…QA˜€9 /AlLà…QA˜[ /AlL  …QA˜€v /AlL€¤…QA˜€„ /AlL §…QA˜€| /AlL ª…QA˜€l /AlLଅQA˜€= /AlL°…QA˜# /AlLà°…QA˜á/AlL@´…QA˜€Ç/AlL µ…QA˜€j/AlLÀ·…QA˜€>/AlL ¹…QA˜€/AlL`º…QA˜€ô/AlLà»…QA˜Ù/AlLÀ½…QA˜€¼/AlL@Á…QA˜€¨/AlL`Å…QA˜€˜/AlLÀÇ…QA˜€·/AlL Ô…QA˜€/AlL@î…QA˜€H/AlL †QA˜€;/AlL †QA˜€ý/AlL †QA˜€À/AlL †QA˜á/AlL %†QA˜€/AlL@6†QA˜€M/AlLÀB†QA˜€/AlL€Q†QA˜€|/AlL`[†QA˜€6/AlLa†QA˜Ò/AlLàd†QA˜€€/AlL€g†QA˜)/AlLÀk†QA˜€è/AlLÀs†QA˜€è/AlL€z†QA˜€ /AlLà€†QA˜€c/AlL †QA˜€Ò/AlL …†QA˜€+/AlLà††QA˜€p/AlLÀŒ†QA˜[/AlL —†QA˜€</AlLàž†QA˜€/AlLÀ¦†QA˜ã/AlLÀ«†QA˜€ /AlLආQA˜€‰/AlLÀ¾†QA˜€/AlL°Á†QA˜t/AlL€Å†QA˜€ý/AlL ̆QA˜€Ð/AlL`Ù†QA˜€Ÿ/AlL@å†QA˜k/AlL ð†QA˜€P/AlL ø†QA˜€;/AlL ‡QA˜€/AlLà‡QA˜€/AlL "‡QA˜€â/AlL@*‡QA˜€¨/AlL@0‡QA˜€Â/AlL@8‡QA˜€Ð/AlLÀ>‡QA˜€¢/AlL C‡QA˜R/AlLàE‡QA˜€/AlL H‡QA˜€©/AlLÀH‡QA˜€¥/AlLP‡QA˜€«/AlL V‡QA˜€œ/AlLÀ_‡QA˜€„/AlLàf‡QA˜€]/AlL€o‡QA˜+/AlLàz‡QA˜ /AlLÀ…‡QA˜ÿ/AlL`‡QA˜í/AlL€—‡QA˜Ì/AlL ‡QA˜€ /AlL€©‡QA˜€ž/AlLµ‡QA˜€™/AlLÀÀ‡QA˜ž/AlL Î‡QA˜€„/AlLÀ؇QA˜O/AlL`á‡QA˜€/AlL é‡QA˜€à/AlL@ð‡QA˜€²/AlL ÷‡QA˜€}/AlLÀÿ‡QA˜€&/AlL`ˆQA˜€/AlL@$ˆQA˜€/AlL /ˆQA˜/AlL€<ˆQA˜ /AlL@BˆQA˜S/AlL@DˆQA˜€’/AlLÐEˆQA˜€µ/AlL KˆQA˜€Ž/AlL WˆQA˜k/AlL hˆQA˜€R/AlLÀxˆQA˜€*/AlLƒˆQA˜€ù/AlLàŽˆQA˜€á/AlL€™ˆQA˜€´/AlL€¬ˆQA˜€–/AlL€ºˆQA˜€v/AlL€ÅˆQA˜€\/AlL`ЈQA˜€;/AlLàˆQA˜€/AlL€îˆQA˜€ÿ/AlL€õˆQA˜€Ó/AlL@‰QA˜€´/AlLÀ‰QA˜€–/AlL€‰QA˜€z/AlLà‰QA˜€Z/AlL` ‰QA˜1/AlL *‰QA˜/AlLà=‰QA˜€/AlLN‰QA˜€/AlL`X‰QA˜€øÿ.AlL`h‰QA˜Êÿ.AlL s‰QA˜€šÿ.AlL}‰QA˜yÿ.AlL@†‰QA˜€Iÿ.AlLà’‰QA˜€ÿ.AlLÀœ‰QA˜€èþ.AlL€©‰QA˜€çþ.AlLÀ¹‰QA˜ãþ.AlL‰QA˜€×þ.AlL@ȉQA˜€Äþ.AlLà͉QA˜€ªþ.AlLà׉QA˜’þ.AlL€à‰QA˜€†þ.AlL€ç‰QA˜€vþ.AlL ò‰QA˜³ý.AlL-ŠQA˜€ýý.AlL@6ŠQA˜€3þ.AlL :ŠQA˜^þ.AlL =ŠQA˜€–þ.AlLà@ŠQA˜€Íþ.AlL CŠQA˜€ÿ.AlLFŠQA˜€Oÿ.AlLIŠQA˜€ÿ.AlLMŠQA˜Êÿ.AlL PŠQA˜/AlLÀQŠQA˜1/AlL€RŠQA˜€j/AlL€PŠQA˜™/AlL MŠQA˜×/AlLàIŠQA˜,/AlLàDŠQA˜€…/AlL@ŠQA 8ìÌ@Å10AòU•ÃrQAÌ@¢¡0AlL ÑšQAâÌ{x0AlL`™•QAÌ€^z0AlL y•QAÌ@=z0AlLÀa•QAÌDz0AlL@a•QAÌÀ4~0AlL •QAÌÀ9~0AlL •QAÌD~0AlL€ •QAÌÀa~0AlL •QAÌ@~0AlL€•QAÌ@¤~0AlL@•QAÌÀˆ0AlL€•QAÌÀ§0AlLàö”QAÌ@ø0AlL`ï”QAÌ@€0AlL@ä”QAÌ€0AlL`Ø”QAÌ€Œ0AlLÀÓ”QAÌÀã0AlL@ΔQAÌÀm‚0AlL€Â”QA̸‚0AlL€¿”QÃ0AlL`¹”QAÌÀ]ƒ0AlL ²”QAÌÀŽƒ0AlL`¬”QAÌÀ»ƒ0AlL€©”QAÌÃ0AlL©”QAÌ„0AlL` ”QAÌÀR„0AlL —”QAÌ•„0AlLÀ‰”QAÌ€Ö„0AlL@”QAÌ…0AlLÀs”QAÌH…0AlLài”QAÌ@…0AlLÀ_”QAÌÀš…0AlLð^”QÀÅ0AlL`\”QAÌ€þ…0AlL ^”QAÌ:†0AlL€h”QAÌ@w†0AlL l”QAÌ@µ†0AlLàm”QAÌ€‡0AlL@o”QAÌ€c‡0AlL@q”QAÌ@¯‡0AlL€p”QAÌê‡0AlLÀg”QAÌ"ˆ0AlLàV”QAÌ€Iˆ0AlLàG”QAÌqˆ0AlL C”QAÌ®ˆ0AlL€9”QAÌ@Ùˆ0AlL@6”QAÌÀ‰0AlL.”QAÌ@2‰0AlL ”QAÌh‰0AlL”QAÌ@–‰0AlLÀ”QAÌ€»‰0AlLÀò“QAÌÀñ‰0AlLÝ“QAÌ@Š0AlLàÉ“QAÌ€1Š0AlL °“QAÌÀPŠ0AlL@““QAÌeŠ0AlLàu“QĂŠ0AlLÀ]“QAÌ@µŠ0AlL@H“QAÌ€áŠ0AlL =“QAÌÀ#‹0AlL>“QAÌó‹0AlLI“QAÌ7Œ0AlL N“QAÌ {Œ0AlLPT“QAÌçŒ0AlLÀ]“QAÌÀ50AlL€c“QAÌÀ‹0AlLÀi“QAÌ@à0AlLm“QAÌ€2Ž0AlLàj“QAÌ£Ž0AlL€d“QAÌ€\0AlL M“QAÌž0AlL`>“QAÌ@Ô0AlL@-“QAÌÀ 0AlLÀ“QAÌÀZ0AlL “QAÌ—0AlLù’QAÌç0AlL@å’QAÌ‘0AlL`ß’QAÌ@9‘0AlL Ü’QAÌ€h‘0AlL ×’QAÌ€´‘0AlLàÊ’QAÌÀö‘0AlL༒QAÌ@0’0AlLà±’QAÌ€i’0AlLÀ§’QAÌÀ¥’0AlL€ ’QAÌ@b“0AlL€˜’QAÌ@·“0AlL`’QAÌ€”0AlLà~’QAÌ@c”0AlL v’QAÌ€¼”0AlL e’QAÌÀú”0AlLàT’QAÌ@0•0AlLàE’QAÌ@y•0AlL5’QAÌÀ³•0AlL*’QAÌ–0AlL@’QAÌ€H–0AlL ’QAÌÀ®–0AlL ’QAÌÀ5—0AlL€ñ‘QAÌ…—0AlLÀà‘QAÌÀâ—0AlL Ö‘QAÌ&˜0AlLÓ‘QAÌÀ{˜0AlL Ë‘QAÌÚ˜0AlLÀÄ‘QAÌÀK™0AlL ¾‘QAÌ™0AlL»‘QAÌ@ý™0AlLÀÑQÀؚ0AlL@Ú‘QAÌ ›0AlLàÒ‘QAÌp›0AlL@Ê‘QAÌÀ´œ0AlL™‘QAÌ@éœ0AlLàŒ‘QAÌ0AlLv‘QAÌ€&0AlL`b‘QAÌÀ30AlLÀO‘QAÌÀ;0AlL€:‘QAÌ"0AlL@.‘QAÌ@ïœ0AlL =‘QAÌ@êœ0AlL€L‘QAÌ€òœ0AlLÀ]‘QAÌëœ0AlL j‘QÀݜ0AlL@v‘QAÌ@Åœ0AlL ‘QAÌ¥œ0AlL`‰‘QAÌ@iœ0AlL ƒ‘QAÌ€>œ0AlLs‘QAÌ€œ0AlL g‘QAÌ€¿›0AlL V‘QAÌÀ³›0AlLC‘QAÌÀµ›0AlL`‘QAÌ€¾›0AlLÀ‘QAÌ@Ê›0AlL@çQÀɛ0AlL ÔQAÌÖ›0AlL€½QAÌú›0AlLÀ¶QAÌ€)œ0AlL µQAÌ@/œ0AlL`¨QAÌû›0AlL šQAÌ@¬›0AlLÀQAÌ€[›0AlL€…QAÌöš0AlLàvQA̘˜0AlL%QĂ˜0AlL"QAÌ@#“0AlLPhQAÌ€’Ž0AlL`ÊŽQAÌ€nŽ0AlL@ÛŽQAÌ€sŒ0AlL­ŽQAÌ€iŒ0AlL ¬ŽQAÌÀhŒ0AlL€ŸŽQAÌ€X‹0AlL ¶ŽQAÌ@¿‹0AlL@¬QAÌ€û‹0AlLQAÌÀü‹0AlL QAÌvŒ0AlL@Ò‹QAÌÀwŒ0AlLЋQAÌ„Œ0AlLàÀ‹QAÌ@ÊŒ0AlL ‹QAÌ›0AlLp‰QAÌ€¥0AlL€øˆQAÌÀµ0AlL`âˆQAÌÁ0AlL€ÖˆQAÌÏ0AlL ÁˆQAÌ€Ì0AlL ¢ˆQAÌ0AlL¯ˆQAÌ@$0AlL ¨ˆQAÌÀ+0AlLð§ˆQAÌ€A0AlL`žˆQAÌ@J0AlL°šˆQAÌ€‰0AlLP‚ˆQAÌÀ•0AlL@zˆQAÌ@¦0AlL hˆQAÌÀÇ0AlLBˆQAÌ€Ø0AlL1ˆQAÌÀà0AlL0)ˆQAÌÀî0AlLÀ"ˆQAÌÀ0AlLˆQAÌÀ'0AlL ˆQAÌÀ60AlLpˆQAÌ@K0AlL þ‡QAÌd0AlL ï‡QAÌÀy0AlL@å‡QAÌ€Ž0AlL°Ø‡QAÌ@Ð0AlLÁ‡QAÌ&‘0AlL°¡‡QAÌÀZ‘0AlL ‡QẢ‘0AlLp†‡QAÌ€©‘0AlL@€‡QAÌ@ö‘0AlLàx‡QAÌÀR’0AlL@p‡QA̪’0AlLpg‡QAÌÀ½’0AlLðd‡QAÌÉ’0AlL€b‡QAÌ@Ô’0AlLÐ^‡QA¸é®*Þ’0AòUEZ‡QAÌÀê’0AlLY‡QAÌ@ó’0AlLX‡QAÌL“0AlL ‡QAÌÀh“0AlL°ô†QAÌÀ®“0AlL°¹†QAÌÀ¿“0AlL0«†QAÌÅ“0AlLÀ¦†QAÌ@ý“0AlL w†QAœÜÎ ”0Až3sk†QAÌ”0AlL€h†QAÌ@´”0AlLp0†QAÌ@¹”0AlLÀ.†QAÌ&•0AlLÀ †QAÌÀE—0AlL Q…QAÌ€——0AlL@d„QAÌ@£—0AlLÀd„QAÌ€›0AlL€Œ„QAÌœ0AlLz„QAÌ@1œ0AlLÀv„QAÌcœ0AlL y„QAÌxœ0AlL@|„QẢž0AlL ù„QAÌ€Ÿ0AlL`…QAÌ€ 0AlLà…QAÌ@¢¡0AlL=…QAÌ@ÿ 0AlL Ë„QAÌÀü 0AlLàÉ„QAÌ# 0AlLp2„QAÌ@éŸ0AlL@ „QAÌ@†ž0AlLÀƒQAÌ€@ž0AlLÀë‚QAÌ@ž0AlLà΂QAÌÏ0AlL´‚QAÌÀË0AlL ²‚QAÌ@¦0AlL ¢‚QAÌà¡0AlL¸ ‚QAÌ€›0AlLž‚QAÌÀ“0AlLÀš‚QAÌÀ‰0AlL€–‚QAÌ€F0AlL v‚QAÌÑœ0AlL?‚QAÌ€œœ0AlL &‚QAÌ€nœ0AlL€‚QAÌ€=œ0AlL`‚QAÌÀá›0AlLàôQA̦›0AlL@çQAÌÀ|›0AlL€ÜQAÌ€\›0AlL`ÒQAÌK›0AlL@ÈQAÌF›0AlLà¿QAÌÀI›0AlLðJQAÌÀI›0AlLÐHQAÌ@J›0AlL`9QAÌ@J›0AlL 6QAÌ€J›0AlL01QAÌ€J›0AlLà,QAÌK›0AlL€QAÌ@K›0AlLQAÌL›0AlL ø€QAÌ@L›0AlLÐó€QAÌ€L›0AlLè€QAÌÀL›0AlL`â€QAÌ@M›0AlL`Ô€QAÌ@M›0AlLàÏ€QAÌ€M›0AlL€Å€QAÌt›0AlL€Â€QAÌÀ›0AlLÀÁ€QAÌ_œ0AlLà³€QAÌ€`œ0AlL £€QAÌXœ0AlLàŠ€QAÌ]œ0AlL€y€QAÌ@kœ0AlL _€QAÌ€ˆœ0AlLM€QAÌ€µœ0AlL`;€QAÌÓœ0AlL€%€QÀ؜0AlLÀ€QAÌÀÕœ0AlLà€QAÌØœ0AlL@õQAÌ€çœ0AlLÀåQAÌôœ0AlLÀÆQÀ͜0AlL€¶QAÌ¢œ0AlL ¥QAÌ€wœ0AlL žQAÌÀ6œ0AlLÀ›QAÌœ0AlL–QAÌ€ç›0AlL „QAÌ€Ú›0AlL`vQAÌ€ô›0AlLà]QAÌÀú›0AlLàQQAÌî›0AlL EQAÌ€¾›0AlL;QAÌ›0AlL <QAÌ@B›0AlL`@QAÌ@›0AlL`CQAÌÜš0AlL ?QAÌÀ®š0AlL`4QAÌÀšš0AlL`%QAÌ–š0AlLÀQAÌ¡š0AlL€ QAÌ€¹š0AlL`ÿ~QAÌ@äš0AlLò~QAÌ@›0AlLä~QAÌÀ›0AlL@Ó~QAÌ€ëš0AlL Ê~QAÌÀ»š0AlL@À~QAÌ€š0AlL ¹~QAÌbš0AlLà®~QAÌÀ7š0AlL¤~QAÌ€ š0AlL`˜~QAÌ@Ú™0AlLÀ~QAÌ€£™0AlL€ƒ~QAÌ€™0AlL`z~QAÌ€^™0AlL€p~QAÌ@G™0AlL j~QAÌÀ:™0AlLÀf~QAÌ™0AlL ^~QAÌ÷˜0AlLW~QAÌǘ0AlL X~QAÌ¥˜0AlLà^~QẢ˜0AlLa~QAÌ€m˜0AlL@c~QAÌ ˜0AlLàt~QÀȗ0AlL€x~QAÌ@£—0AlL x~QAÌ€x—0AlL@l~QAÌ^—0AlLÀb~QAÌ@M—0AlL U~QAÌ€D—0AlL€M~QAÌ@4—0AlLàB~QAÌÀ—0AlL€8~QAÌ@Æ–0AlL 6~QAÌ–0AlL -~QAÌÀ4–0AlL@&~QAÌô•0AlL€~QAÌ•0AlL ~QAÌÀ“•0AlL ~QAÌ,•0AlL~QAÌÀÿ”0AlL ú}QAÌ€é”0AlL`ç}QAÌ@î”0AlL Ô}QAÌ@•0AlLÀÂ}QAÌÀD•0AlL ³}QAÌs•0AlL ¥}QAÌÀ¯•0AlL€•}QAÌã•0AlL †}QAÌÀ–0AlL€r}QAÌ@–0AlL f}QAÌ(–0AlL@Y}QAÌ–0AlL€M}QAÌÀÆ•0AlLM}QAÌ@‹•0AlL`L}QAÌJ•0AlLÀE}QAÌÀ(•0AlLÐ9}QAÌ€•0AlL 4}QAÌ€ô”0AlL }QÀؔ0AlLÀ}QAÌ@¼”0AlLàÿ|QAÌ@¤”0AlL`ð|QAÌ@|”0AlLá|QAÌ€R”0AlL€Ô|QAÌ@”0AlL`Ð|QAÌØ“0AlL Ó|QAÌ@›“0AlL Ü|QAÌN“0AlL è|QAÌ€1“0AlLÀò|QAÌÀ“0AlL`}QAÌ€ò’0AlLà}QAÌÀÃ’0AlL`}QAÌÀ‘’0AlLà&}QAÌ1’0AlL3}QAÌ€á‘0AlL`/}QAÌ@x‘0AlL@&}QAÌ1‘0AlL`}QAÌÀ‘0AlL }QAÌ@ ‘0AlL }QAÌÀ ‘0AlLà}QAÌÀþ0AlLàõ|QAÌÀØ0AlL ê|QAÌ@±0AlL Ü|QAÌ€²0AlL@Ð|QA̾0AlLàÃ|QAÌ@ß0AlLà¸|QAÌÀ‘0AlL`µ|QAÌÀ?‘0AlL@¶|QAÌ€h‘0AlLÀ¾|QAÌŽ‘0AlL€Â|QAÌ@®‘0AlL@¾|QAÌÍ‘0AlL`±|QAÌ€·‘0AlL@§|QAÌÀŒ‘0AlLà“|QAÌÀ‡‘0AlLÀˆ|QAÌ€‹‘0AlL@{|QAÌ€Œ‘0AlL l|QAÌ€`‘0AlL`R|QAÌ€C‘0AlLàI|QAÌ@‘0AlLJ|QAÌÀé0AlL R|QAÌ€å0AlL a|QAÌ€è0AlLl|QAÌâ0AlL€||QAÌÈ0AlL Š|QAÌ€’0AlL`•|QAÌ@d0AlL™|QAÌ70AlL€œ|QAÌ@Ü0AlL€|QAÌ@¡0AlL |QAÌ€Ÿ0AlL€|QA̲0AlLy|QAÌ@Ô0AlLn|QAÌ€ì0AlL f|QAÌ@0AlLàX|QAÌ€0AlL M|QAÌ€Õ0AlL I|QAÌ@0AlLàK|QAÌÀX0AlLM|QAÌ 0AlLÀI|QAÌòŽ0AlL A|QAÌÅŽ0AlL`|QAÌÀ¨Ž0AlL@|QAÌ€wŽ0AlL` |QAÌ@DŽ0AlL@|QAÌÀ&Ž0AlL€|QAÌ@û0AlLÀ|QAÌÀ 0AlL |QAÌ@V0AlL |QAÌ€ýŒ0AlL |QAÌ€­Œ0AlL€|QAÌ€JŒ0AlL |QA̼‹0AlL€|QAÌŽ‹0AlL |QAÌ@g‹0AlLÀ|QAÌ:‹0AlL |QAÌ€‹0AlL@ý{QAÌùŠ0AlLàï{QAÌ@èŠ0AlL@ç{QAÌ@àŠ0AlLÛ{QAÌæŠ0AlLÀÒ{QAÌÀíŠ0AlL À{QAÌ@‹0AlLà´{QAÌ ‹0AlLà¦{QAÌ"‹0AlLÀœ{QAÌ&‹0AlL@’{QAÌ€‹0AlL…{QAÌÀ ‹0AlL u{QAÌÀúŠ0AlLÀf{QÀ؊0AlL[{QAÌ€§Š0AlLàU{QAÌ@jŠ0AlL V{QAÌ@(Š0AlL [{QAÌ€õ‰0AlLà`{QAÌ@Ɖ0AlL`g{Qĉ0AlL`n{QAÌ€O‰0AlL@v{QAÌ€‰0AlLà{{QAÌ@îˆ0AlL {QÀʈ0AlL@{QAÌÀ´ˆ0AlL‚{QAÌÀ‘ˆ0AlL@ƒ{QAÌMˆ0AlL`„{QAÌ@»‡0AlL`‰{QAÌ@¡‡0AlLà‰{QAÌ€d‡0AlL ‡{QAÌ@B‡0AlL„{QAÌ€*‡0AlL|{QAÌ€/‡0AlL€p{QAÌ+‡0AlLàf{QAÌ@*‡0AlL`[{QAÌ€,‡0AlL S{QAÌ€:‡0AlLL{QAÌÀ?‡0AlL@A{QAÌ€:‡0AlLà2{QAÌ€6‡0AlL@({QAÌ#‡0AlL`"{QAÌÀó†0AlL@"{QÀφ0AlL &{QAÌ@’†0AlL ,{QAÌÀ[†0AlL@-{QAÌÀ.†0AlL@,{QAÌ@í…0AlL`,{QAÌ€¼…0AlL@-{QAÌÀ…0AlL/{QAÌ>…0AlL 3{QAÌÀþ„0AlL`>{QAÌ€¾„0AlL€H{QAÌ€2„0AlL€b{QAÌ€ðƒ0AlLÀk{QAÌ€¬ƒ0AlL x{QAÌxƒ0AlL€u{QAÌ€Pƒ0AlLl{QAÌ@1ƒ0AlL a{QAÌ@4ƒ0AlL`V{QAÌ€Nƒ0AlL€N{QAÌÀyƒ0AlLÀG{QAÌ ƒ0AlL@{QAÌ@«ƒ0AlL8{QAÌÀ«ƒ0AlL +{QA̘ƒ0AlLÀ{QAÌÀwƒ0AlL€{QAÌ€Aƒ0AlL` {QÃ0AlL@{QAÌÂ0AlL {QAÌŽ‚0AlLÀ {QAÌ@I‚0AlL {QAÌ‚0AlL {QAÌ€ ‚0AlLÐ{QAÌî0AlL€{QAÌ@¼0AlL€{QAÌ@y0AlL {QAÌ€80AlL€{QAÌ@Í€0AlL`{QAÌÀ—€0AlL  {QAÌÀW€0AlL@ {QAÌ€0AlL {QAÌî0AlL {QAÌÀ¶0AlL`özQAÌ€„0AlL€òzQAÌÀr0AlL êzQAÌ€n0AlL€ãzQAÌŽ0AlLÛzQAÌ€¬0AlLÓzQAÌ€Ù0AlL ÉzQAÌ€þ0AlL@¿zQAÌ€0AlL€ºzQAÌÀ.€0AlL€´zQAÌÀP€0AlL@ªzQAÌ@{€0AlL`¡zQAÌ@¤€0AlLà›zQÀƀ0AlL`•zQAÌ@ì€0AlL€zQAÌ€0AlL ‹zQAÌ€ 0AlL„zQAÌÀ0AlLxzQAÌ0AlLpzQAÌ@â€0AlL jzQAÌÀ²€0AlL€gzQAÌm€0AlL hzQAÌ%€0AlLàqzQAÌ@ú0AlLÀzzQAÌ0AlL €zQAÌÀ10AlL@zQAÌæ~0AlL€|zQAÌ€›~0AlLàxzQAÌ@U~0AlL qzQAÌ~0AlLÀhzQAÌ@·}0AlL`bzQAÌe}0AlLàVzQAÌ€A}0AlL IzQAÌ€ }0AlL =zQAÌÀÞ|0AlL€(zQAÌÕ|0AlLÐ&zQAÌ@½|0AlLà"zQAÌ€®|0AlL`zQA̯|0AlL@zQAÌÌ|0AlLÀzQAÌ€á|0AlL€zQAÌ€ }0AlLÿyQAÌ€-}0AlL üyQAÌ@l}0AlL ôyQÃ}0AlL€íyQAÌÀ¨}0AlLÀäyQAÌÀ´}0AlL ×yQAÌ€¤}0AlL€ÈyQAÌ@~}0AlL`ÁyQAÌS}0AlL@¶yQAÌÀ(}0AlL¯yQAÌ@ï|0AlL ¤yQAÌ@¸|0AlL@ŸyQAÌŒ|0AlL žyQAÌ@`|0AlLÀ yQAÌÀB|0AlL¦yQAÌ@ |0AlL ®yQAÌÀ|0AlL ­yQAÌ@ê{0AlLÀ¬yQAÌ€¼{0AlL ¨yQAÌÀŠ{0AlLÀ¡yQAÌÀq{0AlL@™yQAÌ@f{0AlL@‘yQAÌ@q{0AlL`†yQAÌy{0AlL@|yQAÌ€ˆ{0AlL oyQAÌ—{0AlL gyQAÌ€¤{0AlLÀ]yQAÌ€±{0AlLWyQAÌ@µ{0AlL@MyQAÌÀ°{0AlL FyQAÌœ{0AlL`;yQAÌ…{0AlL@0yQAÌ@w{0AlL +yQAÌ^{0AlL€'yQAÌÀ<{0AlLà#yQAÌ€${0AlL!yQAÌ{0AlL yQAÌßz0AlL@yQAÌÀ¾z0AlLàyQAÌ£z0AlL€yQAÌ@Oz0AlL@ yQAÌÀFz0AlLyQAÌBz0AlL`yQAÌ@Gz0AlL øxQAÌÀ@z0AlL`àxQAÌ€@z0AlLÀÒxQAÌ@;z0AlLàÄxQAÌ@2z0AlLà¹xQAÌÀz0AlL@°xQAÌ@òy0AlLà¦xQAÌ»y0AlLà¡xQAÌ€ƒy0AlLàžxQAÌMy0AlL@ xQAÌ@y0AlL`¡xQAÌ€éx0AlL ¦xQAÌÀÀx0AlL ¬xQAÌ@šx0AlL@´xQAÌ€kx0AlLÀ¼xQAÌOx0AlL ÂxQAÌÀ&x0AlLÉxQAÌÀx0AlLÌxQAÌëw0AlLÎxQAÌ€²w0AlL@ÎxQAÌ@|w0AlL€ÊxQAÌ_w0AlLÀÆxQAÌÀDw0AlL@ÄxQAÌÀ0w0AlL`¿xQAÌÀw0AlL´xQAÌ@w0AlL ªxQAÌ@w0AlLP¦xQAÌ@þv0AlL £xQAÌ@ñv0AlL ˜xQAÌ@äv0AlL€‰xQAÌ@Þv0AlLàxQAÌ×v0AlL txQAÌ@Öv0AlL@hxQAÌÀ×v0AlL@XxQAÌÖv0AlL€AxQAÌ€Õv0AlL`-xQAÌØv0AlL xQAÌ@âv0AlL xQAÌ€îv0AlLôwQAÌ@w0AlLàÞwQAÌ€ÿv0AlL@ÌwQAÌ€îv0AlLàÀwQAÌÀ½v0AlLÀ·wQAÌ@Žv0AlL ´wQAÌ€Pv0AlL@®wQAÌ6v0AlL °wQAÌ€Ãu0AlL ²wQAÌ€au0AlL@°wQAÌ€u0AlL ­wQAÌ€Ñt0AlL ©wQAÌÀ¢t0AlL ¤wQAÌ€Zt0AlL ŸwQAÌ@uQAÌ@ym0AlL`)uQA̰gm0AlL€ uQAXs_œ]m0AȹŖuQAÌ@:m0AlLàuQA¸6A'm0A@Vhî uQAÌpm0AlLàuQAÌÀÃl0AlLÀûtQAÌp’l0AlL`ÿtQAÌpsl0AlLàuQAp¾Õ6l0Arä uQA̰/l0AlL€ uQA̰l0AlL€ uQAÌ@ðk0AlL`uQAÌðÊk0AlLÀuQAÌÀ£k0AlL uQAÌ€~k0AlL€uQAÌÀBk0AlL`uQA̰k0AlL€uQAÌ0k0AlLÀuQAÌ€Ûj0AlLütQAÌÀj0AlL`ýtQAÌ€—j0AlL`útQAÌpfj0AlL€ýtQAÌMj0AlL uQAÌ@,j0AlL`uQAÌÿi0AlL uQAÌ0ßi0AlL`uQAÌp»i0AlLàuQAÌ€Œi0AlLà*uQAÌÀ7i0AlL@6uQAÌði0AlL 8uQAÌ0éh0AlL :uQAÌÀ·h0AlL@>uQAÌ0“h0AlL@uQA̰[h0AlLDuQAÌ@-h0AlL@DuQAÌ0ìg0AlL ?uQAÌÀÉg0AlLà8uQAÌg0AlLà/uQAÌhg0AlL`#uQAÌÀAg0AlLàuQAp€?ú@g0AX|»3uQAÌ€8g0AlL uQAÌ@8g0AlL`çtQA̰9g0AlL€ÓtQAüãœ:g0Aư;oÏtQAtïÀ^:g0AŠóè@ÌtQAÌp;g0AlL€ÂtQAÌGg0AlLà±tQAÌpJg0AlLÀžtQAÌðFg0AlL`ŠtQAÌÀ+g0AlL@xtQAÌ0!g0AlL€ktQA̰(g0AlL€[tQAÌ@,g0AlL@NtQAP¥E;%g0AbäÝJtQAÌÀ g0AlL€9tQAÌpîf0AlL3tQAÌ@Õf0AlLÀ+tQAÌ0ºf0AlL(tQAÌp™f0AlL@&tQAÈlo%†f0A~ñ½%tQAÌÀvf0AlL $tQAÌ@Lf0AlL !tQAÌ@'f0AlL tQA̰ f0AlL tQAÌ0ëe0AlL tQAÌÉe0AlL@tQAÌð¡e0AlL tQAÌ Ne0AlL tQAÌàe0AlL tQAÌ ëd0AlL@tQAÌ Ád0AlL #tQAÌð³d0AlLà1tQAÌ0ªd0AlLàFtQAÌ0¯d0AlLàXtQAÌ`°d0AlLgtQAÌpÃd0AlL`ytQAÈJrÞÉd0A¤"Æ €tQA ªèÝËd0A˜ ›‚tQAÌpÑd0AlLˆtQAÌ Öd0AlL ˜tQAÌ0Éd0AlL¦tQAÌ µd0AlL ²tQAÌðgd0AlL¾tQAÌà"d0AlL`ÄtQAÌ Ùc0AlL`ÃtQAÌð”c0AlL@ÀtQAÌ0?c0AlL ½tQAÌpc0AlL`»tQAÌðÁb0AlL@´tQAÌ`zb0AlL ¦tQAÌà,b0AlLÀ—tQA|WãÚ&b0A¦¼Î”•tQAÌ@b0AlLD‰tQAÌ`Øa0AlLàztQAÌà´a0AlL`mtQA̰£a0AlL@[tQAÌ ›a0AlLItQAÌp’a0AlL 7tQAÌp—a0AlL (tQAÌp™a0AlL tQAÌðŸa0AlLàtQAÌà©a0AlL`ñsQAÌ Àa0AlL`âsQAÔ—“Ãa0AjúiÞsQAÌ Ða0AlL`ÐsQAÌ`áa0AlL¾sQAÌ êa0AlLÀªsQAÌ õa0AlL`“sQAÌàña0AlL`‚sQAÌðêa0AlL`osQAÌ Ïa0AlL`csQAÌà³a0AlL \sQAÌð‹a0AlL`WsQAÌ€`a0AlL TsQAÌ03a0AlLàPsQA̰a0AlL@QsQAÌ@²`0AlL@FsQAìúäÖ«`0At‰›™FsQA̰™`0AlL GsQA̰]`0AlLUsQAÌ[`0AlLbsQAÌðb`0AlL jsQAÌ€^`0AlL`rsQAÌ0V`0AlLà~sQAÌpK`0AlL€ˆsQAÌ€:`0AlL€’sQAÌ€ `0AlL€•sQAÌÀö_0AlL “sQAÌpÉ_0AlLÀ“sQAÌ0–_0AlL “sQAÌph_0AlL`•sQA̰A_0AlL`ŒsQA(ã¾c>_0Azè3¢ŠsQAÌð"_0AlLà{sQA̰ó^0AlL isQAÌpË^0AlL@WsQAÌð¤^0AlL`MsQAÌÀ`^0AlL HsQA$I¶x&^0AFh|IsQA̰ó]0AlL€JsQAÌ€]0AlL@LsQA¼®>üd]0AtgžòKsQAÌ@Y]0AlLàKsQAÌ]0AlLÀGsQAÌðÜ\0AlL`?sQA̶\0AlLà6sQAÌp€\0AlL ,sQAÌð]\0AlLÀ&sQAÌB\0AlLÀ!sQAÌÀ\0AlLàsQAÌ\0AlL@sQAÌ€\0AlL€ sQAÌðú[0AlL sQA̰Ø[0AlLÀørQAÌð¿[0AlL@ðrQAÌð¢[0AlLèrQAÌ0}[0AlL@ßrQAÌ@n[0AlLÀÚrQA̰F[0AlLÑrQA̰"[0AlLÉrQA¸é®êñZ0AòU•ÃrQAÌÓZ0AlL ÖrQA̺Z0AlL@ÝrQAÌ€§Z0AlL@årQAÌ€Z0AlL ïrQAÌ€eZ0AlLÀörQAÌÀJZ0AlL@ÿrQAÌ0AlL`svQAÌ€7=0AlL@bvQAÌã<0AlLÀZvQAÌ@À<0AlL ZvQAÌÀ©<0AlLÀYvQAÌ—<0AlL€YvQAÌ2<0AlLà{vQAÌi<0AlL€•vQAÌÀ¡;0AlL`–vQAÌ@ã:0AlL‰vQAÌÀ¬:0AlLà¿vQAÌ€T90AlLà´vQAÌ'90AlL@ÏvQAÌš90AlL ÖvQAÌ@Ÿ90AlLàvQAÌ@›90AlLÀêvQAÌÀœ90AlLà÷vQAÌ€¤90AlLÀwQAÌ€¦90AlL`wQAÌ€Œ90AlL $wQAÌ€x90AlLÀ-wQAÌ@\90AlL`2wQAÌÀ+90AlLÀ9wQAÌÀ 90AlL`DwQAÌ€ú80AlLàRwQAÌ@ý80AlLcwQAÌ@90AlLàmwQAÌ<90AlLàrwQAÌ€T90AlL ywQAÌ€W90AlL@wQAÌ@ 90AlLÀ˜wQAÌÒ80AlL` wQAÌÀz80AlLà¦wQAÌÀ:80AlL ¬wQAÌÀú70AlLàµwQAÌÀÎ70AlLà¸wQAÌÀƒ70AlL`ÉwQAÌa70AlLàÑwQAÌ€970AlL@×wQAÌ70AlL@ÛwQAÌ€ä60AlL€ßwQAÌ@Ñ60AlLäwQAÌ@Ï60AlLàêwQAÌ€¸60AlL ôwQAÌ€º60AlL ÷wQAÌ€¼60AlL@ùwQAÌ@¹60AlL ûwQAÌ@º60AlLàxQAÌ@¶60AlLxQAÌ€¸60AlL  xQAÌ@¼60AlLÀxQAÌ@À60AlL xQAÌÅ60AlL xQAÌË60AlL xQAÌÀÜ60AlL`"xQAÌ€í60AlLà#xQAÌ70AlL@$xQAÌ70AlL€$xQAÌ€+70AlL #xQAÌ;70AlL"xQAÌÀY70AlL`xQAÌ@j70AlL`xQAÌ€š70AlLxQAÌÀº70AlLàxQAÌÈ70AlLàxQAÌÀÖ70AlL`xQAÌ€ë70AlL xQAÌÀú70AlL  xQAÌÀ80AlL xQAÌ680AlL€xQAÌ€S80AlL xQAÌÀp80AlL úwQAÌÀ80AlL`ówQAÌ@Ž80AlL@îwQAÌ€°80AlL€æwQAÌÀÍ80AlLÀÞwQAÌ€ó80AlLÀÕwQAÌÀ90AlL€ÎwQAÌÀE90AlL ÈwQAÌÀn90AlL ÉwQAÌ@90AlL ËwQAÌ€É90AlL×wQAÌÀþ90AlL€ÞwQAÌÀ+:0AlLãwQAÌ@H:0AlLÀìwQAÌ[:0AlL õwQAÌl:0AlLýwQAÌn:0AlLàxQAÌÀy:0AlL` xQAÌ@…:0AlL xQAÌÀ—:0AlL@xQAÌ€Š:0AlLà+xQAÌÀ:0AlL@5xQAÌ@y:0AlL`=xQAÌ@u:0AlLàDxQAÌ@]:0AlL@LxQAÌ@B:0AlL YxQAÌ€%:0AlL@gxQAÌÀ:0AlLàsxQAÌ@ú90AlL €xQAÌÛ90AlL ŽxQAÌÂ90AlL ™xQAÌ€¥90AlL ¨xQAÌ•90AlLÀ±xQAÌ€}90AlL`½xQAÌc90AlLÊxQAÌL90AlL ÔxQAÌ€"90AlLÀãxQAÌ90AlL`ìxQAÌ@ý80AlLÀõxQAÌ@î80AlLÀüxQAÌ€Ò80AlLàyQAÌ¿80AlL yQAÌ€80AlLàByQAÌÀþ70AlL HyQAÌ­70AlL`fyQAÌS70AlL‚yQAÌN70AlLyQAÌ@I70AlLžyQAÌ@@70AlL@©yQAÌ€,70AlLÀ²yQAÌ€70AlLàµyQAÌÀ·60AlLàÇyQAÌu60AlL@ÔyQAÌ€160AlL ãyQAÌ@»50AlL€ÿyQAÌ€A50AlL€ zQAÌ€ý40AlL@zQAÌ€Ë40AlL zQAÌÀÁ40AlLàzQAÌ€40AlL0zQAÌÀ40AlL@ zQAÌf30AlL zQAÌ€Û20AlL]zQAÌÞ20AlL _zQAÌ€530AlL`ÁzQAÌ€ª30AlL ÃzQAÌ@J40AlL@«zQAÌÀ50AlL˜zQAÌÀŽ50AlLÀŽzQAÌÀ§50AlLà‰zQAÌÀÁ50AlL†zQAÌÀÞ50AlLƒzQAÌÀ60AlL }zQAÌÀ*60AlL€vzQAÌÀI60AlLÀpzQAÌ@v60AlL@kzQAÌ@¯60AlL ezQAÌð60AlLÀdzQAÌ€370AlL€gzQAÌÀq70AlLhzQAÌ@ª70AlL€gzQAÌò70AlLgzQAÌ=80AlL@hzQAÌ@y80AlL€hzQAÌÀ¡80AlLhzQAÌ­80AlLrzQAÌ€S90AlLàwzQAÌ@P90AlLÀŠzQAÌS90AlL`žzQAÌR90AlL`¨zQAÌU90AlL´zQAÌZ90AlLÆzQAÌÀT90AlLÀÑzQAÌÀM90AlL ÜzQAÌ€I90AlL çzQAÌ@@90AlL ðzQAÌ@990AlL@ûzQAÌ290AlLÀ{QAÌ(90AlL {QAÌ€Û80AlL2{QAÌ©80AlL@E{QAÌ€280AlL h{QAÌ@70AlL€_{QAÌ€ü60AlLa{QAÌÕ60AlLàe{QAÌÀÊ60AlL@q{QAÌ@Å60AlL@z{QAÌ€£60AlL@ƒ{QAÌ€‡60AlLŠ{QAÌ€h60AlL@{QAÌ€M60AlLà{QAÌ€=60AlL —{QAÌÀï60AlL Á{QAÌ@Œ70AlL€Ü{QAÌù70AlLÀÜ{QAÌÀ(80AlL@Þ{QAÌ€W80AlL`á{QAÌ80AlLÀÜ{QAÌÀ´80AlLàÞ{QAÌÌ80AlL`å{QAÌÀ¯80AlL@ô{QAÌÀ•80AlL þ{QAÌ@u80AlL` |QAÌ€Q80AlL€|QAÌ780AlL`|QAÌÀ$80AlL '|QAÌ@ 80AlL€/|QAÌ€ú70AlL€9|QAÌ€Ú70AlL€C|QAÌ@Z70AlL p|QAÌÀU70AlLÐr|QAÌ€¸60AlLÀ¿|QAÌÀ™60AlL»|QAÌ€´40AlL O}QAÌÀ{40AlL X}QAÌØ30AlLÀE}QAÌ@¨30AlLÀI}QAÌ@Å10AlL`r}QAÌf40AlL€L~QAÌ 50AlL@~QAÌM40AlLÀ~QAÌ@¥30AlL«~QAÌ@q30AlLàÍ~QAÌÀ30AlL@Ã~QAÌ€å20AlL@Ô~QAÌ€30AlL€QAÌp20AlL ^QAÌ}20AlL°`QAÌ€20AlLaQAÌ€ö20AlL xQAÌ@'30AlLàvQAÌ@330AlL ~QAÌÀ:30AlLà‡QAÌü30AlL ¢QAÌ€`50AlL €QAÌ@50AlL €QAÌ@µ30AlL@‡€QAÌ@l30AlL©€QAÌ{30AlLÀ­€QȦ30AlL€²€QAÌ@30AlLà´€QAÌ@©30AlLༀQAÌ€½30AlLÀ€QAÌ@Î30AlL`È€QAÌ@å30AlLàЀQAÌÀõ30AlLàÕ€QAÌ€40AlL€Ú€QAÌÀ#40AlLâ€QAÌ;40AlL@è€QAÌ@N40AlLì€QAÌw40AlLò€QAÌÀ¢40AlLàö€QA̸40AlLÀù€QAÌ€950AlLÀQAÌ€ô50AlLàQAÌÀ®80AlL€VQAÌá80AlL ZQAÌÀý80AlLà[QAÌ@90AlL`ZQAÌ€290AlLSQAÌÀN90AlL@IQAÌ}90AlL`9QAÌ€§90AlLQAÌÀª90AlL€QAÌ@¸90AlL€QAÌÀÜ90AlLQAÌÀ:0AlL@ù€QAÌ@:0AlLø€QAÌ€9:0AlLàï€QAÌ€Y:0AlLàæ€QAÌ@e:0AlL ã€QAÌ@£:0AlL Ó€QAÌÜ:0AlLÀQAÌ@;0AlL@±€QAÌ€9;0AlLàž€QAÌÀf;0AlL€QAÌ•;0AlL@€QAÌÀ<0AlL`P€QAÌ€J<0AlL€J€QAÌ@u<0AlLÀK€QAÌ@<0AlLÀL€QAÌÀº<0AlLpO€QAÌ€Ø<0AlL@P€QAÌ@÷<0AlL€N€QAÌÀ=0AlLàJ€QAÌ<=0AlL`F€QAÌ€o=0AlL?€QAÌš=0AlL€:€QAÌ@Î=0AlL€/€QAÌü=0AlL#€QAÌ€Ÿ>0AlLöQAÌ»>0AlL€ñQAÌÔ>0AlLàñQAÌ€÷>0AlL€ôQAÌ@'?0AlLàýQAÌ€d?0AlL@ €QAÌ@Ê?0AlL €QAÌÀ®@0AlL;€QAÌ€XA0AlLàX€QAÌàûA0AlL r€QAÌ@B0AlL`}€QAÌÀC0AlL@œ€QAÌeC0AlL€©€QAÌ@ËC0AlL´€QAÌ@0D0AlL·€QAÌ€D0AlL`»€QAÌÌD0AlLàÅ€QAÌ E0AlLà΀QAÌ€(E0AlLàÏ€QAÌ@gE0AlL ×€QAÌ€¹E0AlL ß€QAÌÀðE0AlL`è€QAÌ€F0AlL ð€QAÌ2F0AlL€ù€QAÌ€OF0AlL QAÌÀsF0AlLà QAÌ€‹F0AlLQAÌ@¸F0AlL $QAÌóF0AlL@8QAÌ€YG0AlLÀVQAÌ@cG0AlLÀ^QAÌÀAH0AlL€±QAÌ€H0AlL@¿QAÌÀõH0AlLàÒQAÌCI0AlL@ÞQAÌ@\I0AlL@áQAÌÀÁI0AlL@íQAÌÀ/J0AlL@úQAÌ@¼J0AlL  ‚QAÌÀ6K0AlL@‚QAÌšK0AlL&‚QAÌÀAL0AlL =‚QAÌÀšL0AlL`E‚QAÌùL0AlL N‚QAÌàM0AlL˜R‚QAÌÀ†O0AlLX ‚QAÌ€æN0AlL`Ç‚QAÌ@ªO0AlLàã‚QAÌÀNP0AlL·‚QAÌ2Q0AlL Ô‚QAÌÀuQ0AlLÝ‚QAÌÂQ0AlLàæ‚QAÌ'R0AlLó‚QAÌ@{R0AlLÀþ‚QAÌõR0AlLƒQAÌÀ\S0AlLàƒQAÌÀ¸S0AlLÀ(ƒQAÌ+T0AlLÀ5ƒQAÌhT0AlLÀ;ƒQAÌÀ˜T0AlL€@ƒQAÌ€äT0AlL EƒQAÌÀ0U0AlLKƒQAÌU0AlL`RƒQAÌ@ÑU0AlL`[ƒQAÌ€&V0AlLàbƒQAÌ@uV0AlL@iƒQAÌÀËV0AlL€pƒQAÌ W0AlLyƒQAÌ@UW0AlLƒQAÌ€pW0AlL@‡ƒQAÌ@®W0AlL –ƒQAÌ€ÝW0AlL £ƒQAÌ€X0AlLÀ³ƒQAÌGX0AlL ÄƒQAÌ€€X0AlLÖƒQAÌ€¦X0AlL âƒQAÌÀÊX0AlL`íƒQAÌ€çX0AlL`öƒQAÌ€Y0AlL`þƒQAÌ@Y0AlLà„QAÌ%Y0AlL`„QAÌ@(Y0AlL„QAÌÀ2Y0AlLÀ„QAÌÀLY0AlLø „QAÌÀ_Y0AlLÀ&„QAÌqY0AlL .„QAÌ€tY0AlL;„QAÌ@rY0AlL G„QAÌ€gY0AlL t„QAÌ€XY0AlL@Ç„QAÌ@ªV0AlL`…QAÌÀVX0AlL`·†QAÌ€’X0AlLpð†QAÌ€X0AlLpó†QAÌ€jR0AlLPþ‡QAÌÀR0AlL@ˆQAÌÀ»Q0AlL@ˆQAÌÿQ0AlLà ˆQAÌ€7R0AlL $ˆQAÌÀdR0AlL€'ˆQAÌÀ˜R0AlL ,ˆQAÌ€ÇR0AlL2ˆQAÌ€ÝR0AlLà9ˆQAÌ@ÁR0AlLLˆQA̬R0AlLTˆQAÌÀ‹R0AlLÀ^ˆQAÌzR0AlL€dˆQAÌ@€R0AlL`jˆQAÌÀ¨R0AlL`nˆQAÌ€ÇR0AlL wˆQAÌ@ßR0AlL€†ˆQAÌïR0AlL€’ˆQAÌS0AlL@žˆQAÌÀ)S0AlLÀ«ˆQAÌ€WS0AlL ¸ˆQAÌ€‡S0AlL€ÆˆQAÌÀÈS0AlLÀÖˆQAÌÀëS0AlLàáˆQAÌ€T0AlL°ìˆQAÌ@ T0AlLÀîˆQAÌT0AlLàþˆQAÌ8T0AlL ‰QAÌ@VT0AlLÀ1‰QAÌ@hT0AlLà@‰QAÌ€yT0AlLÀR‰QAÌT0AlLàn‰QAÌ@¢T0AlL@€‰QAÌÀ²T0AlL ‰QAÌÀËT0AlL@Ÿ‰QAÌ@ÜT0AlL`©‰QAÌÀU0AlLཉQAÌ@+U0AlL`ωQAÌ[U0AlL`ã‰QAÌ@zU0AlLî‰QAÌ~U0AlL@ï‰QAÌ@U0AlL`õ‰QAÌ­U0AlL@ŠQAÌÀæU0AlL ŠQAÌ@'V0AlLà2ŠQAÌaV0AlL@GŠQAÌÀV0AlL`ŠQAÌÀ8W0AlL ¡ŠQAÌ@–W0AlL`ÁŠQAÌ X0AlLøŠQAÌÀ#X0AlLÀ‹QAÌ@nY0AlLàž‹QAÌ@~Y0AlLÀ©‹QAÌ™Y0AlL๋QAÌÀ²Y0AlL Æ‹QAÌ€ÏY0AlLÓ‹QAÌ@èY0AlLÀâ‹QAÌÀøY0AlL˜í‹QAÌ õY0AlL8û‹QAÌ€éY0AlL€ŒQAÌ@äY0AlL@ŒQAÌàY0AlL°ŒQAÌ€ÁY0AlLàŒQAÌ Y0AlL`ŒQAÌÀŠY0AlL@ ŒQAÌ}Y0AlL&ŒQAÌ7Y0AlL@:ŒQAÌÀóW0AlL`ŽŒQAÌ€T0AlLppQAÌ€^T0AlL0}QAÌ@ T0AlLà’QAÌÀþS0AlL –QAÌÀP0AlL ˜ŽQAÌÀÊO0AlLÀ¯ŽQAÌ€O0AlL`½ŽQAÌâJ0AlL(LQAœÜÎL‡H0AÒ²fV“QAÌ€ˆH0AlL •QA̦H0AlL¢QAÌÀÂH0AlL€¤QAÌÀîH0AlL¥QAÌ!I0AlL ¨QAÌQI0AlL±QAÌrI0AlL ¼QAÌ@ŒI0AlLÇQAÌÀ¢I0AlLàÌQAÌÀÖI0AlLàÕQAÌ€ðI0AlL€ÚQAÌ@ J0AlLàâQAÌJ0AlL ìQAÌ@ J0AlL ùQAÌ€9J0AlL` QAÌ?J0AlLQAÌ€6J0AlL@$QAÌÀ$J0AlL.QAÌ€J0AlL6QAÌJ0AlLÀAQAÌJ0AlL MQAÌJ0AlLXQAÌ€ J0AlL aQAÌ@J0AlL€iQAÌÀ9J0AlL@oQAÌ@NJ0AlL uQAÌ€fJ0AlLà|QAÌ€{J0AlLðƒQAÌ@žJ0AlL`‚QAÌ@¸J0AlLQAÌÀìJ0AlL`uQAœÜÎLÿJ0Aæ™étQAÌÀ K0AlL tQAÌ€K0AlL€tQAÌ€(K0AlLàxQAÌdK0AlLÀxQAÌpK0AlLàzQAÌK0AlL€}QAÌ…K0AlLp~QAÌ@K0AlL€QAÌ@¤K0AlL`ƒQAÌÀÉK0AlL€ƒQAÌÀòK0AlL@}QAÌ€L0AlL {QAÌ@GL0AlL`}QAÌÀ{L0AlL`ƒQAÌÀ¥L0AlL QAÌÀ±L0AlL›QAÌÀÈL0AlLà¥QAÌ@äL0AlL@°QAÌ M0AlL ¼QAÌÀ.M0AlL ÌQAÌ@M0AlL×QAÌ@|M0AlLàÞQAÌ@›M0AlL ÛQAÌÔM0AlL ÚQAÌ€ôM0AlLÀãQAÌN0AlL ñQAÌ@CN0AlL€õQAÌÀ}N0AlLÀûQAÌÀ§N0AlLýQAÌ·N0AlLüQAÌÛN0AlL ùQAÌ@O0AlLàòQAÌ@RO0AlL ôQAÌ@ÓO0AlL€‘QAÌ@êO0AlL  ‘QAÌÀúO0AlL‘QAÌ€P0AlLà"‘QAÌ@TP0AlL@0‘QAÌÀ{P0AlL`.‘QAÌ€•P0AlL -‘QAÌ@ÂP0AlLÀ‘QAÌÿP0AlLÀ‘QAÌ€BQ0AlL ‘QAÌÀ„Q0AlL`‘QA̧Q0AlL@$‘QAÌ€Q0AlLðH‘QAÌ@lQ0AlLàS‘QAÌ@[Q0AlL`\‘QAÌ€‡Q0AlL`e‘QAÌ@·Q0AlL€k‘QAÌÀþQ0AlL€r‘QAÌÀFR0AlL{‘QAÌ€‚R0AlL }‘QAÌÀ³R0AlL‘QAÌÜR0AlL@‘QAÌúR0AlLðœ‘QAÌ@%S0AlLÀ°‘QAÌÀ$S0AlL0³‘QAÌ"S0AlLà¿‘QAÌS0AlLPÁ‘QAÌÀ S0AlL`Ë‘QAÌúR0AlLPΑQAÌÀÕR0AlLàÔ‘QAÌÀ©R0AlLàÞ‘QAÌ@‡R0AlL ç‘QAÌÀyR0AlL°ð‘QAÌÀ‚R0AlL€ý‘QAÌ…R0AlL’QAÌ€}R0AlL° ’QAÌ€_R0AlL€’QAÌÀR0AlLÀ#’QA̺Q0AlL€+’QAÌ€’Q0AlLà,’QAÌ@QQ0AlL@/’QAÌ@1Q0AlL2’QAÌÀQ0AlL@4’QAÌ@Q0AlL€@’QAÌ@Q0AlL R’QAÌÀQ0AlL`’QAÌ€Q0AlLpc’QAÌ€Q0AlL j’QAÌóP0AlLpo’QAÌíP0AlLàv’QAÌïP0AlL ~’QAÌ@ïP0AlL@€’QAÌÀñP0AlLàŒ’QAÌ€Q0AlL`’’QAÌ€3Q0AlL –’QAÌÀXQ0AlLÀ–’QAÌ€’Q0AlL@’’QAÌ@ÂQ0AlLÀŒ’QAÌÀçQ0AlLà‡’QAÌ@öQ0AlLP‡’QAÌ@R0AlL †’QAÌÀ5R0AlL@Š’QAÌÀNR0AlL@•’QAÌQR0AlLàœ’QAÌ€TR0AlLh§’QAÌ@`R0AlLÀ´’QAÌÀeR0AlLདྷQAÌÀqR0AlL Ë’QAÌ€\R0AlLÕ’QAÌ@CR0AlLàû’QAÌ@;R0AlL “QAÌ@.R0AlL€“QAÌ/R0AlL (“QAÌÀTR0AlL 4“QAÌ@gR0AlL€A“QAÌrR0AlLU“QAÌÀpR0AlL°^“QAÌ@pR0AlLàa“QAÌÀqR0AlLPg“QAÌÀsR0AlLo“QAÌÀtR0AlLà€“QAÌ€R0AlL@”“QAÌ€R0AlL@Ÿ“QAÌ´R0AlL ¢“QAÌÀØR0AlL`¤“QAÌ@÷R0AlL ¦“QAÌ@ S0AlLÀª“QAÌ€S0AlL`±“QAÌS0AlL ¶“QAÌ@2S0AlL Ä“QAÌ€;S0AlL€Î“QAÌ€5S0AlLÙ“QAÌÀ$S0AlL€ß“QAÌ@S0AlL â“QAÌS0AlLæ“QAÌS0AlL`ì“QAÌ%S0AlL ñ“QAÌTS0AlL°ó“QAÌ@}S0AlL€õ“QAÌ€»S0AlL@ö“QAÌ€îS0AlLà÷“QAÌT0AlL0ü“QAÌT0AlLÀý“QAÌÀ2T0AlLà”QAÌ@KT0AlL”QAÌ€}T0AlLÀ,”QAÌ€˜T0AlLÀ?”QAÌ€˜T0AlL`J”QAÌ¥T0AlL@[”QAÌÇT0AlL`c”QAÌèT0AlLk”QAÌ U0AlLàv”QAÌÀU0AlL€‚”QAÌÀ?U0AlLÀŽ”QAÌ€_U0AlL€˜”QAÌ@pU0AlLàž”QAÌ@‘U0AlL@«”QAÌ€·U0AlL€³”QAÌÅU0AlLp´”QAÌÀÝU0AlL ¶”QAÌÀV0AlLà¶”QAÌ'V0AlLÀ¶”QAÌMV0AlL`¸”QAÌ…V0AlLดQAÌÀ¥V0AlLດQAÌ@ÊV0AlLཔQAÌ@W0AlL`Æ”QAÌMW0AlL Ì”QAÌ@ŠW0AlL@Ñ”QAÌÇW0AlLð×”QAÌ@ÞW0AlL€Ú”QAÌ€X0AlL0á”QAÌ€AX0AlLÀæ”QAÌ€UX0AlL°é”QAÌ@X0AlLÀï”QAÌÀÒX0AlLþ”QAÌ +Y0AlLp•QAÌ€‚Y0AlL •QAÌïY0AlL` •QAÌ€Z0AlL '•QAÌÀYZ0AlL€.•QĄZ0AlL€:•QAÌ@ùZ0AlLF•QAÌ€P[0AlL@R•QAÌ€—[0AlL`^•QAÌò[0AlLj•QAÌ]\0AlL v•QAÌ@Ï\0AlLÀƒ•QAÌ€]0AlL€Ž•QAÌ]0AlLà•QAÌ@$]0AlLÀ“•QAÌ€f]0AlLà›•QA̹]0AlL€§•QAÌ@^0AlLà°•QAÌ$^0AlL`±•QAÌ@o^0AlLÀ¹•QAÌ€­^0AlLàÀ•QAÌß^0AlL€Ä•QAÌ!_0AlL Æ•QAÌ|_0AlL€Ç•QAÌ€Ç_0AlL Ë•QAÌÀ`0AlL Ï•QAÌ:`0AlLÏ•QAÌ@``0AlL€Ï•QAÌ€2a0AlLΕQAÌ0AlL€¼|QAÌ€D>0AlL Ã|QAÌÀw>0AlL€Ç|QAÌ€¦>0AlLàÉ|QAÌ@Ê>0AlL@Î|QAÌ@ê>0AlLàÖ|QAÌ÷>0AlLàß|QAÌÀ÷>0AlLàê|QAÌþ>0AlL`õ|QAÌ ?0AlL ü|QAÌ@.?0AlL}QAÌÀU?0AlL€ }QẢ?0AlLà}QAÌ€²?0AlL }QAÌ€é?0AlL`}QAÌ@%@0AlLÀ"}QAÌ€DA0AlL€^}QAÌ@r?0AlLÀ¯}QAÌ@f?0AlL »}QAÌ\?0AlLÀÅ}QAÌ@ <0AlL@µ}QAÌÀý:0AlLÀò}QAÌÀÐ:0AlL@ô}QAÌÀ·:0AlL õ}QAÌÀl:0AlL`Ù}QAÌ€}:0AlLàÖ}QAÌÀö;0AlLÀ}QAÌ€ 90AlLÀZ}QAÌb80AlL€š}QAÌÀq70AlL q}QAÌ@ë60AlL@h}QAÌÀÉ60AlL@m}QAÌ60AlL@v}QAÌ€`60AlLàd}QAÌ@ï50AlL `}QAÌ€ù60AlL`â|QAÌ "70AlLØå|QAÌ@870AlLÀç|QAÌ\70AlL€ø|QAÌ@«70AlL`}QAÌÀÜ70AlL }QAÌ€80AlL`}QAÌÀ?80AlL`"}QAÌ€s80AlLà.}QAÌ@™80AlLà8}QAÌÀË80AlL I}QAÌ€ï80AlLS}QAÌ€ 90AlLÀZ}QA  ˜¶¸.AlL0¼QA˜€ä/AlL ÇQA‘˜ÉÕ.AlL0¯ÆQA˜Ö.AlL¯ÆQA˜WÖ.AlL ¯ÆQA˜Ö.AlLp¯ÆQA˜áÖ.AlL0®ÆQA˜€$×.AlLÀ¬ÆQA˜€k×.AlL`«ÆQA˜€£×.AlL«ÆQA˜å×.AlL ªÆQA˜Ø.AlL@ªÆQA˜ÜØ.AlLp§ÆQA˜€ Ù.AlL¦ÆQA˜‹Ù.AlLP¦ÆQA˜uÚ.AlLà¡ÆQA˜€æÚ.AlLŸÆQA˜€ZÛ.AlLpœÆQA˜ÝÛ.AlL@›ÆQA˜€lÜ.AlL°šÆQA˜ÓÜ.AlLà–ÆQA˜,Ý.AlL°“ÆQA˜€ÌÝ.AlL@•ÆQA˜€bß.AlLÐÆQA˜ à.AlL€ÆQA˜€yà.AlLÐŒÆQA˜€Ïà.AlL€ÆQA˜€<â.AlLðŠÆQA˜^â.AlL ‹ÆQA˜€wâ.AlL€ŠÆQA˜€ â.AlLPŠÆQA˜€Îâ.AlL‰ÆQA˜€þâ.AlL`ŠÆQA˜€7ã.AlLàˆÆQA˜€ã.AlLˆÆQA˜Êã.AlL@‡ÆQA˜€÷ã.AlL‡ÆQA˜€ ä.AlL0‡ÆQA˜Lä.AlL‡ÆQA˜ˆä.AlLÀ‡ÆQA˜€Êä.AlLЇÆQA˜€å.AlLˆÆQA˜eæ.AlLP„ÆQA˜Kç.AlLЂÆQA˜€äç.AlLÐÆQA˜€Iè.AlL0‚ÆQA˜€¤è.AlL€ÆQA˜éè.AlL €ÆQA˜)é.AlL0€ÆQA˜€—é.AlL ~ÆQA˜îé.AlL@~ÆQA˜€Uê.AlLÆQA˜Öê.AlL ÆQA˜€Aë.AlLà€ÆQA˜êë.AlLzÆQA˜€Ÿì.AlL |ÆQA˜€í.AlLÐyÆQA˜tí.AlLÐzÆQA˜®í.AlL`{ÆQA˜€î.AlL`|ÆQA˜€Iî.AlL0|ÆQA˜‰î.AlLÀ|ÆQA˜€±î.AlL |ÆQA˜èî.AlL |ÆQA˜7ï.AlLp{ÆQA˜~ï.AlLÀzÆQA˜€»ï.AlL zÆQA˜õï.AlL yÆQA˜€0ð.AlLPxÆQA˜€sð.AlLÀyÆQA˜€¸ð.AlL°wÆQA˜€óð.AlLyÆQA˜€Añ.AlLxÆQA˜‚ñ.AlL yÆQA˜¾ñ.AlLPyÆQA˜ïñ.AlLpyÆQA˜Yò.AlL0xÆQA˜€™ò.AlLpyÆQA˜ëò.AlLÐxÆQA˜€;ó.AlL€wÆQA˜•ó.AlLðvÆQA˜äó.AlLPvÆQA˜€-ô.AlL uÆQA˜aô.AlLpvÆQA˜‘ô.AlL°vÆQA˜€²ô.AlLvÆQA˜€õ.AlLwÆQA˜€¸õ.AlL@yÆQA˜€ö.AlL wÆQA˜€<ö.AlLÀxÆQA˜€yö.AlLÐvÆQA˜€²ö.AlLwÆQA˜çö.AlLÀuÆQA˜€ ÷.AlLuÆQA˜*÷.AlL0uÆQA˜b÷.AlL`wÆQA˜€–÷.AlLPyÆQA˜Ê÷.AlL@yÆQA˜ø.AlLxÆQA˜€ø.AlL°vÆQA˜€Pø.AlLðvÆQA˜‹ø.AlLðvÆQA˜Àø.AlLpwÆQA˜€ýø.AlL wÆQA˜)ù.AlLàwÆQA˜cù.AlL°vÆQA˜€®ù.AlL°yÆQA˜€áù.AlL yÆQA˜€ú.AlLÀxÆQA˜Hú.AlL0yÆQA˜€{ú.AlLÐyÆQA˜€·ú.AlL`yÆQA˜€ôú.AlL`zÆQA˜€Bû.AlL`{ÆQA˜€£û.AlLyÆQA˜€ü.AlLÐzÆQA˜Vü.AlL0{ÆQA˜šü.AlLðzÆQA˜€Ëü.AlL{ÆQA˜€ûü.AlLPzÆQA˜€$ý.AlL€}ÆQA˜€iý.AlLÀ{ÆQA˜£ý.AlL}ÆQA˜€ìý.AlL@}ÆQA˜€3þ.AlL€~ÆQA˜€kþ.AlL€~ÆQA˜¢þ.AlLP~ÆQA˜éþ.AlLÀ}ÆQA˜ÿ.AlL0~ÆQA˜€Rÿ.AlLàÆQA˜‡ÿ.AlLÆQA˜Àÿ.AlL°ÆQA˜€/AlL‚ÆQA˜€[/AlL°ÆQA˜Ä/AlLð€ÆQA˜€ /AlL@‚ÆQA˜h/AlL‚ÆQA˜Ö/AlL0ƒÆQA˜Œ/AlL „ÆQA˜€º/AlL0„ÆQA˜î/AlLЂÆQA˜€$/AlLPƒÆQA˜a/AlL€†ÆQA˜¯/AlL`‡ÆQA˜æ/AlLP‡ÆQA˜€/AlL ‡ÆQA˜€V/AlLPˆÆQA˜€™/AlL@‡ÆQA˜€ä/AlL`ˆÆQA˜Æ/AlLÀvÆQA˜€“/AlLÀsÆQA˜%/AlL sÆQA˜€à/AlLÀoÆQA˜€¿/AlL gÆQA˜±/AlL€`ÆQA˜O/AlL]ÆQA˜€/AlL`VÆQA˜È/AlLàQÆQA˜–/AlLàLÆQA˜`/AlL BÆQA˜/AlL6ÆQA˜·/AlL@0ÆQA˜g/AlL/ÆQA˜/AlLà,ÆQA˜ñ/AlL€'ÆQA˜Ñ/AlLàÆQA˜€/AlLàÆQA˜ /AlLàÆQA˜ï/AlL ÆQA˜ž/AlL ÆQA˜€/AlLÀ ÆQA˜€’ÿ.AlL@ÆQA˜€ÿ.AlL ÆQA˜¬þ.AlL@ÆQA˜€)þ.AlL@üÅQA˜€Àý.AlL õÅQA˜\ý.AlL`ñÅQA˜€ý.AlL îÅQA˜¸ü.AlL`åÅQA˜€—ü.AlL`ÛÅQA˜†ü.AlL`ÏÅQA˜ƒü.AlL€ÃÅQA˜ƒü.AlL@¸ÅQA˜†ü.AlL «ÅQA˜”ü.AlLÀ ÅQA˜Ÿü.AlLÀ˜ÅQA˜«ü.AlL ŽÅQA˜€±ü.AlL‚ÅQA˜¼ü.AlLàvÅQA˜€¼ü.AlL@gÅQA˜Åü.AlL\ÅQA˜€Ãü.AlL¨PÅQA˜€Áü.AlLÀIÅQA˜¿ü.AlL BÅQA˜­ü.AlL`7ÅQA˜›ü.AlL )ÅQA˜€”ü.AlL€ÅQA˜€›ü.AlLÀÅQA˜Âü.AlL€ ÅQA˜àü.AlL€ÅQA˜€Æü.AlLøÄQA˜Àü.AlL ïÄQA˜Âü.AlLÀãÄQA˜ºü.AlL€ÜÄQA˜€³ü.AlL ÖÄQA˜®ü.AlL@ÃÄQA˜¸ü.AlL@¸ÄQA˜Âü.AlLÀ­ÄQA˜€ºü.AlL ¦ÄQA˜€µü.AlL@ÄQA˜€Ùü.AlL–ÄQA˜€÷ü.AlLÀ‹ÄQA˜€6ý.AlL@|ÄQA˜€Dý.AlLà[ÄQA˜€Cý.AlL@LÄQA˜€tý.AlL@CÄQA˜±ý.AlL 8ÄQA˜€Ùý.AlL€-ÄQA˜Àý.AlL $ÄQA˜€»ý.AlL@ÄQA˜€Íý.AlL  ÄQA˜äý.AlL@þÃQA˜ìý.AlLìÃQA˜€àý.AlLÀÜÃQA˜Øý.AlLàÖÃQA˜ßý.AlLÀ³ÃQA˜€Æý.AlLÀŸÃQA˜ý.AlL`‰ÃQA˜€hý.AlL`lÃQA˜[ý.AlL ]ÃQA˜Hý.AlLàIÃQA˜(ý.AlLÀ/ÃQA˜ý.AlLÀÃQA˜Üü.AlL€ÃQA˜€–ü.AlL@åÂQA˜Gü.AlL ÄÂQA˜ü.AlL@´ÂQA˜€Üû.AlL€£ÂQA˜€æû.AlL`ƒÂQA˜«û.AlL wÂQA˜€mû.AlL@rÂQA˜*û.AlLàhÂQA˜ û.AlL€_ÂQA˜ïú.AlLÀXÂQA˜€¿ú.AlL`SÂQA˜€®ú.AlL MÂQA˜€ºú.AlL BÂQA˜¨ú.AlLÀ9ÂQA˜€¨ú.AlL`*ÂQA˜¼ú.AlL€ÂQA˜æú.AlL€ÂQA˜€û.AlL þÁQA˜û.AlL€ñÁQA˜€û.AlLàßÁQA˜€þú.AlLàÍÁQA˜€ùú.AlL€ÁÁQA˜ßú.AlL ¯ÁQA˜€½ú.AlL@ ÁQA˜£ú.AlLÀ’ÁQA˜€›ú.AlL`ƒÁQA˜€€ú.AlLsÁQA˜jú.AlL@eÁQA˜Dú.AlL ^ÁQA˜€'ú.AlL@SÁQA˜€ú.AlLàJÁQA˜öù.AlL€@ÁQA˜Éù.AlL :ÁQA˜“ù.AlL2ÁQA˜€où.AlLÀ*ÁQA˜€5ù.AlLàÁQA˜€ù.AlL€ÁQA˜€Öø.AlLÁQA˜@­ø.AlLX ÁQA˜€žø.AlL ÿÀQA˜lø.AlL õÀQA˜€.ø.AlLïÀQA˜€Õ÷.AlLÀåÀQA˜€¦÷.AlLÀÛÀQA˜w÷.AlLÐÀQA˜L÷.AlL@¿ÀQA˜€òö.AlL³ÀQA˜¹ö.AlLàªÀQA˜ö.AlL`—ÀQA˜€¤ö.AlL€ŠÀQA˜€Áö.AlL@{ÀQA˜€Ïö.AlLÀlÀQA˜÷ö.AlL@_ÀQA˜÷.AlL QÀQA˜!÷.AlL <ÀQA˜€÷.AlL`+ÀQA˜ ÷.AlL@ÀQA˜÷.AlL ÀQA˜ïö.AlL`ø¿QA˜€×ö.AlLàë¿QA˜Õö.AlL€Ú¿QA˜ûö.AlL@пQA˜€÷.AlLà¿¿QA˜H÷.AlLÀ¶¿QA˜€s÷.AlL`°¿QA˜€÷.AlLàž¿QA˜Ñö.AlL€‹¿QA˜€ö.AlLàz¿QA˜ö.AlL`k¿QA˜¼õ.AlLà_¿QA˜zõ.AlL T¿QA˜€_õ.AlL J¿QA˜€2õ.AlL <¿QA˜¬ô.AlLà'¿QA˜€bô.AlLà¿QA˜"ô.AlL€ ¿QA˜€Ùó.AlL@þ¾QA˜€‡ó.AlL@ó¾QA˜.ó.AlLðç¾QA˜€ó.AlL€å¾QA˜Ìò.AlL€Û¾QA˜^ò.AlL@ξQA˜ò.AlLà¾QA˜€—ñ.AlL@±¾QA˜€ýð.AlLà¾QA˜€ð.AlL оQA˜ ð.AlL }¾QA˜€šï.AlL€l¾QA˜€4ï.AlL@]¾QA˜€îî.AlLàJ¾QA˜Óî.AlL@?¾QA˜€¼î.AlLÀ1¾QA˜€ î.AlLà"¾QA˜€fî.AlLÀ ¾QA˜î.AlL¾QA˜€·í.AlLàì½QA˜zí.AlL@ݽQA˜€Sí.AlL€Ë½QA˜€%í.AlLÀ±½QA˜€òì.AlL –½QA˜Ôì.AlL ~½QA˜€rì.AlL€f½QA˜ì.AlL€N½QA˜Öë.AlL`>½QA˜ÿê.AlLÀ½QA˜€êê.AlL` ½QA˜€ˆê.AlL ý¼QA˜«é.AlLàʼQA˜€vé.AlL À¼QA˜Dé.AlL ³¼QA˜€é.AlL`­¼QA˜€âè.AlL ¢¼QA˜µè.AlLš¼QA˜žè.AlL€‘¼QA˜{è.AlL Š¼QA˜€Yè.AlLÀ‚¼QA˜€è.AlL@|¼QA˜çç.AlL@p¼QA˜€’ç.AlLàe¼QA˜#ç.AlL \¼QA˜€áæ.AlLW¼QA˜~æ.AlL`J¼QA˜ûå.AlL@+¼QA˜€¬å.AlL€¼QA˜€}å.AlL@ ¼QA˜À5å.AlL0¼QA˜€ùä.AlL€¼QA˜Àä.AlLp¼QA˜€µä.AlL¼QA˜yä.AlL@ ¼QA˜Oä.AlL`¼QA˜€Jä.AlL` ¼QA˜€nä.AlL`/¼QA˜}ä.AlLÀ<¼QA˜€ä.AlL I¼QA˜€xä.AlL Z¼QA˜€pä.AlLÀk¼QA˜€jä.AlL€¼QA˜0ä.AlL —¼QA˜ýã.AlLÀ¢¼QA˜€·ã.AlL€³¼QA˜€€ã.AlL࿼QA˜€Qã.AlL̼QA˜!ã.AlL`Ö¼QA˜€ðâ.AlLÛ¼QA˜Èâ.AlL`â¼QA˜•â.AlLë¼QA˜€Zâ.AlLÀ÷¼QA˜–â.AlLà½QA˜µâ.AlL@½QA˜€Øâ.AlL@ ½QA˜ã.AlLà½QA˜2ã.AlLà½QA˜Gã.AlLà!½QA˜9ã.AlLp%½QA˜2ã.AlL8'½QA˜€þâ.AlL€%½QA˜¾â.AlL#½QA˜zâ.AlL`"½QA˜€`â.AlL`+½QA˜vâ.AlLà3½QA˜€jâ.AlL`:½QA˜€>â.AlL=½QA˜â.AlL`C½QA˜€Ùá.AlL H½QA˜€}á.AlL R½QA˜Qá.AlL€V½QA˜€ôà.AlLÀ]½QA˜€Šà.AlLy½QA˜€òß.AlL€{½QA˜Œß.AlL ½QA˜€;ß.AlL ‚½QA˜lÞ.AlL`нQA˜Þ.AlLÀ޽QA˜…Ý.AlL ”½QA˜€;Ý.AlL š½QA˜ÔÜ.AlL@Ÿ½QA˜_Ü.AlL@£½QA˜êÛ.AlL€§½QA˜€`Û.AlL@¬½QA˜Û.AlLঽQA˜ÁÚ.AlLࢽQA˜ZÚ.AlL`œ½QA˜€Ú.AlLॽQA˜âÙ.AlL±½QA˜žÙ.AlL ·½QA˜€DÙ.AlLÀ½QA˜òØ.AlL@ĽQA˜|Ø.AlL€Â½QA˜€Ø.AlL€Â½QA˜€×.AlL€Ä½QA˜€0×.AlL ƽQA˜×Ö.AlL Ê½QA˜gÖ.AlL ʽQA˜ Ö.AlL@ǽQA˜€žÕ.AlLÀÁ½QA˜Ö.AlL º½QA˜€üÕ.AlLÀ¸½QA˜€áÕ.AlL`µ½QA˜¯Õ.AlLൽQA˜€hÕ.AlL¹½QA˜€3Õ.AlL´½QA˜Õ.AlLÀ±½QA˜€ðÔ.AlLà­½QA˜ÆÔ.AlL«½QA˜qÔ.AlLÀ§½QA˜DÔ.AlL ¢½QA˜€Ô.AlL ™½QA˜ÛÓ.AlLà½QA˜€–Ó.AlLнQA˜EÓ.AlL€½QA˜èÒ.AlL ~½QA˜€ŒÒ.AlL „½QA˜Ð.AlL`¾½QA˜€<Î.AlL œ½QA˜0Í.AlL€º½QA˜Í.AlLÀ²½QA˜óÌ.AlL ª½QA˜€ÑÌ.AlLÀš½QA˜€èÌ.AlL`޽QA˜€åÌ.AlL@…½QA˜€ÆÌ.AlL |½QA˜˜Ì.AlLÀq½QA˜€ˆÌ.AlLi½QA˜MÌ.AlLd½QA˜€6Ì.AlLÀZ½QA˜FÌ.AlL`Q½QA˜fÌ.AlL@F½QA˜{Ì.AlLà<½QA˜’Ì.AlL€0½QA˜€©Ì.AlL #½QA˜©Ì.AlLà½QA˜ Ì.AlL½QA˜˜Ì.AlL ½QA˜šÌ.AlL@÷¼QA˜€¢Ì.AlLÀë¼QA˜€•Ì.AlL ß¼QA˜Ì.AlLàѼQA˜PÌ.AlLÀÓ¼QA˜æË.AlL@Õ¼QA˜¯Ë.AlL`Ö¼QA˜€\Ë.AlL ×¼QA˜€êÊ.AlL`Õ¼QA˜ŒÊ.AlL€Ò¼QA˜Ê.AlLÀͼQA˜€ÎÉ.AlLÀǼQA˜sÉ.AlLüQA˜É.AlLÀżQA˜ÈÈ.AlLʼQA˜mÈ.AlLÀʼQA˜Ç.AlLàļQA˜€2Ç.AlLżQA˜êÆ.AlL żQA˜¨Æ.AlLżQA˜LÆ.AlLüQA˜÷Å.AlL Á¼QA˜¹Å.AlL ½¼QA˜‚Å.AlL º¼QA˜€PÅ.AlL ¸¼QA˜Å.AlL€·¼QA˜€ŸÄ.AlL€³¼QA˜cÄ.AlL±¼QA˜FÄ.AlL௼QA˜€Ã.AlL€¤¼QA˜€PÃ.AlLࡼQA˜Ã.AlL€ž¼QA˜€¿Â.AlL ¢¼QA˜zÂ.AlL§¼QA˜€DÂ.AlL€¦¼QA˜öÁ.AlL@Ÿ¼QA˜€²Á.AlLà–¼QA˜€pÁ.AlLÀ޼QA˜€ Á.AlL ‡¼QA˜±À.AlLÀ€¼QA˜€tÀ.AlLz¼QA˜'À.AlL@u¼QA˜€Þ¿.AlL m¼QA˜©¿.AlL`i¼QA˜g¿.AlLe¼QA˜€¿.AlLàa¼QA˜€ë¾.AlL _¼QA˜€®¾.AlL \¼QA˜U¾.AlL Z¼QA˜€¾.AlLÀZ¼QA˜€Æ½.AlL`W¼QA˜½.AlLÀQ¼QA˜€D½.AlL U¼QA˜€þ¼.AlL X¼QA˜ļ.AlL X¼QA˜}¼.AlL@V¼QA˜€¼.AlLàR¼QAÈkª*é».AlL`N¼QA˜@¶».AlL€S¼QA˜Àw».AlLàS¼QA˜7».AlL T¼QA˜À».AlL`T¼QA˜€åº.AlL R¼QA˜€¶º.AlL M¼QA˜mº.AlLÀG¼QA˜*º.AlLàH¼QA˜@ã¹.AlLàP¼QA˜€Ü¹.AlLàU¼QA˜@é¹.AlLÀ[¼QA˜Àî¹.AlL@`¼QA˜ÀÞ¹.AlL c¼QA˜¯¹.AlL€m¼QA˜@„¹.AlLy¼QA˜À`¹.AlL¼QA˜ÀE¹.AlL„¼QA0cì9¹.AR##†¼QA˜@$¹.AlLмQA˜€÷¸.AlL ‘¼QA˜¶¸.AlL ˜¼QA˜θ.AlL Ÿ¼QA˜@ð¸.AlLÀ¢¼QA˜€=¹.AlL ¨¼QA˜m¹.AlLà°¼QA˜k¹.AlL໼QA˜U¹.AlL€Â¼QA˜@C¹.AlL Ì¼QA˜>¹.AlL Õ¼QA˜€-¹.AlL`è¼QA˜@4¹.AlL@ù¼QA˜M¹.AlL ½QA˜€g¹.AlLà½QA˜@€¹.AlLà$½QA˜Àº¹.AlLÀ(½QA˜€º.AlLÀ)½QA˜_º.AlL`)½QA˜€‹º.AlL`0½QA˜@yº.AlLÀ;½QA˜@Yº.AlLB½QA˜%º.AlL`I½QA˜ º.AlL N½QA¸½b)õ¹.AFh|åU½QA˜€é¹.AlL Y½QA˜@ç¹.AlL d½QA˜€º.AlL z½QA˜º.AlLÀ‡½QA˜À"º.AlL•½QA˜Yº.AlL£½QA˜@uº.AlLª½QA˜ªº.AlL`´½QA˜Àºº.AlL¾½QA˜@³º.AlL@ĽQA˜@º.AlLàѽQA˜@„º.AlL€Þ½QA˜€ˆº.AlL@å½QA˜Àeº.AlL ñ½QA˜@^º.AlL`þ½QA˜pº.AlL¾QA˜šº.AlL` ¾QA˜€Äº.AlLà¾QA˜À ».AlLÀ¾QA˜€7».AlLÀ%¾QA˜À{».AlL 0¾QA˜€©».AlLà?¾QA˜@­».AlLO¾QA˜€¦».AlL€^¾QA˜Ý».AlL^¾QA˜,¼.AlL Y¾QA˜м.AlLàV¾QA˜À˼.AlLÀT¾QA˜½.AlLàL¾QA˜@0½.AlL€I¾QA˜@н.AlLàF¾QA˜€æ½.AlL K¾QA˜@.¾.AlL€O¾QA˜Àž¾.AlL W¾QA˜ÀÓ¾.AlL€Y¾QA˜€3¿.AlL`^¾QA˜™¿.AlL€`¾QA˜õ¿.AlL e¾QA˜€=À.AlLÀk¾QA˜ÀrÀ.AlLn¾QA˜€·À.AlLàp¾QA˜Á.AlLÀw¾QA˜@BÁ.AlLà~¾QA˜@hÁ.AlL€†¾QA˜À}Á.AlL¾QA˜ÀŠÁ.AlL€˜¾QA˜@ŒÁ.AlLÀ£¾QA˜À–Á.AlL ª¾QA˜@§Á.AlL °¾QA˜ÀÖÁ.AlLÀµ¾QA˜ÀmÂ.AlL Ã¾QA˜¥Â.AlLàȾQA˜@ñÂ.AlL`оQA˜&Ã.AlLàÖ¾QA˜€LÃ.AlL€Ý¾QA˜@Ã.AlLàã¾QA˜@ÂÃ.AlL@ß¾QA˜"Ä.AlL`Ù¾QA˜ÀXÄ.AlL Ù¾QA˜@—Ä.AlLàÛ¾QA˜@ÀÄ.AlL ì¾QA˜¿Ä.AlLàõ¾QA˜@¦Ä.AlLþ¾QA˜ÀgÄ.AlL@ ¿QA˜€Ä.AlLà¿QA˜ãÃ.AlL ¿QA˜§Ã.AlL ¿QA˜€ƒÃ.AlL ¿QA˜ÀˆÃ.AlL@-¿QApÓ]UšÃ.AlL`5¿QA˜@ßÃ.AlL@7¿QA˜Ä.AlL€:¿QA˜€@Ä.AlLA¿QA˜@aÄ.AlL@G¿QA˜€Ä.AlL N¿QA˜‘Ä.AlL€Y¿QA˜£Ä.AlL€a¿QA˜€ÔÄ.AlL€j¿QA˜Å.AlL m¿QA˜eÅ.AlL@q¿QA˜ÀÃÅ.AlL q¿QA˜7Æ.AlLàw¿QA˜aÆ.AlLÀ~¿QApÓ]FÆ.Aæ‚«º‹¿QA˜@Æ.AlLÀ‘¿QA˜€éÅ.AlL ™¿QA˜€éÅ.AlL  ¿QA˜àÅ.AlLà©¿QA˜€ïÅ.AlL ²¿QA˜€%Æ.AlL@¯¿QA˜À^Æ.AlL®¿QA˜€¿Æ.AlL °¿QA˜€FÇ.AlLÀÍ¿QA˜ŽÇ.AlL Ö¿QA˜€…Ç.AlL Ý¿QA˜TÇ.AlL€ä¿QA˜À Ç.AlL ð¿QA˜Ç.AlLàö¿QA˜@Ç.AlL€ý¿QA˜€]Ç.AlL@ÀQA˜ÀŒÇ.AlL@ÀQA˜—Ç.AlL ÀQA˜Ç.AlL€ÀQA˜€kÇ.AlL@%ÀQA˜À(Ç.AlL@-ÀQA˜ÀðÆ.AlLÀ3ÀQA˜ÀöÆ.AlL ;ÀQA˜€Ç.AlLÀAÀQA˜?Ç.AlLàIÀQA˜ÀOÇ.AlLàVÀQA˜ÀuÇ.AlLÀZÀQA˜ÀžÇ.AlLà`ÀQA˜€wÇ.AlLÀiÀQA˜EÇ.AlL qÀQA˜€Ç.AlL wÀQA˜þÆ.AlLà|ÀQA˜€ãÆ.AlL „ÀQA˜€ÕÆ.AlLà‹ÀQA˜€½Æ.AlL ’ÀQA˜À±Æ.AlL`™ÀQA˜€êÆ.AlL œÀQA˜À$Ç.AlL ™ÀQA˜gÇ.AlL@ ÀQA˜4Ç.AlLÀ¨ÀQA˜@úÆ.AlL ®ÀQA˜ׯ.AlLÀ³ÀQA˜@¹Æ.AlLàºÀQA˜€¯Æ.AlLÁÀQA˜@ùÆ.AlLÆÀQA˜WÇ.AlL@¼ÀQA˜€ Ç.AlL`¾ÀQA˜þÇ.AlL€ÀÀQA˜ãÇ.AlLÉÀQA˜€ È.AlL`ÏÀQA˜ÀbÈ.AlLàÑÀQA˜À~È.AlL€ÙÀQA˜~È.AlLâÀQA˜@aÈ.AlL íÀQA˜]È.AlL õÀQA˜ÀyÈ.AlL ÁQA˜ÀÈ.AlL€ ÁQA˜@¾È.AlL`ÁQApTó¸ÒÈ.AVs1<ÁQA˜ÿÈ.AlL@ÁQA˜€AÉ.AlLÀÁQA˜€mÉ.AlL`ÁQA˜€šÉ.AlLÁQA˜€ÍÉ.AlL ÁQA˜À,Ê.AlLàýÀQA˜kÊ.AlLþÀQA˜ÀÅÊ.AlLÁQA˜ÀË.AlL`ÁQA˜@ Ë.AlL` ÁQA˜ÕÊ.AlLÁQA˜¬Ê.AlLàÁQA˜À‚Ê.AlL€ÁQA˜@wË.AlL`.ÁQA˜@Ë.AlLà5ÁQA˜gË.AlLÀ9ÁQA˜uË.AlL AÁQA˜ÁË.AlL`EÁQA˜Ì.AlL KÁQA˜@!Ì.AlL€TÁQA˜pÌ.AlL@[ÁQA˜@³Ì.AlL ]ÁQA˜ôÌ.AlL _ÁQA˜ÀÍ.AlLdÁQA˜ÀEÍ.AlL hÁQA˜@Í.AlL@mÁQA˜€ÆÍ.AlLàrÁQA˜ÿÍ.AlL vÁQA˜€"Î.AlL@{ÁQA˜@ Î.AlL@€ÁQA˜ÀØÍ.AlL ˆÁQA˜ëÍ.AlL ÁQA˜Î.AlLšÁQA˜@OÎ.AlLÀÁQA˜€Î.AlLÀ ÁQA˜¶Î.AlL¥ÁQA˜ÀØÎ.AlL «ÁQA˜ÀðÎ.AlL ²ÁQA˜À$Ï.AlL`ºÁQA˜vÐ.AlLÀ·ÁQA˜ÎÐ.AlL€¸ÁQA˜€õÐ.AlL`½ÁQA˜@Ñ.AlL@ÅÁQA˜ÀÑ.AlLÀËÁQA˜@ Ñ.AlL@ÕÁQA˜ÙÐ.AlL`åÁQA˜¹Ð.AlL`ìÁQA˜sÐ.AlLÀîÁQA˜ÀNÐ.AlLóÁQA˜+Ð.AlLÀùÁQA˜ÀËÏ.AlL óÁQA˜@œÏ.AlL ñÁQA˜@wÏ.AlLàýÁQA˜@uÏ.AlLÂQA˜@dÏ.AlL ÂQA˜JÏ.AlL ÂQA˜À!Ï.AlLàÂQA˜@ïÎ.AlL ÂQA˜€³Î.AlL ÂQA˜ÀÎ.AlL ÂQA˜GÎ.AlLàÂQA˜!Î.AlL ÂQA˜ Î.AlL@"ÂQA˜ÀùÍ.AlL +ÂQA˜À Î.AlL@6ÂQA˜-Î.AlL ;ÂQA˜mÎ.AlL@@ÂQA˜˜Î.AlL IÂQA˜‘Î.AlL UÂQA˜ÀpÎ.AlL`]ÂQA˜À^Î.AlL hÂQA˜QÎ.AlLrÂQA˜@ïÍ.AlL@{ÂQA˜@¿Í.AlLÀ}ÂQA˜À²Í.AlL@ƒÂQA˜@ÊÍ.AlL@‡ÂQA˜ðÍ.AlL€ˆÂQA˜@#Î.AlLŠÂQA˜JÎ.AlL`ÂQA˜€;Î.AlL˜ÂQA˜ÀÎ.AlL@žÂQA˜@ÓÍ.AlL€©ÂQA˜@½Í.AlL`´ÂQA˜¸Í.AlL ½ÂQA˜ÀÆÍ.AlLÀÆÂQA˜ÑÍ.AlL ÑÂQA˜ÀÖÍ.AlL€ÜÂQA˜@úÍ.AlL ìÂQA˜ÀóÍ.AlLÀ÷ÂQA˜×Í.AlL€üÂQA˜¶Í.AlL@þÂQA˜€“Í.AlLàýÂQA˜=Í.AlL úÂQA˜@Í.AlLàùÂQA˜€ÆÌ.AlL`úÂQA˜À£Ì.AlL€ûÂQA˜À‡Ì.AlL  ÃQA˜@XÌ.AlLÃQA˜2Ì.AlLÃQA˜€Ì.AlLà(ÃQA˜ÀÉË.AlL@6ÃQA˜€Ë.AlL =ÃQA˜mË.AlLHÃQA˜€1Ë.AlL@QÃQA˜€úÊ.AlLàVÃQA˜€›Ê.AlLÀ^ÃQA˜€\Ê.AlLcÃQA˜6Ê.AlLÀjÃQA˜@Ê.AlLàvÃQA˜€ Ê.AlL@ÃQA˜ÀñÉ.AlL ŽÃQA˜ÀÅÉ.AlL@•ÃQA˜–É.AlL ›ÃQA˜@jÉ.AlL€¡ÃQA˜@É.AlL€¬ÃQA˜€<É.AlL³ÃQA˜MÉ.AlL ¼ÃQA˜_É.AlLàÃÃQA˜ÀeÉ.AlL€ÑÃQA˜QÉ.AlL ÙÃQA˜6É.AlL ÞÃQA˜É.AlL äÃQA˜ùÈ.AlL€îÃQA˜€åÈ.AlL ÄQA˜ãÈ.AlLÀ<ÄQA˜€ãÈ.AlLÀBÄQA˜€É.AlL`NÄQA˜€É.AlL`SÄQA˜@QÉ.AlL YÄQA˜lÉ.AlLà_ÄQA˜rÉ.AlLÀnÄQA˜ÀrÉ.AlLxÄQA˜@kÉ.AlL@…ÄQA˜@eÉ.AlL`“ÄQA˜€jÉ.AlL€ŸÄQA˜ÀsÉ.AlL ¬ÄQA˜@•É.AlL€·ÄQA˜ÈÉ.AlL€ÁÄQA˜êÉ.AlL ÌÄQA˜€Ê.AlLÙÄQA˜7Ê.AlLàäÄQA˜+Ê.AlL`óÄQA˜ Ê.AlLàýÄQA˜ôÉ.AlL@ÅQA˜ØÉ.AlLÀÅQA˜ÀÒÉ.AlL ÅQA˜ÀßÉ.AlL@*ÅQA˜úÉ.AlL5ÅQA˜ÀÊ.AlL >ÅQA˜9Ê.AlL@IÅQA˜€dÊ.AlL UÅQA˜€‡Ê.AlLÀ^ÅQA˜€Ê.AlLÀiÅQA˜À¨Ê.AlL`uÅQA˜·Ê.AlLàÅQA˜€ÄÊ.AlL€‹ÅQA˜ÎÊ.AlL@—ÅQA˜€ÎÊ.AlLh™ÅQA˜ÏÊ.AlL€ ÅQA˜ÍÊ.AlLÀ§ÅQA˜ÀÄÊ.AlL³ÅQA˜ÃÊ.AlL¹ÅQA˜€«Ê.AlL ÆÅQA˜ÀœÊ.AlLàÎÅQA˜À•Ê.AlL ØÅQA˜@^Ê.AlLÀýÅQA˜KÊ.AlLàÆQA˜À1Ê.AlLÀ ÆQA˜Ê.AlL`ÆQA˜Ê.AlL $ÆQA˜€Ê.AlL 0ÆQA˜ Ê.AlL@>ÆQA˜@Ê.AlLàKÆQA˜€"Ê.AlLÀYÆQA˜À/Ê.AlLÀiÆQA˜@:Ê.AlL sÆQA˜UÊ.AlLÀ„ÆQA˜oÊ.AlL@ÆQAxM”à™Ê.A¾â!š¡ÆQA˜ÎÊ.AlL¯ÆQA˜€÷Ê.AlL€ºÆQA˜Ë.AlLÃÆQA˜À=Ë.AlLàÌÆQA˜€\Ë.AlL@ÓÆQA˜À³Ë.AlLÀÜÆQA˜ÄË.AlLíÆQA˜íË.AlL@ÿÆQA˜Ì.AlLp ÇQA˜'Ì.AlL ÇQA˜ÿË.AlLðøÆQA˜€ßË.AlLPìÆQA˜€ÔË.AlLÀåÆQA˜€NÌ.AlLÝÆQA˜€ÂÌ.AlL0ÕÆQA˜9Í.AlLÑÆQA˜€‰Ï.AlL@ÄÆQA˜ßÐ.AlLp¼ÆQA˜€œÑ.AlLð»ÆQA˜€ÍÓ.AlL ´ÆQA˜€éÔ.AlL@°ÆQA˜OÕ.AlL °ÆQA˜ŽÕ.AlL`¯ÆQA˜ÉÕ.AlL0¯ÆQA @˜J…/AlL -xQA˜×Ý/AlLq‚QA嘀¾/AlL c‚QA˜€f¾/AlL€W‚QA˜;/AlL`M‚QA˜€/¿/AlL E‚QA˜€¤¿/AlL€6‚QA˜Õ¿/AlL€2‚QA˜€À/AlLÀ+‚QA˜€À/AlL %‚QA˜€ºÀ/AlL€ ‚QA˜€Á/AlL ‚QA˜=Á/AlLà‚QA˜€€Á/AlL@‚QA˜ÇÁ/AlL  ‚QA˜€BÃ/AlL ôQA˜€8Ã/AlL@íQA˜Ã/AlLàÚQA˜€´Â/AlLà¼QA˜€bÂ/AlLÀ©QA˜Â/AlL QA˜€fÂ/AlL …QA˜Ã/AlL „QA˜€ÅÃ/AlLàƒQA˜8Ä/AlL „QA˜€ÔÄ/AlL`QA˜€’Å/AlL€{QA˜€ÞÒ/AlL@cQA˜€ÇÓ/AlL@dQA˜pÔ/AlLàcQA˜€ Õ/AlLÀeQA˜€¡Õ/AlLàhQA˜Ö/AlLkQA˜€Ö/AlLÀmQA˜×Ö/AlLqQA˜dØ/AlL QA˜pØ/AlL QA˜€³Ø/AlL€|QA˜€Ù/AlL vQA˜·Ù/AlL€[QA˜€ÆÚ/AlL 8QA˜ÜÛ/AlLàQA˜@õÛ/AlLà QA˜êÜ/AlL€ß€QA˜×Ý/AlL`¹€QA˜€-Ö/AlL ’QA˜€jÔ/AlL`GQA˜ŸÔ/AlL@QA˜€ÄÔ/AlL :QA˜"×/AlLàQA˜×/AlLQA˜€íÖ/AlL QA˜½Ö/AlL`QA˜}Ö/AlLQA˜7Ö/AlL ô~QA˜€Ö/AlL`ì~QA˜€Ö/AlL`ä~QA˜ÕÕ/AlL Ú~QA˜®Õ/AlL@Ñ~QA˜€rÕ/AlL È~QA˜€/Õ/AlLÀ¶~QA˜AÕ/AlL­~QA˜€NÕ/AlL £~QA˜vÕ/AlL€‡~QA˜ƒÕ/AlL€s~QA˜€­Õ/AlLV~QA˜€ÌÕ/AlL ?~QA˜áÕ/AlLÀ6~QA˜Ö/AlL@'~QA˜€1Ö/AlL`~QA˜NÖ/AlL`~QA˜Ö/AlLàì}QA˜€NÖ/AlL`Ó}QA˜€CÖ/AlLÀ¥}QA˜€¬Ö/AlL€o}QA˜€HÖ/AlLàB}QA˜®Ö/AlLà&}QA˜€·Ö/AlLà}QA˜€ÕÖ/AlL@}QA˜€ØÖ/AlL@û|QA˜ÝÖ/AlL ï|QA˜€áÖ/AlL ã|QA˜€ÛÖ/AlL€Û|QA˜€áÖ/AlL@Î|QA˜€úÖ/AlL Å|QA˜€×/AlL »|QA˜€×/AlLà¯|QA˜×/AlLÀ |QA˜€6×/AlLà’|QA˜€*×/AlL€„|QA˜€Ñ×/AlL0L|QA˜€æ×/AlLE|QA˜€!Ø/AlLD|QA˜€?Ø/AlL =|QA˜€gØ/AlL@2|QA˜dØ/AlL *|QA˜€JØ/AlLà!|QA˜€VØ/AlL |QA˜€lØ/AlL€ |QA˜\Ù/AlLÀ|QA˜€lÚ/AlL ã{QA˜€jÚ/AlLàÛ{QA˜€xÙ/AlL i{QA˜€Ú/AlLàN{QA˜€Ú/AlL H{QA˜€„Ú/AlLà?{QA˜€XÚ/AlL€7{QA˜€ÈÙ/AlL !{QA˜€ˆÙ/AlL€{QA˜€DÙ/AlL`{QA˜€øØ/AlLà{QA˜ÑØ/AlL€{QA˜€ Ø/AlL ýzQA˜|Ø/AlL@özQA˜€„Ø/AlLîzQA˜™Ø/AlL æzQA˜€ëØ/AlL€ÚzQA˜€ÔØ/AlLÕzQA˜€¥Ø/AlL ÏzQA˜€rØ/AlL ÑzQA˜+Ø/AlL ÖzQA˜€Í×/AlL ßzQA˜€†×/AlLäzQA˜€%×/AlL@ìzQA˜€†Ö/AlL özQA˜€Ö/AlL ýzQA˜€¡Õ/AlL{QA˜€ýÔ/AlL {QA˜€nÔ/AlL ÿzQA˜€Ô/AlL þzQA˜€vÓ/AlL@{QA˜îÒ/AlLÀ{QA˜€†Ò/AlL@{QA˜&Ò/AlLà{QA˜ÈÑ/AlL {QA˜€|Ñ/AlL@{QA˜€&Ñ/AlL`"{QA˜€ÞÐ/AlL%{QA˜€{Ð/AlLà({QA˜€@Ð/AlL`'{QA˜€«Ï/AlL-{QA˜yÏ/AlL/{QA˜qÏ/AlL ${QA˜€fÏ/AlL {QA˜sÏ/AlL {QA˜€‡Ï/AlL@úzQA˜€˜Ï/AlLàîzQA˜€—Ï/AlLàâzQA˜€—Ï/AlLÐßzQA˜—Ï/AlLÀ×zQA˜€ˆÏ/AlL€ÆzQA˜€hÏ/AlL ºzQA˜€\Ï/AlLà¨zQA˜€XÏ/AlL@šzQA˜BÏ/AlL‰zQA˜€Ï/AlLà|zQA˜€ûÎ/AlLszQA˜ÑÎ/AlLàhzQA˜€&Ï/AlL@czQA˜€Ï/AlL@TzQA˜€×Ï/AlL IzQA˜6Ð/AlL ?zQA˜€ŠÐ/AlL€0zQA˜€Ñ/AlL zQA˜€qÑ/AlL`zQA˜€ÕÑ/AlLàzQA˜€}Ò/AlL èyQA˜€ÙÒ/AlL`ÝyQA˜€/Ó/AlL@ÐyQA˜€‡Ó/AlL€ÆyQA˜€ÛÓ/AlLà¼yQA˜€:Ô/AlL`±yQA˜¤Ô/AlL€¤yQA˜ðÔ/AlL`šyQA˜€Õ/AlL ‘yQA˜€>Õ/AlL ˆyQA˜€qÕ/AlL@yQA˜¡Õ/AlL yyQA˜€âÕ/AlLàpyQA˜€Ö/AlL@gyQA˜€€Ö/AlLàXyQA˜€×Õ/AlL QyQA˜€ªÕ/AlL@OyQA˜€`Õ/AlL KyQA˜€Õ/AlL@JyQA˜€çÔ/AlLKyQA˜€³Ô/AlL`JyQA˜€`Ô/AlL`GyQA˜€'Ô/AlL EyQA˜€åÓ/AlLÀ=yQA˜®Ó/AlL€5yQA˜€oÓ/AlL`.yQA˜'Ó/AlL@'yQA˜€ÎÒ/AlL "yQA˜€aÒ/AlL€yQA˜€Ò/AlLÀyQA˜€ÃÑ/AlLÀyQA˜€IÑ/AlL yQA˜€æÐ/AlL€yQA˜€dÐ/AlL ÿxQA˜èÏ/AlL€ûxQA˜€LÏ/AlLàøxQA˜€ÅÎ/AlL@õxQA˜€TÎ/AlLÀòxQA˜€ÎÍ/AlL íxQA˜0Í/AlL`åxQA˜€ÀÌ/AlL ßxQA˜€MÌ/AlL ÙxQA˜€½Ë/AlLàÏxQA˜gË/AlL ÈxQA˜€ôÊ/AlL¾xQA˜€’Ê/AlL ¸xQA˜€:Ê/AlL`³xQA˜€ Ê/AlL0±xQA˜€úÉ/AlL@°xQA˜€vÉ/AlL`ªxQA˜€É/AlL¢xQA˜€äÈ/AlL€xQA˜ŽÈ/AlL—xQA˜€5È/AlLÀxQA˜€ïÇ/AlL€ŠxQA˜€|Ç/AlLÀ~xQA˜õÆ/AlL`{xQA˜©Æ/AlLàyxQA˜iÆ/AlL yxQA˜€,Æ/AlL zxQA˜€ùÅ/AlL`zxQA˜µÅ/AlL{xQA˜tÅ/AlL€|xQA˜€Å/AlL€~xQA˜€ËÄ/AlLà~xQA˜€vÄ/AlLà|xQA˜€=Ä/AlL ~xQA˜€øÃ/AlL@xQA˜€­Ã/AlLà…xQA˜€`Ã/AlL@ŽxQA˜Ã/AlL˜xQA˜€µÂ/AlL xQA˜€gÂ/AlLÀ£xQA˜"Â/AlLÀ©xQA˜€·Á/AlL ­xQA˜ŠÁ/AlL@³xQA˜hÁ/AlL@½xQA˜CÁ/AlL@ÂxQA˜Á/AlLàÊxQA˜rÀ/AlL`ÅxQA˜À/AlLÀÂxQA˜€—¿/AlL@ÀxQA˜€=¿/AlL€»xQA˜<¾/AlLà°xQA˜€½½/AlL@¬xQA˜I½/AlLÀ¨xQA˜á¼/AlL`§xQA˜€“¼/AlL¦xQA˜€D¼/AlL€£xQA˜€Þ»/AlL ¡xQA˜€m»/AlL ŸxQA˜€%»/AlL›xQA˜€Äº/AlLà—xQA˜¸º/AlL—xQA˜¬º/AlL–xQA˜€~º/AlLÀ’xQA˜,º/AlLŒxQA˜€›¹/AlLà€xQA˜€¦¸/AlLÀpxQA˜€Q¸/AlL€nxQA˜€õ·/AlL ixQA˜·/AlL@hxQA˜j·/AlLhxQA˜€9·/AlL@gxQA˜€ý¶/AlLgxQA˜€‘¶/AlLàexQA˜\¶/AlLàdxQA˜€"¶/AlL`cxQA˜Þµ/AlL@cxQA˜kµ/AlL`xQA˜€õ´/AlL@]xQA˜€r´/AlL ZxQA˜€´/AlL@VxQA˜©³/AlL SxQA˜€X³/AlLàOxQA˜€ø²/AlLÀOxQA˜€…²/AlL€LxQA˜€S²/AlLàKxQA˜€"²/AlL LxQA˜è±/AlL`MxQA˜€x±/AlL€NxQA˜F±/AlLÀNxQA˜±/AlLàOxQA˜€Ä°/AlL€TxQA˜a°/AlL YxQA˜°/AlL axQA˜ú¯/AlL^xQA˜€ë¯/AlL`WxQA˜€°/AlL LxQA˜€.°/AlLàDxQA˜€Q°/AlLà>xQA˜€Z°/AlL`5xQA˜€<°/AlL .xQA˜ °/AlL -xQA˜€É¯/AlL`/xQA˜n¯/AlLÀ0xQA˜€8¯/AlL 0xQA˜ú®/AlL@/xQA˜€¾®/AlL.xQA˜ƒ®/AlL0xQA˜I®/AlL3xQA˜2®/AlLP4xQA˜€®/AlL@6xQA˜€Ò­/AlL€:xQA˜€•­/AlL>xQA˜€T­/AlL€CxQA˜€­/AlLGxQA˜€Ø¬/AlL€IxQA˜€›¬/AlLÀMxQA˜€,¬/AlL SxQA˜€º«/AlLàWxQA˜€Œ«/AlL[xQA˜€V«/AlL@_xQA˜€«/AlL`xQA˜€Õª/AlL€bxQA˜€Zª/AlLˆ`xQA˜€$ª/AlL _xQA˜€¯©/AlLà^xQA˜©/AlLÀ_xQA˜E©/AlL€_xQA˜©/AlL@^xQA˜¢¨/AlLÀWxQA˜b¨/AlL€WxQA˜3¨/AlL \xQA˜€¨/AlL€`xQA˜½§/AlL bxQA˜|§/AlL`cxQA˜7§/AlL@dxQA˜€Ä¦/AlL@gxQA˜y¦/AlL`ixQA˜!¦/AlL exQA˜€³¥/AlL cxQA˜p¥/AlL axQA˜è¤/AlL _xQA˜”¤/AlL _xQA˜H¤/AlLbxQA˜€í£/AlLÀexQA˜€®£/AlLÀfxQA˜£/AlL exQA˜€F£/AlLàexQA˜ £/AlL`gxQA˜€Ç¢/AlLixQA˜ƒ¢/AlLàexQA˜€s¢/AlL`wxQA˜€¢/AlL {xQA˜€”¡/AlL@~xQA˜é /AlL‚xQA˜¡ /AlL ‚xQA˜€9 /AlL€ƒxQA˜êŸ/AlL …xQA˜€‰Ÿ/AlL€ˆxQA˜9Ÿ/AlL ŒxQA˜€Ÿ/AlL`xQA˜áž/AlL xQA˜€¥ž/AlL`”xQA˜…ž/AlLà˜xQA˜dž/AlL€¥xQA˜€dž/AlLÀ«xQA˜€až/AlLÀ´xQA˜Kž/AlL ¼xQA˜ž/AlL@ÅxQA˜€ÿ/AlL ÍxQA˜Õ/AlL€ÕxQA˜€­/AlLÀÚxQA˜`/AlL@ÜxQA˜€*/AlL ÛxQA˜€òœ/AlLàÚxQA˜€°œ/AlLÚxQA˜cœ/AlL`ÜxQA˜3œ/AlLßxQA˜ý›/AlL€áxQA˜€¾›/AlL@âxQA˜€m›/AlLÀâxQA˜;›/AlLàâxQA˜›/AlLàâxQA˜sš/AlL åxQA˜€š/AlL èxQA˜µ™/AlLàðxQA˜€K™/AlL ïxQA˜æ˜/AlLíxQA˜[˜/AlL€æxQA˜€æ—/AlL€ÞxQA˜‰—/AlL ÕxQA˜'—/AlL€ÍxQA˜Û–/AlLÅxQA˜v–/AlL ·xQA˜€%–/AlL ¬xQA˜€–/AlL«xQA˜Ñ•/AlLà¨xQA˜€m•/AlL§xQA˜ •/AlL ¦xQA˜”/AlLà¨xQA˜?”/AlL «xQA˜€í“/AlL®xQA˜v“/AlL`¯xQA˜€“/AlL ±xQA˜~’/AlL ´xQA˜€’/AlL·xQA˜©‘/AlL€ºxQA˜(‘/AlL »xQA˜€ü/AlL€¶xQA˜€à/AlL€¯xQA˜€®/AlL€£xQA˜€j/AlL`¢xQA˜/AlLÀ¢xQA˜Ç/AlL€£xQA˜l/AlL@¤xQA˜8/AlL€§xQA˜€ìŽ/AlL`©xQA˜€‘Ž/AlL ªxQA˜CŽ/AlL ¦xQA˜€Ž/AlL £xQA˜€À/AlL€ŸxQA˜†/AlL€›xQA˜€Q/AlL˜xQA˜€ýŒ/AlL€xQA˜ÅŒ/AlL@‰xQA˜ŽŒ/AlL xQA˜€wŒ/AlL@yxQA˜eŒ/AlLÀnxQA˜€AŒ/AlL _xQA˜È‹/AlL``xQA˜h‹/AlLcxQA˜ÿŠ/AlL gxQA˜€¦Š/AlLàjxQA˜LŠ/AlL uxQA˜ý‰/AlL€}xQA˜€ª‰/AlLàˆxQA˜€L‰/AlLà’xQA˜‰/AlLÀšxQA˜Òˆ/AlL@¥xQA˜0ˆ/AlLÀxQA˜ò‡/AlLÀÊxQA˜€Á‡/AlL ÒxQA˜€R‡/AlL@ÝxQA˜ý†/AlL@éxQA˜ņ/AlL`ðxQA˜€¤†/AlL ùxQA˜€y†/AlL`yQA˜€i†/AlL@yQA˜€V†/AlLPyQA˜€Q†/AlL`yQA˜€K†/AlL (yQA˜=†/AlL 4yQA˜A†/AlL€ByQA˜€6†/AlLRyQA˜þ…/AlL@]yQA˜¸…/AlLgyQA˜€Œ…/AlLtyQA˜€d…/AlLƒyQA˜J…/AlL@‘yQA˜€P…/AlL`ŸyQA˜€h…/AlL@ªyQA˜€–…/AlL`¶yQA˜¾…/AlL°ÆyQA˜É…/AlL@ËyQA˜€é…/AlLàÕyQA˜€Ü…/AlLâyQA˜€†/AlL êyQA˜K†/AlL ôyQA˜{†/AlL@üyQA˜€¼†/AlL zQA˜õ†/AlL@zQA˜Y‡/AlLà"zQA˜‡‡/AlL .zQA˜–‡/AlL 7zQA˜™‡/AlLàCzQA˜‡‡/AlL OzQA˜„‡/AlLÐSzQA˜|‡/AlLà_zQA˜u‡/AlLàozQA˜€‡/AlLÀyzQA˜‘‡/AlL‚zQA˜€†‡/AlL ‰zQA˜c‡/AlL “zQA˜€H‡/AlL€œzQA˜€2‡/AlL ¦zQA˜‡/AlL@°zQA˜€‡/AlLÀ¹zQA˜€‡/AlL@ÃzQA˜€‡/AlLÎzQA˜ ‡/AlL ØzQA˜€‡/AlLàzQA˜€%‡/AlL ézQA˜€%‡/AlL€ôzQA˜‡/AlL€ûzQA˜€Ò†/AlL`{QA˜€-‡/AlLÀ{QA˜€N‡/AlL€{QA˜€~‡/AlL{QA˜€ ‡/AlL@&{QA˜€Ê‡/AlL€1{QA˜ý‡/AlL€<{QA˜ˆ/AlL@G{QA˜€!ˆ/AlL Q{QA˜9ˆ/AlL Y{QA˜Lˆ/AlL`_{QA˜™ˆ/AlL e{QA˜ψ/AlL@f{QA˜ÿˆ/AlLÀg{QA˜€‰/AlLÀr{QA˜'‰/AlL |{QA˜€3‰/AlL ‡{QA˜€I‰/AlL`’{QA˜U‰/AlL›{QA˜€i‰/AlL¡{QA˜–‰/AlL`«{QA˜€º‰/AlLÀ²{QA˜ú‰/AlLà»{QA˜€ Š/AlL@Â{QA˜€>Š/AlLÊ{QA˜€^Š/AlL`Ñ{QA˜²Š/AlL`Ú{QA˜ýŠ/AlLà{QA˜°‹/AlL ï{QA˜€ñ‹/AlLÀ÷{QA˜/Œ/AlL`|QA˜€@Œ/AlLà|QA˜€<Œ/AlL@#|QA˜€HŒ/AlL 8|QA˜_Œ/AlL B|QA˜€nŒ/AlL N|QA˜€~Œ/AlL`V|QA˜˜Œ/AlL`b|QA˜±Œ/AlL k|QA˜€ÄŒ/AlL`w|QA˜€ÚŒ/AlL |QA˜/AlLÀ‡|QA˜o/AlLÀ‘|QA˜€Ã/AlL@™|QA˜€ Ž/AlL Ÿ|QA˜UŽ/AlLà¦|QA˜€ªŽ/AlL ¯|QA˜€2/AlLà¸|QA˜€u/AlL@Â|QA˜€’/AlL Ï|QA˜˜/AlLàÚ|QA˜º/AlL€é|QA˜€ý/AlLö|QA˜QA˜€Ê£/AlL GQA˜ë£/AlLÀTQA˜¤/AlL]QA˜€m¤/AlLdQA˜€Á¤/AlL@oQA˜¥/AlL|QA˜€¹¥/AlLQA˜ý¥/AlLà‚QA˜D¦/AlL€…QA˜p¦/AlLàŒQA˜“¦/AlL€’QA˜À̦/AlL —QA˜€ §/AlLžQA˜S§/AlLÀ¦QA˜v§/AlL °QA˜§/AlL ºQA˜€Ã§/AlL ÁQA˜€ð§/AlLÇQA˜6¨/AlL`ÏQA˜‰¨/AlLÀÙQA˜€¦¨/AlLâQA˜€Ò¨/AlL`éQA˜€ ©/AlL€îQA˜€?©/AlL@÷QA˜^©/AlL€QA˜€¾©/AlL  €QA˜#ª/AlL€ €QA˜€ª/AlLà€QA˜€ «/AlL`€QA˜r«/AlL@€QA˜«/AlL@!€QA˜€¶«/AlL@,€QA˜%¬/AlL@3€QA˜€‹¬/AlL :€QA˜­/AlL@D€QA˜€­/AlL P€QA˜€S­/AlLÀ\€QA˜²­/AlL e€QA˜€÷­/AlLn€QA˜€H®/AlL€t€QA˜€¥®/AlL`z€QA˜¯/AlL`€€QA˜O¯/AlL }€QA˜Ó¯/AlL@~€QA˜F°/AlL€…€QA˜™°/AlLàŽ€QA˜Õ°/AlLà–€QA˜±/AlL`¡€QA˜€±/AlL ¬€QA˜a±/AlLÀ±€QA˜€¢±/AlL຀QA˜€(²/AlL Ä€QA˜€&³/AlL ΀QA˜s³/AlL€Ð€QA˜€Ú³/AlL ЀQA˜€1´/AlLàÕ€QA˜€h´/AlL Ù€QA˜¦´/AlLÀÚ€QA˜€è´/AlLÝ€QA˜ó´/AlLÀæ€QA˜€ µ/AlLàì€QA˜Jµ/AlL@ñ€QA˜pµ/AlL ù€QA˜’µ/AlL€QA˜ˆµ/AlLàQA˜€ µ/AlL QA˜€´µ/AlLàQA˜€Åµ/AlL`QA˜€ßµ/AlL #QA˜»µ/AlL+QA˜³µ/AlL@1QA˜×µ/AlL`9QA˜€ºµ/AlLÀDQA˜‹µ/AlL NQA˜[µ/AlLUQA˜€Wµ/AlLZQA˜€Rµ/AlL@aQA˜vµ/AlL`mQA˜€`µ/AlL@wQA˜sµ/AlL@„QA˜€Üµ/AlLà‰QA˜€¶/AlLQA˜€6¶/AlLÀ–QA˜€„¶/AlL€—QA˜€¶¶/AlL ›QA˜ç¶/AlLàQA˜€·/AlLÀ£QA˜=·/AlL ­QA˜€K·/AlL`¸QA˜I·/AlL ¿QA˜‘·/AlL@ÄQA˜€¨·/AlL€ÌQA˜€â·/AlL`ÕQA˜ð·/AlLÝQA˜€'¸/AlL€éQA˜€W¸/AlL€îQA˜ ¸/AlL øQA˜€Ã¸/AlL‚QA˜€÷¸/AlLÀ ‚QA˜€¹/AlL`‚QA˜€S¹/AlL ‚QA˜Œ¹/AlL@#‚QA˜ø¹/AlL $‚QA˜€Aº/AlL€%‚QA˜º/AlL+‚QA˜€Àº/AlL@0‚QA˜€ëº/AlL 5‚QA˜€ »/AlL ;‚QA˜€_»/AlL >‚QA˜“»/AlL <‚QA˜î»/AlL 8‚QA˜€?¼/AlL =‚QA˜€?¼/AlL H‚QA˜€“¼/AlL P‚QA˜€°¼/AlLÀV‚QA˜ϼ/AlL€`‚QA˜½/AlL`_‚QA˜/½/AlLàd‚QA˜€f½/AlL j‚QA˜€¢½/AlL k‚QA˜Ľ/AlLq‚QA˜€Ý½/AlLài‚QA˜€¾/AlL c‚QA  (·ròïê.Aî¿FЀQA˜€X#/AlL-ŠQA˜€çþ.AlLÀ¹‰QA˜€èþ.AlL€©‰QA˜€ÿ.AlLÀœ‰QA˜€Iÿ.AlLà’‰QA˜yÿ.AlL@†‰QA˜€šÿ.AlL}‰QA˜Êÿ.AlL s‰QA˜€øÿ.AlL`h‰QA˜€/AlL`X‰QA˜€/AlLN‰QA˜/AlLà=‰QA˜1/AlL *‰QA˜€Z/AlL` ‰QA˜€z/AlLà‰QA˜€–/AlL€‰QA˜€´/AlLÀ‰QA˜€Ó/AlL@‰QA˜€ÿ/AlL€õˆQA˜€/AlL€îˆQA˜€;/AlLàˆQA˜€\/AlL`ЈQA˜€v/AlL€ÅˆQA˜€–/AlL€ºˆQA˜€´/AlL€¬ˆQA˜€á/AlL€™ˆQA˜€ù/AlLàŽˆQA˜€*/AlLƒˆQA˜€R/AlLÀxˆQA˜k/AlL hˆQA˜€Ž/AlL WˆQA˜€µ/AlL KˆQA˜€’/AlLÐEˆQA˜S/AlL@DˆQA˜ /AlL@BˆQA˜/AlL€<ˆQA˜€/AlL /ˆQA˜€/AlL@$ˆQA˜€&/AlL`ˆQA˜€}/AlLÀÿ‡QA˜€²/AlL ÷‡QA˜€à/AlL@ð‡QA˜€/AlL é‡QA˜O/AlL`á‡QA˜€„/AlLÀ؇QA˜ž/AlL Î‡QA˜€™/AlLÀÀ‡QA˜€ž/AlLµ‡QA˜€ /AlL€©‡QA˜Ì/AlL ‡QA˜í/AlL€—‡QA˜ÿ/AlL`‡QA˜ /AlLÀ…‡QA˜+/AlLàz‡QA˜€]/AlL€o‡QA˜€„/AlLàf‡QA˜€œ/AlLÀ_‡QA˜€«/AlL V‡QA˜€¥/AlLP‡QA˜€©/AlLÀH‡QA˜€/AlL H‡QA˜R/AlLàE‡QA˜€¢/AlL C‡QA˜€Ð/AlLÀ>‡QA˜€Â/AlL@8‡QA˜€¨/AlL@0‡QA˜€â/AlL@*‡QA˜€/AlL "‡QA˜€/AlLà‡QA˜€;/AlL ‡QA˜€P/AlL ø†QA˜k/AlL ð†QA˜€Ÿ/AlL@å†QA˜€Ð/AlL`Ù†QA˜€ý/AlL ̆QA˜t/AlL€Å†QA˜€/AlL°Á†QA˜€‰/AlLÀ¾†QA˜€ /AlLආQA˜ã/AlLÀ«†QA˜€/AlLÀ¦†QA˜€</AlLàž†QA˜[/AlL —†QA˜€p/AlLÀŒ†QA˜€+/AlLà††QA˜€Ò/AlL …†QA˜€c/AlL †QA˜€ /AlLà€†QA˜€è/AlL€z†QA˜€è/AlLÀs†QA˜)/AlLÀk†QA˜€€/AlL€g†QA˜Ò/AlLàd†QA˜€6/AlLa†QA˜€|/AlL`[†QA˜€/AlL€Q†QA˜€M/AlLÀB†QA˜€/AlL@6†QA˜á/AlL %†QA˜€À/AlL †QA˜€ý/AlL †QA˜€;/AlL †QA˜€H/AlL †QA˜€/AlL@î…QA˜€·/AlL Ô…QA˜€˜/AlLÀÇ…QA˜€¨/AlL`Å…QA˜€¼/AlL@Á…QA˜Ù/AlLÀ½…QA˜€ô/AlLà»…QA˜€/AlL`º…QA˜€>/AlL ¹…QA˜€j/AlLÀ·…QA˜€Ç/AlL µ…QA˜á/AlL@´…QA˜# /AlLà°…QA˜€= /AlL°…QA˜€l /AlLଅQA˜€| /AlL ª…QA˜€„ /AlL §…QA˜€v /AlL€¤…QA˜[ /AlL  …QA˜€9 /AlLà…QA˜€ /AlL`œ…QA˜€Ì/AlLà˜…QA˜€’/AlLà”…QA˜€w/AlLà‘…QA˜€J/AlL`Ž…QA˜-/AlL`‹…QA˜€/AlL`‡…QA˜€ã/AlL`…QA˜¿/AlLày…QA˜€¹/AlL@w…QA˜½/AlL r…QA˜€Ä/AlL€o…QA˜€Ë/AlLàl…QA˜€Ò/AlLài…QA˜€Ø/AlLh…QA˜€ /AlLÀh…QA˜€!/AlLàf…QA˜\/AlL@i…QA˜§/AlLm…QA˜Ø/AlL`n…QA˜ /AlL€e…QA˜g /AlLàX…QA˜€œ /AlL`K…QA˜€Ð /AlLà?…QA˜€î /AlL7…QA˜€ /AlLÀ0…QA˜€ /AlL@*…QA˜€ /AlLÀ#…QA˜€ /AlLà …QA˜€ /AlL …QA˜€ô /AlL€…QA˜€´ /AlL…QA˜€U /AlL …QA˜€ /AlLà…QA˜€ /AlL ý„QA˜€å/AlLú„QA˜€Ø/AlLø„QA˜É/AlL õ„QA˜€¯/AlL`è„QA˜€Š/AlLÀׄQA˜€p/AlLàÇ„QA˜[/AlL ¼„QA˜²/AlL ¸„QA˜€ê/AlL@¯„QA˜×/AlL`¬„QA˜€Â/AlL€¨„QA˜€¯/AlL€£„QA˜‰/AlLàž„QA˜€n/AlL š„QA˜€T/AlL—„QA˜G/AlL”„QA˜;/AlL‘„QA˜€!/AlL€Œ„QA˜€ø/AlLÀ‰„QA˜€ã/AlLÀ‡„QA˜€Ð/AlL@†„QA˜½/AlL€ƒ„QA˜€¶/AlL`€„QA˜€Â/AlLx„QA˜€Ò/AlL q„QA˜/AlLà`„QA˜€€/AlL N„QA˜¡/AlLJ„QA˜€¼/AlL D„QA˜€Í/AlL @„QA˜ù/AlL ;„QA˜€" /AlL 6„QA˜€Ÿ /AlL"„QA˜ç /AlLÀ„QA˜û /AlL`„QA˜€f /AlLÀ „QA˜Ë /AlL„QA˜á /AlL äƒQA˜€ã /AlLáƒQA˜€ë /AlL ŃQA˜€ì /AlLà°ƒQA˜€ä /AlLàšƒQA˜€Ô /AlL ˆƒQA˜€ó /AlL`ƒQA˜€¡ /AlL zƒQA˜€! /AlL xƒQA˜z /AlL`wƒQA˜€– /AlL`{ƒQA˜€¶ /AlL€ƒQA˜€ /AlL „ƒQA˜ /AlLà„ƒQA˜T /AlLà„ƒQA˜€t /AlLà„ƒQA˜€´ /AlL€ƒQA˜/AlLsƒQA˜€?/AlL@hƒQA˜€n/AlLUƒQA˜€±/AlLEƒQA˜ë/AlLà0ƒQA˜€/AlL@#ƒQA˜€z/AlL`(ƒQA˜€Ó/AlLà*ƒQA˜€H/AlL2ƒQA˜Ç/AlLà<ƒQA˜€"/AlL`EƒQA˜‰/AlL PƒQA˜€Ý/AlLà[ƒQA˜€3/AlL@dƒQA˜€{/AlLZƒQA˜€€/AlL€PƒQA˜€þ/AlL@@ƒQA˜€\/AlL6ƒQA˜Ï/AlL@+ƒQA˜€N/AlL@#ƒQA˜€®/AlLÀƒQA˜A/AlL€ƒQA˜€ß/AlL@ý‚QA˜€”/AlL@ë‚QA˜X/AlL€Ø‚QA˜€Ö/AlL Ë‚QA˜€/AlL È‚QA˜€M/AlL€Ä‚QA˜€€/AlL Ä‚QA˜€ª/AlL Ã‚QA˜€Ô/AlL Ä‚QA˜ /AlL Æ‚QA˜€S/AlL@È‚QA˜“/AlL@Ç‚QA˜€ý/AlLÂQA˜€–/AlL°‚QA˜€*/AlL@œ‚QA˜€/AlLà‚QA˜€Ø/AlLÀ‰‚QA˜€0/AlL‡‚QA˜€¨/AlL@„‚QA˜€Û/AlLÀ‚‚QA˜/AlL}‚QA˜€_/AlL@u‚QA˜€š/AlLp‚QA˜€É/AlL`k‚QA˜€/AlLÀd‚QA˜€k/AlL Z‚QA˜€¶/AlL@R‚QA˜"/AlL J‚QA˜›/AlLàA‚QA˜€ /AlL 7‚QA˜€Š /AlL`/‚QA˜€ë /AlL '‚QA˜€¯!/AlL‚QA˜€$"/AlL€‚QA˜€‚"/AlL ‚QA˜½"/AlL€‚QA˜€ø"/AlL€‚QA˜€X#/AlL@‚QA˜€>#/AlLÀøQA˜€#/AlL ìQA˜€Ã"/AlL ãQA˜€Œ"/AlLÀÚQA˜€^"/AlL`ÒQA˜€"/AlL ÆQA˜€Ö!/AlLà¾QA˜€«!/AlLà¸QA˜€!/AlLà¿QA˜€H!/AlL ÁQA˜€÷ /AlLÀÅQA˜€½ /AlL@ÅQA˜€z /AlL ÆQA˜€/ /AlLÀÇQA˜û/AlLÀÇQA˜€ª/AlL€ÀQA˜€l/AlL¹QA˜€7/AlL¶QA˜€/AlL¸QA˜€Ò/AlLà½QA˜Æ/AlL¿QA˜€¦/AlL@ËQA˜y/AlL ÖQA˜€P/AlL€ÜQA˜€>/AlLÞQA˜€/AlL`ßQA˜ù/AlLßQA˜€Ô/AlL ÞQA˜/AlLàÙQA˜€g/AlL€×QA˜</AlL ÔQA˜€/AlL`ÑQA˜Ä/AlLàÆQAèð•<œ/Aè>±ìÀQA ‘hg/A€EÀÂQA@UÑÛ)/Aw%ÂQAκâ /AÖ®ÁQAؘ\ˆ¿/AyCÁQAؘ\hx/A42@ ÂQA°ïHøµ/AyCÁQAà¡æ‡©/A€E ¿QAˆO¿‡9/AÆŽ> ¶QA4²‡¥/AXë<@ªQA hü/A¢ÕA@ QAðŠžWM/AXë<`‘QA`¦«W©/AyC€…QA@ÝÅ÷õ/A\cH ~QAðŠžWM/AÊJàvQAxo‘÷¸/Aî¿FÀqQA¨!/‡H/A\cH qQAtVgÆ/A€E@vQAtV‡¿/AXë< {QAtVgª/A|¤9 €QAàªpg“/AÆŽ> †QAàªp‡h/AyC€QAPχ./AÊJà–QAÈêçÉ/A|¤9àžQA`¯5÷™/AyCà¡QA¸]÷e/AÆŽ>À¥QAPÏç /Aî¿Fà¨QA@æOWµ/A¢ÕAàªQAp˜í†v/AêG;@«QA]÷/AÊJ`«QA]WÕ/A€EÀªQAð“(Ww/Aî¿F¨QA8"g;/AyC€¥QA€¥öï/AÊJ@¤QAÈóžfž/AÊJ€¢QAp˜ífZ/AyC¡QA`¸¿V/AÆŽ>àœQAaÓ†â/Aî¿F šQA¨*¹f²/A\cHÀ˜QA€¥öo/AÆŽ> –QA FƆ#/AêG;`’QAHïÙVí /AÆŽ>ÀQAØÜVV­ /AyCà‰QA J‹öi /A€E`…QAj]f0 /A\cHàQA¨*¹æ /A42@ zQAXØ‘†B /AÆŽ> nQA@6† /A42@ÀdQA†jf¨ /A¢ÕA`WQA¸qöG /AêG;@SQA€Š/Vo /A|¤9àVQAhÊÓU— /AyC TQAø®Æõ»/AÆŽ>àLQA0A’Ub/A€E`EQA \Ÿõ /A\cH >QA@*Je/AXë<4QAàîjUk/AêG;€1QA(ad…Ò/AÆŽ>`0QA6õ&/A8 1QAhõZ,¥/A`ÐX/QA˜…ûdØ/A¢ÕAÀ+QAÀ.õá/A42@ "QAÁÚô@/A€EÀ"QA¨n³TQÿ.A|¤9à&QA¨n³ô­þ.AêG;@+QA˜Ž…„3þ.A8€*QA8S¦T™ý.AyCà)QAÈ7™ô'ý.AyC QAXŒô½ü.AXë< QAª’„]ü.AXë< QAª’dóû.A42@ QA8\0T‘û.A€EÀQA¨w=ôWû.A42@ QAÈ@#T5û.A|¤9À÷€QA(sxd4û.A42@€î€QA¨w=TBû.Aî¿F`ä€QA(sx„Bû.AXë<€Ø€QA?°û.A „øŠÑ€QA(sx„´ú.Aî¿FЀQA¸`õƒPú.A8 Ù€QAè Tú.Aî¿F â€QA¸`õc{ù.A42@àë€QAhDd0ù.AyC ð€QA°€ÇS¥ø.A|¤9Àÿ€QAØ)ÛcDø.A42@€QAhÎãÄ÷.A8QAè ôD÷.A42@à+QAÓîó°ö.AXë<`1QAÀiƒóõ.AÆŽ>àà4‚QAPNrƒó.A42@ R‚QAè“S½ò.Aî¿FÀi‚QAè“SKò.A|¤9 …‚QA ¥^óñ.AêG;ूQAÜxSñ.A|¤9®‚QAPWü‚zð.AyC@¿‚QA¸’ÛRÕï.A8`Ë‚QA(®èò…ï.AêG;@Ó‚QAøûJc(ï.A|¤9 Õ‚QAPWübºî.A|¤9 Ð‚QA˜Éõòaî.AXë<`É‚QAøÕ‚î.A ]6@Å‚QAˆéÇâµí.A8`Ë‚QAð$§ò¥í.AêG;àÕ‚QA¨²­b°í.AXë<€à‚QA0ŽcŽí.A€EÀê‚QAåóYí.A¢ÕA ù‚QAP`†âÕì.A8 ƒQA¸’ÛR±ì.AÆŽ> ƒQAÈ{“‚qì.A¢ÕA`ƒQAκb!ì.AêG;à%ƒQA(·rRÅë.A42@ %ƒQA_‚më.AêG; $ƒQA`@´Rë.AÆŽ> ƒQAòQbüê.AXë<`!ƒQA0l úê.A›@·%ƒQAÈ{“âøê.A8à'ƒQAîŒòõê.A|¤9 0ƒQA(·ròïê.A€E ?ƒQA@wÎRùê.AXë< OƒQAκbë.A ]6@]ƒQAÈ{“bë.AXë<@jƒQA_‚-ë.AXë<@zƒQA¨²­‚Eë.A€E`…ƒQA¸›eR[ë.AÆŽ>`˜ƒQAÐ[ÁRzë.AÆŽ>@©ƒQA8— ‚”ë.AyC@·ƒQAp ââ´ë.A42@ ƒQA˜ÒRÚë.A42@€ÎƒQA˜ÉõR÷ë.A ]6 âƒQA(®èRÿë.AyC€íƒQA`@´R ì.A¢ÕA ùƒQAð$§ò%ì.A|¤9„QA@wÎR9ì.A42@€„QA`@´òAì.A8`#„QAκbLì.AyC€-„QAÀr ƒ]ì.A¢ÕA:„QAÀr ƒrì.AêG;@C„QAxS„ì.A8O„QAÐ[ÁRì.A42@à[„QA8— ‚”ì.AÆŽ>d„QAp âb‘ì.AyC€m„QAåS“ì.AêG;u„QAÐ[Áòyì.AyC`~„QAÀr ƒrì.AyC ˆ„QA˜Éõòhì.AÆŽ> Ž„QAPWüblì.AÆŽ> –„QAð$§Rmì.AyC œ„QAà;ïâsì.A€EÀ¢„QAPWü‚ˆì.A|¤9@¬„QA@æO—ì.AFh|U²„QA˜€µì.AlL`»„QA˜ûì.AlL€½„QA˜€9í.AlL€À„QA˜€í.AlLÄQA˜€Õí.AlL Å„QA˜€!î.AlL Æ„QA˜€Kî.AlL@Å„QA˜€Zî.AlLÀÄ„QA˜€–î.AlL€»„QA˜€Æî.AlL ±„QA˜ï.AlLÀ¡„QA˜€Aï.AlL@–„QA˜€ï.AlL ‡„QA˜€øï.AlL w„QA˜€3ð.AlL j„QA˜€lð.AlL_„QA˜€Áð.AlLÀR„QA˜€+ñ.AlL`H„QA˜€ ñ.AlL@@„QA˜òñ.AlL?„QA˜ò.AlL`D„QA˜€ùñ.AlLàM„QA˜€Èñ.AlL€V„QA˜€šñ.AlL`a„QA˜€|ñ.AlLl„QA˜€Vñ.AlL@}„QA˜@ñ.AlLàŒ„QA˜)ñ.AlL@ „QA˜ ñ.AlL ²„QA˜ïð.AlL@À„QA˜€áð.AlL@Ø„QA˜€¾ð.AlL ó„QA˜ð.AlL…QA˜€cð.AlLà&…QA˜€Dð.AlLE…QA˜€ð.AlL@Z…QA˜ð.AlL j…QA˜€÷ï.AlL €…QA˜€Ëï.AlL€ …QA˜€gï.AlL Ï…QA˜@Bï.AlLç…QA˜€¤î.AlL "†QA˜€zî.AlL`6†QA˜€^î.AlLÀH†QA˜€Mî.AlL Q†QA˜oî.AlL€Z†QA˜€žî.AlL_†QA˜€Ëî.AlLÀZ†QA˜€Ðî.AlL€Q†QA˜€Äî.AlL`J†QA˜€úî.AlL?†QA˜€oï.AlL€7†QA˜ëï.AlL :†QA˜€ið.AlL@>†QA˜€Öð.AlL€E†QA˜€Qñ.AlL`O†QA˜½ñ.AlLX†QA˜4ò.AlL b†QA˜Îò.AlL@k†QA˜€=ó.AlL€i†QA˜€Âó.AlLàe†QA˜ô.AlL i†QA˜›ô.AlL@q†QA˜€àô.AlL z†QA˜1õ.AlL`…†QA˜€^õ.AlL †QA˜˜õ.AlL “†QA˜€Äõ.AlL@†QA˜€*ö.AlL@©†QA˜€uö.AlL¬†QA˜€»ö.AlL@¬†QA˜€7÷.AlL ­†QA˜€s÷.AlLÀµ†QA˜€Î÷.AlL€À†QA˜€hø.AlL`ĆQA˜€ù.AlL ņQA˜€þù.AlL`ƆQA˜€’ú.AlL@ˆQA˜ÿú.AlL Î†QA˜Yû.AlLÓ†QA˜€éû.AlLÔ†QA˜€®ü.AlL Ô†QA˜€Éý.AlL`Ô†QA˜€`þ.AlL`Ô†QA˜€Õþ.AlL؆QA˜Õþ.AlLã†QA˜€Çþ.AlLñ†QA˜¹þ.AlL ü†QA˜€›þ.AlL€‡QA˜uþ.AlL@‡QA˜€.þ.AlLÀ+‡QA˜€éý.AlL€7‡QA˜€§ý.AlLE‡QA˜€]ý.AlL R‡QA˜€ý.AlL _‡QA˜Ñü.AlL n‡QA˜€¶ü.AlL`w‡QA˜€ü.AlLÀ†‡QA˜€ƒü.AlL`‘‡QA˜€wü.AlL ›‡QA˜€Aü.AlL ¦‡QA˜€ü.AlLÀ°‡QA˜€¸û.AlL ¿‡QA˜€Ëú.AlL î‡QA˜€™ú.AlL€õ‡QA˜Qú.AlL`ˆQA˜ñù.AlL`ˆQA˜»ù.AlLÀˆQA˜€¤ù.AlL $ˆQA˜€„ù.AlLà1ˆQA˜€Jù.AlL@?ˆQA˜ù.AlLÀPˆQA˜Öø.AlL cˆQA˜€§ø.AlL kˆQA˜€lø.AlL`tˆQA˜ø.AlL |ˆQA˜€í÷.AlLà†ˆQA˜€ó÷.AlLÀ”ˆQA˜ø.AlL £ˆQA˜€ø.AlL@¬ˆQA˜î÷.AlLà´ˆQA˜ø.AlL ÁˆQA˜ ø.AlL@íˆQA˜(ø.AlLÀýˆQA˜€2ø.AlLÀ‰QA˜,ø.AlLÀ!‰QA˜1ø.AlL`.‰QA˜!ø.AlL 9‰QA˜€ø.AlLàA‰QA˜æ÷.AlL I‰QA˜€Î÷.AlLO‰QA˜€É÷.AlLÀW‰QA˜€»÷.AlLàb‰QA˜€¦÷.AlL o‰QA˜€Œ÷.AlL y‰QA˜€f÷.AlL`‡‰QA˜€;÷.AlL`—‰QA˜%÷.AlL€Ÿ‰QA˜÷.AlL@³‰QA˜€7÷.AlL€¸‰QA˜€÷.AlL༉QA˜€¾÷.AlL@¿‰QA˜€ø.AlL€¿‰QA˜€Gø.AlL`¾‰QA˜€¬ø.AlL@º‰QA˜€çø.AlLÀ¸‰QA˜€ú.AlL€¶‰QA˜Éú.AlLຉQA˜€û.AlLð‰QA˜€%û.AlL`͉QA˜€*û.AlL ׉QA˜Gû.AlLàã‰QA˜€uû.AlL ç‰QA˜°û.AlLî‰QA˜ðû.AlL€ò‰QA˜*ü.AlL÷‰QA˜pü.AlL û‰QA˜€®ü.AlLÀŠQA˜æü.AlL ŠQA˜€ý.AlL@ŠQA˜€?ý.AlL`ŠQA˜Tý.AlL`ŠQA˜³ý.AlL-ŠQA˜€vþ.AlL ò‰QA˜€†þ.AlL€ç‰QA˜’þ.AlL€à‰QA˜€ªþ.AlLà׉QA˜€Äþ.AlLà͉QA˜€×þ.AlL@ȉQA˜ãþ.AlL‰QA˜€çþ.AlLÀ¹‰QA>\˜(®/AlL@÷‡QAÌK0AlLpW§QAÈh¢˜Rÿ/AlL@2§QAÌÔ0AlLЧQAÌ€0AlL=§QAÌÀr0AlLÀ2§QAÌ@ƒ0AlL`§QAÌÀ¡0AlL î¦QA̱0AlLܦQA̾0AlL Í¦QAÌÀÆ0AlLÀÀ¦QAÌ@Ê0AlL`°¦QAÌ@É0AlL०QAÌ@§0AlL”¦QAÌ€|0AlL ¦QAÌÀV0AlLà„¦QAÌÀ10AlL¦QAÌ0AlL`{¦QAÌ@0AlL@s¦QAÌÀ0AlLÀi¦QAÌÀ 0AlLàb¦QAÌ@0AlL@Y¦QAÌÀø0AlLÀO¦QAÌ@ð0AlLC¦QAÌÀà0AlL 3¦QA̽0AlL@4¦QAÌ€r0AlL@5¦QAÌ€H0AlL€;¦QAÌ@'0AlL€;¦QAÌ€0AlLÀ5¦QA˜€»ÿ/AlLP-¦QA˜€•ÿ/AlL"¦QA˜_ÿ/AlLà¦QA˜€$ÿ/AlL@û¥QA˜ÿ/AlL ô¥QA˜rÿ/AlL î¥QAÌ€0AlL`ê¥QAÌÀ[0AlL ä¥QAÌÀø0AlL@à¥QAÌÀ-0AlL Ú¥QAÌ@0AlL Ë¥QAÌ@F0AlL ¹¥QAÌm0AlL –¥QĂ0AlLÀu¥QAÌ@±0AlL@=¥QAÌ@¼0AlL@$¥QAÌ€Ì0AlLà ¥QAÌ@é0AlL`¥QAÌ@0AlL€ì¤QAÌÀ60AlL@ä¤QAÌ@ˆ0AlLÀ¿¤QAÌŸ0AlL`ŤQAÌ€Ì0AlL@ˤQAÌÀ0AlL`ϤQAÌ€70AlL`ѤQAÌÀf0AlLÖ¤QAÌ‘0AlL Ô¤QAÌÀÏ0AlL@פQAÌ€0AlL€Ù¤QAÌ€<0AlL`ã¤QAÌÀT0AlL€ì¤QAÌ€c0AlL€ô¤QAÌw0AlLÀ¥QAÌ@†0AlL ¥QẢ0AlLÀ)¥QAÌ@0AlLÀ;¥QAÌ@¬0AlL N¥QA̶0AlLà\¥QAÌ@Í0AlL o¥QAÌ€Ï0AlLy¥QAÌ€Ø0AlLÀŽ¥QAÌ@ 0AlL ®¥QAÌP0AlL€¨¥QAÌÀ`0AlL@­¥QAÌÀ‰0AlL²¥QAÌ€‘0AlL ¬¥QAÌ@³0AlL`¢¥QAÌ€Ð0AlL ›¥QAÌ€é0AlL  ¥QAÌÀ0AlL ¦¥QAÌÀ0AlLª¥QAÌ50AlLথQAÌ€50AlL ¥QAÌ€@0AlLÀ–¥QAÌÀ?0AlLÀ‹¥QAÌÀ;0AlL€|¥QAÌ@:0AlLp¥QAÌ€=0AlL `¥QAÌE0AlL P¥QAÌÀE0AlL <¥QAÌÀN0AlL`-¥QAÌF0AlL ¥QAÌ@40AlL€¥QAÌ@ 0AlL` ¥QAÌ€ 0AlL`ú¤QAÌÀî0AlL`î¤QAÌÀ×0AlLàâ¤QAÌ@×0AlLÀÙ¤QAÌ×0AlLФQAÌÎ0AlLȤQAÌ@½0AlLð½¤QAÌÀ˜0AlLÀ¹¤QAÌÀx0AlL¹¤QAÌ€80AlL ¸¤QAÌ€0AlLà·¤QAÌ0AlLг¤QAÌô0AlLà­¤QAÌ@Þ0AlL`¥¤QAÌ@Ë0AlL€–¤QAÌÀè0AlLÀ‘¤QAÌ€0AlL@Œ¤QAÌ€C0AlL†¤QAÌ€^0AlL`¤QAÌÀ·0AlL@t¤QAÌ0AlLP]¤QAÌÀc0AlLv¤QAÌÀ¥0AlL ^¤QAÌØ0AlL`L¤QAÌ@0AlLÀ=¤QAÌÀ0AlL@+¤QAÌ-0AlL ¤QAÌ€ƒ0AlL ¤QAÌ@¿0AlL "¤QAÌ@ý0AlLÀ#¤QAÌ€@0AlL '¤QAÌÀŽ0AlL(¤QAÌÙ0AlL`)¤QAÌ€l 0AlL .¤QAÌ€ 0AlL`5¤QAÌ@„ 0AlLà8¤QAÌÔ 0AlL€;¤QAÌ@ 0AlL=¤QAÌ€_ 0AlL@@¤QAÌÀÞ 0AlL B¤QAÌ@ 0AlLD¤QAÌ0 0AlL@E¤QAÌ€e 0AlL@O¤QAÌÀþ 0AlLÀR¤QAÌ@›0AlL`W¤QAÌ€Ì0AlL`[¤QAÌÀQ0AlL d¤QAÌÀ0AlL€m¤QAÌ@Ó0AlL@p¤QAÌ@0AlL x¤QAÌ60AlL ‚¤QAÌ€Z0AlL€‡¤QAÌ€0AlL‘¤QAÌ@ê0AlL š¤QAÌÀ0AlL ¤¤QAÌA0AlLÀ¨¤QAÌ@b0AlL@«¤QAÌ0AlL€®¤QAÌ@Ô0AlL À¤QAÌÀ$0AlLàÆ¤QAÌÀ0AlL@̤QAÌ€Ù0AlL€Ï¤QAÌ-0AlLפQAÌ|0AlL Õ¤QAÌÀ´0AlL פQAÌ0AlL ×¤QAÌ€B0AlL€Ó¤QAÌ@w0AlL`ΤQA̲0AlLàŤQAÌÀÿ0AlL࿤QAÌ@'0AlL ¹¤QAÌ@I0AlL`·¤QAÌ€f0AlL@·¤QAÌÀŠ0AlLඤQAÌ@¸0AlL`µ¤QAÌË0AlL ¯¤QAÌì0AlL€ª¤QAÌõ0AlL ©¤QAÌÀæ0AlL£¤QAÌ@Ö0AlLž¤QA̽0AlLÀ’¤QAÌÀ§0AlLÀ‹¤QAÌ@–0AlL@†¤QAÌ€Š0AlLÀ€¤QAÌ€y0AlL y¤QAÌÀe0AlLn¤QAÌ@Q0AlLf¤QAÌÀ&0AlL€]¤QAÌ@0AlLðY¤QAÌ@0AlL`S¤QAÌ@0AlL@I¤QAÌÀ 0AlL @¤QAÌ@0AlL@7¤QAÌÀ$0AlL@+¤QAÌÀ60AlL"¤QAÌ@M0AlL@¤QAÌÀY0AlLÀ¤QAÌÀq0AlL@¤QAÌÀ0AlLÀú£QAÌ0AlL`ï£QAÌ®0AlLàá£QA̽0AlL Ö£QAÌ@Ù0AlLÀÈ£QAÌ@ï0AlL¾£QAÌf0AlL v£QAÌ€~0AlLÀm£QAÌ€¥0AlLàj£QAÌ@½0AlL€a£QAÌÎ0AlLÀW£QAÌ@ä0AlLàL£QAÌ0AlLG£QAÌ 0AlL@£QAÌ€@0AlL4£QAÌ€S0AlL*£QAÌ@g0AlLà £QAÌ@0AlL£QAÌ@Ž0AlL £QAÌÀÆ0AlL`î¢QAÌ€å0AlLÀï¢QAÌÿ0AlL ï¢QAÌ€/0AlLî¢QAÌ€J0AlL@î¢QA̘0AlL ï¢QAÌ€Ÿ0AlL Û¢QAÌ@£0AlLàÔ¢QAÌ€‹0AlL`Ì¢QAÌ@s0AlL Á¢QAÌZ0AlL`³¢QAÌ@D0AlL §¢QAÌ€!0AlL€—¢QAÌ€ü0AlL@Œ¢QAÌÀÒ0AlL@¢QA̰0AlL@r¢QAÌ€‡0AlL@h¢QAÌc0AlL_¢QAÌ€<0AlL`Q¢QAÌ€0AlL€I¢QAÌ@ 0AlLàB¢QAÌ@=0AlLÀ¢QAÌÀþ0AlL€Å¡QAÌ@ 0AlLà­¡QAÌ@90AlL”¡QAÌ@Ë0AlL@y¡QAÌÀn0AlL@m¡QAÌ€+0AlL`Ú QAÌ@h0AlL@° QAÌL0AlL© QAÌ0AlLàœ QAÌ@g0AlL QAÌ[0AlL œ QAÌ–0AlL`ž QAÌÀé0AlL   QAÌ@0AlL¤ QAÌJ0AlLÀ¥ QAÌ€v0AlL€¤ QAÌÀ’0AlL¦ QAÌ€Ï0AlL Ÿ QAÌÛ0AlL› QAÌ€ñ0AlL ’ QAÌ0AlL@‰ QAÌ€0AlL@€ QAÌÀ0AlLàÇŸQAÌ«0AlL pŸQAÌ@’0AlLÀoŸQAÌÀm0AlLÀlŸQAÌ€B0AlLÐfŸQAÌ€0AlL€YŸQAÌÀ0AlLÀPŸQAÌ€ó0AlLÐEŸQAÌÀ‰0AlL€uŸQAÌ€U0AlL 6ŸQAÌ™0AlLðlŸQAÌ@f0AlL@PŸQAÌÀb0AlL@NŸQAÌ€½0AlL ñžQAÌ@E0AlLàâžQAÌ@}0AlL ÝžQAÌÀ³0AlL@ÙžQAÌ€à0AlLÔžQAÌÀû0AlL€ÖžQAÌ€d0AlLÈžQAÌÀÔ0AlL€·žQAÌÀ 0AlL@µžQAÌW0AlL@«žQAÌ@Š0AlL`¤žQAÌ€¾0AlL€¨žQAÌÏ0AlLÐ¥žQAÌ€0AlL`›žQAÌj0AlL@žQAÌ€|0AlL`ˆžQAÌ@™0AlL‚žQAÌÀË0AlLàzžQAÌ€ò0AlL@ržQAÌÀ0AlL`jžQAÌ€\0AlL€ažQAÌ€z0AlLÀ[žQAÌÀŸ0AlL`bžQAÌ@Ö0AlL€ZžQAÌÀ'0AlL PžQAÌw0AlLÀIžQAÌÀ§0AlL@DžQAÌ@ð0AlLÀ<žQAÌ0AlLà3žQAÌ€s0AlLà(žQAÌÀ©0AlL@"žQAÌö0AlL žQAÌ@70AlL`žQAÌ@x0AlLžQAÌ@0AlL@žQȦ0AlL'žQAÌ@þ0AlL !žQAÌÀå0AlLà!žQAÌÀ›0AlL@"žQAÌÀL0AlL %žQAÌ€á0AlLà&žQAÌ@ 0AlL€)žQAÌò0AlL@2žQAÌ@Á 0AlL 6žQAÌY!0AlLÀ9žQAÌÀ™!0AlL 9žQAÌ€›!0AlLÀ7žQAÌæ!0AlLàžQAÌ@U"0AlL`¹QAÌ@à"0AlL`WQAÌí"0AlLÀNQAÌ@q#0AlL@öœQAÌ$0AlLà—œQAÌ€$0AlLÀ“œQAÌ€C$0AlL€eœQAÌ@$0AlL€2œQAÌ@£$0AlL 5œQAÌó$0AlL ö›QAÌ@ %0AlL Þ›QAÌÀ=%0AlL²›QA̶%0AlLÀR›QAÌÀ±&0AlLk›QAÌq'0AlL €›QAÌ@g(0AlL ››QAÌ@j)0AlLк›QAÌÀ¬)0AlL½›QAÌ@})0AlL ¶›QAÌ)0AlL€¬›QAÌÀ†)0AlL ¦›QAÌÀ‘)0AlL€Ÿ›QAÌ )0AlL”›QAÌÀ­)0AlL Ž›QAÌ€À)0AlL€ˆ›QAÌÀ"*0AlL@l›QAÌ@‡*0AlL€L›QAÌÔ*0AlLÀ5›QAÌ€+0AlL€#›QAÌ@I+0AlL@›QAÌ@b+0AlL  ›QAÌz+0AlL°›QAÌ@©*0AlL ÖšQAÌÀ9*0AlL ›QAÌÀÛ)0AlL ›QAÌ€À)0AlL›QAÌ€¬)0AlL€)›QAÌ@)0AlLÀF›QAÌÀm)0AlLV›QAÌZ)0AlL g›QAÌÀL'0AlL\šQAÌ@ú'0AlL RšQAÌø)0AlLyšQAÌ€+0AlL “šQAÌÀÂ+0AlLà’šQAÌÀá+0AlLà’šQAÌ@,0AlL ™šQAÌÀ?,0AlLà›šQAÌÀn,0AlLàœšQAÌÀy,0AlL@“šQAÌ€,0AlL`‰šQAÌ@’,0AlLÀwšQAÌÀ™,0AlL ošQAÌÀ’,0AlLàgšQAÌ€ƒ,0AlL ašQAÌ@x,0AlL [šQAÌÀk,0AlL`UšQAÌ€\,0AlL OšQAÌO,0AlLÀHšQAÌF,0AlLàAšQAÌ),0AlL€5šQAÌ€,0AlL0šQAÌ@,0AlLà)šQAÌÀï+0AlLà"šQAÌÖ+0AlL šQAÌÇ+0AlLà šQAÌ@A+0AlL€Ú™QAÌ€j*0AlLˆ™QAÌ€+,0AlL Ë˜QAÌZ,0AlL@µ˜QAÌ|,0AlL«˜QAÌ@“,0AlL ›˜QA̵,0AlL`˜QAÌ×,0AlL ˜QAÌ@-0AlLl˜QAÌ%-0AlL€_˜QAÌ€S-0AlLÀS˜QAÌ€-0AlL`@˜QAÌ@ª-0AlL@.˜QAÌ€Ý-0AlL€˜QAÌ€.0AlL ˜QAÌ<.0AlL ü—QAÌ@.0AlL€ë—QAÌ€À.0AlL€Ù—QAÌÀö.0AlLàΗQAÌÀ//0AlL@¾—QAÌÀu/0AlL ±—QAÌ™/0AlL@¦—QAÌÀá/0AlL ——QAÌÀ 00AlL€‡—QAÌÀ00AlL€…—QAÌÀ<00AlLÀt—QAÌÀ[00AlLÀf—QAÌÀ|00AlL`\—QAÌ –00AlL`O—QAÌ€¯00AlL B—QAÌ€Ï00AlLà0—QAÌ€ò00AlL —QAÌÀ/10AlL@—QAÌX10AlL ü–QAÌ’10AlLÀç–QAÌ€¸10AlLàÛ–QAÌ@ò10AlLÀË–QAÌ@20AlL€Å–QAÌ@020AlLÀ»–QAÌ€620AlL`¤–QAÌ€320AlLà–QAÌÀ20AlL “–QAÌ€å10AlL –QAÌ€¶10AlL`Œ–QAÌ@10AlL …–QAÌ@10AlLÐ~–QAÌ€c10AlLu–QAÌ€N10AlLÀe–QAÌ€\10AlLÀZ–QAÌ@q10AlL@U–QAÌ@m10AlLpC–QAÌV10AlL`?–QAÌ@810AlL >–QAÌ€ 10AlL @–QAÌÀï00AlL <–QAÌ€Û00AlLÀ4–QAÌÒ00AlLÀ'–QAÌ€â00AlL–QAÌ€ö00AlL@–QAÌ10AlL–QAÌ@10AlL –QAÌ€10AlL–QAÌÀ 10AlL@û•QAÌ@D10AlLàò•QAÌ@›10AlL@ß•QAÌÀq20AlLP¯•QAÌÀ•20AlL@§•QAÌ€40AlL`T•QAÌ×40AlL (•QAÌ€ù40AlL •QAÌ€#50AlL` •QAÌ€i50AlL0ó”QAÌ"50AlLpå”QAÌ@—50AlLÀ°”QAÌ€¹50AlL@¦”QAÌÀÚ50AlL@š”QAÌ€ó50AlL`‘”QAÌÀá80AlL`”QAÌ€—90AlLð-”QAÌ€í;0AlLЋ”QAÌ<0AlLà™”QAÌ@c=0AlL€•QAÌ€a?0AlL`-•QAÌl?0AlLP.•QAÌ@¡@0AlLÀI•QAÌ@ @0AlL`…•QAÌ@™@0AlL ³•QAÌ@”@0AlL º•QAÌ€@0AlL@Á•QAÌ@Ž@0AlLÀÈ•QAÌ@¦@0AlL°Ð•QAÌ€DA0AlL€¡•QAÌÀÌA0AlL€w•QAÌÀ@0AlL ƒ’QAÌ@a@0AlL‚’QAÌ–@0AlL €’QAÌ@MA0AlLu’QAÌÀiA0AlL@t’QAÌ@²A0AlLÀl’QAÌ·A0AlL@[’QAÌ€òA0AlL`S’QAÌ€%B0AlL€P’QAÌ€NB0AlLÀN’QAÌsB0AlL M’QAÌ€šB0AlL@L’QAÌ€ÂB0AlL°M’QAÌ@ÅB0AlLv’QAÌ@¹B0AlL’QA̬B0AlLà¡’QAÌ@§B0AlL ¯’QAÌ”B0AlL@É’QAÌÀrB0AlLß’QAÌÀDB0AlL ÷’QAÌÀ>B0AlLþ’QAÌ@FB0AlL “QAÌ€YB0AlLà “QAÌB0AlL “QAÌxB0AlL“QAÌVB0AlL€“QAÌÀ/B0AlL€"“QAÌÀøA0AlL $“QAÌ@ØA0AlL&“QAÌÀ»A0AlLà*“QA̳A0AlL€0“QAÌÀ¡A0AlL@<“QAÌŽA0AlL`A“QAÌwA0AlLÀD“QAÌ€=A0AlLB“QAÌ%A0AlL`C“QAÌ@A0AlLàH“QAÌÀ´@0AlLàg“QAÌÀ?0AlLÀ¼“QA̾?0AlL@Ä“QAÌH<0AlL`“QAÌ@R<0AlL€Ú“QAÌÀQ<0AlL ï“QAÌL<0AlL€”QAÌÀ<0AlL 1”QAÌÉ;0AlLÀ:”QAÌ@£;0AlL @”QAÌ„;0AlL@”QAÌ:0AlLÀ,”QAÌ€z:0AlLÀ%”QAÌÀi:0AlL€”QAÌ€a:0AlL@”QAÌ@_:0AlLà”QAÌ@[:0AlL@û“QAÌ@O:0AlL@ð“QAÌ€:0AlL@â“QAÌ€ô90AlL€Ú“QAÌ€¾90AlL€Õ“QȦ90AlL`Ö“QAÌ€R90AlLÀÚ“QAÌÀ90AlL Ý“QAÌÀà80AlLÛ“QAÌ€¶80AlLדQAÌ{80AlL Ð“QAÌ@\80AlL Ë“QAÌ@680AlL“QAÌ@%80AlL@·“QAÌ@$80AlLÀ°“QAÌ$80AlL`ª“QAÌÀ80AlLàœ“QAÌò70AlL@—“QAÌ@Ð70AlLÀ‘“QAÌ€M70AlLƒ“QAÌÀø60AlL r“QAÌ@Å60AlL g“QAÌ@ž60AlL`^“QAÌz60AlL€Q“QAÌ€X60AlL`G“QAÌÕ50AlL€;“QAÌ@°50AlLà9“QAÌ€”50AlL <“QAÌ@t50AlL ?“QAÌÀZ50AlL`@“QAÌ@?50AlLð;“QAÌÀ/50AlL°5“QAÌÀ50AlL0-“QAÌÀþ40AlL(“QAÌ€ã40AlLà!“QAÌÀÆ40AlLÀ“QAÌ€·40AlLh“QAÌ@ž40AlL`“QAÌÀ…40AlL  “QAÌ@n40AlL“QAÌÀ<40AlL “QAÌ€40AlL ö’QAÌô30AlL÷’QAÌ€Ï30AlL ÷’QAÌÀ¹30AlL`“QAÌÀŸ30AlL %“QAÌ@30AlL€"“QAÌÀb30AlLÀ“QAÌ?30AlL “QAÌ30AlL@“QAÌ€ý20AlL“QAÌ€Ü20AlL “QA̹20AlL@“QAÌÀœ20AlL “QAÌ€ƒ20AlL “QAÌ€R20AlL`“QAÌ€=20AlL`“QAÌ;20AlL “QAÌ€-20AlLÀ“QAÌ€û10AlL “QAÌ@â10AlL€“QAÌÂ10AlLà “QAÌ@´10AlL€“QAÌ™10AlLà“QAÌ€Â10AlL@;“QAÌ€Ð10AlLÀI“QAÌ@ë10AlL@s“QAÌ€ü10AlL š“QAÌÀ20AlLÀ¬“QAÌ@20AlLÀ½“QAÌn20AlL`Ê“QAÌ€®20AlL@Ø“QAÌì20AlL€æ“QAÌË20AlLÀô“QAÌ@˜20AlL@ ”QAÌ€20AlL@”QAÌB20AlL û“QAÌ€20AlL ñ“QAÌÀ10AlLã“QAÌÀf10AlL ×“QAÌÀ+10AlLË“QAÌÀ¢00AlLÀµ“QAÌÀv00AlL`­“QAÌÀ!00AlL “QAÌ€Æ/0AlLÀ“QAÌ@€/0AlLp|“QAÌÀi/0AlLPu“QAÌ@b/0AlLs“QAÌÀ;/0AlL f“QAÌ6/0AlL@d“QAÌ€/0AlL`[“QAÌ€÷.0AlL@O“QAÌ@à.0AlLÀA“QA̹.0AlL€5“QAÌ@l.0AlL (“QAÌ@M.0AlLÀ(“QAÌÀ,.0AlLÀ)“QAÌ@ .0AlL@.“QAÌ€à-0AlL€>“QAÌÀ±-0AlL@<“QAÌc-0AlL 6“QAÌA-0AlL€.“QAÌÀ-0AlLà#“QAÌ7-0AlL “QAÌ@r-0AlL “QAÌÀ¢-0AlL@“QAÌ@Í-0AlL “QAÌ€ö-0AlLÀ “QAÌÀ.0AlL “QAÌÀp.0AlL ø’QAÌÀ“.0AlLö’QAÌ@½.0AlL`ô’QAÌ€>/0AlL è’QAÌÀŽ00AlLÀÎ’QAÌ€}50AlL`[’QAÌ@¤50AlL@U’QAÌÀ50AlL I’QAÌ€·50AlLà8’QAÌ@™50AlL`8’QAÌ@y50AlL@;’QAÌÀh50AlL@@’QAÌ€750AlL€@’QAÌÀ50AlL >’QAÌ€ÿ40AlL@;’QAÌì40AlL @’QAÌ@Ú40AlL F’QAÌ@»40AlL F’QAÌÀª40AlLÀ?’QAÌ€¢40AlL 5’QAÌ@š40AlL`.’QAÌÀ…40AlLÀ(’QAÌ€X40AlLÀ(’QAÌ€<40AlL/’QAÌ€040AlL 6’QAÌ€(40AlL€=’QAÌ@40AlLB’QAÌý30AlLÀA’QAÌÀæ30AlLà>’QAÌ€Ã30AlL8’QAÌÀ¥30AlL`/’QAÌ{30AlL )’QAÌ€U30AlL@#’QAÌ630AlL  ’QAÌÀõ20AlL@’QAÌ@Ó10AlL€ð‘QAÌ@…10AlLç‘QAÌ€V10AlL€å‘QAÌ€10AlL@ä‘QAÌ@ä00AlL€ã‘QA̪00AlL@ã‘QAÌÀk00AlLàå‘QAÌU00AlL€á‘QAÌÀJ00AlLpÞ‘QAÌ€A00AlL Û‘QAÌ€=00AlL@БQAÌ>00AlLàÑQAÌ@D00AlL€¸‘QAÌO00AlL ®‘QAÌ€`00AlL@¢‘QAÌ€p00AlL@›‘QAÌ@ˆ00AlL ‘‘QĄ00AlL`…‘QAÌ€Ä00AlL€|‘QAÌ@ç00AlL`s‘QAÌ€ú00AlL d‘QAÌÀ410AlL€R‘QAÌ€]10AlLà>‘QAÌ€l10AlLÀ4‘QAÌš10AlL%‘QAÌ@­10AlLÀ‘QAÌ@Ç10AlL€‘QAÌ€b20AlL ‘QAÌÀK30AlLÀüQAÌ@Z30AlL°‘QAÌÀ30AlLP ‘QAÌÀ®30AlL ‘QAÌ40AlL E‘QAÌ@Ë40AlL€‘‘QAÌÀê50AlL ƒ‘QA̹60AlL`y‘QAÌ.70AlL q‘QAÌ€u70AlLàl‘QAÌ€ 80AlL`^‘QAÌè80AlL =‘QAÌ@Ñ90AlL€‘QAÌÂ:0AlL`ñQAÌÀx;0AlLËQAÌ€ž<0AlLÀ˜QAÌ@l=0AlL kQAÌ@.>0AlLÀDQAÌ@@=0AlLÈQAÌ@;=0AlL€ÅQAÌ@Í<0AlLÀ‹QAÌÇ<0AlL@„QAÌÀÎ<0AlLà}QAÌð<0AlL€zQAÌ=0AlL xQAÌÀ7=0AlLàuQAÌ@W=0AlL`qQAÌm=0AlLÀkQAÌ€{=0AlLcQAÌÀˆ=0AlL ZQAÌÀ•=0AlLÀOQA̦=0AlL€HQAÌÀ²=0AlLBQA̼=0AlL :QAÌÀä=0AlLÀ1QAÌ>0AlL QAÌÀ>0AlL QAÌ >0AlLÀûŽQAÌ€4>0AlL@ïŽQAÌ@>>0AlLçŽQAÌ€@>0AlL åŽQAÌ€Ò=0AlLÕŽQAÌ€ã<0AlL@²ŽQAÌ¡<0AlL€ŸŽQAÌÀ<0AlLИŽQAÌ@`<0AlL€’ŽQAÌ@<0AlL †ŽQAÌ@à;0AlLÀƒŽQAÌ@„;0AlL …ŽQAÌ@ø:0AlL€•ŽQA̾:0AlLàŸŽQAÌÀ‹:0AlL ®ŽQAÌ€q:0AlLÀµŽQAÌ€D:0AlLÀÂŽQAÌÀ:0AlL ÒŽQAÌÔ90AlLÀÞŽQAÌ€x90AlLÀíŽQAÌc90AlLàõŽQAÌf90AlLÀQAÌ/90AlLÀQAÌ€î80AlL`QAÌÀ¨80AlL@QAÌ@j80AlLÐ"QAÌÀÇ70AlL€QAÌ€^70AlL QAÌ70AlLàQAÌÙ60AlLàQA̱60AlL` QAÌ@|60AlL QAÌ?60AlLàüŽQAÌü50AlLàúŽQAÌ€¼50AlL@ôŽQAÌœ50AlLÐïŽQAÌ€…50AlLÀìŽQAÌ@W50AlL`äŽQAÌ@ð40AlL`âŽQAÌ€”40AlL€ÛŽQAÌÀZ40AlL€ÒŽQAÌ40AlL ËŽQAÌ‹30AlL@ÂŽQAÌÀL30AlL`¶ŽQAÌ€30AlL`¨ŽQAÌ30AlLð¡ŽQAÌ@å20AlL`–ŽQAÌ@«20AlL†ŽQAÌ@n20AlL`}ŽQAÌ20AlL tŽQAÌ 20AlL€rŽQAÌÀ®10AlLÀhŽQAÌ810AlLà]ŽQAÌÀê00AlLÀWŽQAÌ€¹00AlLàXŽQAÌÀB00AlL``ŽQAÌ@ê/0AlL gŽQAÌ€l/0AlL°jŽQAÌU/0AlLÀaŽQAÌ€I/0AlL€WŽQAÌ€8/0AlL PŽQAÌÀ /0AlL@KŽQAÌÿ.0AlL IŽQAÌÒ.0AlL HŽQA̰š.0AlLÄCŽQApæ6?.0AÎËÙáBŽQAÌÀp.0AlL @ŽQAÌ_.0AlL@?ŽQAÌM.0AlLP>ŽQAÌ%.0AlL DŽQAÌ@.0AlLNŽQAÌÀÕ-0AlL@NŽQAÌ€§-0AlL@JŽQAÌÀe-0AlL=ŽQAÌ-0AlL )ŽQAÌ€â,0AlL€ŽQAÌ€ª,0AlL€ŽQAÌÀo,0AlLàŽQAÌ€,0AlL òQAÌ€â+0AlLæQAÌ€¤+0AlL0ÙQAÌ@“+0AlL ÕQAÌç)0AlL7ŽQAÌÈ)0AlL>ŽQAÌÀÂ)0AlL@?ŽQAÌ€Ÿ)0AlL@0ŽQAÌ|)0AlL€"ŽQAÌ@T)0AlLŽQAÌ5)0AlL  ŽQAÌ€Í)0AlL@åQAÌÀ’)0AlLpØQAÌ@‰)0AlLààQAÌ€e)0AlLÀæQAÌO)0AlL ëQAÌ@)0AlL ìQAÌ€î(0AlL°íQAÌÂ(0AlL äQAÌ€›(0AlL€ÞQAÌ@m(0AlLàÙQAÌ€(0AlL@ØQAÌú'0AlLàÕQAÌÀÒ'0AlL ÎQAÌ@Ä'0AlL€½QAÌÀ¯'0AlL ­QAÌ@¥'0AlL`£QAÌ@–'0AlL˜QAÌ€s'0AlL ŽQAÌÀF'0AlL†QAÌÀ^)0AlLàQAÌ€t)0AlL  QAÌ€‰)0AlLPQAÌÀF)0AlL QAÌ@)0AlLÀQAÌ@Ï(0AlL QAÌ€v(0AlL QAÌ@)(0AlLQAÌÀã'0AlLÀQAÌÏ'0AlLPQAÌE'0AlL@9QAÌ'0AlL ?QAÌô&0AlL ?QAÌÀÌ&0AlL?QAÌ€•&0AlL@7QAÌ@>&0AlL +QAÌÀ/&0AlLà!QAÌ€.&0AlL€QAÌ€D&0AlL@QAÌÀH&0AlL€÷ŒQAÌ@B&0AlL íŒQAÌ<&0AlL àŒQAÌ@B&0AlL€ÔŒQAÌ@I&0AlLÀÉŒQAÌàB&0AlL`ÂŒQAÌ€ &0AlL`¸ŒQAÌÀß%0AlL@¯ŒQAÌ@Ã%0AlLÀ¥ŒQAÌÀ­%0AlLÀ‘ŒQAÌÀ¥%0AlL€†ŒQAÌŒ%0AlL€sŒQAÌ€‚%0AlL€fŒQAÌ€w%0AlLÀ^ŒQAÌt%0AlL [ŒQAÌÀo%0AlLàWŒQAÌÀj%0AlLSŒQAÌ€B$0AlL“ŒQAÌ@R$0AlL …ŒQAÌ@a$0AlLwŒQAÌ^$0AlL€lŒQAÌÀD$0AlLà^ŒQAÌ€$0AlLpUŒQAÌÀÿ#0AlLÀXŒQAÌ@å#0AlL€^ŒQAÌ@È#0AlL°`ŒQAÌ¡#0AlL@OŒQAÌÀ˜#0AlLÐEŒQAÌÀr#0AlL GŒQAÌ€[#0AlL@GŒQAÌ@<#0AlLÀ@ŒQAÌN#0AlL 7ŒQAÌ@b#0AlL0ŒQAÌÀL#0AlL@"ŒQAÌô"0AlL°ŒQAÌÇ"0AlL`ŒQAÌÀ¡"0AlLŒQAÌ€w"0AlLÐŒQAÌ@P"0AlLŒQAÌ@'"0AlL°ŒQAÌ@ "0AlL`ŒQAÌü!0AlL0%ŒQAÌÀÕ!0AlLÀ!ŒQAÌ@Õ!0AlL ŒQAÌÀÔ!0AlL€ö‹QAÌ@Ó!0AlL æ‹QAÌ@ê!0AlL@ß‹QAÌ€&"0AlLÀÓ‹QAÌ€o"0AlL È‹QAÌ£"0AlLà´‹QAÌ@º"0AlL€©‹QAÌ@·"0AlL@‹QAÌÀ›"0AlL€†‹QAÌ@œ"0AlLày‹QAÌ€¡"0AlL@n‹QAÌ€”"0AlLàf‹QAÌ@["0AlL`b‹QAÌ"0AlL€\‹QAÌÚ!0AlL ]‹QAÌ€‘!0AlLàa‹QAÌ€ó/AlLàœ‰QA˜Ùò/AlLÀ‰QA˜€šò/AlL€¡‰QA˜ò/AlLà ‰QA˜€ðð/AlL€£‰QA˜€¸ë/AlLÀp‰QA˜_ë/AlL n‰QA˜€éê/AlL h‰QA˜€ê/AlLd‰QA˜"ê/AlL _‰QA˜£é/AlL€[‰QA˜€ é/AlL W‰QA˜€jè/AlL@R‰QA˜€è/AlL€R‰QA˜ç/AlLÀV‰QA˜€+ç/AlLÀV‰QA˜€‘æ/AlL V‰QA˜€Vå/AlL M‰QA˜€Uå/AlLÀO‰QA˜€?å/AlL}‰QA˜>å/AlL@€‰QA˜å/AlL`…‰QA˜€õä/AlL ‹‰QA˜€êà/AlLàN‰QA˜€à/AlLàD‰QA˜€6à/AlLÀ:‰QA˜ôß/AlL 3‰QA˜•ß/AlL*‰QA˜€>ß/AlL "‰QA˜ìÞ/AlL`‰QA˜€¨Þ/AlL‰QA˜jÞ/AlL ‰QA˜€3Þ/AlLà‰QA˜ôÜ/AlL@íˆQA˜³Û/AlLáˆQA˜)Ú/AlLψQA˜€Ã×/AlL`®ˆQA˜€…×/AlL«ˆQA˜€úÕ/AlLÀ£ˆQA˜€®Õ/AlLŸˆQA˜€dÕ/AlLàšˆQA˜ Õ/AlL@’ˆQA˜€ÌÔ/AlLÀˆQA˜tÔ/AlL ‰ˆQA˜0Ô/AlL@†ˆQA˜ÞÓ/AlLàˆQA˜¤Ó/AlLÀ}ˆQA˜\Ó/AlL yˆQA˜€ Ó/AlL tˆQA˜ÝÒ/AlLÀqˆQA˜±Ò/AlLàmˆQA˜€rÒ/AlLjˆQA˜.Ò/AlL fˆQA˜€ñÑ/AlL cˆQA˜ÅÑ/AlL€`ˆQA˜dÑ/AlL ]ˆQA˜€Ñ/AlL`iˆQA˜ÄÑ/AlL`pˆQA˜öÑ/AlLuˆQA˜€#Ò/AlL@zˆQA˜LÒ/AlL €ˆQA˜€wÒ/AlL@‰ˆQA˜€˜Ò/AlLàŽˆQA˜€½Ò/AlL•ˆQA˜æÒ/AlL œˆQA˜ Ó/AlL࢈QA˜BÔ/AlL ëˆQA˜ÞÔ/AlL` ‰QA˜€>Õ/AlL .‰QA˜ Õ/AlLàB‰QA˜_Õ/AlLàJ‰QA˜€\Õ/AlLÀO‰QA˜YÕ/AlL`U‰QA˜pÕ/AlL ^‰QA˜€˜Õ/AlL€i‰QA˜¿Õ/AlL o‰QA˜ÆÕ/AlLy‰QA˜€•Õ/AlL }‰QA˜6Õ/AlL ‰QA˜€÷Ô/AlL ‘‰QA˜€áÓ/AlL`|‰QA˜µÓ/AlLÀx‰QA˜sÓ/AlL w‰QA˜îÒ/AlLÀw‰QA˜€¯Ò/AlL q‰QA˜HÒ/AlLÀh‰QA˜ßÑ/AlL€h‰QA˜ˆÑ/AlLj‰QA˜€"Ñ/AlL`g‰QA˜ÕÐ/AlLÀ^‰QA˜”Ð/AlLàT‰QA˜+Ð/AlLàN‰QA˜€¨Ï/AlLÀM‰QA˜tÏ/AlLàQ‰QA˜DÏ/AlL T‰QA˜LÍ/AlLE‰QA˜€[Ë/AlL@ƉQA˜Ë/AlLàȉQA˜€È/AlL ê‰QA˜’Ã/AlL@r‰QA˜ˆÃ/AlL g‰QA˜‘Ã/AlL`[‰QA˜†Ã/AlL@U‰QA˜€yÃ/AlLàN‰QA˜€pÃ/AlLÀE‰QA˜€yÃ/AlL9‰QA˜€yÃ/AlL`*‰QA˜—Ã/AlL‰QA˜¨Ã/AlLÀ‰QA˜€ÍÃ/AlL@ñˆQA˜€Ä/AlL`áˆQA˜OÄ/AlLÀÓˆQA˜žÄ/AlL€ÀˆQA˜ÚÄ/AlL@²ˆQA˜þÄ/AlL@«ˆQA˜Å/AlLईQA˜ÆÄ/AlL`œˆQA˜oÄ/AlL –ˆQA˜Ä/AlL€“ˆQA˜µÃ/AlL@ˆQA˜HÃ/AlLÀ“ˆQA˜"Ã/AlL€—ˆQA˜€îÂ/AlLÀ•ˆQA˜¢Â/AlL`“ˆQA˜€*Â/AlL`”ˆQA˜ÚÁ/AlL`”ˆQA˜€‘Á/AlL@”ˆQA˜]Á/AlLÀˆQA˜€Á/AlL`ˆQA˜€ÌÀ/AlLÀŒˆQA˜€NÀ/AlL ‹ˆQA˜ À/AlL ‰ˆQA˜€á¿/AlL@…ˆQA˜€¡¿/AlL`€ˆQA˜€{¿/AlL€|ˆQA˜'¿/AlLàrˆQA˜€û¾/AlLàmˆQA˜€ò¾/AlL`rˆQA˜Ⱦ/AlL€‡ˆQA˜€¾/AlL “ˆQA˜€Y¾/AlLà™ˆQA˜€/¾/AlLà ˆQA˜€¾/AlL@©ˆQA˜€Ö½/AlL¦ˆQA˜}½/AlL@œˆQA˜O½/AlL`˜ˆQA˜€½/AlLà’ˆQA˜Ú¼/AlL@ˆQA˜€›¼/AlLÀ†ˆQA˜€X¼/AlL`}ˆQA˜€¼/AlL€rˆQA˜V»/AlLsˆQA˜€»/AlLàvˆQA˜¿º/AlLxˆQA˜Šº/AlL xˆQA˜Sº/AlLoˆQA˜€x¹/AlL`eˆQA˜€ ¹/AlL `ˆQA˜•¸/AlLTˆQA˜B¸/AlL@NˆQA˜¸/AlLàHˆQA˜€Ú·/AlL@=ˆQA˜€¨·/AlL@5ˆQA˜W·/AlLÀ,ˆQA˜¶¶/AlLà!ˆQA˜€4¶/AlLÀˆQA˜õ/AlL ˆQA˜€?µ/AlL@ˆQA˜â´/AlL€ˆQA˜£´/AlLˆQA˜€y´/AlL€ˆQA˜‹´/AlLà ˆQA˜œ´/AlL€ˆQA˜Ž´/AlL û‡QA˜´/AlL ú‡QA˜ô³/AlLÀˆQA˜€Ä³/AlL ˆQA˜€‡³/AlL ˆQA˜€9³/AlL ü‡QA˜β/AlL@÷‡QA˜Ѳ/AlL€ˆQA˜ܲ/AlLÀ ˆQA˜â²/AlLàˆQA˜Ô²/AlL€!ˆQA˜€·²/AlLà)ˆQA˜†²/AlL /ˆQA˜\²/AlL 6ˆQA˜N²/AlL€=ˆQA˜€²/AlL@AˆQA˜€¿²/AlLÀ?ˆQA˜³/AlL CˆQA˜+³/AlLMˆQA˜€i³/AlLWˆQA˜´¼/AlL@\‰QA˜€«¼/AlL c‰QA˜î¹/AlL`>‰QA˜+¹/AlLà2‰QA˜Ÿ¸/AlL`-‰QA˜€I¶/AlL ‰QA˜þ´/AlL ‰QA˜´/AlL þˆQA˜g³/AlL€÷ˆQA˜€¾²/AlL@ïˆQA˜€ ²/AlL äˆQA˜J±/AlL€×ˆQA˜€ž°/AlLÔˆQA˜x°/AlL ÒˆQA˜€û¯/AlL@̈QA˜X¯/AlL@ƈQA˜€Õ®/AlLàÁˆQA˜ò®/AlLÀ̈QA˜€?¯/AlL`ÕˆQA˜¶¯/AlLÀäˆQA˜)°/AlL òˆQA˜€°/AlL ‰QA˜Û°/AlL ‰QA˜F±/AlL`‰QA˜€Å±/AlLÀ(‰QA˜€ù±/AlL@4‰QA˜²/AlL @‰QA˜€^²/AlLÀO‰QA˜¨²/AlL€Y‰QA˜ó²/AlL@c‰QA˜€u³/AlL n‰QA˜å³/AlLàz‰QA˜€;´/AlLÀ†‰QA˜„´/AlL ‰QA˜ã´/AlL ¢‰QA˜€bµ/AlL€²‰QA˜Àµ/AlL້QA˜¶/AlLʉQA˜G¶/AlLÀÕ‰QA˜T¶/AlLàÞ‰QA˜~¶/AlLàé‰QA˜¹¶/AlL ó‰QA˜ì¶/AlLàø‰QA˜I·/AlL€ŠQA˜Ü·/AlLŠQA˜€-¸/AlL€ŠQA˜Ǹ/AlL@!ŠQA˜O¹/AlLÀ-ŠQA˜€ º/AlLà?ŠQA˜€tº/AlL JŠQA˜€òº/AlL WŠQA˜€Z»/AlLÀbŠQA˜¹»/AlLàmŠQA˜€î»/AlL sŠQA˜6¼/AlL {ŠQA˜a¼/AlLÀŠQA˜€·¼/AlL€…ŠQA˜€u½/AlLÀœŠQA˜ ¾/AlL`ªŠQA˜X¾/AlLà°ŠQA˜°¾/AlLชQA˜á¾/AlL ¿ŠQA˜W¿/AlLÀÙŠQA˜„Â/AlL@HŠQA˜€ÆÅ/AlL€›ŠQA˜äÌ/AlL@Q‹QA˜€EÊ/AlL y‹QA˜Ê/AlLà‹QA˜€æË/AlL๋QA˜ÿÊ/AlLÀ΋QA˜HÊ/AlL á‹QA˜lÉ/AlLñ‹QA˜bÈ/AlL€ü‹QA˜€ÚÇ/AlL ŒQA˜€—Ç/AlL ŒQA˜€ÌÇ/AlL`ŒQA˜ðÇ/AlL ŒQA˜0È/AlL #ŒQA˜€pÈ/AlL`#ŒQA˜€¤È/AlL`$ŒQA˜¢É/AlL@AŒQA˜KÊ/AlL€SŒQA˜€Ê/AlLp]ŒQA˜€‰Ë/AlLÀyŒQA˜€VÌ/AlLàŒŒQA˜ïÌ/AlLࢌQA˜€eÍ/AlL€µŒQA˜ëÍ/AlLÀÍŒQA˜€\Î/AlLàáŒQA˜¸Î/AlL€òŒQA˜#Ï/AlLÀQA˜€=Ï/AlL€ QA˜EÏ/AlL QA˜¬Ï/AlL ûŒQA˜€XÐ/AlLà$QA˜€$Ð/AlLÀ2QA˜ŸÐ/AlLPQA˜Ñ/AlL cQA˜•Ñ/AlL vQA˜€ Ò/AlL QA˜Ò/AlLÀ¨QA˜€ Ò/AlLP·QA˜€ªÒ/AlL€»QA˜¹Ò/AlLàÁQA˜Ó/AlL òQA˜ËÓ/AlL \ŽQA˜"Ô/AlL€‹ŽQA˜Õ/AlL`QA˜×/AlL€¡QA˜ýØ/AlL QA˜€âÙ/AlLàOQA˜+Ú/AlL`eQA˜;Û/AlL@ÃQA˜€Ú/AlL@²QA˜€òÙ/AlL€°QA˜Ù/AlLЪQA˜€¯×/AlL@QA˜€2Ó/AlL@MQA˜ôÒ/AlLÀIQA˜€"Ë/AlL×QA˜€§Ç/AlL`QA˜€ÍÅ/AlLp-QA˜&¹/AlLPÙQA˜H¹/AlL âQA˜†¹/AlL€îQA˜̹/AlLàûQA˜€Ø¹/AlLþQA˜ô¹/AlLÀ‘QA˜º/AlL` ‘QA˜2º/AlL ‘QA˜8º/AlL€‘QA˜€Cº/AlL '‘QA˜Fº/AlLÀ0‘QA˜Vº/AlL`8‘QA˜fº/AlL`@‘QA˜€yº/AlL`H‘QA˜º/AlL P‘QA˜­º/AlLà[‘QA˜€¼º/AlLàc‘QA˜€Ìº/AlLÀn‘QA˜óº/AlL`y‘QA˜ýº/AlLà€‘QA˜ëº/AlLÀ³‘QA˜»/AlLÀË‘QA˜€:»/AlL`ä‘QA˜e»/AlLÀ’QA˜€»/AlL`’QA˜¢»/AlLà9’QA˜€Ù»/AlL j’QA˜€¼/AlL@—’QA˜€V¼/AlLÃ’QA˜|¼/AlL€ì’QA˜€Î¼/AlL "“QA˜ÿ¼/AlL`X“QA˜€F½/AlL“QA˜¯½/AlLÀÍ“QA˜€¾/AlL€ ”QA˜€E¾/AlL`)”QA˜ˆ¾/AlL@X”QA˜;/AlLÀ›”QA˜€Ù¾/AlLª”QA˜€ï¾/AlLÔQA˜ò¾/AlLÅ”QA˜+¿/AlLàö”QA˜U¿/AlLà•QA˜s¿/AlLà?•QA˜€Ä¿/AlL`p•QA˜ô|Iñ¿/AÚ•QA˜ À/AlL Ý•QA˜€À/AlLàó•QA˜€$À/AlL –QA˜€<À/AlL€"–QA˜€wÀ/AlL _–QA˜«À/AlL “–QA˜ºÀ/AlL࢖QA˜€ÐÀ/AlL Ú–QA˜âÀ/AlL€—QA˜€Á/AlL j—QA˜uÁ/AlL È—QA˜’Á/AlL`ç—QA˜€«Á/AlL :˜QA˜«Á/AlL€=˜QA˜€ Á/AlL@Œ˜QA˜€ºÁ/AlL`ê˜QA˜€ÜÁ/AlL ™QA˜€âÁ/AlL€T™QA˜ÿÁ/AlL€Ÿ™QA˜Â/AlLàÁ™QA˜@Â/AlL ß™QA˜UÂ/AlL`è™QA˜€FÂ/AlLàö™QA˜€NÂ/AlL šQA˜€IÂ/AlL šQA˜€NÂ/AlL@-šQA˜€OÂ/AlL :šQA˜$Â/AlLàJšQA˜€"Â/AlL XšQA˜ Â/AlL@išQA˜Â/AlL }šQA˜€,Â/AlL`‹šQA˜LÂ/AlL€ªšQA˜€ŒÂ/AlLÍšQA˜{Â/AlLàïšQA˜€šÂ/AlL ›QA˜ŸÂ/AlLàF›QA˜ÀÂ/AlLà^›QA˜üÂ/AlL`‡›QA˜Ã/AlL­›QA˜7Ã/AlLÀÑ›QA˜‘Ã/AlLå›QA˜²Ã/AlLÀî›QA˜€¬Ã/AlL0ó›QA˜€¤Ã/AlL€÷›QA˜€”Ã/AlL`ø›QA˜qÃ/AlL@ú›QA˜€<Ã/AlLàþ›QA˜\Â/AlLÀœQA˜€ŽÁ/AlL %œQA˜êÀ/AlLÀ.œQA˜,À/AlLÀBœQA˜r¿/AlL@ZœQA˜˾/AlLànœQA˜€@¾/AlL „œQA˜€½/AlLà™œQA˜€ç¼/AlL`±œQA˜€¼/AlLÀÆœQA˜€—»/AlL€ÕœQA˜»/AlL€îœQA˜‚º/AlL`QA˜€º/AlLQA˜¸/AlL KQA˜€ ¸/AlL°\QA˜ì·/AlL aQA˜€@¸/AlLàŒQA˜ƒ¸/AlL ¦QA˜©¸/AlL@µQA˜q¸/AlL ¿QA˜U¸/AlLàÉQA˜€d¸/AlL ÕQA˜˜¸/AlL`ÞQA˜€¯¸/AlL çQA˜™¸/AlLÀñQA˜€“¸/AlLÀÿQA˜§¸/AlLÀžQA˜€Û¸/AlL@žQA˜€.¹/AlL  žQA˜€u¹/AlL€,žQA˜€ò¹/AlLP<žQA˜Kº/AlLFžQA˜‘º/AlL€QžQA˜Ϻ/AlL€YžQA˜€„»/AlLàfžQA˜€¼/AlLÀhžQA˜€ƒ¼/AlL hžQA˜é¼/AlLàmžQA˜€/½/AlL0ržQA˜€T½/AlL {žQA˜€r½/AlL`‚žQA˜®½/AlLŒžQA˜Õ½/AlL ”žQA˜€~»/AlL åžQA˜ܺ/AlLPÿžQA˜€Ë¹/AlL€*ŸQA˜D¸/AlLjŸQA˜€¸·/AlLÀ€ŸQA˜€²¶/AlL`©ŸQA˜€`µ/AlLÀÑŸQA˜´/AlL` QA˜€Ð²/AlL : QA˜r±/AlL m QA˜Ó°/AlL€† QA˜G°/AlL`š QA˜¾¯/AlLÀ¬ QA˜n¯/AlL¸ QA˜þ®/AlLÀÊ QA˜¨®/AlL Ø QA˜€n®/AlLàÝ QA˜(®/AlL â QA˜¡®/AlLàë QA˜¯/AlL ó QA˜€E¯/AlLû QA˜ñ¯/AlL ¡QA˜€°/AlL@ ¡QA˜€D°/AlLà¡QA˜V°/AlLP%¡QA˜°/AlL`+¡QA˜€ì°/AlLà,¡QA˜$±/AlL .¡QA˜€{±/AlL 0¡QA˜α/AlL 4¡QA˜€ ²/AlL€7¡QA˜€R²/AlL`8¡QA˜€’²/AlL`5¡QA˜â²/AlL€3¡QA˜2³/AlL€4¡QA˜€v³/AlLà7¡QA˜€«³/AlLà=¡QA˜ü³/AlL A¡QA˜=´/AlL`@¡QA˜f´/AlL€;¡QA˜„´/AlL 4¡QA˜Ê´/AlLÀ-¡QA˜€%µ/AlL,¡QA˜„µ/AlLð7¡QA˜€Õµ/AlLÀC¡QA˜€8¶/AlL J¡QA˜Œ¶/AlLàO¡QA˜€ ·/AlL€N¡QA˜€c·/AlLL¡QA˜o·/AlL@B¡QA˜·/AlL`;¡QA˜€Š·/AlL 1¡QA˜ª·/AlL`'¡QA˜ö·/AlL€!¡QA˜7¸/AlL€¡QA˜Œ¸/AlL¡QA˜Ò¸/AlL ¡QA˜¹/AlL"¡QA˜€4¹/AlL+¡QA˜2¹/AlL 6¡QA˜€¹/AlL >¡QA˜ ¹/AlLàF¡QA˜€,¹/AlL N¡QA˜ƒ¹/AlLÀ]¡QA˜€À¹/AlL f¡QA˜ι/AlL0g¡QA˜º/AlL€m¡QA˜€wº/AlL€t¡QA˜»/AlL@x¡QA˜k»/AlL w¡QA˜л/AlL@w¡QA˜€A¼/AlLv¡QA˜£¼/AlL t¡QA˜þ¼/AlL v¡QA˜€>½/AlLà¡QA˜€Ž½/AlL€‰¡QA˜Ƚ/AlL@¡QA˜€¾/AlL@”¡QA˜€u¾/AlL€Ž¡QA˜À¾/AlL |¡QA˜Ú¾/AlLÀm¡QA˜¿/AlL@^¡QA˜%¿/AlLÀS¡QA˜€E¿/AlLL¡QA˜o¿/AlL€>¡QA˜¹¿/AlL€-¡QA˜€Ó¿/AlLÀ%¡QA˜À/AlL€¡QA˜€aÀ/AlL ¡QA˜€ŒÀ/AlLÀ¡QA˜À/AlL,¡QA˜uÀ/AlL:¡QA˜€@À/AlL m¡QA˜,À/AlLÀƒ¡QA˜,À/AlL@§¡QA˜ À/AlL ½¡QA˜Õ¿/AlLÀÓ¡QA˜Ä¿/AlLè¡QA˜È¿/AlL õ¡QA˜€»¿/AlL ¢QA˜À¿/AlL¢QA˜¸¿/AlL@+¢QA˜¨¿/AlL€6¢QA˜HÀ/AlL 7¢QA˜,Á/AlL :¢QA˜ìÁ/AlL=¢QA˜³Â/AlL@¢QA˜€çÃ/AlL@F¢QA˜€úÄ/AlL`K¢QA˜Æ/AlL O¢QA˜/Ç/AlLàS¢QA˜õÇ/AlL@V¢QA˜tÉ/AlL ]¢QA˜mÈ/AlL`†¢QA˜Ç/AlL ¤¢QA˜€äÆ/AlL€½¢QA˜ÕÆ/AlL¿¢QA˜ºÆ/AlLÄ¢QA˜qÆ/AlL ΢QA˜€ Æ/AlL Ü¢QA˜7Å/AlL€û¢QA˜ÔÄ/AlL@£QA˜ŒÄ/AlLà£QA˜XÄ/AlL£QA˜€Ä/AlL@£QA˜—Ã/AlLp-£QA˜jÃ/AlLà2£QA˜€Ã/AlL?£QA˜Â/AlL [£QA˜;Á/AlL y£QA˜€‘À/AlL`—£QA˜ë¿/AlL€¯£QA˜À/AlLP¾£QA˜€¡Á/AlL°é£QA˜€ÜÂ/AlLÀãQA˜€µÄ/AlL@”£QA˜€Å/AlLС£QA˜€xÅ/AlL`®£QA˜€TÆ/AlLàË£QA˜€!È/AlL@ ¤QA˜€YÊ/AlL@T¤QA˜€ÄÌ/AlL¥¤QA˜€ÛÌ/AlL¨¤QA˜jÍ/AlLP»¤QA˜€ Ï/AlLÀ¥QA˜€’Ñ/AlLÀª¤QA˜ÉÒ/AlL Í¤QA˜€.Õ/AlL`¥QA˜^Ö/AlL`ñ¤QA˜Ø/AlL຤QA˜xÛ/AlL`¥QA˜€2ß/AlL@¬¤QA˜Êá/AlLàþ¤QA˜¦â/AlL€â¤QA˜tå/AlL ‚¤QA˜€rè/AlLÀ ¤QA˜€€ê/AlL`×£QA˜|ë/AlLð´£QA˜€¼ë/AlL ¬£QA˜Kì/AlL š£QA˜€ í/AlL€ˆ£QA˜€—í/AlLà|£QA˜€¾í/AlL€y£QA˜€ûí/AlL°s£QA˜ î/AlL r£QA˜€vî/AlLÀr£QA˜´î/AlL x£QA˜ï/AlL{£QA˜Oï/AlL@£QA˜€£ï/AlL°„£QA˜Öï/AlL€£QA˜þï/AlL –£QA˜Jð/AlLÀ˜£QA˜«ð/AlL œ£QA˜€.ñ/AlLÀž£QA˜€»ñ/AlLਣQA˜*ò/AlL ±£QA˜€´ò/AlL µ£QA˜€!ó/AlL»£QA˜€¢ó/AlL£QA˜€ô/AlLÀÁ£QA˜Ÿô/AlLà¿£QA˜ õ/AlL Á£QA˜„õ/AlLpÉ£QA˜Ðõ/AlL ×£QA˜€6ö/AlL`æ£QA˜€Èö/AlLàü£QA˜€÷/AlL€ ¤QA˜€V÷/AlLÀ¤QA˜‡÷/AlL"¤QA˜ç÷/AlL€%¤QA˜€b÷/AlL C¤QA˜€2÷/AlLN¤QA˜÷/AlLàU¤QA˜.÷/AlLa¤QA˜€V÷/AlLÀg¤QA˜€n÷/AlL@n¤QA˜€°÷/AlL v¤QA˜€ ø/AlL`}¤QA˜€jø/AlL@ƒ¤QA˜€§ø/AlLð‰¤QA˜Éø/AlL`•¤QA˜ûø/AlLà ¤QA˜+ù/AlL ¨¤QA˜rù/AlLÀ´¤QA˜Îù/AlL€¾¤QA˜.ú/AlLàÆ¤QA˜€vú/AlL€Ê¤QA˜êú/AlL@ФQA˜)û/AlLàØ¤QA˜€û/AlL ݤQA˜ñû/AlLÐà¤QA˜€óø/AlLÀ ¥QA˜÷/AlL #¥QA˜ õ/AlL :¥QA˜Úò/AlLÀ^¥QA˜€Jò/AlL k¥QA˜€?ò/AlL@l¥QA˜ò/AlL`p¥QA˜€öñ/AlL€ƒ¥QA˜€ðñ/AlL’¥QA˜ûñ/AlL€¦¥QA˜ÿñ/AlL`¼¥QA˜ò/AlLàÑ¥QA˜€ ò/AlLÞ¥QA˜6ó/AlLà7¦QA˜€Âô/AlL€µ¦QA˜€õ/AlL Ê¦QA˜€/ö/AlL`§QA˜Öö/AlL0G§QAhìÐÌùö/Aæ™IQ§QA˜÷/AlL §QA˜ù/AlL §QA˜ãû/AlL§QA˜Àû/AlLpW§QA˜€Xý/AlL T§QA˜€pÿ/AlL€Q§QA˜ÿ/AlLÀJ§QA˜ÿ/AlLÀB§QA˜€yÿ/AlLà:§QA˜Rÿ/AlL@2§QA˜Ì/AlL E¡QA˜€ŽÃ/AlLÐn QA˜€ÜÃ/AlL€a QA˜Ä/AlL`X QA˜_Ä/AlL@L QA˜¦Ä/AlLA QA˜ßÄ/AlL@4 QA˜ÂÅ/AlL` QA˜€Æ/AlL€ÿŸQA˜€EÆ/AlLÀöŸQA˜€šÆ/AlL@àŸQA˜€6Ç/AlLཟQA˜€UÇ/AlLÀ¶ŸQA˜€®Ç/AlL@¢ŸQA˜àÇ/AlLà‘ŸQA˜RÈ/AlL@yŸQA˜€¦È/AlLàgŸQA˜É/AlL€PŸQA˜É/AlL /ŸQA˜€øÉ/AlL€0ŸQA˜€?Ê/AlL ;ŸQA˜€HÊ/AlLHŸQA˜5Ê/AlLÀUŸQA˜€ Ê/AlL€iŸQA˜€öÉ/AlL yŸQA˜€ôÉ/AlL@ˆŸQA˜9Ê/AlL “ŸQA˜yÊ/AlL€¡ŸQA˜nÊ/AlL€®ŸQA˜RÊ/AlL࿟QA˜4Ê/AlL`ÇŸQA˜€6Ê/AlLÀПQA˜€7Ê/AlL`ÝŸQA˜€ŽÊ/AlL@äŸQA˜¶Ê/AlLðŸQA˜ÒÊ/AlL` QA˜€öÊ/AlL€ QA˜€Ë/AlL & QA˜€BË/AlL`1 QA˜ÿË/AlL@e QA˜·Ë/AlL g QA˜tË/AlL`p QA˜ÄË/AlL@€ QA˜€;Ì/AlL  QA˜€UÌ/AlL ¢ QA˜€|Ì/AlLಠQA˜€¦Ì/AlLàÈ QA˜€¹Ì/AlL Ù QA˜ÖÌ/AlLÀê QA˜÷Ì/AlL û QA˜€æÌ/AlL€¡QA˜€ÒÌ/AlLà¡QA˜Í/AlL@¡QA˜€!Í/AlL€&¡QA˜Í/AlL 1¡QA˜€ÆÌ/AlL°;¡QA˜€CÌ/AlL 2¡QA˜Ì/AlL E¡QA˜Ì/AlL †£QA˜hÌ/AlLÀ‹£QA˜0Ë/AlLÀx£QA˜Ë/AlL€w£QA˜˜É/AlLÀ_£QA˜€:Ç/AlL€:£QA˜¢Æ/AlL 1£QA˜Æ/AlLÀ(£QA˜€É/AlL€°¢QA˜€ŒÉ/AlL`Ÿ¢QA˜€´É/AlL ™¢QA˜îÉ/AlLà¡¢QA˜@Ê/AlL`¦¢QA˜€°Ê/AlL ª¢QA˜+Ë/AlL@®¢QA˜ŽË/AlL ®¢QA˜ Ì/AlL ­¢QA˜€yÌ/AlL`­¢QA˜€¶Ì/AlL ³¢QA˜€NÍ/AlL@¸¢QA˜€ÄÍ/AlLÀ¹¢QA˜'Î/AlL๢QA˜œÎ/AlL ¹¢QA˜€CÏ/AlL`¼¢QA˜¢Ï/AlLÇ¢QA˜Ð/AlL Ñ¢QA˜eÐ/AlL°Ù¢QA˜~Ð/AlL ã¢QA˜4Ð/AlLàô¢QA˜ÓÏ/AlL £QA˜cÏ/AlL€£QA˜€çÎ/AlLÀ'£QA˜kÎ/AlL6£QA˜ Î/AlL@F£QA˜ÅÍ/AlLQ£QA˜€WÍ/AlL d£QA˜þÌ/AlLÀt£QA˜Ì/AlL †£QAhÌÀ‘(0AlLàÂQAÌ€j0AlL`˜ÊQAJÌ@WC0AlL`JÊQAÌ@jC0AlL€>ÊQAÌ€nC0AlL<ÊQAÌ€C0AlL€2ÊQAÌŸC0AlL@-ÊQAÌ¥C0AlL +ÊQAÌ€¨C0AlLà)ÊQAÌ@¸C0AlLÐ#ÊQAÌàC0AlLÀÊQAÌ D0AlLÀÊQAÌ@$D0AlL ÊQAÌÀ,D0AlL ÊQAÌ€^D0AlL ÊQAÌvD0AlL ÊQAÌ@­D0AlLÊQAÌ€³D0AlLPÊQAÌÈD0AlL@ÊQAÌ€âD0AlLpÊQAÌõD0AlL ÊQAÌ€E0AlLàÊQAÌ'E0AlL`ÊQAÌ@E0AlL ÊQAÌE0AlLÊQAÌ€±E0AlL`ÊQAÌÀØE0AlL@ÊQAÌ@òE0AlLÀÊQAÌÀF0AlLÊQAÌ:F0AlL ÊQAÌ@SF0AlLàÊQAÌ‘F0AlL@ÊQAÌ­F0AlL ÊQAÌÛF0AlLÀÊQAÌ€G0AlL ÊQAÌ@NG0AlLÊQĂG0AlLÀÊQAÌ@²G0AlL@ÊQAÌ@èG0AlL`ÊQAÌÀiH0AlL ÊQAÌ€ÄH0AlL€ÊQAÌÀöH0AlL ÊQAÌ€I0AlLàÊQAÌ€]I0AlLàÊQAÌ€I0AlL@ÊQAÌ€½I0AlL ÊQAÌ@J0AlL ÊQAÌ@hJ0AlLà ÊQAÌ™J0AlL` ÊQAÌÀJ0AlL`ÊQAÌ@ëJ0AlL€ÊQAÌ@EK0AlL`ÊQAÌ@bK0AlL`ÊQAÌÀˆK0AlL€ÿÉQAÌ´K0AlL@÷ÉQAÌ@×K0AlL€ðÉQAÌ€éK0AlL`ìÉQAÌÿK0AlL çÉQAÌ@L0AlLãÉQAÌ€&L0AlL€ÜÉQAÌÀFL0AlL`ÕÉQAÌ@^L0AlL€ÚÉQAÌ€wL0AlLÀàÉQAÌ@ˆL0AlL çÉQAÌ@®L0AlL òÉQAÌ@ÂL0AlL@öÉQAÌ@àL0AlL@úÉQAÌÀM0AlL þÉQAÌ€2M0AlL@ÊQAÌ^M0AlL ÊQAÌDN0AlL€ÊQAÌjN0AlLÊQAÌN0AlL` ÊQAÌ@¨N0AlL ÊQAÌÀÅN0AlL ÊQAÌ€øN0AlL@ÊQAÌÀO0AlL€ÊQAÌ€HO0AlL ÊQAÌÀuO0AlLÀÊQA̘O0AlL@ÊQAÌ@±O0AlLÊQAÌÒO0AlLÊQAÌ@ÛO0AlL`ÊQAÌÀP0AlL@õÉQAÌ@P0AlLàðÉQAÌ@,P0AlL íÉQAÌ€CP0AlLéÉQAÌ@`P0AlLãÉQAÌÀ{P0AlLàßÉQAÌÀ“P0AlL@ÕÉQĄP0AlL ÍÉQAÌÀ»P0AlLàÇÉQAÌÚP0AlL ÃÉQAÌ€øP0AlL »ÉQAÌ8Q0AlL °ÉQAÌÀVQ0AlL@«ÉQAÌ_Q0AlL ªÉQAÌzQ0AlL@§ÉQA̦Q0AlLÀ£ÉQAÌ€ÆQ0AlL@œÉQAÌ€òQ0AlL€’ÉQAÌ1R0AlL@‹ÉQAÌcR0AlL …ÉQAÌS0AlLàyÉQAÌ€ S0AlLÀmÉQAÌ€¦S0AlLàtÉQA̹S0AlL@~ÉQAÌõS0AlLàŸÉQAÌÀT0AlL@¢ÉQAÌ@eT0AlLŸÉQAÌ€‘T0AlL ÉQAÌ©T0AlLà™ÉQAÌ@ÅT0AlLà‘ÉQAÌâT0AlLàÉQAÌ€ûT0AlL€‘ÉQAÌ€U0AlLà’ÉQAÌ=U0AlL€•ÉQAÌ€WU0AlL@˜ÉQAÌ@oU0AlLàœÉQAÌÀ†U0AlL £ÉQAÌœU0AlL§ÉQĄU0AlL­ÉQAÌÀ™U0AlLµÉQAÌBU0AlL@¹ÉQAÌ€4U0AlLà¾ÉQAÌOU0AlL èÉQAÌ€nU0AlL êÉQAÌU0AlL@íÉQAÌ@¦U0AlLàðÉQAÌ€ÎU0AlLà÷ÉQAÌ€V0AlLàÊQAÌ€"V0AlL ÊQAÌ€rV0AlL ÊQAÌœV0AlL@ÊQAÌÀÃV0AlLÊQAÌW0AlL üÉQAÌ@µW0AlL îÉQAÌÞW0AlL€ìÉQAÌ@X0AlL@æÉQAÌÀžX0AlLÀÜÉQAÌÀÕX0AlLÀÖÉQAÌîX0AlL`ÖÉQAÌ"Y0AlLàÚÉQAÌ@7Y0AlLÀáÉQAÌ€HY0AlL çÉQAÌÀeY0AlL ïÉQAÌÀ…Y0AlL÷ÉQAÌ€ŸY0AlLÀÿÉQAÌ@ºY0AlLÀÊQAÌÀ×Y0AlL@ ÊQAÌ€üY0AlL€ÊQAÌ@Z0AlL@ÊQAÌÀ7Z0AlL`ÊQAÌ@UZ0AlL ÊQAÌÀƒZ0AlLàÊQAÌ@ÇZ0AlLàÊQAÌ@üZ0AlL€ÊQAÌÀ"[0AlL€ÊQAÌ@F[0AlL ÊQAÌÀg[0AlL€&ÊQÃ[0AlL-ÊQAÌ@¥[0AlL`4ÊQAÌÀÆ[0AlL€=ÊQAÌÀß[0AlL@BÊQAÌ\0AlL`EÊQAÌ@™\0AlL@DÊQAÌæ\0AlL BÊQAÌ]0AlLÀCÊQAÌÀX]0AlLÀ;ÊQAÌ@}]0AlL 7ÊQAÌ@§]0AlL`8ÊQAÌç]0AlL;ÊQAÌÀ^0AlLà<ÊQAÌH^0AlL=ÊQAÌ€^0AlL ;ÊQAÌ€£^0AlL:ÊQAÌ@È^0AlL 8ÊQAÌ€ñ^0AlLà;ÊQAÌÀ_0AlLÀBÊQAÌÀ_0AlLÀIÊQAÌ@_0AlLàOÊQAÌÀ1_0AlL@VÊQAÌÀV_0AlL ZÊQAÌ‚_0AlL ]ÊQAÌ@÷_0AlL€_ÊQAÌ@/`0AlLÀ`ÊQAÌÀT`0AlLàbÊQAÌ€…`0AlL@eÊQAÌ€¥`0AlLfÊQAÌ@ a0AlLÀVÊQAÌ€Ya0AlLQÊQAÌ€{a0AlL`NÊQAÌ@˜a0AlL`KÊQAÌÀ·a0AlLàJÊQAÌìa0AlLÀGÊQAÌÀb0AlLFÊQAÌÀ#b0AlL@BÊQAÌEb0AlL?ÊQAÌ@^b0AlL>ÊQAÌ@wb0AlL <ÊQAÌ@˜b0AlL<ÊQAÌÀ»b0AlL ;ÊQAÌÀØb0AlLà<ÊQAÌÀýb0AlLÀ=ÊQAÌÀc0AlL EÊQAÌ-c0AlL€2ÊQAÌ€.c0AlL€)ÊQAÌ@2c0AlL€ ÊQAÌ@4c0AlL@ÊQAÌ=c0AlL`ÊQAÌCc0AlL ÊQAÌ€Ac0AlL@ûÉQAÌ@Cc0AlLòÉQAÌÀEc0AlLÀéÉQAÌÀFc0AlLÀÚÉQAÌÀJc0AlL ÒÉQAÌ€Kc0AlL ÐÉQAÌNc0AlL ËÉQAÌÀVc0AlL€¾ÉQAÌ€ac0AlL`±ÉQAÌÀkc0AlLÀ¥ÉQAÌ@uc0AlL€™ÉQAÌ€ˆc0AlL‹ÉQAÌ@µc0AlLÀwÉQAÌ€Ïc0AlL lÉQAÌ@ôc0AlLà_ÉQAÌÀd0AlL@WÉQAÌ€Ed0AlL`KÉQAÌ@¯d0AlLÀBÉQAÌ€Ôd0AlLàCÉQAÌ€Pe0AlLàMÉQAÌ€fe0AlL€JÉQAÌ€…e0AlLGÉQAÌ€±e0AlL@BÉQAÌÄe0AlL€<ÉQAÌÀÒe0AlLÀ6ÉQAÌ€äe0AlL.ÉQAÌòe0AlL $ÉQAÌÀ f0AlLàÉQAÌ€Bf0AlL`ÉQAÌVf0AlL`ÿÈQAÌ•f0AlLàãÈQAÌ@Žf0AlLà×ÈQAÌ€~f0AlLÀÌÈQAÌ@if0AlL`¿ÈQAÌÀße0AlLyÈQAÌ€Õe0AlL€rÈQAÌ@ße0AlL`lÈQAÌ€f0AlL@eÈQAÌ€Hf0AlLà_ÈQAÌÀ€f0AlLàYÈQAÌÀ®f0AlL`SÈQAÌ@Ðf0AlL MÈQAÌÀ0g0AlL #ÈQAÌÀ9g0AlL`ÈQAÌ€9g0AlL@ýÇQAÌBg0AlL`ôÇQAÌ@Yg0AlL`æÇQAÌmg0AlL ØÇQAÌÀ€g0AlL`ÌÇQAÌ@“g0AlLàÃÇQAÌ@¦g0AlL ¹ÇQAÌ€°g0AlL °ÇQAÌ€§g0AlL`£ÇQAÌ€˜g0AlLÀšÇQAÌÀ”g0AlLà‹ÇQAÌ“g0AlL@ÇQAÌ€g0AlL`wÇQAÌ–g0AlL`oÇQAÌŒg0AlL cÇQAÌ€€g0AlL ZÇQAÌ{g0AlL€NÇQAÌ@xg0AlL`EÇQAÌ€hg0AlL€=ÇQAÌXg0AlL€3ÇQAÌQg0AlL@(ÇQAÌ€Qg0AlLÇQAÌ@^g0AlL ÇQAÌog0AlL ÇQAÌ‘g0AlL ÇQĄg0AlL€ÿÆQAÌÀ~g0AlL@òÆQAÌcg0AlL€ðÆQAÌJg0AlLïÆQAÌ@1g0AlL`ñÆQAÌ@g0AlL ðÆQAÌ€øf0AlL èÆQAÌÀâf0AlLàâÆQAÌÀÑf0AlLÀÚÆQAÌ@¿f0AlL€ÕÆQAÌ®f0AlL ÎÆQAÌ f0AlL€ÇÆQAÌ@§f0AlL ¼ÆQA̶f0AlLÀ¯ÆQAÌ@Åf0AlLÀ¤ÆQAÌÀÚf0AlL€—ÆQAÌÀôf0AlLà‰ÆQAÌ@g0AlL{ÆQAÌ"g0AlLÀlÆQAÌ;g0AlLà\ÆQAÌÀLg0AlL LÆQAÌ@Ug0AlL <ÆQAÌ€Rg0AlL@0ÆQAÌÀGg0AlL !ÆQAÌÀ5g0AlL ÆQAÌÀ#g0AlL ÆQAÌ€g0AlL`ÆQAÌ@ g0AlLàûÅQAÌ€.g0AlL@ýÅQAÌMg0AlLÀûÅQAÌ€^g0AlL@ìÅQAÌ€{g0AlL`ÞÅQAÌÀœg0AlL ×ÅQAÌ@Àg0AlL@ÏÅQAÌ€²g0AlL`¿ÅQAÌ£g0AlL ¶ÅQAÌÀ¢g0AlLÀ«ÅQAÌ©g0AlL€ ÅQAÌ@¼g0AlL@‘ÅQAÌ@h0AlL mÅQAÌÀ)h0AlL dÅQAÌÀXh0AlL PÅQAÌ€rh0AlLFÅQAÌ@”h0AlL@6ÅQAÌ€®h0AlLÀ$ÅQAÌ@»h0AlL ÅQAÌÄh0AlLÅQAÌÀÍh0AlLñÄQAÌÀÕh0AlL`ãÄQAÌ@óh0AlL@×ÄQAÌÀi0AlL ÌÄQAÌ@9i0AlL ÄÄQAÌÀHi0AlL ¾ÄQAÌTi0AlL·ÄQAÌ@bi0AlLà«ÄQAÌ@ri0AlL ¤ÄQAÌ~i0AlLÀžÄQAÌ@„i0AlLð›ÄQAÌ€‘i0AlL –ÄQA̧i0AlL`ÄQAÌÀ½i0AlL€„ÄQAÌ@Ïi0AlL}ÄQAÌÀæi0AlL`sÄQAÌÀ÷i0AlLàlÄQAÌ€j0AlL€bÄQAÌj0AlL ZÄQAÌ@úi0AlLÀRÄQAÌòi0AlLKÄQAÌ€æi0AlL@BÄQAÌ€Üi0AlLÀ;ÄQAÌÐi0AlLÀ4ÄQAÌ€Äi0AlLÀ,ÄQAÌ€¸i0AlLÀ$ÄQAÌ@¥i0AlL ÄQAÌ@‹i0AlLÀÄQAÌÀdi0AlLÀÄQAÌ€Di0AlL`ÄQAÌ i0AlL€ÄQAÌ€øh0AlLÀÄQAÌÀÃh0AlLàÄQAÌ“h0AlL@ÄQAÌ@jh0AlL€ýÃQAÌ@;h0AlL øÃQAÌh0AlL ðÃQAÌ@Êf0AlL‰ÃQAÌ@rg0AlL`iÃQAÌ@Kg0AlL€cÃQAÌ@Ag0AlLVÃQAÌ@+g0AlLQÃQAÌ@g0AlLMÃQAÌ@öf0AlLEÃQAÌ€éf0AlL@=ÃQAÌ@äf0AlLà6ÃQAÌ@Øf0AlL 0ÃQAÌ@·f0AlL€*ÃQAÌÀf0AlL@%ÃQAÌÀƒf0AlL@ÃQAÌpf0AlL`ÃQAÌÀcf0AlL ÃQAÌ€Xf0AlL`ÃQAÌà@f0AlL@ýÂQAÌ@f0AlL@ôÂQAÌÀúe0AlL ëÂQAÌÀæe0AlL`äÂQAÌ@Îe0AlL€ÝÂQAÌÀ¼e0AlL`ÔÂQAÌ€®e0AlL€ÍÂQAÌ@¦e0AlL€ÇÂQAÌ€ e0AlL@ÃÂQAÌ@¡e0AlLÀ¼ÂQAÌ@›e0AlLÀ±ÂQAÌ@’e0AlL`¦ÂQAÌ€Ge0AlLˆÂQAÌ€ÂQAÌ@xc0AlL€@ÂQAÌÀVc0AlLÀHÂQAÌHc0AlL@SÂQAÌ€Cc0AlL€ZÂQAÌGc0AlL aÂQAÌLc0AlL@kÂQAÌÀ2c0AlL`yÂQAÌ€ c0AlLÂQAÌ@áb0AlL`…ÂQAÌÀ¶b0AlL`ÂQAÌ€‚b0AlL€–ÂQAÌbb0AlL@œÂQAÌBb0AlL@¢ÂQAÌ@4b0AlL ¬ÂQAÌ€b0AlL`µÂQAÌÀþa0AlLÀ»ÂQAÌÀêa0AlL ÁÂQAÌÜa0AlLÀÇÂQAÌ@Ìa0AlLÀÓÂQAÌ@Èa0AlL€ÛÂQAÌ@Äa0AlL€æÂQA̲a0AlLÀêÂQAÌ€—a0AlL@ìÂQAÌsa0AlL ðÂQAÌÀVa0AlL óÂQAÌ€=a0AlL@÷ÂQAÌa0AlLÀøÂQAÌÀî`0AlL`õÂQAÌÀÆ`0AlLàóÂQAÌ@`0AlLàôÂQAÌÀ(`0AlLàöÂQAÌ}_0AlL ÷ÂQAÌV_0AlLÀõÂQAÌ&_0AlLàóÂQAÌê^0AlL öÂQAÌÀ·^0AlL@úÂQAÌÀ€^0AlL`ÿÂQAÌ@D^0AlL`ÃQAÌ@^0AlLÀÃQAÌ£]0AlL`!ÃQAÌ@]]0AlL@)ÃQAÌ€']0AlL`.ÃQAÌ@]0AlL@3ÃQAÌ@Û\0AlLà8ÃQAÌÉ\0AlL€=ÃQAÌ€™\0AlL`LÃQAÌ€‚\0AlLÀRÃQAÌ€Z\0AlL [ÃQAÌ€@\0AlLàaÃQAÌÀ\0AlL@hÃQAÌë[0AlL {ÃQAÌ@â[0AlL ~ÃQA̰[0AlL`ÃQAÌ@v[0AlL@ŸÃQAÌP[0AlLà¦ÃQAÌ€9[0AlL`²ÃQAÌ€"[0AlLÀ¼ÃQAÌ@[0AlLàÄÃQAÌ@×Z0AlLàÕÃQAÌ€¨Z0AlL`äÃQAÌ€‹Z0AlLöÃQAÌ@}Z0AlLþÃQAÌÀaZ0AlL@ÄQAÌ€ùY0AlL-ÄQAÌÊY0AlL8ÄQAÌ@­Y0AlL`>ÄQAÌÀˆY0AlL@PÄQAÌÀuY0AlL€VÄQAÌ@ZY0AlL \ÄQAÌ@1Y0AlL eÄQAÌ@Y0AlLpÄQAÌÞX0AlL`zÄQAÌÀ|X0AlL@ŽÄQAÌ€ÄQAÌ€&F0AlLàCÄQAÌ@F0AlL EÄQAÌÀÚE0AlL BÄQAÌ€·E0AlLÀ>ÄQAÌE0AlL<ÄQÃE0AlL@;ÄQAÌ@WE0AlLÀ<ÄQAÌÀ9E0AlLÀ=ÄQAÌÀE0AlL 9ÄQAÌãD0AlL 3ÄQA̶D0AlL 3ÄQAÌ@—D0AlL`1ÄQAÌ@nD0AlL 0ÄQAÌFD0AlL 0ÄQAÌ%D0AlL 3ÄQAÌÀD0AlL`0ÄQAÌëC0AlL 2ÄQAÌ€ÌC0AlL 6ÄQAÌÀ¤C0AlLà8ÄQAÌ@}C0AlL9ÄQAÌ€LC0AlL 7ÄQAÌÀC0AlLÀ8ÄQAÌáB0AlL@:ÄQA̳B0AlL€=ÄQAÌ@B0AlL ?ÄQAÌ€fB0AlL DÄQAÌ€9B0AlL JÄQAÌÀB0AlL LÄQAÌÀêA0AlL`NÄQAÌÄA0AlLàPÄQAÌ@¨A0AlLÀSÄQAÌ‘A0AlL VÄQAÌÀ|A0AlL€ZÄQAÌÀ]A0AlLaÄQAÌGA0AlL hÄQAÌ@8A0AlLàlÄQAÌ€5A0AlL vÄQAÌÀA0AlL€uÄQAÌ@ A0AlLPuÄQAÌ œ80AlLÈIÄQAÌ€–80AlLpKÄQAÌ1,0AlLÀ»ÇQAÌÀ¦+0AlLìÇQAÌ€T+0AlLàÈQAÌÇ)0AlL}ÈQAÌ€Á)0AlLà€ÈQA̽)0AlL „ÈQAÌÀ¸)0AlL0‡ÈQAÌÀ‘(0AlL€XÉQAÌÀ¼(0AlL@ZÉQAÌ)0AlL ^ÉQAÌE)0AlL``ÉQAÌÀj)0AlLÀbÉQAÌ€Ž)0AlL@dÉQAÌ )0AlL€eÉQAÌ€ê)0AlLpfÉQAÌ€/*0AlL@jÉQAÌ€Q*0AlL0kÉQAÌl*0AlLmÉQAÌÀ”*0AlL nÉQA̶*0AlLoÉQAÌ@×*0AlL@rÉQAÌÀ÷*0AlLsÉQAÌ@!+0AlLptÉQAÌ@@+0AlLÐuÉQAÌÀv+0AlLÐwÉQAÌ@”+0AlL€xÉQA̶+0AlLPzÉQAÌÀu,0AlLà€ÉQAÌ€…,0AlLpÉQAÌ€œ,0AlLЃÉQAÌ@Ã,0AlL…ÉQAÌ€ô,0AlLà…ÉQAÌ€ -0AlLÀ†ÉQAÌ@3-0AlLЇÉQAÌ@Ž-0AlLÐÉQAÌÌ-0AlLpÉQAÌ€ÿ-0AlL “ÉQAÌ€,.0AlL”ÉQAÌn.0AlLð–ÉQA̧.0AlL ™ÉQAÌÀÙ.0AlL œÉQAÌ/0AlLàœÉQAÌÀt/0AlLP¢ÉQAÌ»/0AlL§ÉQAÌ€Þ/0AlL ©ÉQAÌ€ 00AlL°¬ÉQAÌ900AlL0¯ÉQAÌÀS00AlL0°ÉQAÌÀx00AlLÀ²ÉQAÌÀª00AlLµÉQAÌ@ÿ00AlL·ÉQAÌ&10AlL¸ÉQAÌ€N10AlLðºÉQAÌn10AlL ¼ÉQAÌÀ•10AlL¾ÉQAÌ@20AlLpÅÉQAÌ30AlLàÏÉQAÌÀÍ30AlLà×ÉQAÌÀ†40AlLðßÉQAÌ@ô40AlL°ãÉQAÌ@G50AlL€çÉQAÌÀÒ50AlLïÉQAÌÀù50AlLïÉQAÌ@60AlL ðÉQAÌ€R60AlLóÉQAÌ60AlL ÷ÉQAÌÀØ60AlL°ûÉQAÌÀ)70AlLàÿÉQAÌÀa70AlL€ÊQAÌ€|70AlL ÊQĂ70AlLPÊQAÌ€°70AlLÐÊQAÌ@Ü70AlL° ÊQAÌ@580AlLPÊQAÌ@‘80AlLÐÊQAÌ@±80AlLÊQAÌ@ç80AlLpÊQAÌ 90AlL€ÊQAÌÀ@90AlL`ÊQAÌ€W90AlL ÊQAÌk90AlL ÊQAÌÀœ90AlL$ÊQA̶90AlL€%ÊQAÌÀæ90AlL0*ÊQAÌÀS:0AlL.ÊQAÌ@o:0AlL€/ÊQAÌ@ :0AlL5ÊQAÌ€Ê:0AlL:ÊQAÌ€ê:0AlLÀ>ÊQAÌ€ø:0AlL`@ÊQAÌ€Ä:0AlLð\ÊQAÌ€Ú:0AlLP^ÊQAÌ@ë:0AlL RÊQAÌ;0AlL`?ÊQAÌ€;0AlL09ÊQAÌ€";0AlL€;ÊQAÌÀ;0AlLCÊQAÌ ;0AlL@_ÊQAÌÀ;0AlLÀ_ÊQAÌ@";0AlLð[ÊQAÌ€;0AlL€ZÊQAÌÀ";0AlLÐHÊQAÌ@*;0AlLpAÊQAÌ5;0AlL AÊQAÌ€F;0AlL`@ÊQAÌÀ’;0AlLð>ÊQAÌå;0AlLAÊQAÌ@‡<0AlL@ÊQAÌ@Ã<0AlL`CÊQAÌé<0AlL@EÊQAÌ€=0AlL@HÊQAÌ€*=0AlLÀIÊQAÌ€H=0AlLLÊQAÌm=0AlLðOÊQAÌÀ}=0AlLPÊQAÌ­=0AlL0SÊQAÌÂ=0AlL UÊQAÌÀÞ=0AlL`WÊQAÌÀ$>0AlL°ZÊQAÌ€S>0AlL\ÊQAÌ@~>0AlL^ÊQAÌÀ™>0AlL€_ÊQAÌ@¼>0AlL `ÊQAÌ@Ü>0AlLðbÊQAÌ@?0AlL°dÊQAÌ€-?0AlL fÊQAÌ€N?0AlL hÊQAÌt?0AlL°jÊQAÌ€ ?0AlLmÊQAÌÀ@0AlL`tÊQAÌ€4@0AlLvÊQAÌp@0AlLpzÊQAÌÀ‹@0AlLzÊQAÌ€¨@0AlLp|ÊQAÌÀØ@0AlL~ÊQAÌ€þ@0AlL€ÊQAÌ@A0AlL`ÊQAÌ€GA0AlLð‚ÊQAÌÀ_A0AlLPƒÊQAÌ@ÙA0AlLp‰ÊQAÌÀ B0AlL0ŽÊQAÌNB0AlL’ÊQAÌ@tB0AlL`”ÊQAÌÀžB0AlL—ÊQAÌ®B0AlLP—ÊQAÌ@¸B0AlL0˜ÊQAÌ€ÊB0AlL`˜ÊQAÌ@ïB0AlL`…ÊQAÌÀ C0AlLàyÊQAÌ@C0AlL`pÊQAÌ@$C0AlL fÊQAÌÀ0C0AlL`]ÊQAÌ€8C0AlLàWÊQAÌ€FC0AlLàPÊQAÌ@WC0AlL`JÊQA@˜€À™/AlL ÜQAÌr"0AlLëQAd`?·-˜Ĥ/AlL QÞQA˜€ä¤/AlL JÞQA˜`¥/AlLÐ/ÞQA˜€€¥/AlL.ÞQA˜€Ã¥/AlLð1ÞQA˜À¥/AlL *ÞQA˜€Ã¥/AlL`"ÞQA˜€è¥/AlLpÞQA˜ ¦/AlL°ÞQA˜.¦/AlLàÞQA˜I¦/AlL@"ÞQA˜„¦/AlL!ÞQA˜€§¦/AlLPÞQA˜€Õ¦/AlL€ÞQA˜§/AlL ÞQA˜€3§/AlL ÞQA˜l§/AlLÐÞQA˜€Š§/AlL ÞQA˜€¶§/AlLÀÿÝQA˜­§/AlL øÝQA˜€n§/AlLÐ÷ÝQA˜§/AlLòÝQA˜€ú¦/AlL@èÝQA˜§/AlL°äÝQA˜€1§/AlL0äÝQA˜$§/AlLÞÝQA˜€§/AlLpÚÝQA˜+§/AlL ÒÝQA˜%§/AlLËÝQA˜€§/AlLàÄÝQA˜€§/AlLÁÝQA˜§/AlL ½ÝQA˜F§/AlLÀ·ÝQA˜e§/AlL°²ÝQA˜€a§/AlL`«ÝQA˜*§/AlLà¨ÝQA˜€Þ¦/AlL§ÝQA˜€•¦/AlLЧÝQA˜g¦/AlL0¥ÝQA˜@¦/AlL° ÝQA˜!¦/AlLÝQA˜¦/AlL0™ÝQA˜€¦/AlL •ÝQA˜V¦/AlL°”ÝQA˜€…¦/AlL’ÝQA˜€¢¦/AlL”ÝQA˜€ì¦/AlL°‘ÝQA˜û¦/AlLÝQA˜(§/AlLð‹ÝQA˜_§/AlLP‹ÝQA˜€e§/AlLpÝQA˜G§/AlLyÝQA˜€8§/AlLðuÝQA˜€ §/AlLPtÝQA˜í¦/AlLÀpÝQA˜Ú¦/AlL°kÝQA˜¨¦/AlLkÝQA˜€c¦/AlL0rÝQA˜ ¦/AlL°sÝQA˜€Ò¥/AlLzÝQA˜¯¥/AlL{ÝQA˜†¥/AlL|ÝQA˜^¥/AlL°xÝQA˜„¥/AlL`sÝQA˜€¡¥/AlL@oÝQA˜Á¥/AlL€iÝQA˜€º¥/AlL cÝQA˜²¥/AlL_ÝQA˜€ª¥/AlL0\ÝQA˜|¥/AlL@UÝQA˜€¢¥/AlLMÝQA˜€¸¥/AlL°GÝQA˜€Ñ¥/AlLàDÝQA˜€ê¥/AlLÀ@ÝQA˜€¦/AlL0<ÝQA˜¦/AlL 6ÝQA˜€)¦/AlL4ÝQA˜¦/AlL/ÝQA˜¦/AlL€+ÝQA˜€É¥/AlL !ÝQA˜€¡¥/AlL$ÝQA˜¥/AlL !ÝQA˜€!¥/AlL@ÝQA˜¥/AlLÐÝQA˜€ö¤/AlL°ÝQA˜¾¤/AlL` ÝQA˜€¬¤/AlLÐÝQA˜®¤/AlLPÝQA˜€»¤/AlLðüÜQA˜€¥/AlLÀúÜQA˜€Ò¤/AlLÐ÷ÜQA˜̤/AlL@óÜQA˜€é¤/AlLÀòÜQA˜€Ç¤/AlLðîÜQA˜€Ä¤/AlL`êÜQA˜€ê¤/AlLpãÜQA˜€Ñ¤/AlLÞÜQA˜Ƥ/AlLPÜÜQA˜Ÿ¤/AlL0ÕÜQA˜€‹¤/AlLÀÑÜQA˜€A¤/AlLpÍÜQA˜€3¤/AlLÉÜQA˜@¤/AlL`ÅÜQA˜€S¤/AlL ÀÜQA˜€X¤/AlLP¿ÜQA˜€.¤/AlL°¼ÜQA˜¤/AlLÀ¹ÜQA˜×£/AlL`·ÜQA˜°£/AlL@µÜQA˜€p£/AlLp¯ÜQA˜€p£/AlL ¬ÜQA˜€/£/AlL­ÜQA˜€£/AlLp«ÜQA˜€è¢/AlL§ÜQA˜Ÿ¢/AlL`žÜQA˜€c¢/AlLœÜQA˜7¢/AlLð˜ÜQA˜€ ¢/AlLÀ”ÜQA˜€Î¡/AlL°’ÜQA˜€Û¡/AlLÜQA˜€ø¡/AlL‡ÜQA˜¹¡/AlLà~ÜQA˜¡¡/AlLÐyÜQA˜Œ¡/AlL0uÜQA˜€[¡/AlLÀnÜQA˜€(¡/AlLÐoÜQA˜¡/AlL€lÜQA˜€¡/AlL`gÜQA˜å /AlL fÜQA˜Å /AlLfÜQA˜’ /AlLÀ\ÜQA˜€ /AlL°UÜQA˜m /AlL QÜQA˜€a /AlL@OÜQA˜€V /AlLàLÜQA˜< /AlL FÜQA˜€øŸ/AlLÀ@ÜQA˜ÄŸ/AlLÀ;ÜQA˜¥Ÿ/AlLp;ÜQA˜ŸŸ/AlL 8ÜQA˜¤Ÿ/AlL°3ÜQA˜€¦Ÿ/AlL01ÜQA˜€­Ÿ/AlLP(ÜQA˜€hŸ/AlLp"ÜQA˜0Ÿ/AlL ÜQA˜ Ÿ/AlL &ÜQA˜מ/AlLp*ÜQA˜ž/AlL°)ÜQA˜€ž/AlLð&ÜQA˜³/AlL`*ÜQA˜€~/AlL°.ÜQA˜€0/AlL4ÜQA˜/AlL <ÜQA˜€êœ/AlL€BÜQA˜–œ/AlLÐEÜQA˜hœ/AlLàHÜQA˜?œ/AlLPMÜQA˜9œ/AlLQÜQA˜œ/AlLÐRÜQA˜€É›/AlLPRÜQA˜™›/AlLpZÜQA˜€p›/AlL€_ÜQA˜Z›/AlL0bÜQA˜Z›/AlLiÜQA˜i›/AlL`nÜQA˜€b›/AlL sÜQA˜€I›/AlL°tÜQA˜€.›/AlL°uÜQA˜€"›/AlL |ÜQA˜€l›/AlLÐÜQA˜€¢›/AlLЉÜQA˜€Ü›/AlLPŠÜQA˜€ì›/AlLàÜQA˜÷›/AlL`ÜQA˜÷›/AlL›ÜQA˜€è›/AlLðŸÜQA˜ê›/AlL@¥ÜQA˜€ê›/AlLªÜQA˜€é›/AlL°ÜQA˜€Ü›/AlL@¼ÜQA˜Õ›/AlLÀÂÜQA˜€Á›/AlLÉÜQA˜€¤›/AlL ÐÜQA˜d›/AlLàÜÜQA˜ ›/AlL âÜQA˜€ ›/AlLðêÜQA˜€Öš/AlLïÜQA˜»š/AlL°ôÜQA˜€—š/AlL÷ÜQA˜š/AlL`ýÜQA˜€å™/AlLÀÿÜQA˜Ñ™/AlLÀÝQA˜€À™/AlLÀÝQA˜€Ú™/AlL€ÝQA˜€"š/AlL@ÝQA˜€Fš/AlL0ÝQA˜Hš/AlLÝQA˜€Aš/AlLpÝQA˜€rš/AlLàÝQA˜€…š/AlLÝQA˜®š/AlLàÝQA˜àš/AlLàÝQA˜÷š/AlLðÝQA˜€ ›/AlLÀÝQA˜€E›/AlL@ÝQA˜€›/AlLPÝQA˜«›/AlL ÝQA˜Û/AlLPÝQA˜€ß›/AlLÀÝQA˜€ç›/AlLPÝQA˜ô›/AlLp"ÝQA˜€œ/AlLÐ&ÝQA˜€:œ/AlL (ÝQA˜€Pœ/AlL,ÝQA˜€‡œ/AlLÐ/ÝQA˜³œ/AlLÐ,ÝQA˜ïœ/AlL€2ÝQA˜àœ/AlL :ÝQA˜€Üœ/AlL`>ÝQA˜€Ùœ/AlL BÝQA˜€æœ/AlLIÝQA˜îœ/AlL LÝQA˜€/AlLQÝQA˜9/AlL°RÝQA˜€V/AlLÐSÝQA˜€j/AlLÐXÝQA˜x/AlL\ÝQA˜€¤/AlL€cÝQA˜€Ò/AlL°gÝQA˜€þ/AlLlÝQA˜ž/AlLqÝQA˜:ž/AlL°tÝQA˜€Až/AlLÀ{ÝQA˜ož/AlL~ÝQA˜ž/AlLðuÝQA˜¢ž/AlL`yÝQA˜¼ž/AlLà€ÝQA˜€ìž/AlLP„ÝQA˜îž/AlL`‰ÝQA˜€TŸ/AlL`ŒÝQA˜€TŸ/AlL°ÝQA˜€4Ÿ/AlL°“ÝQA˜€Ÿ/AlLp™ÝQA˜àž/AlLžÝQA˜ž/AlL€¤ÝQA˜€îž/AlL°§ÝQA˜€Ÿ/AlL°¤ÝQA˜€8Ÿ/AlLð¤ÝQA˜€PŸ/AlL@£ÝQA˜mŸ/AlL@¡ÝQA˜ /AlL`¦ÝQA˜óŸ/AlL0¨ÝQA˜€ÏŸ/AlL°«ÝQA˜¦Ÿ/AlL µÝQA˜ŠŸ/AlLp¾ÝQA˜€zŸ/AlLðÂÝQA˜VŸ/AlLÇÝQA˜€/Ÿ/AlL0ËÝQA˜€úž/AlLÀÈÝQA˜€ž/AlL ÈÝQA˜€bž/AlL0ÍÝQA˜)ž/AlL0ÓÝQA˜€Ež/AlLÚÝQA˜€pž/AlLÖÝQA˜€™ž/AlLpÕÝQA˜¹ž/AlLðÔÝQA˜€Ùž/AlLÛÝQA˜Ÿ/AlL ßÝQA˜'Ÿ/AlLðÙÝQA˜1Ÿ/AlL€ÓÝQA˜ Ÿ/AlL`ÑÝQA˜GŸ/AlL°ÏÝQA˜€[Ÿ/AlLàÒÝQA˜XŸ/AlLàÕÝQA˜€hŸ/AlLÀ×ÝQA˜pŸ/AlLàÜÝQA˜€”Ÿ/AlLpÞÝQA˜¢Ÿ/AlLPÝÝQA˜µŸ/AlLÀßÝQA˜€ÅŸ/AlL`âÝQA˜ÜŸ/AlLàåÝQA˜ /AlLÞÝQA˜2 /AlLÐßÝQA˜Q /AlL@áÝQA˜€u /AlLáÝQA˜  /AlLÐàÝQA˜ /AlL@áÝQA˜€Í /AlL åÝQA˜€Á /AlL@èÝQA˜¡ /AlL€éÝQA˜r /AlL îÝQA˜€ƒ /AlLàðÝQA˜’ /AlL0óÝQA˜€¹ /AlLàóÝQA˜Ý /AlLôÝQA˜¡/AlL öÝQA˜€¡/AlLPøÝQA˜¡/AlL þÝQA˜ð /AlLPÞQA˜¡/AlL€ÞQA˜€V¡/AlL ÞQA˜ƒ¡/AlL° ÞQA˜€¡/AlLð ÞQA˜€Ì¡/AlLPÞQA˜å¡/AlLÐÞQA˜Ê¡/AlLÐÞQA˜·¡/AlLpÞQA˜‰¡/AlL€ÞQA˜d¡/AlLðÞQA˜Z¡/AlLÀÞQA˜€G¡/AlLÀÞQA˜€;¡/AlLP ÞQA˜€¡/AlL0#ÞQA˜€ý /AlL1ÞQA˜ß /AlL9ÞQA˜€ ¡/AlLÐAÞQA˜€G¡/AlL AÞQA˜X¡/AlL€CÞQA˜€[¡/AlLðFÞQA˜^¡/AlL`JÞQA˜p¡/AlLSÞQA˜€¢¡/AlLYÞQA˜€¢/AlLZÞQA˜8¢/AlLàWÞQA˜€Q¢/AlLPVÞQA˜€È¢/AlLJÞQA˜€ö¢/AlLðNÞQA˜Ô¢/AlLpOÞQA˜€ ¢/AlL\ÞQA˜€{¢/AlLhÞQA˜Ÿ¢/AlL°tÞQA˜®¢/AlLðwÞQA˜€Ä¢/AlLÐ|ÞQA˜€£/AlL‹ÞQA˜£/AlLPŽÞQA˜0£/AlL€”ÞQA˜f£/AlLÀ•ÞQA˜€o£/AlLÞQA˜£/AlLPŽÞQA˜££/AlL€ÞQA˜€¼£/AlL0‡ÞQA˜¾£/AlL`€ÞQA˜€Ç£/AlL~ÞQA˜Ø£/AlLyÞQA˜¤/AlL sÞQA˜€¤/AlLÀiÞQA˜€#¤/AlL bÞQA˜P¤/AlLP^ÞQA˜p¤/AlL0[ÞQA˜€w¤/AlL€XÞQA˜€¤/AlLVÞQA˜Ĥ/AlL QÞQA˜€c²/AlL€GàQA˜€y²/AlL`@àQA˜‘²/AlL>àQA˜ç²/AlLÐ;àQA˜ö²/AlLp8àQA˜ ³/AlLP4àQA˜÷²/AlL -àQA˜³/AlLà*àQA˜€³/AlLÐ'àQA˜G³/AlL€#àQA˜€³/AlL€ àQA˜€°³/AlLpàQA˜ê³/AlL0 àQA˜€ ´/AlL€%àQA˜€8´/AlL,àQA˜€Y´/AlLà/àQA˜€v´/AlL 3àQA˜´´/AlLp5àQA˜€å´/AlLà2àQA˜ µ/AlLÐ0àQA˜€"µ/AlLà.àQA˜€;µ/AlL,àQA˜€Mµ/AlLð%àQA˜€uµ/AlL@#àQA˜uµ/AlLÀàQA˜uµ/AlL0àQA˜–µ/AlLàQA˜€Àµ/AlL àQA˜òµ/AlLàQA˜¶/AlL àQA˜€<¶/AlL€àQA˜€`¶/AlL°àQA˜€¶/AlLpàQA˜ ¶/AlL àQA˜€Ç¶/AlL àQA˜ʶ/AlL€àQA˜á¶/AlLp!àQA˜·/AlLð&àQA˜H·/AlLp2àQA˜€^·/AlL0àQA˜‚·/AlL,àQA˜z·/AlLð'àQA˜p·/AlL0"àQA˜€ ·/AlL°àQA˜ж/AlLÀàQA˜€¢¶/AlLðàQA˜€{¶/AlL€àQA˜€9¶/AlL àQA˜€ñµ/AlLÀàQA˜rµ/AlL àQA˜€Mµ/AlLÐ àQA˜-µ/AlL  àQA˜µ/AlLpàQA˜ÿ´/AlLÀàQA˜€Ò´/AlL àQA˜€³´/AlL àQA˜£´/AlL0àQA˜”´/AlL àQA˜€I´/AlLààQA˜€"´/AlLÐ àQA˜€´/AlL€ àQA˜Ö³/AlL@ àQA˜€·³/AlLPàQA˜¸³/AlLÐÿßQA˜Ò³/AlL€üßQA˜€é³/AlLpùßQA˜Ó³/AlL@øßQA˜±³/AlLpößQA˜ˆ³/AlLòßQA˜g³/AlL€îßQA˜L³/AlLðßQA˜€2³/AlLïßQA˜€/³/AlLéßQA˜,³/AlL äßQA˜û²/AlLpÛßQA˜€è²/AlLà×ßQA˜è²/AlLÐÔßQA˜ç²/AlLÐÏßQA˜̲/AlL@ÊßQA˜›²/AlLÂßQA˜}²/AlLÀÁßQA˜T²/AlL ¾ßQA˜3²/AlL°´ßQA˜€2²/AlL`±ßQA˜€1²/AlL@­ßQA˜€ð±/AlL ªßQA˜—±/AlL°ßQA˜€•±/AlL ™ßQA˜€‡±/AlL0’ßQA˜#±/AlLP‘ßQA˜€±/AlL@ŽßQA˜€ï°/AlLЊßQA˜€á°/AlLpˆßQA˜€«°/AlL€ßQA˜°/AlL€{ßQA˜€‰°/AlLußQA˜s°/AlL sßQA˜k°/AlLoßQA˜€^°/AlLÀlßQA˜€H°/AlLphßQA˜€°/AlL0fßQA˜€ä¯/AlLÀbßQA˜į/AlLP`ßQA˜Н/AlLP_ßQA˜~¯/AlL0\ßQA˜ޝ/AlLÐTßQA˜ƒ¯/AlLpPßQA˜€x¯/AlLpLßQA˜J¯/AlLàHßQA˜€¯/AlLPGßQA˜¯/AlLEßQA˜€à®/AlL0CßQA˜€ì®/AlLp9ßQA˜Ì®/AlL 5ßQA˜€Â®/AlLP1ßQA˜¸®/AlLp.ßQA˜¾®/AlL0+ßQA˜€µ®/AlL %ßQA˜­®/AlLÀßQA˜€Ÿ®/AlLpßQA˜€i®/AlL°ßQA˜€6®/AlL@ßQA˜€ ®/AlLPßQA˜€ï­/AlLðßQA˜ ®/AlL@'ßQA˜€ü­/AlL`)ßQA˜ê­/AlL,ßQA˜€á­/AlLÐ/ßQA˜×­/AlL 4ßQA˜ç­/AlL`8ßQA˜€ß­/AlL ;ßQA˜€É­/AlLàIßQA˜®/AlL DßQA˜2®/AlLàBßQA˜€H®/AlLÐEßQA˜€F®/AlL IßQA˜^®/AlLMßQA˜€t®/AlLPPßQA˜€c®/AlL RßQA˜€®/AlL XßQA˜€®/AlL^ßQA˜ø­/AlLPbßQA˜Ò­/AlL@eßQA˜€±­/AlLÀißQA˜®­/AlLÀrßQA˜Õ­/AlL€ßQA˜έ/AlL@“ßQA˜¹­/AlLP–ßQA˜´­/AlLPžßQA˜€½­/AlLp¡ßQA˜€Ä­/AlL¤ßQA˜É­/AlLP«ßQA˜Ù­/AlLà®ßQA˜é­/AlLP²ßQA˜€m®/AlL ¥ßQA˜€n®/AlLПßQA˜€®/AlLàžßQA˜´®/AlL0žßQA˜Ñ®/AlLðœßQA˜€Ô®/AlL@¡ßQA˜€ ¯/AlL žßQA˜E¯/AlLð™ßQA˜€`¯/AlL˜ßQA˜€¯/AlLЕßQA˜¯/AlLИßQA˜€š¯/AlL°›ßQA˜€´¯/AlL¢ßQA˜Á¯/AlLà¥ßQA˜Ú¯/AlLШßQA˜€Ý¯/AlL`¬ßQA˜د/AlLà²ßQA˜€ê¯/AlL¶ßQA˜Ô¯/AlL`·ßQA˜Н/AlLÀ¹ßQA˜o¯/AlL€¾ßQA˜€O¯/AlLÀÀßQA˜ÀX¯/AlL`ÄßQA˜€f¯/AlL@ÆßQA˜w¯/AlLðÈßQA˜€l¯/AlL0ÌßQA˜€*¯/AlL@ÍßQA˜¯/AlLpÍßQA˜€ß®/AlL ÍßQA˜¨®/AlL`ÓßQA˜¢®/AlL ×ßQA˜™®/AlLÜßQA˜€Ÿ®/AlLðåßQA˜€¥®/AlLàèßQA˜¬®/AlLPìßQA˜­®/AlL ðßQA˜€­®/AlL`ôßQA˜Ç®/AlLðàQA˜ñ®/AlL0àQA˜¯/AlLàQA˜€/¯/AlLPàQA˜€¯/AlL àQA˜€¯/AlLà àQA˜õ®/AlLÐàQA˜¯/AlLàQA˜%¯/AlL@àQA˜€@¯/AlLÀàQA˜M¯/AlL àQA˜€T¯/AlL@ àQA˜^¯/AlL "àQA˜€p¯/AlLP'àQA˜€Š¯/AlLà'àQA˜€®¯/AlL (àQA˜Ư/AlLP*àQA˜€æ¯/AlL ,àQA˜ò¯/AlL`/àQA˜€°/AlL`3àQA˜,°/AlL`5àQA˜S°/AlL`7àQA˜°/AlL`:àQA˜©°/AlL=àQA˜ó°/AlLp=àQA˜±/AlLPAàQA˜€U±/AlL EàQA˜€Œ±/AlLPGàQA˜€Ä±/AlLPGàQA˜ñ±/AlLpCàQA˜²/AlLFàQA˜€c²/AlL€GàQA˜€J±/AlL°ZÞQA˜€ ±/AlLQÞQA˜â°/AlLLÞQA˜o°/AlL HÞQA˜€°/AlL GÞQA˜€—¯/AlLBÞQA˜€_¯/AlL@AÞQA˜.¯/AlLpCÞQA˜€ç®/AlL°CÞQA˜¬®/AlL AÞQA˜‚®/AlL€=ÞQA˜€&®/AlLÐ;ÞQA˜€ä­/AlL°3ÞQA˜€š­/AlL@/ÞQA˜€r­/AlL *ÞQA˜H­/AlL(ÞQA˜€­/AlL ÞQA˜à¬/AlLÞQA˜€Å¬/AlLp ÞQA˜€Ã¬/AlL ÞQA˜ˬ/AlLýÝQA˜Ƭ/AlLÐóÝQA˜Ȭ/AlL íÝQA˜¥¬/AlLçÝQA˜C¬/AlLPâÝQA˜í«/AlL0áÝQA˜€³«/AlLpâÝQA˜€s«/AlL`åÝQA˜€N«/AlLPëÝQA˜€«/AlLðñÝQA˜€þª/AlL°÷ÝQA˜éª/AlLÐûÝQA˜Ȫ/AlL@üÝQA˜€”ª/AlLÐýÝQA˜…ª/AlLPþÝQA˜´ª/AlL ÞQA˜€êª/AlL ÞQA˜€)«/AlL@ÞQA˜T«/AlL°ÞQA˜€~«/AlLà$ÞQA˜œ«/AlLÀ)ÞQA˜€ï«/AlL€/ÞQA˜€¬/AlLà6ÞQA˜#¬/AlLP?ÞQA˜z¬/AlL`BÞQA˜€š¬/AlL0EÞQA˜·¬/AlL0LÞQA˜€Õ¬/AlL@NÞQA˜€þ¬/AlL QÞQA˜€D­/AlL@UÞQA˜€}­/AlL€TÞQA˜¨­/AlL@[ÞQA˜€Ö­/AlL°^ÞQA˜÷­/AlLÀdÞQA˜®/AlL`jÞQA˜€O®/AlL pÞQA˜~®/AlLwÞQA˜”®/AlL~ÞQA˜y®/AlL`ƒÞQA˜s®/AlLŠÞQA˜€É®/AlLàŠÞQA˜ê®/AlL ÞQA˜€õ®/AlL°•ÞQA˜¯/AlLð˜ÞQA˜$¯/AlLàŸÞQA˜€A¯/AlL0¥ÞQA˜Y¯/AlL0ªÞQA˜€j¯/AlL ®ÞQA˜¯¯/AlLp®ÞQA˜€Ü¯/AlL °ÞQA˜€°/AlL@·ÞQA˜°/AlLð¾ÞQA˜%°/AlL ÅÞQA˜€e°/AlLÍÞQA˜€„°/AlLÐÒÞQA˜€°/AlLpÙÞQA˜£°/AlLÐãÞQA˜¿°/AlL0äÞQA˜€î°/AlLðäÞQA˜€a±/AlL÷ÞQA˜€ž±/AlL`úÞQA˜€²±/AlLþÞQA˜€Å±/AlLßQA˜²/AlL ßQA˜6²/AlLÐ ßQA˜€”²/AlLÀßQA˜€ñ²/AlLàßQA˜€2³/AlLßQA˜ß³/AlLàßQA˜€ú³/AlL`ßQA˜€F´/AlLßQA˜€R´/AlLûÞQA˜€_´/AlL õÞQA˜´/AlLóÞQA˜€¢´/AlL0ñÞQA˜’´/AlL@ëÞQA˜„´/AlLÐßÞQA˜v´/AlLØÞQA˜T´/AlLÐÐÞQA˜[´/AlL°ÇÞQA˜€K´/AlL¿ÞQA˜´/AlLÀ»ÞQA˜€ñ³/AlLð¹ÞQA˜½³/AlL@·ÞQA˜³/AlLгÞQA˜]³/AlLЯÞQA˜€/³/AlLpªÞQA˜³/AlLÀ¨ÞQA˜ì²/AlLÀ ÞQA˜Ѳ/AlLÀ›ÞQA˜€²/AlL ˜ÞQA˜k²/AlL“ÞQA˜3²/AlL ‹ÞQA˜²/AlL€~ÞQA˜€²/AlL@xÞQA˜²/AlLÐoÞQA˜б/AlLÐkÞQA˜б/AlLpjÞQA˜f±/AlL`cÞQA˜€J±/AlL°ZÞQAÌÿ0AlLëQAÌÀ 0AlLÀëQAÌÀ 0AlLðëQAÌÀ' 0AlLàëQAÌ@5 0AlLÀëQAÌ€F 0AlL@ëQAÌ€W 0AlLðëQAÌ€g 0AlLðëQAÌp 0AlLÀëQAÌ€” 0AlL ëQAÌ¥ 0AlLPëQAÌ@¹ 0AlL@ëQAÌ@Ç 0AlL ëQAÌÀÐ 0AlLëQAÌ€Ù 0AlLÀëQAÌÀî 0AlL@ëQAÌõ 0AlL°ëQAÌÀð 0AlLPúêQAÌ€õ 0AlL`÷êQAÌ!0AlLð÷êQAÌ !0AlL€ùêQAÌÀ!0AlLpþêQAÌ€ !0AlLÿêQAÌ€!0AlLàëQAÌ@&!0AlLðëQAÌÀ8!0AlL0ëQAÌ€G!0AlLPëQAÌQ!0AlLëQAÌÀY!0AlLPÿêQAÌi!0AlLëQAÌÀu!0AlLëQAÌ@}!0AlL0ëQAÌ€!0AlL üêQAÌ@„!0AlL0øêQAÌ!0AlLùêQAÌ›!0AlL ýêQAÌ€ !0AlL ëQAÌÀ¡!0AlL@ëQAÌ€«!0AlLÐëQA̾!0AlL ëQAÌË!0AlLÀ ëQAÌ@Ú!0AlLP ëQAÌÀæ!0AlLëQAÌÀø!0AlLëQAÌ@"0AlLëQAÌ@"0AlLPëQAÌ€("0AlLPëQAÌ€3"0AlL°ëQAÌ>"0AlL ëQAÌ€K"0AlLàëQAÌ["0AlLàëQAÌh"0AlLðëQAÌr"0AlLÀëQAÌl"0AlL` ëQAÌÀj"0AlLðëQAÌÀi"0AlL ëQAÌÀb"0AlLàëQAÌÀ`"0AlL€ëQAÌb"0AlL@þêQAÌ€f"0AlLPûêQAÌÀZ"0AlLðøêQAÌ@M"0AlLÐ÷êQAÌÀ8"0AlLPõêQAÌ@&"0AlLàòêQAÌÀ"0AlL`ôêQAÌ€"0AlL öêQAÌÀ "0AlL@òêQAÌÀ"0AlL0îêQAÌ€"0AlL°èêQAÌ"0AlLpäêQAÌÀ÷!0AlLðàêQAÌê!0AlL@ÛêQAÌÝ!0AlLàÕêQAÌ€Ç!0AlLÀÑêQAÌ@¬!0AlL ÍêQAÌÀ™!0AlLÀÊêQAÌÀƒ!0AlLÈêQAÌÀq!0AlL@ÆêQAÌ`!0AlLÆêQAÌ€H!0AlLpÉêQAÌÞQA˜€‡©/AlL:ÞQA˜€t©/AlLà3ÞQA˜u©/AlL /ÞQA˜€8©/AlL@(ÞQA˜©/AlLP)ÞQA˜³¨/AlL`*ÞQA˜€•¨/AlLà(ÞQA˜€k¨/AlL€+ÞQA˜>¨/AlLÐ*ÞQA˜¨/AlLP.ÞQA˜¨/AlLÐ0ÞQA˜ñ§/AlL6ÞQA˜€ä§/AlL`:ÞQA˜€Ð§/AlL€AÞQA˜€¬§/AlL°@ÞQA˜_§/AlL CÞQA˜x§/AlLÀEÞQA˜ާ/AlL@HÞQA˜€Â§/AlL°HÞQA˜€Ô§/AlL`OÞQA˜¨/AlL°KÞQA˜€&¨/AlLEÞQA˜€U¨/AlLpDÞQA˜€ž¨/AlLPCÞQA˜ͨ/AlLÀ?ÞQA˜€í¨/AlL@?ÞQA˜©/AlLP;ÞQA˜€,©/AlL=ÞQA˜©/AlL DÞQA˜ô¨/AlL EÞQA˜©/AlLHÞQA˜€©/AlLàKÞQA˜ ©/AlLàSÞQA˜÷¨/AlL@YÞQA˜€í¨/AlLÐ[ÞQA˜Ò¨/AlLp`ÞQA˜€º¨/AlL@dÞQA˜ã¨/AlL cÞQA˜€ý¨/AlL`fÞQA˜€+©/AlL@cÞQA˜N©/AlLÐaÞQA˜€j©/AlL°`ÞQA˜€x©/AlL0gÞQA˜€]©/AlLÀkÞQA˜€©/AlLhÞQA˜€¯©/AlL°fÞQA˜Ä©/AlL dÞQA˜Ý©/AlLpbÞQA,˜€~ /AlL@„ºQA˜€šÿ/AlLÀœÉQA€^˜ò÷/AlLÀñÈQA˜¾ö/AlLÃÈQA˜€.ö/AlL ²ÈQA˜€êõ/AlL`¤ÈQA˜Úõ/AlL ¡ÈQA˜õ/AlLà‘ÈQA˜€½ô/AlLà‹ÈQA˜pô/AlLˆÈQA˜€#ô/AlL@…ÈQA˜Öó/AlL †ÈQA˜€žó/AlL ‡ÈQA˜€ró/AlL€ŠÈQA˜Dó/AlL`ŽÈQA˜ðò/AlL@”ÈQA˜èò/AlL`šÈQA˜€˜ò/AlLžÈQA˜€dò/AlLÈQA˜€ò/AlL€˜ÈQA˜Öñ/AlLÈQA˜€žñ/AlL ‚ÈQA˜Rñ/AlL`vÈQA˜âð/AlLÀcÈQA˜Rð/AlL PÈQA˜äï/AlLàDÈQA˜€qï/AlL =ÈQA˜äî/AlLà6ÈQA˜€^î/AlL 4ÈQA˜€uí/AlL°AÈQA˜í/AlL`0ÈQA˜ãì/AlL@$ÈQA˜Ùì/AlLàÈQA˜Ëì/AlL ÈQA˜€Çì/AlLÀøÇQA˜Æì/AlL éÇQA˜×ì/AlL`ÕÇQA˜øì/AlL ÇÇQA˜2í/AlL`ÀÇQA˜€4î/AlL¬ÇQA˜‹î/AlL­ÇQA˜ßî/AlL@­ÇQA˜€$ï/AlL¨ÇQA˜úï/AlL€ŠÇQA˜Xï/AlL vÇQA˜Þï/AlL€bÇQA˜Çï/AlLp^ÇQA˜vï/AlLÀPÇQA˜Lï/AlL€DÇQA˜€üî/AlL@8ÇQA˜‹î/AlLÀ.ÇQA˜€ïí/AlLÇQA˜|í/AlL`ÇQA˜âì/AlL@ÇQA˜…ì/AlL úÆQA˜ì/AlLîÆQA˜¥ë/AlLÀæÆQA˜$ë/AlLà߯QA˜€ãê/AlL€ÑÆQA˜€Çê/AlL`ÂÆQA˜€±ê/AlLà³ÆQA˜yê/AlLÀ©ÆQA˜&ê/AlL@˜ÆQA˜éé/AlL “ÆQA˜Âé/AlLŽÆQA˜€Œé/AlLðˆÆQA˜qé/AlL€†ÆQA˜.é/AlL „ÆQA˜Íè/AlL@}ÆQA˜ è/AlL uÆQA˜€Wè/AlL mÆQA˜äç/AlL hÆQA˜©ç/AlL hÆQA˜aç/AlL@dÆQA˜€ôæ/AlLÀYÆQA˜Ææ/AlL@OÆQA˜€zæ/AlL@IÆQA˜€æ/AlLpAÆQA˜€µå/AlL°DÆQA˜€ƒå/AlL€:ÆQA˜€xå/AlL 1ÆQA˜Bå/AlL 'ÆQA˜å/AlLà ÆQA˜€¸ä/AlL`ÆQA˜šä/AlL€ÆQA˜€ä/AlL  ÆQA˜€gä/AlLÆQA˜?ä/AlLàþÅQA˜þã/AlLÀôÅQA˜Îã/AlLîÅQA˜‰ã/AlLàìÅQA˜Hã/AlLàìÅQA˜Üâ/AlL êÅQA˜€Åâ/AlLÀòÅQA˜€—â/AlLàøÅQA˜Kâ/AlL@ùÅQA˜â/AlLàÆQA˜²á/AlLÆQA˜€rá/AlL ÆQA˜2á/AlLÀÆQA˜ á/AlLÀüÅQA˜çà/AlL`õÅQA˜ªà/AlLÀïÅQA˜qà/AlL@éÅQA˜_à/AlLàãÅQA˜Fà/AlLÀÜÅQA˜€Eà/AlLÀÕÅQA˜Bà/AlL ÎÅQA˜?à/AlL ÈÅQA˜€9à/AlL€ÀÅQA˜à/AlL ¸ÅQA˜„ß/AlL€¤ÅQA˜€¤ß/AlL@œÅQA˜wß/AlL˜ÅQA˜1ß/AlLàÅQA˜ãÞ/AlL`‡ÅQA˜|Þ/AlL€~ÅQA˜€³Þ/AlL`tÅQA˜ÀÞ/AlL hÅQA˜€§Þ/AlL ^ÅQA˜€«Þ/AlL`WÅQA˜•Þ/AlLàMÅQA˜tÞ/AlL€GÅQA˜€,Þ/AlL >ÅQA˜ßÝ/AlL 5ÅQA˜ Ý/AlLÀ/ÅQA˜rÝ/AlLà$ÅQA˜pÝ/AlLÀÅQA˜aÝ/AlL`ÅQA˜lÝ/AlL ÅQA˜€3Ý/AlL€ùÄQA˜Ý/AlL õÄQA˜€ÏÜ/AlL íÄQA˜Ý/AlL ÏÄQA˜ÌÜ/AlL ÉÄQA˜€£Ü/AlL »ÄQA˜¨Ü/AlLà³ÄQA˜€aÜ/AlL€³ÄQA˜Ü/AlL°µÄQA˜ÎÛ/AlL²ÄQA˜~Û/AlL@©ÄQA˜€öÚ/AlL€ŸÄQA˜¥Ú/AlL@–ÄQA˜€BÚ/AlL ’ÄQA˜ôÙ/AlLàŽÄQA˜¶Ù/AlL‡ÄQA˜€~Ù/AlL@~ÄQA˜Ù/AlL sÄQA˜€ùØ/AlLà{ÄQA˜½Ø/AlLà…ÄQA˜`Ø/AlLàŠÄQA˜Ê×/AlL ÄQA˜€|×/AlL™ÄQA˜1×/AlLà¢ÄQA˜ßÖ/AlL ¤ÄQA˜Ö/AlL€ ÄQA˜ Ö/AlL`šÄQA˜€ÍÕ/AlL ÄQA˜»Ô/AlL xÄQA˜nÔ/AlL nÄQA˜4Ô/AlL iÄQA˜×Ó/AlLÀcÄQA˜”Ó/AlLà`ÄQA˜€Ó/AlL[ÄQA˜€­Ò/AlL`jÄQA˜€œÒ/AlL kÄQA˜€“Ò/AlL`bÄQA˜Ò/AlLà[ÄQA˜CÒ/AlLàSÄQA˜€Ò/AlL€RÄQA˜ÆÑ/AlLÀ[ÄQA˜¬Ð/AlL€™ÄQA˜EÐ/AlL šÄQA˜ÜÏ/AlL`šÄQA˜—Ï/AlL ›ÄQA˜eÏ/AlL`žÄQA˜€Ï/AlL€¥ÄQA˜äÎ/AlLà©ÄQA˜€ˆÎ/AlL@«ÄQA˜€EÎ/AlL€­ÄQA˜€‡È/AlLõÄQA˜8È/AlL@íÄQA˜È/AlL ôÄQA˜èÇ/AlL@úÄQA˜·Ç/AlL ÿÄQA˜yÇ/AlLàÅQA˜=Ç/AlL ÅQA˜€NÆ/AlLÅQA˜!Æ/AlL  ÅQA˜Æ/AlL`ÅQA˜€ÐÅ/AlL@÷ÄQA˜vÅ/AlL`æÄQA˜€@Å/AlL`ÝÄQA˜êÄ/AlLÀÑÄQA˜¿Ä/AlL`ÈÄQA˜•Ä/AlLÁÄQA˜pÄ/AlL »ÄQA˜€UÄ/AlL`µÄQA˜Ä/AlL€­ÄQA˜€õÃ/AlL ¢ÄQA˜ÀÃ/AlL ™ÄQA˜yÃ/AlLÀ’ÄQA˜6Ã/AlL ÄQA˜øÂ/AlL†ÄQA˜­Â/AlLÀ~ÄQA˜lÂ/AlLyÄQA˜€"Â/AlLÀsÄQA˜ÐÁ/AlLÀlÄQA˜ Á/AlL hÄQA˜€jÁ/AlL`ÄQA˜€1Á/AlLÀ]ÄQA˜€ÇÀ/AlL [ÄQA˜€oÀ/AlLà[ÄQA˜&À/AlL]ÄQA˜€Ö¿/AlL@\ÄQA˜£¿/AlLÐ_ÄQA˜x¿/AlL\ÄQA˜@¿/AlL SÄQA˜+¿/AlL@SÄQA˜Ǿ/AlLàPÄQA˜´¾/AlL€NÄQA˜…¾/AlLIÄQA˜€h¾/AlL AÄQA˜€V¾/AlLÀ:ÄQA˜O¾/AlLÀ7ÄQA˜€<¾/AlLà/ÄQA˜ ¾/AlL )ÄQA˜¾/AlL€ ÄQA˜ݽ/AlLÄQA˜€·½/AlL@ÄQA˜€Š½/AlL  ÄQA˜€L½/AlL ÄQA˜€§¼/AlL@ÄQA˜X¼/AlL üÃQA˜À¼/AlL€öÃQA˜î»/AlL ñÃQA˜­»/AlLÀêÃQA˜X»/AlL€èÃQA˜€1»/AlL ãÃQA˜€»/AlL`ÝÃQA˜€Üº/AlL ØÃQA˜€º/AlLÉÃQA˜€7º/AlL€¾ÃQA˜ò¹/AlL µÃQA˜€t¹/AlL€¬ÃQA˜€Œ¸/AlLàžÃQA˜â·/AlLÀ“ÃQA˜ ·/AlLÀŽÃQA˜‡·/AlLÃQA˜q¶/AlLà{ÃQA˜vµ/AlLàoÃQA˜ç²/AlL`\ÃQA˜ç²/AlLUÃQA˜€¿²/AlLàLÃQA˜W±/AlL€BÃQA˜€x¯/AlLà%ÃQA˜±®/AlL@ÃQA˜€‘­/AlL€ÃQA˜%­/AlL`ÃQA˜€Ê¬/AlL ÃQA˜d¬/AlLp ÃQA˜!¬/AlL ÃQA˜Û«/AlL`ÃQA˜ç«/AlLÃQA˜€Ï«/AlLÀÃQA˜ˆ«/AlL`ÃQA˜€P«/AlLúÂQA˜€ýª/AlL ÷ÂQA˜€¸ª/AlL€ôÂQA˜€lª/AlLÀìÂQA˜€ð©/AlL`çÂQA˜©/AlL€àÂQA˜®¨/AlL€ÝÂQA˜_¨/AlL€ÙÂQA˜ɧ/AlL@ÚÂQA˜€§/AlLÛÂQA˜€¦¦/AlLÛÂQA˜ ¦/AlL`ÕÂQA˜•¥/AlLÀÒÂQA˜€`¤/AlL`ßÂQA˜¤/AlLâÂQA˜Û£/AlL@äÂQA8¹™{£/A8Í,äÂQA˜€B£/AlL ãÂQA˜î¢/AlLàßÂQA˜Œ¢/AlLØÂQA˜?¢/AlL ÒÂQA˜€æ¡/AlLÎÂQA˜€O¡/AlLàÆÂQA˜â /AlLÀÄÂQA˜x /AlLÀÃÂQA˜êŸ/AlL@ÂÂQA˜zŸ/AlL¾ÂQA˜€ Ÿ/AlL@½ÂQA˜¢ž/AlLà»ÂQA˜Ä/AlL ¸ÂQA˜^/AlL@·ÂQA˜Øœ/AlL ¶ÂQA˜˜œ/AlL@µÂQA˜€›/AlL€¡ÂQA˜cš/AlL€œÂQA˜€Ì™/AlLà“ÂQA˜€d™/AlL ’ÂQA˜'™/AlL ŽÂQA˜€å˜/AlL€ŒÂQA˜€²˜/AlL ŠÂQA˜d˜/AlL †ÂQA˜€5˜/AlLÀƒÂQA˜ï—/AlL€ÂQA˜€®—/AlL€|ÂQA˜€{—/AlLÀyÂQA˜—/AlL wÂQA˜€ç–/AlLÀtÂQA˜€‹–/AlL pÂQA˜7–/AlL pÂQA˜ê•/AlL€uÂQA˜Š•/AlL`wÂQA˜F•/AlLÀrÂQA˜•/AlL nÂQA˜Q”/AlL gÂQA˜€”/AlL kÂQA˜€Æ“/AlL`qÂQA˜‡“/AlL tÂQA˜{“/AlL@tÂQA˜B“/AlLuÂQA˜€“/AlL€uÂQA˜²’/AlLÀrÂQA˜f’/AlL oÂQA˜'’/AlLiÂQA˜Ä‘/AlL fÂQA˜€r‘/AlLàgÂQA˜=‘/AlLjÂQA˜€ù/AlLàkÂQA˜½/AlLàkÂQA˜|/AlLmÂQA˜€ì/AlL qÂQA˜½/AlL pÂQA˜€/AlLàmÂQA˜–Ž/AlL pÂQA˜WŽ/AlL€lÂQA˜€î/AlL`lÂQA˜x/AlL lÂQA˜€ /AlL`mÂQA˜¼Œ/AlL€nÂQA˜uŒ/AlL@kÂQA˜7Œ/AlLkÂQA˜P‹/AlL@jÂQA˜ÜŠ/AlLlÂQA˜nŠ/AlLoÂQA˜õ‰/AlLvÂQA˜´‰/AlL{ÂQA˜q‰/AlL {ÂQA˜A‰/AlLÀ~ÂQA˜€‰/AlLƒÂQA˜›ˆ/AlL ˆÂQA˜€lˆ/AlL@ÂQA˜ˆ/AlL ™ÂQA˜€â‡/AlL  ÂQA˜°‡/AlL@§ÂQA˜†/AlL`nÀQA˜€o/AlLPfÀQA˜€/AlLIÀQA˜€€/AlLÀQA˜€íu/AlL R¾QA˜€âu/AlL J¾QA˜v/AlLà:¾QA˜€v/AlL2¾QA˜€&v/AlL '¾QA˜*v/AlLÀ¾QA˜0v/AlL@ ¾QA˜6v/AlL@¾QA˜@v/AlL@ó½QA˜€ov/AlL©½QA˜yv/AlL`”½QA˜€zv/AlL †½QA˜~v/AlLÀx½QA˜‰v/AlLàh½QA˜v/AlLà]½QA˜}v/AlL S½QA˜zv/AlLG½QA˜„v/AlLÀ5½QA˜€‚v/AlL`)½QA˜€v/AlL ½QA˜€v/AlL ½QA˜€´v/AlL€û¼QA˜×v/AlL€ó¼QA˜év/AlL ì¼QA˜€ùv/AlLå¼QA˜w/AlLÙ¼QA˜w/AlLÀμQA˜€w/AlL Ä¼QA˜€&w/AlL ¼¼QA˜w/AlL¯¼QA˜w/AlL¤¼QA˜*w/AlL@’¼QA˜€(w/AlL †¼QA˜,w/AlL€u¼QA˜€=w/AlL`h¼QA˜Tw/AlL@Y¼QA˜nw/AlL N¼QA˜{w/AlL@E¼QA˜€•w/AlL`3¼QA˜€¦w/AlLà&¼QA˜½w/AlLÀ¼QA˜×w/AlL  ¼QA˜èw/AlL€¼QA˜÷w/AlLàø»QA˜€Åw/AlLàö»QA˜€Ðv/AlLÀý»QA˜™v/AlL ¼QA˜€`v/AlL€û»QA˜#v/AlLû»QA˜€ßu/AlL`ü»QA˜€|v/AlL ¸»QA˜€§v/AlLÀ³»QA˜#w/AlL฻QA˜jw/AlL¿»QA˜€³w/AlL`Ä»QA˜x/AlL`È»QA˜yx/AlL@Ë»QA˜gy/AlLÀ”»QA˜y/AlL@»QA˜Ýy/AlL {»QA˜€üy/AlL v»QA˜€z/AlL`k»QA˜€&z/AlL^»QA˜€^z/AlL€O»QA˜Àz/AlL 8»QA˜{/AlLà.»QA˜-{/AlL€"»QA˜K{/AlL »QA˜€x{/AlL»QA˜€¯z/AlL€»QA˜€Rz/AlLà»QA˜€ày/AlLàøºQA˜Šy/AlLÀôºQA˜€Gy/AlLñºQA˜ôx/AlL@ïºQA˜€]x/AlL äºQA˜€ x/AlL`àºQA˜…w/AlLɺQA˜yw/AlLÀɺQA˜Þu/AlLÀãºQA˜ou/AlLàêºQA˜|t/AlLÀñºQA˜Ks/AlL@þºQA˜€q/AlL »QA˜%q/AlL@e»QA˜mp/AlL _»QA˜€p/AlLà«»QA˜¡p/AlL®»QA˜âp/AlLà°»QA˜Eq/AlLÀ°»QA˜©q/AlLà­»QA˜€ðq/AlL€«»QA˜7r/AlL€¨»QA˜Œr/AlL§»QA˜€=s/AlL ©»QA˜,s/AlL±»QA˜s/AlL`Á»QA˜€ s/AlL É»QA˜s/AlL Ñ»QA˜s/AlLÀÚ»QA˜3s/AlL ä»QA˜€?s/AlL@î»QA˜Is/AlL ú»QA˜:s/AlL ¼QA˜®r/AlL@¼QA˜Wr/AlL@¼QA˜ r/AlL@ ¼QA˜Òq/AlL #¼QA˜jq/AlL@%¼QA˜q/AlL %¼QA˜€Âp/AlLà-¼QA˜p/AlL€:¼QA˜-p/AlL`C¼QA˜€Ío/AlL F¼QA˜ro/AlLÀF¼QA˜€Ho/AlLÀP¼QA˜€3o/AlLà`¼QA˜#o/AlLào¼QA˜€o/AlL}¼QA˜o/AlL †¼QA˜€o/AlL€™¼QA˜€&o/AlL€¦¼QA˜€o/AlL ¶¼QA˜Ýn/AlL€Á¼QA˜¾n/AlLàØ¼QA˜€©n/AlL€ç¼QA˜‚n/AlLÀô¼QA˜€[n/AlLÀÿ¼QA˜>n/AlL@½QA˜n/AlL½QA˜Õm/AlL€½QA˜ým/AlL *½QA˜€!n/AlL5½QA˜€Sn/AlL=½QA˜n/AlL E½QA˜€›n/AlLL½QA˜ˆn/AlL Y½QA˜€kn/AlL€k½QA˜Rn/AlLà|½QA˜)n/AlL ½QA˜€n/AlL ¢½QA˜Ôm/AlL ´½QA˜©m/AlLÀýQA˜€m/AlLÀÔ½QA˜€lm/AlL`ݽQA˜bm/AlL è½QA˜Mm/AlLÀô½QA˜Fm/AlL€¾QA˜€Tm/AlL@¾QA˜Wm/AlLà¾QA˜Pm/AlL &¾QA˜€@m/AlL€/¾QA˜1m/AlL`5¾QA˜m/AlL€?¾QA˜Hm/AlL@C¾QA˜lm/AlLÀI¾QA˜£m/AlLàS¾QA˜€·m/AlL`h¾QA˜€Èm/AlL`q¾QA˜Ým/AlLÀw¾QA˜€n/AlL@†¾QA˜n/AlL ¾QA˜n/AlL¾QA˜+n/AlL§¾QA˜"n/AlL€³¾QA˜-n/AlL ½¾QA˜€>n/AlLàžQA˜€Jn/AlL€Ð¾QA˜ƒn/AlLÀɾQA˜€Ôn/AlL@ʾQA˜€ón/AlL@оQA˜ßn/AlL`ؾQA˜€Ån/AlLâ¾QA˜m/AlL C¿QA˜€¸j/AlL@Á¿QA˜ße/AlLO¿QA˜€a/AlLÐ ¿QA˜ì]/AlL€¿QA˜€—Y/AlL`¿QA˜yP/AlL@A¿QA˜€9P/AlLàB¿QA˜€nP/AlLàK¿QA˜€|P/AlL@S¿QA˜–P/AlLàf¿QA˜€›P/AlL€u¿QA˜ŒP/AlL€Š¿QA˜P/AlL€—¿QA˜€fP/AlLିQA˜€JP/AlL@¿¿QA˜€?P/AlL@Ò¿QA˜€6P/AlLÀé¿QA˜!P/AlL@÷¿QA˜üO/AlLÀÀQA˜ðO/AlLÀQA˜ÎO/AlLÀÀQA˜¡O/AlLà*ÀQA˜¤O/AlLÀ:ÀQA˜ÍO/AlL HÀQA˜€çO/AlL dÀQA˜YP/AlL€ŒÁQA˜P/AlL‘ÁQA˜óO/AlL–ÁQA˜ÖO/AlL›ÁQA˜€šO/AlL@¤ÁQA˜€fO/AlL ªÁQA˜€9O/AlLÀ¯ÁQA˜€ O/AlL ´ÁQA˜ÚN/AlL@¼ÁQA˜€¹M/AlLÀÄÁQA˜€kM/AlLpÆÁQA˜€CM/AlL@ÇÁQA˜ÞL/AlL`ÉÁQA˜€L/AlLÀÈÁQA˜/AlLpÀQA˜º>/AlLî¿QA˜¸>/AlL Ø¿QA˜Á>/AlLàÇ¿QA˜Î>/AlLà·¿QA˜Û>/AlL ¤¿QA˜ä>/AlLà—¿QA˜ÿ>/AlLÀ„¿QA˜?/AlL@¿QA˜ ?/AlL y¿QA˜"?/AlLj¿QA˜Y?/AlLA¿QA˜?/AlL@0¿QA˜€œ?/AlL€¿QA˜µ?/AlL`¿QA˜€Æ?/AlL é¾QA˜Ó?/AlL Þ¾QA˜ð?/AlL Ñ¾QA˜€ @/AlL Ê¾QA˜€4@/AlLàþQA˜P@/AlL ½¾QA˜€k@/AlL@´¾QA˜€i@/AlL ©¾QA˜€\@/AlL ¾QA˜€k@/AlL ”¾QA˜x@/AlL ˆ¾QA˜}@/AlL ¾QA˜^@/AlL@u¾QA˜8@/AlLàg¾QA˜€@/AlLà`¾QA˜ü?/AlL@Y¾QA˜€Ú?/AlL`S¾QA˜Ø?/AlL I¾QA˜€Þ?/AlLà=¾QA˜í?/AlL 5¾QA˜ @/AlL`)¾QA˜ @/AlL#¾QA˜=@/AlL@¾QA˜Z@/AlL ¾QA˜€z@/AlL ¾QA˜€ @/AlL û½QA˜»@/AlL ô½QA˜Î@/AlL€î½QA˜€ô@/AlL€ç½QA˜A/AlLàá½QA˜KA/AlLàÔ½QA˜bA/AlL@ȽQA˜iA/AlL@À½QA˜{A/AlL`¹½QA˜€˜A/AlL`³½QA˜€ÃA/AlL«½QA˜€ B/AlLÀ ½QA˜B/AlL “½QA˜+B/AlL`…½QA˜HB/AlL |½QA˜€tB/AlLÀu½QA˜€§B/AlL`s½QA˜€èB/AlLÀr½QA˜+C/AlL@n½QA˜€hC/AlL€e½QA˜ŒC/AlLÀ_½QA˜€°C/AlL[½QA˜€øC/AlL U½QA˜7D/AlL J½QA˜¬D/AlL1½QA˜¾D/AlL &½QA˜¿D/AlL ½QA˜ÁD/AlL€½QA˜ÆD/AlL@½QA˜€ÈD/AlL@½QA˜€ÕD/AlL€ü¼QA˜€ÞD/AlLàò¼QA˜þD/AlLæ¼QA˜€1E/AlL€à¼QA˜QE/AlLÞ¼QA˜}E/AlL Ú¼QA˜€6F/AlL€Ä¼QA˜€€F/AlL º¼QA˜€ªF/AlLð´¼QA˜G/AlL°¥¼QA˜&G/AlL@¤¼QA˜E8/AlL€’ºQA˜œ7/AlLÀ’ºQA˜ü6/AlL ’ºQA˜€ž6/AlL@ºQA˜"6/AlLàŠºQA˜˜5/AlLà…ºQA˜€÷4/AlL@…ºQA˜€E4/AlL@„ºQA˜€ø2/AlL`ºQA˜v2/AlL€–ºQA˜€ú1/AlLœºQA˜1/AlL`¨ºQA˜€+1/AlL€­ºQA˜Þ0/AlL಺QA˜€q0/AlLÀººQA˜€0/AlL ÅºQA˜€À//AlL€ËºQA˜r//AlL ÓºQA˜€//AlL@ܺQA˜€Õ./AlL èºQA˜€y./AlLàðºQA˜€./AlL€üºQA˜·-/AlLà»QA˜€g-/AlLà »QA˜€-/AlL »QA˜€Ç,/AlL`»QA˜€–,/AlLÀ#»QA˜€¡*/AlL O»QA˜€H*/AlLàZ»QA˜*/AlLÀZ»QA˜F'/AlL œ»QA˜€ð&/AlL°¤»QA˜"&/AlL@¹»QA˜€¿%/AlLàûQA˜€Q%/AlLÀлQA˜â$/AlL`Ú»QA˜M$/AlLàç»QA˜¹#/AlL€ø»QA˜€:#/AlLÀ ¼QA˜€Õ"/AlL ¼QA˜€…"/AlL€&¼QA˜€n"/AlL 2¼QA˜k"/AlL@@¼QA˜€U"/AlLàH¼QA˜€A"/AlL P¼QA˜ "/AlL@^¼QA˜€½!/AlLÀl¼QA˜€r!/AlL x¼QA˜€{/AlL€½QA˜€$/AlL`½QA˜Þ/AlL ½QA˜t/AlLÀ,½QA˜Ö/AlL@=½QA˜€|/AlL`>½QA˜ /AlL@=½QA˜·/AlL@C½QA˜€Ü/AlL v½QA˜€z/AlLàx½QA˜0/AlLÀ|½QA˜Ä/AlLh€½QA˜€ /AlL–½QA˜Œ/AlL€™½QA˜/AlLÀœ½QA˜€x/AlL` ½QA˜€î/AlL€§½QA˜€‚/AlL µ½QA˜/AlL@»½QA˜­/AlL À½QA˜€h/AlLĽQA˜€!/AlLàǽQA˜€Ì/AlL€Ì½QA˜‡/AlLàνQA˜K/AlL Ñ½QA˜€/AlL Õ½QA˜€å/AlL€Ú½QA˜—/AlL`Û½QA˜O/AlLÀÚ½QA˜€~ /AlL ¾QA˜€“ /AlL ¾QA˜€· /AlL¾QA˜€Ï /AlL@&¾QA˜é /AlL@/¾QA˜€ë /AlL`9¾QA˜€û /AlL`D¾QA˜€ /AlL€N¾QA˜€/AlLàU¾QA˜€5/AlLÀ`¾QA˜/AlL g¾QA˜Û/AlL@h¾QA˜€ /AlL h¾QA˜€F/AlLàe¾QA˜€³/AlL€v¾QA˜€y/AlLÀ¹¾QA˜€x/AlLà¾QA˜€x/AlL Ì¾QA˜€}/AlLÀÕ¾QA˜€•/AlLå¾QA˜³/AlLàð¾QA˜€î/AlLÀý¾QA˜/AlLà ¿QA˜B/AlL`¿QA˜€f/AlLÀ"¿QA˜€—/AlL0¿QA˜€±/AlL€A¿QA˜€É/AlLàP¿QA˜€Ú/AlL `¿QA˜€Ý/AlLàd¿QA˜à/AlL h¿QA˜ /AlL€}¿QA˜€!/AlLà†¿QA˜€/AlL¿QA˜€á/AlL ¬¿QA˜/AlL೿QA˜f/AlL@»¿QA˜€’/AlL¿QA˜À/AlL Ê¿QA˜à/AlLÏ¿QA˜€/AlL Ô¿QA˜7/AlLÀ׿QA˜€w/AlL Û¿QA˜§/AlL`ç¿QA˜Ò/AlLÀð¿QA˜€ü/AlL€÷¿QA˜€2/AlLÀû¿QA˜€µ/AlL ÂÁQA˜€Ê/AlLÂQA˜ñ/AlL@*ÂQA˜õ/AlL 8ÂQA˜€ó/AlL BÂQA˜è/AlLHÂQA˜Ú/AlL€PÂQA˜€Ì/AlL XÂQA˜€¥/AlLàhÂQA˜€“/AlL wÂQA˜€m/AlLà„ÂQA˜€H/AlL •ÂQA˜H/AlL £ÂQA˜€V/AlL ®ÂQA˜€\/AlLÀ´ÂQA˜€m/AlL ÁÂQA˜€…/AlL@ÍÂQA˜Ž/AlLàÖÂQA˜€¢/AlLàãÂQA˜€³/AlL€ñÂQA˜€Ð/AlLàýÂQA˜/AlL ÃQA˜€#/AlLÀ ÃQA˜€6/AlLàÃQA˜€5/AlL ÃQA˜€(/AlL &ÃQA˜€+/AlL@)ÃQA˜€4/AlLÀ0ÃQA˜€K/AlLà=ÃQA˜€b/AlL GÃQA˜€Š/AlL@UÃQA˜€Ü/AlLbÃQA˜€,/AlLàlÃQA˜€U/AlL€vÃQA˜€n/AlL@€ÃQA˜€v/AlL ‡ÃQA˜€Z/AlL@•ÃQA˜€H/AlL`œÃQA˜€;/AlLÀ¤ÃQA˜€;/AlL@«ÃQA˜€S/AlLàºÃQA˜€/AlLàÉÃQA˜€/AlLàèÃQA˜€3/AlLðÃQA˜€‚/AlL ÄQA˜€²/AlL`ÄQA˜Ò/AlLÀ!ÄQA˜Õ/AlL#ÄQA˜Ü/AlLà'ÄQA˜à/AlLP*ÄQA˜ê/AlL 0ÄQA˜/AlL@FÄQA˜€(/AlLQÄQA˜€8/AlL€[ÄQA˜€U/AlL eÄQA˜h/AlL@kÄQA˜€Œ/AlL rÄQA˜ž/AlL@vÄQA˜Æ/AlL~ÄQA˜ô/AlL …ÄQA˜ /AlLàÄQA˜> /AlL ”ÄQA˜H /AlL@ŸÄQA˜Q /AlLà«ÄQA˜Q /AlLP±ÄQA˜€P /AlL€·ÄQA˜M /AlL»ÄQA˜K /AlL¾ÄQA˜€E /AlL@ÄÄQA˜€5 /AlL ÎÄQA˜€ /AlL@ÛÄQA˜€ÿ/AlL ëÄQA˜€à/AlL ÷ÄQA˜×/AlLàÅQA˜Ý/AlL ÅQA˜€ß/AlL@ÅQA˜€ /AlL€ÅQA˜e /AlL@ÅQA˜¦ /AlL ÅQA˜€î /AlL ÅQA˜!/AlLÅQA˜4!/AlLÀ ÅQA˜e!/AlL`ÅQA˜Œ!/AlLàøÄQA˜Ã!/AlLÀóÄQA˜Ó!/AlLPóÄQA˜"/AlL€ñÄQA˜€O"/AlLõÄQA˜€{"/AlL€üÄQA˜€‰"/AlLàÅQA˜€"/AlLÅQA˜”"/AlL@ ÅQA˜€­"/AlL@ÅQA˜€Û"/AlLÅQA˜Þ"/AlL 'ÅQA˜€Â"/AlL -ÅQA˜³"/AlLp/ÅQA˜€Š"/AlL 4ÅQA˜€^"/AlL =ÅQA˜€-"/AlLÀFÅQA˜"/AlLàOÅQA˜î!/AlLWÅQA˜€ã!/AlL@_ÅQA˜€ã!/AlLfÅQA˜€"/AlL mÅQA˜6"/AlL@tÅQA˜€N"/AlLzÅQA˜^"/AlL‡ÅQA˜x"/AlL@ŽÅQA˜1#/AlLà‘ÅQA˜€}#/AlL ’ÅQA˜Ò#/AlL@ŽÅQA˜€$/AlLà~ÅQA˜€$/AlLÀtÅQA˜€?$/AlLÀkÅQA˜€—$/AlL€^ÅQA˜å$/AlLà\ÅQA˜€>%/AlL_ÅQA˜–%/AlLÀgÅQA˜€ &/AlL oÅQA˜0&/AlL@tÅQA˜E&/AlL wÅQA˜€m&/AlLÀ|ÅQA˜€»&/AlL…ÅQA˜€ì&/AlL‘ÅQA˜'/AlL —ÅQA˜T'/AlL€›ÅQA˜€‘'/AlL šÅQA˜¼'/AlL ™ÅQA˜€õ'/AlL –ÅQA˜€(/AlL`ÅQA˜(/AlLðoÅQA˜€(/AlLaÅQA˜€(/AlL`_ÅQA˜€Ì'/AlLà]ÅQA˜ˆ'/AlL[ÅQA˜€;'/AlL SÅQA˜€'/AlLàHÅQA˜€ö&/AlL`?ÅQA˜€ò&/AlL8ÅQA˜ö&/AlL€.ÅQA˜€ÿ&/AlL@$ÅQA˜'/AlLÅQA˜<'/AlLÅQA˜v'/AlLÅQA˜€Ä'/AlL`ÅQA˜€(/AlLÅQA˜€[(/AlL ÅQA˜€Û)/AlL`úÄQA˜€ø*/AlLÀéÄQA˜€~+/AlL@ëÄQA˜Ä+/AlL`ìÄQA˜ ,/AlLïÄQA˜p,/AlL ôÄQA˜°,/AlLóÄQA˜€×,/AlL ûÄQA˜€ô,/AlLàÅQA˜€ -/AlL€ÅQA˜€-/AlL`ÅQA˜€-/AlL*ÅQA˜€6-/AlLÀ/ÅQA˜p-/AlL <ÅQA˜¢-/AlL€CÅQA˜Î-/AlL@HÅQA˜€ ./AlLMÅQA˜€J./AlL RÅQA˜f./AlL`[ÅQA˜€./AlL°ÅQA˜€Ç-/AlL`ÉÅQA˜ñ-/AlLÀÑÅQA˜€4./AlL ÐÅQA˜y./AlL@ÌÅQA˜®./AlLÏÅQA˜€ü./AlL ÏÅQA˜S//AlL`ÇÅQA˜€F//AlL@ÁÅQA˜Œ//AlL€´ÅQA˜Ö//AlL ­ÅQA˜)0/AlL@©ÅQA˜€Œ0/AlLà­ÅQA˜€1/AlL ´ÅQA˜l1/AlL µÅQA˜€Í1/AlL@·ÅQA˜2/AlLà¸ÅQA˜€¼1/AlLàæÅQA˜œ1/AlL`ìÅQA˜T1/AlL€ñÅQA˜€1/AlL ôÅQA˜€´0/AlL€÷ÅQA˜€P0/AlL`üÅQA˜€0/AlL@ÿÅQA˜Î//AlLÀÆQA˜€Ÿ//AlL`ÆQA˜J//AlLÀÆQA˜€//AlL 1ÆQA˜€#//AlL CÆQA˜p//AlLàMÆQA˜€È//AlL UÆQA˜€0/AlLà[ÆQA˜…0/AlL eÆQA˜Ù0/AlLàhÆQA˜€.1/AlL`gÆQA˜€O1/AlL`^ÆQA˜€R1/AlL UÆQA˜€\1/AlL NÆQA˜ 1/AlL@IÆQA˜€ð1/AlL IÆQA˜€d2/AlL€IÆQA˜€¬2/AlL<ÆQA˜Å2/AlLà0ÆQA˜Ô2/AlL !ÆQA˜€ú2/AlLÀÆQA˜€03/AlLàÆQA˜€3/AlL ÆQA˜€Ð3/AlL ÆQA˜€ú3/AlL@ ÆQA˜€+4/AlLÀ,ÆQA˜€b4/AlLÀ6ÆQA˜ 4/AlL`?ÆQA˜Ü4/AlLÀJÆQA˜25/AlLÀRÆQA˜€“5/AlL TÆQA˜€Ø5/AlLÀSÆQA˜€U6/AlL@RÆQA˜™6/AlLàPÆQA˜7/AlLÀPÆQA˜+8/AlL XÆQA˜€¬8/AlL`[ÆQA˜ü8/AlL€\ÆQA˜‚9/AlL€ZÆQA˜€õ9/AlLYÆQA˜ž:/AlL VÆQA˜?;/AlL@VÆQA˜¯;/AlLWÆQA˜0/AlLÀbÆQA˜~?/AlLàcÆQA˜$@/AlL eÆQA˜å@/AlL€hÆQA˜™A/AlL nÆQA˜’B/AlLàuÆQA˜€UC/AlL |ÆQA˜€ÝC/AlL ‚ÆQA˜€?D/AlLŠÆQA˜vD/AlLÀÆQA˜’D/AlL˜ÆQA˜€•D/AlL  ÆQA˜€D/AlL¥ÆQA˜€vD/AlL@¾ÆQA˜€hD/AlL ÅÆQA˜€dD/AlLÀÏÆQA˜gD/AlL€ÖÆQA˜jD/AlLà߯QA˜€kD/AlL€óÆQA˜€oD/AlLÀùÆQA˜€ÂD/AlLùÆQA˜èD/AlL øÆQA˜E/AlL øÆQA˜,E/AlL øÆQA˜LE/AlLøÆQA˜€mE/AlL€øÆQA˜–E/AlLàøÆQA˜€ÉE/AlL€ùÆQA˜óE/AlLàøÆQA˜€F/AlL`øÆQA˜¡F/AlLàøÆQA˜€äF/AlL@ùÆQA˜'G/AlL`÷ÆQA˜=G/AlLàöÆQA˜€%H/AlL ÷ÆQA˜€×H/AlLÐöÆQA˜€ÞI/AlL€øÆQA˜ÔJ/AlL@øÆQA˜™L/AlLõÆQA˜|M/AlL÷ÆQA˜ÞM/AlLà÷ÆQA˜€›N/AlLPþÆQA˜€êN/AlL°ÇQA˜?O/AlLÇQA˜\O/AlLÀ#ÇQA˜•O/AlLÀ ÇQA˜€O/AlLÇQA˜GO/AlLÐÇQA˜€/O/AlL0 ÇQA˜€O/AlLÀ ÇQA˜O/AlL0ÇQA˜õN/AlLàûÆQA˜€pO/AlL@üÆQA˜nO/AlL ÇQA˜EO/AlLà ÇQA˜NO/AlL`ÇQA˜€hO/AlL°ÇQA˜€nO/AlLPÇQA˜‘O/AlL€ÇQA˜O/AlLÐ ÇQA˜€ÉO/AlLpÇQA˜ïO/AlLöÆQA˜_P/AlLðóÆQA˜€ÂP/AlL€ìÆQA˜€òP/AlLåÆQA˜€DQ/AlL ÜÆQA˜™Q/AlLàÖÆQA˜€ÙQ/AlL@ØÆQA˜€R/AlLÀÙÆQA˜SR/AlL@ÑÆQA˜NR/AlL@ÍÆQA˜€?R/AlL°ÉÆQA˜€/R/AlL0ÂÆQA˜IR/AlLà·ÆQA˜€8R/AlLà®ÆQA˜€ƒR/AlLð˜ÆQA˜±R/AlL€‘ÆQA˜€âR/AlLðŒÆQA˜€S/AlLzÆQA˜¼S/AlL0mÆQA˜@T/AlLÀdÆQA˜€ÈT/AlL0XÆQA˜€U/AlLOÆQA˜.U/AlL0QÆQA˜tU/AlL =ÆQA˜ðU/AlLÐ5ÆQA˜€xV/AlL@)ÆQA˜ŠW/AlLÆQA˜€X/AlL0ÆQA˜€oX/AlLÐøÅQA˜€Y/AlL@êÅQA˜FZ/AlL`ØÅQA˜€xZ/AlL ×ÅQA˜€[/AlL ÓÅQA˜[/AlLÍÅQA˜«\/AlL`½ÅQA˜€­]/AlLp½ÅQA˜€0^/AlLpºÅQA˜Ì^/AlL0¯ÅQA˜H_/AlLà§ÅQA˜Ý_/AlL`§ÅQA˜€–`/AlL`¢ÅQA˜ïa/AlL`œÅQA˜µb/AlLð™ÅQA˜€d/AlLP”ÅQA˜€÷e/AlLðŽÅQA˜€|g/AlLÀŽÅQA˜Ñh/AlLðÅQA˜€k/AlL‹ÅQA˜€ûl/AlL0‹ÅQA˜Óm/AlL€ŒÅQA˜€–o/AlL@ŒÅQA˜€‹p/AlLŒÅQA˜€ q/AlLÅQA˜&q/AlL@ÅQA˜Ðq/AlLŒÅQA˜rr/AlL€ÅQA˜ër/AlLÅQA˜€zs/AlLÅQA˜€þs/AlL`ÅQA˜³x/AlLœÅQA˜{/AlL`¢ÅQA˜€I}/AlL «ÅQA˜õ}/AlL`ªÅQA˜~/AlL@¬ÅQA˜,/AlL ¯ÅQA˜½/AlL`³ÅQA˜Ô€/AlLà·ÅQA˜/AlL@ºÅQA˜€¾/AlL ¹ÅQA˜€¼‚/AlL`¼ÅQA˜/ƒ/AlL ¼ÅQA˜€¦ƒ/AlL ¾ÅQA˜U„/AlLÀÂÅQA˜©‡/AlL€ÓÅQA˜€@ˆ/AlL ÙÅQA˜F‰/AlL ÜÅQA˜€"Š/AlL`ÞÅQA˜€¡Š/AlL€áÅQA˜ Œ/AlLàèÅQA˜dŒ/AlLðéÅQA˜€Ë/AlLP÷ÅQA˜€ÎŽ/AlLPüÅQA˜€:/AlLðüÅQA˜ /AlLÆQA˜€k/AlLÐÆQA˜m‘/AlL`ÆQA˜€‹‘/AlLà ÆQA˜’/AlL ÆQA˜€t’/AlL€ÆQA˜Ê’/AlLÆQA˜$“/AlL@ÆQA˜€“/AlLàÆQA˜€ä“/AlL@ÆQA˜D”/AlL ÆQA˜»”/AlLàÆQA˜€•/AlL€ÆQA˜P•/AlL@ÆQA˜€|•/AlL`ÆQA˜Õ/AlLÀ ÆQA˜€$–/AlLà"ÆQA˜€|–/AlL $ÆQA˜¸–/AlL`%ÆQA˜€ —/AlL %ÆQA˜H—/AlLà&ÆQA˜—/AlL@)ÆQA˜Õ—/AlLà-ÆQA˜˜/AlL@0ÆQA˜€E˜/AlLà1ÆQA˜€†˜/AlL4ÆQA˜€º˜/AlL€4ÆQA˜€Ú˜/AlLÀ4ÆQA˜€ì˜/AlLà4ÆQA˜™/AlL 7ÆQA˜€Ë™/AlL 9ÆQA˜€š/AlL€;ÆQA˜nš/AlL =ÆQA˜Ìš/AlL`>ÆQA˜›/AlLà?ÆQA˜…›/AlLÀBÆQA˜:œ/AlLàEÆQA˜Åœ/AlL IÆQA˜(/AlLÀOÆQA˜€ /AlL TÆQA˜ž/AlL TÆQA˜€žž/AlL VÆQA˜€Ÿ/AlL [ÆQA˜€ƒŸ/AlL`^ÆQA˜€ÝŸ/AlL`_ÆQA˜€§ /AlLPdÆQA˜€l¡/AlLðnÆQA˜€¢/AlLàpÆQA˜€Ö¢/AlLpxÆQA˜Õ£/AlLàÆQA˜:¥/AlLІÆQA˜€p¥/AlL€ˆÆQA˜Î¥/AlL@‹ÆQA˜¦/AlLàÆQA˜„¦/AlLàÆQA˜€D¨/AlLžÆQA˜B©/AlLp¤ÆQA˜ó©/AlLà©ÆQA˜±ª/AlL­ÆQA˜g¬/AlL ºÆQA˜€º¬/AlL°»ÆQA˜ê¬/AlLà¾ÆQA˜€Z®/AlL`ÅÆQA˜€­®/AlL ÈÆQA˜€Ú®/AlLÊÆQA˜į/AlL`ÔÆQA˜*°/AlLÀÖÆQA˜£°/AlLÙÆQA˜€<±/AlL`ÛÆQA˜€:²/AlLæÆQA˜Q³/AlL@ëÆQA˜¤³/AlLÀñÆQA˜ð³/AlL óÆQA˜H´/AlLàóÆQA˜€©´/AlLùÆQA˜q¶/AlL ÇQA˜ä¶/AlL ÇQA˜€j·/AlL` ÇQA˜ã·/AlL ÇQA˜3¸/AlLàÇQA˜ĸ/AlLàÇQA˜¬¼/AlL <ÇQA˜€'½/AlL?ÇQA˜^½/AlL€@ÇQA˜€Š½/AlLPCÇQA˜y½/AlLIÇQA˜€Œ½/AlLðJÇQA˜€­½/AlLÐBÇQA˜»½/AlL°CÇQA˜›½/AlL NÇQA˜€¹½/AlL MÇQA˜Ú½/AlLÀFÇQA˜a¾/AlLpJÇQA˜€º¿/AlL UÇQA˜€|Á/AlLpdÇQA˜€uÃ/AlLÀuÇQA˜cÇ/AlL°•ÇQA˜6È/AlLžÇQA˜€AÈ/AlLÀžÇQA˜É/AlLp§ÇQA˜€dÊ/AlLPµÇQA˜€Í/AlLÀÌÇQA˜€pÎ/AlLpÙÇQA˜¦Ñ/AlL@óÇQA˜cÓ/AlLPÈQA˜€ØÓ/AlL€ÈQA˜íÔ/AlLÈQA˜«Õ/AlL ÈQA˜€ŒÖ/AlLÐ ÈQA˜€ ×/AlLà&ÈQA˜$×/AlL0&ÈQA˜€×/AlLÀ+ÈQA˜€õ×/AlLP1ÈQA˜sØ/AlL1ÈQA˜€ºØ/AlL4ÈQA˜åØ/AlLà4ÈQA˜ Ù/AlLÀ5ÈQA˜€cÙ/AlLà;ÈQA˜Ú/AlL BÈQA˜€†Ú/AlLpGÈQA˜-Û/AlL JÈQA˜€ÌÛ/AlLðPÈQA˜€?Ü/AlL WÈQA˜€aÜ/AlLZÈQA˜¢Ü/AlL\ÈQA˜€:Ý/AlL°dÈQA˜ Ý/AlLpfÈQA˜€ïÝ/AlLÐiÈQA˜-Þ/AlL jÈQA˜€_Þ/AlLpkÈQA˜€yÞ/AlL lÈQA˜€“Þ/AlLmÈQA˜¯Þ/AlLoÈQA˜4ß/AlLðsÈQA˜€«ß/AlLðtÈQA˜öß/AlL@wÈQA˜€hà/AlLÐzÈQA˜€þà/AlLÈQA˜¶á/AlLð‡ÈQA˜€Lâ/AlLŽÈQA˜€Ãâ/AlLÀÈQA˜€cã/AlLð•ÈQA˜€…å/AlLÀ©ÈQA˜€Ûç/AlL ¾ÈQA˜€™è/AlL°ÂÈQA˜é/AlL`ÊÈQA˜€Dë/AlLÞÈQA˜€jë/AlL`ÞÈQA˜üë/AlL0æÈQA˜í/AlLPïÈQA˜€Lî/AlL@üÈQA˜éî/AlLÉQA˜€Dï/AlLÐÉQA˜sï/AlL ÉQA˜€ñ/AlL ÉQA˜Âñ/AlLàÉQA˜€†ó/AlL`(ÉQA˜€ãô/AlLÀ4ÉQA˜€þö/AlL GÉQA˜Sø/AlLàUÉQA˜ù/AlL[ÉQA˜€Øú/AlL`kÉQA˜ ý/AlLÉQA˜€þ/AlL`ÉQA˜€‰ÿ/AlLÀœÉQA˜€šÿ/AlLÀÉQA˜€ˆÿ/AlL…ÉQA˜ªþ/AlL€wÉQA˜ ý/AlL€_ÉQA˜3ü/AlLÀMÉQA˜€óû/AlL`6ÉQA˜çû/AlL€2ÉQA˜Ñû/AlLÀ)ÉQA˜€Œú/AlL #ÉQA˜ÿù/AlL@ÉQA˜Ùù/AlLðÉQA˜‰ù/AlL€ÉQA˜äø/AlLàôÈQA˜ò÷/AlLÀñÈQA˜€t/AlL@+¼QA˜Ät/AlL€$¼QA˜€u/AlL ¼QA˜€Mu/AlL¼QA˜€u/AlL ¼QA˜Øu/AlL€ ¼QA˜v/AlL`¼QA˜€Uv/AlL`¼QA˜‰v/AlL "¼QA˜€¬v/AlL@2¼QA˜¸v/AlL?¼QA˜€ºv/AlLàK¼QA˜¥v/AlLY¼QA˜Œv/AlLÀa¼QA˜uv/AlL j¼QA˜]v/AlL@u¼QA˜Bv/AlL}¼QA˜v/AlLÀ‰¼QA˜€ùu/AlL@“¼QA˜¬u/AlL •¼QA˜Pu/AlLÀ¼QA˜ãt/AlL ¼QA˜ht/AlL@„¼QA˜s/AlL`x¼QA˜Rs/AlL r¼QA˜€s/AlL€n¼QA˜€:s/AlL`f¼QA˜hs/AlL€`¼QA˜“s/AlL`X¼QA˜€®s/AlLÀQ¼QA˜âs/AlL€H¼QA˜€t/AlL >¼QA˜Xt/AlL`1¼QA˜€t/AlL@+¼QA-à˜*/AlLÀÐQA˜²Ã/AlLÀû£QA¸C}”£˜€"k/AlL×¢QA˜€Pk/AlL Ô¢QA˜€Úk/AlL Ï¢QA˜pl/AlL Í¢QA˜Öl/AlLÀÊ¢QA˜€öl/AlLâQA˜€¤m/AlLརQA˜€tn/AlL€Ã¢QA˜€0o/AlL`º¢QA˜Ëo/AlL ¸¢QA˜òp/AlL@¹¢QA˜€•q/AlL½¢QA˜€´q/AlLÀ½¢QA˜€¢q/AlL ¢QA˜þq/AlL ›¢QA˜€§r/AlLà–¢QA˜Ws/AlL€Ž¢QA˜€6t/AlLàƒ¢QA˜Èt/AlL {¢QA˜€Au/AlL r¢QA˜€Áu/AlLÀi¢QA˜v/AlL b¢QA˜5v/AlLà`¢QA˜€Ïv/AlLW¢QA˜€”w/AlLàK¢QA˜ðw/AlL G¢QA˜[x/AlL@B¢QA˜Çx/AlL ?¢QA˜€ y/AlL >¢QA˜”y/AlL <¢QA˜z/AlLÀ?¢QA˜€ˆz/AlL@>¢QA˜âz/AlL`@¢QA˜{/AlL D¢QA˜€U{/AlL`I¢QA˜€´{/AlLT¢QA˜€î{/AlL@P¢QA˜Ý|/AlL 2¢QA˜€ ~/AlL ¢QA˜^/AlLä¡QA˜€è€/AlL`´¡QA˜€/AlL஡QA˜€*/AlLডQA˜€ž/AlL“¡QA˜€‚/AlL@¡QA˜€Š‚/AlL u¡QA˜€ƒ/AlL f¡QA˜€ëƒ/AlL@O¡QA˜\„/AlL`A¡QA˜…/AlLà0¡QA˜€z…/AlL #¡QA˜€Š…/AlL ¡QA˜€ …/AlLû QA˜€ø…/AlLÀê QA˜`†/AlL€Þ QA˜ †/AlLÀ× QA˜¼†/AlL@РQA˜€Ô†/AlL Å QA˜€ä†/AlL@º QA˜€Ø†/AlL€¯ QA˜€°†/AlL ¤ QA˜t†/AlL€™ QA˜€†/AlL Ž QA˜¸…/AlLÀ QA˜X…/AlL`v QA˜€…/AlLàl QA˜€¨„/AlLb QA˜€_„/AlL€W QA˜#„/AlL@P QA˜ǃ/AlL H QA˜€fƒ/AlL@A QA˜€ ƒ/AlLà: QA˜€–‚/AlL`4 QA˜€[‚/AlL`. QA˜#ƒ/AlLÀ" QA˜vƒ/AlL@, QA˜€­ƒ/AlL " QA˜׃/AlLÀ QA˜€Ûƒ/AlLÀ QA˜åƒ/AlLÀ QA˜àƒ/AlLàþŸQA˜€„/AlL ÷ŸQA˜€h„/AlLÀ÷ŸQA˜€#†/AlL`C QA˜؆/AlL`9 QA˜€9‡/AlL€M QA˜·‡/AlL€a QA˜€÷‡/AlL`l QA˜2ˆ/AlL o QA˜€sˆ/AlL€m QA˜¾ˆ/AlL m QA˜€·‰/AlL°V QA˜€Š/AlL€O QA˜€zŠ/AlLF QA˜€õŠ/AlL> QA˜G‹/AlL`8 QA˜€7Œ/AlL ( QA˜\Œ/AlLÀ! QA˜€ŠŒ/AlL QA˜ÕŒ/AlLà  QA˜D/AlL@üŸQA˜Ó/AlL óŸQA˜TŽ/AlL@óŸQA˜€ÆŽ/AlLÀóŸQA˜€,/AlLùŸQA˜€•/AlL  QA˜€ô/AlL  QA˜r‘/AlL€ QA˜ó‘/AlLÀ QA˜n’/AlL  QA˜€ñ’/AlL€ QA˜[“/AlL   QA˜€”“/AlL€ QA˜é“/AlL òŸQA˜H”/AlL`àŸQA˜€ˆ”/AlL`ØŸQA˜Ä”/AlLàÒŸQA˜ •/AlL@ÊŸQA˜º•/AlL ¿ŸQA˜1–/AlL`»ŸQA˜­–/AlL@¹ŸQA˜€>—/AlL€¸ŸQA˜€N˜/AlL »ŸQA˜ʘ/AlLÀÀŸQA˜€4™/AlL`ËŸQA˜t™/AlL€ÔŸQA˜È™/AlL`äŸQA˜ô™/AlLàòŸQA˜€ô™/AlL  QA˜€ø™/AlL€  QA˜€š/AlL  QA˜€;š/AlLÀ QA˜€“š/AlL@$ QA˜òš/AlL ( QA˜€¨›/AlL€0 QA˜ý›/AlLÀ3 QA˜€œ/AlL 7 QA˜€Ñœ/AlLà< QA˜þœ/AlLÀ? QA˜€./AlL€F QA˜l/AlL€G QA˜„/AlL€A QA˜€î/AlLàD QA˜ž/AlLàK QA˜€=ž/AlL R QA˜€ž/AlL X QA˜€0Ÿ/AlL b QA˜ /AlL@l QA˜å /AlL€s QA˜€É¡/AlL@| QA˜€a¢/AlL`~ QA˜/£/AlLà€ QA†jæB¤/AlLP QA˜g¤/AlL` QA˜̤/AlL@„ QA˜€$¥/AlL‡ QA˜€Ž¥/AlLÀˆ QA˜å¥/AlLŒ QA˜€¦/AlL  QA˜€2¦/AlLÀ• QA˜M¦/AlLœ QA˜n¦/AlLÀ¡ QA˜€Ä¦/AlL © QA˜ §/AlL`  QA˜g§/AlL › QA˜ç/AlL ” QA˜€¨/AlL` QA˜P¨/AlL  QA˜€†¨/AlL‰ QA˜æ¨/AlLà„ QA˜€%©/AlLà… QA˜`©/AlL@‰ QA˜€Ö©/AlL@ QA˜€Rª/AlL`™ QA˜ت/AlLࢠQA˜m«/AlL@­ QA˜€ø«/AlL@· QA˜€h¬/AlLÀ¿ QA˜¿¬/AlL@Æ QA˜­/AlLàРQA˜§­/AlL`Û QA˜€ø­/AlL`á QA˜(®/AlL â QA˜€n®/AlLàÝ QA˜¨®/AlL Ø QA˜þ®/AlLÀÊ QA˜n¯/AlL¸ QA˜¾¯/AlLÀ¬ QA˜G°/AlL`š QA˜Ó°/AlL€† QA˜r±/AlL m QA˜€Ð²/AlL : QA˜´/AlL` QA˜€`µ/AlLÀÑŸQA˜€²¶/AlL`©ŸQA˜€¸·/AlLÀ€ŸQA˜D¸/AlLjŸQA˜€Ë¹/AlL€*ŸQA˜ܺ/AlLPÿžQA˜€~»/AlL åžQA˜Õ½/AlL ”žQA˜®½/AlLŒžQA˜€r½/AlL`‚žQA˜€T½/AlL {žQA˜€/½/AlL0ržQA˜é¼/AlLàmžQA˜€ƒ¼/AlL hžQA˜€¼/AlLÀhžQA˜€„»/AlLàfžQA˜Ϻ/AlL€YžQA˜‘º/AlL€QžQA˜Kº/AlLFžQA˜€ò¹/AlLP<žQA˜€u¹/AlL€,žQA˜€.¹/AlL  žQA˜€Û¸/AlL@žQA˜§¸/AlLÀžQA˜€“¸/AlLÀÿQA˜™¸/AlLÀñQA˜€¯¸/AlL çQA˜˜¸/AlL`ÞQA˜€d¸/AlL ÕQA˜U¸/AlLàÉQA˜q¸/AlL ¿QA˜©¸/AlL@µQA˜ƒ¸/AlL ¦QA˜€@¸/AlLàŒQA˜ì·/AlL aQA˜€ ¸/AlL°\QA˜¸/AlL KQA˜€º/AlLQA˜‚º/AlL`QA˜»/AlL€îœQA˜€—»/AlL€ÕœQA˜€¼/AlLÀÆœQA˜€ç¼/AlL`±œQA˜€½/AlLà™œQA˜€@¾/AlL „œQA˜˾/AlLànœQA˜r¿/AlL@ZœQA˜,À/AlLÀBœQA˜êÀ/AlLÀ.œQA˜€ŽÁ/AlL %œQA˜\Â/AlLÀœQA˜€<Ã/AlLàþ›QA˜qÃ/AlL@ú›QA˜€”Ã/AlL`ø›QA˜€¤Ã/AlL€÷›QA˜€¬Ã/AlL0ó›QA˜²Ã/AlLÀî›QA˜‘Ã/AlLå›QA˜7Ã/AlLÀÑ›QA˜Ã/AlL­›QA˜üÂ/AlL`‡›QA˜ÀÂ/AlLà^›QA˜ŸÂ/AlLàF›QA˜€šÂ/AlL ›QA˜{Â/AlLàïšQA˜€ŒÂ/AlLÍšQA˜LÂ/AlL€ªšQA˜€,Â/AlL`‹šQA˜Â/AlL }šQA˜ Â/AlL@išQA˜€"Â/AlL XšQA˜$Â/AlLàJšQA˜€OÂ/AlL :šQA˜€NÂ/AlL@-šQA˜€IÂ/AlL šQA˜€NÂ/AlL šQA˜€FÂ/AlLàö™QA˜UÂ/AlL`è™QA˜@Â/AlL ß™QA˜Â/AlLàÁ™QA˜ÿÁ/AlL€Ÿ™QA˜€âÁ/AlL€T™QA˜€ÜÁ/AlL ™QA˜€ºÁ/AlL`ê˜QA˜€ Á/AlL@Œ˜QA˜«Á/AlL€=˜QA˜€«Á/AlL :˜QA˜’Á/AlL`ç—QA˜uÁ/AlL È—QA˜€Á/AlL j—QA˜âÀ/AlL€—QA˜€ÐÀ/AlL Ú–QA˜ºÀ/AlL࢖QA˜«À/AlL “–QA˜€wÀ/AlL _–QA˜€<À/AlL€"–QA˜€$À/AlL –QA˜€À/AlLàó•QA˜ À/AlL Ý•QA˜ô|Iñ¿/AÚ•QA˜€Ä¿/AlL`p•QA˜s¿/AlLà?•QA˜U¿/AlLà•QA˜+¿/AlLàö”QA˜ò¾/AlLÅ”QA˜€ï¾/AlLÔQA˜€Ù¾/AlLª”QA˜;/AlLÀ›”QA˜ˆ¾/AlL@X”QA˜€E¾/AlL`)”QA˜€¾/AlL€ ”QA˜¯½/AlLÀÍ“QA˜€F½/AlL“QA˜ÿ¼/AlL`X“QA˜€Î¼/AlL "“QA˜|¼/AlL€ì’QA˜€V¼/AlLÃ’QA˜€¼/AlL@—’QA˜€Ù»/AlL j’QA˜¢»/AlLà9’QA˜€»/AlL`’QA˜e»/AlLÀ’QA˜€:»/AlL`ä‘QA˜»/AlLÀË‘QA˜ëº/AlLÀ³‘QA˜ýº/AlLà€‘QA˜óº/AlL`y‘QA˜€Ìº/AlLÀn‘QA˜€¼º/AlLàc‘QA˜­º/AlLà[‘QA˜º/AlL P‘QA˜€yº/AlL`H‘QA˜fº/AlL`@‘QA˜Vº/AlL`8‘QA˜Fº/AlLÀ0‘QA˜€Cº/AlL '‘QA˜8º/AlL€‘QA˜2º/AlL ‘QA˜º/AlL` ‘QA˜ô¹/AlLÀ‘QA˜€Ø¹/AlLþQA˜̹/AlLàûQA˜†¹/AlL€îQA˜H¹/AlL âQA˜&¹/AlLPÙQA˜î¸/AlLÀÛQA˜¸/AlL@¿QA˜€û¶/AlL ©QA˜€¶/AlLÀ”QA˜€-µ/AlLà|QA˜€ö³/AlL_QA˜€Ï²/AlL @QA˜€?±/AlL QA˜€ °/AlLÿQA˜æ®/AlL âQA˜<®/AlLÀÍQA˜m­/AlL´QA˜y¬/AlL ŸQA˜§«/AlL`ŽQA˜€ª/AlLoQA˜@Í©/AlL`eQA˜€·©/AlLPcQA˜€©/AlL`PQA˜M¨/AlL€=QA˜€†§/AlL@*QA˜â¦/AlL`QA˜€D¦/AlL QA˜¿¥/AlLÀÿŽQA˜€ª¥/AlLàÿŽQA˜€Æ¤/AlL`QA˜€Ò¡/AlL ÊŽQA˜ª¡/AlL`²ŽQA˜€iž/AlLÀ~ŽQA˜$ž/AlLÐ…ŽQA˜y/AlLàêQA˜€]‹/AlL@æQA˜§‚/AlLÀ8QA˜¯/AlLÀTQA˜€õ}/AlL hQA˜€Á}/AlLàkQA˜}}/AlL lQA˜S}/AlL°gQA˜€:}/AlL@`QA˜$}/AlLÀYQA˜€*}/AlL2QA˜,}/AlLà*QA˜€Ë|/AlL0QA˜€’|/AlLÀ3QA˜€5|/AlL .QA˜ê{/AlL #QA˜€–{/AlL QA˜€f{/AlL@QA˜€<{/AlL@QA˜{/AlL` QA˜€¾z/AlL`QA˜€rz/AlLÀ QA˜€6z/AlL QA˜€z/AlLàQA˜Øy/AlLÀQA˜€·y/AlL`ûQA˜€Yy/AlL@ïQA˜€Ñx/AlL@îQA˜€ix/AlL ìQA˜€Ûw/AlL ìQA˜€Žw/AlLÀéQA˜€Aw/AlL@ãQA˜Õv/AlLÛQA˜€¦v/AlL°ÖQA˜Vv/AlL ÉQA˜#v/AlL€¼QA˜õu/AlLÀ­QA˜€Çu/AlLà¡QA˜€Žu/AlL€”QA˜Hu/AlL@‹QA˜öt/AlL`QA˜€°t/AlLÀ‚QA˜€2t/AlL`…QA˜Šs/AlLÀˆQA˜Ls/AlLÀ‡QA˜€òr/AlLà„QA˜€£r/AlL€QA˜€kr/AlL zQA˜r/AlLtQA˜€Ãq/AlLàfQA˜÷p/AlL[QA˜€p/AlLÀTQA˜€p/AlL@VQA˜€oo/AlL YQA˜€án/AlL`[QA˜žn/AlL ZQA˜€&n/AlL@\QA˜€gm/AlL`_QA˜Él/AlLàaQA˜¾l/AlLkQA˜vl/AlLrQA˜7l/AlL`vQA˜€Þk/AlLàuQA˜€hk/AlL uQA˜€k/AlL oQA˜Ój/AlLgQA˜€{j/AlL@bQA˜!j/AlLÀeQA˜€¨i/AlL@iQA˜€0i/AlLoQA˜€Äh/AlLqQA˜ˆh/AlLÀqQA˜Th/AlL`xQA˜€ h/AlLwQA˜€Ôg/AlLÀvQA˜ g/AlLwQA˜ñf/AlL zQA˜€Ôf/AlL@{QA˜€œf/AlL@zQA˜€^f/AlL@yQA˜f/AlLvQA˜€æe/AlL pQA˜­e/AlL oQA˜„e/AlL`tQA˜€ye/AlL|QA˜€ve/AlL`‚QA˜Me/AlLˆQA˜€ød/AlL@‡QA˜¹d/AlL@‰QA˜€†d/AlLŽQA˜€pd/AlL •QA˜[d/AlL€žQA˜)d/AlLÀ˜QA˜€õc/AlL ‘QA˜€—c/AlL ‚QA˜[c/AlL wQA˜Cc/AlLàmQA˜€ÿb/AlL@nQA˜€àb/AlL@tQA˜€¼b/AlLÀzQA˜€yb/AlLÐsQA˜€Mb/AlL dQA˜b/AlLVQA˜…a/AlL@JQA˜€a/AlLÀCQA˜­`/AlL =QA˜€N`/AlL@6QA˜€Ó_/AlL ,QA˜€D_/AlL`)QA˜€Ô^/AlL +QA˜€b^/AlLà-QA˜€ï]/AlL +QA˜€t]/AlL€'QA˜€0]/AlL€#QA˜ñ\/AlLàQA˜‹\/AlL`QA˜€'\/AlL@ QA˜©[/AlL QA˜€[/AlL`÷ŽQA˜€“Z/AlL ïŽQA˜€)Z/AlL êŽQA˜€ÇY/AlL éŽQA˜€HY/AlLíŽQA˜€ÙX/AlL€íŽQA˜€ŽX/AlL îŽQA˜€>X/AlL`çŽQA˜€ìW/AlL ߎQA˜€ˆW/AlL€ÚŽQA˜"W/AlL ÝŽQA˜×V/AlLÀáŽQA˜€ŠV/AlL âŽQA˜€ V/AlL ÝŽQA˜€¹U/AlL@ÞŽQA˜€fU/AlL`æŽQA˜€$U/AlLàìŽQA˜€îT/AlL ðŽQA˜€¢T/AlL€óŽQA˜JT/AlL€öŽQA˜¶S/AlL@õŽQA˜€qS/AlL°îŽQA˜&S/AlLàãŽQA˜ßR/AlLæŽQA˜†R/AlLÀêŽQA˜€)R/AlL€æŽQA˜{Q/AlL âŽQA˜ñP/AlLìŽQA˜€KP/AlL`óŽQA˜,P/AlLÀóŽQA˜€ŸO/AlL`õŽQA˜€#O/AlL ðŽQA˜€®N/AlLçŽQA˜(N/AlLàåŽQA˜€¿M/AlLêŽQA˜ŠM/AlL@îŽQA˜€M/AlLïŽQA˜sL/AlL íŽQA˜øK/AlL@îŽQA˜‘K/AlLàëŽQA˜6K/AlLÀàŽQA˜ÄJ/AlLàÓŽQA˜’J/AlLðËŽQA˜€)J/AlLÃŽQA˜mI/AlLཎQA˜€I/AlL`ºŽQA˜{H/AlLÀ°ŽQA˜øG/AlL°¢ŽQA˜€ÈG/AlLÀ‹ŽQA˜€—G/AlL`sŽQA˜€YG/AlLÀ`ŽQA˜ÛF/AlLàMŽQA˜pF/AlLÀ?ŽQA˜ F/AlL-ŽQA˜€¦E/AlL`ŽQA˜€„D/AlL@ ŽQA˜åC/AlL`ŽQA˜UC/AlLàŽQA˜éB/AlL ŽQA˜€B/AlL`ŽQA˜—A/AlL@ÿQA˜€ó@/AlL€õQA˜y@/AlL`íQA˜Å?/AlL€äQA˜€N?/AlLÀàQA˜¬>/AlLp×QA˜™>/AlL`ÖQA˜ù=/AlLÀÐQA˜u>/AlL@ïQA˜š>/AlLàüQA˜€Ì>/AlL ŽQA˜å>/AlL ŽQA˜€?/AlL@ŽQA˜€6?/AlLÀ(ŽQA˜k?/AlL4ŽQA˜€®?/AlLà?ŽQA˜€ç?/AlL HŽQA˜?@/AlL€RŽQA˜€t@/AlL[ŽQA˜–@/AlL€cŽQA˜¥@/AlLmŽQA˜€¬@/AlL tŽQA˜€¬@/AlL`|ŽQA˜A/AlLŽŽQA˜ B/AlLàÊŽQA˜%C/AlL€ QA˜€*E/AlL ~QA˜IE/AlL@…QA˜¼F/AlL ÖQA˜ñF/AlLàãQA˜HG/AlL íQA˜€°G/AlL`øQA˜€-H/AlL QA˜¢H/AlL QA˜€ÿH/AlL€(QA˜‚I/AlLÀ;QA˜€¶I/AlL JQA˜ J/AlL XQA˜/AlL]—QA˜=/AlLÀY—QA˜v–QA˜«./AlL@:–QA˜./AlL /–QA˜€—./AlLà&–QA˜5./AlL`'–QA˜€./AlLà–QA˜‚-/AlLÀ–QA˜€6-/AlL %–QA˜€ô,/AlL /–QA˜€½,/AlL`4–QA˜€T,/AlL€<–QA˜€d,/AlL ]–QA˜ð+/AlLÀ€–QA˜€’+/AlL`”–QA˜€W*/AlL ß–QA˜Â)/AlLÀü–QA˜ )/AlL —QA˜(/AlLÀP—QA˜€Ý'/AlLàa—QA˜€ '/AlLàp—QA˜€'/AlL@—QA˜€Q'/AlL —QA˜!'/AlL@–—QA˜¬&/AlL›—QA˜b&/AlL š—QA˜‡$/AlL ˜QA˜€‰$/AlL@˜QA˜ë$/AlL ˜QA˜0%/AlL`˜QA˜€†%/AlL@˜QA˜·%/AlL ˜QA˜ÿ%/AlLÀ ˜QA˜7&/AlL@$˜QA˜h&/AlL€'˜QA˜©&/AlL€)˜QA˜€3'/AlL@-˜QA˜‹'/AlLà6˜QA˜º'/AlL D˜QA˜º'/AlLàN˜QA˜€´'/AlL`_˜QA˜€²'/AlLn˜QA˜€¬'/AlL€˜QA˜€®'/AlLàŠ˜QA˜¯'/A8Íœ˜QA˜€Û'/AlL ¢˜QA˜€(/AlLౘQA˜ô'/AlL˜QA˜ã'/AlL€Ò˜QA˜€Ú'/AlLâ˜QA˜ý'/AlLàï˜QA˜(/AlLý˜QA˜$(/AlLà ™QA˜Z(/AlL`™QA˜j(/AlL ™QA˜ƒ(/AlL '™QA˜€ (/AlLà/™QA˜€·(/AlLÀ?™QA˜v)/AlLÀ‚™QA˜)/AlL@™QA˜©)/AlLàš™QA˜€´)/AlL@¢™QA˜€Í)/AlL³™QA˜€Ü)/AlL€¼™QA˜H*/AlL ¶™QA˜\*/AlLàÁ™QA˜Š*/AlLàÔ™QA˜*/AlLÀú™QA˜°*/AlL šQA˜+/AlL€(šQA˜€v+/AlL€>šQA˜€ß+/AlL€LšQA˜-,/AlL NšQA˜‡,/AlL@OšQA˜-/AlLÀRšQA˜b-/AlLÀdšQA˜º-/AlL’šQA˜€û-/AlL ¿šQA˜€2./AlL›QA˜d./AlL`5›QA˜j./AlL ^›QA˜€t./AlL n›QA˜€•./AlLÀ‚›QA˜Ã./AlL€•›QA˜ //AlLÀ¬›QA˜€$//AlL¾›QA˜s//AlL õ›QA˜Ÿ//AlL œQA˜€©//AlL (œQA˜€¹//AlL`:œQA˜à//AlLÀDœQA˜€0/AlLQœQA˜€*1/AlLÀ¯œQA˜€ð1/AlL ïœQA˜€2/AlL@!QA˜€83/AlL€SQA˜µ3/AlL|QA˜/4/AlL`¥QA˜€p3/AlL`ÀQA˜€/3/AlL@¾QA˜€«2/AlL ÀQA˜€2/AlLÃQA˜€Š1/AlL ÂQA˜ä0/AlL€ÆQA˜p0/AlL€ÄQA˜€80/AlL¼QA˜€Ð//AlL@³QA˜€://AlL ªQA˜€É./AlL §QA˜€./AlL@¯QA˜’-/AlL€¸QA˜€@-/AlLàÁQA˜€Ê,/AlL ÄQA˜€b,/AlL@ÄQA˜,/AlLÍQA˜É+/AlLÀÓQA˜T+/AlLÀ×QA˜ï*/AlLà×QA˜€*/AlLàÕQA˜€Ž*/AlLÀÛQA˜€s*/AlLàêQA˜€l*/AlL`÷QA˜X*/AlLžQA˜;*/AlL žQA˜*/AlL@žQA˜¬)/AlLžQA˜§)/AlLÀ žQA˜z)/AlLà,žQA˜€8)/AlL 2žQA˜€æ(/AlLà1žQA˜p(/AlL`5žQA˜€%(/AlLÀ;žQA˜¸'/AlL`EžQA˜4'/AlLGžQA˜€ƒ&/AlL€MžQA˜€ù%/AlLÀNžQA˜¡%/AlL SžQA˜%/AlLÀ]žQA˜’$/AlL@cžQA˜Y$/AlL`ižQA˜ú#/AlL tžQA˜¨#/AlL tžQA˜T#/AlL lžQA˜€#/AlLàdžQA˜²"/AlLàbžQA˜€F"/AlLÀdžQA˜€ï!/AlLižQA˜›!/AlL€ožQA˜_!/AlLÀožQA˜!/AlLÀjžQA˜ª /AlL@lžQA˜G /AlL pžQA˜Ý/AlL@sžQA˜h/AlLÀvžQA˜ /AlLà|žQA˜€ã/AlLà‹žQA˜»/AlL`—žQA˜R/AlLÀžžQA˜€ü/AlL€™žQA˜£/AlLœžQA˜€./AlLÀ›žQA˜þ/AlLÀ—žQA˜€É/AlL‘žQA˜,/AlL ˆžQA˜§/AlL†žQA˜€3/AlL€žQA˜€Ð/AlL“žQA˜€/AlL@–žQA˜Ü/AlL ˜žQA˜t/AlL€—žQA˜€!/AlL@“žQA˜€Ï/AlLÀ•žQA˜€x/AlLÀ–žQA˜×/AlLŒžQA˜\/AlL`yžQA˜€/AlL€cžQA˜€›/AlL`VžQA˜/AlL IžQA˜€]/AlLÀ;žQA˜S/AlL`5žQA˜H/AlLà.žQA˜€/AlLÀžQA˜ø/AlL žQA˜·/AlL@žQA˜€r/AlLàžQA˜=/AlL`ûQA˜€û/AlL éQA˜€æ/AlL`ÔQA˜€Ï/AlL€ÃQA˜€‰/AlL µQA˜€ß/AlLÀ–QA˜é/AlL€ZQA˜/AlLQA˜#/AlL£œQA˜€(/AlL ]œQA˜/AlL@VœQA˜¹/AlL€VœQA˜n/AlL [œQA˜þ/AlLà]œQA˜€/AlL `œQA˜Å/AlLÀ`œQA˜€¥/AlL€cœQA˜Œ/AlLÀeœQA˜ /AlL@gœQA˜€œ/AlL`eœQA˜€9/AlL€bœQA˜€Ë/AlL aœQA˜l/AlL rœQA˜ÿ /AlL …œQA˜Ú /AlL€‰œQA˜€œ /AlL@œQA˜` /AlLžœQA˜d /AlL ³œQA˜€ˆ /AlL ÌœQA˜€ /AlL ßœQA˜ /AlLCQA˜€ç /AlL\QA˜Ä /AlLàpQA˜€ /AlLŠQA˜x /AlL@›QA˜e /AlL «QA˜g /AlLà²QA˜Š /AlLÀ·QA˜€Ä /AlLÀ»QA˜ /AlLÀÂQA˜H /AlLÀÂQA˜m /AlL ÕQA˜u /AlL€ÜQA˜p /AlLçQA˜€b /AlL@ðQA˜U /AlL öQA˜' /AlL@üQA˜Ð /AlLÀùQA˜s /AlL öQA˜* /AlLõQA˜ã /AlL`õQA˜à /AlL€žQA˜€É /AlLàžQA˜² /AlLžQA˜€¢ /AlL`$žQA˜Ž /AlL7žQA˜] /AlL€GžQA˜3 /AlLÀUžQA˜€ /AlL@hžQA˜€ /AlLxžQA˜ô /AlL …žQA˜€Û /AlL‘žQA˜ó /AlL@™žQA˜€N /AlL ¢žQA˜€â /AlL`§žQA˜€, /AlL ¨žQA˜l /AlL ¦žQA˜Æ /AlLÀ£žQA˜€- /AlL€—žQA˜€q /AlL@—žQA˜Ù /AlL€žQA˜€/AlL`¢žQA˜€M/AlLÀ§žQA˜`/AlLÀ®žQA˜_/AlL`¿žQA˜N/AlL ÚžQA˜8/AlL€öžQA˜"/AlL€ ŸQA˜&/AlLàŸQA˜[/AlL GŸQA˜|/AlLÀjŸQA˜·/AlLÀ”ŸQA˜ó/AlL@¼ŸQA˜€/AlL`ëŸQA˜,/AlL`ùŸQA˜€¼/AlL€ QA˜8/AlLà QA˜€” /AlLà& QA˜Ð /AlL B QA˜€> /AlLÀX QA˜å /AlL w QA˜· /AlL { QA˜€… /AlLÀy QA˜- /AlL€y QA˜ /AlL€€ QA˜² /AlL… QA˜< /AlLÀ QA˜ø /AlL { QA˜€| /AlLv QA˜€þ/AlL`m QA˜À/AlLÀi QA˜€t/AlLàd QA˜/AlLà\ QA˜€Š/AlLÀW QA˜6/AlLT QA˜Í/AlLM QA˜€d/AlL E QA˜€ø/AlL`= QA˜¡/AlL 8 QA˜€@/AlLÀ4 QA˜Ý/AlL`2 QA˜€”/AlL@/ QA˜€:/AlL * QA˜*/AlLÀ1 QA˜€./AlL C QA˜€Z/AlLàU QA˜“/AlLl QA˜€Õ/AlL`y QA˜€2/AlL  QA˜€x/AlLž QA˜€›/AlL°¦ QA˜ø/AlL`½ QA˜K/AlL€Õ QA˜€ž/AlLÀè QA˜€â/AlLà÷ QA˜€@/AlL`¡QA˜€Ê/AlL"¡QA˜d/AlL /¡QA˜€ /AlL€6¡QA˜€© /AlL€>¡QA˜ /AlL F¡QA˜€[ /AlL`K¡QA˜§ /AlL`P¡QA˜ /AlLÀå¡QA˜î /AlL ¢QA˜ /AlL &¢QA˜€$ /AlL -¢QA˜9 /AlL 7¢QA˜€F /AlL@C¢QA˜V /AlL@R¢QA˜€{ /AlLÀb¢QA˜ˆ /AlL l¢QA˜€– /AlLÀv¢QA˜œ /AlL`‚¢QA˜€” /AlLà‹¢QA˜Ñ /AlL`„¢QA˜$ /AlL@y¢QA˜€A /AlL@s¢QA˜€n /AlL j¢QA˜ˆ /AlLÀd¢QA˜€Å /AlL[¢QA˜ã /AlLÀT¢QA˜/AlLàW¢QA˜€L/AlL€a¢QA˜x/AlL`f¢QA˜ž/AlLn¢QA˜ˆ/AlLàu¢QA˜…/AlLà}¢QA˜€Ï/AlL …¢QA˜€/AlL‰¢QA˜:/AlL€Œ¢QA˜}/AlL`’¢QA˜¬/AlL ™¢QA˜Š/AlL@¢QA˜à/AlL ‰¢QA˜€/AlL „¢QA˜O/AlLà~¢QA˜«/AlL x¢QA˜€/AlLÀr¢QA˜y/AlL n¢QA˜Î/AlLÀj¢QA˜$/AlLÀg¢QA˜€w/AlLc¢QA˜€½/AlLÀ_¢QA˜/AlL Z¢QA˜F/AlLÀY¢QA˜€J/AlLP^¢QA˜P/AlLàc¢QA˜(/AlL q¢QA˜/AlL}¢QA˜ï/AlL@‰¢QA˜Ï/AlL€“¢QA˜€°/AlLÀž¢QA˜ƒ/AlL@¯¢QA˜D/AlL`Ê¢QA˜®/AlLÀö¢QA˜/AlLE£QA˜€0/AlL`e£QA˜€Ï/AlL€ƒ£QA˜€M/AlL@¦£QA˜ô/AlL`½£QA˜Ú/AlLÀË£QA˜€á/AlL€Ð£QA˜ñ/AlLà×£QA˜>/AlL@Ú£QA˜t/AlLàÛ£QA˜€£/AlLàÜ£QA˜€ð/AlL€ß£QA˜=/AlL ߣQA˜€Œ/AlL à£QA˜€Ö/AlL€á£QA˜€;/AlL á£QA˜š/AlL@á£QA˜€î/AlLá£QA˜€!/AlL à£QA˜€’/AlL ߣQA˜Ï/AlLàÞ£QA˜//AlL€Û£QA˜€|/AlL ×£QA˜€Ò/AlL ×£QA˜€'/AlLàÝ£QA˜Y/AlL`ã£QA˜”/AlL ì£QA˜€é/AlLàñ£QA˜€E/AlLó£QA˜€¸/AlL€õ£QA˜€7/AlL õ£QA˜€ž/AlLõ£QA˜ù/AlLõ£QA˜g/AlLö£QA˜š/AlLà÷£QA˜Â/AlLÀû£QA˜€ó/AlLàë£QA˜€7/AlL Ú£QA˜/AlL Í£QA˜«/AlL¼£QA˜€Ä/AlL€§£QA˜ç/AlL€‘£QA˜€/AlL€‚£QA˜0/AlLÀx£QA˜>/AlLt£QA˜x/AlLb£QA˜€“/AlLà[£QA˜´/AlL S£QA˜æ/AlLÀI£QA˜€Ñ/AlL C£QA˜×/AlL@9£QA˜€ /AlLÀ0£QA˜ð/AlL )£QA˜€š/AlL £QA˜l/AlL@£QA˜€,/AlLà£QA˜€ä/AlLà£QA˜€\/AlL`ý¢QA˜/AlL ú¢QA˜€Ú/AlL@ô¢QA˜„/AlL é¢QA˜/AlLÀÞ¢QA˜€/AlL Ó¢QA˜€Ž/AlL Ì¢QA˜€2/AlL½¢QA˜ø/AlL`µ¢QA˜€/AlL ®¢QA˜€X/AlL€¨¢QA˜€ /AlLŸ¢QA˜Æ/AlLà•¢QA˜¢/AlL€Š¢QA˜€j/AlL`¢QA˜€F/AlL`z¢QA˜ó/AlL t¢QA˜€Š/AlLàt¢QA˜b/AlLn¢QA˜€o/AlLàd¢QA˜x/AlL T¢QA˜/AlLS¢QA˜¡/AlLàO¢QA˜€*/AlLÀJ¢QA˜ÿ/AlLàA¢QA˜:/AlL <¢QA˜€r/AlLÀ8¢QA˜€±/AlL 4¢QA˜€ñ/AlL`/¢QA˜/AlLÀ-¢QA˜€ /AlL@"¢QA˜/AlL`ý¡QA˜K /AlLÀÆ¡QA˜€%"/AlLв¡QA˜Ü"/AlL «¡QA˜€“)/AlL`¡QA˜€z*/AlL€Y¡QA˜€þ*/AlL`P¡QA˜€.+/AlLPL¡QA˜a+/AlL H¡QA˜€Ö+/AlLà<¡QA˜€0,/AlL 3¡QA˜‹,/AlL (¡QA˜ -/AlLà¡QA˜ÿ-/AlL€ü QA˜€Ð./AlL€ã QA˜€–0/AlL ¸ QA˜ä0/AlL · QA˜€W1/AlL ¹ QA˜Ê1/AlL`½ QA˜ž2/AlL€Æ QA˜€ù3/AlL Ò QA˜€Ô4/AlL@Ý QA˜Ú5/AlL ä QA˜ý5/AlLpå QA˜€*6/AlL€æ QA˜€¨6/AlL`é QA˜€t8/AlLù QA˜’9/AlL¡QA˜€©:/AlLÀ¡QA˜\:/AlL ¡QA˜€9/AlL 9¡QA˜’8/AlL [¡QA˜€¤7/AlL€¡QA˜€K6/AlL€°¡QA˜€5/AlLסQA˜€Ÿ3/AlL¢QA˜V3/AlL€ ¢QA˜ý2/AlL¢QA˜«2/AlL %¢QA˜92/AlL3¢QA˜y1/AlL@N¢QA˜¶0/AlLàj¢QA˜€0/AlL@r¢QA˜€R0/AlL ~¢QA˜€L0/AlL …¢QA˜€#0/AlLàŠ¢QA˜Ò//AlL€—¢QA˜€‚//AlL࣢QA˜€//AlL`­¢QA˜€·./AlL µ¢QA˜G./AlL@À¢QA˜€ö-/AlL Ê¢QA˜¾-/AlLpÑ¢QA˜€¢-/AlLÀÔ¢QA˜€C-/AlL€ä¢QA˜ô,/AlL ñ¢QA˜€T,/AlL` £QA˜è*/AlL@;£QA˜€D)/AlLàn£QA˜l)/AlL u£QA˜¼*/AlLª£QA˜€}+/AlLà–£QA˜€°+/AlLÀ’£QA˜à+/AlL £QA˜€,/AlL Ž£QA˜Y,/AlL ˆ£QA˜ú-/AlL@U£QA˜.//AlLÀj£QA˜€Ó0/AlL Œ£QA˜€3/AlL€·£QA˜ 5/AlL0â£QA˜€º5/AlL Å£QA˜€d6/AlL «£QA˜€—6/AlL€¢£QA˜ú6/AlLÀ£QA˜€!7/AlLÀ|£QA˜€@7/AlLw£QA˜€™7/AlL@o£QA˜È7/AlLÀY£QA˜€³8/AlL ]£QA˜€ð9/AlL`i£QA˜2/AlLµ£QA˜€Î>/AlL`·£QA˜ @/AlL £QA˜/@/AlL`T£QA˜O@/AlLÀ £QA˜m@/AlL`Å¢QA˜€|@/AlLŽ¢QA˜€‡@/AlLà¢QA˜€‘@/AlLy¢QA˜€Ò@/AlL`¢QA˜ó@/AlLà…¢QA˜A/AlLà¢QA˜€4A/AlL ™¢QA˜€ˆA/AlL ž¢QA˜€ÊA/AlLà¡¢QA˜€ùA/AlL ¨¢QA˜€!B/AlLÀ¯¢QA˜€UB/AlLÀº¢QA˜B/AlLÀâQA˜µB/AlLÀË¢QA˜5C/AlL Ô¢QA˜€‰C/AlL`×¢QA˜*D/AlLÀØ¢QA˜€»D/AlLÞ¢QA˜€(E/AlLÀá¢QA˜€ŽE/AlL æ¢QA˜F/AlLî¢QA˜€gF/AlL ø¢QA˜€KG/AlLà£QA˜RH/AlL@/£QA˜¼H/AlL@7£QA˜gI/AlLF£QA˜ëI/AlLÀQ£QA˜€!J/AlL g£QA˜€lJ/AlLÐw£QA˜{J/AlL{£QA˜ÇJ/AlLà‚£QA˜-K/AlL ‹£QA˜®K/AlL@‡£QA˜€L/AlL„£QA˜DM/AlLy£QA˜žM/AlL v£QA˜ÝM/AlLÀu£QA˜€N/AlL@t£QA˜€`N/AlLàt£QA˜€ÃN/AlLw£QA˜5O/AlL@}£QA˜ÒO/AlLàƒ£QA˜€yP/AlLà‚£QA˜'Q/AlL~£QA˜Q/AlL x£QA˜€R/AlLàl£QA˜€«R/AlL€h£QA˜ES/AlLàf£QA˜áS/AlL€e£QA˜€LT/AlLàj£QA˜€¬T/AlL€s£QA˜€üT/AlL ‚£QA˜hU/AlL€ˆ£QA˜€ÍU/AlL`†£QA˜€V/AlL€£QA˜€FV/AlL t£QA˜‡V/AlL l£QA˜ÁV/AlLàb£QA˜€ W/AlLàU£QA˜€˜W/AlL L£QA˜€!X/AlL€O£QA˜€nX/AlLÀY£QA˜€ÆX/AlLào£QA˜€tY/AlL€|£QA˜åY/AlLÀ|£QA˜\Z/AlL`u£QA˜€9[/AlL€b£QA˜î[/AlL _£QA˜€\/AlL Z£QA˜€]\/AlL@W£QA˜œ\/AlL@S£QA˜€ï\/AlLÀQ£QA˜G]/AlLÀO£QA˜¦]/AlL@O£QA˜€^/AlLàO£QA˜€â^/AlLÀI£QA˜7a/AlLÀ+£QA˜€Rc/AlL£QA˜€@d/AlL@ £QA˜€þd/AlLà£QA˜e/AlL £QA˜ f/AlL`þ¢QA˜Žf/AlLÀú¢QA˜€Êf/AlL ú¢QA˜ƒg/AlLÀû¢QA˜Xh/AlL€ü¢QA˜€šh/AlL`ü¢QA˜€Ôh/AlL`ü¢QA˜i/AlLàú¢QA˜Ti/AlLø¢QA˜€¨i/AlL ó¢QA˜€Üi/AlL ï¢QA˜€j/AlL`ç¢QA˜Ãj/AlLÀÜ¢QA˜€"k/AlL×¢QA˜“/AlL ©žQA˜L/AlL ²žQA˜€/AlL ¨žQA˜ü/AlL žžQA˜§/AlL`”žQA˜€à/AlLàžQA˜€/AlLÀˆžQA˜</AlLƒžQA˜€L/AlL zžQA˜X/AlL€qžQA˜I/AlLhžQA˜€/AlL`ažQA˜Ó/AlLàWžQA˜‰/AlLQžQA˜€;/AlL€GžQA˜é/AlL@=žQA˜|/AlL9žQA˜€í/AlL@6žQA˜€Î/AlL (žQA˜€û/AlLÀûQA˜L/AlL`šQA˜g/AlL mQA˜´/AlL`mQA˜€/AlL`kQA˜€`/AlLÀfQA˜ž/AlLaQA˜€ú/AlL dQA˜€/AlL@uQA˜à/AlL¹QA˜€á/AlL ÌQA˜ô/AlL ÝQA˜I/AlLòQA˜¥/AlL€žQA˜/AlLžQA˜f/AlLÀžQA˜ž/AlL@ žQA˜€/AlL`žQA˜€É/AlL`äQA˜€W/AlL@ÒQA˜©/AlL  QA˜Ü/AlL ¢QA˜€./AlL ¦QA˜y/AlL@¦QA˜á/AlLà®QA˜€/AlLÀ¸QA˜þ/AlLà¬QA˜/AlL@¸QA˜t/AlL`ÊQA˜€ª/AlL ÕQA˜€ü/AlL`àQA˜</AlL@íQA˜€„/AlLÀþQA˜²/AlLÀ žQA˜J/AlL€0žQA˜/AlLÀ`žQA˜€e/AlLƒžQA˜/AlL@˜žQA˜“/AlL ©žQA˜ü/AlL`ŸQA˜b/AlLŸQA˜Ø/AlLÀŸQA˜ù/AlL@ŸQA˜/AlL€ŸQA˜€B/AlL€ôžQA˜»/AlLàÿžQA˜¿/AlLŸQA˜r/AlL ,ŸQA˜Ú/AlLà5ŸQA˜€Š/AlL;ŸQA˜€ö/AlL 5ŸQA˜€Œ/AlLÀ4ŸQA˜/AlL@6ŸQA˜¡/AlL 4ŸQA˜€%/AlL`6ŸQA˜¤/AlL1ŸQA˜/AlLÀ.ŸQA˜£/AlLÀ/ŸQA˜#/AlLà4ŸQA˜A/AlL@7ŸQA˜€Ó/AlLÀ;ŸQA˜ü/AlL`ŸQA˜o/AlL`åžQA˜€/AlL æžQA˜Ö/AlLÀæžQA˜€­/AlL êžQA˜/AlL`ñžQA˜€ /AlL@öžQA˜€Á/AlLàòžQA˜€z/AlLížQA˜/AlLàäžQA˜Á/AlLÀÚžQA˜X/AlL ÕžQA˜/AlLàÑžQA˜€É/AlLÉžQA˜€„/AlL`žžQA˜o/AlL`åžQA˜€â/AlL@?QA˜/AlL 8QA˜T/AlL@9QA˜¨/AlL 6QA˜Ô/AlL€)QA˜/AlLQA˜€C/AlLQA˜€£/AlL` QA˜/AlLÀQA˜€:/AlLQA˜W/AlL .QA˜€O/AlL e0AlL9±QAÌÀ=e0AlL )±QAÌ@Be0AlLà±QAÌ@Ne0AlLÀ ±QAÌ^e0AlL`±QAÌke0AlLÀö°QAÌ€ie0AlL@í°QAÌÀae0AlLÀá°QAÌÀ[e0AlL ×°QAÌÀne0AlL ɰQAÌÀe0AlL`°QA̾e0AlL ¿°QAÌÀãe0AlL€¹°QAÌÀf0AlL€³°QAÌRf0AlL °°QAÌÀpf0AlLà­°QAÌ@£f0AlLÀ¦°QAÌ€Æf0AlLœ°QAÌÀÞf0AlL`”°QAÌ@öf0AlL@ˆ°QAÌÀüf0AlLà~°QAÌg0AlL s°QAÌ@#g0AlL€e°QAÌÀAg0AlLÀU°QAÌ@dg0AlLJ°QAÌÀng0AlL =°QAÌ‚g0AlL 6°QAÌÀ¨g0AlL€0°QAÌÀÖg0AlL€*°QAÌh0AlL@'°QAÌ@'h0AlL °QAÌ@6h0AlL °QAÌAh0AlL@°QAÌ@Uh0AlL@°QAÌph0AlLàý¯QÄh0AlL@÷¯QAÌ‘h0AlL ð¯QAÌ€Œh0AlL@à¯QAÌ„h0AlLðÚ¯QAÌ@}h0AlLàÖ¯QAÌ@„h0AlL Ç¯QAÌÀh0AlLÀ»¯QAÌ@­h0AlLÀ²¯QAÌ€¸h0AlL৯QAÌ´h0AlL€ž¯QAÌ@©h0AlLÀ–¯QAÌÀ¬h0AlLÀ¯QAÌ@¹h0AlL ˆ¯QAÌÀÇh0AlL€€¯QAÌ€Ûh0AlL z¯QAÌ€Ôh0AlLÀr¯QAÌ@Þh0AlLàd¯QAÌ€i0AlL ^¯QAÌÀ3i0AlLÀ]¯QAÌ€Yi0AlL \¯QAÌ@–i0AlL€W¯QAÌÀi0AlLÀN¯QAÌ@°i0AlL`4¯QAÌÀi0AlL`.¯QAÌ€Ài0AlLà$¯QA̾i0AlLÀ¯QAÌÀËi0AlL€¯QAÌøi0AlL€¯QAÌ@.j0AlL ¯QAÌ@Oj0AlL ¯QAÌ@Nj0AlLÀó®QAÌ@j0AlL â®QAÌ@4j0AlL`Ö®QAÌ@-j0AlL Ë®QAÌÀ@j0AlL ¿®QAÌÀVj0AlL€´®QAÌÀzj0AlL@ª®QAÌj0AlL Ÿ®QAÌ  j0AlL0˜®QAÌÀÌj0AlL`“®QAÌÀñj0AlL ‰®QAÌ€Úk0AlLàY®QAÌÿk0AlL€X®QAÌÀ+l0AlLW®QAÌ€Wl0AlLN®QAÌ@‡l0AlL@E®QAÌ€ãl0AlL€;®QAÌ€+m0AlL@6®QAÌ€dm0AlLÀ0®QAÌ€‰m0AlL .®QAÌ@¯m0AlL(®QAÌ@×m0AlLà®QAÌ@n0AlL®QAÌ@'n0AlL ®QAÌÇn0AlLó­QAÌ@ýn0AlL á­QAÌ€#o0AlL Ò­QAÌÀ>o0AlLÇ­QAÌÀ·o0AlL€©­QAÌÀèo0AlLà˜­QAÌÀp0AlL ‡­QAÌÀ"p0AlLÀy­QAÌ@jp0AlL d­QAÌ@ºp0AlL`I­QAÌýp0AlL 2­QAÌ€-q0AlL­QAÌ€6q0AlLà­QAÌ@q0AlL@ø¬QAÌ@×q0AlLàã¬QAÌ€r0AlLÖ¬QAÌÀ[r0AlL`Á¬QAÌÀ’r0AlLÀ³¬QAÌÀÈr0AlL ¦¬QAÌÀùr0AlL –¬QAÌLs0AlL ~¬QAÌÀ8s0AlL x¬QAÌÀ3s0AlL0u¬QAÌ@*s0AlL0v¬QAÌ@1s0AlLàq¬QAÌÀ&s0AlL°q¬QAÌ@s0AlLo¬QAÌ€ s0AlLÀn¬QAÌ@ s0AlLàj¬QAÌ€s0AlLg¬QAÌ€ÿr0AlL b¬QAÌ€s0AlL]¬QAÌ@ûr0AlLÀY¬QAÌ€òr0AlLðY¬QAÌ@ír0AlL0\¬QAÌ€ºr0AlL€W¬QA̶r0AlLàX¬QAÌ °r0AlL X¬QAÌ€£r0AlLpT¬QAÌÀ›r0AlLÀU¬QAÌ@Žr0AlL`R¬QAÌ€r0AlL€Q¬QAÌ@‡r0AlLÐN¬QAÌÀr0AlL°M¬QAÌ€er0AlL`G¬QAÌ€Zr0AlL0I¬QAÌ€Lr0AlL G¬QAÌHr0AlL@I¬QAÌ7r0AlL@H¬QAÌ@7r0AlLÐE¬QAÌ€?r0AlL D¬QAÌ@:r0AlLPB¬QAÌ@2r0AlLA¬QAÌ€+r0AlLÐ=¬QAÌ€&r0AlLð9¬QAÌ€r0AlL`7¬QAÌ@r0AlL08¬QAÌ€ýq0AlLà7¬QAÌ€óq0AlL°5¬QAÌ€ìq0AlLÀ4¬QAÌ×q0AlL4¬QAÌÙq0AlL 1¬QAÌÑq0AlLÐ.¬QAÌÂq0AlL@.¬QAÌ ¼q0AlLH/¬QAÌ@µq0AlL`,¬QAÌ€©q0AlL,¬QAÌ@¥q0AlLÐ-¬QAÌÀšq0AlL°,¬QAÌ@eq0AlL0(¬QAÌZq0AlL`&¬QAÌ€Qq0AlLp'¬QAÌÀ;q0AlLð"¬QAÌÀ6q0AlL@¬QAÌq0AlLð¬QAÌÀq0AlL@¬QAÌ@ùp0AlLЬQAÌÀðp0AlL€¬QAÌÀ¿p0AlLÀ ¬QA̶p0AlLÀ ¬QAÌ´p0AlL` ¬QAÌ­p0AlL  ¬QAÌÀ p0AlL@ ¬QAÌ€¤p0AlL°¬QAÌ€¬p0AlL ¬QAÌÀ®p0AlL0¬QAÌ€«p0AlL ¬QAÌ“p0AlL ý«QAÌ@‡p0AlLàþ«QAÌip0AlL`þ«QAÌ€Sp0AlLû«QAÌ@5p0AlLàö«QAÌ@$p0AlL°ô«QAÌp0AlLðî«QAÌ€p0AlLÀè«QAÌöo0AlL€è«QAÌ@ìo0AlLæ«QAÌßo0AlLpá«QAÌ@Ýo0AlLðß«QAÌ€Òo0AlL Þ«QAÌ€Êo0AlL@Û«QAÌ€­o0AlLàÓ«QAÌšo0AlLÀЫQAÌÀzo0AlLÐÏ«QAÌÀoo0AlL€Î«QAÌ€]o0AlL É«QAÌÀNo0AlLPÇ«QAÌDo0AlL€Â«QAÌ@3o0AlLྫQAÌ%o0AlL€¹«QAÌÀo0AlLÀ´«QAÌ€o0AlL š«QAÌ€ o0AlL0Ž«QAÌ€o0AlL‡«QAÌo0AlLÐy«QAÌ€o0AlL a«QAÌ@ o0AlL€L«QAÌ@—o0AlLüªQAÌ€§o0AlL÷ªQAÌ@¬o0AlLpôªQAÌ€²o0AlL ðªQA̯o0AlLÀìªQA̲o0AlL`èªQAÌ€³o0AlLðåªQAÌ@µo0AlL âªQAÌ€Ào0AlLتQAÌ@¿o0AlLÐɪQA̼o0AlLÐĪQAÌ€ºo0AlL໪QAÌ€¾o0AlLÀ¦ªQAÌ€¿o0AlLp£ªQAÌÀ¾o0AlLp¡ªQAÌÀÂo0AlLªQAÌÀÂo0AlL°‰ªQAÌ€¯o0AlL°‰ªQAÌ@®o0AlL°‹ªQAÌÀ´o0AlLpŒªQAÌÀ°o0AlL€¸ªQAÌ€©o0AlLpÚªQAÌ€‘o0AlL`ðªQAÌ@Šo0AlL òªQAÌÀ|o0AlLñªQAÌÀUo0AlL «QAÌMo0AlL` «QAÌ@=o0AlLЫQAÌo0AlL`-«QAÌýn0AlLP;«QAÌïn0AlLB«QAÌ€Ön0AlLPN«QAÌèn0AlLÐO«QAÌÀÄn0AlLPb«QAÌÀ·n0AlL@h«QAÌ“n0AlLd«QȦn0AlLj«QAÌ}n0AlL€o«QAÌpn0AlLÀn«QAÌ€on0AlLi«QAÌÀQn0AlL h«QAÌÀ?n0AlLð`«QAÌ€!n0AlL e«QAÌ@n0AlLPd«QAÌÀn0AlLÐ`«QAÌÿm0AlL`c«QAÌïm0AlLÀ_«QAÌèm0AlL`S«QAÌàm0AlL@N«QA̾m0AlL€G«QAÌ¢m0AlL°?«QAÌ•m0AlLÐA«QAÌ@sm0AlLÐD«QAÌ@\m0AlL0=«QAÌ\m0AlL:«QAÌem0AlL€,«QAÌ€om0AlL@!«QAÌ`l0AlLð÷ªQAÌÀPl0AlLà÷ªQAÌ€Gl0AlLøªQAÌ@l0AlLùªQAÌÀæk0AlLùªQAÌÀÍk0AlL0üªQAÌÀÆk0AlLpùªQAÌ@®k0AlLíªQAÌ€Èk0AlLÀéªQAÌÈk0AlL`æªQAÌ€Äk0AlL0ߪQAÌÀ²k0AlLÔªQAÌ€«k0AlL°ÏªQAÌ@©k0AlL@ͪQAÌ€§k0AlLʪQAÌÀÍk0AlLðŪQAÌ@l0AlLàÔªQAÌÀk0AlL°·ªQAÌ@3k0AlL€²ªQAÌÀ)k0AlL0±ªQAÌk0AlLp©ªQAÌÀ k0AlL@§ªQAÌ€k0AlL §ªQAÌûj0AlLp¦ªQAÌêj0AlL¢ªQAÌ@Þj0AlL ¢ªQAÌÔj0AlL€ŸªQAÌ@Àj0AlL°šªQAÌ@°j0AlL`˜ªQAÌ“j0AlLð“ªQAÌ@ˆj0AlLà’ªQAÌ@kj0AlLà”ªQAÌ€Ij0AlL°ŠªQAÌ@&j0AlL€ªQAÌ€(j0AlL|ªQAÌj0AlL|ªQAÌ€j0AlL xªQAÌ@j0AlL°tªQAÌ$j0AlLrªQAÌ€j0AlL0lªQAÌÀj0AlLðjªQAÌùi0AlLÀgªQAÌôi0AlLkªQAÌ@Þi0AlL`nªQAÌ@Õi0AlLàmªQAÌÀi0AlL°gªQAÌ€¯i0AlLaªQAÌ®i0AlL]ªQA̬i0AlL XªQAÌÀŸi0AlLOªQAÌ€ i0AlLàIªQAÌ@—i0AlL @ªQAÌÀ‹i0AlL?ªQAÌ@i0AlLP3ªQAÌÀ„i0AlL -ªQAÌi0AlL(ªQAÌ|i0AlL` ªQAÌ€Oi0AlL ªQAÌÀ)i0AlLÀªQAÌÀi0AlL  ªQAÌÀi0AlLð!ªQAÌ@óh0AlL $ªQAÌ€Õh0AlL$ªQAÌ@Ðh0AlL`!ªQAÌÀh0AlL ªQAÌÀ¬h0AlL0#ªQAÌ «h0AlL  ªQAÌ€œh0AlLªQAÌÀ•h0AlL ªQAÌ“h0AlL ªQAÌÀ…h0AlL0 ªQAÌ@wh0AlLðªQAÌ€Gh0AlL Ù©QAÌ1h0AlLPÌ©QAÌÀ(h0AlLðÅ©QAÌ@h0AlL ½©QAÌ€h0AlL`ª©QAÌÀõg0AlL`—©QAÌÀæg0AlLÐŽ©QAÌ@ág0AlL ‰©QAÌ€âg0AlL€©QAÌÓg0AlL€r©QAÌÆg0AlL°b©QAÌ€¹g0AlLÀR©QAÌ€°g0AlLpG©QAÌ€¯g0AlLðE©QAÌÀ¤g0AlLÐ9©QAÌ€›g0AlL2©QAÌ•g0AlLð,©QAÌ€Šg0AlL0#©QAÌ€Šg0AlL©QȦg0AlLà©QAÌ@tg0AlLÐì¨QAÌlg0AlLpà¨QAÌ@^g0AlL°Ð¨QAÌ@Mg0AlLpµ¨QAÌÀ@g0AlLP¥¨QAÌÀ#g0AlLÐ_¨QAÌ@g0AlLà7¨QAÌ€g0AlL@"¨QAÌ@g0AlLp¨QAÌ@g0AlLP¨QAÌÀg0AlL0¨QAÌ€ûf0AlL@ݧQAÌÀ÷f0AlLð×§QAÌÀùf0AlLàÁ§QAÌ€ôf0AlL0­§QAÌ@ðf0AlL §QAÌÀðf0AlL`§QAÌÀóf0AlL°t§QAÌ@òf0AlLÀH§QAÌÀðf0AlL°§QAÌïf0AlL@ä¦QAÌ@éf0AlLpÓ¦QAÌùf0AlL ͦQAÌ€úf0AlL¼¦QAÌ@õf0AlL`¦QAÌéf0AlLP¦QAÌôf0AlL€‹¦QAÌ@÷f0AlL …¦QAÌ@÷f0AlL€q¦QAÌ@ûf0AlLÀc¦QAÌ€üf0AlLpS¦QAÌ€g0AlL@5¦QAÌÀg0AlLó¥QAÌg0AlL€ê¥QAÌ@g0AlLPá¥QAÌÀg0AlLÐ¥QAÌ@0g0AlLp™¥QAÌ2g0AlLà‰¥QAÌ4g0AlL°y¥QAÌÀ3g0AlL@q¥QAÌ~g0AlLà¥QAÌ@™g0AlLݤQAÌÀ¶g0AlL½¤QAÌ@Îg0AlLÀ­¤QAÌÀh0AlLÐh¤QAÌ€h0AlLPØ£QAÌéh0AlL°g£QAÌWi0AlLé¢QAÌ@\i0AlLàä¢QAÌÀ‡i0AlL஢QAÌ@ši0AlL œ¢QAÌ@¿i0AlL@x¢QAÌÀüi0AlL°F¢QAÌ@?j0AlL@¢QAÌfj0AlL€õ¡QAÌÀsj0AlL í¡QAÌ€•j0AlL0סQAÌ€äj0AlL–¡QAÌ@îj0AlL ’¡QAÌk0AlLà¡QAÌ€k0AlLÀw¡QAÌ@¶k0AlLð¡QAÌ€Úk0AlLÀü QAÌÀl0AlL€à QAÌl0AlLpÝ QAÌ€l0AlLPÕ QAÌ€*l0AlL°È QAÌxl0AlL0¤ QAÌ@l0AlL° QAÌ€©l0AlL€ QAÌ m0AlL` QAÌ€m0AlL` QAÌ€%m0AlL@Z QAÌ@m0AlLà7›QAÌ€ m0AlL )›QAÌãl0AlL ›QA̰l0AlL` ›QAÌol0AlL ›QAÌÀšk0AlL@ßšQAÌ€;k0AlL€ÒšQAÌÀk0AlL€ÉšQAÌÀÒj0AlL`ÄšQAÌÀj0AlL€¿šQAÌ€bj0AlL`»šQAÌFj0AlLบQAÌÀj0AlL µšQAÌ€ãi0AlL ­šQAÌ€°i0AlL©šQAÌÀii0AlL £šQAÌÀ.i0AlLàššQAÌ@$i0AlLÀ™šQAÌ€äh0AlLÀ’šQAÌ€šh0AlL`‚šQAÌ@Oh0AlL@zšQAÌ€Ïg0AlL@hšQAÌ@ùf0AlL RšQAÌÀe0AlL*šQAÌ@rd0AlL€ šQAœÜÎLbc0AÒ²f&ê™QAÌÀRc0AlL€í™QAÌ@_a0AlLPešQAÌ@Aa0AlL€lšQA̤`0AlL@’šQAÌ€^0AlLý™QAÌ@{]0AlLÀÝ™QAÌ€Ò[0AlLp™QAÌ€7Z0AlL€ ™QAÌÀ¯X0AlL€¤˜QAÌÀ*X0AlL€¥˜QAÌ@§W0AlL`½˜QAÌ@4X0AlL˜QAÌ€ÃX0AlL e—QAÌÀ»U0AlL 6—QAÌÀ‘S0AlL0—QAÌ?U0AlL@—–QAÌÀ÷U0AlL ”–QAÌÏX0AlL`®–QAÌbZ0AlL ÿ–QAÌÀhZ0AlL€ý–QAÌ@?]0AlLP–QAÌ@š\0AlLó•QAÌ@$]0AlLÀ“•QAÌ]0AlLà•QAÌ€]0AlL€Ž•QAÌ@Ï\0AlLÀƒ•QAÌ]\0AlL v•QAÌò[0AlLj•QAÌ€—[0AlL`^•QAÌ€P[0AlL@R•QAÌ@ùZ0AlLF•QĄZ0AlL€:•QAÌÀYZ0AlL€.•QAÌ€Z0AlL '•QAÌïY0AlL` •QAÌ€‚Y0AlL •QAÌ +Y0AlLp•QAÌÀÒX0AlLþ”QAÌ@X0AlLÀï”QAÌ€UX0AlL°é”QAÌ€AX0AlLÀæ”QAÌ€X0AlL0á”QAÌ@ÞW0AlL€Ú”QAÌÇW0AlLð×”QAÌ@ŠW0AlL@Ñ”QAÌMW0AlL Ì”QAÌ@W0AlL`Æ”QAÌ@ÊV0AlLཔQAÌÀ¥V0AlLດQAÌ…V0AlLดQAÌMV0AlL`¸”QAÌ'V0AlLÀ¶”QAÌÀV0AlLà¶”QAÌÀÝU0AlL ¶”QAÌÅU0AlLp´”QAÌ€·U0AlL€³”QAÌ@‘U0AlL@«”QAÌ@pU0AlLàž”QAÌ€_U0AlL€˜”QAÌÀ?U0AlLÀŽ”QAÌÀU0AlL€‚”QAÌ U0AlLàv”QAÌèT0AlLk”QAÌÇT0AlL`c”QAÌ¥T0AlL@[”QAÌ€˜T0AlL`J”QAÌ€˜T0AlLÀ?”QAÌ€}T0AlLÀ,”QAÌ@KT0AlL”QAÌÀ2T0AlLà”QAÌT0AlLÀý“QAÌT0AlL0ü“QAÌ€îS0AlLà÷“QAÌ€»S0AlL@ö“QAÌ@}S0AlL€õ“QAÌTS0AlL°ó“QAÌ%S0AlL ñ“QAÌS0AlL`ì“QAÌS0AlLæ“QAÌ@S0AlL â“QAÌÀ$S0AlL€ß“QAÌ€5S0AlLÙ“QAÌ€;S0AlL€Î“QAÌ@2S0AlL Ä“QAÌS0AlL ¶“QAÌ€S0AlL`±“QAÌ@ S0AlLÀª“QAÌ@÷R0AlL ¦“QAÌÀØR0AlL`¤“QAÌ´R0AlL ¢“QAÌ€R0AlL@Ÿ“QAÌ€R0AlL@”“QAÌÀtR0AlLà€“QAÌÀsR0AlLo“QAÌÀqR0AlLPg“QAÌ@pR0AlLàa“QAÌÀpR0AlL°^“QAÌrR0AlLU“QAÌ@gR0AlL€A“QAÌÀTR0AlL 4“QAÌ/R0AlL (“QAÌ@.R0AlL€“QAÌ@;R0AlL “QAÌ@CR0AlLàû’QAÌ€\R0AlLÕ’QAÌÀqR0AlL Ë’QAÌÀeR0AlLདྷQAÌ@`R0AlLÀ´’QAÌ€TR0AlLh§’QAÌQR0AlLàœ’QAÌÀNR0AlL@•’QAÌÀ5R0AlL@Š’QAÌ@R0AlL †’QAÌ@öQ0AlLP‡’QAÌÀçQ0AlLà‡’QAÌ@ÂQ0AlLÀŒ’QAÌ€’Q0AlL@’’QAÌÀXQ0AlLÀ–’QAÌ€3Q0AlL –’QAÌ€Q0AlL`’’QAÌÀñP0AlLàŒ’QAÌ@ïP0AlL@€’QAÌïP0AlL ~’QAÌíP0AlLàv’QAÌóP0AlLpo’QAÌ€Q0AlL j’QAÌ€Q0AlLpc’QAÌÀQ0AlL`’QAÌ@Q0AlL R’QAÌ@Q0AlL€@’QAÌÀQ0AlL@4’QAÌ@1Q0AlL2’QAÌ@QQ0AlL@/’QAÌ€’Q0AlLà,’QA̺Q0AlL€+’QAÌÀR0AlLÀ#’QAÌ€_R0AlL€’QAÌ€}R0AlL° ’QAÌ…R0AlL’QAÌÀ‚R0AlL€ý‘QAÌÀyR0AlL°ð‘QAÌ@‡R0AlL ç‘QAÌÀ©R0AlLàÞ‘QAÌÀÕR0AlLàÔ‘QAÌúR0AlLPΑQAÌÀ S0AlL`Ë‘QAÌS0AlLPÁ‘QAÌ"S0AlLà¿‘QAÌÀ$S0AlL0³‘QAÌ@%S0AlLÀ°‘QAÌúR0AlLðœ‘QAÌÜR0AlL@‘QAÌÀ³R0AlL‘QAÌ€‚R0AlL }‘QAÌÀFR0AlL{‘QAÌÀþQ0AlL€r‘QAÌ@·Q0AlL€k‘QAÌ€‡Q0AlL`e‘QAÌ@[Q0AlL`\‘QAÌ@lQ0AlLàS‘QAÌ€Q0AlLðH‘QA̧Q0AlL@$‘QAÌÀ„Q0AlL`‘QAÌ€BQ0AlL ‘QAÌÿP0AlLÀ‘QAÌ@ÂP0AlLÀ‘QAÌ€•P0AlL -‘QAÌÀ{P0AlL`.‘QAÌ@TP0AlL@0‘QAÌ€P0AlLà"‘QAÌÀúO0AlL‘QAÌ@êO0AlL  ‘QAÌ@ÓO0AlL€‘QAÌ@RO0AlL ôQAÌ@O0AlLàòQAÌÛN0AlL ùQAÌ·N0AlLüQAÌÀ§N0AlLýQAÌÀ}N0AlLÀûQAÌ@CN0AlL€õQAÌN0AlL ñQAÌ€ôM0AlLÀãQAÌÔM0AlL ÚQAÌ@›M0AlL ÛQAÌ@|M0AlLàÞQAÌ@M0AlL×QAÌÀ.M0AlL ÌQAÌ M0AlL ¼QAÌ@äL0AlL@°QAÌÀÈL0AlLà¥QAÌÀ±L0AlL›QAÌÀ¥L0AlL QAÌÀ{L0AlL`ƒQAÌ@GL0AlL`}QAÌ€L0AlL {QAÌÀòK0AlL@}QAÌÀÉK0AlL€ƒQAÌ@¤K0AlL`ƒQAÌ@K0AlL€QAÌ…K0AlLp~QAÌK0AlL€}QAÌpK0AlLàzQAÌdK0AlLÀxQAÌ€(K0AlLàxQAÌ€K0AlL€tQAÌÀ K0AlL tQAœÜÎLÿJ0Aæ™étQAÌÀøJ0AlL`‚QAÌK0AlL ŒQAÌõJ0AlL€“QAÌÀóJ0AlL0•QAÌÀîJ0AlL ›QAÌ@áJ0AlLÀ£QAÌÀµJ0AlL¨QAÌaI0AlL`ÖQAÌ@J0AlL ‘QAÌ€ìH0AlL K‘QAÌÀçI0AlL¡‘QAÌÀÊG0AlL ’QAÌëG0AlLP;’QAÌ€WH0AlL ¶’QAÌ€ÃG0AlLÀ¹’QAÌ€œG0AlL ½’QAÌ€…G0AlLÀ¿’QAÌÀlG0AlL Â’QAÌ@OG0AlL Î’QAÌ@DG0AlL`Ü’QAÌ G0AlLH“QAÌÀG0AlL@W“QAÌýF0AlL ]“QAÌ÷F0AlL h“QAÌíF0AlLÀv“QAÌéF0AlL~“QAÌ@ÓF0AlL †“QAÌ@¶F0AlL€“QAÌÀF0AlLà’“QAÌ)F0AlL “QAÌ@‡E0AlL «“QAÌÀÏD0AlL ·“QAÌ@)D0AlL Ë“QAÌ@œC0AlL@Ö“QAÌåB0AlL`è“QAÌÀUB0AlL€ô“QAÌÀëA0AlL€”QAÌÃ@0AlL@!”QAÌ^?0AlL @”QAÌ,?0AlL0H”QAÌÀ³?0AlL€Y”QAÌ€è?0AlL [”QAÌ @0AlL ^”QAÌZ@0AlL \”QAÌÀ|@0AlL R”QAÌ€‰@0AlL M”QAÌš@0AlLàG”QA̺@0AlLà@”QAÌÀÚ@0AlL`?”QAÌÀÿ@0AlLÀ?”QAÌ&A0AlLÀC”QAÌ@©A0AlLÐL”QAÌ@ü@0AlLÀ•QAÌÀ]A0AlLÀ#•QAÌ@A0AlL0•QAÌÀÇA0AlLà=•QAÌðA0AlL E•QAÌGB0AlLM•QAÌÀ–QAÌV10AlL`?–QAÌ@m10AlLpC–QAÌ@q10AlL@U–QAÌ€\10AlLÀZ–QAÌ€N10AlLÀe–QAÌ€c10AlLu–QAÌ@10AlLÐ~–QAÌ@10AlL …–QAÌ€¶10AlL`Œ–QAÌ€å10AlL –QAÌÀ20AlL “–QAÌ€320AlLà–QAÌ€620AlL`¤–QAÌ@020AlLÀ»–QAÌ@20AlL€Å–QAÌ@ò10AlLÀË–QAÌ€¸10AlLàÛ–QAÌ’10AlLÀç–QAÌX10AlL ü–QAÌÀ/10AlL@—QAÌ€ò00AlL —QAÌ€Ï00AlLà0—QAÌ€¯00AlL B—QAÌ –00AlL`O—QAÌÀ|00AlL`\—QAÌÀ[00AlLÀf—QAÌÀ<00AlLÀt—QAÌÀ00AlL€…—QAÌÀ 00AlL€‡—QAÌÀá/0AlL ——QAÌ™/0AlL@¦—QAÌÀu/0AlL ±—QAÌÀ//0AlL@¾—QAÌÀö.0AlLàΗQAÌ€À.0AlL€Ù—QAÌ@.0AlL€ë—QAÌ<.0AlL ü—QAÌ€.0AlL ˜QAÌ€Ý-0AlL€˜QAÌ@ª-0AlL@.˜QAÌ€-0AlL`@˜QAÌ€S-0AlLÀS˜QAÌ%-0AlL€_˜QAÌ@-0AlLl˜QAÌ×,0AlL ˜QA̵,0AlL`˜QAÌ@“,0AlL ›˜QAÌ|,0AlL«˜QAÌZ,0AlL@µ˜QAÌ€+,0AlL Ë˜QAÌ€j*0AlLˆ™QAÌ@A+0AlL€Ú™QAÌÇ+0AlLà šQAÌÖ+0AlL šQAÌÀï+0AlLà"šQAÌ@,0AlLà)šQAÌ€,0AlL0šQAÌ),0AlL€5šQAÌF,0AlLàAšQAÌO,0AlLÀHšQAÌ€\,0AlL OšQAÌÀk,0AlL`UšQAÌ@x,0AlL [šQAÌ€ƒ,0AlL ašQAÌÀ’,0AlLàgšQAÌÀ™,0AlL ošQAÌ@’,0AlLÀwšQAÌ€,0AlL`‰šQAÌÀy,0AlL@“šQAÌÀn,0AlLàœšQAÌÀ?,0AlLà›šQAÌ@,0AlL ™šQAÌÀá+0AlLà’šQAÌÀÂ+0AlLà’šQAÌ€+0AlL “šQAÌø)0AlLyšQAÌ@ú'0AlL RšQAÌÀL'0AlL\šQAÌZ)0AlL g›QAÌÀm)0AlLV›QAÌ@)0AlLÀF›QAÌ€¬)0AlL€)›QAÌ€À)0AlL›QAÌÀÛ)0AlL ›QAÌÀ9*0AlL ›QAÌ@©*0AlL ÖšQAÌz+0AlL°›QAÌ@b+0AlL  ›QAÌ@I+0AlL@›QAÌ€+0AlL€#›QAÌÔ*0AlLÀ5›QAÌ@‡*0AlL€L›QAÌÀ"*0AlL@l›QAÌ€À)0AlL€ˆ›QAÌÀ­)0AlL Ž›QAÌ )0AlL”›QAÌÀ‘)0AlL€Ÿ›QAÌÀ†)0AlL ¦›QAÌ)0AlL€¬›QAÌ@})0AlL ¶›QAÌÀ¬)0AlL½›QAÌÀâ)0AlLàÁ›QAÌ@*0AlL@È›QAÌÀ6*0AlLÀΛQAÌ€o*0AlL€Ô›QAÌ@›*0AlLÀÙ›QAÌÀà*0AlL@è›QAÌ€/+0AlL ô›QAÌÀO+0AlL ø›QAÌ@t+0AlLÀû›QAÌ€™+0AlL ÿ›QA̲+0AlL œQAÌ@Ù+0AlL@œQAÌñ+0AlLÀœQAÌ ,0AlLà œQAÌÀ,0AlL€œQAÌÀ5,0AlL€œQAÌ€\,0AlLàœQAÌ€y,0AlL` œQAÌ€—,0AlL œQAÌÀ¹,0AlLÀ œQAÌ@×,0AlLÀœQAÌ@ý,0AlL`œQAÌ€-0AlL`œQAÌ€4-0AlL œQAÌQ-0AlL`œQAÌq-0AlL@ œQAÌ€Ÿ/0AlL`eœQAÌÀ 00AlL ™œQAÌ@ 00AlLÀŸœQAÌ@G/0AlLÀ¥œQAÌ€-0AlL€lœQAÌ@Ð+0AlLàLœQAÌÀ+0AlL@=œQAÌ€H*0AlL€"œQAÌü*0AlL ™œQAÌ@E+0AlL ÄœQAÌ@«+0AlL€QAÌ@;,0AlL VQAÌ@ñ,0AlL ÆQAÌ€ì,0AlL ÑQAÌ€¥-0AlL@ÆQAÌ*.0AlL ËQAÌÀ /0AlL€ÆQAÌ€¡/0AlLàÃQAÌÿ/0AlL@ÄQAÌ@900AlL ÀQAÌÀn00AlL ¹QAÌ€ 10AlLà˜QAÌ@10AlL@¨QAÌÀA10AlL@ÁQAÌ€]10AlL ØQAÌl10AlL€ìQAÌ€k10AlL ÷QAÌ€k10AlLàüQAÌÀa10AlL@žQAÌÀ^10AlLÀžQAÌ€Y10AlLÀžQAÌR10AlL0žQAÌ€G10AlL <žQAÌ€:10AlLÀJžQAÌÀ.10AlL`TžQAÌ@'10AlL€`žQAÌÀ$10AlLàižQAÌ@$10AlLPpžQAÌ@$10AlLàržQAÌ€ 10AlL €žQAÌÀ10AlL ‰žQAÌÀ10AlL •žQAÌ€10AlLà žQAÌ€10AlLÀ²žQAÌÀ+10AlLÀÇžQAÌ@H10AlLàŸQAÌY10AlLÀŸQAÌ@t10AlL€>ŸQAÌ€…10AlLÀ[ŸQAÌ@¤10AlL…ŸQAÌÐ10AlL°¡ŸQAÌÀæ10AlL€°ŸQAÌÀ420AlLÞŸQAÌ€:20AlL€áŸQAÌÀ‹20AlLÀ QAÌ@Ý20AlL`F QAÌ@30AlL  QAÌ@^30AlL ¹ QAÌ¡30AlL@¡QAÌ€»30AlL`@¡QAÌ@ã30AlLz¡QAÌÀü30AlLÀž¡QAÌ@U40AlL ¢QAÌ€å50AlL€¼¡QAÌ€û50AlLÐáQA̬80AlLÀ©¢QAÌ90AlLÑ¢QAÌ€y90AlLò¢QAÌh80AlLà)£QAÌ€N80AlL€/£QAÌ@+80AlL 6£QAÌ€80AlL`?£QAÌì70AlL H£QAÌÀÙ70AlL O£QA̸70AlL Y£QAÌÀ–70AlL`c£QAÌ@ý60AlL0£QAÌ@i70AlLÀž£QAÌÀ[:0AlL0¤QAÌ€:0AlL %¤QAÌ@¯:0AlL`-¤QAÌÀÅ:0AlL@1¤QAÌ€Ì:0AlL`2¤QAÌÀ;0AlLP<¤QAÌ;0AlLÐ?¤QAÌ@9;0AlL@E¤QAÌC;0AlLðF¤QAÌ@‹=0AlL ¬¤QAÌ€¢<0AlL ѤQAÌ€û<0AlLÀè¤QAÌ€h=0AlL¥QAÌ@Ë=0AlL ¥QAÌ@D>0AlL`1¥QAÌ@?0AlL Z¥QAÌ@&?0AlLÐ`¥QAÌÀ @0AlL ™¥QAÌ€8@0AlL€¥QAÌÀc@0AlL॥QAÌ@”@0AlL€²¥QAÌÑ@0AlLà¿¥QAÌ@A0AlL Î¥QAÌ€ A0AlLÀÕ¥QAÌ€A0AlL€ç¥QAÌ@A0AlL ú¥QAÌÀA0AlLà ¦QAÌÀA0AlL ¦QAÌ€8A0AlL`3¦QAÌ@A0AlL C¦QAÌÀLA0AlL€Z¦QAÌ@nA0AlL€y¦QAÌ@‡A0AlL`—¦QAÌkA0AlLà´¦QAÌÀKA0AlL Æ¦QAÌ#A0AlL §QAÌì@0AlL€3§QAÌ@Ê@0AlL \§QA̧@0AlL€€§QAÌ€@0AlLŸ§QAÌ`w@0AlL(½§QAÌ@þ@0AlL€­§QAÌ@=A0AlL ý§QAÌ€–A0AlLÀ\¨QAÌÝA0AlL@¬¨QAÌ@ñA0AlL ¹¨QAÌ@þA0AlLp¾¨QAÌÀ B0AlL èQAÌ€)B0AlL@ȨQAÌÀbB0AlL@̨QAÌÀÁB0AlL ϨQAÌ@C0AlLàÒ¨QAÌ@PC0AlLÀÖ¨QAÌ@™C0AlL@Ù¨QAÌ€êC0AlL ݨQAÌ@1D0AlL à¨QAÌ}D0AlL€â¨QAÌÀ«D0AlLàä¨QAÌ@åD0AlL ç¨QAÌ@E0AlLÀè¨QAÌ€`E0AlL@ê¨QAÌÀ¾E0AlLàê¨QAÌÀF0AlL€é¨QAÌÀ\F0AlL è¨QAÌ´F0AlL`è¨QAÌ@¿F0AlL`ï¨QAÌ€åF0AlLàü¨QAÌÀúF0AlL©QAÌ€G0AlLÀ©QAÌ@,G0AlL©QAÌ€HG0AlL`*©QAÌaG0AlLà:©QAÌ€|G0AlLÀE©QAÌÀŸG0AlL S©QAÌ€§G0AlLpV©QAÌÆG0AlL a©QAÌïG0AlLÀm©QAÌ€H0AlLà}©QAÌ@2H0AlLÀŠ©QAÌ@fH0AlLŸ©QAÌÀ™H0AlLÀ«©QAÌ€ÊH0AlL€¼©QAÌ€üH0AlLÌ©QAÌÀ3I0AlL€Þ©QAÌTI0AlL é©QAÌ|I0AlL@ø©QAÌ@I0AlL`ªQAÌÀ´I0AlL`ªQAÌ€ÅI0AlL@ªQAÌ@×I0AlL %ªQAÌ@âI0AlL,ªQAÌ€òI0AlL`6ªQAÌ@ J0AlL BªQAÌ€2J0AlL`JªQAÌ@[J0AlL RªQAÌ@pJ0AlLÀSªQAÌÀ˜J0AlLVªQAÌÀêJ0AlL€\ªQAÌ€!K0AlL aªQAÌÀzK0AlL@fªQAÌ€ÌK0AlL€hªQAÌ@8L0AlL iªQAÌ@^L0AlL@lªQAÌ@|L0AlLmªQAÌÀM0AlL@sªQAÌ@0M0AlL@uªQAÌaM0AlL`xªQAÌ€zM0AlLÀyªQAÌ–M0AlL|ªQAÌ€µM0AlLà~ªQAÌÍM0AlL€ªQAÌëM0AlL@…ªQAÌ€ýM0AlLàŽªQAÌ€ýM0AlL€™ªQAÌÀN0AlLàŸªQAÌÀ6N0AlL@¡ªQAÌÀVN0AlL`¢ªQAÌÀwN0AlLࢪQAÌÀ”N0AlLÀ£ªQAÌ@¸N0AlL४QAÌ@ÒN0AlL€ªªQAÌ@æN0AlL ®ªQAÌ@O0AlL¶ªQAÌ@O0AlL ºªQAÌÀ2O0AlL`¿ªQAÌ€XO0AlL`ȪQAÌ€pO0AlLͪQAÌ@ƒO0AlLàѪQAÌ@£O0AlL€áªQAÌ@ÆO0AlLíªQAÌßO0AlLàñªQAÌ€P0AlLõªQAÌ@*P0AlL€óªQAÌÀ`P0AlLÀõªQAÌ@P0AlLõªQA̳P0AlL óªQAÌÌP0AlLàöªQAÌ€ÛP0AlL «QAÌ€çP0AlLà«QAÌÀQ0AlL «QAÌÀQ0AlLà«QAÌ€Q0AlL€%«QAÌ€ýP0AlL€0«QAÌ@ûP0AlL`?«QAÌøP0AlL K«QAÌÀöP0AlLàV«QAÌèP0AlL€g«QAÌÕP0AlL@y«QAÌ¿P0AlL€Ž«QAÌ@~P0AlL ЫQAÌ€P0AlLàC¬QAÌ@úO0AlLàY¬QAÌïO0AlLàs¬QAÌ@ÛO0AlLÀ’¬QAÌ€ÕO0AlL8¬QAÌÀÓO0AlL` ¬QAÌÉO0AlL೬QAÌÀO0AlL`ĬQAÌ@£O0AlLä¬QAÌ€…O0AlL€­QAÌ\O0AlLàG­QAÌ€ŽO0AlL`K­QAÌÀ¼O0AlLàM­QAÌÀäO0AlL P­QAÌ@P0AlL@R­QAÌ@:P0AlL S­QAÌZP0AlLàQ­QAÌ{P0AlL€R­QAÌ™P0AlL€R­QAÌ€ÎP0AlL`R­QAÌ€üP0AlL€Z­QAÌ@üP0AlL c­QAÌÿP0AlL@n­QAÌÀQ0AlL z­QAÌÀ Q0AlLÀ„­QAÌÀQ0AlLÀ­QAÌ€.Q0AlL` ­QAÌÀNQ0AlL¹­QAÌ@LQ0AlL`Ì­QAÌRQ0AlL Ü­QAœÜÎÌFQ0Až3sè­QAÌ€8Q0AlL@ï­QAÌ"Q0AlLÀû­QAÌÀ Q0AlL ®QAÌöP0AlLÀ ®QAÌÀÖP0AlL®QAÌ€¼P0AlL`®QAÌ@žP0AlL`®QAÌ€P0AlL`$®QAÌ€6P0AlL€8®QAÌÀP0AlL :®QAÌýO0AlLÀ@®QAÌêO0AlLG®QAÌÀ×O0AlLO®QAÌÅO0AlLX®QAÌ·O0AlL f®QAÌÀ§O0AlL q®QAÌ@˜O0AlL z®QAÌ€‘O0AlL ‹®QAÌ€ŠO0AlLà•®QAÌÀƒO0AlL€Ÿ®QAÌ€xO0AlL «®QAÌ@gO0AlL@¶®QAÌ@WO0AlL@Á®QAÌÀJO0AlLàÌ®QAÌ=O0AlL Ö®QAÌ!O0AlL€á®QAÌO0AlL è®QAÌÀ O0AlLì®QAÌÀO0AlLó®QAÌ@%O0AlLý®QAÌ@+O0AlLÀ¯QAÌ@O0AlLÀ%¯QAÌÀgO0AlLàK¯QAÌtO0AlL€Y¯QAÌÀO0AlLÀh¯QAÌÀƒO0AlL w¯QAÌ€›O0AlL ‡¯QAÌÀ¶O0AlLÀޝQAÌ@ÓO0AlL¯QAÌðO0AlL@¯QAÌ1P0AlLà¯QAÌpP0AlL`ޝQAÌÀ´P0AlL`¯QAÌ@éP0AlLà“¯QAÌ|Q0AlL€¢¯QAÌ@R0AlL௯QAÌ2R0AlL@µ¯QAÌ@qR0AlL ¹¯QA̧R0AlL@»¯QAÌ€àR0AlL ¾¯QAÌS0AlL`ůQAÌ\S0AlL@ʯQAÌÀ¡S0AlL@̯QAÌØS0AlLÀ̯QAÌ@T0AlL ίQAÌ€lT0AlLàίQAÌ€T0AlLàϯQAÌ€öT0AlLÀÕ¯QAÌ@3U0AlL`ׯQAÌÀeU0AlL€Ú¯QAÌU0AlLÛ¯QAÌ@ÅU0AlL`Û¯QAÌ€ýU0AlL Û¯QA̱QAÌ V0AlLàE±QAÌ@(V0AlL I±QAÌ€@V0AlL H±QAÌDV0AlL ?±QAÌÀFV0AlL 8±QAÌ@IV0AlLà/±QAÌ€\V0AlL %±QAÌV0AlL ±QAÌ@©V0AlL ±QAÌÀÇV0AlL ±QAÌ@òV0AlL`±QAÌ€"W0AlL€±QAÌ@FW0AlLÀ±QAÌÀoW0AlL±QA̤W0AlL` ±QAÌÊW0AlLà±QAÌÀÝW0AlL@±QAÌëW0AlL!±QAÌ€ÙW0AlL€&±QAÌ@´W0AlLà)±QAÌ@ W0AlL@-±QÄW0AlL`1±QAÌ@sW0AlL :±QAÌ>W0AlL`>±QAÌ!W0AlLÀ@±QAÌ€ùV0AlLÀ>±QAÌÀÖV0AlL <±QAÌ»V0AlLà=±QAÌ€ªV0AlL C±QAÌÀ’V0AlLÀL±QAÌ@’V0AlL Z±QAÌ@³V0AlL l±QAÌ€äV0AlLàa±QAÌ€HW0AlL€X±QAÌÀ±W0AlL@L±QAÌ@X0AlLàD±QAÌIX0AlLÀ8±QAÌ@œX0AlLÀ2±QAÌ@åX0AlL@-±QAÌ€Y0AlL@&±QAÌ@DY0AlL€±QAÌ€\Y0AlL@ ±QAÌÀyY0AlL€±QAÌÀ•Y0AlLþ°QAÌ@ÆY0AlLàÿ°QAÌ@ìY0AlLÀ±QAÌ€Z0AlL@±QAÌ€9Z0AlL€±QAÌ@ZZ0AlL`$±QAÌ€{Z0AlL€.±QAÌZ0AlL`8±QAÌÅZ0AlLÀG±QAÌ@ÿZ0AlLÀK±QAÌ@1[0AlLàL±QAÌ@R[0AlL€M±QAÌ€y[0AlL J±QAÌ@˜[0AlLàN±QAÌÀ±[0AlLàQ±QAÌÐ[0AlLÀX±QAÌÀÚ[0AlL@a±QAÌÀæ[0AlL€h±QAÌë[0AlLo±QAÌÀì[0AlL w±QAÌ@ò[0AlLàƒ±QAÌ@ø[0AlL@‹±QAÌÀ\0AlLÀ±QAÌ(\0AlL —±QAÌ@.\0AlL¢±QAÌ€<\0AlL ¬±QAÌ€J\0AlL³±QAÌ€i\0AlL¸±QAÌ€\0AlL@¿±QAÌ@Ç\0AlLбQAÌ@Ì\0AlL`Û±QAÌб\0AlLˆä±QAÌÀ‹\0AlLàé±QAÌj\0AlL ï±QAÌ@>\0AlL`ø±QAÌ€\0AlL ²QAÌÀº[0AlL@ ²QAÌ”[0AlLÀ²QAÌÀ^[0AlL ²QAÌÀ0[0AlL ²QAÌ@…Z0AlL 6²QAÌ@¹Z0AlL`I²QAÌ€[0AlL]²QAÌh[0AlL@r²QAÌ@‰[0AlL€y²QAÌ@³[0AlL ²QAÌ€Û[0AlL ˆ²QAÌ\0AlL –²QAÌ€]\0AlL¥²QAÌÀ~\0AlL`û²QAÌ@˜\0AlL ý²QAÌÀ·\0AlL ü²QAÌ@Ü\0AlLø²QAÌó\0AlLàê²QAÌ]0AlL€à²QAÌ]0AlL@Ò²QAÌ]0AlL€Ã²QAÌ€]0AlL ·²QAÌÀ]0AlL £²QAÌ@þ\0AlL@—²QAÌ@]0AlLÀˆ²QAÌ@]0AlLàw²QAÌÀ$]0AlL`k²QAÌ@;]0AlL@_²QAÌF]0AlLàU²QAÌ@)]0AlL€I²QAÌ ]0AlL@F²QAÌ]0AlL@;²QAÌ]0AlL`0²QAÌ@ù\0AlL $²QAÌó\0AlL@ ²QAÌê\0AlL ²QAÌÞ\0AlL@²QAÌ€Ú\0AlLà²QAÌ@Þ\0AlL€²QAÌÀõ\0AlL÷±QAÌ€VX0AlLÀ ±QAÌÀ7X0AlL±QAÌ€X0AlLàÿ°QAÌ€ÂW0AlL@÷°QAÌÀŸW0AlLàð°QÃW0AlL`é°QAÌ€yW0AlL ã°QAÌ¡W0AlL€×°QAÌ€ÎW0AlL€Ó°QAÌ€ôW0AlLà̰QAÌ X0AlL€Ä°QAÌ€øW0AlL ¿°QAÌÀÍW0AlL`¹°QA̵W0AlL`·°QAÌ€›W0AlL`®°QAÌ@W0AlLÀ °QAÌ€}W0AlL@˜°QAÌÀmW0AlL`°QAÌ@]W0AlLà…°QAÌÀMW0AlL@}°QAÌ>W0AlL t°QAÌ€:W0AlL@p°QAÌ€6W0AlLÀk°QAÌ>W0AlL@b°QAÌ@PW0AlL [°QAÌdW0AlL`Q°QAÌ@sW0AlL@I°QAÌ@€W0AlL@B°QAÌ@šW0AlLà8°QAÌ´W0AlLÀ2°QAÌ@×W0AlL /°QAÌñW0AlL`-°QAÌX0AlL@.°QAÌ1X0AlL€2°QAÌÀ@X0AlL:°QAÌ@X0AlL8°QAÌÀüW0AlLà8°QAÌÀX0AlL€@°QAÌ€ X0AlLÀH°QAÌ€X0AlLàO°QAÌX0AlLàX°QAÌ#X0AlL`°QAÌà'X0AlLÀd°QAÌ/X0AlL€k°QAÌ4X0AlL r°QAÌ:X0AlL z°QAÌ€BX0AlL@ƒ°QAÌKX0AlLÀ°QAÌUX0AlL›°QAÌ]X0AlLÀ¢°QAÌ€bX0AlLЧ°QAÌÀiX0AlL€®°QAÌqX0AlL µ°QÃX0AlL@À°QAÌ@“X0AlL Í°QAÌ€¤X0AlLذQAÌÀ´X0AlL â°QAÌÃX0AlL`ì°QAÌÀÌX0AlL`õ°QAÌÀÚX0AlLý°QAÌÂX0AlLÿ°QAÌ@¦X0AlLÀ±QAÌ€‹X0AlL ±QAÌÀkX0AlL ±QAÌ€VX0AlLÀ ±QAÌ@R<0AlL€Ú“QAÌH<0AlL`“QA̾?0AlL@Ä“QAÌÀ?0AlLÀ¼“QAÌÀ´@0AlLàg“QAÌ@A0AlLàH“QAÌ%A0AlL`C“QAÌ€=A0AlLB“QAÌwA0AlLÀD“QAÌŽA0AlL`A“QAÌÀ¡A0AlL@<“QA̳A0AlL€0“QAÌÀ»A0AlLà*“QAÌ@ØA0AlL&“QAÌÀøA0AlL $“QAÌÀ/B0AlL€"“QAÌVB0AlL€“QAÌxB0AlL“QAÌB0AlL “QAÌ€YB0AlLà “QAÌ@FB0AlL “QAÌÀ>B0AlLþ’QAÌÀDB0AlL ÷’QAÌÀrB0AlLß’QAÌ”B0AlL@É’QAÌ@§B0AlL ¯’QA̬B0AlLà¡’QAÌ@¹B0AlL’QAÌ@ÅB0AlLv’QAÌ€ÂB0AlL°M’QAÌ€šB0AlL@L’QAÌsB0AlL M’QAÌ€NB0AlLÀN’QAÌ€%B0AlL€P’QAÌ€òA0AlL`S’QAÌ·A0AlL@[’QAÌ@²A0AlLÀl’QAÌÀiA0AlL@t’QAÌ@MA0AlLu’QAÌ–@0AlL €’QAÌ@a@0AlL‚’QAÌ€>@0AlL ƒ’QAÌ@@0AlL`‡’QAÌ@í?0AlL Š’QAÌ@Ò?0AlL ‰’QAÌÀ¸?0AlLƒ’QAÌ€ƒ?0AlL I’QAÌÒ?0AlL€I’QAÌÀõ@0AlL ï‘QAÌÀŒB0AlL +’QAÌÀáB0AlL ’QAÌ@IC0AlL`)’QAÌÅD0AlL ý‘QAÌÀ÷D0AlL€û‘QAÌ€.E0AlLàò‘QAÌ€RE0AlL è‘QAÌÀE0AlL Ó‘QAÌÀ«E0AlL‘QAÌ€áE0AlLП‘QAÌ@JE0AlL ‡‘QAÌÀÆD0AlLÀm‘QAÌ;D0AlL S‘QAÌÀ™C0AlL€;‘QAÌÆB0AlL`‘QAÌuB0AlL` ‘QAÌ B0AlL@ûQAÌ€öA0AlL ÔQAÌ@~A0AlL€ÒQAÌÀ>A0AlL`ÏQAÌ€A0AlL@ÌQAÌ@÷@0AlL ÈQAÌ€Ô@0AlLÃQAÌ­@0AlL½QAÌ„@0AlL€´QAÌ€]@0AlL@§QAÌÀ&@0AlLšQAÌ€û?0AlLàŽQAÌ€å?0AlLÀ‡QAÌ€Í?0AlL@QAÌ€¾?0AlL`tQAÌÀŸ?0AlLàkQAÌ€c?0AlLdQAÌ@=?0AlL€\QAÌ€ ?0AlL SQAÌ@É>0AlL KQAÌÀy>0AlL@HQAÌÀG>0AlLàFQAÌ@.>0AlLÀDQAÌ@l=0AlL kQAÌ€ž<0AlLÀ˜QAÌÀx;0AlLËQAÌÂ:0AlL`ñQAÌ@Ñ90AlL€‘QAÌè80AlL =‘QAÌ€ 80AlL`^‘QAÌ€u70AlLàl‘QAÌ.70AlL q‘QA̹60AlL`y‘QAÌÀê50AlL ƒ‘QAÌ@Ë40AlL€‘‘QAÌ40AlL E‘QAÌÀ®30AlL ‘QAÌÀ30AlLP ‘QAÌ@Z30AlL°‘QAÌÀK30AlLÀüQAÌ€b20AlL ‘QAÌ@Ç10AlL€‘QAÌ@­10AlLÀ‘QAÌš10AlL%‘QAÌ€l10AlLÀ4‘QAÌ€]10AlLà>‘QAÌÀ410AlL€R‘QAÌ€ú00AlL d‘QAÌ@ç00AlL`s‘QAÌ€Ä00AlL€|‘QĄ00AlL`…‘QAÌ@ˆ00AlL ‘‘QAÌ€p00AlL@›‘QAÌ€`00AlL@¢‘QAÌO00AlL ®‘QAÌ@D00AlL€¸‘QAÌ>00AlLàÑQAÌ€=00AlL@БQAÌ€A00AlL Û‘QAÌÀJ00AlLpÞ‘QAÌU00AlL€á‘QAÌÀk00AlLàå‘QA̪00AlL@ã‘QAÌ@ä00AlL€ã‘QAÌ€10AlL@ä‘QAÌ€V10AlL€å‘QAÌ@…10AlLç‘QAÌ@Ó10AlL€ð‘QAÌÀõ20AlL@’QAÌ630AlL  ’QAÌ€U30AlL@#’QAÌ{30AlL )’QAÌÀ¥30AlL`/’QAÌ€Ã30AlL8’QAÌÀæ30AlLà>’QAÌý30AlLÀA’QAÌ@40AlLB’QAÌ€(40AlL€=’QAÌ€040AlL 6’QAÌ€<40AlL/’QAÌ€X40AlLÀ(’QAÌÀ…40AlLÀ(’QAÌ@š40AlL`.’QAÌ€¢40AlL 5’QAÌÀª40AlLÀ?’QAÌ@»40AlL F’QAÌ@Ú40AlL F’QAÌì40AlL @’QAÌ€ÿ40AlL@;’QAÌÀ50AlL >’QAÌ€750AlL€@’QAÌÀh50AlL@@’QAÌ@y50AlL@;’QAÌ@™50AlL`8’QAÌ€·50AlLà8’QAÌÀ50AlL I’QAÌ@¤50AlL@U’QAÌ€}50AlL`[’QAÌÀŽ00AlLÀÎ’QAÌ€>/0AlL è’QAÌ@½.0AlL`ô’QAÌÀ“.0AlLö’QAÌÀp.0AlL ø’QAÌÀ.0AlL “QAÌ€ö-0AlLÀ “QAÌ@Í-0AlL “QAÌÀ¢-0AlL@“QAÌ@r-0AlL “QAÌ7-0AlL “QAÌÀ-0AlLà#“QAÌA-0AlL€.“QAÌc-0AlL 6“QAÌÀ±-0AlL@<“QAÌ€à-0AlL€>“QAÌ@ .0AlL@.“QAÌÀ,.0AlLÀ)“QAÌ@M.0AlLÀ(“QAÌ@l.0AlL (“QA̹.0AlL€5“QAÌ@à.0AlLÀA“QAÌ€÷.0AlL@O“QAÌ€/0AlL`[“QAÌ6/0AlL@d“QAÌÀ;/0AlL f“QAÌ@b/0AlLs“QAÌÀi/0AlLPu“QAÌ@€/0AlLp|“QAÌ€Æ/0AlLÀ“QAÌÀ!00AlL “QAÌÀv00AlL`­“QAÌÀ¢00AlLÀµ“QAÌÀ+10AlLË“QAÌÀf10AlL ×“QAÌÀ10AlLã“QAÌ€20AlL ñ“QAÌB20AlL û“QAÌ€20AlL@”QAÌ@˜20AlL@ ”QAÌË20AlLÀô“QAÌì20AlL€æ“QAÌ€®20AlL@Ø“QAÌn20AlL`Ê“QAÌ@20AlLÀ½“QAÌÀ20AlLÀ¬“QAÌ€ü10AlL š“QAÌ@ë10AlL@s“QAÌ€Ð10AlLÀI“QAÌ€Â10AlL@;“QAÌ™10AlLà“QAÌ@´10AlL€“QAÌÂ10AlLà “QAÌ@â10AlL€“QAÌ€û10AlL “QAÌ€-20AlLÀ“QAÌ;20AlL “QAÌ€=20AlL`“QAÌ€R20AlL`“QAÌ€ƒ20AlL “QAÌÀœ20AlL “QA̹20AlL@“QAÌ€Ü20AlL “QAÌ€ý20AlL“QAÌ30AlL@“QAÌ?30AlL “QAÌÀb30AlLÀ“QAÌ@30AlL€"“QAÌÀŸ30AlL %“QAÌÀ¹30AlL`“QAÌ€Ï30AlL ÷’QAÌô30AlL÷’QAÌ€40AlL ö’QAÌÀ<40AlL “QAÌ@n40AlL“QAÌÀ…40AlL  “QAÌ@ž40AlL`“QAÌ€·40AlLh“QAÌÀÆ40AlLÀ“QAÌ€ã40AlLà!“QAÌÀþ40AlL(“QAÌÀ50AlL0-“QAÌÀ/50AlL°5“QAÌ@?50AlLð;“QAÌÀZ50AlL`@“QAÌ@t50AlL ?“QAÌ€”50AlL <“QAÌ@°50AlLà9“QAÌÕ50AlL€;“QAÌ€X60AlL`G“QAÌz60AlL€Q“QAÌ@ž60AlL`^“QAÌ@Å60AlL g“QAÌÀø60AlL r“QAÌ€M70AlLƒ“QAÌ@Ð70AlLÀ‘“QAÌò70AlL@—“QAÌÀ80AlLàœ“QAÌ$80AlL`ª“QAÌ@$80AlLÀ°“QAÌ@%80AlL@·“QAÌ@680AlL“QAÌ@\80AlL Ë“QAÌ{80AlL Ð“QAÌ€¶80AlLדQAÌÀà80AlLÛ“QAÌÀ90AlL Ý“QAÌ€R90AlLÀÚ“QȦ90AlL`Ö“QAÌ€¾90AlL€Õ“QAÌ€ô90AlL€Ú“QAÌ€:0AlL@â“QAÌ@O:0AlL@ð“QAÌ@[:0AlL@û“QAÌ@_:0AlLà”QAÌ€a:0AlL@”QAÌÀi:0AlL€”QAÌ€z:0AlLÀ%”QAÌ:0AlLÀ,”QAÌ„;0AlL@”QAÌ@£;0AlL @”QAÌÉ;0AlLÀ:”QAÌÀ<0AlL 1”QAÌL<0AlL€”QAÌÀQ<0AlL ï“QAÌ@R<0AlL€Ú“QAÌ€‰U0AlL R°QAÌÀZU0AlL@Q°QAÌ@.U0AlLR°QAÌÀùT0AlL U°QAÌ€àT0AlL@Z°QAÌ€ØT0AlL d°QAÌçT0AlL@q°QAÌU0AlL€y°QAÌ€,U0AlLÀ{°QAÌ€?U0AlLà|°QAÌ@WU0AlL@z°QAÌ@jU0AlL€w°QAÌ@xU0AlLÀs°QAÌÀ‚U0AlL n°QAÌ€ŽU0AlL i°QAÌ—U0AlLd°QAÌÀ U0AlLà]°QAÌ€U0AlLÀS°QAÌ€‰U0AlL R°QAÌÀRV0AlL w°QAÌ@³0AlL î¹QAÌ3³0AlL@Û¹QA̳0AlL@ϹQAÌÀ³0AlL Ê¹QAÌÀ³0AlL@ŹQA̳0AlL`À¹QAÌ@³0AlL ·¹QAÌ€û²0AlL ³¹QAÌÀö²0AlL ¯¹QAÌè²0AlL ª¹QAÌ€à²0AlL@¦¹QAÌ@Ô²0AlLÀž¹QÀDz0AlLÀ˜¹QAÌ@½²0AlL@’¹QAÌÀ®²0AlL„¹QAÌ@Œ²0AlL`b¹QAÌÀz²0AlL`K¹QAÌ€z²0AlL`H¹QȦ²0AlLÀF¹QAÌ@—²0AlLàE¹QAÌ€¦²0AlL D¹QAÌ€³²0AlL€B¹QÀDz0AlL`<¹QAÌ€¸²0AlL€8¹QAÌ€»²0AlL 4¹QAÌ€˜²0AlL€0¹QAÌÀƒ²0AlL@2¹QAÌ@x²0AlL 3¹QAÌn²0AlLà3¹QAÌ@O²0AlLÀ5¹QAÌÀ:²0AlL 4¹QAÌÀH²0AlL2¹QAÌÀ@²0AlL -¹QAÌ€1²0AlL@.¹QAÌ$²0AlL /¹QA̲0AlLÀ.¹QAÌ ²0AlL€.¹QAÌý±0AlL-¹QAÌ€ð±0AlL€+¹QAÌ@ä±0AlL(¹QAÌÀÓ±0AlL€#¹QAÌDZ0AlL`¹QAÌı0AlLà¹QÀȱ0AlL ¹QAÌ€·±0AlL`¹QAÌ€±0AlL ¹QAÌ€±0AlL` ¹QAÌ@ޱ0AlL@¹QAÌ„±0AlL`¹QAÌ€v±0AlLà¹QAÌ@i±0AlL`¹QAÌX±0AlL ¹QAÌÀ8±0AlL` ¹QAÌÀ±0AlL  ¹QAÌü°0AlLÀ¹QAÌõ°0AlLà ¹QÀŰ0AlL€¹QAÌÀ©°0AlL@ÿ¸QA̰0AlL@þ¸QAÌ@°0AlL`ü¸QAÌ@\°0AlL ø¸QAÌÀA°0AlL ñ¸QAÌ9°0AlL î¸QAÌ€1°0AlLì¸QAÌÀ°0AlLÀé¸QAÌÀ°0AlL é¸QAÌÀ÷¯0AlL€é¸QAÌ€å¯0AlL@ç¸QAÌÀÖ¯0AlL å¸QAÌ@ž¯0AlL å¸QAÌ€ˆ¯0AlLà¸QAÌ~¯0AlLÀÚ¸QAÌv¯0AlLàÖ¸QAÌq¯0AlL@ѸQAÌk¯0AlL`˸QAÌR¯0AlL ȸQAÌÀ2¯0AlLàǸQA̯0AlL`͸QAÌ@þ®0AlL`̸QAÌ€ä®0AlL˸QA̺®0AlL˸QAÌ®®0AlL@ʸQAÌ€®0AlLȸQAÌ€€®0AlL`ƸQAÌ€m®0AlLàøQAÌ€Y®0AlL ĸQAÌ@:®0AlL@ĸQAÌ%®0AlL À¸QAÌ€®0AlL€¶¸QAÌ@å­0AlL «¸QAÌÀÏ­0AlL€¥¸QAÌ€­­0AlL ©¸QAÌ’­0AlL@¯¸QAÌÀn­0AlL౸QAÌ@E­0AlL ²¸QAÌ€0­0AlLÀµ¸QAÌ ­0AlL`²¸QAÌ@ý¬0AlLÀ´¸QAÌ€ì¬0AlL`·¸QAÌά0AlL ¸¸QAÌ»¬0AlLÀ´¸QAÌ@±¬0AlL³¸QAÌÀš¬0AlL °¸QAÌ€¬0AlL€­¸QAÌÀ¬0AlLਸQAÌa¬0AlL`§¸QAÌ5¬0AlL`­¸QAÌÀ¬0AlL€±¸QAÌ€¬0AlLà´¸QAÌ@·«0AlL€´¸QAÌ€ƒ«0AlL@²¸QAÌ@]«0AlL`®¸QAÌ@R«0AlL ¦¸QAÌ«0AlLÀ‚¸QAÌñª0AlLÀl¸QAÌÀçª0AlL`e¸QAÌ@Ûª0AlL`d¸QAÌ@̪0AlL c¸QAÌ@°ª0AlL[¸QAÌÀfª0AlL@¸QAÌ€[ª0AlLÀ¸QAÌYª0AlLàø·QAÌÀWª0AlLàò·QAÌQª0AlL ç·QAÌ€Tª0AlL`Ú·QAÌEª0AlLÀÍ·QAÌÀª0AlLÀÅ·QAÌ@%©0AlL »·QAÌ»¨0AlL@½·QAÌ€Š¨0AlL€Á·QAÌ€Z¨0AlL€Ê·QAÌ€3¨0AlL@ηQĄ0AlL@ηQAÌÀã§0AlL Ê·QAÌ€´§0AlL÷QAÌÀ•§0AlL ½·QAÌÀn§0AlL¶·QAÌY§0AlL ´·QAÌ@@§0AlL «·QAÌ€'§0AlL`¦·QAÌÀî¦0AlL ¤·QAÌÚ¦0AlL€£·QAÌÀĦ0AlL Ÿ·QAÌ€¦¦0AlL@·QAÌ@–¦0AlLš·Qæ0AlLÀ–·QAÌ€l¦0AlLÀ“·QAÌÀS¦0AlL€’·QAÌÀ;¦0AlL ‹·QAÌ ¦0AlL …·QAÌÀ¦0AlL ‚·QAÌ@¸¥0AlLb·QAÌ@¥0AlL O·QAÌ¥0AlL`A·QAÌ€u¥0AlL`;·QAÌ€i¥0AlL 7·QAÌÀi¥0AlLà2·QAÌD¥0AlLà0·QAÌ€;¥0AlL€-·QAÌ2¥0AlLà)·QAÌ,¥0AlLà"·QAÌ@&¥0AlLà·QAÌÀ!¥0AlLÀ·QAÌ¥0AlL@·QAÌÀ¥0AlL`·QAÌ@ ¥0AlL ·QAÌ€¥0AlLÀ·QAÌ€¥0AlL û¶QAÌ€æ¤0AlLû¶QAÌ€Õ¤0AlLû¶QAÌ@Ť0AlL û¶QAÌ@´¤0AlL@÷¶QA̬¤0AlL ð¶QA̲¤0AlL í¶QA̹¤0AlLê¶QAÌ¡¤0AlL å¶QAÌ€œ¤0AlLÀá¶QAÌ€…¤0AlL@ѶQAÌ@{¤0AlL€Ê¶QAÌ€p¤0AlL¶QAÌ@p¤0AlL¼¶QAÌR¤0AlL ±¶QAÌÀ0¤0AlLÀ­¶QAÌ@¤0AlLà®¶QAÌã£0AlLà§¶QÀܣ0AlL¤¶QAÌ@Í£0AlLàš¶QAÌ@’£0AlL ¶QAÌÀl£0AlL`¶QAÌ€Y£0AlLào¶QAÌ@L£0AlLài¶QAÌÀ>£0AlL g¶QAÌ`9£0AlL`d¶QAÌ@(£0AlLàY¶QAÌÀ£0AlLV¶QAÌ@£0AlL R¶QAÌ@£0AlL N¶QAÌ@û¢0AlLK¶QAÌ€Ú¢0AlL€3¶QAÌ€¬¢0AlL /¶QAÌ¢0AlL /¶QAÌ€†¢0AlL€&¶QAÌz¢0AlL ¶QAÌ^¢0AlLà¶QAÌ€K¢0AlL€ ¶QAÌ€B¢0AlL@¶QAÌ,¢0AlL ÿµQAÌ"¢0AlLà÷µQAÌ¢0AlL`ðµQAÌ@¢0AlL ëµQAÌ@û¡0AlL äµQAÌÏ¡0AlLÙµQAÌ€¯¡0AlL@ÖµQAÌ@L¡0AlLàɵQAÌ@*¡0AlLɵQAÌ@¡0AlL@ȵQAÌÀ¡0AlLÀƵQAÌ@î 0AlLȵQAÌÍ 0AlL`ĵQAÌÀ´ 0AlLÀÀµQAÌ  0AlL@¼µQAÌÀf 0AlL@¼µQAÌ@J 0AlL€¹µQAÌæŸ0AlLÀ©µQAÌ@¹Ÿ0AlL²µQAÌ«Ÿ0AlLÀ±µQAÌ@•Ÿ0AlL`±µQAÌuŸ0AlL@®µQAÌ€YŸ0AlLÀ§µQAÌà<Ÿ0AlL¢µQAÌ'Ÿ0AlLÀ’µQAÌ€ Ÿ0AlL µQAÌ€øž0AlL@zµQAÌ@ìž0AlL@uµQAÌâž0AlLqµQAÌ@Ξ0AlLàkµQAÌÞ0AlLàfµQAÌ€ºž0AlLcµQAÌ€£ž0AlL[µQAÌ@žž0AlL@YµQAÌ€”ž0AlL XµQAÌÀŽž0AlL`UµQAÌ€gž0AlL@MµQAÌ@Hž0AlLàCµQAÌ@8ž0AlL°@µQAÌ€5ž0AlLp<µQAÌ€ž0AlLP6µQAÌ@é0AlL1µQAÌÞ0AlL`4µQAÌ€à0AlL9µQAÌ@ê0AlLp;µQAÌ€ž0AlLXBµQAÌÀž0AlLPJµQAÌ@&ž0AlL@RµQAÌÀž0AlLSµQAÌ@ ž0AlLpSµQAÌ€ž0AlL XµQAÌ€ò0AlL ZµQAÌ@Ø0AlL]µQAÌÀÅ0AlLÀ\µQAÌ®0AlLÀZµQAÌ@ž0AlL€YµQAÌ€|0AlLàWµQAÌÀe0AlLÀZµQAÌ@B0AlL [µQAÌ€%0AlL ZµQAÌÿœ0AlLÀVµQAÌåœ0AlLÀRµQAÌÑœ0AlLÀMµQAÌ@¶œ0AlL BµQAÌ@Šœ0AlL@3µQAÌsœ0AlLÀ(µQAÌ@\œ0AlL µQAÌ@:œ0AlL µQAÌ$œ0AlLÀµQAÌœ0AlL€û´QAÌ@œ0AlL@ï´QAÌõ›0AlL`å´QAÌã›0AlL€Ö´QAÌÀÖ›0AlL Ë´QAÌÀÅ›0AlL0À´QAÌÀª›0AlL`ª´QAÌ ›0AlLÀ ´QAÌ€›0AlLÀ‘´QAÌ@„›0AlLÀ‡´QAÌ@€›0AlL …´QAÌ@r›0AlLà{´QAÌÀ`›0AlL€h´QAÌ€5›0AlLà5´QAÌ@›0AlL`´QAÌ@›0AlL´QAÌ@øš0AlL ø³QAÌÀåš0AlLÀç³QÀؚ0AlL Ö³QAÌ€Òš0AlLϳQAÌËš0AlLÀųQA̼š0AlLº³QAÌ@±š0AlL ª³QA̱š0AlL³QAÌ€´š0AlL0–³QA̹š0AlLà‘³QAÌ€Ùš0AlL ³QAÌ@îš0AlL€ˆ³QAÌÀÙš0AlL ~³QAÌ€Öš0AlL y³QAÌÓš0AlL`s³QAÌ@Òš0AlLÀj³QAÌÀš0AlLb³QAÌÀ©š0AlL€`³QAÌ€š0AlLÀY³QAÌ€{š0AlLàY³QAÌJš0AlLO³QAÌ@%š0AlLG³QAÌ€#š0AlLÀA³QAÌü™0AlL@;³QAÌ€ê™0AlL 6³QÀϙ0AlL€5³QAÌ@¶™0AlL`5³QAÌ€™0AlL@0³QAÌÀƒ™0AlL +³QAÌj™0AlLà)³QAÌ€T™0AlL (³QAÌÀ@™0AlL`&³QAÌ@-™0AlL%³QAÌ@™0AlL`#³QAÌ™0AlL ³QAÌ€æ˜0AlLÀ³QAÌÀÒ˜0AlL`³QAÌ€¼˜0AlL³QAÌ€¡˜0AlL€³QAÌ@„˜0AlL³QAÌ€i˜0AlL€³QAÌ€A˜0AlL`³QAÌ@,˜0AlLÀ³QA̘0AlL ³QAÌ€ü—0AlL`³QAÌå—0AlLà³QAÌÀÉ—0AlL€³QAÌ€§—0AlL ³QAÌ@’—0AlL€³QAÌm—0AlLð ³QAÌ;—0AlLàÿ²QAÌ@.—0AlLÀþ²QAÌ%—0AlLø²QAÌ@—0AlL€ó²QAÌ€—0AlLò²QAÌ€—0AlL`î²QAÌ@÷–0AlL`í²QAÌê–0AlL`ì²QAÌ@Õ–0AlL@î²QAÌÇ–0AlL@ë²QAÌ@¥–0AlL é²QAÌ€‡–0AlLàç²QAÌu–0AlL@å²QAÌv–0AlLâ²QAÌ@`–0AlL€Ù²QAÌ€_–0AlLѲQAÌÀF–0AlL€Ì²QAÌÀB–0AlLɲQAÌÀI–0AlL€Å²QAÌ€H–0AlL²QAÌ€G–0AlLÀ¾²QAÌÀ<–0AlLÀ¶²QAÌÀA–0AlL€¯²QAÌ7–0AlL@¨²QAÌ€2–0AlL ¥²QAÌ@#–0AlL`ž²QAÌ%–0AlL ›²QAÌ–0AlLÀ—²QAÌÀý•0AlLà²QAÌÀæ•0AlL Œ²QAÌ@Þ•0AlL‹²QÀÕ0AlL`‰²QAÌœ•0AlL †²QAÌŒ•0AlLÀ‚²QAÌ„•0AlLà~²QAÌ@v•0AlL v²QAÌ€]•0AlLt²QAÌM•0AlL`r²QAÌ2•0AlL`n²QAÌ@•0AlL i²QAÌÀ•0AlL@g²QAÌ@þ”0AlL`a²QAÌ€û”0AlLÀU²QAÌ@ð”0AlL€P²QAÌ@æ”0AlLàK²QAÌÀÌ”0AlL E²QAÌÀ´”0AlL A²QAÌ@¡”0AlL;²QAÌ€””0AlL@/²QĂ”0AlL€.²QAÌÀn”0AlL@-²QAÌ@Z”0AlLÀ+²QAÌ@I”0AlL *²QAÌ”0AlLà*²QAÌ”0AlL -²QAÌÀö“0AlL .²QAÌ@é“0AlL€/²QAÌ@Õ“0AlL 3²QAÌÀÓ0AlL€1²QAÌÀ¸“0AlL`0²QAÌÀœ“0AlLà(²QAÌ|“0AlL€#²QAÌÀq“0AlL²QAÌ€j“0AlL ²QAÌ[“0AlL`²QAÌH“0AlL ²QAÌ@;“0AlL€ ²QAÌ@/“0AlL²QAÌÀ“0AlL þ±QAÌÀ“0AlLú±QAÌ€“0AlL÷±QAÌ€ø’0AlL ó±QAÌç’0AlL í±QAÌ@Ù’0AlLé±QAÌÀÀ’0AlLà±QA̲’0AlL é±QAÌÀ”’0AlLàó±QAÌ`’0AlL ²QAÌÀ(’0AlL@ ²QAÌÿ‘0AlL²QAÌ@Í‘0AlLà²QAÌÀ§‘0AlL€²QAÌ@…‘0AlL²QAÌ@c‘0AlL '²QAÌ@V‘0AlL@/²QAÌÀR‘0AlLÀ;²QAÌ@q‘0AlL`E²QĂ‘0AlL`Q²QAÌ@~‘0AlL@_²QAÌ@e‘0AlL@p²QAÌ.‘0AlL ˆ²QAÌÀ‘0AlLÀš²QAÌ Á0AlLº²QAÌ€0AlLÁ²QAÌ@]0AlL ¿²QAÌÀ;0AlL€º²QAÌ€ï0AlL@²²QA̱0AlL­²QAÌ‚0AlL€±²QAÌÀm0AlL ¹²QAÌq0AlLp¼²QAÌÀt0AlL`À²QAÌ@0AlL Æ²QAÌ@¯0AlLβQAÌÀÏ0AlL Ô²QAÌÀò0AlLÀزQAÌ@0AlL ß²QAÌ€*0AlLí²QAÌ€0AlL ó²QAÌ@Å0AlL ý²QAÌ0AlL³QAÌA0AlL` ³QAÌ0AlLð ³QAÌ@ 0AlLp ³QAÌ€0AlLà³QAÌ@E0AlL ú²QAÌ{0AlL@õ²QAÌ¢0AlL ë²QAÌ@š0AlL€ß²QAÌ|0AlL Ø²QAÌ@Y0AlLÓ²QAÌ€0AlL0˲QAÌ€÷Ž0AlL€Ì²QAÌ€þŽ0AlL Ó²QAÌ0AlLÚ²QAÌ€50AlL€ç²QAÌ€0AlLî²QAÌðŽ0AlL ò²QAÌ@ÅŽ0AlL ÷²QAÌÇ0AlL`³QAÌ€†0AlLà³QAÌ€=0AlL ³QAÌ@úŒ0AlL€)³QAÌÀÊŒ0AlL@.³QĄŒ0AlLà:³QAÌÀ¢Œ0AlLÀ;³QAÌÀ…Œ0AlL A³QAÌrŒ0AlLÈH³QAÌmŒ0AlL°K³QAÌ`Œ0AlL S³QAÌÀYŒ0AlL€V³QAÌ€IŒ0AlL`i³QAÌ&Œ0AlL |³QAÌÀø‹0AlL‘³QAÌÀÒ‹0AlLà–³QAÌÀ¶‹0AlL`–³QAÌ€“‹0AlL`ˆ³QAÌg‹0AlL`‰³QAÌ€;‹0AlL•³QAÌÀ*‹0AlL€¥³QAÌ(‹0AlLÀ²³QAÌÀ‹0AlL€¾³QAÌ€‹0AlL Í³QAÌÀüŠ0AlL`Þ³QAÌ€úŠ0AlL`ñ³QAÌ€‹0AlL@ ´QAÌ@úŠ0AlL@ ´QAÌ ‹0AlLà/´QAÌ,‹0AlLÀ;´QAÌ ‹0AlL`F´QAÌ@âŠ0AlL@@´QAÌ¿Š0AlL`>´QAÌ@”Š0AlLà>´QAÌmŠ0AlLB´QAÌJŠ0AlL H´QAÌ€1Š0AlL€M´QAÌÀŠ0AlLÀU´QAÌ׉0AlL[´QAÌ©‰0AlL€]´QAÌ@€‰0AlL`´QAÌÀZ‰0AlL``´QAÌ€@‰0AlL@d´QẢ0AlL`p´QAÌÿˆ0AlL€}´QAÌÀõˆ0AlL ‰´QAÌ€ýˆ0AlL ™´QAÌòˆ0AlL ¨´QAÌ@ʈ0AlL@À´QAÌ@ˆ0AlLÀÉ´QAÌÀJˆ0AlL Ñ´QAÌ@ˆ0AlL`Ø´QAÌÀ܇0AlL ç´QAÌ€å‡0AlL ú´QAÌî‡0AlLÀµQAÌÀLJ0AlL #µQAÌ@™‡0AlL:µQAÌÀx‡0AlLJµQAÌ@h‡0AlL `µQAÌ€J‡0AlLÀtµQAÌ@/‡0AlL ‡µQAÌ@‡0AlLÀ”µQAÌÀì†0AlL` µQAÌÀĆ0AlLଵQAÌ@¶†0AlL0±µQAÌ€ž†0AlL@¸µQAÌ€x†0AlL ÅµQAÌÀ[†0AlL€ÏµQAÌ@+†0AlLåµQAÌÀQ†0AlL@èµQAÌ€Œ†0AlLêµQA̤†0AlL€óµQAÌ@—†0AlL ¶QAÌ€z†0AlLà ¶QAÌÀo†0AlL`¶QAÌ@”†0AlL€(¶QA̽†0AlL@1¶QAÌÔ†0AlL€@¶QAÌ@å†0AlLÀU¶QAÌú†0AlLÀh¶QAÌ@ ‡0AlL }¶QAÌ€#‡0AlL°Ž¶QAÌU‡0AlL@‡¶QAÌ~‡0AlL „¶QA̤‡0AlL …¶QAÌ@Ƈ0AlL0‹¶QAÌ€ï‡0AlL@‰¶QAÌ€ˆ0AlLp~¶QAÌAˆ0AlL@‚¶QAÌwˆ0AlL€‰¶QAÌÀ ˆ0AlL‰¶QAÌÀψ0AlL¶QAÌÀûˆ0AlL@€¶QAÌ€7‰0AlLƒ¶QAÌ€f‰0AlL ¶QAÌ Š0AlLðc¶QAÌ€8Š0AlL k¶QAÌÀlŠ0AlL v¶QAÌ€„Š0AlLp€¶QAÌÀˆŠ0AlL@‚¶QAÌ@†Š0AlL`¶QAÌ@yŠ0AlL ¶QAÌÀaŠ0AlL€¥¶QAÌ€DŠ0AlLÀ©¶QAÌ@þ‰0AlL ³¶QAÌÀÉ0AlL º¶QA̶‰0AlL€Ä¶QA̧‰0AlL@϶QAÌ ˆ‰0AlLPÞ¶QAÌ@f‰0AlL€â¶QAÌ@0‰0AlL ä¶QAÌ€ýˆ0AlL@æ¶QAÌÀƈ0AlLç¶QAÌ€˜ˆ0AlL€ê¶QAÌÀ^ˆ0AlLì¶QÄ0AlLõ¶QAÌ€ù‡0AlL`ü¶QAÌ@ð‡0AlL@·QAÌÀæ‡0AlL ·QAÌ·0AlL·QAÌ€¦‡0AlL ·QAÌq‡0AlL`·QAÌB‡0AlL`·QȦ0AlL ·QAÌ€ø†0AlL`·QAÌ€å†0AlL`(·QÀ݆0AlL 6·QAÌÀφ0AlL`C·QAÌ@´†0AlL€K·QAÌ€‡†0AlLM·QAÌ€?†0AlL@L·QAÌü…0AlL€L·QAÌ€¿…0AlLÀL·QAÌŒ…0AlL T·QAÌs…0AlL_·QAÌ…0AlL q·QAÌ@¼„0AlL ·QAÌÀƒ„0AlL ˆ·QAÌ@E„0AlL@Š·QAÌ„0AlL ˆ·QAÌÀÕƒ0AlLà„·QAÌ@œƒ0AlL·QAÌ@hƒ0AlL ~·QAÌBƒ0AlL€·QAÌ€*ƒ0AlL …·QAÌ@%ƒ0AlL·QAÌÀ;ƒ0AlL€–·QAÌ@nƒ0AlL€ ·QAÌ@£ƒ0AlL ©·QAÌ€Óƒ0AlL °·QAÌ„0AlL`··QAÌ@u„0AlL@÷QAÌ@µ„0AlL`Ì·QAÌ€Ó„0AlLÀÖ·QAÌ@Ý„0AlL€â·QAÌÚ„0AlL`¸QAÌû„0AlL€¸QAÌ€>…0AlL€¸QAÌ@¢…0AlLà'¸QAÌ€ê…0AlL€6¸QAÌ@&†0AlL@6¸QAÌ€B†0AlL6¸QAÌ@a†0AlLà:¸QAÌ€…†0AlLF¸QAÌÀ–†0AlLàO¸QAÌ€³†0AlLY¸QAÌ@Ù†0AlLÀa¸QAÌÀø†0AlLÀc¸QAÌ/‡0AlLÀg¸QAÌx‡0AlLÀm¸QAÌ€¼‡0AlL {¸QAÌ@Ó‡0AlL@€¸QAÌ€ë‡0AlL€‡¸QAÌú‡0AlLÀŒ¸QAÌÀˆ0AlL@™¸QAÌÀ'ˆ0AlL€¤¸QAÌ€Oˆ0AlL ª¸QAÌ€yˆ0AlL`­¸QAÌŸˆ0AlL`­¸QAÌ€Àˆ0AlLà­¸QAÌ€Þˆ0AlL€®¸QAÌ@ûˆ0AlLÀ®¸QẢ0AlL€°¸QAÌ@?‰0AlL¸¸QAÌ@a‰0AlL À¸QAÌ€¶‰0AlL Ç¸QAÌ€Ò‰0AlLàǸQAÌ€ï‰0AlL ƸQAÌŠ0AlL À¸QAÌÀŠ0AlL½¸QAÌ€/Š0AlL À¸QAÌ@HŠ0AlL Å¸QAÌ_Š0AlL ʸQAÌmŠ0AlL`ѸQAÌ€uŠ0AlLÀÚ¸QAÌŠ0AlL`ç¸QĂŠ0AlLÀî¸QAÌÀˆŠ0AlL ÷¸QAÌ€‚Š0AlL€¹QȦŠ0AlLÀ¹QAÌ@ƒŠ0AlL¹QAÌÀ“Š0AlL &¹QAÌ@¶Š0AlLÀ/¹QAÌÀÓŠ0AlLà9¹QAÌ@ÞŠ0AlLàB¹QÀ̊0AlLL¹QAÌÀ¹Š0AlLÀU¹QAÌÀ«Š0AlL d¹QAÌ®Š0AlL€m¹QAÌÀ¯Š0AlL u¹QAÌ€¶Š0AlL@~¹QAÌ€°Š0AlL‰¹QAÌ@ªŠ0AlL ¹QAÌŸŠ0AlL€˜¹QAÌ@¦Š0AlL@¦¹QAÌ@¸Š0AlL`­¹QÀƊ0AlLà´¹QÀÊ0AlL€Â¹QAÌÀЊ0AlL€Ð¹QAÌÀëŠ0AlLÀعQAÌÀöŠ0AlLàß¹QAÌöŠ0AlL`é¹QAÌ@ìŠ0AlLÀò¹QAÌ@ÉŠ0AlL@ºQÀƊ0AlLàºQAÌ@ÓŠ0AlL +ºQÀ̊0AlL 5ºQAÌÀÈŠ0AlL`FºQAÌ€àŠ0AlL`OºQÀ؊0AlLàdºQAÌ€ñŠ0AlLhºQAÌ@"‹0AlL`gºQAÌ@J‹0AlL gºQAÌ@p‹0AlL@eºQAÌ€Œ‹0AlL ZºQA̘‹0AlL€NºQAÌÀ¾‹0AlLIºQAÌŒ0AlL IºQAÌŒ0AlL€QºQAÌ€&Œ0AlL`ZºQAÌ@?Œ0AlL fºQAÌ€oŒ0AlL°jºQAÌ€Œ0AlLdºQAÌÀ±Œ0AlL@]ºQAÌ@ÆŒ0AlL XºQÀߌ0AlL@PºQAÌðŒ0AlLÀGºQAÌþŒ0AlLBºQAÌ@0AlL =ºQAÌÀG0AlLÀ<ºQAÌh0AlLÀ<ºQA̽0AlL@7ºQAÌ€Ò0AlL+ºQAÌà0AlL !ºQAÌ@ò0AlL€(ºQAÌ@Ž0AlL4ºQAÌ=Ž0AlL`3ºQAÌ€@Ž0AlL`-ºQAÌEŽ0AlL@%ºQAÌÀeŽ0AlLà ºQAÌ@kŽ0AlL0 ºQAÌ@‰Ž0AlL "ºQAÌ€«Ž0AlL@)ºQAÌ@¿Ž0AlL€5ºQAÌÀŽ0AlLÀ@ºQAÌ€ÒŽ0AlL KºQAÌÀòŽ0AlLÀTºQAÌ$0AlL XºQAÌ@M0AlLàXºQAÌÀ™0AlLYºQAÌ€å0AlLÀVºQAÌ€#0AlL YºQAÌ€L0AlL ]ºQAÌ@|0AlLpbºQAÌ@©0AlLÀ`ºQAÌÀÎ0AlL`\ºQAÌû0AlLà\ºQAÌ‘0AlLàgºQAÌÀ‘0AlL€sºQAÌÀ‘0AlL {ºQAÌ€B‘0AlLà„ºQAÌ€d‘0AlL@ˆºQAÌ€‹‘0AlL@ŠºQAÌÊ‘0AlLÀŒºQAÌ€ó‘0AlL@ºQAÌ@’0AlL`”ºQAÌ'’0AlL@ºQAÌ@’0AlL¥ºQAÌ@a’0AlL ¬ºQAÌ€œ’0AlLðµºQAÌ€ “0AlL€²ºQAÌ ”0AlL¬ºQAÌÀ”0AlL ´ºQAÌ€ñ“0AlL¿ºQAÌ@Ï“0AlLÀͺQAÌ€±“0AlLàÚºQAÌŒ“0AlLãºQAÌÀf“0AlL éºQAÌ€S“0AlLàñºQAÌ@D“0AlLàüºQAÌ@+“0AlL€»QAÌ@“0AlL`»QAÌÀ“0AlL@+»QAÌ€‰“0AlL€6»QAÌ”0AlLÀ\»QAÌ6”0AlLh»QAÌ&”0AlL s»QAÌÀ ”0AlLày»QAÌ€¤“0AlL@‘»QAÌÀÖ“0AlL€Ÿ»QAÌ@”0AlL଻QAÌ@ ”0AlL­»QAÌ€r”0AlL ¯»QAÌ»”0AlL ¯»QAÌá”0AlL€¯»QAÌÀ •0AlLª»QAÌ@2•0AlL@Ÿ»QAÌ€D•0AlL`›»QAÌÀ^•0AlL—»QAÌÀ›•0AlLÀ»QAÌ@±•0AlL`‰»QAÌ@Ô•0AlL€‚»QAÌÀê•0AlL{»QAÌ€–0AlLàp»QAÌ9–0AlLàp»QAÌÀW–0AlL`u»QAÌ€y–0AlLðv»QAÌ@Ö–0AlL@a»QAÌé–0AlL€X»QAÌ@ò–0AlLÀH»QAÌÀ—0AlL9»QAÌÀ—0AlL '»QAÌÀ2—0AlL€»QAÌ@b—0AlL@üºQAÌ€s—0AlL@ñºQAÌÀ¡—0AlLÀæºQAÌ@Ä—0AlL€ÞºQAÌ€Ó—0AlL€ÖºQAÌñ—0AlL0ѺQAÌÀ ˜0AlL ÒºQA̘0AlL€ÓºQAÌ@U˜0AlL€×ºQAÌÀ†˜0AlL`ݺQAÌ»˜0AlL åºQÀؘ0AlLàêºQAÌ€ø˜0AlL@óºQAÌÀ&™0AlL þºQAÌ€F™0AlL@»QAÌb™0AlL€ »QAÌ€™0AlL»QAÌ@¢™0AlL`»QA̰™0AlLà»QAÌ€Ó™0AlLà»QAÌâ™0AlLà!»QAÌÀü™0AlL%»QAÌ@)š0AlL`»QAÌ\š0AlLÀ»QAÌ€“š0AlL€!»QAÌ€µš0AlL &»QAÌ€Õš0AlLà,»QAÌ€Ûš0AlL`5»QAÌêš0AlL A»QAÌ€ôš0AlL`K»QAÌ@›0AlL@V»QAÌÀ›0AlLà\»QAÌÀ(›0AlLÀc»QAÌ8›0AlL@n»QAÌ€1›0AlLo»QAÌ›0AlL`t»QAÌþš0AlL`t»QAÌ€Õš0AlL s»QAÌÈš0AlL€s»QAÌÀ¨š0AlL s»QAÌÀš0AlL r»QAÌÀZš0AlLÀt»QAÌ€š0AlLpŒ»QAÌÀzš0AlL€Ž»QAÌÀ“š0AlL@“»QAÌ€¦š0AlLࢻQAÌ€š0AlL©»QAÌ@mš0AlL€°»QAÌ€8š0AlL ½»QAÌÀ2š0AlL ûQAÌ8š0AlL€É»QAÌÀLš0AlL`λQAÌoš0AlL€Í»QAÌÀ—š0AlL`Ì»QÀ̚0AlL€É»QAÌÒš0AlLàÉ»QAÌÀðš0AlLÀË»QAÌÀñš0AlLÀÑ»QAÌÔš0AlLÀÛ»QA̼š0AlL`â»QAÌÀ£š0AlL€å»QAÌÀxš0AlL ë»QAÌÀsš0AlLÀó»QAÌÀš0AlL ú»QAÌ@¢š0AlL`û»QAÌ@Äš0AlLÀû»QAÌÀáš0AlL€ü»QAÌýš0AlLÀÿ»QAÌ€,›0AlL`¼QAÌ@K›0AlL ¼QAÌ`›0AlL`¼QAÌÀc›0AlL€ ¼QAÌV›0AlL -¼QAÌ@B›0AlLà:¼QAÌÀ8›0AlL@F¼QAÌÀ2›0AlLQ¼QAÌÀ.›0AlL S¼QAÌÀ›0AlL ^¼QAÌ€›0AlL m¼QAÌÀ›0AlLà~¼QAÌ/›0AlLÀŒ¼QAÌ>›0AlL ˜¼QAÌ@P›0AlLÀ¥¼QAÌ€T›0AlL€³¼QAÌ€"›0AlL À¼QAÌ€x›0AlL€Ñ¼QAÌ@Ç›0AlL¼QAÌÀì›0AlLຼQAÌÀœ0AlLÀ³¼QAÌÀmœ0AlL ¯¼QAÌœœ0AlL ²¼QAÌ€¼œ0AlL¶¼QAÌ@þœ0AlLƼQAÌÀ0AlL@̼QAÌÀY0AlL μQAÌy0AlLѼQAÌ@Ÿ0AlLܼQAÌ»0AlLÀá¼QAÌß0AlL`é¼QAÌ@î0AlLÀò¼QAÌž0AlL`ÿ¼QAÌ€5ž0AlL  ½QAÌ€Ož0AlL` ½QAÌ@pž0AlL`½QAÌÀœž0AlL€õ¼QÀ˞0AlL@í¼QAÌ@ûž0AlL ç¼QAÌÀXŸ0AlL@ä¼QAÌ@ŒŸ0AlL ã¼QAÌÀÀŸ0AlLã¼QAÌ@ûŸ0AlL€æ¼QAÌ€: 0AlL ê¼QAÌÀ 0AlLÀò¼QAÌ@Ü 0AlL ½QAÌ€G¡0AlL ½QAÌ@`¡0AlL€½QAÌ€¤¡0AlLÀ½QAÌ@Ô¡0AlL€½QAÌ€î¡0AlLÀ½QAÌ ¢0AlL þ¼QAÌ€*¢0AlL ú¼QAP°«Nês)/A42@`_oQA˜€‘_/AlL`‚xQA‡˜€ëJ/AlL`€xQA˜€4K/AlL xxQA˜€1K/AlL`oxQA˜€K/AlLàgxQA˜€K/AlLÀ`xQA˜.K/AlLàTxQA˜€-K/AlL NxQA˜K/AlL@DxQA˜êJ/AlL@>xQA˜€K/AlL`4xQA˜€.K/AlLÀ/xQA˜xK/AlL@&xQA˜€IK/AlL #xQA˜€K/AlL xQA˜.K/AlL@xQA˜€sK/AlL`xQA˜¹K/AlL xQA˜€ÃK/AlL ùwQA˜€¼K/AlL ïwQA˜€ÐK/AlL@éwQA˜€L/AlL`çwQA˜#L/AlL ÞwQA˜€8L/AlLÀÓwQA˜XL/AlL€ÊwQA˜€}L/AlL@ÁwQA˜€´L/AlLà·wQA˜€ëL/AlL ³wQA˜‰M/AlLÀ˜wQA˜€žM/AlL ‹wQA˜€¯M/AlL€‚wQA˜€N/AlL uwQA˜€N/AlL`lwQA˜€òM/AlL dwQA˜N/AlL@^wQA˜€N/AlL VwQA˜€=N/AlL`MwQA˜SN/AlL€@wQA˜bN/AlL 7wQA˜JN/AlL 0wQA˜€LN/AlL€'wQA˜]N/AlLàwQA˜€dN/AlLàwQA˜®N/AlLÀ wQA˜óN/AlL€wQA˜€O/AlL€üvQA˜€‚O/AlL€ûvQA˜€ÉO/AlLÀóvQA˜€ùO/AlLàèvQA˜€P/AlLÀÕvQA˜€P/AlL€ÈvQA˜P/AlLàµvQA˜P/AlL€¬vQA˜€ P/AlLà£vQA˜€P/AlL`vQA˜$P/AlLÀ‘vQA˜€=P/AlL „vQA˜€DP/AlL`{vQA˜QP/AlL€ovQA˜LP/AlL fvQA˜€tP/AlLà^vQA˜¾P/AlL€UvQA˜€ Q/AlL NvQA˜bQ/AlL LvQA˜»Q/AlLàGvQA˜çQ/AlL @vQA˜8R/AlL5vQA˜pR/AlLÀ*vQA˜€œR/AlL#vQA˜€¶R/AlL@vQA˜ÃR/AlLÀ vQA˜€S/AlL@vQA˜€0S/AlL vQA˜€YS/AlL ÷uQA˜€†S/AlL@ëuQA˜€·S/AlLàéuQA˜€ïS/AlLàíuQA˜T/AlLóuQA˜€LT/AlL€øuQA˜€ŠT/AlL@ùuQA˜ÚT/AlL÷uQA˜€U/AlL€ôuQA˜€YU/AlL€îuQA˜ˆU/AlL`æuQA˜€©U/AlL àuQA˜ÚU/AlLÀØuQA˜V/AlLÀÌuQA˜DV/AlLÄuQA˜€oV/AlLà½uQA˜ŸV/AlLÀ¸uQA˜æV/AlL ³uQA˜€RW/AlLÀ¬uQA˜†W/AlL`ªuQA˜€ÁW/AlL ¥uQA˜ôW/AlL ¡uQA˜HX/AlL€šuQA˜€¥X/AlL‘uQA˜€ÑX/AlLàuQA˜þX/AlLŠuQA˜5Y/AlLà„uQA˜€jY/AlL uQA˜¥Y/AlL`|uQA˜€ÛY/AlLÀsuQA˜€Z/AlL@ouQA˜€XZ/AlL@huQA˜†Z/AlL`_uQA˜ŽZ/AlLÀWuQA˜Z/AlLÀJuQA˜€šZ/AlLàAuQA˜€ÄZ/AlL :uQA˜[/AlL 5uQA˜[/AlL /uQA˜€6[/AlL@)uQA˜@[/AlL`#uQA˜€ [/AlL€uQA˜€[/AlL@uQA˜€[/AlL@uQA˜€*[/AlL0 uQA˜C[/AlL@uQA˜U[/AlL@ùtQA˜v[/AlL€ítQA˜Î[/AlL ØtQA˜€)\/AlL`ÈtQA˜‡\/AlL@»tQA˜€ ]/AlL ¯tQA˜€Ì]/AlL@£tQA˜€m^/AlL@tQA˜ï^/AlL€ƒtQA˜€'_/AlL€|tQA˜€Q_/AlL€rtQA˜€w_/AlL ktQA˜_/AlLÀctQA˜€‘_/AlLàXtQA˜__/AlLÀRtQA˜€J_/AlL€LtQA˜_/AlL JtQA˜¼^/AlLLtQA˜r^/AlL JtQA˜€S^/AlL DtQA˜^/AlL@@tQA˜ï]/AlL`8tQA˜Ù]/AlLà0tQA˜€©]/AlL $tQA˜€s]/AlLàtQA˜€;]/AlL tQA˜]/AlL€tQA˜Å\/AlL  tQA˜€‡\/AlLÀtQA˜€\/AlL üsQA˜}\/AlL ósQA˜ƒ\/AlL`ìsQA˜€’\/AlL åsQA˜£\/AlL@ÞsQA˜£\/AlLÀÖsQA˜k\/AlL@ÒsQA˜,\/AlL ÐsQA˜å[/AlL€ÍsQA˜€´[/AlL ÆsQA˜€ž[/AlLà»sQA˜€¡[/AlL@²sQA˜€}[/AlLЫsQA˜€3[/AlL@°sQA˜[/AlL ¨sQA˜€([/AlL`¤sQA˜W[/AlL sQA˜€[/AlLÀ•sQA˜ûZ/AlL sQA˜€ëZ/AlL€ˆsQA˜€ÒZ/AlLÀ‚sQA˜€©Z/AlLàusQA˜€–Z/AlL msQA˜hZ/AlL isQA˜Z/AlL@fsQA˜€ÞY/AlLà[sQA˜€ÎY/AlL@TsQA˜€¢Y/AlL`MsQA˜tY/AlLàEsQA˜MY/AlL€@sQA˜$Y/AlL :sQA˜óX/AlL`4sQA˜Y/AlLÀ'sQA˜$Y/AlL€sQA˜€=Y/AlL sQA˜€[Y/AlLÀsQA˜vY/AlLúrQA˜Y/AlL`írQA˜Y/AlLÀÞrQA˜€¬Y/AlL€ÑrQA˜€¸Y/AlL€ÃrQA˜½Y/AlL`·rQA˜€˜Y/AlL€©rQA˜€tY/AlL`šrQA˜TY/AlL€ŒrQA˜BY/AlLÀ}rQA˜€ÿX/AlL orQA˜€ÐX/AlL brQA˜€’X/AlL@SrQA˜cX/AlL€FrQA˜(X/AlL9rQA˜ùW/AlLÀ+rQA˜€áW/AlLÀrQA˜€ÕW/AlL@ rQA˜€åW/AlL€ûqQA˜)X/AlL òqQA˜aX/AlLÀëqQA˜€|X/AlLâqQA˜{X/AlL ÕqQA˜€\X/AlLÀÈqQA˜MX/AlL ¿qQA˜€UX/AlL`´qQA˜gX/AlL ¦qQA˜yX/AlL@ŸqQA˜ŠX/AlL`“qQA˜€ŽX/AlL ‹qQA˜€ŒX/AlL@ƒqQA˜€¡X/AlL wqQA˜³X/AlL@mqQA˜´X/AlL@dqQA˜€ªX/AlLà[qQA˜€‹X/AlLRqQA˜mX/AlLLqQA˜€`X/AlL€AqQA˜€qX/AlL`5qQA˜€vX/AlLà(qQA˜€sX/AlL@qQA˜€zX/AlLÀqQA˜™X/AlL qQA˜€«X/AlL€ûpQA˜€ÇX/AlL@ñpQA˜€ÖX/AlLèpQA˜íX/AlL ÜpQA˜€øX/AlL ÎpQA˜Y/AlL€ÈpQA˜€Y/AlL½pQA˜€Y/AlLà³pQA˜€5Y/AlLÀ©pQA˜€„Y/AlL pQAØdK’åY/AîPÅ?—pQA˜€ÃY/AlL‘pQA˜‡Y/AlLÀ†pQA˜€LY/AlLÀƒpQA˜Y/AlL`~pQA˜€²X/AlL`zpQA˜€ZX/AlLrpQA˜€åW/AlL€kpQA˜vW/AlL@_pQA˜W/AlLàPpQA˜€»V/AlLà?pQA˜€WV/AlLà(pQA˜$V/AlL`pQA˜€ôU/AlLà pQA˜ÍU/AlLÀùoQA˜€¸U/AlLÀëoQA˜€U/AlLÀÚoQA˜fU/AlL ÏoQA˜þT/AlL¸oQA˜€¸T/AlL «oQA˜€‚T/AlL` oQA˜NT/AlL ™oQA˜T/AlLoQA˜ËS/AlLàƒoQA˜€rS/AlLÀxoQA˜€%S/AlL roQA˜€ÄR/AlL@poQA˜]R/AlL`moQA˜€0R/AlLploQA˜€R/AlLloQA˜ÚQ/AlL€joQA˜€¢Q/AlLðioQA˜Q/AlL ioQA˜HQ/AlLÀhoQA˜€ Q/AlLàfoQA˜ÆP/AlLÀcoQAhÃP/A42@`_oQAXúŽýJP/AñN|oQAð¾¯m0P/AñN„oQAÈœýP/A\cH †oQAÈœÃO/AÊJ …oQA(Q{meO/A€E ƒoQAØþSm O/A8ªK…oQAŒZãN/A¦MM@ŠoQA8:3ýN/A42@“oQA qMGN/A€EÀšoQA umN/A¢ÕA ¡oQAèç îM/A€E@¦oQA°U@ÁM/A¦MM «oQAèç ™M/AñN ®oQAøÇ9íhM/A€EÀ²oQA um*M/AÊJ¶oQAH#ëìúL/A¢ÕA@¸oQA umÇL/Aî¿F ºoQA°^ÊüxL/A42@»oQA umGL/A42@À¼oQAH#ël L/AñN€¿oQAÀ>øì²K/A8ªK@ÃoQA um\K/AñN€¿oQAX £-K/Aî¿F ºoQAèç ýüJ/AÊJà¶oQAH#ël¬J/Aî¿F€³oQA@C½üŽJ/AÆŽ>@¹oQAˆµ¶lZJ/A8ªK ÄoQA°^ÊüFJ/A€E@ÎoQAèð•ü4J/Aî¿FàØoQAØÞl&J/AÊJ åoQA z×J/AÊJÀïoQAøÐÃìJ/AñN þoQAH#ëìåI/Aî¿F@ pQA±ñü¶I/A¢ÕA@ pQA0clxI/A\cH€2pQA•äü7I/AyCàApQAP,uŒI/A€E GpQAÐ'°¥H/AÊJ`SpQA˜žnSH/A¢ÕAZpQAàhl,H/AñN ^pQA ~œì÷G/A42@cpQAˆ¾@lÒG/A¦MM€hpQAÐ'°—G/AÊJnpQAˆ¾@l`G/A\cH vpQAÐ0:üG/A¦MMÀ~pQAÀG‚läF/A€E ‡pQAøÙMlÊF/A€E`pQAxÕˆüŸF/A¢ÕA ™pQA£3ì„F/AyCà¡pQAxÕˆRF/Aî¿FÀ©pQA˜žnü/F/A8ªK€±pQA ƒaüF/A¢ÕAÀ»pQAˆ¾@lîE/A42@ ÂpQAhõZlÂE/AyCÉpQA0ll†E/AÊJÀÏpQAÃüQE/A€E ×pQAP5ÿkE/Aî¿FÀápQA˜§øû®D/A8ªK€épQAÀP l\D/A¢ÕA ñpQA¸pÞû!D/AñNàôpQA(Œëû’C/Aî¿F€qQAÐ9ÄãB/A€E qQA€çœûOB/A¢ÕAà"qQA˜§ø}A/Aî¿F€;qQApþäëA/A42@ EqQAP>‰kÆ@/Aî¿F@MqQAˆÇÊkƒ@/AyCYqQA(•uûC@/AÆŽ>ÀeqQAðª3@/A42@€nqQAÌû@/A8ªK}qQAà"|ëø?/AyC ˆqQAˆÇÊk@/A¦MM@’qQAÈY–k7@/AyC€qQA8u£kL@/A¦MMÀ¦qQAÌ-@/A8ªK@³qQAÐ9Äû@/A€E€¼qQAà"|k@/A42@ÀÄqQA¸yhûà?/A€E€ÌqQA(•u™?/A42@€ÖqQA µGkf?/A\cH ÞqQA˜°‚û;?/AÊJæqQAà"|k?/A\cHàïqQA˜°‚î>/A¦MMÀöqQAH^[û½>/A¦MMàýqQA˜°‚‘>/A€EÀrQAÌû^>/A42@€rQAH^[û6>/Aî¿FÀ rQA¨™:kà=/AyC€ rQA(•uûƒ=/A8ªK@rQA8~-kR=/A¢ÕA !rQA¸yhû=/A\cHÀ(rQA¨™:kààôqQAXGk[;/A¦MMÀîqQAÕI;/Aî¿F`äqQApùj#;/AÆŽ>€ßqQA8~-ëü:/AÆŽ>àÜqQA ¾Ñêº:/AÊJ@ÜqQAÈb ë}:/AyCáqQA@‡·jJ:/A¢ÕAàâqQAØKØ:/AÆŽ>`èqQA Â–úä9/A¢ÕAÀëqQAÈkªj 9/Aî¿FðqQAÈkªjg9/AÊJ@ôqQA€ù°9/A€E ÿqQA@‡·jõ8/A€E`rQA Â–ú8/AyC`rQAØTbúu8/AÊJ rQAxƒj[8/A\cH rQAÙÞj8/AyC!rQAÈkªj’8/AyC@'rQAxƒê·8/A\cHà/rQA ¾ÑjÂ8/AÊJ6rQAÙÞjÖ8/AyCArQAHgåúË8/Aî¿FàHrQAHgåú§8/A¢ÕA LrQAÙÞjz8/A8ªK@KrQAðœ²vK8/Ade~IrQAØTbú'8/A¦MMÀNrQA°¢Äêû7/AÊJVrQAPpoµ7/A¢ÕA arQAh9Uú‹7/AÆŽ> frQAøHúa7/A8ªK€irQAPpo57/Aî¿F jrQAÈkªjç6/A42@ÀlrQA0§‰úž6/A8ªK€irQA Ç[j6/A42@ÀdrQAXPj}6/AyCàYrQA Ç[êr6/Aî¿FPrQAè4êZ6/A8ªKErQAÀ‹|ú6/AyC@GrQA0°Á5/Aî¿FÀIrQA°«Njs5/A8ªK LrQA`Y'êC5/A\cH NrQAj5/AÆŽ>àLrQA@Aj»4/AXë<@JrQA Ç[jˆ4/A¢ÕA@HrQAˆ;ú)4/AXë<DrQAç-ù3/A8ªK€ArQAj©3/A€E€ >rQAˆ Åùo2/AÊJàFrQAj)2/AyC`NrQAÐ}¾iô1/AXë< SrQApBßù 1/A\cHÀXrQAø&ÒùR1/A€E _rQAø&Òùö0/A€E`erQA`b±i¦0/A¢ÕA irQAøûJ£Q0/AjnýÊmrQA ¾Ñêå//AÄ3`vrQAÞ£Z//AVs1€}rQA°«N //A|¤9À‡rQAøHZÛ./A ]6 ŽrQA°«Nê./A42@›rQA0§‰Z4./A42@à£rQAh9UÚá-/AVs1À«rQAþuê”-/A42@à³rQAè= o-/AVs1ºrQAÀ‹|Ú;-/A8`ÃrQAPpoÚ-/AÆŽ>ÀÍrQAøaBˆé,/A6¡ÁÑrQA0°Zº,/A|¤9àÖrQAè=ê},/AêG;`ÚrQA°«Nê:,/AÄ3 ÛrQAPyùÙô+/A8ßrQAˆ;Ú”+/A ]6ÀárQAç-Új+/AÆŽ>`èrQAç-Ú?+/AÆŽ>àôrQAÀ”Z+/AÆŽ>ÀýrQA0°Zì*/AXë< sQAÀ”Z´*/AXë<`!sQA˜ëòé”*/AæÏ/€.sQAPyùYX*/AÄ3AsQAê)*/A2º4PsQAPyùYí)/A8 isQApBßYÄ)/A|¤9 €sQAˆ ÅY°)/A|¤9à–sQA`Y' ™)/AÄ3@§sQAç-Ú£)/AVs1 ´sQA°´Ø ³)/A8àÇsQAÐ}¾é³)/A8ÀØsQA ¿)/A ]6`ìsQAPyùY*/A8`ûsQA°´ØéG*/A|¤9tQAh9UZ>*/AêG;@tQAà]ìYC*/A8àtQAè=êY*/A42@ *tQAà]ìYƒ*/AÆŽ>€/tQAÐt4 ƒ*/AVs1à:tQAøHZ›*/AÄ3àAtQA@AêÞ*/A2º4 CtQAPyùY&+/A42@ÀDtQAˆ;Z†+/AêG;`BtQAþuê¸+/AêG;À>tQAç-Úê+/AæÏ/`?tQA Ç[êë+/A2º4€DtQAh9UÚá+/A42@àKtQA Ç[êÀ+/A|¤9 PtQAxƒê›+/AêG;àUtQA Ë Zk+/AVs1€]tQA@AêB+/AVs1€etQAˆ;Ú+/A ]6 jtQAê©*/A42@{tQAÀ”Z‚*/AæÏ/@ˆtQA Ç[ê]*/AÆŽ>€—tQAØTbZ/*/AXë<@ªtQA°«Nê*/AêG;@»tQA˜ëòéâ)/AVs1ÀÃtQA0°ZÁ)/AêG;ÍtQAç-Z•)/AXë< ×tQAˆ;Ú†)/AÄ3 àtQAç-Zy)/A2º4@ætQA°«Nês)/A|¤9ÀïtQA˜ëòé†)/AÆŽ>ÀõtQAøHZ·)/AÆŽ>àôtQAê*/AêG;€ñtQAˆ;Z8*/AêG;õtQAÐt4 u*/A42@ûtQAh9UZÚ*/A8 ùtQAh9UÚÚ*/A8ÀuQAâhêÜ*/A8uQA Ë Z²*/A42@uQAøHZÔ*/AÄ3ÀuQAÐt4ê+/A ]6 uQAøHZ[+/AXë<@uQAøHÚ…+/AêG;àuQA0\™”+/Aä5'#uQAè4 ©+/AXë<@*uQA Â–Z,/AVs1À3uQA@Aê‰,/A ]6À9uQAç-Ú¸,/AêG;  nuQAØTbZ6./AXë<€huQAÀ‹|Z_./AÆŽ> nuQAø¾Zq./A|¤9vuQA€ù°Z•./AÄ3àyuQA Ç[ Ï./AXë< {uQAXP //AXë< ƒuQAÞ£Z$//A8à‡uQAø¾Zc//A42@€ŽuQA°¢Äê//A8—uQAõëêœ//A42@ ¢uQA@‡·êÑ//A42@à«uQA Â–Zú//AXë<@²uQAØKØZÚ//AÄ3¹uQAÀ‹|Zß//A|¤9à¾uQAÞ£Z0/A8 ÁuQA@‡·êQ0/A2º4 ¿uQAõëê•0/AæÏ/`¿uQAXG Í0/A8 ÁuQAÙÞêò0/A ]6ÀÉuQAh0ËÚ1/A2º4ÐuQA¸‚òZ 1/A ]6@ÝuQA°¢Äê 1/AVs1 éuQA€ù°ÚÕ0/A42@ûuQAÕ[³0/AXë<` vQApù ‡0/AæÏ/@vQA Â–Zz0/A42@ =vQA°¢Ä ­0/AXë< GvQA0žÿZÊ0/AÆŽ>@QvQA ¹ [ß0/AÆŽ>À]vQAh0ËZ 1/A ]6`lvQAõë O1/A ]6@uvQAÙÞê1/AÆŽ>€vQA`'A[Ü1/AÄ3`†vQA ¾Ñêú1/AÆŽ>àŒvQA —$ß1/AŒ¯î ‘vQAÈb ë 2/AÄ3`–vQA µG C2/A42@à›vQAÈb ë‹2/A2º4@¦vQA¨™: Ù2/AÆŽ>€¯vQA¨™:ë3/AÆŽ>ÀµvQA`'A[£3/AÄ3 ÀvQAXG ÷3/A42@àËvQAà"| 4/AÄ3@×vQAØBN[ 4/A|¤9ÞvQAÐT I4/AVs1êvQAÐTëÁ4/AÆŽ>àôvQAÐT ;5/A42@ûvQAH^[[·5/AÄ3@ÿvQA¸yh[(6/AVs1wQA¬½ë|6/A|¤9wQA¬½ë7/A8` wQA¸pÞ[w7/A8wQA€çœ[Ð7/AVs1wQAˆÇÊ 8/AÄ3wQA(Œë[Œ8/A8`wQA`·[9/A ]6`wQAˆ-ÂpS9/AYq,wQA¬½ëŠ9/AVs1 wQAã×ëÐ9/A¢ÕA@(wQAxÞ\ß9/A8€2wQA@UÑÛð9/AêG;@;wQA@UÑ[ñ9/A2º4€DwQA¨°ëî9/A¢ÕA@PwQA˜§øÛõ9/AÄ3àYwQA¨°ë':/A|¤9 ewQAðù\^:/A|¤9ÀowQApþä —:/A8wwQAxÞ\ß:/A42@ }wQAP5ÿë\;/AÄ3@‡wQA`-\¬;/AêG;wQA`-\/AÄ3`ŽwQAˆ¾@ì|>/AêG;À–wQA ƒa\â>/AêG; œwQA ƒa\?/A2º4à wQAèð•\&?/A2º4¨wQAèð•\J?/A¢ÕAà²wQAhõZì‰?/AXë<€¸wQA@LG\À?/AÆŽ>€¿wQAhõZ í?/AêG;àÅwQAP,uì+@/A2º4€ÌwQAÐ'°\s@/AÄ3àÑwQAº{\¯@/A2º4@ÖwQA z×\ñ@/A¢ÕAÚwQAèð•\A/AÆŽ>`àwQAxÕˆ\.A/A8àçwQAH#ëì,A/A8 ñwQA@C½\$A/AXë<`ùwQA z×\8A/A ]6`xQAØÞìBA/AêG;@ xQA•äÜ0A/A ]6 xQA z×\?A/A¢ÕA xQAš©ì¡A/AXë<$xQA0cìÿA/A2º4(xQA@C½\OB/AXë<@*xQAH«ß¨„B/AÊ—ÈÓ+xQAØÞìÉB/AêG;à-xQA@C½\C/AÄ3À*xQAˆµ¶ SC/A|¤9&xQAøÐÃì C/AÄ3 xQAxÌþ\D/AÄ3)xQAH#ë ID/AêG; ,xQA u ‡D/A|¤9@4xQA€¬, ÛD/A|¤9@@yxQA¨g]MH/A8`{xQAhãFí§H/A¢ÕAÀ{xQA€£¢í I/AÆŽ>à|xQAð¾¯íEI/A2º4`}xQAØõÉí’I/A2º4€xQAX. bJ/A"¯uxQA˜€°J/AlL`‚xQA˜€ëJ/AlL`€xQA;PÌB0AlL ~¬QAÌ€x›0AlL`ãÁQAgÌÆŽ0AlL`¿¿QAÌÀ<Ž0AlL€¤¿QAÌÀŽ0AlL`œ¿QAÌÀ Ž0AlL‘¿QAÌŽ0AlL …¿QAÌÀŽ0AlL€x¿QAÌ€Ž0AlL@n¿QAÌ€Ž0AlL`c¿QAÌÀû0AlL [¿QAÌú0AlL€O¿QAÌ€þ0AlL€C¿QAÌ Ž0AlL@>¿QAÌ@Ž0AlL 6¿QAÌ@Ž0AlL`+¿QAÌ@1Ž0AlL@¿QAÌ@BŽ0AlL@¿QAÌÀmŽ0AlL ¿QAÌ€Ž0AlL ¿QAÌÄŽ0AlL`¿QAÌ€íŽ0AlL@ý¾QAÌ@0AlL`ô¾QAÌ€ 0AlLé¾QAÌÀ 0AlL Ù¾QAÌ0AlL@ξQAÌ€0AlL€À¾QAÌ@ØŽ0AlLாQAÌ@¬Ž0AlL@£¾QAÌ€„Ž0AlL€’¾QAÌzŽ0AlL€†¾QAÌ€zŽ0AlLàx¾QAÌ”Ž0AlL€i¾QAÌ«Ž0AlL@\¾QAÌÝŽ0AlL€K¾QAÌ€ûŽ0AlLÀB¾QAÌ@0AlL A¾QAÌ#0AlLà:¾QAÌ€K0AlL`9¾QAÌ›0AlLÀ=¾QAÌÀÊ0AlL C¾QAÌ@ñ0AlL M¾QAÌ@'0AlLðf¾QAÌ@]0AlL`e¾QAÌÀœ0AlL@a¾QAÌ€ç0AlL`¾QAÌ€R‘0AlL `¾QAÌ@‘0AlL@^¾QAÌ@§‘0AlL W¾QAÌ€·‘0AlLM¾QAÌ@Á‘0AlLà?¾QA̾‘0AlL€5¾QAÌË‘0AlL`+¾QAÌ@ç‘0AlLà#¾QAÌ€ÿ‘0AlL€¾QAÌ@’0AlL ¾QAÌ@,’0AlLÀ¾QAÌ@„’0AlLà¾QAÌÀ°’0AlL ¾QÀܒ0AlL@ ¾QAÌ"“0AlL ¾QAÌÀS“0AlL@ ¾QAÌÜ“0AlL€!¾QAÌ€ ”0AlL(¾QAÌÀE”0AlL€)¾QAÌÀu”0AlL€)¾QAÌÀ¶”0AlL +¾QAÌ€î”0AlL`)¾QAÌ@÷”0AlLà¾QAÌÀ•0AlL`÷½QAÌ@•0AlL€î½QAÌÀõ”0AlL€Ö½QAÌÀë”0AlL€Ï½QAÌ@á”0AlL¿½QAÌå”0AlL²½QAÌ@ò”0AlL`£½QAÌÀ•0AlL —½QAÌK•0AlLŒ½QAÌÀu•0AlL ƒ½QAÌÀ©•0AlLÀ}½QÀ͕0AlL w½QAÌ@ì•0AlL r½QAÌ€$–0AlLÀk½QAÌI–0AlL g½QAÌÀƒ–0AlL`^½QAÌ@¥–0AlL Z½QAÌÀë–0AlL O½QAÌ@—0AlL`O½QAÌ€O—0AlL V½QAÌ€——0AlL`[½QAÌÏ—0AlL ^½QAÌ@˜0AlL `½QAÌÀH˜0AlLÀ^½QAÌ@˜0AlL`\½QAÌÀ¶˜0AlL``½QAÌÀý˜0AlL _½QAÌ™0AlL [½QAÌÀ>™0AlLV½QAÌÀY™0AlL@S½QAÌ‚™0AlLàR½QAÌ@²™0AlL€O½QAÌ@ö™0AlL`J½QAÌ@(š0AlLÀD½QAÌ@lš0AlL >½QAÌ€‰š0AlL€4½QAÌ@¶š0AlL@$½QAÌΚ0AlL@½QAÌÞš0AlLÀ½QAÌÀ›0AlL@ï¼QAÌ'›0AlL€ã¼QAÌÀU›0AlL€×¼QAÌ€x›0AlL€Ñ¼QAÌ€"›0AlL À¼QAÌ€T›0AlL€³¼QAÌ@P›0AlLÀ¥¼QAÌ>›0AlL ˜¼QAÌ/›0AlLÀŒ¼QAÌÀ›0AlLà~¼QAÌ€›0AlL m¼QAÌÀ›0AlL ^¼QAÌÀ.›0AlL S¼QAÌÀ2›0AlLQ¼QAÌÀ8›0AlL@F¼QAÌ@B›0AlLà:¼QAÌV›0AlL -¼QAÌÀc›0AlL€ ¼QAÌ`›0AlL`¼QAÌ@K›0AlL ¼QAÌ€,›0AlL`¼QAÌýš0AlLÀÿ»QAÌÀáš0AlL€ü»QAÌ@Äš0AlLÀû»QAÌ@¢š0AlL`û»QAÌÀš0AlL ú»QAÌÀsš0AlLÀó»QAÌÀxš0AlL ë»QAÌÀ£š0AlL€å»QA̼š0AlL`â»QAÌÔš0AlLÀÛ»QAÌÀñš0AlLÀÑ»QAÌÀðš0AlLÀË»QAÌÒš0AlLàÉ»QÀ̚0AlL€É»QAÌÀ—š0AlL`Ì»QAÌoš0AlL€Í»QAÌÀLš0AlL`λQAÌ8š0AlL€É»QAÌÀ2š0AlL ûQAÌ€8š0AlL ½»QAÌ@mš0AlL€°»QAÌ€š0AlL©»QAÌ€¦š0AlLࢻQAÌÀ“š0AlL@“»QAÌÀzš0AlL€Ž»QAÌ€š0AlLpŒ»QAÌÀZš0AlLÀt»QAÌÀš0AlL r»QAÌÀ¨š0AlL s»QAÌÈš0AlL€s»QAÌ€Õš0AlL s»QAÌþš0AlL`t»QAÌ›0AlL`t»QAÌ€1›0AlLo»QAÌ8›0AlL@n»QAÌÀ(›0AlLÀc»QAÌÀ›0AlLà\»QAÌ@›0AlL@V»QAÌ€ôš0AlL`K»QAÌêš0AlL A»QAÌ€Ûš0AlL`5»QAÌ€Õš0AlLà,»QAÌ€µš0AlL &»QAÌ€“š0AlL€!»QAÌ\š0AlLÀ»QAÌ@)š0AlL`»QAÌÀü™0AlL%»QAÌâ™0AlLà!»QAÌ€Ó™0AlLà»QA̰™0AlLà»QAÌ@¢™0AlL`»QAÌ€™0AlL»QAÌb™0AlL€ »QAÌ€F™0AlL@»QAÌÀ&™0AlL þºQAÌ€ø˜0AlL@óºQÀؘ0AlLàêºQAÌ»˜0AlL åºQAÌÀ†˜0AlL`ݺQAÌ@U˜0AlL€×ºQA̘0AlL€ÓºQAÌÀ ˜0AlL ÒºQAÌñ—0AlL0ѺQAÌ€Ó—0AlL€ÖºQAÌ@Ä—0AlL€ÞºQAÌÀ¡—0AlLÀæºQAÌ€s—0AlL@ñºQAÌ@b—0AlL@üºQAÌÀ2—0AlL€»QAÌÀ—0AlL '»QAÌÀ—0AlL9»QAÌ@ò–0AlLÀH»QAÌé–0AlL€X»QAÌ@Ö–0AlL@a»QAÌ€y–0AlLðv»QAÌÀW–0AlL`u»QAÌ9–0AlLàp»QAÌ€–0AlLàp»QAÌÀê•0AlL{»QAÌ@Ô•0AlL€‚»QAÌ@±•0AlL`‰»QAÌÀ›•0AlLÀ»QAÌÀ^•0AlL—»QAÌ€D•0AlL`›»QAÌ@2•0AlL@Ÿ»QAÌÀ •0AlLª»QAÌá”0AlL€¯»QAÌ»”0AlL ¯»QAÌ€r”0AlL ¯»QAÌ@ ”0AlL­»QAÌ@”0AlL଻QAÌÀÖ“0AlL€Ÿ»QAÌ€¤“0AlL@‘»QAÌÀ ”0AlLày»QAÌ&”0AlL s»QAÌ6”0AlLh»QAÌ”0AlLÀ\»QAÌ€‰“0AlL€6»QAÌÀ“0AlL@+»QAÌ@“0AlL`»QAÌ@+“0AlL€»QAÌ@D“0AlLàüºQAÌ€S“0AlLàñºQAÌÀf“0AlL éºQAÌŒ“0AlLãºQAÌ€±“0AlLàÚºQAÌ@Ï“0AlLÀͺQAÌ€ñ“0AlL¿ºQAÌÀ”0AlL ´ºQAÌ ”0AlL¬ºQAÌ€ “0AlL€²ºQAÌ€œ’0AlLðµºQAÌ@a’0AlL ¬ºQAÌ@’0AlL¥ºQAÌ'’0AlL@ºQAÌ@’0AlL`”ºQAÌ€ó‘0AlL@ºQAÌÊ‘0AlLÀŒºQAÌ€‹‘0AlL@ŠºQAÌ€d‘0AlL@ˆºQAÌ€B‘0AlLà„ºQAÌÀ‘0AlL {ºQAÌÀ‘0AlL€sºQAÌ‘0AlLàgºQAÌû0AlLà\ºQAÌÀÎ0AlL`\ºQAÌ@©0AlLÀ`ºQAÌ@|0AlLpbºQAÌ€L0AlL ]ºQAÌ€#0AlL YºQAÌ€å0AlLÀVºQAÌÀ™0AlLYºQAÌ@M0AlLàXºQAÌ$0AlL XºQAÌÀòŽ0AlLÀTºQAÌ€ÒŽ0AlL KºQAÌÀŽ0AlLÀ@ºQAÌ@¿Ž0AlL€5ºQAÌ€«Ž0AlL@)ºQAÌ@‰Ž0AlL "ºQAÌ@kŽ0AlL0 ºQAÌÀeŽ0AlLà ºQAÌEŽ0AlL@%ºQAÌ€@Ž0AlL`-ºQAÌ=Ž0AlL`3ºQAÌ@Ž0AlL4ºQAÌ@ò0AlL€(ºQAÌà0AlL !ºQAÌ€Ò0AlL+ºQA̽0AlL@7ºQAÌh0AlLÀ<ºQAÌÀG0AlLÀ<ºQAÌ@0AlL =ºQAÌþŒ0AlLBºQAÌðŒ0AlLÀGºQÀߌ0AlL@PºQAÌ@ÆŒ0AlL XºQAÌÀ±Œ0AlL@]ºQAÌ€Œ0AlLdºQAÌ€oŒ0AlL°jºQAÌ@?Œ0AlL fºQAÌ€&Œ0AlL`ZºQAÌŒ0AlL€QºQAÌŒ0AlL IºQAÌÀ¾‹0AlLIºQA̘‹0AlL€NºQAÌ€Œ‹0AlL ZºQAÌ@p‹0AlL@eºQAÌ@J‹0AlL gºQAÌ@"‹0AlL`gºQAÌ€ñŠ0AlLhºQÀ؊0AlLàdºQAÌ€àŠ0AlL`OºQAÌÀÈŠ0AlL`FºQÀ̊0AlL 5ºQAÌ@ÓŠ0AlL +ºQÀƊ0AlLàºQAÌ@ÉŠ0AlL@ºQAÌ@ìŠ0AlLÀò¹QAÌöŠ0AlL`é¹QAÌÀöŠ0AlLàß¹QAÌÀëŠ0AlLÀعQAÌÀЊ0AlL€Ð¹QÀÊ0AlL€Â¹QÀƊ0AlLà´¹QAÌ@¸Š0AlL`­¹QAÌ@¦Š0AlL@¦¹QAÌŸŠ0AlL€˜¹QAÌ@ªŠ0AlL ¹QAÌ€°Š0AlL‰¹QAÌ€¶Š0AlL@~¹QAÌÀ¯Š0AlL u¹QAÌ®Š0AlL€m¹QAÌÀ«Š0AlL d¹QAÌÀ¹Š0AlLÀU¹QÀ̊0AlLL¹QAÌ@ÞŠ0AlLàB¹QAÌÀÓŠ0AlLà9¹QAÌ@¶Š0AlLÀ/¹QAÌÀ“Š0AlL &¹QAÌ@ƒŠ0AlL¹QȦŠ0AlLÀ¹QAÌ€‚Š0AlL€¹QAÌÀˆŠ0AlL ÷¸QĂŠ0AlLÀî¸QAÌŠ0AlL`ç¸QAÌ€uŠ0AlLÀÚ¸QAÌmŠ0AlL`ѸQAÌ_Š0AlL ʸQAÌ@HŠ0AlL Å¸QAÌ€/Š0AlL À¸QAÌÀŠ0AlL½¸QAÌŠ0AlL À¸QAÌ€ï‰0AlL ƸQAÌ€Ò‰0AlLàǸQAÌ€¶‰0AlL Ç¸QAÌ@a‰0AlL À¸QAÌ@?‰0AlL¸¸QẢ0AlL€°¸QAÌ@ûˆ0AlLÀ®¸QAÌ€Þˆ0AlL€®¸QAÌ€Àˆ0AlLà­¸QAÌŸˆ0AlL`­¸QAÌ€yˆ0AlL`­¸QAÌ€Oˆ0AlL ª¸QAÌÀ'ˆ0AlL€¤¸QAÌÀˆ0AlL@™¸QAÌú‡0AlLÀŒ¸QAÌ€ë‡0AlL€‡¸QAÌ@Ó‡0AlL@€¸QAÌ€¼‡0AlL {¸QAÌx‡0AlLÀm¸QAÌ/‡0AlLÀg¸QAÌÀø†0AlLÀc¸QAÌ@Ù†0AlLÀa¸QAÌ€³†0AlLY¸QAÌÀ–†0AlLàO¸QAÌ€…†0AlLF¸QAÌ@a†0AlLà:¸QAÌ€B†0AlL6¸QAÌ@&†0AlL@6¸QAÌ€ê…0AlL€6¸QAÌ@¢…0AlLà'¸QAÌ€>…0AlL€¸QAÌû„0AlL€¸QAÌÚ„0AlL`¸QAÌ@Ý„0AlL€â·QAÌ€Ó„0AlLÀÖ·QAÌ@µ„0AlL`Ì·QAÌ@u„0AlL@÷QAÌ„0AlL`··QAÌ€Óƒ0AlL °·QAÌ@£ƒ0AlL ©·QAÌ@nƒ0AlL€ ·QAÌÀ;ƒ0AlL€–·QAÌ@%ƒ0AlL·QAÌ€*ƒ0AlL …·QAÌBƒ0AlL€·QAÌ@hƒ0AlL ~·QAÌ@œƒ0AlL·QAÌÀÕƒ0AlLà„·QAÌ„0AlL ˆ·QAÌ@E„0AlL@Š·QAÌÀƒ„0AlL ˆ·QAÌ@¼„0AlL ·QAÌ…0AlL q·QAÌs…0AlL_·QAÌŒ…0AlL T·QAÌ€¿…0AlLÀL·QAÌü…0AlL€L·QAÌ€?†0AlL@L·QAÌ€‡†0AlLM·QAÌ@´†0AlL€K·QAÌÀφ0AlL`C·QÀ݆0AlL 6·QAÌ€å†0AlL`(·QAÌ€ø†0AlL`·QȦ0AlL ·QAÌB‡0AlL`·QAÌq‡0AlL`·QAÌ€¦‡0AlL ·QAÌ·0AlL·QAÌÀæ‡0AlL ·QAÌ@ð‡0AlL@·QAÌ€ù‡0AlL`ü¶QÄ0AlLõ¶QAÌÀ^ˆ0AlLì¶QAÌ€˜ˆ0AlL€ê¶QAÌÀƈ0AlLç¶QAÌ€ýˆ0AlL@æ¶QAÌ@0‰0AlL ä¶QAÌ@f‰0AlL€â¶QAÌ ˆ‰0AlLPÞ¶QA̧‰0AlL@϶QA̶‰0AlL€Ä¶QAÌÀÉ0AlL º¶QAÌ@þ‰0AlL ³¶QAÌ€DŠ0AlLÀ©¶QAÌÀaŠ0AlL€¥¶QAÌ@yŠ0AlL ¶QAÌ@†Š0AlL`¶QAÌÀˆŠ0AlL@‚¶QAÌ€„Š0AlLp€¶QAÌÀlŠ0AlL v¶QAÌ€8Š0AlL k¶QAÌ Š0AlLðc¶QAÌ€f‰0AlL ¶QAÌ€7‰0AlLƒ¶QAÌÀûˆ0AlL@€¶QAÌÀψ0AlL¶QAÌÀ ˆ0AlL‰¶QAÌwˆ0AlL€‰¶QAÌAˆ0AlL@‚¶QAÌ€ˆ0AlLp~¶QAÌ€ï‡0AlL@‰¶QAÌ@Ƈ0AlL0‹¶QA̤‡0AlL …¶QAÌ~‡0AlL „¶QAÌU‡0AlL@‡¶QAÌ€#‡0AlL°Ž¶QAÌ@ ‡0AlL }¶QAÌú†0AlLÀh¶QAÌ@å†0AlLÀU¶QAÌÔ†0AlL€@¶QA̽†0AlL@1¶QAÌ@”†0AlL€(¶QAÌÀo†0AlL`¶QAÌ€z†0AlLà ¶QAÌ@—†0AlL ¶QA̤†0AlL€óµQAÌ€Œ†0AlLêµQAÌÀQ†0AlL@èµQAÌ@+†0AlLåµQAÌÀ[†0AlL€ÏµQAÌ€x†0AlL ÅµQAÌ€ž†0AlL@¸µQAÌ@¶†0AlL0±µQAÌÀĆ0AlLଵQAÌÀì†0AlL` µQAÌ@‡0AlLÀ”µQAÌ@/‡0AlL ‡µQAÌ€J‡0AlLÀtµQAÌ@h‡0AlL `µQAÌÀx‡0AlLJµQAÌ@™‡0AlL:µQAÌÀLJ0AlL #µQAÌî‡0AlLÀµQAÌ€å‡0AlL ú´QAÌÀ܇0AlL ç´QAÌ@ˆ0AlL`Ø´QAÌÀJˆ0AlL Ñ´QAÌ@ˆ0AlLÀÉ´QAÌ@ʈ0AlL@À´QAÌòˆ0AlL ¨´QAÌ€ýˆ0AlL ™´QAÌÀõˆ0AlL ‰´QAÌÿˆ0AlL€}´QẢ0AlL`p´QAÌ€@‰0AlL@d´QAÌÀZ‰0AlL``´QAÌ@€‰0AlL`´QAÌ©‰0AlL€]´QAÌ׉0AlL[´QAÌÀŠ0AlLÀU´QAÌ€1Š0AlL€M´QAÌJŠ0AlL H´QAÌmŠ0AlLB´QAÌ@”Š0AlLà>´QAÌ¿Š0AlL`>´QAÌ@âŠ0AlL@@´QAÌ ‹0AlL`F´QAÌ,‹0AlLÀ;´QAÌ ‹0AlLà/´QAÌ@úŠ0AlL@ ´QAÌ€‹0AlL@ ´QAÌ€úŠ0AlL`ñ³QAÌÀüŠ0AlL`Þ³QAÌ€‹0AlL Í³QAÌÀ‹0AlL€¾³QAÌ(‹0AlLÀ²³QAÌÀ*‹0AlL€¥³QAÌ€;‹0AlL•³QAÌg‹0AlL`‰³QAÌ€“‹0AlL`ˆ³QAÌÀ¶‹0AlL`–³QAÌÀÒ‹0AlLà–³QAÌÀø‹0AlL‘³QAÌ&Œ0AlL |³QAÌ€IŒ0AlL`i³QAÌÀYŒ0AlL€V³QAÌ`Œ0AlL S³QAÌmŒ0AlL°K³QAÌrŒ0AlLÈH³QAÌÀ…Œ0AlL A³QAÌÀ¢Œ0AlLÀ;³QĄŒ0AlLà:³QAÌÀÊŒ0AlL@.³QAÌ@úŒ0AlL€)³QAÌ€=0AlL ³QAÌ€†0AlLà³QAÌÇ0AlL`³QAÌ@ÅŽ0AlL ÷²QAÌðŽ0AlL ò²QAÌ€0AlLî²QAÌ€50AlL€ç²QAÌ0AlLÚ²QAÌ€þŽ0AlL Ó²QAÌ€÷Ž0AlL€Ì²QAÌ€0AlL0˲QAÌ@Y0AlLÓ²QAÌ|0AlL Ø²QAÌ@š0AlL€ß²QAÌ¢0AlL ë²QAÌ{0AlL@õ²QAÌ@E0AlL ú²QAÌ€0AlLà³QAÌ@ 0AlLp ³QAÌ0AlLð ³QAÌA0AlL` ³QAÌ0AlL³QAÌ@Å0AlL ý²QAÌ€0AlL ó²QAÌ€*0AlLí²QAÌ@0AlL ß²QAÌÀò0AlLÀزQAÌÀÏ0AlL Ô²QAÌ@¯0AlLβQAÌ@0AlL Æ²QAÌÀt0AlL`À²QAÌq0AlLp¼²QAÌÀm0AlL ¹²QAÌ‚0AlL€±²QA̱0AlL­²QAÌ€ï0AlL@²²QAÌÀ;0AlL€º²QAÌ@]0AlL ¿²QAÌ€0AlLÁ²QAÌ Á0AlLº²QAÌÀ‘0AlLÀš²QAÌ.‘0AlL ˆ²QAÌ@e‘0AlL@p²QAÌ@~‘0AlL@_²QĂ‘0AlL`Q²QAÌ@q‘0AlL`E²QAÌÀR‘0AlLÀ;²QAÌ@V‘0AlL@/²QAÌ@c‘0AlL '²QAÌ@…‘0AlL²QAÌÀ§‘0AlL€²QAÌ@Í‘0AlLà²QAÌÿ‘0AlL²QAÌÀ(’0AlL@ ²QAÌ`’0AlL ²QAÌÀ”’0AlLàó±QA̲’0AlL é±QAÌÀÀ’0AlLà±QAÌ@Á’0AlLÚ±QAÌ@·’0AlL@Ó±QAÌ€±’0AlL Î±QAÌ@³’0AlL Ë±QAÌÀ¦’0AlL Â±QAÌ–’0AlL ½±QAÌÀ‰’0AlL`º±QAÌv’0AlL@µ±QAÌb’0AlLà±±QAÌM’0AlL@±±QAÌ€<’0AlLà®±QAÌ@(’0AlL€«±QAÌ@’0AlLÀ£±QAÌ€ ’0AlL@¡±QAÌ€’0AlL@Ÿ±QAÌ@ñ‘0AlLÀ±QAÌà‘0AlLà›±QAÌ@È‘0AlLÀ—±QAÌÀÀ‘0AlL ‘±QAÌÀ°‘0AlL€Š±QAÌÀ¤‘0AlLÀ‰±QAÌ€“‘0AlL€†±QAÌ@—‘0AlL€€±QAÌ@ž‘0AlL`}±QAÌ€”‘0AlLàt±QẢ‘0AlL`q±QAÌ€|‘0AlL m±QAÌ€t‘0AlL@j±QAÌm‘0AlL g±QAÌ@!‘0AlLÐe±QAÌ€ý0AlLk±QAÌÀÞ0AlLÐm±QAÌÀÔ0AlL€o±QAÌ€³0AlLÀr±QAÌÀˆ0AlLu±QAÌ€u0AlL u±QAÌ]0AlLÀr±QAÌ€L0AlL p±QAÌ;0AlL n±QAÌÀ$0AlLàn±QAÌ0AlL m±QAÌÀì0AlL i±QAÌ€è0AlL`f±QAÌ€à0AlL _±QAÌÐ0AlL`[±QAÌ@¸0AlL€]±QAÌ€0AlL0^±QAÌ€z0AlL Z±QAÌ€q0AlLðX±QAÌ^0AlL`W±QAÌ@M0AlLÐP±QAÌÀ=0AlLM±QAÌ@20AlLÀF±QAÌ@0AlLÀB±QAÌÀðŽ0AlLÀ?±QAÌÀÒŽ0AlL?±QAÌÆŽ0AlL>±QAÌÀ»Ž0AlL ;±QAÌÀ‘Ž0AlL€/±QẢŽ0AlL -±QAÌ‚Ž0AlLÀ*±QAÌ@hŽ0AlL€)±QAÌRŽ0AlLà%±QAÌÀGŽ0AlL "±QAÌÀ:Ž0AlL ±QAÌÀ'Ž0AlL ±QAÌ€à0AlL±QAÌÓ0AlLÀ ±QAÌÃ0AlL  ±QA̽0AlL±QAÌÀ¸0AlL@±QAÌ0AlL±QAÌÀ0AlLü°QAÌ0AlL`õ°QAÌ@u0AlLÀô°QAÌ€]0AlLó°QAÌI0AlL`í°QAÌÀI0AlL é°QAÌÀJ0AlL`ã°QAÌ<0AlL@Þ°QAÌ€.0AlLÒ°QAÌ0AlL аQAÌ@0AlLΰQAÌ€îŒ0AlLà̰QAÌ€ÔŒ0AlL ȰQAÌ€¯Œ0AlL Ã°QAÌÀ›Œ0AlL@¿°QAÌ€—Œ0AlL€¸°QAÌÀyŒ0AlL ³°QAÌ\Œ0AlL`®°QAÌQŒ0AlL ¬°QAÌCŒ0AlL`ª°QAÌ@(Œ0AlL ¤°QAÌ@Œ0AlLरQAÌÀŒ0AlL€¢°QAÌÀÞ‹0AlL€°QAÌÀÑ‹0AlL ›°QAÌ@½‹0AlL —°QA̰‹0AlLà°QAÌÀ ‹0AlL`аQAÌ@Ž‹0AlL€ˆ°QAÌ€‹0AlLÀ†°QAÌ@k‹0AlL`ƒ°QAÌX‹0AlL€€°QAÌ@G‹0AlL@{°QAÌ€-‹0AlL@v°QAÌ€‹0AlL`n°QAÌ@þŠ0AlL l°QÀŠ0AlL€e°QAÌÀ±Š0AlLÀd°QAÌ™Š0AlL@c°QAÌÀ‰Š0AlLb°QAÌ€tŠ0AlL``°QAÌ@OŠ0AlL€c°QAÌÀ2Š0AlLÀd°QAÌŠ0AlL g°QAÌŠ0AlLc°QAÌ@ó‰0AlL ^°QAÌä‰0AlL@W°QAÌÓ‰0AlLÀO°QÀΉ0AlL L°QAÌɉ0AlL€H°QAÌ@ª‰0AlLàB°QAÌž‰0AlLÀC°QAÌÀŒ‰0AlL @°QAÌ@l‰0AlL@>°QAÌ€L‰0AlL€<°QAÌ€6‰0AlL :°QAÌ@&‰0AlL9°QAÌ@‰0AlL@7°QAÌ ‰0AlL€5°QAÌÀ‰0AlL`/°QAÌÀ܈0AlL.°QAÌ͈0AlLà,°QÀƈ0AlLÀ*°QA̺ˆ0AlL'°QAÌÀ´ˆ0AlLÀ$°QAÌ@³ˆ0AlLà!°QAÌ«ˆ0AlL°QAÌ¢ˆ0AlL@°QAÌ@™ˆ0AlL`°QAÌ€ˆ0AlL °QAÌ@uˆ0AlLÀ°QAÌjˆ0AlLÀ°QAÌ@\ˆ0AlL °QAÌPˆ0AlLà°QAÌÀ-ˆ0AlL@°QAÌ€$ˆ0AlL °QAÌ€ˆ0AlL °QAÌ€ ˆ0AlL`°QAÌ@ð‡0AlLà°QAÌׇ0AlL@°QAÌÀć0AlL` °QAÌ€­‡0AlL °QAÌ€ ‡0AlL °QAÌ€‡0AlL ÿ¯QAÌ@y‡0AlLÀü¯QAÌi‡0AlL ý¯QAÌÀV‡0AlLàù¯QAÌ@;‡0AlL ÷¯QAÌÀ$‡0AlLàô¯QAÌ€ ‡0AlLõ¯QAÌ€ý†0AlL@ø¯QAÌâ†0AlLÀù¯QAÌ€¹†0AlL`ú¯QAÌ€Ÿ†0AlLàö¯QAÌŒ†0AlL@ð¯QAÌ@r†0AlL@ï¯QAÌQ†0AlL@ï¯QAÌ9†0AlLÀê¯QAÌ3†0AlLàã¯QAÌ@&†0AlL`Û¯QĂ0AlL€×¯QAÌÀà…0AlL€Í¯QAÌÐ…0AlL̯QAÌ@º…0AlL Æ¯QAÌÀ™…0AlLįQAÌr…0AlL€Â¯QAÌ€Z…0AlL Ã¯QAÌH…0AlL@Á¯QAÌ@3…0AlL ¼¯QAÌ€…0AlL€º¯QAÌü„0AlL ¸¯QAÌ€ð„0AlLÀ²¯QAÌ@Õ„0AlL@¯¯QAÌ@º„0AlLÀ«¯QAÌ@}„0AlL ¦¯QAÌÀm„0AlLÀœ¯QAÌ<„0AlLàš¯QAÌ'„0AlL@™¯QAÌÀ„0AlL`—¯QAÌÀøƒ0AlL@–¯QAÌ@Òƒ0AlL ”¯QAÌÀÁƒ0AlL@“¯QAÌ@™ƒ0AlL’¯QAÌ€~ƒ0AlLНQAÌ@mƒ0AlL‚¯QAÌÀdƒ0AlL0~¯QAÌÀZƒ0AlLpw¯QAÌ_ƒ0AlLàp¯QAÌ@ƒ0AlLÀo¯QAÌ€"ƒ0AlLÐi¯QAÌ@ƒ0AlL`b¯QAÌÀƒ0AlL@_¯QAÌ@ô‚0AlL0[¯QAÌ@ö‚0AlLpS¯QAÌâ‚0AlLpF¯QAÌ€Õ‚0AlL ?¯QAÌ@º‚0AlL 9¯QAÌ€‚0AlL3¯QAÌÀ™‚0AlL1¯QAÌY‚0AlLÀ¯QAÌ@‚0AlL€¯QAÌÀ.‚0AlLÀ¯QAÌ@‚0AlL ¯QAÌ@ÿ0AlL ¯QAÌ@ä0AlL ¯QAÌ@Ë0AlL ¯QAÌ@´0AlL@ ¯QAÌ€­0AlLP¯QAÌ€—0AlL°¯QAÌ€y0AlL¯QAÌ@l0AlL ¯QAÌÀI0AlLÀ¯QAÌ@0AlLð÷®QAÌ0AlLð®QAÌÀ0AlLPì®QAÌÀ0AlL°ì®QAÌÀñ€0AlL0è®QAÌÒ€0AlLá®QA̯€0AlL`Ý®QAÌ›€0AlL ×®QAÌ€ˆ€0AlL€Ó®QAÌ€}€0AlL€Ò®QAÌ€_€0AlL Ê®QAÌ@6€0AlL ¼®QAÌ@€0AlL€·®QAÌ€€0AlLà´®QAÌÀè0AlL`±®QAÌÀÔ0AlLÀ¬®QAÌÀÀ0AlL ¥®QAÌ@¶0AlLà ®QAÌ@¨0AlL ›®QAÌ0AlL@˜®QAÌ€u0AlL“®QAÌ]0AlL@®QAÌ€>0AlLŽ®QAÌ@0AlLà‰®QAÌ€ó~0AlL ˆ®QAÌ€Ð~0AlL€€®QA̹~0AlL€v®QAÌ@~0AlL€q®QAÌÀc~0AlL@o®QAÌÀ<~0AlL@m®QAÌ€"~0AlLàm®QAÌ~0AlL€o®QAÌ€ô}0AlLÀl®QAÌÞ}0AlL`j®QAÌ@É}0AlL€g®QAÌ€µ}0AlLàd®QAÌ@¥}0AlLàc®QAÌÀ‹}0AlL b®QAÌ@x}0AlLÀ\®QAÌc}0AlL Y®QAÌ€P}0AlL V®QAÌÀA}0AlLR®QAÌ@8}0AlLO®QAÌ@0}0AlL`L®QAÌ@#}0AlLI®QAÌÀ}0AlL€F®QAÌ@ }0AlL D®QAÌ@}0AlL@@®QAÌ€ï|0AlL`;®QAÌá|0AlL 8®QAÌ@Ò|0AlL 4®QAÌÀÄ|0AlLà1®QA̳|0AlL.®QAÌ@¥|0AlL€*®QAÌ@Ž|0AlL $®QÃ|0AlL`®QAÌ@u|0AlL ®QAÌÀk|0AlL`®QAÌÀ^|0AlL@ ®QAÌÀ?|0AlL€ ®QAÌ€|0AlLà ®QAÌ€ |0AlL®QAÌÀÿ{0AlL ®QAÌÀå{0AlL`þ­QAÌ@Û{0AlLàø­QA̺{0AlLÀö­QAÌÀ—{0AlL0ð­QAÌ@s{0AlL€é­QAÌ@<{0AlLè­QAÌ{0AlL`ç­QAÌÀ {0AlL â­QAÌ€{0AlL`á­QAÌ@ñz0AlLÞ­QAÌÀßz0AlLÀÙ­QAÌ@Æz0AlL°Ø­QA̽z0AlLP×­QAÌÀ¡z0AlLpÑ­QAÌ€yz0AlLðέQAÌÀZz0AlLÐÍ­QAÌ@?z0AlL€È­QAÌ@#z0AlL0Æ­QAÌ@z0AlLÇ­QAÌ@ûy0AlL€Ë­QAÌ€ßy0AlLpЭQAÌ@Çy0AlL0Ñ­QAÌ@\y0AlL`½­QAÌÀHy0AlL`¹­QAÌ€-y0AlLอQAÌÀy0AlL๭QAÌÀ y0AlL»­QAÌôx0AlL`¹­QAÌ@ãx0AlL¸­QAÌ×x0AlL µ­QAÌÊx0AlL`°­QAÌ€½x0AlL «­QA̲x0AlL §­QAÌÀ¦x0AlL`£­QAÌ€žx0AlL@ž­QAÌ@˜x0AlLš­QAÌ€Žx0AlL ™­QAÌÀ€x0AlLà—­QAÌ€bx0AlL —­QAÌXx0AlLà•­QAÌ€Jx0AlL “­QAÌ7x0AlLŠ­QAÌ@x0AlL`Œ­QAÌÀöw0AlL`‰­QAÌ@ãw0AlL€ƒ­QAÌ@Éw0AlL­QAÌÀ»w0AlLÀ}­QAÌ«w0AlLÀ{­QAÌ@§w0AlL w­QAÌ@£w0AlLàr­QAÌÀ›w0AlL q­QAÌ€”w0AlL@o­QAÌÀ’w0AlL€j­QAÌÀŠw0AlLh­QÃw0AlL`e­QAÌ€yw0AlL@d­QAÌÀjw0AlL@b­QAÌ@_w0AlL€_­QAÌ@Vw0AlL ]­QAÌ€8w0AlL@W­QAÌÀ,w0AlLàW­QAÌÀw0AlL X­QAÌw0AlLX­QAÌ€öv0AlL`U­QAÌñv0AlL@Q­QAÌ€ív0AlL N­QAÌÀÚv0AlL P­QAÌÎv0AlL O­QAÌÀ¿v0AlL N­QAÌ€°v0AlLàL­QAÌv0AlL€N­QAÌ€wv0AlL B­QAÌ*v0AlL*­QAÌ€Av0AlL0#­QAÌ€8v0AlL@!­QAÌv0AlL,­QAÌ@v0AlL .­QAÌ€ÿu0AlLp0­QAÌÀäu0AlL01­QAÌÀÈu0AlLP.­QAÌ€¨u0AlL€)­QAÌ@¢u0AlL&­QAÌ›u0AlLp&­QAÌ@zu0AlLà"­QAÌÀbu0AlL@­QAÌÀJu0AlLÀ­QAÌÀ?u0AlL ­QAÌÀ*u0AlL­QAÌ@u0AlL@­QAÌ€u0AlL@ ­QAÌÀÿt0AlL ­QAÌët0AlL­QAÌ×t0AlLàþ¬QAÌÈt0AlL û¬QAÌ@Ät0AlLÀö¬QAÌ@¾t0AlLì¬QAÌÀ¥t0AlLàé¬QAÌ€ut0AlLÙ¬QAÌ{t0AlL€Õ¬QAÌVt0AlL€Í¬QAÌ€Ct0AlLÀˬQAÌ@7t0AlL@ȬQAÌÀ-t0AlL@ŬQAÌ$t0AlLàÁ¬QAÌÀt0AlLÀ¿¬QAÌÀt0AlL@»¬QAÌ@t0AlLÀ±¬QAÌt0AlL`¬¬QAÌ€t0AlL ©¬QAÌ€øs0AlLÀ¤¬QAÌÀäs0AlL`¤¬QAÌ€Ãs0AlL0š¬QAÌ@¼s0AlL°š¬QAÌ@¹s0AlL0“¬QAÌ@©s0AlLà’¬QAÌ€ s0AlL¬QAÌÀ–s0AlL Œ¬QAÌÀŒs0AlLàŠ¬QAÌÀs0AlLàˆ¬QAÌus0AlLÀ†¬QAÌgs0AlL`ƒ¬QAÌ€^s0AlLÀ¬QAÌLs0AlL ~¬QAÌÀùr0AlL –¬QAÌÀÈr0AlL ¦¬QAÌÀ’r0AlLÀ³¬QAÌÀ[r0AlL`Á¬QAÌ€r0AlLÖ¬QAÌ@×q0AlLàã¬QAÌ@q0AlL@ø¬QAÌ€6q0AlLà­QAÌ€-q0AlL­QAÌýp0AlL 2­QAÌ@ºp0AlL`I­QAÌ@jp0AlL d­QAÌÀ"p0AlLÀy­QAÌÀp0AlL ‡­QAÌÀèo0AlLà˜­QAÌÀ·o0AlL€©­QAÌÀ>o0AlLÇ­QAÌ€#o0AlL Ò­QAÌ@ýn0AlL á­QAÌÇn0AlLó­QAÌ@'n0AlL ®QAÌ@n0AlL®QAÌ@×m0AlLà®QAÌ@¯m0AlL(®QAÌ€‰m0AlL .®QAÌ€dm0AlLÀ0®QAÌ€+m0AlL@6®QAÌ€ãl0AlL€;®QAÌ@‡l0AlL@E®QAÌ€Wl0AlLN®QAÌÀ+l0AlLW®QAÌÿk0AlL€X®QAÌ€Úk0AlLàY®QAÌÀñj0AlL ‰®QAÌÀÌj0AlL`“®QAÌ  j0AlL0˜®QAÌj0AlL Ÿ®QAÌÀzj0AlL@ª®QAÌÀVj0AlL€´®QAÌÀ@j0AlL ¿®QAÌ@-j0AlL Ë®QAÌ@4j0AlL`Ö®QAÌ@j0AlL â®QAÌ@Nj0AlLÀó®QAÌ@Oj0AlL ¯QAÌ@.j0AlL ¯QAÌøi0AlL€¯QAÌÀËi0AlL€¯QA̾i0AlLÀ¯QAÌ€Ài0AlLà$¯QAÌÀi0AlL`.¯QAÌ@°i0AlL`4¯QAÌÀi0AlLÀN¯QAÌ@–i0AlL€W¯QAÌ€Yi0AlL \¯QAÌÀ3i0AlLÀ]¯QAÌ€i0AlL ^¯QAÌ@Þh0AlLàd¯QAÌ€Ôh0AlLÀr¯QAÌ€Ûh0AlL z¯QAÌÀÇh0AlL€€¯QAÌ@¹h0AlL ˆ¯QAÌÀ¬h0AlLÀ¯QAÌ@©h0AlLÀ–¯QAÌ´h0AlL€ž¯QAÌ€¸h0AlL৯QAÌ@­h0AlLÀ²¯QAÌÀh0AlLÀ»¯QAÌ@„h0AlL Ç¯QAÌ@}h0AlLàÖ¯QAÌ„h0AlLðÚ¯QAÌ€Œh0AlL@à¯QAÌ‘h0AlL ð¯QÄh0AlL@÷¯QAÌph0AlLàý¯QAÌ@Uh0AlL@°QAÌAh0AlL@°QAÌ@6h0AlL °QAÌ@'h0AlL °QAÌh0AlL@'°QAÌÀÖg0AlL€*°QAÌÀ¨g0AlL€0°QAÌ‚g0AlL 6°QAÌÀng0AlL =°QAÌ@dg0AlLJ°QAÌÀAg0AlLÀU°QAÌ@#g0AlL€e°QAÌg0AlL s°QAÌÀüf0AlLà~°QAÌ@öf0AlL@ˆ°QAÌÀÞf0AlL`”°QAÌ€Æf0AlLœ°QAÌ@£f0AlLÀ¦°QAÌÀpf0AlLà­°QAÌRf0AlL °°QAÌÀf0AlL€³°QAÌÀãe0AlL€¹°QA̾e0AlL ¿°QAÌÀe0AlL`°QAÌÀne0AlL ɰQAÌÀ[e0AlL ×°QAÌÀae0AlLÀá°QAÌ€ie0AlL@í°QAÌke0AlLÀö°QAÌ^e0AlL`±QAÌ@Ne0AlLÀ ±QAÌ@Be0AlLà±QAÌÀ=e0AlL )±QAÌ@>e0AlL9±QAÌÀ?e0AlL E±QAÌIe0AlL€O±QAÌRe0AlLÀ]±QAÌXe0AlLÀl±QAÌ€_e0AlL€}±QAÌ€ae0AlL`ˆ±QAÌpe0AlLà”±QAÌ€~e0AlLÀ±QAÌ‘e0AlL઱QAÌ€‡e0AlLÀ³±QAÌÀxe0AlLཱQAÌ€be0AlL@ȱQAÌTe0AlL ѱQAÌ€¶d0AlL Ú±QAÌýc0AlL@æ±QAÌ@Nc0AlL€ó±QAÌ@$b0AlL€²QAÌ@ða0AlLà ²QAÌ€Äa0AlLà²QAÌxa0AlLà²QAÌ@Ia0AlLÀ²QAÌ3a0AlL ²QAÌ@a0AlL@²QAÌ€÷`0AlL ²QAÌ@Ý`0AlLà²QA̽`0AlL ²QAÌ `0AlLà²QAÌ€‡`0AlLà²QAÌÀg`0AlL ²QAÌ€:`0AlL`²QAÌ@`0AlL@²QAÌ@Õ^0AlLàñ±QAÌ@£^0AlL€î±QAÌÀr^0AlL õ±QAÌ€H^0AlL€ÿ±QAÌ9^0AlL@²QAÌ ^0AlL€$²QAÌ@^0AlL '²QAÌÀð]0AlL)²QAÌè]0AlL€'²QAÌÀÒ]0AlLÀ#²QA̵]0AlL ²QAÌÀ­]0AlL`²QAÌÀ•]0AlL@ ²QAÌ€Q]0AlLàù±QAÌ€0]0AlL õ±QAÌÀ]0AlLÀô±QAÌÀõ\0AlL÷±QAÌ@Þ\0AlL€²QAÌ€Ú\0AlLà²QAÌÞ\0AlL@²QAÌê\0AlL ²QAÌó\0AlL@ ²QAÌ@ù\0AlL $²QAÌ]0AlL`0²QAÌ]0AlL@;²QAÌ ]0AlL@F²QAÌ@)]0AlL€I²QAÌF]0AlLàU²QAÌ@;]0AlL@_²QAÌÀ$]0AlL`k²QAÌ@]0AlLàw²QAÌ@]0AlLÀˆ²QAÌ@þ\0AlL@—²QAÌÀ]0AlL £²QAÌ€]0AlL ·²QAÌ]0AlL€Ã²QAÌ]0AlL@Ò²QAÌ]0AlL€à²QAÌó\0AlLàê²QAÌ@Ü\0AlLø²QAÌÀ·\0AlL ü²QAÌ@˜\0AlL ý²QAÌÀ~\0AlL`û²QAÌ€]\0AlL¥²QAÌ\0AlL –²QAÌ€Û[0AlL ˆ²QAÌ@³[0AlL ²QAÌ@‰[0AlL€y²QAÌh[0AlL@r²QAÌ€[0AlL]²QAÌôZ0AlL`i²QAÌ@ÞZ0AlLo²QAÌÉZ0AlL€v²QAÌ€µZ0AlLà~²QAÌÀ Z0AlL ˆ²QAÌÀ’Z0AlL ²QAÌ@vZ0AlLÀ›²QAÌÀXZ0AlL@§²QAÌ@XZ0AlL`°²QAÌ€–Y0AlLá²QAÌÀ©X0AlL³QAÌÀxX0AlL%³QAÌÀHX0AlL€.³QAÌ%X0AlLà3³QAÌ@X0AlLÀ9³QAÌ€ûW0AlL@³QAÌíW0AlLH³QAÌÀ×W0AlL@L³QAÌ€¥W0AlL P³QAÌ€W0AlLW³QAÌÀ`V0AlLY³QAÌIV0AlLpY³QAÌÀþU0AlLàZ³QAÌ@­U0AlL€\³QAÌ@ŠU0AlL`]³QAÌÀéT0AlL f³QAÌ´T0AlL h³QAÌ€ƒT0AlL`h³QAÌ@XT0AlL g³QAÌ@FS0AlLf³QAÌ@S0AlL d³QAÌ@ëR0AlLà_³QAÌ@ÂR0AlL`[³QAÌ@˜R0AlL S³QAÌÀzR0AlL P³QAÌÀbR0AlL€P³QAÌ€L0AlL`œµQAÌL0AlL¢µQAÌ€ïK0AlL@¤µQAÌ@ÓK0AlL€¤µQAÌ€¼K0AlL঵QAÌŸK0AlLવQAÌ@SK0AlL`³µQAÌÀ.K0AlL€·µQAÌ€ÿJ0AlL ͵QAÌçJ0AlL@ÒµQAÌ€ÕJ0AlL€ÚµQAÌàÆJ0AlLãµQAÌ@¿J0AlL`íµQA̱J0AlL@øµQAÌÀ¤J0AlL ¶QAÌ@–J0AlL€¶QAÌŒJ0AlL`¶QAÌ@uJ0AlL€(¶QAÌ€%J0AlL I¶QAÌ@J0AlL`X¶QAÌ€ðI0AlLà\¶QAÌ@àI0AlL`¶QAÌ@ÚI0AlLàa¶QAÌ™I0AlL`l¶QAÌÀ`I0AlL@v¶QAÌ>I0AlL`ƒ¶QAÌ@²H0AlL8§¶QAÌ€”H0AlL@°¶QẢH0AlL ¸¶QAÌ¥H0AlL`À¶QAÌ€ÎH0AlL öQAÌ€ÖH0AlLàͶQAÌÀÐH0AlL`Û¶QAÌÀÁH0AlLàå¶QAÌÀ±H0AlL`ð¶QAÌ€®H0AlL`ø¶QAÌÀ¬H0AlL€·QAÌ@›H0AlLÀ·QAÌ€ŸH0AlL ·QAÌÀ¯H0AlLÀ"·QAÌÀ²H0AlL 1·QAÌ€©H0AlLÀ8·QAÌ@ H0AlL @·QAÌ@ H0AlLC·QAÌ€ H0AlL@N·QAÌ@·H0AlL`V·QAÌ@¼H0AlLÀW·QAÌ@ÕH0AlLÀ^·QAÌI0AlL@d·QAÌkH0AlL€y·QAÌÀI0AlL€©·QAÌ@òH0AlLÀÙ·QAÌQH0AlL ö·QA̺QAÌÀLH0AlLÀ@ºQAÌ€€H0AlL€FºQAÌ@¢H0AlL`LºQAÌ€·H0AlL€RºQAÌÀÉH0AlL YºQAÌÞH0AlL€`ºQAÌ@õH0AlL@jºQAÌ€I0AlL qºQAÌ€,I0AlLÀuºQAÌÀJI0AlL yºQAÌÀdI0AlLÀ|ºQAÌŽI0AlLà„ºQAÌ€ªI0AlL ŠºQAÌ€¼I0AlLÀŽºQAÌ@ÔI0AlL`–ºQAÌ€J0AlL€·ºQAÌ@J0AlL€ÃºQAÌ@$J0AlL`κQAÌ€;J0AlL ÕºQAÌeJ0AlL@ÚºQAÌ€„J0AlLàݺQAÌŸJ0AlLâºQAÌ@¬J0AlL ÜºQAÌ€¬J0AlLÔºQA̺J0AlL@̺QAÌ€ÐJ0AlL ÆºQAÌÀðJ0AlL úQAÌK0AlLÀ¾ºQAÌ@0K0AlL€¿ºQAÌÀMK0AlLÀÁºQAÌ@pK0AlL ĺQAÌÀŽK0AlL ÅºQA̬K0AlLàźQAÌ@ÇK0AlL ƺQAÌÀéK0AlLźQAÌÀÿK0AlL`ºQAÌ@.L0AlL ÀºQAÌ€ML0AlLÀÁºQAÌÀjL0AlLÀºQAÌ€“L0AlL`ºQAÌÀ±L0AlL ¿ºQAÌ@ÎL0AlL`ººQAÌîL0AlL€¹ºQAÌÀ M0AlLÀ½ºQAÌ€%M0AlLúQAÌ@=M0AlLàǺQAÌ@hM0AlL0ͺQA̼M0AlL½ºQAÌ@ÖM0AlL€µºQAÌ€õM0AlL€±ºQAÌÀN0AlL઺QAÌGN0AlL਺QAÌaN0AlL «ºQAÌ€yN0AlL ¸ºQAÌ€†N0AlL ÃºQAÌN0AlL ͺQAÌ€¿N0AlL׺QAÌÙN0AlL@ÙºQAÌ€ðN0AlL ÛºQAÌ@ûN0AlL`çºQAÌO0AlL`óºQAÌ€ O0AlLàÿºQAÌ€O0AlL@ »QAÌ€O0AlL`»QAÌ€6O0AlL€$»QAÌ€ãO0AlL€i»QAÌ€îO0AlL€t»QAÌ@åO0AlL |»QAÌ@ßO0AlL †»QAÌËO0AlL`Ž»QA̵O0AlL@•»QAÌ@—O0AlL€š»QAÌ€yO0AlL€ »QAÌÀfO0AlL@¦»QAÌ€^O0AlL`±»QAÌ€WO0AlL`¼»QAÌ@^O0AlLÀÄ»QAÌ€cO0AlL λQAÌ€`O0AlL`Õ»QAÌÀ6O0AlLÀÞ»QAÌ@O0AlLÀã»QAÌþN0AlLÀæ»QAÌ€èN0AlLì»QAÌÀ­N0AlL€û»QAÌ@’N0AlLà¼QAÌÀzN0AlL ¼QAÌ@mN0AlL€¼QĂN0AlL€¼QA̸N0AlL ¼QAÌÚN0AlLÀ¼QAÌ@ýN0AlL`¼QAÌ€#O0AlL€¼QAÌ@NO0AlL€¼QAÌxO0AlL ¼QAÌ€¯O0AlL` ¼QAÌ@ÛO0AlLà¼QAÌ@P0AlLà¼QAÌ-P0AlL ¼QAÌÀJP0AlL`¼QAÌÀkP0AlL€¼QAÌ@”P0AlL ,¼QA̸P0AlL5¼QAÌ@ÔP0AlLÀ<¼QAÌ€ùP0AlLÀF¼QAÌ&Q0AlLàP¼QAÌ@[Q0AlL`X¼QÄQ0AlL[¼QAÌ€°Q0AlL@Y¼QAÌ€áQ0AlL S¼QAÌ€R0AlL`I¼QAÌÀR0AlLà=¼QAÌ(R0AlLà2¼QAÌÀlR0AlL+¼QAÌ™R0AlL€*¼QAÌ€ÖR0AlL`&¼QAÌÀšS0AlL€-¼QAÌ@àS0AlL€0¼QAÌ1T0AlL 0¼QAÌ@T0AlL 1¼QAÌÏT0AlLÀ0¼QAÌ€U0AlL`0¼QAÌþU0AlL@0¼QAÌ@0V0AlL 0¼QAÌÀV0AlL*¼QAÌ@X0AlL  ¼QAÌ@?X0AlL¼QAÌÀdX0AlL þ»QAÌ€³X0AlL ó»QAÌ€ìX0AlL`ò»QAÌÀ/Y0AlL`ø»QAÌaY0AlL@ú»QAÌ@”Y0AlL`ù»QAÌÞY0AlLàô»QAÌ'Z0AlL ë»QAÌ@nZ0AlL€á»QAÌÀ¸Z0AlLÀÖ»QAÌÀ[0AlL€Í»QAÌ€\[0AlLÆ»QAÌÀ¼[0AlL ¼»QAÌ@\0AlL@µ»QAÌÀQ\0AlLà°»QAÌ€\0AlL€¬»QAÌÀÍ\0AlL©»QAÌþ\0AlL@¦»QAÌ2]0AlLÀ¥»QAÌ@j]0AlL¨»QAÌœ]0AlL`­»QAÌ×]0AlL ®»QAÌ@ ^0AlL@«»QAÌ:^0AlL€¢»QAÌZ^0AlLœ»QAÌ@r^0AlL`”»QAÌ€š^0AlL»QAÌ€×^0AlL@¤»QAÌ@_0AlL€­»QAÌ@6`0AlL@ã»QAÌ@[a0AlLÀ¼QAÌ@b0AlL`9¼QAÌ€ b0AlLQ¼QAÌÀb0AlL P¼QAÌ@ãb0AlL`L¼QAÌ@c0AlL@J¼QAÌIc0AlL H¼QAÌ@Žc0AlL`I¼QAÌÌc0AlL`I¼QAÌ d0AlL@M¼QA̽QAÌ@Æk0AlL@8½QAÌÀèk0AlL 6½QAÌl0AlL 7½QAÌ€.l0AlLà?½QAÌÀDl0AlLðC½QAÌ€nl0AlLÀB½QAÌ@¤l0AlL°8½QAÌ»l0AlL :½QAÌÀÖl0AlL€=½QAÌíl0AlLpA½QAÌ€ m0AlLà;½QAÌ@7m0AlLP8½QAÌÀem0AlL€<½QAÌ€˜m0AlL@B½QAÌÀÇm0AlLàE½QAÌûm0AlLÀI½QAÌÀ2n0AlLL½QAÌqn0AlL P½QAÌ”n0AlLÀT½QAÌÀºn0AlL@]½QAÌ@ìn0AlL`k½QAÌÀOo0AlL “½QAÌ@œo0AlL °½QAÌ@Ëo0AlL`ýQAÌÀëo0AlLà×½QAÌ€p0AlL è½QAÌ@Mp0AlL@ø½QAÌ@‚p0AlL€¾QAÌÀ¹p0AlL ¾QAÌÀÙp0AlLÀ$¾QAÌ€÷p0AlLÀ0¾QAÌq0AlL :¾QAÌ@q0AlL H¾QAÌ3q0AlL@Q¾QAÌÀSq0AlL Z¾QAÌ€nq0AlL@c¾QAÌ@q0AlL k¾QAÌ€¬q0AlL`r¾QAÌÀÃq0AlL`y¾QAÌÀÝq0AlL „¾QAÌ€r0AlL ‘¾QAÌ@r0AlL ¹¾QAÌ8r0AlL Â¾QAÌar0AlL`ǾQAÌ@Œr0AlL Ê¾QAÌÆr0AlLàоQAÌ€ñr0AlL@×¾QAÌs0AlLÀݾQAÌ@8s0AlL@ä¾QAÌ^s0AlL€í¾QAÌ€Šs0AlLô¾QAÌ@§s0AlL`ü¾QAÌÀËs0AlL€¿QAÌàs0AlL€ ¿QAÌ€ès0AlL ¿QAÌÀ t0AlL (¿QAÌ€4t0AlL1¿QAÌ€Mt0AlLà8¿QAÌ€rt0AlL`A¿QAÌÀ…t0AlLH¿QAÌ€”t0AlLS¿QAÌ•t0AlL \¿QAÌ€²t0AlLÀb¿QAÌ€Ät0AlL d¿QAÌ€Ót0AlL@e¿QAÌ@ît0AlLe¿QAÌÀ u0AlLd¿QAÌ€'u0AlLc¿QAÌ@Yu0AlL`k¿QAÌ{u0AlLpr¿QAÌ@•u0AlL`o¿QAÌÉu0AlL`m¿QAÌ@çu0AlL n¿QAÌ v0AlL@s¿QAÌÀ7v0AlLàx¿QAÌÀWv0AlL }¿QAÌ}v0AlL`~¿QAÌŸv0AlL‚¿QAÌÀºv0AlL‡¿QAÌ@æv0AlL€¿QAÌÀw0AlL ¿QAÌÀ6w0AlL@‘¿QAÌ@Æw0AlL`¶¿QAÌåw0AlLÿQAÌþw0AlLÀÍ¿QAÌ!x0AlL€Ö¿QAÌÀCx0AlL Û¿QAÌãx0AlL€å¿QAÌ€y0AlLÀè¿QẢy0AlLÀó¿QAÌ€Éy0AlL ú¿QAÌ@z0AlL ú¿QAÌ@;z0AlL þ¿QAÌÀ…z0AlL ÀQAÌžz0AlLÀÀQAÌÀ®z0AlL #ÀQAÌÀ¥z0AlL@.ÀQAÌ@z0AlLà5ÀQAÌÀ‘z0AlL@;ÀQAÌ€ªz0AlLAÀQAÌ@Ûz0AlL CÀQAÌ{0AlL PÀQAÌ{0AlLÀWÀQAÌ€"{0AlLÀ`ÀQAÌÀ@{0AlLàjÀQAÌ|{0AlL oÀQAÌÀ­{0AlL`sÀQAÌ@â{0AlL@sÀQAÌÀ|0AlL@sÀQAÌ@T|0AlLÀoÀQAÌ@u|0AlLoÀQAÌ€|0AlLÀoÀQAÌ@©|0AlLuÀQAÌ€P}0AlLÀQAÌÀl}0AlLÀÀQAÌ@„}0AlL€šÀQAÌ@}0AlLp ÀQAÌ‘}0AlL£ÀQAÌ@¡}0AlL ¬ÀQAÌÀ§}0AlL€³ÀQAÌ€ª}0AlL ¶ÀQAÌÀ¯}0AlL€ÀÀQAÌÀµ}0AlL@ÌÀQAÌ€É}0AlL ×ÀQAÌá}0AlL`áÀQAÌ~0AlLõÀQAÌ{~0AlLàÁQAÌ€ˆ~0AlL` ÁQAÌÀ¬~0AlL /ÁQAÌê~0AlL >ÁQAÌ@ø~0AlL@ÁQAÌÀ0AlL€FÁQAÌÀ10AlLàNÁQAÌÀ>0AlL€]ÁQAÌ;0AlLÀmÁQAÌ€80AlL zÁQAÌ€>0AlL€…ÁQAÌÀO0AlLàÁQAÌ€s0AlL`œÁQAÌÀ­0AlL §ÁQAÌÀì0AlL ³ÁQAÌ@&€0AlLàºÁQAÌ@,€0AlLÀ¼ÁQAÌ@K€0AlL`ÆÁQAÌÀ`€0AlLxÏÁQAÌÀ‰€0AlL ÛÁQAÌÀ°€0AlL ãÁQAÌ?0AlLÀàÁQAÌ_0AlL`ãÁQAÌ€_0AlLÓÁQĂ0AlL ÏÁQAÌ€¦0AlLÀÍÁQAÌ€Ã0AlL€ÊÁQAÌ€Ý0AlL ÇÁQAÌÀô0AlL@ÄÁQAÌ@ ‚0AlLà¾ÁQAÌ€"‚0AlL·ÁQAÌ€7‚0AlL­ÁQAÌX‚0AlL¤ÁQAÌ€}‚0AlL`œÁQÀ‚0AlLДÁQAÌì‚0AlLà™ÁQAÌ€ƒ0AlLÀ¦ÁQAÌ€<ƒ0AlLЭÁQAÌ@uƒ0AlL «ÁQA̪ƒ0AlL@¦ÁQAÌ@Ôƒ0AlLà¡ÁQAÌ@üƒ0AlL ¢ÁQAÌ€/„0AlL€§ÁQAÌÕ„0AlL­ÁQAÌ@ý„0AlL€³ÁQAÌ€…0AlL ¾ÁQAÌ@@…0AlL@ËÁQAÌ@Z…0AlLÒÁQAÌ„…0AlL`ÛÁQAÌÀ·…0AlL°ßÁQAÌ€†0AlL`ÜÁQAÌ€4†0AlLàÚÁQAÌ€c†0AlLàÖÁQAÌ@ކ0AlLàÕÁQAÌ@”†0AlLÕÁQAÌ€¨†0AlLpÑÁQAÌ¿†0AlL€ÍÁQAÌ@ì†0AlLàÂÁQAÌ€‡0AlL`¸ÁQAÌÀ6‡0AlL ±ÁQAÌ€Z‡0AlL¬ÁQAÌ€‡0AlLÀ£ÁQAÌ€‡0AlL ÁQAÌ€˜‡0AlL sÁQAÌ€§‡0AlL€bÁQA̦‡0AlLÀXÁQAÌ@¡‡0AlLÀIÁQAÌÀ›‡0AlL`<ÁQAÌ@—‡0AlL`)ÁQAÌ@ž‡0AlL@÷ÀQA̾‡0AlLîÀQAÌ€4ˆ0AlLàÕÀQAÌ€Tˆ0AlL ÏÀQAÌ€pˆ0AlL0ÎÀQAÌÀ|ˆ0AlL€ÍÀQAÌ@³ˆ0AlLÀÑÀQAÌÀâˆ0AlL ÙÀQAÌ€"‰0AlL@ÝÀQAÌM‰0AlLÜÀQAÌÀ…‰0AlL`èÀQAÌ€¬‰0AlL ôÀQAÌ€à‰0AlLÀûÀQAÌ Š0AlLÿÀQAÌ€5Š0AlL ÿÀQAÌ€_Š0AlL@øÀQAÌ@•Š0AlLÀïÀQAÌ€rŠ0AlLäÀQAÌ@eŠ0AlL ÙÀQAÌ@`Š0AlLÎÀQAÌ@5Š0AlLÀÆÀQAÌ@Š0AlL€¾ÀQAÌ€ý‰0AlL µÀQAÌ€é‰0AlL ¦ÀQAÌá‰0AlL@žÀQAÌ@Ú‰0AlLÀ‘ÀQAÌÀˉ0AlLà„ÀQAÌ@‰0AlL xÀQAÌÀ¿‰0AlLÀdÀQAÌÀ¿‰0AlL`VÀQAÌ܉0AlLÀGÀQAÌ@þ‰0AlL <ÀQAÌÀŠ0AlL@0ÀQAÌ€=Š0AlL@(ÀQAÌ@yŠ0AlLÀ"ÀQAÌ®Š0AlLÀ!ÀQAÌ€úŠ0AlL€ÀQAÌ;‹0AlL ÀQAÌÀ†‹0AlL`ÀQAÌ@º‹0AlL`ÀQAÌ€ Œ0AlL€ ÀQAÌ@4Œ0AlL@ÀQAÌ@ÔŒ0AlLÀï¿QAÌ%0AlL ì¿QAÌ`0AlL`æ¿QAÌ@“0AlLÀâ¿QAÌ€Ø0AlLÀã¿QAÌ Ž0AlL`æ¿QAÌÀ7Ž0AlLÐè¿QAÌ€XŽ0AlL`æ¿QAÌÆŽ0AlL`¿¿QA ˜†´.AlL@b–QA˜‹ê.AlL@f›QA˜ôÃ.AlL 4›QA˜ŠÄ.AlLà1›QA˜òÄ.AlL`3›QA˜€FÅ.AlL 4›QA˜|Å.AlL5›QA˜¸Å.AlL6›QA˜€Æ.AlL€7›QA˜}Æ.AlL€9›QA˜ÐÆ.AlLÀ8›QA˜€9Ç.AlLà6›QA˜€™Ç.AlL€4›QA˜öÇ.AlLÀ0›QA˜>È.AlL -›QA˜”È.AlL 2›QA˜€ É.AlL€8›QA˜bÉ.AlLÀ>›QA˜€°É.AlL€F›QA˜Ê.AlL€Q›QA˜ŒÊ.AlL`T›QA˜ÛÊ.AlL`V›QA˜€'Ë.AlLÀV›QA˜4Ì.AlLàP›QA˜€ôÌ.AlLO›QA˜ÛÍ.AlLL›QA˜DÎ.AlL`K›QA˜îÎ.AlLàJ›QA˜€{Ï.AlLàH›QA˜Ð.AlLàH›QA˜¦Ð.AlL@N›QA˜€Ñ.AlLàQ›QA˜€WÑ.AlLÀT›QA˜™Ñ.AlL Y›QA˜Ò.AlL€^›QA˜€bÒ.AlL `›QA˜ÌÒ.AlLÀ[›QA˜Ó.AlL€V›QA˜FÓ.AlL@N›QA˜}Ó.AlL E›QA˜‘Ó.AlLàC›QA˜öÓ.AlL€=›QA˜€WÔ.AlL@8›QA˜ÿÔ.AlL 3›QA˜€KÕ.AlL`0›QA˜ÃÕ.AlL /›QA˜MÖ.AlL@0›QA˜€Ö.AlLÀ2›QA˜ìÖ.AlLÀ:›QA˜×.AlL€@›QA˜€~×.AlLàI›QA˜€æ×.AlLR›QA˜<Ø.AlL€W›QA˜yØ.AlLà\›QA˜ªØ.AlL€_›QA˜Ù.AlL `›QA˜€DÙ.AlL `›QA˜‡Ù.AlL€`›QA˜€àÙ.AlL€a›QA˜èÚ.AlL€a›QA˜€8Û.AlL@b›QA˜€˜Û.AlLÀ^›QA˜áÛ.AlL`[›QA˜Ü.AlLàV›QA˜€EÜ.AlLÀP›QA˜€wÜ.AlL J›QA˜¯Ü.AlLàC›QA˜ßÜ.AlL€@›QA˜€Ý.AlL ;›QA˜jÝ.AlLà5›QA˜ÐÝ.AlL@/›QA˜Þ.AlL )›QA˜€KÞ.AlLÀ›QA˜{Þ.AlL`›QA˜ØÞ.AlL`›QA˜€ ß.AlLÀ›QA˜€Rß.AlL ›QA˜™ß.AlL€›QA˜Êß.AlL@›QA˜à.AlL%›QA˜€?à.AlL`(›QA˜¤á.AlLÀÞšQA˜÷á.AlL ÓšQA˜Iâ.AlL€ÉšQA˜€yâ.AlL ÁšQA˜¨â.AlL@·šQA˜Ïâ.AlL@ªšQA˜€ôâ.AlLÀ šQA˜ã.AlL`•šQA˜Fã.AlL ‰šQA˜pã.AlLà~šQA˜€žã.AlLÀošQA˜€Ãã.AlL@gšQA˜Õã.AlLà]šQA˜€½ã.AlL UšQA˜€£ã.AlLàMšQA˜ã.AlL`DšQA˜€oã.AlLÀ7šQA˜hã.AlLà'šQA˜Cã.AlLšQA˜€0ã.AlL€ šQA˜€ã.AlLÀšQA˜€~ã.AlL`šQA˜€ßã.AlL ÿ™QA˜=ä.AlLÀù™QA˜€€ä.AlL€÷™QA˜òä.AlL@ò™QA˜lå.AlLÀì™QA˜€Öå.AlL é™QA˜€kæ.AlL å™QA˜ ç.AlLÀà™QA˜pç.AlLàÛ™QA˜Úç.AlLÀÕ™QA˜€eè.AlL Í™QA˜€àè.AlLÀÅ™QA˜€bé.AlL@¼™QA˜€oé.AlL¼™QA˜ûé.AlL ¹™QA˜€*ê.AlL@·™QA˜Yê.AlL °™QA˜€Vê.AlL€¥™QA˜Jê.AlL`œ™QA˜€aê.AlL@Ž™QA˜€oê.AlLÀ™QA˜€{ê.AlLu™QA˜‹ê.AlL d™QA˜€zê.AlL`V™QA˜qê.AlL@C™QA˜hê.AlL€2™QA˜Aê.AlL ™QA˜Qê.AlL™QA˜Zê.AlL ™QA˜€hê.AlLàô˜QA˜]ê.AlL€á˜QA˜€Eê.AlL Ò˜QA˜€9ê.AlLÀ˜QA˜6ê.AlLà·˜QA˜€0ê.AlL௘QA˜1ê.AlLÀ£˜QA˜€2ê.AlL@š˜QA˜%ê.AlL€‘˜QA˜€ê.AlL …˜QA˜€Øé.AlL€|˜QA˜€´é.AlL t˜QA˜€®é.AlL0l˜QA˜¨é.AlL c˜QA˜•é.AlL@V˜QA˜˜é.AlLàI˜QA˜€£é.AlL`<˜QA˜€£é.AlL .˜QA˜–é.AlL`˜QA˜€yé.AlL˜QA˜€ré.AlL° ˜QA˜né.AlLÀ ˜QA˜é.AlL ˜QA˜lè.AlLàþ—QA˜€ç.AlL ˜QA˜eæ.AlL`ÿ—QA˜€6æ.AlL€ÿ—QA˜€Ãå.AlLÀÿ—QA˜€'å.AlL`˜QA˜‹ä.AlL˜QA˜€ùã.AlLÀþ—QA˜yã.AlLàú—QA˜€%ã.AlLàõ—QA˜€Àâ.AlL€ï—QA˜0â.AlL`æ—QA˜€¼á.AlLé—QA˜€_á.AlLàé—QA˜Ûà.AlL€í—QA˜€ƒà.AlL€î—QA˜€òß.AlL€ò—QA˜ƒß.AlL ÷—QA˜€ÙÞ.AlL ˜QA˜€oÞ.AlL€˜QA˜Þ.AlL ˜QA˜”Ý.AlLà˜QA˜8Ý.AlL€þ—QA˜€õÜ.AlLû—QA˜ƒÜ.AlL@÷—QA˜€1Ü.AlL@ù—QA˜ëÛ.AlL`ü—QA˜nÛ.AlLù—QA˜€Û.AlLÀõ—QA˜ØÚ.AlL€ø—QA˜€oÚ.AlL`ø—QA˜èÙ.AlLàø—QA˜€xÙ.AlLÀö—QA˜7Ù.AlLàõ—QA˜ߨ.AlL õ—QA˜8Ø.AlL ô—QA˜€—×.AlLÀô—QA˜€R×.AlL ò—QA˜ùÖ.AlL ð—QA˜žÖ.AlL í—QA˜¸Õ.AlLÀã—QA˜XÕ.AlL Þ—QA˜@Õ.AlLÙ—QA˜Õ.AlL ×—QA˜ÀÔ.AlLÀË—QA˜wÔ.AlL@—QA˜Ô.AlL`»—QA˜€·Ó.AlLà·—QA˜€?Ó.AlL@¶—QA˜ØÒ.AlL ´—QA˜—Ò.AlL«—QA˜ZÒ.AlL —QA˜€4Ò.AlL€‘—QA˜íÑ.AlL`…—QA˜¼Ñ.AlL |—QA˜€qÑ.AlL`t—QA˜€Ñ.AlLào—QA˜€ºÐ.AlLÀl—QA˜~Ð.AlLÀl—QA˜IÐ.AlLÀk—QA˜Ð.AlL e—QA˜åÏ.AlL`\—QA˜ÐÏ.AlL R—QA˜€–Ï.AlLF—QA˜1Ï.AlL :—QA˜€ÚÎ.AlL€.—QA˜€›Î.AlLà—QA˜xÎ.AlL —QA˜[Î.AlLàý–QA˜€9Î.AlL õ–QA˜þÍ.AlL€è–QA˜ºÍ.AlL`á–QA˜GÍ.AlLàÚ–QA˜€ßÌ.AlL Õ–QA˜UÌ.AlL`Í–QA˜€ÕË.AlL€Ã–QA˜€ºË.AlLÀ½–QA˜€kË.AlL€´–QA˜€Ë.AlLà°–QA˜€¨Ê.AlL€°–QA˜ÓÉ.AlL ©–QA˜…É.AlL¦–QA˜_É.AlLÀ––QA˜$É.AlL€–QA˜€ÈÈ.AlL Š–QA˜€’È.AlL@†–QA˜€5È.AlL }–QA˜ãÇ.AlLàu–QA˜gÇ.AlL€w–QA˜€6Ç.AlLà{–QA˜Ç.AlLÀ€–QA˜€ÐÆ.AlL‰–QA˜ŸÆ.AlL@“–QA˜€aÆ.AlL ”–QA˜Æ.AlL€–QA˜€Æ.AlL@ƒ–QA˜ÁÅ.AlL w–QA˜ˆÅ.AlL q–QA˜QÅ.AlL k–QA˜€Å.AlLÀg–QA˜€¹Ä.AlL€e–QA˜€dÄ.AlL@b–QA˜Ä.AlL@b–QA˜ÅÃ.AlLy–QA˜“Ã.AlL`’–QA˜€Ã.AlL࢖QA˜€Ã.AlLµ–QA˜‹Ã.AlL`È–QA˜‹Ã.AlL°Ë–QA˜Ã.AlLàà–QA˜€†Ã.AlL ð–QA˜‚Ã.AlL ü–QA˜€cÃ.AlL€ —QA˜0Ã.AlLà—QA˜&Ã.AlLà-—QA˜€Ã.AlL`;—QA˜âÂ.AlLàF—QA˜€žÂ.AlL S—QA˜€]Â.AlL`c—QA˜\Â.AlL@t—QA˜€aÂ.AlLÀ —QA˜€XÂ.AlL ¸—QA˜XÂ.AlL°º—QA˜WÂ.AlLÀÀ—QA˜VÂ.AlL`Ç—QA˜€]Â.AlL Ö—QA˜jÂ.AlLä—QA˜€uÂ.AlLû—QA˜aÂ.AlL ˜QA˜EÂ.AlL`˜QA˜,Â.AlL˜QA˜ÎÁ.AlL`D˜QA˜€±Á.AlL`S˜QA˜€­Á.AlL@^˜QA˜€šÁ.AlL@n˜QA˜€Á.AlL ‡˜QA˜€aÁ.AlLÀ–˜QA˜Á.AlLÀ®˜QA˜ÓÀ.AlLɘQA˜­À.AlL@Þ˜QA˜€À.AlLà÷˜QA˜…À.AlL™QA˜}À.AlL`0™QA˜sÀ.AlL`B™QA˜‡À.AlL N™QA˜€«À.AlL€X™QA˜€ÈÀ.AlLÀ`™QA˜€µÀ.AlLàm™QA˜€˜À.AlLÀy™QA˜ŒÀ.AlLà„™QA˜€™À.AlLà™QA˜€•À.AlLà›™QA˜À.AlL «™QA˜„À.AlL€¿™QA˜€tÀ.AlL`×™QA˜€^À.AlL í™QA˜EÀ.AlL`ò™QA˜"À.AlLÿ™QA˜ö¿.AlL šQA˜€ñ¿.AlL`šQA˜€å¿.AlLšQA˜€Ñ¿.AlLàšQA˜À¿.AlLšQA˜y¿.AlL€*šQA˜Y¿.AlL2šQA˜"¿.AlL@:šQA˜å¾.AlL BšQA˜̾.AlL KšQA˜€»¾.AlL°NšQA˜€‘¾.AlL VšQA˜€g¾.AlLð[šQA˜€.¾.AlL€ešQA˜¾.AlL hšQA˜¾.AlL`kšQA˜€Æ½.AlLàršQA˜§½.AlL všQA˜½.AlLàxšQA˜4½.AlL šQA˜ý¼.AlL‚šQA˜€ò¼.AlLPƒšQA˜Ǽ.AlLÀˆšQA˜¼.AlL€šQA˜ë».AlL@ šQA˜Ñ».AlLÀ¦šQA˜„».AlL ªšQA˜$».AlLà­šQA˜к.AlL ­šQA˜vº.AlL ¬šQA˜€ÿ¹.AlL¬šQA˜“¹.AlL ¨šQA˜+¹.AlL ¦šQA˜¸.AlL@¤šQA˜€¸.AlLà šQA˜;¸.AlLÀšQA˜€ß·.AlL˜šQA˜€Š·.AlLÀ•šQA˜K·.AlL@›šQA˜€í¶.AlL€§šQA˜€°¶.AlL°šQA˜€d¶.AlL ³šQA˜üµ.AlL€ºšQA˜€žµ.AlL@ÚQA˜?µ.AlL@ÌšQA˜µ.AlL€ÖšQA˜€Ü´.AlL@åšQA˜†´.AlLÀòšQA˜€µ.AlL`ôšQA˜¥µ.AlL üšQA˜„¶.AlL ›QA˜€Û·.AlL ›QA˜€ü¸.AlL@)›QA˜ê¹.AlL 4›QA˜€@º.AlL ;›QA˜€».AlL`B›QA˜Ò».AlL€J›QA˜-¼.AlLÀM›QA˜€×¼.AlL€U›QA˜€½.AlL Z›QA˜´½.AlL€a›QA˜n¾.AlL c›QA˜€ç¾.AlL@f›QA˜ž¿.AlL€b›QA˜À.AlL ^›QA˜SÀ.AlLÀW›QA˜€´À.AlL V›QA˜ûÀ.AlLT›QA˜€ËÁ.AlL€L›QA˜€YÃ.AlLà:›QA˜œÃ.AlL`7›QA˜ôÃ.AlL 4›QA*h˜€š/AlLF}QA˜€¤ª/AlL€ˆQAJ˜И/AlLÀô‡QA˜5™/AlL`ó‡QA˜€Œ™/AlLàñ‡QA˜€ö™/AlL€ò‡QA˜€zš/AlL@ô‡QA˜›/AlL ì‡QA˜x›/AlL í‡QA˜€Mœ/AlLð‡QA˜‡œ/AlL ç‡QA˜€žœ/AlL@Ù‡QA˜Êœ/AlL ЇQA˜/AlL@ćQA˜€ûœ/AlL`¸‡QA˜0/AlL@­‡QA˜V/AlLÀ¥‡QA˜ž/AlL ˜‡QA˜ƒ/AlL@‹‡QA˜€\/AlL`}‡QA˜{/AlL v‡QA˜Î/AlLt‡QA˜€$ž/AlL|‡QA˜€Ož/AlLào‡QA˜‡ž/AlLÀb‡QA˜€¼ž/AlL`R‡QA˜Ÿ/AlL€R‡QA˜ŠŸ/AlLÀ\‡QA˜íŸ/AlLà^‡QA˜€3 /AlL`X‡QA˜€9 /AlL M‡QA˜Y /AlL`?‡QA˜³ /AlL 9‡QA˜ù /AlL ,‡QA˜¡/AlL€!‡QA˜€I¡/AlL`‡QA˜€¡/AlLà‡QA˜Ø¡/AlL ‡QA˜Ç¢/AlL )‡QA˜€Q£/AlLÀ-‡QA˜±£/AlL`0‡QA˜€ÿ£/AlL 0‡QA˜€n¤/AlLÀ'‡QA˜Ĥ/AlLÀ)‡QA˜€ý¤/AlL/‡QA˜€l¥/AlL@1‡QA˜€Ñ¥/AlLà-‡QA˜¦/AlL€(‡QA˜R¦/AlL`*‡QA˜„¦/AlL2‡QA˜̦/AlL@,‡QA˜€&§/AlLP"‡QA˜€Ê§/AlL€‡QA˜ä§/AlLà‡QA˜€å§/AlL ø†QA˜¨/AlL ð†QA˜€x¨/AlL ؆QA˜€©/AlL»†QA˜6©/AlLಆQA˜„©/AlL ¢†QA˜€°©/AlL›†QA˜€ ª/AlL ˆ†QA˜€1ª/AlL@…†QA˜€¤ª/AlL`n†QA˜Kª/AlL`l†QA˜€©/AlL€b†QA˜€©/AlLÀ[†QA˜í¨/AlL`S†QA˜€Â¨/AlLà@†QA˜4¨/AlLà.†QA˜€Ì§/AlLà!†QA˜€€§/AlL@†QA˜€t§/AlL@ †QA˜p§/AlLp †QA˜Z§/AlL †QA˜€§/AlLÀõ…QA˜€”¦/AlL è…QA˜7¦/AlL@Þ…QA˜€¥/AlLÀÑ…QA˜€¥/AlL`Ê…QA˜¤/AlL`»…QA˜1£/AlL@«…QA˜€©¢/AlLÀ¤…QA˜€)¢/AlL £…QA˜€²¡/AlL …QA˜¡/AlL€–…QA˜€d /AlL0Œ…QA˜ËŸ/AlL …QA˜€‚Ÿ/AlL€—…QA˜LŸ/AlL £…QA˜€.Ÿ/AlL€¤…QA˜€Ÿ/AlL@¥…QA˜äž/AlL@¨…QA˜€“ž/AlL€«…QA˜Cž/AlL௅QA˜€â/AlL ³…QA˜€}/AlL@·…QA˜€ /AlLÀ¹…QA˜€¾œ/AlL ¾…QA˜€vœ/AlLÅ…QA˜œ/AlLÍ…QA˜¼›/AlL@Ý…QA˜€Q›/AlL@ã…QA˜€ ›/AlL€×…QA˜šš/AlLðØ…QA˜N™/AlL€È…QA˜€É˜/AlL Å…QA˜\˜/AlL€Æ…QA˜€á—/AlL€É…QA˜ƒ—/AlL Ï…QA˜€ —/AlL Õ…QA˜˜–/AlLÛ…QA˜€K–/AlLàä…QA˜Í•/AlLå…QA˜€ˆ•/AlLàä…QA˜:•/AlLÀä…QA˜&•/AlLÀÝ…QA˜•/AlLÐØ…QA˜½”/AlLàÚ…QA˜}”/AlL á…QA˜;”/AlL0å…QA˜€œ“/AlL ß…QA˜^“/AlLÐÚ…QA˜)“/AlL`ä…QA˜“/AlL`í…QA˜€È’/AlL ò…QA˜~’/AlLð÷…QA˜€ø‘/AlLàð…QA˜€‘/AlLð…QA˜€S‘/AlL€ñ…QA˜‘/AlLù…QA˜€È/AlL€ü…QA˜‹/AlL †QA˜l/AlL` †QA˜€;/AlL€†QA˜ë/AlL€†QA˜¨/AlLÀ†QA˜O/AlL†QA˜€/AlLà†QA˜€ÝŽ/AlL€†QA˜dŽ/AlL †QA˜Ž/AlL †QA˜¥/AlL€†QA˜€L/AlL †QA˜€öŒ/AlL†QA˜€ Œ/AlLÀ †QA˜aŒ/AlL` †QA˜€.Œ/AlLÀ†QA˜Œ/AlL†QA˜€â‹/AlL †QA˜€ž‹/AlL€†QA˜D‹/AlLP †QA˜ôŠ/AlL †QA˜·Š/AlL`†QA˜‰Š/AlLÀ*†QA˜€}Š/AlLÀ*†QA˜"Š/AlL +†QA˜è‰/AlL '†QA˜€¹‰/AlL@$†QA˜Œ‰/AlL€†QA˜'‰/AlLà†QA˜åˆ/AlL†QA˜€Ìˆ/AlLà#†QA˜§ˆ/AlL -†QA˜€@ˆ/AlL@4†QA˜ˆ/AlL 9†QA˜Û‡/AlLÀ=†QA˜©‡/AlL=†QA˜€F‡/AlL 5†QA˜€0‡/AlL`.†QA˜€‡/AlL $†QA˜€Ù†/AlL°†QA˜§†/AlLP!†QA˜K†/AlL †QA˜Ü…/AlL  †QA˜€˜…/AlLP!†QA˜€k…/AlL †QA˜€:…/AlLІQA˜€Õ„/AlL †QA˜€ƒ„/AlL`†QA˜€\„/AlLà"†QA˜€ „/AlLà#†QA˜€¡ƒ/AlL@†QA˜9ƒ/AlLÀ†QA˜¿‚/AlL@†QA˜]‚/AlLà †QA˜€ë/AlLÀ †QA˜¡/AlL@ †QA˜€M/AlL†QA˜ï€/AlL †QA˜ƒ€/AlL@†QA˜1€/AlL`ý…QA˜È/AlLô…QA˜“/AlL€ó…QA˜[/AlL€ï…QA˜;/AlL`è…QA˜€/AlL@Þ…QA˜ü~/AlL€×…QA˜¼~/AlLÀÓ…QA˜€[~/AlLàÒ…QA˜€~/AlLÀÅ…QA˜€~/AlL@½…QA˜€~/AlL ¶…QA˜€À}/AlL ³…QA˜€„}/AlL€®…QA˜v}/AlLà§…QA˜S}/AlLТ…QA˜}/AlL ¤…QA˜}/AlL «…QA˜€)}/AlL²…QA˜}/AlL¹…QA˜€Þ|/AlLà·…QA˜¯|/AlL@²…QA˜€‚|/AlL «…QA˜€6|/AlL £…QA˜:{/AlLà…QA˜z/AlL`…QA˜Az/AlL|…QA˜€z/AlLÀs…QA˜€úy/AlL g…QA˜áy/AlL_…QA˜ˆy/AlLÀ[…QA˜éx/AlLàW…QA˜½x/AlL@^…QA˜\x/AlL€d…QA˜ÿw/AlL`d…QA˜Äw/AlLpi…QA˜Žw/AlL€h…QA˜€&w/AlLÀb…QA˜€àv/AlL ^…QA˜¹v/AlL@V…QA˜yv/AlL J…QA˜€Yv/AlLà>…QA˜v/AlL€8…QA˜ìu/AlL*…QA˜ªu/AlL€-…QA˜€gu/AlL/…QA˜€ôt/AlL '…QA˜Õt/AlLÀ!…QA˜Çt/AlLà…QA˜€•t/AlL …QA˜€ft/AlL€ …QA˜€&t/AlL …QA˜Ãs/AlL@ú„QA˜os/AlL€ù„QA˜€(s/AlL`ö„QA˜îr/AlL`ð„QA˜€ªr/AlL@ñ„QA˜€rr/AlL€ñ„QA˜€Lr/AlL ì„QA˜€,r/AlLç„QA˜ r/AlL`í„QA˜€æq/AlLPó„QA˜€¸q/AlLðñ„QA˜€q/AlL ÷„QA˜Pq/AlLpú„QA˜€ïp/AlL õ„QA˜€’p/AlL`ï„QA˜€.p/AlLÀê„QA˜€èo/AlL è„QA˜«o/AlL`é„QA˜‹o/AlL è„QA˜€po/AlLè„QA˜Vo/AlLâ„QA˜io/AlLàØ„QA˜€Œo/AlL Ó„QA˜€Žo/AlLpÌ„QA˜.o/AlLÐÍ„QA˜în/AlL@Ë„QA˜€¨n/AlL Ê„QA˜‰n/AlL Ä„QA˜€Sn/AlL ÄQA˜€>n/AlL ½„QA˜€.n/AlL@¶„QA˜€*n/AlL`¯„QA˜€Hn/AlL ¨„QA˜=n/AlLÀ¢„QA˜n/AlL`p„QA˜)n/AlLf„QA˜€Fn/AlL`\„QA˜€pn/AlLR„QA˜€‰n/AlL D„QA˜¸n/AlL:„QA˜Ån/AlL€-„QA˜ån/AlLÀ"„QA˜€ún/AlL „QA˜ñn/AlL „QA˜€Æn/AlL„QA˜€©n/AlL€üƒQA˜€Žn/AlL€÷ƒQA˜qn/AlLàñƒQA˜dn/AlL êƒQA˜Cn/AlLãƒQA˜En/AlL`؃QA˜Kn/AlLà̓QA˜€Bn/AlLÀÃQA˜€Pn/AlLÀ¸ƒQA˜€rn/AlLÀ®ƒQA˜€ªn/AlLÀqƒQA˜Ón/AlLÀmƒQA˜€o/AlLà`ƒQA˜#o/AlL€QƒQA˜€Eo/AlLBƒQA˜€^o/AlL`2ƒQA˜o/AlL 'ƒQA˜’o/AlL ƒQA˜€žo/AlL€ƒQA˜¹o/AlL  ƒQA˜€îo/AlL ƒQA˜ p/AlLý‚QA˜/p/AlL€õ‚QA˜[p/AlL ç‚QA˜rp/AlLÀÛ‚QA˜wp/AlL€Î‚QA˜Yp/AlL`ÂQA˜€p/AlLà¡‚QA˜p/AlL@™‚QA˜Op/AlL@‚QA˜€jp/AlL x‚QA˜€–p/AlL c‚QA˜€ºp/AlL X‚QA˜Ðp/AlL€P‚QA˜€×p/AlLM‚QA˜€Üp/AlLK‚QA˜ûp/AlL€;‚QA˜€ q/AlL@.‚QA˜€Hq/AlL@‚QA˜eq/AlL ‚QA˜€xq/AlLÀ ‚QA˜€~q/AlL@‚QA˜‡q/AlLøQA˜€žq/AlLàêQA˜€¥q/AlL`áQA˜€®q/AlL`ÕQA˜Ûq/AlLÀÉQA˜€r/AlL¾QA˜€!r/AlLÀ³QA˜;r/AlL`ªQA˜€br/AlL@¤QA˜›r/AlLàœQA˜€Ær/AlL€–QA˜ár/AlLàŠQA˜s/AlL ‚QA˜9s/AlLÀyQA˜©s/AlL eQA˜€Ès/AlL _QA˜€t/AlL@RQA˜€et/AlL JQA˜«t/AlL DQA˜€àt/AlL`>QA˜€u/AlLà9QA˜€0u/AlL€4QA˜fu/AlL`.QA˜‹u/AlL€)QA˜€¼u/AlL $QA˜€þu/AlLàQA˜{v/AlL`QA˜v/AlL  QA˜Ív/AlLQA˜€w/AlL ú€QA˜€6w/AlL`õ€QA˜^w/AlLàî€QA˜€‚w/AlLàê€QA˜¶w/AlL å€QA˜€x/AlL`߀QA˜sx/AlL Ù€QA˜Õx/AlLÔ€QA˜€@y/AlLÁ€QA˜˜y/AlL€·€QA˜€Êy/AlL`¯€QA˜€éy/AlL ª€QA˜z/AlL ž€QA˜€Qz/AlL ’€QA˜€tz/AlL Š€QA˜€‚z/AlL`‚€QA˜nz/AlL@|€QA˜€1z/AlL x€QA˜€ðy/AlL`s€QA˜y/AlL`m€QA˜€Cy/AlLÀg€QA˜îx/AlLb€QA˜ix/AlL@W€QA˜€Ûw/AlLN€QA˜}w/AlL F€QA˜,w/AlL ?€QA˜âv/AlL€8€QA˜€†v/AlL 2€QA˜'v/AlLà,€QA˜Âu/AlL '€QA˜€lu/AlL`!€QA˜u/AlL`€QA˜åt/AlL €QA˜€~t/AlL@ €QA˜€¸s/AlL üQA˜€Ns/AlL`ðQA˜€ór/AlL æQA˜€«r/AlL ÖQA˜€vr/AlLàÉQA˜€@r/AlL ÁQA˜r/AlL ¸QA˜áq/AlL °QA˜±q/AlL@©QA˜}q/AlLÀ¡QA˜/q/AlL@QA˜õp/AlLÀ˜QA˜¹p/AlL˜QA˜€~p/AlL@•QA˜Lp/AlLÀ‘QA˜€p/AlLÀŒQA˜ïo/AlL`‡QA˜¯o/AlLÀ‚QA˜Ro/AlLÀ€QA˜€o/AlL`QA˜€¶n/AlL`~QA˜€^n/AlL }QA˜n/AlL@{QA˜³m/AlL wQA˜‹m/AlL@oQA˜€9m/AlLfQA˜€m/AlL`SQA˜€¹l/AlL@KQA˜€3l/AlLÀFQA˜€¢k/AlL@FQA˜€2k/AlL€FQA˜€Åj/AlL DQA˜>j/AlL EQA˜æi/AlL`BQA˜œi/AlL@;QA˜€ji/AlL€.QA˜ i/AlLÀ#QA˜h/AlL@QA˜'h/AlLQA˜±g/AlLÀQA˜€Cg/AlL@ QA˜€¶f/AlL€QA˜Wf/AlLQA˜æe/AlLQA˜€e/AlLàý~QA˜Ae/AlLÀ÷~QA˜&e/AlLà÷~QA˜€e/AlLø~QA˜=d/AlLà QA˜ãc/AlL°QA˜€Ðc/AlLÀQA˜€kc/AlL QA˜ób/AlL QA˜¿b/AlL`QA˜%b/AlL QA˜€×a/AlL€QA˜€Œa/AlL€ QA˜€a/AlL #QA˜€Ä`/AlLà(QA˜Z`/AlLÀ,QA˜ï_/AlL 1QA˜€©_/AlL@6QA˜‘_/AlL`>QA˜Ž_/AlL`KQA˜€_/AlL`VQA˜g_/AlL _QA˜U_/AlLàhQA˜€,_/AlL€tQA˜€_/AlL€}QA˜€ö^/AlL †QA˜€Ÿ^/AlL ˆQA˜e^/AlL`‡QA˜(^/AlL ˆQA˜Æ]/AlLà‰QA˜U]/AlL`…QA˜€]/AlL`}QA˜€Ò\/AlL vQA˜\/AlLeQA˜€†\/AlL€[QA˜‘\/AlL`WQA˜€“\/AlL`SQA˜©\/AlL KQA˜€²\/AlL`@QA˜€­\/AlL`8QA˜€ª\/AlL/QA˜€¢\/AlL 'QA˜€v\/AlLQA˜€b\/AlL`QA˜L\/AlLÀø~QA˜€:\/AlL€ô~QA˜ð[/AlL@ë~QA˜·[/AlL å~QA˜ˆ[/AlL€à~QA˜€d[/AlLàÙ~QA˜U[/AlL@Ó~QA˜F[/AlL@Ì~QA˜€I[/AlLÀÈ~QA˜œ[/AlLà²~QA˜€Ç[/AlLà¬~QA˜€›[/AlL€¡~QA˜N[/AlLÀ˜~QA˜€øZ/AlL ˆ~QA˜ÑZ/AlLÀ|~QA˜€µZ/AlLt~QA˜€ÝZ/AlLÀe~QA˜€ÔZ/AlL`]~QA˜€–Z/AlL€Q~QA˜}Z/AlLÀH~QA˜€}Z/AlL =~QA˜€jZ/AlL€4~QA˜#Z/AlL@*~QA˜€Z/AlL #~QA˜€þY/AlL ~QA˜êY/AlL ~QA˜ÍY/AlL ~QA˜€¬Y/AlLà ~QA˜€¬Y/AlLÀ~QA˜€¼Y/AlL õ}QA˜ÃY/AlLàë}QA˜ÁY/AlLå}QA˜€ªY/AlLÛ}QA˜ªY/AlL€Í}QA˜ÉY/AlL Ç}QA˜€ÛY/AlL€¿}QA˜íY/AlL`¹}QA˜€ëY/AlL ®}QA˜×Y/AlL  }QA˜€½Y/AlLÀ—}QA˜€©Y/AlLÀ‹}QA˜€œY/AlLà}QA˜€˜Y/AlL€u}QA˜€‚Y/AlL W}QA˜ÝX/AlLÀT}QA˜eX/AlLX}QA˜€çW/AlLà_}QA˜€™W/AlLÀe}QA˜%W/AlL m}QA˜€ËV/AlL`r}QA˜:V/AlLàp}QA˜¾U/AlL€n}QA˜€9U/AlL j}QA˜€ÎT/AlL g}QA˜€T/AlL `}QA˜GT/AlL`Z}QA˜€óS/AlL Q}QA˜€¼S/AlL K}QA˜€ŒS/AlL G}QA˜€DS/AlLF}QAhŸLŸS/Aþõ‚õH}QA@ö8ï0S/Aî¿F R}QA°FïáR/A¦MM@b}QA -SoèR/A‚”P`h}QAh¨ÖþÜR/AÊJn}QA°Ðn½R/AñNt}QAè£ïR/AÊJ€z}QAøƒ?_{R/AñN€}QAh¨Öþ9R/AÊJ@„}QAX¿ÏòQ/A\cH ‰}QAV¯^ŸQ/A¦MMÀŽ}QAˆq¼þAQ/AÊJ`“}QA講ÎQ/A¢ÕA ™}QAØþSîP/Azè3›}QAÀúýþ·P/A¢ÕA ¡}QAøŒÉ^sP/AñN¬}QAV¯^QP/AÊJÀ¯}QAh¨Öþ2P/A¦MMÀ¶}QAx‘ŽnP/AÊJà¾}QA0•^ P/A¦MM Ï}QAx‘ŽÎP/A¢ÕAÚ}QAÀˆ^!P/A€E`å}QAØÃãþ?P/A‚”Pó}QA@ÿÂÎ>P/A‚”P`~QA°Ðn6P/Aî¿F~QA°ÐÎ(P/A¦MM@~QA@ÿÂnP/A€E@~QA@ÿÂnéO/AñNÀ%~QAxˆÏåO/AñNà,~QA@ÿÂÎÌO/A€E`5~QAPèz^›O/A¦MMÀ>~QA 6ÝîgO/Aî¿F`D~QAvî3O/A¦MM G~QA(?gnJN/A¦MM@R~QAàÌm^1N/AÊJÀW~QAˆq¼þóM/Aî¿Fà`~QAÐãµnÛM/A‚”P`h~QAÀˆ^“M/AyC p~QAðµ%îM/A€EÀr~QAvŽºL/AñNÀu~QAPñ^!L/A€E@~~QA˜ZtŽ´K/Aî¿Fàˆ~QA€+—©—K/A,¿ •~QAàÌm^K/A¦MM`™~QAÐì?î6K/Aî¿F¨~QA˜cþmóJ/AÊJ ­~QA˜cþJ/A‚”P³~QA˜cþm%J/Aî¿FÀ¹~QA€šîñI/A€E Ç~QAH×íÃI/A‚”P@Ñ~QAhÃ]I/A42@ÀÜ~QAhÃ]OI/A\cHàß~QA`Ú¼áH/A¢ÕA á~QA˜cþsH/A¢ÕAÀã~QAØõÉH/A¦MMÀæ~QAˆ•mÀG/AÊJ€ò~QAƒÐýªG/A\cHàÿ~QA˜cþmžG/A€E  QAŸÝýG/AÊJàQAƒÐ]9G/AñN #QAð¾¯m[F/AyC€5QA¸5nm»E/AÊJFQA8:3]sE/A42@ÀTQA¸5níE/A¢ÕAàbQAèÞý§D/A¢ÕA qQAøÇ9mLD/A\cH ~QA(Q{D/AyC€QA0Zm²C/Aî¿FÀ™QAxÌþ\/C/AÊJ@¬QA0ZíÜB/AyC`¾QAÀ>ølsB/A42@ ÕQA‘)B/AñN æQAøÇ9mÌA/AyC`öQAÈ&ýWA/A8ªK €QAèç ]Ë@/A€EÀ€QA u8@/A€E`€QAH#댳?/A42@À$€QAº{\/?/A\cHà'€QA˜žn\á>/A€EÀ*€QA0cŒª>/AyC`6€QAàhìO>/AÊJ E€QA°gT\ñ=/A8ªK T€QAX £\‚=/A¢ÕAÀ[€QAš©Œþ‰k¸7/Aî¿FÀa€QA(•u[Y7/A¢ÕAàb€QA¸pÞ[÷6/A42@ e€QAÐ9Äû6/A¢ÕAj€QAÌû6/A42@€n€QA¸yhû§5/A€EÀr€QApok«4/AyC t€QAXGk04/A8ªK€q€QAìa‹È3/Aî¿F`l€QA¸‚òZg3/A42@c€QApùê 3/AyC`V€QAhÊÓÜ2/AúØ›N€QA¸‚òZË2/AXë<L€QA ¹ [Ÿ2/A8ªK D€QA ¹ [m2/A¢ÕA 9€QAõëj+2/A8ªK ,€QAø¾Zã1/AÆŽ>@!€QA¸‚òZ®1/Aî¿F€QAÕ[s1/A\cH €QAõëê#1/A\cH@€QAHgåúç0/Aî¿F`üQA0žÿú»0/A¦MM`ñQA0žÿZ‘0/A€E€äQA Â–Z¥0/A\cH ÙQAø¾Z¸0/A8ªKÍQAØKØZš0/A€E`ÅQAõëj€0/A8ªK`ÂQA¸‚òZg0/A¢ÕA`¿QAè4j>0/A8ªK ÀQAPpoúÑ//AÊJ`ÃQAHgåZo//Aî¿FÀQA°¢Äjô./A8ªK½QA°¢Äê{./A¢ÕA ¹QAç-ú ./A42@à³QA@AêP-/A8ªK­QAˆ;Zñ,/AyC ¨QAx" j~,/A8ªK ¤QAØTbú ,/Aî¿F ¢QA0°Z³+/AÊJ QA@AŠW+/A8ªK@›QApBßY +/A¢ÕA`—QA°ïH¸¦*/A’Ÿ‹”QAÐ}¾‰—*/AÆŽ>` QAà]ìYu*/AyC ¨QAÐ}¾éP*/AÊJ`³QA`b±‰-*/AyC ¼QAÐ}¾iû)/AXë<@ÊQA0°ZÈ)/A8ªK@ÛQA°´Øi«)/A¦MMÀæQA(Ð剀)/A¢ÕAúQA Ë úG)/A42@ €QA@™Ëé)/AÆŽ>À€QAÀ”Z×(/AÆŽ> &€QAЉ¨(/AÆŽ>À5€QAø&Òùv(/Aî¿F B€QA`b±‰X(/Aî¿FÀQ€QA˜ëòi*(/AXë< _€QA`b±éô'/A\cH@m€QA8¹Y¹'/AÆŽ> ~€QA€+— ‚'/ALé©€QA°´Øék'/AXë<`™€QA08–W'/AN¥[¡€QAð·YM'/A€E`¥€QAàfvY'/AyC±€QApBßùç&/AyC ¸€QA˜ô|i”&/AÊJ¾€QAOYa&/Aî¿FÀ€QA8¹Y+&/A8ªK`€QAP‚ƒYå%/A\cH@Å€QApKiYÃ%/A8ªK€É€QA¸½b‰•%/A\cH Ö€QA˜ô|ii%/AÆŽ>@Ù€QA`k;é%%/A¢ÕAÀÛ€QA8¹YÝ$/AyC Ü€QAȦYr$/AÆŽ>àÜ€QA(Ùoi1$/A42@ Ý€QAȦYë#/A¢ÕAÚ€QAІHi¬#/AÆŽ> Ö€QA ýih#/AÊJ€Ò€QAH¢U‰+#/AÊJÀÏ€QAІHiÈ"/AyC Ì€QA9æX‘"/AXë< Ë€QA¨Ý4YF"/AXë<€È€QA¨Ý4Y "/A42@€Æ€QA¨Ý4ùÅ!/A8ªK Ä€QA ý‰}!/AXë<Ä€QA ÌX/!/AÊJ@Ä€QAH«ßhã /A\cH Æ€QAhtÅè /A8ªK È€QA ‘hR /AXë<@Ê€QAØÒˆ /A€E€Ì€QAØÒˆ«/AyC€Í€QAx]}Xe/A42@ Í€QAH´ih/Aî¿FЀQAhtňä/Aî¿F`Ô€QA&cø­/A8ªK Ø€QABpX‚/A¢ÕA`߀QA ‘ˆY/Aî¿F€ã€QA8˱X)/A€E ç€QA8˱XÛ/AêG;í€QA€=«h&/AÆŽ>€ÿ€QABpXû/AXë<`QAx]}ø«/A\cHÿ€QAÀÏvˆw/A\cHÿ€QA°ïHø5/A8ªK€QA@Ô;X!/AyCà QA hØ/AyC€QAx]}ø/A42@à#QAèXU/AÆŽ>€/QAؘ\ˆ1/AÆŽ>@9QA0ô h./AÊJ€BQAи.X[/AXë<TQA Vø_/A42@ ]QAÀÏvhw/AÊJ mQA@Ô;X“/A\cHÀxQAX!X¿/AyC „QAX”—Xë/Aî¿F`ŒQAؘ\è1/AÊJ–QAèxŠX]/A42@à›QAX”—X€/AÆŽ>@¡QAи.X›/AXë<À¦QA€=«ˆÉ/A8ªK`ªQAh}OˆÇ/Aî¿FÀ±QAÀr ƒ¹/AȹÅn»QA0ëƒh¯/AÆŽ>`ÀQAèð•<œ/Aè>±ìÀQA˜Ä/AlLàÆQA˜€/AlL`ÑQA˜</AlL ÔQA˜€g/AlL€×QA˜/AlLàÙQA˜€Ô/AlL ÞQA˜ù/AlLßQA˜€/AlL`ßQA˜€>/AlLÞQA˜€P/AlL€ÜQA˜y/AlL ÖQA˜€¦/AlL@ËQA˜Æ/AlL¿QA˜€Ò/AlLà½QA˜€/AlL¸QA˜€7/AlL¶QA˜€l/AlL¹QA˜€ª/AlL€ÀQA˜û/AlLÀÇQA˜€/ /AlLÀÇQA˜€z /AlL ÆQA˜€½ /AlL@ÅQA˜€÷ /AlLÀÅQA˜€H!/AlL ÁQA˜€!/AlLà¿QA˜€«!/AlLà¸QA˜€Ö!/AlLà¾QA˜€"/AlL ÆQA˜€^"/AlL`ÒQA˜€Œ"/AlLÀÚQA˜€Ã"/AlL ãQA˜€#/AlL ìQA˜€>#/AlLÀøQA˜€X#/AlL@‚QA˜€t#/AlL`‚QA˜€’#/AlL`‚QA˜€Ÿ#/AlL`$‚QA˜¯#/AlLà3‚QA˜Á#/AlL@>‚QA˜€Ì#/AlLÀM‚QA˜€ü#/AlL@`‚QA˜€G$/AlLÀn‚QA˜€Ü$/AlLà|‚QA˜X%/AlLÀ‰‚QA˜Á%/AlL—‚QA˜5&/AlL€£‚QA˜˜&/AlLÀ­‚QA˜€è&/AlL ´‚QA˜€5'/AlLགQA˜€A'/AlL@Æ‚QA˜€T'/AlL€Ï‚QA˜€g'/AlLØ‚QA˜€¾'/AlLâ‚QA˜€ù'/AlLå‚QA˜€?(/AlL è‚QA˜‹(/AlL ê‚QA˜Ê(/AlLàé‚QA˜€()/AlLÀì‚QA˜)/AlL`õ‚QA˜)/AlL ƒQA˜€&)/AlL` ƒQA˜€)/AlLàƒQA˜€Ö(/AlLÀƒQA˜€›(/AlLƒQA˜^(/AlL@ƒQA˜€ (/AlL`ƒQA˜Ý'/AlLàƒQA˜€‚'/AlL@ƒQA˜€,'/AlLÀƒQA˜€’&/AlL@ƒQA˜S&/AlL ƒQA˜&/AlL@ƒQA˜€~%/AlLàƒQA˜ %/AlL#ƒQA˜€»$/AlL@(ƒQA˜€1$/AlL`1ƒQA˜€ƒ#/AlLÀ:ƒQA˜€ï"/AlL€CƒQA˜€}"/AlLGƒQA˜€ö!/AlLàNƒQA˜€z!/AlLàTƒQA˜€þ /AlL ^ƒQA˜€Œ /AlL dƒQA˜€ý/AlL@kƒQA˜€Ÿ/AlL rƒQA˜€*/AlL€yƒQA˜€Á/AlL`ƒQA˜€C/AlL ‹ƒQA˜€à/AlLÀ“ƒQA˜€‡/AlLÀšƒQA˜€4/AlLࢃQA˜€ä/AlL§ƒQA˜€—/AlL«ƒQA˜D/AlL@°ƒQA˜€ /AlL`¯ƒQA˜€v/AlLృQA˜€E/AlL@¶ƒQA˜€/AlL`»ƒQA˜õ/AlL ÁƒQA˜€Ã/AlL ÆƒQA˜€š/AlL`˃QA˜€Ì/AlL`ÔƒQA˜û/AlLÀÖƒQA˜4/AlL@ÙƒQA˜€\/AlL ÜƒQA˜€±/AlL ÛƒQA˜û/AlL€ÕƒQA˜€2/AlL ÏƒQA˜€r/AlLÀЃQA˜€³/AlL€ÒƒQA˜€%/AlLÀ׃QA˜€¬/AlLÀÚƒQA˜1/AlL`߃QA˜›/AlLàãƒQA˜€Á/AlLÀäƒQA˜€/AlLçƒQA˜€‘/AlLéƒQA˜û/AlLàêƒQA˜€ˆ /AlL íƒQA˜ã /AlL@ñƒQA˜€ë /AlL0õƒQA˜€ô /AlL`ùƒQA˜€C!/AlL „QA˜€!/AlL`„QA˜€¾!/AlLà÷ƒQA˜"/AlL`ôƒQA˜€“"/AlL ñƒQA˜€×"/AlLÀíƒQA˜€R#/AlLêƒQA˜€Ç#/AlLÀéƒQA˜5$/AlL€ëƒQA˜©$/AlL€ìƒQA˜û$/AlL€íƒQA˜€›%/AlLàñƒQA˜€&/AlL€ïƒQA˜€´&/AlLÀòƒQA˜]'/AlLÀóƒQA˜€(/AlLûƒQA˜€®(/AlLÀ„QA˜€&)/AlL „QA˜€¤)/AlL  „QA˜€ */AlLà„QA˜€f*/AlL€„QA˜€Ö*/AlL@%„QA˜€¨+/AlLÀ+„QA˜€ê+/AlLà+„QA˜€›,/AlL`/„QA˜€ -/AlL 0„QA˜0./AlL 2„QA˜€ä./AlL@4„QA˜€t//AlL@5„QA˜ñ//AlLà5„QA˜€k0/AlLà2„QA˜€ð0/AlL@6„QA˜€m1/AlLà8„QA˜ž1/AlL€8„QA˜Ø1/AlL€8„QA˜€ø1/AlLà?„QA˜€æ1/AlLG„QA˜€Ø1/AlL@Q„QA˜€ø1/AlL€V„QA˜2/AlL@[„QA˜€2/AlL ]„QA˜€62/AlL`d„QA˜€„2/AlL l„QA˜€ç2/AlLÀs„QA˜€=3/AlL€w„QA˜€–3/AlL€{„QA˜€ã3/AlL@„QA˜€+4/AlL`ˆ„QA˜€^4/AlLàŽ„QA˜€›4/AlLà”„QA˜€à4/AlL›„QA˜5/AlL€ž„QA˜W5/AlLª„QA˜€e5/AlLÀ¬„QA˜€/5/AlL಄QA˜ÿ4/AlL@»„QA˜€Å4/AlL€Ä„QA˜•4/AlL€Ï„QA˜€`4/AlL€×„QA˜€)4/AlLàß„QA˜ó3/AlLÀê„QA˜Å3/AlL õ„QA˜Ÿ3/AlL …QA˜€€3/AlL …QA˜€a3/AlL  …QA˜€/3/AlLÀ…QA˜€3/AlL !…QA˜%3/AlLà-…QA˜€.3/AlL@@…QA˜*3/AlL@P…QA˜€.3/AlL ]…QA˜€?3/AlL`n…QA˜R3/AlL |…QA˜€t3/AlLÀ…QA˜€ƒ3/AlLÀ…QA˜€3/AlLÀ«…QA˜€¨3/AlLº…QA˜€µ3/AlL€É…QA˜Á3/AlL Ö…QA˜€À3/AlLàÞ…QA˜€Î3/AlL ì…QA˜ò3/AlL@õ…QA˜(4/AlLõ…QA˜˜4/AlL ö…QA˜€5/AlL ú…QA˜€z5/AlL ÿ…QA˜Ñ5/AlL †QA˜6/AlL€†QA˜€i6/AlL`†QA˜€Ò6/AlL€†QA˜"7/AlLÀ†QA˜¥7/AlL †QA˜28/AlL †QA˜t8/AlL`†QA˜@9/AlL †QA˜»9/AlL#†QA˜€:/AlL`&†QA˜€T:/AlL )†QA˜€Î:/AlLÀ+†QA˜€?;/AlL`*†QA˜€=/AlL`)†QA˜ž=/AlL +†QA˜€ý=/AlL@.†QA˜€p>/AlLð/†QA˜}>/AlL 0†QA˜€¶>/AlL *†QA˜€ô>/AlL '†QA˜f?/AlLÀ%†QA˜Ó?/AlL€$†QA˜K@/AlLÀ"†QA˜­@/AlL †QA˜€'A/AlL †QA˜¨A/AlL€†QA˜ôA/AlL †QA˜½B/AlLÀ †QA˜€÷B/AlL`†QA˜.C/AlL€†QA˜€˜C/AlLÀ†QA˜ÅC/AlL`†QA˜D/AlL@#†QA˜€D/AlL€)†QA˜#D/AlLà/†QA˜HD/AlL€6†QA˜nD/AlL=†QA˜ÓD/AlLA†QA˜€E/AlLD†QA˜SE/AlL`I†QA˜’E/AlL`K†QA˜€âE/AlLàN†QA˜€6F/AlLàS†QA˜€UF/AlL Y†QA˜ F/AlL`]†QA˜€´F/AlL€c†QA˜ÂF/AlLÀk†QA˜€G/AlLÀr†QA˜pG/AlLu†QA˜€‘G/AlL`y†QA˜’G/AlL †QA˜ÇG/AlL`‰†QA˜H/AlL ‘†QA˜QH/AlL ™†QA˜çH/AlL€¢†QA˜ I/AlL€™†QA˜€II/AlLÀ—†QA˜„I/AlL—†QA˜€ÍI/AlL–†QA˜¿J/AlL’†QA˜QK/AlL@“†QA˜€ÈK/AlL€•†QA˜öK/AlL›†QA˜L/AlL€§†QA˜L/AlL ²†QA˜€#L/AlL€¸†QA˜€YL/AlL`ĆQA˜€vL/AlL ΆQA˜€ôL/AlLÖ†QA˜AM/AlL Ò†QA˜vM/AlL ͆QA˜€M/AlLàdžQA˜€îM/AlL Ã†QA˜bN/AlL€Á†QA˜€ŸN/AlL Ã†QA˜€ôN/AlL ƆQA˜€oO/AlLàȆQA˜€tP/AlL@͆QA˜€ÃP/AlLàφQA˜Q/AlL@Õ†QA˜€oQ/AlL`Õ†QA˜ÄQ/AlL Õ†QA˜ÆQ/AlL@à†QA˜€R/AlLàî†QA˜€RR/AlLó†QA˜€§R/AlL€î†QA˜×R/AlL è†QA˜(S/AlLÀã†QA˜€7S/AlLã†QA˜€S/AlL á†QA˜ãS/AlLàà†QA˜T/AlL€ë†QA˜ëS/AlL`ó†QA˜€ÓS/AlL ü†QA˜€ÄS/AlL`‡QA˜êS/AlL@‡QA˜€%T/AlL€‡QA˜€uT/AlL€‡QA˜ºT/AlL€‡QA˜îT/AlL0‡QA˜€4U/AlL@‡QA˜€‚U/AlL‡QA˜¹U/AlL€ ‡QA˜÷U/AlLÀ‡QA˜€V/AlL`‡QA˜€pV/AlL`"‡QA˜€¯V/AlLP%‡QA˜ÁV/AlL &‡QA˜þV/AlL€+‡QA˜ W/AlL 1‡QA˜W/AlL;‡QA˜€9W/AlL C‡QA˜»W/AlL€I‡QA˜€-X/AlL@M‡QA˜«X/AlL O‡QA˜áX/AlL S‡QA˜€+Y/AlLÀZ‡QA˜€kY/AlL c‡QA˜€¸Y/AlL h‡QA˜Z/AlL@g‡QA˜PZ/AlLà_‡QA˜€–Z/AlL`Y‡QA˜ôZ/AlL@Z‡QA˜B[/AlLà_‡QA˜ƒ[/AlLb‡QA˜É[/AlL _‡QA˜ \/AlL Z‡QA˜/\/AlL J‡QA˜€a\/AlLC‡QA˜²\/AlLà>‡QA˜]/AlLà<‡QA˜€R]/AlL<‡QA˜Ê]/AlLÀ3‡QA˜€@^/AlLÀ(‡QA˜€t^/AlL`&‡QA˜€Ò^/AlL'‡QA˜'_/AlL@*‡QA˜•_/AlL€3‡QA˜`/AlLà=‡QA˜†`/AlLÀ7‡QA˜š`/AlL1‡QA˜€ä`/AlL`4‡QA˜€&a/AlL@<‡QA˜€[a/AlL 7‡QA˜¦a/AlL€$‡QA˜€Ôa/AlL‡QA˜b/AlL ‡QA˜€!b/AlL€&‡QA˜7b/AlL@/‡QA˜tb/AlL`8‡QA˜€¾b/AlLÀ?‡QA˜ûb/AlLpB‡QA˜c/AlLàC‡QA˜€Wc/AlL`@‡QA˜€—c/AlL 6‡QA˜Íc/AlL0‡QA˜€&d/AlL@1‡QA˜€xd/AlL,‡QA˜€³d/AlL€&‡QA˜)e/AlL@)‡QA˜€¹e/AlLÀ)‡QA˜•e/AlL ‡QA˜€Že/AlL‡QA˜€Ðe/AlL@‡QA˜€1f/AlL ‡QA˜€…f/AlLà‡QA˜€Ãf/AlL ‡QA˜g/AlL` ‡QA˜€9g/AlLà‡QA˜qg/AlL`‡QA˜€Êg/AlL"‡QA˜€üg/AlL ‡QA˜h/AlL@‡QA˜þg/AlLÀ ‡QA˜€h/AlL`û†QA˜€*h/AlLPø†QA˜4h/AlL÷†QA˜€^h/AlL@ñ†QA˜€¯h/AlL ì†QA˜€öh/AlL€ç†QA˜4i/AlL@é†QA˜‘i/AlLàì†QA˜Ài/AlL€ç†QA˜ïi/AlLàÞ†QA˜€j/AlL`׆QA˜€Hj/AlL€Õ†QA˜j/AlLà܆QA˜¾j/AlL ߆QA˜áj/AlLàÙ†QA˜k/AlL@ΆQA˜€'k/AlL`džQA˜€Zk/AlL¿†QA˜¯k/AlL€Â†QA˜€ïk/AlLàņQA˜€'l/AlLàɆQA˜Sl/AlLφQA˜®l/AlL`Õ†QA˜€õl/AlL È†QA˜*m/AlLàņQA˜rm/AlL@ƆQA˜€Ým/AlL`ΆQA˜€/n/AlL Ì†QA˜yn/AlL@ʆQA˜€¡n/AlL ƆQA˜€o/AlLÀ†QA˜†o/AlL@ĆQA˜€ào/AlLÀÀ†QA˜Zp/AlL྆QA˜€¬p/AlL¿†QA˜ãp/AlLƆQA˜q/AlLÀdžQA˜~q/AlLà†QA˜Œq/AlL@ɆQA˜€r/AlLàΆQA˜Qr/AlL@Ô†QA˜r/AlLàÞ†QA˜„/AlL@9‡QA˜…„/AlL <‡QA˜€Æ„/AlLE‡QA˜6…/AlL€G‡QA˜€~…/AlLàJ‡QA˜Ë…/AlL@N‡QA˜€j†/AlL Q‡QA˜å†/AlLQ‡QA˜ô†/AlLD‡QA˜dž/AlL@4‡QA˜€ø†/AlLÀ.‡QA˜@‡/AlL`6‡QA˜g‡/AlL@@‡QA˜€£‡/AlL`K‡QA˜€Ð‡/AlLÀM‡QA˜$ˆ/AlLàG‡QA˜Kˆ/AlL€M‡QA˜€ˆ/AlLÀ\‡QA˜˜ˆ/AlL0_‡QA˜¿ˆ/AlLh‡QA˜€‰/AlL@z‡QA˜”‰/AlL€‚‡QA˜€®‰/AlL€Œ‡QA˜€Ö‰/AlL ‘‡QA˜GŠ/AlL@‡QA˜€„Š/AlL@ˆ‡QA˜€½Š/AlL ‡QA˜âŠ/AlLà“‡QA˜‹/AlLÀ™‡QA˜ ‹/AlL`§‡QA˜C‹/AlLଇQA˜¢‹/AlLÀ¯‡QA˜#Œ/AlLಇQA˜€yŒ/AlL`³‡QA˜`/AlL ±‡QA˜€Ÿ/AlLേQA˜é/AlL »‡QA˜%Ž/AlL`¹‡QA˜PŽ/AlL`¬‡QA˜€†Ž/AlL ¬‡QA˜€˜Ž/AlL ³‡QA˜ÊŽ/AlL࿇QA˜€/AlL À‡QA˜‘/AlL€Ã‡QA˜l/AlL º‡QA˜>/AlL¬‡QA˜·/AlL@±‡QA˜ý/AlL`¹‡QA˜:/AlLÇQA˜$/AlL`ʇQA˜€î/AlL`̇QA˜”/AlL؇QA˜€×/AlL ä‡QA˜€Z/AlLÀã‡QA˜Ô/AlLå‡QA˜S‘/AlL`â‡QA˜§‘/AlL`æ‡QA˜€¾‘/AlL`ö‡QA˜D’/AlLàþ‡QA˜l’/AlL`î‡QA˜£’/AlLÀè‡QA˜“/AlL`ë‡QA˜€f“/AlL€à‡QA˜Ô“/AlLàæ‡QA˜€à“/AlLðç‡QA˜€s”/AlL ô‡QA˜•/AlL û‡QA˜€t•/AlLàü‡QA˜€ç•/AlL`û‡QA˜€L–/AlL@ô‡QA˜€|–/AlL ÷‡QA˜À–/AlLÀˆQA˜€ö–/AlLˆQA˜^—/AlL€ˆQA˜ç—/AlL  ˆQA˜z˜/AlLàù‡QA˜И/AlLÀô‡QA”ÌÀü0AlLè!€QAÌÀøY0AlL(LQAÏÀÅÌÀP0AlL ˜ŽQAÌÀþS0AlL –QAÌ@ T0AlLà’QAÌ€^T0AlL0}QAÌ€T0AlLppQAÌÀóW0AlL`ŽŒQAÌ7Y0AlL@:ŒQAÌ}Y0AlL&ŒQAÌÀŠY0AlL@ ŒQAÌ Y0AlL`ŒQAÌ€ÁY0AlLàŒQAÌàY0AlL°ŒQAÌ@äY0AlL@ŒQAÌ€éY0AlL€ŒQAÌ õY0AlL8û‹QAÌÀøY0AlL˜í‹QAÌ@èY0AlLÀâ‹QAÌ€ÏY0AlLÓ‹QAÌÀ²Y0AlL Æ‹QAÌ™Y0AlL๋QAÌ@~Y0AlLÀ©‹QAÌ@nY0AlLàž‹QAÌÀ#X0AlLÀ‹QAÌ X0AlLøŠQAÌ@–W0AlL`ÁŠQAÌÀ8W0AlL ¡ŠQAÌÀV0AlL`ŠQAÌaV0AlL@GŠQAÌ@'V0AlLà2ŠQAÌÀæU0AlL ŠQAÌ­U0AlL@ŠQAÌ@U0AlL`õ‰QAÌ~U0AlL@ï‰QAÌ@zU0AlLî‰QAÌ[U0AlL`ã‰QAÌ@+U0AlL`ωQAÌÀU0AlLཉQAÌ@ÜT0AlL`©‰QAÌÀËT0AlL@Ÿ‰QAÌÀ²T0AlL ‰QAÌ@¢T0AlL@€‰QAÌT0AlLàn‰QAÌ€yT0AlLÀR‰QAÌ@hT0AlLà@‰QAÌ@VT0AlLÀ1‰QAÌ8T0AlL ‰QAÌT0AlLàþˆQAÌ@ T0AlLÀîˆQAÌ€T0AlL°ìˆQAÌÀëS0AlLàáˆQAÌÀÈS0AlLÀÖˆQAÌ€‡S0AlL€ÆˆQAÌ€WS0AlL ¸ˆQAÌÀ)S0AlLÀ«ˆQAÌS0AlL@žˆQAÌïR0AlL€’ˆQAÌ@ßR0AlL€†ˆQAÌ€ÇR0AlL wˆQAÌÀ¨R0AlL`nˆQAÌ@€R0AlL`jˆQAÌzR0AlL€dˆQAÌÀ‹R0AlLÀ^ˆQA̬R0AlLTˆQAÌ@ÁR0AlLLˆQAÌ€ÝR0AlLà9ˆQAÌ€ÇR0AlL2ˆQAÌÀ˜R0AlL ,ˆQAÌÀdR0AlL€'ˆQAÌ€7R0AlL $ˆQAÌÿQ0AlLà ˆQAÌÀ»Q0AlL@ˆQAÌÀ³Q0AlL€ˆQAÌ1J0AlLG‰QAÌ+J0AlLH‰QAÌJ0AlLH‰QAÌJ0AlL@I‰QAÌäI0AlLÀD‰QAÌÀÉI0AlL@‰QAÌÀ¿I0AlL@>‰QAÌ€I0AlL€T‰QAÌ_F0AlL /ˆQAÌ G0AlLˆQAÌ@úE0AlLàœ‡QAÌ@ñE0AlLPš‡QAÌÀÏC0AlLćQAÌÀÑC0AlLÀŇQAÌÀÑD0AlLÀ¼ˆQAÌÀWE0AlL ©ˆQAÌ€¦E0AlL ÅˆQAÌçD0AlL ãˆQAÌ@@E0AlL ?‰QAÌ#E0AlL€F‰QAÌüD0AlL L‰QAÌÛD0AlL T‰QAÌÀ¾D0AlL`^‰QAÌ€«D0AlL j‰QAÌ@žD0AlLÀu‰QAÌÀºC0AlLd‰QAÌ€³C0AlLV‰QAÌ@˜C0AlL H‰QAÌ@‚C0AlL€<‰QAÌdC0AlL`.‰QAÌGC0AlL€‰QAÌÀ%C0AlL ‰QAÌÀÿB0AlL€öˆQAÌ@ØB0AlLÀäˆQAÌ@ÂB0AlL€ÖˆQAÌ€§B0AlL ÂˆQAÌÀŒB0AlLൈQAÌ@kB0AlL@©ˆQAÌ0AlL€ˆQAÌ€Æ>0AlL`è‡QA̦>0AlL@;‡QAÌ€<0AlL€z‡QAÌÙ;0AlL@{‡QAÌ€ß;0AlLà$†QAÌ€Ô;0AlL€†QAÌÓ;0AlL †QAÌ€µ;0AlL@ø…QAÌ€;0AlL`ø…QAÌ€;0AlL€ô…QAÌ€ñ70AlL°«…QAÌ€â30AlLàK…QAÌ 40AlL0H…QAÌÀá50AlL@…QAÌ50AlL@Ó„QAÌÙ50AlL ²„QAÌ€?30AlL@ÖƒQAÌØ20AlLàèƒQAÌ€ž20AlL`éƒQAÌ„20AlL€íƒQAÌÀX20AlL@ñƒQAÌ320AlL ôƒQAÌÀ 20AlLàöƒQAÌà10AlL`øƒQAÌ»10AlL€ûƒQAÌ@~10AlLýƒQAÌ€_10AlL@ÿƒQAÌ€-10AlL „QAÌÀË00AlL@„QAÌ@œ00AlL„QAÌÀA00AlL  „QAÌ@*00AlL „QAÌå/0AlL€ÿƒQAÌÀ 00AlLàîƒQAÌ@Ç/0AlLèáƒQAÌX*0AlL@Þ‚QAÌ@R*0AlL è‚QAÌL*0AlL ó‚QAÌ€I*0AlL ƒQAÌN*0AlL ƒQAÌÀc*0AlL .ƒQAÌ@*0AlLÀ?ƒQAÌ©*0AlLMƒQAÌ@×*0AlLà^ƒQAÌÀó*0AlL€oƒQAÌ€ +0AlL@|ƒQAÌ@"+0AlLˆƒQAÌÀO+0AlLà“ƒQAÌÀv+0AlL ¢ƒQAÌ´+0AlL¸ƒQAÌ€Ó+0AlL̓QAÌÞ+0AlLÚƒQAÌÀý+0AlL æƒQAÌ@,0AlL€ïƒQAÌÀ+,0AlL€ùƒQAÌr,0AlL@„QAÌ“,0AlL  „QA̾,0AlL€„QAÌÕ,0AlLÀ'„QAÌ€ -0AlL.„QAÌ2-0AlLà0„QAÌÀf-0AlLà6„QAÌ€Æ*0AlLàt„QAÌÀ_+0AlL ß„QAÌÀ{*0AlLˆó„QAÌ@*0AlL`²„QAÌÀ§)0AlL`½„QAÌ€)0AlL€œ„QAÌ?(0AlL ¿„QAÌÀÍ'0AlL@Y„QAÌÊ'0AlLV„QAÌ€?'0AlL ÞƒQAÌ€¢(0AlLÀ¯ƒQAÌ€Y'0AlL€ƒQAÌ@{)0AlL@ê‚QAÌÀÿ(0AlL€ƒ‚QAÌ„&0AlL༂QAÌ@P$0AlL0ÑQAÌ€?$0AlL ÊQAÌ@$0AlLà¥QAÌ@²#0AlLÀQAÌ€:#0AlL0/QAÌ€'#0AlL@ QAÌÀó"0AlLó€QAÌ@Ü"0AlLâ€QAÌ€Î"0AlL€Ù€QAÌ@é"0AlL Ì€QAÌä"0AlLÌ€QAÌ@—"0AlLàÀQAÌ€A"0AlLÀž€QAÌ€/"0AlLà˜€QAÌÀ"0AlL“€QAÌ"0AlLÀŽ€QAÌú!0AlL`Š€QAÌÀÚ!0AlLÀ†€QA̳!0AlLÀz€QAÌÀ‘!0AlL`o€QAÌÀu!0AlLàc€QAÌÀR!0AlL X€QAÌÀ>!0AlLT€QAÌ@"!0AlLK€QAÌ€!0AlL B€QAÌÀã 0AlL€5€QAÌÀÒ 0AlL *€QAÌ`µ 0AlLè!€QAÌ_ 0AlLà"€QAÌÀ\0AlL`%€QAÌÖ0AlL@5€QAÌÀ%0AlL9€QAÌ€à0AlLà.€QAÌ€¾0AlLà)€QAÌ@•0AlLà>€QAÌ@M0AlLb€QAÌ0AlLt€QAÌ€0AlL €€QAÌ@ß0AlLà«€QAÌ€þ0AlL஀QAÌ@¦0AlL Ù€QAÌ@H0AlLÀø€QAÌÀã0AlLàÚ€QAÌÀ”0AlL`΀QAÌ@o0AlL`Ä€QAÌ@40AlL@´€QAÌ€0AlL`§€QAÌ€é0AlL ›€QAÌ€y0AlL€x€QAÌì0AlL`€QAÌ@{0AlL•€QAÌÞ0AlL€²€QAÌÀµ0AlLཀQAÌ€ý0AlL Þ€QAÌ€K0AlL€ô€QAÌÀ¿0AlL þ€QAÌÀ]0AlL@QAÌ@ô0AlL€QAÌ@‚0AlL %QAÌ€0AlL 3QAÌ€Å0AlLÀ@QAÌÀü0AlL@TQAÌ€0AlLÀdQAÌ`0AlLqQAÌ 0AlL€†QAÌ0AlL@˜QAÌ 0AlL §QAÌÀ0AlL°QAÌ€-0AlLÎQAÌG0AlLPÏQAÌÀr0AlLÀ‚QAÌ@v0AlL ‚QAÌ@ˆ0AlL@'‚QAÌ@Ÿ0AlLà2‚QAÌÀ°0AlL@<‚QAÌÅ0AlLJ‚QAÌ€Ó0AlLÀW‚QAÌ@å0AlL c‚QAÌ€ô0AlL`x‚QAÌ@0AlL ˆ‚QAÌ€R0AlL`›‚QAÌÀs0AlLÀ¥‚QẢ0AlL€°‚QAÌÀ“0AlL@¼‚QAÌŸ0AlLÇ‚QAÌÀ¨0AlL€Ö‚QAÌ€Ë0AlLÀæ‚QAÌò0AlLÀ÷‚QAÌ€0AlL€ƒQAÌÀ/0AlL@ƒQAÌ€D0AlLàƒQAÌ[0AlL`)ƒQAÌ@„0AlL 4ƒQAÌ€ª0AlL`;ƒQAÌ@Ñ0AlLÀDƒQAÌÀò0AlLRƒQAÌÀ0AlL``ƒQAÌ€0AlLÀlƒQAÌ@20AlL@yƒQAÌÀL0AlL`ŠƒQAÌÀ‡0AlL¿ƒQAôŽùŽ0A6îE>΃QA’äç'0AÀÀ$/L„QALO7^%0A wZP„QA4Ká-0AÚïU„QAÏm~0AyC„¬„QA´¾'¤Æ0A´ ~yª„QA(¸7­Õ0AÄô5qÙ„QAÜ€®ÛÃ0Aƽ‹?…QAxEÏ;˜0Aƽ‹?…QAÜ<´ý¼0ARj§`7…QAÜ·öÅ0AN™?3…QA {œwc0A ]6è…QAD4™Ÿµ0Aêï`…QA|èaB0AÈòèa…QAÌÀ#0AlLk…QAÌ€Þ0AlL0…QAÌÀÃ0AlL0Š…QAÌ ¢0AlL  …QAÌ@¹0AlL€¥…QAÌÏ0AlLÀ¦…QAÌÀë0AlL`¨…QAÌ@ý0AlL¤…QAÌ0AlL@ž…QAÌ@0AlL@ …QAÌ@0AlL«…QAÌ@0AlLÀµ…QAÌ 0AlL ½…QAÌ€À0AlLÈ…QAÌ@Ü0AlL Ð…QAÌÀø0AlL`Ú…QAÌ@ 0AlL ç…QAÌ8 0AlLàð…QAÌÀU 0AlL@ý…QAÌ@w 0AlLà†QAÌ@˜ 0AlL†QAÌÍ 0AlL#†QAÌ@ä 0AlL€4†QAÌÀ!0AlL`B†QAÌ€&!0AlLàQ†QAÌl!0AlLàg†QAÌÀŠ!0AlL@t†QAÌÀ»!0AlL@„†QAÌ€Ý!0AlL`Œ†QAÌ"0AlL “†QAÌ>"0AlL`˜†QAÌÀs"0AlL¡†QAÌ€¢"0AlL ¦†QAÌ#0AlL@²†QAÌÀk#0AlLÀ¼†QAÌÀô#0AlL Ç†QAÌP$0AlL@φQAÌ“$0AlLÔ†QAÌÌ$0AlLðÙ†QAÌ€Õ$0AlLàÛ†QAÌÀÜ$0AlLÀÛ†QAÌÀF%0AlL Û†QAÌÀº%0AlL Û†QAÌÀR&0AlL Û†QA4vhæ7'0Aæ™Û†QAÌ€J'0AlLàæ†QAÌj'0AlLû†QAÌÊ'0AlL°8‡QA8ÌvcŽ(0AÒCå©2‡QA8ÌvcŽ(0Az 1P‡QATQ/ª(0AŽ'úNb‡QA àŸ(0AÌ Rã·QAü}¥±ˆ(0AFùú8·QAÌ€i(0AlL`Ò‡QAÌÀx'0AlLð‡QAÄZ[†M&0Aà’”ÖˆQA(¸7Mú&0AG]‘yˆQAÌ€º&0AlL€uˆQAÌÀ%0AlL°aˆQAÌH%0AlL€]ˆQAÌ€«!0AlL@š‰QAÌ"0AlL ¶‰QAÌ"0AlL@·‰QAÌ@F#0AlL å‰QAÌàƒ"0AlL8UŠQAÌÀ‹"0AlL WŠQAÌ€}$0AlL0èŠQAÌ€!&0AlL b‹QAÌÀ'&0AlLØa‹QAÌ€'0AlLP5‹QA̬'0AlL€1‹QAÌt,0AlL™ŠQAÌÀ˜,0AlLàŠQAÌ@³-0AlL ýŠQAÌs-0AlLà‹QAÌ@-/0AlLpË‹QAÌ€00AlL`2ŒQAÌ€´10AlLïŒQAÌ€¤40AlLÀ|ŒQA̳40AlLpzŒQAÌ@Ð40AlL uŒQAÌ€î40AlL°qŒQAÌ€ó40AlLqŒQAÌù40AlL€rŒQAÌ550AlL ƒŒQAÌÀä50AlL@ÈŒQAÌÀÅ50AlL ÌŒQAÌ50AlLÀØŒQAÌ@“50AlLxÚŒQAÌÀ—50AlL ÜŒQAÌ@¦50AlLÀáŒQAÌ€¡50AlL@ëŒQAÌ@–50AlL ðŒQAÌÀ}50AlL@õŒQAÌÀe50AlLà÷ŒQAÌT50AlL@þŒQAÌ@Q50AlL QAÌ_50AlL`QAÌ@u50AlLQAÌB60AlL KQAÌÀV60AlLQQAÌ@„60AlL`WQAÌÆ60AlL@]QAÌÀ 70AlL@cQAÌ@H70AlL mQAÌp70AlL wQAÌÀ“70AlL€QAÌ@¼70AlL ŠQAÌÀï70AlLQAÌÀ#80AlL •QAÌÀ’80AlL ›QAÌ@ 90AlL€ŸQAÌ@U90AlLà¨QAÌ€ƒ90AlL€³QAÌ€Ã90AlL`ÃQAÌ€ò90AlLàÖQAÌÀ:0AlLààQAÌ@ :0AlL êQAÌ:0AlL@òQAÌ€ :0AlL@ûQAÌÀ:0AlL ŽQAÌ€:0AlLŽQAÌ@#:0AlL˜ ŽQAÌ€+:0AlL` ŽQAÌ ¬>0AlLàŽQAÌÀí?0AlLÀÿQAÌÀ @0AlLŽQAÌ@D@0AlLÀÿQAÌ€o@0AlLÀŽQAÌí@0AlL€ ŽQAÌ&A0AlL@ŽQAÌ@cA0AlLÐŽQAÌÀlA0AlL ŽQAÌ@¶A0AlL (ŽQAÌ€ìD0AlLÀŽŽQAÌ óD0AlL°ŽQAÌâJ0AlL(LQAÌ€O0AlL`½ŽQAÌÀÊO0AlLÀ¯ŽQAÌÀP0AlL ˜ŽQAÌ@’F0AlL`‰QAÌ@AG0AlL@ ‰QAÌÀ G0AlLà4‰QAÌG0AlLK‰QAÌ@’F0AlL`‰QAÌ€ÀE0AlLœ‰QAÌÀaF0AlLà‰QAÌšF0AlL›‰QAÌ@²F0AlL°¥‰QAÌ ÕF0AlLhµ‰QAÌyF0AlL Â‰QAÌ€EF0AlL °‰QAÌ€F0AlL ¥‰QAÌ@òE0AlL ¡‰QAÌ€ÀE0AlLœ‰QAhõZLíxQA˜K/AlL@DxQA˜€-K/AlL NxQA˜.K/AlLàTxQA˜€K/AlLÀ`xQA˜€K/AlLàgxQA˜€1K/AlL`oxQA˜€4K/AlL xxQA˜€ëJ/AlL`€xQA˜€°J/AlL`‚xQAX. bJ/A"¯uxQAˆ•MkJ/A42@€žxQA81©]mJ/A2º4à¨xQA`Ú¼íhJ/AÆŽ>à´xQAH×MKJ/A42@ÃxQAð¾¯í7J/AXë< ÏxQA¸,äMJ/AêG; ÜxQA`Ú¼íïI/AêG; äxQA€£¢í©I/A2º4 ïxQA81©ÝžI/A2º4øxQA(Q{í]I/AXë< yQAèÞÝI/A ]6€yQAXúŽ]ÄH/AyC`yQA`Ú¼ívH/A42@+yQA¨g]FH/AêG;À6yQAŒZ]H/A2º4à@yQAØþSíÑG/A¢ÕA`OyQA8:3]G/A2º4àXyQA(Q{íHG/A42@€^yQA‘MñF/AXë<dyQA¨gÝ·F/A42@€fyQAȜ݊F/AXë< kyQAXÝfF/AêG;àuyQA uí1F/AêG;€yQA qM]ùE/A¢ÕA ŒyQAX]˜E/A¢ÕA œyQAhãFí|E/AÄ3à¡yQA¨gÝ>E/AêG;­yQA€¬,M÷D/AêG;àµyQAÈ&ÝÂD/AêG;€ÁyQA°U@ÝyD/AÄ3ÑyQA0ZM+D/AÆŽ>`àyQAHÖf D/AÄô5MêyQA8:3ÝD/AÆŽ>àìyQAhãFíàC/AêG; üyQA0ZMÏC/AÄ3À zQA€¬,M·C/AXë<€zQAX}‘C/A ]6À)zQA‘MC/A|¤9 8zQA€¬,íZC/AÄ3ÀJzQA uí*C/AÄ3àQzQA‘M¿B/A¢ÕA`WzQAèç ]KB/A|¤9 XzQA˜°‚öA/AÂ80Ó\zQAÀ>øL³A/A¢ÕAàbzQA ~œìwA/AÄ3@ozQAØÞL_A/A|¤9 xzQAxÌþ\/A/AêG;…zQA@C½\ä@/AêG;àzQAèð•\˜@/A¢ÕAÀ“zQAxÕˆÜQ@/AXë<€˜zQA0Zí9@/A¢ÕA¢zQAhìÐìJ@/A¢ÕAÀ«zQAÐ'°\W@/AêG;àµzQA0ZM@/AÆŽ>À½zQAÀG‚ìê?/AXë<€ÀzQAH#ëì¬?/A ]6€ÃzQA@C½\d?/A ]6€ËzQAèð•\X?/A2º4àØzQAH#ëìz?/AÄ3@çzQAº{\h?/A|¤9àîzQAxÕˆ\?/A|¤9@ôzQAš©L¾>/AVs1€õzQAØÞì‚>/AêG;ÀözQAº{\„>/A8ÿzQAxÕˆ\ >/A2º4` {QAÀG‚L«>/AÄ3@{QAàhì³>/A¢ÕA ${QAš©ì¯>/AXë<,{QAš©ì¯>/A42@€6{QA@C½\Ï>/AXë< ?{QAX £Ü³>/A8 I{QAøÐÃì|>/AXë< C{QA°^Ê\G>/A8 A{QAˆµ¶L>/A42@ B{QAX £\É=/AXë< G{QAàhL‰=/A2º4 O{QA˜žn\!=/A ]6€[{QAš©ì!=/A2º4`e{QAøÐÃì'=/A2º4p{QAàhì=/AXë< {{QAX £\í Ž{QA0cL#=/A|¤9à–{QA˜žn\a=/AêG;€¡{QA°gT\ª=/A8ÀÀ{QAº{ܧ=/A|¤9 Í{QAº{\‹=/AXë< ×{QA°gT\q=/AÄ3@ß{QAX £Üž=/A8àç{QA˜žnÜè=/A8àï{QA˜žnÜá=/A42@ õ{QAš©ìï=/A¢ÕAÀ|QAÀG‚LÝ=/AêG; |QAøÐÃì¼=/A8|QAèð•\˜=/AÄ3`|QA@C½Üy=/A¢ÕAÀ#|QA ƒa\T=/AyC ,|QA˜žn\E=/A2º4`5|QAÀG‚L9=/A ]6@=|QAÀG‚ì*=/AXë<€H|QA ƒa|"=/A|¤9@T|QAhõZL=/A|¤9À_|QAX £Ü=/AêG;@k|QA ~œì=/A|¤9 u|QAhìÐL.=/AêG; „|QAØKغS=/A¶XË“|QA0llð=/A8ªK |QAÐ0:\O>/AÊJ`“|QAˆ¾@ŒÃ>/A¦MMÀž|QAرϟÝ>/A¾s I¢|QA¨‡&ì(?/A€E€¬|QAÐ'°ük?/A\cH ¹|QAP,uìä?/Aî¿FÈ|QAÐ'°\@/AñN€Ï|QAš©l>@/A8ªK Ô|QAˆµ¶Œv@/AyC Ø|QAàhìÏ@/A\cH Þ|QAøÐÃlA/A¦MM`á|QAº{\=A/AyC ä|QA ~œlA/Aî¿Fè|QAhìÐlÃA/A\cHÀè|QAš©l7B/AÆŽ>@é|QAš©ì“B/A8ªK`ê|QAÈ&ýóB/A¢ÕAàê|QA0Z‡C/A\cH@í|QA8:3ýD/A42@ ê|QAXý‰D/A¦MM ç|QA°U@]E/AÊJ`ã|QAøÇ9mLE/AyC€Ý|QA@LG¼sE/AFŠyTÚ|QA€¬,m©E/AÊJÖ|QAÈ&]F/A42@Ë|QA€¬,m…F/A¢ÕAÂ|QAØþSm`/AlLê}QA˜€j`/AlLñ}QA˜©`/AlL€è}QA˜Û`/AlLàÝ}QA˜€ó`/AlLàÖ}QA˜a/AlL Î}QA˜€a/AlLÀÄ}QA˜,a/AlL ¹}QA˜Sa/AlL`°}QA˜€ƒa/AlL@¥}QA˜€ºa/AlL •}QA˜€âa/AlLà†}QA˜€öa/AlL@y}QA˜€%b/AlL i}QA˜€ab/AlL€[}QA#Ì@$y0AlL€zÄQAÌ@^›0AlLPÏQA]Ì€>0AlLÀÏQAÌ€00AlLÏQAÌ€/0AlLÀÏQAÌ€=0AlLPýÎQAÌÀ;0AlLÀúÎQAÌÀ@0AlLpùÎQAÌH0AlL ùÎQAÌ€f0AlLûÎQAÌ@x0AlLûÎQAÌ0AlLøÎQAÌ@š0AlLPïÎQAÌÀŸ0AlL ëÎQAÌ¥0AlLðåÎQAÌÀ³0AlL°äÎQA̬0AlL€àÎQAÌ@‹0AlL€ÚÎQAÌÀ…0AlLÙÎQAÌ€€0AlLàÖÎQAÌ@‚0AlL`ÒÎQAÌÀ{0AlLÀËÎQAÌÀ‚0AlL ÊÎQAÌ€0AlLÀÃÎQAÌ@”0AlL ½ÎQA̦0AlLÀ­ÎQAÌ€´0AlLp©ÎQAÌ€Ç0AlL`¨ÎQAÌ@Ô0AlLà©ÎQAÌ€ö0AlLÀ®ÎQAÌ€‘0AlLð³ÎQAÌ@#‘0AlL`¶ÎQAÌ.‘0AlL ³ÎQAÌ€]‘0AlLµÎQAÌ@}‘0AlL°¶ÎQAÌ@‘0AlL ³ÎQAÌ€|‘0AlLЬÎQAÌ€‘0AlL€«ÎQAÌ¥‘0AlL¬ÎQAÌ®‘0AlLp¬ÎQAÌ@Ñ0AlL°ÎQAÌÀÑ0AlL¨ÎQAÌ·‘0AlLÀ¡ÎQA̱‘0AlL`œÎQAÌÀ±‘0AlL ™ÎQA̯‘0AlLÀ“ÎQAÌ ®‘0AlLhÎQA̹‘0AlL ÎQÀё0AlLŠÎQAÌ’0AlLà…ÎQAÌÀO’0AlL ÎQAÌ@y’0AlL`€ÎQAÌÀ…’0AlL`ÎQAÌ@š’0AlL‡ÎQAÌÀ¢’0AlLÀ‘ÎQA̼’0AlL@—ÎQAÌ@Ô’0AlLКÎQAÌè’0AlL •ÎQAÌ@ì’0AlL‘ÎQAÌõ’0AlLàŠÎQAÌ÷’0AlL ‡ÎQAÌÀ“0AlLÀ‚ÎQAÌ€“0AlLŠÎQAÌÀ7“0AlL°ÎQAÌI“0AlL—ÎQAÌ€]“0AlL ¡ÎQAÌ€j“0AlL`§ÎQAÌ€y“0AlL«ÎQAÌ‹“0AlL±ÎQAÌ¡“0AlL`·ÎQAÌ€³“0AlL@½ÎQAÌÀ²“0AlL ÅÎQAÌ€´“0AlL ÊÎQAÌÀÀ“0AlLÐÌÎQÀȓ0AlLÈÎQAÌÉ“0AlLÆÎQAÌÌ“0AlLPÃÎQÀѓ0AlLÄÎQAÌÀÙ“0AlL ÆÎQÀݓ0AlLÀÄÎQAÌ@ä“0AlL ÂÎQAÌÀç“0AlLPÄÎQAÌï“0AlLàÇÎQAÌ@ö“0AlL€ÆÎQAÌ€ò“0AlL ÃÎQAÌ@è“0AlL@¿ÎQAÌ@ê“0AlL»ÎQAÌ€è“0AlL ·ÎQAÌד0AlL ²ÎQAÌÀØ“0AlL °ÎQAÌ€ë“0AlL€§ÎQAÌ€ë“0AlL0™ÎQAÌ@î“0AlLà’ÎQAÌ€ð“0AlL`‘ÎQAÌ”0AlLàÎQAÌ€ ”0AlL ŽÎQAÌÀ”0AlLÀÎQAÌ&”0AlL@‹ÎQAÌÀ.”0AlL€ƒÎQAÌÀ2”0AlLà|ÎQAÌÀ%”0AlLÀoÎQAÌ€”0AlLmÎQAÌ@”0AlL0iÎQAÌÀ+”0AlL eÎQAÌÀ_”0AlL`^ÎQAÌ€‘”0AlLàUÎQAÌ@³”0AlL@QÎQAÌ@Ñ”0AlL°MÎQAÌ@•0AlL`FÎQAÌE•0AlL€AÎQAÌ@g•0AlLà@ÎQAÌÀ{•0AlLP@ÎQAÌ@‰•0AlL @ÎQAÌ••0AlL`@ÎQAÌ”•0AlL CÎQÄ•0AlLðHÎQAÌ@•0AlL QÎQAÌ€™•0AlLVÎQAÌÀ¹•0AlL0[ÎQAÌ@Ε0AlL`_ÎQAÌå•0AlL`cÎQAÌ€î•0AlL0cÎQAÌ@ô•0AlLÐbÎQAÌÀû•0AlL aÎQAÌÿ•0AlLÐ_ÎQAÌ –0AlLbÎQAÌ€+–0AlL€aÎQAÌ€5–0AlL°eÎQAÌÀB–0AlLpcÎQAÌ€G–0AlL aÎQAÌ@J–0AlL@\ÎQAÌ@S–0AlL ZÎQAÌ@]–0AlL0YÎQAÌp–0AlLZÎQAÌ{–0AlLàSÎQAÌÀ‰–0AlLpTÎQAÌ€––0AlLÀRÎQAÌ@Ÿ–0AlL@NÎQAÌ@·–0AlLNÎQAÌ€×–0AlL`NÎQAÌ€á–0AlLHÎQAÌ@è–0AlLpCÎQAÌ€â–0AlL =ÎQAÌí–0AlL0:ÎQAÌø–0AlL9ÎQAÌ@—0AlL0>ÎQAÌ—0AlL FÎQAÌ@.—0AlL`JÎQAÌ=—0AlL NÎQAÌÀH—0AlL@SÎQAÌ€U—0AlL@VÎQAÌ€b—0AlL`TÎQAÌn—0AlLOÎQAÌÀ—0AlLLÎQA̘—0AlLPKÎQA̶—0AlLRÎQAÌÀÁ—0AlLÀWÎQAÌÀÒ—0AlLÀ_ÎQAÌ@à—0AlLÀaÎQAÌ@ë—0AlLpdÎQAÌÀò—0AlLàiÎQAÌÿ—0AlLkÎQAÌ€˜0AlL`gÎQAÌù—0AlL°aÎQA̘0AlLÐaÎQA̘0AlLbÎQAÌ,˜0AlL_ÎQAÌ€2˜0AlL ZÎQAÌ@2˜0AlLVÎQAÌÀC˜0AlL@SÎQAÌÀp˜0AlLQÎQAÌ@˜0AlLàRÎQAÌÀŸ˜0AlLPÎQAÌÀ¦˜0AlL JÎQAÌÀš˜0AlL EÎQA̯˜0AlLPCÎQAÌ»˜0AlLPCÎQÀĘ0AlLÐAÎQAÌÀÁ˜0AlL€?ÎQAÌ€°˜0AlL@ÎQAÌ ˜0AlL ;ÎQAÌ®˜0AlL06ÎQAÌÀĘ0AlLð2ÎQAÌà˜0AlL4ÎQAÌÀö˜0AlL€;ÎQAÌ€™0AlLÐ5ÎQAÌÀ ™0AlLà6ÎQAÌ@™0AlLÀ:ÎQAÌ4™0AlL >ÎQAÌ@O™0AlL>ÎQAÌS™0AlL`<ÎQAÌ@\™0AlL<ÎQAÌ€m™0AlLà=ÎQAÌÀr™0AlLà9ÎQAÌÀd™0AlL07ÎQAÌ@g™0AlL-ÎQAÌ@p™0AlLð#ÎQAÌ€„™0AlL"ÎQAÌ£™0AlL #ÎQAÌÀß™0AlL`$ÎQAÌ@û™0AlL'ÎQAÌ€š0AlL@*ÎQAÌš0AlL@&ÎQAÌ€!š0AlL€ÎQAÌ@6š0AlLÎQAÌIš0AlLàÎQAÌÀ\š0AlLÎQAÌ@š0AlLàÎQAÌ€±š0AlL@ÎQAÌ@Éš0AlLÎQAÌÀâš0AlLðÎQAÌ@ãš0AlLPÎQAÌ€Òš0AlLÀÎQAÌÀÀš0AlLàÎQA̺š0AlLÎQAÌ€¶š0AlLàÎQAÌÀ¤š0AlLÎQAÌ€…š0AlLÀÎQAÌ@sš0AlLpÎQAÌ@gš0AlLðÿÍQAÌ€Jš0AlL0ÎQAÌ:š0AlLàýÍQAÌ€8š0AlL@ïÍQAÌCš0AlLpãÍQAÌ@š0AlL@ÂÍQAÌ€©š0AlL€·ÍQAÌ@ºš0AlL`¯ÍQAÌÀâš0AlLp¢ÍQAÌïš0AlL`žÍQAÌ@^›0AlL‰ÍQAÌ€?›0AlL@ÍQAÌ7›0AlL€yÍQAÌÀ4›0AlLàlÍQAÌÀ"›0AlLeÍQAÌ ›0AlL``ÍQAÌêš0AlL\ÍQAÌ@žš0AlL`RÍQAÌ@‚š0AlLÀIÍQAÌÀXš0AlL`CÍQAÌ-š0AlL@>ÍQAÌÀü™0AlL`7ÍQAÌ€Ù™0AlL 2ÍQAÌÀË™0AlL`'ÍQAÌ@Á™0AlL ÍQAÌ@µ™0AlL ÍQAÌ@µ™0AlL@ÍQAÌ€§™0AlL øÌQAÌ€”™0AlLñÌQAÌ@{™0AlL@êÌQAÌg™0AlL ãÌQAÌ@h™0AlLà×ÌQAÌ@c™0AlL€ÐÌQAÌ€_™0AlL`ÈÌQAÌÀZ™0AlL@ÀÌQAÌÀV™0AlLàµÌQAÌÀG™0AlL@®ÌQAÌ€/™0AlLÀ¦ÌQAÌ€™0AlLà¢ÌQAÌ€é˜0AlL€žÌQÀĘ0AlL ÌQAÌ¢˜0AlL€›ÌQAÌÀƒ˜0AlL€›ÌQAÌj˜0AlL@–ÌQAÌ€D˜0AlL@“ÌQAÌ@&˜0AlL—ÌQAÌ@ý—0AlL ™ÌQAÌ@×0AlLÀÌQAÌ@„—0AlLà„ÌQAÌM—0AlLà}ÌQAÌÀ —0AlL€yÌQAÌ@Û–0AlL@sÌQAÌÀ¦–0AlLàoÌQAÌ@‚–0AlL@pÌQAÌ@^–0AlL@lÌQAÌ5–0AlLÀdÌQAÌÀ–0AlL bÌQAÌ@ü•0AlL@_ÌQAÌ@Ö•0AlLà]ÌQAÌ—•0AlL@ZÌQAÌc•0AlL€QÌQAÌÀ@•0AlL GÌQAÌ1•0AlLÀ>ÌQAÌ€'•0AlL@5ÌQAÌ@!•0AlLà.ÌQAÌÀ•0AlL@ÌQAÌ@•0AlLÌQAÌ€•0AlL üËQAÌ@•0AlL@ñËQAÌ@û”0AlL€êËQAÌ@ñ”0AlLâËQAÌÀé”0AlL ÜËQÀؔ0AlLÀÖËQA̯”0AlL€ÌËQAÌ“”0AlL@ÅËQAÌv”0AlL ½ËQAÌ^”0AlL µËQAÌ€9”0AlL ²ËQAÌ€”0AlL ®ËQAÌð“0AlL §ËQÀГ0AlLÀžËQAÌÀº“0AlL ™ËQĄ“0AlL€”ËQAÌ@““0AlL`ËQAÌ@~“0AlL€‹ËQAÌ@E“0AlL@ŠËQAÌ@(“0AlL@‰ËQAÌ@ “0AlLÀ„ËQAÌÀõ’0AlL€{ËQAÌ€Ú’0AlL€tËQAÌ@À’0AlLÀmËQAÌ@«’0AlL jËQAÌ@”’0AlL`bËQAÌ€†’0AlL YËQAÌÀa’0AlL PËQAÌS’0AlLàKËQAÌ€B’0AlLÀEËQAÌ@’0AlL8ËQAÌ@ ’0AlL 0ËQAÌ@þ‘0AlL`%ËQAÌÀü‘0AlL #ËQAÌ€æ‘0AlLÀËQAÌÀÆ‘0AlLÂÊQAÌš‘0AlLÀ…ÊQAÌ‘‘0AlLàzÊQAÌ@Ž‘0AlL tÊQAÌ@Œ‘0AlL oÊQAÌ€Ž‘0AlL dÊQAÌÀŠ‘0AlL@XÊQAÌ@…‘0AlL OÊQAÌ@‘0AlL GÊQAÌ@‘0AlLà@ÊQAÌ@{‘0AlL€2ÊQAÌÀ>‘0AlL`ãÉQAÌ@'‘0AlL€åÉQAÌÀý0AlL€éÉQAÌ@â0AlL êÉQAÌ´0AlL€êÉQAÌ@›0AlL éÉQAÌÀn0AlLÀåÉQAÌ€:0AlL âÉQAÌ€0AlLÀÝÉQAÌï0AlL€ÛÉQAÌÒ0AlL€ÚÉQAÌÀ§0AlL€ÚÉQAÌÀ‹0AlLÚÉQAÌ@p0AlLÀÚÉQAÌ@B0AlLÀÙÉQAÌÀ0AlLàÖÉQAÌÀÎŽ0AlL`ÕÉQAÌ€¼Ž0AlL€ÔÉQAÌžŽ0AlLÓÉQAÌ€~Ž0AlL@ÐÉQAÌ)Ž0AlLÑÉQAÌ@Ž0AlL@ËÉQAÌ@ë0AlL ÃÉQAÌ@Æ0AlL »ÉQAÌÀ©0AlL`²ÉQAÌÀ‹0AlLªÉQAÌÀs0AlL€¡ÉQAÌS0AlLà™ÉQAÌ<0AlL ‘ÉQAÌ 0AlL ŠÉQAÌ@ 0AlL@}ÉQAÌ0AlL@tÉQAÌÀ0AlL mÉQAÌ0AlL@^ÉQAÌþŒ0AlL@VÉQAÌ@ÿŒ0AlLÀNÉQAÌ@0AlLà@ÉQAÌ€$0AlL 5ÉQAÌ@10AlLà/ÉQAÌ@;0AlL@%ÉQAÌ@C0AlLÉQAÌH0AlL ÉQAÌJ0AlL ÉQAÌ@K0AlL@ÉQAÌG0AlL úÈQAÌ€F0AlL€çÈQAÌ€P0AlL áÈQAÌ€i0AlL@ÖÈQAÌ€{0AlLÐÈQAÌ@Œ0AlLÆÈQAÌ€‰0AlLà½ÈQAÌÀ„0AlL`ÈQAÌ@–0AlL`”ÈQAÌ@¼0AlL „ÈQAÌ€Î0AlLà{ÈQAÌÿ0AlL`eÈQAÌ€ Ž0AlLÀUÈQAÌŽ0AlLÀMÈQAÌŽ0AlL CÈQAÌ@&Ž0AlLÀ=ÈQAÌLŽ0AlL 9ÈQAÌgŽ0AlLà5ÈQAÌ@†Ž0AlLà1ÈQAÌ€žŽ0AlL+ÈQAÌ€¸Ž0AlL $ÈQAÌÏŽ0AlLÈQAÌ€åŽ0AlL ÈQAÌ@òŽ0AlLÈQAÌ0AlLÈQAÌ€øŽ0AlLÀóÇQAÌ@E0AlL ÙÇQAÌÀf0AlL ÒÇQAÌ‹0AlLÀÆÇQA̤0AlL ¼ÇQAÌÌ0AlL·ÇQAÌñ0AlLà¬ÇQAÌÀ 0AlL@§ÇQAÌ€0AlL`¡ÇQAÌ@50AlLà›ÇQAÌ@D0AlL ”ÇQAÌ`0AlLà‹ÇQAÌ@v0AlLàƒÇQAÌ@Š0AlLzÇQAÌÀ>0AlL yÇQAÌ0AlL@wÇQAÌ@ß0AlL nÇQAÌÀ»0AlL€hÇQAÌ€Ž0AlLàcÇQAÌ^0AlLaÇQAÌ€0AlL WÇQAÌ€0AlL KÇQAÌ€þŽ0AlL @ÇQAÌÀÜŽ0AlL@1ÇQAÌ€´Ž0AlL`ÇQAÌ€„Ž0AlL@ÇQAÌÀgŽ0AlL ÇQAÌJŽ0AlL ÇQAÌŽ0AlL üÆQAÌ@ø0AlL þÆQAÌÐ0AlL@ÇQAÌ@¡0AlL ÇQAÌ€x0AlLàýÆQAÌÀF0AlL€üÆQAÌ€*0AlLàÿÆQAÌ@0AlLÇQAÌ@ 0AlL@ùÆQAÌñŒ0AlLòÆQÀˌ0AlLïÆQAÌ@¾Œ0AlLéÆQAÌ€°Œ0AlLãÆQAÌ@—Œ0AlLÙÆQAÌÀƒŒ0AlL`ÔÆQAÌYŒ0AlLà¦ÆQAÌVŒ0AlL€˜ÆQAÌ€NŒ0AlL@ÆQAÌ€9Œ0AlL„ÆQAÌ€Œ0AlLàtÆQAÌ€ë‹0AlL@iÆQÀË0AlL€`ÆQAÌ€‹0AlL€UÆQAÌ€{‹0AlLàLÆQAÌ@W‹0AlL BÆQAÌ/‹0AlL@?ÆQAÌãŠ0AlL@3ÆQAÌÀ¸Š0AlL/ÆQAÌÀŒŠ0AlL*ÆQAÌ@kŠ0AlLà'ÆQAÌÀ<Š0AlLÀ$ÆQAÌ@ù‰0AlLà!ÆQAÌ@Ó‰0AlL!ÆQĄ‰0AlL@!ÆQAÌÀ]‰0AlL ÆQAÌ@#‰0AlL ÆQAÌïˆ0AlL ÆQÀƈ0AlL`ÆQAÌ@ˆ0AlLà ÆQAÌOˆ0AlL€ ÆQAÌ'ˆ0AlLÆQAÌÀü‡0AlL@þÅQAÌ€Ú‡0AlL ÷ÅQA̱‡0AlL ñÅQȦ0AlL`åÅQAÌ@O‡0AlL@ÜÅQAÌÀ‡0AlLàÕÅQAÌÀè†0AlLàÏÅQAÌl†0AlL·ÅQAÌ€E†0AlLà­ÅQĂ0AlL€¦ÅQAÌ€†0AlLàœÅQAÌ€æ…0AlL@–ÅQAÌÀ¹…0AlL”ÅQAÌ€‘…0AlL@”ÅQAÌ€c…0AlL@“ÅQAÌ€A…0AlL ŽÅQAÌ,…0AlL „ÅQAÌ@…0AlLÀuÅQAÌ…0AlLnÅQAÌÀÞ„0AlL jÅQAÌÀ¬„0AlL@mÅQAÌ€u„0AlL€iÅQAÌ@„0AlLhÅQAÌ€ãƒ0AlL@hÅQAÌÀȃ0AlL°hÅQAÌ›ƒ0AlL€iÅQAÌÀnƒ0AlLàeÅQAÌ@:ƒ0AlLÀ^ÅQAÌ"ƒ0AlL[ÅQAÌÀú‚0AlLXÅQAÌÀƒ‚0AlLàNÅQAÌS‚0AlL€HÅQAÌ#‚0AlL`CÅQAÌ@ø0AlLà=ÅQAÌ@À0AlL`6ÅQAÌ”0AlLÀ*ÅQAÌ@o0AlLà"ÅQAÌÀ80AlLÅQAÌ0AlL` ÅQAÌ@%0AlL@ÅQAÌ@.0AlL`õÄQAÌ20AlLèÄQAÌ€30AlLàâÄQAÌ@40AlLÖÄQAÌ20AlL ÄÄQAÌ€+0AlL ´ÄQAÌ€'0AlL@¢ÄQAÌ@p€0AlL€zÄQAÌ@Í0AlL ›ÄQAÌ´0AlLªÄQAÌ@˜0AlL`ºÄQAÌv0AlLÀËÄQAÌ@^0AlL ÙÄQAÌ<0AlL ëÄQAÌ0AlLàôÄQAÌú~0AlLàÅQAÌ@Î~0AlLÅQAÌ`¨~0AlLXÅQAÌ@„~0AlL *ÅQAÌ@p~0AlL`8ÅQAÌÀf~0AlLGÅQAÌ@r~0AlLTÅQAÌ@€~0AlL fÅQA̦~0AlL@„ÅQAÌ@§~0AlL ŽÅQAÌ@©~0AlLšÅQAÌÀœ~0AlL ªÅQAÌ~0AlL ³ÅQAÌ@ˆ~0AlL ½ÅQA̱~0AlL@ÑÅQAÌ@Â~0AlL éÅQAÌ@²~0AlLÀýÅQAÌÀˆ~0AlLà ÆQAÌ€e~0AlL ÆQAÌ€M~0AlL&ÆQAÌÀA~0AlLà6ÆQAÌ@<~0AlLÀJÆQAÌ@8~0AlLÀ^ÆQAÌ6~0AlL`rÆQAÌ€;~0AlL`‰ÆQAÌÀQ~0AlLà›ÆQAÌw~0AlLà¯ÆQAÌ€‹~0AlL ¸ÆQAÌ@ª~0AlL ÅÆQAÌ@×~0AlL`ÙÆQAÌ€ö~0AlL€òÆQAÌ0AlL€ ÇQAÌ€ 0AlLÀÇQAÌÀ0AlLÀ/ÇQAÌ€ 0AlL@;ÇQAÌ0AlLÀNÇQAÌ0AlLà[ÇQAÌÀé~0AlL`jÇQAÌë~0AlL@|ÇQAÌ€ò~0AlL@‰ÇQAÌ0AlL ÇQAÌ-0AlLÀ¬ÇQAÌ@H0AlLºÇQAÌ€j0AlLÏÇQAÌ@Œ0AlLÀßÇQAÌ@¦0AlLÀñÇQAÌ@«0AlLÈQAÌÀž0AlL` ÈQAÌ…0AlLàÈQAÌ€w0AlL&ÈQAÌÀR0AlLàOÈQAÌG0AlL\ÈQAÌÀ/0AlL€kÈQAÌ@0AlLÀwÈQAÌ@0AlL „ÈQAÌ€ù~0AlL€’ÈQAÌ@ù~0AlL šÈQAÌó~0AlLà©ÈQAÌö~0AlL@·ÈQAÌ@ô~0AlLÀÈÈQAÌå~0AlL€×ÈQAÌ@ê~0AlL ìÈQAÌ@0AlLàúÈQAÌ0AlLà ÉQAÌ@0AlL`ÉQAÌ0AlL€*ÉQAÌÀ)0AlL4ÉQAÌÀ10AlLà7ÉQAÌ@U0AlL`KÉQAÌ@n0AlL@SÉQAÌs0AlLÀTÉQAÌw0AlL _ÉQAÌÀX0AlLàiÉQAÌ@@0AlL@rÉQAÌÀF0AlLƒÉQAÌ€I0AlLàŽÉQAÌÀA0AlL@›ÉQAÌÀC0AlL€­ÉQAÌ@O0AlL·ÉQAÌ€Z0AlLÀ½ÉQAÌô~0AlLÀÃÉQAÌÀÞ~0AlL€ÀÉQAÌÀ·~0AlL ½ÉQAÌ@~0AlL`ÄÉQAÌV~0AlLÀÇÉQAÌÀ~0AlLÊÉQAÌÀæ}0AlL€ÆÉQAÌ@¯}0AlLÃÉQAÌ€x}0AlL@ÁÉQAÌ€<}0AlL@ÂÉQAÌ}0AlL€ÂÉQAÌ@û|0AlL ÂÉQAÌ€}0AlL ×ÉQAÌ}0AlL€àÉQAÌ}0AlL êÉQAÌ }0AlL òÉQAÌÀ&}0AlL@ÊQAÌ€*}0AlL ÊQAÌÀ)}0AlLÊQAÌÀ}0AlL "ÊQAÌ }0AlLà-ÊQAÌù|0AlL`@ÊQAÌ|0AlL iÊQAÌ€“|0AlLÀuÊQAÌ€y|0AlL`ƒÊQAÌÀh|0AlLàŒÊQAÌ€I|0AlL`›ÊQAÌ€<|0AlL`œÊQAÌÀ3|0AlL@¨ÊQAÌÀ"|0AlL@µÊQAÌÀ!|0AlL ÊÊQAÌ@|0AlL áÊQAÌ@|0AlL øÊQAÌÀ|0AlLàúÊQAÌ,|0AlLýÊQAÌ@1|0AlLàËQAÌ€;|0AlL` ËQAÌ€;|0AlLËQAÌ@1|0AlLàËQAÌ-|0AlLà*ËQAÌ(|0AlLà5ËQAÌ@(|0AlLGËQAÌ@|0AlLàMËQAÌ |0AlL UËQAÌ|0AlL`\ËQAÌÀð{0AlLÀgËQAÌ€ì{0AlLÀoËQAÌÀå{0AlLàuËQAÌÀÐ{0AlL€ËQAÌ€¹{0AlL@ˆËQAÌ@¤{0AlL`ËQAÌ@š{0AlL@–ËQAÌÀ†{0AlLÀ¥ËQAÌ…{0AlLÀ¯ËQAÌÀŠ{0AlLÀ·ËQȦ{0AlL@ÈËQȦ{0AlLÔËQAÌ@Š{0AlLáËQAÌ@”{0AlLÀëËQAÌ¡{0AlL@÷ËQAÌ€¤{0AlLpüËQAÌ«{0AlLÀÌQAÌÀ¹{0AlL`ÌQAÌ€Õ{0AlL`ÌQAÌÀÒ{0AlL€(ÌQAÌÀÅ{0AlLÀ.ÌQAÌ@°{0AlL 7ÌQAÌ€›{0AlL AÌQAÌ@†{0AlLàHÌQAÌ@u{0AlL`RÌQAÌ€t{0AlL XÌQAÌp{0AlL bÌQAÌb{0AlL€sÌQAÌ@T{0AlL ‹ÌQAÌÀO{0AlL`—ÌQAÌM{0AlL ¤ÌQAÌÀN{0AlLÀ°ÌQAÌ€G{0AlL¹ÌQAÌ€D{0AlLÀÆÌQAÌ€G{0AlL ÕÌQAÌÀF{0AlLÀæÌQAÌ€C{0AlLÀñÌQAÌà={0AlLÐþÌQAÌÀ<{0AlL€ ÍQAÌÀA{0AlLÍQAÌÀA{0AlL#ÍQAÌÀ5{0AlL`-ÍQAÌ€){0AlL€5ÍQAÌ@{0AlL @ÍQAÌÿz0AlL KÍQAÌüz0AlL UÍQAÌñz0AlL€dÍQAÌ@æz0AlLàmÍQAÌ@áz0AlL€ÍQAÌÀÖz0AlL ÍQAÌÔz0AlL` ÍQAÌ€Âz0AlLàÁÍQAÌ´z0AlLÙÍQAÌ@žz0AlL@éÍQAÌ@ˆz0AlL`óÍQAÌ;z0AlLÎQAÌÀz0AlLÀÎQAÌ€*y0AlL`>ÎQAÌ@$y0AlL€AÎQAÌ@?y0AlL0KÎQAÌÀey0AlLHÎQAÌŠy0AlL`NÎQAÌœy0AlL`TÎQAÌ@£y0AlL@WÎQAÌ€žy0AlLðZÎQA̱y0AlLpZÎQAÌ€¶y0AlL XÎQAÌ@Áy0AlLðUÎQAÌ@Êy0AlL€OÎQAÌÀÝy0AlL`OÎQAÌïy0AlL°PÎQAÌ@ z0AlL`IÎQAÌ@"z0AlL`HÎQAÌÀ+z0AlL€EÎQAÌÀ5z0AlLGÎQAÌ€6z0AlLÀMÎQAÌ@Iz0AlL VÎQAÌ€Mz0AlL€YÎQAÌOz0AlLðZÎQAÌÀNz0AlL ]ÎQAÌ€Cz0AlL dÎQAÌ€Ez0AlLÀlÎQAÌ@Iz0AlL€pÎQAÌÀLz0AlL€sÎQAÌ=z0AlL°vÎQAÌ@=z0AlL@yÎQAÌ€Fz0AlLÐzÎQAÌ@=z0AlL0ÎQAÌ@>z0AlLP„ÎQAÌÀGz0AlL@…ÎQAÌ@Pz0AlL ƒÎQAÌÀ`z0AlLà}ÎQAÌ@az0AlLuÎQAÌhz0AlL tÎQAÌ€}z0AlLqÎQAÌz0AlLðqÎQAÌ@–z0AlLàqÎQAÌ@Ÿz0AlL`qÎQAÌ@­z0AlL€pÎQAÌÀ»z0AlLÀpÎQAÌÀÑz0AlLÀqÎQAÌÀâz0AlLàsÎQAÌÀîz0AlL€uÎQAÌ@úz0AlL@wÎQAÌ€{0AlLpuÎQAÌÀ{0AlL°rÎQAÌÀ{0AlLÐqÎQAÌ){0AlLànÎQAÌ@/{0AlLàlÎQAÌÀC{0AlLðiÎQAÌE{0AlLàlÎQAÌ@J{0AlLàmÎQAÌÀI{0AlLpoÎQAÌ€T{0AlLÐpÎQAÌb{0AlLqÎQAÌÀk{0AlLpÎQAÌÀz{0AlLrÎQAÌ„{0AlL qÎQAÌ@{0AlL€oÎQAÌ@{0AlLlÎQAÌ@¯{0AlLðhÎQAÌ€µ{0AlL@cÎQAÌ@Ã{0AlL€bÎQAÌ€Î{0AlL hÎQAÌ@Ñ{0AlL`jÎQAÌÙ{0AlLàlÎQAÌ€ß{0AlL`iÎQAÌ@Ü{0AlLfÎQAÌÀÖ{0AlLðbÎQAÌ@ê{0AlLðcÎQAÌ@ü{0AlLpbÎQAÌ@|0AlL@hÎQAÌÀ|0AlLjÎQAÌ@ |0AlLÀiÎQAÌÀ|0AlLhÎQAÌ@|0AlL eÎQAÌ@|0AlL\ÎQAÌ@|0AlL`VÎQAÌ€|0AlLðSÎQAÌÀ'|0AlL`SÎQAÌ€3|0AlLÐTÎQAÌ€8|0AlL QÎQAÌÀ2|0AlL@NÎQAÌ€'|0AlL0KÎQAÌ@4|0AlL@IÎQAÌY|0AlLÀHÎQAÌ€j|0AlL0IÎQAÌÀ¿|0AlLMÎQAÌ@}0AlLÀOÎQAÌ€1}0AlLQÎQAÌÜ}0AlL°[ÎQAÌ@*~0AlLcÎQAÌ@¬~0AlLpÎQAÌ@:0AlLÀ‰ÎQAÌ\0AlLà™ÎQAÌ@0AlL¥ÎQAÌ@ä~0AlLÀµÎQAÌ@Ý~0AlLp¼ÎQAÌ€á~0AlL`ÌÎQAÌ@å~0AlL`ÒÎQAÌ@î~0AlLPÖÎQAÌý~0AlL0ÖÎQAÌÀü~0AlLÓÎQAÌ@ó~0AlLÐÍÎQAÌ€ï~0AlL°ÃÎQAÌð~0AlLÀºÎQAÌ€0AlL€¨ÎQAÌ€O0AlLP ÎQAÌ@{0AlLð™ÎQAÌ€Œ0AlL`ÎQAÌÀ¤0AlL@©ÎQAÌÀº0AlLpºÎQAÌÀ 0AlL€¾ÎQAÌŽ0AlL€ÉÎQAÌm0AlLpÊÎQAÌ€N0AlL°ËÎQAÌÀ=0AlL0ÁÎQAÌÀ20AlLÀÎQAÌ@-0AlL ÄÎQAÌ€.0AlLÐÈÎQAÌ€=0AlL@ÐÎQAÌ@T0AlLðÒÎQAÌ€0AlL€ÒÎQAÌÀ°0AlLÎÎQAÌ€Ø0AlLËÎQAÌ€ì0AlL°ÌÎQAÌ@ñ0AlL€ÍÎQAÌ@ö0AlL`ÏÎQAÌÀ€0AlL`×ÎQAÌ€)€0AlL€ÚÎQAÌ€:€0AlLÀÚÎQAÌ5€0AlL àÎQAÌN€0AlLPæÎQAÌ€„€0AlLPÞÎQAÌÀª€0AlLÀÙÎQAÌÀª€0AlLÐÔÎQAÌÀ¸€0AlLðÒÎQAÌ@΀0AlL0ÕÎQAÌÀÓ€0AlLp×ÎQAÌ€Ò€0AlLÙÎQAÌ€Ù€0AlLÛÎQAÌ€æ€0AlLÛÎQAÌÀï€0AlLÐÛÎQAÌý€0AlL ÕÎQAÌ0AlL€ÒÎQAÌ€ 0AlLÀÐÎQAÌ0AlLÌÎQAÌ€0AlLÊÎQAÌÀ 0AlLpËÎQAÌÀ!0AlL@ÐÎQAÌÀ$0AlLðÓÎQAÌÀ0AlL`ÛÎQAÌ0AlLpßÎQAÌ@!0AlLáÎQAÌ€00AlLðáÎQAÌÀC0AlL áÎQAÌ€W0AlL@ÚÎQAÌm0AlLÐÖÎQAÌ0AlLØÎQAÌÀ´0AlL0ÓÎQAÌ€Ü0AlL0ÊÎQAÌó0AlLÀ¿ÎQAÌÀý0AlL@ºÎQAÌ‚0AlL@±ÎQAÌÀ-‚0AlLЩÎQAÌ@;‚0AlLªÎQAÌ@F‚0AlL`ªÎQAÌ@;‚0AlLà½ÎQAÌ6‚0AlLÄÎQAÌ)‚0AlLÀÈÎQAÌ€'‚0AlLàËÎQAÌ€1‚0AlL0ÐÎQAÌ€G‚0AlLàÒÎQAÌ@Z‚0AlLðÎÎQAÌr‚0AlL¾ÎQAÌ€w‚0AlL@¹ÎQAÌ€~‚0AlLðµÎQAÌ@·‚0AlLºÎQAÌ@§‚0AlLÄÎQAÌ@§‚0AlLàÌÎQAÌ@Ò‚0AlLÀÌÎQAÌ€(ƒ0AlLÐÅÎQAÌ€.ƒ0AlLÀÁÎQAÌÀLƒ0AlL€ºÎQAÌ@^ƒ0AlLà³ÎQAÌ@cƒ0AlL°ÎQAÌ€vƒ0AlL±ÎQAÌŒƒ0AlL¶ÎQAÌ@±ƒ0AlL µÎQÀ΃0AlLP´ÎQAÌ@ìƒ0AlL@±ÎQAÌ@ùƒ0AlL@«ÎQAÌ@„0AlLà¤ÎQAÌ@„0AlLÎQAÌÀ„0AlLà™ÎQAÌÀ „0AlL`•ÎQAÌ€$„0AlLP”ÎQAÌ,„0AlLP“ÎQAÌÀ6„0AlLÀ’ÎQAÌ€C„0AlLÎQAÌ@„0AlLІÎQAÌ@L„0AlL€ÎQAÌ@R„0AlLwÎQAÌ€a„0AlLàwÎQAÌ€h„0AlL xÎQAÌÀ~„0AlL xÎQAÌ@—„0AlLxÎQAÌÉ„0AlL wÎQAÌ€Õ„0AlL wÎQAÌÀà„0AlL@wÎQAÌæ„0AlL xÎQAÌ€è„0AlLÐ}ÎQAÌÀø„0AlL~ÎQAÌÀý„0AlLp„ÎQAÌ@…0AlL°†ÎQAÌÀ…0AlL€ˆÎQAÌ€!…0AlL ‰ÎQAÌ4…0AlL ŠÎQAÌ€:…0AlLŽÎQAÌÀQ…0AlL ÎQAÌ@k…0AlL`ÎQAÌ@s…0AlL’ÎQAÌÀƒ…0AlL€’ÎQAÌ€ …0AlLÎQAÌÀ®…0AlL@ŒÎQAÌ@»…0AlL°‰ÎQAÌÀÆ…0AlL`ŠÎQÀυ0AlLÐŒÎQAÌØ…0AlLàŽÎQAÌâ…0AlLÐÎQAÌè…0AlLÐ’ÎQAÌ€ë…0AlL`•ÎQAÌÀø…0AlL šÎQĂ0AlL€ ÎQAÌÀ†0AlL§ÎQAÌ€†0AlL€ªÎQĂ0AlL@­ÎQAÌ€†0AlL ¶ÎQAÌ@#†0AlLà¸ÎQAÌ@&†0AlLp»ÎQAÌÀ+†0AlLP½ÎQAÌ3†0AlL`¿ÎQAÌ€7†0AlLÄÎQAÌÀE†0AlLÅÎQAÌÀQ†0AlL@ÁÎQAÌÀ^†0AlLà¾ÎQAÌÀc†0AlLð¼ÎQAÌÀm†0AlL ½ÎQAÌ€†0AlL°ºÎQAÌ€Š†0AlL0¶ÎQAÌ@„†0AlLà°ÎQAÌ@†0AlL¬ÎQAÌ@†0AlL`§ÎQAÌ€‰†0AlL€£ÎQAÌ€”†0AlLà›ÎQAÌ€Ÿ†0AlL’ÎQAÌ@ª†0AlL ÎQA̳†0AlL ŠÎQÀĆ0AlLÀ…ÎQAÌ@‡0AlLƒÎQAÌ€B‡0AlL@‚ÎQAÌÀ…‡0AlLÀ‚ÎQAÌ@ć0AlL‚ÎQAÌ÷‡0AlL€ƒÎQAÌ€0ˆ0AlLÀ„ÎQAÌkˆ0AlL€†ÎQAÌ€Ÿˆ0AlLˆÎQA̼ˆ0AlL°ˆÎQAÌ@Öˆ0AlLpˆÎQAÌÛˆ0AlLÎQAÌ€õˆ0AlLp‘ÎQAÌ€‰0AlLÀ•ÎQAÌÀÿˆ0AlLà˜ÎQAÌ@ ‰0AlL šÎQAÌÀ‰0AlL`›ÎQAÌÀ‰0AlL@ ÎQAÌ€-‰0AlLà¢ÎQAÌ@D‰0AlLð ÎQAÌ€M‰0AlLÎQAÌO‰0AlLðšÎQAÌÀY‰0AlL@—ÎQAÌàg‰0AlL`–ÎQAÌ€s‰0AlLà–ÎQAÌ€|‰0AlLp—ÎQAÌÀš‰0AlL ˜ÎQAÌ´‰0AlL`šÎQAÌ@Ó‰0AlL ›ÎQAÌ€ó‰0AlLÐÎQAÌ€Š0AlLÀžÎQAÌ1Š0AlL¡ÎQAÌ@OŠ0AlL`¥ÎQAÌ@YŠ0AlLà­ÎQAÌÀUŠ0AlLÀ¯ÎQAÌNŠ0AlL²ÎQAÌÀEŠ0AlL³ÎQAÌ€BŠ0AlL`µÎQAÌ€AŠ0AlL¹ÎQAÌÀKŠ0AlLкÎQAÌRŠ0AlL ½ÎQAÌ@TŠ0AlL€¾ÎQAÌSŠ0AlL ÀÎQAÌRŠ0AlLàÂÎQAÌ€KŠ0AlL@ÅÎQAÌ@QŠ0AlL ÇÎQAÌÀ`Š0AlL ÊÎQAÌ@dŠ0AlLÀÎÎQAÌÀuŠ0AlL ÛÎQAÌÀ}Š0AlL`åÎQAÌ€uŠ0AlLÀêÎQAÌ€nŠ0AlLàëÎQAÌÀvŠ0AlL0ñÎQAÌÀŽŠ0AlL€÷ÎQAÌ@ Š0AlL ÷ÎQAÌ@°Š0AlL€îÎQAÌ»Š0AlLÀëÎQAÌÀÊŠ0AlL@åÎQAÌÀëŠ0AlLpÝÎQAÌ@èŠ0AlLÔÎQAÌÀôŠ0AlLÌÎQAÌÀïŠ0AlLÆÎQAÌèŠ0AlL€ÃÎQAÌÀÛŠ0AlL€ÀÎQAÌ@ÔŠ0AlLÀ¼ÎQAÌ@ߊ0AlL0»ÎQAÌ€ùŠ0AlLÀ¸ÎQAÌÀ5‹0AlL@µÎQAÌÀj‹0AlLà°ÎQAÌ@q‹0AlL@°ÎQAÌ€{‹0AlL@°ÎQAÌ€Á‹0AlL °ÎQAÌ@Õ‹0AlLÀ¯ÎQAÌÀí‹0AlL€°ÎQAÌ€Œ0AlL±ÎQAÌ€GŒ0AlL ²ÎQAÌÀŒ0AlL`³ÎQAÌ€ªŒ0AlLà´ÎQAÌÀÈŒ0AlLжÎQAÌàŒ0AlL¸ÎQAÌÀ0AlL0¼ÎQAÌ€0AlL@¾ÎQAÌ@#0AlL€ÀÎQAÌÀ)0AlLPÂÎQAÌ@0AlLPÆÎQAÌÀ0AlL@ÌÎQAÌ€ûŒ0AlL0ÔÎQAÌ0AlLÛÎQAÌÀ!0AlL€ÛÎQAÌ@<0AlL`ßÎQAÌ@`0AlL ÙÎQAÌ`s0AlL`ÚÎQAÌv0AlLÖÎQÃ0AlL€ÕÎQAÌ€”0AlLàÖÎQAÌÀ£0AlLpÐÎQAÌ€µ0AlL ËÎQA̹0AlL€ÇÎQAÌ€Î0AlLàÄÎQAÌ@Ô0AlL`ÊÎQAÌ€Þ0AlL ÏÎQAÌ€ì0AlLàÒÎQAÌ@Ž0AlL°ÓÎQAÌŽ0AlL×ÎQAÌ@!Ž0AlLÙÎQAÌ@,Ž0AlLÙÎQAÌ€3Ž0AlLàÞÎQAÌ€SŽ0AlLÀäÎQAÌ€|Ž0AlL âÎQAÌ€Ž0AlLâÎQAÌ@¶Ž0AlL áÎQAÌ@ÃŽ0AlLÜÎQAÌ@ÀŽ0AlLÐÖÎQAÌÂŽ0AlL€ÔÎQÀˎ0AlL°ÍÎQAÌ@ÕŽ0AlLpÂÎQAÌ@åŽ0AlLÀºÎQAÌñŽ0AlL·ÎQAÌÀòŽ0AlL€´ÎQAÌøŽ0AlL`®ÎQAÌÀ0AlLà¦ÎQAÌ.0AlL ¦ÎQAÌÀV0AlLà§ÎQAÌs0AlL`©ÎQĂ0AlLªÎQAÌž0AlL ªÎQAÌ·0AlLp¬ÎQAÌ€À0AlL€®ÎQAÌ€Ã0AlLеÎQAÌÀ¼0AlLÐÁÎQAÌ@Â0AlL°ÆÎQAÌÀº0AlL`ÌÎQAÌ·0AlL ÕÎQAÌ€©0AlL âÎQAÌÀ±0AlL°êÎQAÌÀÁ0AlLðïÎQAÌ€¼0AlLöÎQAÌÁ0AlLàûÎQAÌ@ª0AlL ÏQAÌ£0AlL`ÏQAÌ¥0AlLPÏQAÌ@µ0AlLÏQAÌÏ0AlL°ÏQAÌ€Ü0AlL ÏQAÌ@ß0AlLp ÏQAÌÀè0AlLp ÏQAÌ€ï0AlLp ÏQAÌþ0AlL@ÏQAÌ€0AlL@ÏQAÌ€30AlLPÏQAÌ€>0AlLÀÏQA#(˜€æ°.AlL šQA˜/4/AlL@ô¢QAaì&=L˜ˆ /AlL l¢QA˜€{ /AlLÀb¢QA˜V /AlL@R¢QA˜€F /AlL@C¢QA˜9 /AlL 7¢QA˜€$ /AlL -¢QA˜ /AlL &¢QA˜î /AlL ¢QA˜ /AlLÀå¡QA˜§ /AlL`P¡QA˜€[ /AlL`K¡QA˜ /AlL F¡QA˜€© /AlL€>¡QA˜€ /AlL€6¡QA˜d/AlL /¡QA˜€Ê/AlL"¡QA˜€@/AlL`¡QA˜€â/AlLà÷ QA˜€ž/AlLÀè QA˜K/AlL€Õ QA˜ø/AlL`½ QA˜€›/AlL°¦ QA˜€x/AlLž QA˜€2/AlL  QA˜€Õ/AlL`y QA˜“/AlLl QA˜€Z/AlLàU QA˜€./AlL C QA˜*/AlLÀ1 QA˜€:/AlL * QA˜€”/AlL@/ QA˜Ý/AlL`2 QA˜€@/AlLÀ4 QA˜¡/AlL 8 QA˜€ø/AlL`= QA˜€d/AlL E QA˜Í/AlLM QA˜6/AlLT QA˜€Š/AlLÀW QA˜/AlLà\ QA˜€t/AlLàd QA˜À/AlLÀi QA˜€þ/AlL`m QA˜€| /AlLv QA˜ø /AlL { QA˜< /AlLÀ QA˜² /AlL… QA˜ /AlL€€ QA˜- /AlL€y QA˜€… /AlLÀy QA˜· /AlL { QA˜å /AlL w QA˜€> /AlLÀX QA˜Ð /AlL B QA˜€” /AlLà& QA˜8/AlLà QA˜€¼/AlL€ QA˜,/AlL`ùŸQA˜€/AlL`ëŸQA˜ó/AlL@¼ŸQA˜·/AlLÀ”ŸQA˜|/AlLÀjŸQA˜[/AlL GŸQA˜&/AlLàŸQA˜"/AlL€ ŸQA˜8/AlL€öžQA˜N/AlL ÚžQA˜_/AlL`¿žQA˜`/AlLÀ®žQA˜€M/AlLÀ§žQA˜€/AlL`¢žQA˜Ù /AlL€žQA˜€q /AlL@—žQA˜€- /AlL€—žQA˜Æ /AlLÀ£žQA˜l /AlL ¦žQA˜€, /AlL ¨žQA˜€â /AlL`§žQA˜€N /AlL ¢žQA˜ó /AlL@™žQA˜€Û /AlL‘žQA˜ô /AlL …žQA˜€ /AlLxžQA˜€ /AlL@hžQA˜3 /AlLÀUžQA˜] /AlL€GžQA˜Ž /AlL7žQA˜€¢ /AlL`$žQA˜² /AlLžQA˜€É /AlLàžQA˜à /AlL€žQA˜ã /AlL`õQA˜* /AlLõQA˜s /AlL öQA˜Ð /AlLÀùQA˜' /AlL@üQA˜U /AlL öQA˜€b /AlL@ðQA˜p /AlLçQA˜u /AlL€ÜQA˜m /AlL ÕQA˜H /AlLÀÂQA˜ /AlLÀÂQA˜€Ä /AlLÀ»QA˜Š /AlLÀ·QA˜g /AlLà²QA˜e /AlL «QA˜x /AlL@›QA˜€ /AlLŠQA˜Ä /AlLàpQA˜€ç /AlL\QA˜ /AlLCQA˜€ /AlL ßœQA˜€ˆ /AlL ÌœQA˜d /AlL ³œQA˜` /AlLžœQA˜€œ /AlL@œQA˜Ú /AlL€‰œQA˜ÿ /AlL …œQA˜l/AlL rœQA˜€Ë/AlL aœQA˜€9/AlL€bœQA˜€œ/AlL`eœQA˜ /AlL@gœQA˜Œ/AlLÀeœQA˜€¥/AlL€cœQA˜Å/AlLÀ`œQA˜€/AlL `œQA˜þ/AlLà]œQA˜n/AlL [œQA˜¹/AlL€VœQA˜/AlL@VœQA˜€(/AlL ]œQA˜#/AlL£œQA˜/AlLQA˜é/AlL€ZQA˜€ß/AlLÀ–QA˜€‰/AlL µQA˜€Ï/AlL€ÃQA˜€æ/AlL`ÔQA˜€û/AlL éQA˜=/AlL`ûQA˜€r/AlLàžQA˜·/AlL@žQA˜ø/AlL žQA˜€/AlLÀžQA˜H/AlLà.žQA˜S/AlL`5žQA˜€]/AlLÀ;žQA˜/AlL IžQA˜€›/AlL`VžQA˜€/AlL€cžQA˜\/AlL`yžQA˜×/AlLŒžQA˜€x/AlLÀ–žQA˜€Ï/AlLÀ•žQA˜€!/AlL@“žQA˜t/AlL€—žQA˜Ü/AlL ˜žQA˜€/AlL@–žQA˜€Ð/AlL“žQA˜€3/AlL€žQA˜§/AlL†žQA˜,/AlL ˆžQA˜€É/AlL‘žQA˜þ/AlLÀ—žQA˜€./AlLÀ›žQA˜£/AlLœžQA˜€ü/AlL€™žQA˜R/AlLÀžžQA˜»/AlL`—žQA˜€ã/AlLà‹žQA˜ /AlLà|žQA˜h/AlLÀvžQA˜Ý/AlL@sžQA˜G /AlL pžQA˜ª /AlL@lžQA˜!/AlLÀjžQA˜_!/AlLÀožQA˜›!/AlL€ožQA˜€ï!/AlLižQA˜€F"/AlLÀdžQA˜²"/AlLàbžQA˜€#/AlLàdžQA˜T#/AlL lžQA˜¨#/AlL tžQA˜ú#/AlL tžQA˜Y$/AlL`ižQA˜’$/AlL@cžQA˜%/AlLÀ]žQA˜¡%/AlL SžQA˜€ù%/AlLÀNžQA˜€ƒ&/AlL€MžQA˜4'/AlLGžQA˜¸'/AlL`EžQA˜€%(/AlLÀ;žQA˜p(/AlL`5žQA˜€æ(/AlLà1žQA˜€8)/AlL 2žQA˜z)/AlLà,žQA˜§)/AlLÀ žQA˜¬)/AlLžQA˜*/AlL@žQA˜;*/AlL žQA˜X*/AlLžQA˜€l*/AlL`÷QA˜€s*/AlLàêQA˜€Ž*/AlLÀÛQA˜€*/AlLàÕQA˜ï*/AlLà×QA˜T+/AlLÀ×QA˜É+/AlLÀÓQA˜,/AlLÍQA˜€b,/AlL@ÄQA˜€Ê,/AlL ÄQA˜€@-/AlLàÁQA˜’-/AlL€¸QA˜€./AlL@¯QA˜€É./AlL §QA˜€://AlL ªQA˜€Ð//AlL@³QA˜€80/AlL¼QA˜p0/AlL€ÄQA˜ä0/AlL€ÆQA˜€Š1/AlL ÂQA˜€2/AlLÃQA˜€«2/AlL ÀQA˜€/3/AlL@¾QA˜€p3/AlL`ÀQA˜/4/AlL`¥QA˜µ3/AlL|QA˜€83/AlL€SQA˜€2/AlL@!QA˜€ð1/AlL ïœQA˜€*1/AlLÀ¯œQA˜€0/AlLQœQA˜à//AlLÀDœQA˜€¹//AlL`:œQA˜€©//AlL (œQA˜Ÿ//AlL œQA˜s//AlL õ›QA˜€$//AlL¾›QA˜ //AlLÀ¬›QA˜Ã./AlL€•›QA˜€•./AlLÀ‚›QA˜€t./AlL n›QA˜j./AlL ^›QA˜d./AlL`5›QA˜€2./AlL›QA˜€û-/AlL ¿šQA˜º-/AlL’šQA˜b-/AlLÀdšQA˜-/AlLÀRšQA˜‡,/AlL@OšQA˜-,/AlL NšQA˜€ß+/AlL€LšQA˜€v+/AlL€>šQA˜+/AlL€(šQA˜°*/AlL šQA˜*/AlL &šQA˜€N)/AlLà&šQA˜Œ(/AlL )šQA˜€^(/AlL0*šQA˜€Ý'/AlLà+šQA˜'/AlL ,šQA˜)'/AlL (šQA˜à&/AlL`!šQA˜€½&/AlL`šQA˜…&/AlLšQA˜!&/AlL šQA˜%/AlL`šQA˜%/AlLÀšQA˜€Í$/AlLšQA˜l$/AlL šQA˜é#/AlL€ šQA˜€p#/AlLšQA˜€î"/AlLàšQA˜s"/AlLÀšQA˜‘!/AlL #šQA˜€K!/AlLšQA˜€æ /AlLàšQA˜b /AlL@šQA˜€$ /AlL@šQA˜€Ð/AlLšQA˜‹/AlL`šQA˜i/AlLà%šQA˜ò/AlL`*šQA˜€A/AlL4šQA˜€£/AlL 2šQA˜î/AlL€3šQA˜\/AlL@5šQA˜«/AlLÀ5šQA˜€5/AlL@7šQA˜x/AlLÀ7šQA˜/AlL@?šQA˜€×/AlL€HšQA˜€•/AlL€OšQA˜€·/AlL WšQA˜ö/AlL€cšQA˜W/AlL fšQA˜€ç/AlLišQA˜3/AlL hšQA˜€Ê/AlLdšQA˜/AlL€^šQA˜/AlL`]šQA˜V/AlLešQA˜Ð/AlL gšQA˜€)/AlL išQA˜½/AlLàešQA˜U/AlL`lšQA˜€/AlLàqšQA˜Ó/AlLÀxšQA˜†/AlL`šQA˜€J/AlL‹šQA˜€/AlL`“šQA˜€Ø/AlLÀ›šQA˜€}/AlL £šQA˜;/AlLÀ®šQA˜ /AlL´šQA˜€å /AlL€ÑšQA˜® /AlL ÔšQA˜. /AlL€ÓšQA˜à /AlL€×šQA˜A /AlLÀÙšQA˜€Ì /AlLÀÜšQA˜€B /AlL€âšQA˜î /AlL`êšQA˜€• /AlLàôšQA˜J /AlL€úšQA˜þ /AlLà›QA˜€› /AlL ›QA˜€ /AlL ›QA˜€ˆ/AlL›QA˜€/AlLÀ›QA˜€r/AlL@(›QA˜Ê/AlL 2›QA˜€9/AlL`<›QA˜ê/AlL Q›QA˜€s/AlL X›QA˜/AlL@a›QA˜€™/AlL`k›QA˜/AlL@w›QA˜µ/AlL@›QA˜€s/AlL@‰›QA˜/AlL›QA˜w/AlLàœ›QA˜â/AlL`§›QA˜Z/AlLÀ±›QA˜€fÿ.AlL¼›QA˜ÿ.AlL€¿›QA˜Ýþ.AlL`È›QA˜€™þ.AlL`ΛQA˜<þ.AlLÀÓ›QA˜€öý.AlL€Õ›QA˜—ý.AlL`Ú›QA˜€vý.AlL æ›QA˜&ý.AlLí›QA˜€ý.AlLí›QA˜€ùü.AlLî›QA˜Õü.AlLàî›QA˜xü.AlLàö›QA˜,ü.AlLÀœQA˜êû.AlL œQA˜”û.AlLœQA˜€Áú.AlL`0œQA˜cú.AlL`7œQA˜2ú.AlLÀCœQA˜ ú.AlL€SœQA˜€Íù.AlLdœQA˜€ù.AlLtœQA˜€®ø.AlLÀ‘œQA˜<ø.AlL`œœQA˜•÷.AlL@§œQA˜5÷.AlL ©œQA˜€Øö.AlL ©œQA˜€Âö.AlL —œQA˜€²ö.AlL`œQA˜¦ö.AlLÀ‚œQA˜™ö.AlL@yœQA˜\ö.AlL€vœQA˜%ö.AlLÀwœQA˜€Üõ.AlL xœQA˜tõ.AlL@{œQA˜õ.AlL „œQA˜¤ô.AlLŒœQA˜Iô.AlL€œQA˜€Óó.AlL@•œQA˜;ó.AlL€›œQA˜€Åò.AlL€ œQA˜bò.AlL¦œQA˜üñ.AlL ¬œQA˜`ñ.AlL¶œQA˜€Õð.AlL ¼œQA˜dð.AlLÀÄœQA˜‘ï.AlLàΜQA˜æî.AlLÀÙœQA˜€[î.AlLàÝœQA˜€Qí.AlLàåœQA˜¡ì.AlLèœQA˜-ì.AlLÀêœQA˜€¹ë.AlL ìœQA˜€"ë.AlL@QA˜€óê.AlL€2QA˜€Ìë.AlLàdQA˜àê.AlL _QA˜šê.AlL XQA˜€<ê.AlLàRQA˜Ñé.AlL MQA˜ƒé.AlL HQA˜€0é.AlL@EQA˜€èè.AlLAQA˜€‡è.AlL :QA˜Qè.AlL 3QA˜'è.AlL@,QA˜õç.AlL€ QA˜¹ç.AlL QA˜ç.AlL QA˜€8ç.AlL€QA˜€ç.AlLQA˜ÿæ.AlLQA˜½æ.AlL ýœQA˜€wæ.AlLÀ÷œQA˜€_æ.AlLÀðœQA˜/æ.AlLÀìœQA˜€âå.AlLâœQA˜€äå.AlLØœQA˜©å.AlL€ÏœQA˜aå.AlL€ÆœQA˜€#å.AlL`ºœQA˜å.AlL€´œQA˜àä.AlLÀ­œQA˜€^ä.AlL`¯œQA˜€-ä.AlL@®œQA˜€ä.AlL ªœQA˜Ñã.AlL`©œQA˜…ã.AlL©œQA˜€3ã.AlL§œQA˜€Ùã.AlL °›QA˜€ýá.AlL P›QA˜€®á.AlLK›QA˜,á.AlL@?›QA˜Íà.AlL 8›QA˜‚à.AlL /›QA˜€?à.AlL`(›QA˜à.AlL%›QA˜Êß.AlL@›QA˜™ß.AlL€›QA˜€Rß.AlL ›QA˜€ ß.AlLÀ›QA˜ØÞ.AlL`›QA˜{Þ.AlL`›QA˜€KÞ.AlLÀ›QA˜Þ.AlL )›QA˜ÐÝ.AlL@/›QA˜jÝ.AlLà5›QA˜€Ý.AlL ;›QA˜ßÜ.AlL€@›QA˜¯Ü.AlLàC›QA˜€wÜ.AlL J›QA˜€EÜ.AlLÀP›QA˜Ü.AlLàV›QA˜áÛ.AlL`[›QA˜€˜Û.AlLÀ^›QA˜€8Û.AlL@b›QA˜èÚ.AlL€a›QA˜€àÙ.AlL€a›QA˜‡Ù.AlL€`›QA˜€DÙ.AlL `›QA˜Ù.AlL `›QA˜ªØ.AlL€_›QA˜yØ.AlLà\›QA˜<Ø.AlL€W›QA˜€æ×.AlLR›QA˜€~×.AlLàI›QA˜×.AlL€@›QA˜ìÖ.AlLÀ:›QA˜€Ö.AlLÀ2›QA˜MÖ.AlL@0›QA˜ÃÕ.AlL /›QA˜€KÕ.AlL`0›QA˜ÿÔ.AlL 3›QA˜€WÔ.AlL@8›QA˜öÓ.AlL€=›QA˜‘Ó.AlLàC›QA˜}Ó.AlL E›QA˜FÓ.AlL@N›QA˜Ó.AlL€V›QA˜ÌÒ.AlLÀ[›QA˜€bÒ.AlL `›QA˜Ò.AlL€^›QA˜™Ñ.AlL Y›QA˜€WÑ.AlLÀT›QA˜€Ñ.AlLàQ›QA˜¦Ð.AlL@N›QA˜Ð.AlLàH›QA˜€{Ï.AlLàH›QA˜îÎ.AlLàJ›QA˜DÎ.AlL`K›QA˜ÛÍ.AlLL›QA˜€ôÌ.AlLO›QA˜4Ì.AlLàP›QA˜€'Ë.AlLÀV›QA˜ÛÊ.AlL`V›QA˜ŒÊ.AlL`T›QA˜Ê.AlL€Q›QA˜€°É.AlL€F›QA˜bÉ.AlLÀ>›QA˜€ É.AlL€8›QA˜”È.AlL 2›QA˜>È.AlL -›QA˜öÇ.AlLÀ0›QA˜€™Ç.AlL€4›QA˜€9Ç.AlLà6›QA˜ÐÆ.AlLÀ8›QA˜}Æ.AlL€9›QA˜€Æ.AlL€7›QA˜¸Å.AlL6›QA˜|Å.AlL5›QA˜€FÅ.AlL 4›QA˜òÄ.AlL`3›QA˜ŠÄ.AlLà1›QA˜ôÃ.AlL 4›QA˜œÃ.AlL`7›QA˜€YÃ.AlLà:›QA˜€ËÁ.AlL€L›QA˜ûÀ.AlLT›QA˜€´À.AlL V›QA˜SÀ.AlLÀW›QA˜À.AlL ^›QA˜ž¿.AlL€b›QA˜€ç¾.AlL@f›QA˜n¾.AlL c›QA˜´½.AlL€a›QA˜€½.AlL Z›QA˜€×¼.AlL€U›QA˜-¼.AlLÀM›QA˜Ò».AlL€J›QA˜€».AlL`B›QA˜€@º.AlL ;›QA˜ê¹.AlL 4›QA˜€ü¸.AlL@)›QA˜€Û·.AlL ›QA˜„¶.AlL ›QA˜¥µ.AlL üšQA˜€µ.AlL`ôšQA˜ò´.AlL@ûšQA˜€Ù´.AlL ›QA˜€É´.AlLÀ ›QA˜·´.AlL@›QA˜€¾´.AlL@›QA˜Ò´.AlLÀ&›QA˜€Ê´.AlLÀ3›QA˜³´.AlL D›QA˜€®´.AlLàL›QA˜€»´.AlL V›QA˜®´.AlLÀ\›QA˜€…´.AlLà`›QA˜€}´.AlLàj›QA˜t´.AlL`u›QA˜€a´.AlL›QA˜[´.AlL€ˆ›QA˜;´.AlL@›QA˜€'´.AlL ™›QA˜€ï³.AlLÀ£›QA˜y³.AlL`¼›QA˜E³.AlL@Ç›QA˜³.AlL Ñ›QA˜€Ö².AlL à›QA˜€¥².AlLÀè›QA˜™².AlLô›QA˜€§².AlL€œQA˜€¸².AlLàœQA˜ä².AlL œQA˜³.AlL`)œQA˜€1³.AlL€=œQA˜³.AlL CœQA˜1³.AlLLœQA˜€P³.AlL`[œQA˜I³.AlL`eœQA˜B³.AlL nœQA˜A³.AlL wœQA˜8³.AlL €œQA˜8³.AlL€‹œQA˜€b³.AlL •œQA˜€ˆ³.AlLÀ œQA˜–³.AlLÀ¬œQA˜€„³.AlL๜QA˜€‚³.AlLàÄœQA˜׳.AlL€ÏœQA˜€!´.AlL ÚœQA˜€j´.AlL çœQA˜€°´.AlLóœQA˜€ð´.AlL þœQA˜€Aµ.AlL QA˜µ.AlL€QA˜€žµ.AlL +QA˜€pµ.AlLp1QA˜0µ.AlL€9QA˜€ú´.AlL`CQA˜д.AlL€GQA˜€´.AlLÀNQA˜€Y´.AlL`UQA˜#´.AlL@dQA˜€´.AlL@nQA˜´.AlLÀwQA˜€Ö³.AlL@QA˜–³.AlLàˆQA˜€R³.AlL •QA˜³.AlL@¨QA˜€!³.AlL ·QA˜€ ³.AlL@ÃQA˜€Ý².AlLÀÏQA˜ز.AlLÀÙQA˜õ².AlLàñQA˜³.AlL  žQA˜€%³.AlLÀžQA˜€=³.AlLÀ'žQA˜H³.AlL9žQA˜€Y³.AlL`HžQA˜‹³.AlL€TžQA˜±³.AlL \žQA˜À³.AlLÀhžQA˜½³.AlLàxžQA˜¼³.AlL`…žQA˜€¹³.AlL`žQA˜س.AlL@›žQA˜€ ´.AlL¦žQA˜€Q´.AlL ¬žQA˜€Ó´.AlL »žQA˜»´.AlLÇžQA˜€ ´.AlL ÖžQA˜€^´.AlL çžQA˜€ù³.AlL úžQA˜€Ò³.AlLŸQA˜€Ò³.AlL` ŸQA˜°³.AlL ŸQA˜f³.AlL@ŸQA˜T³.AlL0"ŸQA˜<³.AlLÀ)ŸQA˜ò².AlL?ŸQA˜¨².AlL`LŸQA˜€‡².AlLàWŸQA˜€Ž².AlLÀdŸQA˜k².AlLkŸQA˜k².AlL`uŸQA˜¨².AlL xŸQA˜à².AlL |ŸQA˜ݲ.AlLଟQA˜¸².AlL µŸQA˜€s².AlL ÇŸQA˜3².AlL`ÒŸQA˜,².AlL ÛŸQA˜T².AlL@æŸQA˜€[².AlL ïŸQA˜€A².AlL€ýŸQA˜€<².AlL€  QA˜€R².AlL@ QA˜€D².AlL' QA˜€².AlL: QA˜ë±.AlL`H QA˜¬±.AlLàP QA˜o±.AlL`] QA˜€k±.AlL@j QA˜8±.AlL … QA˜±.AlL‹ QA˜û°.AlL@’ QA˜±.AlL`™ QA˜€æ°.AlLठQA˜€ê°.AlL€¯ QA˜ÿ°.AlL€¶ QA˜±.AlLའQA˜€±.AlLÀÇ QA˜€±.AlLàΠQA˜€ï°.AlLÙ QA˜I±.AlLÀÞ QA˜€„±.AlL à QA˜€Ð±.AlL€à QA˜&².AlLÀÞ QA˜s².AlL Ý QA˜°².AlL à QA˜ë².AlLæ QA˜9³.AlL æ QA˜p³.AlLàè QA˜§³.AlL ì QA˜€´.AlL€ô QA˜5´.AlL`ø QA˜€g´.AlL û QA˜€Ñ´.AlLü QA˜€$µ.AlL@û QA˜€\µ.AlLÀû QA˜µ.AlL û QA˜ãµ.AlL ù QA˜J¶.AlL`û QA˜€¶.AlL`¡QA˜€¨¶.AlL@¡QA˜Ó¶.AlL  ¡QA˜·.AlL@ ¡QA˜K·.AlLà¡QA˜€‹·.AlLÀ¡QA˜€¹·.AlL`¡QA˜€î·.AlLà¡QA˜€¸.AlL#¡QA˜6¸.AlL +¡QA˜€S¸.AlL 0¡QA˜€p¸.AlL 6¡QA˜§¸.AlL`=¡QA˜€ú¸.AlLà:¡QA˜3¹.AlLà:¡QA˜f¹.AlL ;¡QA˜˜¹.AlL€=¡QA˜€©¹.AlLF¡QA˜z¹.AlL`L¡QA˜s¹.AlLÀV¡QA˜”¹.AlLà]¡QA˜½¹.AlLàg¡QA˜€Û¹.AlL n¡QA˜€º.AlL€s¡QA˜€1º.AlL`v¡QA˜€`º.AlL |¡QA˜€„º.AlL@€¡QA˜»º.AlL€†¡QA˜ûº.AlL‹¡QA˜b».AlLŽ¡QA˜€¹».AlLÀ¡QA˜€¼.AlL`¡QA˜l¼.AlL€¡QA˜€ª¼.AlLÀ…¡QA˜€×¼.AlL`€¡QA˜J½.AlL „¡QA˜¥½.AlLà†¡QA˜ö½.AlL ‚¡QA˜<¾.AlLÀ¡QA˜¬¾.AlLà€¡QA˜€-¿.AlL€¡QA˜€š¿.AlL€~¡QA˜À.AlL x¡QA˜qÀ.AlL@u¡QA˜€®À.AlL@g¡QA˜»À.AlL]¡QA˜€ÚÀ.AlLÀS¡QA˜4Á.AlLÀM¡QA˜qÁ.AlLàT¡QA˜€¦Á.AlLÀX¡QA˜ìÁ.AlL`Z¡QA˜Â.AlL€W¡QA˜YÂ.AlLÀG¡QA˜€ƒÂ.AlL @¡QA˜ñÂ.AlL€4¡QA˜€oÃ.AlLÀ)¡QA˜Ã.AlL ¡QA˜€·Ã.AlLÀ ¡QA˜€>Ä.AlLà ¡QA˜€uÄ.AlL ¡QA˜€žÄ.AlL`ø QA˜ÓÄ.AlLê QA˜æÄ.AlL á QA˜Å.AlL Ö QA˜CÅ.AlLÊ QA˜^Å.AlL๠QA˜kÅ.AlLÀ­ QA˜ÑÅ.AlL€  QA˜Æ.AlLà’ QA˜]Æ.AlL „ QA˜±Æ.AlL@{ QA˜³Æ.AlLÀp QA˜€ÒÆ.AlLàb QA˜€Ç.AlL V QA˜€Ç.AlLÀH QA˜Ç.AlL 8 QA˜|Ç.AlL`, QA˜ÕÇ.AlL€# QA˜È.AlLÀ QA˜€dÈ.AlL° QA˜ŸÈ.AlLóŸQA˜ É.AlL@ÄŸQA˜.É.AlL౟QA˜°É.AlL šŸQA˜Ê.AlLÀŽŸQA˜€7Ê.AlL‡ŸQA˜˜Ê.AlL€ŸQA˜€íÊ.AlLwŸQA˜€LË.AlL@kŸQA˜€©Ë.AlLàWŸQA˜€[Ì.AlLÀVŸQA˜€ÝÌ.AlL ^ŸQA˜WÍ.AlLà`ŸQA˜€ÑÍ.AlL€aŸQA˜1Î.AlL _ŸQA˜ãÎ.AlL€OŸQA˜®Ï.AlLà=ŸQA˜øÏ.AlL@3ŸQA˜†Ð.AlL ŸQA˜ Ñ.AlL`ŸQA˜€AÑ.AlL€èžQA˜eÑ.AlL מQA˜€{Ñ.AlL€¾žQA˜{Ñ.AlL °žQA˜yÑ.AlL€žžQA˜€‡Ñ.AlLà’žQA˜€œÑ.AlL ‚žQA˜¦Ñ.AlL€žQA˜ÃÑ.AlLxžQA˜áÑ.AlLàlžQA˜ Ò.AlL@pžQA˜€WÒ.AlLÀtžQA˜ÑÒ.AlL`~žQA˜€?Ó.AlL`ŒžQA˜tÓ.AlL ‘žQA˜€ÇÓ.AlL ˜žQA˜EÔ.AlL¦žQA˜qÔ.AlL ­žQA˜–Ô.AlL๞QA˜Õ.AlL ¹žQA˜OÕ.AlL@ÁžQA˜€£Õ.AlL@ÌžQA˜þÕ.AlLÌžQA˜Ö.AlLÔžQA˜€EÖ.AlLÜžQA˜€”Ö.AlLÀâžQA˜åÖ.AlLêžQA˜€`×.AlL`öžQA˜€³×.AlL ùžQA˜Ø.AlL€ŸQA˜nØ.AlL ŸQA˜€ÔØ.AlL@ŸQA˜?Ù.AlL&ŸQA˜€ÂÙ.AlLÀ2ŸQA˜Ú.AlLÀ9ŸQA˜’Ú.AlL =ŸQA˜€Û.AlLà9ŸQA˜HÛ.AlL`8ŸQA˜pÛ.AlL<ŸQA˜ÀÛ.AlLÀDŸQA˜#Ü.AlL€TŸQA˜€TÜ.AlL@aŸQA˜ÅÜ.AlLpŸQA˜AÝ.AlL qŸQA˜ÏÝ.AlL€kŸQA˜€Þ.AlLàcŸQA˜€WÞ.AlL`]ŸQA˜€tÞ.AlLp]ŸQA˜ªÞ.AlL ]ŸQA˜zß.AlLà[ŸQA˜€.à.AlLÀ\ŸQA˜€Ðà.AlL [ŸQA˜pá.AlLÀYŸQA˜€ôá.AlL ]ŸQA˜€gâ.AlL \ŸQA˜—â.AlLÀZŸQA˜ùâ.AlLàQŸQA˜Yã.AlL GŸQA˜Ûã.AlL 6ŸQA˜xä.AlL@(ŸQA˜øä.AlLÀ!ŸQA˜^å.AlLà"ŸQA˜»å.AlLÀ%ŸQA˜îå.AlL`(ŸQA˜Aæ.AlL€<ŸQA˜€Êæ.AlL€FŸQA˜€:ç.AlL€DŸQA˜Îç.AlL<ŸQA˜Kè.AlL;ŸQA˜­è.AlLà;ŸQA˜€é.AlL`<ŸQA˜é.AlLÀ6ŸQA˜€Aê.AlLà3ŸQA˜€ºê.AlL`3ŸQA˜ë.AlLà*ŸQA˜Së.AlL`)ŸQA˜žë.AlL`3ŸQA˜Üë.AlLà6ŸQA˜/ì.AlL 9ŸQA˜[ì.AlL€6ŸQA˜¦ì.AlL9ŸQA˜€ãì.AlL@FŸQA˜í.AlL ZŸQA˜Ôí.AlL hŸQA˜€î.AlLvŸQA˜Tî.AlL ‚ŸQA˜€î.AlLŸQA˜Åî.AlL`”ŸQA˜€îî.AlL œŸQA˜Oï.AlL@«ŸQA˜ï.AlL€¶ŸQA˜€wï.AlLÀŸQA˜€„ï.AlL ÉŸQA˜ï.AlLÀÒŸQA˜€„ï.AlL@ÛŸQA˜€Îï.AlL ßŸQA˜€ð.AlL àŸQA˜Zð.AlL ìŸQA˜€ð.AlLàûŸQA˜‹ð.AlL€  QA˜€“ð.AlL` QA˜äð.AlL€' QA˜^ñ.AlL@0 QA˜£ñ.AlLÀ5 QA˜€çñ.AlL6 QA˜-ò.AlL@? QA˜Ûó.AlL`\ QA˜€òô.AlL v QA˜Qö.AlL`’ QA˜ö.AlL€ QA˜€ºö.AlL€‰ QA˜ñö.AlL … QA˜.÷.AlL@‡ QA˜€M÷.AlLÀŒ QA˜@÷.AlL ’ QA˜÷.AlL`› QA˜€ ø.AlL› QA˜€Pø.AlLà› QA˜ ø.AlL¡ QA˜èø.AlL@¦ QA˜ù.AlL`¬ QA˜€qù.AlL€® QA˜Îù.AlL@µ QA˜@ú.AlLÄ QA˜?ú.AlL Ò QA˜)ú.AlLÜ QA˜^ú.AlL`æ QA˜€½ú.AlL`ë QA˜€û.AlL@î QA˜ˆû.AlL é QA˜€âû.AlLê QA˜=ü.AlLÀì QA˜›ü.AlL`í QA˜Ïü.AlLÀê QA˜€*ý.AlL`ð QA˜Pý.AlLõ QA˜€³ý.AlL`û QA˜ñý.AlL¡QA˜#þ.AlL ¡QA˜cþ.AlL¡QA˜€¸þ.AlL`.¡QA˜ÿ.AlLÀ<¡QA˜’ÿ.AlL`F¡QA˜Ãÿ.AlLàS¡QA˜€ßÿ.AlLb¡QA˜€,/AlLo¡QA˜I/AlL€y¡QA˜P/AlL …¡QA˜P/AlL@Ž¡QA˜€œ/AlL ”¡QA˜€Ý/AlL@—¡QA˜€ô/AlLÀœ¡QA˜Õ/AlL@¦¡QA˜/AlL@©¡QA˜`/AlL®¡QA˜€a/AlL`¶¡QA˜€š/AlL áQA˜€«/AlLàÏ¡QA˜À/AlL`Ú¡QA˜€Ã/AlL@â¡QA˜¼/AlL è¡QA˜ý/AlL€î¡QA˜€/AlLõ¡QA˜€>/AlLàú¡QA˜E/AlL@¢QA˜X/AlLÀ ¢QA˜b/AlL`¢QA˜€‡/AlL@¢QA˜€Ã/AlL@¢QA˜€&/AlL !¢QA˜]/AlL '¢QA˜Œ/AlL`.¢QA˜€²/AlL@5¢QA˜€Í/AlL€>¢QA˜ä/AlLÀD¢QA˜ó/AlLàM¢QA˜ô/AlL[¢QA˜ü/AlL`b¢QA˜./AlL@b¢QA˜€s/AlL``¢QA˜ /AlL@f¢QA˜€ /AlLÀl¢QA˜€Q/AlL f¢QA˜Ž/AlL i¢QA˜€Â/AlL l¢QA˜€ú/AlL t¢QA˜€(/AlL |¢QA˜0/AlL€ˆ¢QA˜€^/AlL ’¢QA˜€í/AlL¢QA˜V/AlL` ¢QA˜€‚/AlL`§¢QA˜¾/AlL °¢QA˜/AlL@´¢QA˜€H/AlL ¸¢QA˜z/AlL ¸¢QA˜«/AlLÀ¢QA˜€ /AlL€Ï¢QA˜[/AlLÞ¢QA˜€/AlLàæ¢QA˜€Ž/AlLÀé¢QA˜Ã/AlL@ô¢QA˜U /AlLàߢQA˜À /AlLТQA˜6 /AlL ¿¢QA˜ê /AlL`¨¢QA˜€x /AlLÀ’¢QA˜€” /AlLà‹¢QA˜œ /AlL`‚¢QA˜€– /AlLÀv¢QA˜ˆ /AlL l¢QA˜J/AlL€0žQA˜²/AlLÀ žQA˜€„/AlLÀþQA˜</AlL@íQA˜€ü/AlL`àQA˜€ª/AlL ÕQA˜t/AlL`ÊQA˜/AlL@¸QA˜þ/AlLà¬QA˜€/AlLÀ¸QA˜á/AlLà®QA˜y/AlL@¦QA˜€./AlL ¦QA˜Ü/AlL ¢QA˜©/AlL  QA˜€W/AlL@ÒQA˜€É/AlL`äQA˜€/AlL`žQA˜ž/AlL@ žQA˜f/AlLÀžQA˜/AlLžQA˜¥/AlL€žQA˜I/AlLòQA˜ô/AlL ÝQA˜€á/AlL ÌQA˜à/AlL¹QA˜€/AlL@uQA˜€ú/AlL dQA˜ž/AlLaQA˜€`/AlLÀfQA˜€/AlL`kQA˜´/AlL`mQA˜g/AlL mQA˜L/AlL`šQA˜€û/AlLÀûQA˜€Î/AlL (žQA˜€í/AlL@6žQA˜|/AlL9žQA˜é/AlL@=žQA˜€;/AlL€GžQA˜‰/AlLQžQA˜Ó/AlLàWžQA˜€/AlL`ažQA˜I/AlLhžQA˜X/AlL€qžQA˜€L/AlL zžQA˜</AlLƒžQA˜€/AlLÀˆžQA˜€à/AlLàžQA˜§/AlL`”žQA˜ü/AlL žžQA˜€/AlL ¨žQA˜L/AlL ²žQA˜“/AlL ©žQA˜/AlL@˜žQA˜€e/AlLƒžQA˜/AlLÀ`žQA˜J/AlL€0žQA˜£/AlLÀ/ŸQA˜/AlLÀ.ŸQA˜¤/AlL1ŸQA˜€%/AlL`6ŸQA˜¡/AlL 4ŸQA˜/AlL@6ŸQA˜€Œ/AlLÀ4ŸQA˜€ö/AlL 5ŸQA˜€Š/AlL;ŸQA˜Ú/AlLà5ŸQA˜r/AlL ,ŸQA˜¿/AlLŸQA˜»/AlLàÿžQA˜€B/AlL€ôžQA˜/AlL€ŸQA˜ù/AlL@ŸQA˜Ø/AlLÀŸQA˜b/AlLŸQA˜ü/AlL`ŸQA˜€Ó/AlLÀ;ŸQA˜A/AlL@7ŸQA˜#/AlLà4ŸQA˜£/AlLÀ/ŸQA˜o/AlL`åžQA˜€„/AlL`žžQA˜€É/AlLÉžQA˜/AlLàÑžQA˜X/AlL ÕžQA˜Á/AlLÀÚžQA˜/AlLàäžQA˜€z/AlLížQA˜€Á/AlLàòžQA˜€ /AlL@öžQA˜/AlL`ñžQA˜€­/AlL êžQA˜Ö/AlLÀæžQA˜€/AlL æžQA˜o/AlL`åžQA˜^/AlL KQA˜É/AlLJQA˜6/AlL€JQA˜€‘/AlL@HQA˜€ù/AlL@IQA˜7/AlLÀGQA˜€O/AlL n/AlLàžQA˜-n/AlL ½¾QA˜"n/AlL€³¾QA˜+n/AlL§¾QA˜n/AlL¾QA˜n/AlL ¾QA˜€n/AlL@†¾QA˜Ým/AlLÀw¾QA˜€Èm/AlL`q¾QA˜€·m/AlL`h¾QA˜£m/AlLàS¾QA˜lm/AlLÀI¾QA˜Hm/AlL@C¾QA˜m/AlL€?¾QA˜1m/AlL`5¾QA˜€@m/AlL€/¾QA˜Pm/AlL &¾QA˜Wm/AlLà¾QA˜€Tm/AlL@¾QA˜Fm/AlL€¾QA˜Mm/AlLÀô½QA˜bm/AlL è½QA˜€lm/AlL`ݽQA˜€m/AlLÀÔ½QA˜©m/AlLÀýQA˜Ôm/AlL ´½QA˜€n/AlL ¢½QA˜)n/AlL ½QA˜Rn/AlLà|½QA˜€kn/AlL€k½QA˜ˆn/AlL Y½QA˜€›n/AlLL½QA˜n/AlL E½QA˜€Sn/AlL=½QA˜€!n/AlL5½QA˜ým/AlL *½QA˜Õm/AlL€½QA˜n/AlL½QA˜>n/AlL@½QA˜€[n/AlLÀÿ¼QA˜‚n/AlLÀô¼QA˜€©n/AlL€ç¼QA˜¾n/AlLàØ¼QA˜Ýn/AlL€Á¼QA˜€o/AlL ¶¼QA˜€&o/AlL€¦¼QA˜€o/AlL€™¼QA˜o/AlL †¼QA˜€o/AlL}¼QA˜#o/AlLào¼QA˜€3o/AlLà`¼QA˜€Ho/AlLÀP¼QA˜ro/AlLÀF¼QA˜€Ío/AlL F¼QA˜-p/AlL`C¼QA˜p/AlL€:¼QA˜€Âp/AlLà-¼QA˜q/AlL %¼QA˜jq/AlL@%¼QA˜Òq/AlL #¼QA˜ r/AlL@ ¼QA˜Wr/AlL@¼QA˜®r/AlL@¼QA˜:s/AlL ¼QA˜Is/AlL ú»QA˜€?s/AlL@î»QA˜3s/AlL ä»QA˜s/AlLÀÚ»QA˜s/AlL Ñ»QA˜€ s/AlL É»QA˜s/AlL`Á»QA˜,s/AlL±»QA˜€=s/AlL ©»QA˜Œr/AlL§»QA˜7r/AlL€¨»QA˜€ðq/AlL€«»QA˜©q/AlLà­»QA˜Eq/AlLÀ°»QA˜âp/AlLà°»QA˜¡p/AlL®»QA˜€p/AlLà«»QA˜mp/AlL _»QA˜%q/AlL@e»QA˜€q/AlL »QA˜€½n/AlLà»QA˜€*m/AlL  »QA˜€Fl/AlL€*»QA˜Ñk/AlLà6»QA˜Qk/AlL J»QA˜k/AlLàV»QA˜€jj/AlL`p»QA˜€j/AlLà‚»QA˜µi/AlL ‘»QA˜si/AlL`”»QA˜Ñg/AlL`Œ»QA˜pg/AlL »QA˜€g/AlLŒ»QA˜€¾f/AlL€»QA˜€f/AlLÀŽ»QA˜€9f/AlLàŽ»QA˜hd/AlL »QA˜cd/AlL`œ»QA˜€]d/AlLࢻQA˜€Ud/AlL °»QA˜Wd/AlL@½»QA˜dd/AlLàÅ»QA˜pd/AlL€Ì»QA˜€ d/AlLàÌ»QA˜Éc/AlLÉ»QA˜€c/AlL@Æ»QA˜€êb/AlL Ä»QA˜sb/AlL»QA˜€Úa/AlLÁ»QA˜€Qa/AlLÀº»QA˜ä`/AlLà­»QA˜€x`/AlL€¤»QA˜€`/AlL`œ»QA˜­_/AlL`—»QA˜€F_/AlL “»QA˜¼^/AlL€»QA˜€O^/AlL€’»QA˜€Ó]/AlLÀ”»QA˜~]/AlL@–»QA˜ë\/AlL€š»QA˜€¤\/AlL »QA˜5\/AlLàž»QA˜€à[/AlL ž»QA˜€‡[/AlL »QA˜€ñZ/AlL›»QA˜‚Z/AlL ™»QA˜Z/AlL ˜»QA˜*Y/AlL(–»QA˜ŽY/AlL 9»QA˜€žY/AlLÀ*»QA˜¢Y/AlL`»QA˜˜Y/AlL »QA˜€†Y/AlL`ðºQA˜€pY/AlL ÛºQA˜€qY/AlL˺QA˜€pY/AlL ¶ºQA˜€qY/AlLÀªºQA˜…Y/AlL ’ºQA˜ŠY/AlLºQA˜„Y/AlL lºQA˜uY/AlL XºQA˜@nY/AlLèQºQA˜³Q/AlL€ÈºQA˜€1N/AlL ¡ºQA˜€²G/AlL`JºQA˜Ã@/AlLpuºQA˜€‹@/AlLuºQA˜€;@/AlL@uºQA˜€Ö?/AlL vºQA˜€o?/AlLÀvºQA˜€þ>/AlL@wºQA˜€>/AlL@xºQA˜€%>/AlL zºQA˜µ=/AlLàyºQA˜€.=/AlL@}ºQA˜€(;/AlL`‰ºQA˜ñ:/AlLà‡ºQA˜¨:/AlL€…ºQA˜;:/AlL€†ºQA˜ô9/AlL ‡ºQA˜”9/AlL ŠºQA˜€9/AlL`ºQA˜E8/AlL€’ºQA˜&G/AlL@¤¼QA˜G/AlL°¥¼QA˜€ªF/AlLð´¼QA˜€€F/AlL º¼QA˜€6F/AlL€Ä¼QA˜}E/AlL Ú¼QA˜QE/AlLÞ¼QA˜€1E/AlL€à¼QA˜þD/AlLæ¼QA˜€ÞD/AlLàò¼QA˜€ÕD/AlL€ü¼QA˜€ÈD/AlL@½QA˜ÆD/AlL@½QA˜ÁD/AlL€½QA˜¿D/AlL ½QA˜¾D/AlL &½QA˜¬D/AlL1½QA˜7D/AlL J½QA˜€øC/AlL U½QA˜€°C/AlL[½QA˜ŒC/AlLÀ_½QA˜€hC/AlL€e½QA˜+C/AlL@n½QA˜€èB/AlLÀr½QA˜€§B/AlL`s½QA˜€tB/AlLÀu½QA˜HB/AlL |½QA˜+B/AlL`…½QA˜B/AlL “½QA˜€ B/AlLÀ ½QA˜€ÃA/AlL«½QA˜€˜A/AlL`³½QA˜{A/AlL`¹½QA˜iA/AlL@À½QA˜bA/AlL@ȽQA˜KA/AlLàÔ½QA˜A/AlLàá½QA˜€ô@/AlL€ç½QA˜Î@/AlL€î½QA˜»@/AlL ô½QA˜€ @/AlL û½QA˜€z@/AlL ¾QA˜Z@/AlL ¾QA˜=@/AlL@¾QA˜ @/AlL#¾QA˜ @/AlL`)¾QA˜í?/AlL 5¾QA˜€Þ?/AlLà=¾QA˜Ø?/AlL I¾QA˜€Ú?/AlL`S¾QA˜ü?/AlL@Y¾QA˜€@/AlLà`¾QA˜8@/AlLàg¾QA˜^@/AlL@u¾QA˜}@/AlL ¾QA˜x@/AlL ˆ¾QA˜€k@/AlL ”¾QA˜€\@/AlL ¾QA˜€i@/AlL ©¾QA˜€k@/AlL@´¾QA˜P@/AlL ½¾QA˜€4@/AlLàþQA˜€ @/AlL Ê¾QA˜ð?/AlL Ñ¾QA˜Ó?/AlL Þ¾QA˜€Æ?/AlL é¾QA˜µ?/AlL`¿QA˜€œ?/AlL€¿QA˜?/AlL@0¿QA˜Y?/AlLA¿QA˜"?/AlLj¿QA˜ ?/AlL y¿QA˜?/AlL@¿QA˜ÿ>/AlLÀ„¿QA˜ä>/AlLà—¿QA˜Û>/AlL ¤¿QA˜Î>/AlLà·¿QA˜Á>/AlLàÇ¿QA˜¸>/AlL Ø¿QA˜º>/AlLî¿QA˜€ø>/AlLpÀQA˜T?/AlLàÀQA˜“?/AlL$ÀQA˜´?/AlL )ÀQA˜f@/AlL WÀQA˜€ @/AlL€dÀQA˜Þ@/AlL lÀQA˜€A/AlL@vÀQA˜€‚A/AlL €ÀQA˜ÇA/AlLÀ†ÀQA˜B/AlLÀQA˜€tB/AlL`˜ÀQA˜€ºB/AlLp ÀQA˜€E/AlLçÀQA˜QE/AlL€ñÀQA˜€—E/AlLÁQA˜×E/AlL ÁQA˜ F/AlLàÁQA˜AF/AlLàÁQA˜gF/AlL@ÁQA˜œF/AlL€%ÁQA˜ËF/AlL .ÁQA˜€ G/AlLBÁQA˜G/AlL@TÁQA˜€lH/AlLà†ÁQA˜€I/AlL¬ÁQA˜€ÓI/AlL0ÚÁQA˜€éI/AlL ßÁQA˜‚J/AlLàÐÁQA˜€ÊJ/AlL€ÐÁQA˜TK/AlL€ÏÁQA˜žK/AlL`ÌÁQA˜€àK/AlL@ÌÁQA˜ÁQA˜9Ÿ/AlL`9ÁQA˜Òž/AlL .ÁQA˜€Xž/AlL"ÁQA˜è/AlL€ÁQA˜”/AlL`ÁQA˜u/AlL€öÀQA˜€z/AlL óÀQA˜€/AlLàçÀQA˜—/AlLÀáÀQA˜€h/AlLÀ×ÀQA˜€'/AlL ÆÀQA˜k/AlL ÄÀQA˜“/AlLÀ½ÀQA˜É/AlLà·ÀQA˜ü/AlL€®ÀQA˜%ž/AlL ¦ÀQA˜€6ž/AlLÀQA˜€<ž/AlL€•ÀQA˜0ž/AlL@ˆÀQA˜€ ž/AlLP€ÀQA˜€ž/AlL ~ÀQA˜¸/AlL tÀQA˜A/AlLÀbÀQA˜/AlL VÀQA˜­œ/AlL@HÀQA˜rœ/AlLÀBÀQA˜;œ/AlLà8ÀQA˜o›/AlL`ÀQA˜š/AlL é¿QA˜m™/AlLÀ¥¿QA˜€z˜/AlLàq¿QA˜€˜/AlL`U¿QA˜@×—/AlLH<¿QA˜€Æ—/AlLP6¿QA˜–/AlL Ÿ¾QA˜þ•/AlL•¾QA˜Ú•/AlL`‰¾QA˜È•/AlL„¾QA˜­•/AlLà{¾QA˜€ˆ•/AlL@k¾QA˜€7•/AlL Z¾QA˜€•/AlL@D¾QA˜€d”/AlLØ'¾QA˜[”/AlL@&¾QA˜(”/AlL+¾QA˜€ÿ“/AlL@/¾QA˜€±“/AlL@'¾QA˜F“/AlL@¾QA˜€Ï’/AlLà¾QA˜€w’/AlL¾QA˜€&’/AlL€ý½QA˜?‘/AlL€ò½QA˜q/AlLàâ½QA˜\/AlLÀνQA˜/AlL࿽QA˜Ž/AlL ½QA˜€»/AlL`|½QA˜~/AlL t½QA˜//AlL`g½QA˜ÔŒ/AlL€Y½QA˜<Œ/AlLÀE½QA˜€Á‹/AlLà6½QA˜Š‹/AlLà-½QA˜€6‹/AlL"½QA˜€ÀŠ/AlL`½QA˜€\Š/AlL ½QA˜Þ‰/AlL ½QA˜¿‰/AlL°½QA˜t‰/AlLàý¼QA˜ýˆ/AlLó¼QA˜šˆ/AlL é¼QA˜€5ˆ/AlL Þ¼QA˜€¼‡/AlL€Ð¼QA˜B‡/AlL żQA˜€Ñ†/AlL๼QA˜[†/AlL€¯¼QA˜†/AlL ¤¼QA˜€ì…/AlL€ ¼QA˜½…/AlL€›¼QA˜€˜…/AlLà‘¼QA˜€…/AlLƒ¼QA˜€¼„/AlL€u¼QA˜„/AlLÀl¼QA˜€*„/AlL ^¼QA˜ă/AlLàL¼QA˜€þ‚/AlL@*¼QA˜b‚/AlL@¼QA˜€‚/AlL ¼QA˜Ñ/AlL`¼QA˜€x/AlL€¼QA˜€/AlL€¼QA˜€/AlL@Ô»QA˜§~/AlL Â»QA˜€O~/AlL಻QA˜»}/AlL@”»QA˜µ}/AlL“»QA˜À«}/AlL ‘»QA˜€{}/AlL`~»QA˜€<}/AlLn»QA˜B}/AlL@`»QA˜0}/AlLY»QA˜Ú|/AlL@M»QA˜µ|/AlL D»QA˜€ž|/AlLà<»QA˜g|/AlLÀ0»QA˜€7|/AlL (»QA˜€÷{/AlL@»QA˜€Í{/AlL »QA˜€x{/AlL»QA˜K{/AlL »QA˜-{/AlL€"»QA˜{/AlLà.»QA˜Àz/AlL 8»QA˜€^z/AlL€O»QA˜€&z/AlL^»QA˜€z/AlL`k»QA˜€üy/AlL v»QA˜Ýy/AlL {»QA˜y/AlL@»QA˜gy/AlLÀ”»QA˜yx/AlL@Ë»QA˜x/AlL`È»QA˜€³w/AlL`Ä»QA˜jw/AlL¿»QA˜#w/AlL฻QA˜€§v/AlLÀ³»QA˜€|v/AlL ¸»QA˜€ßu/AlL`ü»QA˜#v/AlLû»QA˜€`v/AlL€û»QA˜™v/AlL ¼QA˜€Ðv/AlLÀý»QA˜€Åw/AlLàö»QA˜÷w/AlLàø»QA˜èw/AlL€¼QA˜×w/AlL  ¼QA˜½w/AlLÀ¼QA˜€¦w/AlLà&¼QA˜€•w/AlL`3¼QA˜{w/AlL@E¼QA˜nw/AlL N¼QA˜Tw/AlL@Y¼QA˜€=w/AlL`h¼QA˜,w/AlL€u¼QA˜€(w/AlL †¼QA˜*w/AlL@’¼QA˜w/AlL¤¼QA˜w/AlL¯¼QA˜€&w/AlL ¼¼QA˜€w/AlL Ä¼QA˜w/AlLÀμQA˜w/AlLÙ¼QA˜€ùv/AlLå¼QA˜év/AlL ì¼QA˜×v/AlL€ó¼QA˜€´v/AlL€û¼QA˜€v/AlL ½QA˜€v/AlL ½QA˜€‚v/AlL`)½QA˜„v/AlLÀ5½QA˜zv/AlLG½QA˜}v/AlL S½QA˜v/AlLà]½QA˜‰v/AlLàh½QA˜~v/AlLÀx½QA˜€zv/AlL †½QA˜yv/AlL`”½QA˜€ov/AlL©½QA˜@v/AlL@ó½QA˜6v/AlL@¾QA˜0v/AlL@ ¾QA˜*v/AlLÀ¾QA˜€&v/AlL '¾QA˜€v/AlL2¾QA˜v/AlLà:¾QA˜€âu/AlL J¾QA˜€íu/AlL R¾QA˜€€/AlLÀQA˜€/AlLIÀQA˜€o/AlLPfÀQA˜†/AlL`nÀQA˜°‡/AlL@§ÂQA˜€â‡/AlL  ÂQA˜ˆ/AlL ™ÂQA˜€lˆ/AlL@ÂQA˜›ˆ/AlL ˆÂQA˜€‰/AlLƒÂQA˜A‰/AlLÀ~ÂQA˜q‰/AlL {ÂQA˜´‰/AlL{ÂQA˜õ‰/AlLvÂQA˜nŠ/AlLoÂQA˜ÜŠ/AlLlÂQA˜P‹/AlL@jÂQA˜7Œ/AlLkÂQA˜uŒ/AlL@kÂQA˜¼Œ/AlL€nÂQA˜€ /AlL`mÂQA˜x/AlL lÂQA˜€î/AlL`lÂQA˜WŽ/AlL€lÂQA˜–Ž/AlL pÂQA˜€/AlLàmÂQA˜½/AlL pÂQA˜€ì/AlL qÂQA˜|/AlLmÂQA˜½/AlLàkÂQA˜€ù/AlLàkÂQA˜=‘/AlLjÂQA˜€r‘/AlLàgÂQA˜Ä‘/AlL fÂQA˜'’/AlLiÂQA˜f’/AlL oÂQA˜²’/AlLÀrÂQA˜€“/AlL€uÂQA˜B“/AlLuÂQA˜{“/AlL@tÂQA˜‡“/AlL tÂQA˜€Æ“/AlL`qÂQA˜€”/AlL kÂQA˜Q”/AlL gÂQA˜•/AlL nÂQA˜F•/AlLÀrÂQA˜Š•/AlL`wÂQA˜ê•/AlL€uÂQA˜7–/AlL pÂQA˜€‹–/AlL pÂQA˜€ç–/AlLÀtÂQA˜—/AlL wÂQA˜€{—/AlLÀyÂQA˜€®—/AlL€|ÂQA˜ï—/AlL€ÂQA˜€5˜/AlLÀƒÂQA˜d˜/AlL †ÂQA˜€²˜/AlL ŠÂQA˜€å˜/AlL€ŒÂQA˜'™/AlL ŽÂQA˜€d™/AlL ’ÂQA˜€Ì™/AlLà“ÂQA˜cš/AlL€œÂQA˜€›/AlL€¡ÂQA˜˜œ/AlL@µÂQA˜Øœ/AlL ¶ÂQA˜^/AlL@·ÂQA˜Ä/AlL ¸ÂQA˜¢ž/AlLà»ÂQA˜€ Ÿ/AlL@½ÂQA˜zŸ/AlL¾ÂQA˜êŸ/AlL@ÂÂQA˜x /AlLÀÃÂQA˜â /AlLÀÄÂQA˜€O¡/AlLàÆÂQA˜€æ¡/AlLÎÂQA˜?¢/AlL ÒÂQA˜Œ¢/AlLØÂQA˜î¢/AlLàßÂQA˜€B£/AlL ãÂQA8¹™{£/A8Í,äÂQA˜~£/AlL@ÂÂQA˜€p£/AlL€«ÂQA˜x£/AlL@—ÂQA˜o£/AlL€ƒÂQA˜v/AlL`¼QA˜Øu/AlL€ ¼QA˜€u/AlL ¼QA˜€Mu/AlL¼QA˜€u/AlL ¼QA˜Ät/AlL€$¼QA˜€t/AlL@+¼QA˜Xt/AlL`1¼QA˜€t/AlL >¼QA˜âs/AlL€H¼QA˜€®s/AlLÀQ¼QA˜“s/AlL`X¼QA˜hs/AlL€`¼QA˜€:s/AlL`f¼QA˜€s/AlL€n¼QA˜Rs/AlL r¼QA˜s/AlL`x¼QA˜ht/AlL@„¼QA˜ãt/AlL ¼QA˜Pu/AlLÀ¼QA˜¬u/AlL •¼QA˜€ùu/AlL@“¼QA˜v/AlLÀ‰¼QA˜Bv/AlL}¼QA˜]v/AlL@u¼QA˜uv/AlL j¼QA˜Œv/AlLÀa¼QA˜¥v/AlLY¼QA˜€ºv/AlLàK¼QA˜¸v/AlL?¼QA˜€¬v/AlL@2¼QA˜‰v/AlL "¼QA˜€Uv/AlL`¼QA˜v/AlL`¼QAИ|Î/AlL ^¦QAÌ€0AlL ³QA7˜Çõ/AlLÀ³QA˜1ö/AlLÀ³QA˜tö/AlLÀ³QA˜ö/AlL@ÿ²QA˜€µö/AlL0û²QA˜¾ö/AlLÀù²QA˜€ýö/AlL@ô²QA˜N÷/AlL@ñ²QA˜Í÷/AlL ð²QA˜+ø/AlL ò²QA˜€\ø/AlL ò²QA˜€ø/AlL`î²QA˜€žø/AlL€â²QA˜Àø/AlLàܲQA˜½ø/AlLÖ²QA˜¶ø/AlL`ͲQA˜Þø/AlL Â²QA˜0ù/AlL º²QA˜€ù/AlL`·²QA˜€ëù/AlL@¸²QA˜Gú/AlLÀ¶²QA˜”ú/AlL µ²QA˜åú/AlLà´²QA˜€û/AlL€µ²QA˜Gû/AlL€¶²QA˜€Rû/AlL€¶²QA˜‘û/AlL`¶²QA˜Àû/AlL@«²QA˜Öû/AlL £²QA˜vü/AlLàˆ²QA˜Âü/AlL ~²QA˜€ý/AlL@w²QA˜Jý/AlL€n²QA˜™ý/AlL b²QA˜äý/AlLÀZ²QA˜€>þ/AlLÀS²QA˜wþ/AlLàN²QA˜€uþ/AlL`C²QA˜hþ/AlLà;²QA˜bþ/AlL 5²QA˜€—þ/AlLÀ1²QA˜Çþ/AlL@4²QA˜€#ÿ/AlL0²QA˜€Dÿ/AlLÀ#²QA˜qÿ/AlL€²QA˜ÿ/AlL€ ²QA˜nÿ/AlL`²QA˜Ÿÿ/AlLù±QA˜ßÿ/AlLö±QAÌ0AlLàê±QAÌÀ+0AlL`ݱQAÌÀC0AlL€Ì±QAÌ@N0AlLàñQAÌ@P0AlL ¼±QAÌP0AlLP·±QAÌÀO0AlL€³±QAÌq0AlL૱QAÌ“0AlL °±QAÌÀ¼0AlL`®±QAÌ@Þ0AlL@­±QAÌ0AlL «±QAÌ€F0AlL€§±QAÌ{0AlL £±QAÌ@¿0AlL ±QAÌã0AlL`š±QAÌ40AlL@˜±QAÌ@g0AlL •±QAÌ@¦0AlL@“±QAÌÚ0AlLàŽ±QAÌÀô0AlL Œ±QAÌB0AlL …±QAÌ@’0AlLÀ±QAÌà0AlLÀz±QAÌ@0AlL w±QAÌÀF0AlLÀr±QAÌÀj0AlL s±QAÌ€•0AlL`r±QAÌ@Ë0AlLàp±QAÌ@ó0AlLÀt±QAÌÀ0AlLÀp±QAÌ€V0AlL@o±QAÌ€»0AlL c±QAÌ€0AlLàZ±QAÌ@J0AlL X±QAÌd0AlLÀV±QAÌ@„0AlLàU±QAÌÀ0AlL€U±QAÌ@¦0AlL P±QAÌÀÇ0AlL A±QAÌÀà0AlL@:±QAÌ€ô0AlLÀ0±QAÌ@0AlLÀ#±QAÌÀ0AlL€±QAÌ@%0AlL€±QAÌ@30AlL ±QAÌÀQ0AlL ü°QAÌ€o0AlLï°QAÌÀ—0AlLä°QAÌ€©0AlL€Þ°QA̯0AlL@Õ°QA̹0AlL Ê°QAÌ@Ô0AlL@ðQAÌÀì0AlL º°QAÌ÷0AlLÀ«°QAÌ€0AlL`£°QAÌÀ.0AlLࢰQAÌ€I0AlL`°QAÌÀ_0AlL`•°QAÌ|0AlL Š°QAÌ€0AlL`‚°QAÌ@Á0AlLz°QAÌÀÜ0AlLàp°QAÌÀ 0AlLÀj°QAÌÀ2 0AlLd°QAÌ€I 0AlL a°QAÌ€l 0AlL`°QAÌ@Ž 0AlLà]°QAÌ© 0AlL@[°QAÌÄ 0AlLY°QAÌÀç 0AlL`V°QAÌ@ 0AlL@U°QAÌ@4 0AlL`S°QAÌ@N 0AlL O°QAÌ@g 0AlL@I°QAÌ€ 0AlLÀF°QAÌÀ£ 0AlL@E°QAÌ@Ë 0AlLD°QAÌ@å 0AlLà@°QAÌ 0AlL 8°QAÌÀF 0AlL€3°QAÌ@h 0AlL@.°QAÌÀ‘ 0AlLÀ&°QAÌ@º 0AlL °QAÌÀÆ 0AlLÀ°QAÌ@Ø 0AlL€°QAÌ 0AlL Ù¯QAÌ 0AlL@ǯQAÌÀ! 0AlL À¯QAÌ* 0AlL ¶¯QAÌ€5 0AlLÀ¨¯QAÌP 0AlL`–¯QAÌ€p 0AlL НQAÌ¡ 0AlL`~¯QAÌ@× 0AlL€x¯QAÌ@ 0AlL@r¯QAÌ@I 0AlLl¯QAÌÀl 0AlLd¯QAÌ€„ 0AlL ^¯QAÌ€˜ 0AlLX¯QAÌ@Ë 0AlLR¯QAÌó 0AlLÀI¯QAÌ@0AlLà=¯QAÌ0AlLÀ3¯QAÌ0AlLà%¯QAÌ,0AlL ¯QAÌÀZ0AlL ¯QAÌÀ­0AlLÿ®QAÌ@¼0AlLàò®QAÌ@Ë0AlL`å®QAÌ€ç0AlL@Ú®QAÌ@ú0AlLÀÏ®QAÌ€!0AlL`Á®QAÌ€L0AlL@¸®QAÌ@e0AlL@²®QAÌ€v0AlL §®QAÌÀ{0AlLŸ®QAÌÀƒ0AlL ”®QAÌ€”0AlL‡®QAÌÀ°0AlL |®QAÌÀÛ0AlLàq®QAÌ€ 0AlL`f®QAÌ(0AlLà\®QAÌÀ>0AlL`S®QAÌ€K0AlLG®QAÌ€H0AlL@@®QAÌV0AlLà9®QAÌj0AlL 0®QAÌz0AlL %®QAÌ@t0AlL€®QAÌs0AlLp®QAÌÀq0AlL ®QAÌ€\0AlL€®QAÌJ0AlLà®QAÌ€D0AlLà÷­QAÌ@L0AlL€í­QAÌÀB0AlL€ä­QAÌ€80AlLàÚ­QAÌà50AlLÓ­QAÌ€>0AlL Ì­QAÌ@O0AlL@Á­QAÌ@V0AlL »­QAÌÀd0AlL ³­QAÌ@w0AlL`ª­QAÌ€‚0AlLÀ¢­QAÌ€Ž0AlL ›­QAÌ€›0AlL •­QAÌÀ¦0AlL€‰­QAÌ@§0AlL €­QA̧0AlLàv­QAÌ€š0AlL`p­QAÌ€}0AlL`l­QAÌV0AlLàb­QAÌK0AlLàZ­QAÌ€E0AlLàN­QAÌA0AlLF­QAÌ@00AlL 5­QAÌÀ 0AlL /­QAÌÀ 0AlL@(­QAÌÀö0AlL€­QAÌ€Ó0AlL ­QAÌ€¹0AlL ­QAÌÀ©0AlL@ ­QAÌ€x0AlLà÷¬QAÌZ0AlL@î¬QAÌ€0AlLÀŒ¬QAÌ€è0AlL 2«QAÌ@‰0AlLÀ«QAÌ¡ 0AlLàʪQAh©›Q 0AlL@´ªQAÌ@ 0AlL YªQAÌ@ 0AlLÀWªQAÌ@j 0AlL`ªQAÌ€Í 0AlL€ ªQAÌ@þ 0AlLªQAÌÀ? 0AlLÀú©QAÌ€å0AlL@¢©QAÌ€$0AlLðs©QAÌÀ90AlLàp©QAÌ@0AlLÐl©QAÌ€0AlLÀk©QAÌÀ0AlLàc©QAÌÀ0AlLÀ¯¨QAÌ–0AlLÀe¨QAÌ@z0AlLPL¨QAÌ@x 0AlLà^§QAÌ@… 0AlLÀP§QAÌ 0AlL J§QAÌ  0AlLàC§QAÌ´ 0AlL`2§QAÌ@¦ 0AlL &§QAÌÀˆ 0AlL€§QAÌÀi 0AlLà§QAÌ€\ 0AlL  §QAÌ€U 0AlL§QAÌ@D 0AlLàø¦QAÌÀ3 0AlLó¦QAÌ 0AlLàî¦QAÌ@î 0AlL@ì¦QAÌÌ 0AlLàä¦QAÌ€´ 0AlLÀÞ¦QAÌ@› 0AlL€Ô¦QAÌÀl 0AlL`ʦQAÌO 0AlLŦQAÌ€2 0AlL€¿¦QAÌ€ö 0AlL º¦QAÌÀÀ 0AlLÀ´¦QAÌÀä 0AlL¥¦QÀР0AlLX ¦QAÌ€  0AlL@•¦QAÌ@} 0AlLà‹¦QAÌ€Y 0AlL ‚¦QAÌ€9 0AlLàz¦QAÌÀ 0AlL r¦QAÌÀý 0AlL j¦QAÌ€ç 0AlL€f¦QAÌÀ¿ 0AlL@a¦QAÌ€¨ 0AlL ^¦QAÌ€}0AlLà~¦QAÌÀ60AlLÀ†¦QAÌÀ-0AlLÀ‡¦QAÌ@î0AlL@ã¦QAÌÎ0AlLà7§QAÌÀn0AlLA§QAÌÀr0AlLÀ2§QAÌ€0AlL=§QAÌÔ0AlLЧQA˜Rÿ/AlL@2§QA˜€yÿ/AlLà:§QA˜ÿ/AlLÀB§QA˜ÿ/AlLÀJ§QA˜€pÿ/AlL€Q§QA˜€Xý/AlL T§QA˜Àû/AlLpW§QA˜ãû/AlL§QA˜ù/AlL §QA˜÷/AlL §QAhìÐÌùö/Aæ™IQ§QA˜€zø/AlL@ǧQA˜€6ø/AlL`˧QA˜Éõ/AlLÀð§QA˜Ýó/AlL  ¨QA˜ò/AlLà#¨QA˜€Hñ/AlL`8¨QA˜'ð/AlLQ¨QA˜ãï/AlLW¨QA˜€-ï/AlL@g¨QA˜Tî/AlLÀy¨QA˜€„í/AlL@ˆ¨QA˜5í/AlLà¨QA˜€Üì/AlL@›¨QA˜€ë/AlL g¨QA˜€àê/AlL `¨QA˜mê/AlLàV¨QA˜Ñé/AlL F¨QA˜Vé/AlL€<¨QA˜êè/AlL4¨QA˜€•è/AlLÀ,¨QA˜Kè/AlL`)¨QA˜îç/AlLÀ&¨QA˜mç/AlL@.¨QA˜€ç/AlLà=¨QA˜8æ/AlL@T¨QA˜€|å/AlLÀj¨QA˜å/AlLà|¨QA˜€ªä/AlL ’¨QA˜dä/AlL ž¨QA˜€ä/AlL ´¨QA˜€ä/AlL`ƨQA˜4ä/AlL Þ¨QA˜€Eä/AlL õ¨QA˜€|ä/AlL ©QA˜€Êä/AlL©QA˜å/AlL+©QA˜”å/AlLÀ?©QA˜Öå/AlL`K©QA˜òå/AlL S©QA˜€Ûå/AlL[©QA˜€ˆå/AlL \©QA˜€å/AlLÀM©QA˜€˜ä/AlL<©QA˜€ÿã/AlLà-©QA˜zã/AlLà ©QA˜Éâ/AlL ©QA˜€ýá/AlL@ò¨QA˜šá/AlLàè¨QA˜Qá/AlLÀã¨QA˜€á/AlL@بQA˜â/AlL̨QA˜“á/AlL@¹¨QA˜€$á/AlLÀ¦¨QA˜€µà/AlLà”¨QA˜1à/AlL`‚¨QA˜Ðß/AlLq¨QA˜€ß/AlL€f¨QA˜Zß/AlL a¨QA˜ ß/AlL`i¨QA˜€´Þ/AlLq¨QA˜iÞ/AlL }¨QA˜Þ/AlLà†¨QA˜?ß/AlL«¨QA˜UÞ/AlL`ŨQA˜Þ/AlL`ʨQA˜•Ý/AlL`ѨQA˜€5Ý/AlLàݨQA˜;Ý/AlL æ¨QA˜Þ/AlLÀÿ¨QA˜­Þ/AlLà©QA˜ðÞ/AlL@©QA˜×ß/AlL 5©QA˜±à/AlL€M©QA˜€‰á/AlL€d©QA˜7â/AlL`u©QA˜€Åâ/AlLÀˆ©QA˜€Kã/AlL˜©QA˜€šã/AlL€¥©QA˜Ñã/AlL€°©QA˜€†ã/AlL ·©QA˜0ã/AlLÀÁ©QA˜€Êâ/AlL`Ç©QA˜Xâ/AlL Í©QA˜€Ðá/AlL@Ó©QA˜Tá/AlL€ä©QA˜Uá/AlL@ê©QA˜€Uá/AlL ì©QA˜{á/AlLò©QA˜•á/AlL€ù©QA˜Êá/AlL@ªQA˜õá/AlLÀ ªQA˜â/AlL`ªQA˜€:â/AlL@'ªQA˜.â/AlL 2ªQA˜ýá/AlL :ªQA˜éá/AlL >ªQA˜€á/AlLÀFªQA˜€;á/AlL@QªQA˜"á/AlLàaªQA˜€Cá/AlL@nªQA˜©á/AlL‚ªQA˜â/AlLàªQA˜râ/AlL £ªQA˜Ùâ/AlLà°ªQA˜=ã/AlLÀΪQA˜€=ã/AlLðѪQA˜>ã/AlLÖªQA˜?ã/AlL ÜªQA˜€ã/AlLÀéªQA˜Ñà/AlLÀE«QA˜€‚à/AlL [«QA˜€mà/AlLà`«QA˜ãÞ/AlLÀ™«QA˜ÅÝ/AlLÀÅ«QA˜“Ü/AlL`ô«QA˜€ÑÚ/AlL 0¬QA˜áØ/AlL@p¬QA˜€F×/AlLÀ¨¬QA˜€%×/AlL­¬QA˜ãÕ/AlL ×¬QA˜€ÒÔ/AlL€ü¬QA˜€qÔ/AlL€­QA˜€aÔ/AlL ­QA˜€ Ô/AlLÀ­QA˜ÈÓ/AlLà­QA˜€dÓ/AlLà1­QA˜€3Ó/AlL°7­QA˜&Ó/AlLP9­QA˜êÒ/AlL`@­QA˜ŸÒ/AlL`O­QA˜VÒ/AlL ^­QA˜€íÑ/AlL€p­QA˜€Ñ/AlL`z­QA˜ýÐ/AlL ‹­QA˜cÑ/AlL ¥­QA˜€¦Ñ/AlL@¤­QA˜€&Ò/AlL ¥­QA˜€ÉÒ/AlLÀ¥­QA˜]Ó/AlLÀ¤­QA˜€vÔ/AlL¤­QA˜&Õ/AlL€§­QA˜€»Õ/AlL ª­QA˜€GÖ/AlL ²­QA˜€æÖ/AlLÀ¹­QA˜`×/AlL Æ­QA˜ª×/AlL`Ò­QA˜+Ø/AlL Ü­QA˜’Ø/AlL@ç­QA˜çØ/AlL`ø­QA˜€™Ø/AlL@®QA˜"Ø/AlL ®QA˜p×/AlL@/®QA˜€”Ö/AlL E®QA˜€¿Õ/AlLÀ]®QA˜SÔ/AlL€…®QA˜€ìÒ/AlLÀ±®QA˜€4Ñ/AlL ß®QA˜ËÐ/AlLàî®QA˜€NÐ/AlL`ý®QA˜€ÏÏ/AlLÀ ¯QA˜‰Ï/AlLà¯QA˜€ Ï/AlL ¯QA˜|Î/AlL+¯QA˜àÎ/AlL@0¯QA˜;Ï/AlLÀ6¯QA˜€ŸÏ/AlLà=¯QA˜€ìÏ/AlL`D¯QA˜GÐ/AlLK¯QA˜ÆÐ/AlL`U¯QA˜€8Ñ/AlLÀd¯QA˜wÑ/AlLÀj¯QA˜áÑ/AlLÀv¯QAøÕ¢7Ò/AÄô51~¯QA˜þÑ/AlLp‚¯QA˜èÑ/AlL„¯QA˜€®Ñ/AlL†¯QA˜eÑ/AlL ‡¯QA˜€)Ñ/AlL`НQA˜úÐ/AlL@‹¯QA˜ÚÐ/AlLà‹¯QA˜®Ð/AlLÀޝQA˜rÐ/AlL€•¯QA˜€bÐ/AlL°™¯QA˜GÐ/AlL¡¯QA˜6Ð/AlL@«¯QA˜/Ð/AlL`¯¯QA˜€0Ð/AlLÀ»¯QA˜7Ð/AlL°¾¯QA˜€FÐ/AlLÐůQA˜RÐ/AlL ˯QA˜€ƒÐ/AlLàÓ¯QA˜€¾Ð/AlL`ݯQA˜,Ñ/AlLÀí¯QA˜ƒÑ/AlL@÷¯QA˜€®Ñ/AlLÀ°QA˜èÑ/AlLÀ°QA˜óÑ/AlL`°QA˜éÑ/AlL °QA˜€ÏÑ/AlLÀ)°QA˜€ÚÑ/AlLÐ*°QA˜€ýÒ/AlL€F°QA˜ZÓ/AlLðN°QA˜*Ô/AlLb°QA˜EÕ/AlL@€°QA˜Õ/AlL °QA˜€±Ö/AlL ª°QA˜ù×/AlL`ȰQA˜ãØ/AlLÀذQA˜€Ú/AlLàî°QA˜€ÃÚ/AlL ú°QA˜ÂÛ/AlL€ ±QA˜€âÜ/AlLÀ±QA˜¿Ý/AlL ±QA˜bÞ/AlLÀ#±QA˜ÅÞ/AlL@#±QA˜[á/AlL û°QA˜fã/AlL€ß°QA˜å/AlL@ǰQA˜Ëå/AlL ½°QA˜:æ/AlL@±°QA˜µæ/AlLÀ¨°QA˜òæ/AlL¡°QA˜ç/AlL ›°QA˜²ç/AlLÒ°QA˜Oæ/AlL@C±QA˜Ùå/AlL`W±QA˜€œå/AlLi±QA˜Yå/AlL@v±QA˜òä/AlL±QA˜hä/AlL@ޱQA˜€²ã/AlLȱQA˜€}ã/AlLàÔ±QA˜aã/AlL@à±QA˜]ã/AlL@ë±QA˜Gã/AlL ñ±QA˜õâ/AlL ÷±QA˜¤â/AlL@ü±QA˜€râ/AlLàþ±QA˜€tâ/AlL ²QA˜€öâ/AlL@ ²QA˜bã/AlL@²QA˜¯ã/AlL ²QA˜ä/AlL`ù±QA˜€`ä/AlL`ö±QA˜¯ä/AlLù±QA˜€ å/AlL ²QA˜lå/AlLÀ²QA˜Ñå/AlL`²QA˜Dæ/AlL@²QA˜Íæ/AlL€"²QA˜ç/AlL+²QA˜€jç/AlL4²QA˜Çç/AlLà?²QA˜€)è/AlL€P²QA˜è/AlL@\²QA˜€ñè/AlL`h²QA˜’é/AlLàw²QA˜žê/AlL ‰²QA˜ë/AlL‘²QA˜€`ë/AlL ™²QA˜€°ë/AlL  ²QA˜ì/AlL`­²QA˜€iì/AlL௲QA˜åì/AlLà±²QA˜³í/AlL€º²QA˜•î/AlL ϲQA˜€ï/AlLàݲQA˜ ð/AlLÀè²QA˜€©ð/AlLÀø²QA˜šñ/AlL ý²QA˜ ò/AlL ³QA˜×ò/AlL`³QA˜€†ó/AlLÀ ³QA˜€@ô/AlL ³QA˜€šô/AlL ³QA˜€Úô/AlL€³QA˜€õ/AlL  ³QA˜;õ/AlL ³QA˜sõ/AlLÀ³QA˜Çõ/AlLÀ³QAH`ó/Ũ/A´é€¢ÊjQAä5U5Ú0AlLÏtQA†˜€ ß/AlLàutQA˜€Ùß/AlL`dtQA˜€:à/AlL \tQA˜}à/AlL€XtQA˜€ßà/AlLQtQA˜2á/AlL ItQA˜€sá/AlL€DtQA˜€Äá/AlLà;tQA˜3â/AlLÀ4tQA˜€˜â/AlLà.tQA˜ã/AlLP(tQA˜€Jã/AlL *tQA˜€Àã/AlLà.tQA˜€.ä/AlLà3tQA˜›ä/AlL@4tQA˜€Öä/AlLà1tQA˜å/AlL@)tQA˜€å/AlL!tQA˜€%å/AlL tQA˜€ å/AlL@tQA˜€Õä/AlL çsQA˜€ƒä/AlL€ÑsQA˜€Aä/AlLàÅsQA˜€ ä/AlLàºsQA˜€Àã/AlL °sQA˜”ã/AlL¦sQA˜€rã/AlL œsQA˜€8ã/AlLŽsQA˜ã/AlL €sQA˜€æâ/AlL osQA˜²â/AlLàasQA˜€Hâ/AlL@FsQA˜€â/AlL@7sQA˜Ãá/AlL€*sQA˜€‹á/AlLà!sQA˜7á/AlL sQA˜ á/AlLÀsQA˜€þà/AlLàsQA˜€ á/AlLP sQA˜á/AlL€sQA˜€Tá/AlL@sQA˜€…á/AlL€sQA˜€Æá/AlLÀ sQA˜€â/AlL  sQA˜€xâ/AlLsQA˜€Œâ/AlL@ sQA˜€©â/AlL ürQA˜€ÿâ/AlL@ÜrQA˜€pã/AlL¸rQA˜€Þã/AlL•rQA˜€&ä/AlL xrQA˜Yä/AlLÀerQA˜€¦ä/AlL@KrQA˜€Îä/AlLÀqQA˜€^é/AlL@qQA˜€‘é/AlLÀBqQA˜Éé/AlL°CqQA˜€üé/AlL6qQA˜€ê/AlLà,qQA˜€ê/AlL@#qQA˜€<ê/AlLqQA˜yê/AlL qQA˜ë/AlL€qQA˜€€ë/AlL@öpQA˜€Óë/AlL`ípQA˜"ì/AlL€âpQA˜qì/AlL`ÏpQA˜€©ì/AlLÀÀpQA˜€áì/AlLà²pQA˜€í/AlL€§pQA˜€Xí/AlL€œpQA˜€í/AlL ŽpQA˜€Úí/AlL€€pQA˜€î/AlL`qpQA˜€Kî/AlLfpQA˜€¬î/AlLÀSpQA˜€üî/AlL BpQA˜ï/AlLÀ6pQA˜€lï/AlL -pQA˜€ ð/AlL0pQA˜€vð/AlL3pQA˜€ñ/AlL 2pQA˜€‘ñ/AlL .pQA˜«ñ/AlL-pQA˜âñ/AlL€*pQA˜€=ò/AlL (pQA˜€mò/AlL€&pQA˜€Áò/AlL@#pQA˜€ó/AlL  pQA˜€zó/AlLÀpQA˜€Áó/AlL pQA˜€ûó/AlLàpQA˜€"ô/AlLà pQA˜€aô/AlL@ÿoQA˜€‘ô/AlL öoQA˜€âô/AlL@ìoQA˜€Põ/AlL ãoQA˜€Êõ/AlL@ÞoQA˜€Bö/AlLÀÚoQA˜€±ö/AlL ÚoQA˜*÷/AlLÛoQA˜€Ÿ÷/AlLÞoQA˜€ø/AlL@áoQA˜€iø/AlLÀâoQA˜€ðø/AlL ãoQA˜”ù/AlL`åoQA˜ú/AlLÀæoQA˜€qü/AlL`êoQA˜€ý/AlL èoQA˜€ý/AlL`æoQA˜€þ/AlLÀåoQA˜“þ/AlLæoQA˜€“ÿ/AlL€èoQAÌE0AlL`îoQAÌ@T0AlL0ïoQAÌ@‘0AlL€òoQAÌ€Þ0AlLàóoQAÌ€0AlL ñoQAÌÀP0AlL€íoQAÌ“0AlLàêoQAÌ€Û0AlL`ëoQAÌ€¯0AlL õoQAÌì0AlLàõoQAÌ60AlL ÷oQAÌ@p0AlLÀûoQAÌÀ¼0AlL@pQAÌ@ù0AlLàpQAÌÀ0AlLP pQAÌÀ/0AlLàpQAÌf0AlL pQAÌ@¯0AlLàpQAÌÀî0AlLÀ%pQAÌ30AlLÀ*pQAÌÀ_0AlL€/pQAÌ@“0AlLÀ6pQAÌÀÛ0AlLHpQAÌÀ0AlLTpQAÌ@P0AlLcpQAÌ@z0AlL€gpQAÌ@«0AlL lpQAÌÕ0AlLàtpQAÌÀî0AlL`~pQAÌ€0AlLpQAÌÀV0AlLà pQAÌ}0AlL ¬pQA̬0AlL¸pQAÌ@Ê0AlL@¿pQAÌ€ä0AlLÆpQAÌ€0AlLÎpQAÌ@+0AlL ÓpQAÌR0AlL€ØpQAÌ€y0AlLßpQAÌ@Ž0AlL äpQAÌ@0AlLêpQAÌÀÇ0AlL`çpQAÌÀß0AlL€àpQAÌ€þ0AlL@ÛpQAÌ@. 0AlL€ÑpQAÌ€Y 0AlL€ÇpQAÌÀ’ 0AlL ¼pQAÌÀµ 0AlL ´pQAÌÀ× 0AlL€«pQAÌ€ 0AlLàpQAÌÀ% 0AlL “pQAÌ€I 0AlL ‡pQAÌÀt 0AlL`xpQAÌ¢ 0AlLmpQAÌ@ 0AlL€bpQAÌô 0AlLVpQAÌ@" 0AlLÀJpQAÌ@_ 0AlL€:pQAÌ@™ 0AlL )pQAÌÊ 0AlLàpQAÌé 0AlL`pQAÌ@ü 0AlL pQAÌ@7 0AlL€öoQAÌ€W 0AlLèoQAÌw 0AlLÀÛoQAÌÀ» 0AlLÅoQAÌÀû 0AlL@­oQAÌ 0AlL ¡oQAÌ@S 0AlLÀ’oQAÌ€} 0AlL@…oQAÌ´ 0AlLyoQAÌà 0AlLÀooQAÌÀ 0AlLàeoQAÌ@-0AlLÀZoQAÌ@C0AlLSoQAÌ@X0AlL IoQAÌ@€0AlL€>oQĄ0AlL 6oQAÌÀ»0AlL /oQAä5U5Ú0AòUõ'oQAÌÀ¾0AlLÀoQAD-±0Aì%>¡oQAÌpª0AlL oQAÌp…0AlL oQAÌd0AlL€oQAÌH0AlLoQAÌÀ0AlLýnQAÌðÖ 0AlLônQAÌ€ž 0AlLÀïnQAÌpx 0AlL@ènQAÌð 0AlLÀÎnQA̰à 0AlL@ÇnQAÌ@Á 0AlL ÀnQAÌ@¢ 0AlL€¸nQAÌw 0AlLÀ­nQAÌð] 0AlLÀ¥nQAô@ ¼Q 0A(ã ¢nQAÌp> 0AlL@œnQAÌ 0AlL`•nQAÌðå 0AlL ŽnQA̺ 0AlL nQAÌp› 0AlL •nQAÌ€Z 0AlLÀ–nQAÌ 0AlL nQAÌpÛ 0AlL@‰nQAÈŽlüµ 0Aì%>ù‚nQAÌð¡ 0AlL nQAÌl 0AlL vnQAÌ? 0AlL mnQAÌ€ 0AlL€`nQAÌp 0AlL UnQAÌ@ü 0AlLÀGnQAÌ0 0AlLÀ0AlLPÉlQAÌ0AlLàÉlQAÌÿ0AlLøÈlQA¤fîoæ0A\cH0ÈlQAÌ@Ô0AlL ÇlQA ªè] 0AøtííÃlQAÌ@…0AlLÂlQAØÄ¨y;0AZ§B>·lQAÌp(0AlL€´lQA̰Ý0AlLÀªlQA̰š0AlL@žlQAÌ€^0AlLà’lQAÌ€60AlLÀ{lQAÌ€0AlL^lQAÈëÇ-0A‹ QlQAÌ@50AlL@JlQAÌpK0AlL;lQA̰]0AlLÀ/lQAÌp„0AlL lQAÌ@£0AlL lQAÌðÄ0AlL lQAÌÀë0AlL lQAøš]!0A î´3lQAÌp;0AlLàlQAÌs0AlLlQAœ˜Ô~—0A’¶ãlQAÌp¢0AlLàlQA̰Õ0AlLÀlQAÌpç0AlL€ûkQAÌðö0AlL ïkQAÌ@ð0AlLÀÞkQAÌ0â0AlL ÐkQAÌpÔ0AlL ÈkQAÌ¢0AlL`½kQAÌðY0AlL`µkQAÌð0AlL€¯kQAÌðé0AlL §kQAÌ€Ë0AlL€™kQAÌðÉ0AlL@‘kQA€s\Ë0AB£ì7kQAÌÀÍ0AlL`†kQAÌ0Ò0AlL€~kQAÌpî0AlL vkQAÌ@ 0AlLàskQAÌp,0AlL`pkQAÌp\0AlL@jkQAÌ@”0AlL`ekQAÌ0¦0AlL ^kQA̰¿0AlLZkQAÌÀÖ0AlL NkQA@x“=Ý0AwÍIkQAÌÀä0AlL@DkQAÌ@í0AlL ;kQAT·Yªì0A–d•°9kQAÀ/ÔOë0A(ã—6kQAÌ€é0AlL€2kQAÌ€ã0AlL`(kQAÌ@Ú0AlL`kQAÌÀÒ0AlLkQAÌÍ0AlLkQAÌÉ0AlLàýjQAÌ@Í0AlLàôjQA,[ÊwÍ0ADø?òjQAÌðÍ0AlL ëjQA̰Ò0AlL åjQAÌ@Ì0AlLÀÛjQA$°&Å0Aô¯]LÐjQAÔ»j¤0A&ŽBÏjQANê9g0A´é€¢ÊjQA<÷ý90AÔ…"ÔjQAÈÛð)ã0AÔ…BÛjQA€i÷é©0A¸aŒ‚ÞjQAt‰Éé0AFFbÝjQAÈÛð9Q0AJ¾ŠÛjQA 2Ýé0A܉ÂÝjQAt‰É©Á0AÔ…‚ájQA 2Ýy’0A܉äjQAn¼¹W0A&Ž‚åjQAR¯)*0Anw‡ÂæjQAn¼¹ð0AJ¾ŠãjQAØÄ¨¹±0AFFbåjQAh©›¹n0A&ŽÂëjQA°•i60Anw‡¢ïjQAôŽ©ý0A܉âìjQA 7¢©¼0AÔ…BëjQAh©›)„0A&ŽÂëjQA<ˆéO0AJ¾ŠâëjQA ;g¹&0A$‚ïjQAÌäz©÷0A’0„öjQAè­`yÎ0A´é€kQAwFù¤0AJ¾ŠbkQALé?©l0A$‚kQAWtéP0A´é€â kQA ;g9#0A܉Â%kQAØdKrÔÿ/A$‚â'kQA_B‰ÿ/Anw‡-kQAÈ{“B8ÿ/AJ¾Š"2kQA€$rþ/AJ¾Šb8kQAØdKr8þ/A¸aŒB@kQA×DB þ/AJ¾ŠâKkQAH€Xr°ý/A´é€bTkQAH€XòEý/AJ¾ŠÂTkQAp2öAùü/A¸aŒ¢UkQA`I>r•ü/AÔ…BSkQA`I>r#ü/A¸aŒ‚NkQA`I>ò¿û/AÔ…¢PkQA(Àüqnû/A܉ÂUkQA Û rôú/AÔ…B[kQAp2öa‡ú/AFF‚\kQAØmÕñ/ú/A´é€ÂakQAèVATù/Anw‡BjkQAH‰âqèø/Anw‡¢okQA ä“qø/AFFBnkQAXršA)ø/AJ¾ŠbhkQAx;€Aê÷/A’0„‚bkQAȧA}÷/Anw‡¢_kQAЖ1g÷/AÊJ`kQAH’lq ÷/A´é€bdkQA éXA¥ö/AFF¢kkQA0Ɇñ ö/AØ¢}BokQAh[Rq7õ/A$‚BukQA)ý@ô/Ajÿ{Â{kQAhdÜpô/A¸aŒ‚kQA íqˆó/A$‚â‡kQAX{$aDó/A܉"“kQAП»@Øò/A܉•kQA)ý@qò/AÔ…bškQAøHÏpò/A¸aŒ¢kQAP›öpßñ/AØ¢}bžkQAðh¡` ñ/AØ¢}" kQAµpcñ/A¸aŒ"¡kQAxM”@ñ/AFF¢›kQAàˆspÑð/Anw‡•kQA`„®@nð/AFFB–kQAxM”`(ð/AØ¢}" kQA2‡`éï/AJ¾Šâ«kQA¨ÿ1p†ï/A܉"»kQAШE@ï/AØ¢}‚ÅkQA`8@fî/AØ¢}bÎkQA;@¯í/A$‚BÕkQAШE`Pí/AÔ…‚ÙkQAÈÈpëì/AFFbÝkQA¸èé?\ì/A$‚BíkQAðq+`üë/AÔ…BókQA(÷?ë/A´é€‚ûkQA?Öïüê/A´é€âlQA(÷?xê/Anw‡lQA¸èé_¸é/A$‚¢ lQAdmïBé/Anw‡¢lQAðzµ?»è/A’0„"lQAhŸL_2è/A܉ÂlQAD›?‹ç/Anw‡âlQA (Ž?ç/AJ¾ŠblQAغY?‡æ/A’0„âlQAM%?Ãä/A܉‚lQAPßð^pä/A’0„blQAm÷nä/A´é€Â!lQAè£o«ã/AØ¢}‚%lQAX¿oã/A’0„"-lQAV¯^Þâ/Anw‡‚0lQAxˆoâ/A$‚B5lQAvn+â/A´é€"?lQAPßð>Æá/AÔ…ÂGlQAÐãµn…á/Anw‡ÂNlQAÀˆ>=á/Anw‡ÂVlQA¨:¢>æà/A$‚_lQAV¯>´à/Aü[z¢elQAˆq¼>zà/Aü[zâklQA@ÿÂnDà/Ajÿ{rlQAvÎ9à/A܉¢vlQA@Mn5à/A܉¢~lQA@Mn.à/Ajÿ{b‡lQAvÎ$à/AFFb•lQAPèz^(à/AØ¢}‚lQAPèz^(à/Aü[z¤lQA`Ȩn"à/AÔ…B«lQA¨:¢>à/Ajÿ{³lQAÀˆ^à/AFFºlQAV¯>à/AJ¾Š"ÂlQAV¯^ûß/AÔ…bÊlQAPèz^èß/AØ¢}B×lQAȦyÏß/A&'‹uÜlQAˆzF>«ß/AÔ…"älQAÐì?nYß/AFFâálQAàÌm>éÞ/Anw‡âÝlQA0•^nÞ/Anw‡BÚlQAPèz^šÝ/Aü[zÂÔlQA(Hñm,Ý/A$‚ÏlQA n£Ü/AØ¢}BÏlQA nUÜ/A܉¢ÎlQAŸÝ=ÔÛ/A’0„BÌlQAØõÉmuÛ/A܉ÌlQAŸÝ]Û/A´é€ÂÉlQAH×í´Ú/AÔ…ÂÇlQA81©=eÚ/A܉¢ÆlQAàÕ÷=!Ú/A܉ÂÅlQAH×mÑÙ/A܉ÄlQAhÃ]ŽÙ/A’0„‚ÂlQAH×íIÙ/AFFâÁlQAŸÝ=ÿØ/Anw‡Â¾lQAH×íÂØ/Ajÿ{âºlQA81©=Ø/Anw‡‚¸lQA¸5nmOØ/A’0„"µlQA lˆíØ/AÔ…‚±lQAHaml×/A܉â¬lQA qM=øÖ/Aü[z¢¥lQAHaͺÖ/Aޏx‚ŸlQA0ZmcÖ/Aü[zB™lQAŒZ=Ö/AÔ…b’lQAHaí¬Õ/A´é€¢ŠlQA8:3=:Õ/AÔ…BƒlQA8:3=ÏÔ/AØ¢}"€lQAØÞleÔ/Aü[z‚~lQA€¬,mèÓ/Aޏx¢~lQA‘í¨Ó/Aü[z¢}lQA`¦«×@Ó/A"@þX~lQAÀ>ø "Ó/A<Z…~lQAhìÐìÞÒ/A’0„â~lQAH#ëì€Ò/AØ¢}‚}lQAÀ>øì*Ò/Aü[zÂ|lQA•ä\ÌÑ/Anw‡}lQAhìÐlIÑ/A’0„"}lQAàhlëÐ/Ajÿ{Â{lQAP,ul•Ð/AÔ…B{lQAàhl+Ð/A$‚¢ylQAxÕˆ<ßÏ/Ajÿ{zlQAàhìŽÏ/Aü[zBylQAˆ¾@ìBÏ/AÔ…¢xlQA0lÌ¡Î/Anw‡â}lQA˜§ø[üÍ/Aü[z¢}lQAÃ\ÂÍ/AØ¢}"€lQA8˱ØoÍ/A!x…lQAà¡æÇSÍ/AÊJ؆lQA6U;Í/A’‡GˆlQA°‰QóÍ/AU¶ŠlQA˜§ø;üÌ/A$‚BlQA(Œë;ËÌ/Aü[z"’lQAÐ9Ä;”Ì/Aޏx¢–lQAàòkUÌ/AÔ…bšlQAã×kÌ/A$‚"žlQA0ll¨Ë/Aü[z‚žlQA0llZË/AޏxÂlQA8u£ëË/AFFBžlQApþäëÜÊ/Aޏx‚ŸlQAÈY–k¶Ê/A´é€"ŸlQAÐ9Ä[†Ê/AԅŸlQA@UÑ[þÉ/Ajÿ{"©lQAÀ­yÑÂÉ/A*ìó¬lQAÈY–k¨É/Aޏx¢®lQA€çœ[]É/Ajÿ{³lQA8u£k É/AFFâ¹lQA(•uûæÈ/Anw‡â½lQAØBNû½È/AFFÂÂlQAÌûÈ/Aü[zBÉlQAP>‰ëZÈ/A$‚ÏlQA¨°kCÈ/A’0„BÔlQAÐTë$È/A’0„"ÝlQAØBNû(È/Aü[zâãlQAÐTk3È/Ajÿ{êlQAØBN[>È/AØ¢}"ðlQA¸yhû<È/Aü[z‚ölQA¸yh[.È/A’0„âþlQAÐTkÈ/A´é€"mQAÐTkóÇ/AÔ…‚mQAðª;ÝÇ/AØ¢}‚mQA(•uû´Ç/A w‚ mQA˜°‚ûzÇ/A’0„â&mQA(•uû4Ç/A’0„.mQA€ð&[ùÆ/Ajÿ{Â3mQAÕûùÅ/A´é€btQA˜—Ò/AlLà4tQA˜€áÒ/AlL.tQA˜€8Ó/AlLÀ$tQA˜€¿Ó/AlLÀtQA˜€Ô/AlL@tQA˜€LÔ/AlL€tQA˜€¥Ô/AlLtQA˜€ìÔ/AlL`tQA˜€.Õ/AlL@#tQA˜€jÕ/AlL€'tQA˜€¨Õ/AlL)tQA˜ÙÕ/AlL@(tQA˜(Ö/AlL°#tQA˜€zÖ/AlL`'tQA˜€¦Ö/AlLà1tQA˜­Ö/AlL=tQA˜€®Ö/AlLÀHtQA˜ÉÖ/AlL StQA˜€ìÖ/AlL [tQA˜B×/AlLÀdtQA˜»×/AlL otQA˜€ó×/AlL utQA˜ Ø/AlLÐutQA˜HØ/AlLwtQA˜€¶Ø/AlLÀutQA˜€AÙ/AlL`ntQA˜€¶Ù/AlLàitQA˜Ú/AlL€jtQA˜€7Ú/AlL`utQA˜€xÚ/AlL {tQA˜€†Ú/AlLà‚tQA˜€ˆÚ/AlLàtQA˜€Ú/AlL štQA˜˜Ú/AlL€¤tQA˜€”Ú/AlL€­tQA˜€ŽÚ/AlLð½tQA˜€ªÚ/AlLÀÄtQA˜âÚ/AlLÀÉtQA˜€@Û/AlLÏtQA˜rÛ/AlLÀÎtQA˜€ÈÛ/AlL@ÊtQA˜€¹Ü/AlLàÈtQA˜€4Ý/AlLà¿tQA˜€‘Ý/AlL ¸tQA˜€ÀÝ/AlLÀ°tQA˜îÝ/AlL€¦tQA˜$Þ/AlL@œtQA˜€xÞ/AlL`ŽtQA˜»Þ/AlLà‚tQA˜€ ß/AlLàutQA HÌ€ÊB0AlLÀmÉQAÌÀig0AlL`£ÌQAFÌ€¯f0AlL pÌQA̱f0AlL€\ÌQAÌ»f0AlL`RÌQAÌÀ¾f0AlLàDÌQAÌ¿f0AlL€9ÌQAÌÄf0AlL@+ÌQAÌ@ëf0AlLàÌQAÌ€¾f0AlL@ ÌQAÌ€f0AlL`ÌQAÌÀrf0AlLàÌQAÌ@Uf0AlLàÌQAÌ@>f0AlL@ÿËQAÌÀPf0AlL@úËQAÌ+f0AlL€îËQAÌ@f0AlL€ìËQAÌ@ðe0AlL åËQAÌ@øe0AlLÛËQAÌ€ée0AlL@ÖËQAÌ@Ãe0AlLÙËQAÌ€•e0AlL@ÞËQAÌ@ze0AlLàâËQAÌ@:e0AlLàÑËQAÌ@Te0AlL@ÌËQAÌke0AlL ÉËQAÌ@„e0AlLàÅËQAÌÀ¦e0AlL ºËQAÌ€Êe0AlL ±ËQAÌ×e0AlL «ËQAÌÀÛe0AlL`žËQAÌ€Ôe0AlL ˜ËQAÌÀÆe0AlLà’ËQAÌ€«e0AlL “ËQAÌ@–e0AlL —ËQAÌ€{e0AlL`šËQAÌÀ]e0AlL`›ËQAÌÀ.e0AlLàËQAÌ€üd0AlL@¢ËQAÌ@Ðd0AlL@¥ËQAÌ@§d0AlL€ŸËQAÌÀ»d0AlLÀ—ËQAÌ@Îd0AlL “ËQAÌÀ¯d0AlL@ŒËQAÌ€d0AlL ‡ËQAÌ€Ld0AlLà€ËQAÌ€Td0AlLÀvËQAÌÀid0AlL@kËQAÌ@jd0AlLÀaËQAÌ@Pd0AlL^ËQAÌ€Pd0AlLVËQAÌÀdd0AlL@RËQAÌ@ƒd0AlL€IËQAÌ@Œd0AlLàBËQAÌÀ•d0AlL€6ËQAÌ€wd0AlLÀËQAÌ]d0AlL€ËQAÌ@Ad0AlL@ ËQAÌ@.d0AlL ËQAÌ@d0AlLùÊQAÌ@d0AlL€éÊQAÌ@³c0AlL€çÊQAÌÀ‰c0AlL@åÊQAÌRc0AlL@ãÊQAÌ€3c0AlL@àÊQAÌc0AlLÀÞÊQAÌ@c0AlL ÙÊQAÌ@ c0AlL`ÎÊQAÌÀc0AlL ÆÊQAÌÀ#c0AlL@¿ÊQAÌ€c0AlL`¸ÊQAÌÀòb0AlLà³ÊQAÌ€Öb0AlL ³ÊQA̳b0AlL´ÊQAÌ@›b0AlL`¹ÊQAÌ@€b0AlL`ÀÊQAÌÀ`b0AlL`ÁÊQAÌ@Gb0AlL@ÆÊQAÌ€b0AlLàÌÊQAÌ€b0AlLÀÀÊQAÌ9b0AlLàµÊQAÌ@Sb0AlL ­ÊQAÌmb0AlL@–ÊQAÌ@}b0AlL@ŽÊQAÌŒb0AlL€ˆÊQAÌžb0AlL ÊQAÌ€¹b0AlLÀ|ÊQAÌÀÖb0AlLyÊQAÌÀéb0AlLÀqÊQAÌób0AlL`kÊQAÌ@ûb0AlL€cÊQAÌ@c0AlL`\ÊQAÌÀc0AlL SÊQAÌ@c0AlL MÊQAÌÀc0AlL EÊQAÌÀýb0AlLÀ=ÊQAÌÀØb0AlLà<ÊQAÌÀ»b0AlL ;ÊQAÌ@˜b0AlL<ÊQAÌ@wb0AlL <ÊQAÌ@^b0AlL>ÊQAÌEb0AlL?ÊQAÌÀ#b0AlL@BÊQAÌÀb0AlLFÊQAÌìa0AlLÀGÊQAÌÀ·a0AlLàJÊQAÌ@˜a0AlL`KÊQAÌ€{a0AlL`NÊQAÌ€Ya0AlLQÊQAÌ@ a0AlLÀVÊQAÌ€¥`0AlLfÊQAÌ€…`0AlL@eÊQAÌÀT`0AlLàbÊQAÌ@/`0AlLÀ`ÊQAÌ@÷_0AlL€_ÊQAÌ‚_0AlL ]ÊQAÌÀV_0AlL ZÊQAÌÀ1_0AlL@VÊQAÌ@_0AlLàOÊQAÌÀ_0AlLÀIÊQAÌÀ_0AlLÀBÊQAÌ€ñ^0AlLà;ÊQAÌ@È^0AlL 8ÊQAÌ€£^0AlL:ÊQAÌ€^0AlL ;ÊQAÌH^0AlL=ÊQAÌÀ^0AlLà<ÊQAÌç]0AlL;ÊQAÌ@§]0AlL`8ÊQAÌ@}]0AlL 7ÊQAÌÀX]0AlLÀ;ÊQAÌ]0AlLÀCÊQAÌæ\0AlL BÊQAÌ@™\0AlL@DÊQAÌ\0AlL`EÊQAÌÀß[0AlL@BÊQAÌÀÆ[0AlL€=ÊQAÌ@¥[0AlL`4ÊQÃ[0AlL-ÊQAÌÀg[0AlL€&ÊQAÌ@F[0AlL ÊQAÌÀ"[0AlL€ÊQAÌ@üZ0AlL€ÊQAÌ@ÇZ0AlLàÊQAÌÀƒZ0AlLàÊQAÌ@UZ0AlL ÊQAÌÀ7Z0AlL`ÊQAÌ@Z0AlL@ÊQAÌ€üY0AlL€ÊQAÌÀ×Y0AlL@ ÊQAÌ@ºY0AlLÀÊQAÌ€ŸY0AlLÀÿÉQAÌÀ…Y0AlL÷ÉQAÌÀeY0AlL ïÉQAÌ€HY0AlL çÉQAÌ@7Y0AlLÀáÉQAÌ"Y0AlLàÚÉQAÌîX0AlL`ÖÉQAÌÀÕX0AlLÀÖÉQAÌÀžX0AlLÀÜÉQAÌ@X0AlL@æÉQAÌÞW0AlL€ìÉQAÌ@µW0AlL îÉQAÌW0AlL üÉQAÌÀÃV0AlLÊQAÌœV0AlL@ÊQAÌ€rV0AlL ÊQAÌ€"V0AlL ÊQAÌ€V0AlLàÊQAÌ€ÎU0AlLà÷ÉQAÌ@¦U0AlLàðÉQAÌU0AlL@íÉQAÌ€nU0AlL êÉQAÌOU0AlL èÉQAÌ€4U0AlLà¾ÉQAÌBU0AlL@¹ÉQAÌÀ™U0AlLµÉQĄU0AlL­ÉQAÌœU0AlL§ÉQAÌÀ†U0AlL £ÉQAÌ@oU0AlLàœÉQAÌ€WU0AlL@˜ÉQAÌ=U0AlL€•ÉQAÌ€U0AlLà’ÉQAÌ€ûT0AlL€‘ÉQAÌâT0AlLàÉQAÌ@ÅT0AlLà‘ÉQAÌ©T0AlLà™ÉQAÌ€‘T0AlL ÉQAÌ@eT0AlLŸÉQAÌÀT0AlL@¢ÉQAÌõS0AlLàŸÉQA̹S0AlL@~ÉQAÌ€¦S0AlLàtÉQAÌ€ S0AlLÀmÉQAÌS0AlLàyÉQAÌcR0AlL …ÉQAÌ1R0AlL@‹ÉQAÌ€òQ0AlL€’ÉQAÌ€ÆQ0AlL@œÉQA̦Q0AlLÀ£ÉQAÌzQ0AlL@§ÉQAÌ_Q0AlL ªÉQAÌÀVQ0AlL@«ÉQAÌ8Q0AlL °ÉQAÌ€øP0AlL »ÉQAÌÚP0AlL ÃÉQAÌÀ»P0AlLàÇÉQĄP0AlL ÍÉQAÌÀ“P0AlL@ÕÉQAÌÀ{P0AlLàßÉQAÌ@`P0AlLãÉQAÌ€CP0AlLéÉQAÌ@,P0AlL íÉQAÌ@P0AlLàðÉQAÌÀP0AlL@õÉQAÌ@ÛO0AlL`ÊQAÌÒO0AlLÊQAÌ@±O0AlLÊQA̘O0AlL@ÊQAÌÀuO0AlLÀÊQAÌ€HO0AlL ÊQAÌÀO0AlL€ÊQAÌ€øN0AlL@ÊQAÌÀÅN0AlL ÊQAÌ@¨N0AlL ÊQAÌN0AlL` ÊQAÌjN0AlLÊQAÌDN0AlL€ÊQAÌ^M0AlL ÊQAÌ€2M0AlL@ÊQAÌÀM0AlL þÉQAÌ@àL0AlL@úÉQAÌ@ÂL0AlL@öÉQAÌ@®L0AlL òÉQAÌ@ˆL0AlL çÉQAÌ€wL0AlLÀàÉQAÌ@^L0AlL€ÚÉQAÌÀFL0AlL`ÕÉQAÌ€&L0AlL€ÜÉQAÌ@L0AlLãÉQAÌÿK0AlL çÉQAÌ€éK0AlL`ìÉQAÌ@×K0AlL€ðÉQAÌ´K0AlL@÷ÉQAÌÀˆK0AlL€ÿÉQAÌ@bK0AlL`ÊQAÌ@EK0AlL`ÊQAÌ@ëJ0AlL€ÊQAÌÀJ0AlL`ÊQAÌ™J0AlL` ÊQAÌ@hJ0AlLà ÊQAÌ@J0AlL ÊQAÌ€½I0AlL ÊQAÌ€I0AlL@ÊQAÌ€]I0AlLàÊQAÌ€I0AlLàÊQAÌÀöH0AlL ÊQAÌ€ÄH0AlL€ÊQAÌÀiH0AlL ÊQAÌ@èG0AlL`ÊQAÌ@²G0AlL@ÊQĂG0AlLÀÊQAÌ@NG0AlLÊQAÌ€G0AlL ÊQAÌÛF0AlLÀÊQAÌ­F0AlL ÊQAÌ‘F0AlL@ÊQAÌ@SF0AlLàÊQAÌ:F0AlL ÊQAÌÀF0AlLÊQAÌ@òE0AlLÀÊQAÌÀØE0AlL@ÊQAÌ€±E0AlL`ÊQAÌE0AlLÊQAÌ@E0AlL ÊQAÌ'E0AlL`ÊQAÌ€E0AlLàÊQAÌõD0AlL ÊQAÌ€âD0AlLpÊQAÌÈD0AlL@ÊQAÌ€³D0AlLPÊQAÌ@­D0AlLÊQAÌvD0AlL ÊQAÌ€^D0AlL ÊQAÌÀ,D0AlL ÊQAÌ@$D0AlL ÊQAÌ D0AlLÀÊQAÌàC0AlLÀÊQAÌ@¸C0AlLÐ#ÊQAÌ€¨C0AlLà)ÊQAÌ¥C0AlL +ÊQAÌŸC0AlL@-ÊQAÌ€C0AlL€2ÊQAÌ€nC0AlL<ÊQAÌ@jC0AlL€>ÊQAÌ@WC0AlL`JÊQAÌ€FC0AlLàPÊQAÌ€8C0AlLàWÊQAÌÀ0C0AlL`]ÊQAÌ@$C0AlL fÊQAÌ@C0AlL`pÊQAÌÀ C0AlLàyÊQAÌ@ïB0AlL`…ÊQAÌ€ÊB0AlL`˜ÊQAÌ€þB0AlLšÊQAÌ@3C0AlLðÊQAÌÌC0AlLð¥ÊQAÌÀD0AlL®ÊQAÌiD0AlLð±ÊQAÌÀ¯D0AlL0³ÊQAÌáD0AlL°¶ÊQAÌÀE0AlLP¹ÊQAÌ@6E0AlL0ºÊQAÌÀ]E0AlLÀÊQAÌ@E0AlLÂÊQAÌ€ÁE0AlLÀÄÊQAÌ€F0AlL€ÈÊQAÌlF0AlLàÎÊQAÌ€]G0AlLÐÛÊQAÌ@ÜG0AlLpäÊQAÌÀéG0AlLàâÊQAÌ€£H0AlL0ïÊQAÌÀI0AlLÀóÊQAÌ€1I0AlLÐõÊQAÌ€`I0AlLúÊQAÌ€mI0AlL@úÊQAÌÀ£I0AlL`ÿÊQAÌ€ÃI0AlL€ËQAÌ@ìI0AlL@ËQAÌ@ J0AlLàËQAÌÀ&J0AlL@ ËQAÌ@JJ0AòUe ËQAÌÀpJ0AlL ËQAÌ€‚J0AlL€ËQAÌ€“J0AlL@ËQAÌ€¶J0AlL ËQAÌÀÓJ0AlLàËQAÌÀôJ0AlL€ËQAÌ€K0AlL@ËQAÌÀ-K0AlL€ËQAÌ@¥K0AlL`"ËQAÌ@âK0AlL%ËQAÌL0AlL€&ËQAÌ€vL0AlL *ËQAÌ@ªL0AlLÀ-ËQAÌ@ºL0AlL@.ËQAÌÀçL0AlLà/ËQAÌÀM0AlL 2ËQAÌÀQM0AlL€4ËQAÌÀtM0AlL 7ËQAÌ€ÙM0AlLà<ËQAÌ@ûM0AlL?ËQAÌÀN0AlL =ËQAÌ@+N0AlLà<ËQAÌ@5N0AlL@=ËQAÌYN0AlL >ËQAÌÀvN0AlL ?ËQAÌ@¯N0AlL`AËQAÌ€ÃN0AlL€BËQAÌO0AlL@EËQAÌ€;O0AlL GËQAÌÀgO0AlLàHËQAÌÀO0AlL KËQAÌÀ¾O0AlL€MËQAÌP0AlLÀPËQAÌ€.P0AlL@RËQAÌTP0AlL TËQAÌmP0AlLUËQAÌÀ†P0AlL€WËQAÌ@§P0AlL`YËQAÌ€ÁP0AlL`ZËQAÌÀÑP0AlLà[ËQAÌÀQ0AlL_ËQAÌ Q0AlL@aËQAÌ@/Q0AlL€bËQAÌ€XQ0AlLÀdËQAÌ@sQ0AlLgËQAÌÀŒQ0AlLÀhËQAÌ@¥Q0AlLàiËQAÌ@ÆQ0AlL@kËQAÌüQ0AlL€oËQAÌ€R0AlLàoËQAÌ@'R0AlL@pËQAÌ@R0AlLÐrËQAÌ€TR0AlLuËQAÌ@|R0AlL€wËQAÌ¥R0AlL€zËQAÌ€ËR0AlL`}ËQAÌ€øR0AlL€ËQAÌ'S0AlLÀƒËQAÌÀ=S0AlL€…ËQAÌ€^S0AlL@‡ËQAÌÀS0AlLàŠËQAÌÀ§S0AlL`ŒËQAÌÅS0AlL ËQAÌ@åS0AlL‘ËQAÌ€ T0AlL ”ËQAÌÀ(T0AlL •ËQAÌÀOT0AlLà™ËQAÌÀnT0AlL šËQAÌ@œT0AlL€žËQA̾T0AlL ¡ËQAÌ€úT0AlLà¦ËQAÌ€U0AlL ¨ËQAÌ@(U0AlL«ËQAÌDU0AlL€­ËQAÌ[U0AlL@¯ËQAÌjU0AlL°ËQAÌzU0AlL€°ËQAÌÀŽU0AlL ±ËQAÌ@œU0AlL ³ËQAÌ@©U0AlL`´ËQAÌÀ³U0AlLÀµËQAÌ@ºU0AlL`¶ËQAÌ ÁU0AlL`·ËQAÌ€ÈU0AlL ¹ËQAÌÌU0AlLÀºËQAÌ€ÒU0AlL ¼ËQAÌ€ÙU0AlL€¾ËQAÌßU0AlL ÀËQAÌ€çU0AlLÂËQAÌ€ëU0AlL`ÃËQAÌÀíU0AlL`ÅËQAÌ€òU0AlLÀÈËQAÌ òU0AlL`ÊËQA¬VóU0AlL ÌËQAÌöU0AlLXÎËQAÌÀýU0AlL°ÍËQAÌV0AlL ÏËQAÌ V0AlLÐÐËQAÌàV0AlL@ÑËQAÌ`V0AlL°ÒËQAÌ!V0AlLÔÓËQAÌ(V0AlLÕËQAÌ@1V0AlLàÕËQAÌà5V0AlLàÖËQAÌ;V0AlLØËQAÌà@V0AlLhØËQAÌ GV0AlLPÙËQAÌ0LV0AlLPÚËQAÌàPV0AlL ÛËQAÌ@XV0AlL ÛËQAÌ`V0AlL ÜËQAä5UõiV0Aæ‚«*ÛËQAÌPtV0AlLÈÚËQAÌ`~V0AlL ÛËQAÌp‡V0AlLHÜËQAÌ€‘V0Aæ‚«ŠÜËQAÌð˜V0AlL¸ÝËQAÌ¢V0AlLpÝËQAÌÀ­V0AlL€ÞËQAÌ@µV0AlLàßËQAÌÀ»V0AlLPáËQAÌÀÄV0AlLâËQAÌÍV0AlLãËQAÌ ÓV0AlLðãËQAÌðÖV0AlLÀâËQAÌ0ÙV0AlL(áËQAÌ€ßV0AlL@àËQAÌàåV0AlL`àËQA̰ëV0AlL0àËQAÌ óV0AlL@ÞËQAÌ W0AlL°ÝËQAÌ€ W0AlL@ÞËQAÌW0AlL°ÞËQAÌÀ"W0AlL@àËQAÌÀ1W0AlL€áËQAÌ€;W0AlL áËQAÌÀJW0AlLàáËQAÌ@UW0AlL âËQAÌàbW0AlL°ãËQAÌðfW0AlLxåËQAÌàhW0AlL çËQAÌðoW0AlLÈæËQAÌtW0AlLpèËQAÌ€|W0AlLçËQAÌ@ƒW0AlLàèËQAÌ`‹W0AlL°éËQAÌ€’W0AlLêËQAÌ –W0AlLëËQAÌà›W0AlLÀëËQAÌ@£W0AlLíËQAÌ€«W0AlL ìËQAÌ ±W0AlL€ëËQAÌ`¸W0AlLàëËQAÌ ¿W0AlLìËQAÌ@ÅW0AlL`ìËQAÌàÍW0AlL€ëËQA̰ÕW0AlL°ëËQAÌàÛW0AlL0ëËQAÌ@áW0AlL êËQAÌÐáW0AlL ìËQAÌàèW0AlLíËQAÌ€îW0AlL ìËQAÌÀòW0AlL€êËQAÌàúW0AlLéËQAÌ X0AlLðèËQAÌ@ X0AlLàèËQAÌàX0AlLàèËQAÌ "X0AlLÐèËQAÌ+X0AlL`éËQAÌ@4X0AlL€éËQAÌÀ;X0AlL éËQAÌ@BX0AlLÀéËQAÌNX0AlL`êËQAÌXX0AlL ëËQAÌ^X0AlL€ëËQAÌÀmX0AlLÀëËQAÌ€uX0AlLðëËQAÌX0AlL ìËQẢX0AlLÀëËQAÌ“X0AlLÀëËQAÌÀ›X0AlL ëËQAÌ¢X0AlL€êËQAÌÀªX0AlL êËQAÌÀ±X0AlL€éËQAÌ@·X0AlLàèËQAÌ@ÁX0AlLÀçËQAÌàÆX0AlL`éËQAÌ@ÒX0AlL îËQAÌ@âX0AlL€ôËQAÌ@òX0AlL€ûËQAÌ0Y0AlLPÌQAÌY0AlL ÌQAÌ@ Y0AlL€ÌQAÌÀY0AlLÀ ÌQAÌÀY0AlL ÌQAÌ Y0AlLÜ ÌQAÌ@ Y0AlL`ÌQAÌ@+Y0AlL  ÌQAÌ€Y0AlL ÌQAÌ€ûX0AlL ùËQAÌ@ìX0AlLóËQAÌçX0AlLñËQAÌ@âX0AlLàïËQAÌÞX0AlLÀíËQAÌ@æX0AlL ìËQAÌ@õX0AlL éËQAÌÀY0AlLÀæËQAÌY0AlL åËQAÌ€Y0AlL äËQAÌÀ.Y0AlL âËQAÌ€;Y0AlL áËQAÌEY0AlLÀßËQAÌMY0AlL0ßËQAÌ@\Y0AlL`ÛËQAÌ@ïY0AlLÚËQAÌçZ0AlLÐàËQAÌ€s[0AlL°åËQAÌÀe]0AlL@ÌQAÌ€§]0AlLp ÌQAÌÀó]0AlL ÌQAÌ€¤^0AlL ÌQAÌ€ò^0AlLÌQAÌ€®`0AlL<ÌQAÌ@xb0AlL°bÌQAÌ€pb0AlL [ÌQAÌÀƒb0AlL ^ÌQAÌ€Šb0AlLÀ^ÌQAÌ€žb0AlLà]ÌQAÌ€Âb0AlL@]ÌQAÌÀìb0AlL^ÌQAÌÀ7c0AlL@`ÌQAÌ€hc0AlL aÌQAÌšc0AlL€bÌQAÌÓc0AlLfÌQAÌ@d0AlL`jÌQAÌ@‰d0AlL@qÌQAÌ@žd0AlL`sÌQAÌÀÙd0AlLxÌQAÌ€Se0AlL ÌQAÌÀ¤e0AlL …ÌQAÌf0AlL€ÌQAÌ×f0AlL ›ÌQAÌÀKg0AlL`£ÌQAÌ€dg0AlL`˜ÌQAÌÀig0AlLàÌQAÌ[g0AlLà‹ÌQAÌ@g0AlL„ÌQAÌg0AlL€ÌQAÌ@èf0AlLÀ|ÌQAÌÈf0AlL vÌQAÌ€¯f0AlL pÌQA!Ȩ!/çº.AlL?„QA˜€Õþ.AlL@ÆQAö˜€ î.AlL`¿ŒQA˜€;ï.AlL€—ŒQA˜‡ï.AlL`‡ŒQA˜€Êï.AlLoŒQA˜ð.AlL@^ŒQA˜€:ð.AlLPŒQA˜‰ð.AlL`=ŒQA˜€ûð.AlL€(ŒQA˜(ñ.AlLàŒQA˜€<ñ.AlL` ŒQA˜Uñ.AlL@þ‹QA˜[ñ.AlL€ð‹QA˜€cñ.AlL@á‹QA˜ƒñ.AlL`ЋQA˜Òñ.AlLÁ‹QA˜€ò.AlL°‹QA˜€_ò.AlL £‹QA˜®ò.AlLÀ›‹QA˜Þò.AlL ”‹QA˜#ó.AlLà‹‹QA˜kó.AlLà}‹QA˜€žó.AlL@q‹QA˜»ó.AlL@c‹QA˜Ñó.AlLàW‹QA˜èó.AlL€K‹QA˜€ô.AlL ?‹QA˜€ô.AlLÀ2‹QA˜6ô.AlL`#‹QA˜<ô.AlLà‹QA˜€=ô.AlLÀ‹QA˜/ô.AlL`öŠQA˜€&ô.AlL@ðŠQA˜ ô.AlLàéŠQA˜€#ô.AlLàߊQA˜"ô.AlLÔŠQA˜€4ô.AlLàÄŠQA˜@ô.AlL ºŠQA˜€fô.AlL ¡ŠQA˜mô.AlL°›ŠQA˜zô.AlL ŠQA˜€Ÿô.AlL€‡ŠQA˜Ìô.AlL€xŠQA˜€õ.AlL@kŠQA˜Eõ.AlL ^ŠQA˜€Žõ.AlL€QŠQA˜€âõ.AlL @ŠQA˜îõ.AlL 9ŠQA˜ö.AlL@/ŠQA˜€,ö.AlLà#ŠQA˜Mö.AlL€ ŠQA˜Zö.AlLÀù‰QA˜vö.AlLÀ܉QA˜€Àö.AlL ˉQA˜€ßö.AlL¾‰QA˜÷.AlL@³‰QA˜%÷.AlL€Ÿ‰QA˜€;÷.AlL`—‰QA˜€f÷.AlL`‡‰QA˜€Œ÷.AlL y‰QA˜€¦÷.AlL o‰QA˜€»÷.AlLàb‰QA˜€É÷.AlLÀW‰QA˜€Î÷.AlLO‰QA˜æ÷.AlL I‰QA˜€ø.AlLàA‰QA˜!ø.AlL 9‰QA˜1ø.AlL`.‰QA˜,ø.AlLÀ!‰QA˜€2ø.AlLÀ‰QA˜(ø.AlLÀýˆQA˜ ø.AlL@íˆQA˜ø.AlL ÁˆQA˜î÷.AlLà´ˆQA˜€ø.AlL@¬ˆQA˜ø.AlL £ˆQA˜€ó÷.AlLÀ”ˆQA˜€í÷.AlLà†ˆQA˜ø.AlL |ˆQA˜€lø.AlL`tˆQA˜€§ø.AlL kˆQA˜Öø.AlL cˆQA˜ù.AlLÀPˆQA˜€Jù.AlL@?ˆQA˜€„ù.AlLà1ˆQA˜€¤ù.AlL $ˆQA˜»ù.AlLÀˆQA˜ñù.AlL`ˆQA˜Qú.AlL`ˆQA˜€™ú.AlL€õ‡QA˜€Ëú.AlL î‡QA˜€¸û.AlL ¿‡QA˜€ü.AlLÀ°‡QA˜€Aü.AlL ¦‡QA˜€wü.AlL ›‡QA˜€ƒü.AlL`‘‡QA˜€ü.AlLÀ†‡QA˜€¶ü.AlL`w‡QA˜Ñü.AlL n‡QA˜€ý.AlL _‡QA˜€]ý.AlL R‡QA˜€§ý.AlLE‡QA˜€éý.AlL€7‡QA˜€.þ.AlLÀ+‡QA˜uþ.AlL@‡QA˜€›þ.AlL€‡QA˜¹þ.AlL ü†QA˜€Çþ.AlLñ†QA˜Õþ.AlLã†QA˜€Õþ.AlL؆QA˜€`þ.AlL`Ô†QA˜€Éý.AlL`Ô†QA˜€®ü.AlL Ô†QA˜€éû.AlLÔ†QA˜Yû.AlLÓ†QA˜ÿú.AlL Î†QA˜€’ú.AlL@ˆQA˜€þù.AlL`ƆQA˜€ù.AlL ņQA˜€hø.AlL`ĆQA˜€Î÷.AlL€À†QA˜€s÷.AlLÀµ†QA˜€7÷.AlL ­†QA˜€»ö.AlL@¬†QA˜€uö.AlL¬†QA˜€*ö.AlL@©†QA˜€Äõ.AlL@†QA˜˜õ.AlL “†QA˜€^õ.AlL †QA˜1õ.AlL`…†QA˜€àô.AlL z†QA˜›ô.AlL@q†QA˜ô.AlL i†QA˜€Âó.AlLàe†QA˜€=ó.AlL€i†QA˜Îò.AlL@k†QA˜4ò.AlL b†QA˜½ñ.AlLX†QA˜€Qñ.AlL`O†QA˜€Öð.AlL€E†QA˜€ið.AlL@>†QA˜ëï.AlL :†QA˜€oï.AlL€7†QA˜€úî.AlL?†QA˜€Äî.AlL`J†QA˜€Ðî.AlL€Q†QA˜€Ëî.AlLÀZ†QA˜€žî.AlL_†QA˜oî.AlL€Z†QA˜€Mî.AlL Q†QA˜€^î.AlLÀH†QA˜€zî.AlL`6†QA˜€¤î.AlL "†QA˜@Bï.AlLç…QA˜€gï.AlL Ï…QA˜€Ëï.AlL€ …QA˜€÷ï.AlL €…QA˜ð.AlL j…QA˜€ð.AlL@Z…QA˜€Dð.AlLE…QA˜€cð.AlLà&…QA˜ð.AlL…QA˜€¾ð.AlL ó„QA˜€áð.AlL@Ø„QA˜ïð.AlL@À„QA˜ ñ.AlL ²„QA˜)ñ.AlL@ „QA˜@ñ.AlLàŒ„QA˜€Vñ.AlL@}„QA˜€|ñ.AlLl„QA˜€šñ.AlL`a„QA˜€Èñ.AlL€V„QA˜€ùñ.AlLàM„QA˜ò.AlL`D„QA˜òñ.AlL?„QA˜€ ñ.AlL@@„QA˜€+ñ.AlL`H„QA˜€Áð.AlLÀR„QA˜€lð.AlL_„QA˜€3ð.AlL j„QA˜€øï.AlL w„QA˜€ï.AlL ‡„QA˜€Aï.AlL@–„QA˜ï.AlLÀ¡„QA˜€Æî.AlL ±„QA˜€–î.AlL€»„QA˜€Zî.AlLÀÄ„QA˜€Kî.AlL@Å„QA˜€!î.AlL Æ„QA˜€Õí.AlL Å„QA˜€í.AlLÄQA˜€9í.AlL€À„QA˜ûì.AlL€½„QA˜€µì.AlL`»„QA@æO—ì.AFh|U²„QAκ‚šì.AXë<À¶„QAÀr ƒì.A42@»„QA8— âÛë.A€E ·„QA˜Éõòoë.A€E`µ„QA€ šòë.A42@À´„QA(·rò½ê.A€E ³„QAÈ{“‚xê.A ]6À±„QA¨²­‚)ê.AyC@¯„QAØdKRÀé.A|¤9 ­„QA¸›eRbé.A|¤9@¬„QAàDy‚é.AÆŽ>À­„QA8— bè.A8¯„QAàDy‚:è.AÆŽ>€¯„QA¸›eR¿ç.AêG;µ„QA_bç.A€E`½„QAXibÎæ.AÆŽ>ÀÅ„QAèMb¤æ.A¢ÕA É„QA×D‚gæ.A|¤9 Í„QA¨»7bæ.A8Ï„QAòQ‚Ñå.AXë< Ï„QA°ÄÁuå.AÆŽ> Î„QAûÛáå.A2º4 Ï„QAéÁä.A¢ÕA@ЄQA°ÄÁa®ã.AXë< Ó„QAȧSã.A42@àÓ„QAèVaêâ.AêG;Õ„QAÀ­yQ‹â.A8 Ö„QAȧáâ.A¢ÕA`ׄQAfÁá.A8ׄQAȧaSá.A2º4@Ö„QAȧáá.AyC Ô„QAøÇ9 ñà.Aâ,µÓ„QA°ÍKá´à.A42@ Ò„QAXrša†ß.AÆŽ>àì„QA@²>.ß.A¢ÕAàò„QA0ÒQÑÞ.A42@àû„QAÀ­yQ‹Þ.A2º4 ÿ„QA"žh Ý.A.±ªð)…QAX{$á¯Û.AXë<€P…QAxD aªÚ.A42@ m…QAП»`Ú.A|¤9@|…QAøHÏP”Ù.AXë< ‡…QA˜ ð`Ù.A|¤9@”…QA°ÖÕàsØ.A8Ÿ…QAП»`ç×.A¢ÕA ©…QAШE`×.AÄ3à±…QAð·™iÖ.ALz4¸…QA(ûl€yÕ.AêG; ¼…QARYP©Ô.A8 ¾…QApvðïÑÓ.A|¤9¾…QAÈÈðÓ.A8€º…QAøƒ?ßöÒ.Aï#-º…QAرÏ_WÒ.A¢ÕA`·…QApvðï‘Ñ.A2º4`­…QAHÍÜßëÐ.A|¤9@¬…QA¸ñsMÐ.AXë< «…QAHÖfŽÏ.A ]6 ª…QA€_¨îÎ.AÆŽ>@©…QA°FO[Î.AÄ3Àª…QAغY«Í.A ]6€«…QA 1ËÌ.AÆŽ>`°…QAøƒ? Ì.AÄ3¹…QAm÷îWË.A ]6ÀÁ…QA=<'Ë.AÔLo%Æ…QAøŒÉ~Ê.AÄ3`Î…QAøŒÉ^ÞÉ.A42@ Ú…QA°ÐN“É.AXë<ÀÞ…QAh¨Ö^+É.AÆŽ>àä…QAÀúý^ÍÈ.AÆŽ>@é…QAØÃã^Ç.AÄ3@÷…QAx‘Ž3Æ.A42@€þ…QA ¥^ÓvÅ.AÖ™ój†QAx‘ŽNOÅ.A ]6  †QA(?gî;Å.A8†QA˜Zt-Å.AÄ3 †QA˜ZtÅ.A2º4 '†QAÀˆ~Å.A8/†QAp±`~*Å.A2º4@6†QAˆzF~Å.A8`;†QAŒZÝÛÄ.AƽãA†QAPèz~°Ä.AÄ3@G†QAvîÄ.AVs1ÀK†QA¸#Z`Ä.A42@ R†QAvîAÄ.A2º4`U†QA_9~Ä.A8`[†QAx‘ŽîÄ.AVs1Àc†QAPèz^ðÃ.AêG;àm†QA˜Ztî×Ã.A8Àx†QAø•S~¹Ã.A|¤9À‡†QA8(~‘Ã.A|¤9–†QAx‘ŽîyÃ.A8`£†QA@MoÃ.A ]6`¬†QA_9~eÃ.AXë<@²†QAˆzF^:Ã.AVs1À»†QAÐì?îýÂ.A ]6ÀɆQA_9~ÐÂ.A8àφQAPèzÞšÂ.A ]6ÀÙ†QAPñ~vÂ.A8Àà†QA(?gCÂ.AêG;àí†QA_9^Â.AXë<`ù†QA_9~×Á.A42@ ‡QA¨C,^¦Á.A2º4@‡QAðµ%qÁ.AÄ3@‡QA˜cþí]Á.AÆŽ>` ‡QA¸#ZKÁ.AVs1 ,‡QAˆzF~AÁ.A42@ :‡QAÈ ~'Á.AÆŽ>`H‡QAÈ ~Á.A42@ Z‡QA_9ÞÁ.AXë<@j‡QA˜cþíÁ.AÆŽ> v‡QA_9~,Á.AÆŽ>„‡QAPñÞKÁ.A ]6à‡QAø•S~€Á.A8 ¡‡QA_9~ÐÁ.AêG;àõ‡QA(?g‘Á.A8`ˆQA˜ZtmÁ.A ]6`ˆQA€šî1Á.AÄ3!ˆQAH´i¨ Á.ALX“a&ˆQA¨C,~ûÀ.AXë<€(ˆQA`@´Ò¶À.AŽ'úŠ0ˆQA(Hñ ¾.AXë< §ˆQAàÕ÷]é½.AXë< £ˆQA¸,ä _½.A8€¢ˆQA`Ú¼ ¾¼.A|¤9 ­ˆQApºêÝ¢¼.A ]6àȈQAhÃ}¤¼.AVs1àÚˆQAhÃݤ¼.AÆŽ>@éˆQAØõÉ ¨¼.A ]6àøˆQAØõÉ }¼.AXë<` ‰QAØõÉ D¼.A8À‰QAƒÐ}¼.AêG;à5‰QApÃt}Ú».A42@€f‰QA¸,äí»».A¢ÕA`‡‰QApÃt]·».AXë< ‰QAèÞ]¡».A8—‰QApÃt}Œ».A2º4 Ÿ‰QAhÃ]ˆ».AÄ3`®‰QA€£¢ ».AÄ3 ¸‰QA¸5nís».A2º4 Ë‰QAØõÉ a».AêG; ܉QA¸5níA».A42@àë‰QAXúŽÝ ».AÄ3@ÿ‰QA𾯠ۺ.AVs1ÀŠQA€£¢ ªº.AÄ3 ŠQAèÞ}oº.AXë< +ŠQAˆ• Uº.AêG;@3ŠQA¨!/çº.AÀÀ$>ŠQAÀP Ì~º.Aü[z¢DŠQAàòKùº.A wbHŠQA`-Ü\».A²quBJŠQAX”—ع».A˜±úLŠQAÀûu¼.A¸ò JVŠQA8(~>¼.A²ˆgŠQAxÞܬ¼.AÖ*r"uŠQAPèzþ½.A~`?†ŠQAhÁI6½.A~`?º—ŠQAhõZ̾.Aޏx¤ŠQAP>‰ ²¾.ARj§´²ŠQA@²>a;¿.AÆÇ]¸ŠQA æ¿.ALÇQAøÐÃLCÀ.Ajÿ{ŠQAÐì?NÕÀ.A5I.ËŠQA¸èé_ùÀ.AÆý¿ôΊQA(•u{VÁ.Aây!¿ØŠQA`I>2ËÁ.Aäè¢+ãŠQA•ä<Â.AޏxâëŠQA uM"Â.AFFbôŠQAÈ&=WÂ.ADÎsÂþŠQAè++cÂ.A˜±V‹QA±ñÜ®Â.A´é€‚ ‹QAøÐÃÌØÂ.Aޏx‚‹QA uMøÂ.Aü[z"‹QAÃ\)Ã.A(RÈ.‹QA±ñ<6Ã.A w"2‹QA°U@=2Ã.Aü[z"9‹QAØÞLPÃ.A²quD‹QAX=‚Ã.A w‚O‹QA8:3=ÖÃ.AØ¢}‚T‹QA‘M>Ä.A w‚_‹QA€¬,Í’Ä.Ajÿ{Âj‹QA𾯠¾Ä.A|‚<áu‹QAxÌþ<ÙÄ.A w‚‡‹QApÃt=èÄ.ADÎsB›‹QAØ2ecÅ.A0þ.â©‹QA`Ú¼­Å.A0Ü1ƒ²‹QA(ÀüÑ7Å.A,¨ ݺ‹QAHaM‰Å.Ajÿ{bÆ‹QAèÞ=ÒÅ.A´é€ÂÈ‹QApÃt=èÅ.A²qu‚ЋQA lˆÍêÅ.AFF¢Ú‹QAÈ&=åÅ.Aü[z¢ä‹QAØþSÍÂÅ.A wbð‹QA qMÝ¢Å.Ajÿ{âù‹QAhãFM¼Å.AÖ*rbŒQAØþSMûÅ.A w‚ŒQAŒZ=)Æ.ADÎs"ŒQA°U@=rÆ.AØ¢}"ŒQA¸5nMºÆ.A´é€‚ŒQAˆ•M%Ç.AÆŽ> ŒQAhÃÝxÇ.A´é€âŒQA(Q{MÖÇ.AFF¢ŒQA`Ú¼Í5È.A wBŒQAhÃ=«È.A$‚ÂŒQAàÕ÷ÝDÉ.Aü[z¢ŒQAƒÐÝÊ.Aޏx¢%ŒQAƒÐ=ŽÊ.Aü[zB(ŒQAØõÉÍ<Ë.A$‚¢0ŒQA_9Þ²Ë.A$‚¢8ŒQAø•S>Ì.Aü[z¢<ŒQAø&Ò™hÌ.A w;ŒQA u ßÌ.A ‰,<;ŒQAØÒh=Í.A@VhÂ7ŒQA¸#ZN¦Í.AØ¢}¢3ŒQAˆzF>òÍ.Aü[z"1ŒQA¨C,>Î.AFFB5ŒQAp±`>xÎ.A´é€Â@ŒQAˆzF>ùÎ.A²qu‚HŒQA(?gN‚Ï.Aü[zRŒQAV¯>ûÏ.AØ¢}‚\ŒQA˜|q…VÐ.A‹WÛeŒQA¨:¢>ØÐ.AØ¢}"oŒQA˜ZtNWÑ.A´é€¢qŒQAàoÙ½Ñ.A¾s ÍnŒQAÐãµÎ6Ò.A²qubqŒQAˆq¼>ˆÒ.A²qu"sŒQAªþÒ.A¶X·xŒQA˜€IÓ.AlLÀrŒQA˜£Ó.AlL€mŒQA˜üÓ.AlLÀhŒQA˜hÔ.AlL bŒQA˜€öÔ.AlL``ŒQA˜ŸÕ.AlL@YŒQA˜!Ö.AlL PŒQA˜€¯Ö.AlLMŒQA˜H×.AlL`IŒQA˜€¿×.AlLàOŒQA˜î×.AlL0SŒQA˜Ø.AlL€TŒQA˜€¢Ø.AlLÀZŒQA˜éØ.AlL ^ŒQA˜EÙ.AlL bŒQA˜œÙ.AlLàdŒQA˜ïÙ.AlLàgŒQA˜7Ú.AlL@lŒQA˜|Ú.AlL rŒQA˜ÀÚ.AlLwŒQA˜Û.AlL yŒQA˜,Ü.AlL@ŒQA˜eÜ.AlL@€ŒQA˜³Ü.AlL zŒQA˜Ý.AlLÀwŒQA˜[Ý.AlLxŒQA˜€²Þ.AlL€|ŒQA˜€Pß.AlLÀˆŒQA˜áß.AlL@”ŒQA˜à.AlL@—ŒQA˜fà.AlLœŒQA˜æà.AlL §ŒQA˜8á.AlLૌQA˜€¡á.AlL€­ŒQA˜€ÿá.AlL ¯ŒQA˜_â.AlLµŒQA˜€Áâ.AlL`´ŒQA˜#ã.AlL`²ŒQA˜€ä.AlL€§ŒQA˜På.AlL`«ŒQA˜€úå.AlLௌQA˜ºæ.AlLೌQA˜Jç.AlL ¸ŒQA˜Óç.AlLàÂŒQA˜lè.AlLÀÔŒQA˜ªè.AlL ÜŒQA˜é.AlL`áŒQA˜€<é.AlLðäŒQA˜€Oé.AlL íŒQA˜€\é.AlLýŒQA˜€·é.AlL@QA˜€%ê.AlLðQA˜€Šê.AlL@%QA˜€(ë.AlL6QA˜hë.AlLEQA˜„ë.AlLOQA˜¶ë.AlLTQA˜€sì.AlLàfQA˜Ìì.AlL`{QA˜.í.AlLà‹QA˜€fí.AlLà˜QA˜Œí.AlL@¥QA˜€¤í.AlL ³QA˜Áí.AlLÀ»QA˜ î.AlLàÂQA˜_î.AlL@ÆQA˜…î.AlL ÂQA˜_î.AlL»QA˜@î.AlL`±QA˜€5î.AlL«QA˜€)î.AlL  QA˜2î.AlLàŒQA˜:î.AlL€iQA˜€;î.AlL`[QA˜€1î.AlL€MQA˜2î.AlLà9QA˜Pî.AlL€$QA˜sî.AlLÀ QA˜€€î.AlL@ùŒQA˜„î.AlL èŒQA˜‹î.AlL`ÜŒQA˜€ î.AlL`¿ŒQA"4(Ì@Ë0AlLà˜QAÌ@Ì\0AlL ;¹QAÚ1@Ì€eA0AlL ;¹QÃA0AlL 9¹QAÌ@¥A0AlL:¹QAÌÐA0AlL8¹QAÌÀéA0AlL 5¹QAÌ@ B0AlL1¹QAÌ@0B0AlL.¹QAÌ€VB0AlL€*¹QAÌ€vB0AlLÀ'¹QAÌÀšB0AlLà'¹QAÌ@ÃB0AlLÀ¹QAÌ€ÕB0AlLÀ¹QAÌ@ñB0AlLÀ¹QAÌÀC0AlL¹QAÌ€-C0AlL ¹QAÌ@FC0AlLà¹QAÌÀZC0AlLÀý¸QAÌ@aC0AlL ü¸QAÌ€xC0AlL ø¸QAÌ—C0AlL`ó¸QAÌ@¯C0AlL ï¸QAÌÀÈC0AlLÀê¸QAÌ@âC0AlL â¸QAÌD0AlL`Ù¸QAÌ€D0AlL`иQAÌ@lD0AlL€³¸QAÌ@—D0AlL ¢¸QAÌ€ÂD0AlLàš¸QAÌ€áD0AlL ›¸QAÌÀ[E0AlLž¸QAÌÏE0AlLÀŸ¸QAÌôE0AlLÀ ¸QAÌÀ F0AlL@¢¸QAÌ@JF0AlL¥¸QAÌtF0AlLࢸQAÌ”F0AlL@¸QAÌ€§F0AlL€—¸QAÌÀÂF0AlL ¸QAÌ€ÞF0AlL€|¸QAÌ€ûF0AlL€r¸QAÌÀ#G0AlL`d¸QAÌ€*G0AlL Z¸QAÌÀ2G0AlL€R¸QAÌ8G0AlL€J¸QAÌ@DG0AlL ?¸QAÌ€WG0AlL€7¸QAÌxG0AlL€2¸QAÌÀ•G0AlL€-¸QAÌ@«G0AlL (¸QAÌÈG0AlL@¸QAÌôG0AlL¸QAÌ@H0AlL ¸QAÌ€-H0AlL ÿ·QAÌI0AlL`ƒ¶QAÌÀ`I0AlL@v¶QAÌ™I0AlL`l¶QAÌ@ÚI0AlLàa¶QAÌ@àI0AlL`¶QAÌ€ðI0AlLà\¶QAÌ@J0AlL`X¶QAÌ€%J0AlL I¶QAÌ@uJ0AlL€(¶QAÌŒJ0AlL`¶QAÌ@–J0AlL€¶QAÌÀ¤J0AlL ¶QA̱J0AlL@øµQAÌ@¿J0AlL`íµQAÌàÆJ0AlLãµQAÌ€ÕJ0AlL€ÚµQAÌçJ0AlL@ÒµQAÌ€ÿJ0AlL ͵QAÌÀ.K0AlL€·µQAÌ@SK0AlL`³µQAÌŸK0AlLવQAÌ€¼K0AlL঵QAÌ@ÓK0AlL€¤µQAÌ€ïK0AlL@¤µQAÌL0AlL¢µQAÌ@>L0AlL`œµQAÌÀ`L0AlL —µQAÌÀˆL0AlL@‘µQAÌ@¬L0AlL`ŒµQAÌÀÓL0AlL€„µQAÌ@úL0AlL |µQAÌ@M0AlLvµQAÌÀ$M0AlL€mµQAÌ3M0AlL@eµQAÌ€OM0AlL`YµQAÌ@lM0AlLàSµQAÌ@’M0AlLÀMµQAÌ€µM0AlLFµQAÌ€ÔM0AlL@<µQAÌÀçM0AlL 4µQAÌÀ÷M0AlLÀ)µQAÌàN0AlLµQAÌÀN0AlLàµQAÌ@þM0AlLàµQAÌüM0AlL@ú´QAÌûM0AlLÀï´QAÌüM0AlLé´QAÌ@N0AlLÀà´QAÌÀO0AlL ¤´QAÌOO0AlL ¨´QAÌ@qO0AlL€§´QAÌ€‘O0AlL¡´QAÌ@œO0AlL š´QAÌ@¡O0AlL€“´QAÌœO0AlL†´QAÌ@ŒO0AlL@z´QAÌÀzO0AlL t´QAÌ_O0AlL l´QAÌÀBO0AlL€d´QAÌÀ O0AlL`Y´QAÌO0AlL P´QAÌÀïN0AlLàI´QAÌ@ãN0AlL D´QAÌ@âN0AlL =´QAÌO0AlL 4´QAÌO0AlL@-´QAÌO0AlLÀ%´QAÌ€(O0AlL`´QAÌÀ1O0AlL€´QAÌ@&O0AlL@´QAÌO0AlLà´QAÌ@O0AlL€ü³QAÌÀæN0AlLÀó³QAÌëN0AlL@ë³QAÌûN0AlL@á³QAÌO0AlL€Ù³QAÌ@ûN0AlL`γQAÌÀìN0AlL ¶³QAÌ€ÈN0AlL ¡³QAÌÀºN0AlL ‘³QAÌ@¬N0AlL€„³QAÌÀ›N0AlL {³QAÌÀ~N0AlLào³QAÌ@}N0AlLÀf³QAÌÀ‹N0AlL@^³QAÌÒN0AlLàS³QAÌÀüN0AlL@N³QAÌ€'O0AlLÀH³QAÌ€AO0AlL€F³QAÌ{O0AlL€I³QAÌ€®O0AlL L³QAÌÀÛO0AlLP³QAÌ@P0AlL€R³QAÌÀ'P0AlLU³QAÌ@IP0AlL`W³QAÌgP0AlL Y³QAÌ€€P0AlLà[³QAÌ@œP0AlL ]³QAÌ@ÒP0AlL ^³QAÌ€?Q0AlL€`³QAÌ€oQ0AlL`a³QAÌ€˜Q0AlLÀa³QAÌÀÆQ0AlL b³QAÌñQ0AlL`b³QAÌR0AlLc³QAÌ@GR0AlL`c³QAÌ@GR0AlL€[³QAÌ€\0AlL`ø±QAÌj\0AlL ï±QAÌÀ‹\0AlLàé±QAÌб\0AlLˆä±QAÌ@Ì\0AlL`Û±QAÌ@Ç\0AlLбQAÌ€\0AlL@¿±QAÌ€i\0AlL¸±QAÌ€J\0AlL³±QAÌ€<\0AlL ¬±QAÌ@.\0AlL¢±QAÌ(\0AlL —±QAÌÀ\0AlLÀ±QAÌ@ø[0AlL@‹±QAÌ@ò[0AlLàƒ±QAÌÀì[0AlL w±QAÌë[0AlLo±QAÌÀæ[0AlL€h±QAÌÀÚ[0AlL@a±QAÌÐ[0AlLÀX±QAÌÀ±[0AlLàQ±QAÌ@˜[0AlLàN±QAÌ€y[0AlL J±QAÌ@R[0AlL€M±QAÌ@1[0AlLàL±QAÌ@ÿZ0AlLÀK±QAÌÅZ0AlLÀG±QAÌZ0AlL`8±QAÌ€{Z0AlL€.±QAÌ@ZZ0AlL`$±QAÌ€9Z0AlL€±QAÌ€Z0AlL@±QAÌ@ìY0AlLÀ±QAÌ@ÆY0AlLàÿ°QAÌÀ•Y0AlLþ°QAÌÀyY0AlL€±QAÌ€\Y0AlL@ ±QAÌ@DY0AlL€±QAÌ€Y0AlL@&±QAÌ@åX0AlL@-±QAÌ@œX0AlLÀ2±QAÌIX0AlLÀ8±QAÌ@X0AlLàD±QAÌÀ±W0AlL@L±QAÌ€HW0AlL€X±QAÌ€äV0AlLàa±QAÌ@³V0AlL l±QAÌ@’V0AlL Z±QAÌÀ’V0AlLÀL±QAÌ€ªV0AlL C±QAÌ»V0AlLà=±QAÌÀÖV0AlL <±QAÌ€ùV0AlLÀ>±QAÌ!W0AlLÀ@±QAÌ>W0AlL`>±QAÌ@sW0AlL :±QÄW0AlL`1±QAÌ@ W0AlL@-±QAÌ@´W0AlLà)±QAÌ€ÙW0AlL€&±QAÌëW0AlL!±QAÌÀÝW0AlL@±QAÌÊW0AlLà±QA̤W0AlL` ±QAÌÀoW0AlL±QAÌ@FW0AlLÀ±QAÌ€"W0AlL€±QAÌ@òV0AlL`±QAÌÀÇV0AlL ±QAÌ@©V0AlL ±QAÌV0AlL ±QAÌ€\V0AlL %±QAÌ@IV0AlLà/±QAÌÀFV0AlL 8±QAÌDV0AlL ?±QAÌ€@V0AlL H±QAÌ@(V0AlL I±QAÌ V0AlLàE±QAÌÀúU0AlL >±QAÌÀV0AlLÀ7±QAÌÀV0AlL 0±QAÌV0AlLÀ'±QAÌ€ßU0AlLÀ%±QAÌÀÃU0AlL€$±QAÌ@œU0AlLÀ!±QAÌuU0AlL±QAÌÀU0AlLÀ±QAÌ€¬U0AlL ±QAÌ€ÃU0AlLÀ±QAÌ€âU0AlL@±QAÌ@òU0AlLÀû°QAÌÕU0AlL€ô°QAÌ@¾U0AlLÀï°QAÌŸU0AlLÀï°QAÌ€U0AlL@õ°QAÌ€†U0AlL û°QAÌ€jU0AlL€±QAÌÀIU0AlL ±QAÌ€)U0AlLà±QAÌÀiU0AlL€ï°QAÌÀU0AlL@ì°QAÌ€³U0AlL Õ°QAÌ€OU0AlLܰQAÌ@/U0AlL Þ°QAÌÀU0AlL€ß°QAÌ€ÝT0AlLÀÛ°QAÌÀ·T0AlLÀÒ°QAÌ@ªT0AlL@ŰQAÌ@ÍT0AlL@»°QAÌÀòT0AlL`º°QAÌ@0AlL`1¥QAÌ@Ë=0AlL ¥QAÌ€h=0AlL¥QAÌ€û<0AlLÀè¤QAÌ€¢<0AlL ѤQAÌ@‹=0AlL ¬¤QAÌC;0AlLðF¤QAÌ@9;0AlL@E¤QAÌ;0AlLÐ?¤QAÌÀ;0AlLP<¤QAÌ€Ì:0AlL`2¤QAÌÀÅ:0AlL@1¤QAÌ@¯:0AlL`-¤QAÌ€:0AlL %¤QAÌÀ[:0AlL0¤QAÌ@i70AlLÀž£QAÌ@ý60AlL0£QAÌÀ–70AlL`c£QA̸70AlL Y£QAÌÀÙ70AlL O£QAÌì70AlL H£QAÌ€80AlL`?£QAÌ@+80AlL 6£QAÌ€N80AlL€/£QAÌh80AlLà)£QAÌ€y90AlLò¢QAÌ90AlLÑ¢QA̬80AlLÀ©¢QAÌ€û50AlLÐáQAÌ€å50AlL€¼¡QAÌ@U40AlL ¢QAÌÀü30AlLÀž¡QAÌ@ã30AlLz¡QAÌ€»30AlL`@¡QAÌ¡30AlL@¡QAÌ@^30AlL ¹ QAÌ@30AlL  QAÌ@Ý20AlL`F QAÌÀ‹20AlLÀ QAÌ€:20AlL€áŸQAÌÀ420AlLÞŸQAÌÀæ10AlL€°ŸQAÌÐ10AlL°¡ŸQAÌ@¤10AlL…ŸQAÌ€…10AlLÀ[ŸQAÌ@t10AlL€>ŸQAÌY10AlLÀŸQAÌ@H10AlLàŸQAÌÀ+10AlLÀÇžQAÌ€10AlLÀ²žQAÌ€10AlLà žQAÌÀ10AlL •žQAÌÀ10AlL ‰žQAÌ€ 10AlL €žQAÌ@$10AlLàržQAÌ@$10AlLPpžQAÌÀ$10AlLàižQAÌ@'10AlL€`žQAÌÀ.10AlL`TžQAÌ€:10AlLÀJžQAÌ€G10AlL <žQAÌR10AlL0žQAÌ€Y10AlLÀžQAÌÀ^10AlLÀžQAÌÀa10AlL@žQAÌ€k10AlLàüQAÌ€k10AlL ÷QAÌl10AlL€ìQAÌ€]10AlL ØQAÌÀA10AlL@ÁQAÌ@10AlL@¨QAÌ€ 10AlLà˜QAÌÀn00AlL ¹QAÌ@900AlL ÀQAÌÿ/0AlL@ÄQAÌ€¡/0AlLàÃQAÌÀ /0AlL€ÆQAÌ*.0AlL ËQAÌ€¥-0AlL@ÆQAÌ€ì,0AlL ÑQAÌÝ,0AlL ÖQAÌ@Æ,0AlL€ÛQA̯,0AlL€ãQAÌ€†,0AlL@ëQAÌ€m,0AlL ëQAÌ@U,0AlLÀëQAÌ@0,0AlLàîQAÌ,0AlL`òQAÌ€Ù+0AlL óQAÌÀ²+0AlL@ôQAÌ€Š+0AlLõQAÌ@d+0AlLàôQAÌÀ=+0AlL`õQAÌ@ +0AlL@öQAÌÀç*0AlL@úQAÌ€È*0AlLÀþQAÌÀ®*0AlL€žQAÌ€Œ*0AlL`žQAÌB*0AlLàýQAÌÀ*0AlL ýQAÌ€ú)0AlLàýQAÌ@Ö)0AlLÀžQAÌ´)0AlL`žQAÌ€ˆ)0AlLàžQAÌ€i)0AlL`žQAÌÀ1)0AlLàûQAÌ€)0AlLàûQAÌ€½(0AlL`ýQAÌ@Œ(0AlLýQAÌ€](0AlL€žQAÌ@8(0AlLàžQAÌ€H'0AlLà#žQAÌ'0AlL€+žQAÌ€Ü&0AlL`0žQAÌÀ¯&0AlL`.žQAÌ€n&0AlLà&žQAÌÀ>&0AlL€!žQAÌ€&0AlLžQAÌÀã%0AlL`žQAÌ€"%0AlLÀ4žQAÌÀØ$0AlLp>žQAÌ€Â$0AlL`AžQAÌÀ‚$0AlL@BžQAÌ€$0AlL DžQAÌÀï#0AlL€BžQAÌ@>#0AlLàCžQAÌÀ#0AlLàDžQA̹"0AlL`BžQAÌ@}"0AlL€8žQAÌf"0AlLà4žQAÌ@ "0AlL/žQAÌÏ!0AlLÀ1žQAÌÀ™!0AlL 9žQAÌÀ¦!0AlL`@žQAÌ€±!0AlL`IžQAÌ€×!0AlL TžQAÌÀß!0AlL€[žQAÌ€Ö!0AlL fžQA̺!0AlLkžQAÌÀ!0AlL`kžQAÌ]!0AlL mžQAÌ@!0AlLàpžQA̽ 0AlL tžQAÌÀ~ 0AlL€vžQAÌ@ 0AlL zžQAÌ50AlL@“žQAÌ@ô0AlL›žQAÌÁ0AlL`ŸžQAÌ€z0AlL ¢žQAÌ€60AlL@¨žQAÌÀñ0AlL`´žQAÌÀm0AlL ÞQAÌÀÿ0AlL ËžQAÌ€÷0AlL@êžQAÌÊ0AlLàîžQAÌ@0AlLàöžQAÌG0AlL€ýžQAÌA0AlLànŸQAÌ€0AlL`›žQAÌÏ0AlLÐ¥žQAÌ€¾0AlL€¨žQAÌ@ 0AlL0·žQAÌ0AlL ºžQAÌ*0AlL ½žQAÌ@½0AlLPÙžQAÌ€ó0AlLÐEŸQAÌÀ0AlLÀPŸQAÌ€0AlL€YŸQAÌ€B0AlLÐfŸQAÌÀm0AlLÀlŸQAÌ@’0AlLÀoŸQAÌ«0AlL pŸQAÌÀ0AlLàÇŸQAÌ€0AlL@€ QAÌ0AlL@‰ QAÌ€ñ0AlL ’ QAÌÛ0AlL› QAÌ€Ï0AlL Ÿ QAÌÀ’0AlL¦ QAÌ€¦0AlL`X¡QAÌ@Ë0AlL@y¡QAÌ@90AlL”¡QAÌ@ 0AlLà­¡QAÌÀþ0AlL€Å¡QAÌ@=0AlLÀ¢QAÌ@ 0AlLàB¢QAÌ€0AlL€I¢QAÌ€<0AlL`Q¢QAÌc0AlL_¢QAÌ€‡0AlL@h¢QA̰0AlL@r¢QAÌÀÒ0AlL@¢QAÌ€ü0AlL@Œ¢QAÌ€!0AlL€—¢QAÌ@D0AlL §¢QAÌZ0AlL`³¢QAÌ@s0AlL Á¢QAÌ€‹0AlL`Ì¢QAÌ@£0AlLàÔ¢QAÌ€Ÿ0AlL Û¢QA̘0AlL ï¢QAÌß0AlL€ð¢QAÌ@*0AlL`ô¢QAÌÀ•0AlL@ü¢QAÌ 0AlL`£QAÌ€0AlLà£QAÌÀÅ0AlL` £QAÌ@ì0AlL  £QAÌÀ50AlL £QAÌ@Z0AlL@£QAÌ@y0AlL`£QAÌ€“0AlLÀ£QAÌ€•0AlL£QAÌ€Ž0AlL€ý¢QAÌ@ˆ0AlL`÷¢QAÌÀ„0AlLî¢QAÌÀ‰0AlL@ã¢QAÌ@“0AlLàÚ¢QAÌ@±0AlL`ТQAÌ@ÿ0AlLàŸ¢QAÌ@<0AlL@¥¢QAÌ€n0AlL°¢QAÌÀº0AlLà·¢QAÌÀã0AlL`¼¢QAÌ0AlL ½¢QAÌ€]0AlL ¼¢QAÌ}0AlL¼¢QAÌ@0AlL€»¢QA̼0AlL ½¢QAÌ€Æ0AlL€Æ¢QAÌÔ0AlL Ö¢QAÌÀä0AlLã¢QAÌî0AlL@í¢QAÌ@ò0AlLàú¢QAÌ@0AlL` £QAÌÀ0AlL`£QAÌÀ0AlLÀ(£QAÌ€$0AlL`4£QAÌ.0AlL`=£QAÌÀI0AlL ?£QAÌÀk0AlLà?£QAÌ›0AlL€@£QAÌ€³0AlL >£QAÌ€º0AlL8£QAÌÀ³0AlL`/£QA̵0AlLÀ'£QAÌÀ60AlL@'£QAÌ\0AlLÀ*£QAÌp0AlL@$£QAÌÀ²0AlL`#£QAÌ€ 0AlL`£QAÌW 0AlL£QAÌÀk 0AlL€£QAÌÀe 0AlL  £QAÌ^ 0AlL ÷¢QAÌÀ_ 0AlL ë¢QAÌ€S 0AlL€ß¢QAÌ€K 0AlLÑ¢QAÌB 0AlLàÄ¢QAÌ> 0AlL ¹¢QAÌ@5 0AlL@®¢QAÌ€N 0AlL ­¢QAÌ€o 0AlL«¢QAÌ€¦ 0AlL`§¢QAÌÀÏ 0AlLढQAÌ÷ 0AlLÀ ¢QAÌ!0AlL ¢QAÌ€]!0AlL€™¢QAÌ€¼!0AlLà”¢QAÌç!0AlL€´¢QAÌ€*"0AlLÀߢQAÌZ"0AlL £QAÌ@Ÿ"0AlL@5£QAÌÀ³"0AlL€Q£QAÌ¿"0AlL _£QAÌ@Õ"0AlLÀe£QAÌ@#0AlL@c£QAÌÀ#0AlL€^£QAÌÀ#0AlL@W£QAÌ@þ"0AlL P£QAÌé"0AlLàI£QAÌ@Ú"0AlLàA£QAÌ€Ë"0AlLà<£QAÌ@ç"0AlL@7£QAÌ#0AlL 9£QAÌÀ7#0AlLÀ:£QAÌÀ]#0AlL <£QAÌÀ#0AlL@=£QAÌ€·#0AlL`>£QAÌ@å#0AlL@@£QAÌ€$0AlL€@£QAÌÀ3$0AlL @£QAÌ€^$0AlL`B£QAÌ@š$0AlL D£QAÌ€Ô$0AlL E£QAÌ%0AlL D£QAÌÀ%0AlLàC£QAÌÀº%0AlL E£QAÌÀì%0AlLD£QAÌ@0&0AlL ?£QAÌe&0AlL€=£QAÌ€¯&0AlL :£QAÌÀú&0AlL`7£QAÌÀ1'0AlL5£QAÌ@x'0AlL8£QAÌÀ¾'0AlLÀ7£QAÌ€ì'0AlL :£QAÌ€R(0AlLà;£QAÌ£(0AlL<£QAÌÀé(0AlL€@£QAÌ@ƒ)0AlLÀD£QAÌ¡)0AlL€{£QAÌ€Ð)0AlL ›£QAÌ@ë)0AlL€Ä£QAÌ€(*0AlLü£QAÌÀ5*0AlL ¤QAÌÀL*0AlL¤QAÌo*0AlL`%¤QAÌ€¦*0AlL0¤QAÌÀÊ*0AlL`:¤QAÌÞ*0AlLà?¤QAÌö*0AlL€T¤QAÌ€+0AlL h¤QAÌ@'+0AlL`t¤QAÌ5+0AlL@„¤QAÌ@L+0AlL@™¤QAÌ€q+0AlL€¯¤QAÌ@{+0AlL¿¤QAÌ€Œ+0AlL€Ð¤QAÌ€Œ+0AlLàð¤QAÌÀ—+0AlL û¤QAÌ@œ+0AlL¥QAÌ€£+0AlL@¥QAÌÀ¯+0AlLÀ¥QAÌ€¼+0AlL€$¥QAÌ€Ö+0AlL 1¥QAÌ@è+0AlL 8¥QAÌ ,0AlLÀP¥QAÌ€O,0AlL@l¥QÄ,0AlLà€¥QAÌ@µ,0AlLÀ“¥QAÌ@ß,0AlL ¢¥QAÌ€ü,0AlL€°¥QAÌ@-0AlLº¥QAÌ€@-0AlL@Ä¥QAÌ€`-0AlL Ô¥QAÌ@‚-0AlL à¥QAÌ€Á-0AlL0ó¥QAÌ@t-0AlL€¦QAÌ@A-0AlL@ ¦QAÌÀï,0AlLà¦QAÌÀ,0AlL%¦QAÌ7,0AlL`3¦QAÌÀ ,0AlL )¦QAÌ€ç+0AlL`(¦QAÌÀÂ+0AlL€&¦QAÌ@n+0AlL 1¦QAÌÀM+0AlLà5¦QAÌ@%+0AlLÀA¦QAÌ@+0AlLÀK¦QAÌ€ç*0AlLÀQ¦QAÌ@Ì*0AlLÀU¦QAÌÀ­*0AlL@Z¦QÄ*0AlL`_¦QAÌ€^*0AlL€e¦QAÌ@*0AlL€q¦QAÌÀÓ)0AlL`r¦QAÌ@¥)0AlL`v¦QAÌ})0AlL v¦QAÌ@U)0AlLÀ‚¦QAÌ€H)0AlL`‰¦QAÌH)0AlL`’¦QAÌ€K)0AlL Ÿ¦QAÌ@R)0AlL€ª¦QAÌ€[)0AlLµ¦QAÌÀ`)0AlL¼¦QAÌÀi)0AlL`ǦQAÌ€u)0AlL`Ò¦QAÌ})0AlLàߦQAÌÀ‡)0AlLàê¦QAÌ€Ž)0AlL€ö¦QAÌ@)0AlLà§QAÌ@™)0AlLà§QA̤)0AlL`§QAÌÀª)0AlL`)§QAÌÀ¯)0AlL4§QA̲)0AlL`E§QAÌ ¯)0AlLðM§QAÌÀ¡)0AlL@O§QAÌ@€)0AlL`Q§QAÌ€u)0AlL€Q§QAÌÀK)0AlLàQ§QAÌ€)0AlL`U§QAÌ@º(0AlLÀ[§QAÌ€7(0AlL€^§QAÌ '0AlL a§QAÌ@]'0AlL€e§QAÌ#'0AlLÀl§QAÌ ì&0AlL8m§QA̵&0AlLÀW§QAÌ@†&0AlL€]§QAÌÀh&0AlLb§QAÌ@,&0AlL€j§QAÌô%0AlL@p§QAÌ­%0AlL`v§QAÌ€v%0AlL`z§QAÌ4%0AlLÀz§QAÌì$0AlLÀx§QA̳$0AlL@t§QAÌ€”$0AlL`r§QAÌ€Š$0AlLÀq§QAÌ$0AlL`t§QAÌÕ#0AlL v§QAÌÀ,#0AlL@z§QAÌÀ "0AlL€w§QAÌ!0AlL x§QAÌÀö0AlL€v§QAÌÀæ0AlL`v§QAÌ€á0AlLx§QAÌ€Ô0AlL`~§QAÌ@Ù0AlLЧQAÌâ0AlLÀ•§QAÌã0AlLधQAÌÓ0AlL ®§QAÌÀµ0AlL¶§QAÌŸ0AlL¹§QAÌ@™0AlL€º§QAÌ‹0AlL@½§QAÌ@g0AlL@ħQAÌÀ<0AlL@ɧQAÌ@0AlL€Í§QAÌÀß0AlL@Õ§QAÌÀž0AlL ß§QAÌÀe0AlLàä§QAÌ@B0AlL`é§QAÌ0AlL í§QAÌ@ß0AlL î§QAÌ@©0AlLí§QAÌ€p0AlLàæ§QAÌ€k0AlLè§QAÌV0AlLÀï§QAÌÀp0AlLàü§QAÌ@Œ0AlL`¨QAÌ€0AlLà!¨QAÌ@½0AlLÀ.¨QAÌ@Â0AlL 9¨QAÌ€Å0AlLG¨QAÌ€Û0AlLS¨QAÌö0AlL€f¨QAÌÀý0AlL@o¨QAÌÿ0AlL`|¨QAÌ€0AlL ‚¨QAÌþ0AlL Š¨QAÌ€ 0AlL›¨QAÌ0AlLࡨQAÌ0AlLࣨQAÌë0AlL@ ¨QAÌ@Û0AlL`›¨QAÌ@Ç0AlL”¨QAÌÀ0AlL€”¨QAÌ@c0AlL ›¨QAÌ€X0AlLࡨQAÌN0AlLÀª¨QAÌÀ=0AlLÀ²¨QAÌ€'0AlLº¨QAÌ0AlL Â¨QAÌ@0AlL ͨQAÌ€ö0AlL@Ú¨QAÌÀ«0AlL È¨QAÌ@Â0AlL ­¨QAÌ€0AlL©¨QAÌ@ƒ0AlL@°¨QAÌ}0AlL¸¨QAÌÀH0AlL`¨QAÌ€0AlL É¨QAÌ€î0AlL@Ó¨QAÌ€Æ0AlLݨQAÌÀ0AlL`æ¨QAÌ€x0AlL ô¨QAÌM0AlLàü¨QAÌ€&0AlLÀ©QAÌ€0AlL€©QAÌ€ø0AlL`©QAÌ€á0AlLÀ*©QAÌÀÃ0AlL 8©QAÌÀƒ0AlL`L©QAÌ@j0AlL@Q©QAÌ@O0AlLÀV©QAÌ@>0AlLÀ[©QAÌ€-0AlLa©QAÌ 0AlL`j©QAÌÀ0AlLÀp©QAÌù0AlL@z©QAÌ@È0AlLŠ©QAÌÇ0AlL€’©QAÌ€Á0AlL€›©QAÌÎ0AlL¨©QAÌ@Ò0AlL`®©QAÌ0AlL±©QAÌ€?0AlLà´©QAÌ|0AlL ·©QAÌ@Ð0AlL໩QAÌ@é0AlLð½©QAÌ0AlL Á©QAÌi0AlLàÇ©QAÌ@³0AlL@Ï©QAÌ€0AlLשQAÌj0AlLÛ©QAÌÖ0AlL Ú©QAÌ€<0AlL שQAÌ€x0AlLàÔ©QAÌÀÔ0AlL`È©QAÌ@40AlL@½©QAÌÀ‘0AlL€²©QAÌ@Ë0AlL®©QAÌ@ 0AlLÀ¥©QAÌ€Ž0AlL`Š©QAÌ€°0AlL@„©QAÌ@æ0AlL`x©QAÌ@' 0AlL r©QAÌÀd 0AlLÀm©QAÌÌ 0AlL€d©QAÌ!0AlL_©QAÌÀž!0AlLÀW©QAÌ€ö!0AlLÀS©QAÌ€P"0AlLàQ©QAÌÀŠ"0AlL`O©QAÌ€õ"0AlL K©QAÌÀF#0AlL€H©QA̼#0AlL M©QAÌ2$0AlLW©QAÌ@U$0AlL@i©QAÌÀq$0AlL@v©QAÌ¢$0AlL@ˆ©QAÌ@´$0AlLà–©QAÌÀ´$0AlL€ª©QAÌÀ°$0AlL½©QAÌ@Í$0AlLྩQAÌ@%0AlLÀ½©QAÌ@¥%0AlL`À©QAÌ@ß%0AlLàÀ©QAÌÀ/&0AlL€Ä©QAÌg&0AlLÀÅ©QAÌ@›&0AlL Å©QAÌÀÄ&0AlLàÁ©QAÌ@â&0AlLÀÀ©QAÌÀ1'0AlLÀéQAÌÀR'0AlL Ë©QAÌÀm'0AlL`Ö©QAÌ€•'0AlLàâ©QAÌ€©'0AlL€ê©QAÌ@®'0AlLÀî©QAÌ€¾'0AlL@ý©QAÌ@Í'0AlLà ªQAÌÓ'0AlLàªQAÌÀÎ'0AlL /ªQAÌ@Ì'0AlL`?ªQAÌÏ'0AlL NªQAÌÄ'0AlLÀdªQAÌÀÀ'0AlL`wªQAÌË'0AlLàˆªQAÌÀÄ'0AlL ›ªQAÌÀÄ'0AlLÀ©ªQAÌ@Ñ'0AlLÀºªQAÌÔ'0AlLàɪQAÌÀÖ'0AlLàØªQAÌ€Ó'0AlL åªQAÌ€Ù'0AlL€ïªQAÌ@Ý'0AlL þªQAÌè'0AlL«QAÌÀê'0AlL`!«QAÌ@ò'0AlLà5«QAÌ@ë'0AlLàC«QAÌ€æ'0AlL W«QAÌ€ø'0AlL@j«QAÌ€(0AlLàƒ«QAÌ@(0AlL°¢«QAÌ€I&0AlL`«QAÌ€ˆ%0AlL€–«QAÌ%0AlL@‘«QA̰$0AlL ‹«QAÌ@B$0AlL€ˆ«QAÌñ#0AlLà‡«QAÌ€¬#0AlLà‡«QAÌ+#0AlL ƒ«QAÌÀ°"0AlLÀ}«QAÌ€M"0AlL@y«QAÌÐ!0AlL€w«QAÌ@‘!0AlL u«QAÌ€A!0AlL@s«QAÌÀé 0AlL€p«QAÌ” 0AlL@p«QAÌ@C 0AlL€n«QAÌÀU 0AlL{«QAÌ€i 0AlL@•«QAÌÀŒ 0AlL««QAÌÀ® 0AlL@Ì«QAÌ@ß 0AlL@ë«QAÌ@!0AlL`¬QAÌÀ0!0AlL ,¬QAÌ5!0AlL H¬QAÌÀ !0AlL b¬QAÌ!0AlLðx¬QAÌÀõ 0AlLÀ–¬QAÌÀÓ 0AlLÀŬQAÌ€© 0AlL`ÿ¬QAÌ— 0AlLð­QAÌ@y 0AlLà?­QAÌ@ 0AlL€°­QAÌÀç0AlLàß­QAÌ€Ã0AlLÀ ®QAÌÀÆ0AlLÀ1®QAÌ­0AlL€3®QAÌ 0AlL`4®QAÌ@0AlL`=®QAÌ‚0AlL€E®QAÌÀg0AlLL®QAÌÀ*0AlLR®QAÌ@-0AlL _®QAÌ@30AlL€f®QAÌ€30AlL m®QAÌ€40AlL w®QAÌ@0AlL ‚®QAÌ€ü0AlL Œ®QAÌ€ë0AlL –®QAÌÀØ0AlLœ®QAÌ@Æ0AlLÀ¡®QAÌÀÈ0AlL ª®QAÌÑ0AlL@±®QAÌ×0AlL@¸®QAÌÀß0AlLà¿®QAÌÀë0AlL Ë®QAÌá0AlLÀÑ®QAÌÀË0AlL`Õ®QAÌ@¥0AlLÀÕ®QAÌÀ†0AlL€×®QAÌ`0AlL Ý®QAÌN0AlL ã®QAÌ@@0AlLàì®QAÌ40AlLõ®QAÌÀU0AlL þ®QAÌj0AlL€¯QAÌ€s0AlL€ ¯QAÌ@0AlL¯QAÌ€®0AlL¯QAÌ@Å0AlLÀ¯QAÌÀá0AlL%¯QAÌÀð0AlLà,¯QAÌ@ü0AlL 2¯QAÌ€0AlL C¯QAÌ@0AlL H¯QAÌÀð0AlL`P¯QAÌ€è0AlLÀX¯QAÌÀÝ0AlLà^¯QAÌæ0AlLi¯QAÌ@ÿ0AlLl¯QAÌ@þ0AlLÀr¯QAÌÀ÷0AlL€¯QAÌÛ0AlL€ˆ¯QAÌ@Ä0AlLàŠ¯QAÌ@¡0AlL ‘¯QAÌ@Œ0AlL`Ÿ¯QAÌÀq0AlL £¯QAÌj0AlL@ª¯QAÌÀs0AlL³¯QAÌ€u0AlL »¯QAÌ@m0AlL@¯QAÌ@R0AlLÀůQAÌ€C0AlL ϯQAÌ€50AlLàÕ¯QAÌÀ'0AlLܯQAÌ0AlL€å¯QAÌ@0AlL î¯QAÌö0AlLó¯QAÌ€Ô0AlL@ÿ¯QAÌ@Ç0AlL@°QAÌ€Â0AlL€ °QAÌ@¸0AlLà°QAÌ@¦0AlL`°QAÌÀ“0AlLÀ °QAÌ@‡0AlL0'°QAÌ@0AlL@)°QAÌ@r0AlL`7°QAÌ€i0AlL@A°QAÌ@L0AlLÀH°QAÌ€.0AlL`N°QAÌ 0AlLÀV°QAÌÀ0AlL ^°QAÌ@ú0AlL g°QAÌÀõ0AlL@p°QAÌÀö0AlL {°QAÌ€0AlL ‚°QAÌ@0AlL‹°QAÌ@ 0AlL ³°QAÌ0AlLà̰QAÌÀ0AlLàØ°QAÌ@0AlL€á°QAÌ 0AlLàé°QAÌú0AlL€ô°QAÌÀÐ0AlL@ÿ°QAÌÀ0AlL±QAÌÀ­0AlL€ ±QAÌ@0AlLÀ±QAÌg0AlL`±QAÌ0AlL G±QAÌ@û0AlL`R±QAÌ€ò0AlLÀ[±QAÌ@ó0AlL d±QAÌð0AlLào±QAÌÀå0AlLÀw±QAÌ@Ü0AlL`€±QAÌÓ0AlL€‹±QAÌ@Ê0AlL ”±QAÌ€À0AlLš±QAÌÀ²0AlL`¡±QAÌ@0AlL®±QAÌ€‹0AlL€·±QAÌÀo0AlL À±QAÌ`0AlL ͱQAÌÀM0AlL Ù±QAÌ>0AlLÀâ±QAÌ€!0AlL@ê±QAÌ@ 0AlL`ò±QAÌ@ÿ0AlL€ü±QAÌ@ì0AlL€ ²QAÌ€—0AlL@P²QAÌ€‹0AlL`Z²QAÌ@‰0AlL`f²QAÌÀŽ0AlL€r²QAÌÀŒ0AlL }²QAÌž0AlL™²QAÌ@¬0AlL ¤²QAÌ€Û0AlL€®²QAÌ0AlLÀ¸²QAÌx0AlL ƲQAÌ€É0AlL Ô²QAÌ@0AlL Þ²QAÌÀ`0AlL÷²QAÌÀ0AlL³QAÌA0AlL ³QAÌÀl0AlLà³QAÌ®0AlLà(³QAÌÀÑ0AlLÀ1³QAÌ€Û0AlL@:³QAÌ€Ô0AlLàD³QAÌ€Ì0AlL O³QAÌÂ0AlL€[³QA̲0AlLi³QAÌ€Ÿ0AlL€y³QAÌÀ0AlL †³QAÌ@€0AlL€–³QAÌÀl0AlLࢳQAÌ€G0AlL¿³QAÌ@"0AlLã³QAÌ€0AlL`÷³QAÌ@œ0AlL +´QAÌ@:0AlL_´QAÌ€ 0AlL l´QAÌÀý0AlL €´QAÌ@0AlL ”´QA̺0AlL Â´QAÌ@0AlL î´QAÌÀV0AlLµQÀŠ0AlL°“µQAÌ#0AlL€äµQAÌ€)'0AlLÀ“¶QAÌ@ÿ+0AlL`d·QAÌÀ',0AlL`q·QAÌA,0AlLàx·QAÌ@],0AlL ·QAÌ@z,0AlL ‡·QAÌ@±,0AlL ·QAÌ@Ò,0AlLÀ“·QAÌø,0AlLÀ™·QAÌ*-0AlL ¡·QAÌ€Q-0AlL §·QAÌ€u-0AlL ¯·QAÌ@„-0AlL ±·QAÌ@-0AlLµ·QAÌÀÓ-0AlLÀ»·QAÌ@ÿ-0AlL·QAÌÀ'.0AlLàÇ·QAÌ@?.0AlL@Ë·QAÌs.0AlL`Ô·QAÌ€u/0AlLàí·QAÌ«/0AlLô·QAÌ@Ö/0AlL ô·QAÌÀ 00AlL`û·QAÌ€600AlL ¸QAÌ€]00AlLÀ ¸QAÌÀŒ00AlLà¸QAÌ@µ00AlL@¸QAÌ€Ò00AlL$¸QAÌÀû00AlL@+¸QAÌ10AlLà1¸QAÌA10AlL@:¸QAÌ@W10AlL@A¸QAÌ10AlL@F¸QAÌ@¥10AlL M¸QAÌÀã10AlLàT¸QAÌ€20AlLà]¸QAÌ@^20AlLàc¸QAÌÀš20AlL j¸QAÌÔ20AlL`n¸QAÌ30AlL€s¸QAÌÀª30AlL@‚¸QAÌÀþ30AlL ’¸QAÌ€}40AlL€¬¸QAÌÀç40AlL`¼¸QAÌò40AlL`¸QAÌ€50AlL@̸QAÌ@50AlL`Ô¸QAÌ€X50AlL`߸QAÌ@50AlL`å¸QAÌÀ¢50AlLë¸QAÌ@Ù50AlL@ò¸QAÌ@ 60AlL ú¸QAÌ@&60AlL þ¸QAÌÀ]60AlLà¹QAÌ€†60AlL  ¹QAÌÃ60AlL@¹QAÌÀü60AlL€¹QAÌ@G70AlLÀ¹QAÌ@ƒ70AlL ¹QAÌ€Â70AlL€¹QAÌ€ú70AlLÀ¹QAÌÀ280AlL`¹QAÌ€k80AlL`¹QAÌ@¤80AlLà¹QAÌÚ80AlL€¹QAÌ€ú80AlL ¹QAÌ€90AlLð ¹QAÌ90AlLà ¹QAÌœ90AlL ¹QAÌ@Û90AlL€¹QAÌ€:0AlL¹QAÌ€.:0AlL@¹QAÌÀj:0AlL`¹QAÌ€Ô:0AlL ¹QAÌ@p;0AlL` ¹QAÌ;0AlL€"¹QAÌ@°;0AlLÀ¹QAÌ€Î;0AlL@¹QAÌ@ó;0AlL`¹QAÌÀ<0AlLà"¹QAÌÀ><0AlL@#¹QAÌ€`<0AlLà$¹QAÌŽ<0AlL *¹QAÌ€§<0AlL .¹QAÌ€Ø<0AlL@2¹QAÌ@õ<0AlL4¹QAÌÀ =0AlLÀ6¹QAÌ.=0AlL€6¹QAÌ@S=0AlL 6¹QAÌt=0AlL€4¹QAÌ@=0AlL`0¹QAÌÀ«=0AlL +¹QAÌÍ=0AlLÀ'¹QAÌ€ï=0AlL`#¹QAÌ>0AlL ¹QAÌÀ >0AlL ¹QAÌÀL>0AlL ¹QAÌÀ_>0AlL@!¹QAÌÀs>0AlL %¹QAÌÀ—>0AlLÀ)¹QAÌÀ¿>0AlL+¹QAÌ€á>0AlL@%¹QAÌ‚?0AlL@¹QAÌ@0AlL#¹QAÌ>@0AlL@ ¹QAÌa@0AlLÀ ¹QAÌ€y@0AlLà¹QAÌÀ–@0AlLà¹QAÌÀÁ@0AlL` ¹QAÌè@0AlL$¹QAÌÀ A0AlLÀ,¹QAÌ€'A0AlL@2¹QAÌOA0AlLÀ8¹QAÌ€eA0AlL ;¹QAÌ€ 0AlL€®¡QAÌ@[!0AlL ž¡QAÌd!0AlL¹¡QAÌÀl!0AlL@Ì¡QAÌ€i!0AlLÀסQAÌ"0AlL@Ù¡QAÌ@"0AlLà¡QAÌ@"0AlL±¡QAÌ@3"0AlLà~¡QAÌ€?"0AlL€a¡QAÌ@S"0AlL I¡QAÌ€a"0AlL)¡QAÌ€b"0AlL ¡QAÌÀa"0AlL€¡QAÌÀ`"0AlL ü QAÌ€f"0AlL ï QAÌÀq"0AlLä QAÌ@y"0AlL Ú QAÌ@Š"0AlL€Â QAÌ€‹"0AlLÁ QAÌÀº#0AlL`ê QAÌ!%0AlL@¡QAÌ`(%0AlLP¡QAÌ@™%0AlLÀ+¡QAÌO'0AlL€g¡QAÌ@^'0AlLi¡QAÌ€l'0AlL€k¡QAÌ@@(0AlL`ˆ¡QAÌ€/(0AlL@Ž¡QAÌ@s'0AlL€Ï¡QAÌÔ&0AlL`¿¡QAÌ€š&0AlLàÆ¡QAÌb&0AlL@Ê¡QAÌ@&0AlL Ï¡QAÌ@´%0AlL@סQAÌÀ“%0AlL@Ü¡QAÌ@w%0AlL@ä¡QAÌÀd%0AlLÀð¡QAÌÀ>%0AlL¢QAÌ@)%0AlL ¢QAÌ %0AlL¢QAÌó$0AlL '¢QAÌ€â$0AlL4¢QAÌ@Ô$0AlLÀ>¢QAÌÇ$0AlL`M¢QAÌ€©$0AlLÀh¢QAÌÀž$0AlL€y¢QAÌÀ™$0AlL`€¢QAÌ@2$0AlL`|¢QAÌâ#0AlLÀz¢QAÌÀŽ#0AlLw¢QAÌ*#0AlLÀv¢QAÌ@Ô"0AlLÀ{¢QAÌ€®"0AlL`}¢QAÌÀ}"0AlL`‚¢QAÌÀÿ!0AlLÀ¢QAÌÌ!0AlL@“¢QAÌ@º!0AlL`“¢QAÌ€V!0AlL M¢QAÌ@/!0AlL@1¢QAÌ@˜ 0AlL@¢QAÌ€ü0AlL@¢QAÌ@¤0AlL ¢QAÌÀŠ0AlLÀ¢QAÌÀö0AlLÀÇ¡QAÌ 0AlL ¿¡QAÌC 0AlL µ¡QAÌ€ 0AlL€®¡QAÌ@xU0AlLÀs°QAÌ@jU0AlL€w°QAÌ@WU0AlL@z°QAÌ€?U0AlLà|°QAÌ€,U0AlLÀ{°QAÌU0AlL€y°QAÌçT0AlL@q°QAÌ€ØT0AlL d°QAÌ€àT0AlL@Z°QAÌÀùT0AlL U°QAÌ@.U0AlLR°QAÌÀZU0AlL@Q°QAÌ€‰U0AlL R°QAÌ€U0AlLÀS°QAÌÀ U0AlLà]°QAÌ—U0AlLd°QAÌ€ŽU0AlL i°QAÌÀ‚U0AlL n°QAÌ@xU0AlLÀs°QAÌÀÀU0AlL`‚°QAÌ€½U0AlL|°QAÌÐU0AlLÀv°QAÌÀøU0AlL@u°QAÌ€#V0AlLv°QAÌ@W0AlL@b°QAÌ€6W0AlLÀk°QAÌ€:W0AlL@p°QAÌ>W0AlL t°QAÌÀMW0AlL@}°QAÌ@]W0AlLà…°QAÌÀmW0AlL`°QAÌ€}W0AlL@˜°QAÌ@W0AlLÀ °QAÌ€›W0AlL`®°QA̵W0AlL`·°QAÌÀÍW0AlL`¹°QAÌ€øW0AlL ¿°QAÌ X0AlL€Ä°QAÌ€ôW0AlLà̰QAÌ€ÎW0AlL€Ó°QAÌ¡W0AlL€×°QAÌ€yW0AlL ã°QÃW0AlL`é°QAÌÀŸW0AlLàð°QAÌ€ÂW0AlL@÷°QAÌ€X0AlLàÿ°QAÌÀ7X0AlL±QAÌ€VX0AlLÀ ±QAÌÀkX0AlL ±QAÌ€‹X0AlL ±QAÌ@¦X0AlLÀ±QAÌÂX0AlLÿ°QAÌÀÚX0AlLý°QAÌÀÌX0AlL`õ°QAÌÃX0AlL`ì°QAÌÀ´X0AlL â°QAÌ€¤X0AlLذQAÌ@“X0AlL Í°QÃX0AlL@À°QAÌqX0AlL µ°QAÌÀiX0AlL€®°QAÌ€bX0AlLЧ°QAÌ]X0AlLÀ¢°QAÌUX0AlL›°QAÌKX0AlLÀ°QAÌ€BX0AlL@ƒ°QAÌ:X0AlL z°QAÌ4X0AlL r°QAÌ/X0AlL€k°QAÌà'X0AlLÀd°QAÌ#X0AlL`°QAÌX0AlLàX°QAÌ€X0AlLàO°QAÌ€ X0AlLÀH°QAÌÀX0AlL€@°QAÌÀüW0AlLà8°QA#Cš˜€ Ü/AlLÀR›QAÌ@(D0AlL€ç¿QAoWÉH_Ì€"0AlLÀ‘¼QAÌÀ=0AlL ¼QAÌÀm0AlLÀмQAÌ€‹0AlL@мQAÌ€³0AlL޼QAÌ€Î0AlL@޼QAÌÀó0AlL ޼QAÌ 0AlLÀ¼QAÌ€2 0AlL`‰¼QAÌ€I 0AlLÀ…¼QAÌ@y 0AlL`¼QAÌ@ 0AlLà}¼QAÌ@¦ 0AlL z¼QAÌ@ !0AlL@k¼QAÌ@D!0AlLb¼QAÌÀ–!0AlL@S¼QAÌ@Ë!0AlL`K¼QAÌ€"0AlL@A¼QAÌ4"0AlL`8¼QAÌQ"0AlL 3¼QAÌ@„"0AlL +¼QAÌ@©"0AlLÀ(¼QAÌÀÐ"0AlL@(¼QAÌÀ#0AlL€(¼QAÌ8#0AlL€)¼QAÌ@e#0AlL -¼QAÌ@§#0AlL 5¼QAÌ@Ó#0AlL`:¼QAÌ$0AlLð=¼QAÌ€4$0AlLÀ;¼QAÌ$0AlL 8¼QAÌ€×$0AlL°6¼QAÌß$0AlL€6¼QAÌÀe%0AlL@/¼QAÌ@%0AlL€+¼QAÌ€Å%0AlL !¼QAÌÀ&0AlL`¼QAÌ:&0AlL ¼QAÌ@g&0AlL  ¼QAÌÀ’&0AlL€¼QAÌÀ¬&0AlL€¼QAÌÒ&0AlLú»QAÌ*'0AlLÀê»QAÌ@s'0AlL@à»QAÌÀ(0AlL@Ó»QAÌY(0AlL Í»QAÌÀ˜(0AlLÌ»QAÌ@ï(0AlL È»QAÌ@4)0AlL`Æ»QAÌc)0AlL Ä»QAÌÀ¤)0AlLÀ»QAÌ€Í)0AlL@¾»QAÌ@y*0AlL ­»QAÌ@l+0AlLÀ»QAÌÏ,0AlL€{»QAÌ@!-0AlL q»QAÌ@H-0AlLk»QAÌ@|-0AlL e»QAÌ€®-0AlLÀa»QAÌÀO.0AlL€V»QAÌÀ}.0AlLP»QAÌÀ©.0AlL`I»QAÌw/0AlL 8»QAÌ00AlL@)»QAÌÀG00AlL`$»QAÌ@€00AlLà»QAÌ@¤00AlL@»QAÌÈ00AlL`»QAÌ@õ00AlL »QAÌÀ"10AlL`»QAÌ€\10AlL`»QAÌÀ©10AlL »QAÌ€Ú10AlLÀ»QAÌ20AlL@»QAÌ@720AlL`»QAÌÀy20AlL úºQAÌ@20AlLÀöºQAÌ@·20AlLôºQAÌ€×20AlL@ðºQAÌÀü20AlLàëºQAÌÀ;30AlLàâºQAÌ€x30AlL`ÚºQAÌ@‹30AlLÐØºQAÌ.40AlL€ÊºQAÌ€{40AlL@¼ºQAÌ 40AlLà·ºQAÌ@Ø40AlL@´ºQAÌ50AlLÀ²ºQAÌ€;50AlL€®ºQAÌ€t50AlL@¬ºQAÌÀ¡50AlL@©ºQAÌÀÆ50AlL`¦ºQAÌ€ë50AlL€¤ºQAÌ@ 60AlL`¢ºQAÌ€460AlL@žºQAÌÀ’60AlL•ºQAÌ70AlL ˆºQAÌ@970AlLà„ºQAÌÀ70AlLÀ}ºQAÌÀ·70AlL@xºQAÌÀç70AlLqºQAÌÀ 80AlL kºQAÌÀ;80AlL`eºQAÌ@v80AlLà`ºQAÌÀ80AlL \ºQAÌ@¯80AlL TºQAÌ@Â80AlL PºQAÌ@è80AlL@JºQAÌÀ90AlL EºQAÌ@90AlL@AºQAÌ€;90AlL :ºQAÌd90AlL@5ºQAÌÀ‚90AlL3ºQAÌ€ò90AlLÀ/ºQAÌÀ:0AlL +ºQAÌÀ::0AlL`!ºQAÌ@P:0AlL€ºQAÌ€m:0AlL€ºQAÌ@®:0AlL ºQAÌ@Ñ:0AlL ºQAÌ@ø:0AlLºQAÌÀ;0AlLÿ¹QAÌ5;0AlL@û¹QAÌÀP;0AlLö¹QAÌ@i;0AlL`ñ¹QAÌ€‘;0AlL@í¹QAÌß;0AlL€Þ¹QAÌ€<0AlL×¹QAÌ[<0AlL йQAÌÀš<0AlLàʹQAÌÙ<0AlL@ĹQAÌ€X=0AlLàÁ¹QAÌ€‰=0AlL¿¹QA̼=0AlLູQAÌÀæ=0AlL µ¹QAÌÀ >0AlL ¯¹QAÌ@*>0AlL`ª¹QAÌ@@>0AlL@§¹QAÌ€`>0AlL€ ¹QAÌÀr>0AlL`œ¹QAÌ€‡>0AlL`–¹QA̬>0AlL@޹QAÌÏ>0AlL`‹¹QAÌÀô>0AlL@‰¹QAÌÀ"?0AlL€‡¹QAÌ>?0AlL€†¹QAÌ@b?0AlL`ƒ¹QA̳?0AlLÀ¹QAÌ÷?0AlLƒ¹QAÌe@0AlLà¹QAÌÀœ@0AlL ¹QAÌA0AlLÀ~¹QAÌ€9A0AlLÀz¹QAÌoA0AlLàv¹QAÌ€šA0AlL`w¹QA̼A0AlL@x¹QAÌ@îA0AlLà{¹QAÌ@+B0AlLÀ¹QAÌ@gB0AlLà‰¹QAÌ€ÊB0AlL`’¹QAÌC0AlL@™¹QAÌ@5C0AlL`¹QAÌ€\C0AlL ¹QAÌ€C0AlL £¹QAÌ£C0AlLÀ§¹QAÌ@ºC0AlL®¹QAÌ@ÎC0AlL ²¹QAÌäC0AlLÀ¶¹QAÌ€ùC0AlL ¼¹QAÌ@(D0AlL€Æ¹QAÌÀ#D0AlL༹QAÌ€D0AlLÀ²¹QAÌ€D0AlL¬¹QAÌÀD0AlL`£¹QAÌ€D0AlLà™¹QAÌ€!D0AlLà’¹QAÌ#D0AlL`йQAÌÀD0AlLÀ‚¹QAÌÚC0AlL@z¹QAÌÀÃC0AlLÀv¹QAÌ—C0AlL€t¹QAÌÀsC0AlL q¹QAÌ€\C0AlL j¹QAÌ@NC0AlL c¹QAÌ5C0AlL`]¹QAÌÀC0AlLZ¹QAÌ@ñB0AlLàV¹QAÌ€ÑB0AlLàQ¹QA̺B0AlL O¹QAÌÀ’B0AlLàD¹QAÌB0AlLà<¹QAÌ@”B0AlL 4¹QAÌ™B0AlL .¹QAÌÀšB0AlLà'¹QAÌ€vB0AlLÀ'¹QAÌ€VB0AlL€*¹QAÌ@0B0AlL.¹QAÌ@ B0AlL1¹QAÌÀéA0AlL 5¹QAÌÐA0AlL8¹QAÌ@¥A0AlL:¹QÃA0AlL 9¹QAÌ€eA0AlL ;¹QAÌOA0AlLÀ8¹QAÌ€'A0AlL@2¹QAÌÀ A0AlLÀ,¹QAÌè@0AlL$¹QAÌÀÁ@0AlL` ¹QAÌÀ–@0AlLà¹QAÌ€y@0AlLà¹QAÌa@0AlLÀ ¹QAÌ>@0AlL@ ¹QAÌ@0AlL#¹QAÌ‚?0AlL@¹QAÌ€á>0AlL@%¹QAÌÀ¿>0AlL+¹QAÌÀ—>0AlLÀ)¹QAÌÀs>0AlL %¹QAÌÀ_>0AlL@!¹QAÌÀL>0AlL ¹QAÌÀ >0AlL ¹QAÌ>0AlL ¹QAÌ€ï=0AlL`#¹QAÌÍ=0AlLÀ'¹QAÌÀ«=0AlL +¹QAÌ@=0AlL`0¹QAÌt=0AlL€4¹QAÌ@S=0AlL 6¹QAÌ.=0AlL€6¹QAÌÀ =0AlLÀ6¹QAÌ@õ<0AlL4¹QAÌ€Ø<0AlL@2¹QAÌ€§<0AlL .¹QAÌŽ<0AlL *¹QAÌ€`<0AlLà$¹QAÌÀ><0AlL@#¹QAÌÀ<0AlLà"¹QAÌ@ó;0AlL`¹QAÌ€Î;0AlL@¹QAÌ@°;0AlLÀ¹QAÌ;0AlL€"¹QAÌ@p;0AlL` ¹QAÌ€Ô:0AlL ¹QAÌÀj:0AlL`¹QAÌ€.:0AlL@¹QAÌ€:0AlL¹QAÌ@Û90AlL€¹QAÌœ90AlL ¹QAÌ90AlLà ¹QAÌ€90AlLð ¹QAÌ€ú80AlL ¹QAÌÚ80AlL€¹QAÌ@¤80AlLà¹QAÌ€k80AlL`¹QAÌÀ280AlL`¹QAÌ€ú70AlLÀ¹QAÌ€Â70AlL€¹QAÌ@ƒ70AlL ¹QAÌ@G70AlLÀ¹QAÌÀü60AlL€¹QAÌÃ60AlL@¹QAÌ€†60AlL  ¹QAÌÀ]60AlLà¹QAÌ@&60AlL þ¸QAÌ@ 60AlL ú¸QAÌ@Ù50AlL@ò¸QAÌÀ¢50AlLë¸QAÌ@50AlL`å¸QAÌ€X50AlL`߸QAÌ@50AlL`Ô¸QAÌ€50AlL@̸QAÌò40AlL`¸QAÌÀç40AlL`¼¸QAÌ€}40AlL€¬¸QAÌÀþ30AlL ’¸QAÌÀª30AlL@‚¸QAÌ30AlL€s¸QAÌÔ20AlL`n¸QAÌÀš20AlL j¸QAÌ@^20AlLàc¸QAÌ€20AlLà]¸QAÌÀã10AlLàT¸QAÌ@¥10AlL M¸QAÌ10AlL@F¸QAÌ@W10AlL@A¸QAÌA10AlL@:¸QAÌ10AlLà1¸QAÌÀû00AlL@+¸QAÌ€Ò00AlL$¸QAÌ@µ00AlL@¸QAÌÀŒ00AlLà¸QAÌ€]00AlLÀ ¸QAÌ€600AlL ¸QAÌÀ 00AlL`û·QAÌ@Ö/0AlL ô·QAÌ«/0AlLô·QAÌ€u/0AlLàí·QAÌs.0AlL`Ô·QAÌ@?.0AlL@Ë·QAÌÀ'.0AlLàÇ·QAÌ@ÿ-0AlL·QAÌÀÓ-0AlLÀ»·QAÌ@-0AlLµ·QAÌ@„-0AlL ±·QAÌ€u-0AlL ¯·QAÌ€Q-0AlL §·QAÌ*-0AlL ¡·QAÌø,0AlLÀ™·QAÌ@Ò,0AlLÀ“·QAÌ@±,0AlL ·QAÌ@z,0AlL ‡·QAÌ@],0AlL ·QAÌA,0AlLàx·QAÌÀ',0AlL`q·QAÌ@ÿ+0AlL`d·QAÌ€)'0AlLÀ“¶QAÌ#0AlL€äµQÀŠ0AlL°“µQAÌÀV0AlLµQAÌ@0AlL î´QA̺0AlL Â´QAÌ@0AlL ”´QAÌÀý0AlL €´QAÌ€ 0AlL l´QAÌ@:0AlL_´QAÌ@œ0AlL +´QAÌ€0AlL`÷³QAÌ@"0AlLã³QAÌ€G0AlL¿³QAÌÀl0AlLࢳQAÌ@€0AlL€–³QAÌÀ0AlL †³QAÌ€Ÿ0AlL€y³QA̲0AlLi³QAÌÂ0AlL€[³QAÌ€Ì0AlL O³QAÌ€Ô0AlLàD³QAÌ€Û0AlL@:³QAÌÀÑ0AlLÀ1³QAÌ®0AlLà(³QAÌÀl0AlLà³QAÌA0AlL ³QAÌÀ0AlL³QAÌÀ`0AlL÷²QAÌ@0AlL Þ²QAÌ€É0AlL Ô²QAÌx0AlL ƲQAÌ0AlLÀ¸²QAÌ€Û0AlL€®²QAÌ@¬0AlL ¤²QAÌž0AlL™²QAÌÀŒ0AlL }²QAÌÀŽ0AlL€r²QAÌ@‰0AlL`f²QAÌ€‹0AlL`Z²QAÌ€—0AlL@P²QAÌ@ì0AlL€ ²QAÌ@ÿ0AlL€ü±QAÌ@ 0AlL`ò±QAÌ€!0AlL@ê±QAÌ>0AlLÀâ±QAÌÀM0AlL Ù±QAÌ`0AlL ͱQAÌÀo0AlL À±QAÌ€‹0AlL€·±QAÌ@0AlL®±QAÌÀ²0AlL`¡±QAÌ€À0AlLš±QAÌ@Ê0AlL ”±QAÌÓ0AlL€‹±QAÌ@Ü0AlL`€±QAÌÀå0AlLÀw±QAÌð0AlLào±QAÌ@ó0AlL d±QAÌ€ò0AlLÀ[±QAÌ@û0AlL`R±QAÌ0AlL G±QAÌg0AlL`±QAÌ@0AlLÀ±QAÌÀ­0AlL€ ±QAÌÀ0AlL±QAÌÀÐ0AlL@ÿ°QAÌú0AlL€ô°QAÌ 0AlLàé°QAÌ@0AlL€á°QAÌÀ0AlLàØ°QAÌ0AlLà̰QAÌ@ 0AlL ³°QAÌ@0AlL‹°QAÌ€0AlL ‚°QAÌÀö0AlL {°QAÌÀõ0AlL@p°QAÌ@ú0AlL g°QAÌÀ0AlL ^°QAÌ 0AlLÀV°QAÌ€.0AlL`N°QAÌ@L0AlLÀH°QAÌ€i0AlL@A°QAÌ@r0AlL`7°QAÌ@0AlL@)°QAÌ@‡0AlL0'°QAÌÀ“0AlLÀ °QAÌ@¦0AlL`°QAÌ@¸0AlLà°QAÌ€Â0AlL€ °QAÌ@Ç0AlL@°QAÌ€Ô0AlL@ÿ¯QAÌö0AlLó¯QAÌ@0AlL î¯QAÌ0AlL€å¯QAÌÀ'0AlLܯQAÌ€50AlLàÕ¯QAÌ€C0AlL ϯQAÌ@R0AlLÀůQAÌ@m0AlL@¯QAÌ€u0AlL »¯QAÌÀs0AlL³¯QAÌj0AlL@ª¯QAÌÀq0AlL £¯QAÌ@Œ0AlL`Ÿ¯QAÌ@¡0AlL ‘¯QAÌ@Ä0AlLàŠ¯QAÌÛ0AlL€ˆ¯QAÌÀ÷0AlL€¯QAÌ@þ0AlLÀr¯QAÌ@ÿ0AlLl¯QAÌæ0AlLi¯QAÌÀÝ0AlLà^¯QAÌ€è0AlLÀX¯QAÌÀð0AlL`P¯QAÌ@0AlL H¯QAÌ€0AlL C¯QAÌ@ü0AlL 2¯QAÌÀð0AlLà,¯QAÌÀá0AlL%¯QAÌ@Å0AlLÀ¯QAÌ€®0AlL¯QAÌ@0AlL¯QAÌ€s0AlL€ ¯QAÌj0AlL€¯QAÌÀU0AlL þ®QAÌ40AlLõ®QAÌ@@0AlLàì®QAÌN0AlL ã®QAÌ`0AlL Ý®QAÌÀ†0AlL€×®QAÌ@¥0AlLÀÕ®QAÌÀË0AlL`Õ®QAÌá0AlLÀÑ®QAÌÀë0AlL Ë®QAÌÀß0AlLà¿®QAÌ×0AlL@¸®QAÌÑ0AlL@±®QAÌÀÈ0AlL ª®QAÌ@Æ0AlLÀ¡®QAÌÀØ0AlLœ®QAÌ€ë0AlL –®QAÌ€ü0AlL Œ®QAÌ@0AlL ‚®QAÌ€40AlL w®QAÌ€30AlL m®QAÌ@30AlL€f®QAÌ@-0AlL _®QAÌÀ*0AlLR®QAÌÀg0AlLL®QAÌ‚0AlL€E®QAÌ@0AlL`=®QAÌ 0AlL`4®QAÌ­0AlL€3®QAÌÀÆ0AlLÀ1®QAÌ€Ã0AlLÀ ®QAÌÀç0AlLàß­QAÌ@ 0AlL€°­QAÌ@y 0AlLà?­QAÌ— 0AlLð­QAÌ€© 0AlL`ÿ¬QAÌÀÓ 0AlLÀŬQAÌÀõ 0AlLÀ–¬QAÌ!0AlLðx¬QAÌÀ !0AlL b¬QAÌ5!0AlL H¬QAÌÀ0!0AlL ,¬QAÌ@!0AlL`¬QAÌ@ß 0AlL@ë«QAÌÀ® 0AlL@Ì«QAÌÀŒ 0AlL««QAÌ€i 0AlL@•«QAÌÀU 0AlL{«QAÌ@C 0AlL€n«QAÌ” 0AlL@p«QAÌÀé 0AlL€p«QAÌ€A!0AlL@s«QAÌ@‘!0AlL u«QAÌÐ!0AlL€w«QAÌ€M"0AlL@y«QAÌÀ°"0AlLÀ}«QAÌ+#0AlL ƒ«QAÌ€¬#0AlLà‡«QAÌñ#0AlLà‡«QAÌ@B$0AlL€ˆ«QA̰$0AlL ‹«QAÌ%0AlL@‘«QAÌ€ˆ%0AlL€–«QAÌ€I&0AlL`«QAÌ@(0AlL°¢«QAÌ€(0AlLàƒ«QAÌ€ø'0AlL@j«QAÌ€æ'0AlL W«QAÌ@ë'0AlLàC«QAÌ@ò'0AlLà5«QAÌÀê'0AlL`!«QAÌè'0AlL«QAÌ@Ý'0AlL þªQAÌ€Ù'0AlL€ïªQAÌ€Ó'0AlL åªQAÌÀÖ'0AlLàØªQAÌÔ'0AlLàɪQAÌ@Ñ'0AlLÀºªQAÌÀÄ'0AlLÀ©ªQAÌÀÄ'0AlL ›ªQAÌË'0AlLàˆªQAÌÀÀ'0AlL`wªQAÌÄ'0AlLÀdªQAÌÏ'0AlL NªQAÌ@Ì'0AlL`?ªQAÌÀÎ'0AlL /ªQAÌÓ'0AlLàªQAÌ@Í'0AlLà ªQAÌ€¾'0AlL@ý©QAÌ@®'0AlLÀî©QAÌ€©'0AlL€ê©QAÌ€•'0AlLàâ©QAÌÀm'0AlL`Ö©QAÌÀR'0AlL Ë©QAÌÀ1'0AlLÀéQAÌ@â&0AlLÀÀ©QAÌÀÄ&0AlLàÁ©QAÌ@›&0AlL Å©QAÌg&0AlLÀÅ©QAÌÀ/&0AlL€Ä©QAÌ@ß%0AlLàÀ©QAÌ@¥%0AlL`À©QAÌ@%0AlLÀ½©QAÌ@Í$0AlLྩQAÌÀ°$0AlL½©QAÌÀ´$0AlL€ª©QAÌ@´$0AlLà–©QAÌ¢$0AlL@ˆ©QAÌÀq$0AlL@v©QAÌ@U$0AlL@i©QAÌ2$0AlLW©QA̼#0AlL M©QAÌÀF#0AlL€H©QAÌ€õ"0AlL K©QAÌÀŠ"0AlL`O©QAÌ€P"0AlLàQ©QAÌ€ö!0AlLÀS©QAÌÀž!0AlLÀW©QAÌ!0AlL_©QAÌÌ 0AlL€d©QAÌÀd 0AlLÀm©QAÌ@' 0AlL r©QAÌ@æ0AlL`x©QAÌ€°0AlL@„©QAÌ€Ž0AlL`Š©QAÌ@ 0AlLÀ¥©QAÌ@Ë0AlL®©QAÌÀ‘0AlL€²©QAÌ@40AlL@½©QAÌÀÔ0AlL`È©QAÌ€x0AlLàÔ©QAÌ€<0AlL שQAÌÖ0AlL Ú©QAÌj0AlLÛ©QAÌ€0AlLשQAÌ@³0AlL@Ï©QAÌi0AlLàÇ©QAÌ0AlL Á©QAÌ@é0AlLð½©QAÌ@Ð0AlL໩QAÌ|0AlL ·©QAÌ€?0AlLà´©QAÌ0AlL±©QAÌ@Ò0AlL`®©QAÌÎ0AlL¨©QAÌ€Á0AlL€›©QAÌÇ0AlL€’©QAÌ@È0AlLŠ©QAÌù0AlL@z©QAÌÀ0AlLÀp©QAÌ 0AlL`j©QAÌ€-0AlLa©QAÌ@>0AlLÀ[©QAÌ@O0AlLÀV©QAÌ@j0AlL@Q©QAÌÀƒ0AlL`L©QAÌÀÃ0AlL 8©QAÌ€á0AlLÀ*©QAÌ€ø0AlL`©QAÌ€0AlL€©QAÌ€&0AlLÀ©QAÌM0AlLàü¨QAÌ€x0AlL ô¨QAÌÀ0AlL`æ¨QAÌ€Æ0AlLݨQAÌ€î0AlL@Ó¨QAÌ€0AlL É¨QAÌÀH0AlL`¨QAÌ}0AlL¸¨QAÌ@ƒ0AlL@°¨QAÌ€0AlL©¨QAÌ@Â0AlL ­¨QAÌÀ«0AlL È¨QAÌ€ö0AlL@Ú¨QAÌ@0AlL ͨQAÌ0AlL Â¨QAÌ€'0AlLº¨QAÌÀ=0AlLÀ²¨QAÌN0AlLÀª¨QAÌ€X0AlLࡨQAÌ@c0AlL ›¨QAÌÀ0AlL€”¨QAÌ@Ç0AlL”¨QAÌ@Û0AlL`›¨QAÌë0AlL@ ¨QAÌ0AlLࣨQAÌ0AlLࡨQAÌ€ 0AlL›¨QAÌþ0AlL Š¨QAÌ€0AlL ‚¨QAÌÿ0AlL`|¨QAÌÀý0AlL@o¨QAÌö0AlL€f¨QAÌ€Û0AlLS¨QAÌ€Å0AlLG¨QAÌ@Â0AlL 9¨QAÌ@½0AlLÀ.¨QAÌ€0AlLà!¨QAÌ@Œ0AlL`¨QAÌÀp0AlLàü§QAÌV0AlLÀï§QAÌ€k0AlLè§QAÌ€p0AlLàæ§QAÌ@©0AlLí§QAÌ@ß0AlL î§QAÌ0AlL í§QAÌ@B0AlL`é§QAÌÀe0AlLàä§QAÌÀž0AlL ß§QAÌÀß0AlL@Õ§QAÌ@0AlL€Í§QAÌÀ<0AlL@ɧQAÌ@g0AlL@ħQAÌ‹0AlL@½§QAÌ@™0AlL€º§QAÌŸ0AlL¹§QAÌÀµ0AlL¶§QAÌÓ0AlL ®§QAÌã0AlLधQAÌâ0AlLÀ•§QAÌ@Ù0AlLЧQAÌ€Ô0AlL`~§QAÌ€á0AlLx§QAÌÀæ0AlL`v§QAÌÀö0AlL€v§QAÌ!0AlL x§QAÌÀ "0AlL€w§QAÌÀ,#0AlL@z§QAÌÕ#0AlL v§QAÌ$0AlL`t§QAÌ€Š$0AlLÀq§QAÌ€”$0AlL`r§QA̳$0AlL@t§QAÌì$0AlLÀx§QAÌ4%0AlLÀz§QAÌ€v%0AlL`z§QAÌ­%0AlL`v§QAÌô%0AlL@p§QAÌ@,&0AlL€j§QAÌÀh&0AlLb§QAÌ@†&0AlL€]§QA̵&0AlLÀW§QAÌ ì&0AlL8m§QAÌ#'0AlLÀl§QAÌ@]'0AlL€e§QAÌ '0AlL a§QAÌ€7(0AlL€^§QAÌ@º(0AlLÀ[§QAÌ€)0AlL`U§QAÌÀK)0AlLàQ§QAÌ€u)0AlL€Q§QAÌ@€)0AlL`Q§QAÌÀ¡)0AlL@O§QAÌ ¯)0AlLðM§QA̲)0AlL`E§QAÌÀ¯)0AlL4§QAÌÀª)0AlL`)§QA̤)0AlL`§QAÌ@™)0AlLà§QAÌ@)0AlLà§QAÌ€Ž)0AlL€ö¦QAÌÀ‡)0AlLàê¦QAÌ})0AlLàߦQAÌ€u)0AlL`Ò¦QAÌÀi)0AlL`ǦQAÌÀ`)0AlL¼¦QAÌ€[)0AlLµ¦QAÌ@R)0AlL€ª¦QAÌ€K)0AlL Ÿ¦QAÌH)0AlL`’¦QAÌ€H)0AlL`‰¦QAÌ@U)0AlLÀ‚¦QAÌ})0AlL v¦QAÌ@¥)0AlL`v¦QAÌÀÓ)0AlL`r¦QAÌ@*0AlL€q¦QAÌ€^*0AlL€e¦QÄ*0AlL`_¦QAÌÀ­*0AlL@Z¦QAÌ@Ì*0AlLÀU¦QAÌ€ç*0AlLÀQ¦QAÌ@+0AlLÀK¦QAÌ@%+0AlLÀA¦QAÌÀM+0AlLà5¦QAÌ@n+0AlL 1¦QAÌÀÂ+0AlL€&¦QAÌ€ç+0AlL`(¦QAÌÀ ,0AlL )¦QAÌ7,0AlL`3¦QAÌÀ,0AlL%¦QAÌÀï,0AlLà¦QAÌ@A-0AlL@ ¦QAÌ@t-0AlL€¦QAÌ€Á-0AlL0ó¥QAÌ@‚-0AlL à¥QAÌ€`-0AlL Ô¥QAÌ€@-0AlL@Ä¥QAÌ@-0AlLº¥QAÌ€ü,0AlL€°¥QAÌ@ß,0AlL ¢¥QAÌ@µ,0AlLÀ“¥QÄ,0AlLà€¥QAÌ€O,0AlL@l¥QAÌ ,0AlLÀP¥QAÌ@è+0AlL 8¥QAÌ€Ö+0AlL 1¥QAÌ€¼+0AlL€$¥QAÌÀ¯+0AlLÀ¥QAÌ€£+0AlL@¥QAÌ@œ+0AlL¥QAÌÀ—+0AlL û¤QAÌ€Œ+0AlLàð¤QAÌ€Œ+0AlL€Ð¤QAÌ@{+0AlL¿¤QAÌ€q+0AlL€¯¤QAÌ@L+0AlL@™¤QAÌ5+0AlL@„¤QAÌ@'+0AlL`t¤QAÌ€+0AlL h¤QAÌö*0AlL€T¤QAÌÞ*0AlLà?¤QAÌÀÊ*0AlL`:¤QAÌ€¦*0AlL0¤QAÌo*0AlL`%¤QAÌÀL*0AlL¤QAÌÀ5*0AlL ¤QAÌ€(*0AlLü£QAÌ@ë)0AlL€Ä£QAÌ€Ð)0AlL ›£QAÌ¡)0AlL€{£QAÌ@ƒ)0AlLÀD£QAÌÀé(0AlL€@£QAÌ£(0AlL<£QAÌ€R(0AlLà;£QAÌ€ì'0AlL :£QAÌÀ¾'0AlLÀ7£QAÌ@x'0AlL8£QAÌÀ1'0AlL5£QAÌÀú&0AlL`7£QAÌ€¯&0AlL :£QAÌe&0AlL€=£QAÌ@0&0AlL ?£QAÌÀì%0AlLD£QAÌÀº%0AlL E£QAÌÀ%0AlLàC£QAÌ%0AlL D£QAÌ€Ô$0AlL E£QAÌ@š$0AlL D£QAÌ€^$0AlL`B£QAÌÀ3$0AlL @£QAÌ€$0AlL€@£QAÌ@å#0AlL@@£QAÌ€·#0AlL`>£QAÌÀ#0AlL@=£QAÌÀ]#0AlL <£QAÌÀ7#0AlLÀ:£QAÌ#0AlL 9£QAÌ@ç"0AlL@7£QAÌ€Ë"0AlLà<£QAÌ@Ú"0AlLàA£QAÌé"0AlLàI£QAÌ@þ"0AlL P£QAÌÀ#0AlL@W£QAÌÀ#0AlL€^£QAÌ@#0AlL@c£QAÌ@Õ"0AlLÀe£QAÌ¿"0AlL _£QAÌÀ³"0AlL€Q£QAÌ@Ÿ"0AlL@5£QAÌZ"0AlL £QAÌ€*"0AlLÀߢQAÌç!0AlL€´¢QAÌ€¼!0AlLà”¢QAÌ€]!0AlL€™¢QAÌ!0AlL ¢QAÌ÷ 0AlLÀ ¢QAÌÀÏ 0AlLढQAÌ€¦ 0AlL`§¢QAÌ€o 0AlL«¢QAÌ€N 0AlL ­¢QAÌ@5 0AlL@®¢QAÌ> 0AlL ¹¢QAÌB 0AlLàÄ¢QAÌ€K 0AlLÑ¢QAÌ€S 0AlL€ß¢QAÌÀ_ 0AlL ë¢QAÌ^ 0AlL ÷¢QAÌÀe 0AlL  £QAÌÀk 0AlL€£QAÌW 0AlL£QAÌ€ 0AlL`£QAÌÀ²0AlL`#£QAÌp0AlL@$£QAÌ\0AlLÀ*£QAÌÀ60AlL@'£QA̵0AlLÀ'£QAÌÀ³0AlL`/£QAÌ€º0AlL8£QAÌ€³0AlL >£QAÌ›0AlL€@£QAÌÀk0AlLà?£QAÌÀI0AlL ?£QAÌ.0AlL`=£QAÌ€$0AlL`4£QAÌÀ0AlLÀ(£QAÌÀ0AlL`£QAÌ@0AlL` £QAÌ@ò0AlLàú¢QAÌî0AlL@í¢QAÌÀä0AlLã¢QAÌÔ0AlL Ö¢QAÌ€Æ0AlL€Æ¢QA̼0AlL ½¢QAÌ@0AlL€»¢QAÌ}0AlL¼¢QAÌ€]0AlL ¼¢QAÌ0AlL ½¢QAÌÀã0AlL`¼¢QAÌÀº0AlLà·¢QAÌ€n0AlL°¢QAÌ@<0AlL@¥¢QAÌ@ÿ0AlLàŸ¢QAÌ@±0AlL`ТQAÌ@“0AlLàÚ¢QAÌÀ‰0AlL@ã¢QAÌÀ„0AlLî¢QAÌ@ˆ0AlL`÷¢QAÌ€Ž0AlL€ý¢QAÌ€•0AlL£QAÌ€“0AlLÀ£QAÌ@y0AlL`£QAÌ@Z0AlL@£QAÌÀ50AlL £QAÌ@ì0AlL  £QAÌÀÅ0AlL` £QAÌ€0AlLà£QAÌ 0AlL`£QAÌÀ•0AlL@ü¢QAÌ@*0AlL`ô¢QAÌß0AlL€ð¢QA̘0AlL ï¢QAÌ€J0AlL@î¢QAÌ€/0AlLî¢QAÌÿ0AlL ï¢QAÌ€å0AlLÀï¢QAÌÀÆ0AlL`î¢QAÌ@Ž0AlL £QAÌ@0AlL£QAÌ@g0AlLà £QAÌ€S0AlL*£QAÌ€@0AlL4£QAÌ 0AlL@£QAÌ0AlLG£QAÌ@ä0AlLàL£QAÌÎ0AlLÀW£QAÌ@½0AlL€a£QAÌ€¥0AlLàj£QAÌ€~0AlLÀm£QAÌf0AlL v£QAÌ@ï0AlL¾£QAÌ@Ù0AlLÀÈ£QA̽0AlL Ö£QAÌ®0AlLàá£QAÌ0AlL`ï£QAÌÀ0AlLÀú£QAÌÀq0AlL@¤QAÌÀY0AlLÀ¤QAÌ@M0AlL@¤QAÌÀ60AlL"¤QAÌÀ$0AlL@+¤QAÌ@0AlL@7¤QAÌÀ 0AlL @¤QAÌ@0AlL@I¤QAÌ@0AlL`S¤QAÌ@0AlLðY¤QAÌÀ&0AlL€]¤QAÌ@Q0AlLf¤QAÌÀe0AlLn¤QAÌ€y0AlL y¤QAÌ€Š0AlLÀ€¤QAÌ@–0AlL@†¤QAÌÀ§0AlLÀ‹¤QA̽0AlLÀ’¤QAÌ@Ö0AlLž¤QAÌÀæ0AlL£¤QAÌõ0AlL ©¤QAÌì0AlL€ª¤QAÌË0AlL ¯¤QAÌ@¸0AlL`µ¤QAÌÀŠ0AlLඤQAÌ€f0AlL@·¤QAÌ@I0AlL`·¤QAÌ@'0AlL ¹¤QAÌÀÿ0AlL࿤QA̲0AlLàŤQAÌ@w0AlL`ΤQAÌ€B0AlL€Ó¤QAÌ0AlL ×¤QAÌÀ´0AlL פQAÌ|0AlL Õ¤QAÌ-0AlLפQAÌ€Ù0AlL€Ï¤QAÌÀ0AlL@̤QAÌÀ$0AlLàÆ¤QAÌ@Ô0AlL À¤QAÌ0AlL€®¤QAÌ@b0AlL@«¤QAÌA0AlLÀ¨¤QAÌÀ0AlL ¤¤QAÌ@ê0AlL š¤QAÌ€0AlL‘¤QAÌ€Z0AlL€‡¤QAÌ60AlL ‚¤QAÌ@0AlL x¤QAÌ@Ó0AlL@p¤QAÌÀ0AlL€m¤QAÌÀQ0AlL d¤QAÌ€Ì0AlL`[¤QAÌ@›0AlL`W¤QAÌÀþ 0AlLÀR¤QAÌ€e 0AlL@O¤QAÌ0 0AlL@E¤QAÌ@ 0AlLD¤QAÌÀÞ 0AlL B¤QAÌ€_ 0AlL@@¤QAÌ@ 0AlL=¤QAÌÔ 0AlL€;¤QAÌ@„ 0AlLà8¤QAÌ€ 0AlL`5¤QAÌ€l 0AlL .¤QAÌÙ0AlL`)¤QAÌÀŽ0AlL(¤QAÌ€@0AlL '¤QAÌ@ý0AlLÀ#¤QAÌ@¿0AlL "¤QAÌ€ƒ0AlL ¤QAÌ-0AlL ¤QAÌÀ0AlL@+¤QAÌ@0AlLÀ=¤QAÌØ0AlL`L¤QAÌÀ¥0AlL ^¤QAÌÀc0AlLv¤QAÌ0AlLP]¤QAÌÀ·0AlL@t¤QAÌ€^0AlL`¤QAÌ€C0AlL†¤QAÌ€0AlL@Œ¤QAÌÀè0AlLÀ‘¤QAÌ@Ë0AlL€–¤QAÌ@Þ0AlL`¥¤QAÌô0AlLà­¤QAÌ0AlLг¤QAÌ€0AlLà·¤QAÌ€80AlL ¸¤QAÌÀx0AlL¹¤QAÌÀ˜0AlLÀ¹¤QAÌ@½0AlLð½¤QAÌÎ0AlLȤQAÌ×0AlLФQAÌ@×0AlLÀÙ¤QAÌÀ×0AlLàâ¤QAÌÀî0AlL`î¤QAÌ€ 0AlL`ú¤QAÌ@ 0AlL` ¥QAÌ@40AlL€¥QAÌF0AlL ¥QAÌÀN0AlL`-¥QAÌÀE0AlL <¥QAÌE0AlL P¥QAÌ€=0AlL `¥QAÌ@:0AlLp¥QAÌÀ;0AlL€|¥QAÌÀ?0AlLÀ‹¥QAÌ€@0AlLÀ–¥QAÌ€50AlL ¥QAÌ50AlLথQAÌÀ0AlLª¥QAÌÀ0AlL ¦¥QAÌ€é0AlL  ¥QAÌ€Ð0AlL ›¥QAÌ@³0AlL`¢¥QAÌ€‘0AlL ¬¥QAÌÀ‰0AlL²¥QAÌÀ`0AlL@­¥QAÌP0AlL€¨¥QAÌ@ 0AlL ®¥QAÌ€Ø0AlLÀŽ¥QAÌ€Ï0AlLy¥QAÌ@Í0AlL o¥QA̶0AlLà\¥QAÌ@¬0AlL N¥QAÌ@0AlLÀ;¥QẢ0AlLÀ)¥QAÌ@†0AlL ¥QAÌw0AlLÀ¥QAÌ€c0AlL€ô¤QAÌÀT0AlL€ì¤QAÌ€<0AlL`ã¤QAÌ€0AlL€Ù¤QAÌÀÏ0AlL@פQAÌ‘0AlL Ô¤QAÌÀf0AlLÖ¤QAÌ€70AlL`ѤQAÌÀ0AlL`ϤQAÌ€Ì0AlL@ˤQAÌŸ0AlL`ŤQAÌ@ˆ0AlLÀ¿¤QAÌÀ60AlL@ä¤QAÌ@0AlL€ì¤QAÌ@é0AlL`¥QAÌ€Ì0AlLà ¥QAÌ@¼0AlL@$¥QAÌ@±0AlL@=¥QĂ0AlLÀu¥QAÌm0AlL –¥QAÌ@F0AlL ¹¥QAÌ@0AlL Ë¥QAÌÀ-0AlL Ú¥QAÌÀø0AlL@à¥QAÌÀ[0AlL ä¥QAÌ€0AlL`ê¥QA˜rÿ/AlL î¥QA˜ÿ/AlL ô¥QA˜€$ÿ/AlL@û¥QA˜_ÿ/AlLà¦QA˜€•ÿ/AlL"¦QA˜€»ÿ/AlLP-¦QAÌ€0AlLÀ5¦QAÌ@'0AlL€;¦QAÌ€H0AlL€;¦QAÌ€r0AlL@5¦QA̽0AlL@4¦QAÌÀà0AlL 3¦QAÌ@ð0AlLC¦QAÌÀø0AlLÀO¦QAÌ@0AlL@Y¦QAÌÀ 0AlLàb¦QAÌÀ0AlLÀi¦QAÌ@0AlL@s¦QAÌ0AlL`{¦QAÌ€Y0AlL Q¦QAÌ€h0AlLà3¦QA̾0AlLà¦QAÌ@Ð0AlL ò¥QAÌÀå0AlLÀï¥QAÌ@»0AlLà&¦QAÌÀu0AlLàV¦QAÌ@'0AlL€…¦QAÌÀ-0AlLÀ‡¦QAÌÀ60AlLÀ†¦QAÌ€}0AlLà~¦QAÌ€¨ 0AlL ^¦QAÌÀ¿ 0AlL@a¦QAÌ€ç 0AlL€f¦QAÌÀý 0AlL j¦QAÌÀ 0AlL r¦QAÌ€9 0AlLàz¦QAÌ€Y 0AlL ‚¦QAÌ@} 0AlLà‹¦QAÌ€  0AlL@•¦QÀР0AlLX ¦QAÌÀä 0AlL¥¦QAÌÀÀ 0AlLÀ´¦QAÌ€ö 0AlL º¦QAÌ€2 0AlL€¿¦QAÌO 0AlLŦQAÌÀl 0AlL`ʦQAÌ@› 0AlL€Ô¦QAÌ€´ 0AlLÀÞ¦QAÌÌ 0AlLàä¦QAÌ@î 0AlL@ì¦QAÌ 0AlLàî¦QAÌÀ3 0AlLó¦QAÌ@D 0AlLàø¦QAÌ€U 0AlL§QAÌ€\ 0AlL  §QAÌÀi 0AlLà§QAÌÀˆ 0AlL€§QAÌ@¦ 0AlL &§QAÌ´ 0AlL`2§QAÌ  0AlLàC§QAÌ 0AlL J§QAÌ@… 0AlLÀP§QAÌ@x 0AlLà^§QAÌ@z0AlLPL¨QAÌ–0AlLÀe¨QAÌÀ0AlLÀ¯¨QAÌÀ0AlLàc©QAÌ€0AlLÀk©QAÌ@0AlLÐl©QAÌÀ90AlLàp©QAÌ€$0AlLðs©QAÌ€å0AlL@¢©QAÌÀ? 0AlLÀú©QAÌ@þ 0AlLªQAÌ€Í 0AlL€ ªQAÌ@j 0AlL`ªQAÌ@ 0AlLÀWªQAÌ@ 0AlL YªQAh©›Q 0AlL@´ªQAÌ¡ 0AlLàʪQAÌ@‰0AlLÀ«QAÌ€è0AlL 2«QAÌ€0AlLÀŒ¬QAÌZ0AlL@î¬QAÌ€x0AlLà÷¬QAÌÀ©0AlL@ ­QAÌ€¹0AlL ­QAÌ€Ó0AlL ­QAÌÀö0AlL€­QAÌÀ 0AlL@(­QAÌÀ 0AlL /­QAÌ@00AlL 5­QAÌA0AlLF­QAÌ€E0AlLàN­QAÌK0AlLàZ­QAÌV0AlLàb­QAÌ€}0AlL`l­QAÌ€š0AlL`p­QA̧0AlLàv­QAÌ@§0AlL €­QAÌÀ¦0AlL€‰­QAÌ€›0AlL •­QAÌ€Ž0AlL ›­QAÌ€‚0AlLÀ¢­QAÌ@w0AlL`ª­QAÌÀd0AlL ³­QAÌ@V0AlL »­QAÌ@O0AlL@Á­QAÌ€>0AlL Ì­QAÌà50AlLÓ­QAÌ€80AlLàÚ­QAÌÀB0AlL€ä­QAÌ@L0AlL€í­QAÌ€D0AlLà÷­QAÌJ0AlLà®QAÌ€\0AlL€®QAÌÀq0AlL ®QAÌs0AlLp®QAÌ@t0AlL€®QAÌz0AlL %®QAÌj0AlL 0®QAÌV0AlLà9®QAÌ€H0AlL@@®QAÌ€K0AlLG®QAÌÀ>0AlL`S®QAÌ(0AlLà\®QAÌ€ 0AlL`f®QAÌÀÛ0AlLàq®QAÌÀ°0AlL |®QAÌ€”0AlL‡®QAÌÀƒ0AlL ”®QAÌÀ{0AlLŸ®QAÌ€v0AlL §®QAÌ@e0AlL@²®QAÌ€L0AlL@¸®QAÌ€!0AlL`Á®QAÌ@ú0AlLÀÏ®QAÌ€ç0AlL@Ú®QAÌ@Ë0AlL`å®QAÌ@¼0AlLàò®QAÌÀ­0AlLÿ®QAÌÀZ0AlL ¯QAÌ,0AlL ¯QAÌ0AlLà%¯QAÌ0AlLÀ3¯QAÌ@0AlLà=¯QAÌó 0AlLÀI¯QAÌ@Ë 0AlLR¯QAÌ€˜ 0AlLX¯QAÌ€„ 0AlL ^¯QAÌÀl 0AlLd¯QAÌ@I 0AlLl¯QAÌ@ 0AlL@r¯QAÌ@× 0AlL€x¯QAÌ¡ 0AlL`~¯QAÌ€p 0AlL НQAÌP 0AlL`–¯QAÌ€5 0AlLÀ¨¯QAÌ* 0AlL ¶¯QAÌÀ! 0AlL À¯QAÌ 0AlL@ǯQAÌ 0AlL Ù¯QAÌ@Ø 0AlL€°QAÌÀÆ 0AlLÀ°QAÌ@º 0AlL °QAÌÀ‘ 0AlLÀ&°QAÌ@h 0AlL@.°QAÌÀF 0AlL€3°QAÌ 0AlL 8°QAÌ@å 0AlLà@°QAÌ@Ë 0AlLD°QAÌÀ£ 0AlL@E°QAÌ€ 0AlLÀF°QAÌ@g 0AlL@I°QAÌ@N 0AlL O°QAÌ@4 0AlL`S°QAÌ@ 0AlL@U°QAÌÀç 0AlL`V°QAÌÄ 0AlLY°QAÌ© 0AlL@[°QAÌ@Ž 0AlLà]°QAÌ€l 0AlL`°QAÌ€I 0AlL a°QAÌÀ2 0AlLd°QAÌÀ 0AlLÀj°QAÌÀÜ0AlLàp°QAÌ@Á0AlLz°QAÌ€0AlL`‚°QAÌ|0AlL Š°QAÌÀ_0AlL`•°QAÌ€I0AlL`°QAÌÀ.0AlLࢰQAÌ€0AlL`£°QAÌ÷0AlLÀ«°QAÌÀì0AlL º°QAÌ@Ô0AlL@ðQA̹0AlL Ê°QA̯0AlL@Õ°QAÌ€©0AlL€Þ°QAÌÀ—0AlLä°QAÌ€o0AlLï°QAÌÀQ0AlL ü°QAÌ@30AlL ±QAÌ@%0AlL€±QAÌÀ0AlL€±QAÌ@0AlLÀ#±QAÌ€ô0AlLÀ0±QAÌÀà0AlL@:±QAÌÀÇ0AlL A±QAÌ@¦0AlL P±QAÌÀ0AlL€U±QAÌ@„0AlLàU±QAÌd0AlLÀV±QAÌ@J0AlL X±QAÌ€0AlLàZ±QAÌ€»0AlL c±QAÌ€V0AlL@o±QAÌÀ0AlLÀp±QAÌ@ó0AlLÀt±QAÌ@Ë0AlLàp±QAÌ€•0AlL`r±QAÌÀj0AlL s±QAÌÀF0AlLÀr±QAÌ@0AlL w±QAÌà0AlLÀz±QAÌ@’0AlLÀ±QAÌB0AlL …±QAÌÀô0AlL Œ±QAÌÚ0AlLàŽ±QAÌ@¦0AlL@“±QAÌ@g0AlL •±QAÌ40AlL@˜±QAÌã0AlL`š±QAÌ@¿0AlL ±QAÌ{0AlL £±QAÌ€F0AlL€§±QAÌ0AlL «±QAÌ@Þ0AlL@­±QAÌÀ¼0AlL`®±QAÌ“0AlL °±QAÌq0AlL૱QAÌÀO0AlL€³±QAÌP0AlLP·±QAÌ@P0AlL ¼±QAÌ@N0AlLàñQAÌÀC0AlL€Ì±QAÌÀ+0AlL`ݱQAÌ0AlLàê±QA˜ßÿ/AlLö±QA˜Ÿÿ/AlLù±QA˜nÿ/AlL`²QA˜ÿ/AlL€ ²QA˜qÿ/AlL€²QA˜€Dÿ/AlLÀ#²QA˜€#ÿ/AlL0²QA˜Çþ/AlL@4²QA˜€—þ/AlLÀ1²QA˜bþ/AlL 5²QA˜hþ/AlLà;²QA˜€uþ/AlL`C²QA˜wþ/AlLàN²QA˜€>þ/AlLÀS²QA˜äý/AlLÀZ²QA˜™ý/AlL b²QA˜Jý/AlL€n²QA˜€ý/AlL@w²QA˜Âü/AlL ~²QA˜vü/AlLàˆ²QA˜Öû/AlL £²QA˜Àû/AlL@«²QA˜‘û/AlL`¶²QA˜€Rû/AlL€¶²QA˜Gû/AlL€¶²QA˜€û/AlL€µ²QA˜åú/AlLà´²QA˜”ú/AlL µ²QA˜Gú/AlLÀ¶²QA˜€ëù/AlL@¸²QA˜€ù/AlL`·²QA˜0ù/AlL º²QA˜Þø/AlL Â²QA˜¶ø/AlL`ͲQA˜½ø/AlLÖ²QA˜Àø/AlLàܲQA˜€žø/AlL€â²QA˜€ø/AlL`î²QA˜€\ø/AlL ò²QA˜+ø/AlL ò²QA˜Í÷/AlL ð²QA˜N÷/AlL@ñ²QA˜€ýö/AlL@ô²QA˜¾ö/AlLÀù²QA˜€µö/AlL0û²QA˜ö/AlL@ÿ²QA˜tö/AlLÀ³QA˜1ö/AlLÀ³QA˜Çõ/AlLÀ³QA˜sõ/AlLÀ³QA˜;õ/AlL ³QA˜€õ/AlL  ³QA˜€Úô/AlL€³QA˜€šô/AlL ³QA˜€@ô/AlL ³QA˜€†ó/AlLÀ ³QA˜×ò/AlL`³QA˜ ò/AlL ³QA˜šñ/AlL ý²QA˜€©ð/AlLÀø²QA˜ ð/AlLÀè²QA˜€ï/AlLàݲQA˜•î/AlL ϲQA˜³í/AlL€º²QA˜åì/AlLà±²QA˜€iì/AlL௲QA˜ì/AlL`­²QA˜€°ë/AlL  ²QA˜€`ë/AlL ™²QA˜ë/AlL‘²QA˜žê/AlL ‰²QA˜’é/AlLàw²QA˜€ñè/AlL`h²QA˜è/AlL@\²QA˜€)è/AlL€P²QA˜Çç/AlLà?²QA˜€jç/AlL4²QA˜ç/AlL+²QA˜Íæ/AlL€"²QA˜Dæ/AlL@²QA˜Ñå/AlL`²QA˜lå/AlLÀ²QA˜€ å/AlL ²QA˜¯ä/AlLù±QA˜€`ä/AlL`ö±QA˜ä/AlL`ù±QA˜¯ã/AlL ²QA˜bã/AlL@²QA˜€öâ/AlL@ ²QA˜€tâ/AlL ²QA˜â/AlL²QA˜Àá/AlL ²QA˜á/AlL ²QA˜€dá/AlL  ²QA˜€=á/AlL€²QA˜óà/AlL ²QA˜¬à/AlL²QA˜€Ià/AlL€²QA˜ÿß/AlL`!²QA˜‹ß/AlL $²QA˜€Qß/AlL &²QA˜€ ß/AlL`'²QA˜ÌÞ/AlL€'²QA˜uÞ/AlLà$²QA˜€ãÝ/AlL`²QA˜€Ý/AlLà²QA˜€ZÝ/AlL ²QA˜ÿÜ/AlL`!²QA˜|Ü/AlL@!²QA˜hÜ/AlL +²QA˜PÜ/AlL@6²QA˜+Ü/AlLB²QA˜€Ü/AlL K²QA˜€Ü/AlL@P²QA˜€ Ü/AlLàV²QA˜€?Ü/AlL`^²QA˜vÜ/AlL a²QA˜€¼Ü/AlLb²QA˜9Ý/AlL e²QA˜Ý/AlL b²QA˜ÖÝ/AlL`a²QA˜€Þ/AlLb²QA˜`Þ/AlL d²QA˜¦Þ/AlL€g²QA˜òÞ/AlLàh²QA˜€+ß/AlL`j²QA˜€pß/AlL€l²QA˜€Àß/AlL@n²QA˜à/AlL p²QA˜Là/AlLÀs²QA˜€”à/AlL`t²QA˜ëà/AlL s²QA˜€ùà/AlL ²QA˜'á/AlLÀ²QA˜Lá/AlLÀ™²QA˜uá/AlL ¤²QA˜€›á/AlLÀ±²QA˜¼á/AlL ¿²QA˜€Øá/AlL€É²QA˜üá/AlL Ò²QA˜"â/AlLá²QA˜Dâ/AlL è²QA˜€â/AlL ô²QA˜€°â/AlL ³QA˜íâ/AlL€ ³QA˜Ùâ/AlL€³QA˜¤â/AlL@&³QA˜Qâ/AlL`.³QA˜Íá/AlLÀ4³QA˜iá/AlLB³QA˜ á/AlLÀP³QA˜§à/AlLÀ\³QA˜€[à/AlL e³QA˜ à/AlL`k³QA˜âß/AlL q³QA˜€¶ß/AlL{³QA˜£ß/AlL`³QA˜Zß/AlL…³QA˜€ß/AlL‡³QA˜˜Þ/AlL ‡³QA˜MÞ/AlL@ˆ³QA˜ØÝ/AlL€ˆ³QA˜€‘Ý/AlLàˆ³QA˜>Ý/AlLà‡³QA˜Ý/AlLP‰³QA˜™Þ/AlL@ä³QA˜âá/AlL`ž´QA˜6â/AlL€°´QA˜\ã/AlL`ð´QA˜€ä/AlL µQA˜Gä/AlL€'µQA˜…ä/AlLà2µQA˜¹ä/AlLà=µQA˜ðä/AlLÀGµQA˜<å/AlL@TµQA˜iå/AlL `µQA˜…æ/AlLÀœµQA˜€ ç/AlL¼µQA˜€ëç/AlL ëµQA˜?è/AlL`ûµQA˜è/AlLúµQA˜Ãè/AlLÀòµQA˜âè/AlLÀíµQA˜€é/AlLæµQA˜é/AlL`ݵQA˜€%é/AlL€ÕµQA˜Yé/AlL ÔµQA˜€˜é/AlL0صQA˜€ê/AlL ×µQA˜Nê/AlLÔµQA˜«ê/AlL`ÔµQA˜ë/AlL`ÖµQA˜Aë/AlLàØµQA˜€yë/AlLàÛµQA˜³ë/AlL ÞµQA˜ì/AlL`ÞµQA˜2ì/AlL@ݵQA˜€aì/AlLÀÛµQA˜™ì/AlL`ÙµQA˜ãì/AlL@×µQA˜í/AlL ×µQA˜€ˆí/AlLεQA˜€×í/AlL`ƵQA˜€ î/AlLµQA˜5î/AlL`½µQA˜€vî/AlL ´µQA˜‰î/AlL@­µQA˜€ªî/AlL@§µQA˜×î/AlL@žµQA˜ï/AlL •µQA˜€ï/AlL ŽµQA˜0ï/AlL€ˆµQA˜Jï/AlL`‚µQA˜€dï/AlL zµQA˜€ï/AlLÀpµQA˜Ÿï/AlLÀkµQA˜€êï/AlL jµQA˜!ð/AlLàhµQA˜tð/AlLàgµQA˜€¦ð/AlL€hµQA˜€êð/AlL hµQA˜€;ñ/AlL€gµQA˜äò/AlLàNµQA˜'ó/AlL;µQA˜€Îó/AlL€3µQA˜ô/AlLÀ0µQA˜€Pô/AlL .µQA˜€Ûô/AlLÀ+µQA˜€)õ/AlL &µQA˜€Sõ/AlL€ µQA˜õ/AlLàµQA˜·õ/AlL€µQA˜Þõ/AlL`õ´QA˜€ö/AlL`ç´QA˜mö/AlLÀØ´QA˜¢ö/AlLàÌ´QA˜€Ýö/AlL`Ç´QA˜€÷/AlL Â´QA˜j÷/AlLÀÀ´QA˜€ä÷/AlL`u´QA˜˜ø/AlL#´QA˜€Nù/AlLʳQA˜€jù/AlL`»³QA˜¶ù/AlLÀ²³QA˜€'ú/AlL ­³QA˜*ú/AlLP±³QA˜Úú/AlLàÑ´QA˜$ú/AlL@ú´QA˜ßù/AlL@ µQA˜ ù/AlLµQA˜Eù/AlL`)µQA˜ù/AlL@1µQA˜‚ø/AlL@EµQA˜€Ü÷/AlL_µQA˜J÷/AlLàwµQA˜€Ëö/AlL ‰µQA˜}ö/AlL@’µQA˜ðõ/AlL ¢µQA˜€Žõ/AlL`§µQA˜€_õ/AlL@¬µQA˜€:õ/AlL`²µQA˜õ/AlLີQA˜çô/AlL@ÁµQA˜¨ô/AlL€ÇµQA˜ô/AlLÀεQA˜€Âô/AlL`×µQA˜ôô/AlL ãµQA˜6õ/AlLíµQA˜gõ/AlLöµQA˜§õ/AlLà¶QA˜Ýõ/AlLà¶QA˜ ö/AlL`¶QA˜Iö/AlL`¶QA˜mö/AlLÀ&¶QA˜¤ö/AlL 0¶QA˜€äö/AlL€>¶QA˜÷/AlLJ¶QA˜7÷/AlL T¶QA˜=÷/AlL`_¶QA˜p÷/AlLt¶QA˜€l÷/AlL°y¶QA˜k÷/AlLà|¶QA˜h÷/AlLÀ¶QA˜R÷/AlL`Œ¶QA˜K÷/AlLà˜¶QA˜M÷/AlLÀ ¶QA˜\÷/AlL`¨¶QA˜€a÷/AlL¸¶QA˜E÷/AlL ½¶QA˜+÷/AlL öQA˜€M÷/AlLàØ¶QA˜€l÷/AlL å¶QA˜€u÷/AlL è¶QA˜Ž÷/AlL ò¶QA˜€¤÷/AlL€û¶QA˜€ð÷/AlL`·QA˜€ø/AlL@(·QA˜‹ø/AlL€>·QA˜Êø/AlLÀC·QA˜€úø/AlL@J·QA˜€ù/AlL@Q·QA˜$ù/AlL`S·QA˜>ù/AlL€^·QA˜€Où/AlL f·QA˜‹ù/AlLÀs·QA˜®ù/AlLà€·QA˜Ìù/AlL ˆ·QA˜€óù/AlLà·QA˜9ú/AlLÀŸ·QA˜_ú/AlLষQA˜€†ú/AlL€¯·QA˜§ú/AlL ½·QA˜€Ýú/AlLÀÄ·QA˜€Fû/AlLÒ·QA˜€ºû/AlLàå·QA˜€Fü/AlL ù·QA˜’ü/AlL ¸QA˜€áü/AlL ¸QA˜€ïü/AlL ¸QA˜€äü/AlL %¸QA˜€êü/AlL -¸QA˜€âü/AlL 4¸QA˜Õü/AlL >¸QA˜€Ìü/AlLF¸QA˜÷ü/AlLÀP¸QA˜+ý/AlLX¸QA˜€Gý/AlL_¸QA˜‚ý/AlL`f¸QA˜€¿ý/AlL q¸QA˜€Þý/AlL@w¸QA˜€âý/AlL@¸QA˜ûý/AlLà‰¸QA˜ þ/AlL˜¸QA˜þ/AlL ¥¸QA˜€øý/AlL€­¸QA˜€êý/AlL¼¸QA˜€Ùý/AlL ȸQA˜€¨ý/AlL Õ¸QA˜€Žý/AlL`߸QA˜€ý/AlL ë¸QA˜–ý/AlL`ø¸QA˜›ý/AlL@¹QA˜Áý/AlLà¹QA˜Æý/AlL ¹QA˜€¼ý/AlL ¹QA˜©ý/AlL "¹QA˜€Xþ/AlL [¹QA˜€ðþ/AlLÀ„¹QA˜kÿ/AlL@¢¹QA˜€ªÿ/AlL ²¹QA˜€úÿ/AlL@ĹQAÌ€0AlL€Î¹QAÌ10AlL€Ø¹QAÌ@0AlLÀß¹QAÌ@W0AlLÀæ¹QAÌ@m0AlL`ê¹QAÌÀŒ0AlL@í¹QAÌ€°0AlL ï¹QAÌÀÆ0AlLò¹QAÌÝ0AlL`õ¹QAÌ0AlLý¹QAÌ€10AlLÀ ºQAÌ@ƒ0AlL€ºQAÌÀŽ0AlL"ºQAÌ’0AlL@2ºQAÌ€’0AlL 4ºQAÌ€“0AlLÀ8ºQAÌ¡0AlLÀAºQAÌ€¯0AlL KºQAÌÀ·0AlL@QºQAÌ@Ì0AlL`WºQAÌÀß0AlL]ºQAÌÿ0AlLàcºQAÌÀ%0AlL sºQAÌA0AlLàzºQAÌÀN0AlL €ºQAÌ€g0AlL …ºQAÌÀ~0AlL ‹ºQAÌ€—0AlL ”ºQA̽0AlLÀ™ºQAÌ@Û0AlL`ºQAÌ0AlL £ºQAÌ-0AlL¨ºQAÌ@H0AlL@«ºQAÌÀs0AlL °ºQAÌ€‰0AlL@¶ºQAÌÀ•0AlL€¼ºQAÌ€¤0AlL@źQAÌ@´0AlL`ʺQAÌ€Ç0AlLѺQAÌ€ã0AlLÀÛºQAÌW0AlLàîºQAÌŸ0AlL@ûºQAÌÙ0AlL`»QAÌÀñ0AlLÀ »QAÌÀ!0AlL »QAÌÀU0AlLà#»QAÌÀp0AlLà'»QAÌ€€0AlL-»QAÌ@¡0AlLà1»QA4vh¦¹0AÒ²f¶5»QAÌÀÈ0AlL8»QAÌÀß0AlLÀ<»QAÌÀ0AlL@D»QAÌÀ20AlLI»QAÌM0AlLÀL»QAÌg0AlLÀS»QAÌ@u0AlLZ»QAÌ@y0AlLàe»QAÌ@€0AlL`s»QAÌ€œ0AlLàz»QAÌÀ¦0AlL »QAÌÀ±0AlL ˆ»QAÌ@»0AlL •»QA̸0AlL »QAÌÀ¾0AlLÀ¬»QAÌÀÌ0AlL Â»QAÌ@Ý0AlL ×»QAÌ€a0AlL ¼QAÌÀ«0AlLE¼QAÌ@Á0AlLÀP¼QAÌ@×0AlLÀ\¼QAÌ0AlLu¼QAÌÀ=0AlL “¼QAÌ@N0AlL€¼QAÌZ0AlL©¼QAÌÀX0AlL`¿¼QAÌ@\0AlL Þ¼QAÌ@]0AlL€å¼QAÌÀò 0AlL`t½QAÌ@ÿ 0AlL z½QAÌ@ 0AlL`½QAÌ€ 0AlL ˆ½QAÌ 0AlL •½QAÌ€ 0AlL`½QAÌ€ý 0AlLà§½QAÌÿ 0AlLðª½QAÌ 0AlL@±½QAÌ@ 0AlL@»½QAÌ7 0AlLàǽQAÌÀO 0AlL`Ô½QAÌ@i 0AlL`ݽQAÌŽ 0AlLæ½QAÌ@² 0AlL€í½QAÌ€Õ 0AlL ÷½QAÌ@ø 0AlLý½QAÌÀ# 0AlL`¾QAÌD 0AlL¾QAÌ@S 0AlL@¾QAÌÀÝ 0AlL`+¾QAÌ@í 0AlLÐ-¾QAÌs 0AlL€C¾QAÌ€º 0AlL`Ÿ¾QAÌ0AlL ´¾QAÌ€L0AlL»¾QAÌÀu0AlL`¾QAÌ€—0AlL€Ë¾QAÌ@Ï0AlL€Ô¾QAÌ€ñ0AlL`Û¾QAÌ€0AlLä¾QAÌ€/0AlLë¾QAÌ[0AlL ñ¾QAÌ€s0AlL€÷¾QAÌÀ0AlL þ¾QA̵0AlL€ ¿QAÌ×0AlL€¿QAÌ€ï0AlL ¿QAÌ 0AlLà¿QAÌ/0AlL`$¿QAÌÀY0AlL`1¿QAÌ@š0AlL ;¿QAÌ@ø0AlLO¿QAÌ€C0AlL_¿QAÌÀb0AlLàa¿QAÌ@0AlL`e¿QAÌ@ª0AlL i¿QAÌ€µ0AlLào¿QAÌ€¯0AlL w¿QAÌ®0AlL ¿QAÌ€Ð0AlLà“¿QAÌ€ú0AlL œ¿QAÌ€y0AlL¾¿QAÌÀ0AlL€ç¿QAÌ@V0AlL@Ú¿QAÌ@•0AlL€Ê¿QAÌÀÈ0AlLàÁ¿QAÌÀ-0AlL€²¿QAÌ0AlL ¥¿QAÌÀÓ0AlL–¿QAÌ€0AlLÀ‹¿QAÌ@H0AlLà}¿QAÌÀœ0AlL€l¿QAÌ@Ï0AlLàc¿QAÌæ0AlL€[¿QAÌÿ0AlLÀL¿QAÌ+0AlL<¿QAÌK0AlLà#¿QAÌ€P0AlLà¿QAÌ€Q0AlLà¿QAÌÀ^0AlLÀ ¿QAÌ€{0AlL€û¾QAÌ€‹0AlLõ¾QAÌ€•0AlLàí¾QAÌ€Ÿ0AlLàÞ¾QAÌ€¯0AlL Ñ¾QAÌÀÁ0AlLàɾQAÌ€Õ0AlL À¾QAÌ@ë0AlL·¾QAÌ0AlL`±¾QAÌ0AlLÀª¾QAÌ@#0AlL`Ÿ¾QAÌ€/0AlL€—¾QAÌ€F0AlL ‘¾QAÌ€[0AlL`¾QAÌÀu0AlLà…¾QAÌ€©0AlL¾QAÌÀÌ0AlLà€¾QAÌ€ù0AlLà{¾QAÌ@0AlL`v¾QAÌ€S0AlLe¾QAÌÀf0AlLa¾QAÌÀŒ0AlLàR¾QAÌÀ©0AlL H¾QAÌ´0AlL°D¾QAÌÇ0AlLÀ=¾QAÌÞ0AlLà6¾QAÌ@ö0AlLÀ(¾QAÌ€V0AlL Ú½QAÌ@c0AlL€Í½QAÌ@o0AlLÀƽQAÌÀ}0AlL ¾½QAÌŒ0AlLà¶½QĄ0AlL௽QAÌ@¼0AlL «½QAÌÀß0AlL¤½QAÌÀ0AlL ½QAÌ€/0AlLÀ“½QAÌÀ_0AlL@†½QAÌ@…0AlL z½QAÌ€²0AlLào½QAÌ€Ý0AlLf½QAÌ0AlLà]½QAÌ@*0AlLÀR½QAÌ@S0AlL I½QAÌ@~0AlL C½QA̬0AlLà=½QAÌ€á0AlLÀ5½QAÌÀ 0AlL@2½QAÌ@K0AlL@.½QAÌ€0AlL +½QAÌ€…0AlL0*½QAÌ€ 0AlL@%½QAÌ@ä0AlL½QAÌ@20AlL@ö¼QAÌ@Q0AlLð¼QAÌÀh0AlL ë¼QAÌ~0AlL ç¼QAÌ@—0AlL`à¼QAÌ€¬0AlL Û¼QAÌÍ0AlL€Ö¼QAÌ@0AlL`̼QAÌÀ20AlL`Á¼QAÌK0AlL@½¼QAÌÀk0AlL€·¼QAÌÀˆ0AlL@±¼QAÌÀ±0AlL §¼QAÌÀÎ0AlL  ¼QAÌï0AlLà›¼QAÌ 0AlL –¼QAÌ€"0AlLÀ‘¼QAÌÀ™!0AlL 9žQAÌÏ!0AlLÀ1žQAÌ@ "0AlL/žQAÌf"0AlLà4žQAÌ@}"0AlL€8žQA̹"0AlL`BžQAÌÀ#0AlLàDžQAÌ@>#0AlLàCžQAÌÀï#0AlL€BžQAÌ€$0AlL DžQAÌÀ‚$0AlL@BžQAÌ€Â$0AlL`AžQAÌÀØ$0AlLp>žQAÌ€"%0AlLÀ4žQAÌÀã%0AlL`žQAÌ€&0AlLžQAÌÀ>&0AlL€!žQAÌ€n&0AlLà&žQAÌÀ¯&0AlL`.žQAÌ€Ü&0AlL`0žQAÌ'0AlL€+žQAÌ€H'0AlLà#žQAÌ@8(0AlLàžQAÌ€](0AlL€žQAÌ@Œ(0AlLýQAÌ€½(0AlL`ýQAÌ€)0AlLàûQAÌÀ1)0AlLàûQAÌ€i)0AlL`žQAÌ€ˆ)0AlLàžQAÌ´)0AlL`žQAÌ@Ö)0AlLÀžQAÌ€ú)0AlLàýQAÌÀ*0AlL ýQAÌB*0AlLàýQAÌ€Œ*0AlL`žQAÌÀ®*0AlL€žQAÌ€È*0AlLÀþQAÌÀç*0AlL@úQAÌ@ +0AlL@öQAÌÀ=+0AlL`õQAÌ@d+0AlLàôQAÌ€Š+0AlLõQAÌÀ²+0AlL@ôQAÌ€Ù+0AlL óQAÌ,0AlL`òQAÌ@0,0AlLàîQAÌ@U,0AlLÀëQAÌ€m,0AlL ëQAÌ€†,0AlL@ëQA̯,0AlL€ãQAÌ@Æ,0AlL€ÛQAÌÝ,0AlL ÖQAÌ€ì,0AlL ÑQAÌ@ñ,0AlL ÆQAÌ@;,0AlL VQAÌ@«+0AlL€QAÌ@E+0AlL ÄœQAÌü*0AlL ™œQAÌ€H*0AlL€"œQAÌÀ+0AlL@=œQAÌ@Ð+0AlLàLœQAÌ€-0AlL€lœQAÌ@G/0AlLÀ¥œQAÌ@ 00AlLÀŸœQAÌÀ 00AlL ™œQAÌ€Ÿ/0AlL`eœQAÌq-0AlL@ œQAÌQ-0AlL`œQAÌ€4-0AlL œQAÌ€-0AlL`œQAÌ@ý,0AlL`œQAÌ@×,0AlLÀœQAÌÀ¹,0AlLÀ œQAÌ€—,0AlL œQAÌ€y,0AlL` œQAÌ€\,0AlLàœQAÌÀ5,0AlL€œQAÌÀ,0AlL€œQAÌ ,0AlLà œQAÌñ+0AlLÀœQAÌ@Ù+0AlL@œQA̲+0AlL œQAÌ€™+0AlL ÿ›QAÌ@t+0AlLÀû›QAÌÀO+0AlL ø›QAÌ€/+0AlL ô›QAÌÀà*0AlL@è›QAÌ@›*0AlLÀÙ›QAÌ€o*0AlL€Ô›QAÌÀ6*0AlLÀΛQAÌ@*0AlL@È›QAÌÀâ)0AlLàÁ›QAÌÀ¬)0AlL½›QAÌ@j)0AlLк›QAÌ@g(0AlL ››QAÌq'0AlL €›QAÌÀ±&0AlLk›QA̶%0AlLÀR›QAÌÀ=%0AlL²›QAÌ@ %0AlL Þ›QAÌó$0AlL ö›QAÌ@£$0AlL 5œQAÌ@$0AlL€2œQAÌ€C$0AlL€eœQAÌ€$0AlLÀ“œQAÌ$0AlLà—œQAÌ@q#0AlL@öœQAÌí"0AlLÀNQAÌ@à"0AlL`WQAÌ@U"0AlL`¹QAÌæ!0AlLàžQAÌ€›!0AlLÀ7žQAÌÀ™!0AlL 9žQAÌÀ™!0AlL 9žQAÌY!0AlLÀ9žQAÌ@Á 0AlL 6žQAÌò0AlL@2žQAÌ@ 0AlL€)žQAÌ€á0AlLà&žQAÌÀL0AlL %žQAÌÀ›0AlL@"žQAÌÀå0AlLà!žQAÌ@þ0AlL !žQȦ0AlL'žQAÌ@0AlL@žQAÌ@x0AlLžQAÌ@70AlL`žQAÌö0AlL žQAÌÀ©0AlL@"žQAÌ€s0AlLà(žQAÌ0AlLà3žQAÌ@ð0AlLÀ<žQAÌÀ§0AlL@DžQAÌw0AlLÀIžQAÌÀ'0AlL PžQAÌ@Ö0AlL€ZžQAÌÀŸ0AlL`bžQAÌ€z0AlLÀ[žQAÌ€\0AlL€ažQAÌÀ0AlL`jžQAÌ€ò0AlL@ržQAÌÀË0AlLàzžQAÌ@™0AlL‚žQAÌ€|0AlL`ˆžQAÌj0AlL@žQAÌ€0AlL`›žQAÌA0AlLànŸQAÌG0AlL€ýžQAÌ@0AlLàöžQAÌÊ0AlLàîžQAÌ€÷0AlL@êžQAÌÀÿ0AlL ËžQAÌÀm0AlL ÞQAÌÀñ0AlL`´žQAÌ€60AlL@¨žQAÌ€z0AlL ¢žQAÌÁ0AlL`ŸžQAÌ@ô0AlL›žQAÌ50AlL@“žQAÌ@ 0AlL zžQAÌÀ~ 0AlL€vžQA̽ 0AlL tžQAÌ@!0AlLàpžQAÌ]!0AlL mžQAÌÀ!0AlL`kžQA̺!0AlLkžQAÌ€Ö!0AlL fžQAÌÀß!0AlL€[žQAÌ€×!0AlL TžQAÌ€±!0AlL`IžQAÌÀ¦!0AlL`@žQAÌÀ™!0AlL 9žQAÌÀ}"0AlL`‚¢QAÌ€®"0AlL`}¢QAÌ@Ô"0AlLÀ{¢QAÌ*#0AlLÀv¢QAÌÀŽ#0AlLw¢QAÌâ#0AlLÀz¢QAÌ@2$0AlL`|¢QAÌÀ™$0AlL`€¢QAÌÀž$0AlL€y¢QAÌ€©$0AlLÀh¢QAÌÇ$0AlL`M¢QAÌ@Ô$0AlLÀ>¢QAÌ€â$0AlL4¢QAÌó$0AlL '¢QAÌ %0AlL¢QAÌ@)%0AlL ¢QAÌÀ>%0AlL¢QAÌÀd%0AlLÀð¡QAÌ@w%0AlL@ä¡QAÌÀ“%0AlL@Ü¡QAÌ@´%0AlL@סQAÌ@&0AlL Ï¡QAÌb&0AlL@Ê¡QAÌ€š&0AlLàÆ¡QAÌÔ&0AlL`¿¡QAÌ@s'0AlL€Ï¡QAÌ€/(0AlL@Ž¡QAÌ@@(0AlL`ˆ¡QAÌ€l'0AlL€k¡QAÌ@^'0AlLi¡QAÌO'0AlL€g¡QAÌ@™%0AlLÀ+¡QAÌ`(%0AlLP¡QAÌ!%0AlL@¡QAÌÀº#0AlL`ê QAÌ€‹"0AlLÁ QAÌ@Š"0AlL€Â QAÌ@y"0AlL Ú QAÌÀq"0AlLä QAÌ€f"0AlL ï QAÌÀ`"0AlL ü QAÌÀa"0AlL€¡QAÌ€b"0AlL ¡QAÌ€a"0AlL)¡QAÌ@S"0AlL I¡QAÌ€?"0AlL€a¡QAÌ@3"0AlLà~¡QAÌ@"0AlL±¡QAÌ@"0AlLà¡QAÌ"0AlL@Ù¡QAÌ€i!0AlLÀסQAÌÀl!0AlL@Ì¡QAÌd!0AlL¹¡QAÌ@[!0AlL ž¡QAÌ€ 0AlL€®¡QAÌC 0AlL µ¡QAÌ 0AlL ¿¡QAÌÀö0AlLÀÇ¡QAÌÀŠ0AlLÀ¢QAÌ@¤0AlL ¢QAÌ€ü0AlL@¢QAÌ@˜ 0AlL@¢QAÌ@/!0AlL@1¢QAÌ€V!0AlL M¢QAÌ@º!0AlL`“¢QAÌÌ!0AlL@“¢QAÌÀÿ!0AlLÀ¢QAÌÀ}"0AlL`‚¢QAÌ€U0AlL 6ŸQAÌÀ‰0AlL€uŸQAÌ€ó0AlLÐEŸQAÌ@½0AlLPÙžQAÌ*0AlL ½žQAÌ0AlL ºžQAÌ@ 0AlL0·žQAÌ€¾0AlL€¨žQAÌ@Š0AlL`¤žQAÌW0AlL@«žQAÌÀ 0AlL@µžQAÌÀÔ0AlL€·žQAÌ€d0AlLÈžQAÌÀû0AlL€ÖžQAÌ€à0AlLÔžQAÌÀ³0AlL@ÙžQAÌ@}0AlL ÝžQAÌ@E0AlLàâžQAÌ€½0AlL ñžQAÌÀb0AlL@NŸQAÌ@f0AlL@PŸQAÌ™0AlLðlŸQAÌ€U0AlL 6ŸQAÌÀ’0AlL¦ QAÌ€v0AlL€¤ QAÌJ0AlLÀ¥ QAÌ@0AlL¤ QAÌÀé0AlL   QAÌ–0AlL`ž QAÌ[0AlL œ QAÌ@g0AlL QAÌ0AlLàœ QAÌL0AlL© QAÌ@h0AlL@° QAÌ€+0AlL`Ú QAÌÀn0AlL@m¡QAÌ@Ë0AlL@y¡QAÌ€¦0AlL`X¡QAÌÀ’0AlL¦ QA$ pÓ]Uu.AŽ'ú¶Æ•QA˜€õ°.AlLÐ!QA^˜œž.AlL`wœQA˜€@Ÿ.AlLwœQA˜€áŸ.AlLyœQA˜€Y .AlLÀxœQA˜4¡.AlL`sœQA˜€É¡.AlL`nœQA˜€X¢.AlL jœQA˜¹¢.AlL bœQA˜€Ö¢.AlL0]œQA˜£.AlL€^œQA˜€@£.AlL`eœQA˜r£.AlLÀiœQA˜@Ä£.AlL@mœQA˜€2¤.AlLoœQA˜€“¤.AlL qœQA˜€¥.AlL`vœQA˜€{¥.AlL {œQA˜€¯¥.AlL|œQA˜€ý¥.AlLÀxœQA˜‹¦.AlL pœQA˜€é¦.AlLmœQA˜€[§.AlLlœQA˜€­§.AlLÀnœQA˜0¨.AlLtœQA˜€¿¨.AlL€mœQA˜©.AlL`jœQA˜€n©.AlL€fœQA˜å©.AlL€_œQA˜€Sª.AlL@YœQA˜€ßª.AlL SœQA˜€«.AlLàMœQA˜€F«.AlLDœQA˜€Z«.AlL @œQA˜™«.AlLÀ1œQA˜¬.AlL€œQA˜ެ.AlLÀ œQA˜è¬.AlL ý›QA˜ø¬.AlL@ë›QA˜€­.AlL ß›QA˜€G­.AlL×›QA˜…­.AlL€Ê›QA˜›­.AlLà¿›QA˜€¹­.AlL ·›QA˜í­.AlL«›QA˜€-®.AlLÀŸ›QA˜p®.AlL•›QA˜²®.AlLŠ›QA˜Û®.AlL@‚›QA˜ý®.AlL@w›QA˜€#¯.AlL`p›QA˜U¯.AlLj›QA˜Þ¯.AlLÀV›QA˜j°.AlLK›QA˜ذ.AlL D›QA˜€õ°.AlLð:›QA˜€§°.AlLà=›QA˜°.AlLàB›QA˜§¯.AlL@G›QA˜<¯.AlL J›QA˜€Á®.AlL€N›QA˜€!®.AlL`I›QA˜ê¬.AlLÀ6›QA˜€%«.AlL€ ›QA˜¬©.AlLà ›QA˜€Ð¨.AlL üšQA˜j¨.AlL@õšQA˜¨.AlLïšQA˜¤§.AlL ášQA˜€e§.AlL€ÖšQA˜ §.AlLàÔšQA˜ë¦.AlL`ΚQA˜€s¦.AlL¾šQA˜€E¦.AlL ¶šQA˜€Þ¥.AlL@°šQA˜h¥.AlL ¬šQA˜$¥.AlL¥šQA˜¯¤.AlL`–šQA˜y¤.AlL „šQA˜€}¤.AlLàvšQA˜€¤.AlL€pšQA˜\¤.AlL ašQA˜€ ¤.AlL UšQA˜Þ£.AlL€NšQA˜Ö£.AlLàFšQA˜ý£.AlL ;šQA˜.¤.AlLÀ.šQA˜?¤.AlL@šQA˜€<¤.AlL  šQA˜¤.AlL€ý™QA˜€ý£.AlL`ê™QA˜Û£.AlL€Ü™QA˜@£.AlL`¦™QA˜Õ¢.AlL€u™QA˜€¡¢.AlLÀl™QA˜€m¢.AlLÀd™QA˜€G¢.AlL Y™QA˜€7¢.AlL G™QA˜(¢.AlL`7™QA˜¢.AlL`%™QA˜@¢.AlL°™QA˜¢.AlL ™QA˜€Ú¡.AlL ü˜QA˜À¡.AlLàî˜QA˜€©¡.AlLÀà˜QA˜˜¡.AlLјQA˜…¡.AlL€À˜QA˜€l¡.AlL@¯˜QA˜C¡.AlLÀ›˜QA˜¡.AlL“˜QA˜€ô .AlL€˜QA˜Ÿ .AlL€˜QA˜E .AlL y˜QA˜èŸ.AlL@r˜QA˜€‘Ÿ.AlL@k˜QA˜€:Ÿ.AlL€h˜QA˜€Ÿ.AlL€d˜QA˜íž.AlL@\˜QA˜€Ôž.AlLR˜QA˜Äž.AlLÀG˜QA˜©ž.AlL@;˜QA˜{ž.AlLÀ0˜QA˜€qž.AlL .˜QA˜€9ž.AlLà&˜QA˜€0ž.AlL %˜QA˜€ž.AlL ˜QA˜€ÿ.AlLà˜QA˜€Ú.AlL˜QA˜Í.AlLP˜QA˜€Ä.AlL˜QA˜¶.AlL ˜QA˜€k.AlL@˜QA˜€Q.AlL`ù—QA˜..AlL@í—QA˜$.AlLàå—QA˜.AlLÞ—QA˜.AlL@Ô—QA˜€ïœ.AlL@É—QA˜€Üœ.AlL`À—QA˜Äœ.AlL€¶—QA˜€¥œ.AlL€¨—QA˜ªœ.AlL œ—QA˜«œ.AlLàŒ—QA˜©œ.AlLÀ}—QA˜¸œ.AlL u—QA˜€œœ.AlL@i—QA˜dœ.AlLÀ^—QA˜€ œ.AlLX—QA˜›.AlLR—QA˜[›.AlLàG—QA˜€ðš.AlL =—QA˜—š.AlL1—QA˜Xš.AlL &—QA˜€ š.AlLà—QA˜Í™.AlL€ —QA˜€™.AlL÷–QA˜H™.AlLê–QA˜™.AlLÜ–QA˜÷˜.AlL`Ë–QA˜™.AlL ·–QA˜™.AlL`©–QA˜€!™.AlLà›–QA˜€+™.AlLÀ–QA˜€1™.AlL`{–QA˜8™.AlLàg–QA˜?™.AlLÀT–QA˜€<™.AlL`C–QA˜€#™.AlL`+–QA˜€™.AlL€–QA˜€è˜.AlLà–QA˜€Ç˜.AlLÀô•QA˜¤˜.AlL è•QA˜•˜.AlL Ü•QA˜€p˜.AlLÀÔ•QAô¥B˜.AŽ'ú¶Æ•QA(âùˆ˜.Ah‡pâÈ•QAhtÅ¥—.AØ¢}¢Ì•QAhtňä–.Aޏx‚Ï•QA Ìø5–.ADÎsÖ•QAH«ß‡•.ADÎsBÜ•QA"žh •.Aøãn‚ä•QA€=«hŸ”.ADÎsbó•QAȯ¤ø"”.Aü[zb–QA&cØ‚“.A²qu¢ –QAX”—øã’.AÖ*r¢9–QAؘ\ˆj’.AޏxÂE–QAØKØZì‘.AØÿöX–QA˜€0‘.AlL u–QA˜€Ð.AlL †–QA˜€5.AlLàŸ–QA˜.AlLଖQA˜€°.AlL`¹–QA˜_.AlLÀ–QA˜€ .AlL`Ï–QA˜ Ž.AlL@Ü–QA˜YŽ.AlL@è–QA˜ÀŽ.AlLÀî–QA˜€Æ.AlL€ò–QA˜€y.AlLàö–QA˜2.AlLÀø–QA˜€ðŒ.AlLÀþ–QA˜À“Œ.AlL@—QA˜€NŒ.AlL —QA˜À Œ.AlL€—QA˜î‹.AlL  —QA˜­‹.AlLà,—QA˜€n‹.AlL 7—QA˜€'‹.AlL @—QA˜½Š.AlLG—QA˜€PŠ.Aæ‚«êL—QA˜€Š.AlL`V—QA˜ÀÉ.AlL€`—QA˜€e‰.AlL c—QA˜ûˆ.AlL@g—QA˜€†ˆ.AlL€n—QA˜€4ˆ.AlL t—QA`@´ˆ.AD¬v/x—QA˜€Ø‡.AlL ~—QA˜x‡.AlL ˆ—QA˜ ‡.AlLÀ’—QA˜€®†.AlL`˜—QA˜€`†.AlLÀž—QA˜€†.AlLÀ¨—QA˜Àá….AlL€°—QA˜Œ….AlLà¶—QA˜<….AlL๗QA˜À™„.AlL€»—QA˜€D„.AlL½—QA˜€ƒ.AlL`È—QA˜@$ƒ.AlL`Ô—QA˜¹‚.AlL€à—QA˜ ‚.AlL`ð—QA˜J.AlL€˜QA˜€u€.AlLà˜QA˜@¿.AlL`+˜QA˜É~.AlL`B˜QA¨¼D~.Ap€ÆG˜QA˜@~.AlL I˜QA˜€Ã}.AlL Q˜QA˜€}.AlL ^˜QA˜h}.AlLi˜QA˜P}.AlL z˜QA˜€á|.AlL€Œ˜QA˜ÀR|.AlL`ž˜QA˜@·{.AlL ­˜QA˜ÀÖz.AlL É˜QA˜€=z.AlL`ܘQA˜€ˆy.AlL€õ˜QA˜°x.AlLÀ ™QA˜x.AlL`%™QA˜¥w.AlL`4™QA˜€Ww.AlL€D™QA˜€÷v.AlLY™QA˜€¨v.AlL@i™QA˜€Iv.AlL€x™QA˜€÷u.AlLà…™QA˜€¨u.AlL’™QA˜€cu.AlL š™QApÓ]Uu.AlL§™QA˜€ƒu.AlL`µ™QA˜€Tv.AlLÁ™QA˜€1w.AlL@Ú™QA˜±w.AlL@ë™QA˜€Kx.AlL@šQA˜€´x.AlL@$šQA˜€y.AlLà<šQA˜y.AlL0KšQA˜y.AlL LšQA˜€y.AlL [šQA˜€åx.AlL€cšQA˜Áx.AlL@lšQA˜¡x.AlL`}šQA˜€½x.AlL ‹šQA˜€my.AlL@ŸšQA˜Îy.AlL@­šQA˜ z.AlL ¾šQA˜ z.AlLàÇšQA˜z.AlL ØšQA˜€?z.AlLéšQA˜z.AlLàñšQA˜€Ûz.AlLÀ›QA˜U{.AlLà ›QA˜€×{.AlL›QA˜«|.AlL€&›QA˜€ö|.AlL@6›QA˜<}.AlL I›QA˜€…}.AlLÀa›QA˜€ù}.AlLà{›QA˜€p~.AlL‘›QA˜€à~.AlLࣛQA˜k.AlL ¶›QA˜€.AlLÀÍ›QA˜K€.AlLÕ›QA˜¡€.AlL€ä›QA˜Û€.AlLàó›QA˜€U.AlLÀþ›QA˜€ã.AlL@œQA˜±‚.AlL`œQA˜;ƒ.AlL`!œQA˜ïƒ.AlLà1œQA˜Œ„.AlL€;œQA˜€Ö….AlLàEœQA˜ï†.AlL HœQA˜Sˆ.AlL GœQA˜€{‰.AlLÀCœQA˜]Š.AlLMœQA˜€ïŠ.AlLTœQA˜€±‹.AlLZœQA˜€7Œ.AlL ^œQA˜].AlL€_œQA˜û.AlL ZœQA˜€.AlL€JœQA˜f.AlL;œQA˜€.AlL1œQA˜z.AlL`(œQA˜€·.AlL°$œQA˜>‘.AlLÀ)œQA˜Å‘.AlL4œQA˜$’.AlLÀEœQA˜€¥’.AlLÀ]œQA˜€õ’.AlL€lœQA˜ ”.AlL€‰œQA˜”.AlL ŠœQA˜€”.AlL`œQA˜€û”.AlL@™œQA˜>•.AlLজQA˜à•.AlL`ºœQA˜ÀB–.AlLÄœQA˜¹–.AlL ÐœQA˜p—.AlL@ÜœQA˜Í—.AlL åœQA˜€e˜.AlLÀøœQA˜*™.AlL  QA˜š.AlLÐ!QA˜Õš.AlL`QA˜ôš.AlL QA˜€øš.AlL  QA˜€ ›.AlLÿœQA˜"›.AlL`óœQA˜*›.AlL éœQA˜€7›.AlL ÔœQA˜€e›.AlL€ÍœQA˜€æ›.AlL@œQA˜>œ.AlL¹œQA˜€}œ.AlLଜQA˜€œ.AlL ¡œQA˜þœ.AlLÀšœQA˜€.AlL€ŠœQA˜Ú.AlL€œQA˜Gž.AlL xœQA˜œž.AlL`wœQA%*Ș€'/AlL ­³QAÌÀ¡0AlL@ÊQAVÌÀ0AlL`âÉQAÌ0AlL`ÞÉQAÌÀ-0AlL`ãÉQAÌÀM0AlLåÉQAÌÀY0AlLäÉQAÌ€p0AlL æÉQAÌ€„0AlLèÉQAÌ•0AlLéÉQAÌ€²0AlL@ëÉQAÌÀ0AlLåÉQAÌ€;0AlL ãÉQAÌÀM0AlL`âÉQAÌ@Z0AlL áÉQAÌÀk0AlL€âÉQAÌ…0AlL`ãÉQAÌ€Ÿ0AlL áÉQAÌ€°0AlL`àÉQAÌÀÉ0AlL ÞÉQAÌæ0AlLPßÉQAÌÀö0AlL€ÜÉQAÌ0AlL äÉQAÌ€0AlL æÉQAÌ€B0AlL@éÉQAÌ@m0AlLÀêÉQAÌ€’0AlL êÉQAÌ@ª0AlL ìÉQAÌÄ0AlL€íÉQAÌ@Þ0AlLêÉQAÌì0AlL@çÉQAÌ0AlLàçÉQAÌ€%0AlL€çÉQAÌ€:0AlL`æÉQAÌh0AlLåÉQAÌw0AlL0ëÉQAÌ“0AlLàêÉQAÌ©0AlL€ëÉQA̹0AlLàïÉQAÌ@É0AlL ðÉQAÌÀÖ0AlL`ñÉQAÌ€î0AlL€ñÉQAÌ 0AlL€ñÉQAÌ@0AlLàðÉQAÌ(0AlL@òÉQAÌ€30AlL€ôÉQAÌ€C0AlL€÷ÉQAÌU0AlL`öÉQAÌÀe0AlL ÷ÉQAÌÀ}0AlLà÷ÉQAÌš0AlLÀ÷ÉQAÌÀ¶0AlL€öÉQAÌ€Ì0AlL ôÉQAÌ€ç0AlL`ñÉQAÌ€ 0AlL@ñÉQAÌ€0AlLàñÉQAÌ€80AlL€òÉQAÌE0AlL óÉQAÌÀQ0AlL`ðÉQAÌi0AlLÀêÉQAÌ…0AlL°íÉQAÌ€’0AlLPòÉQAÌ0AlL€òÉQAÌÀ¸0AlLÀðÉQAÌ€Ì0AlL îÉQAÌÛ0AlLàìÉQAÌ€õ0AlL€ìÉQAÌÀ 0AlLìÉQAÌ! 0AlLçÉQAÌ€8 0AlL€æÉQAÌ@J 0AlL@ëÉQAÌ€c 0AlLÀîÉQAÌÀ‰ 0AlL îÉQAÌŸ 0AlLìÉQAÌÀÀ 0AlL èÉQAÌ× 0AlL@äÉQAÌ@ë 0AlL@àÉQAÌÀï 0AlL€ÓÉQAÌÀ 0AlLàÐÉQAÌ€ 0AlL`ÒÉQAÌ€ 0AlL ÎÉQAÌ! 0AlL ÌÉQAÌÀ7 0AlL€ÇÉQAÌ@3 0AlL`ÁÉQAÌ@2 0AlL@¾ÉQAÌ5 0AlL`»ÉQAÌ€< 0AlL€¹ÉQAÌ€I 0AlL ¸ÉQAÌ@X 0AlL ·ÉQAÌ@o 0AlLà´ÉQAÌ@ª 0AlL`¶ÉQAÌÀÍ 0AlLµÉQAÌä 0AlL`±ÉQAÌÀç 0AlLà«ÉQAÌ€ê 0AlLà§ÉQAÌÀó 0AlL€£ÉQAÌ€ÿ 0AlLÀ¡ÉQAÌ€ 0AlLà ÉQAÌ@ 0AlL@ŸÉQAÌ7 0AlL`žÉQAÌF 0AlL ÉQAÌX 0AlLÀžÉQAÌ@N 0AlLà§ÉQAÌ€h 0AlLà§ÉQAÌ@} 0AlL`žÉQAÌÀ 0AlL ™ÉQAÌ€™ 0AlL –ÉQAÌ€­ 0AlLÀ—ÉQAÌÀÓ 0AlL šÉQAÌç 0AlLšÉQAÌ€ù 0AlL@œÉQAÌ@ 0AlL€–ÉQAÌÀ 0AlL•ÉQAÌÀ/ 0AlL ’ÉQAÌÀZ 0AlL–ÉQAÌÀj 0AlL€’ÉQAÌÀ 0AlL`ÉQAÌ@’ 0AlL ŒÉQAÌ€¢ 0AlL ŠÉQAÌ@¿ 0AlL „ÉQAÌÍ 0AlL ‚ÉQAÌß 0AlL ƒÉQAÌ€ê 0AlLà}ÉQAÌ€ 0AlL€ÉQAÌÀ 0AlLÀÉQAÌ' 0AlL }ÉQAÌ€i 0AlLÀuÉQAÌ€v 0AlL€rÉQAÌ 0AlL qÉQA̱ 0AlLrÉQAÌÀÐ 0AlLÀoÉQAÌ@ô 0AlL oÉQAÌ@ 0AlLÀoÉQAÌ@*0AlL`pÉQAÌ€L0AlL pÉQĂ0AlLàoÉQAÌÀ®0AlL qÉQAÌÌ0AlL tÉQAÌÀç0AlL€zÉQAÌÀþ0AlLà}ÉQAÌ€#0AlL€{ÉQAÌÀî0AlL`dÉQAÌÀ”0AlL`BÉQAÌÀ-0AlLàÉQAÌ@Í 0AlL ÿÈQAÌÀª 0AlL õÈQAÌ@ 0AlLÀëÈQAÌ€o 0AlLçÈQAÌU 0AlL`ÙÈQAÌÀ> 0AlL€ÒÈQAÌÀ3 0AlL€ËÈQAÌ! 0AlL ÃÈQAÌ€ 0AlL³ÈQAÌ€ 0AlL`§ÈQAÌ€ 0AlL ™ÈQAÌþ 0AlL`…ÈQAÌç 0AlL yÈQAÌÀ¤ 0AlL kÈQAÌÀ† 0AlL`cÈQAÌ€` 0AlLàUÈQAÌÀH 0AlL LÈQAÌ€ 0AlLÀ=ÈQAÌù 0AlL@0ÈQA̪ 0AlLà#ÈQAÌ€b 0AlL@ÈQAÌÀ/ 0AlL€ ÈQAÌ€ 0AlL@ûÇQAÌ@´ 0AlLÐÜÇQAÌ€˜ 0AlL€ÍÇQAÌÀ£ 0AlLàÁÇQAÌÀª 0AlL€´ÇQAÌÀ½ 0AlLà¢ÇQAÌÀÅ 0AlLÀÇQA̹ 0AlL „ÇQAÌ@¡ 0AlL€|ÇQAÌt 0AlL nÇQAÌ? 0AlL@^ÇQAÌÀ 0AlL@IÇQAÌÀó 0AlL€9ÇQAÌ@Í 0AlL€!ÇQA̹ 0AlLÇQAÌ€ 0AlL üÆQAÌ€v 0AlL€æÆQAÌ€l 0AlL0àÆQAÌÀJ 0AlL ÊÆQAÌÿ0AlL ‹ÆQAÌñ0AlLàÆQA̺0AlLàsÆQAÌÀ¯0AlL qÆQÃ0AlL€hÆQAÌT0AlL `ÆQAÌ€0AlL`VÆQAÌõ0AlL LÆQAÌ€Ñ0AlLà>ÆQAÌ€±0AlL`7ÆQAÌ€C0AlL€ÆQAÌÀ,0AlL€ÆQAÌ+0AlL`ÆQAÌ€50AlL€÷ÅQAÌÀE0AlL€ïÅQAÌ@Z0AlL@àÅQAÌ@{0AlLÖÅQAÌ0AlLÉÅQAÌ@™0AlL`ºÅQAÌ€œ0AlL`®ÅQAÌ0AlLžÅQAÌ€¤0AlL ‘ÅQAÌ®0AlLàsÅQAÌ€ª0AlL`gÅQAÌ@ 0AlLàQÅQAÌ„0AlLÀ5ÅQẢ0AlL  ÅQAÌ@0AlL ÅQAÌ©0AlLÅQAÌ@¸0AlL€òÄQAÌÙ0AlLàÝÄQAÌ€é0AlL ÒÄQAÌ÷0AlL@¾ÄQAÌ@ú0AlLÀ²ÄQAÌ0AlL@¢ÄQAÌ€0AlL`™ÄQAÌÀ0AlL`ŽÄQAÌ€-0AlLÀ}ÄQAÌ@“0AlL 9ÄQAÌ«0AlL`!ÄQAÌÀ·0AlLàÄQAÌÆ0AlLÀÄQAÌ€ã0AlL€ÄQAÌ@ë0AlLôÃQAÌ€õ0AlL`èÃQAÌ@ 0AlL@ÞÃQAÌ€ 0AlL ÒÃQAÌ€ 0AlL0ÑÃQAÌ€ 0AlL@ÈÃQAÌ@Û0AlL ™ÃQAÌ€Ó0AlL`ÃQAÌ@Õ0AlL vÃQAÌÔ0AlLlÃQAÌ€Ù0AlL€bÃQAÌ€è0AlLXÃQAÌÀ 0AlL MÃQAÌ€/ 0AlL AÃQAÌT 0AlL8ÃQAÌ{ 0AlLà5ÃQAÌÀ§ 0AlL`0ÃQAÌ€º 0AlL *ÃQAÌÑ 0AlL€%ÃQAÌ@æ 0AlL ÃQAÌ€ 0AlL@ÃQAÌ@( 0AlL`ÃQAÌ@K 0AlL€ ÃQAÌÀ` 0AlL@ÿÂQAÌo 0AlL ïÂQAÌ€q 0AlL ãÂQAÌ} 0AlLÀÚÂQAÌÀ¡ 0AlLàÊÂQAÌÀÑ 0AlL ÄÂQAÌ@þ 0AlL ¹ÂQAÌÀ! 0AlL`´ÂQAÌ€f 0AlL ³ÂQAÌÀ— 0AlL€¯ÂQAÌ€û 0AlLà«ÂQAÌ! 0AlLÀªÂQAÌ@M 0AlLàªÂQAÌ€c 0AlL€§ÂQAÌ€x 0AlLÀ£ÂQAÌÀ‡ 0AlL@œÂQAÌÀ• 0AlLÀ‘ÂQAÌÀ¤ 0AlL`ŠÂQA̺ 0AlLÀƒÂQAÌÚ 0AlL€yÂQAÌÀï 0AlLàvÂQAÌ@ 0AlLvÂQAÌ€0 0AlLvÂQAÌ@c 0AlL ~ÂQAÌ¢ 0AlL ŒÂQAÌæ 0AlL ›ÂQAÌ€0AlLà¢ÂQAÌÀO0AlL@¦ÂQÃ0AlL@ªÂQAÌ@Ú0AlL€®ÂQA̤0AlLÀ³ÂQAÌ@ª0AlLÀÂQAÌ@"0AlL€’ÂQAÌ@[0AlLà‰ÂQAÌ€~0AlL „ÂQAÌÀ 0AlL}ÂQAÌ@+0AlL€tÂQAÌk0AlL€kÂQAÌ·0AlL fÂQAÌÀÿ0AlLÀ]ÂQAÌ@<0AlLÀNÂQAÌÀë0AlLÀ?ÂQAÌ@w0AlL 2ÂQAÌ@¿0AlL€)ÂQAÌ0AlL` ÂQAÌ@80AlLÀÂQAÌ@W0AlL@ ÂQAÌ@‰0AlL€ûÁQA̯0AlL òÁQAÌ€Ù0AlLÀéÁQAÌ0AlLÀâÁQAÌÀH0AlLàÜÁQAÌ€Œ0AlLÀÔÁQAÌ@¿0AlLàËÁQAÌÀù0AlLàÀÁQAÌÀ%0AlL€ºÁQAÌ@i0AlL`°ÁQAÌ@g0AlL®ÁQAÌ€P0AlL@’ÁQAÌ@70AlLÀxÁQAÌ)0AlL dÁQAÌÀ 0AlL DÁQAÌÀñ0AlLÀÁQAÌ@÷0AlL€ÁQAÌ0AlLà ÁQAÌ@0AlL€÷ÀQAÌ€-0AlL@ïÀQAÌ?0AlLàÜÀQAÌC0AlL ÑÀQAÌ€D0AlLàÈÀQAÌQ0AlL ±ÀQAÌ€q0AlLp„ÀQAÌw0AlLÀ|ÀQAÌ€0AlL`xÀQAÌÀÍ0AlLqÀQAÌ@á0AlL@hÀQAÌ€ñ0AlLÀ]ÀQAÌÀý0AlLàUÀQAÌÀ0AlL NÀQAÌ@&0AlLÀIÀQAÌ€>0AlL EÀQAÌX0AlL AÀQAÌŒ0AlLà:ÀQAÌÀŸ0AlL@5ÀQAÌÀ¡0AlLÀ-ÀQAÌ@‰0AlLÀ$ÀQAÌ€n0AlL ÀQAÌÀ00AlLÀQAÌ@ß0AlL@ÀQAÌ€0AlLÀ‹¿QAÌÀÓ0AlL–¿QAÌ0AlL ¥¿QAÌÀ-0AlL€²¿QAÌÀÈ0AlLàÁ¿QAÌ@•0AlL€Ê¿QAÌ@V0AlL@Ú¿QAÌÀ0AlL€ç¿QAÌ€y0AlL¾¿QAÌ€ú0AlL œ¿QAÌ€Ð0AlLà“¿QAÌ®0AlL ¿QAÌ€¯0AlL w¿QAÌ€µ0AlLào¿QAÌ@ª0AlL i¿QAÌ@0AlL`e¿QAÌÀb0AlLàa¿QAÌ€C0AlL_¿QAÌ@ø0AlLO¿QAÌ@š0AlL ;¿QAÌÀY0AlL`1¿QAÌ/0AlL`$¿QAÌ 0AlLà¿QAÌ€ï0AlL ¿QAÌ×0AlL€¿QA̵0AlL€ ¿QAÌÀ0AlL þ¾QAÌ€s0AlL€÷¾QAÌ[0AlL ñ¾QAÌ€/0AlLë¾QAÌ€0AlLä¾QAÌ€ñ0AlL`Û¾QAÌ@Ï0AlL€Ô¾QAÌ€—0AlL€Ë¾QAÌÀu0AlL`¾QAÌ€L0AlL»¾QAÌ0AlL ´¾QAÌ€º 0AlL`Ÿ¾QAÌs 0AlL€C¾QAÌ@í 0AlLÐ-¾QAÌÀÝ 0AlL`+¾QAÌ@S 0AlL@¾QAÌD 0AlL¾QAÌÀ# 0AlL`¾QAÌ@ø 0AlLý½QAÌ€Õ 0AlL ÷½QAÌ@² 0AlL€í½QAÌŽ 0AlLæ½QAÌ@i 0AlL`ݽQAÌÀO 0AlL`Ô½QAÌ7 0AlLàǽQAÌ@ 0AlL@»½QAÌ 0AlL@±½QAÌÿ 0AlLðª½QAÌ€ý 0AlLà§½QAÌ€ 0AlL`½QAÌ 0AlL •½QAÌ€ 0AlL ˆ½QAÌ@ 0AlL`½QAÌ@ÿ 0AlL z½QAÌÀò 0AlL`t½QAÌ@]0AlL€å¼QAÌ@\0AlL Þ¼QAÌÀX0AlL`¿¼QAÌZ0AlL©¼QAÌ@N0AlL€¼QAÌÀ=0AlL “¼QAÌ0AlLu¼QAÌ@×0AlLÀ\¼QAÌ@Á0AlLÀP¼QAÌÀ«0AlLE¼QAÌ€a0AlL ¼QAÌ@Ý0AlL ×»QAÌÀÌ0AlL Â»QAÌÀ¾0AlLÀ¬»QA̸0AlL »QAÌ@»0AlL •»QAÌÀ±0AlL ˆ»QAÌÀ¦0AlL »QAÌ€œ0AlLàz»QAÌ@€0AlL`s»QAÌ@y0AlLàe»QAÌ@u0AlLZ»QAÌg0AlLÀS»QAÌM0AlLÀL»QAÌÀ20AlLI»QAÌÀ0AlL@D»QAÌÀß0AlLÀ<»QAÌÀÈ0AlL8»QA4vh¦¹0AÒ²f¶5»QAÌ@¡0AlLà1»QAÌ€€0AlL-»QAÌÀp0AlLà'»QAÌÀU0AlLà#»QAÌÀ!0AlL »QAÌÀñ0AlLÀ »QAÌÙ0AlL`»QAÌŸ0AlL@ûºQAÌW0AlLàîºQAÌ€ã0AlLÀÛºQAÌ€Ç0AlLѺQAÌ@´0AlL`ʺQAÌ€¤0AlL@źQAÌÀ•0AlL€¼ºQAÌ€‰0AlL@¶ºQAÌÀs0AlL °ºQAÌ@H0AlL@«ºQAÌ-0AlL¨ºQAÌ0AlL £ºQAÌ@Û0AlL`ºQA̽0AlLÀ™ºQAÌ€—0AlL ”ºQAÌÀ~0AlL ‹ºQAÌ€g0AlL …ºQAÌÀN0AlL €ºQAÌA0AlLàzºQAÌÀ%0AlL sºQAÌÿ0AlLàcºQAÌÀß0AlL]ºQAÌ@Ì0AlL`WºQAÌÀ·0AlL@QºQAÌ€¯0AlL KºQAÌ¡0AlLÀAºQAÌ€“0AlLÀ8ºQAÌ€’0AlL 4ºQAÌ’0AlL@2ºQAÌÀŽ0AlL"ºQAÌ@ƒ0AlL€ºQAÌ€10AlLÀ ºQAÌ0AlLý¹QAÌÝ0AlL`õ¹QAÌÀÆ0AlLò¹QAÌ€°0AlL ï¹QAÌÀŒ0AlL@í¹QAÌ@m0AlL`ê¹QAÌ@W0AlLÀæ¹QAÌ@0AlLÀß¹QAÌ10AlL€Ø¹QAÌ€0AlL€Î¹QA˜€úÿ/AlL@ĹQA˜€ªÿ/AlL ²¹QA˜kÿ/AlL@¢¹QA˜€ðþ/AlLÀ„¹QA˜€Xþ/AlL [¹QA˜©ý/AlL "¹QA˜€¼ý/AlL ¹QA˜Æý/AlL ¹QA˜Áý/AlLà¹QA˜›ý/AlL@¹QA˜–ý/AlL`ø¸QA˜€ý/AlL ë¸QA˜€Žý/AlL`߸QA˜€¨ý/AlL Õ¸QA˜€Ùý/AlL ȸQA˜€êý/AlL¼¸QA˜€øý/AlL€­¸QA˜þ/AlL ¥¸QA˜ þ/AlL˜¸QA˜ûý/AlLà‰¸QA˜€âý/AlL@¸QA˜€Þý/AlL@w¸QA˜€¿ý/AlL q¸QA˜‚ý/AlL`f¸QA˜€Gý/AlL_¸QA˜+ý/AlLX¸QA˜÷ü/AlLÀP¸QA˜€Ìü/AlLF¸QA˜Õü/AlL >¸QA˜€âü/AlL 4¸QA˜€êü/AlL -¸QA˜€äü/AlL %¸QA˜€ïü/AlL ¸QA˜€áü/AlL ¸QA˜’ü/AlL ¸QA˜€Fü/AlL ù·QA˜€ºû/AlLàå·QA˜€Fû/AlLÒ·QA˜€Ýú/AlLÀÄ·QA˜§ú/AlL ½·QA˜€†ú/AlL€¯·QA˜_ú/AlLষQA˜9ú/AlLÀŸ·QA˜€óù/AlLà·QA˜Ìù/AlL ˆ·QA˜®ù/AlLà€·QA˜‹ù/AlLÀs·QA˜€Où/AlL f·QA˜>ù/AlL€^·QA˜$ù/AlL`S·QA˜€ù/AlL@Q·QA˜€úø/AlL@J·QA˜Êø/AlLÀC·QA˜‹ø/AlL€>·QA˜€ø/AlL@(·QA˜€ð÷/AlL`·QA˜€¤÷/AlL€û¶QA˜Ž÷/AlL ò¶QA˜€u÷/AlL è¶QA˜€l÷/AlL å¶QA˜€M÷/AlLàØ¶QA˜+÷/AlL öQA˜E÷/AlL ½¶QA˜€a÷/AlL¸¶QA˜\÷/AlL`¨¶QA˜M÷/AlLÀ ¶QA˜K÷/AlLà˜¶QA˜R÷/AlL`Œ¶QA˜h÷/AlLÀ¶QA˜k÷/AlLà|¶QA˜€l÷/AlL°y¶QA˜p÷/AlLt¶QA˜=÷/AlL`_¶QA˜7÷/AlL T¶QA˜÷/AlLJ¶QA˜€äö/AlL€>¶QA˜¤ö/AlL 0¶QA˜mö/AlLÀ&¶QA˜Iö/AlL`¶QA˜ ö/AlL`¶QA˜Ýõ/AlLà¶QA˜§õ/AlLà¶QA˜gõ/AlLöµQA˜6õ/AlLíµQA˜ôô/AlL ãµQA˜€Âô/AlL`×µQA˜ô/AlLÀεQA˜¨ô/AlL€ÇµQA˜çô/AlL@ÁµQA˜õ/AlLີQA˜€:õ/AlL`²µQA˜€_õ/AlL@¬µQA˜€Žõ/AlL`§µQA˜ðõ/AlL ¢µQA˜}ö/AlL@’µQA˜€Ëö/AlL ‰µQA˜J÷/AlLàwµQA˜€Ü÷/AlL_µQA˜‚ø/AlL@EµQA˜ù/AlL@1µQA˜Eù/AlL`)µQA˜ ù/AlLµQA˜ßù/AlL@ µQA˜$ú/AlL@ú´QA˜Úú/AlLàÑ´QA˜*ú/AlLP±³QA˜€'ú/AlL ­³QA˜¶ù/AlLÀ²³QA˜€jù/AlL`»³QA˜€Nù/AlLʳQA˜˜ø/AlL#´QA˜€ä÷/AlL`u´QA˜j÷/AlLÀÀ´QA˜€÷/AlL Â´QA˜€Ýö/AlL`Ç´QA˜¢ö/AlLàÌ´QA˜mö/AlLÀØ´QA˜€ö/AlL`ç´QA˜Þõ/AlL`õ´QA˜·õ/AlL€µQA˜õ/AlLàµQA˜€Sõ/AlL€ µQA˜€)õ/AlL &µQA˜€Ûô/AlLÀ+µQA˜€Pô/AlL .µQA˜ô/AlLÀ0µQA˜€Îó/AlL€3µQA˜'ó/AlL;µQA˜äò/AlLàNµQA˜€;ñ/AlL€gµQA˜€êð/AlL hµQA˜€¦ð/AlL€hµQA˜tð/AlLàgµQA˜!ð/AlLàhµQA˜€êï/AlL jµQA˜Ÿï/AlLÀkµQA˜€ï/AlLÀpµQA˜€dï/AlL zµQA˜Jï/AlL`‚µQA˜0ï/AlL€ˆµQA˜€ï/AlL ŽµQA˜ï/AlL •µQA˜×î/AlL@žµQA˜€ªî/AlL@§µQA˜‰î/AlL@­µQA˜€vî/AlL ´µQA˜5î/AlL`½µQA˜€ î/AlLµQA˜€×í/AlL`ƵQA˜€ˆí/AlLεQA˜í/AlL ×µQA˜ãì/AlL@×µQA˜™ì/AlL`ÙµQA˜€aì/AlLÀÛµQA˜2ì/AlL@ݵQA˜ì/AlL`ÞµQA˜³ë/AlL ÞµQA˜€yë/AlLàÛµQA˜Aë/AlLàØµQA˜ë/AlL`ÖµQA˜«ê/AlL`ÔµQA˜Nê/AlLÔµQA˜€ê/AlL ×µQA˜€˜é/AlL0صQA˜Yé/AlL ÔµQA˜€%é/AlL€ÕµQA˜é/AlL`ݵQA˜€é/AlLæµQA˜âè/AlLÀíµQA˜Ãè/AlLÀòµQA˜è/AlLúµQA˜?è/AlL`ûµQA˜£ç/AlL ¶QA˜eç/AlL ¶QA˜ç/AlLÀ¶QA˜æ/AlL€ÿµQA˜Bæ/AlLùµQA˜€þå/AlL úµQA˜Éå/AlL€¶QA˜‚å/AlLжQA˜€:å/AlL€¶QA˜€Þä/AlL°üµQA˜—ä/AlL`ÿµQA˜€<ä/AlL¶QA˜8ã/AlL ¶QA˜Íâ/AlL ¶QA˜‰â/AlL€ ¶QA˜Jâ/AlL€ ¶QA˜ â/AlL ýµQA˜ïá/AlL õµQA˜Þá/AlLàìµQA˜³á/AlLéµQA˜€Sá/AlL`çµQA˜çà/AlLÀêµQA˜€­à/AlL€ðµQA˜€là/AlLùµQA˜€?à/AlL`ýµQA˜çß/AlL`¶QA˜˜ß/AlL€¶QA˜Mß/AlLà¶QA˜ß/AlL@¶QA˜ÞÞ/AlL ¶QA˜ÁÞ/AlL@¶QA˜³Þ/AlL ¶QA˜žÞ/AlL€*¶QA˜€sÞ/AlL=¶QA˜EÞ/AlLàC¶QA˜Þ/AlL N¶QA˜ÆÝ/AlL@^¶QA˜†Ý/AlL@h¶QA˜3Ý/AlL@p¶QA˜îÜ/AlLÀt¶QA˜²Ü/AlLy¶QA˜ÏÜ/AlL°€¶QA˜¿à/AlL°‰·QA˜Èâ/AlL ¸QA˜vè/AlLð¹QA˜€é/AlL º¹QA˜Ù/AlLÕºQA˜Ù/AlL@ÚºQA˜³Ø/AlL ÜºQA˜«Ö/AlLñºQA˜QÖ/AlL óºQA˜íÕ/AlLàøºQA˜€zÕ/AlL »QA˜€.Õ/AlL@ »QA˜ÙÔ/AlL`»QA˜€`Ô/AlL »QA˜YÓ/AlL /»QA˜²Ò/AlLÀ9»QA˜·Ñ/AlLN»QA˜cÑ/AlLT»QA˜Ñ/AlL^»QA˜€ÑÐ/AlLàj»QA˜€­Ð/AlLhr»QA˜€¤Ï/AlL@œ»QA˜BÏ/AlL@§»QA˜€ïÎ/AlLà­»QA˜²Î/AlL ·»QA˜‹Î/AlL ¿»QA˜€zÎ/AlLÈ»QA˜|Î/AlL0Ê»QA˜‰Î/AlL Ñ»QA˜‡Î/AlLÀß»QA˜€‚Î/AlL@è»QA˜dÎ/AlLÀï»QA˜7Î/AlL ø»QA˜Î/AlL ¼QA˜ØÍ/AlL@¼QA˜Í/AlLÀ ¼QA˜“Ì/AlL¼QA˜6Ì/AlL ¼QA˜€Ì/AlL@(¼QA˜¾Ë/AlL4¼QA˜€žË/AlL€=¼QA˜€rË/AlLK¼QA˜=Ë/AlL`W¼QA˜€Ë/AlLÀ]¼QA˜€ÎÊ/AlL€f¼QA˜€“Ê/AlLÀj¼QA˜0Ê/AlL`l¼QA˜€ÌÉ/AlLÐr¼QA˜€èÇ/AlLÐc¼QA˜€˜Ç/AlL`h¼QA˜€QÇ/AlLp¼QA˜Ç/AlL0t¼QA˜ÄÆ/AlLàx¼QA˜,Æ/AlL ‹¼QA˜OÅ/AlL ¥¼QA˜4Å/AlLÀ¸¼QA˜JÅ/AlL`μQA˜aÅ/AlL`Ú¼QA˜yÅ/AlLàè¼QA˜¨Å/AlL`ö¼QA˜ÀÅ/AlL ½QA˜€®Å/AlL ½QA˜xÅ/AlL ½QA˜CÅ/AlL½QA˜Å/AlL@#½QA˜€ÃÄ/AlL€*½QA˜xÄ/AlL 0½QA˜€@Ä/AlL 6½QA˜Ä/AlL`?½QA˜€ÁÃ/AlL O½QA˜€”Ã/AlL`_½QA˜fÃ/AlLk½QA˜€.Ã/AlL s½QA˜ôÂ/AlL {½QA˜úÂ/AlL@†½QA˜ýÂ/AlL`½QA˜€ÕÂ/AlLp•½QA˜–Â/AlLÀ“½QA˜€AÂ/AlLÀ’½QA˜€þÁ/AlL ”½QA˜ãÁ/AlLÀ ½QA˜ÑÁ/AlL਽QA˜¯Á/AlLಽQA˜€‚Á/AlL€º½QA˜Á/AlL@Á½QA˜µÀ/AlL`½QA˜TÀ/AlL@ƽQA˜:À/AlL@ͽQA˜]À/AlL Ö½QA˜¦À/AlL`à½QA˜»À/AlL æ½QA˜‘À/AlLpí½QA˜?À/AlL€ê½QA˜Ë¿/AlL€í½QA˜€ä¿/AlLö½QA˜ã¿/AlL ¾QA˜Û¿/AlL ¾QA˜€¿¿/AlL`¾QA˜Þ¿/AlLÀ¾QA˜À/AlL !¾QA˜ À/AlL€(¾QA˜à¿/AlL -¾QA˜í¿/AlL€6¾QA˜ô¿/AlL0?¾QA˜€ö¿/AlL A¾QA˜¿/AlLR¾QA˜{¿/AlL@Y¾QA˜u¿/AlL€c¾QA˜€­¿/AlL@j¾QA˜ŽÀ/AlL }¾QA˜©À/AlL †¾QA˜—À/AlL@¾QA˜ÑÀ/AlL’¾QA˜aÁ/AlL “¾QA˜€†Á/AlLà˜¾QA˜oÁ/AlLÀ¢¾QA˜AÁ/AlL ¨¾QA˜Á/AlL€­¾QA˜ÚÀ/AlL ¸¾QA˜€ Á/AlL໾QA˜<Á/AlLÀ¾QA˜vÁ/AlLàǾQA˜lÁ/AlLÀξQA˜€PÁ/AlL Õ¾QA˜7Á/AlL Û¾QA˜/Á/AlLàá¾QA˜MÁ/AlLàè¾QA˜‰Á/AlL€î¾QA˜¨Á/AlL@ó¾QA˜¹Á/AlLù¾QA˜¬Á/AlL`¿QA˜“Á/AlLÀ¿QA˜‚Á/AlL`¿QA˜Á/AlL€¿QA˜€¼Á/AlL"¿QA˜€îÁ/AlL€)¿QA˜€ÍÁ/AlLÀ1¿QA˜ÌÁ/AlL€?¿QA˜ûÁ/AlL@H¿QA˜€øÁ/AlL€P¿QA˜ÂÁ/AlL X¿QA˜uÁ/AlLÀc¿QA˜€–Á/AlL`l¿QA˜¦Á/AlLÀt¿QA˜€xÁ/AlLà}¿QA˜ Á/AlLà€¿QA˜ÓÀ/AlL€†¿QA˜ÃÀ/AlLàŒ¿QA˜¹À/AlL`›¿QA˜­À/AlL ¢¿QA˜¤À/AlL ®¿QA˜€ÈÀ/AlLÀµ¿QA˜ÅÀ/AlLÀ¿QA˜‰À/AlLÀÉ¿QA˜€VÀ/AlL`Ô¿QA˜€ZÀ/AlL@â¿QA˜}À/AlL í¿QA˜rÀ/AlLàù¿QA˜Û¿/AlL ÀQA˜u¿/AlLÀQA˜=¿/AlL ÀQA˜þ¾/AlL ÀQA˜­¾/AlL !ÀQA˜A¾/AlL@*ÀQA˜û½/AlL@1ÀQA˜®½/AlL :ÀQA˜€‚½/AlLCÀQA˜]½/AlLPÀQA˜<½/AlLPUÀQA˜&½/AlL XÀQA˜µ¼/AlL`ZÀQA˜s¼/AlLÀXÀQA˜¼/AlLàVÀQA˜€˜»/AlL`VÀQA˜€0»/AlL RÀQA˜Àº/AlL JÀQA˜Iº/AlL@ÀQA˜€É¹/AlL >ÀQA˜{¹/AlLBÀQA˜7¹/AlL€LÀQA˜ú¸/AlL€TÀQA˜¬¸/AlL ZÀQA˜€n¸/AlL`\ÀQA˜¸/AlL€]ÀQA˜¹·/AlL]ÀQA˜e·/AlL@\ÀQA˜d¶/AlL€,ÀQA˜ä´/AlL`%ÀQA˜å´/AlLÀÀQA˜€ã´/AlLÀQA˜€Ï³/AlLÀ ÀQA˜³/AlL0ÀQA˜€e³/AlLàÀQA˜7³/AlLàÀQA˜C³/AlL&ÀQA˜£³/AlL 1ÀQA˜ȳ/AlL€;ÀQA˜€V´/AlL@BÀQA˜Á³/AlLàJÀQA˜û³/AlL MÀQA˜´/AlLÀOÀQA˜€ ´/AlLÀSÀQA˜´/AlL`VÀQA˜€´/AlL ZÀQA˜´/AlL _ÀQA˜ ´/AlLàfÀQA˜€³/AlLhÀQA˜€N³/AlLÀgÀQA˜D³/AlL oÀQA˜€B³/AlLÀuÀQA˜ø²/AlL }ÀQA˜“²/AlL}ÀQA˜8²/AlL€ÀQA˜:²/AlLàwÀQA˜:²/AlL@bÀQA˜5²/AlLàTÀQA˜²/AlL€DÀQA˜€²/AlLà<ÀQA˜€Ù±/AlL /ÀQA˜«±/AlL "ÀQA˜€q±/AlL`ÀQA˜E±/AlLàÀQA˜±/AlL€ ÀQA˜ú°/AlL`ÀQA˜(±/AlLþ¿QA˜j±/AlL@ù¿QA˜€Ü°/AlL€ñ¿QA˜€v°/AlLàì¿QA˜€°/AlL ì¿QA˜§¯/AlL î¿QA˜¾®/AlL@ï¿QA˜^®/AlL€ë¿QA˜€Þ­/AlLâ¿QA˜‚­/AlLàÖ¿QA˜+­/AlL Ô¿QA˜€¿¬/AlLÀÒ¿QA˜Z¬/AlLÀÍ¿QA˜€è«/AlLÄ¿QA˜t«/AlL ¹¿QA˜ý©/AlL@¤¿QA˜·©/AlL ˜¿QA˜˜©/AlL€’¿QA˜}©/AlLb¿QA˜®©/AlLàY¿QA˜ê©/AlL S¿QA˜ª/AlLJ¿QA˜ª/AlL C¿QA˜ª/AlL7¿QA˜€ª/AlL`+¿QA˜ ª/AlLà¿QA˜€ª/AlLÀ¿QA˜Hª/AlL ¿QA˜…ª/AlL@¿QA˜€Ñª/AlL ¿QA˜ôª/AlL ö¾QA˜«/AlLàѾQA˜-«/AlL`ƾQA˜K«/AlL€¿¾QA˜g«/AlLÀ·¾QA˜€n«/AlLÀ±¾QA˜o«/AlLª¾QA˜P«/AlL ¤¾QA˜€"«/AlL@Ÿ¾QA˜«/AlL@ž¾QA˜€Þª/AlL`›¾QA˜¢ª/AlL`›¾QA˜mª/AlL`œ¾QA˜3ª/AlL`œ¾QA˜€Ð©/AlL€›¾QA˜€~©/AlL ›¾QA˜€°¨/AlLœ¾QA˜z¨/AlLœ¾QA˜€¨/AlL€ž¾QA˜ѧ/AlL` ¾QA˜Œ§/AlL€¤¾QA˜@§/AlLÐ¥¾QA˜€x¦/AlLpœ¾QA˜€@¦/AlL Ÿ¾QA˜ö¥/AlL¤¾QA˜Ê¥/AlL §¾QA˜¡¥/AlL«¾QA˜l¥/AlL ­¾QA˜8¥/AlL °¾QA˜¥/AlL`µ¾QA˜à¤/AlLÀ¹¾QA˜·¤/AlL þQA˜–¤/AlL`ʾQA˜€6¤/AlL Ó¾QA˜€Ý£/AlL`ؾQA˜f£/AlLàÙ¾QA˜ç¢/AlLÀä¾QA˜ߢ/AlL@ï¾QA˜Æ¢/AlLàô¾QA˜€†¢/AlL`÷¾QA˜Q¢/AlL ø¾QA˜ò¡/AlL`ý¾QA˜€p¡/AlLÿ¾QA˜€¡/AlLà¿QA˜ž /AlL`¿QA˜€ /AlL¿QA˜˜Ÿ/AlL` ¿QA˜*Ÿ/AlLÀ¿QA˜ Ÿ/AlL`,¿QA˜õž/AlLÀ;¿QA˜€Ðž/AlL@F¿QA˜žž/AlLàQ¿QA˜bž/AlL [¿QA˜€Ež/AlL`q¿QA˜]ž/AlL ¿QA˜ž/AlL¿QA˜˜ž/AlL€™¿QA˜€sž/AlL@Ï¿QA˜kž/AlLàè¿QA˜^ž/AlL ù¿QA˜€Sž/AlL ÀQA˜€.ž/AlL.ÀQA˜+ž/AlL@>ÀQA˜*ž/AlLàQÀQA˜Iž/AlLÀeÀQA˜0ž/AlL@ˆÀQA˜€<ž/AlL€•ÀQA˜€6ž/AlLÀQA˜%ž/AlL ¦ÀQA˜ü/AlL€®ÀQA˜É/AlLà·ÀQA˜“/AlLÀ½ÀQA˜k/AlL ÄÀQA˜€'/AlL ÆÀQA˜€h/AlLÀ×ÀQA˜—/AlLÀáÀQA˜€/AlLàçÀQA˜€z/AlL óÀQA˜u/AlL€öÀQA˜”/AlL`ÁQA˜è/AlL€ÁQA˜€Xž/AlL"ÁQA˜Òž/AlL .ÁQA˜9Ÿ/AlL`9ÁQA˜^Ÿ/AlL€>ÁQA˜žŸ/AlLPHÁQA˜®Ÿ/AlLÀJÁQA˜€„Ÿ/AlL@WÁQA˜zŸ/AlL€_ÁQA˜€±Ÿ/AlLoÁQA˜€ /AlL@ŠÁQA˜€t /AlL¥ÁQA˜ ¡/AlL`¨ÁQA˜£¡/AlL@¯ÁQA˜ó¡/AlLàÈÁQA˜†¢/AlL€ÂQA˜ì¢/AlL€"ÂQA˜›£/AlL`UÂQA˜o£/AlL€ƒÂQA˜x£/AlL@—ÂQA˜€p£/AlL€«ÂQA˜~£/AlL@ÂÂQA8¹™{£/A8Í,äÂQA˜Û£/AlL@äÂQA˜¤/AlLâÂQA˜€`¤/AlL`ßÂQA˜•¥/AlLÀÒÂQA˜ ¦/AlL`ÕÂQA˜€¦¦/AlLÛÂQA˜€§/AlLÛÂQA˜ɧ/AlL@ÚÂQA˜_¨/AlL€ÙÂQA˜®¨/AlL€ÝÂQA˜©/AlL€àÂQA˜€ð©/AlL`çÂQA˜€lª/AlLÀìÂQA˜€¸ª/AlL€ôÂQA˜€ýª/AlL ÷ÂQA˜€P«/AlLúÂQA˜ˆ«/AlL`ÃQA˜€Ï«/AlLÀÃQA˜ç«/AlLÃQA˜Û«/AlL`ÃQA˜!¬/AlL ÃQA˜d¬/AlLp ÃQA˜€Ê¬/AlL ÃQA˜%­/AlL`ÃQA˜€‘­/AlL€ÃQA˜±®/AlL@ÃQA˜€x¯/AlLà%ÃQA˜W±/AlL€BÃQA˜€¿²/AlLàLÃQA˜ç²/AlLUÃQA˜ç²/AlL`\ÃQA˜vµ/AlLàoÃQA˜q¶/AlLà{ÃQA˜‡·/AlLÃQA˜ ·/AlLÀŽÃQA˜â·/AlLÀ“ÃQA˜€Œ¸/AlLàžÃQA˜€t¹/AlL€¬ÃQA˜ò¹/AlL µÃQA˜€7º/AlL€¾ÃQA˜€º/AlLÉÃQA˜€Üº/AlL ØÃQA˜€»/AlL`ÝÃQA˜€1»/AlL ãÃQA˜X»/AlL€èÃQA˜­»/AlLÀêÃQA˜î»/AlL ñÃQA˜À¼/AlL€öÃQA˜X¼/AlL üÃQA˜€§¼/AlL@ÄQA˜€L½/AlL ÄQA˜€Š½/AlL  ÄQA˜€·½/AlL@ÄQA˜ݽ/AlLÄQA˜¾/AlL€ ÄQA˜ ¾/AlL )ÄQA˜€<¾/AlLà/ÄQA˜O¾/AlLÀ7ÄQA˜€V¾/AlLÀ:ÄQA˜€h¾/AlL AÄQA˜…¾/AlLIÄQA˜´¾/AlL€NÄQA˜Ǿ/AlLàPÄQA˜+¿/AlL@SÄQA˜@¿/AlL SÄQA˜x¿/AlL\ÄQA˜£¿/AlLÐ_ÄQA˜€Ö¿/AlL@\ÄQA˜&À/AlL]ÄQA˜€oÀ/AlLà[ÄQA˜€ÇÀ/AlL [ÄQA˜€1Á/AlLÀ]ÄQA˜€jÁ/AlL`ÄQA˜ Á/AlL hÄQA˜ÐÁ/AlLÀlÄQA˜€"Â/AlLÀsÄQA˜lÂ/AlLyÄQA˜­Â/AlLÀ~ÄQA˜øÂ/AlL†ÄQA˜6Ã/AlL ÄQA˜yÃ/AlLÀ’ÄQA˜ÀÃ/AlL ™ÄQA˜€õÃ/AlL ¢ÄQA˜Ä/AlL€­ÄQA˜€UÄ/AlL`µÄQA˜pÄ/AlL »ÄQA˜•Ä/AlLÁÄQA˜¿Ä/AlL`ÈÄQA˜êÄ/AlLÀÑÄQA˜€@Å/AlL`ÝÄQA˜vÅ/AlL`æÄQA˜€ÐÅ/AlL@÷ÄQA˜Æ/AlL`ÅQA˜!Æ/AlL  ÅQA˜€NÆ/AlLÅQA˜=Ç/AlL ÅQA˜yÇ/AlLàÅQA˜·Ç/AlL ÿÄQA˜èÇ/AlL@úÄQA˜È/AlL ôÄQA˜8È/AlL@íÄQA˜€‡È/AlLõÄQA˜€EÎ/AlL€­ÄQA˜€ˆÎ/AlL@«ÄQA˜äÎ/AlLà©ÄQA˜€Ï/AlL€¥ÄQA˜eÏ/AlL`žÄQA˜—Ï/AlL ›ÄQA˜ÜÏ/AlL`šÄQA˜EÐ/AlL šÄQA˜¬Ð/AlL€™ÄQA˜ÆÑ/AlLÀ[ÄQA˜€Ò/AlL€RÄQA˜CÒ/AlLàSÄQA˜Ò/AlLà[ÄQA˜€“Ò/AlL`bÄQA˜€œÒ/AlL kÄQA˜€­Ò/AlL`jÄQA˜€Ó/AlL[ÄQA˜”Ó/AlLà`ÄQA˜×Ó/AlLÀcÄQA˜4Ô/AlL iÄQA˜nÔ/AlL nÄQA˜»Ô/AlL xÄQA˜€ÍÕ/AlL ÄQA˜ Ö/AlL`šÄQA˜Ö/AlL€ ÄQA˜ßÖ/AlL ¤ÄQA˜1×/AlLà¢ÄQA˜€|×/AlL™ÄQA˜Ê×/AlL ÄQA˜`Ø/AlLàŠÄQA˜½Ø/AlLà…ÄQA˜€ùØ/AlLà{ÄQA˜Ù/AlL sÄQA˜€~Ù/AlL@~ÄQA˜¶Ù/AlL‡ÄQA˜ôÙ/AlLàŽÄQA˜€BÚ/AlL ’ÄQA˜¥Ú/AlL@–ÄQA˜€öÚ/AlL€ŸÄQA˜~Û/AlL@©ÄQA˜ÎÛ/AlL²ÄQA˜Ü/AlL°µÄQA˜€aÜ/AlL€³ÄQA˜¨Ü/AlLà³ÄQA˜€£Ü/AlL »ÄQA˜ÌÜ/AlL ÉÄQA˜Ý/AlL ÏÄQA˜€ÏÜ/AlL íÄQA˜Ý/AlL õÄQA˜€3Ý/AlL€ùÄQA˜lÝ/AlL ÅQA˜aÝ/AlL`ÅQA˜pÝ/AlLÀÅQA˜rÝ/AlLà$ÅQA˜ Ý/AlLÀ/ÅQA˜ßÝ/AlL 5ÅQA˜€,Þ/AlL >ÅQA˜tÞ/AlL€GÅQA˜•Þ/AlLàMÅQA˜€«Þ/AlL`WÅQA˜€§Þ/AlL ^ÅQA˜ÀÞ/AlL hÅQA˜€³Þ/AlL`tÅQA˜|Þ/AlL€~ÅQA˜ãÞ/AlL`‡ÅQA˜1ß/AlLàÅQA˜wß/AlL˜ÅQA˜€¤ß/AlL@œÅQA˜„ß/AlL€¤ÅQA˜à/AlL ¸ÅQA˜€9à/AlL€ÀÅQA˜?à/AlL ÈÅQA˜Bà/AlL ÎÅQA˜€Eà/AlLÀÕÅQA˜Fà/AlLÀÜÅQA˜_à/AlLàãÅQA˜qà/AlL@éÅQA˜ªà/AlLÀïÅQA˜çà/AlL`õÅQA˜ á/AlLÀüÅQA˜2á/AlLÀÆQA˜€rá/AlL ÆQA˜²á/AlLÆQA˜â/AlLàÆQA˜Kâ/AlL@ùÅQA˜€—â/AlLàøÅQA˜€Åâ/AlLÀòÅQA˜Üâ/AlL êÅQA˜Hã/AlLàìÅQA˜‰ã/AlLàìÅQA˜Îã/AlLîÅQA˜þã/AlLÀôÅQA˜?ä/AlLàþÅQA˜€gä/AlLÆQA˜€ä/AlL  ÆQA˜šä/AlL€ÆQA˜€¸ä/AlL`ÆQA˜å/AlLà ÆQA˜Bå/AlL 'ÆQA˜€xå/AlL 1ÆQA˜€ƒå/AlL€:ÆQA˜€µå/AlL°DÆQA˜€æ/AlLpAÆQA˜€zæ/AlL@IÆQA˜Ææ/AlL@OÆQA˜€ôæ/AlLÀYÆQA˜aç/AlL@dÆQA˜©ç/AlL hÆQA˜äç/AlL hÆQA˜€Wè/AlL mÆQA˜ è/AlL uÆQA˜Íè/AlL@}ÆQA˜.é/AlL „ÆQA˜qé/AlL€†ÆQA˜€Œé/AlLðˆÆQA˜Âé/AlLŽÆQA˜éé/AlL “ÆQA˜&ê/AlL@˜ÆQA˜yê/AlLÀ©ÆQA˜€±ê/AlLà³ÆQA˜€Çê/AlL`ÂÆQA˜€ãê/AlL€ÑÆQA˜$ë/AlLà߯QA˜¥ë/AlLÀæÆQA˜ì/AlLîÆQA˜…ì/AlL úÆQA˜âì/AlL@ÇQA˜|í/AlL`ÇQA˜€ïí/AlLÇQA˜‹î/AlLÀ.ÇQA˜€üî/AlL@8ÇQA˜Lï/AlL€DÇQA˜vï/AlLÀPÇQA˜Çï/AlLp^ÇQA˜Þï/AlL€bÇQA˜Xï/AlL vÇQA˜úï/AlL€ŠÇQA˜€$ï/AlL¨ÇQA˜ßî/AlL@­ÇQA˜‹î/AlL­ÇQA˜€4î/AlL¬ÇQA˜2í/AlL`ÀÇQA˜øì/AlL ÇÇQA˜×ì/AlL`ÕÇQA˜Æì/AlL éÇQA˜€Çì/AlLÀøÇQA˜Ëì/AlL ÈQA˜Ùì/AlLàÈQA˜ãì/AlL@$ÈQA˜í/AlL`0ÈQA˜€uí/AlL°AÈQA˜€^î/AlL 4ÈQA˜äî/AlLà6ÈQA˜€qï/AlL =ÈQA˜äï/AlLàDÈQA˜Rð/AlL PÈQA˜âð/AlLÀcÈQA˜Rñ/AlL`vÈQA˜€žñ/AlL ‚ÈQA˜Öñ/AlLÈQA˜€ò/AlL€˜ÈQA˜€dò/AlLÈQA˜€˜ò/AlLžÈQA˜èò/AlL`šÈQA˜ðò/AlL@”ÈQA˜Dó/AlL`ŽÈQA˜€ró/AlL€ŠÈQA˜€žó/AlL ‡ÈQA˜Öó/AlL †ÈQA˜€#ô/AlL@…ÈQA˜pô/AlLˆÈQA˜€½ô/AlLà‹ÈQA˜õ/AlLà‘ÈQA˜Úõ/AlL ¡ÈQA˜€êõ/AlL`¤ÈQA˜€.ö/AlL ²ÈQA˜¾ö/AlLÃÈQA˜ò÷/AlLÀñÈQA˜äø/AlLàôÈQA˜‰ù/AlL€ÉQA˜Ùù/AlLðÉQA˜ÿù/AlL@ÉQA˜€Œú/AlL #ÉQA˜Ñû/AlLÀ)ÉQA˜çû/AlL€2ÉQA˜€óû/AlL`6ÉQA˜3ü/AlLÀMÉQA˜ ý/AlL€_ÉQA˜ªþ/AlL€wÉQA˜€ˆÿ/AlL…ÉQA˜€šÿ/AlLÀÉQA˜€‰ÿ/AlLÀœÉQA˜íÿ/AlL¯ÉQAÌÀ0AlL€µÉQAÌ20AlLà¼ÉQAÌS0AlL€ÁÉQAÌ}0AlLÀÅÉQAÌÀ÷0AlL ÉÉQAÌû0AlLðËÉQAÌÀ0AlLpÌÉQAÌÀ+0AlL ÌÉQAÌÀ.0AlLpÎÉQAÌÀH0AlLÑÉQAÌ€\0AlL`àÉQAÌ€0AlL@ÞÉQAÌÀ¸0AlL ÜÉQAÌÀØ0AlLëÉQAÌï0AlL`ñÉQAÌ@ñ0AlLpúÉQAÌí0AlLðÊQAÌ@ò0AlL@ÊQAÌm0AlL`ÊQAÌ@¯0AlLÊQAÌ@Ü0AlLÀóÉQAÌô0AlL`ìÉQAÌÀ0AlL`âÉQA&¸˜õ.AlL`-°QA˜ðT/AlLh€½QAt˜·/AlL@C½QA˜ /AlL@=½QA˜€|/AlL`>½QA˜Ö/AlL@=½QA˜t/AlLÀ,½QA˜Þ/AlL ½QA˜€$/AlL`½QA˜€{/AlL€½QA˜€r!/AlL x¼QA˜€½!/AlLÀl¼QA˜ "/AlL@^¼QA˜€A"/AlL P¼QA˜€U"/AlLàH¼QA˜k"/AlL@@¼QA˜€n"/AlL 2¼QA˜€…"/AlL€&¼QA˜€Õ"/AlL ¼QA˜€:#/AlLÀ ¼QA˜¹#/AlL€ø»QA˜M$/AlLàç»QA˜â$/AlL`Ú»QA˜€Q%/AlLÀлQA˜€¿%/AlLàûQA˜"&/AlL@¹»QA˜€ð&/AlL°¤»QA˜F'/AlL œ»QA˜*/AlLÀZ»QA˜€H*/AlLàZ»QA˜€¡*/AlL O»QA˜€–,/AlLÀ#»QA˜€Ç,/AlL`»QA˜€-/AlL »QA˜€g-/AlLà »QA˜·-/AlLà»QA˜€./AlL€üºQA˜€y./AlLàðºQA˜€Õ./AlL èºQA˜€//AlL@ܺQA˜r//AlL ÓºQA˜€À//AlL€ËºQA˜€0/AlL ÅºQA˜€q0/AlLÀººQA˜Þ0/AlL಺QA˜€+1/AlL€­ºQA˜1/AlL`¨ºQA˜€ú1/AlLœºQA˜v2/AlL€–ºQA˜€ø2/AlL`ºQA˜€E4/AlL@„ºQA˜€÷4/AlL@…ºQA˜˜5/AlLà…ºQA˜"6/AlLàŠºQA˜€ž6/AlL@ºQA˜ü6/AlL ’ºQA˜œ7/AlLÀ’ºQA˜E8/AlL€’ºQA˜€9/AlL`ºQA˜”9/AlL ŠºQA˜ô9/AlL ‡ºQA˜;:/AlL€†ºQA˜¨:/AlL€…ºQA˜ñ:/AlLà‡ºQA˜€(;/AlL`‰ºQA˜€.=/AlL@}ºQA˜µ=/AlLàyºQA˜€%>/AlL zºQA˜€>/AlL@xºQA˜€þ>/AlL@wºQA˜€o?/AlLÀvºQA˜€Ö?/AlL vºQA˜€;@/AlL@uºQA˜€‹@/AlLuºQA˜Ã@/AlLpuºQA˜–F/AlLàݸQA˜€kG/AlL€£¸QA˜€I/AlLP4¸QA˜J/AlLï·QA˜"J/AlLPä·QA˜€'J/AlL â·QA˜€&J/AlL€Î·QA˜€>J/AlL Ä·QA˜€]J/AlL »·QA˜€tJ/AlL€¯·QA˜€…J/AlLÀ¦·QA˜ÌJ/AlL ¢·QA˜(K/AlL@¤·QA˜lK/AlLÀ™·QA˜€ K/AlLà”·QA˜óK/AlL ’·QA˜@L/AlL‘·QA˜‹L/AlLà·QA˜€ÒL/AlLÀŠ·QA˜€ñL/AlL€…·QA˜&M/AlL }·QA˜ˆM/AlLx·QA˜ÊM/AlL€t·QA˜'N/AlL`t·QA˜€êN/AlL`6·QA˜ O/AlL ,·QA˜?O/AlL€ ·QA˜€hO/AlL ·QA˜~O/AlL€ ·QA˜€ÄO/AlL ñ¶QA˜ñO/AlL@ì¶QA˜€FP/AlLä¶QA˜€µP/AlL ß¶QA˜Q/AlL`ضQA˜¶QA˜P/AlL ;¶QA˜ÞO/AlL0¶QA˜¼O/AlL€+¶QA˜RO/AlL€*¶QA˜O/AlL%¶QA˜€åN/AlL@¶QA˜²N/AlL@¶QA˜€jN/AlLà ¶QA˜ÿM/AlL ¶QA˜‹M/AlL ¶QA˜ M/AlLÀýµQA˜L/AlLÀùµQA˜(L/AlL`÷µQA˜€àK/AlL@îµQA˜¦K/AlL€äµQA˜€vK/AlLßµQA˜)K/AlL€ÝµQA˜ÂJ/AlL`ÚµQA˜tJ/AlL@ÙµQA˜€'J/AlLÚµQA˜³I/AlL@ÙµQA˜€WI/AlL€×µQA˜€I/AlL`ÚµQA˜€ÄH/AlL€ÞµQA˜‚H/AlL`ßµQA˜€!H/AlL@ßµQA˜ºG/AlL àµQA˜wG/AlL áµQA˜G/AlL çµQA˜€ÇF/AlLàéµQA˜€ˆF/AlL`ëµQA˜€>F/AlLîµQA˜€ùE/AlL`òµQA˜­E/AlLöµQA˜€bE/AlLàùµQA˜E/AlL@ÿµQA˜€ÁD/AlL¶QA˜‹D/AlL€¶QA˜€dD/AlL ÷µQA˜D/AlL îµQA˜¦C/AlL`çµQA˜QC/AlL ÝµQA˜€"C/AlL еQA˜ C/AlL@ƵQA˜)C/AlL€²µQA˜€C/AlL¨µQA˜ÜB/AlL`–µQA˜€B/AlL ƒµQA˜€TB/AlL@pµQA˜êA/AlL VµQA˜€‰A/AlLÀDµQA˜€7A/AlLÀ<µQA˜ä@/AlL@4µQA˜€—@/AlL&µQA˜p@/AlL€µQA˜€$@/AlLÀ µQA˜×?/AlLö´QA˜¤?/AlL@é´QA˜€w?/AlLÀÚ´QA˜€F?/AlLδQA˜?/AlLÄ´QA˜»>/AlLà·´QA˜€¡>/AlL ª´QA˜€”>/AlLàœ´QA˜€v>/AlLà‘´QA˜€b>/AlL`‡´QA˜r>/AlLày´QA˜Œ>/AlL r´QA˜”>/AlL k´QA˜²>/AlLàe´QA˜Ï>/AlL _´QA˜º>/AlL`W´QA˜€š>/AlLR´QA˜X>/AlL`D´QA˜€2>/AlL8´QA˜€>/AlLà(´QAHøc–þ=/A®ùiž´QA˜€ò=/AlL´QA˜ë=/AlL ´QA˜€ç=/AlL ´QA˜€ò=/AlL ´QA˜&>/AlL ´QA˜t>/AlLÀ´QA˜Á>/AlL`´QA˜ò>/AlL ´QA˜Q?/AlL`´QA˜–?/AlLü³QA˜C@/AlL ð³QA˜eA/AlLàÚ³QA˜€A/AlLxسQA˜ˆB/AlL€Ê³QA˜œC/AlL ¾³QA˜E/AlL ¤³QA˜úE/AlLàŽ³QA˜šF/AlL ³QA˜G/AlL p³QA˜€H/AlL H³QA˜€gI/AlL@³QA˜éJ/AlL@ß²QA˜hK/AlL βQA˜èK/AlL ½²QA˜€M/AlL@•²QA˜€ûM/AlLt²QA˜~N/AlLQ²QA˜LO/AlL€#²QA˜P/AlL û±QA˜€AQ/AlLÀÁ±QA˜€~Q/AlL¶±QA˜¡Q/AlL§±QA˜€æQ/AlL€š±QA˜€ïQ/AlLà±QA˜LQ/AlL ±QA˜ÛP/AlL`±QA˜^P/AlL ›±QA˜P/AlL@™±QA˜”O/AlL œ±QA˜€NO/AlL@¡±QA˜€ O/AlL £±QA˜´N/AlL`¤±QA˜€ŠN/AlL`ª±QA˜€NN/AlLà´±QA˜€/N/AlL º±QA˜€ÝM/AlLÀÀ±QA˜€{M/AlL`ƱQA˜€$M/AlLàÆ±QA˜ÈL/AlL Ã±QA˜€“L/AlL À±QA˜€SL/AlL€¸±QA˜€L/AlLà³±QA˜€³K/AlL€¯±QA˜€RK/AlL଱QA˜€K/AlL€ª±QA˜lJ/AlLࣱQA˜€ìI/AlL€ž±QA˜|I/AlL@š±QA˜,I/AlLÀ•±QA˜€æH/AlL ±QA˜¹H/AlLŒ±QA˜€tH/AlL`„±QA˜,H/AlLà€±QA˜›G/AlLà€±QA˜PG/AlL@‚±QA˜G/AlLP±QA˜öF/AlL@~±QA˜€¾F/AlLÀx±QA˜€yF/AlL v±QA˜@F/AlLÀq±QA˜€F/AlL@n±QA˜€£E/AlL`i±QA˜hE/AlL d±QA˜E/AlL^±QA˜·D/AlL@`±QA˜€YD/AlLàW±QA˜óC/AlL@P±QA˜¼C/AlL@J±QA˜lC/AlLÀB±QA˜2C/AlLà:±QA˜€½B/AlL 3±QA˜DB/AlL€-±QA˜ßA/AlL *±QA˜€ŠA/AlL '±QA˜€A/AlL !±QA˜€ì@/AlLÀ±QA˜@/AlL±QA˜5@/AlL ±QA˜€å?/AlL ±QA˜­?/AlL€ ±QA˜€m?/AlL€*±QA˜€ ?/AlL 1±QA˜€¦>/AlL4±QA˜€U>/AlL2±QA˜ó=/AlLÀ1±QA˜¢=/AlL€6±QA˜€^=/AlL<±QA˜Ô±QA˜€R±QA˜€'9/AlL`=±QA˜€É8/AlLÀ?±QA˜€¦8/AlLÀD±QA˜€¿8/AlL Y±QA˜e8/AlL \±QA˜€7/AlL€b±QA˜É6/AlLf±QA˜€ 6/AlLàe±QA˜]5/AlL f±QA˜4/AlL g±QA˜á3/AlL i±QA˜h3/AlLÀi±QA˜ü2/AlLàl±QA˜Ì2/AlL€o±QA˜~2/AlLàr±QA˜Ý1/AlL@v±QA˜m1/AlLÀt±QA˜ú0/AlLÀr±QA˜d0/AlL p±QA˜€è//AlL€n±QA˜b//AlL`m±QA˜€Ò./AlLàg±QA˜|./AlL€`±QA˜€:./AlL`T±QA˜ÿ-/AlLàN±QA˜€Ÿ-/AlLÀI±QA˜h-/AlLH±QA˜€-/AlL C±QA˜—,/AlL <±QA˜B,/AlL 7±QA˜€Æ+/AlL@-±QA˜€+/AlL@)±QA˜.+/AlLà%±QA˜€Ý*/AlLà!±QA˜€œ*/AlL±QA˜€F*/AlLÀ±QA˜ù)/AlL ±QA˜€»)/AlL€±QA˜d)/AlL€±QA˜Ð(/AlL`ÿ°QA˜€{(/AlL ø°QA˜€3(/AlL`ó°QA˜€Õ'/AlL î°QA˜€T'/AlL`ä°QA˜€ '/AlLÀÞ°QA˜´&/AlL€Ù°QA˜€d&/AlLÀ×°QA˜€&/AlLÀÖ°QA˜Ø%/AlL@Ö°QA˜€¨%/AlL Õ°QA˜x%/AlL`Ò°QA˜6%/AlLʰQA˜%/AlLÀÀ°QA˜å$/AlL€¼°QA˜š$/AlL º°QA˜€g$/AlL`º°QA˜€$/AlL ¹°QA˜€´#/AlL`·°QA˜€[#/AlL´°QA˜#/AlL «°QA˜€³"/AlL€°QA˜€G"/AlLÀ”°QA˜€þ!/AlL€Ž°QA˜¡!/AlL@°QA˜€Y!/AlL ‹°QA˜å /AlLÀ†°QA˜€h /AlL`ƒ°QA˜Ö/AlL °QA˜\/AlL@v°QA˜€ÿ/AlL`k°QA˜€¥/AlL c°QA˜A/AlL`\°QA˜€¾/AlL€W°QA˜V/AlLàW°QA˜€µ/AlL O°QA˜=/AlL L°QA˜/AlLG°QA˜€õ/AlL`@°QA˜‚/AlL ;°QA˜"/AlL@6°QA˜æ/AlL2°QA˜d/AlL`-°QA˜€+/AlLà-°QA˜/AlL/°QA˜€^/AlLà?°QA˜G/AlL`@°QA˜€9/AlL°@°QA˜/AlLàA°QA˜€>/AlL@K°QA˜ƒ/AlL S°QA˜€/AlLà]°QA˜r/AlL k°QA˜Ï/AlL`v°QA˜÷/AlLÀ‚°QA˜€”/AlLÀ‰°QA˜€y/AlL Š°QA˜/AlL€Ž°QA˜€#/AlL–°QA˜€…/AlL@˜°QA˜î/AlL`™°QA˜X/AlL ž°QA˜€¯/AlL ¡°QA˜G /AlL ª°QA˜â /AlLÀ®°QA˜m /AlLÀµ°QA˜€å /AlL º°QA˜G /AlL¾°QA˜Å /AlL ¿°QA˜; /AlLİQA˜ñ /AlL Ë°QA˜š /AlLàÛ°QA˜b /AlL@æ°QA˜Q /AlL€õ°QA˜] /AlL`±QA˜d /AlL@ ±QA˜6 /AlL ±QA˜€ /AlL ±QA˜Ï/AlL &±QA˜s/AlL 4±QA˜€/AlL >±QA˜Ô/AlL F±QA˜„/AlLÀP±QA˜€m/AlL`[±QA˜€L/AlL`d±QA˜å/AlLÀw±QA˜€§/AlL@„±QA˜€c/AlL –±QA˜*/AlL Ÿ±QA˜€Î/AlL «±QA˜¨/AlL º±QA˜€z/AlL`DZQA˜€J/AlL@Ù±QA˜4/AlL`á±QA˜ñ/AlL í±QA˜§/AlLÀï±QA˜€M/AlLÀñ±QA˜€ï/AlL`÷±QA˜×/AlL@ÿ±QA˜€²/AlL²QA˜€‚/AlLà ²QA˜H/AlL ²QA˜/AlL€²QA˜€À/AlL ,²QA˜/AlL€6²QA˜j/AlL@=²QA˜/AlL7²QA˜€ô/AlLà4²QA˜‰/AlLÀ²QA˜€H/AlL ²QA˜/AlL ²QA˜ç/AlLÀú±QA˜/AlL²QA˜âÿ.AlL€²QA˜€\ÿ.AlLà²QA˜Ðþ.AlL#²QA˜Îý.AlL 2²QA˜ ý.AlL=²QA˜Cü.AlL@I²QA˜€Øû.AlL L²QA˜¾ø.AlL h²QA˜€ù.AlL Š²QA˜2ù.AlL ‘²QA˜Bù.AlLà˜²QA˜Bù.AlL £²QA˜7ù.AlL ¬²QA˜€)ù.AlL¶²QA˜ ù.AlL Å²QA˜€Üø.AlLɲQA˜ªø.AlLɲQA˜yø.AlLàʲQA˜€:ø.AlLàβQA˜ø.AlLàÒ²QA˜Ì÷.AlL Ö²QA˜€•÷.AlLÚ²QA˜(÷.AlL@Þ²QA˜€æö.AlLݲQA˜Ëö.AlLزQA˜€žö.AlLβQA˜„ö.AlL€Ä²QA˜wö.AlL@º²QA˜€Yö.AlL¯²QA˜8ö.AlL ©²QA˜€ö.AlL`¨²QA˜Çõ.AlL®²QA˜”õ.AlL`½²QA˜õ.AlL`ʲQA˜€•õ.AlL@زQA˜§õ.AlL€ã²QA˜Ýõ.AlL ý²QA˜ö.AlL@³QA˜jö.AlL€(³QA˜€µö.AlL€7³QA˜÷.AlL€F³QA˜€†÷.AlLN³QA˜ú÷.AlLT³QA˜„ø.AlLÀ[³QA˜ðø.AlLÀ`³QA˜mù.AlL `³QA˜€Çù.AlL``³QA˜nú.AlL d³QA˜û.AlL@e³QA˜€’û.AlLÀq³QA˜«û.AlLÀ{³QA˜€Çû.AlL ³QA˜€Åû.AlL`˜³QA˜û.AlL Ÿ³QA˜\û.AlL@¨³QA˜û.AlLÀ¬³QA˜€¯ú.AlL`²³QA˜Xú.AlL ·³QA˜ú.AlL€½³QA˜€µù.AlL€Á³QA˜€^ù.AlLƳQA˜€ ù.AlLɳQA˜Ñø.AlLàͳQA˜žø.AlLÓ³QA˜zø.AlL Ù³QA˜€_ø.AlL@å³QA˜]ø.AlL@í³QA˜gø.AlLÀô³QA˜€lø.AlL@ù³QA˜€ø.AlL  ´QA˜”ø.AlL` ´QA˜€µø.AlLh´QA˜€¹ø.AlL ´QA˜€Ëø.AlL€&´QA˜ìø.AlL`.´QA˜ ù.AlLÀ3´QA˜€'ù.AlL°8´QA˜€Jù.AlL@?´QA˜}ù.AlL€F´QA˜€°ù.AlLÀK´QA˜Ýù.AlLàQ´QA˜€!ú.AlL Y´QA˜€cú.AlLe´QA˜ú.AlLj´QA˜€û.AlLàm´QA˜xû.AlL@q´QA˜Àû.AlL r´QA˜%ü.AlLu´QA˜€‰ü.AlL u´QA˜€ý.AlLÀr´QA˜aý.AlL@q´QA˜»ý.AlLÀq´QA˜'þ.AlL s´QA˜Tþ.AlL0u´QA˜€˜þ.AlL@x´QA˜ ÿ.AlL@{´QA˜bÿ.AlL€{´QA˜›ÿ.AlL z´QA˜&/AlL |´QA˜X/AlLà´QA˜€d/AlL@ˆ´QA˜c/AlL’´QA˜X/AlL@›´QA˜€//AlL€¢´QA˜þÿ.AlL ¬´QA˜€óÿ.AlL@´´QA˜Ùÿ.AlLà¿´QA˜Ñÿ.AlL Í´QA˜€±ÿ.AlL@Þ´QA˜€„ÿ.AlL`ê´QA˜€bÿ.AlL`ñ´QA˜(ÿ.AlL`ø´QA˜ôþ.AlLÿ´QA˜Ëþ.AlLÀ µQA˜‰þ.AlL µQA˜€[þ.AlLàµQA˜ þ.AlLàµQA˜€Üý.AlL€#µQA˜Šý.AlLà*µQA˜Ný.AlL 1µQA˜8ý.AlL@;µQA˜?ý.AlL KµQA˜‚ý.AlLÀUµQA˜¼ý.AlL`\µQA˜€ñý.AlLàeµQA˜þ.AlLkµQA˜£þ.AlL€zµQA˜ºþ.AlL€€µQA˜€Ôþ.AlL‡µQA˜€!ÿ.AlL@‰µQA˜—ÿ.AlL€ŽµQA˜€°ÿ.AlLÀ“µQA˜íÿ.AlL žµQA˜€ /AlL`£µQA˜€1/AlLÀ¬µQA˜€Q/AlLà³µQA˜|/AlL@ºµQA˜¶/AlL¿µQA˜€Ü/AlLPÀµQA˜€./AlL õQA˜€t/AlLÀõQA˜¬/AlLŵQA˜å/AlLǵQA˜G/AlL ÏµQA˜€˜/AlLàÔµQA˜Í/AlL`×µQA˜€)/AlL ÛµQA˜t/AlL€ßµQA˜ /AlLÀãµQA˜Ø/AlLÀêµQA˜/AlL`òµQA˜ð/AlL@ýµQA˜€¼/AlLà¶QA˜ˆ/AlL ¶QA˜€N/AlL¶QA˜%/AlL€¶QA˜/AlLð¶QA˜€/AlL@%¶QA˜À/AlLà+¶QA˜•/AlLà4¶QA˜m/AlL@;¶QA˜)/AlL€B¶QA˜è/AlL@J¶QA˜€³/AlL U¶QA˜“/AlL ]¶QA˜”/AlLàe¶QA˜€Õ/AlLÀr¶QA˜/AlLÀy¶QA˜€]/AlL€~¶QA˜€¢/AlL …¶QA˜/AlL ‘¶QA˜¼/AlLÀš¶QA˜,/AlL€¢¶QA˜h/AlL`§¶QA˜€u/AlL€¯¶QA˜€z/AlL ¼¶QA˜/AlL`ƶQA˜£/AlLÀͶQA˜€±/AlL@Û¶QA˜€Ä/AlL€ç¶QA˜Ú/AlL@ó¶QA˜€/AlL·QA˜@/AlLÀ ·QA˜€ˆ/AlL€·QA˜€ø/AlL€·QA˜€†/AlL"·QA˜€Ù/AlL€!·QA˜/AlL€·QA˜€>/AlL€·QA˜ˆ/AlLà·QA˜½/AlL€·QA˜/AlL@·QA˜€t/AlL`·QA˜€Á/AlL ·QA˜ /AlL /·QA˜€] /AlL€H·QA˜x /AlL U·QA˜ /AlLàe·QA˜€ª /AlL€r·QA˜¼ /AlLÀ·QA˜€Ù /AlL@‘·QA˜€ã /AlL€œ·QA˜ /AlL@¦·QA˜: /AlLÀª·QA˜f /AlLà§·QA˜7 /AlLà ·QA˜€¤ /AlL Ÿ·QA˜ /AlL  ·QA˜€j /AlL ¨·QA˜€t /AlLð¨·QA°gT|“ /A\ÒÉX«·QA˜´ /AlLà­·QA˜Þ /AlL€´·QA˜ë /AlL ·QA˜€ñ /AlL0Æ·QA˜ /AlL€Ð·QA˜€ü /AlLÀÛ·QA˜€ù /AlL@è·QA˜€ã /AlL ï·QA˜¡ /AlL ö·QA˜€w /AlLÀü·QA˜N /AlL@ ¸QA˜ /AlL`¸QA˜ /AlL'¸QA˜€ /AlL`-¸QA˜ /AlLÀ1¸QA˜ /AlLà@¸QA˜ /AlL€O¸QA˜5 /AlL`V¸QA˜ /AlLÀZ¸QA˜Ö /AlLà]¸QA˜% /AlL `¸QA˜z /AlL@_¸QA˜» /AlL e¸QA˜À /AlL@n¸QA˜€¤ /AlL@t¸QA˜€h /AlLà…¸QA˜j /AlL ޏQA˜h /AlL€”¸QA˜€Z /AlL`›¸QA˜€L /AlL ©¸QA˜8 /AlL@´¸QA˜€ /AlL@¾¸QA˜€ /AlL°Ä¸QA˜€þ /AlL ̸QA˜à /AlL ×¸QA˜€Ø /AlL è¸QA˜ú /AlL`ð¸QA˜€ /AlL ò¸QA˜€‰ /AlL`þ¸QA˜À /AlLà¹QA˜€Í /AlLp¹QA˜€ /AlL`¹QA˜€N/AlL¹QA˜3/AlLà(¹QA˜€ü /AlL /¹QA˜Ì /AlL@7¹QA˜° /AlL@>¹QA˜€„ /AlL@K¹QA˜i /AlL X¹QA˜€W /AlLb¹QA˜€8 /AlL€n¹QA˜€S /AlL@t¹QA˜{ /AlLÀ|¹QA˜Á /AlL ˆ¹QA˜€ú /AlLÀ¹QA˜€:/AlL@˜¹QA˜€n/AlL€œ¹QA˜«/AlL@ ¹QA˜€Ù/AlL ›¹QA˜€/AlL@•¹QA˜€0/AlL ¹QA˜€b/AlLйQA˜€¦/AlL`ƒ¹QA˜€Ü/AlL„¹QA˜€%/AlLÀ‰¹QA˜B/AlL”¹QA˜+/AlLàœ¹QA˜/AlL`¥¹QA˜€É/AlL`·¹QA˜À/AlL ¹¹QA˜€‘/AlL€Á¹QA˜q/AlLàÔ¹QA˜u/AlL`Û¹QA˜·/AlLÀæ¹QA˜/AlL ò¹QA˜J/AlLü¹QA˜V/AlLPþ¹QA˜¨/AlLàºQA˜€/AlL ºQA˜R/AlL&ºQA˜€|/AlLà3ºQA˜€™/AlL€=ºQA˜¬/AlL@GºQA˜k/AlLTºQA˜€$/AlL ^ºQA˜á/AlLàcºQA˜ƒ/AlLÀiºQA˜Æ/AlLÀtºQA˜;/AlL~ºQA˜Ñ/AlL†ºQA˜­/AlL€”ºQA˜€Ö/AlL  ºQA˜ø/AlLÀ¥ºQA˜4/AlL€¥ºQA˜€u/AlL@£ºQA˜Ì/AlL€œºQA˜)/AlLà›ºQA˜e/AlL`œºQA˜Ä/AlL ›ºQA˜ý/AlL`™ºQA˜€4/AlL ”ºQA˜`/AlL ‡ºQA˜o/AlLÀ~ºQA˜‹/AlLxºQA˜š/AlLPvºQA˜º/AlL rºQA˜€è/AlL@oºQA˜ÿ/AlL mºQA˜€#/AlLoºQA˜2/AlL`pºQA˜q/AlLPxºQA˜Ÿ/AlL ~ºQA˜€â/AlL@ŠºQA˜/AlLà™ºQA˜ /AlL€¤ºQA˜€/AlL`¬ºQA˜€/AlL@¶ºQA˜/AlL`¾ºQA˜ /AlL˺QA˜€/AlLܺQA˜:/AlLÀæºQA˜D/AlLpèºQA˜€}/AlL@òºQA˜€Ö/AlLàÿºQA˜;/AlL»QA˜†/AlLÀ»QA˜€³/AlL$»QA˜€×/AlL ,»QA˜€è/AlL@4»QA˜ò/AlLà8»QA˜/AlLÀ@»QA˜ /AlL H»QA˜./AlLÀO»QA˜€/AlL€[»QA˜€Ó/AlLàd»QA˜¯/AlL p»QA˜€_/AlL€y»QA˜Ñ/AlL€»QA˜O/AlLà…»QA˜è/AlL »QA˜¥/AlL@–»QA˜/AlL`œ»QA˜/AlLà®»QA˜€¨/AlL@º»QA˜Û/AlL€Å»QA˜/AlLÀÈ»QA˜‘/AlLàÊ»QA˜/AlL`Ê»QA˜]/AlLàÈ»QA˜€Á/AlL€É»QA˜(/AlL É»QA˜ˆ/AlL Ñ»QA˜³/AlL€Ú»QA˜Å/AlL@â»QA˜€Ï/AlL0é»QA˜/AlL¼QA˜€/AlLÀ ¼QA˜;/AlLà.¼QA˜€k/AlL =¼QA˜«/AlLE¼QA˜€É/AlLÀH¼QA˜€Û/AlLÐK¼QA˜€ /AlL S¼QA˜A/AlL@`¼QA˜r/AlL@j¼QA˜€¿/AlL€v¼QA˜ø/AlL€„¼QA˜'/AlL ¼QA˜-/AlL ‘¼QA˜>/AlL@¡¼QA˜7/AlL ¹¼QA˜/AlL`ļQA˜€þ/AlL€Ë¼QA˜€/AlL`Ô¼QA˜€þ/AlL à¼QA˜ä/AlL ç¼QA˜€Ù/AlL ô¼QA˜€Ú/AlLÀ½QA˜þ/AlLà ½QA˜€/AlL€½QA˜/AlL@½QA˜€Ö/AlL`$½QA˜€³/AlL )½QA˜”/AlL€,½QA˜€q/AlL /½QA˜€B/AlL€1½QA˜ý/AlL`6½QA˜Ä/AlL ;½QA˜€€/AlL`A½QA˜€m/AlLG½QA˜e/AlLàM½QA˜€c/AlLPV½QA˜c/AlL€Y½QA˜€r/AlL`a½QA˜€ˆ/AlL`h½QA˜€–/AlLàp½QA˜¡/AlL€y½QA˜¯/AlL|½QA˜Ä/AlLh€½QA˜0/AlLÀ|½QA˜€z/AlLàx½QA˜€Ü/AlL v½QA˜·/AlL@C½QA'3¾˜€ç=/AlL /ŸQAÌÀ-0AlL€¬·QAtúN˜€8k/AlL A·QA˜€wk/AlLÀ5·QA˜Ák/AlLà/·QA˜€ók/AlL)·QA˜€l/AlL #·QA˜\l/AlLà·QA˜€ol/AlLà·QA˜€Þl/AlL·QA˜]m/AlL`·QA˜Æm/AlLÀ·QA˜€.n/AlL ·QA˜€~n/AlL ·QA˜€¹n/AlLÀ·QA˜€õn/AlLû¶QA˜€o/AlLö¶QA˜€io/AlL@ñ¶QA˜€Éo/AlL€ë¶QA˜4p/AlL è¶QA˜€„p/AlL ã¶QA˜ëp/AlL`ݶQA˜€@q/AlL`×¶QA˜“q/AlLàжQA˜Pr/AlL`öQA˜‚r/AlLÀ¿¶QA˜€ér/AlL๶QA˜=s/AlLà´¶QA˜‰s/AlL€ª¶QA˜Ós/AlL ¥¶QA˜€.t/AlLàž¶QA˜t/AlLà—¶QA˜€Çt/AlL`¶QA˜ñt/AlLà†¶QA˜€u/AlL@|¶QA˜8u/AlL p¶QA˜^u/AlL`f¶QA˜€žu/AlL ^¶QA˜€ôu/AlL`X¶QA˜€Lv/AlL R¶QA˜‚v/AlL@L¶QA˜€¥v/AlL`H¶QA˜³v/AlLðF¶QA˜€Èv/AlL D¶QA˜w/AlL`8¶QA˜€Ew/AlLÀ+¶QA˜{w/AlL€"¶QA˜Æw/AlL`¶QA˜x/AlL€¶QA˜zx/AlL`¶QA˜€Çx/AlL ¶QA˜ y/AlL€¶QA˜€fy/AlL@öµQA˜€«y/AlLîµQA˜þy/AlL ãµQA˜€Oz/AlLÀÖµQA˜€Šz/AlLÀѵQA˜ÿz/AlL€ÊµQA˜b{/AlL ÃµQA˜€Á{/AlL`½µQA˜€%|/AlL€·µQA˜_|/AlLà±µQA˜—|/AlL`§µQA˜ž|/AlL`›µQA˜ž|/AlL”µQA˜€¯|/AlL ŠµQA˜€Ð|/AlL`~µQA˜€}/AlL@wµQA˜€)}/AlL`rµQA˜€o}/AlLàoµQA˜¢}/AlL oµQA˜Ó}/AlLnµQA˜ç}/AlLlµQA˜@~/AlL¨jµQA˜€%~/AlL hµQA˜>~/AlL`fµQA˜t~/AlLà_µQA˜€á~/AlLWµQA˜c/AlL`QµQA˜€­/AlL`GµQA˜€ü/AlL LµQA˜€4€/AlL@SµQA˜•€/AlL@\µQA˜ñ€/AlL`]µQA˜/AlLÀXµQA˜€/AlLÀEµQA˜S/AlLàDµQA˜¹/AlLFµQA˜ð/AlLEµQA˜€‚/AlL ;µQA˜ó/AlL 1µQA˜€ ‚/AlLÀ)µQA˜€X‚/AlL,µQA˜³‚/AlL€(µQA˜ƒ/AlLµQA˜€æƒ/AlLµQA˜x„/AlLµQA˜è„/AlL€ µQA˜€C…/AlL€µQA˜€Œ…/AlL ÿ´QA˜€½…/AlL ò´QA˜€ †/AlLàì´QA˜†/AlL@í´QA˜€Y‡/AlL€ì´QA˜"ˆ/AlLê´QA˜€Oˆ/AlL é´QA˜-‰/AlLÀç´QA˜€¬‰/AlL æ´QA˜€ZŠ/AlLÀÕ´QA˜–Š/AlLÆ´QA˜ÈŠ/AlL€·´QA˜@‹/AlLЭ´QA˜€D‹/AlL«´QA˜€d‹/AlL`ª´QA˜þ‹/AlL ¢´QA˜IŒ/AlLÀ™´QA˜À­Œ/AlLˆŽ´QA˜õŒ/AlLà~´QA˜€8/AlL u´QA˜€¨/AlLÀo´QA˜€Ž/AlL@k´QA˜€Ž/AlLàc´QA˜Ž/AlL ]´QA˜#Ž/AlLW´QA˜jŽ/AlLR´QA˜€ÂŽ/AlL R´QA˜€/AlLÀH´QA˜/AlLB´QA˜€-/AlLà;´QA˜O/AlLà5´QA˜†/AlL 1´QA˜Î/AlL€2´QA˜ /AlL€6´QA˜€V/AlL=´QA˜›/AlLà@´QA˜å/AlLÀA´QA˜ ‘/AlL=´QA˜0‘/AlL@6´QA˜€‘/AlL &´QA˜ý/AlL@´QA˜ò/AlL ´QA˜€Ô/AlLp´QA˜¸/AlL€ ´QA˜¦/AlL€û³QA˜€—/AlLÀâ³QA˜´/AlLàÓ³QA˜€ð/AlLàijQA˜€<‘/AlL º³QA˜œ‘/AlL€µ³QA˜€/’/AlL@¸³QA˜€e’/AlL¹³QA˜€w’/AlL ¹³QA˜€ƒ’/AlL¶³QA˜€ž’/AlLÀ°³QA˜€Ì’/AlL ª³QA˜€“/AlLÀ¬³QA˜€j“/AlL³³QA˜€ “/AlL·³QA˜m”/AlLÀ¬³QA˜€ç”/AlLª³QA˜€Q•/AlL`¤³QA˜«•/AlLàš³QA˜ä•/AlLÀ޳QA˜€–/AlL …³QA˜8–/AlL z³QA˜€<–/AlL`n³QA˜m–/AlLÀg³QA˜ª–/AlLÀe³QA˜€â–/AlL@e³QA˜€ø–/AlL _³QA˜€—/AlL@X³QA˜S—/AlLW³QA˜‚—/AlL@V³QA˜€Ü—/AlL Z³QA˜€O˜/AlL ]³QA˜€¨˜/AlL@c³QA˜æ˜/AlLÀe³QA˜7™/AlL c³QA˜€‰™/AlL \³QA˜€ß™/AlL ^³QA˜š/AlL a³QA˜€Xš/AlLe³QA˜€¥š/AlL g³QA˜ñš/AlL€^³QA˜€C›/AlL[³QA˜‘›/AlLà[³QA˜€ú›/AlL[³QA˜€wœ/AlLà]³QA˜Öœ/AlL@^³QA˜€>/AlLà]³QA˜€/AlLà^³QA˜€Â/AlL_³QA˜+ž/AlLà[³QA˜€ž/AlLÀU³QA˜€âž/AlL€P³QA˜7Ÿ/AlLàL³QA˜¢Ÿ/AlLàH³QA˜ãŸ/AlL D³QA˜€> /AlL`;³QA˜€s /AlLÀ2³QA˜€½ /AlLà%³QA˜€ö /AlL³QA˜$¡/AlLà³QA˜€v¡/AlL³QA˜¾¡/AlL ³QA˜¢/AlL ³QA˜€y¢/AlL³QA˜º¢/AlLÀ³QA˜€ø¢/AlLÀþ²QA˜7£/AlLàû²QA˜€y£/AlL`ú²QA˜€Î£/AlLàù²QA˜p¤/AlL€þ²QA˜€¦¤/AlLÀþ²QA˜€¥/AlLû²QA˜^¥/AlL ÷²QA˜‘¥/AlLÀò²QA˜µ¥/AlLì²QA˜Ô¥/AlLÀâ²QA˜€ü¥/AlLÀÛ²QA˜-¦/AlL€×²QA˜}¦/AlL Õ²QA˜€Ã¦/AlL€Ô²QA˜€ §/AlL Õ²QA˜€@§/AlL€Ò²QA˜k§/AlL`вQA˜»§/AlL`ͲQA˜¨/AlLàʲQA˜™¨/AlLÀ̲QA˜€©/AlL Î²QA˜€±©/AlL@Ò²QA˜Mª/AlL Ô²QA˜Õª/AlL Ö²QA˜D«/AlLÙ²QA˜€À«/AlL`Ù²QA˜5¬/AlL`Ó²QA˜€E¬/AlLðÒ²QA˜€Ž¬/AlL0ѲQA˜¥¬/AlL Ð²QA˜ü¬/AlL ϲQA˜-­/AlL€Ñ²QA˜X­/AlL Ó²QA˜²­/AlL@ã²QA˜®/AlL€ò²QA˜€p®/AlL ³QA˜ª®/AlL³QA˜€È®/AlL ³QA˜€!¯/AlLà³QA˜“¯/AlL ³QA˜ð¯/AlL@³QA˜€Œ°/AlL`³QA˜ú°/AlLÀ³QA˜€q±/AlL€³QA˜€Ç±/AlLþ²QA˜€"²/AlLÀø²QA˜^²/AlLô²QA˜Dz/AlL ë²QA˜M³/AlL€é²QA˜Ó³/AlL€ï²QA˜w´/AlLÀ÷²QA˜Ö´/AlL`þ²QA˜5µ/AlLÀ ³QA˜µ/AlLà³QA˜ɵ/AlL "³QA˜¶/AlLÐ-³QA˜¶/AlL0³QA˜ ¶/AlL 5³QA˜€ú¶/AlL 5³QA˜€j·/AlL 3³QA˜€ˆ·/AlL@0³QA˜€ß·/AlLà'³QA˜€¸/AlL ³QA˜Ÿ/AlL@³QA˜€%¹/AlL€³QA˜€5¹/AlLà³QA˜‹¹/AlLÀ³QA˜€ º/AlL ³QA˜†º/AlL`³QA˜€ôº/AlL€³QA˜€h»/AlL@³QA˜€…»/AlL³QA˜€Ê»/AlL€÷²QA˜€ç»/AlLÀî²QA˜7¼/AlL é²QA˜¥¼/AlLàç²QA˜½/AlL ç²QA˜o½/AlL å²QA˜ª½/AlL@à²QA˜€õ½/AlL ×²QA˜E¾/AlL Õ²QA˜€Ð¿/AlL@ײQA˜€€À/AlL@Õ²QA˜€úÀ/AlL Ö²QA˜nÁ/AlL Õ²QA˜ËÁ/AlL Í²QA˜€ Â/AlL`ɲQA˜€<Â/AlLÀÀ²QA˜VÂ/AlL@¸²QA˜]Â/AlLÀ®²QA˜mÂ/AlL²QA˜€Â/AlL ”²QA˜©Â/AlL ‹²QA˜€çÂ/AlL`€²QA˜€Ã/AlLÀ{²QA˜€PÃ/AlL€x²QA˜‰Ã/AlL€q²QA˜€ÊÃ/AlLl²QA˜õÃ/AlL d²QA˜€Ä/AlL ^²QA˜@Ä/AlL T²QA˜€dÄ/AlL M²QA˜€¼Ä/AlL@<²QA˜ïÄ/AlL@4²QA˜Å/AlL@-²QA˜aÅ/AlL` ²QA˜¤Å/AlL ²QA˜ËÅ/AlL ²QA˜×Å/AlLð²QA˜ìÅ/AlL²QA˜Æ/AlLÀ²QA˜€NÆ/AlLÀ²QA˜€‡Æ/AlL ²QA˜€"Ç/AlL`²QA˜€nÇ/AlL`²QA˜€ùÇ/AlL€²QA˜€­È/AlL ²QA˜€É/AlL ²QA˜€„É/AlL &²QA˜÷É/AlL )²QA˜Ê/AlL .²QA˜ Ë/AlLÀ5²QA˜€¢Ë/AlL 9²QA˜€7Ì/AlLÀ<²QA˜€ºÌ/AlLà=²QA˜ìÌ/AlL@>²QA˜€aÍ/AlL @²QA˜€ñÍ/AlLÀA²QA˜€Î/AlLB²QA˜ Î/AlLB²QA˜€yÎ/AlLD²QA˜€…Î/AlLÐD²QA˜°Î/AlLÀE²QA˜€ÁÎ/AlLF²QA˜Ï/AlL°G²QA˜€QÏ/AlLÀH²QA˜(Ð/AlL K²QA˜€?Ð/AlL I²QA˜TÐ/AlL`G²QA˜gÐ/AlLÀ>²QA˜JÐ/AlL@1²QA˜ Ð/AlL '²QA˜€ÝÏ/AlLà²QA˜—Ï/AlL@ ²QA˜€>Ï/AlL`²QA˜€Ï/AlL`û±QA˜€Ï/AlL€õ±QA˜€¨Î/AlL`ë±QA˜^Î/AlLÀá±QA˜€WÎ/AlLàÞ±QA˜?Î/AlL Ó±QA˜Î/AlL Ä±QA˜€ Î/AlL@²±QA˜*Î/AlL £±QA˜Î/AlL ±QA˜Î/AlL@‚±QA˜€,Î/AlLàp±QA˜€7Î/AlL c±QA˜{Î/AlLA±QA˜€™Î/AlL`2±QA˜€«Î/AlL +±QA˜°Î/AlLà)±QA˜kÎ/AlLà±QA˜?Î/AlL ±QA˜€HÎ/AlLÀ±QA˜YÎ/AlL€ñ°QA˜€eÎ/AlL@æ°QA˜€pÎ/AlLÀÒ°QA˜nÎ/AlL ŰQA˜|Î/AlL ²°QA˜€{Î/AlL ¥°QA˜ÍÎ/AlL°QA˜€HÏ/AlL@°QA˜€ßÏ/AlL`~°QA˜¾Ð/AlL@c°QA˜÷Ð/AlL`W°QA˜GÑ/AlLÀI°QA˜€€Ñ/AlL <°QA˜€ÏÑ/AlLÀ)°QA˜éÑ/AlL °QA˜óÑ/AlL`°QA˜èÑ/AlLÀ°QA˜€®Ñ/AlLÀ°QA˜ƒÑ/AlL@÷¯QA˜,Ñ/AlLÀí¯QA˜€¾Ð/AlL`ݯQA˜€ƒÐ/AlLàÓ¯QA˜RÐ/AlL ˯QA˜€FÐ/AlLÐůQA˜7Ð/AlL°¾¯QA˜€0Ð/AlLÀ»¯QA˜/Ð/AlL`¯¯QA˜6Ð/AlL@«¯QA˜GÐ/AlL¡¯QA˜€bÐ/AlL°™¯QA˜rÐ/AlL€•¯QA˜®Ð/AlLÀޝQA˜ÚÐ/AlLà‹¯QA˜úÐ/AlL@‹¯QA˜€)Ñ/AlL`НQA˜eÑ/AlL ‡¯QA˜€®Ñ/AlL†¯QA˜èÑ/AlL„¯QA˜þÑ/AlLp‚¯QAøÕ¢7Ò/AÄô51~¯QA˜áÑ/AlLÀv¯QA˜wÑ/AlLÀj¯QA˜€8Ñ/AlLÀd¯QA˜ÆÐ/AlL`U¯QA˜GÐ/AlLK¯QA˜€ìÏ/AlL`D¯QA˜€ŸÏ/AlLà=¯QA˜;Ï/AlLÀ6¯QA˜àÎ/AlL@0¯QA˜|Î/AlL+¯QA˜€ Ï/AlL ¯QA˜‰Ï/AlLà¯QA˜€ÏÏ/AlLÀ ¯QA˜€NÐ/AlL`ý®QA˜ËÐ/AlLàî®QA˜€4Ñ/AlL ß®QA˜€ìÒ/AlLÀ±®QA˜SÔ/AlL€…®QA˜€¿Õ/AlLÀ]®QA˜€”Ö/AlL E®QA˜p×/AlL@/®QA˜"Ø/AlL ®QA˜€™Ø/AlL@®QA˜çØ/AlL`ø­QA˜’Ø/AlL@ç­QA˜+Ø/AlL Ü­QA˜ª×/AlL`Ò­QA˜`×/AlL Æ­QA˜€æÖ/AlLÀ¹­QA˜€GÖ/AlL ²­QA˜€»Õ/AlL ª­QA˜&Õ/AlL€§­QA˜€vÔ/AlL¤­QA˜]Ó/AlLÀ¤­QA˜€ÉÒ/AlLÀ¥­QA˜€&Ò/AlL ¥­QA˜€¦Ñ/AlL@¤­QA˜cÑ/AlL ¥­QA˜ýÐ/AlL ‹­QA˜€Ñ/AlL`z­QA˜€íÑ/AlL€p­QA˜VÒ/AlL ^­QA˜ŸÒ/AlL`O­QA˜êÒ/AlL`@­QA˜&Ó/AlLP9­QA˜€3Ó/AlL°7­QA˜€dÓ/AlLà1­QA˜ÈÓ/AlLà­QA˜€ Ô/AlLÀ­QA˜€aÔ/AlL ­QA˜€qÔ/AlL€­QA˜€ÒÔ/AlL€ü¬QA˜ãÕ/AlL ×¬QA˜€%×/AlL­¬QA˜€F×/AlLÀ¨¬QA˜áØ/AlL@p¬QA˜€ÑÚ/AlL 0¬QA˜“Ü/AlL`ô«QA˜ÅÝ/AlLÀÅ«QA˜ãÞ/AlLÀ™«QA˜€mà/AlLà`«QA˜€‚à/AlL [«QA˜Ñà/AlLÀE«QA˜€ã/AlLÀéªQA˜?ã/AlL ÜªQA˜>ã/AlLÖªQA˜€=ã/AlLðѪQA˜=ã/AlLÀΪQA˜Ùâ/AlLà°ªQA˜râ/AlL £ªQA˜â/AlLàªQA˜©á/AlL‚ªQA˜€Cá/AlL@nªQA˜"á/AlLàaªQA˜€;á/AlL@QªQA˜€á/AlLÀFªQA˜éá/AlL >ªQA˜ýá/AlL :ªQA˜.â/AlL 2ªQA˜€:â/AlL@'ªQA˜â/AlL`ªQA˜õá/AlLÀ ªQA˜Êá/AlL@ªQA˜•á/AlL€ù©QA˜{á/AlLò©QA˜€Uá/AlL ì©QA˜Uá/AlL@ê©QA˜Tá/AlL€ä©QA˜€Ðá/AlL@Ó©QA˜Xâ/AlL Í©QA˜€Êâ/AlL`Ç©QA˜0ã/AlLÀÁ©QA˜€†ã/AlL ·©QA˜Ñã/AlL€°©QA˜€šã/AlL€¥©QA˜€Kã/AlL˜©QA˜€Åâ/AlLÀˆ©QA˜7â/AlL`u©QA˜€‰á/AlL€d©QA˜±à/AlL€M©QA˜×ß/AlL 5©QA˜ðÞ/AlL@©QA˜­Þ/AlLà©QA˜Þ/AlLÀÿ¨QA˜;Ý/AlL æ¨QA˜€5Ý/AlLàݨQA˜•Ý/AlL`ѨQA˜Þ/AlL`ʨQA˜UÞ/AlL`ŨQA˜?ß/AlL«¨QA˜Þ/AlLà†¨QA˜iÞ/AlL }¨QA˜€´Þ/AlLq¨QA˜ ß/AlL`i¨QA˜Zß/AlL a¨QA˜€ß/AlL€f¨QA˜Ðß/AlLq¨QA˜1à/AlL`‚¨QA˜€µà/AlLà”¨QA˜€$á/AlLÀ¦¨QA˜“á/AlL@¹¨QA˜â/AlL̨QA˜€á/AlL@بQA˜Qá/AlLÀã¨QA˜šá/AlLàè¨QA˜€ýá/AlL@ò¨QA˜Éâ/AlL ©QA˜zã/AlLà ©QA˜€ÿã/AlLà-©QA˜€˜ä/AlL<©QA˜€å/AlLÀM©QA˜€ˆå/AlL \©QA˜€Ûå/AlL[©QA˜òå/AlL S©QA˜Öå/AlL`K©QA˜”å/AlLÀ?©QA˜å/AlL+©QA˜€Êä/AlL©QA˜€|ä/AlL ©QA˜€Eä/AlL õ¨QA˜4ä/AlL Þ¨QA˜€ä/AlL`ƨQA˜€ä/AlL ´¨QA˜dä/AlL ž¨QA˜€ªä/AlL ’¨QA˜å/AlLà|¨QA˜€|å/AlLÀj¨QA˜8æ/AlL@T¨QA˜€ç/AlLà=¨QA˜mç/AlL@.¨QA˜îç/AlLÀ&¨QA˜Kè/AlL`)¨QA˜€•è/AlLÀ,¨QA˜êè/AlL4¨QA˜Vé/AlL€<¨QA˜Ñé/AlL F¨QA˜mê/AlLàV¨QA˜€àê/AlL `¨QA˜€ë/AlL g¨QA˜€Üì/AlL@›¨QA˜5í/AlLà¨QA˜€„í/AlL@ˆ¨QA˜Tî/AlLÀy¨QA˜€-ï/AlL@g¨QA˜ãï/AlLW¨QA˜'ð/AlLQ¨QA˜€Hñ/AlL`8¨QA˜ò/AlLà#¨QA˜Ýó/AlL  ¨QA˜Éõ/AlLÀð§QA˜€6ø/AlL`˧QA˜€zø/AlL@ǧQAhìÐÌùö/Aæ™IQ§QA˜Öö/AlL0G§QA˜€/ö/AlL`§QA˜€õ/AlL Ê¦QA˜€Âô/AlL€µ¦QA˜6ó/AlLà7¦QA˜€ ò/AlLÞ¥QA˜ò/AlLàÑ¥QA˜ÿñ/AlL`¼¥QA˜ûñ/AlL€¦¥QA˜€ðñ/AlL’¥QA˜€öñ/AlL€ƒ¥QA˜ò/AlL`p¥QA˜€?ò/AlL@l¥QA˜€Jò/AlL k¥QA˜Úò/AlLÀ^¥QA˜ õ/AlL :¥QA˜÷/AlL #¥QA˜€óø/AlLÀ ¥QA˜ñû/AlLÐà¤QA˜€û/AlL ݤQA˜)û/AlLàØ¤QA˜êú/AlL@ФQA˜€vú/AlL€Ê¤QA˜.ú/AlLàÆ¤QA˜Îù/AlL€¾¤QA˜rù/AlLÀ´¤QA˜+ù/AlL ¨¤QA˜ûø/AlLà ¤QA˜Éø/AlL`•¤QA˜€§ø/AlLð‰¤QA˜€jø/AlL@ƒ¤QA˜€ ø/AlL`}¤QA˜€°÷/AlL v¤QA˜€n÷/AlL@n¤QA˜€V÷/AlLÀg¤QA˜.÷/AlLa¤QA˜÷/AlLàU¤QA˜€2÷/AlLN¤QA˜€b÷/AlL C¤QA˜ç÷/AlL€%¤QA˜‡÷/AlL"¤QA˜€V÷/AlLÀ¤QA˜€÷/AlL€ ¤QA˜€Èö/AlLàü£QA˜€6ö/AlL`æ£QA˜Ðõ/AlL ×£QA˜„õ/AlLpÉ£QA˜ õ/AlL Á£QA˜Ÿô/AlLà¿£QA˜€ô/AlLÀÁ£QA˜€¢ó/AlL£QA˜€!ó/AlL»£QA˜€´ò/AlL µ£QA˜*ò/AlL ±£QA˜€»ñ/AlLਣQA˜€.ñ/AlLÀž£QA˜«ð/AlL œ£QA˜Jð/AlLÀ˜£QA˜þï/AlL –£QA˜Öï/AlL€£QA˜€£ï/AlL°„£QA˜Oï/AlL@£QA˜ï/AlL{£QA˜´î/AlL x£QA˜€vî/AlLÀr£QA˜ î/AlL r£QA˜€ûí/AlL°s£QA˜€¾í/AlL€y£QA˜€—í/AlLà|£QA˜€ í/AlL€ˆ£QA˜Kì/AlL š£QA˜€¼ë/AlL ¬£QA˜|ë/AlLð´£QA˜€€ê/AlL`×£QA˜€rè/AlLÀ ¤QA˜tå/AlL ‚¤QA˜¦â/AlL€â¤QA˜Êá/AlLàþ¤QA˜€2ß/AlL@¬¤QA˜xÛ/AlL`¥QA˜Ø/AlL຤QA˜^Ö/AlL`ñ¤QA˜€.Õ/AlL`¥QA˜ÉÒ/AlL Í¤QA˜€’Ñ/AlLÀª¤QA˜€ Ï/AlLÀ¥QA˜jÍ/AlLP»¤QA˜€ÛÌ/AlL¨¤QA˜€ÄÌ/AlL¥¤QA˜€YÊ/AlL@T¤QA˜€!È/AlL@ ¤QA˜€TÆ/AlLàË£QA˜€xÅ/AlL`®£QA˜€Å/AlLС£QA˜€µÄ/AlL@”£QA˜€ÜÂ/AlLÀãQA˜€¡Á/AlL°é£QA˜À/AlLP¾£QA˜ë¿/AlL€¯£QA˜€‘À/AlL`—£QA˜;Á/AlL y£QA˜Â/AlL [£QA˜€Ã/AlL?£QA˜jÃ/AlLà2£QA˜—Ã/AlLp-£QA˜€Ä/AlL@£QA˜XÄ/AlL£QA˜ŒÄ/AlLà£QA˜ÔÄ/AlL@£QA˜7Å/AlL€û¢QA˜€ Æ/AlL Ü¢QA˜qÆ/AlL ΢QA˜ºÆ/AlLÄ¢QA˜ÕÆ/AlL¿¢QA˜€äÆ/AlL€½¢QA˜Ç/AlL ¤¢QA˜mÈ/AlL`†¢QA˜tÉ/AlL ]¢QA˜õÇ/AlL@V¢QA˜/Ç/AlLàS¢QA˜Æ/AlL O¢QA˜€úÄ/AlL`K¢QA˜€çÃ/AlL@F¢QA˜³Â/AlL@¢QA˜ìÁ/AlL=¢QA˜,Á/AlL :¢QA˜HÀ/AlL 7¢QA˜¨¿/AlL€6¢QA˜¸¿/AlL@+¢QA˜À¿/AlL¢QA˜€»¿/AlL ¢QA˜È¿/AlL õ¡QA˜Ä¿/AlLè¡QA˜Õ¿/AlLÀÓ¡QA˜ À/AlL ½¡QA˜,À/AlL@§¡QA˜,À/AlLÀƒ¡QA˜€@À/AlL m¡QA˜uÀ/AlL:¡QA˜À/AlL,¡QA˜€ŒÀ/AlLÀ¡QA˜€aÀ/AlL ¡QA˜À/AlL€¡QA˜€Ó¿/AlLÀ%¡QA˜¹¿/AlL€-¡QA˜o¿/AlL€>¡QA˜€E¿/AlLL¡QA˜%¿/AlLÀS¡QA˜¿/AlL@^¡QA˜Ú¾/AlLÀm¡QA˜À¾/AlL |¡QA˜€u¾/AlL€Ž¡QA˜€¾/AlL@”¡QA˜Ƚ/AlL@¡QA˜€Ž½/AlL€‰¡QA˜€>½/AlLà¡QA˜þ¼/AlL v¡QA˜£¼/AlL t¡QA˜€A¼/AlLv¡QA˜л/AlL@w¡QA˜k»/AlL w¡QA˜»/AlL@x¡QA˜€wº/AlL€t¡QA˜º/AlL€m¡QA˜ι/AlL0g¡QA˜€À¹/AlL f¡QA˜ƒ¹/AlLÀ]¡QA˜€,¹/AlL N¡QA˜ ¹/AlLàF¡QA˜€¹/AlL >¡QA˜2¹/AlL 6¡QA˜€4¹/AlL+¡QA˜¹/AlL"¡QA˜Ò¸/AlL ¡QA˜Œ¸/AlL¡QA˜7¸/AlL€¡QA˜ö·/AlL€!¡QA˜ª·/AlL`'¡QA˜€Š·/AlL 1¡QA˜·/AlL`;¡QA˜o·/AlL@B¡QA˜€c·/AlLL¡QA˜€ ·/AlL€N¡QA˜Œ¶/AlLàO¡QA˜€8¶/AlL J¡QA˜€Õµ/AlLÀC¡QA˜„µ/AlLð7¡QA˜€%µ/AlL,¡QA˜Ê´/AlLÀ-¡QA˜„´/AlL 4¡QA˜f´/AlL€;¡QA˜=´/AlL`@¡QA˜ü³/AlL A¡QA˜€«³/AlLà=¡QA˜€v³/AlLà7¡QA˜2³/AlL€4¡QA˜â²/AlL€3¡QA˜€’²/AlL`5¡QA˜€R²/AlL`8¡QA˜€ ²/AlL€7¡QA˜α/AlL 4¡QA˜€{±/AlL 0¡QA˜$±/AlL .¡QA˜€ì°/AlLà,¡QA˜°/AlL`+¡QA˜V°/AlLP%¡QA˜€D°/AlLà¡QA˜€°/AlL@ ¡QA˜ñ¯/AlL ¡QA˜€E¯/AlLû QA˜¯/AlL ó QA˜¡®/AlLàë QA˜(®/AlL â QA˜€ø­/AlL`á QA˜§­/AlL`Û QA˜­/AlLàРQA˜¿¬/AlL@Æ QA˜€h¬/AlLÀ¿ QA˜€ø«/AlL@· QA˜m«/AlL@­ QA˜ت/AlLࢠQA˜€Rª/AlL`™ QA˜€Ö©/AlL@ QA˜`©/AlL@‰ QA˜€%©/AlLà… QA˜æ¨/AlLà„ QA˜€†¨/AlL‰ QA˜P¨/AlL  QA˜€¨/AlL` QA˜ç/AlL ” QA˜g§/AlL › QA˜ §/AlL`  QA˜€Ä¦/AlL © QA˜n¦/AlLÀ¡ QA˜M¦/AlLœ QA˜€2¦/AlLÀ• QA˜€¦/AlL  QA˜å¥/AlLŒ QA˜€Ž¥/AlLÀˆ QA˜€$¥/AlL‡ QA˜̤/AlL@„ QA˜g¤/AlL` QA†jæB¤/AlLP QA˜/£/AlLà€ QA˜€a¢/AlL`~ QA˜€É¡/AlL@| QA˜å /AlL€s QA˜ /AlL@l QA˜€0Ÿ/AlL b QA˜€ž/AlL X QA˜€=ž/AlL R QA˜ž/AlLàK QA˜€î/AlLàD QA˜„/AlL€A QA˜l/AlL€G QA˜€./AlL€F QA˜þœ/AlLÀ? QA˜€Ñœ/AlLà< QA˜€œ/AlL 7 QA˜ý›/AlLÀ3 QA˜€¨›/AlL€0 QA˜òš/AlL ( QA˜€“š/AlL@$ QA˜€;š/AlLÀ QA˜€š/AlL  QA˜€ø™/AlL€  QA˜€ô™/AlL  QA˜ô™/AlLàòŸQA˜È™/AlL`äŸQA˜t™/AlL€ÔŸQA˜€4™/AlL`ËŸQA˜ʘ/AlLÀÀŸQA˜€N˜/AlL »ŸQA˜€>—/AlL€¸ŸQA˜­–/AlL@¹ŸQA˜1–/AlL`»ŸQA˜º•/AlL ¿ŸQA˜ •/AlL@ÊŸQA˜Ä”/AlLàÒŸQA˜€ˆ”/AlL`ØŸQA˜H”/AlL`àŸQA˜é“/AlL òŸQA˜€”“/AlL€ QA˜[“/AlL   QA˜€ñ’/AlL€ QA˜n’/AlL  QA˜ó‘/AlLÀ QA˜r‘/AlL€ QA˜€ô/AlL  QA˜€•/AlL  QA˜€,/AlLùŸQA˜€ÆŽ/AlLÀóŸQA˜TŽ/AlL@óŸQA˜Ó/AlL óŸQA˜D/AlL@üŸQA˜ÕŒ/AlLà  QA˜€ŠŒ/AlL QA˜\Œ/AlLÀ! QA˜€7Œ/AlL ( QA˜G‹/AlL`8 QA˜€õŠ/AlL> QA˜€zŠ/AlLF QA˜€Š/AlL€O QA˜€·‰/AlL°V QA˜¾ˆ/AlL m QA˜€sˆ/AlL€m QA˜2ˆ/AlL o QA˜€÷‡/AlL`l QA˜·‡/AlL€a QA˜€9‡/AlL€M QA˜؆/AlL`9 QA˜€#†/AlL`C QA˜€h„/AlLÀ÷ŸQA˜€„/AlL ÷ŸQA˜àƒ/AlLàþŸQA˜åƒ/AlLÀ QA˜€Ûƒ/AlLÀ QA˜׃/AlLÀ QA˜€­ƒ/AlL " QA˜vƒ/AlL@, QA˜#ƒ/AlLÀ" QA˜€[‚/AlL`. QA˜€–‚/AlL`4 QA˜€ ƒ/AlLà: QA˜€fƒ/AlL@A QA˜ǃ/AlL H QA˜#„/AlL@P QA˜€_„/AlL€W QA˜€¨„/AlLb QA˜€…/AlLàl QA˜X…/AlL`v QA˜¸…/AlLÀ QA˜€†/AlL Ž QA˜t†/AlL€™ QA˜€°†/AlL ¤ QA˜€Ø†/AlL€¯ QA˜€ä†/AlL@º QA˜€Ô†/AlL Å QA˜¼†/AlL@РQA˜ †/AlLÀ× QA˜`†/AlL€Þ QA˜€ø…/AlLÀê QA˜€ …/AlLû QA˜€Š…/AlL ¡QA˜€z…/AlL #¡QA˜…/AlLà0¡QA˜\„/AlL`A¡QA˜€ëƒ/AlL@O¡QA˜€ƒ/AlL f¡QA˜€Š‚/AlL u¡QA˜€‚/AlL@¡QA˜€ž/AlL“¡QA˜€*/AlLডQA˜€/AlL஡QA˜€è€/AlL`´¡QA˜^/AlLä¡QA˜€ ~/AlL ¢QA˜Ý|/AlL 2¢QA˜€î{/AlL@P¢QA˜€´{/AlLT¢QA˜€U{/AlL`I¢QA˜{/AlL D¢QA˜âz/AlL`@¢QA˜€ˆz/AlL@>¢QA˜z/AlLÀ?¢QA˜”y/AlL <¢QA˜€ y/AlL >¢QA˜Çx/AlL ?¢QA˜[x/AlL@B¢QA˜ðw/AlL G¢QA˜€”w/AlLàK¢QA˜€Ïv/AlLW¢QA˜5v/AlLà`¢QA˜v/AlL b¢QA˜€Áu/AlLÀi¢QA˜€Au/AlL r¢QA˜Èt/AlL {¢QA˜€6t/AlLàƒ¢QA˜Ws/AlL€Ž¢QA˜€§r/AlLà–¢QA˜þq/AlL ›¢QA˜€¢q/AlL ¢QA˜€´q/AlLÀ½¢QA˜€•q/AlL½¢QA˜òp/AlL@¹¢QA˜Ëo/AlL ¸¢QA˜€0o/AlL`º¢QA˜€tn/AlL€Ã¢QA˜€¤m/AlLརQA˜€öl/AlLâQA˜Öl/AlLÀÊ¢QA˜pl/AlL Í¢QA˜€Úk/AlL Ï¢QA˜€Pk/AlL Ô¢QA˜€"k/AlL×¢QA˜€"k/AlL ò¢QA˜€%k/AlLÀ£QA˜1k/AlL@ £QA˜€8k/AlL £QA˜;k/AlL@-£QA˜Pk/AlL`H£QA˜Pk/AlLÀe£QA˜€Jk/AlL }£QA˜€Nk/AlL@£QA˜Rk/AlL Ÿ£QA˜[k/AlL€²£QA˜jk/AlL Ê£QA˜Pk/AlLä£QA˜€Tk/AlL ø£QA˜€\k/AlL` ¤QA˜€bk/AlL¤QA˜Pk/AlL3¤QA˜€`k/AlLà@¤QA˜_k/AlL c¤QA˜lk/AlL s¤QA˜vk/AlL€‚¤QA˜€{k/AlL ‹¤QA˜ck/AlLà‘¤QA˜€Ik/AlL™¤QA˜"k/AlL ž¤QA˜Õj/AlLpŸ¤QA˜šj/AlL€ ¤QA˜€(j/AlLÀ¡¤QA˜#i/AlL¥¤QA˜g/AlLÀ¤¤QA˜€f/AlL§¤QA˜d/AlL`«¤QA˜Öb/AlL ¯¤QA˜ã`/AlL@³¤QA˜á_/AlLà·¤QA˜[/AlLàˤQA˜€ÂZ/AlL Ë¤QA˜tZ/AlLàˤQA˜àY/AlL ѤQA˜UY/AlL€Ø¤QA˜‚X/AlL Ø¤QA˜jW/AlLà¤QA˜V/AlL`ê¤QA˜”U/AlL`ø¤QA˜€»T/AlL0¥QA˜€$T/AlL ¥QA˜ÎR/AlL ¥QA˜€bQ/AlL 1¥QA˜€P/AlLD¥QA˜ÚN/AlL R¥QA˜€QN/AlL j¥QA˜>J/AlLà¦QA˜€ñJ/AlL€'¦QA˜bK/AlL€+¦QA˜éK/AlL +¦QA˜€yL/AlL ,¦QA˜€äL/AlL`2¦QA˜"M/AlL@?¦QA˜;M/AlL@H¦QA˜€LM/AlL@T¦QA˜€lM/AlL`f¦QA˜€“M/AlLÀo¦QA˜N/AlL ~¦QA˜€fN/AlL †¦QA˜€ÌN/AlL`ЦQA˜€zO/AlL`“¦QA˜¹O/AlL@š¦QA˜€ÁO/AlL০QA˜€ùO/AlL°¦QA˜€.P/AlL౦QA˜€tP/AlL@²¦QA˜€´P/AlL ·¦QA˜€ÒP/AlLàÁ¦QA˜ðP/AlL€Î¦QA˜€Q/AlL Û¦QA˜€m/AlLàL¦QA˜€m/AlL`T¦QA˜€¼l/AlL`d¦QA˜€Zl/AlL`|¦QA˜€Òk/AlL`”¦QA˜Pk/AlL´¦QA˜€¹j/AlL€Ì¦QA˜j/AlL î¦QA˜€|i/AlL §QA˜€i/AlLÀ#§QA˜€€h/AlLÀ>§QA˜€h/AlLU§QA˜€¥g/AlL m§QA˜€g/AlL@Œ§QA˜f/AlL „§QA˜€6f/AlL ‡§QA˜€ðe/AlL@ާQA˜³e/AlL”§QA˜Te/AlL€œ§QA˜e/AlL@¤§QA˜€¡d/AlL ±§QA˜€ d/AlLཧQA˜€c/AlL§QA˜›b/AlLÀ™§QA˜>b/AlL`ž§QA˜¨a/AlL¬§QA˜»`/AlL@¹§QA˜ã`/AlL ϧQA˜é`/AlLÚ§QA˜€°a/AlL ¨QA˜La/AlL`(¨QA˜ a/AlL`-¨QA˜€¸`/AlLà0¨QA˜€|`/AlL`0¨QA˜€*`/AlL€6¨QA˜Ø_/AlLÀ:¨QA˜_/AlL`H¨QA˜€v^/AlL R¨QA˜ù]/AlLX¨QA˜€Ë]/AlL Z¨QA˜€´]/AlL@T¨QA˜¥\/AlLà¨QA˜€P\/AlLà¨QA˜ù[/AlL ¨QA˜¿[/AlL ¨QA˜z[/AlLà¨QA˜[/AlL ¨QA˜çZ/AlLà¨QA˜€“Z/AlL "¨QA˜Z/AlLà$¨QA˜€ÂY/AlL`%¨QA˜[Y/AlL'¨QA˜*Y/AlLÀA¨QA˜€üX/AlL ]¨QA˜ÝX/AlLÀp¨QA˜€°X/AlLÀ†¨QA˜ŸX/AlL€Ÿ¨QA˜€zX/AlL൨QA˜€[X/AlLɨQA˜€EX/AlL Þ¨QA˜€CX/AlLÀó¨QA˜X/AlL€õ¨QA˜ÄW/AlL ò¨QA˜W/AlL€ë¨QA˜;W/AlL ç¨QA˜€øV/AlLÀã¨QA˜¸V/AlLàߨQA˜€LV/AlLߨQA˜€fU/AlL@ܨQA˜U/AlL`á¨QA˜€ÂT/AlLàë¨QA˜|T/AlL ó¨QA˜T/AlL ø¨QA˜€—S/AlL`ù¨QA˜€#S/AlL ñ¨QA˜€ÜR/AlLÀî¨QA˜tR/AlLî¨QA˜-R/AlL ä¨QA˜ÿP/AlL¶¨QA˜€ÓP/AlL­¨QA˜œP/AlL°©¨QA˜€hP/AlL ¦¨QA˜P/AlL §¨QA˜€ÞO/AlL °¨QA˜€ÀO/AlLÀÁ¨QA˜€¶O/AlLÔ¨QA˜¸O/AlL ê¨QA˜€·O/AlLú¨QA˜€®O/AlLà©QA˜¤O/AlL`!©QA˜¡O/AlL°$©QA˜–O/AlL@2©QA˜€”O/AlLàI©QA˜§O/AlL ©QA˜®O/AlL`¢©QA˜€·O/AlL ¼©QA˜€±O/AlLÀØ©QA˜€”O/AlL ó©QA˜˜O/AlL ªQA˜€¹O/AlLà+ªQA˜ûO/AlL`QªQA˜9P/AlLkªQA˜€pP/AlL ‚ªQA˜€»P/AlL`–ªQA˜üP/AlL ¬ªQA˜€6Q/AlL@ŪQA˜€œQ/AlLàâªQA˜€èQ/AlLàøªQA˜€&R/AlL «QA˜1R/AlL€+«QA˜%R/AlL=«QA˜)R/AlL O«QA˜€òQ/AlL s«QA˜€éQ/AlLà«QA˜ëQ/AlL€‡«QA˜íQ/AlL“«QA˜R/AlL ¥«QA˜€&R/AlLÀ­«QA˜hR/AlL๫QA˜S/AlL ЫQA˜;S/AlLðÛ«QA˜€HS/AlLàÞ«QA˜OS/AlL@à«QA˜€ÆS/AlL@ú«QA˜€1T/AlL@ ¬QA˜€ˆT/AlL ¬QA˜ãT/AlL€'¬QA˜€2U/AlLÀ3¬QA˜€€U/AlL`M¬QA˜—U/AlLà^¬QA˜€¦U/AlL k¬QA˜€»U/AlL w¬QA˜€ÓU/AlL ¬QA˜€âU/AlL`—¬QA˜€V/AlLÀ¨¬QA˜€3V/AlL€¶¬QA˜€8V/AlLàŬQA˜PV/AlL`Ò¬QA˜XV/AlL`جQA˜dV/AlLàà¬QA˜V/AlLñ¬QA˜£V/AlLà­QA˜ÂV/AlL€ ­QA˜€&V/AlL`,­QA˜{U/AlLÀH­QA˜€U/AlL@W­QA˜ÆT/AlL`e­QA˜T/AlL`o­QA˜€±T/AlLÀw­QA˜€U/AlLÀˆ­QA˜[U/AlL “­QA˜–U/AlL@¡­QA˜€¸U/AlL «­QA˜€³U/AlL ¾­QA˜€ºU/AlL`ã­QA˜èU/AlL€ô­QA˜-V/AlL€®QA˜€\V/AlLÀ*®QA˜€mV/AlL0>®QA˜ÀpV/AlLB®QA˜zV/AlL@I®QA˜ŠV/AlL€i®QA˜œV/AlL Š®QA˜€ªV/AlLÀ©®QA˜€¾V/AlL€Ê®QA˜€ÚV/AlLÀí®QA˜€ÆV/AlLà#¯QA˜€½V/AlLàW¯QA˜±V/AlL ‹¯QA˜€«V/AlL ¦¯QA˜‡V/AlL½¯QA˜€iV/AlLïQA˜2V/AlL`ɯQA˜ÓU/AlLЯQA˜U/AlLàÞ¯QA˜€ŠT/AlL@å¯QA˜€úS/AlLæ¯QA˜pS/AlL ì¯QA˜ST/AlLp°QA˜pT/AlLÀ°QA˜€·T/AlLÀ°QA˜€ U/AlL .°QA˜YU/AlL`7°QA˜€¦U/AlL D°QA˜€æU/AlL€O°QA˜€WV/AlLa°QA˜·V/AlL m°QA˜W/AlL y°QA˜€bW/AlL@„°QA˜€tW/AlL؆°QA˜€ˆW/AlL ‰°QA˜€ÌW/AlL’°QA˜€&X/AlLà™°QA˜@”X/AlL(¦°QA˜€W/AlLàȰQA˜€žV/AlL@è°QA˜ V/AlL@ø°QA˜VU/AlLÀ ±QA˜•T/AlL@±QA˜€T/AlL 6±QA˜€ºS/AlLÀE±QA˜˜R/AlL y±QA˜€uR/AlL`±QA˜€;R/AlLàŠ±QA˜€ïQ/AlLà±QA˜€æQ/AlL€š±QA˜¡Q/AlL§±QA˜€~Q/AlL¶±QA˜€AQ/AlLÀÁ±QA˜P/AlL û±QA˜LO/AlL€#²QA˜~N/AlLQ²QA˜€ûM/AlLt²QA˜€M/AlL@•²QA˜èK/AlL ½²QA˜hK/AlL βQA˜éJ/AlL@ß²QA˜€gI/AlL@³QA˜€H/AlL H³QA˜G/AlL p³QA˜šF/AlL ³QA˜úE/AlLàŽ³QA˜E/AlL ¤³QA˜œC/AlL ¾³QA˜ˆB/AlL€Ê³QA˜€A/AlLxسQA˜eA/AlLàÚ³QA˜C@/AlL ð³QA˜–?/AlLü³QA˜Q?/AlL`´QA˜ò>/AlL ´QA˜Á>/AlL`´QA˜t>/AlLÀ´QA˜&>/AlL ´QA˜€ò=/AlL ´QA˜€ç=/AlL ´QA˜ë=/AlL ´QA˜€ò=/AlL´QAHøc–þ=/A®ùiž´QA˜€>/AlLà(´QA˜€2>/AlL8´QA˜X>/AlL`D´QA˜€š>/AlLR´QA˜º>/AlL`W´QA˜Ï>/AlL _´QA˜²>/AlLàe´QA˜”>/AlL k´QA˜Œ>/AlL r´QA˜r>/AlLày´QA˜€b>/AlL`‡´QA˜€v>/AlLà‘´QA˜€”>/AlLàœ´QA˜€¡>/AlL ª´QA˜»>/AlLà·´QA˜?/AlLÄ´QA˜€F?/AlLδQA˜€w?/AlLÀÚ´QA˜¤?/AlL@é´QA˜×?/AlLö´QA˜€$@/AlLÀ µQA˜p@/AlL€µQA˜€—@/AlL&µQA˜ä@/AlL@4µQA˜€7A/AlLÀ<µQA˜€‰A/AlLÀDµQA˜êA/AlL VµQA˜€TB/AlL@pµQA˜€B/AlL ƒµQA˜ÜB/AlL`–µQA˜€C/AlL¨µQA˜)C/AlL€²µQA˜ C/AlL@ƵQA˜€"C/AlL еQA˜QC/AlL ÝµQA˜¦C/AlL`çµQA˜D/AlL îµQA˜€dD/AlL ÷µQA˜‹D/AlL€¶QA˜€ÁD/AlL¶QA˜E/AlL@ÿµQA˜€bE/AlLàùµQA˜­E/AlLöµQA˜€ùE/AlL`òµQA˜€>F/AlLîµQA˜€ˆF/AlL`ëµQA˜€ÇF/AlLàéµQA˜G/AlL çµQA˜wG/AlL áµQA˜ºG/AlL àµQA˜€!H/AlL@ßµQA˜‚H/AlL`ßµQA˜€ÄH/AlL€ÞµQA˜€I/AlL`ÚµQA˜€WI/AlL€×µQA˜³I/AlL@ÙµQA˜€'J/AlLÚµQA˜tJ/AlL@ÙµQA˜ÂJ/AlL`ÚµQA˜)K/AlL€ÝµQA˜€vK/AlLßµQA˜¦K/AlL€äµQA˜€àK/AlL@îµQA˜(L/AlL`÷µQA˜L/AlLÀùµQA˜ M/AlLÀýµQA˜‹M/AlL ¶QA˜ÿM/AlL ¶QA˜€jN/AlLà ¶QA˜²N/AlL@¶QA˜€åN/AlL@¶QA˜O/AlL%¶QA˜RO/AlL€*¶QA˜¼O/AlL€+¶QA˜ÞO/AlL0¶QA˜P/AlL ;¶QA˜2P/AlLà>¶QA˜XP/AlL0?¶QA˜lP/AlL`?¶QA˜ÈP/AlLB¶QA˜Q/AlL @¶QA˜rQ/AlLàB¶QA˜ÅQ/AlL`H¶QA˜*R/AlL€K¶QA˜€mR/AlL T¶QA˜¨R/AlLÀ^¶QA˜ôR/AlLk¶QA˜€QS/AlL w¶QA˜®S/AlL€~¶QA˜€ T/AlL „¶QA˜€XT/AlL€‰¶QA˜©T/AlL ˜¶QA˜ðT/AlL@¢¶QA˜€HU/AlL`°¶QA˜€—U/AlLྲྀQA˜€V/AlL@ʶQA˜JV/AlL@ѶQA˜ŠV/AlL`ضQA˜ÕV/AlL@×¶QA˜€W/AlL ݶQA˜€]W/AlL@ã¶QA˜€W/AlL€è¶QA˜€ËW/AlLÀî¶QA˜€øW/AlL€ø¶QA˜€"X/AlL ·QA˜€…X/AlL  ·QA˜€ÚX/AlL ·QA˜€Y/AlL@·QA˜€RY/AlL`·QA˜oY/AlL·QA˜€wY/AlLà%·QA˜€zY/AlL .·QA˜€§Y/AlL`;·QA˜ÊY/AlL€E·QA˜ Z/AlL F·QA˜€\Z/AlLÀF·QA˜ÄZ/AlLI·QA˜€[/AlLàG·QA˜€b[/AlL`I·QA˜É[/AlL€I·QA˜\/AlL I·QA˜€b\/AlL€D·QA˜€Ó\/AlL€@·QA˜D]/AlLÀD·QA˜€¸]/AlLE·QA˜^/AlLà?·QA˜t^/AlL`=·QA˜€ó^/AlL<·QA˜€U_/AlL@9·QA˜e_/AlL 9·QA˜€À_/AlL€8·QA˜$`/AlL`:·QA˜¤`/AlL<·QA˜€ö`/AlL@?·QA˜€da/AlL @·QA˜€×a/AlL C·QA˜Cb/AlL I·QA˜€¡b/AlLT·QA˜€Dc/AlL@b·QA˜Ëc/AlLm·QA˜€d/AlLÀu·QA˜€!d/AlLà{·QA˜:d/AlLà…·QA˜‘d/AlL@”·QA˜Ñd/AlL`›·QA˜4e/AlLÀž·QA˜€te/AlL`£·QA˜e/AlL0¤·QA˜€¾e/AlLÀ¨·QA˜€-f/AlL€¬·QA˜¢f/AlL€¬·QA˜€#g/AlLÀ£·QA˜€•g/AlL@›·QA˜€Ûg/AlL@”·QA˜€7h/AlL Ž·QA˜€žh/AlLÀŠ·QA˜ñh/AlL`‚·QA˜€i/AlL`w·QA˜€@i/AlLo·QA˜€~i/AlLi·QA˜Âi/AlL@b·QA˜j/AlLÀV·QA˜€rj/AlLÀQ·QA˜ìj/AlL@I·QA˜€8k/AlL A·QAÌ@»0AlLà&¦QAÌÀå0AlLÀï¥QAÌ@Ð0AlL ò¥QA̾0AlLà¦QAÌ€h0AlLà3¦QAÌ€Y0AlL Q¦QAÌ0AlL`{¦QAÌÀ10AlL¦QAÌÀV0AlLà„¦QAÌ€|0AlL ¦QAÌ@§0AlL”¦QAÌ@É0AlL०QAÌ@Ê0AlL`°¦QAÌÀÆ0AlLÀÀ¦QA̾0AlL Í¦QA̱0AlLܦQAÌÀ¡0AlL î¦QAÌ@ƒ0AlL`§QAÌÀr0AlLÀ2§QAÌÀn0AlLA§QAÌÎ0AlLà7§QAÌ@î0AlL@ã¦QAÌÀ-0AlLÀ‡¦QAÌ@'0AlL€…¦QAÌÀu0AlLàV¦QAÌ@»0AlLà&¦QA˜Ì/AlL E¡QA˜€CÌ/AlL 2¡QA˜€ÆÌ/AlL°;¡QA˜Í/AlL 1¡QA˜€!Í/AlL€&¡QA˜Í/AlL@¡QA˜€ÒÌ/AlLà¡QA˜€æÌ/AlL€¡QA˜÷Ì/AlL û QA˜ÖÌ/AlLÀê QA˜€¹Ì/AlL Ù QA˜€¦Ì/AlLàÈ QA˜€|Ì/AlLಠQA˜€UÌ/AlL ¢ QA˜€;Ì/AlL  QA˜ÄË/AlL@€ QA˜tË/AlL`p QA˜·Ë/AlL g QA˜ÿË/AlL@e QA˜€BË/AlL`1 QA˜€Ë/AlL & QA˜€öÊ/AlL€ QA˜ÒÊ/AlL` QA˜¶Ê/AlLðŸQA˜€ŽÊ/AlL@äŸQA˜€7Ê/AlL`ÝŸQA˜€6Ê/AlLÀПQA˜4Ê/AlL`ÇŸQA˜RÊ/AlL࿟QA˜nÊ/AlL€®ŸQA˜yÊ/AlL€¡ŸQA˜9Ê/AlL “ŸQA˜€ôÉ/AlL@ˆŸQA˜€öÉ/AlL yŸQA˜€ Ê/AlL€iŸQA˜5Ê/AlLÀUŸQA˜€HÊ/AlLHŸQA˜€?Ê/AlL ;ŸQA˜€øÉ/AlL€0ŸQA˜É/AlL /ŸQA˜É/AlL€PŸQA˜€¦È/AlLàgŸQA˜RÈ/AlL@yŸQA˜àÇ/AlLà‘ŸQA˜€®Ç/AlL@¢ŸQA˜€UÇ/AlLÀ¶ŸQA˜€6Ç/AlLཟQA˜€šÆ/AlL@àŸQA˜€EÆ/AlLÀöŸQA˜€Æ/AlL€ÿŸQA˜ÂÅ/AlL` QA˜ßÄ/AlL@4 QA˜¦Ä/AlLA QA˜_Ä/AlL@L QA˜Ä/AlL`X QA˜€ÜÃ/AlL€a QA˜€ŽÃ/AlLÐn QA˜Ì/AlL E¡QA˜€CÏ/AlL`¼¢QA˜œÎ/AlL ¹¢QA˜'Î/AlL๢QA˜€ÄÍ/AlLÀ¹¢QA˜€NÍ/AlL@¸¢QA˜€¶Ì/AlL ³¢QA˜€yÌ/AlL`­¢QA˜ Ì/AlL ­¢QA˜ŽË/AlL ®¢QA˜+Ë/AlL@®¢QA˜€°Ê/AlL ª¢QA˜@Ê/AlL`¦¢QA˜îÉ/AlLà¡¢QA˜€´É/AlL ™¢QA˜€ŒÉ/AlL`Ÿ¢QA˜€É/AlL€°¢QA˜Æ/AlLÀ(£QA˜¢Æ/AlL 1£QA˜€:Ç/AlL€:£QA˜˜É/AlLÀ_£QA˜Ë/AlL€w£QA˜0Ë/AlLÀx£QA˜hÌ/AlLÀ‹£QA˜Ì/AlL †£QA˜þÌ/AlLÀt£QA˜€WÍ/AlL d£QA˜ÅÍ/AlLQ£QA˜ Î/AlL@F£QA˜kÎ/AlL6£QA˜€çÎ/AlLÀ'£QA˜cÏ/AlL€£QA˜ÓÏ/AlL £QA˜4Ð/AlLàô¢QA˜~Ð/AlL ã¢QA˜eÐ/AlL°Ù¢QA˜Ð/AlL Ñ¢QA˜¢Ï/AlLÇ¢QA˜€CÏ/AlL`¼¢QA('°˜€ÕW/A:DT_àlQA˜€)å/AlLàXyQAó˜€h×/AlLMyQA˜€«×/AlL`AyQA˜€å×/AlL:yQA˜Ø/AlL`+yQA˜€“Ø/AlLÀyQA˜¨Ø/AlL0yQA˜$Ù/AlL yQA˜€†Ù/AlL ðxQA˜€Ú/AlLàÜxQA˜€kÚ/AlL€ÑxQA˜€ÅÚ/AlLà¿xQA˜3Û/AlLÀ¯xQA˜€¢Û/AlL ŸxQA˜€Ü/AlL@ŒxQA˜€\Ü/AlLÀyxQA˜€Ü/AlL€nxQA˜€Ý/AlL@[xQA˜€]Ý/AlL OxQA˜€®Ý/AlLÀ>xQA˜€ôÝ/AlL€.xQA˜€2Þ/AlL@ xQA˜€cÞ/AlL@xQA˜€“Þ/AlLà xQA˜€ÄÞ/AlLþwQA˜€÷Þ/AlL ôwQA˜€'ß/AlL@êwQA˜€¾ß/AlL`ÊwQA˜âß/AlL ÀwQA˜€à/AlL ·wQA˜Ià/AlL ©wQA˜kà/AlL ŸwQA˜€›à/AlLà“wQA˜€½à/AlL ŒwQA˜Üà/AlL`wQA˜€øà/AlL€vwQA˜€#á/AlL jwQA˜Sá/AlL@`wQA˜{á/AlLÀUwQA˜€¢á/AlL€LwQA˜€ãá/AlLÀCwQA˜fâ/AlL2wQA˜€¦â/AlL@+wQA˜€èâ/AlLà$wQA˜€0ã/AlL wQA˜€nã/AlL wQA˜€—ã/AlL€wQA˜Ïã/AlL@wQA˜€îã/AlL  wQA˜€ ä/AlL wQA˜€ä/AlL@ývQA˜€Oä/AlLàòvQA˜€”ä/AlL ëvQA˜€Øä/AlL@èvQA˜€)å/AlL˜ßvQA˜)å/AlL ÙvQA˜å/AlL`ÔvQA˜€³ä/AlL€ÍvQA˜€ƒä/AlLÀÈvQA˜€Nä/AlL`ÂvQA˜€ ä/AlL€ÃvQA˜Ôã/AlL@ÅvQA˜€‡ã/AlL ÅvQA˜€Tã/AlL`ÃvQA˜ã/AlL`¾vQA˜€ã/AlL ¹vQA˜öâ/AlL€±vQA˜€ñâ/AlL ªvQA˜€ïâ/AlL` vQA˜€ûâ/AlL`™vQA˜€üâ/AlL ‹vQA˜€øâ/AlLÀƒvQA˜€òâ/AlLàvvQA˜Þâ/AlL`ovQA˜€ßâ/AlLàhvQA˜€Õâ/AlL€]vQA˜€Éâ/AlL VvQA˜€­â/AlL€OvQA˜€qâ/AlL@KvQA˜€2â/AlLHvQA˜€ìá/AlLÀCvQA˜€“á/AlLÀ@vQA˜€6á/AlL@;vQA˜€åà/AlL@8vQA˜€—à/AlLÀ3vQA˜à/AlL@-vQA˜€™ß/AlL)vQA˜€ôÞ/AlLà"vQA˜€‰Þ/AlL`vQA˜€ïÝ/AlL€vQA˜€‹Ý/AlL vQA˜€#Ý/AlL vQA˜€ØÜ/AlLÀÿuQA˜€•Ü/AlL`ùuQA˜€\Ü/AlL óuQA˜€)Ü/AlL íuQA˜€ÚÛ/AlL`ãuQA˜€–Û/AlLÛuQA˜YÛ/AlL ÒuQA˜€Û/AlL€ÈuQA˜€åÚ/AlLÀ½uQA˜€ÓÚ/AlL µuQA˜€ÂÚ/AlL ©uQA˜€ÇÚ/AlL` uQA˜ÒÚ/AlL`‘uQA˜€îÚ/AlL@…uQA˜Û/AlL |uQA˜€OÛ/AlL€ruQA˜€bÛ/AlL cuQA˜€GÛ/AlL@RuQA˜€Û/AlL EuQA˜€ÑÚ/AlL >uQA˜€‰Ú/AlL€9uQA˜€2Ú/AlL8uQA˜ÒÙ/AlL 7uQA˜€jÙ/AlL 1uQA˜*Ù/AlLà*uQA˜€Ù/AlLÀuQA˜€Ù/AlL uQA˜€ Ù/AlLÐuQA˜€&Ù/AlL uQA˜€mÙ/AlL ùtQA˜€–Ù/AlL ïtQA˜€Ú/AlL ×tQA˜€3Ú/AlLÎtQA˜€BÚ/AlL`ÊtQA˜€ŽÚ/AlLð½tQA˜€”Ú/AlL€­tQA˜˜Ú/AlL€¤tQA˜€Ú/AlL štQA˜€ˆÚ/AlLàtQA˜€†Ú/AlLà‚tQA˜€xÚ/AlL {tQA˜€7Ú/AlL`utQA˜Ú/AlL€jtQA˜€¶Ù/AlLàitQA˜€AÙ/AlL`ntQA˜€¶Ø/AlLÀutQA˜HØ/AlLwtQA˜ Ø/AlLÐutQA˜€ó×/AlL utQA˜»×/AlL otQA˜B×/AlLÀdtQA˜€ìÖ/AlL [tQA˜ÉÖ/AlL StQA˜€®Ö/AlLÀHtQA˜­Ö/AlL=tQA˜€¦Ö/AlLà1tQA˜€zÖ/AlL`'tQA˜(Ö/AlL°#tQA˜ÙÕ/AlL@(tQA˜€¨Õ/AlL)tQA˜€jÕ/AlL€'tQA˜€.Õ/AlL@#tQA˜€ìÔ/AlL`tQA˜€¥Ô/AlLtQA˜€LÔ/AlL€tQA˜€Ô/AlL@tQA˜€¿Ó/AlLÀtQA˜€8Ó/AlLÀ$tQA˜€áÒ/AlL.tQA˜—Ò/AlLà4tQA˜€-Ò/AlL >tQA˜€ÊÑ/AlLFtQA˜€SÑ/AlL€QtQA˜€ãÐ/AlL`ZtQA˜jÐ/AlL _tQA˜€2Ð/AlL ^tQA˜€üÏ/AlLàVtQA˜ôÏ/AlLÀEtQA˜(Ð/AlL 7tQA˜€HÐ/AlL€/tQA˜€YÐ/AlL &tQA˜4Ð/AlLtQA˜€Ð/AlLÀ tQA˜€çÏ/AlLàýsQA˜€ÞÏ/AlLûsQA˜€µÏ/AlL ñsQA˜€Ï/AlLpæsQA˜…Ï/AlL ãsQA˜€@Ï/AlLÝsQA˜Ï/AlL€ÒsQA˜ËÎ/AlL ÌsQA˜›Î/AlLÐÊsQA˜€0Î/AlL ÒsQA˜€ûÍ/AlL`×sQA˜âÍ/AlLÚsQA˜€AÍ/AlL€ësQA˜€Í/AlLósQA˜€ãÌ/AlL@ùsQA˜€—Ì/AlLàtQA˜€UÌ/AlL tQA˜€öË/AlLà tQA˜‘Ë/AlL0tQA˜[Ë/AlLÀ tQA˜YË/AlL`üsQA˜lË/AlL@ðsQA˜€jË/AlL`ãsQA˜€1Ë/AlL`ÝsQA˜€ÆÊ/AlL`ÚsQA˜€—Ê/AlL€ÙsQA˜HÊ/AlL ÊsQA˜€Ê/AlLÎsQA˜€öÉ/AlL ÕsQA˜€ÉÉ/AlLÀÚsQA˜€–É/AlL`ÞsQA˜TÉ/AlLÀÞsQA˜É/AlL@ÕsQA˜€É/AlLÀÑsQA˜€ýÈ/AlL ÈsQA˜€ÕÈ/AlL °sQA˜€ÝÈ/AlL`¥sQA˜€ÕÈ/AlLsQA˜€™È/AlL€’sQA˜\È/AlLàˆsQA˜€ñÇ/AlL …sQA˜€€Ç/AlLÀsQA˜€Ç/AlL sQA˜€ªÆ/AlLàsQA˜=Æ/AlL sQA˜€ÑÅ/AlL@sQA˜yÅ/AlLsQA˜€FÅ/AlL€xsQA˜€îÄ/AlL lsQA˜€ÞÄ/AlLPgsQA˜€ÔÄ/AlL dsQA˜€®Ä/AlL@YsQA˜€~Ä/AlL€MsQA˜€EÄ/AlL@AsQA˜€ÿÃ/AlL5sQA˜€’Ã/AlL@.sQA˜€Ã/AlLà(sQA˜˜Â/AlL &sQA˜1Â/AlL sQA˜òÁ/AlLàsQA˜€¬Á/AlL sQA˜€mÁ/AlL`sQA˜€ïÀ/AlL ïrQA˜€†À/AlL ärQA˜€'À/AlLÞrQA˜»¿/AlL ÖrQA˜€P¿/AlL`ÏrQA˜€%¿/AlLàÄrQA˜€Ø¾/AlL@·rQA˜l¾/AlL`šrQA˜@@¾/AlLPrQA˜€*¾/AlLà‰rQA˜´½/AlL ‚rQA˜½/AlLÀ}rQA˜€«¼/AlL€|rQA˜?¼/AlL xrQA˜€Ì»/AlLnrQA˜›»/AlLarQA˜ª»/AlL RrQA˜€¸»/AlL FrQA˜€¾»/AlLà:rQA˜¯»/AlLà*rQA˜L»/AlLÐrQA˜€òº/AlL€"rQA˜âº/AlLÀ$rQA˜€ º/AlL`-rQA˜Qº/AlL€6rQA˜é¹/AlL |£/AìáCï™nQA¨gÝg£/A¢RI‡/AÄ3 ðmQA€$Rî†/AVs1 ñmQAÈ„⪆/A8ïmQA8 *â"†/A ]6 êmQAèMBž…/Aœå* ßmQA Û R …/A2º4`ÝmQA àÎA}„/Aœå*àÝmQA(ÀüQéƒ/Aœå* ÜmQAhRÈQsƒ/Ax,.€×mQA€®Ñû‚/Aœå*ÕmQAȧᰂ/AæÏ/ ÕmQAø6»QW‚/A ]6`ÔmQA¸¤ïQ‚/A|¤9àÖmQAéá»/Ax,.`àmQA àÎAv/AÄ3ÀâmQA°ÄÁáö€/Aœå* ßmQAÀ­yÑa€/A|¤9 àmQAXršA€/A|¤9æmQA°ÄÁAš/A|¤9@ìmQAø6»QB/Aœå*ÀîmQAXršAÎ~/AVs1€ímQAx;€A^~/A2º4€ìmQAH’lQ ~/A|¤9 ðmQA¡QÑ}/AæÏ/`÷mQAø?EQ}/A ]6@ýmQA°ÍKá<}/Aœå*àýmQA íQ }/A.B)€nQA sáÞ|/Aœå* nQA +Q‰|/A2º4€nQA éXá_|/Ax,. nQAèVá@|/A2º4 nQAh[RQù{/Ax,.@!nQAЖ1á¡{/Ax,.€nQA0ÒQK{/A.B)€nQA˜ ð@{/A ]6€ nQAôE{/A(R„nQAXGkùz/AX :[nQAÀ¶Q¯z/Ax,.@)nQAP›öPLz/AæÏ/À4nQA +Q-z/AVs1:nQA íQüy/AVs1à:nQA +QÂy/AæÏ/ =nQAh[RQyy/A8?nQAhdÜPFy/A2º4@nQAxD áy/A ‰,@BnQAè_á¿x/A8`CnQAè_ájx/A2º4à@nQAøHÏPx/A|¤9à>nQA +Q»w/AæÏ/ =nQA`„®àhw/A ]6 >nQAøHÏÐ#w/AVs1À;nQA(òâ@­v/A ]6€;nQAП»@(v/A2º4 ?nQAðh¡àâu/AVs1 AnQAP¤€P’u/AVs1 DnQAàéPMu/A8 InQAøHÏPu/A.B)€QnQA¨ö§P‰t/A ‰,€`nQAxM”@jt/A ‰,àtnQA(ûlàt/Ax,. znQAÀ¿Ð‘s/Ax,. ‚nQARYP1s/A ‰,`‰nQAˆ6LPÜr/A2º4ànQAèΘepr/Aœ(; nQAÈb ‹\r/AŽÚuÕ¢nQA˜®q/AlL@¾nQA˜€uq/AlLÍnQA˜Sq/AlL`ÜnQA˜bq/AlL ìnQA˜€?q/AlL`ønQA˜€±p/AlL@oQA˜Ep/AlL&oQA˜Ýo/AlL`3oQA˜€;o/AlL8oQA˜Wn/AlL`AoQA˜n/AlLEoQA˜€¸m/AlL`RoQA˜€cm/AlL@eoQA˜€m/AlL@{oQA˜ m/AlLŒoQA˜4m/AlL –oQA˜€dm/AlLà¤oQA˜gm/AlL€ºoQA˜€em/AlL`ÏoQA˜lm/AlLÀÜoQA˜zm/AlLîoQA˜€|m/AlL€ñoQA˜€Zm/AlL@üoQA˜m/AlLà pQA˜öl/AlLàpQA˜€Vl/AlL@QpQA˜€Xl/AlLÀfpQA˜Jl/AlL€~pQA˜Ul/AlL ŽpQA˜ol/AlL ˜pQA˜‘l/AlL@¨pQA˜€Fl/AlL¾pQA˜-l/AlLàÎpQA˜€6l/AlL ßpQA˜Ql/AlL`èpQA˜¨l/AlLÀòpQA˜€ÿl/AlL€ôpQA8¹™Cm/Aæ™9øpQA˜€zm/AlL þpQA˜Åm/AlL@qQA˜€)n/AlL`qQA˜^n/AlL  qQA˜€Xn/AlL@ qQA˜€Hn/AlL@qQA˜€#m/AlL€qQA˜'l/AlL@/AlLÀxQA˜€/AlL@ xQA˜€÷Œ/AlLÀxQA˜ÒŒ/AlLxQA˜€²Œ/AlL€$xQA˜€ŸŒ/AlLà,xQA˜€ˆŒ/AlL6xQA˜rŒ/AlL AxQA˜€]Œ/AlL€MxQA˜€AŒ/AlL _xQA˜eŒ/AlLÀnxQA˜€wŒ/AlL@yxQA˜ŽŒ/AlL xQA˜ÅŒ/AlL@‰xQA˜€ýŒ/AlL€xQA˜€Q/AlL˜xQA˜†/AlL€›xQA˜€À/AlL€ŸxQA˜€Ž/AlL £xQA˜CŽ/AlL ¦xQA˜€‘Ž/AlL ªxQA˜€ìŽ/AlL`©xQA˜8/AlL€§xQA˜l/AlL@¤xQA˜Ç/AlL€£xQA˜/AlLÀ¢xQA˜€j/AlL`¢xQA˜€®/AlL€£xQA˜€à/AlL€¯xQA˜€ü/AlL€¶xQA˜(‘/AlL »xQA˜©‘/AlL€ºxQA˜€’/AlL·xQA˜~’/AlL ´xQA˜€“/AlL ±xQA˜v“/AlL`¯xQA˜€í“/AlL®xQA˜?”/AlL «xQA˜”/AlLà¨xQA˜ •/AlL ¦xQA˜€m•/AlL§xQA˜Ñ•/AlLà¨xQA˜€–/AlL«xQA˜€%–/AlL ¬xQA˜v–/AlL ·xQA˜Û–/AlLÅxQA˜'—/AlL€ÍxQA˜‰—/AlL ÕxQA˜€æ—/AlL€ÞxQA˜[˜/AlL€æxQA˜æ˜/AlLíxQA˜€K™/AlL ïxQA˜µ™/AlLàðxQA˜€š/AlL èxQA˜sš/AlL åxQA˜›/AlLàâxQA˜;›/AlLàâxQA˜€m›/AlLÀâxQA˜€¾›/AlL@âxQA˜ý›/AlL€áxQA˜3œ/AlLßxQA˜cœ/AlL`ÜxQA˜€°œ/AlLÚxQA˜€òœ/AlLàÚxQA˜€*/AlL ÛxQA˜`/AlL@ÜxQA˜€­/AlLÀÚxQA˜Õ/AlL€ÕxQA˜€ÿ/AlL ÍxQA˜ž/AlL@ÅxQA˜Kž/AlL ¼xQA˜€až/AlLÀ´xQA˜€dž/AlLÀ«xQA˜dž/AlL€¥xQA˜…ž/AlLà˜xQA˜€¥ž/AlL`”xQA˜áž/AlL xQA˜€Ÿ/AlL`xQA˜9Ÿ/AlL ŒxQA˜€‰Ÿ/AlL€ˆxQA˜êŸ/AlL …xQA˜€9 /AlL€ƒxQA˜¡ /AlL ‚xQA˜é /AlL‚xQA˜€”¡/AlL@~xQA˜€¢/AlL {xQA˜€s¢/AlL`wxQA˜ƒ¢/AlLàexQA˜€Ç¢/AlLixQA˜ £/AlL`gxQA˜€F£/AlLàexQA˜£/AlL exQA˜€®£/AlLÀfxQA˜€í£/AlLÀexQA˜H¤/AlLbxQA˜”¤/AlL _xQA˜è¤/AlL _xQA˜p¥/AlL axQA˜€³¥/AlL cxQA˜!¦/AlL exQA˜y¦/AlL`ixQA˜€Ä¦/AlL@gxQA˜7§/AlL@dxQA˜|§/AlL`cxQA˜½§/AlL bxQA˜€¨/AlL€`xQA˜3¨/AlL \xQA˜b¨/AlL€WxQA˜¢¨/AlLÀWxQA˜©/AlL@^xQA˜E©/AlL€_xQA˜©/AlLÀ_xQA˜€¯©/AlLà^xQA˜€$ª/AlL _xQA˜€Zª/AlLˆ`xQA˜€Õª/AlL€bxQA˜€«/AlL`xQA˜€V«/AlL@_xQA˜€Œ«/AlL[xQA˜€º«/AlLàWxQA˜€,¬/AlL SxQA˜€›¬/AlLÀMxQA˜€Ø¬/AlL€IxQA˜€­/AlLGxQA˜€T­/AlL€CxQA˜€•­/AlL>xQA˜€Ò­/AlL€:xQA˜€®/AlL@6xQA˜2®/AlLP4xQA˜I®/AlL3xQA˜ƒ®/AlL0xQA˜€¾®/AlL.xQA˜ú®/AlL@/xQA˜€8¯/AlL 0xQA˜n¯/AlLÀ0xQA˜€É¯/AlL`/xQA˜ °/AlL -xQA˜€<°/AlL .xQA˜€Z°/AlL`5xQA˜€Q°/AlLà>xQA˜€.°/AlLàDxQA˜€°/AlL LxQA˜€ë¯/AlL`WxQA˜ú¯/AlL^xQA˜°/AlL axQA˜a°/AlL YxQA˜€Ä°/AlL€TxQA˜±/AlLàOxQA˜F±/AlLÀNxQA˜€x±/AlL€NxQA˜è±/AlL`MxQA˜€"²/AlL LxQA˜€S²/AlLàKxQA˜€…²/AlL€LxQA˜€ø²/AlLÀOxQA˜€X³/AlLàOxQA˜©³/AlL SxQA˜€´/AlL@VxQA˜€r´/AlL ZxQA˜€õ´/AlL@]xQA˜kµ/AlL`xQA˜Þµ/AlL@cxQA˜€"¶/AlL`cxQA˜\¶/AlLàdxQA˜€‘¶/AlLàexQA˜€ý¶/AlLgxQA˜€9·/AlL@gxQA˜j·/AlLhxQA˜·/AlL@hxQA˜€õ·/AlL ixQA˜€Q¸/AlL€nxQA˜€¦¸/AlLÀpxQA˜€›¹/AlLà€xQA˜,º/AlLŒxQA˜€~º/AlLÀ’xQA˜¬º/AlL–xQA˜¸º/AlL—xQA˜€Äº/AlLà—xQA˜€%»/AlL›xQA˜€m»/AlL ŸxQA˜€Þ»/AlL ¡xQA˜€D¼/AlL€£xQA˜€“¼/AlL¦xQA˜á¼/AlL`§xQA˜I½/AlLÀ¨xQA˜€½½/AlL@¬xQA˜<¾/AlLà°xQA˜€=¿/AlL€»xQA˜€—¿/AlL@ÀxQA˜À/AlLÀÂxQA˜rÀ/AlL`ÅxQA˜Á/AlLàÊxQA˜CÁ/AlL@ÂxQA˜hÁ/AlL@½xQA˜ŠÁ/AlL@³xQA˜€·Á/AlL ­xQA˜"Â/AlLÀ©xQA˜€gÂ/AlLÀ£xQA˜€µÂ/AlL xQA˜Ã/AlL˜xQA˜€`Ã/AlL@ŽxQA˜€­Ã/AlLà…xQA˜€øÃ/AlL@xQA˜€=Ä/AlL ~xQA˜€vÄ/AlLà|xQA˜€ËÄ/AlLà~xQA˜€Å/AlL€~xQA˜tÅ/AlL€|xQA˜µÅ/AlL{xQA˜€ùÅ/AlL`zxQA˜€,Æ/AlL zxQA˜iÆ/AlL yxQA˜©Æ/AlLàyxQA˜õÆ/AlL`{xQA˜€|Ç/AlLÀ~xQA˜€ïÇ/AlL€ŠxQA˜€5È/AlLÀxQA˜ŽÈ/AlL—xQA˜€äÈ/AlL€xQA˜€É/AlL¢xQA˜€vÉ/AlL`ªxQA˜€úÉ/AlL@°xQA˜€ Ê/AlL0±xQA˜€:Ê/AlL`³xQA˜€’Ê/AlL ¸xQA˜€ôÊ/AlL¾xQA˜gË/AlL ÈxQA˜€½Ë/AlLàÏxQA˜€MÌ/AlL ÙxQA˜€ÀÌ/AlL ßxQA˜0Í/AlL`åxQA˜€ÎÍ/AlL íxQA˜€TÎ/AlLÀòxQA˜€ÅÎ/AlL@õxQA˜€LÏ/AlLàøxQA˜èÏ/AlL€ûxQA˜€dÐ/AlL ÿxQA˜€æÐ/AlL€yQA˜€IÑ/AlL yQA˜€ÃÑ/AlLÀyQA˜€Ò/AlLÀyQA˜€aÒ/AlL€yQA˜€ÎÒ/AlL "yQA˜'Ó/AlL@'yQA˜€oÓ/AlL`.yQA˜®Ó/AlL€5yQA˜€åÓ/AlLÀ=yQA˜€'Ô/AlL EyQA˜€`Ô/AlL`GyQA˜€³Ô/AlL`JyQA˜€çÔ/AlLKyQA˜€Õ/AlL@JyQA˜€`Õ/AlL KyQA˜€ªÕ/AlL@OyQA˜€×Õ/AlL QyQA˜€€Ö/AlLàXyQA˜€¸Ö/AlL`UyQA˜€×/AlL RyQA˜€h×/AlLMyQA)3à˜€ãº.AlLàI±QA˜€•D/AlL/ÇQAy˜Þ0/AlL0+ÇQA˜¹0/AlL ÇQA˜€ 1/AlLÀÇQA˜€Y1/AlLp-ÇQA˜o1/AlLp)ÇQA˜c1/AlLÀÇQA˜›2/AlLÇQA˜€Á3/AlL@ÇQA˜€¬7/AlLPÇQA˜:/AlL€ ÇQA˜€·;/AlL@ ÇQA˜$=/AlL ÇQA˜~=/AlL ÇQA˜>/AlL ÇQA˜s>/AlL@ÇQA˜Ô>/AlL@ÇQA˜?/AlL`ÇQA˜€}?/AlLÀþÆQA˜€@/AlL`üÆQA˜€x@/AlLàûÆQA˜ã@/AlL üÆQA˜ZA/AlLàúÆQA˜€B/AlL`øÆQA˜€‰B/AlLøÆQA˜ôB/AlLøÆQA˜€TC/AlL€÷ÆQA˜­C/AlL øÆQA˜€ÿC/AlLÀøÆQA˜€%D/AlL ùÆQA˜€oD/AlLÀùÆQA˜€kD/AlL€óÆQA˜jD/AlLà߯QA˜gD/AlL€ÖÆQA˜€dD/AlLÀÏÆQA˜€hD/AlL ÅÆQA˜€vD/AlL@¾ÆQA˜€D/AlL¥ÆQA˜€•D/AlL  ÆQA˜’D/AlL˜ÆQA˜vD/AlLÀÆQA˜€?D/AlLŠÆQA˜€ÝC/AlL ‚ÆQA˜€UC/AlL |ÆQA˜’B/AlLàuÆQA˜™A/AlL nÆQA˜å@/AlL€hÆQA˜$@/AlL eÆQA˜~?/AlLàcÆQA˜¥>/AlLÀbÆQA˜€ê=/AlL bÆQA˜p=/AlL@aÆQA˜€=/AlL_ÆQA˜€°%/AlL_ÅQA˜å$/AlLà\ÅQA˜€—$/AlL€^ÅQA˜€?$/AlLÀkÅQA˜€$/AlLÀtÅQA˜€$/AlLà~ÅQA˜Ò#/AlL@ŽÅQA˜€}#/AlL ’ÅQA˜1#/AlLà‘ÅQA˜x"/AlL@ŽÅQA˜^"/AlL‡ÅQA˜€N"/AlLzÅQA˜6"/AlL@tÅQA˜€"/AlL mÅQA˜€ã!/AlLfÅQA˜€ã!/AlL@_ÅQA˜î!/AlLWÅQA˜"/AlLàOÅQA˜€-"/AlLÀFÅQA˜€^"/AlL =ÅQA˜€Š"/AlL 4ÅQA˜³"/AlLp/ÅQA˜€Â"/AlL -ÅQA˜Þ"/AlL 'ÅQA˜€Û"/AlLÅQA˜€­"/AlL@ÅQA˜”"/AlL@ ÅQA˜€"/AlLÅQA˜€‰"/AlLàÅQA˜€{"/AlL€üÄQA˜€O"/AlLõÄQA˜"/AlL€ñÄQA˜Ó!/AlLPóÄQA˜Ã!/AlLÀóÄQA˜Œ!/AlLàøÄQA˜e!/AlL`ÅQA˜4!/AlLÀ ÅQA˜!/AlLÅQA˜€î /AlL ÅQA˜¦ /AlL ÅQA˜e /AlL@ÅQA˜€ /AlL€ÅQA˜€ß/AlL@ÅQA˜Ý/AlL ÅQA˜×/AlLàÅQA˜€à/AlL ÷ÄQA˜€ÿ/AlL ëÄQA˜€ /AlL@ÛÄQA˜€5 /AlL ÎÄQA˜€E /AlL@ÄÄQA˜K /AlL¾ÄQA˜M /AlL»ÄQA˜€P /AlL€·ÄQA˜Q /AlLP±ÄQA˜Q /AlLà«ÄQA˜H /AlL@ŸÄQA˜> /AlL ”ÄQA˜ /AlLàÄQA˜ô/AlL …ÄQA˜Æ/AlL~ÄQA˜ž/AlL@vÄQA˜€Œ/AlL rÄQA˜h/AlL@kÄQA˜€U/AlL eÄQA˜€8/AlL€[ÄQA˜€(/AlLQÄQA˜/AlL@FÄQA˜ê/AlL 0ÄQA˜à/AlLP*ÄQA˜Ü/AlLà'ÄQA˜Õ/AlL#ÄQA˜Ò/AlLÀ!ÄQA˜€²/AlL`ÄQA˜€‚/AlL ÄQA˜€3/AlLðÃQA˜€/AlLàèÃQA˜€/AlLàÉÃQA˜€S/AlLàºÃQA˜€;/AlL@«ÃQA˜€;/AlLÀ¤ÃQA˜€H/AlL`œÃQA˜€Z/AlL@•ÃQA˜€v/AlL ‡ÃQA˜€n/AlL@€ÃQA˜€U/AlL€vÃQA˜€,/AlLàlÃQA˜€Ü/AlLbÃQA˜€Š/AlL@UÃQA˜€b/AlL GÃQA˜€K/AlLà=ÃQA˜€4/AlLÀ0ÃQA˜€+/AlL@)ÃQA˜€(/AlL &ÃQA˜€5/AlL ÃQA˜€6/AlLàÃQA˜€#/AlLÀ ÃQA˜/AlL ÃQA˜€Ð/AlLàýÂQA˜€³/AlL€ñÂQA˜€¢/AlLàãÂQA˜Ž/AlLàÖÂQA˜€…/AlL@ÍÂQA˜€m/AlL ÁÂQA˜€\/AlLÀ´ÂQA˜€V/AlL ®ÂQA˜H/AlL £ÂQA˜€H/AlL •ÂQA˜€m/AlLà„ÂQA˜€“/AlL wÂQA˜€¥/AlLàhÂQA˜€Ì/AlL XÂQA˜Ú/AlL€PÂQA˜è/AlLHÂQA˜€ó/AlL BÂQA˜õ/AlL 8ÂQA˜ñ/AlL@*ÂQA˜€Ê/AlLÂQA˜€µ/AlL ÂÁQA˜€2/AlLÀû¿QA˜€ü/AlL€÷¿QA˜Ò/AlLÀð¿QA˜§/AlL`ç¿QA˜€w/AlL Û¿QA˜7/AlLÀ׿QA˜€/AlL Ô¿QA˜à/AlLÏ¿QA˜À/AlL Ê¿QA˜€’/AlL¿QA˜f/AlL@»¿QA˜/AlL೿QA˜€á/AlL ¬¿QA˜€/AlL¿QA˜€!/AlLà†¿QA˜ /AlL€}¿QA˜à/AlL h¿QA˜€Ý/AlLàd¿QA˜€Ú/AlL `¿QA˜€É/AlLàP¿QA˜€±/AlL€A¿QA˜€—/AlL0¿QA˜€f/AlLÀ"¿QA˜B/AlL`¿QA˜/AlLà ¿QA˜€î/AlLÀý¾QA˜³/AlLàð¾QA˜€•/AlLå¾QA˜€}/AlLÀÕ¾QA˜€x/AlL Ì¾QA˜€x/AlLà¾QA˜€y/AlLÀ¹¾QA˜€³/AlL€v¾QA˜€F/AlLàe¾QA˜€ /AlL h¾QA˜Û/AlL@h¾QA˜/AlL g¾QA˜€5/AlLÀ`¾QA˜€/AlLàU¾QA˜€ /AlL€N¾QA˜€û /AlL`D¾QA˜€ë /AlL`9¾QA˜é /AlL@/¾QA˜€Ï /AlL@&¾QA˜€· /AlL¾QA˜€“ /AlL ¾QA˜€~ /AlL ¾QA˜O/AlLÀÚ½QA˜—/AlL`Û½QA˜€å/AlL€Ú½QA˜€/AlL Õ½QA˜K/AlL Ñ½QA˜‡/AlLàνQA˜€Ì/AlL€Ì½QA˜€!/AlLàǽQA˜€h/AlLĽQA˜­/AlL À½QA˜/AlL@»½QA˜€‚/AlL µ½QA˜€î/AlL€§½QA˜€x/AlL` ½QA˜/AlLÀœ½QA˜Œ/AlL€™½QA˜€ /AlL–½QA˜Ä/AlLh€½QA˜¯/AlL|½QA˜¡/AlL€y½QA˜€–/AlLàp½QA˜€ˆ/AlL`h½QA˜€r/AlL`a½QA˜c/AlL€Y½QA˜€c/AlLPV½QA˜e/AlLàM½QA˜€m/AlLG½QA˜€€/AlL`A½QA˜Ä/AlL ;½QA˜ý/AlL`6½QA˜€B/AlL€1½QA˜€q/AlL /½QA˜”/AlL€,½QA˜€³/AlL )½QA˜€Ö/AlL`$½QA˜/AlL@½QA˜€/AlL€½QA˜þ/AlLà ½QA˜€Ú/AlLÀ½QA˜€Ù/AlL ô¼QA˜ä/AlL ç¼QA˜€þ/AlL à¼QA˜€/AlL`Ô¼QA˜€þ/AlL€Ë¼QA˜/AlL`ļQA˜7/AlL ¹¼QA˜>/AlL@¡¼QA˜-/AlL ‘¼QA˜'/AlL ¼QA˜ø/AlL€„¼QA˜€¿/AlL€v¼QA˜r/AlL@j¼QA˜A/AlL@`¼QA˜€ /AlL S¼QA˜€Û/AlLÐK¼QA˜€É/AlLÀH¼QA˜«/AlLE¼QA˜€k/AlL =¼QA˜;/AlLà.¼QA˜€/AlLÀ ¼QA˜/AlL¼QA˜€Ï/AlL0é»QA˜Å/AlL@â»QA˜³/AlL€Ú»QA˜ˆ/AlL Ñ»QA˜(/AlL É»QA˜€Á/AlL€É»QA˜]/AlLàÈ»QA˜/AlL`Ê»QA˜‘/AlLàÊ»QA˜/AlLÀÈ»QA˜Û/AlL€Å»QA˜€¨/AlL@º»QA˜/AlLà®»QA˜/AlL`œ»QA˜¥/AlL@–»QA˜è/AlL »QA˜O/AlLà…»QA˜Ñ/AlL€»QA˜€_/AlL€y»QA˜¯/AlL p»QA˜€Ó/AlLàd»QA˜€/AlL€[»QA˜./AlLÀO»QA˜ /AlL H»QA˜/AlLÀ@»QA˜ò/AlLà8»QA˜€è/AlL@4»QA˜€×/AlL ,»QA˜€³/AlL$»QA˜†/AlLÀ»QA˜;/AlL»QA˜€Ö/AlLàÿºQA˜€}/AlL@òºQA˜D/AlLpèºQA˜:/AlLÀæºQA˜€/AlLܺQA˜ /AlL˺QA˜/AlL`¾ºQA˜€/AlL@¶ºQA˜€/AlL`¬ºQA˜ /AlL€¤ºQA˜/AlLà™ºQA˜€â/AlL@ŠºQA˜Ÿ/AlL ~ºQA˜q/AlLPxºQA˜2/AlL`pºQA˜€#/AlLoºQA˜ÿ/AlL mºQA˜€è/AlL@oºQA˜º/AlL rºQA˜š/AlLPvºQA˜‹/AlLxºQA˜o/AlLÀ~ºQA˜`/AlL ‡ºQA˜€4/AlL ”ºQA˜ý/AlL`™ºQA˜Ä/AlL ›ºQA˜e/AlL`œºQA˜)/AlLà›ºQA˜Ì/AlL€œºQA˜€u/AlL@£ºQA˜4/AlL€¥ºQA˜ø/AlLÀ¥ºQA˜€Ö/AlL  ºQA˜­/AlL€”ºQA˜Ñ/AlL†ºQA˜;/AlL~ºQA˜Æ/AlLÀtºQA˜ƒ/AlLÀiºQA˜á/AlLàcºQA˜€$/AlL ^ºQA˜k/AlLTºQA˜¬/AlL@GºQA˜€™/AlL€=ºQA˜€|/AlLà3ºQA˜R/AlL&ºQA˜€/AlL ºQA˜¨/AlLàºQA˜V/AlLPþ¹QA˜J/AlLü¹QA˜/AlL ò¹QA˜·/AlLÀæ¹QA˜u/AlL`Û¹QA˜q/AlLàÔ¹QA˜€‘/AlL€Á¹QA˜À/AlL ¹¹QA˜€É/AlL`·¹QA˜/AlL`¥¹QA˜+/AlLàœ¹QA˜B/AlL”¹QA˜€%/AlLÀ‰¹QA˜€Ü/AlL„¹QA˜€¦/AlL`ƒ¹QA˜€b/AlLйQA˜€0/AlL ¹QA˜€/AlL@•¹QA˜€Ù/AlL ›¹QA˜«/AlL@ ¹QA˜€n/AlL€œ¹QA˜€:/AlL@˜¹QA˜€ú /AlLÀ¹QA˜Á /AlL ˆ¹QA˜{ /AlLÀ|¹QA˜€S /AlL@t¹QA˜€8 /AlL€n¹QA˜€W /AlLb¹QA˜i /AlL X¹QA˜€„ /AlL@K¹QA˜° /AlL@>¹QA˜Ì /AlL@7¹QA˜€ü /AlL /¹QA˜3/AlLà(¹QA˜€N/AlL¹QA˜€ /AlL`¹QA˜€Í /AlLp¹QA˜À /AlLà¹QA˜€‰ /AlL`þ¸QA˜€ /AlL ò¸QA˜ú /AlL`ð¸QA˜€Ø /AlL è¸QA˜à /AlL ×¸QA˜€þ /AlL ̸QA˜€ /AlL°Ä¸QA˜€ /AlL@¾¸QA˜8 /AlL@´¸QA˜€L /AlL ©¸QA˜€Z /AlL`›¸QA˜h /AlL€”¸QA˜j /AlL ޏQA˜€h /AlLà…¸QA˜€¤ /AlL@t¸QA˜À /AlL@n¸QA˜» /AlL e¸QA˜z /AlL@_¸QA˜% /AlL `¸QA˜Ö /AlLà]¸QA˜ /AlLÀZ¸QA˜5 /AlL`V¸QA˜ /AlL€O¸QA˜ /AlLà@¸QA˜ /AlLÀ1¸QA˜€ /AlL`-¸QA˜ /AlL'¸QA˜ /AlL`¸QA˜N /AlL@ ¸QA˜€w /AlLÀü·QA˜¡ /AlL ö·QA˜€ã /AlL ï·QA˜€ù /AlL@è·QA˜€ü /AlLÀÛ·QA˜ /AlL€Ð·QA˜€ñ /AlL0Æ·QA˜ë /AlL ·QA˜Þ /AlL€´·QA˜´ /AlLà­·QA°gT|“ /A\ÒÉX«·QA˜€t /AlLð¨·QA˜€j /AlL ¨·QA˜ /AlL  ·QA˜€¤ /AlL Ÿ·QA˜7 /AlLà ·QA˜f /AlLà§·QA˜: /AlLÀª·QA˜ /AlL@¦·QA˜€ã /AlL€œ·QA˜€Ù /AlL@‘·QA˜¼ /AlLÀ·QA˜€ª /AlL€r·QA˜ /AlLàe·QA˜x /AlL U·QA˜€] /AlL€H·QA˜ /AlL /·QA˜€Á/AlL ·QA˜€t/AlL`·QA˜/AlL@·QA˜½/AlL€·QA˜ˆ/AlLà·QA˜€>/AlL€·QA˜/AlL€·QA˜€Ù/AlL€!·QA˜€†/AlL"·QA˜€ø/AlL€·QA˜€ˆ/AlL€·QA˜@/AlLÀ ·QA˜€/AlL·QA˜Ú/AlL@ó¶QA˜€Ä/AlL€ç¶QA˜€±/AlL@Û¶QA˜£/AlLÀͶQA˜/AlL`ƶQA˜€z/AlL ¼¶QA˜€u/AlL€¯¶QA˜h/AlL`§¶QA˜,/AlL€¢¶QA˜¼/AlLÀš¶QA˜/AlL ‘¶QA˜€¢/AlL …¶QA˜€]/AlL€~¶QA˜/AlLÀy¶QA˜€Õ/AlLÀr¶QA˜”/AlLàe¶QA˜“/AlL ]¶QA˜€³/AlL U¶QA˜è/AlL@J¶QA˜)/AlL€B¶QA˜m/AlL@;¶QA˜•/AlLà4¶QA˜À/AlLà+¶QA˜€/AlL@%¶QA˜/AlLð¶QA˜%/AlL€¶QA˜€N/AlL¶QA˜ˆ/AlL ¶QA˜€¼/AlLà¶QA˜ð/AlL@ýµQA˜/AlL`òµQA˜Ø/AlLÀêµQA˜ /AlLÀãµQA˜t/AlL€ßµQA˜€)/AlL ÛµQA˜Í/AlL`×µQA˜€˜/AlLàÔµQA˜G/AlL ÏµQA˜å/AlLǵQA˜¬/AlLŵQA˜€t/AlLÀõQA˜€./AlL õQA˜€Ü/AlLPÀµQA˜¶/AlL¿µQA˜|/AlL@ºµQA˜€Q/AlLà³µQA˜€1/AlLÀ¬µQA˜€ /AlL`£µQA˜íÿ.AlL žµQA˜€°ÿ.AlLÀ“µQA˜—ÿ.AlL€ŽµQA˜€!ÿ.AlL@‰µQA˜€Ôþ.AlL‡µQA˜ºþ.AlL€€µQA˜£þ.AlL€zµQA˜þ.AlLkµQA˜€ñý.AlLàeµQA˜¼ý.AlL`\µQA˜‚ý.AlLÀUµQA˜?ý.AlL KµQA˜8ý.AlL@;µQA˜Ný.AlL 1µQA˜Šý.AlLà*µQA˜€Üý.AlL€#µQA˜ þ.AlLàµQA˜€[þ.AlLàµQA˜‰þ.AlL µQA˜Ëþ.AlLÀ µQA˜ôþ.AlLÿ´QA˜(ÿ.AlL`ø´QA˜€bÿ.AlL`ñ´QA˜€„ÿ.AlL`ê´QA˜€±ÿ.AlL@Þ´QA˜Ñÿ.AlL Í´QA˜Ùÿ.AlLà¿´QA˜€óÿ.AlL@´´QA˜þÿ.AlL ¬´QA˜€//AlL€¢´QA˜X/AlL@›´QA˜c/AlL’´QA˜€d/AlL@ˆ´QA˜X/AlLà´QA˜&/AlL |´QA˜›ÿ.AlL z´QA˜bÿ.AlL€{´QA˜ ÿ.AlL@{´QA˜€˜þ.AlL@x´QA˜Tþ.AlL0u´QA˜'þ.AlL s´QA˜»ý.AlLÀq´QA˜aý.AlL@q´QA˜€ý.AlLÀr´QA˜€‰ü.AlL u´QA˜%ü.AlLu´QA˜Àû.AlL r´QA˜xû.AlL@q´QA˜€û.AlLàm´QA˜ú.AlLj´QA˜€cú.AlLe´QA˜€!ú.AlL Y´QA˜Ýù.AlLàQ´QA˜€°ù.AlLÀK´QA˜}ù.AlL€F´QA˜€Jù.AlL@?´QA˜€'ù.AlL°8´QA˜ ù.AlLÀ3´QA˜ìø.AlL`.´QA˜€Ëø.AlL€&´QA˜€¹ø.AlL ´QA˜€µø.AlLh´QA˜”ø.AlL` ´QA˜€ø.AlL  ´QA˜€lø.AlL@ù³QA˜gø.AlLÀô³QA˜]ø.AlL@í³QA˜€_ø.AlL@å³QA˜zø.AlL Ù³QA˜žø.AlLÓ³QA˜Ñø.AlLàͳQA˜€ ù.AlLɳQA˜€^ù.AlLƳQA˜€µù.AlL€Á³QA˜ú.AlL€½³QA˜Xú.AlL ·³QA˜€¯ú.AlL`²³QA˜û.AlLÀ¬³QA˜\û.AlL@¨³QA˜û.AlL Ÿ³QA˜€Åû.AlL`˜³QA˜€Çû.AlL ³QA˜«û.AlLÀ{³QA˜€’û.AlLÀq³QA˜û.AlL@e³QA˜nú.AlL d³QA˜€Çù.AlL``³QA˜mù.AlL `³QA˜ðø.AlLÀ`³QA˜„ø.AlLÀ[³QA˜ú÷.AlLT³QA˜€†÷.AlLN³QA˜÷.AlL€F³QA˜€µö.AlL€7³QA˜jö.AlL€(³QA˜ö.AlL@³QA˜Ýõ.AlL ý²QA˜§õ.AlL€ã²QA˜€•õ.AlL@زQA˜õ.AlL`ʲQA˜”õ.AlL`½²QA˜Çõ.AlL®²QA˜€ö.AlL`¨²QA˜8ö.AlL ©²QA˜€Yö.AlL¯²QA˜wö.AlL@º²QA˜„ö.AlL€Ä²QA˜€žö.AlLβQA˜Ëö.AlLزQA˜€æö.AlLݲQA˜(÷.AlL@Þ²QA˜€•÷.AlLÚ²QA˜Ì÷.AlL Ö²QA˜ø.AlLàÒ²QA˜€:ø.AlLàβQA˜yø.AlLàʲQA˜ªø.AlLɲQA˜€Üø.AlLɲQA˜ ù.AlL Å²QA˜€)ù.AlL¶²QA˜7ù.AlL ¬²QA˜Bù.AlL £²QA˜Bù.AlLà˜²QA˜2ù.AlL ‘²QA˜€ù.AlL Š²QA˜¾ø.AlL h²QA˜€‘ø.AlLÀZ²QA˜€sø.AlL I²QA˜€bø.AlLà;²QA˜[ø.AlL@0²QA˜€ø.AlL"²QA˜½÷.AlL²QA˜^÷.AlL€²QA˜€%÷.AlL€ú±QA˜Óö.AlLï±QA˜rö.AlLâ±QA˜€%ö.AlL Û±QA˜€Éõ.AlL€Ö±QA˜+õ.AlL`αQA˜€óô.AlLɱQA˜uô.AlL ¶±QA˜Éó.AlLÀŸ±QA˜ió.AlLÀ±QA˜ó.AlL±QA˜€æò.AlLÀr±QA˜½ò.AlL@c±QA˜zò.AlL V±QA˜€dò.AlLàI±QA˜°ñ.AlL [±QA˜€ñ.AlLa±QA˜àð.AlLÀr±QA˜€œð.AlL{±QA˜:ð.AlL †±QA˜Úï.AlL`Œ±QA˜€ˆï.AlL ޱQA˜3ï.AlL ±QA˜€õî.AlLà•±QA˜xî.AlL°±QA˜7î.AlL@µ±QA˜€Çí.AlL€¶±QA˜€ í.AlL »±QA˜dì.AlLÀñQA˜Çë.AlL ˱QA˜€jë.AlLàÒ±QA˜ë.AlL ä±QA˜€”ê.AlL`í±QA˜+ê.AlLÀõ±QA˜€Šé.AlL€ÿ±QA˜¤è.AlL²QA˜€è.AlL²QA˜€<ç.AlL@²QA˜Ãæ.AlL@&²QA˜‡æ.AlL@0²QA˜€Gæ.AlL@:²QA˜±å.AlL@G²QA˜å.AlLÀY²QA˜ ä.AlLd²QA˜ã.AlLh²QA˜þâ.AlLu²QA˜.â.AlL€²QA˜€Má.AlL’²QA˜Ýà.AlL@•²QA˜,à.AlLÀ›²QA˜€¤ß.AlL`¡²QA˜ ß.AlL€©²QA˜€ŽÞ.AlL€°²QA˜€Þ.AlL·²QA˜€ÊÝ.AlL ¹²QA˜€6Ý.AlLາQA˜çÜ.AlL ½²QA˜£Ü.AlLÀ²QA˜{Ü.AlL²QA˜Ü.AlLȲQA˜“Û.AlLÀ˲QA˜€Û.AlLÒ²QA˜€£Ú.AlLÚ²QA˜€=Ú.AlLàã²QA˜ÈÙ.AlL@ì²QA˜mÙ.AlL ñ²QA˜€ÈØ.AlLÀ÷²QA˜€EØ.AlLÀ³QA˜ì×.AlL ³QA˜ƒ×.AlL ³QA˜;×.AlL !³QA˜€àÖ.AlLà+³QA˜†Ö.AlL`3³QA˜BÖ.AlL@6³QA˜ÈÕ.AlL€?³QA˜™Õ.AlL D³QA˜KÕ.AlL€N³QA˜ÿÔ.AlL [³QA˜¶Ô.AlL`d³QA˜îÓ.AlL€{³QA˜€sÓ.AlLÀ…³QA˜¨Ò.AlL ›³QA˜€,Ò.AlL «³QA˜€ÕÑ.AlL ¾³QA˜€´Ñ.AlL`óQA˜€kÑ.AlL`̳QA˜5Ñ.AlL гQA˜ïÐ.AlL@Ö³QA˜ŒÐ.AlLÞ³QA˜€3Ð.AlLÀå³QA˜ïÏ.AlLÀé³QA˜€ªÏ.AlL`í³QA˜€cÏ.AlLÀõ³QA˜€2Ï.AlLÀ´QA˜ÜÎ.AlL€ ´QA˜¦Î.AlL`´QA˜€PÎ.AlL ´QA˜ Î.AlL`*´QA˜ÖÍ.AlLà0´QA˜€ªÍ.AlL 7´QA˜€NÍ.AlL @´QA˜€ Í.AlLÀC´QA˜€ÊÌ.AlL€F´QA˜aÌ.AlL L´QA˜€Ì.AlL O´QA˜€ØË.AlLV´QA˜€œË.AlL€`´QA˜€KË.AlLàh´QA˜ Ë.AlL€o´QA˜€ÊÊ.AlL@{´QA˜€­Ê.AlL „´QA˜Ê.AlL`´QA˜cÊ.AlLà ´QA˜ûÉ.AlL`ôQA˜üÉ.AlLдQA˜€Ê.AlL@Ý´QA˜ÖÉ.AlL€á´QA˜œÉ.AlLÀã´QA˜_É.AlL€Þ´QA˜KÉ.AlL@×´QA˜€;É.AlLÈ´QA˜!É.AlLÀ½´QA˜É.AlL`¯´QA˜€É.AlL ´QA˜öÈ.AlL‚´QA˜€ÚÈ.AlL n´QA˜€±È.AlL[´QA˜€È.AlLE´QA˜‘È.AlLÀ7´QA˜€¦È.AlL`*´QA˜¾È.AlLÀ´QA˜ãÈ.AlL` ´QA˜ÿÈ.AlL`û³QA˜É.AlLÀé³QA˜€,É.AlL€Ø³QA˜HÉ.AlL@˳QA˜eÉ.AlL ¿³QA˜É.AlL`¨³QA˜€›É.AlL ›³QA˜žÉ.AlL ’³QA˜É.AlL€‹³QA˜€nÉ.AlL ƒ³QA˜€:É.AlLà{³QA˜)É.AlLÀz³QA˜€ É.AlLÀx³QA˜€âÈ.AlL@w³QAØ QdÊÈ.A*[œÏu³QA˜•È.AlLp~³QA˜`È.AlL€†³QA˜3È.AlLà‹³QA˜€È.AlL€‘³QA˜€ûÇ.AlL€˜³QA˜€ÝÇ.AlL ¤³QA˜ÕÇ.AlL€ª³QA˜´Ç.AlLÀ²³QA˜Ç.AlL€»³QA˜sÇ.AlL ³QA˜TÇ.AlLàdzQA˜€+Ç.AlL̳QA˜ Ç.AlL@гQA˜€¹Æ.AlL€Õ³QA˜dÆ.AlLàÚ³QA˜Æ.AlL@à³QA˜ÊÅ.AlLä³QA˜•Å.AlL å³QA˜OÅ.AlL€å³QA˜€ûÄ.AlLÀæ³QA˜€ÄÄ.AlLè³QA˜Ä.AlL ë³QA˜DÄ.AlLò³QA˜þÃ.AlL€ü³QA˜€äÃ.AlLÀ´QA˜±Ã.AlL` ´QA˜FÃ.AlLÀ´QA˜æÂ.AlLÀ ´QA˜‰Â.AlLÀ(´QA˜UÂ.AlLÀ,´QA˜ Â.AlL`2´QA˜ÜÁ.AlL@;´QA˜´Á.AlL€E´QA˜€”Á.AlLÀK´QA˜HÁ.AlL V´QA˜íÀ.AlL`^´QA˜€¸À.AlLm´QA˜€œÀ.AlL`{´QA˜À.AlL€ˆ´QA˜€wÀ.AlL`Ž´QA˜€fÀ.AlL ›´QA˜wÀ.AlLÀ¤´QA˜‚À.AlL ª´QA˜…À.AlLÀ·´QA˜€}À.AlL@Á´QA˜€4À.AlLÀдQA˜€ÿ¿.AlLÙ´QA˜€®¿.AlL`Ý´QA˜€~¿.AlL€ä´QA˜€g¿.AlL@é´QA˜€V¿.AlLò´QA˜F¿.AlL ú´QA˜¿.AlL`û´QA˜î¾.AlL µQA˜;.AlL`µQA˜€ƒ¾.AlL€µQA˜U¾.AlL µQA˜¾.AlL`µQA˜€½½.AlL µQA˜t½.AlLµQA˜€>½.AlL€µQA˜€ú¼.AlLàµQA˜ļ.AlLàµQA˜€!¼.AlL€µQA˜€Û».AlL!µQA˜™».AlL $µQA˜H».AlLÀ0µQA˜€/».AlL`8µQA˜&».AlL@AµQA˜».AlL@LµQA˜÷º.AlLYµQA˜ìº.AlLeµQA˜çº.AlL€qµQA˜€ãº.AlLà~µQA˜».AlLÀ޵QA˜þº.AlL›µQA˜€».AlL@£µQA˜€».AlL@®µQA˜.».AlL¹µQA˜d».AlLÀµQA˜¬».AlL€ÈµQA˜Ö».AlLàϵQA˜¼.AlL`ÕµQA˜<¼.AlL`ÛµQA˜t¼.AlLàßµQA˜€›¼.AlL€äµQA˜­¼.AlL€÷µQA˜±¼.AlLÀþµQA˜½¼.AlLÀ¶QA˜Ƽ.AlLà¶QA˜̼.AlL`¶QA˜ ¼.AlLà ¶QA˜—¼.AlL&¶QA˜€›¼.AlL`3¶QA˜ü.AlL€8¶QA˜€ô¼.AlL@=¶QA˜!½.AlL D¶QA˜6½.AlLàM¶QA˜€H½.AlL W¶QA˜;½.AlLÀ]¶QA˜€,½.AlL b¶QA˜"½.AlLài¶QA˜½.AlL s¶QA˜ ½.AlL€{¶QA˜€½.AlL€¶QA˜€½.AlLÀжQA˜€ ½.AlLÀ•¶QA˜ ½.AlL@›¶QA˜€½.AlL€¡¶QA˜€½.AlL`«¶QA˜€ý¼.AlL²¶QA˜Ù¼.AlL`¶¶QA˜ɼ.AlL€¹¶QA˜ͼ.AlL ½¶QA˜Á¼.AlLŶQA˜½¼.AlLÀ˶QA˜µ¼.AlL@Ó¶QA˜€¯¼.AlLÀܶQA˜€¡¼.AlLë¶QA˜¦¼.AlL ô¶QA ä“ñå¼.Azè3öö¶QA˜€½.AlL€ø¶QA˜:½.AlL ý¶QA˜Œ½.AlLà·QA˜€ù½.AlL ·QA˜G¾.AlLÀ·QA˜€Œ¾.AlL€ ·QA˜€Û¾.AlL@·QA˜¿.AlL@"·QA˜€@¿.AlL )·QA˜€f¿.AlL 4·QA˜·¿.AlLà>·QA˜€å¿.AlL€E·QA˜€;À.AlL N·QA˜€}À.AlLV·QA˜€ÞÀ.AlLà[·QA˜€8Á.AlL``·QA˜€ Á.AlL h·QA˜åÁ.AlL€l·QA˜7Â.AlL€w·QA˜€´Â.AlL y·QA˜úÂ.AlLÀ{·QA˜?Ã.AlLÀy·QA˜fÃ.AlL ·QA˜‡Ã.AlL€‰·QA˜´Ã.AlL@“·QA˜ÜÃ.AlL`—·QA˜Ä.AlL £·QA˜/Ä.AlL «·QA˜@Ä.AlLà°·QA˜€QÄ.AlL À·QA˜mÄ.AlL È·QA˜ŠÄ.AlLàÍ·QA˜¸Ä.AlL Ò·QA˜óÄ.AlLàзQA˜Å.AlL Ï·QA˜€AÅ.AlLÀÔ·QA˜\Å.AlL@Û·QA˜€[Å.AlL`ã·QA˜7Å.AlL@ë·QA˜€"Å.AlL`ï·QA˜Å.AlL ó·QA˜Å.AlLàþ·QA˜øÄ.AlL`¸QA˜€ÓÄ.AlL ¸QA˜äÄ.AlL¸QA˜ÿÄ.AlL ¸QA˜Å.AlL "¸QA˜Å.AlL`.¸QA˜0Å.AlL 4¸QA˜€VÅ.AlL@;¸QA˜€¡Å.AlL€=¸QA˜»Å.AlLC¸QA˜½Å.AlL€M¸QA˜€ŸÅ.AlLà]¸QA˜€ƒÅ.AlLàd¸QA˜_Å.AlLào¸QA˜IÅ.AlL€w¸QA˜LÅ.AlL €¸QA˜\Å.AlLˆ¸QA˜€XÅ.AlL‘¸QA˜FÅ.AlL¡¸QA˜6Å.AlL`§¸QA˜,Å.AlL¯¸QA˜€!Å.AlL€½¸QA˜)Å.AlL`ŸQA˜1Å.AlL͸QA˜HÅ.AlL€Ù¸QA˜MÅ.AlL ß¸QA˜TÅ.AlL€ä¸QA˜ˆÅ.AlL`è¸QA˜€½Å.AlL`æ¸QA˜Æ.AlLÀé¸QA˜:Æ.AlLÀõ¸QA˜TÆ.AlL ¹QA˜dÆ.AlLà¹QA˜jÆ.AlL@!¹QA˜€^Æ.AlL *¹QA˜€UÆ.AlL :¹QA˜GÆ.AlL`I¹QA˜)Æ.AlL@T¹QA˜€üÅ.AlL c¹QA˜×Å.AlL i¹QA˜€“Å.AlLÀn¹QA˜€OÅ.AlLÀq¹QA˜ Å.AlL`s¹QA˜ÙÄ.AlL@x¹QA˜uÄ.AlL@‰¹QA˜9Ä.AlLÀ–¹QA˜Ä.AlL@Ÿ¹QA˜ÖÃ.AlL@­¹QA˜°Ã.AlLÀ·¹QA˜¤Ã.AlL ¿¹QA˜€€Ã.AlLàǹQA˜aÃ.AlL€Ñ¹QA˜€IÃ.AlL`ß¹QA˜RÃ.AlL€ì¹QA˜€zÃ.AlL`ú¹QA˜ŒÃ.AlL ºQA˜ƒÃ.AlL ºQA˜€’Ã.AlL@ºQA˜€µÃ.AlL $ºQApÓ]ÕÏÃ.AlLà+ºQA˜ËÃ.AlL 3ºQA˜®Ã.AlL€9ºQA˜¢Ã.AlL @ºQA˜ÚÃ.AlL DºQA˜ Ä.AlLàFºQA˜1Ä.AlL`JºQA˜€_Ä.AlL`MºQA˜gÄ.AlLÀUºQA˜€]Ä.AlL [ºQA˜yÄ.AlL€dºQA˜Ä.AlL€kºQA˜ËÄ.AlLpºQA˜ÁÄ.AlL`vºQA˜¨Ä.AlL€|ºQA˜ŸÄ.AlL@…ºQA˜€ªÄ.AlL`ºQA˜©Ä.AlLà’ºQA˜ŽÄ.AlL ˜ºQA˜€rÄ.AlL¢ºQA˜€IÄ.AlL §ºQA˜€#Ä.AlL ­ºQA˜øÃ.AlL€¶ºQA˜€äÃ.AlL`ÀºQA˜£Ã.AlL@غQA˜€ˆÃ.AlLàºQA˜€UÃ.AlL`åºQA˜€Ã.AlL€ëºQA˜ÃÂ.AlLàîºQA˜oÂ.AlLùºQA˜€RÂ.AlL@»QA˜Â.AlLÀ»QA˜€ôÁ.AlL@»QA˜íÁ.AlLÀ»QA˜äÁ.AlL€»QA˜€ÉÁ.AlLÀ!»QA˜©Á.AlL&»QA˜€]Á.AlL€6»QA˜€TÁ.AlL ;»QA˜cÁ.AlL E»QA˜fÁ.AlLàJ»QA˜?Á.AlL`P»QA˜Á.AlLàG»QA˜€ìÀ.AlL€:»QA˜¶À.AlLÀ6»QA˜€WÀ.AlL 6»QA˜À.AlL 8»QA˜€­¿.AlL@9»QA˜l¿.AlLà>»QA˜G¿.AlL`C»QA˜€¿.AlL M»QA˜€5¿.AlL@T»QA˜\¿.AlL`Z»QA˜€[¿.AlLÀ_»QA˜0¿.AlL b»QA˜¿.AlL a»QA˜€¹¾.AlL€a»QA˜¾.AlL l»QA˜f¾.AlL`u»QA˜€a¾.AlL@}»QA˜‹¾.AlL`‚»QA˜€š¾.AlLÀ†»QA˜€¾.AlL€»QA˜d¾.AlL ‘»QA˜€ö½.AlL “»QA˜á½.AlL€™»QA˜Ô½.AlLàž»QA˜€æ½.AlL ¥»QA˜¾.AlLà­»QA˜€ ¾.AlL¶»QA˜ü½.AlL »»QA˜˜½.AlL Â»QA˜4½.AlL@Ï»QA˜½.AlLÀÖ»QA˜€½.AlL€Þ»QA˜€$½.AlL€ç»QA˜€I½.AlL`í»QA˜^½.AlL ó»QA˜€f½.AlL€ý»QA˜V½.AlL ¼QA˜ú¼.AlL`¼QA˜€p¼.AlL ¼QA˜c¼.AlL@¼QA˜r¼.AlLÀ¼QA˜v¼.AlL ¼QA˜€9¼.AlL`'¼QA˜ú».AlL)¼QA˜€È».AlL ,¼QA˜¯».AlL6¼QA˜ª».AlL€:¼QA˜»».AlL @¼QAÈkª*é».AlL`N¼QA˜€¼.AlLàR¼QA˜}¼.AlL@V¼QA˜ļ.AlL X¼QA˜€þ¼.AlL X¼QA˜€D½.AlL U¼QA˜½.AlLÀQ¼QA˜€Æ½.AlL`W¼QA˜€¾.AlLÀZ¼QA˜U¾.AlL Z¼QA˜€®¾.AlL \¼QA˜€ë¾.AlL _¼QA˜€¿.AlLàa¼QA˜g¿.AlLe¼QA˜©¿.AlL`i¼QA˜€Þ¿.AlL m¼QA˜'À.AlL@u¼QA˜€tÀ.AlLz¼QA˜±À.AlLÀ€¼QA˜€ Á.AlL ‡¼QA˜€pÁ.AlLÀ޼QA˜€²Á.AlLà–¼QA˜öÁ.AlL@Ÿ¼QA˜€DÂ.AlL€¦¼QA˜zÂ.AlL§¼QA˜€¿Â.AlL ¢¼QA˜Ã.AlL€ž¼QA˜€PÃ.AlLࡼQA˜€Ã.AlL€¤¼QA˜FÄ.AlL௼QA˜cÄ.AlL±¼QA˜€ŸÄ.AlL€³¼QA˜Å.AlL€·¼QA˜€PÅ.AlL ¸¼QA˜‚Å.AlL º¼QA˜¹Å.AlL ½¼QA˜÷Å.AlL Á¼QA˜LÆ.AlLüQA˜¨Æ.AlLżQA˜êÆ.AlL żQA˜€2Ç.AlLżQA˜Ç.AlLàļQA˜mÈ.AlLÀʼQA˜ÈÈ.AlLʼQA˜É.AlLÀżQA˜sÉ.AlLüQA˜€ÎÉ.AlLÀǼQA˜Ê.AlLÀͼQA˜ŒÊ.AlL€Ò¼QA˜€êÊ.AlL`Õ¼QA˜€\Ë.AlL ×¼QA˜¯Ë.AlL`Ö¼QA˜æË.AlL@Õ¼QA˜PÌ.AlLÀÓ¼QA˜Ì.AlLàѼQA˜€•Ì.AlL ß¼QA˜€¢Ì.AlLÀë¼QA˜šÌ.AlL@÷¼QA˜˜Ì.AlL ½QA˜ Ì.AlL½QA˜©Ì.AlLà½QA˜€©Ì.AlL #½QA˜’Ì.AlL€0½QA˜{Ì.AlLà<½QA˜fÌ.AlL@F½QA˜FÌ.AlL`Q½QA˜€6Ì.AlLÀZ½QA˜MÌ.AlLd½QA˜€ˆÌ.AlLi½QA˜˜Ì.AlLÀq½QA˜€ÆÌ.AlL |½QA˜€åÌ.AlL@…½QA˜€èÌ.AlL`޽QA˜€ÑÌ.AlLÀš½QA˜óÌ.AlL ª½QA˜Í.AlLÀ²½QA˜0Í.AlL€º½QA˜€<Î.AlL œ½QA˜Ð.AlL`¾½QA˜€ŒÒ.AlL „½QA˜èÒ.AlL ~½QA˜EÓ.AlL€½QA˜€–Ó.AlLнQA˜ÛÓ.AlLà½QA˜€Ô.AlL ™½QA˜DÔ.AlL ¢½QA˜qÔ.AlLÀ§½QA˜ÆÔ.AlL«½QA˜€ðÔ.AlLà­½QA˜Õ.AlLÀ±½QA˜€3Õ.AlL´½QA˜€hÕ.AlL¹½QA˜¯Õ.AlLൽQA˜€áÕ.AlL`µ½QA˜€üÕ.AlLÀ¸½QA˜Ö.AlL º½QA˜€žÕ.AlLÀÁ½QA˜ Ö.AlL@ǽQA˜gÖ.AlL ʽQA˜×Ö.AlL Ê½QA˜€0×.AlL ƽQA˜€×.AlL€Ä½QA˜€Ø.AlL€Â½QA˜|Ø.AlL€Â½QA˜òØ.AlL@ĽQA˜€DÙ.AlLÀ½QA˜žÙ.AlL ·½QA˜âÙ.AlL±½QA˜€Ú.AlLॽQA˜ZÚ.AlL`œ½QA˜ÁÚ.AlLࢽQA˜Û.AlLঽQA˜€`Û.AlL@¬½QA˜êÛ.AlL€§½QA˜_Ü.AlL@£½QA˜ÔÜ.AlL@Ÿ½QA˜€;Ý.AlL š½QA˜…Ý.AlL ”½QA˜Þ.AlLÀ޽QA˜lÞ.AlL`нQA˜€;ß.AlL ‚½QA˜Œß.AlL ½QA˜€òß.AlL€{½QA˜€Šà.AlLy½QA˜€ôà.AlLÀ]½QA˜Qá.AlL€V½QA˜€}á.AlL R½QA˜€Ùá.AlL H½QA˜â.AlL`C½QA˜€>â.AlL=½QA˜€jâ.AlL`:½QA˜vâ.AlLà3½QA˜€`â.AlL`+½QA˜zâ.AlL`"½QA˜¾â.AlL#½QA˜€þâ.AlL€%½QA˜2ã.AlL8'½QA˜9ã.AlLp%½QA˜Gã.AlLà!½QA˜2ã.AlLà½QA˜ã.AlLà½QA˜€Øâ.AlL@ ½QA˜µâ.AlL@½QA˜–â.AlLà½QA˜€Zâ.AlLÀ÷¼QA˜•â.AlLë¼QA˜Èâ.AlL`â¼QA˜€ðâ.AlLÛ¼QA˜!ã.AlL`Ö¼QA˜€Qã.AlL̼QA˜€€ã.AlL࿼QA˜€·ã.AlL€³¼QA˜ýã.AlLÀ¢¼QA˜0ä.AlL —¼QA˜€jä.AlL€¼QA˜€pä.AlLÀk¼QA˜€xä.AlL Z¼QA˜€ä.AlL I¼QA˜}ä.AlLÀ<¼QA˜€nä.AlL`/¼QA˜€Jä.AlL` ¼QA˜Oä.AlL`¼QA˜yä.AlL@ ¼QA˜€µä.AlL¼QA˜Àä.AlLp¼QA˜€ùä.AlL€¼QA˜À5å.AlL0¼QA˜€}å.AlL@ ¼QA˜€¬å.AlL€¼QA˜ûå.AlL@+¼QA˜~æ.AlL`J¼QA˜€áæ.AlLW¼QA˜#ç.AlL \¼QA˜€’ç.AlLàe¼QA˜çç.AlL@p¼QA˜€è.AlL@|¼QA˜€Yè.AlLÀ‚¼QA˜{è.AlL Š¼QA˜žè.AlL€‘¼QA˜µè.AlLš¼QA˜€âè.AlL ¢¼QA˜€é.AlL`­¼QA˜Dé.AlL ³¼QA˜€vé.AlL À¼QA˜«é.AlLàʼQA˜€ˆê.AlL ý¼QA˜€êê.AlL` ½QA˜ÿê.AlLÀ½QA˜Öë.AlL`>½QA˜ì.AlL€N½QA˜€rì.AlL€f½QA˜Ôì.AlL ~½QA˜€òì.AlL –½QA˜€%í.AlLÀ±½QA˜€Sí.AlL€Ë½QA˜zí.AlL@ݽQA˜€·í.AlLàì½QA˜î.AlL¾QA˜€fî.AlLÀ ¾QA˜€ î.AlLà"¾QA˜€¼î.AlLÀ1¾QA˜Óî.AlL@?¾QA˜€îî.AlLàJ¾QA˜€4ï.AlL@]¾QA˜€šï.AlL€l¾QA˜ ð.AlL }¾QA˜€ð.AlL оQA˜€ýð.AlLà¾QA˜€—ñ.AlL@±¾QA˜ò.AlLà¾QA˜^ò.AlL@ξQA˜Ìò.AlL€Û¾QA˜€ó.AlL€å¾QA˜.ó.AlLðç¾QA˜€‡ó.AlL@ó¾QA˜€Ùó.AlL@þ¾QA˜"ô.AlL€ ¿QA˜€bô.AlLà¿QA˜¬ô.AlLà'¿QA˜€2õ.AlL <¿QA˜€_õ.AlL J¿QA˜zõ.AlL T¿QA˜¼õ.AlLà_¿QA˜ö.AlL`k¿QA˜€ö.AlLàz¿QA˜Ñö.AlL€‹¿QA˜€÷.AlLàž¿QA˜€s÷.AlL`°¿QA˜H÷.AlLÀ¶¿QA˜€÷.AlLà¿¿QA˜ûö.AlL@пQA˜Õö.AlL€Ú¿QA˜€×ö.AlLàë¿QA˜ïö.AlL`ø¿QA˜÷.AlL ÀQA˜ ÷.AlL@ÀQA˜€÷.AlL`+ÀQA˜!÷.AlL <ÀQA˜÷.AlL QÀQA˜÷ö.AlL@_ÀQA˜€Ïö.AlLÀlÀQA˜€Áö.AlL@{ÀQA˜€¤ö.AlL€ŠÀQA˜ö.AlL`—ÀQA˜¹ö.AlLàªÀQA˜€òö.AlL³ÀQA˜L÷.AlL@¿ÀQA˜w÷.AlLÐÀQA˜€¦÷.AlLÀÛÀQA˜€Õ÷.AlLÀåÀQA˜€.ø.AlLïÀQA˜lø.AlL õÀQA˜€žø.AlL ÿÀQA˜@­ø.AlLX ÁQA˜€Öø.AlLÁQA˜€ù.AlL€ÁQA˜€5ù.AlLàÁQA˜€où.AlLÀ*ÁQA˜“ù.AlL2ÁQA˜Éù.AlL :ÁQA˜öù.AlL€@ÁQA˜€ú.AlLàJÁQA˜€'ú.AlL@SÁQA˜Dú.AlL ^ÁQA˜jú.AlL@eÁQA˜€€ú.AlLsÁQA˜€›ú.AlL`ƒÁQA˜£ú.AlLÀ’ÁQA˜€½ú.AlL@ ÁQA˜ßú.AlL ¯ÁQA˜€ùú.AlL€ÁÁQA˜€þú.AlLàÍÁQA˜€û.AlLàßÁQA˜û.AlL€ñÁQA˜€û.AlL þÁQA˜æú.AlL€ÂQA˜¼ú.AlL€ÂQA˜€¨ú.AlL`*ÂQA˜¨ú.AlLÀ9ÂQA˜€ºú.AlL BÂQA˜€®ú.AlL MÂQA˜€¿ú.AlL`SÂQA˜ïú.AlLÀXÂQA˜ û.AlL€_ÂQA˜*û.AlLàhÂQA˜€mû.AlL@rÂQA˜«û.AlL wÂQA˜€æû.AlL`ƒÂQA˜€Üû.AlL€£ÂQA˜ü.AlL@´ÂQA˜Gü.AlL ÄÂQA˜€–ü.AlL@åÂQA˜Üü.AlL€ÃQA˜ý.AlLÀÃQA˜(ý.AlLÀ/ÃQA˜Hý.AlLàIÃQA˜[ý.AlL ]ÃQA˜€hý.AlL`lÃQA˜ý.AlL`‰ÃQA˜€Æý.AlLÀŸÃQA˜ßý.AlLÀ³ÃQA˜Øý.AlLàÖÃQA˜€àý.AlLÀÜÃQA˜ìý.AlLìÃQA˜äý.AlL@þÃQA˜€Íý.AlL  ÄQA˜€»ý.AlL@ÄQA˜Àý.AlL $ÄQA˜€Ùý.AlL€-ÄQA˜±ý.AlL 8ÄQA˜€tý.AlL@CÄQA˜€Cý.AlL@LÄQA˜€Dý.AlLà[ÄQA˜€6ý.AlL@|ÄQA˜€÷ü.AlLÀ‹ÄQA˜€Ùü.AlL–ÄQA˜€µü.AlL@ÄQA˜€ºü.AlL ¦ÄQA˜Âü.AlLÀ­ÄQA˜¸ü.AlL@¸ÄQA˜®ü.AlL@ÃÄQA˜€³ü.AlL ÖÄQA˜ºü.AlL€ÜÄQA˜Âü.AlLÀãÄQA˜Àü.AlL ïÄQA˜€Æü.AlLøÄQA˜àü.AlL€ÅQA˜Âü.AlL€ ÅQA˜€›ü.AlLÀÅQA˜€”ü.AlL€ÅQA˜›ü.AlL )ÅQA˜­ü.AlL`7ÅQA˜¿ü.AlL BÅQA˜€Áü.AlLÀIÅQA˜€Ãü.AlL¨PÅQA˜Åü.AlL\ÅQA˜€¼ü.AlL@gÅQA˜¼ü.AlLàvÅQA˜€±ü.AlL‚ÅQA˜«ü.AlL ŽÅQA˜Ÿü.AlLÀ˜ÅQA˜”ü.AlLÀ ÅQA˜†ü.AlL «ÅQA˜ƒü.AlL@¸ÅQA˜ƒü.AlL€ÃÅQA˜†ü.AlL`ÏÅQA˜€—ü.AlL`ÛÅQA˜¸ü.AlL`åÅQA˜€ý.AlL îÅQA˜\ý.AlL`ñÅQA˜€Àý.AlL õÅQA˜€)þ.AlL@üÅQA˜¬þ.AlL@ÆQA˜€ÿ.AlL ÆQA˜€’ÿ.AlL@ÆQA˜€/AlLÀ ÆQA˜ž/AlL ÆQA˜ï/AlL ÆQA˜ /AlLàÆQA˜€/AlLàÆQA˜Ñ/AlLàÆQA˜ñ/AlL€'ÆQA˜/AlLà,ÆQA˜g/AlL/ÆQA˜·/AlL@0ÆQA˜/AlL6ÆQA˜`/AlL BÆQA˜–/AlLàLÆQA˜È/AlLàQÆQA˜€/AlL`VÆQA˜O/AlL]ÆQA˜±/AlL€`ÆQA˜€¿/AlL gÆQA˜€à/AlLÀoÆQA˜%/AlL sÆQA˜€“/AlLÀsÆQA˜Æ/AlLÀvÆQA˜€ä/AlL`ˆÆQA˜/AlL`ˆÆQA˜€4/AlL ˆÆQA˜€P/AlL`ˆÆQA˜u/AlL ˆÆQA˜€È/AlL`ŠÆQA˜€ð/AlL‹ÆQA˜&/AlLÀ‹ÆQA˜O/AlL ‹ÆQA˜€w/AlL ŠÆQA˜»/AlL@ŒÆQA˜ò/AlL@ŽÆQA˜?/AlL ÆQA˜w/AlL ŽÆQA˜€Ê/AlL`ÆQA˜€ /AlLÆQA˜€D /AlLÀÆQA˜€w /AlL`ÆQA˜— /AlL@ÆQA˜» /AlL@‘ÆQA˜— /AlL “ÆQA˜€Ä /AlL€”ÆQA˜€& /AlL–ÆQA˜€c /AlLÀ”ÆQA˜Á /AlL@–ÆQA˜€ /AlL@˜ÆQA˜€‹ /AlL ›ÆQA˜½ /AlL€œÆQA˜ñ /AlL@ÆQA˜€? /AlLàœÆQA˜€o /AlLàÆQA˜¢ /AlL@ÆQA˜€Û /AlLŸÆQA˜€6/AlL ¡ÆQA˜€ž/AlLÀ¢ÆQA˜</AlL ¥ÆQA˜º/AlLÀ¦ÆQA˜#/AlL€©ÆQA˜Ú/AlL ­ÆQA˜p/AlLà®ÆQA˜€­/AlLà¯ÆQA˜€ô/AlL ²ÆQA˜€S/AlL`±ÆQA˜€ /AlLpµÆQA˜Ñ/AlLPµÆQA˜û/AlL`½ÆQA˜R/AlLÀÂÆQA˜€*/AlL€ÇÆQA˜€t/AlLÐÉÆQA˜€/AlLÑÆQA˜€û/AlLÀÚÆQA˜²/AlL°äÆQA˜€P"/AlL@îÆQA˜ø$/AlLÐúÆQA˜€Æ,/AlLpÇQA˜€w0/AlL ÇQA˜¿0/AlL/ÇQA˜Þ0/AlL0+ÇQA* Ì€µ;0AlL·‚QAÌ€tY0AlL Â‰QA¾¯´Ì€¦E0AlL ÅˆQAÌÀWE0AlL ©ˆQAÌÀÑD0AlLÀ¼ˆQAÌÀÑC0AlLÀŇQAÌÀÏC0AlLćQAÌ@ñE0AlLPš‡QAÌ@úE0AlLàœ‡QAÌ G0AlLˆQAÌ_F0AlL /ˆQAÌ€I0AlL€T‰QAÌÀ¿I0AlL@>‰QAÌÀÉI0AlL@‰QAÌäI0AlLÀD‰QAÌJ0AlL@I‰QAÌJ0AlLH‰QAÌ+J0AlLH‰QAÌ1J0AlLG‰QAÌÀ³Q0AlL€ˆQAÌÀ»Q0AlL@ˆQAÌÀR0AlL@ˆQAÌ€jR0AlLPþ‡QAÌ€X0AlLpó†QAÌ€’X0AlLpð†QAÌÀVX0AlL`·†QAÌ@ªV0AlL`…QAÌ€XY0AlL@Ç„QAÌ€gY0AlL t„QAÌ@rY0AlL G„QAÌ€tY0AlL;„QAÌqY0AlL .„QAÌÀ_Y0AlLÀ&„QAÌÀLY0AlLø „QAÌÀ2Y0AlLÀ„QAÌ@(Y0AlL„QAÌ%Y0AlL`„QAÌ@Y0AlLà„QAÌ€Y0AlL`þƒQAÌ€çX0AlL`öƒQAÌÀÊX0AlL`íƒQAÌ€¦X0AlL âƒQAÌ€€X0AlLÖƒQAÌGX0AlL ÄƒQAÌ€X0AlLÀ³ƒQAÌ€ÝW0AlL £ƒQAÌ@®W0AlL –ƒQAÌ€pW0AlL@‡ƒQAÌ@UW0AlLƒQAÌ W0AlLyƒQAÌÀËV0AlL€pƒQAÌ@uV0AlL@iƒQAÌ€&V0AlLàbƒQAÌ@ÑU0AlL`[ƒQAÌU0AlL`RƒQAÌÀ0U0AlLKƒQAÌ€äT0AlL EƒQAÌÀ˜T0AlL€@ƒQAÌhT0AlLÀ;ƒQAÌ+T0AlLÀ5ƒQAÌÀ¸S0AlLÀ(ƒQAÌÀ\S0AlLàƒQAÌõR0AlLƒQAÌ@{R0AlLÀþ‚QAÌ'R0AlLó‚QAÌÂQ0AlLàæ‚QAÌÀuQ0AlLÝ‚QAÌ2Q0AlL Ô‚QAÌÀNP0AlL·‚QAÌ@ªO0AlLàã‚QAÌ€æN0AlL`Ç‚QAÌ@ÂN0AlL@Ï‚QAÌ@‰N0AlLàß‚QAÌÀYN0AlLàà‚QAÌ+N0AlL@ß‚QAÌ÷M0AlLàÙ‚QAÌ@ÅM0AlLÀÓ‚QAÌ@©M0AlLÀЂQAÌÀnM0AlLÀׂQAÌ^M0AlL€Ý‚QAÌÀLL0AlL`ûƒQAÌÀ¤J0AlL  „QAÌZJ0AlL@ZƒQAÌ J0AlL8]ƒQAÌÀôI0AlL qƒQAÌ€kI0AlLàŒƒQAÌÀRI0AlL€•ƒQAÌ@I0AlLøƒQAÌ€úH0AlL ÷ƒQAÌ€7C0AlL@´ƒQAÌ€ÒA0AlLQƒQAÌÁA0AlL eƒQAÌÀ¾A0AlL tƒQAÌ€ÉA0AlL`ƒƒQAÌÓA0AlL€”ƒQAÌÐA0AlL@¦ƒQA̵A0AlL ´ƒQAÌÀ‡A0AlL€ÆƒQAÌ€_A0AlL ÕƒQAÌ€A0AlL@éƒQAÌ×@0AlLÀþƒQAÌ@±@0AlLÀ „QÄ@0AlL@„QAÌÀ@0AlLÀ9„QAÌ€ä?0AlL N„QAÌ@Ä?0AlLàY„QAÌ€š?0AlLq„QAÌÝ>0AlL`Í„QAÌ´>0AlL È„QAÌy>0AlLÀ¿„QAÌÀ">0AlL@´„QAÌ€ò=0AlLà©„QAÌÀÇ=0AlLÀŸ„QAÌ@{=0AlL`•„QAÌ@;=0AlLÀ„QAÌ=0AlLˆ„QAÌÊ<0AlL€€„QAÌ€Œ<0AlL |„QAÌ@†<0AlLà„„QAÌ’<0AlL@Š„QAÌÈ<0AlL¯„QAÌ*=0AlLë„QAÌ€‘=0AlLÀ,…QAÌ€æ=0AlL€e…QAÌ€0>0AlL Ž…QAÌ^>0AlLÀ«…QAÌ´>0AlL Û…QAÌ@”>0AlL€Ý…QAÌ@d>0AlLÀÝ…QAÌ€8>0AlLâ…QAÌ€ >0AlL€ä…QAÌ€Ñ=0AlLÀæ…QAÌÀ¨=0AlL€è…QAÌz=0AlLÀê…QAÌ@Q=0AlL ì…QAÌ€#=0AlLÀí…QAÌã<0AlL î…QAÌ@¯<0AlL€ð…QAÌÀ~<0AlLô…QAÌÀI<0AlL ö…QAÌÀ<0AlLö…QAÌ€µ;0AlL@ø…QAÌÓ;0AlL †QAÌ€Ô;0AlL€†QAÌ€ß;0AlLà$†QAÌÙ;0AlL@{‡QAÌ€<0AlL€z‡QA̦>0AlL@;‡QAÌ€Æ>0AlL`è‡QAÌ€Ü>0AlL€ˆQAÌ@ ?0AlL’ˆQAÌÀ–A0AlLÀyˆQAÌ@¾A0AlL€}ˆQAÌ€òA0AlL@ˆˆQAÌ0AlL€ä…QAÌ€8>0AlLâ…QAÌ@d>0AlLÀÝ…QAÌ@”>0AlL€Ý…QAÌ´>0AlL Û…QAÌ^>0AlLÀ«…QAÌ€0>0AlL Ž…QAÌ€æ=0AlL€e…QAÌ€‘=0AlLÀ,…QAÌ*=0AlLë„QAÌÈ<0AlL¯„QAÌ’<0AlL@Š„QAÌ@†<0AlLà„„QAÌ€Œ<0AlL |„QAÌÊ<0AlL€€„QAÌ=0AlLˆ„QAÌ@;=0AlLÀ„QAÌ@{=0AlL`•„QAÌÀÇ=0AlLÀŸ„QAÌ€ò=0AlLà©„QAÌÀ">0AlL@´„QAÌy>0AlLÀ¿„QAÌ´>0AlL È„QAÌÝ>0AlL`Í„QAÌ€š?0AlLq„QAÌ@Ä?0AlLàY„QAÌ€ä?0AlL N„QAÌÀ@0AlLÀ9„QÄ@0AlL@„QAÌ@±@0AlLÀ „QAÌ×@0AlLÀþƒQAÌ€A0AlL@éƒQAÌ€_A0AlL ÕƒQAÌÀ‡A0AlL€ÆƒQA̵A0AlL ´ƒQAÌÐA0AlL@¦ƒQAÌÓA0AlL€”ƒQAÌ€ÉA0AlL`ƒƒQAÌÀ¾A0AlL tƒQAÌÁA0AlL eƒQAÌ€ÒA0AlLQƒQAÌ€7C0AlL@´ƒQAÌ€úH0AlL ÷ƒQAÌ@I0AlLøƒQAÌÀRI0AlL€•ƒQAÌ€kI0AlLàŒƒQAÌÀôI0AlL qƒQAÌ J0AlL8]ƒQAÌZJ0AlL@ZƒQAÌÀ¤J0AlL  „QAÌÀLL0AlL`ûƒQAÌ^M0AlL€Ý‚QAÌÀnM0AlLÀׂQAÌ@©M0AlLÀЂQAÌ@ÅM0AlLÀÓ‚QAÌ÷M0AlLàÙ‚QAÌ+N0AlL@ß‚QAÌÀYN0AlLàà‚QAÌ@‰N0AlLàß‚QAÌ@ÂN0AlL@Ï‚QAÌ€æN0AlL`Ç‚QAÌÀ†O0AlLX ‚QAÌàM0AlL˜R‚QAÌùL0AlL N‚QAÌÀšL0AlL`E‚QAÌÀAL0AlL =‚QAÌšK0AlL&‚QAÌÀ6K0AlL@‚QAÌ@¼J0AlL  ‚QAÌÀ/J0AlL@úQAÌÀÁI0AlL@íQAÌ@\I0AlL@áQAÌCI0AlL@ÞQAÌÀõH0AlLàÒQAÌ€H0AlL@¿QAÌÀAH0AlL€±QAÌ@cG0AlLÀ^QAÌ€YG0AlLÀVQAÌóF0AlL@8QAÌ@¸F0AlL $QAÌ€‹F0AlLQAÌÀsF0AlLà QAÌ€OF0AlL QAÌ2F0AlL€ù€QAÌ€F0AlL ð€QAÌÀðE0AlL`è€QAÌ€¹E0AlL ß€QAÌ@gE0AlL ×€QAÌ€(E0AlLàÏ€QAÌ E0AlLà΀QAÌÌD0AlLàÅ€QAÌ€D0AlL`»€QAÌ@0D0AlL·€QAÌ@ËC0AlL´€QAÌeC0AlL€©€QAÌÀC0AlL@œ€QAÌ@B0AlL`}€QAÌàûA0AlL r€QAÌ€XA0AlLàX€QAÌÀ®@0AlL;€QAÌ@Ê?0AlL €QAÌ€d?0AlL@ €QAÌ@'?0AlLàýQAÌ€÷>0AlL€ôQAÌÔ>0AlLàñQAÌ»>0AlL€ñQAÌ€Ÿ>0AlLöQAÌü=0AlL#€QAÌ@Î=0AlL€/€QAÌš=0AlL€:€QAÌ€o=0AlL?€QAÌ<=0AlL`F€QAÌÀ=0AlLàJ€QAÌ@÷<0AlL€N€QAÌ€Ø<0AlL@P€QAÌÀº<0AlLpO€QAÌ@<0AlLÀL€QAÌ@u<0AlLÀK€QAÌ€J<0AlL€J€QAÌÀ<0AlL`P€QAÌ•;0AlL@€QAÌÀf;0AlL€QAÌ€9;0AlLàž€QAÌ@;0AlL@±€QAÌÜ:0AlLÀQAÌ@£:0AlL Ó€QAÌ@e:0AlL ã€QAÌ€Y:0AlLàæ€QAÌ€9:0AlLàï€QAÌ@:0AlLø€QAÌÀ:0AlL@ù€QAÌÀÜ90AlLQAÌ@¸90AlL€QAÌÀª90AlL€QAÌ€§90AlLQAÌ}90AlL`9QAÌÀN90AlL@IQAÌ€290AlLSQAÌ@90AlL`ZQAÌÀý80AlLà[QAÌá80AlL ZQAÌÀ®80AlL€VQAÌ€ô50AlLàQAÌ€950AlLÀQA̸40AlLÀù€QAÌÀ¢40AlLàö€QAÌw40AlLò€QAÌ@N40AlLì€QAÌ;40AlL@è€QAÌÀ#40AlLâ€QAÌ€40AlL€Ú€QAÌÀõ30AlLàÕ€QAÌ@å30AlLàЀQAÌ@Î30AlL`È€QAÌ€½30AlLÀ€QAÌ@©30AlLༀQAÌ@30AlLà´€QȦ30AlL€²€QAÌ{30AlLÀ­€QAÌ@l30AlL©€QAÌ€>30AlLàž€QAÌ@û10AlL`¯€QAÌÀ‡10AlLÀ±€QAÌ€D10AlL@´€QAÌ@À00AlL@²€QAÌÀT00AlL`®€QAÌÀó/0AlL`¨€QAÌ£/0AlL@¥€QAÌ€>/0AlL@¥€QAÌÙ.0AlLÀ¤€QA̵.0AlL€¤€QAÌ€O.0AlLࣀQAÌ€ó-0AlL ¥€QAÌÀ{-0AlL@¥€QAÌ@^-0AlL@£€QAÌ@û,0AlL`Ó€QAÌÕ,0AlL ú€QAÌ‹,0AlL`ï€QAÌ^)0AlLÝQAÌ@Z)0AlLÞQAÌÅ(0AlL  ‚QAÌ€(0AlLÀÔQAÌ@(0AlL€ÑQAÌÎ'0AlLÎQAÌÀ™'0AlL ÊQAÌÀz'0AlL ÉQAÌ'0AlL¬QAÌ?'0AlLà¢QAÌ€÷&0AlL€˜QAÌ@ª&0AlL dQAÌ@.%0AlL`–QAÌ€%0AlLОQA̳$0AlL ±QAÌÀž$0AlL µQAÌ@…$0AlL ºQAÌ€p$0AlL ÀQAÌW$0AlL@ÅQAÌ€?$0AlL ÊQAÌ@P$0AlL0ÑQAÌ„&0AlL༂QAÌÀÿ(0AlL€ƒ‚QAÌ@{)0AlL@ê‚QAÌ€Y'0AlL€ƒQAÌ€¢(0AlLÀ¯ƒQAÌ€?'0AlL ÞƒQAÌÊ'0AlLV„QAÌÀÍ'0AlL@Y„QAÌ?(0AlL ¿„QAÌ€)0AlL€œ„QAÌÀ§)0AlL`½„QAÌ@*0AlL`²„QAÌÀ{*0AlLˆó„QAÌÀ_+0AlL ß„QAÌ€Æ*0AlLàt„QAÌÀf-0AlLà6„QAÌ2-0AlLà0„QAÌ€ -0AlL.„QAÌÕ,0AlLÀ'„QA̾,0AlL€„QAÌ“,0AlL  „QAÌr,0AlL@„QAÌÀ+,0AlL€ùƒQAÌ@,0AlL€ïƒQAÌÀý+0AlL æƒQAÌÞ+0AlLÚƒQAÌ€Ó+0AlL̓QAÌ´+0AlL¸ƒQAÌÀv+0AlL ¢ƒQAÌÀO+0AlLà“ƒQAÌ@"+0AlLˆƒQAÌ€ +0AlL@|ƒQAÌÀó*0AlL€oƒQAÌ@×*0AlLà^ƒQAÌ©*0AlLMƒQAÌ@*0AlLÀ?ƒQAÌÀc*0AlL .ƒQAÌN*0AlL ƒQAÌ€I*0AlL ƒQAÌL*0AlL ó‚QAÌ@R*0AlL è‚QAÌX*0AlL@Þ‚QAÌ@Ç/0AlLèáƒQAÌÀ 00AlLàîƒQAÌå/0AlL€ÿƒQAÌ@*00AlL „QAÌÀA00AlL  „QAÌ@œ00AlL„QAÌÀË00AlL@„QAÌ€-10AlL „QAÌ€_10AlL@ÿƒQAÌ@~10AlLýƒQAÌ»10AlL€ûƒQAÌà10AlL`øƒQAÌÀ 20AlLàöƒQAÌ320AlL ôƒQAÌÀX20AlL@ñƒQAÌ„20AlL€íƒQAÌ€ž20AlL`éƒQAÌØ20AlLàèƒQAÌ€?30AlL@ÖƒQAÌÙ50AlL ²„QAÌ50AlL@Ó„QAÌÀá50AlL@…QAÌ 40AlL0H…QAÌ€â30AlLàK…QAÌ€ñ70AlL°«…QAÌ€;0AlL€ô…QAÌ€;0AlL`ø…QAÌ€µ;0AlL@ø…QA,4â˜Àt¿.AlL · QA˜_m/AlLÀã´QA™C˜KÕ.AlL€N³QA˜™Õ.AlL D³QA˜ÈÕ.AlL€?³QA˜BÖ.AlL@6³QA˜†Ö.AlL`3³QA˜€àÖ.AlLà+³QA˜;×.AlL !³QA˜ƒ×.AlL ³QA˜ì×.AlL ³QA˜€EØ.AlLÀ³QA˜€ÈØ.AlLÀ÷²QA˜mÙ.AlL ñ²QA˜ÈÙ.AlL@ì²QA˜€=Ú.AlLàã²QA˜€£Ú.AlLÚ²QA˜€Û.AlLÒ²QA˜“Û.AlLÀ˲QA˜Ü.AlLȲQA˜{Ü.AlL²QA˜£Ü.AlLÀ²QA˜çÜ.AlL ½²QA˜€6Ý.AlLາQA˜€ÊÝ.AlL ¹²QA˜€Þ.AlL·²QA˜€ŽÞ.AlL€°²QA˜ ß.AlL€©²QA˜€¤ß.AlL`¡²QA˜,à.AlLÀ›²QA˜Ýà.AlL@•²QA˜€Má.AlL’²QA˜.â.AlL€²QA˜þâ.AlLu²QA˜ã.AlLh²QA˜ ä.AlLd²QA˜å.AlLÀY²QA˜±å.AlL@G²QA˜€Gæ.AlL@:²QA˜‡æ.AlL@0²QA˜Ãæ.AlL@&²QA˜€<ç.AlL@²QA˜€è.AlL²QA˜¤è.AlL²QA˜€Šé.AlL€ÿ±QA˜+ê.AlLÀõ±QA˜€”ê.AlL`í±QA˜ë.AlL ä±QA˜€jë.AlLàÒ±QA˜Çë.AlL ˱QA˜dì.AlLÀñQA˜€ í.AlL »±QA˜€Çí.AlL€¶±QA˜7î.AlL@µ±QA˜xî.AlL°±QA˜€õî.AlLà•±QA˜3ï.AlL ±QA˜€ˆï.AlL ޱQA˜Úï.AlL`Œ±QA˜:ð.AlL †±QA˜€œð.AlL{±QA˜àð.AlLÀr±QA˜€ñ.AlLa±QA˜°ñ.AlL [±QA˜€dò.AlLàI±QA˜zò.AlL V±QA˜½ò.AlL@c±QA˜€æò.AlLÀr±QA˜ó.AlL±QA˜ió.AlLÀ±QA˜Éó.AlLÀŸ±QA˜uô.AlL ¶±QA˜€óô.AlLɱQA˜+õ.AlL`αQA˜€Éõ.AlL€Ö±QA˜€%ö.AlL Û±QA˜rö.AlLâ±QA˜Óö.AlLï±QA˜€%÷.AlL€ú±QA˜^÷.AlL€²QA˜½÷.AlL²QA˜€ø.AlL"²QA˜[ø.AlL@0²QA˜€bø.AlLà;²QA˜€sø.AlL I²QA˜€‘ø.AlLÀZ²QA˜¾ø.AlL h²QA˜€Øû.AlL L²QA˜Cü.AlL@I²QA˜ ý.AlL=²QA˜Îý.AlL 2²QA˜Ðþ.AlL#²QA˜€\ÿ.AlLà²QA˜âÿ.AlL€²QA˜/AlL²QA˜ç/AlLÀú±QA˜/AlL ²QA˜€H/AlL ²QA˜‰/AlLÀ²QA˜€ô/AlLà4²QA˜/AlL7²QA˜j/AlL@=²QA˜/AlL€6²QA˜€À/AlL ,²QA˜/AlL€²QA˜H/AlL ²QA˜€‚/AlLà ²QA˜€²/AlL²QA˜×/AlL@ÿ±QA˜€ï/AlL`÷±QA˜€M/AlLÀñ±QA˜§/AlLÀï±QA˜ñ/AlL í±QA˜4/AlL`á±QA˜€J/AlL@Ù±QA˜€z/AlL`DZQA˜¨/AlL º±QA˜€Î/AlL «±QA˜*/AlL Ÿ±QA˜€c/AlL –±QA˜€§/AlL@„±QA˜å/AlLÀw±QA˜€L/AlL`d±QA˜€m/AlL`[±QA˜„/AlLÀP±QA˜Ô/AlL F±QA˜€/AlL >±QA˜s/AlL 4±QA˜Ï/AlL &±QA˜€ /AlL ±QA˜6 /AlL ±QA˜d /AlL@ ±QA˜] /AlL`±QA˜Q /AlL€õ°QA˜b /AlL@æ°QA˜š /AlLàÛ°QA˜ñ /AlL Ë°QA˜; /AlLİQA˜Å /AlL ¿°QA˜G /AlL¾°QA˜€å /AlL º°QA˜m /AlLÀµ°QA˜â /AlLÀ®°QA˜G /AlL ª°QA˜€¯/AlL ¡°QA˜X/AlL ž°QA˜î/AlL`™°QA˜€…/AlL@˜°QA˜€#/AlL–°QA˜/AlL€Ž°QA˜€y/AlL Š°QA˜€”/AlLÀ‰°QA˜÷/AlLÀ‚°QA˜Ï/AlL`v°QA˜r/AlL k°QA˜€/AlLà]°QA˜ƒ/AlL S°QA˜€>/AlL@K°QA˜/AlLàA°QA˜€9/AlL°@°QA˜G/AlL`@°QA˜€^/AlLà?°QA˜/AlL/°QA˜€+/AlLà-°QA˜d/AlL`-°QA˜æ/AlL2°QA˜"/AlL@6°QA˜‚/AlL ;°QA˜€õ/AlL`@°QA˜/AlLG°QA˜=/AlL L°QA˜€µ/AlL O°QA˜V/AlLàW°QA˜€¾/AlL€W°QA˜A/AlL`\°QA˜€¥/AlL c°QA˜€ÿ/AlL`k°QA˜\/AlL@v°QA˜Ö/AlL °QA˜€h /AlL`ƒ°QA˜å /AlLÀ†°QA˜€Y!/AlL ‹°QA˜¡!/AlL@°QA˜€þ!/AlL€Ž°QA˜€G"/AlLÀ”°QA˜€³"/AlL€°QA˜#/AlL «°QA˜€[#/AlL´°QA˜€´#/AlL`·°QA˜€$/AlL ¹°QA˜€g$/AlL`º°QA˜š$/AlL º°QA˜å$/AlL€¼°QA˜%/AlLÀÀ°QA˜6%/AlLʰQA˜x%/AlL`Ò°QA˜€¨%/AlL Õ°QA˜Ø%/AlL@Ö°QA˜€&/AlLÀÖ°QA˜€d&/AlLÀ×°QA˜´&/AlL€Ù°QA˜€ '/AlLÀÞ°QA˜€T'/AlL`ä°QA˜€Õ'/AlL î°QA˜€3(/AlL`ó°QA˜€{(/AlL ø°QA˜Ð(/AlL`ÿ°QA˜d)/AlL€±QA˜€»)/AlL€±QA˜ù)/AlL ±QA˜€F*/AlLÀ±QA˜€œ*/AlL±QA˜€Ý*/AlLà!±QA˜.+/AlLà%±QA˜€+/AlL@)±QA˜€Æ+/AlL@-±QA˜B,/AlL 7±QA˜—,/AlL <±QA˜€-/AlL C±QA˜h-/AlLH±QA˜€Ÿ-/AlLÀI±QA˜ÿ-/AlLàN±QA˜€:./AlL`T±QA˜|./AlL€`±QA˜€Ò./AlLàg±QA˜b//AlL`m±QA˜€è//AlL€n±QA˜d0/AlL p±QA˜ú0/AlLÀr±QA˜m1/AlLÀt±QA˜Ý1/AlL@v±QA˜~2/AlLàr±QA˜Ì2/AlL€o±QA˜ü2/AlLàl±QA˜h3/AlLÀi±QA˜á3/AlL i±QA˜4/AlL g±QA˜]5/AlL f±QA˜€ 6/AlLàe±QA˜É6/AlLf±QA˜€7/AlL€b±QA˜e8/AlL \±QA˜€¿8/AlL Y±QA˜€¦8/AlLÀD±QA˜€É8/AlLÀ?±QA˜€'9/AlL`=±QA˜²9/AlL@>±QA˜€<:/AlLÀ=±QA˜€Ö:/AlL ?±QA˜€E;/AlLàB±QA˜€Ó;/AlLà@±QA˜€R±QA˜€^=/AlL<±QA˜¢=/AlL€6±QA˜ó=/AlLÀ1±QA˜€U>/AlL2±QA˜€¦>/AlL4±QA˜€ ?/AlL 1±QA˜€m?/AlL€*±QA˜­?/AlL€ ±QA˜€å?/AlL ±QA˜5@/AlL ±QA˜@/AlL±QA˜€ì@/AlLÀ±QA˜€A/AlL !±QA˜€ŠA/AlL '±QA˜ßA/AlL *±QA˜DB/AlL€-±QA˜€½B/AlL 3±QA˜2C/AlLà:±QA˜lC/AlLÀB±QA˜¼C/AlL@J±QA˜óC/AlL@P±QA˜€YD/AlLàW±QA˜·D/AlL@`±QA˜E/AlL^±QA˜hE/AlL d±QA˜€£E/AlL`i±QA˜€F/AlL@n±QA˜@F/AlLÀq±QA˜€yF/AlL v±QA˜€¾F/AlLÀx±QA˜öF/AlL@~±QA˜G/AlLP±QA˜PG/AlL@‚±QA˜›G/AlLà€±QA˜,H/AlLà€±QA˜€tH/AlL`„±QA˜¹H/AlLŒ±QA˜€æH/AlL ±QA˜,I/AlLÀ•±QA˜|I/AlL@š±QA˜€ìI/AlL€ž±QA˜lJ/AlLࣱQA˜€K/AlL€ª±QA˜€RK/AlL଱QA˜€³K/AlL€¯±QA˜€L/AlLà³±QA˜€SL/AlL€¸±QA˜€“L/AlL À±QA˜ÈL/AlL Ã±QA˜€$M/AlLàÆ±QA˜€{M/AlL`ƱQA˜€ÝM/AlLÀÀ±QA˜€/N/AlL º±QA˜€NN/AlLà´±QA˜€ŠN/AlL`ª±QA˜´N/AlL`¤±QA˜€ O/AlL £±QA˜€NO/AlL@¡±QA˜”O/AlL œ±QA˜P/AlL@™±QA˜^P/AlL ›±QA˜ÛP/AlL`±QA˜LQ/AlL ±QA˜€ïQ/AlLà±QA˜€;R/AlLàŠ±QA˜€uR/AlL`±QA˜˜R/AlL y±QA˜€ºS/AlLÀE±QA˜€T/AlL 6±QA˜•T/AlL@±QA˜VU/AlLÀ ±QA˜ V/AlL@ø°QA˜€žV/AlL@è°QA˜€W/AlLàȰQA˜@”X/AlL(¦°QA˜€&X/AlLà™°QA˜€ÌW/AlL’°QA˜€ˆW/AlL ‰°QA˜€tW/AlL؆°QA˜€bW/AlL@„°QA˜W/AlL y°QA˜·V/AlL m°QA˜€WV/AlLa°QA˜€æU/AlL€O°QA˜€¦U/AlL D°QA˜YU/AlL`7°QA˜€ U/AlL .°QA˜€·T/AlLÀ°QA˜pT/AlLÀ°QA˜ST/AlLp°QA˜pS/AlL ì¯QA˜€úS/AlLæ¯QA˜€ŠT/AlL@å¯QA˜U/AlLàÞ¯QA˜ÓU/AlLЯQA˜2V/AlL`ɯQA˜€iV/AlLïQA˜‡V/AlL½¯QA˜€«V/AlL ¦¯QA˜±V/AlL ‹¯QA˜€½V/AlLàW¯QA˜€ÆV/AlLà#¯QA˜€ÚV/AlLÀí®QA˜€¾V/AlL€Ê®QA˜€ªV/AlLÀ©®QA˜œV/AlL Š®QA˜ŠV/AlL€i®QA˜zV/AlL@I®QA˜ÀpV/AlLB®QA˜€mV/AlL0>®QA˜€\V/AlLÀ*®QA˜-V/AlL€®QA˜èU/AlL€ô­QA˜€ºU/AlL`ã­QA˜€³U/AlL ¾­QA˜€¸U/AlL «­QA˜–U/AlL@¡­QA˜[U/AlL “­QA˜€U/AlLÀˆ­QA˜€±T/AlLÀw­QA˜T/AlL`o­QA˜ÆT/AlL`e­QA˜€U/AlL@W­QA˜{U/AlLÀH­QA˜€&V/AlL`,­QA˜ÂV/AlL€ ­QA˜£V/AlLà­QA˜V/AlLñ¬QA˜dV/AlLàà¬QA˜XV/AlL`جQA˜PV/AlL`Ò¬QA˜€8V/AlLàŬQA˜€3V/AlL€¶¬QA˜€V/AlLÀ¨¬QA˜€âU/AlL`—¬QA˜€ÓU/AlL ¬QA˜€»U/AlL w¬QA˜€¦U/AlL k¬QA˜—U/AlLà^¬QA˜€€U/AlL`M¬QA˜€2U/AlLÀ3¬QA˜ãT/AlL€'¬QA˜€ˆT/AlL ¬QA˜€1T/AlL@ ¬QA˜€ÆS/AlL@ú«QA˜OS/AlL@à«QA˜€HS/AlLàÞ«QA˜;S/AlLðÛ«QA˜S/AlL ЫQA˜hR/AlL๫QA˜€&R/AlLÀ­«QA˜R/AlL ¥«QA˜íQ/AlL“«QA˜ëQ/AlL€‡«QA˜€éQ/AlLà«QA˜€òQ/AlL s«QA˜)R/AlL O«QA˜%R/AlL=«QA˜1R/AlL€+«QA˜€&R/AlL «QA˜€èQ/AlLàøªQA˜€œQ/AlLàâªQA˜€6Q/AlL@ŪQA˜üP/AlL ¬ªQA˜€»P/AlL`–ªQA˜€pP/AlL ‚ªQA˜9P/AlLkªQA˜ûO/AlL`QªQA˜€¹O/AlLà+ªQA˜˜O/AlL ªQA˜€”O/AlL ó©QA˜€±O/AlLÀØ©QA˜€·O/AlL ¼©QA˜®O/AlL`¢©QA˜§O/AlL ©QA˜€”O/AlLàI©QA˜–O/AlL@2©QA˜¡O/AlL°$©QA˜¤O/AlL`!©QA˜€®O/AlLà©QA˜€·O/AlLú¨QA˜¸O/AlL ê¨QA˜€¶O/AlLÔ¨QA˜€ÀO/AlLÀÁ¨QA˜€ÞO/AlL °¨QA˜P/AlL §¨QA˜€hP/AlL ¦¨QA˜œP/AlL°©¨QA˜€ÓP/AlL­¨QA˜ÿP/AlL¶¨QA˜-R/AlL ä¨QA˜tR/AlLî¨QA˜€ÜR/AlLÀî¨QA˜€#S/AlL ñ¨QA˜€—S/AlL`ù¨QA˜T/AlL ø¨QA˜|T/AlL ó¨QA˜€ÂT/AlLàë¨QA˜U/AlL`á¨QA˜€fU/AlL@ܨQA˜€LV/AlLߨQA˜¸V/AlLàߨQA˜€øV/AlLÀã¨QA˜;W/AlL ç¨QA˜W/AlL€ë¨QA˜ÄW/AlL ò¨QA˜X/AlL€õ¨QA˜€CX/AlLÀó¨QA˜€EX/AlL Þ¨QA˜€[X/AlLɨQA˜€zX/AlL൨QA˜ŸX/AlL€Ÿ¨QA˜€°X/AlLÀ†¨QA˜ÝX/AlLÀp¨QA˜€üX/AlL ]¨QA˜*Y/AlLÀA¨QA˜[Y/AlL'¨QA˜€ÂY/AlL`%¨QA˜Z/AlLà$¨QA˜€“Z/AlL "¨QA˜çZ/AlLà¨QA˜[/AlL ¨QA˜z[/AlLà¨QA˜¿[/AlL ¨QA˜ù[/AlL ¨QA˜€P\/AlLà¨QA˜¥\/AlLà¨QA˜€´]/AlL@T¨QA˜€Ë]/AlL Z¨QA˜ù]/AlLX¨QA˜€v^/AlL R¨QA˜_/AlL`H¨QA˜Ø_/AlLÀ:¨QA˜€*`/AlL€6¨QA˜€|`/AlL`0¨QA˜€¸`/AlLà0¨QA˜ a/AlL`-¨QA˜La/AlL`(¨QA˜€°a/AlL ¨QA˜é`/AlLÚ§QA˜ã`/AlL ϧQA˜»`/AlL@¹§QA˜¨a/AlL¬§QA˜>b/AlL`ž§QA˜›b/AlLÀ™§QA˜€c/AlL§QA˜€ d/AlLཧQA˜€¡d/AlL ±§QA˜e/AlL@¤§QA˜Te/AlL€œ§QA˜³e/AlL”§QA˜€ðe/AlL@ާQA˜€6f/AlL ‡§QA˜f/AlL „§QA˜€g/AlL@Œ§QA˜€¥g/AlL m§QA˜€h/AlLU§QA˜€€h/AlLÀ>§QA˜€i/AlLÀ#§QA˜€|i/AlL §QA˜j/AlL î¦QA˜€¹j/AlL€Ì¦QA˜Pk/AlL´¦QA˜€Òk/AlL`”¦QA˜€Zl/AlL`|¦QA˜€¼l/AlL`d¦QA˜€m/AlL`T¦QA˜>m/AlLàL¦QA˜Tm/AlL@F¦QA˜_m/AlL`@¦QA˜Pm/AlL 4¦QA˜ m/AlL ¦QA˜€ûl/AlL ¦QA˜¼l/AlLÀí¥QA˜€šl/AlL`â¥QA˜€pl/AlL Ï¥QA˜€Ml/AlLÀÂ¥QA˜ÀGl/AlLh¹¥QA˜Cl/AlL ±¥QA˜5l/AlLÀš¥QA˜€ l/AlL@ƒ¥QA˜€èk/AlL€a¥QA˜³k/AlL@K¥QA˜Žk/AlL€:¥QA˜bk/AlLÀ$¥QA˜€Ok/AlL@¥QA˜Lk/AlL ¥QA˜€Ak/AlLàî¤QA˜€$k/AlL`å¤QA˜k/AlLߤQA˜€&k/AlL@ФQA˜€*k/AlL@ȤQA˜€k/AlLÀ¤QA˜Ëj/AlLº¤QA˜€¸j/AlL ¸¤QA˜€Êh/AlL`ܤQA˜x`/AlL`9¥QA˜Ïa/AlL ^¥QA˜ta/AlL d¥QA˜b/AlLࣥQA˜gb/AlL€¥QA˜c/AlL` ¦QA˜€c/AlLp ¦QA˜€D_/AlL¦QA˜€B_/AlL ¦QA˜€Þ^/AlLàp¦QA˜Ó^/AlL‰¦QA˜€É^/AlL€¡¦QA˜€´^/AlL ®¦QA˜Ú^/AlL ½¦QA˜€_/AlL ϦQA˜7_/AlL ç¦QA˜o]/AlLÀí¦QA˜"]/AlL@ë¦QA˜¢[/AlLÀñ¦QA˜€¾Y/AlL@÷¦QA˜8Y/AlL ù¦QA˜€ØX/AlL`§QA˜’X/AlL@ §QA˜.X/AlL€§QA˜îW/AlLÀ!§QA˜€ŒW/AlL5§QA˜êV/AlL 7§QA˜€.V/AlL9§QA˜€ÞU/AlL 7§QA˜€2U/AlLÀ2§QA˜€ûT/AlLÀ,§QA˜€¥T/AlLÀ §QA˜€eT/AlL`§QA˜€ T/AlL@ §QA˜€¼S/AlLÀü¦QA˜€S/AlL€ö¦QA˜/S/AlL€ò¦QA˜ØR/AlL€÷¦QA˜€R/AlL€÷¦QA˜€1R/AlLó¦QA˜€ÍQ/AlL ñ¦QA˜€„Q/AlL€ï¦QA˜€J/AlLà¦QA˜€QN/AlL j¥QA˜ÚN/AlL R¥QA˜€P/AlLD¥QA˜€bQ/AlL 1¥QA˜ÎR/AlL ¥QA˜€$T/AlL ¥QA˜€»T/AlL0¥QA˜”U/AlL`ø¤QA˜V/AlL`ê¤QA˜jW/AlLà¤QA˜‚X/AlL Ø¤QA˜UY/AlL€Ø¤QA˜àY/AlL ѤQA˜tZ/AlLàˤQA˜€ÂZ/AlL Ë¤QA˜[/AlLàˤQA˜á_/AlLà·¤QA˜ã`/AlL@³¤QA˜Öb/AlL ¯¤QA˜d/AlL`«¤QA˜€f/AlL§¤QA˜g/AlLÀ¤¤QA˜#i/AlL¥¤QA˜€(j/AlLÀ¡¤QA˜šj/AlL€ ¤QA˜Õj/AlLpŸ¤QA˜"k/AlL ž¤QA˜€Ik/AlL™¤QA˜ck/AlLà‘¤QA˜€{k/AlL ‹¤QA˜vk/AlL€‚¤QA˜lk/AlL s¤QA˜_k/AlL c¤QA˜€`k/AlLà@¤QA˜Pk/AlL3¤QA˜€bk/AlL¤QA˜€\k/AlL` ¤QA˜€Tk/AlL ø£QA˜Pk/AlLä£QA˜jk/AlL Ê£QA˜[k/AlL€²£QA˜Rk/AlL Ÿ£QA˜€Nk/AlL@£QA˜€Jk/AlL }£QA˜Pk/AlLÀe£QA˜Pk/AlL`H£QA˜;k/AlL@-£QA˜€8k/AlL £QA˜1k/AlL@ £QA˜€%k/AlLÀ£QA˜€"k/AlL ò¢QA˜€"k/AlL×¢QA˜Ãj/AlLÀÜ¢QA˜€j/AlL`ç¢QA˜€Üi/AlL ï¢QA˜€¨i/AlL ó¢QA˜Ti/AlLø¢QA˜i/AlLàú¢QA˜€Ôh/AlL`ü¢QA˜€šh/AlL`ü¢QA˜Xh/AlL€ü¢QA˜ƒg/AlLÀû¢QA˜€Êf/AlL ú¢QA˜Žf/AlLÀú¢QA˜ f/AlL`þ¢QA˜e/AlL £QA˜€þd/AlLà£QA˜€@d/AlL@ £QA˜€Rc/AlL£QA˜7a/AlLÀ+£QA˜€â^/AlLÀI£QA˜€^/AlLàO£QA˜¦]/AlL@O£QA˜G]/AlLÀO£QA˜€ï\/AlLÀQ£QA˜œ\/AlL@S£QA˜€]\/AlL@W£QA˜€\/AlL Z£QA˜î[/AlL _£QA˜€9[/AlL€b£QA˜\Z/AlL`u£QA˜åY/AlLÀ|£QA˜€tY/AlL€|£QA˜€ÆX/AlLào£QA˜€nX/AlLÀY£QA˜€!X/AlL€O£QA˜€˜W/AlL L£QA˜€ W/AlLàU£QA˜ÁV/AlLàb£QA˜‡V/AlL l£QA˜€FV/AlL t£QA˜€V/AlL€£QA˜€ÍU/AlL`†£QA˜hU/AlL€ˆ£QA˜€üT/AlL ‚£QA˜€¬T/AlL€s£QA˜€LT/AlLàj£QA˜áS/AlL€e£QA˜ES/AlLàf£QA˜€«R/AlL€h£QA˜€R/AlLàl£QA˜Q/AlL x£QA˜'Q/AlL~£QA˜€yP/AlLà‚£QA˜ÒO/AlLàƒ£QA˜5O/AlL@}£QA˜€ÃN/AlLw£QA˜€`N/AlLàt£QA˜€N/AlL@t£QA˜ÝM/AlLÀu£QA˜žM/AlL v£QA˜DM/AlLy£QA˜€L/AlL„£QA˜®K/AlL@‡£QA˜-K/AlL ‹£QA˜ÇJ/AlLà‚£QA˜{J/AlL{£QA˜€lJ/AlLÐw£QA˜€!J/AlL g£QA˜ëI/AlLÀQ£QA˜gI/AlLF£QA˜¼H/AlL@7£QA˜RH/AlL@/£QA˜€KG/AlLà£QA˜€gF/AlL ø¢QA˜F/AlLî¢QA˜€ŽE/AlL æ¢QA˜€(E/AlLÀá¢QA˜€»D/AlLÞ¢QA˜*D/AlLÀØ¢QA˜€‰C/AlL`×¢QA˜5C/AlL Ô¢QA˜µB/AlLÀË¢QA˜B/AlLÀâQA˜€UB/AlLÀº¢QA˜€!B/AlLÀ¯¢QA˜€ùA/AlL ¨¢QA˜€ÊA/AlLà¡¢QA˜€ˆA/AlL ž¢QA˜€4A/AlL ™¢QA˜A/AlLà¢QA˜ó@/AlLà…¢QA˜€Ò@/AlL`¢QA˜€‘@/AlLy¢QA˜€‡@/AlLà¢QA˜€|@/AlLŽ¢QA˜m@/AlL`Å¢QA˜O@/AlLÀ £QA˜/@/AlL`T£QA˜ @/AlL £QA˜€Î>/AlL`·£QA˜€N>/AlLµ£QA˜ö/AlLt£QA˜0/AlLÀx£QA˜€/AlL€‚£QA˜ç/AlL€‘£QA˜€Ä/AlL€§£QA˜«/AlL¼£QA˜/AlL Í£QA˜€7/AlL Ú£QA˜€ó/AlLàë£QA˜Â/AlLÀû£QA˜š/AlLà÷£QA˜g/AlLö£QA˜ù/AlLõ£QA˜€ž/AlLõ£QA˜€7/AlL õ£QA˜€¸/AlL€õ£QA˜€E/AlLó£QA˜€é/AlLàñ£QA˜”/AlL ì£QA˜Y/AlL`ã£QA˜€'/AlLàÝ£QA˜€Ò/AlL ×£QA˜€|/AlL ×£QA˜//AlL€Û£QA˜Ï/AlLàÞ£QA˜€’/AlL ߣQA˜€!/AlL à£QA˜€î/AlLá£QA˜š/AlL@á£QA˜€;/AlL á£QA˜€Ö/AlL€á£QA˜€Œ/AlL à£QA˜=/AlL ߣQA˜€ð/AlL€ß£QA˜€£/AlLàÜ£QA˜t/AlLàÛ£QA˜>/AlL@Ú£QA˜ñ/AlLà×£QA˜/AlLÀá£QA˜Ï/AlLàð£QA˜ /AlL ¤QA˜¬/AlL`-¤QA˜€h/AlL`=¤QA˜[ /AlL€Z¤QA˜€ /AlL u¤QA˜‡ /AlLޤQA˜€{ /AlL°¤QA˜g /AlL •¤QA˜€ /AlLતQA˜€Ž /AlL`¤QA˜t /AlL`á¤QA˜­ /AlL@ý¤QA˜ /AlL€¥QA˜¾/AlL ¥QA˜€{/AlL !¥QA˜€5/AlL€'¥QA˜ð/AlL -¥QA˜š/AlL@7¥QA˜€h/AlL@<¥QA˜Z/AlLÀ=¥QA˜€x/AlL`H¥QA˜9/AlL€J¥QA˜Þ/AlLP¥QA˜€†/AlLU¥QA˜/AlL [¥QA˜´/AlLÀa¥QA˜d/AlLàd¥QA˜ý/AlLÀh¥QA˜€£/AlLk¥QA˜:/AlLào¥QA˜Ì/AlL s¥QA˜€|/AlL€t¥QA˜€k/AlL0v¥QA˜V/AlL`x¥QA˜€^/AlL {¥QA˜s/AlLÀ¥QA˜¤/AlL „¥QA˜ó/AlL Š¥QA˜//AlL Ž¥QA˜|/AlL`”¥QA˜Ø/AlL@ ¥QA˜A/AlL@ª¥QA˜³/AlLÀ¶¥QA˜Ù/AlLàÁ¥QA˜ý/AlLÀÌ¥QA˜ /AlLÀÖ¥QA˜è/AlLä¥QA˜´/AlL`ë¥QA˜{/AlLàö¥QA˜2/AlLà¦QA˜€ø/AlL` ¦QA˜’/AlL ¦QA˜€Y/AlL0¦QA˜./AlL`=¦QA˜€)/AlLàH¦QA˜?/AlLÀX¦QA˜N/AlL h¦QA˜Àm/AlLÀ€¦QA˜“/AlLš¦QA˜¿/AlL€¡¦QA˜â/AlL ¨¦QA˜ú/AlL ²¦QA˜€,/AlL`½¦QA˜€/AlLàæQA˜€+/AlL É¦QA˜\/AlL`ͦQA˜€U/AlLàÔ¦QA˜/AlL`ئQA˜/AlLàߦQA˜€M/AlL ê¦QA˜a/AlLàò¦QA˜€x/AlL þ¦QA˜e/AlLÀ§QA˜€m/AlL §QA˜€/AlL §QA˜’/AlL@#§QA˜­/AlL )§QA˜Ø/AlL@3§QA˜/AlL ;§QA˜€c/AlL@@§QA˜›/AlLE§QA˜Ñ/AlL@I§QA˜€/AlLàO§QA˜€S/AlLÀW§QA˜{/AlLà\§QA˜«/AlLàd§QA˜ð/AlL@n§QA˜/AlL u§QA˜€7/AlL z§QA˜€_/AlL ‚§QA˜€z/AlL ˆ§QA˜ /AlL@§QA˜€Ô/AlL@©§QA˜è/AlL@±§QA˜€/AlL๧QA˜€(/AlL À§QA˜€V/AlL`ǧQA˜¤/AlL Ð§QA˜Ú/AlL`اQA˜€ü/AlL Þ§QA˜ /AlLàè§QA˜ú/AlL@ò§QA˜å/AlL`ú§QA˜¶/AlL@¨QA˜y/AlL€ ¨QA˜€5/AlL€¨QA˜€/AlL ¨QA˜€Â/AlL` ¨QA˜€/AlL (¨QA˜€Y/AlL€2¨QA˜R/AlL=¨QA˜a/AlL€E¨QA˜|/AlL€N¨QA˜€‹/AlL@^¨QA˜€‹/AlLÀe¨QA˜¬/AlLào¨QA˜£/AlL@x¨QA˜n/AlL }¨QA˜€L/AlL`ƒ¨QA˜€./AlL`ЍQA˜M/AlLÀ”¨QA˜€r/AlL`¨QA˜“/AlL §¨QA˜…/AlL€¼¨QA˜€„/AlLÀȨQA˜€/AlLÙ¨QA˜/AlL`á¨QA˜µ/AlL ï¨QA˜€È/AlL û¨QA˜€Ù/AlL ©QA˜â/AlL@ ©QA˜€­/AlL€ ©QA˜Ä/AlLÀ ©QA˜T/AlL ©QA˜Ñ/AlL ©QA˜k/AlL ©QA˜€ü/AlL û¨QA˜”/AlL€ô¨QA˜€//AlL ð¨QA˜€È/AlL`ñ¨QA˜9/AlL î¨QA˜€¶/AlL@î¨QA˜€ì/AlL@ì¨QA˜/AlL ë¨QA˜€ú/AlL`â¨QA˜€Ò/AlLרQA˜¾/AlLĄ̀QA˜‡/AlL࿨QA˜€`/AlL¹¨QA˜qþ.AlLÀÞ¨QA˜€Hþ.AlL Û¨QA˜€þ.AlL`רQA˜€¼ý.AlLàÒ¨QA˜uý.AlL Í¨QA˜€7ý.AlL`ȨQA˜ý.AlLàèQA˜€Àü.AlL€º¨QA˜€Šü.AlL@³¨QA˜€Vü.AlLÀª¨QA˜ü.AlL  ¨QA˜áû.AlL —¨QA˜€Èû.AlLà¨QA˜‘û.AlLÀƒ¨QA˜_û.AlLu¨QA˜€¹û.AlLr¨QA˜€ü.AlL`m¨QA˜lü.AlLd¨QA˜²ü.AlLàY¨QA˜€%ý.AlL@N¨QA˜€bý.AlLÀE¨QA˜€oý.AlL=¨QA˜€Uý.AlL€5¨QA˜1ý.AlL`.¨QA˜€íü.AlL@"¨QA˜¦ü.AlL`¨QA˜€qü.AlL ¨QA˜€ü.AlLà¨QA˜€úû.AlL ù§QA˜€ôû.AlLàò§QA˜¿û.AlL é§QA˜’û.AlLàã§QA˜=û.AlL è§QA˜€ýú.AlL ñ§QA˜€‹ú.AlL@ø§QA˜€%ú.AlLàý§QA˜€³ù.AlL ¨QA˜=ù.AlL ¨QA˜äø.AlL` ¨QA˜nø.AlL`¨QA˜ ø.AlL ¨QA˜…÷.AlL@¨QA˜Ôö.AlLÀ*¨QA˜€Kö.AlL 1¨QA˜¼õ.AlL`6¨QA˜€¡õ.AlL +¨QA˜€Žõ.AlL`"¨QA˜€_õ.AlL`¨QA˜€>õ.AlL  ¨QA˜€õ.AlL ¨QA˜€üô.AlL ù§QA˜áô.AlL í§QA˜Åô.AlLâ§QA˜¬ô.AlLÙ§QA˜€–ô.AlLѧQA˜€ô.AlLÀƧQA˜nô.AlL`¿§QA˜€Mô.AlLµ§QA˜6ô.AlL@­§QA˜€ô.AlLࢧQA˜ôó.AlL—§QA˜€Óó.AlLÀ§QA˜¤ó.AlL@‡§QA˜€ ñ.AlL¶§QA˜€*ï.AlL ç§QA˜€jî.AlL÷§QA˜€åí.AlL ¨QA˜9í.AlL@ ¨QA˜Lì.AlL€¨QA˜€lì.AlL` ¨QA˜€ƒì.AlL`-¨QA˜€·ì.AlL`8¨QA˜í.AlLB¨QA˜í.AlL€M¨QA˜ží.AlL€S¨QA˜€´í.AlL]¨QA˜€ßí.AlL`c¨QA˜ôí.AlL m¨QA˜î.AlL y¨QA˜€:î.AlLà~¨QA˜^î.AlLÀ‡¨QA˜€¤î.AlL ލQA˜€¤î.AlL •¨QA˜rî.AlL¨QA˜¦î.AlL¬¨QA˜€×î.AlLµ¨QA˜ñî.AlL À¨QA˜ìî.AlLàÆ¨QA˜ ï.AlL€Ê¨QA˜€qï.AlL@Ó¨QA˜€–ï.AlLàØ¨QA˜€Âï.AlLàà¨QA˜ìï.AlLÀè¨QA˜€ ð.AlL€í¨QA˜Eð.AlL ó¨QA˜`ð.AlL`ø¨QA˜Vð.AlL©QA˜Að.AlL ©QA˜€Hð.AlL€©QA˜vð.AlL@©QA˜€§ð.AlLà%©QA˜Êð.AlLÀ,©QA˜€ùð.AlL8©QA˜ñ.AlL`D©QA˜0ñ.AlLàP©QA˜>ñ.AlL€X©QA˜€Gñ.AlL@d©QA˜Cñ.AlL@p©QA˜€Tñ.AlL@|©QA˜€uñ.AlL`Œ©QA˜€€ñ.AlL™©QA˜€–ñ.AlL¤©QA˜€¢ñ.AlL ®©QA˜ªñ.AlL€º©QA˜’ñ.AlL`©QA˜zñ.AlL€È©QA˜hñ.AlL Ï©QA˜€‘ñ.AlLØ©QA˜fñ.AlL Û©QA˜òð.AlL ã©QA˜&ð.AlLÀì©QA˜€`ï.AlLÀð©QA˜›î.AlLàø©QA˜€íí.AlLàªQA˜-í.AlL€ ªQA˜ì.AlL€ ªQA˜ì.AlLÀªQA˜ì.AlL€ªQA˜¡ë.AlLà ªQA˜²ë.AlL`ªQA˜€ë.AlL ù©QA˜€Kë.AlL€ó©QA˜€ë.AlL ì©QA˜€âê.AlL@é©QA˜€¬ê.AlLå©QA˜€jê.AlL à©QA˜ê.AlLÀÚ©QA˜€Îé.AlLØ©QA˜€šé.AlLÀÓ©QA˜€bé.AlL€Ï©QA˜Æè.AlL€Ä©QA˜€4è.AlL`שQA˜è.AlLß©QA˜ïç.AlL`ë©QA˜€¶ç.AlLö©QA˜ç.AlLÀÿ©QA˜€[ç.AlL` ªQA˜€Iç.AlL@ ªQA˜ç.AlL ªQA˜²æ.AlL ªQA˜€¾å.AlL GªQA˜€_ä.AlLÀpªQA˜€lã.AlL ªQA˜€(ã.AlL@—ªQA˜€³â.AlL ¦ªQA˜€â.AlL ÁªQA˜Üá.AlL€ÉªQA˜Ôá.AlL ÊªQA˜"á.AlLÀìªQA˜Éà.AlL «QA˜€·à.AlL «QA˜”à.AlL@«QA˜€pà.AlL@#«QA˜Bà.AlL€2«QA˜-à.AlL ;«QA˜à.AlL€I«QA˜Üß.AlL€X«QA˜€Âß.AlL b«QA˜°ß.AlLÀm«QA˜€Ÿß.AlLàu«QA˜€Žß.AlLà~«QA˜€zß.AlL€‰«QA˜€`ß.AlL@«QA˜Cß.AlL š«QA˜€*ß.AlLà¡«QA˜ÓÞ.AlL€µ«QA˜~ß.AlL`Ä«QA˜€Àß.AlL@ΫQA˜à.AlL@׫QA˜Nà.AlLß«QA˜€1à.AlL`î«QA˜€Ýß.AlL@ÿ«QA˜€˜ß.AlL€¬QA˜eß.AlL ¬QA˜ß.AlLÀ#¬QA˜€ØÞ.AlL@0¬QA˜úÝ.AlLðP¬QA˜€ÂÝ.AlL Y¬QA˜ Ý.AlLn¬QA˜ Ü.AlL@‚¬QA˜LÜ.AlL`—¬QA˜€óÛ.AlLÀ¥¬QA˜€®Û.AlL¼¬QA˜bÛ.AlL@Ò¬QA˜"Û.AlL€ã¬QA˜ôÚ.AlL`í¬QA˜€]Ú.AlL`û¬QA˜v×.AlL­QA˜ÙÖ.AlL€­QA˜€ÌÕ.AlL€­QA˜€ëÔ.AlL *­QA˜Ô.AlL@>­QA˜‚Ó.AlLàL­QA˜éÒ.AlLà^­QA˜€“Ò.AlL@l­QA˜…Ò.AlLðn­QA˜€+Ò.AlL@€­QA˜ÔÑ.AlLÀ”­QA˜€ŽÑ.AlL@¤­QA˜€VÑ.AlL ²­QA˜3Ñ.AlL ¼­QA˜Ñ.AlL Å­QA˜ƒÑ.AlL`É­QA˜@¸Ñ.AlL έQA˜ïÑ.AlLàÔ­QA˜PÒ.AlLÀÞ­QA˜ÀÈÒ.AlL`æ­QA˜ÀeÓ.AlL€ì­QA˜ Ô.AlL€î­QA˜ÀÕ.AlLÀï­QA˜@jÕ.AlL@ñ­QA˜óÕ.AlLÀô­QA˜lÖ.AlLàû­QA˜@ ×.AlL®QA˜À†×.AlLà®QA˜ÀAØ.AlLà'®QA˜@ÆØ.AlLà6®QA˜€`Ù.AlL J®QA˜ÀòÙ.AlLV®QA˜wÚ.AlL e®QA˜.Û.AlL s®QA˜úÛ.AlL€€®QA˜ŸÜ.AlL®QA˜@'Ý.AlLÀ–®QA˜@ÊÝ.AlL@¥®QA˜@ŒÞ.AlL¹®QA˜ÀîÞ.AlL À®QA˜€ß.AlLàÈ®QA˜ß.AlL`Ó®QA˜@òß.AlL€Ù®QA˜Àyà.AlL@ß®QA˜@üà.AlL`ã®QA˜@}á.AlLæ®QA˜@â.AlL@í®QA˜Àwâ.AlL`ö®QA˜ÀÔâ.AlL ü®QA˜Oã.AlL¯QA˜èã.AlL ¯QA˜@bä.AlL€¯QA˜@Ïä.AlLÀ¯QA˜Få.AlL %¯QA˜@…å.AlL *¯QA˜€Þå.AlL€0¯QA˜À@æ.AlL 8¯QA˜Âæ.AlL€>¯QA˜ç.AlL A¯QA˜@ç.AlL N¯QAxˆoÓç.AäW$€U¯QA˜àç.AlLàV¯QA˜À=è.AlLc¯QA˜@zè.AlL m¯QA˜@è.AlLÀv¯QA@»È@Tè.Aô`ýy¯QA˜€Ûç.AlL ƒ¯QA˜Wç.AlL¯QA˜€áæ.AlLÀ•¯QA˜pæ.AlL ž¯QA˜Àæ.AlL࣯QA˜@Ãå.AlL`¬¯QA˜Àyå.AlL`²¯QA˜À4å.AlL°¯QA˜Àå.AlL@«¯QA˜Àåä.AlL@¢¯QA˜@éä.AlL`›¯QA˜@áä.AlL ”¯QA˜µä.AlL ¯QA˜Àfä.AlL@›¯QA˜@<ä.AlLÀ¢¯QA˜ÀÜã.AlL ¤¯QA˜@®ã.AlLÀ¡¯QA˜ÀŒã.AlL •¯QA˜@{ã.AlLà‰¯QA˜Wã.AlL€‚¯QA˜À,ã.AlL {¯QA˜Úâ.AlLàx¯QA˜@•â.AlL €¯QA˜@`â.AlL ˆ¯QA˜Àâ.AlL ޝQA˜ƒá.AlL@…¯QA˜ÀËà.AlLÀ¯QA˜@à.AlLà—¯QA˜Àüß.AlL@›¯QA˜žß.AlL`›¯QA˜ÀOß.AlL—¯QA˜Àß.AlL“¯QA˜€Þ.AlL`’¯QA˜ÀQÞ.AlL‘¯QA˜ÀÞ.AlLà‘¯QA˜ÃÝ.AlL€˜¯QA˜ÀSÝ.AlL@•¯QA˜@7Ý.AlLÀ‹¯QA˜DÝ.AlL@|¯QA˜FÝ.AlLu¯QA˜@ÑÜ.AlL€{¯QA˜À”Ü.AlL@‡¯QA˜€KÜ.AlL€—¯QA˜@9Ü.AlL ž¯QA˜ÀþÛ.AlL`©¯QA˜@³Û.AlL«¯QA˜uÛ.AlL@¯¯QA˜À]Û.AlL ´¯QA˜ÀRÛ.AlL€½¯QA˜À8Û.AlL ȯQA˜@áÚ.AlL Ð¯QA˜@žÚ.AlL Ò¯QA˜€uÚ.AlL€Ï¯QA˜ÀKÚ.AlL`˯QA˜@Ú.AlLÀïQA˜ÀéÙ.AlLà¯QA˜ÀÊÙ.AlL`ǯQA˜ÀºÙ.AlL`˯QA˜ÀÎÙ.AlLÀÒ¯QA˜€òÙ.AlL ׯQA˜@Ú.AlL@ݯQA˜À Ú.AlLç¯QA˜@ãÙ.AlL ê¯QA˜@˜Ù.AlL@ì¯QA˜€WÙ.AlL`é¯QA˜@-Ù.AlL€å¯QA˜@ Ù.AlLà߯QA˜àØ.AlL@ܯQA˜@¡Ø.AlL€Ù¯QA˜ÀaØ.AlL دQA˜@ Ø.AlL Û¯QA˜€É×.AlLàá¯QA˜@³×.AlL@ì¯QA˜Àˆ×.AlL ð¯QA˜ÀM×.AlL`î¯QA˜À×.AlLàë¯QA˜ÀµÖ.AlLé¯QA˜@[Ö.AlL÷¯QA˜@(Ö.AlL ü¯QA˜@ÿÕ.AlLó¯QA˜€ØÕ.AlL é¯QA˜À‘Õ.AlLàÞ¯QA˜€8Õ.AlLàܯQA˜ÀðÔ.AlL é¯QA˜ÀøÔ.AlL€ñ¯QA˜3Õ.AlLü¯QA˜@yÕ.AlL °QA˜À”Õ.AlL °QA˜ÀQÕ.AlLà°QA˜€þÔ.AlLÀ°QA˜€¹Ô.AlLà°QA˜iÔ.AlL`°QA˜ÀÔ.AlL@°QA˜@ÐÓ.AlL@°QA˜À¦Ó.AlL`°QA˜À™Ó.AlL@ °QA˜ÀªÓ.AlL€°QA˜@èÓ.AlL@°QA˜@ Ô.AlLà!°QA˜À.Ô.AlLÀ,°QA˜À6Ô.AlL`7°QA˜ÀîÓ.AlL€=°QA˜ÀÓ.AlL F°QA˜€ÅÒ.AlLÀG°QA˜@jÒ.AlL@E°QA˜ÀÒ.AlLàA°QA˜À¥Ñ.AlLD°QA˜€:Ñ.AlL I°QA˜ÀÉÐ.AlL P°QA˜À:Ð.AlL€T°QA˜ÒÏ.AlL€T°QA˜@BÏ.AlL€V°QA˜ÖÎ.AlLà\°QA˜ÀÎ.AlL `°QA˜€ Î.AlL`_°QA˜€éÍ.Arä7_°QA˜@Í.AlLÀ^°QA˜ÀdÍ.AlLÀb°QA˜aÍ.AlLÀl°QA˜ÀlÍ.AlL`t°QA˜@WÍ.AlL@~°QA˜ÀÍ.AlL`‡°QA˜€ÕÌ.AlL’°QA˜Ì.AlL ›°QApÓ]UwÌ.AlL€ °QA˜À[Ì.AlL@¦°QA˜@ Ì.AlL`´°QA˜êË.AlL@Á°QA˜ÁË.AlL ѰQA˜ÀË.AlLÀï°QA˜@ÿÊ.AlLÀõ°QA˜À¬Ê.AlL`±QA˜@QÊ.AlL ±QA˜@Ê.AlL@+±QA˜ÀÜÉ.AlL€8±QA˜†É.AlL J±QA˜@É.AlL@W±QA˜È.AlL@v±QA˜€mÇ.AlL ޱQA˜ñÆ.AlL`œ±QA˜@ZÆ.AlLà­±QA˜ÀÏÅ.AlLñQA˜ÀPÅ.AlLÒ±QA˜@åÄ.AlL@å±QA`@´R³Ä.A:÷ÏÑî±QA˜¤Ä.AlLÀñ±QA˜€UÄ.AlLà²QA˜ÀâÃ.AlLÀ²QA˜}Ã.AlL*²QA˜ÀÃ.AlL C²QA˜€dÂ.AlL€S²QA˜ÀëÁ.AlL€e²QA˜gÁ.AlLÀs²QA˜ÀúÀ.AlL`~²QA˜\À.AlLŒ²QA˜€ù¿.AlLž²QA˜À¤¿.AlLà³²QA˜¿.AlL βQA˜@{¿.AlL ä²QA˜Àt¿.AlLàú²QA˜@u¿.AlLÀ³QA˜¿.AlLà'³QA˜@¯¿.AlL€;³QA˜€Û¿.AlL@J³QA˜ÀÀ.AlL@^³QA˜@)À.AlL@d³QA˜–À.AlL@d³QA˜@ Á.AlLÀb³QA˜@§Á.AlL a³QA˜rÂ.AlL ^³QA˜À'Ã.AlL Y³QA˜@ÝÃ.AlLÀT³QA˜@_Ä.AlL R³QA˜ìÄ.AlL@O³QA˜=Å.AlLN³QA˜À¦Å.AlL L³QA˜À Æ.AlLÀL³QA˜õÆ.AlL`V³QA˜ÀXÇ.AlLÀ^³QA˜@ëÇ.AlLài³QA˜$È.AlLàl³QA˜yÈ.AlLào³QAØ QdÊÈ.A*[œÏu³QA˜€âÈ.AlL@w³QA˜€ É.AlLÀx³QA˜)É.AlLÀz³QA˜€:É.AlLà{³QA˜€nÉ.AlL ƒ³QA˜É.AlL€‹³QA˜žÉ.AlL ’³QA˜€›É.AlL ›³QA˜É.AlL`¨³QA˜eÉ.AlL ¿³QA˜HÉ.AlL@˳QA˜€,É.AlL€Ø³QA˜É.AlLÀé³QA˜ÿÈ.AlL`û³QA˜ãÈ.AlL` ´QA˜¾È.AlLÀ´QA˜€¦È.AlL`*´QA˜‘È.AlLÀ7´QA˜€È.AlLE´QA˜€±È.AlL[´QA˜€ÚÈ.AlL n´QA˜öÈ.AlL‚´QA˜€É.AlL ´QA˜É.AlL`¯´QA˜!É.AlLÀ½´QA˜€;É.AlLÈ´QA˜KÉ.AlL@×´QA˜_É.AlL€Þ´QA˜œÉ.AlLÀã´QA˜ÖÉ.AlL€á´QA˜€Ê.AlL@Ý´QA˜üÉ.AlLдQA˜ûÉ.AlL`ôQA˜cÊ.AlLà ´QA˜Ê.AlL`´QA˜€­Ê.AlL „´QA˜€ÊÊ.AlL@{´QA˜ Ë.AlL€o´QA˜€KË.AlLàh´QA˜€œË.AlL€`´QA˜€ØË.AlLV´QA˜€Ì.AlL O´QA˜aÌ.AlL L´QA˜€ÊÌ.AlL€F´QA˜€ Í.AlLÀC´QA˜€NÍ.AlL @´QA˜€ªÍ.AlL 7´QA˜ÖÍ.AlLà0´QA˜ Î.AlL`*´QA˜€PÎ.AlL ´QA˜¦Î.AlL`´QA˜ÜÎ.AlL€ ´QA˜€2Ï.AlLÀ´QA˜€cÏ.AlLÀõ³QA˜€ªÏ.AlL`í³QA˜ïÏ.AlLÀé³QA˜€3Ð.AlLÀå³QA˜ŒÐ.AlLÞ³QA˜ïÐ.AlL@Ö³QA˜5Ñ.AlL гQA˜€kÑ.AlL`̳QA˜€´Ñ.AlL`óQA˜€ÕÑ.AlL ¾³QA˜€,Ò.AlL «³QA˜¨Ò.AlL ›³QA˜€sÓ.AlLÀ…³QA˜îÓ.AlL€{³QA˜¶Ô.AlL`d³QA˜ÿÔ.AlL [³QA˜KÕ.AlL€N³QA˜€Ô/AlLà ¦QA˜€0/AlL ¦QA˜€n/AlL¦QA˜€/AlL ¦QA˜¦/AlL@¦QA˜€K/AlL€¦QA˜/AlL¦QA˜€(/AlL€¦QA˜€Ó/AlL@ ¦QA˜œ/AlL ¦QA˜€V/AlLà¦QA˜O/AlLàÿ¥QA˜€¹/AlL€ü¥QA˜€[/AlLù¥QA˜€i/AlL ô¥QA˜%/AlL€í¥QA˜C/AlL@è¥QA˜¯/AlL@æ¥QA˜/AlL ã¥QA˜Ž /AlL á¥QA˜€/AlL`¨¥QA˜Ž/AlL ª¥QA˜€u/AlLÀ¥QA˜€C/AlLàÖ¤QA˜€‘/AlL€¾¤QA˜–/AlL »¤QA˜¨/AlLÀ¯¤QA˜Í/AlL€œ¤QA˜€0/AlLà¤QA˜€š/AlL £¤QA˜à/AlL¨¤QA˜€î/AlL൤QA˜€ê/AlLÀ¤QA˜â/AlLÐɤQA˜ß/AlL`ͤQA˜ì/AlL Û¤QA˜€ù/AlL@ê¤QA˜/AlL þ¤QA˜€/AlLà ¥QA˜€/AlL ¥QA˜€/AlL  ¥QA˜€/AlLÀ,¥QA˜€Â/AlLà*¥QA˜Û/AlL N¥QA˜ /AlL€M¥QA˜l/AlL`P¥QA˜½/AlL€O¥QA˜ñ/AlL@L¥QA˜/AlLF¥QA˜€F/AlL C¥QA˜|/AlL`H¥QA˜€®/AlL`O¥QA˜ð/AlL@T¥QA˜€;/AlL V¥QA˜•/AlL€[¥QA˜€j/AlL`f¥QA˜/AlLp¥QA˜€p/AlL@w¥QA˜Ñ/AlL`w¥QA˜"/AlL@v¥QA˜°/AlLx¥QA˜/AlL@z¥QA˜€@/AlL€{¥QA˜p/AlL~¥QA˜€¦/AlL„¥QA˜€Í/AlL`Š¥QA˜./AlL€•¥QA˜€y/AlLÀ¥QA˜Î/AlL@©¥QA˜€/AlLÀ¯¥QA˜/AlLÀ»¥QA˜€/AlLàË¥QA˜ö/AlL Ô¥QA˜€/AlL`Ü¥QA˜ /AlL â¥QA˜€/AlL ë¥QA˜€/AlLÀó¥QA˜/AlL€ý¥QA˜ñ/AlL`¦QA˜€ê/AlL ¦QA˜Ü/AlL€¦QA˜€u/AlL ¦QA˜€(/AlL ¦QA˜€Ë/AlLà¦QA˜>/AlL ¦QA˜€Ô/AlLà ¦QA-&H˜ +/AlLõ…QA˜;Û/AlLÀÛQAƘ&¹/AlLPÙQA˜€ÍÅ/AlLp-QA˜€§Ç/AlL`QA˜€"Ë/AlL×QA˜ôÒ/AlLÀIQA˜€2Ó/AlL@MQA˜€¯×/AlL@QA˜Ù/AlLЪQA˜€òÙ/AlL€°QA˜€Ú/AlL@²QA˜;Û/AlL@ÃQA˜+Ú/AlL`eQA˜€âÙ/AlLàOQA˜ýØ/AlL QA˜×/AlL€¡QA˜Õ/AlL`QA˜"Ô/AlL€‹ŽQA˜ËÓ/AlL \ŽQA˜Ó/AlL òQA˜¹Ò/AlLàÁQA˜€ªÒ/AlL€»QA˜€ Ò/AlLP·QA˜Ò/AlLÀ¨QA˜€ Ò/AlL QA˜•Ñ/AlL vQA˜Ñ/AlL cQA˜ŸÐ/AlLPQA˜€$Ð/AlLÀ2QA˜€XÐ/AlLà$QA˜¬Ï/AlL ûŒQA˜EÏ/AlL QA˜€=Ï/AlL€ QA˜#Ï/AlLÀQA˜¸Î/AlL€òŒQA˜€\Î/AlLàáŒQA˜ëÍ/AlLÀÍŒQA˜€eÍ/AlL€µŒQA˜ïÌ/AlLࢌQA˜€VÌ/AlLàŒŒQA˜€‰Ë/AlLÀyŒQA˜€Ê/AlLp]ŒQA˜KÊ/AlL€SŒQA˜¢É/AlL@AŒQA˜€¤È/AlL`$ŒQA˜€pÈ/AlL`#ŒQA˜0È/AlL #ŒQA˜ðÇ/AlL ŒQA˜€ÌÇ/AlL`ŒQA˜€—Ç/AlL ŒQA˜€ÚÇ/AlL ŒQA˜bÈ/AlL€ü‹QA˜lÉ/AlLñ‹QA˜HÊ/AlL á‹QA˜ÿÊ/AlLÀ΋QA˜€æË/AlL๋QA˜Ê/AlLà‹QA˜€EÊ/AlL y‹QA˜äÌ/AlL@Q‹QA˜€ÆÅ/AlL€›ŠQA˜„Â/AlL@HŠQA˜W¿/AlLÀÙŠQA˜á¾/AlL ¿ŠQA˜°¾/AlLชQA˜X¾/AlLà°ŠQA˜ ¾/AlL`ªŠQA˜€u½/AlLÀœŠQA˜€·¼/AlL€…ŠQA˜a¼/AlLÀŠQA˜6¼/AlL {ŠQA˜€î»/AlL sŠQA˜¹»/AlLàmŠQA˜€Z»/AlLÀbŠQA˜€òº/AlL WŠQA˜€tº/AlL JŠQA˜€ º/AlLà?ŠQA˜O¹/AlLÀ-ŠQA˜Ǹ/AlL@!ŠQA˜€-¸/AlL€ŠQA˜Ü·/AlLŠQA˜I·/AlL€ŠQA˜ì¶/AlLàø‰QA˜¹¶/AlL ó‰QA˜~¶/AlLàé‰QA˜T¶/AlLàÞ‰QA˜G¶/AlLÀÕ‰QA˜¶/AlLʉQA˜Àµ/AlL້QA˜€bµ/AlL€²‰QA˜ã´/AlL ¢‰QA˜„´/AlL ‰QA˜€;´/AlLÀ†‰QA˜å³/AlLàz‰QA˜€u³/AlL n‰QA˜ó²/AlL@c‰QA˜¨²/AlL€Y‰QA˜€^²/AlLÀO‰QA˜²/AlL @‰QA˜€ù±/AlL@4‰QA˜€Å±/AlLÀ(‰QA˜F±/AlL`‰QA˜Û°/AlL ‰QA˜€°/AlL ‰QA˜)°/AlL òˆQA˜¶¯/AlLÀäˆQA˜€?¯/AlL`ÕˆQA˜ò®/AlLÀ̈QA˜€Õ®/AlLàÁˆQA˜X¯/AlL@ƈQA˜€û¯/AlL@̈QA˜x°/AlL ÒˆQA˜€ž°/AlLÔˆQA˜J±/AlL€×ˆQA˜€ ²/AlL äˆQA˜€¾²/AlL@ïˆQA˜g³/AlL€÷ˆQA˜´/AlL þˆQA˜þ´/AlL ‰QA˜€I¶/AlL ‰QA˜Ÿ¸/AlL`-‰QA˜+¹/AlLà2‰QA˜î¹/AlL`>‰QA˜€«¼/AlL c‰QA˜´¼/AlL@\‰QA˜€i³/AlLWˆQA˜+³/AlLMˆQA˜³/AlL CˆQA˜€¿²/AlLÀ?ˆQA˜€²/AlL@AˆQA˜N²/AlL€=ˆQA˜\²/AlL 6ˆQA˜†²/AlL /ˆQA˜€·²/AlLà)ˆQA˜Ô²/AlL€!ˆQA˜â²/AlLàˆQA˜ܲ/AlLÀ ˆQA˜Ѳ/AlL€ˆQA˜β/AlL@÷‡QA˜€9³/AlL ü‡QA˜€‡³/AlL ˆQA˜€Ä³/AlL ˆQA˜ô³/AlLÀˆQA˜´/AlL ú‡QA˜Ž´/AlL û‡QA˜œ´/AlL€ˆQA˜‹´/AlLà ˆQA˜€y´/AlL€ˆQA˜£´/AlLˆQA˜â´/AlL€ˆQA˜€?µ/AlL@ˆQA˜õ/AlL ˆQA˜€4¶/AlLÀˆQA˜¶¶/AlLà!ˆQA˜W·/AlLÀ,ˆQA˜€¨·/AlL@5ˆQA˜€Ú·/AlL@=ˆQA˜¸/AlLàHˆQA˜B¸/AlL@NˆQA˜•¸/AlLTˆQA˜€ ¹/AlL `ˆQA˜€x¹/AlL`eˆQA˜Sº/AlLoˆQA˜Šº/AlL xˆQA˜¿º/AlLxˆQA˜€»/AlLàvˆQA˜V»/AlLsˆQA˜€¼/AlL€rˆQA˜€X¼/AlL`}ˆQA˜€›¼/AlLÀ†ˆQA˜Ú¼/AlL@ˆQA˜€½/AlLà’ˆQA˜O½/AlL`˜ˆQA˜}½/AlL@œˆQA˜€Ö½/AlL¦ˆQA˜€¾/AlL@©ˆQA˜€/¾/AlLà ˆQA˜€Y¾/AlLà™ˆQA˜€¾/AlL “ˆQA˜Ⱦ/AlL€‡ˆQA˜€ò¾/AlL`rˆQA˜€û¾/AlLàmˆQA˜'¿/AlLàrˆQA˜€{¿/AlL€|ˆQA˜€¡¿/AlL`€ˆQA˜€á¿/AlL@…ˆQA˜ À/AlL ‰ˆQA˜€NÀ/AlL ‹ˆQA˜€ÌÀ/AlLÀŒˆQA˜€Á/AlL`ˆQA˜]Á/AlLÀˆQA˜€‘Á/AlL@”ˆQA˜ÚÁ/AlL`”ˆQA˜€*Â/AlL`”ˆQA˜¢Â/AlL`“ˆQA˜€îÂ/AlLÀ•ˆQA˜"Ã/AlL€—ˆQA˜HÃ/AlLÀ“ˆQA˜µÃ/AlL@ˆQA˜Ä/AlL€“ˆQA˜oÄ/AlL –ˆQA˜ÆÄ/AlL`œˆQA˜Å/AlLईQA˜þÄ/AlL@«ˆQA˜ÚÄ/AlL@²ˆQA˜žÄ/AlL€ÀˆQA˜OÄ/AlLÀÓˆQA˜€Ä/AlL`áˆQA˜€ÍÃ/AlL@ñˆQA˜¨Ã/AlLÀ‰QA˜—Ã/AlL‰QA˜€yÃ/AlL`*‰QA˜€yÃ/AlL9‰QA˜€pÃ/AlLÀE‰QA˜€yÃ/AlLàN‰QA˜†Ã/AlL@U‰QA˜‘Ã/AlL`[‰QA˜ˆÃ/AlL g‰QA˜’Ã/AlL@r‰QA˜€È/AlL ê‰QA˜Ë/AlLàȉQA˜€[Ë/AlL@ƉQA˜LÍ/AlLE‰QA˜DÏ/AlL T‰QA˜tÏ/AlLàQ‰QA˜€¨Ï/AlLÀM‰QA˜+Ð/AlLàN‰QA˜”Ð/AlLàT‰QA˜ÕÐ/AlLÀ^‰QA˜€"Ñ/AlL`g‰QA˜ˆÑ/AlLj‰QA˜ßÑ/AlL€h‰QA˜HÒ/AlLÀh‰QA˜€¯Ò/AlL q‰QA˜îÒ/AlLÀw‰QA˜sÓ/AlL w‰QA˜µÓ/AlLÀx‰QA˜€áÓ/AlL`|‰QA˜€÷Ô/AlL ‘‰QA˜6Õ/AlL ‰QA˜€•Õ/AlL }‰QA˜ÆÕ/AlLy‰QA˜¿Õ/AlL o‰QA˜€˜Õ/AlL€i‰QA˜pÕ/AlL ^‰QA˜YÕ/AlL`U‰QA˜€\Õ/AlLÀO‰QA˜_Õ/AlLàJ‰QA˜ Õ/AlLàB‰QA˜€>Õ/AlL .‰QA˜ÞÔ/AlL` ‰QA˜BÔ/AlL ëˆQA˜ Ó/AlL࢈QA˜æÒ/AlL œˆQA˜€½Ò/AlL•ˆQA˜€˜Ò/AlLàŽˆQA˜€wÒ/AlL@‰ˆQA˜LÒ/AlL €ˆQA˜€#Ò/AlL@zˆQA˜öÑ/AlLuˆQA˜ÄÑ/AlL`pˆQA˜€Ñ/AlL`iˆQA˜dÑ/AlL ]ˆQA˜€Ñ/AlLMˆQA˜€ÃÐ/AlL`?ˆQA˜–Ð/AlL 3ˆQA˜4Ð/AlL@'ˆQA˜€ñÏ/AlL  ˆQA˜€eÏ/AlLàˆQA˜€×Î/AlL`ˆQA˜€yÎ/AlL€ˆQA˜€ÖÍ/AlL€ˆQA˜€€Í/AlL ó‡QA˜€Í/AlL`ç‡QA˜qÌ/AlL@á‡QA˜€èË/AlL݇QA˜€’Ë/AlL݇QA˜EË/AlLׇQA˜Ë/AlL ̇QA˜€¬Ê/AlL ½‡QA˜;Ê/AlL ¶‡QA˜ÓÉ/AlL ²‡QA˜€„É/AlLઇQA˜"É/AlLÀ§‡QA˜€¬È/AlL€¨‡QA˜€"È/AlL §‡QA˜€¾Ç/AlLÀ©‡QA˜Ç/AlL`¬‡QA˜€IÇ/AlL€ª‡QA˜€Ç/AlL`¤‡QA˜œÆ/AlLÀŸ‡QA˜7Æ/AlLÀ–‡QA˜ÒÅ/AlL ’‡QA˜‚Å/AlL ’‡QA˜;Å/AlL@‡QA˜€îÄ/AlL ‰‡QA˜€žÄ/AlL €‡QA˜@Ä/AlL@y‡QA˜€ôÃ/AlL`x‡QA˜˜Ã/AlL€z‡QA˜\Ã/AlL@~‡QA˜Ã/AlL€‡QA˜€ÏÂ/AlLà€‡QA˜€XÂ/AlL`~‡QA˜€ÃÁ/AlL@z‡QA˜€bÁ/AlL`x‡QA˜Á/AlL€y‡QA˜€ÙÀ/AlL€x‡QA˜À/AlLÀr‡QA˜[À/AlLàl‡QA˜)À/AlL`h‡QA˜ä¿/AlLf‡QA˜¿/AlL`f‡QA˜R¿/AlL@h‡QA˜€¿/AlL`i‡QA˜€›¾/AlL \‡QA˜€X¾/AlL@V‡QA˜€)¾/AlL@O‡QA˜€ò½/AlL€M‡QA˜¥½/AlLàK‡QA˜#½/AlL@J‡QA˜ÿ¼/AlLàB‡QA˜Ù¼/AlL>‡QA˜€¼/AlL >‡QA˜€J¼/AlL B‡QA˜€¼/AlLàE‡QA˜л/AlL€D‡QA˜€»/AlL=‡QA˜€Q»/AlL`5‡QA˜€»/AlL;‡QA˜¹/AlL N‡QA˜€—¸/AlLà<‡QA˜@¸/AlL ?‡QA˜€¸/AlL @‡QA˜€Œ·/AlL @‡QA˜-·/AlL=‡QA˜Þ¶/AlL@3‡QA˜¥¶/AlLÀ)‡QA˜€Z¶/AlLÀ"‡QA˜Gµ/AlL ‡QA˜Z´/AlLÀ‡QA˜€õ²/AlL@ó†QA˜¥±/AlL€Þ†QA˜I±/AlL Ù†QA˜Õ°/AlLàÔ†QA˜€p°/AlL€Ñ†QA˜!°/AlL@ȆQA˜¨¯/AlL`Á†QA˜€¯/AlL@»†QA˜p®/AlL`³†QA˜·­/AlL¬†QA˜÷¬/AlL@¢†QA˜€s¬/AlL †QA˜€Ú«/AlL™†QA˜F«/AlL€†QA˜€1ª/AlL@…†QA˜€ ª/AlL ˆ†QA˜€°©/AlL›†QA˜„©/AlL ¢†QA˜6©/AlLಆQA˜€©/AlL»†QA˜€x¨/AlL ؆QA˜¨/AlL ð†QA˜€å§/AlL ø†QA˜ä§/AlLà‡QA˜€Ê§/AlL€‡QA˜€&§/AlLP"‡QA˜̦/AlL@,‡QA˜„¦/AlL2‡QA˜R¦/AlL`*‡QA˜¦/AlL€(‡QA˜€Ñ¥/AlLà-‡QA˜€l¥/AlL@1‡QA˜€ý¤/AlL/‡QA˜Ĥ/AlLÀ)‡QA˜€n¤/AlLÀ'‡QA˜€ÿ£/AlL 0‡QA˜±£/AlL`0‡QA˜€Q£/AlLÀ-‡QA˜Ç¢/AlL )‡QA˜Ø¡/AlL ‡QA˜€¡/AlLà‡QA˜€I¡/AlL`‡QA˜¡/AlL€!‡QA˜ù /AlL ,‡QA˜³ /AlL 9‡QA˜Y /AlL`?‡QA˜€9 /AlL M‡QA˜€3 /AlL`X‡QA˜íŸ/AlLà^‡QA˜ŠŸ/AlLÀ\‡QA˜Ÿ/AlL€R‡QA˜€¼ž/AlL`R‡QA˜‡ž/AlLÀb‡QA˜€Ož/AlLào‡QA˜€$ž/AlL|‡QA˜Î/AlLt‡QA˜{/AlL v‡QA˜€\/AlL`}‡QA˜ƒ/AlL@‹‡QA˜ž/AlL ˜‡QA˜V/AlLÀ¥‡QA˜0/AlL@­‡QA˜€ûœ/AlL`¸‡QA˜/AlL@ćQA˜Êœ/AlL ЇQA˜€žœ/AlL@Ù‡QA˜‡œ/AlL ç‡QA˜€Mœ/AlLð‡QA˜x›/AlL í‡QA˜›/AlL ì‡QA˜€zš/AlL@ô‡QA˜€ö™/AlL€ò‡QA˜€Œ™/AlLàñ‡QA˜5™/AlL`ó‡QA˜И/AlLÀô‡QA˜z˜/AlLàù‡QA˜ç—/AlL  ˆQA˜^—/AlL€ˆQA˜€ö–/AlLˆQA˜À–/AlLÀˆQA˜€|–/AlL ÷‡QA˜€L–/AlL@ô‡QA˜€ç•/AlL`û‡QA˜€t•/AlLàü‡QA˜•/AlL û‡QA˜€s”/AlL ô‡QA˜€à“/AlLðç‡QA˜Ô“/AlLàæ‡QA˜€f“/AlL€à‡QA˜“/AlL`ë‡QA˜£’/AlLÀè‡QA˜l’/AlL`î‡QA˜D’/AlLàþ‡QA˜€¾‘/AlL`ö‡QA˜§‘/AlL`æ‡QA˜S‘/AlL`â‡QA˜Ô/AlLå‡QA˜€Z/AlLÀã‡QA˜€×/AlL ä‡QA˜”/AlL؇QA˜€î/AlL`̇QA˜$/AlL`ʇQA˜:/AlLÇQA˜ý/AlL`¹‡QA˜·/AlL@±‡QA˜>/AlL¬‡QA˜l/AlL º‡QA˜‘/AlL€Ã‡QA˜€/AlL À‡QA˜ÊŽ/AlL࿇QA˜€˜Ž/AlL ³‡QA˜€†Ž/AlL ¬‡QA˜PŽ/AlL`¬‡QA˜%Ž/AlL`¹‡QA˜é/AlL »‡QA˜€Ÿ/AlLേQA˜`/AlL ±‡QA˜€yŒ/AlL`³‡QA˜#Œ/AlLಇQA˜¢‹/AlLÀ¯‡QA˜C‹/AlLଇQA˜ ‹/AlL`§‡QA˜‹/AlLÀ™‡QA˜âŠ/AlLà“‡QA˜€½Š/AlL ‡QA˜€„Š/AlL@ˆ‡QA˜GŠ/AlL@‡QA˜€Ö‰/AlL ‘‡QA˜€®‰/AlL€Œ‡QA˜”‰/AlL€‚‡QA˜€‰/AlL@z‡QA˜¿ˆ/AlLh‡QA˜˜ˆ/AlL0_‡QA˜€ˆ/AlLÀ\‡QA˜Kˆ/AlL€M‡QA˜$ˆ/AlLàG‡QA˜€Ð‡/AlLÀM‡QA˜€£‡/AlL`K‡QA˜g‡/AlL@@‡QA˜@‡/AlL`6‡QA˜€ø†/AlLÀ.‡QA˜dž/AlL@4‡QA˜ô†/AlLD‡QA˜å†/AlLQ‡QA˜€j†/AlL Q‡QA˜Ë…/AlL@N‡QA˜€~…/AlLàJ‡QA˜6…/AlL€G‡QA˜€Æ„/AlLE‡QA˜…„/AlL <‡QA˜>„/AlL@9‡QA˜&„/AlL2‡QA˜q„/AlLà-‡QA˜€´„/AlL +‡QA˜ …/AlL '‡QA˜€Þ„/AlL ‡QA˜€Ø„/AlL ‡QA˜€ì„/AlL@ ‡QA˜€”„/AlL`‡QA˜€R„/AlL`‡QA˜€&„/AlL‡QA˜€Ìƒ/AlL‡QA˜€†ƒ/AlL ‡QA˜vƒ/AlLÀ‡QA˜€nƒ/AlL‡QA˜Ó‚/AlL ‡QA˜W‚/AlL‡QA˜€o‚/AlL  ‡QA˜p‚/AlL`-‡QA˜ ‚/AlLÀ*‡QA˜€Ï/AlL€"‡QA˜€„/AlL &‡QA˜b/AlL`/‡QA˜€/AlL 1‡QA˜Ä€/AlL-‡QA˜¡€/AlL &‡QA˜€X€/AlL'‡QA˜€û/AlL,‡QA˜Ñ/AlL€!‡QA˜€ €/AlL@‡QA˜á/AlL ‡QA˜Ë/AlL ‡QA˜€{/AlL€ ‡QA˜€R/AlL ‡QA˜Ú~/AlLà‡QA˜~/AlL‡QA˜{~/AlL€‡QA˜€=~/AlL þ†QA˜€~/AlL ù†QA˜€á}/AlLà‡QA˜ž}/AlL‡QA˜€‚}/AlL` ‡QA˜}/AlL`‡QA˜€¯}/AlL !‡QA˜€R}/AlLà&‡QA˜€ }/AlLÀ‡QA˜€Þ|/AlLÀ‡QA˜€n|/AlLÀ‡QA˜N|/AlLàÿ†QA˜€X|/AlL ÷†QA˜|/AlL`ï†QA˜€Ý{/AlLÀé†QA˜€²{/AlLÀò†QA˜Q{/AlL ÷†QA˜{/AlL ò†QA˜¨z/AlL í†QA˜uz/AlL€ò†QA˜z/AlL ï†QA˜¸y/AlL ò†QA˜€qy/AlLÀõ†QA˜€y/AlL é†QA˜ûx/AlL`ã†QA˜®x/AlL ݆QA˜€Lx/AlLàÞ†QA˜ÿw/AlLà܆QA˜€ww/AlLÞ†QA˜w/AlLàÙ†QA˜Øv/AlL@Ô†QA˜€pv/AlLàÒ†QA˜[v/AlL܆QA˜€Yv/AlL é†QA˜=v/AlL õ†QA˜v/AlLú†QA˜Gu/AlL`‡QA˜ët/AlL ‡QA˜Øt/AlL‡QA˜Ît/AlLÀ‡QA˜€`t/AlL€‡QA˜ïs/AlL‡QA˜€šs/AlL‡QA˜€s/AlLà‡QA˜Ìr/AlL ‡QA˜€¥r/AlL‡QA˜Zr/AlL ‡QA˜r/AlL@ø†QA˜€Rr/AlL€ï†QA˜or/AlL ê†QA˜‡QA˜€a\/AlLC‡QA˜/\/AlL J‡QA˜ \/AlL Z‡QA˜É[/AlL _‡QA˜ƒ[/AlLb‡QA˜B[/AlLà_‡QA˜ôZ/AlL@Z‡QA˜€–Z/AlL`Y‡QA˜PZ/AlLà_‡QA˜Z/AlL@g‡QA˜€¸Y/AlL h‡QA˜€kY/AlL c‡QA˜€+Y/AlLÀZ‡QA˜áX/AlL S‡QA˜«X/AlL O‡QA˜€-X/AlL@M‡QA˜»W/AlL€I‡QA˜€9W/AlL C‡QA˜W/AlL;‡QA˜ W/AlL 1‡QA˜þV/AlL€+‡QA˜ÁV/AlL &‡QA˜€¯V/AlLP%‡QA˜€pV/AlL`"‡QA˜€V/AlL`‡QA˜÷U/AlLÀ‡QA˜¹U/AlL€ ‡QA˜€‚U/AlL‡QA˜€4U/AlL@‡QA˜îT/AlL0‡QA˜ºT/AlL€‡QA˜€uT/AlL€‡QA˜€%T/AlL€‡QA˜êS/AlL@‡QA˜€ÄS/AlL`‡QA˜€ÓS/AlL ü†QA˜ëS/AlL`ó†QA˜T/AlL€ë†QA˜ãS/AlLàà†QA˜€S/AlL á†QA˜€7S/AlLã†QA˜(S/AlLÀã†QA˜×R/AlL è†QA˜€§R/AlL€î†QA˜€RR/AlLó†QA˜€R/AlLàî†QA˜ÆQ/AlL@à†QA˜ÄQ/AlL Õ†QA˜€oQ/AlL`Õ†QA˜Q/AlL@Õ†QA˜€ÃP/AlLàφQA˜€tP/AlL@͆QA˜€oO/AlLàȆQA˜€ôN/AlL ƆQA˜€ŸN/AlL Ã†QA˜bN/AlL€Á†QA˜€îM/AlL Ã†QA˜€M/AlLàdžQA˜vM/AlL ͆QA˜AM/AlL Ò†QA˜€ôL/AlLÖ†QA˜€vL/AlL ΆQA˜€YL/AlL`ĆQA˜€#L/AlL€¸†QA˜L/AlL ²†QA˜L/AlL€§†QA˜öK/AlL›†QA˜€ÈK/AlL€•†QA˜QK/AlL@“†QA˜¿J/AlL’†QA˜€ÍI/AlL–†QA˜„I/AlL—†QA˜€II/AlLÀ—†QA˜ I/AlL€™†QA˜çH/AlL€¢†QA˜QH/AlL ™†QA˜H/AlL ‘†QA˜ÇG/AlL`‰†QA˜’G/AlL †QA˜€‘G/AlL`y†QA˜pG/AlLu†QA˜€G/AlLÀr†QA˜ÂF/AlLÀk†QA˜€´F/AlL€c†QA˜ F/AlL`]†QA˜€UF/AlL Y†QA˜€6F/AlLàS†QA˜€âE/AlLàN†QA˜’E/AlL`K†QA˜SE/AlL`I†QA˜€E/AlLD†QA˜ÓD/AlLA†QA˜nD/AlL=†QA˜HD/AlL€6†QA˜#D/AlLà/†QA˜€D/AlL€)†QA˜D/AlL@#†QA˜ÅC/AlL`†QA˜€˜C/AlLÀ†QA˜.C/AlL€†QA˜€÷B/AlL`†QA˜½B/AlLÀ †QA˜ôA/AlL †QA˜¨A/AlL€†QA˜€'A/AlL †QA˜­@/AlL †QA˜K@/AlLÀ"†QA˜Ó?/AlL€$†QA˜f?/AlLÀ%†QA˜€ô>/AlL '†QA˜€¶>/AlL *†QA˜}>/AlL 0†QA˜€p>/AlLð/†QA˜€ý=/AlL@.†QA˜ž=/AlL +†QA˜€>=/AlL`)†QA˜ÕŠQA˜û//AlL`KŠQA˜€0/AlLÀTŠQA˜W0/AlL^ŠQA˜€f0/AlL0`ŠQA˜€‰0/AlLeŠQA˜0/AlL€sŠQA˜Ù0/AlL€ŸŠQA˜“1/AlL ©ŠQA˜€½1/AlL ³ŠQA˜2/AlLÀÀŠQA˜€2/AlLÊŠQA˜2/AlLàЊQA˜ö1/AlL€×ŠQA˜€2/AlL@ÞŠQA˜€2/AlL@çŠQA˜þ1/AlL@ñŠQA˜×1/AlL`õŠQA˜€Ý1/AlLüŠQA˜å1/AlL ‹QA˜2/AlLÀ‹QA˜€=2/AlL€‹QA˜_2/AlL #‹QA˜˜2/AlLÀ>‹QA˜ª2/AlLF‹QA˜·2/AlLàK‹QA˜€Ú2/AlL€W‹QA˜€3/AlLà_‹QA˜83/AlL h‹QA˜u3/AlLÀn‹QA˜À3/AlL`w‹QA˜4/AlL…‹QA˜.4/AlL@‹QA˜N4/AlL–‹QA˜Š4/AlL ¡‹QA˜·4/AlL`«‹QA˜€Û4/AlL€µ‹QA˜5/AlL@ËQA˜:5/AlLà΋QA˜]5/AlL€Õ‹QA˜€ž5/AlL`Ý‹QA˜Ì5/AlLàé‹QA˜ö5/AlLÀõ‹QA˜€6/AlL`ÿ‹QA˜€,6/AlL ŒQA˜M6/AlLŒQA˜€T6/AlL@ŒQA˜€S6/AlL`#ŒQA˜?6/AlL@.ŒQA˜=6/AlLÀ4ŒQA˜=6/AlL DŒQA˜I6/AlLÀNŒQA˜P6/AlL XŒQA˜K6/AlLp_ŒQA˜„6/AlL€}ŒQA˜§6/AlL ƒŒQA˜€È6/AlL`‹ŒQA˜ó6/AlLà‘ŒQA˜€7/AlL€˜ŒQA˜7/AlL`ŸŒQA˜77/AlL¨ŒQA˜]7/AlLÀ³ŒQA˜€7/AlLÀ¾ŒQA˜¸7/AlL ÉŒQA˜€ä7/AlL@ÒŒQA˜8/AlLðÚŒQA˜|8/AlL æŒQA˜Ç8/AlL`ñŒQA˜€'9/AlL QA˜r9/AlL€ QA˜¿9/AlL€QA˜€$:/AlLÀ(QA˜m:/AlLÀ5QA˜±:/AlLPBQA˜;/AlL`LQA˜€Œ;/AlL WQA˜€ /AlL`ÖQA˜¬>/AlLp×QA˜€N?/AlLÀàQA˜Å?/AlL€äQA˜y@/AlL`íQA˜€ó@/AlL€õQA˜—A/AlL@ÿQA˜€B/AlL`ŽQA˜éB/AlL ŽQA˜UC/AlLàŽQA˜åC/AlL`ŽQA˜€„D/AlL@ ŽQA˜€¦E/AlL`ŽQA˜ F/AlL-ŽQA˜pF/AlLÀ?ŽQA˜ÛF/AlLàMŽQA˜€YG/AlLÀ`ŽQA˜€—G/AlL`sŽQA˜€ÈG/AlLÀ‹ŽQA˜øG/AlL°¢ŽQA˜{H/AlLÀ°ŽQA˜€I/AlL`ºŽQA˜mI/AlLཎQA˜€)J/AlLÃŽQA˜’J/AlLðËŽQA˜ÄJ/AlLàÓŽQA˜6K/AlLÀàŽQA˜‘K/AlLàëŽQA˜øK/AlL@îŽQA˜sL/AlL íŽQA˜€M/AlLïŽQA˜ŠM/AlL@îŽQA˜€¿M/AlLêŽQA˜(N/AlLàåŽQA˜€®N/AlLçŽQA˜€#O/AlL ðŽQA˜€ŸO/AlL`õŽQA˜,P/AlLÀóŽQA˜€KP/AlL`óŽQA˜ñP/AlLìŽQA˜{Q/AlL âŽQA˜€)R/AlL€æŽQA˜†R/AlLÀêŽQA˜ßR/AlLæŽQA˜&S/AlLàãŽQA˜€qS/AlL°îŽQA˜¶S/AlL@õŽQA˜JT/AlL€öŽQA˜€¢T/AlL€óŽQA˜€îT/AlL ðŽQA˜€$U/AlLàìŽQA˜€fU/AlL`æŽQA˜€¹U/AlL@ÞŽQA˜€ V/AlL ÝŽQA˜€ŠV/AlL âŽQA˜×V/AlLÀáŽQA˜"W/AlL ÝŽQA˜€ˆW/AlL€ÚŽQA˜€ìW/AlL ߎQA˜€>X/AlL`çŽQA˜€ŽX/AlL îŽQA˜€ÙX/AlL€íŽQA˜€HY/AlLíŽQA˜€ÇY/AlL éŽQA˜€)Z/AlL êŽQA˜€“Z/AlL ïŽQA˜€[/AlL`÷ŽQA˜©[/AlL QA˜€'\/AlL@ QA˜‹\/AlL`QA˜ñ\/AlLàQA˜€0]/AlL€#QA˜€t]/AlL€'QA˜€ï]/AlL +QA˜€b^/AlLà-QA˜€Ô^/AlL +QA˜€D_/AlL`)QA˜€Ó_/AlL ,QA˜€N`/AlL@6QA˜­`/AlL =QA˜€a/AlLÀCQA˜…a/AlL@JQA˜b/AlLVQA˜€Mb/AlL dQA˜€yb/AlLÐsQA˜€¼b/AlLÀzQA˜€àb/AlL@tQA˜€ÿb/AlL@nQA˜Cc/AlLàmQA˜[c/AlL wQA˜€—c/AlL ‚QA˜€õc/AlL ‘QA˜)d/AlLÀ˜QA˜[d/AlL€žQA˜€pd/AlL •QA˜€†d/AlLŽQA˜¹d/AlL@‰QA˜€ød/AlL@‡QA˜Me/AlLˆQA˜€ve/AlL`‚QA˜€ye/AlL|QA˜„e/AlL`tQA˜­e/AlL oQA˜€æe/AlL pQA˜f/AlLvQA˜€^f/AlL@yQA˜€œf/AlL@zQA˜€Ôf/AlL@{QA˜ñf/AlL zQA˜ g/AlLwQA˜€Ôg/AlLÀvQA˜€ h/AlLwQA˜Th/AlL`xQA˜ˆh/AlLÀqQA˜€Äh/AlLqQA˜€0i/AlLoQA˜€¨i/AlL@iQA˜!j/AlLÀeQA˜€{j/AlL@bQA˜Ój/AlLgQA˜€k/AlL oQA˜€hk/AlL uQA˜€Þk/AlLàuQA˜7l/AlL`vQA˜vl/AlLrQA˜¾l/AlLkQA˜Él/AlLàaQA˜€gm/AlL`_QA˜€&n/AlL@\QA˜žn/AlL ZQA˜€án/AlL`[QA˜€oo/AlL YQA˜€p/AlL@VQA˜€p/AlLÀTQA˜÷p/AlL[QA˜€Ãq/AlLàfQA˜r/AlLtQA˜€kr/AlL zQA˜€£r/AlL€QA˜€òr/AlLà„QA˜Ls/AlLÀ‡QA˜Šs/AlLÀˆQA˜€2t/AlL`…QA˜€°t/AlLÀ‚QA˜öt/AlL`QA˜Hu/AlL@‹QA˜€Žu/AlL€”QA˜€Çu/AlLà¡QA˜õu/AlLÀ­QA˜#v/AlL€¼QA˜Vv/AlL ÉQA˜€¦v/AlL°ÖQA˜Õv/AlLÛQA˜€Aw/AlL@ãQA˜€Žw/AlLÀéQA˜€Ûw/AlL ìQA˜€ix/AlL ìQA˜€Ñx/AlL@îQA˜€Yy/AlL@ïQA˜€·y/AlL`ûQA˜Øy/AlLÀQA˜€z/AlLàQA˜€6z/AlL QA˜€rz/AlLÀ QA˜€¾z/AlL`QA˜{/AlL` QA˜€<{/AlL@QA˜€f{/AlL@QA˜€–{/AlL QA˜ê{/AlL #QA˜€5|/AlL .QA˜€’|/AlLÀ3QA˜€Ë|/AlL0QA˜,}/AlLà*QA˜€*}/AlL2QA˜$}/AlLÀYQA˜€:}/AlL@`QA˜S}/AlL°gQA˜}}/AlL lQA˜€Á}/AlLàkQA˜€õ}/AlL hQA˜¯/AlLÀTQA˜§‚/AlLÀ8QA˜€]‹/AlL@æQA˜y/AlLàêQA˜$ž/AlLÐ…ŽQA˜€iž/AlLÀ~ŽQA˜ª¡/AlL`²ŽQA˜€Ò¡/AlL ÊŽQA˜€Æ¤/AlL`QA˜€ª¥/AlLàÿŽQA˜¿¥/AlLÀÿŽQA˜€D¦/AlL QA˜â¦/AlL`QA˜€†§/AlL@*QA˜M¨/AlL€=QA˜€©/AlL`PQA˜€·©/AlLPcQA˜@Í©/AlL`eQA˜€ª/AlLoQA˜§«/AlL`ŽQA˜y¬/AlL ŸQA˜m­/AlL´QA˜<®/AlLÀÍQA˜æ®/AlL âQA˜€ °/AlLÿQA˜€?±/AlL QA˜€Ï²/AlL @QA˜€ö³/AlL_QA˜€-µ/AlLà|QA˜€¶/AlLÀ”QA˜€û¶/AlL ©QA˜¸/AlL@¿QA˜î¸/AlLÀÛQA˜&¹/AlLPÙQA.˜¥Y/AlL°¤sQA˜€AŽ/AlL05{QAo˜€/„/AlL€{QA˜€x„/AlL`{QA˜€¼„/AlL€{QA˜€ …/AlL {QA˜S…/AlL  {QA˜€¤…/AlL@{QA˜ú…/AlLp{QA˜]†/AlLà {QA˜€š†/AlL {QA˜€Ò†/AlL`{QA˜‡/AlL€ûzQA˜€%‡/AlL€ôzQA˜€%‡/AlL ézQA˜€‡/AlLàzQA˜ ‡/AlL ØzQA˜€‡/AlLÎzQA˜€‡/AlL@ÃzQA˜€‡/AlLÀ¹zQA˜‡/AlL@°zQA˜€2‡/AlL ¦zQA˜€H‡/AlL€œzQA˜c‡/AlL “zQA˜€†‡/AlL ‰zQA˜‘‡/AlL‚zQA˜€‡/AlLÀyzQA˜u‡/AlLàozQA˜|‡/AlLà_zQA˜„‡/AlLÐSzQA˜‡‡/AlL OzQA˜™‡/AlLàCzQA˜–‡/AlL 7zQA˜‡‡/AlL .zQA˜Y‡/AlLà"zQA˜õ†/AlL@zQA˜€¼†/AlL zQA˜{†/AlL@üyQA˜K†/AlL ôyQA˜€†/AlL êyQA˜€Ü…/AlLâyQA˜€é…/AlLàÕyQA˜É…/AlL@ËyQA˜¾…/AlL°ÆyQA˜€–…/AlL`¶yQA˜€h…/AlL@ªyQA˜€P…/AlL`ŸyQA˜J…/AlL@‘yQA˜€d…/AlLƒyQA˜€Œ…/AlLtyQA˜¸…/AlLgyQA˜þ…/AlL@]yQA˜€6†/AlLRyQA˜A†/AlL€ByQA˜=†/AlL 4yQA˜€K†/AlL (yQA˜€Q†/AlL`yQA˜€V†/AlLPyQA˜€i†/AlL@yQA˜€y†/AlL`yQA˜€¤†/AlL ùxQA˜ņ/AlL`ðxQA˜ý†/AlL@éxQA˜€R‡/AlL@ÝxQA˜€Á‡/AlL ÒxQA˜ò‡/AlLÀÊxQA˜0ˆ/AlLÀxQA˜Òˆ/AlL@¥xQA˜‰/AlLÀšxQA˜€L‰/AlLà’xQA˜€ª‰/AlLàˆxQA˜ý‰/AlL€}xQA˜LŠ/AlL uxQA˜€¦Š/AlLàjxQA˜ÿŠ/AlL gxQA˜h‹/AlLcxQA˜È‹/AlL``xQA˜€AŒ/AlL _xQA˜€]Œ/AlL€MxQA˜rŒ/AlL AxQA˜€ˆŒ/AlL6xQA˜€ŸŒ/AlLà,xQA˜€²Œ/AlL€$xQA˜ÒŒ/AlLxQA˜€÷Œ/AlLÀxQA˜€/AlL@ xQA˜€>/AlLÀxQA˜Y/AlLàõwQA˜€s/AlLæwQA˜€}/AlLØwQA˜/AlL€ÇwQA˜u/AlL€¸wQA˜q/AlLà­wQA˜€b/AlLÀŸwQA˜€[/AlL`“wQA˜€l/AlLà‚wQA˜€}/AlLàqwQA˜/AlLÀewQA˜/AlL VwQA˜€y/AlLàIwQA˜€m/AlL€8wQA˜s/AlLp2wQA˜v/AlLÀ,wQA˜€v/AlL`'wQA˜€Ž/AlL@wQA˜€Ÿ/AlL  wQA˜·/AlL€wQA˜À/AlL÷vQA˜€È/AlL€êvQA˜€Þ/AlLàßvQA˜€å/AlL ÐvQA˜€è/AlL€¹vQA˜í/AlL€¥vQA˜€ë/AlL –vQA˜€î/AlL@†vQA˜€ç/AlL uvQA˜€Ý/AlL bvQA˜€ô/AlL@LvQA˜€û/AlL?vQA˜€Ž/AlL+vQA˜€Ž/AlL€vQA˜Ž/AlL vQA˜ Ž/AlL€îuQA˜+Ž/AlL@ÚuQA˜€0Ž/AlL@ÐuQA˜€ Ž/AlLàÉuQA˜€Ž/AlLÀÁuQA˜€"Ž/AlL»uQA˜€"Ž/AlL ©uQA˜€.Ž/AlL€uQA˜€AŽ/AlL ”uQA˜5Ž/AlL‘uQA˜@0Ž/AlLxuQA˜!Ž/AlLÀŠuQA˜×/AlLà†uQA˜€†/AlLà~uQA˜8/AlL`|uQA˜¢Œ/AlLà|uQA˜€[Œ/AlLvuQA˜€PŒ/AlL°suQA˜1Œ/AlLluQA˜€ü‹/AlLÐauQA˜Ê‹/AlL buQA˜‹/AlLguQA˜”‹/AlL ouQA˜^‹/AlL€vuQA˜€þŠ/AlLàtuQA˜€¿Š/AlL quQA˜ŠŠ/AlL°ouQA˜[Š/AlLÀquQA˜2Š/AlL@zuQA˜Š/AlL0{uQA˜€ß‰/AlL€uuQA˜׉/AlL tuQA˜·‰/AlL luQA˜€”‰/AlL€euQA˜A‰/AlL@]uQA˜€íˆ/AlL@XuQA˜€¤ˆ/AlL XuQA˜€|ˆ/AlLÀSuQA˜¥ˆ/AlLÀLuQA˜Ÿˆ/AlLFuQA˜€¸ˆ/AlL ;uQA˜yˆ/AlLà8uQA˜€Xˆ/AlL€7uQA˜ï‡/AlLà7uQA˜€w‡/AlLP9uQA˜€…‡/AlLà.uQA˜€C‡/AlLÀ-uQA˜€‡/AlL€/uQA˜͆/AlLÀ3uQA˜‡†/AlL€-uQA˜€z†/AlL@'uQA˜€x†/AlL uQA˜‘†/AlL uQA˜€˜†/AlLà uQA˜€s†/AlL€uQA˜S†/AlL@uQA˜†/AlLùtQA˜€È…/AlL€ütQA˜€b…/AlLuQA˜€%…/AlL`ýtQA˜€…/AlLõtQA˜€ë„/AlLÀítQA˜Õ„/AlL@ãtQA˜€Ð„/AlL ÙtQA˜€¾„/AlL×tQA˜±„/AlLÖtQA˜„/AlL`ÒtQA˜€_„/AlLàËtQA˜€6„/AlLÀÅtQA˜€„/AlL€¼tQA˜߃/AlLà»tQA˜€ƒ/AlL€ºtQA˜'ƒ/AlLàºtQA˜€Ñ‚/AlL µtQA˜€ ‚/AlL ¯tQA˜€V‚/AlLÀ¯tQA˜×/AlL`¯tQA˜™/AlL`¬tQA˜€W/AlLÀ©tQA˜€-/AlL ¢tQA˜€ø€/AlL œtQA˜€Î€/AlLÀ˜tQA˜“€/AlL€—tQA˜€N€/AlLpŠtQA˜€%€/AlLptQA˜€Ö/AlL€tQA˜€ª/AlL †tQA˜t/AlLàtQA˜€+/AlL@€tQA˜ó~/AlL€tQA˜Ž~/AlL tQA˜P~/AlL`|tQA˜&~/AlLàttQA˜€~/AlLktQA˜€~/AlL€ctQA˜ç}/AlL\tQA˜”}/AlLÀYtQA˜€{}/AlLStQA˜€r}/AlLàItQA˜r}/AlLÀ?tQA˜€ƒ}/AlL 9tQA˜}/AlLÀ1tQA˜r}/AlL *tQA˜7}/AlL #tQA˜}/AlL tQA˜€á|/AlL tQA˜€ø|/AlLtQA˜€,}/AlL` tQA˜€&}/AlLÀtQA˜€}/AlLàüsQA˜€Õ|/AlLÀòsQA˜§|/AlLàïsQA˜€W|/AlLàísQA˜~|/AlL€æsQA˜Û|/AlLÀÝsQA˜×|/AlLàÖsQA˜œ|/AlL0ÒsQA˜€|/AlL`ÙsQA˜|/AlLÀÒsQA˜€ |/AlL@ÇsQA˜¥{/AlL ÈsQA˜j{/AlLPÉsQA˜€*{/AlLÀÄsQA˜€{/AlL@¹sQA˜&{/AlL`¯sQA˜€{/AlL€ªsQA˜€Öz/AlL`¦sQA˜z/AlL°¤sQA˜‰z/AlLÀ«sQA˜z/AlLp·sQA˜€z/AlL ³sQA˜Øy/AlL³sQA˜†y/AlLà²sQA˜€Ly/AlL ´sQA˜€y/AlL¸sQA˜€¹x/AlLйsQA˜€‰x/AlL·sQA˜Qx/AlLÀ»sQA˜Mx/AlLÃsQA˜-x/AlL`ÇsQA˜€x/AlLàÃsQA˜€×w/AlLà¿sQA˜‰w/AlLмsQA˜Tw/AlLÃsQA˜€w/AlL ¿sQA˜Þv/AlL¼sQA˜€“v/AlL@ÁsQA˜€?v/AlLËsQA˜€ v/AlL`ÐsQA˜Ùu/AlLÚsQA˜€–u/AlL ÝsQA˜eu/AlL€âsQA˜€9u/AlLÀåsQA˜€èt/AlLæsQA˜Ít/AlL`ðsQA˜€¢t/AlLùsQA˜€tt/AlL ûsQA˜€ot/AlL tQA˜8t/AlLtQA˜€ós/AlL°tQA˜€ôs/AlL@!tQA˜€ás/AlLà&tQA˜€¥s/AlL(tQA˜€hs/AlL$tQA˜s/AlL $tQA˜s/AlL`+tQA˜€,s/AlL 1tQA˜!s/AlL€7tQA˜s/AlLÀzQA˜,|/AlLEzQA˜0|/AlL`OzQA˜|/AlLXzQA˜€|/AlL@`zQA˜H|/AlL`dzQA˜|/AlL@dzQA˜™|/AlLÀnzQA˜š|/AlL|zQA˜}/AlL }zQA˜H}/AlL@zQA˜}/AlL ‡zQA˜~/AlLÀ‘zQA˜€R~/AlL zQA˜€ ~/AlLà¾zQA˜€á~/AlLÏzQA˜/AlL`ØzQA˜€y/AlL@ßzQA˜€±/AlLäzQA˜±/AlL€ëzQA˜Ç/AlL@÷zQA˜ó/AlL þzQA˜€/AlL`{QA˜O€/AlLÀ {QA˜v€/AlLP{QA˜…€/AlL€{QA˜›€/AlLÀ{QA˜€Ü€/AlLà&{QA˜€E/AlL 0{QA˜€¢/AlL05{QA˜€‚/AlLÀ0{QA˜€Ô‚/AlL@!{QA˜€ƒ/AlL{QA˜Kƒ/AlL {QA˜€~ƒ/AlL {QA˜€¬ƒ/AlLÀ {QA˜÷ƒ/AlL` {QA˜€/„/AlL€{QA/ø¸,ä XÊ.AlL`IŒQA˜€d,/AlLà˜QA|˜€‰$/AlL@˜QA˜‡$/AlL ˜QA˜b&/AlL š—QA˜¬&/AlL›—QA˜!'/AlL@–—QA˜€Q'/AlL —QA˜€'/AlL@—QA˜€ '/AlLàp—QA˜€Ý'/AlLàa—QA˜(/AlLÀP—QA˜ )/AlL —QA˜Â)/AlLÀü–QA˜€W*/AlL ß–QA˜€’+/AlL`”–QA˜ð+/AlLÀ€–QA˜€d,/AlL ]–QA˜€T,/AlL€<–QA˜',/AlL 7–QA˜ü+/AlL€-–QA˜Ï+/AlLÀ$–QA˜€ˆ+/AlL !–QA˜+/AlL !–QA˜´*/AlL@–QA˜K*/AlL–QA˜€ó)/AlL`–QA˜X)/AlL@÷•QA˜µ(/AlLàó•QA˜€Õ'/AlL ñ•QA˜!'/AlLí•QA˜ƒ&/AlLàæ•QA˜­%/AlLÀÝ•QA˜€Ë$/AlLÞ•QA˜€$/AlL ã•QA˜O#/AlL€æ•QA˜å"/AlLàè•QA˜L"/AlLàï•QA˜€¦!/AlLñ•QA˜€˜ /AlL ê•QA˜€ß/AlLç•QA˜€+/AlL`ì•QA˜¨/AlLí•QA˜€ÿ/AlL@é•QA˜o/AlL@á•QA˜ó/AlL Ü•QA˜‚/AlL€á•QA˜Œ/AlLÀÓ•QA˜/AlL€Ô•QA˜€h/AlL@וQA˜é/AlLàÑ•QA˜€G/AlLÓ•QA˜€Ã/AlLàØ•QA˜R/AlL Ù•QA˜„/AlLàÔ•QA˜ç/AlLÍ•QA˜</AlL€Æ•QA˜†/AlLº•QA˜€/AlL`¨•QA˜€ /AlL`–•QA˜€Ï/AlLà•QA˜w/AlLÀi•QA˜€D/AlL@\•QA˜$/AlL R•QA˜€—/AlL"•QA˜D/AlLà•QA˜ï/AlL@é”QA˜Ù /AlLÑ”QA˜ /AlL€Ì”QA˜q /AlL¿”QA˜€ /AlL»”QA˜€u /AlL´”QA˜€ /AlL®”QA˜– /AlL€¦”QA˜€2 /AlL` ”QA˜€¥ /AlL š”QA˜€ /AlLà””QA˜€i/AlL€”QA˜±/AlL Š”QA˜€ /AlL€„”QA˜€É/AlL@‚”QA˜£/AlL”QA˜ä/AlL`v”QA˜N/AlL€q”QA˜€Ý/AlLÀf”QA˜G/AlL [”QA˜‚/AlLàO”QA˜€/AlL<”QA˜Ÿ/AlLÀ3”QA˜³ÿ.AlLà%”QA˜€'ÿ.AlLà”QA˜jþ.AlL`”QA˜€Ïý.AlL@”QA˜4ý.AlLï“QA˜€ëü.AlL ä“QA˜bü.AlLàÖ“QA˜Öû.AlL`ΓQA˜€Lû.AlL Á“QA˜îú.AlLº“QA˜€Áú.AlLà “QA˜Óú.AlL€š“QA˜Éú.AlL@o“QA˜Yú.AlL@“QA˜<ú.AlLà'“QA˜5ú.AlL “QA˜€Fú.AlL`÷’QA˜€ú.AlL ç’QA˜Ôú.AlLÖ’QA˜€åú.AlLÐÎ’QA˜û.AlL ¹’QA˜@û.AlL ¡’QA˜€Qû.AlL Œ’QA˜Žû.AlLÀw’QA˜€”û.AlL u’QA˜Àü.AlLà"’QA˜ý.AlL@å‘QA˜Èþ.AlL‰‘QA˜€K/AlL`%‘QA˜€/AlLíQA˜€5/AlL ÔQA˜f/AlL@¾QA˜›/AlL€§QA˜œ/AlLÀ–QA˜š/AlL@ˆQA˜€™/AlL †QA˜€Í/AlL@xQA˜//AlL`dQA˜€ž/AlLàWQA˜/AlL HQA˜€6/AlL€CQA˜€®/AlL@:QA˜¸/AlL-QA˜µ/AlL #QA˜Æ/AlL€QA˜€Í/AlLÀ QA˜/AlL` QA˜€e/AlLýQA˜€þ/AlL€õQA˜Á/AlLñQA˜€Á/AlLéQA˜½/AlLÀÓQA˜€/AlLàÌQA˜k/AlLÀÇQA˜W/AlLàÀQA˜€K/AlL ¸QA˜€C/AlL€±QA˜ /AlL@¬QA˜Ø/AlL€¤QA˜€‘/AlL –QA˜{/AlL ŒQA˜?/AlLÀ|QA˜/AlLÀsQA˜C/AlLÀhQA˜€/AlL€UQA˜€ô/AlLàGQA˜€7/AlL`@QA˜ ÿ.AlLà:QA˜:ÿ.AlL 2QA˜èþ.AlL`-QA˜€™þ.AlL #QA˜€þ.AlL QA˜Ôý.AlLà QA˜€]ý.AlL@QA˜€ ý.AlL@üŽQA˜oü.AlLàïŽQA˜çû.AlL çŽQA˜pû.AlL ãŽQA˜€û.AlL àŽQA˜€¼ú.AlLÀàŽQA˜€[ú.AlLHÛŽQA˜€þù.AlLÔŽQA˜€±ù.AlL`ÑŽQA˜$ù.AlL ÈŽQA˜€åø.AlLÀÀŽQA˜ ø.AlL ¸ŽQA˜€Xø.AlL ®ŽQA˜ø.AlL ¥ŽQA˜€÷.AlL¨ŽQA˜€ ÷.AlL€¨ŽQA˜Ñö.AlL@ªŽQA˜€Œö.AlL`ªŽQA˜€Fö.AlL ©ŽQA˜õõ.AlL`¤ŽQA˜€½õ.AlL £ŽQA˜€jõ.AlL £ŽQA˜õ.AlL©ŽQA˜íô.AlL©ŽQA˜ô.AlLÀ«ŽQA˜Eô.AlL ªŽQA˜úó.AlL€¤ŽQA˜Ÿó.AlL`›ŽQA˜Kó.AlL ’ŽQA˜€Õò.AlL ŽQA˜xò.AlL€ŽŽQA˜Mò.AlL ‰ŽQA˜0ò.AlL€ŽQA˜ò.AlL@yŽQA˜€éñ.AlL qŽQA˜¶ñ.AlL`eŽQA˜Šñ.AlLàXŽQA˜€Nñ.AlLÀLŽQA˜ñ.AlL€@ŽQA˜Ùð.AlLà8ŽQA˜”ð.AlL3ŽQA˜€Cð.AlL +ŽQA˜€ð.AlLÀ%ŽQA˜Ïï.AlL€ŽQA˜€ ï.AlLÀŽQA˜^ï.AlL€ ŽQA˜€ï.AlL@ŽQA˜Ãî.AlL@ýQA˜iî.AlL ñQA˜Rî.AlL ëQA˜Hî.AlL@äQA˜Fî.AlL@ÝQA˜€Eî.AlL`ÓQA˜€Jî.AlL`ÍQA˜_î.AlL@ÆQA˜ î.AlLàÂQA˜Áí.AlLÀ»QA˜€¤í.AlL ³QA˜Œí.AlL@¥QA˜€fí.AlLà˜QA˜.í.AlLà‹QA˜Ìì.AlL`{QA˜€sì.AlLàfQA˜¶ë.AlLTQA˜„ë.AlLOQA˜hë.AlLEQA˜€(ë.AlL6QA˜€Šê.AlL@%QA˜€%ê.AlLðQA˜€·é.AlL@QA˜€\é.AlLýŒQA˜€Oé.AlL íŒQA˜€<é.AlLðäŒQA˜é.AlL`áŒQA˜ªè.AlL ÜŒQA˜lè.AlLÀÔŒQA˜Óç.AlLàÂŒQA˜Jç.AlL ¸ŒQA˜ºæ.AlLೌQA˜€úå.AlLௌQA˜På.AlL`«ŒQA˜€ä.AlL€§ŒQA˜#ã.AlL`²ŒQA˜€Áâ.AlL`´ŒQA˜_â.AlLµŒQA˜€ÿá.AlL ¯ŒQA˜€¡á.AlL€­ŒQA˜8á.AlLૌQA˜æà.AlL §ŒQA˜fà.AlLœŒQA˜à.AlL@—ŒQA˜áß.AlL@”ŒQA˜€Pß.AlLÀˆŒQA˜€²Þ.AlL€|ŒQA˜[Ý.AlLxŒQA˜Ý.AlLÀwŒQA˜³Ü.AlL zŒQA˜eÜ.AlL@€ŒQA˜,Ü.AlL@ŒQA˜Û.AlL yŒQA˜ÀÚ.AlLwŒQA˜|Ú.AlL rŒQA˜7Ú.AlL@lŒQA˜ïÙ.AlLàgŒQA˜œÙ.AlLàdŒQA˜EÙ.AlL bŒQA˜éØ.AlL ^ŒQA˜€¢Ø.AlLÀZŒQA˜Ø.AlL€TŒQA˜î×.AlL0SŒQA˜€¿×.AlLàOŒQA˜H×.AlL`IŒQA˜€¯Ö.AlLMŒQA˜!Ö.AlL PŒQA˜ŸÕ.AlL@YŒQA˜€öÔ.AlL``ŒQA˜hÔ.AlL bŒQA˜üÓ.AlLÀhŒQA˜£Ó.AlL€mŒQA˜€IÓ.AlLÀrŒQAªþÒ.A¶X·xŒQA 6ÝnnÒ.Aü[zb˜ŒQAV¯þPÒ.Ajÿ{¢ŒQAˆq¼þÒ.A w¢¯ŒQA`ȨÎêÑ.Aü[z»ŒQAˆq¼þ¥Ñ.AFFÑŒQA˜ZtN;Ñ.AØ¢}BçŒQA(?gNÑÐ.Aü[zQAˆq¼þeÐ.A$‚"QA`ȨΠÐ.AFF‚$QAPèzþ“Ï.A$‚Â8QAvnóÎ.A wBJQAÀˆþËÍ.A’0„‚bQA`Ñ2n Í.Ajÿ{BpQAp±`ÞãÌ.AޏxÂ}QAÐì?n¡Ì.A w‚ˆQAÈ þnÌ.A´é€QAˆzFþVÌ.A²qubšQA`Ñ2nMÌ.AØ¢}¢¤QAø•SþÌ.A wâ­QA¸#Z޵Ë.Ajÿ{"±QA_9ÞsË.Aü[zâ³QA8(ÞCË.ADÎs¾QApºêýÌÊ.A$‚ÂÐQA€šnyÊ.A²qu¢àQA_9þlÊ.AØ¢}¢ìQApºêý~Ê.A²qu"ôQAƒÐýŽÊ.AØ¢}BÿQAàÕ÷ýšÊ.A$‚B ŽQA€šn•Ê.Aޏx‚ŽQAH׃Ê.A wâ%ŽQA¸,ä XÊ.A$‚"6ŽQA8(þXÊ.Ajÿ{b?ŽQAðµ%\Ê.Ajÿ{BHŽQA8(þfÊ.AFFâQŽQA8(þtÊ.A$‚b\ŽQAÐì?nŒÊ.AFFbeŽQAÈ Þ™Ê.ADÎsnŽQA€š«Ê.A wâuŽQA@MnÄÊ.A’0„b{ŽQA˜ëòÉïÊ.ArÍ•+‚ŽQAðµ%ãÊ.AFF‰ŽQAàÕ÷ÝáÊ.A’0„‚’ŽQA@MèÊ.AØ¢}" ŽQAÈ þõÊ.AFF¢«ŽQAÐì?nþÊ.AޏxµŽQA@MŽË.A w‚ÀŽQA€šn9Ë.Aޏx¢ÆŽQA¸#ZŽuË.Ajÿ{bÇŽQA˜Zt´Ë.AFFâÉŽQA¨C,þÌ.Ajÿ{"ÑŽQAÐì?nÌ.AØ¢}¢ÜŽQAÐì?0Ì.AØ¢}"èŽQAPñþÌ.Aޏx‚ïŽQA¸#ZnÙË.AޏxôŽQA˜cþ PË.AFF¢ûŽQA`Ñ2Ž7Ì.A²qub*QA¸#Zn`Ì.A’0„B4QA(Œëû}Ì.AìA>QA˜ZtŽÌ.Aü[zCQA¨C,Þ—Ì.AFF¢KQA`Ñ2NÆÌ.Aޏx¢VQAx‘ŽnÍ.A wÂfQA`ȨncÍ.A´é€"oQAàÌmÞpÎ.A wBzQAØÃãþãÎ.A$‚€QA 6ÝΙÏ.Aü[z"ŠQA講NÐ.Aޏx‚QA講ΎÐ.A wB’QA0 ÿïÐ.Aü[zbQAxˆo%Ñ.A²qub’QAè£Ï]Ñ.AFFâ™QA˜QêΟÑ.A’0„žQAPßðÞÒ.Aü[z"¢QAh¨ÖÞŽÒ.Ajÿ{"©QA -SÏïÒ.ADÎs¯QAÈÚ+oÓ.Ajÿ{"¹QAM%ÿQÓ.AFFâÁQA@ö8Ï¢Ó.AFFbÅQAhŸLÿÔ.Aޏx‚ÇQA°FObÔ.AFF¢ËQAhŸLßsÔ.AØ¢}ÂÓQA 1ÿ`Ô.A²qu"ÜQAøƒ?ßìÓ.A²quõQAغYÿ€Ó.AFF QA°Fo0Ó.Ajÿ{bQA˜QêÎÃÒ.A´é€â8QAØÃãþ†Ò.Aü[zâCQA 6Ýn`Ò.A²qu¢HQAm÷ÎBÒ.A´é€"OQA˜QênCÒ.AØ¢}Â[QA -SOZÒ.A$‚BeQAغYÿrÒ.AFFÂrQAè£OzÒ.A²qub‚QAè£ÏkÒ.Aޏx¢ŽQA˜QêNJÒ.Aޏx¢¦QA 6ÝN=Ò.A²qubºQA°ÐÎ Ò.A´é€‚ÃQAxˆO—Ñ.A´é€àQA˜QênJÑ.A w¢ïQAÈÚ+Ï#Ñ.AÔ…âþQA 1ßçÐ.A$‚‘QAxˆÏ¥Ð.Aü[zB)‘QAغYWÐ.A¶X×/‘QA˜#Ñ.AlL@4‘QA˜€ÚÑ.AlL`:‘QA˜€˜Ò.AlL`@‘QA˜1Ó.AlL€H‘QA˜€³Ó.AlLàO‘QA˜2Ô.AlL@X‘QA˜tÔ.AlLà_‘QA˜²Ô.AlL€k‘QA˜ÓÔ.AlLàw‘QA˜öÔ.AlL@…‘QA˜$Õ.AlL€”‘QA˜€€Õ.AlL`¢‘QA˜çÕ.AlL@±‘QA˜€+Ö.AlL`¸‘QA˜€[Ö.AlL`ÑQA˜†Ö.AlLàÔ‘QA˜œÖ.AlL à‘QA˜€¿Ö.AlLì‘QA˜€ÖÖ.AlLü‘QA˜€ñÖ.AlLà’QA˜€5×.AlLÀ’QA˜‡×.AlL@’QA˜¾×.AlL ’QA˜Ø.AlL -’QA˜3Ø.AlL 9’QA˜SØ.AlL€G’QA˜EØ.AlL€R’QA˜-Ø.AlL€\’QA˜Ø.AlL`i’QA˜É×.AlL€q’QA˜×.AlL ‘’QA˜q×.AlLÀŸ’QA˜:×.AlLಒQA˜€×.AlL@Å’QA˜€ ×.AlL Ð’QA˜€×.AlLÀÛ’QA˜3×.AlL ç’QA˜]×.AlL`ö’QA˜\×.AlL “QA˜^×.AlLP“QA˜v×.AlL@“QA˜€†×.AlL1“QA˜±×.AlL€C“QA˜€Ê×.AlL I“QA˜€ò×.AlL S“QA˜€OØ.AlL h“QA˜ÈØ.AlL€z“QA˜BÙ.AlL “QA˜€”Ù.AlL`˜“QA˜¾Ù.AlL`«“QA˜€ÅÙ.AlLÀº“QA˜€¿Ù.AlL@Å“QA˜­Ú.AlL Á“QA˜*Û.AlL Á“QA˜€ˆÛ.AlL@¾“QA˜€Ü.AlL¿“QA˜rÜ.AlLÁ“QA˜€æÜ.AlLÀÄ“QA˜pÝ.AlLÇ“QA˜€ Þ.AlLÀÀ“QA˜OÞ.AlLÀµ“QA˜ÑÞ.AlL ¥“QA˜€ à.AlL ª“QA˜˜à.AlL¨“QA˜€/á.AlL`¦“QA˜iá.AlL`¨“QA˜³á.AlLÀ³“QA˜Sâ.AlL€¹“QA˜€Üã.AlL`½“QA˜vä.AlL€¸“QA˜Øä.AlL€²“QA˜få.AlL@´“QA˜âå.AlL ¼“QA˜€Mæ.AlL Â“QA˜ßæ.AlLàË“QA˜€àç.AlL`Ö“QA˜ëè.AlLÜ“QA˜¢é.AlL`Ü“QA˜aê.AlL€Ü“QA˜€åê.AlLpâ“QA˜Ìë.AlLÀì“QA˜/ì.AlL€ï“QA˜€Zì.AlLÀð“QA˜8î.AlLàù“QA˜€ ï.AlLû“QA˜¡ï.AlL€ü“QA˜€\ð.AlL€”QA˜€öñ.AlL€ ”QA˜aõ.AlL”QA˜[÷.AlL &”QA˜{ø.AlL0”QA˜€uú.AlL`0”QA˜ìû.AlL 4”QA˜€ïü.AlL ;”QA˜†ý.AlLG”QA˜€þ.AlL Q”QA˜þ.AlL`_”QA˜ ÿ.AlL o”QA˜…ÿ.AlL€”QA˜€$/AlLÀ””QA˜€„/AlL`§”QA˜/AlLÀÄ”QA˜—/AlL€Õ”QA˜€Ü/AlLÀç”QA8¹ê/AÒ²ffë”QA˜e/AlL`•QA˜€û/AlL€ •QA˜€¸/AlLÀ•QA˜m/AlL •QA˜6/AlL •QA˜€ÿÿ.AlL€•QA˜€ûÿ.AlL@1•QA˜€æÿ.AlL >•QA˜€÷ÿ.AlL Q•QA˜€×ÿ.AlL@g•QA˜âÿ.AlLu•QA˜/AlLÀˆ•QA˜/AlL@™•QA˜€ãÿ.AlL@¯•QA˜€Ãÿ.AlL@¶•QA˜Kÿ.AlLàÀ•QA˜ÿ.AlL Ð•QA˜©þ.AlL ã•QA˜1þ.AlL`÷•QA˜ÿý.AlL@–QA˜€þ.AlLÀ!–QA˜€þ.AlL€K–QA˜:þ.AlLàZ–QA˜jþ.AlL@f–QA˜€þ.AlLàr–QA˜ãþ.AlLƒ–QA˜ÿ.AlL@Œ–QA˜€]ÿ.AlL€œ–QA˜€¡ÿ.AlL`«–QA˜ /AlL`½–QA˜4/AlL@Å–QA˜ /AlL€Í–QA˜€í/AlL@Ó–QA˜L/AlL Ú–QA˜Ó/AlL å–QA˜_/AlLàí–QA˜/AlL@ö–QA˜€‰/AlL€ö–QA˜Ý/AlL í–QA˜(/AlLé–QA˜€‰/AlLàê–QA˜Ñ/AlLÀì–QA˜D/AlL@è–QA˜}/AlL@ë–QA˜Ç/AlL ï–QA˜,/AlLàø–QA˜€e/AlL þ–QA˜€Ë/AlL—QA˜€~/AlL€—QA˜î/AlL—QA˜y/AlL@ —QA˜ /AlL —QA˜€U /AlL &—QA˜o /AlL`+—QA˜Á /AlL`:—QA˜4 /AlLÀD—QA˜€î /AlLàL—QA˜€É /AlLQ—QA˜X /AlL@J—QA˜€³ /AlL >—QA˜Á /AlL€-—QA˜Þ /AlLà#—QA˜€1 /AlL —QA˜³ /AlL$—QA˜€/AlL *—QA˜€o/AlL %—QA˜Ý/AlL '—QA˜–/AlLÀ+—QA˜€Þ/AlLà.—QA˜/AlL@2—QA˜3/AlL`9—QA˜u/AlL:—QA˜€¤/AlLà7—QA˜ /AlL 7—QA˜€X/AlL :—QA˜€/AlL ?—QA˜€¯/AlLÀC—QA˜€/AlLà:—QA˜L/AlL9—QA˜€z/AlL€@—QA˜‰/AlL J—QA˜€¿/AlL M—QA˜÷/AlL D—QA˜/AlL =—QA˜€r/AlL`?—QA˜¤/AlL G—QA˜€ç/AlL€M—QA˜/AlL O—QA˜€l/AlL P—QA˜€ª/AlL`M—QA˜€â/AlL N—QA˜€è/AlL@U—QA˜Ð/AlL`]—QA˜Þ/AlLd—QA˜ñ/AlLj—QA˜$/AlL o—QA˜€/AlLÀq—QA˜{/AlLàg—QA˜€r/AlL@a—QA˜€ì/AlL b—QA˜5/AlLÀb—QA˜s/AlL\—QA˜·/AlL€Y—QA˜ð/AlL\—QA˜€&/AlLàe—QA˜€/AlL i—QA˜ê/AlL`o—QA˜€j/AlL p—QA˜ó/AlL m—QA˜Q/AlLàj—QA˜¥/AlLàd—QA˜€/AlL _—QA˜€p/AlLàc—QA˜c/AlLÀp—QA˜€c/AlLà‹—QA˜€Ú/AlLÀŽ—QA˜ø/AlL ~—QA˜/AlLÀ—QA˜/AlLà‡—QA˜h/AlL Œ—QA˜µ/AlL@—QA˜/AlLÀ’—QA˜B/AlLࣗQA˜q/AlL`±—QA˜€Ê/AlLº—QA˜€ /AlL ¾—QA˜r /AlLË—QA˜€¤ /AlL€Õ—QA˜€!/AlL Þ—QA˜€:!/AlLàÞ—QA˜€‹!/AlLá—QA˜Û!/AlLã—QA˜"/AlLå—QA˜I"/AlLè—QA˜ƒ"/AlL@ì—QA˜€æ"/AlL`ñ—QA˜#/AlL@ø—QA˜€á"/AlL ý—QA˜€À"/AlLà˜QA˜ #/AlLà˜QA˜R#/AlL€ ˜QA˜€“#/AlLÀ ˜QA˜Í#/AlL@ ˜QA˜*$/AlLà˜QA˜c$/AlLà˜QA˜€‰$/AlL@˜QA0ØèÞÝÄO/AVâ²$3mQAÈb ‹\r/AlL0dqQA˜€Ñf/AlL€BqQA˜.h/AlL@AqQA˜€¥i/AlL€CqQA˜€zj/AlL`GqQA˜€—j/AlL°GqQA˜k/AlLIqQA˜›k/AlL`EqQA˜'l/AlL@Gb/A.B)`²mQAxˆOÐa/A8 ¹mQA°ÐNoa/A ]6 ºmQAðF¤IXa/A(RܹmQAè£Ïa/AÄ3@·mQA 1ßà`/A ‰, ³mQAxˆO‚`/Ax,.€¯mQA 6ÝND`/AVs1²mQAøŒÉÞ`/A ‰,ÀµmQAM%?Ä_/AÄ3 »mQA˜QêÎf_/A2º4`½mQAÀúýÞ)_/AÄ3`¾mQAÐãµN¸^/A ‰,à¼mQA0 ?w^/Ax,. ºmQA@ÿÂN0^/Ax,.»mQA œÔ“ç]/AÖ™ój¼mQAm÷΂]/AÄ3ÀÊmQAh¨ÖÞ€]/A2º4`ÕmQAØÃã>k]/Ax,.€ßmQAxˆO;]/AVs1 émQA0•Þî\/AÄ3ñmQA`ȨNŽ\/AæÏ/ÀômQA@ÿÂN"\/AÄ3@÷mQA講N²[/A2º4`ýmQAp±`Þq[/A ‰,`nQAx‘ŽN[/Aœå* nQAÐãµNZ/A2º4@nQAPèzÞ7Z/A ‰, nQAø•S>ÏY/AÀž'@ nQAx‘ŽNˆY/A ‰,À nQA(?gN.Y/AVs1ÀnQA_9ÞåX/A.B)`nQA`Ñ2N¢X/A2º4à nQAPèzÞLX/A ‰,`)nQAø•SÞX/AVs1À3nQAÈ >ËW/AÀž' =nQA¨C,ÞW/A.B) @nQAø•S>]W/A ‰,€@nQA¨C,ÞIW/A ‰,`InQAÀˆÞDW/A ]6 RnQAx‘ŽN,W/AÄ3ÀZnQA€šNòV/Ax,.@anQAàÌm>±V/AVs1àbnQA`Ñ2NbV/AÄ3ÀbnQA@MNöU/Ax,. bnQA¸#ZΧU/AæÏ/ enQA¸#ZN„U/AÄ3 knQAðµ%ÎTU/A.B)€qnQAàÕ÷=)U/AVs1À{nQAÐì?NðT/A ]6€ƒnQA@MN¡T/A ‰,à„nQAˆzFÞVT/Aœå*…nQAƒÐÝT/Aœå* „nQAðµ%NñS/AVs1 ‘nQAàÕ÷=)T/AVs1šnQAØõÉM„S/Aœå*nQAH×MKS/AÄ3à¡nQA`Ñ2N8S/Ax,.€§nQA NÏR/Ax,.€§nQAàÕ÷Ý…R/Ax,. žnQA`Ú¼MLR/Aœå*à•nQA(HñM&R/AæÏ/€ŽnQApºêÝéQ/AÄ3 ƒnQAð¾¯M©Q/A2º4€|nQApºêÝiQ/AæÏ/€~nQAPñÞ/Q/AVs1€…nQA¨L¶=Q/AÀž'`‹nQA¨L¶ÝÁP/AVs1à’nQA¨L¶ÝP/AVs1 ™nQAØõÉM(P/AÄ3À¢nQAð¾¯ÍâO/AæÏ/à«nQAèÞÝÄO/AVs1à²nQA¸,äMØO/A ‰, »nQA lˆÍòO/AÄ3àÁnQAŸÝÝ P/Aœå*ÀÎnQAÈœÝP/A ‰,ÀÕnQApºêÝP/A2º4 ßnQApºêÝP/Ax,. ænQAƒÐÝP/AÄ3ñnQAŸÝÝ*P/AÄ3ùnQAXúŽÝ5P/Aœå*àoQAð¾¯MTP/AÀž'@oQA˜cþM^P/A.B)àoQA˜cþM^P/Aœå*à%oQApºêÝiP/A2º4@.oQAàªp§uP/AŽ'úÊ6oQAÀG‚lyP/A¢Ÿ3=oQApºêÝwP/A|¤9@DoQApÃt]~P/AêG;àMoQA¨L¶]—P/AXë< WoQAhÃP/A42@`_oQA˜ÆP/AlLÀcoQA˜€ Q/AlLàfoQA˜HQ/AlLÀhoQA˜Q/AlL ioQA˜€¢Q/AlLðioQA˜ÚQ/AlL€joQA˜€R/AlLloQA˜€0R/AlLploQA˜]R/AlL`moQA˜€ÄR/AlL@poQA˜€%S/AlL roQA˜€rS/AlLÀxoQA˜ËS/AlLàƒoQA˜T/AlLoQA˜NT/AlL ™oQA˜€‚T/AlL` oQA˜€¸T/AlL «oQA˜þT/AlL¸oQA˜fU/AlL ÏoQA˜€U/AlLÀÚoQA˜€¸U/AlLÀëoQA˜ÍU/AlLÀùoQA˜€ôU/AlLà pQA˜$V/AlL`pQA˜€WV/AlLà(pQA˜€»V/AlLà?pQA˜W/AlLàPpQA˜vW/AlL@_pQA˜€åW/AlL€kpQA˜€ZX/AlLrpQA˜€²X/AlL`zpQA˜Y/AlL`~pQA˜€LY/AlLÀƒpQA˜‡Y/AlLÀ†pQA˜€ÃY/AlL‘pQAØdK’åY/AîPÅ?—pQA˜ZZ/AlLšpQA˜N[/AlLP•pQA˜ß[/AlL€ŸpQA˜€á[/AlLà¡pQA˜€ë[/AlL€©pQA˜€ô[/AlL€¯pQA˜€\/AlL¹pQA˜±\/AlL@¾pQA˜€]/AlLàÃpQA˜€\]/AlL ÐpQA˜—]/AlL ÝpQA˜@¡]/AlLðßpQA˜€Ð]/AlL€êpQA˜^/AlL õpQA˜†^/AlLqQA˜€ó^/AlLÀqQA˜N_/AlLqQA˜°_/AlL qQA˜C`/AlL#qQA˜€Ñ`/AlL'qQA˜^a/AlL€/qQA˜¾a/AlL`7qQA˜€b/AlL€?qQA˜¥b/AlL`JqQA˜€Wc/AlL€]qQA˜€Åc/AlL0dqQA˜€!d/AlLà_qQA˜€1e/AlL@PqQA˜€Þe/AlLÀHqQA˜€Ñf/AlL€BqQA1$ ˜Ã@/AlLÀ)°QA˜€é/AlL@ˆÀQA‘˜€ /AlL¿QA˜ž /AlL`¿QA˜€¡/AlLà¿QA˜€p¡/AlLÿ¾QA˜ò¡/AlL`ý¾QA˜Q¢/AlL ø¾QA˜€†¢/AlL`÷¾QA˜Æ¢/AlLàô¾QA˜ߢ/AlL@ï¾QA˜ç¢/AlLÀä¾QA˜f£/AlLàÙ¾QA˜€Ý£/AlL`ؾQA˜€6¤/AlL Ó¾QA˜–¤/AlL`ʾQA˜·¤/AlL þQA˜à¤/AlLÀ¹¾QA˜¥/AlL`µ¾QA˜8¥/AlL °¾QA˜l¥/AlL ­¾QA˜¡¥/AlL«¾QA˜Ê¥/AlL §¾QA˜ö¥/AlL¤¾QA˜€@¦/AlL Ÿ¾QA˜€x¦/AlLpœ¾QA˜@§/AlLÐ¥¾QA˜Œ§/AlL€¤¾QA˜ѧ/AlL` ¾QA˜€¨/AlL€ž¾QA˜z¨/AlLœ¾QA˜€°¨/AlLœ¾QA˜€~©/AlL ›¾QA˜€Ð©/AlL€›¾QA˜3ª/AlL`œ¾QA˜mª/AlL`œ¾QA˜¢ª/AlL`›¾QA˜€Þª/AlL`›¾QA˜«/AlL@ž¾QA˜€"«/AlL@Ÿ¾QA˜P«/AlL ¤¾QA˜o«/AlLª¾QA˜€n«/AlLÀ±¾QA˜g«/AlLÀ·¾QA˜K«/AlL€¿¾QA˜-«/AlL`ƾQA˜«/AlLàѾQA˜ôª/AlL ö¾QA˜€Ñª/AlL ¿QA˜…ª/AlL@¿QA˜Hª/AlL ¿QA˜€ª/AlLÀ¿QA˜ ª/AlLà¿QA˜€ª/AlL`+¿QA˜ª/AlL7¿QA˜ª/AlL C¿QA˜ª/AlLJ¿QA˜ê©/AlL S¿QA˜®©/AlLàY¿QA˜}©/AlLb¿QA˜˜©/AlL€’¿QA˜·©/AlL ˜¿QA˜ý©/AlL@¤¿QA˜t«/AlL ¹¿QA˜€è«/AlLÄ¿QA˜Z¬/AlLÀÍ¿QA˜€¿¬/AlLÀÒ¿QA˜+­/AlL Ô¿QA˜‚­/AlLàÖ¿QA˜€Þ­/AlLâ¿QA˜^®/AlL€ë¿QA˜¾®/AlL@ï¿QA˜§¯/AlL î¿QA˜€°/AlL ì¿QA˜€v°/AlLàì¿QA˜€Ü°/AlL€ñ¿QA˜j±/AlL@ù¿QA˜(±/AlLþ¿QA˜ú°/AlL`ÀQA˜±/AlL€ ÀQA˜E±/AlLàÀQA˜€q±/AlL`ÀQA˜«±/AlL "ÀQA˜€Ù±/AlL /ÀQA˜€²/AlLà<ÀQA˜²/AlL€DÀQA˜5²/AlLàTÀQA˜:²/AlL@bÀQA˜:²/AlLàwÀQA˜8²/AlL€ÀQA˜“²/AlL}ÀQA˜ø²/AlL }ÀQA˜€B³/AlLÀuÀQA˜D³/AlL oÀQA˜€N³/AlLÀgÀQA˜€³/AlLhÀQA˜ ´/AlLàfÀQA˜´/AlL _ÀQA˜€´/AlL ZÀQA˜´/AlL`VÀQA˜€ ´/AlLÀSÀQA˜´/AlLÀOÀQA˜û³/AlL MÀQA˜Á³/AlLàJÀQA˜€V´/AlL@BÀQA˜ȳ/AlL€;ÀQA˜£³/AlL 1ÀQA˜C³/AlL&ÀQA˜7³/AlLàÀQA˜€e³/AlLàÀQA˜³/AlL0ÀQA˜€Ï³/AlLÀ ÀQA˜€ã´/AlLÀQA˜å´/AlLÀÀQA˜ä´/AlL`%ÀQA˜d¶/AlL€,ÀQA˜e·/AlL@\ÀQA˜¹·/AlL]ÀQA˜¸/AlL€]ÀQA˜€n¸/AlL`\ÀQA˜¬¸/AlL ZÀQA˜ú¸/AlL€TÀQA˜7¹/AlL€LÀQA˜{¹/AlLBÀQA˜€É¹/AlL >ÀQA˜Iº/AlL@ÀQA˜Àº/AlL JÀQA˜€0»/AlL RÀQA˜€˜»/AlL`VÀQA˜¼/AlLàVÀQA˜s¼/AlLÀXÀQA˜µ¼/AlL`ZÀQA˜&½/AlL XÀQA˜<½/AlLPUÀQA˜]½/AlLPÀQA˜€‚½/AlLCÀQA˜®½/AlL :ÀQA˜û½/AlL@1ÀQA˜A¾/AlL@*ÀQA˜­¾/AlL !ÀQA˜þ¾/AlL ÀQA˜=¿/AlL ÀQA˜u¿/AlLÀQA˜Û¿/AlL ÀQA˜rÀ/AlLàù¿QA˜}À/AlL í¿QA˜€ZÀ/AlL@â¿QA˜€VÀ/AlL`Ô¿QA˜‰À/AlLÀÉ¿QA˜ÅÀ/AlLÀ¿QA˜€ÈÀ/AlLÀµ¿QA˜¤À/AlL ®¿QA˜­À/AlL ¢¿QA˜¹À/AlL`›¿QA˜ÃÀ/AlLàŒ¿QA˜ÓÀ/AlL€†¿QA˜ Á/AlLà€¿QA˜€xÁ/AlLà}¿QA˜¦Á/AlLÀt¿QA˜€–Á/AlL`l¿QA˜uÁ/AlLÀc¿QA˜ÂÁ/AlL X¿QA˜€øÁ/AlL€P¿QA˜ûÁ/AlL@H¿QA˜ÌÁ/AlL€?¿QA˜€ÍÁ/AlLÀ1¿QA˜€îÁ/AlL€)¿QA˜€¼Á/AlL"¿QA˜Á/AlL€¿QA˜‚Á/AlL`¿QA˜“Á/AlLÀ¿QA˜¬Á/AlL`¿QA˜¹Á/AlLù¾QA˜¨Á/AlL@ó¾QA˜‰Á/AlL€î¾QA˜MÁ/AlLàè¾QA˜/Á/AlLàá¾QA˜7Á/AlL Û¾QA˜€PÁ/AlL Õ¾QA˜lÁ/AlLÀξQA˜vÁ/AlLàǾQA˜<Á/AlLÀ¾QA˜€ Á/AlL໾QA˜ÚÀ/AlL ¸¾QA˜Á/AlL€­¾QA˜AÁ/AlL ¨¾QA˜oÁ/AlLÀ¢¾QA˜€†Á/AlLà˜¾QA˜aÁ/AlL “¾QA˜ÑÀ/AlL’¾QA˜—À/AlL@¾QA˜©À/AlL †¾QA˜ŽÀ/AlL }¾QA˜€­¿/AlL@j¾QA˜u¿/AlL€c¾QA˜{¿/AlL@Y¾QA˜¿/AlLR¾QA˜€ö¿/AlL A¾QA˜ô¿/AlL0?¾QA˜í¿/AlL€6¾QA˜à¿/AlL -¾QA˜ À/AlL€(¾QA˜À/AlL !¾QA˜Þ¿/AlLÀ¾QA˜€¿¿/AlL`¾QA˜Û¿/AlL ¾QA˜ã¿/AlL ¾QA˜€ä¿/AlLö½QA˜Ë¿/AlL€í½QA˜?À/AlL€ê½QA˜‘À/AlLpí½QA˜»À/AlL æ½QA˜¦À/AlL`à½QA˜]À/AlL Ö½QA˜:À/AlL@ͽQA˜TÀ/AlL@ƽQA˜µÀ/AlL`½QA˜Á/AlL@Á½QA˜€‚Á/AlL€º½QA˜¯Á/AlLಽQA˜ÑÁ/AlL਽QA˜ãÁ/AlLÀ ½QA˜€þÁ/AlL ”½QA˜€AÂ/AlLÀ’½QA˜–Â/AlLÀ“½QA˜€ÕÂ/AlLp•½QA˜ýÂ/AlL`½QA˜úÂ/AlL@†½QA˜ôÂ/AlL {½QA˜€.Ã/AlL s½QA˜fÃ/AlLk½QA˜€”Ã/AlL`_½QA˜€ÁÃ/AlL O½QA˜Ä/AlL`?½QA˜€@Ä/AlL 6½QA˜xÄ/AlL 0½QA˜€ÃÄ/AlL€*½QA˜Å/AlL@#½QA˜CÅ/AlL½QA˜xÅ/AlL ½QA˜€®Å/AlL ½QA˜ÀÅ/AlL ½QA˜¨Å/AlL`ö¼QA˜yÅ/AlLàè¼QA˜aÅ/AlL`Ú¼QA˜JÅ/AlL`μQA˜4Å/AlLÀ¸¼QA˜OÅ/AlL ¥¼QA˜,Æ/AlL ‹¼QA˜ÄÆ/AlLàx¼QA˜Ç/AlL0t¼QA˜€QÇ/AlLp¼QA˜€˜Ç/AlL`h¼QA˜€èÇ/AlLÐc¼QA˜€ÌÉ/AlLÐr¼QA˜0Ê/AlL`l¼QA˜€“Ê/AlLÀj¼QA˜€ÎÊ/AlL€f¼QA˜€Ë/AlLÀ]¼QA˜=Ë/AlL`W¼QA˜€rË/AlLK¼QA˜€žË/AlL€=¼QA˜¾Ë/AlL4¼QA˜€Ì/AlL@(¼QA˜6Ì/AlL ¼QA˜“Ì/AlL¼QA˜Í/AlLÀ ¼QA˜ØÍ/AlL@¼QA˜Î/AlL ¼QA˜7Î/AlL ø»QA˜dÎ/AlLÀï»QA˜€‚Î/AlL@è»QA˜‡Î/AlLÀß»QA˜‰Î/AlL Ñ»QA˜|Î/AlL0Ê»QA˜€zÎ/AlLÈ»QA˜‹Î/AlL ¿»QA˜²Î/AlL ·»QA˜€ïÎ/AlLà­»QA˜BÏ/AlL@§»QA˜€¤Ï/AlL@œ»QA˜€­Ð/AlLhr»QA˜€ÑÐ/AlLàj»QA˜Ñ/AlL^»QA˜cÑ/AlLT»QA˜·Ñ/AlLN»QA˜²Ò/AlLÀ9»QA˜YÓ/AlL /»QA˜€`Ô/AlL »QA˜ÙÔ/AlL`»QA˜€.Õ/AlL@ »QA˜€zÕ/AlL »QA˜íÕ/AlLàøºQA˜QÖ/AlL óºQA˜«Ö/AlLñºQA˜³Ø/AlL ÜºQA˜Ù/AlL@ÚºQA˜Ù/AlLÕºQA˜€é/AlL º¹QA˜vè/AlLð¹QA˜Èâ/AlL ¸QA˜¿à/AlL°‰·QA˜ÏÜ/AlL°€¶QA˜²Ü/AlLy¶QA˜îÜ/AlLÀt¶QA˜3Ý/AlL@p¶QA˜†Ý/AlL@h¶QA˜ÆÝ/AlL@^¶QA˜Þ/AlL N¶QA˜EÞ/AlLàC¶QA˜€sÞ/AlL=¶QA˜žÞ/AlL€*¶QA˜³Þ/AlL ¶QA˜ÁÞ/AlL@¶QA˜ÞÞ/AlL ¶QA˜ß/AlL@¶QA˜Mß/AlLà¶QA˜˜ß/AlL€¶QA˜çß/AlL`¶QA˜€?à/AlL`ýµQA˜€là/AlLùµQA˜€­à/AlL€ðµQA˜çà/AlLÀêµQA˜€Sá/AlL`çµQA˜³á/AlLéµQA˜Þá/AlLàìµQA˜ïá/AlL õµQA˜ â/AlL ýµQA˜Jâ/AlL€ ¶QA˜‰â/AlL€ ¶QA˜Íâ/AlL ¶QA˜8ã/AlL ¶QA˜€<ä/AlL¶QA˜—ä/AlL`ÿµQA˜€Þä/AlL°üµQA˜€:å/AlL€¶QA˜‚å/AlLжQA˜Éå/AlL€¶QA˜€þå/AlL úµQA˜Bæ/AlLùµQA˜æ/AlL€ÿµQA˜ç/AlLÀ¶QA˜eç/AlL ¶QA˜£ç/AlL ¶QA˜?è/AlL`ûµQA˜€ëç/AlL ëµQA˜€ ç/AlL¼µQA˜…æ/AlLÀœµQA˜iå/AlL `µQA˜<å/AlL@TµQA˜ðä/AlLÀGµQA˜¹ä/AlLà=µQA˜…ä/AlLà2µQA˜Gä/AlL€'µQA˜€ä/AlL µQA˜\ã/AlL`ð´QA˜6â/AlL€°´QA˜âá/AlL`ž´QA˜™Þ/AlL@ä³QA˜Ý/AlLP‰³QA˜>Ý/AlLà‡³QA˜€‘Ý/AlLàˆ³QA˜ØÝ/AlL€ˆ³QA˜MÞ/AlL@ˆ³QA˜˜Þ/AlL ‡³QA˜€ß/AlL‡³QA˜Zß/AlL…³QA˜£ß/AlL`³QA˜€¶ß/AlL{³QA˜âß/AlL q³QA˜ à/AlL`k³QA˜€[à/AlL e³QA˜§à/AlLÀ\³QA˜ á/AlLÀP³QA˜iá/AlLB³QA˜Íá/AlLÀ4³QA˜Qâ/AlL`.³QA˜¤â/AlL@&³QA˜Ùâ/AlL€³QA˜íâ/AlL€ ³QA˜€°â/AlL ³QA˜€â/AlL ô²QA˜Dâ/AlL è²QA˜"â/AlLá²QA˜üá/AlL Ò²QA˜€Øá/AlL€É²QA˜¼á/AlL ¿²QA˜€›á/AlLÀ±²QA˜uá/AlL ¤²QA˜Lá/AlLÀ™²QA˜'á/AlLÀ²QA˜€ùà/AlL ²QA˜ëà/AlL s²QA˜€”à/AlL`t²QA˜Là/AlLÀs²QA˜à/AlL p²QA˜€Àß/AlL@n²QA˜€pß/AlL€l²QA˜€+ß/AlL`j²QA˜òÞ/AlLàh²QA˜¦Þ/AlL€g²QA˜`Þ/AlL d²QA˜€Þ/AlLb²QA˜ÖÝ/AlL`a²QA˜Ý/AlL b²QA˜9Ý/AlL e²QA˜€¼Ü/AlLb²QA˜vÜ/AlL a²QA˜€?Ü/AlL`^²QA˜€ Ü/AlLàV²QA˜€Ü/AlL@P²QA˜€Ü/AlL K²QA˜+Ü/AlLB²QA˜PÜ/AlL@6²QA˜hÜ/AlL +²QA˜|Ü/AlL@!²QA˜ÿÜ/AlL`!²QA˜€ZÝ/AlL ²QA˜€Ý/AlLà²QA˜€ãÝ/AlL`²QA˜uÞ/AlLà$²QA˜ÌÞ/AlL€'²QA˜€ ß/AlL`'²QA˜€Qß/AlL &²QA˜‹ß/AlL $²QA˜ÿß/AlL`!²QA˜€Ià/AlL€²QA˜¬à/AlL²QA˜óà/AlL ²QA˜€=á/AlL€²QA˜€dá/AlL  ²QA˜á/AlL ²QA˜Àá/AlL ²QA˜â/AlL²QA˜€tâ/AlL ²QA˜€râ/AlLàþ±QA˜¤â/AlL@ü±QA˜õâ/AlL ÷±QA˜Gã/AlL ñ±QA˜]ã/AlL@ë±QA˜aã/AlL@à±QA˜€}ã/AlLàÔ±QA˜€²ã/AlLȱQA˜hä/AlL@ޱQA˜òä/AlL±QA˜Yå/AlL@v±QA˜€œå/AlLi±QA˜Ùå/AlL`W±QA˜Oæ/AlL@C±QA˜²ç/AlLÒ°QA˜ç/AlL ›°QA˜òæ/AlL¡°QA˜µæ/AlLÀ¨°QA˜:æ/AlL@±°QA˜Ëå/AlL ½°QA˜å/AlL@ǰQA˜fã/AlL€ß°QA˜[á/AlL û°QA˜ÅÞ/AlL@#±QA˜bÞ/AlLÀ#±QA˜¿Ý/AlL ±QA˜€âÜ/AlLÀ±QA˜ÂÛ/AlL€ ±QA˜€ÃÚ/AlL ú°QA˜€Ú/AlLàî°QA˜ãØ/AlLÀذQA˜ù×/AlL`ȰQA˜€±Ö/AlL ª°QA˜Õ/AlL °QA˜EÕ/AlL@€°QA˜*Ô/AlLb°QA˜ZÓ/AlLðN°QA˜€ýÒ/AlL€F°QA˜€ÚÑ/AlLÐ*°QA˜€ÏÑ/AlLÀ)°QA˜€€Ñ/AlL <°QA˜GÑ/AlLÀI°QA˜÷Ð/AlL`W°QA˜¾Ð/AlL@c°QA˜€ßÏ/AlL`~°QA˜€HÏ/AlL@°QA˜ÍÎ/AlL°QA˜€{Î/AlL ¥°QA˜|Î/AlL ²°QA˜nÎ/AlL ŰQA˜€pÎ/AlLÀÒ°QA˜€eÎ/AlL@æ°QA˜YÎ/AlL€ñ°QA˜€HÎ/AlLÀ±QA˜?Î/AlL ±QA˜kÎ/AlLà±QA˜°Î/AlLà)±QA˜€«Î/AlL +±QA˜€™Î/AlL`2±QA˜{Î/AlLA±QA˜€7Î/AlL c±QA˜€,Î/AlLàp±QA˜Î/AlL@‚±QA˜Î/AlL ±QA˜*Î/AlL £±QA˜€ Î/AlL@²±QA˜Î/AlL Ä±QA˜?Î/AlL Ó±QA˜€WÎ/AlLàÞ±QA˜^Î/AlLÀá±QA˜€¨Î/AlL`ë±QA˜€Ï/AlL€õ±QA˜€Ï/AlL`û±QA˜€>Ï/AlL`²QA˜—Ï/AlL@ ²QA˜€ÝÏ/AlLà²QA˜ Ð/AlL '²QA˜JÐ/AlL@1²QA˜gÐ/AlLÀ>²QA˜TÐ/AlL`G²QA˜€?Ð/AlL I²QA˜(Ð/AlL K²QA˜€QÏ/AlLÀH²QA˜Ï/AlL°G²QA˜€ÁÎ/AlLF²QA˜°Î/AlLÀE²QA˜€…Î/AlLÐD²QA˜€yÎ/AlLD²QA˜ Î/AlLB²QA˜€Î/AlLB²QA˜€ñÍ/AlLÀA²QA˜€aÍ/AlL @²QA˜ìÌ/AlL@>²QA˜€ºÌ/AlLà=²QA˜€7Ì/AlLÀ<²QA˜€¢Ë/AlL 9²QA˜ Ë/AlLÀ5²QA˜Ê/AlL .²QA˜÷É/AlL )²QA˜€„É/AlL &²QA˜€É/AlL ²QA˜€­È/AlL ²QA˜€ùÇ/AlL€²QA˜€nÇ/AlL`²QA˜€"Ç/AlL`²QA˜€‡Æ/AlL ²QA˜€NÆ/AlLÀ²QA˜Æ/AlLÀ²QA˜ìÅ/AlL²QA˜×Å/AlLð²QA˜ËÅ/AlL ²QA˜¤Å/AlL ²QA˜aÅ/AlL` ²QA˜Å/AlL@-²QA˜ïÄ/AlL@4²QA˜€¼Ä/AlL@<²QA˜€dÄ/AlL M²QA˜@Ä/AlL T²QA˜€Ä/AlL ^²QA˜õÃ/AlL d²QA˜€ÊÃ/AlLl²QA˜‰Ã/AlL€q²QA˜€PÃ/AlL€x²QA˜€Ã/AlLÀ{²QA˜€çÂ/AlL`€²QA˜©Â/AlL ‹²QA˜€Â/AlL ”²QA˜mÂ/AlL²QA˜]Â/AlLÀ®²QA˜VÂ/AlL@¸²QA˜€<Â/AlLÀÀ²QA˜€ Â/AlL`ɲQA˜ËÁ/AlL Í²QA˜nÁ/AlL Õ²QA˜€úÀ/AlL Ö²QA˜€€À/AlL@Õ²QA˜€Ð¿/AlL@ײQA˜E¾/AlL Õ²QA˜€õ½/AlL ×²QA˜ª½/AlL@à²QA˜o½/AlL å²QA˜½/AlL ç²QA˜¥¼/AlLàç²QA˜7¼/AlL é²QA˜€ç»/AlLÀî²QA˜€Ê»/AlL€÷²QA˜€…»/AlL³QA˜€h»/AlL@³QA˜€ôº/AlL€³QA˜†º/AlL`³QA˜€ º/AlL ³QA˜‹¹/AlLÀ³QA˜€5¹/AlLà³QA˜€%¹/AlL€³QA˜Ÿ/AlL@³QA˜€¸/AlL ³QA˜€ß·/AlLà'³QA˜€ˆ·/AlL@0³QA˜€j·/AlL 3³QA˜€ú¶/AlL 5³QA˜ ¶/AlL 5³QA˜¶/AlL0³QA˜¶/AlLÐ-³QA˜ɵ/AlL "³QA˜µ/AlLà³QA˜5µ/AlLÀ ³QA˜Ö´/AlL`þ²QA˜w´/AlLÀ÷²QA˜Ó³/AlL€ï²QA˜M³/AlL€é²QA˜Dz/AlL ë²QA˜^²/AlLô²QA˜€"²/AlLÀø²QA˜€Ç±/AlLþ²QA˜€q±/AlL€³QA˜ú°/AlLÀ³QA˜€Œ°/AlL`³QA˜ð¯/AlL@³QA˜“¯/AlL ³QA˜€!¯/AlLà³QA˜€È®/AlL ³QA˜ª®/AlL³QA˜€p®/AlL ³QA˜®/AlL€ò²QA˜²­/AlL@ã²QA˜X­/AlL Ó²QA˜-­/AlL€Ñ²QA˜ü¬/AlL ϲQA˜¥¬/AlL Ð²QA˜€Ž¬/AlL0ѲQA˜€E¬/AlLðÒ²QA˜5¬/AlL`Ó²QA˜€À«/AlL`Ù²QA˜D«/AlLÙ²QA˜Õª/AlL Ö²QA˜Mª/AlL Ô²QA˜€±©/AlL@Ò²QA˜€©/AlL Î²QA˜™¨/AlLÀ̲QA˜¨/AlLàʲQA˜»§/AlL`ͲQA˜k§/AlL`вQA˜€@§/AlL€Ò²QA˜€ §/AlL Õ²QA˜€Ã¦/AlL€Ô²QA˜}¦/AlL Õ²QA˜-¦/AlL€×²QA˜€ü¥/AlLÀÛ²QA˜Ô¥/AlLÀâ²QA˜µ¥/AlLì²QA˜‘¥/AlLÀò²QA˜^¥/AlL ÷²QA˜€¥/AlLû²QA˜€¦¤/AlLÀþ²QA˜p¤/AlL€þ²QA˜€Î£/AlLàù²QA˜€y£/AlL`ú²QA˜7£/AlLàû²QA˜€ø¢/AlLÀþ²QA˜º¢/AlLÀ³QA˜€y¢/AlL³QA˜¢/AlL ³QA˜¾¡/AlL ³QA˜€v¡/AlL³QA˜$¡/AlLà³QA˜€ö /AlL³QA˜€½ /AlLà%³QA˜€s /AlLÀ2³QA˜€> /AlL`;³QA˜ãŸ/AlL D³QA˜¢Ÿ/AlLàH³QA˜7Ÿ/AlLàL³QA˜€âž/AlL€P³QA˜€ž/AlLÀU³QA˜+ž/AlLà[³QA˜€Â/AlL_³QA˜€/AlLà^³QA˜€>/AlLà]³QA˜Öœ/AlL@^³QA˜€wœ/AlLà]³QA˜€ú›/AlL[³QA˜‘›/AlLà[³QA˜€C›/AlL[³QA˜ñš/AlL€^³QA˜€¥š/AlL g³QA˜€Xš/AlLe³QA˜š/AlL a³QA˜€ß™/AlL ^³QA˜€‰™/AlL \³QA˜7™/AlL c³QA˜æ˜/AlLÀe³QA˜€¨˜/AlL@c³QA˜€O˜/AlL ]³QA˜€Ü—/AlL Z³QA˜‚—/AlL@V³QA˜S—/AlLW³QA˜€—/AlL@X³QA˜€ø–/AlL _³QA˜€â–/AlL@e³QA˜ª–/AlLÀe³QA˜m–/AlLÀg³QA˜€<–/AlL`n³QA˜8–/AlL z³QA˜€–/AlL …³QA˜ä•/AlLÀ޳QA˜«•/AlLàš³QA˜€Q•/AlL`¤³QA˜€ç”/AlLª³QA˜m”/AlLÀ¬³QA˜€ “/AlL·³QA˜€j“/AlL³³QA˜€“/AlLÀ¬³QA˜€Ì’/AlL ª³QA˜€ž’/AlLÀ°³QA˜€ƒ’/AlL¶³QA˜€w’/AlL ¹³QA˜€e’/AlL¹³QA˜€/’/AlL@¸³QA˜œ‘/AlL€µ³QA˜€<‘/AlL º³QA˜€ð/AlLàijQA˜´/AlLàÓ³QA˜€—/AlLÀâ³QA˜¦/AlL€û³QA˜¸/AlL€ ´QA˜€Ô/AlLp´QA˜ò/AlL ´QA˜ý/AlL@´QA˜€‘/AlL &´QA˜0‘/AlL@6´QA˜ ‘/AlL=´QA˜å/AlLÀA´QA˜›/AlLà@´QA˜€V/AlL=´QA˜ /AlL€6´QA˜Î/AlL€2´QA˜†/AlL 1´QA˜O/AlLà5´QA˜€-/AlLà;´QA˜/AlLB´QA˜€/AlLÀH´QA˜€ÂŽ/AlL R´QA˜jŽ/AlLR´QA˜#Ž/AlLW´QA˜Ž/AlL ]´QA˜€Ž/AlLàc´QA˜€Ž/AlL@k´QA˜€¨/AlLÀo´QA˜€8/AlL u´QA˜õŒ/AlLà~´QA˜À­Œ/AlLˆŽ´QA˜IŒ/AlLÀ™´QA˜þ‹/AlL ¢´QA˜€d‹/AlL`ª´QA˜€D‹/AlL«´QA˜@‹/AlLЭ´QA˜ÈŠ/AlL€·´QA˜–Š/AlLÆ´QA˜€ZŠ/AlLÀÕ´QA˜€¬‰/AlL æ´QA˜-‰/AlLÀç´QA˜€Oˆ/AlL é´QA˜"ˆ/AlLê´QA˜€Y‡/AlL€ì´QA˜†/AlL@í´QA˜€ †/AlLàì´QA˜€½…/AlL ò´QA˜€Œ…/AlL ÿ´QA˜€C…/AlL€µQA˜è„/AlL€ µQA˜x„/AlLµQA˜€æƒ/AlLµQA˜ƒ/AlLµQA˜³‚/AlL€(µQA˜€X‚/AlL,µQA˜€ ‚/AlLÀ)µQA˜ó/AlL 1µQA˜€‚/AlL ;µQA˜ð/AlLEµQA˜¹/AlLFµQA˜S/AlLàDµQA˜€/AlLÀEµQA˜/AlLÀXµQA˜ñ€/AlL`]µQA˜•€/AlL@\µQA˜€4€/AlL@SµQA˜€ü/AlL LµQA˜€­/AlL`GµQA˜c/AlL`QµQA˜€á~/AlLWµQA˜t~/AlLà_µQA˜>~/AlL`fµQA˜€%~/AlL hµQA˜@~/AlL¨jµQA˜ç}/AlLlµQA˜Ó}/AlLnµQA˜¢}/AlL oµQA˜€o}/AlLàoµQA˜€)}/AlL`rµQA˜€}/AlL@wµQA˜€Ð|/AlL`~µQA˜€¯|/AlL ŠµQA˜ž|/AlL”µQA˜ž|/AlL`›µQA˜—|/AlL`§µQA˜_|/AlLà±µQA˜€%|/AlL€·µQA˜€Á{/AlL`½µQA˜b{/AlL ÃµQA˜ÿz/AlL€ÊµQA˜€Šz/AlLÀѵQA˜€Oz/AlLÀÖµQA˜þy/AlL ãµQA˜€«y/AlLîµQA˜€fy/AlL@öµQA˜ y/AlL€¶QA˜€Çx/AlL ¶QA˜zx/AlL`¶QA˜x/AlL€¶QA˜Æw/AlL`¶QA˜{w/AlL€"¶QA˜€Ew/AlLÀ+¶QA˜w/AlL`8¶QA˜€Èv/AlL D¶QA˜³v/AlLðF¶QA˜€¥v/AlL`H¶QA˜‚v/AlL@L¶QA˜€Lv/AlL R¶QA˜€ôu/AlL`X¶QA˜€žu/AlL ^¶QA˜^u/AlL`f¶QA˜8u/AlL p¶QA˜€u/AlL@|¶QA˜ñt/AlLà†¶QA˜€Çt/AlL`¶QA˜t/AlLà—¶QA˜€.t/AlLàž¶QA˜Ós/AlL ¥¶QA˜‰s/AlL€ª¶QA˜=s/AlLà´¶QA˜€ér/AlL๶QA˜‚r/AlLÀ¿¶QA˜Pr/AlL`öQA˜“q/AlLàжQA˜€@q/AlL`×¶QA˜ëp/AlL`ݶQA˜€„p/AlL ã¶QA˜4p/AlL è¶QA˜€Éo/AlL€ë¶QA˜€io/AlL@ñ¶QA˜€o/AlLö¶QA˜€õn/AlLû¶QA˜€¹n/AlLÀ·QA˜€~n/AlL ·QA˜€.n/AlL ·QA˜Æm/AlLÀ·QA˜]m/AlL`·QA˜€Þl/AlL·QA˜€ol/AlLà·QA˜\l/AlLà·QA˜€l/AlL #·QA˜€ók/AlL)·QA˜Ák/AlLà/·QA˜€wk/AlLÀ5·QA˜€8k/AlL A·QA˜ìj/AlL@I·QA˜€rj/AlLÀQ·QA˜j/AlLÀV·QA˜Âi/AlL@b·QA˜€~i/AlLi·QA˜€@i/AlLo·QA˜€i/AlL`w·QA˜ñh/AlL`‚·QA˜€žh/AlLÀŠ·QA˜€7h/AlL Ž·QA˜€Ûg/AlL@”·QA˜€•g/AlL@›·QA˜€#g/AlLÀ£·QA˜¢f/AlL€¬·QA˜€-f/AlL€¬·QA˜€¾e/AlLÀ¨·QA˜e/AlL0¤·QA˜€te/AlL`£·QA˜4e/AlLÀž·QA˜Ñd/AlL`›·QA˜‘d/AlL@”·QA˜:d/AlLà…·QA˜€!d/AlLà{·QA˜€d/AlLÀu·QA˜Ëc/AlLm·QA˜€Dc/AlL@b·QA˜€¡b/AlLT·QA˜Cb/AlL I·QA˜€×a/AlL C·QA˜€da/AlL @·QA˜€ö`/AlL@?·QA˜¤`/AlL<·QA˜$`/AlL`:·QA˜€À_/AlL€8·QA˜e_/AlL 9·QA˜€U_/AlL@9·QA˜€ó^/AlL<·QA˜t^/AlL`=·QA˜^/AlLà?·QA˜€¸]/AlLE·QA˜D]/AlLÀD·QA˜€Ó\/AlL€@·QA˜€b\/AlL€D·QA˜\/AlL I·QA˜É[/AlL€I·QA˜€b[/AlL`I·QA˜€[/AlLàG·QA˜ÄZ/AlLI·QA˜€\Z/AlLÀF·QA˜ Z/AlL F·QA˜ÊY/AlL€E·QA˜€§Y/AlL`;·QA˜€zY/AlL .·QA˜€wY/AlLà%·QA˜oY/AlL·QA˜€RY/AlL`·QA˜€Y/AlL@·QA˜€ÚX/AlL ·QA˜€…X/AlL  ·QA˜€"X/AlL ·QA˜€øW/AlL€ø¶QA˜€ËW/AlLÀî¶QA˜€W/AlL€è¶QA˜€]W/AlL@ã¶QA˜€W/AlL ݶQA˜ÕV/AlL@×¶QA˜ŠV/AlL`ضQA˜JV/AlL@ѶQA˜€V/AlL@ʶQA˜€—U/AlLྲྀQA˜€HU/AlL`°¶QA˜ðT/AlL@¢¶QA˜[T/AlL@©¶QA˜€ïS/AlL ®¶QA˜€ºS/AlL °¶QA˜S/AlL€µ¶QA˜€hS/AlL€¹¶QA˜€:S/AlL ½¶QA˜€èR/AlLà¿¶QA˜¬R/AlL öQA˜„R/AlLÀƶQA˜9R/AlL`˶QA˜ÒQ/AlL@϶QA˜†Q/AlL Ò¶QA˜J/AlL Ä·QA˜€&J/AlL€Î·QA˜€'J/AlL â·QA˜"J/AlLPä·QA˜J/AlLï·QA˜€I/AlLP4¸QA˜€kG/AlL€£¸QA˜–F/AlLàݸQA˜Ã@/AlLpuºQA˜€²G/AlL`JºQA˜€1N/AlL ¡ºQA˜³Q/AlL€ÈºQA˜@nY/AlLèQºQA˜uY/AlL XºQA˜„Y/AlL lºQA˜ŠY/AlLºQA˜…Y/AlL ’ºQA˜€qY/AlLÀªºQA˜€pY/AlL ¶ºQA˜€qY/AlL˺QA˜€pY/AlL ÛºQA˜€†Y/AlL`ðºQA˜˜Y/AlL »QA˜¢Y/AlL`»QA˜€žY/AlLÀ*»QA˜ŽY/AlL 9»QA˜*Y/AlL(–»QA˜Z/AlL ˜»QA˜‚Z/AlL ™»QA˜€ñZ/AlL›»QA˜€‡[/AlL »QA˜€à[/AlL ž»QA˜5\/AlLàž»QA˜€¤\/AlL »QA˜ë\/AlL€š»QA˜~]/AlL@–»QA˜€Ó]/AlLÀ”»QA˜€O^/AlL€’»QA˜¼^/AlL€»QA˜€F_/AlL “»QA˜­_/AlL`—»QA˜€`/AlL`œ»QA˜€x`/AlL€¤»QA˜ä`/AlLà­»QA˜€Qa/AlLÀº»QA˜€Úa/AlLÁ»QA˜sb/AlL»QA˜€êb/AlL Ä»QA˜€c/AlL@Æ»QA˜Éc/AlLÉ»QA˜€ d/AlLàÌ»QA˜pd/AlL€Ì»QA˜dd/AlLàÅ»QA˜Wd/AlL@½»QA˜€Ud/AlL °»QA˜€]d/AlLࢻQA˜cd/AlL`œ»QA˜hd/AlL »QA˜€9f/AlLàŽ»QA˜€f/AlLÀŽ»QA˜€¾f/AlL€»QA˜€g/AlLŒ»QA˜pg/AlL »QA˜Ñg/AlL`Œ»QA˜si/AlL`”»QA˜µi/AlL ‘»QA˜€j/AlLà‚»QA˜€jj/AlL`p»QA˜k/AlLàV»QA˜Qk/AlL J»QA˜Ñk/AlLà6»QA˜€Fl/AlL€*»QA˜€*m/AlL  »QA˜€½n/AlLà»QA˜€q/AlL »QA˜Ks/AlL@þºQA˜|t/AlLÀñºQA˜ou/AlLàêºQA˜Þu/AlLÀãºQA˜yw/AlLÀɺQA˜…w/AlLɺQA˜€ x/AlL`àºQA˜€]x/AlL äºQA˜ôx/AlL@ïºQA˜€Gy/AlLñºQA˜Šy/AlLÀôºQA˜€ày/AlLàøºQA˜€Rz/AlLà»QA˜€¯z/AlL€»QA˜€x{/AlL»QA˜€Í{/AlL »QA˜€÷{/AlL@»QA˜€7|/AlL (»QA˜g|/AlLÀ0»QA˜€ž|/AlLà<»QA˜µ|/AlL D»QA˜Ú|/AlL@M»QA˜0}/AlLY»QA˜B}/AlL@`»QA˜€<}/AlLn»QA˜€{}/AlL`~»QA˜À«}/AlL ‘»QA˜µ}/AlL“»QA˜»}/AlL@”»QA˜€O~/AlL಻QA˜§~/AlL Â»QA˜€/AlL@Ô»QA˜€/AlL€¼QA˜€x/AlL€¼QA˜Ñ/AlL`¼QA˜€‚/AlL ¼QA˜b‚/AlL@¼QA˜€þ‚/AlL@*¼QA˜ă/AlLàL¼QA˜€*„/AlL ^¼QA˜„/AlLÀl¼QA˜€¼„/AlL€u¼QA˜€…/AlLƒ¼QA˜€˜…/AlLà‘¼QA˜½…/AlL€›¼QA˜€ì…/AlL€ ¼QA˜†/AlL ¤¼QA˜[†/AlL€¯¼QA˜€Ñ†/AlL๼QA˜B‡/AlL żQA˜€¼‡/AlL€Ð¼QA˜€5ˆ/AlL Þ¼QA˜šˆ/AlL é¼QA˜ýˆ/AlLó¼QA˜t‰/AlLàý¼QA˜¿‰/AlL°½QA˜Þ‰/AlL ½QA˜€\Š/AlL ½QA˜€ÀŠ/AlL`½QA˜€6‹/AlL"½QA˜Š‹/AlLà-½QA˜€Á‹/AlLà6½QA˜<Œ/AlLÀE½QA˜ÔŒ/AlL€Y½QA˜//AlL`g½QA˜~/AlL t½QA˜€»/AlL`|½QA˜Ž/AlL ½QA˜/AlL࿽QA˜\/AlLÀνQA˜q/AlLàâ½QA˜?‘/AlL€ò½QA˜€&’/AlL€ý½QA˜€w’/AlL¾QA˜€Ï’/AlLà¾QA˜F“/AlL@¾QA˜€±“/AlL@'¾QA˜€ÿ“/AlL@/¾QA˜(”/AlL+¾QA˜[”/AlL@&¾QA˜€d”/AlLØ'¾QA˜€•/AlL@D¾QA˜€7•/AlL Z¾QA˜€ˆ•/AlL@k¾QA˜­•/AlLà{¾QA˜È•/AlL„¾QA˜Ú•/AlL`‰¾QA˜þ•/AlL•¾QA˜–/AlL Ÿ¾QA˜€Æ—/AlLP6¿QA˜@×—/AlLH<¿QA˜€˜/AlL`U¿QA˜€z˜/AlLàq¿QA˜m™/AlLÀ¥¿QA˜š/AlL é¿QA˜o›/AlL`ÀQA˜;œ/AlLà8ÀQA˜rœ/AlLÀBÀQA˜­œ/AlL@HÀQA˜/AlL VÀQA˜A/AlLÀbÀQA˜¸/AlL tÀQA˜€ž/AlL ~ÀQA˜€ ž/AlLP€ÀQA˜0ž/AlL@ˆÀQA˜Iž/AlLÀeÀQA˜*ž/AlLàQÀQA˜+ž/AlL@>ÀQA˜€.ž/AlL.ÀQA˜€Sž/AlL ÀQA˜^ž/AlL ù¿QA˜kž/AlLàè¿QA˜€sž/AlL@Ï¿QA˜˜ž/AlL€™¿QA˜ž/AlL¿QA˜]ž/AlL ¿QA˜€Ež/AlL`q¿QA˜bž/AlL [¿QA˜žž/AlLàQ¿QA˜€Ðž/AlL@F¿QA˜õž/AlLÀ;¿QA˜ Ÿ/AlL`,¿QA˜*Ÿ/AlLÀ¿QA˜˜Ÿ/AlL` ¿QA˜€ /AlL¿QA2/¼˜€jÔ/AlLúnQAÌ€1]0AlL¤‰QAô¼ßÌÀž0AlL “‰QAÌ€»0AlLàŒ‰QAÌ€é0AlL`„‰QAÌÀ0AlL y‰QAÌ€G0AlL€l‰QAÌ€r0AlL€_‰QAÌÀ“0AlL@T‰QAÌ€­0AlL F‰QAÌ@Ì0AlL>‰QAÌ@ê0AlLÀ6‰QAÌ0AlLà0‰QAÌÀ0AlL€,‰QAÌ€ 0AlLైQAÌÀ 0AlL 1ˆQAÌ€ 0AlL)ˆQAÌ5 0AlL€ˆQAÌÀÐ 0AlLÀñ‡QAÌ€ 0AlL@í‡QAÌ¡ 0AlL€Ñ‡QAÌE 0AlL`²‡QAÌ@ 0AlL ¥‡QAÌ€ 0AlLà‡QAÌ@0 0AlLÀ‰‡QAÌú 0AlLÀE‡QAÌ€' 0AlL ‡QAÌ€µ 0AlLà‡QAÌÀ0AlL  ‡QAÌ@‹0AlL ‡QAÌ€ž0AlL@õ†QAÌ€0AlL@ȆQAÌÀ‰0AlL@͆QAÌÀ‰0AlLà†QAÌÀ0AlL »…QAÌ0AlLà«…QAÌÀ0AlL`—…QAÌÀû0AlL……QAÌ@û0AlLƒ…QAÌ€ú0AlLà…QAÌ@å0AlLx…QAÌ@Ï0AlL€l…QAÌ·0AlLb…QAÌ@¤0AlLpX…QAÌ@ˆ0AlL J…QAÌ 0AlLh9…QAÌé0AlL@…QAÌ€f0AlL`0…QAÌÀX0AlL@þ„QAÌ!0AlL ê„QAÌ@½ 0AlL ”„QAÌÀÓ 0AlL@c„QAÌØ 0AlLà2„QAÌ@ñ 0AlLà „QAÌ 0AlL „QAÌ€: 0AlLÀ„QAÌ€h 0AlL „QAÌ€‰ 0AlL`„QAÌ@¿ 0AlL  „QAÌ€Ñ 0AlL€„QAÌ 0AlL „QAÌ€» 0AlL€µƒQAÌ@M 0AlLà–ƒQAÌ€ 0AlL@†ƒQAÌ@Ù 0AlL{ƒQAÌ€³ 0AlLrƒQAÌ— 0AlLiƒQAÌ€‚ 0AlL[ƒQAÌ€j 0AlL PƒQAÌÀf 0AlLOƒQAÌ@] 0AlLà3ƒQAÌ@X 0AlL@,ƒQAÌ@X 0AlL€!ƒQAÌ@] 0AlL@ƒQAÌÀO 0AlLà ƒQAÌÀ4 0AlLàý‚QAÌ@ 0AlL`÷‚QAÌ@î 0AlLàö‚QAÌÀ» 0AlLø‚QAÌÀ 0AlLú‚QAÌÀP 0AlLàü‚QAÌÀ 0AlL þ‚QAÌì 0AlLý‚QAÌ€À 0AlL ö‚QA̘ 0AlL ì‚QAÌ€ 0AlL€â‚QAÌÀu 0AlL Ö‚QAÌ€ˆ 0AlL€Í‚QAÌ¥ 0AlL Å‚QAÌÀ¾ 0AlLà‚QAÌÀá 0AlL À‚QAÌ@ù 0AlL Â‚QAÌ€ 0AlL@Æ‚QAÌ& 0AlL`Ë‚QAÌ9 0AlL@Ï‚QAÌ@P 0AlLàÒ‚QAÌ€j 0AlLÀÝ‚QAÌ` 0AlL@à‚QAÌ@› 0AlL€ß‚QAÌ€² 0AlLàÏ‚QAÌÀÞ 0AlL€Ê‚QAÌ@“ 0AlL€´‚QAÌ@30AlL b‚QAÌ€Æ0AlLO‚QAÌ€ÿ0AlLÀP‚QAÌ€I0AlL R‚QAÌ@€0AlLÀT‚QAÌ@²0AlLàX‚QAÌ€÷0AlLàR‚QAÌ 0AlL J‚QAÌÀ 0AlLà?‚QAÌ0AlL4‚QAÌþ0AlL€)‚QAÌ0AlL‚QAÌÀ!0AlL€‚QAÌ€50AlL€‚QAÌ@G0AlL@‚QAÌ€^0AlL`úQAÌn0AlL€êQAÌÀl0AlLàßQAÌ€e0AlLÀÕQAÌ@a0AlL`ÏQAÌ€e0AlL`ÇQÄ0AlLà¾QA̤0AlL ¼QAÌÀ0AlL°QAÌ 0AlL §QAÌ0AlL@˜QAÌ 0AlL€†QAÌ`0AlLqQAÌ€0AlLÀdQAÌÀü0AlL@TQAÌ€Å0AlLÀ@QAÌ€0AlL 3QAÌ@‚0AlL %QAÌ@ô0AlL€QAÌÀ]0AlL@QAÌÀ¿0AlL þ€QAÌ€K0AlL€ô€QAÌ€ý0AlL Þ€QAÌÀµ0AlLཀQAÌÞ0AlL€²€QAÌ@{0AlL•€QAÌì0AlL`€QAÌ€y0AlL€x€QAÌ€é0AlL ›€QAÌ€0AlL`§€QAÌ@40AlL@´€QAÌ@o0AlL`Ä€QAÌÀ”0AlL`΀QAÌÀã0AlLàÚ€QAÌ@H0AlLÀø€QAÌ@¦0AlL Ù€QAÌ€þ0AlL஀QAÌ@ß0AlLà«€QAÌ€0AlL €€QAÌ0AlLt€QAÌ@M0AlLb€QAÌ@•0AlLà>€QAÌ€¾0AlLà)€QAÌ€à0AlLà.€QAÌÀ%0AlL9€QAÌÖ0AlL@5€QAÌÀ\0AlL`%€QAÌ_ 0AlLà"€QAÌ`µ 0AlLè!€QAÌÀÒ 0AlL *€QAÌÀã 0AlL€5€QAÌ€!0AlL B€QAÌ@"!0AlLK€QAÌÀ>!0AlLT€QAÌÀR!0AlL X€QAÌÀu!0AlLàc€QAÌÀ‘!0AlL`o€QA̳!0AlLÀz€QAÌÀÚ!0AlLÀ†€QAÌú!0AlL`Š€QAÌ"0AlLÀŽ€QAÌÀ"0AlL“€QAÌ€/"0AlLà˜€QAÌ€A"0AlLÀž€QAÌ@—"0AlLàÀQAÌä"0AlLÌ€QAÌ@é"0AlL Ì€QAÌ€Î"0AlL€Ù€QAÌ@Ü"0AlLâ€QAÌÀó"0AlLó€QAÌ€'#0AlL@ QAÌ€:#0AlL0/QAÌ@²#0AlLÀQAÌ@$0AlLà¥QAÌ€?$0AlL ÊQAÌW$0AlL@ÅQAÌ€p$0AlL ÀQAÌ@…$0AlL ºQAÌÀž$0AlL µQA̳$0AlL ±QAÌ€%0AlLОQAÌ@.%0AlL`–QAÌ@ª&0AlL dQAÌ€÷&0AlL€˜QAÌ?'0AlLà¢QAÌ'0AlL¬QAÌÀz'0AlL ÉQAÌÀ™'0AlL ÊQAÌÎ'0AlLÎQAÌ@(0AlL€ÑQAÌ€(0AlLÀÔQAÌÅ(0AlL  ‚QAÌ@Z)0AlLÞQAÌ^)0AlLÝQAÌ‹,0AlL`ï€QAÌÕ,0AlL ú€QAÌ@û,0AlL`Ó€QAÌ@^-0AlL@£€QAÌÀ{-0AlL@¥€QAÌ€ó-0AlL ¥€QAÌ€O.0AlLࣀQA̵.0AlL€¤€QAÌÙ.0AlLÀ¤€QAÌ€>/0AlL@¥€QAÌ£/0AlL@¥€QAÌÀó/0AlL`¨€QAÌÀT00AlL`®€QAÌ@À00AlL@²€QAÌ€D10AlL@´€QAÌÀ‡10AlLÀ±€QAÌ@û10AlL`¯€QAÌ€>30AlLàž€QAÌ@l30AlL©€QAÌ@µ30AlL@‡€QAÌ@50AlL €QAÌ€`50AlL €QAÌü30AlL ¢QAÌÀ:30AlLà‡QAÌ@330AlL ~QAÌ@'30AlLàvQAÌ€ö20AlL xQAÌ€20AlLaQAÌ}20AlL°`QAÌp20AlL ^QAÌ€30AlL€QAÌ€å20AlL@Ô~QAÌÀ30AlL@Ã~QAÌ@q30AlLàÍ~QAÌ@¥30AlL«~QAÌM40AlLÀ~QAÌ 50AlL@~QAÌf40AlL€L~QAÌ@Å10AlL`r}QAÌ@¨30AlLÀI}QAÌØ30AlLÀE}QAÌÀ{40AlL X}QAÌ€´40AlL O}QAÌÀ™60AlL»|QAÌ€¸60AlLÀ¿|QAÌÀU70AlLÐr|QAÌ@Z70AlL p|QAÌ€Ú70AlL€C|QAÌ€ú70AlL€9|QAÌ@ 80AlL€/|QAÌÀ$80AlL '|QAÌ780AlL`|QAÌ€Q80AlL€|QAÌ@u80AlL` |QAÌÀ•80AlL þ{QAÌÀ¯80AlL@ô{QAÌÌ80AlL`å{QAÌÀ´80AlLàÞ{QAÌ80AlLÀÜ{QAÌ€W80AlL`á{QAÌÀ(80AlL@Þ{QAÌù70AlLÀÜ{QAÌ@Œ70AlL€Ü{QAÌÀï60AlL Á{QAÌ€=60AlL —{QAÌ€M60AlLà{QAÌ€h60AlL@{QAÌ€‡60AlLŠ{QAÌ€£60AlL@ƒ{QAÌ@Å60AlL@z{QAÌÀÊ60AlL@q{QAÌÕ60AlLàe{QAÌ€ü60AlLa{QAÌ@70AlL€_{QAÌ€280AlL h{QAÌ©80AlL@E{QAÌ€Û80AlL2{QAÌ(90AlL {QAÌ290AlLÀ{QAÌ@990AlL@ûzQAÌ@@90AlL ðzQAÌ€I90AlL çzQAÌÀM90AlL ÜzQAÌÀT90AlLÀÑzQAÌZ90AlLÆzQAÌU90AlL´zQAÌR90AlL`¨zQAÌS90AlL`žzQAÌ@P90AlLÀŠzQAÌ€S90AlLàwzQAÌ­80AlLrzQAÌÀ¡80AlLhzQAÌ@y80AlL€hzQAÌ=80AlL@hzQAÌò70AlLgzQAÌ@ª70AlL€gzQAÌÀq70AlLhzQAÌ€370AlL€gzQAÌð60AlLÀdzQAÌ@¯60AlL ezQAÌ@v60AlL@kzQAÌÀI60AlLÀpzQAÌÀ*60AlL€vzQAÌÀ60AlL }zQAÌÀÞ50AlLƒzQAÌÀÁ50AlL†zQAÌÀ§50AlLà‰zQAÌÀŽ50AlLÀŽzQAÌÀ50AlL˜zQAÌ@J40AlL@«zQAÌ€ª30AlL ÃzQAÌ€530AlL`ÁzQAÌÞ20AlL _zQAÌ€Û20AlL]zQAÌf30AlL zQAÌÀ40AlL@ zQAÌ€40AlL0zQAÌÀÁ40AlLàzQAÌ€Ë40AlL zQAÌ€ý40AlL@zQAÌ€A50AlL€ zQAÌ@»50AlL€ÿyQAÌ€160AlL ãyQAÌu60AlL@ÔyQAÌÀ·60AlLàÇyQAÌ€70AlLàµyQAÌ€,70AlLÀ²yQAÌ@@70AlL@©yQAÌ@I70AlLžyQAÌN70AlLyQAÌS70AlL‚yQAÌ­70AlL`fyQAÌÀþ70AlL HyQAÌ€80AlLàByQAÌ¿80AlL yQAÌ€Ò80AlLàyQAÌ@î80AlLÀüxQAÌ@ý80AlLÀõxQAÌ90AlL`ìxQAÌ€"90AlLÀãxQAÌL90AlL ÔxQAÌc90AlLÊxQAÌ€}90AlL`½xQAÌ•90AlLÀ±xQAÌ€¥90AlL ¨xQAÌÂ90AlL ™xQAÌÛ90AlL ŽxQAÌ@ú90AlL €xQAÌÀ:0AlLàsxQAÌ€%:0AlL@gxQAÌ@B:0AlL YxQAÌ@]:0AlL@LxQAÌ@u:0AlLàDxQAÌ@y:0AlL`=xQAÌÀ:0AlL@5xQAÌ€Š:0AlLà+xQAÌÀ—:0AlL@xQAÌ@…:0AlL xQAÌÀy:0AlL` xQAÌn:0AlLàxQAÌl:0AlLýwQAÌ[:0AlL õwQAÌ@H:0AlLÀìwQAÌÀ+:0AlLãwQAÌÀþ90AlL€ÞwQAÌ€É90AlL×wQAÌ@90AlL ËwQAÌÀn90AlL ÉwQAÌÀE90AlL ÈwQAÌÀ90AlL€ÎwQAÌ€ó80AlLÀÕwQAÌÀÍ80AlLÀÞwQAÌ€°80AlL€æwQAÌ@Ž80AlL@îwQAÌÀ80AlL`ówQAÌÀp80AlL úwQAÌ€S80AlL xQAÌ680AlL€xQAÌÀ80AlL xQAÌÀú70AlL  xQAÌ€ë70AlL xQAÌÀÖ70AlL`xQAÌÈ70AlLàxQAÌÀº70AlLàxQAÌ€š70AlLxQAÌ@j70AlL`xQAÌÀY70AlL`xQAÌ;70AlL"xQAÌ€+70AlL #xQAÌ70AlL€$xQAÌ70AlL@$xQAÌ€í60AlLà#xQAÌÀÜ60AlL`"xQAÌË60AlL xQAÌÅ60AlL xQAÌ@À60AlL xQAÌ@¼60AlLÀxQAÌ€¸60AlL  xQAÌ@¶60AlLxQAÌ@º60AlLàxQAÌ@¹60AlL ûwQAÌ€¼60AlL@ùwQAÌ€º60AlL ÷wQAÌ€¸60AlL ôwQAÌ@Ï60AlLàêwQAÌ@Ñ60AlLäwQAÌ€ä60AlL€ßwQAÌ70AlL@ÛwQAÌ€970AlL@×wQAÌa70AlLàÑwQAÌÀƒ70AlL`ÉwQAÌÀÎ70AlLà¸wQAÌÀú70AlLàµwQAÌÀ:80AlL ¬wQAÌÀz80AlLà¦wQAÌÒ80AlL` wQAÌ@ 90AlLÀ˜wQAÌ€W90AlL@wQAÌ€T90AlL ywQAÌ<90AlLàrwQAÌ@90AlLàmwQAÌ@ý80AlLcwQAÌ€ú80AlLàRwQAÌÀ 90AlL`DwQAÌÀ+90AlLÀ9wQAÌ@\90AlL`2wQAÌ€x90AlLÀ-wQAÌ€Œ90AlL $wQAÌ€¦90AlL`wQAÌ€¤90AlLÀwQAÌÀœ90AlLà÷vQAÌ@›90AlLÀêvQAÌ@Ÿ90AlLàvQAÌš90AlL ÖvQAÌ'90AlL@ÏvQAÌ€T90AlLà´vQAÌÀ¬:0AlLà¿vQAÌ@ã:0AlL‰vQAÌÀ¡;0AlL`–vQAÌi<0AlL€•vQAÌ2<0AlLà{vQAÌ—<0AlL€YvQAÌÀ©<0AlLÀYvQAÌ@À<0AlL ZvQAÌã<0AlLÀZvQAÌ€7=0AlL@bvQAÌ@>0AlL`svQAÌŽ?0AlL°“vQAÌ€A0AlL@³vQAÌ€WA0AlL€´vQAÌ A0AlLÀ»vQAÌ€B0AlL`ÎvQAÌkB0AlL€ÝvQAÌ€ªB0AlLàîvQAÌÀßB0AlL þvQAÌ4C0AlLwQAÌ€rC0AlL wQAÌ«C0AlLÀ0wQAÌ€äC0AlL BwQAÌ€D0AlLàUwQAÌ@&D0AlL[wQAÌ@,D0AlL`\wQAÌ€4D0AlL ^wQAÌtD0AlL€awQAÌ@D0AlLà\wQA̹D0AlL`XwQAÌ€ÕD0AlL`VwQAÌÀùD0AlL RwQAÌ€%E0AlL QwQAÌ@ME0AlL SwQAÌ —E0AlL@SwQAÌ@·E0AlLRwQAÌ@äE0AlLÀOwQAÌ€ F0AlL KwQAÌ2F0AlLÀFwQAÌÀvF0AlL BwQAÌŒF0AlLÀ:wQAÌ@¯F0AlL€6wQAÌÀ×F0AlL@6wQAÌõF0AlL6wQAÌ€G0AlL5wQAÌ€-G0AlL5wQAÌÀNG0AlL@1wQAÌÀzG0AlL@9wQAÌ€G0AlL`7wQAÌ€·G0AlL`8wQAÌ€ÉG0AlLÀ?wQAÌ€ãG0AlL @wQAÌ€H0AlL€=wQAÌÀ+H0AlLà9wQAÌSH0AlL@/wQAÌ@–H0AlL 3wQAÌÀ¬H0AlL€.wQAÌÍH0AlL@#wQAÌùH0AlL wQAÌ€I0AlL wQAÌ€HI0AlLàÿvQAÌ@‹I0AlL ìvQA̶I0AlLàãvQAÌÀÍI0AlLåvQAÌ@J0AlL€ÏvQAÌ€ K0AlLàvQAÌ€6K0AlL gvQAÌ@cK0AlLàSvQAÌkK0AlL0PvQAÌÀ™K0AlLà9vQAÌÃK0AlL`#vQAÌÀàK0AlL vQAÌL0AlLàvQAÌÀeL0AlL çuQAÌÀ§L0AlL ÖuQAÌ€èL0AlLàÂuQAÌ€/M0AlL³uQAÌÀ¬M0AlL˜uQAÌÀUN0AlL ouQÄN0AlLà]uQA̼N0AlL`IuQAÌ@ìN0AlL 3uQAÌO0AlLÀ#uQAÌ@UO0AlL`uQAÌÀ‹O0AlLÿtQAÌ@7P0AlL ÎtQAÌ€RP0AlLàÉtQAÌ€[P0AlL`ÈtQAÌÀ}P0AlL@ÃtQAÌÒP0AlLà±tQAÌ@Q0AlLàªtQAÌ2Q0AlLà¡tQAÌ€mQ0AlL`“tQAÌ›Q0AlL@‡tQAÌ€R0AlLàntQAÌT0AlLà²tQAÌ0T0AlL€·tQAÌ@wT0AlL ·tQAÌ@¯T0AlLàµtQAÌ@êT0AlL ºtQAÌ;U0AlLàÀtQAÌ€wU0AlL€ÇtQAÌ@¯U0AlL€ÑtQAÌÀÞU0AlL ØtQAÌ V0AlL ÛtQAÌ@0V0AlLÀÛtQAÌgV0AlL ÖtQAÌÀ…V0AlL ÔtQAÌ€©V0AlLÖtQAÌ€ÌV0AlL ÚtQAÌÀéV0AlLÀÝtQAÌW0AlLÞtQAÌ(W0AlL€ÞtQAÌ@*Y0AlL€[tQAÌÀÑZ0AlLà‹tQAÌÀ=\0AlL tQAÌ€1]0AlLÄsQAÌ]0AlL`ÁsQAÌÀÞ\0AlL ÀsQAÌ@º\0AlLÂsQAÌ@”\0AlL€½sQAÌÀt\0AlLÀ³sQAÌ€P\0AlL°sQAÌ€+\0AlLà«sQAÌ@\0AlL ¨sQAÌÀø[0AlLÀžsQAÌÀé[0AlL`—sQAÌ@Ô[0AlL@sQAÌÁ[0AlL`†sQA̪[0AlL ~sQAÌ€[0AlL ysQAÌÀq[0AlL wsQAÌ@L[0AlL€tsQAÌÀ([0AlL`rsQAÌ€ [0AlLnsQAÌúZ0AlL€hsQAÌðZ0AlLÀ`sQAÌÀìZ0AlL WsQAÌïZ0AlLàJsQAÌ@éZ0AlL ?sQAÌ×Z0AlL€4sQAÌÀ¿Z0AlL .sQẢZ0AlLà$sQAÌÀHZ0AlLàsQAÌ@?Z0AlLsQA̼_"pQA̳T0AlL !pQA̰…T0AlLàpQAÌpbT0AlL@pQA̰)T0AlLà pQAÌpûS0AlL pQAÌÀËS0AlL@pQAÌ@yS0AlL pQAÌð/S0AlLàÿoQAÌ@÷R0AlL@ùoQAÌpÃR0AlL`ðoQA¸¦žžR0AŽ–{SÝoQAÌ€€R0AlLÀÍoQAÌ€kR0AlL€¾oQAÌ€6R0AlLÀ®oQAÄÊvR0A(Ÿ–E¨oQAÌ0R0AlL ¤oQAÌ€®Q0AlL ¤oQA̰YQ0AlLà¥oQA̰Q0AlLà£oQA̰ÕP0AlL ŸoQAØ¢«¨P0AHq“oQA(ŸÄ5ŒP0Aø–êÀ‹oQA\…s …P0A¬ðßÞ‰oQAÌ06P0AlL uoQA̰æO0AlL [oQAÌð£O0AlLNoQAÌ0cO0AlLEoQA@ÞŠ[O0A¨xÔ¢CoQA̰9O0AlL >oQAÌÀO0AlL€9oQAÌ@ñN0AlL 3oQAÌÀÏN0AlL@4oQA̰·N0AlL 7oQAÌ0¥N0AlL F0AlL`ËpQA̰øE0AlL€ËpQAÌ¢E0AlLÈpQAÌÀ[E0AlL€ÃpQAÌ@9E0AlL ÄpQA̰E0AlLÆpQAÌð¢D0AlL`ÆpQAÌ0^D0AlL ÇpQAÌðD0AlL`ÆpQAÌ0¶C0AlLÀpQAÌ€hC0AlL ¹pQAÌ€/C0AlLà°pQA4)äØñB0AÄ…´(­pQAÌ@ÜB0AlLà«pQAÌ€†B0AlLà¬pQAÌp%B0AlL€®pQAÌ€ìA0AlL­pQAÌpäA0AlL€žpQAÌ€ßA0AlL pQAÌðâA0AlLÀtpQAÌÑA0AlLàlpQAÌp¨A0AlLàfpQAÌ0iA0AlLÀbpQAÌð3A0AlL ^pQAÌ÷@0AlL@YpQAÌð°@0AlLMpQAp3»l’@0AØÛ¸ApQAÌ0@0AlL€@pQAìGi”Ž@0A²quÖ0AlL ›oQAÌ€>0AlLà”oQAÌP>0AlL`oQAÌ€>0AlL€oQAŒ„•¨é=0AÈò ’oQAÌpß=0AlL “oQAÌ@±=0AlLžoQA¸Ð;³€=0A¾â!"¥oQAÌ06=0AlL`¦oQAÌ0ñ<0AlLà¤oQA®ì´<0A óyÓ¢oQAÌp«<0AlL€¢oQAÌ@s<0AlLÀ¡oQAÌÀ4<0AlL šoQA̰ <0AlLà•oQAÌÍ;0AlL€oQAÌ—;0AlL oQAÌ@l;0AlL oQAÌ@A;0AlL ˆoQAÌÀ&;0AlL@{oQA̰(;0AlL@poQA̰9;0AlL€eoQAÌÀ?;0AlL@WoQAÌp>;0AlL MoQA̰);0AlL>oQAÌ€;0AlL@2oQAÌðÏ:0AlLà/oQAÌ›:0AlLÀ1oQAÌÀm:0AlL 5oQAÌp@:0AlL 9oQAh©›I+:0A8ÍÄ;oQAÌp:0AlL`?oQAÌ€ê90AlLBoQAö°á90A²qu:CoQAÌðÄ90AlLàFoQAÌÀ¦90AlL JoQAÌ0‹90AlLàKoQA̰i90AlL MoQAÌ0790AlLÀPoQAÌ@90AlLToQAÌ090AlLÀXoQAÅ4ú80A‚GÌboQAÌ€÷80AlL@doQAÀÀR›ì80ARŒ¤oeoQAÌ0Õ80AlLhoQA̪80AlL ooQA̰i80AlL koQA̰80AlL eoQAÌ€Õ70AlL^oQAˆ¦’¯Ï70A¢yQA˜*ô/AlL`JyQA˜€·ó/AlLUyQA˜€,ó/AlL ayQA˜€Öò/AlL€XyQA˜†ò/AlLàPyQA˜]ò/AlLZyQA˜<ò/AlLÀeyQA˜€üñ/AlLàryQA˜€žñ/AlL`|yQA˜€#ñ/AlLyQA˜Ñð/AlL „yQA˜Að/AlLà‰yQA˜€ïï/AlLÀyQA˜€Šï/AlLà—yQA˜Œï/AlLÀŸyQA˜€tï/AlL`­yQA˜€Rï/AlL ´yQA˜€(ï/AlL ÅyQA˜€!ï/AlL`ÏyQA˜ï/AlLÀÚyQA˜Úî/AlLàéyQA˜€¨î/AlLÀóyQA˜€„î/AlL@zQA˜€¨î/AlL zQA˜€þî/AlLzQA˜Vï/AlL )zQA˜€‘ï/AlL 2zQA˜µï/AlLÀ:zQA˜€îï/AlLàFzQA˜ð/AlL UzQA˜€Ôï/AlL€_zQA˜€iï/AlL `zQA˜-ï/AlL€_zQA˜þî/AlL ^zQA˜¬î/AlL`ZzQA˜€Yî/AlL@ZzQA˜€˜í/AlL ^zQA˜=í/AlLàbzQA˜€Óì/AlLà`zQA˜€´ì/AlL ZzQA˜ ì/AlL [zQA˜òê/AlL OzQA˜€{ê/AlL KzQA˜€÷é/AlLGzQA˜é/AlL`HzQA˜€ùè/AlLOzQA˜qè/AlL UzQA˜€ïç/AlL`WzQA˜׿/AlL`TzQA˜€‚å/AlLÀ\zQA˜ùä/AlL`^zQA˜—ä/AlLÀczQA˜0ä/AlLàkzQA˜€Ùã/AlLÀozQA˜€{ã/AlLÀuzQA˜€ã/AlL`|zQA˜€™â/AlL ‚zQA˜Ûá/AlL€„zQA˜€Oá/AlL@†zQA˜ôà/AlL„zQA˜€‚à/AlL@‚zQA˜€à/AlL zQA˜€§ß/AlL`zQA˜€9ß/AlL`ƒzQA˜€ãÞ/AlL …zQA˜€]Þ/AlL@‹zQA˜€ÑÝ/AlL ‘zQA˜QÝ/AlL@˜zQA˜€½Ü/AlL zQA˜MÜ/AlLà£zQA˜€Û/AlLà­zQA˜€3Û/AlL ¶zQA˜€´Ú/AlLÁzQA˜€9Ú/AlLÀÈzQA˜µÙ/AlLÀÓzQA˜€!Ù/AlLÀÛzQA˜€ëØ/AlL€ÚzQA˜™Ø/AlL æzQA˜€„Ø/AlLîzQA˜|Ø/AlL@özQA˜€ Ø/AlL ýzQA˜ÑØ/AlL€{QA˜€øØ/AlLà{QA˜€DÙ/AlL`{QA˜€ˆÙ/AlL€{QA˜€ÈÙ/AlL !{QA˜€XÚ/AlL€7{QA˜€„Ú/AlLà?{QA˜€Ú/AlL H{QA˜€Ú/AlLàN{QA˜€xÙ/AlL i{QA˜€jÚ/AlLàÛ{QA˜€lÚ/AlL ã{QA˜\Ù/AlLÀ|QA˜€lØ/AlL€ |QA˜€VØ/AlL |QA˜€JØ/AlLà!|QA˜dØ/AlL *|QA˜€gØ/AlL@2|QA˜€?Ø/AlL =|QA˜€!Ø/AlLD|QA˜€æ×/AlLE|QA˜€Ñ×/AlL0L|QA˜€*×/AlL€„|QA˜€6×/AlLà’|QA˜×/AlLÀ |QA˜€×/AlLà¯|QA˜€×/AlL »|QA˜€úÖ/AlL Å|QA˜€áÖ/AlL@Î|QA˜€ÛÖ/AlL€Û|QA˜€áÖ/AlL ã|QA˜ÝÖ/AlL ï|QA˜€ØÖ/AlL@û|QA˜€ÕÖ/AlL@}QA˜€·Ö/AlLà}QA˜®Ö/AlLà&}QA˜€HÖ/AlLàB}QA˜€¬Ö/AlL€o}QA˜€CÖ/AlLÀ¥}QA˜€NÖ/AlL`Ó}QA˜Ö/AlLàì}QA˜NÖ/AlL`~QA˜€1Ö/AlL`~QA˜Ö/AlL@'~QA˜áÕ/AlLÀ6~QA˜€ÌÕ/AlL ?~QA˜€­Õ/AlLV~QA˜ƒÕ/AlL€s~QA˜vÕ/AlL€‡~QA˜€NÕ/AlL £~QA˜AÕ/AlL­~QA˜€/Õ/AlLÀ¶~QA˜€rÕ/AlL È~QA˜®Õ/AlL@Ñ~QA˜ÕÕ/AlL Ú~QA˜€Ö/AlL`ä~QA˜€Ö/AlL`ì~QA˜7Ö/AlL ô~QA˜}Ö/AlLQA˜½Ö/AlL`QA˜€íÖ/AlL QA˜×/AlLQA˜"×/AlLàQA˜€ÄÔ/AlL :QA˜ŸÔ/AlL@QA˜€jÔ/AlL`GQA˜€-Ö/AlL ’QA˜×Ý/AlL`¹€QA˜êÜ/AlL€ß€QA˜€aÝ/AlL í€QA˜tÝ/AlLÐï€QA˜€Áæ/AlL‚QA˜0ç/AlLÀ‚QA˜€Äç/AlLàéQA˜;é/AlLÜQA˜€sê/AlL°ìQA˜€ ì/AlL ÙQA˜€zì/AlLpËQA˜€Êì/AlL€ÏQA˜€?ì/AlL ‚QA˜€!ì/AlL€‚QA˜€ì/AlL`&‚QA˜€Ùë/AlLà8‚QA˜€Àë/AlLL‚QA˜€©ë/AlL T‚QA˜ûê/AlL`‚QA˜Ëê/AlL ž‚QA˜€+ê/AlL`Ö‚QA˜@ñé/AlLØê‚QA˜€êé/AlL í‚QA˜Æé/AlLÀƒQA˜€™é/AlLÀƒQA˜€é/AlL $ƒQA˜€Óé/AlL`0ƒQA˜+ê/AlL 5ƒQA˜€bê/AlLà6ƒQA˜¸ê/AlL@GƒQA˜€Êì/AlLƒQA˜€Wí/AlL )„QA˜€9í/AlLÀ7„QA˜€Wð/AlL^„QA˜éð/AlLZ„QA˜÷ñ/AlL`x„QA˜Óó/AlL „QA˜ó/AlL€±„QA˜€~ò/AlLÇ„QA˜€ò/AlL@Ó„QA˜€\ñ/AlL`à„QA˜€Þð/AlL ê„QA˜€fð/AlL ð„QA˜€&ð/AlLàõ„QA˜î/AlL`£…QA˜€=î/AlLÀÚ…QA˜kí/AlL0`†QA˜fí/AlLPc†QA˜€ í/AlL€›†QA˜€Ïì/AlLÀ¡†QA˜„ì/AlLÀª†QA˜:ì/AlL ¸†QA˜ì/AlL`ÆQA˜;ë/AlL`‡QA˜½ê/AlL€-‡QA˜@ê/AlLàž‡QA˜€†ë/AlL@¬‡QA˜€eí/AlL€Þ‡QA˜€î/AlL`í‡QA˜Šî/AlL ö‡QA˜€ï/AlL ˆQA˜€«ï/AlL@ ˆQA˜ð/AlL€ˆQA˜€Žð/AlL@ˆQA˜€êð/AlLàˆQA˜€¬ñ/AlLˆQA˜€ò/AlL ˆQA˜€§ò/AlLà*ˆQA˜€ó/AlLà2ˆQA˜€‘ó/AlLÀ;ˆQA˜€ ô/AlL€DˆQA˜€…ô/AlL MˆQA˜€Øô/AlL SˆQA˜õ/AlLÀXˆQA˜€±õ/AlL _ˆQA˜ö/AlL `ˆQA˜€Æö/AlLgˆQA˜ûö/AlLÐiˆQA˜€E÷/AlLàmˆQA˜€ ø/AlLÀ~ˆQA˜€ˆù/AlL@¨ˆQA˜ªù/AlL ®ˆQA˜Ôù/AlL@µˆQA˜€#ú/AlL€¾ˆQA˜Sú/AlL`ÈQA˜€}ú/AlL`ʈQA˜€–ú/AlL`ЈQA˜»ú/AlLÀÚˆQA˜°û/AlLèˆQA˜ü/AlLà߈QA˜€^ü/AlL àˆQA˜ü/AlL€æˆQA˜Ðü/AlL`íˆQA˜ý/AlL óˆQA˜€Tý/AlL øˆQA˜–ý/AlL@þˆQA˜Ôý/AlLÀ‰QA˜€þ/AlL€‰QAÌ@¹0AlL€‰QAÌ@°0AlL ‰QAÌ€­0AlL@‰QAÌ€©0AlLÀ‰QAÌ@¨0AlL€(‰QAÌ@§0AlL€/‰QA̧0AlLÀ6‰QA̤0AlL>‰QAÌ€¢0AlLàG‰QAÌ€¹0AlL@O‰QAÌ@Ý0AlL T‰QAÌ0AlL Y‰QAÌ@#0AlL`‰QAÌÀh0AlL°]‰QAÌÀt0AlLàd‰QĂ0AlL@k‰QAÌ@—0AlL@r‰QAÌ@±0AlL@y‰QAÌà0AlL`‚‰QAÌ€0AlL ‰QAÌ,0AlL€’‰QAÌ€Ü0AlL`‰QAÌ€ç0AlL@‰QAÌÀ0AlL€‘‰QAÌ€-0AlLÀ’‰QAÌ€O0AlLà“‰QAÌ@u0AlL@•‰QAÌÀ0AlL@˜‰QAÌë0AlL`œ‰QAÌ0AlL`‰QAÌ@80AlL€ ‰QAÌ€S0AlL¤‰QÃ0AlLà˜‰QAÌÀž0AlL “‰QAÌÀý:0AlLÀò}QAÌ@ <0AlL@µ}QAÌ\?0AlLÀÅ}QAÌ@f?0AlL »}QAÌ@r?0AlLÀ¯}QAÌ€DA0AlL€^}QAÌ@%@0AlLÀ"}QAÌ€é?0AlL`}QAÌ€²?0AlL }QẢ?0AlLà}QAÌÀU?0AlL€ }QAÌ@.?0AlL}QAÌ ?0AlL ü|QAÌþ>0AlL`õ|QAÌÀ÷>0AlLàê|QAÌ÷>0AlLàß|QAÌ@ê>0AlLàÖ|QAÌ@Ê>0AlL@Î|QAÌ€¦>0AlLàÉ|QAÌÀw>0AlL€Ç|QAÌ€D>0AlL Ã|QAÌ>0AlL€¼|QAÌ@Ã=0AlL@¯|QAÌ™=0AlL¥|QAÌÀu=0AlLÀ|QAÌÀY=0AlL€œ|QAÌ2=0AlLà—|QAÌÀ`<0AlLj|QAÌ€X<0AlL@h|QAÌÀö;0AlLÀ}QAÌ€}:0AlLàÖ}QAÌÀl:0AlL`Ù}QAÌÀ·:0AlL õ}QAÌÀÐ:0AlL@ô}QAÌÀý:0AlLÀò}QAÌb80AlL€š}QAÌ€ 90AlLÀZ}QAÌ€ï80AlLS}QAÌÀË80AlL I}QAÌ@™80AlLà8}QAÌ€s80AlLà.}QAÌÀ?80AlL`"}QAÌ€80AlL`}QAÌÀÜ70AlL }QAÌ@«70AlL`}QAÌ\70AlL€ø|QAÌ@870AlLÀç|QAÌ "70AlLØå|QAÌ€ù60AlL`â|QAÌ@ï50AlL `}QAÌ€`60AlLàd}QAÌ60AlL@v}QAÌÀÉ60AlL@m}QAÌ@ë60AlL@h}QAÌÀq70AlL q}QAÌb80AlL€š}QA3ˆ˜€)î.AlL@³‰QA˜¥R/AlL]—QA®˜->/AlL]—QA˜#@/AlL —QA˜€S@/AlL—QA˜j@/AlL€—QA˜€E/AlL0–QA˜€-E/AlL –QA˜€E/AlL€û•QA˜ßE/AlLë•QA˜€F/AlLÀá•QA˜šF/AlLÀÆ•QA˜ÉF/AlL€Í•QA˜€ G/AlL Î•QA˜G/AlLÇ•QA˜ÅG/AlL@y•QA˜€ÓH/AlLà•QA˜gJ/AlL€m”QA˜¥R/AlL`”QA˜ÍQ/AlL€„“QA˜€rQ/AlLd“QA˜€aQ/AlLS“QA˜€XQ/AlLàF“QA˜€gQ/AlL )“QA˜IQ/AlL@“QA˜Q/AlL€þ’QA˜€µP/AlL€è’QA˜!P/AlLÈ’QA˜ëO/AlL@À’QA˜€³O/AlL ­’QA˜€hO/AlLàž’QA˜€öN/AlLày’QA˜€#O/AlLt’QA˜€/O/AlL n’QA˜€/AlL ŽQA˜€Ì>/AlL ŽQA˜š>/AlLàüQA˜u>/AlL@ïQA˜ù=/AlLÀÐQA˜Ö=/AlL ÈQA˜€‚=/AlL€·QA˜U=/AlL«QA˜€==/AlL€¢QA˜ä(/AlL@:ŒQA˜(/AlL .ŒQA˜€(/AlL "ŒQA˜(/AlLŒQA˜€Ÿ'/AlL "ŒQA˜•'/AlL ŒQA˜€s'/AlLÐŒQA˜8'/AlLŒQA˜â&/AlLŒQA˜€•&/AlL€ñ‹QA˜€’&/AlLàå‹QA˜€&/AlL@Ú‹QA˜¦&/AlL`Ì‹QA˜“&/AlL@½‹QA˜€D&/AlL¶‹QA˜ü%/AlLଋQA˜€¶%/AlL ¡‹QA˜€l%/AlLà’‹QA˜€%/AlL`ƒ‹QA˜Ö$/AlL{‹QA˜€Â$/AlLy‹QA˜€n$/AlLs‹QA˜$/AlLÀf‹QA˜$/AlL@d‹QA˜€ü#/AlL`Y‹QA˜ó#/AlL€P‹QA˜€Æ#/AlL@I‹QA˜[#/AlL C‹QA˜#/AlL€?‹QA˜Ý"/AlL`7‹QA˜€ª"/AlLÐ+‹QA˜€3"/AlLà%‹QA˜€ø!/AlL '‹QA˜€¾!/AlLà$‹QA˜’!/AlL‹QA˜R!/AlL ‹QA˜€'!/AlL`‹QA˜â /AlL ‹QA˜¬ /AlL ‹QA˜f /AlLÀ‹QA˜€ó/AlL`‹QA˜Ä/AlL€‹QA˜€v/AlL@$‹QA˜€E/AlL &‹QA˜€/AlLà-‹QA˜i/AlL(‹QA˜ /AlLà%‹QA˜­/AlL "‹QA˜€‹/AlL€‹QA˜€$/AlL`‹QA˜€æ/AlL‹QA˜’/AlLà‹QA˜€8/AlL€‹QA˜ /AlL ‹QA˜»/AlL‹QA˜ˆ/AlLÀ‹QA˜;/AlL@ ‹QA˜€á/AlL€ ‹QA˜•/AlL` ‹QA˜€:/AlL  ‹QA˜ó/AlLÀ ‹QA˜€­/AlL ‹QA˜X/AlL ‹QA˜/AlL ‹QA˜€å/AlL`ÿŠQA˜€Š/AlL@ùŠQA˜€T/AlL@õŠQA˜/AlL@ôŠQA˜I/AlLàéŠQA˜ö/AlL äŠQA˜€§/AlLàߊQA˜d/AlL ÜŠQA˜€/AlL`׊QA˜Ø/AlL`ÒŠQA˜®/AlL ΊQA˜€o/AlLðÈŠQA˜O/AlL0ÊQA˜ÿ/AlL ¼ŠQA˜€Æ/AlL`ÀŠQA˜m/AlL ÅŠQA˜/AlLàÄŠQA˜€Í/AlLÊQA˜€Í/AlL@ÁŠQA˜n/AlL ¿ŠQA˜/AlL@½ŠQA˜€â/AlL¾ŠQA˜€†/AlLÊQA˜;/AlL ÅŠQA˜Ë/AlL ÇŠQA˜€{/AlL ÅŠQA˜L/AlLÀÄŠQA˜€ /AlLÅŠQA˜€—/AlLÈŠQA˜T/AlLàÌŠQA˜/AlLЊQA˜€/AlL@ÑŠQA˜€Š /AlL`ÆŠQA˜€* /AlLÀÁŠQA˜€u /AlL ·ŠQA˜ /AlL ³ŠQA˜€¥ /AlL ®ŠQA˜e /AlL@­ŠQA˜ /AlL­ŠQA˜Ë /AlL ¨ŠQA˜€— /AlL࣊QA˜€f /AlLžŠQA˜€; /AlL ˜ŠQA˜€ /AlL€‘ŠQA˜´ /AlL€†ŠQA˜„ /AlLàŠQA˜€! /AlLàsŠQA˜Ö/AlLÀkŠQA˜€r/AlL@bŠQA˜/AlLÀXŠQA˜œ/AlLàOŠQA˜€,/AlL`FŠQA˜€à/AlL AŠQA˜O/AlL`7ŠQA˜€É/AlL 1ŠQA˜\/AlLà+ŠQA˜ö/AlL€'ŠQA˜Y/AlL $ŠQA˜$/AlL,ŠQA˜€ì/AlL€.ŠQA˜€¥/AlLà2ŠQA˜b/AlL 5ŠQA˜€(/AlL`7ŠQA˜€Þ/AlLÀ9ŠQA˜œ/AlLà9ŠQA˜X/AlL`:ŠQA˜€/AlL ;ŠQA˜€Ç/AlL =ŠQA˜€…/AlL@ŠQA˜,/AlLàDŠQA˜×/AlLàIŠQA˜™/AlL MŠQA˜€j/AlL€PŠQA˜1/AlL€RŠQA˜/AlLÀQŠQA˜Êÿ.AlL PŠQA˜€ÿ.AlLMŠQA˜€Oÿ.AlLIŠQA˜€ÿ.AlLFŠQA˜€Íþ.AlL CŠQA˜€–þ.AlLà@ŠQA˜^þ.AlL =ŠQA˜€3þ.AlL :ŠQA˜€ýý.AlL@6ŠQA˜³ý.AlL-ŠQA˜Tý.AlL`ŠQA˜€?ý.AlL`ŠQA˜€ý.AlL@ŠQA˜æü.AlL ŠQA˜€®ü.AlLÀŠQA˜pü.AlL û‰QA˜*ü.AlL÷‰QA˜ðû.AlL€ò‰QA˜°û.AlLî‰QA˜€uû.AlL ç‰QA˜Gû.AlLàã‰QA˜€*û.AlL ׉QA˜€%û.AlL`͉QA˜€û.AlLð‰QA˜Éú.AlLຉQA˜€ú.AlL€¶‰QA˜€çø.AlLÀ¸‰QA˜€¬ø.AlL@º‰QA˜€Gø.AlL`¾‰QA˜€ø.AlL€¿‰QA˜€¾÷.AlL@¿‰QA˜€÷.AlL༉QA˜€7÷.AlL€¸‰QA˜÷.AlL@³‰QA˜€ßö.AlL¾‰QA˜€Àö.AlL ˉQA˜vö.AlLÀ܉QA˜Zö.AlLÀù‰QA˜Mö.AlL€ ŠQA˜€,ö.AlLà#ŠQA˜ö.AlL@/ŠQA˜îõ.AlL 9ŠQA˜€âõ.AlL @ŠQA˜€Žõ.AlL€QŠQA˜Eõ.AlL ^ŠQA˜€õ.AlL@kŠQA˜Ìô.AlL€xŠQA˜€Ÿô.AlL€‡ŠQA˜zô.AlL ŠQA˜mô.AlL°›ŠQA˜€fô.AlL ¡ŠQA˜@ô.AlL ºŠQA˜€4ô.AlLàÄŠQA˜"ô.AlLÔŠQA˜€#ô.AlLàߊQA˜ ô.AlLàéŠQA˜€&ô.AlL@ðŠQA˜/ô.AlL`öŠQA˜€=ô.AlLÀ‹QA˜<ô.AlLà‹QA˜6ô.AlL`#‹QA˜€ô.AlLÀ2‹QA˜€ô.AlL ?‹QA˜èó.AlL€K‹QA˜Ñó.AlLàW‹QA˜»ó.AlL@c‹QA˜€žó.AlL@q‹QA˜kó.AlLà}‹QA˜#ó.AlLà‹‹QA˜Þò.AlL ”‹QA˜®ò.AlLÀ›‹QA˜€_ò.AlL £‹QA˜€ò.AlL°‹QA˜Òñ.AlLÁ‹QA˜ƒñ.AlL`ЋQA˜€cñ.AlL@á‹QA˜[ñ.AlL€ð‹QA˜Uñ.AlL@þ‹QA˜€<ñ.AlL` ŒQA˜(ñ.AlLàŒQA˜€ûð.AlL€(ŒQA˜‰ð.AlL`=ŒQA˜€:ð.AlLPŒQA˜ð.AlL@^ŒQA˜€Êï.AlLoŒQA˜‡ï.AlL`‡ŒQA˜€;ï.AlL€—ŒQA˜€ î.AlL`¿ŒQA˜‹î.AlL`ÜŒQA˜„î.AlL èŒQA˜€€î.AlL@ùŒQA˜sî.AlLÀ QA˜Pî.AlL€$QA˜2î.AlLà9QA˜€1î.AlL€MQA˜€;î.AlL`[QA˜:î.AlL€iQA˜2î.AlLàŒQA˜€)î.AlL  QA˜€5î.AlL«QA˜@î.AlL`±QA˜_î.AlL»QA˜…î.AlL ÂQA˜_î.AlL@ÆQA˜€Jî.AlL`ÍQA˜€Eî.AlL`ÓQA˜Fî.AlL@ÝQA˜Hî.AlL@äQA˜Rî.AlL ëQA˜iî.AlL ñQA˜Ãî.AlL@ýQA˜€ï.AlL@ŽQA˜^ï.AlL€ ŽQA˜€ ï.AlLÀŽQA˜Ïï.AlL€ŽQA˜€ð.AlLÀ%ŽQA˜€Cð.AlL +ŽQA˜”ð.AlL3ŽQA˜Ùð.AlLà8ŽQA˜ñ.AlL€@ŽQA˜€Nñ.AlLÀLŽQA˜Šñ.AlLàXŽQA˜¶ñ.AlL`eŽQA˜€éñ.AlL qŽQA˜ò.AlL@yŽQA˜0ò.AlL€ŽQA˜Mò.AlL ‰ŽQA˜xò.AlL€ŽŽQA˜€Õò.AlL ŽQA˜Kó.AlL ’ŽQA˜Ÿó.AlL`›ŽQA˜úó.AlL€¤ŽQA˜Eô.AlL ªŽQA˜ô.AlLÀ«ŽQA˜íô.AlL©ŽQA˜õ.AlL©ŽQA˜€jõ.AlL £ŽQA˜€½õ.AlL £ŽQA˜õõ.AlL`¤ŽQA˜€Fö.AlL ©ŽQA˜€Œö.AlL`ªŽQA˜Ñö.AlL@ªŽQA˜€ ÷.AlL€¨ŽQA˜€÷.AlL¨ŽQA˜ø.AlL ¥ŽQA˜€Xø.AlL ®ŽQA˜ ø.AlL ¸ŽQA˜€åø.AlLÀÀŽQA˜$ù.AlL ÈŽQA˜€±ù.AlL`ÑŽQA˜€þù.AlLÔŽQA˜€[ú.AlLHÛŽQA˜€¼ú.AlLÀàŽQA˜€û.AlL àŽQA˜pû.AlL ãŽQA˜çû.AlL çŽQA˜oü.AlLàïŽQA˜€ ý.AlL@üŽQA˜€]ý.AlL@QA˜Ôý.AlLà QA˜€þ.AlL QA˜€™þ.AlL #QA˜èþ.AlL`-QA˜:ÿ.AlL 2QA˜ ÿ.AlLà:QA˜€7/AlL`@QA˜€ô/AlLàGQA˜€/AlL€UQA˜C/AlLÀhQA˜/AlLÀsQA˜?/AlLÀ|QA˜{/AlL ŒQA˜€‘/AlL –QA˜Ø/AlL€¤QA˜ /AlL@¬QA˜€C/AlL€±QA˜€K/AlL ¸QA˜W/AlLàÀQA˜k/AlLÀÇQA˜€/AlLàÌQA˜½/AlLÀÓQA˜€Á/AlLéQA˜Á/AlLñQA˜€þ/AlL€õQA˜€e/AlLýQA˜/AlL` QA˜€Í/AlLÀ QA˜Æ/AlL€QA˜µ/AlL #QA˜¸/AlL-QA˜€®/AlL@:QA˜€6/AlL€CQA˜/AlL HQA˜€ž/AlLàWQA˜//AlL`dQA˜€Í/AlL@xQA˜€™/AlL †QA˜š/AlL@ˆQA˜œ/AlLÀ–QA˜›/AlL€§QA˜f/AlL@¾QA˜€5/AlL ÔQA˜€/AlLíQA˜€K/AlL`%‘QA˜Èþ.AlL‰‘QA˜ý.AlL@å‘QA˜Àü.AlLà"’QA˜€”û.AlL u’QA˜Žû.AlLÀw’QA˜€Qû.AlL Œ’QA˜@û.AlL ¡’QA˜û.AlL ¹’QA˜€åú.AlLÐÎ’QA˜Ôú.AlLÖ’QA˜€ú.AlL ç’QA˜€Fú.AlL`÷’QA˜5ú.AlL “QA˜<ú.AlLà'“QA˜Yú.AlL@“QA˜Éú.AlL@o“QA˜Óú.AlL€š“QA˜€Áú.AlLà “QA˜îú.AlLº“QA˜€Lû.AlL Á“QA˜Öû.AlL`ΓQA˜bü.AlLàÖ“QA˜€ëü.AlL ä“QA˜4ý.AlLï“QA˜€Ïý.AlL@”QA˜jþ.AlL`”QA˜€'ÿ.AlLà”QA˜³ÿ.AlLà%”QA˜Ÿ/AlLÀ3”QA˜€/AlL<”QA˜‚/AlLàO”QA˜G/AlL [”QA˜€Ý/AlLÀf”QA˜N/AlL€q”QA˜ä/AlL`v”QA˜£/AlL”QA˜€É/AlL@‚”QA˜€ /AlL€„”QA˜±/AlL Š”QA˜€i/AlL€”QA˜€ /AlLà””QA˜€¥ /AlL š”QA˜€2 /AlL` ”QA˜– /AlL€¦”QA˜€ /AlL®”QA˜€u /AlL´”QA˜€ /AlL»”QA˜q /AlL¿”QA˜ /AlL€Ì”QA˜Ù /AlLÑ”QA˜ï/AlL@é”QA˜D/AlLà•QA˜€—/AlL"•QA˜$/AlL R•QA˜€D/AlL@\•QA˜w/AlLÀi•QA˜€Ï/AlLà•QA˜€ /AlL`–•QA˜€/AlL`¨•QA˜†/AlLº•QA˜</AlL€Æ•QA˜ç/AlLÍ•QA˜„/AlLàÔ•QA˜R/AlL Ù•QA˜€Ã/AlLàØ•QA˜€G/AlLÓ•QA˜é/AlLàÑ•QA˜€h/AlL@וQA˜/AlL€Ô•QA˜Œ/AlLÀÓ•QA˜‚/AlL€á•QA˜ó/AlL Ü•QA˜o/AlL@á•QA˜€ÿ/AlL@é•QA˜¨/AlLí•QA˜€+/AlL`ì•QA˜€ß/AlLç•QA˜€˜ /AlL ê•QA˜€¦!/AlLñ•QA˜L"/AlLàï•QA˜å"/AlLàè•QA˜O#/AlL€æ•QA˜€$/AlL ã•QA˜€Ë$/AlLÞ•QA˜­%/AlLÀÝ•QA˜ƒ&/AlLàæ•QA˜!'/AlLí•QA˜€Õ'/AlL ñ•QA˜µ(/AlLàó•QA˜X)/AlL@÷•QA˜€ó)/AlL`–QA˜K*/AlL–QA˜´*/AlL@–QA˜+/AlL !–QA˜€ˆ+/AlL !–QA˜Ï+/AlLÀ$–QA˜ü+/AlL€-–QA˜',/AlL 7–QA˜€T,/AlL€<–QA˜€½,/AlL`4–QA˜€ô,/AlL /–QA˜€6-/AlL %–QA˜‚-/AlLÀ–QA˜€./AlLà–QA˜5./AlL`'–QA˜€—./AlLà&–QA˜./AlL /–QA˜«./AlL@:–QA˜ë./AlLÀ>–QA˜//AlLàE–QA˜€?//AlL G–QA˜€}//AlLàI–QA˜«//AlL€D–QA˜0/AlLÀN–QA˜p0/AlL ]–QA˜Ó0/AlL€`–QA˜€I1/AlLÀY–QA˜`1/AlL Y–QA˜€±1/AlLàV–QA˜€)2/AlLà[–QA˜´2/AlL `–QA˜€N3/AlLÀg–QA˜é3/AlL s–QA˜k4/AlL€x–QA˜ø4/AlL@|–QA˜–5/AlL–QA˜î5/AlL@‰–QA˜€Õ5/AlL`‘–QA˜®5/AlL—–QA˜§5/AlL –QA˜€Ï5/AlLÀ­–QA˜€æ5/AlL·–QA˜'6/AlL Å–QA˜€g6/AlL@ЖQA˜’6/AlLàÚ–QA˜æ6/AlLàÞ–QA˜W7/AlL`å–QA˜µ7/AlLî–QA˜ø7/AlL ú–QA˜|8/AlL —QA˜-9/AlLà*—QA˜9/AlL€1—QA˜€=:/AlLà;—QA˜€™:/AlL D—QA˜;/AlL€T—QA˜;/AlLÀ\—QA˜€/AlL]—QA4 ˜€‚Y/AlL@zQA˜€0Â/AlLÀ=†QAÁ˜€Ìˆ/AlLà#†QA˜åˆ/AlL†QA˜'‰/AlLà†QA˜Œ‰/AlL€†QA˜€¹‰/AlL@$†QA˜è‰/AlL '†QA˜"Š/AlL +†QA˜€}Š/AlLÀ*†QA˜‰Š/AlLÀ*†QA˜·Š/AlL`†QA˜ôŠ/AlL †QA˜D‹/AlLP †QA˜€ž‹/AlL€†QA˜€â‹/AlL †QA˜Œ/AlL†QA˜€.Œ/AlLÀ†QA˜aŒ/AlL` †QA˜€ Œ/AlLÀ †QA˜€öŒ/AlL†QA˜€L/AlL †QA˜¥/AlL€†QA˜Ž/AlL †QA˜dŽ/AlL †QA˜€ÝŽ/AlL€†QA˜€/AlLà†QA˜O/AlL†QA˜¨/AlLÀ†QA˜ë/AlL€†QA˜€;/AlL€†QA˜l/AlL` †QA˜‹/AlL †QA˜€È/AlL€ü…QA˜‘/AlLù…QA˜€S‘/AlL€ñ…QA˜€‘/AlLð…QA˜€ø‘/AlLàð…QA˜~’/AlLð÷…QA˜€È’/AlL ò…QA˜“/AlL`í…QA˜)“/AlL`ä…QA˜^“/AlLÐÚ…QA˜€œ“/AlL ß…QA˜;”/AlL0å…QA˜}”/AlL á…QA˜½”/AlLàÚ…QA˜•/AlLÐØ…QA˜&•/AlLÀÝ…QA˜:•/AlLÀä…QA˜€ˆ•/AlLàä…QA˜Í•/AlLå…QA˜€K–/AlLàä…QA˜˜–/AlLÛ…QA˜€ —/AlL Õ…QA˜ƒ—/AlL Ï…QA˜€á—/AlL€É…QA˜\˜/AlL€Æ…QA˜€É˜/AlL Å…QA˜N™/AlL€È…QA˜šš/AlLðØ…QA˜€ ›/AlL€×…QA˜€Q›/AlL@ã…QA˜¼›/AlL@Ý…QA˜œ/AlLÍ…QA˜€vœ/AlLÅ…QA˜€¾œ/AlL ¾…QA˜€ /AlLÀ¹…QA˜€}/AlL@·…QA˜€â/AlL ³…QA˜Cž/AlL௅QA˜€“ž/AlL€«…QA˜äž/AlL@¨…QA˜€Ÿ/AlL@¥…QA˜€.Ÿ/AlL€¤…QA˜LŸ/AlL £…QA˜€‚Ÿ/AlL€—…QA˜ËŸ/AlL …QA˜€d /AlL0Œ…QA˜¡/AlL€–…QA˜€²¡/AlL …QA˜€)¢/AlL £…QA˜€©¢/AlLÀ¤…QA˜1£/AlL@«…QA˜¤/AlL`»…QA˜€¥/AlL`Ê…QA˜€¥/AlLÀÑ…QA˜7¦/AlL@Þ…QA˜€”¦/AlL è…QA˜€§/AlLÀõ…QA˜Z§/AlL †QA˜p§/AlLp †QA˜€t§/AlL@ †QA˜è§/AlLàþ…QA˜6¨/AlLî…QA˜€\¨/AlLæ…QA˜€¢¨/AlL@Û…QA˜€ë¨/AlL Ì…QA˜'©/AlL€¾…QA˜€p©/AlL ²…QA˜€É©/AlLÀ¢…QA˜€ª/AlL@•…QA˜€Yª/AlL ‡…QA˜€Ÿª/AlL z…QA˜Õª/AlLÀs…QA˜îª/AlL`q…QA˜€,«/AlL€k…QA˜€¸«/AlL b…QA˜¬/AlL@Z…QA˜€i¬/AlL S…QA˜Ŭ/AlL`Q…QA˜€,­/AlL€L…QA˜â­/AlL B…QA˜€w®/AlLp:…QA˜€<°/AlLÀ!…QA˜ ±/AlLà…QA˜{±/AlLà…QA˜é±/AlL…QA˜F²/AlL€…QA˜³²/AlLÀû„QA˜ª³/AlL€ë„QA˜µ/AlLÀÖ„QA˜Ôµ/AlL Í„QA˜€7¶/AlL Ç„QA˜B¶/AlL`Æ„QAhìÐÌL¶/AlL0Å„QA˜€©¶/AlLÀº„QA˜€ú¶/AlL §„QA˜‘·/AlL –„QA˜€°¸/AlL |„QA˜€¹/AlL€q„QA˜й/AlLà[„QA˜ѹ/AlL L„QA˜€º/AlL 5„QA˜dº/AlL„QA˜€šº/AlL „QA˜»/AlLòƒQA˜€»/AlL`àƒQA˜€â»/AlLÀЃQA˜€¼/AlLƃQA˜€'¼/AlL`ÁƒQA˜€}¼/AlLೃQA˜ð¼/AlL@¥ƒQA˜D½/AlL`›ƒQA˜€à½/AlLÀƒQA˜€¾/AlL|ƒQA˜€0¿/AlLàhƒQA˜€Õ¿/AlL@[ƒQA˜€xÀ/AlL@PƒQA˜ÚÀ/AlL GƒQA˜Á/AlL CƒQA˜Â/AlL <ƒQA˜€(Â/AlL8<ƒQA˜-Â/AlLP:ƒQA˜€0Â/AlL 3ƒQA˜øÁ/AlL`0ƒQA˜€¾Á/AlL`/ƒQA˜€ŸÁ/AlL *ƒQA˜€Á/AlL`!ƒQA˜€Á/AlLÀƒQA˜\Á/AlLàƒQA˜€4Á/AlL€ƒQA˜Á/AlL€û‚QA˜€ Á/AlL€ì‚QA˜õÀ/AlLÀà‚QA˜ÑÀ/AlLàÛ‚QA˜€ƒÀ/AlLàÖ‚QA˜€fÀ/AlL Ñ‚QA˜[À/AlL€È‚QA˜>À/AlLÀ¾‚QA˜€À/AlL@´‚QA˜€ò¿/AlL`«‚QA˜€Ñ¿/AlLूQA˜€ž¿/AlLàŸ‚QA˜Y¿/AlL@š‚QA˜€D¿/AlL”‚QA˜ ¿/AlLÀŒ‚QA˜ã¾/AlL ‡‚QA˜€²¾/AlL`€‚QA˜f¾/AlLÀ|‚QA˜€0¾/AlL@{‚QA˜¾/AlL`t‚QA˜Ľ/AlLq‚QA˜€¢½/AlL k‚QA˜€f½/AlL j‚QA˜/½/AlLàd‚QA˜½/AlL`_‚QA˜ϼ/AlL€`‚QA˜€°¼/AlLÀV‚QA˜€“¼/AlL P‚QA˜€?¼/AlL H‚QA˜€?¼/AlL =‚QA˜î»/AlL 8‚QA˜“»/AlL <‚QA˜€_»/AlL >‚QA˜€ »/AlL ;‚QA˜€ëº/AlL 5‚QA˜€Àº/AlL@0‚QA˜º/AlL+‚QA˜€Aº/AlL€%‚QA˜ø¹/AlL $‚QA˜Œ¹/AlL@#‚QA˜€S¹/AlL ‚QA˜€¹/AlL`‚QA˜€÷¸/AlLÀ ‚QA˜€Ã¸/AlL‚QA˜ ¸/AlL øQA˜€W¸/AlL€îQA˜€'¸/AlL€éQA˜ð·/AlLÝQA˜€â·/AlL`ÕQA˜€¨·/AlL€ÌQA˜‘·/AlL@ÄQA˜I·/AlL ¿QA˜€K·/AlL`¸QA˜=·/AlL ­QA˜€·/AlLÀ£QA˜ç¶/AlLàQA˜€¶¶/AlL ›QA˜€„¶/AlL€—QA˜€6¶/AlLÀ–QA˜€¶/AlLQA˜€Üµ/AlLà‰QA˜sµ/AlL@„QA˜€`µ/AlL@wQA˜vµ/AlL`mQA˜€Rµ/AlL@aQA˜€Wµ/AlLZQA˜[µ/AlLUQA˜‹µ/AlL NQA˜€ºµ/AlLÀDQA˜×µ/AlL`9QA˜³µ/AlL@1QA˜»µ/AlL+QA˜€ßµ/AlL #QA˜€Åµ/AlL`QA˜€´µ/AlLàQA˜€ µ/AlL QA˜ˆµ/AlLàQA˜’µ/AlL€QA˜pµ/AlL ù€QA˜Jµ/AlL@ñ€QA˜€ µ/AlLàì€QA˜ó´/AlLÀæ€QA˜€è´/AlLÝ€QA˜¦´/AlLÀÚ€QA˜€h´/AlL Ù€QA˜€1´/AlLàÕ€QA˜€Ú³/AlL ЀQA˜s³/AlL€Ð€QA˜€&³/AlL ΀QA˜€(²/AlL Ä€QA˜€¢±/AlL຀QA˜a±/AlLÀ±€QA˜€±/AlL ¬€QA˜±/AlL`¡€QA˜Õ°/AlLà–€QA˜™°/AlLàŽ€QA˜F°/AlL€…€QA˜Ó¯/AlL@~€QA˜O¯/AlL }€QA˜¯/AlL`€€QA˜€¥®/AlL`z€QA˜€H®/AlL€t€QA˜€÷­/AlLn€QA˜²­/AlL e€QA˜€S­/AlLÀ\€QA˜€­/AlL P€QA˜­/AlL@D€QA˜€‹¬/AlL :€QA˜%¬/AlL@3€QA˜€¶«/AlL@,€QA˜«/AlL@!€QA˜r«/AlL@€QA˜€ «/AlL`€QA˜€ª/AlLà€QA˜#ª/AlL€ €QA˜€¾©/AlL  €QA˜^©/AlL€QA˜€?©/AlL@÷QA˜€ ©/AlL€îQA˜€Ò¨/AlL`éQA˜€¦¨/AlLâQA˜‰¨/AlLÀÙQA˜6¨/AlL`ÏQA˜€ð§/AlLÇQA˜€Ã§/AlL ÁQA˜§/AlL ºQA˜v§/AlL °QA˜S§/AlLÀ¦QA˜€ §/AlLžQA˜À̦/AlL —QA˜“¦/AlL€’QA˜p¦/AlLàŒQA˜D¦/AlL€…QA˜ý¥/AlLà‚QA˜€¹¥/AlLQA˜¥/AlL|QA˜€Á¤/AlL@oQA˜€m¤/AlLdQA˜¤/AlL]QA˜ë£/AlLÀTQA˜€Ê£/AlL GQA˜¹£/AlLà>QA˜‘£/AlLÀ6QA˜€„£/AlL`0QA˜^£/AlLÀ)QA˜€8£/AlL`%QA˜€ý¢/AlL QA˜•¢/AlLÀQA˜€T¢/AlL QA˜€ ¢/AlL@QA˜ì¡/AlL@QA˜€»¡/AlLÀQA˜€F¡/AlL€QA˜÷ /AlL QA˜½ /AlLQA˜€„ /AlLQA˜€8 /AlL ÿ~QA˜€ôŸ/AlL@ü~QA˜²Ÿ/AlL`ø~QA˜kŸ/AlLÀõ~QA˜+Ÿ/AlLÐó~QA˜Ÿ/AlL ò~QA˜Ìž/AlL€ê~QA˜€ž/AlLà~QA˜Gž/AlL€Ø~QA˜ž/AlL Ñ~QA˜€Ü/AlLÀÉ~QA˜/AlLÀ½~QA˜X/AlLÀ³~QA˜€^/AlL@«~QA˜L/AlLÀ~QA˜€ /AlL`‘~QA˜ûœ/AlL€Œ~QA˜€/AlL€‚~QA˜/AlLÀs~QA˜€ /AlL`m~QA˜€(/AlL`T~QA˜€Îœ/AlLI~QA˜€´™/AlL ~QA˜€z™/AlL€~QA˜€@™/AlLÀ~QA˜€Ü˜/AlL ~QA˜€€˜/AlL€û}QA˜˜/AlL`ø}QA˜™—/AlLô}QA˜€6—/AlL`ð}QA˜ò–/AlL@í}QA˜€›–/AlLÀå}QA˜?–/AlL á}QA˜€–/AlL å}QA˜¶•/AlLÀÞ}QA˜€`•/AlL Ù}QA˜!•/AlL Ô}QA˜€Þ”/AlL€Í}QA˜«”/AlL@Ç}QA˜€^”/AlLÀÀ}QA˜)”/AlL ¼}QA˜€í“/AlL¶}QA˜}“/AlL«}QA˜€C“/AlL@¦}QA˜“/AlL`—}QA˜€æ’/AlL€}QA˜€©’/AlL€‡}QA˜€4’/AlL }QA˜€Ø‘/AlLà{}QA˜€™‘/AlL€r}QA˜X‘/AlL i}QA˜‘/AlL ]}QA˜€è/AlLÀQ}QA˜å/AlL@O}QA˜Ù/AlL F}QA˜Í/AlL :}QA˜€Æ/AlL€%}QA˜€¢/AlL`}QA˜„/AlL€}QA˜Š/AlLÊ{QA˜€ Š/AlL@Â{QA˜ú‰/AlLà»{QA˜€º‰/AlLÀ²{QA˜–‰/AlL`«{QA˜€i‰/AlL¡{QA˜U‰/AlL›{QA˜€I‰/AlL`’{QA˜€3‰/AlL ‡{QA˜'‰/AlL |{QA˜€‰/AlLÀr{QA˜ÿˆ/AlLÀg{QA˜ψ/AlL@f{QA˜™ˆ/AlL e{QA˜Lˆ/AlL`_{QA˜9ˆ/AlL Y{QA˜€!ˆ/AlL Q{QA˜ˆ/AlL@G{QA˜ý‡/AlL€<{QA˜€Ê‡/AlL€1{QA˜€ ‡/AlL@&{QA˜€~‡/AlL{QA˜€N‡/AlL€{QA˜€-‡/AlLÀ{QA˜€Ò†/AlL`{QA˜€š†/AlL {QA˜]†/AlLà {QA˜ú…/AlLp{QA˜€¤…/AlL@{QA˜S…/AlL  {QA˜€ …/AlL {QA˜€¼„/AlL€{QA˜€x„/AlL`{QA˜€/„/AlL€{QA˜÷ƒ/AlL` {QA˜€¬ƒ/AlLÀ {QA˜€~ƒ/AlL {QA˜Kƒ/AlL {QA˜€ƒ/AlL{QA˜€Ô‚/AlL@!{QA˜€‚/AlLÀ0{QA˜€¢/AlL05{QA˜€E/AlL 0{QA˜€Ü€/AlLà&{QA˜›€/AlLÀ{QA˜…€/AlL€{QA˜v€/AlLP{QA˜O€/AlLÀ {QA˜€/AlL`{QA˜ó/AlL þzQA˜Ç/AlL@÷zQA˜±/AlL€ëzQA˜€±/AlLäzQA˜€y/AlL@ßzQA˜/AlL`ØzQA˜€á~/AlLÏzQA˜€ ~/AlLà¾zQA˜€R~/AlL zQA˜~/AlLÀ‘zQA˜}/AlL ‡zQA˜H}/AlL@zQA˜}/AlL }zQA˜š|/AlL|zQA˜™|/AlLÀnzQA˜|/AlL@dzQA˜H|/AlL`dzQA˜€|/AlL@`zQA˜|/AlLXzQA˜0|/AlL`OzQA˜,|/AlLEzQA˜|/AlL@>zQA˜€»{/AlL@9zQA˜q{/AlL@5zQA˜€5{/AlL€3zQA˜Íz/AlLà/zQA˜|z/AlL`-zQA˜Gz/AlL`'zQA˜€ûy/AlL@"zQA˜€Ëy/AlL@zQA˜ty/AlL@zQA˜€$y/AlLàzQA˜€¿x/AlL€"zQA˜€vx/AlL &zQA˜€ x/AlL@.zQA˜Øw/AlL 5zQA˜€¢w/AlL;zQA˜€Gw/AlL€BzQA˜€ w/AlL€IzQA˜Äv/AlL OzQA˜€—v/AlL VzQA˜]v/AlL`[zQA˜v/AlLà_zQA˜€öu/AlLfzQA˜u/AlLÀqzQA˜au/AlL xzQA˜€Gu/AlL`~zQA˜€u/AlL‚zQA˜Ít/AlLàˆzQA˜€’t/AlL@‘zQA˜kt/AlL`–zQA˜!t/AlLÀœzQA˜€Ós/AlL@ŸzQA˜€–s/AlL £zQA˜€cs/AlL°¨zQA˜$s/AlL`§zQA˜4r/AlLà²zQA˜€éq/AlLàºzQA˜€·q/AlLÀÀzQA˜€Fq/AlL@ÉzQA˜€ìp/AlLÀÏzQA˜€©p/AlLØzQA˜€Zp/AlL ãzQA˜p/AlLïzQA˜€‰o/AlL€üzQA˜€o/AlL {QA˜€Øn/AlLà {QA˜›n/AlL@1{QA˜€un/AlL€B{QA˜€En/AlL P{QA˜€öm/AlLà_{QA˜€{m/AlLày{QA˜€am/AlLˆ{QA˜{m/AlLà“{QA˜€€m/AlL`œ{QA˜€0m/AlL`ª{QA˜€ôl/AlL`´{QA˜€ál/AlL½{QA˜žl/AlLÀÍ{QA˜€`/AlLê}QA˜€`/AlLàÜ}QA˜ñ_/AlL Ô}QA˜€Ò_/AlLÀÍ}QA˜€›_/AlL€Ä}QA˜]_/AlL`½}QA˜€ò^/AlL€¶}QA˜€d^/AlL`­}QA˜€ú]/AlL¬}QA˜€]/AlL ¥}QA˜€j]/AlLà—}QA˜e]/AlLŒ}QA˜€Œ]/AlL ƒ}QA˜š]/AlL`y}QA˜Ž]/AlL@n}QA˜"]/AlLÀi}QA˜€»\/AlL`i}QA˜\/AlLi}QA˜®[/AlLÀh}QA˜1[/AlL@b}QA˜€=Z/AlL@[}QA˜€‚Y/AlL W}QA˜€˜Y/AlL€u}QA˜€œY/AlLà}QA˜€©Y/AlLÀ‹}QA˜€½Y/AlLÀ—}QA˜×Y/AlL  }QA˜€ëY/AlL ®}QA˜íY/AlL`¹}QA˜€ÛY/AlL€¿}QA˜ÉY/AlL Ç}QA˜ªY/AlL€Í}QA˜€ªY/AlLÛ}QA˜ÁY/AlLå}QA˜ÃY/AlLàë}QA˜€¼Y/AlL õ}QA˜€¬Y/AlLÀ~QA˜€¬Y/AlLà ~QA˜ÍY/AlL ~QA˜êY/AlL ~QA˜€þY/AlL ~QA˜€Z/AlL #~QA˜#Z/AlL@*~QA˜€jZ/AlL€4~QA˜€}Z/AlL =~QA˜}Z/AlLÀH~QA˜€–Z/AlL€Q~QA˜€ÔZ/AlL`]~QA˜€ÝZ/AlLÀe~QA˜€µZ/AlLt~QA˜ÑZ/AlLÀ|~QA˜€øZ/AlL ˆ~QA˜N[/AlLÀ˜~QA˜€›[/AlL€¡~QA˜€Ç[/AlLà¬~QA˜œ[/AlLà²~QA˜€I[/AlLÀÈ~QA˜F[/AlL@Ì~QA˜U[/AlL@Ó~QA˜€d[/AlLàÙ~QA˜ˆ[/AlL€à~QA˜·[/AlL å~QA˜ð[/AlL@ë~QA˜€:\/AlL€ô~QA˜L\/AlLÀø~QA˜€b\/AlL`QA˜€v\/AlLQA˜€¢\/AlL 'QA˜€ª\/AlL/QA˜€­\/AlL`8QA˜€²\/AlL`@QA˜©\/AlL KQA˜€“\/AlL`SQA˜‘\/AlL`WQA˜€†\/AlL€[QA˜\/AlLeQA˜€Ò\/AlL vQA˜€]/AlL`}QA˜U]/AlL`…QA˜Æ]/AlLà‰QA˜(^/AlL ˆQA˜e^/AlL`‡QA˜€Ÿ^/AlL ˆQA˜€ö^/AlL †QA˜€_/AlL€}QA˜€,_/AlL€tQA˜U_/AlLàhQA˜g_/AlL _QA˜€_/AlL`VQA˜Ž_/AlL`KQA˜‘_/AlL`>QA˜€©_/AlL@6QA˜ï_/AlL 1QA˜Z`/AlLÀ,QA˜€Ä`/AlLà(QA˜€a/AlL #QA˜€Œa/AlL€ QA˜€×a/AlL€QA˜%b/AlL QA˜¿b/AlL`QA˜ób/AlL QA˜€kc/AlL QA˜€Ðc/AlLÀQA˜ãc/AlL°QA˜=d/AlLà QA˜€e/AlLø~QA˜&e/AlLà÷~QA˜Ae/AlLÀ÷~QA˜€e/AlLàý~QA˜æe/AlLQA˜Wf/AlLQA˜€¶f/AlL€QA˜€Cg/AlL@ QA˜±g/AlLÀQA˜'h/AlLQA˜h/AlL@QA˜ i/AlLÀ#QA˜€ji/AlL€.QA˜œi/AlL@;QA˜æi/AlL`BQA˜>j/AlL EQA˜€Åj/AlL DQA˜€2k/AlL€FQA˜€¢k/AlL@FQA˜€3l/AlLÀFQA˜€¹l/AlL@KQA˜€m/AlL`SQA˜€9m/AlLfQA˜‹m/AlL@oQA˜³m/AlL wQA˜n/AlL@{QA˜€^n/AlL }QA˜€¶n/AlL`~QA˜€o/AlL`QA˜Ro/AlLÀ€QA˜¯o/AlLÀ‚QA˜ïo/AlL`‡QA˜€p/AlLÀŒQA˜Lp/AlLÀ‘QA˜€~p/AlL@•QA˜¹p/AlL˜QA˜õp/AlLÀ˜QA˜/q/AlL@QA˜}q/AlLÀ¡QA˜±q/AlL@©QA˜áq/AlL °QA˜r/AlL ¸QA˜€@r/AlL ÁQA˜€vr/AlLàÉQA˜€«r/AlL ÖQA˜€ór/AlL æQA˜€Ns/AlL`ðQA˜€¸s/AlL üQA˜€~t/AlL@ €QA˜åt/AlL €QA˜u/AlL`€QA˜€lu/AlL`!€QA˜Âu/AlL '€QA˜'v/AlLà,€QA˜€†v/AlL 2€QA˜âv/AlL€8€QA˜,w/AlL ?€QA˜}w/AlL F€QA˜€Ûw/AlLN€QA˜ix/AlL@W€QA˜îx/AlLb€QA˜€Cy/AlLÀg€QA˜y/AlL`m€QA˜€ðy/AlL`s€QA˜€1z/AlL x€QA˜nz/AlL@|€QA˜€‚z/AlL`‚€QA˜€tz/AlL Š€QA˜€Qz/AlL ’€QA˜z/AlL ž€QA˜€éy/AlL ª€QA˜€Êy/AlL`¯€QA˜˜y/AlL€·€QA˜€@y/AlLÁ€QA˜Õx/AlLÔ€QA˜sx/AlL Ù€QA˜€x/AlL`߀QA˜¶w/AlL å€QA˜€‚w/AlLàê€QA˜^w/AlLàî€QA˜€6w/AlL`õ€QA˜€w/AlL ú€QA˜Ív/AlLQA˜v/AlL  QA˜{v/AlL`QA˜€þu/AlLàQA˜€¼u/AlL $QA˜‹u/AlL€)QA˜fu/AlL`.QA˜€0u/AlL€4QA˜€u/AlLà9QA˜€àt/AlL`>QA˜«t/AlL DQA˜€et/AlL JQA˜€t/AlL@RQA˜€Ès/AlL _QA˜©s/AlL eQA˜9s/AlLÀyQA˜s/AlL ‚QA˜ár/AlLàŠQA˜€Ær/AlL€–QA˜›r/AlLàœQA˜€br/AlL@¤QA˜;r/AlL`ªQA˜€!r/AlLÀ³QA˜€r/AlL¾QA˜Ûq/AlLÀÉQA˜€®q/AlL`ÕQA˜€¥q/AlL`áQA˜€žq/AlLàêQA˜‡q/AlLøQA˜€~q/AlL@‚QA˜€xq/AlLÀ ‚QA˜eq/AlL ‚QA˜€Hq/AlL@‚QA˜€ q/AlL@.‚QA˜ûp/AlL€;‚QA˜€Üp/AlLK‚QA˜€×p/AlLM‚QA˜Ðp/AlL€P‚QA˜€ºp/AlL X‚QA˜€–p/AlL c‚QA˜€jp/AlL x‚QA˜Op/AlL@‚QA˜p/AlL@™‚QA˜€p/AlLà¡‚QA˜Yp/AlL`ÂQA˜wp/AlL€Î‚QA˜rp/AlLÀÛ‚QA˜[p/AlL ç‚QA˜/p/AlL€õ‚QA˜ p/AlLý‚QA˜€îo/AlL ƒQA˜¹o/AlL  ƒQA˜€žo/AlL€ƒQA˜’o/AlL ƒQA˜o/AlL 'ƒQA˜€^o/AlL`2ƒQA˜€Eo/AlLBƒQA˜#o/AlL€QƒQA˜€o/AlLà`ƒQA˜Ón/AlLÀmƒQA˜€ªn/AlLÀqƒQA˜€rn/AlLÀ®ƒQA˜€Pn/AlLÀ¸ƒQA˜€Bn/AlLÀÃQA˜Kn/AlLà̓QA˜En/AlL`؃QA˜Cn/AlLãƒQA˜dn/AlL êƒQA˜qn/AlLàñƒQA˜€Žn/AlL€÷ƒQA˜€©n/AlL€üƒQA˜€Æn/AlL„QA˜ñn/AlL „QA˜€ún/AlL „QA˜ån/AlLÀ"„QA˜Ån/AlL€-„QA˜¸n/AlL:„QA˜€‰n/AlL D„QA˜€pn/AlLR„QA˜€Fn/AlL`\„QA˜)n/AlLf„QA˜n/AlL`p„QA˜=n/AlLÀ¢„QA˜€Hn/AlL ¨„QA˜€*n/AlL`¯„QA˜€.n/AlL@¶„QA˜€>n/AlL ½„QA˜€Sn/AlL ÄQA˜‰n/AlL Ä„QA˜€¨n/AlL Ê„QA˜în/AlL@Ë„QA˜.o/AlLÐÍ„QA˜€Žo/AlLpÌ„QA˜€Œo/AlL Ó„QA˜io/AlLàØ„QA˜Vo/AlLâ„QA˜€po/AlLè„QA˜‹o/AlL è„QA˜«o/AlL`é„QA˜€èo/AlL è„QA˜€.p/AlLÀê„QA˜€’p/AlL`ï„QA˜€ïp/AlL õ„QA˜Pq/AlLpú„QA˜€q/AlL ÷„QA˜€¸q/AlLðñ„QA˜€æq/AlLPó„QA˜ r/AlL`í„QA˜€,r/AlLç„QA˜€Lr/AlL ì„QA˜€rr/AlL€ñ„QA˜€ªr/AlL@ñ„QA˜îr/AlL`ð„QA˜€(s/AlL`ö„QA˜os/AlL€ù„QA˜Ãs/AlL@ú„QA˜€&t/AlL …QA˜€ft/AlL€ …QA˜€•t/AlL …QA˜Çt/AlLà…QA˜Õt/AlLÀ!…QA˜€ôt/AlL '…QA˜€gu/AlL/…QA˜ªu/AlL€-…QA˜ìu/AlL*…QA˜v/AlL€8…QA˜€Yv/AlLà>…QA˜yv/AlL J…QA˜¹v/AlL@V…QA˜€àv/AlL ^…QA˜€&w/AlLÀb…QA˜Žw/AlL€h…QA˜Äw/AlLpi…QA˜ÿw/AlL`d…QA˜\x/AlL€d…QA˜½x/AlL@^…QA˜éx/AlLàW…QA˜ˆy/AlLÀ[…QA˜áy/AlL_…QA˜€úy/AlL g…QA˜€z/AlLÀs…QA˜Az/AlL|…QA˜z/AlL`…QA˜:{/AlLà…QA˜€6|/AlL £…QA˜€‚|/AlL «…QA˜¯|/AlL@²…QA˜€Þ|/AlLà·…QA˜}/AlL¹…QA˜€)}/AlL²…QA˜}/AlL «…QA˜}/AlL ¤…QA˜S}/AlLТ…QA˜v}/AlLà§…QA˜€„}/AlL€®…QA˜€À}/AlL ³…QA˜€~/AlL ¶…QA˜€~/AlL@½…QA˜€~/AlLÀÅ…QA˜€[~/AlLàÒ…QA˜¼~/AlLÀÓ…QA˜ü~/AlL€×…QA˜€/AlL@Þ…QA˜;/AlL`è…QA˜[/AlL€ï…QA˜“/AlL€ó…QA˜È/AlLô…QA˜1€/AlL`ý…QA˜ƒ€/AlL@†QA˜ï€/AlL †QA˜€M/AlL†QA˜¡/AlL@ †QA˜€ë/AlLÀ †QA˜]‚/AlLà †QA˜¿‚/AlL@†QA˜9ƒ/AlLÀ†QA˜€¡ƒ/AlL@†QA˜€ „/AlLà#†QA˜€\„/AlLà"†QA˜€ƒ„/AlL`†QA˜€Õ„/AlL †QA˜€:…/AlLІQA˜€k…/AlL †QA˜€˜…/AlLP!†QA˜Ü…/AlL  †QA˜K†/AlL †QA˜§†/AlLP!†QA˜€Ù†/AlL°†QA˜€‡/AlL $†QA˜€0‡/AlL`.†QA˜€F‡/AlL 5†QA˜©‡/AlL=†QA˜Û‡/AlLÀ=†QA˜ˆ/AlL 9†QA˜€@ˆ/AlL@4†QA˜§ˆ/AlL -†QA˜€Ìˆ/AlLà#†QA5@Ì+0AlLàv¹QAÌ€îO0AlL ¯ÉQAeÌ€G0AlL‚ÉQAÌÀ00AlLàkÉQAÌ€!0AlL@^ÉQAÌ@*0AlLÀTÉQAÌ>0AlL0SÉQAÌJ0AlLNÉQAÌÀY0AlL°JÉQAÌ@P0AlLIÉQAÌ@Q0AlLEÉQAÌ@o0AlLð=ÉQAÌÀÌ0AlLP5ÉQAÌ0AlLÐ+ÉQAÌ@`0AlL€ ÉQAÌ@’0AlLÉQA̹0AlL0ÉQAÌÀd0AlL@*ÉQAÌ€ö0AlLJÉQAÌ@Ì0AlL€XÉQAÌ€¦0AlL`kÉQAÌÀ‹0AlL°ÉQAÌÀ†0AlL˜ÉQAÌ€†0AlLÀ©ÉQAÌÀ™0AlL¨ÉQAÌ@™0AlL‰ÉQAÌÀŸ0AlL0~ÉQAÌ€Ç0AlLÀdÉQAÌ@0AlL`FÉQAÌÀ‰0AlL &ÉQAÌ@ 0AlLàÉQAÌ@>0AlL`öÈQAÌÀS0AlL`õÈQAÌn0AlL õÈQAÌ€“0AlL@ðÈQAÌ@¶0AlLàîÈQAÌç0AlL íÈQAÌ@0AlLÀêÈQAÌ€0AlL éÈQAÌ@±0AlLàåÈQAÌÀ*0AlL€ãÈQAÌ™0AlL`äÈQAÌÀ0AlL@ßÈQAÌ@0AlLÀßÈQAÌ€0AlL`æÈQAÌÀ 0AlL`ëÈQAÌ€ê0AlLÀðÈQAÌÀz0AlLÀóÈQAÌÀ0AlLÀöÈQAÌ0AlLàöÈQAÌÀ0AlL ùÈQĄ0AlL ýÈQAÌ@Ø0AlL€ýÈQAÌñ0AlL þÈQAÌÀ0AlL€ÿÈQAÌ@C0AlLàÿÈQAÌs0AlL`ÉQAÌ@™0AlLàÉQAÌÀÄ0AlLàÉQAÌ@ì0AlLÀÉQAÌ€0AlLÀÉQAÌ/0AlL ÉQAÌW0AlL@ ÉQAÌs0AlL@ ÉQAÌÀ“0AlLÀ ÉQAÌÀ¹0AlLÀ ÉQAÌ€Õ0AlLÉQAÌ€N"0AlL`ÉQAÌ@š"0AlL %ÉQAÌ@ë"0AlL@(ÉQAÌ€§#0AlL`-ÉQAÌ-$0AlLð0ÉQAÌÀË$0AlL€8ÉQAÌ€ &0AlLpDÉQAÌ@Ç&0AlLðKÉQAÌ€:'0AlLKÉQAÌ€™'0AlL OÉQAÌÀÑ'0AlL TÉQAÌÀê'0AlL€UÉQAÌ@p(0AlL`WÉQAÌÀ‘(0AlL€XÉQAÌÀ¸)0AlL0‡ÈQA̽)0AlL „ÈQAÌ€Á)0AlLà€ÈQAÌÇ)0AlL}ÈQAÌ€T+0AlLàÈQAÌÀ¦+0AlLìÇQAÌ1,0AlLÀ»ÇQAÌ€–80AlLpKÄQAÌ œ80AlLÈIÄQAÌÀÐ:0AlL ²ÃQAÌ@o;0AlL`ÃQAÌÏ;0AlLÀwÃQAÌ@!<0AlLgÃQAÌÀv<0AlL QÃQAÌÀ·<0AlLà9ÃQAÌÀ =0AlLÀÃQAÌÀh=0AlL ÃQA̲=0AlL€ëÂQAÌ@ú=0AlL ×ÂQAÌÀ >0AlL ÄÂQAÌ`S>0AlL0´ÂQAÌZ>0AlL€³ÂQAÌ@i>0AlL²ÂQAÌ€r>0AlL²ÂQAÌ€|>0AlL`±ÂQAÌ€£>0AlL@«ÂQAÌÀÃ>0AlL`§ÂQAÌ€í>0AlLŸÂQAÌ?0AlL`šÂQAÌÀ?0AlL ÂQAÌ@;?0AlL@‹ÂQAÌÀk?0AlL ˆÂQAÌ@ª?0AlL`€ÂQAÌ@Û?0AlLàyÂQAÌ€@0AlL€oÂQAÌ@•@0AlL€]ÂQAÌ@»@0AlL`SÂQAÌã@0AlL€NÂQAÌ A0AlL HÂQAÌ€ê@0AlLÀAÂQAÌ@æ@0AlL 8ÂQAÌ€ô@0AlL 0ÂQAÌ€A0AlL )ÂQAÌ€þ@0AlL@ÂQAÌA0AlLÂQAÌ!A0AlL ÂQAÌ€)A0AlL€ÿÁQAÌ€'A0AlL õÁQAÌXA0AlL€ðÁQAÌ@oA0AlL ìÁQAÌ€eA0AlL äÁQAÌ@h@0AlL`­ÁQAÌo@0AlLà¦ÁQAÌÀž@0AlLàÁQAÌ@Þ@0AlL`ÁQAÌ@A0AlL pÁQAÌÀ)A0AlL@hÁQAÌUA0AlL€]ÁQAÌ€vA0AlLÀQÁQAÌÀ’A0AlL`JÁQAÌ@­A0AlL;ÁQAÌ@¯A0AlL0ÁQAÌ€«A0AlLp+ÁQAÌ@¦A0AlL%ÁQAÌ@¡A0AlL`ÁQAÌ@°A0AlLÀ ÁQAÌ@ÆA0AlL þÀQAÌÀäA0AlL@òÀQAÌ@ïA0AlL ìÀQAÌ€õA0AlL@åÀQAÌ@éA0AlLØÀQAÌ€àA0AlLÀËÀQAÌäA0AlL€ÂÀQAÌÀìA0AlL ¹ÀQAÌÀÿA0AlL`²ÀQAÌÀB0AlLà«ÀQAÌ@B0AlL€¢ÀQAÌÀ"B0AlL–ÀQAÌ,B0AlL ‹ÀQAÌ0B0AlLàÀQAÌÀ5B0AlL vÀQAÌ@:B0AlL`jÀQAÌÀGB0AlL`ZÀQAÌÀbB0AlL€TÀQAÌ@ŠB0AlL`RÀQAÌ€ºB0AlL€OÀQAÌ@îB0AlL JÀQAÌ€.C0AlLÀGÀQAÌ@VC0AlL`>ÀQAÌ€C0AlLà:ÀQAÌüC0AlLÀÀQAÌ@uD0AlL`î¿QAÌÀ™D0AlLàâ¿QAÌ@×D0AlL@Ü¿QAÌÀE0AlL`Í¿QAÌ€VE0AlLÀÀ¿QAÌÀäE0AlL`®¿QAÌ£F0AlLŽ¿QA̼F0AlL`Š¿QAÌ€ÐF0AlL ¿QAÌßF0AlLàq¿QAÌG0AlL€h¿QAÌ/G0AlL b¿QAÌ€gG0AlL`^¿QA̬G0AlLÀV¿QAÌÀÝG0AlLN¿QAÌ@H0AlLàH¿QAÌ€IH0AlL B¿QAÌ„H0AlL`>¿QAÌ@­H0AlL@;¿QAÌ¿H0AlLÀ1¿QAÌÛH0AlL@/¿QAÌ€I0AlL2¿QAÌ"I0AlL-¿QAÌ€'I0AlL'¿QAÌI0AlL¿QAÌ@I0AlL ¿QAÌÀI0AlL þ¾QAÌ'I0AlLÀú¾QAÌ€7I0AlLõ¾QAÌ@0I0AlL ë¾QAÌ@ I0AlL€ä¾QAÌÀI0AlLÀÚ¾QAÌ€JI0AlL Ò¾QAÌ€jI0AlL ϾQAÌ…I0AlLàʾQAÌ€¡I0AlL`ɾQAÌÉI0AlL€È¾QAÌ€ùI0AlL ȾQAÌ@4J0AlLàÆ¾QAÌÀbJ0AlL`žQAÌÀŒJ0AlLà¾QAÌÀ­J0AlL€À¾QAÌÀØJ0AlL`½¾QAÌ@9K0AlL€¬¾QAÌ@MK0AlLÀ¤¾QAÌÀaK0AlL`™¾QAÌvK0AlLà¾QAÌ‹K0AlL ƒ¾QAÌ@ K0AlLÀ|¾QAÌ€ÃK0AlL€q¾QAÌÀÛK0AlL`m¾QAÌÀ L0AlL@d¾QAÌ*L0AlL€`¾QAÌÀCL0AlL Z¾QAÌXL0AlL S¾QAÌÀ•L0AlL C¾QAÌ€¤L0AlLà9¾QA̶L0AlL`4¾QAÌÀÂL0AlL@.¾QAÌÑL0AlL€&¾QAÌÀÚL0AlLà¾QAÌ€ãL0AlL ¾QAÌÙL0AlL ¾QAÌÀ¿L0AlLÀ¾QAÌÀ–L0AlLà¾QAÌ@ZL0AlL€¾QAÌ@L0AlL€¾QAÌÀõK0AlL þ½QAÌÔK0AlLÀñ½QAÌ@»K0AlLæ½QAÌ€¬K0AlLàÙ½QAÌÀŠK0AlLÀ©½QAÌ@sK0AlL@’½QAÌÀtK0AlLà„½QAÌ@‡K0AlL u½QAÌ€ŸK0AlLd½QAÌ@ÈK0AlL@S½QAÌäK0AlLÀF½QAÌÀþK0AlL`=½QAÌÀ*L0AlL0½QAÌ€L0AlL€&½QAÌ@ùL0AlL€½QAÌÀ,M0AlL ½QAÌÀQM0AlL ½QAÌÀnM0AlL`þ¼QAÌxM0AlL@ö¼QAÌ€hM0AlLàï¼QAÌ€BM0AlL@ë¼QAÌÀ%M0AlL€æ¼QAÌ€M0AlLÀܼQAÌ€ûL0AlL Ô¼QAÌçL0AlLϼQAÌ@ØL0AlLàɼQAÌçL0AlL ļQAÌM0AlL๼QAÌ@-M0AlL€¶¼QAÌKM0AlL@´¼QAÌÀhM0AlL€²¼QAÌÀM0AlLÀ¯¼QAÌ®M0AlLÀ«¼QAÌ@ÆM0AlL ¨¼QAÌÖM0AlL ¢¼QAÌ€ÐM0AlL ˜¼QA̼M0AlL@“¼QAÌÀ¤M0AlL Œ¼QAÌ@•M0AlL€¼QAÌ@ŠM0AlLx¼QAÌ€†M0AlL`l¼QAÌ€†M0AlL@e¼QAÌ@ŒM0AlLà[¼QAÌÀM0AlL U¼QAÌ@“M0AlL°S¼QAÌšM0AlL@N¼QAÌÀ¥M0AlL`H¼QAÌ@ÀM0AlLà?¼QAÌÀÑM0AlL ;¼QAÌßM0AlL0¼QAÌòM0AlL`,¼QAÌ€N0AlL *¼QAÌÀ+N0AlL@'¼QAÌ@PN0AlLx¼QAÌ@mN0AlL€¼QAÌÀzN0AlL ¼QAÌ@’N0AlLà¼QAÌÀ­N0AlL€û»QAÌ€èN0AlLì»QAÌþN0AlLÀæ»QAÌ@O0AlLÀã»QAÌÀ6O0AlLÀÞ»QAÌ€`O0AlL`Õ»QAÌ€cO0AlL λQAÌ@^O0AlLÀÄ»QAÌ€WO0AlL`¼»QAÌ€^O0AlL`±»QAÌÀfO0AlL@¦»QAÌ€yO0AlL€ »QAÌ@—O0AlL€š»QA̵O0AlL@•»QAÌËO0AlL`Ž»QAÌ@ßO0AlL †»QAÌ@åO0AlL |»QAÌ€îO0AlL€t»QAÌ€ãO0AlL€i»QAÌ€6O0AlL€$»QAÌ€O0AlL`»QAÌ€O0AlL@ »QAÌ€ O0AlLàÿºQAÌO0AlL`óºQAÌ@ûN0AlL`çºQAÌ€ðN0AlL ÛºQAÌÙN0AlL@ÙºQAÌ€¿N0AlL׺QAÌN0AlL ͺQAÌ€†N0AlL ÃºQAÌ€yN0AlL ¸ºQAÌaN0AlL «ºQAÌGN0AlL਺QAÌÀN0AlL઺QAÌ€õM0AlL€±ºQAÌ@ÖM0AlL€µºQA̼M0AlL½ºQAÌ@hM0AlL0ͺQAÌ@=M0AlLàǺQAÌ€%M0AlLúQAÌÀ M0AlLÀ½ºQAÌîL0AlL€¹ºQAÌ@ÎL0AlL`ººQAÌÀ±L0AlL ¿ºQAÌ€“L0AlL`ºQAÌÀjL0AlLÀºQAÌ€ML0AlLÀÁºQAÌ@.L0AlL ÀºQAÌÀÿK0AlL`ºQAÌÀéK0AlLźQAÌ@ÇK0AlL ƺQA̬K0AlLàźQAÌÀŽK0AlL ÅºQAÌ@pK0AlL ĺQAÌÀMK0AlLÀÁºQAÌ@0K0AlL€¿ºQAÌK0AlLÀ¾ºQAÌÀðJ0AlL úQAÌ€ÐJ0AlL ÆºQA̺J0AlL@̺QAÌ€¬J0AlLÔºQAÌ@¬J0AlL ÜºQAÌŸJ0AlLâºQAÌ€„J0AlLàݺQAÌeJ0AlL@ÚºQAÌ€;J0AlL ÕºQAÌ@$J0AlL`κQAÌ@J0AlL€ÃºQAÌ€J0AlL€·ºQAÌ@ÔI0AlL`–ºQAÌ€¼I0AlLÀŽºQAÌ€ªI0AlL ŠºQAÌŽI0AlLà„ºQAÌÀdI0AlLÀ|ºQAÌÀJI0AlL yºQAÌ€,I0AlLÀuºQAÌ€I0AlL qºQAÌ@õH0AlL@jºQAÌÞH0AlL€`ºQAÌÀÉH0AlL YºQAÌ€·H0AlL€RºQAÌ@¢H0AlL`LºQAÌ€€H0AlL€FºQAÌÀLH0AlLÀ@ºQAÌH0AlLà>ºQAÌ€îG0AlL <ºQAÌ€ÂG0AlL ;ºQAÌ€‰G0AlLà9ºQAÌ^G0AlLÀ3ºQAÌ@%G0AlLÀ-ºQAÌ@ÙF0AlL %ºQA̤F0AlLÀ"ºQAÌ€F0AlLÀ"ºQAÌÒE0AlL %ºQAÌÀªE0AlL #ºQAÌ@E0AlLàºQAÌ€vE0AlLPºQAÌcE0AlLÀºQAÌÀ=E0AlLàºQAÌ€E0AlL ºQAÌ€ÙD0AlL@û¹QA̹D0AlL@ó¹QAÌ´D0AlLò¹QAÌŽD0AlL@é¹QAÌ€YD0AlLܹQAÌÀ1D0AlL€Ï¹QAÌ@(D0AlL€Æ¹QAÌ€ùC0AlL ¼¹QAÌäC0AlLÀ¶¹QAÌ@ÎC0AlL ²¹QAÌ@ºC0AlL®¹QAÌ£C0AlLÀ§¹QAÌ€C0AlL £¹QAÌ€\C0AlL ¹QAÌ@5C0AlL`¹QAÌC0AlL@™¹QAÌ€ÊB0AlL`’¹QAÌ@gB0AlLà‰¹QAÌ@+B0AlLÀ¹QAÌ@îA0AlLà{¹QA̼A0AlL@x¹QAÌ€šA0AlL`w¹QAÌoA0AlLàv¹QAÌ€9A0AlLÀz¹QAÌA0AlLÀ~¹QAÌÀœ@0AlL ¹QAÌe@0AlLà¹QAÌ÷?0AlLƒ¹QA̳?0AlLÀ¹QAÌ@b?0AlL`ƒ¹QAÌ>?0AlL€†¹QAÌÀ"?0AlL€‡¹QAÌÀô>0AlL@‰¹QAÌÏ>0AlL`‹¹QA̬>0AlL@޹QAÌ€‡>0AlL`–¹QAÌÀr>0AlL`œ¹QAÌ€`>0AlL€ ¹QAÌ@@>0AlL@§¹QAÌ@*>0AlL`ª¹QAÌÀ >0AlL ¯¹QAÌÀæ=0AlL µ¹QA̼=0AlLູQAÌ€‰=0AlL¿¹QAÌ€X=0AlLàÁ¹QAÌÙ<0AlL@ĹQAÌÀš<0AlLàʹQAÌ[<0AlL йQAÌ€<0AlL×¹QAÌß;0AlL€Þ¹QAÌ€‘;0AlL@í¹QAÌ@i;0AlL`ñ¹QAÌÀP;0AlLö¹QAÌ5;0AlL@û¹QAÌÀ;0AlLÿ¹QAÌ@ø:0AlLºQAÌ@Ñ:0AlL ºQAÌ@®:0AlL ºQAÌ€m:0AlL€ºQAÌ@P:0AlL€ºQAÌÀ::0AlL`!ºQAÌÀ:0AlL +ºQAÌ€ò90AlLÀ/ºQAÌÀ‚90AlL3ºQAÌd90AlL@5ºQAÌ€;90AlL :ºQAÌ@90AlL@AºQAÌÀ90AlL EºQAÌ@è80AlL@JºQAÌ@Â80AlL PºQAÌ@¯80AlL TºQAÌÀ80AlL \ºQAÌ@v80AlLà`ºQAÌÀ;80AlL`eºQAÌÀ 80AlL kºQAÌÀç70AlLqºQAÌÀ·70AlL@xºQAÌÀ70AlLÀ}ºQAÌ@970AlLà„ºQAÌ70AlL ˆºQAÌÀ’60AlL•ºQAÌ€460AlL@žºQAÌ@ 60AlL`¢ºQAÌ€ë50AlL€¤ºQAÌÀÆ50AlL`¦ºQAÌÀ¡50AlL@©ºQAÌ€t50AlL@¬ºQAÌ€;50AlL€®ºQAÌ50AlLÀ²ºQAÌ@Ø40AlL@´ºQAÌ 40AlLà·ºQAÌ€{40AlL@¼ºQAÌ.40AlL€ÊºQAÌ@‹30AlLÐØºQAÌ€x30AlL`ÚºQAÌÀ;30AlLàâºQAÌÀü20AlLàëºQAÌ€×20AlL@ðºQAÌ@·20AlLôºQAÌ@20AlLÀöºQAÌÀy20AlL úºQAÌ@720AlL`»QAÌ20AlL@»QAÌ€Ú10AlLÀ»QAÌÀ©10AlL »QAÌ€\10AlL`»QAÌÀ"10AlL`»QAÌ@õ00AlL »QAÌÈ00AlL`»QAÌ@¤00AlL@»QAÌ@€00AlLà»QAÌÀG00AlL`$»QAÌ00AlL@)»QAÌw/0AlL 8»QAÌÀ©.0AlL`I»QAÌÀ}.0AlLP»QAÌÀO.0AlL€V»QAÌ€®-0AlLÀa»QAÌ@|-0AlL e»QAÌ@H-0AlLk»QAÌ@!-0AlL q»QAÌÏ,0AlL€{»QAÌ@l+0AlLÀ»QAÌ@y*0AlL ­»QAÌ€Í)0AlL@¾»QAÌÀ¤)0AlLÀ»QAÌc)0AlL Ä»QAÌ@4)0AlL`Æ»QAÌ@ï(0AlL È»QAÌÀ˜(0AlLÌ»QAÌY(0AlL Í»QAÌÀ(0AlL@Ó»QAÌ@s'0AlL@à»QAÌ*'0AlLÀê»QAÌÒ&0AlLú»QAÌÀ¬&0AlL€¼QAÌÀ’&0AlL€¼QAÌ@g&0AlL  ¼QAÌ:&0AlL ¼QAÌÀ&0AlL`¼QAÌ€Å%0AlL !¼QAÌ@%0AlL€+¼QAÌÀe%0AlL@/¼QAÌß$0AlL€6¼QAÌ€×$0AlL°6¼QAÌ$0AlL 8¼QAÌ€4$0AlLÀ;¼QAÌ$0AlLð=¼QAÌ@Ó#0AlL`:¼QAÌ@§#0AlL 5¼QAÌ@e#0AlL -¼QAÌ8#0AlL€)¼QAÌÀ#0AlL€(¼QAÌÀÐ"0AlL@(¼QAÌ@©"0AlLÀ(¼QAÌ@„"0AlL +¼QAÌQ"0AlL 3¼QAÌ4"0AlL`8¼QAÌ€"0AlL@A¼QAÌ@Ë!0AlL`K¼QAÌÀ–!0AlL@S¼QAÌ@D!0AlLb¼QAÌ@ !0AlL@k¼QAÌ@¦ 0AlL z¼QAÌ@ 0AlLà}¼QAÌ@y 0AlL`¼QAÌ€I 0AlLÀ…¼QAÌ€2 0AlL`‰¼QAÌ 0AlLÀ¼QAÌÀó0AlL ޼QAÌ€Î0AlL@޼QAÌ€³0AlL޼QAÌ€‹0AlL@мQAÌÀm0AlLÀмQAÌÀ=0AlL ¼QAÌ€"0AlLÀ‘¼QAÌ 0AlL –¼QAÌï0AlLà›¼QAÌÀÎ0AlL  ¼QAÌÀ±0AlL §¼QAÌÀˆ0AlL@±¼QAÌÀk0AlL€·¼QAÌK0AlL@½¼QAÌÀ20AlL`Á¼QAÌ@0AlL`̼QAÌÍ0AlL€Ö¼QAÌ€¬0AlL Û¼QAÌ@—0AlL`à¼QAÌ~0AlL ç¼QAÌÀh0AlL ë¼QAÌ@Q0AlLð¼QAÌ@20AlL@ö¼QAÌ@ä0AlL½QAÌ€ 0AlL@%½QAÌ€…0AlL0*½QAÌ€0AlL +½QAÌ@K0AlL@.½QAÌÀ 0AlL@2½QAÌ€á0AlLÀ5½QA̬0AlLà=½QAÌ@~0AlL C½QAÌ@S0AlL I½QAÌ@*0AlLÀR½QAÌ0AlLà]½QAÌ€Ý0AlLf½QAÌ€²0AlLào½QAÌ@…0AlL z½QAÌÀ_0AlL@†½QAÌ€/0AlLÀ“½QAÌÀ0AlL ½QAÌÀß0AlL¤½QAÌ@¼0AlL «½QĄ0AlL௽QAÌŒ0AlLà¶½QAÌÀ}0AlL ¾½QAÌ@o0AlLÀƽQAÌ@c0AlL€Í½QAÌ€V0AlL Ú½QAÌ@ö0AlLÀ(¾QAÌÞ0AlLà6¾QAÌÇ0AlLÀ=¾QAÌ´0AlL°D¾QAÌÀ©0AlL H¾QAÌÀŒ0AlLàR¾QAÌÀf0AlLa¾QAÌ€S0AlLe¾QAÌ@0AlL`v¾QAÌ€ù0AlLà{¾QAÌÀÌ0AlLà€¾QAÌ€©0AlL¾QAÌÀu0AlLà…¾QAÌ€[0AlL`¾QAÌ€F0AlL ‘¾QAÌ€/0AlL€—¾QAÌ@#0AlL`Ÿ¾QAÌ0AlLÀª¾QAÌ0AlL`±¾QAÌ@ë0AlL·¾QAÌ€Õ0AlL À¾QAÌÀÁ0AlLàɾQAÌ€¯0AlL Ñ¾QAÌ€Ÿ0AlLàÞ¾QAÌ€•0AlLàí¾QAÌ€‹0AlLõ¾QAÌ€{0AlL€û¾QAÌÀ^0AlLÀ ¿QAÌ€Q0AlLà¿QAÌ€P0AlLà¿QAÌK0AlLà#¿QAÌ+0AlL<¿QAÌÿ0AlLÀL¿QAÌæ0AlL€[¿QAÌ@Ï0AlLàc¿QAÌÀœ0AlL€l¿QAÌ@H0AlLà}¿QAÌ€0AlLÀ‹¿QAÌ@ß0AlL@ÀQAÌÀ00AlLÀQAÌ€n0AlL ÀQAÌ@‰0AlLÀ$ÀQAÌÀ¡0AlLÀ-ÀQAÌÀŸ0AlL@5ÀQAÌŒ0AlLà:ÀQAÌX0AlL AÀQAÌ€>0AlL EÀQAÌ@&0AlLÀIÀQAÌÀ0AlL NÀQAÌÀý0AlLàUÀQAÌ€ñ0AlLÀ]ÀQAÌ@á0AlL@hÀQAÌÀÍ0AlLqÀQAÌ€0AlL`xÀQAÌw0AlLÀ|ÀQAÌ€q0AlLp„ÀQAÌQ0AlL ±ÀQAÌ€D0AlLàÈÀQAÌC0AlL ÑÀQAÌ?0AlLàÜÀQAÌ€-0AlL@ïÀQAÌ@0AlL€÷ÀQAÌ0AlLà ÁQAÌ@÷0AlL€ÁQAÌÀñ0AlLÀÁQAÌÀ 0AlL DÁQAÌ)0AlL dÁQAÌ@70AlLÀxÁQAÌ€P0AlL@’ÁQAÌ@g0AlL®ÁQAÌ@i0AlL`°ÁQAÌÀ%0AlL€ºÁQAÌÀù0AlLàÀÁQAÌ@¿0AlLàËÁQAÌ€Œ0AlLÀÔÁQAÌÀH0AlLàÜÁQAÌ0AlLÀâÁQAÌ€Ù0AlLÀéÁQA̯0AlL òÁQAÌ@‰0AlL€ûÁQAÌ@W0AlL@ ÂQAÌ@80AlLÀÂQAÌ0AlL` ÂQAÌ@¿0AlL€)ÂQAÌ@w0AlL 2ÂQAÌÀë0AlLÀ?ÂQAÌ@<0AlLÀNÂQAÌÀÿ0AlLÀ]ÂQAÌ·0AlL fÂQAÌk0AlL€kÂQAÌ@+0AlL€tÂQAÌÀ 0AlL}ÂQAÌ€~0AlL „ÂQAÌ@[0AlLà‰ÂQAÌ@"0AlL€’ÂQAÌ@ª0AlLÀÂQA̤0AlLÀ³ÂQAÌ@Ú0AlL€®ÂQÃ0AlL@ªÂQAÌÀO0AlL@¦ÂQAÌ€0AlLà¢ÂQAÌæ 0AlL ›ÂQAÌ¢ 0AlL ŒÂQAÌ@c 0AlL ~ÂQAÌ€0 0AlLvÂQAÌ@ 0AlLvÂQAÌÀï 0AlLàvÂQAÌÚ 0AlL€yÂQA̺ 0AlLÀƒÂQAÌÀ¤ 0AlL`ŠÂQAÌÀ• 0AlLÀ‘ÂQAÌÀ‡ 0AlL@œÂQAÌ€x 0AlLÀ£ÂQAÌ€c 0AlL€§ÂQAÌ@M 0AlLàªÂQAÌ! 0AlLÀªÂQAÌ€û 0AlLà«ÂQAÌÀ— 0AlL€¯ÂQAÌ€f 0AlL ³ÂQAÌÀ! 0AlL`´ÂQAÌ@þ 0AlL ¹ÂQAÌÀÑ 0AlL ÄÂQAÌÀ¡ 0AlLàÊÂQAÌ} 0AlLÀÚÂQAÌ€q 0AlL ãÂQAÌo 0AlL ïÂQAÌÀ` 0AlL@ÿÂQAÌ@K 0AlL€ ÃQAÌ@( 0AlL`ÃQAÌ€ 0AlL@ÃQAÌ@æ 0AlL ÃQAÌÑ 0AlL€%ÃQAÌ€º 0AlL *ÃQAÌÀ§ 0AlL`0ÃQAÌ{ 0AlLà5ÃQAÌT 0AlL8ÃQAÌ€/ 0AlL AÃQAÌÀ 0AlL MÃQAÌ€è0AlLXÃQAÌ€Ù0AlL€bÃQAÌÔ0AlLlÃQAÌ@Õ0AlL vÃQAÌ€Ó0AlL`ÃQAÌ@Û0AlL ™ÃQAÌ€ 0AlL@ÈÃQAÌ€ 0AlL0ÑÃQAÌ€ 0AlL ÒÃQAÌ@ 0AlL@ÞÃQAÌ€õ0AlL`èÃQAÌ@ë0AlLôÃQAÌ€ã0AlL€ÄQAÌÆ0AlLÀÄQAÌÀ·0AlLàÄQAÌ«0AlL`!ÄQAÌ@“0AlL 9ÄQAÌ€-0AlLÀ}ÄQAÌÀ0AlL`ŽÄQAÌ€0AlL`™ÄQAÌ0AlL@¢ÄQAÌ@ú0AlLÀ²ÄQAÌ÷0AlL@¾ÄQAÌ€é0AlL ÒÄQAÌÙ0AlLàÝÄQAÌ@¸0AlL€òÄQAÌ©0AlLÅQAÌ@0AlL ÅQẢ0AlL  ÅQAÌ„0AlLÀ5ÅQAÌ@ 0AlLàQÅQAÌ€ª0AlL`gÅQAÌ®0AlLàsÅQAÌ€¤0AlL ‘ÅQAÌ0AlLžÅQAÌ€œ0AlL`®ÅQAÌ@™0AlL`ºÅQAÌ0AlLÉÅQAÌ@{0AlLÖÅQAÌ@Z0AlL@àÅQAÌÀE0AlL€ïÅQAÌ€50AlL€÷ÅQAÌ+0AlL`ÆQAÌÀ,0AlL€ÆQAÌ€C0AlL€ÆQAÌ€±0AlL`7ÆQAÌ€Ñ0AlLà>ÆQAÌõ0AlL LÆQAÌ€0AlL`VÆQAÌT0AlL `ÆQÃ0AlL€hÆQAÌÀ¯0AlL qÆQA̺0AlLàsÆQAÌñ0AlLàÆQAÌÿ0AlL ‹ÆQAÌÀJ 0AlL ÊÆQAÌ€l 0AlL0àÆQAÌ€v 0AlL€æÆQAÌ€ 0AlL üÆQA̹ 0AlLÇQAÌ@Í 0AlL€!ÇQAÌÀó 0AlL€9ÇQAÌÀ 0AlL@IÇQAÌ? 0AlL@^ÇQAÌt 0AlL nÇQAÌ@¡ 0AlL€|ÇQA̹ 0AlL „ÇQAÌÀÅ 0AlLÀÇQAÌÀ½ 0AlLà¢ÇQAÌÀª 0AlL€´ÇQAÌÀ£ 0AlLàÁÇQAÌ€˜ 0AlL€ÍÇQAÌ@´ 0AlLÐÜÇQAÌ€ 0AlL@ûÇQAÌÀ/ 0AlL€ ÈQAÌ€b 0AlL@ÈQA̪ 0AlLà#ÈQAÌù 0AlL@0ÈQAÌ€ 0AlLÀ=ÈQAÌÀH 0AlL LÈQAÌ€` 0AlLàUÈQAÌÀ† 0AlL`cÈQAÌÀ¤ 0AlL kÈQAÌç 0AlL yÈQAÌþ 0AlL`…ÈQAÌ€ 0AlL ™ÈQAÌ€ 0AlL`§ÈQAÌ€ 0AlL³ÈQAÌ! 0AlL ÃÈQAÌÀ3 0AlL€ËÈQAÌÀ> 0AlL€ÒÈQAÌU 0AlL`ÙÈQAÌ€o 0AlLçÈQAÌ@ 0AlLÀëÈQAÌÀª 0AlL õÈQAÌ@Í 0AlL ÿÈQAÌÀ-0AlLàÉQAÌÀ”0AlL`BÉQAÌÀî0AlL`dÉQAÌ€#0AlL€{ÉQAÌ@>0AlLÀyÉQAÌÀ^0AlLp}ÉQA̽0AlL ˆÉQAÌÀß0AlL°…ÉQAÌÀú0AlL ‚ÉQAÌ€ 0AlLÀ|ÉQAÌ€D0AlLàyÉQAÌY0AlL@zÉQAÌ@s0AlLPvÉQȦ0AlL€pÉQAÌý0AlL wÉQAÌ0AlLvÉQAÌ+0AlLðvÉQAÌ@:0AlLÀŠÉQAÌ€B0AlLПÉQAÌ€I0AlL ¯ÉQAÌZ0AlLà®ÉQAÌQ0AlLЙÉQAÌ€G0AlL‚ÉQA6˜˜ÑÎ/AlLàánQAÌ€ö10AlL/{QA°˜€«Ï/AlL-{QA˜€@Ð/AlL`'{QA˜€{Ð/AlLà({QA˜€ÞÐ/AlL%{QA˜€&Ñ/AlL`"{QA˜€|Ñ/AlL@{QA˜ÈÑ/AlL {QA˜&Ò/AlLà{QA˜€†Ò/AlL@{QA˜îÒ/AlLÀ{QA˜€vÓ/AlL@{QA˜€Ô/AlL þzQA˜€nÔ/AlL ÿzQA˜€ýÔ/AlL {QA˜€¡Õ/AlL{QA˜€Ö/AlL ýzQA˜€†Ö/AlL özQA˜€%×/AlL@ìzQA˜€†×/AlLäzQA˜€Í×/AlL ßzQA˜+Ø/AlL ÖzQA˜€rØ/AlL ÑzQA˜€¥Ø/AlL ÏzQA˜€ÔØ/AlLÕzQA˜€ëØ/AlL€ÚzQA˜€!Ù/AlLÀÛzQA˜µÙ/AlLÀÓzQA˜€9Ú/AlLÀÈzQA˜€´Ú/AlLÁzQA˜€3Û/AlL ¶zQA˜€Û/AlLà­zQA˜MÜ/AlLà£zQA˜€½Ü/AlL zQA˜QÝ/AlL@˜zQA˜€ÑÝ/AlL ‘zQA˜€]Þ/AlL@‹zQA˜€ãÞ/AlL …zQA˜€9ß/AlL`ƒzQA˜€§ß/AlL`zQA˜€à/AlL zQA˜€‚à/AlL@‚zQA˜ôà/AlL„zQA˜€Oá/AlL@†zQA˜Ûá/AlL€„zQA˜€™â/AlL ‚zQA˜€ã/AlL`|zQA˜€{ã/AlLÀuzQA˜€Ùã/AlLÀozQA˜0ä/AlLàkzQA˜—ä/AlLÀczQA˜ùä/AlL`^zQA˜€‚å/AlLÀ\zQA˜׿/AlL`TzQA˜€ïç/AlL`WzQA˜qè/AlL UzQA˜€ùè/AlLOzQA˜é/AlL`HzQA˜€÷é/AlLGzQA˜€{ê/AlL KzQA˜òê/AlL OzQA˜ ì/AlL [zQA˜€´ì/AlL ZzQA˜€Óì/AlLà`zQA˜=í/AlLàbzQA˜€˜í/AlL ^zQA˜€Yî/AlL@ZzQA˜¬î/AlL`ZzQA˜þî/AlL ^zQA˜-ï/AlL€_zQA˜€iï/AlL `zQA˜€Ôï/AlL€_zQA˜ð/AlL UzQA˜€îï/AlLàFzQA˜µï/AlLÀ:zQA˜€‘ï/AlL 2zQA˜Vï/AlL )zQA˜€þî/AlLzQA˜€¨î/AlL zQA˜€„î/AlL@zQA˜€¨î/AlLÀóyQA˜Úî/AlLàéyQA˜ï/AlLÀÚyQA˜€!ï/AlL`ÏyQA˜€(ï/AlL ÅyQA˜€Rï/AlL ´yQA˜€tï/AlL`­yQA˜Œï/AlLÀŸyQA˜€Šï/AlLà—yQA˜€ïï/AlLÀyQA˜Að/AlLà‰yQA˜Ñð/AlL „yQA˜€#ñ/AlLyQA˜€žñ/AlL`|yQA˜€üñ/AlLàryQA˜<ò/AlLÀeyQA˜]ò/AlLZyQA˜†ò/AlLàPyQA˜€Öò/AlL€XyQA˜€,ó/AlL ayQA˜€·ó/AlLUyQA˜*ô/AlL`JyQA˜€“ô/AlL€>yQA˜€æô/AlLà2yQA˜€bõ/AlLà!yQA˜€­õ/AlL yQA˜€ýõ/AlL€ yQA˜#ö/AlLàyQA˜€yö/AlL@ûxQA˜€Äö/AlLàòxQA˜ûö/AlLëxQA˜€N÷/AlLàáxQA˜ª÷/AlLÀÜxQA˜ ø/AlL€ÔxQA˜€Xø/AlL ÏxQA˜¡ø/AlL@ÈxQA˜€°ø/AlLÀÆxQA˜€úø/AlL`¿xQA˜Xù/AlL ¶xQA˜€Íù/AlL ­xQA˜€1ú/AlL`¢xQA˜€¥ú/AlL`–xQA˜€û/AlLÀ‰xQA˜€Ÿû/AlL@xxQA˜€ëû/AlL`nxQA˜€Cü/AlL _xQA˜€rü/AlLàPxQA˜€›ü/AlLà?xQA˜€äü/AlL xQA˜õü/AlL òwQA˜ý/AlL€æwQA˜€=ý/AlL€àwQA˜ký/AlLÀÚwQA˜€›ý/AlL ÓwQA˜€Áý/AlL`ÅwQA˜Äý/AlLà¼wQA˜qþ/AlL ¹wQA˜€ºþ/AlL·wQA˜€ûþ/AlL€²wQA˜€ÿ/AlLÀ¬wQA˜ýþ/AlL@¥wQA˜€Ûþ/AlL œwQA˜&ÿ/AlL ‘wQA˜€nÿ/AlL‡wQA˜€¬ÿ/AlL`xwQA˜€Øÿ/AlL@gwQA˜€ýÿ/AlL`WwQAÌÀ0AlLÀLwQAÌ@*0AlL€DwQAÌ@?0AlL =wQAÌ€U0AlL€2wQAÌr0AlL "wQAÌ@•0AlL wQA̪0AlLàwQAÌÀ¹0AlL`ùvQAÌ@â0AlL åvQAÌ@ã0AlLàÚvQAÌ€0AlLÀÏvQAÌÀ0AlL`ÈvQAÌ@(0AlLà¿vQAÌ€C0AlL¸vQAÌ@`0AlL€®vQAÌ@x0AlL ¤vQAÌš0AlLàšvQAÌ@¼0AlL vQAÌ€Ý0AlL`…vQAÌÀú0AlL`}vQAÌÀ0AlL@svQAÌ€V0AlL`TvQAÌÀ€0AlL@BvQAÌ@ª0AlL`6vQAÌ€Î0AlL@(vQAÌÀö0AlLàvQAÌ€&0AlL vQAÌÀ]0AlL þuQAÌ@|0AlL òuQAÌ€°0AlL`àuQAÌÖ0AlL€ÑuQAÌø0AlLÀÃuQAÌ+0AlL§uQAÌ@O0AlL•uQAÌw0AlLuQAÌÀ–0AlL@tuQAÌ*0AlL€vuQAÌS0AlL`xuQAÌ€x0AlL zuQAÌÀ°0AlLà}uQAÌ@ð0AlL@uQAÌ€80AlL€…uQAÌ{0AlL ‰uQAÌ@Æ0AlLÀuQAÌÀ0AlLÀuQAÌh0AlL`’uQAÌ€Æ0AlL€•uQAÌÀ.0AlLÀ–uQAÌu0AlL@˜uQAÌ Ã0AlLð•uQAÌ@Ñ0AlL@”uQAÌ@ 0AlL ˆuQAÌ€. 0AlL`cuQAÌ5 0AlL SuQAÌ€: 0AlL FuQAÌ€< 0AlLÀ4uQAÌÀ? 0AlL@(uQAÌÀE 0AlLÀuQAÌG 0AlL€ uQAÌÀÑ 0AlLàêtQAÌÀ 0AlL`àtQAÌq 0AlLÀÈtQAÌ© 0AlL`»tQA̽ 0AlL`ªtQAÌ@Õ 0AlL`štQAÌÀ3 0AlLà}tQAÌß 0AlLàXtQAÌÀ 0AlL OtQAÌÀ. 0AlLàItQAÌT 0AlL@FtQAÌÀ 0AlLAtQAÌ@¾ 0AlL@tQAÌì 0AlL€=tQAÌÀ 0AlLÀ¼_ÿZoQA¼jD.È)0Aj²÷ØXoQA̰°)0AlL@PoQA̰Š)0AlL@EoQAÌU)0AlL@7oQAÌÀ)0AlL@,oQAÌ@ß(0AlL`oQAÌðœ(0AlL`oQAÌÀS(0AlLoQAÌð*(0AlL€&oQAÌ@(0AlL€/oQAÌðß'0AlL :oQAÌÀ˜'0AlLà8oQAÌ@a'0AlL /oQAÌ0?'0AlLÀ'oQAÌp÷&0AlL!oQAÌp¶&0AlLàoQAÌŠ&0AlLàoQAÌð~&0AlLàoQAXžæ&0A¼Ù—Z-oQAÌö%0AlL /oQAÌ€¥%0AlL :oQAÐ~ƒÔk%0A(RHCoQAÌ€A%0AlLJoQAÌðÔ$0AlL`ToQAÌÀl$0AlL YoQAÌ$0AlL€WoQAÌ@Ì#0AlLJoQAÌÀ€#0AlL@JoQAÌA#0AlL@OoQAèñZ‡,#0At‰›=XoQA¤³r #0A¼H{]oQAÌðé"0AlL uoQAÌÀs"0AlL ŸoQA̰T"0AlL`©oQAÌ7"0AlLºoQAÌ "0AlL`ÇoQAÌðà!0AlL ÎoQAÌ0®!0AlL ÖoQAÌð…!0AlL`ÓoQAÌp`!0AlL@ÍoQAÌ0#!0AlL`ÅoQAÌðÞ 0AlL ½oQAÌ€š 0AlLÀ¹oQAdä Øt 0ARŒ¤ ´oQAÌpa 0AlL ±oQA̰) 0AlL`«oQAÌðë0AlLà¨oQA̰¦0AlL@¬oQA¬=’`•0A ‰,¸¯oQAÌÀf0AlL ¹oQAÌ00AlL ÇoQAÌÀä0AlL`ÓoQAÌ€Š0AlL äoQAÌ@a0AlLèoQAÌ@50AlLÀíoQAÌð0AlL ôoQAÌÀ­0AlLøoQA„”~Ðu0A¼Ù—ÞùoQA̰n0AlL úoQAÌ20AlL ûoQAÌ0Ó0AlLÀüoQAÌð¢0AlL ùoQAÌ0z0AlL óoQAÌ000AlL`îoQAö°E*0AØ3üÙíoQAÌ€ß0AlL`çoQAÌp¬0AlLãoQAÌÀ0AlL€ÙoQAÌY0AlLÀÌoQAÌ0AlLàÃoQATjÕìð0AJ¾Š²ÂoQA8Ìvóê0A6C}ÂoQAÌÀ0AlLüÀoQAÌ@l0AlL»oQAÌp$0AlL€²oQAÌðá0AlL¤oQAÌp¨0AlLšoQAÌ@h0AlL •oQAÔ!Ï 0AN¼ù—oQAÌðÐ0AlL@šoQAÌp”0AlLžoQA̰q0AlL` oQAÌ0H0AlL¥oQAÌ00AlL@«oQATûSXý0Aÿ °oQAÌ ß0AlLµoQAÌp®0AlL€½oQA̰~0AlL ÂoQAÌ M0AlL`ÇoQA̰0AlL ËoQAÌ0ò0AlL ÌoQAÌ —0AlLÀÁoQAÌ`d0AlLºoQAÌ0D0AlL ²oQAÌ`20AlL£oQA<Õƒ0A*þ™oQAÌ 0AlL –oQAÌ`Ø0AlL ‡oQA̰ˆ0AlL`}oQAÌxÐX0Aàp—×{oQAÌð50AlLÀzoQAÌðà0AlL@|oQA̰¯0AlLŠoQA@ ™z0A Ö°õ“oQAÌpb0AlL€˜oQAÌ`D0AlLà¢oQAÌðø0AlLÀ¥oQAÌ`¤0AlL`ªoQAÌ  0AlL€´oQAÌàµ0AlL²oQAÌ0u0AlL`®oQA˜J?b0Až¡0b¬oQAÌ€90AlL ¨oQAÌà0AlL ŸoQAÌ@ã0AlL€•oQAÌð³0AlL ‹oQAÌ…0AlLÀ~oQAÌpB0AlLxoQAÌ0AlLÀtoQA̰Õ0AlL toQAÌÀŽ0AlL€}oQAÌH0AlL ~oQAÌð0AlL }oQAx´Pàé0ADÎsÆvoQAÌ@¶0AlLÀnoQAÌÀ¤0AlL eoQAÌ€—0AlL _oQAÌðŠ0AlL€VoQAÌpz0AlL@NoQAÌ@d0AlL€EoQA̰N0AlLÀ>oQAÌ€=0AlLÀ8oQA̰30AlL¼6oQAÌp0AlL 1oQAÌ€0AlLœ.oQAÌpî0AlL`)oQAä5U5Ú0AòUõ'oQAÌÀ»0AlL /oQĄ0AlL 6oQAÌ@€0AlL€>oQAÌ@X0AlL IoQAÌ@C0AlLSoQAÌ@-0AlLÀZoQAÌÀ 0AlLàeoQAÌà 0AlLÀooQAÌ´ 0AlLyoQAÌ€} 0AlL@…oQAÌ@S 0AlLÀ’oQAÌ 0AlL ¡oQAÌÀû 0AlL@­oQAÌÀ» 0AlLÅoQAÌw 0AlLÀÛoQAÌ€W 0AlLèoQAÌ@7 0AlL€öoQAÌ@ü 0AlL pQAÌé 0AlL`pQAÌÊ 0AlLàpQAÌ@™ 0AlL )pQAÌ@_ 0AlL€:pQAÌ@" 0AlLÀJpQAÌô 0AlLVpQAÌ@ 0AlL€bpQAÌ¢ 0AlLmpQAÌÀt 0AlL`xpQAÌ€I 0AlL ‡pQAÌÀ% 0AlL “pQAÌ€ 0AlLàpQAÌÀ× 0AlL€«pQAÌÀµ 0AlL ´pQAÌÀ’ 0AlL ¼pQAÌ€Y 0AlL€ÇpQAÌ@. 0AlL€ÑpQAÌ€þ0AlL@ÛpQAÌÀß0AlL€àpQAÌÀÇ0AlL`çpQAÌ@0AlLêpQAÌ@Ž0AlL äpQAÌ€y0AlLßpQAÌR0AlL€ØpQAÌ@+0AlL ÓpQAÌ€0AlLÎpQAÌ€ä0AlLÆpQAÌ@Ê0AlL@¿pQA̬0AlL¸pQAÌ}0AlL ¬pQAÌÀV0AlLà pQAÌ€0AlLpQAÌÀî0AlL`~pQAÌÕ0AlLàtpQAÌ@«0AlL lpQAÌ@z0AlL€gpQAÌ@P0AlLcpQAÌÀ0AlLTpQAÌÀÛ0AlLHpQAÌ@“0AlLÀ6pQAÌÀ_0AlL€/pQAÌ30AlLÀ*pQAÌÀî0AlLÀ%pQAÌ@¯0AlLàpQAÌf0AlL pQAÌÀ/0AlLàpQAÌÀ0AlLP pQAÌ@ù0AlLàpQAÌÀ¼0AlL@pQAÌ@p0AlLÀûoQAÌ60AlL ÷oQAÌì0AlLàõoQAÌ€¯0AlL õoQAÌ€Û0AlL`ëoQAÌ“0AlLàêoQAÌÀP0AlL€íoQAÌ€0AlL ñoQAÌ€Þ0AlLàóoQAÌ@‘0AlL€òoQAÌ@T0AlL0ïoQAÌE0AlL`îoQA˜€“ÿ/AlL€èoQA˜“þ/AlLæoQA˜€þ/AlLÀåoQA˜€ý/AlL`æoQA˜€ý/AlL èoQA˜€qü/AlL`êoQA˜ú/AlLÀæoQA˜”ù/AlL`åoQA˜€ðø/AlL ãoQA˜€iø/AlLÀâoQA˜€ø/AlL@áoQA˜€Ÿ÷/AlLÞoQA˜*÷/AlLÛoQA˜€±ö/AlL ÚoQA˜€Bö/AlLÀÚoQA˜€Êõ/AlL@ÞoQA˜€Põ/AlL ãoQA˜€âô/AlL@ìoQA˜€‘ô/AlL öoQA˜€aô/AlL@ÿoQA˜€"ô/AlLà pQA˜€ûó/AlLàpQA˜€Áó/AlL pQA˜€zó/AlLÀpQA˜€ó/AlL  pQA˜€Áò/AlL@#pQA˜€mò/AlL€&pQA˜€=ò/AlL (pQA˜âñ/AlL€*pQA˜«ñ/AlL-pQA˜€‘ñ/AlL .pQA˜€ñ/AlL 2pQA˜€vð/AlL3pQA˜€ ð/AlL0pQA˜€lï/AlL -pQA˜ï/AlLÀ6pQA˜€üî/AlL BpQA˜€¬î/AlLÀSpQA˜€Kî/AlLfpQA˜€î/AlL`qpQA˜€Úí/AlL€€pQA˜€í/AlL ŽpQA˜€Xí/AlL€œpQA˜€í/AlL€§pQA˜€áì/AlLà²pQA˜€©ì/AlLÀÀpQA˜qì/AlL`ÏpQA˜"ì/AlL€âpQA˜€Óë/AlL`ípQA˜€€ë/AlL@öpQA˜ë/AlL€qQA˜yê/AlL qQA˜€<ê/AlLqQA˜€ê/AlL@#qQA˜€ê/AlLà,qQA˜€üé/AlL6qQA˜Éé/AlL°CqQA˜€‘é/AlLÀBqQA˜€^é/AlL@qQA˜€/é/AlL`>qQA˜Åè/AlL`uQA˜€Û/AlL EuQA˜€GÛ/AlL@RuQA˜€bÛ/AlL cuQA˜€OÛ/AlL€ruQA˜Û/AlL |uQA˜€îÚ/AlL@…uQA˜ÒÚ/AlL`‘uQA˜€ÇÚ/AlL` uQA˜€ÂÚ/AlL ©uQA˜€ÓÚ/AlL µuQA˜€åÚ/AlLÀ½uQA˜€Û/AlL€ÈuQA˜YÛ/AlL ÒuQA˜€–Û/AlLÛuQA˜€ÚÛ/AlL`ãuQA˜€)Ü/AlL íuQA˜€\Ü/AlL óuQA˜€•Ü/AlL`ùuQA˜€ØÜ/AlLÀÿuQA˜€#Ý/AlL vQA˜€‹Ý/AlL vQA˜€ïÝ/AlL€vQA˜€‰Þ/AlL`vQA˜€ôÞ/AlLà"vQA˜€™ß/AlL)vQA˜à/AlL@-vQA˜€—à/AlLÀ3vQA˜€åà/AlL@8vQA˜€6á/AlL@;vQA˜€“á/AlLÀ@vQA˜€ìá/AlLÀCvQA˜€2â/AlLHvQA˜€qâ/AlL@KvQA˜€­â/AlL€OvQA˜€Éâ/AlL VvQA˜€Õâ/AlL€]vQA˜€ßâ/AlLàhvQA˜Þâ/AlL`ovQA˜€òâ/AlLàvvQA˜€øâ/AlLÀƒvQA˜€üâ/AlL ‹vQA˜€ûâ/AlL`™vQA˜€ïâ/AlL` vQA˜€ñâ/AlL ªvQA˜öâ/AlL€±vQA˜€ã/AlL ¹vQA˜ã/AlL`¾vQA˜€Tã/AlL`ÃvQA˜€‡ã/AlL ÅvQA˜Ôã/AlL@ÅvQA˜€ ä/AlL€ÃvQA˜€Nä/AlL`ÂvQA˜€ƒä/AlLÀÈvQA˜€³ä/AlL€ÍvQA˜å/AlL`ÔvQA˜)å/AlL ÙvQA˜€)å/AlL˜ßvQA˜€Øä/AlL@èvQA˜€”ä/AlL ëvQA˜€Oä/AlLàòvQA˜€ä/AlL@ývQA˜€ ä/AlL wQA˜€îã/AlL  wQA˜Ïã/AlL@wQA˜€—ã/AlL€wQA˜€nã/AlL wQA˜€0ã/AlL wQA˜€èâ/AlLà$wQA˜€¦â/AlL@+wQA˜fâ/AlL2wQA˜€ãá/AlLÀCwQA˜€¢á/AlL€LwQA˜{á/AlLÀUwQA˜Sá/AlL@`wQA˜€#á/AlL jwQA˜€øà/AlL€vwQA˜Üà/AlL`wQA˜€½à/AlL ŒwQA˜€›à/AlLà“wQA˜kà/AlL ŸwQA˜Ià/AlL ©wQA˜€à/AlL ·wQA˜âß/AlL ÀwQA˜€¾ß/AlL`ÊwQA˜€'ß/AlL@êwQA˜€÷Þ/AlL ôwQA˜€ÄÞ/AlLþwQA˜€“Þ/AlLà xQA˜€cÞ/AlL@xQA˜€2Þ/AlL@ xQA˜€ôÝ/AlL€.xQA˜€®Ý/AlLÀ>xQA˜€]Ý/AlL OxQA˜€Ý/AlL@[xQA˜€Ü/AlL€nxQA˜€\Ü/AlLÀyxQA˜€Ü/AlL@ŒxQA˜€¢Û/AlL ŸxQA˜3Û/AlLÀ¯xQA˜€ÅÚ/AlLà¿xQA˜€kÚ/AlL€ÑxQA˜€Ú/AlLàÜxQA˜€†Ù/AlL ðxQA˜$Ù/AlL yQA˜¨Ø/AlL0yQA˜€“Ø/AlLÀyQA˜Ø/AlL`+yQA˜€å×/AlL:yQA˜€«×/AlL`AyQA˜€h×/AlLMyQA˜€×/AlL RyQA˜€¸Ö/AlL`UyQA˜€€Ö/AlLàXyQA˜€Ö/AlL@gyQA˜€âÕ/AlLàpyQA˜¡Õ/AlL yyQA˜€qÕ/AlL@yQA˜€>Õ/AlL ˆyQA˜€Õ/AlL ‘yQA˜ðÔ/AlL`šyQA˜¤Ô/AlL€¤yQA˜€:Ô/AlL`±yQA˜€ÛÓ/AlLà¼yQA˜€‡Ó/AlL€ÆyQA˜€/Ó/AlL@ÐyQA˜€ÙÒ/AlL`ÝyQA˜€}Ò/AlL èyQA˜€ÕÑ/AlLàzQA˜€qÑ/AlL`zQA˜€Ñ/AlL zQA˜€ŠÐ/AlL€0zQA˜6Ð/AlL ?zQA˜€×Ï/AlL IzQA˜€Ï/AlL@TzQA˜€&Ï/AlL@czQA˜ÑÎ/AlLàhzQA˜€ûÎ/AlLszQA˜€Ï/AlLà|zQA˜BÏ/AlL‰zQA˜€XÏ/AlL@šzQA˜€\Ï/AlLà¨zQA˜€hÏ/AlL ºzQA˜€ˆÏ/AlL€ÆzQA˜—Ï/AlLÀ×zQA˜€—Ï/AlLÐßzQA˜€—Ï/AlLàâzQA˜€˜Ï/AlLàîzQA˜€‡Ï/AlL@úzQA˜sÏ/AlL {QA˜€fÏ/AlL {QA˜qÏ/AlL ${QA˜yÏ/AlL/{QA˜€«Ï/AlL-{QA7 Ì€0AlL@¾ˆQAÌâJ0AlL` ‘QA¯Ì@8E0AlLàsQAÌ€ïF0AlL æQAÌÀ G0AlL éQAÌÀ6G0AlL êQAÌ€eG0AlL`åQĂG0AlL`àQAÌG0AlLðÕQAÌ€G0AlL@ÔQÄG0AlL@ÊQAÌ€‰G0AlLÀÁQAÌ…G0AlLà¶QAÌ„G0AlL ´QAÌwG0AlLÀ©QAÌÀyG0AlL £QAÌ€†G0AlL@QA̬G0AlL •QAÌ@ÇG0AlL‘QAÌëG0AlL ŒQAÌ@H0AlLÀ‡QAÌ@7H0AlL …QAÌ€]H0AlLPƒQAÌ€uH0AlL†QAÌÀƒH0AlLQAœÜÎL‡H0AÒ²fV“QAÌâJ0AlL(LQAÌ óD0AlL°ŽQAÌ€ìD0AlLÀŽŽQAÌ@¶A0AlL (ŽQAÌÀlA0AlL ŽQAÌ@cA0AlLÐŽQAÌ&A0AlL@ŽQAÌí@0AlL€ ŽQAÌ€o@0AlLÀŽQAÌ@D@0AlLÀÿQAÌÀ @0AlLŽQAÌÀí?0AlLÀÿQAÌ ¬>0AlLàŽQAÌ€+:0AlL` ŽQAÌ@#:0AlL˜ ŽQAÌ€:0AlLŽQAÌÀ:0AlL ŽQAÌ€ :0AlL@ûQAÌ:0AlL@òQAÌ@ :0AlL êQAÌÀ:0AlLààQAÌ€ò90AlLàÖQAÌ€Ã90AlL`ÃQAÌ€ƒ90AlL€³QAÌ@U90AlLà¨QAÌ@ 90AlL€ŸQAÌÀ’80AlL ›QAÌÀ#80AlL •QAÌÀï70AlLQAÌ@¼70AlL ŠQAÌÀ“70AlL€QAÌp70AlL wQAÌ@H70AlL mQAÌÀ 70AlL@cQAÌÆ60AlL@]QAÌ@„60AlL`WQAÌÀV60AlLQQAÌB60AlL KQAÌ@u50AlLQAÌ_50AlL`QAÌ@Q50AlL QAÌT50AlL@þŒQAÌÀe50AlLà÷ŒQAÌÀ}50AlL@õŒQAÌ@–50AlL ðŒQAÌ€¡50AlL@ëŒQAÌ@¦50AlLÀáŒQAÌÀ—50AlL ÜŒQAÌ@“50AlLxÚŒQAÌ50AlLÀØŒQAÌÀÅ50AlL ÌŒQAÌÀä50AlL@ÈŒQAÌ550AlL ƒŒQAÌù40AlL€rŒQAÌ€ó40AlLqŒQAÌ€î40AlL°qŒQAÌ@Ð40AlL uŒQA̳40AlLpzŒQAÌ€¤40AlLÀ|ŒQAÌ€´10AlLïŒQAÌ€00AlL`2ŒQAÌ@-/0AlLpË‹QAÌs-0AlLà‹QAÌ@³-0AlL ýŠQAÌÀ˜,0AlLàŠQAÌt,0AlL™ŠQA̬'0AlL€1‹QAÌ€'0AlLP5‹QAÌÀ'&0AlLØa‹QAÌ€!&0AlL b‹QAÌ€}$0AlL0èŠQAÌÀ‹"0AlL WŠQAÌàƒ"0AlL8UŠQAÌ@i"0AlL@PŠQAÌ€d!0AlLÀ0ŠQAÌu 0AlL`ŠQAÌ€Þ0AlL@ŠQAÌ€Q0AlL`í‰QAÌ€0AlLÀè‰QAÌ¿0AlL€Ö‰QAÌÀ20AlL »‰QAÌ@¼0AlLà ‰QAÌÀþ0AlLÀH‰QAÌÀô0AlLÀF‰QAÌð0AlLÐE‰QAÌÀi0AlLƈQAÌÀB0AlL@¾ˆQAÌB0AlL@ÁˆQAÌ>0AlL€ÏˆQAÌÀ<0AlLàÛˆQAÌÀ80AlL`éˆQAÌÀ20AlL`ôˆQAÌ@+0AlLÀ‰QAÌ 0AlL ‰QAÌ 0AlL ‰QAÌÀõ0AlL`"‰QAÌÙ0AlL (‰QAÌÀ´0AlL€+‰QAÌ@0AlL`,‰QAÌÀb0AlL -‰QAÌ@80AlLà1‰QAÌ@#0AlLà8‰QAÌ#0AlLàC‰QAÌ@"0AlL`J‰QAÌ@ 0AlL Q‰QAÌ€ò0AlL`S‰QAÌÌ0AlL€T‰QAÌ©0AlLàV‰QAÌ€‘0AlLY‰QAÌx0AlL ^‰QAÌÀk0AlL e‰QAÌ@X0AlL q‰QAÌG0AlL`y‰QAÌÀK0AlL ‰QA̤0AlLàÿ‰QAÌ€0AlL 8ŠQAÌÀF0AlL€;ŠQAÌ@d0AlLÀAŠQAÌ@ƒ0AlLàHŠQAÌ@0AlLÀMŠQAÌÁ0AlLSŠQAÌê0AlLÀWŠQAÌ0AlL€cŠQAÌ0AlLàmŠQAÌ@0AlLà{ŠQAÌ'0AlL€ˆŠQAÌ@30AlL ’ŠQAÌ@\0AlL ¡ŠQAÌ«0AlL ºŠQAÌÀÉ0AlL@ÊQAÌ@÷0AlLÀÉŠQAÌÀ0AlL€ÎŠQAÌ€X0AlL@ΊQAÌ€—0AlL ÏŠQAÌ€É0AlLÀЊQAÌÀ 0AlL ÛŠQAÌ@50AlLÐàŠQAÌ€R0AlLàߊQAÌÀŽ0AlLèŠQAÌ€•0AlLàèŠQAÌÀž0AlLêŠQAÌÌ0AlL êŠQAÌ@ï0AlL@êŠQAÌ€0AlL`ôŠQAÌe0AlL ÿŠQAÌÀ¢0AlL‹QAÌ@ú0AlL ‹QAÌU0AlL ‹QAÌ@m0AlL ‹QAÌ@²0AlLà*‹QAÌö0AlL 7‹QAÌÀB0AlLp?‹QAÌY0AlL`:‹QAÌ@0AlL6‹QAÌÇ0AlL9‹QAÌ@Ö0AlL`G‹QAÌ@0AlLS‹QAÌH0AlL@\‹QAÌŠ0AlL`e‹QAÌ@Î0AlL`p‹QAÌó0AlL z‹QAÌÀ)0AlL`†‹QAÌ@l0AlL@‘‹QAÌ@±0AlL€•‹QAÌ@Ý0AlL@—‹QAÌ€ö0AlL` ‹QAÌ} 0AlL[‹QAÌÀ– 0AlL€V‹QĄ 0AlLpS‹QAÌ@ã 0AlLàZ‹QAÌ€&0AlL +QAÌ€•&0AlL@7QAÌÀÌ&0AlL?QAÌô&0AlL ?QAÌ'0AlL ?QAÌE'0AlL@9QAÌÏ'0AlLPQAÌÀã'0AlLÀQAÌ@)(0AlLQAÌ€v(0AlL QAÌ@Ï(0AlL QAÌ@)0AlLÀQAÌÀF)0AlL QAÌ€‰)0AlLPQAÌ€t)0AlL  QAÌÀ^)0AlLàQAÌÀF'0AlL†QAÌ€s'0AlL ŽQAÌ@–'0AlL˜QAÌ@¥'0AlL`£QAÌÀ¯'0AlL ­QAÌ@Ä'0AlL€½QAÌÀÒ'0AlL ÎQAÌú'0AlLàÕQAÌ€(0AlL@ØQAÌ@m(0AlLàÙQAÌ€›(0AlL€ÞQAÌÂ(0AlL äQAÌ€î(0AlL°íQAÌ@)0AlL ìQAÌO)0AlL ëQAÌ€e)0AlLÀæQAÌ@‰)0AlLààQAÌÀ’)0AlLpØQAÌ€Í)0AlL@åQAÌ5)0AlL  ŽQAÌ@T)0AlLŽQAÌ|)0AlL€"ŽQAÌ€Ÿ)0AlL@0ŽQAÌÀÂ)0AlL@?ŽQAÌÈ)0AlL>ŽQAÌç)0AlL7ŽQAÌ@“+0AlL ÕQAÌ€¤+0AlL0ÙQAÌ€â+0AlLæQAÌ€,0AlL òQAÌÀo,0AlLàŽQAÌ€ª,0AlL€ŽQAÌ€â,0AlL€ŽQAÌ-0AlL )ŽQAÌÀe-0AlL=ŽQAÌ€§-0AlL@JŽQAÌÀÕ-0AlL@NŽQAÌ@.0AlLNŽQAÌ%.0AlL DŽQAÌM.0AlLP>ŽQAÌ_.0AlL@?ŽQAÌÀp.0AlL @ŽQApæ6?.0AÎËÙáBŽQA̰š.0AlLÄCŽQAÌÒ.0AlL HŽQAÌÿ.0AlL IŽQAÌÀ /0AlL@KŽQAÌ€8/0AlL PŽQAÌ€I/0AlL€WŽQAÌU/0AlLÀaŽQAÌ€l/0AlL°jŽQAÌ@ê/0AlL gŽQAÌÀB00AlL``ŽQAÌ€¹00AlLàXŽQAÌÀê00AlLÀWŽQAÌ810AlLà]ŽQAÌÀ®10AlLÀhŽQAÌ 20AlL€rŽQAÌ20AlL tŽQAÌ@n20AlL`}ŽQAÌ@«20AlL†ŽQAÌ@å20AlL`–ŽQAÌ30AlLð¡ŽQAÌ€30AlL`¨ŽQAÌÀL30AlL`¶ŽQAÌ‹30AlL@ÂŽQAÌ40AlL ËŽQAÌÀZ40AlL€ÒŽQAÌ€”40AlL€ÛŽQAÌ@ð40AlL`âŽQAÌ@W50AlL`äŽQAÌ€…50AlLÀìŽQAÌœ50AlLÐïŽQAÌ€¼50AlL@ôŽQAÌü50AlLàúŽQAÌ?60AlLàüŽQAÌ@|60AlL QA̱60AlL` QAÌÙ60AlLàQAÌ70AlLàQAÌ€^70AlL QAÌÀÇ70AlL€QAÌ@j80AlLÐ"QAÌÀ¨80AlL@QAÌ€î80AlL`QAÌ/90AlLÀQAÌf90AlLÀQAÌc90AlLàõŽQAÌ€x90AlLÀíŽQAÌÔ90AlLÀÞŽQAÌÀ:0AlL ÒŽQAÌ€D:0AlLÀÂŽQAÌ€q:0AlLÀµŽQAÌÀ‹:0AlL ®ŽQA̾:0AlLàŸŽQAÌ@ø:0AlL€•ŽQAÌ@„;0AlL …ŽQAÌ@à;0AlLÀƒŽQAÌ@<0AlL †ŽQAÌ@`<0AlL€’ŽQAÌÀ<0AlLИŽQAÌ¡<0AlL€ŸŽQAÌ€ã<0AlL@²ŽQAÌ€Ò=0AlLÕŽQAÌ€@>0AlL åŽQAÌ@>>0AlLçŽQAÌ€4>0AlL@ïŽQAÌ >0AlLÀûŽQAÌÀ>0AlL QAÌ>0AlL QAÌÀä=0AlLÀ1QA̼=0AlL :QAÌÀ²=0AlLBQA̦=0AlL€HQAÌÀ•=0AlLÀOQAÌÀˆ=0AlL ZQAÌ€{=0AlLcQAÌm=0AlLÀkQAÌ@W=0AlL`qQAÌÀ7=0AlLàuQAÌ=0AlL xQAÌð<0AlL€zQAÌÀÎ<0AlLà}QAÌÇ<0AlL@„QAÌ@Í<0AlLÀ‹QAÌ@;=0AlL€ÅQAÌ@@=0AlLÈQAÌ@.>0AlLÀDQAÌÀG>0AlLàFQAÌÀy>0AlL@HQAÌ@É>0AlL KQAÌ€ ?0AlL SQAÌ@=?0AlL€\QAÌ€c?0AlLdQAÌÀŸ?0AlLàkQAÌ€¾?0AlL`tQAÌ€Í?0AlL@QAÌ€å?0AlLÀ‡QAÌ€û?0AlLàŽQAÌÀ&@0AlLšQAÌ€]@0AlL@§QAÌ„@0AlL€´QAÌ­@0AlL½QAÌ€Ô@0AlLÃQAÌ@÷@0AlL ÈQAÌ€A0AlL@ÌQAÌÀ>A0AlL`ÏQAÌ@~A0AlL€ÒQAÌ€öA0AlL ÔQAÌ B0AlL@ûQAÌuB0AlL` ‘QAÌÀ“B0AlL  ‘QA̸B0AlL€ ‘QAÌéB0AlL ‘QAÌRC0AlLÀðQAÌ€ªD0AlLÀŸQAÌ@8E0AlLàsQA8%ØÌ€b0AlL€¿QAÌ€r”0AlL`>ÎQA¸Ì€Âz0AlLàÁÍQAÌÔz0AlL` ÍQAÌÀÖz0AlL ÍQAÌ@áz0AlL€ÍQAÌ@æz0AlLàmÍQAÌñz0AlL€dÍQAÌüz0AlL UÍQAÌÿz0AlL KÍQAÌ@{0AlL @ÍQAÌ€){0AlL€5ÍQAÌÀ5{0AlL`-ÍQAÌÀA{0AlL#ÍQAÌÀA{0AlLÍQAÌÀ<{0AlL€ ÍQAÌà={0AlLÐþÌQAÌ€C{0AlLÀñÌQAÌÀF{0AlLÀæÌQAÌ€G{0AlL ÕÌQAÌ€D{0AlLÀÆÌQAÌ€G{0AlL¹ÌQAÌÀN{0AlLÀ°ÌQAÌM{0AlL ¤ÌQAÌÀO{0AlL`—ÌQAÌ@T{0AlL ‹ÌQAÌb{0AlL€sÌQAÌp{0AlL bÌQAÌ€t{0AlL XÌQAÌ@u{0AlL`RÌQAÌ@†{0AlLàHÌQAÌ€›{0AlL AÌQAÌ@°{0AlL 7ÌQAÌÀÅ{0AlLÀ.ÌQAÌÀÒ{0AlL€(ÌQAÌ€Õ{0AlL`ÌQAÌÀ¹{0AlL`ÌQAÌ«{0AlLÀÌQAÌ€¤{0AlLpüËQAÌ¡{0AlL@÷ËQAÌ@”{0AlLÀëËQAÌ@Š{0AlLáËQȦ{0AlLÔËQȦ{0AlL@ÈËQAÌÀŠ{0AlLÀ·ËQAÌ…{0AlLÀ¯ËQAÌÀ†{0AlLÀ¥ËQAÌ@š{0AlL@–ËQAÌ@¤{0AlL`ËQAÌ€¹{0AlL@ˆËQAÌÀÐ{0AlL€ËQAÌÀå{0AlLàuËQAÌ€ì{0AlLÀoËQAÌÀð{0AlLÀgËQAÌ|0AlL`\ËQAÌ |0AlL UËQAÌ@|0AlLàMËQAÌ@(|0AlLGËQAÌ(|0AlLà5ËQAÌ-|0AlLà*ËQAÌ@1|0AlLàËQAÌ€;|0AlLËQAÌ€;|0AlL` ËQAÌ@1|0AlLàËQAÌ,|0AlLýÊQAÌÀ|0AlLàúÊQAÌ@|0AlL øÊQAÌ@|0AlL áÊQAÌÀ!|0AlL ÊÊQAÌÀ"|0AlL@µÊQAÌÀ3|0AlL@¨ÊQAÌ€<|0AlL`œÊQAÌ€I|0AlL`›ÊQAÌÀh|0AlLàŒÊQAÌ€y|0AlL`ƒÊQAÌ€“|0AlLÀuÊQAÌ|0AlL iÊQAÌù|0AlL`@ÊQAÌ }0AlLà-ÊQAÌÀ}0AlL "ÊQAÌÀ)}0AlLÊQAÌ€*}0AlL ÊQAÌÀ&}0AlL@ÊQAÌ }0AlL òÉQAÌ}0AlL êÉQAÌ}0AlL€àÉQAÌ€}0AlL ×ÉQAÌ@û|0AlL ÂÉQAÌ}0AlL€ÂÉQAÌ€<}0AlL@ÂÉQAÌ€x}0AlL@ÁÉQAÌ@¯}0AlLÃÉQAÌÀæ}0AlL€ÆÉQAÌÀ~0AlLÊÉQAÌV~0AlLÀÇÉQAÌ@~0AlL`ÄÉQAÌÀ·~0AlL ½ÉQAÌÀÞ~0AlL€ÀÉQAÌô~0AlLÀÃÉQAÌ€Z0AlLÀ½ÉQAÌ@O0AlL·ÉQAÌÀC0AlL€­ÉQAÌÀA0AlL@›ÉQAÌ€I0AlLàŽÉQAÌÀF0AlLƒÉQAÌ@@0AlL@rÉQAÌÀX0AlLàiÉQAÌw0AlL _ÉQAÌs0AlLÀTÉQAÌ@n0AlL@SÉQAÌ@U0AlL`KÉQAÌÀ10AlLà7ÉQAÌÀ)0AlL4ÉQAÌ0AlL€*ÉQAÌ@0AlL`ÉQAÌ0AlLà ÉQAÌ@0AlLàúÈQAÌ@ê~0AlL ìÈQAÌå~0AlL€×ÈQAÌ@ô~0AlLÀÈÈQAÌö~0AlL@·ÈQAÌó~0AlLà©ÈQAÌ@ù~0AlL šÈQAÌ€ù~0AlL€’ÈQAÌ@0AlL „ÈQAÌ@0AlLÀwÈQAÌÀ/0AlL€kÈQAÌG0AlL\ÈQAÌÀR0AlLàOÈQAÌ€w0AlL&ÈQAÌ…0AlLàÈQAÌÀž0AlL` ÈQAÌ@«0AlLÈQAÌ@¦0AlLÀñÇQAÌ@Œ0AlLÀßÇQAÌ€j0AlLÏÇQAÌ@H0AlLºÇQAÌ-0AlLÀ¬ÇQAÌ0AlL ÇQAÌ€ò~0AlL@‰ÇQAÌë~0AlL@|ÇQAÌÀé~0AlL`jÇQAÌ0AlLà[ÇQAÌ0AlLÀNÇQAÌ€ 0AlL@;ÇQAÌÀ0AlLÀ/ÇQAÌ€ 0AlLÀÇQAÌ0AlL€ ÇQAÌ€ö~0AlL€òÆQAÌ@×~0AlL`ÙÆQAÌ@ª~0AlL ÅÆQAÌ€‹~0AlL ¸ÆQAÌw~0AlLà¯ÆQAÌÀQ~0AlLà›ÆQAÌ€;~0AlL`‰ÆQAÌ6~0AlL`rÆQAÌ@8~0AlLÀ^ÆQAÌ@<~0AlLÀJÆQAÌÀA~0AlLà6ÆQAÌ€M~0AlL&ÆQAÌ€e~0AlL ÆQAÌÀˆ~0AlLà ÆQAÌ@²~0AlLÀýÅQAÌ@Â~0AlL éÅQA̱~0AlL@ÑÅQAÌ@ˆ~0AlL ½ÅQAÌ~0AlL ³ÅQAÌÀœ~0AlL ªÅQAÌ@©~0AlLšÅQAÌ@§~0AlL ŽÅQA̦~0AlL@„ÅQAÌ@€~0AlL fÅQAÌ@r~0AlLTÅQAÌÀf~0AlLGÅQAÌ@p~0AlL`8ÅQAÌ@„~0AlL *ÅQAÌ`¨~0AlLXÅQAÌ@Î~0AlLÅQAÌú~0AlLàÅQAÌ0AlLàôÄQAÌ<0AlL ëÄQAÌ@^0AlL ÙÄQAÌv0AlLÀËÄQAÌ@˜0AlL`ºÄQAÌ´0AlLªÄQAÌ@Í0AlL ›ÄQAÌ@p€0AlL€zÄQAÌ€'0AlL@¢ÄQAÌ€+0AlL ´ÄQAÌ20AlL ÄÄQAÌ@40AlLÖÄQAÌ€30AlLàâÄQAÌ20AlLèÄQAÌ@.0AlL`õÄQAÌ@%0AlL@ÅQAÌ0AlL` ÅQAÌÀ80AlLÅQAÌ@o0AlLà"ÅQAÌ”0AlLÀ*ÅQAÌ@À0AlL`6ÅQAÌ@ø0AlLà=ÅQAÌ#‚0AlL`CÅQAÌS‚0AlL€HÅQAÌÀƒ‚0AlLàNÅQAÌÀú‚0AlLXÅQAÌ"ƒ0AlL[ÅQAÌ@:ƒ0AlLÀ^ÅQAÌÀnƒ0AlLàeÅQAÌ›ƒ0AlL€iÅQAÌÀȃ0AlL°hÅQAÌ€ãƒ0AlL@hÅQAÌ@„0AlLhÅQAÌ€u„0AlL€iÅQAÌÀ¬„0AlL@mÅQAÌÀÞ„0AlL jÅQAÌ…0AlLnÅQAÌ@…0AlLÀuÅQAÌ,…0AlL „ÅQAÌ€A…0AlL ŽÅQAÌ€c…0AlL@“ÅQAÌ€‘…0AlL@”ÅQAÌÀ¹…0AlL”ÅQAÌ€æ…0AlL@–ÅQAÌ€†0AlLàœÅQĂ0AlL€¦ÅQAÌ€E†0AlLà­ÅQAÌl†0AlL·ÅQAÌÀè†0AlLàÏÅQAÌÀ‡0AlLàÕÅQAÌ@O‡0AlL@ÜÅQȦ0AlL`åÅQA̱‡0AlL ñÅQAÌ€Ú‡0AlL ÷ÅQAÌÀü‡0AlL@þÅQAÌ'ˆ0AlLÆQAÌOˆ0AlL€ ÆQAÌ@ˆ0AlLà ÆQÀƈ0AlL`ÆQAÌïˆ0AlL ÆQAÌ@#‰0AlL ÆQAÌÀ]‰0AlL ÆQĄ‰0AlL@!ÆQAÌ@Ó‰0AlL!ÆQAÌ@ù‰0AlLà!ÆQAÌÀ<Š0AlLÀ$ÆQAÌ@kŠ0AlLà'ÆQAÌÀŒŠ0AlL*ÆQAÌÀ¸Š0AlL/ÆQAÌãŠ0AlL@3ÆQAÌ/‹0AlL@?ÆQAÌ@W‹0AlL BÆQAÌ€{‹0AlLàLÆQAÌ€‹0AlL€UÆQÀË0AlL€`ÆQAÌ€ë‹0AlL@iÆQAÌ€Œ0AlLàtÆQAÌ€9Œ0AlL„ÆQAÌ€NŒ0AlL@ÆQAÌVŒ0AlL€˜ÆQAÌYŒ0AlLà¦ÆQAÌÀƒŒ0AlL`ÔÆQAÌ@—Œ0AlLÙÆQAÌ€°Œ0AlLãÆQAÌ@¾Œ0AlLéÆQÀˌ0AlLïÆQAÌñŒ0AlLòÆQAÌ@ 0AlL@ùÆQAÌ@0AlLÇQAÌ€*0AlLàÿÆQAÌÀF0AlL€üÆQAÌ€x0AlLàýÆQAÌ@¡0AlL ÇQAÌÐ0AlL@ÇQAÌ@ø0AlL þÆQAÌŽ0AlL üÆQAÌJŽ0AlL ÇQAÌÀgŽ0AlL ÇQAÌ€„Ž0AlL@ÇQAÌ€´Ž0AlL`ÇQAÌÀÜŽ0AlL@1ÇQAÌ€þŽ0AlL @ÇQAÌ€0AlL KÇQAÌ€0AlL WÇQAÌ^0AlLaÇQAÌ€Ž0AlLàcÇQAÌÀ»0AlL€hÇQAÌ@ß0AlL nÇQAÌ0AlL@wÇQAÌÀ>0AlL yÇQAÌ@Š0AlLzÇQAÌ€è0AlLàwÇQAÌ€‘0AlL xÇQAÌG‘0AlLxÇQAÌÀs‘0AlLÀxÇQAÌ@’0AlL€mÇQAÌÀ’0AlL vÇQAÌ,’0AlLÇQAÌ€D’0AlL€†ÇQAÌ€S’0AlL •ÇQAÌ@w’0AlL€¡ÇQAÌ@–’0AlL`¦ÇQAÌ€±’0AlL ¢ÇQAÌÀ»’0AlLÀšÇQÀŒ0AlLàÇQAÌ@Á’0AlLÀŠÇQAÌ´’0AlL €ÇQAÌ@£’0AlLÀsÇQAÌ@˜’0AlL€iÇQAÌÀ‚’0AlL``ÇQAÌÀo’0AlL UÇQAÌS’0AlL`KÇQAÌ@X’0AlLà<ÇQAÌ@c’0AlL +ÇQAÌ@n’0AlL€ ÇQAÌk’0AlL`ÇQAÌ€y’0AlLàíÆQAÌ„’0AlLåÆQAÌ“’0AlLÛÆQAÌ@ž’0AlL ÓÆQAÌ€‘’0AlL`ÊÆQAÌ@˜’0AlL ÁÆQA̺’0AlL@»ÆQAÌ@Â’0AlL@¬ÆQAÌ€²’0AlL  ÆQAÌÀ¦’0AlL`”ÆQAÌÀ¡’0AlL@ÆQAÌ@’’0AlL „ÆQAÌÀo’0AlLzÆQAÌÀZ’0AlLàrÆQAÌ@H’0AlL@mÆQAÌÀ>’0AlL€cÆQAÌC’0AlL@XÆQAÌ@L’0AlLàLÆQAÌ`’0AlL CÆQAÌÀs’0AlLà1ÆQAÌÀ}’0AlL`$ÆQAÌ@€’0AlL`ÆQÃ’0AlL ÆQAÌÀ•’0AlL` ÆQAÌ@º’0AlLÀÆQAÌÀ¾’0AlLÀúÅQAÌ€®’0AlL`íÅQÀ’0AlL âÅQAÌÀß’0AlL`ÔÅQAÌ@ô’0AlL ÈÅQAÌ€“0AlL¹ÅQAÌ@1“0AlLÀ³ÅQAÌ€l“0AlL ±ÅQAÌ@Ž“0AlL ²ÅQAÌ@Ž“0AlL ¥ÅQAÌ€™“0AlL™ÅQAÌ€¿“0AlL@ÅQAÌ@÷“0AlL`XÅQAÌÀ ”0AlLàNÅQAÌÀ”0AlLàHÅQAÌ€I”0AlLÀ#ÅQAÌÀW”0AlL`ÅQAÌ€j”0AlL  ÅQAÌÀm”0AlL ÅQAÌ@d”0AlL@úÄQAÌÀL”0AlL@íÄQAÌ@3”0AlL ÜÄQAÌÀ”0AlL@ÏÄQAÌ ”0AlLÀ»ÄQAÌÀ”0AlL@²ÄQAÌ@ó“0AlL`¤ÄQAÌé“0AlL`ÄQAÌ@æ“0AlL€€ÄQAÌè“0AlL rÄQAÌÀè“0AlLàiÄQAÌÀï“0AlLàZÄQAÌÀæ“0AlL PÄQAÌÀÙ“0AlLàEÄQAÌÉ“0AlL@5ÄQA̵“0AlL€)ÄQAÌÀ±“0AlLÀ'ÄQAÌ@“0AlL€ÄQAÌ@›“0AlL`ÄQAÌ@¦“0AlL@ ÄQA̾“0AlL üÃQAÌ€Ô“0AlLðÃQAÌÀá“0AlL çÃQAÌÀó“0AlLàÝÃQAÌ ”0AlL`ÓÃQAÌÀ”0AlL`ÉÃQAÌ@”0AlL ÀÃQAÌ€(”0AlL@¹ÃQAÌÀ;”0AlL@­ÃQAÌ€I”0AlL@¤ÃQAÌX”0AlL`›ÃQAÌ€j”0AlL ÃQAÌ€r”0AlL~ÃQAÌ@m”0AlLtÃQAÌÀd”0AlL`jÃQAÌU”0AlLÀZÃQAÌÀN”0AlL@TÃQAÌÀG”0AlLàLÃQAÌ7”0AlLÀ@ÃQAÌ)”0AlL@6ÃQAÌ€”0AlL`)ÃQAÌÀ”0AlLàÃQAÌ”0AlLÃQAÌÀ ”0AlLÃQAÌ ”0AlL`ÿÂQAÌ€”0AlL õÂQAÌÀû“0AlL`êÂQAÌ€ô“0AlLÀàÂQAÌò“0AlL ×ÂQAÌ@î“0AlLÀÏÂQAÌ@â“0AlLÀÇÂQAÌÀÑ“0AlL ·ÂQAÌÀË“0AlL`¯ÂQÀȓ0AlL ©ÂQAÌÀÆ“0AlL¢ÂQAÌÀ¸“0AlL€šÂQA̬“0AlL•ÂQAÌ€”“0AlLˆÂQĂ“0AlLà~ÂQAÌ@ˆ“0AlL wÂQAÌÀ‰“0AlLàjÂQAÌ‹“0AlLÀaÂQAÌÀŒ“0AlL@[ÂQAÌ€…“0AlL`UÂQAÌÀ“0AlLÀIÂQAÌ|“0AlL€=ÂQAÌ@|“0AlL€6ÂQAÌ„“0AlL ,ÂQAÌ@‹“0AlL`$ÂQAÌ€“0AlLàÂQAÌÀ“0AlLˆÂQAÌ@“0AlL€ÂQAÌÀ“0AlLÀþÁQAÌ€~“0AlL ôÁQAÌn“0AlLëÁQAÌ€I“0AlL`äÁQAÌ8“0AlL€ÛÁQAÌÀ=“0AlLÒÁQAÌÀI“0AlL`ÄÁQAÌ€X“0AlL·ÁQAÌÀt“0AlL`¨ÁQAÌŠ“0AlLÁQAÌ@È“0AlL |ÁQAÌÀÔ“0AlLÀtÁQAÌÜ“0AlL iÁQAÌÀÕ“0AlL bÁQAÌÄ“0AlL€ZÁQAÌ@¤“0AlL MÁQAÌ€‹“0AlL DÁQAÌ€c“0AlL`9ÁQAÌÀR“0AlL@-ÁQAÌ€=“0AlL "ÁQAÌ@3“0AlL`ÁQAÌ€5“0AlL€ÁQAÌ€5“0AlLüÀQAÌ@1“0AlL@ñÀQAÌ@(“0AlLàæÀQAÌ“0AlL ßÀQAÌ€ÿ’0AlLÚÀQAÌ€×’0AlLÒÀQAÌ€¾’0AlL ÍÀQAÌ@‘’0AlLÀÉÀQAÌ€c’0AlL@ÈÀQAÌ€>’0AlL@ÆÀQAÌÀ’0AlL€ÁÀQAÌ€’0AlL€»ÀQAÌÀ÷‘0AlL@¶ÀQAÌÀÞ‘0AlL€±ÀQAÌÅ‘0AlLÀ¬ÀQAÌ€ž‘0AlL@£ÀQAÌ€Š‘0AlL`ŸÀQAÌÀk‘0AlLà™ÀQAÌ@`‘0AlL “ÀQAÌ@S‘0AlL@ˆÀQAÌ@N‘0AlLPÀQAÌ@L‘0AlL ~ÀQAÌC‘0AlL wÀQAÌ€9‘0AlLÀqÀQAÌ0‘0AlLlÀQAÌ€&‘0AlLÀbÀQAÌ€‘0AlL [ÀQAÌ€‘0AlLTÀQAÌÀó0AlL€NÀQAÌæ0AlLÀFÀQAÌ€Ò0AlL=ÀQAÌ@¹0AlLà5ÀQAÌ©0AlLÀ/ÀQAÌ@ž0AlL@'ÀQAÌ€0AlL`ÀQAÌÀk0AlL@ÀQAÌÀ^0AlL@ÀQAÌ€J0AlL`ÀQAÌ(0AlL ÀQAÌÀ 0AlLÀÀQAÌ@ñ0AlLÀû¿QAÌÀË0AlL@õ¿QA̱0AlL€ð¿QAÌ@˜0AlLì¿QAÌÀ0AlL é¿QAÌ€\0AlLæ¿QAÌÀ(0AlLä¿QAÌÀ0AlL`Ø¿QAÌ€0AlLÑ¿QAÌ@îŽ0AlL Ç¿QAÌ@ØŽ0AlL`ÿQAÌÆŽ0AlL`¿¿QAÌ€XŽ0AlL`æ¿QAÌÀ7Ž0AlLÐè¿QAÌ Ž0AlL`æ¿QAÌ€Ø0AlLÀã¿QAÌ@“0AlLÀâ¿QAÌ`0AlL`æ¿QAÌ%0AlL ì¿QAÌ@ÔŒ0AlLÀï¿QAÌ@4Œ0AlL@ÀQAÌ€ Œ0AlL€ ÀQAÌ@º‹0AlL`ÀQAÌÀ†‹0AlL`ÀQAÌ;‹0AlL ÀQAÌ€úŠ0AlL€ÀQAÌ®Š0AlLÀ!ÀQAÌ@yŠ0AlLÀ"ÀQAÌ€=Š0AlL@(ÀQAÌÀŠ0AlL@0ÀQAÌ@þ‰0AlL <ÀQAÌ܉0AlLÀGÀQAÌÀ¿‰0AlL`VÀQAÌÀ¿‰0AlLÀdÀQAÌ@‰0AlL xÀQAÌÀˉ0AlLà„ÀQAÌ@Ú‰0AlLÀ‘ÀQAÌá‰0AlL@žÀQAÌ€é‰0AlL ¦ÀQAÌ€ý‰0AlL µÀQAÌ@Š0AlL€¾ÀQAÌ@5Š0AlLÀÆÀQAÌ@`Š0AlLÎÀQAÌ@eŠ0AlL ÙÀQAÌ€rŠ0AlLäÀQAÌ@•Š0AlLÀïÀQAÌ€_Š0AlL@øÀQAÌ€5Š0AlL ÿÀQAÌ Š0AlLÿÀQAÌ€à‰0AlLÀûÀQAÌ€¬‰0AlL ôÀQAÌÀ…‰0AlL`èÀQAÌM‰0AlLÜÀQAÌ€"‰0AlL@ÝÀQAÌÀâˆ0AlL ÙÀQAÌ@³ˆ0AlLÀÑÀQAÌÀ|ˆ0AlL€ÍÀQAÌ€pˆ0AlL0ÎÀQAÌ€Tˆ0AlL ÏÀQAÌ€4ˆ0AlLàÕÀQA̾‡0AlLîÀQAÌ@ž‡0AlL@÷ÀQAÌ@—‡0AlL`)ÁQAÌÀ›‡0AlL`<ÁQAÌ@¡‡0AlLÀIÁQA̦‡0AlLÀXÁQAÌ€§‡0AlL€bÁQAÌ€˜‡0AlL sÁQAÌ€‡0AlL ÁQAÌ€‡0AlLÀ£ÁQAÌ€Z‡0AlL¬ÁQAÌÀ6‡0AlL ±ÁQAÌ€‡0AlL`¸ÁQAÌ@ì†0AlLàÂÁQAÌ¿†0AlL€ÍÁQAÌ€¨†0AlLpÑÁQAÌ@”†0AlLÕÁQAÌ@ކ0AlLàÕÁQAÌ€c†0AlLàÖÁQAÌ€4†0AlLàÚÁQAÌ€†0AlL`ÜÁQAÌÀ·…0AlL°ßÁQAÌ„…0AlL`ÛÁQAÌ@Z…0AlLÒÁQAÌ@@…0AlL@ËÁQAÌ€…0AlL ¾ÁQAÌ@ý„0AlL€³ÁQAÌÕ„0AlL­ÁQAÌ€/„0AlL€§ÁQAÌ@üƒ0AlL ¢ÁQAÌ@Ôƒ0AlLà¡ÁQA̪ƒ0AlL@¦ÁQAÌ@uƒ0AlL «ÁQAÌ€<ƒ0AlLЭÁQAÌ€ƒ0AlLÀ¦ÁQAÌì‚0AlLà™ÁQÀ‚0AlLДÁQAÌ€}‚0AlL`œÁQAÌX‚0AlL¤ÁQAÌ€7‚0AlL­ÁQAÌ€"‚0AlL·ÁQAÌ@ ‚0AlLà¾ÁQAÌÀô0AlL@ÄÁQAÌ€Ý0AlL ÇÁQAÌ€Ã0AlL€ÊÁQAÌ€¦0AlLÀÍÁQĂ0AlL ÏÁQAÌ€_0AlLÓÁQAÌ_0AlL`ãÁQAÌ?0AlLÀàÁQAÌÀ°€0AlL ãÁQAÌÀ‰€0AlL ÛÁQAÌÀ`€0AlLxÏÁQAÌ@K€0AlL`ÆÁQAÌ@,€0AlLÀ¼ÁQAÌ@&€0AlLàºÁQAÌÀì0AlL ³ÁQAÌÀ­0AlL §ÁQAÌ€s0AlL`œÁQAÌÀO0AlLàÁQAÌ€>0AlL€…ÁQAÌ€80AlL zÁQAÌ;0AlLÀmÁQAÌÀ>0AlL€]ÁQAÌÀ10AlLàNÁQAÌÀ0AlL€FÁQAÌ@ø~0AlL@ÁQAÌê~0AlL >ÁQAÌÀ¬~0AlL /ÁQAÌ€ˆ~0AlL` ÁQAÌ{~0AlLàÁQAÌ~0AlLõÀQAÌá}0AlL`áÀQAÌ€É}0AlL ×ÀQAÌÀµ}0AlL@ÌÀQAÌÀ¯}0AlL€ÀÀQAÌ€ª}0AlL ¶ÀQAÌÀ§}0AlL€³ÀQAÌ@¡}0AlL ¬ÀQAÌ‘}0AlL£ÀQAÌ@}0AlLp ÀQAÌ@„}0AlL€šÀQAÌÀl}0AlLÀÀQAÌ€P}0AlLÀQAÌ@©|0AlLuÀQAÌ€|0AlLÀoÀQAÌ@u|0AlLoÀQAÌ@T|0AlLÀoÀQAÌÀ|0AlL@sÀQAÌ@â{0AlL@sÀQAÌÀ­{0AlL`sÀQAÌ|{0AlL oÀQAÌÀ@{0AlLàjÀQAÌ€"{0AlLÀ`ÀQAÌ{0AlLÀWÀQAÌ{0AlL PÀQAÌ@Ûz0AlL CÀQAÌ€ªz0AlLAÀQAÌÀ‘z0AlL@;ÀQAÌ@z0AlLà5ÀQAÌÀ¥z0AlL@.ÀQAÌÀ®z0AlL #ÀQAÌžz0AlLÀÀQAÌÀ…z0AlL ÀQAÌ@;z0AlL þ¿QAÌ@z0AlL ú¿QAÌ€Éy0AlL ú¿QẢy0AlLÀó¿QAÌ€y0AlLÀè¿QAÌãx0AlL€å¿QAÌÀCx0AlL Û¿QAÌ!x0AlL€Ö¿QAÌþw0AlLÀÍ¿QAÌåw0AlLÿQAÌ@Æw0AlL`¶¿QAÌÀ6w0AlL@‘¿QAÌÀw0AlL ¿QAÌ@æv0AlL€¿QAÌÀºv0AlL‡¿QAÌŸv0AlL‚¿QAÌ}v0AlL`~¿QAÌÀWv0AlL }¿QAÌÀ7v0AlLàx¿QAÌ v0AlL@s¿QAÌ@çu0AlL n¿QAÌÉu0AlL`m¿QAÌ@•u0AlL`o¿QAÌ{u0AlLpr¿QAÌ@Yu0AlL`k¿QAÌ€'u0AlLc¿QAÌÀ u0AlLd¿QAÌ@ît0AlLe¿QAÌ€Ót0AlL@e¿QAÌ€Ät0AlL d¿QAÌ€²t0AlLÀb¿QAÌ•t0AlL \¿QAÌ€”t0AlLS¿QAÌÀ…t0AlLH¿QAÌ€rt0AlL`A¿QAÌ€Mt0AlLà8¿QAÌ€4t0AlL1¿QAÌÀ t0AlL (¿QAÌ€ès0AlL ¿QAÌ@És0AlLà¿QA̱s0AlL¿QAÌŒs0AlLÀ¿QAÌ€ks0AlL€¿QAÌ@Is0AlL ¿QAÌÀ+s0AlLà¿QAÌ€s0AlL€"¿QAÌ@îr0AlLà"¿QAÌ@Ër0AlL@&¿QAÌ®r0AlL*¿QAÌÀ”r0AlL`1¿QAÌÀ’r0AlL 8¿QAÌ@…r0AlLA¿QAÌÀmr0AlL I¿QAÌNr0AlL`K¿QAÌ@5r0AlL`F¿QAÌr0AlL?¿QAÌþq0AlL B¿QAÌ@Øq0AlL A¿QA̪q0AlL =¿QAÌŒq0AlL`8¿QAÌ€kq0AlL€6¿QAÌAq0AlL@:¿QAÌ€q0AlL`>¿QA̾p0AlL`I¿QAÌ€Gp0AlL S¿QAÌÀ$p0AlL@Y¿QAÌÀp0AlL€c¿QAÌño0AlL@l¿QAÌÀÕo0AlL o¿QAÌÀ©o0AlL`r¿QAÌo0AlL t¿QAÌ@o0AlL€{¿QAÌÊn0AlL@~¿QAÌÀ³n0AlL …¿QAÌ n0AlL ‹¿QAÌ€„n0AlL`¿QAÌon0AlLÀ•¿QAÌbn0AlL œ¿QAÌ@\n0AlL€¢¿QAÌ_n0AlL «¿QAÌÀ[n0AlL ²¿QAÌ€Qn0AlLÀº¿QAÌÀ9n0AlL À¿QAÌ@$n0AlLÀÄ¿QAÌ@n0AlLÀË¿QAÌám0AlL@ú¿QAÌ@Úm0AlL@ÀQAÌ€Üm0AlL€ÀQAÌ€âm0AlL€ÀQAÌÀêm0AlL ÀQAÌ@ïm0AlL@%ÀQAÌ@óm0AlL ,ÀQAÌ@Ûm0AlLÀ5ÀQAÌÀÃm0AlL ;ÀQĄm0AlLà?ÀQAÌ@Šm0AlLGÀQAÌ€`m0AlL@OÀQAÌm0AlL`gÀQAÌÀm0AlL@mÀQAÌ@øl0AlL@ÀQAÌ@ìl0AlLà†ÀQAÌ€Ål0AlL@ŒÀQAÌÀ’l0AlL`ŠÀQAÌ@Xl0AlL€‰ÀQAÌ€)l0AlL@‰ÀQAÌÀþk0AlLŠÀQAÌ@Ôk0AlL@ŽÀQAÌ@§k0AlL€”ÀQAÌ€nk0AlL€’ÀQAÌ@Dk0AlL€‘ÀQAÌk0AlLà‘ÀQAÌäi0AlL µÀQAÌ@¼i0AlLÀºÀQAÌÀ§i0AlL ÃÀQAÌ“i0AlLàÌÀQAÌwi0AlL ÓÀQAÌÀ_i0AlL€ÖÀQAÌ?i0AlLÀÙÀQAÌi0AlLÀÜÀQAÌÀìh0AlLàßÀQAÌÀ€h0AlL`òÀQAÌÀ^h0AlL€øÀQAÌ@Mh0AlL@ÁQAÌ5h0AlL ÁQAÌh0AlL@ÁQAÌ@h0AlLàÁQAÌh0AlLÀ ÁQAÌßg0AlL *ÁQAÌÐg0AlLÀ/ÁQAÌ@»g0AlL 4ÁQAÌÀ£g0AlL9ÁQAÌ@‰g0AlL€=ÁQAÌ@ig0AlL@DÁQAÌ@Hg0AlLàEÁQAÌ*g0AlL JÁQAÌ€g0AlL€OÁQAÌÀ g0AlL€UÁQAÌÀûf0AlL\ÁQAÌàf0AlL@bÁQAÌ@Âf0AlLgÁQA̦f0AlL hÁQAÌÀƒf0AlL@kÁQAÌ@bf0AlL kÁQAÌJf0AlLlÁQAÌÀ(f0AlL@pÁQAÌ@f0AlLàxÁQAÌÀøe0AlLÀ€ÁQAÌ@ée0AlLÀ†ÁQAÌ€Ïe0AlLàÁQAÌÀÅe0AlL–ÁQA̼e0AlL œÁQA̸e0AlL ©ÁQAÌ€úd0AlLàÂQAÌ€ e0AlL` ÂQAÌÀ9e0AlLÂQAÌ@Je0AlLàÂQAÌÀ_e0AlLÂQAÌhe0AlL%ÂQAÌke0AlLà,ÂQAÌpe0AlL€7ÂQAÌÀte0AlL @ÂQAÌ€me0AlLàNÂQAÌ€Ye0AlL@VÂQAÌ@Fe0AlL€`ÂQAÌ€0e0AlLmÂQAÌÀ0e0AlL@wÂQAÌ€f0AlL@ÿËQAÌ@Uf0AlLàÌQAÌÀrf0AlLàÌQAÌ€f0AlL`ÌQAÌ€¾f0AlL@ ÌQAÌ@ëf0AlLàÌQAÌÄf0AlL@+ÌQAÌ¿f0AlL€9ÌQAÌÀ¾f0AlLàDÌQAÌ»f0AlL`RÌQA̱f0AlL€\ÌQAÌ€¯f0AlL pÌQAÌÈf0AlL vÌQAÌ@èf0AlLÀ|ÌQAÌg0AlL€ÌQAÌ@g0AlL„ÌQAÌ[g0AlLà‹ÌQAÌÀig0AlLàÌQAÌ€dg0AlL`˜ÌQAÌÀKg0AlL`£ÌQA̯g0AlL°ÌQAÌŠh0AlL ºÌQAÌ>i0AlL@ÌÌQAÌÀ¡i0AlLà×ÌQAÌ€Êi0AlL@ÛÌQAÌÀ j0AlL àÌQAÌÎQAÌÀz0AlLÀÎQAÌ;z0AlLÎQAÌ@ˆz0AlL`óÍQAÌ@žz0AlL@éÍQAÌ´z0AlLÙÍQAÌ€Âz0AlLàÁÍQA9DXÌþŒ0AlL Y»QAÌ™Â0AlL‰ÍQA‡®CjÌ@e0AlLàbÍQAÌ@O0AlL€AÍQAÌ@\0AlLÀ<ÍQAÌ€j0AlL 7ÍQAÌZž0AlL`ÍQAÌjž0AlLÀÍQAÌ@zž0AlLÍQAÌ@Šž0AlL€!ÍQAÌ€™ž0AlL $ÍQAÌÀ¯ž0AlLÀ'ÍQÀʞ0AlL&ÍQAÌÍž0AlLàÍQAÌ€íž0AlL`ÍQAÌ€Ÿ0AlLÀÍQAÌ@4Ÿ0AlL ÍQAÌ@bŸ0AlL€ÍQAÌ~Ÿ0AlLà$ÍQAÌ€ŒŸ0AlL +ÍQAÌÀ’Ÿ0AlL 8ÍQAÌÀšŸ0AlLÀ?ÍQAÌÀÑŸ0AlLÀDÍQAÌ€ 0AlL CÍQAÌ€ 0AlLÀ?ÍQAÌ2 0AlL ;ÍQAÌÀJ 0AlL€2ÍQAÌ€Y 0AlL€.ÍQAÌ€b 0AlL ,ÍQAÌ@R 0AlLà*ÍQAÌ@8 0AlLà(ÍQAÌÀ; 0AlL #ÍQAÌÀP 0AlLàÍQAÌÀZ 0AlL@ÍQA̬ 0AlLàÍQAÌÀ¡ 0AlL`÷ÌQAÌÀ 0AlLÀóÌQAÌÀà 0AlL îÌQAÌ@ò 0AlLàèÌQAÌ@¶ 0AlL`àÌQAÌÀ¶ 0AlL€×ÌQAÌ@è 0AlLÀ½ÌQAÌ'¡0AlL`§ÌQAÌ@d¡0AlL‹ÌQAÌ@¡0AlLzÌQAÌÀÞ¡0AlLiÌQAÌÀ?¢0AlL@NÌQAÌ€•¢0AlL`8ÌQAÌÀ×¢0AlL 'ÌQAÌ@-£0AlLÌQAÌ€S£0AlL ÌQAÌ€u£0AlL ÌQAÌ|£0AlL€ÌQAÌ€š£0AlL€þËQAÌÀ§£0AlL@üËQAÌ€µ£0AlL°øËQAÌÀ£0AlLpöËQAÌ@à£0AlL`ïËQAÌÀø£0AlL`éËQAÌ€¤0AlL°åËQAÌÀ9¤0AlL0áËQAÌÀ[¤0AlL`ÝËQAÌ€¤0AlL°ÖËQAÌ@•¤0AlLÐÕËQAÌ£¤0AlL ÔËQAÌ@Ô¤0AlL°ËËQAÌâ¤0AlLÊËQAÌÀö¤0AlL°ÇËQAÌ@ ¥0AòU5ÆËQAÌ@)¥0AlL€ÂËQAÌ@B¥0AlLпËQAÌ€a¥0AlL ¾ËQAÌ€ƒ¥0AlL0¼ËQAÌÀH¦0AlL@­ËQAÌ€x¦0AlL€§ËQAÌÁ¦0AlLP¢ËQAÌ@Ô¦0AlL0 ËQAÌ@ò¦0AlLàœËQAÌÒ§0AlLДËQAÌ@:¨0AlL‘ËQAÌ©0AlL’ËQAÌ@)©0AlL@–ËQAÌÀS©0AlL`›ËQAÌÀy©0AlL` ËQAÌ€˜©0AlL¬ËQAÌ€©0AlL`°ËQȦ©0AlLÀ¸ËQAÌr©0AlL ºËQAÌ@f©0AlL»ËQAÌÀY©0AlLàÆËQAÌ€Y©0AlL`ËËQAÌ€Y©0AlL ÎËQAÌÀt©0AlLàÎËQAÌ@•©0AlL ÉËQAÌ€¨©0AlL`ÂËQA̺©0AlL¾ËQÀ©0AlL ¼ËQAÌÀÌ©0AlL»ËQAÌ@ש0AlL ¹ËQAÌÀâ©0AlL ºËQAÌ€î©0AlL`¹ËQAÌÀö©0AlL¼ËQAÌ€ª0AlL€½ËQAÌ@ª0AlLàÁËQAÌ€ ª0AlLàÄËQAÌ@ ª0AlL`ÌËQAÌ€ª0AlL`ÓËQAÌ€!ª0AlL ÕËQAÌ€/ª0AlL ×ËQAÌ€<ª0AlLàÕËQAÌ@Gª0AlLàÔËQAÌ@Yª0AlL ËËQAÌÀjª0AlL ÆËQAÌÀvª0AlL@ÆËQAÌ„ª0AlLÉËQAÌ‹ª0AlL`ÅËQAÌÀ–ª0AlL ÄËQAÌ@¡ª0AlL€ÆËQA̳ª0AlL`ÊËQA̺ª0AlLÀÃËQAÌΪ0AlL@ÄËQAÌæª0AlLÀÄËQAÌ@òª0AlLÄËQAÌúª0AlL`ÓËQAÌ@«0AlLÚËQAÌÀ«0AlLÀßËQAÌ€%«0AlLÀáËQAÌÀ4«0AlLàãËQAÌ@«0AlL€äËQAÌ€O«0AlL@åËQAÌ€V«0AlL`âËQAÌ@^«0AlL@ßËQAÌ@X«0AlL ÚËQAÌ@P«0AlLÀÔËQAÌÀS«0AlL€ËËQAÌ^«0AlLàÆËQAÌ@r«0AlLàÃËQAÌ@Š«0AlLàÃËQA̯«0AlL€ÂËQAÌÀ²«0AlLà©ËQAÌÀ¹«0AlLÀ¦ËQAÌÄ«0AlL ¦ËQÀϫ0AlL ¤ËQAÌ€á«0AlL ¥ËQAÌÀð«0AlL€¨ËQAÌ@¬0AlL`ªËQAÌ@¬0AlL «ËQAÌÀ ¬0AlL ¬ËQAÌ€,¬0AlL€±ËQAÌ/¬0AlL ·ËQAÌ@:¬0AlLà¼ËQAÌ€_¬0AlL€ÀËQAÌÀi¬0AlL¼ËQAÌÀu¬0AlL`¶ËQAÌ€{¬0AlL ¬ËQAÌ€{¬0AlL ©ËQȦ¬0AlL ¦ËQĄ¬0AlL€’ËQAÌ̬0AlL —ËQAÌâ¬0AlL—ËQAÌÀî¬0AlL€˜ËQAÌÀ­0AlL`‘ËQAÌÀ­0AlLÀ‹ËQAÌÀ)­0AlL@ˆËQAÌ€;­0AlL@†ËQAÌ­0AlL ‚ËQAÌ´­0AlL`ƒËQAÌ€À­0AlLÀËQAÌÀÛ­0AlLËQAÌ€®0AlL ƒËQAÌ€'®0AlL@}ËQAÌ€&®0AlL@vËQAÌ9®0AlLÀtËQAÌ@C®0AlLtËQAÌh®0AlLàuËQAÌ@p®0AlL@tËQAÌÀ„®0AlL pËQAÌÀ‘®0AlL€lËQAÌŸ®0AlLiËQAÌ@£®0AlL@eËQAÌ@¨®0AlLà`ËQA̤®0AlL€\ËQAÌ@¡®0AlL€YËQAÌ›®0AlL`WËQAÌ@§®0AlL€UËQAÌ@¬®0AlL RËQAÌ€½®0AlL OËQAÌ€Ú®0AlL OËQAÌ€î®0AlL@OËQAÌ@ù®0AlLàPËQAÌÀ¯0AlL SËQAÌ@¯0AlLàTËQAÌ€/¯0AlL UËQAÌ[¯0AlL SËQAÌw¯0AlLàPËQAÌ@¯0AlLMËQAÌÀš¯0AlL EËQAÌ@œ¯0AlL ?ËQAÌÀ¯0AlL`:ËQAÌ@”¯0AlL@6ËQAÌ€Ž¯0AlL 3ËQAÌ€¯0AlL0ËQAÌw¯0AlLà-ËQAÌÀd¯0AlL€,ËQAÌ€J¯0AlL`*ËQAÌ8¯0AlL€(ËQAÌ@$¯0AlL &ËQAÌÀý®0AlL°,ËQÀ߮0AlLpËQAÌ€á®0AlLÐËQAÌÀé®0AlLpðÊQAÌ€ ¯0AlL ÔÊQAÌÀW¯0AlL€×ÊQAÌ€g¯0AlL@ÕÊQAÌ@y¯0AlL ÖÊQį0AlL`ÔÊQAÌÀ™¯0AlLàÑÊQAÌů0AlL`ÎÊQAÌǯ0AlLàÊÊQAÌÀ¾¯0AlLÀÈÊQAÌ@˯0AlL ÃÊQÀЯ0AlLÀ»ÊQAÌÓ¯0AlL ²ÊQAÌÀį0AlL «ÊQAÌÁ¯0AlL¨ÊQAÌÀ»¯0AlL£ÊQAÌ€î¯0AlL0›ÊQAÌ@@°0AlL`’ÊQA̰0AlL€¢ÊQAÌœ°0AlL@ªÊQAÌ€®°0AlLð£ÊQAÌÀº°0AlL0›ÊQAÌ€`°0AlL`†ÊQAÌ€8°0AlLÐzÊQAÌÀc°0AlL`ÊQAÌÀŸ°0AlL aÊQAÌ@£°0AlL``ÊQAÌ@œ°0AlLà[ÊQAÌ@˜°0AlLYÊQAÌ@ƒ°0AlLàTÊQAÌz°0AlL NÊQAÌ@g°0AlL MÊQAÌ€S°0AlLÀHÊQAÌ]°0AlL`?ÊQAÌÀƒ°0AlL€=ÊQAÌ@°0AlL :ÊQAÌ}°0AlL€5ÊQð0AlL2ÊQAÌ¿°0AlLà/ÊQAÌÀÒ°0AlL /ÊQAÌÀì°0AlL€.ÊQAÌ€±0AlL`,ÊQAÌ€±0AlL %ÊQAÌ@±0AlL ÊQAÌ€ ±0AlLàÊQAÌ@þ°0AlL`ÊQAÌÀ ±0AlLÀÊQAÌ@±0AlL€ ÊQAÌ@±0AlL` ÊQAÌ@%±0AlL`ÊQAÌÀ(±0AlL€ÊQAÌ€8±0AlL@ÊQAÌ€B±0AlLàýÉQAÌ@M±0AlLùÉQAÌ€A±0AlLÀ÷ÉQAÌL±0AlL@ïÉQAÌ_±0AlL€ìÉQAÌ@}±0AlLÀäÉQAÌ@ƒ±0AlLàáÉQAÌ•±0AlL ßÉQAÌ@º±0AlL@ØÉQAÌʱ0AlLÀÕÉQAÌ€×±0AlLÀ×ÉQAÌÀç±0AlLÀÚÉQAÌ€²0AlLàÉQA̲0AlL`âÉQAÌ€L²0AlL èÉQAÌÀ~²0AlL ðÉQAÌ€“²0AlL€õÉQAÌÀ ²0AlLüÉQAÌÀ³²0AlLàÿÉQAÌ@Dz0AlL ûÉQAÌÀɲ0AlL`òÉQAÌ@Ʋ0AlLæÉQAÌ€¾²0AlL`áÉQA̾²0AlL€ÛÉQAÌDz0AlL`ÔÉQAÌÀî²0AlL@ÄÉQAÌë²0AlL`¼ÉQAÌÀÛ²0AlL ½ÉQAÌȲ0AlL¿ÉQAÌ·²0AlLÀ¾ÉQAÌ©²0AlL@¾ÉQAÌÀš²0AlL¿ÉQAÌ@„²0AlLÀ¸ÉQAÌz²0AlLàµÉQAÌ@w²0AlLÀ­ÉQAÌÀ}²0AlL€¤ÉQȦ²0AlL`ÉQAÌ“²0AlL –ÉQAÌ™²0AlL°’ÉQAÌœ²0AlL@‘ÉQAÌ@¹²0AlL`ÉQAÌÀѲ0AlLyÉQAÌ€è²0AlL`sÉQAÌÀù²0AlL kÉQAÌ€ ³0AlL eÉQAÌ@+³0AlL cÉQAÌ@B³0AlL@\ÉQAÌÀs³0AlLÐPÉQAÌ}³0AlL€NÉQAÌÀã³0AlLP?ÉQAÌ´0AlL 7ÉQAÌ€"´0AlL6ÉQAÌ€a´0AlLÐ.ÉQAÌý´0AlLÉQAÌ€xµ0AlL°ÉQAÌ€¶0AlL@ÉQA̪¶0AlL ÉQAÌ·¶0AlLàÉQAÌɶ0AlL0ÉQAÌ€å¶0AlL@'ÉQAÌ÷¶0AlLP/ÉQAÌ€·0AlL;ÉQAÌ·0AlL?ÉQAÌ"·0AlL`BÉQAÌ@+·0AlLðDÉQAÌ€0·0AlL0GÉQAÌ:·0AlL@JÉQAÌÀP·0AlLÐRÉQAÌ@j·0AlLp\ÉQAÌ€k·0AlL ^ÉQAÌ…·0AlL@eÉQAÌÀ‰·0AlL`gÉQAÌ€·0AlLlÉQAÌ··0AlLàrÉQAÌÀÒ·0AlL yÉQAÌå·0AlL }ÉQAÌ€ï·0AlL@€ÉQAÌ@ú·0AlLÀ‚ÉQAÌ@¸0AlLð…ÉQA̸0AlLàˆÉQAÌ€¸0AlL ‰ÉQAÌ@¸0AlLŠÉQAÌ@,¸0AlLðŠÉQAÌ5¸0AlLŒÉQAÌ?¸0AlL@ŽÉQAÌS¸0AlLÀŽÉQAÌe¸0AlLpÉQAÌv¸0AlLpÉQAÌÀˆ¸0AlLà‘ÉQAÌ€¸0AlLГÉQAÌÀœ¸0AlL ”ÉQAÌ@§¸0AlL°”ÉQAÌÀ¯¸0AlL°“ÉQAÌ€µ¸0AlL`‘ÉQAÌ@¸¸0AlLÀŽÉQAÌ€¸¸0AlL@ŒÉQAÌÀ´¸0AlLð‰ÉQAÌ@¯¸0AlLЇÉQAÌÀ§¸0AlL°†ÉQAÌÀž¸0AlL †ÉQAÌ@˜¸0AlL`‡ÉQAÌ@’¸0AlL`ˆÉQA̸0AlL0ŠÉQAÌ€{¸0AlL@‰ÉQAÌ@g¸0AlLЇÉQAÌÀQ¸0AlLÐ…ÉQAÌ<¸0AlL@ƒÉQAÌÀ8¸0AlLЀÉQAÌÀ5¸0AlL0~ÉQAÌ@.¸0AlL°{ÉQAÌÀ"¸0AlLÐyÉQAÌ@¸0AlL yÉQAÌ@¸0AlL`yÉQAÌÀ ¸0AlLÀyÉQAÌ€ï·0AlLsÉQAÌ€î·0AlLqÉQAÌ€ï·0AlL0oÉQAÌÀí·0AlLÐlÉQAÌ@ç·0AlLkÉQAÌ@à·0AlLðiÉQAÌ€Ú·0AlL€iÉQAÌ@Ò·0AlLðiÉQÀ̷0AlL@jÉQAÌ@¼·0AlLgÉQA̧·0AlL aÉQAÌ@’·0AlLà[ÉQAÌ€€·0AlL VÉQAÌ@k·0AlLPNÉQAÌ€M·0AlLCÉQAÌ@9·0AlLp:ÉQAÌÀ·0AlL.ÉQAÌ@æ¶0AlLðÉQAÌ@ð¶0AlLPÉQAÌÀë¶0AlLÐÉQAÌ@Þ¶0AlLÉQÀʶ0AlLÉQAÌ€¹¶0AlLpÉQAÌ€·0AlLÀøÈQAÌ€[·0AlLðìÈQAÌt·0AlLðöÈQAÌñ·0AlLðâÈQAÌ@¸0AlLpéÈQAÌ!¸0AlL`òÈQAÌ@G¸0AlLÿÈQAÌ@Q¸0AlLPÉQAÌ€Ž¸0AlLÉQAÌÀ¶¸0AlLÐ#ÉQA̪¸0AlL&ÉQA̱¸0AlLÀ'ÉQAÌÀª¸0AlL*ÉQAÌ€¦¸0AlLp+ÉQAÌ@£¸0AlLÀ)ÉQAÌÀ¸0AlL@)ÉQAÌÀ’¸0AlL)ÉQAÌÀ}¸0AlL,ÉQAÌ€õ·0AlL0=ÉQAÌ€î·0AlL`>ÉQAÌî·0AlL@@ÉQAÌ€ð·0AlLÐBÉQAÌö·0AlLDÉQAÌÿ·0AlL€DÉQAÌ ¸0AlL DÉQAÌ@¸0AlL`BÉQAÌ'¸0AlLÐ?ÉQAÌ<¸0AlLÐ<ÉQAÌ@U¸0AlL`:ÉQAÌg¸0AlL°8ÉQAÌÀy¸0AlL 8ÉQAÌ€„¸0AlL9ÉQAÌ’¸0AlLÀ:ÉQAÌÀ›¸0AlLð=ÉQAÌ@¦¸0AlLpAÉQAÌ®¸0AlL@DÉQAÌÀ±¸0AlL FÉQA̺¸0AlLFÉQAÌ€¾¸0AlL`JÉQAÌÀø0AlL MÉQAÌÀ͸0AlL€NÉQAÌ@Õ¸0AlLÀNÉQAÌ€á¸0AlLMÉQAÌÀê¸0AlL@OÉQAÌ@ø¸0AlL OÉQAÌ ¹0AlL`NÉQA̹0AlLhKÉQAÌ@¹0AlLÐKÉQAÌ@(¹0AlLpGÉQAÌ)¹0AlLØEÉQAÌ1¹0AlLGÉQAÌG¹0AlLFÉQAÌ@X¹0AlL DÉQAÌ[¹0AlL°BÉQAÌ`]¹0AlL(AÉQAÌÀd¹0AlL€BÉQAÌÀo¹0AlL0BÉQAÌt¹0AlLAÉQAÌàu¹0AlL<ÉQAÌ€}¹0AlL°<ÉQAÌ †¹0AlLP=ÉQAÌ€‚¹0AlL:ÉQAÌ€x¹0AlL4ÉQAÌ€t¹0AlL .ÉQAÌr¹0AlL+ÉQAÌ€l¹0AlLð(ÉQAÌ@i¹0AlLÀ&ÉQAÌ@e¹0AlLÀ#ÉQAÌ@_¹0AlLÐ ÉQAÌX¹0AlL@ÉQAÌ€Q¹0AlL€ÉQAÌ€M¹0AlLÀÉQAÌÀN¹0AlL€ÉQAÌ€N¹0AlLÀÉQAÌ@L¹0AlLÉQAÌ@F¹0AlL€ÉQAÌ=¹0AlL° ÉQAÌÀ6¹0AlLÐ ÉQAÌ@2¹0AlLH ÉQAÌ€7¹0AlL`ÉQAÌ@4¹0AlLðÉQAÌÀ.¹0AlLpÉQAÌ@)¹0AlLpÉQAÌ€#¹0AlL€þÈQAÌ@¹0AlL°ùÈQA̹0AlL÷ÈQAÌ€#¹0AlLôÈQAÌ&¹0AlL°îÈQAÌ@'¹0AlL@êÈQAÌÀC¹0AlLpàÈQAÌÀH¹0AlLÀÞÈQAÌS¹0AlL°ÚÈQAÌ€b¹0AlL@ÖÈQAÌh¹0AlL×ÈQAÌ@l¹0AlLðÕÈQAÌs¹0AlLÕÈQAÌ{¹0AlLÀÔÈQAÌ@‚¹0AlLÓÈQAÌÀ‰¹0AlLàÏÈQAÌŸ¹0AlL°ÈÈQAÌ€¬¹0AlLðÇÈQAÌ€¼¹0AlLÉÈQAÌ@ѹ0AlLËÈQAÌ@ß¹0AlL0ÌÈQAÌõ¹0AlLÀËÈQA̺0AlL€ÊÈQA̺0AlLÀÇÈQAÌÀ'º0AlL ÅÈQAÌ1º0AlLÐÂÈQAÌ@Aº0AlL€ÂÈQAÌ€Nº0AlLÃÈQAÌ€Yº0AlL`ÃÈQAÌ€_º0AlLpÂÈQAÌÀgº0AlLPÂÈQAÌ@lº0AlL`ÃÈQAÌÀnº0AlLÅÈQAÌ€}º0AlLÆÈQẢº0AlLÇÈQAÌÀ•º0AlLÈÈQAÌšº0AlLÐÉÈQAÌÀº0AlLàËÈQAÌÀ·º0AlL@ÎÈQAÌ Ǻ0AlL`ÏÈQAÌ@Ǻ0AlLÀÍÈQAÌ€»º0AlL ËÈQAÌ@µº0AlLÊÈQAÌ`´º0AlLxÈÈQAÌp°º0AlLlÆÈQA̼º0AlL`ÆÈQA̠ƺ0AlLðÇÈQAÌÒº0AlLÀÉÈQAÌ̺0AlLÀÊÈQAÌ0Õº0AlLtÍÈQAÌÀߺ0AlLPÑÈQAÌÀæº0AlL`ÒÈQAÌ@õº0AlLÐÑÈQAÌ€»0AlLÀÑÈQAÌ€»0AlL ÑÈQAÌ»0AlL@ÐÈQAÌ$»0AlL`ÏÈQAÌ€'»0AlL ÎÈQAÌ@1»0AlL ÎÈQAÌ5»0AlLPÌÈQAÌ 3»0AlL€ÊÈQAÌÀ4»0AlLÀÈÈQAÌ@6»0AlL ÆÈQAÌ2»0AlL@ÄÈQAÌ€,»0AlL0ÃÈQAÌÀ%»0AlLPÂÈQAÌ`»0AlL¨ÁÈQAÌ€»0AlLÐÀÈQAÌ€»0AlLð¾ÈQAÌ`ýº0AlLø¾ÈQAÌñº0AlL ½ÈQAÌÀÞº0AlLºÈQAÌк0AlL¹ÈQAÌ€Àº0AlL¸ÈQAÌ€«º0AlLP·ÈQAÌ@™º0AlL`¶ÈQAÌ@Œº0AlLðµÈQAÌ@~º0AlLµÈQAÌ€vº0AlL0³ÈQAÌ@jº0AlL`²ÈQAÌÀ_º0AlL0±ÈQAÌSº0AlL±ÈQAÌÀJº0AlL@°ÈQAÌ`Dº0AlL±ÈQAÌ€6º0AlL ¯ÈQAÌ,º0AlL ­ÈQAÌÀº0AlLЪÈQAÌ@º0AlLP©ÈQAÌ º0AlL0§ÈQA̺0AlL¦ÈQA̺0AlL`£ÈQAÌÀù¹0AlL€¢ÈQAÌÀõ¹0AlL°ŸÈQAÌà¹0AlL`žÈQÀع0AlLžÈQAÌÀÔ¹0AlLÀ›ÈQAÌع0AlL`™ÈQAÌ@Þ¹0AlL@—ÈQAÌå¹0AlLp•ÈQAÌ@é¹0AlLð‘ÈQAÌ€í¹0AlL`ÈQAÌ ô¹0AlLhÈQAÌñ¹0AlL@‹ÈQAÌÀë¹0AlL@‰ÈQAÌÀì¹0AlL@‡ÈQAÌÀú¹0AlLÐ…ÈQAÌ€ý¹0AlLP„ÈQAÌ@ø¹0AlL0‚ÈQAÌ€í¹0AlLpÈQAÌ€å¹0AlL }ÈQÀѹ0AlL°|ÈQÀ˹0AlL |ÈQAÌ€¾¹0AlLÐzÈQAÌ@µ¹0AlLyÈQAÌÀ­¹0AlLàvÈQAÌÀ¥¹0AlLuÈQAÌ“¹0AlLpsÈQAÌÀй0AlLPsÈQAÌ@€¹0AlLuÈQAÌÀr¹0AlL°rÈQAÌÀ]¹0AlL°qÈQAÌÀH¹0AlL€qÈQAÌ9¹0AlLqÈQAÌ%¹0AlL0oÈQAÌÀ¹0AlLpmÈQA̹0AlLlÈQAÌõ¸0AlLÀiÈQAÌÀí¸0AlLðgÈQAÌ@߸0AlLpgÈQA̠θ0AlLÐdÈQAÌÀº¸0AlLp`ÈQAÌ€ª¸0AlL0]ÈQAÌÀš¸0AlL[ÈQAÌ€‰¸0AlL0\ÈQAÌ|¸0AlLpYÈQAÌ€x¸0AlLÐVÈQAÌÀr¸0AlL°TÈQAÌp¸0AlLàRÈQAÌ€i¸0AlLÀQÈQAÌd¸0AlL`MÈQAÌd¸0AlLGÈQAÌÀb¸0AlL05ÈQAÌ@b¸0AlL€'ÈQAÌÀ]¸0AlL€"ÈQAÌ€S¸0AlL` ÈQAÌ@N¸0AlLðÈQAÌ€T¸0AlLpÈQAÌ@`¸0AlL€ÈQAÌÀe¸0AlL0 ÈQAÌ€f¸0AlLpÈQAÌÀb¸0AlLÐúÇQAÌ@a¸0AlLíÇQAÌ€d¸0AlL æÇQAÌÀl¸0AlL`ãÇQAÌ€i¸0AlLÐÍÇQAÌi¸0AlL»ÇQAÌÀg¸0AlLzÇQAÌ@_¸0AlLBÇQAÌi¸0AlL`ÊÆQAÌ@j¸0AlL€¹ÆQAÌÀ£¸0AlL $ÆQA̹0AlLªÅQAÌ~¹0AlLЃÅQAÌ@½¹0AlL``ÅQAÌÀ×¹0AlL@XÅQAÌ@ë¹0AlL€OÅQAÌÀþ¹0AlLàFÅQAÌ@º0AlL AÅQAÌ$º0AlL <ÅQAÌ€Jº0AlL€4ÅQAÌ4º0AlL@'ÅQA̺0AlL`#ÅQAÌÀº0AlL@#ÅQAÌ@º0AlL`#ÅQAÌQº0AlL0ïÄQAÌ@º0AlL ÇÄQAÌ@çº0AlL ¦ÄQÀû0AlL XÄQAÌ@¼0AlLÀÄQAÌ€P¼0AlLÐÄQAÌ@j¼0AlLÄQAÌ©¼0AlL°÷ÃQAÌÀö¼0AlLpÄQAÌÀú¼0AlLÄQAÌ€ ½0AlLÀÄQA̽0AlL@ ÄQA̽0AlL ÄQAÌ€$½0AlL@ÄQAÌC½0AlL@ÄQAÌÀM½0AlLàûÃQAÌ@c½0AlL€÷ÃQAÌÀ†½0AlL úÃQAÌŸ½0AlL€ùÃQAÌÀ±½0AlL`÷ÃQAÌ@ǽ0AlL€ùÃQAÌ@â½0AlL÷ÃQAÌ€¾0AlLöÃQAÌÀ)¾0AlL`óÃQAÌ7¾0AlLàêÃQAÌZ¾0AlL@èÃQAÌÀm¾0AlL€âÃQAÌ@v¾0AlLâÃQAÌÀ‘¾0AlL`àÃQAÌÀ¤¾0AlL ÝÃQA̹¾0AlLÜÃQÀ˾0AlL€×ÃQAÌÀ¾0AlL ÏÃQA̶¾0AlL ËÃQAÌÀ«¾0AlLàÇÃQAÌ€ž¾0AlL ÄÃQAÌÀ—¾0AlL€¼ÃQAÌ‘¾0AlL ·ÃQAÌ@Œ¾0AlL³ÃQAÌÀ‚¾0AlL°ÃQAÌy¾0AlL ¬ÃQAÌÀj¾0AlLà©ÃQAÌ€Y¾0AlL€¦ÃQAÌ@Z¾0AlLÀ¡ÃQAÌÀZ¾0AlLŸÃQAÌ@;¾0AlL ›ÃQAÌÀ(¾0AlL` ÃQA̾0AlL ¢ÃQAÌ@÷½0AlL€ÃQAÌÀϽ0AlLÀšÃQAÌÀǽ0AlLà–ÃQAÌÔ½0AlL€’ÃQÀν0AlLà‰ÃQAÌ€Á½0AlL …ÃQAÌ@н0AlL ƒÃQAÌ@ô½0AlL„ÃQA̾0AlLÀƒÃQAÌÀ¾0AlL@ƒÃQAÌ%¾0AlL €ÃQAÌ@4¾0AlL`~ÃQAÌ€:¾0AlLÀxÃQAÌ€9¾0AlLàvÃQAÌ@0¾0AlL pÃQAÌ$¾0AlL`mÃQAÌ@¾0AlL@hÃQAÌ€ ¾0AlLÀeÃQAÌÀþ½0AlL€cÃQAÌ ¾0AlL WÃQAÌ@¾0AlL€SÃQAÌ ¾0AlL PÃQAÌ)¾0AlLNÃQAÌÀ4¾0AlL€JÃQAÌ@B¾0AlL€IÃQAÌ€L¾0AlL`HÃQAÌ€E¾0AlLÀAÃQAÌ@8¾0AlL€?ÃQAÌÀ#¾0AlLà;ÃQA̾0AlL7ÃQAÌ€ ¾0AlL€&ÃQAÌ€¾0AlL #ÃQA̾0AlLÀ!ÃQAÌ€'¾0AlLÀ#ÃQAÌ@1¾0AlL`%ÃQAÌ€X¾0AlL€(ÃQAÌ€n¾0AlL'ÃQAÌŒ¾0AlL€$ÃQAÌ@¨¾0AlL!ÃQAÌ€º¾0AlL ÃQAÌ€Ö¾0AlLÀ ÃQAÌ@å¾0AlLà%ÃQAÌ¿0AlL 'ÃQAÌÀ¿0AlLÀ!ÃQAÌ¿0AlL@ÃQAÌ€ò¾0AlLÃQAÌå¾0AlLÃQAÌ@ã¾0AlL ÃQAÌÀì¾0AlLàÃQAÌÀë¾0AlLÃQAÌ€¿0AlL€ÃQAÌ€ê¾0AlL0ÿÂQAÌ€§¾0AlLþÂQAÌ€c¾0AlLÃQAÌÀ=¾0AlLÃQAÌ@.¾0AlL` ÃQAÌ@¾0AlLà ÃQAÌ€¾0AlLà ÃQAÌÀ¾0AlL ÃQA̾0AlL ýÂQAÌÀú½0AlL öÂQAÌ€ñ½0AlL@òÂQAÌë½0AlL îÂQAÌ@ݽ0AlL`íÂQAÌ@Ù½0AlLêÂQÀͽ0AlLèÂQAÌ@ؽ0AlL@ÐÂQAÌÀâ½0AlL@ËÂQAÌ€ù½0AlL ÌÂQAÌÀ¾0AlL`ÍÂQAÌ@¾0AlL ÎÂQAÌÀ,¾0AlLÍÂQAÌÀS¾0AlL€ÑÂQAÌÀx¾0AlL ÖÂQAÌ@—¾0AlL ÑÂQAÌ@›¾0AlL`ÊÂQAÌ€¥¾0AlL ÆÂQAÌ»¾0AlL€ÈÂQAÌ@Ǿ0AlLàÉÂQAÌ@Þ¾0AlL`ÌÂQAÌÀí¾0AlLàÍÂQAÌÀ¿0AlL€ÏÂQAÌ¿0AlL ÎÂQAÌ€;¿0AlL€ÍÂQAÌÀM¿0AlL€ÌÂQAÌ\¿0AlL€ÏÂQAÌ@k¿0AlLàÓÂQAÌ{¿0AlL ØÂQAÌ@ˆ¿0AlL`ÛÂQAÌ@•¿0AlL`ÞÂQAÌ€¯¿0AlL`âÂQAÌ@Ä¿0AlLçÂQAÌ@ê¿0AlLÀëÂQAÌ À0AlLÀåÂQAÌ@À0AlLààÂQAÌÀÀ0AlLÀÜÂQAÌ@À0AlL@ÓÂQAÌÀ0AlL ÏÂQAÌÀ0AlLÀ¶ÂQAÌ@ À0AlL·ÂQAÌ€À0AlL°°ÂQAÌUÀ0AlLà³ÂQAÌ”À0AlLÀÂÂQAÌ¿À0AlLÌÂQAÌ@éÀ0AlL ÏÂQAÌ@ûÀ0AlL@ÊÂQAÌÁ0AlLàÄÂQAÌ@Á0AlL`ÄÂQAÌ€.Á0AlL ÈÂQAÌ@7Á0AlL ÂÂQAÌÀ;Á0AlLà¿ÂQAÌCÁ0AlL »ÂQAÌ@LÁ0AlL@·ÂQAÌZÁ0AlL€´ÂQAÌ@fÁ0AlL´ÂQAÌwÁ0AlL@µÂQAÌ€”Á0AlL¸ÂQAÌ€£Á0AlLÀ­ÂQAÌ@¤Á0AlL§ÂQAÌÀ—Á0AlL€£ÂQAÌÀÁ0AlL ¡ÂQAÌÁ0AlLÀ™ÂQAÌÁ0AlL@—ÂQAÌÀ‰Á0AlLà’ÂQAÌ€zÁ0AlL “ÂQAÌqÁ0AlL ‘ÂQAÌÀcÁ0AlL ŽÂQAÌ@\Á0AlL@ŒÂQAÌ@IÁ0AlL`„ÂQAÌ;Á0AlL ‚ÂQAÌ@Á0AlLÀuÂQAÌÁ0AlL`sÂQAÌÀ Á0AlL oÂQAÌÁ0AlL€kÂQAÌ+Á0AlL@hÂQAÌ€;Á0AlL`_ÂQAÌ@AÁ0AlL@ZÂQAÌEÁ0AlLWÂQAÌÀ3Á0AlL`PÂQAÌ$Á0AlL KÂQAÌ@Á0AlL€EÂQAÌñÀ0AlL`AÂQAÌèÀ0AlL?ÂQAÌÈÀ0AlL`>ÂQAÌÀ³À0AlLà>ÂQAÌ@“À0AlL€?ÂQAÌ@†À0AlL@<ÂQAÌyÀ0AlL9ÂQAÌÀkÀ0AlL€8ÂQAÌ@GÀ0AlL 6ÂQAÌ€2À0AlL@7ÂQAÌ!À0AlLÀ7ÂQAÌ@ À0AlL`5ÂQAÌÀý¿0AlL 3ÂQAÌ@è¿0AlL€1ÂQAÌì¿0AlLÀ'ÂQAÌ€÷¿0AlL`"ÂQAÌ À0AlLÀ!ÂQAÌÀ0À0AlL ÂQAÌ@9À0AlL@ÂQAÌEÀ0AlL ÂQAÌ€IÀ0AlL ÂQAÌPÀ0AlLÀ ÂQAÌÀJÀ0AlL ÂQAÌ@EÀ0AlLÀÂQAÌ€HÀ0AlLÀüÁQAÌWÀ0AlL€úÁQAÌ@BÀ0AlL`öÁQAÌÀ,À0AlL@ñÁQAÌÀ0AlL îÁQAÌ€ À0AlL ìÁQAÌÀé¿0AlLÀãÁQAÌÀë¿0AlL@àÁQAÌ@ À0AlLÀâÁQAÌ@"À0AlL àÁQAÌ0À0AlL ßÁQAÌ;À0AlL ÞÁQAÌ@HÀ0AlL€ÝÁQAÌ€WÀ0AlL ÝÁQAÌ@wÀ0AlL ÚÁQAÌ€ŽÀ0AlL×ÁQAÌÀÀ0AlLÀÒÁQAÌ€’À0AlLÐÁQAÌ@À0AlL ÌÁQAÌ€žÀ0AlL ÉÁQAÌšÀ0AlLÀÃÁQAÌ—À0AlLÀ¿ÁQAÌ€ŽÀ0AlLºÁQAÌ@À0AlL¸ÁQAÌÀkÀ0AlL µÁQAÌ@RÀ0AlLà®ÁQAÌ=À0AlL¬ÁQAÌ,À0AlL £ÁQAÌ€CÀ0AlL@”ÁQAÌÀdÀ0AlLƒÁQAÌ®À0AlL qÁQAÌÀåÀ0AlL@^ÁQAÌÁ0AlL`VÁQAÌ€'Á0AlL@KÁQAÌ€6Á0AlLà@ÁQAÌEÁ0AlL <ÁQAÌ]Á0AlL<ÁQAÌÀpÁ0AlL ?ÁQAÌÀzÁ0AlLà@ÁQAÌ—Á0AlL >ÁQAÌÀ‘Á0AlLà6ÁQAÌ€¤Á0AlL@1ÁQAÌÀÁ0AlL ,ÁQȦÁ0AlL (ÁQAÌ“Á0AlLà#ÁQAÌ@Á0AlL@ÁQAÌÀˆÁ0AlL ÁQAÌ€Á0AlLàÁQAÌÀoÁ0AlLàÁQAÌÀeÁ0AlL ÁQAÌ@ZÁ0AlLÀÁQAÌ@HÁ0AlL ÁQAÌ@MÁ0AlL ÁQAÌJÁ0AlLàÁQAÌ€HÁ0AlLÁQAÌÀ$Á0AlL ûÀQAÌ@úÀ0AlL øÀQAÌÀåÀ0AlL€ùÀQAÌ@ÙÀ0AlLøÀQAÌÄÀ0AlL ÷ÀQAÌ@¸À0AlL@÷ÀQAÌÀ0AlL€öÀQAÌ€FÀ0AlL èÀQAÌÀ2À0AlL€çÀQAÌÀÀ0AlL æÀQAÌ€À0AlL ßÀQAÌ€À0AlL`ÜÀQAÌ€À0AlL`àÀQAÌ€EÀ0AlL`áÀQAÌ@mÀ0AlL€ßÀQAÌ@„À0AlL`ÝÀQAÌ@•À0AlL€ÖÀQAÌ€½À0AlL@ÒÀQAÌÀÕÀ0AlL@ÒÀQAÌ@ùÀ0AlL`ÑÀQAÌ@Á0AlLÀÍÀQAÌ#Á0AlLÌÀQAÌ€.Á0AlLÑÀQAÌ€<Á0AlL@ÇÀQAÌÀ#Á0AlLÀÁÀQAÌ€Á0AlL ¿ÀQAÌÀòÀ0AlLà¼ÀQAÌÞÀ0AlL ´ÀQAÌ€ Á0AlL`°ÀQAÌ@Á0AlL€«ÀQAÌÀÁ0AlL ¥ÀQAÌ Á0AlL™ÀQAÌ€Á0AlLàŒÀQAÌ@)Á0AlLà†ÀQAÌ>Á0AlL ‹ÀQAÌÀaÁ0AlLà‰ÀQAÌÀdÁ0AlL€‚ÀQAÌÀjÁ0AlL€~ÀQAÌ@rÁ0AlL yÀQAÌÀuÁ0AlL jÀQAÌ@jÁ0AlL`dÀQAÌÀSÁ0AlL ^ÀQAÌ!Á0AlL€XÀQAÌ@Á0AlL TÀQAÌ@Á0AlLàKÀQAÌ@óÀ0AlLÀDÀQAÌ€ÿÀ0AlL€@ÀQAÌ€1Á0AlL`BÀQAÌÀMÁ0AlL AÀQAÌ€oÁ0AlLà?ÀQAÌÁ0AlL€>ÀQAÌ@®Á0AlLÀ>ÀQAÌÉÁ0AlL€=ÀQAÌ€ÏÁ0AlL€7ÀQA̳Á0AlL@1ÀQAÌ€¨Á0AlL€+ÀQAÌ€°Á0AlLà#ÀQAÌÀ¯Á0AlLÀQAÌ€¨Á0AlLàÀQAÌŸÁ0AlL  ÀQAÌÀœÁ0AlLÀÀQAÌ”Á0AlL þ¿QAÌ€–Á0AlLàø¿QAÌÀmÁ0AlLàó¿QAÌ€\Á0AlL ò¿QAÌ€OÁ0AlL`ð¿QAÌ;Á0AlLï¿QAÌÀ0Á0AlL@î¿QAÌ@Á0AlL ï¿QAÌ€ Á0AlL ì¿QAÌ@õÀ0AlLè¿QAÌíÀ0AlL€æ¿QAÌ@áÀ0AlL ä¿QAÌ€ÔÀ0AlLàä¿QAÌ€ÆÀ0AlL`å¿QA̳À0AlL ë¿QAÌœÀ0AlL`ê¿QAÌ—À0AlLæ¿QAÌÀ‰À0AlL€Ù¿QAÌ|À0AlL@Ô¿QAÌÀhÀ0AlL Ó¿QAÌXÀ0AlLàÒ¿QAÌ€QÀ0AlLÀпQAÌSÀ0AlL`È¿QAÌÀSÀ0AlL`Á¿QAÌÀZÀ0AlLÀ¾¿QAÌfÀ0AlL ¾¿QAÌÀtÀ0AlL`»¿QAÌ@ƒÀ0AlL º¿QAÌÀŒÀ0AlL`»¿QAÌ€žÀ0AlLൿQAÌ@¤À0AlL€³¿QAÌ€´À0AlL@²¿QAÌÊÀ0AlL ²¿QAÌ@×À0AlL ²¿QAÌ@ÜÀ0AlL ®¿QAÌ@åÀ0AlL§¿QAÌñÀ0AlL ¤¿QAÌ@Á0AlL¯¿QAÌ€Á0AlL`´¿QAÌ@-Á0AlL ¶¿QAÌ@+Á0AlL@¬¿QAÌ@$Á0AlLࣿQAÌ€Á0AlL ¢¿QAÌÀÁ0AlL Ÿ¿QAÌ€Á0AlLÀ¿QAÌÀîÀ0AlL`›¿QAÌ€ðÀ0AlL€“¿QAÌ€ïÀ0AlL€¿QAÌ8Á0AlLÀŒ¿QAÌÀDÁ0AlL ƒ¿QAÌ€KÁ0AlL€€¿QAÌÀ]Á0AlLy¿QAÌ€aÁ0AlL€o¿QAÌUÁ0AlLj¿QAÌ@WÁ0AlL@d¿QAÌ@XÁ0AlL€a¿QAÌÀMÁ0AlL€X¿QAÌ€GÁ0AlL U¿QAÌGÁ0AlL`I¿QAÌ@NÁ0AlL D¿QAÌRÁ0AlLB¿QAÌÀvÁ0AlLàC¿QAÌÀ{Á0AlLà@¿QAÌ@„Á0AlLÀ;¿QAÌÀ|Á0AlL 5¿QAÌiÁ0AlL@1¿QAÌ@aÁ0AlL +¿QAÌ€_Á0AlL$¿QAÌ@\Á0AlL ¿QAÌÀfÁ0AlLà¿QAÌ@tÁ0AlL¿QAÌ€Á0AlL€¿QÄÁ0AlLÀ ¿QAÌÀŠÁ0AlL ¿QAÌ€Á0AlL ¿QAÌÀ”Á0AlL ü¾QAÌ€iÁ0AlL@ë¾QAÌÀ_Á0AlL`é¾QAÌÀVÁ0AlLê¾QAÌJÁ0AlL€ä¾QAÌÀ<Á0AlLä¾QAÌ@ Á0AlL€â¾QAÌ€Á0AlLàݾQAÌÁ0AlL ؾQAÌ9Á0AlL€Ò¾QAÌRÁ0AlL È¾QAÌÀ^Á0AlLàžQAÌÀkÁ0AlLþQAÌÀcÁ0AlL྾QAÌ@fÁ0AlL๾QAÌ_Á0AlLÀ·¾QAÌ€VÁ0AlLà´¾QAÌ@NÁ0AlL`®¾QAÌ@<Á0AlLÀ©¾QAÌ'Á0AlLাQAÌÀÁ0AlL`®¾QAÌÀÁ0AlL ¯¾QAÌùÀ0AlL °¾QAÌ€ãÀ0AlL µ¾QAÌÀÎÀ0AlLÀ³¾QAÌ@ÙÀ0AlLாQAÌ@ÛÀ0AlL «¾QAÌÀÝÀ0AlL`¦¾QAÌÀÌÀ0AlL ¢¾QAÌ@¯À0AlL£¾QAÌ€…À0AlL §¾QAÌ€mÀ0AlLࣾQAÌ€bÀ0AlL€¡¾QAÌRÀ0AlLà¾QAÌ@>À0AlL€™¾QAÌ@À0AlL@œ¾QAÌ€À0AlLà¾QAÌ@õ¿0AlL@ž¾QAÌ€á¿0AlL œ¾QÀɿ0AlL¾QAÌÀ©¿0AlL€ž¾QAÌÀ”¿0AlLà¾QAÌ¿0AlL™¾QAÌu¿0AlL€”¾QAÌÀx¿0AlL@¾QAÌÀ¿0AlL „¾QAÌ@¡¿0AlLà¾QAÌ@±¿0AlL |¾QA̺¿0AlLz¾QAÌ@â¿0AlL€v¾QAÌ@æ¿0AlL€o¾QAÌ»¿0AlL`a¾QAÌ€;¿0AlL@J¾QAÌ€+¿0AlLàB¾QAÌÀ&¿0AlLÀ:¾QAÌ0¿0AlL 2¾QAÌ€L¿0AlL'¾QAÌ€y¿0AlL@¾QAÌ@Ž¿0AlLà¾QAÌ¿0AlLà¾QAÌ€µ¿0AlLÀ¾QAÌο0AlL@¾QAÌ€Õ¿0AlLÀ¾QAÌ@ý¿0AlL@¾QAÌ@À0AlLà¾QAÌ@%À0AlL@¾QAÌ8À0AlLà¾QAÌ€EÀ0AlL@¾QAÌžÀ0AlL ¾QAÌ¡À0AlL`¾QAÌÀ±À0AlL ¾QAÌÃÀ0AlL`¾QAÌÀ¼À0AlLÀû½QAÌÀ²À0AlL0ø½QAÌ¿À0AlLÀî½QAÌ€òÀ0AlLpë½QAÌ€Á0AlLé½QAÌ€Á0AlLÀæ½QAÌ€Á0AlLàã½QAÌ@ùÀ0AlL@ß½QAÌòÀ0AlLàØ½QAÌÔÀ0AlLàÔ½QAÌÇÀ0AlLàÔ½QA̾À0AlL Ð½QAÌÀ¼À0AlL ʽQAÌ€µÀ0AlLàýQAÌÀ À0AlLàĽQAÌ”À0AlL ŽQAÌ@À0AlL@À½QAÌ’À0AlL€º½QAÌ’À0AlL °½QAÌŒÀ0AlL`¬½QAÌÀeÀ0AlL°«½QAÌJÀ0AlL §½QAÌ@7À0AlLÀ¨½QAÌÀ0AlL€¡½QAÌ@õ¿0AlLàŸ½QAÌÀÙ¿0AlL ½QA̾¿0AlL ˜½QAÌ@j¿0AlL ‘½QAÌ€Q¿0AlL Œ½QAÌA¿0AlL‰½QAÌ1¿0AlLÀ…½QAÌÀ2¿0AlL€€½QAÌ€y¿0AlL€½QAÌ€¡¿0AlLà|½QA̶¿0AlLz½QAÌÀå¿0AlLs½QAÌÀÀ0AlL@p½QAÌ/À0AlL€l½QAÌ<À0AlL e½QAÌ5À0AlL^½QAÌ€BÀ0AlL€X½QAÌ@AÀ0AlL R½QAÌ@#À0AlLàM½QAÌÀ0AlL@K½QAÌÀó¿0AlL€J½QAÌ@Ö¿0AlL@I½QAÌÀÁ¿0AlL B½QAÌ@Ó¿0AlL >½QAÌ@å¿0AlL :½QAÌð¿0AlLÀ4½QAÌ€é¿0AlL`0½QAÌÀß¿0AlLà)½QAÌÀÛ¿0AlL€½QAÌÀé¿0AlLÀ½QAÌ@À0AlLà½QAÌ€À0AlL€½QAÌÀ2À0AlLà ½QAÌ@;À0AlL½QAÌ€ À0AlL½QAÌ@À0AlL€ÿ¼QAÌÀÀ0AlLÀ½QAÌø¿0AlL@ÿ¼QAÌê¿0AlLÿ¼QAÌ@Ö¿0AlLÀü¼QAÌÅ¿0AlL@ú¼QAÌÀ¤¿0AlL@÷¼QAÌÀ™¿0AlL ô¼QAÌÀ”¿0AlL€ï¼QAÌÀ¿0AlLàç¼QAÌ€}¿0AlLÀݼQAÌ@j¿0AlL ×¼QAÌc¿0AlLàÓ¼QAÌ@`¿0AlL ͼQAÌÀe¿0AlL À¼QAÌ€]¿0AlL`¼¼QAÌ@X¿0AlLÀ¹¼QAÌ@F¿0AlLº¼QAÌ€:¿0AlLÀ¸¼QAÌÀ¿0AlL๼QAÌ€¿0AlL ³¼QAÌø¾0AlLà°¼QAÌÀð¾0AlLà­¼QAÌ@ø¾0AlL€©¼QAÌ€ñ¾0AlL`¡¼QÀо0AlL€£¼QA̾¾0AlL@¥¼QAÌ@±¾0AlL@£¼QAÌ@¾0AlL ›¼QAÌ€o¾0AlL€—¼QAÌ_¾0AlL@”¼QAÌÀH¾0AlLà”¼QAÌ€1¾0AlL ’¼QAÌÀ¾0AlLÀ¼QAÌÀ¾0AlL ¼QAÌô½0AlLàŽ¼QAÌ@à½0AlL ‰¼QÀĽ0AlLˆ¼QAÌÀµ½0AlL`ƒ¼QAÌ@À½0AlLw¼QAÌÀº½0AlL m¼QAÌ¥½0AlL h¼QẢ½0AlL€h¼QAÌs½0AlLÀg¼QAÌÀO½0AlLg¼QAÌ€2½0AlL h¼QA̽0AlLÀd¼QA̽0AlL@a¼QAÌë¼0AlLà\¼QAÌÀå¼0AlLÀX¼QAÌݼ0AlL€Q¼QAÌÀÙ¼0AlL@K¼QAÌ€ä¼0AlL`E¼QAÌÀó¼0AlL A¼QAÌ@½0AlL@@¼QAÌÀ&½0AlL@B¼QAÌ=½0AlL ?¼QAÌ@H½0AlL€6¼QAÌ@Ú¼0AlL "¼QAÌ˼0AlL !¼QAÌÀ¬¼0AlLà¼QAÌz¼0AlL€ ¼QAÌÀo¼0AlL #¼QAÌ`¼0AlLà&¼QAÌE¼0AlL "¼QAÌ+¼0AlL`¼QAÌü»0AlL ¼QAÌ@å»0AlLà¼QAÌÀÙ»0AlL ¼QAÌ€Ö»0AlL`¼QAÌÀË»0AlLà¼QAÌ»»0AlL¼QAÌ€«»0AlL@ ¼QA̘»0AlLà ¼QAÌy»0AlL ¼QAÌ€p»0AlLÀ ¼QAÌÀ_»0AlL` ¼QAÌF»0AlL¼QAÌ€=»0AlL ¼QAÌÀ*»0AlL ¼QAÌ»0AlL€¼QAÌ@»0AlLà¼QAÌ@òº0AlL ¼QAÌ@Ùº0AlL€¼QAÌк0AlL€¼QAÌ@ĺ0AlL ¼QAÌ@®º0AlL¼QAÌŠº0AlL ¼QAÌÀ‰º0AlL  ¼QAÌ@vº0AlLÀ!¼QAÌ€tº0AlL@¼QAÌ€Sº0AlLà¼QAÌ>º0AlL€¼QAÌ€7º0AlL`¼QAÌ"º0AlL@¼QAÌ€º0AlL¼QAÌÀú¹0AlL¼QAÌݹ0AlL¼QAÌ@Ϲ0AlL€¼QAÌÀ˹0AlL ¼QAÌÀº¹0AlL@ÿ»QAÌ@›¹0AlL@ÿ»QAÌÀy¹0AlLàü»QAÌa¹0AlL`ø»QAÌÀ]¹0AlLàó»QAÌÀY¹0AlLî»QAÌ@G¹0AlL ç»QAÌ'¹0AlL Ä»QAÌ€¹0AlL€´»QAÌ€÷¸0AlL@¨»QAÌŸ0AlL z»QAÌ@¾¸0AlL`n»QAÌ@ø0AlL d»QAÌ¿¸0AlL ]»QAÌ@E¸0AlL Y»QAÌÀô·0AlLà`»QAÌ€··0AlLÀf»QAÌÀv·0AlL@l»QAÌX·0AlL°k»QAÌ@"·0AlLÀj»QAÌ€ä¶0AlL`i»QAÌ“¶0AlLÀi»QAÌ€V¶0AlL@p»QAÌÀ ¶0AlLx»QAÌ@Ôµ0AlL€x»QAÌ€›µ0AlLw»QAÌDµ0AlL€»QAÌÀæ´0AlL`€»QAÌÀŒ´0AlL }»QAÌ@7´0AlL@w»QAÌ@´0AlLàm»QÀƳ0AlLÀg»QAÌ@^³0AlL b»QAÌ€ô²0AlL g»QAÌf²0AlLÀ}»QAÌÀ/²0AlLà»QAÌ@æ±0AlLÀ¡»QAÌ€¹±0AlLà±»QAÌ@f±0AlL ¸»QA̱0AlLົQAÌ@°0AlL€Â»QAÌ€“°0AlL`Ò»QAÌi°0AlLÞ»QAÌ€_°0AlL ê»QAÌ0°0AlL ò»QAÌ@°0AlL€û»QAÌÀû¯0AlLP¼QAÌð¯0AlLÀ ¼QÀ˯0AlL ¼QAÌÀ˜¯0AlL¼QAÌ`¯0AlL€¼QAÌ@#¯0AlL¼QAÌÛ®0AlLÀ¼QAÌÀœ®0AlL`¼QAÌÀm®0AlL ¼QAÌÀI®0AlL%¼QAÌ@÷­0AlL`K¼QAÌ@æ­0AlL`R¼QAÌÀ¯­0AlL@e¼QAÌ€™­0AlL€o¼QAÌÀx­0AlL@ƒ¼QAÌX­0AlLàŒ¼QAÌ€1­0AlL ˜¼QAÌÀü¬0AlLÀ ¼QAÌ€·¬0AlL ª¼QAÌÀ¬0AlLÀ·¼QAÌà:¬0AlLèÆ¼QAÌ@¬0AlL€È¼QAÌ€"«0AlL€½¼QAÌûª0AlL€»¼QAÌߪ0AlL@·¼QAÌ€³ª0AlLÀ¬¼QAÌÀ¬ª0AlLÀ£¼QAÌ€õ©0AlL਼QAÌÀº©0AlL`­¼QAÌ@~©0AlL ®¼QAÌ€W©0AlL`³¼QAÌÀ8©0AlL¼¼QAÌ©0AlL@ͼQAÌÀó¨0AlLÀÚ¼QAÌ€¼¨0AlLàè¼QAÌ@Œ¨0AlL€å¼QAÌ€U¨0AlL€Þ¼QAÌ@§0AlL Í¼QAÌ@p§0AlL Ó¼QAÌ3§0AlL Ù¼QAÌ€ï¦0AlL@ä¼QAÌ@²¦0AlLå¼QAÌ—¦0AlL€ä¼QAÌs¦0AlLÙ¼QAÌ@R¦0AlL ̼QAÌ@,¦0AlL@˼QAÌÀ¦0AlL`Ô¼QAÌ€Õ¥0AlL Þ¼QAÌ€¡¥0AlLàà¼QAÌ@g¥0AlLÀã¼QAÌ@=¥0AlLÀí¼QAÌ@#¥0AlL`÷¼QAÌÀp¤0AlLàÿ¼QAÌ@:¤0AlLàÿ¼QA̤0AlL ü¼QÀߣ0AlL@ú¼QAÌ@££0AlL@ù¼QAÌ€f£0AlLÀþ¼QAÌÀ6£0AlL`½QAÌ£0AlL€½QAÌ€æ¢0AlLÀþ¼QAÌa¢0AlLàù¼QAÌ€*¢0AlL ú¼QAÌ ¢0AlL þ¼QAÌ€î¡0AlLÀ½QAÌ@Ô¡0AlL€½QAÌ€¤¡0AlLÀ½QAÌ@`¡0AlL€½QAÌ€G¡0AlL ½QAÌ@Ü 0AlL ½QAÌÀ 0AlLÀò¼QAÌ€: 0AlL ê¼QAÌ@ûŸ0AlL€æ¼QAÌÀÀŸ0AlLã¼QAÌ@ŒŸ0AlL ã¼QAÌÀXŸ0AlL@ä¼QAÌ@ûž0AlL ç¼QÀ˞0AlL@í¼QAÌÀœž0AlL€õ¼QAÌ@pž0AlL`½QAÌ€Ož0AlL` ½QAÌ€5ž0AlL  ½QAÌž0AlL`ÿ¼QAÌ@î0AlLÀò¼QAÌß0AlL`é¼QAÌ»0AlLÀá¼QAÌ@Ÿ0AlLܼQAÌy0AlLѼQAÌÀY0AlL μQAÌÀ0AlL@̼QAÌ@þœ0AlLƼQAÌ€¼œ0AlL¶¼QAÌœœ0AlL ²¼QAÌÀmœ0AlL ¯¼QAÌÀœ0AlLÀ³¼QAÌÀì›0AlLຼQAÌ@Ç›0AlL¼QAÌ€x›0AlL€Ñ¼QAÌÀU›0AlL€×¼QAÌ'›0AlL€ã¼QAÌÀ›0AlL@ï¼QAÌÞš0AlLÀ½QAÌΚ0AlL@½QAÌ@¶š0AlL@$½QAÌ€‰š0AlL€4½QAÌ@lš0AlL >½QAÌ@(š0AlLÀD½QAÌ@ö™0AlL`J½QAÌ@²™0AlL€O½QAÌ‚™0AlLàR½QAÌÀY™0AlL@S½QAÌÀ>™0AlLV½QAÌ™0AlL [½QAÌÀý˜0AlL _½QAÌÀ¶˜0AlL``½QAÌ@˜0AlL`\½QAÌÀH˜0AlLÀ^½QAÌ@˜0AlL `½QAÌÏ—0AlL ^½QAÌ€——0AlL`[½QAÌ€O—0AlL V½QAÌ@—0AlL`O½QAÌÀë–0AlL O½QAÌ@¥–0AlL Z½QAÌÀƒ–0AlL`^½QAÌI–0AlL g½QAÌ€$–0AlLÀk½QAÌ@ì•0AlL r½QÀ͕0AlL w½QAÌÀ©•0AlLÀ}½QAÌÀu•0AlL ƒ½QAÌK•0AlLŒ½QAÌÀ•0AlL —½QAÌ@ò”0AlL`£½QAÌå”0AlL²½QAÌ@á”0AlL¿½QAÌÀë”0AlL€Ï½QAÌÀõ”0AlL€Ö½QAÌ@•0AlL€î½QAÌÀ•0AlL`÷½QAÌ@÷”0AlLà¾QAÌ€î”0AlL`)¾QAÌÀ¶”0AlL +¾QAÌÀu”0AlL€)¾QAÌÀE”0AlL€)¾QAÌ€ ”0AlL(¾QAÌÜ“0AlL€!¾QAÌÀS“0AlL@ ¾QAÌ"“0AlL ¾QÀܒ0AlL@ ¾QAÌÀ°’0AlL ¾QAÌ@„’0AlLà¾QAÌ@,’0AlLÀ¾QAÌ@’0AlL ¾QAÌ€ÿ‘0AlL€¾QAÌ@ç‘0AlLà#¾QAÌË‘0AlL`+¾QA̾‘0AlL€5¾QAÌ@Á‘0AlLà?¾QAÌ€·‘0AlLM¾QAÌ@§‘0AlL W¾QAÌ@‘0AlL@^¾QAÌ€R‘0AlL `¾QAÌ€ç0AlL`¾QAÌÀœ0AlL@a¾QAÌ@]0AlL`e¾QAÌ@'0AlLðf¾QAÌ@ñ0AlL M¾QAÌÀÊ0AlL C¾QAÌ›0AlLÀ=¾QAÌ€K0AlL`9¾QAÌ#0AlLà:¾QAÌ@0AlL A¾QAÌ€ûŽ0AlLÀB¾QAÌÝŽ0AlL€K¾QAÌ«Ž0AlL@\¾QAÌ”Ž0AlL€i¾QAÌ€zŽ0AlLàx¾QAÌzŽ0AlL€†¾QAÌ€„Ž0AlL€’¾QAÌ@¬Ž0AlL@£¾QAÌ@ØŽ0AlLாQAÌ€0AlL€À¾QAÌ0AlL@ξQAÌÀ 0AlL Ù¾QAÌ€ 0AlLé¾QAÌ@0AlL`ô¾QAÌ€íŽ0AlL@ý¾QAÌÄŽ0AlL`¿QAÌ€Ž0AlL ¿QAÌÀmŽ0AlL ¿QAÌ@BŽ0AlL@¿QAÌ@1Ž0AlL@¿QAÌ@Ž0AlL`+¿QAÌ@Ž0AlL 6¿QAÌ Ž0AlL@>¿QAÌ€þ0AlL€C¿QAÌú0AlL€O¿QAÌÀû0AlL [¿QAÌ€Ž0AlL`c¿QAÌ€Ž0AlL@n¿QAÌÀŽ0AlL€x¿QAÌŽ0AlL …¿QAÌÀ Ž0AlL‘¿QAÌÀŽ0AlL`œ¿QAÌÀ<Ž0AlL€¤¿QAÌÆŽ0AlL`¿¿QAÌ@ØŽ0AlL`ÿQAÌ@îŽ0AlL Ç¿QAÌ€0AlLÑ¿QAÌÀ0AlL`Ø¿QAÌÀ(0AlLä¿QAÌ€\0AlLæ¿QAÌÀ0AlL é¿QAÌ@˜0AlLì¿QA̱0AlL€ð¿QAÌÀË0AlL@õ¿QAÌ@ñ0AlLÀû¿QAÌÀ 0AlLÀÀQAÌ(0AlL ÀQAÌ€J0AlL`ÀQAÌÀ^0AlL@ÀQAÌÀk0AlL@ÀQAÌ€0AlL`ÀQAÌ@ž0AlL@'ÀQAÌ©0AlLÀ/ÀQAÌ@¹0AlLà5ÀQAÌ€Ò0AlL=ÀQAÌæ0AlLÀFÀQAÌÀó0AlL€NÀQAÌ€‘0AlLTÀQAÌ€‘0AlL [ÀQAÌ€&‘0AlLÀbÀQAÌ0‘0AlLlÀQAÌ€9‘0AlLÀqÀQAÌC‘0AlL wÀQAÌ@L‘0AlL ~ÀQAÌ@N‘0AlLPÀQAÌ@S‘0AlL@ˆÀQAÌ@`‘0AlL “ÀQAÌÀk‘0AlLà™ÀQAÌ€Š‘0AlL`ŸÀQAÌ€ž‘0AlL@£ÀQAÌÅ‘0AlLÀ¬ÀQAÌÀÞ‘0AlL€±ÀQAÌÀ÷‘0AlL@¶ÀQAÌ€’0AlL€»ÀQAÌÀ’0AlL€ÁÀQAÌ€>’0AlL@ÆÀQAÌ€c’0AlL@ÈÀQAÌ@‘’0AlLÀÉÀQAÌ€¾’0AlL ÍÀQAÌ€×’0AlLÒÀQAÌ€ÿ’0AlLÚÀQAÌ“0AlL ßÀQAÌ@(“0AlLàæÀQAÌ@1“0AlL@ñÀQAÌ€5“0AlLüÀQAÌ€5“0AlL€ÁQAÌ@3“0AlL`ÁQAÌ€=“0AlL "ÁQAÌÀR“0AlL@-ÁQAÌ€c“0AlL`9ÁQAÌ€‹“0AlL DÁQAÌ@¤“0AlL MÁQAÌÄ“0AlL€ZÁQAÌÀÕ“0AlL bÁQAÌÜ“0AlL iÁQAÌÀÔ“0AlLÀtÁQAÌ@È“0AlL |ÁQAÌŠ“0AlLÁQAÌÀt“0AlL`¨ÁQAÌ€X“0AlL·ÁQAÌÀI“0AlL`ÄÁQAÌÀ=“0AlLÒÁQAÌ8“0AlL€ÛÁQAÌ€I“0AlL`äÁQAÌn“0AlLëÁQAÌ€~“0AlL ôÁQAÌÀ“0AlLÀþÁQAÌ@“0AlL€ÂQAÌÀ“0AlLˆÂQAÌ€“0AlLàÂQAÌ@‹“0AlL`$ÂQAÌ„“0AlL ,ÂQAÌ@|“0AlL€6ÂQAÌ|“0AlL€=ÂQAÌÀ“0AlLÀIÂQAÌ€…“0AlL`UÂQAÌÀŒ“0AlL@[ÂQAÌ‹“0AlLÀaÂQAÌÀ‰“0AlLàjÂQAÌ@ˆ“0AlL wÂQĂ“0AlLà~ÂQAÌ€”“0AlLˆÂQA̬“0AlL•ÂQAÌÀ¸“0AlL€šÂQAÌÀÆ“0AlL¢ÂQÀȓ0AlL ©ÂQAÌÀË“0AlL`¯ÂQAÌÀÑ“0AlL ·ÂQAÌ@â“0AlLÀÇÂQAÌ@î“0AlLÀÏÂQAÌò“0AlL ×ÂQAÌ€ô“0AlLÀàÂQAÌÀû“0AlL`êÂQAÌ€”0AlL õÂQAÌ ”0AlL`ÿÂQAÌÀ ”0AlLÃQAÌ”0AlLÃQAÌÀ”0AlLàÃQAÌ€”0AlL`)ÃQAÌ)”0AlL@6ÃQAÌ7”0AlLÀ@ÃQAÌÀG”0AlLàLÃQAÌÀN”0AlL@TÃQAÌU”0AlLÀZÃQAÌÀd”0AlL`jÃQAÌ@m”0AlLtÃQAÌ€r”0AlL~ÃQAÌ€j”0AlL ÃQAÌX”0AlL`›ÃQAÌ€I”0AlL@¤ÃQAÌÀ;”0AlL@­ÃQAÌ€(”0AlL@¹ÃQAÌ@”0AlL ÀÃQAÌÀ”0AlL`ÉÃQAÌ ”0AlL`ÓÃQAÌÀó“0AlLàÝÃQAÌÀá“0AlL çÃQAÌ€Ô“0AlLðÃQA̾“0AlL üÃQAÌ@¦“0AlL@ ÄQAÌ@›“0AlL`ÄQAÌ@“0AlL€ÄQAÌÀ±“0AlLÀ'ÄQA̵“0AlL€)ÄQAÌÉ“0AlL@5ÄQAÌÀÙ“0AlLàEÄQAÌÀæ“0AlL PÄQAÌÀï“0AlLàZÄQAÌÀè“0AlLàiÄQAÌè“0AlL rÄQAÌ@æ“0AlL€€ÄQAÌé“0AlL`ÄQAÌ@ó“0AlL`¤ÄQAÌÀ”0AlL@²ÄQAÌ ”0AlLÀ»ÄQAÌÀ”0AlL@ÏÄQAÌ@3”0AlL ÜÄQAÌÀL”0AlL@íÄQAÌ@d”0AlL@úÄQAÌÀm”0AlL ÅQAÌ€j”0AlL  ÅQAÌÀW”0AlL`ÅQAÌ€I”0AlLÀ#ÅQAÌÀ”0AlLàHÅQAÌÀ ”0AlLàNÅQAÌ@÷“0AlL`XÅQAÌ€¿“0AlL@ÅQAÌ€™“0AlL™ÅQAÌ@Ž“0AlL ¥ÅQAÌ@Ž“0AlL ²ÅQAÌ€l“0AlL ±ÅQAÌ@1“0AlLÀ³ÅQAÌ€“0AlL¹ÅQAÌ@ô’0AlL ÈÅQAÌÀß’0AlL`ÔÅQÀ’0AlL âÅQAÌ€®’0AlL`íÅQAÌÀ¾’0AlLÀúÅQAÌ@º’0AlLÀÆQAÌÀ•’0AlL` ÆQÃ’0AlL ÆQAÌ@€’0AlL`ÆQAÌÀ}’0AlL`$ÆQAÌÀs’0AlLà1ÆQAÌ`’0AlL CÆQAÌ@L’0AlLàLÆQAÌC’0AlL@XÆQAÌÀ>’0AlL€cÆQAÌ@H’0AlL@mÆQAÌÀZ’0AlLàrÆQAÌÀo’0AlLzÆQAÌ@’’0AlL „ÆQAÌÀ¡’0AlL@ÆQAÌÀ¦’0AlL`”ÆQAÌ€²’0AlL  ÆQAÌ@Â’0AlL@¬ÆQA̺’0AlL@»ÆQAÌ@˜’0AlL ÁÆQAÌ€‘’0AlL`ÊÆQAÌ@ž’0AlL ÓÆQAÌ“’0AlLÛÆQAÌ„’0AlLåÆQAÌ€y’0AlLàíÆQAÌk’0AlL`ÇQAÌ@n’0AlL€ ÇQAÌ@c’0AlL +ÇQAÌ@X’0AlLà<ÇQAÌS’0AlL`KÇQAÌÀo’0AlL UÇQAÌÀ‚’0AlL``ÇQAÌ@˜’0AlL€iÇQAÌ@£’0AlLÀsÇQAÌ´’0AlL €ÇQAÌ@Á’0AlLÀŠÇQÀŒ0AlLàÇQAÌÀ»’0AlLÀšÇQAÌ€±’0AlL ¢ÇQAÌ@–’0AlL`¦ÇQAÌ@w’0AlL€¡ÇQAÌ€S’0AlL •ÇQAÌ€D’0AlL€†ÇQAÌ,’0AlLÇQAÌÀ’0AlL vÇQAÌ@’0AlL€mÇQAÌÀs‘0AlLÀxÇQAÌG‘0AlLxÇQAÌ€‘0AlL xÇQAÌ€è0AlLàwÇQAÌ@Š0AlLzÇQAÌ@v0AlLàƒÇQAÌ`0AlLà‹ÇQAÌ@D0AlL ”ÇQAÌ@50AlLà›ÇQAÌ€0AlL`¡ÇQAÌÀ 0AlL@§ÇQAÌñ0AlLà¬ÇQAÌÌ0AlL·ÇQA̤0AlL ¼ÇQAÌ‹0AlLÀÆÇQAÌÀf0AlL ÒÇQAÌ@E0AlL ÙÇQAÌ€øŽ0AlLÀóÇQAÌ0AlLÈQAÌ@òŽ0AlLÈQAÌ€åŽ0AlL ÈQAÌÏŽ0AlLÈQAÌ€¸Ž0AlL $ÈQAÌ€žŽ0AlL+ÈQAÌ@†Ž0AlLà1ÈQAÌgŽ0AlLà5ÈQAÌLŽ0AlL 9ÈQAÌ@&Ž0AlLÀ=ÈQAÌŽ0AlL CÈQAÌŽ0AlLÀMÈQAÌ€ Ž0AlLÀUÈQAÌÿ0AlL`eÈQAÌ€Î0AlLà{ÈQAÌ@¼0AlL „ÈQAÌ@–0AlL`”ÈQAÌÀ„0AlL`ÈQAÌ€‰0AlLà½ÈQAÌ@Œ0AlLÆÈQAÌ€{0AlLÐÈQAÌ€i0AlL@ÖÈQAÌ€P0AlL áÈQAÌ€F0AlL€çÈQAÌG0AlL úÈQAÌ@K0AlL@ÉQAÌJ0AlL ÉQAÌH0AlL ÉQAÌ@C0AlLÉQAÌ@;0AlL@%ÉQAÌ@10AlLà/ÉQAÌ€$0AlL 5ÉQAÌ@0AlLà@ÉQAÌ@ÿŒ0AlLÀNÉQAÌþŒ0AlL@VÉQAÌ0AlL@^ÉQAÌÀ0AlL mÉQAÌ0AlL@tÉQAÌ@ 0AlL@}ÉQAÌ 0AlL ŠÉQAÌ<0AlL ‘ÉQAÌS0AlLà™ÉQAÌÀs0AlL€¡ÉQAÌÀ‹0AlLªÉQAÌÀ©0AlL`²ÉQAÌ@Æ0AlL »ÉQAÌ@ë0AlL ÃÉQAÌ@Ž0AlL@ËÉQAÌ)Ž0AlLÑÉQAÌ€~Ž0AlL@ÐÉQAÌžŽ0AlLÓÉQAÌ€¼Ž0AlL€ÔÉQAÌÀÎŽ0AlL`ÕÉQAÌÀ0AlLàÖÉQAÌ@B0AlLÀÙÉQAÌ@p0AlLÀÚÉQAÌÀ‹0AlLÚÉQAÌÀ§0AlL€ÚÉQAÌÒ0AlL€ÚÉQAÌï0AlL€ÛÉQAÌ€0AlLÀÝÉQAÌ€:0AlL âÉQAÌÀn0AlLÀåÉQAÌ@›0AlL éÉQAÌ´0AlL€êÉQAÌ@â0AlL êÉQAÌÀý0AlL€éÉQAÌ@'‘0AlL€åÉQAÌÀ>‘0AlL`ãÉQAÌ@{‘0AlL€2ÊQAÌ@‘0AlLà@ÊQAÌ@‘0AlL GÊQAÌ@…‘0AlL OÊQAÌÀŠ‘0AlL@XÊQAÌ€Ž‘0AlL dÊQAÌ@Œ‘0AlL oÊQAÌ@Ž‘0AlL tÊQAÌ‘‘0AlLàzÊQAÌš‘0AlLÀ…ÊQAÌÀÆ‘0AlLÂÊQAÌ€æ‘0AlLÀËQAÌÀü‘0AlL #ËQAÌ@þ‘0AlL`%ËQAÌ@ ’0AlL 0ËQAÌ@’0AlL8ËQAÌ€B’0AlLÀEËQAÌS’0AlLàKËQAÌÀa’0AlL PËQAÌ€†’0AlL YËQAÌ@”’0AlL`bËQAÌ@«’0AlL jËQAÌ@À’0AlLÀmËQAÌ€Ú’0AlL€tËQAÌÀõ’0AlL€{ËQAÌ@ “0AlLÀ„ËQAÌ@(“0AlL@‰ËQAÌ@E“0AlL@ŠËQAÌ@~“0AlL€‹ËQAÌ@““0AlL`ËQĄ“0AlL€”ËQAÌÀº“0AlL ™ËQÀГ0AlLÀžËQAÌð“0AlL §ËQAÌ€”0AlL ®ËQAÌ€9”0AlL ²ËQAÌ^”0AlL µËQAÌv”0AlL ½ËQAÌ“”0AlL@ÅËQA̯”0AlL€ÌËQÀؔ0AlLÀÖËQAÌÀé”0AlL ÜËQAÌ@ñ”0AlLâËQAÌ@û”0AlL€êËQAÌ@•0AlL@ñËQAÌ€•0AlL üËQAÌ@•0AlLÌQAÌÀ•0AlL@ÌQAÌ@!•0AlLà.ÌQAÌ€'•0AlL@5ÌQAÌ1•0AlLÀ>ÌQAÌÀ@•0AlL GÌQAÌc•0AlL€QÌQAÌ—•0AlL@ZÌQAÌ@Ö•0AlLà]ÌQAÌ@ü•0AlL@_ÌQAÌÀ–0AlL bÌQAÌ5–0AlLÀdÌQAÌ@^–0AlL@lÌQAÌ@‚–0AlL@pÌQAÌÀ¦–0AlLàoÌQAÌ@Û–0AlL@sÌQAÌÀ —0AlL€yÌQAÌM—0AlLà}ÌQAÌ@„—0AlLà„ÌQAÌ@×0AlLÀÌQAÌ@ý—0AlL ™ÌQAÌ@&˜0AlL—ÌQAÌ€D˜0AlL@“ÌQAÌj˜0AlL@–ÌQAÌÀƒ˜0AlL€›ÌQAÌ¢˜0AlL€›ÌQÀĘ0AlL ÌQAÌ€é˜0AlL€žÌQAÌ€™0AlLà¢ÌQAÌ€/™0AlLÀ¦ÌQAÌÀG™0AlL@®ÌQAÌÀV™0AlLàµÌQAÌÀZ™0AlL@ÀÌQAÌ€_™0AlL`ÈÌQAÌ@c™0AlL€ÐÌQAÌ@h™0AlLà×ÌQAÌg™0AlL ãÌQAÌ@{™0AlL@êÌQAÌ€”™0AlLñÌQAÌ€§™0AlL øÌQAÌ@µ™0AlL@ÍQAÌ@µ™0AlL ÍQAÌ@Á™0AlL ÍQAÌÀË™0AlL`'ÍQAÌ€Ù™0AlL 2ÍQAÌÀü™0AlL`7ÍQAÌ-š0AlL@>ÍQAÌÀXš0AlL`CÍQAÌ@‚š0AlLÀIÍQAÌ@žš0AlL`RÍQAÌêš0AlL\ÍQAÌ ›0AlL``ÍQAÌÀ"›0AlLeÍQAÌÀ4›0AlLàlÍQAÌ7›0AlL€yÍQAÌ€?›0AlL@ÍQAÌ@^›0AlL‰ÍQAÌÀ›0AlL`€ÍQAÌ€¨›0AlL{ÍQAÌÀЛ0AlLàsÍQAÌœ0AlLàmÍQAÌ@Kœ0AlLÀfÍQAÌ€rœ0AlLàbÍQAÌ–œ0AlLÀbÍQAÌ@µœ0AlL€eÍQAÌ€¼œ0AlLÀhÍQAÌ€»œ0AlL€oÍQAÌ@¾œ0AlL xÍQÀǜ0AlL€zÍQAÌ@Ûœ0AlL`ÍQAÌìœ0AlLƒÍQAÌ0AlL‰ÍQAÌ@0AlL€„ÍQAÌ0AlL@~ÍQAÌ"0AlL`zÍQAÌ@(0AlL vÍQAÌÀF0AlLÀuÍQAÌ@h0AlLÀtÍQAÌ€€0AlL`mÍQAÌ€l0AlLiÍQAÌ@e0AlLàbÍQAÌ@ݹ0AlL —ÉQAÌÀâ¹0AlL@–ÉQAÌÀê¹0AlL ”ÉQAÌ@ø¹0AlLà‘ÉQAÌÀº0AlL€ÉQAÌ@ º0AlL`ŽÉQAÌ@º0AlLÉQA̺0AlLЊÉQAÌ!º0AlL@‰ÉQAÌ€,º0AlL`‡ÉQAÌ:º0AlLà„ÉQAÌÀDº0AlL€ÉQAÌ@Mº0AlL€ÉQAÌ@Uº0AlL`~ÉQAÌ [º0AlLP}ÉQAÌ^º0AlL@{ÉQAÌ`gº0AlL@zÉQAÌ€mº0AlL{ÉQAÌuº0AlLàyÉQAÌÀwº0AlLàwÉQAÌ€zº0AlLàtÉQAÌ@}º0AlL`pÉQAÌÀ„º0AlLmÉQAÌŠº0AlL jÉQAÌÀ‡º0AlL€hÉQAÌÀŽº0AlLfÉQAÌ€–º0AlL@eÉQAÌŸº0AlLàcÉQAÌÀ¨º0AlLàaÉQAÌ@±º0AlL_ÉQAÌ@¹º0AlLà]ÉQAÌÀ½º0AlLà\ÉQÀº0AlL\ÉQÀȺ0AlL`ZÉQAÌ̺0AlLàWÉQAÌ`̺0AlL`UÉQAÌȺ0AlL@SÉQAÌ€Àº0AlL`PÉQAÌ€¿º0AlL`NÉQAÌÁº0AlL`LÉQAÌ@¾º0AlL€JÉQAÌ€¸º0AlLÐIÉQAÌ·º0AlLEÉQA̳º0AlLPCÉQAÌÀ®º0AlL@BÉQAÌ¡º0AlLÀ?ÉQAÌ`™º0AlL >ÉQAä5UU“º0AlLp>ÉQAÌÀŽº0AlL`=ÉQAÌ@‰º0AlLp<ÉQAÌ ‚º0AlLP<ÉQAÌ€{º0AlL@=ÉQAÌ@uº0AlL@AÉQAÌrº0AlLÀEÉQAÌ@oº0AlL€KÉQAÌàmº0AlLpPÉQAÌhº0AlL QÉQAÌ€bº0AlLÀSÉQAÌ€]º0AlLÀTÉQAÌUº0AlL0WÉQAÌÀKº0AlL@YÉQAÌ€?º0AlL€ZÉQAÌ€9º0AlL`[ÉQAÌð0º0AlL [ÉQAÌ %º0AlL [ÉQAÌ€º0AlL`[ÉQA̺0AlL[ÉQAÌ  º0AlL€ZÉQA̺0AlL ZÉQAÌ€ù¹0AlL@ZÉQAÌô¹0AlL ZÉQAÌ í¹0AlL@[ÉQAÌàé¹0AlL ]ÉQAÌÀê¹0AlLÀ_ÉQAÌ€ë¹0AlL°cÉQAÌ€ï¹0AlLfÉQAÌñ¹0AlL`gÉQAÌ@õ¹0AlL jÉQAÌý¹0AlL`mÉQA̺0AlL@oÉQAÌÀº0AlL@sÉQAÌÀ!º0AlL wÉQAÌ€3º0AlLÀ{ÉQAÌ 7º0AlL`}ÉQAÌ€1º0AlL0ÉQAÌ€º0AlL ‚ÉQAÌÀ º0AlL †ÉQA̺0AlLàˆÉQAÌ@ú¹0AlL`ŠÉQAÌ€ò¹0AlLÀ‹ÉQAÌê¹0AlLÀÉQAÌ ß¹0AlLàÉQAÌ@Ò¹0AlL ÉQAÌŹ0AlL`ÉQAÌ€®¹0AlL€ÉQAÌ@—¹0AlLàŽÉQAÌ„¹0AlLÀŽÉQAÌÀx¹0AlL ŽÉQAÌàq¹0AlLŽÉQAÌ@e¹0AlL€ŽÉQAÌÀ_¹0AlLàÉQAÌ `¹0AlLð‘ÉQAÌ€f¹0AlL€“ÉQAÌ@m¹0AlL ”ÉQAÌ@t¹0AlL•ÉQAÌà…¹0AlL •ÉQAÌ@¹0AlL€•ÉQAÌ@›¹0AlLÀ•ÉQAÌ€¥¹0AlLà•ÉQAÌÀ¸¹0AlL—ÉQAÌ@ȹ0AlL—ÉQAÌ€×¹0AlLÀ–ÉQAÌ@ݹ0AlL —ÉQAÌ^Â0AlLàœÁQAÌ@dÂ0AlLÀ™ÁQAÌÀnÂ0AlLà–ÁQAÌ@zÂ0AlL •ÁQĂÂ0AlLÀ’ÁQAÌ”Â0AlLÀÁQAÌ™Â0AlL`ŒÁQAÌ@‘Â0AlL ‡ÁQAÌ€†Â0AlL@ƒÁQAÌ€zÂ0AlLÀ€ÁQAÌpÂ0AlL@ÁQAÌÀ[Â0AlL }ÁQAÌÀPÂ0AlL{ÁQAÌÀGÂ0AlL€yÁQAÌÀ>Â0AlLÀwÁQAÌÀ1Â0AlL sÁQAÌ@%Â0AlL`nÁQAÌÂ0AlLÀjÁQAÌ@ Â0AlL`jÁQAÌ@öÁ0AlL@kÁQAÌ€îÁ0AlLànÁQAÌ@îÁ0AlLrÁQAÌ€îÁ0AlLÀtÁQAÌ€óÁ0AlLàxÁQAÌ@öÁ0AlL }ÁQAÌúÁ0AlL@ÁQAÌÀûÁ0AlL@…ÁQAÌÀÂ0AlL`ˆÁQAÌÂ0AlLÀŠÁQAÌÀÂ0AlL@ÁQAÌ@Â0AlLÀ”ÁQAÌ€$Â0AlL—ÁQAÌ€.Â0AlL ™ÁQAÌÀAÂ0AlLàœÁQAÌÀNÂ0AlL œÁQAÌ^Â0AlLàœÁQĂ½0AlLÀ‘ÄQAÌ@€½0AlL ŽÄQAÌ@x½0AlL ˆÄQAÌr½0AlL@†ÄQAÌ@d½0AlL@…ÄQAÌ@Y½0AlLÀ„ÄQAÌÀD½0AlL ƒÄQAÌ€4½0AlL ‡ÄQAÌ+½0AlLÀŠÄQAÌ@½0AlLÄQAÌ€½0AlL ‹ÄQAÌ@ ½0AlL ‹ÄQAÌ€½0AlLàŽÄQAÌü¼0AlL€ŽÄQAÌÀé¼0AlL ÄQAÌ@Þ¼0AlLÀŽÄQAÌ@à¼0AlL’ÄQAÌ€Ó¼0AlLÀ“ÄQAÌÀʼ0AlL –ÄQAÌǼ0AlL ›ÄQAÌÀÀ¼0AlLÀÄQAÌÀ¸¼0AlLàžÄQAÌ€¸¼0AlL ¡ÄQAÌ€¸¼0AlL £ÄQAÌ@ȼ0AlL€£ÄQAÌ@Ó¼0AlL £ÄQAÌؼ0AlL€¦ÄQAÌÀæ¼0AlL@¨ÄQAÌ€û¼0AlLà¥ÄQA̽0AlL€¥ÄQAÌ€½0AlL@¥ÄQAÌ1½0AlL€£ÄQAÌ@>½0AlL¡ÄQAÌX½0AlLàžÄQAÌ€h½0AlLžÄQAÌÀq½0AlL`™ÄQAÌ@~½0AlL™ÄQAÌ€½0AlL •ÄQĂ½0AlLÀ‘ÄQAÌÀb¡0AlL 0ÍQAÌÀm¡0AlL-ÍQAÌ@u¡0AlLà)ÍQAÌs¡0AlL 'ÍQAÌ@i¡0AlL`$ÍQAÌÀ`¡0AlL#ÍQAÌ€N¡0AlLà ÍQAÌ@/¡0AlL` ÍQAÌ€¡0AlL@!ÍQAÌ¡0AlL`"ÍQAÌ€¡0AlL #ÍQAÌÀà 0AlLÀ"ÍQAÌÊ 0AlL $ÍQAÌ€½ 0AlLà#ÍQA̪ 0AlLÀ$ÍQAÌÀ› 0AlL`(ÍQAÌ€¦ 0AlLÀ+ÍQAÌÀµ 0AlLà-ÍQAÌ€Á 0AlL/ÍQAÌ@Π0AlL@.ÍQAÌ€ï 0AlL 0ÍQAÌÀú 0AlL 2ÍQAÌ@¡0AlL€5ÍQAÌ ¡0AlL 8ÍQAÌ@¡0AlL@9ÍQAÌ€%¡0AlL 8ÍQAÌ@;¡0AlLÀ6ÍQAÌ€F¡0AlL`5ÍQAÌÀb¡0AlL 0ÍQA:ô¥B˜.Aޏx‚çQA˜Ú.AlL€N›QA˜€õ°.AlLð:›QA˜š±.AlL1›QA˜€ÿ±.AlL€+›QA˜n².AlL$›QA˜€â².AlL`›QA˜€@³.AlL@›QA˜€˜³.AlL ›QA˜€ë³.AlL ›QA˜:´.AlL@ýšQA˜†´.AlLÀòšQA˜€Ü´.AlL@åšQA˜µ.AlL€ÖšQA˜?µ.AlL@ÌšQA˜€žµ.AlL@ÚQA˜üµ.AlL€ºšQA˜€d¶.AlL ³šQA˜€°¶.AlL°šQA˜€í¶.AlL€§šQA˜K·.AlL@›šQA˜€Š·.AlLÀ•šQA˜€ß·.AlL˜šQA˜;¸.AlLÀšQA˜€¸.AlLà šQA˜¸.AlL@¤šQA˜+¹.AlL ¦šQA˜“¹.AlL ¨šQA˜€ÿ¹.AlL¬šQA˜vº.AlL ¬šQA˜к.AlL ­šQA˜$».AlLà­šQA˜„».AlL ªšQA˜Ñ».AlLÀ¦šQA˜ë».AlL@ šQA˜¼.AlL€šQA˜Ǽ.AlLÀˆšQA˜€ò¼.AlLPƒšQA˜ý¼.AlL‚šQA˜4½.AlL šQA˜½.AlLàxšQA˜§½.AlL všQA˜€Æ½.AlLàršQA˜¾.AlL`kšQA˜¾.AlL hšQA˜€.¾.AlL€ešQA˜€g¾.AlLð[šQA˜€‘¾.AlL VšQA˜€»¾.AlL°NšQA˜̾.AlL KšQA˜å¾.AlL BšQA˜"¿.AlL@:šQA˜Y¿.AlL2šQA˜y¿.AlL€*šQA˜À¿.AlLšQA˜€Ñ¿.AlLàšQA˜€å¿.AlLšQA˜€ñ¿.AlL`šQA˜ö¿.AlL šQA˜"À.AlLÿ™QA˜EÀ.AlL`ò™QA˜€^À.AlL í™QA˜€tÀ.AlL`×™QA˜„À.AlL€¿™QA˜À.AlL «™QA˜€•À.AlLà›™QA˜€™À.AlLà™QA˜ŒÀ.AlLà„™QA˜€˜À.AlLÀy™QA˜€µÀ.AlLàm™QA˜€ÈÀ.AlLÀ`™QA˜€«À.AlL€X™QA˜‡À.AlL N™QA˜sÀ.AlL`B™QA˜}À.AlL`0™QA˜…À.AlL™QA˜€À.AlLà÷˜QA˜­À.AlL@Þ˜QA˜ÓÀ.AlLɘQA˜Á.AlLÀ®˜QA˜€aÁ.AlLÀ–˜QA˜€Á.AlL ‡˜QA˜€šÁ.AlL@n˜QA˜€­Á.AlL@^˜QA˜€±Á.AlL`S˜QA˜ÎÁ.AlL`D˜QA˜,Â.AlL˜QA˜EÂ.AlL`˜QA˜aÂ.AlL ˜QA˜€uÂ.AlLû—QA˜jÂ.AlLä—QA˜€]Â.AlL Ö—QA˜VÂ.AlL`Ç—QA˜WÂ.AlLÀÀ—QA˜XÂ.AlL°º—QA˜€XÂ.AlL ¸—QA˜€aÂ.AlLÀ —QA˜\Â.AlL@t—QA˜€]Â.AlL`c—QA˜€žÂ.AlL S—QA˜âÂ.AlLàF—QA˜€Ã.AlL`;—QA˜&Ã.AlLà-—QA˜0Ã.AlLà—QA˜€cÃ.AlL€ —QA˜‚Ã.AlL ü–QA˜€†Ã.AlL ð–QA˜Ã.AlLàà–QA˜‹Ã.AlL°Ë–QA˜‹Ã.AlL`È–QA˜€Ã.AlLµ–QA˜€Ã.AlL࢖QA˜“Ã.AlL`’–QA˜ÅÃ.AlLy–QA˜Ä.AlL@b–QA˜@4Ä.AlL0S–QA˜€qÄ.AlL @–QA˜Ä.AlL€(–QA˜žÄ.AlL–QA˜³Ä.AlL€–QA˜€ÁÄ.AlL€ü•QA˜æÄ.AlLÀí•QA˜4Å.AlL€Ø•QA˜‡Å.AlL É•QA˜ÔÅ.AlLÀ¹•QA˜Æ.AlL¬•QA˜(Æ.AlL ¥•QA˜€#Æ.AlL€ž•QA˜€Æ.AlLà“•QA˜RÆ.AlL@‹•QA˜zÆ.AlL •QA˜4Ç.AlL`m•QA˜Ç.AlL`n•QA˜€ÜÇ.AlL r•QA˜bÈ.AlL@t•QA˜öÈ.AlLz•QA˜¬É.AlL {•QA˜€JÊ.AlL€•QA˜€ûÊ.AlLà‚•QA˜€ÅË.AlL …•QA˜€BÌ.AlL …•QA˜vÌ.AlLp…•QA˜€ýÍ.AlLˆ•QA˜€uÎ.AlL ˆ•QA˜€ðÎ.AlL`ˆ•QA˜yÏ.AlL@ˆ•QA˜Ð.AlLÀ‚•QA˜€{Ð.AlL@|•QA˜€Ñ.AlL`v•QA˜€§Ñ.AlLw•QA˜ Ò.AlL@}•QA˜Ò.AlL€|•QA˜ÁÒ.AlL€t•QA˜€ Ó.AlL l•QA˜cÓ.AlLÀc•QA˜ÅÓ.AlL Z•QA˜Ô.AlLÀQ•QA˜RÔ.AlL G•QA˜uÔ.AlL ;•QA˜‡Ô.AlL1•QA˜—Ô.AlL !•QA˜€«Ô.AlL •QA˜€ÑÔ.AlLàý”QA˜€ Õ.AlLò”QA˜€mÕ.AlL`æ”QA˜€wÕ.AlLå”QA˜ÂÕ.AlLÛ”QA˜Ö.AlLÍ”QA˜€=Ö.AlL`À”QA˜oÖ.AlL´”QA˜€‰Ö.AlL@¬”QA˜€ÕÖ.AlL€”QA˜€ ×.AlL€“”QA˜€f×.AlL ˆ”QA˜¦×.AlLà}”QA˜â×.AlLàt”QA˜"Ø.AlLài”QA˜€_Ø.AlL a”QA˜ŸØ.AlLàW”QA˜€óØ.AlL@I”QA˜€qÙ.AlLÀ8”QA˜vÙ.AlL7”QA˜€Ù.AlL.”QA˜¤Ù.AlL %”QA˜€¹Ù.AlL”QA˜€ÌÙ.AlL`”QA˜€×Ù.AlL  ”QA˜äÙ.AlL@”QA˜€ìÙ.AlL þ“QA˜òÙ.AlL@û“QA˜Ú.AlLàó“QA˜Ú.AlL é“QA˜úÙ.AlL@â“QA˜€ßÙ.AlLÀÛ“QA˜ÅÙ.AlL Ô“QA˜€»Ù.AlLÀÌ“QA˜€¿Ù.AlL@Å“QA˜€ÅÙ.AlLÀº“QA˜¾Ù.AlL`«“QA˜€”Ù.AlL`˜“QA˜BÙ.AlL “QA˜ÈØ.AlL€z“QA˜€OØ.AlL h“QA˜€ò×.AlL S“QA˜€Ê×.AlL I“QA˜±×.AlL€C“QA˜€†×.AlL1“QA˜v×.AlL@“QA˜^×.AlLP“QA˜\×.AlL “QA˜]×.AlL`ö’QA˜3×.AlL ç’QA˜€×.AlLÀÛ’QA˜€ ×.AlL Ð’QA˜€×.AlL@Å’QA˜:×.AlLಒQA˜q×.AlLÀŸ’QA˜×.AlL ‘’QA˜É×.AlL€q’QA˜Ø.AlL`i’QA˜-Ø.AlL€\’QA˜EØ.AlL€R’QA˜SØ.AlL€G’QA˜3Ø.AlL 9’QA˜Ø.AlL -’QA˜¾×.AlL ’QA˜‡×.AlL@’QA˜€5×.AlLÀ’QA˜€ñÖ.AlLà’QA˜€ÖÖ.AlLü‘QA˜€¿Ö.AlLì‘QA˜œÖ.AlL à‘QA˜†Ö.AlLàÔ‘QA˜€[Ö.AlL`ÑQA˜€+Ö.AlL`¸‘QA˜çÕ.AlL@±‘QA˜€€Õ.AlL`¢‘QA˜$Õ.AlL€”‘QA˜öÔ.AlL@…‘QA˜ÓÔ.AlLàw‘QA˜²Ô.AlL€k‘QA˜tÔ.AlLà_‘QA˜2Ô.AlL@X‘QA˜€³Ó.AlLàO‘QA˜1Ó.AlL€H‘QA˜€˜Ò.AlL`@‘QA˜€ÚÑ.AlL`:‘QA˜#Ñ.AlL@4‘QAغYWÐ.A¶X×/‘QA˜Qê Ð.A wâ-‘QAx‘ŽÖÏ.A²qu‚)‘QAÐãµÏ.Aޏx‚‘QAÐãµ?Ï.A’0„b‘QA 6ÝnîÎ.A$‚â‘QAPßðþ°Î.A$‚"‘QAÀ%…õwÎ.Ar«˜à‘QAÐãµMÎ.AFF‚‘QAøŒÉþÎ.AØ¢}B‘QA`ȨÕÍ.A w‘QA`Ȩn£Í.Aޏx‘QAx‘ŽnAÍ.Aü[z‘QAˆq¼þÍ.A²qu‘QAÐì?ÅÌ.Ajÿ{b‘QAPèzÞ“Ì.AØ¢}‚%‘QAÐì?7Ì.AFF)‘QAðµ%nêË.A’0„"-‘QAè¬›ŽœË.A$‚â/‘QAPèzþZË.A²qub2‘QA@MnýÊ.A´é€0‘QA8(ÞÃÊ.A´é€(‘QAp±`þÊ.A´é€Â‘QA_9Þ³É.Aޏx ‘QA˜cþmÁÈ.A´é€"ÿQA¸,äíÇ.ADÎs"õQAPîÕ•Ç.ALzxñQAàÕ÷ý6Ç.AØ¢}‚íQA`Ú¼mÅÆ.A´é€‚ëQAèÞÝËÅ.A²qu¢èQA¸›er“Å.ALX“=èQA`Ú¼/Å.Aޏx‚çQAˆ•m€Ä.ADÎsÂçQA qMýÿÃ.A²qubêQA qMÝœÃ.A w¢ïQAXúŽý5Ã.AØ¢}ÂóQApÃtÝšÂ.ADÎs"íQAèÞÝDÂ.A²qu"ìQAøÇ9 þÁ.AFF‚ìQAÈ&ý¥Á.ADÎsÂïQA qMý?Á.Aü[z¢õQA qMÝãÀ.A²qu"üQA qMýxÀ.ADÎsB‘QA(Œë»ZÀ.A$ü× ‘QAøÇ9m/À.ADÎsB‘QAhãF ï¿.A²quB‘QA0Zm¿.A²qu‚!‘QA€¬,Z¿.A²qu‚)‘QAøÐà ý¾.A wB2‘QAÐ'°ü²¾.AÖ*r¢1‘QAÀ>øŒH¾.AÖ*r¢1‘QAH#ë ¾.AØ¢}Â3‘QAš©lÓ½.A´é€Â9‘QAØÞŒ­½.Ajÿ{"9‘QA°^Êü?½.AFF¢3‘QAxÕˆüß¼.AFFÂ2‘QA0cŒ¼.AØ¢}b6‘QAhìÐ '¼.A w¢G‘QAº{üÙ».A w‚P‘QAˆµ¶Œv».ADÎsBd‘QAhõZl».A w‚x‘QA ~œlÔº.A´é€‚ƒ‘QAP,ulº.A´é€"‘QAøÙM |º.Aü[zb˜‘QAèð•üº.Aü[z£‘QAˆ¾@Œõ¸.Ajÿ{ⲑQA¼¦Ã³¸.AtÅ´‘QApþä ·.A w‚À‘QApþä‹–³.ADÎsBä‘QA8u£ Ú±.Ajÿ{âê‘QAP>‰kø°.AFF‚ì‘QA`'Aû°.AFF‚ì‘QAÈb …¯.A wBê‘QAà"|‹¯.A wÂæ‘QAè+‹®.Aޏx¢æ‘QA¸yhÛý­.AØ¢}"ð‘QA`'Aû”­.A´é€"ÿ‘QAð 4Û­.Ajÿ{b’QAÈb kv¬.AØ¢}B’QAõëjÝ«.Ajÿ{B0’QAÕû«.Aޏx"K’QAXGki«.AÖ*r¢a’QAè+k«.A²qu‚i’QA0ëƒ(&«.AHq1t’QA°¢Äj-«.Aޏx¢v’QA°¢Ä X«.AޏxÂ’QA¸‚òúŠ«.AÖ*r¢¹’QAHgåú’«.Aޏx‚Ï’QA€ð&›«.Aü[z"ò’QA@‡·jŠ«.Ajÿ{ “QAè+‹”«.A²quB#“QA€ð&ûy«.AFFb=“QA ¾Ñjåª.ADÎsV“QApùjÜ©.A²qu"<“QA ¾Ñ B©.ADÎsÂ/“QAÀ‹|úШ.AØ¢}b&“QAØKØú6¨.Aޏx“QAè4jþ§.Ajÿ{“QA@‡·jЧ.Ajÿ{â “QA@‡·j§.Aޏxâü’QAxƒ ¦.AFF‚ô’QA°«NŠÁ¥.ADÎs‚ê’QAâhŠN¥.AÖ*rÂà’QAè= Ó¤.ADÎsâÖ’QAâhj+¤.ADÎs"Õ’QA(Ð剤.Aøãn"ß’QAx" Šï£.AÖ*rBí’QAh9UúË£.AÖ*r"þ’QA0°úy£.AØ¢}"“QAx" jÚ¢.Aޏxâ“QA ›¢.ADÎs"“QAˆ;úi¢.Aü[zB1“QAà]ìùQ¢.Ajÿ{b?“QA¸#ZNG¢.Aâ  bH“QAx" j>¢.AÖ*râO“QAÐt4 .¢.A wBb“QA(Ð剢.Aޏxt“QA(Ðåi¢.Ajÿ{‚“QAÐ}¾ û¡.AÖ*r¢™“QAÐt4jü¡.A wBª“QAÐt4 ¢.ADÎs¾“QAˆ;ú0¢.Aü[z"Ê“QAè=jD¢.A wbÙ“QA˜ëò‰8¢.ADÎsbë“QA@™Ë %¢.Ajÿ{Bø“QA(Ðåi¢.AFFb ”QA(Ðåiò¡.Aޏxâ$”QA(Ðå ¹¡.AFFbU”QAˆ Åù6¡.Ah‡p¢b”QAà]ì™Ñ .Ajÿ{‚n”QAø&ÒùK .Aޏx"{”QA°´ØiÝŸ.Ajÿ{Š”QA8¹™€Ÿ.Ah‡pbœ”QA°´Ø‰9Ÿ.AÖ*r⯔QA8¹ùŸ.ADÎsb»”QAPyùùŸ.Aü[zÂÌ”QA`b±iíž.Aøãn"×”QAÐ}¾‰Âž.Aޏx"ã”QAàfvùž.Ajÿ{Bð”QAP‚ƒùAž.ADÎsâ•QAŠ ð.A w¢•QAЉo.ADÎs&•QAŠi.Ajÿ{â*•QAðF¤‰Ãœ.AÖ*r"6•QAàfvù¬œ.A wBB•QA`b±iÑœ.Ah‡pâH•QAÐ}¾ .Ah‡p‚K•QAH¢U‰2.ADÎsV•QA€+—i=.A w¢_•QAи.82.AÔ…^c•QA8¹ù.ADÎs‚j•QAІH ³œ.A²qu"t•QA(Ùo‰Ô›.AÖ*rB…•QAІH‰H›.A wâ••QAùA™Œš.A wb©•QA ý‰6š.AØ¢}"°•QAðO.‰ô™.Ajÿ{ⲕQA ýi¨™.Aޏxµ•QA ýih™.A wb¹•QA¸½bi#™.AFF⹕QA ý‰á˜.Aøãn‚¼•QAô¥B˜.AŽ'ú¶Æ•QA˜€p˜.AlLÀÔ•QA˜•˜.AlL Ü•QA˜¤˜.AlL è•QA˜€Ç˜.AlLÀô•QA˜€è˜.AlLà–QA˜€™.AlL€–QA˜€#™.AlL`+–QA˜€<™.AlL`C–QA˜?™.AlLÀT–QA˜8™.AlLàg–QA˜€1™.AlL`{–QA˜€+™.AlLÀ–QA˜€!™.AlLà›–QA˜™.AlL`©–QA˜™.AlL ·–QA˜÷˜.AlL`Ë–QA˜™.AlLÜ–QA˜H™.AlLê–QA˜€™.AlL÷–QA˜Í™.AlL€ —QA˜€ š.AlLà—QA˜Xš.AlL &—QA˜—š.AlL1—QA˜€ðš.AlL =—QA˜[›.AlLàG—QA˜›.AlLR—QA˜€ œ.AlLX—QA˜dœ.AlLÀ^—QA˜€œœ.AlL@i—QA˜¸œ.AlL u—QA˜©œ.AlLÀ}—QA˜«œ.AlLàŒ—QA˜ªœ.AlL œ—QA˜€¥œ.AlL€¨—QA˜Äœ.AlL€¶—QA˜€Üœ.AlL`À—QA˜€ïœ.AlL@É—QA˜.AlL@Ô—QA˜.AlLÞ—QA˜$.AlLàå—QA˜..AlL@í—QA˜€Q.AlL`ù—QA˜€k.AlL@˜QA˜¶.AlL ˜QA˜€Ä.AlL˜QA˜Í.AlLP˜QA˜€Ú.AlL˜QA˜€ÿ.AlLà˜QA˜€ž.AlL ˜QA˜€0ž.AlL %˜QA˜€9ž.AlLà&˜QA˜€qž.AlL .˜QA˜{ž.AlLÀ0˜QA˜©ž.AlL@;˜QA˜Äž.AlLÀG˜QA˜€Ôž.AlLR˜QA˜íž.AlL@\˜QA˜€Ÿ.AlL€d˜QA˜€:Ÿ.AlL€h˜QA˜€‘Ÿ.AlL@k˜QA˜èŸ.AlL@r˜QA˜E .AlL y˜QA˜Ÿ .AlL€˜QA˜€ô .AlL€˜QA˜¡.AlL“˜QA˜C¡.AlLÀ›˜QA˜€l¡.AlL@¯˜QA˜…¡.AlL€À˜QA˜˜¡.AlLјQA˜€©¡.AlLÀà˜QA˜À¡.AlLàî˜QA˜€Ú¡.AlL ü˜QA˜¢.AlL ™QA˜@¢.AlL°™QA˜¢.AlL`%™QA˜(¢.AlL`7™QA˜€7¢.AlL G™QA˜€G¢.AlL Y™QA˜€m¢.AlLÀd™QA˜€¡¢.AlLÀl™QA˜Õ¢.AlL€u™QA˜@£.AlL`¦™QA˜Û£.AlL€Ü™QA˜€ý£.AlL`ê™QA˜¤.AlL€ý™QA˜€<¤.AlL  šQA˜?¤.AlL@šQA˜.¤.AlLÀ.šQA˜ý£.AlL ;šQA˜Ö£.AlLàFšQA˜Þ£.AlL€NšQA˜€ ¤.AlL UšQA˜\¤.AlL ašQA˜€¤.AlL€pšQA˜€}¤.AlLàvšQA˜y¤.AlL „šQA˜¯¤.AlL`–šQA˜$¥.AlL¥šQA˜h¥.AlL ¬šQA˜€Þ¥.AlL@°šQA˜€E¦.AlL ¶šQA˜€s¦.AlL¾šQA˜ë¦.AlL`ΚQA˜ §.AlLàÔšQA˜€e§.AlL€ÖšQA˜¤§.AlL ášQA˜¨.AlLïšQA˜j¨.AlL@õšQA˜€Ð¨.AlL üšQA˜¬©.AlLà ›QA˜€%«.AlL€ ›QA˜ê¬.AlLÀ6›QA˜€!®.AlL`I›QA˜€Á®.AlL€N›QA˜<¯.AlL J›QA˜§¯.AlL@G›QA˜°.AlLàB›QA˜€§°.AlLà=›QA˜€õ°.AlLð:›QA;€˜Ä.AlL ¥“QA˜°*/AlLàdQA­˜`ñ.AlL¶œQA˜üñ.AlL ¬œQA˜bò.AlL¦œQA˜€Åò.AlL€ œQA˜;ó.AlL€›œQA˜€Óó.AlL@•œQA˜Iô.AlL€œQA˜¤ô.AlLŒœQA˜õ.AlL „œQA˜tõ.AlL@{œQA˜€Üõ.AlL xœQA˜%ö.AlLÀwœQA˜\ö.AlL€vœQA˜™ö.AlL@yœQA˜¦ö.AlLÀ‚œQA˜€²ö.AlL`œQA˜€Âö.AlL —œQA˜€Øö.AlL ©œQA˜5÷.AlL ©œQA˜•÷.AlL@§œQA˜<ø.AlL`œœQA˜€®ø.AlLÀ‘œQA˜€ù.AlLtœQA˜€Íù.AlLdœQA˜ ú.AlL€SœQA˜2ú.AlLÀCœQA˜cú.AlL`7œQA˜€Áú.AlL`0œQA˜”û.AlLœQA˜êû.AlL œQA˜,ü.AlLÀœQA˜xü.AlLàö›QA˜Õü.AlLàî›QA˜€ùü.AlLî›QA˜€ý.AlLí›QA˜&ý.AlLí›QA˜€vý.AlL æ›QA˜—ý.AlL`Ú›QA˜€öý.AlL€Õ›QA˜<þ.AlLÀÓ›QA˜€™þ.AlL`ΛQA˜Ýþ.AlL`È›QA˜ÿ.AlL€¿›QA˜€fÿ.AlL¼›QA˜Z/AlLÀ±›QA˜â/AlL`§›QA˜w/AlLàœ›QA˜/AlL›QA˜€s/AlL@‰›QA˜µ/AlL@›QA˜/AlL@w›QA˜€™/AlL`k›QA˜/AlL@a›QA˜€s/AlL X›QA˜ê/AlL Q›QA˜€9/AlL`<›QA˜Ê/AlL 2›QA˜€r/AlL@(›QA˜€/AlLÀ›QA˜€ˆ/AlL›QA˜€ /AlL ›QA˜€› /AlL ›QA˜þ /AlLà›QA˜J /AlL€úšQA˜€• /AlLàôšQA˜î /AlL`êšQA˜€B /AlL€âšQA˜€Ì /AlLÀÜšQA˜A /AlLÀÙšQA˜à /AlL€×šQA˜. /AlL€ÓšQA˜® /AlL ÔšQA˜€å /AlL€ÑšQA˜ /AlL´šQA˜;/AlLÀ®šQA˜€}/AlL £šQA˜€Ø/AlLÀ›šQA˜€/AlL`“šQA˜€J/AlL‹šQA˜†/AlL`šQA˜Ó/AlLÀxšQA˜€/AlLàqšQA˜U/AlL`lšQA˜½/AlLàešQA˜€)/AlL išQA˜Ð/AlL gšQA˜V/AlLešQA˜/AlL`]šQA˜/AlL€^šQA˜€Ê/AlLdšQA˜3/AlL hšQA˜€ç/AlLišQA˜W/AlL fšQA˜ö/AlL€cšQA˜€·/AlL WšQA˜€•/AlL€OšQA˜€×/AlL€HšQA˜/AlL@?šQA˜x/AlLÀ7šQA˜€5/AlL@7šQA˜«/AlLÀ5šQA˜\/AlL@5šQA˜î/AlL€3šQA˜€£/AlL 2šQA˜€A/AlL4šQA˜ò/AlL`*šQA˜i/AlLà%šQA˜‹/AlL`šQA˜€Ð/AlLšQA˜€$ /AlL@šQA˜b /AlL@šQA˜€æ /AlLàšQA˜€K!/AlLšQA˜‘!/AlL #šQA˜s"/AlLÀšQA˜€î"/AlLàšQA˜€p#/AlLšQA˜é#/AlL€ šQA˜l$/AlL šQA˜€Í$/AlLšQA˜%/AlLÀšQA˜%/AlL`šQA˜!&/AlL šQA˜…&/AlLšQA˜€½&/AlL`šQA˜à&/AlL`!šQA˜)'/AlL (šQA˜'/AlL ,šQA˜€Ý'/AlLà+šQA˜€^(/AlL0*šQA˜Œ(/AlL )šQA˜€N)/AlLà&šQA˜*/AlL &šQA˜°*/AlL šQA˜*/AlLÀú™QA˜Š*/AlLàÔ™QA˜\*/AlLàÁ™QA˜H*/AlL ¶™QA˜€Ü)/AlL€¼™QA˜€Í)/AlL³™QA˜€´)/AlL@¢™QA˜©)/AlLàš™QA˜)/AlL@™QA˜v)/AlLÀ‚™QA˜€·(/AlLÀ?™QA˜€ (/AlLà/™QA˜ƒ(/AlL '™QA˜j(/AlL ™QA˜Z(/AlL`™QA˜$(/AlLà ™QA˜(/AlLý˜QA˜ý'/AlLàï˜QA˜€Ú'/AlLâ˜QA˜ã'/AlL€Ò˜QA˜ô'/AlL˜QA˜€(/AlLౘQA˜€Û'/AlL ¢˜QA˜¯'/A8Íœ˜QA˜€®'/AlLàŠ˜QA˜€¬'/AlL€˜QA˜€²'/AlLn˜QA˜€´'/AlL`_˜QA˜º'/AlLàN˜QA˜º'/AlL D˜QA˜‹'/AlLà6˜QA˜€3'/AlL@-˜QA˜©&/AlL€)˜QA˜h&/AlL€'˜QA˜7&/AlL@$˜QA˜ÿ%/AlLÀ ˜QA˜·%/AlL ˜QA˜€†%/AlL@˜QA˜0%/AlL`˜QA˜ë$/AlL ˜QA˜€‰$/AlL@˜QA˜c$/AlLà˜QA˜*$/AlLà˜QA˜Í#/AlL@ ˜QA˜€“#/AlLÀ ˜QA˜R#/AlL€ ˜QA˜ #/AlLà˜QA˜€À"/AlLà˜QA˜€á"/AlL ý—QA˜#/AlL@ø—QA˜€æ"/AlL`ñ—QA˜ƒ"/AlL@ì—QA˜I"/AlLè—QA˜"/AlLå—QA˜Û!/AlLã—QA˜€‹!/AlLá—QA˜€:!/AlLàÞ—QA˜€!/AlL Þ—QA˜€¤ /AlL€Õ—QA˜r /AlLË—QA˜€ /AlL ¾—QA˜€Ê/AlLº—QA˜q/AlL`±—QA˜B/AlLࣗQA˜/AlLÀ’—QA˜µ/AlL@—QA˜h/AlL Œ—QA˜/AlLà‡—QA˜/AlLÀ—QA˜ø/AlL ~—QA˜€Ú/AlLÀŽ—QA˜€c/AlLà‹—QA˜c/AlLÀp—QA˜€p/AlLàc—QA˜€/AlL _—QA˜¥/AlLàd—QA˜Q/AlLàj—QA˜ó/AlL m—QA˜€j/AlL p—QA˜ê/AlL`o—QA˜€/AlL i—QA˜€&/AlLàe—QA˜ð/AlL\—QA˜·/AlL€Y—QA˜s/AlL\—QA˜5/AlLÀb—QA˜€ì/AlL b—QA˜€r/AlL@a—QA˜{/AlLàg—QA˜€/AlLÀq—QA˜$/AlL o—QA˜ñ/AlLj—QA˜Þ/AlLd—QA˜Ð/AlL`]—QA˜€è/AlL@U—QA˜€â/AlL N—QA˜€ª/AlL`M—QA˜€l/AlL P—QA˜/AlL O—QA˜€ç/AlL€M—QA˜¤/AlL G—QA˜€r/AlL`?—QA˜/AlL =—QA˜÷/AlL D—QA˜€¿/AlL M—QA˜‰/AlL J—QA˜€z/AlL€@—QA˜L/AlL9—QA˜€/AlLà:—QA˜€¯/AlLÀC—QA˜€/AlL ?—QA˜€X/AlL :—QA˜ /AlL 7—QA˜€¤/AlLà7—QA˜u/AlL:—QA˜3/AlL`9—QA˜/AlL@2—QA˜€Þ/AlLà.—QA˜–/AlLÀ+—QA˜Ý/AlL '—QA˜€o/AlL %—QA˜€/AlL *—QA˜³ /AlL$—QA˜€1 /AlL —QA˜Þ /AlLà#—QA˜Á /AlL€-—QA˜€³ /AlL >—QA˜X /AlL@J—QA˜€É /AlLQ—QA˜€î /AlLàL—QA˜4 /AlLÀD—QA˜Á /AlL`:—QA˜o /AlL`+—QA˜€U /AlL &—QA˜ /AlL —QA˜y/AlL@ —QA˜î/AlL—QA˜€~/AlL€—QA˜€Ë/AlL—QA˜€e/AlL þ–QA˜,/AlLàø–QA˜Ç/AlL ï–QA˜}/AlL@ë–QA˜D/AlL@è–QA˜Ñ/AlLÀì–QA˜€‰/AlLàê–QA˜(/AlLé–QA˜Ý/AlL í–QA˜€‰/AlL€ö–QA˜/AlL@ö–QA˜_/AlLàí–QA˜Ó/AlL å–QA˜L/AlL Ú–QA˜€í/AlL@Ó–QA˜ /AlL€Í–QA˜4/AlL@Å–QA˜ /AlL`½–QA˜€¡ÿ.AlL`«–QA˜€]ÿ.AlL€œ–QA˜ÿ.AlL@Œ–QA˜ãþ.AlLƒ–QA˜€þ.AlLàr–QA˜jþ.AlL@f–QA˜:þ.AlLàZ–QA˜€þ.AlL€K–QA˜€þ.AlLÀ!–QA˜ÿý.AlL@–QA˜1þ.AlL`÷•QA˜©þ.AlL ã•QA˜ÿ.AlL Ð•QA˜Kÿ.AlLàÀ•QA˜€Ãÿ.AlL@¶•QA˜€ãÿ.AlL@¯•QA˜/AlL@™•QA˜/AlLÀˆ•QA˜âÿ.AlLu•QA˜€×ÿ.AlL@g•QA˜€÷ÿ.AlL Q•QA˜€æÿ.AlL >•QA˜€ûÿ.AlL@1•QA˜€ÿÿ.AlL€•QA˜6/AlL •QA˜m/AlL •QA˜€¸/AlLÀ•QA˜€û/AlL€ •QA˜e/AlL`•QA8¹ê/AÒ²ffë”QA˜€Ü/AlLÀç”QA˜—/AlL€Õ”QA˜/AlLÀÄ”QA˜€„/AlL`§”QA˜€$/AlLÀ””QA˜…ÿ.AlL€”QA˜ ÿ.AlL o”QA˜þ.AlL`_”QA˜€þ.AlL Q”QA˜†ý.AlLG”QA˜€ïü.AlL ;”QA˜ìû.AlL 4”QA˜€uú.AlL`0”QA˜{ø.AlL0”QA˜[÷.AlL &”QA˜aõ.AlL”QA˜€öñ.AlL€ ”QA˜€\ð.AlL€”QA˜¡ï.AlL€ü“QA˜€ ï.AlLû“QA˜8î.AlLàù“QA˜€Zì.AlLÀð“QA˜/ì.AlL€ï“QA˜Ìë.AlLÀì“QA˜€åê.AlLpâ“QA˜aê.AlL€Ü“QA˜¢é.AlL`Ü“QA˜ëè.AlLÜ“QA˜€àç.AlL`Ö“QA˜ßæ.AlLàË“QA˜€Mæ.AlL Â“QA˜âå.AlL ¼“QA˜få.AlL@´“QA˜Øä.AlL€²“QA˜vä.AlL€¸“QA˜€Üã.AlL`½“QA˜Sâ.AlL€¹“QA˜³á.AlLÀ³“QA˜iá.AlL`¨“QA˜€/á.AlL`¦“QA˜˜à.AlL¨“QA˜€ à.AlL ª“QA˜ÑÞ.AlL ¥“QA˜OÞ.AlLÀµ“QA˜€ Þ.AlLÀÀ“QA˜pÝ.AlLÇ“QA˜€æÜ.AlLÀÄ“QA˜rÜ.AlLÁ“QA˜€Ü.AlL¿“QA˜€ˆÛ.AlL@¾“QA˜*Û.AlL Á“QA˜­Ú.AlL Á“QA˜€¿Ù.AlL@Å“QA˜€»Ù.AlLÀÌ“QA˜ÅÙ.AlL Ô“QA˜€ßÙ.AlLÀÛ“QA˜úÙ.AlL@â“QA˜Ú.AlL é“QA˜Ú.AlLàó“QA˜òÙ.AlL@û“QA˜€ìÙ.AlL þ“QA˜äÙ.AlL@”QA˜€×Ù.AlL  ”QA˜€ÌÙ.AlL`”QA˜€¹Ù.AlL”QA˜¤Ù.AlL %”QA˜€Ù.AlL.”QA˜vÙ.AlL7”QA˜€qÙ.AlLÀ8”QA˜€óØ.AlL@I”QA˜ŸØ.AlLàW”QA˜€_Ø.AlL a”QA˜"Ø.AlLài”QA˜â×.AlLàt”QA˜¦×.AlLà}”QA˜€f×.AlL ˆ”QA˜€ ×.AlL€“”QA˜€ÕÖ.AlL€”QA˜€‰Ö.AlL@¬”QA˜oÖ.AlL´”QA˜€=Ö.AlL`À”QA˜Ö.AlLÍ”QA˜ÂÕ.AlLÛ”QA˜€wÕ.AlLå”QA˜€mÕ.AlL`æ”QA˜€ Õ.AlLò”QA˜€ÑÔ.AlLàý”QA˜€«Ô.AlL •QA˜—Ô.AlL !•QA˜‡Ô.AlL1•QA˜uÔ.AlL ;•QA˜RÔ.AlL G•QA˜Ô.AlLÀQ•QA˜ÅÓ.AlL Z•QA˜cÓ.AlLÀc•QA˜€ Ó.AlL l•QA˜ÁÒ.AlL€t•QA˜Ò.AlL€|•QA˜ Ò.AlL@}•QA˜€§Ñ.AlLw•QA˜€Ñ.AlL`v•QA˜€{Ð.AlL@|•QA˜Ð.AlLÀ‚•QA˜yÏ.AlL@ˆ•QA˜€ðÎ.AlL`ˆ•QA˜€uÎ.AlL ˆ•QA˜€ýÍ.AlLˆ•QA˜vÌ.AlLp…•QA˜€BÌ.AlL …•QA˜€ÅË.AlL …•QA˜€ûÊ.AlLà‚•QA˜€JÊ.AlL€•QA˜¬É.AlL {•QA˜öÈ.AlLz•QA˜bÈ.AlL@t•QA˜€ÜÇ.AlL r•QA˜Ç.AlL`n•QA˜4Ç.AlL`m•QA˜zÆ.AlL •QA˜RÆ.AlL@‹•QA˜€Æ.AlLà“•QA˜€#Æ.AlL€ž•QA˜(Æ.AlL ¥•QA˜Æ.AlL¬•QA˜ÔÅ.AlLÀ¹•QA˜‡Å.AlL É•QA˜4Å.AlL€Ø•QA˜æÄ.AlLÀí•QA˜€ÁÄ.AlL€ü•QA˜³Ä.AlL€–QA˜žÄ.AlL–QA˜Ä.AlL€(–QA˜€qÄ.AlL @–QA˜@4Ä.AlL0S–QA˜Ä.AlL@b–QA˜€dÄ.AlL@b–QA˜€¹Ä.AlL€e–QA˜€Å.AlLÀg–QA˜QÅ.AlL k–QA˜ˆÅ.AlL q–QA˜ÁÅ.AlL w–QA˜€Æ.AlL@ƒ–QA˜Æ.AlL€–QA˜€aÆ.AlL ”–QA˜ŸÆ.AlL@“–QA˜€ÐÆ.AlL‰–QA˜Ç.AlLÀ€–QA˜€6Ç.AlLà{–QA˜gÇ.AlL€w–QA˜ãÇ.AlLàu–QA˜€5È.AlL }–QA˜€’È.AlL@†–QA˜€ÈÈ.AlL Š–QA˜$É.AlL€–QA˜_É.AlLÀ––QA˜…É.AlL¦–QA˜ÓÉ.AlL ©–QA˜€¨Ê.AlL€°–QA˜€Ë.AlLà°–QA˜€kË.AlL€´–QA˜€ºË.AlLÀ½–QA˜€ÕË.AlL€Ã–QA˜UÌ.AlL`Í–QA˜€ßÌ.AlL Õ–QA˜GÍ.AlLàÚ–QA˜ºÍ.AlL`á–QA˜þÍ.AlL€è–QA˜€9Î.AlL õ–QA˜[Î.AlLàý–QA˜xÎ.AlL —QA˜€›Î.AlLà—QA˜€ÚÎ.AlL€.—QA˜1Ï.AlL :—QA˜€–Ï.AlLF—QA˜ÐÏ.AlL R—QA˜åÏ.AlL`\—QA˜Ð.AlL e—QA˜IÐ.AlLÀk—QA˜~Ð.AlLÀl—QA˜€ºÐ.AlLÀl—QA˜€Ñ.AlLào—QA˜€qÑ.AlL`t—QA˜¼Ñ.AlL |—QA˜íÑ.AlL`…—QA˜€4Ò.AlL€‘—QA˜ZÒ.AlL —QA˜—Ò.AlL«—QA˜ØÒ.AlL ´—QA˜€?Ó.AlL@¶—QA˜€·Ó.AlLà·—QA˜Ô.AlL`»—QA˜wÔ.AlL@—QA˜ÀÔ.AlLÀË—QA˜Õ.AlL ×—QA˜@Õ.AlLÙ—QA˜XÕ.AlL Þ—QA˜¸Õ.AlLÀã—QA˜žÖ.AlL í—QA˜ùÖ.AlL ð—QA˜€R×.AlL ò—QA˜€—×.AlLÀô—QA˜8Ø.AlL ô—QA˜ߨ.AlL õ—QA˜7Ù.AlLàõ—QA˜€xÙ.AlLÀö—QA˜èÙ.AlLàø—QA˜€oÚ.AlL`ø—QA˜ØÚ.AlL€ø—QA˜€Û.AlLÀõ—QA˜nÛ.AlLù—QA˜ëÛ.AlL`ü—QA˜€1Ü.AlL@ù—QA˜ƒÜ.AlL@÷—QA˜€õÜ.AlLû—QA˜8Ý.AlL€þ—QA˜”Ý.AlLà˜QA˜Þ.AlL ˜QA˜€oÞ.AlL€˜QA˜€ÙÞ.AlL ˜QA˜ƒß.AlL ÷—QA˜€òß.AlL€ò—QA˜€ƒà.AlL€î—QA˜Ûà.AlL€í—QA˜€_á.AlLàé—QA˜€¼á.AlLé—QA˜0â.AlL`æ—QA˜€Àâ.AlL€ï—QA˜€%ã.AlLàõ—QA˜yã.AlLàú—QA˜€ùã.AlLÀþ—QA˜‹ä.AlL˜QA˜€'å.AlL`˜QA˜€Ãå.AlLÀÿ—QA˜€6æ.AlL€ÿ—QA˜eæ.AlL`ÿ—QA˜€ç.AlL ˜QA˜lè.AlLàþ—QA˜é.AlL ˜QA˜né.AlLÀ ˜QA˜€ré.AlL° ˜QA˜€yé.AlL˜QA˜–é.AlL`˜QA˜€£é.AlL .˜QA˜€£é.AlL`<˜QA˜˜é.AlLàI˜QA˜•é.AlL@V˜QA˜¨é.AlL c˜QA˜€®é.AlL0l˜QA˜€´é.AlL t˜QA˜€Øé.AlL€|˜QA˜€ê.AlL …˜QA˜%ê.AlL€‘˜QA˜€2ê.AlL@š˜QA˜1ê.AlLÀ£˜QA˜€0ê.AlL௘QA˜6ê.AlLà·˜QA˜€9ê.AlLÀ˜QA˜€Eê.AlL Ò˜QA˜]ê.AlL€á˜QA˜€hê.AlLàô˜QA˜Zê.AlL ™QA˜Qê.AlL™QA˜Aê.AlL ™QA˜hê.AlL€2™QA˜qê.AlL@C™QA˜€zê.AlL`V™QA˜‹ê.AlL d™QA˜€{ê.AlLu™QA˜€oê.AlLÀ™QA˜€aê.AlL@Ž™QA˜Jê.AlL`œ™QA˜€Vê.AlL€¥™QA˜Yê.AlL °™QA˜€*ê.AlL@·™QA˜ûé.AlL ¹™QA˜€oé.AlL¼™QA˜€bé.AlL@¼™QA˜€àè.AlLÀÅ™QA˜€eè.AlL Í™QA˜Úç.AlLÀÕ™QA˜pç.AlLàÛ™QA˜ ç.AlLÀà™QA˜€kæ.AlL å™QA˜€Öå.AlL é™QA˜lå.AlLÀì™QA˜òä.AlL@ò™QA˜€€ä.AlL€÷™QA˜=ä.AlLÀù™QA˜€ßã.AlL ÿ™QA˜€~ã.AlL`šQA˜€ã.AlLÀšQA˜€0ã.AlL€ šQA˜Cã.AlLšQA˜hã.AlLà'šQA˜€oã.AlLÀ7šQA˜ã.AlL`DšQA˜€£ã.AlLàMšQA˜€½ã.AlL UšQA˜Õã.AlLà]šQA˜€Ãã.AlL@gšQA˜€žã.AlLÀošQA˜pã.AlLà~šQA˜Fã.AlL ‰šQA˜ã.AlL`•šQA˜€ôâ.AlLÀ šQA˜Ïâ.AlL@ªšQA˜¨â.AlL@·šQA˜€yâ.AlL ÁšQA˜Iâ.AlL€ÉšQA˜÷á.AlL ÓšQA˜¤á.AlLÀÞšQA˜€?à.AlL`(›QA˜‚à.AlL /›QA˜Íà.AlL 8›QA˜,á.AlL@?›QA˜€®á.AlLK›QA˜€ýá.AlL P›QA˜€Ùã.AlL °›QA˜€3ã.AlL§œQA˜…ã.AlL©œQA˜Ñã.AlL`©œQA˜€ä.AlL ªœQA˜€-ä.AlL@®œQA˜€^ä.AlL`¯œQA˜àä.AlLÀ­œQA˜å.AlL€´œQA˜€#å.AlL`ºœQA˜aå.AlL€ÆœQA˜©å.AlL€ÏœQA˜€äå.AlLØœQA˜€âå.AlLâœQA˜/æ.AlLÀìœQA˜€_æ.AlLÀðœQA˜€wæ.AlLÀ÷œQA˜½æ.AlL ýœQA˜ÿæ.AlLQA˜€ç.AlLQA˜€8ç.AlL€QA˜ç.AlL QA˜¹ç.AlL QA˜õç.AlL€ QA˜'è.AlL@,QA˜Qè.AlL 3QA˜€‡è.AlL :QA˜€èè.AlLAQA˜€0é.AlL@EQA˜ƒé.AlL HQA˜Ñé.AlL MQA˜€<ê.AlLàRQA˜šê.AlL XQA˜àê.AlL _QA˜€Ìë.AlLàdQA˜€óê.AlL€2QA˜€"ë.AlL@QA˜€¹ë.AlL ìœQA˜-ì.AlLÀêœQA˜¡ì.AlLèœQA˜€Qí.AlLàåœQA˜€[î.AlLàÝœQA˜æî.AlLÀÙœQA˜‘ï.AlLàΜQA˜dð.AlLÀÄœQA˜€Õð.AlL ¼œQA˜`ñ.AlL¶œQA< `Ì€S0AlL°QATQ/ª(0AlL8UŠQAIÌ€«!0AlL@š‰QAÌH%0AlL€]ˆQAÌÀ%0AlL°aˆQAÌ€º&0AlL€uˆQA(¸7Mú&0AG]‘yˆQAÄZ[†M&0Aà’”ÖˆQAÌÀx'0AlLð‡QAÌ€i(0AlL`Ò‡QAü}¥±ˆ(0AFùú8·QA àŸ(0AÌ Rã·QATQ/ª(0AŽ'úNb‡QA8ÌvcŽ(0Az 1P‡QA8ÌvcŽ(0AÒCå©2‡QAÌÊ'0AlL°8‡QAÌj'0AlLû†QAÌ€J'0AlLàæ†QA4vhæ7'0Aæ™Û†QAÌÀR&0AlL Û†QAÌÀº%0AlL Û†QAÌÀF%0AlL Û†QAÌÀÜ$0AlLÀÛ†QAÌ€Õ$0AlLàÛ†QAÌÌ$0AlLðÙ†QAÌ“$0AlLÔ†QAÌP$0AlL@φQAÌÀô#0AlL Ç†QAÌÀk#0AlLÀ¼†QAÌ#0AlL@²†QAÌ€¢"0AlL ¦†QAÌÀs"0AlL¡†QAÌ>"0AlL`˜†QAÌ"0AlL “†QAÌ€Ý!0AlL`Œ†QAÌÀ»!0AlL@„†QAÌÀŠ!0AlL@t†QAÌl!0AlLàg†QAÌ€&!0AlLàQ†QAÌÀ!0AlL`B†QAÌ@ä 0AlL€4†QAÌÍ 0AlL#†QAÌ@˜ 0AlL†QAÌ@w 0AlLà†QAÌÀU 0AlL@ý…QAÌ8 0AlLàð…QAÌ@ 0AlL ç…QAÌÀø0AlL`Ú…QAÌ@Ü0AlL Ð…QAÌ€À0AlLÈ…QAÌ 0AlL ½…QAÌ@0AlLÀµ…QAÌ@0AlL«…QAÌ@0AlL@ …QAÌ0AlL@ž…QAÌ@ý0AlL¤…QAÌÀë0AlL`¨…QAÌÏ0AlLÀ¦…QAÌ@¹0AlL€¥…QAÌ ¢0AlL  …QAÌÀÃ0AlL0Š…QAÌ€Þ0AlL0…QAÌÀ#0AlLk…QA|èaB0AÈòèa…QAD4™Ÿµ0Aêï`…QA {œwc0A ]6è…QAÜ·öÅ0AN™?3…QAÜ<´ý¼0ARj§`7…QAxEÏ;˜0Aƽ‹?…QAÜ€®ÛÃ0Aƽ‹?…QA(¸7­Õ0AÄô5qÙ„QA´¾'¤Æ0A´ ~yª„QAÏm~0AyC„¬„QA4Ká-0AÚïU„QALO7^%0A wZP„QA’äç'0AÀÀ$/L„QAôŽùŽ0A6îE>΃QAÌÀ‡0AlL¿ƒQAÌÀL0AlL`ŠƒQAÌ@20AlL@yƒQAÌ€0AlLÀlƒQAÌÀ0AlL``ƒQAÌÀò0AlLRƒQAÌ@Ñ0AlLÀDƒQAÌ€ª0AlL`;ƒQAÌ@„0AlL 4ƒQAÌ[0AlL`)ƒQAÌ€D0AlLàƒQAÌÀ/0AlL@ƒQAÌ€0AlL€ƒQAÌò0AlLÀ÷‚QAÌ€Ë0AlLÀæ‚QAÌÀ¨0AlL€Ö‚QAÌŸ0AlLÇ‚QAÌÀ“0AlL@¼‚QẢ0AlL€°‚QAÌÀs0AlLÀ¥‚QAÌ€R0AlL`›‚QAÌ@0AlL ˆ‚QAÌ€ô0AlL`x‚QAÌ@å0AlL c‚QAÌ€Ó0AlLÀW‚QAÌÅ0AlLJ‚QAÌÀ°0AlL@<‚QAÌ@Ÿ0AlLà2‚QAÌ@ˆ0AlL@'‚QAÌ@v0AlL ‚QAÌÀr0AlLÀ‚QAÌG0AlLPÏQAÌ€-0AlLÎQAÌÀ0AlL°QA̤0AlL ¼QÄ0AlLà¾QAÌ€e0AlL`ÇQAÌ@a0AlL`ÏQAÌ€e0AlLÀÕQAÌÀl0AlLàßQAÌn0AlL€êQAÌ€^0AlL`úQAÌ@G0AlL@‚QAÌ€50AlL€‚QAÌÀ!0AlL€‚QAÌ0AlL‚QAÌþ0AlL€)‚QAÌ0AlL4‚QAÌÀ 0AlLà?‚QAÌ 0AlL J‚QAÌ€÷0AlLàR‚QAÌ@²0AlLàX‚QAÌ@€0AlLÀT‚QAÌ€I0AlL R‚QAÌ€ÿ0AlLÀP‚QAÌ€Æ0AlLO‚QAÌ@30AlL b‚QAÌ@“ 0AlL€´‚QAÌÀÞ 0AlL€Ê‚QAÌ€² 0AlLàÏ‚QAÌ@› 0AlL€ß‚QAÌ` 0AlL@à‚QAÌ€j 0AlLÀÝ‚QAÌ@P 0AlLàÒ‚QAÌ9 0AlL@Ï‚QAÌ& 0AlL`Ë‚QAÌ€ 0AlL@Æ‚QAÌ@ù 0AlL Â‚QAÌÀá 0AlL À‚QAÌÀ¾ 0AlLà‚QAÌ¥ 0AlL Å‚QAÌ€ˆ 0AlL€Í‚QAÌÀu 0AlL Ö‚QAÌ€ 0AlL€â‚QA̘ 0AlL ì‚QAÌ€À 0AlL ö‚QAÌì 0AlLý‚QAÌÀ 0AlL þ‚QAÌÀP 0AlLàü‚QAÌÀ 0AlLú‚QAÌÀ» 0AlLø‚QAÌ@î 0AlLàö‚QAÌ@ 0AlL`÷‚QAÌÀ4 0AlLàý‚QAÌÀO 0AlLà ƒQAÌ@] 0AlL@ƒQAÌ@X 0AlL€!ƒQAÌ@X 0AlL@,ƒQAÌ@] 0AlLà3ƒQAÌÀf 0AlLOƒQAÌ€j 0AlL PƒQAÌ€‚ 0AlL[ƒQAÌ— 0AlLiƒQAÌ€³ 0AlLrƒQAÌ@Ù 0AlL{ƒQAÌ€ 0AlL@†ƒQAÌ@M 0AlLà–ƒQAÌ€» 0AlL€µƒQAÌ 0AlL „QAÌ€Ñ 0AlL€„QAÌ@¿ 0AlL  „QAÌ€‰ 0AlL`„QAÌ€h 0AlL „QAÌ€: 0AlLÀ„QAÌ 0AlL „QAÌ@ñ 0AlLà „QAÌØ 0AlLà2„QAÌÀÓ 0AlL@c„QAÌ@½ 0AlL ”„QAÌ!0AlL ê„QAÌÀX0AlL@þ„QAÌ€f0AlL`0…QAÌé0AlL@…QAÌ 0AlLh9…QAÌ@ˆ0AlL J…QAÌ@¤0AlLpX…QAÌ·0AlLb…QAÌ@Ï0AlL€l…QAÌ@å0AlLx…QAÌ€ú0AlLà…QAÌ@û0AlLƒ…QAÌÀû0AlL……QAÌÀ0AlL`—…QAÌ0AlLà«…QAÌÀ0AlL »…QAÌÀ‰0AlLà†QAÌÀ‰0AlL@͆QAÌ€0AlL@ȆQAÌ€ž0AlL@õ†QAÌ@‹0AlL ‡QAÌÀ0AlL  ‡QAÌ€µ 0AlLà‡QAÌ€' 0AlL ‡QAÌú 0AlLÀE‡QAÌ@0 0AlLÀ‰‡QAÌ€ 0AlLà‡QAÌ@ 0AlL ¥‡QAÌE 0AlL`²‡QAÌ¡ 0AlL€Ñ‡QAÌ€ 0AlL@í‡QAÌÀÐ 0AlLÀñ‡QAÌ5 0AlL€ˆQAÌ€ 0AlL)ˆQAÌÀ 0AlL 1ˆQAÌ€ 0AlLైQAÌÀ0AlL€,‰QAÌ0AlLà0‰QAÌ@ê0AlLÀ6‰QAÌ@Ì0AlL>‰QAÌ€­0AlL F‰QAÌÀ“0AlL@T‰QAÌ€r0AlL€_‰QAÌ€G0AlL€l‰QAÌÀ0AlL y‰QAÌ€é0AlL`„‰QAÌ€»0AlLàŒ‰QAÌÀž0AlL “‰QÃ0AlLà˜‰QAÌ€S0AlL¤‰QAÌ0AlL€®‰QAÌ@©0AlLµ‰QAÌ€Â0AlL¹‰QAÌ@á0AlL°º‰QAÌø0AlLà·‰QAÌ@0AlL@´‰QAÌ€<0AlL€²‰QAÌ@e0AlL@µ‰QAÌÀ0AlL@¸‰QAÌ€Å0AlLÀ½‰QAÌ€è0AlL`‰QAÌ€0AlL Æ‰QAÌ*0AlL`͉QAÌÀJ0AlLÀÕ‰QAÌ€o0AlLàÚ‰QAÌ€§0AlL`݉QAÌ€Ï0AlL@߉QAÌ€ 0AlL߉QAÌ@90AlL Ý‰QAÌx0AlL`܉QAÌ€®0AlL Ù‰QAÌÀV0AlL@؉QAÌ€K 0AlL@Ö‰QAÌ@ 0AlLðï‰QAÌÒ 0AlLðщQAÌÀ*0AlLpŠQAÌ@10AlL É‰QAÌ€$0AlL ±‰QAÌÀš0AlL`¤‰QAÌÆ0AlL ¡‰QAÌ 0AlL ¢‰QAÌ@D0AlL`§‰QAÌÀp0AlL੉QAÌ@ˆ0AlL@«‰QAÌÀ¦0AlL౉QAÌ@²0AlL ‰QA̲0AlLÀ͉QA̳0AlL@Ù‰QA̵0AlL ã‰QAÌÀª0AlLì‰QAÌ‘0AlL`ò‰QAÌs0AlL ü‰QAÌ€n0AlL`ŠQAÌÀt0AlLàŠQAÌ–0AlL$ŠQAÌÁ0AlL€(ŠQAÌÀÞ0AlL@+ŠQAÌ€0AlL 8ŠQA̤0AlLàÿ‰QAÌÀK0AlL ‰QAÌG0AlL`y‰QAÌ@X0AlL q‰QAÌÀk0AlL e‰QAÌx0AlL ^‰QAÌ€‘0AlLY‰QAÌ©0AlLàV‰QAÌÌ0AlL€T‰QAÌ€ò0AlL`S‰QAÌ@ 0AlL Q‰QAÌ@"0AlL`J‰QAÌ#0AlLàC‰QAÌ@#0AlLà8‰QAÌ@80AlLà1‰QAÌÀb0AlL -‰QAÌ@0AlL`,‰QAÌÀ´0AlL€+‰QAÌÙ0AlL (‰QAÌÀõ0AlL`"‰QAÌ 0AlL ‰QAÌ 0AlL ‰QAÌ@+0AlLÀ‰QAÌÀ20AlL`ôˆQAÌÀ80AlL`éˆQAÌÀ<0AlLàÛˆQAÌ>0AlL€ÏˆQAÌB0AlL@ÁˆQAÌÀB0AlL@¾ˆQAÌÀi0AlLƈQAÌð0AlLÐE‰QAÌÀô0AlLÀF‰QAÌÀþ0AlLÀH‰QAÌ@¼0AlLà ‰QAÌÀ20AlL »‰QAÌ¿0AlL€Ö‰QAÌ€0AlLÀè‰QAÌ€Q0AlL`í‰QAÌ€Þ0AlL@ŠQAÌu 0AlL`ŠQAÌ€d!0AlLÀ0ŠQAÌ@i"0AlL@PŠQAÌàƒ"0AlL8UŠQAÌ@F#0AlL å‰QAÌ"0AlL@·‰QAÌ"0AlL ¶‰QAÌ€«!0AlL@š‰QA= 0ÌÀ‘S0AlL y•QAÌÀ8—0AlL€ QAƒÌ€÷y0AlL0èšQAÌ€z0AlLмšQAÌ€"{0AlL“šQAÌÀ€{0AlL0wšQAÌ€µ|0AlLà-šQAÌÀ }0AlLÀšQAÌ€;}0AlLšQAÌ@w}0AlL€šQAÌÀË}0AlLàî™QAÌÛ}0AlL ê™QAÌõ}0AlL`ã™QAÌ€!~0AlL ×™QAÌ2~0AlL`Ò™QAÌQ~0AlL Ì™QAÌÀz~0AlL`ÙQAÌ€®~0AlL ·™QAÌ@×~0AlL€­™QAÌü~0AlL ¥™QAÌ@0AlL`™QAÌ)0AlL€—™QAÌ@@0AlL€“™QAÌo0AlLÀŠ™QAÌ€’0AlLÀ‚™QAÌ€«0AlL |™QAÌÀô0AlL°t™QAÌ@{€0AlLÀU™QAÌ ª€0AlLàJ™QAÌÀ0AlL™QAÌ@-‚0AlL ü˜QAÌÀ¢‚0AlL@æ˜QAÌ€P„0AlLš˜QAÌÀ±„0AlL Ž˜QAÌ@Є0AlL`‰˜QAÌà„0AlL ƒ˜QAÌÀ…0AlL~˜QAÌ€P…0AlLÀu˜QAÌ`…0AlL0s˜QAÌÀ–…0AlLc˜QAÌ@t†0AlLP7˜QAÌ@¨‡0AlLÐø—QAÌ@ê‡0AlL0ì—QAÌÀ0ˆ0AlL0é—QAÌÀƒˆ0AlL Û—QA̽ˆ0AlLÐÔ—QAÌ6‰0AlL@¸—QAÌÀ³‰0AlL £—QAÌ€ä‰0AlL€¡—QAÌÀjŠ0AlLЈ—QAÌÀ‹0AlL q—QAÌ@÷‹0AlLÀX—QAÌKŒ0AlLàI—QAÌ€Œ0AlL€?—QAÌ@òŒ0AlLà3—QAÌÀO0AlLà%—QAÌ@—0AlL —QAÌÀÏ0AlLÀ—QAÌŽ0AlLà—QAÌÀ1Ž0AlL  —QAÌ@oŽ0AlL —QAÌœŽ0AlL`þ–QAÌ@ÕŽ0AlL ö–QAÌ@0AlL`í–QAÌÀI0AlLé–QAÌÀˆ0AlL`ã–QAÌÀÆ0AlL Ú–QAÌ@å0AlL Õ–QAÌ€0AlL€Ò–QAÌÀB0AlL Ï–QAÌÀ`0AlLàÇ–QAÌ@‚0AlL`À–QAÌ€–0AlL@¿–QAÌ®0AlLབQAÌÀÌ0AlL€¼–QAÌ€â0AlL »–QAÌÀ÷0AlL๖QAÌ@[‘0AlL`¯–QAÌ€l‘0AlL@­–QAÌÀ•‘0AlL¨–QAÌÀ’0AlL œ–QAÌ@M’0AlLÀ–QÀ˒0AlL`–QAÌl“0AlL€p–QAÌ@á“0AlLÀd–QAÌ ”0AlLÀ^–QAÌ@7”0AlLàW–QA̸”0AlL€I–QAÌ@ê”0AlL B–QAÌ/•0AlL@:–QAÌÀb•0AlLà5–QAÌ@–0AlL&–QAÌÀ–0AlL€–QAÌ—0AlL` –QÀ˖0AlLÀÜ•QAÌÀ8—0AlL “•QAÌ€—0AlL`“•QAÌ€û–0AlLàš•QAÌÀÆ–0AlL€Ÿ•QAÌ©–0AlL ¨•QAÌ@–0AlL ¯•QAÌÀ_–0AlL ²•QAÌ@5–0AlL ¯•QAÌ@–0AlL µ•QAÌß•0AlLÀ¼•QAÌÀ‡•0AlL€Æ•QAÌ@ú”0AlL Ì•QAÌÀÚ”0AlL`Ô•QAÌ·”0AlLÚ•QAÌu”0AlL ß•QAÌÀ&”0AlL æ•QAÌ@ “0AlL@÷•QAÌ€ó’0AlL@–QAÌ€¾’0AlL –QAÌ@'‘0AlL¨"–QAÌ@‘0AlL H–QAÌÀc‘0AlL€l–QAÌ@ø0AlLÀv–QAÌÎ0AlLÀY–QAÌ0AlL°Z–QAÌÀº0AlLà^–QAÌ€ŸŽ0AlLà\–QAÌ?Ž0AlLÀc–QAÌÀÜ0AlL`m–QAÌ@£0AlL€x–QAÌY0AlLà‰–QAÌ-0AlLà–QAÌ€£Œ0AlL@Ž–QÃŒ0AlL –QAÌ€cŒ0AlL —–QAÌÀŒ0AlLÀ¸–QAÌ€ç‹0AlLàÇ–QAÌÀ¶Š0AlL€ç–QAÌ€Š0AlLÀÙ–QAÌ@uˆ0AlL—QAÌÀ@ˆ0AlLà—QAÌÀ÷‡0AlLà—QA̺‡0AlL —QAÌk‡0AlL€—QAÌÀ ‡0AlL€!—QAÌÀæ†0AlL#—QAÌÀ©†0AlL€%—QAÌ@p†0AlL&—QAÌ€8†0AlL€'—QAÌà…0AlLÀ*—QAÌ„…0AlL€/—QAÌÀ)…0AlLÀ5—QAÌÀÒ„0AlL`3—QAÌ(„0AlL/—QAÌ€¢ƒ0AlL -—QAÌ,ƒ0AlL`,—QAÌ@ú‚0AlL€.—QAÌÀÉ‚0AlL 2—QAÌ€Ÿ‚0AlL@6—QAÌ€g‚0AlLÀ4—QAÌ€þ0AlLà.—QAÌ€ƒ0AlLÀ+—QAÌ€0AlL -—QAÌ€€0AlL€)—QAÌ@í0AlL *—QAÌÀÏ~0AlL`>—QAÌ $~0AlLèH—QAÌ@‘}0AlL@—QAÌ€ñ|0AlL¶–QAÌ@ó{0AlL€9–QAÌ€{0AlL€Ê•QAÌ€^z0AlL y•QAÌ{x0AlL`™•QAÌ w0AlLP˜QAÌ@wv0AlL2™QAÌÀ#v0AlLàÇ™QAÌ€u0AlL`šQAÌ u0AlL° šQAÌ5s0AlL€qšQAÌÀãr0AlL@}šQAÌ€Ör0AlL@šQAÌ€óp0AlL ÑšQAÌ€Óo0AlLÀø™QAÌ€Æo0AlLï™QAÌÀžo0AlL Ï™QAÌ`o0AlL©™QAÌ@Lo0AlL ™QAÌ@2o0AlL •™QAÌÀo0AlL ‡™QAÌ@Ýn0AlL`z™QAÌ€»n0AlLj™QĄn0AlL`]™QAÌ@n0AlL€P™QAÌŒn0AlL ?™QAÌÀkn0AlL1™QAÌ€Qn0AlL ™QAÌ?n0AlL€™QAÌ.n0AlL ™QAÌ€n0AlLàò˜QAÌ@n0AlL€ä˜QAÌ×m0AlL@˘QAÌÀÀm0AlL@¶˜QA̯m0AlL`¦˜QAÌÀªm0AlL ‘˜QAÌÀªm0AlLÀ‚˜QAÌœm0AlLa˜QAÌ€m0AlLÀT˜QAÌšm0AlL€2˜QAÌ€Œm0AlLà(˜QAÌum0AlLà˜QAÌ@_m0AlL ˜QAÌYm0AlL€ö—QAÌÀ*m0AlLÚ—QAÌ@òl0AlL`Á—QAÌÛl0AlL°·—QAÌÀÑl0AlLÀ³—QAÌ€Al0AlLÀh—QA̺k0AlL`<—QAÌYk0AlL!—QAÌ€k0AlLà—QAÌÀ×j0AlL —QAÌ™j0AlLàÿ–QAÌ@Lj0AlL@õ–QAÌj0AlL€é–QAÌ€·i0AlL ß–QAÌ@ci0AlL ×–QAÌ@ i0AlL@Ñ–QAÌ@Èh0AlL Ì–QAÌŸh0AlLàÇ–QAÌÀ{h0AlLÁ–QAÌ@Jh0AlL·–QAÌÀ h0AlL´–QAÌ€Ìg0AlL`³–QAÌ€‚g0AlLÀ­–QAÌ@eg0AlLÀª–QAÌ@sf0AlL–QAÌÀPf0AlL w–QAÌÀ6f0AlL`o–QAÌ€(f0AlL€d–QAÌf0AlLÀW–QAÌÀe0AlL–QAÌÕd0AlL€ý•QAÌÀ•d0AlL ø•QAÌ@Jd0AlL õ•QAÌ€d0AlLì•QAÌ€×c0AlL€ß•QAÌ€¤c0AlL€Ó•QAÌÀ—c0AlL@ЕQAÌ~c0AlLÀÉ•QAÌÀac0AlL¿•QAÌÀ+c0AlLಕQAÌc0AlLà©•QAÌ@Üb0AlL@¡•QAÌ@£b0AlL ˜•QAÌ@pb0AlL”•QAÌ@4b0AlLÀ••QAÌ@èa0AlL@›•QAÌÀµa0AlLàŸ•QAÌ€™a0AlLকQAÌÀ‡a0AlLà°•QAÌra0AlL º•QAÌZa0AlLÀÄ•QAÌm0AlLà7›QAÌ€£m0AlLpL›QAÌ€†q0AlLÀœQAÌ€¾q0AlL )œQAÌÍq0AlL`5œQAÌÀÏq0AlL@?œQAÌ€Çq0AlL IœQAÌÀˆq0AlL gœQAÌ€rq0AlL€rœQAÌÀcq0AlLp}œQAÌ\q0AlL†œQAÌaq0AlLàœQAÌsq0AlL@˜œQAÌ@q0AlL`ŸœQAÌ€©q0AlL࢜QAÌ¿q0AlL ¦œQAÌ€åq0AlLஜQAÌr0AlL€µœQAÌ@0r0AlL@¼œQAÌ€Qr0AlL ÄœQAÌ@qr0AlLÀÌœQAÌ€Žr0AlL€ÓœQAÌ€­r0AlLàלQAÌÇr0AlL`ÞœQAÌ@àr0AlL äœQAÌòr0AlL@íœQAÌ€ s0AlL ÷œQAÌ€(s0AlL€þœQAÌÀ?s0AlL QAÌ€es0AlL QAÌ@~s0AlLQAÌ©s0AlL€ QA̸s0AlL QAÌ€Ås0AlL€QAÌ€Õs0AlL@ýœQAÌås0AlL€÷œQAÌÀ÷s0AlL€ñœQAÌt0AlLêœQAÌÀt0AlL@ÙœQAÌLt0AlLÀÇœQAÌ@ât0AlL€˜œQAÌÀñt0AlLàŒœQAÌu0AlL`‡œQAÌÀ,u0AlL@wœQAÌÀTu0AlL fœQAÌ@ou0AlL aœQAÌ€‚u0AlL`YœQAÌ€–u0AlL`OœQAÌÀ©u0AlLàGœQAÌÀ¼u0AlL€@œQAÌÀÑu0AlL 9œQAÌÀòu0AlL€0œQAÌÀv0AlL`)œQAÌv0AlL`"œQAÌ0v0AlL@œQAÌÀBv0AlLœQAÌÀRv0AlL@œQAÌÀjv0AlL œQAÌ@ƒv0AlLÀû›QAÌ€™v0AlLô›QAÌ€´v0AlL`é›QAÌÀºv0AlL€ç›QAÌ€Óv0AlL`ã›QAÌ@)w0AlLÐÛQAÌ@}w0AlL@ª›QAÌ€Qx0AlL°j›QAÌÀÜx0AlL@›QAÌry0AlLÀ›QAÌ€÷y0AlL0èšQAlibspatialite-4.3.0a/test/shp/foggia/local_councils.dbf0000664000175000017500000002407112544707704020121 00000000000000=a£idNlc_nameCFLD#1NFLD#2CFLD#3CelevationNFLD#4NFLD#5NFLD#6NFLD#7N 1532Carlantino 0FOGGIAPUGLIA5581294111310951079 1533Carpino 0FOGGIAPUGLIA1474704443044094380 1534Casalnuovo Monterotaro 0FOGGIAPUGLIA4321954177017291697 1535Casalvecchio di Puglia 0FOGGIAPUGLIA4652167200919851978 1536Castelluccio dei Sauri 0FOGGIAPUGLIA2841951205121142144 1537Castelluccio Valmaggiore0FOGGIAPUGLIA6301469137013661370 1538Castelnuovo della Daunia0FOGGIAPUGLIA5431763161416101578 1539Celenza Valfortore 0FOGGIAPUGLIA4801990180917821741 1540Celle di San Vito 0FOGGIAPUGLIA726186193187173 1541Cerignola 0FOGGIAPUGLIA12057366586085882759103 1542Chieuti 0FOGGIAPUGLIA2211788176017531772 1543Deliceto 0FOGGIAPUGLIA5754117399740023947 1544Faeto 0FOGGIAPUGLIA820758661655643 1545Foggia 1FOGGIAPUGLIA76155203153239152959152747 1546Ischitella 0FOGGIAPUGLIA3104562436944014401 1547Isole Tremiti 0FOGGIAPUGLIA70367497496486 1548Lesina 0FOGGIAPUGLIA56286634764246397 1549Lucera 0FOGGIAPUGLIA21935162346173465934513 1550Manfredonia 0FOGGIAPUGLIA557704571115729457455 1551Mattinata 0FOGGIAPUGLIA756333654265346523 1552Monteleone di Puglia 0FOGGIAPUGLIA8421413115311511085 1553Monte Sant'Angelo 0FOGGIAPUGLIA79613917132571325013221 1554Motta Montecorvino 0FOGGIAPUGLIA662951839821798 1555Orsara di Puglia 0FOGGIAPUGLIA6353313301630102990 1556Orta Nova 0FOGGIAPUGLIA6917665177611776717868 1557Panni 0FOGGIAPUGLIA801976876884865 1558Peschici 0FOGGIAPUGLIA904339440144014411 1559Pietramontecorvino 0FOGGIAPUGLIA4562972279227642765 1560Poggio Imperiale 0FOGGIAPUGLIA732891282828382835 1561Rignano Garganico 0FOGGIAPUGLIA5902309220822022216 1562Rocchetta Sant'Antonio 0FOGGIAPUGLIA6332034198019871982 1563Rodi Garganico 0FOGGIAPUGLIA423778369137043673 1564Roseto Valfortore 0FOGGIAPUGLIA6581316123112231205 1565San Giovanni Rotondo 0FOGGIAPUGLIA56626106270372720227327 1566San Marco in Lamis 0FOGGIAPUGLIA55015739146501457614444 1567San Marco la Catola 0FOGGIAPUGLIA6831515114011221108 1568San Nicandro Garganico 0FOGGIAPUGLIA22418074162381613416054 1569San Paolo di Civitate 0FOGGIAPUGLIA1876119601760456018 1570San Severo 0FOGGIAPUGLIA8655861556285539955321 1571Sant'Agata di Puglia 0FOGGIAPUGLIA7942321215722012149 1572Serracapriola 0FOGGIAPUGLIA2704356408041004106 1573Stornara 0FOGGIAPUGLIA1074739492049905114 1574Stornarella 0FOGGIAPUGLIA1545032504451505137 1575Torremaggiore 0FOGGIAPUGLIA16917021172241736517434 1576Troia 0FOGGIAPUGLIA4397495740174217411 3432Accadia 0FOGGIAPUGLIA6502702250424702481 3433Alberona 0FOGGIAPUGLIA7321134103110101012 3434Anzano di Puglia 0FOGGIAPUGLIA7602239192618421759 3435Apricena 0FOGGIAPUGLIA7313647136601367313694 3436Ascoli Satriano 0FOGGIAPUGLIA3936373631863236390 3437Biccari 0FOGGIAPUGLIA4503070291028872893 3438Bovino 0FOGGIAPUGLIA6203991363736023574 3439Cagnano Varano 0FOGGIAPUGLIA1658617784176977663 3440Candela 0FOGGIAPUGLIA4742823275627452753 3441Carapelle 0FOGGIAPUGLIA625905619463806527 3442Vico del Gargano 0FOGGIAPUGLIA4458107795279897982 3443Vieste 0FOGGIAPUGLIA4313430137771388613963 3444Volturara Appula 0FOGGIAPUGLIA526595506497496 3445Volturino 0FOGGIAPUGLIA7351992182618261800 3446Ordona 0FOGGIAPUGLIA1202584264926732720 3447Zapponeta 0FOGGIAPUGLIA23013333534033465libspatialite-4.3.0a/test/shp/merano-3d/0000775000175000017500000000000012573314326015054 500000000000000libspatialite-4.3.0a/test/shp/merano-3d/points.shp0000664000175000017500000000122412544707704017027 00000000000000' JèAÓ­6îL$A> }(¸SAê6Bz(`$A. ú¨¸SA H”UM$A. ú¨¸SA ê@M$APBm¨¸SA AÓ­6îL$Aœ w¨¸SA Ämšû:_$Aä ,ÄH¸SA @7Û¸Q_$A:ÔÔC¸SA †À±W(_$AÕWi?¸SA bÞÏa,_$AãŠ(9¸SA ¥5[$&_$AN#x6¸SA †í‹3E_$A@¾æä4¸SA ÊEÈ_$A ´[k+¸SA &:)(_$A> }(¸SA ‚Â4†í^$AsÊ I¸SA ¹­üâ^$Apö6N¸SA ›NÓÈ^$A™œìÙP¸SA h3ÅÆ_$AØÁa06¸SA jšû_$AQ¤”ƒ3¸SA ~Fùþ_$A¤P5¸SA ½áî`$AÏOi8¸SA ê6Bz(`$AU>æâ9¸SA kC£$`$A±t6‹;¸SAlibspatialite-4.3.0a/test/shp/merano-3d/polygons.dbf0000664000175000017500000001043612544707704017333 00000000000000 !fPK_UIDNFEATURE_IDNCODENSUB_TYPENDATUMNCODE_FIRMANAUFN_ARTNOBJECTIDNORT_IDNTEXT_DCTEXT_ICTEXT_LCTEXT_DILCTEXT_CODENHOEHENHOEHE_MAXNHOEHE_RELNMELDE_CODENHAUSNRCGEB_IDNID_STRASSENGUELTIG_VNE_IDNWINKELN 160725072452888.50000010100040532021051 00.0000000.0000000.0000000 002453614.50000060725000 2602032022452888.50000010100040532121051 00.0000000.0000000.0000000 002453614.50000060203200 3602032022452888.50000010100040532221051 00.0000000.0000000.0000000 002453614.50000060203200 4602032022452888.50000010100040532321051 00.0000000.0000000.0000000 002453614.50000060203200 5602032022452888.50000010100040532421051 00.0000000.0000000.0000000 002453614.50000060203200 6602032022452888.50000010100040532521051 00.0000000.0000000.0000000 002453614.50000060203200 7602032022452888.50000010100040532621051 00.0000000.0000000.0000000 002453614.50000060203200 8602032022452888.50000010100040532721051 00.0000000.0000000.0000000 002453614.50000060203200 9602032022452888.50000010100040532821051 00.0000000.0000000.0000000 002453614.50000060203200 10602032022452888.50000010100040532921051 00.0000000.0000000.0000000 002453614.50000060203200libspatialite-4.3.0a/test/shp/merano-3d/points.prj0000664000175000017500000000117312544707704017033 00000000000000PROJCS["ETRS89 / UTM zone 32N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25832"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] libspatialite-4.3.0a/test/shp/merano-3d/roads.dbf0000664000175000017500000001704212544707704016571 00000000000000!€PK_UIDNFEATURE_IDNCODENSUB_TYPENDATUMNCODE_FIRMANAUFN_ARTNOBJECTIDNORT_IDNTEXT_DCTEXT_ICTEXT_LCTEXT_DILCTEXT_CODENHOEHENHOEHE_MAXNHOEHE_RELNMELDE_CODENHAUSNRCGEB_IDNID_STRASSENE_IDNWINKELNLengthN 156920020202450514.50000010100027899621051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.192562 185920020202450514.50000010100027902821051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.011543 187920020202450514.50000010100027903021051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.138272 188920020202450514.50000010100027903121051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.115159 189920020202450514.50000010100027903221051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.134453 190920020202450514.50000010100027903321051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.084582 191920020202450514.50000010100027903421051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.244289 192920020202450514.50000010100027903521051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.124011 319920020202450514.50000010100027916821051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.057539 320920020202450514.50000010100027916921051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.023299 364920020202450514.50000010100027921521051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.101662 601920020202450514.50000010100027945821051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.352757 724920020202450514.50000010100027959021051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.040406 725920020202450514.50000010100027959121051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.057274 736920020202450514.50000010100027960221051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.243982 737920020202450514.50000010100027960321051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.104872 740920020202450514.50000010100027960621051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.011605 741920020202450514.50000010100027960721051 VIA DANTE ALIGHIERI -STRASSE00.0000000.0000000.0000000 0120920020000.079904libspatialite-4.3.0a/test/shp/merano-3d/points.shx0000664000175000017500000000040412544707704017036 00000000000000' ‚èAÓ­6îL$A> }(¸SAê6Bz(`$A. ú¨¸SA2 @ N \ j x † ” ¢ ° ¾ Ì Ú è ö    . < libspatialite-4.3.0a/test/shp/merano-3d/roads.shp0000664000175000017500000001312412544707704016625 00000000000000' *èFíÈK“S$AE]\a¸SA,€MÂ#[$Aæå=Ô{¹SA¨EvÞ()X$AôW$Au{ò¹SAܘ5W$AáÄf$¹SA ĈW$AÊv|¹SA0Gé W$A¼ßS¹SA"àüäýV$A_¡^¹SAéåŽÐ÷V$AxÃñ¶¹SAþ:éV$A•-Q¹SAl´rAÖV$Aˆv÷m!¹SABîxjÍV$AcÐ3Ø"¹SAªcæPÉV$A²0R]#¹SA)a4²ÅV$AN×#¹SAZ#ÂV$Aé"3;$¹SAZ#ÂV$Aé"3;$¹SAC« +•U$AË)7¹SA±œªåU$Aü üöQ¹SA±œªåU$AË)7¹SA›’xWÝU$Aî…9¹SAبÀ³ÎU$AÁƒ&X<¹SAÃ(+•¾U$A_Àå @¹SA;õ »U$A,¾Úæ@¹SAš4³U$AΨ®úC¹SAz²™ö¯U$A>–["E¹SAI«( ©U$A4mðG¹SA6 h>¥U$A"£#¿I¹SA2ðþRU$Aí­=$N¹SA3e럙U$A•O¸ÈO¹SAÐ{ðž™U$A©µ'ÉO¹SAÈ{ðž™U$A¬µ'ÉO¹SAÈ{ðž™U$A¬µ'ÉO¹SAC« +•U$Aü üöQ¹SA±œªåU$Aé"3;$¹SAZ#ÂV$AË)7¹SA±œªåU$AË)7¹SANÆåU$AT·®(7¹SA‘—UWîU$AÒ»ä–5¹SA”\”úU$Aœó|4¹SA\Þ7…V$A‹‹3¹SA‰“Z8V$Aª2¹SA H½£0V$A¬A€@0¹SA«^TMV$AÈÈñ-¹SAáÀ¦Ö`V$AneÉQ,¹SAþá—VjV$AŸèv+¹SAõ*'£’V$A´)þ4(¹SAѽ€ ›V$ASîé†'¹SAÈco·³V$Aáǘ~%¹SAÉôãË·V$ASÿ$%¹SAZ#ÂV$Aé"3;$¹SAxíÀ¾‡Y$Aå˜òš¸SA܉’²qY$A7_þA­¸SA ܉’²qY$Aå˜òš¸SAƒ[°qY$AÖuòš¸SA#þpY$AB8F›¸SAª’XêaY$AÕ×׋ž¸SAL?+ VY$A³Â—q¡¸SA¢ªŽjIY$A®çv¤¸SA*_&V@Y$AnO¦¸SA˜?ê5Y$A–÷íP¨¸SA·Ôìo)Y$AÀÍ\~ª¸SAÔ7ÆåY$A6tþSAv£œ‰Y$A A­¸SAíÀ¾‡Y$A7_þA­¸SAŒbàOYY$AE]\a¸SA(+äY$Aå˜òš¸SA܉’²qY$Aå˜òš¸SA„_ÆnY$ACÁÇš¸SA¿#ÐkY$A6œX™¸SAá|ËhY$A²™Eò—¸SA8)6AfY$Az”â;•¸SA,)§UeY$A'$#¦’¸SAçß™UdY$A|1=¸SA”AcY$A†{N¸SAÒ”'ï_Y$A—wˆ5‹¸SA·w¹ˆ[Y$Ae>*ˆ¸SA.;ôZY$Aþ|ß-‡¸SAŒ\Y$Aâ-ëä…¸SAÛÌ÷@^Y$A–‚†N„¸SA]M^þ`Y$A@ˆ®‚¸SA\Ü@eY$Agݶ¸SAnW,fY$Aˆ'˜}¸SA|FyeY$A»š¯#{¸SAÆôócY$Aï y¸SA ©—»dY$A–;m²v¸SA뢽aY$Aý¡¾m¸SA»’âø^Y$AÕá3l¸SA œcä\Y$Añ>¨j¸SAs¦ƒYY$A¹²“¸SAj# ÚZ$A¼p_7“¸SA$–EZ$Aóh"=“¸SAÆëløY$A{·ÆM“¸SAy:+1óY$AôÇ“Z“¸SA†]HßìY$A‘ž¡“¸SAÂQøOäY$A¨4L”¸SA¡¾fß×Y$AšSAIpyÉY$A\N‰ã•¸SAb;¾¿Y$A¯«‘–¸SA¼çû³Y$A€ (—¸SAsèi¨Y$Aí§j®—¸SAHôO"˜Y$Aª]ÑT˜¸SAdærù…Y$Aq1½™¸SA,ØÝˆ{Y$AM‘L©™¸SA±“yY$Ad¶¨È™¸SA\ÓZuY$Aþ%ð9š¸SA܉’²qY$Aå˜òš¸SA Höp<&OU$As–´ùV¹SA.jÐ#U$AQsëæc¹SAöp<&OU$AQsëæc¹SA¿aPU$AŒZ>2c¹SAhUU$Aa,a¹SA`Â4gU$AÐ À&\¹SA‹Z¦´rU$AôªÑX¹SA.jÐ#U$As–´ùV¹SA `.jÐ#U$Aü üöQ¹SAC« +•U$As–´ùV¹SA .jÐ#U$As–´ùV¹SA£?Í&U$AGõCùV¹SA~è“‹‚U$A‹OTyV¹SA•+ùŽU$AZå›T¹SA4zm4‘U$A$âAëS¹SAçu¶ì“U$AˉM’R¹SA¼8"*•U$A¶øl÷Q¹SA«ª +•U$AE üöQ¹SAC« +•U$Aü üöQ¹SA pGHlZZ$A‡ÉôG¸SA,€MÂ#[$Am}Û…“¸SA GHlZZ$Am}Û…“¸SAöTsZZ$AÃùÕ…“¸SAåäi&cZ$A»“¸SA]t«5xZ$Aªk瓸SA€Y•ã™Z$Anku’¸SA¤Ë6ÄZ$AyÅ”‘¸SA’Y?éZ$A4‘ Ö¸SAb¶žNûZ$Aš¦®v¸SAdåÝ [$Aë=pL¸SAø»Ø[$A‡ÉôG¸SA,€MÂ#[$Aä1Y¸SA ˜FíÈK“S$Aý—æ3ž¸SA" SNU$Av˾ڸSA0FíÈK“S$A`ýˆž¸SAx›4HžS$AEQNjž¸SA¶™l¦S$A"XQž¸SA×Ã8¯S$Ar¾7ž¸SAyò¦ ¶S$Aý—æ3ž¸SAæ°7¤½S$A«ø7<ž¸SAæ<ŸÅS$A%†gž¸SA4?Y×ÍS$A_n_˜ž¸SA7g$ÙS$A™°Ÿ¸SAë({âS$AÞag_Ÿ¸SA®ðc³ëS$A†ŽGÊŸ¸SAŽW¤”óS$AE•ËE ¸SA¬q-×úS$A(@—Ò ¸SAvn¸T$AHÓ9s¡¸SA“èG³ T$AÄ 8c¢¸SA§óâ#T$AÌsJ£¸SAGlæ!T$AùΤ¸SAÀDá2T$A‡*DQ§¸SA@—@8KT$A{£ܪ¸SAÃik^T$A7å•°­¸SAÞ(ahT$Ad Æ£¯¸SAôxqT$Awóᘱ¸SAà©8|T$AZ•3´¸SA5ìM=„T$Aé\"ª¶¸SAUf¶#ŠT$AæÍ®Ì¸¸SA™«!ŠŽT$Ao³«,»¸SAúæÉz‘T$A —н¸SA匙’T$A£å›¥¿¸SA&•דT$Aóo¸SAøô®•T$AUÞ:–øSAǸž™T$Aªé³êĸSA$Ì[žT$AR€7öŸSA\Qýÿ£T$AÜÀ^ǸSAr¿€ë§T$AÑ0IÄǸSAÛ…¬T$AèPHȸSAi#³µT$A'QëȸSA´±¹#ÄT$AîmÀɸSA£ZaÒT$AbªÊ¸SAª6À(ßT$A_°ˆ•˸SA‚^ý‰ëT$Az|ŽÌ¸SAµÝ®(õT$A5Ä­¡Í¸SAÀ±*U$A…òRϸSA¨}£U$Ad§±XѸSA†HÇ$U$AÇë·¯Ó¸SA_‡ë2U$AM[¼Õ¸SApȪ„@U$Añ±¦ظSA)Ü6ÇHU$AˆjRÙ¸SA" SNU$Av˾ڸSA PV2\–LU$AQsëæc¹SAöp<&OU$A Ëøm¹SA5Øl˜NU$A Ëøm¹SAÍþXMU$Al=¹l¹SAV2\–LU$AWík%h¹SA›&:MU$AˆX$A\·ËÀ¹SA¦™àuW$A\·ËÀ¹SAèG}ãuW$A…j•À¹SA0â£ãuW$A“•’À¹SA˜AéÞ…W$APr”¹SA\ÿ7Å”W$A ”í(¹SA6z຤W$A¸w¹SAûŠ<¡ªW$A]Ƭ¹SAŠæ¶c´W$A#©Šr¹SAQõ!ø¹W$AçcFþ¸SAñÕd°½W$A¾{Äû¸SA¼ÉDÄW$AIµ,lø¸SA"Z®ÄÌW$AòAWô¸SAúSíÓW$AŒ¹÷ð¸SA“8E:ÚW$A›Ô7Ìí¸SAÆÉSáW$AŒ›YÑê¸SAÙÐçèW$A½_H³ç¸SA¿˜bIïW$A{ àä¸SA¡)mõW$Aè½Ðâ¸SAq{‹*üW$AóÞ5á¸SA¶UÖbÿW$A¡åcqà¸SA¬ ›Ý X$AÅqÀݸSALE X$Aµx?åÚ¸SA7¥–*X$AW#²‚ظSA§·C2X$AKö³‚Ö¸SA;¾6X$A2³èõÔ¸SAfg$¯:X$A÷³˜Ó¸SAþH >X$A>¤äѸSA˜>X$A\žQãѸSA˜˜>X$Aµ=~ʹ¸SAú»ØÁ‰X$A\žQãѸSAú»ØÁ‰X$Aµ=~ʹ¸SA´ „X$AÊãÙ‰º¸SA"$3X$AŽóà ¼¸SAäÞqwX$Aaf¬½¸SA„ lX$A NnCÀ¸SAn3-Ã`X$A¼dÒÙ¸SAs¿ÿáTX$A8Dä·Å¸SALûNÃQX$Añ'٠ƸSA8inñMX$Aá§®$ȸSAܶ{KX$A”¹ÕàɸSA\{]FX$A‰½R͸SA±B‹EX$A£~qÊ͸SA¾ˆŠEX$A«ïÛÊ͸SA¿ˆŠEX$A­ïÛÊ͸SA2dgAX$A¡$›­Ð¸SA˜>X$A\žQãѸSA0Ðî›Y$A7_þA­¸SAíÀ¾‡Y$AÃOûů¸SAíÀ¾‡Y$A7_þA­¸SA4ÖÆ7Y$A%÷¾4¯¸SAÐî›Y$AÃOûů¸SAú»ØÁ‰X$AÃOûů¸SAÐî›Y$Aµ=~ʹ¸SAÐî›Y$AÃOûů¸SA»ðzÿY$AŽULǯ¸SAâ%pY$A•h°¸SAéôåY$A9U½T±¸SAG±Ô Y$AkxÑò±¸SAÿ =øX$A™9Vβ¸SAØz%½îX$A‘Û‰³¸SAv„xÇßX$AK¼t´¸SAS¥uÎX$AÆ[µ¸SAðÕH8ÀX$AàÐ"¶¸SAk»©®X$AX^¼$·¸SA5+j ›X$AºšÐr¸¸SAÐs£æX$AaA0¹¸SAR&y‰X$As‚nʹ¸SAú»ØÁ‰X$Aµ=~ʹ¸SAlibspatialite-4.3.0a/test/shp/merano-3d/polygons.shx0000664000175000017500000000026412544707704017400 00000000000000' ZèöÑYaD$A0µm ·SA˜…߉X$Aäãq‰Ž¸SA2¬âhN˜êˆvørè ^8 š8 Ö âˆlibspatialite-4.3.0a/test/shp/merano-3d/polygons.shp0000664000175000017500000001633412544707704017375 00000000000000' nèöÑYaD$A0µm ·SA˜…߉X$Aäãq‰Ž¸SA¬m¾ß§0X$A0µm ·SA˜…߉X$A›Y¥œ#·SAH5Bm¾ß§0X$A¤­Ô·SAØq8X$AñPç·SA‘Ô®ô7X$AŠXNg·SACÒãÐ6X$A.RÆë·SA¦8‰6X$AнJ‡·SAV·5X$A:¹d!·SAô6-7X$AµH·!·SAäh¸ÈBX$A›Y¥œ#·SAÓ ‚–IX$A5q­P#·SA«ZÑ"?X$A›”G·!·SA¥ŽÑ"=X$Aôô¸4!·SA°åТ·SAInaK]X$AkZç)·SAÆ`È1^X$A†.‹·SAÚµ§Õ\X$Aó_·SANFfRX$AR~·SA¨y–»W$A©“"WH·SAƒÊûõµW$Aæc‹F·SA.è+)µW$A3^YªE·SAÆÀµW$AƒZªD·SAÍ !)·W$Aeš[ªC·SAÔJ\»W$A‰ÄB·SAM>\ÂW$AÏ|A·SAþp)ÃW$Ajx‘½@·SA;P×õÁW$A]Ï]A·SA®—z¼W$A…¦ö#B·SAðM\¹W$A>~\ÊB·SALë!)¶W$AçŽ(—C·SA8™[\´W$A4ÝD·SA)úõ³W$AÛíòÃE·SA½´W$A@6XªF·SAo,Ê·W$A*<Š}G·SAœMd\ºW$A¨"WH·SAíW$A0Aè#O·SA8šõ®W$AKI7O·SAìQ¸…ïq@= ×£pr@R¸…ëýq@¸…ëQüq@üq@)\Âõüq@)\Âõüq@\Âõ(r@¸…ëQìq@= ×£pñq@ ×£p=îq@áz®Gíq@š™™™™íq@= ×£péq@…ëQ¸éq@= ×£péq@fffffêq@fffffêq@q= ×£ìq@ìQ¸…ïq@˜™µ2ÂïW$A”åóU-·SA~²$X$AÒ¼‚3·SA^ÐæðW$AÒ¼‚3·SA^³)úW$AJH¾Â1·SAØ6¶å!X$Aq£óµ-·SA~²$X$A”åóU-·SA‡YòùW$AÌÓ$©1·SA™µ2ÂïW$Af@Çi3·SA^ÐæðW$AÒ¼‚3·SA…ëQ¸áq@ ×£p=Þq@…ëQ¸Ùq@®GázÒq@áz®G­q@¤q@…ëQ¸áq@ˆ2 (çW$APHê.·SAª_‘[X$AÚ•ûÜ2·SALéŠzèW$AÚ•ûÜ2·SAÁã¼[óW$ALr‚È0·SAª_‘[X$APHê.·SA ˆ”òW$AäÛŒ¯0·SA2 (çW$A7ã€È2·SALéŠzèW$AÚ•ûÜ2·SA¤p= ×£q@®Gáz¬q@Èq@R¸…ëÕq@{®GáÞq@¤p= ×£q@øŒ•ÂW$AUën3·SA4v«õÈW$Aï¿®û8·SA 4v«õÈW$Aï¿®û8·SAøxÂÈW$AHâ8·SAœ†\¿W$A±uI•8·SAÑí(ºW$A>ýB8·SAMgW²W$A¸¶å7·SA«Ï&\£W$AUën3·SAŒ•ÂW$ADÔ·»3·SA+‰•ÂW$AŠOQÕ3·SAÞ×(\¢W$Aä ¢3·SA¬ÏW³W$A4ån7·SAðcî(¹W$A m}H8·SAÈé(¿W$A6SIµ8·SA4v«õÈW$Aï¿®û8·SAHáz®ïq@ö(\­q@Ház®¯q@ ×£p=²q@¤p= ×»q@ ×£p=Òq@\Âõ(Ôq@= ×£pÝq@= ×£pÝq@Ház®çq@®Gázìq@Âõ(\ïq@Ház®ïq@è°”OªW$A|Qõ2·SA’pÂÊW$A’^ã®7·SA ’pÂÊW$A’^ã®7·SA¥úoÂÊW$A¤%}ˆ7·SAï@ÇW$Aô[}ˆ7·SAÒ’à(ÁW$A„µB7·SAQû°õ»W$A*¨6·SA&p‚ªW$A|Qõ2·SA°”OªW$AQÞ·û2·SA©\¸W$AZƒæ6·SAÍÂ~»W$A+ÅKÕ6·SAßâ(ÀW$A@^än7·SA"\ÇW$Av9}¨7·SA’pÂÊW$A’^ã®7·SA×£p= ¯q@= ×£píq@¤p= ×ëq@ìQ¸…ëq@ ×£p=êq@Øq@Âõ(\Ïq@¤p= ×»q@Âõ(\·q@ìQ¸…³q@¤p= ׫q@×£p= ¯q@8j ”rW$AµËÛp1·SAäîõ™W$AÛ}Ä;·SAäîõ™W$AÛ}Ä;·SA•]úõxW$Aæ_ D5·SANΖvW$A¡ˆ D5·SA šd\uW$Aµ!q*5·SA–rW$A¶‰?÷3·SAG§ÆÂrW$A4`sj3·SAì“')tW$AÎò „2·SA€"RÜwW$A†6Ç‚1·SAŒd…wW$AµËÛp1·SAæÝôusW$A¨5“o2·SAj ”rW$AÞ_\3·SAÔa–rW$Aü'+é3·SAV2©tW$A2"Ã"5·SAѱ—vW$AöU5·SA¢daÜxW$A%Âb5·SA[3#©—W$Aúi¹b;·SAäîõ™W$AÛ}Ä;·SA ×£p=æq@= ×£pÙq@®GázØq@= ×£pÙq@= ×£pÙq@= ×£pÙq@ìQ¸…×q@Ház®Óq@fffffÂq@Äq@Ãõ(\Æq@ ×£p=Æq@fffffÊq@fffffÊq@fffffÊq@33333×q@ ×£p=æq@80#(ö»W$A G·J·SAI®-\óW$A¥¤¯ÐR·SA‚)À½W$A¥¤¯ÐR·SA}V\ÕW$A4‚L·SAãìõØW$A°«ÝL·SA„0°ÂÝW$A”÷K·SAxÝ )ãW$AÑ‚OjK·SA<³)ëW$AÞ éK·SA~&cïW$Al+×J·SA e/\òW$AP}K·SAI®-\óW$A9²]K·SAŠ‚û(ðW$A G·J·SAö)éW$AûЂýJ·SA`A\âW$AtWéCK·SAQÎãõÜW$A8×K·SAâ/ )ØW$AªÂNªL·SAÁñõÓW$A‹´µpL·SA0#(ö»W$AV£|½R·SA‚)À½W$A¥¤¯ÐR·SA\Âõ(àq@)\Âõäq@¤p= ×çq@Âõ(\ëq@= ×£pñq@R¸…ëõq@ö(\Âùq@Ház®ûq@®Gázr@q= ×£r@áz®Gr@33333r@¸…ëQr@r@= ×£pr@…ëQ¸òq@\Âõ(àq@ -àòŒbD$A7E#_¸SAüÊG¿¤D$A/Zî/¸SA-àòŒbD$A/Zî/¸SAêzñŒcD$A‘‹!#¸SAE)spD$A=<ö¿y¸SA9»7TD$A^Dõøp¸SA ¯DŒD$A¬µ‡i¸SA;g‹òžD$A… Cƒa¸SAüÊG¿¤D$A÷REC_¸SA‘{Œ£D$A7E#_¸SAY‚d¿™D$A‹ßtöb¸SA;ß÷%‹D$AN„Ô|i¸SAÄ…Õò†D$A×GžIl¸SAÌ~½¿€D$Aõeöp¸SAëYoD$A}üy¸SA-àòŒbD$A/Zî/¸SA ×£p=jr@¤p= ×+r@fffffNr@{®GáJr@…ëQ¸Mr@®GázNr@®GázNr@q= ×£Pr@{®GáRr@Xr@ìQ¸…[r@ìQ¸…[r@ö(\Âer@ ×£p=jr@ ˆöÑYaD$AÔ³Y|¸SA–4"óÀD$Aäãq‰Ž¸SA–4"óÀD$Aäãq‰Ž¸SAЬ!óÀD$AÅ riޏSAÙ>¡Y©D$Aäø Ã¸SA“ÅÀD$A­1D–Œ¸SA”˜Ú‡‚D$APàߟ‹¸SAË}ÏYvD$AèâoЏSANXÅoD$A-!j‰¸SAè¼ÓYiD$A æÏ‡¸SAseD$AÕæ£†¸SA’ióbD$AЯÀ#…¸SAfb&tD$AGþ¿|¸SA˜:0órD$AÔ³Y|¸SA%bD$Ap"„i„¸SAöÑYaD$AƒSƒ)…¸SA}ônócD$A¢¿ç¯†¸SA}¢&hD$A‡ýåSA4¶mónD$A]"Jv‰¸SAúuD$AÅŸ{‰Š¸SA6á`óD$AÛ”¬¼‹¸SA>4îŒD$A±£Œ¸SAËâÀ¨D$A0Ý ã¸SA–4"óÀD$Aäãq‰Ž¸SA®Gáz\r@Ház®Wr@Ãõ(\Rr@¸…ëQPr@×£p= Wr@…ëQ¸]r@…ëQ¸]r@ÍÌÌÌÌ\r@ìQ¸…[r@ìQ¸…[r@)\ÂõPr@R¸…ëIr@= ×£p=r@®Gáznr@…ëQ¸mr@¤p= ×kr@{®Gájr@®Gázfr@¤p= ×cr@q= ×£`r@…ëQ¸]r@®Gáz\r@libspatialite-4.3.0a/test/shp/merano-3d/roads.shx0000664000175000017500000000036412544707704016637 00000000000000' zèFíÈK“S$AE]\a¸SA,€MÂ#[$Aæå=Ô{¹SA2¨Þ( øš.xª¶¸rH¾`"p–˜2P†@Êø Ƙ b0 –libspatialite-4.3.0a/test/shp/merano-3d/roads.prj0000664000175000017500000000117312544707704016627 00000000000000PROJCS["ETRS89 / UTM zone 32N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25832"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] libspatialite-4.3.0a/test/shp/merano-3d/polygons.prj0000664000175000017500000000117312544707704017371 00000000000000PROJCS["ETRS89 / UTM zone 32N",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","25832"],AXIS["Easting",EAST],AXIS["Northing",NORTH]] libspatialite-4.3.0a/test/shp/merano-3d/points.dbf0000664000175000017500000001743212544707704017000 00000000000000!fPK_UIDNFEATURE_IDNCODENSUB_TYPENDATUMNCODE_FIRMANAUFN_ARTNOBJECTIDNORT_IDNTEXT_DCTEXT_ICTEXT_LCTEXT_DILCTEXT_CODENHOEHENHOEHE_MAXNHOEHE_RELNMELDE_CODENHAUSNRCGEB_IDNID_STRASSENGUELTIG_VNE_IDNWINKELN 1316010162452888.50000010100040523921051 00.0000000.0000000.0000000 002453614.50000031601000 2316010162452888.50000010100040524021051 00.0000000.0000000.0000000 002453614.50000031601000 3316010162452888.50000010100040524121051 00.0000000.0000000.0000000 002453614.50000031601000 4316010162452012.50000010100035143221051 00.0000000.0000000.0000000 0031601000 5316010162452012.50000010100035143321051 00.0000000.0000000.0000000 0031601000 6316010162452012.50000010100035143421051 00.0000000.0000000.0000000 0031601000 7316010162452012.50000010100035143521051 00.0000000.0000000.0000000 0031601000 8316010162452012.50000010100035143621051 00.0000000.0000000.0000000 0031601000 9316010162452012.50000010100035143721051 00.0000000.0000000.0000000 0031601000 10316010162452012.50000010100035143821051 00.0000000.0000000.0000000 0031601000 11316010162452012.50000010100035143921051 00.0000000.0000000.0000000 0031601000 12316010162452012.50000010100035144021051 00.0000000.0000000.0000000 0031601000 13316010162452012.50000010100035144121051 00.0000000.0000000.0000000 0031601000 14316010162452012.50000010100035144221051 00.0000000.0000000.0000000 0031601000 15316010162452012.50000010100035144321051 00.0000000.0000000.0000000 0031601000 16316010162452012.50000010100035144421051 00.0000000.0000000.0000000 0031601000 17316010162452012.50000010100035144521051 00.0000000.0000000.0000000 0031601000 18316010162452012.50000010100035144621051 00.0000000.0000000.0000000 0031601000 19316010162452012.50000010100035144721051 00.0000000.0000000.0000000 0031601000 20316010162452012.50000010100035144821051 00.0000000.0000000.0000000 0031601000libspatialite-4.3.0a/test/check_get_normal_row_bad_geopackage2.c0000664000175000017500000000732012544707704022000 00000000000000/* check_get_normal_row_bad_geopackage2 - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2011, 2014 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_get_normal_row_bad_geopackage2.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } /* delete the gpkg_tile_matrix table (deliberately broken) */ ret = sqlite3_exec (db_handle, "DROP TABLE IF EXISTS gpkg_tile_matrix", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DROP gpkg_tile_matrix error: %s\n", err_msg); sqlite3_free (err_msg); return -4; } /* now do the query */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalRow(\"test1_matrix_tiles\", 0, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for broken geopackage, got %i\n", ret); sqlite3_free (err_msg); return -5; } if (strcmp (err_msg, "no such table: gpkg_tile_matrix") != 0) { fprintf (stderr, "Unexpected error message for broken geopackage: %s\n", err_msg); sqlite3_free (err_msg); return -6; } sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.3.0a/test/check_get_normal_zoom_extension_load.c0000664000175000017500000002362212544707704022215 00000000000000/* check_get_normal_zoom_extension_load.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; char **results; int rows; int columns; ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_get_normal_zoom_extension_load.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } sqlite3_enable_load_extension (db_handle, 1); ret = sqlite3_exec (db_handle, "SELECT load_extension('mod_spatialite')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "load_extension(mod_spatialite) error: %s\n", err_msg); sqlite3_free (err_msg); return -2; } /* create tables to support future testing */ ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesTable(\"test1_matrix_tiles\", 4326, -180.0, -90.0, 180.0, 90.0)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesTable() float bounds result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -3; } /* create matrix levels 0, 1 and 4 */ ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 0, 360, 180)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesZoomLevel(0) result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -4; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 1, 360, 180)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesZoomLevel(1) result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -5; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateTilesZoomLevel(\"test1_matrix_tiles\", 4, 360, 180)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateTilesZoomLevel(4) result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -6; } ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error1: %s\n", err_msg); sqlite3_free (err_msg); return -9; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); sqlite3_free_table (results); return -10; } if (strcmp (results[1 * columns + 0], "4") != 0) { fprintf (stderr, "Unexpected result 0 (got %s, expected 4)", results[rows * columns + 0]); sqlite3_free_table (results); return -11; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 1)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error 2: %s\n", err_msg); sqlite3_free (err_msg); return -12; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); return -13; } if (strcmp (results[1 * columns + 0], "3") != 0) { fprintf (stderr, "Unexpected result 1 (got %s, expected 3)", results[rows * columns + 0]); return -14; } sqlite3_free_table (results); ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 4)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error 3: %s\n", err_msg); sqlite3_free (err_msg); return -15; } if ((rows != 1) || (columns != 1)) { fprintf (stderr, "Unexpected row / column count: %i x %i\n", rows, columns); sqlite3_free_table (results); return -16; } if (strcmp (results[1 * columns + 0], "0") != 0) { fprintf (stderr, "Unexpected result 4(got %s, expected 0)", results[rows * columns + 0]); sqlite3_free_table (results); return -17; } sqlite3_free_table (results); /* test an out-of-range zoom number - expect exception */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 5)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for overrange zoom level, got %i\n", ret); sqlite3_free (err_msg); return -18; } if (strcmp (err_msg, "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels") != 0) { fprintf (stderr, "Unexpected error message for overrange zoom level: %s\n", err_msg); sqlite3_free (err_msg); return -19; } sqlite3_free (err_msg); ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", -1)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for underrange zoom level, got %i\n", ret); sqlite3_free (err_msg); return -20; } if (strcmp (err_msg, "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels") != 0) { fprintf (stderr, "Unexpected error message for underrange zoom level: %s\n", err_msg); sqlite3_free (err_msg); return -21; } sqlite3_free (err_msg); /* test bad table name */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"no_such_table\", 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for bad table name level, got %i\n", ret); sqlite3_free (err_msg); return -22; } if (strcmp (err_msg, "gpkgGetNormalZoom: tile table not found in gpkg_tile_matrix") != 0) { fprintf (stderr, "Unexpected error message for bad table name: %s\n", err_msg); sqlite3_free (err_msg); return -23; } sqlite3_free (err_msg); /* test bad argument types */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(3, 0)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for bad arg1 type, got %i\n", ret); sqlite3_free (err_msg); return -26; } if (strcmp (err_msg, "gpkgGetNormalZoom() error: argument 1 [tile_table_name] is not of the String type") != 0) { fprintf (stderr, "Unexpected error message for bad arg1 type: %s\n", err_msg); sqlite3_free (err_msg); return -27; } sqlite3_free (err_msg); /* test bad argument types */ ret = sqlite3_get_table (db_handle, "SELECT gpkgGetNormalZoom(\"test1_matrix_tiles\", 0.2)", &results, &rows, &columns, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Expected error for bad arg2 type, got %i\n", ret); sqlite3_free (err_msg); return -28; } if (strcmp (err_msg, "gpkgGetNormalZoom() error: argument 2 [inverted zoom level] is not of the integer type") != 0) { fprintf (stderr, "Unexpected error message for bad arg2 type: %s\n", err_msg); sqlite3_free (err_msg); return -29; } sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -100; } /* this is a hack to avoid excess valgrind noise */ spatialite_cleanup (); return 0; } libspatialite-4.3.0a/test/check_createBaseTables.c0000664000175000017500000001172012544707704017114 00000000000000/* check_createBaseTables.c - Test case for GeoPackage Extensions Author: Brad Hards ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage extensions The Initial Developer of the Original Code is Brad Hards Portions created by the Initial Developer are Copyright (C) 2012 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include "sqlite3.h" #include "spatialite.h" #include "test_helpers.h" int main (int argc UNUSED, char *argv[]UNUSED) { sqlite3 *db_handle = NULL; int ret; char *err_msg = NULL; sqlite3_stmt *stmt; void *cache = spatialite_alloc_connection (); ret = sqlite3_open_v2 (":memory:", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); /* For debugging / testing if required */ /* ret = sqlite3_open_v2 ("check_createBaseTables.sqlite", &db_handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); */ spatialite_init_ex (db_handle, cache, 0); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory db: %s\n", sqlite3_errmsg (db_handle)); sqlite3_close (db_handle); db_handle = NULL; return -1; } ret = sqlite3_exec (db_handle, "SELECT InitSpatialMetadata(1, 'WGS84')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected InitSpatialMetadata result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -2; } ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Unexpected gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); sqlite3_free (err_msg); return -100; } /* check application ID is OK */ ret = sqlite3_prepare_v2 (db_handle, "PRAGMA application_id", strlen ("PRAGMA application_id"), &stmt, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "failed to prepare SQL PRAGMA statement: %i (%s)\n", ret, sqlite3_errmsg (db_handle)); return -101; } ret = sqlite3_step (stmt); if (ret != SQLITE_ROW) { fprintf (stderr, "unexpected return value for first step: %i (%s)\n", ret, sqlite3_errmsg (db_handle)); return -31; } if (sqlite3_column_type (stmt, 0) != SQLITE_INTEGER) { fprintf (stderr, "bad type for column 0: %i\n", sqlite3_column_type (stmt, 0)); return -32; } if (sqlite3_column_int (stmt, 0) != 0x47503130) { fprintf (stderr, "wrong application_id: %i\n", sqlite3_column_int (stmt, 0)); return -33; } ret = sqlite3_step (stmt); if (ret != SQLITE_DONE) { fprintf (stderr, "unexpected return value for second step: %i\n", ret); return -36; } ret = sqlite3_finalize (stmt); /* check creation when the tables already exist */ ret = sqlite3_exec (db_handle, "SELECT gpkgCreateBaseTables()", NULL, NULL, &err_msg); if (ret != SQLITE_ERROR) { fprintf (stderr, "Unexpected duplicate gpkgCreateBaseTables() result: %i, (%s)\n", ret, err_msg); return -110; } if (strcmp ("table gpkg_spatial_ref_sys already exists", err_msg) != 0) { fprintf (stderr, "Unexpected duplicate gpkgCreateBaseTables() error message: %s\n", err_msg); return -111; } sqlite3_free (err_msg); ret = sqlite3_close (db_handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (db_handle)); return -200; } spatialite_cleanup_ex (cache); spatialite_shutdown (); return 0; } libspatialite-4.3.0a/test/check_metacatalog.c0000664000175000017500000004171312544707704016211 00000000000000/* check_metacatalog.c -- SpatiaLite Test Case Author: Sandro Furieri ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include "config.h" #include "sqlite3.h" #include "spatialite.h" int main (int argc, char *argv[]) { int ret; sqlite3 *handle; char *err_msg = NULL; char **results; int rows; int columns; void *cache = spatialite_alloc_connection (); if (argc > 1 || argv[0] == NULL) argc = 1; /* silencing stupid compiler warnings */ /* testing current style metadata layout >= v.4.0.0 */ ret = sqlite3_open_v2 (":memory:", &handle, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "cannot open in-memory database: %s\n", sqlite3_errmsg (handle)); sqlite3_close (handle); return -1; } spatialite_init_ex (handle, cache, 0); ret = sqlite3_exec (handle, "SELECT InitSpatialMetadata()", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "InitSpatialMetadata() error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -2; } ret = sqlite3_exec (handle, "CREATE TABLE abc (def VARCHAR(10), ghi TEXT NOT NULL)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -3; } ret = sqlite3_exec (handle, "INSERT INTO abc (def, ghi) VALUES (NULL, 'alpha')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT-1 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -4; } ret = sqlite3_exec (handle, "INSERT INTO abc (def, ghi) VALUES (NULL, 'gamma')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT-2 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -4; } ret = sqlite3_exec (handle, "INSERT INTO abc (def, ghi) VALUES ('one', 'beta')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT-3 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -5; } ret = sqlite3_exec (handle, "INSERT INTO abc (def, ghi) VALUES ('two', 'gamma')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT-4 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -6; } ret = sqlite3_exec (handle, "INSERT INTO abc (def, ghi) VALUES ('one', 'alpha')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT-5 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -7; } ret = sqlite3_exec (handle, "SELECT CreateMetaCatalogTables(1)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CreateMetaCatalogTables error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -8; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT table_name, column_name, type, not_null " "FROM splite_metacatalog " "WHERE table_name = 'abc'", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error SELECT splite_metacatalog: %s\n", err_msg); sqlite3_free (err_msg); return -9; } if ((rows != 2) || (columns != 4)) { fprintf (stderr, "Unexpected error: SELECT splite_metacatalog result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -10; } if (strcmp (results[4], "abc") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[4]); sqlite3_free_table (results); sqlite3_close (handle); return -11; } if (strcmp (results[5], "def") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[5]); sqlite3_free_table (results); sqlite3_close (handle); return -12; } if (strcmp (results[6], "VARCHAR(10)") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[6]); sqlite3_free_table (results); sqlite3_close (handle); return -13; } if (strcmp (results[7], "0") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[7]); sqlite3_free_table (results); sqlite3_close (handle); return -14; } if (strcmp (results[8], "abc") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[8]); sqlite3_free_table (results); sqlite3_close (handle); return -15; } if (strcmp (results[9], "ghi") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[9]); sqlite3_free_table (results); sqlite3_close (handle); return -14; } if (strcmp (results[10], "TEXT") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[10]); sqlite3_free_table (results); sqlite3_close (handle); return -13; } if (strcmp (results[11], "1") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[11]); sqlite3_free_table (results); sqlite3_close (handle); return -14; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "SELECT UpdateMetaCatalogStatistics(1, 'abc', 'def')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UpdateMetaCatalogStatistics error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -15; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT value, count FROM splite_metacatalog_statistics", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error SELECT splite_metacatalog_statistics(1): %s\n", err_msg); sqlite3_free (err_msg); return -16; } if ((rows != 3) || (columns != 2)) { fprintf (stderr, "Unexpected error: SELECT splite_metacatalog_statistics result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -17; } if (results[2] != NULL) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[2]); sqlite3_free_table (results); sqlite3_close (handle); return -18; } if (strcmp (results[3], "2") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[3]); sqlite3_free_table (results); sqlite3_close (handle); return -19; } if (strcmp (results[4], "one") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[4]); sqlite3_free_table (results); sqlite3_close (handle); return -20; } if (strcmp (results[5], "2") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[5]); sqlite3_free_table (results); sqlite3_close (handle); return -21; } if (strcmp (results[6], "two") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[6]); sqlite3_free_table (results); sqlite3_close (handle); return -22; } if (strcmp (results[7], "1") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[7]); sqlite3_free_table (results); sqlite3_close (handle); return -23; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "SELECT UpdateMetaCatalogStatistics(1, 'abc_bad_table', 'def')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UpdateMetaCatalogStatistics (bad table) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -24; } ret = sqlite3_exec (handle, "SELECT UpdateMetaCatalogStatistics(1, 'abc', 'def_bad_column')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UpdateMetaCatalogStatistics (bad column) error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -25; } ret = sqlite3_exec (handle, "INSERT INTO abc (def, ghi) VALUES ('two', 'alpha')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT-6 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -26; } ret = sqlite3_exec (handle, "DELETE FROM abc WHERE def IS NULL", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "DELETE error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -27; } ret = sqlite3_exec (handle, "CREATE TABLE my_master (tbl TEXT NOT NULL, col TEXT NOT NULL)", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "CREATE TABLE error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -28; } ret = sqlite3_exec (handle, "INSERT INTO my_master (tbl, col) VALUES ('abc', 'def')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT-master-1 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -29; } ret = sqlite3_exec (handle, "INSERT INTO my_master (tbl, col) VALUES ('abc', 'ghi')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT-master-2 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -30; } ret = sqlite3_exec (handle, "INSERT INTO my_master (tbl, col) VALUES ('abc_bad', 'def')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT-master-3 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -31; } ret = sqlite3_exec (handle, "INSERT INTO my_master (tbl, col) VALUES ('abc', 'ghi_bad')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT-master-4 error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -32; } ret = sqlite3_exec (handle, "SELECT UpdateMetaCatalogStatistics(1, 'my_master', 'tbl', 'col')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UpdateMetaCatalogStatistics error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -33; } rows = 0; columns = 0; ret = sqlite3_get_table (handle, "SELECT column_name, value, count FROM splite_metacatalog_statistics", &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "Error SELECT splite_metacatalog_statistics(2): %s\n", err_msg); sqlite3_free (err_msg); return -34; } if ((rows != 5) || (columns != 3)) { fprintf (stderr, "Unexpected error: SELECT splite_metacatalog_statistics result: %i/%i.\n", rows, columns); sqlite3_free_table (results); sqlite3_close (handle); return -35; } if (strcmp (results[3], "def") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[3]); sqlite3_free_table (results); sqlite3_close (handle); return -36; } if (strcmp (results[4], "one") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[4]); sqlite3_free_table (results); sqlite3_close (handle); return -37; } if (strcmp (results[5], "2") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[5]); sqlite3_free_table (results); sqlite3_close (handle); return -38; } if (strcmp (results[6], "def") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[6]); sqlite3_free_table (results); sqlite3_close (handle); return -39; } if (strcmp (results[7], "two") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[7]); sqlite3_free_table (results); sqlite3_close (handle); return -40; } if (strcmp (results[8], "2") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[8]); sqlite3_free_table (results); sqlite3_close (handle); return -41; } if (strcmp (results[9], "ghi") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[9]); sqlite3_free_table (results); sqlite3_close (handle); return -42; } if (strcmp (results[10], "alpha") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[10]); sqlite3_free_table (results); sqlite3_close (handle); return -43; } if (strcmp (results[11], "2") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[11]); sqlite3_free_table (results); sqlite3_close (handle); return -44; } if (strcmp (results[12], "ghi") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[12]); sqlite3_free_table (results); sqlite3_close (handle); return -45; } if (strcmp (results[13], "beta") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[13]); sqlite3_free_table (results); sqlite3_close (handle); return -46; } if (strcmp (results[14], "1") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[14]); sqlite3_free_table (results); sqlite3_close (handle); return -47; } if (strcmp (results[15], "ghi") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[15]); sqlite3_free_table (results); sqlite3_close (handle); return -48; } if (strcmp (results[16], "gamma") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[16]); sqlite3_free_table (results); sqlite3_close (handle); return -49; } if (strcmp (results[17], "1") != 0) { fprintf (stderr, "unexpected splite_metacatalog: %s\n", results[17]); sqlite3_free_table (results); sqlite3_close (handle); return -50; } sqlite3_free_table (results); ret = sqlite3_exec (handle, "SELECT UpdateMetaCatalogStatistics(1, 'my_master_bad', 'tbl', 'col')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UpdateMetaCatalogStatistics error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -51; } ret = sqlite3_exec (handle, "SELECT UpdateMetaCatalogStatistics(1, 'my_master', 'tbl_bad', 'col')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UpdateMetaCatalogStatistics error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -52; } ret = sqlite3_exec (handle, "SELECT UpdateMetaCatalogStatistics(1, 'my_master', 'tbl', 'col_bad')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { fprintf (stderr, "UpdateMetaCatalogStatistics error: %s\n", err_msg); sqlite3_free (err_msg); sqlite3_close (handle); return -53; } ret = sqlite3_close (handle); if (ret != SQLITE_OK) { fprintf (stderr, "sqlite3_close() error: %s\n", sqlite3_errmsg (handle)); return -101; } spatialite_cleanup_ex (cache); return 0; } libspatialite-4.3.0a/src/0000775000175000017500000000000012573314326012305 500000000000000libspatialite-4.3.0a/src/Makefile.in0000664000175000017500000007416012573313636014305 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @MINGW_TRUE@am__append_1 = -lm @ANDROID_TRUE@@MINGW_FALSE@am__append_2 = -ldl -lm @ANDROID_FALSE@@MINGW_FALSE@am__append_3 = -lpthread -ldl -lm @MINGW_TRUE@am__append_4 = -lm @ANDROID_TRUE@@MINGW_FALSE@am__append_5 = -ldl -lm @ANDROID_FALSE@@MINGW_FALSE@am__append_6 = -lpthread -ldl -lm subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' 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)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libspatialite_la_DEPENDENCIES = ./gaiaaux/libgaiaaux.la \ ./gaiaexif/libgaiaexif.la ./gaiageo/libgaiageo.la \ ./geopackage/libgeopackage.la ./spatialite/libsplite.la \ ./shapefiles/libshapefiles.la ./dxf/libdxf.la ./md5/libmd5.la \ ./control_points/libcontrol_points.la ./srsinit/libsrsinit.la \ ./connection_cache/libconnection_cache.la \ ./virtualtext/libvirtualtext.la ./wfs/libwfs.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am__dirstamp = $(am__leading_dot)dirstamp am_libspatialite_la_OBJECTS = versioninfo/version.lo libspatialite_la_OBJECTS = $(am_libspatialite_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libspatialite_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libspatialite_la_LDFLAGS) $(LDFLAGS) \ -o $@ mod_spatialite_la_DEPENDENCIES = ./gaiaaux/gaiaaux.la \ ./gaiaexif/gaiaexif.la ./gaiageo/gaiageo.la \ ./geopackage/geopackage.la ./spatialite/splite.la \ ./shapefiles/shapefiles.la ./dxf/dxf.la ./md5/md5.la \ ./control_points/control_points.la ./srsinit/srsinit.la \ ./connection_cache/connection_cache.la \ ./virtualtext/virtualtext.la ./wfs/wfs.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_mod_spatialite_la_OBJECTS = \ versioninfo/mod_spatialite_la-version.lo mod_spatialite_la_OBJECTS = $(am_mod_spatialite_la_OBJECTS) mod_spatialite_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(mod_spatialite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(mod_spatialite_la_LDFLAGS) \ $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libspatialite_la_SOURCES) $(mod_spatialite_la_SOURCES) DIST_SOURCES = $(libspatialite_la_SOURCES) \ $(mod_spatialite_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = subdir-objects SUBDIRS = headers \ gaiaaux \ gaiaexif \ gaiageo \ geopackage \ spatialite \ shapefiles \ srsinit \ connection_cache \ virtualtext \ wfs \ dxf \ md5 \ control_points AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I$(top_srcdir) lib_LTLIBRARIES = libspatialite.la mod_spatialite.la libspatialite_la_SOURCES = versioninfo/version.c libspatialite_la_LIBADD = ./gaiaaux/libgaiaaux.la \ ./gaiaexif/libgaiaexif.la ./gaiageo/libgaiageo.la \ ./geopackage/libgeopackage.la ./spatialite/libsplite.la \ ./shapefiles/libshapefiles.la ./dxf/libdxf.la ./md5/libmd5.la \ ./control_points/libcontrol_points.la ./srsinit/libsrsinit.la \ ./connection_cache/libconnection_cache.la \ ./virtualtext/libvirtualtext.la ./wfs/libwfs.la @LIBXML2_LIBS@ \ $(am__append_1) $(am__append_2) $(am__append_3) @ANDROID_FALSE@@MINGW_FALSE@libspatialite_la_LDFLAGS = -version-info 8:0:1 @ANDROID_TRUE@@MINGW_FALSE@libspatialite_la_LDFLAGS = -version-info 8:0:1 @MINGW_TRUE@libspatialite_la_LDFLAGS = -version-info 4:3:0 -no-undefined mod_spatialite_la_SOURCES = versioninfo/version.c mod_spatialite_la_LIBADD = ./gaiaaux/gaiaaux.la ./gaiaexif/gaiaexif.la \ ./gaiageo/gaiageo.la ./geopackage/geopackage.la \ ./spatialite/splite.la ./shapefiles/shapefiles.la ./dxf/dxf.la \ ./md5/md5.la ./control_points/control_points.la \ ./srsinit/srsinit.la ./connection_cache/connection_cache.la \ ./virtualtext/virtualtext.la ./wfs/wfs.la @LIBXML2_LIBS@ \ $(am__append_4) $(am__append_5) $(am__append_6) mod_spatialite_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ -DLOADABLE_EXTENSION mod_spatialite_la_LIBTOOLFLAGS = --tag=disable-static @ANDROID_FALSE@@MINGW_FALSE@mod_spatialite_la_LDFLAGS = -module -version-info 8:0:1 @ANDROID_TRUE@@MINGW_FALSE@mod_spatialite_la_LDFLAGS = -module -version-info 8:0:1 @MINGW_TRUE@mod_spatialite_la_LDFLAGS = -module -avoid-version -no-undefined MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } versioninfo/$(am__dirstamp): @$(MKDIR_P) versioninfo @: > versioninfo/$(am__dirstamp) versioninfo/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) versioninfo/$(DEPDIR) @: > versioninfo/$(DEPDIR)/$(am__dirstamp) versioninfo/version.lo: versioninfo/$(am__dirstamp) \ versioninfo/$(DEPDIR)/$(am__dirstamp) libspatialite.la: $(libspatialite_la_OBJECTS) $(libspatialite_la_DEPENDENCIES) $(EXTRA_libspatialite_la_DEPENDENCIES) $(AM_V_CCLD)$(libspatialite_la_LINK) -rpath $(libdir) $(libspatialite_la_OBJECTS) $(libspatialite_la_LIBADD) $(LIBS) versioninfo/mod_spatialite_la-version.lo: versioninfo/$(am__dirstamp) \ versioninfo/$(DEPDIR)/$(am__dirstamp) mod_spatialite.la: $(mod_spatialite_la_OBJECTS) $(mod_spatialite_la_DEPENDENCIES) $(EXTRA_mod_spatialite_la_DEPENDENCIES) $(AM_V_CCLD)$(mod_spatialite_la_LINK) -rpath $(libdir) $(mod_spatialite_la_OBJECTS) $(mod_spatialite_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f versioninfo/*.$(OBJEXT) -rm -f versioninfo/*.lo distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@versioninfo/$(DEPDIR)/mod_spatialite_la-version.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@versioninfo/$(DEPDIR)/version.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< versioninfo/mod_spatialite_la-version.lo: versioninfo/version.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(mod_spatialite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mod_spatialite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT versioninfo/mod_spatialite_la-version.lo -MD -MP -MF versioninfo/$(DEPDIR)/mod_spatialite_la-version.Tpo -c -o versioninfo/mod_spatialite_la-version.lo `test -f 'versioninfo/version.c' || echo '$(srcdir)/'`versioninfo/version.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) versioninfo/$(DEPDIR)/mod_spatialite_la-version.Tpo versioninfo/$(DEPDIR)/mod_spatialite_la-version.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='versioninfo/version.c' object='versioninfo/mod_spatialite_la-version.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(mod_spatialite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mod_spatialite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o versioninfo/mod_spatialite_la-version.lo `test -f 'versioninfo/version.c' || echo '$(srcdir)/'`versioninfo/version.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs -rm -rf versioninfo/.libs versioninfo/_libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: 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: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -rm -f versioninfo/$(DEPDIR)/$(am__dirstamp) -rm -f versioninfo/$(am__dirstamp) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-recursive -rm -rf versioninfo/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf versioninfo/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libLTLIBRARIES \ clean-libtool cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir 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-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/src/wfs/0000775000175000017500000000000012573314326013104 500000000000000libspatialite-4.3.0a/src/wfs/Makefile.in0000664000175000017500000004625312573313636015106 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/wfs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libwfs_la_LIBADD = am_libwfs_la_OBJECTS = wfs_in.lo libwfs_la_OBJECTS = $(am_libwfs_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = wfs_la_LIBADD = am_wfs_la_OBJECTS = wfs_la-wfs_in.lo wfs_la_OBJECTS = $(am_wfs_la_OBJECTS) wfs_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(wfs_la_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(wfs_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libwfs_la_SOURCES) $(wfs_la_SOURCES) DIST_SOURCES = $(libwfs_la_SOURCES) $(wfs_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@ -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libwfs.la wfs.la libwfs_la_SOURCES = wfs_in.c wfs_la_SOURCES = wfs_in.c wfs_la_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@ \ -I$(top_srcdir)/src/headers -I. -DLOADABLE_EXTENSION wfs_la_LDFLAGS = -module wfs_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/wfs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/wfs/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libwfs.la: $(libwfs_la_OBJECTS) $(libwfs_la_DEPENDENCIES) $(EXTRA_libwfs_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) $(libwfs_la_OBJECTS) $(libwfs_la_LIBADD) $(LIBS) wfs.la: $(wfs_la_OBJECTS) $(wfs_la_DEPENDENCIES) $(EXTRA_wfs_la_DEPENDENCIES) $(AM_V_CCLD)$(wfs_la_LINK) $(wfs_la_OBJECTS) $(wfs_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wfs_in.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wfs_la-wfs_in.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< wfs_la-wfs_in.lo: wfs_in.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(wfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(wfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT wfs_la-wfs_in.lo -MD -MP -MF $(DEPDIR)/wfs_la-wfs_in.Tpo -c -o wfs_la-wfs_in.lo `test -f 'wfs_in.c' || echo '$(srcdir)/'`wfs_in.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/wfs_la-wfs_in.Tpo $(DEPDIR)/wfs_la-wfs_in.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wfs_in.c' object='wfs_la-wfs_in.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(wfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(wfs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o wfs_la-wfs_in.lo `test -f 'wfs_in.c' || echo '$(srcdir)/'`wfs_in.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir 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-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/src/wfs/Makefile.am0000664000175000017500000000065012544707704015065 00000000000000 AM_CPPFLAGS= @CFLAGS@ @LIBXML2_CFLAGS@ AM_CPPFLAGS += -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libwfs.la wfs.la libwfs_la_SOURCES = wfs_in.c wfs_la_SOURCES = wfs_in.c wfs_la_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@ wfs_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. wfs_la_CPPFLAGS += -DLOADABLE_EXTENSION wfs_la_LDFLAGS = -module wfs_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda libspatialite-4.3.0a/src/wfs/wfs_in.c0000664000175000017500000033712612544707704014475 00000000000000/* wfs_in.c -- implements WFS support [import] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: this module has been completely funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale (WFS data import) */ #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #include #include #ifdef ENABLE_LIBXML2 /* LIBXML2 enabled: supporting XML documents */ #include #include #define MAX_GTYPES 28 #ifdef _WIN32 #define atoll _atoi64 #endif /* not WIN32 */ #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ struct wfs_srid_def { /* a WFS supported SRID */ int srid; char *srs_name; struct wfs_srid_def *next; }; struct wfs_keyword { /* a WFS keyword */ char *keyword; struct wfs_keyword *next; }; struct wfs_layer_def { /* a WFS layer */ char *name; char *title; char *abstract; struct wfs_srid_def *first_srid; struct wfs_srid_def *last_srid; struct wfs_keyword *first_key; struct wfs_keyword *last_key; struct wfs_layer_def *next; }; struct wfs_catalog { /* a list of WFS layers */ char *version; char *request_url; char *describe_url; struct wfs_layer_def *first; struct wfs_layer_def *last; }; struct wfs_column_def { /* a WFS attribute / column */ char *name; int type; int is_nullable; const char *pValue; struct wfs_column_def *next; }; struct wfs_geom_type { /* Geometry Type statistics */ int type; int count; }; struct wfs_layer_schema { /* a WFS table / layer schema */ int error; int swap_axes; char *layer_name; struct wfs_column_def *first; struct wfs_column_def *last; char *geometry_name; int geometry_type; int srid; int dims; int is_nullable; struct wfs_geom_type *types; char *geometry_value; sqlite3_stmt *stmt; sqlite3 *sqlite; }; struct wfs_attribute { /* a WFS attribute value */ struct wfs_column_def *column; char *value; struct wfs_attribute *next; }; struct wfs_feature { /* a WFS feature */ struct wfs_attribute *first; struct wfs_attribute *last; char *geometry_value; }; static struct wfs_column_def * alloc_wfs_column (const char *name, int type, int is_nullable) { /* allocating a WFS attribute / column definition */ int len; struct wfs_column_def *col = malloc (sizeof (struct wfs_column_def)); len = strlen (name); col->name = malloc (len + 1); strcpy (col->name, name); col->type = type; col->is_nullable = is_nullable; col->pValue = NULL; col->next = NULL; return col; } static void free_wfs_column (struct wfs_column_def *col) { /* memory cleanup: destroying a WFS column definition */ if (col == NULL) return; if (col->name != NULL) free (col->name); free (col); } static struct wfs_layer_schema * alloc_wfs_layer_schema (const char *layer_name, int swap_axes) { /* allocating an empty WFS schema descriptor */ int len; struct wfs_layer_schema *ptr = malloc (sizeof (struct wfs_layer_schema)); ptr->error = 0; ptr->swap_axes = swap_axes; len = strlen (layer_name); ptr->layer_name = malloc (len + 1); strcpy (ptr->layer_name, layer_name); ptr->first = NULL; ptr->last = NULL; ptr->geometry_name = NULL; ptr->geometry_type = GAIA_UNKNOWN; ptr->srid = -1; ptr->dims = 2; ptr->types = malloc (sizeof (struct wfs_geom_type) * MAX_GTYPES); ptr->types[0].type = GAIA_POINT; ptr->types[0].count = 0; ptr->types[1].type = GAIA_LINESTRING; ptr->types[1].count = 0; ptr->types[2].type = GAIA_POLYGON; ptr->types[2].count = 0; ptr->types[3].type = GAIA_MULTIPOINT; ptr->types[3].count = 0; ptr->types[4].type = GAIA_MULTILINESTRING; ptr->types[4].count = 0; ptr->types[5].type = GAIA_MULTIPOLYGON; ptr->types[5].count = 0; ptr->types[6].type = GAIA_GEOMETRYCOLLECTION; ptr->types[6].count = 0; ptr->types[7].type = GAIA_POINTZ; ptr->types[7].count = 0; ptr->types[8].type = GAIA_LINESTRINGZ; ptr->types[8].count = 0; ptr->types[9].type = GAIA_POLYGONZ; ptr->types[9].count = 0; ptr->types[10].type = GAIA_MULTIPOINTZ; ptr->types[10].count = 0; ptr->types[11].type = GAIA_MULTILINESTRINGZ; ptr->types[11].count = 0; ptr->types[12].type = GAIA_MULTIPOLYGONZ; ptr->types[12].count = 0; ptr->types[13].type = GAIA_GEOMETRYCOLLECTIONZ; ptr->types[13].count = 0; ptr->types[14].type = GAIA_POINTM; ptr->types[14].count = 0; ptr->types[15].type = GAIA_LINESTRINGM; ptr->types[15].count = 0; ptr->types[16].type = GAIA_POLYGONM; ptr->types[16].count = 0; ptr->types[17].type = GAIA_MULTIPOINTM; ptr->types[17].count = 0; ptr->types[18].type = GAIA_MULTILINESTRINGM; ptr->types[18].count = 0; ptr->types[19].type = GAIA_MULTIPOLYGONM; ptr->types[19].count = 0; ptr->types[20].type = GAIA_GEOMETRYCOLLECTIONM; ptr->types[20].count = 0; ptr->types[21].type = GAIA_POINTZM; ptr->types[21].count = 0; ptr->types[22].type = GAIA_LINESTRINGZM; ptr->types[22].count = 0; ptr->types[23].type = GAIA_POLYGONZM; ptr->types[23].count = 0; ptr->types[24].type = GAIA_MULTIPOINTZM; ptr->types[24].count = 0; ptr->types[25].type = GAIA_MULTILINESTRINGZM; ptr->types[25].count = 0; ptr->types[26].type = GAIA_MULTIPOLYGONZM; ptr->types[26].count = 0; ptr->types[27].type = GAIA_GEOMETRYCOLLECTIONZM; ptr->types[27].count = 0; ptr->geometry_value = NULL; ptr->stmt = NULL; return ptr; } static void free_wfs_layer_schema (struct wfs_layer_schema *ptr) { /* memory cleanup: destroying a WFS schema */ struct wfs_column_def *col; struct wfs_column_def *n_col; if (ptr == NULL) return; if (ptr->layer_name != NULL) free (ptr->layer_name); col = ptr->first; while (col != NULL) { n_col = col->next; free_wfs_column (col); col = n_col; } if (ptr->geometry_name != NULL) free (ptr->geometry_name); if (ptr->types != NULL) free (ptr->types); if (ptr->geometry_value != NULL) free (ptr->geometry_value); if (ptr->stmt != NULL) sqlite3_finalize (ptr->stmt); free (ptr); } static void reset_wfs_values (struct wfs_layer_schema *ptr) { /* memory cleanup: resetting attribute values */ struct wfs_column_def *col; if (ptr == NULL) return; col = ptr->first; while (col != NULL) { col->pValue = NULL; col = col->next; } if (ptr->geometry_value != NULL) { free (ptr->geometry_value); ptr->geometry_value = NULL; } } static int count_wfs_values (struct wfs_layer_schema *ptr) { /* counting how many valid values */ int count = 0; struct wfs_column_def *col; if (ptr == NULL) return 0; col = ptr->first; while (col != NULL) { if (col->pValue != NULL) count++; col = col->next; } if (ptr->geometry_value != NULL) count++; return count; } static void add_wfs_column_to_schema (struct wfs_layer_schema *ptr, const char *name, int type, int is_nullable) { /* adding an attribute / column into a WFS table / schema */ struct wfs_column_def *col; if (ptr == NULL) return; col = alloc_wfs_column (name, type, is_nullable); if (ptr->first == NULL) ptr->first = col; if (ptr->last != NULL) ptr->last->next = col; ptr->last = col; } static void set_wfs_geometry (struct wfs_layer_schema *ptr, const char *name, int type, int is_nullable) { /* setting the Geometry for a WFS schema */ int len; if (ptr == NULL) return; if (ptr->geometry_name != NULL) free (ptr->geometry_name); len = strlen (name); ptr->geometry_name = malloc (len + 1); strcpy (ptr->geometry_name, name); ptr->geometry_type = type; ptr->is_nullable = is_nullable; } static struct wfs_srid_def * alloc_wfs_srid (int srid, const char *srs_name) { /* allocating a WFS SRID definition */ int len; struct wfs_srid_def *ptr = malloc (sizeof (struct wfs_srid_def)); ptr->srid = srid; len = strlen (srs_name); ptr->srs_name = malloc (len + 1); strcpy (ptr->srs_name, srs_name); ptr->next = NULL; return ptr; } static struct wfs_keyword * alloc_wfs_keyword (const char *keyword) { /* allocating a WFS Keyword */ int len; struct wfs_keyword *ptr = malloc (sizeof (struct wfs_keyword)); len = strlen (keyword); ptr->keyword = malloc (len + 1); strcpy (ptr->keyword, keyword); ptr->next = NULL; return ptr; } static struct wfs_layer_def * alloc_wfs_layer (const char *name, const char *title, const char *abstract) { /* allocating a WFS catalog item / layer definition */ int len; struct wfs_layer_def *lyr = malloc (sizeof (struct wfs_layer_def)); len = strlen (name); lyr->name = malloc (len + 1); strcpy (lyr->name, name); if (title == NULL) lyr->title = NULL; else { len = strlen (title); lyr->title = malloc (len + 1); strcpy (lyr->title, title); } if (abstract == NULL) lyr->abstract = NULL; else { len = strlen (abstract); lyr->abstract = malloc (len + 1); strcpy (lyr->abstract, abstract); } lyr->first_srid = NULL; lyr->last_srid = NULL; lyr->first_key = NULL; lyr->last_key = NULL; lyr->next = NULL; return lyr; } static void free_wfs_layer (struct wfs_layer_def *lyr) { /* memory cleanup: destroying a WFS catalog item definition */ struct wfs_srid_def *srid; struct wfs_srid_def *n_srid; struct wfs_keyword *key; struct wfs_keyword *n_key; if (lyr == NULL) return; if (lyr->name != NULL) free (lyr->name); if (lyr->title != NULL) free (lyr->title); if (lyr->abstract != NULL) free (lyr->abstract); srid = lyr->first_srid; while (srid != NULL) { n_srid = srid->next; if (srid->srs_name != NULL) free (srid->srs_name); free (srid); srid = n_srid; } key = lyr->first_key; while (key != NULL) { n_key = key->next; free (key->keyword); free (key); key = n_key; } free (lyr); } static struct wfs_catalog * alloc_wfs_catalog () { /* allocating an empty WFS catalog object */ struct wfs_catalog *ptr = malloc (sizeof (struct wfs_catalog)); ptr->version = NULL; ptr->first = NULL; ptr->last = NULL; ptr->request_url = NULL; ptr->describe_url = NULL; return ptr; } static void free_wfs_catalog (struct wfs_catalog *ptr) { /* memory cleanup: destroying a WFS catalog object */ struct wfs_layer_def *lyr; struct wfs_layer_def *n_lyr; if (ptr == NULL) return; if (ptr->version != NULL) free (ptr->version); lyr = ptr->first; while (lyr != NULL) { n_lyr = lyr->next; free_wfs_layer (lyr); lyr = n_lyr; } if (ptr->request_url != NULL) free (ptr->request_url); if (ptr->describe_url != NULL) free (ptr->describe_url); free (ptr); } static void add_wfs_layer_to_catalog (struct wfs_catalog *ptr, const char *name, const char *title, const char *abstract) { /* adding an item (aka Layer) into a WFS Catalog */ struct wfs_layer_def *lyr; if (ptr == NULL) return; lyr = alloc_wfs_layer (name, title, abstract); if (ptr->first == NULL) ptr->first = lyr; if (ptr->last != NULL) ptr->last->next = lyr; ptr->last = lyr; } static struct wfs_feature * create_feature (struct wfs_layer_schema *schema) { /* creating an empty WFS feature object */ struct wfs_column_def *col; struct wfs_feature *feature = malloc (sizeof (struct wfs_feature)); feature->first = NULL; feature->last = NULL; feature->geometry_value = NULL; col = schema->first; while (col != NULL) { struct wfs_attribute *attr = malloc (sizeof (struct wfs_attribute)); attr->column = col; attr->value = NULL; attr->next = NULL; if (feature->first == NULL) feature->first = attr; if (feature->last != NULL) feature->last->next = attr; feature->last = attr; col = col->next; } return feature; } static void reset_feature (struct wfs_feature *feature) { /* resetting a WFS feature object to its initial empty state */ struct wfs_attribute *attr = feature->first; while (attr != NULL) { if (attr->value != NULL) free (attr->value); attr->value = NULL; attr = attr->next; } if (feature->geometry_value != NULL) free (feature->geometry_value); feature->geometry_value = NULL; } static void free_feature (struct wfs_feature *feature) { /* memory cleanup - freeing a WFS feature object */ struct wfs_attribute *attr; struct wfs_attribute *n_attr; reset_feature (feature); attr = feature->first; while (attr != NULL) { n_attr = attr->next; free (attr); attr = n_attr; } free (feature); } static int compare_features (struct wfs_feature *f1, struct wfs_feature *f2) { /* testing if two WFS features are identical */ struct wfs_attribute *attr1; struct wfs_attribute *attr2; int cnt1 = 0; int cnt2 = 0; /* counting how many attributes for each feature */ attr1 = f1->first; while (attr1 != NULL) { cnt1++; attr1 = attr1->next; } attr2 = f2->first; while (attr2 != NULL) { cnt2++; attr2 = attr2->next; } if (cnt1 != cnt2) { /* surely different - mismatching attributes count */ return 0; } if (f1->geometry_value == NULL && f2->geometry_value == NULL) ; else if (f1->geometry_value != NULL && f2->geometry_value != NULL) { if (strcmp (f1->geometry_value, f2->geometry_value) != 0) { /* surely different - mismatching geometry values */ return 0; } } else { /* surely different - mismatching geometries */ return 0; } attr1 = f1->first; attr2 = f2->first; while (attr1 != NULL && attr2 != NULL) { if (strcmp (attr1->column->name, attr1->column->name) != 0) { /* mismatching attribute name */ return 0; } if (attr1->value == NULL && attr2->value == NULL) ; else if (attr1->value != NULL && attr2->value != NULL) { if (strcmp (attr1->value, attr2->value) != 0) { /* mismatching values */ return 0; } } else { /* mismatching values */ } attr1 = attr1->next; attr2 = attr2->next; } return 1; } static void clean_copy (char *dest, const char *orig) { /* copying an URI fragment attempting to clean invalid sequences */ char last = '\0'; const char *pi = orig; char *po = dest; while (*pi != '\0') { if (last == '&' && *pi == '?') { last = *pi; po--; *po++ = *pi++; continue; } last = *pi; *po++ = *pi++; } *po = '\0'; } static void set_wfs_version (struct wfs_catalog *ptr, const char *version) { /* setting the WFS Version from GetCapabilities */ int len; if (ptr == NULL) return; if (ptr->version != NULL) free (ptr->version); if (version == NULL) return; len = strlen (version); ptr->version = malloc (len + 1); strcpy (ptr->version, version); } static void set_wfs_catalog_base_request_url (struct wfs_catalog *ptr, const char *url) { /* setting the request-URL for a WFS catalog */ int len; int i; int force_marker = 1; if (ptr == NULL) return; if (ptr->request_url != NULL) free (ptr->request_url); len = strlen (url); ptr->request_url = malloc (len + 2); clean_copy (ptr->request_url, url); for (i = 0; i < (int) strlen (ptr->request_url); i++) { if (*(ptr->request_url + i) == '?') force_marker = 0; } if (force_marker) strcat (ptr->request_url, "?"); } static void set_wfs_catalog_base_describe_url (struct wfs_catalog *ptr, const char *url) { /* setting the describe-URL for a WFS catalog */ int len; int i; int force_marker = 1; if (ptr == NULL) return; if (ptr->describe_url != NULL) free (ptr->describe_url); len = strlen (url); ptr->describe_url = malloc (len + 2); clean_copy (ptr->describe_url, url); for (i = 0; i < (int) strlen (ptr->describe_url); i++) { if (*(ptr->describe_url + i) == '?') force_marker = 0; } if (force_marker) strcat (ptr->describe_url, "?"); } static void add_wfs_srid_to_layer (struct wfs_layer_def *ptr, int srid, const char *srs_name) { /* adding a SRID supported by a WFS Layer */ struct wfs_srid_def *p_srid; if (ptr == NULL) return; p_srid = alloc_wfs_srid (srid, srs_name); if (ptr->first_srid == NULL) ptr->first_srid = p_srid; if (ptr->last_srid != NULL) ptr->last_srid->next = p_srid; ptr->last_srid = p_srid; } static void add_wfs_keyword_to_layer (struct wfs_layer_def *ptr, const char *keyword) { /* adding a Keyword to a WFS Layer */ struct wfs_keyword *key; if (ptr == NULL) return; if (keyword == NULL) return; key = alloc_wfs_keyword (keyword); if (ptr->first_key == NULL) ptr->first_key = key; if (ptr->last_key != NULL) ptr->last_key->next = key; ptr->last_key = key; } static void wfsParsingError (void *ctx, const char *msg, ...) { /* appending to the current Parsing Error buffer */ gaiaOutBufferPtr buf = ctx; char out[65536]; va_list args; if (ctx != NULL) ctx = NULL; /* suppressing stupid compiler warnings (unused args) */ va_start (args, msg); vsnprintf (out, 65536, msg, args); gaiaAppendToOutBuffer (buf, out); va_end (args); } static int find_describe_uri (xmlNodePtr node, char **describe_uri) { /* parsing the "schemaLocation" string */ if (node != NULL) { if (node->type == XML_TEXT_NODE) { char *p_base; int len = strlen ((const char *) (node->content)); char *string = malloc (len + 1); strcpy (string, (char *) (node->content)); p_base = string; while (1) { char *p = p_base; while (1) { if (*p == ' ' || *p == '\0') { int next = 1; if (*p == '\0') next = 0; *p = '\0'; if (strstr (p_base, "DescribeFeatureType") != NULL) { len = strlen (p_base); *describe_uri = malloc (len + 1); strcpy (*describe_uri, p_base); free (string); return 1; } if (next) p_base = p + 1; else p_base = p; break; } p++; } if (*p_base == '\0') break; } free (string); } } return 0; } static int get_DescribeFeatureType_uri (xmlDocPtr xml_doc, char **describe_uri) { /* / attempting to retrieve the URI identifying the DescribeFeatureType service */ const char *name; xmlNodePtr root = xmlDocGetRootElement (xml_doc); struct _xmlAttr *attr; if (root == NULL) return 0; name = (const char *) (root->name); if (name != NULL) { if (strcmp (name, "FeatureCollection") != 0) return 0; /* for sure, it's not a WFS answer */ } attr = root->properties; while (attr != NULL) { if (attr->name != NULL) { if (strcmp ((const char *) (attr->name), "schemaLocation") == 0) return find_describe_uri (attr->children, describe_uri); } attr = attr->next; } return 0; } static const char * parse_attribute_name (xmlNodePtr node) { /* parsing the element/name string */ if (node != NULL) { if (node->type == XML_TEXT_NODE) return (const char *) (node->content); } return NULL; } static int parse_attribute_nillable (xmlNodePtr node) { /* parsing the element/nillable string */ if (node != NULL) { if (node->type == XML_TEXT_NODE) if (strcmp ((const char *) (node->content), "false") == 0) return 0; } return 1; } static const char * clean_xml_prefix (const char *value) { /* skipping an eventual XML prefix */ const char *ptr = value; while (1) { if (*ptr == '\0') break; if (*ptr == ':') return ptr + 1; ptr++; } return value; } static int parse_attribute_type (xmlNodePtr node, int *is_geom) { /* parsing the element/nillable string */ *is_geom = 0; if (node != NULL) { if (node->type == XML_TEXT_NODE) { const char *clean = clean_xml_prefix ((const char *) (node->content)); if (strstr (clean, "Geometry") != NULL) { *is_geom = 1; return GAIA_GEOMETRYCOLLECTION; } if (strstr (clean, "MultiPoint") != NULL) { *is_geom = 1; return GAIA_MULTIPOINT; } if (strstr (clean, "MultiLineString") != NULL) { *is_geom = 1; return GAIA_MULTILINESTRING; } if (strstr (clean, "MultiCurve") != NULL) { *is_geom = 1; return GAIA_MULTILINESTRING; } if (strstr (clean, "MultiPolygon") != NULL) { *is_geom = 1; return GAIA_MULTIPOLYGON; } if (strstr (clean, "MultiSurface") != NULL) { *is_geom = 1; return GAIA_MULTIPOLYGON; } if (strstr (clean, "Point") != NULL) { *is_geom = 1; return GAIA_POINT; } if (strstr (clean, "LineString") != NULL) { *is_geom = 1; return GAIA_LINESTRING; } if (strstr (clean, "Curve") != NULL) { *is_geom = 1; return GAIA_LINESTRING; } if (strstr (clean, "Polygon") != NULL) { *is_geom = 1; return GAIA_POLYGON; } if (strstr (clean, "Surface") != NULL) { *is_geom = 1; return GAIA_POLYGON; } if (strcmp (clean, "unsignedInt") == 0) return SQLITE_INTEGER; if (strcmp (clean, "nonNegativeInteger") == 0) return SQLITE_INTEGER; if (strcmp (clean, "negativeInteger") == 0) return SQLITE_INTEGER; if (strcmp (clean, "nonPositiveInteger") == 0) return SQLITE_INTEGER; if (strcmp (clean, "positiveInteger") == 0) return SQLITE_INTEGER; if (strcmp (clean, "integer") == 0) return SQLITE_INTEGER; if (strcmp (clean, "int") == 0) return SQLITE_INTEGER; if (strcmp (clean, "unsignedShort") == 0) return SQLITE_INTEGER; if (strcmp (clean, "short") == 0) return SQLITE_INTEGER; if (strcmp (clean, "unsignedLong") == 0) return SQLITE_INTEGER; if (strcmp (clean, "long") == 0) return SQLITE_INTEGER; if (strcmp (clean, "boolean") == 0) return SQLITE_INTEGER; if (strcmp (clean, "unsignedByte") == 0) return SQLITE_INTEGER; if (strcmp (clean, "byte") == 0) return SQLITE_INTEGER; if (strcmp (clean, "decimal") == 0) return SQLITE_FLOAT; if (strcmp (clean, "float") == 0) return SQLITE_FLOAT; if (strcmp (clean, "double") == 0) return SQLITE_FLOAT; } } return SQLITE_TEXT; } static int parse_attribute_inner_node (struct _xmlAttr *attr, int *type, int *is_geom) { /* attempting to retrieve the data-type from a complex attribute */ while (attr != NULL) { if (attr->name != NULL) { if (strcmp ((const char *) (attr->name), "base") == 0) { *type = parse_attribute_type (attr->children, is_geom); return 1; } } attr = attr->next; } return 0; } static void parse_attribute_inner_type (xmlNodePtr node, int *type, int *is_geom) { /* recursively parsing a complex attribute declaration */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { const char *name = (const char *) (cur_node->name); if (name != NULL) { if (strcmp (name, "restriction") == 0) { if (parse_attribute_inner_node (cur_node->properties, type, is_geom)) return; } } parse_attribute_inner_type (cur_node->children, type, is_geom); } } } static void parse_wfs_schema_element (xmlNodePtr node, struct wfs_layer_schema *schema) { /* parsing a WFS attribute / column definition */ struct _xmlAttr *attr = node->properties; const char *name = NULL; int type = SQLITE_NULL; int is_nullable = 1; int is_geom = 0; int type_declared = 0; while (attr != NULL) { if (attr->name != NULL) { if (strcmp ((const char *) (attr->name), "name") == 0) name = parse_attribute_name (attr->children); if (strcmp ((const char *) (attr->name), "nillable") == 0) is_nullable = parse_attribute_nillable (attr->children); if (strcmp ((const char *) (attr->name), "type") == 0) { type_declared = 1; type = parse_attribute_type (attr->children, &is_geom); } } attr = attr->next; } if (!type_declared) parse_attribute_inner_type (node->children, &type, &is_geom); if (name == NULL || (is_geom == 0 && type == SQLITE_NULL) || (is_geom != 0 && type == GAIA_UNKNOWN)) return; if (is_geom) set_wfs_geometry (schema, name, type, is_nullable); else add_wfs_column_to_schema (schema, name, type, is_nullable); } static void parse_wfs_schema (xmlNodePtr node, struct wfs_layer_schema *schema, int *sequence) { /* recursively parsing the WFS layer schema */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { const char *name = (const char *) (cur_node->name); if (name != NULL) { if (strcmp (name, "element") == 0 && *sequence) parse_wfs_schema_element (cur_node, schema); else { if (strcmp (name, "sequence") == 0) *sequence = 1; parse_wfs_schema (cur_node->children, schema, sequence); if (strcmp (name, "sequence") == 0) *sequence = 0; } } } } } static struct wfs_layer_schema * load_wfs_schema (const char *path_or_url, const char *layer_name, int swap_axes, char **err_msg) { /* attempting to retrieve the WFS layer schema */ xmlDocPtr xml_doc = NULL; xmlNodePtr root; int len; int sequence = 0; struct wfs_layer_schema *schema = NULL; gaiaOutBuffer errBuf; xmlGenericErrorFunc parsingError = (xmlGenericErrorFunc) wfsParsingError; gaiaOutBufferInitialize (&errBuf); xmlSetGenericErrorFunc (&errBuf, parsingError); if (path_or_url == NULL) goto end; if (layer_name == NULL) goto end; xml_doc = xmlReadFile (path_or_url, NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ if (errBuf.Buffer != NULL && err_msg != NULL) { len = strlen (errBuf.Buffer); *err_msg = malloc (len + 1); strcpy (*err_msg, errBuf.Buffer); } goto end; } schema = alloc_wfs_layer_schema (layer_name, swap_axes); root = xmlDocGetRootElement (xml_doc); parse_wfs_schema (root, schema, &sequence); if (schema->first == NULL && schema->geometry_name == NULL) { if (err_msg != NULL) { const char *msg = "Unable to identify a valid WFS layer schema"; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); } free_wfs_layer_schema (schema); schema = NULL; } end: gaiaOutBufferReset (&errBuf); xmlSetGenericErrorFunc ((void *) stderr, NULL); if (xml_doc != NULL) xmlFreeDoc (xml_doc); if (schema != NULL) { if (schema->first == NULL && schema->geometry_name == NULL) { /* empty schema */ free_wfs_layer_schema (schema); schema = NULL; } } return schema; } static void gml_out (gaiaOutBufferPtr buf, const xmlChar * str) { /* clean GML output */ const xmlChar *p = str; while (*p != '\0') { if (*p == '>') gaiaAppendToOutBuffer (buf, ">"); else if (*p == '<') gaiaAppendToOutBuffer (buf, "<"); else if (*p == '&') gaiaAppendToOutBuffer (buf, "&"); else if (*p == '"') gaiaAppendToOutBuffer (buf, """); else if (*p == '\'') gaiaAppendToOutBuffer (buf, "'"); else { char xx[2]; xx[0] = *p; xx[1] = '\0'; gaiaAppendToOutBuffer (buf, xx); } p++; } } static void reassemble_gml (xmlNodePtr node, gaiaOutBufferPtr buf) { /* recursively printing the XML-DOM nodes */ struct _xmlAttr *attr; xmlNodePtr child; xmlNs *ns; const xmlChar *namespace; int has_children; int has_text; while (node) { if (node->type == XML_ELEMENT_NODE) { gaiaAppendToOutBuffer (buf, "<"); ns = node->ns; namespace = NULL; if (ns != NULL) namespace = ns->prefix; if (namespace) { gml_out (buf, namespace); gaiaAppendToOutBuffer (buf, ":"); } gml_out (buf, node->name); attr = node->properties; while (attr != NULL) { /* attributes */ if (attr->type == XML_ATTRIBUTE_NODE) { xmlNodePtr text = attr->children; gaiaAppendToOutBuffer (buf, " "); ns = attr->ns; namespace = NULL; if (ns != NULL) namespace = ns->prefix; if (namespace) { gml_out (buf, namespace); gaiaAppendToOutBuffer (buf, ":"); } gml_out (buf, attr->name); gaiaAppendToOutBuffer (buf, "=\""); if (text != NULL) { if (text->type == XML_TEXT_NODE) gml_out (buf, text->content); } gaiaAppendToOutBuffer (buf, "\""); } attr = attr->next; } has_children = 0; has_text = 0; child = node->children; while (child) { if (child->type == XML_ELEMENT_NODE) has_children = 1; if (child->type == XML_TEXT_NODE) has_text++; child = child->next; } if (has_children) has_text = 0; if (!has_text && !has_children) gaiaAppendToOutBuffer (buf, " />"); if (has_text) { child = node->children; if (child->type == XML_TEXT_NODE) { /* text node */ gaiaAppendToOutBuffer (buf, ">"); gml_out (buf, child->content); gaiaAppendToOutBuffer (buf, "ns; namespace = NULL; if (ns != NULL) namespace = ns->prefix; if (namespace) { gml_out (buf, namespace); gaiaAppendToOutBuffer (buf, ":"); } gml_out (buf, node->name); gaiaAppendToOutBuffer (buf, ">"); } } if (has_children) { /* recursively expanding all children */ gaiaAppendToOutBuffer (buf, ">"); reassemble_gml (node->children, buf); gaiaAppendToOutBuffer (buf, "ns; namespace = NULL; if (ns != NULL) namespace = ns->prefix; if (namespace) { gml_out (buf, namespace); gaiaAppendToOutBuffer (buf, ":"); } gml_out (buf, node->name); gaiaAppendToOutBuffer (buf, ">"); } } node = node->next; } } static void set_feature_geom (xmlNodePtr node, struct wfs_layer_schema *schema) { /* saving the feature's geometry value */ gaiaOutBuffer gml; gaiaOutBufferInitialize (&gml); /* reassembling the GML expression */ reassemble_gml (node, &gml); if (gml.Buffer != NULL) { if (schema->geometry_value != NULL) free (schema->geometry_value); schema->geometry_value = gml.Buffer; } } static void set_feature_value (xmlNodePtr node, struct wfs_column_def *col) { /* saving an attribute value */ if (node == NULL) return; if (node->type == XML_TEXT_NODE) col->pValue = (const char *) (node->content); } static void check_feature_value (xmlNodePtr node, struct wfs_layer_schema *schema) { /* attempting to extract an attribute value */ struct wfs_column_def *col; if (strcmp ((const char *) (node->name), schema->geometry_name) == 0) { set_feature_geom (node->children, schema); return; } col = schema->first; while (col != NULL) { if (strcmp ((const char *) (node->name), col->name) == 0) { set_feature_value (node->children, col); return; } col = col->next; } } static int test_effective_geom (struct wfs_layer_schema *schema, int *type, int *cast_type, int *cast_dims) { /* testing the effective GeometryType and dims */ int pts = 0; int lns = 0; int pgs = 0; int mpts = 0; int mlns = 0; int mpgs = 0; int colls = 0; int dims_xy = 0; int dims_xyz = 0; int dims_xym = 0; int dims_xyzm = 0; int dims = GAIA_XY; int i; for (i = 0; i < MAX_GTYPES; i++) { struct wfs_geom_type *p = schema->types + i; switch (p->type) { case GAIA_POINT: case GAIA_POINTZ: case GAIA_POINTM: case GAIA_POINTZM: pts += p->count; break; case GAIA_LINESTRING: case GAIA_LINESTRINGZ: case GAIA_LINESTRINGM: case GAIA_LINESTRINGZM: lns += p->count; break; case GAIA_POLYGON: case GAIA_POLYGONZ: case GAIA_POLYGONM: case GAIA_POLYGONZM: pgs += p->count; break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: mpts += p->count; break; case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: mlns += p->count; break; case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: mpgs += p->count; break; case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: colls += p->count; break; }; if (p->count > 0) { switch (p->type) { case GAIA_POINT: case GAIA_LINESTRING: case GAIA_POLYGON: case GAIA_MULTIPOINT: case GAIA_MULTILINESTRING: case GAIA_MULTIPOLYGON: case GAIA_GEOMETRYCOLLECTION: dims_xy++; break; case GAIA_POINTZ: case GAIA_LINESTRINGZ: case GAIA_POLYGONZ: case GAIA_MULTIPOINTZ: case GAIA_MULTILINESTRINGZ: case GAIA_MULTIPOLYGONZ: case GAIA_GEOMETRYCOLLECTIONZ: dims_xyz++; break; case GAIA_POINTM: case GAIA_LINESTRINGM: case GAIA_POLYGONM: case GAIA_MULTIPOINTM: case GAIA_MULTILINESTRINGM: case GAIA_MULTIPOLYGONM: case GAIA_GEOMETRYCOLLECTIONM: dims_xym++; break; case GAIA_POINTZM: case GAIA_LINESTRINGZM: case GAIA_POLYGONZM: case GAIA_MULTIPOINTZM: case GAIA_MULTILINESTRINGZM: case GAIA_MULTIPOLYGONZM: case GAIA_GEOMETRYCOLLECTIONZM: dims_xyzm++; break; }; } } if (dims_xy > 0 && dims_xyz == 0 && dims_xym == 0 && dims_xyzm == 0) dims = GAIA_XY; if (dims_xyz > 0 && dims_xym == 0 && dims_xyzm == 0) dims = GAIA_XY_Z; if (dims_xyz == 0 && dims_xym > 0 && dims_xyzm == 0) dims = GAIA_XY_M; if (dims_xyzm > 0) dims = GAIA_XY_Z_M; *cast_dims = 0; if (dims_xy > 0 && dims == GAIA_XY_Z) *cast_dims = 1; if (dims_xy > 0 && dims == GAIA_XY_M) *cast_dims = 1; if ((dims_xy > 0 || dims_xyz > 0 || dims_xym > 0) && dims == GAIA_XY_Z_M) *cast_dims = 1; if (pts > 0 && lns == 0 && pgs == 0 && mpts == 0 && mlns == 0 && mpgs == 0 && colls == 0) { if (dims == GAIA_XY_Z_M) *type = GAIA_POINTZM; else if (dims == GAIA_XY_Z) *type = GAIA_POINTZ; else if (dims == GAIA_XY_M) *type = GAIA_POINTM; else *type = GAIA_POINT; *cast_type = 0; return 1; } if (pts == 0 && lns > 0 && pgs == 0 && mpts == 0 && mlns == 0 && mpgs == 0 && colls == 0) { if (dims == GAIA_XY_Z_M) *type = GAIA_LINESTRINGZM; else if (dims == GAIA_XY_Z) *type = GAIA_LINESTRINGZ; else if (dims == GAIA_XY_M) *type = GAIA_LINESTRINGM; else *type = GAIA_LINESTRING; *cast_type = 0; return 1; } if (pts == 0 && lns == 0 && pgs > 0 && mpts == 0 && mlns == 0 && mpgs == 0 && colls == 0) { if (dims == GAIA_XY_Z_M) *type = GAIA_POLYGONZM; else if (dims == GAIA_XY_Z) *type = GAIA_POLYGONZ; else if (dims == GAIA_XY_M) *type = GAIA_POLYGONM; else *type = GAIA_POLYGON; *cast_type = 0; return 1; } if ((pts > 0 || mpts > 0) && lns == 0 && pgs == 0 && mlns == 0 && mpgs == 0 && colls == 0) { if (dims == GAIA_XY_Z_M) *type = GAIA_MULTIPOINTZM; else if (dims == GAIA_XY_Z) *type = GAIA_MULTIPOINTZ; else if (dims == GAIA_XY_M) *type = GAIA_MULTIPOINTM; else *type = GAIA_MULTIPOINT; if (pts > 0) *cast_type = 1; else *cast_type = 0; return 1; } if (pts == 0 && (lns > 0 || mlns > 0) && pgs == 0 && mpts == 0 && mpgs == 0 && colls == 0) { if (dims == GAIA_XY_Z_M) *type = GAIA_MULTILINESTRINGZM; else if (dims == GAIA_XY_Z) *type = GAIA_MULTILINESTRINGZ; else if (dims == GAIA_XY_M) *type = GAIA_MULTILINESTRINGM; else *type = GAIA_MULTILINESTRING; if (lns > 0) *cast_type = 1; else *cast_type = 0; return 1; } if (pts == 0 && lns == 0 && (pgs > 0 || mpgs > 0) && mpts == 0 && mlns == 0 && colls == 0) { if (dims == GAIA_XY_Z_M) *type = GAIA_MULTIPOLYGONZM; else if (dims == GAIA_XY_Z) *type = GAIA_MULTIPOLYGONZ; else if (dims == GAIA_XY_M) *type = GAIA_MULTIPOLYGONM; else *type = GAIA_MULTIPOLYGON; if (pgs > 0) *cast_type = 1; else *cast_type = 0; return 1; } if (dims == GAIA_XY_Z_M) *type = GAIA_GEOMETRYCOLLECTIONZM; else if (dims == GAIA_XY_Z) *type = GAIA_GEOMETRYCOLLECTIONZ; else if (dims == GAIA_XY_M) *type = GAIA_GEOMETRYCOLLECTIONM; else *type = GAIA_GEOMETRYCOLLECTION; if (pts > 0 || lns > 0 || pgs > 0 || mpts > 0 || mlns > 0 || mpgs > 0) *cast_type = 1; else *cast_type = 0; return 1; } static int parse_wfs_single_feature (xmlNodePtr node, struct wfs_layer_schema *schema) { /* attempting to extract data corresponding to a single feature */ xmlNodePtr cur_node = NULL; int cnt = 0; reset_wfs_values (schema); for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) check_feature_value (cur_node, schema); } cnt = count_wfs_values (schema); return cnt; } static int check_real_type (struct wfs_layer_schema *schema, int *type, int *cast_type, int *cast_dims) { /* attempting to assign a more precise GeometryType */ int xtype; if (test_effective_geom (schema, &xtype, cast_type, cast_dims)) { *type = xtype; return 1; } return 0; } static void update_geom_stats (struct wfs_layer_schema *schema, int type) { /* updating the type statistics */ int i; if (schema->geometry_type != GAIA_GEOMETRYCOLLECTION) return; for (i = 0; i < MAX_GTYPES; i++) { struct wfs_geom_type *p = schema->types + i; if (p->type == type) { p->count += 1; return; } } } static int do_insert (struct wfs_layer_schema *schema, char **err_msg) { /* inserting a row into the target table */ int ret; int ind = 1; sqlite3_stmt *stmt = schema->stmt; struct wfs_column_def *col; if (stmt == NULL || schema->error) { schema->error = 1; return 0; } /* binding */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); col = schema->first; while (col != NULL) { if (col->pValue == NULL) sqlite3_bind_null (stmt, ind); else { if (col->type == SQLITE_INTEGER) { sqlite3_int64 val = atoll (col->pValue); sqlite3_bind_int64 (stmt, ind, val); } else if (col->type == SQLITE_FLOAT) { double val = atof (col->pValue); sqlite3_bind_double (stmt, ind, val); } else sqlite3_bind_text (stmt, ind, col->pValue, strlen (col->pValue), SQLITE_STATIC); } ind++; col = col->next; } if (schema->geometry_name != NULL) { /* we have a Geometry column */ if (schema->geometry_value != NULL) { /* preparing the Geometry value */ gaiaGeomCollPtr geom = gaiaParseGml ((unsigned char *) (schema->geometry_value), schema->sqlite); if (geom == NULL) sqlite3_bind_null (stmt, ind); else { unsigned char *blob; int blob_size; int type = gaiaGeometryType (geom); if (type == GAIA_POINT && schema->geometry_type == GAIA_MULTIPOINT) { /* promoting to MultiPoint */ geom->DeclaredType = GAIA_MULTIPOINT; } if (type == GAIA_LINESTRING && schema->geometry_type == GAIA_MULTILINESTRING) { /* promoting to MultiLinestring */ geom->DeclaredType = GAIA_MULTILINESTRING; } if (type == GAIA_POLYGON && schema->geometry_type == GAIA_MULTIPOLYGON) { /* promoting to MultiPolygon */ geom->DeclaredType = GAIA_MULTIPOLYGON; } geom->Srid = schema->srid; if (schema->swap_axes != 0) gaiaSwapCoords (geom); gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); sqlite3_bind_blob (stmt, ind, blob, blob_size, free); gaiaFreeGeomColl (geom); update_geom_stats (schema, type); } } else sqlite3_bind_null (stmt, ind); } /* inserting */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) return 1; spatialite_e ("loadwfs INSERT error: <%s>\n", sqlite3_errmsg (schema->sqlite)); schema->error = 1; if (err_msg == NULL) ; else { int len; const char *err = sqlite3_errmsg (schema->sqlite); if (*err_msg != NULL) free (*err_msg); len = strlen (err); *err_msg = malloc (len + 1); strcpy (*err_msg, err); } return 0; } static void save_attribute (struct wfs_feature *feature, struct wfs_column_def *col) { /* saving an attribute value */ struct wfs_attribute *attr = feature->first; while (attr != NULL) { if (attr->column == col) { if (attr->value != NULL) free (attr->value); attr->value = NULL; if (col->pValue != NULL) { int len = strlen (col->pValue); attr->value = malloc (len + 1); strcpy (attr->value, col->pValue); } return; } attr = attr->next; } } static int do_save_feature (struct wfs_layer_schema *schema, struct wfs_feature *feature) { /* saving the current feature data */ struct wfs_column_def *col; if (schema->error) { schema->error = 1; return 0; } reset_feature (feature); col = schema->first; while (col != NULL) { save_attribute (feature, col); col = col->next; } if (schema->geometry_name != NULL) { /* we have a Geometry column */ if (schema->geometry_value != NULL) { int len = strlen (schema->geometry_value); feature->geometry_value = malloc (len + 1); strcpy (feature->geometry_value, schema->geometry_value); } } return 1; } static void parse_wfs_features (xmlNodePtr node, struct wfs_layer_schema *schema, int *rows, char **err_msg) { /* recursively parsing the GML payload */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { char *entity_name; if (cur_node->ns != NULL) entity_name = sqlite3_mprintf ("%s:%s", cur_node->ns->prefix, cur_node->name); else entity_name = sqlite3_mprintf ("%s", cur_node->name); if (strcmp (schema->layer_name, entity_name) == 0 || strcmp (schema->layer_name, (const char *) (cur_node->name)) == 0) { if (parse_wfs_single_feature (cur_node->children, schema)) { if (schema->error == 0) { if (do_insert (schema, err_msg)) *rows += 1; } } } else parse_wfs_features (cur_node->children, schema, rows, err_msg); sqlite3_free (entity_name); } } } static void parse_wfs_last_feature (xmlNodePtr node, struct wfs_layer_schema *schema, struct wfs_feature *feature, int *rows) { /* recursively parsing the GML payload */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (parse_wfs_single_feature (cur_node, schema)) { if (schema->error == 0) { if (do_save_feature (schema, feature)) *rows += 1; } return; } else parse_wfs_last_feature (cur_node->children, schema, feature, rows); } } } static int sniff_feature_value (xmlNodePtr node, struct wfs_layer_schema *schema, xmlNodePtr * geom) { /* sniffing attribute values */ struct wfs_column_def *col; if (strcmp ((const char *) (node->name), schema->geometry_name) == 0) { *geom = node->children; return 1; } col = schema->first; while (col != NULL) { if (strcmp ((const char *) (node->name), col->name) == 0) return 1; col = col->next; } return 0; } static int parse_srsname (xmlNodePtr node) { /* parsing the srsName string */ if (node != NULL) { if (node->type == XML_TEXT_NODE) { int len = strlen ((const char *) (node->content)); const char *end = (const char *) (node->content) + len; const char *p = end; if (len > 0) { p--; while (p >= (char *) (node->content)) { if (*p >= '0' && *p <= '9') { p--; continue; } if (p + 1 < end) return atoi (p + 1); } } } } return -1; } static int parse_dimension (xmlNodePtr node) { /* parsing the dimension string */ if (node != NULL) { if (node->type == XML_TEXT_NODE) return atoi ((const char *) (node->content)); } return 2; } static void sniff_gml_geometry (xmlNodePtr node, struct wfs_layer_schema *schema) { /* attempting to identify the Srid and dimension from a GML geometry */ xmlNodePtr cur_node = NULL; if (node == NULL) return; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { struct _xmlAttr *attr; attr = cur_node->properties; while (attr != NULL) { if (attr->name != NULL) { if (strcmp ((const char *) (attr->name), "srsName") == 0) schema->srid = parse_srsname (attr->children); if (strcmp ((const char *) (attr->name), "dimension") == 0) schema->dims = parse_dimension (attr->children); } attr = attr->next; } sniff_gml_geometry (cur_node->children, schema); } } } static int sniff_wfs_single_feature (xmlNodePtr node, struct wfs_layer_schema *schema) { /* attempting to sniff data corresponding to a single feature */ xmlNodePtr cur_node = NULL; int cnt = 0; xmlNodePtr geom = NULL; reset_wfs_values (schema); for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) cnt += sniff_feature_value (cur_node, schema, &geom); } if (cnt > 0 && geom != NULL) { sniff_gml_geometry (geom, schema); return 1; } return 0; } static void sniff_geometries (xmlNodePtr node, struct wfs_layer_schema *schema, int *sniffed) { /* recursively parsing the GML payload so to sniff the first geometry */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (*sniffed) return; if (sniff_wfs_single_feature (cur_node, schema)) { *sniffed = 1; return; } else sniff_geometries (cur_node->children, schema, sniffed); } } } static int check_pk_name (struct wfs_layer_schema *schema, const char *pk_column_name, char *auto_pk_name) { /* handling the PK name */ int num = 0; char pk_candidate[1024]; struct wfs_column_def *col; if (pk_column_name == NULL) goto check_auto; col = schema->first; while (col != NULL) { /* checking if the required PK does really exists */ if (strcasecmp (col->name, pk_column_name) == 0) return 1; col = col->next; } check_auto: strcpy (pk_candidate, auto_pk_name); while (1) { /* ensuring to return a not ambiguous PK name */ int ok = 1; col = schema->first; while (col != NULL) { /* checking if the PK candidate isn't already defined */ if (strcasecmp (col->name, pk_candidate) == 0) { ok = 0; break; } col = col->next; } if (ok) { strcpy (auto_pk_name, pk_candidate); break; } sprintf (pk_candidate, "%s_%d", auto_pk_name, num); num++; } return 0; } static int prepare_sql (sqlite3 * sqlite, struct wfs_layer_schema *schema, const char *table, const char *pk_column_name, int spatial_index, char **err_msg) { /* creating the output table and preparing the insert statement */ int len; int ret; char *errMsg = NULL; gaiaOutBuffer sql; char *sql2; char *quoted; struct wfs_column_def *col; char auto_pk_name[1024]; int is_auto_pk = 0; int comma = 0; sqlite3_stmt *stmt = NULL; /* attempting to create the SQL Table */ gaiaOutBufferInitialize (&sql); quoted = gaiaDoubleQuotedSql (table); sql2 = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n", quoted); free (quoted); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); if (pk_column_name == NULL) strcpy (auto_pk_name, "pk_uid"); else { /* Even Rouault 2013-06-02 - avoiding a potential buffer overflow */ if (strlen (pk_column_name) >= sizeof (auto_pk_name) - 1) return 0; /* END - Even Rouault 2013-06-02 */ strcpy (auto_pk_name, pk_column_name); } if (!check_pk_name (schema, pk_column_name, auto_pk_name)) { /* defining a default Primary Key */ is_auto_pk = 1; quoted = gaiaDoubleQuotedSql (auto_pk_name); sql2 = sqlite3_mprintf ("\t\"%s\" INTEGER PRIMARY KEY AUTOINCREMENT", quoted); comma = 1; free (quoted); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); } col = schema->first; while (col != NULL) { const char *type = "TEXT"; if (comma) { gaiaAppendToOutBuffer (&sql, ",\n"); comma = 0; } if (col->type == SQLITE_INTEGER) type = "INTEGER"; if (col->type == SQLITE_FLOAT) type = "DOUBLE"; quoted = gaiaDoubleQuotedSql (col->name); if (!is_auto_pk) { /* there is an explicitly defined PK */ if (strcasecmp (col->name, pk_column_name) == 0) { /* ok, we've found the PK column */ if (col == schema->last) sql2 = sqlite3_mprintf ("\t\"%s\" %s PRIMARY KEY", quoted, type); else sql2 = sqlite3_mprintf ("\t\"%s\" %s PRIMARY KEY,\n", quoted, type); free (quoted); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); col = col->next; continue; } } if (col == schema->last) { if (col->is_nullable) sql2 = sqlite3_mprintf ("\t\"%s\" %s", quoted, type); else sql2 = sqlite3_mprintf ("\t\"%s\" %s NOT NULL", quoted, type); } else { if (col->is_nullable) sql2 = sqlite3_mprintf ("\t\"%s\" %s,\n", quoted, type); else sql2 = sqlite3_mprintf ("\t\"%s\" %s NOT NULL,\n", quoted, type); } free (quoted); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); col = col->next; } gaiaAppendToOutBuffer (&sql, ")"); ret = sqlite3_exec (sqlite, sql.Buffer, NULL, NULL, &errMsg); gaiaOutBufferReset (&sql); if (ret != SQLITE_OK) { spatialite_e ("loadwfs: CREATE TABLE '%s' error: %s\n", table, errMsg); schema->error = 1; if (err_msg == NULL) { sqlite3_free (errMsg); return 0; } len = strlen (errMsg); *err_msg = malloc (len + 1); strcpy (*err_msg, errMsg); sqlite3_free (errMsg); return 0; } if (schema->geometry_name != NULL) { /* creating the Geometry column */ const char *gType = "GEOMETRY"; const char *gDims = "XY"; switch (schema->geometry_type) { case GAIA_POINT: gType = "POINT"; break; case GAIA_LINESTRING: gType = "LINESTRING"; break; case GAIA_POLYGON: gType = "POLYGON"; break; case GAIA_MULTIPOINT: gType = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: gType = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: gType = "MULTIPOLYGON"; break; }; if (schema->dims == 3) gDims = "XYZ"; sql2 = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, %Q, %d, %Q, %Q)", table, schema->geometry_name, schema->srid, gType, gDims); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); ret = sqlite3_exec (sqlite, sql.Buffer, NULL, NULL, &errMsg); gaiaOutBufferReset (&sql); if (ret != SQLITE_OK) { spatialite_e ("loadwfs: AddGeometryColumn error: %s\n", errMsg); schema->error = 1; if (err_msg == NULL) { sqlite3_free (errMsg); return 0; } len = strlen (errMsg); *err_msg = malloc (len + 1); strcpy (*err_msg, errMsg); return 0; } if (spatial_index) { /* creating the Spatial Index */ sql2 = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, %Q)", table, schema->geometry_name); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); ret = sqlite3_exec (sqlite, sql.Buffer, NULL, NULL, &errMsg); gaiaOutBufferReset (&sql); if (ret != SQLITE_OK) { spatialite_e ("loadwfs: CreateSpatialIndex error: %s\n", errMsg); schema->error = 1; if (err_msg == NULL) { sqlite3_free (errMsg); return 0; } len = strlen (errMsg); *err_msg = malloc (len + 1); strcpy (*err_msg, errMsg); return 0; } } } /* creating the INSERT statement */ quoted = gaiaDoubleQuotedSql (table); sql2 = sqlite3_mprintf ("INSERT INTO \"%s\" (\n", quoted); free (quoted); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); if (is_auto_pk) { /* the auto-generated PK column */ quoted = gaiaDoubleQuotedSql (auto_pk_name); sql2 = sqlite3_mprintf ("\"%s\", ", quoted); free (quoted); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); } col = schema->first; while (col != NULL) { /* column names */ quoted = gaiaDoubleQuotedSql (col->name); if (col == schema->last && schema->geometry_name == NULL) sql2 = sqlite3_mprintf ("\"%s\") VALUES (", quoted); else sql2 = sqlite3_mprintf ("\"%s\", ", quoted); free (quoted); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); col = col->next; } if (schema->geometry_name != NULL) { /* the geometry column name */ quoted = gaiaDoubleQuotedSql (schema->geometry_name); sql2 = sqlite3_mprintf ("\"%s\") VALUES (", quoted); free (quoted); gaiaAppendToOutBuffer (&sql, sql2); sqlite3_free (sql2); } if (is_auto_pk) { /* there is an AUTOINCREMENT PK */ gaiaAppendToOutBuffer (&sql, "NULL, "); } col = schema->first; while (col != NULL) { if (col == schema->last && schema->geometry_name == NULL) gaiaAppendToOutBuffer (&sql, "?)"); else gaiaAppendToOutBuffer (&sql, "?, "); col = col->next; } if (schema->geometry_name != NULL) gaiaAppendToOutBuffer (&sql, "?)"); ret = sqlite3_prepare_v2 (sqlite, sql.Buffer, strlen (sql.Buffer), &stmt, NULL); gaiaOutBufferReset (&sql); if (ret != SQLITE_OK) { errMsg = (char *) sqlite3_errmsg (sqlite); spatialite_e ("loadwfs: \"%s\"\n", errMsg); schema->error = 1; if (err_msg == NULL) return 0; len = strlen (errMsg); *err_msg = malloc (len + 1); strcpy (*err_msg, errMsg); return 0; } schema->stmt = stmt; schema->sqlite = sqlite; /* starting an SQL Transaction */ if (sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg) != SQLITE_OK) { spatialite_e ("loadwfs: BEGIN error:\"%s\"\n", errMsg); schema->error = 1; if (err_msg == NULL) { sqlite3_free (errMsg); return 0; } len = strlen (errMsg); *err_msg = malloc (len + 1); strcpy (*err_msg, errMsg); sqlite3_free (errMsg); } if (schema->error) return 0; return 1; } static void restart_transaction (sqlite3 * sqlite) { /* confirming the still pendenting SQL transaction */ char *errMsg = NULL; if (sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg) != SQLITE_OK) { spatialite_e ("loadwfs: COMMIT error:\"%s\"\n", errMsg); sqlite3_free (errMsg); } /* restarting a further transaction */ if (sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg) != SQLITE_OK) { spatialite_e ("loadwfs: BEGIN error:\"%s\"\n", errMsg); sqlite3_free (errMsg); } } static void do_commit (sqlite3 * sqlite, struct wfs_layer_schema *schema) { /* confirming the still pendenting SQL transaction */ char *errMsg = NULL; sqlite3_finalize (schema->stmt); schema->stmt = NULL; if (sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg) != SQLITE_OK) { spatialite_e ("loadwfs: COMMIT error:\"%s\"\n", errMsg); sqlite3_free (errMsg); schema->error = 1; } } static void do_rollback (sqlite3 * sqlite, struct wfs_layer_schema *schema) { /* invalidating the still pending SQL transaction */ char *errMsg = NULL; sqlite3_finalize (schema->stmt); schema->stmt = NULL; if (sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, &errMsg) != SQLITE_OK) { spatialite_e ("loadwfs: ROLLBACK error:\"%s\"\n", errMsg); sqlite3_free (errMsg); schema->error = 1; } } SPATIALITE_DECLARE int load_from_wfs (sqlite3 * sqlite, const char *path_or_url, const char *alt_describe_uri, const char *layer_name, int swap_axes, const char *table, const char *pk_column_name, int spatial_index, int *rows, char **err_msg, void (*progress_callback) (int, void *), void *callback_ptr) { /* attempting to load data from some WFS source [not-paged] */ return load_from_wfs_paged (sqlite, path_or_url, alt_describe_uri, layer_name, swap_axes, table, pk_column_name, spatial_index, -1, rows, err_msg, progress_callback, callback_ptr); } static int test_wfs_paging (const char *path_or_url, int page_size, xmlNodePtr node, struct wfs_layer_schema *schema, int *shift_index) { /* testing if the server does actually supports STARTINDEX */ xmlDocPtr xml_doc = NULL; xmlNodePtr root; char *page_url; int nRows = 0; struct wfs_feature *feature_1 = create_feature (schema); struct wfs_feature *feature_2 = create_feature (schema); *shift_index = 0; parse_wfs_last_feature (node, schema, feature_1, &nRows); if (nRows < page_size) { /* a single page is required: this means no-paging at all */ free_feature (feature_1); return 1; } /* loading the feature to be tested */ page_url = sqlite3_mprintf ("%s&maxFeatures=1&startIndex=%d", path_or_url, page_size - 1); xml_doc = xmlReadFile (page_url, NULL, 0); sqlite3_free (page_url); if (xml_doc == NULL) goto error; /* parsing the WFS payload */ root = xmlDocGetRootElement (xml_doc); nRows = 0; parse_wfs_last_feature (root, schema, feature_2, &nRows); if (!compare_features (feature_1, feature_2)) { reset_feature (feature_2); if (xml_doc != NULL) xmlFreeDoc (xml_doc); goto second_chance; } free_feature (feature_1); free_feature (feature_2); if (xml_doc != NULL) xmlFreeDoc (xml_doc); return 1; /* for some MapServer version the first Index is 1, not 0 */ second_chance: page_url = sqlite3_mprintf ("%s&maxFeatures=1&startIndex=%d", path_or_url, page_size); xml_doc = xmlReadFile (page_url, NULL, 0); sqlite3_free (page_url); if (xml_doc == NULL) goto error; /* parsing the WFS payload */ root = xmlDocGetRootElement (xml_doc); nRows = 0; parse_wfs_last_feature (root, schema, feature_2, &nRows); if (!compare_features (feature_1, feature_2)) goto error; free_feature (feature_1); free_feature (feature_2); if (xml_doc != NULL) xmlFreeDoc (xml_doc); *shift_index = 1; return 1; error: free_feature (feature_1); free_feature (feature_2); if (xml_doc != NULL) xmlFreeDoc (xml_doc); return 0; } static void do_adjust_geoms (sqlite3 * sqlite, const char *table, const char *geometry, int type, int cast_type, int cast_dims) { /* final adjustement for GeometryType and dims */ char *errMsg = NULL; char *xtable; char *xgeom; char *xopen; char *xclose; char *sql; int ret; int dims; int metadata_version = checkSpatialMetaData (sqlite); /* starting a transaction */ if (sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg) != SQLITE_OK) { spatialite_e ("loadwfs: BEGIN error:\"%s\"\n", errMsg); sqlite3_free (errMsg); } if (cast_type || cast_dims) { xtable = gaiaDoubleQuotedSql (table); xgeom = gaiaDoubleQuotedSql (geometry); /* settting the dimension model */ switch (type) { case GAIA_POINT: case GAIA_LINESTRING: case GAIA_POLYGON: case GAIA_MULTIPOINT: case GAIA_MULTILINESTRING: case GAIA_MULTIPOLYGON: case GAIA_GEOMETRYCOLLECTION: dims = GAIA_XY; break; case GAIA_POINTZ: case GAIA_LINESTRINGZ: case GAIA_POLYGONZ: case GAIA_MULTIPOINTZ: case GAIA_MULTILINESTRINGZ: case GAIA_MULTIPOLYGONZ: case GAIA_GEOMETRYCOLLECTIONZ: dims = GAIA_XY_Z; break; case GAIA_POINTM: case GAIA_LINESTRINGM: case GAIA_POLYGONM: case GAIA_MULTIPOINTM: case GAIA_MULTILINESTRINGM: case GAIA_MULTIPOLYGONM: case GAIA_GEOMETRYCOLLECTIONM: dims = GAIA_XY_M; break; case GAIA_POINTZM: case GAIA_LINESTRINGZM: case GAIA_POLYGONZM: case GAIA_MULTIPOINTZM: case GAIA_MULTILINESTRINGZM: case GAIA_MULTIPOLYGONZM: case GAIA_GEOMETRYCOLLECTIONZM: dims = GAIA_XY_Z_M; break; }; /*preparing the SQL UPDATE statement */ switch (type) { case GAIA_POINT: case GAIA_POINTZ: case GAIA_POINTM: case GAIA_POINTZM: if (cast_type && !cast_dims) { xopen = "CastToPoint("; xclose = ")"; } else if (!cast_type && cast_dims) { switch (dims) { case GAIA_XY: xopen = "CastToXY("; xclose = ")"; break; case GAIA_XY_Z: xopen = "CastToXYZ("; xclose = ")"; break; case GAIA_XY_M: xopen = "CastToXYM("; xclose = ")"; break; case GAIA_XY_Z_M: xopen = "CastToXYZM("; xclose = ")"; break; }; } else { switch (dims) { case GAIA_XY: xopen = "CastToPoint(CastToXY("; xclose = "))"; break; case GAIA_XY_Z: xopen = "CastToPoint(CastToXYZ("; xclose = "))"; break; case GAIA_XY_M: xopen = "CastToPoint(CastToXYM("; xclose = "))"; break; case GAIA_XY_Z_M: xopen = "CastToPoint(CastToXYZM("; xclose = "))"; break; }; } break; case GAIA_LINESTRING: case GAIA_LINESTRINGZ: case GAIA_LINESTRINGM: case GAIA_LINESTRINGZM: if (cast_type && !cast_dims) { xopen = "CastToLinestring("; xclose = ")"; } else if (!cast_type && cast_dims) { switch (dims) { case GAIA_XY: xopen = "CastToXY("; xclose = ")"; break; case GAIA_XY_Z: xopen = "CastToXYZ("; xclose = ")"; break; case GAIA_XY_M: xopen = "CastToXYM("; xclose = ")"; break; case GAIA_XY_Z_M: xopen = "CastToXYZM("; xclose = ")"; break; }; } else { switch (dims) { case GAIA_XY: xopen = "CastToLinestring(CastToXY("; xclose = "))"; break; case GAIA_XY_Z: xopen = "CastToLinestring(CastToXYZ("; xclose = "))"; break; case GAIA_XY_M: xopen = "CastToLinestring(CastToXYM("; xclose = "))"; break; case GAIA_XY_Z_M: xopen = "CastToLinestring(CastToXYZM("; xclose = "))"; break; }; } break; case GAIA_POLYGON: case GAIA_POLYGONZ: case GAIA_POLYGONM: case GAIA_POLYGONZM: if (cast_type && !cast_dims) { xopen = "CastToPolygon("; xclose = ")"; } else if (!cast_type && cast_dims) { switch (dims) { case GAIA_XY: xopen = "CastToXY("; xclose = ")"; break; case GAIA_XY_Z: xopen = "CastToXYZ("; xclose = ")"; break; case GAIA_XY_M: xopen = "CastToXYM("; xclose = ")"; break; case GAIA_XY_Z_M: xopen = "CastToXYZM("; xclose = ")"; break; }; } else { switch (dims) { case GAIA_XY: xopen = "CastToPolygon(CastToXY("; xclose = "))"; break; case GAIA_XY_Z: xopen = "CastToPolygon(CastToXYZ("; xclose = "))"; break; case GAIA_XY_M: xopen = "CastToPolygon(CastToXYM("; xclose = "))"; break; case GAIA_XY_Z_M: xopen = "CastToPolygon(CastToXYZM("; xclose = "))"; break; }; } break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: if (cast_type && !cast_dims) { xopen = "CastToMultiPoint("; xclose = ")"; } else if (!cast_type && cast_dims) { switch (dims) { case GAIA_XY: xopen = "CastToXY("; xclose = ")"; break; case GAIA_XY_Z: xopen = "CastToXYZ("; xclose = ")"; break; case GAIA_XY_M: xopen = "CastToXYM("; xclose = ")"; break; case GAIA_XY_Z_M: xopen = "CastToXYZM("; xclose = ")"; break; }; } else { switch (dims) { case GAIA_XY: xopen = "CastToMultiPoint(CastToXY("; xclose = "))"; break; case GAIA_XY_Z: xopen = "CastToMultiPoint(CastToXYZ("; xclose = "))"; break; case GAIA_XY_M: xopen = "CastToMultiPoint(CastToXYM("; xclose = "))"; break; case GAIA_XY_Z_M: xopen = "CastToMultiPoint(CastToXYZM("; xclose = "))"; break; }; } break; case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: if (cast_type && !cast_dims) { xopen = "CastToMultiLinestring("; xclose = ")"; } else if (!cast_type && cast_dims) { switch (dims) { case GAIA_XY: xopen = "CastToXY("; xclose = ")"; break; case GAIA_XY_Z: xopen = "CastToXYZ("; xclose = ")"; break; case GAIA_XY_M: xopen = "CastToXYM("; xclose = ")"; break; case GAIA_XY_Z_M: xopen = "CastToXYZM("; xclose = ")"; break; }; } else { switch (dims) { case GAIA_XY: xopen = "CastToMultiLinestring(CastToXY("; xclose = "))"; break; case GAIA_XY_Z: xopen = "CastToMultiLinestring(CastToXYZ("; xclose = "))"; break; case GAIA_XY_M: xopen = "CastToMultiLinestring(CastToXYM("; xclose = "))"; break; case GAIA_XY_Z_M: xopen = "CastToMultiLinestring(CastToXYZM("; xclose = "))"; break; }; } break; case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: if (cast_type && !cast_dims) { xopen = "CastToMultiPolygon("; xclose = ")"; } else if (!cast_type && cast_dims) { switch (dims) { case GAIA_XY: xopen = "CastToXY("; xclose = ")"; break; case GAIA_XY_Z: xopen = "CastToXYZ("; xclose = ")"; break; case GAIA_XY_M: xopen = "CastToXYM("; xclose = ")"; break; case GAIA_XY_Z_M: xopen = "CastToXYZM("; xclose = ")"; break; }; } else { switch (dims) { case GAIA_XY: xopen = "CastToMultiPolygon(CastToXY("; xclose = "))"; break; case GAIA_XY_Z: xopen = "CastToMultiPolygon(CastToXYZ("; xclose = "))"; break; case GAIA_XY_M: xopen = "CastToMultiPolygon(CastToXYM("; xclose = "))"; break; case GAIA_XY_Z_M: xopen = "CastToMultiPolygon(CastToXYZM("; xclose = "))"; break; }; } break; case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: if (cast_type && !cast_dims) { xopen = "CastToGeometryCollection("; xclose = ")"; } else if (!cast_type && cast_dims) { switch (dims) { case GAIA_XY: xopen = "CastToXY("; xclose = ")"; break; case GAIA_XY_Z: xopen = "CastToXYZ("; xclose = ")"; break; case GAIA_XY_M: xopen = "CastToXYM("; xclose = ")"; break; case GAIA_XY_Z_M: xopen = "CastToXYZM("; xclose = ")"; break; }; } else { switch (dims) { case GAIA_XY: xopen = "CastToGeometryCollection(CastToXY("; xclose = "))"; break; case GAIA_XY_Z: xopen = "CastToGeometryCollection(CastToXYZ("; xclose = "))"; break; case GAIA_XY_M: xopen = "CastToGeometryCollection(CastToXYM("; xclose = "))"; break; case GAIA_XY_Z_M: xopen = "CastToGeometryCollection(CastToXYZM("; xclose = "))"; break; }; } break; }; sql = sqlite3_mprintf ("UPDATE \"%s\" SET \"%s\" = %s\"%s\"%s", xtable, xgeom, xopen, xgeom, xclose); free (xtable); free (xgeom); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("loadwfs: UPDATE-GEOMS error:\"%s\"\n", errMsg); sqlite3_free (errMsg); } } /* adjusting GeometryColumns */ if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ const char *pType; const char *pDims; switch (type) { case GAIA_POINT: case GAIA_POINTZ: case GAIA_POINTM: case GAIA_POINTZM: pType = "POINT"; break; case GAIA_LINESTRING: case GAIA_LINESTRINGZ: case GAIA_LINESTRINGM: case GAIA_LINESTRINGZM: pType = "LINESTRING"; break; case GAIA_POLYGON: case GAIA_POLYGONZ: case GAIA_POLYGONM: case GAIA_POLYGONZM: pType = "POLYGON"; break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: pType = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: pType = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: pType = "MULTIPOLYGON"; break; case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: pType = "GEOMETRYCOLLECTION"; break; }; switch (dims) { case GAIA_XY: pDims = "XY"; break; case GAIA_XY_Z: pDims = "XYZ"; break; case GAIA_XY_M: pDims = "XYM"; break; case GAIA_XY_Z_M: pDims = "XYZM"; break; }; sql = sqlite3_mprintf ("UPDATE geometry_columns SET type = %Q, " "coord_dimension = %Q WHERE Lower(f_table_name) = Lower(%Q) " "AND Lower(f_geometry_column) = Lower(%Q)", pType, pDims, table, geometry); } else { /* current metadata style >= v.4.0.0 */ int nType = 0; int nDims = 2; switch (type) { case GAIA_POINT: nType = 1; break; case GAIA_POINTZ: nType = 1001; break; case GAIA_POINTM: nType = 2001; break; case GAIA_POINTZM: nType = 3001; break; case GAIA_LINESTRING: nType = 2; break; case GAIA_LINESTRINGZ: nType = 1002; break; case GAIA_LINESTRINGM: nType = 2002; break; case GAIA_LINESTRINGZM: nType = 3002; break; case GAIA_POLYGON: nType = 3; break; case GAIA_POLYGONZ: nType = 1003; break; case GAIA_POLYGONM: nType = 2003; break; case GAIA_POLYGONZM: nType = 3003; break; case GAIA_MULTIPOINT: nType = 4; break; case GAIA_MULTIPOINTZ: nType = 1004; break; case GAIA_MULTIPOINTM: nType = 2004; case GAIA_MULTIPOINTZM: nType = 3004; break; case GAIA_MULTILINESTRING: nType = 5; break; case GAIA_MULTILINESTRINGZ: nType = 1005; break; case GAIA_MULTILINESTRINGM: nType = 2005; case GAIA_MULTILINESTRINGZM: nType = 3005; break; case GAIA_MULTIPOLYGON: nType = 6; break; case GAIA_MULTIPOLYGONZ: nType = 1006; break; case GAIA_MULTIPOLYGONM: nType = 2006; break; case GAIA_MULTIPOLYGONZM: nType = 3006; break; case GAIA_GEOMETRYCOLLECTION: nType = 7; break; case GAIA_GEOMETRYCOLLECTIONZ: nType = 1007; break; case GAIA_GEOMETRYCOLLECTIONM: nType = 2007; break; case GAIA_GEOMETRYCOLLECTIONZM: nType = 3007; break; }; switch (dims) { case GAIA_XY: nDims = 2; break; case GAIA_XY_Z: case GAIA_XY_M: nDims = 3; break; case GAIA_XY_Z_M: nDims = 4; break; }; sql = sqlite3_mprintf ("UPDATE geometry_columns SET geometry_type = %d, " "coord_dimension = %d WHERE Lower(f_table_name) = Lower(%Q) " "AND Lower(f_geometry_column) = Lower(%Q)", nType, nDims, table, geometry); } ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("loadwfs: UPDATE-GEOMS error:\"%s\"\n", errMsg); sqlite3_free (errMsg); } /* confirming the still pendenting SQL transaction */ if (sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg) != SQLITE_OK) { spatialite_e ("loadwfs: COMMIT error:\"%s\"\n", errMsg); sqlite3_free (errMsg); } } SPATIALITE_DECLARE int load_from_wfs_paged (sqlite3 * sqlite, const char *path_or_url, const char *alt_describe_uri, const char *layer_name, int swap_axes, const char *table, const char *pk_column_name, int spatial_index, int page_size, int *rows, char **err_msg, void (*progress_callback) (int, void *), void *callback_ptr) { /* attempting to load data from some WFS source [paged]*/ xmlDocPtr xml_doc = NULL; xmlNodePtr root; struct wfs_layer_schema *schema = NULL; int len; int ret; char *describe_uri = NULL; gaiaOutBuffer errBuf; int ok = 0; int sniffed = 0; int pageNo = 0; int startIdx = 0; int nRows; char *page_url = NULL; const char *p_page_url; int shift_index; xmlGenericErrorFunc parsingError = (xmlGenericErrorFunc) wfsParsingError; *rows = 0; if (err_msg != NULL) *err_msg = NULL; if (path_or_url == NULL) return 0; while (1) { if (page_size <= 0) p_page_url = path_or_url; else { page_url = sqlite3_mprintf ("%s&maxFeatures=%d&startIndex=%d", path_or_url, page_size, startIdx); p_page_url = page_url; } /* loading the WFS payload from URL (or file) */ gaiaOutBufferInitialize (&errBuf); xmlSetGenericErrorFunc (&errBuf, parsingError); xml_doc = xmlReadFile (p_page_url, NULL, 0); if (page_url != NULL) sqlite3_free (page_url); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ if (errBuf.Buffer != NULL && err_msg != NULL) { len = strlen (errBuf.Buffer); *err_msg = malloc (len + 1); strcpy (*err_msg, errBuf.Buffer); } goto end; } if (pageNo == 0) { if (alt_describe_uri != NULL) { /* using the DescribetFeatureType URI from GetCapabilities */ len = strlen (alt_describe_uri); describe_uri = malloc (len + 1); strcpy (describe_uri, alt_describe_uri); ret = 1; } else { /* attempting to extract the DescribeFeatureType from the GetFeature document */ ret = get_DescribeFeatureType_uri (xml_doc, &describe_uri); } if (ret == 0) { const char *msg = "Unable to retrieve the DescribeFeatureType URI"; if (err_msg != NULL) { len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); } goto end; } /* loading and parsing the WFS schema */ schema = load_wfs_schema (describe_uri, layer_name, swap_axes, err_msg); if (schema == NULL) goto end; /* creating the output table */ root = xmlDocGetRootElement (xml_doc); sniffed = 0; sniff_geometries (root, schema, &sniffed); if (page_size > 0) { /* testing if the server does actually support STARTINDEX */ root = xmlDocGetRootElement (xml_doc); if (!test_wfs_paging (path_or_url, page_size, root, schema, &shift_index)) { const char *err = "loawfs: the WFS server doesn't seem to support STARTINDEX\n" "and consequently WFS paging is not available"; if (err_msg != NULL) { len = strlen (err); *err_msg = malloc (len + 1); strcpy (*err_msg, err); } goto end; } startIdx += shift_index; } if (!prepare_sql (sqlite, schema, table, pk_column_name, spatial_index, err_msg)) goto end; } /* parsing the WFS payload */ root = xmlDocGetRootElement (xml_doc); nRows = 0; parse_wfs_features (root, schema, &nRows, err_msg); *rows += nRows; if (progress_callback != NULL) { /* invoking the progress callback */ int ext_rows = *rows; progress_callback (ext_rows, callback_ptr); } if (schema->error) { *rows = 0; do_rollback (sqlite, schema); } else { if (page_size > 0 && nRows >= page_size) restart_transaction (sqlite); else do_commit (sqlite, schema); } if (schema->error) { *rows = 0; goto end; } if (page_size <= 0) break; if (nRows < page_size) break; if (xml_doc != NULL) xmlFreeDoc (xml_doc); xml_doc = NULL; pageNo++; startIdx += nRows; } if (schema->geometry_type == GAIA_GEOMETRYCOLLECTION) { /* attempting to set a more precise GeometryType */ int type; int cast_type; int cast_dims; if (check_real_type (schema, &type, &cast_type, &cast_dims)) { do_adjust_geoms (sqlite, table, schema->geometry_name, type, cast_type, cast_dims); } } ok = 1; end: if (schema != NULL) free_wfs_layer_schema (schema); if (describe_uri != NULL) free (describe_uri); gaiaOutBufferReset (&errBuf); xmlSetGenericErrorFunc ((void *) stderr, NULL); if (xml_doc != NULL) xmlFreeDoc (xml_doc); return ok; } static void parse_keyword (xmlNodePtr node, struct wfs_catalog *catalog) { /* parsing WFS values */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) cur_node->name, "Keyword") == 0) { xmlNodePtr child_node = cur_node->children; if (child_node != NULL) { if (child_node->type == XML_TEXT_NODE) { struct wfs_layer_def *lyr = catalog->last; add_wfs_keyword_to_layer (lyr, (const char *) (child_node-> content)); } } } } } } static void parse_keyword_string (char *in, struct wfs_catalog *catalog) { /* parsing WFS from within a comma delimited string */ struct wfs_layer_def *lyr = catalog->last; int len = strlen (in); char *end = in + len; char *base = in; while (base < end) { char *p = base; while (p <= end) { if (*p == ',' || *p == '\0') { const char *start; *p = '\0'; start = base; while (*start == ' ' || *start == '\t' || *start == '\n' || *start == '\r') start++; add_wfs_keyword_to_layer (lyr, start); p++; base = p; break; } p++; } } } static void parse_keywords (xmlNodePtr node, struct wfs_catalog *catalog) { /* parsing the WFS Keywords */ if (node != NULL) { parse_keyword (node, catalog); if (node->type == XML_TEXT_NODE) { int len = strlen ((const char *) (node->content)); char *string = malloc (len + 1); strcpy (string, (const char *) (node->content)); parse_keyword_string (string, catalog); free (string); } } } static void parse_wfs_layer (xmlNodePtr node, struct wfs_catalog *catalog) { /* parsing a WFS layer definition (GetCapabilities/FeatureType) */ xmlNodePtr cur_node = NULL; xmlNodePtr child_node = NULL; const char *name = NULL; const char *title = NULL; const char *abstract = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "Name") == 0) { child_node = cur_node->children; if (child_node != NULL) { if (child_node->type == XML_TEXT_NODE) name = (const char *) (child_node->content); } } if (strcmp ((const char *) (cur_node->name), "Title") == 0) { child_node = cur_node->children; if (child_node != NULL) { if (child_node->type == XML_TEXT_NODE) title = (const char *) (child_node->content); } } if (strcmp ((const char *) (cur_node->name), "Abstract") == 0) { child_node = cur_node->children; if (child_node != NULL) { if (child_node->type == XML_TEXT_NODE) abstract = (const char *) (child_node->content); } } } } if (name != NULL) { add_wfs_layer_to_catalog (catalog, name, title, abstract); for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "SRS") == 0 || strcmp ((const char *) (cur_node->name), "DefaultSRS") == 0 || strcmp ((const char *) (cur_node->name), "OtherSRS") == 0 || strcmp ((const char *) (cur_node->name), "DefaultCRS") == 0 || strcmp ((const char *) (cur_node->name), "OtherCRS") == 0) { int srid = parse_srsname (cur_node->children); if (srid > 0) { struct wfs_layer_def *lyr = catalog->last; add_wfs_srid_to_layer (lyr, srid, (const char *) (cur_node->children-> content)); } } if (strcmp ((const char *) (cur_node->name), "Keywords") == 0) parse_keywords (cur_node->children, catalog); } } } } static void parse_wfs_get_100 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) { /* attempting to find the GetFeature base-URL (WFS 1.0.0) */ struct _xmlAttr *attr = node->properties; while (attr != NULL) { if (attr->name != NULL) { if (strcmp ((const char *) (attr->name), "onlineResource") == 0) { xmlNodePtr text = attr->children; if (text != NULL) { if (text->type == XML_TEXT_NODE) { if (mode) set_wfs_catalog_base_request_url (catalog, (const char *) (text-> content)); else set_wfs_catalog_base_describe_url (catalog, (const char *) (text->content)); } } } } attr = attr->next; } } static void parse_wfs_http_100 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) { /* attempting to find the GetFeature base-URL (WFS 1.0.0) */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "Get") == 0) parse_wfs_get_100 (cur_node, catalog, mode); } } } static void parse_wfs_dcptype_100 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) { /* attempting to find the GetFeature base-URL (WFS 1.0.0) */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "HTTP") == 0) parse_wfs_http_100 (cur_node->children, catalog, mode); } } } static void parse_wfs_getfeature_100 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) { /* attempting to find the GetFeature base-URL (WFS 1.0.0) */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "DCPType") == 0) parse_wfs_dcptype_100 (cur_node->children, catalog, mode); } } } static void parse_wfs_request_100 (xmlNodePtr node, struct wfs_catalog *catalog) { /* attempting to find the GetFeature base-URL (WFS 1.0.0) */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "GetFeature") == 0) parse_wfs_getfeature_100 (cur_node->children, catalog, 1); if (strcmp ((const char *) (cur_node->name), "DescribeFeatureType") == 0) parse_wfs_getfeature_100 (cur_node->children, catalog, 0); } } } static void parse_wfs_base_url_100 (xmlNodePtr node, struct wfs_catalog *catalog) { /* attempting to find the GetFeature base-URL (WFS 1.0.0) */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "Request") == 0) parse_wfs_request_100 (cur_node->children, catalog); } } } static void parse_wfs_get_110 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) { /* attempting to find the GetFeature base-URL (WFS 1.1.0) */ struct _xmlAttr *attr = node->properties; while (attr != NULL) { if (attr->name != NULL) { if (strcmp ((const char *) (attr->name), "href") == 0) { xmlNodePtr text = attr->children; if (text != NULL) { if (text->type == XML_TEXT_NODE) { if (mode) set_wfs_catalog_base_request_url (catalog, (const char *) (text-> content)); else set_wfs_catalog_base_describe_url (catalog, (const char *) (text->content)); } } } } attr = attr->next; } } static void parse_wfs_http_110 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) { /* attempting to find the GetFeature base-URL (WFS 1.1.0) */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "Get") == 0) parse_wfs_get_110 (cur_node, catalog, mode); } } } static void parse_wfs_dcp_110 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) { /* attempting to find the GetFeature base-URL (WFS 1.1.0) */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "HTTP") == 0) parse_wfs_http_110 (cur_node->children, catalog, mode); } } } static void parse_wfs_getfeature_110 (xmlNodePtr node, struct wfs_catalog *catalog, int mode) { /* attempting to find the GetFeature base-URL (WFS 1.1.0) */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "DCP") == 0) parse_wfs_dcp_110 (cur_node->children, catalog, mode); } } } static void parse_wfs_operation_110 (xmlNodePtr node, struct wfs_catalog *catalog) { /* attempting to find the GetFeature base-URL (WFS 1.1.0) */ struct _xmlAttr *attr = node->properties; while (attr != NULL) { if (attr->name != NULL) { if (strcmp ((const char *) (attr->name), "name") == 0) { xmlNodePtr text = attr->children; if (text != NULL) { if (text->type == XML_TEXT_NODE) { if (strcmp ((const char *) (text->content), "GetFeature") == 0) parse_wfs_getfeature_110 (node->children, catalog, 1); if (strcmp ((const char *) (text->content), "DescribeFeatureType") == 0) parse_wfs_getfeature_110 (node->children, catalog, 0); } } } } attr = attr->next; } } static void parse_wfs_base_url_110 (xmlNodePtr node, struct wfs_catalog *catalog) { /* attempting to find the GetFeature base-URL (WFS 1.1.0) */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "Operation") == 0) { parse_wfs_operation_110 (cur_node, catalog); } } } } static void parse_wfs_version (xmlNodePtr node, struct wfs_catalog *catalog) { /* parsing the WFS version from GetCapabilities */ struct _xmlAttr *attr = node->properties; const char *version = NULL; while (attr != NULL) { if (attr->name != NULL) { if (strcmp ((const char *) (attr->name), "version") == 0) { version = parse_attribute_name (attr->children); set_wfs_version (catalog, version); } } attr = attr->next; } } static void parse_wfs_catalog (xmlNodePtr node, struct wfs_catalog *catalog, int *capabilities, int *list) { /* recursively parsing the GetCapabilities payload */ xmlNodePtr cur_node = NULL; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "WFS_Capabilities") == 0) { *capabilities = 1; parse_wfs_version (cur_node, catalog); } if (*capabilities != 0 && strcmp ((const char *) (cur_node->name), "FeatureTypeList") == 0) *list = 1; if (*capabilities != 0 && *list == 0 && strcmp ((const char *) (cur_node->name), "Capability") == 0) parse_wfs_base_url_100 (cur_node->children, catalog); if (*capabilities != 0 && *list == 0 && strcmp ((const char *) (cur_node->name), "OperationsMetadata") == 0) parse_wfs_base_url_110 (cur_node->children, catalog); if (*list != 0 && strcmp ((const char *) (cur_node->name), "FeatureType") == 0) parse_wfs_layer (cur_node->children, catalog); else parse_wfs_catalog (cur_node->children, catalog, capabilities, list); if (*capabilities != 0 && strcmp ((const char *) (cur_node->name), "FeatureTypeList") == 0) *list = 0; if (strcmp ((const char *) (cur_node->name), "WFS_Capabilities") == 0) *capabilities = 0; } } } SPATIALITE_DECLARE gaiaWFScatalogPtr create_wfs_catalog (const char *path_or_url, char **err_msg) { /* attempting to get and parse a WFS GetCapabilities request */ xmlDocPtr xml_doc = NULL; xmlNodePtr root; struct wfs_catalog *catalog = NULL; int len; int capabilities = 0; int list = 0; gaiaOutBuffer errBuf; xmlGenericErrorFunc parsingError = (xmlGenericErrorFunc) wfsParsingError; if (err_msg != NULL) *err_msg = NULL; if (path_or_url == NULL) return 0; /* loading the WFS GetCapabilities from URL (or file) */ gaiaOutBufferInitialize (&errBuf); xmlSetGenericErrorFunc (&errBuf, parsingError); xml_doc = xmlReadFile (path_or_url, NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ if (errBuf.Buffer != NULL && err_msg != NULL) { len = strlen (errBuf.Buffer); *err_msg = malloc (len + 1); strcpy (*err_msg, errBuf.Buffer); } goto end; } /* parsing the WFS payload */ catalog = alloc_wfs_catalog (); root = xmlDocGetRootElement (xml_doc); parse_wfs_catalog (root, catalog, &capabilities, &list); if (get_wfs_catalog_count ((gaiaWFScatalogPtr) catalog) <= 0) { free_wfs_catalog (catalog); catalog = NULL; goto end; } end: gaiaOutBufferReset (&errBuf); xmlSetGenericErrorFunc ((void *) stderr, NULL); if (xml_doc != NULL) xmlFreeDoc (xml_doc); return (gaiaWFScatalogPtr) catalog; } SPATIALITE_DECLARE void destroy_wfs_catalog (gaiaWFScatalogPtr handle) { /* memory cleanup: freeing a WFS-Catalog object */ struct wfs_catalog *ptr = (struct wfs_catalog *) handle; if (ptr == NULL) return; free_wfs_catalog (ptr); } SPATIALITE_DECLARE const char * get_wfs_version (gaiaWFScatalogPtr handle) { /* return the WFS-Version returned by GetCapabilities */ struct wfs_catalog *ptr = (struct wfs_catalog *) handle; if (ptr == NULL) return NULL; return ptr->version; } SPATIALITE_DECLARE const char * get_wfs_base_request_url (gaiaWFScatalogPtr handle) { /* return the base URL for any WFS-GetFeature call */ struct wfs_catalog *ptr = (struct wfs_catalog *) handle; if (ptr == NULL) return NULL; return ptr->request_url; } SPATIALITE_DECLARE const char * get_wfs_base_describe_url (gaiaWFScatalogPtr handle) { /* return the base URL for any WFS-DescribeFeatureType call */ struct wfs_catalog *ptr = (struct wfs_catalog *) handle; if (ptr == NULL) return NULL; return ptr->describe_url; } SPATIALITE_DECLARE int get_wfs_catalog_count (gaiaWFScatalogPtr handle) { /* counting how many layers are defined within a WFS-Catalog */ int count = 0; struct wfs_layer_def *lyr; struct wfs_catalog *ptr = (struct wfs_catalog *) handle; if (ptr == NULL) return -1; lyr = ptr->first; while (lyr != NULL) { count++; lyr = lyr->next; } return count; } SPATIALITE_DECLARE gaiaWFSitemPtr get_wfs_catalog_item (gaiaWFScatalogPtr handle, int index) { /* attempting to get a reference to some WFS-Layer object */ int count = 0; struct wfs_layer_def *lyr; struct wfs_catalog *ptr = (struct wfs_catalog *) handle; if (ptr == NULL) return NULL; lyr = ptr->first; while (lyr != NULL) { if (count == index) return (gaiaWFSitemPtr) lyr; count++; lyr = lyr->next; } return NULL; } SPATIALITE_DECLARE const char * get_wfs_item_name (gaiaWFSitemPtr handle) { /* return the name corresponding to a WFS-Layer object */ struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; if (ptr == NULL) return NULL; return ptr->name; } SPATIALITE_DECLARE const char * get_wfs_item_title (gaiaWFSitemPtr handle) { /* return the title corresponding to a WFS-Layer object */ struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; if (ptr == NULL) return NULL; return ptr->title; } SPATIALITE_DECLARE const char * get_wfs_item_abstract (gaiaWFSitemPtr handle) { /* return the abstract corresponding to a WFS-Layer object */ struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; if (ptr == NULL) return NULL; return ptr->abstract; } SPATIALITE_DECLARE int get_wfs_layer_srid_count (gaiaWFSitemPtr handle) { /* counting how many SRIDs are supported by a WFS-Layer */ int count = 0; struct wfs_srid_def *srid; struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; if (ptr == NULL) return -1; srid = ptr->first_srid; while (srid != NULL) { count++; srid = srid->next; } return count; } SPATIALITE_DECLARE int get_wfs_layer_srid (gaiaWFSitemPtr handle, int index) { /* attempting to get the Nth SRID supported by some WFS-Layer object */ int count = 0; struct wfs_srid_def *srid; struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; if (ptr == NULL) return -1; srid = ptr->first_srid; while (srid != NULL) { if (count == index) return srid->srid; count++; srid = srid->next; } return -1; } SPATIALITE_DECLARE int get_wfs_keyword_count (gaiaWFSitemPtr handle) { /* counting how many Keywords are supported by a WFS-Layer */ int count = 0; struct wfs_keyword *key; struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; if (ptr == NULL) return -1; key = ptr->first_key; while (key != NULL) { count++; key = key->next; } return count; } SPATIALITE_DECLARE const char * get_wfs_keyword (gaiaWFSitemPtr handle, int index) { /* attempting to get the Nth Keyword supported by some WFS-Layer object */ int count = 0; struct wfs_keyword *key; struct wfs_layer_def *ptr = (struct wfs_layer_def *) handle; if (ptr == NULL) return NULL; key = ptr->first_key; while (key != NULL) { if (count == index) return key->keyword; count++; key = key->next; } return NULL; } static char * build_request_url (struct wfs_catalog *ptr, struct wfs_layer_def *lyr, const char *version, int srid, int max_features) { /* creating the request URL */ char *url; char *url2; const char *srs_name = NULL; int len; const char *ver = "1.1.0"; if (ptr->request_url == NULL) return NULL; if (version != NULL) { if (strcmp (version, "1.0.0") == 0) ver = "1.0.0"; if (strcmp (version, "2.0.0") == 0) ver = "2.0.0"; if (strcmp (version, "2.0.2") == 0) ver = "2.0.2"; } if (srid > 0) { struct wfs_srid_def *srs = lyr->first_srid; while (srs != NULL) { if (srs->srid == srid) { /* found the required SRS definition */ srs_name = srs->srs_name; break; } srs = srs->next; } } if (max_features <= 0) { if (srs_name == NULL) url = sqlite3_mprintf ("%sservice=WFS&version=%s&request=GetFeature&typeName=%s", ptr->request_url, ver, lyr->name); else url = sqlite3_mprintf ("%sservice=WFS&version=%s&request=GetFeature&typeName=%s&srsName=%s", ptr->request_url, ver, lyr->name, srs_name); } else { if (srs_name == NULL) url = sqlite3_mprintf ("%sservice=WFS&version=%s&request=GetFeature&typeName=%s&maxFeatures=%d", ptr->request_url, ver, lyr->name, max_features); else url = sqlite3_mprintf ("%sservice=WFS&version=%s&request=GetFeature&typeName=%s&srsName=%s&maxFeatures=%d", ptr->request_url, ver, lyr->name, srs_name, max_features); } len = strlen (url); url2 = malloc (len + 1); strcpy (url2, url); sqlite3_free (url); return url2; } SPATIALITE_DECLARE char * get_wfs_request_url (gaiaWFScatalogPtr handle, const char *name, const char *version, int srid, int max_features) { /* attempting to format a GetFeature (GET) URL */ struct wfs_layer_def *lyr; struct wfs_catalog *ptr = (struct wfs_catalog *) handle; if (ptr == NULL) return NULL; if (name == NULL) return NULL; lyr = ptr->first; while (lyr != NULL) { if (strcmp (lyr->name, name) == 0) return build_request_url (ptr, lyr, version, srid, max_features); lyr = lyr->next; } return NULL; } static char * build_describe_url (struct wfs_catalog *ptr, struct wfs_layer_def *lyr, const char *version) { /* creating the DescribeFeatureType URL */ char *url; char *url2; int len; const char *ver = "1.1.0"; if (ptr->describe_url == NULL) return NULL; if (version != NULL) { if (strcmp (version, "1.0.0") == 0) ver = "1.0.0"; if (strcmp (version, "2.0.0") == 0) ver = "2.0.0"; if (strcmp (version, "2.0.2") == 0) ver = "2.0.2"; } url = sqlite3_mprintf ("%sservice=WFS&version=%s&request=DescribeFeatureType&typeName=%s", ptr->describe_url, ver, lyr->name); len = strlen (url); url2 = malloc (len + 1); strcpy (url2, url); sqlite3_free (url); return url2; } SPATIALITE_DECLARE char * get_wfs_describe_url (gaiaWFScatalogPtr handle, const char *name, const char *version) { /* attempting to format a DescribeFeatureType (GET) URL */ struct wfs_layer_def *lyr; struct wfs_catalog *ptr = (struct wfs_catalog *) handle; if (ptr == NULL) return NULL; if (name == NULL) return NULL; lyr = ptr->first; while (lyr != NULL) { if (strcmp (lyr->name, name) == 0) return build_describe_url (ptr, lyr, version); lyr = lyr->next; } return NULL; } SPATIALITE_DECLARE gaiaWFSschemaPtr create_wfs_schema (const char *path_or_url, const char *layer_name, char **err_msg) { /* public method: creating a WFS-Schema object */ return (gaiaWFSschemaPtr) load_wfs_schema (path_or_url, layer_name, 0, err_msg); } SPATIALITE_DECLARE void destroy_wfs_schema (gaiaWFSschemaPtr handle) { /* public metod: destroying a WFS-Schema object */ struct wfs_layer_schema *ptr = (struct wfs_layer_schema *) handle; if (ptr == NULL) return; free_wfs_layer_schema (ptr); } SPATIALITE_DECLARE int get_wfs_schema_column_count (gaiaWFSschemaPtr handle) { /* counting how many layers are defined within a WFS-Schema */ int count = 0; struct wfs_column_def *col; struct wfs_layer_schema *ptr = (struct wfs_layer_schema *) handle; if (ptr == NULL) return -1; col = ptr->first; while (col != NULL) { count++; col = col->next; } return count; } SPATIALITE_DECLARE gaiaWFScolumnPtr get_wfs_schema_column (gaiaWFSschemaPtr handle, int index) { /* attempting to get a reference to some WFS-Column object */ int count = 0; struct wfs_column_def *col; struct wfs_layer_schema *ptr = (struct wfs_layer_schema *) handle; if (ptr == NULL) return NULL; col = ptr->first; while (col != NULL) { if (count == index) return (gaiaWFScolumnPtr) col; count++; col = col->next; } return NULL; } SPATIALITE_DECLARE int get_wfs_schema_geometry_info (gaiaWFSschemaPtr handle, const char **name, int *type, int *srid, int *dims, int *nullable) { /* Return the infos describing a WFS-GeometryColumn object */ struct wfs_layer_schema *ptr = (struct wfs_layer_schema *) handle; if (ptr == NULL) return 0; if (ptr->geometry_name == NULL) return 0; *name = ptr->geometry_name; *type = ptr->geometry_type; *srid = ptr->srid; *dims = ptr->dims; *nullable = ptr->is_nullable; return 1; } SPATIALITE_DECLARE int get_wfs_schema_column_info (gaiaWFScolumnPtr handle, const char **name, int *type, int *nullable) { /* Return the infos describing a WFS-Column object */ struct wfs_column_def *ptr = (struct wfs_column_def *) handle; if (ptr == NULL) return 0; *name = ptr->name; *type = ptr->type; *nullable = ptr->is_nullable; return 1; } SPATIALITE_DECLARE void reset_wfs_http_connection (void) { /* Resets the libxml2 "nano HTTP": useful when changing the HTTP_PROXY settings */ xmlNanoHTTPCleanup (); } #else /* LIBXML2 isn't enabled */ SPATIALITE_DECLARE int load_from_wfs (sqlite3 * sqlite, const char *path_or_url, const char *alt_describe_uri, const char *layer_name, int swap_axes, const char *table, const char *pk_column_name, int spatial_index, int *rows, char **err_msg, void (*progress_callback) (int, void *), void *callback_ptr) { /* LIBXML2 isn't enabled: always returning an error */ return load_from_wfs_paged (sqlite, path_or_url, alt_describe_uri, layer_name, swap_axes, table, pk_column_name, spatial_index, -1, rows, err_msg, progress_callback, callback_ptr); } SPATIALITE_DECLARE int load_from_wfs_paged (sqlite3 * sqlite, const char *path_or_url, const char *alt_describe_uri, const char *layer_name, int swap_axes, const char *table, const char *pk_column_name, int spatial_index, int page_size, int *rows, char **err_msg, void (*progress_callback) (int, void *), void *callback_ptr) { /* LIBXML2 isn't enabled: always returning an error */ int len; const char *msg = "Sorry ... libspatialite was built disabling LIBXML2\n" "and is thus unable to support LOADWFS"; /* silencing stupid compiler warnings */ if (sqlite == NULL || path_or_url == NULL || layer_name == NULL || alt_describe_uri == NULL || swap_axes == 0 || table == NULL || pk_column_name == NULL || spatial_index == 0 || page_size == 0 || rows == NULL || progress_callback == NULL || progress_callback == NULL || callback_ptr == NULL) path_or_url = NULL; if (err_msg == NULL) return 0; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); return 0; } SPATIALITE_DECLARE gaiaWFScatalogPtr create_wfs_catalog (const char *path_or_url, char **err_msg) { /* LIBXML2 isn't enabled: always returning an error */ int len; const char *msg = "Sorry ... libspatialite was built disabling LIBXML2\n" "and is thus unable to support WFS-CATALOG"; /* silencing stupid compiler warnings */ if (path_or_url != NULL) path_or_url = NULL; if (err_msg == NULL) return 0; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); return NULL; } SPATIALITE_DECLARE void destroy_wfs_catalog (gaiaWFScatalogPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return; } SPATIALITE_DECLARE const char * get_wfs_base_request_url (gaiaWFScatalogPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return NULL; } SPATIALITE_DECLARE const char * get_wfs_base_describe_url (gaiaWFScatalogPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return NULL; } SPATIALITE_DECLARE int get_wfs_catalog_count (gaiaWFScatalogPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return -1; } SPATIALITE_DECLARE gaiaWFSitemPtr get_wfs_catalog_item (gaiaWFScatalogPtr handle, int index) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL || index < 0) handle = NULL; return NULL; } SPATIALITE_DECLARE const char * get_wfs_item_name (gaiaWFSitemPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return NULL; } SPATIALITE_DECLARE const char * get_wfs_item_title (gaiaWFSitemPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return NULL; } SPATIALITE_DECLARE const char * get_wfs_item_abstract (gaiaWFSitemPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return NULL; } SPATIALITE_DECLARE int get_wfs_layer_srid_count (gaiaWFSitemPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return -1; } SPATIALITE_DECLARE int get_wfs_layer_srid (gaiaWFSitemPtr handle, int index) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL || index < 0) handle = NULL; return -1; } SPATIALITE_DECLARE int get_wfs_keyword_count (gaiaWFSitemPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return -1; } SPATIALITE_DECLARE const char * get_wfs_keyword (gaiaWFSitemPtr handle, int index) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL || index < 0) handle = NULL; return NULL; } SPATIALITE_DECLARE char * get_wfs_request_url (gaiaWFScatalogPtr handle, const char *name, const char *version, int srid, int max_features) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL || name == NULL || version == NULL || srid == 0 || max_features == 0) handle = NULL; return NULL; } SPATIALITE_DECLARE char * get_wfs_describe_url (gaiaWFScatalogPtr handle, const char *name, const char *version) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL || name == NULL || version == NULL) handle = NULL; return NULL; } SPATIALITE_DECLARE gaiaWFSschemaPtr create_wfs_schema (const char *path_or_url, const char *layer_name, char **err_msg) { /* LIBXML2 isn't enabled: does absolutely nothing */ int len; const char *msg = "Sorry ... libspatialite was built disabling LIBXML2\n" "and is thus unable to support WFS-SCHEMA"; /* silencing stupid compiler warnings */ if (path_or_url != NULL || layer_name == NULL) path_or_url = NULL; if (err_msg == NULL) return 0; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); return NULL; } SPATIALITE_DECLARE void destroy_wfs_schema (gaiaWFSschemaPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; } SPATIALITE_DECLARE int get_wfs_schema_column_count (gaiaWFSschemaPtr handle) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL) handle = NULL; return -1; } SPATIALITE_DECLARE gaiaWFScolumnPtr get_wfs_schema_column (gaiaWFSschemaPtr handle, int index) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL || index == 0) handle = NULL; return NULL; } SPATIALITE_DECLARE int get_wfs_schema_geometry_info (gaiaWFSschemaPtr handle, const char **name, int *type, int *srid, int *dims, int *nullable) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL || name == NULL || type == NULL || srid == NULL || dims == NULL || nullable == NULL) handle = NULL; return 0; } SPATIALITE_DECLARE int get_wfs_schema_column_info (gaiaWFScolumnPtr handle, const char **name, int *type, int *nullable) { /* LIBXML2 isn't enabled: does absolutely nothing */ /* silencing stupid compiler warnings */ if (handle != NULL || name == NULL || type == NULL || nullable == NULL) handle = NULL; return 0; } SPATIALITE_DECLARE void reset_wfs_http_connection (void) { /* LIBXML2 isn't enabled: does absolutely nothing */ return; } #endif /* end LIBXML2 conditionals */ libspatialite-4.3.0a/src/dxf/0000775000175000017500000000000012573314326013066 500000000000000libspatialite-4.3.0a/src/dxf/Makefile.in0000664000175000017500000006101012573313636015054 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/dxf ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) dxf_la_LIBADD = am__objects_1 = dxf_la-dxf_parser.lo dxf_la-dxf_loader.lo \ dxf_la-dxf_load_distinct.lo dxf_la-dxf_load_mixed.lo \ dxf_la-dxf_writer.lo am_dxf_la_OBJECTS = $(am__objects_1) dxf_la_OBJECTS = $(am_dxf_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = dxf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(dxf_la_LDFLAGS) $(LDFLAGS) -o $@ libdxf_la_LIBADD = am__objects_2 = dxf_parser.lo dxf_loader.lo dxf_load_distinct.lo \ dxf_load_mixed.lo dxf_writer.lo am_libdxf_la_OBJECTS = $(am__objects_2) libdxf_la_OBJECTS = $(am_libdxf_la_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(dxf_la_SOURCES) $(libdxf_la_SOURCES) DIST_SOURCES = $(dxf_la_SOURCES) $(libdxf_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. noinst_HEADERS = dxf_private.h noinst_LTLIBRARIES = libdxf.la dxf.la DXF_COMMON_SOURCES = dxf_parser.c dxf_loader.c \ dxf_load_distinct.c dxf_load_mixed.c \ dxf_writer.c libdxf_la_SOURCES = $(DXF_COMMON_SOURCES) dxf_la_SOURCES = $(DXF_COMMON_SOURCES) dxf_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ -DLOADABLE_EXTENSION dxf_la_LDFLAGS = -module dxf_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/dxf/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/dxf/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } dxf.la: $(dxf_la_OBJECTS) $(dxf_la_DEPENDENCIES) $(EXTRA_dxf_la_DEPENDENCIES) $(AM_V_CCLD)$(dxf_la_LINK) $(dxf_la_OBJECTS) $(dxf_la_LIBADD) $(LIBS) libdxf.la: $(libdxf_la_OBJECTS) $(libdxf_la_DEPENDENCIES) $(EXTRA_libdxf_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) $(libdxf_la_OBJECTS) $(libdxf_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_la-dxf_load_distinct.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_la-dxf_load_mixed.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_la-dxf_loader.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_la-dxf_parser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_la-dxf_writer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_load_distinct.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_load_mixed.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_loader.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_parser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dxf_writer.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< dxf_la-dxf_parser.lo: dxf_parser.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dxf_la-dxf_parser.lo -MD -MP -MF $(DEPDIR)/dxf_la-dxf_parser.Tpo -c -o dxf_la-dxf_parser.lo `test -f 'dxf_parser.c' || echo '$(srcdir)/'`dxf_parser.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dxf_la-dxf_parser.Tpo $(DEPDIR)/dxf_la-dxf_parser.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dxf_parser.c' object='dxf_la-dxf_parser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dxf_la-dxf_parser.lo `test -f 'dxf_parser.c' || echo '$(srcdir)/'`dxf_parser.c dxf_la-dxf_loader.lo: dxf_loader.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dxf_la-dxf_loader.lo -MD -MP -MF $(DEPDIR)/dxf_la-dxf_loader.Tpo -c -o dxf_la-dxf_loader.lo `test -f 'dxf_loader.c' || echo '$(srcdir)/'`dxf_loader.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dxf_la-dxf_loader.Tpo $(DEPDIR)/dxf_la-dxf_loader.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dxf_loader.c' object='dxf_la-dxf_loader.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dxf_la-dxf_loader.lo `test -f 'dxf_loader.c' || echo '$(srcdir)/'`dxf_loader.c dxf_la-dxf_load_distinct.lo: dxf_load_distinct.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dxf_la-dxf_load_distinct.lo -MD -MP -MF $(DEPDIR)/dxf_la-dxf_load_distinct.Tpo -c -o dxf_la-dxf_load_distinct.lo `test -f 'dxf_load_distinct.c' || echo '$(srcdir)/'`dxf_load_distinct.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dxf_la-dxf_load_distinct.Tpo $(DEPDIR)/dxf_la-dxf_load_distinct.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dxf_load_distinct.c' object='dxf_la-dxf_load_distinct.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dxf_la-dxf_load_distinct.lo `test -f 'dxf_load_distinct.c' || echo '$(srcdir)/'`dxf_load_distinct.c dxf_la-dxf_load_mixed.lo: dxf_load_mixed.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dxf_la-dxf_load_mixed.lo -MD -MP -MF $(DEPDIR)/dxf_la-dxf_load_mixed.Tpo -c -o dxf_la-dxf_load_mixed.lo `test -f 'dxf_load_mixed.c' || echo '$(srcdir)/'`dxf_load_mixed.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dxf_la-dxf_load_mixed.Tpo $(DEPDIR)/dxf_la-dxf_load_mixed.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dxf_load_mixed.c' object='dxf_la-dxf_load_mixed.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dxf_la-dxf_load_mixed.lo `test -f 'dxf_load_mixed.c' || echo '$(srcdir)/'`dxf_load_mixed.c dxf_la-dxf_writer.lo: dxf_writer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dxf_la-dxf_writer.lo -MD -MP -MF $(DEPDIR)/dxf_la-dxf_writer.Tpo -c -o dxf_la-dxf_writer.lo `test -f 'dxf_writer.c' || echo '$(srcdir)/'`dxf_writer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dxf_la-dxf_writer.Tpo $(DEPDIR)/dxf_la-dxf_writer.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dxf_writer.c' object='dxf_la-dxf_writer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(dxf_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dxf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dxf_la-dxf_writer.lo `test -f 'dxf_writer.c' || echo '$(srcdir)/'`dxf_writer.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir 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-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/src/dxf/dxf_load_distinct.c0000664000175000017500000021214212544707704016641 00000000000000/* dxf_load_distinct.c -- implements DXF support [loding features into the DB - by distinct layers] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: inital development of the DXF module has been funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #include #include #include "dxf_private.h" #if defined(_WIN32) && !defined(__MINGW32__) #define strcasecmp _stricmp #endif /* not WIN32 */ static int create_layer_text_table (sqlite3 * handle, const char *name, int srid, int text3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Text-layer" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOTT NULL,\n" " layer TEXT NOT NULL,\n" " label TEXT NOT NULL,\n" " rotation DOUBLE NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'POINT', %Q)", name, srid, text3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_text_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_layer_point_table (sqlite3 * handle, const char *name, int srid, int point3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Point-layer" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOTT NULL,\n" " layer TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'POINT', %Q)", name, srid, point3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_point_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_layer_line_table (sqlite3 * handle, const char *name, int srid, int line3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Line-layer" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOTT NULL,\n" " layer TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'LINESTRING', %Q)", name, srid, line3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_line_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_layer_polyg_table (sqlite3 * handle, const char *name, int srid, int polyg3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Polyg-layer" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOTT NULL,\n" " layer TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'POLYGON', %Q)", name, srid, polyg3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_polyg_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_layer_hatch_tables (sqlite3 * handle, const char *name, int srid, sqlite3_stmt ** xstmt, sqlite3_stmt ** xstmt2) { /* attempting to create the "Hatch-layer" tables */ char *sql; int ret; sqlite3_stmt *stmt; sqlite3_stmt *stmt2; char *xname; char *fk_name; char *xfk_name; char *pattern; char *xpattern; *xstmt = NULL; *xstmt2 = NULL; /* creating the Hatch-Boundary table */ xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOTT NULL,\n" " layer TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'MULTIPOLYGON', 'XY')", name, srid); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } /* creating the Hatch-Pattern table */ xname = gaiaDoubleQuotedSql (name); pattern = sqlite3_mprintf ("%s_pattern", name); xpattern = gaiaDoubleQuotedSql (pattern); fk_name = sqlite3_mprintf ("fk_%s_pattern", name); xfk_name = gaiaDoubleQuotedSql (fk_name); sqlite3_free (fk_name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY NOT NULL,\n" " filename TEXT NOTT NULL,\n" " layer TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " " REFERENCES \"%s\" (feature_id))", xpattern, xfk_name, xname); free (xname); free (xfk_name); free (xpattern); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'MULTILINESTRING', 'XY')", pattern, srid); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", pattern); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sqlite3_free (pattern); if (!create_hatch_boundary_stmt (handle, name, &stmt)) return 0; if (!create_hatch_pattern_stmt (handle, name, &stmt2)) return 0; *xstmt = stmt; *xstmt2 = stmt2; return 1; } static int create_layer_text_extra_attr_table (sqlite3 * handle, const char *name, char *attr_name, sqlite3_stmt ** xstmt_ext) { /* attempting to create the "Text-layer-extra-attr" table */ char *sql; int ret; sqlite3_stmt *stmt_ext; char *xname; char *xattr_name; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; char *view_name; char *xview_name; *xstmt_ext = NULL; fk_name = sqlite3_mprintf ("fk_%s_attr", name); xfk_name = gaiaDoubleQuotedSql (fk_name); xattr_name = gaiaDoubleQuotedSql (attr_name); xname = gaiaDoubleQuotedSql (name); sqlite3_free (fk_name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " feature_id INTEGER NOT NULL,\n" " attr_key TEXT NOT NULL,\n" " attr_value TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " "REFERENCES \"%s\" (feature_id))", xattr_name, xfk_name, xname); free (xfk_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", attr_name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s_attr", name); xidx_name = gaiaDoubleQuotedSql (idx_name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xname); free (xidx_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view_name = sqlite3_mprintf ("%s_view", name); xview_name = gaiaDoubleQuotedSql (view_name); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT f.feature_id AS feature_id, f.layer AS layer, f.label AS label, " "f.rotation AS rotation, f.geometry AS geometry, " "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " "FROM \"%s\" AS f " "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", xview_name, xname, xattr_name); free (xview_name); free (xattr_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view_name); if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; *xstmt_ext = stmt_ext; return 1; } static int create_layer_point_extra_attr_table (sqlite3 * handle, const char *name, char *attr_name, sqlite3_stmt ** xstmt_ext) { /* attempting to create the "Point-layer-extra-attr" table */ char *sql; int ret; sqlite3_stmt *stmt_ext; char *xname; char *xattr_name; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; char *view_name; char *xview_name; *xstmt_ext = NULL; fk_name = sqlite3_mprintf ("fk_%s_attr", name); xfk_name = gaiaDoubleQuotedSql (fk_name); xattr_name = gaiaDoubleQuotedSql (attr_name); xname = gaiaDoubleQuotedSql (name); sqlite3_free (fk_name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " feature_id INTEGER NOT NULL,\n" " attr_key TEXT NOT NULL,\n" " attr_value TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " "REFERENCES \"%s\" (feature_id))", xattr_name, xfk_name, xname); free (xfk_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", attr_name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s_attr", name); xidx_name = gaiaDoubleQuotedSql (idx_name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xname); free (xidx_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view_name = sqlite3_mprintf ("%s_view", name); xview_name = gaiaDoubleQuotedSql (view_name); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT f.feature_id AS feature_id, f.layer AS layer, f.geometry AS geometry, " "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " "FROM \"%s\" AS f " "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", xview_name, xname, xattr_name); free (xview_name); free (xattr_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view_name); if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; *xstmt_ext = stmt_ext; return 1; } static int create_layer_line_extra_attr_table (sqlite3 * handle, const char *name, char *attr_name, sqlite3_stmt ** xstmt_ext) { /* attempting to create the "Line-layer-extra-attr" table */ char *sql; int ret; sqlite3_stmt *stmt_ext; char *xname; char *xattr_name; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; char *view_name; char *xview_name; *xstmt_ext = NULL; fk_name = sqlite3_mprintf ("fk_%s_attr", name); xfk_name = gaiaDoubleQuotedSql (fk_name); xattr_name = gaiaDoubleQuotedSql (attr_name); xname = gaiaDoubleQuotedSql (name); sqlite3_free (fk_name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " feature_id INTEGER NOT NULL,\n" " attr_key TEXT NOT NULL,\n" " attr_value TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " "REFERENCES \"%s\" (feature_id))", xattr_name, xfk_name, xname); free (xfk_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", attr_name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s_attr", name); xidx_name = gaiaDoubleQuotedSql (idx_name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xname); free (xidx_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view_name = sqlite3_mprintf ("%s_view", name); xview_name = gaiaDoubleQuotedSql (view_name); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT f.feature_id AS feature_id, f.layer AS layer, f.geometry AS geometry, " "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " "FROM \"%s\" AS f " "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", xview_name, xname, xattr_name); free (xview_name); free (xattr_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view_name); if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; *xstmt_ext = stmt_ext; return 1; } static int create_layer_polyg_extra_attr_table (sqlite3 * handle, const char *name, char *attr_name, sqlite3_stmt ** xstmt_ext) { /* attempting to create the "Polyg-layer-extra-attr" table */ char *sql; int ret; sqlite3_stmt *stmt_ext; char *xname; char *xattr_name; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; char *view_name; char *xview_name; *xstmt_ext = NULL; fk_name = sqlite3_mprintf ("fk_%s_attr", name); xfk_name = gaiaDoubleQuotedSql (fk_name); xattr_name = gaiaDoubleQuotedSql (attr_name); xname = gaiaDoubleQuotedSql (name); sqlite3_free (fk_name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " feature_id INTEGER NOT NULL,\n" " attr_key TEXT NOT NULL,\n" " attr_value TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " "REFERENCES \"%s\" (feature_id))", xattr_name, xfk_name, xname); free (xfk_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", attr_name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s_attr", name); xidx_name = gaiaDoubleQuotedSql (idx_name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xname); free (xidx_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view_name = sqlite3_mprintf ("%s_view", name); xview_name = gaiaDoubleQuotedSql (view_name); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT f.feature_id AS feature_id, f.layer AS layer, f.geometry AS geometry, " "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " "FROM \"%s\" AS f " "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", xview_name, xname, xattr_name); free (xview_name); free (xattr_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view_name); if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; *xstmt_ext = stmt_ext; return 1; } DXF_PRIVATE int import_by_layer (sqlite3 * handle, gaiaDxfParserPtr dxf, int append) { /* populating the target DB - by distinct layers */ int ret; sqlite3_stmt *stmt; sqlite3_stmt *stmt_ext; sqlite3_stmt *stmt_pattern; unsigned char *blob; int blob_size; gaiaGeomCollPtr geom; gaiaLinestringPtr p_ln; gaiaPolygonPtr p_pg; gaiaRingPtr p_rng; int iv; char *name; char *attr_name; char *block; gaiaDxfTextPtr txt; gaiaDxfPointPtr pt; gaiaDxfPolylinePtr ln; gaiaDxfPolylinePtr pg; gaiaDxfHatchPtr p_hatch; gaiaDxfInsertPtr ins; gaiaDxfLayerPtr lyr = dxf->first_layer; while (lyr != NULL) { /* looping on layers */ int text = 0; int point = 0; int line = 0; int polyg = 0; int hatch = 0; int ins_text = 0; int ins_point = 0; int ins_line = 0; int ins_polyg = 0; int ins_hatch = 0; if (lyr->first_text != NULL) text = 1; if (lyr->first_point != NULL) point = 1; if (lyr->first_line != NULL) line = 1; if (lyr->first_polyg != NULL) polyg = 1; if (lyr->first_hatch != NULL) hatch = 1; if (lyr->first_ins_text != NULL) ins_text = 1; if (lyr->first_ins_point != NULL) ins_point = 1; if (lyr->first_ins_line != NULL) ins_line = 1; if (lyr->first_ins_polyg != NULL) ins_polyg = 1; if (lyr->first_ins_hatch != NULL) ins_hatch = 1; if (text) { /* creating and populating the TEXT-layer */ stmt_ext = NULL; attr_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_text_%s", lyr->layer_name, lyr->is3Dtext ? "3d" : "2d"); else name = sqlite3_mprintf ("%s%s_text_%s", dxf->prefix, lyr->layer_name, lyr->is3Dtext ? "3d" : "2d"); if (append && check_text_table (handle, name, dxf->srid, lyr->is3Dtext)) { /* appending into the already existing table */ if (!create_text_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (!create_layer_text_table (handle, name, dxf->srid, lyr->is3Dtext, &stmt)) { sqlite3_free (name); return 0; } } if (lyr->hasExtraText) { attr_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, attr_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_layer_text_extra_attr_table (handle, name, attr_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } txt = lyr->first_text; while (txt != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, txt->label, strlen (txt->label), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, txt->angle); if (lyr->is3Dtext) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; if (lyr->is3Dtext) gaiaAddPointToGeomCollXYZ (geom, txt->x, txt->y, txt->z); else gaiaAddPointToGeomColl (geom, txt->x, txt->y); gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 5, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = txt->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", attr_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } txt = txt->next; } sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } if (point) { /* creating and populating the POINT-layer */ stmt_ext = NULL; attr_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_point_%s", lyr->layer_name, lyr->is3Dpoint ? "3d" : "2d"); else name = sqlite3_mprintf ("%s%s_point_%s", dxf->prefix, lyr->layer_name, lyr->is3Dpoint ? "3d" : "2d"); if (append && check_point_table (handle, name, dxf->srid, lyr->is3Dpoint)) { /* appending into the already existing table */ if (!create_point_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (!create_layer_point_table (handle, name, dxf->srid, lyr->is3Dpoint, &stmt)) { sqlite3_free (name); return 0; } } if (lyr->hasExtraPoint) { attr_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, attr_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_layer_point_extra_attr_table (handle, name, attr_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } pt = lyr->first_point; while (pt != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (lyr->is3Dpoint) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; if (lyr->is3Dpoint) gaiaAddPointToGeomCollXYZ (geom, pt->x, pt->y, pt->z); else gaiaAddPointToGeomColl (geom, pt->x, pt->y); gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 3, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = pt->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", attr_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } pt = pt->next; } sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } if (line) { /* creating and populating the LINE-layer */ stmt_ext = NULL; attr_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_line_%s", lyr->layer_name, lyr->is3Dline ? "3d" : "2d"); else name = sqlite3_mprintf ("%s%s_line_%s", dxf->prefix, lyr->layer_name, lyr->is3Dline ? "3d" : "2d"); if (append && check_line_table (handle, name, dxf->srid, lyr->is3Dline)) { /* appending into the already existing table */ if (!create_line_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (!create_layer_line_table (handle, name, dxf->srid, lyr->is3Dline, &stmt)) { sqlite3_free (name); return 0; } } if (lyr->hasExtraLine) { attr_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, attr_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_layer_line_extra_attr_table (handle, name, attr_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } ln = lyr->first_line; while (ln != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (lyr->is3Dline) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; gaiaAddLinestringToGeomColl (geom, ln->points); p_ln = geom->FirstLinestring; for (iv = 0; iv < ln->points; iv++) { if (lyr->is3Dline) { gaiaSetPointXYZ (p_ln->Coords, iv, *(ln->x + iv), *(ln->y + iv), *(ln->z + iv)); } else { gaiaSetPoint (p_ln->Coords, iv, *(ln->x + iv), *(ln->y + iv)); } } gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 3, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = ln->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", attr_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ln = ln->next; } sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } if (polyg) { /* creating and populating the POLYG-layer */ stmt_ext = NULL; attr_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_polyg_%s", lyr->layer_name, lyr->is3Dpolyg ? "3d" : "2d"); else name = sqlite3_mprintf ("%s%s_polyg_%s", dxf->prefix, lyr->layer_name, lyr->is3Dpolyg ? "3d" : "2d"); if (append && check_polyg_table (handle, name, dxf->srid, lyr->is3Dpolyg)) { /* appending into the already existing table */ if (!create_polyg_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (!create_layer_polyg_table (handle, name, dxf->srid, lyr->is3Dpolyg, &stmt)) { sqlite3_free (name); return 0; } } if (lyr->hasExtraPolyg) { attr_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, attr_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_layer_polyg_extra_attr_table (handle, name, attr_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } pg = lyr->first_polyg; while (pg != NULL) { int unclosed = check_unclosed_polyg (pg, lyr->is3Dpolyg); int num_holes; gaiaDxfHolePtr hole; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (lyr->is3Dpolyg) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; num_holes = 0; hole = pg->first_hole; while (hole != NULL) { num_holes++; hole = hole->next; } gaiaAddPolygonToGeomColl (geom, pg->points + unclosed, num_holes); p_pg = geom->FirstPolygon; p_rng = p_pg->Exterior; for (iv = 0; iv < pg->points; iv++) { if (lyr->is3Dpolyg) { gaiaSetPointXYZ (p_rng->Coords, iv, *(pg->x + iv), *(pg->y + iv), *(pg->z + iv)); } else { gaiaSetPoint (p_rng->Coords, iv, *(pg->x + iv), *(pg->y + iv)); } } if (unclosed) { /* forcing the Ring to be closed */ if (lyr->is3Dpolyg) { gaiaSetPointXYZ (p_rng->Coords, pg->points, *(pg->x + 0), *(pg->y + 0), *(pg->z + 0)); } else { gaiaSetPoint (p_rng->Coords, pg->points, *(pg->x + 0), *(pg->y + 0)); } } num_holes = 0; hole = pg->first_hole; while (hole != NULL) { int unclosed = check_unclosed_hole (hole, lyr->is3Dpolyg); p_rng = gaiaAddInteriorRing (p_pg, num_holes, hole->points + unclosed); for (iv = 0; iv < hole->points; iv++) { if (lyr->is3Dpolyg) { gaiaSetPointXYZ (p_rng->Coords, iv, *(hole->x + iv), *(hole->y + iv), *(hole->z + iv)); } else { gaiaSetPoint (p_rng->Coords, iv, *(hole->x + iv), *(hole->y + iv)); } } if (unclosed) { /* forcing the Ring to be closed */ if (lyr->is3Dpolyg) { gaiaSetPointXYZ (p_rng->Coords, hole->points, *(hole->x + 0), *(hole->y + 0), *(hole->z + 0)); } else { gaiaSetPoint (p_rng->Coords, hole->points, *(hole->x + 0), *(hole->y + 0)); } } num_holes++; hole = hole->next; } gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 3, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = pg->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", attr_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } pg = pg->next; } sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } if (hatch) { /* creating and populating the HATCH-layer */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_hatch_2d", lyr->layer_name); else name = sqlite3_mprintf ("%s%s_hatch_2d", dxf->prefix, lyr->layer_name); if (append && check_hatch_tables (handle, name, dxf->srid)) { /* appending into the already existing table */ if (!create_hatch_boundary_stmt (handle, name, &stmt)) return 0; if (!create_hatch_pattern_stmt (handle, name, &stmt_pattern)) return 0; } else { /* creating a new table */ if (!create_layer_hatch_tables (handle, name, dxf->srid, &stmt, &stmt_pattern)) { sqlite3_free (name); return 0; } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } p_hatch = lyr->first_hatch; while (p_hatch != NULL) { sqlite3_int64 feature_id; gaiaDxfHatchSegmPtr segm; /* inserting the Boundary Geometry */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (p_hatch->boundary == NULL) sqlite3_bind_null (stmt, 2); else { gaiaToSpatiaLiteBlobWkb (p_hatch->boundary, &blob, &blob_size); sqlite3_bind_blob (stmt, 3, blob, blob_size, free); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_pattern); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } feature_id = sqlite3_last_insert_rowid (handle); /* inserting the Pattern Geometry */ sqlite3_reset (stmt_pattern); sqlite3_clear_bindings (stmt_pattern); sqlite3_bind_int64 (stmt_pattern, 1, feature_id); sqlite3_bind_text (stmt_pattern, 2, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt_pattern, 3, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (p_hatch->first_out == NULL) sqlite3_bind_null (stmt_pattern, 4); else { geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; geom->DeclaredType = GAIA_MULTILINESTRING; segm = p_hatch->first_out; while (segm != NULL) { gaiaLinestringPtr p_ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (p_ln->Coords, 0, segm->x0, segm->y0); gaiaSetPoint (p_ln->Coords, 1, segm->x1, segm->y1); segm = segm->next; } gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt_pattern, 4, blob, blob_size, free); } ret = sqlite3_step (stmt_pattern); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_pattern); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } p_hatch = p_hatch->next; } sqlite3_finalize (stmt); sqlite3_finalize (stmt_pattern); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } if (ins_text) { /* creating and populating the INSERT (Text reference) layer */ stmt_ext = NULL; attr_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_instext_%s", lyr->layer_name, lyr->is3DinsText ? "3d" : "2d"); else name = sqlite3_mprintf ("%s%s_instext_%s", dxf->prefix, lyr->layer_name, lyr->is3DinsText ? "3d" : "2d"); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_text_%s", lyr->is3DinsText ? "3d" : "2d"); else block = sqlite3_mprintf ("%sblock_text_%s", dxf->prefix, lyr->is3DinsText ? "3d" : "2d"); if (!create_instext_table (handle, name, block, lyr->is3Dtext, &stmt)) { sqlite3_free (name); return 0; } sqlite3_free (block); } if (lyr->hasExtraInsText) { attr_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, attr_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_insert_extra_attr_table (handle, name, attr_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } ins = lyr->first_ins_text; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = txt->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", attr_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ins = ins->next; } sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } if (ins_point) { /* creating and populating the INSERT (Point reference) layer */ stmt_ext = NULL; attr_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_inspoint_%s", lyr->layer_name, lyr->is3DinsPoint ? "3d" : "2d"); else name = sqlite3_mprintf ("%s%s_inspoint_%s", dxf->prefix, lyr->layer_name, lyr->is3DinsPoint ? "3d" : "2d"); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_point_%s", lyr->is3DinsPoint ? "3d" : "2d"); else block = sqlite3_mprintf ("%sblock_point_%s", dxf->prefix, lyr->is3DinsPoint ? "3d" : "2d"); if (!create_inspoint_table (handle, name, block, lyr->is3Dpoint, &stmt)) { sqlite3_free (name); return 0; } sqlite3_free (block); } if (lyr->hasExtraInsPoint) { attr_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, attr_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_insert_extra_attr_table (handle, name, attr_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } ins = lyr->first_ins_point; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = txt->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", attr_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ins = ins->next; } sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } if (ins_line) { /* creating and populating the INSERT (Line reference) layer */ stmt_ext = NULL; attr_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_insline_%s", lyr->layer_name, lyr->is3DinsLine ? "3d" : "2d"); else name = sqlite3_mprintf ("%s%s_insline_%s", dxf->prefix, lyr->layer_name, lyr->is3DinsLine ? "3d" : "2d"); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_line_%s", lyr->is3DinsLine ? "3d" : "2d"); else block = sqlite3_mprintf ("%sblock_line_%s", dxf->prefix, lyr->is3DinsLine ? "3d" : "2d"); if (!create_insline_table (handle, name, block, lyr->is3Dline, &stmt)) { sqlite3_free (name); return 0; } sqlite3_free (block); } if (lyr->hasExtraInsLine) { attr_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, attr_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_insert_extra_attr_table (handle, name, attr_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } ins = lyr->first_ins_line; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = txt->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", attr_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ins = ins->next; } sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } if (ins_polyg) { /* creating and populating the INSERT (Polygon reference) layer */ stmt_ext = NULL; attr_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_inspolyg_%s", lyr->layer_name, lyr->is3DinsPolyg ? "3d" : "2d"); else name = sqlite3_mprintf ("%s%s_inspolyg_%s", dxf->prefix, lyr->layer_name, lyr->is3DinsPolyg ? "3d" : "2d"); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_polyg_%s", lyr->is3DinsPolyg ? "3d" : "2d"); else block = sqlite3_mprintf ("%sblock_polyg_%s", dxf->prefix, lyr->is3DinsPolyg ? "3d" : "2d"); if (!create_inspolyg_table (handle, name, block, lyr->is3Dpolyg, &stmt)) { sqlite3_free (name); return 0; } sqlite3_free (block); } if (lyr->hasExtraInsPolyg) { attr_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, attr_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, attr_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_insert_extra_attr_table (handle, name, attr_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } ins = lyr->first_ins_polyg; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = txt->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", attr_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ins = ins->next; } sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } if (ins_hatch) { /* creating and populating the INSERT (Hatch reference) layer */ stmt_ext = NULL; attr_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("%s_inshatch_2d", lyr->layer_name); else name = sqlite3_mprintf ("%s%s_inspolyg_2d", dxf->prefix, lyr->layer_name); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_hatch_2d"); else block = sqlite3_mprintf ("%sblock_polyg_2d", dxf->prefix); if (!create_inshatch_table (handle, name, block, &stmt)) { sqlite3_free (name); return 0; } sqlite3_free (block); } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } ins = lyr->first_ins_polyg; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); sqlite3_free (name); return 0; } ins = ins->next; } sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); return 0; } sqlite3_free (name); if (attr_name) sqlite3_free (attr_name); } lyr = lyr->next; } return 1; } libspatialite-4.3.0a/src/dxf/dxf_writer.c0000664000175000017500000004543512544707704015346 00000000000000/* dxf_writer.c -- implements DXF support [exporting a DXF] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: inital development of the DXF module has been funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #include #include #include "dxf_private.h" #if defined(_WIN32) && !defined(__MINGW32__) #define strcasecmp _stricmp #endif /* not WIN32 */ GAIAGEO_DECLARE int gaiaDxfWriterInit (gaiaDxfWriterPtr dxf, FILE * out, int precision, int version) { /* initializing a DXF Output object */ if (dxf == NULL) return 0; dxf->error = 0; dxf->precision = precision; if (precision < 0) dxf->precision = 0; if (precision > 10) dxf->precision = 10; if (version != GAIA_DXF_V12) dxf->error = 1; else dxf->version = GAIA_DXF_V12; if (out == NULL) dxf->error = 1; else dxf->out = out; dxf->count = 0; return 1; } GAIAGEO_DECLARE int gaiaDxfWriteHeader (gaiaDxfWriterPtr dxf, double minx, double miny, double minz, double maxx, double maxy, double maxz) { /* printing the DXF HEADER */ char format[128]; if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nSECTION\r\n%3d\r\nHEADER\r\n", 0, 2); fprintf (dxf->out, "%3d\r\n$EXTMIN\r\n", 9); sprintf (format, "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n", dxf->precision, dxf->precision, dxf->precision); fprintf (dxf->out, format, 10, minx, 20, miny, 30, minz); fprintf (dxf->out, "%3d\r\n$EXTMAX\r\n", 9); sprintf (format, "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n", dxf->precision, dxf->precision, dxf->precision); fprintf (dxf->out, format, 10, maxx, 20, maxy, 30, maxz); fprintf (dxf->out, "%3d\r\nENDSEC\r\n", 0); return 1; } GAIAGEO_DECLARE int gaiaDxfWriteTables (gaiaDxfWriterPtr dxf) { /* printing the DXF TABLES section header */ if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nSECTION\r\n%3d\r\nTABLES\r\n", 0, 2); return 1; } GAIAGEO_DECLARE int gaiaDxfWriteLayer (gaiaDxfWriterPtr dxf, const char *layer) { /* printing a DXF TABLE/LAYER definition */ if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nTABLE\r\n%3d\r\nLAYER\r\n", 0, 2); fprintf (dxf->out, "%3d\r\n%3d\r\n%3d\r\nLAYER\r\n%3d\r\n%s\r\n", 70, 1, 0, 2, layer); fprintf (dxf->out, "%3d\r\n%d\r\n%3d\r\n%d\r\n%3d\r\nCONTINUOUS\r\n", 70, 64, 62, 7, 6); fprintf (dxf->out, "%3d\r\nENDTAB\r\n", 0); return 1; } GAIAGEO_DECLARE int gaiaDxfWriteFooter (gaiaDxfWriterPtr dxf) { /* printing the DXF footer */ if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nEOF\r\n", 0); return 1; } GAIAGEO_DECLARE int gaiaDxfWriteEntities (gaiaDxfWriterPtr dxf) { /* printing the DXF ENTITIES section header */ if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nSECTION\r\n%3d\r\nENTITIES\r\n", 0, 2); return 1; } GAIAGEO_DECLARE int gaiaDxfWriteEndSection (gaiaDxfWriterPtr dxf) { /* printing a DXF ENDSEC */ if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nENDSEC\r\n", 0); return 1; } GAIAGEO_DECLARE int gaiaDxfWritePoint (gaiaDxfWriterPtr dxf, const char *layer, double x, double y, double z) { /* printing a DXF POINT */ char format[128]; if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nPOINT\r\n%3d\r\n%s\r\n", 0, 8, layer); sprintf (format, "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n", dxf->precision, dxf->precision, dxf->precision); fprintf (dxf->out, format, 10, x, 20, y, 30, z); dxf->count++; return 1; } GAIAGEO_DECLARE int gaiaDxfWriteText (gaiaDxfWriterPtr dxf, const char *layer, double x, double y, double z, const char *label, double text_height, double angle) { /* printing a DXF TEXT */ char format[128]; if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nTEXT\r\n%3d\r\n%s\r\n", 0, 8, layer); sprintf (format, "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n", dxf->precision, dxf->precision, dxf->precision); fprintf (dxf->out, format, 10, x, 20, y, 30, z); sprintf (format, "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%s\r\n", dxf->precision, dxf->precision); fprintf (dxf->out, format, 40, text_height, 50, angle, 1, label); dxf->count++; return 1; } GAIAGEO_DECLARE int gaiaDxfWriteLine (gaiaDxfWriterPtr dxf, const char *layer, gaiaLinestringPtr line) { /* printing a DXF POLYLINE (opened) */ int iv; double x; double y; double z; double m; char format[128]; if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nPOLYLINE\r\n%3d\r\n%s\r\n%3d\r\n%6d\r\n", 0, 8, layer, 66, 1); fprintf (dxf->out, "%3d\r\n%6d\r\n", 70, 0); for (iv = 0; iv < line->Points; iv++) { /* exporting all vertices */ if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } fprintf (dxf->out, "%3d\r\nVERTEX\r\n%3d\r\n%s\r\n", 0, 8, layer); sprintf (format, "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n", dxf->precision, dxf->precision, dxf->precision); fprintf (dxf->out, format, 10, x, 20, y, 30, z); } fprintf (dxf->out, "%3d\r\nSEQEND\r\n%3d\r\n%s\r\n", 0, 8, layer); dxf->count++; return 1; } GAIAGEO_DECLARE int gaiaDxfWriteRing (gaiaDxfWriterPtr dxf, const char *layer, gaiaRingPtr ring) { /* printing a DXF POLYLINE (closed) */ int iv; double x; double y; double z; double m; char format[128]; if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; fprintf (dxf->out, "%3d\r\nPOLYLINE\r\n%3d\r\n%s\r\n%3d\r\n%6d\r\n", 0, 8, layer, 66, 1); fprintf (dxf->out, "%3d\r\n%6d\r\n", 70, 1); for (iv = 0; iv < ring->Points - 1; iv++) { /* sandro 2013-10-19 exporting all vertices except the last one because accordingly to DXF specifications the Ring closure is always implicitly assumed, so there is no need at all to explicitly export a last vertex identical to the first one */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } fprintf (dxf->out, "%3d\r\nVERTEX\r\n%3d\r\n%s\r\n", 0, 8, layer); sprintf (format, "%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n%%3d\r\n%%1.%df\r\n", dxf->precision, dxf->precision, dxf->precision); fprintf (dxf->out, format, 10, x, 20, y, 30, z); } fprintf (dxf->out, "%3d\r\nSEQEND\r\n%3d\r\n%s\r\n", 0, 8, layer); dxf->count++; return 1; } GAIAGEO_DECLARE int gaiaDxfWriteGeometry (gaiaDxfWriterPtr dxf, const char *layer, const char *label, double text_height, double text_rotation, gaiaGeomCollPtr geom) { /* exporting a whole Geometry into the DXF */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; int ib; if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; pt = geom->FirstPoint; while (pt != NULL) { if (label == NULL) gaiaDxfWritePoint (dxf, layer, pt->X, pt->Y, pt->Z); else gaiaDxfWriteText (dxf, layer, pt->X, pt->Y, pt->Z, label, text_height, text_rotation); pt = pt->Next; } ln = geom->FirstLinestring; while (ln != NULL) { gaiaDxfWriteLine (dxf, layer, ln); ln = ln->Next; } pg = geom->FirstPolygon; while (pg != NULL) { rng = pg->Exterior; gaiaDxfWriteRing (dxf, layer, rng); for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; gaiaDxfWriteRing (dxf, layer, rng); } pg = pg->Next; } return 1; } static gaiaDxfExportLayerPtr alloc_aux_layer (const char *layer, gaiaGeomCollPtr geom) { /* allocating and initializing an helper Layer */ int len; gaiaDxfExportLayerPtr lyr = malloc (sizeof (gaiaDxfExportLayer)); len = strlen (layer); lyr->layer_name = malloc (len + 1); strcpy (lyr->layer_name, layer), lyr->minx = geom->MinX; lyr->miny = geom->MinY; lyr->maxx = geom->MaxX; lyr->maxy = geom->MaxY; lyr->next = NULL; return lyr; } static void destroy_aux_layer (gaiaDxfExportLayerPtr lyr) { /* destroying a DXF Helper Layer */ if (lyr == NULL) return; if (lyr->layer_name != NULL) free (lyr->layer_name); free (lyr); } static gaiaDxfExportPtr alloc_aux_exporter () { /* allocating and initializing the helper Exporter */ gaiaDxfExportPtr aux = malloc (sizeof (gaiaDxfExport)); aux->first = NULL; aux->last = NULL; return aux; } static void destroy_aux_exporter (gaiaDxfExportPtr aux) { /* memory cleanup - destroying the helper Exporter */ gaiaDxfExportLayerPtr lyr; gaiaDxfExportLayerPtr n_lyr; if (aux == NULL) return; lyr = aux->first; while (lyr != NULL) { n_lyr = lyr->next; destroy_aux_layer (lyr); lyr = n_lyr; } free (aux); } static void update_aux_exporter (gaiaDxfExportPtr aux, const char *layer, gaiaGeomCollPtr geom) { /* updating the Helper Exporter */ gaiaDxfExportLayerPtr lyr = aux->first; while (lyr != NULL) { if (strcasecmp (layer, lyr->layer_name) == 0) { /* updating an already defined layer */ if (geom->MinX < lyr->minx) lyr->minx = geom->MinX; if (geom->MinY < lyr->miny) lyr->miny = geom->MinY; if (geom->MaxX > lyr->maxx) lyr->maxx = geom->MaxX; if (geom->MaxY > lyr->maxy) lyr->maxy = geom->MaxY; if (geom->MinX < aux->minx) aux->minx = geom->MinX; if (geom->MinY < aux->miny) aux->miny = geom->MinY; if (geom->MaxX > aux->maxx) aux->maxx = geom->MaxX; if (geom->MaxY > aux->maxy) aux->maxy = geom->MaxY; return; } lyr = lyr->next; } /* inserting a new Layer */ lyr = alloc_aux_layer (layer, geom); if (aux->first == NULL) { aux->first = lyr; aux->minx = geom->MinX; aux->miny = geom->MinY; aux->maxx = geom->MaxX; aux->maxy = geom->MaxY; } if (aux->last != NULL) aux->last->next = lyr; aux->last = lyr; } GAIAGEO_DECLARE int gaiaExportDxf (gaiaDxfWriterPtr dxf, sqlite3 * db_handle, const char *sql, const char *layer_col_name, const char *geom_col_name, const char *label_col_name, const char *text_height_col_name, const char *text_rotation_col_name, gaiaGeomCollPtr geom_filter) { /* exporting a complex DXF by executing an arbitrary SQL query */ sqlite3_stmt *stmt = NULL; int ret; int params; int first_row = 1; int layer_col = -1; int geom_col = -1; int label_col = -1; int text_height_col = -1; int text_rotation_col = -1; int i; unsigned char *p_blob; const unsigned char *blob; int len; const char *layer; const char *label = NULL; gaiaGeomCollPtr geom; gaiaDxfExportPtr aux = NULL; gaiaDxfExportLayerPtr lyr; if (dxf == NULL) return 0; if (dxf->error) return 0; if (dxf->out == NULL) return 0; if (db_handle == NULL) return 0; if (sql == NULL) return 0; if (layer_col_name == NULL) return 0; if (geom_col_name == NULL) return 0; /* attempting to create the SQL prepared statement */ ret = sqlite3_prepare_v2 (db_handle, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("exportDXF - CREATE STATEMENT error: %s\n", sqlite3_errmsg (db_handle)); goto stop; } params = sqlite3_bind_parameter_count (stmt); if (params > 0 && geom_filter != NULL) { /* parameter binding - Spatial Filter */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); for (i = 1; i <= params; i++) { gaiaToSpatiaLiteBlobWkb (geom_filter, &p_blob, &len); ret = sqlite3_bind_blob (stmt, i, p_blob, len, free); if (ret != SQLITE_OK) { spatialite_e ("exportDXF - parameter BIND error: %s\n", sqlite3_errmsg (db_handle)); goto stop; } } } /* pass #1 - sniffing the result set */ while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (first_row) { /* this one is the first row of the resultset */ for (i = 0; i < sqlite3_column_count (stmt); i++) { /* attempting to identify the resultset columns */ if (strcasecmp (layer_col_name, sqlite3_column_name (stmt, i)) == 0) layer_col = i; if (strcasecmp (geom_col_name, sqlite3_column_name (stmt, i)) == 0) geom_col = i; if (label_col_name != NULL) { if (strcasecmp (label_col_name, sqlite3_column_name (stmt, i)) == 0) label_col = i; } if (text_height_col_name != NULL) { if (strcasecmp (text_height_col_name, sqlite3_column_name (stmt, i)) == 0) text_height_col = i; } if (text_rotation_col_name != NULL) { if (strcasecmp (text_rotation_col_name, sqlite3_column_name (stmt, i)) == 0) text_rotation_col = i; } } if (layer_col < 0) { spatialite_e ("exportDXF - Layer Column not found into the resultset\n"); goto stop; } if (geom_col < 0) { spatialite_e ("exportDXF - Geometry Column not found into the resultset\n"); goto stop; } first_row = 0; aux = alloc_aux_exporter (); } layer = (const char *) sqlite3_column_text (stmt, layer_col); blob = sqlite3_column_blob (stmt, geom_col); len = sqlite3_column_bytes (stmt, geom_col); geom = gaiaFromSpatiaLiteBlobWkb (blob, len); if (geom) { update_aux_exporter (aux, layer, geom); gaiaFreeGeomColl (geom); } } } /* pass #2 - exporting the DXF file */ gaiaDxfWriteHeader (dxf, aux->minx, aux->miny, 0, aux->maxx, aux->maxy, 0); gaiaDxfWriteTables (dxf); lyr = aux->first; while (lyr != NULL) { gaiaDxfWriteLayer (dxf, lyr->layer_name); lyr = lyr->next; } gaiaDxfWriteEndSection (dxf); gaiaDxfWriteEntities (dxf); sqlite3_reset (stmt); while (1) { /* scrolling the result set rows */ int ival; double height = 10.0; double rotation = 0.0; ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { layer = (const char *) sqlite3_column_text (stmt, layer_col); if (label_col >= 0) label = (const char *) sqlite3_column_text (stmt, label_col); if (text_height_col >= 0) { if (sqlite3_column_type (stmt, text_height_col) == SQLITE_INTEGER) { ival = sqlite3_column_int (stmt, text_height_col); height = ival; } if (sqlite3_column_type (stmt, text_height_col) == SQLITE_FLOAT) height = sqlite3_column_double (stmt, text_height_col); } if (text_rotation_col >= 0) { if (sqlite3_column_type (stmt, text_rotation_col) == SQLITE_INTEGER) { ival = sqlite3_column_int (stmt, text_rotation_col); rotation = ival; } if (sqlite3_column_type (stmt, text_height_col) == SQLITE_FLOAT) rotation = sqlite3_column_double (stmt, text_rotation_col); } blob = sqlite3_column_blob (stmt, geom_col); len = sqlite3_column_bytes (stmt, geom_col); geom = gaiaFromSpatiaLiteBlobWkb (blob, len); if (geom) { gaiaDxfWriteGeometry (dxf, layer, label, height, rotation, geom); gaiaFreeGeomColl (geom); } } } gaiaDxfWriteEndSection (dxf); gaiaDxfWriteFooter (dxf); sqlite3_finalize (stmt); if (aux != NULL) destroy_aux_exporter (aux); return dxf->count; stop: if (stmt != NULL) sqlite3_finalize (stmt); if (aux != NULL) destroy_aux_exporter (aux); return 0; } libspatialite-4.3.0a/src/dxf/dxf_private.h0000664000175000017500000001313512544707704015501 00000000000000/* dxf_private.h -- DXF Import Private API version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: inital development of the DXF module has been funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale */ /** \file spatialite_private.h SpatiaLite private header file */ #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifdef _WIN32 #ifdef DLL_EXPORT #define DXF_PRIVATE #else #define DXF_PRIVATE #endif #else #define DXF_PRIVATE __attribute__ ((visibility("hidden"))) #endif #endif #ifndef _DXF_PRIVATE_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _DXF_PRIVATE_H #endif #ifdef __cplusplus extern "C" { #endif typedef struct dxf_out_layer { double minx; double miny; double maxx; double maxy; char *layer_name; struct dxf_out_layer *next; } gaiaDxfExportLayer; typedef gaiaDxfExportLayer *gaiaDxfExportLayerPtr; typedef struct dxf_out { double minx; double miny; double maxx; double maxy; gaiaDxfExportLayer *first; gaiaDxfExportLayer *last; } gaiaDxfExport; typedef gaiaDxfExport *gaiaDxfExportPtr; DXF_PRIVATE int create_text_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_point_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_line_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_polyg_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_hatch_boundary_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_hatch_pattern_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_insert_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_extra_stmt (sqlite3 * handle, const char *extra_name, sqlite3_stmt ** xstmt); DXF_PRIVATE char *create_extra_attr_table_name (const char *name); DXF_PRIVATE int check_text_table (sqlite3 * handle, const char *name, int srid, int is3D); DXF_PRIVATE int check_point_table (sqlite3 * handle, const char *name, int srid, int is3D); DXF_PRIVATE int check_line_table (sqlite3 * handle, const char *name, int srid, int is3D); DXF_PRIVATE int check_polyg_table (sqlite3 * handle, const char *name, int srid, int is3D); DXF_PRIVATE int check_hatch_tables (sqlite3 * handle, const char *name, int srid); DXF_PRIVATE int check_insert_table (sqlite3 * handle, const char *name); DXF_PRIVATE int check_extra_attr_table (sqlite3 * handle, const char *name); DXF_PRIVATE int create_block_text_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt); DXF_PRIVATE int import_mixed (sqlite3 * handle, gaiaDxfParserPtr dxf, int append); DXF_PRIVATE int import_by_layer (sqlite3 * handle, gaiaDxfParserPtr dxf, int append); DXF_PRIVATE int create_instext_table (sqlite3 * handle, const char *name, const char *block, int is3d, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_inspoint_table (sqlite3 * handle, const char *name, const char *block, int is3d, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_insline_table (sqlite3 * handle, const char *name, const char *block, int is3d, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_inspolyg_table (sqlite3 * handle, const char *name, const char *block, int is3d, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_inshatch_table (sqlite3 * handle, const char *name, const char *block, sqlite3_stmt ** xstmt); DXF_PRIVATE int create_insert_extra_attr_table (sqlite3 * handle, const char *name, char *extra_name, sqlite3_stmt ** xstmt_ext); DXF_PRIVATE int check_unclosed_polyg (gaiaDxfPolylinePtr pg, int is3d); DXF_PRIVATE int check_unclosed_hole (gaiaDxfHolePtr hole, int is3d); #ifdef __cplusplus } #endif #endif /* _DXF_PRIVATE_H */ libspatialite-4.3.0a/src/dxf/dxf_parser.c0000664000175000017500000024715112544707704015325 00000000000000/* dxf_parser.c -- implements DXF support [parsing] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: inital development of the DXF module has been funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale */ #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #include "dxf_private.h" #ifndef OMIT_GEOS /* only if GEOS is enabled */ typedef struct dxf_segment { /* a DXF segment */ int valid; double ax; double ay; double az; double bx; double by; double bz; } dxfSegment; typedef dxfSegment *dxfSegmentPtr; typedef struct dxf_linked_segments { /* a collection of DXF segments */ int count; dxfSegmentPtr segments; } dxfLinkedSegments; typedef dxfLinkedSegments *dxfLinkedSegmentsPtr; typedef struct dxf_rings_collection { /* a collection of rings */ gaiaDxfPolylinePtr first; gaiaDxfPolylinePtr last; } dxfRingsCollection; typedef dxfRingsCollection *dxfRingsCollectionPtr; static gaiaDxfHatchSegmPtr alloc_dxf_hatch_segm (double x0, double y0, double x1, double y1) { /* allocating and initializing a DXF Hatch Segment object */ gaiaDxfHatchSegmPtr segm = malloc (sizeof (gaiaDxfHatchSegm)); segm->x0 = x0; segm->y0 = y0; segm->x1 = x1; segm->y1 = y1; segm->next = NULL; return segm; } static void destroy_dxf_hatch_segm (gaiaDxfHatchSegmPtr segm) { /* memory cleanup - destroying a DXF Hatch Segment object */ if (segm == NULL) return; free (segm); } static gaiaDxfBoundaryPathPtr alloc_dxf_boundary_path () { /* allocating and initializing a DXF Boundary Path object */ gaiaDxfBoundaryPathPtr path = malloc (sizeof (gaiaDxfBoundaryPath)); path->first = NULL; path->last = NULL; path->next = NULL; return path; } static void insert_dxf_boundary_segm (gaiaDxfBoundaryPathPtr path, gaiaDxfHatchSegmPtr segm) { /* inserting a Segment into a Boundary Path */ if (path->first == NULL) path->first = segm; if (path->last != NULL) path->last->next = segm; path->last = segm; } static void destroy_dxf_boundary_path (gaiaDxfBoundaryPathPtr path) { /* memory cleanup - destroying a DXF Boundary Path object */ gaiaDxfHatchSegmPtr segm; gaiaDxfHatchSegmPtr n_segm; if (path == NULL) return; segm = path->first; while (segm != NULL) { n_segm = segm->next; destroy_dxf_hatch_segm (segm); segm = n_segm; } free (path); } static gaiaDxfHatchPtr alloc_dxf_hatch () { /* allocating and initializing a DXF Pattern Hatch object */ gaiaDxfHatchPtr hatch = malloc (sizeof (gaiaDxfHatch)); hatch->spacing = 0.0; hatch->angle = 0.0; hatch->base_x = 0.0; hatch->base_y = 0.0; hatch->offset_x = 0.0; hatch->offset_y = 0.0; hatch->first = NULL; hatch->last = NULL; hatch->boundary = NULL; hatch->first_out = NULL; hatch->last_out = NULL; hatch->next = NULL; return hatch; } static void insert_dxf_boundary_path (gaiaDxfHatchPtr hatch, gaiaDxfBoundaryPathPtr path) { /* inserting a Boundary Path into a Hatch */ if (hatch->first == NULL) hatch->first = path; if (hatch->last != NULL) hatch->last->next = path; hatch->last = path; } static void insert_dxf_hatch_out (gaiaDxfHatchPtr hatch, gaiaDxfHatchSegmPtr segm) { /* inserting a Segment into a Hatch */ if (hatch->first_out == NULL) hatch->first_out = segm; if (hatch->last_out != NULL) hatch->last_out->next = segm; hatch->last_out = segm; } static void destroy_dxf_hatch (gaiaDxfHatchPtr hatch) { /* memory cleanup - destroying a DXF Pattern Hatch object */ gaiaDxfBoundaryPathPtr path; gaiaDxfBoundaryPathPtr n_path; gaiaDxfHatchSegmPtr out; gaiaDxfHatchSegmPtr n_out; if (hatch == NULL) return; path = hatch->first; while (path != NULL) { n_path = path->next; destroy_dxf_boundary_path (path); path = n_path; } if (hatch->boundary != NULL) gaiaFreeGeomColl (hatch->boundary); out = hatch->first_out; while (out != NULL) { n_out = out->next; destroy_dxf_hatch_segm (out); out = n_out; } free (hatch); } static int is_valid_dxf_hatch (gaiaDxfHatchPtr hatch) { /* testing for a valid Pattern Hatch */ if (hatch->first == NULL) return 0; return 1; } static void apply_vertical_hatch (gaiaGeomCollPtr boundary, gaiaGeomCollPtr geom, double spacing, double base_x) { /* vertical Pattern Hatch Lines */ double min_x = boundary->MinX; double max_x = boundary->MaxX; double min_y = boundary->MinY; double max_y = boundary->MaxY; double x; gaiaLinestringPtr ln; /* inserting all Hatch Lines into the collection */ x = base_x + boundary->MinX; while (x < max_x) { ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (ln->Coords, 0, x, min_y); gaiaSetPoint (ln->Coords, 1, x, max_y); x += spacing; } x = base_x + boundary->MinX - spacing; while (x > min_x) { ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (ln->Coords, 0, x, min_y); gaiaSetPoint (ln->Coords, 1, x, max_y); x -= spacing; } } static void apply_horizontal_hatch (gaiaGeomCollPtr boundary, gaiaGeomCollPtr geom, double spacing, double base_y) { /* horizontal Pattern Hatch Lines */ double min_x = boundary->MinX; double max_x = boundary->MaxX; double min_y = boundary->MinY; double max_y = boundary->MaxY; double y; gaiaLinestringPtr ln; /* inserting all Hatch Lines into the collection */ y = base_y + boundary->MinY; while (y < max_y) { ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (ln->Coords, 0, min_x, y); gaiaSetPoint (ln->Coords, 1, max_x, y); y += spacing; } y = base_y + boundary->MinY - spacing; while (y > min_y) { ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (ln->Coords, 0, min_x, y); gaiaSetPoint (ln->Coords, 1, max_x, y); y -= spacing; } } static void apply_hatch (gaiaGeomCollPtr boundary, gaiaGeomCollPtr geom, double angle, double spacing, double base_x, double base_y) { /* ordinary (slant) Pattern Hatch Lines */ double min_x = boundary->MinX; double max_x = boundary->MaxX; double min_y = boundary->MinY; double max_y = boundary->MaxY; double ext_x = max_x - min_x; double ext_y = max_y - min_y; double ext = (ext_x > ext_y) ? ext_x : ext_y; double mnx = (ext * 2.0) * -1.0; double mxx = ext * 3.0; double mny = (ext * 2.0) * -1.0; double mxy = ext * 3.0; gaiaLinestringPtr ln; double y; /* inserting all horizontal Hatch Lines into the collection */ y = 0.0; while (y < mxy) { ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (ln->Coords, 0, mnx, y); gaiaSetPoint (ln->Coords, 1, mxx, y); y += spacing; } y = 0.0 - spacing; while (y > mny) { ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (ln->Coords, 0, mnx, y); gaiaSetPoint (ln->Coords, 1, mxx, y); y -= spacing; } /* applying the required rotation */ gaiaRotateCoords (geom, angle * -1.0); /* translating into base position */ gaiaShiftCoords (geom, base_x + min_x, base_y + min_y); } static void create_dxf_hatch_lines (const void *p_cache, gaiaDxfHatchPtr hatch, int srid) { /* creating Pattern Hatch lines */ gaiaDxfBoundaryPathPtr path; gaiaDxfHatchSegmPtr out; gaiaDxfHatchSegmPtr n_out; gaiaGeomCollPtr geom; gaiaGeomCollPtr result; gaiaGeomCollPtr clipped; double angle; double x0; double y0; double x1; double y1; gaiaLinestringPtr ln; if (hatch == NULL) return; if (hatch->boundary != NULL) gaiaFreeGeomColl (hatch->boundary); out = hatch->first_out; while (out != NULL) { /* cleaning all Pattern Hatch lines */ n_out = out->next; destroy_dxf_hatch_segm (out); out = n_out; } hatch->boundary = NULL; hatch->first_out = NULL; hatch->last_out = NULL; /* creating the Pattern Boundary */ geom = gaiaAllocGeomColl (); path = hatch->first; while (path != NULL) { /* inserting Boundary lines */ out = path->first; while (out != NULL) { /* inserting all Boundary segments into the collection */ ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (ln->Coords, 0, out->x0, out->y0); gaiaSetPoint (ln->Coords, 1, out->x1, out->y1); out = out->next; } path = path->next; } /* attempting to reassemble the Boundary */ if (p_cache != NULL) result = gaiaPolygonize_r (p_cache, geom, 0); else result = gaiaPolygonize (geom, 0); gaiaFreeGeomColl (geom); if (result == NULL) return; gaiaMbrGeometry (result); result->Srid = srid; result->DeclaredType = GAIA_MULTIPOLYGON; hatch->boundary = result; if (hatch->spacing == 0.0) { /* no pattern filling, just the boundary */ return; } /* normalizing the angle */ angle = hatch->angle; while (angle >= 360.0) angle -= 360.0; while (angle <= -360.0) angle += 360; /* preparing the Hatch filling lines */ geom = gaiaAllocGeomColl (); if (angle == 90.0 || angle == -90.0 || angle == 270.0 || angle == -270.0) apply_vertical_hatch (result, geom, hatch->spacing, hatch->base_x); else if (angle == 0.0 || angle == 180 || angle == -180) apply_horizontal_hatch (result, geom, hatch->spacing, hatch->base_y); else apply_hatch (result, geom, angle, hatch->spacing, hatch->base_x, hatch->base_y); gaiaMbrGeometry (geom); if (p_cache != NULL) clipped = gaiaGeometryIntersection_r (p_cache, geom, result); else clipped = gaiaGeometryIntersection (geom, result); gaiaFreeGeomColl (geom); if (clipped == NULL) return; ln = clipped->FirstLinestring; while (ln != NULL) { if (ln->Points == 2) { gaiaGetPoint (ln->Coords, 0, &x0, &y0); gaiaGetPoint (ln->Coords, 1, &x1, &y1); n_out = alloc_dxf_hatch_segm (x0, y0, x1, y1); insert_dxf_hatch_out (hatch, n_out); } ln = ln->Next; } gaiaFreeGeomColl (clipped); } static gaiaDxfHolePtr alloc_dxf_hole (int points) { /* allocating and initializing a DXF Polygon Hole object */ int i; gaiaDxfHolePtr hole = malloc (sizeof (gaiaDxfHole)); hole->points = points; hole->x = malloc (sizeof (double) * points); hole->y = malloc (sizeof (double) * points); hole->z = malloc (sizeof (double) * points); for (i = 0; i < points; i++) { *(hole->x + i) = 0.0; *(hole->y + i) = 0.0; *(hole->z + i) = 0.0; } hole->next = NULL; return hole; } static void insert_dxf_hole (gaiaDxfPolylinePtr line, gaiaDxfHolePtr hole) { /* inserting an Hole into a Polygon */ if (line->first_hole == NULL) line->first_hole = hole; if (line->last_hole != NULL) line->last_hole->next = hole; line->last_hole = hole; } static void destroy_dxf_hole (gaiaDxfHolePtr hole) { /* memory cleanup - destroying a DXF Hole object */ if (hole == NULL) return; if (hole->x != NULL) free (hole->x); if (hole->y != NULL) free (hole->y); if (hole->z != NULL) free (hole->z); free (hole); } static int force_closure (gaiaDxfPolylinePtr line) { /* checking (and eventually forcing) first/last vertex coherency */ if (check_unclosed_polyg (line, 1)) { /* not properly closed: forcing the last vertex */ double *ptr_x; double *ptr_y; double *ptr_z; ptr_x = realloc (line->x, sizeof (double) * (line->points + 1)); ptr_y = realloc (line->y, sizeof (double) * (line->points + 1)); ptr_z = realloc (line->z, sizeof (double) * (line->points + 1)); if (ptr_x == NULL || ptr_y == NULL || ptr_z == NULL) { /* some unexpected error happened - giving up */ if (ptr_x == NULL) free (ptr_x); if (ptr_y == NULL) free (ptr_y); if (ptr_z == NULL) free (ptr_z); return 0; } line->x = ptr_x; line->y = ptr_y; line->z = ptr_z; *(line->x + line->points) = *(line->x + 0); *(line->y + line->points) = *(line->y + 0); *(line->z + line->points) = *(line->z + 0); line->points += 1; } return 1; } static void linked_rings (const void *p_cache, gaiaDxfPolylinePtr line) { /* attempt to identify linked Polygon rings */ int i; int i2; int match = 0; double x; double y; double z; gaiaDxfHolePtr hole; dxfLinkedSegmentsPtr coll; dxfSegmentPtr seg; dxfSegmentPtr seg2; gaiaGeomCollPtr geom; gaiaGeomCollPtr result; gaiaPolygonPtr pg; gaiaRingPtr rng; int pgs; int ok; if (line == NULL) return; if (line->points <= 0) return; if (line->is_closed == 0) return; if (!force_closure (line)) return; coll = malloc (sizeof (dxfLinkedSegments)); coll->count = line->points - 1; coll->segments = malloc (sizeof (dxfSegment) * coll->count); x = *(line->x + 0); y = *(line->y + 0); z = *(line->z + 0); for (i2 = 0, i = 1; i < line->points; i++, i2++) { /* initializing all segments */ seg = &(coll->segments[i2]); seg->valid = 1; seg->ax = x; seg->ay = y; seg->az = z; x = *(line->x + i); y = *(line->y + i); z = *(line->z + i); seg->bx = x; seg->by = y; seg->bz = z; } for (i = 0; i < coll->count - 1; i++) { /* testing for linked polygon holes */ seg = &(coll->segments[i]); if (seg->valid == 0) continue; for (i2 = i + 1; i2 < coll->count; i2++) { seg2 = &(coll->segments[i2]); if (seg2->valid == 0) continue; if ((seg->ax == seg2->ax && seg->ay == seg2->ay && seg->az == seg2->az && seg->bx == seg2->bx && seg->by == seg2->by && seg->bz == seg2->bz) || (seg->ax == seg2->bx && seg->ay == seg2->by && seg->az == seg2->bz && seg->bx == seg2->ax && seg->by == seg2->ay && seg->bz == seg2->az)) { /* found a linked segment */ seg->valid = 0; seg2->valid = 0; match = 1; } } } if (match == 0) { /* no link segment was found - quitting */ free (coll->segments); free (coll); return; } /* building a candidate geometry (multilinestring) */ geom = gaiaAllocGeomCollXYZ (); for (i = 0; i < coll->count; i++) { seg = &(coll->segments[i]); if (seg->valid) { /* inserting a valid segment into the collection */ gaiaLinestringPtr ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPointXYZ (ln->Coords, 0, seg->ax, seg->ay, seg->az); gaiaSetPointXYZ (ln->Coords, 1, seg->bx, seg->by, seg->bz); } } /* freeing the linked segments list */ free (coll->segments); free (coll); /* attempting to reassemble a polygon */ if (p_cache != NULL) result = gaiaPolygonize_r (p_cache, geom, 0); else result = gaiaPolygonize (geom, 0); gaiaFreeGeomColl (geom); if (result == NULL) return; /* checking the returned polygon for validity */ pgs = 0; ok = 1; pg = result->FirstPolygon; while (pg != NULL) { pgs++; if (pg->NumInteriors == 0) ok = 0; pg = pg->Next; } if (ok == 1 && pgs == 1) { /* found a valid Polygon with internal holes(s) */ pg = result->FirstPolygon; rng = pg->Exterior; /* rebuilding the exterior ring */ free (line->x); free (line->y); free (line->z); line->points = rng->Points; line->x = malloc (sizeof (double) * line->points); line->y = malloc (sizeof (double) * line->points); line->z = malloc (sizeof (double) * line->points); for (i = 0; i < line->points; i++) { /* setting the exterior ring points */ gaiaGetPointXYZ (rng->Coords, i, &x, &y, &z); *(line->x + i) = x; *(line->y + i) = y; *(line->z + i) = z; } for (i2 = 0; i2 < pg->NumInteriors; i2++) { /* saving the Holes */ rng = pg->Interiors + i2; hole = alloc_dxf_hole (rng->Points); insert_dxf_hole (line, hole); for (i = 0; i < hole->points; i++) { /* setting the interior ring points */ gaiaGetPointXYZ (rng->Coords, i, &x, &y, &z); *(hole->x + i) = x; *(hole->y + i) = y; *(hole->z + i) = z; } } } gaiaFreeGeomColl (result); /* forcing the closure flag */ line->is_closed = 1; } static void insert_dxf_hatch (gaiaDxfParserPtr dxf, const char *layer_name, gaiaDxfHatchPtr hatch) { /* inserting a HATCH object into the appropriate Layer */ gaiaDxfLayerPtr lyr = dxf->first_layer; while (lyr != NULL) { if (strcmp (lyr->layer_name, layer_name) == 0) { /* found the matching Layer */ if (lyr->first_hatch == NULL) lyr->first_hatch = hatch; if (lyr->last_hatch != NULL) lyr->last_hatch->next = hatch; lyr->last_hatch = hatch; return; } lyr = lyr->next; } destroy_dxf_hatch (hatch); } static void insert_dxf_block_hatch (gaiaDxfParserPtr dxf, gaiaDxfHatchPtr hatch) { /* inserting a HATCH object into the current Block */ if (dxf->curr_block.first_hatch == NULL) dxf->curr_block.first_hatch = hatch; if (dxf->curr_block.last_hatch != NULL) dxf->curr_block.last_hatch->next = hatch; dxf->curr_block.last_hatch = hatch; } static gaiaDxfExtraAttrPtr alloc_dxf_extra () { /* allocating and initializing a DXF Extra Attribute object */ gaiaDxfExtraAttrPtr ext = malloc (sizeof (gaiaDxfExtraAttr)); ext->key = NULL; ext->value = NULL; ext->next = NULL; return ext; } static gaiaDxfExtraAttrPtr clone_dxf_extra (gaiaDxfExtraAttrPtr org) { /* cloning a DXF Extra Attribute object */ int len; gaiaDxfExtraAttrPtr ext = malloc (sizeof (gaiaDxfExtraAttr)); len = strlen (org->key); ext->key = malloc (len + 1); strcpy (ext->key, org->key); len = strlen (org->value); ext->value = malloc (len + 1); strcpy (ext->value, org->value); ext->next = NULL; return ext; } static void destroy_dxf_extra (gaiaDxfExtraAttrPtr ext) { /* memory cleanup - destroying a DXF Extra Attribute object */ if (ext == NULL) return; if (ext->key != NULL) free (ext->key); if (ext->value != NULL) free (ext->value); free (ext); } static gaiaDxfTextPtr alloc_dxf_text (const char *label, double x, double y, double z, double angle) { /* allocating and initializing a DXF Text object */ int len; gaiaDxfTextPtr txt = malloc (sizeof (gaiaDxfText)); len = strlen (label); txt->label = malloc (len + 1); strcpy (txt->label, label); txt->x = x; txt->y = y; txt->z = z; txt->angle = angle; txt->first = NULL; txt->last = NULL; txt->next = NULL; return txt; } static void destroy_dxf_text (gaiaDxfTextPtr txt) { /* memory cleanup - destroying a DXF Text object */ gaiaDxfExtraAttrPtr ext; gaiaDxfExtraAttrPtr n_ext; if (txt == NULL) return; if (txt->label != NULL) free (txt->label); ext = txt->first; while (ext != NULL) { n_ext = ext->next; destroy_dxf_extra (ext); ext = n_ext; } free (txt); } static int is_3d_text (gaiaDxfTextPtr txt) { /* testing if it's really a 3D Text */ if (txt->z == 0.0) return 0; return 1; } static void insert_dxf_text (gaiaDxfParserPtr dxf, const char *layer_name, gaiaDxfTextPtr txt) { /* inserting a TEXT object into the appropriate Layer */ gaiaDxfLayerPtr lyr = dxf->first_layer; while (lyr != NULL) { if (strcmp (lyr->layer_name, layer_name) == 0) { /* found the matching Layer */ if (lyr->first_text == NULL) lyr->first_text = txt; if (lyr->last_text != NULL) lyr->last_text->next = txt; lyr->last_text = txt; if (dxf->force_dims == GAIA_DXF_FORCE_2D || dxf->force_dims == GAIA_DXF_FORCE_3D) ; else { if (is_3d_text (txt)) lyr->is3Dtext = 1; } txt->first = dxf->first_ext; txt->last = dxf->last_ext; dxf->first_ext = NULL; dxf->last_ext = NULL; if (txt->first != NULL) lyr->hasExtraText = 1; return; } lyr = lyr->next; } destroy_dxf_text (txt); } static void insert_dxf_block_text (gaiaDxfParserPtr dxf, gaiaDxfTextPtr txt) { /* inserting a TEXT object into the current Block */ if (dxf->curr_block.first_text == NULL) dxf->curr_block.first_text = txt; if (dxf->curr_block.last_text != NULL) dxf->curr_block.last_text->next = txt; dxf->curr_block.last_text = txt; if (dxf->force_dims == GAIA_DXF_FORCE_2D || dxf->force_dims == GAIA_DXF_FORCE_3D) ; else { if (is_3d_text (txt)) dxf->curr_block.is3Dtext = 1; } } static gaiaDxfInsertPtr alloc_dxf_insert (const char *block_id, double x, double y, double z, double scale_x, double scale_y, double scale_z, double angle) { /* allocating and initializing a DXF Insertt object */ int len; gaiaDxfInsertPtr ins = malloc (sizeof (gaiaDxfInsert)); len = strlen (block_id); ins->block_id = malloc (len + 1); strcpy (ins->block_id, block_id); ins->x = x; ins->y = y; ins->z = z; ins->scale_x = scale_x; ins->scale_y = scale_y; ins->scale_z = scale_z; ins->angle = angle; ins->hasText = 0; ins->hasPoint = 0; ins->hasLine = 0; ins->hasPolyg = 0; ins->hasHatch = 0; ins->is3Dtext = 0; ins->is3Dpoint = 0; ins->is3Dline = 0; ins->is3Dpolyg = 0; ins->first = NULL; ins->last = NULL; ins->next = NULL; return ins; } static gaiaDxfInsertPtr clone_dxf_insert (gaiaDxfInsertPtr org) { /* cloning a DXF Insertt object */ gaiaDxfExtraAttrPtr ext_org; gaiaDxfExtraAttrPtr ext; int len; gaiaDxfInsertPtr ins = malloc (sizeof (gaiaDxfInsert)); len = strlen (org->block_id); ins->block_id = malloc (len + 1); strcpy (ins->block_id, org->block_id); ins->x = org->x; ins->y = org->y; ins->z = org->z; ins->scale_x = org->scale_x; ins->scale_y = org->scale_y; ins->scale_z = org->scale_z; ins->angle = org->angle; ins->hasText = org->hasText; ins->hasPoint = org->hasPoint; ins->hasLine = org->hasLine; ins->hasPolyg = org->hasPolyg; ins->hasHatch = org->hasHatch; ins->is3Dtext = org->is3Dtext; ins->is3Dpoint = org->is3Dpoint; ins->is3Dline = org->is3Dline; ins->is3Dpolyg = org->is3Dpolyg; ins->first = NULL; ins->last = NULL; ext_org = org->first; while (ext_org != NULL) { ext = clone_dxf_extra (ext_org); if (ins->first == NULL) ins->first = ext; if (ins->last != NULL) ins->last->next = ext; ins->last = ext; ext_org = ext_org->next; } ins->next = NULL; return ins; } static void destroy_dxf_insert (gaiaDxfInsertPtr ins) { /* memory cleanup - destroying a DXF Insert object */ gaiaDxfExtraAttrPtr ext; gaiaDxfExtraAttrPtr n_ext; if (ins == NULL) return; if (ins->block_id != NULL) free (ins->block_id); ext = ins->first; while (ext != NULL) { n_ext = ext->next; destroy_dxf_extra (ext); ext = n_ext; } free (ins); } static void insert_dxf_insert (gaiaDxfParserPtr dxf, const char *layer_name, gaiaDxfInsertPtr ins) { /* inserting an INSERT object into the appropriate Layer */ gaiaDxfLayerPtr lyr = dxf->first_layer; while (lyr != NULL) { if (strcmp (lyr->layer_name, layer_name) == 0) { /* found the matching Layer */ ins->first = dxf->first_ext; ins->last = dxf->last_ext; dxf->first_ext = NULL; dxf->last_ext = NULL; if (ins->hasText) { /* indirect Text reference */ gaiaDxfInsertPtr ins2 = clone_dxf_insert (ins); if (lyr->first_ins_text == NULL) lyr->first_ins_text = ins2; if (lyr->last_ins_text != NULL) lyr->last_ins_text->next = ins2; lyr->last_ins_text = ins2; if (ins2->is3Dtext) lyr->is3DinsText = 1; if (ins2->first != NULL) lyr->hasExtraInsText = 1; } if (ins->hasPoint) { /* indirect Point reference */ gaiaDxfInsertPtr ins2 = clone_dxf_insert (ins); if (lyr->first_ins_point == NULL) lyr->first_ins_point = ins2; if (lyr->last_ins_point != NULL) lyr->last_ins_point->next = ins2; lyr->last_ins_point = ins2; if (ins2->is3Dpoint) lyr->is3DinsPoint = 1; if (ins2->first != NULL) lyr->hasExtraInsPoint = 1; } if (ins->hasLine) { /* indirect Polyline (Linestring) reference */ gaiaDxfInsertPtr ins2 = clone_dxf_insert (ins); if (lyr->first_ins_line == NULL) lyr->first_ins_line = ins2; if (lyr->last_ins_line != NULL) lyr->last_ins_line->next = ins2; lyr->last_ins_line = ins2; if (ins2->is3Dline) lyr->is3DinsLine = 1; if (ins2->first != NULL) lyr->hasExtraInsLine = 1; } if (ins->hasPolyg) { /* indirect Polyline (Polygon) reference */ gaiaDxfInsertPtr ins2 = clone_dxf_insert (ins); if (lyr->first_ins_polyg == NULL) lyr->first_ins_polyg = ins2; if (lyr->last_ins_polyg != NULL) lyr->last_ins_polyg->next = ins2; lyr->last_ins_polyg = ins2; if (ins2->is3Dpolyg) lyr->is3DinsPolyg = 1; if (ins2->first != NULL) lyr->hasExtraInsPolyg = 1; } destroy_dxf_insert (ins); return; } lyr = lyr->next; } destroy_dxf_insert (ins); } static gaiaDxfPointPtr alloc_dxf_point (double x, double y, double z) { /* allocating and initializing a DXF Point object */ gaiaDxfPointPtr pt = malloc (sizeof (gaiaDxfPoint)); pt->x = x; pt->y = y; pt->z = z; pt->next = NULL; pt->first = NULL; pt->last = NULL; return pt; } static void destroy_dxf_point (gaiaDxfPointPtr pt) { /* memory cleanup - destroying a DXF Point object */ gaiaDxfExtraAttrPtr ext; gaiaDxfExtraAttrPtr n_ext; if (pt == NULL) return; ext = pt->first; while (ext != NULL) { n_ext = ext->next; destroy_dxf_extra (ext); ext = n_ext; } free (pt); } static int is_3d_point (gaiaDxfPointPtr pt) { /* testing if it's really a 3D Point */ if (pt->z == 0.0) return 0; return 1; } static void insert_dxf_point (gaiaDxfParserPtr dxf, const char *layer_name, gaiaDxfPointPtr pt) { /* inserting a POINT object into the appropriate Layer */ gaiaDxfLayerPtr lyr = dxf->first_layer; while (lyr != NULL) { if (strcmp (lyr->layer_name, layer_name) == 0) { /* found the matching Layer */ if (lyr->first_point == NULL) lyr->first_point = pt; if (lyr->last_point != NULL) lyr->last_point->next = pt; lyr->last_point = pt; if (dxf->force_dims == GAIA_DXF_FORCE_2D || dxf->force_dims == GAIA_DXF_FORCE_3D) ; else { if (is_3d_point (pt)) lyr->is3Dpoint = 1; } pt->first = dxf->first_ext; pt->last = dxf->last_ext; dxf->first_ext = NULL; dxf->last_ext = NULL; if (pt->first != NULL) lyr->hasExtraPoint = 1; return; } lyr = lyr->next; } destroy_dxf_point (pt); } static void insert_dxf_block_point (gaiaDxfParserPtr dxf, gaiaDxfPointPtr pt) { /* inserting a POINT object into the current Block */ if (dxf->curr_block.first_point == NULL) dxf->curr_block.first_point = pt; if (dxf->curr_block.last_point != NULL) dxf->curr_block.last_point->next = pt; dxf->curr_block.last_point = pt; if (dxf->force_dims == GAIA_DXF_FORCE_2D || dxf->force_dims == GAIA_DXF_FORCE_3D) ; else { if (is_3d_point (pt)) dxf->curr_block.is3Dpoint = 1; } } static gaiaDxfPolylinePtr alloc_dxf_polyline (int is_closed, int points) { /* allocating and initializing a DXF Polyline object */ int i; gaiaDxfPolylinePtr ln = malloc (sizeof (gaiaDxfPolyline)); ln->is_closed = is_closed; ln->points = points; ln->x = malloc (sizeof (double) * points); ln->y = malloc (sizeof (double) * points); ln->z = malloc (sizeof (double) * points); for (i = 0; i < points; i++) { *(ln->x + i) = 0.0; *(ln->y + i) = 0.0; *(ln->z + i) = 0.0; } ln->first_hole = NULL; ln->last_hole = NULL; ln->first = NULL; ln->last = NULL; ln->next = NULL; return ln; } static gaiaDxfPolylinePtr alloc_dxf_line (double x0, double y0, double z0, double x1, double y1, double z1) { /* allocating and initializing a DXF Line object */ gaiaDxfPolylinePtr ln = malloc (sizeof (gaiaDxfPolyline)); ln->is_closed = 0; ln->points = 2; ln->x = malloc (sizeof (double) * 2); ln->y = malloc (sizeof (double) * 2); ln->z = malloc (sizeof (double) * 2); *(ln->x + 0) = x0; *(ln->y + 0) = y0; *(ln->z + 0) = z0; *(ln->x + 1) = x1; *(ln->y + 1) = y1; *(ln->z + 1) = z1; ln->first_hole = NULL; ln->last_hole = NULL; ln->first = NULL; ln->last = NULL; ln->next = NULL; return ln; } static void destroy_dxf_polyline (gaiaDxfPolylinePtr ln) { /* memory cleanup - destroying a DXF Polyline object */ gaiaDxfExtraAttrPtr ext; gaiaDxfExtraAttrPtr n_ext; gaiaDxfHolePtr hole; gaiaDxfHolePtr n_hole; if (ln == NULL) return; if (ln->x != NULL) free (ln->x); if (ln->y != NULL) free (ln->y); if (ln->z != NULL) free (ln->z); ext = ln->first; while (ext != NULL) { n_ext = ext->next; destroy_dxf_extra (ext); ext = n_ext; } hole = ln->first_hole; while (hole != NULL) { n_hole = hole->next; destroy_dxf_hole (hole); hole = n_hole; } free (ln); } static int is_3d_line (gaiaDxfPolylinePtr ln) { /* testing if it's really a 3D Polyline */ gaiaDxfHolePtr hole; int i; for (i = 0; i < ln->points; i++) { if (*(ln->z + i) != 0.0) return 1; } hole = ln->first_hole; while (hole != NULL) { for (i = 0; i < hole->points; i++) { if (*(hole->z + i) != 0.0) return 1; } } return 0; } static dxfRingsCollectionPtr alloc_dxf_rings () { /* allocating an empty Rings Collection */ dxfRingsCollectionPtr coll = malloc (sizeof (dxfRingsCollection)); coll->first = NULL; coll->last = NULL; return coll; } static void destroy_dxf_rings (dxfRingsCollectionPtr coll) { /* memory cleanup - destroying a Rings Collection */ gaiaDxfPolylinePtr ln; gaiaDxfPolylinePtr n_ln; if (coll == NULL) return; ln = coll->first; while (ln != NULL) { n_ln = ln->next; destroy_dxf_polyline (ln); ln = n_ln; } free (coll); } static void insert_dxf_ring (dxfRingsCollectionPtr coll, gaiaDxfPolylinePtr line, int start, int end) { /* inserting a Ring into the collection */ int i; int i2; int points = end - start + 1; gaiaDxfPolylinePtr out = alloc_dxf_polyline (1, points); for (i2 = 0, i = start; i <= end; i++, i2++) { *(out->x + i2) = *(line->x + i); *(out->y + i2) = *(line->y + i); *(out->z + i2) = *(line->z + i); } if (coll->first == NULL) coll->first = out; if (coll->last != NULL) coll->last->next = out; coll->last = out; } static void unlinked_rings (const void *p_cache, gaiaDxfPolylinePtr line) { /* attempt to identify unlinked Polygon rings */ int invalid; int start; int count; double x; double y; double z; int i; int i2; gaiaDxfHolePtr hole; dxfRingsCollectionPtr coll; gaiaDxfPolylinePtr ring; gaiaGeomCollPtr geom; gaiaGeomCollPtr result; gaiaPolygonPtr pg; gaiaRingPtr rng; int pgs; int ok; if (line == NULL) return; if (line->points <= 0) return; if (line->is_closed == 0) return; if (!force_closure (line)) return; coll = alloc_dxf_rings (); start = 0; while (start < line->points - 1) { /* looping on candidate rings */ x = *(line->x + start); y = *(line->y + start); z = *(line->z + start); invalid = 1; for (i = start + 1; i < line->points; i++) { if (*(line->x + i) == x && *(line->y + i) == y && *(line->z + i) == z) { insert_dxf_ring (coll, line, start, i); start = i + 1; invalid = 0; break; } } if (invalid) break; } count = 0; ring = coll->first; while (ring != NULL) { count++; ring = ring->next; } if (count < 2) invalid = 1; if (invalid) { /* no unlinked rings were found - quitting */ destroy_dxf_rings (coll); return; } /* building a candidate geometry (multilinestring) */ geom = gaiaAllocGeomCollXYZ (); ring = coll->first; while (ring != NULL) { /* inserting a ring into the collection */ gaiaLinestringPtr ln = gaiaAddLinestringToGeomColl (geom, ring->points); for (i = 0; i < ring->points; i++) { gaiaSetPointXYZ (ln->Coords, i, *(ring->x + i), *(ring->y + i), *(ring->z + i)); } ring = ring->next; } /* freeing the rings list */ destroy_dxf_rings (coll); /* attempting to reassemble a polygon */ if (p_cache != NULL) result = gaiaPolygonize_r (p_cache, geom, 0); else result = gaiaPolygonize (geom, 0); gaiaFreeGeomColl (geom); if (result == NULL) return; /* checking the returned polygon for validity */ pgs = 0; ok = 1; pg = result->FirstPolygon; while (pg != NULL) { pgs++; if (pg->NumInteriors == 0) ok = 0; pg = pg->Next; } if (ok == 1 && pgs == 1) { /* found a valid Polygon with internal holes(s) */ pg = result->FirstPolygon; rng = pg->Exterior; /* rebuilding the exterior ring */ free (line->x); free (line->y); free (line->z); line->points = rng->Points; line->x = malloc (sizeof (double) * line->points); line->y = malloc (sizeof (double) * line->points); line->z = malloc (sizeof (double) * line->points); for (i = 0; i < line->points; i++) { /* setting the exterior ring points */ gaiaGetPointXYZ (rng->Coords, i, &x, &y, &z); *(line->x + i) = x; *(line->y + i) = y; *(line->z + i) = z; } for (i2 = 0; i2 < pg->NumInteriors; i2++) { /* saving the Holes */ rng = pg->Interiors + i2; hole = alloc_dxf_hole (rng->Points); insert_dxf_hole (line, hole); for (i = 0; i < hole->points; i++) { /* setting the interior ring points */ gaiaGetPointXYZ (rng->Coords, i, &x, &y, &z); *(hole->x + i) = x; *(hole->y + i) = y; *(hole->z + i) = z; } } } gaiaFreeGeomColl (result); /* forcing the closure flag */ line->is_closed = 1; } static void insert_dxf_polyline (const void *p_cache, gaiaDxfParserPtr dxf, const char *layer_name, gaiaDxfPolylinePtr ln) { /* inserting a POLYLINE object into the appropriate Layer */ gaiaDxfLayerPtr lyr = dxf->first_layer; while (lyr != NULL) { if (strcmp (lyr->layer_name, layer_name) == 0) { /* found the matching Layer */ if (dxf->linked_rings) linked_rings (p_cache, ln); if (dxf->unlinked_rings) unlinked_rings (p_cache, ln); if (ln->is_closed) { /* it's a Ring */ if (lyr->first_polyg == NULL) lyr->first_polyg = ln; if (lyr->last_polyg != NULL) lyr->last_polyg->next = ln; lyr->last_polyg = ln; if (dxf->force_dims == GAIA_DXF_FORCE_2D || dxf->force_dims == GAIA_DXF_FORCE_3D) ; else { if (is_3d_line (ln)) lyr->is3Dpolyg = 1; } } else { /* it's a Linestring */ if (lyr->first_line == NULL) lyr->first_line = ln; if (lyr->last_line != NULL) lyr->last_line->next = ln; lyr->last_line = ln; if (dxf->force_dims == GAIA_DXF_FORCE_2D || dxf->force_dims == GAIA_DXF_FORCE_3D) ; else { if (is_3d_line (ln)) lyr->is3Dline = 1; } } ln->first = dxf->first_ext; ln->last = dxf->last_ext; dxf->first_ext = NULL; dxf->last_ext = NULL; if (ln->is_closed && ln->first != NULL) lyr->hasExtraPolyg = 1; if (ln->is_closed == 0 && ln->first != NULL) lyr->hasExtraLine = 1; return; } lyr = lyr->next; } destroy_dxf_polyline (ln); } static void insert_dxf_block_polyline (const void *p_cache, gaiaDxfParserPtr dxf, gaiaDxfPolylinePtr ln) { /* inserting a POLYLINE object into the current Block */ if (dxf->linked_rings) linked_rings (p_cache, ln); if (dxf->unlinked_rings) unlinked_rings (p_cache, ln); if (ln->is_closed) { /* it's a Ring */ if (dxf->curr_block.first_polyg == NULL) dxf->curr_block.first_polyg = ln; if (dxf->curr_block.last_polyg != NULL) dxf->curr_block.last_polyg->next = ln; dxf->curr_block.last_polyg = ln; if (dxf->force_dims == GAIA_DXF_FORCE_2D || dxf->force_dims == GAIA_DXF_FORCE_3D) ; else { if (is_3d_line (ln)) dxf->curr_block.is3Dpolyg = 1; } } else { /* it's a Linestring */ if (dxf->curr_block.first_line == NULL) dxf->curr_block.first_line = ln; if (dxf->curr_block.last_line != NULL) dxf->curr_block.last_line->next = ln; dxf->curr_block.last_line = ln; if (dxf->force_dims == GAIA_DXF_FORCE_2D || dxf->force_dims == GAIA_DXF_FORCE_3D) ; else { if (is_3d_line (ln)) dxf->curr_block.is3Dline = 1; } } ln->first = dxf->first_ext; ln->last = dxf->last_ext; dxf->first_ext = NULL; dxf->last_ext = NULL; } static gaiaDxfBlockPtr alloc_dxf_block (const char *layer, const char *id) { /* allocating and initializing a DXF Block object */ int len; gaiaDxfBlockPtr blk = malloc (sizeof (gaiaDxfBlock)); blk->hasInsert = 0; len = strlen (layer); blk->layer_name = malloc (len + 1); strcpy (blk->layer_name, layer); len = strlen (id); blk->block_id = malloc (len + 1); strcpy (blk->block_id, id); blk->first_text = NULL; blk->last_text = NULL; blk->first_point = NULL; blk->last_point = NULL; blk->first_line = NULL; blk->last_line = NULL; blk->first_polyg = NULL; blk->last_polyg = NULL; blk->first_hatch = NULL; blk->last_hatch = NULL; blk->is3Dtext = 0; blk->is3Dpoint = 0; blk->is3Dline = 0; blk->is3Dpolyg = 0; blk->next = NULL; return blk; } static void destroy_dxf_block (gaiaDxfBlockPtr blk) { /* memory cleanup - destroying a DXF Block object */ gaiaDxfTextPtr txt; gaiaDxfTextPtr n_txt; gaiaDxfPointPtr pt; gaiaDxfPointPtr n_pt; gaiaDxfPolylinePtr ln; gaiaDxfPolylinePtr n_ln; gaiaDxfHatchPtr htc; gaiaDxfHatchPtr n_htc; if (blk == NULL) return; if (blk->layer_name != NULL) free (blk->layer_name); if (blk->block_id != NULL) free (blk->block_id); txt = blk->first_text; while (txt != NULL) { n_txt = txt->next; destroy_dxf_text (txt); txt = n_txt; } pt = blk->first_point; while (pt != NULL) { n_pt = pt->next; destroy_dxf_point (pt); pt = n_pt; } ln = blk->first_line; while (ln != NULL) { n_ln = ln->next; destroy_dxf_polyline (ln); ln = n_ln; } ln = blk->first_polyg; while (ln != NULL) { n_ln = ln->next; destroy_dxf_polyline (ln); ln = n_ln; } htc = blk->first_hatch; while (htc != NULL) { n_htc = htc->next; destroy_dxf_hatch (htc); htc = n_htc; } free (blk); } static void insert_dxf_block (gaiaDxfParserPtr dxf) { /* inserting a DXF Block object */ gaiaDxfBlockPtr blk; int ok = 0; if (dxf->curr_block.layer_name == NULL) return; if (dxf->curr_block.block_id == NULL) return; if (dxf->curr_block.first_text != NULL) ok++; if (dxf->curr_block.first_point != NULL) ok++; if (dxf->curr_block.first_line != NULL) ok++; if (dxf->curr_block.first_polyg != NULL) ok++; if (dxf->curr_block.first_hatch != NULL) ok++; if (ok == 0) return; blk = alloc_dxf_block (dxf->curr_block.layer_name, dxf->curr_block.block_id); blk->first_text = dxf->curr_block.first_text; blk->last_text = dxf->curr_block.last_text; dxf->curr_block.first_text = NULL; dxf->curr_block.last_text = NULL; blk->first_point = dxf->curr_block.first_point; blk->last_point = dxf->curr_block.last_point; dxf->curr_block.first_point = NULL; dxf->curr_block.last_point = NULL; blk->first_line = dxf->curr_block.first_line; blk->last_line = dxf->curr_block.last_line; dxf->curr_block.first_line = NULL; dxf->curr_block.last_line = NULL; blk->first_polyg = dxf->curr_block.first_polyg; blk->last_polyg = dxf->curr_block.last_polyg; dxf->curr_block.first_polyg = NULL; dxf->curr_block.last_polyg = NULL; blk->first_hatch = dxf->curr_block.first_hatch; blk->last_hatch = dxf->curr_block.last_hatch; dxf->curr_block.first_hatch = NULL; dxf->curr_block.last_hatch = NULL; if (dxf->first_block == NULL) dxf->first_block = blk; if (dxf->last_block != NULL) dxf->last_block->next = blk; dxf->last_block = blk; } static gaiaDxfLayerPtr alloc_dxf_layer (const char *name, int force_dims) { /* allocating and initializing a DXF Layer object */ int len; gaiaDxfLayerPtr lyr = malloc (sizeof (gaiaDxfLayer)); len = strlen (name); lyr->layer_name = malloc (len + 1); strcpy (lyr->layer_name, name); lyr->first_text = NULL; lyr->last_text = NULL; lyr->first_point = NULL; lyr->last_point = NULL; lyr->first_line = NULL; lyr->last_line = NULL; lyr->first_polyg = NULL; lyr->last_polyg = NULL; lyr->first_hatch = NULL; lyr->last_hatch = NULL; lyr->first_ins_text = NULL; lyr->last_ins_text = NULL; lyr->first_ins_point = NULL; lyr->last_ins_point = NULL; lyr->first_ins_line = NULL; lyr->last_ins_line = NULL; lyr->first_ins_polyg = NULL; lyr->last_ins_polyg = NULL; lyr->first_ins_hatch = NULL; lyr->last_ins_hatch = NULL; if (force_dims == GAIA_DXF_FORCE_3D) { lyr->is3Dtext = 1; lyr->is3Dpoint = 1; lyr->is3Dline = 1; lyr->is3Dpolyg = 1; lyr->is3DinsText = 1; lyr->is3DinsPoint = 1; lyr->is3DinsLine = 1; lyr->is3DinsPolyg = 1; } else { lyr->is3Dtext = 0; lyr->is3Dpoint = 0; lyr->is3Dline = 0; lyr->is3Dpolyg = 0; lyr->is3DinsText = 0; lyr->is3DinsPoint = 0; lyr->is3DinsLine = 0; lyr->is3DinsPolyg = 0; } lyr->hasExtraText = 0; lyr->hasExtraPoint = 0; lyr->hasExtraLine = 0; lyr->hasExtraPolyg = 0; lyr->hasExtraInsText = 0; lyr->hasExtraInsPoint = 0; lyr->hasExtraInsLine = 0; lyr->hasExtraInsPolyg = 0; lyr->next = NULL; return lyr; } static void destroy_dxf_layer (gaiaDxfLayerPtr lyr) { /* memory cleanup - destroying a DXF Layer object */ gaiaDxfTextPtr txt; gaiaDxfTextPtr n_txt; gaiaDxfPointPtr pt; gaiaDxfPointPtr n_pt; gaiaDxfPolylinePtr ln; gaiaDxfPolylinePtr n_ln; gaiaDxfHatchPtr ht; gaiaDxfHatchPtr n_ht; gaiaDxfInsertPtr ins; gaiaDxfInsertPtr n_ins; if (lyr == NULL) return; txt = lyr->first_text; while (txt != NULL) { n_txt = txt->next; destroy_dxf_text (txt); txt = n_txt; } pt = lyr->first_point; while (pt != NULL) { n_pt = pt->next; destroy_dxf_point (pt); pt = n_pt; } ln = lyr->first_line; while (ln != NULL) { n_ln = ln->next; destroy_dxf_polyline (ln); ln = n_ln; } ln = lyr->first_polyg; while (ln != NULL) { n_ln = ln->next; destroy_dxf_polyline (ln); ln = n_ln; } ht = lyr->first_hatch; while (ht != NULL) { n_ht = ht->next; destroy_dxf_hatch (ht); ht = n_ht; } ins = lyr->first_ins_text; while (ins != NULL) { n_ins = ins->next; destroy_dxf_insert (ins); ins = n_ins; } ins = lyr->first_ins_point; while (ins != NULL) { n_ins = ins->next; destroy_dxf_insert (ins); ins = n_ins; } ins = lyr->first_ins_line; while (ins != NULL) { n_ins = ins->next; destroy_dxf_insert (ins); ins = n_ins; } ins = lyr->first_ins_polyg; while (ins != NULL) { n_ins = ins->next; destroy_dxf_insert (ins); ins = n_ins; } ins = lyr->first_ins_hatch; while (ins != NULL) { n_ins = ins->next; destroy_dxf_insert (ins); ins = n_ins; } if (lyr->layer_name != NULL) free (lyr->layer_name); free (lyr); } static void insert_dxf_layer (gaiaDxfParserPtr dxf, gaiaDxfLayerPtr lyr) { /* inserting a Layer object into the DXF struct */ if (dxf->first_layer == NULL) dxf->first_layer = lyr; if (dxf->last_layer != NULL) dxf->last_layer->next = lyr; dxf->last_layer = lyr; } static void force_missing_layer (gaiaDxfParserPtr dxf) { /* forcing undeclared layers [missing TABLES section] */ int ok_layer = 1; if (dxf->undeclared_layers == 0) return; if (dxf->selected_layer != NULL) { ok_layer = 0; if (strcmp (dxf->selected_layer, dxf->curr_layer_name) == 0) ok_layer = 1; } if (ok_layer) { int already_defined = 0; gaiaDxfLayerPtr lyr = dxf->first_layer; while (lyr != NULL) { if (strcmp (lyr->layer_name, dxf->curr_layer_name) == 0) { already_defined = 1; break; } lyr = lyr->next; } if (already_defined) return; lyr = alloc_dxf_layer (dxf->curr_layer_name, dxf->force_dims); insert_dxf_layer (dxf, lyr); } } static void set_dxf_vertex (gaiaDxfParserPtr dxf) { /* saving the current Polyline Vertex */ gaiaDxfPointPtr pt = malloc (sizeof (gaiaDxfPoint)); pt->x = dxf->curr_point.x; pt->y = dxf->curr_point.y; pt->z = dxf->curr_point.z; pt->first = NULL; pt->last = NULL; pt->next = NULL; if (dxf->first_pt == NULL) dxf->first_pt = pt; if (dxf->last_pt != NULL) dxf->last_pt->next = pt; dxf->last_pt = pt; dxf->curr_point.x = 0.0; dxf->curr_point.y = 0.0; dxf->curr_point.z = 0.0; } static void save_current_polyline (const void *p_cache, gaiaDxfParserPtr dxf) { /* saving the current Polyline */ int points = 0; gaiaDxfPolylinePtr ln; gaiaDxfPointPtr n_pt; gaiaDxfPointPtr pt; if (dxf->curr_layer_name == NULL) goto clear; pt = dxf->first_pt; while (pt != NULL) { /* counting how many vertices are into the polyline */ points++; pt = pt->next; } ln = alloc_dxf_polyline (dxf->is_closed_polyline, points); points = 0; pt = dxf->first_pt; while (pt != NULL) { /* setting vertices into the polyline */ *(ln->x + points) = pt->x; *(ln->y + points) = pt->y; *(ln->z + points) = pt->z; points++; pt = pt->next; } if (dxf->is_block) insert_dxf_block_polyline (p_cache, dxf, ln); else { force_missing_layer (dxf); insert_dxf_polyline (p_cache, dxf, dxf->curr_layer_name, ln); } /* resetting the current polyline */ clear: pt = dxf->first_pt; while (pt != NULL) { n_pt = pt->next; destroy_dxf_point (pt); pt = n_pt; } /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; dxf->first_pt = NULL; dxf->last_pt = NULL; } static void reset_dxf_polyline (const void *p_cache, gaiaDxfParserPtr dxf) { /* resetting the current DXF polyline */ if (dxf->is_polyline) { if (dxf->first_pt != NULL) save_current_polyline (p_cache, dxf); dxf->is_polyline = 0; } } static void reset_dxf_block (gaiaDxfParserPtr dxf) { /* memory cleanup - resetting the current DXF Block */ gaiaDxfTextPtr txt; gaiaDxfTextPtr n_txt; gaiaDxfPointPtr pt; gaiaDxfPointPtr n_pt; gaiaDxfPolylinePtr ln; gaiaDxfPolylinePtr n_ln; gaiaDxfHatchPtr htc; gaiaDxfHatchPtr n_htc; if (dxf->curr_block.layer_name != NULL) free (dxf->curr_block.layer_name); if (dxf->curr_block.block_id != NULL) free (dxf->curr_block.block_id); txt = dxf->curr_block.first_text; while (txt != NULL) { n_txt = txt->next; destroy_dxf_text (txt); txt = n_txt; } pt = dxf->curr_block.first_point; while (pt != NULL) { n_pt = pt->next; destroy_dxf_point (pt); pt = n_pt; } ln = dxf->curr_block.first_line; while (ln != NULL) { n_ln = ln->next; destroy_dxf_polyline (ln); ln = n_ln; } ln = dxf->curr_block.first_polyg; while (ln != NULL) { n_ln = ln->next; destroy_dxf_polyline (ln); ln = n_ln; } htc = dxf->curr_block.first_hatch; while (htc != NULL) { n_htc = htc->next; destroy_dxf_hatch (htc); htc = n_htc; } dxf->curr_block.layer_name = NULL; dxf->curr_block.block_id = NULL; dxf->curr_block.first_text = NULL; dxf->curr_block.last_text = NULL; dxf->curr_block.first_point = NULL; dxf->curr_block.last_point = NULL; dxf->curr_block.first_line = NULL; dxf->curr_block.last_line = NULL; dxf->curr_block.first_polyg = NULL; dxf->curr_block.last_polyg = NULL; dxf->curr_block.first_hatch = NULL; dxf->curr_block.last_hatch = NULL; dxf->curr_block.is3Dtext = 0; dxf->curr_block.is3Dpoint = 0; dxf->curr_block.is3Dline = 0; dxf->curr_block.is3Dpolyg = 0; } static gaiaDxfBlockPtr find_dxf_block (gaiaDxfParserPtr dxf, const char *layer_name, const char *block_id) { /* attempting to find a Block object by its Id */ gaiaDxfBlockPtr blk = dxf->first_block; while (blk != NULL) { if (layer_name != NULL && block_id != NULL) { if (strcmp (blk->layer_name, layer_name) == 0 && strcmp (blk->block_id, block_id) == 0) { /* ok, matching item found */ return blk; } } blk = blk->next; } return NULL; } static void save_current_circle (const void *p_cache, gaiaDxfParserPtr dxf) { /* saving the current Circle */ int iv; double x; double y; gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr circle; gaiaDxfPolylinePtr ln; if (dxf->curr_layer_name == NULL) return; geom = gaiaMakeCircle (dxf->curr_circle.cx, dxf->curr_circle.cy, dxf->curr_circle.radius, 2.5); if (geom == NULL) goto stop; circle = geom->FirstLinestring; if (circle == NULL) goto stop; ln = alloc_dxf_polyline (0, circle->Points); for (iv = 0; iv < circle->Points; iv++) { /* setting vertices into the polyline */ gaiaGetPoint (circle->Coords, iv, &x, &y); *(ln->x + iv) = x; *(ln->y + iv) = y; *(ln->z + iv) = dxf->curr_circle.cz; } if (dxf->is_block) insert_dxf_block_polyline (p_cache, dxf, ln); else { force_missing_layer (dxf); insert_dxf_polyline (p_cache, dxf, dxf->curr_layer_name, ln); } stop: /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; if (geom != NULL) gaiaFreeGeomColl (geom); } static void save_current_arc (const void *p_cache, gaiaDxfParserPtr dxf) { /* saving the current Arc */ int iv; double x; double y; gaiaGeomCollPtr geom; gaiaLinestringPtr arc; gaiaDxfPolylinePtr ln; if (dxf->curr_layer_name == NULL) return; geom = gaiaMakeArc (dxf->curr_arc.cx, dxf->curr_arc.cy, dxf->curr_arc.radius, dxf->curr_arc.start, dxf->curr_arc.stop, 2.5); if (geom == NULL) goto stop; arc = geom->FirstLinestring; if (arc == NULL) goto stop; ln = alloc_dxf_polyline (0, arc->Points); for (iv = 0; iv < arc->Points; iv++) { /* setting vertices into the polyline */ gaiaGetPoint (arc->Coords, iv, &x, &y); *(ln->x + iv) = x; *(ln->y + iv) = y; *(ln->z + iv) = dxf->curr_arc.cz; } if (dxf->is_block) insert_dxf_block_polyline (p_cache, dxf, ln); else { force_missing_layer (dxf); insert_dxf_polyline (p_cache, dxf, dxf->curr_layer_name, ln); } stop: /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; if (geom != NULL) gaiaFreeGeomColl (geom); } static void reset_dxf_entity (const void *p_cache, gaiaDxfParserPtr dxf) { /* resetting the current DXF entity */ gaiaDxfExtraAttrPtr ext; gaiaDxfExtraAttrPtr n_ext; if (dxf->is_vertex) { /* saving the current Vertex */ set_dxf_vertex (dxf); dxf->is_vertex = 0; return; } if (dxf->is_polyline) return; if (dxf->is_layer) { /* saving the current Table aka Layer */ int ok_layer = 1; if (dxf->selected_layer != NULL) { ok_layer = 0; if (strcmp (dxf->selected_layer, dxf->curr_layer_name) == 0) ok_layer = 1; } if (ok_layer) { gaiaDxfLayerPtr lyr = alloc_dxf_layer (dxf->curr_layer_name, dxf->force_dims); insert_dxf_layer (dxf, lyr); dxf->undeclared_layers = 0; } /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; dxf->is_layer = 0; } if (dxf->is_insert) { gaiaDxfBlockPtr blk = find_dxf_block (dxf, dxf->curr_layer_name, dxf->curr_insert.block_id); if (blk != NULL) { /* saving the current Insert */ gaiaDxfInsertPtr ins = alloc_dxf_insert (dxf->curr_insert.block_id, dxf->curr_insert.x, dxf->curr_insert.y, dxf->curr_insert.z, dxf->curr_insert.scale_x, dxf->curr_insert.scale_y, dxf->curr_insert.scale_z, dxf->curr_insert.angle); blk->hasInsert = 1; if (blk->first_text != NULL) { ins->hasText = 1; if (blk->is3Dtext) ins->is3Dtext = 1; } if (blk->first_point != NULL) { ins->hasPoint = 1; if (blk->is3Dpoint) ins->is3Dpoint = 1; } if (blk->first_line != NULL) { ins->hasLine = 1; if (blk->is3Dline) ins->is3Dline = 1; } if (blk->first_polyg != NULL) { ins->hasPolyg = 1; if (blk->is3Dpolyg) ins->is3Dpolyg = 1; } if (blk->first_hatch != NULL) ins->hasHatch = 1; force_missing_layer (dxf); insert_dxf_insert (dxf, dxf->curr_layer_name, ins); } /* resetting curr_insert */ dxf->curr_insert.x = 0.0; dxf->curr_insert.y = 0.0; dxf->curr_insert.z = 0.0; dxf->curr_insert.scale_x = 0.0; dxf->curr_insert.scale_y = 0.0; dxf->curr_insert.scale_z = 0.0; dxf->curr_insert.angle = 0.0; dxf->curr_insert.is3Dtext = 0; dxf->curr_insert.is3Dpoint = 0; dxf->curr_insert.is3Dline = 0; dxf->curr_insert.is3Dpolyg = 0; if (dxf->curr_insert.block_id != NULL) free (dxf->curr_insert.block_id); dxf->curr_insert.block_id = NULL; dxf->is_insert = 0; /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; } if (dxf->is_line) { /* saving the current Line */ gaiaDxfPolylinePtr ln = alloc_dxf_line (dxf->curr_point.x, dxf->curr_point.y, dxf->curr_point.z, dxf->curr_end_point.x, dxf->curr_end_point.y, dxf->curr_end_point.z); if (dxf->is_block) insert_dxf_block_polyline (p_cache, dxf, ln); else { force_missing_layer (dxf); insert_dxf_polyline (p_cache, dxf, dxf->curr_layer_name, ln); } /* resetting curr_line */ dxf->curr_point.x = 0.0; dxf->curr_point.y = 0.0; dxf->curr_point.z = 0.0; dxf->curr_end_point.x = 0.0; dxf->curr_end_point.y = 0.0; dxf->curr_end_point.z = 0.0; dxf->is_line = 0; /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; } if (dxf->is_hatch) { /* saving the current hatch */ if (dxf->curr_hatch != NULL) { if (is_valid_dxf_hatch (dxf->curr_hatch)) { create_dxf_hatch_lines (p_cache, dxf->curr_hatch, dxf->srid); if (dxf->is_block) insert_dxf_block_hatch (dxf, dxf->curr_hatch); else { force_missing_layer (dxf); insert_dxf_hatch (dxf, dxf->curr_layer_name, dxf->curr_hatch); } dxf->curr_hatch = NULL; } } dxf->is_hatch = 0; /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; } if (dxf->is_text) { /* saving the current Text */ gaiaDxfTextPtr txt = alloc_dxf_text (dxf->curr_text.label, dxf->curr_text.x, dxf->curr_text.y, dxf->curr_text.z, dxf->curr_text.angle); if (dxf->is_block) insert_dxf_block_text (dxf, txt); else { force_missing_layer (dxf); insert_dxf_text (dxf, dxf->curr_layer_name, txt); } /* resetting curr_text */ dxf->curr_text.x = 0.0; dxf->curr_text.y = 0.0; dxf->curr_text.z = 0.0; dxf->curr_text.angle = 0.0; if (dxf->curr_text.label != NULL) free (dxf->curr_text.label); dxf->curr_text.label = NULL; dxf->is_text = 0; /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; } if (dxf->is_point) { /* saving the current Point */ gaiaDxfPointPtr pt = alloc_dxf_point (dxf->curr_point.x, dxf->curr_point.y, dxf->curr_point.z); if (dxf->is_block) insert_dxf_block_point (dxf, pt); else { force_missing_layer (dxf); insert_dxf_point (dxf, dxf->curr_layer_name, pt); } /* resetting curr_point */ dxf->curr_point.x = 0.0; dxf->curr_point.y = 0.0; dxf->curr_point.z = 0.0; dxf->is_point = 0; /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; } if (dxf->is_lwpolyline) { /* saving the current Polyline */ save_current_polyline (p_cache, dxf); dxf->is_lwpolyline = 0; } if (dxf->is_circle) { /* saving the current Circle */ save_current_circle (p_cache, dxf); /* resetting curr_circle */ dxf->curr_circle.cx = 0.0; dxf->curr_circle.cy = 0.0; dxf->curr_circle.cz = 0.0; dxf->curr_circle.radius = 0.0; dxf->is_circle = 0; /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; } if (dxf->is_arc) { /* saving the current Arc */ save_current_arc (p_cache, dxf); /* resetting curr_arc */ dxf->curr_arc.cx = 0.0; dxf->curr_arc.cy = 0.0; dxf->curr_arc.cz = 0.0; dxf->curr_arc.radius = 0.0; dxf->curr_arc.start = 0.0; dxf->curr_arc.stop = 0.0; dxf->is_arc = 0; /* resetting curr_layer */ if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); dxf->curr_layer_name = NULL; } if (dxf->extra_key != NULL) { free (dxf->extra_key); dxf->extra_key = NULL; } if (dxf->extra_value != NULL) { free (dxf->extra_value); dxf->extra_value = NULL; } ext = dxf->first_ext; while (ext != NULL) { n_ext = ext->next; destroy_dxf_extra (ext); ext = n_ext; } dxf->first_ext = NULL; dxf->last_ext = NULL; if (dxf->curr_hatch != NULL) destroy_dxf_hatch (dxf->curr_hatch); dxf->curr_hatch = NULL; } static void set_dxf_layer_name (gaiaDxfParserPtr dxf, const char *name) { /* saving the current Layer Name */ int len; if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); len = strlen (name); dxf->curr_layer_name = malloc (len + 1); strcpy (dxf->curr_layer_name, name); } static void set_dxf_block_layer_name (gaiaDxfParserPtr dxf, const char *name) { /* saving the current Block Layer Name */ int len; if (dxf->curr_block.layer_name != NULL) free (dxf->curr_block.layer_name); len = strlen (name); dxf->curr_block.layer_name = malloc (len + 1); strcpy (dxf->curr_block.layer_name, name); } static void set_dxf_block_id (gaiaDxfParserPtr dxf, const char *id) { /* saving the current Block Id */ int len; if (dxf->curr_block.block_id != NULL) free (dxf->curr_block.block_id); len = strlen (id); dxf->curr_block.block_id = malloc (len + 1); strcpy (dxf->curr_block.block_id, id); } static void set_dxf_insert_block_id (gaiaDxfParserPtr dxf, const char *id) { /* saving the current Block Id */ int len; if (dxf->curr_insert.block_id != NULL) free (dxf->curr_insert.block_id); len = strlen (id); dxf->curr_insert.block_id = malloc (len + 1); strcpy (dxf->curr_insert.block_id, id); } static void set_dxf_label (gaiaDxfParserPtr dxf, const char *label) { /* saving the current Text Label */ int len; if (dxf->curr_text.label != NULL) free (dxf->curr_text.label); len = strlen (label); dxf->curr_text.label = malloc (len + 1); strcpy (dxf->curr_text.label, label); } static void set_dxf_extra_attr (gaiaDxfParserPtr dxf) { /* saving the current Extra Attribute */ gaiaDxfExtraAttrPtr ext = alloc_dxf_extra (); ext->key = dxf->extra_key; ext->value = dxf->extra_value; if (dxf->first_ext == NULL) dxf->first_ext = ext; if (dxf->last_ext != NULL) dxf->last_ext->next = ext; dxf->last_ext = ext; dxf->extra_key = NULL; dxf->extra_value = NULL; } static void set_dxf_extra_key (gaiaDxfParserPtr dxf, const char *key) { /* saving the current Extra Attribute Key */ int len; if (dxf->extra_key != NULL) free (dxf->extra_key); len = strlen (key); dxf->extra_key = malloc (len + 1); strcpy (dxf->extra_key, key); if (dxf->extra_key != NULL && dxf->extra_value != NULL) set_dxf_extra_attr (dxf); } static void set_dxf_extra_value (gaiaDxfParserPtr dxf, const char *value) { /* saving the current Extra Attribute Value */ int len; if (dxf->extra_value != NULL) free (dxf->extra_value); len = strlen (value); dxf->extra_value = malloc (len + 1); strcpy (dxf->extra_value, value); if (dxf->extra_key != NULL && dxf->extra_value != NULL) set_dxf_extra_attr (dxf); } static void create_dxf_curr_hatch (gaiaDxfParserPtr dxf) { /* creating the current Hatch being parsed */ if (dxf->curr_hatch != NULL) destroy_dxf_hatch (dxf->curr_hatch); dxf->curr_hatch = alloc_dxf_hatch (); } static void start_dxf_hatch_boundary (gaiaDxfParserPtr dxf) { /* starting a new Hatch Boundary Path */ if (dxf->curr_hatch != NULL) { gaiaDxfBoundaryPathPtr path = alloc_dxf_boundary_path (); insert_dxf_boundary_path (dxf->curr_hatch, path); dxf->is_hatch_boundary = 1; } } static void insert_dxf_hatch_boundary_segm (gaiaDxfParserPtr dxf) { if (dxf->curr_hatch != NULL) { gaiaDxfBoundaryPathPtr path = dxf->curr_hatch->last; if (path != NULL) { gaiaDxfHatchSegmPtr segm = alloc_dxf_hatch_segm (dxf->curr_point.x, dxf->curr_point.y, dxf->curr_end_point.x, dxf->curr_end_point.y); insert_dxf_boundary_segm (path, segm); } } dxf->curr_point.x = 0.0; dxf->curr_point.y = 0.0; dxf->curr_point.z = 0.0; dxf->curr_end_point.x = 0.0; dxf->curr_end_point.y = 0.0; dxf->curr_end_point.z = 0.0; } static void set_dxf_hatch_spacing (gaiaDxfParserPtr dxf, double spacing) { /* saving the current Hatch spacing */ if (dxf->curr_hatch != NULL) dxf->curr_hatch->spacing = spacing; } static void set_dxf_hatch_angle (gaiaDxfParserPtr dxf, double angle) { /* saving the current Hatch angle */ if (dxf->curr_hatch != NULL) dxf->curr_hatch->angle = angle; } static void set_dxf_hatch_base_x (gaiaDxfParserPtr dxf, double x) { /* saving the current Hatch base X */ if (dxf->curr_hatch != NULL) dxf->curr_hatch->base_x = x; } static void set_dxf_hatch_base_y (gaiaDxfParserPtr dxf, double y) { /* saving the current Hatch base Y */ if (dxf->curr_hatch != NULL) dxf->curr_hatch->base_y = y; } static void set_dxf_hatch_offset_x (gaiaDxfParserPtr dxf, double x) { /* saving the current Hatch offset X */ if (dxf->curr_hatch != NULL) dxf->curr_hatch->offset_x = x; } static void set_dxf_hatch_offset_y (gaiaDxfParserPtr dxf, double y) { /* saving the current Hatch offset Y */ if (dxf->curr_hatch != NULL) dxf->curr_hatch->offset_y = y; } static int op_code_line (const char *line) { /* checking for a valid op-code */ int numdigit = 0; int invalid = 0; const char *p = line; while (*p != '\0') { /* skipping leading white-spaces */ if (*p == ' ' || *p == '\t') { p++; continue; } else break; } while (*p != '\0') { /* evaluating each character */ if (*p >= '0' && *p <= '9') { numdigit++; p++; continue; } else { invalid = 1; break; } } if (numdigit > 0 && invalid == 0) return 1; return 0; } static int parse_dxf_line (const void *p_cache, gaiaDxfParserPtr dxf, const char *line) { /* parsing a DXF line */ dxf->line_no += 1; if (dxf->tables || dxf->entities || dxf->blocks) { /* handling OP-CODE lines */ if (dxf->op_code_line) { if (!op_code_line (line)) { /* unexpected value */ spatialite_e ("ERROR on line %d: expected on OP-CODE to be found\n", dxf->line_no); return 0; } dxf->op_code = atoi (line); if (dxf->op_code == 0) reset_dxf_entity (p_cache, dxf); dxf->op_code_line = 0; return 1; } dxf->op_code_line = 1; } if (dxf->eof) { /* reading past the end */ spatialite_e ("ERROR on line %d: attempting to read past EOF\n", dxf->line_no); return 0; } if (strcmp (line, "SECTION") == 0) { /* start SECTION tag */ reset_dxf_polyline (p_cache, dxf); if (dxf->section) { spatialite_e ("ERROR on line %d: unexpected SECTION\n", dxf->line_no); dxf->error = 1; return 0; } dxf->section = 1; return 1; } if (strcmp (line, "ENDSEC") == 0) { /* end SECTION tag */ reset_dxf_polyline (p_cache, dxf); if (!dxf->section) { spatialite_e ("ERROR on line %d: unexpected ENDSEC\n", dxf->line_no); dxf->error = 1; return 0; } dxf->section = 0; dxf->tables = 0; dxf->blocks = 0; dxf->is_block = 0; dxf->entities = 0; return 1; } if (strcmp (line, "TABLES") == 0) { /* start TABLES tag */ reset_dxf_polyline (p_cache, dxf); if (dxf->section) { dxf->tables = 1; dxf->op_code_line = 1; return 1; } } if (strcmp (line, "BLOCKS") == 0) { /* start BLOCKS tag */ reset_dxf_polyline (p_cache, dxf); if (dxf->section) { dxf->blocks = 1; dxf->op_code_line = 1; return 1; } } if (strcmp (line, "BLOCK") == 0) { /* start BLOCK tag */ reset_dxf_polyline (p_cache, dxf); if (dxf->blocks) { dxf->is_block = 1; dxf->op_code_line = 1; return 1; } } if (strcmp (line, "ENDBLK") == 0) { /* end BLOCK tag */ reset_dxf_polyline (p_cache, dxf); if (dxf->is_block) { insert_dxf_block (dxf); dxf->is_block = 0; dxf->op_code_line = 1; return 1; } } if (strcmp (line, "ENTITIES") == 0) { /* start ENTITIES tag */ reset_dxf_polyline (p_cache, dxf); if (dxf->section) { dxf->entities = 1; dxf->op_code_line = 1; return 1; } } if (strcmp (line, "LAYER") == 0) { /* start LAYER tag */ reset_dxf_polyline (p_cache, dxf); if (dxf->tables && dxf->op_code == 0) { dxf->is_layer = 1; return 1; } } if (strcmp (line, "INSERT") == 0) { /* start INSERT tag */ reset_dxf_polyline (p_cache, dxf); if (dxf->entities && dxf->op_code == 0) { dxf->is_insert = 1; return 1; } } if (strcmp (line, "INSERT") == 0) { /* start INSERT tag */ reset_dxf_polyline (p_cache, dxf); if (dxf->entities && dxf->op_code == 0) { dxf->is_insert = 1; return 1; } } if (strcmp (line, "TEXT") == 0) { /* start TEXT tag */ reset_dxf_polyline (p_cache, dxf); if (dxf->entities && dxf->op_code == 0) { dxf->is_text = 1; return 1; } if (dxf->is_block && dxf->op_code == 0) { dxf->is_text = 1; return 1; } } if (strcmp (line, "POINT") == 0) { /* start POINT tag */ reset_dxf_polyline (p_cache, dxf); if (dxf->entities && dxf->op_code == 0) { dxf->is_point = 1; return 1; } if (dxf->is_block && dxf->op_code == 0) { dxf->is_point = 1; return 1; } } if (strcmp (line, "POLYLINE") == 0) { /* start POLYLINE tag */ reset_dxf_polyline (p_cache, dxf); if (dxf->entities && dxf->op_code == 0) { dxf->is_polyline = 1; return 1; } if (dxf->is_block && dxf->op_code == 0) { dxf->is_polyline = 1; return 1; } } if (strcmp (line, "LWPOLYLINE") == 0) { /* start LWPOLYLINE tag */ reset_dxf_polyline (p_cache, dxf); if (dxf->entities && dxf->op_code == 0) { dxf->is_lwpolyline = 1; return 1; } if (dxf->is_block && dxf->op_code == 0) { dxf->is_lwpolyline = 1; return 1; } } if (strcmp (line, "LINE") == 0) { /* start LINE tag */ reset_dxf_polyline (p_cache, dxf); if (dxf->entities && dxf->op_code == 0) { dxf->is_line = 1; return 1; } if (dxf->is_block && dxf->op_code == 0) { dxf->is_line = 1; return 1; } } if (strcmp (line, "CIRCLE") == 0) { /* start CIRCLE tag */ reset_dxf_polyline (p_cache, dxf); if (dxf->entities && dxf->op_code == 0) { dxf->is_circle = 1; return 1; } if (dxf->is_block && dxf->op_code == 0) { dxf->is_circle = 1; return 1; } } if (strcmp (line, "ARC") == 0) { /* start ARC tag */ reset_dxf_polyline (p_cache, dxf); if (dxf->entities && dxf->op_code == 0) { dxf->is_arc = 1; return 1; } if (dxf->is_block && dxf->op_code == 0) { dxf->is_arc = 1; return 1; } } if (strcmp (line, "VERTEX") == 0) { /* start VERTEX tag */ if (dxf->is_polyline && dxf->op_code == 0) { dxf->is_vertex = 1; return 1; } } if (strcmp (line, "HATCH") == 0) { /* start HATCH tag */ if (dxf->entities && dxf->op_code == 0) { dxf->is_hatch = 1; return 1; } if (dxf->is_block && dxf->op_code == 0) { dxf->is_hatch = 1; return 1; } } if (strcmp (line, "EOF") == 0) { /* end of file marker tag */ reset_dxf_polyline (p_cache, dxf); dxf->eof = 1; return 1; } if (dxf->is_layer) { /* parsing Table attributes */ switch (dxf->op_code) { case 2: set_dxf_layer_name (dxf, line); break; }; } if (dxf->is_block) { /* parsing Block attributes */ switch (dxf->op_code) { case 2: set_dxf_block_id (dxf, line); break; case 8: set_dxf_block_layer_name (dxf, line); break; }; } if (dxf->is_line) { /* parsing Line attributes */ switch (dxf->op_code) { case 8: set_dxf_layer_name (dxf, line); break; case 10: dxf->curr_point.x = atof (line); break; case 20: dxf->curr_point.y = atof (line); break; case 30: dxf->curr_point.z = atof (line); break; case 11: dxf->curr_end_point.x = atof (line); break; case 21: dxf->curr_end_point.y = atof (line); break; case 31: dxf->curr_end_point.z = atof (line); break; }; } if (dxf->is_circle) { /* parsing Circle attributes */ switch (dxf->op_code) { case 8: set_dxf_layer_name (dxf, line); break; case 10: dxf->curr_circle.cx = atof (line); break; case 20: dxf->curr_circle.cy = atof (line); break; case 30: dxf->curr_circle.cz = atof (line); break; case 40: dxf->curr_circle.radius = atof (line); break; }; } if (dxf->is_arc) { /* parsing Arc attributes */ switch (dxf->op_code) { case 8: set_dxf_layer_name (dxf, line); break; case 10: dxf->curr_arc.cx = atof (line); break; case 20: dxf->curr_arc.cy = atof (line); break; case 30: dxf->curr_arc.cz = atof (line); break; case 40: dxf->curr_arc.radius = atof (line); break; case 50: dxf->curr_arc.start = atof (line); break; case 51: dxf->curr_arc.stop = atof (line); break; }; } if (dxf->is_insert) { /* parsing Insert attributes */ switch (dxf->op_code) { case 2: set_dxf_insert_block_id (dxf, line); break; case 8: set_dxf_layer_name (dxf, line); break; case 10: dxf->curr_insert.x = atof (line); break; case 20: dxf->curr_insert.y = atof (line); break; case 30: dxf->curr_insert.z = atof (line); break; case 41: dxf->curr_insert.scale_x = atof (line); break; case 42: dxf->curr_insert.scale_y = atof (line); break; case 43: dxf->curr_insert.scale_z = atof (line); break; case 50: dxf->curr_insert.angle = atof (line); break; case 1000: set_dxf_extra_value (dxf, line); break; case 1001: set_dxf_extra_key (dxf, line); break; }; } if (dxf->is_text) { /* parsing Text attributes */ switch (dxf->op_code) { case 1: set_dxf_label (dxf, line); break; case 8: set_dxf_layer_name (dxf, line); break; case 10: dxf->curr_text.x = atof (line); break; case 20: dxf->curr_text.y = atof (line); break; case 30: dxf->curr_text.z = atof (line); break; case 50: dxf->curr_text.angle = atof (line); break; case 1000: set_dxf_extra_value (dxf, line); break; case 1001: set_dxf_extra_key (dxf, line); break; }; } if (dxf->is_point) { /* parsing Point attributes */ switch (dxf->op_code) { case 8: set_dxf_layer_name (dxf, line); break; case 10: dxf->curr_point.x = atof (line); break; case 20: dxf->curr_point.y = atof (line); break; case 30: dxf->curr_point.z = atof (line); break; case 1000: set_dxf_extra_value (dxf, line); break; case 1001: set_dxf_extra_key (dxf, line); break; }; } if (dxf->is_lwpolyline) { /* parsing LwPolyline attributes */ switch (dxf->op_code) { case 8: set_dxf_layer_name (dxf, line); break; case 10: dxf->curr_point.x = atof (line); break; case 20: dxf->curr_point.y = atof (line); set_dxf_vertex (dxf); break; case 70: if ((atoi (line) & 0x01) == 0x01) dxf->is_closed_polyline = 1; else dxf->is_closed_polyline = 0; break; case 1000: set_dxf_extra_value (dxf, line); break; case 1001: set_dxf_extra_key (dxf, line); break; }; } if (dxf->is_polyline && dxf->is_vertex != 1) { /* parsing Polyline attributes */ switch (dxf->op_code) { case 8: set_dxf_layer_name (dxf, line); break; case 70: if ((atoi (line) & 0x01) == 0x01) dxf->is_closed_polyline = 1; else dxf->is_closed_polyline = 0; break; case 1000: set_dxf_extra_value (dxf, line); break; case 1001: set_dxf_extra_key (dxf, line); break; }; } if (dxf->is_vertex) { /* parsing Vertex attributes */ switch (dxf->op_code) { case 10: dxf->curr_point.x = atof (line); break; case 20: dxf->curr_point.y = atof (line); break; case 30: dxf->curr_point.z = atof (line); break; }; } if (dxf->is_hatch) { /* parsing Hatch attributes */ switch (dxf->op_code) { case 8: set_dxf_layer_name (dxf, line); create_dxf_curr_hatch (dxf); break; case 10: if (dxf->is_hatch_boundary) dxf->curr_point.x = atof (line); break; case 20: if (dxf->is_hatch_boundary) dxf->curr_point.y = atof (line); break; case 11: if (dxf->is_hatch_boundary) dxf->curr_end_point.x = atof (line); break; case 21: dxf->curr_end_point.y = atof (line); insert_dxf_hatch_boundary_segm (dxf); break; case 41: set_dxf_hatch_spacing (dxf, atof (line)); break; case 43: set_dxf_hatch_base_x (dxf, atof (line)); break; case 44: set_dxf_hatch_base_y (dxf, atof (line)); break; case 45: set_dxf_hatch_offset_x (dxf, atof (line)); break; case 46: set_dxf_hatch_offset_y (dxf, atof (line)); break; case 53: set_dxf_hatch_angle (dxf, atof (line)); break; case 92: start_dxf_hatch_boundary (dxf); break; case 97: dxf->is_hatch_boundary = 0; break; }; } return 1; } GAIAGEO_DECLARE gaiaDxfParserPtr gaiaCreateDxfParser (int srid, int force_dims, const char *prefix, const char *selected_layer, int special_rings) { /* allocating and initializing a DXF parser object */ gaiaDxfParserPtr dxf = malloc (sizeof (gaiaDxfParser)); dxf->line_no = 0; dxf->op_code_line = 0; dxf->op_code = -1; dxf->section = 0; dxf->tables = 0; dxf->blocks = 0; dxf->entities = 0; dxf->is_layer = 0; dxf->is_block = 0; dxf->is_text = 0; dxf->is_point = 0; dxf->is_polyline = 0; dxf->is_lwpolyline = 0; dxf->is_line = 0; dxf->is_circle = 0; dxf->is_arc = 0; dxf->is_vertex = 0; dxf->is_hatch = 0; dxf->is_hatch_boundary = 0; dxf->is_insert = 0; dxf->eof = 0; dxf->error = 0; dxf->curr_layer_name = NULL; dxf->curr_insert.x = 0.0; dxf->curr_insert.y = 0.0; dxf->curr_insert.z = 0.0; dxf->curr_insert.scale_x = 0.0; dxf->curr_insert.scale_y = 0.0; dxf->curr_insert.scale_z = 0.0; dxf->curr_insert.angle = 0.0; dxf->curr_insert.block_id = NULL; dxf->curr_insert.is3Dtext = 0; dxf->curr_insert.is3Dpoint = 0; dxf->curr_insert.is3Dline = 0; dxf->curr_insert.is3Dpolyg = 0; dxf->curr_text.x = 0.0; dxf->curr_text.y = 0.0; dxf->curr_text.z = 0.0; dxf->curr_text.angle = 0.0; dxf->curr_text.label = NULL; dxf->curr_point.x = 0.0; dxf->curr_point.y = 0.0; dxf->curr_point.z = 0.0; dxf->curr_block.layer_name = NULL; dxf->curr_block.block_id = NULL; dxf->curr_block.first_text = NULL; dxf->curr_block.last_text = NULL; dxf->curr_block.first_point = NULL; dxf->curr_block.last_point = NULL; dxf->curr_block.first_line = NULL; dxf->curr_block.last_line = NULL; dxf->curr_block.first_polyg = NULL; dxf->curr_block.last_polyg = NULL; dxf->curr_block.first_hatch = NULL; dxf->curr_block.last_hatch = NULL; dxf->curr_block.is3Dtext = 0; dxf->curr_block.is3Dpoint = 0; dxf->curr_block.is3Dline = 0; dxf->curr_block.is3Dpolyg = 0; dxf->curr_end_point.x = 0.0; dxf->curr_end_point.y = 0.0; dxf->curr_end_point.z = 0.0; dxf->curr_circle.cx = 0.0; dxf->curr_circle.cy = 0.0; dxf->curr_circle.cz = 0.0; dxf->curr_circle.radius = 0.0; dxf->curr_arc.cx = 0.0; dxf->curr_arc.cy = 0.0; dxf->curr_arc.cz = 0.0; dxf->curr_arc.radius = 0.0; dxf->curr_arc.start = 0.0; dxf->curr_arc.stop = 0.0; dxf->is_closed_polyline = 0; dxf->extra_key = NULL; dxf->extra_value = NULL; dxf->first_pt = NULL; dxf->last_pt = NULL; dxf->first_ext = NULL; dxf->last_ext = NULL; dxf->filename = NULL; dxf->first_layer = NULL; dxf->last_layer = NULL; dxf->first_block = NULL; dxf->last_block = NULL; dxf->curr_hatch = NULL; dxf->force_dims = force_dims; if (srid <= 0) srid = -1; dxf->srid = srid; dxf->prefix = prefix; dxf->selected_layer = selected_layer; dxf->linked_rings = 0; dxf->unlinked_rings = 0; if (special_rings == GAIA_DXF_RING_LINKED) dxf->linked_rings = 1; if (special_rings == GAIA_DXF_RING_UNLINKED) dxf->unlinked_rings = 1; dxf->undeclared_layers = 1; return dxf; } GAIAGEO_DECLARE void gaiaDestroyDxfParser (gaiaDxfParserPtr dxf) { /* memory cleanup: destroying a DXF parser object */ gaiaDxfLayerPtr lyr; gaiaDxfLayerPtr n_lyr; gaiaDxfPointPtr pt; gaiaDxfPointPtr n_pt; gaiaDxfExtraAttrPtr ext; gaiaDxfExtraAttrPtr n_ext; gaiaDxfBlockPtr blk; gaiaDxfBlockPtr n_blk; if (dxf == NULL) return; if (dxf->curr_text.label != NULL) free (dxf->curr_text.label); if (dxf->curr_layer_name != NULL) free (dxf->curr_layer_name); if (dxf->filename != NULL) free (dxf->filename); lyr = dxf->first_layer; while (lyr != NULL) { n_lyr = lyr->next; destroy_dxf_layer (lyr); lyr = n_lyr; } pt = dxf->first_pt; while (pt != NULL) { n_pt = pt->next; destroy_dxf_point (pt); pt = n_pt; } if (dxf->extra_key != NULL) free (dxf->extra_key); if (dxf->extra_value != NULL) free (dxf->extra_value); ext = dxf->first_ext; while (ext != NULL) { n_ext = ext->next; destroy_dxf_extra (ext); ext = n_ext; } blk = dxf->first_block; while (blk != NULL) { n_blk = blk->next; destroy_dxf_block (blk); blk = n_blk; } if (dxf->curr_hatch != NULL) destroy_dxf_hatch (dxf->curr_hatch); reset_dxf_block (dxf); free (dxf); } static void save_dxf_filename (gaiaDxfParserPtr dxf, const char *path) { /* saving the input/origin filename */ int len = strlen (path); const char *start = path; const char *stop = path + len - 1; const char *p = path; if (dxf->filename != NULL) free (dxf->filename); dxf->filename = NULL; if (path == NULL) return; while (*p != '\0') { if (*p == '/' || *p == '\\') start = p + 1; p++; } p = stop; while (p > path) { if (*p == '.') { stop = p - 1; break; } p--; } if (stop > start) { len = stop - start + 1; dxf->filename = malloc (len + 1); memset (dxf->filename, '\0', len + 1); memcpy (dxf->filename, start, len); } else { dxf->filename = malloc (len + 1); strcpy (dxf->filename, path); } } static int gaiaParseDxfFileCommon (const void *p_cache, gaiaDxfParserPtr dxf, const char *path) { /* parsing the whole DXF file */ int c; char line[4192]; char *p = line; FILE *fl; if (dxf == NULL) return 0; save_dxf_filename (dxf, path); if (dxf->first_layer != NULL || dxf->first_block != NULL) return 0; /* attempting to open the input file */ fl = fopen (path, "rb"); if (fl == NULL) return 0; /* scanning the DXF file */ while ((c = getc (fl)) != EOF) { if (c == '\r') { /* ignoring any CR */ continue; } if (c == '\n') { /* end line found */ *p = '\0'; if (!parse_dxf_line (p_cache, dxf, line)) goto stop; if (dxf->eof) { /* EOF marker found - quitting */ break; } p = line; continue; } *p++ = c; /* Even Rouault 2013-06-02 - avoiding a potential buffer overflow */ if (p - line == sizeof (line) - 1) goto stop; /* END - Even Rouault 2013-06-02 */ } fclose (fl); return 1; stop: fclose (fl); return 0; } GAIAGEO_DECLARE int gaiaParseDxfFile (gaiaDxfParserPtr dxf, const char *path) { return gaiaParseDxfFileCommon (NULL, dxf, path); } GAIAGEO_DECLARE int gaiaParseDxfFile_r (const void *p_cache, gaiaDxfParserPtr dxf, const char *path) { return gaiaParseDxfFileCommon (p_cache, dxf, path); } #endif /* GEOS enabled */ libspatialite-4.3.0a/src/dxf/dxf_load_mixed.c0000664000175000017500000020677612544707704016146 00000000000000/* dxf_load_mixed.c -- implements DXF support [loding features into the DB - mixed layers by geometry type] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: inital development of the DXF module has been funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #include #include #include "dxf_private.h" #if defined(_WIN32) && !defined(__MINGW32__) #define strcasecmp _stricmp #endif /* not WIN32 */ static int create_mixed_text_table (sqlite3 * handle, const char *name, int srid, int text3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Text-mixed" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " label TEXT NOT NULL,\n" " rotation DOUBLE NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'POINT', %Q)", name, srid, text3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_text_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_mixed_point_table (sqlite3 * handle, const char *name, int srid, int point3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Point-mixed" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'POINT', %Q)", name, srid, point3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_point_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_mixed_line_table (sqlite3 * handle, const char *name, int srid, int line3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Line-mixed" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'LINESTRING', %Q)", name, srid, line3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_line_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_mixed_polyg_table (sqlite3 * handle, const char *name, int srid, int polyg3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Polyg-mixed" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'POLYGON', %Q)", name, srid, polyg3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_polyg_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_mixed_hatch_table (sqlite3 * handle, const char *name, int srid, sqlite3_stmt ** xstmt, sqlite3_stmt ** xstmt2) { /* attempting to create the "Hatch-mixed" table */ char *sql; int ret; sqlite3_stmt *stmt; sqlite3_stmt *stmt2; char *xname; char *pattern; char *xpattern; char *fk_name; char *xfk_name; *xstmt = NULL; *xstmt2 = NULL; /* creating the Hatch-Boundary table */ xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'MULTIPOLYGON', 'XY')", name, srid); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } /* creating the Hatch-Pattern table */ xname = gaiaDoubleQuotedSql (name); pattern = sqlite3_mprintf ("%s_pattern", name); xpattern = gaiaDoubleQuotedSql (pattern); fk_name = sqlite3_mprintf ("fk_%s_pattern", name); xfk_name = gaiaDoubleQuotedSql (fk_name); sqlite3_free (fk_name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY NOT NULL,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " " REFERENCES \"%s\" (feature_id))", xpattern, xfk_name, xname); free (xname); free (xfk_name); free (xpattern); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'MULTILINESTRING', 'XY')", pattern, srid); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", pattern); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sqlite3_free (pattern); if (!create_hatch_boundary_stmt (handle, name, &stmt)) return 0; if (!create_hatch_pattern_stmt (handle, name, &stmt2)) return 0; *xstmt = stmt; *xstmt2 = stmt2; return 1; } static int create_mixed_text_extra_attr_table (sqlite3 * handle, const char *name, char *extra_name, sqlite3_stmt ** xstmt_ext) { /* attempting to create the "Text-mixed-extra-attr" table */ char *sql; int ret; sqlite3_stmt *stmt_ext; char *xname; char *xextra_name; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; char *view_name; char *xview_name; *xstmt_ext = NULL; fk_name = sqlite3_mprintf ("fk_%s", extra_name); xextra_name = gaiaDoubleQuotedSql (extra_name); xfk_name = gaiaDoubleQuotedSql (fk_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " feature_id INTEGER NOT NULL,\n" " attr_key TEXT NOT NULL,\n" " attr_value TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " "REFERENCES \"%s\" (feature_id))", xextra_name, xfk_name, xname); free (xextra_name); free (xfk_name); free (xname); sqlite3_free (fk_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", extra_name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", extra_name); xidx_name = gaiaDoubleQuotedSql (idx_name); xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xextra_name); free (xidx_name); free (xextra_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view_name = sqlite3_mprintf ("%s_view", name); xview_name = gaiaDoubleQuotedSql (view_name); xname = gaiaDoubleQuotedSql (name); xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT f.feature_id AS feature_id, f.filename AS filename, " "f.layer AS layer, f.label AS label, " "f.rotation AS rotation, f.geometry AS geometry, " "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " "FROM \"%s\" AS f " "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", xview_name, xname, xextra_name); free (xview_name); free (xname); free (xextra_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view_name); if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; *xstmt_ext = stmt_ext; return 1; } static int create_mixed_point_extra_attr_table (sqlite3 * handle, const char *name, char *extra_name, sqlite3_stmt ** xstmt_ext) { /* attempting to create the "Point-mixed-extra-attr" table */ char *sql; int ret; sqlite3_stmt *stmt_ext; char *xname; char *xextra_name; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; char *view_name; char *xview_name; *xstmt_ext = NULL; fk_name = sqlite3_mprintf ("fk_%s", extra_name); xextra_name = gaiaDoubleQuotedSql (extra_name); xfk_name = gaiaDoubleQuotedSql (fk_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " feature_id INTEGER NOT NULL,\n" " attr_key TEXT NOT NULL,\n" " attr_value TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " "REFERENCES \"%s\" (feature_id))", xextra_name, xfk_name, xname); free (xfk_name); free (xname); free (xextra_name); sqlite3_free (fk_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", extra_name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", extra_name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view_name = sqlite3_mprintf ("%s_view", name); xview_name = gaiaDoubleQuotedSql (view_name); xname = gaiaDoubleQuotedSql (name); xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT f.feature_id AS feature_id, f.filename AS filename, " "f.layer AS layer, f.geometry AS geometry, " "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " "FROM \"%s\" AS f " "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", xview_name, xname, xextra_name); free (xview_name); free (xname); free (xextra_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view_name); if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; *xstmt_ext = stmt_ext; return 1; } static int create_mixed_line_extra_attr_table (sqlite3 * handle, const char *name, char *extra_name, sqlite3_stmt ** xstmt_ext) { /* attempting to create the "Line-mixed-extra-attr" table */ char *sql; int ret; sqlite3_stmt *stmt_ext; char *xname; char *xextra_name; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; char *view_name; char *xview_name; *xstmt_ext = NULL; fk_name = sqlite3_mprintf ("fk_%s", extra_name); xextra_name = gaiaDoubleQuotedSql (extra_name); xfk_name = gaiaDoubleQuotedSql (fk_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " feature_id INTEGER NOT NULL,\n" " attr_key TEXT NOT NULL,\n" " attr_value TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " "REFERENCES \"%s\" (feature_id))", xextra_name, xfk_name, xname); free (xextra_name); free (xfk_name); free (xname); sqlite3_free (fk_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", extra_name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", extra_name); xidx_name = gaiaDoubleQuotedSql (idx_name); xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xextra_name); free (xidx_name); free (xextra_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view_name = sqlite3_mprintf ("%s_view", extra_name); xview_name = gaiaDoubleQuotedSql (view_name); xname = gaiaDoubleQuotedSql (name); xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT f.feature_id AS feature_id, f.filename AS filename, " "f.layer AS layer, f.geometry AS geometry, " "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " "FROM \"%s\" AS f " "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", xview_name, xname, xextra_name); free (xview_name); free (xname); free (xextra_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view_name); if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; *xstmt_ext = stmt_ext; return 1; } static int create_mixed_polyg_extra_attr_table (sqlite3 * handle, const char *name, char *extra_name, sqlite3_stmt ** xstmt_ext) { /* attempting to create the "Polyg-mixed-extra-attr" table */ char *sql; int ret; sqlite3_stmt *stmt_ext; char *xname; char *xextra_name; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; char *view_name; char *xview_name; *xstmt_ext = NULL; fk_name = sqlite3_mprintf ("fk_%s", extra_name); xextra_name = gaiaDoubleQuotedSql (extra_name); xfk_name = gaiaDoubleQuotedSql (fk_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " feature_id INTEGER NOT NULL,\n" " attr_key TEXT NOT NULL,\n" " attr_value TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " "REFERENCES \"%s\" (feature_id))", xextra_name, xfk_name, xname); free (xextra_name); free (xfk_name); free (xname); sqlite3_free (fk_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", extra_name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", extra_name); xidx_name = gaiaDoubleQuotedSql (idx_name); xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xextra_name); free (xidx_name); free (xextra_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view_name = sqlite3_mprintf ("%s_view", name); xview_name = gaiaDoubleQuotedSql (view_name); xname = gaiaDoubleQuotedSql (name); xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT f.feature_id AS feature_id, f.filename AS filename, " "f.layer AS layer, f.geometry AS geometry, " "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " "FROM \"%s\" AS f " "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", xview_name, xname, xextra_name); free (xview_name); free (xname); free (xextra_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view_name); if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; *xstmt_ext = stmt_ext; return 1; } DXF_PRIVATE int import_mixed (sqlite3 * handle, gaiaDxfParserPtr dxf, int append) { /* populating the target DB - all layers mixed altogether */ int text = 0; int point = 0; int line = 0; int polyg = 0; int hatch = 0; int insText = 0; int insPoint = 0; int insLine = 0; int insPolyg = 0; int insHatch = 0; int hasExtraText = 0; int hasExtraPoint = 0; int hasExtraLine = 0; int hasExtraPolyg = 0; int hasExtraInsText = 0; int hasExtraInsPoint = 0; int hasExtraInsLine = 0; int hasExtraInsPolyg = 0; int text3D = 0; int point3D = 0; int line3D = 0; int polyg3D = 0; int insText3D = 0; int insPoint3D = 0; int insLine3D = 0; int insPolyg3D = 0; int ret; sqlite3_stmt *stmt; sqlite3_stmt *stmt_ext; sqlite3_stmt *stmt_pattern; unsigned char *blob; int blob_size; gaiaGeomCollPtr geom; char *name; char *extra_name; char *block; gaiaDxfLayerPtr lyr = dxf->first_layer; while (lyr != NULL) { /* exploring Layers by type */ if (lyr->first_text != NULL) text = 1; if (lyr->first_point != NULL) point = 1; if (lyr->first_line != NULL) line = 1; if (lyr->first_polyg != NULL) polyg = 1; if (lyr->first_hatch != NULL) hatch = 1; if (lyr->first_ins_text != NULL) insText = 1; if (lyr->first_ins_point != NULL) insPoint = 1; if (lyr->first_ins_line != NULL) insLine = 1; if (lyr->first_ins_polyg != NULL) insPolyg = 1; if (lyr->first_ins_hatch != NULL) insHatch = 1; if (lyr->hasExtraText) hasExtraText = 1; if (lyr->hasExtraPoint) hasExtraPoint = 1; if (lyr->hasExtraLine) hasExtraLine = 1; if (lyr->hasExtraPolyg) hasExtraPolyg = 1; if (lyr->hasExtraInsText) hasExtraInsText = 1; if (lyr->hasExtraInsPoint) hasExtraInsPoint = 1; if (lyr->hasExtraInsLine) hasExtraInsLine = 1; if (lyr->hasExtraInsPolyg) hasExtraInsPolyg = 1; if (lyr->is3Dtext) text3D = 1; if (lyr->is3Dpoint) point3D = 1; if (lyr->is3Dline) line3D = 1; if (lyr->is3Dpolyg) polyg3D = 1; if (lyr->is3DinsText) insText3D = 1; if (lyr->is3DinsPoint) insPoint3D = 1; if (lyr->is3DinsLine) insLine3D = 1; if (lyr->is3DinsPolyg) insPolyg3D = 1; lyr = lyr->next; } if (text) { /* creating and populating the TEXT layer */ stmt_ext = NULL; extra_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("text_layer_%s", text3D ? "3d" : "2d"); else name = sqlite3_mprintf ("%stext_layer_%s", dxf->prefix, text3D ? "3d" : "2d"); if (append && check_text_table (handle, name, dxf->srid, text3D)) { /* appending into the already existing table */ if (!create_text_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (!create_mixed_text_table (handle, name, dxf->srid, text3D, &stmt)) return 0; } if (hasExtraText) { extra_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, extra_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_mixed_text_extra_attr_table (handle, name, extra_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfTextPtr txt = lyr->first_text; while (txt != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, txt->label, strlen (txt->label), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, txt->angle); if (text3D) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; if (text3D) gaiaAddPointToGeomCollXYZ (geom, txt->x, txt->y, txt->z); else gaiaAddPointToGeomColl (geom, txt->x, txt->y); gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 5, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = txt->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", extra_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } txt = txt->next; } lyr = lyr->next; } sqlite3_free (name); if (extra_name) sqlite3_free (extra_name); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT text_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } if (point) { /* creating and populating the POINT layer */ stmt_ext = NULL; extra_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("point_layer_%s", point3D ? "3d" : "2d"); else name = sqlite3_mprintf ("%spoint_layer_%s", dxf->prefix, point3D ? "3d" : "2d"); if (append && check_point_table (handle, name, dxf->srid, point3D)) { /* appending into the already existing table */ if (!create_point_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (!create_mixed_point_table (handle, name, dxf->srid, point3D, &stmt)) return 0; } if (hasExtraPoint) { extra_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, extra_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_mixed_point_extra_attr_table (handle, name, extra_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfPointPtr pt = lyr->first_point; while (pt != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (point3D) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; if (point3D) gaiaAddPointToGeomCollXYZ (geom, pt->x, pt->y, pt->z); else gaiaAddPointToGeomColl (geom, pt->x, pt->y); gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 3, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = pt->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", extra_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } pt = pt->next; } lyr = lyr->next; } sqlite3_free (name); if (extra_name) sqlite3_free (extra_name); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT point_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } if (line) { /* creating and populating the LINE layer */ stmt_ext = NULL; extra_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("line_layer_%s", line3D ? "3d" : "2d"); else name = sqlite3_mprintf ("%sline_layer_%s", dxf->prefix, line3D ? "3d" : "2d"); if (append && check_line_table (handle, name, dxf->srid, line3D)) { /* appending into the already existing table */ if (!create_line_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (!create_mixed_line_table (handle, name, dxf->srid, line3D, &stmt)) return 0; } if (hasExtraLine) { extra_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, extra_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_mixed_line_extra_attr_table (handle, name, extra_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfPolylinePtr ln = lyr->first_line; while (ln != NULL) { int iv; gaiaLinestringPtr p_ln; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (line3D) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; gaiaAddLinestringToGeomColl (geom, ln->points); p_ln = geom->FirstLinestring; for (iv = 0; iv < ln->points; iv++) { if (line3D) { gaiaSetPointXYZ (p_ln->Coords, iv, *(ln->x + iv), *(ln->y + iv), *(ln->z + iv)); } else { gaiaSetPoint (p_ln->Coords, iv, *(ln->x + iv), *(ln->y + iv)); } } gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 3, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = ln->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", extra_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ln = ln->next; } lyr = lyr->next; } sqlite3_free (name); if (extra_name) sqlite3_free (extra_name); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT line_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } if (polyg) { /* creating and populating the POLYG layer */ stmt_ext = NULL; extra_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("polyg_layer_%s", polyg3D ? "3d" : "2d"); else name = sqlite3_mprintf ("%spolyg_layer_%s", dxf->prefix, polyg3D ? "3d" : "2d"); if (append && check_polyg_table (handle, name, dxf->srid, polyg3D)) { /* appending into the already existing table */ if (!create_polyg_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (!create_mixed_polyg_table (handle, name, dxf->srid, polyg3D, &stmt)) return 0; } if (hasExtraPolyg) { extra_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, extra_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_mixed_polyg_extra_attr_table (handle, name, extra_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfPolylinePtr pg = lyr->first_polyg; while (pg != NULL) { int unclosed = check_unclosed_polyg (pg, lyr->is3Dpolyg); gaiaDxfHolePtr hole; int num_holes; int iv; gaiaPolygonPtr p_pg; gaiaRingPtr p_rng; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (polyg3D) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; num_holes = 0; hole = pg->first_hole; while (hole != NULL) { num_holes++; hole = hole->next; } gaiaAddPolygonToGeomColl (geom, pg->points + unclosed, num_holes); p_pg = geom->FirstPolygon; p_rng = p_pg->Exterior; for (iv = 0; iv < pg->points; iv++) { if (lyr->is3Dpolyg) { gaiaSetPointXYZ (p_rng->Coords, iv, *(pg->x + iv), *(pg->y + iv), *(pg->z + iv)); } else { gaiaSetPoint (p_rng->Coords, iv, *(pg->x + iv), *(pg->y + iv)); } } if (unclosed) { /* forcing the Ring to be closed */ if (lyr->is3Dpolyg) { gaiaSetPointXYZ (p_rng->Coords, pg->points, *(pg->x + 0), *(pg->y + 0), *(pg->z + 0)); } else { gaiaSetPoint (p_rng->Coords, pg->points, *(pg->x + 0), *(pg->y + 0)); } } num_holes = 0; hole = pg->first_hole; while (hole != NULL) { int unclosed = check_unclosed_hole (hole, lyr->is3Dpolyg); p_rng = gaiaAddInteriorRing (p_pg, num_holes, hole->points + unclosed); for (iv = 0; iv < hole->points; iv++) { if (lyr->is3Dpolyg) { gaiaSetPointXYZ (p_rng->Coords, iv, *(hole->x + iv), *(hole->y + iv), *(hole->z + iv)); } else { gaiaSetPoint (p_rng->Coords, iv, *(hole->x + iv), *(hole->y + iv)); } } if (unclosed) { /* forcing the Ring to be closed */ if (lyr->is3Dpolyg) { gaiaSetPointXYZ (p_rng->Coords, hole->points, *(hole->x + 0), *(hole->y + 0), *(hole->z + 0)); } else { gaiaSetPoint (p_rng->Coords, hole->points, *(hole->x + 0), *(hole->y + 0)); } } num_holes++; hole = hole->next; } gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 3, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = pg->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", extra_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } pg = pg->next; } lyr = lyr->next; } sqlite3_free (name); if (extra_name) sqlite3_free (extra_name); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT polyg_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } if (hatch) { /* creating and populating the HATCH layer */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("hatch_layer_2d"); else name = sqlite3_mprintf ("%shatch_layer_2d", dxf->prefix); if (append && check_hatch_tables (handle, name, dxf->srid)) { /* appending into the already existing tables */ if (!create_hatch_boundary_stmt (handle, name, &stmt)) return 0; if (!create_hatch_pattern_stmt (handle, name, &stmt_pattern)) return 0; } else { /* creating a new table */ if (!create_mixed_hatch_table (handle, name, dxf->srid, &stmt, &stmt_pattern)) return 0; } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfHatchPtr hatch = lyr->first_hatch; while (hatch != NULL) { sqlite3_int64 feature_id; gaiaDxfHatchSegmPtr segm; /* inserting the Boundary Geometry */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (hatch->boundary == NULL) sqlite3_bind_null (stmt, 3); else { gaiaToSpatiaLiteBlobWkb (hatch->boundary, &blob, &blob_size); sqlite3_bind_blob (stmt, 3, blob, blob_size, free); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_pattern); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } feature_id = sqlite3_last_insert_rowid (handle); /* inserting the Pattern Geometry */ sqlite3_reset (stmt_pattern); sqlite3_clear_bindings (stmt_pattern); sqlite3_bind_int64 (stmt_pattern, 1, feature_id); sqlite3_bind_text (stmt_pattern, 2, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt_pattern, 3, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); if (hatch->first_out == NULL) sqlite3_bind_null (stmt_pattern, 4); else { geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; geom->DeclaredType = GAIA_MULTILINESTRING; segm = hatch->first_out; while (segm != NULL) { gaiaLinestringPtr p_ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (p_ln->Coords, 0, segm->x0, segm->y0); gaiaSetPoint (p_ln->Coords, 1, segm->x1, segm->y1); segm = segm->next; } gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt_pattern, 4, blob, blob_size, free); } ret = sqlite3_step (stmt_pattern); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); sqlite3_finalize (stmt_pattern); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } hatch = hatch->next; } lyr = lyr->next; } sqlite3_free (name); sqlite3_finalize (stmt); sqlite3_finalize (stmt_pattern); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT hatch_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } if (insText) { /* creating and populating the INSERT (Text reference) layer */ stmt_ext = NULL; extra_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("instext_layer_%s", insText3D ? "3d" : "2d"); else name = sqlite3_mprintf ("%sinstext_layer_%s", dxf->prefix, insText3D ? "3d" : "2d"); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_text_%s", insText3D ? "3d" : "2d"); else block = sqlite3_mprintf ("%sblock_text_%s", dxf->prefix, insText3D ? "3d" : "2d"); if (!create_instext_table (handle, name, block, insText3D, &stmt)) return 0; sqlite3_free (block); } if (hasExtraInsText) { extra_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, extra_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_insert_extra_attr_table (handle, name, extra_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfInsertPtr ins = lyr->first_ins_text; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = ins->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", extra_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ins = ins->next; } lyr = lyr->next; } sqlite3_free (name); if (extra_name) sqlite3_free (extra_name); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT hatch_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } if (insPoint) { /* creating and populating the INSERT (Point reference) layer */ stmt_ext = NULL; extra_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("inspoint_layer_%s", insPoint3D ? "3d" : "2d"); else name = sqlite3_mprintf ("%sinspoint_layer_%s", dxf->prefix, insPoint3D ? "3d" : "2d"); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_point_%s", insPoint3D ? "3d" : "2d"); else block = sqlite3_mprintf ("%sblock_point_%s", dxf->prefix, insPoint3D ? "3d" : "2d"); if (!create_inspoint_table (handle, name, block, insPoint3D, &stmt)) return 0; sqlite3_free (block); } if (hasExtraInsPoint) { extra_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, extra_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_insert_extra_attr_table (handle, name, extra_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfInsertPtr ins = lyr->first_ins_point; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = ins->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", extra_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ins = ins->next; } lyr = lyr->next; } sqlite3_free (name); if (extra_name) sqlite3_free (extra_name); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT hatch_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } if (insLine) { /* creating and populating the INSERT (Linestring reference) layer */ stmt_ext = NULL; extra_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("insline_layer_%s", insLine3D ? "3d" : "2d"); else name = sqlite3_mprintf ("%sinsline_layer_%s", dxf->prefix, insLine3D ? "3d" : "2d"); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_line_%s", insLine3D ? "3d" : "2d"); else block = sqlite3_mprintf ("%sblock_line_%s", dxf->prefix, insLine3D ? "3d" : "2d"); if (!create_insline_table (handle, name, block, insLine3D, &stmt)) return 0; sqlite3_free (block); } if (hasExtraInsLine) { extra_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, extra_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_insert_extra_attr_table (handle, name, extra_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfInsertPtr ins = lyr->first_ins_line; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = ins->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", extra_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ins = ins->next; } lyr = lyr->next; } sqlite3_free (name); if (extra_name) sqlite3_free (extra_name); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT hatch_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } if (insPolyg) { /* creating and populating the INSERT (Polygon reference) layer */ stmt_ext = NULL; extra_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("inspolyg_layer_%s", insPolyg3D ? "3d" : "2d"); else name = sqlite3_mprintf ("%sinspolyg_layer_%s", dxf->prefix, insPolyg3D ? "3d" : "2d"); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_polyg_%s", insPolyg3D ? "3d" : "2d"); else block = sqlite3_mprintf ("%sblock_polyg_%s", dxf->prefix, insPolyg3D ? "3d" : "2d"); if (!create_inspolyg_table (handle, name, block, insPolyg3D, &stmt)) return 0; sqlite3_free (block); } if (hasExtraInsPolyg) { extra_name = create_extra_attr_table_name (name); if (append && check_extra_attr_table (handle, extra_name)) { /* appending into the already existing table */ if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; } else { /* creating the Extra Attribute table */ if (!create_insert_extra_attr_table (handle, name, extra_name, &stmt_ext)) { sqlite3_finalize (stmt); return 0; } } } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfInsertPtr ins = lyr->first_ins_polyg; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } if (stmt_ext != NULL) { /* inserting all Extra Attributes */ sqlite3_int64 feature_id = sqlite3_last_insert_rowid (handle); gaiaDxfExtraAttrPtr ext = ins->first; while (ext != NULL) { sqlite3_reset (stmt_ext); sqlite3_clear_bindings (stmt_ext); sqlite3_bind_int64 (stmt_ext, 1, feature_id); sqlite3_bind_text (stmt_ext, 2, ext->key, strlen (ext->key), SQLITE_STATIC); sqlite3_bind_text (stmt_ext, 3, ext->value, strlen (ext->value), SQLITE_STATIC); ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", extra_name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ext = ext->next; } } ins = ins->next; } lyr = lyr->next; } sqlite3_free (name); if (extra_name) sqlite3_free (extra_name); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT hatch_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } if (insHatch) { /* creating and populating the INSERT (Hatch reference) layer */ stmt_ext = NULL; extra_name = NULL; if (dxf->prefix == NULL) name = sqlite3_mprintf ("inshatch_layer_2d"); else name = sqlite3_mprintf ("%sinshatch_layer_2d", dxf->prefix); if (append && check_insert_table (handle, name)) { /* appending into the already existing table */ if (!create_insert_stmt (handle, name, &stmt)) return 0; } else { /* creating a new table */ if (dxf->prefix == NULL) block = sqlite3_mprintf ("block_hatch_2d"); else block = sqlite3_mprintf ("%sblock_hatch_2d", dxf->prefix); if (!create_inshatch_table (handle, name, block, &stmt)) return 0; sqlite3_free (block); } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); return 0; } lyr = dxf->first_layer; while (lyr != NULL) { gaiaDxfInsertPtr ins = lyr->first_ins_hatch; while (ins != NULL) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, lyr->layer_name, strlen (lyr->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, ins->block_id, strlen (ins->block_id), SQLITE_STATIC); sqlite3_bind_double (stmt, 4, ins->x); sqlite3_bind_double (stmt, 5, ins->y); sqlite3_bind_double (stmt, 6, ins->z); sqlite3_bind_double (stmt, 7, ins->scale_x); sqlite3_bind_double (stmt, 8, ins->scale_y); sqlite3_bind_double (stmt, 9, ins->scale_z); sqlite3_bind_double (stmt, 10, ins->angle); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); sqlite3_finalize (stmt); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); return 0; } ins = ins->next; } lyr = lyr->next; } sqlite3_free (name); if (extra_name) sqlite3_free (extra_name); sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT hatch_layer error: %s\n", sqlite3_errmsg (handle)); return 0; } } return 1; } libspatialite-4.3.0a/src/dxf/dxf_loader.c0000664000175000017500000032706112544707704015276 00000000000000/* dxf_loader.c -- implements DXF support [loding features into the DB - common methods] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: inital development of the DXF module has been funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #include #include #include "dxf_private.h" #if defined(_WIN32) && !defined(__MINGW32__) #define strcasecmp _stricmp #endif /* not WIN32 */ DXF_PRIVATE int create_text_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Text" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, label, rotation, geometry) " "VALUES (NULL, ?, ?, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } DXF_PRIVATE int create_point_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Point" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, geometry) " "VALUES (NULL, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } DXF_PRIVATE int create_line_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Line" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, geometry) " "VALUES (NULL, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } DXF_PRIVATE int create_polyg_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Polyg" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, geometry) " "VALUES (NULL, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } DXF_PRIVATE int create_hatch_boundary_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Hatch-Boundary" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, geometry) " "VALUES (NULL, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } DXF_PRIVATE int create_hatch_pattern_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Hatch-Pattern" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xpattern; char *pattern; *xstmt = NULL; pattern = sqlite3_mprintf ("%s_pattern", name); xpattern = gaiaDoubleQuotedSql (pattern); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, geometry) " "VALUES (?, ?, ?, ?)", xpattern); free (xpattern); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sqlite3_free (pattern); *xstmt = stmt; return 1; } DXF_PRIVATE int create_insert_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Insert" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, x, y, z, scale_x, scale_y, scale_z, angle) " "VALUES (NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } DXF_PRIVATE int create_extra_stmt (sqlite3 * handle, const char *extra_name, sqlite3_stmt ** xstmt) { /* creating the Extra Attributes insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xextra_name; *xstmt = NULL; xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (attr_id, feature_id, attr_key, attr_value) " "VALUES (NULL, ?, ?, ?)", xextra_name); free (xextra_name); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", extra_name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } DXF_PRIVATE char * create_extra_attr_table_name (const char *name) { /* creating the Extra Attributes table name [Mixed Layers] */ return sqlite3_mprintf ("%s_attr", name); } DXF_PRIVATE int check_text_table (sqlite3 * handle, const char *name, int srid, int is3D) { /* checking if a Text table already exists */ char *sql; int ok_geom = 0; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_srid = 0; int ok_type = 0; int dims2d = 0; int dims3d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (strcmp ("POINT", results[(i * n_columns) + 1]) == 0) ok_type = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) dims2d = 1; if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) dims3d = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { if (is3D && dims3d) ok_geom = 1; if (!is3D && dims2d) ok_geom = 1; } } else { /* current metadata style >= v.4.0.0 */ int ok_srid = 0; int ok_type = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (atoi (results[(i * n_columns) + 1]) == 1 && !is3D) ok_type = 1; if (atoi (results[(i * n_columns) + 1]) == 1001 && is3D) ok_type = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { ok_geom = 1; } } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; int ok_label = 0; int ok_rotation = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; if (strcasecmp ("label", results[(i * n_columns) + 1]) == 0) ok_label = 1; if (strcasecmp ("rotation", results[(i * n_columns) + 1]) == 0) ok_rotation = 1; } if (ok_feature_id && ok_filename && ok_layer && ok_label && ok_rotation) ok_data = 1; } sqlite3_free_table (results); if (ok_geom && ok_data) return 1; return 0; } DXF_PRIVATE int check_point_table (sqlite3 * handle, const char *name, int srid, int is3D) { /* checking if a Point table already exists */ char *sql; int ok_geom = 0; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_srid = 0; int ok_type = 0; int dims2d = 0; int dims3d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (strcmp ("POINT", results[(i * n_columns) + 1]) == 0) ok_type = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) dims2d = 1; if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) dims3d = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { if (is3D && dims3d) ok_geom = 1; if (!is3D && dims2d) ok_geom = 1; } } else { /* current metadata style >= v.4.0.0 */ int ok_srid = 0; int ok_type = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (atoi (results[(i * n_columns) + 1]) == 1 && !is3D) ok_type = 1; if (atoi (results[(i * n_columns) + 1]) == 1001 && is3D) ok_type = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { ok_geom = 1; } } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; } if (ok_feature_id && ok_filename && ok_layer) ok_data = 1; } sqlite3_free_table (results); if (ok_geom && ok_data) return 1; return 0; } DXF_PRIVATE int check_line_table (sqlite3 * handle, const char *name, int srid, int is3D) { /* checking if a Line table already exists */ char *sql; int ok_geom = 0; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_srid = 0; int ok_type = 0; int dims2d = 0; int dims3d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (strcmp ("LINESTRING", results[(i * n_columns) + 1]) == 0) ok_type = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) dims2d = 1; if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) dims3d = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { if (is3D && dims3d) ok_geom = 1; if (!is3D && dims2d) ok_geom = 1; } } else { /* current metadata style >= v.4.0.0 */ int ok_srid = 0; int ok_type = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (atoi (results[(i * n_columns) + 1]) == 2 && !is3D) ok_type = 1; if (atoi (results[(i * n_columns) + 1]) == 1002 && is3D) ok_type = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { ok_geom = 1; } } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; } if (ok_feature_id && ok_filename && ok_layer) ok_data = 1; } sqlite3_free_table (results); if (ok_geom && ok_data) return 1; return 0; } DXF_PRIVATE int check_polyg_table (sqlite3 * handle, const char *name, int srid, int is3D) { /* checking if a Polygon table already exists */ char *sql; int ok_geom = 0; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_srid = 0; int ok_type = 0; int dims2d = 0; int dims3d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (strcmp ("POLYGON", results[(i * n_columns) + 1]) == 0) ok_type = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) dims2d = 1; if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) dims3d = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { if (is3D && dims3d) ok_geom = 1; if (!is3D && dims2d) ok_geom = 1; } } else { /* current metadata style >= v.4.0.0 */ int ok_srid = 0; int ok_type = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (atoi (results[(i * n_columns) + 1]) == 3 && !is3D) ok_type = 1; if (atoi (results[(i * n_columns) + 1]) == 1003 && is3D) ok_type = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { ok_geom = 1; } } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; } if (ok_feature_id && ok_filename && ok_layer) ok_data = 1; } sqlite3_free_table (results); if (ok_geom && ok_data) return 1; return 0; } DXF_PRIVATE int check_hatch_tables (sqlite3 * handle, const char *name, int srid) { /* checking if Hatch tables already exist */ char *sql; int ok_geom = 0; int ok_pdata = 0; int ok_bdata = 0; int ret; int i; char *xname; char *pattern = sqlite3_mprintf ("%s_pattern", name); char *xpattern; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_bsrid = 0; int ok_btype = 0; int bdims2d = 0; int ok_psrid = 0; int ok_ptype = 0; int pdims2d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_bsrid = 1; if (strcmp ("MULTIPOLYGON", results[(i * n_columns) + 1]) == 0) ok_btype = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) bdims2d = 1; } } sqlite3_free_table (results); sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", pattern, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_psrid = 1; if (strcmp ("MULTILINESTRING", results[(i * n_columns) + 1]) == 0) ok_ptype = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) pdims2d = 1; } } sqlite3_free_table (results); if (ok_bsrid && ok_btype && bdims2d && ok_psrid && ok_ptype && pdims2d) ok_geom = 1; } else { /* current metadata style >= v.4.0.0 */ int ok_psrid = 0; int ok_ptype = 0; int ok_bsrid = 0; int ok_btype = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_bsrid = 1; if (atoi (results[(i * n_columns) + 1]) == 6) ok_btype = 1; } } sqlite3_free_table (results); sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", pattern, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_psrid = 1; if (atoi (results[(i * n_columns) + 1]) == 5) ok_ptype = 1; } } sqlite3_free_table (results); if (ok_bsrid && ok_btype && ok_psrid && ok_ptype) ok_geom = 1; } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; } if (ok_feature_id && ok_filename && ok_layer) ok_bdata = 1; } sqlite3_free_table (results); xpattern = gaiaDoubleQuotedSql (pattern); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xpattern); free (xpattern); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; } if (ok_feature_id && ok_filename && ok_layer) ok_pdata = 1; } sqlite3_free_table (results); if (ok_geom && ok_bdata && ok_pdata) { sqlite3_free (pattern); return 1; } stop: sqlite3_free (pattern); return 0; } DXF_PRIVATE int check_insert_table (sqlite3 * handle, const char *name) { /* checking if an Insert (indirect refs) table already exists */ char *sql; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; int ok_block_id = 0; int ok_x = 0; int ok_y = 0; int ok_z = 0; int ok_scale_x = 0; int ok_scale_y = 0; int ok_scale_z = 0; int ok_angle = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) ok_block_id = 1; if (strcasecmp ("x", results[(i * n_columns) + 1]) == 0) ok_x = 1; if (strcasecmp ("y", results[(i * n_columns) + 1]) == 0) ok_y = 1; if (strcasecmp ("z", results[(i * n_columns) + 1]) == 0) ok_z = 1; if (strcasecmp ("scale_x", results[(i * n_columns) + 1]) == 0) ok_scale_x = 1; if (strcasecmp ("scale_y", results[(i * n_columns) + 1]) == 0) ok_scale_y = 1; if (strcasecmp ("scale_z", results[(i * n_columns) + 1]) == 0) ok_scale_z = 1; if (strcasecmp ("angle", results[(i * n_columns) + 1]) == 0) ok_angle = 1; } if (ok_feature_id && ok_filename && ok_layer && ok_block_id && ok_x && ok_y && ok_z && ok_scale_x && ok_scale_y && ok_scale_z && ok_angle) ok_data = 1; } sqlite3_free_table (results); if (ok_data) return 1; return 0; } DXF_PRIVATE int check_extra_attr_table (sqlite3 * handle, const char *name) { /* checking if an Extra Attributes table already exists */ char *sql; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_attr_id = 0; int ok_feature_id = 0; int ok_attr_key = 0; int ok_attr_value = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("attr_id", results[(i * n_columns) + 1]) == 0) ok_attr_id = 1; if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("attr_key", results[(i * n_columns) + 1]) == 0) ok_attr_key = 1; if (strcasecmp ("attr_value", results[(i * n_columns) + 1]) == 0) ok_attr_value = 1; } if (ok_attr_id && ok_feature_id && ok_attr_key && ok_attr_value) ok_data = 1; } sqlite3_free_table (results); if (ok_data) return 1; return 0; } DXF_PRIVATE int create_block_text_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Block-Text" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, label, rotation, geometry) " "VALUES (NULL, ?, ?, ?, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } static int create_block_point_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Block-Point" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, geometry) " "VALUES (NULL, ?, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } static int create_block_line_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Block-Line" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, geometry) " "VALUES (NULL, ?, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } static int create_block_polyg_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Block-Polyg" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, geometry) " "VALUES (NULL, ?, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } static int create_block_hatch_boundary_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Block-Hatch-Boundary" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, geometry) " "VALUES (NULL, ?, ?, ?, ?)", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } *xstmt = stmt; return 1; } static int create_block_hatch_pattern_stmt (sqlite3 * handle, const char *name, sqlite3_stmt ** xstmt) { /* creating the "Block-Hatch-Pattern" insert statement */ char *sql; int ret; sqlite3_stmt *stmt; char *xpattern; char *pattern; *xstmt = NULL; pattern = sqlite3_mprintf ("%s_pattern", name); xpattern = gaiaDoubleQuotedSql (pattern); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (feature_id, filename, layer, block_id, geometry) " "VALUES (?, ?, ?, ?, ?)", xpattern); free (xpattern); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE STATEMENT %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sqlite3_free (pattern); *xstmt = stmt; return 1; } static int check_block_text_table (sqlite3 * handle, const char *name, int srid, int is3D) { /* checking if a Block-Text table already exists */ char *sql; int ok_geom = 0; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_srid = 0; int ok_type = 0; int dims2d = 0; int dims3d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (strcmp ("POINT", results[(i * n_columns) + 1]) == 0) ok_type = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) dims2d = 1; if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) dims3d = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { if (is3D && dims3d) ok_geom = 1; if (!is3D && dims2d) ok_geom = 1; } } else { /* current metadata style >= v.4.0.0 */ int ok_srid = 0; int ok_type = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (atoi (results[(i * n_columns) + 1]) == 1 && !is3D) ok_type = 1; if (atoi (results[(i * n_columns) + 1]) == 1001 && is3D) ok_type = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { ok_geom = 1; } } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; int ok_block_id = 0; int ok_label = 0; int ok_rotation = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) ok_block_id = 1; if (strcasecmp ("label", results[(i * n_columns) + 1]) == 0) ok_label = 1; if (strcasecmp ("rotation", results[(i * n_columns) + 1]) == 0) ok_rotation = 1; } if (ok_feature_id && ok_filename && ok_layer && ok_block_id && ok_label && ok_rotation) ok_data = 1; } sqlite3_free_table (results); if (ok_geom && ok_data) return 1; return 0; } static int has_viewgeom_rdonly (sqlite3 * handle) { /* testing if "views_geometry_columns" has a "read_only" column */ int has_rdonly = 0; int ret; int i; char **results; int n_rows; int n_columns; char *sql = "PRAGMA table_info(views_geometry_columns)"; ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (strcasecmp ("read_only", results[(i * n_columns) + 1]) == 0) has_rdonly = 1; } } sqlite3_free_table (results); return has_rdonly; } DXF_PRIVATE int create_instext_table (sqlite3 * handle, const char *name, const char *block, int is3d, sqlite3_stmt ** xstmt) { /* attempting to create the "Insert-mixed-Text" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; char *idx_name; char *xidx_name; char *view; char *xview; char *xblock; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL,\n" " x DOUBLE NOT NULL,\n" " y DOUBLE NOT NULL,\n" " z DOUBLE NOT NULL,\n" " scale_x DOUBLE NOT NULL,\n" " scale_y DOUBLE NOT NULL,\n" " scale_z DOUBLE NOT NULL,\n" " angle DOUBLE NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view = sqlite3_mprintf ("%s_view", name); xview = gaiaDoubleQuotedSql (view); xname = gaiaDoubleQuotedSql (name); xblock = gaiaDoubleQuotedSql (block); if (is3d) { sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " "ST_Translate(ScaleCoords(RotateCoords(b.geometry, i.angle), " "i.scale_x, i.scale_y), i.x, i.y, i.z) AS geometry " "FROM \"%s\" AS i JOIN \"%s\" AS b ON " "(b.layer = i.layer AND b.block_id = i.block_id)", xview, xname, xblock); } else { sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " "ShiftCoords(ScaleCoords(RotateCoords(b.geometry, i.angle), " "i.scale_x, i.scale_y), i.x, i.y) AS geometry " "FROM \"%s\" AS i JOIN \"%s\" AS b ON " "(b.layer = i.layer AND b.block_id = i.block_id)", xview, xname, xblock); } free (xname); free (xview); free (xblock); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } if (has_viewgeom_rdonly (handle)) sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column, read_only) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q), 1)", view, "geometry", "rowid", block, "geometry"); else sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q))", view, "geometry", "rowid", block, "geometry"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("Register Spatial VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view); if (!create_insert_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } DXF_PRIVATE int create_inspoint_table (sqlite3 * handle, const char *name, const char *block, int is3d, sqlite3_stmt ** xstmt) { /* attempting to create the "Insert-mixed-Point" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; char *idx_name; char *xidx_name; char *view; char *xview; char *xblock; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL,\n" " x DOUBLE NOT NULL,\n" " y DOUBLE NOT NULL,\n" " z DOUBLE NOT NULL,\n" " scale_x DOUBLE NOT NULL,\n" " scale_y DOUBLE NOT NULL,\n" " scale_z DOUBLE NOT NULL,\n" " angle DOUBLE NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view = sqlite3_mprintf ("%s_view", name); xview = gaiaDoubleQuotedSql (view); xname = gaiaDoubleQuotedSql (name); xblock = gaiaDoubleQuotedSql (block); if (is3d) { sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " "ST_Translate(ScaleCoords(RotateCoords(b.geometry, i.angle), " "i.scale_x, i.scale_y), i.x, i.y, i.z) AS geometry " "FROM \"%s\" AS i JOIN \"%s\" AS b ON " "(b.layer = i.layer AND b.block_id = i.block_id)", xview, xname, xblock); } else { sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT b.ROWID as rowid, i.feature_id AS feature_id, " "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " "ShiftCoords(ScaleCoords(RotateCoords(b.geometry, i.angle), " "i.scale_x, i.scale_y), i.x, i.y) AS geometry " "FROM \"%s\" AS i JOIN \"%s\" AS b ON " "(b.layer = i.layer AND b.block_id = i.block_id)", xview, xname, xblock); } free (xname); free (xview); free (xblock); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } if (has_viewgeom_rdonly (handle)) sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column, read_only) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q), 1)", view, "geometry", "rowid", block, "geometry"); else sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q))", view, "geometry", "rowid", block, "geometry"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("Register Spatial VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view); if (!create_insert_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } DXF_PRIVATE int create_insline_table (sqlite3 * handle, const char *name, const char *block, int is3d, sqlite3_stmt ** xstmt) { /* attempting to create the "Insert-mixed-Line" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; char *idx_name; char *xidx_name; char *view; char *xview; char *xblock; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL,\n" " x DOUBLE NOT NULL,\n" " y DOUBLE NOT NULL,\n" " z DOUBLE NOT NULL,\n" " scale_x DOUBLE NOT NULL,\n" " scale_y DOUBLE NOT NULL,\n" " scale_z DOUBLE NOT NULL,\n" " angle DOUBLE NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view = sqlite3_mprintf ("%s_view", name); xview = gaiaDoubleQuotedSql (view); xname = gaiaDoubleQuotedSql (name); xblock = gaiaDoubleQuotedSql (block); if (is3d) { sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " "ST_Translate(ScaleCoords(RotateCoords(b.geometry, i.angle), " "i.scale_x, i.scale_y), i.x, i.y, i.z) AS geometry " "FROM \"%s\" AS i JOIN \"%s\" AS b ON " "(b.layer = i.layer AND b.block_id = i.block_id)", xview, xname, xblock); } else { sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " "ShiftCoords(ScaleCoords(RotateCoords(b.geometry, i.angle), " "i.scale_x, i.scale_y), i.x, i.y) AS geometry " "FROM \"%s\" AS i JOIN \"%s\" AS b ON " "(b.layer = i.layer AND b.block_id = i.block_id)", xview, xname, xblock); } free (xname); free (xview); free (xblock); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } if (has_viewgeom_rdonly (handle)) sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column, read_only) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q), 1)", view, "geometry", "rowid", block, "geometry"); else sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q))", view, "geometry", "rowid", block, "geometry"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("Register Spatial VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view); if (!create_insert_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } DXF_PRIVATE int create_inspolyg_table (sqlite3 * handle, const char *name, const char *block, int is3d, sqlite3_stmt ** xstmt) { /* attempting to create the "Insert-mixed-Polyg" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; char *idx_name; char *xidx_name; char *view; char *xview; char *xblock; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL,\n" " x DOUBLE NOT NULL,\n" " y DOUBLE NOT NULL,\n" " z DOUBLE NOT NULL,\n" " scale_x DOUBLE NOT NULL,\n" " scale_y DOUBLE NOT NULL,\n" " scale_z DOUBLE NOT NULL,\n" " angle DOUBLE NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view = sqlite3_mprintf ("%s_view", name); xview = gaiaDoubleQuotedSql (view); xname = gaiaDoubleQuotedSql (name); xblock = gaiaDoubleQuotedSql (block); if (is3d) { sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " "ST_Translate(ScaleCoords(RotateCoords(b.geometry, i.angle), " "i.scale_x, i.scale_y), i.x, i.y, i.z) AS geometry " "FROM \"%s\" AS i JOIN \"%s\" AS b ON " "(b.layer = i.layer AND b.block_id = i.block_id)", xview, xname, xblock); } else { sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " "ShiftCoords(ScaleCoords(RotateCoords(b.geometry, i.angle), " "i.scale_x, i.scale_y), i.x, i.y) AS geometry " "FROM \"%s\" AS i JOIN \"%s\" AS b ON " "(b.layer = i.layer AND b.block_id = i.block_id)", xview, xname, xblock); } free (xname); free (xview); free (xblock); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } if (has_viewgeom_rdonly (handle)) sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column, read_only) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q), 1)", view, "geometry", "rowid", block, "geometry"); else sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q))", view, "geometry", "rowid", block, "geometry"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("Register Spatial VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view); if (!create_insert_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } DXF_PRIVATE int create_inshatch_table (sqlite3 * handle, const char *name, const char *block, sqlite3_stmt ** xstmt) { /* attempting to create the "Insert-mixed-Hatch" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; char *idx_name; char *xidx_name; char *view; char *xview; char *xblock; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL,\n" " x DOUBLE NOT NULL,\n" " y DOUBLE NOT NULL,\n" " z DOUBLE NOT NULL,\n" " scale_x DOUBLE NOT NULL,\n" " scale_y DOUBLE NOT NULL,\n" " scale_z DOUBLE NOT NULL,\n" " angle DOUBLE NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view = sqlite3_mprintf ("%s_view", name); xview = gaiaDoubleQuotedSql (view); xname = gaiaDoubleQuotedSql (name); xblock = gaiaDoubleQuotedSql (block); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT b.ROWID AS rowid, i.feature_id AS feature_id, " "i.filename AS filename, i.layer AS layer, i.block_id AS block_id, " "ShiftCoords(ScaleCoords(RotateCoords(b.geometry, i.angle), " "i.scale_x, i.scale_y), i.x, i.y) AS geometry " "FROM \"%s\" AS i JOIN \"%s\" AS b ON " "(b.layer = i.layer AND b.block_id = i.block_id)", xview, xname, xblock); free (xname); free (xview); free (xblock); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } if (has_viewgeom_rdonly (handle)) sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column, read_only) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q), 1)", view, "geometry", "rowid", block, "geometry"); else sql = sqlite3_mprintf ("INSERT INTO views_geometry_columns (" "view_name, view_geometry, view_rowid, f_table_name, " "f_geometry_column) VALUES (Lower(%Q), Lower(%Q), " "Lower(%Q), Lower(%Q), Lower(%Q))", view, "geometry", "rowid", block, "geometry"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("Register Spatial VIEW %s error: %s\n", view, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view); if (!create_insert_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } DXF_PRIVATE int create_insert_extra_attr_table (sqlite3 * handle, const char *name, char *extra_name, sqlite3_stmt ** xstmt_ext) { /* attempting to create the "Insert-mixed-extra-attr" table */ char *sql; int ret; sqlite3_stmt *stmt_ext; char *xname; char *xextra_name; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; char *view_name; char *xview_name; *xstmt_ext = NULL; fk_name = sqlite3_mprintf ("fk_%s", extra_name); xextra_name = gaiaDoubleQuotedSql (extra_name); xfk_name = gaiaDoubleQuotedSql (fk_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " attr_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " feature_id INTEGER NOT NULL,\n" " attr_key TEXT NOT NULL,\n" " attr_value TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " "REFERENCES \"%s\" (feature_id))", xextra_name, xfk_name, xname); free (xextra_name); free (xfk_name); free (xname); sqlite3_free (fk_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", extra_name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", extra_name); xidx_name = gaiaDoubleQuotedSql (idx_name); xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (feature_id)", xidx_name, xextra_name); free (xidx_name); free (xextra_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); view_name = sqlite3_mprintf ("%s_view", name); xview_name = gaiaDoubleQuotedSql (view_name); xname = gaiaDoubleQuotedSql (name); xextra_name = gaiaDoubleQuotedSql (extra_name); sql = sqlite3_mprintf ("CREATE VIEW \"%s\" AS " "SELECT f.feature_id AS feature_id, f.filename AS filename, " "f.layer AS layer, f.x AS x, f.y AS y, f.z AS z, f.scale_x AS scale_x, " "f.scale_y AS scale_y, f.scale_z AS scale_z, f.angle AS angle, " "a.attr_id AS attr_id, a.attr_key AS attr_key, a.attr_value AS attr_value " "FROM \"%s\" AS f " "LEFT JOIN \"%s\" AS a ON (f.feature_id = a.feature_id)", xview_name, xname, xextra_name); free (xview_name); free (xname); free (xextra_name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW %s error: %s\n", view_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (view_name); if (!create_extra_stmt (handle, extra_name, &stmt_ext)) return 0; *xstmt_ext = stmt_ext; return 1; } static int check_block_point_table (sqlite3 * handle, const char *name, int srid, int is3D) { /* checking if a Block-Point table already exists */ char *sql; int ok_geom = 0; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_srid = 0; int ok_type = 0; int dims2d = 0; int dims3d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (strcmp ("POINT", results[(i * n_columns) + 1]) == 0) ok_type = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) dims2d = 1; if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) dims3d = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { if (is3D && dims3d) ok_geom = 1; if (!is3D && dims2d) ok_geom = 1; } } else { /* current metadata style >= v.4.0.0 */ int ok_srid = 0; int ok_type = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (atoi (results[(i * n_columns) + 1]) == 1 && !is3D) ok_type = 1; if (atoi (results[(i * n_columns) + 1]) == 1001 && is3D) ok_type = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { ok_geom = 1; } } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; int ok_block_id = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) ok_block_id = 1; } if (ok_feature_id && ok_filename && ok_layer && ok_block_id) ok_data = 1; } sqlite3_free_table (results); if (ok_geom && ok_data) return 1; return 0; } static int check_block_line_table (sqlite3 * handle, const char *name, int srid, int is3D) { /* checking if a Block-Line table already exists */ char *sql; int ok_geom = 0; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_srid = 0; int ok_type = 0; int dims2d = 0; int dims3d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (strcmp ("LINESTRING", results[(i * n_columns) + 1]) == 0) ok_type = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) dims2d = 1; if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) dims3d = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { if (is3D && dims3d) ok_geom = 1; if (!is3D && dims2d) ok_geom = 1; } } else { /* current metadata style >= v.4.0.0 */ int ok_srid = 0; int ok_type = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (atoi (results[(i * n_columns) + 1]) == 2 && !is3D) ok_type = 1; if (atoi (results[(i * n_columns) + 1]) == 1002 && is3D) ok_type = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { ok_geom = 1; } } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; int ok_block_id = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) ok_block_id = 1; } if (ok_feature_id && ok_filename && ok_layer && ok_block_id) ok_data = 1; } sqlite3_free_table (results); if (ok_geom && ok_data) return 1; return 0; } static int check_block_polyg_table (sqlite3 * handle, const char *name, int srid, int is3D) { /* checking if a Block-Polygon table already exists */ char *sql; int ok_geom = 0; int ok_data = 0; int ret; int i; char *xname; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_srid = 0; int ok_type = 0; int dims2d = 0; int dims3d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (strcmp ("POLYGON", results[(i * n_columns) + 1]) == 0) ok_type = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) dims2d = 1; if (strcmp ("XYZ", results[(i * n_columns) + 2]) == 0) dims3d = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { if (is3D && dims3d) ok_geom = 1; if (!is3D && dims2d) ok_geom = 1; } } else { /* current metadata style >= v.4.0.0 */ int ok_srid = 0; int ok_type = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_srid = 1; if (atoi (results[(i * n_columns) + 1]) == 3 && !is3D) ok_type = 1; if (atoi (results[(i * n_columns) + 1]) == 1003 && is3D) ok_type = 1; } } sqlite3_free_table (results); if (ok_srid && ok_type) { ok_geom = 1; } } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; int ok_block_id = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) ok_block_id = 1; } if (ok_feature_id && ok_filename && ok_layer && ok_block_id) ok_data = 1; } sqlite3_free_table (results); if (ok_geom && ok_data) return 1; return 0; } static int check_block_hatch_tables (sqlite3 * handle, const char *name, int srid) { /* checking if Block-Hatch tables already exist */ char *sql; int ok_geom = 0; int ok_pdata = 0; int ok_bdata = 0; int ret; int i; char *xname; char *pattern = sqlite3_mprintf ("%s_pattern", name); char *xpattern; char **results; int n_rows; int n_columns; int metadata_version = checkSpatialMetaData (handle); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ int ok_bsrid = 0; int ok_btype = 0; int bdims2d = 0; int ok_psrid = 0; int ok_ptype = 0; int pdims2d = 0; sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_bsrid = 1; if (strcmp ("MULTIPOLYGON", results[(i * n_columns) + 1]) == 0) ok_btype = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) bdims2d = 1; } } sqlite3_free_table (results); sql = sqlite3_mprintf ("SELECT srid, type, coord_dimension " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", pattern, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_psrid = 1; if (strcmp ("MULTILINESTRING", results[(i * n_columns) + 1]) == 0) ok_ptype = 1; if (strcmp ("XY", results[(i * n_columns) + 2]) == 0) pdims2d = 1; } } sqlite3_free_table (results); if (ok_bsrid && ok_btype && bdims2d && ok_psrid && ok_ptype && pdims2d) ok_geom = 1; } else { /* current metadata style >= v.4.0.0 */ int ok_psrid = 0; int ok_ptype = 0; int ok_bsrid = 0; int ok_btype = 0; sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", name, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_bsrid = 1; if (atoi (results[(i * n_columns) + 1]) == 6) ok_btype = 1; } } sqlite3_free_table (results); sql = sqlite3_mprintf ("SELECT srid, geometry_type " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", pattern, "geometry"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { if (atoi (results[(i * n_columns) + 0]) == srid) ok_psrid = 1; if (atoi (results[(i * n_columns) + 1]) == 5) ok_ptype = 1; } } sqlite3_free_table (results); if (ok_bsrid && ok_btype && ok_psrid && ok_ptype) ok_geom = 1; } xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; int ok_block_id = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) ok_block_id = 1; } if (ok_feature_id && ok_filename && ok_layer && ok_block_id) ok_bdata = 1; } sqlite3_free_table (results); xpattern = gaiaDoubleQuotedSql (pattern); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xpattern); free (xpattern); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (n_rows > 0) { int ok_feature_id = 0; int ok_filename = 0; int ok_layer = 0; int ok_block_id = 0; for (i = 1; i <= n_rows; i++) { if (strcasecmp ("feature_id", results[(i * n_columns) + 1]) == 0) ok_feature_id = 1; if (strcasecmp ("filename", results[(i * n_columns) + 1]) == 0) ok_filename = 1; if (strcasecmp ("layer", results[(i * n_columns) + 1]) == 0) ok_layer = 1; if (strcasecmp ("block_id", results[(i * n_columns) + 1]) == 0) ok_block_id = 1; } if (ok_feature_id && ok_filename && ok_layer && ok_block_id) ok_pdata = 1; } sqlite3_free_table (results); if (ok_geom && ok_bdata && ok_pdata) { sqlite3_free (pattern); return 1; } stop: sqlite3_free (pattern); return 0; } static int create_block_text_table (sqlite3 * handle, const char *name, int srid, int text3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Block-Text" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; char *idx_name; char *xidx_name; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL,\n" " label TEXT NOT NULL,\n" " rotation DOUBLE NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'POINT', %Q)", name, srid, text3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_block_text_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_block_point_table (sqlite3 * handle, const char *name, int srid, int point3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Block-Point" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; char *idx_name; char *xidx_name; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'POINT', %Q)", name, srid, point3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_block_point_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_block_line_table (sqlite3 * handle, const char *name, int srid, int line3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Block-Line" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; char *idx_name; char *xidx_name; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'LINESTRING', %Q)", name, srid, line3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_block_line_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_block_polyg_table (sqlite3 * handle, const char *name, int srid, int polyg3D, sqlite3_stmt ** xstmt) { /* attempting to create the "Block-Polyg" table */ char *sql; int ret; sqlite3_stmt *stmt; char *xname; char *idx_name; char *xidx_name; *xstmt = NULL; xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'POLYGON', %Q)", name, srid, polyg3D ? "XYZ" : "XY"); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } if (!create_block_polyg_stmt (handle, name, &stmt)) return 0; *xstmt = stmt; return 1; } static int create_block_hatch_tables (sqlite3 * handle, const char *name, int srid, sqlite3_stmt ** xstmt, sqlite3_stmt ** xstmt2) { /* attempting to create the "Block-Hatch" tables */ char *sql; int ret; sqlite3_stmt *stmt; sqlite3_stmt *stmt2; char *xname; char *pattern; char *xpattern; char *fk_name; char *xfk_name; char *idx_name; char *xidx_name; *xstmt = NULL; *xstmt2 = NULL; /* creating the Block-Hatch-Boundary table */ xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL)", xname); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", name); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'MULTIPOLYGON', 'XY')", name, srid); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", name); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", name, sqlite3_errmsg (handle)); return 0; } /* creating the Block-Hatch-Pattern table */ xname = gaiaDoubleQuotedSql (name); pattern = sqlite3_mprintf ("%s_pattern", name); xpattern = gaiaDoubleQuotedSql (pattern); fk_name = sqlite3_mprintf ("fk_%s_pattern", name); xfk_name = gaiaDoubleQuotedSql (fk_name); sqlite3_free (fk_name); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (" " feature_id INTEGER PRIMARY KEY NOT NULL,\n" " filename TEXT NOT NULL, \n" " layer TEXT NOT NULL,\n" " block_id TEXT NOT NULL,\n" " CONSTRAINT \"%s\" FOREIGN KEY (feature_id) " " REFERENCES \"%s\" (feature_id))", xpattern, xfk_name, xname); free (xname); free (xfk_name); free (xpattern); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } idx_name = sqlite3_mprintf ("idx_%s", pattern); xidx_name = gaiaDoubleQuotedSql (idx_name); xname = gaiaDoubleQuotedSql (name); sql = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (layer, block_id)", xidx_name, xname); free (xidx_name); free (xname); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX %s error: %s\n", idx_name, sqlite3_errmsg (handle)); return 0; } sqlite3_free (idx_name); sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'geometry', " "%d, 'MULTILINESTRING', 'XY')", pattern, srid); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'geometry')", pattern); ret = sqlite3_exec (handle, sql, NULL, NULL, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX %s error: %s\n", pattern, sqlite3_errmsg (handle)); return 0; } sqlite3_free (pattern); if (!create_block_hatch_boundary_stmt (handle, name, &stmt)) return 0; if (!create_block_hatch_pattern_stmt (handle, name, &stmt2)) return 0; *xstmt = stmt; *xstmt2 = stmt2; return 1; } DXF_PRIVATE int check_unclosed_polyg (gaiaDxfPolylinePtr pg, int is3d) { /* checking for unclosed Rings (exterior) */ int last = pg->points - 1; if (is3d) { if (*(pg->x + 0) == *(pg->x + last) && *(pg->y + 0) == *(pg->y + last) && *(pg->z + 0) == *(pg->z + last)) return 0; } else { if (*(pg->x + 0) == *(pg->x + last) && *(pg->y + 0) == *(pg->y + last)) return 0; } return 1; } DXF_PRIVATE int check_unclosed_hole (gaiaDxfHolePtr hole, int is3d) { /* checking for unclosed Rings (interior) */ int last = hole->points - 1; if (is3d) { if (*(hole->x + 0) == *(hole->x + last) && *(hole->y + 0) == *(hole->y + last) && *(hole->z + 0) == *(hole->z + last)) return 0; } else { if (*(hole->x + 0) == *(hole->x + last) && *(hole->y + 0) == *(hole->y + last)) return 0; } return 1; } static int import_blocks (sqlite3 * handle, gaiaDxfParserPtr dxf, int append) { /* populating the target DB - importing BLOCK geometries */ gaiaDxfTextPtr txt; gaiaDxfPointPtr pt; gaiaDxfPolylinePtr ln; gaiaDxfPolylinePtr pg; gaiaDxfHatchPtr htc; int ret; unsigned char *blob; int blob_size; gaiaGeomCollPtr geom; int error = 0; char *name; sqlite3_stmt *stmt; sqlite3_stmt *stmt_text_2d = NULL; sqlite3_stmt *stmt_text_3d = NULL; sqlite3_stmt *stmt_point_2d = NULL; sqlite3_stmt *stmt_point_3d = NULL; sqlite3_stmt *stmt_line_2d = NULL; sqlite3_stmt *stmt_line_3d = NULL; sqlite3_stmt *stmt_polyg_2d = NULL; sqlite3_stmt *stmt_polyg_3d = NULL; sqlite3_stmt *stmt_hatch_boundary = NULL; sqlite3_stmt *stmt_hatch_pattern = NULL; int text = 0; int point = 0; int line = 0; int polyg = 0; int hatch = 0; int text2D = 0; int point2D = 0; int line2D = 0; int polyg2D = 0; int text3D = 0; int point3D = 0; int line3D = 0; int polyg3D = 0; int iv; gaiaDxfHolePtr hole; int num_holes; gaiaLinestringPtr p_ln; gaiaPolygonPtr p_pg; gaiaRingPtr p_rng; sqlite3_int64 feature_id; gaiaDxfHatchSegmPtr segm; gaiaDxfBlockPtr blk = dxf->first_block; while (blk != NULL) { /* exploring Blocks by type */ if (blk->hasInsert == 0) { blk = blk->next; continue; } if (blk->first_text != NULL) { text = 1; if (blk->is3Dtext) text3D = 1; else text2D = 1; } if (blk->first_point != NULL) { point = 1; if (blk->is3Dpoint) point3D = 1; else point2D = 1; } if (blk->first_line != NULL) { line = 1; if (blk->is3Dline) line3D = 1; else line2D = 1; } if (blk->first_polyg != NULL) { polyg = 1; if (blk->is3Dpolyg) polyg3D = 1; else polyg2D = 1; } if (blk->first_hatch != NULL) hatch = 1; blk = blk->next; } if (text && text2D) { /* preparing to insert into the Block Text 2D table */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("block_text_2d"); else name = sqlite3_mprintf ("%sblock_text_2d", dxf->prefix); if (append && check_block_text_table (handle, name, dxf->srid, 0)) { /* appending into the already existing table */ if (!create_block_text_stmt (handle, name, &stmt_text_2d)) return 0; } else { /* creating a new table */ if (!create_block_text_table (handle, name, dxf->srid, 0, &stmt_text_2d)) return 0; } sqlite3_free (name); } if (text && text3D) { /* preparing to insert into the Block Text 3D table */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("block_text_3d"); else name = sqlite3_mprintf ("%sblock_text_3d", dxf->prefix); if (append && check_block_text_table (handle, name, dxf->srid, 1)) { /* appending into the already existing table */ if (!create_block_text_stmt (handle, name, &stmt_text_3d)) return 0; } else { /* creating a new table */ if (!create_block_text_table (handle, name, dxf->srid, 1, &stmt_text_3d)) return 0; } sqlite3_free (name); } if (point && point2D) { /* preparing to insert into the Block Point 2D table */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("block_point_2d"); else name = sqlite3_mprintf ("%sblock_point_2d", dxf->prefix); if (append && check_block_point_table (handle, name, dxf->srid, 0)) { /* appending into the already existing table */ if (!create_block_point_stmt (handle, name, &stmt_point_2d)) return 0; } else { /* creating a new table */ if (!create_block_point_table (handle, name, dxf->srid, 0, &stmt_point_2d)) return 0; } sqlite3_free (name); } if (point && point3D) { /* preparing to insert into the Block Point 3D table */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("block_point_3d"); else name = sqlite3_mprintf ("%sblock_point_3d", dxf->prefix); if (append && check_block_point_table (handle, name, dxf->srid, 1)) { /* appending into the already existing table */ if (!create_block_point_stmt (handle, name, &stmt_point_3d)) return 0; } else { /* creating a new table */ if (!create_block_point_table (handle, name, dxf->srid, 1, &stmt_point_3d)) return 0; } sqlite3_free (name); } if (line && line2D) { /* preparing to insert into the Block Line 2D table */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("block_line_2d"); else name = sqlite3_mprintf ("%sblock_line_2d", dxf->prefix); if (append && check_block_line_table (handle, name, dxf->srid, 0)) { /* appending into the already existing table */ if (!create_block_line_stmt (handle, name, &stmt_line_2d)) return 0; } else { /* creating a new table */ if (!create_block_line_table (handle, name, dxf->srid, 0, &stmt_line_2d)) return 0; } sqlite3_free (name); } if (line && line3D) { /* preparing to insert into the Block Line 3D table */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("block_line_3d"); else name = sqlite3_mprintf ("%sblock_line_3d", dxf->prefix); if (append && check_block_line_table (handle, name, dxf->srid, 1)) { /* appending into the already existing table */ if (!create_block_line_stmt (handle, name, &stmt_line_3d)) return 0; } else { /* creating a new table */ if (!create_block_line_table (handle, name, dxf->srid, 1, &stmt_line_3d)) return 0; } sqlite3_free (name); } if (polyg && polyg2D) { /* preparing to insert into the Block Polyg 2D table */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("block_polyg_2d"); else name = sqlite3_mprintf ("%sblock_polyg_2d", dxf->prefix); if (append && check_block_polyg_table (handle, name, dxf->srid, 0)) { /* appending into the already existing table */ if (!create_block_polyg_stmt (handle, name, &stmt_polyg_2d)) return 0; } else { /* creating a new table */ if (!create_block_polyg_table (handle, name, dxf->srid, 0, &stmt_polyg_2d)) return 0; } sqlite3_free (name); } if (polyg && polyg3D) { /* preparing to insert into the Block Polyg 3D table */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("block_polyg_3d"); else name = sqlite3_mprintf ("%sblock_polyg_3d", dxf->prefix); if (append && check_block_polyg_table (handle, name, dxf->srid, 1)) { /* appending into the already existing table */ if (!create_block_polyg_stmt (handle, name, &stmt_polyg_3d)) return 0; } else { /* creating a new table */ if (!create_block_polyg_table (handle, name, dxf->srid, 1, &stmt_polyg_3d)) return 0; } sqlite3_free (name); } if (hatch) { /* preparing to insert into the Block Hatch table */ if (dxf->prefix == NULL) name = sqlite3_mprintf ("block_hatch_2d"); else name = sqlite3_mprintf ("%sblock_hatch_2d", dxf->prefix); if (append && check_block_hatch_tables (handle, name, dxf->srid)) { /* appending into the already existing table */ if (!create_block_hatch_boundary_stmt (handle, name, &stmt_hatch_boundary)) return 0; if (!create_block_hatch_pattern_stmt (handle, name, &stmt_hatch_pattern)) return 0; } else { /* creating a new table */ if (!create_block_hatch_tables (handle, name, dxf->srid, &stmt_hatch_boundary, &stmt_hatch_pattern)) return 0; } sqlite3_free (name); } ret = sqlite3_exec (handle, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("BEGIN %s error: %s\n", name, sqlite3_errmsg (handle)); error = 1; goto stop; } blk = dxf->first_block; while (blk != NULL) { if (blk->hasInsert == 0) { blk = blk->next; continue; } txt = blk->first_text; while (txt) { if (blk->is3Dtext) stmt = stmt_text_3d; else stmt = stmt_text_2d; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, blk->layer_name, strlen (blk->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, blk->block_id, strlen (blk->block_id), SQLITE_STATIC); sqlite3_bind_text (stmt, 4, txt->label, strlen (txt->label), SQLITE_STATIC); sqlite3_bind_double (stmt, 5, txt->angle); if (blk->is3Dtext) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; if (blk->is3Dtext) gaiaAddPointToGeomCollXYZ (geom, txt->x, txt->y, txt->z); else gaiaAddPointToGeomColl (geom, txt->x, txt->y); gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 6, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); error = 1; goto stop; } txt = txt->next; } pt = blk->first_point; while (pt) { if (blk->is3Dpoint) stmt = stmt_point_3d; else stmt = stmt_point_2d; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, blk->layer_name, strlen (blk->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, blk->block_id, strlen (blk->block_id), SQLITE_STATIC); if (blk->is3Dpoint) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; if (blk->is3Dpoint) gaiaAddPointToGeomCollXYZ (geom, pt->x, pt->y, pt->z); else gaiaAddPointToGeomColl (geom, pt->x, pt->y); gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 4, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); error = 1; goto stop; } pt = pt->next; } ln = blk->first_line; while (ln) { if (blk->is3Dline) stmt = stmt_line_3d; else stmt = stmt_line_2d; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, blk->layer_name, strlen (blk->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, blk->block_id, strlen (blk->block_id), SQLITE_STATIC); if (blk->is3Dline) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; gaiaAddLinestringToGeomColl (geom, ln->points); p_ln = geom->FirstLinestring; for (iv = 0; iv < ln->points; iv++) { if (blk->is3Dline) { gaiaSetPointXYZ (p_ln->Coords, iv, *(ln->x + iv), *(ln->y + iv), *(ln->z + iv)); } else { gaiaSetPoint (p_ln->Coords, iv, *(ln->x + iv), *(ln->y + iv)); } } gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 4, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); error = 1; goto stop; } ln = ln->next; } pg = blk->first_polyg; while (pg) { int unclosed = check_unclosed_polyg (pg, blk->is3Dpolyg); if (blk->is3Dpolyg) stmt = stmt_polyg_3d; else stmt = stmt_polyg_2d; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, blk->layer_name, strlen (blk->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, blk->block_id, strlen (blk->block_id), SQLITE_STATIC); if (blk->is3Dpolyg) geom = gaiaAllocGeomCollXYZ (); else geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; num_holes = 0; hole = pg->first_hole; while (hole != NULL) { num_holes++; hole = hole->next; } gaiaAddPolygonToGeomColl (geom, pg->points + unclosed, num_holes); p_pg = geom->FirstPolygon; p_rng = p_pg->Exterior; for (iv = 0; iv < pg->points; iv++) { if (blk->is3Dpolyg) { gaiaSetPointXYZ (p_rng->Coords, iv, *(pg->x + iv), *(pg->y + iv), *(pg->z + iv)); } else { gaiaSetPoint (p_rng->Coords, iv, *(pg->x + iv), *(pg->y + iv)); } } if (unclosed) { /* forcing the Ring to be closed */ if (blk->is3Dpolyg) { gaiaSetPointXYZ (p_rng->Coords, pg->points, *(pg->x + 0), *(pg->y + 0), *(pg->z + 0)); } else { gaiaSetPoint (p_rng->Coords, pg->points, *(pg->x + 0), *(pg->y + 0)); } } num_holes = 0; hole = pg->first_hole; while (hole != NULL) { int unclosed = check_unclosed_hole (hole, polyg3D); p_rng = gaiaAddInteriorRing (p_pg, num_holes, hole->points + unclosed); for (iv = 0; iv < hole->points; iv++) { if (polyg3D) { gaiaSetPointXYZ (p_rng->Coords, iv, *(hole->x + iv), *(hole->y + iv), *(hole->z + iv)); } else { gaiaSetPoint (p_rng->Coords, iv, *(hole->x + iv), *(hole->y + iv)); } } if (unclosed) { /* forcing the Ring to be closed */ if (polyg3D) { gaiaSetPointXYZ (p_rng->Coords, hole->points, *(hole->x + 0), *(hole->y + 0), *(hole->z + 0)); } else { gaiaSetPoint (p_rng->Coords, hole->points, *(hole->x + 0), *(hole->y + 0)); } } num_holes++; hole = hole->next; } gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 4, blob, blob_size, free); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); error = 1; goto stop; } pg = pg->next; } htc = blk->first_hatch; while (htc) { /* inserting the Boundary Geometry */ stmt = stmt_hatch_boundary; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, blk->layer_name, strlen (blk->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, blk->block_id, strlen (blk->block_id), SQLITE_STATIC); if (htc->boundary == NULL) sqlite3_bind_null (stmt, 4); else { gaiaToSpatiaLiteBlobWkb (htc->boundary, &blob, &blob_size); sqlite3_bind_blob (stmt, 4, blob, blob_size, free); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); error = 1; goto stop; } feature_id = sqlite3_last_insert_rowid (handle); /* inserting the Pattern Geometry */ stmt = stmt_hatch_pattern; sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int64 (stmt, 1, feature_id); sqlite3_bind_text (stmt, 2, dxf->filename, strlen (dxf->filename), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, blk->layer_name, strlen (blk->layer_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 4, blk->block_id, strlen (blk->block_id), SQLITE_STATIC); if (htc->first_out == NULL) sqlite3_bind_null (stmt, 5); else { geom = gaiaAllocGeomColl (); geom->Srid = dxf->srid; geom->DeclaredType = GAIA_MULTILINESTRING; segm = htc->first_out; while (segm != NULL) { gaiaLinestringPtr p_ln = gaiaAddLinestringToGeomColl (geom, 2); gaiaSetPoint (p_ln->Coords, 0, segm->x0, segm->y0); gaiaSetPoint (p_ln->Coords, 1, segm->x1, segm->y1); segm = segm->next; } gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_size); gaiaFreeGeomColl (geom); sqlite3_bind_blob (stmt, 5, blob, blob_size, free); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("INSERT %s error: %s\n", name, sqlite3_errmsg (handle)); ret = sqlite3_exec (handle, "ROLLBACK", NULL, NULL, NULL); error = 1; goto stop; } htc = htc->next; } blk = blk->next; } ret = sqlite3_exec (handle, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) { spatialite_e ("COMMIT text_layer error: %s\n", sqlite3_errmsg (handle)); error = 1; goto stop; } stop: if (stmt_text_2d != NULL) sqlite3_finalize (stmt_text_2d); if (stmt_text_3d != NULL) sqlite3_finalize (stmt_text_3d); if (stmt_point_2d != NULL) sqlite3_finalize (stmt_point_2d); if (stmt_point_3d != NULL) sqlite3_finalize (stmt_point_3d); if (stmt_line_2d != NULL) sqlite3_finalize (stmt_line_2d); if (stmt_line_3d != NULL) sqlite3_finalize (stmt_line_3d); if (stmt_polyg_2d != NULL) sqlite3_finalize (stmt_polyg_2d); if (stmt_polyg_3d != NULL) sqlite3_finalize (stmt_polyg_3d); if (stmt_hatch_boundary != NULL) sqlite3_finalize (stmt_hatch_boundary); if (stmt_hatch_pattern != NULL) sqlite3_finalize (stmt_hatch_pattern); if (error) return 0; return 1; } GAIAGEO_DECLARE int gaiaLoadFromDxfParser (sqlite3 * handle, gaiaDxfParserPtr dxf, int mode, int append) { /* populating the target DB */ int ret; if (dxf == NULL) return 0; if (dxf->first_layer == NULL) return 0; if (dxf->first_block != NULL) { if (!import_blocks (handle, dxf, append)) return 0; } if (mode == GAIA_DXF_IMPORT_MIXED) ret = import_mixed (handle, dxf, append); else ret = import_by_layer (handle, dxf, append); return ret; } libspatialite-4.3.0a/src/dxf/Makefile.am0000664000175000017500000000105412544707704015046 00000000000000 AM_CPPFLAGS = @CFLAGS@ AM_CPPFLAGS += -I$(top_srcdir)/src/headers -I. noinst_HEADERS = dxf_private.h noinst_LTLIBRARIES = libdxf.la dxf.la DXF_COMMON_SOURCES = dxf_parser.c dxf_loader.c \ dxf_load_distinct.c dxf_load_mixed.c \ dxf_writer.c libdxf_la_SOURCES = $(DXF_COMMON_SOURCES) dxf_la_SOURCES = $(DXF_COMMON_SOURCES) dxf_la_CPPFLAGS = @CFLAGS@ dxf_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. dxf_la_CPPFLAGS += -DLOADABLE_EXTENSION dxf_la_LDFLAGS = -module dxf_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda libspatialite-4.3.0a/src/md5/0000775000175000017500000000000012573314326012772 500000000000000libspatialite-4.3.0a/src/md5/Makefile.in0000664000175000017500000005055012573313636014767 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/md5 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libmd5_la_LIBADD = am_libmd5_la_OBJECTS = md5.lo gaia_md5.lo libmd5_la_OBJECTS = $(am_libmd5_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = md5_la_LIBADD = am_md5_la_OBJECTS = md5_la-md5.lo md5_la-gaia_md5.lo md5_la_OBJECTS = $(am_md5_la_OBJECTS) md5_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(md5_la_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(md5_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libmd5_la_SOURCES) $(md5_la_SOURCES) DIST_SOURCES = $(libmd5_la_SOURCES) $(md5_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. noinst_HEADERS = md5.h noinst_LTLIBRARIES = libmd5.la md5.la libmd5_la_SOURCES = md5.c gaia_md5.c md5_la_SOURCES = md5.c gaia_md5.c md5_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ -DLOADABLE_EXTENSION md5_la_LDFLAGS = -module md5_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/md5/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/md5/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libmd5.la: $(libmd5_la_OBJECTS) $(libmd5_la_DEPENDENCIES) $(EXTRA_libmd5_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) $(libmd5_la_OBJECTS) $(libmd5_la_LIBADD) $(LIBS) md5.la: $(md5_la_OBJECTS) $(md5_la_DEPENDENCIES) $(EXTRA_md5_la_DEPENDENCIES) $(AM_V_CCLD)$(md5_la_LINK) $(md5_la_OBJECTS) $(md5_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaia_md5.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5_la-gaia_md5.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5_la-md5.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< md5_la-md5.lo: md5.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(md5_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(md5_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT md5_la-md5.lo -MD -MP -MF $(DEPDIR)/md5_la-md5.Tpo -c -o md5_la-md5.lo `test -f 'md5.c' || echo '$(srcdir)/'`md5.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/md5_la-md5.Tpo $(DEPDIR)/md5_la-md5.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='md5.c' object='md5_la-md5.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(md5_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(md5_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o md5_la-md5.lo `test -f 'md5.c' || echo '$(srcdir)/'`md5.c md5_la-gaia_md5.lo: gaia_md5.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(md5_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(md5_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT md5_la-gaia_md5.lo -MD -MP -MF $(DEPDIR)/md5_la-gaia_md5.Tpo -c -o md5_la-gaia_md5.lo `test -f 'gaia_md5.c' || echo '$(srcdir)/'`gaia_md5.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/md5_la-gaia_md5.Tpo $(DEPDIR)/md5_la-gaia_md5.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gaia_md5.c' object='md5_la-gaia_md5.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(md5_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(md5_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o md5_la-gaia_md5.lo `test -f 'gaia_md5.c' || echo '$(srcdir)/'`gaia_md5.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir 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-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/src/md5/md5.c0000664000175000017500000002070112544707704013547 00000000000000/* * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc. * MD5 Message-Digest Algorithm (RFC 1321). * * Homepage: * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5 * * Author: * Alexander Peslyak, better known as Solar Designer * * This software was written by Alexander Peslyak in 2001. No copyright is * claimed, and the software is hereby placed in the public domain. * In case this attempt to disclaim copyright and place the software in the * public domain is deemed null and void, then the software is * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the * general public under the following terms: * * Redistribution and use in source and binary forms, with or without * modification, are permitted. * * There's ABSOLUTELY NO WARRANTY, express or implied. * * (This is a heavily cut-down "BSD license".) * * This differs from Colin Plumb's older public domain implementation in that * no exactly 32-bit integer data type is required (any 32-bit or wider * unsigned integer data type will do), there's no compile-time endianness * configuration, and the function prototypes match OpenSSL's. No code from * Colin Plumb's implementation has been reused; this comment merely compares * the properties of the two independent implementations. * * The primary goals of this implementation are portability and ease of use. * It is meant to be fast, but not as fast as possible. Some known * optimizations are not included to reduce source code size and avoid * compile-time configuration. */ #ifndef HAVE_OPENSSL #include #include "md5.h" /* * The basic MD5 functions. * * F and G are optimized compared to their RFC 1321 definitions for * architectures that lack an AND-NOT instruction, just like in Colin Plumb's * implementation. */ #define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) #define G(x, y, z) ((y) ^ ((z) & ((x) ^ (y)))) #define H(x, y, z) ((x) ^ (y) ^ (z)) #define I(x, y, z) ((y) ^ ((x) | ~(z))) /* * The MD5 transformation for all four rounds. */ #define STEP(f, a, b, c, d, x, t, s) \ (a) += f((b), (c), (d)) + (x) + (t); \ (a) = (((a) << (s)) | (((a) & 0xffffffff) >> (32 - (s)))); \ (a) += (b); /* * SET reads 4 input bytes in little-endian byte order and stores them * in a properly aligned word in host byte order. * * The check for little-endian architectures that tolerate unaligned * memory accesses is just an optimization. Nothing will break if it * doesn't work. */ #if defined(__i386__) || defined(__x86_64__) || defined(__vax__) #define SET(n) \ (*(MD5_u32plus *)&ptr[(n) * 4]) #define GET(n) \ SET(n) #else #define SET(n) \ (ctx->block[(n)] = \ (MD5_u32plus)ptr[(n) * 4] | \ ((MD5_u32plus)ptr[(n) * 4 + 1] << 8) | \ ((MD5_u32plus)ptr[(n) * 4 + 2] << 16) | \ ((MD5_u32plus)ptr[(n) * 4 + 3] << 24)) #define GET(n) \ (ctx->block[(n)]) #endif /* * This processes one or more 64-byte data blocks, but does NOT update * the bit counters. There are no alignment requirements. */ static void *body(MD5_CTX *ctx, void *data, unsigned long size) { unsigned char *ptr; MD5_u32plus a, b, c, d; MD5_u32plus saved_a, saved_b, saved_c, saved_d; ptr = data; a = ctx->a; b = ctx->b; c = ctx->c; d = ctx->d; do { saved_a = a; saved_b = b; saved_c = c; saved_d = d; /* Round 1 */ STEP(F, a, b, c, d, SET(0), 0xd76aa478, 7) STEP(F, d, a, b, c, SET(1), 0xe8c7b756, 12) STEP(F, c, d, a, b, SET(2), 0x242070db, 17) STEP(F, b, c, d, a, SET(3), 0xc1bdceee, 22) STEP(F, a, b, c, d, SET(4), 0xf57c0faf, 7) STEP(F, d, a, b, c, SET(5), 0x4787c62a, 12) STEP(F, c, d, a, b, SET(6), 0xa8304613, 17) STEP(F, b, c, d, a, SET(7), 0xfd469501, 22) STEP(F, a, b, c, d, SET(8), 0x698098d8, 7) STEP(F, d, a, b, c, SET(9), 0x8b44f7af, 12) STEP(F, c, d, a, b, SET(10), 0xffff5bb1, 17) STEP(F, b, c, d, a, SET(11), 0x895cd7be, 22) STEP(F, a, b, c, d, SET(12), 0x6b901122, 7) STEP(F, d, a, b, c, SET(13), 0xfd987193, 12) STEP(F, c, d, a, b, SET(14), 0xa679438e, 17) STEP(F, b, c, d, a, SET(15), 0x49b40821, 22) /* Round 2 */ STEP(G, a, b, c, d, GET(1), 0xf61e2562, 5) STEP(G, d, a, b, c, GET(6), 0xc040b340, 9) STEP(G, c, d, a, b, GET(11), 0x265e5a51, 14) STEP(G, b, c, d, a, GET(0), 0xe9b6c7aa, 20) STEP(G, a, b, c, d, GET(5), 0xd62f105d, 5) STEP(G, d, a, b, c, GET(10), 0x02441453, 9) STEP(G, c, d, a, b, GET(15), 0xd8a1e681, 14) STEP(G, b, c, d, a, GET(4), 0xe7d3fbc8, 20) STEP(G, a, b, c, d, GET(9), 0x21e1cde6, 5) STEP(G, d, a, b, c, GET(14), 0xc33707d6, 9) STEP(G, c, d, a, b, GET(3), 0xf4d50d87, 14) STEP(G, b, c, d, a, GET(8), 0x455a14ed, 20) STEP(G, a, b, c, d, GET(13), 0xa9e3e905, 5) STEP(G, d, a, b, c, GET(2), 0xfcefa3f8, 9) STEP(G, c, d, a, b, GET(7), 0x676f02d9, 14) STEP(G, b, c, d, a, GET(12), 0x8d2a4c8a, 20) /* Round 3 */ STEP(H, a, b, c, d, GET(5), 0xfffa3942, 4) STEP(H, d, a, b, c, GET(8), 0x8771f681, 11) STEP(H, c, d, a, b, GET(11), 0x6d9d6122, 16) STEP(H, b, c, d, a, GET(14), 0xfde5380c, 23) STEP(H, a, b, c, d, GET(1), 0xa4beea44, 4) STEP(H, d, a, b, c, GET(4), 0x4bdecfa9, 11) STEP(H, c, d, a, b, GET(7), 0xf6bb4b60, 16) STEP(H, b, c, d, a, GET(10), 0xbebfbc70, 23) STEP(H, a, b, c, d, GET(13), 0x289b7ec6, 4) STEP(H, d, a, b, c, GET(0), 0xeaa127fa, 11) STEP(H, c, d, a, b, GET(3), 0xd4ef3085, 16) STEP(H, b, c, d, a, GET(6), 0x04881d05, 23) STEP(H, a, b, c, d, GET(9), 0xd9d4d039, 4) STEP(H, d, a, b, c, GET(12), 0xe6db99e5, 11) STEP(H, c, d, a, b, GET(15), 0x1fa27cf8, 16) STEP(H, b, c, d, a, GET(2), 0xc4ac5665, 23) /* Round 4 */ STEP(I, a, b, c, d, GET(0), 0xf4292244, 6) STEP(I, d, a, b, c, GET(7), 0x432aff97, 10) STEP(I, c, d, a, b, GET(14), 0xab9423a7, 15) STEP(I, b, c, d, a, GET(5), 0xfc93a039, 21) STEP(I, a, b, c, d, GET(12), 0x655b59c3, 6) STEP(I, d, a, b, c, GET(3), 0x8f0ccc92, 10) STEP(I, c, d, a, b, GET(10), 0xffeff47d, 15) STEP(I, b, c, d, a, GET(1), 0x85845dd1, 21) STEP(I, a, b, c, d, GET(8), 0x6fa87e4f, 6) STEP(I, d, a, b, c, GET(15), 0xfe2ce6e0, 10) STEP(I, c, d, a, b, GET(6), 0xa3014314, 15) STEP(I, b, c, d, a, GET(13), 0x4e0811a1, 21) STEP(I, a, b, c, d, GET(4), 0xf7537e82, 6) STEP(I, d, a, b, c, GET(11), 0xbd3af235, 10) STEP(I, c, d, a, b, GET(2), 0x2ad7d2bb, 15) STEP(I, b, c, d, a, GET(9), 0xeb86d391, 21) a += saved_a; b += saved_b; c += saved_c; d += saved_d; ptr += 64; } while (size -= 64); ctx->a = a; ctx->b = b; ctx->c = c; ctx->d = d; return ptr; } /* Sandro Furieri - SpatiaLite - 2013-06-03 simply re-declaring all these functions as PRIVATE (not externally visible outside libspatialite itself) */ MD5_PRIVATE void splite_MD5_Init(MD5_CTX *ctx) { ctx->a = 0x67452301; ctx->b = 0xefcdab89; ctx->c = 0x98badcfe; ctx->d = 0x10325476; ctx->lo = 0; ctx->hi = 0; } MD5_PRIVATE void splite_MD5_Update(MD5_CTX *ctx, void *data, unsigned long size) { MD5_u32plus saved_lo; unsigned long used, free; saved_lo = ctx->lo; if ((ctx->lo = (saved_lo + size) & 0x1fffffff) < saved_lo) ctx->hi++; ctx->hi += size >> 29; used = saved_lo & 0x3f; if (used) { free = 64 - used; if (size < free) { memcpy(&ctx->buffer[used], data, size); return; } memcpy(&ctx->buffer[used], data, free); data = (unsigned char *)data + free; size -= free; body(ctx, ctx->buffer, 64); } if (size >= 64) { data = body(ctx, data, size & ~(unsigned long)0x3f); size &= 0x3f; } memcpy(ctx->buffer, data, size); } MD5_PRIVATE void splite_MD5_Final(unsigned char *result, MD5_CTX *ctx) { unsigned long used, free; used = ctx->lo & 0x3f; ctx->buffer[used++] = 0x80; free = 64 - used; if (free < 8) { memset(&ctx->buffer[used], 0, free); body(ctx, ctx->buffer, 64); used = 0; free = 64; } memset(&ctx->buffer[used], 0, free - 8); ctx->lo <<= 3; ctx->buffer[56] = ctx->lo; ctx->buffer[57] = ctx->lo >> 8; ctx->buffer[58] = ctx->lo >> 16; ctx->buffer[59] = ctx->lo >> 24; ctx->buffer[60] = ctx->hi; ctx->buffer[61] = ctx->hi >> 8; ctx->buffer[62] = ctx->hi >> 16; ctx->buffer[63] = ctx->hi >> 24; body(ctx, ctx->buffer, 64); result[0] = ctx->a; result[1] = ctx->a >> 8; result[2] = ctx->a >> 16; result[3] = ctx->a >> 24; result[4] = ctx->b; result[5] = ctx->b >> 8; result[6] = ctx->b >> 16; result[7] = ctx->b >> 24; result[8] = ctx->c; result[9] = ctx->c >> 8; result[10] = ctx->c >> 16; result[11] = ctx->c >> 24; result[12] = ctx->d; result[13] = ctx->d >> 8; result[14] = ctx->d >> 16; result[15] = ctx->d >> 24; memset(ctx, 0, sizeof(*ctx)); } #endif libspatialite-4.3.0a/src/md5/md5.h0000664000175000017500000000334312544707704013557 00000000000000/* * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc. * MD5 Message-Digest Algorithm (RFC 1321). * * Homepage: * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5 * * Author: * Alexander Peslyak, better known as Solar Designer * * This software was written by Alexander Peslyak in 2001. No copyright is * claimed, and the software is hereby placed in the public domain. * In case this attempt to disclaim copyright and place the software in the * public domain is deemed null and void, then the software is * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the * general public under the following terms: * * Redistribution and use in source and binary forms, with or without * modification, are permitted. * * There's ABSOLUTELY NO WARRANTY, express or implied. * * See md5.c for more information. */ #ifdef HAVE_OPENSSL #include #elif !defined(_MD5_H) #define _MD5_H /* SpatiaLite private MD5 declarations Sandro Furieri - 2013-06-03 */ #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifdef _WIN32 #ifdef DLL_EXPORT #define MD5_PRIVATE #else #define MD5_PRIVATE #endif #else #define MD5_PRIVATE __attribute__ ((visibility("hidden"))) #endif #endif /* end Sandro Furieri - SpatiaLite - 2013-06-03 */ /* Any 32-bit or wider unsigned integer data type will do */ typedef unsigned int MD5_u32plus; typedef struct { MD5_u32plus lo, hi; MD5_u32plus a, b, c, d; unsigned char buffer[64]; MD5_u32plus block[16]; } MD5_CTX; MD5_PRIVATE void splite_MD5_Init(MD5_CTX *ctx); MD5_PRIVATE void splite_MD5_Update(MD5_CTX *ctx, void *data, unsigned long size); MD5_PRIVATE void splite_MD5_Final(unsigned char *result, MD5_CTX *ctx); #endif libspatialite-4.3.0a/src/md5/gaia_md5.c0000664000175000017500000000653112544707704014535 00000000000000/* gaia_md5.c -- a thin wrapper built around the original MD5 implementation from Alexander Peslyak (released on the Public Domain) version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include "md5.h" GAIAAUX_DECLARE void * gaiaCreateMD5Checksum (void) { /* Creates and initializes an MD5 checksum object */ MD5_CTX *md5 = malloc (sizeof (MD5_CTX)); splite_MD5_Init (md5); return md5; } GAIAAUX_DECLARE void gaiaFreeMD5Checksum (void *p_md5) { /* memory cleanup - destroying an MD5 checksum object */ unsigned char result[32]; MD5_CTX *md5 = (MD5_CTX *) p_md5; if (md5 == NULL) return; splite_MD5_Final (result, md5); free (md5); } GAIAAUX_DECLARE void gaiaUpdateMD5Checksum (void *p_md5, const unsigned char *blob, int blob_len) { /* progressively updating the MD5 checksum */ MD5_CTX *md5 = (MD5_CTX *) p_md5; if (md5 == NULL || blob == NULL) return; splite_MD5_Update (md5, (void *)blob, blob_len); } GAIAAUX_DECLARE char * gaiaFinalizeMD5Checksum (void *p_md5) { /* return the current MD5 checksum and resets the MD5 object */ int i; char *hex; char hex_byte[8]; unsigned char result[32]; MD5_CTX *md5 = (MD5_CTX *) p_md5; if (md5 == NULL) return NULL; splite_MD5_Final (result, md5); splite_MD5_Init (md5); /* formatting the MD5 checksum as hex-text */ hex = malloc (33); *hex = '\0'; for (i = 0; i < 16; i++) { sprintf (hex_byte, "%02x", result[i]); strcat (hex, hex_byte); } return hex; } libspatialite-4.3.0a/src/md5/Makefile.am0000664000175000017500000000066212544707704014756 00000000000000 AM_CPPFLAGS = @CFLAGS@ AM_CPPFLAGS += -I$(top_srcdir)/src/headers -I. noinst_HEADERS = md5.h noinst_LTLIBRARIES = libmd5.la md5.la libmd5_la_SOURCES = md5.c gaia_md5.c md5_la_SOURCES = md5.c gaia_md5.c md5_la_CPPFLAGS = @CFLAGS@ md5_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. md5_la_CPPFLAGS += -DLOADABLE_EXTENSION md5_la_LDFLAGS = -module md5_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda libspatialite-4.3.0a/src/gaiageo/0000775000175000017500000000000012573314326013701 500000000000000libspatialite-4.3.0a/src/gaiageo/gg_lwgeom.c0000664000175000017500000016015712544707704015752 00000000000000/* gg_lwgeom.c -- Gaia LWGEOM support version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2012-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: this module (wrapping liblwgeom APIs) has been entierely funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #ifdef ENABLE_LWGEOM /* enabling LWGEOM support */ #include /* GLOBAL variables */ char *gaia_lwgeom_error_msg = NULL; char *gaia_lwgeom_warning_msg = NULL; const char splitelwgeomversion[] = LIBLWGEOM_VERSION; SPATIALITE_PRIVATE const char * splite_lwgeom_version (void) { return splitelwgeomversion; } static void lwgaia_noticereporter (const char *fmt, va_list ap) { char *msg; if (!lw_vasprintf (&msg, fmt, ap)) { va_end (ap); return; } spatialite_e ("LWGEOM notice: %s\n", msg); gaiaSetLwGeomWarningMsg (msg); free (msg); } static void lwgaia_errorreporter (const char *fmt, va_list ap) { char *msg; if (!lw_vasprintf (&msg, fmt, ap)) { va_end (ap); return; } spatialite_e ("LWGEOM error: %s\n", msg); gaiaSetLwGeomErrorMsg (msg); free (msg); } #ifndef POSTGIS_2_1 /* liblwgeom initializion function: required by PostGIS 2.0.x */ void lwgeom_init_allocators (void) { /* Set up liblwgeom to run in stand-alone mode using the * usual system memory handling functions. */ lwalloc_var = default_allocator; lwrealloc_var = default_reallocator; lwfree_var = default_freeor; lwnotice_var = lwgaia_noticereporter; lwerror_var = lwgaia_errorreporter; } #else /* liblwgeom initialization function: required by PostGIS 2.1.x */ SPATIALITE_PRIVATE void splite_lwgeom_init (void) { lwgeom_set_handlers (NULL, NULL, NULL, lwgaia_errorreporter, lwgaia_noticereporter); } #endif GAIAGEO_DECLARE void gaiaResetLwGeomMsg () { /* resets the LWGEOM error and warning messages */ if (gaia_lwgeom_error_msg != NULL) free (gaia_lwgeom_error_msg); if (gaia_lwgeom_warning_msg != NULL) free (gaia_lwgeom_warning_msg); gaia_lwgeom_error_msg = NULL; gaia_lwgeom_warning_msg = NULL; } GAIAGEO_DECLARE const char * gaiaGetLwGeomErrorMsg () { /* setting the latest LWGEOM error message */ return gaia_lwgeom_error_msg; } GAIAGEO_DECLARE const char * gaiaGetLwGeomWarningMsg () { /* return the latest LWGEOM error message */ return gaia_lwgeom_warning_msg; } GAIAGEO_DECLARE void gaiaSetLwGeomErrorMsg (const char *msg) { /* setting the latest LWGEOM error message */ int len; if (gaia_lwgeom_error_msg != NULL) free (gaia_lwgeom_error_msg); gaia_lwgeom_error_msg = NULL; if (msg == NULL) return; len = strlen (msg); gaia_lwgeom_error_msg = malloc (len + 1); strcpy (gaia_lwgeom_error_msg, msg); } GAIAGEO_DECLARE void gaiaSetLwGeomWarningMsg (const char *msg) { /* return the latest LWGEOM error message */ int len; if (gaia_lwgeom_warning_msg != NULL) free (gaia_lwgeom_warning_msg); gaia_lwgeom_warning_msg = NULL; if (msg == NULL) return; len = strlen (msg); gaia_lwgeom_warning_msg = malloc (len + 1); strcpy (gaia_lwgeom_warning_msg, msg); } static int check_unclosed_ring (gaiaRingPtr rng) { /* checks if a Ring is closed or not */ double x0; double y0; double z0 = 0.0; double m0 = 0.0; double x1; double y1; double z1 = 0.0; double m1 = 0.0; int last = rng->Points - 1; if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x0, &y0, &z0); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x0, &y0, &m0); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x0, &y0, &z0, &m0); } else { gaiaGetPoint (rng->Coords, 0, &x0, &y0); } if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, last, &x1, &y1, &z1); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, last, &x1, &y1, &m1); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, last, &x1, &y1, &z1, &m1); } else { gaiaGetPoint (rng->Coords, last, &x1, &y1); } if (x0 == x1 && y0 == y1 && z0 == z1 && m0 == m1) return 0; return 1; } static LWGEOM * toLWGeom (const gaiaGeomCollPtr gaia) { /* converting a GAIA Geometry into a LWGEOM Geometry */ int pts = 0; int lns = 0; int pgs = 0; int has_z; int has_m; int ngeoms; int numg; int ib; int iv; int type; double x = 0.0; double y = 0.0; double z = 0.0; double m = 0.0; int close_ring; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; POINTARRAY *pa; POINTARRAY **ppaa; POINT4D point; LWGEOM **geoms; if (!gaia) return NULL; pt = gaia->FirstPoint; while (pt) { /* counting how many POINTs are there */ pts++; pt = pt->Next; } ln = gaia->FirstLinestring; while (ln) { /* counting how many LINESTRINGs are there */ lns++; ln = ln->Next; } pg = gaia->FirstPolygon; while (pg) { /* counting how many POLYGONs are there */ pgs++; pg = pg->Next; } if (pts == 0 && lns == 0 && pgs == 0) return NULL; if (pts == 1 && lns == 0 && pgs == 0) { /* single Point */ pt = gaia->FirstPoint; has_z = 0; has_m = 0; if (gaia->DimensionModel == GAIA_XY_Z || gaia->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (gaia->DimensionModel == GAIA_XY_M || gaia->DimensionModel == GAIA_XY_Z_M) has_m = 1; pa = ptarray_construct (has_z, has_m, 1); point.x = pt->X; point.y = pt->Y; if (has_z) point.z = pt->Z; if (has_m) point.m = pt->M; ptarray_set_point4d (pa, 0, &point); return (LWGEOM *) lwpoint_construct (gaia->Srid, NULL, pa); } else if (pts == 0 && lns == 1 && pgs == 0) { /* single Linestring */ ln = gaia->FirstLinestring; has_z = 0; has_m = 0; if (gaia->DimensionModel == GAIA_XY_Z || gaia->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (gaia->DimensionModel == GAIA_XY_M || gaia->DimensionModel == GAIA_XY_Z_M) has_m = 1; pa = ptarray_construct (has_z, has_m, ln->Points); for (iv = 0; iv < ln->Points; iv++) { /* copying vertices */ if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (pa, iv, &point); } return (LWGEOM *) lwline_construct (gaia->Srid, NULL, pa); } else if (pts == 0 && lns == 0 && pgs == 1) { /* single Polygon */ pg = gaia->FirstPolygon; has_z = 0; has_m = 0; if (gaia->DimensionModel == GAIA_XY_Z || gaia->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (gaia->DimensionModel == GAIA_XY_M || gaia->DimensionModel == GAIA_XY_Z_M) has_m = 1; ngeoms = pg->NumInteriors; ppaa = lwalloc (sizeof (POINTARRAY *) * (ngeoms + 1)); rng = pg->Exterior; close_ring = check_unclosed_ring (rng); if (close_ring) ppaa[0] = ptarray_construct (has_z, has_m, rng->Points + 1); else ppaa[0] = ptarray_construct (has_z, has_m, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* copying vertices - Exterior Ring */ if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[0], iv, &point); } if (close_ring) { /* making an unclosed ring to be closed */ if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, 0, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[0], rng->Points, &point); } for (ib = 0; ib < pg->NumInteriors; ib++) { /* copying vertices - Interior Rings */ rng = pg->Interiors + ib; close_ring = check_unclosed_ring (rng); if (close_ring) ppaa[1 + ib] = ptarray_construct (has_z, has_m, rng->Points + 1); else ppaa[1 + ib] = ptarray_construct (has_z, has_m, rng->Points); for (iv = 0; iv < rng->Points; iv++) { if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[1 + ib], iv, &point); } if (close_ring) { /* making an unclosed ring to be closed */ if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, 0, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[1 + ib], rng->Points, &point); } } return (LWGEOM *) lwpoly_construct (gaia->Srid, NULL, ngeoms + 1, ppaa); } else { /* some Collection */ switch (gaia->DeclaredType) { case GAIA_POINT: type = POINTTYPE; break; case GAIA_LINESTRING: type = LINETYPE; break; case GAIA_POLYGON: type = POLYGONTYPE; break; case GAIA_MULTIPOINT: type = MULTIPOINTTYPE; break; case GAIA_MULTILINESTRING: type = MULTILINETYPE; break; case GAIA_MULTIPOLYGON: type = MULTIPOLYGONTYPE; break; case GAIA_GEOMETRYCOLLECTION: type = COLLECTIONTYPE; break; default: if (lns == 0 && pgs == 0) type = MULTIPOINTTYPE; else if (pts == 0 && pgs == 0) type = MULTILINETYPE; else if (pts == 0 && lns == 0) type = MULTIPOLYGONTYPE; else type = COLLECTIONTYPE; break; }; numg = pts + lns + pgs; geoms = lwalloc (sizeof (LWGEOM *) * numg); numg = 0; pt = gaia->FirstPoint; while (pt) { /* copying POINTs */ has_z = 0; has_m = 0; if (gaia->DimensionModel == GAIA_XY_Z || gaia->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (gaia->DimensionModel == GAIA_XY_M || gaia->DimensionModel == GAIA_XY_Z_M) has_m = 1; pa = ptarray_construct (has_z, has_m, 1); point.x = pt->X; point.y = pt->Y; if (has_z) point.z = pt->Z; if (has_m) point.m = pt->M; ptarray_set_point4d (pa, 0, &point); geoms[numg++] = (LWGEOM *) lwpoint_construct (gaia->Srid, NULL, pa); pt = pt->Next; } ln = gaia->FirstLinestring; while (ln) { /* copying LINESTRINGs */ has_z = 0; has_m = 0; if (gaia->DimensionModel == GAIA_XY_Z || gaia->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (gaia->DimensionModel == GAIA_XY_M || gaia->DimensionModel == GAIA_XY_Z_M) has_m = 1; pa = ptarray_construct (has_z, has_m, ln->Points); for (iv = 0; iv < ln->Points; iv++) { /* copying vertices */ if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (pa, iv, &point); } geoms[numg++] = (LWGEOM *) lwline_construct (gaia->Srid, NULL, pa); ln = ln->Next; } pg = gaia->FirstPolygon; while (pg) { /* copying POLYGONs */ has_z = 0; has_m = 0; if (gaia->DimensionModel == GAIA_XY_Z || gaia->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (gaia->DimensionModel == GAIA_XY_M || gaia->DimensionModel == GAIA_XY_Z_M) has_m = 1; ngeoms = pg->NumInteriors; ppaa = lwalloc (sizeof (POINTARRAY *) * (ngeoms + 1)); rng = pg->Exterior; close_ring = check_unclosed_ring (rng); if (close_ring) ppaa[0] = ptarray_construct (has_z, has_m, rng->Points + 1); else ppaa[0] = ptarray_construct (has_z, has_m, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* copying vertices - Exterior Ring */ if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[0], iv, &point); } if (close_ring) { /* making an unclosed ring to be closed */ if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, 0, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[0], rng->Points, &point); } for (ib = 0; ib < pg->NumInteriors; ib++) { /* copying vertices - Interior Rings */ rng = pg->Interiors + ib; close_ring = check_unclosed_ring (rng); if (close_ring) ppaa[1 + ib] = ptarray_construct (has_z, has_m, rng->Points + 1); else ppaa[1 + ib] = ptarray_construct (has_z, has_m, rng->Points); for (iv = 0; iv < rng->Points; iv++) { if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[1 + ib], iv, &point); } if (close_ring) { /* making an unclosed ring to be closed */ if (gaia->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); } else if (gaia->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); } else if (gaia->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, 0, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[1 + ib], rng->Points, &point); } } geoms[numg++] = (LWGEOM *) lwpoly_construct (gaia->Srid, NULL, ngeoms + 1, ppaa); pg = pg->Next; } return (LWGEOM *) lwcollection_construct (type, gaia->Srid, NULL, numg, geoms); } return NULL; } static gaiaGeomCollPtr fromLWGeomIncremental (gaiaGeomCollPtr gaia, const LWGEOM * lwgeom) { /* converting a LWGEOM Geometry into a GAIA Geometry */ gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; int dimension_model = gaia->DimensionModel; int declared_type = gaia->DeclaredType; LWGEOM *lwg2 = NULL; LWPOINT *lwp = NULL; LWLINE *lwl = NULL; LWPOLY *lwpoly = NULL; LWCOLLECTION *lwc = NULL; POINTARRAY *pa; POINT4D pt4d; int has_z; int has_m; int iv; int ib; int ngeoms; int ng; double x; double y; double z; double m; if (lwgeom == NULL) return NULL; if (lwgeom_is_empty (lwgeom)) return NULL; switch (lwgeom->type) { case POINTTYPE: lwp = (LWPOINT *) lwgeom; has_z = 0; has_m = 0; pa = lwp->point; if (FLAGS_GET_Z (pa->flags)) has_z = 1; if (FLAGS_GET_M (pa->flags)) has_m = 1; getPoint4d_p (pa, 0, &pt4d); x = pt4d.x; y = pt4d.y; if (has_z) z = pt4d.z; else z = 0.0; if (has_m) m = pt4d.m; else m = 0.0; if (dimension_model == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (gaia, x, y, z); else if (dimension_model == GAIA_XY_M) gaiaAddPointToGeomCollXYM (gaia, x, y, m); else if (dimension_model == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (gaia, x, y, z, m); else gaiaAddPointToGeomColl (gaia, x, y); if (declared_type == GAIA_MULTIPOINT) gaia->DeclaredType = GAIA_MULTIPOINT; else if (declared_type == GAIA_GEOMETRYCOLLECTION) gaia->DeclaredType = GAIA_GEOMETRYCOLLECTION; else gaia->DeclaredType = GAIA_POINT; break; case LINETYPE: lwl = (LWLINE *) lwgeom; has_z = 0; has_m = 0; pa = lwl->points; if (FLAGS_GET_Z (pa->flags)) has_z = 1; if (FLAGS_GET_M (pa->flags)) has_m = 1; ln = gaiaAddLinestringToGeomColl (gaia, pa->npoints); for (iv = 0; iv < pa->npoints; iv++) { /* copying LINESTRING vertices */ getPoint4d_p (pa, iv, &pt4d); x = pt4d.x; y = pt4d.y; if (has_z) z = pt4d.z; else z = 0.0; if (has_m) m = pt4d.m; else m = 0.0; if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, iv, x, y, m); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ln->Coords, iv, x, y); } } if (declared_type == GAIA_MULTILINESTRING) gaia->DeclaredType = GAIA_MULTILINESTRING; else if (declared_type == GAIA_GEOMETRYCOLLECTION) gaia->DeclaredType = GAIA_GEOMETRYCOLLECTION; else gaia->DeclaredType = GAIA_LINESTRING; break; case POLYGONTYPE: lwpoly = (LWPOLY *) lwgeom; has_z = 0; has_m = 0; pa = lwpoly->rings[0]; if (FLAGS_GET_Z (pa->flags)) has_z = 1; if (FLAGS_GET_M (pa->flags)) has_m = 1; pg = gaiaAddPolygonToGeomColl (gaia, pa->npoints, lwpoly->nrings - 1); rng = pg->Exterior; for (iv = 0; iv < pa->npoints; iv++) { /* copying Exterion Ring vertices */ getPoint4d_p (pa, iv, &pt4d); x = pt4d.x; y = pt4d.y; if (has_z) z = pt4d.z; else z = 0.0; if (has_m) m = pt4d.m; else m = 0.0; if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, m); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } for (ib = 1; ib < lwpoly->nrings; ib++) { has_z = 0; has_m = 0; pa = lwpoly->rings[ib]; if (FLAGS_GET_Z (pa->flags)) has_z = 1; if (FLAGS_GET_M (pa->flags)) has_m = 1; rng = gaiaAddInteriorRing (pg, ib - 1, pa->npoints); for (iv = 0; iv < pa->npoints; iv++) { /* copying Exterion Ring vertices */ getPoint4d_p (pa, iv, &pt4d); x = pt4d.x; y = pt4d.y; if (has_z) z = pt4d.z; else z = 0.0; if (has_m) m = pt4d.m; else m = 0.0; if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, m); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } } if (declared_type == GAIA_MULTIPOLYGON) gaia->DeclaredType = GAIA_MULTIPOLYGON; else if (declared_type == GAIA_GEOMETRYCOLLECTION) gaia->DeclaredType = GAIA_GEOMETRYCOLLECTION; else gaia->DeclaredType = GAIA_POLYGON; break; case MULTIPOINTTYPE: case MULTILINETYPE: case MULTIPOLYGONTYPE: case COLLECTIONTYPE: if (lwgeom->type == MULTIPOINTTYPE) { if (declared_type == GAIA_GEOMETRYCOLLECTION) gaia->DeclaredType = GAIA_GEOMETRYCOLLECTION; else gaia->DeclaredType = GAIA_MULTIPOINT; } else if (lwgeom->type == MULTILINETYPE) { if (declared_type == GAIA_GEOMETRYCOLLECTION) gaia->DeclaredType = GAIA_GEOMETRYCOLLECTION; else gaia->DeclaredType = GAIA_MULTILINESTRING; } else if (lwgeom->type == MULTIPOLYGONTYPE) { if (declared_type == GAIA_GEOMETRYCOLLECTION) gaia->DeclaredType = GAIA_GEOMETRYCOLLECTION; else gaia->DeclaredType = GAIA_MULTIPOLYGON; } else gaia->DeclaredType = GAIA_GEOMETRYCOLLECTION; lwc = (LWCOLLECTION *) lwgeom; ngeoms = lwc->ngeoms; if (ngeoms == 0) { gaiaFreeGeomColl (gaia); gaia = NULL; break; } for (ng = 0; ng < ngeoms; ++ng) { /* looping on elementary geometries */ lwg2 = lwc->geoms[ng]; switch (lwg2->type) { case POINTTYPE: lwp = (LWPOINT *) lwg2; has_z = 0; has_m = 0; pa = lwp->point; if (FLAGS_GET_Z (pa->flags)) has_z = 1; if (FLAGS_GET_M (pa->flags)) has_m = 1; getPoint4d_p (pa, 0, &pt4d); x = pt4d.x; y = pt4d.y; if (has_z) z = pt4d.z; else z = 0.0; if (has_m) m = pt4d.m; else m = 0.0; if (dimension_model == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (gaia, x, y, z); else if (dimension_model == GAIA_XY_M) gaiaAddPointToGeomCollXYM (gaia, x, y, m); else if (dimension_model == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (gaia, x, y, z, m); else gaiaAddPointToGeomColl (gaia, x, y); break; case LINETYPE: lwl = (LWLINE *) lwg2; has_z = 0; has_m = 0; pa = lwl->points; if (FLAGS_GET_Z (pa->flags)) has_z = 1; if (FLAGS_GET_M (pa->flags)) has_m = 1; ln = gaiaAddLinestringToGeomColl (gaia, pa->npoints); for (iv = 0; iv < pa->npoints; iv++) { /* copying LINESTRING vertices */ getPoint4d_p (pa, iv, &pt4d); x = pt4d.x; y = pt4d.y; if (has_z) z = pt4d.z; else z = 0.0; if (has_m) m = pt4d.m; else m = 0.0; if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, iv, x, y, m); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ln->Coords, iv, x, y); } } break; case POLYGONTYPE: lwpoly = (LWPOLY *) lwg2; has_z = 0; has_m = 0; pa = lwpoly->rings[0]; if (FLAGS_GET_Z (pa->flags)) has_z = 1; if (FLAGS_GET_M (pa->flags)) has_m = 1; pg = gaiaAddPolygonToGeomColl (gaia, pa->npoints, lwpoly->nrings - 1); rng = pg->Exterior; for (iv = 0; iv < pa->npoints; iv++) { /* copying Exterion Ring vertices */ getPoint4d_p (pa, iv, &pt4d); x = pt4d.x; y = pt4d.y; if (has_z) z = pt4d.z; else z = 0.0; if (has_m) m = pt4d.m; else m = 0.0; if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, m); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } for (ib = 1; ib < lwpoly->nrings; ib++) { has_z = 0; has_m = 0; pa = lwpoly->rings[ib]; if (FLAGS_GET_Z (pa->flags)) has_z = 1; if (FLAGS_GET_M (pa->flags)) has_m = 1; rng = gaiaAddInteriorRing (pg, ib - 1, pa->npoints); for (iv = 0; iv < pa->npoints; iv++) { /* copying Exterion Ring vertices */ getPoint4d_p (pa, iv, &pt4d); x = pt4d.x; y = pt4d.y; if (has_z) z = pt4d.z; else z = 0.0; if (has_m) m = pt4d.m; else m = 0.0; if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, m); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } } break; }; } break; default: gaiaFreeGeomColl (gaia); gaia = NULL; break; }; return gaia; } static gaiaGeomCollPtr fromLWGeom (const LWGEOM * lwgeom, const int dimension_model, const int declared_type) { /* converting a LWGEOM Geometry into a GAIA Geometry */ gaiaGeomCollPtr gaia = NULL; if (lwgeom == NULL) return NULL; if (lwgeom_is_empty (lwgeom)) return NULL; if (dimension_model == GAIA_XY_Z) gaia = gaiaAllocGeomCollXYZ (); else if (dimension_model == GAIA_XY_M) gaia = gaiaAllocGeomCollXYM (); else if (dimension_model == GAIA_XY_Z_M) gaia = gaiaAllocGeomCollXYZM (); else gaia = gaiaAllocGeomColl (); gaia->DeclaredType = declared_type; fromLWGeomIncremental (gaia, lwgeom); return gaia; } static int check_valid_type (const LWGEOM * lwgeom, int declared_type) { /* checking if the geometry type is a valid one */ int ret = 0; switch (lwgeom->type) { case POINTTYPE: case MULTIPOINTTYPE: if (declared_type == GAIA_POINT || declared_type == GAIA_POINTZ || declared_type == GAIA_POINTM || declared_type == GAIA_POINTZM) ret = 1; if (declared_type == GAIA_MULTIPOINT || declared_type == GAIA_MULTIPOINTZ || declared_type == GAIA_MULTIPOINTM || declared_type == GAIA_MULTIPOINTZM) ret = 1; break; case LINETYPE: case MULTILINETYPE: if (declared_type == GAIA_LINESTRING || declared_type == GAIA_LINESTRINGZ || declared_type == GAIA_LINESTRINGM || declared_type == GAIA_LINESTRINGZM) ret = 1; if (declared_type == GAIA_MULTILINESTRING || declared_type == GAIA_MULTILINESTRINGZ || declared_type == GAIA_MULTILINESTRINGM || declared_type == GAIA_MULTILINESTRINGZM) ret = 1; break; case POLYGONTYPE: case MULTIPOLYGONTYPE: if (declared_type == GAIA_POLYGON || declared_type == GAIA_POLYGONZ || declared_type == GAIA_POLYGONM || declared_type == GAIA_POLYGONZM) ret = 1; if (declared_type == GAIA_MULTIPOLYGON || declared_type == GAIA_MULTIPOLYGONZ || declared_type == GAIA_MULTIPOLYGONM || declared_type == GAIA_MULTIPOLYGONZM) ret = 1; break; case COLLECTIONTYPE: if (declared_type == GAIA_GEOMETRYCOLLECTION || declared_type == GAIA_GEOMETRYCOLLECTIONZ || declared_type == GAIA_GEOMETRYCOLLECTIONM || declared_type == GAIA_GEOMETRYCOLLECTIONZM) ret = 1; break; }; return ret; } static gaiaGeomCollPtr fromLWGeomValidated (const LWGEOM * lwgeom, const int dimension_model, const int declared_type) { /* / converting a LWGEOM Geometry into a GAIA Geometry / first collection - validated items */ gaiaGeomCollPtr gaia = NULL; LWGEOM *lwg2 = NULL; LWCOLLECTION *lwc = NULL; int ngeoms; if (lwgeom == NULL) return NULL; if (lwgeom_is_empty (lwgeom)) return NULL; switch (lwgeom->type) { case COLLECTIONTYPE: lwc = (LWCOLLECTION *) lwgeom; ngeoms = lwc->ngeoms; if (ngeoms <= 2) { lwg2 = lwc->geoms[0]; if (check_valid_type (lwg2, declared_type)) gaia = fromLWGeom (lwg2, dimension_model, declared_type); } break; default: if (check_valid_type (lwgeom, declared_type)) gaia = fromLWGeom (lwgeom, dimension_model, declared_type); if (gaia == NULL) { /* Andrea Peri: 2013-05-02 returning anyway the LWGEOM geometry, / even if it has a mismatching type */ int type = -1; switch (lwgeom->type) { case POINTTYPE: type = GAIA_POINT; break; case LINETYPE: type = GAIA_LINESTRING; break; case POLYGONTYPE: type = GAIA_POLYGON; break; case MULTIPOINTTYPE: type = GAIA_MULTIPOINT; break; case MULTILINETYPE: type = GAIA_MULTILINESTRING; break; case MULTIPOLYGONTYPE: type = GAIA_MULTIPOLYGON; break; }; if (type >= 0) gaia = fromLWGeom (lwgeom, dimension_model, type); } break; } return gaia; } static gaiaGeomCollPtr fromLWGeomDiscarded (const LWGEOM * lwgeom, const int dimension_model, const int declared_type) { /* / converting a LWGEOM Geometry into a GAIA Geometry / second collection - discarded items */ gaiaGeomCollPtr gaia = NULL; LWGEOM *lwg2 = NULL; LWCOLLECTION *lwc = NULL; int ngeoms; int ig; if (lwgeom == NULL) return NULL; if (lwgeom_is_empty (lwgeom)) return NULL; if (lwgeom->type == COLLECTIONTYPE) { if (dimension_model == GAIA_XY_Z) gaia = gaiaAllocGeomCollXYZ (); else if (dimension_model == GAIA_XY_M) gaia = gaiaAllocGeomCollXYM (); else if (dimension_model == GAIA_XY_Z_M) gaia = gaiaAllocGeomCollXYZM (); else gaia = gaiaAllocGeomColl (); lwc = (LWCOLLECTION *) lwgeom; ngeoms = lwc->ngeoms; for (ig = 0; ig < ngeoms; ig++) { lwg2 = lwc->geoms[ig]; if (!check_valid_type (lwg2, declared_type)) fromLWGeomIncremental (gaia, lwg2); } } /* Andrea Peri: 2013-05-02 when a single geometry is returned by LWGEOM it's always "valid" and there are no discarded items at all else if (!check_valid_type (lwgeom, declared_type)) gaia = fromLWGeom (lwgeom, dimension_model, declared_type); */ return gaia; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValid (gaiaGeomCollPtr geom) { /* wrapping LWGEOM MakeValid [collecting valid items] */ LWGEOM *g1; LWGEOM *g2; gaiaGeomCollPtr result = NULL; if (!geom) return NULL; /* locking the semaphore */ splite_lwgeom_semaphore_lock (); g1 = toLWGeom (geom); g2 = lwgeom_make_valid (g1); if (!g2) { lwgeom_free (g1); goto done; } result = fromLWGeomValidated (g2, geom->DimensionModel, geom->DeclaredType); spatialite_init_geos (); lwgeom_free (g1); lwgeom_free (g2); if (result == NULL) goto done; result->Srid = geom->Srid; done: /* unlocking the semaphore */ splite_lwgeom_semaphore_unlock (); return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValidDiscarded (gaiaGeomCollPtr geom) { /* wrapping LWGEOM MakeValid [collecting discarder items] */ LWGEOM *g1; LWGEOM *g2; gaiaGeomCollPtr result = NULL; if (!geom) return NULL; /* locking the semaphore */ splite_lwgeom_semaphore_lock (); g1 = toLWGeom (geom); g2 = lwgeom_make_valid (g1); if (!g2) { lwgeom_free (g1); goto done; } result = fromLWGeomDiscarded (g2, geom->DimensionModel, geom->DeclaredType); spatialite_init_geos (); lwgeom_free (g1); lwgeom_free (g2); if (result == NULL) goto done; result->Srid = geom->Srid; done: /* unlocking the semaphore */ splite_lwgeom_semaphore_unlock (); return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSegmentize (gaiaGeomCollPtr geom, double dist) { /* wrapping LWGEOM Segmentize */ LWGEOM *g1; LWGEOM *g2; gaiaGeomCollPtr result = NULL; if (!geom) return NULL; if (dist <= 0.0) return NULL; /* locking the semaphore */ splite_lwgeom_semaphore_lock (); g1 = toLWGeom (geom); g2 = lwgeom_segmentize2d (g1, dist); if (!g2) { lwgeom_free (g1); goto done; } result = fromLWGeom (g2, geom->DimensionModel, geom->DeclaredType); spatialite_init_geos (); lwgeom_free (g1); lwgeom_free (g2); if (result == NULL) goto done; result->Srid = geom->Srid; done: /* unlocking the semaphore */ splite_lwgeom_semaphore_unlock (); return result; } static int check_split_args (gaiaGeomCollPtr input, gaiaGeomCollPtr blade) { /* testing Split arguments */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; int i_lns = 0; int i_pgs = 0; int b_pts = 0; int b_lns = 0; if (!input) return 0; if (!blade) return 0; /* testing the Input type */ if (input->FirstPoint != NULL) { /* Point(s) on Input is forbidden !!!! */ return 0; } ln = input->FirstLinestring; while (ln) { /* counting how many Linestrings are there */ i_lns++; ln = ln->Next; } pg = input->FirstPolygon; while (pg) { /* counting how many Polygons are there */ i_pgs++; pg = pg->Next; } if (i_lns + i_pgs == 0) { /* empty Input */ return 0; } /* testing the Blade type */ pt = blade->FirstPoint; while (pt) { /* counting how many Points are there */ b_pts++; pt = pt->Next; } if (b_pts > 1) { /* MultiPoint on Blade is forbidden !!!! */ return 0; } ln = blade->FirstLinestring; while (ln) { /* counting how many Linestrings are there */ b_lns++; ln = ln->Next; } if (b_lns > 1) { /* MultiLinestring on Blade is forbidden !!!! */ return 0; } if (blade->FirstPolygon != NULL) { /* Polygon(s) on Blade is forbidden !!!! */ return 0; } if (b_pts + b_lns == 0) { /* empty Blade */ return 0; } if (b_pts + b_lns > 1) { /* invalid Blade [point + linestring] */ return 0; } /* compatibility check */ if (b_lns == 1) { /* Linestring blade is always valid */ return 1; } if (i_lns >= 1 && b_pts == 1) { /* Linestring or MultiLinestring input and Point blade is allowed */ return 1; } return 0; } static void set_split_gtype (gaiaGeomCollPtr geom) { /* assignign the actual geometry type */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; int pts = 0; int lns = 0; int pgs = 0; pt = geom->FirstPoint; while (pt) { /* counting how many Points are there */ pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { /* counting how many Linestrings are there */ lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { /* counting how many Polygons are there */ pgs++; pg = pg->Next; } if (pts == 1 && lns == 0 && pgs == 0) { geom->DeclaredType = GAIA_POINT; return; } if (pts > 1 && lns == 0 && pgs == 0) { geom->DeclaredType = GAIA_MULTIPOINT; return; } if (pts == 0 && lns == 1 && pgs == 0) { geom->DeclaredType = GAIA_LINESTRING; return; } if (pts == 0 && lns > 1 && pgs == 0) { geom->DeclaredType = GAIA_MULTILINESTRING; return; } if (pts == 0 && lns == 0 && pgs == 1) { geom->DeclaredType = GAIA_POLYGON; return; } if (pts == 0 && lns == 0 && pgs > 1) { geom->DeclaredType = GAIA_MULTIPOLYGON; return; } geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; } static LWGEOM * toLWGeomLinestring (gaiaLinestringPtr ln, int srid) { /* converting a GAIA Linestring into a LWGEOM Geometry */ int iv; double x = 0.0; double y = 0.0; double z = 0.0; double m = 0.0; int has_z = 0; int has_m = 0; POINTARRAY *pa; POINT4D point; if (ln->DimensionModel == GAIA_XY_Z || ln->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (ln->DimensionModel == GAIA_XY_M || ln->DimensionModel == GAIA_XY_Z_M) has_m = 1; pa = ptarray_construct (has_z, has_m, ln->Points); for (iv = 0; iv < ln->Points; iv++) { /* copying vertices */ if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (pa, iv, &point); } return (LWGEOM *) lwline_construct (srid, NULL, pa); } static LWGEOM * toLWGeomPolygon (gaiaPolygonPtr pg, int srid) { /* converting a GAIA Linestring into a LWGEOM Geometry */ int iv; int ib; double x = 0.0; double y = 0.0; double z = 0.0; double m = 0.0; int ngeoms; int has_z = 0; int has_m = 0; int close_ring; gaiaRingPtr rng; POINTARRAY **ppaa; POINT4D point; if (pg->DimensionModel == GAIA_XY_Z || pg->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (pg->DimensionModel == GAIA_XY_M || pg->DimensionModel == GAIA_XY_Z_M) has_m = 1; ngeoms = pg->NumInteriors; ppaa = lwalloc (sizeof (POINTARRAY *) * (ngeoms + 1)); rng = pg->Exterior; close_ring = check_unclosed_ring (rng); if (close_ring) ppaa[0] = ptarray_construct (has_z, has_m, rng->Points + 1); else ppaa[0] = ptarray_construct (has_z, has_m, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* copying vertices - Exterior Ring */ if (pg->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (pg->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (pg->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[0], iv, &point); } if (close_ring) { /* making an unclosed ring to be closed */ if (pg->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); } else if (pg->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); } else if (pg->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, 0, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[0], rng->Points, &point); } for (ib = 0; ib < pg->NumInteriors; ib++) { /* copying vertices - Interior Rings */ rng = pg->Interiors + ib; close_ring = check_unclosed_ring (rng); if (close_ring) ppaa[1 + ib] = ptarray_construct (has_z, has_m, rng->Points + 1); else ppaa[1 + ib] = ptarray_construct (has_z, has_m, rng->Points); for (iv = 0; iv < rng->Points; iv++) { if (pg->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (pg->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (pg->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[1 + ib], iv, &point); } if (close_ring) { /* making an unclosed ring to be closed */ if (pg->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); } else if (pg->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); } else if (pg->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, 0, &x, &y); } point.x = x; point.y = y; if (has_z) point.z = z; if (has_m) point.m = m; ptarray_set_point4d (ppaa[0], rng->Points, &point); } } return (LWGEOM *) lwpoly_construct (srid, NULL, ngeoms + 1, ppaa); } static gaiaGeomCollPtr fromLWGeomLeft (gaiaGeomCollPtr gaia, const LWGEOM * lwgeom) { /* / converting a LWGEOM Geometry into a GAIA Geometry / collecting "left side" items */ LWGEOM *lwg2 = NULL; LWCOLLECTION *lwc = NULL; int ngeoms; int ig; if (lwgeom == NULL) return NULL; if (lwgeom_is_empty (lwgeom)) return NULL; if (lwgeom->type == COLLECTIONTYPE) { lwc = (LWCOLLECTION *) lwgeom; ngeoms = lwc->ngeoms; for (ig = 0; ig < ngeoms; ig += 2) { lwg2 = lwc->geoms[ig]; fromLWGeomIncremental (gaia, lwg2); } } else gaia = fromLWGeom (lwgeom, gaia->DimensionModel, gaia->DeclaredType); return gaia; } static gaiaGeomCollPtr fromLWGeomRight (gaiaGeomCollPtr gaia, const LWGEOM * lwgeom) { /* / converting a LWGEOM Geometry into a GAIA Geometry / collecting "right side" items */ LWGEOM *lwg2 = NULL; LWCOLLECTION *lwc = NULL; int ngeoms; int ig; if (lwgeom == NULL) return NULL; if (lwgeom_is_empty (lwgeom)) return NULL; if (lwgeom->type == COLLECTIONTYPE) { lwc = (LWCOLLECTION *) lwgeom; ngeoms = lwc->ngeoms; for (ig = 1; ig < ngeoms; ig += 2) { lwg2 = lwc->geoms[ig]; fromLWGeomIncremental (gaia, lwg2); } } return gaia; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplit (gaiaGeomCollPtr input, gaiaGeomCollPtr blade) { /* wrapping LWGEOM Split */ LWGEOM *g1; LWGEOM *g2; LWGEOM *g3; gaiaGeomCollPtr result = NULL; if (!check_split_args (input, blade)) return NULL; /* locking the semaphore */ splite_lwgeom_semaphore_lock (); g1 = toLWGeom (input); g2 = toLWGeom (blade); g3 = lwgeom_split (g1, g2); if (!g3) { lwgeom_free (g1); lwgeom_free (g2); goto done; } result = fromLWGeom (g3, input->DimensionModel, input->DeclaredType); spatialite_init_geos (); lwgeom_free (g1); lwgeom_free (g2); lwgeom_free (g3); if (result == NULL) goto done; result->Srid = input->Srid; set_split_gtype (result); done: /* unlocking the semaphore */ splite_lwgeom_semaphore_unlock (); return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitLeft (gaiaGeomCollPtr input, gaiaGeomCollPtr blade) { /* wrapping LWGEOM Split [left half] */ LWGEOM *g1; LWGEOM *g2; LWGEOM *g3; gaiaGeomCollPtr result = NULL; gaiaLinestringPtr ln; gaiaPolygonPtr pg; if (!check_split_args (input, blade)) return NULL; /* locking the semaphore */ splite_lwgeom_semaphore_lock (); if (input->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (input->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (input->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); g2 = toLWGeom (blade); ln = input->FirstLinestring; while (ln) { /* splitting some Linestring */ g1 = toLWGeomLinestring (ln, input->Srid); g3 = lwgeom_split (g1, g2); if (g3) { result = fromLWGeomLeft (result, g3); lwgeom_free (g3); } spatialite_init_geos (); lwgeom_free (g1); ln = ln->Next; } pg = input->FirstPolygon; while (pg) { /* splitting some Polygon */ g1 = toLWGeomPolygon (pg, input->Srid); g3 = lwgeom_split (g1, g2); if (g3) { result = fromLWGeomLeft (result, g3); lwgeom_free (g3); } spatialite_init_geos (); lwgeom_free (g1); pg = pg->Next; } lwgeom_free (g2); if (result == NULL) goto done; if (result->FirstPoint == NULL && result->FirstLinestring == NULL && result->FirstPolygon == NULL) { gaiaFreeGeomColl (result); result = NULL; goto done; } result->Srid = input->Srid; set_split_gtype (result); done: /* unlocking the semaphore */ splite_lwgeom_semaphore_unlock (); return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitRight (gaiaGeomCollPtr input, gaiaGeomCollPtr blade) { /* wrapping LWGEOM Split [right half] */ LWGEOM *g1; LWGEOM *g2; LWGEOM *g3; gaiaGeomCollPtr result = NULL; gaiaLinestringPtr ln; gaiaPolygonPtr pg; if (!check_split_args (input, blade)) return NULL; /* locking the semaphore */ splite_lwgeom_semaphore_lock (); if (input->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (input->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (input->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); g2 = toLWGeom (blade); ln = input->FirstLinestring; while (ln) { /* splitting some Linestring */ g1 = toLWGeomLinestring (ln, input->Srid); g3 = lwgeom_split (g1, g2); if (g3) { result = fromLWGeomRight (result, g3); lwgeom_free (g3); } spatialite_init_geos (); lwgeom_free (g1); ln = ln->Next; } pg = input->FirstPolygon; while (pg) { /* splitting some Polygon */ g1 = toLWGeomPolygon (pg, input->Srid); g3 = lwgeom_split (g1, g2); if (g3) { result = fromLWGeomRight (result, g3); lwgeom_free (g3); } spatialite_init_geos (); lwgeom_free (g1); pg = pg->Next; } lwgeom_free (g2); if (result == NULL) goto done; if (result->FirstPoint == NULL && result->FirstLinestring == NULL && result->FirstPolygon == NULL) { gaiaFreeGeomColl (result); result = NULL; goto done; } result->Srid = input->Srid; set_split_gtype (result); done: /* unlocking the semaphore */ splite_lwgeom_semaphore_unlock (); return result; } GAIAGEO_DECLARE int gaiaAzimuth (double xa, double ya, double xb, double yb, double *azimuth) { /* wrapping LWGEOM Azimuth */ POINT2D pt1; POINT2D pt2; double az; int ret = 1; pt1.x = xa; pt1.y = ya; pt2.x = xb; pt2.y = yb; /* locking the semaphore */ splite_lwgeom_semaphore_lock (); if (!azimuth_pt_pt (&pt1, &pt2, &az)) ret = 0; *azimuth = az; /* unlocking the semaphore */ splite_lwgeom_semaphore_unlock (); return ret; } GAIAGEO_DECLARE int gaiaEllipsoidAzimuth (double xa, double ya, double xb, double yb, double a, double b, double *azimuth) { /* wrapping LWGEOM AzimuthSpheroid */ LWPOINT *pt1 = lwpoint_make2d (0, xa, ya); LWPOINT *pt2 = lwpoint_make2d (0, xb, yb); SPHEROID ellips; int ret = 1; /* locking the semaphore */ splite_lwgeom_semaphore_lock (); spheroid_init (&ellips, a, b); *azimuth = lwgeom_azumith_spheroid (pt1, pt2, &ellips); lwpoint_free (pt1); lwpoint_free (pt2); /* unlocking the semaphore */ splite_lwgeom_semaphore_unlock (); return ret; } GAIAGEO_DECLARE int gaiaProjectedPoint (double x1, double y1, double a, double b, double distance, double azimuth, double *x2, double *y2) { /* wrapping LWGEOM Project */ LWPOINT *pt1 = lwpoint_make2d (0, x1, y1); LWPOINT *pt2; SPHEROID ellips; int ret = 0; /* locking the semaphore */ splite_lwgeom_semaphore_lock (); spheroid_init (&ellips, a, b); pt2 = lwgeom_project_spheroid (pt1, &ellips, distance, azimuth); lwpoint_free (pt1); if (pt2 != NULL) { *x2 = lwpoint_get_x (pt2); *y2 = lwpoint_get_y (pt2); lwpoint_free (pt2); ret = 1; } /* unlocking the semaphore */ splite_lwgeom_semaphore_unlock (); return ret; } GAIAGEO_DECLARE int gaiaGeodesicArea (gaiaGeomCollPtr geom, double a, double b, int use_ellipsoid, double *area) { /* wrapping LWGEOM AreaSphere and AreaSpheroid */ LWGEOM *g = toLWGeom (geom); SPHEROID ellips; GBOX gbox; double tolerance = 1e-12; int ret = 1; /* locking the semaphore */ splite_lwgeom_semaphore_lock (); spheroid_init (&ellips, a, b); if (g == NULL) { ret = 0; goto done; } lwgeom_calculate_gbox_geodetic (g, &gbox); if (use_ellipsoid) { /* testing for "forbidden" calculations on the ellipsoid */ if ((gbox.zmax + tolerance) >= 1.0 || (gbox.zmin - tolerance) <= -1.0) use_ellipsoid = 0; /* can't circle the poles */ if (gbox.zmax > 0.0 && gbox.zmin < 0.0) use_ellipsoid = 0; /* can't cross the equator */ } if (use_ellipsoid) *area = lwgeom_area_spheroid (g, &ellips); else *area = lwgeom_area_sphere (g, &ellips); lwgeom_free (g); done: /* unlocking the semaphore */ splite_lwgeom_semaphore_unlock (); return ret; } GAIAGEO_DECLARE char * gaiaGeoHash (gaiaGeomCollPtr geom, int precision) { /* wrapping LWGEOM GeoHash */ LWGEOM *g; char *result; char *geo_hash = NULL; int len; if (!geom) return NULL; gaiaMbrGeometry (geom); if (geom->MinX < -180.0 || geom->MaxX > 180.0 || geom->MinY < -90.0 || geom->MaxY > 90.0) return NULL; /* locking the semaphore */ splite_lwgeom_semaphore_lock (); g = toLWGeom (geom); result = lwgeom_geohash (g, precision); lwgeom_free (g); if (result == NULL) goto done; len = strlen (result); if (len == 0) { lwfree (result); goto done; } geo_hash = malloc (len + 1); strcpy (geo_hash, result); lwfree (result); done: /* unlocking the semaphore */ splite_lwgeom_semaphore_unlock (); return geo_hash; } GAIAGEO_DECLARE char * gaiaAsX3D (gaiaGeomCollPtr geom, const char *srs, int precision, int options, const char *defid) { /* wrapping LWGEOM AsX3D */ LWGEOM *g; char *result; char *x3d = NULL; int len; if (!geom) return NULL; /* locking the semaphore */ splite_lwgeom_semaphore_lock (); gaiaMbrGeometry (geom); g = toLWGeom (geom); result = lwgeom_to_x3d3 (g, (char *) srs, precision, options, defid); lwgeom_free (g); if (result == NULL) goto done; len = strlen (result); if (len == 0) { lwfree (result); goto done; } x3d = malloc (len + 1); strcpy (x3d, result); lwfree (result); done: /* unlocking the semaphore */ splite_lwgeom_semaphore_unlock (); return x3d; } GAIAGEO_DECLARE int gaia3DDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist) { /* wrapping LWGEOM mindistance3d */ LWGEOM *g1; LWGEOM *g2; double d; int ret = 1; /* locking the semaphore */ splite_lwgeom_semaphore_lock (); g1 = toLWGeom (geom1); g2 = toLWGeom (geom2); d = lwgeom_mindistance3d (g1, g2); lwgeom_free (g1); lwgeom_free (g2); *dist = d; /* unlocking the semaphore */ splite_lwgeom_semaphore_unlock (); return ret; } GAIAGEO_DECLARE int gaiaMaxDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist) { /* wrapping LWGEOM maxdistance2d */ LWGEOM *g1; LWGEOM *g2; double d; int ret = 1; /* locking the semaphore */ splite_lwgeom_semaphore_lock (); g1 = toLWGeom (geom1); g2 = toLWGeom (geom2); d = lwgeom_maxdistance2d (g1, g2); lwgeom_free (g1); lwgeom_free (g2); *dist = d; /* unlocking the semaphore */ splite_lwgeom_semaphore_unlock (); return ret; } GAIAGEO_DECLARE int gaia3DMaxDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist) { /* wrapping LWGEOM maxdistance2d */ LWGEOM *g1; LWGEOM *g2; double d; int ret = 1; /* locking the semaphore */ splite_lwgeom_semaphore_lock (); g1 = toLWGeom (geom1); g2 = toLWGeom (geom2); d = lwgeom_maxdistance3d (g1, g2); lwgeom_free (g1); lwgeom_free (g2); *dist = d; /* unlocking the semaphore */ splite_lwgeom_semaphore_unlock (); return ret; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaNodeLines (gaiaGeomCollPtr geom) { /* wrapping LWGEOM lwgeom_node */ LWGEOM *g1; LWGEOM *g2; gaiaGeomCollPtr result = NULL; if (!geom) return NULL; /* locking the semaphore */ splite_lwgeom_semaphore_lock (); g1 = toLWGeom (geom); g2 = lwgeom_node (g1); if (!g2) { lwgeom_free (g1); goto done; } result = fromLWGeom (g2, geom->DimensionModel, geom->DeclaredType); spatialite_init_geos (); lwgeom_free (g1); lwgeom_free (g2); if (result == NULL) goto done; result->Srid = geom->Srid; done: /* unlocking the semaphore */ splite_lwgeom_semaphore_unlock (); return result; } #endif /* end enabling LWGEOM support */ libspatialite-4.3.0a/src/gaiageo/gg_relations_ext.c0000664000175000017500000032213112544707704017330 00000000000000/* gg_relations_ext.c -- Gaia spatial relations [advanced] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #ifndef OMIT_GEOS /* including GEOS */ #include #endif #include #include #include #ifndef OMIT_GEOS /* including GEOS */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve (gaiaGeomCollPtr geom, double radius, int points, int left_right) { /* // builds a geometry that is the OffsetCurve of GEOM // (which is expected to be of the LINESTRING type) // */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; int pts = 0; int lns = 0; int pgs = 0; int closed = 0; gaiaResetGeosMsg (); if (!geom) return NULL; if (left_right < 0) left_right = 0; /* silencing stupid compiler warnings */ /* checking the input geometry for validity */ pt = geom->FirstPoint; while (pt) { /* counting how many POINTs are there */ pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { /* counting how many LINESTRINGs are there */ lns++; if (gaiaIsClosed (ln)) closed++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { /* counting how many POLYGON are there */ pgs++; pg = pg->Next; } if (pts > 0 || pgs > 0 || lns > 1 || closed > 0) return NULL; /* all right: this one simply is a LINESTRING */ geom->DeclaredType = GAIA_LINESTRING; g1 = gaiaToGeos (geom); g2 = GEOSOffsetCurve (g1, radius, points, GEOSBUF_JOIN_ROUND, 5.0); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g2); else geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve_r (const void *p_cache, gaiaGeomCollPtr geom, double radius, int points, int left_right) { /* // builds a geometry that is the OffsetCurve of GEOM // (which is expected to be of the LINESTRING type) // */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; int pts = 0; int lns = 0; int pgs = 0; int closed = 0; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom) return NULL; if (left_right < 0) left_right = 0; /* silencing stupid compiler warnings */ /* checking the input geometry for validity */ pt = geom->FirstPoint; while (pt) { /* counting how many POINTs are there */ pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { /* counting how many LINESTRINGs are there */ lns++; if (gaiaIsClosed (ln)) closed++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { /* counting how many POLYGON are there */ pgs++; pg = pg->Next; } if (pts > 0 || pgs > 0 || lns > 1 || closed > 0) return NULL; /* all right: this one simply is a LINESTRING */ geom->DeclaredType = GAIA_LINESTRING; g1 = gaiaToGeos_r (cache, geom); g2 = GEOSOffsetCurve_r (handle, g1, radius, points, GEOSBUF_JOIN_ROUND, 5.0); GEOSGeom_destroy_r (handle, g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM_r (cache, g2); else geo = gaiaFromGeos_XY_r (cache, g2); GEOSGeom_destroy_r (handle, g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer (gaiaGeomCollPtr geom, double radius, int points, int left_right) { /* // builds a geometry that is the SingleSided BUFFER of GEOM // (which is expected to be of the LINESTRING type) // */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; GEOSBufferParams *params = NULL; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; int pts = 0; int lns = 0; int pgs = 0; int closed = 0; gaiaResetGeosMsg (); if (!geom) return NULL; /* checking the input geometry for validity */ pt = geom->FirstPoint; while (pt) { /* counting how many POINTs are there */ pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { /* counting how many LINESTRINGs are there */ lns++; if (gaiaIsClosed (ln)) closed++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { /* counting how many POLYGON are there */ pgs++; pg = pg->Next; } if (pts > 0 || pgs > 0 || lns > 1 || closed > 0) return NULL; /* all right: this one simply is a LINESTRING */ geom->DeclaredType = GAIA_LINESTRING; g1 = gaiaToGeos (geom); /* setting up Buffer params */ params = GEOSBufferParams_create (); GEOSBufferParams_setJoinStyle (params, GEOSBUF_JOIN_ROUND); GEOSBufferParams_setMitreLimit (params, 5.0); GEOSBufferParams_setQuadrantSegments (params, points); GEOSBufferParams_setSingleSided (params, 1); /* creating the SingleSided Buffer */ if (left_right == 0) { /* right-sided requires NEGATIVE radius */ radius *= -1.0; } g2 = GEOSBufferWithParams (g1, params, radius); GEOSGeom_destroy (g1); GEOSBufferParams_destroy (params); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g2); else geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer_r (const void *p_cache, gaiaGeomCollPtr geom, double radius, int points, int left_right) { /* // builds a geometry that is the SingleSided BUFFER of GEOM // (which is expected to be of the LINESTRING type) // */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; GEOSBufferParams *params = NULL; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; int pts = 0; int lns = 0; int pgs = 0; int closed = 0; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom) return NULL; /* checking the input geometry for validity */ pt = geom->FirstPoint; while (pt) { /* counting how many POINTs are there */ pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { /* counting how many LINESTRINGs are there */ lns++; if (gaiaIsClosed (ln)) closed++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { /* counting how many POLYGON are there */ pgs++; pg = pg->Next; } if (pts > 0 || pgs > 0 || lns > 1 || closed > 0) return NULL; /* all right: this one simply is a LINESTRING */ geom->DeclaredType = GAIA_LINESTRING; g1 = gaiaToGeos_r (cache, geom); /* setting up Buffer params */ params = GEOSBufferParams_create_r (handle); GEOSBufferParams_setJoinStyle_r (handle, params, GEOSBUF_JOIN_ROUND); GEOSBufferParams_setMitreLimit_r (handle, params, 5.0); GEOSBufferParams_setQuadrantSegments_r (handle, params, points); GEOSBufferParams_setSingleSided_r (handle, params, 1); /* creating the SingleSided Buffer */ if (left_right == 0) { /* right-sided requires NEGATIVE radius */ radius *= -1.0; } g2 = GEOSBufferWithParams_r (handle, g1, params, radius); GEOSGeom_destroy_r (handle, g1); GEOSBufferParams_destroy_r (handle, params); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM_r (cache, g2); else geo = gaiaFromGeos_XY_r (cache, g2); GEOSGeom_destroy_r (handle, g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE int gaiaHausdorffDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *xdist) { /* / computes the (discrete) Hausdorff distance intercurring / between GEOM-1 and GEOM-2 */ double dist; int ret; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom1 || !geom2) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSHausdorffDistance (g1, g2, &dist); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (ret) *xdist = dist; return ret; } GAIAGEO_DECLARE int gaiaHausdorffDistance_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *xdist) { /* / computes the (discrete) Hausdorff distance intercurring / between GEOM-1 and GEOM-2 */ double dist; int ret; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return 0; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return 0; handle = cache->GEOS_handle; if (handle == NULL) return 0; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return 0; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSHausdorffDistance_r (handle, g1, g2, &dist); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); if (ret) *xdist = dist; return ret; } static gaiaGeomCollPtr geom_as_lines (gaiaGeomCollPtr geom) { /* transforms a Geometry into a LINESTRING/MULTILINESTRING (if possible) */ gaiaGeomCollPtr result; gaiaLinestringPtr ln; gaiaLinestringPtr new_ln; gaiaPolygonPtr pg; gaiaRingPtr rng; int iv; int ib; double x; double y; double z; double m; if (!geom) return NULL; if (geom->FirstPoint != NULL) { /* invalid: GEOM contains at least one POINT */ return NULL; } switch (geom->DimensionModel) { case GAIA_XY_Z_M: result = gaiaAllocGeomCollXYZM (); break; case GAIA_XY_Z: result = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: result = gaiaAllocGeomCollXYM (); break; default: result = gaiaAllocGeomColl (); break; }; result->Srid = geom->Srid; ln = geom->FirstLinestring; while (ln) { /* copying any Linestring */ new_ln = gaiaAddLinestringToGeomColl (result, ln->Points); for (iv = 0; iv < ln->Points; iv++) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaSetPoint (new_ln->Coords, iv, x, y); } } ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { /* copying any Polygon Ring (as Linestring) */ rng = pg->Exterior; new_ln = gaiaAddLinestringToGeomColl (result, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* exterior Ring */ if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaSetPoint (new_ln->Coords, iv, x, y); } } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; new_ln = gaiaAddLinestringToGeomColl (result, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* any interior Ring */ if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaSetPoint (new_ln->Coords, iv, x, y); } } } pg = pg->Next; } return result; } static void add_shared_linestring (gaiaGeomCollPtr geom, gaiaDynamicLinePtr dyn) { /* adding a LINESTRING from Dynamic Line */ int count = 0; gaiaLinestringPtr ln; gaiaPointPtr pt; int iv; if (!geom) return; if (!dyn) return; pt = dyn->First; while (pt) { /* counting how many Points are there */ count++; pt = pt->Next; } if (count == 0) return; ln = gaiaAddLinestringToGeomColl (geom, count); iv = 0; pt = dyn->First; while (pt) { /* copying points into the LINESTRING */ if (ln->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, iv, pt->X, pt->Y, pt->Z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, iv, pt->X, pt->Y, pt->M); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, iv, pt->X, pt->Y, pt->Z, pt->M); } else { gaiaSetPoint (ln->Coords, iv, pt->X, pt->Y); } iv++; pt = pt->Next; } } static void append_shared_path (gaiaDynamicLinePtr dyn, gaiaLinestringPtr ln, int order) { /* appends a Shared Path item to Dynamic Line */ int iv; double x; double y; double z; double m; if (order) { /* reversed order */ for (iv = ln->Points - 1; iv >= 0; iv--) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); if (x == dyn->Last->X && y == dyn->Last->Y && z == dyn->Last->Z) ; else gaiaAppendPointZToDynamicLine (dyn, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); if (x == dyn->Last->X && y == dyn->Last->Y && m == dyn->Last->M) ; else gaiaAppendPointMToDynamicLine (dyn, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); if (x == dyn->Last->X && y == dyn->Last->Y && z == dyn->Last->Z && m == dyn->Last->M) ; else gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); if (x == dyn->Last->X && y == dyn->Last->Y) ; else gaiaAppendPointToDynamicLine (dyn, x, y); } } } else { /* conformant order */ for (iv = 0; iv < ln->Points; iv++) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); if (x == dyn->Last->X && y == dyn->Last->Y && z == dyn->Last->Z) ; else gaiaAppendPointZToDynamicLine (dyn, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); if (x == dyn->Last->X && y == dyn->Last->Y && m == dyn->Last->M) ; else gaiaAppendPointMToDynamicLine (dyn, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); if (x == dyn->Last->X && y == dyn->Last->Y && z == dyn->Last->Z && m == dyn->Last->M) ; else gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); if (x == dyn->Last->X && y == dyn->Last->Y) ; else gaiaAppendPointToDynamicLine (dyn, x, y); } } } } static void prepend_shared_path (gaiaDynamicLinePtr dyn, gaiaLinestringPtr ln, int order) { /* prepends a Shared Path item to Dynamic Line */ int iv; double x; double y; double z; double m; if (order) { /* reversed order */ for (iv = 0; iv < ln->Points; iv++) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); if (x == dyn->First->X && y == dyn->First->Y && z == dyn->First->Z) ; else gaiaPrependPointZToDynamicLine (dyn, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); if (x == dyn->First->X && y == dyn->First->Y && m == dyn->First->M) ; else gaiaPrependPointMToDynamicLine (dyn, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); if (x == dyn->First->X && y == dyn->First->Y && z == dyn->First->Z && m == dyn->First->M) ; else gaiaPrependPointZMToDynamicLine (dyn, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); if (x == dyn->First->X && y == dyn->First->Y) ; else gaiaPrependPointToDynamicLine (dyn, x, y); } } } else { /* conformant order */ for (iv = ln->Points - 1; iv >= 0; iv--) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); if (x == dyn->First->X && y == dyn->First->Y && z == dyn->First->Z) ; else gaiaPrependPointZToDynamicLine (dyn, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); if (x == dyn->First->X && y == dyn->First->Y && m == dyn->First->M) ; else gaiaPrependPointMToDynamicLine (dyn, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); if (x == dyn->First->X && y == dyn->First->Y && z == dyn->First->Z && m == dyn->First->M) ; else gaiaPrependPointZMToDynamicLine (dyn, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); if (x == dyn->First->X && y == dyn->First->Y) ; else gaiaPrependPointToDynamicLine (dyn, x, y); } } } } static gaiaGeomCollPtr arrange_shared_paths (gaiaGeomCollPtr geom) { /* final aggregation step for shared paths */ gaiaLinestringPtr ln; gaiaLinestringPtr *ln_array; gaiaGeomCollPtr result; gaiaDynamicLinePtr dyn; int count; int i; int i2; int iv; double x; double y; double z; double m; int ok; int ok2; if (!geom) return NULL; count = 0; ln = geom->FirstLinestring; while (ln) { /* counting how many Linestrings are there */ count++; ln = ln->Next; } if (count == 0) return NULL; ln_array = malloc (sizeof (gaiaLinestringPtr) * count); i = 0; ln = geom->FirstLinestring; while (ln) { /* populating the Linestring references array */ ln_array[i++] = ln; ln = ln->Next; } /* allocating a new Geometry [MULTILINESTRING] */ switch (geom->DimensionModel) { case GAIA_XY_Z_M: result = gaiaAllocGeomCollXYZM (); break; case GAIA_XY_Z: result = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: result = gaiaAllocGeomCollXYM (); break; default: result = gaiaAllocGeomColl (); break; }; result->Srid = geom->Srid; result->DeclaredType = GAIA_MULTILINESTRING; ok = 1; while (ok) { /* looping until we have processed any input item */ ok = 0; for (i = 0; i < count; i++) { if (ln_array[i] != NULL) { /* starting a new LINESTRING */ dyn = gaiaAllocDynamicLine (); ln = ln_array[i]; ln_array[i] = NULL; for (iv = 0; iv < ln->Points; iv++) { /* inserting the 'seed' path */ if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaAppendPointZToDynamicLine (dyn, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaAppendPointMToDynamicLine (dyn, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaAppendPointToDynamicLine (dyn, x, y); } } ok2 = 1; while (ok2) { /* looping until we have checked any other item */ ok2 = 0; for (i2 = 0; i2 < count; i2++) { /* expanding the 'seed' path */ if (ln_array[i2] == NULL) continue; ln = ln_array[i2]; /* checking the first vertex */ iv = 0; if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (x == dyn->Last->X && y == dyn->Last->Y) { /* appending this item to the 'seed' (conformant order) */ append_shared_path (dyn, ln, 0); ln_array[i2] = NULL; ok2 = 1; continue; } if (x == dyn->First->X && y == dyn->First->Y) { /* prepending this item to the 'seed' (reversed order) */ prepend_shared_path (dyn, ln, 1); ln_array[i2] = NULL; ok2 = 1; continue; } /* checking the last vertex */ iv = ln->Points - 1; if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (x == dyn->Last->X && y == dyn->Last->Y) { /* appending this item to the 'seed' (reversed order) */ append_shared_path (dyn, ln, 1); ln_array[i2] = NULL; ok2 = 1; continue; } if (x == dyn->First->X && y == dyn->First->Y) { /* prepending this item to the 'seed' (conformant order) */ prepend_shared_path (dyn, ln, 0); ln_array[i2] = NULL; ok2 = 1; continue; } } } add_shared_linestring (result, dyn); gaiaFreeDynamicLine (dyn); ok = 1; break; } } } free (ln_array); return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* // builds a geometry containing Shared Paths commons to GEOM1 & GEOM2 // (which are expected to be of the LINESTRING/MULTILINESTRING type) // */ gaiaGeomCollPtr geo; gaiaGeomCollPtr result; gaiaGeomCollPtr line1; gaiaGeomCollPtr line2; GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; gaiaResetGeosMsg (); if (!geom1) return NULL; if (!geom2) return NULL; /* transforming input geoms as Lines */ line1 = geom_as_lines (geom1); line2 = geom_as_lines (geom2); if (line1 == NULL || line2 == NULL) { if (line1) gaiaFreeGeomColl (line1); if (line2) gaiaFreeGeomColl (line2); return NULL; } g1 = gaiaToGeos (line1); g2 = gaiaToGeos (line2); gaiaFreeGeomColl (line1); gaiaFreeGeomColl (line2); g3 = GEOSSharedPaths (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (!g3) return NULL; if (geom1->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g3); else if (geom1->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g3); else geo = gaiaFromGeos_XY (g3); GEOSGeom_destroy (g3); if (geo == NULL) return NULL; geo->Srid = geom1->Srid; result = arrange_shared_paths (geo); gaiaFreeGeomColl (geo); return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* // builds a geometry containing Shared Paths commons to GEOM1 & GEOM2 // (which are expected to be of the LINESTRING/MULTILINESTRING type) // */ gaiaGeomCollPtr geo; gaiaGeomCollPtr result; gaiaGeomCollPtr line1; gaiaGeomCollPtr line2; GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom1) return NULL; if (!geom2) return NULL; /* transforming input geoms as Lines */ line1 = geom_as_lines (geom1); line2 = geom_as_lines (geom2); if (line1 == NULL || line2 == NULL) { if (line1) gaiaFreeGeomColl (line1); if (line2) gaiaFreeGeomColl (line2); return NULL; } g1 = gaiaToGeos_r (cache, line1); g2 = gaiaToGeos_r (cache, line2); gaiaFreeGeomColl (line1); gaiaFreeGeomColl (line2); g3 = GEOSSharedPaths_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); if (!g3) return NULL; if (geom1->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ_r (cache, g3); else if (geom1->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM_r (cache, g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM_r (cache, g3); else geo = gaiaFromGeos_XY_r (cache, g3); GEOSGeom_destroy_r (handle, g3); if (geo == NULL) return NULL; geo->Srid = geom1->Srid; result = arrange_shared_paths (geo); gaiaFreeGeomColl (geo); return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint (gaiaGeomCollPtr geom, double fraction) { /* * attempts to intepolate a point on line at dist "fraction" * * the fraction is expressed into the range from 0.0 to 1.0 */ int pts = 0; int lns = 0; int pgs = 0; gaiaGeomCollPtr result; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; GEOSGeometry *g; GEOSGeometry *g_pt; double length; double projection; gaiaResetGeosMsg (); if (!geom) return NULL; /* checking if a single Linestring has been passed */ pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 0 && lns == 1 && pgs == 0) ; else return NULL; g = gaiaToGeos (geom); if (GEOSLength (g, &length)) { /* transforming fraction to length */ if (fraction < 0.0) fraction = 0.0; if (fraction > 1.0) fraction = 1.0; projection = length * fraction; } else { GEOSGeom_destroy (g); return NULL; } g_pt = GEOSInterpolate (g, projection); GEOSGeom_destroy (g); if (!g_pt) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ (g_pt); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM (g_pt); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM (g_pt); else result = gaiaFromGeos_XY (g_pt); GEOSGeom_destroy (g_pt); if (result == NULL) return NULL; result->Srid = geom->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint_r (const void *p_cache, gaiaGeomCollPtr geom, double fraction) { /* * attempts to intepolate a point on line at dist "fraction" * * the fraction is expressed into the range from 0.0 to 1.0 */ int pts = 0; int lns = 0; int pgs = 0; gaiaGeomCollPtr result; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; GEOSGeometry *g; GEOSGeometry *g_pt; double length; double projection; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom) return NULL; /* checking if a single Linestring has been passed */ pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 0 && lns == 1 && pgs == 0) ; else return NULL; g = gaiaToGeos_r (cache, geom); if (GEOSLength_r (handle, g, &length)) { /* transforming fraction to length */ if (fraction < 0.0) fraction = 0.0; if (fraction > 1.0) fraction = 1.0; projection = length * fraction; } else { GEOSGeom_destroy_r (handle, g); return NULL; } g_pt = GEOSInterpolate_r (handle, g, projection); GEOSGeom_destroy_r (handle, g); if (!g_pt) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ_r (cache, g_pt); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM_r (cache, g_pt); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM_r (cache, g_pt); else result = gaiaFromGeos_XY_r (cache, g_pt); GEOSGeom_destroy_r (handle, g_pt); if (result == NULL) return NULL; result->Srid = geom->Srid; return result; } static gaiaGeomCollPtr gaiaLineInterpolateEquidistantPointsCommon (struct splite_internal_cache *cache, gaiaGeomCollPtr geom, double distance) { /* * attempts to intepolate a set of points on line at regular distances */ int pts = 0; int lns = 0; int pgs = 0; gaiaGeomCollPtr result; gaiaGeomCollPtr xpt; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; GEOSGeometry *g; GEOSGeometry *g_pt; double length; double current_length = 0.0; GEOSContextHandle_t handle = NULL; if (cache != NULL) { if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; } if (!geom) return NULL; if (distance <= 0.0) return NULL; /* checking if a single Linestring has been passed */ pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 0 && lns == 1 && pgs == 0) ; else return NULL; if (cache != NULL) { g = gaiaToGeos_r (cache, geom); if (GEOSLength_r (handle, g, &length)) { if (length <= distance) { /* the line is too short to apply interpolation */ GEOSGeom_destroy_r (handle, g); return NULL; } } else { GEOSGeom_destroy_r (handle, g); return NULL; } } else { g = gaiaToGeos (geom); if (GEOSLength (g, &length)) { if (length <= distance) { /* the line is too short to apply interpolation */ GEOSGeom_destroy (g); return NULL; } } else { GEOSGeom_destroy (g); return NULL; } } /* creating the MultiPoint [always supporting M] */ if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomCollXYM (); if (result == NULL) { GEOSGeom_destroy (g); return NULL; } while (1) { /* increasing the current distance */ current_length += distance; if (current_length >= length) break; /* interpolating a point */ if (handle != NULL) g_pt = GEOSInterpolate_r (handle, g, current_length); else g_pt = GEOSInterpolate (g, current_length); if (!g_pt) goto error; if (geom->DimensionModel == GAIA_XY_Z) { if (cache != NULL) xpt = gaiaFromGeos_XYZ_r (cache, g_pt); else xpt = gaiaFromGeos_XYZ (g_pt); if (!xpt) goto error; pt = xpt->FirstPoint; if (!pt) goto error; gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z, current_length); } else if (geom->DimensionModel == GAIA_XY_M) { if (cache != NULL) xpt = gaiaFromGeos_XYM_r (cache, g_pt); else xpt = gaiaFromGeos_XYM (g_pt); if (!xpt) goto error; pt = xpt->FirstPoint; if (!pt) goto error; gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y, current_length); } else if (geom->DimensionModel == GAIA_XY_Z_M) { if (cache != NULL) xpt = gaiaFromGeos_XYZM_r (cache, g_pt); else xpt = gaiaFromGeos_XYZM (g_pt); if (!xpt) goto error; pt = xpt->FirstPoint; if (!pt) goto error; gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z, current_length); } else { if (cache != NULL) xpt = gaiaFromGeos_XY_r (cache, g_pt); else xpt = gaiaFromGeos_XY (g_pt); if (!xpt) goto error; pt = xpt->FirstPoint; if (!pt) goto error; gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y, current_length); } if (handle != NULL) GEOSGeom_destroy_r (handle, g_pt); else GEOSGeom_destroy (g_pt); gaiaFreeGeomColl (xpt); } if (handle != NULL) GEOSGeom_destroy_r (handle, g); else GEOSGeom_destroy (g); result->Srid = geom->Srid; result->DeclaredType = GAIA_MULTIPOINT; return result; error: if (handle != NULL) { if (g_pt) GEOSGeom_destroy_r (handle, g_pt); GEOSGeom_destroy_r (handle, g); } else { if (g_pt) GEOSGeom_destroy (g_pt); GEOSGeom_destroy (g); } gaiaFreeGeomColl (result); return NULL; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolateEquidistantPoints (gaiaGeomCollPtr geom, double distance) { gaiaResetGeosMsg (); return gaiaLineInterpolateEquidistantPointsCommon (NULL, geom, distance); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolateEquidistantPoints_r (const void *p_cache, gaiaGeomCollPtr geom, double distance) { struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); return gaiaLineInterpolateEquidistantPointsCommon (cache, geom, distance); } GAIAGEO_DECLARE double gaiaLineLocatePoint (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* * attempts to compute the location of the closest point on LineString * to the given Point, as a fraction of total 2d line length * * the fraction is expressed into the range from 0.0 to 1.0 */ int pts1 = 0; int lns1 = 0; int pgs1 = 0; int pts2 = 0; int lns2 = 0; int pgs2 = 0; double length; double projection; double result; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom1 || !geom2) return -1.0; /* checking if a single Linestring has been passed */ pt = geom1->FirstPoint; while (pt) { pts1++; pt = pt->Next; } ln = geom1->FirstLinestring; while (ln) { lns1++; ln = ln->Next; } pg = geom1->FirstPolygon; while (pg) { pgs1++; pg = pg->Next; } if (pts1 == 0 && lns1 >= 1 && pgs1 == 0) ; else return -1.0; /* checking if a single Point has been passed */ pt = geom2->FirstPoint; while (pt) { pts2++; pt = pt->Next; } ln = geom2->FirstLinestring; while (ln) { lns2++; ln = ln->Next; } pg = geom2->FirstPolygon; while (pg) { pgs2++; pg = pg->Next; } if (pts2 == 1 && lns2 == 0 && pgs2 == 0) ; else return -1.0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); projection = GEOSProject (g1, g2); if (GEOSLength (g1, &length)) { /* normalizing as a fraction between 0.0 and 1.0 */ result = projection / length; } else result = -1.0; GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return result; } GAIAGEO_DECLARE double gaiaLineLocatePoint_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* * attempts to compute the location of the closest point on LineString * to the given Point, as a fraction of total 2d line length * * the fraction is expressed into the range from 0.0 to 1.0 */ int pts1 = 0; int lns1 = 0; int pgs1 = 0; int pts2 = 0; int lns2 = 0; int pgs2 = 0; double length; double projection; double result; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1.0; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1.0; handle = cache->GEOS_handle; if (handle == NULL) return -1.0; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1.0; /* checking if a single Linestring has been passed */ pt = geom1->FirstPoint; while (pt) { pts1++; pt = pt->Next; } ln = geom1->FirstLinestring; while (ln) { lns1++; ln = ln->Next; } pg = geom1->FirstPolygon; while (pg) { pgs1++; pg = pg->Next; } if (pts1 == 0 && lns1 >= 1 && pgs1 == 0) ; else return -1.0; /* checking if a single Point has been passed */ pt = geom2->FirstPoint; while (pt) { pts2++; pt = pt->Next; } ln = geom2->FirstLinestring; while (ln) { lns2++; ln = ln->Next; } pg = geom2->FirstPolygon; while (pg) { pgs2++; pg = pg->Next; } if (pts2 == 1 && lns2 == 0 && pgs2 == 0) ; else return -1.0; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); projection = GEOSProject_r (handle, g1, g2); if (GEOSLength_r (handle, g1, &length)) { /* normalizing as a fraction between 0.0 and 1.0 */ result = projection / length; } else result = -1.0; GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); return result; } static gaiaGeomCollPtr gaiaLineSubstringCommon (struct splite_internal_cache *cache, gaiaGeomCollPtr geom, double start_fraction, double end_fraction) { /* * attempts to build a new Linestring being a substring of the input one starting * and ending at the given fractions of total 2d length */ int pts = 0; int lns = 0; int pgs = 0; gaiaGeomCollPtr result; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaLinestringPtr out; gaiaPolygonPtr pg; GEOSGeometry *g; GEOSGeometry *g_start; GEOSGeometry *g_end; GEOSCoordSequence *cs; const GEOSCoordSequence *in_cs; GEOSGeometry *segm; double length; double total = 0.0; double start; double end; int iv; int i_start = -1; int i_end = -1; int points; double x; double y; double z; double m; unsigned int dims; GEOSContextHandle_t handle = NULL; if (cache != NULL) { if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; } if (!geom) return NULL; /* checking if a single Linestring has been passed */ pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 0 && lns == 1 && pgs == 0) ; else return NULL; if (start_fraction < 0.0) start_fraction = 0.0; if (start_fraction > 1.0) start_fraction = 1.0; if (end_fraction < 0.0) end_fraction = 0.0; if (end_fraction > 1.0) end_fraction = 1.0; if (start_fraction >= end_fraction) return NULL; if (cache != NULL) { g = gaiaToGeos_r (cache, geom); if (GEOSLength_r (handle, g, &length)) { start = length * start_fraction; end = length * end_fraction; } else { GEOSGeom_destroy_r (handle, g); return NULL; } g_start = GEOSInterpolate_r (handle, g, start); g_end = GEOSInterpolate_r (handle, g, end); GEOSGeom_destroy_r (handle, g); } else { g = gaiaToGeos (geom); if (GEOSLength (g, &length)) { start = length * start_fraction; end = length * end_fraction; } else { GEOSGeom_destroy (g); return NULL; } g_start = GEOSInterpolate (g, start); g_end = GEOSInterpolate (g, end); GEOSGeom_destroy (g); } if (!g_start || !g_end) return NULL; /* identifying first and last valid vertex */ ln = geom->FirstLinestring; for (iv = 0; iv < ln->Points; iv++) { double x0; double y0; switch (ln->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); break; case GAIA_XY_M: gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); break; default: gaiaGetPoint (ln->Coords, iv, &x, &y); break; }; if (iv > 0) { if (handle != NULL) { cs = GEOSCoordSeq_create_r (handle, 2, 2); GEOSCoordSeq_setX_r (handle, cs, 0, x0); GEOSCoordSeq_setY_r (handle, cs, 0, y0); GEOSCoordSeq_setX_r (handle, cs, 1, x); GEOSCoordSeq_setY_r (handle, cs, 1, y); segm = GEOSGeom_createLineString_r (handle, cs); GEOSLength_r (handle, segm, &length); total += length; GEOSGeom_destroy_r (handle, segm); } else { cs = GEOSCoordSeq_create (2, 2); GEOSCoordSeq_setX (cs, 0, x0); GEOSCoordSeq_setY (cs, 0, y0); GEOSCoordSeq_setX (cs, 1, x); GEOSCoordSeq_setY (cs, 1, y); segm = GEOSGeom_createLineString (cs); GEOSLength (segm, &length); total += length; GEOSGeom_destroy (segm); } if (total > start && i_start < 0) i_start = iv; if (total < end) i_end = iv; } x0 = x; y0 = y; } if (i_start < 0 || i_end < 0) { i_start = -1; i_end = -1; points = 2; } else points = i_end - i_start + 3; /* creating the output geometry */ switch (ln->DimensionModel) { case GAIA_XY_Z: result = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: result = gaiaAllocGeomCollXYM (); break; case GAIA_XY_Z_M: result = gaiaAllocGeomCollXYZM (); break; default: result = gaiaAllocGeomColl (); break; }; result->Srid = geom->Srid; out = gaiaAddLinestringToGeomColl (result, points); /* start vertex */ points = 0; if (handle) { in_cs = GEOSGeom_getCoordSeq_r (handle, g_start); GEOSCoordSeq_getDimensions_r (handle, in_cs, &dims); if (dims == 3) { GEOSCoordSeq_getX_r (handle, in_cs, 0, &x); GEOSCoordSeq_getY_r (handle, in_cs, 0, &y); GEOSCoordSeq_getZ_r (handle, in_cs, 0, &z); m = 0.0; } else { GEOSCoordSeq_getX_r (handle, in_cs, 0, &x); GEOSCoordSeq_getY_r (handle, in_cs, 0, &y); z = 0.0; m = 0.0; } GEOSGeom_destroy_r (handle, g_start); } else { in_cs = GEOSGeom_getCoordSeq (g_start); GEOSCoordSeq_getDimensions (in_cs, &dims); if (dims == 3) { GEOSCoordSeq_getX (in_cs, 0, &x); GEOSCoordSeq_getY (in_cs, 0, &y); GEOSCoordSeq_getZ (in_cs, 0, &z); m = 0.0; } else { GEOSCoordSeq_getX (in_cs, 0, &x); GEOSCoordSeq_getY (in_cs, 0, &y); z = 0.0; m = 0.0; } GEOSGeom_destroy (g_start); } switch (out->DimensionModel) { case GAIA_XY_Z: gaiaSetPointXYZ (out->Coords, points, x, y, z); break; case GAIA_XY_M: gaiaSetPointXYM (out->Coords, points, x, y, 0.0); break; case GAIA_XY_Z_M: gaiaSetPointXYZM (out->Coords, points, x, y, z, 0.0); break; default: gaiaSetPoint (out->Coords, points, x, y); break; }; points++; if (i_start < 0 || i_end < 0) ; else { for (iv = i_start; iv <= i_end; iv++) { z = 0.0; m = 0.0; switch (ln->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); break; case GAIA_XY_M: gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); break; default: gaiaGetPoint (ln->Coords, iv, &x, &y); break; }; switch (out->DimensionModel) { case GAIA_XY_Z: gaiaSetPointXYZ (out->Coords, points, x, y, z); break; case GAIA_XY_M: gaiaSetPointXYM (out->Coords, points, x, y, 0.0); break; case GAIA_XY_Z_M: gaiaSetPointXYZM (out->Coords, points, x, y, z, 0.0); break; default: gaiaSetPoint (out->Coords, points, x, y); break; }; points++; } } /* end vertex */ if (handle != NULL) { in_cs = GEOSGeom_getCoordSeq_r (handle, g_end); GEOSCoordSeq_getDimensions_r (handle, in_cs, &dims); if (dims == 3) { GEOSCoordSeq_getX_r (handle, in_cs, 0, &x); GEOSCoordSeq_getY_r (handle, in_cs, 0, &y); GEOSCoordSeq_getZ_r (handle, in_cs, 0, &z); m = 0.0; } else { GEOSCoordSeq_getX_r (handle, in_cs, 0, &x); GEOSCoordSeq_getY_r (handle, in_cs, 0, &y); z = 0.0; m = 0.0; } GEOSGeom_destroy_r (handle, g_end); } else { in_cs = GEOSGeom_getCoordSeq (g_end); GEOSCoordSeq_getDimensions (in_cs, &dims); if (dims == 3) { GEOSCoordSeq_getX (in_cs, 0, &x); GEOSCoordSeq_getY (in_cs, 0, &y); GEOSCoordSeq_getZ (in_cs, 0, &z); m = 0.0; } else { GEOSCoordSeq_getX (in_cs, 0, &x); GEOSCoordSeq_getY (in_cs, 0, &y); z = 0.0; m = 0.0; } GEOSGeom_destroy (g_end); } switch (out->DimensionModel) { case GAIA_XY_Z: gaiaSetPointXYZ (out->Coords, points, x, y, z); break; case GAIA_XY_M: gaiaSetPointXYM (out->Coords, points, x, y, 0.0); break; case GAIA_XY_Z_M: gaiaSetPointXYZM (out->Coords, points, x, y, z, 0.0); break; default: gaiaSetPoint (out->Coords, points, x, y); break; }; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring (gaiaGeomCollPtr geom, double start_fraction, double end_fraction) { gaiaResetGeosMsg (); return gaiaLineSubstringCommon (NULL, geom, start_fraction, end_fraction); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring_r (const void *p_cache, gaiaGeomCollPtr geom, double start_fraction, double end_fraction) { struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); return gaiaLineSubstringCommon (cache, geom, start_fraction, end_fraction); } static GEOSGeometry * buildGeosPoints (GEOSContextHandle_t handle, const gaiaGeomCollPtr gaia) { /* converting a GAIA Geometry into a GEOS Geometry of POINTS */ int pts = 0; unsigned int dims; int iv; int ib; int nItem; double x; double y; double z; double m; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; GEOSGeometry *geos; GEOSGeometry *geos_item; GEOSGeometry **geos_coll; GEOSCoordSequence *cs; if (!gaia) return NULL; pt = gaia->FirstPoint; while (pt) { /* counting how many POINTs are there */ pts++; pt = pt->Next; } ln = gaia->FirstLinestring; while (ln) { /* counting how many POINTs are there */ pts += ln->Points; ln = ln->Next; } pg = gaia->FirstPolygon; while (pg) { /* counting how many POINTs are there */ rng = pg->Exterior; pts += rng->Points - 1; /* exterior ring */ for (ib = 0; ib < pg->NumInteriors; ib++) { /* interior ring */ rng = pg->Interiors + ib; pts += rng->Points - 1; } pg = pg->Next; } if (pts == 0) return NULL; switch (gaia->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: dims = 3; break; default: dims = 2; break; }; nItem = 0; geos_coll = malloc (sizeof (GEOSGeometry *) * (pts)); pt = gaia->FirstPoint; while (pt) { if (handle != NULL) { cs = GEOSCoordSeq_create_r (handle, 1, dims); switch (pt->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: GEOSCoordSeq_setX_r (handle, cs, 0, pt->X); GEOSCoordSeq_setY_r (handle, cs, 0, pt->Y); GEOSCoordSeq_setZ_r (handle, cs, 0, pt->Z); break; default: GEOSCoordSeq_setX_r (handle, cs, 0, pt->X); GEOSCoordSeq_setY_r (handle, cs, 0, pt->Y); break; }; geos_item = GEOSGeom_createPoint_r (handle, cs); } else { cs = GEOSCoordSeq_create (1, dims); switch (pt->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: GEOSCoordSeq_setX (cs, 0, pt->X); GEOSCoordSeq_setY (cs, 0, pt->Y); GEOSCoordSeq_setZ (cs, 0, pt->Z); break; default: GEOSCoordSeq_setX (cs, 0, pt->X); GEOSCoordSeq_setY (cs, 0, pt->Y); break; }; geos_item = GEOSGeom_createPoint (cs); } *(geos_coll + nItem++) = geos_item; pt = pt->Next; } ln = gaia->FirstLinestring; while (ln) { for (iv = 0; iv < ln->Points; iv++) { z = 0.0; m = 0.0; switch (ln->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); break; case GAIA_XY_M: gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); break; default: gaiaGetPoint (ln->Coords, iv, &x, &y); break; }; if (handle != NULL) { cs = GEOSCoordSeq_create_r (handle, 1, dims); if (dims == 3) { GEOSCoordSeq_setX_r (handle, cs, 0, x); GEOSCoordSeq_setY_r (handle, cs, 0, y); GEOSCoordSeq_setZ_r (handle, cs, 0, z); } else { GEOSCoordSeq_setX_r (handle, cs, 0, x); GEOSCoordSeq_setY_r (handle, cs, 0, y); } geos_item = GEOSGeom_createPoint_r (handle, cs); } else { cs = GEOSCoordSeq_create (1, dims); if (dims == 3) { GEOSCoordSeq_setX (cs, 0, x); GEOSCoordSeq_setY (cs, 0, y); GEOSCoordSeq_setZ (cs, 0, z); } else { GEOSCoordSeq_setX (cs, 0, x); GEOSCoordSeq_setY (cs, 0, y); } geos_item = GEOSGeom_createPoint (cs); } *(geos_coll + nItem++) = geos_item; } ln = ln->Next; } pg = gaia->FirstPolygon; while (pg) { rng = pg->Exterior; for (iv = 1; iv < rng->Points; iv++) { /* exterior ring */ z = 0.0; m = 0.0; switch (rng->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); break; }; if (handle != NULL) { cs = GEOSCoordSeq_create_r (handle, 1, dims); if (dims == 3) { GEOSCoordSeq_setX_r (handle, cs, 0, x); GEOSCoordSeq_setY_r (handle, cs, 0, y); GEOSCoordSeq_setZ_r (handle, cs, 0, z); } else { GEOSCoordSeq_setX_r (handle, cs, 0, x); GEOSCoordSeq_setY_r (handle, cs, 0, y); } geos_item = GEOSGeom_createPoint_r (handle, cs); } else { cs = GEOSCoordSeq_create (1, dims); if (dims == 3) { GEOSCoordSeq_setX (cs, 0, x); GEOSCoordSeq_setY (cs, 0, y); GEOSCoordSeq_setZ (cs, 0, z); } else { GEOSCoordSeq_setX (cs, 0, x); GEOSCoordSeq_setY (cs, 0, y); } geos_item = GEOSGeom_createPoint (cs); } *(geos_coll + nItem++) = geos_item; } for (ib = 0; ib < pg->NumInteriors; ib++) { /* interior ring */ rng = pg->Interiors + ib; for (iv = 1; iv < rng->Points; iv++) { /* exterior ring */ z = 0.0; m = 0.0; switch (rng->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); break; }; if (handle != NULL) { cs = GEOSCoordSeq_create_r (handle, 1, dims); if (dims == 3) { GEOSCoordSeq_setX_r (handle, cs, 0, x); GEOSCoordSeq_setY_r (handle, cs, 0, y); GEOSCoordSeq_setZ_r (handle, cs, 0, z); } else { GEOSCoordSeq_setX_r (handle, cs, 0, x); GEOSCoordSeq_setY_r (handle, cs, 0, y); } geos_item = GEOSGeom_createPoint_r (handle, cs); } else { cs = GEOSCoordSeq_create (1, dims); if (dims == 3) { GEOSCoordSeq_setX (cs, 0, x); GEOSCoordSeq_setY (cs, 0, y); GEOSCoordSeq_setZ (cs, 0, z); } else { GEOSCoordSeq_setX (cs, 0, x); GEOSCoordSeq_setY (cs, 0, y); } geos_item = GEOSGeom_createPoint (cs); } *(geos_coll + nItem++) = geos_item; } } pg = pg->Next; } if (handle != NULL) { geos = GEOSGeom_createCollection_r (handle, GEOS_MULTIPOINT, geos_coll, pts); free (geos_coll); GEOSSetSRID_r (handle, geos, gaia->Srid); } else { geos = GEOSGeom_createCollection (GEOS_MULTIPOINT, geos_coll, pts); free (geos_coll); GEOSSetSRID (geos, gaia->Srid); } return geos; } static GEOSGeometry * buildGeosSegments (GEOSContextHandle_t handle, const gaiaGeomCollPtr gaia) { /* converting a GAIA Geometry into a GEOS Geometry of SEGMENTS */ int segms = 0; unsigned int dims; int iv; int ib; int nItem; double x; double y; double z; double m; double x0; double y0; double z0; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; GEOSGeometry *geos; GEOSGeometry *geos_item; GEOSGeometry **geos_coll; GEOSCoordSequence *cs; if (!gaia) return NULL; ln = gaia->FirstLinestring; while (ln) { /* counting how many SEGMENTs are there */ segms += ln->Points - 1; ln = ln->Next; } pg = gaia->FirstPolygon; while (pg) { /* counting how many SEGMENTs are there */ rng = pg->Exterior; segms += rng->Points - 1; /* exterior ring */ for (ib = 0; ib < pg->NumInteriors; ib++) { /* interior ring */ rng = pg->Interiors + ib; segms += rng->Points - 1; } pg = pg->Next; } if (segms == 0) return NULL; switch (gaia->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: dims = 3; break; default: dims = 2; break; }; nItem = 0; geos_coll = malloc (sizeof (GEOSGeometry *) * (segms)); ln = gaia->FirstLinestring; while (ln) { for (iv = 0; iv < ln->Points; iv++) { z = 0.0; m = 0.0; switch (ln->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); break; case GAIA_XY_M: gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); break; default: gaiaGetPoint (ln->Coords, iv, &x, &y); break; }; if (iv > 0) { if (handle != NULL) { cs = GEOSCoordSeq_create_r (handle, 2, dims); if (dims == 3) { GEOSCoordSeq_setX_r (handle, cs, 0, x0); GEOSCoordSeq_setY_r (handle, cs, 0, y0); GEOSCoordSeq_setZ_r (handle, cs, 0, z0); GEOSCoordSeq_setX_r (handle, cs, 1, x); GEOSCoordSeq_setY_r (handle, cs, 1, y); GEOSCoordSeq_setZ_r (handle, cs, 1, z); } else { GEOSCoordSeq_setX_r (handle, cs, 0, x0); GEOSCoordSeq_setY_r (handle, cs, 0, y0); GEOSCoordSeq_setX_r (handle, cs, 1, x); GEOSCoordSeq_setY_r (handle, cs, 1, y); } geos_item = GEOSGeom_createLineString_r (handle, cs); } else { cs = GEOSCoordSeq_create (2, dims); if (dims == 3) { GEOSCoordSeq_setX (cs, 0, x0); GEOSCoordSeq_setY (cs, 0, y0); GEOSCoordSeq_setZ (cs, 0, z0); GEOSCoordSeq_setX (cs, 1, x); GEOSCoordSeq_setY (cs, 1, y); GEOSCoordSeq_setZ (cs, 1, z); } else { GEOSCoordSeq_setX (cs, 0, x0); GEOSCoordSeq_setY (cs, 0, y0); GEOSCoordSeq_setX (cs, 1, x); GEOSCoordSeq_setY (cs, 1, y); } geos_item = GEOSGeom_createLineString (cs); } *(geos_coll + nItem++) = geos_item; } x0 = x; y0 = y; z0 = z; } ln = ln->Next; } pg = gaia->FirstPolygon; while (pg) { rng = pg->Exterior; for (iv = 0; iv < rng->Points; iv++) { /* exterior ring */ z = 0.0; m = 0.0; switch (rng->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); break; }; if (iv > 0) { if (handle != NULL) { cs = GEOSCoordSeq_create_r (handle, 2, dims); if (dims == 3) { GEOSCoordSeq_setX_r (handle, cs, 0, x0); GEOSCoordSeq_setY_r (handle, cs, 0, y0); GEOSCoordSeq_setZ_r (handle, cs, 0, z0); GEOSCoordSeq_setX_r (handle, cs, 1, x); GEOSCoordSeq_setY_r (handle, cs, 1, y); GEOSCoordSeq_setZ_r (handle, cs, 1, z); } else { GEOSCoordSeq_setX_r (handle, cs, 0, x0); GEOSCoordSeq_setY_r (handle, cs, 0, y0); GEOSCoordSeq_setX_r (handle, cs, 1, x); GEOSCoordSeq_setY_r (handle, cs, 1, y); } geos_item = GEOSGeom_createLineString_r (handle, cs); } else { cs = GEOSCoordSeq_create (2, dims); if (dims == 3) { GEOSCoordSeq_setX (cs, 0, x0); GEOSCoordSeq_setY (cs, 0, y0); GEOSCoordSeq_setZ (cs, 0, z0); GEOSCoordSeq_setX (cs, 1, x); GEOSCoordSeq_setY (cs, 1, y); GEOSCoordSeq_setZ (cs, 1, z); } else { GEOSCoordSeq_setX (cs, 0, x0); GEOSCoordSeq_setY (cs, 0, y0); GEOSCoordSeq_setX (cs, 1, x); GEOSCoordSeq_setY (cs, 1, y); } geos_item = GEOSGeom_createLineString (cs); } *(geos_coll + nItem++) = geos_item; } x0 = x; y0 = y; z0 = z; } for (ib = 0; ib < pg->NumInteriors; ib++) { /* interior ring */ rng = pg->Interiors + ib; for (iv = 0; iv < rng->Points; iv++) { /* exterior ring */ z = 0.0; m = 0.0; switch (rng->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); break; }; if (iv > 0) { if (handle != NULL) { cs = GEOSCoordSeq_create_r (handle, 2, dims); if (dims == 3) { GEOSCoordSeq_setX_r (handle, cs, 0, x0); GEOSCoordSeq_setY_r (handle, cs, 0, y0); GEOSCoordSeq_setZ_r (handle, cs, 0, z0); GEOSCoordSeq_setX_r (handle, cs, 1, x); GEOSCoordSeq_setY_r (handle, cs, 1, y); GEOSCoordSeq_setZ_r (handle, cs, 1, z); } else { GEOSCoordSeq_setX_r (handle, cs, 0, x0); GEOSCoordSeq_setY_r (handle, cs, 0, y0); GEOSCoordSeq_setX_r (handle, cs, 1, x); GEOSCoordSeq_setY_r (handle, cs, 1, y); } geos_item = GEOSGeom_createLineString_r (handle, cs); } else { cs = GEOSCoordSeq_create (2, dims); if (dims == 3) { GEOSCoordSeq_setX (cs, 0, x0); GEOSCoordSeq_setY (cs, 0, y0); GEOSCoordSeq_setZ (cs, 0, z0); GEOSCoordSeq_setX (cs, 1, x); GEOSCoordSeq_setY (cs, 1, y); GEOSCoordSeq_setZ (cs, 1, z); } else { GEOSCoordSeq_setX (cs, 0, x0); GEOSCoordSeq_setY (cs, 0, y0); GEOSCoordSeq_setX (cs, 1, x); GEOSCoordSeq_setY (cs, 1, y); } geos_item = GEOSGeom_createLineString (cs); } *(geos_coll + nItem++) = geos_item; } x0 = x; y0 = y; z0 = z; } } pg = pg->Next; } if (handle != NULL) { geos = GEOSGeom_createCollection_r (handle, GEOS_MULTILINESTRING, geos_coll, segms); free (geos_coll); GEOSSetSRID_r (handle, geos, gaia->Srid); } else { geos = GEOSGeom_createCollection (GEOS_MULTILINESTRING, geos_coll, segms); free (geos_coll); GEOSSetSRID (geos, gaia->Srid); } return geos; } static gaiaGeomCollPtr gaiaShortestLineCommon (struct splite_internal_cache *cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* attempts to compute the the shortest line between two geometries */ GEOSGeometry *g1_points; GEOSGeometry *g1_segments; const GEOSGeometry *g1_item; GEOSGeometry *g2_points; GEOSGeometry *g2_segments; const GEOSGeometry *g2_item; const GEOSCoordSequence *cs; GEOSGeometry *g_pt; gaiaGeomCollPtr result; gaiaLinestringPtr ln; int nItems1; int nItems2; int it1; int it2; unsigned int dims; double x_ini; double y_ini; double z_ini; double x_fin; double y_fin; double z_fin; double dist; double min_dist = DBL_MAX; double projection; GEOSContextHandle_t handle = NULL; if (cache != NULL) { if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; } if (!geom1 || !geom2) return NULL; g1_points = buildGeosPoints (handle, geom1); g1_segments = buildGeosSegments (handle, geom1); g2_points = buildGeosPoints (handle, geom2); g2_segments = buildGeosSegments (handle, geom2); if (g1_points && g2_points) { /* computing distances between POINTs */ if (handle != NULL) { nItems1 = GEOSGetNumGeometries_r (handle, g1_points); nItems2 = GEOSGetNumGeometries_r (handle, g2_points); } else { nItems1 = GEOSGetNumGeometries (g1_points); nItems2 = GEOSGetNumGeometries (g2_points); } for (it1 = 0; it1 < nItems1; it1++) { if (handle != NULL) g1_item = GEOSGetGeometryN_r (handle, g1_points, it1); else g1_item = GEOSGetGeometryN (g1_points, it1); for (it2 = 0; it2 < nItems2; it2++) { int distret; if (handle != NULL) { g2_item = GEOSGetGeometryN_r (handle, g2_points, it2); distret = GEOSDistance_r (handle, g1_item, g2_item, &dist); } else { g2_item = GEOSGetGeometryN (g2_points, it2); distret = GEOSDistance (g1_item, g2_item, &dist); } if (distret) { if (dist < min_dist) { /* saving min-dist points */ min_dist = dist; if (handle != NULL) { cs = GEOSGeom_getCoordSeq_r (handle, g1_item); GEOSCoordSeq_getDimensions_r (handle, cs, &dims); if (dims == 3) { GEOSCoordSeq_getX_r (handle, cs, 0, &x_ini); GEOSCoordSeq_getY_r (handle, cs, 0, &y_ini); GEOSCoordSeq_getZ_r (handle, cs, 0, &z_ini); } else { GEOSCoordSeq_getX_r (handle, cs, 0, &x_ini); GEOSCoordSeq_getY_r (handle, cs, 0, &y_ini); z_ini = 0.0; } cs = GEOSGeom_getCoordSeq_r (handle, g2_item); GEOSCoordSeq_getDimensions_r (handle, cs, &dims); if (dims == 3) { GEOSCoordSeq_getX_r (handle, cs, 0, &x_fin); GEOSCoordSeq_getY_r (handle, cs, 0, &y_fin); GEOSCoordSeq_getZ_r (handle, cs, 0, &z_fin); } else { GEOSCoordSeq_getX_r (handle, cs, 0, &x_fin); GEOSCoordSeq_getY_r (handle, cs, 0, &y_fin); z_fin = 0.0; } } else { cs = GEOSGeom_getCoordSeq (g1_item); GEOSCoordSeq_getDimensions (cs, &dims); if (dims == 3) { GEOSCoordSeq_getX (cs, 0, &x_ini); GEOSCoordSeq_getY (cs, 0, &y_ini); GEOSCoordSeq_getZ (cs, 0, &z_ini); } else { GEOSCoordSeq_getX (cs, 0, &x_ini); GEOSCoordSeq_getY (cs, 0, &y_ini); z_ini = 0.0; } cs = GEOSGeom_getCoordSeq (g2_item); GEOSCoordSeq_getDimensions (cs, &dims); if (dims == 3) { GEOSCoordSeq_getX (cs, 0, &x_fin); GEOSCoordSeq_getY (cs, 0, &y_fin); GEOSCoordSeq_getZ (cs, 0, &z_fin); } else { GEOSCoordSeq_getX (cs, 0, &x_fin); GEOSCoordSeq_getY (cs, 0, &y_fin); z_fin = 0.0; } } } } } } } if (g1_points && g2_segments) { /* computing distances between POINTs (g1) and SEGMENTs (g2) */ if (handle != NULL) { nItems1 = GEOSGetNumGeometries_r (handle, g1_points); nItems2 = GEOSGetNumGeometries_r (handle, g2_segments); } else { nItems1 = GEOSGetNumGeometries (g1_points); nItems2 = GEOSGetNumGeometries (g2_segments); } for (it1 = 0; it1 < nItems1; it1++) { if (handle != NULL) g1_item = GEOSGetGeometryN_r (handle, g1_points, it1); else g1_item = GEOSGetGeometryN (g1_points, it1); for (it2 = 0; it2 < nItems2; it2++) { int distret; if (handle != NULL) { g2_item = GEOSGetGeometryN_r (handle, g2_segments, it2); distret = GEOSDistance_r (handle, g1_item, g2_item, &dist); } else { g2_item = GEOSGetGeometryN (g2_segments, it2); distret = GEOSDistance (g1_item, g2_item, &dist); } if (distret) { if (dist < min_dist) { /* saving min-dist points */ if (handle != NULL) { projection = GEOSProject_r (handle, g2_item, g1_item); g_pt = GEOSInterpolate_r (handle, g2_item, projection); if (g_pt) { min_dist = dist; cs = GEOSGeom_getCoordSeq_r (handle, g1_item); GEOSCoordSeq_getDimensions_r (handle, cs, &dims); if (dims == 3) { GEOSCoordSeq_getX_r (handle, cs, 0, &x_ini); GEOSCoordSeq_getY_r (handle, cs, 0, &y_ini); GEOSCoordSeq_getZ_r (handle, cs, 0, &z_ini); } else { GEOSCoordSeq_getX_r (handle, cs, 0, &x_ini); GEOSCoordSeq_getY_r (handle, cs, 0, &y_ini); z_ini = 0.0; } cs = GEOSGeom_getCoordSeq_r (handle, g_pt); GEOSCoordSeq_getDimensions_r (handle, cs, &dims); if (dims == 3) { GEOSCoordSeq_getX_r (handle, cs, 0, &x_fin); GEOSCoordSeq_getY_r (handle, cs, 0, &y_fin); GEOSCoordSeq_getZ_r (handle, cs, 0, &z_fin); } else { GEOSCoordSeq_getX_r (handle, cs, 0, &x_fin); GEOSCoordSeq_getY_r (handle, cs, 0, &y_fin); z_fin = 0.0; } GEOSGeom_destroy_r (handle, g_pt); } } else { projection = GEOSProject (g2_item, g1_item); g_pt = GEOSInterpolate (g2_item, projection); if (g_pt) { min_dist = dist; cs = GEOSGeom_getCoordSeq (g1_item); GEOSCoordSeq_getDimensions (cs, &dims); if (dims == 3) { GEOSCoordSeq_getX (cs, 0, &x_ini); GEOSCoordSeq_getY (cs, 0, &y_ini); GEOSCoordSeq_getZ (cs, 0, &z_ini); } else { GEOSCoordSeq_getX (cs, 0, &x_ini); GEOSCoordSeq_getY (cs, 0, &y_ini); z_ini = 0.0; } cs = GEOSGeom_getCoordSeq (g_pt); GEOSCoordSeq_getDimensions (cs, &dims); if (dims == 3) { GEOSCoordSeq_getX (cs, 0, &x_fin); GEOSCoordSeq_getY (cs, 0, &y_fin); GEOSCoordSeq_getZ (cs, 0, &z_fin); } else { GEOSCoordSeq_getX (cs, 0, &x_fin); GEOSCoordSeq_getY (cs, 0, &y_fin); z_fin = 0.0; } GEOSGeom_destroy (g_pt); } } } } } } } if (g1_segments && g2_points) { /* computing distances between SEGMENTs (g1) and POINTs (g2) */ if (handle != NULL) { nItems1 = GEOSGetNumGeometries_r (handle, g1_segments); nItems2 = GEOSGetNumGeometries_r (handle, g2_points); } else { nItems1 = GEOSGetNumGeometries (g1_segments); nItems2 = GEOSGetNumGeometries (g2_points); } for (it1 = 0; it1 < nItems1; it1++) { if (handle != NULL) g1_item = GEOSGetGeometryN_r (handle, g1_segments, it1); else g1_item = GEOSGetGeometryN (g1_segments, it1); for (it2 = 0; it2 < nItems2; it2++) { int distret; if (handle != NULL) { g2_item = GEOSGetGeometryN_r (handle, g2_points, it2); distret = GEOSDistance_r (handle, g1_item, g2_item, &dist); } else { g2_item = GEOSGetGeometryN (g2_points, it2); distret = GEOSDistance (g1_item, g2_item, &dist); } if (distret) { if (dist < min_dist) { /* saving min-dist points */ if (handle != NULL) { projection = GEOSProject_r (handle, g1_item, g2_item); g_pt = GEOSInterpolate_r (handle, g1_item, projection); if (g_pt) { min_dist = dist; cs = GEOSGeom_getCoordSeq_r (handle, g_pt); GEOSCoordSeq_getDimensions_r (handle, cs, &dims); if (dims == 3) { GEOSCoordSeq_getX_r (handle, cs, 0, &x_ini); GEOSCoordSeq_getY_r (handle, cs, 0, &y_ini); GEOSCoordSeq_getZ_r (handle, cs, 0, &z_ini); } else { GEOSCoordSeq_getX_r (handle, cs, 0, &x_ini); GEOSCoordSeq_getY_r (handle, cs, 0, &y_ini); z_ini = 0.0; } cs = GEOSGeom_getCoordSeq_r (handle, g2_item); GEOSCoordSeq_getDimensions_r (handle, cs, &dims); if (dims == 3) { GEOSCoordSeq_getX_r (handle, cs, 0, &x_fin); GEOSCoordSeq_getY_r (handle, cs, 0, &y_fin); GEOSCoordSeq_getZ_r (handle, cs, 0, &z_fin); } else { GEOSCoordSeq_getX_r (handle, cs, 0, &x_fin); GEOSCoordSeq_getY_r (handle, cs, 0, &y_fin); z_fin = 0.0; } GEOSGeom_destroy_r (handle, g_pt); } } else { projection = GEOSProject (g1_item, g2_item); g_pt = GEOSInterpolate (g1_item, projection); if (g_pt) { min_dist = dist; cs = GEOSGeom_getCoordSeq (g_pt); GEOSCoordSeq_getDimensions (cs, &dims); if (dims == 3) { GEOSCoordSeq_getX (cs, 0, &x_ini); GEOSCoordSeq_getY (cs, 0, &y_ini); GEOSCoordSeq_getZ (cs, 0, &z_ini); } else { GEOSCoordSeq_getX (cs, 0, &x_ini); GEOSCoordSeq_getY (cs, 0, &y_ini); z_ini = 0.0; } cs = GEOSGeom_getCoordSeq (g2_item); GEOSCoordSeq_getDimensions (cs, &dims); if (dims == 3) { GEOSCoordSeq_getX (cs, 0, &x_fin); GEOSCoordSeq_getY (cs, 0, &y_fin); GEOSCoordSeq_getZ (cs, 0, &z_fin); } else { GEOSCoordSeq_getX (cs, 0, &x_fin); GEOSCoordSeq_getY (cs, 0, &y_fin); z_fin = 0.0; } GEOSGeom_destroy (g_pt); } } } } } } } if (handle != NULL) { if (g1_points) GEOSGeom_destroy_r (handle, g1_points); if (g1_segments) GEOSGeom_destroy_r (handle, g1_segments); if (g2_points) GEOSGeom_destroy_r (handle, g2_points); if (g2_segments) GEOSGeom_destroy_r (handle, g2_segments); } else { if (g1_points) GEOSGeom_destroy (g1_points); if (g1_segments) GEOSGeom_destroy (g1_segments); if (g2_points) GEOSGeom_destroy (g2_points); if (g2_segments) GEOSGeom_destroy (g2_segments); } if (min_dist == DBL_MAX || min_dist <= 0.0) return NULL; /* building the shortest line */ switch (geom1->DimensionModel) { case GAIA_XY_Z: result = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: result = gaiaAllocGeomCollXYM (); break; case GAIA_XY_Z_M: result = gaiaAllocGeomCollXYZM (); break; default: result = gaiaAllocGeomColl (); break; }; result->Srid = geom1->Srid; ln = gaiaAddLinestringToGeomColl (result, 2); switch (ln->DimensionModel) { case GAIA_XY_Z: gaiaSetPointXYZ (ln->Coords, 0, x_ini, y_ini, z_ini); gaiaSetPointXYZ (ln->Coords, 1, x_fin, y_fin, z_fin); break; case GAIA_XY_M: gaiaSetPointXYM (ln->Coords, 0, x_ini, y_ini, 0.0); gaiaSetPointXYM (ln->Coords, 1, x_fin, y_fin, 0.0); break; case GAIA_XY_Z_M: gaiaSetPointXYZM (ln->Coords, 0, x_ini, y_ini, z_ini, 0.0); gaiaSetPointXYZM (ln->Coords, 1, x_fin, y_fin, z_fin, 0.0); break; default: gaiaSetPoint (ln->Coords, 0, x_ini, y_ini); gaiaSetPoint (ln->Coords, 1, x_fin, y_fin); break; }; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { gaiaResetGeosMsg (); return gaiaShortestLineCommon (NULL, geom1, geom2); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); return gaiaShortestLineCommon (cache, geom1, geom2); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance) { /* attempts to "snap" geom1 on geom2 using the given tolerance */ GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; gaiaGeomCollPtr result; gaiaResetGeosMsg (); if (!geom1 || !geom2) return NULL; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); g3 = GEOSSnap (g1, g2, tolerance); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (!g3) return NULL; if (geom1->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ (g3); else if (geom1->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM (g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM (g3); else result = gaiaFromGeos_XY (g3); GEOSGeom_destroy (g3); if (result == NULL) return NULL; result->Srid = geom1->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance) { /* attempts to "snap" geom1 on geom2 using the given tolerance */ GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; gaiaGeomCollPtr result; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return NULL; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); g3 = GEOSSnap_r (handle, g1, g2, tolerance); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); if (!g3) return NULL; if (geom1->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ_r (cache, g3); else if (geom1->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM_r (cache, g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM_r (cache, g3); else result = gaiaFromGeos_XY_r (cache, g3); GEOSGeom_destroy_r (handle, g3); if (result == NULL) return NULL; result->Srid = geom1->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge (gaiaGeomCollPtr geom) { /* attempts to reassemble lines from a collection of sparse fragments */ GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr result; gaiaResetGeosMsg (); if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSLineMerge (g1); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM (g2); else result = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (result == NULL) return NULL; result->Srid = geom->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge_r (const void *p_cache, gaiaGeomCollPtr geom) { /* attempts to reassemble lines from a collection of sparse fragments */ GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr result; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom) return NULL; if (gaiaIsToxic_r (cache, geom)) return NULL; g1 = gaiaToGeos_r (cache, geom); g2 = GEOSLineMerge_r (handle, g1); GEOSGeom_destroy_r (handle, g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM_r (cache, g2); else result = gaiaFromGeos_XY_r (cache, g2); GEOSGeom_destroy_r (handle, g2); if (result == NULL) return NULL; result->Srid = geom->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion (gaiaGeomCollPtr geom) { /* Unary Union (single Collection) */ GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr result; gaiaResetGeosMsg (); if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSUnaryUnion (g1); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM (g2); else result = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (result == NULL) return NULL; result->Srid = geom->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion_r (const void *p_cache, gaiaGeomCollPtr geom) { /* Unary Union (single Collection) */ GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr result; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom) return NULL; if (gaiaIsToxic_r (cache, geom)) return NULL; g1 = gaiaToGeos_r (cache, geom); g2 = GEOSUnaryUnion_r (handle, g1); GEOSGeom_destroy_r (handle, g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM_r (cache, g2); else result = gaiaFromGeos_XY_r (cache, g2); GEOSGeom_destroy_r (handle, g2); if (result == NULL) return NULL; result->Srid = geom->Srid; return result; } static void rotateRingBeforeCut (gaiaLinestringPtr ln, gaiaPointPtr node) { /* rotating a Ring, so to ensure that Start/End points match the node */ int io = 0; int iv; int copy = 0; int base_idx = -1; double x = 0.0; double y = 0.0; double z = 0.0; double m = 0.0; gaiaLinestringPtr new_ln = NULL; if (ln->DimensionModel == GAIA_XY_Z) new_ln = gaiaAllocLinestringXYZ (ln->Points); else if (ln->DimensionModel == GAIA_XY_M) new_ln = gaiaAllocLinestringXYM (ln->Points); else if (ln->DimensionModel == GAIA_XY_Z_M) new_ln = gaiaAllocLinestringXYZM (ln->Points); else new_ln = gaiaAllocLinestring (ln->Points); /* first pass */ for (iv = 0; iv < ln->Points; iv++) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (!copy) { if (ln->DimensionModel == GAIA_XY_Z || ln->DimensionModel == GAIA_XY_Z_M) { if (node->X == x && node->Y == y && node->Z == z) { base_idx = iv; copy = 1; } } else if (node->X == x && node->Y == y) { base_idx = iv; copy = 1; } } if (copy) { /* copying points */ if (ln->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_ln->Coords, io, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_ln->Coords, io, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_ln->Coords, io, x, y, z, m); } else { gaiaSetPoint (new_ln->Coords, io, x, y); } io++; } } if (base_idx <= 0) { gaiaFreeLinestring (new_ln); return; } /* second pass */ for (iv = 1; iv <= base_idx; iv++) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (ln->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_ln->Coords, io, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_ln->Coords, io, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_ln->Coords, io, x, y, z, m); } else { gaiaSetPoint (new_ln->Coords, io, x, y); } io++; } /* copying back */ for (iv = 0; iv < new_ln->Points; iv++) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (new_ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (new_ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (new_ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (new_ln->Coords, iv, &x, &y); } if (ln->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, iv, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, iv, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ln->Coords, iv, x, y); } } gaiaFreeLinestring (new_ln); } static void extractSubLine (gaiaGeomCollPtr result, gaiaLinestringPtr ln, int i_start, int i_end) { /* extracting s SubLine */ int iv; int io = 0; int pts = i_end - i_start + 1; gaiaLinestringPtr new_ln = NULL; double x; double y; double z; double m; new_ln = gaiaAddLinestringToGeomColl (result, pts); for (iv = i_start; iv <= i_end; iv++) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (ln->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_ln->Coords, io, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_ln->Coords, io, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_ln->Coords, io, x, y, z, m); } else { gaiaSetPoint (new_ln->Coords, io, x, y); } io++; } } static void cutLineAtNodes (gaiaLinestringPtr ln, gaiaPointPtr pt_base, gaiaGeomCollPtr result) { /* attempts to cut a single Line accordingly to given nodes */ int closed = 0; int match = 0; int iv; int i_start; double x = 0.0; double y = 0.0; double z = 0.0; double m = 0.0; gaiaPointPtr pt; gaiaPointPtr node = NULL; if (gaiaIsClosed (ln)) closed = 1; /* pre-check */ for (iv = 0; iv < ln->Points; iv++) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } pt = pt_base; while (pt) { if (ln->DimensionModel == GAIA_XY_Z || ln->DimensionModel == GAIA_XY_Z_M) { if (pt->X == x && pt->Y == y && pt->Z == z) { node = pt; match++; } } else if (pt->X == x && pt->Y == y) { node = pt; match++; } pt = pt->Next; } } if (closed && node) rotateRingBeforeCut (ln, node); i_start = 0; for (iv = 1; iv < ln->Points - 1; iv++) { /* identifying sub-linestrings */ if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } match = 0; pt = pt_base; while (pt) { if (ln->DimensionModel == GAIA_XY_Z || ln->DimensionModel == GAIA_XY_Z_M) { if (pt->X == x && pt->Y == y && pt->Z == z) { match = 1; break; } } else if (pt->X == x && pt->Y == y) { match = 1; break; } pt = pt->Next; } if (match) { /* cutting the line */ extractSubLine (result, ln, i_start, iv); i_start = iv; } } if (i_start != 0 && i_start != ln->Points - 1) { /* extracting the last SubLine */ extractSubLine (result, ln, i_start, ln->Points - 1); } else { /* cloning the untouched Line */ extractSubLine (result, ln, 0, ln->Points - 1); } } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLinesCutAtNodes (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* attempts to cut lines accordingly to nodes */ int pts1 = 0; int lns1 = 0; int pgs1 = 0; int pts2 = 0; int lns2 = 0; int pgs2 = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaGeomCollPtr result = NULL; if (!geom1) return NULL; if (!geom2) return NULL; /* both Geometryes should have identical Dimensions */ if (geom1->DimensionModel != geom2->DimensionModel) return NULL; pt = geom1->FirstPoint; while (pt) { pts1++; pt = pt->Next; } ln = geom1->FirstLinestring; while (ln) { lns1++; ln = ln->Next; } pg = geom1->FirstPolygon; while (pg) { pgs1++; pg = pg->Next; } pt = geom2->FirstPoint; while (pt) { pts2++; pt = pt->Next; } ln = geom2->FirstLinestring; while (ln) { lns2++; ln = ln->Next; } pg = geom2->FirstPolygon; while (pg) { pgs2++; pg = pg->Next; } /* the first Geometry is expected to contain one or more Linestring(s) */ if (pts1 == 0 && lns1 > 0 && pgs1 == 0) ; else return NULL; /* the second Geometry is expected to contain one or more Point(s) */ if (pts2 > 0 && lns2 == 0 && pgs2 == 0) ; else return NULL; /* attempting to cut Lines accordingly to Nodes */ if (geom1->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom1->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (geom1->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); ln = geom1->FirstLinestring; while (ln) { cutLineAtNodes (ln, geom2->FirstPoint, result); ln = ln->Next; } if (result->FirstLinestring == NULL) { gaiaFreeGeomColl (result); return NULL; } result->Srid = geom1->Srid; return result; } #ifdef GEOS_ADVANCED /* GEOS advanced features - 3.4.0 */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation (gaiaGeomCollPtr geom, double tolerance, int only_edges) { /* Delaunay Triangulation */ GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr result; gaiaResetGeosMsg (); if (!geom) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSDelaunayTriangulation (g1, tolerance, only_edges); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM (g2); else result = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (result == NULL) return NULL; result->Srid = geom->Srid; if (only_edges) result->DeclaredType = GAIA_MULTILINESTRING; else result->DeclaredType = GAIA_MULTIPOLYGON; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation_r (const void *p_cache, gaiaGeomCollPtr geom, double tolerance, int only_edges) { /* Delaunay Triangulation */ GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr result; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom) return NULL; g1 = gaiaToGeos_r (cache, geom); g2 = GEOSDelaunayTriangulation_r (handle, g1, tolerance, only_edges); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM_r (cache, g2); else result = gaiaFromGeos_XY_r (cache, g2); GEOSGeom_destroy_r (handle, g2); if (result == NULL) return NULL; result->Srid = geom->Srid; if (only_edges) result->DeclaredType = GAIA_MULTILINESTRING; else result->DeclaredType = GAIA_MULTIPOLYGON; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram (gaiaGeomCollPtr geom, double extra_frame_size, double tolerance, int only_edges) { /* Voronoj Diagram */ GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr result; gaiaPolygonPtr pg; int pgs = 0; int errs = 0; void *voronoj; gaiaResetGeosMsg (); if (!geom) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSDelaunayTriangulation (g1, tolerance, 0); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM (g2); else result = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (result == NULL) return NULL; pg = result->FirstPolygon; while (pg) { /* counting how many triangles are in Delaunay */ if (delaunay_triangle_check (pg)) pgs++; else errs++; pg = pg->Next; } if (pgs == 0 || errs) { gaiaFreeGeomColl (result); return NULL; } /* building the Voronoj Diagram from Delaunay */ voronoj = voronoj_build (pgs, result->FirstPolygon, extra_frame_size); gaiaFreeGeomColl (result); /* creating the Geometry representing Voronoj */ if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); result = voronoj_export (voronoj, result, only_edges); voronoj_free (voronoj); result->Srid = geom->Srid; if (only_edges) result->DeclaredType = GAIA_MULTILINESTRING; else result->DeclaredType = GAIA_MULTIPOLYGON; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram_r (const void *p_cache, gaiaGeomCollPtr geom, double extra_frame_size, double tolerance, int only_edges) { /* Voronoj Diagram */ GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr result; gaiaPolygonPtr pg; int pgs = 0; int errs = 0; void *voronoj; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom) return NULL; g1 = gaiaToGeos_r (cache, geom); g2 = GEOSDelaunayTriangulation_r (handle, g1, tolerance, 0); GEOSGeom_destroy_r (handle, g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM_r (cache, g2); else result = gaiaFromGeos_XY_r (cache, g2); GEOSGeom_destroy_r (handle, g2); if (result == NULL) return NULL; pg = result->FirstPolygon; while (pg) { /* counting how many triangles are in Delaunay */ if (delaunay_triangle_check (pg)) pgs++; else errs++; pg = pg->Next; } if (pgs == 0 || errs) { gaiaFreeGeomColl (result); return NULL; } /* building the Voronoj Diagram from Delaunay */ voronoj = voronoj_build_r (cache, pgs, result->FirstPolygon, extra_frame_size); gaiaFreeGeomColl (result); /* creating the Geometry representing Voronoj */ if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); result = voronoj_export_r (cache, voronoj, result, only_edges); voronoj_free (voronoj); result->Srid = geom->Srid; if (only_edges) result->DeclaredType = GAIA_MULTILINESTRING; else result->DeclaredType = GAIA_MULTIPOLYGON; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull (gaiaGeomCollPtr geom, double factor, double tolerance, int allow_holes) { /* Concave Hull */ GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr result; gaiaGeomCollPtr concave_hull; gaiaPolygonPtr pg; int pgs = 0; int errs = 0; gaiaResetGeosMsg (); if (!geom) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSDelaunayTriangulation (g1, tolerance, 0); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM (g2); else result = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (result == NULL) return NULL; pg = result->FirstPolygon; while (pg) { /* counting how many triangles are in Delaunay */ if (delaunay_triangle_check (pg)) pgs++; else errs++; pg = pg->Next; } if (pgs == 0 || errs) { gaiaFreeGeomColl (result); return NULL; } /* building the Concave Hull from Delaunay */ concave_hull = concave_hull_build (result->FirstPolygon, geom->DimensionModel, factor, allow_holes); gaiaFreeGeomColl (result); if (!concave_hull) return NULL; result = concave_hull; result->Srid = geom->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull_r (const void *p_cache, gaiaGeomCollPtr geom, double factor, double tolerance, int allow_holes) { /* Concave Hull */ GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr result; gaiaGeomCollPtr concave_hull; gaiaPolygonPtr pg; int pgs = 0; int errs = 0; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom) return NULL; g1 = gaiaToGeos_r (cache, geom); g2 = GEOSDelaunayTriangulation_r (handle, g1, tolerance, 0); GEOSGeom_destroy_r (handle, g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM_r (cache, g2); else result = gaiaFromGeos_XY_r (cache, g2); GEOSGeom_destroy_r (handle, g2); if (result == NULL) return NULL; pg = result->FirstPolygon; while (pg) { /* counting how many triangles are in Delaunay */ if (delaunay_triangle_check (pg)) pgs++; else errs++; pg = pg->Next; } if (pgs == 0 || errs) { gaiaFreeGeomColl (result); return NULL; } /* building the Concave Hull from Delaunay */ concave_hull = concave_hull_build_r (p_cache, result->FirstPolygon, geom->DimensionModel, factor, allow_holes); gaiaFreeGeomColl (result); if (!concave_hull) return NULL; result = concave_hull; result->Srid = geom->Srid; return result; } #endif /* end GEOS advanced features */ #endif /* end including GEOS */ libspatialite-4.3.0a/src/gaiageo/gg_geoscvt.c0000664000175000017500000015042512544707704016127 00000000000000/* gg_geoscvt.c -- Gaia / GEOS conversion [Geometry] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #ifndef OMIT_GEOS /* including GEOS */ #include #endif #include #include #include #ifndef OMIT_GEOS /* including GEOS */ static GEOSGeometry * toGeosGeometry (const void *cache, GEOSContextHandle_t handle, const gaiaGeomCollPtr gaia, int mode) { /* converting a GAIA Geometry into a GEOS Geometry */ int pts = 0; int lns = 0; int pgs = 0; int type; int geos_type; unsigned int dims; int iv; int ib; int nItem; double x; double y; double z; double m; double x0 = 0.0; double y0 = 0.0; double z0 = 0.0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; GEOSGeometry *geos = NULL; GEOSGeometry *geos_ext; GEOSGeometry *geos_int; GEOSGeometry *geos_item; GEOSGeometry **geos_holes; GEOSGeometry **geos_coll; GEOSCoordSequence *cs; int ring_points; int n_items; if (!gaia) return NULL; pt = gaia->FirstPoint; while (pt) { /* counting how many POINTs are there */ pts++; pt = pt->Next; } ln = gaia->FirstLinestring; while (ln) { /* counting how many LINESTRINGs are there */ lns++; ln = ln->Next; } pg = gaia->FirstPolygon; while (pg) { /* counting how many POLYGONs are there */ pgs++; pg = pg->Next; } if (mode == GAIA2GEOS_ONLY_POINTS && pts == 0) return NULL; if (mode == GAIA2GEOS_ONLY_LINESTRINGS && lns == 0) return NULL; if (mode == GAIA2GEOS_ONLY_POLYGONS && pgs == 0) return NULL; if (pts == 0 && lns == 0 && pgs == 0) return NULL; else if (pts == 1 && lns == 0 && pgs == 0) { if (gaia->DeclaredType == GAIA_MULTIPOINT) type = GAIA_MULTIPOINT; else if (gaia->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_POINT; } else if (pts == 0 && lns == 1 && pgs == 0) { if (gaia->DeclaredType == GAIA_MULTILINESTRING) type = GAIA_MULTILINESTRING; else if (gaia->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_LINESTRING; } else if (pts == 0 && lns == 0 && pgs == 1) { if (gaia->DeclaredType == GAIA_MULTIPOLYGON) type = GAIA_MULTIPOLYGON; else if (gaia->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_POLYGON; } else if (pts > 1 && lns == 0 && pgs == 0) { if (gaia->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_MULTIPOINT; } else if (pts == 0 && lns > 1 && pgs == 0) { if (gaia->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_MULTILINESTRING; } else if (pts == 0 && lns == 0 && pgs > 1) { if (gaia->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_MULTIPOLYGON; } else type = GAIA_GEOMETRYCOLLECTION; switch (gaia->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: dims = 3; break; default: dims = 2; break; }; switch (type) { case GAIA_POINT: if (mode == GAIA2GEOS_ALL || mode == GAIA2GEOS_ONLY_POINTS) { pt = gaia->FirstPoint; if (handle != NULL) { cs = GEOSCoordSeq_create_r (handle, 1, dims); switch (gaia->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: GEOSCoordSeq_setX_r (handle, cs, 0, pt->X); GEOSCoordSeq_setY_r (handle, cs, 0, pt->Y); GEOSCoordSeq_setZ_r (handle, cs, 0, pt->Z); break; default: GEOSCoordSeq_setX_r (handle, cs, 0, pt->X); GEOSCoordSeq_setY_r (handle, cs, 0, pt->Y); break; }; geos = GEOSGeom_createPoint_r (handle, cs); } else { cs = GEOSCoordSeq_create (1, dims); switch (gaia->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: GEOSCoordSeq_setX (cs, 0, pt->X); GEOSCoordSeq_setY (cs, 0, pt->Y); GEOSCoordSeq_setZ (cs, 0, pt->Z); break; default: GEOSCoordSeq_setX (cs, 0, pt->X); GEOSCoordSeq_setY (cs, 0, pt->Y); break; }; geos = GEOSGeom_createPoint (cs); } } break; case GAIA_LINESTRING: if (mode == GAIA2GEOS_ALL || mode == GAIA2GEOS_ONLY_LINESTRINGS) { ln = gaia->FirstLinestring; if (handle != NULL) cs = GEOSCoordSeq_create_r (handle, ln->Points, dims); else cs = GEOSCoordSeq_create (ln->Points, dims); for (iv = 0; iv < ln->Points; iv++) { switch (ln->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); GEOSCoordSeq_setZ_r (handle, cs, iv, z); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); } break; case GAIA_XY_M: gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); } break; case GAIA_XY_Z_M: gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); GEOSCoordSeq_setZ_r (handle, cs, iv, z); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); } break; default: gaiaGetPoint (ln->Coords, iv, &x, &y); if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); } break; }; } if (handle != NULL) geos = GEOSGeom_createLineString_r (handle, cs); else geos = GEOSGeom_createLineString (cs); } break; case GAIA_POLYGON: if (mode == GAIA2GEOS_ALL || mode == GAIA2GEOS_ONLY_POLYGONS) { pg = gaia->FirstPolygon; rng = pg->Exterior; /* exterior ring */ ring_points = rng->Points; if (cache) { if (gaiaIsNotClosedRing_r (cache, rng)) ring_points++; } else { if (gaiaIsNotClosedRing (rng)) ring_points++; } if (handle != NULL) cs = GEOSCoordSeq_create_r (handle, ring_points, dims); else cs = GEOSCoordSeq_create (ring_points, dims); for (iv = 0; iv < rng->Points; iv++) { switch (rng->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; z0 = z; } if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); GEOSCoordSeq_setZ_r (handle, cs, iv, z); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); } break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; } if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); } break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; z0 = z; } if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); GEOSCoordSeq_setZ_r (handle, cs, iv, z); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); } break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; } if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); } break; }; } if (ring_points > rng->Points) { /* ensuring Ring's closure */ iv = ring_points - 1; switch (rng->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x0); GEOSCoordSeq_setY_r (handle, cs, iv, y0); GEOSCoordSeq_setZ_r (handle, cs, iv, z0); } else { GEOSCoordSeq_setX (cs, iv, x0); GEOSCoordSeq_setY (cs, iv, y0); GEOSCoordSeq_setZ (cs, iv, z0); } break; default: if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x0); GEOSCoordSeq_setY_r (handle, cs, iv, y0); } else { GEOSCoordSeq_setX (cs, iv, x0); GEOSCoordSeq_setY (cs, iv, y0); } break; }; } if (handle != NULL) geos_ext = GEOSGeom_createLinearRing_r (handle, cs); else geos_ext = GEOSGeom_createLinearRing (cs); geos_holes = NULL; if (pg->NumInteriors > 0) { geos_holes = malloc (sizeof (GEOSGeometry *) * pg->NumInteriors); for (ib = 0; ib < pg->NumInteriors; ib++) { /* interior ring */ rng = pg->Interiors + ib; ring_points = rng->Points; if (cache != NULL) { if (gaiaIsNotClosedRing_r (cache, rng)) ring_points++; } else { if (gaiaIsNotClosedRing (rng)) ring_points++; } if (handle != NULL) cs = GEOSCoordSeq_create_r (handle, ring_points, dims); else cs = GEOSCoordSeq_create (ring_points, dims); for (iv = 0; iv < rng->Points; iv++) { switch (rng->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; z0 = z; } if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); GEOSCoordSeq_setZ_r (handle, cs, iv, z); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); } break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; } if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); } break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; z0 = z; } if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); GEOSCoordSeq_setZ_r (handle, cs, iv, z); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); } break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; } if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); } break; }; } if (ring_points > rng->Points) { /* ensuring Ring's closure */ iv = ring_points - 1; switch (rng->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x0); GEOSCoordSeq_setY_r (handle, cs, iv, y0); GEOSCoordSeq_setZ_r (handle, cs, iv, z0); } else { GEOSCoordSeq_setX (cs, iv, x0); GEOSCoordSeq_setY (cs, iv, y0); GEOSCoordSeq_setZ (cs, iv, z0); } break; default: if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x0); GEOSCoordSeq_setY_r (handle, cs, iv, y0); } else { GEOSCoordSeq_setX (cs, iv, x0); GEOSCoordSeq_setY (cs, iv, y0); } break; }; } if (handle != NULL) geos_int = GEOSGeom_createLinearRing_r (handle, cs); else geos_int = GEOSGeom_createLinearRing (cs); *(geos_holes + ib) = geos_int; } } if (handle != NULL) geos = GEOSGeom_createPolygon_r (handle, geos_ext, geos_holes, pg->NumInteriors); else geos = GEOSGeom_createPolygon (geos_ext, geos_holes, pg->NumInteriors); if (geos_holes) free (geos_holes); } break; case GAIA_MULTIPOINT: case GAIA_MULTILINESTRING: case GAIA_MULTIPOLYGON: case GAIA_GEOMETRYCOLLECTION: nItem = 0; if (mode == GAIA2GEOS_ONLY_POINTS) { geos_coll = malloc (sizeof (GEOSGeometry *) * (pts)); n_items = pts; } else if (mode == GAIA2GEOS_ONLY_LINESTRINGS) { geos_coll = malloc (sizeof (GEOSGeometry *) * (lns)); n_items = lns; } else if (mode == GAIA2GEOS_ONLY_POLYGONS) { geos_coll = malloc (sizeof (GEOSGeometry *) * (pgs)); n_items = pgs; } else { geos_coll = malloc (sizeof (GEOSGeometry *) * (pts + lns + pgs)); n_items = pts + lns + pgs; } if (mode == GAIA2GEOS_ALL || mode == GAIA2GEOS_ONLY_POINTS) { pt = gaia->FirstPoint; while (pt) { if (handle != NULL) cs = GEOSCoordSeq_create_r (handle, 1, dims); else cs = GEOSCoordSeq_create (1, dims); switch (pt->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, 0, pt->X); GEOSCoordSeq_setY_r (handle, cs, 0, pt->Y); GEOSCoordSeq_setZ_r (handle, cs, 0, pt->Z); } else { GEOSCoordSeq_setX (cs, 0, pt->X); GEOSCoordSeq_setY (cs, 0, pt->Y); GEOSCoordSeq_setZ (cs, 0, pt->Z); } break; default: if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, 0, pt->X); GEOSCoordSeq_setY_r (handle, cs, 0, pt->Y); } else { GEOSCoordSeq_setX (cs, 0, pt->X); GEOSCoordSeq_setY (cs, 0, pt->Y); } break; }; if (handle != NULL) geos_item = GEOSGeom_createPoint_r (handle, cs); else geos_item = GEOSGeom_createPoint (cs); *(geos_coll + nItem++) = geos_item; pt = pt->Next; } } if (mode == GAIA2GEOS_ALL || mode == GAIA2GEOS_ONLY_LINESTRINGS) { ln = gaia->FirstLinestring; while (ln) { if (handle != NULL) cs = GEOSCoordSeq_create_r (handle, ln->Points, dims); else cs = GEOSCoordSeq_create (ln->Points, dims); for (iv = 0; iv < ln->Points; iv++) { switch (ln->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); GEOSCoordSeq_setZ_r (handle, cs, iv, z); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); } break; case GAIA_XY_M: gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); } break; case GAIA_XY_Z_M: gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); GEOSCoordSeq_setZ_r (handle, cs, iv, z); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); } break; default: gaiaGetPoint (ln->Coords, iv, &x, &y); if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); } break; }; } if (handle != NULL) geos_item = GEOSGeom_createLineString_r (handle, cs); else geos_item = GEOSGeom_createLineString (cs); *(geos_coll + nItem++) = geos_item; ln = ln->Next; } } if (mode == GAIA2GEOS_ALL || mode == GAIA2GEOS_ONLY_POLYGONS) { pg = gaia->FirstPolygon; while (pg) { rng = pg->Exterior; /* exterior ring */ ring_points = rng->Points; if (cache != NULL) { if (gaiaIsNotClosedRing_r (handle, rng)) ring_points++; } else { if (gaiaIsNotClosedRing (rng)) ring_points++; } if (handle != NULL) cs = GEOSCoordSeq_create_r (handle, ring_points, dims); else cs = GEOSCoordSeq_create (ring_points, dims); for (iv = 0; iv < rng->Points; iv++) { switch (rng->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; z0 = z; } if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); GEOSCoordSeq_setZ_r (handle, cs, iv, z); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); } break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; } if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); } break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; z0 = z; } if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); GEOSCoordSeq_setZ_r (handle, cs, iv, z); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); } break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; } if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); } break; }; } if (ring_points > rng->Points) { /* ensuring Ring's closure */ iv = ring_points - 1; switch (rng->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x0); GEOSCoordSeq_setY_r (handle, cs, iv, y0); GEOSCoordSeq_setZ_r (handle, cs, iv, z0); } else { GEOSCoordSeq_setX (cs, iv, x0); GEOSCoordSeq_setY (cs, iv, y0); GEOSCoordSeq_setZ (cs, iv, z0); } break; default: if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x0); GEOSCoordSeq_setY_r (handle, cs, iv, y0); } else { GEOSCoordSeq_setX (cs, iv, x0); GEOSCoordSeq_setY (cs, iv, y0); } break; }; } if (handle != NULL) geos_ext = GEOSGeom_createLinearRing_r (handle, cs); else geos_ext = GEOSGeom_createLinearRing (cs); geos_holes = NULL; if (pg->NumInteriors > 0) { geos_holes = malloc (sizeof (GEOSGeometry *) * pg->NumInteriors); for (ib = 0; ib < pg->NumInteriors; ib++) { /* interior ring */ rng = pg->Interiors + ib; ring_points = rng->Points; if (cache != NULL) { if (gaiaIsNotClosedRing_r (cache, rng)) ring_points++; } else { if (gaiaIsNotClosedRing (rng)) ring_points++; } if (handle != NULL) cs = GEOSCoordSeq_create_r (handle, ring_points, dims); else cs = GEOSCoordSeq_create (ring_points, dims); for (iv = 0; iv < rng->Points; iv++) { switch (rng->DimensionModel) { case GAIA_XY_Z: gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; z0 = z; } if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); GEOSCoordSeq_setZ_r (handle, cs, iv, z); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); } break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; } if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); } break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; z0 = z; } if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); GEOSCoordSeq_setZ_r (handle, cs, iv, z); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); } break; default: gaiaGetPoint (rng->Coords, iv, &x, &y); if (iv == 0) { /* saving the first vertex */ x0 = x; y0 = y; } if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); } break; }; } if (ring_points > rng->Points) { /* ensuring Ring's closure */ iv = ring_points - 1; switch (rng->DimensionModel) { case GAIA_XY_Z: case GAIA_XY_Z_M: if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x0); GEOSCoordSeq_setY_r (handle, cs, iv, y0); GEOSCoordSeq_setZ_r (handle, cs, iv, z0); } else { GEOSCoordSeq_setX (cs, iv, x0); GEOSCoordSeq_setY (cs, iv, y0); GEOSCoordSeq_setZ (cs, iv, z0); } break; default: if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x0); GEOSCoordSeq_setY_r (handle, cs, iv, y0); } else { GEOSCoordSeq_setX (cs, iv, x0); GEOSCoordSeq_setY (cs, iv, y0); } break; }; } if (handle != NULL) geos_int = GEOSGeom_createLinearRing_r (handle, cs); else geos_int = GEOSGeom_createLinearRing (cs); *(geos_holes + ib) = geos_int; } } if (handle != NULL) geos_item = GEOSGeom_createPolygon_r (handle, geos_ext, geos_holes, pg->NumInteriors); else geos_item = GEOSGeom_createPolygon (geos_ext, geos_holes, pg->NumInteriors); if (geos_holes) free (geos_holes); *(geos_coll + nItem++) = geos_item; pg = pg->Next; } } geos_type = GEOS_GEOMETRYCOLLECTION; if (type == GAIA_MULTIPOINT) geos_type = GEOS_MULTIPOINT; if (type == GAIA_MULTILINESTRING) geos_type = GEOS_MULTILINESTRING; if (type == GAIA_MULTIPOLYGON) geos_type = GEOS_MULTIPOLYGON; if (handle != NULL) geos = GEOSGeom_createCollection_r (handle, geos_type, geos_coll, n_items); else geos = GEOSGeom_createCollection (geos_type, geos_coll, n_items); if (geos_coll) free (geos_coll); break; default: geos = NULL; }; if (geos) { if (handle != NULL) GEOSSetSRID_r (handle, geos, gaia->Srid); else GEOSSetSRID (geos, gaia->Srid); } return geos; } static gaiaGeomCollPtr fromGeosGeometry (GEOSContextHandle_t handle, const GEOSGeometry * geos, const int dimension_model) { /* converting a GEOS Geometry into a GAIA Geometry */ int type; int itemType; unsigned int dims; int iv; int ib; int it; int sub_it; int nItems; int nSubItems; int holes; unsigned int points; double x; double y; double z; const GEOSCoordSequence *cs; const GEOSGeometry *geos_ring; const GEOSGeometry *geos_item; const GEOSGeometry *geos_sub_item; gaiaGeomCollPtr gaia = NULL; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; if (!geos) return NULL; if (handle != NULL) type = GEOSGeomTypeId_r (handle, geos); else type = GEOSGeomTypeId (geos); switch (type) { case GEOS_POINT: if (dimension_model == GAIA_XY_Z) gaia = gaiaAllocGeomCollXYZ (); else if (dimension_model == GAIA_XY_M) gaia = gaiaAllocGeomCollXYM (); else if (dimension_model == GAIA_XY_Z_M) gaia = gaiaAllocGeomCollXYZM (); else gaia = gaiaAllocGeomColl (); gaia->DeclaredType = GAIA_POINT; if (handle != NULL) { gaia->Srid = GEOSGetSRID_r (handle, geos); cs = GEOSGeom_getCoordSeq_r (handle, geos); GEOSCoordSeq_getDimensions_r (handle, cs, &dims); } else { gaia->Srid = GEOSGetSRID (geos); cs = GEOSGeom_getCoordSeq (geos); GEOSCoordSeq_getDimensions (cs, &dims); } if (dims == 3) { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, 0, &x); GEOSCoordSeq_getY_r (handle, cs, 0, &y); GEOSCoordSeq_getZ_r (handle, cs, 0, &z); } else { GEOSCoordSeq_getX (cs, 0, &x); GEOSCoordSeq_getY (cs, 0, &y); GEOSCoordSeq_getZ (cs, 0, &z); } } else { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, 0, &x); GEOSCoordSeq_getY_r (handle, cs, 0, &y); } else { GEOSCoordSeq_getX (cs, 0, &x); GEOSCoordSeq_getY (cs, 0, &y); } z = 0.0; } if (dimension_model == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (gaia, x, y, z); else if (dimension_model == GAIA_XY_M) gaiaAddPointToGeomCollXYM (gaia, x, y, 0.0); else if (dimension_model == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (gaia, x, y, z, 0.0); else gaiaAddPointToGeomColl (gaia, x, y); break; case GEOS_LINESTRING: if (dimension_model == GAIA_XY_Z) gaia = gaiaAllocGeomCollXYZ (); else if (dimension_model == GAIA_XY_M) gaia = gaiaAllocGeomCollXYM (); else if (dimension_model == GAIA_XY_Z_M) gaia = gaiaAllocGeomCollXYZM (); else gaia = gaiaAllocGeomColl (); gaia->DeclaredType = GAIA_LINESTRING; if (handle != NULL) { gaia->Srid = GEOSGetSRID_r (handle, geos); cs = GEOSGeom_getCoordSeq_r (handle, geos); GEOSCoordSeq_getDimensions_r (handle, cs, &dims); GEOSCoordSeq_getSize_r (handle, cs, &points); } else { gaia->Srid = GEOSGetSRID (geos); cs = GEOSGeom_getCoordSeq (geos); GEOSCoordSeq_getDimensions (cs, &dims); GEOSCoordSeq_getSize (cs, &points); } ln = gaiaAddLinestringToGeomColl (gaia, points); for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, iv, &x); GEOSCoordSeq_getY_r (handle, cs, iv, &y); GEOSCoordSeq_getZ_r (handle, cs, iv, &z); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); GEOSCoordSeq_getZ (cs, iv, &z); } } else { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, iv, &x); GEOSCoordSeq_getY_r (handle, cs, iv, &y); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); } z = 0.0; } if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, iv, x, y, 0.0); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, iv, x, y, z, 0.0); } else { gaiaSetPoint (ln->Coords, iv, x, y); } } break; case GEOS_POLYGON: if (dimension_model == GAIA_XY_Z) gaia = gaiaAllocGeomCollXYZ (); else if (dimension_model == GAIA_XY_M) gaia = gaiaAllocGeomCollXYM (); else if (dimension_model == GAIA_XY_Z_M) gaia = gaiaAllocGeomCollXYZM (); else gaia = gaiaAllocGeomColl (); gaia->DeclaredType = GAIA_POLYGON; if (handle != NULL) gaia->Srid = GEOSGetSRID_r (handle, geos); else gaia->Srid = GEOSGetSRID (geos); /* exterior ring */ if (handle != NULL) { holes = GEOSGetNumInteriorRings_r (handle, geos); geos_ring = GEOSGetExteriorRing_r (handle, geos); cs = GEOSGeom_getCoordSeq_r (handle, geos_ring); GEOSCoordSeq_getDimensions_r (handle, cs, &dims); GEOSCoordSeq_getSize_r (handle, cs, &points); } else { holes = GEOSGetNumInteriorRings (geos); geos_ring = GEOSGetExteriorRing (geos); cs = GEOSGeom_getCoordSeq (geos_ring); GEOSCoordSeq_getDimensions (cs, &dims); GEOSCoordSeq_getSize (cs, &points); } pg = gaiaAddPolygonToGeomColl (gaia, points, holes); rng = pg->Exterior; for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, iv, &x); GEOSCoordSeq_getY_r (handle, cs, iv, &y); GEOSCoordSeq_getZ_r (handle, cs, iv, &z); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); GEOSCoordSeq_getZ (cs, iv, &z); } } else { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, iv, &x); GEOSCoordSeq_getY_r (handle, cs, iv, &y); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); } z = 0.0; } if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, 0.0); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, 0.0); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } for (ib = 0; ib < holes; ib++) { /* interior rings */ if (handle != NULL) { geos_ring = GEOSGetInteriorRingN_r (handle, geos, ib); cs = GEOSGeom_getCoordSeq_r (handle, geos_ring); GEOSCoordSeq_getDimensions_r (handle, cs, &dims); GEOSCoordSeq_getSize_r (handle, cs, &points); } else { geos_ring = GEOSGetInteriorRingN (geos, ib); cs = GEOSGeom_getCoordSeq (geos_ring); GEOSCoordSeq_getDimensions (cs, &dims); GEOSCoordSeq_getSize (cs, &points); } rng = gaiaAddInteriorRing (pg, ib, points); for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, iv, &x); GEOSCoordSeq_getY_r (handle, cs, iv, &y); GEOSCoordSeq_getZ_r (handle, cs, iv, &z); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); GEOSCoordSeq_getZ (cs, iv, &z); } } else { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, iv, &x); GEOSCoordSeq_getY_r (handle, cs, iv, &y); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); } z = 0.0; } if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, 0.0); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, 0.0); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } } break; case GEOS_MULTIPOINT: case GEOS_MULTILINESTRING: case GEOS_MULTIPOLYGON: case GEOS_GEOMETRYCOLLECTION: if (dimension_model == GAIA_XY_Z) gaia = gaiaAllocGeomCollXYZ (); else if (dimension_model == GAIA_XY_M) gaia = gaiaAllocGeomCollXYM (); else if (dimension_model == GAIA_XY_Z_M) gaia = gaiaAllocGeomCollXYZM (); else gaia = gaiaAllocGeomColl (); if (type == GEOS_MULTIPOINT) gaia->DeclaredType = GAIA_MULTIPOINT; else if (type == GEOS_MULTILINESTRING) gaia->DeclaredType = GAIA_MULTILINESTRING; else if (type == GEOS_MULTIPOLYGON) gaia->DeclaredType = GAIA_MULTIPOLYGON; else gaia->DeclaredType = GAIA_GEOMETRYCOLLECTION; if (handle != NULL) { gaia->Srid = GEOSGetSRID_r (handle, geos); nItems = GEOSGetNumGeometries_r (handle, geos); } else { gaia->Srid = GEOSGetSRID (geos); nItems = GEOSGetNumGeometries (geos); } for (it = 0; it < nItems; it++) { /* looping on elementaty geometries */ if (handle != NULL) { geos_item = GEOSGetGeometryN_r (handle, geos, it); itemType = GEOSGeomTypeId_r (handle, geos_item); } else { geos_item = GEOSGetGeometryN (geos, it); itemType = GEOSGeomTypeId (geos_item); } switch (itemType) { case GEOS_POINT: if (handle != NULL) { cs = GEOSGeom_getCoordSeq_r (handle, geos_item); GEOSCoordSeq_getDimensions_r (handle, cs, &dims); } else { cs = GEOSGeom_getCoordSeq (geos_item); GEOSCoordSeq_getDimensions (cs, &dims); } if (dims == 3) { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, 0, &x); GEOSCoordSeq_getY_r (handle, cs, 0, &y); GEOSCoordSeq_getZ_r (handle, cs, 0, &z); } else { GEOSCoordSeq_getX (cs, 0, &x); GEOSCoordSeq_getY (cs, 0, &y); GEOSCoordSeq_getZ (cs, 0, &z); } } else { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, 0, &x); GEOSCoordSeq_getY_r (handle, cs, 0, &y); } else { GEOSCoordSeq_getX (cs, 0, &x); GEOSCoordSeq_getY (cs, 0, &y); } z = 0.0; } if (dimension_model == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (gaia, x, y, z); else if (dimension_model == GAIA_XY_M) gaiaAddPointToGeomCollXYM (gaia, x, y, 0.0); else if (dimension_model == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (gaia, x, y, z, 0.0); else gaiaAddPointToGeomColl (gaia, x, y); break; case GEOS_LINESTRING: if (handle != NULL) { cs = GEOSGeom_getCoordSeq_r (handle, geos_item); GEOSCoordSeq_getDimensions_r (handle, cs, &dims); GEOSCoordSeq_getSize_r (handle, cs, &points); } else { cs = GEOSGeom_getCoordSeq (geos_item); GEOSCoordSeq_getDimensions (cs, &dims); GEOSCoordSeq_getSize (cs, &points); } ln = gaiaAddLinestringToGeomColl (gaia, points); for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, iv, &x); GEOSCoordSeq_getY_r (handle, cs, iv, &y); GEOSCoordSeq_getZ_r (handle, cs, iv, &z); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); GEOSCoordSeq_getZ (cs, iv, &z); } } else { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, iv, &x); GEOSCoordSeq_getY_r (handle, cs, iv, &y); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); } z = 0.0; } if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, iv, x, y, 0.0); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, iv, x, y, z, 0.0); } else { gaiaSetPoint (ln->Coords, iv, x, y); } } break; case GEOS_MULTILINESTRING: if (handle != NULL) nSubItems = GEOSGetNumGeometries_r (handle, geos_item); else nSubItems = GEOSGetNumGeometries (geos_item); for (sub_it = 0; sub_it < nSubItems; sub_it++) { /* looping on elementaty geometries */ if (handle != NULL) { geos_sub_item = GEOSGetGeometryN_r (handle, geos_item, sub_it); cs = GEOSGeom_getCoordSeq_r (handle, geos_sub_item); GEOSCoordSeq_getDimensions_r (handle, cs, &dims); GEOSCoordSeq_getSize_r (handle, cs, &points); } else { geos_sub_item = GEOSGetGeometryN (geos_item, sub_it); cs = GEOSGeom_getCoordSeq (geos_sub_item); GEOSCoordSeq_getDimensions (cs, &dims); GEOSCoordSeq_getSize (cs, &points); } ln = gaiaAddLinestringToGeomColl (gaia, points); for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, iv, &x); GEOSCoordSeq_getY_r (handle, cs, iv, &y); GEOSCoordSeq_getZ_r (handle, cs, iv, &z); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); GEOSCoordSeq_getZ (cs, iv, &z); } } else { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, iv, &x); GEOSCoordSeq_getY_r (handle, cs, iv, &y); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); } z = 0.0; } if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, iv, x, y, 0.0); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, iv, x, y, z, 0.0); } else { gaiaSetPoint (ln->Coords, iv, x, y); } } } break; case GEOS_POLYGON: /* exterior ring */ if (handle != NULL) { holes = GEOSGetNumInteriorRings_r (handle, geos_item); geos_ring = GEOSGetExteriorRing_r (handle, geos_item); cs = GEOSGeom_getCoordSeq_r (handle, geos_ring); GEOSCoordSeq_getDimensions_r (handle, cs, &dims); GEOSCoordSeq_getSize_r (handle, cs, &points); } else { holes = GEOSGetNumInteriorRings (geos_item); geos_ring = GEOSGetExteriorRing (geos_item); cs = GEOSGeom_getCoordSeq (geos_ring); GEOSCoordSeq_getDimensions (cs, &dims); GEOSCoordSeq_getSize (cs, &points); } pg = gaiaAddPolygonToGeomColl (gaia, points, holes); rng = pg->Exterior; for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, iv, &x); GEOSCoordSeq_getY_r (handle, cs, iv, &y); GEOSCoordSeq_getZ_r (handle, cs, iv, &z); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); GEOSCoordSeq_getZ (cs, iv, &z); } } else { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, iv, &x); GEOSCoordSeq_getY_r (handle, cs, iv, &y); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); } z = 0.0; } if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, 0.0); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, 0.0); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } for (ib = 0; ib < holes; ib++) { /* interior rings */ if (handle != NULL) { geos_ring = GEOSGetInteriorRingN_r (handle, geos_item, ib); cs = GEOSGeom_getCoordSeq_r (handle, geos_ring); GEOSCoordSeq_getDimensions_r (handle, cs, &dims); GEOSCoordSeq_getSize_r (handle, cs, &points); } else { geos_ring = GEOSGetInteriorRingN (geos_item, ib); cs = GEOSGeom_getCoordSeq (geos_ring); GEOSCoordSeq_getDimensions (cs, &dims); GEOSCoordSeq_getSize (cs, &points); } rng = gaiaAddInteriorRing (pg, ib, points); for (iv = 0; iv < (int) points; iv++) { if (dims == 3) { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, iv, &x); GEOSCoordSeq_getY_r (handle, cs, iv, &y); GEOSCoordSeq_getZ_r (handle, cs, iv, &z); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); GEOSCoordSeq_getZ (cs, iv, &z); } } else { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, iv, &x); GEOSCoordSeq_getY_r (handle, cs, iv, &y); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); } z = 0.0; } if (dimension_model == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (dimension_model == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, 0.0); } else if (dimension_model == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, 0.0); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } } break; }; } break; }; return gaia; } GAIAGEO_DECLARE void * gaiaToGeos (const gaiaGeomCollPtr gaia) { /* converting a GAIA Geometry into a GEOS Geometry */ return toGeosGeometry (NULL, NULL, gaia, GAIA2GEOS_ALL); } GAIAGEO_DECLARE void * gaiaToGeos_r (const void *p_cache, const gaiaGeomCollPtr gaia) { /* converting a GAIA Geometry into a GEOS Geometry */ struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; return toGeosGeometry (cache, handle, gaia, GAIA2GEOS_ALL); } GAIAGEO_DECLARE void * gaiaToGeosSelective (const gaiaGeomCollPtr gaia, int mode) { /* converting a GAIA Geometry into a GEOS Geometry (selected type) */ if (mode == GAIA2GEOS_ONLY_POINTS || mode == GAIA2GEOS_ONLY_LINESTRINGS || mode == GAIA2GEOS_ONLY_POLYGONS) ; else mode = GAIA2GEOS_ALL; return toGeosGeometry (NULL, NULL, gaia, mode); } GAIAGEO_DECLARE void * gaiaToGeosSelective_r (const void *p_cache, const gaiaGeomCollPtr gaia, int mode) { /* converting a GAIA Geometry into a GEOS Geometry (selected type) */ struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; if (mode == GAIA2GEOS_ONLY_POINTS || mode == GAIA2GEOS_ONLY_LINESTRINGS || mode == GAIA2GEOS_ONLY_POLYGONS) ; else mode = GAIA2GEOS_ALL; return toGeosGeometry (cache, handle, gaia, mode); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY (const void *xgeos) { /* converting a GEOS Geometry into a GAIA Geometry [XY] */ const GEOSGeometry *geos = xgeos; return fromGeosGeometry (NULL, geos, GAIA_XY); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ (const void *xgeos) { /* converting a GEOS Geometry into a GAIA Geometry [XYZ] */ const GEOSGeometry *geos = xgeos; return fromGeosGeometry (NULL, geos, GAIA_XY_Z); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM (const void *xgeos) { /* converting a GEOS Geometry into a GAIA Geometry [XYM] */ const GEOSGeometry *geos = xgeos; return fromGeosGeometry (NULL, geos, GAIA_XY_M); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM (const void *xgeos) { /* converting a GEOS Geometry into a GAIA Geometry [XYZM] */ const GEOSGeometry *geos = xgeos; return fromGeosGeometry (NULL, geos, GAIA_XY_Z_M); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY_r (const void *p_cache, const void *xgeos) { /* converting a GEOS Geometry into a GAIA Geometry [XY] */ const GEOSGeometry *geos = xgeos; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; return fromGeosGeometry (handle, geos, GAIA_XY); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ_r (const void *p_cache, const void *xgeos) { /* converting a GEOS Geometry into a GAIA Geometry [XYZ] */ const GEOSGeometry *geos = xgeos; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; return fromGeosGeometry (handle, geos, GAIA_XY_Z); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM_r (const void *p_cache, const void *xgeos) { /* converting a GEOS Geometry into a GAIA Geometry [XYM] */ const GEOSGeometry *geos = xgeos; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; return fromGeosGeometry (handle, geos, GAIA_XY_M); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM_r (const void *p_cache, const void *xgeos) { /* converting a GEOS Geometry into a GAIA Geometry [XYZM] */ const GEOSGeometry *geos = xgeos; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; return fromGeosGeometry (handle, geos, GAIA_XY_Z_M); } #endif /* end including GEOS */ libspatialite-4.3.0a/src/gaiageo/Ewkt.h0000664000175000017500000000156212544707704014714 00000000000000#define EWKT_NEWLINE 1 #define EWKT_POINT 2 #define EWKT_OPEN_BRACKET 3 #define EWKT_CLOSE_BRACKET 4 #define EWKT_POINT_M 5 #define EWKT_NUM 6 #define EWKT_COMMA 7 #define EWKT_LINESTRING 8 #define EWKT_LINESTRING_M 9 #define EWKT_POLYGON 10 #define EWKT_POLYGON_M 11 #define EWKT_MULTIPOINT 12 #define EWKT_MULTIPOINT_M 13 #define EWKT_MULTILINESTRING 14 #define EWKT_MULTILINESTRING_M 15 #define EWKT_MULTIPOLYGON 16 #define EWKT_MULTIPOLYGON_M 17 #define EWKT_GEOMETRYCOLLECTION 18 #define EWKT_GEOMETRYCOLLECTION_M 19 #define EWKT_GEOMETRYCOLLECTION_Z 20 #define EWKT_GEOMETRYCOLLECTION_ZM 21 libspatialite-4.3.0a/src/gaiageo/gg_shape.c0000664000175000017500000046505312544707704015563 00000000000000/* gg_shape.c -- Gaia shapefile handling version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #if OMIT_ICONV == 0 /* if ICONV is disabled no SHP support is available */ #if defined(__MINGW32__) || defined(_WIN32) #define LIBICONV_STATIC #include #define LIBCHARSET_STATIC #ifdef _MSC_VER /* isn't supported on OSGeo4W */ /* applying a tricky workaround to fix this issue */ extern const char *locale_charset (void); #else /* sane Windows - not OSGeo4W */ #include #endif /* end localcharset */ #else /* not MINGW32 */ #if defined(__APPLE__) || defined(__ANDROID__) #include #include #else /* neither Mac OsX nor Android */ #include #include #endif #endif #include #include #include #ifdef _WIN32 #define atoll _atoi64 #endif /* not WIN32 */ /* 64 bit integer: portable format for printf() */ #if defined(_WIN32) && !defined(__MINGW32__) #define FRMT64 "%I64d" #else #define FRMT64 "%lld" #endif #define SHAPEFILE_NO_DATA 1e-38 #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ struct auxdbf_fld { /* auxiliary DBF field struct */ char *name; struct auxdbf_fld *next; }; struct auxdbf_list { /* auxiliary DBF struct */ struct auxdbf_fld *first; struct auxdbf_fld *last; }; GAIAGEO_DECLARE void gaiaFreeValue (gaiaValuePtr p) { /* frees all memory allocations for this DBF Field value */ if (!p) return; if (p->TxtValue) free (p->TxtValue); free (p); } GAIAGEO_DECLARE void gaiaSetNullValue (gaiaDbfFieldPtr field) { /* assignes a NULL value to some DBF field */ if (field->Value) gaiaFreeValue (field->Value); field->Value = malloc (sizeof (gaiaValue)); field->Value->Type = GAIA_NULL_VALUE; field->Value->TxtValue = NULL; } GAIAGEO_DECLARE void gaiaSetIntValue (gaiaDbfFieldPtr field, sqlite3_int64 value) { /* assignes an INTEGER value to some DBF field */ if (field->Value) gaiaFreeValue (field->Value); field->Value = malloc (sizeof (gaiaValue)); field->Value->Type = GAIA_INT_VALUE; field->Value->TxtValue = NULL; field->Value->IntValue = value; } GAIAGEO_DECLARE void gaiaSetDoubleValue (gaiaDbfFieldPtr field, double value) { /* assignes a DOUBLE value to some DBF field */ if (field->Value) gaiaFreeValue (field->Value); field->Value = malloc (sizeof (gaiaValue)); field->Value->Type = GAIA_DOUBLE_VALUE; field->Value->TxtValue = NULL; field->Value->DblValue = value; } GAIAGEO_DECLARE void gaiaSetStrValue (gaiaDbfFieldPtr field, char *str) { /* assignes a STRING value to some DBF field */ int len = strlen (str); if (field->Value) gaiaFreeValue (field->Value); field->Value = malloc (sizeof (gaiaValue)); field->Value->Type = GAIA_TEXT_VALUE; field->Value->TxtValue = malloc (len + 1); strcpy (field->Value->TxtValue, str); } GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaAllocDbfField (char *name, unsigned char type, int offset, unsigned char length, unsigned char decimals) { /* allocates and initializes a DBF Field definition */ gaiaDbfFieldPtr p = malloc (sizeof (gaiaDbfField)); int len = strlen (name); p->Name = malloc (len + 1); strcpy (p->Name, name); p->Type = type; p->Offset = offset; p->Length = length; p->Decimals = decimals; p->Value = NULL; p->Next = NULL; return p; } GAIAGEO_DECLARE void gaiaFreeDbfField (gaiaDbfFieldPtr p) { /* frees all memory allocations for this DBF Field definition */ if (!p) return; if (p->Name) free (p->Name); if (p->Value) gaiaFreeValue (p->Value); free (p); } GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaCloneDbfField (gaiaDbfFieldPtr org) { /* creating a new DBF LIST copied from the original one */ gaiaDbfFieldPtr p = malloc (sizeof (gaiaDbfField)); int len = strlen (org->Name); p->Name = malloc (len + 1); strcpy (p->Name, org->Name); p->Type = org->Type; p->Offset = org->Offset; p->Length = org->Length; p->Decimals = org->Decimals; p->Value = gaiaCloneValue (org->Value); p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaDbfListPtr gaiaAllocDbfList () { /* allocates and initializes the DBF Fields list */ gaiaDbfListPtr list = malloc (sizeof (gaiaDbfList)); list->RowId = 0; list->Geometry = NULL; list->First = NULL; list->Last = NULL; return list; } GAIAGEO_DECLARE void gaiaFreeDbfList (gaiaDbfListPtr list) { /* frees all memory allocations related to DBF Fields list */ gaiaDbfFieldPtr p; gaiaDbfFieldPtr pn; if (!list) return; p = list->First; while (p) { pn = p->Next; gaiaFreeDbfField (p); p = pn; } if (list->Geometry) gaiaFreeGeomColl (list->Geometry); free (list); } GAIAGEO_DECLARE int gaiaIsValidDbfList (gaiaDbfListPtr list) { /* checks if the DBF fields list contains any invalid data type */ gaiaDbfFieldPtr p; if (!list) return 0; p = list->First; while (p) { if (p->Type == 'N' || p->Type == 'C' || p->Type == 'L' || p->Type == 'D' || p->Type == 'F') ; else return 0; p = p->Next; } return 1; } GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaAddDbfField (gaiaDbfListPtr list, char *name, unsigned char type, int offset, unsigned char length, unsigned char decimals) { /* inserts a Field in the DBF Fields list */ gaiaDbfFieldPtr p; if (!list) return NULL; p = gaiaAllocDbfField (name, type, offset, length, decimals); if (!(list->First)) list->First = p; if (list->Last) list->Last->Next = p; list->Last = p; return p; } GAIAGEO_DECLARE void gaiaResetDbfEntity (gaiaDbfListPtr list) { /* resets data values */ gaiaDbfFieldPtr p; if (!list) return; p = list->First; while (p) { if (p->Value) gaiaFreeValue (p->Value); p->Value = NULL; p = p->Next; } if (list->Geometry) gaiaFreeGeomColl (list->Geometry); list->Geometry = NULL; } GAIAGEO_DECLARE gaiaValuePtr gaiaCloneValue (gaiaValuePtr org) { /* creating a new VARIANT value copied from the original one */ gaiaValuePtr value; int len; value = malloc (sizeof (gaiaValue)); value->Type = GAIA_NULL_VALUE; value->TxtValue = NULL; switch (org->Type) { case GAIA_INT_VALUE: value->Type = GAIA_INT_VALUE; value->IntValue = org->IntValue; break; case GAIA_DOUBLE_VALUE: value->Type = GAIA_DOUBLE_VALUE; value->DblValue = org->DblValue; break; case GAIA_TEXT_VALUE: value->Type = GAIA_TEXT_VALUE; len = strlen (org->TxtValue); value->TxtValue = malloc (len + 1); strcpy (value->TxtValue, org->TxtValue); }; return value; } GAIAGEO_DECLARE gaiaDbfListPtr gaiaCloneDbfEntity (gaiaDbfListPtr org) { /* creating a new DBF LIST copied from the original one */ gaiaDbfFieldPtr p; gaiaDbfFieldPtr newFld; gaiaDbfListPtr entity = gaiaAllocDbfList (); entity->RowId = org->RowId; if (org->Geometry) entity->Geometry = gaiaCloneGeomColl (org->Geometry); p = org->First; while (p) { newFld = gaiaAddDbfField (entity, p->Name, p->Type, p->Offset, p->Length, p->Decimals); if (p->Value) newFld->Value = gaiaCloneValue (p->Value); p = p->Next; } return entity; } GAIAGEO_DECLARE gaiaShapefilePtr gaiaAllocShapefile () { /* allocates and initializes the Shapefile object */ gaiaShapefilePtr shp = malloc (sizeof (gaiaShapefile)); shp->endian_arch = 1; shp->Path = NULL; shp->Shape = -1; shp->EffectiveType = GAIA_UNKNOWN; shp->EffectiveDims = GAIA_XY; shp->flShp = NULL; shp->flShx = NULL; shp->flDbf = NULL; shp->Dbf = NULL; shp->BufShp = NULL; shp->ShpBfsz = 0; shp->BufDbf = NULL; shp->DbfHdsz = 0; shp->DbfReclen = 0; shp->DbfSize = 0; shp->DbfRecno = 0; shp->ShpSize = 0; shp->ShxSize = 0; shp->MinX = DBL_MAX; shp->MinY = DBL_MAX; shp->MaxX = -DBL_MAX; shp->MaxY = -DBL_MAX; shp->Valid = 0; shp->IconvObj = NULL; shp->LastError = NULL; return shp; } GAIAGEO_DECLARE void gaiaFreeShapefile (gaiaShapefilePtr shp) { /* frees all memory allocations related to the Shapefile object */ if (shp->Path) free (shp->Path); if (shp->flShp) fclose (shp->flShp); if (shp->flShx) fclose (shp->flShx); if (shp->flDbf) fclose (shp->flDbf); if (shp->Dbf) gaiaFreeDbfList (shp->Dbf); if (shp->BufShp) free (shp->BufShp); if (shp->BufDbf) free (shp->BufDbf); if (shp->IconvObj) iconv_close ((iconv_t) shp->IconvObj); if (shp->LastError) free (shp->LastError); free (shp); } GAIAGEO_DECLARE void gaiaOpenShpRead (gaiaShapefilePtr shp, const char *path, const char *charFrom, const char *charTo) { /* trying to open the shapefile and initial checkings */ FILE *fl_shx = NULL; FILE *fl_shp = NULL; FILE *fl_dbf = NULL; char xpath[1024]; int rd; unsigned char buf_shx[256]; unsigned char *buf_shp = NULL; int buf_size = 1024; int shape; unsigned char bf[1024]; int dbf_size; int dbf_reclen = 0; int off_dbf; int ind; char field_name[2048]; char *sys_err; char errMsg[1024]; iconv_t iconv_ret; char utf8buf[2048]; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else /* not WIN32 */ char *pBuf; #endif size_t len; size_t utf8len; char *pUtf8buf; int endian_arch = gaiaEndianArch (); gaiaDbfListPtr dbf_list = NULL; if (charFrom && charTo) { iconv_ret = iconv_open (charTo, charFrom); if (iconv_ret == (iconv_t) (-1)) { sprintf (errMsg, "conversion from '%s' to '%s' not available\n", charFrom, charTo); goto unsupported_conversion; } shp->IconvObj = iconv_ret; } else { sprintf (errMsg, "a NULL charset-name was passed\n"); goto unsupported_conversion; } if (shp->flShp != NULL || shp->flShx != NULL || shp->flDbf != NULL) { sprintf (errMsg, "attempting to reopen an already opened Shapefile\n"); goto unsupported_conversion; } sprintf (xpath, "%s.shx", path); fl_shx = fopen (xpath, "rb"); if (!fl_shx) { sys_err = strerror (errno); sprintf (errMsg, "unable to open '%s' for reading: %s", xpath, sys_err); goto no_file; } sprintf (xpath, "%s.shp", path); fl_shp = fopen (xpath, "rb"); if (!fl_shp) { sys_err = strerror (errno); sprintf (errMsg, "unable to open '%s' for reading: %s", xpath, sys_err); goto no_file; } sprintf (xpath, "%s.dbf", path); fl_dbf = fopen (xpath, "rb"); if (!fl_dbf) { sys_err = strerror (errno); sprintf (errMsg, "unable to open '%s' for reading: %s", xpath, sys_err); goto no_file; } /* reading SHX file header */ rd = fread (buf_shx, sizeof (unsigned char), 100, fl_shx); if (rd != 100) goto error; if (gaiaImport32 (buf_shx + 0, GAIA_BIG_ENDIAN, endian_arch) != 9994) /* checks the SHX magic number */ goto error; /* reading SHP file header */ buf_shp = malloc (sizeof (unsigned char) * buf_size); rd = fread (buf_shp, sizeof (unsigned char), 100, fl_shp); if (rd != 100) goto error; if (gaiaImport32 (buf_shp + 0, GAIA_BIG_ENDIAN, endian_arch) != 9994) /* checks the SHP magic number */ goto error; shape = gaiaImport32 (buf_shp + 32, GAIA_LITTLE_ENDIAN, endian_arch); if (shape == GAIA_SHP_POINT || shape == GAIA_SHP_POINTZ || shape == GAIA_SHP_POINTM || shape == GAIA_SHP_POLYLINE || shape == GAIA_SHP_POLYLINEZ || shape == GAIA_SHP_POLYLINEM || shape == GAIA_SHP_POLYGON || shape == GAIA_SHP_POLYGONZ || shape == GAIA_SHP_POLYGONM || shape == GAIA_SHP_MULTIPOINT || shape == GAIA_SHP_MULTIPOINTZ || shape == GAIA_SHP_MULTIPOINTM) ; else goto unsupported; /* reading DBF file header */ rd = fread (bf, sizeof (unsigned char), 32, fl_dbf); if (rd != 32) goto error; switch (*bf) { /* checks the DBF magic number */ case 0x03: case 0x83: break; case 0x02: case 0xF8: sprintf (errMsg, "'%s'\ninvalid magic number %02x [FoxBASE format]", path, *bf); goto dbf_bad_magic; case 0xF5: sprintf (errMsg, "'%s'\ninvalid magic number %02x [FoxPro 2.x (or earlier) format]", path, *bf); goto dbf_bad_magic; case 0x30: case 0x31: case 0x32: sprintf (errMsg, "'%s'\ninvalid magic number %02x [Visual FoxPro format]", path, *bf); goto dbf_bad_magic; case 0x43: case 0x63: case 0xBB: case 0xCB: sprintf (errMsg, "'%s'\ninvalid magic number %02x [dBASE IV format]", path, *bf); goto dbf_bad_magic; default: sprintf (errMsg, "'%s'\ninvalid magic number %02x [unknown format]", path, *bf); goto dbf_bad_magic; }; dbf_size = gaiaImport16 (bf + 8, GAIA_LITTLE_ENDIAN, endian_arch); dbf_reclen = gaiaImport16 (bf + 10, GAIA_LITTLE_ENDIAN, endian_arch); dbf_size--; off_dbf = 0; dbf_list = gaiaAllocDbfList (); for (ind = 32; ind < dbf_size; ind += 32) { /* fetches DBF fields definitions */ rd = fread (bf, sizeof (unsigned char), 32, fl_dbf); if (rd != 32) goto error; if (*(bf + 11) == 'M') { /* skipping any MEMO field */ memcpy (field_name, bf, 11); field_name[11] = '\0'; off_dbf += *(bf + 16); spatialite_e ("WARNING: column \"%s\" is of the MEMO type and will be ignored\n", field_name); continue; } memcpy (field_name, bf, 11); field_name[11] = '\0'; len = strlen ((char *) field_name); utf8len = 2048; pBuf = (char *) field_name; pUtf8buf = utf8buf; if (iconv ((iconv_t) (shp->IconvObj), &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) goto conversion_error; memcpy (field_name, utf8buf, 2048 - utf8len); field_name[2048 - utf8len] = '\0'; gaiaAddDbfField (dbf_list, field_name, *(bf + 11), off_dbf, *(bf + 16), *(bf + 17)); off_dbf += *(bf + 16); } if (!gaiaIsValidDbfList (dbf_list)) { /* invalid DBF */ goto illegal_dbf; } len = strlen (path); shp->Path = malloc (len + 1); strcpy (shp->Path, path); shp->ReadOnly = 1; shp->Shape = shape; switch (shape) { /* setting up a prudential geometry type */ case GAIA_SHP_POINT: case GAIA_SHP_POINTZ: case GAIA_SHP_POINTM: shp->EffectiveType = GAIA_POINT; break; case GAIA_SHP_POLYLINE: case GAIA_SHP_POLYLINEZ: case GAIA_SHP_POLYLINEM: shp->EffectiveType = GAIA_MULTILINESTRING; break; case GAIA_SHP_POLYGON: case GAIA_SHP_POLYGONZ: case GAIA_SHP_POLYGONM: shp->EffectiveType = GAIA_MULTIPOLYGON; break; case GAIA_SHP_MULTIPOINT: case GAIA_SHP_MULTIPOINTZ: case GAIA_SHP_MULTIPOINTM: shp->EffectiveType = GAIA_MULTIPOINT; break; } switch (shape) { /* setting up a prudential dimension model */ case GAIA_SHP_POINTZ: case GAIA_SHP_POLYLINEZ: case GAIA_SHP_POLYGONZ: case GAIA_SHP_MULTIPOINTZ: shp->EffectiveDims = GAIA_XY_Z_M; break; case GAIA_SHP_POINTM: case GAIA_SHP_POLYLINEM: case GAIA_SHP_POLYGONM: case GAIA_SHP_MULTIPOINTM: shp->EffectiveDims = GAIA_XY_M; break; default: shp->EffectiveDims = GAIA_XY; break; } shp->flShp = fl_shp; shp->flShx = fl_shx; shp->flDbf = fl_dbf; shp->Dbf = dbf_list; /* saving the SHP buffer */ shp->BufShp = buf_shp; shp->ShpBfsz = buf_size; /* allocating DBF buffer */ shp->BufDbf = malloc (sizeof (unsigned char) * dbf_reclen); shp->DbfHdsz = dbf_size + 1; shp->DbfReclen = dbf_reclen; shp->Valid = 1; shp->endian_arch = endian_arch; return; unsupported_conversion: /* illegal charset */ if (shp->LastError) free (shp->LastError); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); return; no_file: /* one of shapefile's files can't be accessed */ if (shp->LastError) free (shp->LastError); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); if (fl_shx) fclose (fl_shx); if (fl_shp) fclose (fl_shp); if (fl_dbf) fclose (fl_dbf); return; dbf_bad_magic: /* the DBF has an invalid magin number */ if (shp->LastError) free (shp->LastError); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); gaiaFreeDbfList (dbf_list); if (buf_shp) free (buf_shp); fclose (fl_shx); fclose (fl_shp); fclose (fl_dbf); return; error: /* the shapefile is invalid or corrupted */ if (shp->LastError) free (shp->LastError); sprintf (errMsg, "'%s' is corrupted / has invalid format", path); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); gaiaFreeDbfList (dbf_list); if (buf_shp) free (buf_shp); fclose (fl_shx); fclose (fl_shp); fclose (fl_dbf); return; unsupported: /* the shapefile has an unrecognized shape type */ if (shp->LastError) free (shp->LastError); sprintf (errMsg, "'%s' shape=%d is not supported", path, shape); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); gaiaFreeDbfList (dbf_list); if (buf_shp) free (buf_shp); fclose (fl_shx); fclose (fl_shp); if (fl_dbf) fclose (fl_dbf); return; illegal_dbf: /* the DBF-file contains unsupported data types */ if (shp->LastError) free (shp->LastError); sprintf (errMsg, "'%s.dbf' contains unsupported data types", path); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); gaiaFreeDbfList (dbf_list); if (buf_shp) free (buf_shp); fclose (fl_shx); fclose (fl_shp); if (fl_dbf) fclose (fl_dbf); return; conversion_error: /* libiconv error */ if (shp->LastError) free (shp->LastError); sprintf (errMsg, "'%s.dbf' field name: invalid character sequence", path); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); gaiaFreeDbfList (dbf_list); if (buf_shp) free (buf_shp); fclose (fl_shx); fclose (fl_shp); if (fl_dbf) fclose (fl_dbf); return; } static struct auxdbf_list * alloc_auxdbf (gaiaDbfListPtr dbf_list) { /* allocating the auxiliary DBF struct */ int len; gaiaDbfFieldPtr fld; struct auxdbf_fld *fld_ex; struct auxdbf_list *auxdbf = malloc (sizeof (struct auxdbf_list)); auxdbf->first = NULL; auxdbf->last = NULL; fld = dbf_list->First; while (fld) { fld_ex = malloc (sizeof (struct auxdbf_fld)); len = strlen (fld->Name); fld_ex->name = malloc (len + 1); strcpy (fld_ex->name, fld->Name); fld_ex->next = NULL; if (auxdbf->first == NULL) auxdbf->first = fld_ex; if (auxdbf->last != NULL) auxdbf->last->next = fld_ex; auxdbf->last = fld_ex; fld = fld->Next; } return auxdbf; } static void free_auxdbf (struct auxdbf_list *auxdbf) { /* freeing an auxiliary DBF struct */ struct auxdbf_fld *n_fld; struct auxdbf_fld *fld = auxdbf->first; while (fld != NULL) { n_fld = fld->next; if (fld->name != NULL) free (fld->name); free (fld); fld = n_fld; } free (auxdbf); } static void truncate_long_name (struct auxdbf_list *list, gaiaDbfFieldPtr xfld) { /* attempting to create a unique short name <= 10 bytes */ char suffix; char buf[16]; struct auxdbf_fld *fld; struct auxdbf_fld *base = NULL; memcpy (buf, xfld->Name, 9); buf[10] = '\0'; fld = list->first; while (fld) { /* identifying the base aux Field */ if (strcmp (xfld->Name, fld->name) == 0) { base = fld; break; } fld = fld->next; } suffix = '0'; while (1) { /* attempting to find a numeric suffix ensuring uniqueness */ int ok = 1; buf[9] = suffix; fld = list->first; while (fld) { if (base != fld) { if (strcasecmp (buf, fld->name) == 0) { /* invalid: already defined */ ok = 0; break; } } fld = fld->next; } if (ok) { strcpy (xfld->Name, buf); if (base != NULL) strcpy (base->name, buf); return; } if (suffix == '9') break; else suffix++; } suffix = 'A'; while (1) { /* attempting to find a letter suffix ensuring uniqueness */ int ok = 1; buf[9] = suffix; fld = list->first; while (fld) { if (base != fld) { if (strcasecmp (buf, fld->name) == 0) { /* invalid: already defined */ ok = 0; break; } } fld = fld->next; } if (ok) { strcpy (xfld->Name, buf); if (base != NULL) strcpy (base->name, buf); return; } if (suffix == 'Z') break; else suffix++; } } GAIAGEO_DECLARE void gaiaOpenShpWrite (gaiaShapefilePtr shp, const char *path, int shape, gaiaDbfListPtr dbf_list, const char *charFrom, const char *charTo) { /* trying to create the shapefile */ FILE *fl_shx = NULL; FILE *fl_shp = NULL; FILE *fl_dbf = NULL; char xpath[1024]; unsigned char *buf_shp = NULL; int buf_size = 1024; unsigned char *dbf_buf = NULL; gaiaDbfFieldPtr fld; char *sys_err; char errMsg[1024]; short dbf_reclen = 0; int shp_size = 0; int shx_size = 0; unsigned short dbf_size = 0; iconv_t iconv_ret; int endian_arch = gaiaEndianArch (); char buf[2048]; char utf8buf[2048]; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else /* not WIN32 */ char *pBuf; #endif size_t len; size_t utf8len; char *pUtf8buf; int defaultId = 1; struct auxdbf_list *auxdbf = NULL; if (charFrom && charTo) { iconv_ret = iconv_open (charTo, charFrom); if (iconv_ret == (iconv_t) (-1)) { sprintf (errMsg, "conversion from '%s' to '%s' not available\n", charFrom, charTo); goto unsupported_conversion; } shp->IconvObj = iconv_ret; } else { sprintf (errMsg, "a NULL charset-name was passed\n"); goto unsupported_conversion; } if (shp->flShp != NULL || shp->flShx != NULL || shp->flDbf != NULL) { sprintf (errMsg, "attempting to reopen an already opened Shapefile\n"); goto unsupported_conversion; } buf_shp = malloc (buf_size); /* trying to open shapefile files */ sprintf (xpath, "%s.shx", path); fl_shx = fopen (xpath, "wb"); if (!fl_shx) { sys_err = strerror (errno); sprintf (errMsg, "unable to open '%s' for writing: %s", xpath, sys_err); goto no_file; } sprintf (xpath, "%s.shp", path); fl_shp = fopen (xpath, "wb"); if (!fl_shp) { sys_err = strerror (errno); sprintf (errMsg, "unable to open '%s' for writing: %s", xpath, sys_err); goto no_file; } sprintf (xpath, "%s.dbf", path); fl_dbf = fopen (xpath, "wb"); if (!fl_dbf) { sys_err = strerror (errno); sprintf (errMsg, "unable to open '%s' for writing: %s", xpath, sys_err); goto no_file; } /* allocating DBF buffer */ dbf_reclen = 1; /* an extra byte is needed because in DBF rows first byte is a marker for deletion */ fld = dbf_list->First; while (fld) { /* computing the DBF record length */ dbf_reclen += fld->Length; fld = fld->Next; } dbf_buf = malloc (dbf_reclen); /* writing an empty SHP file header */ memset (buf_shp, 0, 100); fwrite (buf_shp, 1, 100, fl_shp); shp_size = 50; /* note: shapefile [SHP and SHX] counts sizes in WORDS of 16 bits, not in bytes of 8 bits !!!! */ /* writing an empty SHX file header */ memset (buf_shp, 0, 100); fwrite (buf_shp, 1, 100, fl_shx); shx_size = 50; /* writing the DBF file header */ memset (buf_shp, '\0', 32); fwrite (buf_shp, 1, 32, fl_dbf); dbf_size = 32; /* note: DBF counts sizes in bytes */ auxdbf = alloc_auxdbf (dbf_list); fld = dbf_list->First; while (fld) { /* exporting DBF Fields specifications */ memset (buf_shp, 0, 32); if (strlen (fld->Name) > 10) { /* long name: attempting to safely truncate */ truncate_long_name (auxdbf, fld); } strcpy (buf, fld->Name); len = strlen (buf); utf8len = 2048; pBuf = buf; pUtf8buf = utf8buf; if (iconv ((iconv_t) (shp->IconvObj), &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) sprintf (buf, "FLD#%d", defaultId++); else { memcpy (buf, utf8buf, 2048 - utf8len); buf[2048 - utf8len] = '\0'; if (strlen (buf) > 10) sprintf (buf, "FLD#%d", defaultId++); } memcpy (buf_shp, buf, strlen (buf)); *(buf_shp + 11) = fld->Type; *(buf_shp + 16) = fld->Length; *(buf_shp + 17) = fld->Decimals; fwrite (buf_shp, 1, 32, fl_dbf); dbf_size += 32; fld = fld->Next; } free_auxdbf (auxdbf); fwrite ("\r", 1, 1, fl_dbf); /* this one is a special DBF delimiter that closes file header */ dbf_size++; /* setting up the SHP struct */ len = strlen (path); shp->Path = malloc (len + 1); strcpy (shp->Path, path); shp->ReadOnly = 0; switch (shape) { /* setting up SHAPE and dimensions */ case GAIA_POINT: shp->Shape = GAIA_SHP_POINT; shp->EffectiveType = GAIA_POINT; shp->EffectiveDims = GAIA_XY; break; case GAIA_POINTZ: shp->Shape = GAIA_SHP_POINTZ; shp->EffectiveType = GAIA_POINT; shp->EffectiveDims = GAIA_XY_Z; break; case GAIA_POINTM: shp->Shape = GAIA_SHP_POINTM; shp->EffectiveType = GAIA_POINT; shp->EffectiveDims = GAIA_XY_M; break; case GAIA_POINTZM: shp->Shape = GAIA_SHP_POINTZ; shp->EffectiveType = GAIA_POINT; shp->EffectiveDims = GAIA_XY_Z_M; break; case GAIA_MULTIPOINT: shp->Shape = GAIA_SHP_MULTIPOINT; shp->EffectiveType = GAIA_MULTIPOINT; shp->EffectiveDims = GAIA_XY; break; case GAIA_MULTIPOINTZ: shp->Shape = GAIA_SHP_MULTIPOINTZ; shp->EffectiveType = GAIA_MULTIPOINT; shp->EffectiveDims = GAIA_XY_Z; break; case GAIA_MULTIPOINTM: shp->Shape = GAIA_SHP_MULTIPOINTM; shp->EffectiveType = GAIA_MULTIPOINT; shp->EffectiveDims = GAIA_XY_M; break; case GAIA_MULTIPOINTZM: shp->Shape = GAIA_SHP_MULTIPOINTZ; shp->EffectiveType = GAIA_MULTIPOINT; shp->EffectiveDims = GAIA_XY_Z_M; break; case GAIA_LINESTRING: shp->Shape = GAIA_SHP_POLYLINE; shp->EffectiveType = GAIA_LINESTRING; shp->EffectiveDims = GAIA_XY; break; case GAIA_LINESTRINGZ: shp->Shape = GAIA_SHP_POLYLINEZ; shp->EffectiveType = GAIA_LINESTRING; shp->EffectiveDims = GAIA_XY_Z; break; case GAIA_LINESTRINGM: shp->Shape = GAIA_SHP_POLYLINEM; shp->EffectiveType = GAIA_LINESTRING; shp->EffectiveDims = GAIA_XY_M; break; case GAIA_LINESTRINGZM: shp->Shape = GAIA_SHP_POLYLINEZ; shp->EffectiveType = GAIA_LINESTRING; shp->EffectiveDims = GAIA_XY_Z_M; break; case GAIA_MULTILINESTRING: shp->Shape = GAIA_SHP_POLYLINE; shp->EffectiveType = GAIA_MULTILINESTRING; shp->EffectiveDims = GAIA_XY; break; case GAIA_MULTILINESTRINGZ: shp->Shape = GAIA_SHP_POLYLINEZ; shp->EffectiveType = GAIA_MULTILINESTRING; shp->EffectiveDims = GAIA_XY_Z; break; case GAIA_MULTILINESTRINGM: shp->Shape = GAIA_SHP_POLYLINEM; shp->EffectiveType = GAIA_MULTILINESTRING; shp->EffectiveDims = GAIA_XY_M; break; case GAIA_MULTILINESTRINGZM: shp->Shape = GAIA_SHP_POLYLINEZ; shp->EffectiveType = GAIA_MULTILINESTRING; shp->EffectiveDims = GAIA_XY_Z_M; break; case GAIA_POLYGON: shp->Shape = GAIA_SHP_POLYGON; shp->EffectiveType = GAIA_POLYGON; shp->EffectiveDims = GAIA_XY; break; case GAIA_POLYGONZ: shp->Shape = GAIA_SHP_POLYGONZ; shp->EffectiveType = GAIA_POLYGON; shp->EffectiveDims = GAIA_XY_Z; break; case GAIA_POLYGONM: shp->Shape = GAIA_SHP_POLYGONM; shp->EffectiveType = GAIA_POLYGON; shp->EffectiveDims = GAIA_XY_M; break; case GAIA_POLYGONZM: shp->Shape = GAIA_SHP_POLYGONZ; shp->EffectiveType = GAIA_POLYGON; shp->EffectiveDims = GAIA_XY_Z_M; break; case GAIA_MULTIPOLYGON: shp->Shape = GAIA_SHP_POLYGON; shp->EffectiveType = GAIA_MULTIPOLYGON; shp->EffectiveDims = GAIA_XY; break; case GAIA_MULTIPOLYGONZ: shp->Shape = GAIA_SHP_POLYGONZ; shp->EffectiveType = GAIA_MULTIPOLYGON; shp->EffectiveDims = GAIA_XY_Z; break; case GAIA_MULTIPOLYGONM: shp->Shape = GAIA_SHP_POLYGONM; shp->EffectiveType = GAIA_MULTIPOLYGON; shp->EffectiveDims = GAIA_XY_M; break; case GAIA_MULTIPOLYGONZM: shp->Shape = GAIA_SHP_POLYGONZ; shp->EffectiveType = GAIA_MULTIPOLYGON; shp->EffectiveDims = GAIA_XY_Z_M; break; }; shp->flShp = fl_shp; shp->flShx = fl_shx; shp->flDbf = fl_dbf; shp->Dbf = dbf_list; shp->BufShp = buf_shp; shp->ShpBfsz = buf_size; shp->BufDbf = dbf_buf; shp->DbfHdsz = dbf_size + 1; shp->DbfReclen = dbf_reclen; shp->DbfSize = dbf_size; shp->DbfRecno = 0; shp->ShpSize = shp_size; shp->ShxSize = shx_size; shp->MinX = DBL_MAX; shp->MinY = DBL_MAX; shp->MaxX = -DBL_MAX; shp->MaxY = -DBL_MAX; shp->Valid = 1; shp->endian_arch = endian_arch; return; unsupported_conversion: /* illegal charset */ if (shp->LastError) free (shp->LastError); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); return; no_file: /* one of shapefile's files can't be created/opened */ if (shp->LastError) free (shp->LastError); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); if (buf_shp) free (buf_shp); if (fl_shx) fclose (fl_shx); if (fl_shp) fclose (fl_shp); if (fl_dbf) fclose (fl_dbf); return; } static double to_sqlite_julian_date (int year, int month, int day, double *julian) { /* trying to convert an 'YYYY-MM-DD' date into a JulianDate [double] */ int Y; int M; int D; int A; int B; int X1; int X2; if (year < 1900 || year > 2400) return 0; if (month < 1 || month > 12) return 0; if (day < 1) return 0; switch (month) { case 2: if ((year / 4) == 0) { if (day > 29) return 0; } else { if (day > 28) return 0; } break; case 4: case 6: case 9: case 11: if (day > 30) return 0; break; default: if (day > 31) return 0; }; /* computing the Julian date */ Y = year; M = month; D = day; if (M <= 2) { Y--; M += 12; } A = Y / 100; B = 2 - A + (A / 4); X1 = 36525 * (Y + 4716) / 100; X2 = 306001 * (M + 1) / 10000; *julian = (double) (X1 + X2 + D + B - 1524.5); return 1; } static int parseDbfField (unsigned char *buf_dbf, void *iconv_obj, gaiaDbfFieldPtr pFld, int text_dates) { /* parsing a generic DBF field */ unsigned char buf[512]; char utf8buf[2048]; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else /* not WIN32 */ char *pBuf; #endif size_t len; size_t utf8len; char *pUtf8buf; int i; memcpy (buf, buf_dbf + pFld->Offset + 1, pFld->Length); buf[pFld->Length] = '\0'; if (*buf == '\0') gaiaSetNullValue (pFld); else { if (pFld->Type == 'N') { /* NUMERIC value */ if (pFld->Decimals > 0 || pFld->Length > 18) gaiaSetDoubleValue (pFld, atof ((char *) buf)); else gaiaSetIntValue (pFld, atoll ((char *) buf)); } else if (pFld->Type == 'M') { /* MEMO value - assumed to always be NULL */ gaiaSetNullValue (pFld); } else if (pFld->Type == 'F') { /* FLOAT value */ gaiaSetDoubleValue (pFld, atof ((char *) buf)); } else if (pFld->Type == 'D') { /* DATE value */ if (text_dates) { /* assuming to be plain text */ gaiaSetStrValue (pFld, (char *) buf); } else { if (strlen ((char *) buf) != 8) gaiaSetNullValue (pFld); else { /* converting into a Julian Date */ double julian; char date[5]; int year = 0; int month = 0; int day = 0; date[0] = buf[0]; date[1] = buf[1]; date[2] = buf[2]; date[3] = buf[3]; date[4] = '\0'; year = atoi (date); date[0] = buf[4]; date[1] = buf[5]; date[2] = '\0'; month = atoi (date); date[0] = buf[6]; date[1] = buf[7]; date[2] = '\0'; day = atoi (date); if (to_sqlite_julian_date (year, month, day, &julian)) gaiaSetDoubleValue (pFld, julian); else gaiaSetNullValue (pFld); } } } else if (pFld->Type == 'L') { /* LOGICAL [aka Boolean] value */ if (*buf == '1' || *buf == 't' || *buf == 'T' || *buf == 'Y' || *buf == 'y') gaiaSetIntValue (pFld, 1); else gaiaSetIntValue (pFld, 0); } else { /* CHARACTER [aka String, Text] value */ /* Sandro 2013-01-07 / fixing an issue reported by Filip Arlet for (i = strlen ((char *) buf) - 1; i > 1; i--) */ for (i = strlen ((char *) buf) - 1; i >= 0; i--) { /* cleaning up trailing spaces */ if (buf[i] == ' ') buf[i] = '\0'; else break; } len = strlen ((char *) buf); utf8len = 2048; pBuf = (char *) buf; pUtf8buf = utf8buf; if (iconv ((iconv_t) (iconv_obj), &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) return 0; memcpy (buf, utf8buf, 2048 - utf8len); buf[2048 - utf8len] = '\0'; gaiaSetStrValue (pFld, (char *) buf); } } return 1; } struct shp_ring_item { /* a RING item [to be reassembled into a (Multi)Polygon] */ gaiaRingPtr Ring; int IsExterior; gaiaRingPtr Mother; struct shp_ring_item *Next; }; struct shp_ring_collection { /* a collection of RING items */ struct shp_ring_item *First; struct shp_ring_item *Last; }; static void shp_free_rings (struct shp_ring_collection *ringsColl) { /* memory cleanup: rings collection */ struct shp_ring_item *p; struct shp_ring_item *pN; p = ringsColl->First; while (p) { pN = p->Next; if (p->Ring) gaiaFreeRing (p->Ring); free (p); p = pN; } } static void shp_add_ring (struct shp_ring_collection *ringsColl, gaiaRingPtr ring) { /* inserting a ring into the rings collection */ struct shp_ring_item *p = malloc (sizeof (struct shp_ring_item)); p->Ring = ring; gaiaMbrRing (ring); gaiaClockwise (ring); /* accordingly to SHP rules interior/exterior depends on direction */ p->IsExterior = ring->Clockwise; p->Mother = NULL; p->Next = NULL; /* updating the linked list */ if (ringsColl->First == NULL) ringsColl->First = p; if (ringsColl->Last != NULL) ringsColl->Last->Next = p; ringsColl->Last = p; } static int shp_check_rings (gaiaRingPtr exterior, gaiaRingPtr candidate) { /* / speditively checks if the candidate could be an interior Ring / contained into the exterior Ring */ double z; double m; double x0; double y0; double x1; double y1; int mid; int ret0; int ret1; if (candidate->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (candidate->Coords, 0, &x0, &y0, &z); } else if (candidate->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (candidate->Coords, 0, &x0, &y0, &m); } else if (candidate->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (candidate->Coords, 0, &x0, &y0, &z, &m); } else { gaiaGetPoint (candidate->Coords, 0, &x0, &y0); } mid = candidate->Points / 2; if (candidate->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (candidate->Coords, mid, &x1, &y1, &z); } else if (candidate->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (candidate->Coords, mid, &x1, &y1, &m); } else if (candidate->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (candidate->Coords, mid, &x1, &y1, &z, &m); } else { gaiaGetPoint (candidate->Coords, mid, &x1, &y1); } /* testing if the first point falls on the exterior ring surface */ ret0 = gaiaIsPointOnRingSurface (exterior, x0, y0); /* testing if the second point falls on the exterior ring surface */ ret1 = gaiaIsPointOnRingSurface (exterior, x1, y1); if (ret0 || ret1) return 1; return 0; } static int shp_mbr_contains (gaiaRingPtr r1, gaiaRingPtr r2) { /* checks if the first Ring contains the second one - MBR based */ int ok_1 = 0; int ok_2 = 0; int ok_3 = 0; int ok_4 = 0; if (r2->MinX >= r1->MinX && r2->MinX <= r1->MaxX) ok_1 = 1; if (r2->MaxX >= r1->MinX && r2->MaxX <= r1->MaxX) ok_2 = 1; if (r2->MinY >= r1->MinY && r2->MinY <= r1->MaxY) ok_3 = 1; if (r2->MaxY >= r1->MinY && r2->MaxY <= r1->MaxY) ok_4 = 1; if (ok_1 && ok_2 && ok_3 && ok_4) return 1; return 0; } static void shp_arrange_rings (struct shp_ring_collection *ringsColl) { /* / arranging Rings so to associate any interior ring / to the containing exterior ring */ struct shp_ring_item *pInt; struct shp_ring_item *pExt; pExt = ringsColl->First; while (pExt != NULL) { /* looping on Exterior Rings */ if (pExt->IsExterior) { pInt = ringsColl->First; while (pInt != NULL) { /* looping on Interior Rings */ if (pInt->IsExterior == 0 && pInt->Mother == NULL && shp_mbr_contains (pExt->Ring, pInt->Ring)) { /* ok, matches */ if (shp_check_rings (pExt->Ring, pInt->Ring)) pInt->Mother = pExt->Ring; } pInt = pInt->Next; } } pExt = pExt->Next; } pExt = ringsColl->First; while (pExt != NULL) { if (pExt->IsExterior == 0 && pExt->Mother == NULL) { /* orphan ring: promoting to Exterior */ pExt->IsExterior = 1; } pExt = pExt->Next; } } static void shp_build_area (struct shp_ring_collection *ringsColl, gaiaGeomCollPtr geom) { /* building the final (Multi)Polygon Geometry */ gaiaPolygonPtr polyg; struct shp_ring_item *pExt; struct shp_ring_item *pInt; pExt = ringsColl->First; while (pExt != NULL) { if (pExt->IsExterior) { /* creating a new Polygon */ polyg = gaiaInsertPolygonInGeomColl (geom, pExt->Ring); pInt = ringsColl->First; while (pInt != NULL) { if (pExt->Ring == pInt->Mother) { /* adding an interior ring to current POLYGON */ gaiaAddRingToPolyg (polyg, pInt->Ring); /* releasing Ring ownership */ pInt->Ring = NULL; } pInt = pInt->Next; } /* releasing Ring ownership */ pExt->Ring = NULL; } pExt = pExt->Next; } } GAIAGEO_DECLARE int gaiaReadShpEntity (gaiaShapefilePtr shp, int current_row, int srid) { return gaiaReadShpEntity_ex (shp, current_row, srid, 0); } GAIAGEO_DECLARE int gaiaReadShpEntity_ex (gaiaShapefilePtr shp, int current_row, int srid, int text_dates) { /* trying to read an entity from shapefile */ unsigned char buf[512]; int len; int rd; int skpos; int offset; int off_shp; int sz; int shape; double x; double y; double z; double m; int points; int n; int n1; int base; int baseZ; int baseM; int start; int end; int iv; int ind; int max_size; int min_size; int hasM; char errMsg[1024]; gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line = NULL; gaiaRingPtr ring = NULL; gaiaDbfFieldPtr pFld; struct shp_ring_collection ringsColl; /* initializing the RING collection */ ringsColl.First = NULL; ringsColl.Last = NULL; /* positioning and reading the SHX file */ offset = 100 + (current_row * 8); /* 100 bytes for the header + current row displacement; each SHX row = 8 bytes */ skpos = fseek (shp->flShx, offset, SEEK_SET); if (skpos != 0) goto eof; rd = fread (buf, sizeof (unsigned char), 8, shp->flShx); if (rd != 8) goto eof; off_shp = gaiaImport32 (buf, GAIA_BIG_ENDIAN, shp->endian_arch); /* positioning and reading the DBF file */ offset = shp->DbfHdsz + (current_row * shp->DbfReclen); skpos = fseek (shp->flDbf, offset, SEEK_SET); if (skpos != 0) goto error; rd = fread (shp->BufDbf, sizeof (unsigned char), shp->DbfReclen, shp->flDbf); if (rd != shp->DbfReclen) goto error; /* positioning and reading corresponding SHP entity - geometry */ offset = off_shp * 2; skpos = fseek (shp->flShp, offset, SEEK_SET); if (skpos != 0) goto error; rd = fread (buf, sizeof (unsigned char), 12, shp->flShp); if (rd != 12) goto error; sz = gaiaImport32 (buf + 4, GAIA_BIG_ENDIAN, shp->endian_arch); shape = gaiaImport32 (buf + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (shape == GAIA_SHP_NULL) { /* handling a NULL shape */ goto null_shape; } else if (shape != shp->Shape) goto error; if ((sz * 2) > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger buffer */ free (shp->BufShp); shp->ShpBfsz = sz * 2; shp->BufShp = malloc (sizeof (unsigned char) * shp->ShpBfsz); } if (shape == GAIA_SHP_POINT) { /* shape point */ rd = fread (shp->BufShp, sizeof (unsigned char), 16, shp->flShp); if (rd != 16) goto error; x = gaiaImport64 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (shp->EffectiveDims == GAIA_XY_Z) { geom = gaiaAllocGeomCollXYZ (); gaiaAddPointToGeomCollXYZ (geom, x, y, 0.0); } else if (shp->EffectiveDims == GAIA_XY_M) { geom = gaiaAllocGeomCollXYM (); gaiaAddPointToGeomCollXYM (geom, x, y, 0.0); } else if (shp->EffectiveDims == GAIA_XY_Z_M) { geom = gaiaAllocGeomCollXYZM (); gaiaAddPointToGeomCollXYZM (geom, x, y, 0.0, 0.0); } else { geom = gaiaAllocGeomColl (); gaiaAddPointToGeomColl (geom, x, y); } geom->DeclaredType = GAIA_POINT; geom->Srid = srid; } if (shape == GAIA_SHP_POINTZ) { /* shape point Z */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) { /* required by some buggish SHP (e.g. the GDAL/OGR ones) */ if (rd != 24) goto error; } x = gaiaImport64 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); z = gaiaImport64 (shp->BufShp + 16, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (rd == 24) m = 0.0; else m = gaiaImport64 (shp->BufShp + 24, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (shp->EffectiveDims == GAIA_XY_Z) { geom = gaiaAllocGeomCollXYZ (); gaiaAddPointToGeomCollXYZ (geom, x, y, z); } else if (shp->EffectiveDims == GAIA_XY_M) { geom = gaiaAllocGeomCollXYM (); gaiaAddPointToGeomCollXYM (geom, x, y, m); } else if (shp->EffectiveDims == GAIA_XY_Z_M) { geom = gaiaAllocGeomCollXYZM (); gaiaAddPointToGeomCollXYZM (geom, x, y, z, m); } else { geom = gaiaAllocGeomColl (); gaiaAddPointToGeomColl (geom, x, y); } geom->DeclaredType = GAIA_POINT; geom->Srid = srid; } if (shape == GAIA_SHP_POINTM) { /* shape point M */ rd = fread (shp->BufShp, sizeof (unsigned char), 24, shp->flShp); if (rd != 24) goto error; x = gaiaImport64 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); m = gaiaImport64 (shp->BufShp + 16, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (shp->EffectiveDims == GAIA_XY_Z) { geom = gaiaAllocGeomCollXYZ (); gaiaAddPointToGeomCollXYZ (geom, x, y, 0.0); } else if (shp->EffectiveDims == GAIA_XY_M) { geom = gaiaAllocGeomCollXYM (); gaiaAddPointToGeomCollXYM (geom, x, y, m); } else if (shp->EffectiveDims == GAIA_XY_Z_M) { geom = gaiaAllocGeomCollXYZM (); gaiaAddPointToGeomCollXYZM (geom, x, y, 0.0, m); } else { geom = gaiaAllocGeomColl (); gaiaAddPointToGeomColl (geom, x, y); } geom->DeclaredType = GAIA_POINT; geom->Srid = srid; } if (shape == GAIA_SHP_POLYLINE) { /* shape polyline */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto error; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); n1 = gaiaImport32 (shp->BufShp + 4, GAIA_LITTLE_ENDIAN, shp->endian_arch); base = 8 + (n * 4); start = 0; for (ind = 0; ind < n; ind++) { if (ind < (n - 1)) end = gaiaImport32 (shp->BufShp + 8 + ((ind + 1) * 4), GAIA_LITTLE_ENDIAN, shp->endian_arch); else end = n1; points = end - start; if (shp->EffectiveDims == GAIA_XY_Z) line = gaiaAllocLinestringXYZ (points); else if (shp->EffectiveDims == GAIA_XY_M) line = gaiaAllocLinestringXYM (points); else if (shp->EffectiveDims == GAIA_XY_Z_M) line = gaiaAllocLinestringXYZM (points); else line = gaiaAllocLinestring (points); points = 0; for (iv = start; iv < end; iv++) { x = gaiaImport64 (shp->BufShp + base + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + base + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (shp->EffectiveDims == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, points, x, y, 0.0); } else if (shp->EffectiveDims == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, points, x, y, 0.0); } else if (shp->EffectiveDims == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, points, x, y, 0.0, 0.0); } else { gaiaSetPoint (line->Coords, points, x, y); } start++; points++; } if (!geom) { if (shp->EffectiveDims == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (shp->EffectiveDims == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (shp->EffectiveDims == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); if (shp->EffectiveType == GAIA_LINESTRING) geom->DeclaredType = GAIA_LINESTRING; else geom->DeclaredType = GAIA_MULTILINESTRING; geom->Srid = srid; } gaiaInsertLinestringInGeomColl (geom, line); } } if (shape == GAIA_SHP_POLYLINEZ) { /* shape polyline Z */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto error; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); n1 = gaiaImport32 (shp->BufShp + 4, GAIA_LITTLE_ENDIAN, shp->endian_arch); hasM = 0; max_size = 38 + (2 * n) + (n1 * 16); /* size [in 16 bits words !!!] ZM */ min_size = 30 + (2 * n) + (n1 * 12); /* size [in 16 bits words !!!] Z-only */ if (sz < min_size) goto error; if (sz == max_size) hasM = 1; base = 8 + (n * 4); baseZ = base + (n1 * 16) + 16; baseM = baseZ + (n1 * 8) + 16; start = 0; for (ind = 0; ind < n; ind++) { if (ind < (n - 1)) end = gaiaImport32 (shp->BufShp + 8 + ((ind + 1) * 4), GAIA_LITTLE_ENDIAN, shp->endian_arch); else end = n1; points = end - start; if (shp->EffectiveDims == GAIA_XY_Z) line = gaiaAllocLinestringXYZ (points); else if (shp->EffectiveDims == GAIA_XY_M) line = gaiaAllocLinestringXYM (points); else if (shp->EffectiveDims == GAIA_XY_Z_M) line = gaiaAllocLinestringXYZM (points); else line = gaiaAllocLinestring (points); points = 0; for (iv = start; iv < end; iv++) { x = gaiaImport64 (shp->BufShp + base + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + base + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); z = gaiaImport64 (shp->BufShp + baseZ + (iv * 8), GAIA_LITTLE_ENDIAN, shp->endian_arch); if (hasM) m = gaiaImport64 (shp->BufShp + baseM + (iv * 8), GAIA_LITTLE_ENDIAN, shp->endian_arch); else m = 0.0; if (m < SHAPEFILE_NO_DATA) m = 0.0; if (shp->EffectiveDims == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, points, x, y, z); } else if (shp->EffectiveDims == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, points, x, y, m); } else if (shp->EffectiveDims == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, points, x, y, z, m); } else { gaiaSetPoint (line->Coords, points, x, y); } start++; points++; } if (!geom) { if (shp->EffectiveDims == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (shp->EffectiveDims == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (shp->EffectiveDims == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); if (shp->EffectiveType == GAIA_LINESTRING) geom->DeclaredType = GAIA_LINESTRING; else geom->DeclaredType = GAIA_MULTILINESTRING; geom->Srid = srid; } gaiaInsertLinestringInGeomColl (geom, line); } } if (shape == GAIA_SHP_POLYLINEM) { /* shape polyline M */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto error; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); n1 = gaiaImport32 (shp->BufShp + 4, GAIA_LITTLE_ENDIAN, shp->endian_arch); hasM = 0; max_size = 30 + (2 * n) + (n1 * 12); /* size [in 16 bits words !!!] M */ min_size = 22 + (2 * n) + (n1 * 8); /* size [in 16 bits words !!!] no-M */ if (sz < min_size) goto error; if (sz == max_size) hasM = 1; base = 8 + (n * 4); baseM = base + (n1 * 16) + 16; start = 0; for (ind = 0; ind < n; ind++) { if (ind < (n - 1)) end = gaiaImport32 (shp->BufShp + 8 + ((ind + 1) * 4), GAIA_LITTLE_ENDIAN, shp->endian_arch); else end = n1; points = end - start; if (shp->EffectiveDims == GAIA_XY_Z) line = gaiaAllocLinestringXYZ (points); else if (shp->EffectiveDims == GAIA_XY_M) line = gaiaAllocLinestringXYM (points); else if (shp->EffectiveDims == GAIA_XY_Z_M) line = gaiaAllocLinestringXYZM (points); else line = gaiaAllocLinestring (points); points = 0; for (iv = start; iv < end; iv++) { x = gaiaImport64 (shp->BufShp + base + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + base + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (hasM) m = gaiaImport64 (shp->BufShp + baseM + (iv * 8), GAIA_LITTLE_ENDIAN, shp->endian_arch); else m = 0.0; if (m < SHAPEFILE_NO_DATA) m = 0.0; if (shp->EffectiveDims == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, points, x, y, 0.0); } else if (shp->EffectiveDims == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, points, x, y, m); } else if (shp->EffectiveDims == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, points, x, y, 0.0, m); } else { gaiaSetPoint (line->Coords, points, x, y); } start++; points++; } if (!geom) { if (shp->EffectiveDims == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (shp->EffectiveDims == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (shp->EffectiveDims == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); if (shp->EffectiveType == GAIA_LINESTRING) geom->DeclaredType = GAIA_LINESTRING; else geom->DeclaredType = GAIA_MULTILINESTRING; geom->Srid = srid; } gaiaInsertLinestringInGeomColl (geom, line); } } if (shape == GAIA_SHP_POLYGON) { /* shape polygon */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto error; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); n1 = gaiaImport32 (shp->BufShp + 4, GAIA_LITTLE_ENDIAN, shp->endian_arch); base = 8 + (n * 4); start = 0; for (ind = 0; ind < n; ind++) { if (ind < (n - 1)) end = gaiaImport32 (shp->BufShp + 8 + ((ind + 1) * 4), GAIA_LITTLE_ENDIAN, shp->endian_arch); else end = n1; points = end - start; if (shp->EffectiveDims == GAIA_XY_Z) ring = gaiaAllocRingXYZ (points); else if (shp->EffectiveDims == GAIA_XY_M) ring = gaiaAllocRingXYM (points); else if (shp->EffectiveDims == GAIA_XY_Z_M) ring = gaiaAllocRingXYZM (points); else ring = gaiaAllocRing (points); points = 0; for (iv = start; iv < end; iv++) { x = gaiaImport64 (shp->BufShp + base + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + base + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (shp->EffectiveDims == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, points, x, y, 0.0); } else if (shp->EffectiveDims == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, points, x, y, 0.0); } else if (shp->EffectiveDims == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, points, x, y, 0.0, 0.0); } else { gaiaSetPoint (ring->Coords, points, x, y); } start++; points++; } shp_add_ring (&ringsColl, ring); } shp_arrange_rings (&ringsColl); /* allocating the final geometry */ if (shp->EffectiveDims == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (shp->EffectiveDims == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (shp->EffectiveDims == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); if (shp->EffectiveType == GAIA_POLYGON) geom->DeclaredType = GAIA_POLYGON; else geom->DeclaredType = GAIA_MULTIPOLYGON; geom->Srid = srid; shp_build_area (&ringsColl, geom); } if (shape == GAIA_SHP_POLYGONZ) { /* shape polygon Z */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto error; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); n1 = gaiaImport32 (shp->BufShp + 4, GAIA_LITTLE_ENDIAN, shp->endian_arch); hasM = 0; max_size = 38 + (2 * n) + (n1 * 16); /* size [in 16 bits words !!!] ZM */ min_size = 30 + (2 * n) + (n1 * 12); /* size [in 16 bits words !!!] Z-only */ if (sz < min_size) goto error; if (sz == max_size) hasM = 1; base = 8 + (n * 4); baseZ = base + (n1 * 16) + 16; baseM = baseZ + (n1 * 8) + 16; start = 0; for (ind = 0; ind < n; ind++) { if (ind < (n - 1)) end = gaiaImport32 (shp->BufShp + 8 + ((ind + 1) * 4), GAIA_LITTLE_ENDIAN, shp->endian_arch); else end = n1; points = end - start; if (shp->EffectiveDims == GAIA_XY_Z) ring = gaiaAllocRingXYZ (points); else if (shp->EffectiveDims == GAIA_XY_M) ring = gaiaAllocRingXYM (points); else if (shp->EffectiveDims == GAIA_XY_Z_M) ring = gaiaAllocRingXYZM (points); else ring = gaiaAllocRing (points); points = 0; for (iv = start; iv < end; iv++) { x = gaiaImport64 (shp->BufShp + base + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + base + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); z = gaiaImport64 (shp->BufShp + baseZ + (iv * 8), GAIA_LITTLE_ENDIAN, shp->endian_arch); if (hasM) m = gaiaImport64 (shp->BufShp + baseM + (iv * 8), GAIA_LITTLE_ENDIAN, shp->endian_arch); else m = 0.0; if (m < SHAPEFILE_NO_DATA) m = 0.0; if (shp->EffectiveDims == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, points, x, y, z); } else if (shp->EffectiveDims == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, points, x, y, m); } else if (shp->EffectiveDims == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, points, x, y, z, m); } else { gaiaSetPoint (ring->Coords, points, x, y); } start++; points++; } shp_add_ring (&ringsColl, ring); } shp_arrange_rings (&ringsColl); /* allocating the final geometry */ if (shp->EffectiveDims == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (shp->EffectiveDims == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (shp->EffectiveDims == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); if (shp->EffectiveType == GAIA_POLYGON) geom->DeclaredType = GAIA_POLYGON; else geom->DeclaredType = GAIA_MULTIPOLYGON; geom->Srid = srid; shp_build_area (&ringsColl, geom); } if (shape == GAIA_SHP_POLYGONM) { /* shape polygon M */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto error; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); n1 = gaiaImport32 (shp->BufShp + 4, GAIA_LITTLE_ENDIAN, shp->endian_arch); hasM = 0; max_size = 30 + (2 * n) + (n1 * 12); /* size [in 16 bits words !!!] M */ min_size = 22 + (2 * n) + (n1 * 8); /* size [in 16 bits words !!!] no-M */ if (sz < min_size) goto error; if (sz == max_size) hasM = 1; base = 8 + (n * 4); baseM = base + (n1 * 16) + 16; start = 0; for (ind = 0; ind < n; ind++) { if (ind < (n - 1)) end = gaiaImport32 (shp->BufShp + 8 + ((ind + 1) * 4), GAIA_LITTLE_ENDIAN, shp->endian_arch); else end = n1; points = end - start; if (shp->EffectiveDims == GAIA_XY_Z) ring = gaiaAllocRingXYZ (points); else if (shp->EffectiveDims == GAIA_XY_M) ring = gaiaAllocRingXYM (points); else if (shp->EffectiveDims == GAIA_XY_Z_M) ring = gaiaAllocRingXYZM (points); else ring = gaiaAllocRing (points); points = 0; for (iv = start; iv < end; iv++) { x = gaiaImport64 (shp->BufShp + base + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + base + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (hasM) m = gaiaImport64 (shp->BufShp + baseM + (iv * 8), GAIA_LITTLE_ENDIAN, shp->endian_arch); m = 0.0; if (m < SHAPEFILE_NO_DATA) m = 0.0; if (shp->EffectiveDims == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, points, x, y, 0.0); } else if (shp->EffectiveDims == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, points, x, y, m); } else if (shp->EffectiveDims == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, points, x, y, 0.0, m); } else { gaiaSetPoint (ring->Coords, points, x, y); } start++; points++; } shp_add_ring (&ringsColl, ring); } shp_arrange_rings (&ringsColl); /* allocating the final geometry */ if (shp->EffectiveDims == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (shp->EffectiveDims == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (shp->EffectiveDims == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); if (shp->EffectiveType == GAIA_POLYGON) geom->DeclaredType = GAIA_POLYGON; else geom->DeclaredType = GAIA_MULTIPOLYGON; geom->Srid = srid; shp_build_area (&ringsColl, geom); } if (shape == GAIA_SHP_MULTIPOINT) { /* shape multipoint */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto error; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (shp->EffectiveDims == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (shp->EffectiveDims == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (shp->EffectiveDims == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); geom->DeclaredType = GAIA_MULTIPOINT; geom->Srid = srid; for (iv = 0; iv < n; iv++) { x = gaiaImport64 (shp->BufShp + 4 + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + 4 + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (shp->EffectiveDims == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (geom, x, y, 0.0); else if (shp->EffectiveDims == GAIA_XY_M) gaiaAddPointToGeomCollXYM (geom, x, y, 0.0); else if (shp->EffectiveDims == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (geom, x, y, 0.0, 0.0); else gaiaAddPointToGeomColl (geom, x, y); } } if (shape == GAIA_SHP_MULTIPOINTZ) { /* shape multipoint Z */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto error; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); hasM = 0; max_size = 36 + (n * 16); /* size [in 16 bits words !!!] ZM */ min_size = 28 + (n * 12); /* size [in 16 bits words !!!] Z-only */ if (sz < min_size) goto error; if (sz == max_size) hasM = 1; baseZ = 4 + (n * 16) + 16; baseM = baseZ + (n * 8) + 16; if (shp->EffectiveDims == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (shp->EffectiveDims == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (shp->EffectiveDims == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); geom->DeclaredType = GAIA_MULTIPOINT; geom->Srid = srid; for (iv = 0; iv < n; iv++) { x = gaiaImport64 (shp->BufShp + 4 + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + 4 + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); z = gaiaImport64 (shp->BufShp + baseZ + (iv * 8), GAIA_LITTLE_ENDIAN, shp->endian_arch); if (hasM) m = gaiaImport64 (shp->BufShp + baseM + (iv * 8), GAIA_LITTLE_ENDIAN, shp->endian_arch); else m = 0.0; if (m < SHAPEFILE_NO_DATA) m = 0.0; if (shp->EffectiveDims == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (geom, x, y, z); else if (shp->EffectiveDims == GAIA_XY_M) gaiaAddPointToGeomCollXYM (geom, x, y, m); else if (shp->EffectiveDims == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (geom, x, y, z, m); else gaiaAddPointToGeomColl (geom, x, y); } } if (shape == GAIA_SHP_MULTIPOINTM) { /* shape multipoint M */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto error; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto error; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); hasM = 0; max_size = 28 + (n * 12); /* size [in 16 bits words !!!] M */ min_size = 20 + (n * 8); /* size [in 16 bits words !!!] no-M */ if (sz < min_size) goto error; if (sz == max_size) hasM = 1; baseM = 4 + (n * 16) + 16; if (shp->EffectiveDims == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (shp->EffectiveDims == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (shp->EffectiveDims == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); geom->DeclaredType = GAIA_MULTIPOINT; geom->Srid = srid; for (iv = 0; iv < n; iv++) { x = gaiaImport64 (shp->BufShp + 4 + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + 4 + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (hasM) m = gaiaImport64 (shp->BufShp + baseM + (iv * 8), GAIA_LITTLE_ENDIAN, shp->endian_arch); else m = 0.0; if (m < SHAPEFILE_NO_DATA) m = 0.0; if (shp->EffectiveDims == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (geom, x, y, 0.0); else if (shp->EffectiveDims == GAIA_XY_M) gaiaAddPointToGeomCollXYM (geom, x, y, m); else if (shp->EffectiveDims == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (geom, x, y, 0.0, m); else gaiaAddPointToGeomColl (geom, x, y); } } /* setting up the current SHP ENTITY */ null_shape: gaiaResetDbfEntity (shp->Dbf); shp->Dbf->RowId = current_row; shp->Dbf->Geometry = geom; /* fetching the DBF values */ pFld = shp->Dbf->First; while (pFld) { if (!parseDbfField (shp->BufDbf, shp->IconvObj, pFld, text_dates)) goto conversion_error; pFld = pFld->Next; } if (shp->LastError) free (shp->LastError); shp->LastError = NULL; shp_free_rings (&ringsColl); return 1; eof: if (shp->LastError) free (shp->LastError); shp->LastError = NULL; shp_free_rings (&ringsColl); return 0; error: if (shp->LastError) free (shp->LastError); sprintf (errMsg, "'%s' is corrupted / has invalid format", shp->Path); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); shp_free_rings (&ringsColl); return 0; conversion_error: if (shp->LastError) free (shp->LastError); sprintf (errMsg, "Invalid character sequence"); len = strlen (errMsg); shp->LastError = malloc (len + 1); strcpy (shp->LastError, errMsg); shp_free_rings (&ringsColl); return 0; } static void gaiaSaneClockwise (gaiaPolygonPtr polyg) { /* / when exporting POLYGONs to SHAPEFILE, we must guarantee that: / - all EXTERIOR RING must be clockwise / - all INTERIOR RING must be anti-clockwise / / this function checks for the above conditions, / and if needed inverts the rings */ int ib; int iv; int iv2; double x; double y; double z; double m; gaiaRingPtr new_ring; gaiaRingPtr ring = polyg->Exterior; gaiaClockwise (ring); if (!(ring->Clockwise)) { /* exterior ring needs inversion */ if (ring->DimensionModel == GAIA_XY_Z) new_ring = gaiaAllocRingXYZ (ring->Points); else if (ring->DimensionModel == GAIA_XY_M) new_ring = gaiaAllocRingXYM (ring->Points); else if (ring->DimensionModel == GAIA_XY_Z_M) new_ring = gaiaAllocRingXYZM (ring->Points); else new_ring = gaiaAllocRing (ring->Points); iv2 = 0; for (iv = ring->Points - 1; iv >= 0; iv--) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_ring->Coords, iv2, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_ring->Coords, iv2, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_ring->Coords, iv2, x, y, z, m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); gaiaSetPoint (new_ring->Coords, iv2, x, y); } iv2++; } polyg->Exterior = new_ring; gaiaFreeRing (ring); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; gaiaClockwise (ring); if (ring->Clockwise) { /* interior ring needs inversion */ if (ring->DimensionModel == GAIA_XY_Z) new_ring = gaiaAllocRingXYZ (ring->Points); else if (ring->DimensionModel == GAIA_XY_M) new_ring = gaiaAllocRingXYM (ring->Points); else if (ring->DimensionModel == GAIA_XY_Z_M) new_ring = gaiaAllocRingXYZM (ring->Points); else new_ring = gaiaAllocRing (ring->Points); iv2 = 0; for (iv = ring->Points - 1; iv >= 0; iv--) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_ring->Coords, iv2, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_ring->Coords, iv2, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_ring->Coords, iv2, x, y, z, m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); gaiaSetPoint (new_ring->Coords, iv2, x, y); } iv2++; } for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (new_ring->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (new_ring->Coords, iv, &x, &y, &m); gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (new_ring->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaGetPoint (new_ring->Coords, iv, &x, &y); gaiaSetPoint (ring->Coords, iv, x, y); } } gaiaFreeRing (new_ring); } } } GAIAGEO_DECLARE int gaiaWriteShpEntity (gaiaShapefilePtr shp, gaiaDbfListPtr entity) { /* trying to write an entity into shapefile */ char dummy[128]; char fmt[16]; int endian_arch = shp->endian_arch; gaiaDbfFieldPtr fld; int iv; int tot_ln; int tot_v; int tot_pts; int this_size; int ix; double x; double y; double z; double m; int hasM; double minZ; double maxZ; double minM; double maxM; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else /* not WIN32 */ char *pBuf; #endif size_t len; size_t utf8len; char *dynbuf; char *pUtf8buf; char utf8buf[2048]; /* writing the DBF record */ memset (shp->BufDbf, '\0', shp->DbfReclen); *(shp->BufDbf) = ' '; /* in DBF first byte of each row marks for validity or deletion */ fld = entity->First; while (fld) { /* transferring field values */ switch (fld->Type) { case 'L': if (!(fld->Value)) *(shp->BufDbf + fld->Offset) = '?'; else if (fld->Value->Type != GAIA_INT_VALUE) *(shp->BufDbf + fld->Offset + 1) = '?'; else { if (fld->Value->IntValue == 0) *(shp->BufDbf + fld->Offset + 1) = 'N'; else *(shp->BufDbf + fld->Offset + 1) = 'Y'; } break; case 'D': memset (shp->BufDbf + fld->Offset + 1, '0', 8); if (fld->Value) { if (fld->Value->Type == GAIA_TEXT_VALUE) { if (strlen (fld->Value->TxtValue) == 8) memcpy (shp->BufDbf + fld->Offset + 1, fld->Value->TxtValue, 8); } } break; case 'C': memset (shp->BufDbf + fld->Offset + 1, ' ', fld->Length); if (fld->Value) { if (fld->Value->Type == GAIA_TEXT_VALUE) { len = strlen (fld->Value->TxtValue); dynbuf = malloc (len + 1); strcpy (dynbuf, fld->Value->TxtValue); if (len > 512) { dynbuf[512] = '\0'; len = strlen (dynbuf); } utf8len = 2048; pBuf = dynbuf; pUtf8buf = utf8buf; if (iconv ((iconv_t) (shp->IconvObj), &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) { free (dynbuf); goto conversion_error; } memcpy (dynbuf, utf8buf, 2048 - utf8len); dynbuf[2048 - utf8len] = '\0'; if (strlen (dynbuf) < fld->Length) memcpy (shp->BufDbf + fld->Offset + 1, dynbuf, strlen (dynbuf)); else memcpy (shp->BufDbf + fld->Offset + 1, dynbuf, fld->Length); free (dynbuf); } } break; case 'N': memset (shp->BufDbf + fld->Offset + 1, '\0', fld->Length); if (fld->Value) { if (fld->Value->Type == GAIA_INT_VALUE) { sprintf (dummy, FRMT64, fld->Value->IntValue); if (strlen (dummy) <= fld->Length) memcpy (shp->BufDbf + fld->Offset + 1, dummy, strlen (dummy)); } if (fld->Value->Type == GAIA_DOUBLE_VALUE) { sprintf (fmt, "%%1.%df", fld->Decimals); sprintf (dummy, fmt, fld->Value->DblValue); if (strlen (dummy) <= fld->Length) memcpy (shp->BufDbf + fld->Offset + 1, dummy, strlen (dummy)); } } break; }; fld = fld->Next; } if (!(entity->Geometry)) { /* exporting a NULL Shape */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, 2, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* updating current SHX file position [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, 2, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_NULL, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = NULL */ fwrite (shp->BufShp, 1, 12, shp->flShp); (shp->ShpSize) += 6; /* updating current SHP file position [in 16 bits words !!!] */ } else { /* updates the shapefile main MBR-BBOX */ gaiaMbrGeometry (entity->Geometry); if (entity->Geometry->MinX < shp->MinX) shp->MinX = entity->Geometry->MinX; if (entity->Geometry->MaxX > shp->MaxX) shp->MaxX = entity->Geometry->MaxX; if (entity->Geometry->MinY < shp->MinY) shp->MinY = entity->Geometry->MinY; if (entity->Geometry->MaxY > shp->MaxY) shp->MaxY = entity->Geometry->MaxY; if (shp->Shape == GAIA_SHP_POINT) { /* this one is expected to be a POINT */ gaiaPointPtr pt = entity->Geometry->FirstPoint; if (!pt) { strcpy (dummy, "a POINT is expected, but there is no POINT in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } /* inserting POINT entity into SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, 10, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* updating current SHX file position [in 16 bits words !!!] */ /* inserting POINT into SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, 10, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_POINT, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = POINT */ gaiaExport64 (shp->BufShp + 12, pt->X, GAIA_LITTLE_ENDIAN, endian_arch); /* exports X coordinate */ gaiaExport64 (shp->BufShp + 20, pt->Y, GAIA_LITTLE_ENDIAN, endian_arch); /* exports Y coordinate */ fwrite (shp->BufShp, 1, 28, shp->flShp); (shp->ShpSize) += 14; /* updating current SHP file position [in 16 bits words !!!] */ } if (shp->Shape == GAIA_SHP_POINTZ) { /* this one is expected to be a POINT Z */ gaiaPointPtr pt = entity->Geometry->FirstPoint; if (!pt) { strcpy (dummy, "a POINT is expected, but there is no POINT in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } /* inserting POINT Z entity into SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, 18, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* updating current SHX file position [in 16 bits words !!!] */ /* inserting POINT into SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, 18, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_POINTZ, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = POINT Z */ gaiaExport64 (shp->BufShp + 12, pt->X, GAIA_LITTLE_ENDIAN, endian_arch); /* exports X coordinate */ gaiaExport64 (shp->BufShp + 20, pt->Y, GAIA_LITTLE_ENDIAN, endian_arch); /* exports Y coordinate */ gaiaExport64 (shp->BufShp + 28, pt->Z, GAIA_LITTLE_ENDIAN, endian_arch); /* exports Z coordinate */ gaiaExport64 (shp->BufShp + 36, pt->M, GAIA_LITTLE_ENDIAN, endian_arch); /* exports M coordinate */ fwrite (shp->BufShp, 1, 44, shp->flShp); (shp->ShpSize) += 22; /* updating current SHP file position [in 16 bits words !!!] */ } if (shp->Shape == GAIA_SHP_POINTM) { /* this one is expected to be a POINT M */ gaiaPointPtr pt = entity->Geometry->FirstPoint; if (!pt) { strcpy (dummy, "a POINT is expected, but there is no POINT in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } /* inserting POINT entity into SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, 14, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* updating current SHX file position [in 16 bits words !!!] */ /* inserting POINT into SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, 14, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_POINTM, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = POINT M */ gaiaExport64 (shp->BufShp + 12, pt->X, GAIA_LITTLE_ENDIAN, endian_arch); /* exports X coordinate */ gaiaExport64 (shp->BufShp + 20, pt->Y, GAIA_LITTLE_ENDIAN, endian_arch); /* exports Y coordinate */ gaiaExport64 (shp->BufShp + 28, pt->Y, GAIA_LITTLE_ENDIAN, endian_arch); /* exports M coordinate */ fwrite (shp->BufShp, 1, 36, shp->flShp); (shp->ShpSize) += 18; /* updating current SHP file position [in 16 bits words !!!] */ } if (shp->Shape == GAIA_SHP_POLYLINE) { /* this one is expected to be a LINESTRING / MULTILINESTRING */ gaiaLinestringPtr line; tot_ln = 0; tot_v = 0; line = entity->Geometry->FirstLinestring; while (line) { /* computes # lines and total # points */ tot_v += line->Points; tot_ln++; line = line->Next; } if (!tot_ln) { strcpy (dummy, "a LINESTRING is expected, but there is no LINESTRING in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } this_size = 22 + (2 * tot_ln) + (tot_v * 8); /* size [in 16 bits words !!!] for this SHP entity */ if ((this_size * 2) + 1024 > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger one */ free (shp->BufShp); shp->ShpBfsz = (this_size * 2) + 1024; shp->BufShp = malloc (shp->ShpBfsz); } /* inserting LINESTRING or MULTILINESTRING in SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* inserting LINESTRING or MULTILINESTRING in SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_POLYLINE, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = POLYLINE */ gaiaExport64 (shp->BufShp + 12, entity->Geometry->MinX, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the MBR for this geometry */ gaiaExport64 (shp->BufShp + 20, entity->Geometry->MinY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 28, entity->Geometry->MaxX, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 36, entity->Geometry->MaxY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport32 (shp->BufShp + 44, tot_ln, GAIA_LITTLE_ENDIAN, endian_arch); /* exports # lines in this polyline */ gaiaExport32 (shp->BufShp + 48, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); /* exports total # points */ tot_v = 0; /* resets points counter */ ix = 52; /* sets current buffer offset */ line = entity->Geometry->FirstLinestring; while (line) { /* exports start point index for each line */ gaiaExport32 (shp->BufShp + ix, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); tot_v += line->Points; ix += 4; line = line->Next; } line = entity->Geometry->FirstLinestring; while (line) { /* exports points for each line */ for (iv = 0; iv < line->Points; iv++) { /* exports a POINT [x,y] */ if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, x, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } line = line->Next; } fwrite (shp->BufShp, 1, ix, shp->flShp); (shp->ShpSize) += (ix / 2); /* updating current SHP file position [in 16 bits words !!!] */ } if (shp->Shape == GAIA_SHP_POLYLINEZ) { /* this one is expected to be a LINESTRING / MULTILINESTRING Z */ gaiaLinestringPtr line; gaiaZRangeGeometry (entity->Geometry, &minZ, &maxZ); gaiaMRangeGeometry (entity->Geometry, &minM, &maxM); tot_ln = 0; tot_v = 0; line = entity->Geometry->FirstLinestring; while (line) { /* computes # lines and total # points */ tot_v += line->Points; tot_ln++; line = line->Next; } if (!tot_ln) { strcpy (dummy, "a LINESTRING is expected, but there is no LINESTRING in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } hasM = 0; if (shp->EffectiveDims == GAIA_XY_M || shp->EffectiveDims == GAIA_XY_Z_M) hasM = 1; if (hasM) this_size = 38 + (2 * tot_ln) + (tot_v * 16); /* size [in 16 bits words !!!] ZM */ else this_size = 30 + (2 * tot_ln) + (tot_v * 12); /* size [in 16 bits words !!!] Z-only */ if ((this_size * 2) + 1024 > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger one */ free (shp->BufShp); shp->ShpBfsz = (this_size * 2) + 1024; shp->BufShp = malloc (shp->ShpBfsz); } /* inserting LINESTRING or MULTILINESTRING in SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* inserting LINESTRING or MULTILINESTRING in SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_POLYLINEZ, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = POLYLINE Z */ gaiaExport64 (shp->BufShp + 12, entity->Geometry->MinX, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the MBR for this geometry */ gaiaExport64 (shp->BufShp + 20, entity->Geometry->MinY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 28, entity->Geometry->MaxX, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 36, entity->Geometry->MaxY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport32 (shp->BufShp + 44, tot_ln, GAIA_LITTLE_ENDIAN, endian_arch); /* exports # lines in this polyline */ gaiaExport32 (shp->BufShp + 48, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); /* exports total # points */ tot_v = 0; /* resets points counter */ ix = 52; /* sets current buffer offset */ line = entity->Geometry->FirstLinestring; while (line) { /* exports start point index for each line */ gaiaExport32 (shp->BufShp + ix, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); tot_v += line->Points; ix += 4; line = line->Next; } line = entity->Geometry->FirstLinestring; while (line) { /* exports points for each line */ for (iv = 0; iv < line->Points; iv++) { /* exports a POINT [x,y] */ if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, x, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } line = line->Next; } /* exporting the Z-range [min/max] */ gaiaExport64 (shp->BufShp + ix, minZ, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, maxZ, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; line = entity->Geometry->FirstLinestring; while (line) { /* exports Z-values for each line */ for (iv = 0; iv < line->Points; iv++) { /* exports Z-value */ z = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, z, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } line = line->Next; } if (hasM) { /* exporting the M-range [min/max] */ gaiaExport64 (shp->BufShp + ix, minM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, maxM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; line = entity->Geometry->FirstLinestring; while (line) { /* exports M-values for each line */ for (iv = 0; iv < line->Points; iv++) { /* exports M-value */ m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, m, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } line = line->Next; } } fwrite (shp->BufShp, 1, ix, shp->flShp); (shp->ShpSize) += (ix / 2); /* updating current SHP file position [in 16 bits words !!!] */ } if (shp->Shape == GAIA_SHP_POLYLINEM) { /* this one is expected to be a LINESTRING / MULTILINESTRING M */ gaiaLinestringPtr line; gaiaMRangeGeometry (entity->Geometry, &minM, &maxM); tot_ln = 0; tot_v = 0; line = entity->Geometry->FirstLinestring; while (line) { /* computes # lines and total # points */ tot_v += line->Points; tot_ln++; line = line->Next; } if (!tot_ln) { strcpy (dummy, "a LINESTRING is expected, but there is no LINESTRING in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } this_size = 30 + (2 * tot_ln) + (tot_v * 12); /* size [in 16 bits words !!!] for this SHP entity */ if ((this_size * 2) + 1024 > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger one */ free (shp->BufShp); shp->ShpBfsz = (this_size * 2) + 1024; shp->BufShp = malloc (shp->ShpBfsz); } /* inserting LINESTRING or MULTILINESTRING in SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* inserting LINESTRING or MULTILINESTRING in SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_POLYLINEM, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = POLYLINE M */ gaiaExport64 (shp->BufShp + 12, entity->Geometry->MinX, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the MBR for this geometry */ gaiaExport64 (shp->BufShp + 20, entity->Geometry->MinY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 28, entity->Geometry->MaxX, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 36, entity->Geometry->MaxY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport32 (shp->BufShp + 44, tot_ln, GAIA_LITTLE_ENDIAN, endian_arch); /* exports # lines in this polyline */ gaiaExport32 (shp->BufShp + 48, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); /* exports total # points */ tot_v = 0; /* resets points counter */ ix = 52; /* sets current buffer offset */ line = entity->Geometry->FirstLinestring; while (line) { /* exports start point index for each line */ gaiaExport32 (shp->BufShp + ix, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); tot_v += line->Points; ix += 4; line = line->Next; } line = entity->Geometry->FirstLinestring; while (line) { /* exports points for each line */ for (iv = 0; iv < line->Points; iv++) { /* exports a POINT [x,y] */ if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, x, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } line = line->Next; } /* exporting the M-range [min/max] */ gaiaExport64 (shp->BufShp + ix, minM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, maxM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; line = entity->Geometry->FirstLinestring; while (line) { /* exports M-values for each line */ for (iv = 0; iv < line->Points; iv++) { /* exports M-value */ m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, m, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } line = line->Next; } fwrite (shp->BufShp, 1, ix, shp->flShp); (shp->ShpSize) += (ix / 2); /* updating current SHP file position [in 16 bits words !!!] */ } if (shp->Shape == GAIA_SHP_POLYGON) { /* this one is expected to be a POLYGON or a MULTIPOLYGON */ gaiaPolygonPtr polyg; gaiaRingPtr ring; int ib; tot_ln = 0; tot_v = 0; polyg = entity->Geometry->FirstPolygon; while (polyg) { /* computes # rings and total # points */ gaiaSaneClockwise (polyg); /* we must assure that exterior ring is clockwise, and interior rings are anti-clockwise */ ring = polyg->Exterior; /* this one is the exterior ring */ tot_v += ring->Points; tot_ln++; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; tot_v += ring->Points; tot_ln++; } polyg = polyg->Next; } if (!tot_ln) { strcpy (dummy, "a POLYGON is expected, but there is no POLYGON in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } this_size = 22 + (2 * tot_ln) + (tot_v * 8); /* size [in 16 bits words !!!] for this SHP entity */ if ((this_size * 2) + 1024 > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger one */ free (shp->BufShp); shp->ShpBfsz = (this_size * 2) + 1024; shp->BufShp = malloc (shp->ShpBfsz); } /* inserting POLYGON or MULTIPOLYGON in SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* inserting POLYGON or MULTIPOLYGON in SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_POLYGON, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = POLYGON */ gaiaExport64 (shp->BufShp + 12, entity->Geometry->MinX, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the MBR for this geometry */ gaiaExport64 (shp->BufShp + 20, entity->Geometry->MinY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 28, entity->Geometry->MaxX, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 36, entity->Geometry->MaxY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport32 (shp->BufShp + 44, tot_ln, GAIA_LITTLE_ENDIAN, endian_arch); /* exports # rings in this polygon */ gaiaExport32 (shp->BufShp + 48, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); /* exports total # points */ tot_v = 0; /* resets points counter */ ix = 52; /* sets current buffer offset */ polyg = entity->Geometry->FirstPolygon; while (polyg) { /* exports start point index for each line */ ring = polyg->Exterior; /* this one is the exterior ring */ gaiaExport32 (shp->BufShp + ix, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); tot_v += ring->Points; ix += 4; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; gaiaExport32 (shp->BufShp + ix, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); tot_v += ring->Points; ix += 4; } polyg = polyg->Next; } polyg = entity->Geometry->FirstPolygon; while (polyg) { /* exports points for each ring */ ring = polyg->Exterior; /* this one is the exterior ring */ for (iv = 0; iv < ring->Points; iv++) { /* exports a POINT [x,y] - exterior ring */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, x, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { /* exports a POINT [x,y] - interior ring */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, x, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } } polyg = polyg->Next; } fwrite (shp->BufShp, 1, ix, shp->flShp); (shp->ShpSize) += (ix / 2); } if (shp->Shape == GAIA_SHP_POLYGONZ) { /* this one is expected to be a POLYGON or a MULTIPOLYGON Z */ gaiaPolygonPtr polyg; gaiaRingPtr ring; int ib; gaiaZRangeGeometry (entity->Geometry, &minZ, &maxZ); gaiaMRangeGeometry (entity->Geometry, &minM, &maxM); tot_ln = 0; tot_v = 0; polyg = entity->Geometry->FirstPolygon; while (polyg) { /* computes # rings and total # points */ gaiaSaneClockwise (polyg); /* we must assure that exterior ring is clockwise, and interior rings are anti-clockwise */ ring = polyg->Exterior; /* this one is the exterior ring */ tot_v += ring->Points; tot_ln++; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; tot_v += ring->Points; tot_ln++; } polyg = polyg->Next; } if (!tot_ln) { strcpy (dummy, "a POLYGON is expected, but there is no POLYGON in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } hasM = 0; if (shp->EffectiveDims == GAIA_XY_M || shp->EffectiveDims == GAIA_XY_Z_M) hasM = 1; if (hasM) this_size = 38 + (2 * tot_ln) + (tot_v * 16); /* size [in 16 bits words !!!] ZM */ else this_size = 30 + (2 * tot_ln) + (tot_v * 12); /* size [in 16 bits words !!!] Z-only */ if ((this_size * 2) + 1024 > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger one */ free (shp->BufShp); shp->ShpBfsz = (this_size * 2) + 1024; shp->BufShp = malloc (shp->ShpBfsz); } /* inserting POLYGON or MULTIPOLYGON in SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* inserting POLYGON or MULTIPOLYGON in SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_POLYGONZ, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = POLYGON Z */ gaiaExport64 (shp->BufShp + 12, entity->Geometry->MinX, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the MBR for this geometry */ gaiaExport64 (shp->BufShp + 20, entity->Geometry->MinY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 28, entity->Geometry->MaxX, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 36, entity->Geometry->MaxY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport32 (shp->BufShp + 44, tot_ln, GAIA_LITTLE_ENDIAN, endian_arch); /* exports # rings in this polygon */ gaiaExport32 (shp->BufShp + 48, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); /* exports total # points */ tot_v = 0; /* resets points counter */ ix = 52; /* sets current buffer offset */ polyg = entity->Geometry->FirstPolygon; while (polyg) { /* exports start point index for each line */ ring = polyg->Exterior; /* this one is the exterior ring */ gaiaExport32 (shp->BufShp + ix, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); tot_v += ring->Points; ix += 4; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; gaiaExport32 (shp->BufShp + ix, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); tot_v += ring->Points; ix += 4; } polyg = polyg->Next; } polyg = entity->Geometry->FirstPolygon; while (polyg) { /* exports points for each ring */ ring = polyg->Exterior; /* this one is the exterior ring */ for (iv = 0; iv < ring->Points; iv++) { /* exports a POINT [x,y] - exterior ring */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, x, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { /* exports a POINT [x,y] - interior ring */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, x, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } } polyg = polyg->Next; } /* exporting the Z-range [min/max] */ gaiaExport64 (shp->BufShp + ix, minZ, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, maxZ, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; polyg = entity->Geometry->FirstPolygon; while (polyg) { /* exports Z-values for each ring */ ring = polyg->Exterior; /* this one is the exterior ring */ for (iv = 0; iv < ring->Points; iv++) { /* exports Z-values - exterior ring */ z = 0.0; if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, z, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { /* exports Z-values - interior ring */ z = 0.0; if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, z, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } } polyg = polyg->Next; } if (hasM) { /* exporting the M-range [min/max] */ gaiaExport64 (shp->BufShp + ix, minM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, maxM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; polyg = entity->Geometry->FirstPolygon; while (polyg) { /* exports M-values for each ring */ ring = polyg->Exterior; /* this one is the exterior ring */ for (iv = 0; iv < ring->Points; iv++) { /* exports M-values - exterior ring */ m = 0.0; if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, m, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { /* exports M-values - interior ring */ m = 0.0; if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, m, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } } polyg = polyg->Next; } } fwrite (shp->BufShp, 1, ix, shp->flShp); (shp->ShpSize) += (ix / 2); } if (shp->Shape == GAIA_SHP_POLYGONM) { /* this one is expected to be a POLYGON or a MULTIPOLYGON M */ gaiaPolygonPtr polyg; gaiaRingPtr ring; int ib; gaiaMRangeGeometry (entity->Geometry, &minM, &maxM); tot_ln = 0; tot_v = 0; polyg = entity->Geometry->FirstPolygon; while (polyg) { /* computes # rings and total # points */ gaiaSaneClockwise (polyg); /* we must assure that exterior ring is clockwise, and interior rings are anti-clockwise */ ring = polyg->Exterior; /* this one is the exterior ring */ tot_v += ring->Points; tot_ln++; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; tot_v += ring->Points; tot_ln++; } polyg = polyg->Next; } if (!tot_ln) { strcpy (dummy, "a POLYGON is expected, but there is no POLYGON in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } this_size = 30 + (2 * tot_ln) + (tot_v * 12); /* size [in 16 bits words !!!] for this SHP entity */ if ((this_size * 2) + 1024 > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger one */ free (shp->BufShp); shp->ShpBfsz = (this_size * 2) + 1024; shp->BufShp = malloc (shp->ShpBfsz); } /* inserting POLYGON or MULTIPOLYGON in SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* inserting POLYGON or MULTIPOLYGON in SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_POLYGONM, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = POLYGON M */ gaiaExport64 (shp->BufShp + 12, entity->Geometry->MinX, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the MBR for this geometry */ gaiaExport64 (shp->BufShp + 20, entity->Geometry->MinY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 28, entity->Geometry->MaxX, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 36, entity->Geometry->MaxY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport32 (shp->BufShp + 44, tot_ln, GAIA_LITTLE_ENDIAN, endian_arch); /* exports # rings in this polygon */ gaiaExport32 (shp->BufShp + 48, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); /* exports total # points */ tot_v = 0; /* resets points counter */ ix = 52; /* sets current buffer offset */ polyg = entity->Geometry->FirstPolygon; while (polyg) { /* exports start point index for each line */ ring = polyg->Exterior; /* this one is the exterior ring */ gaiaExport32 (shp->BufShp + ix, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); tot_v += ring->Points; ix += 4; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; gaiaExport32 (shp->BufShp + ix, tot_v, GAIA_LITTLE_ENDIAN, endian_arch); tot_v += ring->Points; ix += 4; } polyg = polyg->Next; } polyg = entity->Geometry->FirstPolygon; while (polyg) { /* exports points for each ring */ ring = polyg->Exterior; /* this one is the exterior ring */ for (iv = 0; iv < ring->Points; iv++) { /* exports a POINT [x,y] - exterior ring */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, x, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { /* exports a POINT [x,y] - interior ring */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, x, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } } polyg = polyg->Next; } /* exporting the M-range [min/max] */ gaiaExport64 (shp->BufShp + ix, minM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, maxM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; polyg = entity->Geometry->FirstPolygon; while (polyg) { /* exports M-values for each ring */ ring = polyg->Exterior; /* this one is the exterior ring */ for (iv = 0; iv < ring->Points; iv++) { /* exports M-values - exterior ring */ m = 0.0; if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, m, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* that ones are the interior rings */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { /* exports M-values - interior ring */ m = 0.0; if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } gaiaExport64 (shp->BufShp + ix, m, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; } } polyg = polyg->Next; } fwrite (shp->BufShp, 1, ix, shp->flShp); (shp->ShpSize) += (ix / 2); } if (shp->Shape == GAIA_SHP_MULTIPOINT) { /* this one is expected to be a MULTIPOINT */ gaiaPointPtr pt; tot_pts = 0; pt = entity->Geometry->FirstPoint; while (pt) { /* computes # points */ tot_pts++; pt = pt->Next; } if (!tot_pts) { strcpy (dummy, "a MULTIPOINT is expected, but there is no POINT/MULTIPOINT in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } this_size = 20 + (tot_pts * 8); /* size [in 16 bits words !!!] for this SHP entity */ if ((this_size * 2) + 1024 > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger one */ free (shp->BufShp); shp->ShpBfsz = (this_size * 2) + 1024; shp->BufShp = malloc (shp->ShpBfsz); } /* inserting MULTIPOINT in SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* inserting MULTIPOINT in SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_MULTIPOINT, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = MULTIPOINT */ gaiaExport64 (shp->BufShp + 12, entity->Geometry->MinX, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the MBR for this geometry */ gaiaExport64 (shp->BufShp + 20, entity->Geometry->MinY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 28, entity->Geometry->MaxX, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 36, entity->Geometry->MaxY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport32 (shp->BufShp + 44, tot_pts, GAIA_LITTLE_ENDIAN, endian_arch); /* exports total # points */ ix = 48; /* sets current buffer offset */ pt = entity->Geometry->FirstPoint; while (pt) { /* exports each point */ gaiaExport64 (shp->BufShp + ix, pt->X, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, pt->Y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; pt = pt->Next; } fwrite (shp->BufShp, 1, ix, shp->flShp); (shp->ShpSize) += (ix / 2); /* updating current SHP file position [in 16 bits words !!!] */ } if (shp->Shape == GAIA_SHP_MULTIPOINTZ) { /* this one is expected to be a MULTIPOINT Z */ gaiaPointPtr pt; gaiaZRangeGeometry (entity->Geometry, &minZ, &maxZ); gaiaMRangeGeometry (entity->Geometry, &minM, &maxM); tot_pts = 0; pt = entity->Geometry->FirstPoint; while (pt) { /* computes # points */ tot_pts++; pt = pt->Next; } if (!tot_pts) { strcpy (dummy, "a MULTIPOINT is expected, but there is no POINT/MULTIPOINT in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } hasM = 0; if (shp->EffectiveDims == GAIA_XY_M || shp->EffectiveDims == GAIA_XY_Z_M) hasM = 1; if (hasM) this_size = 36 + (tot_pts * 16); /* size [in 16 bits words !!!] ZM */ else this_size = 28 + (tot_pts * 12); /* size [in 16 bits words !!!] Z-only */ if ((this_size * 2) + 1024 > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger one */ free (shp->BufShp); shp->ShpBfsz = (this_size * 2) + 1024; shp->BufShp = malloc (shp->ShpBfsz); } /* inserting MULTIPOINT in SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* inserting MULTIPOINT in SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_MULTIPOINTZ, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = MULTIPOINT Z */ gaiaExport64 (shp->BufShp + 12, entity->Geometry->MinX, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the MBR for this geometry */ gaiaExport64 (shp->BufShp + 20, entity->Geometry->MinY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 28, entity->Geometry->MaxX, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 36, entity->Geometry->MaxY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport32 (shp->BufShp + 44, tot_pts, GAIA_LITTLE_ENDIAN, endian_arch); /* exports total # points */ ix = 48; /* sets current buffer offset */ pt = entity->Geometry->FirstPoint; while (pt) { /* exports each point */ gaiaExport64 (shp->BufShp + ix, pt->X, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, pt->Y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; pt = pt->Next; } /* exporting the Z-range [min/max] */ gaiaExport64 (shp->BufShp + ix, minZ, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, maxZ, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; pt = entity->Geometry->FirstPoint; while (pt) { /* exports Z-values */ gaiaExport64 (shp->BufShp + ix, pt->Z, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; pt = pt->Next; } if (hasM) { /* exporting the M-range [min/max] */ gaiaExport64 (shp->BufShp + ix, minM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, maxM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; pt = entity->Geometry->FirstPoint; while (pt) { /* exports M-values */ gaiaExport64 (shp->BufShp + ix, pt->M, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; pt = pt->Next; } } fwrite (shp->BufShp, 1, ix, shp->flShp); (shp->ShpSize) += (ix / 2); /* updating current SHP file position [in 16 bits words !!!] */ } if (shp->Shape == GAIA_SHP_MULTIPOINTM) { /* this one is expected to be a MULTIPOINT M */ gaiaPointPtr pt; gaiaMRangeGeometry (entity->Geometry, &minM, &maxM); tot_pts = 0; pt = entity->Geometry->FirstPoint; while (pt) { /* computes # points */ tot_pts++; pt = pt->Next; } if (!tot_pts) { strcpy (dummy, "a MULTIPOINT is expected, but there is no POINT/MULTIPOINT in geometry"); if (shp->LastError) free (shp->LastError); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } this_size = 28 + (tot_pts * 12); /* size [in 16 bits words !!!] for this SHP entity */ if ((this_size * 2) + 1024 > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger one */ free (shp->BufShp); shp->ShpBfsz = (this_size * 2) + 1024; shp->BufShp = malloc (shp->ShpBfsz); } /* inserting MULTIPOINT in SHX file */ gaiaExport32 (shp->BufShp, shp->ShpSize, GAIA_BIG_ENDIAN, endian_arch); /* exports current SHP file position */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entitiy size [in 16 bits words !!!] */ fwrite (shp->BufShp, 1, 8, shp->flShx); (shp->ShxSize) += 4; /* inserting MULTIPOINT in SHP file */ gaiaExport32 (shp->BufShp, shp->DbfRecno + 1, GAIA_BIG_ENDIAN, endian_arch); /* exports entity ID */ gaiaExport32 (shp->BufShp + 4, this_size, GAIA_BIG_ENDIAN, endian_arch); /* exports entity size [in 16 bits words !!!] */ gaiaExport32 (shp->BufShp + 8, GAIA_SHP_MULTIPOINTM, GAIA_LITTLE_ENDIAN, endian_arch); /* exports geometry type = MULTIPOINT M */ gaiaExport64 (shp->BufShp + 12, entity->Geometry->MinX, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the MBR for this geometry */ gaiaExport64 (shp->BufShp + 20, entity->Geometry->MinY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 28, entity->Geometry->MaxX, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (shp->BufShp + 36, entity->Geometry->MaxY, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport32 (shp->BufShp + 44, tot_pts, GAIA_LITTLE_ENDIAN, endian_arch); /* exports total # points */ ix = 48; /* sets current buffer offset */ pt = entity->Geometry->FirstPoint; while (pt) { /* exports each point */ gaiaExport64 (shp->BufShp + ix, pt->X, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, pt->Y, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; pt = pt->Next; } /* exporting the M-range [min/max] */ gaiaExport64 (shp->BufShp + ix, minM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; gaiaExport64 (shp->BufShp + ix, maxM, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; pt = entity->Geometry->FirstPoint; while (pt) { /* exports M-values */ gaiaExport64 (shp->BufShp + ix, pt->M, GAIA_LITTLE_ENDIAN, endian_arch); ix += 8; pt = pt->Next; } fwrite (shp->BufShp, 1, ix, shp->flShp); (shp->ShpSize) += (ix / 2); /* updating current SHP file position [in 16 bits words !!!] */ } } /* inserting entity in DBF file */ fwrite (shp->BufDbf, 1, shp->DbfReclen, shp->flDbf); (shp->DbfRecno)++; return 1; conversion_error: if (shp->LastError) free (shp->LastError); sprintf (dummy, "Invalid character sequence"); len = strlen (dummy); shp->LastError = malloc (len + 1); strcpy (shp->LastError, dummy); return 0; } GAIAGEO_DECLARE void gaiaFlushShpHeaders (gaiaShapefilePtr shp) { /* updates the various file headers */ FILE *fl_shp = shp->flShp; FILE *fl_shx = shp->flShx; FILE *fl_dbf = shp->flDbf; int shp_size = shp->ShpSize; int shx_size = shp->ShxSize; int dbf_size = shp->DbfSize; int dbf_reclen = shp->DbfReclen; int dbf_recno = shp->DbfRecno; int endian_arch = shp->endian_arch; double minx = shp->MinX; double miny = shp->MinY; double maxx = shp->MaxX; double maxy = shp->MaxY; unsigned char *buf_shp = shp->BufShp; /* writing the SHP file header */ fseek (fl_shp, 0, SEEK_SET); /* repositioning at SHP file start */ gaiaExport32 (buf_shp, 9994, GAIA_BIG_ENDIAN, endian_arch); /* SHP magic number */ gaiaExport32 (buf_shp + 4, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 8, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 12, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 16, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 20, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 24, shp_size, GAIA_BIG_ENDIAN, endian_arch); /* SHP file size - measured in 16 bits words !!! */ gaiaExport32 (buf_shp + 28, 1000, GAIA_LITTLE_ENDIAN, endian_arch); /* version */ gaiaExport32 (buf_shp + 32, shp->Shape, GAIA_LITTLE_ENDIAN, endian_arch); /* ESRI shape */ gaiaExport64 (buf_shp + 36, minx, GAIA_LITTLE_ENDIAN, endian_arch); /* the MBR/BBOX for the whole shapefile */ gaiaExport64 (buf_shp + 44, miny, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 52, maxx, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 60, maxy, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 68, 0.0, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 76, 0.0, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 84, 0.0, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 92, 0.0, GAIA_LITTLE_ENDIAN, endian_arch); fwrite (buf_shp, 1, 100, fl_shp); /* writing the SHX file header */ fseek (fl_shx, 0, SEEK_SET); /* repositioning at SHX file start */ gaiaExport32 (buf_shp, 9994, GAIA_BIG_ENDIAN, endian_arch); /* SHP magic number */ gaiaExport32 (buf_shp + 4, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 8, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 12, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 16, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 20, 0, GAIA_BIG_ENDIAN, endian_arch); gaiaExport32 (buf_shp + 24, shx_size, GAIA_BIG_ENDIAN, endian_arch); /* SHXfile size - measured in 16 bits words !!! */ gaiaExport32 (buf_shp + 28, 1000, GAIA_LITTLE_ENDIAN, endian_arch); /* version */ gaiaExport32 (buf_shp + 32, shp->Shape, GAIA_LITTLE_ENDIAN, endian_arch); /* ESRI shape */ gaiaExport64 (buf_shp + 36, minx, GAIA_LITTLE_ENDIAN, endian_arch); /* the MBR for the whole shapefile */ gaiaExport64 (buf_shp + 44, miny, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 52, maxx, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 60, maxy, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 68, 0.0, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 76, 0.0, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 84, 0.0, GAIA_LITTLE_ENDIAN, endian_arch); gaiaExport64 (buf_shp + 92, 0.0, GAIA_LITTLE_ENDIAN, endian_arch); fwrite (buf_shp, 1, 100, fl_shx); /* writing the DBF file header */ *buf_shp = 0x1a; /* DBF - this is theEOF marker */ fwrite (buf_shp, 1, 1, fl_dbf); fseek (fl_dbf, 0, SEEK_SET); /* repositioning at DBF file start */ memset (buf_shp, '\0', 32); *buf_shp = 0x03; /* DBF magic number */ *(buf_shp + 1) = 1; /* this is supposed to be the last update date [Year, Month, Day], but we ignore it at all */ *(buf_shp + 2) = 1; *(buf_shp + 3) = 1; gaiaExport32 (buf_shp + 4, dbf_recno, GAIA_LITTLE_ENDIAN, endian_arch); /* exports # records in this DBF */ gaiaExport16 (buf_shp + 8, (short) dbf_size, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the file header size */ gaiaExport16 (buf_shp + 10, (short) dbf_reclen, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the record length */ fwrite (buf_shp, 1, 32, fl_dbf); } GAIAGEO_DECLARE void gaiaShpAnalyze (gaiaShapefilePtr shp) { /* analyzing the SHP content, in order to detect if there are LINESTRINGS or MULTILINESTRINGS / the same check is needed in order to detect if there are POLYGONS or MULTIPOLYGONS */ unsigned char buf[512]; int rd; int skpos; int offset; int off_shp; int sz; int shape; int points; int n; int n1; int base; int start; int end; int iv; int ind; double x; double y; int polygons; int ZM_size; int multi = 0; int hasM = 0; int current_row = 0; gaiaRingPtr ring = NULL; while (1) { /* positioning and reading the SHX file */ offset = 100 + (current_row * 8); /* 100 bytes for the header + current row displacement; each SHX row = 8 bytes */ skpos = fseek (shp->flShx, offset, SEEK_SET); if (skpos != 0) goto exit; rd = fread (buf, sizeof (unsigned char), 8, shp->flShx); if (rd != 8) goto exit; off_shp = gaiaImport32 (buf, GAIA_BIG_ENDIAN, shp->endian_arch); /* positioning and reading corresponding SHP entity - geometry */ offset = off_shp * 2; skpos = fseek (shp->flShp, offset, SEEK_SET); if (skpos != 0) goto exit; rd = fread (buf, sizeof (unsigned char), 12, shp->flShp); if (rd != 12) goto exit; sz = gaiaImport32 (buf + 4, GAIA_BIG_ENDIAN, shp->endian_arch); shape = gaiaImport32 (buf + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); if ((sz * 2) > shp->ShpBfsz) { /* current buffer is too small; we need to allocate a bigger buffer */ free (shp->BufShp); shp->ShpBfsz = sz * 2; shp->BufShp = malloc (sizeof (unsigned char) * shp->ShpBfsz); } if (shape == GAIA_SHP_POLYLINE || shape == GAIA_SHP_POLYLINEZ || shape == GAIA_SHP_POLYLINEM) { /* shape polyline */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto exit; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto exit; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); n1 = gaiaImport32 (shp->BufShp + 4, GAIA_LITTLE_ENDIAN, shp->endian_arch); if (n > 1) multi++; if (shape == GAIA_SHP_POLYLINEZ) { ZM_size = 38 + (2 * n) + (n1 * 16); /* size [in 16 bits words !!!] ZM */ if (sz == ZM_size) hasM = 1; } } if (shape == GAIA_SHP_POLYGON || shape == GAIA_SHP_POLYGONZ || shape == GAIA_SHP_POLYGONM) { /* shape polygon */ struct shp_ring_item *pExt; struct shp_ring_collection ringsColl; /* initializing the RING collection */ ringsColl.First = NULL; ringsColl.Last = NULL; rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto exit; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto exit; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); n1 = gaiaImport32 (shp->BufShp + 4, GAIA_LITTLE_ENDIAN, shp->endian_arch); base = 8 + (n * 4); start = 0; for (ind = 0; ind < n; ind++) { if (ind < (n - 1)) end = gaiaImport32 (shp->BufShp + 8 + ((ind + 1) * 4), GAIA_LITTLE_ENDIAN, shp->endian_arch); else end = n1; points = end - start; ring = gaiaAllocRing (points); points = 0; for (iv = start; iv < end; iv++) { x = gaiaImport64 (shp->BufShp + base + (iv * 16), GAIA_LITTLE_ENDIAN, shp->endian_arch); y = gaiaImport64 (shp->BufShp + base + (iv * 16) + 8, GAIA_LITTLE_ENDIAN, shp->endian_arch); gaiaSetPoint (ring->Coords, points, x, y); start++; points++; } shp_add_ring (&ringsColl, ring); ring = NULL; } shp_arrange_rings (&ringsColl); pExt = ringsColl.First; polygons = 0; while (pExt != NULL) { if (pExt->IsExterior) polygons++; pExt = pExt->Next; } shp_free_rings (&ringsColl); if (polygons > 1) multi++; if (shape == GAIA_SHP_POLYGONZ) { ZM_size = 38 + (2 * n) + (n1 * 16); /* size [in 16 bits words !!!] ZM */ if (sz == ZM_size) hasM = 1; } } if (shape == GAIA_SHP_MULTIPOINTZ) { /* shape multipoint Z */ rd = fread (shp->BufShp, sizeof (unsigned char), 32, shp->flShp); if (rd != 32) goto exit; rd = fread (shp->BufShp, sizeof (unsigned char), (sz * 2) - 36, shp->flShp); if (rd != (sz * 2) - 36) goto exit; n = gaiaImport32 (shp->BufShp, GAIA_LITTLE_ENDIAN, shp->endian_arch); ZM_size = 38 + (n * 16); /* size [in 16 bits words !!!] ZM */ if (sz == ZM_size) hasM = 1; } current_row++; } exit: if (ring) gaiaFreeRing (ring); if (shp->LastError) free (shp->LastError); shp->LastError = NULL; /* setting the EffectiveType, as determined by this analysis */ if (shp->Shape == GAIA_SHP_POLYLINE || shp->Shape == GAIA_SHP_POLYLINEZ || shp->Shape == GAIA_SHP_POLYLINEM) { /* SHAPE polyline */ if (multi) shp->EffectiveType = GAIA_MULTILINESTRING; else shp->EffectiveType = GAIA_LINESTRING; } if (shp->Shape == GAIA_SHP_POLYGON || shp->Shape == GAIA_SHP_POLYGONZ || shp->Shape == GAIA_SHP_POLYGONM) { /* SHAPE polygon */ if (multi) shp->EffectiveType = GAIA_MULTIPOLYGON; else shp->EffectiveType = GAIA_POLYGON; } if (shp->Shape == GAIA_SHP_POLYLINEZ || shp->Shape == GAIA_SHP_POLYGONZ || shp->Shape == GAIA_SHP_MULTIPOINTZ) { if (hasM) shp->EffectiveDims = GAIA_XY_Z_M; else shp->EffectiveDims = GAIA_XY_Z; } } GAIAGEO_DECLARE gaiaDbfPtr gaiaAllocDbf () { /* allocates and initializes the DBF object */ gaiaDbfPtr dbf = malloc (sizeof (gaiaDbf)); dbf->endian_arch = 1; dbf->Path = NULL; dbf->flDbf = NULL; dbf->Dbf = NULL; dbf->BufDbf = NULL; dbf->DbfHdsz = 0; dbf->DbfReclen = 0; dbf->DbfSize = 0; dbf->DbfRecno = 0; dbf->Valid = 0; dbf->IconvObj = NULL; dbf->LastError = NULL; return dbf; } GAIAGEO_DECLARE void gaiaFreeDbf (gaiaDbfPtr dbf) { /* frees all memory allocations related to the DBF object */ if (dbf->Path) free (dbf->Path); if (dbf->flDbf) fclose (dbf->flDbf); if (dbf->Dbf) gaiaFreeDbfList (dbf->Dbf); if (dbf->BufDbf) free (dbf->BufDbf); if (dbf->IconvObj) iconv_close ((iconv_t) dbf->IconvObj); if (dbf->LastError) free (dbf->LastError); free (dbf); } GAIAGEO_DECLARE void gaiaOpenDbfRead (gaiaDbfPtr dbf, const char *path, const char *charFrom, const char *charTo) { /* trying to open the DBF and initial checkings */ FILE *fl_dbf = NULL; int rd; unsigned char bf[1024]; int dbf_size; int dbf_reclen = 0; int off_dbf; int ind; char field_name[2048]; char *sys_err; char errMsg[1024]; iconv_t iconv_ret; char utf8buf[2048]; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else /* not WIN32 */ char *pBuf; #endif size_t len; size_t utf8len; char *pUtf8buf; int endian_arch = gaiaEndianArch (); gaiaDbfListPtr dbf_list = NULL; if (charFrom && charTo) { iconv_ret = iconv_open (charTo, charFrom); if (iconv_ret == (iconv_t) (-1)) { sprintf (errMsg, "conversion from '%s' to '%s' not available\n", charFrom, charTo); goto unsupported_conversion; } dbf->IconvObj = iconv_ret; } else { sprintf (errMsg, "a NULL charset-name was passed\n"); goto unsupported_conversion; } if (dbf->flDbf != NULL) { sprintf (errMsg, "attempting to reopen an already opened DBF\n"); goto unsupported_conversion; } fl_dbf = fopen (path, "rb"); if (!fl_dbf) { sys_err = strerror (errno); sprintf (errMsg, "unable to open '%s' for reading: %s", path, sys_err); goto no_file; } /* reading DBF file header */ rd = fread (bf, sizeof (unsigned char), 32, fl_dbf); if (rd != 32) goto error; switch (*bf) { /* checks the DBF magic number */ case 0x03: case 0x83: break; case 0x02: case 0xF8: sprintf (errMsg, "'%s'\ninvalid magic number %02x [FoxBASE format]", path, *bf); goto dbf_bad_magic; case 0xF5: sprintf (errMsg, "'%s'\ninvalid magic number %02x [FoxPro 2.x (or earlier) format]", path, *bf); goto dbf_bad_magic; case 0x30: case 0x31: case 0x32: sprintf (errMsg, "'%s'\ninvalid magic number %02x [Visual FoxPro format]", path, *bf); goto dbf_bad_magic; case 0x43: case 0x63: case 0xBB: case 0xCB: sprintf (errMsg, "'%s'\ninvalid magic number %02x [dBASE IV format]", path, *bf); goto dbf_bad_magic; default: sprintf (errMsg, "'%s'\ninvalid magic number %02x [unknown format]", path, *bf); goto dbf_bad_magic; }; dbf_size = gaiaImport16 (bf + 8, GAIA_LITTLE_ENDIAN, endian_arch); dbf_reclen = gaiaImport16 (bf + 10, GAIA_LITTLE_ENDIAN, endian_arch); dbf_size--; off_dbf = 0; dbf_list = gaiaAllocDbfList (); for (ind = 32; ind < dbf_size; ind += 32) { /* fetches DBF fields definitions */ rd = fread (bf, sizeof (unsigned char), 32, fl_dbf); if (rd != 32) goto error; if (*(bf + 11) == 'M') { /* skipping any MEMO field */ memcpy (field_name, bf, 11); field_name[11] = '\0'; off_dbf += *(bf + 16); spatialite_e ("WARNING: column \"%s\" is of the MEMO type and will be ignored\n", field_name); continue; } memcpy (field_name, bf, 11); field_name[11] = '\0'; len = strlen ((char *) field_name); utf8len = 2048; pBuf = (char *) field_name; pUtf8buf = utf8buf; if (iconv ((iconv_t) (dbf->IconvObj), &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) goto conversion_error; memcpy (field_name, utf8buf, 2048 - utf8len); field_name[2048 - utf8len] = '\0'; gaiaAddDbfField (dbf_list, field_name, *(bf + 11), off_dbf, *(bf + 16), *(bf + 17)); off_dbf += *(bf + 16); } if (!gaiaIsValidDbfList (dbf_list)) { /* invalid DBF */ goto illegal_dbf; } len = strlen (path); dbf->Path = malloc (len + 1); strcpy (dbf->Path, path); dbf->flDbf = fl_dbf; dbf->Dbf = dbf_list; /* allocating DBF buffer */ dbf->BufDbf = malloc (sizeof (unsigned char) * dbf_reclen); dbf->DbfHdsz = dbf_size + 1; dbf->DbfReclen = dbf_reclen; dbf->Valid = 1; dbf->endian_arch = endian_arch; return; unsupported_conversion: /* illegal charset */ if (dbf->LastError) free (dbf->LastError); len = strlen (errMsg); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, errMsg); return; no_file: /* the DBF file can't be accessed */ if (dbf->LastError) free (dbf->LastError); len = strlen (errMsg); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, errMsg); if (fl_dbf) fclose (fl_dbf); return; error: /* the DBF is invalid or corrupted */ if (dbf->LastError) free (dbf->LastError); sprintf (errMsg, "'%s' is corrupted / has invalid format", path); len = strlen (errMsg); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, errMsg); gaiaFreeDbfList (dbf_list); fclose (fl_dbf); return; dbf_bad_magic: /* the DBF has an invalid magic number */ if (dbf->LastError) free (dbf->LastError); len = strlen (errMsg); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, errMsg); gaiaFreeDbfList (dbf_list); fclose (fl_dbf); return; illegal_dbf: /* the DBF-file contains unsupported data types */ if (dbf->LastError) free (dbf->LastError); sprintf (errMsg, "'%s' contains unsupported data types", path); len = strlen (errMsg); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, errMsg); gaiaFreeDbfList (dbf_list); if (fl_dbf) fclose (fl_dbf); return; conversion_error: /* libiconv error */ if (dbf->LastError) free (dbf->LastError); sprintf (errMsg, "'%s' field name: invalid character sequence", path); len = strlen (errMsg); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, errMsg); gaiaFreeDbfList (dbf_list); if (fl_dbf) fclose (fl_dbf); return; } GAIAGEO_DECLARE void gaiaOpenDbfWrite (gaiaDbfPtr dbf, const char *path, const char *charFrom, const char *charTo) { /* trying to create the DBF file */ FILE *fl_dbf = NULL; unsigned char bf[1024]; unsigned char *dbf_buf = NULL; gaiaDbfFieldPtr fld; char *sys_err; char errMsg[1024]; short dbf_reclen = 0; unsigned short dbf_size = 0; iconv_t iconv_ret; char buf[2048]; char utf8buf[2048]; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else /* not WIN32 */ char *pBuf; #endif size_t len; size_t utf8len; char *pUtf8buf; int defaultId = 1; struct auxdbf_list *auxdbf = NULL; if (charFrom && charTo) { iconv_ret = iconv_open (charTo, charFrom); if (iconv_ret == (iconv_t) (-1)) { sprintf (errMsg, "conversion from '%s' to '%s' not available\n", charFrom, charTo); goto unsupported_conversion; } dbf->IconvObj = iconv_ret; } else { sprintf (errMsg, "a NULL charset-name was passed\n"); goto unsupported_conversion; } if (dbf->flDbf != NULL) { sprintf (errMsg, "attempting to reopen an already opened DBF file\n"); goto unsupported_conversion; } /* trying to open the DBF file */ fl_dbf = fopen (path, "wb"); if (!fl_dbf) { sys_err = strerror (errno); sprintf (errMsg, "unable to open '%s' for writing: %s", path, sys_err); goto no_file; } /* allocating DBF buffer */ dbf_reclen = 1; /* an extra byte is needed because in DBF rows first byte is a marker for deletion */ fld = dbf->Dbf->First; while (fld) { /* computing the DBF record length */ dbf_reclen += fld->Length; fld = fld->Next; } dbf_buf = malloc (dbf_reclen); /* writing the DBF file header */ memset (bf, '\0', 32); fwrite (bf, 1, 32, fl_dbf); dbf_size = 32; /* note: DBF counts sizes in bytes */ auxdbf = alloc_auxdbf (dbf->Dbf); fld = dbf->Dbf->First; while (fld) { /* exporting DBF Fields specifications */ memset (bf, 0, 32); if (strlen (fld->Name) > 10) { /* long name: attempting to safely truncate */ truncate_long_name (auxdbf, fld); } strcpy (buf, fld->Name); len = strlen (buf); utf8len = 2048; pBuf = buf; pUtf8buf = utf8buf; if (iconv ((iconv_t) (dbf->IconvObj), &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) sprintf (buf, "FLD#%d", defaultId++); else { memcpy (buf, utf8buf, 2048 - utf8len); buf[2048 - utf8len] = '\0'; if (strlen (buf) > 10) sprintf (buf, "FLD#%d", defaultId++); } memcpy (bf, buf, strlen (buf)); *(bf + 11) = fld->Type; *(bf + 16) = fld->Length; *(bf + 17) = fld->Decimals; fwrite (bf, 1, 32, fl_dbf); dbf_size += 32; fld = fld->Next; } free_auxdbf (auxdbf); fwrite ("\r", 1, 1, fl_dbf); /* this one is a special DBF delimiter that closes file header */ dbf_size++; dbf->Valid = 1; dbf->flDbf = fl_dbf; dbf->BufDbf = dbf_buf; dbf->DbfHdsz = dbf_size + 1; dbf->DbfReclen = dbf_reclen; dbf->DbfSize = dbf_size; dbf->DbfRecno = 0; return; unsupported_conversion: /* illegal charset */ if (dbf->LastError) free (dbf->LastError); len = strlen (errMsg); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, errMsg); return; no_file: /* the DBF file can't be created/opened */ if (dbf->LastError) free (dbf->LastError); len = strlen (errMsg); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, errMsg); if (dbf_buf) free (dbf_buf); if (fl_dbf) fclose (fl_dbf); return; } GAIAGEO_DECLARE int gaiaWriteDbfEntity (gaiaDbfPtr dbf, gaiaDbfListPtr entity) { /* trying to write an entity into some DBF file */ char dummy[128]; char fmt[16]; gaiaDbfFieldPtr fld; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else /* not WIN32 */ char *pBuf; #endif size_t len; size_t utf8len; char *pUtf8buf; char *dynbuf; char utf8buf[2048]; /* writing the DBF record */ memset (dbf->BufDbf, '\0', dbf->DbfReclen); *(dbf->BufDbf) = ' '; /* in DBF first byte of each row marks for validity or deletion */ fld = entity->First; while (fld) { /* transferring field values */ switch (fld->Type) { case 'L': if (!(fld->Value)) *(dbf->BufDbf + fld->Offset) = '?'; else if (fld->Value->Type != GAIA_INT_VALUE) *(dbf->BufDbf + fld->Offset + 1) = '?'; else { if (fld->Value->IntValue == 0) *(dbf->BufDbf + fld->Offset + 1) = 'N'; else *(dbf->BufDbf + fld->Offset + 1) = 'Y'; } break; case 'D': memset (dbf->BufDbf + fld->Offset + 1, '0', 8); if (fld->Value) { if (fld->Value->Type == GAIA_TEXT_VALUE) { if (strlen (fld->Value->TxtValue) == 8) memcpy (dbf->BufDbf + fld->Offset + 1, fld->Value->TxtValue, 8); } } break; case 'C': memset (dbf->BufDbf + fld->Offset + 1, ' ', fld->Length); if (fld->Value) { if (fld->Value->Type == GAIA_TEXT_VALUE) { len = strlen (fld->Value->TxtValue); dynbuf = malloc (len + 1); strcpy (dynbuf, fld->Value->TxtValue); if (len > 512) { dynbuf[512] = '\0'; len = strlen (dynbuf); } utf8len = 2048; pBuf = dynbuf; pUtf8buf = utf8buf; if (iconv ((iconv_t) (dbf->IconvObj), &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) { free (dynbuf); goto conversion_error; } memcpy (dynbuf, utf8buf, 2048 - utf8len); dynbuf[2048 - utf8len] = '\0'; if (strlen (dynbuf) < fld->Length) memcpy (dbf->BufDbf + fld->Offset + 1, dynbuf, strlen (dynbuf)); else memcpy (dbf->BufDbf + fld->Offset + 1, dynbuf, fld->Length); free (dynbuf); } } break; case 'N': memset (dbf->BufDbf + fld->Offset + 1, '\0', fld->Length); if (fld->Value) { if (fld->Value->Type == GAIA_INT_VALUE) { sprintf (dummy, FRMT64, fld->Value->IntValue); if (strlen (dummy) <= fld->Length) memcpy (dbf->BufDbf + fld->Offset + 1, dummy, strlen (dummy)); } if (fld->Value->Type == GAIA_DOUBLE_VALUE) { sprintf (fmt, "%%1.%df", fld->Decimals); sprintf (dummy, fmt, fld->Value->DblValue); if (strlen (dummy) <= fld->Length) memcpy (dbf->BufDbf + fld->Offset + 1, dummy, strlen (dummy)); } } break; }; fld = fld->Next; } /* inserting entity in DBF file */ fwrite (dbf->BufDbf, 1, dbf->DbfReclen, dbf->flDbf); (dbf->DbfRecno)++; return 1; conversion_error: if (dbf->LastError) free (dbf->LastError); sprintf (dummy, "Invalid character sequence"); len = strlen (dummy); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, dummy); return 0; } GAIAGEO_DECLARE void gaiaFlushDbfHeader (gaiaDbfPtr dbf) { /* updates the DBF file header */ FILE *fl_dbf = dbf->flDbf; int dbf_size = dbf->DbfSize; int dbf_reclen = dbf->DbfReclen; int dbf_recno = dbf->DbfRecno; int endian_arch = dbf->endian_arch; unsigned char bf[64]; /* writing the DBF file header */ *bf = 0x1a; /* DBF - this is theEOF marker */ fwrite (bf, 1, 1, fl_dbf); fseek (fl_dbf, 0, SEEK_SET); /* repositioning at DBF file start */ memset (bf, '\0', 32); *bf = 0x03; /* DBF magic number */ *(bf + 1) = 1; /* this is supposed to be the last update date [Year, Month, Day], but we ignore it at all */ *(bf + 2) = 1; *(bf + 3) = 1; gaiaExport32 (bf + 4, dbf_recno, GAIA_LITTLE_ENDIAN, endian_arch); /* exports # records in this DBF */ gaiaExport16 (bf + 8, (short) dbf_size, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the file header size */ gaiaExport16 (bf + 10, (short) dbf_reclen, GAIA_LITTLE_ENDIAN, endian_arch); /* exports the record length */ fwrite (bf, 1, 32, fl_dbf); } GAIAGEO_DECLARE int gaiaReadDbfEntity (gaiaDbfPtr dbf, int current_row, int *deleted) { return gaiaReadDbfEntity_ex (dbf, current_row, deleted, 0); } GAIAGEO_DECLARE int gaiaReadDbfEntity_ex (gaiaDbfPtr dbf, int current_row, int *deleted, int text_dates) { /* trying to read an entity from DBF */ int rd; int skpos; int offset; int len; char errMsg[1024]; gaiaDbfFieldPtr pFld; /* positioning and reading the DBF file */ offset = dbf->DbfHdsz + (current_row * dbf->DbfReclen); skpos = fseek (dbf->flDbf, offset, SEEK_SET); if (skpos != 0) goto eof; rd = fread (dbf->BufDbf, sizeof (unsigned char), dbf->DbfReclen, dbf->flDbf); if (rd != dbf->DbfReclen) goto eof; /* setting up the current DBF ENTITY */ gaiaResetDbfEntity (dbf->Dbf); dbf->Dbf->RowId = current_row; if (*(dbf->BufDbf) == '*') { /* deleted row */ *deleted = 1; if (dbf->LastError) free (dbf->LastError); dbf->LastError = NULL; return 1; } /* fetching the DBF values */ pFld = dbf->Dbf->First; while (pFld) { if (!parseDbfField (dbf->BufDbf, dbf->IconvObj, pFld, text_dates)) goto conversion_error; pFld = pFld->Next; } if (dbf->LastError) free (dbf->LastError); dbf->LastError = NULL; *deleted = 0; return 1; eof: if (dbf->LastError) free (dbf->LastError); dbf->LastError = NULL; return 0; conversion_error: if (dbf->LastError) free (dbf->LastError); sprintf (errMsg, "Invalid character sequence"); len = strlen (errMsg); dbf->LastError = malloc (len + 1); strcpy (dbf->LastError, errMsg); return 0; } #endif /* ICONV enabled/disabled */ libspatialite-4.3.0a/src/gaiageo/Makefile.in0000664000175000017500000014246012573313636015700 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/gaiageo ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) gaiageo_la_LIBADD = am__objects_1 = gaiageo_la-gg_advanced.lo gaiageo_la-gg_endian.lo \ gaiageo_la-gg_geodesic.lo gaiageo_la-gg_geometries.lo \ gaiageo_la-gg_geoscvt.lo gaiageo_la-gg_relations.lo \ gaiageo_la-gg_relations_ext.lo gaiageo_la-gg_lwgeom.lo \ gaiageo_la-gg_extras.lo gaiageo_la-gg_shape.lo \ gaiageo_la-gg_transform.lo gaiageo_la-gg_wkb.lo \ gaiageo_la-gg_wkt.lo gaiageo_la-gg_vanuatu.lo \ gaiageo_la-gg_ewkt.lo gaiageo_la-gg_geoJSON.lo \ gaiageo_la-gg_kml.lo gaiageo_la-gg_gml.lo \ gaiageo_la-gg_voronoj.lo gaiageo_la-gg_xml.lo \ gaiageo_la-gg_matrix.lo am_gaiageo_la_OBJECTS = $(am__objects_1) gaiageo_la_OBJECTS = $(am_gaiageo_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = gaiageo_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(gaiageo_la_LDFLAGS) $(LDFLAGS) -o $@ libgaiageo_la_LIBADD = am__objects_2 = gg_advanced.lo gg_endian.lo gg_geodesic.lo \ gg_geometries.lo gg_geoscvt.lo gg_relations.lo \ gg_relations_ext.lo gg_lwgeom.lo gg_extras.lo gg_shape.lo \ gg_transform.lo gg_wkb.lo gg_wkt.lo gg_vanuatu.lo gg_ewkt.lo \ gg_geoJSON.lo gg_kml.lo gg_gml.lo gg_voronoj.lo gg_xml.lo \ gg_matrix.lo am_libgaiageo_la_OBJECTS = $(am__objects_2) libgaiageo_la_OBJECTS = $(am_libgaiageo_la_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(gaiageo_la_SOURCES) $(libgaiageo_la_SOURCES) DIST_SOURCES = $(gaiageo_la_SOURCES) $(libgaiageo_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = flex lemon AM_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ \ -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libgaiageo.la gaiageo.la GAIAGEO_COMMON_SOURCES = gg_advanced.c \ gg_endian.c \ gg_geodesic.c \ gg_geometries.c \ gg_geoscvt.c \ gg_relations.c \ gg_relations_ext.c \ gg_lwgeom.c \ gg_extras.c \ gg_shape.c \ gg_transform.c \ gg_wkb.c \ gg_wkt.c \ gg_vanuatu.c \ gg_ewkt.c \ gg_geoJSON.c \ gg_kml.c \ gg_gml.c \ gg_voronoj.c \ gg_xml.c \ gg_matrix.c libgaiageo_la_SOURCES = $(GAIAGEO_COMMON_SOURCES) gaiageo_la_SOURCES = $(GAIAGEO_COMMON_SOURCES) gaiageo_la_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ \ -I$(top_srcdir)/src/headers -I. -DLOADABLE_EXTENSION gaiageo_la_LDFLAGS = -module gaiageo_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = Ewkt.h Ewkt.c lex.Ewkt.c \ geoJSON.h geoJSON.c lex.GeoJson.c \ Gml.h Gml.c lex.Gml.c \ Kml.h Kml.c lex.Kml.c \ vanuatuWkt.h vanuatuWkt.c lex.VanuatuWkt.c all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gaiageo/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/gaiageo/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } gaiageo.la: $(gaiageo_la_OBJECTS) $(gaiageo_la_DEPENDENCIES) $(EXTRA_gaiageo_la_DEPENDENCIES) $(AM_V_CCLD)$(gaiageo_la_LINK) $(gaiageo_la_OBJECTS) $(gaiageo_la_LIBADD) $(LIBS) libgaiageo.la: $(libgaiageo_la_OBJECTS) $(libgaiageo_la_DEPENDENCIES) $(EXTRA_libgaiageo_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) $(libgaiageo_la_OBJECTS) $(libgaiageo_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_advanced.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_endian.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_ewkt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_extras.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_geoJSON.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_geodesic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_geometries.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_geoscvt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_gml.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_kml.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_lwgeom.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_matrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_relations.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_relations_ext.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_shape.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_transform.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_vanuatu.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_voronoj.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_wkb.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_wkt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiageo_la-gg_xml.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_advanced.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_endian.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_ewkt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_extras.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_geoJSON.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_geodesic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_geometries.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_geoscvt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_gml.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_kml.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_lwgeom.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_matrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_relations.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_relations_ext.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_shape.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_transform.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_vanuatu.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_voronoj.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_wkb.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_wkt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_xml.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< gaiageo_la-gg_advanced.lo: gg_advanced.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_advanced.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_advanced.Tpo -c -o gaiageo_la-gg_advanced.lo `test -f 'gg_advanced.c' || echo '$(srcdir)/'`gg_advanced.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_advanced.Tpo $(DEPDIR)/gaiageo_la-gg_advanced.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_advanced.c' object='gaiageo_la-gg_advanced.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_advanced.lo `test -f 'gg_advanced.c' || echo '$(srcdir)/'`gg_advanced.c gaiageo_la-gg_endian.lo: gg_endian.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_endian.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_endian.Tpo -c -o gaiageo_la-gg_endian.lo `test -f 'gg_endian.c' || echo '$(srcdir)/'`gg_endian.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_endian.Tpo $(DEPDIR)/gaiageo_la-gg_endian.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_endian.c' object='gaiageo_la-gg_endian.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_endian.lo `test -f 'gg_endian.c' || echo '$(srcdir)/'`gg_endian.c gaiageo_la-gg_geodesic.lo: gg_geodesic.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_geodesic.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_geodesic.Tpo -c -o gaiageo_la-gg_geodesic.lo `test -f 'gg_geodesic.c' || echo '$(srcdir)/'`gg_geodesic.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_geodesic.Tpo $(DEPDIR)/gaiageo_la-gg_geodesic.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_geodesic.c' object='gaiageo_la-gg_geodesic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_geodesic.lo `test -f 'gg_geodesic.c' || echo '$(srcdir)/'`gg_geodesic.c gaiageo_la-gg_geometries.lo: gg_geometries.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_geometries.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_geometries.Tpo -c -o gaiageo_la-gg_geometries.lo `test -f 'gg_geometries.c' || echo '$(srcdir)/'`gg_geometries.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_geometries.Tpo $(DEPDIR)/gaiageo_la-gg_geometries.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_geometries.c' object='gaiageo_la-gg_geometries.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_geometries.lo `test -f 'gg_geometries.c' || echo '$(srcdir)/'`gg_geometries.c gaiageo_la-gg_geoscvt.lo: gg_geoscvt.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_geoscvt.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_geoscvt.Tpo -c -o gaiageo_la-gg_geoscvt.lo `test -f 'gg_geoscvt.c' || echo '$(srcdir)/'`gg_geoscvt.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_geoscvt.Tpo $(DEPDIR)/gaiageo_la-gg_geoscvt.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_geoscvt.c' object='gaiageo_la-gg_geoscvt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_geoscvt.lo `test -f 'gg_geoscvt.c' || echo '$(srcdir)/'`gg_geoscvt.c gaiageo_la-gg_relations.lo: gg_relations.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_relations.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_relations.Tpo -c -o gaiageo_la-gg_relations.lo `test -f 'gg_relations.c' || echo '$(srcdir)/'`gg_relations.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_relations.Tpo $(DEPDIR)/gaiageo_la-gg_relations.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_relations.c' object='gaiageo_la-gg_relations.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_relations.lo `test -f 'gg_relations.c' || echo '$(srcdir)/'`gg_relations.c gaiageo_la-gg_relations_ext.lo: gg_relations_ext.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_relations_ext.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_relations_ext.Tpo -c -o gaiageo_la-gg_relations_ext.lo `test -f 'gg_relations_ext.c' || echo '$(srcdir)/'`gg_relations_ext.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_relations_ext.Tpo $(DEPDIR)/gaiageo_la-gg_relations_ext.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_relations_ext.c' object='gaiageo_la-gg_relations_ext.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_relations_ext.lo `test -f 'gg_relations_ext.c' || echo '$(srcdir)/'`gg_relations_ext.c gaiageo_la-gg_lwgeom.lo: gg_lwgeom.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_lwgeom.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_lwgeom.Tpo -c -o gaiageo_la-gg_lwgeom.lo `test -f 'gg_lwgeom.c' || echo '$(srcdir)/'`gg_lwgeom.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_lwgeom.Tpo $(DEPDIR)/gaiageo_la-gg_lwgeom.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_lwgeom.c' object='gaiageo_la-gg_lwgeom.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_lwgeom.lo `test -f 'gg_lwgeom.c' || echo '$(srcdir)/'`gg_lwgeom.c gaiageo_la-gg_extras.lo: gg_extras.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_extras.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_extras.Tpo -c -o gaiageo_la-gg_extras.lo `test -f 'gg_extras.c' || echo '$(srcdir)/'`gg_extras.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_extras.Tpo $(DEPDIR)/gaiageo_la-gg_extras.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_extras.c' object='gaiageo_la-gg_extras.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_extras.lo `test -f 'gg_extras.c' || echo '$(srcdir)/'`gg_extras.c gaiageo_la-gg_shape.lo: gg_shape.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_shape.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_shape.Tpo -c -o gaiageo_la-gg_shape.lo `test -f 'gg_shape.c' || echo '$(srcdir)/'`gg_shape.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_shape.Tpo $(DEPDIR)/gaiageo_la-gg_shape.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_shape.c' object='gaiageo_la-gg_shape.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_shape.lo `test -f 'gg_shape.c' || echo '$(srcdir)/'`gg_shape.c gaiageo_la-gg_transform.lo: gg_transform.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_transform.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_transform.Tpo -c -o gaiageo_la-gg_transform.lo `test -f 'gg_transform.c' || echo '$(srcdir)/'`gg_transform.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_transform.Tpo $(DEPDIR)/gaiageo_la-gg_transform.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_transform.c' object='gaiageo_la-gg_transform.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_transform.lo `test -f 'gg_transform.c' || echo '$(srcdir)/'`gg_transform.c gaiageo_la-gg_wkb.lo: gg_wkb.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_wkb.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_wkb.Tpo -c -o gaiageo_la-gg_wkb.lo `test -f 'gg_wkb.c' || echo '$(srcdir)/'`gg_wkb.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_wkb.Tpo $(DEPDIR)/gaiageo_la-gg_wkb.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_wkb.c' object='gaiageo_la-gg_wkb.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_wkb.lo `test -f 'gg_wkb.c' || echo '$(srcdir)/'`gg_wkb.c gaiageo_la-gg_wkt.lo: gg_wkt.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_wkt.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_wkt.Tpo -c -o gaiageo_la-gg_wkt.lo `test -f 'gg_wkt.c' || echo '$(srcdir)/'`gg_wkt.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_wkt.Tpo $(DEPDIR)/gaiageo_la-gg_wkt.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_wkt.c' object='gaiageo_la-gg_wkt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_wkt.lo `test -f 'gg_wkt.c' || echo '$(srcdir)/'`gg_wkt.c gaiageo_la-gg_vanuatu.lo: gg_vanuatu.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_vanuatu.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_vanuatu.Tpo -c -o gaiageo_la-gg_vanuatu.lo `test -f 'gg_vanuatu.c' || echo '$(srcdir)/'`gg_vanuatu.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_vanuatu.Tpo $(DEPDIR)/gaiageo_la-gg_vanuatu.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_vanuatu.c' object='gaiageo_la-gg_vanuatu.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_vanuatu.lo `test -f 'gg_vanuatu.c' || echo '$(srcdir)/'`gg_vanuatu.c gaiageo_la-gg_ewkt.lo: gg_ewkt.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_ewkt.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_ewkt.Tpo -c -o gaiageo_la-gg_ewkt.lo `test -f 'gg_ewkt.c' || echo '$(srcdir)/'`gg_ewkt.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_ewkt.Tpo $(DEPDIR)/gaiageo_la-gg_ewkt.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_ewkt.c' object='gaiageo_la-gg_ewkt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_ewkt.lo `test -f 'gg_ewkt.c' || echo '$(srcdir)/'`gg_ewkt.c gaiageo_la-gg_geoJSON.lo: gg_geoJSON.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_geoJSON.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_geoJSON.Tpo -c -o gaiageo_la-gg_geoJSON.lo `test -f 'gg_geoJSON.c' || echo '$(srcdir)/'`gg_geoJSON.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_geoJSON.Tpo $(DEPDIR)/gaiageo_la-gg_geoJSON.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_geoJSON.c' object='gaiageo_la-gg_geoJSON.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_geoJSON.lo `test -f 'gg_geoJSON.c' || echo '$(srcdir)/'`gg_geoJSON.c gaiageo_la-gg_kml.lo: gg_kml.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_kml.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_kml.Tpo -c -o gaiageo_la-gg_kml.lo `test -f 'gg_kml.c' || echo '$(srcdir)/'`gg_kml.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_kml.Tpo $(DEPDIR)/gaiageo_la-gg_kml.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_kml.c' object='gaiageo_la-gg_kml.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_kml.lo `test -f 'gg_kml.c' || echo '$(srcdir)/'`gg_kml.c gaiageo_la-gg_gml.lo: gg_gml.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_gml.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_gml.Tpo -c -o gaiageo_la-gg_gml.lo `test -f 'gg_gml.c' || echo '$(srcdir)/'`gg_gml.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_gml.Tpo $(DEPDIR)/gaiageo_la-gg_gml.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_gml.c' object='gaiageo_la-gg_gml.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_gml.lo `test -f 'gg_gml.c' || echo '$(srcdir)/'`gg_gml.c gaiageo_la-gg_voronoj.lo: gg_voronoj.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_voronoj.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_voronoj.Tpo -c -o gaiageo_la-gg_voronoj.lo `test -f 'gg_voronoj.c' || echo '$(srcdir)/'`gg_voronoj.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_voronoj.Tpo $(DEPDIR)/gaiageo_la-gg_voronoj.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_voronoj.c' object='gaiageo_la-gg_voronoj.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_voronoj.lo `test -f 'gg_voronoj.c' || echo '$(srcdir)/'`gg_voronoj.c gaiageo_la-gg_xml.lo: gg_xml.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_xml.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_xml.Tpo -c -o gaiageo_la-gg_xml.lo `test -f 'gg_xml.c' || echo '$(srcdir)/'`gg_xml.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_xml.Tpo $(DEPDIR)/gaiageo_la-gg_xml.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_xml.c' object='gaiageo_la-gg_xml.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_xml.lo `test -f 'gg_xml.c' || echo '$(srcdir)/'`gg_xml.c gaiageo_la-gg_matrix.lo: gg_matrix.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiageo_la-gg_matrix.lo -MD -MP -MF $(DEPDIR)/gaiageo_la-gg_matrix.Tpo -c -o gaiageo_la-gg_matrix.lo `test -f 'gg_matrix.c' || echo '$(srcdir)/'`gg_matrix.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiageo_la-gg_matrix.Tpo $(DEPDIR)/gaiageo_la-gg_matrix.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_matrix.c' object='gaiageo_la-gg_matrix.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiageo_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiageo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiageo_la-gg_matrix.lo `test -f 'gg_matrix.c' || echo '$(srcdir)/'`gg_matrix.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: 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: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool \ clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/src/gaiageo/Kml.c0000664000175000017500000011117112544707704014516 00000000000000/* Driver template for the LEMON parser generator. ** The author disclaims copyright to this source code. */ /* First off, code is included that follows the "include" declaration ** in the input grammar file. */ #include /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ /* ** These constants (all generated automatically by the parser generator) ** specify the various kinds of tokens (terminals) that the parser ** understands. ** ** Each symbol here is a terminal symbol in the grammar. */ /* Make sure the INTERFACE macro is defined. */ #ifndef INTERFACE #define INTERFACE 1 #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. ** YYCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. ** YYNOCODE is a number of type YYCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. ** YYFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. ** YYACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** ParseTOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. ** YYMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is ParseTOKENTYPE. The entry in the union ** for base tokens is called "yy0". ** YYSTACKDEPTH is the maximum depth of the parser's stack. If ** zero the stack is dynamically sized using realloc() ** ParseARG_SDECL A static variable declaration for the %extra_argument ** ParseARG_PDECL A parameter declaration for the %extra_argument ** ParseARG_STORE Code to store %extra_argument into yypParser ** ParseARG_FETCH Code to extract %extra_argument from yypParser ** YYNSTATE the combined number of states. ** YYNRULE the number of rules in the grammar ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ #define YYCODETYPE unsigned char #define YYNOCODE 28 #define YYACTIONTYPE unsigned char #define ParseTOKENTYPE void * typedef union { int yyinit; ParseTOKENTYPE yy0; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 1000000 #endif #define ParseARG_SDECL struct kml_data *p_data ; #define ParseARG_PDECL , struct kml_data *p_data #define ParseARG_FETCH struct kml_data *p_data = yypParser->p_data #define ParseARG_STORE yypParser->p_data = p_data #define YYNSTATE 49 #define YYNRULE 34 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) /* The yyzerominor constant is used to initialize instances of ** YYMINORTYPE objects to zero. */ static const YYMINORTYPE yyzerominor = { 0 }; /* Define the yytestcase() macro to be a no-op if is not already defined ** otherwise. ** ** Applications can choose to define yytestcase() in the %include section ** to a macro that can assist in verifying code coverage. For production ** code the yytestcase() macro should be turned off. But it is useful ** for testing. */ #ifndef yytestcase #define yytestcase(X) #endif /* Next are the tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement ** functions that take a state number and lookahead value and return an ** action integer. ** ** Suppose the action integer is N. Then the action is determined as ** follows ** ** 0 <= N < YYNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** ** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. ** ** N == YYNSTATE+YYNRULE A syntax error has occurred. ** ** N == YYNSTATE+YYNRULE+1 The parser accepts its input. ** ** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused ** slots in the yy_action[] table. ** ** The action table is constructed as a single large table named yy_action[]. ** Given state S and lookahead X, the action is computed as ** ** yy_action[ yy_shift_ofst[S] + X ] ** ** If the index value yy_shift_ofst[S]+X is out of range or if the value ** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] ** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table ** and that yy_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after ** a reduce action) then the yy_reduce_ofst[] array is used in place of ** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of ** YY_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** ** yy_action[] A single table containing all actions. ** yy_lookahead[] A table containing the lookahead for each entry in ** yy_action. Used to detect hash collisions. ** yy_shift_ofst[] For each state, the offset into yy_action for ** shifting terminals. ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { /* 0 */ 20, 28, 29, 4, 48, 5, 3, 3, 5, 5, /* 10 */ 42, 84, 1, 42, 42, 47, 46, 2, 10, 5, /* 20 */ 21, 12, 32, 23, 42, 38, 22, 6, 49, 23, /* 30 */ 13, 19, 14, 15, 35, 8, 8, 10, 25, 11, /* 40 */ 18, 34, 33, 45, 37, 16, 40, 17, 41, 14, /* 50 */ 9, 23, 43, 7, 45, 27, 30, 26, 31, 36, /* 60 */ 39, 44, 24, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 12, 13, 14, 15, 16, 17, 15, 15, 17, 17, /* 10 */ 22, 10, 11, 22, 22, 24, 24, 15, 18, 17, /* 20 */ 2, 3, 8, 5, 22, 25, 2, 3, 0, 5, /* 30 */ 18, 19, 4, 20, 21, 20, 20, 18, 2, 3, /* 40 */ 2, 26, 26, 5, 25, 20, 21, 20, 21, 4, /* 50 */ 18, 5, 23, 20, 5, 1, 3, 23, 3, 7, /* 60 */ 3, 3, 6, }; #define YY_SHIFT_USE_DFLT (-1) #define YY_SHIFT_MAX 26 static const signed char yy_shift_ofst[] = { /* 0 */ -1, 28, 45, 45, 45, 18, 14, 14, 14, 46, /* 10 */ 46, 14, 14, 24, 38, 14, 14, 14, 49, 36, /* 20 */ 54, 53, 55, 56, 52, 57, 58, }; #define YY_REDUCE_USE_DFLT (-13) #define YY_REDUCE_MAX 18 static const signed char yy_reduce_ofst[] = { /* 0 */ 1, -12, -9, -8, 2, 12, 13, 15, 16, 0, /* 10 */ 19, 25, 27, 32, 29, 33, 33, 33, 34, }; static const YYACTIONTYPE yy_default[] = { /* 0 */ 50, 83, 72, 72, 54, 83, 60, 80, 80, 76, /* 10 */ 76, 61, 59, 83, 83, 64, 66, 62, 83, 83, /* 20 */ 83, 83, 83, 83, 83, 83, 83, 51, 52, 53, /* 30 */ 56, 57, 79, 81, 82, 65, 75, 77, 78, 58, /* 40 */ 67, 63, 68, 69, 70, 71, 73, 74, 55, }; #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: ** ** %fallback ID X Y Z. ** ** appears in the grammar, then ID becomes a fallback token for X, Y, ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ #ifdef YYFALLBACK static const YYCODETYPE yyFallback[] = { }; #endif /* YYFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: ** ** + The state number for the parser at this level of the stack. ** ** + The value of the token stored at this level of the stack. ** (In other words, the "major" token.) ** ** + The semantic value stored at this level of the stack. This is ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ struct yyStackEntry { YYACTIONTYPE stateno; /* The state-number */ YYCODETYPE major; /* The major token value. This is the code ** number for the token at this stack level */ YYMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ struct yyParser { int yyidx; /* Index of top element in stack */ #ifdef YYTRACKMAXSTACKDEPTH int yyidxMax; /* Maximum value of yyidx */ #endif int yyerrcnt; /* Shifts left before out of the error */ ParseARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 int yystksz; /* Current side of the stack */ yyStackEntry *yystack; /* The parser's stack */ #else yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ #endif }; typedef struct yyParser yyParser; #ifndef NDEBUG #include static FILE *yyTraceFILE = 0; static char *yyTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG /* ** Turn parser tracing on by giving a stream to which to write the trace ** and a prompt to preface each trace message. Tracing is turned off ** by making either argument NULL ** ** Inputs: **
    **
  • A FILE* to which trace output should be written. ** If NULL, then tracing is turned off. **
  • A prefix string written at the beginning of every ** line of trace output. If NULL, then tracing is ** turned off. **
** ** Outputs: ** None. */ void ParseTrace (FILE * TraceFILE, char *zTracePrompt) { yyTraceFILE = TraceFILE; yyTracePrompt = zTracePrompt; if (yyTraceFILE == 0) yyTracePrompt = 0; else if (yyTracePrompt == 0) yyTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ static const char *const yyTokenName[] = { "$", "KML_NEWLINE", "KML_END", "KML_CLOSE", "KML_OPEN", "KML_KEYWORD", "KML_EQ", "KML_VALUE", "KML_COORD", "error", "main", "in", "state", "program", "kml_tree", "node", "node_chain", "open_tag", "attr", "attributes", "coord", "coord_chain", "close_tag", "keyword", "extra_nodes", "extra_attr", "extra_coord", }; #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { /* 0 */ "main ::= in", /* 1 */ "in ::=", /* 2 */ "in ::= in state KML_NEWLINE", /* 3 */ "state ::= program", /* 4 */ "program ::= kml_tree", /* 5 */ "kml_tree ::= node", /* 6 */ "kml_tree ::= node_chain", /* 7 */ "node ::= open_tag KML_END KML_CLOSE", /* 8 */ "node ::= open_tag attr KML_END KML_CLOSE", /* 9 */ "node ::= open_tag attributes KML_END KML_CLOSE", /* 10 */ "node ::= open_tag KML_CLOSE", /* 11 */ "node ::= open_tag attr KML_CLOSE", /* 12 */ "node ::= open_tag attributes KML_CLOSE", /* 13 */ "node ::= open_tag KML_CLOSE coord", /* 14 */ "node ::= open_tag KML_CLOSE coord_chain", /* 15 */ "node ::= open_tag attr KML_CLOSE coord", /* 16 */ "node ::= open_tag attr KML_CLOSE coord_chain", /* 17 */ "node ::= open_tag attributes KML_CLOSE coord", /* 18 */ "node ::= open_tag attributes KML_CLOSE coord_chain", /* 19 */ "node ::= close_tag", /* 20 */ "open_tag ::= KML_OPEN keyword", /* 21 */ "close_tag ::= KML_OPEN KML_END keyword KML_CLOSE", /* 22 */ "keyword ::= KML_KEYWORD", /* 23 */ "extra_nodes ::=", /* 24 */ "extra_nodes ::= node extra_nodes", /* 25 */ "node_chain ::= node node extra_nodes", /* 26 */ "attr ::= KML_KEYWORD KML_EQ KML_VALUE", /* 27 */ "extra_attr ::=", /* 28 */ "extra_attr ::= attr extra_attr", /* 29 */ "attributes ::= attr attr extra_attr", /* 30 */ "coord ::= KML_COORD", /* 31 */ "extra_coord ::=", /* 32 */ "extra_coord ::= coord extra_coord", /* 33 */ "coord_chain ::= coord coord extra_coord", }; #endif /* NDEBUG */ #if YYSTACKDEPTH<=0 /* ** Try to increase the size of the parser stack. */ static void yyGrowStack (yyParser * p) { int newSize; yyStackEntry *pNew; newSize = p->yystksz * 2 + 100; pNew = realloc (p->yystack, newSize * sizeof (pNew[0])); if (pNew) { p->yystack = pNew; p->yystksz = newSize; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack grows to %d entries!\n", yyTracePrompt, p->yystksz); } #endif } } #endif /* ** This function allocates a new parser. ** The only argument is a pointer to a function which works like ** malloc. ** ** Inputs: ** A pointer to the function used to allocate memory. ** ** Outputs: ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ void * ParseAlloc (void *(*mallocProc) (size_t)) { yyParser *pParser; pParser = (yyParser *) (*mallocProc) ((size_t) sizeof (yyParser)); if (pParser) { pParser->yyidx = -1; #ifdef YYTRACKMAXSTACKDEPTH pParser->yyidxMax = 0; #endif #if YYSTACKDEPTH<=0 pParser->yystack = NULL; pParser->yystksz = 0; yyGrowStack (pParser); #endif } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ static void yy_destructor (yyParser * yypParser, /* The parser */ YYCODETYPE yymajor, /* Type code for object to destroy */ YYMINORTYPE * yypminor /* The object to be destroyed */ ) { switch (yymajor) { /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a ** reduce or during error processing or when a parser is ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those ** which appear on the RHS of the rule, but which are not used ** inside the C code. */ default: break; /* If no destructor action specified: do nothing */ } } /* ** Pop the parser's stack once. ** ** If there is a destructor routine associated with the token which ** is popped from the stack, then call it. ** ** Return the major token number for the symbol popped. */ static int yy_pop_parser_stack (yyParser * pParser) { YYCODETYPE yymajor; yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; if (pParser->yyidx < 0) return 0; #ifndef NDEBUG if (yyTraceFILE && pParser->yyidx >= 0) { fprintf (yyTraceFILE, "%sPopping %s\n", yyTracePrompt, yyTokenName[yytos->major]); } #endif yymajor = yytos->major; yy_destructor (pParser, yymajor, &yytos->minor); pParser->yyidx--; return yymajor; } /* ** Deallocate and destroy a parser. Destructors are all called for ** all stack elements before shutting the parser down. ** ** Inputs: **
    **
  • A pointer to the parser. This should be a pointer ** obtained from ParseAlloc. **
  • A pointer to a function used to reclaim memory obtained ** from malloc. **
*/ void ParseFree (void *p, /* The parser to be deleted */ void (*freeProc) (void *) /* Function used to reclaim memory */ ) { yyParser *pParser = (yyParser *) p; if (pParser == 0) return; while (pParser->yyidx >= 0) yy_pop_parser_stack (pParser); #if YYSTACKDEPTH<=0 free (pParser->yystack); #endif (*freeProc) ((void *) pParser); } /* ** Return the peak depth of the stack for a parser. */ #ifdef YYTRACKMAXSTACKDEPTH int ParseStackPeak (void *p) { yyParser *pParser = (yyParser *) p; return pParser->yyidxMax; } #endif /* ** Find the appropriate action for a parser given the terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_shift_action (yyParser * pParser, /* The parser */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; int stateno = pParser->yystack[pParser->yyidx].stateno; if (stateno > YY_SHIFT_MAX || (i = yy_shift_ofst[stateno]) == YY_SHIFT_USE_DFLT) { return yy_default[stateno]; } assert (iLookAhead != YYNOCODE); i += iLookAhead; if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { if (iLookAhead > 0) { #ifdef YYFALLBACK YYCODETYPE iFallback; /* Fallback token */ if (iLookAhead < sizeof (yyFallback) / sizeof (yyFallback[0]) && (iFallback = yyFallback[iLookAhead]) != 0) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFALLBACK %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); } #endif return yy_find_shift_action (pParser, iFallback); } #endif #ifdef YYWILDCARD { int j = i - iLookAhead + YYWILDCARD; if (j >= 0 && j < YY_SZ_ACTTAB && yy_lookahead[j] == YYWILDCARD) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sWILDCARD %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); } #endif /* NDEBUG */ return yy_action[j]; } } #endif /* YYWILDCARD */ } return yy_default[stateno]; } else { return yy_action[i]; } } /* ** Find the appropriate action for a parser given the non-terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_reduce_action (int stateno, /* Current state number */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; #ifdef YYERRORSYMBOL if (stateno > YY_REDUCE_MAX) { return yy_default[stateno]; } #else assert (stateno <= YY_REDUCE_MAX); #endif i = yy_reduce_ofst[stateno]; assert (i != YY_REDUCE_USE_DFLT); assert (iLookAhead != YYNOCODE); i += iLookAhead; #ifdef YYERRORSYMBOL if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { return yy_default[stateno]; } #else assert (i >= 0 && i < YY_SZ_ACTTAB); assert (yy_lookahead[i] == iLookAhead); #endif return yy_action[i]; } /* ** The following routine is called if the stack overflows. */ static void yyStackOverflow (yyParser * yypParser, YYMINORTYPE * yypMinor) { ParseARG_FETCH; yypParser->yyidx--; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ spatialite_e ("Giving up. Parser stack overflow\n"); ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ } /* ** Perform a shift action. */ static void yy_shift (yyParser * yypParser, /* The parser to be shifted */ int yyNewState, /* The new state to shift in */ int yyMajor, /* The major token to shift in */ YYMINORTYPE * yypMinor /* Pointer to the minor token to shift in */ ) { yyStackEntry *yytos; yypParser->yyidx++; #ifdef YYTRACKMAXSTACKDEPTH if (yypParser->yyidx > yypParser->yyidxMax) { yypParser->yyidxMax = yypParser->yyidx; } #endif #if YYSTACKDEPTH>0 if (yypParser->yyidx >= YYSTACKDEPTH) { yyStackOverflow (yypParser, yypMinor); return; } #else if (yypParser->yyidx >= yypParser->yystksz) { yyGrowStack (yypParser); if (yypParser->yyidx >= yypParser->yystksz) { yyStackOverflow (yypParser, yypMinor); return; } } #endif yytos = &yypParser->yystack[yypParser->yyidx]; yytos->stateno = (YYACTIONTYPE) yyNewState; yytos->major = (YYCODETYPE) yyMajor; yytos->minor = *yypMinor; #ifndef NDEBUG if (yyTraceFILE && yypParser->yyidx > 0) { int i; fprintf (yyTraceFILE, "%sShift %d\n", yyTracePrompt, yyNewState); fprintf (yyTraceFILE, "%sStack:", yyTracePrompt); for (i = 1; i <= yypParser->yyidx; i++) fprintf (yyTraceFILE, " %s", yyTokenName[yypParser->yystack[i].major]); fprintf (yyTraceFILE, "\n"); } #endif } /* The following table contains information about every rule that ** is used during the reduce. */ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ } yyRuleInfo[] = { { 10, 1}, { 11, 0}, { 11, 3}, { 12, 1}, { 13, 1}, { 14, 1}, { 14, 1}, { 15, 3}, { 15, 4}, { 15, 4}, { 15, 2}, { 15, 3}, { 15, 3}, { 15, 3}, { 15, 3}, { 15, 4}, { 15, 4}, { 15, 4}, { 15, 4}, { 15, 1}, { 17, 2}, { 22, 4}, { 23, 1}, { 24, 0}, { 24, 2}, { 16, 3}, { 18, 3}, { 25, 0}, { 25, 2}, { 19, 3}, { 20, 1}, { 26, 0}, { 26, 2}, { 21, 3},}; static void yy_accept (yyParser *); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. */ static void yy_reduce (yyParser * yypParser, /* The parser */ int yyruleno /* Number of the rule by which to reduce */ ) { int yygoto; /* The next state */ int yyact; /* The next action */ YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ yyStackEntry *yymsp; /* The top of the parser's stack */ int yysize; /* Amount to pop the stack */ ParseARG_FETCH; yymsp = &yypParser->yystack[yypParser->yyidx]; #ifndef NDEBUG if (yyTraceFILE && yyruleno >= 0 && yyruleno < (int) (sizeof (yyRuleName) / sizeof (yyRuleName[0]))) { fprintf (yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, yyRuleName[yyruleno]); } #endif /* NDEBUG */ /* Silence complaints from purify about yygotominor being uninitialized ** in some cases when it is copied into the stack after the following ** switch. yygotominor is uninitialized when a rule reduces that does ** not set the value of its left-hand side nonterminal. Leaving the ** value of the nonterminal uninitialized is utterly harmless as long ** as the value is never used. So really the only thing this code ** accomplishes is to quieten purify. ** ** 2007-01-16: The wireshark project (www.wireshark.org) reports that ** without this code, their parser segfaults. I'm not sure what there ** parser is doing to make this happen. This is the second bug report ** from wireshark this week. Clearly they are stressing Lemon in ways ** that it has not been previously stressed... (SQLite ticket #2172) */ /*memset(&yygotominor, 0, sizeof(yygotominor)); */ yygotominor = yyzerominor; switch (yyruleno) { /* Beginning here are the reduction cases. A typical example ** follows: ** case 0: ** #line ** { ... } // User supplied code ** #line ** break; */ case 5: /* kml_tree ::= node */ case 6: /* kml_tree ::= node_chain */ yytestcase (yyruleno == 6); { p_data->result = yymsp[0].minor.yy0; } break; case 7: /* node ::= open_tag KML_END KML_CLOSE */ { yygotominor.yy0 = kml_createSelfClosedNode (p_data, (void *) yymsp[-2].minor.yy0, NULL); } break; case 8: /* node ::= open_tag attr KML_END KML_CLOSE */ case 9: /* node ::= open_tag attributes KML_END KML_CLOSE */ yytestcase (yyruleno == 9); { yygotominor.yy0 = kml_createSelfClosedNode (p_data, (void *) yymsp[-3].minor.yy0, (void *) yymsp[-2].minor.yy0); } break; case 10: /* node ::= open_tag KML_CLOSE */ { yygotominor.yy0 = kml_createNode (p_data, (void *) yymsp[-1].minor.yy0, NULL, NULL); } break; case 11: /* node ::= open_tag attr KML_CLOSE */ case 12: /* node ::= open_tag attributes KML_CLOSE */ yytestcase (yyruleno == 12); { yygotominor.yy0 = kml_createNode (p_data, (void *) yymsp[-2].minor.yy0, (void *) yymsp[-1].minor.yy0, NULL); } break; case 13: /* node ::= open_tag KML_CLOSE coord */ case 14: /* node ::= open_tag KML_CLOSE coord_chain */ yytestcase (yyruleno == 14); { yygotominor.yy0 = kml_createNode (p_data, (void *) yymsp[-2].minor.yy0, NULL, (void *) yymsp[0].minor.yy0); } break; case 15: /* node ::= open_tag attr KML_CLOSE coord */ case 16: /* node ::= open_tag attr KML_CLOSE coord_chain */ yytestcase (yyruleno == 16); case 17: /* node ::= open_tag attributes KML_CLOSE coord */ yytestcase (yyruleno == 17); case 18: /* node ::= open_tag attributes KML_CLOSE coord_chain */ yytestcase (yyruleno == 18); { yygotominor.yy0 = kml_createNode (p_data, (void *) yymsp[-3].minor.yy0, (void *) yymsp[-2].minor.yy0, (void *) yymsp[0].minor.yy0); } break; case 19: /* node ::= close_tag */ { yygotominor.yy0 = kml_closingNode (p_data, (void *) yymsp[0].minor.yy0); } break; case 20: /* open_tag ::= KML_OPEN keyword */ case 22: /* keyword ::= KML_KEYWORD */ yytestcase (yyruleno == 22); { yygotominor.yy0 = yymsp[0].minor.yy0; } break; case 21: /* close_tag ::= KML_OPEN KML_END keyword KML_CLOSE */ { yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 23: /* extra_nodes ::= */ case 27: /* extra_attr ::= */ yytestcase (yyruleno == 27); case 31: /* extra_coord ::= */ yytestcase (yyruleno == 31); { yygotominor.yy0 = NULL; } break; case 24: /* extra_nodes ::= node extra_nodes */ { ((kmlNodePtr) yymsp[-1].minor.yy0)->Next = (kmlNodePtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 25: /* node_chain ::= node node extra_nodes */ { ((kmlNodePtr) yymsp[-1].minor.yy0)->Next = (kmlNodePtr) yymsp[0].minor.yy0; ((kmlNodePtr) yymsp[-2].minor.yy0)->Next = (kmlNodePtr) yymsp[-1].minor.yy0; yygotominor.yy0 = yymsp[-2].minor.yy0; } break; case 26: /* attr ::= KML_KEYWORD KML_EQ KML_VALUE */ { yygotominor.yy0 = kml_attribute (p_data, (void *) yymsp[-2].minor.yy0, (void *) yymsp[0].minor.yy0); } break; case 28: /* extra_attr ::= attr extra_attr */ { ((kmlAttrPtr) yymsp[-1].minor.yy0)->Next = (kmlAttrPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 29: /* attributes ::= attr attr extra_attr */ { ((kmlAttrPtr) yymsp[-1].minor.yy0)->Next = (kmlAttrPtr) yymsp[0].minor.yy0; ((kmlAttrPtr) yymsp[-2].minor.yy0)->Next = (kmlAttrPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = yymsp[-2].minor.yy0; } break; case 30: /* coord ::= KML_COORD */ { yygotominor.yy0 = kml_coord (p_data, (void *) yymsp[0].minor.yy0); } break; case 32: /* extra_coord ::= coord extra_coord */ { ((kmlCoordPtr) yymsp[-1].minor.yy0)->Next = (kmlCoordPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 33: /* coord_chain ::= coord coord extra_coord */ { ((kmlCoordPtr) yymsp[-1].minor.yy0)->Next = (kmlCoordPtr) yymsp[0].minor.yy0; ((kmlCoordPtr) yymsp[-2].minor.yy0)->Next = (kmlCoordPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = yymsp[-2].minor.yy0; } break; default: /* (0) main ::= in */ yytestcase (yyruleno == 0); /* (1) in ::= */ yytestcase (yyruleno == 1); /* (2) in ::= in state KML_NEWLINE */ yytestcase (yyruleno == 2); /* (3) state ::= program */ yytestcase (yyruleno == 3); /* (4) program ::= kml_tree */ yytestcase (yyruleno == 4); break; }; yygoto = yyRuleInfo[yyruleno].lhs; yysize = yyRuleInfo[yyruleno].nrhs; yypParser->yyidx -= yysize; yyact = yy_find_reduce_action (yymsp[-yysize].stateno, (YYCODETYPE) yygoto); if (yyact < YYNSTATE) { #ifdef NDEBUG /* If we are not debugging and the reduce action popped at least ** one element off the stack, then we can push the new element back ** onto the stack here, and skip the stack overflow test in yy_shift(). ** That gives a significant speed improvement. */ if (yysize) { yypParser->yyidx++; yymsp -= yysize - 1; yymsp->stateno = (YYACTIONTYPE) yyact; yymsp->major = (YYCODETYPE) yygoto; yymsp->minor = yygotominor; } else #endif { yy_shift (yypParser, yyact, yygoto, &yygotominor); } } else { assert (yyact == YYNSTATE + YYNRULE + 1); yy_accept (yypParser); } } /* ** The following code executes when the parse fails */ #ifndef YYNOERRORRECOVERY static void yy_parse_failed (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFail!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser fails */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. */ static void yy_syntax_error (yyParser * yypParser, /* The parser */ int yymajor, /* The major type of the error token */ YYMINORTYPE yyminor /* The minor type of the error token */ ) { ParseARG_FETCH; #define TOKEN (yyminor.yy0) /* ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->kml_parse_error = 1; p_data->result = NULL; ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* ** The following is executed when the parser accepts */ static void yy_accept (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sAccept!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. ** The first argument is a pointer to a structure obtained from ** "ParseAlloc" which describes the current state of the parser. ** The second argument is the major token number. The third is ** the minor token. The fourth optional argument is whatever the ** user wants (and specified in the grammar) and is available for ** use by the action routines. ** ** Inputs: **
    **
  • A pointer to the parser (an opaque structure.) **
  • The major token number. **
  • The minor token number. **
  • An option argument of a grammar-specified type. **
** ** Outputs: ** None. */ void Parse (void *yyp, /* The parser */ int yymajor, /* The major token code number */ ParseTOKENTYPE yyminor /* The value for the token */ ParseARG_PDECL /* Optional %extra_argument parameter */ ) { YYMINORTYPE yyminorunion; int yyact; /* The parser action. */ int yyendofinput; /* True if we are at the end of input */ #ifdef YYERRORSYMBOL int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif yyParser *yypParser; /* The parser */ /* (re)initialize the parser, if necessary */ yypParser = (yyParser *) yyp; if (yypParser->yyidx < 0) { #if YYSTACKDEPTH<=0 if (yypParser->yystksz <= 0) { /*memset(&yyminorunion, 0, sizeof(yyminorunion)); */ yyminorunion = yyzerominor; yyStackOverflow (yypParser, &yyminorunion); return; } #endif yypParser->yyidx = 0; yypParser->yyerrcnt = -1; yypParser->yystack[0].stateno = 0; yypParser->yystack[0].major = 0; } yyminorunion.yy0 = yyminor; yyendofinput = (yymajor == 0); ParseARG_STORE; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sInput %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif do { yyact = yy_find_shift_action (yypParser, (YYCODETYPE) yymajor); if (yyact < YYNSTATE) { assert (!yyendofinput); /* Impossible to shift the $ token */ yy_shift (yypParser, yyact, yymajor, &yyminorunion); yypParser->yyerrcnt--; yymajor = YYNOCODE; } else if (yyact < YYNSTATE + YYNRULE) { yy_reduce (yypParser, yyact - YYNSTATE); } else { assert (yyact == YY_ERROR_ACTION); #ifdef YYERRORSYMBOL int yymx; #endif #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt); } #endif #ifdef YYERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". ** ** This is what we do if the grammar does define ERROR: ** ** * Call the %syntax_error function. ** ** * Begin popping the stack until we enter a state where ** it is legal to shift the error symbol, then shift ** the error symbol. ** ** * Set the error count to three. ** ** * Begin accepting and shifting new tokens. No new error ** processing will occur until three tokens have been ** shifted successfully. ** */ if (yypParser->yyerrcnt < 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yymx = yypParser->yystack[yypParser->yyidx].major; if (yymx == YYERRORSYMBOL || yyerrorhit) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sDiscard input token %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; } else { while (yypParser->yyidx >= 0 && yymx != YYERRORSYMBOL && (yyact = yy_find_reduce_action (yypParser->yystack [yypParser->yyidx].stateno, YYERRORSYMBOL)) >= YYNSTATE) { yy_pop_parser_stack (yypParser); } if (yypParser->yyidx < 0 || yymajor == 0) { yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yy_parse_failed (yypParser); yymajor = YYNOCODE; } else if (yymx != YYERRORSYMBOL) { YYMINORTYPE u2; u2.YYERRSYMDT = 0; yy_shift (yypParser, yyact, YYERRORSYMBOL, &u2); } } yypParser->yyerrcnt = 3; yyerrorhit = 1; #elif defined(YYNOERRORRECOVERY) /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to ** do any kind of error recovery. Instead, simply invoke the syntax ** error routine and continue going as if nothing had happened. ** ** Applications can set this macro (for example inside %include) if ** they intend to abandon the parse upon the first syntax error seen. */ yy_syntax_error (yypParser, yymajor, yyminorunion); yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; #else /* YYERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. ** ** * If the input token is $, then fail the parse. ** ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ if (yypParser->yyerrcnt <= 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yypParser->yyerrcnt = 3; yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); if (yyendofinput) { yy_parse_failed (yypParser); } yymajor = YYNOCODE; #endif } } while (yymajor != YYNOCODE && yypParser->yyidx >= 0); return; } libspatialite-4.3.0a/src/gaiageo/lex.Ewkt.c0000664000175000017500000016432112544707704015501 00000000000000 #line 3 "lex.Ewkt.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; #endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST #endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T typedef void *yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) are macros in the reentrant scanner. */ #define yyin yyg->yyin_r #define yyout yyg->yyout_r #define yyextra yyg->yyextra_r #define yyleng yyg->yyleng_r #define yytext yyg->yytext_r #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) #define yy_flex_debug yyg->yy_flex_debug_r /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yyg->yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yyg->yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE Ewktrestart(yyin ,yyscanner ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = yyg->yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via Ewktrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] void Ewktrestart (FILE * input_file, yyscan_t yyscanner); void Ewkt_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); YY_BUFFER_STATE Ewkt_create_buffer (FILE * file, int size, yyscan_t yyscanner); void Ewkt_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void Ewkt_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void Ewktpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); void Ewktpop_buffer_state (yyscan_t yyscanner); static void Ewktensure_buffer_stack (yyscan_t yyscanner); static void Ewkt_load_buffer_state (yyscan_t yyscanner); static void Ewkt_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner); #define YY_FLUSH_BUFFER Ewkt_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) YY_BUFFER_STATE Ewkt_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner); YY_BUFFER_STATE Ewkt_scan_string (yyconst char *yy_str, yyscan_t yyscanner); YY_BUFFER_STATE Ewkt_scan_bytes (yyconst char *bytes, int len, yyscan_t yyscanner); void *Ewktalloc (yy_size_t, yyscan_t yyscanner); void *Ewktrealloc (void *, yy_size_t, yyscan_t yyscanner); void Ewktfree (void *, yyscan_t yyscanner); #define yy_new_buffer Ewkt_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ Ewktensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ Ewkt_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ Ewktensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ Ewkt_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ typedef unsigned char YY_CHAR; typedef int yy_state_type; #define yytext_ptr yytext_r static yy_state_type yy_get_previous_state (yyscan_t yyscanner); static yy_state_type yy_try_NUL_trans (yy_state_type current_state, yyscan_t yyscanner); static int yy_get_next_buffer (yyscan_t yyscanner); static void yy_fatal_error (yyconst char msg[], yyscan_t yyscanner); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yyg->yytext_ptr = yy_bp; \ yyleng = (size_t) (yy_cp - yy_bp); \ yyg->yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; #define YY_NUM_RULES 22 #define YY_END_OF_BUFFER 23 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static yyconst flex_int16_t yy_accept[93] = { 0, 0, 0, 23, 21, 19, 20, 3, 4, 21, 2, 21, 1, 21, 21, 21, 21, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 7, 0, 11, 0, 0, 8, 0, 12, 0, 0, 0, 15, 0, 0, 16, 0, 0, 0, 13, 0, 14, 0, 17, 18, 0 }; static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 4, 5, 1, 6, 7, 8, 9, 1, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 11, 1, 12, 1, 13, 1, 14, 1, 1, 15, 16, 17, 18, 19, 1, 20, 21, 22, 23, 1, 1, 1, 24, 1, 1, 1, 1, 1, 1, 1, 1, 1, 25, 1, 26, 1, 27, 1, 28, 1, 1, 29, 30, 31, 32, 33, 1, 34, 35, 36, 37, 1, 1, 1, 38, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static yyconst flex_int32_t yy_meta[39] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static yyconst flex_int16_t yy_base[93] = { 0, 0, 0, 187, 188, 188, 188, 188, 188, 174, 188, 173, 30, 29, 28, 20, 26, 36, 38, 172, 40, 33, 35, 38, 45, 171, 166, 165, 38, 49, 40, 46, 40, 164, 163, 57, 49, 57, 50, 66, 58, 59, 72, 66, 70, 69, 70, 78, 79, 188, 81, 75, 86, 90, 94, 94, 104, 99, 105, 101, 95, 188, 102, 112, 105, 105, 115, 120, 120, 115, 122, 125, 129, 188, 125, 188, 129, 135, 134, 137, 143, 138, 188, 134, 150, 150, 149, 148, 188, 154, 156, 188, 188 }; static yyconst flex_int16_t yy_def[93] = { 0, 92, 1, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 0 }; static yyconst flex_int16_t yy_nxt[227] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 4, 12, 4, 4, 13, 4, 14, 15, 4, 4, 16, 4, 4, 4, 4, 4, 4, 4, 13, 4, 14, 15, 4, 4, 16, 4, 4, 4, 4, 4, 19, 20, 21, 22, 23, 24, 25, 17, 26, 18, 19, 20, 28, 29, 30, 35, 21, 22, 23, 24, 31, 32, 36, 37, 38, 39, 28, 29, 30, 35, 40, 41, 42, 43, 31, 32, 36, 37, 38, 39, 44, 45, 46, 49, 40, 41, 42, 43, 47, 50, 51, 52, 48, 53, 44, 45, 46, 49, 54, 55, 56, 57, 47, 50, 51, 52, 48, 53, 58, 59, 60, 61, 54, 55, 56, 57, 62, 63, 64, 65, 66, 67, 58, 59, 60, 61, 68, 69, 70, 71, 62, 63, 64, 65, 66, 67, 72, 73, 74, 75, 68, 69, 70, 71, 76, 77, 78, 79, 80, 81, 72, 73, 74, 75, 82, 83, 84, 85, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 82, 83, 84, 85, 90, 91, 34, 33, 27, 34, 86, 87, 88, 89, 33, 27, 18, 17, 90, 91, 92, 3, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92 }; static yyconst flex_int16_t yy_chk[227] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 13, 14, 15, 16, 17, 17, 18, 18, 20, 20, 21, 22, 23, 28, 13, 14, 15, 16, 24, 24, 29, 30, 31, 32, 21, 22, 23, 28, 35, 36, 37, 38, 24, 24, 29, 30, 31, 32, 39, 40, 41, 43, 35, 36, 37, 38, 42, 44, 45, 46, 42, 47, 39, 40, 41, 43, 48, 50, 51, 52, 42, 44, 45, 46, 42, 47, 53, 54, 54, 55, 48, 50, 51, 52, 56, 57, 58, 59, 60, 62, 53, 54, 54, 55, 63, 64, 65, 66, 56, 57, 58, 59, 60, 62, 67, 68, 69, 70, 63, 64, 65, 66, 71, 72, 74, 76, 77, 78, 67, 68, 69, 70, 79, 80, 81, 83, 71, 72, 74, 76, 77, 78, 84, 85, 86, 87, 79, 80, 81, 83, 89, 90, 34, 33, 27, 26, 84, 85, 86, 87, 25, 19, 11, 9, 89, 90, 3, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92 }; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET /* EwktLexer.l -- EWKT parser - FLEX config version 2.4, 2011 May 14 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define YY_NO_INPUT 1 /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINTM, * Flex would match both POINT and POINTM, but since POINTM is the longer * of the two tokens, FLEX will match POINTM. */ #define INITIAL 0 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include #endif #define YY_EXTRA_TYPE struct ewkt_data * /* Holds the entire state of the reentrant scanner. */ struct yyguts_t { /* User-defined. Not touched by flex. */ YY_EXTRA_TYPE yyextra_r; /* The rest are the same as the globals declared in the non-reentrant scanner. */ FILE *yyin_r, *yyout_r; size_t yy_buffer_stack_top; /**< index of top of stack. */ size_t yy_buffer_stack_max; /**< capacity of stack. */ YY_BUFFER_STATE *yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; int yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; int yy_did_buffer_switch_on_eof; int yy_start_stack_ptr; int yy_start_stack_depth; int *yy_start_stack; yy_state_type yy_last_accepting_state; char *yy_last_accepting_cpos; int yylineno_r; int yy_flex_debug_r; char *yytext_r; int yy_more_flag; int yy_more_len; }; /* end struct yyguts_t */ static int yy_init_globals (yyscan_t yyscanner); int Ewktlex_init (yyscan_t * scanner); int Ewktlex_init_extra (YY_EXTRA_TYPE user_defined, yyscan_t * scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int Ewktlex_destroy (yyscan_t yyscanner); int Ewktget_debug (yyscan_t yyscanner); void Ewktset_debug (int debug_flag, yyscan_t yyscanner); YY_EXTRA_TYPE Ewktget_extra (yyscan_t yyscanner); void Ewktset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner); FILE *Ewktget_in (yyscan_t yyscanner); void Ewktset_in (FILE * in_str, yyscan_t yyscanner); FILE *Ewktget_out (yyscan_t yyscanner); void Ewktset_out (FILE * out_str, yyscan_t yyscanner); int Ewktget_leng (yyscan_t yyscanner); char *Ewktget_text (yyscan_t yyscanner); int Ewktget_lineno (yyscan_t yyscanner); void Ewktset_lineno (int line_number, yyscan_t yyscanner); int Ewktget_column (yyscan_t yyscanner); void Ewktset_column (int column_no, yyscan_t yyscanner); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int Ewktwrap (yyscan_t yyscanner); #else extern int Ewktwrap (yyscan_t yyscanner); #endif #endif #ifndef yytext_ptr static void yy_flex_strncpy (char *, yyconst char *, int, yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *, yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner); #else static int input (yyscan_t yyscanner); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ unsigned n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int Ewktlex (yyscan_t yyscanner); #define YY_DECL int Ewktlex (yyscan_t yyscanner) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_init) { yyg->yy_init = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if (!yyg->yy_start) yyg->yy_start = 1; /* first start state */ if (!yyin) yyin = stdin; if (!yyout) yyout = stdout; if (!YY_CURRENT_BUFFER) { Ewktensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = Ewkt_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } Ewkt_load_buffer_state (yyscanner); } while (1) /* loops until end-of-file is reached */ { yy_cp = yyg->yy_c_buf_p; /* Support of yytext. */ *yy_cp = yyg->yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = yyg->yy_start; yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI (*yy_cp)]; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 93) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while (yy_base[yy_current_state] != 188); yy_find_action: yy_act = yy_accept[yy_current_state]; if (yy_act == 0) { /* have to back up */ yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch (yy_act) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yyg->yy_hold_char; yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; goto yy_find_action; case 1: YY_RULE_SETUP { Ewktget_extra (yyscanner)->ewkt_col += (int) strlen (yytext); Ewktget_extra (yyscanner)->EwktLval.dval = atof (yytext); return EWKT_NUM; } YY_BREAK case 2:YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_COMMA; } YY_BREAK case 3:YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_OPEN_BRACKET; } YY_BREAK case 4:YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_CLOSE_BRACKET; } YY_BREAK case 5:YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_POINT; } YY_BREAK case 6:YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_POINT_M; } YY_BREAK case 7:YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_LINESTRING; } YY_BREAK case 8:YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_LINESTRING_M; } YY_BREAK case 9:YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_POLYGON; } YY_BREAK case 10:YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_POLYGON_M; } YY_BREAK case 11:YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOINT; } YY_BREAK case 12:YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOINT_M; } YY_BREAK case 13:YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_MULTILINESTRING; } YY_BREAK case 14:YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_MULTILINESTRING_M; } YY_BREAK case 15:YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOLYGON; } YY_BREAK case 16:YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOLYGON_M; } YY_BREAK case 17:YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_GEOMETRYCOLLECTION; } YY_BREAK case 18:YY_RULE_SETUP { Ewktget_extra (yyscanner)->EwktLval.dval = 0; return EWKT_GEOMETRYCOLLECTION_M; } YY_BREAK case 19:YY_RULE_SETUP { Ewktget_extra (yyscanner)->ewkt_col += (int) strlen (yytext); } /* ignore but count white space */ YY_BREAK case 20: /* rule 20 can match eol */ YY_RULE_SETUP { Ewktget_extra (yyscanner)->ewkt_col = 0; Ewktget_extra (yyscanner)->ewkt_line++; } YY_BREAK case 21:YY_RULE_SETUP { Ewktget_extra (yyscanner)->ewkt_col += (int) strlen (yytext); return -1; } YY_BREAK case 22:YY_RULE_SETUP ECHO; YY_BREAK case YY_STATE_EOF (INITIAL):yyterminate (); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yyg->yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * Ewktlex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if (yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) { /* This was really a NUL. */ yy_state_type yy_next_state; yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans (yy_current_state, yyscanner); yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; if (yy_next_state) { /* Consume the NUL. */ yy_cp = ++yyg->yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yyg->yy_c_buf_p; goto yy_find_action; } } else switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_END_OF_FILE: { yyg->yy_did_buffer_switch_on_eof = 0; if (Ewktwrap (yyscanner)) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF (YY_START); goto do_action; } else { if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yyg->yy_c_buf_p = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg-> yy_n_chars]; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR ("fatal flex scanner internal error--no action found"); } /* end of action switch */ } /* end of scanning one token */ } /* end of Ewktlex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = yyg->yytext_ptr; register int number_to_move, i; int ret_val; if (yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1]) YY_FATAL_ERROR ("fatal flex scanner internal error--end of buffer missed"); if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0) { /* Don't try to fill the buffer, so this is an EOF. */ if (yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; for (i = 0; i < number_to_move; ++i) *(dest++) = *(source++); if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while (num_to_read <= 0) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER; int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); if (b->yy_is_our_buffer) { int new_size = b->yy_buf_size * 2; if (new_size <= 0) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ Ewktrealloc ((void *) b->yy_ch_buf, b->yy_buf_size + 2, yyscanner); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if (!b->yy_ch_buf) YY_FATAL_ERROR ("fatal error - scanner input buffer overflow"); yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if (num_to_read > YY_READ_BUF_SIZE) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT ((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), yyg->yy_n_chars, (size_t) num_to_read); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } if (yyg->yy_n_chars == 0) { if (number_to_move == YY_MORE_ADJ) { ret_val = EOB_ACT_END_OF_FILE; Ewktrestart (yyin, yyscanner); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) Ewktrealloc ((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, new_size, yyscanner); if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in yy_get_next_buffer()"); } yyg->yy_n_chars += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (yyscan_t yyscanner) { register yy_state_type yy_current_state; register char *yy_cp; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_current_state = yyg->yy_start; for (yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI (*yy_cp)] : 1); if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 93) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state, yyscan_t yyscanner) { register int yy_is_jam; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* This var may be unused depending upon options. */ register char *yy_cp = yyg->yy_c_buf_p; register YY_CHAR yy_c = 1; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 93) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 92); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner) #else static int input (yyscan_t yyscanner) #endif { int c; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; *yyg->yy_c_buf_p = yyg->yy_hold_char; if (*yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if (yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) /* This was really a NUL. */ *yyg->yy_c_buf_p = '\0'; else { /* need more input */ int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; ++yyg->yy_c_buf_p; switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ Ewktrestart (yyin, yyscanner); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if (Ewktwrap (yyscanner)) return EOF; if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; #ifdef __cplusplus return yyinput (yyscanner); #else return input (yyscanner); #endif } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + offset; break; } } } c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ yyg->yy_hold_char = *++yyg->yy_c_buf_p; return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ void Ewktrestart (FILE * input_file, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) { Ewktensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = Ewkt_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } Ewkt_init_buffer (YY_CURRENT_BUFFER, input_file, yyscanner); Ewkt_load_buffer_state (yyscanner); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ void Ewkt_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* TODO. We should be able to replace this entire function body * with * Ewktpop_buffer_state(); * Ewktpush_buffer_state(new_buffer); */ Ewktensure_buffer_stack (yyscanner); if (YY_CURRENT_BUFFER == new_buffer) return; if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } YY_CURRENT_BUFFER_LVALUE = new_buffer; Ewkt_load_buffer_state (yyscanner); /* We don't actually know whether we did this switch during * EOF (Ewktwrap()) processing, but the only time this flag * is looked at is after Ewktwrap() is called, so it's safe * to go ahead and always set it. */ yyg->yy_did_buffer_switch_on_eof = 1; } static void Ewkt_load_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; yyg->yy_hold_char = *yyg->yy_c_buf_p; } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * @param yyscanner The scanner object. * @return the allocated buffer state. */ YY_BUFFER_STATE Ewkt_create_buffer (FILE * file, int size, yyscan_t yyscanner) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) Ewktalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in Ewkt_create_buffer()"); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) Ewktalloc (b->yy_buf_size + 2, yyscanner); if (!b->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in Ewkt_create_buffer()"); b->yy_is_our_buffer = 1; Ewkt_init_buffer (b, file, yyscanner); return b; } /** Destroy the buffer. * @param b a buffer created with Ewkt_create_buffer() * @param yyscanner The scanner object. */ void Ewkt_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; if (b == YY_CURRENT_BUFFER) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if (b->yy_is_our_buffer) Ewktfree ((void *) b->yy_ch_buf, yyscanner); Ewktfree ((void *) b, yyscanner); } #ifndef __cplusplus extern int isatty (int); #endif /* __cplusplus */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a Ewktrestart() or at EOF. */ static void Ewkt_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner) { int oerrno = errno; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; Ewkt_flush_buffer (b, yyscanner); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then Ewkt_init_buffer was _probably_ * called from Ewktrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER) { b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty (fileno (file)) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * @param yyscanner The scanner object. */ void Ewkt_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if (b == YY_CURRENT_BUFFER) Ewkt_load_buffer_state (yyscanner); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * @param yyscanner The scanner object. */ void Ewktpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (new_buffer == NULL) return; Ewktensure_buffer_stack (yyscanner); /* This block is copied from Ewkt_switch_to_buffer. */ if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) yyg->yy_buffer_stack_top++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from Ewkt_switch_to_buffer. */ Ewkt_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * @param yyscanner The scanner object. */ void Ewktpop_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return; Ewkt_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; if (yyg->yy_buffer_stack_top > 0) --yyg->yy_buffer_stack_top; if (YY_CURRENT_BUFFER) { Ewkt_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void Ewktensure_buffer_stack (yyscan_t yyscanner) { int num_to_alloc; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_buffer_stack) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; yyg->yy_buffer_stack = (struct yy_buffer_state **) Ewktalloc (num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in Ewktensure_buffer_stack()"); memset (yyg->yy_buffer_stack, 0, num_to_alloc * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; yyg->yy_buffer_stack_top = 0; return; } if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1) { /* Increase the buffer to prepare for a possible push. */ int grow_size = 8 /* arbitrary grow size */ ; num_to_alloc = yyg->yy_buffer_stack_max + grow_size; yyg->yy_buffer_stack = (struct yy_buffer_state **) Ewktrealloc (yyg->yy_buffer_stack, num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in Ewktensure_buffer_stack()"); /* zero only the new slots. */ memset (yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE Ewkt_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner) { YY_BUFFER_STATE b; if (size < 2 || base[size - 2] != YY_END_OF_BUFFER_CHAR || base[size - 1] != YY_END_OF_BUFFER_CHAR) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) Ewktalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in Ewkt_scan_buffer()"); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; Ewkt_switch_to_buffer (b, yyscanner); return b; } /** Setup the input buffer state to scan a string. The next call to Ewktlex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * @param yyscanner The scanner object. * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * Ewkt_scan_bytes() instead. */ YY_BUFFER_STATE Ewkt_scan_string (yyconst char *yystr, yyscan_t yyscanner) { return Ewkt_scan_bytes (yystr, strlen (yystr), yyscanner); } /** Setup the input buffer state to scan the given bytes. The next call to Ewktlex() will * scan from a @e copy of @a bytes. * @param bytes the byte buffer to scan * @param len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE Ewkt_scan_bytes (yyconst char *yybytes, int _yybytes_len, yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; buf = (char *) Ewktalloc (n, yyscanner); if (!buf) YY_FATAL_ERROR ("out of dynamic memory in Ewkt_scan_bytes()"); for (i = 0; i < _yybytes_len; ++i) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR; b = Ewkt_scan_buffer (buf, n, yyscanner); if (!b) YY_FATAL_ERROR ("bad buffer in Ewkt_scan_bytes()"); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yy_fatal_error (yyconst char *msg, yyscan_t yyscanner) { (void) fprintf (stderr, "%s\n", msg); exit (YY_EXIT_FAILURE); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = yyg->yy_hold_char; \ yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ yyg->yy_hold_char = *yyg->yy_c_buf_p; \ *yyg->yy_c_buf_p = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ YY_EXTRA_TYPE Ewktget_extra (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyextra; } /** Get the current line number. * @param yyscanner The scanner object. */ int Ewktget_lineno (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yylineno; } /** Get the current column number. * @param yyscanner The scanner object. */ int Ewktget_column (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yycolumn; } /** Get the input stream. * @param yyscanner The scanner object. */ FILE * Ewktget_in (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyin; } /** Get the output stream. * @param yyscanner The scanner object. */ FILE * Ewktget_out (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyout; } /** Get the length of the current token. * @param yyscanner The scanner object. */ int Ewktget_leng (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyleng; } /** Get the current token. * @param yyscanner The scanner object. */ char * Ewktget_text (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yytext; } /** Set the user-defined data. This data is never touched by the scanner. * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ void Ewktset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyextra = user_defined; } /** Set the current line number. * @param line_number * @param yyscanner The scanner object. */ void Ewktset_lineno (int line_number, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* lineno is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("Ewktset_lineno called with no buffer", yyscanner); yylineno = line_number; } /** Set the current column. * @param line_number * @param yyscanner The scanner object. */ void Ewktset_column (int column_no, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* column is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("Ewktset_column called with no buffer", yyscanner); yycolumn = column_no; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * @param yyscanner The scanner object. * @see Ewkt_switch_to_buffer */ void Ewktset_in (FILE * in_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyin = in_str; } void Ewktset_out (FILE * out_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyout = out_str; } int Ewktget_debug (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yy_flex_debug; } void Ewktset_debug (int bdebug, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_flex_debug = bdebug; } /* Accessor methods for yylval and yylloc */ /* User-visible API */ /* Ewktlex_init is special because it creates the scanner itself, so it is * the ONLY reentrant function that doesn't take the scanner as the last argument. * That's why we explicitly handle the declaration, instead of using our macros. */ int Ewktlex_init (yyscan_t * ptr_yy_globals) { if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) Ewktalloc (sizeof (struct yyguts_t), NULL); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); return yy_init_globals (*ptr_yy_globals); } /* Ewktlex_init_extra has the same functionality as Ewktlex_init, but follows the * convention of taking the scanner as the last argument. Note however, that * this is a *pointer* to a scanner, as it will be allocated by this call (and * is the reason, too, why this function also must handle its own declaration). * The user defined value in the first argument will be available to Ewktalloc in * the yyextra field. */ int Ewktlex_init_extra (YY_EXTRA_TYPE yy_user_defined, yyscan_t * ptr_yy_globals) { struct yyguts_t dummy_yyguts; Ewktset_extra (yy_user_defined, &dummy_yyguts); if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) Ewktalloc (sizeof (struct yyguts_t), &dummy_yyguts); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); Ewktset_extra (yy_user_defined, *ptr_yy_globals); return yy_init_globals (*ptr_yy_globals); } static int yy_init_globals (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Initialization is the same as for the non-reentrant scanner. * This function is called from Ewktlex_destroy(), so don't allocate here. */ yyg->yy_buffer_stack = 0; yyg->yy_buffer_stack_top = 0; yyg->yy_buffer_stack_max = 0; yyg->yy_c_buf_p = (char *) 0; yyg->yy_init = 0; yyg->yy_start = 0; yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; yyg->yy_start_stack = NULL; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = (FILE *) 0; yyout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * Ewktlex_init() */ return 0; } /* Ewktlex_destroy is for both reentrant and non-reentrant scanners. */ int Ewktlex_destroy (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Pop the buffer stack, destroying each element. */ while (YY_CURRENT_BUFFER) { Ewkt_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; Ewktpop_buffer_state (yyscanner); } /* Destroy the stack itself. */ Ewktfree (yyg->yy_buffer_stack, yyscanner); yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ Ewktfree (yyg->yy_start_stack, yyscanner); yyg->yy_start_stack = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * Ewktlex() is called, initialization will occur. */ yy_init_globals (yyscanner); /* Destroy the main struct (reentrant only). */ Ewktfree (yyscanner, yyscanner); yyscanner = NULL; return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char *s1, yyconst char *s2, int n, yyscan_t yyscanner) { register int i; for (i = 0; i < n; ++i) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *s, yyscan_t yyscanner) { register int n; for (n = 0; s[n]; ++n) ; return n; } #endif void * Ewktalloc (yy_size_t size, yyscan_t yyscanner) { return (void *) malloc (size); } void * Ewktrealloc (void *ptr, yy_size_t size, yyscan_t yyscanner) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc ((char *) ptr, size); } void Ewktfree (void *ptr, yyscan_t yyscanner) { free ((char *) ptr); /* see Ewktrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" int Ewktwrap (yyscan_t yyscanner) { return 1; } libspatialite-4.3.0a/src/gaiageo/lemon/0000775000175000017500000000000012573314326015013 500000000000000libspatialite-4.3.0a/src/gaiageo/lemon/Makefile.in0000664000175000017500000004454712573313636017021 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/gaiageo/lemon ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = lemon_src EXTRA_DIST = Ewkt.y geoJSON.y Gml.y Kml.y vanuatuWkt.y ReadMe.txt all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gaiageo/lemon/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/gaiageo/lemon/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir 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-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-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/src/gaiageo/lemon/Gml.y0000664000175000017500000001361412544707704015655 00000000000000/* gml.y -- GML parser - LEMON config version 2.4, 2011 June 3 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ // Tokens are void pointers (so we can cast them to whatever we want) %token_type {void *} // Output to stderr when stack overflows %stack_overflow { spatialite_e( "Giving up. Parser stack overflow\n"); } // Increase this number if necessary %stack_size 1000000 // Header files to be included in gml.c %include { } // Set the return value of gaiaParseGML in the following pointer: %extra_argument { struct gml_data *p_data } // Invalid syntax (ie. no rules matched) %syntax_error { /* ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->gml_parse_error = 1; p_data->result = NULL; } /* This is to terminate with a new line */ main ::= in. in ::= . in ::= in state GML_NEWLINE. state ::= program. /* * program is the start node. */ program ::= gml_tree. // GML node: gml_tree ::= node(N). { p_data->result = N; } // N is a GML node gml_tree ::= node_chain(C). { p_data->result = C; } // C is a chain of GML nodes // syntax for a GML node object: node(N) ::= open_tag(K) GML_END GML_CLOSE. { N = gml_createSelfClosedNode( p_data, (void *)K, NULL); } node(N) ::= open_tag(K) attr(A) GML_END GML_CLOSE. { N = gml_createSelfClosedNode( p_data, (void *)K, (void *)A); } node(N) ::= open_tag(K) attributes(A) GML_END GML_CLOSE. { N = gml_createSelfClosedNode( p_data, (void *)K, (void *)A); } node(N) ::= open_tag(K) GML_CLOSE. { N = gml_createNode( p_data, (void *)K, NULL, NULL); } node(N) ::= open_tag(K) attr(A) GML_CLOSE. { N = gml_createNode( p_data, (void *)K, (void *)A, NULL); } node(N) ::= open_tag(K) attributes(A) GML_CLOSE. { N = gml_createNode( p_data, (void *)K, (void *)A, NULL); } node(N) ::= open_tag(K) GML_CLOSE coord(C). { N = gml_createNode( p_data, (void *)K, NULL, (void *)C); } node(N) ::= open_tag(K) GML_CLOSE coord_chain(C). { N = gml_createNode( p_data, (void *)K, NULL, (void *)C); } node(N) ::= open_tag(K) attr(A) GML_CLOSE coord(C). { N = gml_createNode( p_data, (void *)K, (void *)A, (void *)C); } node(N) ::= open_tag(K) attr(A) GML_CLOSE coord_chain(C). { N = gml_createNode( p_data, (void *)K, (void *)A, (void *)C); } node(N) ::= open_tag(K) attributes(A) GML_CLOSE coord(C). { N = gml_createNode( p_data, (void *)K, (void *)A, (void *)C); } node(N) ::= open_tag(K) attributes(A) GML_CLOSE coord_chain(C). { N = gml_createNode( p_data, (void *)K, (void *)A, (void *)C); } node(N) ::= close_tag(K). { N = gml_closingNode( p_data, (void *)K); } // syntax for a GML tag object: open_tag(T) ::= GML_OPEN keyword(K). { T = K; } close_tag(T) ::= GML_OPEN GML_END keyword(K) GML_CLOSE. { T = K; } // Keyword. keyword(A) ::= GML_KEYWORD(B). { A = B; } // Rules to match an infinite number of GML nodes: // Also links the generated gmlNodePtrs together extra_nodes(A) ::= . { A = NULL; } extra_nodes(A) ::= node(P) extra_nodes(B). { ((gmlNodePtr)P)->Next = (gmlNodePtr)B; A = P; } // a chain can contain any number of GML Nodes (but at least two): node_chain(C) ::= node(A) node(B) extra_nodes(Q). { ((gmlNodePtr)B)->Next = (gmlNodePtr)Q; ((gmlNodePtr)A)->Next = (gmlNodePtr)B; C = A; } // syntax for a GML attribute: attr(A) ::= GML_KEYWORD(K) GML_EQ GML_VALUE(V). { A = gml_attribute( p_data, (void *)K, (void *)V); } // Rules to match an infinite number of GML attributes: // Also links the generated gmlAttrPtrs together extra_attr(A) ::= . { A = NULL; } extra_attr(A) ::= attr(P) extra_attr(B). { ((gmlAttrPtr)P)->Next = (gmlAttrPtr)B; A = P; } // a chain can contain any number of GML Attributes (but at least two): attributes(C) ::= attr(A) attr(B) extra_attr(Q). { ((gmlAttrPtr)B)->Next = (gmlAttrPtr)Q; ((gmlAttrPtr)A)->Next = (gmlAttrPtr)B; C = A; } // syntax for a GML coordinate: coord(C) ::= GML_COORD(V). { C = gml_coord( p_data, (void *)V); } // Rules to match an infinite number of GML coords: // Also links the generated gmlCoordPtrs together extra_coord(A) ::= . { A = NULL; } extra_coord(A) ::= coord(P) extra_coord(B). { ((gmlCoordPtr)P)->Next = (gmlCoordPtr)B; A = P; } // a chain can contain any number of GML Coordinates (but at least two): coord_chain(C) ::= coord(A) coord(B) extra_coord(Q). { ((gmlCoordPtr)B)->Next = (gmlCoordPtr)Q; ((gmlCoordPtr)A)->Next = (gmlCoordPtr)B; C = A; } libspatialite-4.3.0a/src/gaiageo/lemon/Kml.y0000664000175000017500000001361512544707704015662 00000000000000/* kml.y -- KML parser - LEMON config version 2.4, 2011 June 14 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ // Tokens are void pointers (so we can cast them to whatever we want) %token_type {void *} // Output to stderr when stack overflows %stack_overflow { spatialite_e( "Giving up. Parser stack overflow\n"); } // Increase this number if necessary %stack_size 1000000 // Header files to be included in kml.c %include { } // Set the return value of gaiaParseKML in the following pointer: %extra_argument { struct kml_data *p_data } // Invalid syntax (ie. no rules matched) %syntax_error { /* ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->kml_parse_error = 1; p_data->result = NULL; } /* This is to terminate with a new line */ main ::= in. in ::= . in ::= in state KML_NEWLINE. state ::= program. /* * program is the start node. */ program ::= kml_tree. // KML node: kml_tree ::= node(N). { p_data->result = N; } // N is a KML node kml_tree ::= node_chain(C). { p_data->result = C; } // C is a chain of KML nodes // syntax for a KML node object: node(N) ::= open_tag(K) KML_END KML_CLOSE. { N = kml_createSelfClosedNode( p_data, (void *)K, NULL); } node(N) ::= open_tag(K) attr(A) KML_END KML_CLOSE. { N = kml_createSelfClosedNode( p_data, (void *)K, (void *)A); } node(N) ::= open_tag(K) attributes(A) KML_END KML_CLOSE. { N = kml_createSelfClosedNode( p_data, (void *)K, (void *)A); } node(N) ::= open_tag(K) KML_CLOSE. { N = kml_createNode( p_data, (void *)K, NULL, NULL); } node(N) ::= open_tag(K) attr(A) KML_CLOSE. { N = kml_createNode( p_data, (void *)K, (void *)A, NULL); } node(N) ::= open_tag(K) attributes(A) KML_CLOSE. { N = kml_createNode( p_data, (void *)K, (void *)A, NULL); } node(N) ::= open_tag(K) KML_CLOSE coord(C). { N = kml_createNode( p_data, (void *)K, NULL, (void *)C); } node(N) ::= open_tag(K) KML_CLOSE coord_chain(C). { N = kml_createNode( p_data, (void *)K, NULL, (void *)C); } node(N) ::= open_tag(K) attr(A) KML_CLOSE coord(C). { N = kml_createNode( p_data, (void *)K, (void *)A, (void *)C); } node(N) ::= open_tag(K) attr(A) KML_CLOSE coord_chain(C). { N = kml_createNode( p_data, (void *)K, (void *)A, (void *)C); } node(N) ::= open_tag(K) attributes(A) KML_CLOSE coord(C). { N = kml_createNode( p_data, (void *)K, (void *)A, (void *)C); } node(N) ::= open_tag(K) attributes(A) KML_CLOSE coord_chain(C). { N = kml_createNode( p_data, (void *)K, (void *)A, (void *)C); } node(N) ::= close_tag(K). { N = kml_closingNode( p_data, (void *)K); } // syntax for a KML tag object: open_tag(T) ::= KML_OPEN keyword(K). { T = K; } close_tag(T) ::= KML_OPEN KML_END keyword(K) KML_CLOSE. { T = K; } // Keyword. keyword(A) ::= KML_KEYWORD(B). { A = B; } // Rules to match an infinite number of KML nodes: // Also links the generated kmlNodePtrs together extra_nodes(A) ::= . { A = NULL; } extra_nodes(A) ::= node(P) extra_nodes(B). { ((kmlNodePtr)P)->Next = (kmlNodePtr)B; A = P; } // a chain can contain any number of KML Nodes (but at least two): node_chain(C) ::= node(A) node(B) extra_nodes(Q). { ((kmlNodePtr)B)->Next = (kmlNodePtr)Q; ((kmlNodePtr)A)->Next = (kmlNodePtr)B; C = A; } // syntax for a KML attribute: attr(A) ::= KML_KEYWORD(K) KML_EQ KML_VALUE(V). { A = kml_attribute( p_data, (void *)K, (void *)V); } // Rules to match an infinite number of KML attributes: // Also links the generated kmlAttrPtrs together extra_attr(A) ::= . { A = NULL; } extra_attr(A) ::= attr(P) extra_attr(B). { ((kmlAttrPtr)P)->Next = (kmlAttrPtr)B; A = P; } // a chain can contain any number of KML Attributes (but at least two): attributes(C) ::= attr(A) attr(B) extra_attr(Q). { ((kmlAttrPtr)B)->Next = (kmlAttrPtr)Q; ((kmlAttrPtr)A)->Next = (kmlAttrPtr)B; C = A; } // syntax for a KML coordinate: coord(C) ::= KML_COORD(V). { C = kml_coord( p_data, (void *)V); } // Rules to match an infinite number of KML coords: // Also links the generated kmlCoordPtrs together extra_coord(A) ::= . { A = NULL; } extra_coord(A) ::= coord(P) extra_coord(B). { ((kmlCoordPtr)P)->Next = (kmlCoordPtr)B; A = P; } // a chain can contain any number of KML Coordinates (but at least two): coord_chain(C) ::= coord(A) coord(B) extra_coord(Q). { ((kmlCoordPtr)B)->Next = (kmlCoordPtr)Q; ((kmlCoordPtr)A)->Next = (kmlCoordPtr)B; C = A; } libspatialite-4.3.0a/src/gaiageo/lemon/Ewkt.y0000664000175000017500000010050512544707704016044 00000000000000/* Ewkt.y -- EWKT parser - LEMON config version 2.4, 2011 May 14 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ // Tokens are void pointers (so we can cast them to whatever we want) %token_type {void *} // Output to stderr when stack overflows %stack_overflow { spatialite_e( "Giving up. Parser stack overflow\n"); } // Increase this number if necessary %stack_size 1000000 // Header files to be included in Ewkt.c %include { } // Set the return value of gaiaParseEWKT in the following pointer: %extra_argument { struct ewkt_data *p_data } // Invalid syntax (ie. no rules matched) %syntax_error { /* ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->ewkt_parse_error = 1; p_data->result = NULL; } /* This is to terminate with a new line */ main ::= in. in ::= . in ::= in state EWKT_NEWLINE. state ::= program. /* * program is the start node. All strings matched by this CFG must be one of * geo_text (text describing a geometry), * geo_textm (text describing a 2D geometry with a measure) */ program ::= geo_text. program ::= geo_textm. // geometries (2D, 3D and 3D with a measure): geo_text ::= point(P). { p_data->result = P; } // P is a geometry collection containing a point geo_text ::= pointz(P). { p_data->result = P; } // P is a geometry collection containing a point geo_text ::= pointzm(P). { p_data->result = P; } // P is a geometry collection containing a point geo_text ::= linestring(L). { p_data->result = L; } // L is a geometry collection containing a linestring geo_text ::= linestringz(L). { p_data->result = L; } // L is a geometry collection containing a linestring geo_text ::= linestringzm(L). { p_data->result = L; } // L is a geometry collection containing a linestring geo_text ::= polygon(P). { p_data->result = P; } // P is a geometry collection containing a polygon geo_text ::= polygonz(P). { p_data->result = P; } // P is a geometry collection containing a polygon geo_text ::= polygonzm(P). { p_data->result = P; } // P is a geometry collection containing a polygon geo_text ::= multipoint(M). { p_data->result = M; } // M is a geometry collection containing a multipoint geo_text ::= multipointz(M). { p_data->result = M; } // M is a geometry collection containing a multipoint geo_text ::= multipointzm(M). { p_data->result = M; } // M is a geometry collection containing a multipoint geo_text ::= multilinestring(M). { p_data->result = M; } // M is a geometry collection containing a multilinestring geo_text ::= multilinestringz(M). { p_data->result = M; } // M is a geometry collection containing a multilinestring geo_text ::= multilinestringzm(M). { p_data->result = M; } // M is a geometry collection containing a multilinestring geo_text ::= multipolygon(M). { p_data->result = M; } // M is a geometry collection containing a multipolygon geo_text ::= multipolygonz(M). { p_data->result = M; } // M is a geometry collection containing a multipolygon geo_text ::= multipolygonzm(M). { p_data->result = M; } // M is a geometry collection containing a multipolygon geo_text ::= geocoll(H). { p_data->result = H; } // H is a geometry collection created from user input geo_text ::= geocollz(H). { p_data->result = H; } // H is a geometry collection created from user input geo_text ::= geocollzm(H). { p_data->result = H; } // H is a geometry collection created from user input // 2D geometries (with a measure): geo_textm ::= pointm(P). { p_data->result = P; } geo_textm ::= linestringm(L). { p_data->result = L; } geo_textm ::= polygonm(P). { p_data->result = P; } geo_textm ::= multipointm(M). { p_data->result = M; } geo_textm ::= multilinestringm(M). { p_data->result = M; } geo_textm ::= multipolygonm(M). { p_data->result = M; } geo_textm ::= geocollm(H). { p_data->result = H; } // Syntax for a "point" object: // The functions called build a geometry collection from a gaiaPointPtr point(P) ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxy(Q) EWKT_CLOSE_BRACKET. { P = ewkt_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } pointz(P) ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyz(Q) EWKT_CLOSE_BRACKET. { P = ewkt_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } pointm(P) ::= EWKT_POINT_M EWKT_OPEN_BRACKET point_coordxym(Q) EWKT_CLOSE_BRACKET. { P = ewkt_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } pointzm(P) ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyzm(Q) EWKT_CLOSE_BRACKET. { P = ewkt_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } // Point coordinates in different dimensions: MultiPoint((pt),(pt)) // Create the point by calling the proper function in SpatiaLite : point_brkt_coordxy(P) ::= EWKT_OPEN_BRACKET coord(X) coord(Y) EWKT_CLOSE_BRACKET. { P = (void *) ewkt_point_xy( p_data, (double *)X, (double *)Y); } point_brkt_coordxym(P) ::= EWKT_OPEN_BRACKET coord(X) coord(Y) coord(M) EWKT_CLOSE_BRACKET. { P = (void *) ewkt_point_xym( p_data, (double *)X, (double *)Y, (double *)M); } point_brkt_coordxyz(P) ::= EWKT_OPEN_BRACKET coord(X) coord(Y) coord(Z) EWKT_CLOSE_BRACKET. { P = (void *) ewkt_point_xyz( p_data, (double *)X, (double *)Y, (double *)Z); } point_brkt_coordxyzm(P) ::= EWKT_OPEN_BRACKET coord(X) coord(Y) coord(Z) coord(M) EWKT_CLOSE_BRACKET. { P = (void *) ewkt_point_xyzm( p_data, (double *)X, (double *)Y, (double *)Z, (double *)M); } // Point coordinates in different dimensions. // Create the point by calling the proper function in SpatiaLite : point_coordxy(P) ::= coord(X) coord(Y). { P = (void *) ewkt_point_xy( p_data, (double *)X, (double *)Y); } point_coordxym(P) ::= coord(X) coord(Y) coord(M). { P = (void *) ewkt_point_xym( p_data, (double *)X, (double *)Y, (double *)M); } point_coordxyz(P) ::= coord(X) coord(Y) coord(Z). { P = (void *) ewkt_point_xyz( p_data, (double *)X, (double *)Y, (double *)Z); } point_coordxyzm(P) ::= coord(X) coord(Y) coord(Z) coord(M). { P = (void *) ewkt_point_xyzm( p_data, (double *)X, (double *)Y, (double *)Z, (double *)M); } // All coordinates are assumed to be doubles (guaranteed by the flex tokenizer). coord(A) ::= EWKT_NUM(B). { A = B; } // Rules to match an infinite number of points: MultiPoint((pt), (pt)) // Also links the generated gaiaPointPtrs together extra_brkt_pointsxy(A) ::= . { A = NULL; } extra_brkt_pointsxy(A) ::= EWKT_COMMA point_brkt_coordxy(P) extra_brkt_pointsxy(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_brkt_pointsxym(A) ::= . { A = NULL; } extra_brkt_pointsxym(A) ::= EWKT_COMMA point_brkt_coordxym(P) extra_brkt_pointsxym(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_brkt_pointsxyz(A) ::= . { A = NULL; } extra_brkt_pointsxyz(A) ::= EWKT_COMMA point_brkt_coordxyz(P) extra_brkt_pointsxyz(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_brkt_pointsxyzm(A) ::= . { A = NULL; } extra_brkt_pointsxyzm(A) ::= EWKT_COMMA point_brkt_coordxyzm(P) extra_brkt_pointsxyzm(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } // Rules to match an infinite number of points: // Also links the generated gaiaPointPtrs together extra_pointsxy(A) ::= . { A = NULL; } extra_pointsxy(A) ::= EWKT_COMMA point_coordxy(P) extra_pointsxy(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_pointsxym(A) ::= . { A = NULL; } extra_pointsxym(A) ::= EWKT_COMMA point_coordxym(P) extra_pointsxym(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_pointsxyz(A) ::= . { A = NULL; } extra_pointsxyz(A) ::= EWKT_COMMA point_coordxyz(P) extra_pointsxyz(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_pointsxyzm(A) ::= . { A = NULL; } extra_pointsxyzm(A) ::= EWKT_COMMA point_coordxyzm(P) extra_pointsxyzm(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } // Syntax for a "linestring" object: // The functions called build a geometry collection from a gaiaLinestringPtr linestring(L) ::= EWKT_LINESTRING linestring_text(X). { L = ewkt_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } linestringm(L) ::= EWKT_LINESTRING_M linestring_textm(X). { L = ewkt_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } linestringz(L) ::= EWKT_LINESTRING linestring_textz(X). { L = ewkt_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } linestringzm(L) ::= EWKT_LINESTRING linestring_textzm(X). { L = ewkt_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } // A valid linestring must have at least two vertices: // The functions called build a gaiaLinestring from a linked list of points linestring_text(L) ::= EWKT_OPEN_BRACKET point_coordxy(P) EWKT_COMMA point_coordxy(Q) extra_pointsxy(R) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) ewkt_linestring_xy( p_data, (gaiaPointPtr)P); } linestring_textm(L) ::= EWKT_OPEN_BRACKET point_coordxym(P) EWKT_COMMA point_coordxym(Q) extra_pointsxym(R) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) ewkt_linestring_xym( p_data, (gaiaPointPtr)P); } linestring_textz(L) ::= EWKT_OPEN_BRACKET point_coordxyz(P) EWKT_COMMA point_coordxyz(Q) extra_pointsxyz(R) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) ewkt_linestring_xyz( p_data, (gaiaPointPtr)P); } linestring_textzm(L) ::= EWKT_OPEN_BRACKET point_coordxyzm(P) EWKT_COMMA point_coordxyzm(Q) extra_pointsxyzm(R) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) ewkt_linestring_xyzm( p_data, (gaiaPointPtr)P); } // Syntax for a "polygon" object: // The functions called build a geometry collection from a gaiaPolygonPtr polygon(P) ::= EWKT_POLYGON polygon_text(X). { P = ewkt_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } polygonm(P) ::= EWKT_POLYGON_M polygon_textm(X). { P = ewkt_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } polygonz(P) ::= EWKT_POLYGON polygon_textz(X). { P = ewkt_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } polygonzm(P) ::= EWKT_POLYGON polygon_textzm(X). { P = ewkt_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } // A valid polygon must have at least one ring: // The functions called build a gaiaPolygonPtr from a linked list of gaiaRingPtrs polygon_text(P) ::= EWKT_OPEN_BRACKET ring(R) extra_rings(E) EWKT_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) ewkt_polygon_xy( p_data, (gaiaRingPtr)R); } polygon_textm(P) ::= EWKT_OPEN_BRACKET ringm(R) extra_ringsm(E) EWKT_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) ewkt_polygon_xym( p_data, (gaiaRingPtr)R); } polygon_textz(P) ::= EWKT_OPEN_BRACKET ringz(R) extra_ringsz(E) EWKT_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) ewkt_polygon_xyz( p_data, (gaiaRingPtr)R); } polygon_textzm(P) ::= EWKT_OPEN_BRACKET ringzm(R) extra_ringszm(E) EWKT_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) ewkt_polygon_xyzm( p_data, (gaiaRingPtr)R); } // A valid ring must have at least 4 points // The functions called build a gaiaRingPtr from a linked list of gaiaPointPtrs ring(R) ::= EWKT_OPEN_BRACKET point_coordxy(A) EWKT_COMMA point_coordxy(B) EWKT_COMMA point_coordxy(C) EWKT_COMMA point_coordxy(D) extra_pointsxy(E) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) ewkt_ring_xy( p_data, (gaiaPointPtr)A); } // To match more than one 2D ring: extra_rings(R) ::= . { R = NULL; } extra_rings(R) ::= EWKT_COMMA ring(S) extra_rings(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } ringm(R) ::= EWKT_OPEN_BRACKET point_coordxym(A) EWKT_COMMA point_coordxym(B) EWKT_COMMA point_coordxym(C) EWKT_COMMA point_coordxym(D) extra_pointsxym(E) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) ewkt_ring_xym( p_data, (gaiaPointPtr)A); } // To match more than one 2D (with a measure) ring: extra_ringsm(R) ::= . { R = NULL; } extra_ringsm(R) ::= EWKT_COMMA ringm(S) extra_ringsm(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } ringz(R) ::= EWKT_OPEN_BRACKET point_coordxyz(A) EWKT_COMMA point_coordxyz(B) EWKT_COMMA point_coordxyz(C) EWKT_COMMA point_coordxyz(D) extra_pointsxyz(E) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) ewkt_ring_xyz( p_data, (gaiaPointPtr)A); } // To match more than one 3D ring: extra_ringsz(R) ::= . { R = NULL; } extra_ringsz(R) ::= EWKT_COMMA ringz(S) extra_ringsz(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } ringzm(R) ::= EWKT_OPEN_BRACKET point_coordxyzm(A) EWKT_COMMA point_coordxyzm(B) EWKT_COMMA point_coordxyzm(C) EWKT_COMMA point_coordxyzm(D) extra_pointsxyzm(E) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) ewkt_ring_xyzm( p_data, (gaiaPointPtr)A); } // To match more than one 3D (with a measure) ring: extra_ringszm(R) ::= . { R = NULL; } extra_ringszm(R) ::= EWKT_COMMA ringzm(S) extra_ringszm(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } // Syntax for a "multipoint" object: // X in the following lines is a geometry collection containing a multipoint multipoint(M) ::= EWKT_MULTIPOINT multipoint_text(X). { M = X; } multipointm(M) ::= EWKT_MULTIPOINT_M multipoint_textm(X). { M = X; } multipointz(M) ::= EWKT_MULTIPOINT multipoint_textz(X). { M = X; } multipointzm(M) ::= EWKT_MULTIPOINT multipoint_textzm(X). { M = X; } // Multipoints can contain any number of points (but at least one): // The functions called build a geometry collection containing a multipoint multipoint_text(M) ::= EWKT_OPEN_BRACKET point_coordxy(P) extra_pointsxy(Q) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) ewkt_multipoint_xy( p_data, (gaiaPointPtr)P); } multipoint_textm(M) ::= EWKT_OPEN_BRACKET point_coordxym(P) extra_pointsxym(Q) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) ewkt_multipoint_xym( p_data, (gaiaPointPtr)P); } multipoint_textz(M) ::= EWKT_OPEN_BRACKET point_coordxyz(P) extra_pointsxyz(Q) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) ewkt_multipoint_xyz( p_data, (gaiaPointPtr)P); } multipoint_textzm(M) ::= EWKT_OPEN_BRACKET point_coordxyzm(P) extra_pointsxyzm(Q) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) ewkt_multipoint_xyzm( p_data, (gaiaPointPtr)P); } multipoint_text(M) ::= EWKT_OPEN_BRACKET point_brkt_coordxy(P) extra_brkt_pointsxy(Q) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) ewkt_multipoint_xy( p_data, (gaiaPointPtr)P); } multipoint_textm(M) ::= EWKT_OPEN_BRACKET point_brkt_coordxym(P) extra_brkt_pointsxym(Q) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) ewkt_multipoint_xym( p_data, (gaiaPointPtr)P); } multipoint_textz(M) ::= EWKT_OPEN_BRACKET point_brkt_coordxyz(P) extra_brkt_pointsxyz(Q) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) ewkt_multipoint_xyz( p_data, (gaiaPointPtr)P); } multipoint_textzm(M) ::= EWKT_OPEN_BRACKET point_brkt_coordxyzm(P) extra_brkt_pointsxyzm(Q) EWKT_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) ewkt_multipoint_xyzm( p_data, (gaiaPointPtr)P); } // Syntax for a "multilinestring" object: // X in the following lines refers to a geometry collection containing a multilinestring multilinestring(M) ::= EWKT_MULTILINESTRING multilinestring_text(X). { M = X; } multilinestringm(M) ::= EWKT_MULTILINESTRING_M multilinestring_textm(X). { M = X; } multilinestringz(M) ::= EWKT_MULTILINESTRING multilinestring_textz(X). { M = X; } multilinestringzm(M) ::= EWKT_MULTILINESTRING multilinestring_textzm(X). { M = X; } // Multilinestrings can contain any number of linestrings (but at least one): // The functions called build a geometry collection containing a multilinestring multilinestring_text(M) ::= EWKT_OPEN_BRACKET linestring_text(L) multilinestring_text2(X) EWKT_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) ewkt_multilinestring_xy( p_data, (gaiaLinestringPtr)L); } // Extra linestrings multilinestring_text2(X) ::= . { X = NULL; } multilinestring_text2(X) ::= EWKT_COMMA linestring_text(L) multilinestring_text2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } multilinestring_textm(M) ::= EWKT_OPEN_BRACKET linestring_textm(L) multilinestring_textm2(X) EWKT_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) ewkt_multilinestring_xym( p_data, (gaiaLinestringPtr)L); } multilinestring_textm2(X) ::= . { X = NULL; } multilinestring_textm2(X) ::= EWKT_COMMA linestring_textm(L) multilinestring_textm2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } multilinestring_textz(M) ::= EWKT_OPEN_BRACKET linestring_textz(L) multilinestring_textz2(X) EWKT_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) ewkt_multilinestring_xyz( p_data, (gaiaLinestringPtr)L); } multilinestring_textz2(X) ::= . { X = NULL; } multilinestring_textz2(X) ::= EWKT_COMMA linestring_textz(L) multilinestring_textz2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } multilinestring_textzm(M) ::= EWKT_OPEN_BRACKET linestring_textzm(L) multilinestring_textzm2(X) EWKT_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) ewkt_multilinestring_xyzm( p_data, (gaiaLinestringPtr)L); } multilinestring_textzm2(X) ::= . { X = NULL; } multilinestring_textzm2(X) ::= EWKT_COMMA linestring_textzm(L) multilinestring_textzm2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } // Syntax for a "multipolygon" object // X in the following lines refers to a geometry collection containing a multipolygon multipolygon(M) ::= EWKT_MULTIPOLYGON multipolygon_text(X). { M = X; } multipolygonm(M) ::= EWKT_MULTIPOLYGON_M multipolygon_textm(X). { M = X; } multipolygonz(M) ::= EWKT_MULTIPOLYGON multipolygon_textz(X). { M = X; } multipolygonzm(M) ::= EWKT_MULTIPOLYGON multipolygon_textzm(X). { M = X; } // Multipolygons can contain any number of polygons (but at least one): // The functions called build a geometry collection containing a multipolygon multipolygon_text(M) ::= EWKT_OPEN_BRACKET polygon_text(P) multipolygon_text2(Q) EWKT_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) ewkt_multipolygon_xy( p_data, (gaiaPolygonPtr)P); } // Extra polygons multipolygon_text2(Q) ::= . { Q = NULL; } multipolygon_text2(A) ::= EWKT_COMMA polygon_text(P) multipolygon_text2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } multipolygon_textm(M) ::= EWKT_OPEN_BRACKET polygon_textm(P) multipolygon_textm2(Q) EWKT_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) ewkt_multipolygon_xym( p_data, (gaiaPolygonPtr)P); } multipolygon_textm2(Q) ::= . { Q = NULL; } multipolygon_textm2(A) ::= EWKT_COMMA polygon_textm(P) multipolygon_textm2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } multipolygon_textz(M) ::= EWKT_OPEN_BRACKET polygon_textz(P) multipolygon_textz2(Q) EWKT_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) ewkt_multipolygon_xyz( p_data, (gaiaPolygonPtr)P); } multipolygon_textz2(Q) ::= . { Q = NULL; } multipolygon_textz2(A) ::= EWKT_COMMA polygon_textz(P) multipolygon_textz2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } multipolygon_textzm(M) ::= EWKT_OPEN_BRACKET polygon_textzm(P) multipolygon_textzm2(Q) EWKT_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) ewkt_multipolygon_xyzm( p_data, (gaiaPolygonPtr)P); } multipolygon_textzm2(Q) ::= . { Q = NULL; } multipolygon_textzm2(A) ::= EWKT_COMMA polygon_textzm(P) multipolygon_textzm2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } // Syntax for a "geometrycollection" object: // X in the following lines refers to a geometry collection generated based on user input geocoll(G) ::= EWKT_GEOMETRYCOLLECTION geocoll_text(X). { G = X; } geocollm(G) ::= EWKT_GEOMETRYCOLLECTION_M geocoll_textm(X). { G = X; } geocollz(G) ::= EWKT_GEOMETRYCOLLECTION geocoll_textz(X). { G = X; } geocollzm(G) ::= EWKT_GEOMETRYCOLLECTION geocoll_textzm(X). { G = X; } // Geometry collections can contain any number of points, linestrings, or polygons (but at least one): geocoll_text(G) ::= EWKT_OPEN_BRACKET point(P) geocoll_text2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xy( p_data, (gaiaGeomCollPtr)P); } geocoll_text(G) ::= EWKT_OPEN_BRACKET linestring(L) geocoll_text2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xy( p_data, (gaiaGeomCollPtr)L); } geocoll_text(G) ::= EWKT_OPEN_BRACKET polygon(P) geocoll_text2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xy( p_data, (gaiaGeomCollPtr)P); } geocoll_text(G) ::= EWKT_OPEN_BRACKET multipoint(P) geocoll_text2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xy( p_data, (gaiaGeomCollPtr)P); } geocoll_text(G) ::= EWKT_OPEN_BRACKET multilinestring(L) geocoll_text2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xy( p_data, (gaiaGeomCollPtr)L); } geocoll_text(G) ::= EWKT_OPEN_BRACKET multipolygon(P) geocoll_text2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xy( p_data, (gaiaGeomCollPtr)P); } geocoll_text(G) ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_text(C) geocoll_text2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xy( p_data, (gaiaGeomCollPtr)C); } // Extra points, linestrings, or polygons geocoll_text2(X) ::= . { X = NULL; } geocoll_text2(X) ::= EWKT_COMMA point(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_text2(X) ::= EWKT_COMMA linestring(L) geocoll_text2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_text2(X) ::= EWKT_COMMA polygon(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_text2(X) ::= EWKT_COMMA multipoint(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_text2(X) ::= EWKT_COMMA multilinestring(L) geocoll_text2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_text2(X) ::= EWKT_COMMA multipolygon(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_text2(X) ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_text(C) geocoll_text2(Y). { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)Y; X = C; } geocoll_textm(G) ::= EWKT_OPEN_BRACKET pointm(P) geocoll_textm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xym( p_data, (gaiaGeomCollPtr)P); } geocoll_textm(G) ::= EWKT_OPEN_BRACKET linestringm(L) geocoll_textm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xym( p_data, (gaiaGeomCollPtr)L); } geocoll_textm(G) ::= EWKT_OPEN_BRACKET polygonm(P) geocoll_textm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xym( p_data, (gaiaGeomCollPtr)P); } geocoll_textm(G) ::= EWKT_OPEN_BRACKET multipointm(P) geocoll_textm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xym( p_data, (gaiaGeomCollPtr)P); } geocoll_textm(G) ::= EWKT_OPEN_BRACKET multilinestringm(L) geocoll_textm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xym( p_data, (gaiaGeomCollPtr)L); } geocoll_textm(G) ::= EWKT_OPEN_BRACKET multipolygonm(P) geocoll_textm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xym( p_data, (gaiaGeomCollPtr)P); } geocoll_textm(G) ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION_M geocoll_textm(C) geocoll_textm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xym( p_data, (gaiaGeomCollPtr)C); } geocoll_textm2(X) ::= . { X = NULL; } geocoll_textm2(X) ::= EWKT_COMMA pointm(P) geocoll_textm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textm2(X) ::= EWKT_COMMA linestringm(L) geocoll_textm2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textm2(X) ::= EWKT_COMMA polygonm(P) geocoll_textm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textm2(X) ::= EWKT_COMMA multipointm(P) geocoll_textm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textm2(X) ::= EWKT_COMMA multilinestringm(L) geocoll_textm2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textm2(X) ::= EWKT_COMMA multipolygonm(P) geocoll_textm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textm2(X) ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION_M geocoll_textm(C) geocoll_textm2(Y). { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)Y; X = C; } geocoll_textz(G) ::= EWKT_OPEN_BRACKET pointz(P) geocoll_textz2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyz( p_data, (gaiaGeomCollPtr)P); } geocoll_textz(G) ::= EWKT_OPEN_BRACKET linestringz(L) geocoll_textz2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyz( p_data, (gaiaGeomCollPtr)L); } geocoll_textz(G) ::= EWKT_OPEN_BRACKET polygonz(P) geocoll_textz2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyz( p_data, (gaiaGeomCollPtr)P); } geocoll_textz(G) ::= EWKT_OPEN_BRACKET multipointz(P) geocoll_textz2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyz( p_data, (gaiaGeomCollPtr)P); } geocoll_textz(G) ::= EWKT_OPEN_BRACKET multilinestringz(L) geocoll_textz2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyz( p_data, (gaiaGeomCollPtr)L); } geocoll_textz(G) ::= EWKT_OPEN_BRACKET multipolygonz(P) geocoll_textz2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyz( p_data, (gaiaGeomCollPtr)P); } geocoll_textz(G) ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textz(C) geocoll_textz2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyz( p_data, (gaiaGeomCollPtr)C); } geocoll_textz2(X) ::= . { X = NULL; } geocoll_textz2(X) ::= EWKT_COMMA pointz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz2(X) ::= EWKT_COMMA linestringz(L) geocoll_textz2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textz2(X) ::= EWKT_COMMA polygonz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz2(X) ::= EWKT_COMMA multipointz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz2(X) ::= EWKT_COMMA multilinestringz(L) geocoll_textz2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textz2(X) ::= EWKT_COMMA multipolygonz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz2(X) ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textz(C) geocoll_textz2(Y). { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)Y; X = C; } geocoll_textzm(G) ::= EWKT_OPEN_BRACKET pointzm(P) geocoll_textzm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyzm( p_data, (gaiaGeomCollPtr)P); } geocoll_textzm(G) ::= EWKT_OPEN_BRACKET linestringzm(L) geocoll_textzm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyzm( p_data, (gaiaGeomCollPtr)L); } geocoll_textzm(G) ::= EWKT_OPEN_BRACKET polygonzm(P) geocoll_textzm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyzm( p_data, (gaiaGeomCollPtr)P); } geocoll_textzm(G) ::= EWKT_OPEN_BRACKET multipointzm(P) geocoll_textzm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyzm( p_data, (gaiaGeomCollPtr)P); } geocoll_textzm(G) ::= EWKT_OPEN_BRACKET multilinestringzm(L) geocoll_textzm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyzm( p_data, (gaiaGeomCollPtr)L); } geocoll_textzm(G) ::= EWKT_OPEN_BRACKET multipolygonzm(P) geocoll_textzm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyzm( p_data, (gaiaGeomCollPtr)P); } geocoll_textzm(G) ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textzm(C) geocoll_textzm2(X) EWKT_CLOSE_BRACKET. { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)X; G = (void *) ewkt_geomColl_xyzm( p_data, (gaiaGeomCollPtr)C); } geocoll_textzm2(X) ::= . { X = NULL; } geocoll_textzm2(X) ::= EWKT_COMMA pointzm(P) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textzm2(X) ::= EWKT_COMMA linestringzm(L) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textzm2(X) ::= EWKT_COMMA polygonzm(P) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textzm2(X) ::= EWKT_COMMA multipointzm(P) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textzm2(X) ::= EWKT_COMMA multilinestringzm(L) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textzm2(X) ::= EWKT_COMMA multipolygonzm(P) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textzm2(X) ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textzm(C) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)Y; X = C; } libspatialite-4.3.0a/src/gaiageo/lemon/lemon_src/0000775000175000017500000000000012573314326016774 500000000000000libspatialite-4.3.0a/src/gaiageo/lemon/lemon_src/lempar.c0000664000175000017500000006605312544707704020356 00000000000000/* Driver template for the LEMON parser generator. ** The author disclaims copyright to this source code. */ /* First off, code is included that follows the "include" declaration ** in the input grammar file. */ #include %% /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ /* ** These constants (all generated automatically by the parser generator) ** specify the various kinds of tokens (terminals) that the parser ** understands. ** ** Each symbol here is a terminal symbol in the grammar. */ %% /* Make sure the INTERFACE macro is defined. */ #ifndef INTERFACE # define INTERFACE 1 #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. ** YYCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. ** YYNOCODE is a number of type YYCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. ** YYFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. ** YYACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** ParseTOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. ** YYMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is ParseTOKENTYPE. The entry in the union ** for base tokens is called "yy0". ** YYSTACKDEPTH is the maximum depth of the parser's stack. If ** zero the stack is dynamically sized using realloc() ** ParseARG_SDECL A static variable declaration for the %extra_argument ** ParseARG_PDECL A parameter declaration for the %extra_argument ** ParseARG_STORE Code to store %extra_argument into yypParser ** ParseARG_FETCH Code to extract %extra_argument from yypParser ** YYNSTATE the combined number of states. ** YYNRULE the number of rules in the grammar ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ %% #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) /* The yyzerominor constant is used to initialize instances of ** YYMINORTYPE objects to zero. */ static const YYMINORTYPE yyzerominor = { 0 }; /* Define the yytestcase() macro to be a no-op if is not already defined ** otherwise. ** ** Applications can choose to define yytestcase() in the %include section ** to a macro that can assist in verifying code coverage. For production ** code the yytestcase() macro should be turned off. But it is useful ** for testing. */ #ifndef yytestcase # define yytestcase(X) #endif /* Next are the tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement ** functions that take a state number and lookahead value and return an ** action integer. ** ** Suppose the action integer is N. Then the action is determined as ** follows ** ** 0 <= N < YYNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** ** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. ** ** N == YYNSTATE+YYNRULE A syntax error has occurred. ** ** N == YYNSTATE+YYNRULE+1 The parser accepts its input. ** ** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused ** slots in the yy_action[] table. ** ** The action table is constructed as a single large table named yy_action[]. ** Given state S and lookahead X, the action is computed as ** ** yy_action[ yy_shift_ofst[S] + X ] ** ** If the index value yy_shift_ofst[S]+X is out of range or if the value ** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] ** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table ** and that yy_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after ** a reduce action) then the yy_reduce_ofst[] array is used in place of ** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of ** YY_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** ** yy_action[] A single table containing all actions. ** yy_lookahead[] A table containing the lookahead for each entry in ** yy_action. Used to detect hash collisions. ** yy_shift_ofst[] For each state, the offset into yy_action for ** shifting terminals. ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ %% #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: ** ** %fallback ID X Y Z. ** ** appears in the grammar, then ID becomes a fallback token for X, Y, ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ #ifdef YYFALLBACK static const YYCODETYPE yyFallback[] = { %% }; #endif /* YYFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: ** ** + The state number for the parser at this level of the stack. ** ** + The value of the token stored at this level of the stack. ** (In other words, the "major" token.) ** ** + The semantic value stored at this level of the stack. This is ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ struct yyStackEntry { YYACTIONTYPE stateno; /* The state-number */ YYCODETYPE major; /* The major token value. This is the code ** number for the token at this stack level */ YYMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ struct yyParser { int yyidx; /* Index of top element in stack */ #ifdef YYTRACKMAXSTACKDEPTH int yyidxMax; /* Maximum value of yyidx */ #endif int yyerrcnt; /* Shifts left before out of the error */ ParseARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 int yystksz; /* Current side of the stack */ yyStackEntry *yystack; /* The parser's stack */ #else yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ #endif }; typedef struct yyParser yyParser; #ifndef NDEBUG #include static FILE *yyTraceFILE = 0; static char *yyTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG /* ** Turn parser tracing on by giving a stream to which to write the trace ** and a prompt to preface each trace message. Tracing is turned off ** by making either argument NULL ** ** Inputs: **
    **
  • A FILE* to which trace output should be written. ** If NULL, then tracing is turned off. **
  • A prefix string written at the beginning of every ** line of trace output. If NULL, then tracing is ** turned off. **
** ** Outputs: ** None. */ void ParseTrace(FILE *TraceFILE, char *zTracePrompt){ yyTraceFILE = TraceFILE; yyTracePrompt = zTracePrompt; if( yyTraceFILE==0 ) yyTracePrompt = 0; else if( yyTracePrompt==0 ) yyTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ static const char *const yyTokenName[] = { %% }; #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { %% }; #endif /* NDEBUG */ #if YYSTACKDEPTH<=0 /* ** Try to increase the size of the parser stack. */ static void yyGrowStack(yyParser *p){ int newSize; yyStackEntry *pNew; newSize = p->yystksz*2 + 100; pNew = realloc(p->yystack, newSize*sizeof(pNew[0])); if( pNew ){ p->yystack = pNew; p->yystksz = newSize; #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sStack grows to %d entries!\n", yyTracePrompt, p->yystksz); } #endif } } #endif /* ** This function allocates a new parser. ** The only argument is a pointer to a function which works like ** malloc. ** ** Inputs: ** A pointer to the function used to allocate memory. ** ** Outputs: ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ void *ParseAlloc(void *(*mallocProc)(size_t)){ yyParser *pParser; pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); if( pParser ){ pParser->yyidx = -1; #ifdef YYTRACKMAXSTACKDEPTH pParser->yyidxMax = 0; #endif #if YYSTACKDEPTH<=0 pParser->yystack = NULL; pParser->yystksz = 0; yyGrowStack(pParser); #endif } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ static void yy_destructor( yyParser *yypParser, /* The parser */ YYCODETYPE yymajor, /* Type code for object to destroy */ YYMINORTYPE *yypminor /* The object to be destroyed */ ){ ParseARG_FETCH; switch( yymajor ){ /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a ** reduce or during error processing or when a parser is ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those ** which appear on the RHS of the rule, but which are not used ** inside the C code. */ %% default: break; /* If no destructor action specified: do nothing */ } } /* ** Pop the parser's stack once. ** ** If there is a destructor routine associated with the token which ** is popped from the stack, then call it. ** ** Return the major token number for the symbol popped. */ static int yy_pop_parser_stack(yyParser *pParser){ YYCODETYPE yymajor; yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; if( pParser->yyidx<0 ) return 0; #ifndef NDEBUG if( yyTraceFILE && pParser->yyidx>=0 ){ fprintf(yyTraceFILE,"%sPopping %s\n", yyTracePrompt, yyTokenName[yytos->major]); } #endif yymajor = yytos->major; yy_destructor(pParser, yymajor, &yytos->minor); pParser->yyidx--; return yymajor; } /* ** Deallocate and destroy a parser. Destructors are all called for ** all stack elements before shutting the parser down. ** ** Inputs: **
    **
  • A pointer to the parser. This should be a pointer ** obtained from ParseAlloc. **
  • A pointer to a function used to reclaim memory obtained ** from malloc. **
*/ void ParseFree( void *p, /* The parser to be deleted */ void (*freeProc)(void*) /* Function used to reclaim memory */ ){ yyParser *pParser = (yyParser*)p; if( pParser==0 ) return; while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser); #if YYSTACKDEPTH<=0 free(pParser->yystack); #endif (*freeProc)((void*)pParser); } /* ** Return the peak depth of the stack for a parser. */ #ifdef YYTRACKMAXSTACKDEPTH int ParseStackPeak(void *p){ yyParser *pParser = (yyParser*)p; return pParser->yyidxMax; } #endif /* ** Find the appropriate action for a parser given the terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_shift_action( yyParser *pParser, /* The parser */ YYCODETYPE iLookAhead /* The look-ahead token */ ){ int i; int stateno = pParser->yystack[pParser->yyidx].stateno; if( stateno>YY_SHIFT_MAX || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){ return yy_default[stateno]; } assert( iLookAhead!=YYNOCODE ); i += iLookAhead; if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ if( iLookAhead>0 ){ #ifdef YYFALLBACK YYCODETYPE iFallback; /* Fallback token */ if( iLookAhead %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); } #endif return yy_find_shift_action(pParser, iFallback); } #endif #ifdef YYWILDCARD { int j = i - iLookAhead + YYWILDCARD; if( j>=0 && j %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); } #endif /* NDEBUG */ return yy_action[j]; } } #endif /* YYWILDCARD */ } return yy_default[stateno]; }else{ return yy_action[i]; } } /* ** Find the appropriate action for a parser given the non-terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_reduce_action( int stateno, /* Current state number */ YYCODETYPE iLookAhead /* The look-ahead token */ ){ int i; #ifdef YYERRORSYMBOL if( stateno>YY_REDUCE_MAX ){ return yy_default[stateno]; } #else assert( stateno<=YY_REDUCE_MAX ); #endif i = yy_reduce_ofst[stateno]; assert( i!=YY_REDUCE_USE_DFLT ); assert( iLookAhead!=YYNOCODE ); i += iLookAhead; #ifdef YYERRORSYMBOL if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ return yy_default[stateno]; } #else assert( i>=0 && iyyidx--; #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); } #endif while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ %% ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ } /* ** Perform a shift action. */ static void yy_shift( yyParser *yypParser, /* The parser to be shifted */ int yyNewState, /* The new state to shift in */ int yyMajor, /* The major token to shift in */ YYMINORTYPE *yypMinor /* Pointer to the minor token to shift in */ ){ yyStackEntry *yytos; yypParser->yyidx++; #ifdef YYTRACKMAXSTACKDEPTH if( yypParser->yyidx>yypParser->yyidxMax ){ yypParser->yyidxMax = yypParser->yyidx; } #endif #if YYSTACKDEPTH>0 if( yypParser->yyidx>=YYSTACKDEPTH ){ yyStackOverflow(yypParser, yypMinor); return; } #else if( yypParser->yyidx>=yypParser->yystksz ){ yyGrowStack(yypParser); if( yypParser->yyidx>=yypParser->yystksz ){ yyStackOverflow(yypParser, yypMinor); return; } } #endif yytos = &yypParser->yystack[yypParser->yyidx]; yytos->stateno = (YYACTIONTYPE)yyNewState; yytos->major = (YYCODETYPE)yyMajor; yytos->minor = *yypMinor; #ifndef NDEBUG if( yyTraceFILE && yypParser->yyidx>0 ){ int i; fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState); fprintf(yyTraceFILE,"%sStack:",yyTracePrompt); for(i=1; i<=yypParser->yyidx; i++) fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); fprintf(yyTraceFILE,"\n"); } #endif } /* The following table contains information about every rule that ** is used during the reduce. */ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ } yyRuleInfo[] = { %% }; static void yy_accept(yyParser*); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. */ static void yy_reduce( yyParser *yypParser, /* The parser */ int yyruleno /* Number of the rule by which to reduce */ ){ int yygoto; /* The next state */ int yyact; /* The next action */ YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ yyStackEntry *yymsp; /* The top of the parser's stack */ int yysize; /* Amount to pop the stack */ ParseARG_FETCH; yymsp = &yypParser->yystack[yypParser->yyidx]; #ifndef NDEBUG if( yyTraceFILE && yyruleno>=0 && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, yyRuleName[yyruleno]); } #endif /* NDEBUG */ /* Silence complaints from purify about yygotominor being uninitialized ** in some cases when it is copied into the stack after the following ** switch. yygotominor is uninitialized when a rule reduces that does ** not set the value of its left-hand side nonterminal. Leaving the ** value of the nonterminal uninitialized is utterly harmless as long ** as the value is never used. So really the only thing this code ** accomplishes is to quieten purify. ** ** 2007-01-16: The wireshark project (www.wireshark.org) reports that ** without this code, their parser segfaults. I'm not sure what there ** parser is doing to make this happen. This is the second bug report ** from wireshark this week. Clearly they are stressing Lemon in ways ** that it has not been previously stressed... (SQLite ticket #2172) */ /*memset(&yygotominor, 0, sizeof(yygotominor));*/ yygotominor = yyzerominor; switch( yyruleno ){ /* Beginning here are the reduction cases. A typical example ** follows: ** case 0: ** #line ** { ... } // User supplied code ** #line ** break; */ %% }; yygoto = yyRuleInfo[yyruleno].lhs; yysize = yyRuleInfo[yyruleno].nrhs; yypParser->yyidx -= yysize; yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto); if( yyact < YYNSTATE ){ #ifdef NDEBUG /* If we are not debugging and the reduce action popped at least ** one element off the stack, then we can push the new element back ** onto the stack here, and skip the stack overflow test in yy_shift(). ** That gives a significant speed improvement. */ if( yysize ){ yypParser->yyidx++; yymsp -= yysize-1; yymsp->stateno = (YYACTIONTYPE)yyact; yymsp->major = (YYCODETYPE)yygoto; yymsp->minor = yygotominor; }else #endif { yy_shift(yypParser,yyact,yygoto,&yygotominor); } }else{ assert( yyact == YYNSTATE + YYNRULE + 1 ); yy_accept(yypParser); } } /* ** The following code executes when the parse fails */ #ifndef YYNOERRORRECOVERY static void yy_parse_failed( yyParser *yypParser /* The parser */ ){ ParseARG_FETCH; #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); } #endif while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); /* Here code is inserted which will be executed whenever the ** parser fails */ %% ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. */ static void yy_syntax_error( yyParser *yypParser, /* The parser */ int yymajor, /* The major type of the error token */ YYMINORTYPE yyminor /* The minor type of the error token */ ){ ParseARG_FETCH; #define TOKEN (yyminor.yy0) %% ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* ** The following is executed when the parser accepts */ static void yy_accept( yyParser *yypParser /* The parser */ ){ ParseARG_FETCH; #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); } #endif while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ %% ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. ** The first argument is a pointer to a structure obtained from ** "ParseAlloc" which describes the current state of the parser. ** The second argument is the major token number. The third is ** the minor token. The fourth optional argument is whatever the ** user wants (and specified in the grammar) and is available for ** use by the action routines. ** ** Inputs: **
    **
  • A pointer to the parser (an opaque structure.) **
  • The major token number. **
  • The minor token number. **
  • An option argument of a grammar-specified type. **
** ** Outputs: ** None. */ void Parse( void *yyp, /* The parser */ int yymajor, /* The major token code number */ ParseTOKENTYPE yyminor /* The value for the token */ ParseARG_PDECL /* Optional %extra_argument parameter */ ){ YYMINORTYPE yyminorunion; int yyact; /* The parser action. */ int yyendofinput; /* True if we are at the end of input */ #ifdef YYERRORSYMBOL int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif yyParser *yypParser; /* The parser */ /* (re)initialize the parser, if necessary */ yypParser = (yyParser*)yyp; if( yypParser->yyidx<0 ){ #if YYSTACKDEPTH<=0 if( yypParser->yystksz <=0 ){ /*memset(&yyminorunion, 0, sizeof(yyminorunion));*/ yyminorunion = yyzerominor; yyStackOverflow(yypParser, &yyminorunion); return; } #endif yypParser->yyidx = 0; yypParser->yyerrcnt = -1; yypParser->yystack[0].stateno = 0; yypParser->yystack[0].major = 0; } yyminorunion.yy0 = yyminor; yyendofinput = (yymajor==0); ParseARG_STORE; #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]); } #endif do{ yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor); if( yyactyyerrcnt--; yymajor = YYNOCODE; }else if( yyact < YYNSTATE + YYNRULE ){ yy_reduce(yypParser,yyact-YYNSTATE); }else{ assert( yyact == YY_ERROR_ACTION ); #ifdef YYERRORSYMBOL int yymx; #endif #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); } #endif #ifdef YYERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". ** ** This is what we do if the grammar does define ERROR: ** ** * Call the %syntax_error function. ** ** * Begin popping the stack until we enter a state where ** it is legal to shift the error symbol, then shift ** the error symbol. ** ** * Set the error count to three. ** ** * Begin accepting and shifting new tokens. No new error ** processing will occur until three tokens have been ** shifted successfully. ** */ if( yypParser->yyerrcnt<0 ){ yy_syntax_error(yypParser,yymajor,yyminorunion); } yymx = yypParser->yystack[yypParser->yyidx].major; if( yymx==YYERRORSYMBOL || yyerrorhit ){ #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE,"%sDiscard input token %s\n", yyTracePrompt,yyTokenName[yymajor]); } #endif yy_destructor(yypParser, (YYCODETYPE)yymajor,&yyminorunion); yymajor = YYNOCODE; }else{ while( yypParser->yyidx >= 0 && yymx != YYERRORSYMBOL && (yyact = yy_find_reduce_action( yypParser->yystack[yypParser->yyidx].stateno, YYERRORSYMBOL)) >= YYNSTATE ){ yy_pop_parser_stack(yypParser); } if( yypParser->yyidx < 0 || yymajor==0 ){ yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); yy_parse_failed(yypParser); yymajor = YYNOCODE; }else if( yymx!=YYERRORSYMBOL ){ YYMINORTYPE u2; u2.YYERRSYMDT = 0; yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2); } } yypParser->yyerrcnt = 3; yyerrorhit = 1; #elif defined(YYNOERRORRECOVERY) /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to ** do any kind of error recovery. Instead, simply invoke the syntax ** error routine and continue going as if nothing had happened. ** ** Applications can set this macro (for example inside %include) if ** they intend to abandon the parse upon the first syntax error seen. */ yy_syntax_error(yypParser,yymajor,yyminorunion); yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); yymajor = YYNOCODE; #else /* YYERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. ** ** * If the input token is $, then fail the parse. ** ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ if( yypParser->yyerrcnt<=0 ){ yy_syntax_error(yypParser,yymajor,yyminorunion); } yypParser->yyerrcnt = 3; yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); if( yyendofinput ){ yy_parse_failed(yypParser); } yymajor = YYNOCODE; #endif } }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); return; } libspatialite-4.3.0a/src/gaiageo/lemon/lemon_src/Makefile.in0000664000175000017500000003014012573313636020762 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/gaiageo/lemon/lemon_src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = lemon.c lempar.c all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gaiageo/lemon/lemon_src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/gaiageo/lemon/lemon_src/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/src/gaiageo/lemon/lemon_src/lemon.c0000664000175000017500000043005212544707704020202 00000000000000/* ** This file contains all sources (including headers) to the LEMON ** LALR(1) parser generator. The sources have been combined into a ** single file to make it easy to include LEMON in the source tree ** and Makefile of another program. ** ** The author of this program disclaims copyright. */ #include #include #include #include #include #include #ifndef __WIN32__ # if defined(_WIN32) || defined(WIN32) # define __WIN32__ # endif #endif #ifdef __WIN32__ extern int access(); #else #include #endif /* #define PRIVATE static */ #define PRIVATE #ifdef TEST #define MAXRHS 5 /* Set low to exercise exception code */ #else #define MAXRHS 1000 #endif static char *msort(char*,char**,int(*)(const char*,const char*)); /* ** Compilers are getting increasingly pedantic about type conversions ** as C evolves ever closer to Ada.... To work around the latest problems ** we have to define the following variant of strlen(). */ #define lemonStrlen(X) ((int)strlen(X)) static struct action *Action_new(void); static struct action *Action_sort(struct action *); /********** From the file "build.h" ************************************/ void FindRulePrecedences(); void FindFirstSets(); void FindStates(); void FindLinks(); void FindFollowSets(); void FindActions(); /********* From the file "configlist.h" *********************************/ void Configlist_init(/* void */); struct config *Configlist_add(/* struct rule *, int */); struct config *Configlist_addbasis(/* struct rule *, int */); void Configlist_closure(/* void */); void Configlist_sort(/* void */); void Configlist_sortbasis(/* void */); struct config *Configlist_return(/* void */); struct config *Configlist_basis(/* void */); void Configlist_eat(/* struct config * */); void Configlist_reset(/* void */); /********* From the file "error.h" ***************************************/ void ErrorMsg(const char *, int,const char *, ...); /****** From the file "option.h" ******************************************/ struct s_options { enum { OPT_FLAG=1, OPT_INT, OPT_DBL, OPT_STR, OPT_FFLAG, OPT_FINT, OPT_FDBL, OPT_FSTR} type; char *label; char *arg; char *message; }; int OptInit(/* char**,struct s_options*,FILE* */); int OptNArgs(/* void */); char *OptArg(/* int */); void OptErr(/* int */); void OptPrint(/* void */); /******** From the file "parse.h" *****************************************/ void Parse(/* struct lemon *lemp */); /********* From the file "plink.h" ***************************************/ struct plink *Plink_new(/* void */); void Plink_add(/* struct plink **, struct config * */); void Plink_copy(/* struct plink **, struct plink * */); void Plink_delete(/* struct plink * */); /********** From the file "report.h" *************************************/ void Reprint(/* struct lemon * */); void ReportOutput(/* struct lemon * */); void ReportTable(/* struct lemon * */); void ReportHeader(/* struct lemon * */); void CompressTables(/* struct lemon * */); void ResortStates(/* struct lemon * */); /********** From the file "set.h" ****************************************/ void SetSize(/* int N */); /* All sets will be of size N */ char *SetNew(/* void */); /* A new set for element 0..N */ void SetFree(/* char* */); /* Deallocate a set */ int SetAdd(/* char*,int */); /* Add element to a set */ int SetUnion(/* char *A,char *B */); /* A <- A U B, thru element N */ #define SetFind(X,Y) (X[Y]) /* True if Y is in set X */ /********** From the file "struct.h" *************************************/ /* ** Principal data structures for the LEMON parser generator. */ typedef enum {LEMON_FALSE=0, LEMON_TRUE} Boolean; /* Symbols (terminals and nonterminals) of the grammar are stored ** in the following: */ struct symbol { char *name; /* Name of the symbol */ int index; /* Index number for this symbol */ enum { TERMINAL, NONTERMINAL, MULTITERMINAL } type; /* Symbols are all either TERMINALS or NTs */ struct rule *rule; /* Linked list of rules of this (if an NT) */ struct symbol *fallback; /* fallback token in case this token doesn't parse */ int prec; /* Precedence if defined (-1 otherwise) */ enum e_assoc { LEFT, RIGHT, NONE, UNK } assoc; /* Associativity if precedence is defined */ char *firstset; /* First-set for all rules of this symbol */ Boolean lambda; /* True if NT and can generate an empty string */ int useCnt; /* Number of times used */ char *destructor; /* Code which executes whenever this symbol is ** popped from the stack during error processing */ int destLineno; /* Line number for start of destructor */ char *datatype; /* The data type of information held by this ** object. Only used if type==NONTERMINAL */ int dtnum; /* The data type number. In the parser, the value ** stack is a union. The .yy%d element of this ** union is the correct data type for this object */ /* The following fields are used by MULTITERMINALs only */ int nsubsym; /* Number of constituent symbols in the MULTI */ struct symbol **subsym; /* Array of constituent symbols */ }; /* Each production rule in the grammar is stored in the following ** structure. */ struct rule { struct symbol *lhs; /* Left-hand side of the rule */ char *lhsalias; /* Alias for the LHS (NULL if none) */ int lhsStart; /* True if left-hand side is the start symbol */ int ruleline; /* Line number for the rule */ int nrhs; /* Number of RHS symbols */ struct symbol **rhs; /* The RHS symbols */ char **rhsalias; /* An alias for each RHS symbol (NULL if none) */ int line; /* Line number at which code begins */ char *code; /* The code executed when this rule is reduced */ struct symbol *precsym; /* Precedence symbol for this rule */ int index; /* An index number for this rule */ Boolean canReduce; /* True if this rule is ever reduced */ struct rule *nextlhs; /* Next rule with the same LHS */ struct rule *next; /* Next rule in the global list */ }; /* A configuration is a production rule of the grammar together with ** a mark (dot) showing how much of that rule has been processed so far. ** Configurations also contain a follow-set which is a list of terminal ** symbols which are allowed to immediately follow the end of the rule. ** Every configuration is recorded as an instance of the following: */ struct config { struct rule *rp; /* The rule upon which the configuration is based */ int dot; /* The parse point */ char *fws; /* Follow-set for this configuration only */ struct plink *fplp; /* Follow-set forward propagation links */ struct plink *bplp; /* Follow-set backwards propagation links */ struct state *stp; /* Pointer to state which contains this */ enum { COMPLETE, /* The status is used during followset and */ INCOMPLETE /* shift computations */ } status; struct config *next; /* Next configuration in the state */ struct config *bp; /* The next basis configuration */ }; /* Every shift or reduce operation is stored as one of the following */ struct action { struct symbol *sp; /* The look-ahead symbol */ enum e_action { SHIFT, ACCEPT, REDUCE, ERROR, SSCONFLICT, /* A shift/shift conflict */ SRCONFLICT, /* Was a reduce, but part of a conflict */ RRCONFLICT, /* Was a reduce, but part of a conflict */ SH_RESOLVED, /* Was a shift. Precedence resolved conflict */ RD_RESOLVED, /* Was reduce. Precedence resolved conflict */ NOT_USED /* Deleted by compression */ } type; union { struct state *stp; /* The new state, if a shift */ struct rule *rp; /* The rule, if a reduce */ } x; struct action *next; /* Next action for this state */ struct action *collide; /* Next action with the same hash */ }; /* Each state of the generated parser's finite state machine ** is encoded as an instance of the following structure. */ struct state { struct config *bp; /* The basis configurations for this state */ struct config *cfp; /* All configurations in this set */ int statenum; /* Sequential number for this state */ struct action *ap; /* Array of actions for this state */ int nTknAct, nNtAct; /* Number of actions on terminals and nonterminals */ int iTknOfst, iNtOfst; /* yy_action[] offset for terminals and nonterms */ int iDflt; /* Default action */ }; #define NO_OFFSET (-2147483647) /* A followset propagation link indicates that the contents of one ** configuration followset should be propagated to another whenever ** the first changes. */ struct plink { struct config *cfp; /* The configuration to which linked */ struct plink *next; /* The next propagate link */ }; /* The state vector for the entire parser generator is recorded as ** follows. (LEMON uses no global variables and makes little use of ** static variables. Fields in the following structure can be thought ** of as begin global variables in the program.) */ struct lemon { struct state **sorted; /* Table of states sorted by state number */ struct rule *rule; /* List of all rules */ int nstate; /* Number of states */ int nrule; /* Number of rules */ int nsymbol; /* Number of terminal and nonterminal symbols */ int nterminal; /* Number of terminal symbols */ struct symbol **symbols; /* Sorted array of pointers to symbols */ int errorcnt; /* Number of errors */ struct symbol *errsym; /* The error symbol */ struct symbol *wildcard; /* Token that matches anything */ char *name; /* Name of the generated parser */ char *arg; /* Declaration of the 3th argument to parser */ char *tokentype; /* Type of terminal symbols in the parser stack */ char *vartype; /* The default type of non-terminal symbols */ char *start; /* Name of the start symbol for the grammar */ char *stacksize; /* Size of the parser stack */ char *include; /* Code to put at the start of the C file */ char *error; /* Code to execute when an error is seen */ char *overflow; /* Code to execute on a stack overflow */ char *failure; /* Code to execute on parser failure */ char *accept; /* Code to execute when the parser excepts */ char *extracode; /* Code appended to the generated file */ char *tokendest; /* Code to execute to destroy token data */ char *vardest; /* Code for the default non-terminal destructor */ char *filename; /* Name of the input file */ char *outname; /* Name of the current output file */ char *tokenprefix; /* A prefix added to token names in the .h file */ int nconflict; /* Number of parsing conflicts */ int tablesize; /* Size of the parse tables */ int basisflag; /* Print only basis configurations */ int has_fallback; /* True if any %fallback is seen in the grammar */ int nolinenosflag; /* True if #line statements should not be printed */ char *argv0; /* Name of the program */ }; #define MemoryCheck(X) if((X)==0){ \ extern void memory_error(); \ memory_error(); \ } /**************** From the file "table.h" *********************************/ /* ** All code in this file has been automatically generated ** from a specification in the file ** "table.q" ** by the associative array code building program "aagen". ** Do not edit this file! Instead, edit the specification ** file, then rerun aagen. */ /* ** Code for processing tables in the LEMON parser generator. */ /* Routines for handling a strings */ char *Strsafe(); void Strsafe_init(/* void */); int Strsafe_insert(/* char * */); char *Strsafe_find(/* char * */); /* Routines for handling symbols of the grammar */ struct symbol *Symbol_new(); int Symbolcmpp(/* struct symbol **, struct symbol ** */); void Symbol_init(/* void */); int Symbol_insert(/* struct symbol *, char * */); struct symbol *Symbol_find(/* char * */); struct symbol *Symbol_Nth(/* int */); int Symbol_count(/* */); struct symbol **Symbol_arrayof(/* */); /* Routines to manage the state table */ int Configcmp(/* struct config *, struct config * */); struct state *State_new(); void State_init(/* void */); int State_insert(/* struct state *, struct config * */); struct state *State_find(/* struct config * */); struct state **State_arrayof(/* */); /* Routines used for efficiency in Configlist_add */ void Configtable_init(/* void */); int Configtable_insert(/* struct config * */); struct config *Configtable_find(/* struct config * */); void Configtable_clear(/* int(*)(struct config *) */); /****************** From the file "action.c" *******************************/ /* ** Routines processing parser actions in the LEMON parser generator. */ /* Allocate a new parser action */ static struct action *Action_new(void){ static struct action *freelist = 0; struct action *new; if( freelist==0 ){ int i; int amt = 100; freelist = (struct action *)calloc(amt, sizeof(struct action)); if( freelist==0 ){ fprintf(stderr,"Unable to allocate memory for a new parser action."); exit(1); } for(i=0; inext; return new; } /* Compare two actions for sorting purposes. Return negative, zero, or ** positive if the first action is less than, equal to, or greater than ** the first */ static int actioncmp( struct action *ap1, struct action *ap2 ){ int rc; rc = ap1->sp->index - ap2->sp->index; if( rc==0 ){ rc = (int)ap1->type - (int)ap2->type; } if( rc==0 && ap1->type==REDUCE ){ rc = ap1->x.rp->index - ap2->x.rp->index; } return rc; } /* Sort parser actions */ static struct action *Action_sort( struct action *ap ){ ap = (struct action *)msort((char *)ap,(char **)&ap->next, (int(*)(const char*,const char*))actioncmp); return ap; } void Action_add(app,type,sp,arg) struct action **app; enum e_action type; struct symbol *sp; char *arg; { struct action *new; new = Action_new(); new->next = *app; *app = new; new->type = type; new->sp = sp; if( type==SHIFT ){ new->x.stp = (struct state *)arg; }else{ new->x.rp = (struct rule *)arg; } } /********************** New code to implement the "acttab" module ***********/ /* ** This module implements routines use to construct the yy_action[] table. */ /* ** The state of the yy_action table under construction is an instance of ** the following structure */ typedef struct acttab acttab; struct acttab { int nAction; /* Number of used slots in aAction[] */ int nActionAlloc; /* Slots allocated for aAction[] */ struct { int lookahead; /* Value of the lookahead token */ int action; /* Action to take on the given lookahead */ } *aAction, /* The yy_action[] table under construction */ *aLookahead; /* A single new transaction set */ int mnLookahead; /* Minimum aLookahead[].lookahead */ int mnAction; /* Action associated with mnLookahead */ int mxLookahead; /* Maximum aLookahead[].lookahead */ int nLookahead; /* Used slots in aLookahead[] */ int nLookaheadAlloc; /* Slots allocated in aLookahead[] */ }; /* Return the number of entries in the yy_action table */ #define acttab_size(X) ((X)->nAction) /* The value for the N-th entry in yy_action */ #define acttab_yyaction(X,N) ((X)->aAction[N].action) /* The value for the N-th entry in yy_lookahead */ #define acttab_yylookahead(X,N) ((X)->aAction[N].lookahead) /* Free all memory associated with the given acttab */ void acttab_free(acttab *p){ free( p->aAction ); free( p->aLookahead ); free( p ); } /* Allocate a new acttab structure */ acttab *acttab_alloc(void){ acttab *p = calloc( 1, sizeof(*p) ); if( p==0 ){ fprintf(stderr,"Unable to allocate memory for a new acttab."); exit(1); } memset(p, 0, sizeof(*p)); return p; } /* Add a new action to the current transaction set */ void acttab_action(acttab *p, int lookahead, int action){ if( p->nLookahead>=p->nLookaheadAlloc ){ p->nLookaheadAlloc += 25; p->aLookahead = realloc( p->aLookahead, sizeof(p->aLookahead[0])*p->nLookaheadAlloc ); if( p->aLookahead==0 ){ fprintf(stderr,"malloc failed\n"); exit(1); } } if( p->nLookahead==0 ){ p->mxLookahead = lookahead; p->mnLookahead = lookahead; p->mnAction = action; }else{ if( p->mxLookaheadmxLookahead = lookahead; if( p->mnLookahead>lookahead ){ p->mnLookahead = lookahead; p->mnAction = action; } } p->aLookahead[p->nLookahead].lookahead = lookahead; p->aLookahead[p->nLookahead].action = action; p->nLookahead++; } /* ** Add the transaction set built up with prior calls to acttab_action() ** into the current action table. Then reset the transaction set back ** to an empty set in preparation for a new round of acttab_action() calls. ** ** Return the offset into the action table of the new transaction. */ int acttab_insert(acttab *p){ int i, j, k, n; assert( p->nLookahead>0 ); /* Make sure we have enough space to hold the expanded action table ** in the worst case. The worst case occurs if the transaction set ** must be appended to the current action table */ n = p->mxLookahead + 1; if( p->nAction + n >= p->nActionAlloc ){ int oldAlloc = p->nActionAlloc; p->nActionAlloc = p->nAction + n + p->nActionAlloc + 20; p->aAction = realloc( p->aAction, sizeof(p->aAction[0])*p->nActionAlloc); if( p->aAction==0 ){ fprintf(stderr,"malloc failed\n"); exit(1); } for(i=oldAlloc; inActionAlloc; i++){ p->aAction[i].lookahead = -1; p->aAction[i].action = -1; } } /* Scan the existing action table looking for an offset where we can ** insert the current transaction set. Fall out of the loop when that ** offset is found. In the worst case, we fall out of the loop when ** i reaches p->nAction, which means we append the new transaction set. ** ** i is the index in p->aAction[] where p->mnLookahead is inserted. */ for(i=0; inAction+p->mnLookahead; i++){ if( p->aAction[i].lookahead<0 ){ for(j=0; jnLookahead; j++){ k = p->aLookahead[j].lookahead - p->mnLookahead + i; if( k<0 ) break; if( p->aAction[k].lookahead>=0 ) break; } if( jnLookahead ) continue; for(j=0; jnAction; j++){ if( p->aAction[j].lookahead==j+p->mnLookahead-i ) break; } if( j==p->nAction ){ break; /* Fits in empty slots */ } }else if( p->aAction[i].lookahead==p->mnLookahead ){ if( p->aAction[i].action!=p->mnAction ) continue; for(j=0; jnLookahead; j++){ k = p->aLookahead[j].lookahead - p->mnLookahead + i; if( k<0 || k>=p->nAction ) break; if( p->aLookahead[j].lookahead!=p->aAction[k].lookahead ) break; if( p->aLookahead[j].action!=p->aAction[k].action ) break; } if( jnLookahead ) continue; n = 0; for(j=0; jnAction; j++){ if( p->aAction[j].lookahead<0 ) continue; if( p->aAction[j].lookahead==j+p->mnLookahead-i ) n++; } if( n==p->nLookahead ){ break; /* Same as a prior transaction set */ } } } /* Insert transaction set at index i. */ for(j=0; jnLookahead; j++){ k = p->aLookahead[j].lookahead - p->mnLookahead + i; p->aAction[k] = p->aLookahead[j]; if( k>=p->nAction ) p->nAction = k+1; } p->nLookahead = 0; /* Return the offset that is added to the lookahead in order to get the ** index into yy_action of the action */ return i - p->mnLookahead; } /********************** From the file "build.c" *****************************/ /* ** Routines to construction the finite state machine for the LEMON ** parser generator. */ /* Find a precedence symbol of every rule in the grammar. ** ** Those rules which have a precedence symbol coded in the input ** grammar using the "[symbol]" construct will already have the ** rp->precsym field filled. Other rules take as their precedence ** symbol the first RHS symbol with a defined precedence. If there ** are not RHS symbols with a defined precedence, the precedence ** symbol field is left blank. */ void FindRulePrecedences(xp) struct lemon *xp; { struct rule *rp; for(rp=xp->rule; rp; rp=rp->next){ if( rp->precsym==0 ){ int i, j; for(i=0; inrhs && rp->precsym==0; i++){ struct symbol *sp = rp->rhs[i]; if( sp->type==MULTITERMINAL ){ for(j=0; jnsubsym; j++){ if( sp->subsym[j]->prec>=0 ){ rp->precsym = sp->subsym[j]; break; } } }else if( sp->prec>=0 ){ rp->precsym = rp->rhs[i]; } } } } return; } /* Find all nonterminals which will generate the empty string. ** Then go back and compute the first sets of every nonterminal. ** The first set is the set of all terminal symbols which can begin ** a string generated by that nonterminal. */ void FindFirstSets(lemp) struct lemon *lemp; { int i, j; struct rule *rp; int progress; for(i=0; insymbol; i++){ lemp->symbols[i]->lambda = LEMON_FALSE; } for(i=lemp->nterminal; insymbol; i++){ lemp->symbols[i]->firstset = SetNew(); } /* First compute all lambdas */ do{ progress = 0; for(rp=lemp->rule; rp; rp=rp->next){ if( rp->lhs->lambda ) continue; for(i=0; inrhs; i++){ struct symbol *sp = rp->rhs[i]; if( sp->type!=TERMINAL || sp->lambda==LEMON_FALSE ) break; } if( i==rp->nrhs ){ rp->lhs->lambda = LEMON_TRUE; progress = 1; } } }while( progress ); /* Now compute all first sets */ do{ struct symbol *s1, *s2; progress = 0; for(rp=lemp->rule; rp; rp=rp->next){ s1 = rp->lhs; for(i=0; inrhs; i++){ s2 = rp->rhs[i]; if( s2->type==TERMINAL ){ progress += SetAdd(s1->firstset,s2->index); break; }else if( s2->type==MULTITERMINAL ){ for(j=0; jnsubsym; j++){ progress += SetAdd(s1->firstset,s2->subsym[j]->index); } break; }else if( s1==s2 ){ if( s1->lambda==LEMON_FALSE ) break; }else{ progress += SetUnion(s1->firstset,s2->firstset); if( s2->lambda==LEMON_FALSE ) break; } } } }while( progress ); return; } /* Compute all LR(0) states for the grammar. Links ** are added to between some states so that the LR(1) follow sets ** can be computed later. */ PRIVATE struct state *getstate(/* struct lemon * */); /* forward reference */ void FindStates(lemp) struct lemon *lemp; { struct symbol *sp; struct rule *rp; Configlist_init(); /* Find the start symbol */ if( lemp->start ){ sp = Symbol_find(lemp->start); if( sp==0 ){ ErrorMsg(lemp->filename,0, "The specified start symbol \"%s\" is not \ in a nonterminal of the grammar. \"%s\" will be used as the start \ symbol instead.",lemp->start,lemp->rule->lhs->name); lemp->errorcnt++; sp = lemp->rule->lhs; } }else{ sp = lemp->rule->lhs; } /* Make sure the start symbol doesn't occur on the right-hand side of ** any rule. Report an error if it does. (YACC would generate a new ** start symbol in this case.) */ for(rp=lemp->rule; rp; rp=rp->next){ int i; for(i=0; inrhs; i++){ if( rp->rhs[i]==sp ){ /* FIX ME: Deal with multiterminals */ ErrorMsg(lemp->filename,0, "The start symbol \"%s\" occurs on the \ right-hand side of a rule. This will result in a parser which \ does not work properly.",sp->name); lemp->errorcnt++; } } } /* The basis configuration set for the first state ** is all rules which have the start symbol as their ** left-hand side */ for(rp=sp->rule; rp; rp=rp->nextlhs){ struct config *newcfp; rp->lhsStart = 1; newcfp = Configlist_addbasis(rp,0); SetAdd(newcfp->fws,0); } /* Compute the first state. All other states will be ** computed automatically during the computation of the first one. ** The returned pointer to the first state is not used. */ (void)getstate(lemp); return; } /* Return a pointer to a state which is described by the configuration ** list which has been built from calls to Configlist_add. */ PRIVATE void buildshifts(/* struct lemon *, struct state * */); /* Forwd ref */ PRIVATE struct state *getstate(lemp) struct lemon *lemp; { struct config *cfp, *bp; struct state *stp; /* Extract the sorted basis of the new state. The basis was constructed ** by prior calls to "Configlist_addbasis()". */ Configlist_sortbasis(); bp = Configlist_basis(); /* Get a state with the same basis */ stp = State_find(bp); if( stp ){ /* A state with the same basis already exists! Copy all the follow-set ** propagation links from the state under construction into the ** preexisting state, then return a pointer to the preexisting state */ struct config *x, *y; for(x=bp, y=stp->bp; x && y; x=x->bp, y=y->bp){ Plink_copy(&y->bplp,x->bplp); Plink_delete(x->fplp); x->fplp = x->bplp = 0; } cfp = Configlist_return(); Configlist_eat(cfp); }else{ /* This really is a new state. Construct all the details */ Configlist_closure(lemp); /* Compute the configuration closure */ Configlist_sort(); /* Sort the configuration closure */ cfp = Configlist_return(); /* Get a pointer to the config list */ stp = State_new(); /* A new state structure */ MemoryCheck(stp); stp->bp = bp; /* Remember the configuration basis */ stp->cfp = cfp; /* Remember the configuration closure */ stp->statenum = lemp->nstate++; /* Every state gets a sequence number */ stp->ap = 0; /* No actions, yet. */ State_insert(stp,stp->bp); /* Add to the state table */ buildshifts(lemp,stp); /* Recursively compute successor states */ } return stp; } /* ** Return true if two symbols are the same. */ int same_symbol(a,b) struct symbol *a; struct symbol *b; { int i; if( a==b ) return 1; if( a->type!=MULTITERMINAL ) return 0; if( b->type!=MULTITERMINAL ) return 0; if( a->nsubsym!=b->nsubsym ) return 0; for(i=0; insubsym; i++){ if( a->subsym[i]!=b->subsym[i] ) return 0; } return 1; } /* Construct all successor states to the given state. A "successor" ** state is any state which can be reached by a shift action. */ PRIVATE void buildshifts(lemp,stp) struct lemon *lemp; struct state *stp; /* The state from which successors are computed */ { struct config *cfp; /* For looping thru the config closure of "stp" */ struct config *bcfp; /* For the inner loop on config closure of "stp" */ struct config *new; /* */ struct symbol *sp; /* Symbol following the dot in configuration "cfp" */ struct symbol *bsp; /* Symbol following the dot in configuration "bcfp" */ struct state *newstp; /* A pointer to a successor state */ /* Each configuration becomes complete after it contibutes to a successor ** state. Initially, all configurations are incomplete */ for(cfp=stp->cfp; cfp; cfp=cfp->next) cfp->status = INCOMPLETE; /* Loop through all configurations of the state "stp" */ for(cfp=stp->cfp; cfp; cfp=cfp->next){ if( cfp->status==COMPLETE ) continue; /* Already used by inner loop */ if( cfp->dot>=cfp->rp->nrhs ) continue; /* Can't shift this config */ Configlist_reset(); /* Reset the new config set */ sp = cfp->rp->rhs[cfp->dot]; /* Symbol after the dot */ /* For every configuration in the state "stp" which has the symbol "sp" ** following its dot, add the same configuration to the basis set under ** construction but with the dot shifted one symbol to the right. */ for(bcfp=cfp; bcfp; bcfp=bcfp->next){ if( bcfp->status==COMPLETE ) continue; /* Already used */ if( bcfp->dot>=bcfp->rp->nrhs ) continue; /* Can't shift this one */ bsp = bcfp->rp->rhs[bcfp->dot]; /* Get symbol after dot */ if( !same_symbol(bsp,sp) ) continue; /* Must be same as for "cfp" */ bcfp->status = COMPLETE; /* Mark this config as used */ new = Configlist_addbasis(bcfp->rp,bcfp->dot+1); Plink_add(&new->bplp,bcfp); } /* Get a pointer to the state described by the basis configuration set ** constructed in the preceding loop */ newstp = getstate(lemp); /* The state "newstp" is reached from the state "stp" by a shift action ** on the symbol "sp" */ if( sp->type==MULTITERMINAL ){ int i; for(i=0; insubsym; i++){ Action_add(&stp->ap,SHIFT,sp->subsym[i],(char*)newstp); } }else{ Action_add(&stp->ap,SHIFT,sp,(char *)newstp); } } } /* ** Construct the propagation links */ void FindLinks(lemp) struct lemon *lemp; { int i; struct config *cfp, *other; struct state *stp; struct plink *plp; /* Housekeeping detail: ** Add to every propagate link a pointer back to the state to ** which the link is attached. */ for(i=0; instate; i++){ stp = lemp->sorted[i]; for(cfp=stp->cfp; cfp; cfp=cfp->next){ cfp->stp = stp; } } /* Convert all backlinks into forward links. Only the forward ** links are used in the follow-set computation. */ for(i=0; instate; i++){ stp = lemp->sorted[i]; for(cfp=stp->cfp; cfp; cfp=cfp->next){ for(plp=cfp->bplp; plp; plp=plp->next){ other = plp->cfp; Plink_add(&other->fplp,cfp); } } } } /* Compute all followsets. ** ** A followset is the set of all symbols which can come immediately ** after a configuration. */ void FindFollowSets(lemp) struct lemon *lemp; { int i; struct config *cfp; struct plink *plp; int progress; int change; for(i=0; instate; i++){ for(cfp=lemp->sorted[i]->cfp; cfp; cfp=cfp->next){ cfp->status = INCOMPLETE; } } do{ progress = 0; for(i=0; instate; i++){ for(cfp=lemp->sorted[i]->cfp; cfp; cfp=cfp->next){ if( cfp->status==COMPLETE ) continue; for(plp=cfp->fplp; plp; plp=plp->next){ change = SetUnion(plp->cfp->fws,cfp->fws); if( change ){ plp->cfp->status = INCOMPLETE; progress = 1; } } cfp->status = COMPLETE; } } }while( progress ); } static int resolve_conflict(); /* Compute the reduce actions, and resolve conflicts. */ void FindActions(lemp) struct lemon *lemp; { int i,j; struct config *cfp; struct state *stp; struct symbol *sp; struct rule *rp; /* Add all of the reduce actions ** A reduce action is added for each element of the followset of ** a configuration which has its dot at the extreme right. */ for(i=0; instate; i++){ /* Loop over all states */ stp = lemp->sorted[i]; for(cfp=stp->cfp; cfp; cfp=cfp->next){ /* Loop over all configurations */ if( cfp->rp->nrhs==cfp->dot ){ /* Is dot at extreme right? */ for(j=0; jnterminal; j++){ if( SetFind(cfp->fws,j) ){ /* Add a reduce action to the state "stp" which will reduce by the ** rule "cfp->rp" if the lookahead symbol is "lemp->symbols[j]" */ Action_add(&stp->ap,REDUCE,lemp->symbols[j],(char *)cfp->rp); } } } } } /* Add the accepting token */ if( lemp->start ){ sp = Symbol_find(lemp->start); if( sp==0 ) sp = lemp->rule->lhs; }else{ sp = lemp->rule->lhs; } /* Add to the first state (which is always the starting state of the ** finite state machine) an action to ACCEPT if the lookahead is the ** start nonterminal. */ Action_add(&lemp->sorted[0]->ap,ACCEPT,sp,0); /* Resolve conflicts */ for(i=0; instate; i++){ struct action *ap, *nap; struct state *stp; stp = lemp->sorted[i]; /* assert( stp->ap ); */ stp->ap = Action_sort(stp->ap); for(ap=stp->ap; ap && ap->next; ap=ap->next){ for(nap=ap->next; nap && nap->sp==ap->sp; nap=nap->next){ /* The two actions "ap" and "nap" have the same lookahead. ** Figure out which one should be used */ lemp->nconflict += resolve_conflict(ap,nap,lemp->errsym); } } } /* Report an error for each rule that can never be reduced. */ for(rp=lemp->rule; rp; rp=rp->next) rp->canReduce = LEMON_FALSE; for(i=0; instate; i++){ struct action *ap; for(ap=lemp->sorted[i]->ap; ap; ap=ap->next){ if( ap->type==REDUCE ) ap->x.rp->canReduce = LEMON_TRUE; } } for(rp=lemp->rule; rp; rp=rp->next){ if( rp->canReduce ) continue; ErrorMsg(lemp->filename,rp->ruleline,"This rule can not be reduced.\n"); lemp->errorcnt++; } } /* Resolve a conflict between the two given actions. If the ** conflict can't be resolved, return non-zero. ** ** NO LONGER TRUE: ** To resolve a conflict, first look to see if either action ** is on an error rule. In that case, take the action which ** is not associated with the error rule. If neither or both ** actions are associated with an error rule, then try to ** use precedence to resolve the conflict. ** ** If either action is a SHIFT, then it must be apx. This ** function won't work if apx->type==REDUCE and apy->type==SHIFT. */ static int resolve_conflict(apx,apy,errsym) struct action *apx; struct action *apy; struct symbol *errsym; /* The error symbol (if defined. NULL otherwise) */ { struct symbol *spx, *spy; int errcnt = 0; assert( apx->sp==apy->sp ); /* Otherwise there would be no conflict */ if( apx->type==SHIFT && apy->type==SHIFT ){ apy->type = SSCONFLICT; errcnt++; } if( apx->type==SHIFT && apy->type==REDUCE ){ spx = apx->sp; spy = apy->x.rp->precsym; if( spy==0 || spx->prec<0 || spy->prec<0 ){ /* Not enough precedence information. */ apy->type = SRCONFLICT; errcnt++; }else if( spx->prec>spy->prec ){ /* Lower precedence wins */ apy->type = RD_RESOLVED; }else if( spx->precprec ){ apx->type = SH_RESOLVED; }else if( spx->prec==spy->prec && spx->assoc==RIGHT ){ /* Use operator */ apy->type = RD_RESOLVED; /* associativity */ }else if( spx->prec==spy->prec && spx->assoc==LEFT ){ /* to break tie */ apx->type = SH_RESOLVED; }else{ assert( spx->prec==spy->prec && spx->assoc==NONE ); apy->type = SRCONFLICT; errcnt++; } }else if( apx->type==REDUCE && apy->type==REDUCE ){ spx = apx->x.rp->precsym; spy = apy->x.rp->precsym; if( spx==0 || spy==0 || spx->prec<0 || spy->prec<0 || spx->prec==spy->prec ){ apy->type = RRCONFLICT; errcnt++; }else if( spx->prec>spy->prec ){ apy->type = RD_RESOLVED; }else if( spx->precprec ){ apx->type = RD_RESOLVED; } }else{ assert( apx->type==SH_RESOLVED || apx->type==RD_RESOLVED || apx->type==SSCONFLICT || apx->type==SRCONFLICT || apx->type==RRCONFLICT || apy->type==SH_RESOLVED || apy->type==RD_RESOLVED || apy->type==SSCONFLICT || apy->type==SRCONFLICT || apy->type==RRCONFLICT ); /* The REDUCE/SHIFT case cannot happen because SHIFTs come before ** REDUCEs on the list. If we reach this point it must be because ** the parser conflict had already been resolved. */ } return errcnt; } /********************* From the file "configlist.c" *************************/ /* ** Routines to processing a configuration list and building a state ** in the LEMON parser generator. */ static struct config *freelist = 0; /* List of free configurations */ static struct config *current = 0; /* Top of list of configurations */ static struct config **currentend = 0; /* Last on list of configs */ static struct config *basis = 0; /* Top of list of basis configs */ static struct config **basisend = 0; /* End of list of basis configs */ /* Return a pointer to a new configuration */ PRIVATE struct config *newconfig(){ struct config *new; if( freelist==0 ){ int i; int amt = 3; freelist = (struct config *)calloc( amt, sizeof(struct config) ); if( freelist==0 ){ fprintf(stderr,"Unable to allocate memory for a new configuration."); exit(1); } for(i=0; inext; return new; } /* The configuration "old" is no longer used */ PRIVATE void deleteconfig(old) struct config *old; { old->next = freelist; freelist = old; } /* Initialized the configuration list builder */ void Configlist_init(){ current = 0; currentend = ¤t; basis = 0; basisend = &basis; Configtable_init(); return; } /* Initialized the configuration list builder */ void Configlist_reset(){ current = 0; currentend = ¤t; basis = 0; basisend = &basis; Configtable_clear(0); return; } /* Add another configuration to the configuration list */ struct config *Configlist_add(rp,dot) struct rule *rp; /* The rule */ int dot; /* Index into the RHS of the rule where the dot goes */ { struct config *cfp, model; assert( currentend!=0 ); model.rp = rp; model.dot = dot; cfp = Configtable_find(&model); if( cfp==0 ){ cfp = newconfig(); cfp->rp = rp; cfp->dot = dot; cfp->fws = SetNew(); cfp->stp = 0; cfp->fplp = cfp->bplp = 0; cfp->next = 0; cfp->bp = 0; *currentend = cfp; currentend = &cfp->next; Configtable_insert(cfp); } return cfp; } /* Add a basis configuration to the configuration list */ struct config *Configlist_addbasis(rp,dot) struct rule *rp; int dot; { struct config *cfp, model; assert( basisend!=0 ); assert( currentend!=0 ); model.rp = rp; model.dot = dot; cfp = Configtable_find(&model); if( cfp==0 ){ cfp = newconfig(); cfp->rp = rp; cfp->dot = dot; cfp->fws = SetNew(); cfp->stp = 0; cfp->fplp = cfp->bplp = 0; cfp->next = 0; cfp->bp = 0; *currentend = cfp; currentend = &cfp->next; *basisend = cfp; basisend = &cfp->bp; Configtable_insert(cfp); } return cfp; } /* Compute the closure of the configuration list */ void Configlist_closure(lemp) struct lemon *lemp; { struct config *cfp, *newcfp; struct rule *rp, *newrp; struct symbol *sp, *xsp; int i, dot; assert( currentend!=0 ); for(cfp=current; cfp; cfp=cfp->next){ rp = cfp->rp; dot = cfp->dot; if( dot>=rp->nrhs ) continue; sp = rp->rhs[dot]; if( sp->type==NONTERMINAL ){ if( sp->rule==0 && sp!=lemp->errsym ){ ErrorMsg(lemp->filename,rp->line,"Nonterminal \"%s\" has no rules.", sp->name); lemp->errorcnt++; } for(newrp=sp->rule; newrp; newrp=newrp->nextlhs){ newcfp = Configlist_add(newrp,0); for(i=dot+1; inrhs; i++){ xsp = rp->rhs[i]; if( xsp->type==TERMINAL ){ SetAdd(newcfp->fws,xsp->index); break; }else if( xsp->type==MULTITERMINAL ){ int k; for(k=0; knsubsym; k++){ SetAdd(newcfp->fws, xsp->subsym[k]->index); } break; }else{ SetUnion(newcfp->fws,xsp->firstset); if( xsp->lambda==LEMON_FALSE ) break; } } if( i==rp->nrhs ) Plink_add(&cfp->fplp,newcfp); } } } return; } /* Sort the configuration list */ void Configlist_sort(){ current = (struct config *)msort((char *)current,(char **)&(current->next),Configcmp); currentend = 0; return; } /* Sort the basis configuration list */ void Configlist_sortbasis(){ basis = (struct config *)msort((char *)current,(char **)&(current->bp),Configcmp); basisend = 0; return; } /* Return a pointer to the head of the configuration list and ** reset the list */ struct config *Configlist_return(){ struct config *old; old = current; current = 0; currentend = 0; return old; } /* Return a pointer to the head of the configuration list and ** reset the list */ struct config *Configlist_basis(){ struct config *old; old = basis; basis = 0; basisend = 0; return old; } /* Free all elements of the given configuration list */ void Configlist_eat(cfp) struct config *cfp; { struct config *nextcfp; for(; cfp; cfp=nextcfp){ nextcfp = cfp->next; assert( cfp->fplp==0 ); assert( cfp->bplp==0 ); if( cfp->fws ) SetFree(cfp->fws); deleteconfig(cfp); } return; } /***************** From the file "error.c" *********************************/ /* ** Code for printing error message. */ /* Find a good place to break "msg" so that its length is at least "min" ** but no more than "max". Make the point as close to max as possible. */ static int findbreak(msg,min,max) char *msg; int min; int max; { int i,spot; char c; for(i=spot=min; i<=max; i++){ c = msg[i]; if( c=='\t' ) msg[i] = ' '; if( c=='\n' ){ msg[i] = ' '; spot = i; break; } if( c==0 ){ spot = i; break; } if( c=='-' && i0 ){ sprintf(prefix,"%.*s:%d: ",PREFIXLIMIT-10,filename,lineno); }else{ sprintf(prefix,"%.*s: ",PREFIXLIMIT-10,filename); } prefixsize = lemonStrlen(prefix); availablewidth = LINEWIDTH - prefixsize; /* Generate the error message */ vsprintf(errmsg,format,ap); va_end(ap); errmsgsize = lemonStrlen(errmsg); /* Remove trailing '\n's from the error message. */ while( errmsgsize>0 && errmsg[errmsgsize-1]=='\n' ){ errmsg[--errmsgsize] = 0; } /* Print the error message */ base = 0; while( errmsg[base]!=0 ){ end = restart = findbreak(&errmsg[base],0,availablewidth); restart += base; while( errmsg[restart]==' ' ) restart++; fprintf(stdout,"%s%.*s\n",prefix,end,&errmsg[base]); base = restart; } } /**************** From the file "main.c" ************************************/ /* ** Main program file for the LEMON parser generator. */ /* Report an out-of-memory condition and abort. This function ** is used mostly by the "MemoryCheck" macro in struct.h */ void memory_error(){ fprintf(stderr,"Out of memory. Aborting...\n"); exit(1); } static int nDefine = 0; /* Number of -D options on the command line */ static char **azDefine = 0; /* Name of the -D macros */ /* This routine is called with the argument to each -D command-line option. ** Add the macro defined to the azDefine array. */ static void handle_D_option(char *z){ char **paz; nDefine++; azDefine = realloc(azDefine, sizeof(azDefine[0])*nDefine); if( azDefine==0 ){ fprintf(stderr,"out of memory\n"); exit(1); } paz = &azDefine[nDefine-1]; *paz = malloc( lemonStrlen(z)+1 ); if( *paz==0 ){ fprintf(stderr,"out of memory\n"); exit(1); } strcpy(*paz, z); for(z=*paz; *z && *z!='='; z++){} *z = 0; } /* The main program. Parse the command line and do it... */ int main(argc,argv) int argc; char **argv; { static int version = 0; static int rpflag = 0; static int basisflag = 0; static int compress = 0; static int quiet = 0; static int statistics = 0; static int mhflag = 0; static int nolinenosflag = 0; static struct s_options options[] = { {OPT_FLAG, "b", (char*)&basisflag, "Print only the basis in report."}, {OPT_FLAG, "c", (char*)&compress, "Don't compress the action table."}, {OPT_FSTR, "D", (char*)handle_D_option, "Define an %ifdef macro."}, {OPT_FLAG, "g", (char*)&rpflag, "Print grammar without actions."}, {OPT_FLAG, "m", (char*)&mhflag, "Output a makeheaders compatible file."}, {OPT_FLAG, "l", (char*)&nolinenosflag, "Do not print #line statements."}, {OPT_FLAG, "q", (char*)&quiet, "(Quiet) Don't print the report file."}, {OPT_FLAG, "s", (char*)&statistics, "Print parser stats to standard output."}, {OPT_FLAG, "x", (char*)&version, "Print the version number."}, {OPT_FLAG,0,0,0} }; int i; struct lemon lem; OptInit(argv,options,stderr); if( version ){ printf("Lemon version 1.0\n"); exit(0); } if( OptNArgs()!=1 ){ fprintf(stderr,"Exactly one filename argument is required.\n"); exit(1); } memset(&lem, 0, sizeof(lem)); lem.errorcnt = 0; /* Initialize the machine */ Strsafe_init(); Symbol_init(); State_init(); lem.argv0 = argv[0]; lem.filename = OptArg(0); lem.basisflag = basisflag; lem.nolinenosflag = nolinenosflag; Symbol_new("$"); lem.errsym = Symbol_new("error"); lem.errsym->useCnt = 0; /* Parse the input file */ Parse(&lem); if( lem.errorcnt ) exit(lem.errorcnt); if( lem.nrule==0 ){ fprintf(stderr,"Empty grammar.\n"); exit(1); } /* Count and index the symbols of the grammar */ lem.nsymbol = Symbol_count(); Symbol_new("{default}"); lem.symbols = Symbol_arrayof(); for(i=0; i<=lem.nsymbol; i++) lem.symbols[i]->index = i; qsort(lem.symbols,lem.nsymbol+1,sizeof(struct symbol*), (int(*)())Symbolcmpp); for(i=0; i<=lem.nsymbol; i++) lem.symbols[i]->index = i; for(i=1; isupper(lem.symbols[i]->name[0]); i++); lem.nterminal = i; /* Generate a reprint of the grammar, if requested on the command line */ if( rpflag ){ Reprint(&lem); }else{ /* Initialize the size for all follow and first sets */ SetSize(lem.nterminal+1); /* Find the precedence for every production rule (that has one) */ FindRulePrecedences(&lem); /* Compute the lambda-nonterminals and the first-sets for every ** nonterminal */ FindFirstSets(&lem); /* Compute all LR(0) states. Also record follow-set propagation ** links so that the follow-set can be computed later */ lem.nstate = 0; FindStates(&lem); lem.sorted = State_arrayof(); /* Tie up loose ends on the propagation links */ FindLinks(&lem); /* Compute the follow set of every reducible configuration */ FindFollowSets(&lem); /* Compute the action tables */ FindActions(&lem); /* Compress the action tables */ if( compress==0 ) CompressTables(&lem); /* Reorder and renumber the states so that states with fewer choices ** occur at the end. */ ResortStates(&lem); /* Generate a report of the parser generated. (the "y.output" file) */ if( !quiet ) ReportOutput(&lem); /* Generate the source code for the parser */ ReportTable(&lem, mhflag); /* Produce a header file for use by the scanner. (This step is ** omitted if the "-m" option is used because makeheaders will ** generate the file for us.) */ if( !mhflag ) ReportHeader(&lem); } if( statistics ){ printf("Parser statistics: %d terminals, %d nonterminals, %d rules\n", lem.nterminal, lem.nsymbol - lem.nterminal, lem.nrule); printf(" %d states, %d parser table entries, %d conflicts\n", lem.nstate, lem.tablesize, lem.nconflict); } if( lem.nconflict ){ fprintf(stderr,"%d parsing conflicts.\n",lem.nconflict); } exit(lem.errorcnt + lem.nconflict); return (lem.errorcnt + lem.nconflict); } /******************** From the file "msort.c" *******************************/ /* ** A generic merge-sort program. ** ** USAGE: ** Let "ptr" be a pointer to some structure which is at the head of ** a null-terminated list. Then to sort the list call: ** ** ptr = msort(ptr,&(ptr->next),cmpfnc); ** ** In the above, "cmpfnc" is a pointer to a function which compares ** two instances of the structure and returns an integer, as in ** strcmp. The second argument is a pointer to the pointer to the ** second element of the linked list. This address is used to compute ** the offset to the "next" field within the structure. The offset to ** the "next" field must be constant for all structures in the list. ** ** The function returns a new pointer which is the head of the list ** after sorting. ** ** ALGORITHM: ** Merge-sort. */ /* ** Return a pointer to the next structure in the linked list. */ #define NEXT(A) (*(char**)(((unsigned long)A)+offset)) /* ** Inputs: ** a: A sorted, null-terminated linked list. (May be null). ** b: A sorted, null-terminated linked list. (May be null). ** cmp: A pointer to the comparison function. ** offset: Offset in the structure to the "next" field. ** ** Return Value: ** A pointer to the head of a sorted list containing the elements ** of both a and b. ** ** Side effects: ** The "next" pointers for elements in the lists a and b are ** changed. */ static char *merge( char *a, char *b, int (*cmp)(const char*,const char*), int offset ){ char *ptr, *head; if( a==0 ){ head = b; }else if( b==0 ){ head = a; }else{ if( (*cmp)(a,b)<0 ){ ptr = a; a = NEXT(a); }else{ ptr = b; b = NEXT(b); } head = ptr; while( a && b ){ if( (*cmp)(a,b)<0 ){ NEXT(ptr) = a; ptr = a; a = NEXT(a); }else{ NEXT(ptr) = b; ptr = b; b = NEXT(b); } } if( a ) NEXT(ptr) = a; else NEXT(ptr) = b; } return head; } /* ** Inputs: ** list: Pointer to a singly-linked list of structures. ** next: Pointer to pointer to the second element of the list. ** cmp: A comparison function. ** ** Return Value: ** A pointer to the head of a sorted list containing the elements ** orginally in list. ** ** Side effects: ** The "next" pointers for elements in list are changed. */ #define LISTSIZE 30 static char *msort( char *list, char **next, int (*cmp)(const char*,const char*) ){ unsigned long offset; char *ep; char *set[LISTSIZE]; int i; offset = (unsigned long)next - (unsigned long)list; for(i=0; istate = WAITING_FOR_DECL_KEYWORD; }else if( islower(x[0]) ){ psp->lhs = Symbol_new(x); psp->nrhs = 0; psp->lhsalias = 0; psp->state = WAITING_FOR_ARROW; }else if( x[0]=='{' ){ if( psp->prevrule==0 ){ ErrorMsg(psp->filename,psp->tokenlineno, "There is no prior rule opon which to attach the code \ fragment which begins on this line."); psp->errorcnt++; }else if( psp->prevrule->code!=0 ){ ErrorMsg(psp->filename,psp->tokenlineno, "Code fragment beginning on this line is not the first \ to follow the previous rule."); psp->errorcnt++; }else{ psp->prevrule->line = psp->tokenlineno; psp->prevrule->code = &x[1]; } }else if( x[0]=='[' ){ psp->state = PRECEDENCE_MARK_1; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Token \"%s\" should be either \"%%\" or a nonterminal name.", x); psp->errorcnt++; } break; case PRECEDENCE_MARK_1: if( !isupper(x[0]) ){ ErrorMsg(psp->filename,psp->tokenlineno, "The precedence symbol must be a terminal."); psp->errorcnt++; }else if( psp->prevrule==0 ){ ErrorMsg(psp->filename,psp->tokenlineno, "There is no prior rule to assign precedence \"[%s]\".",x); psp->errorcnt++; }else if( psp->prevrule->precsym!=0 ){ ErrorMsg(psp->filename,psp->tokenlineno, "Precedence mark on this line is not the first \ to follow the previous rule."); psp->errorcnt++; }else{ psp->prevrule->precsym = Symbol_new(x); } psp->state = PRECEDENCE_MARK_2; break; case PRECEDENCE_MARK_2: if( x[0]!=']' ){ ErrorMsg(psp->filename,psp->tokenlineno, "Missing \"]\" on precedence mark."); psp->errorcnt++; } psp->state = WAITING_FOR_DECL_OR_RULE; break; case WAITING_FOR_ARROW: if( x[0]==':' && x[1]==':' && x[2]=='=' ){ psp->state = IN_RHS; }else if( x[0]=='(' ){ psp->state = LHS_ALIAS_1; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Expected to see a \":\" following the LHS symbol \"%s\".", psp->lhs->name); psp->errorcnt++; psp->state = RESYNC_AFTER_RULE_ERROR; } break; case LHS_ALIAS_1: if( isalpha(x[0]) ){ psp->lhsalias = x; psp->state = LHS_ALIAS_2; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "\"%s\" is not a valid alias for the LHS \"%s\"\n", x,psp->lhs->name); psp->errorcnt++; psp->state = RESYNC_AFTER_RULE_ERROR; } break; case LHS_ALIAS_2: if( x[0]==')' ){ psp->state = LHS_ALIAS_3; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Missing \")\" following LHS alias name \"%s\".",psp->lhsalias); psp->errorcnt++; psp->state = RESYNC_AFTER_RULE_ERROR; } break; case LHS_ALIAS_3: if( x[0]==':' && x[1]==':' && x[2]=='=' ){ psp->state = IN_RHS; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Missing \"->\" following: \"%s(%s)\".", psp->lhs->name,psp->lhsalias); psp->errorcnt++; psp->state = RESYNC_AFTER_RULE_ERROR; } break; case IN_RHS: if( x[0]=='.' ){ struct rule *rp; rp = (struct rule *)calloc( sizeof(struct rule) + sizeof(struct symbol*)*psp->nrhs + sizeof(char*)*psp->nrhs, 1); if( rp==0 ){ ErrorMsg(psp->filename,psp->tokenlineno, "Can't allocate enough memory for this rule."); psp->errorcnt++; psp->prevrule = 0; }else{ int i; rp->ruleline = psp->tokenlineno; rp->rhs = (struct symbol**)&rp[1]; rp->rhsalias = (char**)&(rp->rhs[psp->nrhs]); for(i=0; inrhs; i++){ rp->rhs[i] = psp->rhs[i]; rp->rhsalias[i] = psp->alias[i]; } rp->lhs = psp->lhs; rp->lhsalias = psp->lhsalias; rp->nrhs = psp->nrhs; rp->code = 0; rp->precsym = 0; rp->index = psp->gp->nrule++; rp->nextlhs = rp->lhs->rule; rp->lhs->rule = rp; rp->next = 0; if( psp->firstrule==0 ){ psp->firstrule = psp->lastrule = rp; }else{ psp->lastrule->next = rp; psp->lastrule = rp; } psp->prevrule = rp; } psp->state = WAITING_FOR_DECL_OR_RULE; }else if( isalpha(x[0]) ){ if( psp->nrhs>=MAXRHS ){ ErrorMsg(psp->filename,psp->tokenlineno, "Too many symbols on RHS of rule beginning at \"%s\".", x); psp->errorcnt++; psp->state = RESYNC_AFTER_RULE_ERROR; }else{ psp->rhs[psp->nrhs] = Symbol_new(x); psp->alias[psp->nrhs] = 0; psp->nrhs++; } }else if( (x[0]=='|' || x[0]=='/') && psp->nrhs>0 ){ struct symbol *msp = psp->rhs[psp->nrhs-1]; if( msp->type!=MULTITERMINAL ){ struct symbol *origsp = msp; msp = calloc(1,sizeof(*msp)); memset(msp, 0, sizeof(*msp)); msp->type = MULTITERMINAL; msp->nsubsym = 1; msp->subsym = calloc(1,sizeof(struct symbol*)); msp->subsym[0] = origsp; msp->name = origsp->name; psp->rhs[psp->nrhs-1] = msp; } msp->nsubsym++; msp->subsym = realloc(msp->subsym, sizeof(struct symbol*)*msp->nsubsym); msp->subsym[msp->nsubsym-1] = Symbol_new(&x[1]); if( islower(x[1]) || islower(msp->subsym[0]->name[0]) ){ ErrorMsg(psp->filename,psp->tokenlineno, "Cannot form a compound containing a non-terminal"); psp->errorcnt++; } }else if( x[0]=='(' && psp->nrhs>0 ){ psp->state = RHS_ALIAS_1; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Illegal character on RHS of rule: \"%s\".",x); psp->errorcnt++; psp->state = RESYNC_AFTER_RULE_ERROR; } break; case RHS_ALIAS_1: if( isalpha(x[0]) ){ psp->alias[psp->nrhs-1] = x; psp->state = RHS_ALIAS_2; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "\"%s\" is not a valid alias for the RHS symbol \"%s\"\n", x,psp->rhs[psp->nrhs-1]->name); psp->errorcnt++; psp->state = RESYNC_AFTER_RULE_ERROR; } break; case RHS_ALIAS_2: if( x[0]==')' ){ psp->state = IN_RHS; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Missing \")\" following LHS alias name \"%s\".",psp->lhsalias); psp->errorcnt++; psp->state = RESYNC_AFTER_RULE_ERROR; } break; case WAITING_FOR_DECL_KEYWORD: if( isalpha(x[0]) ){ psp->declkeyword = x; psp->declargslot = 0; psp->decllinenoslot = 0; psp->insertLineMacro = 1; psp->state = WAITING_FOR_DECL_ARG; if( strcmp(x,"name")==0 ){ psp->declargslot = &(psp->gp->name); psp->insertLineMacro = 0; }else if( strcmp(x,"include")==0 ){ psp->declargslot = &(psp->gp->include); }else if( strcmp(x,"code")==0 ){ psp->declargslot = &(psp->gp->extracode); }else if( strcmp(x,"token_destructor")==0 ){ psp->declargslot = &psp->gp->tokendest; }else if( strcmp(x,"default_destructor")==0 ){ psp->declargslot = &psp->gp->vardest; }else if( strcmp(x,"token_prefix")==0 ){ psp->declargslot = &psp->gp->tokenprefix; psp->insertLineMacro = 0; }else if( strcmp(x,"syntax_error")==0 ){ psp->declargslot = &(psp->gp->error); }else if( strcmp(x,"parse_accept")==0 ){ psp->declargslot = &(psp->gp->accept); }else if( strcmp(x,"parse_failure")==0 ){ psp->declargslot = &(psp->gp->failure); }else if( strcmp(x,"stack_overflow")==0 ){ psp->declargslot = &(psp->gp->overflow); }else if( strcmp(x,"extra_argument")==0 ){ psp->declargslot = &(psp->gp->arg); psp->insertLineMacro = 0; }else if( strcmp(x,"token_type")==0 ){ psp->declargslot = &(psp->gp->tokentype); psp->insertLineMacro = 0; }else if( strcmp(x,"default_type")==0 ){ psp->declargslot = &(psp->gp->vartype); psp->insertLineMacro = 0; }else if( strcmp(x,"stack_size")==0 ){ psp->declargslot = &(psp->gp->stacksize); psp->insertLineMacro = 0; }else if( strcmp(x,"start_symbol")==0 ){ psp->declargslot = &(psp->gp->start); psp->insertLineMacro = 0; }else if( strcmp(x,"left")==0 ){ psp->preccounter++; psp->declassoc = LEFT; psp->state = WAITING_FOR_PRECEDENCE_SYMBOL; }else if( strcmp(x,"right")==0 ){ psp->preccounter++; psp->declassoc = RIGHT; psp->state = WAITING_FOR_PRECEDENCE_SYMBOL; }else if( strcmp(x,"nonassoc")==0 ){ psp->preccounter++; psp->declassoc = NONE; psp->state = WAITING_FOR_PRECEDENCE_SYMBOL; }else if( strcmp(x,"destructor")==0 ){ psp->state = WAITING_FOR_DESTRUCTOR_SYMBOL; }else if( strcmp(x,"type")==0 ){ psp->state = WAITING_FOR_DATATYPE_SYMBOL; }else if( strcmp(x,"fallback")==0 ){ psp->fallback = 0; psp->state = WAITING_FOR_FALLBACK_ID; }else if( strcmp(x,"wildcard")==0 ){ psp->state = WAITING_FOR_WILDCARD_ID; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Unknown declaration keyword: \"%%%s\".",x); psp->errorcnt++; psp->state = RESYNC_AFTER_DECL_ERROR; } }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Illegal declaration keyword: \"%s\".",x); psp->errorcnt++; psp->state = RESYNC_AFTER_DECL_ERROR; } break; case WAITING_FOR_DESTRUCTOR_SYMBOL: if( !isalpha(x[0]) ){ ErrorMsg(psp->filename,psp->tokenlineno, "Symbol name missing after %destructor keyword"); psp->errorcnt++; psp->state = RESYNC_AFTER_DECL_ERROR; }else{ struct symbol *sp = Symbol_new(x); psp->declargslot = &sp->destructor; psp->decllinenoslot = &sp->destLineno; psp->insertLineMacro = 1; psp->state = WAITING_FOR_DECL_ARG; } break; case WAITING_FOR_DATATYPE_SYMBOL: if( !isalpha(x[0]) ){ ErrorMsg(psp->filename,psp->tokenlineno, "Symbol name missing after %destructor keyword"); psp->errorcnt++; psp->state = RESYNC_AFTER_DECL_ERROR; }else{ struct symbol *sp = Symbol_new(x); psp->declargslot = &sp->datatype; psp->insertLineMacro = 0; psp->state = WAITING_FOR_DECL_ARG; } break; case WAITING_FOR_PRECEDENCE_SYMBOL: if( x[0]=='.' ){ psp->state = WAITING_FOR_DECL_OR_RULE; }else if( isupper(x[0]) ){ struct symbol *sp; sp = Symbol_new(x); if( sp->prec>=0 ){ ErrorMsg(psp->filename,psp->tokenlineno, "Symbol \"%s\" has already be given a precedence.",x); psp->errorcnt++; }else{ sp->prec = psp->preccounter; sp->assoc = psp->declassoc; } }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Can't assign a precedence to \"%s\".",x); psp->errorcnt++; } break; case WAITING_FOR_DECL_ARG: if( x[0]=='{' || x[0]=='\"' || isalnum(x[0]) ){ char *zOld, *zNew, *zBuf, *z; int nOld, n, nLine, nNew, nBack; int addLineMacro; char zLine[50]; zNew = x; if( zNew[0]=='"' || zNew[0]=='{' ) zNew++; nNew = lemonStrlen(zNew); if( *psp->declargslot ){ zOld = *psp->declargslot; }else{ zOld = ""; } nOld = lemonStrlen(zOld); n = nOld + nNew + 20; addLineMacro = !psp->gp->nolinenosflag && psp->insertLineMacro && (psp->decllinenoslot==0 || psp->decllinenoslot[0]!=0); if( addLineMacro ){ for(z=psp->filename, nBack=0; *z; z++){ if( *z=='\\' ) nBack++; } sprintf(zLine, "#line %d ", psp->tokenlineno); nLine = lemonStrlen(zLine); n += nLine + lemonStrlen(psp->filename) + nBack; } *psp->declargslot = zBuf = realloc(*psp->declargslot, n); zBuf += nOld; if( addLineMacro ){ if( nOld && zBuf[-1]!='\n' ){ *(zBuf++) = '\n'; } memcpy(zBuf, zLine, nLine); zBuf += nLine; *(zBuf++) = '"'; for(z=psp->filename; *z; z++){ if( *z=='\\' ){ *(zBuf++) = '\\'; } *(zBuf++) = *z; } *(zBuf++) = '"'; *(zBuf++) = '\n'; } if( psp->decllinenoslot && psp->decllinenoslot[0]==0 ){ psp->decllinenoslot[0] = psp->tokenlineno; } memcpy(zBuf, zNew, nNew); zBuf += nNew; *zBuf = 0; psp->state = WAITING_FOR_DECL_OR_RULE; }else{ ErrorMsg(psp->filename,psp->tokenlineno, "Illegal argument to %%%s: %s",psp->declkeyword,x); psp->errorcnt++; psp->state = RESYNC_AFTER_DECL_ERROR; } break; case WAITING_FOR_FALLBACK_ID: if( x[0]=='.' ){ psp->state = WAITING_FOR_DECL_OR_RULE; }else if( !isupper(x[0]) ){ ErrorMsg(psp->filename, psp->tokenlineno, "%%fallback argument \"%s\" should be a token", x); psp->errorcnt++; }else{ struct symbol *sp = Symbol_new(x); if( psp->fallback==0 ){ psp->fallback = sp; }else if( sp->fallback ){ ErrorMsg(psp->filename, psp->tokenlineno, "More than one fallback assigned to token %s", x); psp->errorcnt++; }else{ sp->fallback = psp->fallback; psp->gp->has_fallback = 1; } } break; case WAITING_FOR_WILDCARD_ID: if( x[0]=='.' ){ psp->state = WAITING_FOR_DECL_OR_RULE; }else if( !isupper(x[0]) ){ ErrorMsg(psp->filename, psp->tokenlineno, "%%wildcard argument \"%s\" should be a token", x); psp->errorcnt++; }else{ struct symbol *sp = Symbol_new(x); if( psp->gp->wildcard==0 ){ psp->gp->wildcard = sp; }else{ ErrorMsg(psp->filename, psp->tokenlineno, "Extra wildcard to token: %s", x); psp->errorcnt++; } } break; case RESYNC_AFTER_RULE_ERROR: /* if( x[0]=='.' ) psp->state = WAITING_FOR_DECL_OR_RULE; ** break; */ case RESYNC_AFTER_DECL_ERROR: if( x[0]=='.' ) psp->state = WAITING_FOR_DECL_OR_RULE; if( x[0]=='%' ) psp->state = WAITING_FOR_DECL_KEYWORD; break; } } /* Run the preprocessor over the input file text. The global variables ** azDefine[0] through azDefine[nDefine-1] contains the names of all defined ** macros. This routine looks for "%ifdef" and "%ifndef" and "%endif" and ** comments them out. Text in between is also commented out as appropriate. */ static void preprocess_input(char *z){ int i, j, k, n; int exclude = 0; int start = 0; int lineno = 1; int start_lineno = 1; for(i=0; z[i]; i++){ if( z[i]=='\n' ) lineno++; if( z[i]!='%' || (i>0 && z[i-1]!='\n') ) continue; if( strncmp(&z[i],"%endif",6)==0 && isspace(z[i+6]) ){ if( exclude ){ exclude--; if( exclude==0 ){ for(j=start; jfilename; ps.errorcnt = 0; ps.state = INITIALIZE; /* Begin by reading the input file */ fp = fopen(ps.filename,"rb"); if( fp==0 ){ ErrorMsg(ps.filename,0,"Can't open this file for reading."); gp->errorcnt++; return; } fseek(fp,0,2); filesize = ftell(fp); rewind(fp); filebuf = (char *)malloc( filesize+1 ); if( filebuf==0 ){ ErrorMsg(ps.filename,0,"Can't allocate %d of memory to hold this file.", filesize+1); gp->errorcnt++; return; } if( fread(filebuf,1,filesize,fp)!=filesize ){ ErrorMsg(ps.filename,0,"Can't read in all %d bytes of this file.", filesize); free(filebuf); gp->errorcnt++; return; } fclose(fp); filebuf[filesize] = 0; /* Make an initial pass through the file to handle %ifdef and %ifndef */ preprocess_input(filebuf); /* Now scan the text of the input file */ lineno = 1; for(cp=filebuf; (c= *cp)!=0; ){ if( c=='\n' ) lineno++; /* Keep track of the line number */ if( isspace(c) ){ cp++; continue; } /* Skip all white space */ if( c=='/' && cp[1]=='/' ){ /* Skip C++ style comments */ cp+=2; while( (c= *cp)!=0 && c!='\n' ) cp++; continue; } if( c=='/' && cp[1]=='*' ){ /* Skip C style comments */ cp+=2; while( (c= *cp)!=0 && (c!='/' || cp[-1]!='*') ){ if( c=='\n' ) lineno++; cp++; } if( c ) cp++; continue; } ps.tokenstart = cp; /* Mark the beginning of the token */ ps.tokenlineno = lineno; /* Linenumber on which token begins */ if( c=='\"' ){ /* String literals */ cp++; while( (c= *cp)!=0 && c!='\"' ){ if( c=='\n' ) lineno++; cp++; } if( c==0 ){ ErrorMsg(ps.filename,startline, "String starting on this line is not terminated before the end of the file."); ps.errorcnt++; nextcp = cp; }else{ nextcp = cp+1; } }else if( c=='{' ){ /* A block of C code */ int level; cp++; for(level=1; (c= *cp)!=0 && (level>1 || c!='}'); cp++){ if( c=='\n' ) lineno++; else if( c=='{' ) level++; else if( c=='}' ) level--; else if( c=='/' && cp[1]=='*' ){ /* Skip comments */ int prevc; cp = &cp[2]; prevc = 0; while( (c= *cp)!=0 && (c!='/' || prevc!='*') ){ if( c=='\n' ) lineno++; prevc = c; cp++; } }else if( c=='/' && cp[1]=='/' ){ /* Skip C++ style comments too */ cp = &cp[2]; while( (c= *cp)!=0 && c!='\n' ) cp++; if( c ) lineno++; }else if( c=='\'' || c=='\"' ){ /* String a character literals */ int startchar, prevc; startchar = c; prevc = 0; for(cp++; (c= *cp)!=0 && (c!=startchar || prevc=='\\'); cp++){ if( c=='\n' ) lineno++; if( prevc=='\\' ) prevc = 0; else prevc = c; } } } if( c==0 ){ ErrorMsg(ps.filename,ps.tokenlineno, "C code starting on this line is not terminated before the end of the file."); ps.errorcnt++; nextcp = cp; }else{ nextcp = cp+1; } }else if( isalnum(c) ){ /* Identifiers */ while( (c= *cp)!=0 && (isalnum(c) || c=='_') ) cp++; nextcp = cp; }else if( c==':' && cp[1]==':' && cp[2]=='=' ){ /* The operator "::=" */ cp += 3; nextcp = cp; }else if( (c=='/' || c=='|') && isalpha(cp[1]) ){ cp += 2; while( (c = *cp)!=0 && (isalnum(c) || c=='_') ) cp++; nextcp = cp; }else{ /* All other (one character) operators */ cp++; nextcp = cp; } c = *cp; *cp = 0; /* Null terminate the token */ parseonetoken(&ps); /* Parse the token */ *cp = c; /* Restore the buffer */ cp = nextcp; } free(filebuf); /* Release the buffer after parsing */ gp->rule = ps.firstrule; gp->errorcnt = ps.errorcnt; } /*************************** From the file "plink.c" *********************/ /* ** Routines processing configuration follow-set propagation links ** in the LEMON parser generator. */ static struct plink *plink_freelist = 0; /* Allocate a new plink */ struct plink *Plink_new(){ struct plink *new; if( plink_freelist==0 ){ int i; int amt = 100; plink_freelist = (struct plink *)calloc( amt, sizeof(struct plink) ); if( plink_freelist==0 ){ fprintf(stderr, "Unable to allocate memory for a new follow-set propagation link.\n"); exit(1); } for(i=0; inext; return new; } /* Add a plink to a plink list */ void Plink_add(plpp,cfp) struct plink **plpp; struct config *cfp; { struct plink *new; new = Plink_new(); new->next = *plpp; *plpp = new; new->cfp = cfp; } /* Transfer every plink on the list "from" to the list "to" */ void Plink_copy(to,from) struct plink **to; struct plink *from; { struct plink *nextpl; while( from ){ nextpl = from->next; from->next = *to; *to = from; from = nextpl; } } /* Delete every plink on the list */ void Plink_delete(plp) struct plink *plp; { struct plink *nextpl; while( plp ){ nextpl = plp->next; plp->next = plink_freelist; plink_freelist = plp; plp = nextpl; } } /*********************** From the file "report.c" **************************/ /* ** Procedures for generating reports and tables in the LEMON parser generator. */ /* Generate a filename with the given suffix. Space to hold the ** name comes from malloc() and must be freed by the calling ** function. */ PRIVATE char *file_makename(lemp,suffix) struct lemon *lemp; char *suffix; { char *name; char *cp; name = malloc( lemonStrlen(lemp->filename) + lemonStrlen(suffix) + 5 ); if( name==0 ){ fprintf(stderr,"Can't allocate space for a filename.\n"); exit(1); } strcpy(name,lemp->filename); cp = strrchr(name,'.'); if( cp ) *cp = 0; strcat(name,suffix); return name; } /* Open a file with a name based on the name of the input file, ** but with a different (specified) suffix, and return a pointer ** to the stream */ PRIVATE FILE *file_open(lemp,suffix,mode) struct lemon *lemp; char *suffix; char *mode; { FILE *fp; if( lemp->outname ) free(lemp->outname); lemp->outname = file_makename(lemp, suffix); fp = fopen(lemp->outname,mode); if( fp==0 && *mode=='w' ){ fprintf(stderr,"Can't open file \"%s\".\n",lemp->outname); lemp->errorcnt++; return 0; } return fp; } /* Duplicate the input file without comments and without actions ** on rules */ void Reprint(lemp) struct lemon *lemp; { struct rule *rp; struct symbol *sp; int i, j, maxlen, len, ncolumns, skip; printf("// Reprint of input file \"%s\".\n// Symbols:\n",lemp->filename); maxlen = 10; for(i=0; insymbol; i++){ sp = lemp->symbols[i]; len = lemonStrlen(sp->name); if( len>maxlen ) maxlen = len; } ncolumns = 76/(maxlen+5); if( ncolumns<1 ) ncolumns = 1; skip = (lemp->nsymbol + ncolumns - 1)/ncolumns; for(i=0; insymbol; j+=skip){ sp = lemp->symbols[j]; assert( sp->index==j ); printf(" %3d %-*.*s",j,maxlen,maxlen,sp->name); } printf("\n"); } for(rp=lemp->rule; rp; rp=rp->next){ printf("%s",rp->lhs->name); /* if( rp->lhsalias ) printf("(%s)",rp->lhsalias); */ printf(" ::="); for(i=0; inrhs; i++){ sp = rp->rhs[i]; printf(" %s", sp->name); if( sp->type==MULTITERMINAL ){ for(j=1; jnsubsym; j++){ printf("|%s", sp->subsym[j]->name); } } /* if( rp->rhsalias[i] ) printf("(%s)",rp->rhsalias[i]); */ } printf("."); if( rp->precsym ) printf(" [%s]",rp->precsym->name); /* if( rp->code ) printf("\n %s",rp->code); */ printf("\n"); } } void ConfigPrint(fp,cfp) FILE *fp; struct config *cfp; { struct rule *rp; struct symbol *sp; int i, j; rp = cfp->rp; fprintf(fp,"%s ::=",rp->lhs->name); for(i=0; i<=rp->nrhs; i++){ if( i==cfp->dot ) fprintf(fp," *"); if( i==rp->nrhs ) break; sp = rp->rhs[i]; fprintf(fp," %s", sp->name); if( sp->type==MULTITERMINAL ){ for(j=1; jnsubsym; j++){ fprintf(fp,"|%s",sp->subsym[j]->name); } } } } /* #define TEST */ #if 0 /* Print a set */ PRIVATE void SetPrint(out,set,lemp) FILE *out; char *set; struct lemon *lemp; { int i; char *spacer; spacer = ""; fprintf(out,"%12s[",""); for(i=0; interminal; i++){ if( SetFind(set,i) ){ fprintf(out,"%s%s",spacer,lemp->symbols[i]->name); spacer = " "; } } fprintf(out,"]\n"); } /* Print a plink chain */ PRIVATE void PlinkPrint(out,plp,tag) FILE *out; struct plink *plp; char *tag; { while( plp ){ fprintf(out,"%12s%s (state %2d) ","",tag,plp->cfp->stp->statenum); ConfigPrint(out,plp->cfp); fprintf(out,"\n"); plp = plp->next; } } #endif /* Print an action to the given file descriptor. Return FALSE if ** nothing was actually printed. */ int PrintAction(struct action *ap, FILE *fp, int indent){ int result = 1; switch( ap->type ){ case SHIFT: fprintf(fp,"%*s shift %d",indent,ap->sp->name,ap->x.stp->statenum); break; case REDUCE: fprintf(fp,"%*s reduce %d",indent,ap->sp->name,ap->x.rp->index); break; case ACCEPT: fprintf(fp,"%*s accept",indent,ap->sp->name); break; case ERROR: fprintf(fp,"%*s error",indent,ap->sp->name); break; case SRCONFLICT: case RRCONFLICT: fprintf(fp,"%*s reduce %-3d ** Parsing conflict **", indent,ap->sp->name,ap->x.rp->index); break; case SSCONFLICT: fprintf(fp,"%*s shift %d ** Parsing conflict **", indent,ap->sp->name,ap->x.stp->statenum); break; case SH_RESOLVED: case RD_RESOLVED: case NOT_USED: result = 0; break; } return result; } /* Generate the "y.output" log file */ void ReportOutput(lemp) struct lemon *lemp; { int i; struct state *stp; struct config *cfp; struct action *ap; FILE *fp; fp = file_open(lemp,".out","wb"); if( fp==0 ) return; for(i=0; instate; i++){ stp = lemp->sorted[i]; fprintf(fp,"State %d:\n",stp->statenum); if( lemp->basisflag ) cfp=stp->bp; else cfp=stp->cfp; while( cfp ){ char buf[20]; if( cfp->dot==cfp->rp->nrhs ){ sprintf(buf,"(%d)",cfp->rp->index); fprintf(fp," %5s ",buf); }else{ fprintf(fp," "); } ConfigPrint(fp,cfp); fprintf(fp,"\n"); #if 0 SetPrint(fp,cfp->fws,lemp); PlinkPrint(fp,cfp->fplp,"To "); PlinkPrint(fp,cfp->bplp,"From"); #endif if( lemp->basisflag ) cfp=cfp->bp; else cfp=cfp->next; } fprintf(fp,"\n"); for(ap=stp->ap; ap; ap=ap->next){ if( PrintAction(ap,fp,30) ) fprintf(fp,"\n"); } fprintf(fp,"\n"); } fprintf(fp, "----------------------------------------------------\n"); fprintf(fp, "Symbols:\n"); for(i=0; insymbol; i++){ int j; struct symbol *sp; sp = lemp->symbols[i]; fprintf(fp, " %3d: %s", i, sp->name); if( sp->type==NONTERMINAL ){ fprintf(fp, ":"); if( sp->lambda ){ fprintf(fp, " "); } for(j=0; jnterminal; j++){ if( sp->firstset && SetFind(sp->firstset, j) ){ fprintf(fp, " %s", lemp->symbols[j]->name); } } } fprintf(fp, "\n"); } fclose(fp); return; } /* Search for the file "name" which is in the same directory as ** the exacutable */ PRIVATE char *pathsearch(argv0,name,modemask) char *argv0; char *name; int modemask; { char *pathlist; char *path,*cp; char c; #ifdef __WIN32__ cp = strrchr(argv0,'\\'); #else cp = strrchr(argv0,'/'); #endif if( cp ){ c = *cp; *cp = 0; path = (char *)malloc( lemonStrlen(argv0) + lemonStrlen(name) + 2 ); if( path ) sprintf(path,"%s/%s",argv0,name); *cp = c; }else{ extern char *getenv(); pathlist = getenv("PATH"); if( pathlist==0 ) pathlist = ".:/bin:/usr/bin"; path = (char *)malloc( lemonStrlen(pathlist)+lemonStrlen(name)+2 ); if( path!=0 ){ while( *pathlist ){ cp = strchr(pathlist,':'); if( cp==0 ) cp = &pathlist[lemonStrlen(pathlist)]; c = *cp; *cp = 0; sprintf(path,"%s/%s",pathlist,name); *cp = c; if( c==0 ) pathlist = ""; else pathlist = &cp[1]; if( access(path,modemask)==0 ) break; } } } return path; } /* Given an action, compute the integer value for that action ** which is to be put in the action table of the generated machine. ** Return negative if no action should be generated. */ PRIVATE int compute_action(lemp,ap) struct lemon *lemp; struct action *ap; { int act; switch( ap->type ){ case SHIFT: act = ap->x.stp->statenum; break; case REDUCE: act = ap->x.rp->index + lemp->nstate; break; case ERROR: act = lemp->nstate + lemp->nrule; break; case ACCEPT: act = lemp->nstate + lemp->nrule + 1; break; default: act = -1; break; } return act; } #define LINESIZE 1000 /* The next cluster of routines are for reading the template file ** and writing the results to the generated parser */ /* The first function transfers data from "in" to "out" until ** a line is seen which begins with "%%". The line number is ** tracked. ** ** if name!=0, then any word that begin with "Parse" is changed to ** begin with *name instead. */ PRIVATE void tplt_xfer(name,in,out,lineno) char *name; FILE *in; FILE *out; int *lineno; { int i, iStart; char line[LINESIZE]; while( fgets(line,LINESIZE,in) && (line[0]!='%' || line[1]!='%') ){ (*lineno)++; iStart = 0; if( name ){ for(i=0; line[i]; i++){ if( line[i]=='P' && strncmp(&line[i],"Parse",5)==0 && (i==0 || !isalpha(line[i-1])) ){ if( i>iStart ) fprintf(out,"%.*s",i-iStart,&line[iStart]); fprintf(out,"%s",name); i += 4; iStart = i+1; } } } fprintf(out,"%s",&line[iStart]); } } /* The next function finds the template file and opens it, returning ** a pointer to the opened file. */ PRIVATE FILE *tplt_open(lemp) struct lemon *lemp; { static char templatename[] = "lempar.c"; char buf[1000]; FILE *in; char *tpltname; char *cp; cp = strrchr(lemp->filename,'.'); if( cp ){ sprintf(buf,"%.*s.lt",(int)(cp-lemp->filename),lemp->filename); }else{ sprintf(buf,"%s.lt",lemp->filename); } if( access(buf,004)==0 ){ tpltname = buf; }else if( access(templatename,004)==0 ){ tpltname = templatename; }else{ tpltname = pathsearch(lemp->argv0,templatename,0); } if( tpltname==0 ){ fprintf(stderr,"Can't find the parser driver template file \"%s\".\n", templatename); lemp->errorcnt++; return 0; } in = fopen(tpltname,"rb"); if( in==0 ){ fprintf(stderr,"Can't open the template file \"%s\".\n",templatename); lemp->errorcnt++; return 0; } return in; } /* Print a #line directive line to the output file. */ PRIVATE void tplt_linedir(out,lineno,filename) FILE *out; int lineno; char *filename; { fprintf(out,"#line %d \"",lineno); while( *filename ){ if( *filename == '\\' ) putc('\\',out); putc(*filename,out); filename++; } fprintf(out,"\"\n"); } /* Print a string to the file and keep the linenumber up to date */ PRIVATE void tplt_print(out,lemp,str,lineno) FILE *out; struct lemon *lemp; char *str; int *lineno; { if( str==0 ) return; while( *str ){ putc(*str,out); if( *str=='\n' ) (*lineno)++; str++; } if( str[-1]!='\n' ){ putc('\n',out); (*lineno)++; } if (!lemp->nolinenosflag) { (*lineno)++; tplt_linedir(out,*lineno,lemp->outname); } return; } /* ** The following routine emits code for the destructor for the ** symbol sp */ void emit_destructor_code(out,sp,lemp,lineno) FILE *out; struct symbol *sp; struct lemon *lemp; int *lineno; { char *cp = 0; if( sp->type==TERMINAL ){ cp = lemp->tokendest; if( cp==0 ) return; fprintf(out,"{\n"); (*lineno)++; }else if( sp->destructor ){ cp = sp->destructor; fprintf(out,"{\n"); (*lineno)++; if (!lemp->nolinenosflag) { (*lineno)++; tplt_linedir(out,sp->destLineno,lemp->filename); } }else if( lemp->vardest ){ cp = lemp->vardest; if( cp==0 ) return; fprintf(out,"{\n"); (*lineno)++; }else{ assert( 0 ); /* Cannot happen */ } for(; *cp; cp++){ if( *cp=='$' && cp[1]=='$' ){ fprintf(out,"(yypminor->yy%d)",sp->dtnum); cp++; continue; } if( *cp=='\n' ) (*lineno)++; fputc(*cp,out); } fprintf(out,"\n"); (*lineno)++; if (!lemp->nolinenosflag) { (*lineno)++; tplt_linedir(out,*lineno,lemp->outname); } fprintf(out,"}\n"); (*lineno)++; return; } /* ** Return TRUE (non-zero) if the given symbol has a destructor. */ int has_destructor(sp, lemp) struct symbol *sp; struct lemon *lemp; { int ret; if( sp->type==TERMINAL ){ ret = lemp->tokendest!=0; }else{ ret = lemp->vardest!=0 || sp->destructor!=0; } return ret; } /* ** Append text to a dynamically allocated string. If zText is 0 then ** reset the string to be empty again. Always return the complete text ** of the string (which is overwritten with each call). ** ** n bytes of zText are stored. If n==0 then all of zText up to the first ** \000 terminator is stored. zText can contain up to two instances of ** %d. The values of p1 and p2 are written into the first and second ** %d. ** ** If n==-1, then the previous character is overwritten. */ PRIVATE char *append_str(char *zText, int n, int p1, int p2){ static char *z = 0; static int alloced = 0; static int used = 0; int c; char zInt[40]; if( zText==0 ){ used = 0; return z; } if( n<=0 ){ if( n<0 ){ used += n; assert( used>=0 ); } n = lemonStrlen(zText); } if( n+sizeof(zInt)*2+used >= alloced ){ alloced = n + sizeof(zInt)*2 + used + 200; z = realloc(z, alloced); } if( z==0 ) return ""; while( n-- > 0 ){ c = *(zText++); if( c=='%' && n>0 && zText[0]=='d' ){ sprintf(zInt, "%d", p1); p1 = p2; strcpy(&z[used], zInt); used += lemonStrlen(&z[used]); zText++; n--; }else{ z[used++] = c; } } z[used] = 0; return z; } /* ** zCode is a string that is the action associated with a rule. Expand ** the symbols in this string so that the refer to elements of the parser ** stack. */ PRIVATE void translate_code(struct lemon *lemp, struct rule *rp){ char *cp, *xp; int i; char lhsused = 0; /* True if the LHS element has been used */ char used[MAXRHS]; /* True for each RHS element which is used */ for(i=0; inrhs; i++) used[i] = 0; lhsused = 0; if( rp->code==0 ){ rp->code = "\n"; rp->line = rp->ruleline; } append_str(0,0,0,0); for(cp=rp->code; *cp; cp++){ if( isalpha(*cp) && (cp==rp->code || (!isalnum(cp[-1]) && cp[-1]!='_')) ){ char saved; for(xp= &cp[1]; isalnum(*xp) || *xp=='_'; xp++); saved = *xp; *xp = 0; if( rp->lhsalias && strcmp(cp,rp->lhsalias)==0 ){ append_str("yygotominor.yy%d",0,rp->lhs->dtnum,0); cp = xp; lhsused = 1; }else{ for(i=0; inrhs; i++){ if( rp->rhsalias[i] && strcmp(cp,rp->rhsalias[i])==0 ){ if( cp!=rp->code && cp[-1]=='@' ){ /* If the argument is of the form @X then substituted ** the token number of X, not the value of X */ append_str("yymsp[%d].major",-1,i-rp->nrhs+1,0); }else{ struct symbol *sp = rp->rhs[i]; int dtnum; if( sp->type==MULTITERMINAL ){ dtnum = sp->subsym[0]->dtnum; }else{ dtnum = sp->dtnum; } append_str("yymsp[%d].minor.yy%d",0,i-rp->nrhs+1, dtnum); } cp = xp; used[i] = 1; break; } } } *xp = saved; } append_str(cp, 1, 0, 0); } /* End loop */ /* Check to make sure the LHS has been used */ if( rp->lhsalias && !lhsused ){ ErrorMsg(lemp->filename,rp->ruleline, "Label \"%s\" for \"%s(%s)\" is never used.", rp->lhsalias,rp->lhs->name,rp->lhsalias); lemp->errorcnt++; } /* Generate destructor code for RHS symbols which are not used in the ** reduce code */ for(i=0; inrhs; i++){ if( rp->rhsalias[i] && !used[i] ){ ErrorMsg(lemp->filename,rp->ruleline, "Label %s for \"%s(%s)\" is never used.", rp->rhsalias[i],rp->rhs[i]->name,rp->rhsalias[i]); lemp->errorcnt++; }else if( rp->rhsalias[i]==0 ){ if( has_destructor(rp->rhs[i],lemp) ){ append_str(" yy_destructor(yypParser,%d,&yymsp[%d].minor);\n", 0, rp->rhs[i]->index,i-rp->nrhs+1); }else{ /* No destructor defined for this term */ } } } if( rp->code ){ cp = append_str(0,0,0,0); rp->code = Strsafe(cp?cp:""); } } /* ** Generate code which executes when the rule "rp" is reduced. Write ** the code to "out". Make sure lineno stays up-to-date. */ PRIVATE void emit_code(out,rp,lemp,lineno) FILE *out; struct rule *rp; struct lemon *lemp; int *lineno; { char *cp; /* Generate code to do the reduce action */ if( rp->code ){ if (!lemp->nolinenosflag) { (*lineno)++; tplt_linedir(out,rp->line,lemp->filename); } fprintf(out,"{%s",rp->code); for(cp=rp->code; *cp; cp++){ if( *cp=='\n' ) (*lineno)++; } /* End loop */ fprintf(out,"}\n"); (*lineno)++; if (!lemp->nolinenosflag) { (*lineno)++; tplt_linedir(out,*lineno,lemp->outname); } } /* End if( rp->code ) */ return; } /* ** Print the definition of the union used for the parser's data stack. ** This union contains fields for every possible data type for tokens ** and nonterminals. In the process of computing and printing this ** union, also set the ".dtnum" field of every terminal and nonterminal ** symbol. */ void print_stack_union(out,lemp,plineno,mhflag) FILE *out; /* The output stream */ struct lemon *lemp; /* The main info structure for this parser */ int *plineno; /* Pointer to the line number */ int mhflag; /* True if generating makeheaders output */ { int lineno = *plineno; /* The line number of the output */ char **types; /* A hash table of datatypes */ int arraysize; /* Size of the "types" array */ int maxdtlength; /* Maximum length of any ".datatype" field. */ char *stddt; /* Standardized name for a datatype */ int i,j; /* Loop counters */ int hash; /* For hashing the name of a type */ char *name; /* Name of the parser */ /* Allocate and initialize types[] and allocate stddt[] */ arraysize = lemp->nsymbol * 2; types = (char**)calloc( arraysize, sizeof(char*) ); for(i=0; ivartype ){ maxdtlength = lemonStrlen(lemp->vartype); } for(i=0; insymbol; i++){ int len; struct symbol *sp = lemp->symbols[i]; if( sp->datatype==0 ) continue; len = lemonStrlen(sp->datatype); if( len>maxdtlength ) maxdtlength = len; } stddt = (char*)malloc( maxdtlength*2 + 1 ); if( types==0 || stddt==0 ){ fprintf(stderr,"Out of memory.\n"); exit(1); } /* Build a hash table of datatypes. The ".dtnum" field of each symbol ** is filled in with the hash index plus 1. A ".dtnum" value of 0 is ** used for terminal symbols. If there is no %default_type defined then ** 0 is also used as the .dtnum value for nonterminals which do not specify ** a datatype using the %type directive. */ for(i=0; insymbol; i++){ struct symbol *sp = lemp->symbols[i]; char *cp; if( sp==lemp->errsym ){ sp->dtnum = arraysize+1; continue; } if( sp->type!=NONTERMINAL || (sp->datatype==0 && lemp->vartype==0) ){ sp->dtnum = 0; continue; } cp = sp->datatype; if( cp==0 ) cp = lemp->vartype; j = 0; while( isspace(*cp) ) cp++; while( *cp ) stddt[j++] = *cp++; while( j>0 && isspace(stddt[j-1]) ) j--; stddt[j] = 0; if( lemp->tokentype && strcmp(stddt, lemp->tokentype)==0 ){ sp->dtnum = 0; continue; } hash = 0; for(j=0; stddt[j]; j++){ hash = hash*53 + stddt[j]; } hash = (hash & 0x7fffffff)%arraysize; while( types[hash] ){ if( strcmp(types[hash],stddt)==0 ){ sp->dtnum = hash + 1; break; } hash++; if( hash>=arraysize ) hash = 0; } if( types[hash]==0 ){ sp->dtnum = hash + 1; types[hash] = (char*)malloc( lemonStrlen(stddt)+1 ); if( types[hash]==0 ){ fprintf(stderr,"Out of memory.\n"); exit(1); } strcpy(types[hash],stddt); } } /* Print out the definition of YYTOKENTYPE and YYMINORTYPE */ name = lemp->name ? lemp->name : "Parse"; lineno = *plineno; if( mhflag ){ fprintf(out,"#if INTERFACE\n"); lineno++; } fprintf(out,"#define %sTOKENTYPE %s\n",name, lemp->tokentype?lemp->tokentype:"void*"); lineno++; if( mhflag ){ fprintf(out,"#endif\n"); lineno++; } fprintf(out,"typedef union {\n"); lineno++; fprintf(out," int yyinit;\n"); lineno++; fprintf(out," %sTOKENTYPE yy0;\n",name); lineno++; for(i=0; ierrsym->useCnt ){ fprintf(out," int yy%d;\n",lemp->errsym->dtnum); lineno++; } free(stddt); free(types); fprintf(out,"} YYMINORTYPE;\n"); lineno++; *plineno = lineno; } /* ** Return the name of a C datatype able to represent values between ** lwr and upr, inclusive. */ static const char *minimum_size_type(int lwr, int upr){ if( lwr>=0 ){ if( upr<=255 ){ return "unsigned char"; }else if( upr<65535 ){ return "unsigned short int"; }else{ return "unsigned int"; } }else if( lwr>=-127 && upr<=127 ){ return "signed char"; }else if( lwr>=-32767 && upr<32767 ){ return "short"; }else{ return "int"; } } /* ** Each state contains a set of token transaction and a set of ** nonterminal transactions. Each of these sets makes an instance ** of the following structure. An array of these structures is used ** to order the creation of entries in the yy_action[] table. */ struct axset { struct state *stp; /* A pointer to a state */ int isTkn; /* True to use tokens. False for non-terminals */ int nAction; /* Number of actions */ }; /* ** Compare to axset structures for sorting purposes */ static int axset_compare(const void *a, const void *b){ struct axset *p1 = (struct axset*)a; struct axset *p2 = (struct axset*)b; return p2->nAction - p1->nAction; } /* ** Write text on "out" that describes the rule "rp". */ static void writeRuleText(FILE *out, struct rule *rp){ int j; fprintf(out,"%s ::=", rp->lhs->name); for(j=0; jnrhs; j++){ struct symbol *sp = rp->rhs[j]; fprintf(out," %s", sp->name); if( sp->type==MULTITERMINAL ){ int k; for(k=1; knsubsym; k++){ fprintf(out,"|%s",sp->subsym[k]->name); } } } } /* Generate C source code for the parser */ void ReportTable(lemp, mhflag) struct lemon *lemp; int mhflag; /* Output in makeheaders format if true */ { FILE *out, *in; char line[LINESIZE]; int lineno; struct state *stp; struct action *ap; struct rule *rp; struct acttab *pActtab; int i, j, n; char *name; int mnTknOfst, mxTknOfst; int mnNtOfst, mxNtOfst; struct axset *ax; in = tplt_open(lemp); if( in==0 ) return; out = file_open(lemp,".c","wb"); if( out==0 ){ fclose(in); return; } lineno = 1; tplt_xfer(lemp->name,in,out,&lineno); /* Generate the include code, if any */ tplt_print(out,lemp,lemp->include,&lineno); if( mhflag ){ char *name = file_makename(lemp, ".h"); fprintf(out,"#include \"%s\"\n", name); lineno++; free(name); } tplt_xfer(lemp->name,in,out,&lineno); /* Generate #defines for all tokens */ if( mhflag ){ char *prefix; fprintf(out,"#if INTERFACE\n"); lineno++; if( lemp->tokenprefix ) prefix = lemp->tokenprefix; else prefix = ""; for(i=1; interminal; i++){ fprintf(out,"#define %s%-30s %2d\n",prefix,lemp->symbols[i]->name,i); lineno++; } fprintf(out,"#endif\n"); lineno++; } tplt_xfer(lemp->name,in,out,&lineno); /* Generate the defines */ fprintf(out,"#define YYCODETYPE %s\n", minimum_size_type(0, lemp->nsymbol+1)); lineno++; fprintf(out,"#define YYNOCODE %d\n",lemp->nsymbol+1); lineno++; fprintf(out,"#define YYACTIONTYPE %s\n", minimum_size_type(0, lemp->nstate+lemp->nrule+5)); lineno++; if( lemp->wildcard ){ fprintf(out,"#define YYWILDCARD %d\n", lemp->wildcard->index); lineno++; } print_stack_union(out,lemp,&lineno,mhflag); fprintf(out, "#ifndef YYSTACKDEPTH\n"); lineno++; if( lemp->stacksize ){ fprintf(out,"#define YYSTACKDEPTH %s\n",lemp->stacksize); lineno++; }else{ fprintf(out,"#define YYSTACKDEPTH 100\n"); lineno++; } fprintf(out, "#endif\n"); lineno++; if( mhflag ){ fprintf(out,"#if INTERFACE\n"); lineno++; } name = lemp->name ? lemp->name : "Parse"; if( lemp->arg && lemp->arg[0] ){ int i; i = lemonStrlen(lemp->arg); while( i>=1 && isspace(lemp->arg[i-1]) ) i--; while( i>=1 && (isalnum(lemp->arg[i-1]) || lemp->arg[i-1]=='_') ) i--; fprintf(out,"#define %sARG_SDECL %s;\n",name,lemp->arg); lineno++; fprintf(out,"#define %sARG_PDECL ,%s\n",name,lemp->arg); lineno++; fprintf(out,"#define %sARG_FETCH %s = yypParser->%s\n", name,lemp->arg,&lemp->arg[i]); lineno++; fprintf(out,"#define %sARG_STORE yypParser->%s = %s\n", name,&lemp->arg[i],&lemp->arg[i]); lineno++; }else{ fprintf(out,"#define %sARG_SDECL\n",name); lineno++; fprintf(out,"#define %sARG_PDECL\n",name); lineno++; fprintf(out,"#define %sARG_FETCH\n",name); lineno++; fprintf(out,"#define %sARG_STORE\n",name); lineno++; } if( mhflag ){ fprintf(out,"#endif\n"); lineno++; } fprintf(out,"#define YYNSTATE %d\n",lemp->nstate); lineno++; fprintf(out,"#define YYNRULE %d\n",lemp->nrule); lineno++; if( lemp->errsym->useCnt ){ fprintf(out,"#define YYERRORSYMBOL %d\n",lemp->errsym->index); lineno++; fprintf(out,"#define YYERRSYMDT yy%d\n",lemp->errsym->dtnum); lineno++; } if( lemp->has_fallback ){ fprintf(out,"#define YYFALLBACK 1\n"); lineno++; } tplt_xfer(lemp->name,in,out,&lineno); /* Generate the action table and its associates: ** ** yy_action[] A single table containing all actions. ** yy_lookahead[] A table containing the lookahead for each entry in ** yy_action. Used to detect hash collisions. ** yy_shift_ofst[] For each state, the offset into yy_action for ** shifting terminals. ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ /* Compute the actions on all states and count them up */ ax = calloc(lemp->nstate*2, sizeof(ax[0])); if( ax==0 ){ fprintf(stderr,"malloc failed\n"); exit(1); } for(i=0; instate; i++){ stp = lemp->sorted[i]; ax[i*2].stp = stp; ax[i*2].isTkn = 1; ax[i*2].nAction = stp->nTknAct; ax[i*2+1].stp = stp; ax[i*2+1].isTkn = 0; ax[i*2+1].nAction = stp->nNtAct; } mxTknOfst = mnTknOfst = 0; mxNtOfst = mnNtOfst = 0; /* Compute the action table. In order to try to keep the size of the ** action table to a minimum, the heuristic of placing the largest action ** sets first is used. */ qsort(ax, lemp->nstate*2, sizeof(ax[0]), axset_compare); pActtab = acttab_alloc(); for(i=0; instate*2 && ax[i].nAction>0; i++){ stp = ax[i].stp; if( ax[i].isTkn ){ for(ap=stp->ap; ap; ap=ap->next){ int action; if( ap->sp->index>=lemp->nterminal ) continue; action = compute_action(lemp, ap); if( action<0 ) continue; acttab_action(pActtab, ap->sp->index, action); } stp->iTknOfst = acttab_insert(pActtab); if( stp->iTknOfstiTknOfst; if( stp->iTknOfst>mxTknOfst ) mxTknOfst = stp->iTknOfst; }else{ for(ap=stp->ap; ap; ap=ap->next){ int action; if( ap->sp->indexnterminal ) continue; if( ap->sp->index==lemp->nsymbol ) continue; action = compute_action(lemp, ap); if( action<0 ) continue; acttab_action(pActtab, ap->sp->index, action); } stp->iNtOfst = acttab_insert(pActtab); if( stp->iNtOfstiNtOfst; if( stp->iNtOfst>mxNtOfst ) mxNtOfst = stp->iNtOfst; } } free(ax); /* Output the yy_action table */ fprintf(out,"static const YYACTIONTYPE yy_action[] = {\n"); lineno++; n = acttab_size(pActtab); for(i=j=0; instate + lemp->nrule + 2; if( j==0 ) fprintf(out," /* %5d */ ", i); fprintf(out, " %4d,", action); if( j==9 || i==n-1 ){ fprintf(out, "\n"); lineno++; j = 0; }else{ j++; } } fprintf(out, "};\n"); lineno++; /* Output the yy_lookahead table */ fprintf(out,"static const YYCODETYPE yy_lookahead[] = {\n"); lineno++; for(i=j=0; insymbol; if( j==0 ) fprintf(out," /* %5d */ ", i); fprintf(out, " %4d,", la); if( j==9 || i==n-1 ){ fprintf(out, "\n"); lineno++; j = 0; }else{ j++; } } fprintf(out, "};\n"); lineno++; /* Output the yy_shift_ofst[] table */ fprintf(out, "#define YY_SHIFT_USE_DFLT (%d)\n", mnTknOfst-1); lineno++; n = lemp->nstate; while( n>0 && lemp->sorted[n-1]->iTknOfst==NO_OFFSET ) n--; fprintf(out, "#define YY_SHIFT_MAX %d\n", n-1); lineno++; fprintf(out, "static const %s yy_shift_ofst[] = {\n", minimum_size_type(mnTknOfst-1, mxTknOfst)); lineno++; for(i=j=0; isorted[i]; ofst = stp->iTknOfst; if( ofst==NO_OFFSET ) ofst = mnTknOfst - 1; if( j==0 ) fprintf(out," /* %5d */ ", i); fprintf(out, " %4d,", ofst); if( j==9 || i==n-1 ){ fprintf(out, "\n"); lineno++; j = 0; }else{ j++; } } fprintf(out, "};\n"); lineno++; /* Output the yy_reduce_ofst[] table */ fprintf(out, "#define YY_REDUCE_USE_DFLT (%d)\n", mnNtOfst-1); lineno++; n = lemp->nstate; while( n>0 && lemp->sorted[n-1]->iNtOfst==NO_OFFSET ) n--; fprintf(out, "#define YY_REDUCE_MAX %d\n", n-1); lineno++; fprintf(out, "static const %s yy_reduce_ofst[] = {\n", minimum_size_type(mnNtOfst-1, mxNtOfst)); lineno++; for(i=j=0; isorted[i]; ofst = stp->iNtOfst; if( ofst==NO_OFFSET ) ofst = mnNtOfst - 1; if( j==0 ) fprintf(out," /* %5d */ ", i); fprintf(out, " %4d,", ofst); if( j==9 || i==n-1 ){ fprintf(out, "\n"); lineno++; j = 0; }else{ j++; } } fprintf(out, "};\n"); lineno++; /* Output the default action table */ fprintf(out, "static const YYACTIONTYPE yy_default[] = {\n"); lineno++; n = lemp->nstate; for(i=j=0; isorted[i]; if( j==0 ) fprintf(out," /* %5d */ ", i); fprintf(out, " %4d,", stp->iDflt); if( j==9 || i==n-1 ){ fprintf(out, "\n"); lineno++; j = 0; }else{ j++; } } fprintf(out, "};\n"); lineno++; tplt_xfer(lemp->name,in,out,&lineno); /* Generate the table of fallback tokens. */ if( lemp->has_fallback ){ int mx = lemp->nterminal - 1; while( mx>0 && lemp->symbols[mx]->fallback==0 ){ mx--; } for(i=0; i<=mx; i++){ struct symbol *p = lemp->symbols[i]; if( p->fallback==0 ){ fprintf(out, " 0, /* %10s => nothing */\n", p->name); }else{ fprintf(out, " %3d, /* %10s => %s */\n", p->fallback->index, p->name, p->fallback->name); } lineno++; } } tplt_xfer(lemp->name, in, out, &lineno); /* Generate a table containing the symbolic name of every symbol */ for(i=0; insymbol; i++){ sprintf(line,"\"%s\",",lemp->symbols[i]->name); fprintf(out," %-15s",line); if( (i&3)==3 ){ fprintf(out,"\n"); lineno++; } } if( (i&3)!=0 ){ fprintf(out,"\n"); lineno++; } tplt_xfer(lemp->name,in,out,&lineno); /* Generate a table containing a text string that describes every ** rule in the rule set of the grammar. This information is used ** when tracing REDUCE actions. */ for(i=0, rp=lemp->rule; rp; rp=rp->next, i++){ assert( rp->index==i ); fprintf(out," /* %3d */ \"", i); writeRuleText(out, rp); fprintf(out,"\",\n"); lineno++; } tplt_xfer(lemp->name,in,out,&lineno); /* Generate code which executes every time a symbol is popped from ** the stack while processing errors or while destroying the parser. ** (In other words, generate the %destructor actions) */ if( lemp->tokendest ){ int once = 1; for(i=0; insymbol; i++){ struct symbol *sp = lemp->symbols[i]; if( sp==0 || sp->type!=TERMINAL ) continue; if( once ){ fprintf(out, " /* TERMINAL Destructor */\n"); lineno++; once = 0; } fprintf(out," case %d: /* %s */\n", sp->index, sp->name); lineno++; } for(i=0; insymbol && lemp->symbols[i]->type!=TERMINAL; i++); if( insymbol ){ emit_destructor_code(out,lemp->symbols[i],lemp,&lineno); fprintf(out," break;\n"); lineno++; } } if( lemp->vardest ){ struct symbol *dflt_sp = 0; int once = 1; for(i=0; insymbol; i++){ struct symbol *sp = lemp->symbols[i]; if( sp==0 || sp->type==TERMINAL || sp->index<=0 || sp->destructor!=0 ) continue; if( once ){ fprintf(out, " /* Default NON-TERMINAL Destructor */\n"); lineno++; once = 0; } fprintf(out," case %d: /* %s */\n", sp->index, sp->name); lineno++; dflt_sp = sp; } if( dflt_sp!=0 ){ emit_destructor_code(out,dflt_sp,lemp,&lineno); } fprintf(out," break;\n"); lineno++; } for(i=0; insymbol; i++){ struct symbol *sp = lemp->symbols[i]; if( sp==0 || sp->type==TERMINAL || sp->destructor==0 ) continue; fprintf(out," case %d: /* %s */\n", sp->index, sp->name); lineno++; /* Combine duplicate destructors into a single case */ for(j=i+1; jnsymbol; j++){ struct symbol *sp2 = lemp->symbols[j]; if( sp2 && sp2->type!=TERMINAL && sp2->destructor && sp2->dtnum==sp->dtnum && strcmp(sp->destructor,sp2->destructor)==0 ){ fprintf(out," case %d: /* %s */\n", sp2->index, sp2->name); lineno++; sp2->destructor = 0; } } emit_destructor_code(out,lemp->symbols[i],lemp,&lineno); fprintf(out," break;\n"); lineno++; } tplt_xfer(lemp->name,in,out,&lineno); /* Generate code which executes whenever the parser stack overflows */ tplt_print(out,lemp,lemp->overflow,&lineno); tplt_xfer(lemp->name,in,out,&lineno); /* Generate the table of rule information ** ** Note: This code depends on the fact that rules are number ** sequentually beginning with 0. */ for(rp=lemp->rule; rp; rp=rp->next){ fprintf(out," { %d, %d },\n",rp->lhs->index,rp->nrhs); lineno++; } tplt_xfer(lemp->name,in,out,&lineno); /* Generate code which execution during each REDUCE action */ for(rp=lemp->rule; rp; rp=rp->next){ translate_code(lemp, rp); } /* First output rules other than the default: rule */ for(rp=lemp->rule; rp; rp=rp->next){ struct rule *rp2; /* Other rules with the same action */ if( rp->code==0 ) continue; if( rp->code[0]=='\n' && rp->code[1]==0 ) continue; /* Will be default: */ fprintf(out," case %d: /* ", rp->index); writeRuleText(out, rp); fprintf(out, " */\n"); lineno++; for(rp2=rp->next; rp2; rp2=rp2->next){ if( rp2->code==rp->code ){ fprintf(out," case %d: /* ", rp2->index); writeRuleText(out, rp2); fprintf(out," */ yytestcase(yyruleno==%d);\n", rp2->index); lineno++; rp2->code = 0; } } emit_code(out,rp,lemp,&lineno); fprintf(out," break;\n"); lineno++; rp->code = 0; } /* Finally, output the default: rule. We choose as the default: all ** empty actions. */ fprintf(out," default:\n"); lineno++; for(rp=lemp->rule; rp; rp=rp->next){ if( rp->code==0 ) continue; assert( rp->code[0]=='\n' && rp->code[1]==0 ); fprintf(out," /* (%d) ", rp->index); writeRuleText(out, rp); fprintf(out, " */ yytestcase(yyruleno==%d);\n", rp->index); lineno++; } fprintf(out," break;\n"); lineno++; tplt_xfer(lemp->name,in,out,&lineno); /* Generate code which executes if a parse fails */ tplt_print(out,lemp,lemp->failure,&lineno); tplt_xfer(lemp->name,in,out,&lineno); /* Generate code which executes when a syntax error occurs */ tplt_print(out,lemp,lemp->error,&lineno); tplt_xfer(lemp->name,in,out,&lineno); /* Generate code which executes when the parser accepts its input */ tplt_print(out,lemp,lemp->accept,&lineno); tplt_xfer(lemp->name,in,out,&lineno); /* Append any addition code the user desires */ tplt_print(out,lemp,lemp->extracode,&lineno); fclose(in); fclose(out); return; } /* Generate a header file for the parser */ void ReportHeader(lemp) struct lemon *lemp; { FILE *out, *in; char *prefix; char line[LINESIZE]; char pattern[LINESIZE]; int i; if( lemp->tokenprefix ) prefix = lemp->tokenprefix; else prefix = ""; in = file_open(lemp,".h","rb"); if( in ){ for(i=1; interminal && fgets(line,LINESIZE,in); i++){ sprintf(pattern,"#define %s%-30s %2d\n",prefix,lemp->symbols[i]->name,i); if( strcmp(line,pattern) ) break; } fclose(in); if( i==lemp->nterminal ){ /* No change in the file. Don't rewrite it. */ return; } } out = file_open(lemp,".h","wb"); if( out ){ for(i=1; interminal; i++){ fprintf(out,"#define %s%-30s %2d\n",prefix,lemp->symbols[i]->name,i); } fclose(out); } return; } /* Reduce the size of the action tables, if possible, by making use ** of defaults. ** ** In this version, we take the most frequent REDUCE action and make ** it the default. Except, there is no default if the wildcard token ** is a possible look-ahead. */ void CompressTables(lemp) struct lemon *lemp; { struct state *stp; struct action *ap, *ap2; struct rule *rp, *rp2, *rbest; int nbest, n; int i; int usesWildcard; for(i=0; instate; i++){ stp = lemp->sorted[i]; nbest = 0; rbest = 0; usesWildcard = 0; for(ap=stp->ap; ap; ap=ap->next){ if( ap->type==SHIFT && ap->sp==lemp->wildcard ){ usesWildcard = 1; } if( ap->type!=REDUCE ) continue; rp = ap->x.rp; if( rp->lhsStart ) continue; if( rp==rbest ) continue; n = 1; for(ap2=ap->next; ap2; ap2=ap2->next){ if( ap2->type!=REDUCE ) continue; rp2 = ap2->x.rp; if( rp2==rbest ) continue; if( rp2==rp ) n++; } if( n>nbest ){ nbest = n; rbest = rp; } } /* Do not make a default if the number of rules to default ** is not at least 1 or if the wildcard token is a possible ** lookahead. */ if( nbest<1 || usesWildcard ) continue; /* Combine matching REDUCE actions into a single default */ for(ap=stp->ap; ap; ap=ap->next){ if( ap->type==REDUCE && ap->x.rp==rbest ) break; } assert( ap ); ap->sp = Symbol_new("{default}"); for(ap=ap->next; ap; ap=ap->next){ if( ap->type==REDUCE && ap->x.rp==rbest ) ap->type = NOT_USED; } stp->ap = Action_sort(stp->ap); } } /* ** Compare two states for sorting purposes. The smaller state is the ** one with the most non-terminal actions. If they have the same number ** of non-terminal actions, then the smaller is the one with the most ** token actions. */ static int stateResortCompare(const void *a, const void *b){ const struct state *pA = *(const struct state**)a; const struct state *pB = *(const struct state**)b; int n; n = pB->nNtAct - pA->nNtAct; if( n==0 ){ n = pB->nTknAct - pA->nTknAct; } return n; } /* ** Renumber and resort states so that states with fewer choices ** occur at the end. Except, keep state 0 as the first state. */ void ResortStates(lemp) struct lemon *lemp; { int i; struct state *stp; struct action *ap; for(i=0; instate; i++){ stp = lemp->sorted[i]; stp->nTknAct = stp->nNtAct = 0; stp->iDflt = lemp->nstate + lemp->nrule; stp->iTknOfst = NO_OFFSET; stp->iNtOfst = NO_OFFSET; for(ap=stp->ap; ap; ap=ap->next){ if( compute_action(lemp,ap)>=0 ){ if( ap->sp->indexnterminal ){ stp->nTknAct++; }else if( ap->sp->indexnsymbol ){ stp->nNtAct++; }else{ stp->iDflt = compute_action(lemp, ap); } } } } qsort(&lemp->sorted[1], lemp->nstate-1, sizeof(lemp->sorted[0]), stateResortCompare); for(i=0; instate; i++){ lemp->sorted[i]->statenum = i; } } /***************** From the file "set.c" ************************************/ /* ** Set manipulation routines for the LEMON parser generator. */ static int size = 0; /* Set the set size */ void SetSize(n) int n; { size = n+1; } /* Allocate a new set */ char *SetNew(){ char *s; s = (char*)calloc( size, 1); if( s==0 ){ extern void memory_error(); memory_error(); } return s; } /* Deallocate a set */ void SetFree(s) char *s; { free(s); } /* Add a new element to the set. Return TRUE if the element was added ** and FALSE if it was already there. */ int SetAdd(s,e) char *s; int e; { int rv; assert( e>=0 && esize = 1024; x1a->count = 0; x1a->tbl = (x1node*)malloc( (sizeof(x1node) + sizeof(x1node*))*1024 ); if( x1a->tbl==0 ){ free(x1a); x1a = 0; }else{ int i; x1a->ht = (x1node**)&(x1a->tbl[1024]); for(i=0; i<1024; i++) x1a->ht[i] = 0; } } } /* Insert a new record into the array. Return TRUE if successful. ** Prior data with the same key is NOT overwritten */ int Strsafe_insert(data) char *data; { x1node *np; int h; int ph; if( x1a==0 ) return 0; ph = strhash(data); h = ph & (x1a->size-1); np = x1a->ht[h]; while( np ){ if( strcmp(np->data,data)==0 ){ /* An existing entry with the same key is found. */ /* Fail because overwrite is not allows. */ return 0; } np = np->next; } if( x1a->count>=x1a->size ){ /* Need to make the hash table bigger */ int i,size; struct s_x1 array; array.size = size = x1a->size*2; array.count = x1a->count; array.tbl = (x1node*)malloc( (sizeof(x1node) + sizeof(x1node*))*size ); if( array.tbl==0 ) return 0; /* Fail due to malloc failure */ array.ht = (x1node**)&(array.tbl[size]); for(i=0; icount; i++){ x1node *oldnp, *newnp; oldnp = &(x1a->tbl[i]); h = strhash(oldnp->data) & (size-1); newnp = &(array.tbl[i]); if( array.ht[h] ) array.ht[h]->from = &(newnp->next); newnp->next = array.ht[h]; newnp->data = oldnp->data; newnp->from = &(array.ht[h]); array.ht[h] = newnp; } free(x1a->tbl); *x1a = array; } /* Insert the new data */ h = ph & (x1a->size-1); np = &(x1a->tbl[x1a->count++]); np->data = data; if( x1a->ht[h] ) x1a->ht[h]->from = &(np->next); np->next = x1a->ht[h]; x1a->ht[h] = np; np->from = &(x1a->ht[h]); return 1; } /* Return a pointer to data assigned to the given key. Return NULL ** if no such key. */ char *Strsafe_find(key) char *key; { int h; x1node *np; if( x1a==0 ) return 0; h = strhash(key) & (x1a->size-1); np = x1a->ht[h]; while( np ){ if( strcmp(np->data,key)==0 ) break; np = np->next; } return np ? np->data : 0; } /* Return a pointer to the (terminal or nonterminal) symbol "x". ** Create a new symbol if this is the first time "x" has been seen. */ struct symbol *Symbol_new(x) char *x; { struct symbol *sp; sp = Symbol_find(x); if( sp==0 ){ sp = (struct symbol *)calloc(1, sizeof(struct symbol) ); MemoryCheck(sp); sp->name = Strsafe(x); sp->type = isupper(*x) ? TERMINAL : NONTERMINAL; sp->rule = 0; sp->fallback = 0; sp->prec = -1; sp->assoc = UNK; sp->firstset = 0; sp->lambda = LEMON_FALSE; sp->destructor = 0; sp->destLineno = 0; sp->datatype = 0; sp->useCnt = 0; Symbol_insert(sp,sp->name); } sp->useCnt++; return sp; } /* Compare two symbols for working purposes ** ** Symbols that begin with upper case letters (terminals or tokens) ** must sort before symbols that begin with lower case letters ** (non-terminals). Other than that, the order does not matter. ** ** We find experimentally that leaving the symbols in their original ** order (the order they appeared in the grammar file) gives the ** smallest parser tables in SQLite. */ int Symbolcmpp(struct symbol **a, struct symbol **b){ int i1 = (**a).index + 10000000*((**a).name[0]>'Z'); int i2 = (**b).index + 10000000*((**b).name[0]>'Z'); return i1-i2; } /* There is one instance of the following structure for each ** associative array of type "x2". */ struct s_x2 { int size; /* The number of available slots. */ /* Must be a power of 2 greater than or */ /* equal to 1 */ int count; /* Number of currently slots filled */ struct s_x2node *tbl; /* The data stored here */ struct s_x2node **ht; /* Hash table for lookups */ }; /* There is one instance of this structure for every data element ** in an associative array of type "x2". */ typedef struct s_x2node { struct symbol *data; /* The data */ char *key; /* The key */ struct s_x2node *next; /* Next entry with the same hash */ struct s_x2node **from; /* Previous link */ } x2node; /* There is only one instance of the array, which is the following */ static struct s_x2 *x2a; /* Allocate a new associative array */ void Symbol_init(){ if( x2a ) return; x2a = (struct s_x2*)malloc( sizeof(struct s_x2) ); if( x2a ){ x2a->size = 128; x2a->count = 0; x2a->tbl = (x2node*)malloc( (sizeof(x2node) + sizeof(x2node*))*128 ); if( x2a->tbl==0 ){ free(x2a); x2a = 0; }else{ int i; x2a->ht = (x2node**)&(x2a->tbl[128]); for(i=0; i<128; i++) x2a->ht[i] = 0; } } } /* Insert a new record into the array. Return TRUE if successful. ** Prior data with the same key is NOT overwritten */ int Symbol_insert(data,key) struct symbol *data; char *key; { x2node *np; int h; int ph; if( x2a==0 ) return 0; ph = strhash(key); h = ph & (x2a->size-1); np = x2a->ht[h]; while( np ){ if( strcmp(np->key,key)==0 ){ /* An existing entry with the same key is found. */ /* Fail because overwrite is not allows. */ return 0; } np = np->next; } if( x2a->count>=x2a->size ){ /* Need to make the hash table bigger */ int i,size; struct s_x2 array; array.size = size = x2a->size*2; array.count = x2a->count; array.tbl = (x2node*)malloc( (sizeof(x2node) + sizeof(x2node*))*size ); if( array.tbl==0 ) return 0; /* Fail due to malloc failure */ array.ht = (x2node**)&(array.tbl[size]); for(i=0; icount; i++){ x2node *oldnp, *newnp; oldnp = &(x2a->tbl[i]); h = strhash(oldnp->key) & (size-1); newnp = &(array.tbl[i]); if( array.ht[h] ) array.ht[h]->from = &(newnp->next); newnp->next = array.ht[h]; newnp->key = oldnp->key; newnp->data = oldnp->data; newnp->from = &(array.ht[h]); array.ht[h] = newnp; } free(x2a->tbl); *x2a = array; } /* Insert the new data */ h = ph & (x2a->size-1); np = &(x2a->tbl[x2a->count++]); np->key = key; np->data = data; if( x2a->ht[h] ) x2a->ht[h]->from = &(np->next); np->next = x2a->ht[h]; x2a->ht[h] = np; np->from = &(x2a->ht[h]); return 1; } /* Return a pointer to data assigned to the given key. Return NULL ** if no such key. */ struct symbol *Symbol_find(key) char *key; { int h; x2node *np; if( x2a==0 ) return 0; h = strhash(key) & (x2a->size-1); np = x2a->ht[h]; while( np ){ if( strcmp(np->key,key)==0 ) break; np = np->next; } return np ? np->data : 0; } /* Return the n-th data. Return NULL if n is out of range. */ struct symbol *Symbol_Nth(n) int n; { struct symbol *data; if( x2a && n>0 && n<=x2a->count ){ data = x2a->tbl[n-1].data; }else{ data = 0; } return data; } /* Return the size of the array */ int Symbol_count() { return x2a ? x2a->count : 0; } /* Return an array of pointers to all data in the table. ** The array is obtained from malloc. Return NULL if memory allocation ** problems, or if the array is empty. */ struct symbol **Symbol_arrayof() { struct symbol **array; int i,size; if( x2a==0 ) return 0; size = x2a->count; array = (struct symbol **)calloc(size, sizeof(struct symbol *)); if( array ){ for(i=0; itbl[i].data; } return array; } /* Compare two configurations */ int Configcmp(a,b) struct config *a; struct config *b; { int x; x = a->rp->index - b->rp->index; if( x==0 ) x = a->dot - b->dot; return x; } /* Compare two states */ PRIVATE int statecmp(a,b) struct config *a; struct config *b; { int rc; for(rc=0; rc==0 && a && b; a=a->bp, b=b->bp){ rc = a->rp->index - b->rp->index; if( rc==0 ) rc = a->dot - b->dot; } if( rc==0 ){ if( a ) rc = 1; if( b ) rc = -1; } return rc; } /* Hash a state */ PRIVATE int statehash(a) struct config *a; { int h=0; while( a ){ h = h*571 + a->rp->index*37 + a->dot; a = a->bp; } return h; } /* Allocate a new state structure */ struct state *State_new() { struct state *new; new = (struct state *)calloc(1, sizeof(struct state) ); MemoryCheck(new); return new; } /* There is one instance of the following structure for each ** associative array of type "x3". */ struct s_x3 { int size; /* The number of available slots. */ /* Must be a power of 2 greater than or */ /* equal to 1 */ int count; /* Number of currently slots filled */ struct s_x3node *tbl; /* The data stored here */ struct s_x3node **ht; /* Hash table for lookups */ }; /* There is one instance of this structure for every data element ** in an associative array of type "x3". */ typedef struct s_x3node { struct state *data; /* The data */ struct config *key; /* The key */ struct s_x3node *next; /* Next entry with the same hash */ struct s_x3node **from; /* Previous link */ } x3node; /* There is only one instance of the array, which is the following */ static struct s_x3 *x3a; /* Allocate a new associative array */ void State_init(){ if( x3a ) return; x3a = (struct s_x3*)malloc( sizeof(struct s_x3) ); if( x3a ){ x3a->size = 128; x3a->count = 0; x3a->tbl = (x3node*)malloc( (sizeof(x3node) + sizeof(x3node*))*128 ); if( x3a->tbl==0 ){ free(x3a); x3a = 0; }else{ int i; x3a->ht = (x3node**)&(x3a->tbl[128]); for(i=0; i<128; i++) x3a->ht[i] = 0; } } } /* Insert a new record into the array. Return TRUE if successful. ** Prior data with the same key is NOT overwritten */ int State_insert(data,key) struct state *data; struct config *key; { x3node *np; int h; int ph; if( x3a==0 ) return 0; ph = statehash(key); h = ph & (x3a->size-1); np = x3a->ht[h]; while( np ){ if( statecmp(np->key,key)==0 ){ /* An existing entry with the same key is found. */ /* Fail because overwrite is not allows. */ return 0; } np = np->next; } if( x3a->count>=x3a->size ){ /* Need to make the hash table bigger */ int i,size; struct s_x3 array; array.size = size = x3a->size*2; array.count = x3a->count; array.tbl = (x3node*)malloc( (sizeof(x3node) + sizeof(x3node*))*size ); if( array.tbl==0 ) return 0; /* Fail due to malloc failure */ array.ht = (x3node**)&(array.tbl[size]); for(i=0; icount; i++){ x3node *oldnp, *newnp; oldnp = &(x3a->tbl[i]); h = statehash(oldnp->key) & (size-1); newnp = &(array.tbl[i]); if( array.ht[h] ) array.ht[h]->from = &(newnp->next); newnp->next = array.ht[h]; newnp->key = oldnp->key; newnp->data = oldnp->data; newnp->from = &(array.ht[h]); array.ht[h] = newnp; } free(x3a->tbl); *x3a = array; } /* Insert the new data */ h = ph & (x3a->size-1); np = &(x3a->tbl[x3a->count++]); np->key = key; np->data = data; if( x3a->ht[h] ) x3a->ht[h]->from = &(np->next); np->next = x3a->ht[h]; x3a->ht[h] = np; np->from = &(x3a->ht[h]); return 1; } /* Return a pointer to data assigned to the given key. Return NULL ** if no such key. */ struct state *State_find(key) struct config *key; { int h; x3node *np; if( x3a==0 ) return 0; h = statehash(key) & (x3a->size-1); np = x3a->ht[h]; while( np ){ if( statecmp(np->key,key)==0 ) break; np = np->next; } return np ? np->data : 0; } /* Return an array of pointers to all data in the table. ** The array is obtained from malloc. Return NULL if memory allocation ** problems, or if the array is empty. */ struct state **State_arrayof() { struct state **array; int i,size; if( x3a==0 ) return 0; size = x3a->count; array = (struct state **)malloc( sizeof(struct state *)*size ); if( array ){ for(i=0; itbl[i].data; } return array; } /* Hash a configuration */ PRIVATE int confighash(a) struct config *a; { int h=0; h = h*571 + a->rp->index*37 + a->dot; return h; } /* There is one instance of the following structure for each ** associative array of type "x4". */ struct s_x4 { int size; /* The number of available slots. */ /* Must be a power of 2 greater than or */ /* equal to 1 */ int count; /* Number of currently slots filled */ struct s_x4node *tbl; /* The data stored here */ struct s_x4node **ht; /* Hash table for lookups */ }; /* There is one instance of this structure for every data element ** in an associative array of type "x4". */ typedef struct s_x4node { struct config *data; /* The data */ struct s_x4node *next; /* Next entry with the same hash */ struct s_x4node **from; /* Previous link */ } x4node; /* There is only one instance of the array, which is the following */ static struct s_x4 *x4a; /* Allocate a new associative array */ void Configtable_init(){ if( x4a ) return; x4a = (struct s_x4*)malloc( sizeof(struct s_x4) ); if( x4a ){ x4a->size = 64; x4a->count = 0; x4a->tbl = (x4node*)malloc( (sizeof(x4node) + sizeof(x4node*))*64 ); if( x4a->tbl==0 ){ free(x4a); x4a = 0; }else{ int i; x4a->ht = (x4node**)&(x4a->tbl[64]); for(i=0; i<64; i++) x4a->ht[i] = 0; } } } /* Insert a new record into the array. Return TRUE if successful. ** Prior data with the same key is NOT overwritten */ int Configtable_insert(data) struct config *data; { x4node *np; int h; int ph; if( x4a==0 ) return 0; ph = confighash(data); h = ph & (x4a->size-1); np = x4a->ht[h]; while( np ){ if( Configcmp(np->data,data)==0 ){ /* An existing entry with the same key is found. */ /* Fail because overwrite is not allows. */ return 0; } np = np->next; } if( x4a->count>=x4a->size ){ /* Need to make the hash table bigger */ int i,size; struct s_x4 array; array.size = size = x4a->size*2; array.count = x4a->count; array.tbl = (x4node*)malloc( (sizeof(x4node) + sizeof(x4node*))*size ); if( array.tbl==0 ) return 0; /* Fail due to malloc failure */ array.ht = (x4node**)&(array.tbl[size]); for(i=0; icount; i++){ x4node *oldnp, *newnp; oldnp = &(x4a->tbl[i]); h = confighash(oldnp->data) & (size-1); newnp = &(array.tbl[i]); if( array.ht[h] ) array.ht[h]->from = &(newnp->next); newnp->next = array.ht[h]; newnp->data = oldnp->data; newnp->from = &(array.ht[h]); array.ht[h] = newnp; } free(x4a->tbl); *x4a = array; } /* Insert the new data */ h = ph & (x4a->size-1); np = &(x4a->tbl[x4a->count++]); np->data = data; if( x4a->ht[h] ) x4a->ht[h]->from = &(np->next); np->next = x4a->ht[h]; x4a->ht[h] = np; np->from = &(x4a->ht[h]); return 1; } /* Return a pointer to data assigned to the given key. Return NULL ** if no such key. */ struct config *Configtable_find(key) struct config *key; { int h; x4node *np; if( x4a==0 ) return 0; h = confighash(key) & (x4a->size-1); np = x4a->ht[h]; while( np ){ if( Configcmp(np->data,key)==0 ) break; np = np->next; } return np ? np->data : 0; } /* Remove all data from the table. Pass each data to the function "f" ** as it is removed. ("f" may be null to avoid this step.) */ void Configtable_clear(f) int(*f)(/* struct config * */); { int i; if( x4a==0 || x4a->count==0 ) return; if( f ) for(i=0; icount; i++) (*f)(x4a->tbl[i].data); for(i=0; isize; i++) x4a->ht[i] = 0; x4a->count = 0; return; } libspatialite-4.3.0a/src/gaiageo/lemon/lemon_src/Makefile.am0000664000175000017500000000004012544707704020746 00000000000000 EXTRA_DIST = lemon.c lempar.c libspatialite-4.3.0a/src/gaiageo/lemon/geoJSON.y0000664000175000017500000012767512544707704016417 00000000000000/* geoJSON.y -- GeoJSON parser - LEMON config version 2.4, 2011 May 16 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ // Tokens are void pointers (so we can cast them to whatever we want) %token_type {void *} // Output to stderr when stack overflows %stack_overflow { spatialite_e( "Giving up. Parser stack overflow\n"); } // Increase this number if necessary %stack_size 1000000 // Header files to be included in geoJSON.c %include { } // Set the return value of gaiaParseGeoJSON in the following pointer: %extra_argument { struct geoJson_data *p_data } // Invalid syntax (ie. no rules matched) %syntax_error { /* ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->geoJson_parse_error = 1; p_data->result = NULL; } /* This is to terminate with a new line */ main ::= in. in ::= . in ::= in state GEOJSON_NEWLINE. state ::= program. /* * program is the start node. All strings matched by this CFG must be one of * geo_text (text describing a geometry) */ program ::= geo_text. // geometries (2D and 3D): geo_text ::= point(P). { p_data->result = P; } // P is a geometry collection containing a point geo_text ::= pointz(P). { p_data->result = P; } // P is a geometry collection containing a point geo_text ::= linestring(L). { p_data->result = L; } // L is a geometry collection containing a linestring geo_text ::= linestringz(L). { p_data->result = L; } // L is a geometry collection containing a linestring geo_text ::= polygon(P). { p_data->result = P; } // P is a geometry collection containing a polygon geo_text ::= polygonz(P). { p_data->result = P; } // P is a geometry collection containing a polygon geo_text ::= multipoint(M). { p_data->result = M; } // M is a geometry collection containing a multipoint geo_text ::= multipointz(M). { p_data->result = M; } // M is a geometry collection containing a multipoint geo_text ::= multilinestring(M). { p_data->result = M; } // M is a geometry collection containing a multilinestring geo_text ::= multilinestringz(M). { p_data->result = M; } // M is a geometry collection containing a multilinestring geo_text ::= multipolygon(M). { p_data->result = M; } // M is a geometry collection containing a multipolygon geo_text ::= multipolygonz(M). { p_data->result = M; } // M is a geometry collection containing a multipolygon geo_text ::= geocoll(H). { p_data->result = H; } // H is a geometry collection created from user input geo_text ::= geocollz(H). { p_data->result = H; } // H is a geometry collection created from user input // Syntax for a "point" object: // The functions called build a geometry collection from a gaiaPointPtr point(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } // Point (2D) [simple] point(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } // Point (2D) [with BBOX] point(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPointSrid( p_data, (gaiaPointPtr)Q, (int *)S); } // Point (2D) [with short SRS] point(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPointSrid( p_data, (gaiaPointPtr)Q, (int *)S); } // Point (2D) [with long SRS] point(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPointSrid( p_data, (gaiaPointPtr)Q, (int *)S); } // Point (2D) [with BBOX & short SRS] point(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPointSrid( p_data, (gaiaPointPtr)Q, (int *)S); } // Point (2D) [with BBOX & long SRS] pointz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } // Point (3D) [simple] pointz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } // Point (3D) [with BBOX] pointz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPointSrid( p_data, (gaiaPointPtr)Q, (int *)S); } // Point (3D) [with short SRS] pointz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPointSrid( p_data, (gaiaPointPtr)Q, (int *)S); } // Point (3D) [with long SRS] point(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPointSrid( p_data, (gaiaPointPtr)Q, (int *)S); } // Point (3D) [with BBOX & short SRS] point(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPointSrid( p_data, (gaiaPointPtr)Q, (int *)S); } // Point (3D) [with BBOX & long SRS] // GeoJSON Bounding Box bbox ::= coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_COMMA coord. // GeoJSON short-format SRS short_crs(A) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON short_srid(B) GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE. { A = B; } // GeoJSON long-format SRS long_crs(A) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON long_srid(B) GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE. { A = B; } // Point coordinates in different dimensions. // Create the point by calling the proper function in SpatiaLite : point_coordxy(P) ::= GEOJSON_OPEN_BRACKET coord(X) GEOJSON_COMMA coord(Y) GEOJSON_CLOSE_BRACKET. { P = (void *) geoJSON_point_xy( p_data, (double *)X, (double *)Y); } point_coordxyz(P) ::= GEOJSON_OPEN_BRACKET coord(X) GEOJSON_COMMA coord(Y) GEOJSON_COMMA coord(Z) GEOJSON_CLOSE_BRACKET. { P = (void *) geoJSON_point_xyz( p_data, (double *)X, (double *)Y, (double *)Z); } // All coordinates are assumed to be doubles (guaranteed by the flex tokenizer). coord(A) ::= GEOJSON_NUM(B). { A = B; } // short-format SRID. short_srid(A) ::= GEOJSON_SHORT_SRID(B). { A = B; } // long-format SRID. long_srid(A) ::= GEOJSON_LONG_SRID(B). { A = B; } // Rules to match an infinite number of points: // Also links the generated gaiaPointPtrs together extra_pointsxy(A) ::= . { A = NULL; } extra_pointsxy(A) ::= GEOJSON_COMMA point_coordxy(P) extra_pointsxy(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_pointsxyz(A) ::= . { A = NULL; } extra_pointsxyz(A) ::= GEOJSON_COMMA point_coordxyz(P) extra_pointsxyz(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } // Syntax for a "linestring" object: // The functions called build a geometry collection from a gaiaLinestringPtr linestring(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } // LineString (2D) [simple] linestring(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } // LineString (2D) [with BBOX] linestring(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestringSrid( p_data, (gaiaLinestringPtr)X, (int *)S); } // LineString (2D) [with short SRS] linestring(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestringSrid( p_data, (gaiaLinestringPtr)X, (int *)S); } // LineString (2D) [with long SRS] linestring(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestringSrid( p_data, (gaiaLinestringPtr)X, (int *)S); } // LineString (2D) [with BBOX & short SRS] linestring(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestringSrid( p_data, (gaiaLinestringPtr)X, (int *)S); } // LineString (2D) [with BBOX & long SRS] linestringz(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } // LineString (3D) [simple] linestringz(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } // LineString (3D) [with BBOX] linestringz(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestringSrid( p_data, (gaiaLinestringPtr)X, (int *)S); } // LineString (3D) [with short SRS] linestringz(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestringSrid( p_data, (gaiaLinestringPtr)X, (int *)S); } // LineString (3D) [with long SRS] linestringz(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestringSrid( p_data, (gaiaLinestringPtr)X, (int *)S); } // LineString (3D) [with BBOX & short SRS] linestringz(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestringSrid( p_data, (gaiaLinestringPtr)X, (int *)S); } // LineString (3D) [with BBOX & long SRS] // A valid linestring must have at least two vertices: // The functions called build a gaiaLinestring from a linked list of points linestring_text(L) ::= GEOJSON_OPEN_BRACKET point_coordxy(P) GEOJSON_COMMA point_coordxy(Q) extra_pointsxy(R) GEOJSON_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) geoJSON_linestring_xy( p_data, (gaiaPointPtr)P); } linestring_textz(L) ::= GEOJSON_OPEN_BRACKET point_coordxyz(P) GEOJSON_COMMA point_coordxyz(Q) extra_pointsxyz(R) GEOJSON_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) geoJSON_linestring_xyz( p_data, (gaiaPointPtr)P); } // Syntax for a "polygon" object: // The functions called build a geometry collection from a gaiaPolygonPtr polygon(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } // Polygon (2D) [simple] polygon(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } // Polygon (2D) [with BBOX] polygon(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygonSrid( p_data, (gaiaPolygonPtr)X, (int *)S); } // Polygon (2D) [with short SRS] polygon(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygonSrid( p_data, (gaiaPolygonPtr)X, (int *)S); } // Polygon (2D) [with long SRS] polygon(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygonSrid( p_data, (gaiaPolygonPtr)X, (int *)S); } // Polygon (2D) [with BBOX & short SRS] polygon(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygonSrid( p_data, (gaiaPolygonPtr)X, (int *)S); } // Polygon (2D) [with BBOX & long SRS] polygonz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } // Polygon (3D) [simple] polygonz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } // Polygon (3D) [with BBOX] polygonz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygonSrid( p_data, (gaiaPolygonPtr)X, (int *)S); } // Polygon (3D) [with short SRS] polygonz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygonSrid( p_data, (gaiaPolygonPtr)X, (int *)S); } // Polygon (3D) [with long SRS] polygonz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygonSrid( p_data, (gaiaPolygonPtr)X, (int *)S); } // Polygon (3D) [with BBOX & short SRS] polygonz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygonSrid( p_data, (gaiaPolygonPtr)X, (int *)S); } // Polygon (3D) [with BBOX & long SRS] // A valid polygon must have at least one ring: // The functions called build a gaiaPolygonPtr from a linked list of gaiaRingPtrs polygon_text(P) ::= GEOJSON_OPEN_BRACKET ring(R) extra_rings(E) GEOJSON_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) geoJSON_polygon_xy(p_data, (gaiaRingPtr)R); } polygon_textz(P) ::= GEOJSON_OPEN_BRACKET ringz(R) extra_ringsz(E) GEOJSON_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) geoJSON_polygon_xyz(p_data, (gaiaRingPtr)R); } // A valid ring must have at least 4 points // The functions called build a gaiaRingPtr from a linked list of gaiaPointPtrs ring(R) ::= GEOJSON_OPEN_BRACKET point_coordxy(A) GEOJSON_COMMA point_coordxy(B) GEOJSON_COMMA point_coordxy(C) GEOJSON_COMMA point_coordxy(D) extra_pointsxy(E) GEOJSON_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) geoJSON_ring_xy(p_data, (gaiaPointPtr)A); } // To match more than one 2D ring: extra_rings(R) ::= . { R = NULL; } extra_rings(R) ::= GEOJSON_COMMA ring(S) extra_rings(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } ringz(R) ::= GEOJSON_OPEN_BRACKET point_coordxyz(A) GEOJSON_COMMA point_coordxyz(B) GEOJSON_COMMA point_coordxyz(C) GEOJSON_COMMA point_coordxyz(D) extra_pointsxyz(E) GEOJSON_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) geoJSON_ring_xyz(p_data, (gaiaPointPtr)A); } // To match more than one 3D ring: extra_ringsz(R) ::= . { R = NULL; } extra_ringsz(R) ::= GEOJSON_COMMA ringz(S) extra_ringsz(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } // Syntax for a "multipoint" object: // X in the following lines is a geometry collection containing a multipoint multipoint(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiPoint (2D) [simple] multipoint(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiPoint (2D) [with BBOX] multipoint(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPoint (2D) [with short SRS] multipoint(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPoint (2D) [with long SRS] multipoint(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPoint (2D) [with BBOX & short SRS] multipoint(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPoint (2D) [with BBOX & long SRS] multipointz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiPoint (3D) [simple] multipointz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiPoint (3D) [with BBOX] multipointz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPoint (3D) [with short SRS] multipointz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPoint (3D) [with long SRS] multipointz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPoint (3D) [with BBOX & short SRS] multipointz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPoint (3D) [with BBOX & long SRS] // Multipoints can contain any number of points (but at least one): // The functions called build a geometry collection containing a multipoint multipoint_text(M) ::= GEOJSON_OPEN_BRACKET point_coordxy(P) extra_pointsxy(Q) GEOJSON_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) geoJSON_multipoint_xy(p_data, (gaiaPointPtr)P); } multipoint_textz(M) ::= GEOJSON_OPEN_BRACKET point_coordxyz(P) extra_pointsxyz(Q) GEOJSON_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) geoJSON_multipoint_xyz(p_data, (gaiaPointPtr)P); } // Syntax for a "multilinestring" object: // X in the following lines refers to a geometry collection containing a multilinestring multilinestring(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiLineString (2D) [simple] multilinestring(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiLineString (2D) [with BBOX] multilinestring(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiLineString (2D) [with short SRS] multilinestring(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiLineString (2D) [with long SRS] multilinestring(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiLineString (2D) [with BBOX & short SRS] multilinestring(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiLineString (2D) [with BBOX & long SRS] multilinestringz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiLineString (3D) [simple] multilinestringz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiLineString (3D) [with BBOX] multilinestringz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiLineString (3D) [with short SRS] multilinestringz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiLineString (3D) [with long SRS] multilinestringz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiLineString (3D) [with BBOX & short SRS] multilinestringz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiLineString (3D) [with BBOX & long SRS] // Multilinestrings can contain any number of linestrings (but at least one): // The functions called build a geometry collection containing a multilinestring multilinestring_text(M) ::= GEOJSON_OPEN_BRACKET linestring_text(L) multilinestring_text2(X) GEOJSON_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) geoJSON_multilinestring_xy( p_data, (gaiaLinestringPtr)L); } // Extra linestrings multilinestring_text2(X) ::= . { X = NULL; } multilinestring_text2(X) ::= GEOJSON_COMMA linestring_text(L) multilinestring_text2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } multilinestring_textz(M) ::= GEOJSON_OPEN_BRACKET linestring_textz(L) multilinestring_textz2(X) GEOJSON_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) geoJSON_multilinestring_xyz(p_data, (gaiaLinestringPtr)L); } multilinestring_textz2(X) ::= . { X = NULL; } multilinestring_textz2(X) ::= GEOJSON_COMMA linestring_textz(L) multilinestring_textz2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } // Syntax for a "multipolygon" object // X in the following lines refers to a geometry collection containing a multipolygon multipolygon(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiPolygon (2D) [simple] multipolygon(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiPolygon (2D) [with BBOX] multipolygon(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPolygon (2D) [with short SRS] multipolygon(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPolygon (2D) [with long SRS] multipolygon(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPolygon (2D) [with BBOX & short SRS] multipolygon(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPolygon (2D) [with BBOX & long SRS] multipolygonz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiPolygon (3D) [simple] multipolygonz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz(X) GEOJSON_CLOSE_BRACE. { M = X; } // MultiPolygon (3D) [with BBOX] multipolygonz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPolygon (3D) [with short SRS] multipolygonz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPolygon (3D) [with long SRS] multipolygonz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPolygon (3D) [with BBOX & short SRS] multipolygonz(M) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz(X) GEOJSON_CLOSE_BRACE. { M = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // MultiPolygon (3D) [with BBOX & long SRS] // Multipolygons can contain any number of polygons (but at least one): // The functions called build a geometry collection containing a multipolygon multipolygon_text(M) ::= GEOJSON_OPEN_BRACKET polygon_text(P) multipolygon_text2(Q) GEOJSON_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) geoJSON_multipolygon_xy(p_data, (gaiaPolygonPtr)P); } // Extra polygons multipolygon_text2(Q) ::= . { Q = NULL; } multipolygon_text2(A) ::= GEOJSON_COMMA polygon_text(P) multipolygon_text2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } multipolygon_textz(M) ::= GEOJSON_OPEN_BRACKET polygon_textz(P) multipolygon_textz2(Q) GEOJSON_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) geoJSON_multipolygon_xyz(p_data, (gaiaPolygonPtr)P); } multipolygon_textz2(Q) ::= . { Q = NULL; } multipolygon_textz2(A) ::= GEOJSON_COMMA polygon_textz(P) multipolygon_textz2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } // Syntax for a "geometrycollection" object: // X in the following lines refers to a geometry collection generated based on user input geocoll(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text(X) GEOJSON_CLOSE_BRACE. { G = X; } // GeomColl (2D) [simple] geocoll(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text(X) GEOJSON_CLOSE_BRACE. { G = X; } // GeomColl (2D) [with BBOX] geocoll(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text(X) GEOJSON_CLOSE_BRACE. { G = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // GeomColl (2D) [with short SRS] geocoll(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text(X) GEOJSON_CLOSE_BRACE. { G = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // GeomColl (2D) [with long SRS] geocoll(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text(X) GEOJSON_CLOSE_BRACE. { G = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // GeomColl (2D) [with BBOX & short SRS] geocoll(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text(X) GEOJSON_CLOSE_BRACE. { G = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // GeomColl (2D) [with BBOX & long SRS] geocollz(G) ::= GEOJSON_GEOMETRYCOLLECTION geocoll_textz(X). { G = X; } // GeomColl (3D) [simple] geocollz(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz(X) GEOJSON_CLOSE_BRACE. { G = X; } // GeomColl (3D) [with BBOX] geocollz(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz(X) GEOJSON_CLOSE_BRACE. { G = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // GeomColl (3D) [with short SRS] geocollz(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz(X) GEOJSON_CLOSE_BRACE. { G = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // GeomColl (3D) [with long SRS] geocollz(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz(X) GEOJSON_CLOSE_BRACE. { G = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // GeomColl (3D) [with BBOX & short SRS] geocollz(G) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs(S) GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz(X) GEOJSON_CLOSE_BRACE. { G = (void *) geoJSON_setSrid((gaiaGeomCollPtr)X, (int *)S); } // GeomColl (3D) [with BBOX & long SRS] // Geometry collections can contain any number of points, linestrings, or polygons (but at least one): geocoll_text(G) ::= GEOJSON_OPEN_BRACKET coll_point(P) geocoll_text2(X) GEOJSON_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) geoJSON_geomColl_xy(p_data, (gaiaGeomCollPtr)P); } geocoll_text(G) ::= GEOJSON_OPEN_BRACKET coll_linestring(L) geocoll_text2(X) GEOJSON_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) geoJSON_geomColl_xy(p_data, (gaiaGeomCollPtr)L); } geocoll_text(G) ::= GEOJSON_OPEN_BRACKET coll_polygon(P) geocoll_text2(X) GEOJSON_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) geoJSON_geomColl_xy(p_data, (gaiaGeomCollPtr)P); } // Extra points, linestrings, or polygons geocoll_text2(X) ::= . { X = NULL; } geocoll_text2(X) ::= GEOJSON_COMMA coll_point(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_text2(X) ::= GEOJSON_COMMA coll_linestring(L) geocoll_text2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_text2(X) ::= GEOJSON_COMMA coll_polygon(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz(G) ::= GEOJSON_OPEN_BRACKET coll_pointz(P) geocoll_textz2(X) GEOJSON_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) geoJSON_geomColl_xyz(p_data, (gaiaGeomCollPtr)P); } geocoll_textz(G) ::= GEOJSON_OPEN_BRACKET coll_linestringz(L) geocoll_textz2(X) GEOJSON_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) geoJSON_geomColl_xyz(p_data, (gaiaGeomCollPtr)L); } geocoll_textz(G) ::= GEOJSON_OPEN_BRACKET coll_polygonz(P) geocoll_textz2(X) GEOJSON_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) geoJSON_geomColl_xyz(p_data, (gaiaGeomCollPtr)P); } geocoll_textz2(X) ::= . { X = NULL; } geocoll_textz2(X) ::= GEOJSON_COMMA coll_pointz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz2(X) ::= GEOJSON_COMMA coll_linestringz(L) geocoll_textz2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textz2(X) ::= GEOJSON_COMMA coll_polygonz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } coll_point(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPoint(p_data, (gaiaPointPtr)Q); } coll_pointz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz(Q) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPoint(p_data, (gaiaPointPtr)Q); } coll_linestring(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestring(p_data, (gaiaLinestringPtr)X); } coll_linestringz(L) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz(X) GEOJSON_CLOSE_BRACE. { L = geoJSON_buildGeomFromLinestring(p_data, (gaiaLinestringPtr)X); } coll_polygon(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygon(p_data, (gaiaPolygonPtr)X); } coll_polygonz(P) ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz(X) GEOJSON_CLOSE_BRACE. { P = geoJSON_buildGeomFromPolygon(p_data, (gaiaPolygonPtr)X); } libspatialite-4.3.0a/src/gaiageo/lemon/vanuatuWkt.y0000664000175000017500000010405712544707704017311 00000000000000/* vanuatuWkt.y -- Vanuatu WKT parser - LEMON config version 2.4, 2010 April 2 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): The Vanuatu Team - University of Toronto Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /****************************************************************************** ** The following code was created by Team Vanuatu of The University of Toronto. Authors: Ruppi Rana ruppi.rana@gmail.com Dev Tanna dev.tanna@gmail.com Elias Adum elias.adum@gmail.com Benton Hui benton.hui@gmail.com Abhayan Sundararajan abhayan@gmail.com Chee-Lun Michael Stephen Cho cheelun.cho@gmail.com Nikola Banovic nikola.banovic@gmail.com Yong Jian yong.jian@utoronto.ca Supervisor: Greg Wilson gvwilson@cs.toronto.ca ------------------------------------------------------------------------------- */ // Tokens are void pointers (so we can cast them to whatever we want) %token_type {void *} // Output to stderr when stack overflows %stack_overflow { spatialite_e( "Giving up. Parser stack overflow\n"); } // Increase this number if necessary %stack_size 1000000 // Header files to be included in vanuatuWkt.c %include { } // Set the return value of gaiaParseWkt in the following pointer: %extra_argument { struct vanuatu_data *p_data } // Invalid syntax (ie. no rules matched) %syntax_error { /* ** Sandro Furieri 2010 Apr 4 ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->vanuatu_parse_error = 1; p_data->result = NULL; } /* This is to terminate with a new line */ main ::= in. in ::= . in ::= in state VANUATU_NEWLINE. state ::= program. /* * program is the start node. All strings matched by this CFG must be one of * geo_text (text describing a 2D geometry), * geo_textz (text describing a 3D geometry), * geo_textm (text describing a 2D geometry with a measure) * geo_textzm (text describing a 3D geometry with a measure) */ program ::= geo_text. program ::= geo_textz. program ::= geo_textm. program ::= geo_textzm. // 2D geometries (no measure): geo_text ::= point(P). { p_data->result = P; } // P is a geometry collection containing a point geo_text ::= linestring(L). { p_data->result = L; } // L is a geometry collection containing a linestring geo_text ::= polygon(P). { p_data->result = P; } // P is a geometry collection containing a polygon geo_text ::= multipoint(M). { p_data->result = M; } // M is a geometry collection containing a multipoint geo_text ::= multilinestring(M). { p_data->result = M; } // M is a geometry collection containing a multilinestring geo_text ::= multipolygon(M). { p_data->result = M; } // M is a geometry collection containing a multipolygon geo_text ::= geocoll(H). { p_data->result = H; } // H is a geometry collection created from user input // 3D geometries (no measure): geo_textz ::= pointz(P). { p_data->result = P; } geo_textz ::= linestringz(L). { p_data->result = L; } geo_textz ::= polygonz(P). { p_data->result = P; } geo_textz ::= multipointz(M). { p_data->result = M; } geo_textz ::= multilinestringz(M). { p_data->result = M; } geo_textz ::= multipolygonz(M). { p_data->result = M; } geo_textz ::= geocollz(H). { p_data->result = H; } // 2D geometries (with a measure): geo_textm ::= pointm(P). { p_data->result = P; } geo_textm ::= linestringm(L). { p_data->result = L; } geo_textm ::= polygonm(P). { p_data->result = P; } geo_textm ::= multipointm(M). { p_data->result = M; } geo_textm ::= multilinestringm(M). { p_data->result = M; } geo_textm ::= multipolygonm(M). { p_data->result = M; } geo_textm ::= geocollm(H). { p_data->result = H; } // 3D geometries (with a measure): geo_textzm ::= pointzm(P). { p_data->result = P; } geo_textzm ::= linestringzm(L). { p_data->result = L; } geo_textzm ::= polygonzm(P). { p_data->result = P; } geo_textzm ::= multipointzm(M). { p_data->result = M; } geo_textzm ::= multilinestringzm(M). { p_data->result = M; } geo_textzm ::= multipolygonzm(M). { p_data->result = M; } geo_textzm ::= geocollzm(H). { p_data->result = H; } // Syntax for a "point" object: // The functions called build a geometry collection from a gaiaPointPtr point(P) ::= VANUATU_POINT VANUATU_OPEN_BRACKET point_coordxy(Q) VANUATU_CLOSE_BRACKET. { P = vanuatu_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } pointm(P) ::= VANUATU_POINT_M VANUATU_OPEN_BRACKET point_coordxym(Q) VANUATU_CLOSE_BRACKET. { P = vanuatu_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } pointz(P) ::= VANUATU_POINT_Z VANUATU_OPEN_BRACKET point_coordxyz(Q) VANUATU_CLOSE_BRACKET. { P = vanuatu_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } pointzm(P) ::= VANUATU_POINT_ZM VANUATU_OPEN_BRACKET point_coordxyzm(Q) VANUATU_CLOSE_BRACKET. { P = vanuatu_buildGeomFromPoint( p_data, (gaiaPointPtr)Q); } // Point coordinates in different dimensions: MultiPoint((pt),(pt)) // Create the point by calling the proper function in SpatiaLite : point_brkt_coordxy(P) ::= VANUATU_OPEN_BRACKET coord(X) coord(Y) VANUATU_CLOSE_BRACKET. { P = (void *) vanuatu_point_xy( p_data, (double *)X, (double *)Y); } point_brkt_coordxym(P) ::= VANUATU_OPEN_BRACKET coord(X) coord(Y) coord(M) VANUATU_CLOSE_BRACKET. { P = (void *) vanuatu_point_xym( p_data, (double *)X, (double *)Y, (double *)M); } point_brkt_coordxyz(P) ::= VANUATU_OPEN_BRACKET coord(X) coord(Y) coord(Z) VANUATU_CLOSE_BRACKET. { P = (void *) vanuatu_point_xyz( p_data, (double *)X, (double *)Y, (double *)Z); } point_brkt_coordxyzm(P) ::= VANUATU_OPEN_BRACKET coord(X) coord(Y) coord(Z) coord(M) VANUATU_CLOSE_BRACKET. { P = (void *) vanuatu_point_xyzm( p_data, (double *)X, (double *)Y, (double *)Z, (double *)M); } // Point coordinates in different dimensions. // Create the point by calling the proper function in SpatiaLite : point_coordxy(P) ::= coord(X) coord(Y). { P = (void *) vanuatu_point_xy( p_data, (double *)X, (double *)Y); } point_coordxym(P) ::= coord(X) coord(Y) coord(M). { P = (void *) vanuatu_point_xym( p_data, (double *)X, (double *)Y, (double *)M); } point_coordxyz(P) ::= coord(X) coord(Y) coord(Z). { P = (void *) vanuatu_point_xyz( p_data, (double *)X, (double *)Y, (double *)Z); } point_coordxyzm(P) ::= coord(X) coord(Y) coord(Z) coord(M). { P = (void *) vanuatu_point_xyzm( p_data, (double *)X, (double *)Y, (double *)Z, (double *)M); } // All coordinates are assumed to be doubles (guaranteed by the flex tokenizer). coord(A) ::= VANUATU_NUM(B). { A = B; } // Rules to match an infinite number of points: MultiPoint((pt), (pt)) // Also links the generated gaiaPointPtrs together extra_brkt_pointsxy(A) ::= . { A = NULL; } extra_brkt_pointsxy(A) ::= VANUATU_COMMA point_brkt_coordxy(P) extra_brkt_pointsxy(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_brkt_pointsxym(A) ::= . { A = NULL; } extra_brkt_pointsxym(A) ::= VANUATU_COMMA point_brkt_coordxym(P) extra_brkt_pointsxym(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_brkt_pointsxyz(A) ::= . { A = NULL; } extra_brkt_pointsxyz(A) ::= VANUATU_COMMA point_brkt_coordxyz(P) extra_brkt_pointsxyz(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_brkt_pointsxyzm(A) ::= . { A = NULL; } extra_brkt_pointsxyzm(A) ::= VANUATU_COMMA point_brkt_coordxyzm(P) extra_brkt_pointsxyzm(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } // Rules to match an infinite number of points: // Also links the generated gaiaPointPtrs together extra_pointsxy(A) ::= . { A = NULL; } extra_pointsxy(A) ::= VANUATU_COMMA point_coordxy(P) extra_pointsxy(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_pointsxym(A) ::= . { A = NULL; } extra_pointsxym(A) ::= VANUATU_COMMA point_coordxym(P) extra_pointsxym(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_pointsxyz(A) ::= . { A = NULL; } extra_pointsxyz(A) ::= VANUATU_COMMA point_coordxyz(P) extra_pointsxyz(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } extra_pointsxyzm(A) ::= . { A = NULL; } extra_pointsxyzm(A) ::= VANUATU_COMMA point_coordxyzm(P) extra_pointsxyzm(B). { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)B; A = P; } // Syntax for a "linestring" object: // The functions called build a geometry collection from a gaiaLinestringPtr linestring(L) ::= VANUATU_LINESTRING linestring_text(X). { L = vanuatu_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } linestringm(L) ::= VANUATU_LINESTRING_M linestring_textm(X). { L = vanuatu_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } linestringz(L) ::= VANUATU_LINESTRING_Z linestring_textz(X). { L = vanuatu_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } linestringzm(L) ::= VANUATU_LINESTRING_ZM linestring_textzm(X). { L = vanuatu_buildGeomFromLinestring( p_data, (gaiaLinestringPtr)X); } // A valid linestring must have at least two vertices: // The functions called build a gaiaLinestring from a linked list of points linestring_text(L) ::= VANUATU_OPEN_BRACKET point_coordxy(P) VANUATU_COMMA point_coordxy(Q) extra_pointsxy(R) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) vanuatu_linestring_xy( p_data, (gaiaPointPtr)P); } linestring_textm(L) ::= VANUATU_OPEN_BRACKET point_coordxym(P) VANUATU_COMMA point_coordxym(Q) extra_pointsxym(R) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) vanuatu_linestring_xym( p_data, (gaiaPointPtr)P); } linestring_textz(L) ::= VANUATU_OPEN_BRACKET point_coordxyz(P) VANUATU_COMMA point_coordxyz(Q) extra_pointsxyz(R) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) vanuatu_linestring_xyz( p_data, (gaiaPointPtr)P); } linestring_textzm(L) ::= VANUATU_OPEN_BRACKET point_coordxyzm(P) VANUATU_COMMA point_coordxyzm(Q) extra_pointsxyzm(R) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)Q)->Next = (gaiaPointPtr)R; ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; L = (void *) vanuatu_linestring_xyzm( p_data, (gaiaPointPtr)P); } // Syntax for a "polygon" object: // The functions called build a geometry collection from a gaiaPolygonPtr polygon(P) ::= VANUATU_POLYGON polygon_text(X). { P = vanuatu_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } polygonm(P) ::= VANUATU_POLYGON_M polygon_textm(X). { P = vanuatu_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } polygonz(P) ::= VANUATU_POLYGON_Z polygon_textz(X). { P = vanuatu_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } polygonzm(P) ::= VANUATU_POLYGON_ZM polygon_textzm(X). { P = vanuatu_buildGeomFromPolygon( p_data, (gaiaPolygonPtr)X); } // A valid polygon must have at least one ring: // The functions called build a gaiaPolygonPtr from a linked list of gaiaRingPtrs polygon_text(P) ::= VANUATU_OPEN_BRACKET ring(R) extra_rings(E) VANUATU_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) vanuatu_polygon_xy( p_data, (gaiaRingPtr)R); } polygon_textm(P) ::= VANUATU_OPEN_BRACKET ringm(R) extra_ringsm(E) VANUATU_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) vanuatu_polygon_xym( p_data, (gaiaRingPtr)R); } polygon_textz(P) ::= VANUATU_OPEN_BRACKET ringz(R) extra_ringsz(E) VANUATU_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) vanuatu_polygon_xyz( p_data, (gaiaRingPtr)R); } polygon_textzm(P) ::= VANUATU_OPEN_BRACKET ringzm(R) extra_ringszm(E) VANUATU_CLOSE_BRACKET. { ((gaiaRingPtr)R)->Next = (gaiaRingPtr)E; P = (void *) vanuatu_polygon_xyzm( p_data, (gaiaRingPtr)R); } // A valid ring must have at least 4 points // The functions called build a gaiaRingPtr from a linked list of gaiaPointPtrs ring(R) ::= VANUATU_OPEN_BRACKET point_coordxy(A) VANUATU_COMMA point_coordxy(B) VANUATU_COMMA point_coordxy(C) VANUATU_COMMA point_coordxy(D) extra_pointsxy(E) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) vanuatu_ring_xy( p_data, (gaiaPointPtr)A); } // To match more than one 2D ring: extra_rings(R) ::= . { R = NULL; } extra_rings(R) ::= VANUATU_COMMA ring(S) extra_rings(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } ringm(R) ::= VANUATU_OPEN_BRACKET point_coordxym(A) VANUATU_COMMA point_coordxym(B) VANUATU_COMMA point_coordxym(C) VANUATU_COMMA point_coordxym(D) extra_pointsxym(E) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) vanuatu_ring_xym( p_data, (gaiaPointPtr)A); } // To match more than one 2D (with a measure) ring: extra_ringsm(R) ::= . { R = NULL; } extra_ringsm(R) ::= VANUATU_COMMA ringm(S) extra_ringsm(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } ringz(R) ::= VANUATU_OPEN_BRACKET point_coordxyz(A) VANUATU_COMMA point_coordxyz(B) VANUATU_COMMA point_coordxyz(C) VANUATU_COMMA point_coordxyz(D) extra_pointsxyz(E) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) vanuatu_ring_xyz( p_data, (gaiaPointPtr)A); } // To match more than one 3D ring: extra_ringsz(R) ::= . { R = NULL; } extra_ringsz(R) ::= VANUATU_COMMA ringz(S) extra_ringsz(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } ringzm(R) ::= VANUATU_OPEN_BRACKET point_coordxyzm(A) VANUATU_COMMA point_coordxyzm(B) VANUATU_COMMA point_coordxyzm(C) VANUATU_COMMA point_coordxyzm(D) extra_pointsxyzm(E) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)A)->Next = (gaiaPointPtr)B; ((gaiaPointPtr)B)->Next = (gaiaPointPtr)C; ((gaiaPointPtr)C)->Next = (gaiaPointPtr)D; ((gaiaPointPtr)D)->Next = (gaiaPointPtr)E; R = (void *) vanuatu_ring_xyzm( p_data, (gaiaPointPtr)A); } // To match more than one 3D (with a measure) ring: extra_ringszm(R) ::= . { R = NULL; } extra_ringszm(R) ::= VANUATU_COMMA ringzm(S) extra_ringszm(T). { ((gaiaRingPtr)S)->Next = (gaiaRingPtr)T; R = S; } // Syntax for a "multipoint" object: // X in the following lines is a geometry collection containing a multipoint multipoint(M) ::= VANUATU_MULTIPOINT multipoint_text(X). { M = X; } multipointm(M) ::= VANUATU_MULTIPOINT_M multipoint_textm(X). { M = X; } multipointz(M) ::= VANUATU_MULTIPOINT_Z multipoint_textz(X). { M = X; } multipointzm(M) ::= VANUATU_MULTIPOINT_ZM multipoint_textzm(X). { M = X; } // Multipoints can contain any number of points (but at least one): // The functions called build a geometry collection containing a multipoint multipoint_text(M) ::= VANUATU_OPEN_BRACKET point_coordxy(P) extra_pointsxy(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) vanuatu_multipoint_xy( p_data, (gaiaPointPtr)P); } multipoint_textm(M) ::= VANUATU_OPEN_BRACKET point_coordxym(P) extra_pointsxym(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) vanuatu_multipoint_xym( p_data, (gaiaPointPtr)P); } multipoint_textz(M) ::= VANUATU_OPEN_BRACKET point_coordxyz(P) extra_pointsxyz(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) vanuatu_multipoint_xyz( p_data, (gaiaPointPtr)P); } multipoint_textzm(M) ::= VANUATU_OPEN_BRACKET point_coordxyzm(P) extra_pointsxyzm(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) vanuatu_multipoint_xyzm( p_data, (gaiaPointPtr)P); } multipoint_text(M) ::= VANUATU_OPEN_BRACKET point_brkt_coordxy(P) extra_brkt_pointsxy(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) vanuatu_multipoint_xy( p_data, (gaiaPointPtr)P); } multipoint_textm(M) ::= VANUATU_OPEN_BRACKET point_brkt_coordxym(P) extra_brkt_pointsxym(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) vanuatu_multipoint_xym( p_data, (gaiaPointPtr)P); } multipoint_textz(M) ::= VANUATU_OPEN_BRACKET point_brkt_coordxyz(P) extra_brkt_pointsxyz(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) vanuatu_multipoint_xyz( p_data, (gaiaPointPtr)P); } multipoint_textzm(M) ::= VANUATU_OPEN_BRACKET point_brkt_coordxyzm(P) extra_brkt_pointsxyzm(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPointPtr)P)->Next = (gaiaPointPtr)Q; M = (void *) vanuatu_multipoint_xyzm( p_data, (gaiaPointPtr)P); } // Syntax for a "multilinestring" object: // X in the following lines refers to a geometry collection containing a multilinestring multilinestring(M) ::= VANUATU_MULTILINESTRING multilinestring_text(X). { M = X; } multilinestringm(M) ::= VANUATU_MULTILINESTRING_M multilinestring_textm(X). { M = X; } multilinestringz(M) ::= VANUATU_MULTILINESTRING_Z multilinestring_textz(X). { M = X; } multilinestringzm(M) ::= VANUATU_MULTILINESTRING_ZM multilinestring_textzm(X). { M = X; } // Multilinestrings can contain any number of linestrings (but at least one): // The functions called build a geometry collection containing a multilinestring multilinestring_text(M) ::= VANUATU_OPEN_BRACKET linestring_text(L) multilinestring_text2(X) VANUATU_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) vanuatu_multilinestring_xy( p_data, (gaiaLinestringPtr)L); } // Extra linestrings multilinestring_text2(X) ::= . { X = NULL; } multilinestring_text2(X) ::= VANUATU_COMMA linestring_text(L) multilinestring_text2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } multilinestring_textm(M) ::= VANUATU_OPEN_BRACKET linestring_textm(L) multilinestring_textm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) vanuatu_multilinestring_xym( p_data, (gaiaLinestringPtr)L); } multilinestring_textm2(X) ::= . { X = NULL; } multilinestring_textm2(X) ::= VANUATU_COMMA linestring_textm(L) multilinestring_textm2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } multilinestring_textz(M) ::= VANUATU_OPEN_BRACKET linestring_textz(L) multilinestring_textz2(X) VANUATU_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) vanuatu_multilinestring_xyz( p_data, (gaiaLinestringPtr)L); } multilinestring_textz2(X) ::= . { X = NULL; } multilinestring_textz2(X) ::= VANUATU_COMMA linestring_textz(L) multilinestring_textz2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } multilinestring_textzm(M) ::= VANUATU_OPEN_BRACKET linestring_textzm(L) multilinestring_textzm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)X; M = (void *) vanuatu_multilinestring_xyzm( p_data, (gaiaLinestringPtr)L); } multilinestring_textzm2(X) ::= . { X = NULL; } multilinestring_textzm2(X) ::= VANUATU_COMMA linestring_textzm(L) multilinestring_textzm2(Y). { ((gaiaLinestringPtr)L)->Next = (gaiaLinestringPtr)Y; X = L; } // Syntax for a "multipolygon" object // X in the following lines refers to a geometry collection containing a multipolygon multipolygon(M) ::= VANUATU_MULTIPOLYGON multipolygon_text(X). { M = X; } multipolygonm(M) ::= VANUATU_MULTIPOLYGON_M multipolygon_textm(X). { M = X; } multipolygonz(M) ::= VANUATU_MULTIPOLYGON_Z multipolygon_textz(X). { M = X; } multipolygonzm(M) ::= VANUATU_MULTIPOLYGON_ZM multipolygon_textzm(X). { M = X; } // Multipolygons can contain any number of polygons (but at least one): // The functions called build a geometry collection containing a multipolygon multipolygon_text(M) ::= VANUATU_OPEN_BRACKET polygon_text(P) multipolygon_text2(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) vanuatu_multipolygon_xy( p_data, (gaiaPolygonPtr)P); } // Extra polygons multipolygon_text2(Q) ::= . { Q = NULL; } multipolygon_text2(A) ::= VANUATU_COMMA polygon_text(P) multipolygon_text2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } multipolygon_textm(M) ::= VANUATU_OPEN_BRACKET polygon_textm(P) multipolygon_textm2(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) vanuatu_multipolygon_xym( p_data, (gaiaPolygonPtr)P); } multipolygon_textm2(Q) ::= . { Q = NULL; } multipolygon_textm2(A) ::= VANUATU_COMMA polygon_textm(P) multipolygon_textm2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } multipolygon_textz(M) ::= VANUATU_OPEN_BRACKET polygon_textz(P) multipolygon_textz2(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) vanuatu_multipolygon_xyz( p_data, (gaiaPolygonPtr)P); } multipolygon_textz2(Q) ::= . { Q = NULL; } multipolygon_textz2(A) ::= VANUATU_COMMA polygon_textz(P) multipolygon_textz2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } multipolygon_textzm(M) ::= VANUATU_OPEN_BRACKET polygon_textzm(P) multipolygon_textzm2(Q) VANUATU_CLOSE_BRACKET. { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)Q; M = (void *) vanuatu_multipolygon_xyzm( p_data, (gaiaPolygonPtr)P); } multipolygon_textzm2(Q) ::= . { Q = NULL; } multipolygon_textzm2(A) ::= VANUATU_COMMA polygon_textzm(P) multipolygon_textzm2(B). { ((gaiaPolygonPtr)P)->Next = (gaiaPolygonPtr)B; A = P; } // Syntax for a "geometrycollection" object: // X in the following lines refers to a geometry collection generated based on user input geocoll(G) ::= VANUATU_GEOMETRYCOLLECTION geocoll_text(X). { G = X; } geocollm(G) ::= VANUATU_GEOMETRYCOLLECTION_M geocoll_textm(X). { G = X; } geocollz(G) ::= VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz(X). { G = X; } geocollzm(G) ::= VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm(X). { G = X; } // Geometry collections can contain any number of points, linestrings, or polygons (but at least one): geocoll_text(G) ::= VANUATU_OPEN_BRACKET point(P) geocoll_text2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xy( p_data, (gaiaGeomCollPtr)P); } geocoll_text(G) ::= VANUATU_OPEN_BRACKET linestring(L) geocoll_text2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xy( p_data, (gaiaGeomCollPtr)L); } geocoll_text(G) ::= VANUATU_OPEN_BRACKET polygon(P) geocoll_text2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xy( p_data, (gaiaGeomCollPtr)P); } geocoll_text(G) ::= VANUATU_OPEN_BRACKET multipoint(P) geocoll_text2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xy( p_data, (gaiaGeomCollPtr)P); } geocoll_text(G) ::= VANUATU_OPEN_BRACKET multilinestring(L) geocoll_text2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xy( p_data, (gaiaGeomCollPtr)L); } geocoll_text(G) ::= VANUATU_OPEN_BRACKET multipolygon(P) geocoll_text2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xy( p_data, (gaiaGeomCollPtr)P); } geocoll_text(G) ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION geocoll_text(C) geocoll_text2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xy( p_data, (gaiaGeomCollPtr)C); } // Extra points, linestrings, or polygons geocoll_text2(X) ::= . { X = NULL; } geocoll_text2(X) ::= VANUATU_COMMA point(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_text2(X) ::= VANUATU_COMMA linestring(L) geocoll_text2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_text2(X) ::= VANUATU_COMMA polygon(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_text2(X) ::= VANUATU_COMMA multipoint(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_text2(X) ::= VANUATU_COMMA multilinestring(L) geocoll_text2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_text2(X) ::= VANUATU_COMMA multipolygon(P) geocoll_text2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_text2(X) ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION geocoll_text(C) geocoll_text2(Y). { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)Y; X = C; } geocoll_textm(G) ::= VANUATU_OPEN_BRACKET pointm(P) geocoll_textm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xym( p_data, (gaiaGeomCollPtr)P); } geocoll_textm(G) ::= VANUATU_OPEN_BRACKET linestringm(L) geocoll_textm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xym( p_data, (gaiaGeomCollPtr)L); } geocoll_textm(G) ::= VANUATU_OPEN_BRACKET polygonm(P) geocoll_textm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xym( p_data, (gaiaGeomCollPtr)P); } geocoll_textm(G) ::= VANUATU_OPEN_BRACKET multipointm(P) geocoll_textm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xym( p_data, (gaiaGeomCollPtr)P); } geocoll_textm(G) ::= VANUATU_OPEN_BRACKET multilinestringm(L) geocoll_textm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xym( p_data, (gaiaGeomCollPtr)L); } geocoll_textm(G) ::= VANUATU_OPEN_BRACKET multipolygonm(P) geocoll_textm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xym( p_data, (gaiaGeomCollPtr)P); } geocoll_textm(G) ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_M geocoll_textm(C) geocoll_textm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xym( p_data, (gaiaGeomCollPtr)C); } geocoll_textm2(X) ::= . { X = NULL; } geocoll_textm2(X) ::= VANUATU_COMMA pointm(P) geocoll_textm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textm2(X) ::= VANUATU_COMMA linestringm(L) geocoll_textm2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textm2(X) ::= VANUATU_COMMA polygonm(P) geocoll_textm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textm2(X) ::= VANUATU_COMMA multipointm(P) geocoll_textm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textm2(X) ::= VANUATU_COMMA multilinestringm(L) geocoll_textm2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textm2(X) ::= VANUATU_COMMA multipolygonm(P) geocoll_textm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textm2(X) ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_M geocoll_textm(C) geocoll_textm2(Y). { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)Y; X = C; } geocoll_textz(G) ::= VANUATU_OPEN_BRACKET pointz(P) geocoll_textz2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyz( p_data, (gaiaGeomCollPtr)P); } geocoll_textz(G) ::= VANUATU_OPEN_BRACKET linestringz(L) geocoll_textz2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyz( p_data, (gaiaGeomCollPtr)L); } geocoll_textz(G) ::= VANUATU_OPEN_BRACKET polygonz(P) geocoll_textz2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyz( p_data, (gaiaGeomCollPtr)P); } geocoll_textz(G) ::= VANUATU_OPEN_BRACKET multipointz(P) geocoll_textz2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyz( p_data, (gaiaGeomCollPtr)P); } geocoll_textz(G) ::= VANUATU_OPEN_BRACKET multilinestringz(L) geocoll_textz2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyz( p_data, (gaiaGeomCollPtr)L); } geocoll_textz(G) ::= VANUATU_OPEN_BRACKET multipolygonz(P) geocoll_textz2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyz( p_data, (gaiaGeomCollPtr)P); } geocoll_textz(G) ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz(C) geocoll_textz2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyz( p_data, (gaiaGeomCollPtr)C); } geocoll_textz2(X) ::= . { X = NULL; } geocoll_textz2(X) ::= VANUATU_COMMA pointz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz2(X) ::= VANUATU_COMMA linestringz(L) geocoll_textz2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textz2(X) ::= VANUATU_COMMA polygonz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz2(X) ::= VANUATU_COMMA multipointz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz2(X) ::= VANUATU_COMMA multilinestringz(L) geocoll_textz2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textz2(X) ::= VANUATU_COMMA multipolygonz(P) geocoll_textz2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textz2(X) ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz(C) geocoll_textz2(Y). { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)Y; X = C; } geocoll_textzm(G) ::= VANUATU_OPEN_BRACKET pointzm(P) geocoll_textzm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyzm( p_data, (gaiaGeomCollPtr)P); } geocoll_textzm(G) ::= VANUATU_OPEN_BRACKET linestringzm(L) geocoll_textzm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyzm( p_data, (gaiaGeomCollPtr)L); } geocoll_textzm(G) ::= VANUATU_OPEN_BRACKET polygonzm(P) geocoll_textzm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyzm( p_data, (gaiaGeomCollPtr)P); } geocoll_textzm(G) ::= VANUATU_OPEN_BRACKET multipointzm(P) geocoll_textzm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyzm( p_data, (gaiaGeomCollPtr)P); } geocoll_textzm(G) ::= VANUATU_OPEN_BRACKET multilinestringzm(L) geocoll_textzm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyzm( p_data, (gaiaGeomCollPtr)L); } geocoll_textzm(G) ::= VANUATU_OPEN_BRACKET multipolygonzm(P) geocoll_textzm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyzm( p_data, (gaiaGeomCollPtr)P); } geocoll_textzm(G) ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm(C) geocoll_textzm2(X) VANUATU_CLOSE_BRACKET. { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)X; G = (void *) vanuatu_geomColl_xyzm( p_data, (gaiaGeomCollPtr)C); } geocoll_textzm2(X) ::= . { X = NULL; } geocoll_textzm2(X) ::= VANUATU_COMMA pointzm(P) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textzm2(X) ::= VANUATU_COMMA linestringzm(L) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textzm2(X) ::= VANUATU_COMMA polygonzm(P) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textzm2(X) ::= VANUATU_COMMA multipointzm(P) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textzm2(X) ::= VANUATU_COMMA multilinestringzm(L) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)L)->Next = (gaiaGeomCollPtr)Y; X = L; } geocoll_textzm2(X) ::= VANUATU_COMMA multipolygonzm(P) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)P)->Next = (gaiaGeomCollPtr)Y; X = P; } geocoll_textzm2(X) ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm(C) geocoll_textzm2(Y). { ((gaiaGeomCollPtr)C)->Next = (gaiaGeomCollPtr)Y; X = C; } /****************************************************************************** ** This is the end of the code that was created by Team Vanuatu ** of The University of Toronto. Authors: Ruppi Rana ruppi.rana@gmail.com Dev Tanna dev.tanna@gmail.com Elias Adum elias.adum@gmail.com Benton Hui benton.hui@gmail.com Abhayan Sundararajan abhayan@gmail.com Chee-Lun Michael Stephen Cho cheelun.cho@gmail.com Nikola Banovic nikola.banovic@gmail.com Yong Jian yong.jian@utoronto.ca Supervisor: Greg Wilson gvwilson@cs.toronto.ca ------------------------------------------------------------------------------- */ libspatialite-4.3.0a/src/gaiageo/lemon/Makefile.am0000664000175000017500000000013112544707704016766 00000000000000 SUBDIRS = lemon_src EXTRA_DIST = Ewkt.y geoJSON.y Gml.y Kml.y vanuatuWkt.y ReadMe.txt libspatialite-4.3.0a/src/gaiageo/lemon/ReadMe.txt0000664000175000017500000000735312544707704016645 00000000000000What is the LEMON parser ? ========================== Please see: http://www.hwaci.com/sw/lemon/ in a very few words: the LEMON parser is internally used by the SQLite's development team, so using it for SpatiaLite as well seems to be fully appropriate. How to get the LEMON parser executable: ======================================= you can get the latest LEMON sources consulting the above URL: anyway, for the sake of simplicity, you can directly found a copy of LEMON sources into the "lemon_src" directory. in order to get the LEMON executable you have to build it by yourself: that's not at all difficult, simply type: cd lemon_src gcc lemon.c -o lemon The Vanuatu WKT parser: ======================= 1) in order to make any change to the WKT parser you have to edit first the definitions file vanuatuWkt.y 2) then run: lemon_src/lemon -l vanuatuWkt.y 3) during the above step the following files will be generated: vanuatuWkt.c [the C code implementing the parser] vanuatuWkt.h [C header file] vanuatuWkt.out [check file - useful for debugging] 3.1] IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2] and finally you must copy both generated files into the parent dir: cp vanuatuWkt.h .. cp vanuatuWkt.c .. The EWKT parser: ================ 1) in order to make any change to the EWKT parser you have to edit first the definitions file Ewkt.y 2) then run: lemon_src/lemon -l Ewkt.y 3) during the above step the following files will be generated: Ewkt.c [the C code implementing the parser] Ewkt.h [C header file] Ewkt.out [check file - useful for debugging] 3.1] IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2] and finally you must copy both generated files into the parent dir: cp Ewkt.h .. cp Ewkt.c .. The GeoJSON parser: ================ 1) in order to make any change to the GeoJSON parser you have to edit first the definitions file geoJSON.y 2) then run: lemon_src/lemon -l geoJSON.y 3) during the above step the following files will be generated: geoJSON.c [the C code implementing the parser] geoJSON.h [C header file] geoJSON.out [check file - useful for debugging] 3.1] IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2] and finally you must copy both generated files into the parent dir: cp geoJSON.h .. cp geoJSON.c .. The KML parser: ================ 1) in order to make any change to the KML parser you have to edit first the definitions file Kml.y 2) then run: lemon_src/lemon -l Kml.y 3) during the above step the following files will be generated: Kml.c [the C code implementing the parser] Kml.h [C header file] Kml.out [check file - useful for debugging] 3.1] IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2] and finally you must copy both generated files into the -/lemon/include dir: cp Kml.h .. cp Kml.c .. The GML parser: ================ 1) in order to make any change to the GML parser you have to edit first the definitions file Gml.y 2) then run: lemon_src/lemon -l Gml.y 3) during the above step the following files will be generated: Gml.c [the C code implementing the parser] Gml.h [C header file] Gml.out [check file - useful for debugging] 3.1] IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2] and finally you must copy both generated files into the -/lemon/include dir: cp Gml.h .. cp Gml.c .. libspatialite-4.3.0a/src/gaiageo/gg_geoJSON.c0000664000175000017500000012145212544707704015717 00000000000000/* gg_geoJSON.c -- GeoJSON parser/lexer version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011-2015 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #define GEOJSON_DYN_NONE 0 #define GEOJSON_DYN_POINT 1 #define GEOJSON_DYN_LINESTRING 2 #define GEOJSON_DYN_POLYGON 3 #define GEOJSON_DYN_RING 4 #define GEOJSON_DYN_GEOMETRY 5 #define GEOJSON_DYN_BLOCK 1024 /* ** CAVEAT: we must redefine any Lemon/Flex own macro */ #define YYMINORTYPE GEO_JSON_MINORTYPE #define YY_CHAR GEO_JSON_YY_CHAR #define input geoJSON_input #define ParseAlloc geoJSONParseAlloc #define ParseFree geoJSONParseFree #define ParseStackPeak geoJSONParseStackPeak #define Parse geoJSONParse #define yyStackEntry geoJSON_yyStackEntry #define yyzerominor geoJSON_yyzerominor #define yy_accept geoJSON_yy_accept #define yy_action geoJSON_yy_action #define yy_base geoJSON_yy_base #define yy_buffer_stack geoJSON_yy_buffer_stack #define yy_buffer_stack_max geoJSON_yy_buffer_stack_max #define yy_buffer_stack_top geoJSON_yy_buffer_stack_top #define yy_c_buf_p geoJSON_yy_c_buf_p #define yy_chk geoJSON_yy_chk #define yy_def geoJSON_yy_def #define yy_default geoJSON_yy_default #define yy_destructor geoJSON_yy_destructor #define yy_ec geoJSON_yy_ec #define yy_fatal_error geoJSON_yy_fatal_error #define yy_find_reduce_action geoJSON_yy_find_reduce_action #define yy_find_shift_action geoJSON_yy_find_shift_action #define yy_get_next_buffer geoJSON_yy_get_next_buffer #define yy_get_previous_state geoJSON_yy_get_previous_state #define yy_init geoJSON_yy_init #define yy_init_globals geoJSON_yy_init_globals #define yy_lookahead geoJSON_yy_lookahead #define yy_meta geoJSON_yy_meta #define yy_nxt geoJSON_yy_nxt #define yy_parse_failed geoJSON_yy_parse_failed #define yy_pop_parser_stack geoJSON_yy_pop_parser_stack #define yy_reduce geoJSON_yy_reduce #define yy_reduce_ofst geoJSON_yy_reduce_ofst #define yy_shift geoJSON_yy_shift #define yy_shift_ofst geoJSON_yy_shift_ofst #define yy_start geoJSON_yy_start #define yy_state_type geoJSON_yy_state_type #define yy_syntax_error geoJSON_yy_syntax_error #define yy_trans_info geoJSON_yy_trans_info #define yy_try_NUL_trans geoJSON_yy_try_NUL_trans #define yyParser geoJSON_yyParser #define yyStackEntry geoJSON_yyStackEntry #define yyStackOverflow geoJSON_yyStackOverflow #define yyRuleInfo geoJSON_yyRuleInfo #define yyunput geoJSON_yyunput #define yyzerominor geoJSON_yyzerominor #define yyTraceFILE geoJSON_yyTraceFILE #define yyTracePrompt geoJSON_yyTracePrompt #define yyTokenName geoJSON_yyTokenName #define yyRuleName geoJSON_yyRuleName #define ParseTrace geoJSON_ParseTrace #define yylex geoJSON_yylex #define YY_DECL int yylex (yyscan_t yyscanner) /* including LEMON generated header */ #include "geoJSON.h" typedef union { double dval; int ival; struct symtab *symp; } geoJSON_yystype; #define YYSTYPE geoJSON_yystype struct geoJson_dyn_block { /* a struct taking trace of dynamic allocations */ int type[GEOJSON_DYN_BLOCK]; void *ptr[GEOJSON_DYN_BLOCK]; int index; struct geoJson_dyn_block *next; }; struct geoJson_data { /* a struct used to make the lexer-parser reentrant and thread-safe */ int geoJson_parse_error; int geoJson_line; int geoJson_col; struct geoJson_dyn_block *geoJson_first_dyn_block; struct geoJson_dyn_block *geoJson_last_dyn_block; gaiaGeomCollPtr result; YYSTYPE GeoJsonLval; }; static struct geoJson_dyn_block * geoJsonCreateDynBlock (void) { /* allocating a new block to trace dynamic allocations */ int i; struct geoJson_dyn_block *p = malloc (sizeof (struct geoJson_dyn_block)); for (i = 0; i < GEOJSON_DYN_BLOCK; i++) { /* initializing map entries */ p->type[i] = GEOJSON_DYN_NONE; p->ptr[i] = NULL; } p->index = 0; p->next = NULL; return p; } static void geoJsonMapDynAlloc (struct geoJson_data *p_data, int type, void *ptr) { /* appending a dynamic allocation into the map */ struct geoJson_dyn_block *p; if (p_data->geoJson_first_dyn_block == NULL) { /* inserting the first block of the map */ p = geoJsonCreateDynBlock (); p_data->geoJson_first_dyn_block = p; p_data->geoJson_last_dyn_block = p; } if (p_data->geoJson_last_dyn_block->index >= GEOJSON_DYN_BLOCK) { /* adding a further block to the map */ p = geoJsonCreateDynBlock (); p_data->geoJson_last_dyn_block->next = p; p_data->geoJson_last_dyn_block = p; } p_data->geoJson_last_dyn_block->type[p_data->geoJson_last_dyn_block-> index] = type; p_data->geoJson_last_dyn_block->ptr[p_data->geoJson_last_dyn_block->index] = ptr; p_data->geoJson_last_dyn_block->index++; } static void geoJsonMapDynClean (struct geoJson_data *p_data, void *ptr) { /* deleting a dynamic allocation from the map */ int i; struct geoJson_dyn_block *p = p_data->geoJson_first_dyn_block; while (p) { for (i = 0; i < GEOJSON_DYN_BLOCK; i++) { switch (p->type[i]) { case GEOJSON_DYN_POINT: case GEOJSON_DYN_LINESTRING: case GEOJSON_DYN_POLYGON: case GEOJSON_DYN_RING: case GEOJSON_DYN_GEOMETRY: if (p->ptr[i] == ptr) { p->type[i] = GEOJSON_DYN_NONE; return; } break; }; } p = p->next; } } static void geoJsonCleanMapDynAlloc (struct geoJson_data *p_data, int clean_all) { /* cleaning the dynamic allocations map */ int i; struct geoJson_dyn_block *pn; struct geoJson_dyn_block *p = p_data->geoJson_first_dyn_block; while (p) { if (clean_all) { for (i = 0; i < GEOJSON_DYN_BLOCK; i++) { /* deleting Geometry objects */ switch (p->type[i]) { case GEOJSON_DYN_POINT: gaiaFreePoint ((gaiaPointPtr) (p->ptr[i])); break; case GEOJSON_DYN_LINESTRING: gaiaFreeLinestring ((gaiaLinestringPtr) (p->ptr[i])); break; case GEOJSON_DYN_POLYGON: gaiaFreePolygon ((gaiaPolygonPtr) (p->ptr[i])); break; case GEOJSON_DYN_RING: gaiaFreeRing ((gaiaRingPtr) (p->ptr[i])); break; case GEOJSON_DYN_GEOMETRY: gaiaFreeGeomColl ((gaiaGeomCollPtr) (p->ptr[i])); break; }; } } /* deleting the map block */ pn = p->next; free (p); p = pn; } } static int geoJsonCheckValidity (gaiaGeomCollPtr geom) { /* checks if this one is a degenerated geometry */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; int ib; int entities = 0; pt = geom->FirstPoint; while (pt) { /* checking points */ entities++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { /* checking linestrings */ if (ln->Points < 2) return 0; entities++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { /* checking polygons */ rng = pg->Exterior; if (rng->Points < 4) return 0; for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; if (rng->Points < 4) return 0; } entities++; pg = pg->Next; } if (!entities) return 0; return 1; } static gaiaGeomCollPtr geoJSON_setSrid (gaiaGeomCollPtr geom, int *srid) { /* setting up the SRID */ if (!geom) return NULL; geom->Srid = *srid; return geom; } static gaiaGeomCollPtr gaiaGeoJsonGeometryFromPoint (struct geoJson_data *p_data, gaiaPointPtr point, int srid) { /* builds a GEOMETRY containing a POINT */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomColl (); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINT; geom->Srid = srid; gaiaAddPointToGeomColl (geom, point->X, point->Y); geoJsonMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaGeoJsonGeometryFromPointZ (struct geoJson_data *p_data, gaiaPointPtr point, int srid) { /* builds a GEOMETRY containing a POINTZ */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomCollXYZ (); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINTZ; geom->Srid = srid; gaiaAddPointToGeomCollXYZ (geom, point->X, point->Y, point->Z); geoJsonMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaGeoJsonGeometryFromLinestring (struct geoJson_data *p_data, gaiaLinestringPtr line, int srid) { /* builds a GEOMETRY containing a LINESTRING */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; geom = gaiaAllocGeomColl (); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; geom->Srid = srid; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPoint (line->Coords, iv, &x, &y); gaiaSetPoint (line2->Coords, iv, x, y); } geoJsonMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } static gaiaGeomCollPtr gaiaGeoJsonGeometryFromLinestringZ (struct geoJson_data *p_data, gaiaLinestringPtr line, int srid) { /* builds a GEOMETRY containing a LINESTRINGZ */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; double z; geom = gaiaAllocGeomCollXYZ (); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; geom->Srid = srid; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (line2->Coords, iv, x, y, z); } geoJsonMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } static gaiaPointPtr geoJSON_point_xy (struct geoJson_data *p_data, double *x, double *y) { gaiaPointPtr pt = gaiaAllocPoint (*x, *y); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_POINT, pt); return pt; } /* * Creates a 3D (xyz) point in SpatiaLite * x, y, and z are pointers to doubles which represent the x, y, and z coordinates of the point to be created. * Returns a gaiaPointPtr representing the created point. * * Creates a 3D (xyz) point. This is a parser helper function which is called when 3D coordinates are encountered. * Parameters x, y, and z are pointers to doubles which represent the x, y, and z coordinates of the point to be created. * Returns a gaiaPointPtr pointing to the 3D created point. */ static gaiaPointPtr geoJSON_point_xyz (struct geoJson_data *p_data, double *x, double *y, double *z) { gaiaPointPtr pt = gaiaAllocPointXYZ (*x, *y, *z); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_POINT, pt); return pt; } /* * Builds a geometry collection from a point. The geometry collection should contain only one element ? the point. * The correct geometry type must be *decided based on the point type. The parser should call this function when the * ?POINT? WKT expression is encountered. * Parameter point is a pointer to a 2D, 3D, 2D with an m value, or 4D with an m value point. * Returns a geometry collection containing the point. The geometry must have FirstPoint and LastPoint pointing to the * same place as point. *DimensionModel must be the same as the model of the point and DimensionType must be GAIA_TYPE_POINT. */ static gaiaGeomCollPtr geoJSON_buildGeomFromPoint (struct geoJson_data *p_data, gaiaPointPtr point) { switch (point->DimensionModel) { case GAIA_XY: return gaiaGeoJsonGeometryFromPoint (p_data, point, -1); case GAIA_XY_Z: return gaiaGeoJsonGeometryFromPointZ (p_data, point, -1); } return NULL; } static gaiaGeomCollPtr geoJSON_buildGeomFromPointSrid (struct geoJson_data *p_data, gaiaPointPtr point, int *srid) { switch (point->DimensionModel) { case GAIA_XY: return gaiaGeoJsonGeometryFromPoint (p_data, point, *srid); case GAIA_XY_Z: return gaiaGeoJsonGeometryFromPointZ (p_data, point, *srid); } return NULL; } /* * Creates a 2D (xy) linestring from a list of 2D points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 2D (xy) points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr geoJSON_linestring_xy (struct geoJson_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestring (points); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPoint (linestring->Coords, i, p->X, p->Y); p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Creates a 3D (xyz) linestring from a list of 3D points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 3D (xyz) points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr geoJSON_linestring_xyz (struct geoJson_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestringXYZ (points); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPointXYZ (linestring->Coords, i, p->X, p->Y, p->Z); p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Builds a geometry collection from a linestring. */ static gaiaGeomCollPtr geoJSON_buildGeomFromLinestring (struct geoJson_data *p_data, gaiaLinestringPtr line) { switch (line->DimensionModel) { case GAIA_XY: return gaiaGeoJsonGeometryFromLinestring (p_data, line, -1); case GAIA_XY_Z: return gaiaGeoJsonGeometryFromLinestringZ (p_data, line, -1); } return NULL; } static gaiaGeomCollPtr geoJSON_buildGeomFromLinestringSrid (struct geoJson_data *p_data, gaiaLinestringPtr line, int *srid) { switch (line->DimensionModel) { case GAIA_XY: return gaiaGeoJsonGeometryFromLinestring (p_data, line, *srid); case GAIA_XY_Z: return gaiaGeoJsonGeometryFromLinestringZ (p_data, line, *srid); } return NULL; } /* * Helper function that determines the number of points in the linked list. */ static int geoJSON_count_points (gaiaPointPtr first) { /* Counts the number of points in the ring. */ gaiaPointPtr p = first; int numpoints = 0; while (p != NULL) { numpoints++; p = p->Next; } return numpoints; } /* * Creates a 2D (xy) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 2D (xy) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr geoJSON_ring_xy (struct geoJson_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = geoJSON_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRing (numpoints); if (ring == NULL) return NULL; geoJsonMapDynAlloc (p_data, GEOJSON_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPoint (ring->Coords, index, p->X, p->Y); p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Creates a 3D (xyz) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 3D (xyz) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr geoJSON_ring_xyz (struct geoJson_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = geoJSON_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRingXYZ (numpoints); if (ring == NULL) return NULL; geoJsonMapDynAlloc (p_data, GEOJSON_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPointXYZ (ring->Coords, index, p->X, p->Y, p->Z); p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Helper function that will create any type of polygon (xy, xyz) in SpatiaLite. * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are of the same type. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr geoJSON_polygon_any_type (struct geoJson_data *p_data, gaiaRingPtr first) { gaiaRingPtr p; gaiaRingPtr p_n; gaiaPolygonPtr polygon; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a polygon structure with the exterior ring. */ polygon = gaiaCreatePolygon (first); if (polygon == NULL) return NULL; geoJsonMapDynAlloc (p_data, GEOJSON_DYN_POLYGON, polygon); /* Adds all interior rings into the polygon structure. */ p = first; while (p != NULL) { p_n = p->Next; geoJsonMapDynClean (p_data, p); if (p == first) gaiaFreeRing (p); else gaiaAddRingToPolyg (polygon, p); p = p_n; } return polygon; } /* * Creates a 2D (xy) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 2D (xy) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr geoJSON_polygon_xy (struct geoJson_data *p_data, gaiaRingPtr first) { return geoJSON_polygon_any_type (p_data, first); } /* * Creates a 3D (xyz) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 3D (xyz) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr geoJSON_polygon_xyz (struct geoJson_data *p_data, gaiaRingPtr first) { return geoJSON_polygon_any_type (p_data, first); } /* * Builds a geometry collection from a polygon. * NOTE: This function may already be implemented in the SpatiaLite code base. If it is, make sure that we * can use it (ie. it doesn't use any other variables or anything else set by Sandro's parser). If you find * that we can use an existing function then ignore this one. */ static gaiaGeomCollPtr geoJSON_buildGeomFromPolygon (struct geoJson_data *p_data, gaiaPolygonPtr polygon) { gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (polygon == NULL) { return NULL; } /* Creates and allocates a geometry collection containing a multipoint. */ switch (polygon->DimensionModel) { case GAIA_XY: geom = gaiaAllocGeomColl (); break; case GAIA_XY_Z: geom = gaiaAllocGeomCollXYZ (); break; } if (geom == NULL) { return NULL; } geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POLYGON; /* Stores the location of the first and last polygons in the linked list. */ geom->FirstPolygon = polygon; while (polygon != NULL) { geoJsonMapDynClean (p_data, polygon); geom->LastPolygon = polygon; polygon = polygon->Next; } return geom; } static gaiaGeomCollPtr geoJSON_buildGeomFromPolygonSrid (struct geoJson_data *p_data, gaiaPolygonPtr polygon, int *srid) { gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (polygon == NULL) { return NULL; } /* Creates and allocates a geometry collection containing a multipoint. */ switch (polygon->DimensionModel) { case GAIA_XY: geom = gaiaAllocGeomColl (); break; case GAIA_XY_Z: geom = gaiaAllocGeomCollXYZ (); break; } if (geom == NULL) { return NULL; } geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POLYGON; geom->Srid = *srid; /* Stores the location of the first and last polygons in the linked list. */ geom->FirstPolygon = polygon; while (polygon != NULL) { geoJsonMapDynClean (p_data, polygon); geom->LastPolygon = polygon; polygon = polygon->Next; } return geom; } /* * Creates a 2D (xy) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points. * All of the points given to the function are 2D (xy) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr geoJSON_multipoint_xy (struct geoJson_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 2D (xy) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomColl (geom, p->X, p->Y); p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a 3D (xyz) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points. * All of the points given to the function are 3D (xyz) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr geoJSON_multipoint_xyz (struct geoJson_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomCollXYZ (); if (geom == NULL) return NULL; geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 3D (xyz) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomCollXYZ (geom, p->X, p->Y, p->Z); p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 2D (xy) linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 2D (xy) linestrings. There must be at least 1 linestring in the list. * Returns a pointer to the created geometry collection of 2D linestrings. The geometry must have FirstLinestring pointing to the * first linestring in the list pointed by first and LastLinestring pointing to the last element of the same list. DimensionModel * must be GAIA_XY and DimensionType must be *GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr geoJSON_multilinestring_xy (struct geoJson_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomColl (); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Returns a geometry collection containing the created multilinestring object (?). * Creates a geometry collection containing 3D (xyz) linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 3D (xyz) linestrings. There must be at least 1 linestring in the list. * Returns a pointer to the created geometry collection of 3D linestrings. The geometry must have FirstLinestring pointing to the * first linestring in the *list pointed by first and LastLinestring pointing to the last element of the same list. DimensionModel * must be GAIA_XYZ and DimensionType must be *GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr geoJSON_multilinestring_xyz (struct geoJson_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomCollXYZ (); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY_Z; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Creates a geometry collection containing 2D (xy) polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should * be added to the collection. All of the polygons in the list must be 2D (xy) polygons. There must be * at least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 2D polygons. The geometry must have * FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon pointing * to the last element of the same list. DimensionModel must be GAIA_XY and DimensionType must * be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr geoJSON_multipolygon_xy (struct geoJson_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomColl (); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 3D (xyz) polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should be * added to the collection. All of the polygons in the list must be 3D (xyz) polygons. There must be at * least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 3D polygons. The geometry must have * FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon pointing to * the last element of the same list. DimensionModel must be GAIA_XYZ and DimensionType must * be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr geoJSON_multipolygon_xyz (struct geoJson_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomCollXYZ (); geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; geoJsonMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } static void geoJSON_geomColl_common (struct geoJson_data *p_data, gaiaGeomCollPtr org, gaiaGeomCollPtr dst) { /* / helper function: xfers entities between the Origin and Destination / Sandro Furieri: 2010 October 12 */ gaiaGeomCollPtr p = org; gaiaGeomCollPtr p_n; gaiaPointPtr pt; gaiaPointPtr pt_n; gaiaLinestringPtr ln; gaiaLinestringPtr ln_n; gaiaPolygonPtr pg; gaiaPolygonPtr pg_n; while (p) { pt = p->FirstPoint; while (pt) { pt_n = pt->Next; pt->Next = NULL; if (dst->FirstPoint == NULL) dst->FirstPoint = pt; if (dst->LastPoint != NULL) dst->LastPoint->Next = pt; dst->LastPoint = pt; pt = pt_n; } ln = p->FirstLinestring; while (ln) { ln_n = ln->Next; ln->Next = NULL; if (dst->FirstLinestring == NULL) dst->FirstLinestring = ln; if (dst->LastLinestring != NULL) dst->LastLinestring->Next = ln; dst->LastLinestring = ln; ln = ln_n; } pg = p->FirstPolygon; while (pg) { pg_n = pg->Next; pg->Next = NULL; if (dst->FirstPolygon == NULL) dst->FirstPolygon = pg; if (dst->LastPolygon != NULL) dst->LastPolygon->Next = pg; dst->LastPolygon = pg; pg = pg_n; } p_n = p->Next; p->FirstPoint = NULL; p->LastPoint = NULL; p->FirstLinestring = NULL; p->LastLinestring = NULL; p->FirstPolygon = NULL; p->LastPolygon = NULL; geoJsonMapDynClean (p_data, p); gaiaFreeGeomColl (p); p = p_n; } } /* Creates a 2D (xy) geometry collection in SpatiaLite * * first is the first geometry collection in a linked list of geometry collections. * Each geometry collection represents a single type of object (eg. one could be a POINT, * another could be a LINESTRING, another could be a MULTILINESTRING, etc.). * * The type of object represented by any geometry collection is stored in the declaredType * field of its struct. For example, if first->declaredType = GAIA_POINT, then first represents a point. * If first->declaredType = GAIA_MULTIPOINT, then first represents a multipoint. * * NOTE: geometry collections cannot contain other geometry collections (have to confirm this * with Sandro). * * The goal of this function is to take the information from all of the structs in the linked list and * return one geomColl struct containing all of that information. * * The integers used for 'declaredType' are defined in gaiageo.h. In this function, the only values * contained in 'declaredType' that will be encountered will be: * * GAIA_POINT, GAIA_LINESTRING, GAIA_POLYGON, * GAIA_MULTIPOINT, GAIA_MULTILINESTRING, GAIA_MULTIPOLYGON */ static gaiaGeomCollPtr geoJSON_geomColl_xy (struct geoJson_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY; geoJSON_geomColl_common (p_data, first, geom); return geom; } /* * See geomColl_xy for description. * * The only difference between this function and geomColl_xy is that the 'declaredType' field of the structs * in the linked list for this function will only contain the following types: * * GAIA_POINTZ, GAIA_LINESTRINGZ, GAIA_POLYGONZ, * GAIA_MULTIPOINTZ, GAIA_MULTILINESTRINGZ, GAIA_MULTIPOLYGONZ */ static gaiaGeomCollPtr geoJSON_geomColl_xyz (struct geoJson_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; geoJsonMapDynAlloc (p_data, GEOJSON_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY_Z; geoJSON_geomColl_common (p_data, first, geom); return geom; } /* including LEMON generated code */ #include "geoJSON.c" /* ** CAVEAT: there is an incompatibility between LEMON and FLEX ** this macro resolves the issue */ #undef yy_accept #define yy_accept yy_geo_json_flex_accept /* including FLEX generated code */ #include "lex.GeoJson.c" /* ** This is a linked-list struct to store all the values for each token. ** All tokens will have a value of 0, except tokens denoted as NUM. ** NUM tokens are geometry coordinates and will contain the floating ** point number. */ typedef struct geoJsonFlexTokenStruct { double value; struct geoJsonFlexTokenStruct *Next; } geoJsonFlexToken; /* ** Function to clean up the linked-list of token values. */ static int geoJSON_cleanup (geoJsonFlexToken * token) { geoJsonFlexToken *ptok; geoJsonFlexToken *ptok_n; if (token == NULL) return 0; ptok = token; while (ptok) { ptok_n = ptok->Next; free (ptok); ptok = ptok_n; } return 0; } gaiaGeomCollPtr gaiaParseGeoJSON (const unsigned char *dirty_buffer) { void *pParser = ParseAlloc (malloc); /* Linked-list of token values */ geoJsonFlexToken *tokens = malloc (sizeof (geoJsonFlexToken)); /* Pointer to the head of the list */ geoJsonFlexToken *head = tokens; int yv; yyscan_t scanner; struct geoJson_data str_data; /* initializing the helper structs */ str_data.geoJson_line = 1; str_data.geoJson_col = 1; str_data.geoJson_parse_error = 0; str_data.geoJson_first_dyn_block = NULL; str_data.geoJson_last_dyn_block = NULL; str_data.result = NULL; /* initializing the scanner state */ GeoJsonlex_init_extra (&str_data, &scanner); tokens->Next = NULL; GeoJson_scan_string ((char *) dirty_buffer, scanner); /* / Keep tokenizing until we reach the end / yylex() will return the next matching Token for us. */ while ((yv = yylex (scanner)) != 0) { if (yv == -1) { str_data.geoJson_parse_error = 1; break; } tokens->Next = malloc (sizeof (geoJsonFlexToken)); tokens->Next->Next = NULL; tokens->Next->value = str_data.GeoJsonLval.dval; /* Pass the token to the wkt parser created from lemon */ Parse (pParser, yv, &(tokens->Next->value), &str_data); tokens = tokens->Next; } /* This denotes the end of a line as well as the end of the parser */ Parse (pParser, GEOJSON_NEWLINE, 0, &str_data); ParseFree (pParser, free); GeoJsonlex_destroy (scanner); /* Assigning the token as the end to avoid seg faults while cleaning */ tokens->Next = NULL; geoJSON_cleanup (head); if (str_data.geoJson_parse_error) { if (str_data.result) { /* if a Geometry-result has been produced, the stack is already cleaned */ gaiaFreeGeomColl (str_data.result); geoJsonCleanMapDynAlloc (&str_data, 0); } else { /* otherwise we are required to clean the stack */ geoJsonCleanMapDynAlloc (&str_data, 1); } return NULL; } geoJsonCleanMapDynAlloc (&str_data, 0); if (str_data.result == NULL) return NULL; if (!geoJsonCheckValidity (str_data.result)) { gaiaFreeGeomColl (str_data.result); return NULL; } gaiaMbrGeometry (str_data.result); return str_data.result; } /* ** CAVEAT: we must now undefine any Lemon/Flex own macro */ #undef YYNOCODE #undef YYNSTATE #undef YYNRULE #undef YY_SHIFT_MAX #undef YY_SHIFT_USE_DFLT #undef YY_REDUCE_USE_DFLT #undef YY_REDUCE_MAX #undef YY_FLUSH_BUFFER #undef YY_DO_BEFORE_ACTION #undef YY_NUM_RULES #undef YY_END_OF_BUFFER #undef YY_END_FILE #undef YYACTIONTYPE #undef YY_SZ_ACTTAB #undef YY_NEW_FILE #undef BEGIN #undef YY_START #undef YY_CURRENT_BUFFER #undef YY_CURRENT_BUFFER_LVALUE #undef YY_STATE_BUF_SIZE #undef YY_DECL #undef YY_FATAL_ERROR #undef YYMINORTYPE #undef YY_CHAR #undef YYSTYPE #undef input #undef ParseAlloc #undef ParseFree #undef ParseStackPeak #undef Parse #undef yyalloc #undef yyfree #undef yyin #undef yyleng #undef yyless #undef yylex #undef yylineno #undef yyout #undef yyrealloc #undef yyrestart #undef yyStackEntry #undef yytext #undef yywrap #undef yyzerominor #undef yy_accept #undef yy_action #undef yy_base #undef yy_buffer_stack #undef yy_buffer_stack_max #undef yy_buffer_stack_top #undef yy_c_buf_p #undef yy_chk #undef yy_create_buffer #undef yy_def #undef yy_default #undef yy_delete_buffer #undef yy_destructor #undef yy_ec #undef yy_fatal_error #undef yy_find_reduce_action #undef yy_find_shift_action #undef yy_flex_debug #undef yy_flush_buffer #undef yy_get_next_buffer #undef yy_get_previous_state #undef yy_init #undef yy_init_buffer #undef yy_init_globals #undef yy_load_buffer #undef yy_load_buffer_state #undef yy_lookahead #undef yy_meta #undef yy_new_buffer #undef yy_nxt #undef yy_parse_failed #undef yy_pop_parser_stack #undef yy_reduce #undef yy_reduce_ofst #undef yy_set_bol #undef yy_set_interactive #undef yy_shift #undef yy_shift_ofst #undef yy_start #undef yy_state_type #undef yy_switch_to_buffer #undef yy_syntax_error #undef yy_trans_info #undef yy_try_NUL_trans #undef yyParser #undef yyStackEntry #undef yyStackOverflow #undef yyRuleInfo #undef yytext_ptr #undef yyunput #undef yyzerominor #undef ParseARG_SDECL #undef ParseARG_PDECL #undef ParseARG_FETCH #undef ParseARG_STORE #undef REJECT #undef yymore #undef YY_MORE_ADJ #undef YY_RESTORE_YY_MORE_OFFSET #undef YY_LESS_LINENO #undef yyTracePrompt #undef yyTraceFILE #undef yyTokenName #undef yyRuleName #undef ParseTrace #undef yylex #undef YY_DECL libspatialite-4.3.0a/src/gaiageo/flex/0000775000175000017500000000000012573314326014637 500000000000000libspatialite-4.3.0a/src/gaiageo/flex/Makefile.in0000664000175000017500000003017512573313636016635 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/gaiageo/flex ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = ewktLexer.l geoJsonLexer.l gmlLexer.l \ kmlLexer.l vanuatuLexer.l ReadMe.txt all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gaiageo/flex/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/gaiageo/flex/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/src/gaiageo/flex/geoJsonLexer.l0000664000175000017500000001235212544707704017347 00000000000000/* geoJsonLexer.l -- GeoJSON parser - FLEX config version 2.4, 2011 May 16 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ %option prefix="GeoJson" %option reentrant %option extra-type="struct geoJson_data *" %option nounput %option noinput /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINTM, * Flex would match both POINT and POINTM, but since POINTM is the longer * of the two tokens, FLEX will match POINTM. */ %% -?[0-9]+|-?[0-9]+"."[0-9]*|"+"?[0-9]+|"+"?[0-9]+"."[0-9]* { GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = atof(yytext); return GEOJSON_NUM; } -?"\""EPSG:-?[0-9]+"\"" { GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); GeoJsonget_extra(yyscanner)->GeoJsonLval.ival = atoi(yytext+6); return GEOJSON_SHORT_SRID; } -?"\""urn:ogc:def:crs:EPSG:-?[0-9]+"\"" { GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); GeoJsonget_extra(yyscanner)->GeoJsonLval.ival = atoi(yytext+22); return GEOJSON_LONG_SRID; } "," { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_COMMA; } ":" { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_COLON; } "{" { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_OPEN_BRACE; } "}" { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_CLOSE_BRACE; } "[" { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_OPEN_BRACKET; } "]" { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_CLOSE_BRACKET; } (?-i:"\"type\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_TYPE; } (?-i:"\"coordinates\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_COORDS; } (?-i:"\"geometries\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_GEOMS; } (?-i:"\"bbox\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_BBOX; } (?-i:"\"name\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_NAME; } (?-i:"\"properties\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_PROPS; } (?-i:"\"crs\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_CRS; } (?-i:"\"Point\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_POINT; } (?-i:"\"LineString\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_LINESTRING; } (?-i:"\"Polygon\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_POLYGON; } (?-i:"\"MultiPoint\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_MULTIPOINT; } (?-i:"\"MultiLineString\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_MULTILINESTRING; } (?-i:"\"MultiPolygon\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_MULTIPOLYGON; } (?-i:"\"GeometryCollection\"") { GeoJsonget_extra(yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_GEOMETRYCOLLECTION; } [ \t] { GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); } /* ignore but count white space */ \n { GeoJsonget_extra(yyscanner)->geoJson_col = 0; GeoJsonget_extra(yyscanner)->geoJson_line++; } . { GeoJsonget_extra(yyscanner)->geoJson_col += (int) strlen(yytext); return -1; } %% int yywrap(yyscan_t yyscanner ) { return 1; } libspatialite-4.3.0a/src/gaiageo/flex/gmlLexer.l0000664000175000017500000000674012544707704016526 00000000000000/* gmlLexer.l -- GML parser - FLEX config version 2.4, 2011 June 3 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ %option prefix="Gml" %option reentrant %option extra-type="struct gml_data *" %option noinput %option nounput /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINTM, * Flex would match both POINT and POINTM, but since POINTM is the longer * of the two tokens, FLEX will match POINTM. */ %% "/" { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); return GML_END; } "=" { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); return GML_EQ; } "<" { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); return GML_OPEN; } ">" { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); return GML_CLOSE; } [0-9,\.\+-]* { gml_saveString(&(Gmlget_extra(yyscanner)->GmlLval.pval), yytext); return GML_COORD; } \"[^<>\"]*\" { gml_saveString(&(Gmlget_extra(yyscanner)->GmlLval.pval), yytext); return GML_VALUE; } [a-zA-Z_][a-zA-Z_:0-9]* { gml_saveString(&(Gmlget_extra(yyscanner)->GmlLval.pval), yytext); return GML_KEYWORD; } [ \t] { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); Gmlget_extra(yyscanner)->gml_col += (int) strlen(yytext); } /* ignore but count white space */ \n { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); Gmlget_extra(yyscanner)->gml_col = 0; Gmlget_extra(yyscanner)->gml_line++; } . { gml_freeString(&(Gmlget_extra(yyscanner)->GmlLval.pval)); Gmlget_extra(yyscanner)->gml_col += (int) strlen(yytext); return -1; } %% int yywrap(yyscan_t yyscanner ) { return 1; } libspatialite-4.3.0a/src/gaiageo/flex/vanuatuLexer.l0000664000175000017500000001740312544707704017430 00000000000000/* vanuatuLexer.l -- Vanuatu WKT parser - FLEX config version 2.4, 2010 April 2 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): The Vanuatu Team - University of Toronto Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /****************************************************************************** ** The following code was created by Team Vanuatu of The University of Toronto. Authors: Ruppi Rana ruppi.rana@gmail.com Dev Tanna dev.tanna@gmail.com Elias Adum elias.adum@gmail.com Benton Hui benton.hui@gmail.com Abhayan Sundararajan abhayan@gmail.com Chee-Lun Michael Stephen Cho cheelun.cho@gmail.com Nikola Banovic nikola.banovic@gmail.com Yong Jian yong.jian@utoronto.ca Supervisor: Greg Wilson gvwilson@cs.toronto.ca ------------------------------------------------------------------------------- */ %option prefix="VanuatuWkt" %option reentrant %option extra-type="struct vanuatu_data *" %option nounput %option noinput /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINT ZM, * Flex would match both POINT Z and POINT ZM, but since POINT ZM is the longer * of the two tokens, FLEX will match POINT ZM. */ %% -?[0-9]+|-?[0-9]+"."[0-9]*|"+"?[0-9]+|"+"?[0-9]+"."[0-9]* { VanuatuWktget_extra(yyscanner)->vanuatu_col += (int) strlen(yytext); VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = atof(yytext); return VANUATU_NUM; } "," { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_COMMA; } "(" { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_OPEN_BRACKET; } ")" { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_CLOSE_BRACKET; } (?i:"point") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT; } (?i:"point"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT_Z; } (?i:"point"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT_M; } (?i:"point"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT_ZM; } (?i:"linestring") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING; } (?i:"linestring"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_Z; } (?i:"linestring"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_M; } (?i:"linestring"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_ZM; } (?i:"polygon") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON; } (?i:"polygon"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON_Z; } (?i:"polygon"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON_M; } (?i:"polygon"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON_ZM; } (?i:"multipoint") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT; } (?i:"multipoint"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_Z; } (?i:"multipoint"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_M; } (?i:"multipoint"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_ZM; } (?i:"multilinestring") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING; } (?i:"multilinestring"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_Z; } (?i:"multilinestring"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_M; } (?i:"multilinestring"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_ZM; } (?i:"multipolygon") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON; } (?i:"multipolygon"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_Z; } (?i:"multipolygon"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_M; } (?i:"multipolygon"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_ZM; } (?i:"geometrycollection") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION; } (?i:"geometrycollection"[ \t\n]*"z") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_Z; } (?i:"geometrycollection"[ \t\n]*"m") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_M; } (?i:"geometrycollection"[ \t\n]*"zm") { VanuatuWktget_extra(yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_ZM; } [ \t] { VanuatuWktget_extra(yyscanner)->vanuatu_col += (int) strlen(yytext); } /* ignore but count white space */ \n { VanuatuWktget_extra(yyscanner)->vanuatu_col = 0; VanuatuWktget_extra(yyscanner)->vanuatu_line++; } . { VanuatuWktget_extra(yyscanner)->vanuatu_col += (int) strlen(yytext); return -1; } %% int yywrap(yyscan_t yyscanner ) { return 1; } /****************************************************************************** ** This is the end of the code that was created by Team Vanuatu ** of The University of Toronto. Authors: Ruppi Rana ruppi.rana@gmail.com Dev Tanna dev.tanna@gmail.com Elias Adum elias.adum@gmail.com Benton Hui benton.hui@gmail.com Abhayan Sundararajan abhayan@gmail.com Chee-Lun Michael Stephen Cho cheelun.cho@gmail.com Nikola Banovic nikola.banovic@gmail.com Yong Jian yong.jian@utoronto.ca Supervisor: Greg Wilson gvwilson@cs.toronto.ca ------------------------------------------------------------------------------- */ libspatialite-4.3.0a/src/gaiageo/flex/ewktLexer.l0000664000175000017500000001063512544707704016717 00000000000000/* EwktLexer.l -- EWKT parser - FLEX config version 2.4, 2011 May 14 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ %option prefix="Ewkt" %option reentrant %option extra-type="struct ewkt_data *" %option nounput %option noinput /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINTM, * Flex would match both POINT and POINTM, but since POINTM is the longer * of the two tokens, FLEX will match POINTM. */ %% -?[0-9]+|-?[0-9]+"."[0-9]*|"+"?[0-9]+|"+"?[0-9]+"."[0-9]* { Ewktget_extra(yyscanner)->ewkt_col += (int) strlen(yytext); Ewktget_extra(yyscanner)->EwktLval.dval = atof(yytext); return EWKT_NUM; } "," { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_COMMA; } "(" { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_OPEN_BRACKET; } ")" { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_CLOSE_BRACKET; } (?i:"point") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_POINT; } (?i:"pointm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_POINT_M; } (?i:"linestring") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_LINESTRING; } (?i:"linestringm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_LINESTRING_M; } (?i:"polygon") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_POLYGON; } (?i:"polygonm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_POLYGON_M; } (?i:"multipoint") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOINT; } (?i:"multipointm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOINT_M; } (?i:"multilinestring") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_MULTILINESTRING; } (?i:"multilinestringm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_MULTILINESTRING_M; } (?i:"multipolygon") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOLYGON; } (?i:"multipolygonm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_MULTIPOLYGON_M; } (?i:"geometrycollection") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_GEOMETRYCOLLECTION; } (?i:"geometrycollectionm") { Ewktget_extra(yyscanner)->EwktLval.dval = 0; return EWKT_GEOMETRYCOLLECTION_M; } [ \t] { Ewktget_extra(yyscanner)->ewkt_col += (int) strlen(yytext); } /* ignore but count white space */ \n { Ewktget_extra(yyscanner)->ewkt_col = 0; Ewktget_extra(yyscanner)->ewkt_line++; } . { Ewktget_extra(yyscanner)->ewkt_col += (int) strlen(yytext); return -1; } %% int yywrap(yyscan_t yyscanner ) { return 1; } libspatialite-4.3.0a/src/gaiageo/flex/kmlLexer.l0000664000175000017500000000674112544707704016533 00000000000000/* kmlLexer.l -- KML parser - FLEX config version 2.4, 2011 June 14 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ %option prefix="Kml" %option reentrant %option extra-type="struct kml_data *" %option noinput %option nounput /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINTM, * Flex would match both POINT and POINTM, but since POINTM is the longer * of the two tokens, FLEX will match POINTM. */ %% "/" { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); return KML_END; } "=" { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); return KML_EQ; } "<" { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); return KML_OPEN; } ">" { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); return KML_CLOSE; } [0-9,\.\+-]* { kml_saveString(&(Kmlget_extra(yyscanner)->KmlLval.pval), yytext); return KML_COORD; } \"[^<>\"]*\" { kml_saveString(&(Kmlget_extra(yyscanner)->KmlLval.pval), yytext); return KML_VALUE; } [a-zA-Z_][a-zA-Z_:0-9]* { kml_saveString(&(Kmlget_extra(yyscanner)->KmlLval.pval), yytext); return KML_KEYWORD; } [ \t] { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); Kmlget_extra(yyscanner)->kml_col += (int) strlen(yytext); } /* ignore but count white space */ \n { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); Kmlget_extra(yyscanner)->kml_col = 0; Kmlget_extra(yyscanner)->kml_line++; } . { kml_freeString(&(Kmlget_extra(yyscanner)->KmlLval.pval)); Kmlget_extra(yyscanner)->kml_col += (int) strlen(yytext); return -1; } %% int yywrap(yyscan_t yyscanner ) { return 1; } libspatialite-4.3.0a/src/gaiageo/flex/Makefile.am0000664000175000017500000000013512544707704016616 00000000000000 EXTRA_DIST = ewktLexer.l geoJsonLexer.l gmlLexer.l \ kmlLexer.l vanuatuLexer.l ReadMe.txt libspatialite-4.3.0a/src/gaiageo/flex/ReadMe.txt0000664000175000017500000000461712544707704016471 00000000000000The Vanuatu WKT lexer: ====================== 1) in order to make any change to the lexer you have to edit first the definitions file vanuatuLexer.l 2) then run: flex -L vanuatuLexer.l 3) a source file named "lex.VanuatuWkt.c" will be generated during the above step. 3.1) IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2) now you should copy this file into the parent dir: cp lex.VanuatuWkt.c .. The EWKT lexer: ================ 1) in order to make any change to the lexer you have to edit first the definitions file ewktLexer.l 2) then run: flex -L ewktLexer.l 3) a source file named "lex.Ewkt.c" will be generated during the above step. 3.1) IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2) now you should copy this file into the parent dir: cp lex.Ewkt.c .. The GeoJSON lexer: ================ 1) in order to make any change to the lexer you have to edit first the definitions file geoJsonLexer.l 2) then run: flex -L geoJsonLexer.l 3) a source file named "lex.GeoJson.c" will be generated during the above step. 3.1) IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2) now you should copy this file into the parent dir: cp lex.geoJsonLexer.c .. The KML lexer: ================ 1) in order to make any change to the lexer you have to edit first the definitions file kmlLexer.l 2) then run: flex -L kmlLexer.l 3) a source file named "lex.Kml.c" will be generated during the above step. 3.1) IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2) now you should copy this file into the parent dir: cp lex.Kml.c .. The GML lexer: ================ 1) in order to make any change to the lexer you have to edit first the definitions file gmlLexer.l 2) then run: flex -L gmlLexer.l 3) a source file named "lex.Gml.c" will be generated during the above step. 3.1) IMPORTANT NOTICE: carefully check the generated *.c code; you should manually replace any occurrence of: fprintf(stderr, ..... with: spatialite_e(..... 3.2) now you should copy this file into the parent dir: cp lex.Gml.c .. libspatialite-4.3.0a/src/gaiageo/vanuatuWkt.h0000664000175000017500000000255212544707704016153 00000000000000#define VANUATU_NEWLINE 1 #define VANUATU_POINT 2 #define VANUATU_OPEN_BRACKET 3 #define VANUATU_CLOSE_BRACKET 4 #define VANUATU_POINT_M 5 #define VANUATU_POINT_Z 6 #define VANUATU_POINT_ZM 7 #define VANUATU_NUM 8 #define VANUATU_COMMA 9 #define VANUATU_LINESTRING 10 #define VANUATU_LINESTRING_M 11 #define VANUATU_LINESTRING_Z 12 #define VANUATU_LINESTRING_ZM 13 #define VANUATU_POLYGON 14 #define VANUATU_POLYGON_M 15 #define VANUATU_POLYGON_Z 16 #define VANUATU_POLYGON_ZM 17 #define VANUATU_MULTIPOINT 18 #define VANUATU_MULTIPOINT_M 19 #define VANUATU_MULTIPOINT_Z 20 #define VANUATU_MULTIPOINT_ZM 21 #define VANUATU_MULTILINESTRING 22 #define VANUATU_MULTILINESTRING_M 23 #define VANUATU_MULTILINESTRING_Z 24 #define VANUATU_MULTILINESTRING_ZM 25 #define VANUATU_MULTIPOLYGON 26 #define VANUATU_MULTIPOLYGON_M 27 #define VANUATU_MULTIPOLYGON_Z 28 #define VANUATU_MULTIPOLYGON_ZM 29 #define VANUATU_GEOMETRYCOLLECTION 30 #define VANUATU_GEOMETRYCOLLECTION_M 31 #define VANUATU_GEOMETRYCOLLECTION_Z 32 #define VANUATU_GEOMETRYCOLLECTION_ZM 33 libspatialite-4.3.0a/src/gaiageo/gg_voronoj.c0000664000175000017500000014634712544707704016161 00000000000000/* gg_voronoj.c -- Voronoj Diagram implementation version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #ifdef GEOS_ADVANCED /* GEOS advanced features */ struct voronoj_triangle { /* a struct representing a Delaunay triangle */ double x1; /* vertex #1 */ double y1; double x2; /* vertex #2 */ double y2; double x3; /* vertex #3 */ double y3; double cx; /* circumcenter */ double cy; double x_1_2; /* vertex on the frame - edge #1-#2 */ double y_1_2; double x_2_3; /* vertex on the frame - edge #2-#3 */ double y_2_3; double x_3_1; /* vertex on the frame - edge #3-#1 */ double y_3_1; struct voronoj_triangle *tri_1_2; /* triangle sharing edge #1-#2 */ struct voronoj_triangle *tri_2_3; /* triangle sharing edge #2-#3 */ struct voronoj_triangle *tri_3_1; /* triangle sharing edge #3-#1 */ char trace_1_2; /* flags: to be traced */ char trace_2_3; char trace_3_1; }; struct voronoj_point { /* an auxiliary struct - point on Voronoj's frame */ double coord; struct voronoj_point *next; }; struct voronoj_aux { /* an auxiliary struct supporting Voronoj */ struct voronoj_triangle *array; /* array of Triangles */ int count; /* number of Triangles */ double minx; /* the frame extent */ double miny; double maxx; double maxy; struct voronoj_point *first_up; /* linked list: horz-up frame's edge */ struct voronoj_point *last_up; struct voronoj_point *first_low; /* linked list: horz-down frame's edge */ struct voronoj_point *last_low; struct voronoj_point *first_left; /* linked list: vert-left frame's edge */ struct voronoj_point *last_left; struct voronoj_point *first_right; /* linked list: vert-right frame's edge */ struct voronoj_point *last_right; }; struct concave_hull_str { /* a struct to implement StandardVariation and Variance for Concave Hull */ double mean; double quot; double count; }; static double * voronoj_sorted_up (struct voronoj_aux *voronoj, int *count) { /* returning a sorted array of coordinates */ double *array = NULL; int cnt = 0; int ok = 1; int i; struct voronoj_point *pt = voronoj->first_up; while (pt) { /* counting how many points are there */ cnt++; pt = pt->next; } *count = cnt; if (cnt == 0) return NULL; /* allocating and populating the array */ array = malloc (sizeof (double) * *count); cnt = 0; pt = voronoj->first_up; while (pt) { *(array + cnt++) = pt->coord; pt = pt->next; } /* sorting the array */ while (ok) { ok = 0; for (i = 1; i < *count; i++) { if (*(array + i - 1) > *(array + i)) { /* swapping two values */ double save = *(array + i - 1); *(array + i - 1) = *(array + i); *(array + i) = save; ok = 1; } } } return array; } static double * voronoj_sorted_low (struct voronoj_aux *voronoj, int *count) { /* returning a sorted array of coordinates */ double *array = NULL; int cnt = 0; int ok = 1; int i; struct voronoj_point *pt = voronoj->first_low; while (pt) { /* counting how many points are there */ cnt++; pt = pt->next; } *count = cnt; if (cnt == 0) return NULL; /* allocating and populating the array */ array = malloc (sizeof (double) * *count); cnt = 0; pt = voronoj->first_low; while (pt) { *(array + cnt++) = pt->coord; pt = pt->next; } /* sorting the array */ while (ok) { ok = 0; for (i = 1; i < *count; i++) { if (*(array + i - 1) > *(array + i)) { /* swapping two values */ double save = *(array + i - 1); *(array + i - 1) = *(array + i); *(array + i) = save; ok = 1; } } } return array; } static double * voronoj_sorted_left (struct voronoj_aux *voronoj, int *count) { /* returning a sorted array of coordinates */ double *array = NULL; int cnt = 0; int ok = 1; int i; struct voronoj_point *pt = voronoj->first_left; while (pt) { /* counting how many points are there */ cnt++; pt = pt->next; } *count = cnt; if (cnt == 0) return NULL; /* allocating and populating the array */ array = malloc (sizeof (double) * *count); cnt = 0; pt = voronoj->first_left; while (pt) { *(array + cnt++) = pt->coord; pt = pt->next; } /* sorting the array */ while (ok) { ok = 0; for (i = 1; i < *count; i++) { if (*(array + i - 1) > *(array + i)) { /* swapping two values */ double save = *(array + i - 1); *(array + i - 1) = *(array + i); *(array + i) = save; ok = 1; } } } return array; } static double * voronoj_sorted_right (struct voronoj_aux *voronoj, int *count) { /* returning a sorted array of coordinates */ double *array = NULL; int cnt = 0; int ok = 1; int i; struct voronoj_point *pt = voronoj->first_right; while (pt) { /* counting how many points are there */ cnt++; pt = pt->next; } *count = cnt; if (cnt == 0) return NULL; /* allocating and populating the array */ array = malloc (sizeof (double) * *count); cnt = 0; pt = voronoj->first_right; while (pt) { *(array + cnt++) = pt->coord; pt = pt->next; } /* sorting the array */ while (ok) { ok = 0; for (i = 1; i < *count; i++) { if (*(array + i - 1) > *(array + i)) { /* swapping two values */ double save = *(array + i - 1); *(array + i - 1) = *(array + i); *(array + i) = save; ok = 1; } } } return array; } static void voronoj_add_frame_point (struct voronoj_aux *voronoj, double x, double y) { /* adding some frame point */ struct voronoj_point *pt = NULL; /* skipping any corner */ if (x == voronoj->minx && y == voronoj->miny) return; if (x == voronoj->minx && y == voronoj->maxy) return; if (x == voronoj->maxx && y == voronoj->miny) return; if (x == voronoj->maxx && y == voronoj->maxy) return; if (x == voronoj->minx) { pt = malloc (sizeof (struct voronoj_point)); pt->coord = y; pt->next = NULL; if (voronoj->first_left == NULL) voronoj->first_left = pt; if (voronoj->last_left != NULL) voronoj->last_left->next = pt; voronoj->last_left = pt; } if (x == voronoj->maxx) { pt = malloc (sizeof (struct voronoj_point)); pt->coord = y; pt->next = NULL; if (voronoj->first_right == NULL) voronoj->first_right = pt; if (voronoj->last_right != NULL) voronoj->last_right->next = pt; voronoj->last_right = pt; } if (y == voronoj->miny) { pt = malloc (sizeof (struct voronoj_point)); pt->coord = x; pt->next = NULL; if (voronoj->first_low == NULL) voronoj->first_low = pt; if (voronoj->last_low != NULL) voronoj->last_low->next = pt; voronoj->last_low = pt; } if (y == voronoj->maxy) { pt = malloc (sizeof (struct voronoj_point)); pt->coord = x; pt->next = NULL; if (voronoj->first_up == NULL) voronoj->first_up = pt; if (voronoj->last_up != NULL) voronoj->last_up->next = pt; voronoj->last_up = pt; } } static int voronoj_same_edge (double ax1, double ay1, double ax2, double ay2, double bx1, double by1, double bx2, double by2) { /* testing if two segments are the same */ if (ax1 == bx1 && ay1 == by1 && ax2 == bx2 && ay2 == by2) return 1; if (ax1 == bx2 && ay1 == by2 && ax2 == bx1 && ay2 == by1) return 1; return 0; } static int voronoj_internal (const void *p_cache, struct voronoj_triangle *triangle) { /* checking if the circumcenter falls inside the triangle */ int ret; gaiaGeomCollPtr pt = gaiaAllocGeomColl (); gaiaGeomCollPtr tri = gaiaAllocGeomColl (); gaiaPolygonPtr pg = gaiaAddPolygonToGeomColl (tri, 4, 0); gaiaRingPtr rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, triangle->x1, triangle->y1); gaiaSetPoint (rng->Coords, 1, triangle->x2, triangle->y2); gaiaSetPoint (rng->Coords, 2, triangle->x3, triangle->y3); gaiaSetPoint (rng->Coords, 3, triangle->x1, triangle->y1); gaiaAddPointToGeomColl (pt, triangle->cx, triangle->cy); gaiaMbrGeometry (pt); gaiaMbrGeometry (tri); if (p_cache != NULL) ret = gaiaGeomCollIntersects_r (p_cache, tri, pt); else ret = gaiaGeomCollIntersects (tri, pt); gaiaFreeGeomColl (pt); gaiaFreeGeomColl (tri); return ret; } static double voronoj_test_point (const void *p_cache, double x1, double y1, double x2, double y2, double x, double y) { /* point-segment distance */ double dist; gaiaGeomCollPtr pt = gaiaAllocGeomColl (); gaiaGeomCollPtr segm = gaiaAllocGeomColl (); gaiaLinestringPtr ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); gaiaAddPointToGeomColl (pt, x, y); if (p_cache != NULL) gaiaGeomCollDistance_r (p_cache, segm, pt, &dist); else gaiaGeomCollDistance (segm, pt, &dist); gaiaFreeGeomColl (pt); gaiaFreeGeomColl (segm); return dist; } static int voronoj_check_nearest_edge (const void *p_cache, struct voronoj_triangle *tri, int which) { /* testing if direction outside */ double d_1_2; double d_2_3; double d_3_1; gaiaGeomCollPtr pt = gaiaAllocGeomColl (); gaiaGeomCollPtr segm = gaiaAllocGeomColl (); gaiaLinestringPtr ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, tri->x1, tri->y1); gaiaSetPoint (ln->Coords, 1, tri->x2, tri->y2); gaiaAddPointToGeomColl (pt, tri->cx, tri->cy); if (p_cache != NULL) gaiaGeomCollDistance_r (p_cache, segm, pt, &d_1_2); else gaiaGeomCollDistance (segm, pt, &d_1_2); gaiaFreeGeomColl (segm); segm = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, tri->x2, tri->y2); gaiaSetPoint (ln->Coords, 1, tri->x3, tri->y3); if (p_cache != NULL) gaiaGeomCollDistance_r (p_cache, segm, pt, &d_2_3); else gaiaGeomCollDistance (segm, pt, &d_2_3); gaiaFreeGeomColl (segm); segm = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, tri->x3, tri->y3); gaiaSetPoint (ln->Coords, 1, tri->x1, tri->y1); if (p_cache != NULL) gaiaGeomCollDistance_r (p_cache, segm, pt, &d_3_1); else gaiaGeomCollDistance (segm, pt, &d_3_1); gaiaFreeGeomColl (segm); gaiaFreeGeomColl (pt); if (which == 12 && d_1_2 < d_2_3 && d_1_2 < d_3_1) return 0; if (which == 23 && d_2_3 < d_1_2 && d_2_3 < d_3_1) return 0; if (which == 31 && d_3_1 < d_1_2 && d_3_1 < d_2_3) return 0; return 1; } static void voronoj_minmax (double x, double y, double *minx, double *miny, double *maxx, double *maxy) { /* updating the frame extent */ if (x < *minx) *minx = x; if (y < *miny) *miny = y; if (x > *maxx) *maxx = x; if (y > *maxy) *maxy = y; } static void voronoj_frame_point (const void *p_cache, double intercept, double slope, struct voronoj_aux *voronoj, double cx, double cy, double mx, double my, int direct, double *x, double *y) { /* determining a vertex on the frame */ double x_up; double x_low; double y_left; double y_right; double pre_x1 = DBL_MAX; double pre_y1 = DBL_MAX; double pre_x2 = DBL_MAX; double pre_y2 = DBL_MAX; double d1; double d2; if (slope == DBL_MAX) { x_up = cx; x_low = cx; y_left = DBL_MAX; y_right = DBL_MAX; } else { x_up = (voronoj->maxy - intercept) / slope; x_low = (voronoj->miny - intercept) / slope; y_left = (slope * voronoj->minx) + intercept; y_right = (slope * voronoj->maxx) + intercept; } if (x_up >= voronoj->minx && x_up <= voronoj->maxx) { if (pre_x1 == DBL_MAX && pre_y1 == DBL_MAX) { pre_x1 = x_up; pre_y1 = voronoj->maxy; } else if (pre_x2 == DBL_MAX && pre_y2 == DBL_MAX) { pre_x2 = x_up; pre_y2 = voronoj->maxy; } } if (x_low >= voronoj->minx && x_low <= voronoj->maxx) { if (pre_x1 == DBL_MAX && pre_y1 == DBL_MAX) { pre_x1 = x_low; pre_y1 = voronoj->miny; } else if (pre_x2 == DBL_MAX && pre_y2 == DBL_MAX) { pre_x2 = x_low; pre_y2 = voronoj->miny; } } if (y_left >= voronoj->miny && y_left <= voronoj->maxy) { if (pre_x1 == DBL_MAX && pre_y1 == DBL_MAX) { pre_x1 = voronoj->minx; pre_y1 = y_left; } else if (pre_x2 == DBL_MAX && pre_y2 == DBL_MAX) { pre_x2 = voronoj->minx; pre_y2 = y_left; } } if (y_right >= voronoj->miny && y_right <= voronoj->maxy) { if (pre_x1 == DBL_MAX && pre_y1 == DBL_MAX) { pre_x1 = voronoj->maxx; pre_y1 = y_right; } else if (pre_x2 == DBL_MAX && pre_y2 == DBL_MAX) { pre_x2 = voronoj->maxx; pre_y2 = y_right; } } /* choosing wich point has to be returned */ if (direct) { /* cutting the edge in two */ d1 = voronoj_test_point (p_cache, cx, cy, pre_x1, pre_y1, mx, my); d2 = voronoj_test_point (p_cache, cx, cy, pre_x2, pre_y2, mx, my); if (d1 < d2) { *x = pre_x1; *y = pre_y1; } else { *x = pre_x2; *y = pre_y2; } } else { /* going outside */ d1 = voronoj_test_point (p_cache, cx, cy, pre_x1, pre_y1, mx, my); d2 = voronoj_test_point (p_cache, cx, cy, pre_x2, pre_y2, mx, my); if (d1 > d2) { *x = pre_x1; *y = pre_y1; } else { *x = pre_x2; *y = pre_y2; } } } SPATIALITE_PRIVATE void * voronoj_build (int count, void *p_first, double extra_frame_size) { return voronoj_build_r (NULL, count, p_first, extra_frame_size); } SPATIALITE_PRIVATE void * voronoj_build_r (const void *p_cache, int count, void *p_first, double extra_frame_size) { /* building the Voronoj auxiliary struct */ gaiaPolygonPtr first = (gaiaPolygonPtr) p_first; struct voronoj_aux *voronoj = NULL; struct voronoj_triangle *triangle; struct voronoj_triangle *tri2; gaiaPolygonPtr pg; gaiaRingPtr rng; int ind = 0; int i2; int direct; double x; double y; double z; double m; double xba; double yba; double xca; double yca; double bl; double cl; double d; double mx; double my; double slope; double intercept = 0.0; double minx = DBL_MAX; double miny = DBL_MAX; double maxx = DBL_MIN; double maxy = DBL_MIN; double ext_x; double ext_y; double delta; double delta2; /* allocating the Voronoj struct */ voronoj = malloc (sizeof (struct voronoj_aux)); voronoj->count = count; voronoj->first_up = NULL; voronoj->last_up = NULL; voronoj->first_low = NULL; voronoj->last_low = NULL; voronoj->first_left = NULL; voronoj->last_left = NULL; voronoj->first_right = NULL; voronoj->last_right = NULL; voronoj->array = malloc (sizeof (struct voronoj_triangle) * count); /* initializing the Voronoj struct */ pg = first; while (pg) { rng = pg->Exterior; triangle = voronoj->array + ind; if (pg->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); triangle->x1 = x; triangle->y1 = y; gaiaGetPointXYZ (rng->Coords, 1, &x, &y, &z); triangle->x2 = x; triangle->y2 = y; gaiaGetPointXYZ (rng->Coords, 2, &x, &y, &z); triangle->x3 = x; triangle->y3 = y; } else if (pg->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); triangle->x1 = x; triangle->y1 = y; gaiaGetPointXYM (rng->Coords, 1, &x, &y, &m); triangle->x2 = x; triangle->y2 = y; gaiaGetPointXYM (rng->Coords, 2, &x, &y, &m); triangle->x3 = x; triangle->y3 = y; } else if (pg->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); triangle->x1 = x; triangle->y1 = y; gaiaGetPointXYZM (rng->Coords, 1, &x, &y, &z, &m); triangle->x2 = x; triangle->y2 = y; gaiaGetPointXYZM (rng->Coords, 2, &x, &y, &z, &m); triangle->x3 = x; triangle->y3 = y; } else { gaiaGetPoint (rng->Coords, 0, &x, &y); triangle->x1 = x; triangle->y1 = y; gaiaGetPoint (rng->Coords, 1, &x, &y); triangle->x2 = x; triangle->y2 = y; gaiaGetPoint (rng->Coords, 2, &x, &y); triangle->x3 = x; triangle->y3 = y; } /* computing the triangle circumcenter */ xba = triangle->x2 - triangle->x1; yba = triangle->y2 - triangle->y1; xca = triangle->x3 - triangle->x1; yca = triangle->y3 - triangle->y1; bl = xba * xba + yba * yba; cl = xca * xca + yca * yca; d = 0.5 / (xba * yca - yba * xca); triangle->cx = triangle->x1 + ((yca * bl - yba * cl) * d); triangle->cy = triangle->y1 + ((xba * cl - xca * bl) * d); /* adjusting the frame extent */ voronoj_minmax (triangle->x1, triangle->y1, &minx, &miny, &maxx, &maxy); voronoj_minmax (triangle->x2, triangle->y2, &minx, &miny, &maxx, &maxy); voronoj_minmax (triangle->x3, triangle->y3, &minx, &miny, &maxx, &maxy); voronoj_minmax (triangle->cx, triangle->cy, &minx, &miny, &maxx, &maxy); triangle->tri_1_2 = NULL; triangle->tri_2_3 = NULL; triangle->tri_3_1 = NULL; triangle->trace_1_2 = 0; triangle->trace_2_3 = 0; triangle->trace_3_1 = 0; ind++; pg = pg->Next; } /* setting the frame extent */ if (extra_frame_size < 0.0) extra_frame_size = 5.0; ext_x = maxx - minx; ext_y = maxy - miny; delta = (ext_x * extra_frame_size) / 100.0; delta2 = (ext_y * extra_frame_size) / 100.0; if (delta2 > delta) delta = delta2; voronoj->minx = minx - delta; voronoj->miny = miny - delta; voronoj->maxx = maxx + delta; voronoj->maxy = maxy + delta; /* identifying triangles sharing the same edge */ for (ind = 0; ind < voronoj->count; ind++) { triangle = voronoj->array + ind; for (i2 = ind + 1; i2 < voronoj->count; i2++) { tri2 = voronoj->array + i2; if (triangle->tri_1_2 == NULL && tri2->tri_1_2 == NULL) { if (voronoj_same_edge (triangle->x1, triangle->y1, triangle->x2, triangle->y2, tri2->x1, tri2->y1, tri2->x2, tri2->y2)) { triangle->tri_1_2 = tri2; triangle->trace_1_2 = 1; tri2->tri_1_2 = triangle; } } if (triangle->tri_1_2 == NULL && tri2->tri_2_3 == NULL) { if (voronoj_same_edge (triangle->x1, triangle->y1, triangle->x2, triangle->y2, tri2->x2, tri2->y2, tri2->x3, tri2->y3)) { triangle->tri_1_2 = tri2; triangle->trace_1_2 = 1; tri2->tri_2_3 = triangle; } } if (triangle->tri_1_2 == NULL && tri2->tri_3_1 == NULL) { if (voronoj_same_edge (triangle->x1, triangle->y1, triangle->x2, triangle->y2, tri2->x3, tri2->y3, tri2->x1, tri2->y1)) { triangle->tri_1_2 = tri2; triangle->trace_1_2 = 1; tri2->tri_3_1 = triangle; } } if (triangle->tri_2_3 == NULL && tri2->tri_1_2 == NULL) { if (voronoj_same_edge (triangle->x2, triangle->y2, triangle->x3, triangle->y3, tri2->x1, tri2->y1, tri2->x2, tri2->y2)) { triangle->tri_2_3 = tri2; triangle->trace_2_3 = 1; tri2->tri_1_2 = triangle; } } if (triangle->tri_2_3 == NULL && tri2->tri_2_3 == NULL) { if (voronoj_same_edge (triangle->x2, triangle->y2, triangle->x3, triangle->y3, tri2->x2, tri2->y2, tri2->x3, tri2->y3)) { triangle->tri_2_3 = tri2; triangle->trace_2_3 = 1; tri2->tri_2_3 = triangle; } } if (triangle->tri_2_3 == NULL && tri2->tri_3_1 == NULL) { if (voronoj_same_edge (triangle->x2, triangle->y2, triangle->x3, triangle->y3, tri2->x3, tri2->y3, tri2->x1, tri2->y1)) { triangle->tri_2_3 = tri2; triangle->trace_2_3 = 1; tri2->tri_3_1 = triangle; } } if (triangle->tri_3_1 == NULL && tri2->tri_1_2 == NULL) { if (voronoj_same_edge (triangle->x3, triangle->y3, triangle->x1, triangle->y1, tri2->x1, tri2->y1, tri2->x2, tri2->y2)) { triangle->tri_3_1 = tri2; triangle->trace_3_1 = 1; tri2->tri_1_2 = triangle; } } if (triangle->tri_3_1 == NULL && tri2->tri_2_3 == NULL) { if (voronoj_same_edge (triangle->x3, triangle->y3, triangle->x1, triangle->y1, tri2->x2, tri2->y2, tri2->x3, tri2->y3)) { triangle->tri_3_1 = tri2; triangle->trace_3_1 = 1; tri2->tri_2_3 = triangle; } } if (triangle->tri_3_1 == NULL && tri2->tri_3_1 == NULL) { if (voronoj_same_edge (triangle->x3, triangle->y3, triangle->x1, triangle->y1, tri2->x3, tri2->y3, tri2->x1, tri2->y1)) { triangle->tri_3_1 = tri2; triangle->trace_3_1 = 1; tri2->tri_3_1 = triangle; } } } /* identifying vertices on the frame */ if (triangle->tri_1_2 == NULL) { mx = (triangle->x1 + triangle->x2) / 2.0; my = (triangle->y1 + triangle->y2) / 2.0; if (mx == triangle->cx) slope = DBL_MAX; else { slope = (my - triangle->cy) / (mx - triangle->cx); intercept = my - (slope * mx); } direct = 1; if (!voronoj_internal (p_cache, triangle)) direct = voronoj_check_nearest_edge (p_cache, triangle, 12); voronoj_frame_point (p_cache, intercept, slope, voronoj, triangle->cx, triangle->cy, mx, my, direct, &x, &y); triangle->x_1_2 = x; triangle->y_1_2 = y; } if (triangle->tri_2_3 == NULL) { mx = (triangle->x2 + triangle->x3) / 2.0; my = (triangle->y2 + triangle->y3) / 2.0; if (mx == triangle->cx) slope = DBL_MAX; else { slope = (my - triangle->cy) / (mx - triangle->cx); intercept = my - (slope * mx); } direct = 1; if (!voronoj_internal (p_cache, triangle)) direct = voronoj_check_nearest_edge (p_cache, triangle, 23); voronoj_frame_point (p_cache, intercept, slope, voronoj, triangle->cx, triangle->cy, mx, my, direct, &x, &y); triangle->x_2_3 = x; triangle->y_2_3 = y; } if (triangle->tri_3_1 == NULL) { mx = (triangle->x3 + triangle->x1) / 2.0; my = (triangle->y3 + triangle->y1) / 2.0; if (mx == triangle->cx) slope = DBL_MAX; else { slope = (my - triangle->cy) / (mx - triangle->cx); intercept = my - (slope * mx); } direct = 1; if (!voronoj_internal (p_cache, triangle)) direct = voronoj_check_nearest_edge (p_cache, triangle, 31); voronoj_frame_point (p_cache, intercept, slope, voronoj, triangle->cx, triangle->cy, mx, my, direct, &x, &y); triangle->x_3_1 = x; triangle->y_3_1 = y; } } return voronoj; } static void * voronoj_export_common (const void *p_cache, void *p_voronoj, void *p_result, int only_edges) { /* building the Geometry representing Voronoj */ gaiaGeomCollPtr result = (gaiaGeomCollPtr) p_result; gaiaGeomCollPtr lines; struct voronoj_aux *voronoj = (struct voronoj_aux *) p_voronoj; int ind; gaiaLinestringPtr ln; struct voronoj_triangle *triangle; struct voronoj_triangle *tri2; int i; int count; double last; double *array; for (ind = 0; ind < voronoj->count; ind++) { triangle = voronoj->array + ind; /* segments connecting two circumcenters */ if (triangle->tri_1_2 && triangle->trace_1_2) { tri2 = triangle->tri_1_2; ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYZ (ln->Coords, 1, tri2->cx, tri2->cy, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYM (ln->Coords, 1, tri2->cx, tri2->cy, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, tri2->cx, tri2->cy, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, triangle->cx, triangle->cy); gaiaSetPoint (ln->Coords, 1, tri2->cx, tri2->cy); } } if (triangle->tri_2_3 && triangle->trace_2_3) { tri2 = triangle->tri_2_3; ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYZ (ln->Coords, 1, tri2->cx, tri2->cy, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYM (ln->Coords, 1, tri2->cx, tri2->cy, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, tri2->cx, tri2->cy, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, triangle->cx, triangle->cy); gaiaSetPoint (ln->Coords, 1, tri2->cx, tri2->cy); } } if (triangle->tri_3_1 && triangle->trace_3_1) { tri2 = triangle->tri_3_1; ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYZ (ln->Coords, 1, tri2->cx, tri2->cy, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYM (ln->Coords, 1, tri2->cx, tri2->cy, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, tri2->cx, tri2->cy, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, triangle->cx, triangle->cy); gaiaSetPoint (ln->Coords, 1, tri2->cx, tri2->cy); } } /* segments connecting a circumcenter to the frame */ if (triangle->tri_1_2 == NULL) { ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYZ (ln->Coords, 1, triangle->x_1_2, triangle->y_1_2, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYM (ln->Coords, 1, triangle->x_1_2, triangle->y_1_2, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, triangle->x_1_2, triangle->y_1_2, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, triangle->cx, triangle->cy); gaiaSetPoint (ln->Coords, 1, triangle->x_1_2, triangle->y_1_2); } if (!only_edges) voronoj_add_frame_point (voronoj, triangle->x_1_2, triangle->y_1_2); } if (triangle->tri_2_3 == NULL) { ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYZ (ln->Coords, 1, triangle->x_2_3, triangle->y_2_3, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYM (ln->Coords, 1, triangle->x_2_3, triangle->y_2_3, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, triangle->x_2_3, triangle->y_2_3, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, triangle->cx, triangle->cy); gaiaSetPoint (ln->Coords, 1, triangle->x_2_3, triangle->y_2_3); } if (!only_edges) voronoj_add_frame_point (voronoj, triangle->x_2_3, triangle->y_2_3); } if (triangle->tri_3_1 == NULL) { ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYZ (ln->Coords, 1, triangle->x_3_1, triangle->y_3_1, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0); gaiaSetPointXYM (ln->Coords, 1, triangle->x_3_1, triangle->y_3_1, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, triangle->cx, triangle->cy, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, triangle->x_3_1, triangle->y_3_1, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, triangle->cx, triangle->cy); gaiaSetPoint (ln->Coords, 1, triangle->x_3_1, triangle->y_3_1); } if (!only_edges) voronoj_add_frame_point (voronoj, triangle->x_3_1, triangle->y_3_1); } } if (only_edges) return result; /* setting up the frame's upper edge */ last = voronoj->minx; array = voronoj_sorted_up (voronoj, &count); if (array) { for (i = 0; i < count; i++) { ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, last, voronoj->maxy, 0.0); gaiaSetPointXYZ (ln->Coords, 1, *(array + i), voronoj->maxy, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, last, voronoj->maxy, 0.0); gaiaSetPointXYM (ln->Coords, 1, *(array + i), voronoj->maxy, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, last, voronoj->maxy, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, *(array + i), voronoj->maxy, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, last, voronoj->maxy); gaiaSetPoint (ln->Coords, 1, *(array + i), voronoj->maxy); } last = *(array + i); } free (array); } /* closing the frame's upper edge */ ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, last, voronoj->maxy, 0.0); gaiaSetPointXYZ (ln->Coords, 1, voronoj->maxx, voronoj->maxy, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, last, voronoj->maxy, 0.0); gaiaSetPointXYM (ln->Coords, 1, voronoj->maxx, voronoj->maxy, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, last, voronoj->maxy, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, voronoj->maxx, voronoj->maxy, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, last, voronoj->maxy); gaiaSetPoint (ln->Coords, 1, voronoj->maxx, voronoj->maxy); } /* setting up the frame's lower edge */ last = voronoj->minx; array = voronoj_sorted_low (voronoj, &count); if (array) { for (i = 0; i < count; i++) { ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, last, voronoj->miny, 0.0); gaiaSetPointXYZ (ln->Coords, 1, *(array + i), voronoj->miny, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, last, voronoj->miny, 0.0); gaiaSetPointXYM (ln->Coords, 1, *(array + i), voronoj->miny, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, last, voronoj->miny, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, *(array + i), voronoj->miny, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, last, voronoj->miny); gaiaSetPoint (ln->Coords, 1, *(array + i), voronoj->miny); } last = *(array + i); } free (array); } /* closing the frame's lower edge */ ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, last, voronoj->miny, 0.0); gaiaSetPointXYZ (ln->Coords, 1, voronoj->maxx, voronoj->miny, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, last, voronoj->miny, 0.0); gaiaSetPointXYM (ln->Coords, 1, voronoj->maxx, voronoj->miny, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, last, voronoj->miny, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, voronoj->maxx, voronoj->miny, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, last, voronoj->miny); gaiaSetPoint (ln->Coords, 1, voronoj->maxx, voronoj->miny); } /* setting up the frame's left edge */ last = voronoj->miny; array = voronoj_sorted_left (voronoj, &count); if (array) { for (i = 0; i < count; i++) { ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, voronoj->minx, last, 0.0); gaiaSetPointXYZ (ln->Coords, 1, voronoj->minx, *(array + i), 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, voronoj->minx, last, 0.0); gaiaSetPointXYM (ln->Coords, 1, voronoj->minx, *(array + i), 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, voronoj->minx, last, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, voronoj->minx, *(array + i), 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, voronoj->minx, last); gaiaSetPoint (ln->Coords, 1, voronoj->minx, *(array + i)); } last = *(array + i); } free (array); } /* closing the frame's left edge */ ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, voronoj->minx, last, 0.0); gaiaSetPointXYZ (ln->Coords, 1, voronoj->minx, voronoj->maxy, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, voronoj->minx, last, 0.0); gaiaSetPointXYM (ln->Coords, 1, voronoj->minx, voronoj->maxy, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, voronoj->minx, last, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, voronoj->minx, voronoj->maxy, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, voronoj->minx, last); gaiaSetPoint (ln->Coords, 1, voronoj->minx, voronoj->maxy); } /* setting up the frame's right edge */ last = voronoj->miny; array = voronoj_sorted_right (voronoj, &count); if (array) { for (i = 0; i < count; i++) { ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, voronoj->maxx, last, 0.0); gaiaSetPointXYZ (ln->Coords, 1, voronoj->maxx, *(array + i), 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, voronoj->maxx, last, 0.0); gaiaSetPointXYM (ln->Coords, 1, voronoj->maxx, *(array + i), 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, voronoj->maxx, last, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, voronoj->maxx, *(array + i), 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, voronoj->maxx, last); gaiaSetPoint (ln->Coords, 1, voronoj->maxx, *(array + i)); } last = *(array + i); } free (array); } /* closing the frame's right edge */ ln = gaiaAddLinestringToGeomColl (result, 2); if (result->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, voronoj->maxx, last, 0.0); gaiaSetPointXYZ (ln->Coords, 1, voronoj->maxx, voronoj->maxy, 0.0); } else if (result->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, voronoj->maxx, last, 0.0); gaiaSetPointXYM (ln->Coords, 1, voronoj->maxx, voronoj->maxy, 0.0); } else if (result->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, voronoj->maxx, last, 0.0, 0.0); gaiaSetPointXYZM (ln->Coords, 1, voronoj->maxx, voronoj->maxy, 0.0, 0.0); } else { gaiaSetPoint (ln->Coords, 0, voronoj->maxx, last); gaiaSetPoint (ln->Coords, 1, voronoj->maxx, voronoj->maxy); } /* building Polygons */ lines = result; if (p_cache != NULL) result = gaiaPolygonize_r (p_cache, lines, 1); else result = gaiaPolygonize (lines, 1); gaiaFreeGeomColl (lines); return result; } SPATIALITE_PRIVATE void * voronoj_export (void *p_voronoj, void *p_result, int only_edges) { return voronoj_export_common (NULL, p_voronoj, p_result, only_edges); } SPATIALITE_PRIVATE void * voronoj_export_r (const void *p_cache, void *p_voronoj, void *p_result, int only_edges) { return voronoj_export_common (p_cache, p_voronoj, p_result, only_edges); } SPATIALITE_PRIVATE void voronoj_free (void *p_voronoj) { /* memory cleanup: destroying the Voronoj auxiliary struct */ struct voronoj_aux *voronoj = (struct voronoj_aux *) p_voronoj; struct voronoj_point *pt; struct voronoj_point *ptn; free (voronoj->array); pt = voronoj->first_up; while (pt) { ptn = pt->next; free (pt); pt = ptn; } pt = voronoj->first_low; while (pt) { ptn = pt->next; free (pt); pt = ptn; } pt = voronoj->first_left; while (pt) { ptn = pt->next; free (pt); pt = ptn; } pt = voronoj->first_right; while (pt) { ptn = pt->next; free (pt); pt = ptn; } free (voronoj); } SPATIALITE_PRIVATE int delaunay_triangle_check (void *ppg) { /* test if it's really a triangle */ gaiaPolygonPtr pg = (gaiaPolygonPtr) ppg; gaiaRingPtr rng = pg->Exterior; if (rng->Points == 4 && pg->NumInteriors == 0) return 1; return 0; } static void concave_hull_stats (struct concave_hull_str *concave, double length) { /* update concave hull statistics */ if (concave->count == 0) { concave->count = 1.0; concave->mean = length; return; } concave->count += 1.0; concave->quot = concave->quot + (((concave->count - 1.0) * ((length - concave->mean) * (length - concave->mean))) / concave->count); concave->mean = concave->mean + ((length - concave->mean) / concave->count); } static int concave_hull_filter (const void *p_cache, double x1, double y1, double x2, double y2, double x3, double y3, double limit) { /* filtering triangles to be inserted into the Concave Hull */ gaiaGeomCollPtr segm; gaiaLinestringPtr ln; double length; segm = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); if (p_cache != NULL) gaiaGeomCollLength_r (p_cache, segm, &length); else gaiaGeomCollLength (segm, &length); gaiaFreeGeomColl (segm); if (length >= limit) return 0; segm = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x2, y2); gaiaSetPoint (ln->Coords, 1, x3, y3); if (p_cache != NULL) gaiaGeomCollLength_r (p_cache, segm, &length); else gaiaGeomCollLength (segm, &length); gaiaFreeGeomColl (segm); if (length >= limit) return 0; segm = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x3, y3); gaiaSetPoint (ln->Coords, 1, x1, y1); if (p_cache != NULL) gaiaGeomCollLength_r (p_cache, segm, &length); else gaiaGeomCollLength (segm, &length); gaiaFreeGeomColl (segm); if (length >= limit) return 0; return 1; } static gaiaGeomCollPtr concave_hull_no_holes (gaiaGeomCollPtr in) { /* returning a Polygon surely not containing any hole */ gaiaGeomCollPtr out = NULL; gaiaPolygonPtr pg_in; gaiaPolygonPtr pg_out; gaiaRingPtr rng_in; gaiaRingPtr rng_out; int iv; double x; double y; double z; double m; if (in->DimensionModel == GAIA_XY_Z) out = gaiaAllocGeomCollXYZ (); else if (in->DimensionModel == GAIA_XY_M) out = gaiaAllocGeomCollXYM (); else if (in->DimensionModel == GAIA_XY_Z_M) out = gaiaAllocGeomCollXYZM (); else out = gaiaAllocGeomColl (); out->Srid = in->Srid; pg_in = in->FirstPolygon; while (pg_in) { rng_in = pg_in->Exterior; pg_out = gaiaAddPolygonToGeomColl (out, rng_in->Points, 0); rng_out = pg_out->Exterior; for (iv = 0; iv < rng_in->Points; iv++) { /* copying Exterior Ring vertices */ if (in->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng_in->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (rng_out->Coords, iv, x, y, z); } else if (in->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng_in->Coords, iv, &x, &y, &m); gaiaSetPointXYM (rng_out->Coords, iv, x, y, m); } else if (in->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng_in->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (rng_out->Coords, iv, x, y, z, m); } else { gaiaGetPoint (rng_in->Coords, iv, &x, &y); gaiaSetPoint (rng_out->Coords, iv, x, y); } } pg_in = pg_in->Next; } return out; } static void * concave_hull_build_common (const void *p_cache, void *p_first, int dimension_model, double factor, int allow_holes) { /* building the Concave Hull */ struct concave_hull_str concave; gaiaPolygonPtr first = (gaiaPolygonPtr) p_first; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaPolygonPtr pg_out; gaiaRingPtr rng_out; gaiaGeomCollPtr segm; gaiaGeomCollPtr result; gaiaLinestringPtr ln; double x; double y; double z; double m; double x1; double y1; double x2; double y2; double x3; double y3; double length; double std_dev; int count; /* initializing the struct for mean and standard deviation */ concave.mean = 0.0; concave.quot = 0.0; concave.count = 0.0; pg = first; while (pg) { /* examining each triangle / computing statistics distribution */ rng = pg->Exterior; if (pg->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); x1 = x; y1 = y; gaiaGetPointXYZ (rng->Coords, 1, &x, &y, &z); x2 = x; y2 = y; gaiaGetPointXYZ (rng->Coords, 2, &x, &y, &z); x3 = x; y3 = y; } else if (pg->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); x1 = x; y1 = y; gaiaGetPointXYM (rng->Coords, 1, &x, &y, &m); x2 = x; y2 = y; gaiaGetPointXYM (rng->Coords, 2, &x, &y, &m); x3 = x; y3 = y; } else if (pg->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); x1 = x; y1 = y; gaiaGetPointXYZM (rng->Coords, 1, &x, &y, &z, &m); x2 = x; y2 = y; gaiaGetPointXYZM (rng->Coords, 2, &x, &y, &z, &m); x3 = x; y3 = y; } else { gaiaGetPoint (rng->Coords, 0, &x, &y); x1 = x; y1 = y; gaiaGetPoint (rng->Coords, 1, &x, &y); x2 = x; y2 = y; gaiaGetPoint (rng->Coords, 2, &x, &y); x3 = x; y3 = y; } segm = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); if (p_cache != NULL) gaiaGeomCollLength_r (p_cache, segm, &length); else gaiaGeomCollLength (segm, &length); gaiaFreeGeomColl (segm); concave_hull_stats (&concave, length); segm = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x2, y2); gaiaSetPoint (ln->Coords, 1, x3, y3); if (p_cache != NULL) gaiaGeomCollLength_r (p_cache, segm, &length); else gaiaGeomCollLength (segm, &length); gaiaFreeGeomColl (segm); concave_hull_stats (&concave, length); segm = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (segm, 2); gaiaSetPoint (ln->Coords, 0, x3, y3); gaiaSetPoint (ln->Coords, 1, x1, y1); if (p_cache != NULL) gaiaGeomCollLength_r (p_cache, segm, &length); else gaiaGeomCollLength (segm, &length); gaiaFreeGeomColl (segm); concave_hull_stats (&concave, length); pg = pg->Next; } std_dev = sqrt (concave.quot / concave.count); /* creating the Geometry representing the Concave Hull */ if (dimension_model == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (dimension_model == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (dimension_model == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); count = 0; pg = first; while (pg) { /* selecting triangles to be inserted */ rng = pg->Exterior; if (pg->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); x1 = x; y1 = y; gaiaGetPointXYZ (rng->Coords, 1, &x, &y, &z); x2 = x; y2 = y; gaiaGetPointXYZ (rng->Coords, 2, &x, &y, &z); x3 = x; y3 = y; } else if (pg->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); x1 = x; y1 = y; gaiaGetPointXYM (rng->Coords, 1, &x, &y, &m); x2 = x; y2 = y; gaiaGetPointXYM (rng->Coords, 2, &x, &y, &m); x3 = x; y3 = y; } else if (pg->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); x1 = x; y1 = y; gaiaGetPointXYZM (rng->Coords, 1, &x, &y, &z, &m); x2 = x; y2 = y; gaiaGetPointXYZM (rng->Coords, 2, &x, &y, &z, &m); x3 = x; y3 = y; } else { gaiaGetPoint (rng->Coords, 0, &x, &y); x1 = x; y1 = y; gaiaGetPoint (rng->Coords, 1, &x, &y); x2 = x; y2 = y; gaiaGetPoint (rng->Coords, 2, &x, &y); x3 = x; y3 = y; } if (concave_hull_filter (p_cache, x1, y1, x2, y2, x3, y3, std_dev * factor)) { /* inserting this triangle into the Concave Hull */ pg_out = gaiaAddPolygonToGeomColl (result, 4, 0); rng_out = pg_out->Exterior; if (pg->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, 0, &x, &y, &z); gaiaSetPointXYZ (rng_out->Coords, 0, x, y, z); gaiaGetPointXYZ (rng->Coords, 1, &x, &y, &z); gaiaSetPointXYZ (rng_out->Coords, 1, x, y, z); gaiaGetPointXYZ (rng->Coords, 2, &x, &y, &z); gaiaSetPointXYZ (rng_out->Coords, 2, x, y, z); gaiaGetPointXYZ (rng->Coords, 3, &x, &y, &z); gaiaSetPointXYZ (rng_out->Coords, 3, x, y, z); } else if (pg->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, 0, &x, &y, &m); gaiaSetPointXYM (rng_out->Coords, 0, x, y, m); gaiaGetPointXYM (rng->Coords, 1, &x, &y, &m); gaiaSetPointXYM (rng_out->Coords, 1, x, y, m); gaiaGetPointXYM (rng->Coords, 2, &x, &y, &m); gaiaSetPointXYM (rng_out->Coords, 2, x, y, m); gaiaGetPointXYM (rng->Coords, 3, &x, &y, &m); gaiaSetPointXYM (rng_out->Coords, 3, x, y, m); } else if (pg->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, 0, &x, &y, &z, &m); gaiaSetPointXYZM (rng_out->Coords, 0, x, y, z, m); gaiaGetPointXYZM (rng->Coords, 1, &x, &y, &z, &m); gaiaSetPointXYZM (rng_out->Coords, 1, x, y, z, m); gaiaGetPointXYZM (rng->Coords, 2, &x, &y, &z, &m); gaiaSetPointXYZM (rng_out->Coords, 2, x, y, z, m); gaiaGetPointXYZM (rng->Coords, 3, &x, &y, &z, &m); gaiaSetPointXYZM (rng_out->Coords, 3, x, y, z, m); } else { gaiaGetPoint (rng->Coords, 0, &x, &y); gaiaSetPoint (rng_out->Coords, 0, x, y); gaiaGetPoint (rng->Coords, 1, &x, &y); gaiaSetPoint (rng_out->Coords, 1, x, y); gaiaGetPoint (rng->Coords, 2, &x, &y); gaiaSetPoint (rng_out->Coords, 2, x, y); gaiaGetPoint (rng->Coords, 3, &x, &y); gaiaSetPoint (rng_out->Coords, 3, x, y); } count++; } pg = pg->Next; } if (count == 0) { gaiaFreeGeomColl (result); return NULL; } /* merging all triangles into the Concave Hull */ segm = result; if (p_cache != NULL) result = gaiaUnaryUnion_r (p_cache, segm); else result = gaiaUnaryUnion (segm); gaiaFreeGeomColl (segm); if (!result) return NULL; if (result->FirstPolygon == NULL) { gaiaFreeGeomColl (result); return NULL; } if (allow_holes) return result; /* suppressing any interior hole */ segm = result; result = concave_hull_no_holes (segm); gaiaFreeGeomColl (segm); if (!result) return NULL; if (result->FirstPolygon == NULL) { gaiaFreeGeomColl (result); return NULL; } return result; } SPATIALITE_PRIVATE void * concave_hull_build (void *p_first, int dimension_model, double factor, int allow_holes) { return concave_hull_build_common (NULL, p_first, dimension_model, factor, allow_holes); } SPATIALITE_PRIVATE void * concave_hull_build_r (const void *p_cache, void *p_first, int dimension_model, double factor, int allow_holes) { return concave_hull_build_common (p_cache, p_first, dimension_model, factor, allow_holes); } #endif /* end GEOS advanced features */ libspatialite-4.3.0a/src/gaiageo/lex.GeoJson.c0000664000175000017500000017254312544707704016140 00000000000000 #line 3 "lex.GeoJson.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; #endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST #endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T typedef void *yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) are macros in the reentrant scanner. */ #define yyin yyg->yyin_r #define yyout yyg->yyout_r #define yyextra yyg->yyextra_r #define yyleng yyg->yyleng_r #define yytext yyg->yytext_r #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) #define yy_flex_debug yyg->yy_flex_debug_r /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yyg->yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yyg->yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE GeoJsonrestart(yyin ,yyscanner ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = yyg->yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via GeoJsonrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] void GeoJsonrestart (FILE * input_file, yyscan_t yyscanner); void GeoJson_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); YY_BUFFER_STATE GeoJson_create_buffer (FILE * file, int size, yyscan_t yyscanner); void GeoJson_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void GeoJson_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void GeoJsonpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); void GeoJsonpop_buffer_state (yyscan_t yyscanner); static void GeoJsonensure_buffer_stack (yyscan_t yyscanner); static void GeoJson_load_buffer_state (yyscan_t yyscanner); static void GeoJson_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner); #define YY_FLUSH_BUFFER GeoJson_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) YY_BUFFER_STATE GeoJson_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner); YY_BUFFER_STATE GeoJson_scan_string (yyconst char *yy_str, yyscan_t yyscanner); YY_BUFFER_STATE GeoJson_scan_bytes (yyconst char *bytes, int len, yyscan_t yyscanner); void *GeoJsonalloc (yy_size_t, yyscan_t yyscanner); void *GeoJsonrealloc (void *, yy_size_t, yyscan_t yyscanner); void GeoJsonfree (void *, yyscan_t yyscanner); #define yy_new_buffer GeoJson_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ GeoJsonensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ GeoJson_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ GeoJsonensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ GeoJson_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ typedef unsigned char YY_CHAR; typedef int yy_state_type; #define yytext_ptr yytext_r static yy_state_type yy_get_previous_state (yyscan_t yyscanner); static yy_state_type yy_try_NUL_trans (yy_state_type current_state, yyscan_t yyscanner); static int yy_get_next_buffer (yyscan_t yyscanner); static void yy_fatal_error (yyconst char msg[], yyscan_t yyscanner); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yyg->yytext_ptr = yy_bp; \ yyleng = (size_t) (yy_cp - yy_bp); \ yyg->yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; #define YY_NUM_RULES 27 #define YY_END_OF_BUFFER 28 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static yyconst flex_int16_t yy_accept[182] = { 0, 0, 0, 28, 26, 24, 25, 26, 26, 4, 26, 1, 5, 8, 9, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, 0, 10, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 20, 0, 0, 12, 15, 0, 0, 0, 0, 11, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 3, 0 }; static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 7, 8, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 1, 1, 1, 1, 1, 1, 1, 1, 11, 1, 12, 1, 13, 1, 1, 1, 1, 14, 15, 1, 1, 16, 1, 1, 17, 1, 1, 1, 1, 1, 1, 1, 18, 1, 19, 1, 1, 1, 20, 21, 22, 23, 24, 25, 26, 1, 27, 1, 1, 28, 29, 30, 31, 32, 1, 33, 34, 35, 36, 1, 1, 37, 38, 1, 39, 1, 40, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static yyconst flex_int32_t yy_meta[41] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static yyconst flex_int16_t yy_base[183] = { 0, 0, 39, 203, 204, 204, 204, 68, 193, 204, 4, 3, 204, 204, 204, 204, 204, 185, 176, 172, 162, 166, 175, 0, 171, 174, 160, 154, 158, 6, 11, 8, 181, 12, 172, 157, 157, 158, 0, 154, 153, 149, 151, 152, 149, 147, 148, 168, 167, 166, 161, 144, 148, 136, 140, 131, 131, 134, 162, 136, 140, 131, 138, 151, 151, 150, 148, 133, 139, 128, 119, 127, 148, 128, 204, 126, 145, 124, 143, 115, 15, 110, 109, 16, 139, 111, 204, 114, 105, 204, 106, 204, 112, 128, 25, 103, 102, 107, 102, 204, 102, 101, 97, 94, 106, 204, 89, 99, 95, 8, 120, 103, 95, 94, 110, 108, 88, 93, 86, 77, 204, 79, 89, 88, 88, 79, 83, 91, 72, 80, 81, 68, 67, 75, 69, 92, 60, 89, 61, 57, 84, 83, 61, 57, 204, 44, 204, 46, 71, 204, 204, 64, 49, 45, 67, 204, 48, 47, 38, 204, 34, 31, 39, 30, 36, 58, 51, 29, 204, 47, 25, 38, 49, 21, 204, 24, 16, 43, 16, 47, 204, 204, 0 }; static yyconst flex_int16_t yy_def[183] = { 0, 182, 182, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 0, 181 }; static yyconst flex_int16_t yy_nxt[245] = { 0, 4, 5, 6, 7, 8, 9, 10, 30, 11, 12, 32, 33, 31, 47, 29, 48, 31, 13, 14, 32, 33, 93, 17, 94, 179, 177, 54, 55, 105, 97, 40, 98, 41, 94, 118, 119, 176, 175, 15, 16, 5, 6, 7, 8, 9, 10, 28, 11, 12, 178, 180, 179, 174, 173, 172, 179, 13, 14, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 15, 16, 17, 18, 19, 20, 21, 152, 151, 150, 149, 22, 23, 148, 147, 146, 24, 145, 144, 143, 25, 142, 26, 141, 140, 27, 28, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 94, 104, 103, 102, 101, 100, 99, 96, 95, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 65, 64, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 49, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 53, 52, 51, 50, 49, 46, 45, 44, 43, 42, 39, 38, 37, 36, 35, 34, 29, 181, 3, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181 }; static yyconst flex_int16_t yy_chk[245] = { 0, 182, 1, 1, 1, 1, 1, 1, 10, 1, 1, 11, 11, 10, 29, 29, 31, 31, 1, 1, 33, 33, 80, 30, 80, 178, 176, 38, 38, 94, 83, 23, 83, 23, 94, 109, 109, 175, 173, 1, 1, 2, 2, 2, 2, 2, 2, 30, 2, 2, 177, 179, 177, 172, 171, 170, 179, 2, 2, 169, 167, 166, 165, 164, 163, 162, 161, 160, 158, 157, 156, 154, 153, 152, 151, 148, 147, 145, 2, 2, 7, 7, 7, 7, 7, 143, 142, 141, 140, 7, 7, 139, 138, 137, 7, 136, 135, 134, 7, 133, 7, 132, 131, 7, 7, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 108, 107, 106, 104, 103, 102, 101, 100, 98, 97, 96, 95, 93, 92, 90, 88, 87, 85, 84, 82, 81, 79, 78, 77, 76, 75, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 37, 36, 35, 34, 32, 28, 27, 26, 25, 24, 22, 21, 20, 19, 18, 17, 8, 3, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181 }; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET /* geoJsonLexer.l -- GeoJSON parser - FLEX config version 2.4, 2011 May 16 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define YY_NO_INPUT 1 /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINTM, * Flex would match both POINT and POINTM, but since POINTM is the longer * of the two tokens, FLEX will match POINTM. */ #define INITIAL 0 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include #endif #define YY_EXTRA_TYPE struct geoJson_data * /* Holds the entire state of the reentrant scanner. */ struct yyguts_t { /* User-defined. Not touched by flex. */ YY_EXTRA_TYPE yyextra_r; /* The rest are the same as the globals declared in the non-reentrant scanner. */ FILE *yyin_r, *yyout_r; size_t yy_buffer_stack_top; /**< index of top of stack. */ size_t yy_buffer_stack_max; /**< capacity of stack. */ YY_BUFFER_STATE *yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; int yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; int yy_did_buffer_switch_on_eof; int yy_start_stack_ptr; int yy_start_stack_depth; int *yy_start_stack; yy_state_type yy_last_accepting_state; char *yy_last_accepting_cpos; int yylineno_r; int yy_flex_debug_r; char *yytext_r; int yy_more_flag; int yy_more_len; }; /* end struct yyguts_t */ static int yy_init_globals (yyscan_t yyscanner); int GeoJsonlex_init (yyscan_t * scanner); int GeoJsonlex_init_extra (YY_EXTRA_TYPE user_defined, yyscan_t * scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int GeoJsonlex_destroy (yyscan_t yyscanner); int GeoJsonget_debug (yyscan_t yyscanner); void GeoJsonset_debug (int debug_flag, yyscan_t yyscanner); YY_EXTRA_TYPE GeoJsonget_extra (yyscan_t yyscanner); void GeoJsonset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner); FILE *GeoJsonget_in (yyscan_t yyscanner); void GeoJsonset_in (FILE * in_str, yyscan_t yyscanner); FILE *GeoJsonget_out (yyscan_t yyscanner); void GeoJsonset_out (FILE * out_str, yyscan_t yyscanner); int GeoJsonget_leng (yyscan_t yyscanner); char *GeoJsonget_text (yyscan_t yyscanner); int GeoJsonget_lineno (yyscan_t yyscanner); void GeoJsonset_lineno (int line_number, yyscan_t yyscanner); int GeoJsonget_column (yyscan_t yyscanner); void GeoJsonset_column (int column_no, yyscan_t yyscanner); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int GeoJsonwrap (yyscan_t yyscanner); #else extern int GeoJsonwrap (yyscan_t yyscanner); #endif #endif #ifndef yytext_ptr static void yy_flex_strncpy (char *, yyconst char *, int, yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *, yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner); #else static int input (yyscan_t yyscanner); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ unsigned n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int GeoJsonlex (yyscan_t yyscanner); #define YY_DECL int GeoJsonlex (yyscan_t yyscanner) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_init) { yyg->yy_init = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if (!yyg->yy_start) yyg->yy_start = 1; /* first start state */ if (!yyin) yyin = stdin; if (!yyout) yyout = stdout; if (!YY_CURRENT_BUFFER) { GeoJsonensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = GeoJson_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } GeoJson_load_buffer_state (yyscanner); } while (1) /* loops until end-of-file is reached */ { yy_cp = yyg->yy_c_buf_p; /* Support of yytext. */ *yy_cp = yyg->yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = yyg->yy_start; yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI (*yy_cp)]; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 182) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while (yy_base[yy_current_state] != 204); yy_find_action: yy_act = yy_accept[yy_current_state]; if (yy_act == 0) { /* have to back up */ yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch (yy_act) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yyg->yy_hold_char; yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; goto yy_find_action; case 1: YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->geoJson_col += (int) strlen (yytext); GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = atof (yytext); return GEOJSON_NUM; } YY_BREAK case 2:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->geoJson_col += (int) strlen (yytext); GeoJsonget_extra (yyscanner)->GeoJsonLval.ival = atoi (yytext + 6); return GEOJSON_SHORT_SRID; } YY_BREAK case 3:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->geoJson_col += (int) strlen (yytext); GeoJsonget_extra (yyscanner)->GeoJsonLval.ival = atoi (yytext + 22); return GEOJSON_LONG_SRID; } YY_BREAK case 4:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_COMMA; } YY_BREAK case 5:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_COLON; } YY_BREAK case 6:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_OPEN_BRACE; } YY_BREAK case 7:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_CLOSE_BRACE; } YY_BREAK case 8:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_OPEN_BRACKET; } YY_BREAK case 9:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_CLOSE_BRACKET; } YY_BREAK case 10:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_TYPE; } YY_BREAK case 11:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_COORDS; } YY_BREAK case 12:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_GEOMS; } YY_BREAK case 13:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_BBOX; } YY_BREAK case 14:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_NAME; } YY_BREAK case 15:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_PROPS; } YY_BREAK case 16:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_CRS; } YY_BREAK case 17:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_POINT; } YY_BREAK case 18:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_LINESTRING; } YY_BREAK case 19:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_POLYGON; } YY_BREAK case 20:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_MULTIPOINT; } YY_BREAK case 21:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_MULTILINESTRING; } YY_BREAK case 22:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_MULTIPOLYGON; } YY_BREAK case 23:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->GeoJsonLval.dval = 0; return GEOJSON_GEOMETRYCOLLECTION; } YY_BREAK case 24:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->geoJson_col += (int) strlen (yytext); } /* ignore but count white space */ YY_BREAK case 25: /* rule 25 can match eol */ YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->geoJson_col = 0; GeoJsonget_extra (yyscanner)->geoJson_line++; } YY_BREAK case 26:YY_RULE_SETUP { GeoJsonget_extra (yyscanner)->geoJson_col += (int) strlen (yytext); return -1; } YY_BREAK case 27:YY_RULE_SETUP ECHO; YY_BREAK case YY_STATE_EOF (INITIAL):yyterminate (); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yyg->yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * GeoJsonlex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if (yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) { /* This was really a NUL. */ yy_state_type yy_next_state; yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans (yy_current_state, yyscanner); yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; if (yy_next_state) { /* Consume the NUL. */ yy_cp = ++yyg->yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yyg->yy_c_buf_p; goto yy_find_action; } } else switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_END_OF_FILE: { yyg->yy_did_buffer_switch_on_eof = 0; if (GeoJsonwrap (yyscanner)) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF (YY_START); goto do_action; } else { if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yyg->yy_c_buf_p = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg-> yy_n_chars]; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR ("fatal flex scanner internal error--no action found"); } /* end of action switch */ } /* end of scanning one token */ } /* end of GeoJsonlex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = yyg->yytext_ptr; register int number_to_move, i; int ret_val; if (yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1]) YY_FATAL_ERROR ("fatal flex scanner internal error--end of buffer missed"); if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0) { /* Don't try to fill the buffer, so this is an EOF. */ if (yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; for (i = 0; i < number_to_move; ++i) *(dest++) = *(source++); if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while (num_to_read <= 0) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER; int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); if (b->yy_is_our_buffer) { int new_size = b->yy_buf_size * 2; if (new_size <= 0) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ GeoJsonrealloc ((void *) b->yy_ch_buf, b->yy_buf_size + 2, yyscanner); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if (!b->yy_ch_buf) YY_FATAL_ERROR ("fatal error - scanner input buffer overflow"); yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if (num_to_read > YY_READ_BUF_SIZE) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT ((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), yyg->yy_n_chars, (size_t) num_to_read); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } if (yyg->yy_n_chars == 0) { if (number_to_move == YY_MORE_ADJ) { ret_val = EOB_ACT_END_OF_FILE; GeoJsonrestart (yyin, yyscanner); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) GeoJsonrealloc ((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, new_size, yyscanner); if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in yy_get_next_buffer()"); } yyg->yy_n_chars += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (yyscan_t yyscanner) { register yy_state_type yy_current_state; register char *yy_cp; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_current_state = yyg->yy_start; for (yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI (*yy_cp)] : 1); if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 182) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state, yyscan_t yyscanner) { register int yy_is_jam; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* This var may be unused depending upon options. */ register char *yy_cp = yyg->yy_c_buf_p; register YY_CHAR yy_c = 1; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 182) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 181); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner) #else static int input (yyscan_t yyscanner) #endif { int c; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; *yyg->yy_c_buf_p = yyg->yy_hold_char; if (*yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if (yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) /* This was really a NUL. */ *yyg->yy_c_buf_p = '\0'; else { /* need more input */ int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; ++yyg->yy_c_buf_p; switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ GeoJsonrestart (yyin, yyscanner); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if (GeoJsonwrap (yyscanner)) return EOF; if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; #ifdef __cplusplus return yyinput (yyscanner); #else return input (yyscanner); #endif } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + offset; break; } } } c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ yyg->yy_hold_char = *++yyg->yy_c_buf_p; return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ void GeoJsonrestart (FILE * input_file, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) { GeoJsonensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = GeoJson_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } GeoJson_init_buffer (YY_CURRENT_BUFFER, input_file, yyscanner); GeoJson_load_buffer_state (yyscanner); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ void GeoJson_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* TODO. We should be able to replace this entire function body * with * GeoJsonpop_buffer_state(); * GeoJsonpush_buffer_state(new_buffer); */ GeoJsonensure_buffer_stack (yyscanner); if (YY_CURRENT_BUFFER == new_buffer) return; if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } YY_CURRENT_BUFFER_LVALUE = new_buffer; GeoJson_load_buffer_state (yyscanner); /* We don't actually know whether we did this switch during * EOF (GeoJsonwrap()) processing, but the only time this flag * is looked at is after GeoJsonwrap() is called, so it's safe * to go ahead and always set it. */ yyg->yy_did_buffer_switch_on_eof = 1; } static void GeoJson_load_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; yyg->yy_hold_char = *yyg->yy_c_buf_p; } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * @param yyscanner The scanner object. * @return the allocated buffer state. */ YY_BUFFER_STATE GeoJson_create_buffer (FILE * file, int size, yyscan_t yyscanner) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) GeoJsonalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in GeoJson_create_buffer()"); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) GeoJsonalloc (b->yy_buf_size + 2, yyscanner); if (!b->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in GeoJson_create_buffer()"); b->yy_is_our_buffer = 1; GeoJson_init_buffer (b, file, yyscanner); return b; } /** Destroy the buffer. * @param b a buffer created with GeoJson_create_buffer() * @param yyscanner The scanner object. */ void GeoJson_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; if (b == YY_CURRENT_BUFFER) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if (b->yy_is_our_buffer) GeoJsonfree ((void *) b->yy_ch_buf, yyscanner); GeoJsonfree ((void *) b, yyscanner); } #ifndef __cplusplus extern int isatty (int); #endif /* __cplusplus */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a GeoJsonrestart() or at EOF. */ static void GeoJson_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner) { int oerrno = errno; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; GeoJson_flush_buffer (b, yyscanner); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then GeoJson_init_buffer was _probably_ * called from GeoJsonrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER) { b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty (fileno (file)) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * @param yyscanner The scanner object. */ void GeoJson_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if (b == YY_CURRENT_BUFFER) GeoJson_load_buffer_state (yyscanner); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * @param yyscanner The scanner object. */ void GeoJsonpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (new_buffer == NULL) return; GeoJsonensure_buffer_stack (yyscanner); /* This block is copied from GeoJson_switch_to_buffer. */ if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) yyg->yy_buffer_stack_top++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from GeoJson_switch_to_buffer. */ GeoJson_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * @param yyscanner The scanner object. */ void GeoJsonpop_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return; GeoJson_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; if (yyg->yy_buffer_stack_top > 0) --yyg->yy_buffer_stack_top; if (YY_CURRENT_BUFFER) { GeoJson_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void GeoJsonensure_buffer_stack (yyscan_t yyscanner) { int num_to_alloc; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_buffer_stack) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; yyg->yy_buffer_stack = (struct yy_buffer_state **) GeoJsonalloc (num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in GeoJsonensure_buffer_stack()"); memset (yyg->yy_buffer_stack, 0, num_to_alloc * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; yyg->yy_buffer_stack_top = 0; return; } if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1) { /* Increase the buffer to prepare for a possible push. */ int grow_size = 8 /* arbitrary grow size */ ; num_to_alloc = yyg->yy_buffer_stack_max + grow_size; yyg->yy_buffer_stack = (struct yy_buffer_state **) GeoJsonrealloc (yyg->yy_buffer_stack, num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in GeoJsonensure_buffer_stack()"); /* zero only the new slots. */ memset (yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE GeoJson_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner) { YY_BUFFER_STATE b; if (size < 2 || base[size - 2] != YY_END_OF_BUFFER_CHAR || base[size - 1] != YY_END_OF_BUFFER_CHAR) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) GeoJsonalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in GeoJson_scan_buffer()"); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; GeoJson_switch_to_buffer (b, yyscanner); return b; } /** Setup the input buffer state to scan a string. The next call to GeoJsonlex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * @param yyscanner The scanner object. * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * GeoJson_scan_bytes() instead. */ YY_BUFFER_STATE GeoJson_scan_string (yyconst char *yystr, yyscan_t yyscanner) { return GeoJson_scan_bytes (yystr, strlen (yystr), yyscanner); } /** Setup the input buffer state to scan the given bytes. The next call to GeoJsonlex() will * scan from a @e copy of @a bytes. * @param bytes the byte buffer to scan * @param len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE GeoJson_scan_bytes (yyconst char *yybytes, int _yybytes_len, yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; buf = (char *) GeoJsonalloc (n, yyscanner); if (!buf) YY_FATAL_ERROR ("out of dynamic memory in GeoJson_scan_bytes()"); for (i = 0; i < _yybytes_len; ++i) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR; b = GeoJson_scan_buffer (buf, n, yyscanner); if (!b) YY_FATAL_ERROR ("bad buffer in GeoJson_scan_bytes()"); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yy_fatal_error (yyconst char *msg, yyscan_t yyscanner) { (void) fprintf (stderr, "%s\n", msg); exit (YY_EXIT_FAILURE); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = yyg->yy_hold_char; \ yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ yyg->yy_hold_char = *yyg->yy_c_buf_p; \ *yyg->yy_c_buf_p = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ YY_EXTRA_TYPE GeoJsonget_extra (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyextra; } /** Get the current line number. * @param yyscanner The scanner object. */ int GeoJsonget_lineno (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yylineno; } /** Get the current column number. * @param yyscanner The scanner object. */ int GeoJsonget_column (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yycolumn; } /** Get the input stream. * @param yyscanner The scanner object. */ FILE * GeoJsonget_in (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyin; } /** Get the output stream. * @param yyscanner The scanner object. */ FILE * GeoJsonget_out (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyout; } /** Get the length of the current token. * @param yyscanner The scanner object. */ int GeoJsonget_leng (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyleng; } /** Get the current token. * @param yyscanner The scanner object. */ char * GeoJsonget_text (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yytext; } /** Set the user-defined data. This data is never touched by the scanner. * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ void GeoJsonset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyextra = user_defined; } /** Set the current line number. * @param line_number * @param yyscanner The scanner object. */ void GeoJsonset_lineno (int line_number, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* lineno is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("GeoJsonset_lineno called with no buffer", yyscanner); yylineno = line_number; } /** Set the current column. * @param line_number * @param yyscanner The scanner object. */ void GeoJsonset_column (int column_no, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* column is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("GeoJsonset_column called with no buffer", yyscanner); yycolumn = column_no; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * @param yyscanner The scanner object. * @see GeoJson_switch_to_buffer */ void GeoJsonset_in (FILE * in_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyin = in_str; } void GeoJsonset_out (FILE * out_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyout = out_str; } int GeoJsonget_debug (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yy_flex_debug; } void GeoJsonset_debug (int bdebug, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_flex_debug = bdebug; } /* Accessor methods for yylval and yylloc */ /* User-visible API */ /* GeoJsonlex_init is special because it creates the scanner itself, so it is * the ONLY reentrant function that doesn't take the scanner as the last argument. * That's why we explicitly handle the declaration, instead of using our macros. */ int GeoJsonlex_init (yyscan_t * ptr_yy_globals) { if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) GeoJsonalloc (sizeof (struct yyguts_t), NULL); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); return yy_init_globals (*ptr_yy_globals); } /* GeoJsonlex_init_extra has the same functionality as GeoJsonlex_init, but follows the * convention of taking the scanner as the last argument. Note however, that * this is a *pointer* to a scanner, as it will be allocated by this call (and * is the reason, too, why this function also must handle its own declaration). * The user defined value in the first argument will be available to GeoJsonalloc in * the yyextra field. */ int GeoJsonlex_init_extra (YY_EXTRA_TYPE yy_user_defined, yyscan_t * ptr_yy_globals) { struct yyguts_t dummy_yyguts; GeoJsonset_extra (yy_user_defined, &dummy_yyguts); if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) GeoJsonalloc (sizeof (struct yyguts_t), &dummy_yyguts); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); GeoJsonset_extra (yy_user_defined, *ptr_yy_globals); return yy_init_globals (*ptr_yy_globals); } static int yy_init_globals (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Initialization is the same as for the non-reentrant scanner. * This function is called from GeoJsonlex_destroy(), so don't allocate here. */ yyg->yy_buffer_stack = 0; yyg->yy_buffer_stack_top = 0; yyg->yy_buffer_stack_max = 0; yyg->yy_c_buf_p = (char *) 0; yyg->yy_init = 0; yyg->yy_start = 0; yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; yyg->yy_start_stack = NULL; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = (FILE *) 0; yyout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * GeoJsonlex_init() */ return 0; } /* GeoJsonlex_destroy is for both reentrant and non-reentrant scanners. */ int GeoJsonlex_destroy (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Pop the buffer stack, destroying each element. */ while (YY_CURRENT_BUFFER) { GeoJson_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; GeoJsonpop_buffer_state (yyscanner); } /* Destroy the stack itself. */ GeoJsonfree (yyg->yy_buffer_stack, yyscanner); yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ GeoJsonfree (yyg->yy_start_stack, yyscanner); yyg->yy_start_stack = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * GeoJsonlex() is called, initialization will occur. */ yy_init_globals (yyscanner); /* Destroy the main struct (reentrant only). */ GeoJsonfree (yyscanner, yyscanner); yyscanner = NULL; return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char *s1, yyconst char *s2, int n, yyscan_t yyscanner) { register int i; for (i = 0; i < n; ++i) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *s, yyscan_t yyscanner) { register int n; for (n = 0; s[n]; ++n) ; return n; } #endif void * GeoJsonalloc (yy_size_t size, yyscan_t yyscanner) { return (void *) malloc (size); } void * GeoJsonrealloc (void *ptr, yy_size_t size, yyscan_t yyscanner) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc ((char *) ptr, size); } void GeoJsonfree (void *ptr, yyscan_t yyscanner) { free ((char *) ptr); /* see GeoJsonrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" int GeoJsonwrap (yyscan_t yyscanner) { return 1; } libspatialite-4.3.0a/src/gaiageo/lex.Kml.c0000664000175000017500000015450212544707704015312 00000000000000 #line 3 "lex.Kml.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; #endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST #endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T typedef void *yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) are macros in the reentrant scanner. */ #define yyin yyg->yyin_r #define yyout yyg->yyout_r #define yyextra yyg->yyextra_r #define yyleng yyg->yyleng_r #define yytext yyg->yytext_r #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) #define yy_flex_debug yyg->yy_flex_debug_r /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yyg->yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yyg->yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE Kmlrestart(yyin ,yyscanner ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = yyg->yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via Kmlrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] void Kmlrestart (FILE * input_file, yyscan_t yyscanner); void Kml_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); YY_BUFFER_STATE Kml_create_buffer (FILE * file, int size, yyscan_t yyscanner); void Kml_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void Kml_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void Kmlpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); void Kmlpop_buffer_state (yyscan_t yyscanner); static void Kmlensure_buffer_stack (yyscan_t yyscanner); static void Kml_load_buffer_state (yyscan_t yyscanner); static void Kml_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner); #define YY_FLUSH_BUFFER Kml_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) YY_BUFFER_STATE Kml_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner); YY_BUFFER_STATE Kml_scan_string (yyconst char *yy_str, yyscan_t yyscanner); YY_BUFFER_STATE Kml_scan_bytes (yyconst char *bytes, int len, yyscan_t yyscanner); void *Kmlalloc (yy_size_t, yyscan_t yyscanner); void *Kmlrealloc (void *, yy_size_t, yyscan_t yyscanner); void Kmlfree (void *, yyscan_t yyscanner); #define yy_new_buffer Kml_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ Kmlensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ Kml_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ Kmlensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ Kml_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ typedef unsigned char YY_CHAR; typedef int yy_state_type; #define yytext_ptr yytext_r static yy_state_type yy_get_previous_state (yyscan_t yyscanner); static yy_state_type yy_try_NUL_trans (yy_state_type current_state, yyscan_t yyscanner); static int yy_get_next_buffer (yyscan_t yyscanner); static void yy_fatal_error (yyconst char msg[], yyscan_t yyscanner); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yyg->yytext_ptr = yy_bp; \ yyleng = (size_t) (yy_cp - yy_bp); \ yyg->yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; #define YY_NUM_RULES 11 #define YY_END_OF_BUFFER 12 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static yyconst flex_int16_t yy_accept[19] = { 0, 5, 5, 12, 10, 8, 9, 10, 5, 1, 3, 2, 4, 7, 0, 6, 5, 7, 0 }; static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 1, 9, 10, 11, 1, 1, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 1, 1, 1, 12, 1, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static yyconst flex_int32_t yy_meta[13] = { 0, 1, 1, 1, 1, 2, 1, 3, 4, 5, 1, 5, 4 }; static yyconst flex_int16_t yy_base[22] = { 0, 0, 0, 23, 24, 24, 24, 18, 0, 24, 24, 24, 24, 0, 17, 24, 0, 0, 24, 12, 15, 16 }; static yyconst flex_int16_t yy_def[22] = { 0, 18, 1, 18, 18, 18, 18, 19, 20, 18, 18, 18, 18, 21, 19, 18, 20, 21, 0, 18, 18, 18 }; static yyconst flex_int16_t yy_nxt[37] = { 0, 4, 5, 6, 7, 8, 9, 8, 4, 10, 11, 12, 13, 14, 14, 14, 14, 16, 16, 17, 17, 15, 15, 18, 3, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }; static yyconst flex_int16_t yy_chk[37] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 19, 19, 19, 19, 20, 20, 21, 21, 14, 7, 3, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET /* kmlLexer.l -- KML parser - FLEX config version 2.4, 2011 June 14 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define YY_NO_INPUT 1 /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINTM, * Flex would match both POINT and POINTM, but since POINTM is the longer * of the two tokens, FLEX will match POINTM. */ #define INITIAL 0 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include #endif #define YY_EXTRA_TYPE struct kml_data * /* Holds the entire state of the reentrant scanner. */ struct yyguts_t { /* User-defined. Not touched by flex. */ YY_EXTRA_TYPE yyextra_r; /* The rest are the same as the globals declared in the non-reentrant scanner. */ FILE *yyin_r, *yyout_r; size_t yy_buffer_stack_top; /**< index of top of stack. */ size_t yy_buffer_stack_max; /**< capacity of stack. */ YY_BUFFER_STATE *yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; int yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; int yy_did_buffer_switch_on_eof; int yy_start_stack_ptr; int yy_start_stack_depth; int *yy_start_stack; yy_state_type yy_last_accepting_state; char *yy_last_accepting_cpos; int yylineno_r; int yy_flex_debug_r; char *yytext_r; int yy_more_flag; int yy_more_len; }; /* end struct yyguts_t */ static int yy_init_globals (yyscan_t yyscanner); int Kmllex_init (yyscan_t * scanner); int Kmllex_init_extra (YY_EXTRA_TYPE user_defined, yyscan_t * scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int Kmllex_destroy (yyscan_t yyscanner); int Kmlget_debug (yyscan_t yyscanner); void Kmlset_debug (int debug_flag, yyscan_t yyscanner); YY_EXTRA_TYPE Kmlget_extra (yyscan_t yyscanner); void Kmlset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner); FILE *Kmlget_in (yyscan_t yyscanner); void Kmlset_in (FILE * in_str, yyscan_t yyscanner); FILE *Kmlget_out (yyscan_t yyscanner); void Kmlset_out (FILE * out_str, yyscan_t yyscanner); int Kmlget_leng (yyscan_t yyscanner); char *Kmlget_text (yyscan_t yyscanner); int Kmlget_lineno (yyscan_t yyscanner); void Kmlset_lineno (int line_number, yyscan_t yyscanner); int Kmlget_column (yyscan_t yyscanner); void Kmlset_column (int column_no, yyscan_t yyscanner); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int Kmlwrap (yyscan_t yyscanner); #else extern int Kmlwrap (yyscan_t yyscanner); #endif #endif #ifndef yytext_ptr static void yy_flex_strncpy (char *, yyconst char *, int, yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *, yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner); #else static int input (yyscan_t yyscanner); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ unsigned n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int Kmllex (yyscan_t yyscanner); #define YY_DECL int Kmllex (yyscan_t yyscanner) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_init) { yyg->yy_init = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if (!yyg->yy_start) yyg->yy_start = 1; /* first start state */ if (!yyin) yyin = stdin; if (!yyout) yyout = stdout; if (!YY_CURRENT_BUFFER) { Kmlensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = Kml_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } Kml_load_buffer_state (yyscanner); } while (1) /* loops until end-of-file is reached */ { yy_cp = yyg->yy_c_buf_p; /* Support of yytext. */ *yy_cp = yyg->yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = yyg->yy_start; yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI (*yy_cp)]; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 19) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while (yy_base[yy_current_state] != 24); yy_find_action: yy_act = yy_accept[yy_current_state]; if (yy_act == 0) { /* have to back up */ yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch (yy_act) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yyg->yy_hold_char; yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; goto yy_find_action; case 1: YY_RULE_SETUP { kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); return KML_END; } YY_BREAK case 2:YY_RULE_SETUP { kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); return KML_EQ; } YY_BREAK case 3:YY_RULE_SETUP { kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); return KML_OPEN; } YY_BREAK case 4:YY_RULE_SETUP { kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); return KML_CLOSE; } YY_BREAK case 5:YY_RULE_SETUP { kml_saveString (&(Kmlget_extra (yyscanner)->KmlLval.pval), yytext); return KML_COORD; } YY_BREAK case 6: /* rule 6 can match eol */ YY_RULE_SETUP { kml_saveString (&(Kmlget_extra (yyscanner)->KmlLval.pval), yytext); return KML_VALUE; } YY_BREAK case 7:YY_RULE_SETUP { kml_saveString (&(Kmlget_extra (yyscanner)->KmlLval.pval), yytext); return KML_KEYWORD; } YY_BREAK case 8:YY_RULE_SETUP { kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); Kmlget_extra (yyscanner)->kml_col += (int) strlen (yytext); } /* ignore but count white space */ YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP { kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); Kmlget_extra (yyscanner)->kml_col = 0; Kmlget_extra (yyscanner)->kml_line++; } YY_BREAK case 10:YY_RULE_SETUP { kml_freeString (&(Kmlget_extra (yyscanner)->KmlLval.pval)); Kmlget_extra (yyscanner)->kml_col += (int) strlen (yytext); return -1; } YY_BREAK case 11:YY_RULE_SETUP ECHO; YY_BREAK case YY_STATE_EOF (INITIAL):yyterminate (); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yyg->yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * Kmllex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if (yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) { /* This was really a NUL. */ yy_state_type yy_next_state; yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans (yy_current_state, yyscanner); yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; if (yy_next_state) { /* Consume the NUL. */ yy_cp = ++yyg->yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yyg->yy_c_buf_p; goto yy_find_action; } } else switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_END_OF_FILE: { yyg->yy_did_buffer_switch_on_eof = 0; if (Kmlwrap (yyscanner)) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF (YY_START); goto do_action; } else { if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yyg->yy_c_buf_p = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg-> yy_n_chars]; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR ("fatal flex scanner internal error--no action found"); } /* end of action switch */ } /* end of scanning one token */ } /* end of Kmllex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = yyg->yytext_ptr; register int number_to_move, i; int ret_val; if (yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1]) YY_FATAL_ERROR ("fatal flex scanner internal error--end of buffer missed"); if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0) { /* Don't try to fill the buffer, so this is an EOF. */ if (yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; for (i = 0; i < number_to_move; ++i) *(dest++) = *(source++); if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while (num_to_read <= 0) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER; int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); if (b->yy_is_our_buffer) { int new_size = b->yy_buf_size * 2; if (new_size <= 0) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ Kmlrealloc ((void *) b->yy_ch_buf, b->yy_buf_size + 2, yyscanner); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if (!b->yy_ch_buf) YY_FATAL_ERROR ("fatal error - scanner input buffer overflow"); yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if (num_to_read > YY_READ_BUF_SIZE) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT ((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), yyg->yy_n_chars, (size_t) num_to_read); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } if (yyg->yy_n_chars == 0) { if (number_to_move == YY_MORE_ADJ) { ret_val = EOB_ACT_END_OF_FILE; Kmlrestart (yyin, yyscanner); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) Kmlrealloc ((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, new_size, yyscanner); if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in yy_get_next_buffer()"); } yyg->yy_n_chars += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (yyscan_t yyscanner) { register yy_state_type yy_current_state; register char *yy_cp; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_current_state = yyg->yy_start; for (yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI (*yy_cp)] : 1); if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 19) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state, yyscan_t yyscanner) { register int yy_is_jam; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* This var may be unused depending upon options. */ register char *yy_cp = yyg->yy_c_buf_p; register YY_CHAR yy_c = 1; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 19) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 18); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner) #else static int input (yyscan_t yyscanner) #endif { int c; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; *yyg->yy_c_buf_p = yyg->yy_hold_char; if (*yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if (yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) /* This was really a NUL. */ *yyg->yy_c_buf_p = '\0'; else { /* need more input */ int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; ++yyg->yy_c_buf_p; switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ Kmlrestart (yyin, yyscanner); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if (Kmlwrap (yyscanner)) return EOF; if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; #ifdef __cplusplus return yyinput (yyscanner); #else return input (yyscanner); #endif } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + offset; break; } } } c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ yyg->yy_hold_char = *++yyg->yy_c_buf_p; return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ void Kmlrestart (FILE * input_file, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) { Kmlensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = Kml_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } Kml_init_buffer (YY_CURRENT_BUFFER, input_file, yyscanner); Kml_load_buffer_state (yyscanner); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ void Kml_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* TODO. We should be able to replace this entire function body * with * Kmlpop_buffer_state(); * Kmlpush_buffer_state(new_buffer); */ Kmlensure_buffer_stack (yyscanner); if (YY_CURRENT_BUFFER == new_buffer) return; if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } YY_CURRENT_BUFFER_LVALUE = new_buffer; Kml_load_buffer_state (yyscanner); /* We don't actually know whether we did this switch during * EOF (Kmlwrap()) processing, but the only time this flag * is looked at is after Kmlwrap() is called, so it's safe * to go ahead and always set it. */ yyg->yy_did_buffer_switch_on_eof = 1; } static void Kml_load_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; yyg->yy_hold_char = *yyg->yy_c_buf_p; } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * @param yyscanner The scanner object. * @return the allocated buffer state. */ YY_BUFFER_STATE Kml_create_buffer (FILE * file, int size, yyscan_t yyscanner) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) Kmlalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in Kml_create_buffer()"); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) Kmlalloc (b->yy_buf_size + 2, yyscanner); if (!b->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in Kml_create_buffer()"); b->yy_is_our_buffer = 1; Kml_init_buffer (b, file, yyscanner); return b; } /** Destroy the buffer. * @param b a buffer created with Kml_create_buffer() * @param yyscanner The scanner object. */ void Kml_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; if (b == YY_CURRENT_BUFFER) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if (b->yy_is_our_buffer) Kmlfree ((void *) b->yy_ch_buf, yyscanner); Kmlfree ((void *) b, yyscanner); } #ifndef __cplusplus extern int isatty (int); #endif /* __cplusplus */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a Kmlrestart() or at EOF. */ static void Kml_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner) { int oerrno = errno; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; Kml_flush_buffer (b, yyscanner); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then Kml_init_buffer was _probably_ * called from Kmlrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER) { b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty (fileno (file)) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * @param yyscanner The scanner object. */ void Kml_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if (b == YY_CURRENT_BUFFER) Kml_load_buffer_state (yyscanner); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * @param yyscanner The scanner object. */ void Kmlpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (new_buffer == NULL) return; Kmlensure_buffer_stack (yyscanner); /* This block is copied from Kml_switch_to_buffer. */ if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) yyg->yy_buffer_stack_top++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from Kml_switch_to_buffer. */ Kml_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * @param yyscanner The scanner object. */ void Kmlpop_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return; Kml_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; if (yyg->yy_buffer_stack_top > 0) --yyg->yy_buffer_stack_top; if (YY_CURRENT_BUFFER) { Kml_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void Kmlensure_buffer_stack (yyscan_t yyscanner) { int num_to_alloc; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_buffer_stack) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; yyg->yy_buffer_stack = (struct yy_buffer_state **) Kmlalloc (num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in Kmlensure_buffer_stack()"); memset (yyg->yy_buffer_stack, 0, num_to_alloc * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; yyg->yy_buffer_stack_top = 0; return; } if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1) { /* Increase the buffer to prepare for a possible push. */ int grow_size = 8 /* arbitrary grow size */ ; num_to_alloc = yyg->yy_buffer_stack_max + grow_size; yyg->yy_buffer_stack = (struct yy_buffer_state **) Kmlrealloc (yyg->yy_buffer_stack, num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in Kmlensure_buffer_stack()"); /* zero only the new slots. */ memset (yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE Kml_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner) { YY_BUFFER_STATE b; if (size < 2 || base[size - 2] != YY_END_OF_BUFFER_CHAR || base[size - 1] != YY_END_OF_BUFFER_CHAR) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) Kmlalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in Kml_scan_buffer()"); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; Kml_switch_to_buffer (b, yyscanner); return b; } /** Setup the input buffer state to scan a string. The next call to Kmllex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * @param yyscanner The scanner object. * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * Kml_scan_bytes() instead. */ YY_BUFFER_STATE Kml_scan_string (yyconst char *yystr, yyscan_t yyscanner) { return Kml_scan_bytes (yystr, strlen (yystr), yyscanner); } /** Setup the input buffer state to scan the given bytes. The next call to Kmllex() will * scan from a @e copy of @a bytes. * @param bytes the byte buffer to scan * @param len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE Kml_scan_bytes (yyconst char *yybytes, int _yybytes_len, yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; buf = (char *) Kmlalloc (n, yyscanner); if (!buf) YY_FATAL_ERROR ("out of dynamic memory in Kml_scan_bytes()"); for (i = 0; i < _yybytes_len; ++i) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR; b = Kml_scan_buffer (buf, n, yyscanner); if (!b) YY_FATAL_ERROR ("bad buffer in Kml_scan_bytes()"); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yy_fatal_error (yyconst char *msg, yyscan_t yyscanner) { (void) fprintf (stderr, "%s\n", msg); exit (YY_EXIT_FAILURE); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = yyg->yy_hold_char; \ yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ yyg->yy_hold_char = *yyg->yy_c_buf_p; \ *yyg->yy_c_buf_p = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ YY_EXTRA_TYPE Kmlget_extra (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyextra; } /** Get the current line number. * @param yyscanner The scanner object. */ int Kmlget_lineno (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yylineno; } /** Get the current column number. * @param yyscanner The scanner object. */ int Kmlget_column (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yycolumn; } /** Get the input stream. * @param yyscanner The scanner object. */ FILE * Kmlget_in (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyin; } /** Get the output stream. * @param yyscanner The scanner object. */ FILE * Kmlget_out (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyout; } /** Get the length of the current token. * @param yyscanner The scanner object. */ int Kmlget_leng (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyleng; } /** Get the current token. * @param yyscanner The scanner object. */ char * Kmlget_text (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yytext; } /** Set the user-defined data. This data is never touched by the scanner. * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ void Kmlset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyextra = user_defined; } /** Set the current line number. * @param line_number * @param yyscanner The scanner object. */ void Kmlset_lineno (int line_number, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* lineno is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("Kmlset_lineno called with no buffer", yyscanner); yylineno = line_number; } /** Set the current column. * @param line_number * @param yyscanner The scanner object. */ void Kmlset_column (int column_no, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* column is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("Kmlset_column called with no buffer", yyscanner); yycolumn = column_no; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * @param yyscanner The scanner object. * @see Kml_switch_to_buffer */ void Kmlset_in (FILE * in_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyin = in_str; } void Kmlset_out (FILE * out_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyout = out_str; } int Kmlget_debug (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yy_flex_debug; } void Kmlset_debug (int bdebug, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_flex_debug = bdebug; } /* Accessor methods for yylval and yylloc */ /* User-visible API */ /* Kmllex_init is special because it creates the scanner itself, so it is * the ONLY reentrant function that doesn't take the scanner as the last argument. * That's why we explicitly handle the declaration, instead of using our macros. */ int Kmllex_init (yyscan_t * ptr_yy_globals) { if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) Kmlalloc (sizeof (struct yyguts_t), NULL); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); return yy_init_globals (*ptr_yy_globals); } /* Kmllex_init_extra has the same functionality as Kmllex_init, but follows the * convention of taking the scanner as the last argument. Note however, that * this is a *pointer* to a scanner, as it will be allocated by this call (and * is the reason, too, why this function also must handle its own declaration). * The user defined value in the first argument will be available to Kmlalloc in * the yyextra field. */ int Kmllex_init_extra (YY_EXTRA_TYPE yy_user_defined, yyscan_t * ptr_yy_globals) { struct yyguts_t dummy_yyguts; Kmlset_extra (yy_user_defined, &dummy_yyguts); if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) Kmlalloc (sizeof (struct yyguts_t), &dummy_yyguts); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); Kmlset_extra (yy_user_defined, *ptr_yy_globals); return yy_init_globals (*ptr_yy_globals); } static int yy_init_globals (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Initialization is the same as for the non-reentrant scanner. * This function is called from Kmllex_destroy(), so don't allocate here. */ yyg->yy_buffer_stack = 0; yyg->yy_buffer_stack_top = 0; yyg->yy_buffer_stack_max = 0; yyg->yy_c_buf_p = (char *) 0; yyg->yy_init = 0; yyg->yy_start = 0; yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; yyg->yy_start_stack = NULL; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = (FILE *) 0; yyout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * Kmllex_init() */ return 0; } /* Kmllex_destroy is for both reentrant and non-reentrant scanners. */ int Kmllex_destroy (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Pop the buffer stack, destroying each element. */ while (YY_CURRENT_BUFFER) { Kml_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; Kmlpop_buffer_state (yyscanner); } /* Destroy the stack itself. */ Kmlfree (yyg->yy_buffer_stack, yyscanner); yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ Kmlfree (yyg->yy_start_stack, yyscanner); yyg->yy_start_stack = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * Kmllex() is called, initialization will occur. */ yy_init_globals (yyscanner); /* Destroy the main struct (reentrant only). */ Kmlfree (yyscanner, yyscanner); yyscanner = NULL; return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char *s1, yyconst char *s2, int n, yyscan_t yyscanner) { register int i; for (i = 0; i < n; ++i) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *s, yyscan_t yyscanner) { register int n; for (n = 0; s[n]; ++n) ; return n; } #endif void * Kmlalloc (yy_size_t size, yyscan_t yyscanner) { return (void *) malloc (size); } void * Kmlrealloc (void *ptr, yy_size_t size, yyscan_t yyscanner) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc ((char *) ptr, size); } void Kmlfree (void *ptr, yyscan_t yyscanner) { free ((char *) ptr); /* see Kmlrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" int Kmlwrap (yyscan_t yyscanner) { return 1; } libspatialite-4.3.0a/src/gaiageo/lex.Gml.c0000664000175000017500000015450112544707704015305 00000000000000 #line 3 "lex.Gml.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; #endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST #endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T typedef void *yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) are macros in the reentrant scanner. */ #define yyin yyg->yyin_r #define yyout yyg->yyout_r #define yyextra yyg->yyextra_r #define yyleng yyg->yyleng_r #define yytext yyg->yytext_r #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) #define yy_flex_debug yyg->yy_flex_debug_r /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yyg->yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yyg->yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE Gmlrestart(yyin ,yyscanner ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = yyg->yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via Gmlrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] void Gmlrestart (FILE * input_file, yyscan_t yyscanner); void Gml_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); YY_BUFFER_STATE Gml_create_buffer (FILE * file, int size, yyscan_t yyscanner); void Gml_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void Gml_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void Gmlpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); void Gmlpop_buffer_state (yyscan_t yyscanner); static void Gmlensure_buffer_stack (yyscan_t yyscanner); static void Gml_load_buffer_state (yyscan_t yyscanner); static void Gml_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner); #define YY_FLUSH_BUFFER Gml_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) YY_BUFFER_STATE Gml_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner); YY_BUFFER_STATE Gml_scan_string (yyconst char *yy_str, yyscan_t yyscanner); YY_BUFFER_STATE Gml_scan_bytes (yyconst char *bytes, int len, yyscan_t yyscanner); void *Gmlalloc (yy_size_t, yyscan_t yyscanner); void *Gmlrealloc (void *, yy_size_t, yyscan_t yyscanner); void Gmlfree (void *, yyscan_t yyscanner); #define yy_new_buffer Gml_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ Gmlensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ Gml_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ Gmlensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ Gml_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ typedef unsigned char YY_CHAR; typedef int yy_state_type; #define yytext_ptr yytext_r static yy_state_type yy_get_previous_state (yyscan_t yyscanner); static yy_state_type yy_try_NUL_trans (yy_state_type current_state, yyscan_t yyscanner); static int yy_get_next_buffer (yyscan_t yyscanner); static void yy_fatal_error (yyconst char msg[], yyscan_t yyscanner); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yyg->yytext_ptr = yy_bp; \ yyleng = (size_t) (yy_cp - yy_bp); \ yyg->yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; #define YY_NUM_RULES 11 #define YY_END_OF_BUFFER 12 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static yyconst flex_int16_t yy_accept[19] = { 0, 5, 5, 12, 10, 8, 9, 10, 5, 1, 3, 2, 4, 7, 0, 6, 5, 7, 0 }; static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 1, 9, 10, 11, 1, 1, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 1, 1, 1, 12, 1, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static yyconst flex_int32_t yy_meta[13] = { 0, 1, 1, 1, 1, 2, 1, 3, 4, 5, 1, 5, 4 }; static yyconst flex_int16_t yy_base[22] = { 0, 0, 0, 23, 24, 24, 24, 18, 0, 24, 24, 24, 24, 0, 17, 24, 0, 0, 24, 12, 15, 16 }; static yyconst flex_int16_t yy_def[22] = { 0, 18, 1, 18, 18, 18, 18, 19, 20, 18, 18, 18, 18, 21, 19, 18, 20, 21, 0, 18, 18, 18 }; static yyconst flex_int16_t yy_nxt[37] = { 0, 4, 5, 6, 7, 8, 9, 8, 4, 10, 11, 12, 13, 14, 14, 14, 14, 16, 16, 17, 17, 15, 15, 18, 3, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }; static yyconst flex_int16_t yy_chk[37] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 19, 19, 19, 19, 20, 20, 21, 21, 14, 7, 3, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET /* gmlLexer.l -- GML parser - FLEX config version 2.4, 2011 June 3 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #define YY_NO_INPUT 1 /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINTM, * Flex would match both POINT and POINTM, but since POINTM is the longer * of the two tokens, FLEX will match POINTM. */ #define INITIAL 0 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include #endif #define YY_EXTRA_TYPE struct gml_data * /* Holds the entire state of the reentrant scanner. */ struct yyguts_t { /* User-defined. Not touched by flex. */ YY_EXTRA_TYPE yyextra_r; /* The rest are the same as the globals declared in the non-reentrant scanner. */ FILE *yyin_r, *yyout_r; size_t yy_buffer_stack_top; /**< index of top of stack. */ size_t yy_buffer_stack_max; /**< capacity of stack. */ YY_BUFFER_STATE *yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; int yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; int yy_did_buffer_switch_on_eof; int yy_start_stack_ptr; int yy_start_stack_depth; int *yy_start_stack; yy_state_type yy_last_accepting_state; char *yy_last_accepting_cpos; int yylineno_r; int yy_flex_debug_r; char *yytext_r; int yy_more_flag; int yy_more_len; }; /* end struct yyguts_t */ static int yy_init_globals (yyscan_t yyscanner); int Gmllex_init (yyscan_t * scanner); int Gmllex_init_extra (YY_EXTRA_TYPE user_defined, yyscan_t * scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int Gmllex_destroy (yyscan_t yyscanner); int Gmlget_debug (yyscan_t yyscanner); void Gmlset_debug (int debug_flag, yyscan_t yyscanner); YY_EXTRA_TYPE Gmlget_extra (yyscan_t yyscanner); void Gmlset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner); FILE *Gmlget_in (yyscan_t yyscanner); void Gmlset_in (FILE * in_str, yyscan_t yyscanner); FILE *Gmlget_out (yyscan_t yyscanner); void Gmlset_out (FILE * out_str, yyscan_t yyscanner); int Gmlget_leng (yyscan_t yyscanner); char *Gmlget_text (yyscan_t yyscanner); int Gmlget_lineno (yyscan_t yyscanner); void Gmlset_lineno (int line_number, yyscan_t yyscanner); int Gmlget_column (yyscan_t yyscanner); void Gmlset_column (int column_no, yyscan_t yyscanner); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int Gmlwrap (yyscan_t yyscanner); #else extern int Gmlwrap (yyscan_t yyscanner); #endif #endif #ifndef yytext_ptr static void yy_flex_strncpy (char *, yyconst char *, int, yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *, yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner); #else static int input (yyscan_t yyscanner); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ unsigned n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int Gmllex (yyscan_t yyscanner); #define YY_DECL int Gmllex (yyscan_t yyscanner) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_init) { yyg->yy_init = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if (!yyg->yy_start) yyg->yy_start = 1; /* first start state */ if (!yyin) yyin = stdin; if (!yyout) yyout = stdout; if (!YY_CURRENT_BUFFER) { Gmlensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = Gml_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } Gml_load_buffer_state (yyscanner); } while (1) /* loops until end-of-file is reached */ { yy_cp = yyg->yy_c_buf_p; /* Support of yytext. */ *yy_cp = yyg->yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = yyg->yy_start; yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI (*yy_cp)]; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 19) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while (yy_base[yy_current_state] != 24); yy_find_action: yy_act = yy_accept[yy_current_state]; if (yy_act == 0) { /* have to back up */ yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch (yy_act) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yyg->yy_hold_char; yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; goto yy_find_action; case 1: YY_RULE_SETUP { gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); return GML_END; } YY_BREAK case 2:YY_RULE_SETUP { gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); return GML_EQ; } YY_BREAK case 3:YY_RULE_SETUP { gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); return GML_OPEN; } YY_BREAK case 4:YY_RULE_SETUP { gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); return GML_CLOSE; } YY_BREAK case 5:YY_RULE_SETUP { gml_saveString (&(Gmlget_extra (yyscanner)->GmlLval.pval), yytext); return GML_COORD; } YY_BREAK case 6: /* rule 6 can match eol */ YY_RULE_SETUP { gml_saveString (&(Gmlget_extra (yyscanner)->GmlLval.pval), yytext); return GML_VALUE; } YY_BREAK case 7:YY_RULE_SETUP { gml_saveString (&(Gmlget_extra (yyscanner)->GmlLval.pval), yytext); return GML_KEYWORD; } YY_BREAK case 8:YY_RULE_SETUP { gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); Gmlget_extra (yyscanner)->gml_col += (int) strlen (yytext); } /* ignore but count white space */ YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP { gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); Gmlget_extra (yyscanner)->gml_col = 0; Gmlget_extra (yyscanner)->gml_line++; } YY_BREAK case 10:YY_RULE_SETUP { gml_freeString (&(Gmlget_extra (yyscanner)->GmlLval.pval)); Gmlget_extra (yyscanner)->gml_col += (int) strlen (yytext); return -1; } YY_BREAK case 11:YY_RULE_SETUP ECHO; YY_BREAK case YY_STATE_EOF (INITIAL):yyterminate (); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yyg->yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * Gmllex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if (yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) { /* This was really a NUL. */ yy_state_type yy_next_state; yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans (yy_current_state, yyscanner); yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; if (yy_next_state) { /* Consume the NUL. */ yy_cp = ++yyg->yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yyg->yy_c_buf_p; goto yy_find_action; } } else switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_END_OF_FILE: { yyg->yy_did_buffer_switch_on_eof = 0; if (Gmlwrap (yyscanner)) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF (YY_START); goto do_action; } else { if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yyg->yy_c_buf_p = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg-> yy_n_chars]; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR ("fatal flex scanner internal error--no action found"); } /* end of action switch */ } /* end of scanning one token */ } /* end of Gmllex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = yyg->yytext_ptr; register int number_to_move, i; int ret_val; if (yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1]) YY_FATAL_ERROR ("fatal flex scanner internal error--end of buffer missed"); if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0) { /* Don't try to fill the buffer, so this is an EOF. */ if (yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; for (i = 0; i < number_to_move; ++i) *(dest++) = *(source++); if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while (num_to_read <= 0) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER; int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); if (b->yy_is_our_buffer) { int new_size = b->yy_buf_size * 2; if (new_size <= 0) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ Gmlrealloc ((void *) b->yy_ch_buf, b->yy_buf_size + 2, yyscanner); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if (!b->yy_ch_buf) YY_FATAL_ERROR ("fatal error - scanner input buffer overflow"); yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if (num_to_read > YY_READ_BUF_SIZE) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT ((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), yyg->yy_n_chars, (size_t) num_to_read); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } if (yyg->yy_n_chars == 0) { if (number_to_move == YY_MORE_ADJ) { ret_val = EOB_ACT_END_OF_FILE; Gmlrestart (yyin, yyscanner); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) Gmlrealloc ((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, new_size, yyscanner); if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in yy_get_next_buffer()"); } yyg->yy_n_chars += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (yyscan_t yyscanner) { register yy_state_type yy_current_state; register char *yy_cp; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_current_state = yyg->yy_start; for (yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI (*yy_cp)] : 1); if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 19) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state, yyscan_t yyscanner) { register int yy_is_jam; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* This var may be unused depending upon options. */ register char *yy_cp = yyg->yy_c_buf_p; register YY_CHAR yy_c = 1; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 19) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 18); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner) #else static int input (yyscan_t yyscanner) #endif { int c; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; *yyg->yy_c_buf_p = yyg->yy_hold_char; if (*yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if (yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) /* This was really a NUL. */ *yyg->yy_c_buf_p = '\0'; else { /* need more input */ int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; ++yyg->yy_c_buf_p; switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ Gmlrestart (yyin, yyscanner); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if (Gmlwrap (yyscanner)) return EOF; if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; #ifdef __cplusplus return yyinput (yyscanner); #else return input (yyscanner); #endif } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + offset; break; } } } c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ yyg->yy_hold_char = *++yyg->yy_c_buf_p; return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ void Gmlrestart (FILE * input_file, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) { Gmlensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = Gml_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } Gml_init_buffer (YY_CURRENT_BUFFER, input_file, yyscanner); Gml_load_buffer_state (yyscanner); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ void Gml_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* TODO. We should be able to replace this entire function body * with * Gmlpop_buffer_state(); * Gmlpush_buffer_state(new_buffer); */ Gmlensure_buffer_stack (yyscanner); if (YY_CURRENT_BUFFER == new_buffer) return; if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } YY_CURRENT_BUFFER_LVALUE = new_buffer; Gml_load_buffer_state (yyscanner); /* We don't actually know whether we did this switch during * EOF (Gmlwrap()) processing, but the only time this flag * is looked at is after Gmlwrap() is called, so it's safe * to go ahead and always set it. */ yyg->yy_did_buffer_switch_on_eof = 1; } static void Gml_load_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; yyg->yy_hold_char = *yyg->yy_c_buf_p; } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * @param yyscanner The scanner object. * @return the allocated buffer state. */ YY_BUFFER_STATE Gml_create_buffer (FILE * file, int size, yyscan_t yyscanner) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) Gmlalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in Gml_create_buffer()"); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) Gmlalloc (b->yy_buf_size + 2, yyscanner); if (!b->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in Gml_create_buffer()"); b->yy_is_our_buffer = 1; Gml_init_buffer (b, file, yyscanner); return b; } /** Destroy the buffer. * @param b a buffer created with Gml_create_buffer() * @param yyscanner The scanner object. */ void Gml_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; if (b == YY_CURRENT_BUFFER) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if (b->yy_is_our_buffer) Gmlfree ((void *) b->yy_ch_buf, yyscanner); Gmlfree ((void *) b, yyscanner); } #ifndef __cplusplus extern int isatty (int); #endif /* __cplusplus */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a Gmlrestart() or at EOF. */ static void Gml_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner) { int oerrno = errno; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; Gml_flush_buffer (b, yyscanner); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then Gml_init_buffer was _probably_ * called from Gmlrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER) { b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty (fileno (file)) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * @param yyscanner The scanner object. */ void Gml_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if (b == YY_CURRENT_BUFFER) Gml_load_buffer_state (yyscanner); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * @param yyscanner The scanner object. */ void Gmlpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (new_buffer == NULL) return; Gmlensure_buffer_stack (yyscanner); /* This block is copied from Gml_switch_to_buffer. */ if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) yyg->yy_buffer_stack_top++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from Gml_switch_to_buffer. */ Gml_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * @param yyscanner The scanner object. */ void Gmlpop_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return; Gml_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; if (yyg->yy_buffer_stack_top > 0) --yyg->yy_buffer_stack_top; if (YY_CURRENT_BUFFER) { Gml_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void Gmlensure_buffer_stack (yyscan_t yyscanner) { int num_to_alloc; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_buffer_stack) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; yyg->yy_buffer_stack = (struct yy_buffer_state **) Gmlalloc (num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in Gmlensure_buffer_stack()"); memset (yyg->yy_buffer_stack, 0, num_to_alloc * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; yyg->yy_buffer_stack_top = 0; return; } if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1) { /* Increase the buffer to prepare for a possible push. */ int grow_size = 8 /* arbitrary grow size */ ; num_to_alloc = yyg->yy_buffer_stack_max + grow_size; yyg->yy_buffer_stack = (struct yy_buffer_state **) Gmlrealloc (yyg->yy_buffer_stack, num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in Gmlensure_buffer_stack()"); /* zero only the new slots. */ memset (yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE Gml_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner) { YY_BUFFER_STATE b; if (size < 2 || base[size - 2] != YY_END_OF_BUFFER_CHAR || base[size - 1] != YY_END_OF_BUFFER_CHAR) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) Gmlalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in Gml_scan_buffer()"); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; Gml_switch_to_buffer (b, yyscanner); return b; } /** Setup the input buffer state to scan a string. The next call to Gmllex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * @param yyscanner The scanner object. * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * Gml_scan_bytes() instead. */ YY_BUFFER_STATE Gml_scan_string (yyconst char *yystr, yyscan_t yyscanner) { return Gml_scan_bytes (yystr, strlen (yystr), yyscanner); } /** Setup the input buffer state to scan the given bytes. The next call to Gmllex() will * scan from a @e copy of @a bytes. * @param bytes the byte buffer to scan * @param len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE Gml_scan_bytes (yyconst char *yybytes, int _yybytes_len, yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; buf = (char *) Gmlalloc (n, yyscanner); if (!buf) YY_FATAL_ERROR ("out of dynamic memory in Gml_scan_bytes()"); for (i = 0; i < _yybytes_len; ++i) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR; b = Gml_scan_buffer (buf, n, yyscanner); if (!b) YY_FATAL_ERROR ("bad buffer in Gml_scan_bytes()"); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yy_fatal_error (yyconst char *msg, yyscan_t yyscanner) { (void) fprintf (stderr, "%s\n", msg); exit (YY_EXIT_FAILURE); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = yyg->yy_hold_char; \ yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ yyg->yy_hold_char = *yyg->yy_c_buf_p; \ *yyg->yy_c_buf_p = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ YY_EXTRA_TYPE Gmlget_extra (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyextra; } /** Get the current line number. * @param yyscanner The scanner object. */ int Gmlget_lineno (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yylineno; } /** Get the current column number. * @param yyscanner The scanner object. */ int Gmlget_column (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yycolumn; } /** Get the input stream. * @param yyscanner The scanner object. */ FILE * Gmlget_in (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyin; } /** Get the output stream. * @param yyscanner The scanner object. */ FILE * Gmlget_out (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyout; } /** Get the length of the current token. * @param yyscanner The scanner object. */ int Gmlget_leng (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyleng; } /** Get the current token. * @param yyscanner The scanner object. */ char * Gmlget_text (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yytext; } /** Set the user-defined data. This data is never touched by the scanner. * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ void Gmlset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyextra = user_defined; } /** Set the current line number. * @param line_number * @param yyscanner The scanner object. */ void Gmlset_lineno (int line_number, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* lineno is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("Gmlset_lineno called with no buffer", yyscanner); yylineno = line_number; } /** Set the current column. * @param line_number * @param yyscanner The scanner object. */ void Gmlset_column (int column_no, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* column is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("Gmlset_column called with no buffer", yyscanner); yycolumn = column_no; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * @param yyscanner The scanner object. * @see Gml_switch_to_buffer */ void Gmlset_in (FILE * in_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyin = in_str; } void Gmlset_out (FILE * out_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyout = out_str; } int Gmlget_debug (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yy_flex_debug; } void Gmlset_debug (int bdebug, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_flex_debug = bdebug; } /* Accessor methods for yylval and yylloc */ /* User-visible API */ /* Gmllex_init is special because it creates the scanner itself, so it is * the ONLY reentrant function that doesn't take the scanner as the last argument. * That's why we explicitly handle the declaration, instead of using our macros. */ int Gmllex_init (yyscan_t * ptr_yy_globals) { if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) Gmlalloc (sizeof (struct yyguts_t), NULL); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); return yy_init_globals (*ptr_yy_globals); } /* Gmllex_init_extra has the same functionality as Gmllex_init, but follows the * convention of taking the scanner as the last argument. Note however, that * this is a *pointer* to a scanner, as it will be allocated by this call (and * is the reason, too, why this function also must handle its own declaration). * The user defined value in the first argument will be available to Gmlalloc in * the yyextra field. */ int Gmllex_init_extra (YY_EXTRA_TYPE yy_user_defined, yyscan_t * ptr_yy_globals) { struct yyguts_t dummy_yyguts; Gmlset_extra (yy_user_defined, &dummy_yyguts); if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) Gmlalloc (sizeof (struct yyguts_t), &dummy_yyguts); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); Gmlset_extra (yy_user_defined, *ptr_yy_globals); return yy_init_globals (*ptr_yy_globals); } static int yy_init_globals (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Initialization is the same as for the non-reentrant scanner. * This function is called from Gmllex_destroy(), so don't allocate here. */ yyg->yy_buffer_stack = 0; yyg->yy_buffer_stack_top = 0; yyg->yy_buffer_stack_max = 0; yyg->yy_c_buf_p = (char *) 0; yyg->yy_init = 0; yyg->yy_start = 0; yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; yyg->yy_start_stack = NULL; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = (FILE *) 0; yyout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * Gmllex_init() */ return 0; } /* Gmllex_destroy is for both reentrant and non-reentrant scanners. */ int Gmllex_destroy (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Pop the buffer stack, destroying each element. */ while (YY_CURRENT_BUFFER) { Gml_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; Gmlpop_buffer_state (yyscanner); } /* Destroy the stack itself. */ Gmlfree (yyg->yy_buffer_stack, yyscanner); yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ Gmlfree (yyg->yy_start_stack, yyscanner); yyg->yy_start_stack = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * Gmllex() is called, initialization will occur. */ yy_init_globals (yyscanner); /* Destroy the main struct (reentrant only). */ Gmlfree (yyscanner, yyscanner); yyscanner = NULL; return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char *s1, yyconst char *s2, int n, yyscan_t yyscanner) { register int i; for (i = 0; i < n; ++i) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *s, yyscan_t yyscanner) { register int n; for (n = 0; s[n]; ++n) ; return n; } #endif void * Gmlalloc (yy_size_t size, yyscan_t yyscanner) { return (void *) malloc (size); } void * Gmlrealloc (void *ptr, yy_size_t size, yyscan_t yyscanner) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc ((char *) ptr, size); } void Gmlfree (void *ptr, yyscan_t yyscanner) { free ((char *) ptr); /* see Gmlrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" int Gmlwrap (yyscan_t yyscanner) { return 1; } libspatialite-4.3.0a/src/gaiageo/gg_wkb.c0000664000175000017500000060226012544707704015237 00000000000000/* gg_wkb.c -- Gaia common support for WKB encoded geometries version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include static void ParseWkbPoint (gaiaGeomCollPtr geo) { /* decodes a POINT from WKB */ double x; double y; if (geo->size < geo->offset + 16) return; x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); geo->offset += 16; gaiaAddPointToGeomColl (geo, x, y); } static void ParseWkbPointZ (gaiaGeomCollPtr geo) { /* decodes a POINTZ from WKB */ double x; double y; double z; if (geo->size < geo->offset + 24) return; x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); geo->offset += 24; gaiaAddPointToGeomCollXYZ (geo, x, y, z); } static void ParseWkbPointM (gaiaGeomCollPtr geo) { /* decodes a POINTM from WKB */ double x; double y; double m; if (geo->size < geo->offset + 24) return; x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); geo->offset += 24; gaiaAddPointToGeomCollXYM (geo, x, y, m); } static void ParseWkbPointZM (gaiaGeomCollPtr geo) { /* decodes a POINTZM from WKB */ double x; double y; double z; double m; if (geo->size < geo->offset + 32) return; x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 24), geo->endian, geo->endian_arch); geo->offset += 32; gaiaAddPointToGeomCollXYZM (geo, x, y, z, m); } static void ParseWkbLine (gaiaGeomCollPtr geo) { /* decodes a LINESTRING from WKB */ int points; int iv; double x; double y; gaiaLinestringPtr line; if (geo->size < geo->offset + 4) return; points = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (16 * points)) return; line = gaiaAddLinestringToGeomColl (geo, points); for (iv = 0; iv < points; iv++) { x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); gaiaSetPoint (line->Coords, iv, x, y); geo->offset += 16; } } static void ParseWkbLineZ (gaiaGeomCollPtr geo) { /* decodes a LINESTRINGZ from WKB */ int points; int iv; double x; double y; double z; gaiaLinestringPtr line; if (geo->size < geo->offset + 4) return; points = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (24 * points)) return; line = gaiaAddLinestringToGeomColl (geo, points); for (iv = 0; iv < points; iv++) { x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); gaiaSetPointXYZ (line->Coords, iv, x, y, z); geo->offset += 24; } } static void ParseWkbLineM (gaiaGeomCollPtr geo) { /* decodes a LINESTRINGM from WKB */ int points; int iv; double x; double y; double m; gaiaLinestringPtr line; if (geo->size < geo->offset + 4) return; points = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (24 * points)) return; line = gaiaAddLinestringToGeomColl (geo, points); for (iv = 0; iv < points; iv++) { x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); gaiaSetPointXYM (line->Coords, iv, x, y, m); geo->offset += 24; } } static void ParseWkbLineZM (gaiaGeomCollPtr geo) { /* decodes a LINESTRINGZM from WKB */ int points; int iv; double x; double y; double z; double m; gaiaLinestringPtr line; if (geo->size < geo->offset + 4) return; points = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (32 * points)) return; line = gaiaAddLinestringToGeomColl (geo, points); for (iv = 0; iv < points; iv++) { x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 24), geo->endian, geo->endian_arch); gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); geo->offset += 32; } } static void ParseWkbPolygon (gaiaGeomCollPtr geo) { /* decodes a POLYGON from WKB */ int rings; int nverts; int iv; int ib; double x; double y; gaiaPolygonPtr polyg = NULL; gaiaRingPtr ring; if (geo->size < geo->offset + 4) return; rings = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; for (ib = 0; ib < rings; ib++) { if (geo->size < geo->offset + 4) return; nverts = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (16 * nverts)) return; if (ib == 0) { polyg = gaiaAddPolygonToGeomColl (geo, nverts, rings - 1); ring = polyg->Exterior; } else ring = gaiaAddInteriorRing (polyg, ib - 1, nverts); for (iv = 0; iv < nverts; iv++) { x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); geo->offset += 16; gaiaSetPoint (ring->Coords, iv, x, y); } } } static void ParseWkbPolygonZ (gaiaGeomCollPtr geo) { /* decodes a POLYGONZ from WKB */ int rings; int nverts; int iv; int ib; double x; double y; double z; gaiaPolygonPtr polyg = NULL; gaiaRingPtr ring; if (geo->size < geo->offset + 4) return; rings = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; for (ib = 0; ib < rings; ib++) { if (geo->size < geo->offset + 4) return; nverts = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (24 * nverts)) return; if (ib == 0) { polyg = gaiaAddPolygonToGeomColl (geo, nverts, rings - 1); ring = polyg->Exterior; } else ring = gaiaAddInteriorRing (polyg, ib - 1, nverts); for (iv = 0; iv < nverts; iv++) { x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); geo->offset += 24; gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } } } static void ParseWkbPolygonM (gaiaGeomCollPtr geo) { /* decodes a POLYGONM from WKB */ int rings; int nverts; int iv; int ib; double x; double y; double m; gaiaPolygonPtr polyg = NULL; gaiaRingPtr ring; if (geo->size < geo->offset + 4) return; rings = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; for (ib = 0; ib < rings; ib++) { if (geo->size < geo->offset + 4) return; nverts = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (24 * nverts)) return; if (ib == 0) { polyg = gaiaAddPolygonToGeomColl (geo, nverts, rings - 1); ring = polyg->Exterior; } else ring = gaiaAddInteriorRing (polyg, ib - 1, nverts); for (iv = 0; iv < nverts; iv++) { x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); geo->offset += 24; gaiaSetPointXYM (ring->Coords, iv, x, y, m); } } } static void ParseWkbPolygonZM (gaiaGeomCollPtr geo) { /* decodes a POLYGONZM from WKB */ int rings; int nverts; int iv; int ib; double x; double y; double z; double m; gaiaPolygonPtr polyg = NULL; gaiaRingPtr ring; if (geo->size < geo->offset + 4) return; rings = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; for (ib = 0; ib < rings; ib++) { if (geo->size < geo->offset + 4) return; nverts = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (32 * nverts)) return; if (ib == 0) { polyg = gaiaAddPolygonToGeomColl (geo, nverts, rings - 1); ring = polyg->Exterior; } else ring = gaiaAddInteriorRing (polyg, ib - 1, nverts); for (iv = 0; iv < nverts; iv++) { x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 24), geo->endian, geo->endian_arch); geo->offset += 32; gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } } } static void ParseCompressedWkbLine (gaiaGeomCollPtr geo) { /* decodes a COMPRESSED LINESTRING from WKB */ int points; int iv; double x; double y; double last_x = 0.0; double last_y = 0.0; float fx; float fy; gaiaLinestringPtr line; if (geo->size < geo->offset + 4) return; points = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (8 * points) + 16) return; line = gaiaAddLinestringToGeomColl (geo, points); for (iv = 0; iv < points; iv++) { if (iv == 0 || iv == (points - 1)) { /* first and last vertices are uncompressed */ x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); geo->offset += 16; } else { /* any other intermediate vertex is compressed */ fx = gaiaImportF32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); fy = gaiaImportF32 (geo->blob + (geo->offset + 4), geo->endian, geo->endian_arch); x = last_x + fx; y = last_y + fy; geo->offset += 8; } gaiaSetPoint (line->Coords, iv, x, y); last_x = x; last_y = y; } } static void ParseCompressedWkbLineZ (gaiaGeomCollPtr geo) { /* decodes a COMPRESSED LINESTRINGZ from WKB */ int points; int iv; double x; double y; double z; double last_x = 0.0; double last_y = 0.0; double last_z = 0.0; float fx; float fy; float fz; gaiaLinestringPtr line; if (geo->size < geo->offset + 4) return; points = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (12 * points) + 24) return; line = gaiaAddLinestringToGeomColl (geo, points); for (iv = 0; iv < points; iv++) { if (iv == 0 || iv == (points - 1)) { /* first and last vertices are uncompressed */ x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); geo->offset += 24; } else { /* any other intermediate vertex is compressed */ fx = gaiaImportF32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); fy = gaiaImportF32 (geo->blob + (geo->offset + 4), geo->endian, geo->endian_arch); fz = gaiaImportF32 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); x = last_x + fx; y = last_y + fy; z = last_z + fz; geo->offset += 12; } gaiaSetPointXYZ (line->Coords, iv, x, y, z); last_x = x; last_y = y; last_z = z; } } static void ParseCompressedWkbLineM (gaiaGeomCollPtr geo) { /* decodes a COMPRESSED LINESTRINGM from WKB */ int points; int iv; double x; double y; double m; double last_x = 0.0; double last_y = 0.0; float fx; float fy; gaiaLinestringPtr line; if (geo->size < geo->offset + 4) return; points = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (16 * points) + 16) return; line = gaiaAddLinestringToGeomColl (geo, points); for (iv = 0; iv < points; iv++) { if (iv == 0 || iv == (points - 1)) { /* first and last vertices are uncompressed */ x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); geo->offset += 24; } else { /* any other intermediate vertex is compressed */ fx = gaiaImportF32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); fy = gaiaImportF32 (geo->blob + (geo->offset + 4), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); x = last_x + fx; y = last_y + fy; geo->offset += 16; } gaiaSetPointXYM (line->Coords, iv, x, y, m); last_x = x; last_y = y; } } static void ParseCompressedWkbLineZM (gaiaGeomCollPtr geo) { /* decodes a COMPRESSED LINESTRINGZM from WKB */ int points; int iv; double x; double y; double z; double m; double last_x = 0.0; double last_y = 0.0; double last_z = 0.0; float fx; float fy; float fz; gaiaLinestringPtr line; if (geo->size < geo->offset + 4) return; points = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (20 * points) + 24) return; line = gaiaAddLinestringToGeomColl (geo, points); for (iv = 0; iv < points; iv++) { if (iv == 0 || iv == (points - 1)) { /* first and last vertices are uncompressed */ x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 24), geo->endian, geo->endian_arch); geo->offset += 32; } else { /* any other intermediate vertex is compressed */ fx = gaiaImportF32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); fy = gaiaImportF32 (geo->blob + (geo->offset + 4), geo->endian, geo->endian_arch); fz = gaiaImportF32 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 12), geo->endian, geo->endian_arch); x = last_x + fx; y = last_y + fy; z = last_z + fz; geo->offset += 20; } gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); last_x = x; last_y = y; last_z = z; } } static void ParseCompressedWkbPolygon (gaiaGeomCollPtr geo) { /* decodes a COMPRESSED POLYGON from WKB */ int rings; int nverts; int iv; int ib; double x; double y; double last_x = 0.0; double last_y = 0.0; float fx; float fy; gaiaPolygonPtr polyg = NULL; gaiaRingPtr ring; if (geo->size < geo->offset + 4) return; rings = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; for (ib = 0; ib < rings; ib++) { if (geo->size < geo->offset + 4) return; nverts = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (8 * nverts) + 16) return; if (ib == 0) { polyg = gaiaAddPolygonToGeomColl (geo, nverts, rings - 1); ring = polyg->Exterior; } else ring = gaiaAddInteriorRing (polyg, ib - 1, nverts); for (iv = 0; iv < nverts; iv++) { if (iv == 0 || iv == (nverts - 1)) { /* first and last vertices are uncompressed */ x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); geo->offset += 16; } else { /* any other intermediate vertex is compressed */ fx = gaiaImportF32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); fy = gaiaImportF32 (geo->blob + (geo->offset + 4), geo->endian, geo->endian_arch); x = last_x + fx; y = last_y + fy; geo->offset += 8; } gaiaSetPoint (ring->Coords, iv, x, y); last_x = x; last_y = y; } } } static void ParseCompressedWkbPolygonZ (gaiaGeomCollPtr geo) { /* decodes a COMPRESSED POLYGONZ from WKB */ int rings; int nverts; int iv; int ib; double x; double y; double z; double last_x = 0.0; double last_y = 0.0; double last_z = 0.0; float fx; float fy; float fz; gaiaPolygonPtr polyg = NULL; gaiaRingPtr ring; if (geo->size < geo->offset + 4) return; rings = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; for (ib = 0; ib < rings; ib++) { if (geo->size < geo->offset + 4) return; nverts = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (12 * nverts) + 24) return; if (ib == 0) { polyg = gaiaAddPolygonToGeomColl (geo, nverts, rings - 1); ring = polyg->Exterior; } else ring = gaiaAddInteriorRing (polyg, ib - 1, nverts); for (iv = 0; iv < nverts; iv++) { if (iv == 0 || iv == (nverts - 1)) { /* first and last vertices are uncompressed */ x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); geo->offset += 24; } else { /* any other intermediate vertex is compressed */ fx = gaiaImportF32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); fy = gaiaImportF32 (geo->blob + (geo->offset + 4), geo->endian, geo->endian_arch); fz = gaiaImportF32 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); x = last_x + fx; y = last_y + fy; z = last_z + fz; geo->offset += 12; } gaiaSetPointXYZ (ring->Coords, iv, x, y, z); last_x = x; last_y = y; last_z = z; } } } static void ParseCompressedWkbPolygonM (gaiaGeomCollPtr geo) { /* decodes a COMPRESSED POLYGONM from WKB */ int rings; int nverts; int iv; int ib; double x; double y; double m; double last_x = 0.0; double last_y = 0.0; float fx; float fy; gaiaPolygonPtr polyg = NULL; gaiaRingPtr ring; if (geo->size < geo->offset + 4) return; rings = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; for (ib = 0; ib < rings; ib++) { if (geo->size < geo->offset + 4) return; nverts = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (16 * nverts) + 16) return; if (ib == 0) { polyg = gaiaAddPolygonToGeomColl (geo, nverts, rings - 1); ring = polyg->Exterior; } else ring = gaiaAddInteriorRing (polyg, ib - 1, nverts); for (iv = 0; iv < nverts; iv++) { if (iv == 0 || iv == (nverts - 1)) { /* first and last vertices are uncompressed */ x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); geo->offset += 24; } else { /* any other intermediate vertex is compressed */ fx = gaiaImportF32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); fy = gaiaImportF32 (geo->blob + (geo->offset + 4), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); x = last_x + fx; y = last_y + fy; geo->offset += 16; } gaiaSetPointXYM (ring->Coords, iv, x, y, m); last_x = x; last_y = y; } } } static void ParseCompressedWkbPolygonZM (gaiaGeomCollPtr geo) { /* decodes a COMPRESSED POLYGONZM from WKB */ int rings; int nverts; int iv; int ib; double x; double y; double z; double m; double last_x = 0.0; double last_y = 0.0; double last_z = 0.0; float fx; float fy; float fz; gaiaPolygonPtr polyg = NULL; gaiaRingPtr ring; if (geo->size < geo->offset + 4) return; rings = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; for (ib = 0; ib < rings; ib++) { if (geo->size < geo->offset + 4) return; nverts = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; if (geo->size < geo->offset + (20 * nverts) + 24) return; if (ib == 0) { polyg = gaiaAddPolygonToGeomColl (geo, nverts, rings - 1); ring = polyg->Exterior; } else ring = gaiaAddInteriorRing (polyg, ib - 1, nverts); for (iv = 0; iv < nverts; iv++) { if (iv == 0 || iv == (nverts - 1)) { /* first and last vertices are uncompressed */ x = gaiaImport64 (geo->blob + geo->offset, geo->endian, geo->endian_arch); y = gaiaImport64 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); z = gaiaImport64 (geo->blob + (geo->offset + 16), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 24), geo->endian, geo->endian_arch); geo->offset += 32; } else { /* any other intermediate vertex is compressed */ fx = gaiaImportF32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); fy = gaiaImportF32 (geo->blob + (geo->offset + 4), geo->endian, geo->endian_arch); fz = gaiaImportF32 (geo->blob + (geo->offset + 8), geo->endian, geo->endian_arch); m = gaiaImport64 (geo->blob + (geo->offset + 12), geo->endian, geo->endian_arch); x = last_x + fx; y = last_y + fy; z = last_z + fz; geo->offset += 20; } gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); last_x = x; last_y = y; last_z = z; } } } static void ParseWkbGeometry (gaiaGeomCollPtr geo, int isWKB) { /* decodes a MULTIxx or GEOMETRYCOLLECTION from SpatiaLite BLOB */ int entities; int type; int ie; if (geo->size < geo->offset + 4) return; entities = gaiaImport32 (geo->blob + geo->offset, geo->endian, geo->endian_arch); geo->offset += 4; for (ie = 0; ie < entities; ie++) { if (geo->size < geo->offset + 5) return; if (isWKB) { /* vanilla WKB could be encoded as mixed big-/little-endian sub-items */ if (*(geo->blob + geo->offset) == 0x01) geo->endian = GAIA_LITTLE_ENDIAN; else geo->endian = GAIA_BIG_ENDIAN; } type = gaiaImport32 (geo->blob + geo->offset + 1, geo->endian, geo->endian_arch); geo->offset += 5; switch (type) { case GAIA_POINT: ParseWkbPoint (geo); break; case GAIA_POINTZ: case GAIA_GEOSWKB_POINTZ: ParseWkbPointZ (geo); break; case GAIA_POINTM: ParseWkbPointM (geo); break; case GAIA_POINTZM: ParseWkbPointZM (geo); break; case GAIA_LINESTRING: ParseWkbLine (geo); break; case GAIA_LINESTRINGZ: case GAIA_GEOSWKB_LINESTRINGZ: ParseWkbLineZ (geo); break; case GAIA_LINESTRINGM: ParseWkbLineM (geo); break; case GAIA_LINESTRINGZM: ParseWkbLineZM (geo); break; case GAIA_POLYGON: ParseWkbPolygon (geo); break; case GAIA_POLYGONZ: case GAIA_GEOSWKB_POLYGONZ: ParseWkbPolygonZ (geo); break; case GAIA_POLYGONM: ParseWkbPolygonM (geo); break; case GAIA_POLYGONZM: ParseWkbPolygonZM (geo); break; case GAIA_COMPRESSED_LINESTRING: ParseCompressedWkbLine (geo); break; case GAIA_COMPRESSED_LINESTRINGZ: ParseCompressedWkbLineZ (geo); break; case GAIA_COMPRESSED_LINESTRINGM: ParseCompressedWkbLineM (geo); break; case GAIA_COMPRESSED_LINESTRINGZM: ParseCompressedWkbLineZM (geo); break; case GAIA_COMPRESSED_POLYGON: ParseCompressedWkbPolygon (geo); break; case GAIA_COMPRESSED_POLYGONZ: ParseCompressedWkbPolygonZ (geo); break; case GAIA_COMPRESSED_POLYGONM: ParseCompressedWkbPolygonM (geo); break; case GAIA_COMPRESSED_POLYGONZM: ParseCompressedWkbPolygonZM (geo); break; default: break; }; } } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromSpatiaLiteBlobWkbEx (const unsigned char *blob, unsigned int size, int gpkg_mode, int gpkg_amphibious) { /* decoding from SpatiaLite BLOB to GEOMETRY */ int type; int little_endian; int endian_arch = gaiaEndianArch (); gaiaGeomCollPtr geo = NULL; if (gpkg_amphibious || gpkg_mode) { #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ if (gaiaIsValidGPB (blob, size)) { geo = gaiaFromGeoPackageGeometryBlob (blob, size); if (geo != NULL) return geo; } if (gpkg_mode) return NULL; /* must accept only GPKG geometries */ #else ; #endif /* end GEOPACKAGE: supporting GPKG geometries */ } if (size < 45) return NULL; /* cannot be an internal BLOB WKB geometry */ if (*(blob + 0) != GAIA_MARK_START) return NULL; /* failed to recognize START signature */ if (*(blob + (size - 1)) != GAIA_MARK_END) return NULL; /* failed to recognize END signature */ if (*(blob + 38) != GAIA_MARK_MBR) return NULL; /* failed to recognize MBR signature */ if (*(blob + 1) == GAIA_LITTLE_ENDIAN) little_endian = 1; else if (*(blob + 1) == GAIA_BIG_ENDIAN) little_endian = 0; else return NULL; /* unknown encoding; nor little-endian neither big-endian */ type = gaiaImport32 (blob + 39, little_endian, endian_arch); geo = gaiaAllocGeomColl (); geo->Srid = gaiaImport32 (blob + 2, little_endian, endian_arch); geo->endian_arch = (char) endian_arch; geo->endian = (char) little_endian; geo->blob = blob; geo->size = size; geo->offset = 43; switch (type) { /* setting up DimensionModel */ case GAIA_POINTZ: case GAIA_LINESTRINGZ: case GAIA_POLYGONZ: case GAIA_MULTIPOINTZ: case GAIA_MULTILINESTRINGZ: case GAIA_MULTIPOLYGONZ: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_COMPRESSED_LINESTRINGZ: case GAIA_COMPRESSED_POLYGONZ: geo->DimensionModel = GAIA_XY_Z; break; case GAIA_POINTM: case GAIA_LINESTRINGM: case GAIA_POLYGONM: case GAIA_MULTIPOINTM: case GAIA_MULTILINESTRINGM: case GAIA_MULTIPOLYGONM: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_COMPRESSED_LINESTRINGM: case GAIA_COMPRESSED_POLYGONM: geo->DimensionModel = GAIA_XY_M; break; case GAIA_POINTZM: case GAIA_LINESTRINGZM: case GAIA_POLYGONZM: case GAIA_MULTIPOINTZM: case GAIA_MULTILINESTRINGZM: case GAIA_MULTIPOLYGONZM: case GAIA_GEOMETRYCOLLECTIONZM: case GAIA_COMPRESSED_LINESTRINGZM: case GAIA_COMPRESSED_POLYGONZM: geo->DimensionModel = GAIA_XY_Z_M; break; default: geo->DimensionModel = GAIA_XY; break; }; switch (type) { /* parsing elementary geometries */ case GAIA_POINT: ParseWkbPoint (geo); break; case GAIA_POINTZ: ParseWkbPointZ (geo); break; case GAIA_POINTM: ParseWkbPointM (geo); break; case GAIA_POINTZM: ParseWkbPointZM (geo); break; case GAIA_LINESTRING: ParseWkbLine (geo); break; case GAIA_LINESTRINGZ: ParseWkbLineZ (geo); break; case GAIA_LINESTRINGM: ParseWkbLineM (geo); break; case GAIA_LINESTRINGZM: ParseWkbLineZM (geo); break; case GAIA_POLYGON: ParseWkbPolygon (geo); break; case GAIA_POLYGONZ: ParseWkbPolygonZ (geo); break; case GAIA_POLYGONM: ParseWkbPolygonM (geo); break; case GAIA_POLYGONZM: ParseWkbPolygonZM (geo); break; case GAIA_COMPRESSED_LINESTRING: ParseCompressedWkbLine (geo); break; case GAIA_COMPRESSED_LINESTRINGZ: ParseCompressedWkbLineZ (geo); break; case GAIA_COMPRESSED_LINESTRINGM: ParseCompressedWkbLineM (geo); break; case GAIA_COMPRESSED_LINESTRINGZM: ParseCompressedWkbLineZM (geo); break; case GAIA_COMPRESSED_POLYGON: ParseCompressedWkbPolygon (geo); break; case GAIA_COMPRESSED_POLYGONZ: ParseCompressedWkbPolygonZ (geo); break; case GAIA_COMPRESSED_POLYGONM: ParseCompressedWkbPolygonM (geo); break; case GAIA_COMPRESSED_POLYGONZM: ParseCompressedWkbPolygonZM (geo); break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: ParseWkbGeometry (geo, 0); break; default: break; }; geo->MinX = gaiaImport64 (blob + 6, little_endian, endian_arch); geo->MinY = gaiaImport64 (blob + 14, little_endian, endian_arch); geo->MaxX = gaiaImport64 (blob + 22, little_endian, endian_arch); geo->MaxY = gaiaImport64 (blob + 30, little_endian, endian_arch); switch (type) { /* setting up DeclaredType */ case GAIA_POINT: case GAIA_POINTZ: case GAIA_POINTM: case GAIA_POINTZM: geo->DeclaredType = GAIA_POINT; break; case GAIA_LINESTRING: case GAIA_LINESTRINGZ: case GAIA_LINESTRINGM: case GAIA_LINESTRINGZM: case GAIA_COMPRESSED_LINESTRING: case GAIA_COMPRESSED_LINESTRINGZ: case GAIA_COMPRESSED_LINESTRINGM: case GAIA_COMPRESSED_LINESTRINGZM: geo->DeclaredType = GAIA_LINESTRING; break; case GAIA_POLYGON: case GAIA_POLYGONZ: case GAIA_POLYGONM: case GAIA_POLYGONZM: case GAIA_COMPRESSED_POLYGON: case GAIA_COMPRESSED_POLYGONZ: case GAIA_COMPRESSED_POLYGONM: case GAIA_COMPRESSED_POLYGONZM: geo->DeclaredType = GAIA_POLYGON; break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: geo->DeclaredType = GAIA_MULTIPOINT; break; case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: geo->DeclaredType = GAIA_MULTILINESTRING; break; case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: geo->DeclaredType = GAIA_MULTIPOLYGON; break; case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: geo->DeclaredType = GAIA_GEOMETRYCOLLECTION; break; default: geo->DeclaredType = GAIA_UNKNOWN; break; }; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromSpatiaLiteBlobWkb (const unsigned char *blob, unsigned int size) { /* * decoding from SpatiaLite BLOB to GEOMETRY * convenience method - always disabling GPKG compatibility Modes */ return gaiaFromSpatiaLiteBlobWkbEx (blob, size, 0, 0); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromSpatiaLiteBlobMbr (const unsigned char *blob, unsigned int size) { /* decoding from SpatiaLite BLOB to GEOMETRY [MBR only] */ int little_endian; int endian_arch = gaiaEndianArch (); double minx; double miny; double maxx; double maxy; gaiaGeomCollPtr geo = NULL; gaiaPolygonPtr polyg; gaiaRingPtr ring; if (size < 45) return NULL; /* cannot be an internal BLOB WKB geometry */ if (*(blob + 0) != GAIA_MARK_START) return NULL; /* failed to recognize START signature */ if (*(blob + (size - 1)) != GAIA_MARK_END) return NULL; /* failed to recognize END signature */ if (*(blob + 38) != GAIA_MARK_MBR) return NULL; /* failed to recognize MBR signature */ if (*(blob + 1) == GAIA_LITTLE_ENDIAN) little_endian = 1; else if (*(blob + 1) == GAIA_BIG_ENDIAN) little_endian = 0; else return NULL; /* unknown encoding; nor litte-endian neither big-endian */ geo = gaiaAllocGeomColl (); polyg = gaiaAddPolygonToGeomColl (geo, 5, 0); ring = polyg->Exterior; minx = gaiaImport64 (blob + 6, little_endian, endian_arch); miny = gaiaImport64 (blob + 14, little_endian, endian_arch); maxx = gaiaImport64 (blob + 22, little_endian, endian_arch); maxy = gaiaImport64 (blob + 30, little_endian, endian_arch); gaiaSetPoint (ring->Coords, 0, minx, miny); /* vertex # 1 */ gaiaSetPoint (ring->Coords, 1, maxx, miny); /* vertex # 2 */ gaiaSetPoint (ring->Coords, 2, maxx, maxy); /* vertex # 3 */ gaiaSetPoint (ring->Coords, 3, minx, maxy); /* vertex # 4 */ gaiaSetPoint (ring->Coords, 4, minx, miny); /* vertex # 5 [same as vertex # 1 to close the polygon] */ return geo; } GAIAGEO_DECLARE void gaiaToSpatiaLiteBlobWkbEx (gaiaGeomCollPtr geom, unsigned char **result, int *size, int gpkg_mode) { /* builds the SpatiaLite BLOB representation for this GEOMETRY */ int ib; int iv; double x; double y; double z = 0.0; double m = 0.0; int entities = 0; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; int type; unsigned char *ptr; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaPointPtr point = NULL; gaiaLinestringPtr line = NULL; gaiaPolygonPtr polyg = NULL; int endian_arch = gaiaEndianArch (); gaiaMbrGeometry (geom); if (gpkg_mode) { #ifdef ENABLE_GEOPACKAGE /* only if GeoPackage support is enabled */ /* GeoPackage Mode enabled */ gaiaToGPB (geom, result, size); #endif /* end GEOPACKAGE conditional */ return; } /* how many entities, and of what kind, do we have ? */ pt = geom->FirstPoint; while (pt) { point = pt; entities++; n_points++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { line = ln; entities++; n_linestrings++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { polyg = pg; entities++; n_polygons++; pg = pg->Next; } *size = 0; *result = NULL; if (n_points == 0 && n_polygons == 0 && n_linestrings == 0) return; /* ok, we can determine the geometry class */ if (n_points == 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTIPOINT) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOINTZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOINTM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOINTZM; else type = GAIA_MULTIPOINT; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_POINTZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_POINTM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_POINTZM; else type = GAIA_POINT; } } else if (n_points > 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOINTZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOINTM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOINTZM; else type = GAIA_MULTIPOINT; } } else if (n_points == 0 && n_linestrings == 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTILINESTRING) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTILINESTRINGZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTILINESTRINGM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTILINESTRINGZM; else type = GAIA_MULTILINESTRING; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_LINESTRINGZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_LINESTRINGM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_LINESTRINGZM; else type = GAIA_LINESTRING; } } else if (n_points == 0 && n_linestrings > 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTILINESTRINGZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTILINESTRINGM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTILINESTRINGZM; else type = GAIA_MULTILINESTRING; } } else if (n_points == 0 && n_linestrings == 0 && n_polygons == 1) { if (geom->DeclaredType == GAIA_MULTIPOLYGON) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOLYGONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOLYGONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOLYGONZM; else type = GAIA_MULTIPOLYGON; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_POLYGONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_POLYGONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_POLYGONZM; else type = GAIA_POLYGON; } } else if (n_points == 0 && n_linestrings == 0 && n_polygons > 1) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOLYGONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOLYGONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOLYGONZM; else type = GAIA_MULTIPOLYGON; } } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } /* and now we compute the size of BLOB */ *size = 44; /* header size */ switch (type) { case GAIA_POINT: *size += (sizeof (double) * 2); /* [x,y] coords */ break; case GAIA_POINTZ: *size += (sizeof (double) * 3); /* [x,y,z] coords */ break; case GAIA_POINTM: *size += (sizeof (double) * 3); /* [x,y,m] coords */ break; case GAIA_POINTZM: *size += (sizeof (double) * 4); /* [x,y,z,m] coords */ break; case GAIA_LINESTRING: *size += (4 + ((sizeof (double) * 2) * line->Points)); /* # points + [x,y] for each vertex */ break; case GAIA_LINESTRINGZ: *size += (4 + ((sizeof (double) * 3) * line->Points)); /* # points + [x,y,z] for each vertex */ break; case GAIA_LINESTRINGM: *size += (4 + ((sizeof (double) * 3) * line->Points)); /* # points + [x,y,m] for each vertex */ break; case GAIA_LINESTRINGZM: *size += (4 + ((sizeof (double) * 4) * line->Points)); /* # points + [x,y,z,m] for each vertex */ break; case GAIA_POLYGON: rng = polyg->Exterior; *size += (8 + ((sizeof (double) * 2) * rng->Points)); /* # rings + # points + [x.y] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; *size += (4 + ((sizeof (double) * 2) * rng->Points)); /* # points + [x,y] array - interior ring */ } break; case GAIA_POLYGONZ: rng = polyg->Exterior; *size += (8 + ((sizeof (double) * 3) * rng->Points)); /* # rings + # points + [x,y,z] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; *size += (4 + ((sizeof (double) * 3) * rng->Points)); /* # points + [x,y,z] array - interior ring */ } break; case GAIA_POLYGONM: rng = polyg->Exterior; *size += (8 + ((sizeof (double) * 3) * rng->Points)); /* # rings + # points + [x,y,m] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; *size += (4 + ((sizeof (double) * 3) * rng->Points)); /* # points + [x,y,m] array - interior ring */ } break; case GAIA_POLYGONZM: rng = polyg->Exterior; *size += (8 + ((sizeof (double) * 4) * rng->Points)); /* # rings + # points + [x,y,z,m] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; *size += (4 + ((sizeof (double) * 4) * rng->Points)); /* # points + [x,y,z,m] array - interior ring */ } break; default: /* this one is not a simple geometry; should be a MULTIxxxx or a GEOMETRYCOLLECTION */ *size += 4; /* # entities */ point = geom->FirstPoint; while (point) { *size += 5; /* entity header */ if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) *size += (sizeof (double) * 3); /* three doubles for each POINT */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (sizeof (double) * 4); /* four doubles for each POINT */ else *size += (sizeof (double) * 2); /* two doubles for each POINT */ point = point->Next; } line = geom->FirstLinestring; while (line) { *size += 5; /* entity header */ if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) *size += (4 + ((sizeof (double) * 3) * line->Points)); /* # points + [x,y,z] for each vertex */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (4 + ((sizeof (double) * 4) * line->Points)); /* # points + [x,y,z,m] for each vertex */ else *size += (4 + ((sizeof (double) * 2) * line->Points)); /* # points + [x,y] for each vertex */ line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { *size += 5; /* entity header */ rng = polyg->Exterior; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) *size += (8 + ((sizeof (double) * 3) * rng->Points)); /* # rings + # points + [x,y,z] array - exterior ring */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (8 + ((sizeof (double) * 4) * rng->Points)); /* # rings + # points + [x,y,z,m] array - exterior ring */ else *size += (8 + ((sizeof (double) * 2) * rng->Points)); /* # rings + # points + [x,y] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) *size += (4 + ((sizeof (double) * 3) * rng->Points)); /* # points + [x,y,z] array - interior ring */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (4 + ((sizeof (double) * 4) * rng->Points)); /* # points + [x,y,z,m] array - interior ring */ else *size += (4 + ((sizeof (double) * 2) * rng->Points)); /* # points + [x,y] array - interior ring */ } polyg = polyg->Next; } }; *result = malloc (*size); ptr = *result; /* and finally we build the BLOB */ switch (type) { case GAIA_POINT: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINT, 1, endian_arch); /* class POINT */ gaiaExport64 (ptr + 43, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, point->Y, 1, endian_arch); /* Y */ *(ptr + 59) = GAIA_MARK_END; /* END signature */ break; case GAIA_POINTZ: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINTZ, 1, endian_arch); /* class POINT XYZ */ gaiaExport64 (ptr + 43, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 59, point->Z, 1, endian_arch); /* Z */ *(ptr + 67) = GAIA_MARK_END; /* END signature */ break; case GAIA_POINTM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINTM, 1, endian_arch); /* class POINT XYM */ gaiaExport64 (ptr + 43, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 59, point->M, 1, endian_arch); /* M */ *(ptr + 67) = GAIA_MARK_END; /* END signature */ break; case GAIA_POINTZM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINTZM, 1, endian_arch); /* class POINT XYZM */ gaiaExport64 (ptr + 43, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 59, point->Z, 1, endian_arch); /* M */ gaiaExport64 (ptr + 67, point->M, 1, endian_arch); /* Z */ *(ptr + 75) = GAIA_MARK_END; /* END signature */ break; case GAIA_LINESTRING: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_LINESTRING, 1, endian_arch); /* class LINESTRING */ gaiaExport32 (ptr + 43, line->Points, 1, endian_arch); /* # points */ ptr += 47; for (iv = 0; iv < line->Points; iv++) { gaiaGetPoint (line->Coords, iv, &x, &y); gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); ptr += 16; } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_LINESTRINGZ: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_LINESTRINGZ, 1, endian_arch); /* class LINESTRING XYZ */ gaiaExport32 (ptr + 43, line->Points, 1, endian_arch); /* # points */ ptr += 47; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, z, 1, endian_arch); ptr += 24; } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_LINESTRINGM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_LINESTRINGM, 1, endian_arch); /* class LINESTRING XYM */ gaiaExport32 (ptr + 43, line->Points, 1, endian_arch); /* # points */ ptr += 47; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, m, 1, endian_arch); ptr += 24; } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_LINESTRINGZM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_LINESTRINGZM, 1, endian_arch); /* class LINESTRING XYZM */ gaiaExport32 (ptr + 43, line->Points, 1, endian_arch); /* # points */ ptr += 47; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, z, 1, endian_arch); gaiaExport64 (ptr + 24, m, 1, endian_arch); ptr += 32; } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_POLYGON: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POLYGON, 1, endian_arch); /* class POLYGON */ gaiaExport32 (ptr + 43, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 47, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 51; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaExport64 (ptr, x, 1, endian_arch); /* X - exterior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - exterior ring */ ptr += 16; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaExport64 (ptr, x, 1, endian_arch); /* X - interior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - interior ring */ ptr += 16; } } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_POLYGONZ: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POLYGONZ, 1, endian_arch); /* class POLYGON XYZ */ gaiaExport32 (ptr + 43, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 47, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 51; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaExport64 (ptr, x, 1, endian_arch); /* X - exterior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - exterior ring */ gaiaExport64 (ptr + 16, z, 1, endian_arch); /* Z - exterior ring */ ptr += 24; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaExport64 (ptr, x, 1, endian_arch); /* X - interior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - interior ring */ gaiaExport64 (ptr + 16, z, 1, endian_arch); /* Z - interior ring */ ptr += 24; } } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_POLYGONM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POLYGONM, 1, endian_arch); /* class POLYGON XYM */ gaiaExport32 (ptr + 43, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 47, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 51; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaExport64 (ptr, x, 1, endian_arch); /* X - exterior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - exterior ring */ gaiaExport64 (ptr + 16, m, 1, endian_arch); /* M - exterior ring */ ptr += 24; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaExport64 (ptr, x, 1, endian_arch); /* X - interior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - interior ring */ gaiaExport64 (ptr + 16, m, 1, endian_arch); /* M - interior ring */ ptr += 24; } } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_POLYGONZM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POLYGONZM, 1, endian_arch); /* class POLYGON */ gaiaExport32 (ptr + 43, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 47, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 51; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaExport64 (ptr, x, 1, endian_arch); /* X - exterior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - exterior ring */ gaiaExport64 (ptr + 16, z, 1, endian_arch); /* Z - exterior ring */ gaiaExport64 (ptr + 24, m, 1, endian_arch); /* M - exterior ring */ ptr += 32; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaExport64 (ptr, x, 1, endian_arch); /* X - interior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - interior ring */ gaiaExport64 (ptr + 16, z, 1, endian_arch); /* Z - exterior ring */ gaiaExport64 (ptr + 24, m, 1, endian_arch); /* M - exterior ring */ ptr += 32; } } *ptr = GAIA_MARK_END; /* END signature */ break; default: /* this one is a MULTIxxxx or a GEOMETRYCOLLECTION - building the main header */ *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, type, 1, endian_arch); /* geometric class */ gaiaExport32 (ptr + 43, entities, 1, endian_arch); /* # entities */ ptr += 47; point = geom->FirstPoint; while (point) { *ptr = GAIA_MARK_ENTITY; /* ENTITY signature */ if (geom->DimensionModel == GAIA_XY_Z) { gaiaExport32 (ptr + 1, GAIA_POINTZ, 1, endian_arch); /* class POINT XYZ */ gaiaExport64 (ptr + 5, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 13, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 21, point->Z, 1, endian_arch); /* Z */ ptr += 29; } else if (geom->DimensionModel == GAIA_XY_M) { gaiaExport32 (ptr + 1, GAIA_POINTM, 1, endian_arch); /* class POINT XYM */ gaiaExport64 (ptr + 5, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 13, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 21, point->M, 1, endian_arch); /* M */ ptr += 29; } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaExport32 (ptr + 1, GAIA_POINTZM, 1, endian_arch); /* class POINT XYZM */ gaiaExport64 (ptr + 5, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 13, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 21, point->Z, 1, endian_arch); /* Z */ gaiaExport64 (ptr + 29, point->M, 1, endian_arch); /* M */ ptr += 37; } else { gaiaExport32 (ptr + 1, GAIA_POINT, 1, endian_arch); /* class POINT */ gaiaExport64 (ptr + 5, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 13, point->Y, 1, endian_arch); /* Y */ ptr += 21; } point = point->Next; } line = geom->FirstLinestring; while (line) { *ptr = GAIA_MARK_ENTITY; /* ENTITY signature */ if (geom->DimensionModel == GAIA_XY_Z) gaiaExport32 (ptr + 1, GAIA_LINESTRINGZ, 1, endian_arch); /* class LINESTRING XYZ */ else if (geom->DimensionModel == GAIA_XY_M) gaiaExport32 (ptr + 1, GAIA_LINESTRINGM, 1, endian_arch); /* class LINESTRING XYM */ else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaExport32 (ptr + 1, GAIA_LINESTRINGZM, 1, endian_arch); /* class LINESTRING XYZM */ else gaiaExport32 (ptr + 1, GAIA_LINESTRING, 1, endian_arch); /* class LINESTRING */ gaiaExport32 (ptr + 5, line->Points, 1, endian_arch); /* # points */ ptr += 9; for (iv = 0; iv < line->Points; iv++) { if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, 1, endian_arch); /* X */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y */ ptr += 16; if (geom->DimensionModel == GAIA_XY_Z) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ gaiaExport64 (ptr + 8, m, 1, endian_arch); /* M */ ptr += 16; } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { *ptr = GAIA_MARK_ENTITY; /* ENTITY signature */ if (geom->DimensionModel == GAIA_XY_Z) gaiaExport32 (ptr + 1, GAIA_POLYGONZ, 1, endian_arch); /* class POLYGON XYZ */ else if (geom->DimensionModel == GAIA_XY_M) gaiaExport32 (ptr + 1, GAIA_POLYGONM, 1, endian_arch); /* class POLYGON XYM */ else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaExport32 (ptr + 1, GAIA_POLYGONZM, 1, endian_arch); /* class POLYGON XYZM */ else gaiaExport32 (ptr + 1, GAIA_POLYGON, 1, endian_arch); /* class POLYGON */ gaiaExport32 (ptr + 5, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 9, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 13; for (iv = 0; iv < rng->Points; iv++) { if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, 1, endian_arch); /* X - exterior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - exterior ring */ ptr += 16; if (geom->DimensionModel == GAIA_XY_Z) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ gaiaExport64 (ptr + 8, m, 1, endian_arch); /* M */ ptr += 16; } } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, 1, endian_arch); /* X - interior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - interior ring */ ptr += 16; if (geom->DimensionModel == GAIA_XY_Z) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ gaiaExport64 (ptr + 8, m, 1, endian_arch); /* M */ ptr += 16; } } } polyg = polyg->Next; } *ptr = GAIA_MARK_END; /* END signature */ }; } GAIAGEO_DECLARE void gaiaToSpatiaLiteBlobWkb (gaiaGeomCollPtr geom, unsigned char **result, int *size) { /* * builds the SpatiaLite BLOB representation for this GEOMETRY * convenience method - always disabling GPKG compatibility Modes */ gaiaToSpatiaLiteBlobWkbEx (geom, result, size, 0); } GAIAGEO_DECLARE void gaiaToCompressedBlobWkb (gaiaGeomCollPtr geom, unsigned char **result, int *size) { /* / builds the SpatiaLite BLOB representation for this GEOMETRY / geometry-compression will be applied to LINESTRINGs and RINGs */ int ib; int iv; double x; double y; double z; double m; double last_x = 0.0; double last_y = 0.0; double last_z = 0.0; float fx; float fy; float fz; int entities = 0; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; int type; unsigned char *ptr; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaPointPtr point = NULL; gaiaLinestringPtr line = NULL; gaiaPolygonPtr polyg = NULL; int endian_arch = gaiaEndianArch (); gaiaMbrGeometry (geom); /* how many entities, and of what kind, do we have ? */ pt = geom->FirstPoint; while (pt) { point = pt; entities++; n_points++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { line = ln; entities++; n_linestrings++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { polyg = pg; entities++; n_polygons++; pg = pg->Next; } *size = 0; *result = NULL; if (n_points == 0 && n_polygons == 0 && n_linestrings == 0) return; /* ok, we can determine the geometry class */ if (n_points == 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTIPOINT) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOINTZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOINTM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOINTZM; else type = GAIA_MULTIPOINT; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_POINTZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_POINTM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_POINTZM; else type = GAIA_POINT; } } else if (n_points > 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOINTZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOINTM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOINTZM; else type = GAIA_MULTIPOINT; } } else if (n_points == 0 && n_linestrings == 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTILINESTRING) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTILINESTRINGZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTILINESTRINGM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTILINESTRINGZM; else type = GAIA_MULTILINESTRING; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_LINESTRINGZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_LINESTRINGM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_LINESTRINGZM; else type = GAIA_LINESTRING; } } else if (n_points == 0 && n_linestrings > 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTILINESTRINGZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTILINESTRINGM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTILINESTRINGZM; else type = GAIA_MULTILINESTRING; } } else if (n_points == 0 && n_linestrings == 0 && n_polygons == 1) { if (geom->DeclaredType == GAIA_MULTIPOLYGON) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOLYGONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOLYGONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOLYGONZM; else type = GAIA_MULTIPOLYGON; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_POLYGONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_POLYGONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_POLYGONZM; else type = GAIA_POLYGON; } } else if (n_points == 0 && n_linestrings == 0 && n_polygons > 1) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOLYGONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOLYGONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOLYGONZM; else type = GAIA_MULTIPOLYGON; } } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } /* and now we compute the size of BLOB */ *size = 44; /* header size */ switch (type) { case GAIA_POINT: *size += (sizeof (double) * 2); /* [x,y] coords */ break; case GAIA_POINTZ: *size += (sizeof (double) * 3); /* [x,y,z] coords */ break; case GAIA_POINTM: *size += (sizeof (double) * 3); /* [x,y,m] coords */ break; case GAIA_POINTZM: *size += (sizeof (double) * 4); /* [x,y,z,m] coords */ break; case GAIA_LINESTRING: *size += (4 + (8 * line->Points) + 16); /* # points + [x,y] for each vertex */ break; case GAIA_LINESTRINGZ: *size += (4 + (12 * line->Points) + 24); /* # points + [x,y,z] for each vertex */ break; case GAIA_LINESTRINGM: *size += (4 + (16 * line->Points) + 16); /* # points + [x,y,m] for each vertex */ break; case GAIA_LINESTRINGZM: *size += (4 + (20 * line->Points) + 24); /* # points + [x,y,z,m] for each vertex */ break; case GAIA_POLYGON: rng = polyg->Exterior; *size += (8 + (8 * rng->Points) + 16); /* # rings + # points + [x.y] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; *size += (4 + (8 * rng->Points) + 16); /* # points + [x,y] array - interior ring */ } break; case GAIA_POLYGONZ: rng = polyg->Exterior; *size += (8 + (12 * rng->Points) + 24); /* # rings + # points + [x,y,z] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; *size += (4 + (12 * rng->Points) + 24); /* # points + [x,y,z] array - interior ring */ } break; case GAIA_POLYGONM: rng = polyg->Exterior; *size += (8 + (16 * rng->Points) + 16); /* # rings + # points + [x,y,m] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; *size += (4 + (16 * rng->Points) + 16); /* # points + [x,y,m] array - interior ring */ } break; case GAIA_POLYGONZM: rng = polyg->Exterior; *size += (8 + (20 * rng->Points) + 24); /* # rings + # points + [x,y,z,m] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; *size += (4 + (20 * rng->Points) + 24); /* # points + [x,y,z,m] array - interior ring */ } break; default: /* this one is not a simple geometry; should be a MULTIxxxx or a GEOMETRYCOLLECTION */ *size += 4; /* # entities */ point = geom->FirstPoint; while (point) { *size += 5; /* entity header */ if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) *size += (sizeof (double) * 3); /* three doubles for each POINT */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (sizeof (double) * 4); /* four doubles for each POINT */ else *size += (sizeof (double) * 2); /* two doubles for each POINT */ point = point->Next; } line = geom->FirstLinestring; while (line) { *size += 5; /* entity header */ if (geom->DimensionModel == GAIA_XY_Z) *size += (4 + (12 * line->Points) + 24); /* # points + [x,y,z] for each vertex */ else if (geom->DimensionModel == GAIA_XY_M) *size += (4 + (16 * line->Points) + 16); /* # points + [x,y,m] for each vertex */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (4 + (20 * line->Points) + 24); /* # points + [x,y,z,m] for each vertex */ else *size += (4 + (8 * line->Points) + 16); /* # points + [x,y] for each vertex */ line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { *size += 5; /* entity header */ rng = polyg->Exterior; if (geom->DimensionModel == GAIA_XY_Z) *size += (8 + (12 * rng->Points) + 24); /* # rings + # points + [x,y,z] array - exterior ring */ else if (geom->DimensionModel == GAIA_XY_M) *size += (8 + (16 * rng->Points) + 16); /* # rings + # points + [x,y,m] array - exterior ring */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (8 + (20 * rng->Points) + 24); /* # rings + # points + [x,y,z,m] array - exterior ring */ else *size += (8 + (8 * rng->Points) + 16); /* # rings + # points + [x,y] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; if (geom->DimensionModel == GAIA_XY_Z) *size += (4 + (12 * rng->Points) + 24); /* # points + [x,y,z] array - interior ring */ else if (geom->DimensionModel == GAIA_XY_M) *size += (4 + (16 * rng->Points) + 16); /* # points + [x,y,m] array - interior ring */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (4 + (20 * rng->Points) + 24); /* # points + [x,y,z,m] array - interior ring */ else *size += (4 + (8 * rng->Points) + 16); /* # points + [x,y] array - interior ring */ } polyg = polyg->Next; } }; *result = malloc (*size); ptr = *result; /* and finally we build the BLOB */ switch (type) { case GAIA_POINT: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINT, 1, endian_arch); /* class POINT */ gaiaExport64 (ptr + 43, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, point->Y, 1, endian_arch); /* Y */ *(ptr + 59) = GAIA_MARK_END; /* END signature */ break; case GAIA_POINTZ: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINTZ, 1, endian_arch); /* class POINT XYZ */ gaiaExport64 (ptr + 43, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 59, point->Z, 1, endian_arch); /* Z */ *(ptr + 67) = GAIA_MARK_END; /* END signature */ break; case GAIA_POINTM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINTM, 1, endian_arch); /* class POINT XYM */ gaiaExport64 (ptr + 43, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 59, point->M, 1, endian_arch); /* M */ *(ptr + 67) = GAIA_MARK_END; /* END signature */ break; case GAIA_POINTZM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINTZM, 1, endian_arch); /* class POINT XYZM */ gaiaExport64 (ptr + 43, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 59, point->Z, 1, endian_arch); /* M */ gaiaExport64 (ptr + 67, point->M, 1, endian_arch); /* Z */ *(ptr + 75) = GAIA_MARK_END; /* END signature */ break; case GAIA_LINESTRING: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_COMPRESSED_LINESTRING, 1, endian_arch); /* class LINESTRING */ gaiaExport32 (ptr + 43, line->Points, 1, endian_arch); /* # points */ ptr += 47; for (iv = 0; iv < line->Points; iv++) { gaiaGetPoint (line->Coords, iv, &x, &y); if (iv == 0 || iv == (line->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); ptr += 16; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); ptr += 8; } last_x = x; last_y = y; } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_LINESTRINGZ: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_COMPRESSED_LINESTRINGZ, 1, endian_arch); /* class LINESTRING XYZ */ gaiaExport32 (ptr + 43, line->Points, 1, endian_arch); /* # points */ ptr += 47; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); if (iv == 0 || iv == (line->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, z, 1, endian_arch); ptr += 24; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); fz = (float) (z - last_z); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); gaiaExportF32 (ptr + 8, fz, 1, endian_arch); ptr += 12; } last_x = x; last_y = y; last_z = z; } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_LINESTRINGM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_COMPRESSED_LINESTRINGM, 1, endian_arch); /* class LINESTRING XYM */ gaiaExport32 (ptr + 43, line->Points, 1, endian_arch); /* # points */ ptr += 47; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); if (iv == 0 || iv == (line->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, m, 1, endian_arch); ptr += 24; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); gaiaExport64 (ptr + 8, m, 1, endian_arch); ptr += 16; } last_x = x; last_y = y; } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_LINESTRINGZM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_COMPRESSED_LINESTRINGZM, 1, endian_arch); /* class LINESTRING XYZM */ gaiaExport32 (ptr + 43, line->Points, 1, endian_arch); /* # points */ ptr += 47; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); if (iv == 0 || iv == (line->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, z, 1, endian_arch); gaiaExport64 (ptr + 24, m, 1, endian_arch); ptr += 32; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); fz = (float) (z - last_z); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); gaiaExportF32 (ptr + 8, fz, 1, endian_arch); gaiaExport64 (ptr + 12, m, 1, endian_arch); ptr += 20; } last_x = x; last_y = y; last_z = z; } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_POLYGON: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_COMPRESSED_POLYGON, 1, endian_arch); /* class POLYGON */ gaiaExport32 (ptr + 43, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 47, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 51; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPoint (rng->Coords, iv, &x, &y); if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); ptr += 16; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); ptr += 8; } last_x = x; last_y = y; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPoint (rng->Coords, iv, &x, &y); if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); ptr += 16; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); ptr += 8; } last_x = x; last_y = y; } } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_POLYGONZ: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_COMPRESSED_POLYGONZ, 1, endian_arch); /* class POLYGON XYZ */ gaiaExport32 (ptr + 43, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 47, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 51; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, z, 1, endian_arch); ptr += 24; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); fz = (float) (z - last_z); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); gaiaExportF32 (ptr + 8, fz, 1, endian_arch); ptr += 12; } last_x = x; last_y = y; last_z = z; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, z, 1, endian_arch); ptr += 24; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); fz = (float) (z - last_z); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); gaiaExportF32 (ptr + 8, fz, 1, endian_arch); ptr += 12; } last_x = x; last_y = y; last_z = z; } } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_POLYGONM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_COMPRESSED_POLYGONM, 1, endian_arch); /* class POLYGON XYM */ gaiaExport32 (ptr + 43, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 47, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 51; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, m, 1, endian_arch); ptr += 24; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); gaiaExport64 (ptr + 8, m, 1, endian_arch); ptr += 16; } last_x = x; last_y = y; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, m, 1, endian_arch); ptr += 24; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); gaiaExport64 (ptr + 8, m, 1, endian_arch); ptr += 16; } last_x = x; last_y = y; } } *ptr = GAIA_MARK_END; /* END signature */ break; case GAIA_POLYGONZM: *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_COMPRESSED_POLYGONZM, 1, endian_arch); /* class POLYGON */ gaiaExport32 (ptr + 43, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 47, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 51; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, z, 1, endian_arch); gaiaExport64 (ptr + 24, m, 1, endian_arch); ptr += 32; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); fz = (float) (z - last_z); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); gaiaExportF32 (ptr + 8, fz, 1, endian_arch); gaiaExport64 (ptr + 12, m, 1, endian_arch); ptr += 20; } last_x = x; last_y = y; last_z = z; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); gaiaExport64 (ptr + 8, y, 1, endian_arch); gaiaExport64 (ptr + 16, z, 1, endian_arch); gaiaExport64 (ptr + 24, m, 1, endian_arch); ptr += 32; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); fz = (float) (z - last_z); gaiaExportF32 (ptr, fx, 1, endian_arch); gaiaExportF32 (ptr + 4, fy, 1, endian_arch); gaiaExportF32 (ptr + 8, fz, 1, endian_arch); gaiaExport64 (ptr + 12, m, 1, endian_arch); ptr += 20; } last_x = x; last_y = y; last_z = z; } } *ptr = GAIA_MARK_END; /* END signature */ break; default: /* this one is a MULTIxxxx or a GEOMETRYCOLLECTION - building the main header */ *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, geom->Srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, geom->MinX, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, geom->MinY, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, geom->MaxX, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, geom->MaxY, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, type, 1, endian_arch); /* geometric class */ gaiaExport32 (ptr + 43, entities, 1, endian_arch); /* # entities */ ptr += 47; point = geom->FirstPoint; while (point) { *ptr = GAIA_MARK_ENTITY; /* ENTITY signature */ if (geom->DimensionModel == GAIA_XY_Z) { gaiaExport32 (ptr + 1, GAIA_POINTZ, 1, endian_arch); /* class POINT XYZ */ gaiaExport64 (ptr + 5, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 13, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 21, point->Z, 1, endian_arch); /* Z */ ptr += 29; } else if (geom->DimensionModel == GAIA_XY_M) { gaiaExport32 (ptr + 1, GAIA_POINTM, 1, endian_arch); /* class POINT XYM */ gaiaExport64 (ptr + 5, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 13, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 21, point->M, 1, endian_arch); /* M */ ptr += 29; } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaExport32 (ptr + 1, GAIA_POINTZM, 1, endian_arch); /* class POINT XYZM */ gaiaExport64 (ptr + 5, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 13, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 21, point->Z, 1, endian_arch); /* Z */ gaiaExport64 (ptr + 29, point->M, 1, endian_arch); /* M */ ptr += 37; } else { gaiaExport32 (ptr + 1, GAIA_POINT, 1, endian_arch); /* class POINT */ gaiaExport64 (ptr + 5, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 13, point->Y, 1, endian_arch); /* Y */ ptr += 21; } point = point->Next; } line = geom->FirstLinestring; while (line) { *ptr = GAIA_MARK_ENTITY; /* ENTITY signature */ if (geom->DimensionModel == GAIA_XY_Z) gaiaExport32 (ptr + 1, GAIA_COMPRESSED_LINESTRINGZ, 1, endian_arch); /* class LINESTRING XYZ */ else if (geom->DimensionModel == GAIA_XY_M) gaiaExport32 (ptr + 1, GAIA_COMPRESSED_LINESTRINGM, 1, endian_arch); /* class LINESTRING XYM */ else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaExport32 (ptr + 1, GAIA_COMPRESSED_LINESTRINGZM, 1, endian_arch); /* class LINESTRING XYZM */ else gaiaExport32 (ptr + 1, GAIA_COMPRESSED_LINESTRING, 1, endian_arch); /* class LINESTRING */ gaiaExport32 (ptr + 5, line->Points, 1, endian_arch); /* # points */ ptr += 9; for (iv = 0; iv < line->Points; iv++) { z = 0.0; m = 0.0; if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (iv == 0 || iv == (line->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); /* X */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y */ ptr += 16; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); gaiaExportF32 (ptr, fx, 1, endian_arch); /* X */ gaiaExportF32 (ptr + 4, fy, 1, endian_arch); /* Y */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_Z) { if (iv == 0 || iv == (line->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } else { /* compressing any other intermediate vertex */ fz = (float) (z - last_z); gaiaExportF32 (ptr, fz, 1, endian_arch); /* Z */ ptr += 4; } } if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_Z_M) { if (iv == 0 || iv == (line->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } else { /* compressing any other intermediate vertex */ fz = (float) (z - last_z); gaiaExportF32 (ptr, fz, 1, endian_arch); /* Z */ ptr += 4; } gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } last_x = x; last_y = y; last_z = z; } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { *ptr = GAIA_MARK_ENTITY; /* ENTITY signature */ if (geom->DimensionModel == GAIA_XY_Z) gaiaExport32 (ptr + 1, GAIA_COMPRESSED_POLYGONZ, 1, endian_arch); /* class POLYGON XYZ */ else if (geom->DimensionModel == GAIA_XY_M) gaiaExport32 (ptr + 1, GAIA_COMPRESSED_POLYGONM, 1, endian_arch); /* class POLYGON XYM */ else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaExport32 (ptr + 1, GAIA_COMPRESSED_POLYGONZM, 1, endian_arch); /* class POLYGON XYZM */ else gaiaExport32 (ptr + 1, GAIA_COMPRESSED_POLYGON, 1, endian_arch); /* class POLYGON */ gaiaExport32 (ptr + 5, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 9, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 13; for (iv = 0; iv < rng->Points; iv++) { z = 0.0; m = 0.0; if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); /* X - exterior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - exterior ring */ ptr += 16; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); gaiaExportF32 (ptr, fx, 1, endian_arch); /* X */ gaiaExportF32 (ptr + 4, fy, 1, endian_arch); /* Y */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_Z) { if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } else { /* compressing any other intermediate vertex */ fz = (float) (z - last_z); gaiaExportF32 (ptr, fz, 1, endian_arch); /* Z */ ptr += 4; } } if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_Z_M) { if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } else { /* compressing any other intermediate vertex */ fz = (float) (z - last_z); gaiaExportF32 (ptr, fz, 1, endian_arch); /* Z */ ptr += 4; } gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } last_x = x; last_y = y; last_z = z; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { z = 0.0; m = 0.0; if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, x, 1, endian_arch); /* X - interior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - interior ring */ ptr += 16; } else { /* compressing any other intermediate vertex */ fx = (float) (x - last_x); fy = (float) (y - last_y); gaiaExportF32 (ptr, fx, 1, endian_arch); /* X */ gaiaExportF32 (ptr + 4, fy, 1, endian_arch); /* Y */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_Z) { if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } else { /* compressing any other intermediate vertex */ fz = (float) (z - last_z); gaiaExportF32 (ptr, fz, 1, endian_arch); /* Z */ ptr += 4; } } if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } if (geom->DimensionModel == GAIA_XY_Z_M) { if (iv == 0 || iv == (rng->Points - 1)) { /* first and last vertices are uncompressed */ gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } else { /* compressing any other intermediate vertex */ fz = (float) (z - last_z); gaiaExportF32 (ptr, fz, 1, endian_arch); /* Z */ ptr += 4; } gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } last_x = x; last_y = y; last_z = z; } } polyg = polyg->Next; } *ptr = GAIA_MARK_END; /* END signature */ }; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromWkb (const unsigned char *blob, unsigned int size) { /* decoding from WKB to GEOMETRY */ int type; int little_endian; gaiaGeomCollPtr geo = NULL; int endian_arch = gaiaEndianArch (); if (size < 5) return NULL; if (*(blob + 0) == 0x01) little_endian = GAIA_LITTLE_ENDIAN; else little_endian = GAIA_BIG_ENDIAN; type = gaiaImport32 (blob + 1, little_endian, endian_arch); if (type == GAIA_POINTZ || type == GAIA_LINESTRINGZ || type == GAIA_POLYGONZ || type == GAIA_MULTIPOINTZ || type == GAIA_MULTILINESTRINGZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ || type == GAIA_GEOSWKB_POINTZ || type == GAIA_GEOSWKB_LINESTRINGZ || type == GAIA_GEOSWKB_POLYGONZ || type == GAIA_GEOSWKB_MULTIPOINTZ || type == GAIA_GEOSWKB_MULTILINESTRINGZ || type == GAIA_GEOSWKB_MULTIPOLYGONZ || type == GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ) geo = gaiaAllocGeomCollXYZ (); else if (type == GAIA_POINTM || type == GAIA_LINESTRINGM || type == GAIA_POLYGONM || type == GAIA_MULTIPOINTM || type == GAIA_MULTILINESTRINGM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM) geo = gaiaAllocGeomCollXYM (); else if (type == GAIA_POINTZM || type == GAIA_LINESTRINGZM || type == GAIA_POLYGONZM || type == GAIA_MULTIPOINTZM || type == GAIA_MULTILINESTRINGZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) geo = gaiaAllocGeomCollXYZM (); else geo = gaiaAllocGeomColl (); geo->Srid = 0; geo->endian_arch = (char) endian_arch; geo->endian = (char) little_endian; geo->blob = blob; geo->size = size; geo->offset = 5; switch (type) { case GAIA_POINT: ParseWkbPoint (geo); break; case GAIA_POINTZ: case GAIA_GEOSWKB_POINTZ: ParseWkbPointZ (geo); break; case GAIA_POINTM: ParseWkbPointM (geo); break; case GAIA_POINTZM: ParseWkbPointZM (geo); break; case GAIA_LINESTRING: ParseWkbLine (geo); break; case GAIA_LINESTRINGZ: case GAIA_GEOSWKB_LINESTRINGZ: ParseWkbLineZ (geo); break; case GAIA_LINESTRINGM: ParseWkbLineM (geo); break; case GAIA_LINESTRINGZM: ParseWkbLineZM (geo); break; case GAIA_POLYGON: ParseWkbPolygon (geo); break; case GAIA_POLYGONZ: case GAIA_GEOSWKB_POLYGONZ: ParseWkbPolygonZ (geo); break; case GAIA_POLYGONM: ParseWkbPolygonM (geo); break; case GAIA_POLYGONZM: ParseWkbPolygonZM (geo); break; case GAIA_MULTIPOINT: case GAIA_MULTILINESTRING: case GAIA_MULTIPOLYGON: case GAIA_GEOMETRYCOLLECTION: case GAIA_MULTIPOINTZ: case GAIA_MULTILINESTRINGZ: case GAIA_MULTIPOLYGONZ: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOSWKB_MULTIPOINTZ: case GAIA_GEOSWKB_MULTILINESTRINGZ: case GAIA_GEOSWKB_MULTIPOLYGONZ: case GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ: case GAIA_MULTIPOINTM: case GAIA_MULTILINESTRINGM: case GAIA_MULTIPOLYGONM: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_MULTIPOINTZM: case GAIA_MULTILINESTRINGZM: case GAIA_MULTIPOLYGONZM: case GAIA_GEOMETRYCOLLECTIONZM: ParseWkbGeometry (geo, 1); break; default: break; }; gaiaMbrGeometry (geo); switch (type) { case GAIA_POINT: case GAIA_POINTZ: case GAIA_GEOSWKB_POINTZ: case GAIA_POINTM: case GAIA_POINTZM: geo->DeclaredType = GAIA_POINT; break; case GAIA_LINESTRING: case GAIA_LINESTRINGZ: case GAIA_GEOSWKB_LINESTRINGZ: case GAIA_LINESTRINGM: case GAIA_LINESTRINGZM: geo->DeclaredType = GAIA_LINESTRING; break; case GAIA_POLYGON: case GAIA_POLYGONZ: case GAIA_GEOSWKB_POLYGONZ: case GAIA_POLYGONM: case GAIA_POLYGONZM: geo->DeclaredType = GAIA_POLYGON; break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_GEOSWKB_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: geo->DeclaredType = GAIA_MULTIPOINT; break; case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_GEOSWKB_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: geo->DeclaredType = GAIA_MULTILINESTRING; break; case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_GEOSWKB_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: geo->DeclaredType = GAIA_MULTIPOLYGON; break; case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: geo->DeclaredType = GAIA_GEOMETRYCOLLECTION; break; } return geo; } GAIAGEO_DECLARE char * gaiaToHexWkb (gaiaGeomCollPtr geom) { /* builds the hexadecimal WKB representation for this GEOMETRY */ unsigned char *wkb = NULL; int size = 0; char *hexbuf = NULL; int i; char hex[16]; char *p; gaiaToWkb (geom, &wkb, &size); if (!wkb) return NULL; hexbuf = malloc ((size * 2) + 1); p = hexbuf; for (i = 0; i < size; i++) { sprintf (hex, "%02X", *(wkb + i)); *p++ = hex[0]; *p++ = hex[1]; } *p = '\0'; return hexbuf; } GAIAGEO_DECLARE void gaiaToWkb (gaiaGeomCollPtr geom, unsigned char **result, int *size) { /* builds the WKB representation for this GEOMETRY */ int ib; int iv; double x; double y; double z = 0.0; double m = 0.0; int entities = 0; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; int type; unsigned char *ptr; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaPointPtr point = NULL; gaiaLinestringPtr line = NULL; gaiaPolygonPtr polyg = NULL; int endian_arch = gaiaEndianArch (); gaiaMbrGeometry (geom); /* how many entities, and of what kind, do we have ? */ pt = geom->FirstPoint; while (pt) { point = pt; entities++; n_points++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { line = ln; entities++; n_linestrings++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { polyg = pg; entities++; n_polygons++; pg = pg->Next; } *size = 0; *result = NULL; if (n_points == 0 && n_polygons == 0 && n_linestrings == 0) return; /* ok, we can determine the geometry class */ if (n_points == 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTIPOINT) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOINTZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOINTM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOINTZM; else type = GAIA_MULTIPOINT; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_POINTZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_POINTM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_POINTZM; else type = GAIA_POINT; } } else if (n_points > 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOINTZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOINTM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOINTZM; else type = GAIA_MULTIPOINT; } } else if (n_points == 0 && n_linestrings == 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTILINESTRING) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTILINESTRINGZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTILINESTRINGM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTILINESTRINGZM; else type = GAIA_MULTILINESTRING; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_LINESTRINGZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_LINESTRINGM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_LINESTRINGZM; else type = GAIA_LINESTRING; } } else if (n_points == 0 && n_linestrings > 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTILINESTRINGZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTILINESTRINGM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTILINESTRINGZM; else type = GAIA_MULTILINESTRING; } } else if (n_points == 0 && n_linestrings == 0 && n_polygons == 1) { if (geom->DeclaredType == GAIA_MULTIPOLYGON) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOLYGONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOLYGONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOLYGONZM; else type = GAIA_MULTIPOLYGON; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_POLYGONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_POLYGONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_POLYGONZM; else type = GAIA_POLYGON; } } else if (n_points == 0 && n_linestrings == 0 && n_polygons > 1) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_MULTIPOLYGONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_MULTIPOLYGONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_MULTIPOLYGONZM; else type = GAIA_MULTIPOLYGON; } } else { if (geom->DimensionModel == GAIA_XY_Z) type = GAIA_GEOMETRYCOLLECTIONZ; else if (geom->DimensionModel == GAIA_XY_M) type = GAIA_GEOMETRYCOLLECTIONM; else if (geom->DimensionModel == GAIA_XY_Z_M) type = GAIA_GEOMETRYCOLLECTIONZM; else type = GAIA_GEOMETRYCOLLECTION; } /* and now we compute the size of WKB */ *size = 5; /* header size */ if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION || type == GAIA_MULTIPOINTZ || type == GAIA_MULTILINESTRINGZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ || type == GAIA_MULTIPOINTM || type == GAIA_MULTILINESTRINGM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM || type == GAIA_MULTIPOINTZM || type == GAIA_MULTILINESTRINGZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) *size += 4; point = geom->FirstPoint; while (point) { if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION || type == GAIA_MULTIPOINTZ || type == GAIA_MULTILINESTRINGZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ || type == GAIA_MULTIPOINTM || type == GAIA_MULTILINESTRINGM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM || type == GAIA_MULTIPOINTZM || type == GAIA_MULTILINESTRINGZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) *size += 5; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) *size += (sizeof (double) * 3); /* three doubles for each POINT */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (sizeof (double) * 4); /* four doubles for each POINT */ else *size += (sizeof (double) * 2); /* two doubles for each POINT */ point = point->Next; } line = geom->FirstLinestring; while (line) { if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION || type == GAIA_MULTIPOINTZ || type == GAIA_MULTILINESTRINGZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ || type == GAIA_MULTIPOINTM || type == GAIA_MULTILINESTRINGM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM || type == GAIA_MULTIPOINTZM || type == GAIA_MULTILINESTRINGZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) *size += 5; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) *size += (4 + ((sizeof (double) * 3) * line->Points)); /* # points + [x,y,z] for each vertex */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (4 + ((sizeof (double) * 4) * line->Points)); /* # points + [x,y,z,m] for each vertex */ else *size += (4 + ((sizeof (double) * 2) * line->Points)); /* # points + [x,y] for each vertex */ line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION || type == GAIA_MULTIPOINTZ || type == GAIA_MULTILINESTRINGZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ || type == GAIA_MULTIPOINTM || type == GAIA_MULTILINESTRINGM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM || type == GAIA_MULTIPOINTZM || type == GAIA_MULTILINESTRINGZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) *size += 5; rng = polyg->Exterior; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) *size += (8 + ((sizeof (double) * 3) * rng->Points)); /* # rings + # points + [x,y,z] array - exterior ring */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (8 + ((sizeof (double) * 4) * rng->Points)); /* # rings + # points + [x,y,z,m] array - exterior ring */ else *size += (8 + ((sizeof (double) * 2) * rng->Points)); /* # rings + # points + [x,y] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) *size += (4 + ((sizeof (double) * 3) * rng->Points)); /* # points + [x,y,z] array - interior ring */ else if (geom->DimensionModel == GAIA_XY_Z_M) *size += (4 + ((sizeof (double) * 4) * rng->Points)); /* # points + [x,y,z,m] array - interior ring */ else *size += (4 + ((sizeof (double) * 2) * rng->Points)); /* # points + [x,y] array - interior ring */ } polyg = polyg->Next; } *result = malloc (*size); ptr = *result; /* and finally we build the WKB */ *ptr = 0x01; /* little endian byte order */ gaiaExport32 (ptr + 1, type, 1, endian_arch); /* the main CLASS TYPE */ ptr += 5; if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION || type == GAIA_MULTIPOINTZ || type == GAIA_MULTILINESTRINGZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ || type == GAIA_MULTIPOINTM || type == GAIA_MULTILINESTRINGM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM || type == GAIA_MULTIPOINTZM || type == GAIA_MULTILINESTRINGZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) { gaiaExport32 (ptr, entities, 1, endian_arch); /* it's a collection; # entities */ ptr += 4; } point = geom->FirstPoint; while (point) { if (type == GAIA_MULTIPOINT || type == GAIA_GEOMETRYCOLLECTION || type == GAIA_MULTIPOINTZ || type == GAIA_GEOMETRYCOLLECTIONZ || type == GAIA_MULTIPOINTM || type == GAIA_GEOMETRYCOLLECTIONM || type == GAIA_MULTIPOINTZM || type == GAIA_GEOMETRYCOLLECTIONZM) { *ptr = 0x01; /* it's a collection: the CLASS TYPE for this element */ if (type == GAIA_MULTIPOINTZ || type == GAIA_GEOMETRYCOLLECTIONZ) gaiaExport32 (ptr + 1, GAIA_POINTZ, 1, endian_arch); else if (type == GAIA_MULTIPOINTM || type == GAIA_GEOMETRYCOLLECTIONM) gaiaExport32 (ptr + 1, GAIA_POINTM, 1, endian_arch); else if (type == GAIA_MULTIPOINTZM || type == GAIA_GEOMETRYCOLLECTIONZM) gaiaExport32 (ptr + 1, GAIA_POINTZM, 1, endian_arch); else gaiaExport32 (ptr + 1, GAIA_POINT, 1, endian_arch); ptr += 5; } gaiaExport64 (ptr, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 8, point->Y, 1, endian_arch); /* Y */ ptr += 16; if (type == GAIA_POINTZ || type == GAIA_MULTIPOINTZ || type == GAIA_GEOMETRYCOLLECTIONZ) { gaiaExport64 (ptr, point->Z, 1, endian_arch); /* Z */ ptr += 8; } if (type == GAIA_POINTM || type == GAIA_MULTIPOINTM || type == GAIA_GEOMETRYCOLLECTIONM) { gaiaExport64 (ptr, point->M, 1, endian_arch); /* M */ ptr += 8; } if (type == GAIA_POINTZM || type == GAIA_MULTIPOINTZM || type == GAIA_GEOMETRYCOLLECTIONZM) { gaiaExport64 (ptr, point->Z, 1, endian_arch); /* Z */ gaiaExport64 (ptr + 8, point->M, 1, endian_arch); /* M */ ptr += 16; } point = point->Next; } line = geom->FirstLinestring; while (line) { if (type == GAIA_MULTILINESTRING || type == GAIA_GEOMETRYCOLLECTION || type == GAIA_MULTILINESTRINGZ || type == GAIA_GEOMETRYCOLLECTIONZ || type == GAIA_MULTILINESTRINGM || type == GAIA_GEOMETRYCOLLECTIONM || type == GAIA_MULTILINESTRINGZM || type == GAIA_GEOMETRYCOLLECTIONZM) { *ptr = 0x01; /* it's a collection: the CLASS TYPE for this element */ if (type == GAIA_MULTILINESTRINGZ || type == GAIA_GEOMETRYCOLLECTIONZ) gaiaExport32 (ptr + 1, GAIA_LINESTRINGZ, 1, endian_arch); else if (type == GAIA_MULTILINESTRINGM || type == GAIA_GEOMETRYCOLLECTIONM) gaiaExport32 (ptr + 1, GAIA_LINESTRINGM, 1, endian_arch); else if (type == GAIA_MULTILINESTRINGZM || type == GAIA_GEOMETRYCOLLECTIONZM) gaiaExport32 (ptr + 1, GAIA_LINESTRINGZM, 1, endian_arch); else gaiaExport32 (ptr + 1, GAIA_LINESTRING, 1, endian_arch); ptr += 5; } gaiaExport32 (ptr, line->Points, 1, endian_arch); /* # points */ ptr += 4; for (iv = 0; iv < line->Points; iv++) { if (type == GAIA_LINESTRINGZ || type == GAIA_MULTILINESTRINGZ || type == GAIA_GEOMETRYCOLLECTIONZ) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (type == GAIA_LINESTRINGM || type == GAIA_MULTILINESTRINGM || type == GAIA_GEOMETRYCOLLECTIONM) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (type == GAIA_LINESTRINGZM || type == GAIA_MULTILINESTRINGZM || type == GAIA_GEOMETRYCOLLECTIONZM) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, 1, endian_arch); /* X */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y */ ptr += 16; if (type == GAIA_LINESTRINGZ || type == GAIA_MULTILINESTRINGZ || type == GAIA_GEOMETRYCOLLECTIONZ) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ ptr += 8; } if (type == GAIA_LINESTRINGM || type == GAIA_MULTILINESTRINGM || type == GAIA_GEOMETRYCOLLECTIONM) { gaiaExport64 (ptr, m, 1, endian_arch); /* M */ ptr += 8; } if (type == GAIA_LINESTRINGZM || type == GAIA_MULTILINESTRINGZM || type == GAIA_GEOMETRYCOLLECTIONZM) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z */ gaiaExport64 (ptr + 8, m, 1, endian_arch); /* M */ ptr += 16; } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { if (type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) { *ptr = 0x01; /* it's a collection: the CLASS TYPE for this element */ if (type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ) gaiaExport32 (ptr + 1, GAIA_POLYGONZ, 1, endian_arch); else if (type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM) gaiaExport32 (ptr + 1, GAIA_POLYGONM, 1, endian_arch); else if (type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) gaiaExport32 (ptr + 1, GAIA_POLYGONZM, 1, endian_arch); else gaiaExport32 (ptr + 1, GAIA_POLYGON, 1, endian_arch); ptr += 5; } gaiaExport32 (ptr, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 4, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 8; for (iv = 0; iv < rng->Points; iv++) { if (type == GAIA_POLYGONZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (type == GAIA_POLYGONM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (type == GAIA_POLYGONZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, 1, endian_arch); /* X - exterior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - exterior ring */ ptr += 16; if (type == GAIA_POLYGONZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z - exterior ring */ ptr += 8; } if (type == GAIA_POLYGONM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM) { gaiaExport64 (ptr, m, 1, endian_arch); /* M - exterior ring */ ptr += 8; } if (type == GAIA_POLYGONZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z - exterior ring */ gaiaExport64 (ptr + 8, m, 1, endian_arch); /* M - exterior ring */ ptr += 16; } } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { if (type == GAIA_POLYGONZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (type == GAIA_POLYGONM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (type == GAIA_POLYGONZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, 1, endian_arch); /* X - interior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - interior ring */ ptr += 16; if (type == GAIA_POLYGONZ || type == GAIA_MULTIPOLYGONZ || type == GAIA_GEOMETRYCOLLECTIONZ) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z - exterior ring */ ptr += 8; } if (type == GAIA_POLYGONM || type == GAIA_MULTIPOLYGONM || type == GAIA_GEOMETRYCOLLECTIONM) { gaiaExport64 (ptr, m, 1, endian_arch); /* M - exterior ring */ ptr += 8; } if (type == GAIA_POLYGONZM || type == GAIA_MULTIPOLYGONZM || type == GAIA_GEOMETRYCOLLECTIONZM) { gaiaExport64 (ptr, z, 1, endian_arch); /* Z - exterior ring */ gaiaExport64 (ptr + 8, m, 1, endian_arch); /* M - exterior ring */ ptr += 16; } } } polyg = polyg->Next; } } GAIAGEO_DECLARE int gaiaEwkbGetPoint (gaiaGeomCollPtr geom, unsigned char *blob, int offset, int blob_size, int endian, int endian_arch, int dims) { /* decodes a POINT from PostGIS EWKB binary GEOMETRY */ double x; double y; double z; double m; switch (dims) { case GAIA_XY_Z_M: if (blob_size < offset + 32) return -1; break; case GAIA_XY_Z: case GAIA_XY_M: if (blob_size < offset + 24) return -1; break; default: if (blob_size < offset + 16) return -1; break; } x = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; y = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; if (dims == GAIA_XY_Z_M) { z = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; m = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; gaiaAddPointToGeomCollXYZM (geom, x, y, z, m); } else if (dims == GAIA_XY_Z) { z = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; gaiaAddPointToGeomCollXYZ (geom, x, y, z); } else if (dims == GAIA_XY_M) { m = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; gaiaAddPointToGeomCollXYM (geom, x, y, m); } else gaiaAddPointToGeomColl (geom, x, y); return offset; } GAIAGEO_DECLARE int gaiaEwkbGetLinestring (gaiaGeomCollPtr geom, unsigned char *blob, int offset, int blob_size, int endian, int endian_arch, int dims) { /* decodes a LINESTRING from PostGIS binary GEOMETRY */ int npoints; int iv; double x; double y; double z; double m; gaiaLinestringPtr ln; if (blob_size < offset + 4) return -1; npoints = gaiaImport32 (blob + offset, endian, endian_arch); offset += 4; switch (dims) { case GAIA_XY_Z_M: if (blob_size < offset + (32 * npoints)) return -1; break; case GAIA_XY_Z: case GAIA_XY_M: if (blob_size < offset + (24 * npoints)) return -1; break; default: if (blob_size < offset + (16 * npoints)) return -1; break; } ln = gaiaAddLinestringToGeomColl (geom, npoints); for (iv = 0; iv < npoints; iv++) { x = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; y = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; if (dims == GAIA_XY_Z_M) { z = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; m = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; gaiaSetPointXYZM (ln->Coords, iv, x, y, z, m); } else if (dims == GAIA_XY_Z) { z = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; gaiaSetPointXYZ (ln->Coords, iv, x, y, z); } else if (dims == GAIA_XY_M) { m = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; gaiaSetPointXYM (ln->Coords, iv, x, y, m); } else gaiaSetPoint (ln->Coords, iv, x, y); } return offset; } GAIAGEO_DECLARE int gaiaEwkbGetPolygon (gaiaGeomCollPtr geom, unsigned char *blob, int offset, int blob_size, int endian, int endian_arch, int dims) { /* decodes a POLYGON from PostGIS binary GEOMETRY */ int rings; int npoints; int iv; int ib; double x; double y; double z; double m; gaiaPolygonPtr polyg = NULL; gaiaRingPtr rng; if (blob_size < offset + 4) return -1; rings = gaiaImport32 (blob + offset, endian, endian_arch); offset += 4; for (ib = 0; ib < rings; ib++) { if (blob_size < offset + 4) return -1; npoints = gaiaImport32 (blob + offset, endian, endian_arch); offset += 4; switch (dims) { case GAIA_XY_Z_M: if (blob_size < offset + (32 * npoints)) return -1; break; case GAIA_XY_Z: case GAIA_XY_M: if (blob_size < offset + (24 * npoints)) return -1; break; default: if (blob_size < offset + (16 * npoints)) return -1; break; } if (ib == 0) { polyg = gaiaAddPolygonToGeomColl (geom, npoints, rings - 1); rng = polyg->Exterior; } else rng = gaiaAddInteriorRing (polyg, ib - 1, npoints); for (iv = 0; iv < npoints; iv++) { x = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; y = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; if (dims == GAIA_XY_Z_M) { z = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; m = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m); } else if (dims == GAIA_XY_Z) { z = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (dims == GAIA_XY_M) { m = gaiaImport64 (blob + offset, endian, endian_arch); offset += 8; gaiaSetPointXYM (rng->Coords, iv, x, y, m); } else gaiaSetPoint (rng->Coords, iv, x, y); } } return offset; } GAIAGEO_DECLARE int gaiaEwkbGetMultiGeometry (gaiaGeomCollPtr geom, unsigned char *blob, int offset, int blob_size, int endian, int endian_arch, int dims) { /* decodes a MultiGeometry from PostGIS EWKB binary GEOMETRY */ int entities; int type; unsigned char xtype[4]; int ie; int off; if (blob_size < offset + 4) return -1; entities = gaiaImport32 (blob + offset, endian, endian_arch); offset += 4; for (ie = 0; ie < entities; ie++) { if (blob_size < offset + 5) return -1; memcpy (xtype, blob + offset + 1, 4); if (endian) xtype[3] = 0x00; else xtype[0] = 0x00; type = gaiaImport32 (xtype, endian, endian_arch); offset += 5; switch (type) { case GAIA_POINT: off = gaiaEwkbGetPoint (geom, blob, offset, blob_size, endian, endian_arch, dims); if (off < 0) return -1; offset = off; break; case GAIA_LINESTRING: off = gaiaEwkbGetLinestring (geom, blob, offset, blob_size, endian, endian_arch, dims); if (off < 0) return -1; offset = off; break; case GAIA_POLYGON: off = gaiaEwkbGetPolygon (geom, blob, offset, blob_size, endian, endian_arch, dims); if (off < 0) return -1; offset = off; break; default: /* unexpected: invalid EWKB */ return -1; }; } return offset; } static int parseHexEwkbByte (const unsigned char high, const unsigned char low, unsigned char *byte) { /* parsing an Hexadecimal byte */ unsigned char hex; switch (high) { case '0': hex = 16 * 0; break; case '1': hex = 16 * 1; break; case '2': hex = 16 * 2; break; case '3': hex = 16 * 3; break; case '4': hex = 16 * 4; break; case '5': hex = 16 * 5; break; case '6': hex = 16 * 6; break; case '7': hex = 16 * 7; break; case '8': hex = 16 * 8; break; case '9': hex = 16 * 9; break; case 'A': case 'a': hex = 16 * 10; break; case 'B': case 'b': hex = 16 * 11; break; case 'C': case 'c': hex = 16 * 12; break; case 'D': case 'd': hex = 16 * 13; break; case 'E': case 'e': hex = 16 * 14; break; case 'F': case 'f': hex = 16 * 15; break; default: return 0; }; switch (low) { case '0': hex += 0; break; case '1': hex += 1; break; case '2': hex += 2; break; case '3': hex += 3; break; case '4': hex += 4; break; case '5': hex += 5; break; case '6': hex += 6; break; case '7': hex += 7; break; case '8': hex += 8; break; case '9': hex += 9; break; case 'A': case 'a': hex += 10; break; case 'B': case 'b': hex += 11; break; case 'C': case 'c': hex += 12; break; case 'D': case 'd': hex += 13; break; case 'E': case 'e': hex += 14; break; case 'F': case 'f': hex += 15; break; default: return 0; }; *byte = hex; return 1; } GAIAGEO_DECLARE unsigned char * gaiaParseHexEWKB (const unsigned char *blob_hex, int *blob_size) { /* parsing an Hexadecimal EWKB Geometry */ unsigned char *blob; unsigned char *p_out; const unsigned char *p_in; char high; char low; unsigned char hex; int size; int len = strlen ((const char *) blob_hex); size = len / 2; if (size * 2 != len) return NULL; blob = malloc (size); if (!blob) return NULL; *blob_size = size; p_in = blob_hex; p_out = blob; while (*p_in != '\0') { high = *p_in++; low = *p_in++; if (!parseHexEwkbByte (high, low, &hex)) { free (blob); return NULL; } *p_out++ = hex; } *blob_size = size; return blob; } gaiaGeomCollPtr gaiaFromEWKB (const unsigned char *in_buffer) { /* creates a Gaia own Geometry from GEOS/PostGIS EWKB */ unsigned char *blob; int blob_size; unsigned char xtype[4]; unsigned char xdims; int type; int has_z = 0; int has_m = 0; int dims = GAIA_XY; int srid; int ret; int endian; int endian_arch = gaiaEndianArch (); gaiaGeomCollPtr geom = NULL; blob = gaiaParseHexEWKB (in_buffer, &blob_size); if (!blob) return NULL; if (blob_size < 9) { free (blob); return NULL; } if (*(blob + 0) == 0x01) endian = 1; else endian = 0; memcpy (xtype, blob + 1, 4); if (endian) { xdims = xtype[3]; xtype[3] = 0x00; } else { xdims = xtype[0]; xtype[0] = 0x00; } type = gaiaImport32 (xtype, endian, endian_arch); if (xdims & 0x40) has_m = 1; if (xdims & 0x80) has_z = 1; if (has_m && has_z) { dims = GAIA_XY_Z_M; geom = gaiaAllocGeomCollXYZM (); } else if (has_m) { dims = GAIA_XY_M; geom = gaiaAllocGeomCollXYM (); } else if (has_z) { dims = GAIA_XY_Z; geom = gaiaAllocGeomCollXYZ (); } else { dims = GAIA_XY; geom = gaiaAllocGeomColl (); } srid = gaiaImport32 (blob + 5, endian, endian_arch); geom->Srid = srid; if (geom->Srid <= 0) geom->Srid = 0; switch (type) { case GAIA_POINT: ret = gaiaEwkbGetPoint (geom, blob, 9, blob_size, endian, endian_arch, dims); break; case GAIA_LINESTRING: ret = gaiaEwkbGetLinestring (geom, blob, 9, blob_size, endian, endian_arch, dims); break; case GAIA_POLYGON: ret = gaiaEwkbGetPolygon (geom, blob, 9, blob_size, endian, endian_arch, dims); break; default: ret = gaiaEwkbGetMultiGeometry (geom, blob, 9, blob_size, endian, endian_arch, dims); break; }; free (blob); if (ret < 0) { /* invalid EWKB !!! */ gaiaFreeGeomColl (geom); return NULL; } return geom; } GAIAGEO_DECLARE void gaiaToEWKB (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom) { /* prints the GEOS/PostGIS EWKB text representation of current geometry */ char buf[2048]; unsigned char endian_buf[16]; char byte[3]; char *ptr; int size; int type; int entities = 0; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; int i; int iv; int ib; double x; double y; double z; double m; int endian_arch = gaiaEndianArch (); gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaPointPtr point = NULL; gaiaLinestringPtr line = NULL; gaiaPolygonPtr polyg = NULL; /* precomputing the required size */ size = 5; /* SRID and terminating '\0' */ pt = geom->FirstPoint; while (pt) { point = pt; entities++; n_points++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { line = ln; entities++; n_linestrings++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { polyg = pg; entities++; n_polygons++; pg = pg->Next; } if (n_points == 0 && n_polygons == 0 && n_linestrings == 0) return; /* ok, we can determine the geometry class */ if (n_points == 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTIPOINT) type = GAIA_MULTIPOINT; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_POINT; } else if (n_points > 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_MULTIPOINT; } else if (n_points == 0 && n_linestrings == 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTILINESTRING) type = GAIA_MULTILINESTRING; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_LINESTRING; } else if (n_points == 0 && n_linestrings > 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_MULTILINESTRING; } else if (n_points == 0 && n_linestrings == 0 && n_polygons == 1) { if (geom->DeclaredType == GAIA_MULTIPOLYGON) type = GAIA_MULTIPOLYGON; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_POLYGON; } else if (n_points == 0 && n_linestrings == 0 && n_polygons > 1) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_MULTIPOLYGON; } else type = GAIA_GEOMETRYCOLLECTION; /* and now we compute the size of EWKB */ size += 10; /* header size */ if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) size += 8; point = geom->FirstPoint; while (point) { if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) size += 10; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) size += 48; /* three doubles for each POINT */ else if (geom->DimensionModel == GAIA_XY_Z_M) size += 64; /* four doubles for each POINT */ else size += 32; /* two doubles for each POINT */ point = point->Next; } line = geom->FirstLinestring; while (line) { if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) size += 10; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) size += 8 + (line->Points * 48); /* three doubles for each VERTEX */ else if (geom->DimensionModel == GAIA_XY_Z_M) size += 8 + (line->Points * 64); /* four doubles for each VERTEX */ else size += 8 + (line->Points * 32); /* two doubles for each VERTEX */ line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) size += 10; rng = polyg->Exterior; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) size += 16 + (rng->Points * 48); /* three doubles for each VERTEX */ else if (geom->DimensionModel == GAIA_XY_Z_M) size += 16 + (rng->Points * 64); /* four doubles for each VERTEX */ else size += 16 + (rng->Points * 32); /* two doubles for each VERTEX */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_M) size += 8 + (rng->Points * 48); /* three doubles for each VERTEX */ else if (geom->DimensionModel == GAIA_XY_Z_M) size += 8 + (rng->Points * 64); /* four doubles for each VERTEX */ else size += 8 + (rng->Points * 32); /* two doubles for each VERTEX */ } polyg = polyg->Next; } /* and finally we build the EWKB expression */ ptr = buf; *ptr++ = '0'; /* little endian byte order */ *ptr++ = '1'; gaiaExport32 (endian_buf, type, 1, endian_arch); /* the main CLASS TYPE */ for (i = 0; i < 3; i++) { /* CAVEAT: the 4th byte in PostGIS encodes M/Z presence !!!! */ sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } /* marking dimensions and M/Z presence */ if (geom->DimensionModel == GAIA_XY_Z) { *ptr++ = 'A'; *ptr++ = '0'; } else if (geom->DimensionModel == GAIA_XY_M) { *ptr++ = '6'; *ptr++ = '0'; } else if (geom->DimensionModel == GAIA_XY_Z_M) { *ptr++ = 'E'; *ptr++ = '0'; } else { *ptr++ = '2'; *ptr++ = '0'; } gaiaExport32 (endian_buf, geom->Srid, 1, endian_arch); for (i = 0; i < 4; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } *ptr++ = '\0'; gaiaAppendToOutBuffer (out_buf, buf); ptr = buf; if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) { gaiaExport32 (endian_buf, entities, 1, endian_arch); /* it's a collection; # entities */ for (i = 0; i < 4; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } point = geom->FirstPoint; while (point) { if ((ptr - buf) > 1024) { /* flushing the internal buffer */ *ptr++ = '\0'; gaiaAppendToOutBuffer (out_buf, buf); ptr = buf; } if (type == GAIA_MULTIPOINT || type == GAIA_GEOMETRYCOLLECTION) { *ptr++ = '0'; *ptr++ = '1'; /* it's a collection: the CLASS TYPE for this element */ gaiaExport32 (endian_buf, GAIA_POINT, 1, endian_arch); for (i = 0; i < 3; i++) { /* CAVEAT: the 4th byte in PostGIS encodes M/Z presence !!!! */ sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } /* marking M/Z presence */ if (geom->DimensionModel == GAIA_XY_Z) *ptr++ = '8'; else if (geom->DimensionModel == GAIA_XY_M) *ptr++ = '4'; else if (geom->DimensionModel == GAIA_XY_Z_M) *ptr++ = 'C'; else *ptr++ = '0'; *ptr++ = '0'; } gaiaExport64 (endian_buf, point->X, 1, endian_arch); /* X */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } gaiaExport64 (endian_buf, point->Y, 1, endian_arch); /* Y */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } if (geom->DimensionModel == GAIA_XY_Z) { gaiaExport64 (endian_buf, point->Z, 1, endian_arch); /* Z */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } else if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (endian_buf, point->M, 1, endian_arch); /* M */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaExport64 (endian_buf, point->Z, 1, endian_arch); /* Z */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } gaiaExport64 (endian_buf, point->M, 1, endian_arch); /* M */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } point = point->Next; } line = geom->FirstLinestring; while (line) { if ((ptr - buf) > 1024) { /* flushing the internal buffer */ *ptr++ = '\0'; gaiaAppendToOutBuffer (out_buf, buf); ptr = buf; } if (type == GAIA_MULTILINESTRING || type == GAIA_GEOMETRYCOLLECTION) { *ptr++ = '0'; *ptr++ = '1'; /* it's a collection: the CLASS TYPE for this element */ gaiaExport32 (endian_buf, GAIA_LINESTRING, 1, endian_arch); for (i = 0; i < 3; i++) { /* CAVEAT: the 4th byte in PostGIS encodes M/Z presence !!!! */ sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } /* marking M/Z presence */ if (geom->DimensionModel == GAIA_XY_Z) *ptr++ = '8'; else if (geom->DimensionModel == GAIA_XY_M) *ptr++ = '4'; else if (geom->DimensionModel == GAIA_XY_Z_M) *ptr++ = 'C'; else *ptr++ = '0'; *ptr++ = '0'; } gaiaExport32 (endian_buf, line->Points, 1, endian_arch); /* # points */ for (i = 0; i < 4; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } for (iv = 0; iv < line->Points; iv++) { if ((ptr - buf) > 1024) { /* flushing the internal buffer */ *ptr++ = '\0'; gaiaAppendToOutBuffer (out_buf, buf); ptr = buf; } gaiaLineGetPoint (line, iv, &x, &y, &z, &m); gaiaExport64 (endian_buf, x, 1, endian_arch); /* X */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } gaiaExport64 (endian_buf, y, 1, endian_arch); /* Y */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } if (geom->DimensionModel == GAIA_XY_Z) { gaiaExport64 (endian_buf, z, 1, endian_arch); /* Z */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } else if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (endian_buf, m, 1, endian_arch); /* M */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaExport64 (endian_buf, z, 1, endian_arch); /* Z */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } gaiaExport64 (endian_buf, m, 1, endian_arch); /* M */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { if ((ptr - buf) > 1024) { /* flushing the internal buffer */ *ptr++ = '\0'; gaiaAppendToOutBuffer (out_buf, buf); ptr = buf; } if (type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) { *ptr++ = '0'; *ptr++ = '1'; /* it's a collection: the CLASS TYPE for this element */ gaiaExport32 (endian_buf, GAIA_POLYGON, 1, endian_arch); for (i = 0; i < 3; i++) { /* CAVEAT: the 4th byte in PostGIS encodes M/Z presence !!!! */ sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } /* marking M/Z presence */ if (geom->DimensionModel == GAIA_XY_Z) *ptr++ = '8'; else if (geom->DimensionModel == GAIA_XY_M) *ptr++ = '4'; else if (geom->DimensionModel == GAIA_XY_Z_M) *ptr++ = 'C'; else *ptr++ = '0'; *ptr++ = '0'; } gaiaExport32 (endian_buf, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ for (i = 0; i < 4; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } rng = polyg->Exterior; gaiaExport32 (endian_buf, rng->Points, 1, endian_arch); /* # points - exterior ring */ for (i = 0; i < 4; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } for (iv = 0; iv < rng->Points; iv++) { if ((ptr - buf) > 1024) { /* flushing the internal buffer */ *ptr++ = '\0'; gaiaAppendToOutBuffer (out_buf, buf); ptr = buf; } gaiaRingGetPoint (rng, iv, &x, &y, &z, &m); gaiaExport64 (endian_buf, x, 1, endian_arch); /* X - exterior ring */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } gaiaExport64 (endian_buf, y, 1, endian_arch); /* Y - exterior ring */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } if (geom->DimensionModel == GAIA_XY_Z) { gaiaExport64 (endian_buf, z, 1, endian_arch); /* Z */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } else if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (endian_buf, m, 1, endian_arch); /* M */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaExport64 (endian_buf, z, 1, endian_arch); /* Z */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } gaiaExport64 (endian_buf, m, 1, endian_arch); /* M */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (endian_buf, rng->Points, 1, endian_arch); /* # points - interior ring */ for (i = 0; i < 4; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } for (iv = 0; iv < rng->Points; iv++) { if ((ptr - buf) > 1024) { /* flushing the internal buffer */ *ptr++ = '\0'; gaiaAppendToOutBuffer (out_buf, buf); ptr = buf; } gaiaRingGetPoint (rng, iv, &x, &y, &z, &m); gaiaExport64 (endian_buf, x, 1, endian_arch); /* X - interior ring */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } gaiaExport64 (endian_buf, y, 1, endian_arch); /* Y - interior ring */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } if (geom->DimensionModel == GAIA_XY_Z) { gaiaExport64 (endian_buf, z, 1, endian_arch); /* Z */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } else if (geom->DimensionModel == GAIA_XY_M) { gaiaExport64 (endian_buf, m, 1, endian_arch); /* M */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaExport64 (endian_buf, z, 1, endian_arch); /* Z */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } gaiaExport64 (endian_buf, m, 1, endian_arch); /* M */ for (i = 0; i < 8; i++) { sprintf (byte, "%02X", endian_buf[i]); *ptr++ = byte[0]; *ptr++ = byte[1]; } } } } polyg = polyg->Next; } /* terminating the EWKB string */ *ptr = '\0'; gaiaAppendToOutBuffer (out_buf, buf); } static int coordDimsFromFgf (int endian_arch, const unsigned char *blob, unsigned int size, int *type) { /* decoding the coordinate Dimensions for an FGF Geometry */ int coord_dims; if (size < 4) return 0; coord_dims = gaiaImport32 (blob, GAIA_LITTLE_ENDIAN, endian_arch); *type = coord_dims; switch (coord_dims) { case GAIA_XY: return 2; case GAIA_XY_M: case GAIA_XY_Z: return 3; case GAIA_XY_Z_M: return 4; default: return 0; } } static int pointFromFgf (gaiaGeomCollPtr geom, int endian_arch, const unsigned char *blob, unsigned int size, unsigned int *consumed) { /* decoding a POINT Geometry from FGF */ double x; double y; double z; double m; unsigned int sz = size; const unsigned char *ptr = blob; int coord_dims; int type; /* checking Geometry Type */ if (sz < 4) return 0; if (gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch) != GAIA_POINT) return 0; ptr += 4; sz -= 4; /* checking size */ if (sz < 4) return 0; coord_dims = coordDimsFromFgf (endian_arch, ptr, size, &type); if (!coord_dims) return 0; ptr += 4; sz -= 4; if (sz < (coord_dims * sizeof (double))) return 0; if (consumed) *consumed = coord_dims * sizeof (double); if (type == GAIA_XY_Z) { /* building the POINTZ */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + 8, GAIA_LITTLE_ENDIAN, endian_arch); z = gaiaImport64 (ptr + 8, GAIA_LITTLE_ENDIAN, endian_arch); gaiaAddPointToGeomCollXYZ (geom, x, y, z); } else if (type == GAIA_XY_M) { /* building the POINTM */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + 8, GAIA_LITTLE_ENDIAN, endian_arch); m = gaiaImport64 (ptr + 8, GAIA_LITTLE_ENDIAN, endian_arch); gaiaAddPointToGeomCollXYM (geom, x, y, m); } else if (type == GAIA_XY_Z_M) { /* building the POINTZM */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + 8, GAIA_LITTLE_ENDIAN, endian_arch); z = gaiaImport64 (ptr + 8, GAIA_LITTLE_ENDIAN, endian_arch); m = gaiaImport64 (ptr + 8, GAIA_LITTLE_ENDIAN, endian_arch); gaiaAddPointToGeomCollXYZM (geom, x, y, z, m); } else { /* building the POINT */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + 8, GAIA_LITTLE_ENDIAN, endian_arch); gaiaAddPointToGeomColl (geom, x, y); } return 1; } static int linestringFromFgf (gaiaGeomCollPtr geom, int endian_arch, const unsigned char *blob, unsigned int size, unsigned int *consumed) { /* decoding a LINESTRING Geometry from FGF */ gaiaLinestringPtr ln; int pts; int iv; double x; double y; unsigned int ln_sz; unsigned int sz = size; const unsigned char *ptr = blob; int coord_dims; int type; /* checking Geometry Type */ if (sz < 4) return 0; if (gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch) != GAIA_LINESTRING) return 0; ptr += 4; sz -= 4; /* checking size */ coord_dims = coordDimsFromFgf (endian_arch, ptr, size, &type); if (!coord_dims) return 0; ptr += 4; sz -= 4; /* how many points are there ? */ if (sz < 4) return 0; pts = gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 4; sz -= 4; if (pts < 2) return 0; ln_sz = pts * coord_dims * sizeof (double); if (sz < ln_sz) return 0; if (consumed) *consumed = (12 + ln_sz); if (type == GAIA_XY_Z) { /* building the LINESTRINGZ */ geom->DimensionModel = GAIA_XY_Z; ln = gaiaAddLinestringToGeomColl (geom, pts); for (iv = 0; iv < pts; iv++) { /* inserting vertices into the linestring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPoint (ln->Coords, iv, x, y); } } else if (type == GAIA_XY_M) { /* building the LINESTRINGM */ geom->DimensionModel = GAIA_XY_M; ln = gaiaAddLinestringToGeomColl (geom, pts); for (iv = 0; iv < pts; iv++) { /* inserting vertices into the linestring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPoint (ln->Coords, iv, x, y); } } else if (type == GAIA_XY_Z_M) { /* building the LINESTRINGZM */ geom->DimensionModel = GAIA_XY_Z_M; ln = gaiaAddLinestringToGeomColl (geom, pts); for (iv = 0; iv < pts; iv++) { /* inserting vertices into the linestring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPoint (ln->Coords, iv, x, y); } } else { /* building the LINESTRING */ geom->DimensionModel = GAIA_XY; ln = gaiaAddLinestringToGeomColl (geom, pts); for (iv = 0; iv < pts; iv++) { /* inserting vertices into the linestring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPoint (ln->Coords, iv, x, y); } } return 1; } static int polygonFromFgf (gaiaGeomCollPtr geom, int endian_arch, const unsigned char *blob, unsigned int size, unsigned int *consumed) { /* decoding a POLYGON Geometry from FGF */ gaiaPolygonPtr pg = NULL; gaiaRingPtr rng; int rings; int ir; int pts; int iv; double x; double y; double z; double m; unsigned int rng_sz; unsigned int sz = size; const unsigned char *ptr = blob; int coord_dims; int type; unsigned int bytes = 0; /* checking Geometry Type */ if (sz < 4) return 0; if (gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch) != GAIA_POLYGON) return 0; ptr += 4; sz -= 4; bytes += 4; /* checking size */ coord_dims = coordDimsFromFgf (endian_arch, ptr, size, &type); if (!coord_dims) return 0; ptr += 4; sz -= 4; bytes += 4; /* how many rings are there ? */ if (sz < 4) return 0; rings = gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 4; sz -= 4; bytes += 4; if (rings < 1) return 0; for (ir = 0; ir < rings; ir++) { /* fetching Polygon's rings */ if (sz < 4) return 0; pts = gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 4; sz -= 4; bytes += 4; if (pts < 4) return 0; rng_sz = pts * coord_dims * sizeof (double); if (sz < rng_sz) return 0; bytes += rng_sz; if (type == GAIA_XY_Z) { /* POLYGONZ */ geom->DimensionModel = GAIA_XY_Z; if (ir == 0) { /* building the EXTERIOR RING */ pg = gaiaAddPolygonToGeomColl (geom, pts, rings - 1); rng = pg->Exterior; for (iv = 0; iv < pts; iv++) { /* inserting vertices into the EXTERIOR Ring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); z = gaiaImport64 (ptr + (sizeof (double) * 2), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } } else { /* building an INTERIOR RING */ rng = gaiaAddInteriorRing (pg, ir - 1, pts); for (iv = 0; iv < pts; iv++) { /* inserting vertices into some INTERIOR Ring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); z = gaiaImport64 (ptr + (sizeof (double) * 2), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } } } if (type == GAIA_XY_M) { /* POLYGONM */ geom->DimensionModel = GAIA_XY_M; if (ir == 0) { /* building the EXTERIOR RING */ pg = gaiaAddPolygonToGeomColl (geom, pts, rings - 1); rng = pg->Exterior; for (iv = 0; iv < pts; iv++) { /* inserting vertices into the EXTERIOR Ring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); m = gaiaImport64 (ptr + (sizeof (double) * 2), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPointXYM (rng->Coords, iv, x, y, m); } } else { /* building an INTERIOR RING */ rng = gaiaAddInteriorRing (pg, ir - 1, pts); for (iv = 0; iv < pts; iv++) { /* inserting vertices into some INTERIOR Ring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); m = gaiaImport64 (ptr + (sizeof (double) * 2), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPointXYM (rng->Coords, iv, x, y, m); } } } else if (type == GAIA_XY_Z_M) { /* POLYGONZM */ geom->DimensionModel = GAIA_XY_Z_M; if (ir == 0) { /* building the EXTERIOR RING */ pg = gaiaAddPolygonToGeomColl (geom, pts, rings - 1); rng = pg->Exterior; for (iv = 0; iv < pts; iv++) { /* inserting vertices into the EXTERIOR Ring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); z = gaiaImport64 (ptr + (sizeof (double) * 2), GAIA_LITTLE_ENDIAN, endian_arch); m = gaiaImport64 (ptr + (sizeof (double) * 3), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m); } } else { /* building an INTERIOR RING */ rng = gaiaAddInteriorRing (pg, ir - 1, pts); for (iv = 0; iv < pts; iv++) { /* inserting vertices into some INTERIOR Ring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); z = gaiaImport64 (ptr + (sizeof (double) * 2), GAIA_LITTLE_ENDIAN, endian_arch); m = gaiaImport64 (ptr + (sizeof (double) * 3), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m); } } } else { /* POLYGON */ geom->DimensionModel = GAIA_XY; if (ir == 0) { /* building the EXTERIOR RING */ pg = gaiaAddPolygonToGeomColl (geom, pts, rings - 1); rng = pg->Exterior; for (iv = 0; iv < pts; iv++) { /* inserting vertices into the EXTERIOR Ring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPoint (rng->Coords, iv, x, y); } } else { /* building an INTERIOR RING */ rng = gaiaAddInteriorRing (pg, ir - 1, pts); for (iv = 0; iv < pts; iv++) { /* inserting vertices into some INTERIOR Ring */ x = gaiaImport64 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); y = gaiaImport64 (ptr + sizeof (double), GAIA_LITTLE_ENDIAN, endian_arch); ptr += (coord_dims * sizeof (double)); gaiaSetPoint (rng->Coords, iv, x, y); } } } sz -= rng_sz; } if (consumed) *consumed = bytes; return 1; } static int multiPointFromFgf (gaiaGeomCollPtr geom, int endian_arch, const unsigned char *blob, unsigned int size) { /* decoding a MULTIPOINT Geometry from FGF */ int pts; int ipt; unsigned int sz = size; const unsigned char *ptr = blob; unsigned int consumed; /* checking Geometry Type */ if (sz < 4) return 0; if (gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch) != GAIA_MULTIPOINT) return 0; ptr += 4; sz -= 4; /* how many points are there ? */ if (sz < 4) return 0; pts = gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 4; sz -= 4; if (pts < 1) return 0; for (ipt = 0; ipt < pts; ipt++) { /* fetching individual Points from FGF */ if (!pointFromFgf (geom, endian_arch, ptr, sz, &consumed)) return 0; ptr += consumed; sz -= consumed; } return 1; } static int multiLinestringFromFgf (gaiaGeomCollPtr geom, int endian_arch, const unsigned char *blob, unsigned int size) { /* decoding a MULTILINESTRING Geometry from FGF */ int lns; int iln; unsigned int sz = size; const unsigned char *ptr = blob; unsigned int consumed; /* checking Geometry Type */ if (sz < 4) return 0; if (gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch) != GAIA_MULTILINESTRING) return 0; ptr += 4; sz -= 4; /* how many linestrings are there ? */ if (sz < 4) return 0; lns = gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 4; sz -= 4; if (lns < 1) return 0; for (iln = 0; iln < lns; iln++) { /* fetching individual Linestrings from FGF */ if (!linestringFromFgf (geom, endian_arch, ptr, sz, &consumed)) return 0; ptr += consumed; sz -= consumed; } return 1; } static int multiPolygonFromFgf (gaiaGeomCollPtr geom, int endian_arch, const unsigned char *blob, unsigned int size) { /* decoding a MULTIPOLYGON Geometry from FGF */ int pgs; int ipg; unsigned int sz = size; const unsigned char *ptr = blob; unsigned int consumed; /* checking Geometry Type */ if (sz < 4) return 0; if (gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch) != GAIA_MULTIPOLYGON) return 0; ptr += 4; sz -= 4; /* how many polygons are there ? */ if (sz < 4) return 0; pgs = gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 4; sz -= 4; if (pgs < 1) return 0; for (ipg = 0; ipg < pgs; ipg++) { /* fetching individual Polygons from FGF */ if (!polygonFromFgf (geom, endian_arch, ptr, sz, &consumed)) return 0; ptr += consumed; sz -= consumed; } return 1; } static int geomCollectionFromFgf (gaiaGeomCollPtr geom, int endian_arch, const unsigned char *blob, unsigned int size) { /* decoding a GEOMETRYCOLLECTION Geometry from FGF */ int geoms; int ig; int geom_type; unsigned int sz = size; const unsigned char *ptr = blob; unsigned int consumed; /* checking Geometry Type */ if (sz < 4) return 0; if (gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch) != GAIA_GEOMETRYCOLLECTION) return 0; ptr += 4; sz -= 4; /* how many individual Geometries are there ? */ if (sz < 4) return 0; geoms = gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 4; sz -= 4; if (geoms < 1) return 0; for (ig = 0; ig < geoms; ig++) { /* fetching individual Geometries from FGF */ if (sz < 4) return 0; geom_type = gaiaImport32 (ptr, GAIA_LITTLE_ENDIAN, endian_arch); switch (geom_type) { case GAIA_POINT: if (!pointFromFgf (geom, endian_arch, ptr, sz, &consumed)) return 0; break; case GAIA_LINESTRING: if (!linestringFromFgf (geom, endian_arch, ptr, sz, &consumed)) return 0; break; case GAIA_POLYGON: if (!polygonFromFgf (geom, endian_arch, ptr, sz, &consumed)) return 0; break; default: /* unsupported geometry type */ return 0; break; }; ptr += consumed; sz -= consumed; } return 1; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromFgf (const unsigned char *blob, unsigned int size) { /* decoding from FGF to GEOMETRY */ gaiaGeomCollPtr geom = NULL; int geom_type; int endian_arch = gaiaEndianArch (); if (size < 4) return NULL; /* checking FGF type */ geom_type = gaiaImport32 (blob, GAIA_LITTLE_ENDIAN, endian_arch); geom = gaiaAllocGeomColl (); geom->DeclaredType = geom_type; switch (geom_type) { case GAIA_POINT: if (pointFromFgf (geom, endian_arch, blob, size, NULL)) return geom; break; case GAIA_LINESTRING: if (linestringFromFgf (geom, endian_arch, blob, size, NULL)) return geom; break; case GAIA_POLYGON: if (polygonFromFgf (geom, endian_arch, blob, size, NULL)) return geom; break; case GAIA_MULTIPOINT: if (multiPointFromFgf (geom, endian_arch, blob, size)) return geom; break; case GAIA_MULTILINESTRING: if (multiLinestringFromFgf (geom, endian_arch, blob, size)) return geom; break; case GAIA_MULTIPOLYGON: if (multiPolygonFromFgf (geom, endian_arch, blob, size)) return geom; break; case GAIA_GEOMETRYCOLLECTION: if (geomCollectionFromFgf (geom, endian_arch, blob, size)) return geom; break; default: /* unsupported geometry type */ break; }; gaiaFreeGeomColl (geom); return NULL; } GAIAGEO_DECLARE void gaiaToFgf (gaiaGeomCollPtr geom, unsigned char **result, int *size, int coord_dims) { /* builds the FGF representation for this GEOMETRY */ int ib; int iv; double x; double y; double z; double m; int entities = 0; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; int type; int n_coords; unsigned char *ptr; int sz = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaPointPtr point = NULL; gaiaLinestringPtr line = NULL; gaiaPolygonPtr polyg = NULL; int endian_arch = gaiaEndianArch (); gaiaMbrGeometry (geom); switch (coord_dims) { case GAIA_XY: n_coords = 2; break; case GAIA_XY_M: case GAIA_XY_Z: n_coords = 3; break; case GAIA_XY_Z_M: n_coords = 4; break; default: n_coords = 0; break; } /* how many entities, and of what kind, do we have ? */ pt = geom->FirstPoint; while (pt) { point = pt; entities++; n_points++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { line = ln; entities++; n_linestrings++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { polyg = pg; entities++; n_polygons++; pg = pg->Next; } *size = 0; sz = 0; *result = NULL; if (n_points == 0 && n_polygons == 0 && n_linestrings == 0) return; /* ok, we can determine the geometry class */ if (n_points == 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTIPOINT) type = GAIA_MULTIPOINT; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_POINT; } else if (n_points > 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_MULTIPOINT; } else if (n_points == 0 && n_linestrings == 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTILINESTRING) type = GAIA_MULTILINESTRING; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_LINESTRING; } else if (n_points == 0 && n_linestrings > 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_MULTILINESTRING; } else if (n_points == 0 && n_linestrings == 0 && n_polygons == 1) { if (geom->DeclaredType == GAIA_MULTIPOLYGON) type = GAIA_MULTIPOLYGON; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_POLYGON; } else if (n_points == 0 && n_linestrings == 0 && n_polygons > 1) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOMETRYCOLLECTION; else type = GAIA_MULTIPOLYGON; } else type = GAIA_GEOMETRYCOLLECTION; /* and now we compute the size of FGF */ if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) sz += 8; point = geom->FirstPoint; while (point) { sz += (8 + (n_coords * sizeof (double))); /* the size of each POINT */ point = point->Next; } line = geom->FirstLinestring; while (line) { sz += (12 + ((n_coords * sizeof (double)) * line->Points)); /* # points + [x,y] for each vertex */ line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { rng = polyg->Exterior; sz += (16 + ((n_coords * sizeof (double)) * rng->Points)); /* # rings + # points + [x.y] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; sz += (4 + ((n_coords * sizeof (double)) * rng->Points)); /* # points + [x,y] array - interior ring */ } polyg = polyg->Next; } *size = sz; ptr = malloc (sz); *result = ptr; /* and finally we build the FGF */ if (type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) { gaiaExport32 (ptr, type, GAIA_LITTLE_ENDIAN, endian_arch); /* Geometry Type */ ptr += 4; gaiaExport32 (ptr, entities, GAIA_LITTLE_ENDIAN, endian_arch); /* it's a collection; # entities */ ptr += 4; } point = geom->FirstPoint; while (point) { gaiaExport32 (ptr, GAIA_POINT, GAIA_LITTLE_ENDIAN, endian_arch); /* the CLASS TYPE for this element */ ptr += 4; gaiaExport32 (ptr, coord_dims, GAIA_LITTLE_ENDIAN, endian_arch); /* the CoordDimension */ ptr += 4; gaiaExport64 (ptr, point->X, GAIA_LITTLE_ENDIAN, endian_arch); /* X */ ptr += 8; gaiaExport64 (ptr, point->Y, GAIA_LITTLE_ENDIAN, endian_arch); /* Y */ ptr += 8; if (n_coords > 2) { /* the third coordinate [Z or M] */ if (coord_dims == GAIA_XY_Z || coord_dims == GAIA_XY_Z_M) gaiaExport64 (ptr, point->Z, GAIA_LITTLE_ENDIAN, endian_arch); else gaiaExport64 (ptr, point->M, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 8; } if (n_coords > 3) { /* the fourth coordinate [M] */ gaiaExport64 (ptr, point->M, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 8; } point = point->Next; } line = geom->FirstLinestring; while (line) { gaiaExport32 (ptr, GAIA_LINESTRING, GAIA_LITTLE_ENDIAN, endian_arch); /* the CLASS TYPE for this element */ ptr += 4; gaiaExport32 (ptr, coord_dims, GAIA_LITTLE_ENDIAN, endian_arch); /* the CoordDimension */ ptr += 4; gaiaExport32 (ptr, line->Points, GAIA_LITTLE_ENDIAN, endian_arch); /* # points */ ptr += 4; for (iv = 0; iv < line->Points; iv++) { z = 0.0; m = 0.0; if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, GAIA_LITTLE_ENDIAN, endian_arch); /* X */ ptr += 8; gaiaExport64 (ptr, y, GAIA_LITTLE_ENDIAN, endian_arch); /* Y */ ptr += 8; if (n_coords > 2) { /* the third coordinate [Z or M] */ if (coord_dims == GAIA_XY_Z || coord_dims == GAIA_XY_Z_M) gaiaExport64 (ptr, z, GAIA_LITTLE_ENDIAN, endian_arch); else gaiaExport64 (ptr, m, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 8; } if (n_coords > 3) { /* the fourth coordinate [M]; */ gaiaExport64 (ptr, m, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 8; } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { gaiaExport32 (ptr, GAIA_POLYGON, GAIA_LITTLE_ENDIAN, endian_arch); /* the CLASS TYPE for this element */ ptr += 4; gaiaExport32 (ptr, coord_dims, GAIA_LITTLE_ENDIAN, endian_arch); /* the CoordDimension */ ptr += 4; gaiaExport32 (ptr, polyg->NumInteriors + 1, GAIA_LITTLE_ENDIAN, endian_arch); /* # rings */ ptr += 4; rng = polyg->Exterior; gaiaExport32 (ptr, rng->Points, GAIA_LITTLE_ENDIAN, endian_arch); /* # points - exterior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { z = 0.0; m = 0.0; if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, GAIA_LITTLE_ENDIAN, endian_arch); /* X - exterior ring */ ptr += 8; gaiaExport64 (ptr, y, GAIA_LITTLE_ENDIAN, endian_arch); /* Y - exterior ring */ ptr += 8; if (n_coords > 2) { /* the third coordinate [Z or M] */ if (coord_dims == GAIA_XY_Z || coord_dims == GAIA_XY_Z_M) gaiaExport64 (ptr, z, GAIA_LITTLE_ENDIAN, endian_arch); else gaiaExport64 (ptr, m, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 8; } if (n_coords > 3) { /* the fourth coordinate [M] */ gaiaExport64 (ptr, m, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 8; } } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { z = 0.0; m = 0.0; if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, GAIA_LITTLE_ENDIAN, endian_arch); /* X - interior ring */ ptr += 8; gaiaExport64 (ptr, y, GAIA_LITTLE_ENDIAN, endian_arch); /* Y - interior ring */ ptr += 8; if (n_coords > 2) { /* the third coordinate [Z or M]; defaulting to ZERO */ if (coord_dims == GAIA_XY_Z || coord_dims == GAIA_XY_Z_M) gaiaExport64 (ptr, z, GAIA_LITTLE_ENDIAN, endian_arch); else gaiaExport64 (ptr, m, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 8; } if (n_coords > 3) { /* the fourth coordinate [M] */ gaiaExport64 (ptr, m, GAIA_LITTLE_ENDIAN, endian_arch); ptr += 8; } } } polyg = polyg->Next; } } libspatialite-4.3.0a/src/gaiageo/gg_endian.c0000664000175000017500000004225212544707704015711 00000000000000/* gg_endian.c -- Gaia functions for litte/big endian values handling version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include GAIAGEO_DECLARE int gaiaEndianArch () { /* checking if target CPU is a little-endian one */ union cvt { unsigned char byte[4]; int int_value; } convert; convert.int_value = 1; if (convert.byte[0] == 0) return 0; return 1; } GAIAGEO_DECLARE short gaiaImport16 (const unsigned char *p, int little_endian, int little_endian_arch) { /* fetches a 16bit int from BLOB respecting declared endiannes */ union cvt { unsigned char byte[2]; short short_value; } convert; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 1); convert.byte[1] = *(p + 0); } else { /* Little Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); } else { /* Little Endian data */ convert.byte[0] = *(p + 1); convert.byte[1] = *(p + 0); } } return convert.short_value; } GAIAGEO_DECLARE int gaiaImport32 (const unsigned char *p, int little_endian, int little_endian_arch) { /* fetches a 32bit int from BLOB respecting declared endiannes */ union cvt { unsigned char byte[4]; int int_value; } convert; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } else { /* Little Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } else { /* Little Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } } return convert.int_value; } GAIAGEO_DECLARE unsigned int gaiaImportU32 (const unsigned char *p, int little_endian, int little_endian_arch) { /* fetches a 32bit uint from BLOB respecting declared endiannes */ union cvt { unsigned char byte[4]; unsigned int int_value; } convert; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } else { /* Little Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } else { /* Little Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } } return convert.int_value; } GAIAGEO_DECLARE float gaiaImportF32 (const unsigned char *p, int little_endian, int little_endian_arch) { /* fetches a 32bit float from BLOB respecting declared endiannes */ union cvt { unsigned char byte[4]; float flt_value; } convert; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } else { /* Little Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } else { /* Little Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } } return convert.flt_value; } GAIAGEO_DECLARE double gaiaImport64 (const unsigned char *p, int little_endian, int little_endian_arch) { /* fetches a 64bit double from BLOB respecting declared endiannes */ union cvt { unsigned char byte[8]; double double_value; } convert; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 7); convert.byte[1] = *(p + 6); convert.byte[2] = *(p + 5); convert.byte[3] = *(p + 4); convert.byte[4] = *(p + 3); convert.byte[5] = *(p + 2); convert.byte[6] = *(p + 1); convert.byte[7] = *(p + 0); } else { /* Little Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); convert.byte[4] = *(p + 4); convert.byte[5] = *(p + 5); convert.byte[6] = *(p + 6); convert.byte[7] = *(p + 7); } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); convert.byte[4] = *(p + 4); convert.byte[5] = *(p + 5); convert.byte[6] = *(p + 6); convert.byte[7] = *(p + 7); } else { /* Little Endian data */ convert.byte[0] = *(p + 7); convert.byte[1] = *(p + 6); convert.byte[2] = *(p + 5); convert.byte[3] = *(p + 4); convert.byte[4] = *(p + 3); convert.byte[5] = *(p + 2); convert.byte[6] = *(p + 1); convert.byte[7] = *(p + 0); } } return convert.double_value; } GAIAGEO_DECLARE sqlite3_int64 gaiaImportI64 (const unsigned char *p, int little_endian, int little_endian_arch) { /* fetches a 64bit INT from BLOB respecting declared endiannes */ union cvt { unsigned char byte[8]; sqlite3_int64 int64_value; } convert; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 7); convert.byte[1] = *(p + 6); convert.byte[2] = *(p + 5); convert.byte[3] = *(p + 4); convert.byte[4] = *(p + 3); convert.byte[5] = *(p + 2); convert.byte[6] = *(p + 1); convert.byte[7] = *(p + 0); } else { /* Little Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); convert.byte[4] = *(p + 4); convert.byte[5] = *(p + 5); convert.byte[6] = *(p + 6); convert.byte[7] = *(p + 7); } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); convert.byte[4] = *(p + 4); convert.byte[5] = *(p + 5); convert.byte[6] = *(p + 6); convert.byte[7] = *(p + 7); } else { /* Little Endian data */ convert.byte[0] = *(p + 7); convert.byte[1] = *(p + 6); convert.byte[2] = *(p + 5); convert.byte[3] = *(p + 4); convert.byte[4] = *(p + 3); convert.byte[5] = *(p + 2); convert.byte[6] = *(p + 1); convert.byte[7] = *(p + 0); } } return convert.int64_value; } GAIAGEO_DECLARE void gaiaExport16 (unsigned char *p, short value, int little_endian, int little_endian_arch) { /* stores a 16bit int into a BLOB respecting declared endiannes */ union cvt { unsigned char byte[2]; short short_value; } convert; convert.short_value = value; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ *(p + 1) = convert.byte[1]; *(p + 0) = convert.byte[0]; } else { /* Little Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; } else { /* Little Endian data */ *(p + 1) = convert.byte[0]; *(p + 0) = convert.byte[1]; } } } GAIAGEO_DECLARE void gaiaExport32 (unsigned char *p, int value, int little_endian, int little_endian_arch) { /* stores a 32bit int into a BLOB respecting declared endiannes */ union cvt { unsigned char byte[4]; int int_value; } convert; convert.int_value = value; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ *(p + 3) = convert.byte[0]; *(p + 2) = convert.byte[1]; *(p + 1) = convert.byte[2]; *(p + 0) = convert.byte[3]; } else { /* Little Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; } else { /* Little Endian data */ *(p + 3) = convert.byte[0]; *(p + 2) = convert.byte[1]; *(p + 1) = convert.byte[2]; *(p + 0) = convert.byte[3]; } } } GAIAGEO_DECLARE void gaiaExportU32 (unsigned char *p, unsigned int value, int little_endian, int little_endian_arch) { /* stores a 32bit int into a BLOB respecting declared endiannes */ union cvt { unsigned char byte[4]; unsigned int int_value; } convert; convert.int_value = value; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ *(p + 3) = convert.byte[0]; *(p + 2) = convert.byte[1]; *(p + 1) = convert.byte[2]; *(p + 0) = convert.byte[3]; } else { /* Little Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; } else { /* Little Endian data */ *(p + 3) = convert.byte[0]; *(p + 2) = convert.byte[1]; *(p + 1) = convert.byte[2]; *(p + 0) = convert.byte[3]; } } } GAIAGEO_DECLARE void gaiaExportF32 (unsigned char *p, float value, int little_endian, int little_endian_arch) { /* stores a 32bit float into a BLOB respecting declared endiannes */ union cvt { unsigned char byte[4]; float flt_value; } convert; convert.flt_value = value; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ *(p + 3) = convert.byte[0]; *(p + 2) = convert.byte[1]; *(p + 1) = convert.byte[2]; *(p + 0) = convert.byte[3]; } else { /* Little Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; } else { /* Little Endian data */ *(p + 3) = convert.byte[0]; *(p + 2) = convert.byte[1]; *(p + 1) = convert.byte[2]; *(p + 0) = convert.byte[3]; } } } GAIAGEO_DECLARE void gaiaExport64 (unsigned char *p, double value, int little_endian, int little_endian_arch) { /* stores a 64bit double into a BLOB respecting declared endiannes */ union cvt { unsigned char byte[8]; double double_value; } convert; convert.double_value = value; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ *(p + 7) = convert.byte[0]; *(p + 6) = convert.byte[1]; *(p + 5) = convert.byte[2]; *(p + 4) = convert.byte[3]; *(p + 3) = convert.byte[4]; *(p + 2) = convert.byte[5]; *(p + 1) = convert.byte[6]; *(p + 0) = convert.byte[7]; } else { /* Little Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; *(p + 4) = convert.byte[4]; *(p + 5) = convert.byte[5]; *(p + 6) = convert.byte[6]; *(p + 7) = convert.byte[7]; } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; *(p + 4) = convert.byte[4]; *(p + 5) = convert.byte[5]; *(p + 6) = convert.byte[6]; *(p + 7) = convert.byte[7]; } else { /* Little Endian data */ *(p + 7) = convert.byte[0]; *(p + 6) = convert.byte[1]; *(p + 5) = convert.byte[2]; *(p + 4) = convert.byte[3]; *(p + 3) = convert.byte[4]; *(p + 2) = convert.byte[5]; *(p + 1) = convert.byte[6]; *(p + 0) = convert.byte[7]; } } } GAIAGEO_DECLARE void gaiaExportI64 (unsigned char *p, sqlite3_int64 value, int little_endian, int little_endian_arch) { /* stores a 64bit INT into a BLOB respecting declared endiannes */ union cvt { unsigned char byte[8]; sqlite3_int64 int64_value; } convert; convert.int64_value = value; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ *(p + 7) = convert.byte[0]; *(p + 6) = convert.byte[1]; *(p + 5) = convert.byte[2]; *(p + 4) = convert.byte[3]; *(p + 3) = convert.byte[4]; *(p + 2) = convert.byte[5]; *(p + 1) = convert.byte[6]; *(p + 0) = convert.byte[7]; } else { /* Little Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; *(p + 4) = convert.byte[4]; *(p + 5) = convert.byte[5]; *(p + 6) = convert.byte[6]; *(p + 7) = convert.byte[7]; } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ *(p + 0) = convert.byte[0]; *(p + 1) = convert.byte[1]; *(p + 2) = convert.byte[2]; *(p + 3) = convert.byte[3]; *(p + 4) = convert.byte[4]; *(p + 5) = convert.byte[5]; *(p + 6) = convert.byte[6]; *(p + 7) = convert.byte[7]; } else { /* Little Endian data */ *(p + 7) = convert.byte[0]; *(p + 6) = convert.byte[1]; *(p + 5) = convert.byte[2]; *(p + 4) = convert.byte[3]; *(p + 3) = convert.byte[4]; *(p + 2) = convert.byte[5]; *(p + 1) = convert.byte[6]; *(p + 0) = convert.byte[7]; } } } libspatialite-4.3.0a/src/gaiageo/vanuatuWkt.c0000664000175000017500000030170712544707704016152 00000000000000/* Driver template for the LEMON parser generator. ** The author disclaims copyright to this source code. */ /* First off, code is included that follows the "include" declaration ** in the input grammar file. */ #include /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ /* ** These constants (all generated automatically by the parser generator) ** specify the various kinds of tokens (terminals) that the parser ** understands. ** ** Each symbol here is a terminal symbol in the grammar. */ /* Make sure the INTERFACE macro is defined. */ #ifndef INTERFACE #define INTERFACE 1 #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. ** YYCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. ** YYNOCODE is a number of type YYCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. ** YYFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. ** YYACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** ParseTOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. ** YYMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is ParseTOKENTYPE. The entry in the union ** for base tokens is called "yy0". ** YYSTACKDEPTH is the maximum depth of the parser's stack. If ** zero the stack is dynamically sized using realloc() ** ParseARG_SDECL A static variable declaration for the %extra_argument ** ParseARG_PDECL A parameter declaration for the %extra_argument ** ParseARG_STORE Code to store %extra_argument into yypParser ** ParseARG_FETCH Code to extract %extra_argument from yypParser ** YYNSTATE the combined number of states. ** YYNRULE the number of rules in the grammar ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ #define YYCODETYPE unsigned char #define YYNOCODE 133 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE void * typedef union { int yyinit; ParseTOKENTYPE yy0; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 1000000 #endif #define ParseARG_SDECL struct vanuatu_data *p_data ; #define ParseARG_PDECL , struct vanuatu_data *p_data #define ParseARG_FETCH struct vanuatu_data *p_data = yypParser->p_data #define ParseARG_STORE yypParser->p_data = p_data #define YYNSTATE 490 #define YYNRULE 201 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) /* The yyzerominor constant is used to initialize instances of ** YYMINORTYPE objects to zero. */ static const YYMINORTYPE yyzerominor = { 0 }; /* Define the yytestcase() macro to be a no-op if is not already defined ** otherwise. ** ** Applications can choose to define yytestcase() in the %include section ** to a macro that can assist in verifying code coverage. For production ** code the yytestcase() macro should be turned off. But it is useful ** for testing. */ #ifndef yytestcase #define yytestcase(X) #endif /* Next are the tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement ** functions that take a state number and lookahead value and return an ** action integer. ** ** Suppose the action integer is N. Then the action is determined as ** follows ** ** 0 <= N < YYNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** ** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. ** ** N == YYNSTATE+YYNRULE A syntax error has occurred. ** ** N == YYNSTATE+YYNRULE+1 The parser accepts its input. ** ** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused ** slots in the yy_action[] table. ** ** The action table is constructed as a single large table named yy_action[]. ** Given state S and lookahead X, the action is computed as ** ** yy_action[ yy_shift_ofst[S] + X ] ** ** If the index value yy_shift_ofst[S]+X is out of range or if the value ** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] ** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table ** and that yy_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after ** a reduce action) then the yy_reduce_ofst[] array is used in place of ** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of ** YY_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** ** yy_action[] A single table containing all actions. ** yy_lookahead[] A table containing the lookahead for each entry in ** yy_action. Used to detect hash collisions. ** yy_shift_ofst[] For each state, the offset into yy_action for ** shifting terminals. ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { /* 0 */ 230, 316, 317, 318, 319, 320, 321, 322, 323, 324, /* 10 */ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, /* 20 */ 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, /* 30 */ 345, 346, 347, 348, 490, 238, 231, 51, 93, 233, /* 40 */ 235, 237, 94, 46, 54, 57, 60, 63, 66, 72, /* 50 */ 78, 84, 90, 97, 105, 113, 122, 127, 132, 137, /* 60 */ 142, 147, 152, 157, 162, 179, 196, 213, 231, 231, /* 70 */ 101, 351, 350, 233, 47, 102, 54, 54, 234, 57, /* 80 */ 66, 66, 47, 72, 90, 90, 241, 97, 122, 122, /* 90 */ 47, 127, 142, 142, 233, 147, 177, 170, 58, 194, /* 100 */ 57, 235, 47, 235, 72, 692, 1, 60, 97, 60, /* 110 */ 59, 78, 127, 78, 47, 105, 147, 105, 253, 132, /* 120 */ 187, 132, 47, 152, 237, 152, 48, 211, 91, 204, /* 130 */ 63, 237, 254, 351, 84, 98, 47, 63, 113, 106, /* 140 */ 351, 84, 137, 114, 351, 113, 157, 232, 351, 137, /* 150 */ 228, 109, 46, 157, 49, 236, 110, 221, 49, 163, /* 160 */ 172, 173, 174, 175, 176, 164, 165, 166, 167, 168, /* 170 */ 169, 180, 189, 190, 191, 192, 193, 181, 182, 183, /* 180 */ 184, 185, 186, 353, 50, 197, 206, 207, 208, 209, /* 190 */ 210, 355, 198, 199, 200, 201, 202, 203, 18, 52, /* 200 */ 358, 20, 214, 223, 224, 225, 226, 227, 21, 53, /* 210 */ 215, 216, 217, 218, 219, 220, 239, 118, 55, 51, /* 220 */ 56, 46, 119, 46, 243, 46, 61, 49, 62, 49, /* 230 */ 245, 49, 51, 64, 65, 51, 51, 248, 249, 250, /* 240 */ 70, 357, 46, 46, 46, 46, 255, 76, 240, 258, /* 250 */ 47, 47, 49, 259, 260, 82, 49, 49, 49, 361, /* 260 */ 263, 264, 51, 51, 265, 88, 51, 51, 359, 23, /* 270 */ 242, 24, 26, 362, 27, 29, 67, 30, 69, 364, /* 280 */ 244, 73, 365, 34, 367, 246, 368, 79, 251, 370, /* 290 */ 75, 38, 81, 85, 256, 374, 68, 42, 247, 71, /* 300 */ 87, 261, 10, 373, 92, 74, 378, 252, 77, 267, /* 310 */ 377, 266, 95, 80, 382, 257, 83, 269, 381, 268, /* 320 */ 86, 91, 96, 262, 89, 386, 385, 11, 389, 99, /* 330 */ 391, 100, 270, 272, 271, 103, 98, 12, 104, 394, /* 340 */ 396, 107, 106, 108, 111, 274, 273, 13, 401, 277, /* 350 */ 120, 114, 123, 112, 275, 115, 125, 279, 399, 406, /* 360 */ 278, 116, 117, 276, 128, 404, 408, 130, 121, 133, /* 370 */ 280, 135, 138, 409, 140, 143, 145, 148, 153, 150, /* 380 */ 124, 126, 155, 158, 129, 131, 160, 2, 3, 4, /* 390 */ 134, 5, 136, 693, 693, 693, 693, 139, 693, 141, /* 400 */ 693, 693, 693, 144, 693, 146, 693, 6, 412, 7, /* 410 */ 411, 693, 149, 151, 693, 281, 415, 154, 414, 156, /* 420 */ 693, 693, 282, 693, 417, 159, 418, 161, 693, 693, /* 430 */ 693, 8, 283, 421, 420, 693, 284, 693, 423, 424, /* 440 */ 693, 693, 9, 693, 285, 693, 693, 427, 693, 426, /* 450 */ 693, 693, 286, 693, 429, 693, 693, 693, 693, 693, /* 460 */ 430, 693, 693, 693, 693, 287, 432, 693, 433, 693, /* 470 */ 434, 435, 693, 436, 437, 171, 315, 14, 438, 15, /* 480 */ 288, 289, 290, 291, 292, 293, 460, 178, 294, 445, /* 490 */ 349, 352, 16, 19, 354, 17, 693, 447, 360, 356, /* 500 */ 448, 693, 22, 363, 693, 449, 693, 450, 366, 25, /* 510 */ 451, 693, 452, 188, 453, 28, 295, 369, 296, 297, /* 520 */ 298, 299, 300, 195, 371, 31, 32, 33, 372, 375, /* 530 */ 35, 36, 37, 376, 379, 39, 301, 40, 462, 463, /* 540 */ 464, 465, 205, 466, 467, 41, 380, 468, 302, 303, /* 550 */ 304, 383, 212, 305, 43, 306, 384, 307, 44, 475, /* 560 */ 45, 387, 388, 390, 392, 308, 477, 393, 478, 395, /* 570 */ 479, 480, 397, 398, 481, 222, 482, 400, 402, 403, /* 580 */ 405, 483, 407, 410, 309, 413, 310, 416, 419, 422, /* 590 */ 425, 428, 311, 431, 439, 440, 229, 312, 313, 441, /* 600 */ 442, 443, 314, 444, 446, 454, 455, 456, 457, 458, /* 610 */ 459, 461, 469, 470, 471, 472, 473, 474, 476, 484, /* 620 */ 485, 486, 487, 488, 489, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, /* 10 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, /* 20 */ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, /* 30 */ 67, 68, 69, 70, 0, 74, 2, 76, 71, 5, /* 40 */ 6, 7, 75, 76, 10, 11, 12, 13, 14, 15, /* 50 */ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, /* 60 */ 26, 27, 28, 29, 30, 31, 32, 33, 2, 2, /* 70 */ 72, 8, 76, 5, 76, 77, 10, 10, 72, 11, /* 80 */ 14, 14, 76, 15, 18, 18, 72, 19, 22, 22, /* 90 */ 76, 23, 26, 26, 5, 27, 30, 30, 72, 31, /* 100 */ 11, 6, 76, 6, 15, 35, 36, 12, 19, 12, /* 110 */ 72, 16, 23, 16, 76, 20, 27, 20, 72, 24, /* 120 */ 31, 24, 76, 28, 7, 28, 76, 32, 3, 32, /* 130 */ 13, 7, 72, 8, 17, 3, 76, 13, 21, 3, /* 140 */ 8, 17, 25, 3, 8, 21, 29, 71, 8, 25, /* 150 */ 33, 73, 76, 29, 76, 73, 78, 33, 76, 43, /* 160 */ 44, 45, 46, 47, 48, 43, 44, 45, 46, 47, /* 170 */ 48, 57, 58, 59, 60, 61, 62, 57, 58, 59, /* 180 */ 60, 61, 62, 76, 76, 50, 51, 52, 53, 54, /* 190 */ 55, 76, 50, 51, 52, 53, 54, 55, 3, 76, /* 200 */ 88, 9, 64, 65, 66, 67, 68, 69, 3, 76, /* 210 */ 64, 65, 66, 67, 68, 69, 71, 74, 71, 76, /* 220 */ 71, 76, 79, 76, 73, 76, 73, 76, 73, 76, /* 230 */ 74, 76, 76, 74, 74, 76, 76, 71, 71, 71, /* 240 */ 71, 76, 76, 76, 76, 76, 72, 72, 84, 73, /* 250 */ 76, 76, 76, 73, 73, 73, 76, 76, 76, 89, /* 260 */ 74, 74, 76, 76, 74, 74, 76, 76, 84, 9, /* 270 */ 85, 3, 9, 85, 3, 9, 3, 3, 9, 90, /* 280 */ 86, 3, 86, 3, 91, 87, 87, 3, 84, 92, /* 290 */ 9, 3, 9, 3, 85, 93, 96, 3, 97, 96, /* 300 */ 9, 86, 3, 97, 76, 98, 94, 99, 98, 76, /* 310 */ 99, 87, 9, 100, 95, 101, 100, 80, 101, 84, /* 320 */ 102, 3, 75, 103, 102, 104, 103, 3, 80, 76, /* 330 */ 105, 76, 76, 81, 85, 9, 3, 3, 77, 81, /* 340 */ 106, 76, 3, 76, 9, 86, 76, 3, 107, 87, /* 350 */ 9, 3, 3, 78, 82, 76, 9, 112, 82, 108, /* 360 */ 83, 76, 76, 76, 3, 83, 112, 9, 79, 3, /* 370 */ 113, 9, 3, 109, 9, 3, 9, 3, 3, 9, /* 380 */ 88, 88, 9, 3, 89, 89, 9, 3, 9, 3, /* 390 */ 90, 9, 90, 132, 132, 132, 132, 91, 132, 91, /* 400 */ 132, 132, 132, 92, 132, 92, 132, 3, 110, 9, /* 410 */ 113, 132, 93, 93, 132, 114, 111, 94, 114, 94, /* 420 */ 132, 132, 115, 132, 115, 95, 116, 95, 132, 132, /* 430 */ 132, 3, 120, 117, 120, 132, 121, 132, 121, 118, /* 440 */ 132, 132, 9, 132, 122, 132, 132, 119, 132, 122, /* 450 */ 132, 132, 123, 132, 123, 132, 132, 132, 132, 132, /* 460 */ 124, 132, 132, 132, 132, 128, 128, 132, 128, 132, /* 470 */ 128, 128, 132, 128, 128, 124, 1, 3, 128, 3, /* 480 */ 128, 128, 128, 128, 128, 128, 126, 124, 129, 125, /* 490 */ 4, 4, 3, 9, 4, 3, 132, 129, 4, 4, /* 500 */ 129, 132, 9, 4, 132, 129, 132, 129, 4, 9, /* 510 */ 129, 132, 129, 125, 129, 9, 129, 4, 129, 129, /* 520 */ 129, 129, 129, 125, 4, 9, 9, 9, 4, 4, /* 530 */ 9, 9, 9, 4, 4, 9, 130, 9, 130, 130, /* 540 */ 130, 130, 126, 130, 130, 9, 4, 130, 130, 130, /* 550 */ 130, 4, 126, 130, 9, 130, 4, 130, 9, 127, /* 560 */ 9, 4, 4, 4, 4, 131, 131, 4, 131, 4, /* 570 */ 131, 131, 4, 4, 131, 127, 131, 4, 4, 4, /* 580 */ 4, 131, 4, 4, 131, 4, 131, 4, 4, 4, /* 590 */ 4, 4, 131, 4, 4, 4, 127, 131, 131, 4, /* 600 */ 4, 4, 131, 4, 4, 4, 4, 4, 4, 4, /* 610 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, /* 620 */ 4, 4, 4, 4, 4, }; #define YY_SHIFT_USE_DFLT (-1) #define YY_SHIFT_MAX 314 static const short yy_shift_ofst[] = { /* 0 */ -1, 34, 66, 67, 68, 89, 95, 97, 117, 124, /* 10 */ 125, 132, 136, 140, 63, 63, 63, 63, 63, 63, /* 20 */ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, /* 30 */ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, /* 40 */ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, /* 50 */ 63, 63, 63, 63, 195, 192, 192, 205, 260, 260, /* 60 */ 268, 263, 263, 271, 266, 266, 273, 274, 269, 274, /* 70 */ 192, 269, 278, 280, 281, 280, 260, 281, 284, 288, /* 80 */ 283, 288, 263, 283, 290, 294, 291, 294, 266, 291, /* 90 */ 299, 63, 63, 192, 303, 318, 303, 324, 63, 63, /* 100 */ 63, 260, 326, 333, 326, 334, 63, 63, 63, 263, /* 110 */ 335, 339, 335, 344, 63, 63, 63, 63, 266, 341, /* 120 */ 348, 341, 349, 195, 347, 195, 347, 361, 205, 358, /* 130 */ 205, 358, 366, 268, 362, 268, 362, 369, 271, 365, /* 140 */ 271, 365, 372, 273, 367, 273, 367, 374, 278, 370, /* 150 */ 278, 370, 375, 284, 373, 284, 373, 380, 290, 377, /* 160 */ 290, 377, 384, 379, 379, 379, 379, 379, 379, 379, /* 170 */ 384, 379, 379, 379, 379, 379, 379, 384, 379, 386, /* 180 */ 382, 382, 382, 382, 382, 382, 382, 386, 382, 382, /* 190 */ 382, 382, 382, 382, 386, 382, 404, 400, 400, 400, /* 200 */ 400, 400, 400, 400, 404, 400, 400, 400, 400, 400, /* 210 */ 400, 404, 400, 428, 433, 433, 433, 433, 433, 433, /* 220 */ 433, 428, 433, 433, 433, 433, 433, 433, 428, 433, /* 230 */ 475, 474, 486, 476, 487, 489, 490, 492, 495, 484, /* 240 */ 494, 493, 499, 500, 504, 506, 513, 520, 516, 517, /* 250 */ 518, 524, 525, 521, 522, 523, 529, 530, 526, 528, /* 260 */ 536, 542, 547, 545, 549, 551, 552, 557, 558, 559, /* 270 */ 560, 563, 565, 568, 569, 573, 574, 575, 576, 578, /* 280 */ 579, 581, 583, 584, 585, 586, 587, 589, 590, 591, /* 290 */ 595, 596, 597, 599, 600, 601, 602, 603, 604, 605, /* 300 */ 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, /* 310 */ 616, 617, 618, 619, 620, }; #define YY_REDUCE_USE_DFLT (-40) #define YY_REDUCE_MAX 229 static const short yy_reduce_ofst[] = { /* 0 */ 70, -37, 116, 122, 114, 120, 135, 142, 138, 146, /* 10 */ -33, -2, 78, 143, 76, 6, 82, -39, 145, 147, /* 20 */ 149, 14, 26, 38, 151, 153, 155, 156, 159, 160, /* 30 */ 166, 167, 168, 169, 46, 60, 174, 175, 176, 180, /* 40 */ 181, 182, 186, 187, 190, 191, -4, 50, 107, 108, /* 50 */ 115, 123, 133, 165, 112, 164, 184, 170, 185, 188, /* 60 */ 189, 194, 196, 193, 198, 199, 197, 200, 201, 203, /* 70 */ 204, 206, 202, 207, 208, 210, 209, 211, 212, 213, /* 80 */ 214, 216, 215, 217, 219, 218, 220, 222, 224, 223, /* 90 */ 221, 228, 233, 235, 237, 247, 248, 225, 253, 255, /* 100 */ 256, 249, 252, 261, 258, 234, 265, 267, 270, 259, /* 110 */ 272, 275, 276, 241, 279, 285, 286, 287, 262, 277, /* 120 */ 289, 282, 251, 292, 245, 293, 254, 264, 295, 257, /* 130 */ 296, 297, 298, 300, 301, 302, 304, 305, 306, 307, /* 140 */ 308, 309, 310, 311, 312, 313, 314, 316, 319, 315, /* 150 */ 320, 317, 321, 323, 322, 325, 327, 328, 330, 329, /* 160 */ 332, 331, 336, 337, 338, 340, 342, 343, 345, 346, /* 170 */ 351, 350, 352, 353, 354, 355, 356, 363, 357, 364, /* 180 */ 359, 368, 371, 376, 378, 381, 383, 388, 385, 387, /* 190 */ 389, 390, 391, 392, 398, 393, 360, 406, 408, 409, /* 200 */ 410, 411, 413, 414, 416, 417, 418, 419, 420, 423, /* 210 */ 425, 426, 427, 432, 434, 435, 437, 439, 440, 443, /* 220 */ 445, 448, 450, 453, 455, 461, 466, 467, 469, 471, }; static const YYACTIONTYPE yy_default[] = { /* 0 */ 491, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 10 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 20 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 30 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 40 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 50 */ 691, 691, 691, 691, 691, 547, 547, 691, 549, 549, /* 60 */ 691, 551, 551, 691, 553, 553, 691, 691, 572, 691, /* 70 */ 547, 572, 691, 691, 575, 691, 549, 575, 691, 691, /* 80 */ 578, 691, 551, 578, 691, 691, 581, 691, 553, 581, /* 90 */ 691, 691, 691, 547, 539, 691, 539, 691, 691, 691, /* 100 */ 691, 549, 541, 691, 541, 691, 691, 691, 691, 551, /* 110 */ 543, 691, 543, 691, 691, 691, 691, 691, 553, 545, /* 120 */ 691, 545, 691, 691, 600, 691, 600, 691, 691, 603, /* 130 */ 691, 603, 691, 691, 606, 691, 606, 691, 691, 609, /* 140 */ 691, 609, 691, 691, 616, 691, 616, 691, 691, 619, /* 150 */ 691, 619, 691, 691, 622, 691, 622, 691, 691, 625, /* 160 */ 691, 625, 691, 638, 638, 638, 638, 638, 638, 638, /* 170 */ 691, 638, 638, 638, 638, 638, 638, 691, 638, 691, /* 180 */ 653, 653, 653, 653, 653, 653, 653, 691, 653, 653, /* 190 */ 653, 653, 653, 653, 691, 653, 691, 668, 668, 668, /* 200 */ 668, 668, 668, 668, 691, 668, 668, 668, 668, 668, /* 210 */ 668, 691, 668, 691, 683, 683, 683, 683, 683, 683, /* 220 */ 683, 691, 683, 683, 683, 683, 683, 683, 691, 683, /* 230 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 240 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 250 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 260 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 270 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 280 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 290 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 300 */ 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, /* 310 */ 691, 691, 691, 691, 691, 492, 493, 494, 495, 496, /* 320 */ 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, /* 330 */ 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, /* 340 */ 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, /* 350 */ 534, 538, 527, 535, 528, 536, 529, 537, 555, 548, /* 360 */ 559, 556, 550, 560, 557, 552, 561, 558, 554, 562, /* 370 */ 563, 567, 571, 573, 564, 568, 574, 576, 565, 569, /* 380 */ 577, 579, 566, 570, 580, 582, 583, 530, 587, 540, /* 390 */ 591, 584, 531, 588, 542, 592, 585, 532, 589, 544, /* 400 */ 593, 586, 533, 590, 546, 594, 595, 599, 601, 596, /* 410 */ 602, 604, 597, 605, 607, 598, 608, 610, 611, 615, /* 420 */ 617, 612, 618, 620, 613, 621, 623, 614, 624, 626, /* 430 */ 627, 631, 639, 640, 641, 642, 643, 644, 645, 632, /* 440 */ 633, 634, 635, 636, 637, 628, 646, 654, 655, 656, /* 450 */ 657, 658, 659, 660, 647, 648, 649, 650, 651, 652, /* 460 */ 629, 661, 669, 670, 671, 672, 673, 674, 675, 662, /* 470 */ 663, 664, 665, 666, 667, 630, 676, 684, 685, 686, /* 480 */ 687, 688, 689, 690, 677, 678, 679, 680, 681, 682, }; #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: ** ** %fallback ID X Y Z. ** ** appears in the grammar, then ID becomes a fallback token for X, Y, ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ #ifdef YYFALLBACK static const YYCODETYPE yyFallback[] = { }; #endif /* YYFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: ** ** + The state number for the parser at this level of the stack. ** ** + The value of the token stored at this level of the stack. ** (In other words, the "major" token.) ** ** + The semantic value stored at this level of the stack. This is ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ struct yyStackEntry { YYACTIONTYPE stateno; /* The state-number */ YYCODETYPE major; /* The major token value. This is the code ** number for the token at this stack level */ YYMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ struct yyParser { int yyidx; /* Index of top element in stack */ #ifdef YYTRACKMAXSTACKDEPTH int yyidxMax; /* Maximum value of yyidx */ #endif int yyerrcnt; /* Shifts left before out of the error */ ParseARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 int yystksz; /* Current side of the stack */ yyStackEntry *yystack; /* The parser's stack */ #else yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ #endif }; typedef struct yyParser yyParser; #ifndef NDEBUG #include static FILE *yyTraceFILE = 0; static char *yyTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG /* ** Turn parser tracing on by giving a stream to which to write the trace ** and a prompt to preface each trace message. Tracing is turned off ** by making either argument NULL ** ** Inputs: **
    **
  • A FILE* to which trace output should be written. ** If NULL, then tracing is turned off. **
  • A prefix string written at the beginning of every ** line of trace output. If NULL, then tracing is ** turned off. **
** ** Outputs: ** None. */ void ParseTrace (FILE * TraceFILE, char *zTracePrompt) { yyTraceFILE = TraceFILE; yyTracePrompt = zTracePrompt; if (yyTraceFILE == 0) yyTracePrompt = 0; else if (yyTracePrompt == 0) yyTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ static const char *const yyTokenName[] = { "$", "VANUATU_NEWLINE", "VANUATU_POINT", "VANUATU_OPEN_BRACKET", "VANUATU_CLOSE_BRACKET", "VANUATU_POINT_M", "VANUATU_POINT_Z", "VANUATU_POINT_ZM", "VANUATU_NUM", "VANUATU_COMMA", "VANUATU_LINESTRING", "VANUATU_LINESTRING_M", "VANUATU_LINESTRING_Z", "VANUATU_LINESTRING_ZM", "VANUATU_POLYGON", "VANUATU_POLYGON_M", "VANUATU_POLYGON_Z", "VANUATU_POLYGON_ZM", "VANUATU_MULTIPOINT", "VANUATU_MULTIPOINT_M", "VANUATU_MULTIPOINT_Z", "VANUATU_MULTIPOINT_ZM", "VANUATU_MULTILINESTRING", "VANUATU_MULTILINESTRING_M", "VANUATU_MULTILINESTRING_Z", "VANUATU_MULTILINESTRING_ZM", "VANUATU_MULTIPOLYGON", "VANUATU_MULTIPOLYGON_M", "VANUATU_MULTIPOLYGON_Z", "VANUATU_MULTIPOLYGON_ZM", "VANUATU_GEOMETRYCOLLECTION", "VANUATU_GEOMETRYCOLLECTION_M", "VANUATU_GEOMETRYCOLLECTION_Z", "VANUATU_GEOMETRYCOLLECTION_ZM", "error", "main", "in", "state", "program", "geo_text", "geo_textz", "geo_textm", "geo_textzm", "point", "linestring", "polygon", "multipoint", "multilinestring", "multipolygon", "geocoll", "pointz", "linestringz", "polygonz", "multipointz", "multilinestringz", "multipolygonz", "geocollz", "pointm", "linestringm", "polygonm", "multipointm", "multilinestringm", "multipolygonm", "geocollm", "pointzm", "linestringzm", "polygonzm", "multipointzm", "multilinestringzm", "multipolygonzm", "geocollzm", "point_coordxy", "point_coordxym", "point_coordxyz", "point_coordxyzm", "point_brkt_coordxy", "coord", "point_brkt_coordxym", "point_brkt_coordxyz", "point_brkt_coordxyzm", "extra_brkt_pointsxy", "extra_brkt_pointsxym", "extra_brkt_pointsxyz", "extra_brkt_pointsxyzm", "extra_pointsxy", "extra_pointsxym", "extra_pointsxyz", "extra_pointsxyzm", "linestring_text", "linestring_textm", "linestring_textz", "linestring_textzm", "polygon_text", "polygon_textm", "polygon_textz", "polygon_textzm", "ring", "extra_rings", "ringm", "extra_ringsm", "ringz", "extra_ringsz", "ringzm", "extra_ringszm", "multipoint_text", "multipoint_textm", "multipoint_textz", "multipoint_textzm", "multilinestring_text", "multilinestring_textm", "multilinestring_textz", "multilinestring_textzm", "multilinestring_text2", "multilinestring_textm2", "multilinestring_textz2", "multilinestring_textzm2", "multipolygon_text", "multipolygon_textm", "multipolygon_textz", "multipolygon_textzm", "multipolygon_text2", "multipolygon_textm2", "multipolygon_textz2", "multipolygon_textzm2", "geocoll_text", "geocoll_textm", "geocoll_textz", "geocoll_textzm", "geocoll_text2", "geocoll_textm2", "geocoll_textz2", "geocoll_textzm2", }; #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { /* 0 */ "main ::= in", /* 1 */ "in ::=", /* 2 */ "in ::= in state VANUATU_NEWLINE", /* 3 */ "state ::= program", /* 4 */ "program ::= geo_text", /* 5 */ "program ::= geo_textz", /* 6 */ "program ::= geo_textm", /* 7 */ "program ::= geo_textzm", /* 8 */ "geo_text ::= point", /* 9 */ "geo_text ::= linestring", /* 10 */ "geo_text ::= polygon", /* 11 */ "geo_text ::= multipoint", /* 12 */ "geo_text ::= multilinestring", /* 13 */ "geo_text ::= multipolygon", /* 14 */ "geo_text ::= geocoll", /* 15 */ "geo_textz ::= pointz", /* 16 */ "geo_textz ::= linestringz", /* 17 */ "geo_textz ::= polygonz", /* 18 */ "geo_textz ::= multipointz", /* 19 */ "geo_textz ::= multilinestringz", /* 20 */ "geo_textz ::= multipolygonz", /* 21 */ "geo_textz ::= geocollz", /* 22 */ "geo_textm ::= pointm", /* 23 */ "geo_textm ::= linestringm", /* 24 */ "geo_textm ::= polygonm", /* 25 */ "geo_textm ::= multipointm", /* 26 */ "geo_textm ::= multilinestringm", /* 27 */ "geo_textm ::= multipolygonm", /* 28 */ "geo_textm ::= geocollm", /* 29 */ "geo_textzm ::= pointzm", /* 30 */ "geo_textzm ::= linestringzm", /* 31 */ "geo_textzm ::= polygonzm", /* 32 */ "geo_textzm ::= multipointzm", /* 33 */ "geo_textzm ::= multilinestringzm", /* 34 */ "geo_textzm ::= multipolygonzm", /* 35 */ "geo_textzm ::= geocollzm", /* 36 */ "point ::= VANUATU_POINT VANUATU_OPEN_BRACKET point_coordxy VANUATU_CLOSE_BRACKET", /* 37 */ "pointm ::= VANUATU_POINT_M VANUATU_OPEN_BRACKET point_coordxym VANUATU_CLOSE_BRACKET", /* 38 */ "pointz ::= VANUATU_POINT_Z VANUATU_OPEN_BRACKET point_coordxyz VANUATU_CLOSE_BRACKET", /* 39 */ "pointzm ::= VANUATU_POINT_ZM VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_CLOSE_BRACKET", /* 40 */ "point_brkt_coordxy ::= VANUATU_OPEN_BRACKET coord coord VANUATU_CLOSE_BRACKET", /* 41 */ "point_brkt_coordxym ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET", /* 42 */ "point_brkt_coordxyz ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET", /* 43 */ "point_brkt_coordxyzm ::= VANUATU_OPEN_BRACKET coord coord coord coord VANUATU_CLOSE_BRACKET", /* 44 */ "point_coordxy ::= coord coord", /* 45 */ "point_coordxym ::= coord coord coord", /* 46 */ "point_coordxyz ::= coord coord coord", /* 47 */ "point_coordxyzm ::= coord coord coord coord", /* 48 */ "coord ::= VANUATU_NUM", /* 49 */ "extra_brkt_pointsxy ::=", /* 50 */ "extra_brkt_pointsxy ::= VANUATU_COMMA point_brkt_coordxy extra_brkt_pointsxy", /* 51 */ "extra_brkt_pointsxym ::=", /* 52 */ "extra_brkt_pointsxym ::= VANUATU_COMMA point_brkt_coordxym extra_brkt_pointsxym", /* 53 */ "extra_brkt_pointsxyz ::=", /* 54 */ "extra_brkt_pointsxyz ::= VANUATU_COMMA point_brkt_coordxyz extra_brkt_pointsxyz", /* 55 */ "extra_brkt_pointsxyzm ::=", /* 56 */ "extra_brkt_pointsxyzm ::= VANUATU_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm", /* 57 */ "extra_pointsxy ::=", /* 58 */ "extra_pointsxy ::= VANUATU_COMMA point_coordxy extra_pointsxy", /* 59 */ "extra_pointsxym ::=", /* 60 */ "extra_pointsxym ::= VANUATU_COMMA point_coordxym extra_pointsxym", /* 61 */ "extra_pointsxyz ::=", /* 62 */ "extra_pointsxyz ::= VANUATU_COMMA point_coordxyz extra_pointsxyz", /* 63 */ "extra_pointsxyzm ::=", /* 64 */ "extra_pointsxyzm ::= VANUATU_COMMA point_coordxyzm extra_pointsxyzm", /* 65 */ "linestring ::= VANUATU_LINESTRING linestring_text", /* 66 */ "linestringm ::= VANUATU_LINESTRING_M linestring_textm", /* 67 */ "linestringz ::= VANUATU_LINESTRING_Z linestring_textz", /* 68 */ "linestringzm ::= VANUATU_LINESTRING_ZM linestring_textzm", /* 69 */ "linestring_text ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET", /* 70 */ "linestring_textm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET", /* 71 */ "linestring_textz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET", /* 72 */ "linestring_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET", /* 73 */ "polygon ::= VANUATU_POLYGON polygon_text", /* 74 */ "polygonm ::= VANUATU_POLYGON_M polygon_textm", /* 75 */ "polygonz ::= VANUATU_POLYGON_Z polygon_textz", /* 76 */ "polygonzm ::= VANUATU_POLYGON_ZM polygon_textzm", /* 77 */ "polygon_text ::= VANUATU_OPEN_BRACKET ring extra_rings VANUATU_CLOSE_BRACKET", /* 78 */ "polygon_textm ::= VANUATU_OPEN_BRACKET ringm extra_ringsm VANUATU_CLOSE_BRACKET", /* 79 */ "polygon_textz ::= VANUATU_OPEN_BRACKET ringz extra_ringsz VANUATU_CLOSE_BRACKET", /* 80 */ "polygon_textzm ::= VANUATU_OPEN_BRACKET ringzm extra_ringszm VANUATU_CLOSE_BRACKET", /* 81 */ "ring ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET", /* 82 */ "extra_rings ::=", /* 83 */ "extra_rings ::= VANUATU_COMMA ring extra_rings", /* 84 */ "ringm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET", /* 85 */ "extra_ringsm ::=", /* 86 */ "extra_ringsm ::= VANUATU_COMMA ringm extra_ringsm", /* 87 */ "ringz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET", /* 88 */ "extra_ringsz ::=", /* 89 */ "extra_ringsz ::= VANUATU_COMMA ringz extra_ringsz", /* 90 */ "ringzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET", /* 91 */ "extra_ringszm ::=", /* 92 */ "extra_ringszm ::= VANUATU_COMMA ringzm extra_ringszm", /* 93 */ "multipoint ::= VANUATU_MULTIPOINT multipoint_text", /* 94 */ "multipointm ::= VANUATU_MULTIPOINT_M multipoint_textm", /* 95 */ "multipointz ::= VANUATU_MULTIPOINT_Z multipoint_textz", /* 96 */ "multipointzm ::= VANUATU_MULTIPOINT_ZM multipoint_textzm", /* 97 */ "multipoint_text ::= VANUATU_OPEN_BRACKET point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET", /* 98 */ "multipoint_textm ::= VANUATU_OPEN_BRACKET point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET", /* 99 */ "multipoint_textz ::= VANUATU_OPEN_BRACKET point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET", /* 100 */ "multipoint_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET", /* 101 */ "multipoint_text ::= VANUATU_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy VANUATU_CLOSE_BRACKET", /* 102 */ "multipoint_textm ::= VANUATU_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym VANUATU_CLOSE_BRACKET", /* 103 */ "multipoint_textz ::= VANUATU_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz VANUATU_CLOSE_BRACKET", /* 104 */ "multipoint_textzm ::= VANUATU_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm VANUATU_CLOSE_BRACKET", /* 105 */ "multilinestring ::= VANUATU_MULTILINESTRING multilinestring_text", /* 106 */ "multilinestringm ::= VANUATU_MULTILINESTRING_M multilinestring_textm", /* 107 */ "multilinestringz ::= VANUATU_MULTILINESTRING_Z multilinestring_textz", /* 108 */ "multilinestringzm ::= VANUATU_MULTILINESTRING_ZM multilinestring_textzm", /* 109 */ "multilinestring_text ::= VANUATU_OPEN_BRACKET linestring_text multilinestring_text2 VANUATU_CLOSE_BRACKET", /* 110 */ "multilinestring_text2 ::=", /* 111 */ "multilinestring_text2 ::= VANUATU_COMMA linestring_text multilinestring_text2", /* 112 */ "multilinestring_textm ::= VANUATU_OPEN_BRACKET linestring_textm multilinestring_textm2 VANUATU_CLOSE_BRACKET", /* 113 */ "multilinestring_textm2 ::=", /* 114 */ "multilinestring_textm2 ::= VANUATU_COMMA linestring_textm multilinestring_textm2", /* 115 */ "multilinestring_textz ::= VANUATU_OPEN_BRACKET linestring_textz multilinestring_textz2 VANUATU_CLOSE_BRACKET", /* 116 */ "multilinestring_textz2 ::=", /* 117 */ "multilinestring_textz2 ::= VANUATU_COMMA linestring_textz multilinestring_textz2", /* 118 */ "multilinestring_textzm ::= VANUATU_OPEN_BRACKET linestring_textzm multilinestring_textzm2 VANUATU_CLOSE_BRACKET", /* 119 */ "multilinestring_textzm2 ::=", /* 120 */ "multilinestring_textzm2 ::= VANUATU_COMMA linestring_textzm multilinestring_textzm2", /* 121 */ "multipolygon ::= VANUATU_MULTIPOLYGON multipolygon_text", /* 122 */ "multipolygonm ::= VANUATU_MULTIPOLYGON_M multipolygon_textm", /* 123 */ "multipolygonz ::= VANUATU_MULTIPOLYGON_Z multipolygon_textz", /* 124 */ "multipolygonzm ::= VANUATU_MULTIPOLYGON_ZM multipolygon_textzm", /* 125 */ "multipolygon_text ::= VANUATU_OPEN_BRACKET polygon_text multipolygon_text2 VANUATU_CLOSE_BRACKET", /* 126 */ "multipolygon_text2 ::=", /* 127 */ "multipolygon_text2 ::= VANUATU_COMMA polygon_text multipolygon_text2", /* 128 */ "multipolygon_textm ::= VANUATU_OPEN_BRACKET polygon_textm multipolygon_textm2 VANUATU_CLOSE_BRACKET", /* 129 */ "multipolygon_textm2 ::=", /* 130 */ "multipolygon_textm2 ::= VANUATU_COMMA polygon_textm multipolygon_textm2", /* 131 */ "multipolygon_textz ::= VANUATU_OPEN_BRACKET polygon_textz multipolygon_textz2 VANUATU_CLOSE_BRACKET", /* 132 */ "multipolygon_textz2 ::=", /* 133 */ "multipolygon_textz2 ::= VANUATU_COMMA polygon_textz multipolygon_textz2", /* 134 */ "multipolygon_textzm ::= VANUATU_OPEN_BRACKET polygon_textzm multipolygon_textzm2 VANUATU_CLOSE_BRACKET", /* 135 */ "multipolygon_textzm2 ::=", /* 136 */ "multipolygon_textzm2 ::= VANUATU_COMMA polygon_textzm multipolygon_textzm2", /* 137 */ "geocoll ::= VANUATU_GEOMETRYCOLLECTION geocoll_text", /* 138 */ "geocollm ::= VANUATU_GEOMETRYCOLLECTION_M geocoll_textm", /* 139 */ "geocollz ::= VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz", /* 140 */ "geocollzm ::= VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm", /* 141 */ "geocoll_text ::= VANUATU_OPEN_BRACKET point geocoll_text2 VANUATU_CLOSE_BRACKET", /* 142 */ "geocoll_text ::= VANUATU_OPEN_BRACKET linestring geocoll_text2 VANUATU_CLOSE_BRACKET", /* 143 */ "geocoll_text ::= VANUATU_OPEN_BRACKET polygon geocoll_text2 VANUATU_CLOSE_BRACKET", /* 144 */ "geocoll_text ::= VANUATU_OPEN_BRACKET multipoint geocoll_text2 VANUATU_CLOSE_BRACKET", /* 145 */ "geocoll_text ::= VANUATU_OPEN_BRACKET multilinestring geocoll_text2 VANUATU_CLOSE_BRACKET", /* 146 */ "geocoll_text ::= VANUATU_OPEN_BRACKET multipolygon geocoll_text2 VANUATU_CLOSE_BRACKET", /* 147 */ "geocoll_text ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2 VANUATU_CLOSE_BRACKET", /* 148 */ "geocoll_text2 ::=", /* 149 */ "geocoll_text2 ::= VANUATU_COMMA point geocoll_text2", /* 150 */ "geocoll_text2 ::= VANUATU_COMMA linestring geocoll_text2", /* 151 */ "geocoll_text2 ::= VANUATU_COMMA polygon geocoll_text2", /* 152 */ "geocoll_text2 ::= VANUATU_COMMA multipoint geocoll_text2", /* 153 */ "geocoll_text2 ::= VANUATU_COMMA multilinestring geocoll_text2", /* 154 */ "geocoll_text2 ::= VANUATU_COMMA multipolygon geocoll_text2", /* 155 */ "geocoll_text2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2", /* 156 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET pointm geocoll_textm2 VANUATU_CLOSE_BRACKET", /* 157 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET linestringm geocoll_textm2 VANUATU_CLOSE_BRACKET", /* 158 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET polygonm geocoll_textm2 VANUATU_CLOSE_BRACKET", /* 159 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET multipointm geocoll_textm2 VANUATU_CLOSE_BRACKET", /* 160 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET multilinestringm geocoll_textm2 VANUATU_CLOSE_BRACKET", /* 161 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET multipolygonm geocoll_textm2 VANUATU_CLOSE_BRACKET", /* 162 */ "geocoll_textm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 VANUATU_CLOSE_BRACKET", /* 163 */ "geocoll_textm2 ::=", /* 164 */ "geocoll_textm2 ::= VANUATU_COMMA pointm geocoll_textm2", /* 165 */ "geocoll_textm2 ::= VANUATU_COMMA linestringm geocoll_textm2", /* 166 */ "geocoll_textm2 ::= VANUATU_COMMA polygonm geocoll_textm2", /* 167 */ "geocoll_textm2 ::= VANUATU_COMMA multipointm geocoll_textm2", /* 168 */ "geocoll_textm2 ::= VANUATU_COMMA multilinestringm geocoll_textm2", /* 169 */ "geocoll_textm2 ::= VANUATU_COMMA multipolygonm geocoll_textm2", /* 170 */ "geocoll_textm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2", /* 171 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET pointz geocoll_textz2 VANUATU_CLOSE_BRACKET", /* 172 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET linestringz geocoll_textz2 VANUATU_CLOSE_BRACKET", /* 173 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET polygonz geocoll_textz2 VANUATU_CLOSE_BRACKET", /* 174 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET multipointz geocoll_textz2 VANUATU_CLOSE_BRACKET", /* 175 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET multilinestringz geocoll_textz2 VANUATU_CLOSE_BRACKET", /* 176 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET multipolygonz geocoll_textz2 VANUATU_CLOSE_BRACKET", /* 177 */ "geocoll_textz ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2 VANUATU_CLOSE_BRACKET", /* 178 */ "geocoll_textz2 ::=", /* 179 */ "geocoll_textz2 ::= VANUATU_COMMA pointz geocoll_textz2", /* 180 */ "geocoll_textz2 ::= VANUATU_COMMA linestringz geocoll_textz2", /* 181 */ "geocoll_textz2 ::= VANUATU_COMMA polygonz geocoll_textz2", /* 182 */ "geocoll_textz2 ::= VANUATU_COMMA multipointz geocoll_textz2", /* 183 */ "geocoll_textz2 ::= VANUATU_COMMA multilinestringz geocoll_textz2", /* 184 */ "geocoll_textz2 ::= VANUATU_COMMA multipolygonz geocoll_textz2", /* 185 */ "geocoll_textz2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2", /* 186 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET pointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", /* 187 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET linestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", /* 188 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET polygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", /* 189 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET multipointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", /* 190 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET multilinestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", /* 191 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET multipolygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", /* 192 */ "geocoll_textzm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2 VANUATU_CLOSE_BRACKET", /* 193 */ "geocoll_textzm2 ::=", /* 194 */ "geocoll_textzm2 ::= VANUATU_COMMA pointzm geocoll_textzm2", /* 195 */ "geocoll_textzm2 ::= VANUATU_COMMA linestringzm geocoll_textzm2", /* 196 */ "geocoll_textzm2 ::= VANUATU_COMMA polygonzm geocoll_textzm2", /* 197 */ "geocoll_textzm2 ::= VANUATU_COMMA multipointzm geocoll_textzm2", /* 198 */ "geocoll_textzm2 ::= VANUATU_COMMA multilinestringzm geocoll_textzm2", /* 199 */ "geocoll_textzm2 ::= VANUATU_COMMA multipolygonzm geocoll_textzm2", /* 200 */ "geocoll_textzm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2", }; #endif /* NDEBUG */ #if YYSTACKDEPTH<=0 /* ** Try to increase the size of the parser stack. */ static void yyGrowStack (yyParser * p) { int newSize; yyStackEntry *pNew; newSize = p->yystksz * 2 + 100; pNew = realloc (p->yystack, newSize * sizeof (pNew[0])); if (pNew) { p->yystack = pNew; p->yystksz = newSize; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack grows to %d entries!\n", yyTracePrompt, p->yystksz); } #endif } } #endif /* ** This function allocates a new parser. ** The only argument is a pointer to a function which works like ** malloc. ** ** Inputs: ** A pointer to the function used to allocate memory. ** ** Outputs: ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ void * ParseAlloc (void *(*mallocProc) (size_t)) { yyParser *pParser; pParser = (yyParser *) (*mallocProc) ((size_t) sizeof (yyParser)); if (pParser) { pParser->yyidx = -1; #ifdef YYTRACKMAXSTACKDEPTH pParser->yyidxMax = 0; #endif #if YYSTACKDEPTH<=0 pParser->yystack = NULL; pParser->yystksz = 0; yyGrowStack (pParser); #endif } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ static void yy_destructor (yyParser * yypParser, /* The parser */ YYCODETYPE yymajor, /* Type code for object to destroy */ YYMINORTYPE * yypminor /* The object to be destroyed */ ) { ParseARG_FETCH; switch (yymajor) { /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a ** reduce or during error processing or when a parser is ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those ** which appear on the RHS of the rule, but which are not used ** inside the C code. */ default: break; /* If no destructor action specified: do nothing */ } } /* ** Pop the parser's stack once. ** ** If there is a destructor routine associated with the token which ** is popped from the stack, then call it. ** ** Return the major token number for the symbol popped. */ static int yy_pop_parser_stack (yyParser * pParser) { YYCODETYPE yymajor; yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; if (pParser->yyidx < 0) return 0; #ifndef NDEBUG if (yyTraceFILE && pParser->yyidx >= 0) { fprintf (yyTraceFILE, "%sPopping %s\n", yyTracePrompt, yyTokenName[yytos->major]); } #endif yymajor = yytos->major; yy_destructor (pParser, yymajor, &yytos->minor); pParser->yyidx--; return yymajor; } /* ** Deallocate and destroy a parser. Destructors are all called for ** all stack elements before shutting the parser down. ** ** Inputs: **
    **
  • A pointer to the parser. This should be a pointer ** obtained from ParseAlloc. **
  • A pointer to a function used to reclaim memory obtained ** from malloc. **
*/ void ParseFree (void *p, /* The parser to be deleted */ void (*freeProc) (void *) /* Function used to reclaim memory */ ) { yyParser *pParser = (yyParser *) p; if (pParser == 0) return; while (pParser->yyidx >= 0) yy_pop_parser_stack (pParser); #if YYSTACKDEPTH<=0 free (pParser->yystack); #endif (*freeProc) ((void *) pParser); } /* ** Return the peak depth of the stack for a parser. */ #ifdef YYTRACKMAXSTACKDEPTH int ParseStackPeak (void *p) { yyParser *pParser = (yyParser *) p; return pParser->yyidxMax; } #endif /* ** Find the appropriate action for a parser given the terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_shift_action (yyParser * pParser, /* The parser */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; int stateno = pParser->yystack[pParser->yyidx].stateno; if (stateno > YY_SHIFT_MAX || (i = yy_shift_ofst[stateno]) == YY_SHIFT_USE_DFLT) { return yy_default[stateno]; } assert (iLookAhead != YYNOCODE); i += iLookAhead; if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { if (iLookAhead > 0) { #ifdef YYFALLBACK YYCODETYPE iFallback; /* Fallback token */ if (iLookAhead < sizeof (yyFallback) / sizeof (yyFallback[0]) && (iFallback = yyFallback[iLookAhead]) != 0) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFALLBACK %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); } #endif return yy_find_shift_action (pParser, iFallback); } #endif #ifdef YYWILDCARD { int j = i - iLookAhead + YYWILDCARD; if (j >= 0 && j < YY_SZ_ACTTAB && yy_lookahead[j] == YYWILDCARD) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sWILDCARD %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); } #endif /* NDEBUG */ return yy_action[j]; } } #endif /* YYWILDCARD */ } return yy_default[stateno]; } else { return yy_action[i]; } } /* ** Find the appropriate action for a parser given the non-terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_reduce_action (int stateno, /* Current state number */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; #ifdef YYERRORSYMBOL if (stateno > YY_REDUCE_MAX) { return yy_default[stateno]; } #else assert (stateno <= YY_REDUCE_MAX); #endif i = yy_reduce_ofst[stateno]; assert (i != YY_REDUCE_USE_DFLT); assert (iLookAhead != YYNOCODE); i += iLookAhead; #ifdef YYERRORSYMBOL if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { return yy_default[stateno]; } #else assert (i >= 0 && i < YY_SZ_ACTTAB); assert (yy_lookahead[i] == iLookAhead); #endif return yy_action[i]; } /* ** The following routine is called if the stack overflows. */ static void yyStackOverflow (yyParser * yypParser, YYMINORTYPE * yypMinor) { ParseARG_FETCH; yypParser->yyidx--; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ spatialite_e ("Giving up. Parser stack overflow\n"); ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ } /* ** Perform a shift action. */ static void yy_shift (yyParser * yypParser, /* The parser to be shifted */ int yyNewState, /* The new state to shift in */ int yyMajor, /* The major token to shift in */ YYMINORTYPE * yypMinor /* Pointer to the minor token to shift in */ ) { yyStackEntry *yytos; yypParser->yyidx++; #ifdef YYTRACKMAXSTACKDEPTH if (yypParser->yyidx > yypParser->yyidxMax) { yypParser->yyidxMax = yypParser->yyidx; } #endif #if YYSTACKDEPTH>0 if (yypParser->yyidx >= YYSTACKDEPTH) { yyStackOverflow (yypParser, yypMinor); return; } #else if (yypParser->yyidx >= yypParser->yystksz) { yyGrowStack (yypParser); if (yypParser->yyidx >= yypParser->yystksz) { yyStackOverflow (yypParser, yypMinor); return; } } #endif yytos = &yypParser->yystack[yypParser->yyidx]; yytos->stateno = (YYACTIONTYPE) yyNewState; yytos->major = (YYCODETYPE) yyMajor; yytos->minor = *yypMinor; #ifndef NDEBUG if (yyTraceFILE && yypParser->yyidx > 0) { int i; fprintf (yyTraceFILE, "%sShift %d\n", yyTracePrompt, yyNewState); fprintf (yyTraceFILE, "%sStack:", yyTracePrompt); for (i = 1; i <= yypParser->yyidx; i++) fprintf (yyTraceFILE, " %s", yyTokenName[yypParser->yystack[i].major]); fprintf (yyTraceFILE, "\n"); } #endif } /* The following table contains information about every rule that ** is used during the reduce. */ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ } yyRuleInfo[] = { { 35, 1}, { 36, 0}, { 36, 3}, { 37, 1}, { 38, 1}, { 38, 1}, { 38, 1}, { 38, 1}, { 39, 1}, { 39, 1}, { 39, 1}, { 39, 1}, { 39, 1}, { 39, 1}, { 39, 1}, { 40, 1}, { 40, 1}, { 40, 1}, { 40, 1}, { 40, 1}, { 40, 1}, { 40, 1}, { 41, 1}, { 41, 1}, { 41, 1}, { 41, 1}, { 41, 1}, { 41, 1}, { 41, 1}, { 42, 1}, { 42, 1}, { 42, 1}, { 42, 1}, { 42, 1}, { 42, 1}, { 42, 1}, { 43, 4}, { 57, 4}, { 50, 4}, { 64, 4}, { 75, 4}, { 77, 5}, { 78, 5}, { 79, 6}, { 71, 2}, { 72, 3}, { 73, 3}, { 74, 4}, { 76, 1}, { 80, 0}, { 80, 3}, { 81, 0}, { 81, 3}, { 82, 0}, { 82, 3}, { 83, 0}, { 83, 3}, { 84, 0}, { 84, 3}, { 85, 0}, { 85, 3}, { 86, 0}, { 86, 3}, { 87, 0}, { 87, 3}, { 44, 2}, { 58, 2}, { 51, 2}, { 65, 2}, { 88, 6}, { 89, 6}, { 90, 6}, { 91, 6}, { 45, 2}, { 59, 2}, { 52, 2}, { 66, 2}, { 92, 4}, { 93, 4}, { 94, 4}, { 95, 4}, { 96, 10}, { 97, 0}, { 97, 3}, { 98, 10}, { 99, 0}, { 99, 3}, { 100, 10}, { 101, 0}, { 101, 3}, { 102, 10}, { 103, 0}, { 103, 3}, { 46, 2}, { 60, 2}, { 53, 2}, { 67, 2}, { 104, 4}, { 105, 4}, { 106, 4}, { 107, 4}, { 104, 4}, { 105, 4}, { 106, 4}, { 107, 4}, { 47, 2}, { 61, 2}, { 54, 2}, { 68, 2}, { 108, 4}, { 112, 0}, { 112, 3}, { 109, 4}, { 113, 0}, { 113, 3}, { 110, 4}, { 114, 0}, { 114, 3}, { 111, 4}, { 115, 0}, { 115, 3}, { 48, 2}, { 62, 2}, { 55, 2}, { 69, 2}, { 116, 4}, { 120, 0}, { 120, 3}, { 117, 4}, { 121, 0}, { 121, 3}, { 118, 4}, { 122, 0}, { 122, 3}, { 119, 4}, { 123, 0}, { 123, 3}, { 49, 2}, { 63, 2}, { 56, 2}, { 70, 2}, { 124, 4}, { 124, 4}, { 124, 4}, { 124, 4}, { 124, 4}, { 124, 4}, { 124, 5}, { 128, 0}, { 128, 3}, { 128, 3}, { 128, 3}, { 128, 3}, { 128, 3}, { 128, 3}, { 128, 4}, { 125, 4}, { 125, 4}, { 125, 4}, { 125, 4}, { 125, 4}, { 125, 4}, { 125, 5}, { 129, 0}, { 129, 3}, { 129, 3}, { 129, 3}, { 129, 3}, { 129, 3}, { 129, 3}, { 129, 4}, { 126, 4}, { 126, 4}, { 126, 4}, { 126, 4}, { 126, 4}, { 126, 4}, { 126, 5}, { 130, 0}, { 130, 3}, { 130, 3}, { 130, 3}, { 130, 3}, { 130, 3}, { 130, 3}, { 130, 4}, { 127, 4}, { 127, 4}, { 127, 4}, { 127, 4}, { 127, 4}, { 127, 4}, { 127, 5}, { 131, 0}, { 131, 3}, { 131, 3}, { 131, 3}, { 131, 3}, { 131, 3}, { 131, 3}, { 131, 4},}; static void yy_accept (yyParser *); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. */ static void yy_reduce (yyParser * yypParser, /* The parser */ int yyruleno /* Number of the rule by which to reduce */ ) { int yygoto; /* The next state */ int yyact; /* The next action */ YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ yyStackEntry *yymsp; /* The top of the parser's stack */ int yysize; /* Amount to pop the stack */ ParseARG_FETCH; yymsp = &yypParser->yystack[yypParser->yyidx]; #ifndef NDEBUG if (yyTraceFILE && yyruleno >= 0 && yyruleno < (int) (sizeof (yyRuleName) / sizeof (yyRuleName[0]))) { fprintf (yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, yyRuleName[yyruleno]); } #endif /* NDEBUG */ /* Silence complaints from purify about yygotominor being uninitialized ** in some cases when it is copied into the stack after the following ** switch. yygotominor is uninitialized when a rule reduces that does ** not set the value of its left-hand side nonterminal. Leaving the ** value of the nonterminal uninitialized is utterly harmless as long ** as the value is never used. So really the only thing this code ** accomplishes is to quieten purify. ** ** 2007-01-16: The wireshark project (www.wireshark.org) reports that ** without this code, their parser segfaults. I'm not sure what there ** parser is doing to make this happen. This is the second bug report ** from wireshark this week. Clearly they are stressing Lemon in ways ** that it has not been previously stressed... (SQLite ticket #2172) */ /*memset(&yygotominor, 0, sizeof(yygotominor)); */ yygotominor = yyzerominor; switch (yyruleno) { /* Beginning here are the reduction cases. A typical example ** follows: ** case 0: ** #line ** { ... } // User supplied code ** #line ** break; */ case 8: /* geo_text ::= point */ case 9: /* geo_text ::= linestring */ yytestcase (yyruleno == 9); case 10: /* geo_text ::= polygon */ yytestcase (yyruleno == 10); case 11: /* geo_text ::= multipoint */ yytestcase (yyruleno == 11); case 12: /* geo_text ::= multilinestring */ yytestcase (yyruleno == 12); case 13: /* geo_text ::= multipolygon */ yytestcase (yyruleno == 13); case 14: /* geo_text ::= geocoll */ yytestcase (yyruleno == 14); case 15: /* geo_textz ::= pointz */ yytestcase (yyruleno == 15); case 16: /* geo_textz ::= linestringz */ yytestcase (yyruleno == 16); case 17: /* geo_textz ::= polygonz */ yytestcase (yyruleno == 17); case 18: /* geo_textz ::= multipointz */ yytestcase (yyruleno == 18); case 19: /* geo_textz ::= multilinestringz */ yytestcase (yyruleno == 19); case 20: /* geo_textz ::= multipolygonz */ yytestcase (yyruleno == 20); case 21: /* geo_textz ::= geocollz */ yytestcase (yyruleno == 21); case 22: /* geo_textm ::= pointm */ yytestcase (yyruleno == 22); case 23: /* geo_textm ::= linestringm */ yytestcase (yyruleno == 23); case 24: /* geo_textm ::= polygonm */ yytestcase (yyruleno == 24); case 25: /* geo_textm ::= multipointm */ yytestcase (yyruleno == 25); case 26: /* geo_textm ::= multilinestringm */ yytestcase (yyruleno == 26); case 27: /* geo_textm ::= multipolygonm */ yytestcase (yyruleno == 27); case 28: /* geo_textm ::= geocollm */ yytestcase (yyruleno == 28); case 29: /* geo_textzm ::= pointzm */ yytestcase (yyruleno == 29); case 30: /* geo_textzm ::= linestringzm */ yytestcase (yyruleno == 30); case 31: /* geo_textzm ::= polygonzm */ yytestcase (yyruleno == 31); case 32: /* geo_textzm ::= multipointzm */ yytestcase (yyruleno == 32); case 33: /* geo_textzm ::= multilinestringzm */ yytestcase (yyruleno == 33); case 34: /* geo_textzm ::= multipolygonzm */ yytestcase (yyruleno == 34); case 35: /* geo_textzm ::= geocollzm */ yytestcase (yyruleno == 35); { p_data->result = yymsp[0].minor.yy0; } break; case 36: /* point ::= VANUATU_POINT VANUATU_OPEN_BRACKET point_coordxy VANUATU_CLOSE_BRACKET */ { yygotominor.yy0 = vanuatu_buildGeomFromPoint (p_data, (gaiaPointPtr) yymsp[-1].minor. yy0); } break; case 37: /* pointm ::= VANUATU_POINT_M VANUATU_OPEN_BRACKET point_coordxym VANUATU_CLOSE_BRACKET */ case 38: /* pointz ::= VANUATU_POINT_Z VANUATU_OPEN_BRACKET point_coordxyz VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 38); case 39: /* pointzm ::= VANUATU_POINT_ZM VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 39); { yygotominor.yy0 = vanuatu_buildGeomFromPoint (p_data, (gaiaPointPtr) yymsp[-1].minor. yy0); } break; case 40: /* point_brkt_coordxy ::= VANUATU_OPEN_BRACKET coord coord VANUATU_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) vanuatu_point_xy (p_data, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 41: /* point_brkt_coordxym ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) vanuatu_point_xym (p_data, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 42: /* point_brkt_coordxyz ::= VANUATU_OPEN_BRACKET coord coord coord VANUATU_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) vanuatu_point_xyz (p_data, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 43: /* point_brkt_coordxyzm ::= VANUATU_OPEN_BRACKET coord coord coord coord VANUATU_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) vanuatu_point_xyzm (p_data, (double *) yymsp[-4].minor.yy0, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 44: /* point_coordxy ::= coord coord */ { yygotominor.yy0 = (void *) vanuatu_point_xy (p_data, (double *) yymsp[-1].minor.yy0, (double *) yymsp[0].minor.yy0); } break; case 45: /* point_coordxym ::= coord coord coord */ { yygotominor.yy0 = (void *) vanuatu_point_xym (p_data, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0, (double *) yymsp[0].minor.yy0); } break; case 46: /* point_coordxyz ::= coord coord coord */ { yygotominor.yy0 = (void *) vanuatu_point_xyz (p_data, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0, (double *) yymsp[0].minor.yy0); } break; case 47: /* point_coordxyzm ::= coord coord coord coord */ { yygotominor.yy0 = (void *) vanuatu_point_xyzm (p_data, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0, (double *) yymsp[0].minor.yy0); } break; case 48: /* coord ::= VANUATU_NUM */ case 93: /* multipoint ::= VANUATU_MULTIPOINT multipoint_text */ yytestcase (yyruleno == 93); case 94: /* multipointm ::= VANUATU_MULTIPOINT_M multipoint_textm */ yytestcase (yyruleno == 94); case 95: /* multipointz ::= VANUATU_MULTIPOINT_Z multipoint_textz */ yytestcase (yyruleno == 95); case 96: /* multipointzm ::= VANUATU_MULTIPOINT_ZM multipoint_textzm */ yytestcase (yyruleno == 96); case 105: /* multilinestring ::= VANUATU_MULTILINESTRING multilinestring_text */ yytestcase (yyruleno == 105); case 106: /* multilinestringm ::= VANUATU_MULTILINESTRING_M multilinestring_textm */ yytestcase (yyruleno == 106); case 107: /* multilinestringz ::= VANUATU_MULTILINESTRING_Z multilinestring_textz */ yytestcase (yyruleno == 107); case 108: /* multilinestringzm ::= VANUATU_MULTILINESTRING_ZM multilinestring_textzm */ yytestcase (yyruleno == 108); case 121: /* multipolygon ::= VANUATU_MULTIPOLYGON multipolygon_text */ yytestcase (yyruleno == 121); case 122: /* multipolygonm ::= VANUATU_MULTIPOLYGON_M multipolygon_textm */ yytestcase (yyruleno == 122); case 123: /* multipolygonz ::= VANUATU_MULTIPOLYGON_Z multipolygon_textz */ yytestcase (yyruleno == 123); case 124: /* multipolygonzm ::= VANUATU_MULTIPOLYGON_ZM multipolygon_textzm */ yytestcase (yyruleno == 124); case 137: /* geocoll ::= VANUATU_GEOMETRYCOLLECTION geocoll_text */ yytestcase (yyruleno == 137); case 138: /* geocollm ::= VANUATU_GEOMETRYCOLLECTION_M geocoll_textm */ yytestcase (yyruleno == 138); case 139: /* geocollz ::= VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz */ yytestcase (yyruleno == 139); case 140: /* geocollzm ::= VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm */ yytestcase (yyruleno == 140); { yygotominor.yy0 = yymsp[0].minor.yy0; } break; case 49: /* extra_brkt_pointsxy ::= */ case 51: /* extra_brkt_pointsxym ::= */ yytestcase (yyruleno == 51); case 53: /* extra_brkt_pointsxyz ::= */ yytestcase (yyruleno == 53); case 55: /* extra_brkt_pointsxyzm ::= */ yytestcase (yyruleno == 55); case 57: /* extra_pointsxy ::= */ yytestcase (yyruleno == 57); case 59: /* extra_pointsxym ::= */ yytestcase (yyruleno == 59); case 61: /* extra_pointsxyz ::= */ yytestcase (yyruleno == 61); case 63: /* extra_pointsxyzm ::= */ yytestcase (yyruleno == 63); case 82: /* extra_rings ::= */ yytestcase (yyruleno == 82); case 85: /* extra_ringsm ::= */ yytestcase (yyruleno == 85); case 88: /* extra_ringsz ::= */ yytestcase (yyruleno == 88); case 91: /* extra_ringszm ::= */ yytestcase (yyruleno == 91); case 110: /* multilinestring_text2 ::= */ yytestcase (yyruleno == 110); case 113: /* multilinestring_textm2 ::= */ yytestcase (yyruleno == 113); case 116: /* multilinestring_textz2 ::= */ yytestcase (yyruleno == 116); case 119: /* multilinestring_textzm2 ::= */ yytestcase (yyruleno == 119); case 126: /* multipolygon_text2 ::= */ yytestcase (yyruleno == 126); case 129: /* multipolygon_textm2 ::= */ yytestcase (yyruleno == 129); case 132: /* multipolygon_textz2 ::= */ yytestcase (yyruleno == 132); case 135: /* multipolygon_textzm2 ::= */ yytestcase (yyruleno == 135); case 148: /* geocoll_text2 ::= */ yytestcase (yyruleno == 148); case 163: /* geocoll_textm2 ::= */ yytestcase (yyruleno == 163); case 178: /* geocoll_textz2 ::= */ yytestcase (yyruleno == 178); case 193: /* geocoll_textzm2 ::= */ yytestcase (yyruleno == 193); { yygotominor.yy0 = NULL; } break; case 50: /* extra_brkt_pointsxy ::= VANUATU_COMMA point_brkt_coordxy extra_brkt_pointsxy */ case 52: /* extra_brkt_pointsxym ::= VANUATU_COMMA point_brkt_coordxym extra_brkt_pointsxym */ yytestcase (yyruleno == 52); case 54: /* extra_brkt_pointsxyz ::= VANUATU_COMMA point_brkt_coordxyz extra_brkt_pointsxyz */ yytestcase (yyruleno == 54); case 56: /* extra_brkt_pointsxyzm ::= VANUATU_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm */ yytestcase (yyruleno == 56); case 58: /* extra_pointsxy ::= VANUATU_COMMA point_coordxy extra_pointsxy */ yytestcase (yyruleno == 58); case 60: /* extra_pointsxym ::= VANUATU_COMMA point_coordxym extra_pointsxym */ yytestcase (yyruleno == 60); case 62: /* extra_pointsxyz ::= VANUATU_COMMA point_coordxyz extra_pointsxyz */ yytestcase (yyruleno == 62); case 64: /* extra_pointsxyzm ::= VANUATU_COMMA point_coordxyzm extra_pointsxyzm */ yytestcase (yyruleno == 64); { ((gaiaPointPtr) yymsp[-1].minor.yy0)->Next = (gaiaPointPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 65: /* linestring ::= VANUATU_LINESTRING linestring_text */ case 66: /* linestringm ::= VANUATU_LINESTRING_M linestring_textm */ yytestcase (yyruleno == 66); case 67: /* linestringz ::= VANUATU_LINESTRING_Z linestring_textz */ yytestcase (yyruleno == 67); case 68: /* linestringzm ::= VANUATU_LINESTRING_ZM linestring_textzm */ yytestcase (yyruleno == 68); { yygotominor.yy0 = vanuatu_buildGeomFromLinestring (p_data, (gaiaLinestringPtr) yymsp[0].minor.yy0); } break; case 69: /* linestring_text ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) vanuatu_linestring_xy (p_data, (gaiaPointPtr) yymsp[-4].minor.yy0); } break; case 70: /* linestring_textm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) vanuatu_linestring_xym (p_data, (gaiaPointPtr) yymsp[-4].minor.yy0); } break; case 71: /* linestring_textz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) vanuatu_linestring_xyz (p_data, (gaiaPointPtr) yymsp[-4].minor.yy0); } break; case 72: /* linestring_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) vanuatu_linestring_xyzm (p_data, (gaiaPointPtr) yymsp[-4].minor.yy0); } break; case 73: /* polygon ::= VANUATU_POLYGON polygon_text */ case 74: /* polygonm ::= VANUATU_POLYGON_M polygon_textm */ yytestcase (yyruleno == 74); case 75: /* polygonz ::= VANUATU_POLYGON_Z polygon_textz */ yytestcase (yyruleno == 75); case 76: /* polygonzm ::= VANUATU_POLYGON_ZM polygon_textzm */ yytestcase (yyruleno == 76); { yygotominor.yy0 = vanuatu_buildGeomFromPolygon (p_data, (gaiaPolygonPtr) yymsp[0].minor. yy0); } break; case 77: /* polygon_text ::= VANUATU_OPEN_BRACKET ring extra_rings VANUATU_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_polygon_xy (p_data, (gaiaRingPtr) yymsp[-2].minor. yy0); } break; case 78: /* polygon_textm ::= VANUATU_OPEN_BRACKET ringm extra_ringsm VANUATU_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_polygon_xym (p_data, (gaiaRingPtr) yymsp[-2].minor. yy0); } break; case 79: /* polygon_textz ::= VANUATU_OPEN_BRACKET ringz extra_ringsz VANUATU_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_polygon_xyz (p_data, (gaiaRingPtr) yymsp[-2].minor. yy0); } break; case 80: /* polygon_textzm ::= VANUATU_OPEN_BRACKET ringzm extra_ringszm VANUATU_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_polygon_xyzm (p_data, (gaiaRingPtr) yymsp[-2].minor. yy0); } break; case 81: /* ring ::= VANUATU_OPEN_BRACKET point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy VANUATU_COMMA point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_ring_xy (p_data, (gaiaPointPtr) yymsp[-8].minor.yy0); } break; case 83: /* extra_rings ::= VANUATU_COMMA ring extra_rings */ case 86: /* extra_ringsm ::= VANUATU_COMMA ringm extra_ringsm */ yytestcase (yyruleno == 86); case 89: /* extra_ringsz ::= VANUATU_COMMA ringz extra_ringsz */ yytestcase (yyruleno == 89); case 92: /* extra_ringszm ::= VANUATU_COMMA ringzm extra_ringszm */ yytestcase (yyruleno == 92); { ((gaiaRingPtr) yymsp[-1].minor.yy0)->Next = (gaiaRingPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 84: /* ringm ::= VANUATU_OPEN_BRACKET point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym VANUATU_COMMA point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_ring_xym (p_data, (gaiaPointPtr) yymsp[-8].minor. yy0); } break; case 87: /* ringz ::= VANUATU_OPEN_BRACKET point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz VANUATU_COMMA point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_ring_xyz (p_data, (gaiaPointPtr) yymsp[-8].minor. yy0); } break; case 90: /* ringzm ::= VANUATU_OPEN_BRACKET point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm VANUATU_COMMA point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_ring_xyzm (p_data, (gaiaPointPtr) yymsp[-8].minor. yy0); } break; case 97: /* multipoint_text ::= VANUATU_OPEN_BRACKET point_coordxy extra_pointsxy VANUATU_CLOSE_BRACKET */ case 101: /* multipoint_text ::= VANUATU_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 101); { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multipoint_xy (p_data, (gaiaPointPtr) yymsp[-2].minor.yy0); } break; case 98: /* multipoint_textm ::= VANUATU_OPEN_BRACKET point_coordxym extra_pointsxym VANUATU_CLOSE_BRACKET */ case 102: /* multipoint_textm ::= VANUATU_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 102); { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multipoint_xym (p_data, (gaiaPointPtr) yymsp[-2].minor.yy0); } break; case 99: /* multipoint_textz ::= VANUATU_OPEN_BRACKET point_coordxyz extra_pointsxyz VANUATU_CLOSE_BRACKET */ case 103: /* multipoint_textz ::= VANUATU_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 103); { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multipoint_xyz (p_data, (gaiaPointPtr) yymsp[-2].minor.yy0); } break; case 100: /* multipoint_textzm ::= VANUATU_OPEN_BRACKET point_coordxyzm extra_pointsxyzm VANUATU_CLOSE_BRACKET */ case 104: /* multipoint_textzm ::= VANUATU_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 104); { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multipoint_xyzm (p_data, (gaiaPointPtr) yymsp[-2].minor.yy0); } break; case 109: /* multilinestring_text ::= VANUATU_OPEN_BRACKET linestring_text multilinestring_text2 VANUATU_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multilinestring_xy (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 111: /* multilinestring_text2 ::= VANUATU_COMMA linestring_text multilinestring_text2 */ case 114: /* multilinestring_textm2 ::= VANUATU_COMMA linestring_textm multilinestring_textm2 */ yytestcase (yyruleno == 114); case 117: /* multilinestring_textz2 ::= VANUATU_COMMA linestring_textz multilinestring_textz2 */ yytestcase (yyruleno == 117); case 120: /* multilinestring_textzm2 ::= VANUATU_COMMA linestring_textzm multilinestring_textzm2 */ yytestcase (yyruleno == 120); { ((gaiaLinestringPtr) yymsp[-1].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 112: /* multilinestring_textm ::= VANUATU_OPEN_BRACKET linestring_textm multilinestring_textm2 VANUATU_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multilinestring_xym (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 115: /* multilinestring_textz ::= VANUATU_OPEN_BRACKET linestring_textz multilinestring_textz2 VANUATU_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multilinestring_xyz (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 118: /* multilinestring_textzm ::= VANUATU_OPEN_BRACKET linestring_textzm multilinestring_textzm2 VANUATU_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multilinestring_xyzm (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 125: /* multipolygon_text ::= VANUATU_OPEN_BRACKET polygon_text multipolygon_text2 VANUATU_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multipolygon_xy (p_data, (gaiaPolygonPtr) yymsp[-2].minor.yy0); } break; case 127: /* multipolygon_text2 ::= VANUATU_COMMA polygon_text multipolygon_text2 */ case 130: /* multipolygon_textm2 ::= VANUATU_COMMA polygon_textm multipolygon_textm2 */ yytestcase (yyruleno == 130); case 133: /* multipolygon_textz2 ::= VANUATU_COMMA polygon_textz multipolygon_textz2 */ yytestcase (yyruleno == 133); case 136: /* multipolygon_textzm2 ::= VANUATU_COMMA polygon_textzm multipolygon_textzm2 */ yytestcase (yyruleno == 136); { ((gaiaPolygonPtr) yymsp[-1].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 128: /* multipolygon_textm ::= VANUATU_OPEN_BRACKET polygon_textm multipolygon_textm2 VANUATU_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multipolygon_xym (p_data, (gaiaPolygonPtr) yymsp[-2].minor.yy0); } break; case 131: /* multipolygon_textz ::= VANUATU_OPEN_BRACKET polygon_textz multipolygon_textz2 VANUATU_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multipolygon_xyz (p_data, (gaiaPolygonPtr) yymsp[-2].minor.yy0); } break; case 134: /* multipolygon_textzm ::= VANUATU_OPEN_BRACKET polygon_textzm multipolygon_textzm2 VANUATU_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_multipolygon_xyzm (p_data, (gaiaPolygonPtr) yymsp[-2].minor.yy0); } break; case 141: /* geocoll_text ::= VANUATU_OPEN_BRACKET point geocoll_text2 VANUATU_CLOSE_BRACKET */ case 142: /* geocoll_text ::= VANUATU_OPEN_BRACKET linestring geocoll_text2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 142); case 143: /* geocoll_text ::= VANUATU_OPEN_BRACKET polygon geocoll_text2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 143); case 144: /* geocoll_text ::= VANUATU_OPEN_BRACKET multipoint geocoll_text2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 144); case 145: /* geocoll_text ::= VANUATU_OPEN_BRACKET multilinestring geocoll_text2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 145); case 146: /* geocoll_text ::= VANUATU_OPEN_BRACKET multipolygon geocoll_text2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 146); case 147: /* geocoll_text ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 147); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_geomColl_xy (p_data, (gaiaGeomCollPtr) yymsp[-2].minor.yy0); } break; case 149: /* geocoll_text2 ::= VANUATU_COMMA point geocoll_text2 */ case 150: /* geocoll_text2 ::= VANUATU_COMMA linestring geocoll_text2 */ yytestcase (yyruleno == 150); case 151: /* geocoll_text2 ::= VANUATU_COMMA polygon geocoll_text2 */ yytestcase (yyruleno == 151); case 152: /* geocoll_text2 ::= VANUATU_COMMA multipoint geocoll_text2 */ yytestcase (yyruleno == 152); case 153: /* geocoll_text2 ::= VANUATU_COMMA multilinestring geocoll_text2 */ yytestcase (yyruleno == 153); case 154: /* geocoll_text2 ::= VANUATU_COMMA multipolygon geocoll_text2 */ yytestcase (yyruleno == 154); case 155: /* geocoll_text2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION geocoll_text geocoll_text2 */ yytestcase (yyruleno == 155); case 164: /* geocoll_textm2 ::= VANUATU_COMMA pointm geocoll_textm2 */ yytestcase (yyruleno == 164); case 165: /* geocoll_textm2 ::= VANUATU_COMMA linestringm geocoll_textm2 */ yytestcase (yyruleno == 165); case 166: /* geocoll_textm2 ::= VANUATU_COMMA polygonm geocoll_textm2 */ yytestcase (yyruleno == 166); case 167: /* geocoll_textm2 ::= VANUATU_COMMA multipointm geocoll_textm2 */ yytestcase (yyruleno == 167); case 168: /* geocoll_textm2 ::= VANUATU_COMMA multilinestringm geocoll_textm2 */ yytestcase (yyruleno == 168); case 169: /* geocoll_textm2 ::= VANUATU_COMMA multipolygonm geocoll_textm2 */ yytestcase (yyruleno == 169); case 170: /* geocoll_textm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 */ yytestcase (yyruleno == 170); case 179: /* geocoll_textz2 ::= VANUATU_COMMA pointz geocoll_textz2 */ yytestcase (yyruleno == 179); case 180: /* geocoll_textz2 ::= VANUATU_COMMA linestringz geocoll_textz2 */ yytestcase (yyruleno == 180); case 181: /* geocoll_textz2 ::= VANUATU_COMMA polygonz geocoll_textz2 */ yytestcase (yyruleno == 181); case 182: /* geocoll_textz2 ::= VANUATU_COMMA multipointz geocoll_textz2 */ yytestcase (yyruleno == 182); case 183: /* geocoll_textz2 ::= VANUATU_COMMA multilinestringz geocoll_textz2 */ yytestcase (yyruleno == 183); case 184: /* geocoll_textz2 ::= VANUATU_COMMA multipolygonz geocoll_textz2 */ yytestcase (yyruleno == 184); case 185: /* geocoll_textz2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2 */ yytestcase (yyruleno == 185); case 194: /* geocoll_textzm2 ::= VANUATU_COMMA pointzm geocoll_textzm2 */ yytestcase (yyruleno == 194); case 195: /* geocoll_textzm2 ::= VANUATU_COMMA linestringzm geocoll_textzm2 */ yytestcase (yyruleno == 195); case 196: /* geocoll_textzm2 ::= VANUATU_COMMA polygonzm geocoll_textzm2 */ yytestcase (yyruleno == 196); case 197: /* geocoll_textzm2 ::= VANUATU_COMMA multipointzm geocoll_textzm2 */ yytestcase (yyruleno == 197); case 198: /* geocoll_textzm2 ::= VANUATU_COMMA multilinestringzm geocoll_textzm2 */ yytestcase (yyruleno == 198); case 199: /* geocoll_textzm2 ::= VANUATU_COMMA multipolygonzm geocoll_textzm2 */ yytestcase (yyruleno == 199); case 200: /* geocoll_textzm2 ::= VANUATU_COMMA VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2 */ yytestcase (yyruleno == 200); { ((gaiaGeomCollPtr) yymsp[-1].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 156: /* geocoll_textm ::= VANUATU_OPEN_BRACKET pointm geocoll_textm2 VANUATU_CLOSE_BRACKET */ case 157: /* geocoll_textm ::= VANUATU_OPEN_BRACKET linestringm geocoll_textm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 157); case 158: /* geocoll_textm ::= VANUATU_OPEN_BRACKET polygonm geocoll_textm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 158); case 159: /* geocoll_textm ::= VANUATU_OPEN_BRACKET multipointm geocoll_textm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 159); case 160: /* geocoll_textm ::= VANUATU_OPEN_BRACKET multilinestringm geocoll_textm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 160); case 161: /* geocoll_textm ::= VANUATU_OPEN_BRACKET multipolygonm geocoll_textm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 161); case 162: /* geocoll_textm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 162); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_geomColl_xym (p_data, (gaiaGeomCollPtr) yymsp[-2].minor.yy0); } break; case 171: /* geocoll_textz ::= VANUATU_OPEN_BRACKET pointz geocoll_textz2 VANUATU_CLOSE_BRACKET */ case 172: /* geocoll_textz ::= VANUATU_OPEN_BRACKET linestringz geocoll_textz2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 172); case 173: /* geocoll_textz ::= VANUATU_OPEN_BRACKET polygonz geocoll_textz2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 173); case 174: /* geocoll_textz ::= VANUATU_OPEN_BRACKET multipointz geocoll_textz2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 174); case 175: /* geocoll_textz ::= VANUATU_OPEN_BRACKET multilinestringz geocoll_textz2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 175); case 176: /* geocoll_textz ::= VANUATU_OPEN_BRACKET multipolygonz geocoll_textz2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 176); case 177: /* geocoll_textz ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_Z geocoll_textz geocoll_textz2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 177); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_geomColl_xyz (p_data, (gaiaGeomCollPtr) yymsp[-2].minor.yy0); } break; case 186: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET pointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ case 187: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET linestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 187); case 188: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET polygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 188); case 189: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET multipointzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 189); case 190: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET multilinestringzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 190); case 191: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET multipolygonzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 191); case 192: /* geocoll_textzm ::= VANUATU_OPEN_BRACKET VANUATU_GEOMETRYCOLLECTION_ZM geocoll_textzm geocoll_textzm2 VANUATU_CLOSE_BRACKET */ yytestcase (yyruleno == 192); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) vanuatu_geomColl_xyzm (p_data, (gaiaGeomCollPtr) yymsp[-2].minor.yy0); } break; default: /* (0) main ::= in */ yytestcase (yyruleno == 0); /* (1) in ::= */ yytestcase (yyruleno == 1); /* (2) in ::= in state VANUATU_NEWLINE */ yytestcase (yyruleno == 2); /* (3) state ::= program */ yytestcase (yyruleno == 3); /* (4) program ::= geo_text */ yytestcase (yyruleno == 4); /* (5) program ::= geo_textz */ yytestcase (yyruleno == 5); /* (6) program ::= geo_textm */ yytestcase (yyruleno == 6); /* (7) program ::= geo_textzm */ yytestcase (yyruleno == 7); break; }; yygoto = yyRuleInfo[yyruleno].lhs; yysize = yyRuleInfo[yyruleno].nrhs; yypParser->yyidx -= yysize; yyact = yy_find_reduce_action (yymsp[-yysize].stateno, (YYCODETYPE) yygoto); if (yyact < YYNSTATE) { #ifdef NDEBUG /* If we are not debugging and the reduce action popped at least ** one element off the stack, then we can push the new element back ** onto the stack here, and skip the stack overflow test in yy_shift(). ** That gives a significant speed improvement. */ if (yysize) { yypParser->yyidx++; yymsp -= yysize - 1; yymsp->stateno = (YYACTIONTYPE) yyact; yymsp->major = (YYCODETYPE) yygoto; yymsp->minor = yygotominor; } else #endif { yy_shift (yypParser, yyact, yygoto, &yygotominor); } } else { assert (yyact == YYNSTATE + YYNRULE + 1); yy_accept (yypParser); } } /* ** The following code executes when the parse fails */ #ifndef YYNOERRORRECOVERY static void yy_parse_failed (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFail!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser fails */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. */ static void yy_syntax_error (yyParser * yypParser, /* The parser */ int yymajor, /* The major type of the error token */ YYMINORTYPE yyminor /* The minor type of the error token */ ) { ParseARG_FETCH; #define TOKEN (yyminor.yy0) /* ** Sandro Furieri 2010 Apr 4 ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->vanuatu_parse_error = 1; p_data->result = NULL; ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* ** The following is executed when the parser accepts */ static void yy_accept (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sAccept!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. ** The first argument is a pointer to a structure obtained from ** "ParseAlloc" which describes the current state of the parser. ** The second argument is the major token number. The third is ** the minor token. The fourth optional argument is whatever the ** user wants (and specified in the grammar) and is available for ** use by the action routines. ** ** Inputs: **
    **
  • A pointer to the parser (an opaque structure.) **
  • The major token number. **
  • The minor token number. **
  • An option argument of a grammar-specified type. **
** ** Outputs: ** None. */ void Parse (void *yyp, /* The parser */ int yymajor, /* The major token code number */ ParseTOKENTYPE yyminor /* The value for the token */ ParseARG_PDECL /* Optional %extra_argument parameter */ ) { YYMINORTYPE yyminorunion; int yyact; /* The parser action. */ int yyendofinput; /* True if we are at the end of input */ #ifdef YYERRORSYMBOL int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif yyParser *yypParser; /* The parser */ /* (re)initialize the parser, if necessary */ yypParser = (yyParser *) yyp; if (yypParser->yyidx < 0) { #if YYSTACKDEPTH<=0 if (yypParser->yystksz <= 0) { /*memset(&yyminorunion, 0, sizeof(yyminorunion)); */ yyminorunion = yyzerominor; yyStackOverflow (yypParser, &yyminorunion); return; } #endif yypParser->yyidx = 0; yypParser->yyerrcnt = -1; yypParser->yystack[0].stateno = 0; yypParser->yystack[0].major = 0; } yyminorunion.yy0 = yyminor; yyendofinput = (yymajor == 0); ParseARG_STORE; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sInput %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif do { yyact = yy_find_shift_action (yypParser, (YYCODETYPE) yymajor); if (yyact < YYNSTATE) { assert (!yyendofinput); /* Impossible to shift the $ token */ yy_shift (yypParser, yyact, yymajor, &yyminorunion); yypParser->yyerrcnt--; yymajor = YYNOCODE; } else if (yyact < YYNSTATE + YYNRULE) { yy_reduce (yypParser, yyact - YYNSTATE); } else { assert (yyact == YY_ERROR_ACTION); #ifdef YYERRORSYMBOL int yymx; #endif #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt); } #endif #ifdef YYERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". ** ** This is what we do if the grammar does define ERROR: ** ** * Call the %syntax_error function. ** ** * Begin popping the stack until we enter a state where ** it is legal to shift the error symbol, then shift ** the error symbol. ** ** * Set the error count to three. ** ** * Begin accepting and shifting new tokens. No new error ** processing will occur until three tokens have been ** shifted successfully. ** */ if (yypParser->yyerrcnt < 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yymx = yypParser->yystack[yypParser->yyidx].major; if (yymx == YYERRORSYMBOL || yyerrorhit) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sDiscard input token %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; } else { while (yypParser->yyidx >= 0 && yymx != YYERRORSYMBOL && (yyact = yy_find_reduce_action (yypParser->yystack [yypParser->yyidx].stateno, YYERRORSYMBOL)) >= YYNSTATE) { yy_pop_parser_stack (yypParser); } if (yypParser->yyidx < 0 || yymajor == 0) { yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yy_parse_failed (yypParser); yymajor = YYNOCODE; } else if (yymx != YYERRORSYMBOL) { YYMINORTYPE u2; u2.YYERRSYMDT = 0; yy_shift (yypParser, yyact, YYERRORSYMBOL, &u2); } } yypParser->yyerrcnt = 3; yyerrorhit = 1; #elif defined(YYNOERRORRECOVERY) /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to ** do any kind of error recovery. Instead, simply invoke the syntax ** error routine and continue going as if nothing had happened. ** ** Applications can set this macro (for example inside %include) if ** they intend to abandon the parse upon the first syntax error seen. */ yy_syntax_error (yypParser, yymajor, yyminorunion); yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; #else /* YYERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. ** ** * If the input token is $, then fail the parse. ** ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ if (yypParser->yyerrcnt <= 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yypParser->yyerrcnt = 3; yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); if (yyendofinput) { yy_parse_failed (yypParser); } yymajor = YYNOCODE; #endif } } while (yymajor != YYNOCODE && yypParser->yyidx >= 0); return; } libspatialite-4.3.0a/src/gaiageo/gg_transform.c0000664000175000017500000014416412544707704016473 00000000000000/* gg_transform.c -- Gaia PROJ.4 wrapping version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #ifndef OMIT_PROJ /* including PROJ.4 */ #include #endif #include #include #include GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeCircle (double cx, double cy, double radius, double step) { /* return a Linestring approximating a Circle */ return gaiaMakeEllipse (cx, cy, radius, radius, step); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeArc (double cx, double cy, double radius, double start, double stop, double step) { /* return a Linestring approximating a Circular Arc */ return gaiaMakeEllipticArc (cx, cy, radius, radius, start, stop, step); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeEllipse (double cx, double cy, double x_axis, double y_axis, double step) { /* return a Linestring approximating an Ellipse */ gaiaDynamicLinePtr dyn; double x; double y; double angle = 0.0; int points = 0; gaiaPointPtr pt; gaiaGeomCollPtr geom; gaiaLinestringPtr ln; int iv = 0; if (step < 0.0) step *= -1.0; if (step == 0.0) step = 10.0; if (step < 0.1) step = 0.1; if (step > 45.0) step = 45.0; if (x_axis < 0.0) x_axis *= -1.0; if (y_axis < 0.0) y_axis *= -1.0; dyn = gaiaAllocDynamicLine (); while (angle < 360.0) { double rads = angle * .0174532925199432958; x = cx + (x_axis * cos (rads)); y = cy + (y_axis * sin (rads)); gaiaAppendPointToDynamicLine (dyn, x, y); angle += step; } /* closing the ellipse */ gaiaAppendPointToDynamicLine (dyn, dyn->First->X, dyn->First->Y); pt = dyn->First; while (pt) { /* counting how many points */ points++; pt = pt->Next; } if (points == 0) { gaiaFreeDynamicLine (dyn); return NULL; } geom = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (geom, points); pt = dyn->First; while (pt) { /* setting Vertices */ gaiaSetPoint (ln->Coords, iv, pt->X, pt->Y); iv++; pt = pt->Next; } gaiaFreeDynamicLine (dyn); return geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeEllipticArc (double cx, double cy, double x_axis, double y_axis, double start, double stop, double step) { /* return a Linestring approximating an Elliptic Arc */ gaiaDynamicLinePtr dyn; double x; double y; double angle; double rads; int points = 0; gaiaPointPtr pt; gaiaGeomCollPtr geom; gaiaLinestringPtr ln; int iv = 0; if (step < 0.0) step *= -1.0; if (step == 0.0) step = 10.0; if (step < 0.1) step = 0.1; if (step > 45.0) step = 45.0; if (x_axis < 0.0) x_axis *= -1.0; if (y_axis < 0.0) y_axis *= -1.0; /* normalizing Start/Stop angles */ while (start >= 360.0) start -= 360.0; while (start <= -720.0) start += 360; while (stop >= 360.0) stop -= 360.0; while (stop <= -720.0) stop += 360; if (start < 0.0) start = 360.0 + start; if (stop < 0.0) stop = 360.0 + stop; if (start > stop) stop += 360.0; dyn = gaiaAllocDynamicLine (); angle = start; while (angle < stop) { rads = angle * .0174532925199432958; x = cx + (x_axis * cos (rads)); y = cy + (y_axis * sin (rads)); gaiaAppendPointToDynamicLine (dyn, x, y); angle += step; points++; } if (points == 0) { gaiaFreeDynamicLine (dyn); return NULL; } /* closing the arc */ rads = stop * .0174532925199432958; x = cx + (x_axis * cos (rads)); y = cy + (y_axis * sin (rads)); if (x != dyn->Last->X || y != dyn->Last->Y) gaiaAppendPointToDynamicLine (dyn, x, y); pt = dyn->First; points = 0; while (pt) { /* counting how many points */ points++; pt = pt->Next; } if (points == 0) { gaiaFreeDynamicLine (dyn); return NULL; } geom = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (geom, points); pt = dyn->First; while (pt) { /* setting Vertices */ gaiaSetPoint (ln->Coords, iv, pt->X, pt->Y); iv++; pt = pt->Next; } gaiaFreeDynamicLine (dyn); return geom; } GAIAGEO_DECLARE void gaiaShiftCoords (gaiaGeomCollPtr geom, double shift_x, double shift_y) { /* returns a geometry that is the old geometry with required shifting applied to coordinates */ int ib; int iv; double x; double y; double z; double m; gaiaPointPtr point; gaiaPolygonPtr polyg; gaiaLinestringPtr line; gaiaRingPtr ring; if (!geom) return; point = geom->FirstPoint; while (point) { /* shifting POINTs */ point->X += shift_x; point->Y += shift_y; point = point->Next; } line = geom->FirstLinestring; while (line) { /* shifting LINESTRINGs */ for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } x += shift_x; y += shift_y; if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); } else { gaiaSetPoint (line->Coords, iv, x, y); } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* shifting POLYGONs */ ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* shifting the EXTERIOR RING */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } x += shift_x; y += shift_y; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* shifting the INTERIOR RINGs */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } x += shift_x; y += shift_y; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } } polyg = polyg->Next; } gaiaMbrGeometry (geom); } GAIAGEO_DECLARE void gaiaShiftCoords3D (gaiaGeomCollPtr geom, double shift_x, double shift_y, double shift_z) { /* returns a geometry that is the old geometry with required shifting applied to coordinates */ int ib; int iv; double x; double y; double z; double m; gaiaPointPtr point; gaiaPolygonPtr polyg; gaiaLinestringPtr line; gaiaRingPtr ring; if (!geom) return; point = geom->FirstPoint; while (point) { /* shifting POINTs */ point->X += shift_x; point->Y += shift_y; if (point->DimensionModel == GAIA_XY_Z || point->DimensionModel == GAIA_XY_Z_M) point->Z += shift_z; point = point->Next; } line = geom->FirstLinestring; while (line) { /* shifting LINESTRINGs */ for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } x += shift_x; y += shift_y; z += shift_z; if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); } else { gaiaSetPoint (line->Coords, iv, x, y); } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* shifting POLYGONs */ ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* shifting the EXTERIOR RING */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } x += shift_x; y += shift_y; z += shift_z; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* shifting the INTERIOR RINGs */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } x += shift_x; y += shift_y; z += shift_z; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } } polyg = polyg->Next; } gaiaMbrGeometry (geom); } GAIAGEO_DECLARE void gaiaShiftLongitude (gaiaGeomCollPtr geom) { /* returns a geometry that is the old geometry with negative longitudes shift by 360 */ int ib; int iv; double x; double y; double z; double m; gaiaPointPtr point; gaiaPolygonPtr polyg; gaiaLinestringPtr line; gaiaRingPtr ring; if (!geom) return; point = geom->FirstPoint; while (point) { /* shifting POINTs */ if (point->X < 0) { point->X += 360.0; } point = point->Next; } line = geom->FirstLinestring; while (line) { /* shifting LINESTRINGs */ for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (x < 0) { x += 360.0; } if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); } else { gaiaSetPoint (line->Coords, iv, x, y); } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* shifting POLYGONs */ ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* shifting the EXTERIOR RING */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } if (x < 0) { x += 360.0; } if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* shifting the INTERIOR RINGs */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } if (x < 0) { x += 360.0; } if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } } polyg = polyg->Next; } gaiaMbrGeometry (geom); } static void normalizePoint (double *x, double *y) { if ((-180.0 <= *x) && (*x <= 180.0) && (-90.0 <= *y) && (*y <= 90.0)) { /* then this point is already OK */ return; } if ((*x > 180.0) || (*x < -180.0)) { int numCycles = (int) (*x / 360.0); *x -= numCycles * 360.0; } if (*x > 180.0) { *x -= 360.0; } if (*x < -180.0) { *x += 360.0; } if ((*y > 90.0) || (*y < -90.0)) { int numCycles = (int) (*y / 360.0); *y -= numCycles * 360.0; } if (*y > 180.0) { *y = -1.0 * (*y - 180.0); } if (*y < -180.0) { *y = -1.0 * (*y + 180.0); } if (*y > 90.0) { *y = 180 - *y; } if (*y < -90.0) { *y = -180.0 - *y; } } GAIAGEO_DECLARE void gaiaNormalizeLonLat (gaiaGeomCollPtr geom) { /* returns a geometry that is the old geometry with all latitudes shifted into the range -90 to 90, and all longitudes shifted into the range -180 to 180. */ int ib; int iv; double x = 0.0; double y = 0.0; double z = 0.0; double m = 0.0; gaiaPointPtr point; gaiaPolygonPtr polyg; gaiaLinestringPtr line; gaiaRingPtr ring; if (!geom) return; point = geom->FirstPoint; while (point) { normalizePoint (&(point->X), &(point->Y)); point = point->Next; } line = geom->FirstLinestring; while (line) { /* shifting LINESTRINGs */ for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } normalizePoint (&x, &y); if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); } else { gaiaSetPoint (line->Coords, iv, x, y); } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* shifting POLYGONs */ ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* shifting the EXTERIOR RING */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } normalizePoint (&x, &y); if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* shifting the INTERIOR RINGs */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } normalizePoint (&x, &y); if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } } polyg = polyg->Next; } gaiaMbrGeometry (geom); } GAIAGEO_DECLARE void gaiaScaleCoords (gaiaGeomCollPtr geom, double scale_x, double scale_y) { /* returns a geometry that is the old geometry with required scaling applied to coordinates */ int ib; int iv; double x; double y; double z; double m; gaiaPointPtr point; gaiaPolygonPtr polyg; gaiaLinestringPtr line; gaiaRingPtr ring; if (!geom) return; point = geom->FirstPoint; while (point) { /* scaling POINTs */ point->X *= scale_x; point->Y *= scale_y; point = point->Next; } line = geom->FirstLinestring; while (line) { /* scaling LINESTRINGs */ for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } x *= scale_x; y *= scale_y; if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); } else { gaiaSetPoint (line->Coords, iv, x, y); } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* scaling POLYGONs */ ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* scaling the EXTERIOR RING */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } x *= scale_x; y *= scale_y; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* scaling the INTERIOR RINGs */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } x *= scale_x; y *= scale_y; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } } polyg = polyg->Next; } gaiaMbrGeometry (geom); } GAIAGEO_DECLARE void gaiaRotateCoords (gaiaGeomCollPtr geom, double angle) { /* returns a geometry that is the old geometry with required rotation applied to coordinates */ int ib; int iv; double x; double y; double z; double m; double nx; double ny; double rad = angle * 0.0174532925199432958; double cosine = cos (rad); double sine = sin (rad); gaiaPointPtr point; gaiaPolygonPtr polyg; gaiaLinestringPtr line; gaiaRingPtr ring; if (!geom) return; point = geom->FirstPoint; while (point) { /* shifting POINTs */ x = point->X; y = point->Y; point->X = (x * cosine) + (y * sine); point->Y = (y * cosine) - (x * sine); point = point->Next; } line = geom->FirstLinestring; while (line) { /* rotating LINESTRINGs */ for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } nx = (x * cosine) + (y * sine); ny = (y * cosine) - (x * sine); if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, iv, nx, ny, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, iv, nx, ny, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, iv, nx, ny, z, m); } else { gaiaSetPoint (line->Coords, iv, nx, ny); } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* rotating POLYGONs */ ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* rotating the EXTERIOR RING */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } nx = (x * cosine) + (y * sine); ny = (y * cosine) - (x * sine); if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, nx, ny, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, nx, ny, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, nx, ny, z, m); } else { gaiaSetPoint (ring->Coords, iv, nx, ny); } } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* rotating the INTERIOR RINGs */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } nx = (x * cosine) + (y * sine); ny = (y * cosine) - (x * sine); if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, nx, ny, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, nx, ny, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, nx, ny, z, m); } else { gaiaSetPoint (ring->Coords, iv, nx, ny); } } } polyg = polyg->Next; } gaiaMbrGeometry (geom); } GAIAGEO_DECLARE void gaiaReflectCoords (gaiaGeomCollPtr geom, int x_axis, int y_axis) { /* returns a geometry that is the old geometry with required reflection applied to coordinates */ int ib; int iv; double x; double y; double z = 0.0; double m = 0.0; gaiaPointPtr point; gaiaPolygonPtr polyg; gaiaLinestringPtr line; gaiaRingPtr ring; if (!geom) return; point = geom->FirstPoint; while (point) { /* reflecting POINTs */ if (x_axis) point->X *= -1.0; if (y_axis) point->Y *= -1.0; point = point->Next; } line = geom->FirstLinestring; while (line) { /* reflecting LINESTRINGs */ for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (x_axis) x *= -1.0; if (y_axis) y *= -1.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); } else { gaiaSetPoint (line->Coords, iv, x, y); } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* reflecting POLYGONs */ ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* reflecting the EXTERIOR RING */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } if (x_axis) x *= -1.0; if (y_axis) y *= -1.0; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* reflecting the INTERIOR RINGs */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } if (x_axis) x *= -1.0; if (y_axis) y *= -1.0; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } } polyg = polyg->Next; } gaiaMbrGeometry (geom); } GAIAGEO_DECLARE void gaiaSwapCoords (gaiaGeomCollPtr geom) { /* returns a geometry that is the old geometry with swapped x- and y-coordinates */ int ib; int iv; double x; double y; double z; double m; double sv; gaiaPointPtr point; gaiaPolygonPtr polyg; gaiaLinestringPtr line; gaiaRingPtr ring; if (!geom) return; point = geom->FirstPoint; while (point) { /* swapping POINTs */ sv = point->X; point->X = point->Y; point->Y = sv; point = point->Next; } line = geom->FirstLinestring; while (line) { /* swapping LINESTRINGs */ for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } sv = x; x = y; y = sv; if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); } else { gaiaSetPoint (line->Coords, iv, x, y); } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* swapping POLYGONs */ ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* shifting the EXTERIOR RING */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } sv = x; x = y; y = sv; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } for (ib = 0; ib < polyg->NumInteriors; ib++) { /* swapping the INTERIOR RINGs */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } sv = x; x = y; y = sv; if (ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (ring->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (ring->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (ring->Coords, iv, x, y); } } } polyg = polyg->Next; } gaiaMbrGeometry (geom); } #ifndef OMIT_PROJ /* including PROJ.4 */ static int gaiaIsLongLat (char *str) { /* checks if we have to do with ANGLES if +proj=longlat is defined */ if (strstr (str, "+proj=longlat") != NULL) return 1; return 0; } GAIAGEO_DECLARE double gaiaRadsToDegs (double rads) { /* converts an ANGLE from radians to degrees */ return rads * RAD_TO_DEG; } GAIAGEO_DECLARE double gaiaDegsToRads (double degs) { /* converts an ANGLE from degrees to radians */ return degs * DEG_TO_RAD; } static gaiaGeomCollPtr gaiaTransformCommon (projCtx handle, gaiaGeomCollPtr org, char *proj_from, char *proj_to) { /* creates a new GEOMETRY reprojecting coordinates from the original one */ int ib; int cnt; int i; double *xx; double *yy; double *zz; double *mm = NULL; double x; double y; double z = 0.0; double m = 0.0; int error = 0; int from_angle; int to_angle; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaLinestringPtr dst_ln; gaiaPolygonPtr pg; gaiaPolygonPtr dst_pg; gaiaRingPtr rng; gaiaRingPtr dst_rng; projPJ from_cs; projPJ to_cs; gaiaGeomCollPtr dst; if (handle != NULL) { from_cs = pj_init_plus_ctx (handle, proj_from); to_cs = pj_init_plus_ctx (handle, proj_to); } else { from_cs = pj_init_plus (proj_from); to_cs = pj_init_plus (proj_to); } if (!from_cs) { if (to_cs) pj_free (to_cs); return NULL; } if (!to_cs) { pj_free (from_cs); return NULL; } if (org->DimensionModel == GAIA_XY_Z) dst = gaiaAllocGeomCollXYZ (); else if (org->DimensionModel == GAIA_XY_M) dst = gaiaAllocGeomCollXYM (); else if (org->DimensionModel == GAIA_XY_Z_M) dst = gaiaAllocGeomCollXYZM (); else dst = gaiaAllocGeomColl (); /* setting up projection parameters */ from_angle = gaiaIsLongLat (proj_from); to_angle = gaiaIsLongLat (proj_to); cnt = 0; pt = org->FirstPoint; while (pt) { /* counting POINTs */ cnt++; pt = pt->Next; } if (cnt) { /* reprojecting POINTs */ xx = malloc (sizeof (double) * cnt); yy = malloc (sizeof (double) * cnt); zz = malloc (sizeof (double) * cnt); if (org->DimensionModel == GAIA_XY_M || org->DimensionModel == GAIA_XY_Z_M) mm = malloc (sizeof (double) * cnt); i = 0; pt = org->FirstPoint; while (pt) { /* inserting points to be converted in temporary arrays */ if (from_angle) { xx[i] = gaiaDegsToRads (pt->X); yy[i] = gaiaDegsToRads (pt->Y); } else { xx[i] = pt->X; yy[i] = pt->Y; } if (org->DimensionModel == GAIA_XY_Z || org->DimensionModel == GAIA_XY_Z_M) zz[i] = pt->Z; else zz[i] = 0.0; if (org->DimensionModel == GAIA_XY_M || org->DimensionModel == GAIA_XY_Z_M) mm[i] = pt->M; i++; pt = pt->Next; } /* applying reprojection */ if (pj_transform (from_cs, to_cs, cnt, 0, xx, yy, zz) == 0) { /* inserting the reprojected POINTs in the new GEOMETRY */ for (i = 0; i < cnt; i++) { if (to_angle) { x = gaiaRadsToDegs (xx[i]); y = gaiaRadsToDegs (yy[i]); } else { x = xx[i]; y = yy[i]; } if (org->DimensionModel == GAIA_XY_Z || org->DimensionModel == GAIA_XY_Z_M) z = zz[i]; else z = 0.0; if (org->DimensionModel == GAIA_XY_M || org->DimensionModel == GAIA_XY_Z_M) m = mm[i]; else m = 0.0; if (dst->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (dst, x, y, z); else if (dst->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (dst, x, y, m); else if (dst->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (dst, x, y, z, m); else gaiaAddPointToGeomColl (dst, x, y); } } else error = 1; free (xx); free (yy); free (zz); if (org->DimensionModel == GAIA_XY_M || org->DimensionModel == GAIA_XY_Z_M) free (mm); } if (error) goto stop; ln = org->FirstLinestring; while (ln) { /* reprojecting LINESTRINGs */ cnt = ln->Points; xx = malloc (sizeof (double) * cnt); yy = malloc (sizeof (double) * cnt); zz = malloc (sizeof (double) * cnt); if (ln->DimensionModel == GAIA_XY_M || ln->DimensionModel == GAIA_XY_Z_M) mm = malloc (sizeof (double) * cnt); for (i = 0; i < cnt; i++) { /* inserting points to be converted in temporary arrays */ if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, i, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, i, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, i, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, i, &x, &y); } if (from_angle) { xx[i] = gaiaDegsToRads (x); yy[i] = gaiaDegsToRads (y); } else { xx[i] = x; yy[i] = y; } if (ln->DimensionModel == GAIA_XY_Z || ln->DimensionModel == GAIA_XY_Z_M) zz[i] = z; else zz[i] = 0.0; if (ln->DimensionModel == GAIA_XY_M || ln->DimensionModel == GAIA_XY_Z_M) mm[i] = m; } /* applying reprojection */ if (pj_transform (from_cs, to_cs, cnt, 0, xx, yy, zz) == 0) { /* inserting the reprojected LINESTRING in the new GEOMETRY */ dst_ln = gaiaAddLinestringToGeomColl (dst, cnt); for (i = 0; i < cnt; i++) { /* setting LINESTRING points */ if (to_angle) { x = gaiaRadsToDegs (xx[i]); y = gaiaRadsToDegs (yy[i]); } else { x = xx[i]; y = yy[i]; } if (ln->DimensionModel == GAIA_XY_Z || ln->DimensionModel == GAIA_XY_Z_M) z = zz[i]; else z = 0.0; if (ln->DimensionModel == GAIA_XY_M || ln->DimensionModel == GAIA_XY_Z_M) m = mm[i]; else m = 0.0; if (dst_ln->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (dst_ln->Coords, i, x, y, z); } else if (dst_ln->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (dst_ln->Coords, i, x, y, m); } else if (dst_ln->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (dst_ln->Coords, i, x, y, z, m); } else { gaiaSetPoint (dst_ln->Coords, i, x, y); } } } else error = 1; free (xx); free (yy); free (zz); if (ln->DimensionModel == GAIA_XY_M || ln->DimensionModel == GAIA_XY_Z_M) free (mm); if (error) goto stop; ln = ln->Next; } pg = org->FirstPolygon; while (pg) { /* reprojecting POLYGONs */ rng = pg->Exterior; cnt = rng->Points; dst_pg = gaiaAddPolygonToGeomColl (dst, cnt, pg->NumInteriors); xx = malloc (sizeof (double) * cnt); yy = malloc (sizeof (double) * cnt); zz = malloc (sizeof (double) * cnt); if (rng->DimensionModel == GAIA_XY_M || rng->DimensionModel == GAIA_XY_Z_M) mm = malloc (sizeof (double) * cnt); for (i = 0; i < cnt; i++) { /* inserting points to be converted in temporary arrays [EXTERIOR RING] */ if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, i, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, i, &x, &y, &m); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, i, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, i, &x, &y); } if (from_angle) { xx[i] = gaiaDegsToRads (x); yy[i] = gaiaDegsToRads (y); } else { xx[i] = x; yy[i] = y; } if (rng->DimensionModel == GAIA_XY_Z || rng->DimensionModel == GAIA_XY_Z_M) zz[i] = z; else zz[i] = 0.0; if (rng->DimensionModel == GAIA_XY_M || rng->DimensionModel == GAIA_XY_Z_M) mm[i] = m; } /* applying reprojection */ if (pj_transform (from_cs, to_cs, cnt, 0, xx, yy, zz) == 0) { /* inserting the reprojected POLYGON in the new GEOMETRY */ dst_rng = dst_pg->Exterior; for (i = 0; i < cnt; i++) { /* setting EXTERIOR RING points */ if (to_angle) { x = gaiaRadsToDegs (xx[i]); y = gaiaRadsToDegs (yy[i]); } else { x = xx[i]; y = yy[i]; } if (rng->DimensionModel == GAIA_XY_Z || rng->DimensionModel == GAIA_XY_Z_M) z = zz[i]; else z = 0.0; if (rng->DimensionModel == GAIA_XY_M || rng->DimensionModel == GAIA_XY_Z_M) m = mm[i]; else m = 0.0; if (dst_rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (dst_rng->Coords, i, x, y, z); } else if (dst_rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (dst_rng->Coords, i, x, y, m); } else if (dst_rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (dst_rng->Coords, i, x, y, z, m); } else { gaiaSetPoint (dst_rng->Coords, i, x, y); } } } else error = 1; free (xx); free (yy); free (zz); if (rng->DimensionModel == GAIA_XY_M || rng->DimensionModel == GAIA_XY_Z_M) free (mm); if (error) goto stop; for (ib = 0; ib < pg->NumInteriors; ib++) { /* processing INTERIOR RINGS */ rng = pg->Interiors + ib; cnt = rng->Points; xx = malloc (sizeof (double) * cnt); yy = malloc (sizeof (double) * cnt); zz = malloc (sizeof (double) * cnt); if (rng->DimensionModel == GAIA_XY_M || rng->DimensionModel == GAIA_XY_Z_M) mm = malloc (sizeof (double) * cnt); for (i = 0; i < cnt; i++) { /* inserting points to be converted in temporary arrays [INTERIOR RING] */ if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, i, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, i, &x, &y, &m); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, i, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, i, &x, &y); } if (from_angle) { xx[i] = gaiaDegsToRads (x); yy[i] = gaiaDegsToRads (y); } else { xx[i] = x; yy[i] = y; } if (rng->DimensionModel == GAIA_XY_Z || rng->DimensionModel == GAIA_XY_Z_M) zz[i] = z; else zz[i] = 0.0; if (rng->DimensionModel == GAIA_XY_M || rng->DimensionModel == GAIA_XY_Z_M) mm[i] = m; } /* applying reprojection */ if (pj_transform (from_cs, to_cs, cnt, 0, xx, yy, zz) == 0) { /* inserting the reprojected POLYGON in the new GEOMETRY */ dst_rng = gaiaAddInteriorRing (dst_pg, ib, cnt); for (i = 0; i < cnt; i++) { /* setting INTERIOR RING points */ if (to_angle) { x = gaiaRadsToDegs (xx[i]); y = gaiaRadsToDegs (yy[i]); } else { x = xx[i]; y = yy[i]; } if (rng->DimensionModel == GAIA_XY_Z || rng->DimensionModel == GAIA_XY_Z_M) z = zz[i]; else z = 0.0; if (rng->DimensionModel == GAIA_XY_M || rng->DimensionModel == GAIA_XY_Z_M) m = mm[i]; else m = 0.0; if (dst_rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (dst_rng->Coords, i, x, y, z); } else if (dst_rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (dst_rng->Coords, i, x, y, m); } else if (dst_rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (dst_rng->Coords, i, x, y, z, m); } else { gaiaSetPoint (dst_rng->Coords, i, x, y); } } } else error = 1; free (xx); free (yy); free (zz); if (rng->DimensionModel == GAIA_XY_M || rng->DimensionModel == GAIA_XY_Z_M) free (mm); if (error) goto stop; } pg = pg->Next; } /* destroying the PROJ4 params */ stop: pj_free (from_cs); pj_free (to_cs); if (error) { /* some error occurred */ gaiaPointPtr pP; gaiaPointPtr pPn; gaiaLinestringPtr pL; gaiaLinestringPtr pLn; gaiaPolygonPtr pA; gaiaPolygonPtr pAn; pP = dst->FirstPoint; while (pP != NULL) { pPn = pP->Next; gaiaFreePoint (pP); pP = pPn; } pL = dst->FirstLinestring; while (pL != NULL) { pLn = pL->Next; gaiaFreeLinestring (pL); pL = pLn; } pA = dst->FirstPolygon; while (pA != NULL) { pAn = pA->Next; gaiaFreePolygon (pA); pA = pAn; } dst->FirstPoint = NULL; dst->LastPoint = NULL; dst->FirstLinestring = NULL; dst->LastLinestring = NULL; dst->FirstPolygon = NULL; dst->LastPolygon = NULL; } if (dst) { gaiaMbrGeometry (dst); dst->DeclaredType = org->DeclaredType; } return dst; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform (gaiaGeomCollPtr org, char *proj_from, char *proj_to) { return gaiaTransformCommon (NULL, org, proj_from, proj_to); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform_r (const void *p_cache, gaiaGeomCollPtr org, char *proj_from, char *proj_to) { struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; projCtx handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->PROJ_handle; if (handle == NULL) return NULL; return gaiaTransformCommon (handle, org, proj_from, proj_to); } #endif /* end including PROJ.4 */ libspatialite-4.3.0a/src/gaiageo/gg_gml.c0000664000175000017500000025063512544707704015240 00000000000000/* gg_gml.c -- GML parser/lexer version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011-2015 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #if defined(_WIN32) || defined(WIN32) #include #ifndef isatty #define isatty _isatty #endif #ifndef fileno #define fileno _fileno #endif #endif #define GML_PARSER_OPEN_NODE 1 #define GML_PARSER_SELF_CLOSED_NODE 2 #define GML_PARSER_CLOSED_NODE 3 #define GAIA_GML_UNKNOWN 0 #define GAIA_GML_POINT 1 #define GAIA_GML_LINESTRING 2 #define GAIA_GML_CURVE 3 #define GAIA_GML_POLYGON 4 #define GAIA_GML_MULTIPOINT 5 #define GAIA_GML_MULTILINESTRING 6 #define GAIA_GML_MULTICURVE 7 #define GAIA_GML_MULTIPOLYGON 8 #define GAIA_GML_MULTISURFACE 9 #define GAIA_GML_MULTIGEOMETRY 10 #define GAIA_GML_BOX 11 #define GML_DYN_NONE 0 #define GML_DYN_DYNLINE 1 #define GML_DYN_GEOM 2 #define GML_DYN_DYNPG 3 #define GML_DYN_NODE 4 #define GML_DYN_COORD 5 #define GML_DYN_ATTRIB 6 #define GML_DYN_BLOCK 1024 /* ** CAVEAT: we must redefine any Lemon/Flex own macro */ #define YYMINORTYPE GML_MINORTYPE #define YY_CHAR GML_YY_CHAR #define input gml_input #define ParseAlloc gmlParseAlloc #define ParseFree gmlParseFree #define ParseStackPeak gmlParseStackPeak #define Parse gmlParse #define yyStackEntry gml_yyStackEntry #define yyzerominor gml_yyzerominor #define yy_accept gml_yy_accept #define yy_action gml_yy_action #define yy_base gml_yy_base #define yy_buffer_stack gml_yy_buffer_stack #define yy_buffer_stack_max gml_yy_buffer_stack_max #define yy_buffer_stack_top gml_yy_buffer_stack_top #define yy_c_buf_p gml_yy_c_buf_p #define yy_chk gml_yy_chk #define yy_def gml_yy_def #define yy_default gml_yy_default #define yy_destructor gml_yy_destructor #define yy_ec gml_yy_ec #define yy_fatal_error gml_yy_fatal_error #define yy_find_reduce_action gml_yy_find_reduce_action #define yy_find_shift_action gml_yy_find_shift_action #define yy_get_next_buffer gml_yy_get_next_buffer #define yy_get_previous_state gml_yy_get_previous_state #define yy_init gml_yy_init #define yy_init_globals gml_yy_init_globals #define yy_lookahead gml_yy_lookahead #define yy_meta gml_yy_meta #define yy_nxt gml_yy_nxt #define yy_parse_failed gml_yy_parse_failed #define yy_pop_parser_stack gml_yy_pop_parser_stack #define yy_reduce gml_yy_reduce #define yy_reduce_ofst gml_yy_reduce_ofst #define yy_shift gml_yy_shift #define yy_shift_ofst gml_yy_shift_ofst #define yy_start gml_yy_start #define yy_state_type gml_yy_state_type #define yy_syntax_error gml_yy_syntax_error #define yy_trans_info gml_yy_trans_info #define yy_try_NUL_trans gml_yy_try_NUL_trans #define yyParser gml_yyParser #define yyStackEntry gml_yyStackEntry #define yyStackOverflow gml_yyStackOverflow #define yyRuleInfo gml_yyRuleInfo #define yyunput gml_yyunput #define yyzerominor gml_yyzerominor #define yyTraceFILE gml_yyTraceFILE #define yyTracePrompt gml_yyTracePrompt #define yyTokenName gml_yyTokenName #define yyRuleName gml_yyRuleName #define ParseTrace gml_ParseTrace #define yylex gml_yylex #define YY_DECL int yylex (yyscan_t yyscanner) /* include LEMON generated header */ #include "Gml.h" typedef union { char *pval; struct symtab *symp; } gml_yystype; #define YYSTYPE gml_yystype /* ** This is a linked-list struct to store all the values for each token. */ typedef struct gmlFlexTokenStruct { char *value; struct gmlFlexTokenStruct *Next; } gmlFlexToken; typedef struct gml_coord { char *Value; struct gml_coord *Next; } gmlCoord; typedef gmlCoord *gmlCoordPtr; typedef struct gml_attr { char *Key; char *Value; struct gml_attr *Next; } gmlAttr; typedef gmlAttr *gmlAttrPtr; typedef struct gml_node { char *Tag; int Type; int Error; struct gml_attr *Attributes; struct gml_coord *Coordinates; struct gml_node *Next; } gmlNode; typedef gmlNode *gmlNodePtr; typedef struct gml_dynamic_ring { gaiaDynamicLinePtr ring; int interior; int has_z; struct gml_dynamic_ring *next; } gmlDynamicRing; typedef gmlDynamicRing *gmlDynamicRingPtr; typedef struct gml_dynamic_polygon { struct gml_dynamic_ring *first; struct gml_dynamic_ring *last; } gmlDynamicPolygon; typedef gmlDynamicPolygon *gmlDynamicPolygonPtr; struct gml_dyn_block { /* a struct taking trace of dynamic allocations */ int type[GML_DYN_BLOCK]; void *ptr[GML_DYN_BLOCK]; int index; struct gml_dyn_block *next; }; struct gml_data { /* a struct used to make the lexer-parser reentrant and thread-safe */ int gml_parse_error; int gml_line; int gml_col; struct gml_dyn_block *gml_first_dyn_block; struct gml_dyn_block *gml_last_dyn_block; gmlNodePtr result; YYSTYPE GmlLval; }; static struct gml_dyn_block * gmlCreateDynBlock (void) { /* allocating a new block to trace dynamic allocations */ int i; struct gml_dyn_block *p = malloc (sizeof (struct gml_dyn_block)); for (i = 0; i < GML_DYN_BLOCK; i++) { /* initializing map entries */ p->type[i] = GML_DYN_NONE; p->ptr[i] = NULL; } p->index = 0; p->next = NULL; return p; } static void gmlMapDynAlloc (struct gml_data *p_data, int type, void *ptr) { /* appending a dynamic allocation into the map */ struct gml_dyn_block *p; if (p_data->gml_first_dyn_block == NULL) { /* inserting the first block of the map */ p = gmlCreateDynBlock (); p_data->gml_first_dyn_block = p; p_data->gml_last_dyn_block = p; } if (p_data->gml_last_dyn_block->index >= GML_DYN_BLOCK) { /* adding a further block to the map */ p = gmlCreateDynBlock (); p_data->gml_last_dyn_block->next = p; p_data->gml_last_dyn_block = p; } p_data->gml_last_dyn_block->type[p_data->gml_last_dyn_block->index] = type; p_data->gml_last_dyn_block->ptr[p_data->gml_last_dyn_block->index] = ptr; p_data->gml_last_dyn_block->index++; } static void gmlMapDynClean (struct gml_data *p_data, void *ptr) { /* deleting a dynamic allocation from the map */ int i; struct gml_dyn_block *p = p_data->gml_first_dyn_block; while (p) { for (i = 0; i < GML_DYN_BLOCK; i++) { switch (p->type[i]) { case GML_DYN_DYNLINE: case GML_DYN_GEOM: case GML_DYN_DYNPG: case GML_DYN_NODE: case GML_DYN_COORD: case GML_DYN_ATTRIB: if (p->ptr[i] == ptr) { p->type[i] = GML_DYN_NONE; return; } break; }; } p = p->next; } } static void gml_free_dyn_polygon (gmlDynamicPolygonPtr dyn) { /* deleting a dynamic polygon (ring collection) */ gmlDynamicRingPtr r; gmlDynamicRingPtr rn; if (!dyn) return; r = dyn->first; while (r) { rn = r->next; if (r->ring) gaiaFreeDynamicLine (r->ring); free (r); r = rn; } free (dyn); } static void gml_free_coord (gmlCoordPtr c) { /* deleting a GML coordinate */ if (c == NULL) return; if (c->Value) free (c->Value); free (c); } static void gml_free_attrib (gmlAttrPtr a) { /* deleting a GML attribute */ if (a == NULL) return; if (a->Key) free (a->Key); if (a->Value) free (a->Value); free (a); } static void gml_free_node (gmlNodePtr n) { /* deleting a GML node */ gmlAttrPtr a; gmlAttrPtr an; gmlCoordPtr c; gmlCoordPtr cn; if (n == NULL) return; a = n->Attributes; while (a) { an = a->Next; gml_free_attrib (a); a = an; } c = n->Coordinates; while (c) { cn = c->Next; gml_free_coord (c); c = cn; } if (n->Tag) free (n->Tag); free (n); } static void gmlCleanMapDynAlloc (struct gml_data *p_data, int clean_all) { /* cleaning the dynamic allocations map */ int i; struct gml_dyn_block *pn; struct gml_dyn_block *p = p_data->gml_first_dyn_block; while (p) { if (clean_all) { for (i = 0; i < GML_DYN_BLOCK; i++) { /* deleting Geometry objects */ switch (p->type[i]) { case GML_DYN_DYNLINE: gaiaFreeDynamicLine ((gaiaDynamicLinePtr) (p->ptr[i])); break; case GML_DYN_GEOM: gaiaFreeGeomColl ((gaiaGeomCollPtr) (p->ptr[i])); break; case GML_DYN_DYNPG: gml_free_dyn_polygon ((gmlDynamicPolygonPtr) (p->ptr[i])); break; case GML_DYN_NODE: gml_free_node ((gmlNodePtr) (p->ptr[i])); break; case GML_DYN_COORD: gml_free_coord ((gmlCoordPtr) (p->ptr[i])); break; case GML_DYN_ATTRIB: gml_free_attrib ((gmlAttrPtr) (p->ptr[i])); break; }; } } /* deleting the map block */ pn = p->next; free (p); p = pn; } } static gmlDynamicPolygonPtr gml_alloc_dyn_polygon (struct gml_data *p_data) { /* creating a dynamic polygon (ring collection) */ gmlDynamicPolygonPtr p = malloc (sizeof (gmlDynamicPolygon)); gmlMapDynAlloc (p_data, GML_DYN_DYNPG, p); p->first = NULL; p->last = NULL; return p; } static void gml_add_polygon_ring (struct gml_data *p_data, gmlDynamicPolygonPtr dyn_pg, gaiaDynamicLinePtr dyn, int interior, int has_z) { /* inserting a further ring into the collection (dynamic polygon) */ gmlDynamicRingPtr p = malloc (sizeof (gmlDynamicRing)); p->ring = dyn; p->interior = interior; p->has_z = has_z; p->next = NULL; if (dyn_pg->first == NULL) dyn_pg->first = p; if (dyn_pg->last != NULL) dyn_pg->last->next = p; dyn_pg->last = p; gmlMapDynClean (p_data, p); } static void gml_freeString (char **ptr) { /* releasing a string from the lexer */ if (*ptr != NULL) free (*ptr); *ptr = NULL; } static void gml_saveString (char **ptr, const char *str) { /* saving a string from the lexer */ int len = strlen (str); gml_freeString (ptr); *ptr = malloc (len + 1); strcpy (*ptr, str); } static gmlCoordPtr gml_coord (struct gml_data *p_data, void *value) { /* creating a coord Item */ int len; gmlFlexToken *tok = (gmlFlexToken *) value; gmlCoordPtr c = malloc (sizeof (gmlCoord)); gmlMapDynAlloc (p_data, GML_DYN_COORD, c); len = strlen (tok->value); c->Value = malloc (len + 1); strcpy (c->Value, tok->value); c->Next = NULL; return c; } static gmlAttrPtr gml_attribute (struct gml_data *p_data, void *key, void *value) { /* creating an attribute */ int len; gmlFlexToken *k_tok = (gmlFlexToken *) key; gmlFlexToken *v_tok = (gmlFlexToken *) value; gmlAttrPtr a = malloc (sizeof (gmlAttr)); gmlMapDynAlloc (p_data, GML_DYN_ATTRIB, a); len = strlen (k_tok->value); a->Key = malloc (len + 1); strcpy (a->Key, k_tok->value); len = strlen (v_tok->value); /* we need to de-quote the string, removing first and last ".." */ if (*(v_tok->value + 0) == '"' && *(v_tok->value + len - 1) == '"') { int bytesToCopy = len - 2; char *startingPointForCopy = v_tok->value + 1; a->Value = malloc (bytesToCopy + 1); memcpy (a->Value, startingPointForCopy, bytesToCopy); *(a->Value + bytesToCopy) = '\0'; } else { a->Value = malloc (len + 1); strcpy (a->Value, v_tok->value); } a->Next = NULL; return a; } static void gml_freeTree (struct gml_data *p_data, gmlNodePtr t) { /* deleting a GML tree */ gmlNodePtr n; gmlNodePtr nn; n = t; while (n) { nn = n->Next; gmlMapDynClean (p_data, n); gml_free_node (n); n = nn; } } static gmlNodePtr gml_createNode (struct gml_data *p_data, void *tag, void *attributes, void *coords) { /* creating a node */ gmlAttrPtr a; gmlCoordPtr c; int len; gmlFlexToken *tok = (gmlFlexToken *) tag; gmlNodePtr n = malloc (sizeof (gmlNode)); gmlMapDynAlloc (p_data, GML_DYN_NODE, n); len = strlen (tok->value); n->Tag = malloc (len + 1); strcpy (n->Tag, tok->value); n->Type = GML_PARSER_OPEN_NODE; n->Error = 0; a = (gmlAttrPtr) attributes; while (a) { /* transferring ownership of attributes */ gmlMapDynClean (p_data, a); a = a->Next; } n->Attributes = attributes; c = (gmlCoordPtr) coords; while (c) { /* transferring ownership of attributes */ gmlMapDynClean (p_data, c); c = c->Next; } n->Coordinates = coords; n->Next = NULL; return n; } static gmlNodePtr gml_createSelfClosedNode (struct gml_data *p_data, void *tag, void *attributes) { /* creating a self-closed node */ gmlAttrPtr a; int len; gmlFlexToken *tok = (gmlFlexToken *) tag; gmlNodePtr n = malloc (sizeof (gmlNode)); gmlMapDynAlloc (p_data, GML_DYN_NODE, n); len = strlen (tok->value); n->Tag = malloc (len + 1); strcpy (n->Tag, tok->value); n->Type = GML_PARSER_SELF_CLOSED_NODE; n->Error = 0; a = (gmlAttrPtr) attributes; while (a) { /* transferring ownership of attributes */ gmlMapDynClean (p_data, a); a = a->Next; } n->Attributes = attributes; n->Coordinates = NULL; n->Next = NULL; return n; } static gmlNodePtr gml_closingNode (struct gml_data *p_data, void *tag) { /* creating a closing node */ int len; gmlFlexToken *tok = (gmlFlexToken *) tag; gmlNodePtr n = malloc (sizeof (gmlNode)); gmlMapDynAlloc (p_data, GML_DYN_NODE, n); len = strlen (tok->value); n->Tag = malloc (len + 1); strcpy (n->Tag, tok->value); n->Type = GML_PARSER_CLOSED_NODE; n->Error = 0; n->Attributes = NULL; n->Coordinates = NULL; n->Next = NULL; return n; } static int gml_cleanup (gmlFlexToken * token) { gmlFlexToken *ptok; gmlFlexToken *ptok_n; if (token == NULL) return 0; ptok = token; while (ptok) { ptok_n = ptok->Next; if (ptok->value != NULL) free (ptok->value); free (ptok); ptok = ptok_n; } return 0; } static void gml_xferString (char **p, const char *str) { /* saving some token */ int len; if (str == NULL) { *p = NULL; return; } len = strlen (str); *p = malloc (len + 1); strcpy (*p, str); } static int guessGmlSrid (gmlNodePtr node) { /* attempting to guess the SRID */ int len; gmlAttrPtr attr = node->Attributes; while (attr) { if (strcmp (attr->Key, "srsName") == 0) { len = strlen (attr->Value); if (len > 5) { if (strncmp (attr->Value, "EPSG:", 5) == 0) return atoi (attr->Value + 5); } if (len > 21) { if (strncmp (attr->Value, "urn:ogc:def:crs:EPSG:", 21) == 0) { int i = strlen (attr->Value) - 1; for (; i >= 0; i--) { if (*(attr->Value + i) == ':') return atoi (attr->Value + i + 1); } } } if (len > 40) { if (strncmp (attr->Value, "http://www.opengis.net/gml/srs/epsg.xml#", 40) == 0) { int i = strlen (attr->Value) - 1; for (; i >= 0; i--) { if (*(attr->Value + i) == '#') return atoi (attr->Value + i + 1); } } } } attr = attr->Next; } return -1; } static int gml_get_srsDimension (gmlNodePtr node) { /* attempting to establis if there is a Z coordinate */ gmlAttrPtr attr = node->Attributes; while (attr) { if (strcmp (attr->Key, "srsDimension") == 0) { if (atoi (attr->Value) == 3) return 1; else return 0; } attr = attr->Next; } return 0; } static int guessGmlGeometryType (gmlNodePtr node) { /* attempting to guess the Geometry Type for a GML node */ int type = GAIA_GML_UNKNOWN; if (strcmp (node->Tag, "gml:Point") == 0 || strcmp (node->Tag, "Point") == 0) type = GAIA_GML_POINT; if (strcmp (node->Tag, "gml:LineString") == 0 || strcmp (node->Tag, "LineString") == 0) type = GAIA_GML_LINESTRING; if (strcmp (node->Tag, "gml:Curve") == 0 || strcmp (node->Tag, "Curve") == 0) type = GAIA_GML_CURVE; if (strcmp (node->Tag, "gml:Polygon") == 0 || strcmp (node->Tag, "Polygon") == 0) type = GAIA_GML_POLYGON; if (strcmp (node->Tag, "gml:MultiPoint") == 0 || strcmp (node->Tag, "MultiPoint") == 0) type = GAIA_GML_MULTIPOINT; if (strcmp (node->Tag, "gml:MultiLineString") == 0 || strcmp (node->Tag, "MultiLineString") == 0) type = GAIA_GML_MULTILINESTRING; if (strcmp (node->Tag, "gml:MultiCurve") == 0 || strcmp (node->Tag, "MultiCurve") == 0) type = GAIA_GML_MULTICURVE; if (strcmp (node->Tag, "gml:MultiPolygon") == 0 || strcmp (node->Tag, "MultiPolygon") == 0) type = GAIA_GML_MULTIPOLYGON; if (strcmp (node->Tag, "gml:MultiSurface") == 0 || strcmp (node->Tag, "MultiSurface") == 0) type = GAIA_GML_MULTISURFACE; if (strcmp (node->Tag, "gml:MultiGeometry") == 0 || strcmp (node->Tag, "MultiGeometry") == 0) type = GAIA_GML_MULTIGEOMETRY; if (strcmp (node->Tag, "gml:Box") == 0 || strcmp (node->Tag, "Box") == 0) type = GAIA_GML_BOX; return type; } static int gml_check_coord (const char *value) { /* checking a GML coordinate */ int decimal = 0; const char *p = value; if (*p == '+' || *p == '-') p++; while (*p != '\0') { if (*p == '.') { if (!decimal) decimal = 1; else return 0; } else if (*p >= '0' && *p <= '9') ; else return 0; p++; } return 1; } static int gml_extract_coords (const char *value, double *x, double *y, double *z, int *count) { /* extracting GML v2.x coords from a comma-separated string */ const char *in = value; char buf[1024]; char *out = buf; *out = '\0'; while (*in != '\0') { if (*in == ',') { *out = '\0'; if (*buf != '\0') { if (!gml_check_coord (buf)) return 0; switch (*count) { case 0: *x = atof (buf); *count += 1; break; case 1: *y = atof (buf); *count += 1; break; case 2: *z = atof (buf); *count += 1; break; default: *count += 1; break; }; } in++; out = buf; *out = '\0'; continue; } *out++ = *in++; } *out = '\0'; /* parsing the last item */ if (*buf != '\0') { if (!gml_check_coord (buf)) return 0; switch (*count) { case 0: *x = atof (buf); *count += 1; break; case 1: *y = atof (buf); *count += 1; break; case 2: *z = atof (buf); *count += 1; break; default: *count += 1; break; }; } return 1; } static int gml_parse_point_v2 (gmlCoordPtr coord, double *x, double *y, double *z, int *has_z) { /* parsing GML v2.x [Point] */ int count = 0; gmlCoordPtr c = coord; while (c) { if (!gml_extract_coords (c->Value, x, y, z, &count)) return 0; c = c->Next; } if (count == 2) { *has_z = 0; return 1; } if (count == 3) { *has_z = 1; return 1; } return 0; } static int gml_parse_point_v3 (gmlCoordPtr coord, double *x, double *y, double *z, int *has_z) { /* parsing GML v2.x [Point] */ int count = 0; gmlCoordPtr c = coord; while (c) { if (!gml_check_coord (c->Value)) return 0; switch (count) { case 0: *x = atof (c->Value); count++; break; case 1: *y = atof (c->Value); count++; break; case 2: *z = atof (c->Value); count++; break; default: count++; break; }; c = c->Next; } if (count == 2) { *has_z = 0; return 1; } if (count == 3) { *has_z = 1; return 1; } return 0; } static int gml_parse_point (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node, int srid, gmlNodePtr * next) { /* parsing a */ double x; double y; double z; int has_z; gaiaGeomCollPtr pt; gaiaGeomCollPtr last; if (strcmp (node->Tag, "gml:coordinates") == 0 || strcmp (node->Tag, "coordinates") == 0) { /* parsing a GML v.2.x */ if (!gml_parse_point_v2 (node->Coordinates, &x, &y, &z, &has_z)) return 0; node = node->Next; if (node == NULL) return 0; if (strcmp (node->Tag, "gml:coordinates") == 0 || strcmp (node->Tag, "coordinates") == 0) ; else return 0; node = node->Next; if (node == NULL) return 0; if (strcmp (node->Tag, "gml:Point") == 0 || strcmp (node->Tag, "Point") == 0) ; else return 0; *next = node->Next; goto ok; } if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) { /* parsing a GML v.3.x */ if (!gml_parse_point_v3 (node->Coordinates, &x, &y, &z, &has_z)) return 0; node = node->Next; if (node == NULL) return 0; if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) ; else return 0; node = node->Next; if (node == NULL) return 0; if (strcmp (node->Tag, "gml:Point") == 0 || strcmp (node->Tag, "Point") == 0) ; else return 0; *next = node->Next; goto ok; } return 0; ok: /* ok, GML nodes match as expected */ if (has_z) { pt = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, pt); pt->Srid = srid; gaiaAddPointToGeomCollXYZ (pt, x, y, z); } else { pt = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, pt); pt->Srid = srid; gaiaAddPointToGeomColl (pt, x, y); } last = geom; while (1) { /* searching the last Geometry within chain */ if (last->Next == NULL) break; last = last->Next; } last->Next = pt; return 1; } static int gml_extract_multi_coord (const char *value, double *x, double *y, double *z, int *count, int *follow) { /* extracting GML v2.x coords from a comma-separated string */ const char *in = value; char buf[1024]; char *out = buf; int last = ' '; *out = '\0'; while (*in != '\0') { last = *in; if (*in == ',') { *out = '\0'; if (*buf != '\0') { if (!gml_check_coord (buf)) return 0; switch (*count) { case 0: *x = atof (buf); *count += 1; break; case 1: *y = atof (buf); *count += 1; break; case 2: *z = atof (buf); *count += 1; break; default: *count += 1; break; }; } in++; out = buf; *out = '\0'; continue; } *out++ = *in++; } *out = '\0'; /* parsing the last item */ if (*buf != '\0') { if (!gml_check_coord (buf)) return 0; switch (*count) { case 0: *x = atof (buf); *count += 1; break; case 1: *y = atof (buf); *count += 1; break; case 2: *z = atof (buf); *count += 1; break; default: *count += 1; break; }; } if (last == ',') *follow = 1; else *follow = 0; return 1; } static int gml_extract_multi_coords (gmlCoordPtr coord, double *x, double *y, double *z, int *count, gmlCoordPtr * next) { /* extracting GML v2.x coords from a comma-separated string */ int follow; gmlCoordPtr c = coord; while (c) { if (!gml_extract_multi_coord (c->Value, x, y, z, count, &follow)) return 0; if (!follow && c->Next != NULL) { if (*(c->Next->Value) == ',') follow = 1; } if (follow) c = c->Next; else { *next = c->Next; break; } } return 1; } static void gml_add_point_to_line (gaiaDynamicLinePtr dyn, double x, double y) { /* appending a point */ gaiaAppendPointToDynamicLine (dyn, x, y); } static void gml_add_point_to_lineZ (gaiaDynamicLinePtr dyn, double x, double y, double z) { /* appending a point */ gaiaAppendPointZToDynamicLine (dyn, x, y, z); } static int gml_parse_coordinates (gmlCoordPtr coord, gaiaDynamicLinePtr dyn, int *has_z) { /* parsing GML v2.x [Linestring or Ring] */ int count = 0; double x; double y; double z; gmlCoordPtr next = NULL; gmlCoordPtr c = coord; while (c) { if (!gml_extract_multi_coords (c, &x, &y, &z, &count, &next)) return 0; if (count == 2) { *has_z = 0; gml_add_point_to_line (dyn, x, y); count = 0; } else if (count == 3) { gml_add_point_to_lineZ (dyn, x, y, z); count = 0; } else return 0; c = next; } return 1; } static int gml_parse_posList (gmlCoordPtr coord, gaiaDynamicLinePtr dyn, int has_z) { /* parsing GML v3.x [Linestring or Ring] */ int count = 0; double x = 0.0; double y = 0.0; double z = 0.0; gmlCoordPtr c = coord; while (c) { if (!gml_check_coord (c->Value)) return 0; if (!has_z) { switch (count) { case 0: x = atof (c->Value); count++; break; case 1: y = atof (c->Value); gml_add_point_to_line (dyn, x, y); count = 0; break; }; } else { switch (count) { case 0: x = atof (c->Value); count++; break; case 1: y = atof (c->Value); count++; break; case 2: z = atof (c->Value); gml_add_point_to_lineZ (dyn, x, y, z); count = 0; break; }; } c = c->Next; } if (count != 0) return 0; return 1; } static int gml_parse_pos_chain (gmlNodePtr * xnode, gaiaDynamicLinePtr dyn, int *x_has_z) { /* parsing a chain of gml:pos elements */ int has_z; int error = 0; int dim_3d = 0; double x; double y; double z; int count = 0; gmlNodePtr last_node = *xnode; gmlNodePtr node = *xnode; while (node != NULL) { if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) ; else break; if (!gml_parse_point_v3 (node->Coordinates, &x, &y, &z, &has_z)) return 0; if (has_z) { gml_add_point_to_lineZ (dyn, x, y, z); dim_3d = 1; } else gml_add_point_to_line (dyn, x, y); node = node->Next; if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) last_node = node; else { error = 1; break; } count++; node = node->Next; } if (count >= 2 && error == 0) { /* valid sequence found */ *x_has_z = dim_3d; *xnode = last_node; return 1; } return 0; } static int gml_count_dyn_points (gaiaDynamicLinePtr dyn) { /* count how many vertices are into sone linestring/ring */ int iv = 0; gaiaPointPtr pt = dyn->First; while (pt) { iv++; pt = pt->Next; } return iv; } static int gml_parse_box (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node, int srid, gmlNodePtr * next) { /* parsing a */ gaiaGeomCollPtr last; gaiaGeomCollPtr pg; gaiaPolygonPtr new_pg; gaiaRingPtr ring; gaiaPointPtr pt; double minx; double miny; double maxx; double maxy; int has_z; int points = 0; gaiaDynamicLinePtr dyn = gaiaAllocDynamicLine (); gmlMapDynAlloc (p_data, GML_DYN_DYNLINE, dyn); if (strcmp (node->Tag, "gml:coordinates") == 0 || strcmp (node->Tag, "coordinates") == 0) { /* parsing a GML v.2.x */ if (!gml_parse_coordinates (node->Coordinates, dyn, &has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:coordinates") == 0 || strcmp (node->Tag, "coordinates") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:Box") == 0 || strcmp (node->Tag, "Box") == 0) ; else goto error; *next = node->Next; goto ok; } ok: /* ok, GML nodes match as expected */ points = gml_count_dyn_points (dyn); if (points != 2) goto error; pt = dyn->First; minx = pt->X; miny = pt->Y; maxx = pt->X; maxy = pt->Y; while (pt) { if (pt->X < minx) minx = pt->X; if (pt->Y < miny) miny = pt->Y; if (pt->X > maxx) maxx = pt->X; if (pt->Y > maxy) maxy = pt->Y; pt = pt->Next; } pg = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, pg); pg->Srid = srid; new_pg = gaiaAddPolygonToGeomColl (pg, 5, 0); /* initializing the EXTERIOR RING */ ring = new_pg->Exterior; gaiaSetPoint (ring->Coords, 0, minx, miny); gaiaSetPoint (ring->Coords, 1, maxx, miny); gaiaSetPoint (ring->Coords, 2, maxx, maxy); gaiaSetPoint (ring->Coords, 3, minx, maxy); gaiaSetPoint (ring->Coords, 4, minx, miny); last = geom; while (1) { /* searching the last Geometry within chain */ if (last->Next == NULL) break; last = last->Next; } last->Next = pg; gmlMapDynClean (p_data, dyn); gaiaFreeDynamicLine (dyn); return 1; error: gmlMapDynClean (p_data, dyn); gaiaFreeDynamicLine (dyn); return 0; } static int gml_parse_linestring (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node, int srid, gmlNodePtr * next) { /* parsing a */ gaiaGeomCollPtr ln; gaiaGeomCollPtr last; gaiaLinestringPtr new_ln; gaiaPointPtr pt; int iv; int has_z = 1; int points = 0; gaiaDynamicLinePtr dyn = gaiaAllocDynamicLine (); gmlMapDynAlloc (p_data, GML_DYN_DYNLINE, dyn); if (strcmp (node->Tag, "gml:coordinates") == 0 || strcmp (node->Tag, "coordinates") == 0) { /* parsing a GML v.2.x */ if (!gml_parse_coordinates (node->Coordinates, dyn, &has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:coordinates") == 0 || strcmp (node->Tag, "coordinates") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LineString") == 0 || strcmp (node->Tag, "LineString") == 0) ; else goto error; *next = node->Next; goto ok; } if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) { /* parsing a GML v.3.x */ has_z = gml_get_srsDimension (node); if (!gml_parse_posList (node->Coordinates, dyn, has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LineString") == 0 || strcmp (node->Tag, "LineString") == 0) ; else goto error; *next = node->Next; goto ok; } if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) { /* parsing a GML v.3.x */ gmlNodePtr node2 = node; if (!gml_parse_pos_chain (&node2, dyn, &has_z)) goto error; node = node2->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LineString") == 0 || strcmp (node->Tag, "LineString") == 0) ; else goto error; *next = node->Next; goto ok; } ok: /* ok, GML nodes match as expected */ points = gml_count_dyn_points (dyn); if (points < 2) goto error; if (has_z) { ln = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, ln); ln->Srid = srid; new_ln = gaiaAddLinestringToGeomColl (ln, points); pt = dyn->First; iv = 0; while (pt) { gaiaSetPointXYZ (new_ln->Coords, iv, pt->X, pt->Y, pt->Z); iv++; pt = pt->Next; } } else { ln = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, ln); ln->Srid = srid; new_ln = gaiaAddLinestringToGeomColl (ln, points); pt = dyn->First; iv = 0; while (pt) { gaiaSetPoint (new_ln->Coords, iv, pt->X, pt->Y); iv++; pt = pt->Next; } } last = geom; while (1) { /* searching the last Geometry within chain */ if (last->Next == NULL) break; last = last->Next; } last->Next = ln; gmlMapDynClean (p_data, dyn); gaiaFreeDynamicLine (dyn); return 1; error: gmlMapDynClean (p_data, dyn); gaiaFreeDynamicLine (dyn); return 0; } static int gml_parse_curve (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node, int srid, gmlNodePtr * next) { /* parsing a */ gaiaGeomCollPtr ln; gaiaGeomCollPtr last; gaiaLinestringPtr new_ln; gaiaPointPtr pt; int iv; int has_z = 1; int points = 0; gaiaDynamicLinePtr dyn = gaiaAllocDynamicLine (); gmlMapDynAlloc (p_data, GML_DYN_DYNLINE, dyn); if (strcmp (node->Tag, "gml:segments") == 0 || strcmp (node->Tag, "segments") == 0) { /* parsing a GML v.3.x */ node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LineStringSegment") == 0 || strcmp (node->Tag, "LineStringSegment") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) { /* parsing a GML v.3.x */ has_z = gml_get_srsDimension (node); if (!gml_parse_posList (node->Coordinates, dyn, has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) ; else goto error; } else if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) { /* parsing a GML v.3.x */ gmlNodePtr node2 = node; if (!gml_parse_pos_chain (&node2, dyn, &has_z)) goto error; node = node2; if (node == NULL) goto error; } else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LineStringSegment") == 0 || strcmp (node->Tag, "LineStringSegment") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:segments") == 0 || strcmp (node->Tag, "segments") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:Curve") == 0 || strcmp (node->Tag, "Curve") == 0) ; else goto error; *next = node->Next; goto ok; } goto error; ok: /* ok, GML nodes match as expected */ points = gml_count_dyn_points (dyn); if (points < 2) goto error; if (has_z) { ln = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, ln); ln->Srid = srid; new_ln = gaiaAddLinestringToGeomColl (ln, points); pt = dyn->First; iv = 0; while (pt) { gaiaSetPointXYZ (new_ln->Coords, iv, pt->X, pt->Y, pt->Z); iv++; pt = pt->Next; } } else { ln = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, ln); ln->Srid = srid; new_ln = gaiaAddLinestringToGeomColl (ln, points); pt = dyn->First; iv = 0; while (pt) { gaiaSetPoint (new_ln->Coords, iv, pt->X, pt->Y); iv++; pt = pt->Next; } } last = geom; while (1) { /* searching the last Geometry within chain */ if (last->Next == NULL) break; last = last->Next; } last->Next = ln; gmlMapDynClean (p_data, dyn); gaiaFreeDynamicLine (dyn); return 1; error: gmlMapDynClean (p_data, dyn); gaiaFreeDynamicLine (dyn); return 0; } static gaiaDynamicLinePtr gml_parse_ring (struct gml_data *p_data, gmlNodePtr node, int *interior, int *has_z, gmlNodePtr * next) { /* parsing a generic GML ring */ gaiaDynamicLinePtr dyn = gaiaAllocDynamicLine (); gmlMapDynAlloc (p_data, GML_DYN_DYNLINE, dyn); *has_z = 1; if (strcmp (node->Tag, "gml:outerBoundaryIs") == 0 || strcmp (node->Tag, "outerBoundaryIs") == 0) { /* parsing a GML v.2.x */ node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LinearRing") == 0 || strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:coordinates") == 0 || strcmp (node->Tag, "coordinates") == 0) { /* parsing a GML v.2.x */ if (!gml_parse_coordinates (node->Coordinates, dyn, has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:coordinates") == 0 || strcmp (node->Tag, "coordinates") == 0) ; else goto error; } else if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) { /* parsing a GML v.3.x */ *has_z = gml_get_srsDimension (node); if (!gml_parse_posList (node->Coordinates, dyn, *has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) ; else goto error; } else if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) { /* parsing a GML v.3.x */ gmlNodePtr node2 = node; if (!gml_parse_pos_chain (&node2, dyn, has_z)) goto error; node = node2; if (node == NULL) goto error; } else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LinearRing") == 0 || strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:outerBoundaryIs") == 0 || strcmp (node->Tag, "outerBoundaryIs") == 0) ; else goto error; *interior = 0; *next = node->Next; return dyn; } if (strcmp (node->Tag, "gml:innerBoundaryIs") == 0 || strcmp (node->Tag, "innerBoundaryIs") == 0) { /* parsing a GML v.2.x */ node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LinearRing") == 0 || strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:coordinates") == 0 || strcmp (node->Tag, "coordinates") == 0) { /* parsing a GML v.2.x */ if (!gml_parse_coordinates (node->Coordinates, dyn, has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:coordinates") == 0 || strcmp (node->Tag, "coordinates") == 0) ; else goto error; } else if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) { /* parsing a GML v.3.x */ *has_z = gml_get_srsDimension (node); if (!gml_parse_posList (node->Coordinates, dyn, *has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) ; else goto error; } else if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) { /* parsing a GML v.3.x */ gmlNodePtr node2 = node; if (!gml_parse_pos_chain (&node2, dyn, has_z)) goto error; node = node2; if (node == NULL) goto error; } else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LinearRing") == 0 || strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:innerBoundaryIs") == 0 || strcmp (node->Tag, "innerBoundaryIs") == 0) ; else goto error; *interior = 1; *next = node->Next; return dyn; } if (strcmp (node->Tag, "gml:exterior") == 0 || strcmp (node->Tag, "exterior") == 0) { /* parsing a GML v.3.x */ node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LinearRing") == 0 || strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) { /* parsing a GML v.3.x */ *has_z = gml_get_srsDimension (node); if (!gml_parse_posList (node->Coordinates, dyn, *has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) ; else goto error; } else if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) { /* parsing a GML v.3.x */ gmlNodePtr node2 = node; if (!gml_parse_pos_chain (&node2, dyn, has_z)) goto error; node = node2; if (node == NULL) goto error; } else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LinearRing") == 0 || strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:exterior") == 0 || strcmp (node->Tag, "exterior") == 0) ; else goto error; *interior = 0; *next = node->Next; return dyn; } if (strcmp (node->Tag, "gml:interior") == 0 || strcmp (node->Tag, "interior") == 0) { /* parsing a GML v.3.x */ node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LinearRing") == 0 || strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) { /* parsing a GML v.3.x */ *has_z = gml_get_srsDimension (node); if (!gml_parse_posList (node->Coordinates, dyn, *has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:posList") == 0 || strcmp (node->Tag, "posList") == 0) ; else goto error; } else if (strcmp (node->Tag, "gml:pos") == 0 || strcmp (node->Tag, "pos") == 0) { /* parsing a GML v.3.x */ gmlNodePtr node2 = node; if (!gml_parse_pos_chain (&node2, dyn, has_z)) goto error; node = node2; if (node == NULL) goto error; } else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:LinearRing") == 0 || strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "gml:interior") == 0 || strcmp (node->Tag, "interior") == 0) ; else goto error; *interior = 1; *next = node->Next; return dyn; } error: gmlMapDynClean (p_data, dyn); gaiaFreeDynamicLine (dyn); return 0; } static int gml_parse_polygon (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node, int srid, gmlNodePtr * next_n) { /* parsing a */ int interior; int has_z; int inners; int outers; int points; int iv; int ib = 0; gaiaGeomCollPtr pg; gaiaGeomCollPtr last_g; gaiaPolygonPtr new_pg; gaiaRingPtr ring; gaiaDynamicLinePtr dyn; gaiaPointPtr pt; gaiaDynamicLinePtr exterior_ring; gmlNodePtr next; gmlDynamicRingPtr dyn_rng; gmlDynamicPolygonPtr dyn_pg = gml_alloc_dyn_polygon (p_data); gmlNodePtr n = node; while (n) { /* looping on rings */ if (strcmp (n->Tag, "gml:Polygon") == 0 || strcmp (n->Tag, "Polygon") == 0) { *next_n = n->Next; break; } dyn = gml_parse_ring (p_data, n, &interior, &has_z, &next); if (dyn == NULL) goto error; if (gml_count_dyn_points (dyn) < 4) { /* cannot be a valid ring */ goto error; } /* checking if the ring is closed */ if (has_z) { if (dyn->First->X == dyn->Last->X && dyn->First->Y == dyn->Last->Y && dyn->First->Z == dyn->Last->Z) ; else goto error; } else { if (dyn->First->X == dyn->Last->X && dyn->First->Y == dyn->Last->Y) ; else goto error; } gml_add_polygon_ring (p_data, dyn_pg, dyn, interior, has_z); n = next; } /* ok, GML nodes match as expected */ inners = 0; outers = 0; has_z = 1; dyn_rng = dyn_pg->first; while (dyn_rng) { /* verifying the rings collection */ if (dyn_rng->has_z == 0) has_z = 0; if (dyn_rng->interior) inners++; else { outers++; points = gml_count_dyn_points (dyn_rng->ring); exterior_ring = dyn_rng->ring; } dyn_rng = dyn_rng->next; } if (outers != 1) /* no exterior ring declared */ goto error; if (has_z) { pg = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, pg); pg->Srid = srid; new_pg = gaiaAddPolygonToGeomColl (pg, points, inners); /* initializing the EXTERIOR RING */ ring = new_pg->Exterior; pt = exterior_ring->First; iv = 0; while (pt) { gaiaSetPointXYZ (ring->Coords, iv, pt->X, pt->Y, pt->Z); iv++; pt = pt->Next; } dyn_rng = dyn_pg->first; while (dyn_rng) { /* initializing any INTERIOR RING */ if (dyn_rng->interior == 0) { dyn_rng = dyn_rng->next; continue; } points = gml_count_dyn_points (dyn_rng->ring); ring = gaiaAddInteriorRing (new_pg, ib, points); ib++; pt = dyn_rng->ring->First; iv = 0; while (pt) { gaiaSetPointXYZ (ring->Coords, iv, pt->X, pt->Y, pt->Z); iv++; pt = pt->Next; } dyn_rng = dyn_rng->next; } } else { pg = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, pg); pg->Srid = srid; new_pg = gaiaAddPolygonToGeomColl (pg, points, inners); /* initializing the EXTERIOR RING */ ring = new_pg->Exterior; pt = exterior_ring->First; iv = 0; while (pt) { gaiaSetPoint (ring->Coords, iv, pt->X, pt->Y); iv++; pt = pt->Next; } dyn_rng = dyn_pg->first; while (dyn_rng) { /* initializing any INTERIOR RING */ if (dyn_rng->interior == 0) { dyn_rng = dyn_rng->next; continue; } points = gml_count_dyn_points (dyn_rng->ring); ring = gaiaAddInteriorRing (new_pg, ib, points); ib++; pt = dyn_rng->ring->First; iv = 0; while (pt) { gaiaSetPoint (ring->Coords, iv, pt->X, pt->Y); iv++; pt = pt->Next; } dyn_rng = dyn_rng->next; } } last_g = geom; while (1) { /* searching the last Geometry within chain */ if (last_g->Next == NULL) break; last_g = last_g->Next; } last_g->Next = pg; gml_free_dyn_polygon (dyn_pg); return 1; error: gml_free_dyn_polygon (dyn_pg); return 0; } static int gml_parse_multi_point (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node) { /* parsing a */ int srid; int pts; gmlNodePtr n2; gmlNodePtr next; gmlNodePtr n = node; while (n) { /* looping on Point Members */ if (n->Next == NULL) { /* verifying the last GML node */ if (strcmp (n->Tag, "gml:MultiPoint") == 0 || strcmp (n->Tag, "MultiPoint") == 0) break; else return 0; } if (strcmp (n->Tag, "gml:pointMember") == 0 || strcmp (n->Tag, "pointMember") == 0 || strcmp (n->Tag, "gml:pointMembers") == 0 || strcmp (n->Tag, "pointMembers") == 0) ; else return 0; n2 = n->Next; pts = 0; while (n2) { /* looping on Point(s) */ if (strcmp (n2->Tag, "gml:Point") == 0 || strcmp (n2->Tag, "Point") == 0) ; else { n = n2; break; } srid = guessGmlSrid (n2); n2 = n2->Next; if (n2 == NULL) return 0; if (!gml_parse_point (p_data, geom, n2, srid, &next)) return 0; n2 = next; if (n2 == NULL) return 0; pts++; } if (!pts) return 0; if (strcmp (n->Tag, "gml:pointMember") == 0 || strcmp (n->Tag, "pointMember") == 0 || strcmp (n->Tag, "gml:pointMembers") == 0 || strcmp (n->Tag, "pointMembers") == 0) ; else return 0; n = n->Next; } return 1; } static int gml_parse_multi_linestring (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node) { /* parsing a */ int srid; int lns; gmlNodePtr n2; gmlNodePtr next; gmlNodePtr n = node; while (n) { /* looping on LineString Members */ if (n->Next == NULL) { /* verifying the last GML node */ if (strcmp (n->Tag, "gml:MultiLineString") == 0 || strcmp (n->Tag, "MultiLineString") == 0) break; else return 0; } if (strcmp (n->Tag, "gml:lineStringMember") == 0 || strcmp (n->Tag, "lineStringMember") == 0 || strcmp (n->Tag, "gml:lineStringMembers") == 0 || strcmp (n->Tag, "lineStringMembers") == 0) ; else return 0; n2 = n->Next; lns = 0; while (n2) { /* looping on Linestring(s) */ if (strcmp (n2->Tag, "gml:LineString") == 0 || strcmp (n2->Tag, "LineString") == 0) ; else { n = n2; break; } srid = guessGmlSrid (n2); n2 = n2->Next; if (n2 == NULL) return 0; if (!gml_parse_linestring (p_data, geom, n2, srid, &next)) return 0; n2 = next; if (n2 == NULL) return 0; lns++; } if (!lns) return 0; if (strcmp (n->Tag, "gml:lineStringMember") == 0 || strcmp (n->Tag, "lineStringMember") == 0 || strcmp (n->Tag, "gml:lineStringMembers") == 0 || strcmp (n->Tag, "lineStringMembers") == 0) ; else return 0; n = n->Next; } return 1; } static int gml_parse_multi_curve (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node) { /* parsing a */ int srid; int lns; gmlNodePtr n2; gmlNodePtr next; gmlNodePtr n = node; while (n) { /* looping on Curve Members */ if (n->Next == NULL) { /* verifying the last GML node */ if (strcmp (n->Tag, "gml:MultiCurve") == 0 || strcmp (n->Tag, "MultiCurve") == 0) break; else return 0; } if (strcmp (n->Tag, "gml:curveMember") == 0 || strcmp (n->Tag, "curveMember") == 0 || strcmp (n->Tag, "gml:curveMembers") == 0 || strcmp (n->Tag, "curveMembers") == 0) ; else return 0; n2 = n->Next; lns = 0; while (n2) { /* looping on Curve(s) */ if (strcmp (n2->Tag, "gml:Curve") == 0 || strcmp (n2->Tag, "Curve") == 0) ; else { n = n2; break; } srid = guessGmlSrid (n2); n2 = n2->Next; if (n2 == NULL) return 0; if (!gml_parse_curve (p_data, geom, n2, srid, &next)) return 0; n2 = next; if (n2 == NULL) return 0; lns++; } if (!lns) return 0; if (strcmp (n->Tag, "gml:curveMember") == 0 || strcmp (n->Tag, "curveMember") == 0 || strcmp (n->Tag, "gml:curveMembers") == 0 || strcmp (n->Tag, "curveMembers") == 0) ; else return 0; n = n->Next; } return 1; } static int gml_parse_multi_polygon (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node) { /* parsing a */ int srid; int pgs; gmlNodePtr n2; gmlNodePtr next; gmlNodePtr n = node; while (n) { /* looping on Polygon Members */ if (n->Next == NULL) { /* verifying the last GML node */ if (strcmp (n->Tag, "gml:MultiPolygon") == 0 || strcmp (n->Tag, "MultiPolygon") == 0) break; else return 0; } if (strcmp (n->Tag, "gml:polygonMember") == 0 || strcmp (n->Tag, "polygonMember") == 0 || strcmp (n->Tag, "gml:polygonMembers") == 0 || strcmp (n->Tag, "polygonMembers") == 0) ; else return 0; n2 = n->Next; pgs = 0; while (n2) { /* looping on Polygon(s) */ if (strcmp (n2->Tag, "gml:Polygon") == 0 || strcmp (n2->Tag, "Polygon") == 0) ; else { n = n2; break; } srid = guessGmlSrid (n2); n2 = n2->Next; if (n2 == NULL) return 0; if (!gml_parse_polygon (p_data, geom, n2, srid, &next)) return 0; n2 = next; if (n2 == NULL) return 0; pgs++; } if (!pgs) return 0; if (strcmp (n->Tag, "gml:polygonMember") == 0 || strcmp (n->Tag, "polygonMember") == 0 || strcmp (n->Tag, "gml:polygonMembers") == 0 || strcmp (n->Tag, "polygonMembers") == 0) ; else return 0; n = n->Next; } return 1; } static int gml_parse_multi_surface (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node) { /* parsing a */ int srid; int pgs; gmlNodePtr n2; gmlNodePtr next; gmlNodePtr n = node; while (n) { /* looping on Surface Members */ if (n->Next == NULL) { /* verifying the last GML node */ if (strcmp (n->Tag, "gml:MultiSurface") == 0 || strcmp (n->Tag, "MultiSurface") == 0) break; else return 0; } if (strcmp (n->Tag, "gml:surfaceMember") == 0 || strcmp (n->Tag, "surfaceMember") == 0 || strcmp (n->Tag, "gml:surfaceMembers") == 0 || strcmp (n->Tag, "surfaceMembers") == 0) ; else return 0; n2 = n->Next; pgs = 0; while (n2) { /* looping on Polygon(s) */ if (strcmp (n2->Tag, "gml:Polygon") == 0 || strcmp (n2->Tag, "Polygon") == 0) ; else { n = n2; break; } srid = guessGmlSrid (n2); n2 = n2->Next; if (n2 == NULL) return 0; if (!gml_parse_polygon (p_data, geom, n2, srid, &next)) return 0; n2 = next; if (n2 == NULL) return 0; pgs++; } if (!pgs) return 0; if (strcmp (n->Tag, "gml:surfaceMember") == 0 || strcmp (n->Tag, "surfaceMember") == 0 || strcmp (n->Tag, "gml:surfaceMembers") == 0 || strcmp (n->Tag, "surfaceMembers") == 0) ; else return 0; n = n->Next; } return 1; } static int gml_parse_multi_geometry (struct gml_data *p_data, gaiaGeomCollPtr geom, gmlNodePtr node) { /* parsing a */ int srid; int elems; gmlNodePtr n2; gmlNodePtr next; gmlNodePtr n = node; while (n) { /* looping on Geometry Members */ if (n->Next == NULL) { /* verifying the last GML node */ if (strcmp (n->Tag, "gml:MultiGeometry") == 0 || strcmp (n->Tag, "MultiGeometry") == 0) break; else return 0; } if (strcmp (n->Tag, "gml:geometryMember") == 0 || strcmp (n->Tag, "geometryMember") == 0 || strcmp (n->Tag, "gml:geometryMembers") == 0 || strcmp (n->Tag, "geometryMembers") == 0) ; else return 0; n2 = n->Next; elems = 0; while (n2) { /* looping on elements */ if (strcmp (n2->Tag, "gml:Point") == 0 || strcmp (n2->Tag, "Point") == 0) { srid = guessGmlSrid (n2); n2 = n2->Next; if (n2 == NULL) return 0; if (!gml_parse_point (p_data, geom, n2, srid, &next)) return 0; n2 = next; } else if (strcmp (n2->Tag, "gml:LineString") == 0 || strcmp (n2->Tag, "LineString") == 0) { srid = guessGmlSrid (n2); n2 = n2->Next; if (n2 == NULL) return 0; if (!gml_parse_linestring (p_data, geom, n2, srid, &next)) return 0; n2 = next; } else if (strcmp (n2->Tag, "gml:Curve") == 0 || strcmp (n2->Tag, "Curve") == 0) { srid = guessGmlSrid (n2); n2 = n2->Next; if (n2 == NULL) return 0; if (!gml_parse_curve (p_data, geom, n2, srid, &next)) return 0; n2 = next; } else if (strcmp (n2->Tag, "gml:Polygon") == 0 || strcmp (n2->Tag, "Polygon") == 0) { srid = guessGmlSrid (n2); n2 = n2->Next; if (n2 == NULL) return 0; if (!gml_parse_polygon (p_data, geom, n2, srid, &next)) return 0; n2 = next; } else { n = n2; break; } elems++; } if (!elems) return 0; if (strcmp (n->Tag, "gml:geometryMember") == 0 || strcmp (n->Tag, "geometryMember") == 0 || strcmp (n->Tag, "gml:geometryMembers") == 0 || strcmp (n->Tag, "geometryMembers") == 0) ; else return 0; n = n->Next; } return 1; } static gaiaGeomCollPtr gml_validate_geometry (const void *cache, struct gml_data *p_data, gaiaGeomCollPtr chain, sqlite3 * sqlite_handle) { int xy = 0; int xyz = 0; int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaPointPtr save_pt = NULL; gaiaLinestringPtr save_ln = NULL; gaiaPolygonPtr save_pg = NULL; gaiaRingPtr i_ring; gaiaRingPtr o_ring; int ib; int delete_g2; gaiaGeomCollPtr g; gaiaGeomCollPtr g2; gaiaGeomCollPtr geom; char *proj_from; char *proj_to; g = chain; while (g) { if (g != chain) { if (g->DimensionModel == GAIA_XY) xy++; if (g->DimensionModel == GAIA_XY_Z) xyz++; } pt = g->FirstPoint; while (pt) { pts++; save_pt = pt; pt = pt->Next; } ln = g->FirstLinestring; while (ln) { lns++; save_ln = ln; ln = ln->Next; } pg = g->FirstPolygon; while (pg) { pgs++; save_pg = pg; pg = pg->Next; } g = g->Next; } if (pts == 1 && lns == 0 && pgs == 0) { /* POINT */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_MULTIPOINT) geom->DeclaredType = GAIA_MULTIPOINT; else if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_POINT; gaiaAddPointToGeomColl (geom, save_pt->X, save_pt->Y); return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_MULTIPOINT) geom->DeclaredType = GAIA_MULTIPOINT; else if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_POINT; gaiaAddPointToGeomCollXYZ (geom, save_pt->X, save_pt->Y, save_pt->Z); return geom; } } if (pts == 0 && lns == 1 && pgs == 0) { /* LINESTRING */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); } geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_MULTILINESTRING) geom->DeclaredType = GAIA_MULTILINESTRING; else if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_LINESTRING; ln = gaiaAddLinestringToGeomColl (geom, save_ln->Points); gaiaCopyLinestringCoords (ln, save_ln); return geom; } if (pts == 0 && lns == 0 && pgs == 1) { /* POLYGON */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); } geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_MULTIPOLYGON) geom->DeclaredType = GAIA_MULTIPOLYGON; else if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_POLYGON; i_ring = save_pg->Exterior; pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, save_pg->NumInteriors); o_ring = pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < save_pg->NumInteriors; ib++) { i_ring = save_pg->Interiors + ib; o_ring = gaiaAddInteriorRing (pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } return geom; } if (pts >= 1 && lns == 0 && pgs == 0) { /* MULTIPOINT */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_MULTIPOINT; g = chain; while (g) { if (geom->Srid <= 0) { /* we haven't yet set any SRID */ geom->Srid = g->Srid; } g2 = g; delete_g2 = 0; if (g->Srid != geom->Srid && g->Srid > 0 && sqlite_handle != NULL) { /* we'll try to apply a reprojection */ #ifndef OMIT_PROJ /* but only if PROJ.4 is actually available */ getProjParams (sqlite_handle, g->Srid, &proj_from); getProjParams (sqlite_handle, geom->Srid, &proj_to); if (proj_to == NULL || proj_from == NULL) ; else { if (cache != NULL) g2 = gaiaTransform_r (cache, g, proj_from, proj_to); else g2 = gaiaTransform (g, proj_from, proj_to); if (!g2) g2 = g; else delete_g2 = 1; } if (proj_from) free (proj_from); if (proj_to) free (proj_to); #endif } pt = g2->FirstPoint; while (pt) { gaiaAddPointToGeomColl (geom, pt->X, pt->Y); pt = pt->Next; } if (delete_g2) { gmlMapDynClean (p_data, g2); gaiaFreeGeomColl (g2); } g = g->Next; } return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_MULTIPOINT; g = chain; while (g) { if (geom->Srid <= 0) { /* we haven't yet a SRID set */ geom->Srid = g->Srid; } g2 = g; delete_g2 = 0; if (g->Srid != geom->Srid && g->Srid > 0 && sqlite_handle != NULL) { /* we'll try to apply a reprojection */ #ifndef OMIT_PROJ /* but only if PROJ.4 is actually available */ getProjParams (sqlite_handle, g->Srid, &proj_from); getProjParams (sqlite_handle, geom->Srid, &proj_to); if (proj_to == NULL || proj_from == NULL) ; else { if (cache != NULL) g2 = gaiaTransform_r (cache, g, proj_from, proj_to); else g2 = gaiaTransform (g, proj_from, proj_to); if (!g2) g2 = g; else delete_g2 = 1; } if (proj_from) free (proj_from); if (proj_to) free (proj_to); #endif } pt = g2->FirstPoint; while (pt) { gaiaAddPointToGeomCollXYZ (geom, pt->X, pt->Y, pt->Z); pt = pt->Next; } if (delete_g2) { gmlMapDynClean (p_data, g2); gaiaFreeGeomColl (g2); } g = g->Next; } return geom; } } if (pts == 0 && lns >= 1 && pgs == 0) { /* MULTILINESTRING */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_MULTILINESTRING; g = chain; while (g) { if (geom->Srid <= 0) { /* we haven't yet set any SRID */ geom->Srid = g->Srid; } g2 = g; delete_g2 = 0; if (g->Srid != geom->Srid && g->Srid > 0 && sqlite_handle != NULL) { /* we'll try to apply a reprojection */ #ifndef OMIT_PROJ /* but only if PROJ.4 is actually available */ getProjParams (sqlite_handle, g->Srid, &proj_from); getProjParams (sqlite_handle, geom->Srid, &proj_to); if (proj_to == NULL || proj_from == NULL) ; else { if (cache != NULL) g2 = gaiaTransform_r (cache, g, proj_from, proj_to); else g2 = gaiaTransform (g, proj_from, proj_to); if (!g2) g2 = g; else delete_g2 = 1; } if (proj_from) free (proj_from); if (proj_to) free (proj_to); #endif } ln = g2->FirstLinestring; while (ln) { save_ln = gaiaAddLinestringToGeomColl (geom, ln->Points); gaiaCopyLinestringCoords (save_ln, ln); ln = ln->Next; } if (delete_g2) { gmlMapDynClean (p_data, g2); gaiaFreeGeomColl (g2); } g = g->Next; } return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_MULTILINESTRING; g = chain; while (g) { if (geom->Srid <= 0) { /* we haven't yet a SRID set */ geom->Srid = g->Srid; } g2 = g; delete_g2 = 0; if (g->Srid != geom->Srid && g->Srid > 0 && sqlite_handle != NULL) { /* we'll try to apply a reprojection */ #ifndef OMIT_PROJ /* but only if PROJ.4 is actually available */ getProjParams (sqlite_handle, g->Srid, &proj_from); getProjParams (sqlite_handle, geom->Srid, &proj_to); if (proj_to == NULL || proj_from == NULL) ; else { if (cache != NULL) g2 = gaiaTransform_r (cache, g, proj_from, proj_to); else g2 = gaiaTransform (g, proj_from, proj_to); if (!g2) g2 = g; else delete_g2 = 1; } if (proj_from) free (proj_from); if (proj_to) free (proj_to); #endif } ln = g2->FirstLinestring; while (ln) { save_ln = gaiaAddLinestringToGeomColl (geom, ln->Points); gaiaCopyLinestringCoords (save_ln, ln); ln = ln->Next; } if (delete_g2) { gmlMapDynClean (p_data, g2); gaiaFreeGeomColl (g2); } g = g->Next; } return geom; } } if (pts == 0 && lns == 0 && pgs >= 1) { /* MULTIPOLYGON */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_MULTIPOLYGON; g = chain; while (g) { if (geom->Srid <= 0) { /* we haven't yet set any SRID */ geom->Srid = g->Srid; } g2 = g; delete_g2 = 0; if (g->Srid != geom->Srid && g->Srid > 0 && sqlite_handle != NULL) { /* we'll try to apply a reprojection */ #ifndef OMIT_PROJ /* but only if PROJ.4 is actually available */ getProjParams (sqlite_handle, g->Srid, &proj_from); getProjParams (sqlite_handle, geom->Srid, &proj_to); if (proj_to == NULL || proj_from == NULL) ; else { if (cache != NULL) g2 = gaiaTransform_r (cache, g, proj_from, proj_to); else g2 = gaiaTransform (g, proj_from, proj_to); if (!g2) g2 = g; else delete_g2 = 1; } if (proj_from) free (proj_from); if (proj_to) free (proj_to); #endif } pg = g2->FirstPolygon; while (pg) { i_ring = pg->Exterior; save_pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, pg->NumInteriors); o_ring = save_pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < pg->NumInteriors; ib++) { i_ring = pg->Interiors + ib; o_ring = gaiaAddInteriorRing (save_pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } pg = pg->Next; } if (delete_g2) { gmlMapDynClean (p_data, g2); gaiaFreeGeomColl (g2); } g = g->Next; } return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; else geom->DeclaredType = GAIA_MULTIPOLYGON; g = chain; while (g) { if (geom->Srid <= 0) { /* we haven't yet a SRID set */ geom->Srid = g->Srid; } g2 = g; delete_g2 = 0; if (g->Srid != geom->Srid && g->Srid > 0 && sqlite_handle != NULL) { /* we'll try to apply a reprojection */ #ifndef OMIT_PROJ /* but only if PROJ.4 is actually available */ getProjParams (sqlite_handle, g->Srid, &proj_from); getProjParams (sqlite_handle, geom->Srid, &proj_to); if (proj_to == NULL || proj_from == NULL) ; else { if (cache != NULL) g2 = gaiaTransform_r (cache, g, proj_from, proj_to); else g2 = gaiaTransform (g, proj_from, proj_to); if (!g2) g2 = g; else delete_g2 = 1; } if (proj_from) free (proj_from); if (proj_to) free (proj_to); #endif } pg = g2->FirstPolygon; while (pg) { i_ring = pg->Exterior; save_pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, pg->NumInteriors); o_ring = save_pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < pg->NumInteriors; ib++) { i_ring = pg->Interiors + ib; o_ring = gaiaAddInteriorRing (save_pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } pg = pg->Next; } if (delete_g2) { gmlMapDynClean (p_data, g2); gaiaFreeGeomColl (g2); } g = g->Next; } return geom; } } if ((pts + lns + pgs) > 0) { /* GEOMETRYCOLLECTION */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; g = chain; while (g) { if (geom->Srid <= 0) { /* we haven't yet set any SRID */ geom->Srid = g->Srid; } g2 = g; delete_g2 = 0; if (g->Srid != geom->Srid && g->Srid > 0 && sqlite_handle != NULL) { /* we'll try to apply a reprojection */ #ifndef OMIT_PROJ /* but only if PROJ.4 is actually available */ getProjParams (sqlite_handle, g->Srid, &proj_from); getProjParams (sqlite_handle, geom->Srid, &proj_to); if (proj_to == NULL || proj_from == NULL) ; else { if (cache != NULL) g2 = gaiaTransform_r (cache, g, proj_from, proj_to); else g2 = gaiaTransform (g, proj_from, proj_to); if (!g2) g2 = g; else delete_g2 = 1; } if (proj_from) free (proj_from); if (proj_to) free (proj_to); #endif } pt = g2->FirstPoint; while (pt) { gaiaAddPointToGeomColl (geom, pt->X, pt->Y); pt = pt->Next; } ln = g2->FirstLinestring; while (ln) { save_ln = gaiaAddLinestringToGeomColl (geom, ln->Points); gaiaCopyLinestringCoords (save_ln, ln); ln = ln->Next; } pg = g2->FirstPolygon; while (pg) { i_ring = pg->Exterior; save_pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, pg->NumInteriors); o_ring = save_pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < pg->NumInteriors; ib++) { i_ring = pg->Interiors + ib; o_ring = gaiaAddInteriorRing (save_pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } pg = pg->Next; } if (delete_g2) { gmlMapDynClean (p_data, g2); gaiaFreeGeomColl (g2); } g = g->Next; } return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); gmlMapDynAlloc (p_data, GML_DYN_GEOM, geom); geom->Srid = chain->Srid; geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; g = chain; while (g) { if (geom->Srid <= 0) { /* we haven't yet a SRID set */ geom->Srid = g->Srid; } g2 = g; delete_g2 = 0; if (g->Srid != geom->Srid && g->Srid > 0 && sqlite_handle != NULL) { /* we'll try to apply a reprojection */ #ifndef OMIT_PROJ /* but only if PROJ.4 is actually available */ getProjParams (sqlite_handle, g->Srid, &proj_from); getProjParams (sqlite_handle, geom->Srid, &proj_to); if (*proj_to == '\0' || *proj_from == '\0') ; else { if (cache != NULL) g2 = gaiaTransform_r (cache, g, proj_from, proj_to); else g2 = gaiaTransform (g, proj_from, proj_to); if (!g2) g2 = g; else delete_g2 = 1; } if (proj_from) free (proj_from); if (proj_to) free (proj_to); #endif } pt = g2->FirstPoint; while (pt) { gaiaAddPointToGeomCollXYZ (geom, pt->X, pt->Y, pt->Z); pt = pt->Next; } ln = g2->FirstLinestring; while (ln) { save_ln = gaiaAddLinestringToGeomColl (geom, ln->Points); gaiaCopyLinestringCoords (save_ln, ln); ln = ln->Next; } pg = g2->FirstPolygon; while (pg) { i_ring = pg->Exterior; save_pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, pg->NumInteriors); o_ring = save_pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < pg->NumInteriors; ib++) { i_ring = pg->Interiors + ib; o_ring = gaiaAddInteriorRing (save_pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } pg = pg->Next; } if (delete_g2) { gmlMapDynClean (p_data, g2); gaiaFreeGeomColl (g2); } g = g->Next; } return geom; } } return NULL; } static void gml_free_geom_chain (struct gml_data *p_data, gaiaGeomCollPtr geom) { /* deleting a chain of preliminary geometries */ gaiaGeomCollPtr gn; while (geom) { gn = geom->Next; gmlMapDynClean (p_data, geom); gaiaFreeGeomColl (geom); geom = gn; } } static gaiaGeomCollPtr gml_build_geometry (const void *cache, struct gml_data *p_data, gmlNodePtr tree, sqlite3 * sqlite_handle) { /* attempting to build a geometry from GML nodes */ gaiaGeomCollPtr geom; gaiaGeomCollPtr result; int geom_type; gmlNodePtr next; if (tree == NULL) return NULL; geom_type = guessGmlGeometryType (tree); if (geom_type == GAIA_GML_UNKNOWN) { /* unsupported main geometry type */ return NULL; } /* creating the main geometry */ geom = gaiaAllocGeomColl (); geom->Srid = guessGmlSrid (tree); switch (geom_type) { /* parsing GML nodes accordingly with declared GML type */ case GAIA_GML_POINT: geom->DeclaredType = GAIA_POINT; if (!gml_parse_point (p_data, geom, tree->Next, geom->Srid, &next)) goto error; break; case GAIA_GML_LINESTRING: geom->DeclaredType = GAIA_LINESTRING; if (!gml_parse_linestring (p_data, geom, tree->Next, geom->Srid, &next)) goto error; break; case GAIA_GML_CURVE: geom->DeclaredType = GAIA_LINESTRING; if (!gml_parse_curve (p_data, geom, tree->Next, geom->Srid, &next)) goto error; break; case GAIA_GML_POLYGON: geom->DeclaredType = GAIA_POLYGON; if (!gml_parse_polygon (p_data, geom, tree->Next, geom->Srid, &next)) goto error; if (next != NULL) goto error; break; case GAIA_GML_MULTIPOINT: geom->DeclaredType = GAIA_MULTIPOINT; if (!gml_parse_multi_point (p_data, geom, tree->Next)) goto error; break; case GAIA_GML_MULTILINESTRING: geom->DeclaredType = GAIA_MULTILINESTRING; if (!gml_parse_multi_linestring (p_data, geom, tree->Next)) goto error; break; case GAIA_GML_MULTICURVE: geom->DeclaredType = GAIA_MULTILINESTRING; if (!gml_parse_multi_curve (p_data, geom, tree->Next)) goto error; break; case GAIA_GML_MULTIPOLYGON: geom->DeclaredType = GAIA_MULTIPOLYGON; if (!gml_parse_multi_polygon (p_data, geom, tree->Next)) goto error; break; case GAIA_GML_MULTISURFACE: geom->DeclaredType = GAIA_MULTIPOLYGON; if (!gml_parse_multi_surface (p_data, geom, tree->Next)) goto error; break; case GAIA_GML_MULTIGEOMETRY: geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; if (!gml_parse_multi_geometry (p_data, geom, tree->Next)) goto error; break; case GAIA_GML_BOX: geom->DeclaredType = GAIA_POLYGON; if (!gml_parse_box (p_data, geom, tree->Next, geom->Srid, &next)) goto error; break; }; /* attempting to build the final geometry */ result = gml_validate_geometry (cache, p_data, geom, sqlite_handle); if (result == NULL) goto error; gml_free_geom_chain (p_data, geom); return result; error: gml_free_geom_chain (p_data, geom); return NULL; } /* including LEMON generated code */ #include "Gml.c" /* ** CAVEAT: there is an incompatibility between LEMON and FLEX ** this macro resolves the issue */ #undef yy_accept #define yy_accept yy_gml_flex_accept /* including FLEX generated code */ #include "lex.Gml.c" static gaiaGeomCollPtr gaiaParseGmlCommon (const void *cache, const unsigned char *dirty_buffer, sqlite3 * sqlite_handle) { void *pParser = ParseAlloc (malloc); /* Linked-list of token values */ gmlFlexToken *tokens = malloc (sizeof (gmlFlexToken)); /* Pointer to the head of the list */ gmlFlexToken *head = tokens; int yv; gaiaGeomCollPtr geom = NULL; yyscan_t scanner; struct gml_data str_data; /* initializing the helper structs */ str_data.gml_line = 1; str_data.gml_col = 1; str_data.gml_parse_error = 0; str_data.gml_first_dyn_block = NULL; str_data.gml_last_dyn_block = NULL; str_data.result = NULL; /* initializing the scanner state */ Gmllex_init_extra (&str_data, &scanner); str_data.GmlLval.pval = NULL; tokens->value = NULL; tokens->Next = NULL; Gml_scan_string ((char *) dirty_buffer, scanner); /* / Keep tokenizing until we reach the end / yylex() will return the next matching Token for us. */ while ((yv = yylex (scanner)) != 0) { if (yv == -1) { str_data.gml_parse_error = 1; break; } tokens->Next = malloc (sizeof (gmlFlexToken)); tokens->Next->Next = NULL; gml_xferString (&(tokens->Next->value), str_data.GmlLval.pval); /* Pass the token to the wkt parser created from lemon */ Parse (pParser, yv, &(tokens->Next->value), &str_data); tokens = tokens->Next; } /* This denotes the end of a line as well as the end of the parser */ Parse (pParser, GML_NEWLINE, 0, &str_data); ParseFree (pParser, free); Gmllex_destroy (scanner); /* Assigning the token as the end to avoid seg faults while cleaning */ tokens->Next = NULL; gml_cleanup (head); gml_freeString (&(str_data.GmlLval.pval)); if (str_data.gml_parse_error) { if (str_data.result) { /* if a Geometry-result has been produced, the stack is already cleaned */ gml_freeTree (&str_data, str_data.result); gmlCleanMapDynAlloc (&str_data, 0); } else { /* otherwise we are required to clean the stack */ gmlCleanMapDynAlloc (&str_data, 1); } return NULL; } if (str_data.result == NULL) { gmlCleanMapDynAlloc (&str_data, 0); return NULL; } /* attempting to build a geometry from GML */ geom = gml_build_geometry (cache, &str_data, str_data.result, sqlite_handle); gml_freeTree (&str_data, str_data.result); gmlCleanMapDynAlloc (&str_data, 0); return geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseGml (const unsigned char *dirty_buffer, sqlite3 * sqlite_handle) { return gaiaParseGmlCommon (NULL, dirty_buffer, sqlite_handle); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseGml_r (const void *p_cache, const unsigned char *dirty_buffer, sqlite3 * sqlite_handle) { return gaiaParseGmlCommon (p_cache, dirty_buffer, sqlite_handle); } /* ** CAVEAT: we must now undefine any Lemon/Flex own macro */ #undef YYNOCODE #undef YYNSTATE #undef YYNRULE #undef YY_SHIFT_MAX #undef YY_SHIFT_USE_DFLT #undef YY_REDUCE_USE_DFLT #undef YY_REDUCE_MAX #undef YY_FLUSH_BUFFER #undef YY_DO_BEFORE_ACTION #undef YY_NUM_RULES #undef YY_END_OF_BUFFER #undef YY_END_FILE #undef YYACTIONTYPE #undef YY_SZ_ACTTAB #undef YY_NEW_FILE #undef BEGIN #undef YY_START #undef YY_CURRENT_BUFFER #undef YY_CURRENT_BUFFER_LVALUE #undef YY_STATE_BUF_SIZE #undef YY_DECL #undef YY_FATAL_ERROR #undef YYMINORTYPE #undef YY_CHAR #undef YYSTYPE #undef input #undef ParseAlloc #undef ParseFree #undef ParseStackPeak #undef Parse #undef yyalloc #undef yyfree #undef yyin #undef yyleng #undef yyless #undef yylex #undef yylineno #undef yyout #undef yyrealloc #undef yyrestart #undef yyStackEntry #undef yytext #undef yywrap #undef yyzerominor #undef yy_accept #undef yy_action #undef yy_base #undef yy_buffer_stack #undef yy_buffer_stack_max #undef yy_buffer_stack_top #undef yy_c_buf_p #undef yy_chk #undef yy_create_buffer #undef yy_def #undef yy_default #undef yy_delete_buffer #undef yy_destructor #undef yy_ec #undef yy_fatal_error #undef yy_find_reduce_action #undef yy_find_shift_action #undef yy_flex_debug #undef yy_flush_buffer #undef yy_get_next_buffer #undef yy_get_previous_state #undef yy_init #undef yy_init_buffer #undef yy_init_globals #undef yy_load_buffer #undef yy_load_buffer_state #undef yy_lookahead #undef yy_meta #undef yy_new_buffer #undef yy_nxt #undef yy_parse_failed #undef yy_pop_parser_stack #undef yy_reduce #undef yy_reduce_ofst #undef yy_set_bol #undef yy_set_interactive #undef yy_shift #undef yy_shift_ofst #undef yy_start #undef yy_state_type #undef yy_switch_to_buffer #undef yy_syntax_error #undef yy_trans_info #undef yy_try_NUL_trans #undef yyParser #undef yyStackEntry #undef yyStackOverflow #undef yyRuleInfo #undef yytext_ptr #undef yyunput #undef yyzerominor #undef ParseARG_SDECL #undef ParseARG_PDECL #undef ParseARG_FETCH #undef ParseARG_STORE #undef REJECT #undef yymore #undef YY_MORE_ADJ #undef YY_RESTORE_YY_MORE_OFFSET #undef YY_LESS_LINENO #undef yyTracePrompt #undef yyTraceFILE #undef yyTokenName #undef yyRuleName #undef ParseTrace #undef yylex #undef YY_DECL libspatialite-4.3.0a/src/gaiageo/gg_wkt.c0000664000175000017500000034156512544707704015271 00000000000000/* gg_wkt.c -- Gaia common support for WKT encoded geometries version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Klaus Foerster klaus.foerster@svg.cc Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include static void gaiaOutClean (char *buffer) { /* cleans unneeded trailing zeros */ int i; for (i = strlen (buffer) - 1; i > 0; i--) { if (buffer[i] == '0') buffer[i] = '\0'; else break; } if (buffer[i] == '.') buffer[i] = '\0'; if (strcmp (buffer, "-0") == 0) { /* avoiding to return embarassing NEGATIVE ZEROes */ strcpy (buffer, "0"); } if (strcmp (buffer, "-1.#QNAN") == 0 || strcmp (buffer, "NaN") == 0 || strcmp (buffer, "1.#QNAN") == 0 || strcmp (buffer, "-1.#IND") == 0 || strcmp (buffer, "1.#IND") == 0) { /* on Windows a NaN could be represented in "odd" ways */ /* this is intended to restore a consistent behaviour */ strcpy (buffer, "nan"); } } GAIAGEO_DECLARE void gaiaOutBufferInitialize (gaiaOutBufferPtr buf) { /* initializing a dynamically growing output buffer */ buf->Buffer = NULL; buf->WriteOffset = 0; buf->BufferSize = 0; buf->Error = 0; } GAIAGEO_DECLARE void gaiaOutBufferReset (gaiaOutBufferPtr buf) { /* cleaning a dynamically growing output buffer */ if (buf->Buffer) free (buf->Buffer); buf->Buffer = NULL; buf->WriteOffset = 0; buf->BufferSize = 0; buf->Error = 0; } GAIAGEO_DECLARE void gaiaAppendToOutBuffer (gaiaOutBufferPtr buf, const char *text) { /* appending a text string */ int len = strlen (text); int free_size = buf->BufferSize - buf->WriteOffset; if ((len + 1) > free_size) { /* we must allocate a bigger buffer */ int new_size; char *new_buf; if (buf->BufferSize == 0) new_size = (len + 1) + 1024; else if (buf->BufferSize <= 4196) new_size = buf->BufferSize + (len + 1) + 4196; else if (buf->BufferSize <= 65536) new_size = buf->BufferSize + (len + 1) + 65536; else new_size = buf->BufferSize + (len + 1) + (1024 * 1024); new_buf = malloc (new_size); if (!new_buf) { buf->Error = 1; return; } memcpy (new_buf, buf->Buffer, buf->WriteOffset); if (buf->Buffer) free (buf->Buffer); buf->Buffer = new_buf; buf->BufferSize = new_size; } strcpy (buf->Buffer + buf->WriteOffset, text); buf->WriteOffset += len; } static void gaiaOutPointStrict (gaiaOutBufferPtr out_buf, gaiaPointPtr point, int precision) { /* formats a WKT POINT [Strict 2D] */ char *buf_x; char *buf_y; char *buf; buf_x = sqlite3_mprintf ("%.*f", precision, point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, point->Y); gaiaOutClean (buf_y); buf = sqlite3_mprintf ("%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } static void gaiaOutPoint (gaiaOutBufferPtr out_buf, gaiaPointPtr point, int precision) { /* formats a WKT POINT */ char *buf_x; char *buf_y; char *buf; if (precision < 0) buf_x = sqlite3_mprintf ("%1.6f", point->X); else buf_x = sqlite3_mprintf ("%.*f", precision, point->X); gaiaOutClean (buf_x); if (precision < 0) buf_y = sqlite3_mprintf ("%1.6f", point->Y); else buf_y = sqlite3_mprintf ("%.*f", precision, point->Y); gaiaOutClean (buf_y); buf = sqlite3_mprintf ("%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } GAIAGEO_DECLARE void gaiaOutPointZex (gaiaOutBufferPtr out_buf, gaiaPointPtr point, int precision) { /* formats a WKT POINTZ */ char *buf_x; char *buf_y; char *buf_z; char *buf; if (precision < 0) buf_x = sqlite3_mprintf ("%1.6f", point->X); else buf_x = sqlite3_mprintf ("%.*f", precision, point->X); gaiaOutClean (buf_x); if (precision < 0) buf_y = sqlite3_mprintf ("%1.6f", point->Y); else buf_y = sqlite3_mprintf ("%.*f", precision, point->Y); gaiaOutClean (buf_y); if (precision < 0) buf_z = sqlite3_mprintf ("%1.6f", point->Z); else buf_z = sqlite3_mprintf ("%.*f", precision, point->Z); gaiaOutClean (buf_z); buf = sqlite3_mprintf ("%s %s %s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } GAIAGEO_DECLARE void gaiaOutPointZ (gaiaOutBufferPtr out_buf, gaiaPointPtr point) { /* * formats a WKT POINTZ * convenience method - default decimal precision */ gaiaOutPointZex (out_buf, point, -1); } static void gaiaOutPointM (gaiaOutBufferPtr out_buf, gaiaPointPtr point, int precision) { /* formats a WKT POINTM */ char *buf_x; char *buf_y; char *buf_m; char *buf; if (precision < 0) buf_x = sqlite3_mprintf ("%1.6f", point->X); else buf_x = sqlite3_mprintf ("%.*f", precision, point->X); gaiaOutClean (buf_x); if (precision < 0) buf_y = sqlite3_mprintf ("%1.6f", point->Y); else buf_y = sqlite3_mprintf ("%.*f", precision, point->Y); gaiaOutClean (buf_y); if (precision < 0) buf_m = sqlite3_mprintf ("%1.6f", point->M); else buf_m = sqlite3_mprintf ("%.*f", precision, point->M); gaiaOutClean (buf_m); buf = sqlite3_mprintf ("%s %s %s", buf_x, buf_y, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } static void gaiaOutPointZM (gaiaOutBufferPtr out_buf, gaiaPointPtr point, int precision) { /* formats a WKT POINTZM */ char *buf_x; char *buf_y; char *buf_z; char *buf_m; char *buf; if (precision < 0) buf_x = sqlite3_mprintf ("%1.6f", point->X); else buf_x = sqlite3_mprintf ("%.*f", precision, point->X); gaiaOutClean (buf_x); if (precision < 0) buf_y = sqlite3_mprintf ("%1.6f", point->Y); else buf_y = sqlite3_mprintf ("%.*f", precision, point->Y); gaiaOutClean (buf_y); if (precision < 0) buf_z = sqlite3_mprintf ("%1.6f", point->Z); else buf_z = sqlite3_mprintf ("%.*f", precision, point->Z); gaiaOutClean (buf_z); if (precision < 0) buf_m = sqlite3_mprintf ("%1.6f", point->M); else buf_m = sqlite3_mprintf ("%.*f", precision, point->M); gaiaOutClean (buf_m); buf = sqlite3_mprintf ("%s %s %s %s", buf_x, buf_y, buf_z, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } static void gaiaOutEwktPoint (gaiaOutBufferPtr out_buf, gaiaPointPtr point) { /* formats an EWKT POINT */ char *buf_x; char *buf_y; char *buf; buf_x = sqlite3_mprintf ("%1.15f", point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", point->Y); gaiaOutClean (buf_y); buf = sqlite3_mprintf ("%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } GAIAGEO_DECLARE void gaiaOutEwktPointZ (gaiaOutBufferPtr out_buf, gaiaPointPtr point) { /* formats an EWKT POINTZ */ char *buf_x; char *buf_y; char *buf_z; char *buf; buf_x = sqlite3_mprintf ("%1.15f", point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", point->Y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.15f", point->Z); gaiaOutClean (buf_z); buf = sqlite3_mprintf ("%s %s %s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } static void gaiaOutEwktPointM (gaiaOutBufferPtr out_buf, gaiaPointPtr point) { /* formats an EWKT POINTM */ char *buf_x; char *buf_y; char *buf_m; char *buf; buf_x = sqlite3_mprintf ("%1.15f", point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", point->Y); gaiaOutClean (buf_y); buf_m = sqlite3_mprintf ("%1.15f", point->M); gaiaOutClean (buf_m); buf = sqlite3_mprintf ("%s %s %s", buf_x, buf_y, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } static void gaiaOutEwktPointZM (gaiaOutBufferPtr out_buf, gaiaPointPtr point) { /* formats an EWKT POINTZM */ char *buf_x; char *buf_y; char *buf_z; char *buf_m; char *buf; buf_x = sqlite3_mprintf ("%1.15f", point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", point->Y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.15f", point->Z); gaiaOutClean (buf_z); buf_m = sqlite3_mprintf ("%1.15f", point->M); gaiaOutClean (buf_m); buf = sqlite3_mprintf ("%s %s %s %s", buf_x, buf_y, buf_z, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } static void gaiaOutLinestringStrict (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line, int precision) { /* formats a WKT LINESTRING [Strict 2D] */ char *buf_x; char *buf_y; char *buf; double x; double y; double z; double m; int iv; for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (iv > 0) buf = sqlite3_mprintf (",%s %s", buf_x, buf_y); else buf = sqlite3_mprintf ("%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } static void gaiaOutLinestring (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line, int precision) { /* formats a WKT LINESTRING */ char *buf_x; char *buf_y; char *buf; double x; double y; int iv; for (iv = 0; iv < line->Points; iv++) { gaiaGetPoint (line->Coords, iv, &x, &y); if (precision < 0) buf_x = sqlite3_mprintf ("%1.6f", x); else buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); if (precision < 0) buf_y = sqlite3_mprintf ("%1.6f", y); else buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (iv > 0) buf = sqlite3_mprintf (", %s %s", buf_x, buf_y); else buf = sqlite3_mprintf ("%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } GAIAGEO_DECLARE void gaiaOutLinestringZex (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line, int precision) { /* formats a WKT LINESTRINGZ */ char *buf_x; char *buf_y; char *buf_z; char *buf; double x; double y; double z; int iv; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); if (precision < 0) buf_x = sqlite3_mprintf ("%1.6f", x); else buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); if (precision < 0) buf_y = sqlite3_mprintf ("%1.6f", y); else buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (precision < 0) buf_z = sqlite3_mprintf ("%1.6f", z); else buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (iv > 0) buf = sqlite3_mprintf (", %s %s %s", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf ("%s %s %s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } GAIAGEO_DECLARE void gaiaOutLinestringZ (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line) { /* * formats a WKT LINESTRINGZ * convenience method - default decimal precision */ gaiaOutLinestringZex (out_buf, line, -1); } static void gaiaOutLinestringM (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line, int precision) { /* formats a WKT LINESTRINGM */ char *buf_x; char *buf_y; char *buf_m; char *buf; double x; double y; double m; int iv; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); if (precision < 0) buf_x = sqlite3_mprintf ("%1.6f", x); else buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); if (precision < 0) buf_y = sqlite3_mprintf ("%1.6f", y); else buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (precision < 0) buf_m = sqlite3_mprintf ("%1.6f", m); else buf_m = sqlite3_mprintf ("%.*f", precision, m); gaiaOutClean (buf_m); if (iv > 0) buf = sqlite3_mprintf (", %s %s %s", buf_x, buf_y, buf_m); else buf = sqlite3_mprintf ("%s %s %s", buf_x, buf_y, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } static void gaiaOutLinestringZM (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line, int precision) { /* formats a WKT LINESTRINGZM */ char *buf_x; char *buf_y; char *buf_z; char *buf_m; char *buf; double x; double y; double z; double m; int iv; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); if (precision < 0) buf_x = sqlite3_mprintf ("%1.6f", x); else buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); if (precision < 0) buf_y = sqlite3_mprintf ("%1.6f", y); else buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (precision < 0) buf_z = sqlite3_mprintf ("%1.6f", z); else buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (precision < 0) buf_m = sqlite3_mprintf ("%1.6f", m); else buf_m = sqlite3_mprintf ("%.*f", precision, m); gaiaOutClean (buf_m); if (iv > 0) buf = sqlite3_mprintf (", %s %s %s %s", buf_x, buf_y, buf_z, buf_m); else buf = sqlite3_mprintf ("%s %s %s %s", buf_x, buf_y, buf_z, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } static void gaiaOutEwktLinestring (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line) { /* formats an EWKT LINESTRING */ char *buf_x; char *buf_y; char *buf; double x; double y; int iv; for (iv = 0; iv < line->Points; iv++) { gaiaGetPoint (line->Coords, iv, &x, &y); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); if (iv > 0) buf = sqlite3_mprintf (",%s %s", buf_x, buf_y); else buf = sqlite3_mprintf ("%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } GAIAGEO_DECLARE void gaiaOutEwktLinestringZ (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line) { /* formats an EWKT LINESTRINGZ */ char *buf_x; char *buf_y; char *buf_z; char *buf; double x; double y; double z; int iv; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.15f", z); gaiaOutClean (buf_z); if (iv > 0) buf = sqlite3_mprintf (",%s %s %s", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf ("%s %s %s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } static void gaiaOutEwktLinestringM (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line) { /* formats an EWKT LINESTRINGM */ char *buf_x; char *buf_y; char *buf_m; char *buf; double x; double y; double m; int iv; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); buf_m = sqlite3_mprintf ("%1.15f", m); gaiaOutClean (buf_m); if (iv > 0) buf = sqlite3_mprintf (",%s %s %s", buf_x, buf_y, buf_m); else buf = sqlite3_mprintf ("%s %s %s", buf_x, buf_y, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } static void gaiaOutEwktLinestringZM (gaiaOutBufferPtr out_buf, gaiaLinestringPtr line) { /* formats an EWKT LINESTRINGZM */ char *buf_x; char *buf_y; char *buf_z; char *buf_m; char *buf; double x; double y; double z; double m; int iv; for (iv = 0; iv < line->Points; iv++) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.15f", z); gaiaOutClean (buf_z); buf_m = sqlite3_mprintf ("%1.15f", m); gaiaOutClean (buf_m); if (iv > 0) buf = sqlite3_mprintf (",%s %s %s %s", buf_x, buf_y, buf_z, buf_m); else buf = sqlite3_mprintf ("%s %s %s %s", buf_x, buf_y, buf_z, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } static void gaiaOutPolygonStrict (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg, int precision) { /* formats a WKT POLYGON [Strict 2D] */ char *buf_x; char *buf_y; char *buf; int ib; int iv; double x; double y; double z; double m; gaiaRingPtr ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf ("(%s %s", buf_x, buf_y); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s)", buf_x, buf_y); else buf = sqlite3_mprintf (",%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf (",(%s %s", buf_x, buf_y); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s)", buf_x, buf_y); else buf = sqlite3_mprintf (",%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } } static void gaiaOutPolygon (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg, int precision) { /* formats a WKT POLYGON */ char *buf_x; char *buf_y; char *buf; int ib; int iv; double x; double y; gaiaRingPtr ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPoint (ring->Coords, iv, &x, &y); if (precision < 0) buf_x = sqlite3_mprintf ("%1.6f", x); else buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); if (precision < 0) buf_y = sqlite3_mprintf ("%1.6f", y); else buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf ("(%s %s", buf_x, buf_y); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (", %s %s)", buf_x, buf_y); else buf = sqlite3_mprintf (", %s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPoint (ring->Coords, iv, &x, &y); if (precision < 0) buf_x = sqlite3_mprintf ("%1.6f", x); else buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); if (precision < 0) buf_y = sqlite3_mprintf ("%1.6f", y); else buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf (", (%s %s", buf_x, buf_y); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (", %s %s)", buf_x, buf_y); else buf = sqlite3_mprintf (", %s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } } GAIAGEO_DECLARE void gaiaOutPolygonZex (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg, int precision) { /* formats a WKT POLYGONZ */ char *buf_x; char *buf_y; char *buf_z; char *buf; int ib; int iv; double x; double y; double z; gaiaRingPtr ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); if (precision < 0) buf_x = sqlite3_mprintf ("%1.6f", x); else buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); if (precision < 0) buf_y = sqlite3_mprintf ("%1.6f", y); else buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (precision < 0) buf_z = sqlite3_mprintf ("%1.6f", z); else buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf ("(%s %s %s", buf_x, buf_y, buf_z); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (", %s %s %s)", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (", %s %s %s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); if (precision < 0) buf_x = sqlite3_mprintf ("%1.6f", x); else buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); if (precision < 0) buf_y = sqlite3_mprintf ("%1.6f", y); else buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (precision < 0) buf_z = sqlite3_mprintf ("%1.6f", z); else buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf (", (%s %s %s", buf_x, buf_y, buf_z); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (", %s %s %s)", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (", %s %s %s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } } GAIAGEO_DECLARE void gaiaOutPolygonZ (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg) { /* * formats a WKT POLYGONZ * convenience method - default decimal precision */ gaiaOutPolygonZex (out_buf, polyg, -1); } static void gaiaOutPolygonM (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg, int precision) { /* formats a WKT POLYGONM */ char *buf_x; char *buf_y; char *buf_m; char *buf; int ib; int iv; double x; double y; double m; gaiaRingPtr ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); if (precision < 0) buf_x = sqlite3_mprintf ("%1.6f", x); else buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); if (precision < 0) buf_y = sqlite3_mprintf ("%1.6f", y); else buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (precision < 0) buf_m = sqlite3_mprintf ("%1.6f", m); else buf_m = sqlite3_mprintf ("%.*f", precision, m); gaiaOutClean (buf_m); if (iv == 0) buf = sqlite3_mprintf ("(%s %s %s", buf_x, buf_y, buf_m); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (", %s %s %s)", buf_x, buf_y, buf_m); else buf = sqlite3_mprintf (", %s %s %s", buf_x, buf_y, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); if (precision < 0) buf_x = sqlite3_mprintf ("%1.6f", x); else buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); if (precision < 0) buf_y = sqlite3_mprintf ("%1.6f", y); else buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (precision < 0) buf_m = sqlite3_mprintf ("%1.6f", m); else buf_m = sqlite3_mprintf ("%.*f", precision, m); gaiaOutClean (buf_m); if (iv == 0) buf = sqlite3_mprintf (", (%s %s %s", buf_x, buf_y, buf_m); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (", %s %s %s)", buf_x, buf_y, buf_m); else buf = sqlite3_mprintf (", %s %s %s", buf_x, buf_y, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } } static void gaiaOutPolygonZM (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg, int precision) { /* formats a WKT POLYGONZM */ char *buf_x; char *buf_y; char *buf_z; char *buf_m; char *buf; int ib; int iv; double x; double y; double z; double m; gaiaRingPtr ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); if (precision < 0) buf_x = sqlite3_mprintf ("%1.6f", x); else buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); if (precision < 0) buf_y = sqlite3_mprintf ("%1.6f", y); else buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (precision < 0) buf_z = sqlite3_mprintf ("%1.6f", z); else buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (precision < 0) buf_m = sqlite3_mprintf ("%1.6f", m); else buf_m = sqlite3_mprintf ("%.*f", precision, m); gaiaOutClean (buf_m); if (iv == 0) buf = sqlite3_mprintf ("(%s %s %s %s", buf_x, buf_y, buf_z, buf_m); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (", %s %s %s %s)", buf_x, buf_y, buf_z, buf_m); else buf = sqlite3_mprintf (", %s %s %s %s", buf_x, buf_y, buf_z, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); if (precision < 0) buf_x = sqlite3_mprintf ("%1.6f", x); else buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); if (precision < 0) buf_y = sqlite3_mprintf ("%1.6f", y); else buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (precision < 0) buf_z = sqlite3_mprintf ("%1.6f", z); else buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (precision < 0) buf_m = sqlite3_mprintf ("%1.6f", m); else buf_m = sqlite3_mprintf ("%.*f", precision, m); gaiaOutClean (buf_m); if (iv == 0) buf = sqlite3_mprintf (", (%s %s %s %s", buf_x, buf_y, buf_z, buf_m); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (", %s %s %s %s)", buf_x, buf_y, buf_z, buf_m); else buf = sqlite3_mprintf (", %s %s %s %s", buf_x, buf_y, buf_z, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } } static void gaiaOutEwktPolygon (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg) { /* formats an EWKT POLYGON */ char *buf_x; char *buf_y; char *buf; int ib; int iv; double x; double y; gaiaRingPtr ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPoint (ring->Coords, iv, &x, &y); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf ("(%s %s", buf_x, buf_y); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s)", buf_x, buf_y); else buf = sqlite3_mprintf (",%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPoint (ring->Coords, iv, &x, &y); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf (",(%s %s", buf_x, buf_y); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s)", buf_x, buf_y); else buf = sqlite3_mprintf (",%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } } GAIAGEO_DECLARE void gaiaOutEwktPolygonZ (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg) { /* formats an EWKT POLYGONZ */ char *buf_x; char *buf_y; char *buf_z; char *buf; int ib; int iv; double x; double y; double z; gaiaRingPtr ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.15f", z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf ("(%s %s %s", buf_x, buf_y, buf_z); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s %s)", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (",%s %s %s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.15f", z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf (",(%s %s %s", buf_x, buf_y, buf_z); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s %s)", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (",%s %s %s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } } static void gaiaOutEwktPolygonM (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg) { /* formats an EWKT POLYGONM */ char *buf_x; char *buf_y; char *buf_m; char *buf; int ib; int iv; double x; double y; double m; gaiaRingPtr ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); buf_m = sqlite3_mprintf ("%1.15f", m); gaiaOutClean (buf_m); if (iv == 0) buf = sqlite3_mprintf ("(%s %s %s", buf_x, buf_y, buf_m); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s %s)", buf_x, buf_y, buf_m); else buf = sqlite3_mprintf (",%s %s %s", buf_x, buf_y, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); buf_m = sqlite3_mprintf ("%1.15f", m); gaiaOutClean (buf_m); if (iv == 0) buf = sqlite3_mprintf (",(%s %s %s", buf_x, buf_y, buf_m); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s %s)", buf_x, buf_y, buf_m); else buf = sqlite3_mprintf (",%s %s %s", buf_x, buf_y, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } } static void gaiaOutEwktPolygonZM (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polyg) { /* formats an EWKT POLYGONZM */ char *buf_x; char *buf_y; char *buf_z; char *buf_m; char *buf; int ib; int iv; double x; double y; double z; double m; gaiaRingPtr ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.15f", z); gaiaOutClean (buf_z); buf_m = sqlite3_mprintf ("%1.15f", m); gaiaOutClean (buf_m); if (iv == 0) buf = sqlite3_mprintf ("(%s %s %s %s", buf_x, buf_y, buf_z, buf_m); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s %s %s)", buf_x, buf_y, buf_z, buf_m); else buf = sqlite3_mprintf (",%s %s %s %s", buf_x, buf_y, buf_z, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); buf_x = sqlite3_mprintf ("%1.15f", x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%1.15f", y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%1.15f", z); gaiaOutClean (buf_z); buf_m = sqlite3_mprintf ("%1.15f", m); gaiaOutClean (buf_m); if (iv == 0) buf = sqlite3_mprintf (",(%s %s %s %s", buf_x, buf_y, buf_z, buf_m); else if (iv == (ring->Points - 1)) buf = sqlite3_mprintf (",%s %s %s %s)", buf_x, buf_y, buf_z, buf_m); else buf = sqlite3_mprintf (",%s %s %s %s", buf_x, buf_y, buf_z, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); sqlite3_free (buf_m); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } } GAIAGEO_DECLARE void gaiaOutWktEx (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom, int precision) { /* prints the WKT representation of current geometry */ int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; if (!geom) return; point = geom->FirstPoint; while (point) { /* counting how many POINTs are there */ pts++; point = point->Next; } line = geom->FirstLinestring; while (line) { /* counting how many LINESTRINGs are there */ lns++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* counting how many POLYGONs are there */ pgs++; polyg = polyg->Next; } if ((pts + lns + pgs) == 1 && (geom->DeclaredType == GAIA_POINT || geom->DeclaredType == GAIA_LINESTRING || geom->DeclaredType == GAIA_POLYGON)) { /* we have only one elementary geometry */ point = geom->FirstPoint; while (point) { if (point->DimensionModel == GAIA_XY_Z) { /* processing POINTZ */ gaiaAppendToOutBuffer (out_buf, "POINT Z("); gaiaOutPointZex (out_buf, point, precision); } else if (point->DimensionModel == GAIA_XY_M) { /* processing POINTM */ gaiaAppendToOutBuffer (out_buf, "POINT M("); gaiaOutPointM (out_buf, point, precision); } else if (point->DimensionModel == GAIA_XY_Z_M) { /* processing POINTZM */ gaiaAppendToOutBuffer (out_buf, "POINT ZM("); gaiaOutPointZM (out_buf, point, precision); } else { /* processing POINT */ gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutPoint (out_buf, point, precision); } gaiaAppendToOutBuffer (out_buf, ")"); point = point->Next; } line = geom->FirstLinestring; while (line) { if (line->DimensionModel == GAIA_XY_Z) { /* processing LINESTRINGZ */ gaiaAppendToOutBuffer (out_buf, "LINESTRING Z("); gaiaOutLinestringZex (out_buf, line, precision); } else if (line->DimensionModel == GAIA_XY_M) { /* processing LINESTRINGM */ gaiaAppendToOutBuffer (out_buf, "LINESTRING M("); gaiaOutLinestringM (out_buf, line, precision); } else if (line->DimensionModel == GAIA_XY_Z_M) { /* processing LINESTRINGZM */ gaiaAppendToOutBuffer (out_buf, "LINESTRING ZM("); gaiaOutLinestringZM (out_buf, line, precision); } else { /* processing LINESTRING */ gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutLinestring (out_buf, line, precision); } gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { if (polyg->DimensionModel == GAIA_XY_Z) { /* processing POLYGONZ */ gaiaAppendToOutBuffer (out_buf, "POLYGON Z("); gaiaOutPolygonZex (out_buf, polyg, precision); } else if (polyg->DimensionModel == GAIA_XY_M) { /* processing POLYGONM */ gaiaAppendToOutBuffer (out_buf, "POLYGON M("); gaiaOutPolygonM (out_buf, polyg, precision); } else if (polyg->DimensionModel == GAIA_XY_Z_M) { /* processing POLYGONZM */ gaiaAppendToOutBuffer (out_buf, "POLYGON ZM("); gaiaOutPolygonZM (out_buf, polyg, precision); } else { /* processing POLYGON */ gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutPolygon (out_buf, polyg, precision); } gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } } else { /* we have some kind of complex geometry */ if (pts > 0 && lns == 0 && pgs == 0 && geom->DeclaredType == GAIA_MULTIPOINT) { /* some kind of MULTIPOINT */ if (geom->DimensionModel == GAIA_XY_Z) gaiaAppendToOutBuffer (out_buf, "MULTIPOINT Z("); else if (geom->DimensionModel == GAIA_XY_M) gaiaAppendToOutBuffer (out_buf, "MULTIPOINT M("); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAppendToOutBuffer (out_buf, "MULTIPOINT ZM("); else gaiaAppendToOutBuffer (out_buf, "MULTIPOINT("); point = geom->FirstPoint; while (point) { if (point->DimensionModel == GAIA_XY_Z) { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ", "); gaiaOutPointZex (out_buf, point, precision); } else if (point->DimensionModel == GAIA_XY_M) { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ", "); gaiaOutPointM (out_buf, point, precision); } else if (point->DimensionModel == GAIA_XY_Z_M) { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ", "); gaiaOutPointZM (out_buf, point, precision); } else { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ", "); gaiaOutPoint (out_buf, point, precision); } point = point->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else if (pts == 0 && lns > 0 && pgs == 0 && geom->DeclaredType == GAIA_MULTILINESTRING) { /* some kind of MULTILINESTRING */ if (geom->DimensionModel == GAIA_XY_Z) gaiaAppendToOutBuffer (out_buf, "MULTILINESTRING Z("); else if (geom->DimensionModel == GAIA_XY_M) gaiaAppendToOutBuffer (out_buf, "MULTILINESTRING M("); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAppendToOutBuffer (out_buf, "MULTILINESTRING ZM("); else gaiaAppendToOutBuffer (out_buf, "MULTILINESTRING("); line = geom->FirstLinestring; while (line) { if (line != geom->FirstLinestring) gaiaAppendToOutBuffer (out_buf, ", ("); else gaiaAppendToOutBuffer (out_buf, "("); if (line->DimensionModel == GAIA_XY_Z) { gaiaOutLinestringZex (out_buf, line, precision); gaiaAppendToOutBuffer (out_buf, ")"); } else if (line->DimensionModel == GAIA_XY_M) { gaiaOutLinestringM (out_buf, line, precision); gaiaAppendToOutBuffer (out_buf, ")"); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaOutLinestringZM (out_buf, line, precision); gaiaAppendToOutBuffer (out_buf, ")"); } else { gaiaOutLinestring (out_buf, line, precision); gaiaAppendToOutBuffer (out_buf, ")"); } line = line->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else if (pts == 0 && lns == 0 && pgs > 0 && geom->DeclaredType == GAIA_MULTIPOLYGON) { /* some kind of MULTIPOLYGON */ if (geom->DimensionModel == GAIA_XY_Z) gaiaAppendToOutBuffer (out_buf, "MULTIPOLYGON Z("); else if (geom->DimensionModel == GAIA_XY_M) gaiaAppendToOutBuffer (out_buf, "MULTIPOLYGON M("); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAppendToOutBuffer (out_buf, "MULTIPOLYGON ZM("); else gaiaAppendToOutBuffer (out_buf, "MULTIPOLYGON("); polyg = geom->FirstPolygon; while (polyg) { if (polyg != geom->FirstPolygon) gaiaAppendToOutBuffer (out_buf, ", ("); else gaiaAppendToOutBuffer (out_buf, "("); if (polyg->DimensionModel == GAIA_XY_Z) { gaiaOutPolygonZex (out_buf, polyg, precision); gaiaAppendToOutBuffer (out_buf, ")"); } else if (polyg->DimensionModel == GAIA_XY_M) { gaiaOutPolygonM (out_buf, polyg, precision); gaiaAppendToOutBuffer (out_buf, ")"); } else if (polyg->DimensionModel == GAIA_XY_Z_M) { gaiaOutPolygonZM (out_buf, polyg, precision); gaiaAppendToOutBuffer (out_buf, ")"); } else { gaiaOutPolygon (out_buf, polyg, precision); gaiaAppendToOutBuffer (out_buf, ")"); } polyg = polyg->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else { /* some kind of GEOMETRYCOLLECTION */ int ie = 0; if (geom->DimensionModel == GAIA_XY_Z) gaiaAppendToOutBuffer (out_buf, "GEOMETRYCOLLECTION Z("); else if (geom->DimensionModel == GAIA_XY_M) gaiaAppendToOutBuffer (out_buf, "GEOMETRYCOLLECTION M("); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAppendToOutBuffer (out_buf, "GEOMETRYCOLLECTION ZM("); else gaiaAppendToOutBuffer (out_buf, "GEOMETRYCOLLECTION("); point = geom->FirstPoint; while (point) { /* processing POINTs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ", "); ie++; if (point->DimensionModel == GAIA_XY_Z) { gaiaAppendToOutBuffer (out_buf, "POINT Z("); gaiaOutPointZex (out_buf, point, precision); } else if (point->DimensionModel == GAIA_XY_M) { gaiaAppendToOutBuffer (out_buf, "POINT M("); gaiaOutPointM (out_buf, point, precision); } else if (point->DimensionModel == GAIA_XY_Z_M) { gaiaAppendToOutBuffer (out_buf, "POINT ZM("); gaiaOutPointZM (out_buf, point, precision); } else { gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutPoint (out_buf, point, precision); } gaiaAppendToOutBuffer (out_buf, ")"); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRINGs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ", "); ie++; if (line->DimensionModel == GAIA_XY_Z) { gaiaAppendToOutBuffer (out_buf, "LINESTRING Z("); gaiaOutLinestringZex (out_buf, line, precision); } else if (line->DimensionModel == GAIA_XY_M) { gaiaAppendToOutBuffer (out_buf, "LINESTRING M("); gaiaOutLinestringM (out_buf, line, precision); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaAppendToOutBuffer (out_buf, "LINESTRING ZM("); gaiaOutLinestringZM (out_buf, line, precision); } else { gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutLinestring (out_buf, line, precision); } gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGONs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ", "); ie++; if (polyg->DimensionModel == GAIA_XY_Z) { gaiaAppendToOutBuffer (out_buf, "POLYGON Z("); gaiaOutPolygonZex (out_buf, polyg, precision); } else if (polyg->DimensionModel == GAIA_XY_M) { gaiaAppendToOutBuffer (out_buf, "POLYGON M("); gaiaOutPolygonM (out_buf, polyg, precision); } else if (polyg->DimensionModel == GAIA_XY_Z_M) { gaiaAppendToOutBuffer (out_buf, "POLYGON ZM("); gaiaOutPolygonZM (out_buf, polyg, precision); } else { gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutPolygon (out_buf, polyg, precision); } gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } } } GAIAGEO_DECLARE void gaiaOutWkt (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom) { /* * prints the WKT representation of current geometry * convenience method - default decimal precision */ gaiaOutWktEx (out_buf, geom, -1); } GAIAGEO_DECLARE void gaiaOutWktStrict (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom, int precision) { /* * prints the WKT representation of current geometry * strictly conformant 2D WKT implementation */ int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; if (precision > 18) precision = 18; if (!geom) return; point = geom->FirstPoint; while (point) { /* counting how many POINTs are there */ pts++; point = point->Next; } line = geom->FirstLinestring; while (line) { /* counting how many LINESTRINGs are there */ lns++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* counting how many POLYGONs are there */ pgs++; polyg = polyg->Next; } if ((pts + lns + pgs) == 1 && (geom->DeclaredType == GAIA_POINT || geom->DeclaredType == GAIA_LINESTRING || geom->DeclaredType == GAIA_POLYGON)) { /* we have only one elementary geometry */ point = geom->FirstPoint; while (point) { /* processing POINT */ gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutPointStrict (out_buf, point, precision); gaiaAppendToOutBuffer (out_buf, ")"); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRING */ gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutLinestringStrict (out_buf, line, precision); gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGON */ gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutPolygonStrict (out_buf, polyg, precision); gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } } else { /* we have some kind of complex geometry */ if (pts > 0 && lns == 0 && pgs == 0 && geom->DeclaredType == GAIA_MULTIPOINT) { /* some kind of MULTIPOINT */ gaiaAppendToOutBuffer (out_buf, "MULTIPOINT("); point = geom->FirstPoint; while (point) { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ","); gaiaOutPointStrict (out_buf, point, precision); point = point->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else if (pts == 0 && lns > 0 && pgs == 0 && geom->DeclaredType == GAIA_MULTILINESTRING) { /* some kind of MULTILINESTRING */ gaiaAppendToOutBuffer (out_buf, "MULTILINESTRING("); line = geom->FirstLinestring; while (line) { if (line != geom->FirstLinestring) gaiaAppendToOutBuffer (out_buf, ",("); else gaiaAppendToOutBuffer (out_buf, "("); gaiaOutLinestringStrict (out_buf, line, precision); gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else if (pts == 0 && lns == 0 && pgs > 0 && geom->DeclaredType == GAIA_MULTIPOLYGON) { /* some kind of MULTIPOLYGON */ gaiaAppendToOutBuffer (out_buf, "MULTIPOLYGON("); polyg = geom->FirstPolygon; while (polyg) { if (polyg != geom->FirstPolygon) gaiaAppendToOutBuffer (out_buf, ",("); else gaiaAppendToOutBuffer (out_buf, "("); gaiaOutPolygonStrict (out_buf, polyg, precision); gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else { /* some kind of GEOMETRYCOLLECTION */ int ie = 0; gaiaAppendToOutBuffer (out_buf, "GEOMETRYCOLLECTION("); point = geom->FirstPoint; while (point) { /* processing POINTs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ","); ie++; gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutPointStrict (out_buf, point, precision); gaiaAppendToOutBuffer (out_buf, ")"); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRINGs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ","); ie++; gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutLinestringStrict (out_buf, line, precision); gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGONs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ","); ie++; gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutPolygonStrict (out_buf, polyg, precision); gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } } } GAIAGEO_DECLARE void gaiaToEWKT (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom) { /* prints the EWKT representation of current geometry */ char buf[128]; int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; if (!geom) return; sprintf (buf, "SRID=%d;", geom->Srid); gaiaAppendToOutBuffer (out_buf, buf); point = geom->FirstPoint; while (point) { /* counting how many POINTs are there */ pts++; point = point->Next; } line = geom->FirstLinestring; while (line) { /* counting how many LINESTRINGs are there */ lns++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* counting how many POLYGONs are there */ pgs++; polyg = polyg->Next; } if ((pts + lns + pgs) == 1 && (geom->DeclaredType == GAIA_POINT || geom->DeclaredType == GAIA_LINESTRING || geom->DeclaredType == GAIA_POLYGON)) { /* we have only one elementary geometry */ point = geom->FirstPoint; while (point) { if (point->DimensionModel == GAIA_XY_Z) { /* processing POINTZ */ gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutEwktPointZ (out_buf, point); } else if (point->DimensionModel == GAIA_XY_M) { /* processing POINTM */ gaiaAppendToOutBuffer (out_buf, "POINTM("); gaiaOutEwktPointM (out_buf, point); } else if (point->DimensionModel == GAIA_XY_Z_M) { /* processing POINTZM */ gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutEwktPointZM (out_buf, point); } else { /* processing POINT */ gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutEwktPoint (out_buf, point); } gaiaAppendToOutBuffer (out_buf, ")"); point = point->Next; } line = geom->FirstLinestring; while (line) { if (line->DimensionModel == GAIA_XY_Z) { /* processing LINESTRINGZ */ gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutEwktLinestringZ (out_buf, line); } else if (line->DimensionModel == GAIA_XY_M) { /* processing LINESTRINGM */ gaiaAppendToOutBuffer (out_buf, "LINESTRINGM("); gaiaOutEwktLinestringM (out_buf, line); } else if (line->DimensionModel == GAIA_XY_Z_M) { /* processing LINESTRINGZM */ gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutEwktLinestringZM (out_buf, line); } else { /* processing LINESTRING */ gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutEwktLinestring (out_buf, line); } gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { if (polyg->DimensionModel == GAIA_XY_Z) { /* processing POLYGONZ */ gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutEwktPolygonZ (out_buf, polyg); } else if (polyg->DimensionModel == GAIA_XY_M) { /* processing POLYGONM */ gaiaAppendToOutBuffer (out_buf, "POLYGONM("); gaiaOutEwktPolygonM (out_buf, polyg); } else if (polyg->DimensionModel == GAIA_XY_Z_M) { /* processing POLYGONZM */ gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutEwktPolygonZM (out_buf, polyg); } else { /* processing POLYGON */ gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutEwktPolygon (out_buf, polyg); } gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } } else { /* we have some kind of complex geometry */ if (pts > 0 && lns == 0 && pgs == 0 && geom->DeclaredType == GAIA_MULTIPOINT) { /* some kind of MULTIPOINT */ if (geom->DimensionModel == GAIA_XY_M) gaiaAppendToOutBuffer (out_buf, "MULTIPOINTM("); else gaiaAppendToOutBuffer (out_buf, "MULTIPOINT("); point = geom->FirstPoint; while (point) { if (point->DimensionModel == GAIA_XY_Z) { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ","); gaiaOutEwktPointZ (out_buf, point); } else if (point->DimensionModel == GAIA_XY_M) { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ","); gaiaOutEwktPointM (out_buf, point); } else if (point->DimensionModel == GAIA_XY_Z_M) { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ","); gaiaOutEwktPointZM (out_buf, point); } else { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ","); gaiaOutEwktPoint (out_buf, point); } point = point->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else if (pts == 0 && lns > 0 && pgs == 0 && geom->DeclaredType == GAIA_MULTILINESTRING) { /* some kind of MULTILINESTRING */ if (geom->DimensionModel == GAIA_XY_M) gaiaAppendToOutBuffer (out_buf, "MULTILINESTRINGM("); else gaiaAppendToOutBuffer (out_buf, "MULTILINESTRING("); line = geom->FirstLinestring; while (line) { if (line != geom->FirstLinestring) gaiaAppendToOutBuffer (out_buf, ",("); else gaiaAppendToOutBuffer (out_buf, "("); if (line->DimensionModel == GAIA_XY_Z) { gaiaOutEwktLinestringZ (out_buf, line); gaiaAppendToOutBuffer (out_buf, ")"); } else if (line->DimensionModel == GAIA_XY_M) { gaiaOutEwktLinestringM (out_buf, line); gaiaAppendToOutBuffer (out_buf, ")"); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaOutEwktLinestringZM (out_buf, line); gaiaAppendToOutBuffer (out_buf, ")"); } else { gaiaOutEwktLinestring (out_buf, line); gaiaAppendToOutBuffer (out_buf, ")"); } line = line->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else if (pts == 0 && lns == 0 && pgs > 0 && geom->DeclaredType == GAIA_MULTIPOLYGON) { /* some kind of MULTIPOLYGON */ if (geom->DimensionModel == GAIA_XY_M) gaiaAppendToOutBuffer (out_buf, "MULTIPOLYGONM("); else gaiaAppendToOutBuffer (out_buf, "MULTIPOLYGON("); polyg = geom->FirstPolygon; while (polyg) { if (polyg != geom->FirstPolygon) gaiaAppendToOutBuffer (out_buf, ",("); else gaiaAppendToOutBuffer (out_buf, "("); if (polyg->DimensionModel == GAIA_XY_Z) { gaiaOutEwktPolygonZ (out_buf, polyg); gaiaAppendToOutBuffer (out_buf, ")"); } else if (polyg->DimensionModel == GAIA_XY_M) { gaiaOutEwktPolygonM (out_buf, polyg); gaiaAppendToOutBuffer (out_buf, ")"); } else if (polyg->DimensionModel == GAIA_XY_Z_M) { gaiaOutEwktPolygonZM (out_buf, polyg); gaiaAppendToOutBuffer (out_buf, ")"); } else { gaiaOutEwktPolygon (out_buf, polyg); gaiaAppendToOutBuffer (out_buf, ")"); } polyg = polyg->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else { /* some kind of GEOMETRYCOLLECTION */ int ie = 0; if (geom->DimensionModel == GAIA_XY_M) gaiaAppendToOutBuffer (out_buf, "GEOMETRYCOLLECTIONM("); else gaiaAppendToOutBuffer (out_buf, "GEOMETRYCOLLECTION("); point = geom->FirstPoint; while (point) { /* processing POINTs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ","); ie++; if (point->DimensionModel == GAIA_XY_Z) { gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutEwktPointZ (out_buf, point); } else if (point->DimensionModel == GAIA_XY_M) { gaiaAppendToOutBuffer (out_buf, "POINTM("); gaiaOutEwktPointM (out_buf, point); } else if (point->DimensionModel == GAIA_XY_Z_M) { gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutEwktPointZM (out_buf, point); } else { gaiaAppendToOutBuffer (out_buf, "POINT("); gaiaOutEwktPoint (out_buf, point); } gaiaAppendToOutBuffer (out_buf, ")"); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRINGs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ","); ie++; if (line->DimensionModel == GAIA_XY_Z) { gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutEwktLinestringZ (out_buf, line); } else if (line->DimensionModel == GAIA_XY_M) { gaiaAppendToOutBuffer (out_buf, "LINESTRINGM("); gaiaOutEwktLinestringM (out_buf, line); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutEwktLinestringZM (out_buf, line); } else { gaiaAppendToOutBuffer (out_buf, "LINESTRING("); gaiaOutEwktLinestring (out_buf, line); } gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGONs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ","); ie++; if (polyg->DimensionModel == GAIA_XY_Z) { gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutEwktPolygonZ (out_buf, polyg); } else if (polyg->DimensionModel == GAIA_XY_M) { gaiaAppendToOutBuffer (out_buf, "POLYGONM("); gaiaOutEwktPolygonM (out_buf, polyg); } else if (polyg->DimensionModel == GAIA_XY_Z_M) { gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutEwktPolygonZM (out_buf, polyg); } else { gaiaAppendToOutBuffer (out_buf, "POLYGON("); gaiaOutEwktPolygon (out_buf, polyg); } gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } } } /* / / Gaia common support for SVG encoded geometries / //////////////////////////////////////////////////////////// / / Author: Klaus Foerster klaus.foerster@svg.cc / version 0.9. 2008 September 21 / */ static void SvgCoords (gaiaOutBufferPtr out_buf, gaiaPointPtr point, int precision) { /* formats POINT as SVG-attributes x,y */ char *buf_x; char *buf_y; char *buf; buf_x = sqlite3_mprintf ("%.*f", precision, point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, point->Y * -1); gaiaOutClean (buf_y); buf = sqlite3_mprintf ("x=\"%s\" y=\"%s\"", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } static void SvgCircle (gaiaOutBufferPtr out_buf, gaiaPointPtr point, int precision) { /* formats POINT as SVG-attributes cx,cy */ char *buf_x; char *buf_y; char *buf; buf_x = sqlite3_mprintf ("%.*f", precision, point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, point->Y * -1); gaiaOutClean (buf_y); buf = sqlite3_mprintf ("cx=\"%s\" cy=\"%s\"", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } static void SvgPathRelative (gaiaOutBufferPtr out_buf, int dims, int points, double *coords, int precision, int closePath) { /* formats LINESTRING as SVG-path d-attribute with relative coordinate moves */ char *buf_x; char *buf_y; char *buf; double x; double y; double z; double m; double lastX = 0.0; double lastY = 0.0; int iv; for (iv = 0; iv < points; iv++) { if (dims == GAIA_XY_Z) { gaiaGetPointXYZ (coords, iv, &x, &y, &z); } else if (dims == GAIA_XY_M) { gaiaGetPointXYM (coords, iv, &x, &y, &m); } else if (dims == GAIA_XY_Z_M) { gaiaGetPointXYZM (coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (coords, iv, &x, &y); } buf_x = sqlite3_mprintf ("%.*f", precision, x - lastX); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, (y - lastY) * -1); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf ("M %s %s l ", buf_x, buf_y); else buf = sqlite3_mprintf ("%s %s ", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); lastX = x; lastY = y; if (iv == points - 1 && closePath == 1) gaiaAppendToOutBuffer (out_buf, "z "); else gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } static void SvgPathAbsolute (gaiaOutBufferPtr out_buf, int dims, int points, double *coords, int precision, int closePath) { /* formats LINESTRING as SVG-path d-attribute with relative coordinate moves */ char *buf_x; char *buf_y; char *buf; double x; double y; double z; double m; int iv; for (iv = 0; iv < points; iv++) { if (dims == GAIA_XY_Z) { gaiaGetPointXYZ (coords, iv, &x, &y, &z); } else if (dims == GAIA_XY_M) { gaiaGetPointXYM (coords, iv, &x, &y, &m); } else if (dims == GAIA_XY_Z_M) { gaiaGetPointXYZM (coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (coords, iv, &x, &y); } buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y * -1); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf ("M %s %s L ", buf_x, buf_y); else buf = sqlite3_mprintf ("%s %s ", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); if (iv == points - 1 && closePath == 1) gaiaAppendToOutBuffer (out_buf, "z "); else gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } } GAIAGEO_DECLARE void gaiaOutSvg (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom, int relative, int precision) { /* prints the SVG representation of current geometry */ int pts = 0; int lns = 0; int pgs = 0; int ib; gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr ring; if (precision > 18) precision = 18; if (!geom) return; point = geom->FirstPoint; while (point) { /* counting how many POINTs are there */ pts++; point = point->Next; } line = geom->FirstLinestring; while (line) { /* counting how many LINESTRINGs are there */ lns++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* counting how many POLYGONs are there */ pgs++; polyg = polyg->Next; } if ((pts + lns + pgs) == 1) { /* we have only one elementary geometry */ point = geom->FirstPoint; while (point) { /* processing POINT */ if (relative == 1) SvgCoords (out_buf, point, precision); else SvgCircle (out_buf, point, precision); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRING */ if (relative == 1) SvgPathRelative (out_buf, line->DimensionModel, line->Points, line->Coords, precision, 0); else SvgPathAbsolute (out_buf, line->DimensionModel, line->Points, line->Coords, precision, 0); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* process exterior and interior rings */ ring = polyg->Exterior; if (relative == 1) { SvgPathRelative (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; SvgPathRelative (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); } } else { SvgPathAbsolute (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; SvgPathAbsolute (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); } } polyg = polyg->Next; } } else { /* we have some kind of complex geometry */ if (pts > 0 && lns == 0 && pgs == 0) { /* this one is a MULTIPOINT */ point = geom->FirstPoint; while (point) { /* processing POINTs */ if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ","); if (relative == 1) SvgCoords (out_buf, point, precision); else SvgCircle (out_buf, point, precision); point = point->Next; } } else if (pts == 0 && lns > 0 && pgs == 0) { /* this one is a MULTILINESTRING */ line = geom->FirstLinestring; while (line) { /* processing LINESTRINGs */ if (relative == 1) SvgPathRelative (out_buf, line->DimensionModel, line->Points, line->Coords, precision, 0); else SvgPathAbsolute (out_buf, line->DimensionModel, line->Points, line->Coords, precision, 0); line = line->Next; } } else if (pts == 0 && lns == 0 && pgs > 0) { /* this one is a MULTIPOLYGON */ polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGONs */ ring = polyg->Exterior; if (relative == 1) { SvgPathRelative (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; SvgPathRelative (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); } } else { SvgPathAbsolute (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; SvgPathAbsolute (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); } } polyg = polyg->Next; } } else { /* this one is a GEOMETRYCOLLECTION */ int ie = 0; point = geom->FirstPoint; while (point) { /* processing POINTs */ if (ie > 0) { gaiaAppendToOutBuffer (out_buf, ";"); } ie++; if (relative == 1) SvgCoords (out_buf, point, precision); else SvgCircle (out_buf, point, precision); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRINGs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ";"); ie++; if (relative == 1) SvgPathRelative (out_buf, line->DimensionModel, line->Points, line->Coords, precision, 0); else SvgPathAbsolute (out_buf, line->DimensionModel, line->Points, line->Coords, precision, 0); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGONs */ ie++; /* process exterior and interior rings */ ring = polyg->Exterior; if (relative == 1) { SvgPathRelative (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; SvgPathRelative (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); } } else { SvgPathAbsolute (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; SvgPathAbsolute (out_buf, ring->DimensionModel, ring->Points, ring->Coords, precision, 1); } } polyg = polyg->Next; } } } if (out_buf->Error == 0 && out_buf->WriteOffset > 0) { /* sandro 2012-02-23 cleaning extra trailing spaces */ int i; for (i = out_buf->WriteOffset - 1; i >= 0; i--) { if (*(out_buf->Buffer + i) == ' ') { *(out_buf->Buffer + i) = '\0'; out_buf->WriteOffset -= 1; } else break; } } } /* END of Klaus Foerster SVG implementation */ static char * XmlClean (const char *string) { /* well formatting a text string for XML */ int ind; char *clean; char *p_out; int len = strlen (string); clean = malloc (len * 3); if (!clean) return NULL; p_out = clean; for (ind = 0; ind < len; ind++) { /* masking XML special chars */ switch (string[ind]) { case '&': *p_out++ = '&'; *p_out++ = 'a'; *p_out++ = 'm'; *p_out++ = 'p'; *p_out++ = ';'; break; case '<': *p_out++ = '&'; *p_out++ = 'l'; *p_out++ = 't'; *p_out++ = ';'; break; case '>': *p_out++ = '&'; *p_out++ = 'g'; *p_out++ = 't'; *p_out++ = ';'; break; case '"': *p_out++ = '&'; *p_out++ = 'q'; *p_out++ = 'u'; *p_out++ = 'o'; *p_out++ = 't'; *p_out++ = ';'; break; default: *p_out++ = string[ind]; break; }; } *p_out = '\0'; return clean; } static void out_kml_point (gaiaOutBufferPtr out_buf, gaiaPointPtr point, int precision) { /* formats POINT as KML [x,y] */ char *buf_x = NULL; char *buf_y = NULL; char *buf_z = NULL; char *buf = NULL; buf_x = sqlite3_mprintf ("%.*f", precision, point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, point->Y); gaiaOutClean (buf_y); if (point->DimensionModel == GAIA_XY_Z || point->DimensionModel == GAIA_XY_Z_M) { buf_z = sqlite3_mprintf ("%.*f", precision, point->Z); gaiaOutClean (buf_z); } gaiaAppendToOutBuffer (out_buf, ""); if (point->DimensionModel == GAIA_XY_Z || point->DimensionModel == GAIA_XY_Z_M) { buf = sqlite3_mprintf ("%s,%s,%s", buf_x, buf_y, buf_z); sqlite3_free (buf_z); } else buf = sqlite3_mprintf ("%s,%s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); gaiaAppendToOutBuffer (out_buf, ""); } static void out_kml_linestring (gaiaOutBuffer * out_buf, int dims, int points, double *coords, int precision) { /* formats LINESTRING as KML [x,y] */ char *buf_x = NULL; char *buf_y = NULL; char *buf_z = NULL; char *buf = NULL; int iv; double x = 0.0; double y = 0.0; double z = 0.0; double m = 0.0; gaiaAppendToOutBuffer (out_buf, ""); for (iv = 0; iv < points; iv++) { /* exporting vertices */ if (dims == GAIA_XY_Z) { gaiaGetPointXYZ (coords, iv, &x, &y, &z); } else if (dims == GAIA_XY_M) { gaiaGetPointXYM (coords, iv, &x, &y, &m); } else if (dims == GAIA_XY_Z_M) { gaiaGetPointXYZM (coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (coords, iv, &x, &y); } buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (dims == GAIA_XY_Z || dims == GAIA_XY_Z_M) { buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf ("%s,%s,%s", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (" %s,%s,%s", buf_x, buf_y, buf_z); sqlite3_free (buf_z); } else { if (iv == 0) buf = sqlite3_mprintf ("%s,%s", buf_x, buf_y); else buf = sqlite3_mprintf (" %s,%s", buf_x, buf_y); } sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } gaiaAppendToOutBuffer (out_buf, ""); } static void out_kml_polygon (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polygon, int precision) { /* formats POLYGON as KML [x,y] */ char *buf_x = NULL; char *buf_y = NULL; char *buf_z = NULL; char *buf = NULL; gaiaRingPtr ring; int iv; int ib; double x = 0.0; double y = 0.0; double z = 0.0; double m = 0.0; gaiaAppendToOutBuffer (out_buf, ""); gaiaAppendToOutBuffer (out_buf, ""); ring = polygon->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* exporting vertices [Exterior Ring] */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (ring->DimensionModel == GAIA_XY_Z || ring->DimensionModel == GAIA_XY_Z_M) { buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf ("%s,%s,%s", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (" %s,%s,%s", buf_x, buf_y, buf_z); sqlite3_free (buf_z); } else { if (iv == 0) buf = sqlite3_mprintf ("%s,%s", buf_x, buf_y); else buf = sqlite3_mprintf (" %s,%s", buf_x, buf_y); } sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } gaiaAppendToOutBuffer (out_buf, ""); for (ib = 0; ib < polygon->NumInteriors; ib++) { /* interior rings */ ring = polygon->Interiors + ib; gaiaAppendToOutBuffer (out_buf, ""); for (iv = 0; iv < ring->Points; iv++) { /* exporting vertices [Interior Ring] */ if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (ring->DimensionModel == GAIA_XY_Z || ring->DimensionModel == GAIA_XY_Z_M) { buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf ("%s,%s,%s", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (" %s,%s,%s", buf_x, buf_y, buf_z); sqlite3_free (buf_z); } else { if (iv == 0) buf = sqlite3_mprintf ("%s,%s", buf_x, buf_y); else buf = sqlite3_mprintf (" %s,%s", buf_x, buf_y); } sqlite3_free (buf_x); sqlite3_free (buf_y); gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } gaiaAppendToOutBuffer (out_buf, ""); } gaiaAppendToOutBuffer (out_buf, ""); } GAIAGEO_DECLARE void gaiaOutFullKml (gaiaOutBufferPtr out_buf, const char *name, const char *desc, gaiaGeomCollPtr geom, int precision) { /* prints the 'full' KML representation of current geometry */ gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; int count = 0; char *xml_clean; if (!geom) return; if (precision > 18) precision = 18; /* counting how many elementary geometries are there */ point = geom->FirstPoint; while (point) { count++; point = point->Next; } line = geom->FirstLinestring; while (line) { count++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { count++; polyg = polyg->Next; } if (count == 1) { if (geom->DeclaredType == GAIA_MULTIPOINT || geom->DeclaredType == GAIA_MULTILINESTRING || geom->DeclaredType == GAIA_MULTIPOLYGON || geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) count = 2; } gaiaAppendToOutBuffer (out_buf, ""); xml_clean = XmlClean (name); if (xml_clean) { gaiaAppendToOutBuffer (out_buf, xml_clean); free (xml_clean); } else gaiaAppendToOutBuffer (out_buf, " "); gaiaAppendToOutBuffer (out_buf, ""); xml_clean = XmlClean (desc); if (xml_clean) { gaiaAppendToOutBuffer (out_buf, xml_clean); free (xml_clean); } else gaiaAppendToOutBuffer (out_buf, " "); gaiaAppendToOutBuffer (out_buf, ""); if (count > 1) { /* MultiGeometry start */ gaiaAppendToOutBuffer (out_buf, ""); } point = geom->FirstPoint; while (point) { /* processing POINT */ out_kml_point (out_buf, point, precision); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRING */ out_kml_linestring (out_buf, line->DimensionModel, line->Points, line->Coords, precision); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGON */ out_kml_polygon (out_buf, polyg, precision); polyg = polyg->Next; } if (count > 1) { /* MultiGeometry end */ gaiaAppendToOutBuffer (out_buf, ""); } gaiaAppendToOutBuffer (out_buf, ""); } GAIAGEO_DECLARE void gaiaOutBareKml (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom, int precision) { /* prints the 'bare' KML representation of current geometry */ gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; int count = 0; if (!geom) return; if (precision > 18) precision = 18; /* counting how many elementary geometries are there */ point = geom->FirstPoint; while (point) { count++; point = point->Next; } line = geom->FirstLinestring; while (line) { count++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { count++; polyg = polyg->Next; } if (count == 1) { if (geom->DeclaredType == GAIA_MULTIPOINT || geom->DeclaredType == GAIA_MULTILINESTRING || geom->DeclaredType == GAIA_MULTIPOLYGON || geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) count = 2; } if (count > 1) { /* MultiGeometry start */ gaiaAppendToOutBuffer (out_buf, ""); } point = geom->FirstPoint; while (point) { /* processing POINT */ out_kml_point (out_buf, point, precision); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRING */ out_kml_linestring (out_buf, line->DimensionModel, line->Points, line->Coords, precision); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGON */ out_kml_polygon (out_buf, polyg, precision); polyg = polyg->Next; } if (count > 1) { /* MultiGeometry end */ gaiaAppendToOutBuffer (out_buf, ""); } } GAIAGEO_DECLARE void gaiaOutGml (gaiaOutBufferPtr out_buf, int version, int precision, gaiaGeomCollPtr geom) { /* / prints the GML representation of current geometry / *result* returns the encoded GML or NULL if any error is encountered */ gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr ring; int iv; int ib; double x; double y; double z; double m; int has_z; int is_multi = 1; int is_coll = 0; char buf[2048]; char *xbuf; char *buf_x; char *buf_y; char *buf_z; if (!geom) return; if (precision > 18) precision = 18; switch (geom->DeclaredType) { case GAIA_POINT: case GAIA_LINESTRING: case GAIA_POLYGON: *buf = '\0'; is_multi = 0; break; case GAIA_MULTIPOINT: if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); break; case GAIA_MULTILINESTRING: if (version == 3) { if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); } else { if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); } break; case GAIA_MULTIPOLYGON: if (version == 3) { if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); } else { if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); } break; default: if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); is_coll = 1; break; }; gaiaAppendToOutBuffer (out_buf, buf); point = geom->FirstPoint; while (point) { /* processing POINT */ if (is_multi) { if (is_coll) strcpy (buf, ""); else strcpy (buf, ""); strcat (buf, ""); } else { if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); } if (version == 3) { if (point->DimensionModel == GAIA_XY_Z || point->DimensionModel == GAIA_XY_Z_M) strcat (buf, ""); else strcat (buf, ""); } else strcat (buf, ""); gaiaAppendToOutBuffer (out_buf, buf); buf_x = sqlite3_mprintf ("%.*f", precision, point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, point->Y); gaiaOutClean (buf_y); if (point->DimensionModel == GAIA_XY_Z || point->DimensionModel == GAIA_XY_Z_M) { buf_z = sqlite3_mprintf ("%.*f", precision, point->Z); gaiaOutClean (buf_z); if (version == 3) { xbuf = sqlite3_mprintf ("%s %s %s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } else { xbuf = sqlite3_mprintf ("%s,%s,%s", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } } else { if (version == 3) { xbuf = sqlite3_mprintf ("%s %s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } else { xbuf = sqlite3_mprintf ("%s,%s", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } } gaiaAppendToOutBuffer (out_buf, xbuf); sqlite3_free (xbuf); if (version == 3) strcpy (buf, ""); else strcpy (buf, ""); if (is_multi) { strcat (buf, ""); if (is_coll) strcat (buf, ""); else strcat (buf, ""); } else strcat (buf, ""); gaiaAppendToOutBuffer (out_buf, buf); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRING */ if (is_multi) { if (version == 3) { if (is_coll) strcpy (buf, ""); else strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); strcat (buf, ""); if (line->DimensionModel == GAIA_XY_Z || line->DimensionModel == GAIA_XY_Z_M) strcat (buf, ""); else strcat (buf, ""); } else { if (is_coll) strcpy (buf, ""); else strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); } } else { if (version == 3) { if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); strcat (buf, ""); strcat (buf, ""); if (line->DimensionModel == GAIA_XY_Z || line->DimensionModel == GAIA_XY_Z_M) strcat (buf, ""); else strcat (buf, ""); } else { if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); strcat (buf, ""); } } gaiaAppendToOutBuffer (out_buf, buf); for (iv = 0; iv < line->Points; iv++) { /* exporting vertices */ has_z = 0; if (line->DimensionModel == GAIA_XY_Z) { has_z = 1; gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { has_z = 1; gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (iv == 0) *buf = '\0'; else strcpy (buf, " "); if (has_z) { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (version == 3) { xbuf = sqlite3_mprintf ("%s%s %s %s", buf, buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } else { xbuf = sqlite3_mprintf ("%s%s,%s,%s", buf, buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } } else { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (version == 3) { xbuf = sqlite3_mprintf ("%s%s %s", buf, buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } else { xbuf = sqlite3_mprintf ("%s%s,%s", buf, buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } } gaiaAppendToOutBuffer (out_buf, xbuf); sqlite3_free (xbuf); } if (is_multi) { if (version == 3) { strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); strcat (buf, ""); if (is_coll) strcat (buf, ""); else strcat (buf, ""); } else { strcpy (buf, ""); strcat (buf, "
"); if (is_coll) strcat (buf, ""); else strcat (buf, ""); } } else { if (version == 3) { strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); strcat (buf, ""); } else { strcpy (buf, ""); strcat (buf, ""); } } gaiaAppendToOutBuffer (out_buf, buf); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGON */ ring = polyg->Exterior; if (is_multi) { if (version == 3) { if (is_coll) strcpy (buf, ""); else strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); strcat (buf, ""); if (ring->DimensionModel == GAIA_XY_Z || ring->DimensionModel == GAIA_XY_Z_M) strcat (buf, ""); else strcat (buf, ""); } else { if (is_coll) strcpy (buf, ""); else strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); strcat (buf, ""); strcat (buf, ""); } } else { if (geom->Srid <= 0) strcpy (buf, ""); else sprintf (buf, "", geom->Srid); if (version == 3) { strcat (buf, ""); strcat (buf, ""); if (ring->DimensionModel == GAIA_XY_Z || ring->DimensionModel == GAIA_XY_Z_M) strcat (buf, ""); else strcat (buf, ""); } else { strcat (buf, ""); strcat (buf, ""); strcat (buf, ""); } } gaiaAppendToOutBuffer (out_buf, buf); for (iv = 0; iv < ring->Points; iv++) { /* exporting vertices [Interior Ring] */ has_z = 0; if (ring->DimensionModel == GAIA_XY_Z) { has_z = 1; gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { has_z = 1; gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } if (iv == 0) *buf = '\0'; else strcpy (buf, " "); if (has_z) { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (version == 3) { xbuf = sqlite3_mprintf ("%s%s %s %s", buf, buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } else { xbuf = sqlite3_mprintf ("%s%s,%s,%s", buf, buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } } else { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (version == 3) { xbuf = sqlite3_mprintf ("%s%s %s", buf, buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } else { xbuf = sqlite3_mprintf ("%s%s,%s", buf, buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } } gaiaAppendToOutBuffer (out_buf, xbuf); sqlite3_free (xbuf); } /* closing the Exterior Ring */ if (version == 3) { strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); } else { strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); } gaiaAppendToOutBuffer (out_buf, buf); for (ib = 0; ib < polyg->NumInteriors; ib++) { /* interior rings */ ring = polyg->Interiors + ib; if (version == 3) { strcpy (buf, ""); strcat (buf, ""); if (ring->DimensionModel == GAIA_XY_Z || ring->DimensionModel == GAIA_XY_Z_M) strcat (buf, ""); else strcat (buf, ""); } else { strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); } gaiaAppendToOutBuffer (out_buf, buf); for (iv = 0; iv < ring->Points; iv++) { /* exporting vertices [Interior Ring] */ has_z = 0; if (ring->DimensionModel == GAIA_XY_Z) { has_z = 1; gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { has_z = 1; gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } if (iv == 0) *buf = '\0'; else strcpy (buf, " "); if (has_z) { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (version == 3) { xbuf = sqlite3_mprintf ("%s%s %s %s", buf, buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } else { xbuf = sqlite3_mprintf ("%s%s,%s,%s", buf, buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } } else { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (version == 3) { xbuf = sqlite3_mprintf ("%s%s %s", buf, buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } else { xbuf = sqlite3_mprintf ("%s%s,%s", buf, buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } } gaiaAppendToOutBuffer (out_buf, xbuf); sqlite3_free (xbuf); } /* closing the Interior Ring */ if (version == 3) { strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); } else { strcpy (buf, ""); strcat (buf, ""); strcat (buf, ""); } gaiaAppendToOutBuffer (out_buf, buf); } /* closing the Polygon */ if (is_multi) { if (version == 3) { strcpy (buf, ""); if (is_coll) strcat (buf, ""); else strcat (buf, ""); } else { strcpy (buf, ""); if (is_coll) strcat (buf, ""); else strcat (buf, ""); } } else strcpy (buf, ""); gaiaAppendToOutBuffer (out_buf, buf); polyg = polyg->Next; } switch (geom->DeclaredType) { case GAIA_POINT: case GAIA_LINESTRING: case GAIA_POLYGON: *buf = '\0'; break; case GAIA_MULTIPOINT: sprintf (buf, ""); break; case GAIA_MULTILINESTRING: if (version == 3) sprintf (buf, ""); else sprintf (buf, ""); break; case GAIA_MULTIPOLYGON: if (version == 3) sprintf (buf, ""); else sprintf (buf, ""); break; default: sprintf (buf, ""); break; }; gaiaAppendToOutBuffer (out_buf, buf); } GAIAGEO_DECLARE void gaiaOutGeoJSON (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom, int precision, int options) { /* / prints the GeoJSON representation of current geometry / *result* returns the encoded GeoJSON or NULL if any error is encountered */ gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr ring; int iv; int ib; double x; double y; double z; double m; int has_z; int is_multi = 0; int multi_count = 0; char *bbox; char crs[2048]; char *buf; char *buf_x; char *buf_y; char *buf_m; char *buf_z; char endJson[16]; if (!geom) return; if (precision > 18) precision = 18; if (options != 0) { bbox = NULL; *crs = '\0'; if (geom->Srid > 0) { if (options == 2 || options == 3) { /* including short CRS */ sprintf (crs, ",\"crs\":{\"type\":\"name\",\"properties\":{\"name\":\"EPSG:%d\"}}", geom->Srid); } if (options == 4 || options == 5) { /* including long CRS */ sprintf (crs, ",\"crs\":{\"type\":\"name\",\"properties\":{\"name\":\"urn:ogc:def:crs:EPSG:%d\"}}", geom->Srid); } } if (options == 1 || options == 3 || options == 5) { /* including BBOX */ gaiaMbrGeometry (geom); buf_x = sqlite3_mprintf ("%.*f", precision, geom->MinX); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, geom->MinY); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%.*f", precision, geom->MaxX); gaiaOutClean (buf_z); buf_m = sqlite3_mprintf ("%.*f", precision, geom->MaxY); gaiaOutClean (buf_m); bbox = sqlite3_mprintf (",\"bbox\":[%s,%s,%s,%s]", buf_x, buf_y, buf_z, buf_m); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); sqlite3_free (buf_m); } switch (geom->DeclaredType) { case GAIA_POINT: buf = sqlite3_mprintf ("{\"type\":\"Point\"%s%s,\"coordinates\":", crs, bbox); strcpy (endJson, "}"); break; case GAIA_LINESTRING: buf = sqlite3_mprintf ("{\"type\":\"LineString\"%s%s,\"coordinates\":[", crs, bbox); strcpy (endJson, "}"); break; case GAIA_POLYGON: buf = sqlite3_mprintf ("{\"type\":\"Polygon\"%s%s,\"coordinates\":[", crs, bbox); strcpy (endJson, "}"); break; case GAIA_MULTIPOINT: buf = sqlite3_mprintf ("{\"type\":\"MultiPoint\"%s%s,\"coordinates\":[", crs, bbox); strcpy (endJson, "]}"); break; case GAIA_MULTILINESTRING: buf = sqlite3_mprintf ("{\"type\":\"MultiLineString\"%s%s,\"coordinates\":[[", crs, bbox); strcpy (endJson, "]}"); break; case GAIA_MULTIPOLYGON: buf = sqlite3_mprintf ("{\"type\":\"MultiPolygon\"%s%s,\"coordinates\":[[", crs, bbox); strcpy (endJson, "]}"); break; default: buf = sqlite3_mprintf ("{\"type\":\"GeometryCollection\"%s%s,\"geometries\":[", crs, bbox); strcpy (endJson, "]}"); is_multi = 1; break; }; if (bbox) sqlite3_free (bbox); } else { /* omitting BBOX */ switch (geom->DeclaredType) { case GAIA_POINT: buf = sqlite3_mprintf ("{\"type\":\"Point\",\"coordinates\":"); strcpy (endJson, "}"); break; case GAIA_LINESTRING: buf = sqlite3_mprintf ("{\"type\":\"LineString\",\"coordinates\":["); strcpy (endJson, "}"); break; case GAIA_POLYGON: buf = sqlite3_mprintf ("{\"type\":\"Polygon\",\"coordinates\":["); strcpy (endJson, "}"); break; case GAIA_MULTIPOINT: buf = sqlite3_mprintf ("{\"type\":\"MultiPoint\",\"coordinates\":["); strcpy (endJson, "]}"); break; case GAIA_MULTILINESTRING: buf = sqlite3_mprintf ("{\"type\":\"MultiLineString\",\"coordinates\":[["); strcpy (endJson, "]}"); break; case GAIA_MULTIPOLYGON: buf = sqlite3_mprintf ("{\"type\":\"MultiPolygon\",\"coordinates\":[["); strcpy (endJson, "]}"); break; default: buf = sqlite3_mprintf ("{\"type\":\"GeometryCollection\",\"geometries\":["); strcpy (endJson, "]}"); is_multi = 1; break; }; } gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); point = geom->FirstPoint; while (point) { /* processing POINT */ if (is_multi) { if (multi_count > 0) buf = ",{\"type\":\"Point\",\"coordinates\":"; else buf = "{\"type\":\"Point\",\"coordinates\":"; gaiaAppendToOutBuffer (out_buf, buf); } else if (point != geom->FirstPoint) { /* adding a further Point */ gaiaAppendToOutBuffer (out_buf, ","); } buf_x = sqlite3_mprintf ("%.*f", precision, point->X); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, point->Y); gaiaOutClean (buf_y); has_z = 0; if (point->DimensionModel == GAIA_XY_Z || point->DimensionModel == GAIA_XY_Z_M) { buf_z = sqlite3_mprintf ("%.*f", precision, point->Z); gaiaOutClean (buf_z); has_z = 1; } if (has_z) { buf = sqlite3_mprintf ("[%s,%s,%s]", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } else { buf = sqlite3_mprintf ("[%s,%s]", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); if (is_multi) { gaiaAppendToOutBuffer (out_buf, "}"); multi_count++; } point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRING */ if (is_multi) { if (multi_count > 0) buf = ",{\"type\":\"LineString\",\"coordinates\":["; else buf = "{\"type\":\"LineString\",\"coordinates\":["; gaiaAppendToOutBuffer (out_buf, buf); } else if (line != geom->FirstLinestring) { /* opening a further LineString */ gaiaAppendToOutBuffer (out_buf, ",["); } for (iv = 0; iv < line->Points; iv++) { /* exporting vertices */ has_z = 0; if (line->DimensionModel == GAIA_XY_Z) { has_z = 1; gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { has_z = 1; gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (has_z) { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf ("[%s,%s,%s]", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (",[%s,%s,%s]", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } else { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf ("[%s,%s]", buf_x, buf_y); else buf = sqlite3_mprintf (",[%s,%s]", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } /* closing the LineString */ gaiaAppendToOutBuffer (out_buf, "]"); if (is_multi) { gaiaAppendToOutBuffer (out_buf, "}"); multi_count++; } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGON */ if (is_multi) { if (multi_count > 0) buf = ",{\"type\":\"Polygon\",\"coordinates\":["; else buf = "{\"type\":\"Polygon\",\"coordinates\":["; gaiaAppendToOutBuffer (out_buf, buf); } else if (polyg != geom->FirstPolygon) { /* opening a further Polygon */ gaiaAppendToOutBuffer (out_buf, ",["); } ring = polyg->Exterior; for (iv = 0; iv < ring->Points; iv++) { /* exporting vertices [Interior Ring] */ has_z = 0; if (ring->DimensionModel == GAIA_XY_Z) { has_z = 1; gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { has_z = 1; gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } if (has_z) { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf ("[[%s,%s,%s]", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (",[%s,%s,%s]", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } else { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf ("[[%s,%s]", buf_x, buf_y); else buf = sqlite3_mprintf (",[%s,%s]", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } /* closing the Exterior Ring */ gaiaAppendToOutBuffer (out_buf, "]"); for (ib = 0; ib < polyg->NumInteriors; ib++) { /* interior rings */ ring = polyg->Interiors + ib; for (iv = 0; iv < ring->Points; iv++) { /* exporting vertices [Interior Ring] */ has_z = 0; if (ring->DimensionModel == GAIA_XY_Z) { has_z = 1; gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { has_z = 1; gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } if (has_z) { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); buf_z = sqlite3_mprintf ("%.*f", precision, z); gaiaOutClean (buf_z); if (iv == 0) buf = sqlite3_mprintf (",[[%s,%s,%s]", buf_x, buf_y, buf_z); else buf = sqlite3_mprintf (",[%s,%s,%s]", buf_x, buf_y, buf_z); sqlite3_free (buf_x); sqlite3_free (buf_y); sqlite3_free (buf_z); } else { buf_x = sqlite3_mprintf ("%.*f", precision, x); gaiaOutClean (buf_x); buf_y = sqlite3_mprintf ("%.*f", precision, y); gaiaOutClean (buf_y); if (iv == 0) buf = sqlite3_mprintf (",[[%s,%s]", buf_x, buf_y); else buf = sqlite3_mprintf (",[%s,%s]", buf_x, buf_y); sqlite3_free (buf_x); sqlite3_free (buf_y); } gaiaAppendToOutBuffer (out_buf, buf); sqlite3_free (buf); } /* closing the Interior Ring */ gaiaAppendToOutBuffer (out_buf, "]"); } /* closing the Polygon */ gaiaAppendToOutBuffer (out_buf, "]"); if (is_multi) { gaiaAppendToOutBuffer (out_buf, "}"); multi_count++; } polyg = polyg->Next; } gaiaAppendToOutBuffer (out_buf, endJson); } libspatialite-4.3.0a/src/gaiageo/Gml.c0000664000175000017500000011117112544707704014512 00000000000000/* Driver template for the LEMON parser generator. ** The author disclaims copyright to this source code. */ /* First off, code is included that follows the "include" declaration ** in the input grammar file. */ #include /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ /* ** These constants (all generated automatically by the parser generator) ** specify the various kinds of tokens (terminals) that the parser ** understands. ** ** Each symbol here is a terminal symbol in the grammar. */ /* Make sure the INTERFACE macro is defined. */ #ifndef INTERFACE #define INTERFACE 1 #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. ** YYCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. ** YYNOCODE is a number of type YYCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. ** YYFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. ** YYACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** ParseTOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. ** YYMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is ParseTOKENTYPE. The entry in the union ** for base tokens is called "yy0". ** YYSTACKDEPTH is the maximum depth of the parser's stack. If ** zero the stack is dynamically sized using realloc() ** ParseARG_SDECL A static variable declaration for the %extra_argument ** ParseARG_PDECL A parameter declaration for the %extra_argument ** ParseARG_STORE Code to store %extra_argument into yypParser ** ParseARG_FETCH Code to extract %extra_argument from yypParser ** YYNSTATE the combined number of states. ** YYNRULE the number of rules in the grammar ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ #define YYCODETYPE unsigned char #define YYNOCODE 28 #define YYACTIONTYPE unsigned char #define ParseTOKENTYPE void * typedef union { int yyinit; ParseTOKENTYPE yy0; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 1000000 #endif #define ParseARG_SDECL struct gml_data *p_data ; #define ParseARG_PDECL , struct gml_data *p_data #define ParseARG_FETCH struct gml_data *p_data = yypParser->p_data #define ParseARG_STORE yypParser->p_data = p_data #define YYNSTATE 49 #define YYNRULE 34 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) /* The yyzerominor constant is used to initialize instances of ** YYMINORTYPE objects to zero. */ static const YYMINORTYPE yyzerominor = { 0 }; /* Define the yytestcase() macro to be a no-op if is not already defined ** otherwise. ** ** Applications can choose to define yytestcase() in the %include section ** to a macro that can assist in verifying code coverage. For production ** code the yytestcase() macro should be turned off. But it is useful ** for testing. */ #ifndef yytestcase #define yytestcase(X) #endif /* Next are the tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement ** functions that take a state number and lookahead value and return an ** action integer. ** ** Suppose the action integer is N. Then the action is determined as ** follows ** ** 0 <= N < YYNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** ** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. ** ** N == YYNSTATE+YYNRULE A syntax error has occurred. ** ** N == YYNSTATE+YYNRULE+1 The parser accepts its input. ** ** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused ** slots in the yy_action[] table. ** ** The action table is constructed as a single large table named yy_action[]. ** Given state S and lookahead X, the action is computed as ** ** yy_action[ yy_shift_ofst[S] + X ] ** ** If the index value yy_shift_ofst[S]+X is out of range or if the value ** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] ** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table ** and that yy_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after ** a reduce action) then the yy_reduce_ofst[] array is used in place of ** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of ** YY_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** ** yy_action[] A single table containing all actions. ** yy_lookahead[] A table containing the lookahead for each entry in ** yy_action. Used to detect hash collisions. ** yy_shift_ofst[] For each state, the offset into yy_action for ** shifting terminals. ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { /* 0 */ 20, 28, 29, 4, 48, 5, 3, 3, 5, 5, /* 10 */ 42, 84, 1, 42, 42, 47, 46, 2, 10, 5, /* 20 */ 21, 12, 32, 23, 42, 38, 22, 6, 49, 23, /* 30 */ 13, 19, 14, 15, 35, 8, 8, 10, 25, 11, /* 40 */ 18, 34, 33, 45, 37, 16, 40, 17, 41, 14, /* 50 */ 9, 23, 43, 7, 45, 27, 30, 26, 31, 36, /* 60 */ 39, 44, 24, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 12, 13, 14, 15, 16, 17, 15, 15, 17, 17, /* 10 */ 22, 10, 11, 22, 22, 24, 24, 15, 18, 17, /* 20 */ 2, 3, 8, 5, 22, 25, 2, 3, 0, 5, /* 30 */ 18, 19, 4, 20, 21, 20, 20, 18, 2, 3, /* 40 */ 2, 26, 26, 5, 25, 20, 21, 20, 21, 4, /* 50 */ 18, 5, 23, 20, 5, 1, 3, 23, 3, 7, /* 60 */ 3, 3, 6, }; #define YY_SHIFT_USE_DFLT (-1) #define YY_SHIFT_MAX 26 static const signed char yy_shift_ofst[] = { /* 0 */ -1, 28, 45, 45, 45, 18, 14, 14, 14, 46, /* 10 */ 46, 14, 14, 24, 38, 14, 14, 14, 49, 36, /* 20 */ 54, 53, 55, 56, 52, 57, 58, }; #define YY_REDUCE_USE_DFLT (-13) #define YY_REDUCE_MAX 18 static const signed char yy_reduce_ofst[] = { /* 0 */ 1, -12, -9, -8, 2, 12, 13, 15, 16, 0, /* 10 */ 19, 25, 27, 32, 29, 33, 33, 33, 34, }; static const YYACTIONTYPE yy_default[] = { /* 0 */ 50, 83, 72, 72, 54, 83, 60, 80, 80, 76, /* 10 */ 76, 61, 59, 83, 83, 64, 66, 62, 83, 83, /* 20 */ 83, 83, 83, 83, 83, 83, 83, 51, 52, 53, /* 30 */ 56, 57, 79, 81, 82, 65, 75, 77, 78, 58, /* 40 */ 67, 63, 68, 69, 70, 71, 73, 74, 55, }; #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: ** ** %fallback ID X Y Z. ** ** appears in the grammar, then ID becomes a fallback token for X, Y, ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ #ifdef YYFALLBACK static const YYCODETYPE yyFallback[] = { }; #endif /* YYFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: ** ** + The state number for the parser at this level of the stack. ** ** + The value of the token stored at this level of the stack. ** (In other words, the "major" token.) ** ** + The semantic value stored at this level of the stack. This is ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ struct yyStackEntry { YYACTIONTYPE stateno; /* The state-number */ YYCODETYPE major; /* The major token value. This is the code ** number for the token at this stack level */ YYMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ struct yyParser { int yyidx; /* Index of top element in stack */ #ifdef YYTRACKMAXSTACKDEPTH int yyidxMax; /* Maximum value of yyidx */ #endif int yyerrcnt; /* Shifts left before out of the error */ ParseARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 int yystksz; /* Current side of the stack */ yyStackEntry *yystack; /* The parser's stack */ #else yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ #endif }; typedef struct yyParser yyParser; #ifndef NDEBUG #include static FILE *yyTraceFILE = 0; static char *yyTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG /* ** Turn parser tracing on by giving a stream to which to write the trace ** and a prompt to preface each trace message. Tracing is turned off ** by making either argument NULL ** ** Inputs: **
    **
  • A FILE* to which trace output should be written. ** If NULL, then tracing is turned off. **
  • A prefix string written at the beginning of every ** line of trace output. If NULL, then tracing is ** turned off. **
** ** Outputs: ** None. */ void ParseTrace (FILE * TraceFILE, char *zTracePrompt) { yyTraceFILE = TraceFILE; yyTracePrompt = zTracePrompt; if (yyTraceFILE == 0) yyTracePrompt = 0; else if (yyTracePrompt == 0) yyTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ static const char *const yyTokenName[] = { "$", "GML_NEWLINE", "GML_END", "GML_CLOSE", "GML_OPEN", "GML_KEYWORD", "GML_EQ", "GML_VALUE", "GML_COORD", "error", "main", "in", "state", "program", "gml_tree", "node", "node_chain", "open_tag", "attr", "attributes", "coord", "coord_chain", "close_tag", "keyword", "extra_nodes", "extra_attr", "extra_coord", }; #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { /* 0 */ "main ::= in", /* 1 */ "in ::=", /* 2 */ "in ::= in state GML_NEWLINE", /* 3 */ "state ::= program", /* 4 */ "program ::= gml_tree", /* 5 */ "gml_tree ::= node", /* 6 */ "gml_tree ::= node_chain", /* 7 */ "node ::= open_tag GML_END GML_CLOSE", /* 8 */ "node ::= open_tag attr GML_END GML_CLOSE", /* 9 */ "node ::= open_tag attributes GML_END GML_CLOSE", /* 10 */ "node ::= open_tag GML_CLOSE", /* 11 */ "node ::= open_tag attr GML_CLOSE", /* 12 */ "node ::= open_tag attributes GML_CLOSE", /* 13 */ "node ::= open_tag GML_CLOSE coord", /* 14 */ "node ::= open_tag GML_CLOSE coord_chain", /* 15 */ "node ::= open_tag attr GML_CLOSE coord", /* 16 */ "node ::= open_tag attr GML_CLOSE coord_chain", /* 17 */ "node ::= open_tag attributes GML_CLOSE coord", /* 18 */ "node ::= open_tag attributes GML_CLOSE coord_chain", /* 19 */ "node ::= close_tag", /* 20 */ "open_tag ::= GML_OPEN keyword", /* 21 */ "close_tag ::= GML_OPEN GML_END keyword GML_CLOSE", /* 22 */ "keyword ::= GML_KEYWORD", /* 23 */ "extra_nodes ::=", /* 24 */ "extra_nodes ::= node extra_nodes", /* 25 */ "node_chain ::= node node extra_nodes", /* 26 */ "attr ::= GML_KEYWORD GML_EQ GML_VALUE", /* 27 */ "extra_attr ::=", /* 28 */ "extra_attr ::= attr extra_attr", /* 29 */ "attributes ::= attr attr extra_attr", /* 30 */ "coord ::= GML_COORD", /* 31 */ "extra_coord ::=", /* 32 */ "extra_coord ::= coord extra_coord", /* 33 */ "coord_chain ::= coord coord extra_coord", }; #endif /* NDEBUG */ #if YYSTACKDEPTH<=0 /* ** Try to increase the size of the parser stack. */ static void yyGrowStack (yyParser * p) { int newSize; yyStackEntry *pNew; newSize = p->yystksz * 2 + 100; pNew = realloc (p->yystack, newSize * sizeof (pNew[0])); if (pNew) { p->yystack = pNew; p->yystksz = newSize; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack grows to %d entries!\n", yyTracePrompt, p->yystksz); } #endif } } #endif /* ** This function allocates a new parser. ** The only argument is a pointer to a function which works like ** malloc. ** ** Inputs: ** A pointer to the function used to allocate memory. ** ** Outputs: ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ void * ParseAlloc (void *(*mallocProc) (size_t)) { yyParser *pParser; pParser = (yyParser *) (*mallocProc) ((size_t) sizeof (yyParser)); if (pParser) { pParser->yyidx = -1; #ifdef YYTRACKMAXSTACKDEPTH pParser->yyidxMax = 0; #endif #if YYSTACKDEPTH<=0 pParser->yystack = NULL; pParser->yystksz = 0; yyGrowStack (pParser); #endif } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ static void yy_destructor (yyParser * yypParser, /* The parser */ YYCODETYPE yymajor, /* Type code for object to destroy */ YYMINORTYPE * yypminor /* The object to be destroyed */ ) { switch (yymajor) { /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a ** reduce or during error processing or when a parser is ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those ** which appear on the RHS of the rule, but which are not used ** inside the C code. */ default: break; /* If no destructor action specified: do nothing */ } } /* ** Pop the parser's stack once. ** ** If there is a destructor routine associated with the token which ** is popped from the stack, then call it. ** ** Return the major token number for the symbol popped. */ static int yy_pop_parser_stack (yyParser * pParser) { YYCODETYPE yymajor; yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; if (pParser->yyidx < 0) return 0; #ifndef NDEBUG if (yyTraceFILE && pParser->yyidx >= 0) { fprintf (yyTraceFILE, "%sPopping %s\n", yyTracePrompt, yyTokenName[yytos->major]); } #endif yymajor = yytos->major; yy_destructor (pParser, yymajor, &yytos->minor); pParser->yyidx--; return yymajor; } /* ** Deallocate and destroy a parser. Destructors are all called for ** all stack elements before shutting the parser down. ** ** Inputs: **
    **
  • A pointer to the parser. This should be a pointer ** obtained from ParseAlloc. **
  • A pointer to a function used to reclaim memory obtained ** from malloc. **
*/ void ParseFree (void *p, /* The parser to be deleted */ void (*freeProc) (void *) /* Function used to reclaim memory */ ) { yyParser *pParser = (yyParser *) p; if (pParser == 0) return; while (pParser->yyidx >= 0) yy_pop_parser_stack (pParser); #if YYSTACKDEPTH<=0 free (pParser->yystack); #endif (*freeProc) ((void *) pParser); } /* ** Return the peak depth of the stack for a parser. */ #ifdef YYTRACKMAXSTACKDEPTH int ParseStackPeak (void *p) { yyParser *pParser = (yyParser *) p; return pParser->yyidxMax; } #endif /* ** Find the appropriate action for a parser given the terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_shift_action (yyParser * pParser, /* The parser */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; int stateno = pParser->yystack[pParser->yyidx].stateno; if (stateno > YY_SHIFT_MAX || (i = yy_shift_ofst[stateno]) == YY_SHIFT_USE_DFLT) { return yy_default[stateno]; } assert (iLookAhead != YYNOCODE); i += iLookAhead; if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { if (iLookAhead > 0) { #ifdef YYFALLBACK YYCODETYPE iFallback; /* Fallback token */ if (iLookAhead < sizeof (yyFallback) / sizeof (yyFallback[0]) && (iFallback = yyFallback[iLookAhead]) != 0) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFALLBACK %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); } #endif return yy_find_shift_action (pParser, iFallback); } #endif #ifdef YYWILDCARD { int j = i - iLookAhead + YYWILDCARD; if (j >= 0 && j < YY_SZ_ACTTAB && yy_lookahead[j] == YYWILDCARD) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sWILDCARD %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); } #endif /* NDEBUG */ return yy_action[j]; } } #endif /* YYWILDCARD */ } return yy_default[stateno]; } else { return yy_action[i]; } } /* ** Find the appropriate action for a parser given the non-terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_reduce_action (int stateno, /* Current state number */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; #ifdef YYERRORSYMBOL if (stateno > YY_REDUCE_MAX) { return yy_default[stateno]; } #else assert (stateno <= YY_REDUCE_MAX); #endif i = yy_reduce_ofst[stateno]; assert (i != YY_REDUCE_USE_DFLT); assert (iLookAhead != YYNOCODE); i += iLookAhead; #ifdef YYERRORSYMBOL if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { return yy_default[stateno]; } #else assert (i >= 0 && i < YY_SZ_ACTTAB); assert (yy_lookahead[i] == iLookAhead); #endif return yy_action[i]; } /* ** The following routine is called if the stack overflows. */ static void yyStackOverflow (yyParser * yypParser, YYMINORTYPE * yypMinor) { ParseARG_FETCH; yypParser->yyidx--; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ spatialite_e ("Giving up. Parser stack overflow\n"); ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ } /* ** Perform a shift action. */ static void yy_shift (yyParser * yypParser, /* The parser to be shifted */ int yyNewState, /* The new state to shift in */ int yyMajor, /* The major token to shift in */ YYMINORTYPE * yypMinor /* Pointer to the minor token to shift in */ ) { yyStackEntry *yytos; yypParser->yyidx++; #ifdef YYTRACKMAXSTACKDEPTH if (yypParser->yyidx > yypParser->yyidxMax) { yypParser->yyidxMax = yypParser->yyidx; } #endif #if YYSTACKDEPTH>0 if (yypParser->yyidx >= YYSTACKDEPTH) { yyStackOverflow (yypParser, yypMinor); return; } #else if (yypParser->yyidx >= yypParser->yystksz) { yyGrowStack (yypParser); if (yypParser->yyidx >= yypParser->yystksz) { yyStackOverflow (yypParser, yypMinor); return; } } #endif yytos = &yypParser->yystack[yypParser->yyidx]; yytos->stateno = (YYACTIONTYPE) yyNewState; yytos->major = (YYCODETYPE) yyMajor; yytos->minor = *yypMinor; #ifndef NDEBUG if (yyTraceFILE && yypParser->yyidx > 0) { int i; fprintf (yyTraceFILE, "%sShift %d\n", yyTracePrompt, yyNewState); fprintf (yyTraceFILE, "%sStack:", yyTracePrompt); for (i = 1; i <= yypParser->yyidx; i++) fprintf (yyTraceFILE, " %s", yyTokenName[yypParser->yystack[i].major]); fprintf (yyTraceFILE, "\n"); } #endif } /* The following table contains information about every rule that ** is used during the reduce. */ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ } yyRuleInfo[] = { { 10, 1}, { 11, 0}, { 11, 3}, { 12, 1}, { 13, 1}, { 14, 1}, { 14, 1}, { 15, 3}, { 15, 4}, { 15, 4}, { 15, 2}, { 15, 3}, { 15, 3}, { 15, 3}, { 15, 3}, { 15, 4}, { 15, 4}, { 15, 4}, { 15, 4}, { 15, 1}, { 17, 2}, { 22, 4}, { 23, 1}, { 24, 0}, { 24, 2}, { 16, 3}, { 18, 3}, { 25, 0}, { 25, 2}, { 19, 3}, { 20, 1}, { 26, 0}, { 26, 2}, { 21, 3},}; static void yy_accept (yyParser *); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. */ static void yy_reduce (yyParser * yypParser, /* The parser */ int yyruleno /* Number of the rule by which to reduce */ ) { int yygoto; /* The next state */ int yyact; /* The next action */ YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ yyStackEntry *yymsp; /* The top of the parser's stack */ int yysize; /* Amount to pop the stack */ ParseARG_FETCH; yymsp = &yypParser->yystack[yypParser->yyidx]; #ifndef NDEBUG if (yyTraceFILE && yyruleno >= 0 && yyruleno < (int) (sizeof (yyRuleName) / sizeof (yyRuleName[0]))) { fprintf (yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, yyRuleName[yyruleno]); } #endif /* NDEBUG */ /* Silence complaints from purify about yygotominor being uninitialized ** in some cases when it is copied into the stack after the following ** switch. yygotominor is uninitialized when a rule reduces that does ** not set the value of its left-hand side nonterminal. Leaving the ** value of the nonterminal uninitialized is utterly harmless as long ** as the value is never used. So really the only thing this code ** accomplishes is to quieten purify. ** ** 2007-01-16: The wireshark project (www.wireshark.org) reports that ** without this code, their parser segfaults. I'm not sure what there ** parser is doing to make this happen. This is the second bug report ** from wireshark this week. Clearly they are stressing Lemon in ways ** that it has not been previously stressed... (SQLite ticket #2172) */ /*memset(&yygotominor, 0, sizeof(yygotominor)); */ yygotominor = yyzerominor; switch (yyruleno) { /* Beginning here are the reduction cases. A typical example ** follows: ** case 0: ** #line ** { ... } // User supplied code ** #line ** break; */ case 5: /* gml_tree ::= node */ case 6: /* gml_tree ::= node_chain */ yytestcase (yyruleno == 6); { p_data->result = yymsp[0].minor.yy0; } break; case 7: /* node ::= open_tag GML_END GML_CLOSE */ { yygotominor.yy0 = gml_createSelfClosedNode (p_data, (void *) yymsp[-2].minor.yy0, NULL); } break; case 8: /* node ::= open_tag attr GML_END GML_CLOSE */ case 9: /* node ::= open_tag attributes GML_END GML_CLOSE */ yytestcase (yyruleno == 9); { yygotominor.yy0 = gml_createSelfClosedNode (p_data, (void *) yymsp[-3].minor.yy0, (void *) yymsp[-2].minor.yy0); } break; case 10: /* node ::= open_tag GML_CLOSE */ { yygotominor.yy0 = gml_createNode (p_data, (void *) yymsp[-1].minor.yy0, NULL, NULL); } break; case 11: /* node ::= open_tag attr GML_CLOSE */ case 12: /* node ::= open_tag attributes GML_CLOSE */ yytestcase (yyruleno == 12); { yygotominor.yy0 = gml_createNode (p_data, (void *) yymsp[-2].minor.yy0, (void *) yymsp[-1].minor.yy0, NULL); } break; case 13: /* node ::= open_tag GML_CLOSE coord */ case 14: /* node ::= open_tag GML_CLOSE coord_chain */ yytestcase (yyruleno == 14); { yygotominor.yy0 = gml_createNode (p_data, (void *) yymsp[-2].minor.yy0, NULL, (void *) yymsp[0].minor.yy0); } break; case 15: /* node ::= open_tag attr GML_CLOSE coord */ case 16: /* node ::= open_tag attr GML_CLOSE coord_chain */ yytestcase (yyruleno == 16); case 17: /* node ::= open_tag attributes GML_CLOSE coord */ yytestcase (yyruleno == 17); case 18: /* node ::= open_tag attributes GML_CLOSE coord_chain */ yytestcase (yyruleno == 18); { yygotominor.yy0 = gml_createNode (p_data, (void *) yymsp[-3].minor.yy0, (void *) yymsp[-2].minor.yy0, (void *) yymsp[0].minor.yy0); } break; case 19: /* node ::= close_tag */ { yygotominor.yy0 = gml_closingNode (p_data, (void *) yymsp[0].minor.yy0); } break; case 20: /* open_tag ::= GML_OPEN keyword */ case 22: /* keyword ::= GML_KEYWORD */ yytestcase (yyruleno == 22); { yygotominor.yy0 = yymsp[0].minor.yy0; } break; case 21: /* close_tag ::= GML_OPEN GML_END keyword GML_CLOSE */ { yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 23: /* extra_nodes ::= */ case 27: /* extra_attr ::= */ yytestcase (yyruleno == 27); case 31: /* extra_coord ::= */ yytestcase (yyruleno == 31); { yygotominor.yy0 = NULL; } break; case 24: /* extra_nodes ::= node extra_nodes */ { ((gmlNodePtr) yymsp[-1].minor.yy0)->Next = (gmlNodePtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 25: /* node_chain ::= node node extra_nodes */ { ((gmlNodePtr) yymsp[-1].minor.yy0)->Next = (gmlNodePtr) yymsp[0].minor.yy0; ((gmlNodePtr) yymsp[-2].minor.yy0)->Next = (gmlNodePtr) yymsp[-1].minor.yy0; yygotominor.yy0 = yymsp[-2].minor.yy0; } break; case 26: /* attr ::= GML_KEYWORD GML_EQ GML_VALUE */ { yygotominor.yy0 = gml_attribute (p_data, (void *) yymsp[-2].minor.yy0, (void *) yymsp[0].minor.yy0); } break; case 28: /* extra_attr ::= attr extra_attr */ { ((gmlAttrPtr) yymsp[-1].minor.yy0)->Next = (gmlAttrPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 29: /* attributes ::= attr attr extra_attr */ { ((gmlAttrPtr) yymsp[-1].minor.yy0)->Next = (gmlAttrPtr) yymsp[0].minor.yy0; ((gmlAttrPtr) yymsp[-2].minor.yy0)->Next = (gmlAttrPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = yymsp[-2].minor.yy0; } break; case 30: /* coord ::= GML_COORD */ { yygotominor.yy0 = gml_coord (p_data, (void *) yymsp[0].minor.yy0); } break; case 32: /* extra_coord ::= coord extra_coord */ { ((gmlCoordPtr) yymsp[-1].minor.yy0)->Next = (gmlCoordPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 33: /* coord_chain ::= coord coord extra_coord */ { ((gmlCoordPtr) yymsp[-1].minor.yy0)->Next = (gmlCoordPtr) yymsp[0].minor.yy0; ((gmlCoordPtr) yymsp[-2].minor.yy0)->Next = (gmlCoordPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = yymsp[-2].minor.yy0; } break; default: /* (0) main ::= in */ yytestcase (yyruleno == 0); /* (1) in ::= */ yytestcase (yyruleno == 1); /* (2) in ::= in state GML_NEWLINE */ yytestcase (yyruleno == 2); /* (3) state ::= program */ yytestcase (yyruleno == 3); /* (4) program ::= gml_tree */ yytestcase (yyruleno == 4); break; }; yygoto = yyRuleInfo[yyruleno].lhs; yysize = yyRuleInfo[yyruleno].nrhs; yypParser->yyidx -= yysize; yyact = yy_find_reduce_action (yymsp[-yysize].stateno, (YYCODETYPE) yygoto); if (yyact < YYNSTATE) { #ifdef NDEBUG /* If we are not debugging and the reduce action popped at least ** one element off the stack, then we can push the new element back ** onto the stack here, and skip the stack overflow test in yy_shift(). ** That gives a significant speed improvement. */ if (yysize) { yypParser->yyidx++; yymsp -= yysize - 1; yymsp->stateno = (YYACTIONTYPE) yyact; yymsp->major = (YYCODETYPE) yygoto; yymsp->minor = yygotominor; } else #endif { yy_shift (yypParser, yyact, yygoto, &yygotominor); } } else { assert (yyact == YYNSTATE + YYNRULE + 1); yy_accept (yypParser); } } /* ** The following code executes when the parse fails */ #ifndef YYNOERRORRECOVERY static void yy_parse_failed (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFail!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser fails */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. */ static void yy_syntax_error (yyParser * yypParser, /* The parser */ int yymajor, /* The major type of the error token */ YYMINORTYPE yyminor /* The minor type of the error token */ ) { ParseARG_FETCH; #define TOKEN (yyminor.yy0) /* ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->gml_parse_error = 1; p_data->result = NULL; ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* ** The following is executed when the parser accepts */ static void yy_accept (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sAccept!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. ** The first argument is a pointer to a structure obtained from ** "ParseAlloc" which describes the current state of the parser. ** The second argument is the major token number. The third is ** the minor token. The fourth optional argument is whatever the ** user wants (and specified in the grammar) and is available for ** use by the action routines. ** ** Inputs: **
    **
  • A pointer to the parser (an opaque structure.) **
  • The major token number. **
  • The minor token number. **
  • An option argument of a grammar-specified type. **
** ** Outputs: ** None. */ void Parse (void *yyp, /* The parser */ int yymajor, /* The major token code number */ ParseTOKENTYPE yyminor /* The value for the token */ ParseARG_PDECL /* Optional %extra_argument parameter */ ) { YYMINORTYPE yyminorunion; int yyact; /* The parser action. */ int yyendofinput; /* True if we are at the end of input */ #ifdef YYERRORSYMBOL int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif yyParser *yypParser; /* The parser */ /* (re)initialize the parser, if necessary */ yypParser = (yyParser *) yyp; if (yypParser->yyidx < 0) { #if YYSTACKDEPTH<=0 if (yypParser->yystksz <= 0) { /*memset(&yyminorunion, 0, sizeof(yyminorunion)); */ yyminorunion = yyzerominor; yyStackOverflow (yypParser, &yyminorunion); return; } #endif yypParser->yyidx = 0; yypParser->yyerrcnt = -1; yypParser->yystack[0].stateno = 0; yypParser->yystack[0].major = 0; } yyminorunion.yy0 = yyminor; yyendofinput = (yymajor == 0); ParseARG_STORE; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sInput %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif do { yyact = yy_find_shift_action (yypParser, (YYCODETYPE) yymajor); if (yyact < YYNSTATE) { assert (!yyendofinput); /* Impossible to shift the $ token */ yy_shift (yypParser, yyact, yymajor, &yyminorunion); yypParser->yyerrcnt--; yymajor = YYNOCODE; } else if (yyact < YYNSTATE + YYNRULE) { yy_reduce (yypParser, yyact - YYNSTATE); } else { assert (yyact == YY_ERROR_ACTION); #ifdef YYERRORSYMBOL int yymx; #endif #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt); } #endif #ifdef YYERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". ** ** This is what we do if the grammar does define ERROR: ** ** * Call the %syntax_error function. ** ** * Begin popping the stack until we enter a state where ** it is legal to shift the error symbol, then shift ** the error symbol. ** ** * Set the error count to three. ** ** * Begin accepting and shifting new tokens. No new error ** processing will occur until three tokens have been ** shifted successfully. ** */ if (yypParser->yyerrcnt < 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yymx = yypParser->yystack[yypParser->yyidx].major; if (yymx == YYERRORSYMBOL || yyerrorhit) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sDiscard input token %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; } else { while (yypParser->yyidx >= 0 && yymx != YYERRORSYMBOL && (yyact = yy_find_reduce_action (yypParser->yystack [yypParser->yyidx].stateno, YYERRORSYMBOL)) >= YYNSTATE) { yy_pop_parser_stack (yypParser); } if (yypParser->yyidx < 0 || yymajor == 0) { yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yy_parse_failed (yypParser); yymajor = YYNOCODE; } else if (yymx != YYERRORSYMBOL) { YYMINORTYPE u2; u2.YYERRSYMDT = 0; yy_shift (yypParser, yyact, YYERRORSYMBOL, &u2); } } yypParser->yyerrcnt = 3; yyerrorhit = 1; #elif defined(YYNOERRORRECOVERY) /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to ** do any kind of error recovery. Instead, simply invoke the syntax ** error routine and continue going as if nothing had happened. ** ** Applications can set this macro (for example inside %include) if ** they intend to abandon the parse upon the first syntax error seen. */ yy_syntax_error (yypParser, yymajor, yyminorunion); yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; #else /* YYERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. ** ** * If the input token is $, then fail the parse. ** ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ if (yypParser->yyerrcnt <= 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yypParser->yyerrcnt = 3; yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); if (yyendofinput) { yy_parse_failed (yypParser); } yymajor = YYNOCODE; #endif } } while (yymajor != YYNOCODE && yypParser->yyidx >= 0); return; } libspatialite-4.3.0a/src/gaiageo/gg_advanced.c0000664000175000017500000014270412544707704016223 00000000000000/* gg_advanced.c -- Gaia advanced geometric operations version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include GAIAGEO_DECLARE double gaiaMeasureLength (int dims, double *coords, int vert) { /* computes the total length */ double lung = 0.0; double xx1; double xx2; double yy1; double yy2; double x; double y; double z; double m; double dist; int ind; if (vert <= 0) return lung; if (dims == GAIA_XY_Z) { gaiaGetPointXYZ (coords, 0, &xx1, &yy1, &z); } else if (dims == GAIA_XY_M) { gaiaGetPointXYM (coords, 0, &xx1, &yy1, &m); } else if (dims == GAIA_XY_Z_M) { gaiaGetPointXYZM (coords, 0, &xx1, &yy1, &z, &m); } else { gaiaGetPoint (coords, 0, &xx1, &yy1); } for (ind = 1; ind < vert; ind++) { if (dims == GAIA_XY_Z) { gaiaGetPointXYZ (coords, ind, &xx2, &yy2, &z); } else if (dims == GAIA_XY_M) { gaiaGetPointXYM (coords, ind, &xx2, &yy2, &m); } else if (dims == GAIA_XY_Z_M) { gaiaGetPointXYZM (coords, ind, &xx2, &yy2, &z, &m); } else { gaiaGetPoint (coords, ind, &xx2, &yy2); } x = xx1 - xx2; y = yy1 - yy2; dist = sqrt ((x * x) + (y * y)); lung += dist; xx1 = xx2; yy1 = yy2; } return lung; } GAIAGEO_DECLARE double gaiaMeasureArea (gaiaRingPtr ring) { /* computes the area */ int iv; double xx; double yy; double x; double y; double z; double m; double area = 0.0; if (!ring) return 0.0; if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, 0, &xx, &yy, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, 0, &xx, &yy, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, 0, &xx, &yy, &z, &m); } else { gaiaGetPoint (ring->Coords, 0, &xx, &yy); } for (iv = 1; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } area += ((xx * y) - (x * yy)); xx = x; yy = y; } area /= 2.0; return fabs (area); } GAIAGEO_DECLARE void gaiaRingCentroid (gaiaRingPtr ring, double *rx, double *ry) { /* computes the simple ring centroid */ double cx = 0.0; double cy = 0.0; double xx; double yy; double x; double y; double z; double m; double coeff; double area; double term; int iv; if (!ring) { *rx = -DBL_MAX; *ry = -DBL_MAX; return; } area = gaiaMeasureArea (ring); coeff = 1.0 / (area * 6.0); if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, 0, &xx, &yy, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, 0, &xx, &yy, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, 0, &xx, &yy, &z, &m); } else { gaiaGetPoint (ring->Coords, 0, &xx, &yy); } for (iv = 1; iv < ring->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); } term = (xx * y) - (x * yy); cx += (xx + x) * term; cy += (yy + y) * term; xx = x; yy = y; } *rx = fabs (cx * coeff); *ry = fabs (cy * coeff); } GAIAGEO_DECLARE void gaiaClockwise (gaiaRingPtr p) { /* determines clockwise or anticlockwise direction */ int ind; int ix; double xx; double yy; double x; double y; double z; double m; double area = 0.0; for (ind = 0; ind < p->Points; ind++) { if (p->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (p->Coords, ind, &xx, &yy, &z); } else if (p->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (p->Coords, ind, &xx, &yy, &m); } else if (p->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (p->Coords, ind, &xx, &yy, &z, &m); } else { gaiaGetPoint (p->Coords, ind, &xx, &yy); } ix = (ind + 1) % p->Points; if (p->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (p->Coords, ix, &x, &y, &z); } else if (p->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (p->Coords, ix, &x, &y, &m); } else if (p->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (p->Coords, ix, &x, &y, &z, &m); } else { gaiaGetPoint (p->Coords, ix, &x, &y); } area += ((xx * y) - (x * yy)); } area /= 2.0; if (area >= 0.0) p->Clockwise = 0; else p->Clockwise = 1; } GAIAGEO_DECLARE int gaiaIsPointOnRingSurface (gaiaRingPtr ring, double pt_x, double pt_y) { /* tests if a POINT falls inside a RING */ int isInternal = 0; int cnt; int i; int j; double x; double y; double z; double m; double *vert_x; double *vert_y; double minx = DBL_MAX; double miny = DBL_MAX; double maxx = -DBL_MAX; double maxy = -DBL_MAX; cnt = ring->Points; cnt--; /* ignoring last vertex because surely identical to the first one */ if (cnt < 2) return 0; /* allocating and loading an array of vertices */ vert_x = malloc (sizeof (double) * (cnt)); vert_y = malloc (sizeof (double) * (cnt)); for (i = 0; i < cnt; i++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, i, &x, &y, &z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, i, &x, &y, &m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, i, &x, &y, &z, &m); } else { gaiaGetPoint (ring->Coords, i, &x, &y); } vert_x[i] = x; vert_y[i] = y; if (x < minx) minx = x; if (x > maxx) maxx = x; if (y < miny) miny = y; if (y > maxy) maxy = y; } if (pt_x < minx || pt_x > maxx) goto end; /* outside the bounding box (x axis) */ if (pt_y < miny || pt_y > maxy) goto end; /* outside the bounding box (y axis) */ for (i = 0, j = cnt - 1; i < cnt; j = i++) { /* The definitive reference is "Point in Polyon Strategies" by / Eric Haines [Gems IV] pp. 24-46. / The code in the Sedgewick book Algorithms (2nd Edition, p.354) is / incorrect. */ if ((((vert_y[i] <= pt_y) && (pt_y < vert_y[j])) || ((vert_y[j] <= pt_y) && (pt_y < vert_y[i]))) && (pt_x < (vert_x[j] - vert_x[i]) * (pt_y - vert_y[i]) / (vert_y[j] - vert_y[i]) + vert_x[i])) isInternal = !isInternal; } end: free (vert_x); free (vert_y); return isInternal; } GAIAGEO_DECLARE double gaiaMinDistance (double x0, double y0, int dims, double *coords, int n_vert) { /* computing minimal distance between a POINT and a linestring/ring */ double x; double y; double z; double m; double ox; double oy; double lineMag; double u; double px; double py; double dist; double min_dist = DBL_MAX; int iv; if (n_vert < 2) return min_dist; /* not a valid linestring */ /* computing distance from first vertex */ ox = *(coords + 0); oy = *(coords + 1); min_dist = sqrt (((x0 - ox) * (x0 - ox)) + ((y0 - oy) * (y0 - oy))); for (iv = 1; iv < n_vert; iv++) { /* segment start-end coordinates */ if (dims == GAIA_XY_Z) { gaiaGetPointXYZ (coords, iv - 1, &ox, &oy, &z); gaiaGetPointXYZ (coords, iv, &x, &y, &z); } else if (dims == GAIA_XY_M) { gaiaGetPointXYM (coords, iv - 1, &ox, &oy, &m); gaiaGetPointXYM (coords, iv, &x, &y, &m); } else if (dims == GAIA_XY_Z_M) { gaiaGetPointXYZM (coords, iv - 1, &ox, &oy, &z, &m); gaiaGetPointXYZM (coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (coords, iv - 1, &ox, &oy); gaiaGetPoint (coords, iv, &x, &y); } /* computing distance from vertex */ dist = sqrt (((x0 - x) * (x0 - x)) + ((y0 - y) * (y0 - y))); if (dist < min_dist) min_dist = dist; /* computing a projection */ lineMag = ((x - ox) * (x - ox)) + ((y - oy) * (y - oy)); u = (((x0 - ox) * (x - ox)) + ((y0 - oy) * (y - oy))) / lineMag; if (u < 0.0 || u > 1.0) ; /* closest point does not fall within the line segment */ else { px = ox + u * (x - ox); py = oy + u * (y - oy); dist = sqrt (((x0 - px) * (x0 - px)) + ((y0 - py) * (y0 - py))); if (dist < min_dist) min_dist = dist; } } return min_dist; } GAIAGEO_DECLARE int gaiaIsPointOnPolygonSurface (gaiaPolygonPtr polyg, double x, double y) { /* tests if a POINT falls inside a POLYGON */ int ib; gaiaRingPtr ring = polyg->Exterior; if (gaiaIsPointOnRingSurface (ring, x, y)) { /* ok, the POINT falls inside the polygon */ for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; if (gaiaIsPointOnRingSurface (ring, x, y)) { /* no, the POINT fall inside some hole */ return 0; } } return 1; } return 0; } GAIAGEO_DECLARE int gaiaIntersect (double *x0, double *y0, double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) { /* computes intersection [if any] between two line segments / the intersection POINT has coordinates (x0, y0) / first line is identified by(x1, y1) and (x2, y2) / second line is identified by (x3, y3) and (x4, y4) */ double x; double y; double a1; double b1; double c1; double a2; double b2; double c2; double m1; double m2; double p; double det_inv; double minx1; double miny1; double maxx1; double maxy1; double minx2; double miny2; double maxx2; double maxy2; int ok1 = 0; int ok2 = 0; /* building line segment's MBRs */ if (x2 < x1) { minx1 = x2; maxx1 = x1; } else { minx1 = x1; maxx1 = x2; } if (y2 < y1) { miny1 = y2; maxy1 = y1; } else { miny1 = y1; maxy1 = y2; } if (x4 < x3) { minx2 = x4; maxx2 = x3; } else { minx2 = x3; maxx2 = x4; } if (y4 < y3) { miny2 = y4; maxy2 = y3; } else { miny2 = y3; maxy2 = y4; } /* checking MBRs first */ if (minx1 > maxx2) return 0; if (miny1 > maxy2) return 0; if (maxx1 < minx2) return 0; if (maxy1 < miny2) return 0; if (minx2 > maxx1) return 0; if (miny2 > maxy1) return 0; if (maxx2 < minx1) return 0; if (maxy2 < miny1) return 0; /* there is an MBRs intersection - proceeding */ if ((x2 - x1) != 0.0) m1 = (y2 - y1) / (x2 - x1); else m1 = DBL_MAX; if ((x4 - x3) != 0) m2 = (y4 - y3) / (x4 - x3); else m2 = DBL_MAX; if (m1 == m2) /* parallel lines */ return 0; if (m1 == DBL_MAX) c1 = y1; else c1 = (y1 - m1 * x1); if (m2 == DBL_MAX) c2 = y3; else c2 = (y3 - m2 * x3); if (m1 == DBL_MAX) { x = x1; p = m2 * x1; y = p + c2; /* first line is vertical */ goto check_bbox; } if (m2 == DBL_MAX) { x = x3; p = m1 * x3; y = p + c1; /* second line is vertical */ goto check_bbox; } a1 = m1; a2 = m2; b1 = -1; b2 = -1; det_inv = 1 / (a1 * b2 - a2 * b1); x = ((b1 * c2 - b2 * c1) * det_inv); y = ((a2 * c1 - a1 * c2) * det_inv); /* now checking if intersection falls within both segment boundaries */ check_bbox: if (x >= minx1 && x <= maxx1 && y >= miny1 && y <= maxy1) ok1 = 1; if (x >= minx2 && x <= maxx2 && y >= miny2 && y <= maxy2) ok2 = 1; if (ok1 && ok2) { /* intersection point falls within the segments */ *x0 = x; *y0 = y; return 1; } return 0; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSanitize (gaiaGeomCollPtr geom) { /* / sanitizes a GEOMETRYCOLLECTION: / - repeated vertices are omitted / - ring closure is enforced anyway */ int iv; int ib; double x = 0.0; double y = 0.0; double z = 0.0; double m = 0.0; double last_x = 0.0; double last_y = 0.0; double last_z = 0.0; int points; gaiaPointPtr point; gaiaLinestringPtr line; gaiaLinestringPtr new_line; gaiaPolygonPtr polyg; gaiaPolygonPtr new_polyg; gaiaGeomCollPtr new_geom; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!geom) return NULL; if (geom->DimensionModel == GAIA_XY_Z) new_geom = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) new_geom = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) new_geom = gaiaAllocGeomCollXYZM (); else new_geom = gaiaAllocGeomColl (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = geom->DeclaredType; point = geom->FirstPoint; while (point) { /* copying POINTs */ gaiaAddPointToGeomCollXYZM (new_geom, point->X, point->Y, point->Z, point->M); point = point->Next; } line = geom->FirstLinestring; while (line) { /* sanitizing LINESTRINGs */ points = 0; for (iv = 0; iv < line->Points; iv++) { /* PASS I - checking points */ z = 0.0; m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (iv > 0) { if (last_x == x && last_y == y && last_z == z) ; else points++; } else points++; last_x = x; last_y = y; last_z = z; } if (points < 2) { /* illegal LINESTRING - copying the original one */ new_line = gaiaAddLinestringToGeomColl (new_geom, line->Points); gaiaCopyLinestringCoords (new_line, line); } else { /* valid LINESTRING - sanitizing */ new_line = gaiaAddLinestringToGeomColl (new_geom, points); points = 0; for (iv = 0; iv < line->Points; iv++) { /* PASS II - inserting points */ z = 0.0; m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (iv > 0) { if (last_x == x && last_y == y && last_z == z) ; else { if (new_line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_line->Coords, points, x, y, z); } else if (new_line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_line->Coords, points, x, y, m); } else if (new_line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_line->Coords, points, x, y, z, m); } else { gaiaSetPoint (new_line->Coords, points, x, y); } points++; } } else { if (new_line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_line->Coords, points, x, y, z); } else if (new_line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_line->Coords, points, x, y, m); } else if (new_line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_line->Coords, points, x, y, z, m); } else { gaiaSetPoint (new_line->Coords, points, x, y); } points++; } last_x = x; last_y = y; last_z = z; } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* copying POLYGONs */ i_ring = polyg->Exterior; /* sanitizing EXTERIOR RING */ points = 0; for (iv = 0; iv < i_ring->Points; iv++) { /* PASS I - checking points */ z = 0.0; m = 0.0; if (i_ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (i_ring->Coords, iv, &x, &y, &z); } else if (i_ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (i_ring->Coords, iv, &x, &y, &m); } else if (i_ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (i_ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (i_ring->Coords, iv, &x, &y); } if (iv > 0) { if (last_x == x && last_y == y && last_z == z) ; else points++; } else points++; last_x = x; last_y = y; last_z = z; } if (last_x == x && last_y == y && last_z == z) ; else { /* forcing RING closure */ points++; } if (points < 4) { /* illegal RING - copying the original one */ new_polyg = gaiaAddPolygonToGeomColl (new_geom, i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); } else { /* valid RING - sanitizing */ new_polyg = gaiaAddPolygonToGeomColl (new_geom, points, polyg->NumInteriors); o_ring = new_polyg->Exterior; points = 0; for (iv = 0; iv < i_ring->Points; iv++) { /* PASS II - inserting points */ z = 0.0; m = 0.0; if (i_ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (i_ring->Coords, iv, &x, &y, &z); } else if (i_ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (i_ring->Coords, iv, &x, &y, &m); } else if (i_ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (i_ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (i_ring->Coords, iv, &x, &y); } if (iv > 0) { if (last_x == x && last_y == y && last_z == z) ; else { if (o_ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (o_ring->Coords, points, x, y, z); } else if (o_ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (o_ring->Coords, points, x, y, m); } else if (o_ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (o_ring->Coords, points, x, y, z, m); } else { gaiaSetPoint (o_ring->Coords, points, x, y); } points++; } } else { if (o_ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (o_ring->Coords, points, x, y, z); } else if (o_ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (o_ring->Coords, points, x, y, m); } else if (o_ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (o_ring->Coords, points, x, y, z, m); } else { gaiaSetPoint (o_ring->Coords, points, x, y); } points++; } last_x = x; last_y = y; last_z = z; } } /* PASS III - forcing RING closure */ z = 0.0; m = 0.0; if (i_ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (i_ring->Coords, 0, &x, &y, &z); } else if (i_ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (i_ring->Coords, 0, &x, &y, &m); } else if (i_ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (i_ring->Coords, 0, &x, &y, &z, &m); } else { gaiaGetPoint (i_ring->Coords, 0, &x, &y); } points = o_ring->Points - 1; if (o_ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (o_ring->Coords, points, x, y, z); } else if (o_ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (o_ring->Coords, points, x, y, m); } else if (o_ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (o_ring->Coords, points, x, y, z, m); } else { gaiaSetPoint (o_ring->Coords, points, x, y); } for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; /* sanitizing an INTERIOR RING */ points = 0; for (iv = 0; iv < i_ring->Points; iv++) { /* PASS I - checking points */ z = 0.0; m = 0.0; if (i_ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (i_ring->Coords, iv, &x, &y, &z); } else if (i_ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (i_ring->Coords, iv, &x, &y, &m); } else if (i_ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (i_ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (i_ring->Coords, iv, &x, &y); } if (iv > 0) { if (last_x == x && last_y == y && last_z == z) ; else points++; } else points++; last_x = x; last_y = y; last_z = z; } if (last_x == x && last_y == y && last_z == z) ; else { /* forcing RING closure */ points++; } if (points < 4) { /* illegal RING - copying the original one */ o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } else { /* valid RING - sanitizing */ o_ring = gaiaAddInteriorRing (new_polyg, ib, points); points = 0; for (iv = 0; iv < i_ring->Points; iv++) { /* PASS II - inserting points */ z = 0.0; m = 0.0; if (i_ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (i_ring->Coords, iv, &x, &y, &z); } else if (i_ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (i_ring->Coords, iv, &x, &y, &m); } else if (i_ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (i_ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (i_ring->Coords, iv, &x, &y); } if (iv > 0) { if (last_x == x && last_y == y && last_z == z) ; else { if (o_ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (o_ring->Coords, points, x, y, z); } else if (o_ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (o_ring->Coords, points, x, y, m); } else if (o_ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (o_ring->Coords, points, x, y, z, m); } else { gaiaSetPoint (o_ring->Coords, points, x, y); } points++; } } else { if (o_ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (o_ring->Coords, points, x, y, z); } else if (o_ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (o_ring->Coords, points, x, y, m); } else if (o_ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (o_ring->Coords, points, x, y, z, m); } else { gaiaSetPoint (o_ring->Coords, points, x, y); } points++; } last_x = x; last_y = y; last_z = z; } /* PASS III - forcing RING closure */ z = 0.0; m = 0.0; if (i_ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (i_ring->Coords, 0, &x, &y, &z); } else if (i_ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (i_ring->Coords, 0, &x, &y, &m); } else if (i_ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (i_ring->Coords, 0, &x, &y, &z, &m); } else { gaiaGetPoint (i_ring->Coords, 0, &x, &y); } points = o_ring->Points - 1; if (o_ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (o_ring->Coords, points, x, y, z); } else if (o_ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (o_ring->Coords, points, x, y, m); } else if (o_ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (o_ring->Coords, points, x, y, z, m); } else { gaiaSetPoint (o_ring->Coords, points, x, y); } } } polyg = polyg->Next; } return new_geom; } static int gaiaIsToxicLinestring (gaiaLinestringPtr line) { /* checking a Linestring */ if (line->Points < 2) return 1; return 0; /* not a valid Linestring, simply a degenerated Point */ return 1; } static int gaiaIsToxicRing (gaiaRingPtr ring) { /* checking a Ring */ if (ring->Points < 4) return 1; return 0; } GAIAGEO_DECLARE int gaiaIsToxic (gaiaGeomCollPtr geom) { return gaiaIsToxic_r (NULL, geom); } GAIAGEO_DECLARE int gaiaIsToxic_r (const void *cache, gaiaGeomCollPtr geom) { /* / identifying toxic geometries / i.e. geoms making GEOS to crash !!! */ int ib; gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr ring; if (!geom) return 0; if (gaiaIsEmpty (geom)) return 1; point = geom->FirstPoint; while (point) { /* checking POINTs */ point = point->Next; } line = geom->FirstLinestring; while (line) { /* checking LINESTRINGs */ if (gaiaIsToxicLinestring (line)) { if (cache != NULL) gaiaSetGeosAuxErrorMsg_r (cache, "gaiaIsToxic detected a toxic Linestring: < 2 pts"); else gaiaSetGeosAuxErrorMsg ("gaiaIsToxic detected a toxic Linestring: < 2 pts"); return 1; } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* checking POLYGONs */ ring = polyg->Exterior; if (gaiaIsToxicRing (ring)) { if (cache != NULL) gaiaSetGeosAuxErrorMsg_r (cache, "gaiaIsToxic detected a toxic Ring: < 4 pts"); else gaiaSetGeosAuxErrorMsg ("gaiaIsToxic detected a toxic Ring: < 4 pts"); return 1; } for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; if (gaiaIsToxicRing (ring)) { if (cache != NULL) gaiaSetGeosAuxErrorMsg_r (cache, "gaiaIsToxic detected a toxic Ring: < 4 pts"); else gaiaSetGeosAuxErrorMsg ("gaiaIsToxic detected a toxic Ring: < 4 pts"); return 1; } } polyg = polyg->Next; } return 0; } GAIAGEO_DECLARE int gaiaIsNotClosedRing (gaiaRingPtr ring) { return gaiaIsNotClosedRing_r (NULL, ring); } GAIAGEO_DECLARE int gaiaIsNotClosedRing_r (const void *cache, gaiaRingPtr ring) { /* checking a Ring for closure */ double x0; double y0; double z0; double m0; double x1; double y1; double z1; double m1; gaiaRingGetPoint (ring, 0, &x0, &y0, &z0, &m0); gaiaRingGetPoint (ring, ring->Points - 1, &x1, &y1, &z1, &m1); if (x0 == x1 && y0 == y1 && z0 == z1 && m0 == m1) return 0; else { if (cache != NULL) gaiaSetGeosAuxErrorMsg_r (cache, "gaia detected a not-closed Ring"); else gaiaSetGeosAuxErrorMsg ("gaia detected a not-closed Ring"); return 1; } } GAIAGEO_DECLARE int gaiaIsNotClosedGeomColl (gaiaGeomCollPtr geom) { return gaiaIsNotClosedGeomColl_r (NULL, geom); } GAIAGEO_DECLARE int gaiaIsNotClosedGeomColl_r (const void *cache, gaiaGeomCollPtr geom) { /* / identifying not properly closed Rings / i.e. geoms making GEOS to crash !!! */ int ret; int ib; gaiaPolygonPtr polyg; gaiaRingPtr ring; if (!geom) return 0; polyg = geom->FirstPolygon; while (polyg) { /* checking POLYGONs */ ring = polyg->Exterior; if (cache != NULL) ret = gaiaIsNotClosedRing_r (cache, ring); else ret = gaiaIsNotClosedRing (ring); if (ret) return 1; for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; if (cache != NULL) ret = gaiaIsNotClosedRing_r (cache, ring); else ret = gaiaIsNotClosedRing (ring); if (ret) return 1; } polyg = polyg->Next; } return 0; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLinearize (gaiaGeomCollPtr geom, int force_multi) { /* attempts to rearrange a generic Geometry into a (multi)linestring */ int pts = 0; int lns = 0; gaiaGeomCollPtr result; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaLinestringPtr new_ln; gaiaPolygonPtr pg; gaiaRingPtr rng; int iv; int ib; double x; double y; double m; double z; if (!geom) return NULL; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } if (pts || lns) return NULL; if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else result = gaiaAllocGeomColl (); result->Srid = geom->Srid; if (force_multi) result->DeclaredType = GAIA_MULTILINESTRING; pg = geom->FirstPolygon; while (pg) { /* dissolving any POLYGON as simple LINESTRINGs (rings) */ rng = pg->Exterior; new_ln = gaiaAddLinestringToGeomColl (result, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* copying the EXTERIOR RING as LINESTRING */ if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); } else if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaSetPoint (new_ln->Coords, iv, x, y); } } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; new_ln = gaiaAddLinestringToGeomColl (result, rng->Points); for (iv = 0; iv < rng->Points; iv++) { /* copying an INTERIOR RING as LINESTRING */ if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); } else if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaSetPoint (new_ln->Coords, iv, x, y); } } } pg = pg->Next; } if (result->FirstLinestring == NULL) { gaiaFreeGeomColl (result); return NULL; } return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDissolveSegments (gaiaGeomCollPtr geom) { /* attempts to dissolve a Geometry into segments */ gaiaGeomCollPtr result; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaLinestringPtr segment; gaiaPolygonPtr pg; gaiaRingPtr rng; int iv; int ib; double x = 0.0; double y = 0.0; double z = 0.0; double m = 0.0; double x0 = 0.0; double y0 = 0.0; double z0 = 0.0; double m0 = 0.0; if (!geom) return NULL; if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else result = gaiaAllocGeomColl (); pt = geom->FirstPoint; while (pt) { if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z, pt->M); else if (geom->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (result, pt->X, pt->Y, pt->Z); else if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y, pt->M); else gaiaAddPointToGeomColl (result, pt->X, pt->Y); pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { for (iv = 0; iv < ln->Points; iv++) { if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (iv > 0) { if (geom->DimensionModel == GAIA_XY_Z_M) { if (x != x0 || y != y0 || z != z0 || m != m0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPointXYZM (segment->Coords, 0, x0, y0, z0, m0); gaiaSetPointXYZM (segment->Coords, 1, x, y, z, m); } } else if (geom->DimensionModel == GAIA_XY_Z) { if (x != x0 || y != y0 || z != z0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPointXYZ (segment->Coords, 0, x0, y0, z0); gaiaSetPointXYZ (segment->Coords, 1, x, y, z); } } else if (geom->DimensionModel == GAIA_XY_M) { if (x != x0 || y != y0 || m != m0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPointXYM (segment->Coords, 0, x0, y0, m0); gaiaSetPointXYM (segment->Coords, 1, x, y, m); } } else { if (x != x0 || y != y0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (segment->Coords, 0, x0, y0); gaiaSetPoint (segment->Coords, 1, x, y); } } } x0 = x; y0 = y; z0 = z; m0 = m; } ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { rng = pg->Exterior; for (iv = 0; iv < rng->Points; iv++) { /* exterior Ring */ if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (iv > 0) { if (geom->DimensionModel == GAIA_XY_Z_M) { if (x != x0 || y != y0 || z != z0 || m != m0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPointXYZM (segment->Coords, 0, x0, y0, z0, m0); gaiaSetPointXYZM (segment->Coords, 1, x, y, z, m); } } else if (geom->DimensionModel == GAIA_XY_Z) { if (x != x0 || y != y0 || z != z0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPointXYZ (segment->Coords, 0, x0, y0, z0); gaiaSetPointXYZ (segment->Coords, 1, x, y, z); } } else if (geom->DimensionModel == GAIA_XY_M) { if (x != x0 || y != y0 || m != m0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPointXYM (segment->Coords, 0, x0, y0, m0); gaiaSetPointXYM (segment->Coords, 1, x, y, m); } } else { if (x != x0 || y != y0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (segment->Coords, 0, x0, y0); gaiaSetPoint (segment->Coords, 1, x, y); } } } x0 = x; y0 = y; z0 = z; m0 = m; } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; for (iv = 0; iv < rng->Points; iv++) { /* interior Ring */ if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (iv > 0) { if (geom->DimensionModel == GAIA_XY_Z_M) { if (x != x0 || y != y0 || z != z0 || m != m0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPointXYZM (segment->Coords, 0, x0, y0, z0, m0); gaiaSetPointXYZM (segment->Coords, 1, x, y, z, m); } } else if (geom->DimensionModel == GAIA_XY_Z) { if (x != x0 || y != y0 || z != z0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPointXYZ (segment->Coords, 0, x0, y0, z0); gaiaSetPointXYZ (segment->Coords, 1, x, y, z); } } else if (geom->DimensionModel == GAIA_XY_M) { if (x != x0 || y != y0 || m != m0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPointXYM (segment->Coords, 0, x0, y0, m0); gaiaSetPointXYM (segment->Coords, 1, x, y, m); } } else { if (x != x0 || y != y0) { segment = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (segment->Coords, 0, x0, y0); gaiaSetPoint (segment->Coords, 1, x, y); } } } x0 = x; y0 = y; z0 = z; m0 = m; } } pg = pg->Next; } result->Srid = geom->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDissolvePoints (gaiaGeomCollPtr geom) { /* attempts to dissolve a Geometry into points */ gaiaGeomCollPtr result; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; int iv; int ib; double x = 0.0; double y = 0.0; double z = 0.0; double m = 0.0; if (!geom) return NULL; if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else result = gaiaAllocGeomColl (); pt = geom->FirstPoint; while (pt) { if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z, pt->M); else if (geom->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (result, pt->X, pt->Y, pt->Z); else if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y, pt->M); else gaiaAddPointToGeomColl (result, pt->X, pt->Y); pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { for (iv = 0; iv < ln->Points; iv++) { if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (result, x, y, z, m); else if (geom->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (result, x, y, z); else if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (result, x, y, m); else gaiaAddPointToGeomColl (result, x, y); } ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { rng = pg->Exterior; for (iv = 0; iv < rng->Points; iv++) { /* exterior Ring */ if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (result, x, y, z, m); else if (geom->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (result, x, y, z); else if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (result, x, y, m); else gaiaAddPointToGeomColl (result, x, y); } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; for (iv = 0; iv < rng->Points; iv++) { /* interior Ring */ if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (result, x, y, z, m); else if (geom->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (result, x, y, z); else if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (result, x, y, m); else gaiaAddPointToGeomColl (result, x, y); } } pg = pg->Next; } result->Srid = geom->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaExtractPointsFromGeomColl (gaiaGeomCollPtr geom) { /* extracts any POINT from a GeometryCollection */ gaiaGeomCollPtr result; gaiaPointPtr pt; int pts = 0; if (!geom) return NULL; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } if (!pts) return NULL; if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else result = gaiaAllocGeomColl (); pt = geom->FirstPoint; while (pt) { if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z, pt->M); else if (geom->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (result, pt->X, pt->Y, pt->Z); else if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y, pt->M); else gaiaAddPointToGeomColl (result, pt->X, pt->Y); pt = pt->Next; } result->Srid = geom->Srid; if (pts == 1) result->DeclaredType = GAIA_POINT; else result->DeclaredType = GAIA_MULTIPOINT; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaExtractLinestringsFromGeomColl (gaiaGeomCollPtr geom) { /* extracts any LINESTRING from a GeometryCollection */ gaiaGeomCollPtr result; gaiaLinestringPtr ln; gaiaLinestringPtr new_ln; int lns = 0; int iv; double x; double y; double z; double m; if (!geom) return NULL; ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } if (!lns) return NULL; if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else result = gaiaAllocGeomColl (); ln = geom->FirstLinestring; while (ln) { new_ln = gaiaAddLinestringToGeomColl (result, ln->Points); for (iv = 0; iv < ln->Points; iv++) { if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); } else if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaSetPoint (new_ln->Coords, iv, x, y); } } ln = ln->Next; } result->Srid = geom->Srid; if (lns == 1) result->DeclaredType = GAIA_LINESTRING; else result->DeclaredType = GAIA_MULTILINESTRING; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaExtractPolygonsFromGeomColl (gaiaGeomCollPtr geom) { /* extracts any POLYGON from a GeometryCollection */ gaiaGeomCollPtr result; gaiaPolygonPtr pg; gaiaPolygonPtr new_pg; gaiaRingPtr rng; gaiaRingPtr new_rng; int pgs = 0; int iv; int ib; double x; double y; double z; double m; if (!geom) return NULL; pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (!pgs) return NULL; if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else result = gaiaAllocGeomColl (); pg = geom->FirstPolygon; while (pg) { rng = pg->Exterior; new_pg = gaiaAddPolygonToGeomColl (result, rng->Points, pg->NumInteriors); new_rng = new_pg->Exterior; for (iv = 0; iv < rng->Points; iv++) { if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_rng->Coords, iv, x, y, z, m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_rng->Coords, iv, x, y, z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_rng->Coords, iv, x, y, m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaSetPoint (new_rng->Coords, iv, x, y); } } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; new_rng = gaiaAddInteriorRing (new_pg, ib, rng->Points); for (iv = 0; iv < rng->Points; iv++) { if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (new_rng->Coords, iv, x, y, z, m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (new_rng->Coords, iv, x, y, z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaSetPointXYM (new_rng->Coords, iv, x, y, m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaSetPoint (new_rng->Coords, iv, x, y); } } } pg = pg->Next; } result->Srid = geom->Srid; if (pgs == 1) result->DeclaredType = GAIA_POLYGON; else result->DeclaredType = GAIA_MULTIPOLYGON; return result; } libspatialite-4.3.0a/src/gaiageo/gg_xml.c0000664000175000017500000033777712544707704015276 00000000000000/* gg_xml.c -- XML Document implementation version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #ifdef ENABLE_LIBXML2 /* LIBXML2 enabled: supporting XML documents */ #include #include #include #include #include #include #include #include #include #include struct gaiaxml_namespace { /* a Namespace declaration */ int type; xmlChar *prefix; xmlChar *href; struct gaiaxml_namespace *next; }; struct gaiaxml_ns_list { /* a Namespaces list */ struct gaiaxml_namespace *first; struct gaiaxml_namespace *last; }; static int is_valid_cache (struct splite_internal_cache *cache) { /* testing if the passed cache is a valid one */ if (cache == NULL) return 0; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return 0; return 1; } static struct gaiaxml_namespace * splite_create_namespace (int type, const xmlChar * prefix, const xmlChar * href) { /* allocating and initializing a Namespace declaration */ int len; struct gaiaxml_namespace *ptr = malloc (sizeof (struct gaiaxml_namespace)); ptr->type = type; if (prefix == NULL) ptr->prefix = NULL; else { len = strlen ((const char *) prefix); ptr->prefix = malloc (len + 1); memcpy (ptr->prefix, prefix, len + 1); } if (href == NULL) ptr->href = NULL; else { len = strlen ((const char *) href); ptr->href = malloc (len + 1); memcpy (ptr->href, href, len + 1); } ptr->next = NULL; return ptr; } static void splite_free_namespace (struct gaiaxml_namespace *ptr) { /* memory cleanup - destroying a Namespace declaration */ if (ptr == NULL) return; if (ptr->prefix != NULL) free (ptr->prefix); if (ptr->href != NULL) free (ptr->href); free (ptr); } static struct gaiaxml_ns_list * splite_create_ns_list (void) { /* allocating and initializing a Namespaces list */ struct gaiaxml_ns_list *ptr = malloc (sizeof (struct gaiaxml_ns_list)); ptr->first = NULL; ptr->last = NULL; return ptr; } static void splite_free_ns_list (struct gaiaxml_ns_list *ptr) { /* memory cleanup - destroying a Namespaces list */ struct gaiaxml_namespace *p; struct gaiaxml_namespace *p_n; if (ptr == NULL) return; p = ptr->first; while (p != NULL) { p_n = p->next; splite_free_namespace (p); p = p_n; } free (ptr); } static void splite_add_namespace (struct gaiaxml_ns_list *list, int type, const xmlChar * prefix, const xmlChar * href) { /* inserting a new Namespace into the list */ struct gaiaxml_namespace *ns; if (list == NULL) return; ns = list->first; while (ns != NULL) { /* checking if already defined */ int ok_type = 0; int ok_prefix = 0; int ok_href = 0; if (ns->type == type) ok_type = 1; if (ns->prefix == NULL && prefix == NULL) ok_prefix = 1; if (ns->prefix != NULL && prefix != NULL) { if (strcmp ((const char *) (ns->prefix), (const char *) prefix) == 0) ok_prefix = 1; } if (ns->href == NULL && href == NULL) ok_href = 1; if (ns->href != NULL && href != NULL) { if (strcmp ((const char *) (ns->href), (const char *) href) == 0) ok_href = 1; } if (ok_type && ok_prefix && ok_href) return; ns = ns->next; } /* inserting a new Namespace */ ns = splite_create_namespace (type, prefix, href); if (list->first == NULL) list->first = ns; if (list->last != NULL) list->last->next = ns; list->last = ns; } static void spliteSilentError (void *ctx, const char *msg, ...) { /* shutting up XML Errors */ if (ctx != NULL) ctx = NULL; /* suppressing stupid compiler warnings (unused args) */ if (msg != NULL) ctx = NULL; /* suppressing stupid compiler warnings (unused args) */ } static void spliteParsingError (void *ctx, const char *msg, ...) { /* appending to the current Parsing Error buffer */ struct splite_internal_cache *cache = (struct splite_internal_cache *) ctx; gaiaOutBufferPtr buf; char out[65536]; va_list args; if (ctx != NULL) ctx = NULL; /* suppressing stupid compiler warnings (unused args) */ if (!is_valid_cache (cache)) return; buf = (gaiaOutBufferPtr) (cache->xmlParsingErrors); va_start (args, msg); vsnprintf (out, 65536, msg, args); gaiaAppendToOutBuffer (buf, out); va_end (args); } static void spliteSchemaValidationError (void *ctx, const char *msg, ...) { /* appending to the current SchemaValidation Error buffer */ struct splite_internal_cache *cache = (struct splite_internal_cache *) ctx; gaiaOutBufferPtr buf; char out[65536]; va_list args; if (ctx != NULL) ctx = NULL; /* suppressing stupid compiler warnings (unused args) */ if (!is_valid_cache (cache)) return; buf = (gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors); va_start (args, msg); vsnprintf (out, 65536, msg, args); gaiaAppendToOutBuffer (buf, out); va_end (args); } static void spliteResetXmlErrors (struct splite_internal_cache *cache) { /* resetting the XML Error buffers */ gaiaOutBufferPtr buf; if (!is_valid_cache (cache)) return; buf = (gaiaOutBufferPtr) (cache->xmlParsingErrors); gaiaOutBufferReset (buf); buf = (gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors); gaiaOutBufferReset (buf); } GAIAGEO_DECLARE char * gaiaXmlBlobGetLastParseError (const void *ptr) { /* get the most recent XML Parse error/warning message */ struct splite_internal_cache *cache = (struct splite_internal_cache *) ptr; gaiaOutBufferPtr buf; if (!is_valid_cache (cache)) return NULL; buf = (gaiaOutBufferPtr) (cache->xmlParsingErrors); return buf->Buffer; } GAIAGEO_DECLARE char * gaiaXmlBlobGetLastValidateError (const void *ptr) { /* get the most recent XML Validate error/warning message */ struct splite_internal_cache *cache = (struct splite_internal_cache *) ptr; gaiaOutBufferPtr buf; if (!is_valid_cache (cache)) return NULL; buf = (gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors); return buf->Buffer; } GAIAGEO_DECLARE char * gaiaXmlBlobGetLastXPathError (const void *ptr) { /* get the most recent XML Validate error/warning message */ struct splite_internal_cache *cache = (struct splite_internal_cache *) ptr; gaiaOutBufferPtr buf; if (!is_valid_cache (cache)) return NULL; buf = (gaiaOutBufferPtr) (cache->xmlXPathErrors); return buf->Buffer; } SPATIALITE_PRIVATE void splite_free_xml_schema_cache_item (struct splite_xmlSchema_cache_item *p) { /* freeing an XmlSchema Cache Item */ if (p->schemaURI) free (p->schemaURI); if (p->parserCtxt) xmlSchemaFreeParserCtxt (p->parserCtxt); if (p->schema) xmlSchemaFree (p->schema); if (p->schemaDoc) xmlFreeDoc (p->schemaDoc); p->schemaURI = NULL; p->parserCtxt = NULL; p->schemaDoc = NULL; p->schema = NULL; } static int splite_xmlSchemaCacheFind (struct splite_internal_cache *cache, const char *schemaURI, xmlDocPtr * schema_doc, xmlSchemaParserCtxtPtr * parser_ctxt, xmlSchemaPtr * schema) { /* attempting to retrive some XmlSchema from within the Cache */ int i; time_t now; struct splite_xmlSchema_cache_item *p; if (!is_valid_cache (cache)) return 0; for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++) { p = &(cache->xmlSchemaCache[i]); if (p->schemaURI) { if (strcmp (schemaURI, p->schemaURI) == 0) { /* found a matching cache-item */ *schema_doc = p->schemaDoc; *parser_ctxt = p->parserCtxt; *schema = p->schema; /* updating the timestamp */ time (&now); p->timestamp = now; return 1; } } } return 0; } static void splite_xmlSchemaCacheInsert (struct splite_internal_cache *cache, const char *schemaURI, xmlDocPtr schema_doc, xmlSchemaParserCtxtPtr parser_ctxt, xmlSchemaPtr schema) { /* inserting a new XmlSchema item into the Cache */ int i; int len = strlen (schemaURI); time_t now; time_t oldest; struct splite_xmlSchema_cache_item *pSlot = NULL; struct splite_xmlSchema_cache_item *p; if (!is_valid_cache (cache)) return; time (&now); oldest = now; for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++) { p = &(cache->xmlSchemaCache[i]); if (p->schemaURI == NULL) { /* found an empty slot */ pSlot = p; break; } if (p->timestamp < oldest) { /* saving the oldest slot */ pSlot = p; oldest = p->timestamp; } } /* inserting into the Cache Slot */ splite_free_xml_schema_cache_item (pSlot); pSlot->timestamp = now; pSlot->schemaURI = malloc (len + 1); strcpy (pSlot->schemaURI, schemaURI); pSlot->schemaDoc = schema_doc; pSlot->parserCtxt = parser_ctxt; pSlot->schema = schema; } static void sniff_sld_payload (xmlNodePtr node, int *layers, int *point, int *line, int *polygon, int *raster) { /* recursively sniffing a generic SLD payload type */ while (node) { if (node->type == XML_ELEMENT_NODE) { const char *name = (const char *) (node->name); if (strcmp (name, "FeatureTypeStyle") == 0) *layers += 1; if (strcmp (name, "CoverageStyle") == 0) *layers += 1; if (strcmp (name, "PointSymbolizer") == 0) *point += 1; if (strcmp (name, "LineSymbolizer") == 0) *line += 1; if (strcmp (name, "PolygonSymbolizer") == 0) *polygon += 1; if (strcmp (name, "RasterSymbolizer") == 0) *raster += 1; } sniff_sld_payload (node->children, layers, point, line, polygon, raster); node = node->next; } } static void sniff_payload (xmlDocPtr xml_doc, int *is_iso_metadata, int *is_sld_se_vector_style, int *is_sld_se_raster_style, int *is_sld_style, int *is_svg) { /* sniffing the payload type */ xmlNodePtr root = xmlDocGetRootElement (xml_doc); *is_iso_metadata = 0; *is_sld_se_vector_style = 0; *is_sld_se_raster_style = 0; *is_svg = 0; if (root->name != NULL) { const char *name = (const char *) (root->name); if (strcmp (name, "MD_Metadata") == 0) *is_iso_metadata = 1; if (strcmp (name, "FeatureTypeStyle") == 0 || strcmp (name, "PointSymbolizer") == 0 || strcmp (name, "LineSymbolizer") == 0 || strcmp (name, "PolygonSymbolizer") == 0 || strcmp (name, "TextSymbolizer") == 0) *is_sld_se_vector_style = 1; if (strcmp (name, "RasterSymbolizer") == 0 || strcmp (name, "CoverageStyle") == 0) *is_sld_se_raster_style = 1; if (strcmp (name, "StyledLayerDescriptor") == 0) { /* sniffing an SLD (1.0.0 ??) payload */ int layers = 0; int point = 0; int line = 0; int polygon = 0; int raster = 0; xmlNodePtr node = xmlDocGetRootElement (xml_doc); sniff_sld_payload (node, &layers, &point, &line, &polygon, &raster); if (layers == 1 && point == 0 && line == 0 && polygon == 0 && raster == 1) { /* raster style */ *is_sld_se_raster_style = 1; } if (layers == 1 && (point > 0 || line > 0 || polygon > 0) && raster == 0) { /* vector style */ *is_sld_se_vector_style = 1; } *is_sld_style = 1; } if (strcmp (name, "svg") == 0) *is_svg = 1; } } static void find_iso_ids (xmlNodePtr node, const char *name, char **string, int *open_tag, int *char_string, int *count) { /* recursively scanning the DOM tree [fileIdentifier or parentIdentifier] */ xmlNode *cur_node = NULL; int open = 0; int cs = 0; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { const char *xname = (const char *) (cur_node->name); if (*open_tag == 1) { if (strcmp (xname, "CharacterString") == 0) { cs = 1; *char_string = 1; } } if (strcmp (xname, name) == 0) { if (cur_node->parent != NULL) { if (cur_node->parent->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->parent->name), "MD_Metadata") == 0) { /* / only if / / */ open = 1; *open_tag = 1; } } } } } if (cur_node->type == XML_TEXT_NODE && *open_tag == 1 && *char_string == 1) { if (cur_node->content != NULL) { int len = strlen ((const char *) cur_node->content); char *buf = malloc (len + 1); strcpy (buf, (const char *) cur_node->content); if (*string) free (*string); *string = buf; *count += 1; } } find_iso_ids (cur_node->children, name, string, open_tag, char_string, count); if (open) *open_tag = 0; if (cs) *char_string = 0; } } static void find_iso_title (xmlNodePtr node, char **string, int *open_tag, int *char_string, int *count) { /* recursively scanning the DOM tree [title] */ xmlNode *cur_node = NULL; xmlNode *parent; int open = 0; int cs = 0; int ok_parent; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (*open_tag == 1) { if (strcmp ((const char *) (cur_node->name), "CharacterString") == 0) { cs = 1; *char_string = 1; } } if (strcmp ((const char *) (cur_node->name), "title") == 0) { ok_parent = 0; parent = cur_node->parent; if (parent) { if (strcmp ((const char *) (parent->name), "CI_Citation") == 0) ok_parent++; } if (ok_parent == 1) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "citation") == 0) ok_parent++; } if (ok_parent == 2) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "MD_DataIdentification") == 0) ok_parent++; } if (ok_parent == 3) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "identificationInfo") == 0) ok_parent++; } if (ok_parent == 4) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "MD_Metadata") == 0) ok_parent++; } if (ok_parent == 5) { /* / only if / / / / / */ open = 1; *open_tag = 1; } } } if (cur_node->type == XML_TEXT_NODE && *open_tag == 1 && *char_string == 1) { if (cur_node->content != NULL) { int len = strlen ((const char *) cur_node->content); char *buf = malloc (len + 1); strcpy (buf, (const char *) cur_node->content); if (*string) free (*string); *string = buf; *count += 1; } } find_iso_title (cur_node->children, string, open_tag, char_string, count); if (open) *open_tag = 0; if (cs) *char_string = 0; } } static void find_iso_abstract (xmlNodePtr node, char **string, int *open_tag, int *char_string, int *count) { /* recursively scanning the DOM abstract [title] */ xmlNode *cur_node = NULL; xmlNode *parent; int open = 0; int cs = 0; int ok_parent; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (*open_tag == 1) { if (strcmp ((const char *) (cur_node->name), "CharacterString") == 0) { cs = 1; *char_string = 1; } } if (strcmp ((const char *) (cur_node->name), "abstract") == 0) { ok_parent = 0; parent = cur_node->parent; if (parent) { if (strcmp ((const char *) (parent->name), "MD_DataIdentification") == 0) ok_parent++; } if (ok_parent == 1) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "identificationInfo") == 0) ok_parent++; } if (ok_parent == 2) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "MD_Metadata") == 0) ok_parent++; } if (ok_parent == 3) { /* only if <MD_Metadata> / <identificationInfo> / <MD_DataIdentification> / <abstract> */ open = 1; *open_tag = 1; } } } if (cur_node->type == XML_TEXT_NODE && *open_tag == 1 && *char_string == 1) { if (cur_node->content != NULL) { int len = strlen ((const char *) cur_node->content); char *buf = malloc (len + 1); strcpy (buf, (const char *) cur_node->content); if (*string) free (*string); *string = buf; *count += 1; } } find_iso_abstract (cur_node->children, string, open_tag, char_string, count); if (open) *open_tag = 0; if (cs) *char_string = 0; } } static void find_bbox_coord (xmlNodePtr node, const char *name, double *coord, int *open_tag, int *decimal, int *count) { /* recursively scanning an EX_GeographicBoundingBox sub-tree */ xmlNode *cur_node = NULL; int open = 0; int dec = 0; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (*open_tag == 1) { if (strcmp ((const char *) (cur_node->name), "Decimal") == 0) { dec = 1; *decimal = 1; } } if (strcmp ((const char *) (cur_node->name), name) == 0) { open = 1; *open_tag = 1; } } if (cur_node->type == XML_TEXT_NODE && *open_tag == 1 && *decimal == 1) { if (cur_node->content != NULL) { /* found a coord value */ double value = atof ((const char *) cur_node->content); *coord = value; *count += 1; } } find_bbox_coord (cur_node->children, name, coord, open_tag, decimal, count); if (open) *open_tag = 0; if (dec) *decimal = 0; } } static int parse_bounding_box (xmlNodePtr node, double *minx, double *miny, double *maxx, double *maxy) { /* attempting to parse an EX_GeographicBoundingBox sub-tree */ int ok_minx = 0; int ok_miny = 0; int ok_maxx = 0; int ok_maxy = 0; int open_tag; int decimal; int count; double coord; /* retrieving minx - West */ open_tag = 0; decimal = 0; count = 0; find_bbox_coord (node, "westBoundLongitude", &coord, &open_tag, &decimal, &count); if (count == 1) { *minx = coord; ok_minx = 1; } /* retrieving maxx - East */ open_tag = 0; decimal = 0; count = 0; find_bbox_coord (node, "eastBoundLongitude", &coord, &open_tag, &decimal, &count); if (count == 1) { *maxx = coord; ok_maxx = 1; } /* retrieving miny - South */ open_tag = 0; decimal = 0; count = 0; find_bbox_coord (node, "southBoundLatitude", &coord, &open_tag, &decimal, &count); if (count == 1) { *miny = coord; ok_miny = 1; } /* retrieving maxy - North */ open_tag = 0; decimal = 0; count = 0; find_bbox_coord (node, "northBoundLatitude", &coord, &open_tag, &decimal, &count); if (count == 1) { *maxy = coord; ok_maxy = 1; } if (ok_minx && ok_miny && ok_maxx && ok_maxy) { /* ok, valid BBOX */ return 1; } return 0; } static void find_iso_geometry (xmlNodePtr node, gaiaGeomCollPtr * geom) { /* recursively scanning the DOM tree [geometry] */ xmlNode *cur_node = NULL; xmlNode *parent; int ok_parent; for (cur_node = node; cur_node; cur_node = cur_node->next) { if (cur_node->type == XML_ELEMENT_NODE) { if (strcmp ((const char *) (cur_node->name), "EX_GeographicBoundingBox") == 0) { ok_parent = 0; parent = cur_node->parent; if (parent) { if (strcmp ((const char *) (parent->name), "geographicElement") == 0) ok_parent++; } if (ok_parent == 1) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "EX_Extent") == 0) ok_parent++; } if (ok_parent == 2) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "extent") == 0) ok_parent++; } if (ok_parent == 3) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "MD_DataIdentification") == 0) ok_parent++; } if (ok_parent == 4) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "identificationInfo") == 0) ok_parent++; } if (ok_parent == 5) { parent = parent->parent; if (strcmp ((const char *) (parent->name), "MD_Metadata") == 0) ok_parent++; } if (ok_parent == 6) { /* only if <MD_Metadata> / <identificationInfo> / <MD_DataIdentification> / <extent> / <EX_Extent> / <geographicElement> / <EX_GeographicBoundingBox> */ double minx = 0.0; double maxx = 0.0; double miny = 0.0; double maxy = 0.0; if (parse_bounding_box (cur_node, &minx, &miny, &maxx, &maxy)) { gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaGeomCollPtr g = *geom; if (g == NULL) { g = gaiaAllocGeomColl (); g->Srid = 4326; g->DeclaredType = GAIA_MULTIPOLYGON; } pg = gaiaAddPolygonToGeomColl (g, 5, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, minx, miny); gaiaSetPoint (rng->Coords, 1, maxx, miny); gaiaSetPoint (rng->Coords, 2, maxx, maxy); gaiaSetPoint (rng->Coords, 3, minx, maxy); gaiaSetPoint (rng->Coords, 4, minx, miny); *geom = g; } } } } find_iso_geometry (cur_node->children, geom); } } static void retrieve_iso_identifiers (xmlDocPtr xml_doc, char **fileIdentifier, char **parentIdentifier, char **title, char **abstract, unsigned char **geometry, short *geometry_len) { /* / attempting to retrieve the FileIdentifier, ParentIdentifier, / Title, Abstract and Geometry items from an ISO Metadata document */ xmlNodePtr root = xmlDocGetRootElement (xml_doc); int open_tag; int char_string; int count; char *string; gaiaGeomCollPtr geom = NULL; *fileIdentifier = NULL; *parentIdentifier = NULL; *title = NULL; *abstract = NULL; *geometry = NULL; /* attempting to retrieve the FileIdentifier item */ open_tag = 0; char_string = 0; count = 0; string = NULL; find_iso_ids (root, "fileIdentifier", &string, &open_tag, &char_string, &count); if (string) { if (count == 1) *fileIdentifier = string; else free (string); } /* attempting to retrieve the ParentIdentifier item */ open_tag = 0; char_string = 0; count = 0; string = NULL; find_iso_ids (root, "parentIdentifier", &string, &open_tag, &char_string, &count); if (string) { if (count == 1) *parentIdentifier = string; else free (string); } /* attempting to retrieve the Title item */ open_tag = 0; char_string = 0; count = 0; string = NULL; find_iso_title (root, &string, &open_tag, &char_string, &count); if (string) { if (count == 1) *title = string; else free (string); } /* attempting to retrieve the Abstract item */ open_tag = 0; char_string = 0; count = 0; string = NULL; find_iso_abstract (root, &string, &open_tag, &char_string, &count); if (string) { if (count == 1) *abstract = string; else free (string); } /* attempting to retrieve the Geometry item */ open_tag = 0; char_string = 0; count = 0; string = NULL; find_iso_geometry (root, &geom); if (geom) { int blob_len; unsigned char *blob = NULL; gaiaMbrGeometry (geom); gaiaToSpatiaLiteBlobWkb (geom, &blob, &blob_len); gaiaFreeGeomColl (geom); *geometry = blob; *geometry_len = (short) blob_len; } } static void find_sld_name (xmlNodePtr node, char **string) { /* recursively scanning the DOM tree [name] */ while (node) { if (node->type == XML_ELEMENT_NODE) { const char *name = (const char *) (node->name); if (strcmp (name, "Name") == 0) { xmlNodePtr child = node->children; if (child) { if (child->type == XML_TEXT_NODE) { int len; const char *value = (const char *) (child->content); len = strlen (value); if (*string != NULL) free (*string); *string = malloc (len + 1); strcpy (*string, value); } } } } node = node->next; } } static void find_sld_title (xmlNodePtr node, char **string) { /* recursively scanning the DOM tree [title] */ while (node) { if (node->type == XML_ELEMENT_NODE) { const char *name = (const char *) (node->name); if (strcmp (name, "Title") == 0) { xmlNodePtr child = node->children; if (child) { if (child->type == XML_TEXT_NODE) { int len; const char *value = (const char *) (child->content); len = strlen (value); if (*string != NULL) free (*string); *string = malloc (len + 1); strcpy (*string, value); } } } if (strcmp (name, "Description") == 0) find_sld_title (node->children, string); } node = node->next; } } static void find_sld_abstract (xmlNodePtr node, char **string) { /* recursively scanning the DOM tree [abstract] */ while (node) { if (node->type == XML_ELEMENT_NODE) { const char *name = (const char *) (node->name); if (strcmp (name, "Abstract") == 0) { xmlNodePtr child = node->children; if (child) { if (child->type == XML_TEXT_NODE) { int len; const char *value = (const char *) (child->content); len = strlen (value); if (*string != NULL) free (*string); *string = malloc (len + 1); strcpy (*string, value); } } } if (strcmp (name, "Description") == 0) find_sld_abstract (node->children, string); } node = node->next; } } static void retrieve_sld_identifiers (xmlDocPtr xml_doc, char **name, char **title, char **abstract) { /* / attempting to retrieve the Name, Title and Abstract items / from an SLD Style document */ xmlNodePtr root = xmlDocGetRootElement (xml_doc); char *string; const char *xname = (const char *) (root->name); *name = NULL; *title = NULL; *abstract = NULL; if (xname != NULL) { if (strcmp (xname, "StyledLayerDescriptor") != 0) return; } /* attempting to retrieve the Name item */ string = NULL; find_sld_name (root->children, &string); if (string) *name = string; /* attempting to retrieve the Title item */ string = NULL; find_sld_title (root->children, &string); if (string) *title = string; /* attempting to retrieve the Abstract item */ string = NULL; find_sld_abstract (root->children, &string); if (string) *abstract = string; } static void find_sld_se_name (xmlNodePtr node, char **string, int *style, int *rule) { /* recursively scanning the DOM tree [name] */ int is_style = 0; int is_rule = 0; while (node) { if (node->type == XML_ELEMENT_NODE) { const char *name = (const char *) (node->name); if (strcmp (name, "FeatureTypeStyle") == 0 || strcmp (name, "CoverageStyle") == 0) { is_style = 1; *style = 1; } if (strcmp (name, "Rule") == 0) { is_rule = 1; *rule = 1; } if (strcmp (name, "Name") == 0) { if (*style == 1 && *rule == 0) { xmlNodePtr child = node->children; if (child) { if (child->type == XML_TEXT_NODE) { int len; const char *value = (const char *) (child->content); len = strlen (value); if (*string != NULL) free (*string); *string = malloc (len + 1); strcpy (*string, value); } } } } } find_sld_se_name (node->children, string, style, rule); if (is_style) *style = 0; if (is_rule) *rule = 0; node = node->next; } } static void find_sld_se_title (xmlNodePtr node, char **string, int *style, int *rule) { /* recursively scanning the DOM tree [title] */ int is_style = 0; int is_rule = 0; while (node) { if (node->type == XML_ELEMENT_NODE) { const char *name = (const char *) (node->name); if (strcmp (name, "FeatureTypeStyle") == 0 || strcmp (name, "CoverageStyle") == 0) { is_style = 1; *style = 1; } if (strcmp (name, "Rule") == 0) { is_rule = 1; *rule = 1; } if (strcmp (name, "Title") == 0) { if (*style == 1 && *rule == 0) { xmlNodePtr child = node->children; if (child) { if (child->type == XML_TEXT_NODE) { int len; const char *value = (const char *) (child->content); len = strlen (value); if (*string != NULL) free (*string); *string = malloc (len + 1); strcpy (*string, value); } } } } } find_sld_se_title (node->children, string, style, rule); if (is_style) *style = 0; if (is_rule) *rule = 0; node = node->next; } } static void find_sld_se_abstract (xmlNodePtr node, char **string, int *style, int *rule) { /* recursively scanning the DOM tree [abstract] */ int is_style = 0; int is_rule = 0; while (node) { if (node->type == XML_ELEMENT_NODE) { const char *name = (const char *) (node->name); if (strcmp (name, "FeatureTypeStyle") == 0 || strcmp (name, "CoverageStyle") == 0) { is_style = 1; *style = 1; } if (strcmp (name, "Rule") == 0) { is_rule = 1; *rule = 1; } if (strcmp (name, "Abstract") == 0) { if (*style == 1 && *rule == 0) { xmlNodePtr child = node->children; if (child) { if (child->type == XML_TEXT_NODE) { int len; const char *value = (const char *) (child->content); len = strlen (value); if (*string != NULL) free (*string); *string = malloc (len + 1); strcpy (*string, value); } } } } } find_sld_se_abstract (node->children, string, style, rule); if (is_style) *style = 0; if (is_rule) *rule = 0; node = node->next; } } static void retrieve_sld_se_identifiers (xmlDocPtr xml_doc, char **name, char **title, char **abstract) { /* / attempting to retrieve the Name, Title and Abstract items / from an SLD/SE Style document */ xmlNodePtr root = xmlDocGetRootElement (xml_doc); int style; int rule; char *string; const char *xname = (const char *) (root->name); *name = NULL; *title = NULL; *abstract = NULL; /* attempting to retrieve the Name item */ style = 0; rule = 0; string = NULL; if (xname != NULL) { if (strcmp (xname, "PointSymbolizer") == 0 || strcmp (xname, "LineSymbolizer") == 0 || strcmp (xname, "PolygonSymbolizer") == 0 || strcmp (xname, "TextSymbolizer") == 0 || strcmp (xname, "RasterSymbolizer") == 0) style = 1; } find_sld_se_name (root, &string, &style, &rule); if (string) *name = string; /* attempting to retrieve the Title item */ style = 0; rule = 0; string = NULL; if (xname != NULL) { if (strcmp (xname, "PointSymbolizer") == 0 || strcmp (xname, "LineSymbolizer") == 0 || strcmp (xname, "PolygonSymbolizer") == 0 || strcmp (xname, "TextSymbolizer") == 0 || strcmp (xname, "RasterSymbolizer") == 0) style = 1; } find_sld_se_title (root, &string, &style, &rule); if (string) *title = string; /* attempting to retrieve the Abstract item */ style = 0; rule = 0; string = NULL; if (xname != NULL) { if (strcmp (xname, "PointSymbolizer") == 0 || strcmp (xname, "LineSymbolizer") == 0 || strcmp (xname, "PolygonSymbolizer") == 0 || strcmp (xname, "TextSymbolizer") == 0 || strcmp (xname, "RasterSymbolizer") == 0) style = 1; } find_sld_se_abstract (root, &string, &style, &rule); if (string) *abstract = string; } GAIAGEO_DECLARE void gaiaXmlToBlob (const void *p_cache, const unsigned char *xml, int xml_len, int compressed, const char *schemaURI, unsigned char **result, int *size, char **parsing_errors, char **schema_validation_errors) { /* attempting to build an XmlBLOB buffer */ xmlDocPtr xml_doc; xmlDocPtr schema_doc; xmlSchemaPtr schema = NULL; xmlSchemaParserCtxtPtr parser_ctxt; xmlSchemaValidCtxtPtr valid_ctxt; int is_iso_metadata = 0; int is_sld_se_vector_style = 0; int is_sld_se_raster_style = 0; int is_sld_style = 0; int is_svg = 0; int len; int zip_len; short uri_len = 0; short fileid_len = 0; short parentid_len = 0; short name_len = 0; short title_len = 0; short abstract_len = 0; short geometry_len = 0; char *fileIdentifier = NULL; char *parentIdentifier = NULL; char *name = NULL; char *title = NULL; char *abstract = NULL; unsigned char *geometry = NULL; uLong crc; Bytef *zip_buf; unsigned char *buf; unsigned char *ptr; unsigned char flags = 0x00; int endian_arch = gaiaEndianArch (); struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; gaiaOutBufferPtr parsingBuf = NULL; gaiaOutBufferPtr schemaValidationBuf = NULL; xmlGenericErrorFunc silentError = NULL; xmlGenericErrorFunc parsingError = NULL; xmlGenericErrorFunc schemaError = NULL; if (is_valid_cache (cache)) { parsingBuf = (gaiaOutBufferPtr) (cache->xmlParsingErrors); schemaValidationBuf = (gaiaOutBufferPtr) (cache->xmlSchemaValidationErrors); parsingError = (xmlGenericErrorFunc) spliteParsingError; schemaError = (xmlGenericErrorFunc) spliteSchemaValidationError; spliteResetXmlErrors (cache); } *result = NULL; *size = 0; if (parsing_errors) *parsing_errors = NULL; if (schema_validation_errors) *schema_validation_errors = NULL; if (xml == NULL) return; xmlSetGenericErrorFunc (NULL, silentError); if (schemaURI != NULL) { if (splite_xmlSchemaCacheFind (cache, schemaURI, &schema_doc, &parser_ctxt, &schema)) ; else { /* preparing the Schema */ xmlSetGenericErrorFunc (cache, schemaError); schema_doc = xmlReadFile ((const char *) schemaURI, NULL, 0); if (schema_doc == NULL) { spatialite_e ("unable to load the Schema\n"); if (schema_validation_errors) *schema_validation_errors = schemaValidationBuf->Buffer; xmlSetGenericErrorFunc ((void *) stderr, NULL); return; } parser_ctxt = xmlSchemaNewDocParserCtxt (schema_doc); if (parser_ctxt == NULL) { spatialite_e ("unable to prepare the Schema Context\n"); xmlFreeDoc (schema_doc); if (schema_validation_errors) *schema_validation_errors = schemaValidationBuf->Buffer; xmlSetGenericErrorFunc ((void *) stderr, NULL); return; } schema = xmlSchemaParse (parser_ctxt); if (schema == NULL) { spatialite_e ("invalid Schema\n"); xmlFreeDoc (schema_doc); if (schema_validation_errors) *schema_validation_errors = schemaValidationBuf->Buffer; xmlSetGenericErrorFunc ((void *) stderr, NULL); return; } splite_xmlSchemaCacheInsert (cache, schemaURI, schema_doc, parser_ctxt, schema); } } /* testing if the XMLDocument is well-formed */ xmlSetGenericErrorFunc (cache, parsingError); xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ spatialite_e ("XML parsing error\n"); if (parsing_errors && parsingBuf) *parsing_errors = parsingBuf->Buffer; xmlSetGenericErrorFunc ((void *) stderr, NULL); return; } if (parsing_errors && parsingBuf) *parsing_errors = parsingBuf->Buffer; if (schemaURI != NULL) { /* Schema validation */ xmlSetGenericErrorFunc (cache, schemaError); valid_ctxt = xmlSchemaNewValidCtxt (schema); if (valid_ctxt == NULL) { spatialite_e ("unable to prepare a validation context\n"); xmlFreeDoc (xml_doc); if (schema_validation_errors && schemaValidationBuf) *schema_validation_errors = schemaValidationBuf->Buffer; xmlSetGenericErrorFunc ((void *) stderr, NULL); return; } if (xmlSchemaValidateDoc (valid_ctxt, xml_doc) != 0) { spatialite_e ("Schema validation failed\n"); xmlSchemaFreeValidCtxt (valid_ctxt); xmlFreeDoc (xml_doc); if (schema_validation_errors && schemaValidationBuf) *schema_validation_errors = schemaValidationBuf->Buffer; xmlSetGenericErrorFunc ((void *) stderr, NULL); return; } xmlSchemaFreeValidCtxt (valid_ctxt); } /* testing for special cases: ISO Metadata, SLD/SE Styles and SVG */ sniff_payload (xml_doc, &is_iso_metadata, &is_sld_se_vector_style, &is_sld_se_raster_style, &is_sld_style, &is_svg); if (is_iso_metadata) retrieve_iso_identifiers (xml_doc, &fileIdentifier, &parentIdentifier, &title, &abstract, &geometry, &geometry_len); if (is_sld_style) retrieve_sld_identifiers (xml_doc, &name, &title, &abstract); else if (is_sld_se_vector_style || is_sld_se_raster_style) retrieve_sld_se_identifiers (xml_doc, &name, &title, &abstract); xmlFreeDoc (xml_doc); if (compressed) { /* compressing the XML payload */ uLong zLen = compressBound (xml_len); zip_buf = malloc (zLen); if (compress (zip_buf, &zLen, (const Bytef *) xml, (uLong) xml_len) != Z_OK) { /* compression error */ spatialite_e ("XmlBLOB DEFLATE compress error\n"); free (zip_buf); xmlSetGenericErrorFunc ((void *) stderr, NULL); return; } zip_len = (int) zLen; } else zip_len = xml_len; /* reporting errors */ if (parsing_errors && parsingBuf) *parsing_errors = parsingBuf->Buffer; if (schema_validation_errors && schemaValidationBuf) *schema_validation_errors = schemaValidationBuf->Buffer; /* computing the XmlBLOB size */ len = 39; /* fixed header-footer size */ if (schemaURI) uri_len = strlen ((const char *) schemaURI); if (fileIdentifier) fileid_len = strlen ((const char *) fileIdentifier); if (parentIdentifier) parentid_len = strlen ((const char *) parentIdentifier); if (name) name_len = strlen ((const char *) name); if (title) title_len = strlen ((const char *) title); if (abstract) abstract_len = strlen ((const char *) abstract); len += zip_len; len += uri_len; len += fileid_len; len += parentid_len; len += name_len; len += title_len; len += abstract_len; len += geometry_len; buf = malloc (len); *buf = GAIA_XML_START; /* START signature */ flags |= GAIA_XML_LITTLE_ENDIAN; if (compressed) flags |= GAIA_XML_COMPRESSED; if (schemaURI != NULL) flags |= GAIA_XML_VALIDATED; if (is_iso_metadata) flags |= GAIA_XML_ISO_METADATA; if (is_sld_se_vector_style) flags |= GAIA_XML_SLD_SE_VECTOR_STYLE; if (is_sld_se_raster_style) flags |= GAIA_XML_SLD_SE_RASTER_STYLE; if (is_sld_style) flags |= GAIA_XML_SLD_STYLE; if (is_svg) flags |= GAIA_XML_SVG; *(buf + 1) = flags; /* XmlBLOB flags */ *(buf + 2) = GAIA_XML_HEADER; /* HEADER signature */ gaiaExport32 (buf + 3, xml_len, 1, endian_arch); /* the uncompressed XMLDocument size */ gaiaExport32 (buf + 7, zip_len, 1, endian_arch); /* the compressed XMLDocument size */ gaiaExport16 (buf + 11, uri_len, 1, endian_arch); /* the SchemaURI length in bytes */ *(buf + 13) = GAIA_XML_SCHEMA; /* SCHEMA signature */ ptr = buf + 14; if (schemaURI) { /* the SchemaURI */ memcpy (ptr, schemaURI, uri_len); ptr += uri_len; } gaiaExport16 (ptr, fileid_len, 1, endian_arch); /* the FileIdentifier length in bytes */ ptr += 2; *ptr = GAIA_XML_FILEID; /* FileIdentifier signature */ ptr++; if (fileIdentifier) { /* the FileIdentifier */ memcpy (ptr, fileIdentifier, fileid_len); free (fileIdentifier); ptr += fileid_len; } gaiaExport16 (ptr, parentid_len, 1, endian_arch); /* the ParentIdentifier length in bytes */ ptr += 2; *ptr = GAIA_XML_PARENTID; /* ParentIdentifier signature */ ptr++; if (parentIdentifier) { /* the ParentIdentifier */ memcpy (ptr, parentIdentifier, parentid_len); free (parentIdentifier); ptr += parentid_len; } gaiaExport16 (ptr, name_len, 1, endian_arch); /* the Name length in bytes */ ptr += 2; *ptr = GAIA_XML_NAME; /* Title signature */ ptr++; if (name) { /* the Name */ memcpy (ptr, name, name_len); free (name); ptr += name_len; } gaiaExport16 (ptr, title_len, 1, endian_arch); /* the Title length in bytes */ ptr += 2; *ptr = GAIA_XML_TITLE; /* Title signature */ ptr++; if (title) { /* the Title */ memcpy (ptr, title, title_len); free (title); ptr += title_len; } gaiaExport16 (ptr, abstract_len, 1, endian_arch); /* the Abstract length in bytes */ ptr += 2; *ptr = GAIA_XML_ABSTRACT; /* Abstract signature */ ptr++; if (abstract) { /* the Abstract */ memcpy (ptr, abstract, abstract_len); free (abstract); ptr += abstract_len; } gaiaExport16 (ptr, geometry_len, 1, endian_arch); /* the Geometry length in bytes */ ptr += 2; *ptr = GAIA_XML_GEOMETRY; /* Geometry signature */ ptr++; if (geometry) { /* the Geometry */ memcpy (ptr, geometry, geometry_len); free (geometry); ptr += geometry_len; } *ptr = GAIA_XML_PAYLOAD; /* PAYLOAD signature */ ptr++; if (compressed) { /* the compressed XML payload */ memcpy (ptr, zip_buf, zip_len); free (zip_buf); ptr += zip_len; } else { /* the uncompressed XML payload */ memcpy (ptr, xml, xml_len); ptr += xml_len; } *ptr = GAIA_XML_CRC32; /* CRC32 signature */ ptr++; /* computing the CRC32 */ crc = crc32 (0L, buf, ptr - buf); gaiaExportU32 (ptr, crc, 1, endian_arch); /* the CRC32 */ ptr += 4; *ptr = GAIA_XML_END; /* END signature */ *result = buf; *size = len; xmlSetGenericErrorFunc ((void *) stderr, NULL); } GAIAGEO_DECLARE void gaiaXmlBlobCompression (const unsigned char *blob, int in_size, int compressed, unsigned char **result, int *out_size) { /* Return another XmlBLOB buffer compressed / uncompressed */ int in_compressed = 0; int little_endian = 0; unsigned char flag; int in_xml_len; int in_zip_len; short uri_len; short fileid_len; short parentid_len; short name_len; short title_len; short abstract_len; short geometry_len; int out_xml_len; int out_zip_len; uLong crc; Bytef *zip_buf; int len; char *schemaURI; char *fileIdentifier; char *parentIdentifier; char *name; char *title; char *abstract; unsigned char *geometry; int is_iso_metadata = 0; int is_sld_se_vector_style = 0; int is_sld_se_raster_style = 0; int is_sld_style = 0; int is_svg = 0; unsigned char *xml; unsigned char *buf; unsigned char *ptr; unsigned char flags; int legacy_blob = 0; int endian_arch = gaiaEndianArch (); *result = NULL; *out_size = 0; /* validity check */ if (!gaiaIsValidXmlBlob (blob, in_size)) return; /* cannot be an XmlBLOB */ if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) legacy_blob = 1; flag = *(blob + 1); flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) in_compressed = 1; if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA) is_iso_metadata = 1; if ((flag & GAIA_XML_SLD_SE_VECTOR_STYLE) == GAIA_XML_SLD_SE_VECTOR_STYLE) is_sld_se_vector_style = 1; if ((flag & GAIA_XML_SLD_SE_RASTER_STYLE) == GAIA_XML_SLD_SE_RASTER_STYLE) is_sld_se_raster_style = 1; if ((flag & GAIA_XML_SLD_STYLE) == GAIA_XML_SLD_STYLE) is_sld_style = 1; if ((flag & GAIA_XML_SVG) == GAIA_XML_SVG) is_svg = 1; in_xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); in_zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); uri_len = gaiaImport16 (blob + 11, little_endian, endian_arch); ptr = (unsigned char *) blob + 14; if (uri_len) { schemaURI = (char *) ptr; ptr += uri_len; } else { schemaURI = NULL; } fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3; if (fileid_len) { fileIdentifier = (char *) ptr; ptr += fileid_len; } else { fileIdentifier = NULL; } parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3; if (parentid_len) { parentIdentifier = (char *) ptr; ptr += parentid_len; } else { parentIdentifier = NULL; } if (!legacy_blob) { name_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3; if (name_len) { name = (char *) ptr; ptr += name_len; } else { name = NULL; } } else { name_len = 0; name = NULL; } title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3; if (title_len) { title = (char *) ptr; ptr += title_len; } else { title = NULL; } abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3; if (abstract_len) { abstract = (char *) ptr; ptr += abstract_len; } else { abstract = NULL; } geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3; if (geometry_len) { geometry = (unsigned char *) ptr; ptr += geometry_len; } else { geometry = NULL; } ptr++; if (in_compressed == compressed) { /* unchanged compression */ out_xml_len = in_xml_len; out_zip_len = in_zip_len; zip_buf = (unsigned char *) ptr; } else if (compressed) { /* compressing the XML payload */ uLong zLen; out_xml_len = in_xml_len; zLen = compressBound (out_xml_len); xml = (unsigned char *) ptr; zip_buf = malloc (zLen); if (compress (zip_buf, &zLen, (const Bytef *) xml, (uLong) out_xml_len) != Z_OK) { /* compression error */ spatialite_e ("XmlBLOB DEFLATE compress error\n"); free (zip_buf); return; } out_zip_len = (int) zLen; } else { /* unzipping the XML payload */ uLong refLen = in_xml_len; const Bytef *in = ptr; xml = malloc (in_xml_len + 1); if (uncompress (xml, &refLen, in, in_zip_len) != Z_OK) { /* uncompress error */ spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); free (xml); return; } *(xml + in_xml_len) = '\0'; out_xml_len = in_xml_len; out_zip_len = out_xml_len; } /* computing the XmlBLOB size */ len = 39; /* fixed header-footer size */ len += out_zip_len; len += uri_len; len += fileid_len; len += parentid_len; len += name_len; len += title_len; len += abstract_len; len += geometry_len; buf = malloc (len); *buf = GAIA_XML_START; /* START signature */ flags = 0x00; flags |= GAIA_XML_LITTLE_ENDIAN; if (compressed) flags |= GAIA_XML_COMPRESSED; if (schemaURI != NULL) flags |= GAIA_XML_VALIDATED; if (is_iso_metadata) flags |= GAIA_XML_ISO_METADATA; if (is_sld_se_vector_style) flags |= GAIA_XML_SLD_SE_VECTOR_STYLE; if (is_sld_se_raster_style) flags |= GAIA_XML_SLD_SE_RASTER_STYLE; if (is_sld_style) flags |= GAIA_XML_SLD_STYLE; if (is_svg) flags |= GAIA_XML_SVG; *(buf + 1) = flags; /* XmlBLOB flags */ *(buf + 2) = GAIA_XML_HEADER; /* HEADER signature */ gaiaExport32 (buf + 3, out_xml_len, 1, endian_arch); /* the uncompressed XMLDocument size */ gaiaExport32 (buf + 7, out_zip_len, 1, endian_arch); /* the compressed XMLDocument size */ gaiaExport16 (buf + 11, uri_len, 1, endian_arch); /* the SchemaURI length in bytes */ *(buf + 13) = GAIA_XML_SCHEMA; /* SCHEMA signature */ ptr = buf + 14; if (schemaURI) { /* the SchemaURI */ memcpy (ptr, schemaURI, uri_len); ptr += uri_len; } gaiaExport16 (ptr, fileid_len, 1, endian_arch); /* the FileIdentifier length in bytes */ ptr += 2; *ptr = GAIA_XML_FILEID; /* FileIdentifier signature */ ptr++; if (fileIdentifier) { /* the FileIdentifier */ memcpy (ptr, fileIdentifier, fileid_len); ptr += fileid_len; } gaiaExport16 (ptr, parentid_len, 1, endian_arch); /* the ParentIdentifier length in bytes */ ptr += 2; *ptr = GAIA_XML_PARENTID; /* ParentIdentifier signature */ ptr++; if (parentIdentifier) { /* the ParentIdentifier */ memcpy (ptr, parentIdentifier, parentid_len); ptr += parentid_len; } gaiaExport16 (ptr, name_len, 1, endian_arch); /* the Name length in bytes */ ptr += 2; *ptr = GAIA_XML_NAME; /* Name signature */ ptr++; if (name) { /* the Name */ memcpy (ptr, name, name_len); ptr += name_len; } gaiaExport16 (ptr, title_len, 1, endian_arch); /* the Title length in bytes */ ptr += 2; *ptr = GAIA_XML_TITLE; /* Title signature */ ptr++; if (title) { /* the Title */ memcpy (ptr, title, title_len); ptr += title_len; } gaiaExport16 (ptr, abstract_len, 1, endian_arch); /* the Abstract length in bytes */ ptr += 2; *ptr = GAIA_XML_ABSTRACT; /* Abstract signature */ ptr++; if (abstract) { /* the Abstract */ memcpy (ptr, abstract, abstract_len); ptr += abstract_len; } gaiaExport16 (ptr, geometry_len, 1, endian_arch); /* the Geometry length in bytes */ ptr += 2; *ptr = GAIA_XML_GEOMETRY; /* Geometry signature */ ptr++; if (geometry) { /* the Geometry */ memcpy (ptr, geometry, geometry_len); ptr += geometry_len; } *ptr = GAIA_XML_PAYLOAD; /* PAYLOAD signature */ ptr++; if (in_compressed == compressed) { /* the unchanged XML payload */ memcpy (ptr, zip_buf, out_zip_len); ptr += out_zip_len; } else if (compressed) { /* the compressed XML payload */ memcpy (ptr, zip_buf, out_zip_len); free (zip_buf); ptr += out_zip_len; } else { /* the uncompressed XML payload */ memcpy (ptr, xml, out_xml_len); free (xml); ptr += out_xml_len; } *ptr = GAIA_XML_CRC32; /* CRC32 signature */ ptr++; /* computing the CRC32 */ crc = crc32 (0L, buf, ptr - buf); gaiaExportU32 (ptr, crc, 1, endian_arch); /* the CRC32 */ ptr += 4; *ptr = GAIA_XML_END; /* END signature */ *result = buf; *out_size = len; } static int is_valid_legacy_xml_blob (const unsigned char *blob, int blob_size) { /* Checks if a BLOB actually is a valid LEGACY XmlBLOB buffer */ int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; short title_len; short abstract_len; short geometry_len; uLong crc; uLong refCrc; int endian_arch = gaiaEndianArch (); /* validity check */ if (blob_size < 36) return 0; /* cannot be an XmlBLOB */ if (*blob != GAIA_XML_START) return 0; /* failed to recognize START signature */ if (*(blob + (blob_size - 1)) != GAIA_XML_END) return 0; /* failed to recognize END signature */ if (*(blob + (blob_size - 6)) != GAIA_XML_CRC32) return 0; /* failed to recognize CRC32 signature */ if (*(blob + 2) != GAIA_XML_LEGACY_HEADER) return 0; /* failed to recognize HEADER signature */ if (*(blob + 13) != GAIA_XML_SCHEMA) return 0; /* failed to recognize SCHEMA signature */ flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_SCHEMA) return 0; ptr++; ptr += uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_FILEID) return 0; ptr++; ptr += fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_PARENTID) return 0; ptr++; ptr += parentid_len; title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_TITLE) return 0; ptr++; ptr += title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_ABSTRACT) return 0; ptr++; ptr += abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_GEOMETRY) return 0; ptr++; ptr += geometry_len; if (*ptr != GAIA_XML_PAYLOAD) return 0; /* verifying the CRC32 */ crc = crc32 (0L, blob, blob_size - 5); refCrc = gaiaImportU32 (blob + blob_size - 5, little_endian, endian_arch); if (crc != refCrc) return 0; return 1; } GAIAGEO_DECLARE int gaiaIsValidXmlBlob (const unsigned char *blob, int blob_size) { /* Checks if a BLOB actually is a valid XmlBLOB buffer */ int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; short name_len; short title_len; short abstract_len; short geometry_len; uLong crc; uLong refCrc; int endian_arch = gaiaEndianArch (); if (blob_size > 3) { /* legacy format */ if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) return is_valid_legacy_xml_blob (blob, blob_size); } /* validity check */ if (blob_size < 39) return 0; /* cannot be an XmlBLOB */ if (*blob != GAIA_XML_START) return 0; /* failed to recognize START signature */ if (*(blob + (blob_size - 1)) != GAIA_XML_END) return 0; /* failed to recognize END signature */ if (*(blob + (blob_size - 6)) != GAIA_XML_CRC32) return 0; /* failed to recognize CRC32 signature */ if (*(blob + 2) != GAIA_XML_HEADER) return 0; /* failed to recognize HEADER signature */ if (*(blob + 13) != GAIA_XML_SCHEMA) return 0; /* failed to recognize SCHEMA signature */ flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_SCHEMA) return 0; ptr++; ptr += uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_FILEID) return 0; ptr++; ptr += fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_PARENTID) return 0; ptr++; ptr += parentid_len; name_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_NAME) return 0; ptr++; ptr += name_len; title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_TITLE) return 0; ptr++; ptr += title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_ABSTRACT) return 0; ptr++; ptr += abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 2; if (*ptr != GAIA_XML_GEOMETRY) return 0; ptr++; ptr += geometry_len; if (*ptr != GAIA_XML_PAYLOAD) return 0; /* verifying the CRC32 */ crc = crc32 (0L, blob, blob_size - 5); refCrc = gaiaImportU32 (blob + blob_size - 5, little_endian, endian_arch); if (crc != refCrc) return 0; return 1; } static void find_xml_namespaces (xmlNode * node, struct gaiaxml_ns_list *list) { /* recursively identifying all XML Namespaces from DOM-nodes */ struct _xmlAttr *attr; while (node) { xmlNs *ns = node->ns; if (ns != NULL) splite_add_namespace (list, ns->type, ns->prefix, ns->href); attr = node->properties; while (attr != NULL) { ns = attr->ns; if (ns != NULL) splite_add_namespace (list, ns->type, ns->prefix, ns->href); attr = attr->next; } find_xml_namespaces (node->children, list); node = node->next; } } static void xml_out (gaiaOutBufferPtr buf, const xmlChar * str) { /* clean XML output */ const xmlChar *p = str; while (*p != '\0') { if (*p == '>') gaiaAppendToOutBuffer (buf, ">"); else if (*p == '<') gaiaAppendToOutBuffer (buf, "<"); else if (*p == '&') gaiaAppendToOutBuffer (buf, "&"); else if (*p == '"') gaiaAppendToOutBuffer (buf, """); else if (*p == '\'') gaiaAppendToOutBuffer (buf, "'"); else { char xx[2]; xx[0] = *p; xx[1] = '\0'; gaiaAppendToOutBuffer (buf, xx); } p++; } } static void format_xml (xmlNode * root, xmlNode * node, struct gaiaxml_ns_list *list, gaiaOutBufferPtr buf, int indent, int *level) { /* recursively printing the XML-DOM nodes */ struct _xmlAttr *attr; xmlNode *child; xmlNs *ns; const xmlChar *namespace; char *indenting = NULL; const char no = '\0'; const char *pre; int tab; int width; int has_children; int has_text; if (!indent) pre = &no; else { if (indent <= 8) tab = indent; else tab = 8; width = tab * *level; indenting = malloc (width + 2); *indenting = '\n'; memset (indenting + 1, ' ', width); *(indenting + width + 1) = '\0'; pre = indenting; } while (node) { if (node->type == XML_COMMENT_NODE) { /* comment node */ if (*pre != '\0') gaiaAppendToOutBuffer (buf, "<!--"); else gaiaAppendToOutBuffer (buf, "\n<!--"); xml_out (buf, node->content); gaiaAppendToOutBuffer (buf, "-->"); } if (node->type == XML_ELEMENT_NODE) { if (*pre != '\0') gaiaAppendToOutBuffer (buf, pre); gaiaAppendToOutBuffer (buf, "<"); ns = node->ns; namespace = NULL; if (ns != NULL) namespace = ns->prefix; if (namespace) { xml_out (buf, namespace); gaiaAppendToOutBuffer (buf, ":"); } xml_out (buf, node->name); if (node == root) { /* Namespaces */ struct gaiaxml_namespace *p_ns = list->first; while (p_ns != NULL) { if (p_ns->prefix == NULL) gaiaAppendToOutBuffer (buf, " xmlns=\""); else { gaiaAppendToOutBuffer (buf, " xmlns:"); xml_out (buf, p_ns->prefix); gaiaAppendToOutBuffer (buf, "=\""); } xml_out (buf, p_ns->href); gaiaAppendToOutBuffer (buf, "\""); p_ns = p_ns->next; } } attr = node->properties; while (attr != NULL) { /* attributes */ if (attr->type == XML_ATTRIBUTE_NODE) { xmlNode *text = attr->children; gaiaAppendToOutBuffer (buf, " "); ns = attr->ns; namespace = NULL; if (ns != NULL) namespace = ns->prefix; if (namespace) { xml_out (buf, namespace); gaiaAppendToOutBuffer (buf, ":"); } xml_out (buf, attr->name); gaiaAppendToOutBuffer (buf, "=\""); if (text != NULL) { if (text->type == XML_TEXT_NODE) xml_out (buf, text->content); } gaiaAppendToOutBuffer (buf, "\""); } attr = attr->next; } has_children = 0; has_text = 0; child = node->children; while (child) { if (child->type == XML_ELEMENT_NODE || child->type == XML_COMMENT_NODE) has_children = 1; if (child->type == XML_TEXT_NODE) has_text++; child = child->next; } if (has_children) has_text = 0; if (!has_text && !has_children) gaiaAppendToOutBuffer (buf, " />"); if (has_text) { child = node->children; if (child->type == XML_TEXT_NODE) { /* text node */ gaiaAppendToOutBuffer (buf, ">"); xml_out (buf, child->content); gaiaAppendToOutBuffer (buf, "</"); ns = node->ns; namespace = NULL; if (ns != NULL) namespace = ns->prefix; if (namespace) { xml_out (buf, namespace); gaiaAppendToOutBuffer (buf, ":"); } xml_out (buf, node->name); gaiaAppendToOutBuffer (buf, ">"); } } if (has_children) { /* recursively expanding all children */ gaiaAppendToOutBuffer (buf, ">"); *level += 1; format_xml (root, node->children, list, buf, indent, level); *level -= 1; if (*pre != '\0') gaiaAppendToOutBuffer (buf, pre); gaiaAppendToOutBuffer (buf, "</"); ns = node->ns; namespace = NULL; if (ns != NULL) namespace = ns->prefix; if (namespace) { xml_out (buf, namespace); gaiaAppendToOutBuffer (buf, ":"); } xml_out (buf, node->name); gaiaAppendToOutBuffer (buf, ">"); } } node = node->next; } if (indenting) free (indenting); } static int gaiaXmlFormat (xmlDocPtr xml_doc, xmlChar ** out, int *out_len, const xmlChar * encoding, int indent) { /* reformatting an XML Document - properly indenting */ int level = 0; int ret; gaiaOutBuffer buf; const xmlChar *version = xml_doc->version; xmlNode *root = xmlDocGetRootElement (xml_doc); struct gaiaxml_ns_list *list = splite_create_ns_list (); gaiaOutBufferInitialize (&buf); if (encoding != NULL) { gaiaAppendToOutBuffer (&buf, "<?xml version=\""); gaiaAppendToOutBuffer (&buf, (const char *) version); gaiaAppendToOutBuffer (&buf, "\" encoding=\""); gaiaAppendToOutBuffer (&buf, (const char *) encoding); gaiaAppendToOutBuffer (&buf, "\"?>"); } else { gaiaAppendToOutBuffer (&buf, "<?xml version=\""); gaiaAppendToOutBuffer (&buf, (const char *) version); gaiaAppendToOutBuffer (&buf, "\"?>"); } find_xml_namespaces (root, list); format_xml (root, root, list, &buf, indent, &level); splite_free_ns_list (list); if (buf.Error == 0 && buf.Buffer != NULL) { xmlChar *output; /* terminating the last line */ gaiaAppendToOutBuffer (&buf, "\n"); output = malloc (buf.WriteOffset + 1); memcpy (output, buf.Buffer, buf.WriteOffset); /* NULL-terminated string */ *(output + buf.WriteOffset) = '\0'; *out = output; *out_len = buf.WriteOffset + 1; ret = 1; } else { *out = NULL; *out_len = 0; ret = 0; } gaiaOutBufferReset (&buf); return ret; } GAIAGEO_DECLARE char * gaiaXmlTextFromBlob (const unsigned char *blob, int blob_size, int indent) { /* attempting to extract an XMLDocument from within an XmlBLOB buffer */ int compressed = 0; int little_endian = 0; unsigned char flag; const unsigned char *ptr; int xml_len; int zip_len; short uri_len; short fileid_len; short parentid_len; short name_len = 0; short title_len; short abstract_len; short geometry_len; unsigned char *xml; xmlDocPtr xml_doc; xmlChar *out; int out_len; xmlChar *encoding = NULL; void *cvt; char *utf8; int err; int legacy_blob = 0; int endian_arch = gaiaEndianArch (); xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return NULL; /* cannot be an XmlBLOB */ if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) legacy_blob = 1; flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) compressed = 1; xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; if (!legacy_blob) { name_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + name_len; } title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + geometry_len; ptr++; if (compressed) { /* unzipping the XML payload */ uLong refLen = xml_len; const Bytef *in = ptr; xml = malloc (xml_len + 1); if (uncompress (xml, &refLen, in, zip_len) != Z_OK) { /* uncompress error */ spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); free (xml); return NULL; } *(xml + xml_len) = '\0'; } else { /* just copying the uncompressed XML payload */ xml = malloc (xml_len + 1); memcpy (xml, ptr, xml_len); *(xml + xml_len) = '\0'; } /* retrieving the XMLDocument encoding */ xmlSetGenericErrorFunc (NULL, silentError); xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ xmlSetGenericErrorFunc ((void *) stderr, NULL); return NULL; } if (xml_doc->encoding) { /* using the internal character enconding */ int enclen = (int) strlen ((const char *) xml_doc->encoding); encoding = malloc (enclen + 1); strcpy ((char *) encoding, (const char *) (xml_doc->encoding)); } else { /* no declared encoding: defaulting to UTF-8 */ encoding = malloc (6); strcpy ((char *) encoding, "UTF-8"); } if (indent < 0) { /* just returning the XMLDocument "as is" */ xmlFreeDoc (xml_doc); cvt = gaiaCreateUTF8Converter ((const char *) encoding); free (encoding); if (cvt == NULL) { xmlSetGenericErrorFunc ((void *) stderr, NULL); return NULL; } utf8 = gaiaConvertToUTF8 (cvt, (const char *) xml, xml_len, &err); free (xml); gaiaFreeUTF8Converter (cvt); if (utf8 && !err) { xmlSetGenericErrorFunc ((void *) stderr, NULL); return utf8; } if (utf8) free (utf8); xmlSetGenericErrorFunc ((void *) stderr, NULL); return NULL; } /* properly indenting the XMLDocument */ gaiaXmlFormat (xml_doc, &out, &out_len, encoding, indent); free (xml); xmlFreeDoc (xml_doc); free (encoding); if (out) { xmlSetGenericErrorFunc ((void *) stderr, NULL); return (char *) out; } xmlSetGenericErrorFunc ((void *) stderr, NULL); return NULL; } GAIAGEO_DECLARE void gaiaXmlFromBlob (const unsigned char *blob, int blob_size, int indent, unsigned char **result, int *res_size) { /* attempting to extract an XMLDocument from within an XmlBLOB buffer */ int compressed = 0; int little_endian = 0; unsigned char flag; const unsigned char *ptr; int xml_len; int zip_len; short uri_len; short fileid_len; short parentid_len; short name_len; short title_len; short abstract_len; short geometry_len; unsigned char *xml; xmlDocPtr xml_doc; xmlChar *out; int out_len; int legacy_blob = 0; int endian_arch = gaiaEndianArch (); xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; *result = NULL; *res_size = 0; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return; /* cannot be an XmlBLOB */ if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) legacy_blob = 1; flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) compressed = 1; xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; if (!legacy_blob) { name_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + name_len; } title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + geometry_len; ptr++; if (compressed) { /* unzipping the XML payload */ uLong refLen = xml_len; const Bytef *in = ptr; xml = malloc (xml_len + 1); if (uncompress (xml, &refLen, in, zip_len) != Z_OK) { /* uncompress error */ spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); free (xml); return; } *(xml + xml_len) = '\0'; } else { /* just copying the uncompressed XML payload */ xml = malloc (xml_len + 1); memcpy (xml, ptr, xml_len); *(xml + xml_len) = '\0'; } if (indent < 0) { /* just returning the XMLDocument "as is" */ *result = xml; *res_size = xml_len; return; } /* properly indenting the XMLDocument */ xmlSetGenericErrorFunc (NULL, silentError); xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ *result = xml; *res_size = xml_len; xmlSetGenericErrorFunc ((void *) stderr, NULL); return; } gaiaXmlFormat (xml_doc, &out, &out_len, xml_doc->encoding, indent); free (xml); xmlFreeDoc (xml_doc); *result = out; *res_size = out_len; xmlSetGenericErrorFunc ((void *) stderr, NULL); } GAIAGEO_DECLARE int gaiaXmlLoad (const void *p_cache, const char *path_or_url, unsigned char **result, int *size, char **parsing_errors) { /* attempting to load an external XML Document into a BLOB buffer */ unsigned char *out; int len; xmlDocPtr xml_doc; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; gaiaOutBufferPtr parsingBuf = NULL; xmlGenericErrorFunc parsingError = NULL; if (is_valid_cache (cache)) { parsingBuf = (gaiaOutBufferPtr) (cache->xmlParsingErrors); parsingError = (xmlGenericErrorFunc) spliteParsingError; spliteResetXmlErrors (cache); } *result = NULL; *size = 0; if (parsing_errors) *parsing_errors = NULL; if (path_or_url == NULL) return 0; /* testing if the XMLDocument is well-formed */ xmlSetGenericErrorFunc (cache, parsingError); xml_doc = xmlReadFile (path_or_url, NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ spatialite_e ("XML parsing error\n"); if (parsing_errors && parsingBuf) *parsing_errors = parsingBuf->Buffer; xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } if (parsing_errors && parsingBuf) *parsing_errors = parsingBuf->Buffer; /* exporting the XML Document into a BLOB */ xmlDocDumpFormatMemory (xml_doc, &out, &len, 0); xmlFreeDoc (xml_doc); *result = out; *size = len; xmlSetGenericErrorFunc ((void *) stderr, NULL); if (out == NULL) return 0; return 1; } GAIAGEO_DECLARE int gaiaXmlStore (const unsigned char *blob, int size, const char *path, int indent) { /* attempting to store an XmlBLOB Document into an external file */ FILE *fl; int wr; unsigned char *result = NULL; int res_size; gaiaXmlFromBlob (blob, size, indent, &result, &res_size); if (result == NULL) return 0; /* exporting the XML Document into an external file */ fl = fopen (path, "wb"); if (fl == NULL) { spatialite_e ("Unable to open \"%s\"\n", path); return 0; } wr = fwrite (result, 1, res_size, fl); if (wr != res_size) { spatialite_e ("I/O error: written %d bytes into \"%s\", expected %d\n", wr, path, res_size); fclose (fl); return 0; } fclose (fl); return 1; } GAIAGEO_DECLARE int gaiaIsCompressedXmlBlob (const unsigned char *blob, int blob_size) { /* Checks if a valid XmlBLOB buffer is compressed or not */ int compressed = 0; unsigned char flag; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return -1; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) compressed = 1; return compressed; } GAIAGEO_DECLARE int gaiaIsSchemaValidatedXmlBlob (const unsigned char *blob, int blob_size) { /* Checks if a valid XmlBLOB buffer has successfully passed a formal Schema validation or not */ int validated = 0; unsigned char flag; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return -1; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_VALIDATED) == GAIA_XML_VALIDATED) validated = 1; return validated; } GAIAGEO_DECLARE int gaiaIsIsoMetadataXmlBlob (const unsigned char *blob, int blob_size) { /* Checks if a valid XmlBLOB buffer does actually contains an ISO Metadata or not */ int iso_metadata = 0; unsigned char flag; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return -1; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA) iso_metadata = 1; return iso_metadata; } GAIAGEO_DECLARE int gaiaIsSldSeVectorStyleXmlBlob (const unsigned char *blob, int blob_size) { /* Checks if a valid XmlBLOB buffer does actually contains an SLD/SE Vector Style or not */ int sld_se_style = 0; unsigned char flag; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return -1; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_SLD_SE_VECTOR_STYLE) == GAIA_XML_SLD_SE_VECTOR_STYLE) sld_se_style = 1; return sld_se_style; } GAIAGEO_DECLARE int gaiaIsSldSeRasterStyleXmlBlob (const unsigned char *blob, int blob_size) { /* Checks if a valid XmlBLOB buffer does actually contains an SLD/SE Raster Style or not */ int sld_se_style = 0; unsigned char flag; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return -1; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_SLD_SE_RASTER_STYLE) == GAIA_XML_SLD_SE_RASTER_STYLE) sld_se_style = 1; return sld_se_style; } GAIAGEO_DECLARE int gaiaIsSldStyleXmlBlob (const unsigned char *blob, int blob_size) { /* Checks if a valid XmlBLOB buffer does actually contains an SLD Style or not */ int sld_style = 0; unsigned char flag; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return -1; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_SLD_STYLE) == GAIA_XML_SLD_STYLE) sld_style = 1; return sld_style; } GAIAGEO_DECLARE int gaiaIsSvgXmlBlob (const unsigned char *blob, int blob_size) { /* Checks if a valid XmlBLOB buffer does actually contains an SLD/SE Style or not */ int svg = 0; unsigned char flag; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return -1; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_SVG) == GAIA_XML_SVG) svg = 1; return svg; } GAIAGEO_DECLARE int gaiaXmlBlobGetDocumentSize (const unsigned char *blob, int blob_size) { /* Return the XMLDocument size (in bytes) from a valid XmlBLOB buffer */ int little_endian = 0; unsigned char flag; int xml_len; int endian_arch = gaiaEndianArch (); /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return -1; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); return xml_len; } GAIAGEO_DECLARE char * gaiaXmlBlobGetSchemaURI (const unsigned char *blob, int blob_size) { /* Return the SchemaURI from a valid XmlBLOB buffer */ int little_endian = 0; unsigned char flag; short uri_len; char *uri; int endian_arch = gaiaEndianArch (); /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return NULL; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; uri_len = gaiaImport16 (blob + 11, little_endian, endian_arch); if (!uri_len) return NULL; uri = malloc (uri_len + 1); memcpy (uri, blob + 14, uri_len); *(uri + uri_len) = '\0'; return uri; } GAIAGEO_DECLARE char * gaiaXmlGetInternalSchemaURI (const void *p_cache, const unsigned char *xml, int xml_len) { /* Return the internally defined SchemaURI from a valid XmlDocument */ xmlDocPtr xml_doc; char *uri = NULL; xmlXPathContextPtr xpathCtx; xmlXPathObjectPtr xpathObj; xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; /* retrieving the XMLDocument internal SchemaURI (if any) */ xmlSetGenericErrorFunc (NULL, silentError); xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ xmlSetGenericErrorFunc ((void *) stderr, NULL); return NULL; } if (vxpath_eval_expr (p_cache, xml_doc, "/*/@xsi:schemaLocation", &xpathCtx, &xpathObj)) { /* attempting first to extract xsi:schemaLocation */ xmlNodeSetPtr nodeset = xpathObj->nodesetval; xmlNodePtr node; int num_nodes = (nodeset) ? nodeset->nodeNr : 0; if (num_nodes == 1) { node = nodeset->nodeTab[0]; if (node->type == XML_ATTRIBUTE_NODE) { if (node->children != NULL) { if (node->children->content != NULL) { const char *str = (const char *) (node->children->content); const char *ptr = str; int i; int len = strlen (str); for (i = len - 1; i >= 0; i--) { if (*(str + i) == ' ') { /* last occurrence of SPACE [namespace/schema separator] */ ptr = str + i + 1; break; } } len = strlen (ptr); uri = malloc (len + 1); strcpy (uri, ptr); } } } } if (uri != NULL) xmlXPathFreeContext (xpathCtx); xmlXPathFreeObject (xpathObj); } if (uri == NULL) { /* checking for xsi:noNamespaceSchemaLocation */ if (vxpath_eval_expr (p_cache, xml_doc, "/*/@xsi:noNamespaceSchemaLocation", &xpathCtx, &xpathObj)) { xmlNodeSetPtr nodeset = xpathObj->nodesetval; xmlNodePtr node; int num_nodes = (nodeset) ? nodeset->nodeNr : 0; if (num_nodes == 1) { node = nodeset->nodeTab[0]; if (node->type == XML_ATTRIBUTE_NODE) { if (node->children != NULL) { if (node->children->content != NULL) { int len = strlen ((const char *) node->children->content); uri = malloc (len + 1); strcpy (uri, (const char *) node-> children->content); } } } } xmlXPathFreeContext (xpathCtx); xmlXPathFreeObject (xpathObj); } } xmlFreeDoc (xml_doc); xmlSetGenericErrorFunc ((void *) stderr, NULL); return uri; } GAIAGEO_DECLARE char * gaiaXmlBlobGetFileId (const unsigned char *blob, int blob_size) { /* Return the FileIdentifier from a valid XmlBLOB buffer */ int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; char *file_identifier; int endian_arch = gaiaEndianArch (); /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return NULL; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); if (!fileid_len) return NULL; ptr += 3; file_identifier = malloc (fileid_len + 1); memcpy (file_identifier, ptr, fileid_len); *(file_identifier + fileid_len) = '\0'; return file_identifier; } GAIAGEO_DECLARE char * gaiaXmlBlobGetParentId (const unsigned char *blob, int blob_size) { /* Return the ParentIdentifier from a valid XmlBLOB buffer */ int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; char *parent_identifier; int endian_arch = gaiaEndianArch (); /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return NULL; /* cannot be an XmlBLOB */ flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); if (!parentid_len) return NULL; ptr += 3; parent_identifier = malloc (parentid_len + 1); memcpy (parent_identifier, ptr, parentid_len); *(parent_identifier + parentid_len) = '\0'; return parent_identifier; } static xmlNodePtr find_iso_node (xmlNodePtr root, const char *name) { /* scanning the Root node [fileIdentifier or parentIdentifier] */ xmlNodePtr nodeId = NULL; xmlNodePtr node; for (node = root->children; node; node = node->next) { if (node->type == XML_ELEMENT_NODE) { const char *xname = (const char *) (node->name); if (strcmp (xname, name) == 0) { nodeId = node; break; } } } if (nodeId == NULL) return NULL; for (node = nodeId->children; node; node = node->next) { if (node->type == XML_ELEMENT_NODE) { const char *xname = (const char *) (node->name); if (strcmp (xname, "CharacterString") == 0) return node; } } return NULL; } static int setIsoId (xmlDocPtr xml_doc, const char *node_name, const char *identifier, unsigned char **out_blob, int *out_len) { /* attempting to change an ISO Id */ xmlNodePtr node; xmlNodePtr new_node; xmlNodePtr text; xmlNodePtr old_node; xmlChar *buf; int len; *out_blob = NULL; *out_len = 0; node = find_iso_node (xmlDocGetRootElement (xml_doc), node_name); if (node == NULL) return 0; /* replacing the existing XML Node */ new_node = xmlNewNode (node->ns, node->name); text = xmlNewText ((xmlChar *) identifier); xmlAddChild (new_node, text); old_node = xmlReplaceNode (node, new_node); xmlFreeNode (old_node); xmlDocDumpFormatMemory (xml_doc, &buf, &len, 0); if (buf == NULL) return 0; *out_blob = buf; *out_len = len; return 1; } GAIAGEO_DECLARE int gaiaXmlBlobSetFileId (const void *p_cache, const unsigned char *blob, int blob_size, const char *identifier, unsigned char **new_blob, int *new_size) { /* Return a new XmlBLOB buffer by replacing the FileId value */ struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; int compressed = 0; int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; int xml_len; int zip_len; int name_len; short title_len; short abstract_len; short geometry_len; char *schemaURI = NULL; unsigned char *xml; xmlDocPtr xml_doc; unsigned char *out_blob; int out_len; int legacy_blob = 0; int endian_arch = gaiaEndianArch (); xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; *new_blob = NULL; *new_size = 0; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return 0; /* cannot be an XmlBLOB */ if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) legacy_blob = 1; flag = *(blob + 1); if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA) ; else return 0; /* not an ISO Metadata XmlBLOB */ if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) compressed = 1; xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); if (uri_len > 0) { schemaURI = malloc (uri_len + 1); memcpy (schemaURI, blob + 14, uri_len); *(schemaURI + uri_len) = '\0'; } ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; if (!legacy_blob) { name_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + name_len; } title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + geometry_len; ptr++; if (compressed) { /* unzipping the XML payload */ uLong refLen = xml_len; const Bytef *in = ptr; xml = malloc (xml_len + 1); if (uncompress (xml, &refLen, in, zip_len) != Z_OK) { /* uncompress error */ spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); free (xml); return 0; } *(xml + xml_len) = '\0'; } else { /* just copying the uncompressed XML payload */ xml = malloc (xml_len + 1); memcpy (xml, ptr, xml_len); *(xml + xml_len) = '\0'; } /* loading the XMLDocument */ xmlSetGenericErrorFunc (NULL, silentError); xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } /* replacing the FileId value */ setIsoId (xml_doc, "fileIdentifier", identifier, &out_blob, &out_len); free (xml); xmlFreeDoc (xml_doc); if (out_blob) { gaiaXmlToBlob (cache, out_blob, out_len, compressed, schemaURI, new_blob, new_size, NULL, NULL); #ifdef __MINGW32__ /* MinGW is unable to statically link libxml2 if xmlFree() is declared */ free (out_blob); #else xmlFree (out_blob); #endif xmlSetGenericErrorFunc ((void *) stderr, NULL); return 1; } xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } GAIAGEO_DECLARE int gaiaXmlBlobSetParentId (const void *p_cache, const unsigned char *blob, int blob_size, const char *identifier, unsigned char **new_blob, int *new_size) { /* Return a new XmlBLOB buffer by replacing the ParentId value */ struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; int compressed = 0; int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; int xml_len; int zip_len; short name_len; short title_len; short abstract_len; short geometry_len; char *schemaURI = NULL; unsigned char *xml; xmlDocPtr xml_doc; unsigned char *out_blob; int out_len; int legacy_blob = 0; int endian_arch = gaiaEndianArch (); xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; *new_blob = NULL; *new_size = 0; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return 0; /* cannot be an XmlBLOB */ if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) legacy_blob = 1; flag = *(blob + 1); if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA) ; else return 0; /* not an ISO Metadata XmlBLOB */ if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) compressed = 1; xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); if (uri_len > 0) { schemaURI = malloc (uri_len + 1); memcpy (schemaURI, blob + 14, uri_len); *(schemaURI + uri_len) = '\0'; } ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; if (!legacy_blob) { name_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + name_len; } title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + geometry_len; ptr++; if (compressed) { /* unzipping the XML payload */ uLong refLen = xml_len; const Bytef *in = ptr; xml = malloc (xml_len + 1); if (uncompress (xml, &refLen, in, zip_len) != Z_OK) { /* uncompress error */ spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); free (xml); return 0; } *(xml + xml_len) = '\0'; } else { /* just copying the uncompressed XML payload */ xml = malloc (xml_len + 1); memcpy (xml, ptr, xml_len); *(xml + xml_len) = '\0'; } /* loading the XMLDocument */ xmlSetGenericErrorFunc (NULL, silentError); xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } /* replacing the ParentId value */ setIsoId (xml_doc, "parentIdentifier", identifier, &out_blob, &out_len); free (xml); xmlFreeDoc (xml_doc); if (out_blob) { gaiaXmlToBlob (cache, out_blob, out_len, compressed, schemaURI, new_blob, new_size, NULL, NULL); #ifdef __MINGW32__ /* MinGW is unable to statically link libxml2 if xmlFree() is declared */ free (out_blob); #else xmlFree (out_blob); #endif xmlSetGenericErrorFunc ((void *) stderr, NULL); return 1; } xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } static xmlNodePtr find_iso_sibling (xmlNodePtr root, const char *name) { /* scanning the Root node [previous sibling] */ xmlNodePtr node; for (node = root->children; node; node = node->next) { if (node->type == XML_ELEMENT_NODE) { const char *xname = (const char *) (node->name); if (strcmp (xname, name) == 0) return node; } } return NULL; } static int addIsoId (xmlDocPtr xml_doc, const char *node_name, const char *identifier, const char *ns_id, const char *uri_id, const char *ns_charstr, const char *uri_charstr, unsigned char **out_blob, int *out_len) { /* attempting to insert a new ISO Id */ xmlNsPtr ns_id_ptr = NULL; xmlNsPtr ns_charstr_ptr = NULL; xmlNodePtr id_node; xmlNodePtr charstr_node; xmlNodePtr text; xmlNodePtr root = xmlDocGetRootElement (xml_doc); xmlNodePtr before = NULL; xmlChar *buf; int len; *out_blob = NULL; *out_len = 0; if (find_iso_node (root, node_name)) return 0; /* retrieving the ID NameSpace */ if (uri_id != NULL) ns_id_ptr = xmlSearchNsByHref (xml_doc, root, (xmlChar *) uri_id); if (ns_id_ptr == NULL) ns_id_ptr = xmlSearchNs (xml_doc, root, (xmlChar *) ns_id); /* inserting the "ID" XML Node */ id_node = xmlNewNode (ns_id_ptr, (xmlChar *) node_name); if (strcmp (node_name, "parentIdentifier") == 0) { /* attempting to identify the previous sibling */ before = find_iso_sibling (root, "characterSet"); if (before == NULL) before = find_iso_sibling (root, "language"); if (before == NULL) before = find_iso_sibling (root, "fileIdentifier"); } if (before) xmlAddNextSibling (before, id_node); else { before = root->children; if (before) xmlAddPrevSibling (before, id_node); else xmlAddChild (root, id_node); } if (ns_id_ptr == NULL && ns_id != NULL && uri_id != NULL) { ns_id_ptr = xmlNewNs (root, (xmlChar *) uri_id, (xmlChar *) ns_id); xmlSetNs (id_node, ns_id_ptr); } /* retrieving the CharacterString NameSpace */ if (uri_charstr != NULL) ns_charstr_ptr = xmlSearchNsByHref (xml_doc, root, (xmlChar *) uri_charstr); if (ns_charstr_ptr == NULL) ns_charstr_ptr = xmlSearchNs (xml_doc, root, (xmlChar *) ns_charstr); /* inserting the "CharacterString" XML Node */ charstr_node = xmlNewNode (ns_charstr_ptr, (xmlChar *) "CharacterString"); xmlAddChild (id_node, charstr_node); if (ns_charstr_ptr == NULL && ns_charstr != NULL && uri_charstr != NULL) { ns_charstr_ptr = xmlNewNs (root, (xmlChar *) uri_charstr, (xmlChar *) ns_charstr); xmlSetNs (charstr_node, ns_charstr_ptr); } text = xmlNewText ((xmlChar *) identifier); xmlAddChild (charstr_node, text); xmlDocDumpFormatMemory (xml_doc, &buf, &len, 0); if (buf == NULL) return 0; *out_blob = buf; *out_len = len; return 1; } GAIAGEO_DECLARE int gaiaXmlBlobAddFileId (const void *p_cache, const unsigned char *blob, int blob_size, const char *identifier, const char *ns_id, const char *uri_id, const char *ns_charstr, const char *uri_charstr, unsigned char **new_blob, int *new_size) { /* Return a new XmlBLOB buffer by inserting a FileId value */ struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; int compressed = 0; int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; int xml_len; int zip_len; short name_len; short title_len; short abstract_len; short geometry_len; char *schemaURI = NULL; unsigned char *xml; xmlDocPtr xml_doc; unsigned char *out_blob; int out_len; int legacy_blob = 0; int endian_arch = gaiaEndianArch (); xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; *new_blob = NULL; *new_size = 0; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return 0; /* cannot be an XmlBLOB */ if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) legacy_blob = 1; flag = *(blob + 1); if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA) ; else return 0; /* not an ISO Metadata XmlBLOB */ if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) compressed = 1; xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); if (uri_len > 0) { schemaURI = malloc (uri_len + 1); memcpy (schemaURI, blob + 14, uri_len); *(schemaURI + uri_len) = '\0'; } ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; if (!legacy_blob) { name_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + name_len; } title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + geometry_len; ptr++; if (compressed) { /* unzipping the XML payload */ uLong refLen = xml_len; const Bytef *in = ptr; xml = malloc (xml_len + 1); if (uncompress (xml, &refLen, in, zip_len) != Z_OK) { /* uncompress error */ spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); free (xml); return 0; } *(xml + xml_len) = '\0'; } else { /* just copying the uncompressed XML payload */ xml = malloc (xml_len + 1); memcpy (xml, ptr, xml_len); *(xml + xml_len) = '\0'; } /* loading the XMLDocument */ xmlSetGenericErrorFunc (NULL, silentError); xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } /* inserting the FileId value */ addIsoId (xml_doc, "fileIdentifier", identifier, ns_id, uri_id, ns_charstr, uri_charstr, &out_blob, &out_len); free (xml); xmlFreeDoc (xml_doc); if (out_blob) { gaiaXmlToBlob (cache, out_blob, out_len, compressed, schemaURI, new_blob, new_size, NULL, NULL); #ifdef __MINGW32__ /* MinGW is unable to statically link libxml2 if xmlFree() is declared */ free (out_blob); #else xmlFree (out_blob); #endif xmlSetGenericErrorFunc ((void *) stderr, NULL); return 1; } xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } GAIAGEO_DECLARE int gaiaXmlBlobAddParentId (const void *p_cache, const unsigned char *blob, int blob_size, const char *identifier, const char *ns_id, const char *uri_id, const char *ns_charstr, const char *uri_charstr, unsigned char **new_blob, int *new_size) { /* Return a new XmlBLOB buffer by inserting a ParentId value */ struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; int compressed = 0; int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; int xml_len; int zip_len; short name_len; short title_len; short abstract_len; short geometry_len; char *schemaURI = NULL; unsigned char *xml; xmlDocPtr xml_doc; unsigned char *out_blob; int out_len; int legacy_blob = 0; int endian_arch = gaiaEndianArch (); xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; *new_blob = NULL; *new_size = 0; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return 0; /* cannot be an XmlBLOB */ if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) legacy_blob = 1; flag = *(blob + 1); if ((flag & GAIA_XML_ISO_METADATA) == GAIA_XML_ISO_METADATA) ; else return 0; /* not an ISO Metadata XmlBLOB */ if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) compressed = 1; xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); if (uri_len > 0) { schemaURI = malloc (uri_len + 1); memcpy (schemaURI, blob + 14, uri_len); *(schemaURI + uri_len) = '\0'; } ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; if (!legacy_blob) { name_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + name_len; } title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + geometry_len; ptr++; if (compressed) { /* unzipping the XML payload */ uLong refLen = xml_len; const Bytef *in = ptr; xml = malloc (xml_len + 1); if (uncompress (xml, &refLen, in, zip_len) != Z_OK) { /* uncompress error */ spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); free (xml); return 0; } *(xml + xml_len) = '\0'; } else { /* just copying the uncompressed XML payload */ xml = malloc (xml_len + 1); memcpy (xml, ptr, xml_len); *(xml + xml_len) = '\0'; } /* loading the XMLDocument */ xmlSetGenericErrorFunc (NULL, silentError); xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } /* inserting the ParentId value */ addIsoId (xml_doc, "parentIdentifier", identifier, ns_id, uri_id, ns_charstr, uri_charstr, &out_blob, &out_len); free (xml); xmlFreeDoc (xml_doc); if (out_blob) { gaiaXmlToBlob (cache, out_blob, out_len, compressed, schemaURI, new_blob, new_size, NULL, NULL); #ifdef __MINGW32__ /* MinGW is unable to statically link libxml2 if xmlFree() is declared */ free (out_blob); #else xmlFree (out_blob); #endif xmlSetGenericErrorFunc ((void *) stderr, NULL); return 1; } xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } GAIAGEO_DECLARE char * gaiaXmlBlobGetName (const unsigned char *blob, int blob_size) { /* Return the Name from a valid XmlBLOB buffer */ int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; short name_len; char *name; int endian_arch = gaiaEndianArch (); /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return NULL; /* cannot be an XmlBLOB */ if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) return NULL; flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; name_len = gaiaImport16 (ptr, little_endian, endian_arch); if (!name_len) return NULL; ptr += 3; name = malloc (name_len + 1); memcpy (name, ptr, name_len); *(name + name_len) = '\0'; return name; } GAIAGEO_DECLARE char * gaiaXmlBlobGetTitle (const unsigned char *blob, int blob_size) { /* Return the Title from a valid XmlBLOB buffer */ int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; short name_len; short title_len; char *title; int legacy_blob = 0; int endian_arch = gaiaEndianArch (); /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return NULL; /* cannot be an XmlBLOB */ if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) legacy_blob = 1; flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; if (!legacy_blob) { name_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + name_len; } title_len = gaiaImport16 (ptr, little_endian, endian_arch); if (!title_len) return NULL; ptr += 3; title = malloc (title_len + 1); memcpy (title, ptr, title_len); *(title + title_len) = '\0'; return title; } GAIAGEO_DECLARE char * gaiaXmlBlobGetAbstract (const unsigned char *blob, int blob_size) { /* Return the Abstract from a valid XmlBLOB buffer */ int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; short name_len; short title_len; short abstract_len; char *abstract; int legacy_blob = 0; int endian_arch = gaiaEndianArch (); /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return NULL; /* cannot be an XmlBLOB */ if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) legacy_blob = 1; flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; if (!legacy_blob) { name_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + name_len; } title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); if (!abstract_len) return NULL; ptr += 3; abstract = malloc (abstract_len + 1); memcpy (abstract, ptr, abstract_len); *(abstract + abstract_len) = '\0'; return abstract; } GAIAGEO_DECLARE void gaiaXmlBlobGetGeometry (const unsigned char *blob, int blob_size, unsigned char **blob_geom, int *geom_size) { /* Return the Geometry from a valid XmlBLOB buffer */ int little_endian = 0; unsigned char flag; const unsigned char *ptr; short uri_len; short fileid_len; short parentid_len; short name_len; short title_len; short abstract_len; short geometry_len; unsigned char *geometry; int legacy_blob = 0; int endian_arch = gaiaEndianArch (); *blob_geom = NULL; *geom_size = 0; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return; /* cannot be an XmlBLOB */ if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) legacy_blob = 1; flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; if (!legacy_blob) { name_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + name_len; } title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); if (!geometry_len) return; ptr += 3; geometry = malloc (geometry_len); memcpy (geometry, ptr, geometry_len); *blob_geom = geometry; *geom_size = geometry_len; } GAIAGEO_DECLARE char * gaiaXmlBlobGetEncoding (const unsigned char *blob, int blob_size) { /* Return the Charset Encoding from a valid XmlBLOB buffer */ int compressed = 0; int little_endian = 0; unsigned char flag; const unsigned char *ptr; int xml_len; int zip_len; short uri_len; short fileid_len; short parentid_len; short name_len; short title_len; short abstract_len; short geometry_len; unsigned char *xml; xmlDocPtr xml_doc; char *encoding = NULL; int legacy_blob = 0; int endian_arch = gaiaEndianArch (); xmlGenericErrorFunc silentError = (xmlGenericErrorFunc) spliteSilentError; /* validity check */ if (!gaiaIsValidXmlBlob (blob, blob_size)) return NULL; /* cannot be an XmlBLOB */ if (*(blob + 2) == GAIA_XML_LEGACY_HEADER) legacy_blob = 1; flag = *(blob + 1); if ((flag & GAIA_XML_LITTLE_ENDIAN) == GAIA_XML_LITTLE_ENDIAN) little_endian = 1; if ((flag & GAIA_XML_COMPRESSED) == GAIA_XML_COMPRESSED) compressed = 1; xml_len = gaiaImport32 (blob + 3, little_endian, endian_arch); zip_len = gaiaImport32 (blob + 7, little_endian, endian_arch); ptr = blob + 11; uri_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + uri_len; fileid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + fileid_len; parentid_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + parentid_len; if (!legacy_blob) { name_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + name_len; } title_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + title_len; abstract_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + abstract_len; geometry_len = gaiaImport16 (ptr, little_endian, endian_arch); ptr += 3 + geometry_len; ptr++; if (compressed) { /* unzipping the XML payload */ uLong refLen = xml_len; const Bytef *in = ptr; xml = malloc (xml_len + 1); if (uncompress (xml, &refLen, in, zip_len) != Z_OK) { /* uncompress error */ spatialite_e ("XmlBLOB DEFLATE uncompress error\n"); free (xml); return NULL; } *(xml + xml_len) = '\0'; } else { /* just copying the uncompressed XML payload */ xml = malloc (xml_len + 1); memcpy (xml, ptr, xml_len); *(xml + xml_len) = '\0'; } /* retrieving the XMLDocument encoding */ xmlSetGenericErrorFunc (NULL, silentError); xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc == NULL) { /* parsing error; not a well-formed XML */ xmlSetGenericErrorFunc ((void *) stderr, NULL); return NULL; } free (xml); if (xml_doc->encoding) { /* using the internal character enconding */ int enclen = strlen ((const char *) xml_doc->encoding); encoding = malloc (enclen + 1); strcpy (encoding, (const char *) xml_doc->encoding); xmlFreeDoc (xml_doc); xmlSetGenericErrorFunc ((void *) stderr, NULL); return encoding; } xmlFreeDoc (xml_doc); xmlSetGenericErrorFunc ((void *) stderr, NULL); return NULL; } GAIAGEO_DECLARE char * gaia_libxml2_version (void) { /* return the current LIBXML2 version */ int len; char *version; const char *ver = LIBXML_DOTTED_VERSION; len = strlen (ver); version = malloc (len + 1); strcpy (version, ver); return version; } #endif /* end LIBXML2: supporting XML documents */ �libspatialite-4.3.0a/src/gaiageo/geoJSON.h����������������������������������������������������������0000664�0001750�0001750�00000001760�12544707704�015246� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#define GEOJSON_NEWLINE 1 #define GEOJSON_OPEN_BRACE 2 #define GEOJSON_TYPE 3 #define GEOJSON_COLON 4 #define GEOJSON_POINT 5 #define GEOJSON_COMMA 6 #define GEOJSON_COORDS 7 #define GEOJSON_CLOSE_BRACE 8 #define GEOJSON_BBOX 9 #define GEOJSON_OPEN_BRACKET 10 #define GEOJSON_CLOSE_BRACKET 11 #define GEOJSON_CRS 12 #define GEOJSON_NAME 13 #define GEOJSON_PROPS 14 #define GEOJSON_NUM 15 #define GEOJSON_SHORT_SRID 16 #define GEOJSON_LONG_SRID 17 #define GEOJSON_LINESTRING 18 #define GEOJSON_POLYGON 19 #define GEOJSON_MULTIPOINT 20 #define GEOJSON_MULTILINESTRING 21 #define GEOJSON_MULTIPOLYGON 22 #define GEOJSON_GEOMETRYCOLLECTION 23 #define GEOJSON_GEOMS 24 ����������������libspatialite-4.3.0a/src/gaiageo/Gml.h��������������������������������������������������������������0000664�0001750�0001750�00000000520�12544707704�014512� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#define GML_NEWLINE 1 #define GML_END 2 #define GML_CLOSE 3 #define GML_OPEN 4 #define GML_KEYWORD 5 #define GML_EQ 6 #define GML_VALUE 7 #define GML_COORD 8 ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiageo/gg_geometries.c����������������������������������������������������0000664�0001750�0001750�00000352046�12544707704�016623� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_geometries.c -- Gaia geometric objects version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <sys/types.h> #include <stdlib.h> #include <stdio.h> #include <memory.h> #include <math.h> #include <float.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite/sqlite.h> #include <spatialite/gaiageo.h> GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPoint (double x, double y) { /* POINT object constructor */ gaiaPointPtr p = malloc (sizeof (gaiaPoint)); p->X = x; p->Y = y; p->Z = 0.0; p->M = 0.0; p->DimensionModel = GAIA_XY; p->Next = NULL; p->Prev = NULL; return p; } GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPointXYZ (double x, double y, double z) { /* POINT object constructor */ gaiaPointPtr p = malloc (sizeof (gaiaPoint)); p->X = x; p->Y = y; p->Z = z; p->M = 0.0; p->DimensionModel = GAIA_XY_Z; p->Next = NULL; p->Prev = NULL; return p; } GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPointXYM (double x, double y, double m) { /* POINT object constructor */ gaiaPointPtr p = malloc (sizeof (gaiaPoint)); p->X = x; p->Y = y; p->Z = 0.0; p->M = m; p->DimensionModel = GAIA_XY_M; p->Next = NULL; p->Prev = NULL; return p; } GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPointXYZM (double x, double y, double z, double m) { /* POINT object constructor */ gaiaPointPtr p = malloc (sizeof (gaiaPoint)); p->X = x; p->Y = y; p->Z = z; p->M = m; p->DimensionModel = GAIA_XY_Z_M; p->Next = NULL; p->Prev = NULL; return p; } GAIAGEO_DECLARE void gaiaFreePoint (gaiaPointPtr ptr) { /* POINT object destructor */ if (ptr != NULL) free (ptr); } GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestring (int vert) { /* LINESTRING object constructor */ gaiaLinestringPtr p = malloc (sizeof (gaiaLinestring)); p->Coords = malloc (sizeof (double) * (vert * 2)); p->Points = vert; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY; p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestringXYZ (int vert) { /* LINESTRING object constructor */ gaiaLinestringPtr p = malloc (sizeof (gaiaLinestring)); p->Coords = malloc (sizeof (double) * (vert * 3)); p->Points = vert; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_Z; p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestringXYM (int vert) { /* LINESTRING object constructor */ gaiaLinestringPtr p = malloc (sizeof (gaiaLinestring)); p->Coords = malloc (sizeof (double) * (vert * 3)); p->Points = vert; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_M; p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestringXYZM (int vert) { /* LINESTRING object constructor */ gaiaLinestringPtr p = malloc (sizeof (gaiaLinestring)); p->Coords = malloc (sizeof (double) * (vert * 4)); p->Points = vert; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_Z_M; p->Next = NULL; return p; } GAIAGEO_DECLARE void gaiaFreeLinestring (gaiaLinestringPtr ptr) { /* LINESTRING object desctructror */ if (ptr) { if (ptr->Coords) free (ptr->Coords); free (ptr); } } GAIAGEO_DECLARE int gaiaLineGetPoint (gaiaLinestringPtr ln, int v, double *x, double *y, double *z, double *m) { /* SAFE - getting coords for a vertex in LINESTRING */ double vx; double vy; double vz; double vm; *x = 0.0; *y = 0.0; *z = 0.0; *m = 0.0; if (!ln) return 0; if (v < 0 || v >= ln->Points) return 0; switch (ln->DimensionModel) { case GAIA_XY: gaiaGetPoint (ln->Coords, v, &vx, &vy); *x = vx; *y = vy; break; case GAIA_XY_Z: gaiaGetPointXYZ (ln->Coords, v, &vx, &vy, &vz); *x = vx; *y = vy; *z = vz; break; case GAIA_XY_M: gaiaGetPointXYM (ln->Coords, v, &vx, &vy, &vm); *x = vx; *y = vy; *m = vm; break; case GAIA_XY_Z_M: gaiaGetPointXYZM (ln->Coords, v, &vx, &vy, &vz, &vm); *x = vx; *y = vy; *z = vz; *m = vm; break; default: return 0; }; return 1; } GAIAGEO_DECLARE int gaiaLineSetPoint (gaiaLinestringPtr ln, int v, double x, double y, double z, double m) { /* SAFE - setting coords for a vertex in RING */ if (!ln) return 0; if (v < 0 || v >= ln->Points) return 0; switch (ln->DimensionModel) { case GAIA_XY: gaiaSetPoint (ln->Coords, v, x, y); break; case GAIA_XY_Z: gaiaSetPointXYZ (ln->Coords, v, x, y, z); break; case GAIA_XY_M: gaiaSetPointXYM (ln->Coords, v, x, y, m); break; case GAIA_XY_Z_M: gaiaSetPointXYZM (ln->Coords, v, x, y, z, m); break; default: return 0; }; return 1; } GAIAGEO_DECLARE void gaiaCopyLinestringCoords (gaiaLinestringPtr dst, gaiaLinestringPtr src) { /* / copying coords from one Linestring to another / maybe, converting from one Dimension Model to a different one */ int iv; double x; double y; double z; double m; if (!src) return; if (!dst) return; if (src->Points != dst->Points) return; for (iv = 0; iv < dst->Points; iv++) { z = 0.0; m = 0.0; if (src->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (src->Coords, iv, &x, &y, &z); } else if (src->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (src->Coords, iv, &x, &y, &m); } else if (src->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (src->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (src->Coords, iv, &x, &y); } if (dst->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (dst->Coords, iv, x, y, z); } else if (dst->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (dst->Coords, iv, x, y, m); } else if (dst->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (dst->Coords, iv, x, y, z, m); } else { gaiaSetPoint (dst->Coords, iv, x, y); } } } GAIAGEO_DECLARE gaiaLinestringPtr gaiaCloneLinestring (gaiaLinestringPtr line) { /* clones a LINESTRING */ gaiaLinestringPtr new_line; if (!line) return NULL; if (line->DimensionModel == GAIA_XY_Z) new_line = gaiaAllocLinestringXYZ (line->Points); else if (line->DimensionModel == GAIA_XY_M) new_line = gaiaAllocLinestringXYM (line->Points); else if (line->DimensionModel == GAIA_XY_Z_M) new_line = gaiaAllocLinestringXYZM (line->Points); else new_line = gaiaAllocLinestring (line->Points); gaiaCopyLinestringCoords (new_line, line); return new_line; } GAIAGEO_DECLARE void gaiaCopyLinestringCoordsReverse (gaiaLinestringPtr dst, gaiaLinestringPtr src) { /* / copying coords from one Linestring to another in reverse order / maybe, converting from one Dimension Model to a different one */ int iv; int iv2 = 0; double x; double y; double z; double m; if (!src) return; if (!dst) return; if (src->Points != dst->Points) return; for (iv = src->Points - 1; iv >= 0; iv--) { z = 0.0; m = 0.0; if (src->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (src->Coords, iv, &x, &y, &z); } else if (src->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (src->Coords, iv, &x, &y, &m); } else if (src->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (src->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (src->Coords, iv, &x, &y); } if (dst->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (dst->Coords, iv2, x, y, z); } else if (dst->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (dst->Coords, iv2, x, y, m); } else if (dst->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (dst->Coords, iv2, x, y, z, m); } else { gaiaSetPoint (dst->Coords, iv2, x, y); } iv2++; } } GAIAGEO_DECLARE gaiaLinestringPtr gaiaCloneLinestringSpecial (gaiaLinestringPtr line, int mode) { /* clones a LINESTRING (special) */ gaiaLinestringPtr new_line; if (!line) return NULL; if (mode != GAIA_REVERSE_ORDER) return gaiaCloneLinestring (line); if (line->DimensionModel == GAIA_XY_Z) new_line = gaiaAllocLinestringXYZ (line->Points); else if (line->DimensionModel == GAIA_XY_M) new_line = gaiaAllocLinestringXYM (line->Points); else if (line->DimensionModel == GAIA_XY_Z_M) new_line = gaiaAllocLinestringXYZM (line->Points); else new_line = gaiaAllocLinestring (line->Points); gaiaCopyLinestringCoordsReverse (new_line, line); return new_line; } GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRing (int vert) { /* ring object constructor */ gaiaRingPtr p = malloc (sizeof (gaiaRing)); p->Coords = malloc (sizeof (double) * (vert * 2)); p->Points = vert; p->Link = NULL; p->Clockwise = 0; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY; p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRingXYZ (int vert) { /* ring object constructor */ gaiaRingPtr p = malloc (sizeof (gaiaRing)); p->Coords = malloc (sizeof (double) * (vert * 3)); p->Points = vert; p->Link = NULL; p->Clockwise = 0; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_Z; p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRingXYM (int vert) { /* ring object constructor */ gaiaRingPtr p = malloc (sizeof (gaiaRing)); p->Coords = malloc (sizeof (double) * (vert * 3)); p->Points = vert; p->Link = NULL; p->Clockwise = 0; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_M; p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRingXYZM (int vert) { /* ring object constructor */ gaiaRingPtr p = malloc (sizeof (gaiaRing)); p->Coords = malloc (sizeof (double) * (vert * 4)); p->Points = vert; p->Link = NULL; p->Clockwise = 0; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_Z_M; p->Next = NULL; return p; } GAIAGEO_DECLARE void gaiaFreeRing (gaiaRingPtr ptr) { /* ring object destructor */ if (ptr) { if (ptr->Coords) free (ptr->Coords); free (ptr); } } GAIAGEO_DECLARE int gaiaRingGetPoint (gaiaRingPtr rng, int v, double *x, double *y, double *z, double *m) { /* SAFE - getting coords for a vertex in RING */ double vx; double vy; double vz; double vm; *x = 0.0; *y = 0.0; *z = 0.0; *m = 0.0; if (!rng) return 0; if (v < 0 || v >= rng->Points) return 0; switch (rng->DimensionModel) { case GAIA_XY: gaiaGetPoint (rng->Coords, v, &vx, &vy); *x = vx; *y = vy; break; case GAIA_XY_Z: gaiaGetPointXYZ (rng->Coords, v, &vx, &vy, &vz); *x = vx; *y = vy; *z = vz; break; case GAIA_XY_M: gaiaGetPointXYM (rng->Coords, v, &vx, &vy, &vm); *x = vx; *y = vy; *m = vm; break; case GAIA_XY_Z_M: gaiaGetPointXYZM (rng->Coords, v, &vx, &vy, &vz, &vm); *x = vx; *y = vy; *z = vz; *m = vm; break; default: return 0; }; return 1; } GAIAGEO_DECLARE int gaiaRingSetPoint (gaiaRingPtr rng, int v, double x, double y, double z, double m) { /* SAFE - getting coords for a vertex in RING */ if (!rng) return 0; if (v < 0 || v >= rng->Points) return 0; switch (rng->DimensionModel) { case GAIA_XY: gaiaSetPoint (rng->Coords, v, x, y); break; case GAIA_XY_Z: gaiaSetPointXYZ (rng->Coords, v, x, y, z); break; case GAIA_XY_M: gaiaSetPointXYM (rng->Coords, v, x, y, m); break; case GAIA_XY_Z_M: gaiaSetPointXYZM (rng->Coords, v, x, y, z, m); break; default: return 0; }; return 1; } GAIAGEO_DECLARE void gaiaCopyRingCoords (gaiaRingPtr dst, gaiaRingPtr src) { /* / copying coords from one Ring to another / maybe, converting from one Dimension Model to a different one */ int iv; double x; double y; double z; double m; if (!src) return; if (!dst) return; if (src->Points != dst->Points) return; for (iv = 0; iv < dst->Points; iv++) { z = 0.0; m = 0.0; if (src->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (src->Coords, iv, &x, &y, &z); } else if (src->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (src->Coords, iv, &x, &y, &m); } else if (src->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (src->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (src->Coords, iv, &x, &y); } if (dst->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (dst->Coords, iv, x, y, z); } else if (dst->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (dst->Coords, iv, x, y, m); } else if (dst->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (dst->Coords, iv, x, y, z, m); } else { gaiaSetPoint (dst->Coords, iv, x, y); } } } GAIAGEO_DECLARE gaiaRingPtr gaiaCloneRing (gaiaRingPtr ring) { /* clones a RING */ gaiaRingPtr new_ring; if (!ring) return NULL; if (ring->DimensionModel == GAIA_XY_Z) new_ring = gaiaAllocRingXYZ (ring->Points); else if (ring->DimensionModel == GAIA_XY_M) new_ring = gaiaAllocRingXYM (ring->Points); else if (ring->DimensionModel == GAIA_XY_Z_M) new_ring = gaiaAllocRingXYZM (ring->Points); else new_ring = gaiaAllocRing (ring->Points); gaiaCopyRingCoords (new_ring, ring); return new_ring; } GAIAGEO_DECLARE void gaiaCopyRingCoordsReverse (gaiaRingPtr dst, gaiaRingPtr src) { /* / copying coords from one Ring to another in reverse order / maybe, converting from one Dimension Model to a different one */ int iv; int iv2 = 0; double x; double y; double z; double m; if (!src) return; if (!dst) return; if (src->Points != dst->Points) return; for (iv = src->Points - 1; iv >= 0; iv--) { z = 0.0; m = 0.0; if (src->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (src->Coords, iv, &x, &y, &z); } else if (src->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (src->Coords, iv, &x, &y, &m); } else if (src->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (src->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (src->Coords, iv, &x, &y); } if (dst->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (dst->Coords, iv2, x, y, z); } else if (dst->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (dst->Coords, iv2, x, y, m); } else if (dst->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (dst->Coords, iv2, x, y, z, m); } else { gaiaSetPoint (dst->Coords, iv2, x, y); } iv2++; } } GAIAGEO_DECLARE gaiaRingPtr gaiaCloneRingSpecial (gaiaRingPtr ring, int mode) { /* clones a RING (special) */ gaiaRingPtr new_ring; if (!ring) return NULL; if (mode != GAIA_REVERSE_ORDER) return gaiaCloneRing (ring); if (ring->DimensionModel == GAIA_XY_Z) new_ring = gaiaAllocRingXYZ (ring->Points); else if (ring->DimensionModel == GAIA_XY_M) new_ring = gaiaAllocRingXYM (ring->Points); else if (ring->DimensionModel == GAIA_XY_Z_M) new_ring = gaiaAllocRingXYZM (ring->Points); else new_ring = gaiaAllocRing (ring->Points); gaiaCopyRingCoordsReverse (new_ring, ring); return new_ring; } GAIAGEO_DECLARE gaiaPolygonPtr gaiaClonePolygon (gaiaPolygonPtr polyg) { /* clones a POLYGON */ int ib; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!polyg) return NULL; i_ring = polyg->Exterior; if (polyg->DimensionModel == GAIA_XY_Z) new_polyg = gaiaAllocPolygonXYZ (i_ring->Points, polyg->NumInteriors); else if (polyg->DimensionModel == GAIA_XY_M) new_polyg = gaiaAllocPolygonXYM (i_ring->Points, polyg->NumInteriors); else if (polyg->DimensionModel == GAIA_XY_Z_M) new_polyg = gaiaAllocPolygonXYZM (i_ring->Points, polyg->NumInteriors); else new_polyg = gaiaAllocPolygon (i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } return new_polyg; } GAIAGEO_DECLARE gaiaPolygonPtr gaiaClonePolygonSpecial (gaiaPolygonPtr polyg, int mode) { /* clones a POLYGON (special) */ int ib; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!polyg) return NULL; if (mode == GAIA_REVERSE_ORDER || mode == GAIA_LHR_ORDER) ; else return gaiaClonePolygon (polyg); i_ring = polyg->Exterior; if (polyg->DimensionModel == GAIA_XY_Z) new_polyg = gaiaAllocPolygonXYZ (i_ring->Points, polyg->NumInteriors); else if (polyg->DimensionModel == GAIA_XY_M) new_polyg = gaiaAllocPolygonXYM (i_ring->Points, polyg->NumInteriors); else if (polyg->DimensionModel == GAIA_XY_Z_M) new_polyg = gaiaAllocPolygonXYZM (i_ring->Points, polyg->NumInteriors); else new_polyg = gaiaAllocPolygon (i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ if (mode == GAIA_REVERSE_ORDER) gaiaCopyRingCoordsReverse (o_ring, i_ring); else { gaiaClockwise (i_ring); if (i_ring->Clockwise) gaiaCopyRingCoords (o_ring, i_ring); else gaiaCopyRingCoordsReverse (o_ring, i_ring); } for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); if (mode == GAIA_REVERSE_ORDER) gaiaCopyRingCoordsReverse (o_ring, i_ring); else { gaiaClockwise (i_ring); if (i_ring->Clockwise) gaiaCopyRingCoordsReverse (o_ring, i_ring); else gaiaCopyRingCoords (o_ring, i_ring); } } return new_polyg; } GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygon (int vert, int excl) { /* POLYGON object constructor */ gaiaPolygonPtr p; gaiaRingPtr pP; int ind; p = malloc (sizeof (gaiaPolygon)); p->Exterior = gaiaAllocRing (vert); p->NumInteriors = excl; p->NextInterior = 0; p->Next = NULL; if (excl == 0) p->Interiors = NULL; else p->Interiors = malloc (sizeof (gaiaRing) * excl); for (ind = 0; ind < p->NumInteriors; ind++) { pP = p->Interiors + ind; pP->Points = 0; pP->Coords = NULL; pP->Next = NULL; pP->Link = 0; } p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY; return p; } GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygonXYZ (int vert, int excl) { /* POLYGON object constructor */ gaiaPolygonPtr p; gaiaRingPtr pP; int ind; p = malloc (sizeof (gaiaPolygon)); p->Exterior = gaiaAllocRingXYZ (vert); p->NumInteriors = excl; p->NextInterior = 0; p->Next = NULL; if (excl == 0) p->Interiors = NULL; else p->Interiors = malloc (sizeof (gaiaRing) * excl); for (ind = 0; ind < p->NumInteriors; ind++) { pP = p->Interiors + ind; pP->Points = 0; pP->Coords = NULL; pP->Next = NULL; pP->Link = 0; } p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_Z; return p; } GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygonXYM (int vert, int excl) { /* POLYGON object constructor */ gaiaPolygonPtr p; gaiaRingPtr pP; int ind; p = malloc (sizeof (gaiaPolygon)); p->Exterior = gaiaAllocRingXYM (vert); p->NumInteriors = excl; p->NextInterior = 0; p->Next = NULL; if (excl == 0) p->Interiors = NULL; else p->Interiors = malloc (sizeof (gaiaRing) * excl); for (ind = 0; ind < p->NumInteriors; ind++) { pP = p->Interiors + ind; pP->Points = 0; pP->Coords = NULL; pP->Next = NULL; pP->Link = 0; } p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_M; return p; } GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygonXYZM (int vert, int excl) { /* POLYGON object constructor */ gaiaPolygonPtr p; gaiaRingPtr pP; int ind; p = malloc (sizeof (gaiaPolygon)); p->Exterior = gaiaAllocRingXYZM (vert); p->NumInteriors = excl; p->NextInterior = 0; p->Next = NULL; if (excl == 0) p->Interiors = NULL; else p->Interiors = malloc (sizeof (gaiaRing) * excl); for (ind = 0; ind < p->NumInteriors; ind++) { pP = p->Interiors + ind; pP->Points = 0; pP->Coords = NULL; pP->Next = NULL; pP->Link = 0; } p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_Z_M; return p; } GAIAGEO_DECLARE gaiaPolygonPtr gaiaCreatePolygon (gaiaRingPtr ring) { /* POLYGON object constructor */ gaiaPolygonPtr p; p = malloc (sizeof (gaiaPolygon)); p->DimensionModel = ring->DimensionModel; if (ring->DimensionModel == GAIA_XY_Z) p->Exterior = gaiaAllocRingXYZ (ring->Points); else if (ring->DimensionModel == GAIA_XY_M) p->Exterior = gaiaAllocRingXYM (ring->Points); else if (ring->DimensionModel == GAIA_XY_Z_M) p->Exterior = gaiaAllocRingXYZM (ring->Points); else p->Exterior = gaiaAllocRing (ring->Points); p->NumInteriors = 0; p->NextInterior = 0; p->Next = NULL; p->Interiors = NULL; gaiaCopyRingCoords (p->Exterior, ring); p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; return p; } GAIAGEO_DECLARE void gaiaFreePolygon (gaiaPolygonPtr p) { /* POLYGON object destructor */ gaiaRingPtr pP; int ind; if (p->Exterior) gaiaFreeRing (p->Exterior); for (ind = 0; ind < p->NumInteriors; ind++) { pP = p->Interiors + ind; if (pP->Coords) free (pP->Coords); } if (p->Interiors) free (p->Interiors); free (p); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomColl (gaiaGeomCollPtr geom) { /* clones a GEOMETRYCOLLECTION */ int ib; gaiaPointPtr point; gaiaLinestringPtr line; gaiaLinestringPtr new_line; gaiaPolygonPtr polyg; gaiaPolygonPtr new_polyg; gaiaGeomCollPtr new_geom; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!geom) return NULL; if (geom->DimensionModel == GAIA_XY_Z) new_geom = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) new_geom = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) new_geom = gaiaAllocGeomCollXYZM (); else new_geom = gaiaAllocGeomColl (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = geom->DeclaredType; point = geom->FirstPoint; while (point) { /* copying POINTs */ if (geom->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (new_geom, point->X, point->Y, point->Z); else if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (new_geom, point->X, point->Y, point->M); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (new_geom, point->X, point->Y, point->Z, point->M); else gaiaAddPointToGeomColl (new_geom, point->X, point->Y); point = point->Next; } line = geom->FirstLinestring; while (line) { /* copying LINESTRINGs */ new_line = gaiaAddLinestringToGeomColl (new_geom, line->Points); gaiaCopyLinestringCoords (new_line, line); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* copying POLYGONs */ i_ring = polyg->Exterior; new_polyg = gaiaAddPolygonToGeomColl (new_geom, i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } polyg = polyg->Next; } return new_geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollSpecial (gaiaGeomCollPtr geom, int mode) { /* clones a GEOMETRYCOLLECTION (special) */ int ib; gaiaPointPtr point; gaiaLinestringPtr line; gaiaLinestringPtr new_line; gaiaPolygonPtr polyg; gaiaPolygonPtr new_polyg; gaiaGeomCollPtr new_geom; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!geom) return NULL; if (mode == GAIA_REVERSE_ORDER || mode == GAIA_LHR_ORDER) ; else return gaiaCloneGeomColl (geom); if (geom->DimensionModel == GAIA_XY_Z) new_geom = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) new_geom = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) new_geom = gaiaAllocGeomCollXYZM (); else new_geom = gaiaAllocGeomColl (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = geom->DeclaredType; point = geom->FirstPoint; while (point) { /* copying POINTs */ if (geom->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (new_geom, point->X, point->Y, point->Z); else if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (new_geom, point->X, point->Y, point->M); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (new_geom, point->X, point->Y, point->Z, point->M); else gaiaAddPointToGeomColl (new_geom, point->X, point->Y); point = point->Next; } line = geom->FirstLinestring; while (line) { /* copying LINESTRINGs */ new_line = gaiaAddLinestringToGeomColl (new_geom, line->Points); if (mode == GAIA_REVERSE_ORDER) gaiaCopyLinestringCoordsReverse (new_line, line); else gaiaCopyLinestringCoords (new_line, line); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* copying POLYGONs */ i_ring = polyg->Exterior; new_polyg = gaiaAddPolygonToGeomColl (new_geom, i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ if (mode == GAIA_REVERSE_ORDER) gaiaCopyRingCoordsReverse (o_ring, i_ring); else { gaiaClockwise (i_ring); if (i_ring->Clockwise) gaiaCopyRingCoords (o_ring, i_ring); else gaiaCopyRingCoordsReverse (o_ring, i_ring); } for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); if (mode == GAIA_REVERSE_ORDER) gaiaCopyRingCoordsReverse (o_ring, i_ring); else { gaiaClockwise (i_ring); if (i_ring->Clockwise) gaiaCopyRingCoordsReverse (o_ring, i_ring); else gaiaCopyRingCoords (o_ring, i_ring); } } polyg = polyg->Next; } return new_geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollPoints (gaiaGeomCollPtr geom) { /* clones a GEOMETRYCOLLECTION (Points only) */ gaiaPointPtr point; gaiaGeomCollPtr new_geom; if (!geom) return NULL; if (geom->DimensionModel == GAIA_XY_Z) new_geom = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) new_geom = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) new_geom = gaiaAllocGeomCollXYZM (); else new_geom = gaiaAllocGeomColl (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = GAIA_MULTIPOINT; point = geom->FirstPoint; while (point) { /* copying POINTs */ if (geom->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (new_geom, point->X, point->Y, point->Z); else if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (new_geom, point->X, point->Y, point->M); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (new_geom, point->X, point->Y, point->Z, point->M); else gaiaAddPointToGeomColl (new_geom, point->X, point->Y); point = point->Next; } return new_geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollLinestrings (gaiaGeomCollPtr geom) { /* clones a GEOMETRYCOLLECTION (Linestrings only) */ gaiaLinestringPtr line; gaiaLinestringPtr new_line; gaiaGeomCollPtr new_geom; if (!geom) return NULL; if (geom->DimensionModel == GAIA_XY_Z) new_geom = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) new_geom = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) new_geom = gaiaAllocGeomCollXYZM (); else new_geom = gaiaAllocGeomColl (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = GAIA_MULTILINESTRING; line = geom->FirstLinestring; while (line) { /* copying LINESTRINGs */ new_line = gaiaAddLinestringToGeomColl (new_geom, line->Points); gaiaCopyLinestringCoords (new_line, line); line = line->Next; } return new_geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollPolygons (gaiaGeomCollPtr geom) { /* clones a GEOMETRYCOLLECTION (Polygons only) */ int ib; gaiaPolygonPtr polyg; gaiaPolygonPtr new_polyg; gaiaGeomCollPtr new_geom; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!geom) return NULL; if (geom->DimensionModel == GAIA_XY_Z) new_geom = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) new_geom = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) new_geom = gaiaAllocGeomCollXYZM (); else new_geom = gaiaAllocGeomColl (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = GAIA_MULTIPOLYGON; polyg = geom->FirstPolygon; while (polyg) { /* copying POLYGONs */ i_ring = polyg->Exterior; new_polyg = gaiaAddPolygonToGeomColl (new_geom, i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } polyg = polyg->Next; } return new_geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXY (gaiaGeomCollPtr geom) { /* clones a GEOMETRYCOLLECTION converting to XY-dimensions */ int ib; gaiaPointPtr point; gaiaLinestringPtr line; gaiaLinestringPtr new_line; gaiaPolygonPtr polyg; gaiaPolygonPtr new_polyg; gaiaGeomCollPtr new_geom; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!geom) return NULL; new_geom = gaiaAllocGeomColl (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = geom->DeclaredType; point = geom->FirstPoint; while (point) { /* copying POINTs */ gaiaAddPointToGeomColl (new_geom, point->X, point->Y); point = point->Next; } line = geom->FirstLinestring; while (line) { /* copying LINESTRINGs */ new_line = gaiaAddLinestringToGeomColl (new_geom, line->Points); gaiaCopyLinestringCoords (new_line, line); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* copying POLYGONs */ i_ring = polyg->Exterior; new_polyg = gaiaAddPolygonToGeomColl (new_geom, i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } polyg = polyg->Next; } return new_geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXYZ (gaiaGeomCollPtr geom) { /* clones a GEOMETRYCOLLECTION converting to XYZ-dimensions */ int ib; gaiaPointPtr point; gaiaLinestringPtr line; gaiaLinestringPtr new_line; gaiaPolygonPtr polyg; gaiaPolygonPtr new_polyg; gaiaGeomCollPtr new_geom; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!geom) return NULL; new_geom = gaiaAllocGeomCollXYZ (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = geom->DeclaredType; point = geom->FirstPoint; while (point) { /* copying POINTs */ gaiaAddPointToGeomCollXYZ (new_geom, point->X, point->Y, point->Z); point = point->Next; } line = geom->FirstLinestring; while (line) { /* copying LINESTRINGs */ new_line = gaiaAddLinestringToGeomColl (new_geom, line->Points); gaiaCopyLinestringCoords (new_line, line); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* copying POLYGONs */ i_ring = polyg->Exterior; new_polyg = gaiaAddPolygonToGeomColl (new_geom, i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } polyg = polyg->Next; } return new_geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXYM (gaiaGeomCollPtr geom) { /* clones a GEOMETRYCOLLECTION converting to XYM-dimensions */ int ib; gaiaPointPtr point; gaiaLinestringPtr line; gaiaLinestringPtr new_line; gaiaPolygonPtr polyg; gaiaPolygonPtr new_polyg; gaiaGeomCollPtr new_geom; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!geom) return NULL; new_geom = gaiaAllocGeomCollXYM (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = geom->DeclaredType; point = geom->FirstPoint; while (point) { /* copying POINTs */ gaiaAddPointToGeomCollXYM (new_geom, point->X, point->Y, point->M); point = point->Next; } line = geom->FirstLinestring; while (line) { /* copying LINESTRINGs */ new_line = gaiaAddLinestringToGeomColl (new_geom, line->Points); gaiaCopyLinestringCoords (new_line, line); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* copying POLYGONs */ i_ring = polyg->Exterior; new_polyg = gaiaAddPolygonToGeomColl (new_geom, i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } polyg = polyg->Next; } return new_geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXYZM (gaiaGeomCollPtr geom) { /* clones a GEOMETRYCOLLECTION converting to XYZM-dimensions */ int ib; gaiaPointPtr point; gaiaLinestringPtr line; gaiaLinestringPtr new_line; gaiaPolygonPtr polyg; gaiaPolygonPtr new_polyg; gaiaGeomCollPtr new_geom; gaiaRingPtr i_ring; gaiaRingPtr o_ring; if (!geom) return NULL; new_geom = gaiaAllocGeomCollXYZM (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = geom->DeclaredType; point = geom->FirstPoint; while (point) { /* copying POINTs */ gaiaAddPointToGeomCollXYZM (new_geom, point->X, point->Y, point->Z, point->M); point = point->Next; } line = geom->FirstLinestring; while (line) { /* copying LINESTRINGs */ new_line = gaiaAddLinestringToGeomColl (new_geom, line->Points); gaiaCopyLinestringCoords (new_line, line); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* copying POLYGONs */ i_ring = polyg->Exterior; new_polyg = gaiaAddPolygonToGeomColl (new_geom, i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } polyg = polyg->Next; } return new_geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomColl () { /* GEOMETRYCOLLECTION object constructor */ gaiaGeomCollPtr p = malloc (sizeof (gaiaGeomColl)); p->Srid = 0; p->endian = ' '; p->offset = 0; p->FirstPoint = NULL; p->LastPoint = NULL; p->FirstLinestring = NULL; p->LastLinestring = NULL; p->FirstPolygon = NULL; p->LastPolygon = NULL; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY; p->DeclaredType = GAIA_UNKNOWN; p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomCollXYZ () { /* GEOMETRYCOLLECTION object constructor */ gaiaGeomCollPtr p = malloc (sizeof (gaiaGeomColl)); p->Srid = 0; p->endian = ' '; p->offset = 0; p->FirstPoint = NULL; p->LastPoint = NULL; p->FirstLinestring = NULL; p->LastLinestring = NULL; p->FirstPolygon = NULL; p->LastPolygon = NULL; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_Z; p->DeclaredType = GAIA_UNKNOWN; p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomCollXYM () { /* GEOMETRYCOLLECTION object constructor */ gaiaGeomCollPtr p = malloc (sizeof (gaiaGeomColl)); p->Srid = 0; p->endian = ' '; p->offset = 0; p->FirstPoint = NULL; p->LastPoint = NULL; p->FirstLinestring = NULL; p->LastLinestring = NULL; p->FirstPolygon = NULL; p->LastPolygon = NULL; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_M; p->DeclaredType = GAIA_UNKNOWN; p->Next = NULL; return p; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomCollXYZM () { /* GEOMETRYCOLLECTION object constructor */ gaiaGeomCollPtr p = malloc (sizeof (gaiaGeomColl)); p->Srid = 0; p->endian = ' '; p->offset = 0; p->FirstPoint = NULL; p->LastPoint = NULL; p->FirstLinestring = NULL; p->LastLinestring = NULL; p->FirstPolygon = NULL; p->LastPolygon = NULL; p->MinX = DBL_MAX; p->MinY = DBL_MAX; p->MaxX = -DBL_MAX; p->MaxY = -DBL_MAX; p->DimensionModel = GAIA_XY_Z_M; p->DeclaredType = GAIA_UNKNOWN; p->Next = NULL; return p; } GAIAGEO_DECLARE void gaiaFreeGeomColl (gaiaGeomCollPtr p) { /* GEOMETRYCOLLECTION object destructor */ gaiaPointPtr pP; gaiaPointPtr pPn; gaiaLinestringPtr pL; gaiaLinestringPtr pLn; gaiaPolygonPtr pA; gaiaPolygonPtr pAn; if (!p) return; pP = p->FirstPoint; while (pP != NULL) { pPn = pP->Next; gaiaFreePoint (pP); pP = pPn; } pL = p->FirstLinestring; while (pL != NULL) { pLn = pL->Next; gaiaFreeLinestring (pL); pL = pLn; } pA = p->FirstPolygon; while (pA != NULL) { pAn = pA->Next; gaiaFreePolygon (pA); pA = pAn; } free (p); } GAIAGEO_DECLARE void gaiaAddPointToGeomColl (gaiaGeomCollPtr p, double x, double y) { /* adding a POINT to this GEOMETRYCOLLECTION */ gaiaPointPtr point = gaiaAllocPoint (x, y); if (p->FirstPoint == NULL) p->FirstPoint = point; if (p->LastPoint != NULL) p->LastPoint->Next = point; p->LastPoint = point; } GAIAGEO_DECLARE void gaiaAddPointToGeomCollXYZ (gaiaGeomCollPtr p, double x, double y, double z) { /* adding a POINT to this GEOMETRYCOLLECTION */ gaiaPointPtr point = gaiaAllocPointXYZ (x, y, z); if (p->FirstPoint == NULL) p->FirstPoint = point; if (p->LastPoint != NULL) p->LastPoint->Next = point; p->LastPoint = point; } GAIAGEO_DECLARE void gaiaAddPointToGeomCollXYM (gaiaGeomCollPtr p, double x, double y, double m) { /* adding a POINT to this GEOMETRYCOLLECTION */ gaiaPointPtr point = gaiaAllocPointXYM (x, y, m); if (p->FirstPoint == NULL) p->FirstPoint = point; if (p->LastPoint != NULL) p->LastPoint->Next = point; p->LastPoint = point; } GAIAGEO_DECLARE void gaiaAddPointToGeomCollXYZM (gaiaGeomCollPtr p, double x, double y, double z, double m) { /* adding a POINT to this GEOMETRYCOLLECTION */ gaiaPointPtr point = gaiaAllocPointXYZM (x, y, z, m); if (p->FirstPoint == NULL) p->FirstPoint = point; if (p->LastPoint != NULL) p->LastPoint->Next = point; p->LastPoint = point; } GAIAGEO_DECLARE gaiaLinestringPtr gaiaAddLinestringToGeomColl (gaiaGeomCollPtr p, int vert) { /* adding a LINESTRING to this GEOMETRYCOLLECTION */ gaiaLinestringPtr line; if (p->DimensionModel == GAIA_XY_Z) line = gaiaAllocLinestringXYZ (vert); else if (p->DimensionModel == GAIA_XY_M) line = gaiaAllocLinestringXYM (vert); else if (p->DimensionModel == GAIA_XY_Z_M) line = gaiaAllocLinestringXYZM (vert); else line = gaiaAllocLinestring (vert); if (p->FirstLinestring == NULL) p->FirstLinestring = line; if (p->LastLinestring != NULL) p->LastLinestring->Next = line; p->LastLinestring = line; return line; } GAIAGEO_DECLARE void gaiaInsertLinestringInGeomColl (gaiaGeomCollPtr p, gaiaLinestringPtr line) { /* adding an existing LINESTRING to this GEOMETRYCOLLECTION */ if (p->FirstLinestring == NULL) p->FirstLinestring = line; if (p->LastLinestring != NULL) p->LastLinestring->Next = line; p->LastLinestring = line; } GAIAGEO_DECLARE gaiaPolygonPtr gaiaAddPolygonToGeomColl (gaiaGeomCollPtr p, int vert, int interiors) { /* adding a POLYGON to this GEOMETRYCOLLECTION */ gaiaPolygonPtr polyg; if (p->DimensionModel == GAIA_XY_Z) polyg = gaiaAllocPolygonXYZ (vert, interiors); else if (p->DimensionModel == GAIA_XY_M) polyg = gaiaAllocPolygonXYM (vert, interiors); else if (p->DimensionModel == GAIA_XY_Z_M) polyg = gaiaAllocPolygonXYZM (vert, interiors); else polyg = gaiaAllocPolygon (vert, interiors); if (p->FirstPolygon == NULL) p->FirstPolygon = polyg; if (p->LastPolygon != NULL) p->LastPolygon->Next = polyg; p->LastPolygon = polyg; return polyg; } GAIAGEO_DECLARE gaiaPolygonPtr gaiaInsertPolygonInGeomColl (gaiaGeomCollPtr p, gaiaRingPtr ring) { /* adding a POLYGON to this GEOMETRYCOLLECTION */ gaiaPolygonPtr polyg; polyg = malloc (sizeof (gaiaPolygon)); polyg->Exterior = ring; polyg->NumInteriors = 0; polyg->NextInterior = 0; polyg->DimensionModel = ring->DimensionModel; polyg->Next = NULL; polyg->Interiors = NULL; polyg->MinX = DBL_MAX; polyg->MinY = DBL_MAX; polyg->MaxX = -DBL_MAX; polyg->MaxY = -DBL_MAX; if (p->FirstPolygon == NULL) p->FirstPolygon = polyg; if (p->LastPolygon != NULL) p->LastPolygon->Next = polyg; p->LastPolygon = polyg; return polyg; } GAIAGEO_DECLARE gaiaRingPtr gaiaAddInteriorRing (gaiaPolygonPtr p, int pos, int vert) { /* adding an interior ring to some polygon */ gaiaRingPtr pP = p->Interiors + pos; pP->Points = vert; pP->DimensionModel = p->DimensionModel; if (pP->DimensionModel == GAIA_XY_Z) pP->Coords = malloc (sizeof (double) * (vert * 3)); else if (pP->DimensionModel == GAIA_XY_M) pP->Coords = malloc (sizeof (double) * (vert * 3)); else if (pP->DimensionModel == GAIA_XY_Z_M) pP->Coords = malloc (sizeof (double) * (vert * 4)); else pP->Coords = malloc (sizeof (double) * (vert * 2)); return pP; } GAIAGEO_DECLARE void gaiaInsertInteriorRing (gaiaPolygonPtr p, gaiaRingPtr ring) { /* adding an interior ring to some polygon */ gaiaRingPtr hole; if (p->NumInteriors == 0) { /* this one is the first interior ring */ p->NumInteriors++; p->Interiors = malloc (sizeof (gaiaRing)); hole = p->Interiors; } else { /* some interior ring is already defined */ gaiaRingPtr save = p->Interiors; p->Interiors = malloc (sizeof (gaiaRing) * (p->NumInteriors + 1)); memcpy (p->Interiors, save, (sizeof (gaiaRing) * p->NumInteriors)); free (save); hole = p->Interiors + p->NumInteriors; p->NumInteriors++; } hole->Points = ring->Points; hole->DimensionModel = p->DimensionModel; if (hole->DimensionModel == GAIA_XY_Z) hole->Coords = malloc (sizeof (double) * (hole->Points * 3)); else if (hole->DimensionModel == GAIA_XY_M) hole->Coords = malloc (sizeof (double) * (hole->Points * 3)); else if (hole->DimensionModel == GAIA_XY_Z_M) hole->Coords = malloc (sizeof (double) * (hole->Points * 4)); else hole->Coords = malloc (sizeof (double) * (hole->Points * 2)); gaiaCopyRingCoords (hole, ring); } GAIAGEO_DECLARE void gaiaAddRingToPolyg (gaiaPolygonPtr polyg, gaiaRingPtr ring) { /* adds an interior ring to this POLYGON */ gaiaRingPtr old_interiors = NULL; if (!(polyg->Interiors)) { /* this one is the first interior ring */ polyg->Interiors = ring; polyg->NumInteriors = 1; } else { /* adding another interior ring */ old_interiors = polyg->Interiors; polyg->Interiors = malloc (sizeof (gaiaRing) * (polyg->NumInteriors + 1)); memcpy (polyg->Interiors, old_interiors, (sizeof (gaiaRing) * polyg->NumInteriors)); memcpy (polyg->Interiors + polyg->NumInteriors, ring, sizeof (gaiaRing)); (polyg->NumInteriors)++; free (old_interiors); free (ring); } } GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaAllocDynamicLine () { /* DYNAMIC LINE object constructor */ gaiaDynamicLinePtr p = malloc (sizeof (gaiaDynamicLine)); p->Error = 0; p->Srid = 0; p->First = NULL; p->Last = NULL; return p; } GAIAGEO_DECLARE void gaiaFreeDynamicLine (gaiaDynamicLinePtr p) { /* DYNAMIC LINE object destructor */ gaiaPointPtr pP; gaiaPointPtr pPn; pP = p->First; while (pP != NULL) { pPn = pP->Next; gaiaFreePoint (pP); pP = pPn; } free (p); } GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointToDynamicLine (gaiaDynamicLinePtr p, double x, double y) { /* inserts a new POINT to this DYNAMIC LINE after the last one */ gaiaPointPtr point = gaiaAllocPoint (x, y); point->Prev = p->Last; if (p->First == NULL) p->First = point; if (p->Last != NULL) p->Last->Next = point; p->Last = point; return point; } GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointZToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double z) { /* inserts a new POINT to this DYNAMIC LINE after the last one */ gaiaPointPtr point = gaiaAllocPointXYZ (x, y, z); point->Prev = p->Last; if (p->First == NULL) p->First = point; if (p->Last != NULL) p->Last->Next = point; p->Last = point; return point; } GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointMToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double m) { /* inserts a new POINT to this DYNAMIC LINE after the last one */ gaiaPointPtr point = gaiaAllocPointXYM (x, y, m); point->Prev = p->Last; if (p->First == NULL) p->First = point; if (p->Last != NULL) p->Last->Next = point; p->Last = point; return point; } GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointZMToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double z, double m) { /* inserts a new POINT to this DYNAMIC LINE after the last one */ gaiaPointPtr point = gaiaAllocPointXYZM (x, y, z, m); point->Prev = p->Last; if (p->First == NULL) p->First = point; if (p->Last != NULL) p->Last->Next = point; p->Last = point; return point; } GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointToDynamicLine (gaiaDynamicLinePtr p, double x, double y) { /* inserts a new POINT to this DYNAMIC LINE before the first one */ gaiaPointPtr point = gaiaAllocPoint (x, y); point->Next = p->First; if (p->Last == NULL) p->Last = point; if (p->First != NULL) p->First->Prev = point; p->First = point; return point; } GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointZToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double z) { /* inserts a new POINT to this DYNAMIC LINE before the first one */ gaiaPointPtr point = gaiaAllocPointXYZ (x, y, z); point->Next = p->First; if (p->Last == NULL) p->Last = point; if (p->First != NULL) p->First->Prev = point; p->First = point; return point; } GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointMToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double m) { /* inserts a new POINT to this DYNAMIC LINE before the first one */ gaiaPointPtr point = gaiaAllocPointXYM (x, y, m); point->Next = p->First; if (p->Last == NULL) p->Last = point; if (p->First != NULL) p->First->Prev = point; p->First = point; return point; } GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointZMToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double z, double m) { /* inserts a new POINT to this DYNAMIC LINE before the first one */ gaiaPointPtr point = gaiaAllocPointXYZM (x, y, z, m); point->Next = p->First; if (p->Last == NULL) p->Last = point; if (p->First != NULL) p->First->Prev = point; p->First = point; return point; } GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineInsertAfter (gaiaDynamicLinePtr p, gaiaPointPtr pt, double x, double y) { /* inserts a new POINT to this DYNAMIC LINE after the referenced POINT */ gaiaPointPtr point = gaiaAllocPoint (x, y); point->Prev = pt; point->Next = pt->Next; if (pt->Next) pt->Next->Prev = point; pt->Next = point; if (pt == p->Last) p->Last = point; return point; } GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineInsertBefore (gaiaDynamicLinePtr p, gaiaPointPtr pt, double x, double y) { /* inserts a new POINT to this DYNAMIC LINE before the referenced POINT */ gaiaPointPtr point = gaiaAllocPoint (x, y); point->Next = pt; point->Prev = pt->Prev; if (pt->Prev) pt->Prev->Next = point; pt->Prev = point; if (pt == p->First) p->First = point; return point; } GAIAGEO_DECLARE void gaiaDynamicLineDeletePoint (gaiaDynamicLinePtr p, gaiaPointPtr pt) { /* deletes a POINT from this DYNAMIC LINE */ if (pt->Prev) pt->Prev->Next = pt->Next; if (pt->Next) pt->Next->Prev = pt->Prev; if (pt == p->First) p->First = pt->Next; if (pt == p->Last) p->Last = pt->Prev; gaiaFreePoint (pt); } GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaCloneDynamicLine (gaiaDynamicLinePtr org) { /* creates a new line obtained by simply copying the current one */ gaiaPointPtr pt; gaiaDynamicLinePtr dst = gaiaAllocDynamicLine (); pt = org->First; while (pt) { gaiaAppendPointToDynamicLine (dst, pt->X, pt->Y); pt = pt->Next; } return dst; } GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaReverseDynamicLine (gaiaDynamicLinePtr org) { /* creates a new line obtained by inverting the current one */ gaiaPointPtr pt; gaiaDynamicLinePtr dst = gaiaAllocDynamicLine (); pt = org->Last; while (pt) { gaiaAppendPointToDynamicLine (dst, pt->X, pt->Y); pt = pt->Prev; } return dst; } GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineSplitBefore (gaiaDynamicLinePtr org, gaiaPointPtr point) { /* creates a new line obtained by cutting the current one in two */ gaiaDynamicLinePtr dst = gaiaAllocDynamicLine (); dst->First = org->First; dst->Last = point->Prev; point->Prev->Next = NULL; org->First = point; point->Prev = NULL; return dst; } GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineSplitAfter (gaiaDynamicLinePtr org, gaiaPointPtr point) { /* creates a new line obtained by cutting the current one in two */ gaiaDynamicLinePtr dst = gaiaAllocDynamicLine (); dst->First = point->Next; dst->Last = org->Last; point->Next->Prev = NULL; org->Last = point; point->Next = NULL; return dst; } GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineJoinAfter (gaiaDynamicLinePtr org, gaiaPointPtr point, gaiaDynamicLinePtr toJoin) { /* creates a new line obtained by joining the current one with another one */ gaiaPointPtr pt; gaiaDynamicLinePtr dst = gaiaAllocDynamicLine (); pt = org->First; while (pt) { /* inserting the first slice since the delimiting POINT included */ gaiaAppendPointToDynamicLine (dst, pt->X, pt->Y); if (pt == point) break; pt = pt->Next; } pt = toJoin->First; while (pt) { /* inserting the other line */ gaiaAppendPointToDynamicLine (dst, pt->X, pt->Y); pt = pt->Next; } pt = point->Next; while (pt) { /* inserting the second slice after the delimiting POINT */ gaiaAppendPointToDynamicLine (dst, pt->X, pt->Y); pt = pt->Next; } return dst; } GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineJoinBefore (gaiaDynamicLinePtr org, gaiaPointPtr point, gaiaDynamicLinePtr toJoin) { /* creates a new line obtained by joining the current one with another one */ gaiaPointPtr pt; gaiaDynamicLinePtr dst = gaiaAllocDynamicLine (); pt = org->First; while (pt) { /* inserting the first slice since the delimiting POINT excluded */ if (pt == point) break; gaiaAppendPointToDynamicLine (dst, pt->X, pt->Y); pt = pt->Next; } pt = toJoin->First; while (pt) { /* inserting the other line */ gaiaAppendPointToDynamicLine (dst, pt->X, pt->Y); pt = pt->Next; } pt = point; while (pt) { /* inserting the second slice beginning from the delimiting POINT */ gaiaAppendPointToDynamicLine (dst, pt->X, pt->Y); pt = pt->Next; } return dst; } GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineFindByCoords (gaiaDynamicLinePtr p, double x, double y) { /* finds a POINT inside this DYNAMIC LINE */ gaiaPointPtr pP; pP = p->First; while (pP != NULL) { if (pP->X == x && pP->Y == y) return pP; pP = pP->Next; } return NULL; } GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineFindByPos (gaiaDynamicLinePtr p, int pos) { /* finds a POINT inside this DYNAMIC LINE */ int n = 0; gaiaPointPtr pP; pP = p->First; while (pP != NULL) { if (pos == n) return pP; n++; pP = pP->Next; } return NULL; } GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaCreateDynamicLine (double *coords, int points) { /* creates a DynamicLine from an array of coordinates */ int iv; double x; double y; gaiaDynamicLinePtr line = gaiaAllocDynamicLine (); for (iv = 0; iv < points; iv++) { gaiaGetPoint (coords, iv, &x, &y); gaiaAppendPointToDynamicLine (line, x, y); } return line; } GAIAGEO_DECLARE void gaiaMbrLinestring (gaiaLinestringPtr line) { /* computes the MBR for this linestring */ int iv; double x; double y; double z; double m; line->MinX = DBL_MAX; line->MinY = DBL_MAX; line->MaxX = -DBL_MAX; line->MaxY = -DBL_MAX; for (iv = 0; iv < line->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (x < line->MinX) line->MinX = x; if (y < line->MinY) line->MinY = y; if (x > line->MaxX) line->MaxX = x; if (y > line->MaxY) line->MaxY = y; } } GAIAGEO_DECLARE void gaiaMbrRing (gaiaRingPtr rng) { /* computes the MBR for this ring */ int iv; double x; double y; double z; double m; rng->MinX = DBL_MAX; rng->MinY = DBL_MAX; rng->MaxX = -DBL_MAX; rng->MaxY = -DBL_MAX; for (iv = 0; iv < rng->Points; iv++) { if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (x < rng->MinX) rng->MinX = x; if (y < rng->MinY) rng->MinY = y; if (x > rng->MaxX) rng->MaxX = x; if (y > rng->MaxY) rng->MaxY = y; } } GAIAGEO_DECLARE void gaiaMbrPolygon (gaiaPolygonPtr polyg) { /* computes the MBR for this polygon */ gaiaRingPtr rng; polyg->MinX = DBL_MAX; polyg->MinY = DBL_MAX; polyg->MaxX = -DBL_MAX; polyg->MaxY = -DBL_MAX; rng = polyg->Exterior; gaiaMbrRing (rng); if (rng->MinX < polyg->MinX) polyg->MinX = rng->MinX; if (rng->MinY < polyg->MinY) polyg->MinY = rng->MinY; if (rng->MaxX > polyg->MaxX) polyg->MaxX = rng->MaxX; if (rng->MaxY > polyg->MaxY) polyg->MaxY = rng->MaxY; } GAIAGEO_DECLARE void gaiaMbrGeometry (gaiaGeomCollPtr geom) { /* computes the MBR for this geometry */ gaiaPointPtr point = NULL; gaiaLinestringPtr line = NULL; gaiaPolygonPtr polyg = NULL; geom->MinX = DBL_MAX; geom->MinY = DBL_MAX; geom->MaxX = -DBL_MAX; geom->MaxY = -DBL_MAX; point = geom->FirstPoint; while (point) { if (point->X < geom->MinX) geom->MinX = point->X; if (point->Y < geom->MinY) geom->MinY = point->Y; if (point->X > geom->MaxX) geom->MaxX = point->X; if (point->Y > geom->MaxY) geom->MaxY = point->Y; point = point->Next; } line = geom->FirstLinestring; while (line) { gaiaMbrLinestring (line); if (line->MinX < geom->MinX) geom->MinX = line->MinX; if (line->MinY < geom->MinY) geom->MinY = line->MinY; if (line->MaxX > geom->MaxX) geom->MaxX = line->MaxX; if (line->MaxY > geom->MaxY) geom->MaxY = line->MaxY; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { gaiaMbrPolygon (polyg); if (polyg->MinX < geom->MinX) geom->MinX = polyg->MinX; if (polyg->MinY < geom->MinY) geom->MinY = polyg->MinY; if (polyg->MaxX > geom->MaxX) geom->MaxX = polyg->MaxX; if (polyg->MaxY > geom->MaxY) geom->MaxY = polyg->MaxY; polyg = polyg->Next; } } GAIAGEO_DECLARE void gaiaMRangeLinestring (gaiaLinestringPtr line, double *min, double *max) { /* computes the M-range [min/max] for this linestring */ int iv; double x; double y; double z; double m; *min = DBL_MAX; *max = -DBL_MAX; for (iv = 0; iv < line->Points; iv++) { m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (m < *min) *min = m; if (m > *max) *max = m; } } GAIAGEO_DECLARE void gaiaMRangeRing (gaiaRingPtr rng, double *min, double *max) { /* computes the M-range [min/max] for this ring */ int iv; double x; double y; double z; double m; *min = DBL_MAX; *max = -DBL_MAX; for (iv = 0; iv < rng->Points; iv++) { m = 0.0; if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (m < *min) *min = m; if (m > *max) *max = m; } } GAIAGEO_DECLARE void gaiaMRangePolygon (gaiaPolygonPtr polyg, double *min, double *max) { /* computes the M-range [min/max] for this polygon */ gaiaRingPtr rng; int ib; double r_min; double r_max; *min = DBL_MAX; *max = -DBL_MAX; rng = polyg->Exterior; gaiaMRangeRing (rng, &r_min, &r_max); if (r_min < *min) *min = r_min; if (r_max > *max) *max = r_max; for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaMRangeRing (rng, &r_min, &r_max); if (r_min < *min) *min = r_min; if (r_max > *max) *max = r_max; } } GAIAGEO_DECLARE void gaiaMRangeGeometry (gaiaGeomCollPtr geom, double *min, double *max) { /* computes the M-range [min/max] for this geometry */ gaiaPointPtr point = NULL; gaiaLinestringPtr line = NULL; gaiaPolygonPtr polyg = NULL; double m; double r_min; double r_max; *min = DBL_MAX; *max = -DBL_MAX; point = geom->FirstPoint; while (point) { m = 0.0; if (point->DimensionModel == GAIA_XY_M || point->DimensionModel == GAIA_XY_Z_M) m = point->M; if (m < *min) *min = m; if (m > *max) *max = m; point = point->Next; } line = geom->FirstLinestring; while (line) { gaiaMRangeLinestring (line, &r_min, &r_max); if (r_min < *min) *min = r_min; if (r_max > *max) *max = r_max; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { gaiaMRangePolygon (polyg, &r_min, &r_max); if (r_min < *min) *min = r_min; if (r_max > *max) *max = r_max; polyg = polyg->Next; } } GAIAGEO_DECLARE void gaiaZRangeLinestring (gaiaLinestringPtr line, double *min, double *max) { /* computes the Z-range [min/max] for this linestring */ int iv; double x; double y; double z; double m; *min = DBL_MAX; *max = -DBL_MAX; for (iv = 0; iv < line->Points; iv++) { z = 0.0; m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (z < *min) *min = z; if (z > *max) *max = z; } } GAIAGEO_DECLARE void gaiaZRangeRing (gaiaRingPtr rng, double *min, double *max) { /* computes the Z-range [min/max] for this ring */ int iv; double x; double y; double z; double m; *min = DBL_MAX; *max = -DBL_MAX; for (iv = 0; iv < rng->Points; iv++) { z = 0.0; m = 0.0; if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (z < *min) *min = z; if (z > *max) *max = z; } } GAIAGEO_DECLARE void gaiaZRangePolygon (gaiaPolygonPtr polyg, double *min, double *max) { /* computes the Z-range [min/max] for this polygon */ gaiaRingPtr rng; int ib; double r_min; double r_max; *min = DBL_MAX; *max = -DBL_MAX; rng = polyg->Exterior; gaiaZRangeRing (rng, &r_min, &r_max); if (r_min < *min) *min = r_min; if (r_max > *max) *max = r_max; for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaZRangeRing (rng, &r_min, &r_max); if (r_min < *min) *min = r_min; if (r_max > *max) *max = r_max; } } GAIAGEO_DECLARE void gaiaZRangeGeometry (gaiaGeomCollPtr geom, double *min, double *max) { /* computes the Z-range [min/max] for this geometry */ gaiaPointPtr point = NULL; gaiaLinestringPtr line = NULL; gaiaPolygonPtr polyg = NULL; double z; double r_min; double r_max; *min = DBL_MAX; *max = -DBL_MAX; point = geom->FirstPoint; while (point) { z = 0.0; if (point->DimensionModel == GAIA_XY_Z || point->DimensionModel == GAIA_XY_Z_M) z = point->Z; if (z < *min) *min = z; if (z > *max) *max = z; point = point->Next; } line = geom->FirstLinestring; while (line) { gaiaZRangeLinestring (line, &r_min, &r_max); if (r_min < *min) *min = r_min; if (r_max > *max) *max = r_max; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { gaiaZRangePolygon (polyg, &r_min, &r_max); if (r_min < *min) *min = r_min; if (r_max > *max) *max = r_max; polyg = polyg->Next; } } GAIAGEO_DECLARE int gaiaDimension (gaiaGeomCollPtr geom) { /* determines the Dimension for this geometry */ gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; if (!geom) return -1; point = geom->FirstPoint; while (point) { /* counts how many points are there */ n_points++; point = point->Next; } line = geom->FirstLinestring; while (line) { /* counts how many linestrings are there */ n_linestrings++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* counts how many polygons are there */ n_polygons++; polyg = polyg->Next; } if (n_points == 0 && n_linestrings == 0 && n_polygons == 0) return -1; if (n_points > 0 && n_linestrings == 0 && n_polygons == 0) return 0; if (n_linestrings > 0 && n_polygons == 0) return 1; return 2; } GAIAGEO_DECLARE int gaiaGeometryType (gaiaGeomCollPtr geom) { /* determines the Class for this geometry */ gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr ring; int ib; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; int dm = GAIA_XY; if (!geom) return GAIA_UNKNOWN; point = geom->FirstPoint; while (point) { /* counts how many points are there */ n_points++; if (point->DimensionModel == GAIA_XY_Z) { if (dm == GAIA_XY) dm = GAIA_XY_Z; else if (dm == GAIA_XY_M) dm = GAIA_XY_Z_M; } else if (point->DimensionModel == GAIA_XY_M) { if (dm == GAIA_XY) dm = GAIA_XY_M; else if (dm == GAIA_XY_Z) dm = GAIA_XY_Z_M; } else if (point->DimensionModel == GAIA_XY_Z_M) dm = GAIA_XY_Z_M; point = point->Next; } line = geom->FirstLinestring; while (line) { /* counts how many linestrings are there */ n_linestrings++; if (line->DimensionModel == GAIA_XY_Z) { if (dm == GAIA_XY) dm = GAIA_XY_Z; else if (dm == GAIA_XY_M) dm = GAIA_XY_Z_M; } else if (line->DimensionModel == GAIA_XY_M) { if (dm == GAIA_XY) dm = GAIA_XY_M; else if (dm == GAIA_XY_Z) dm = GAIA_XY_Z_M; } else if (line->DimensionModel == GAIA_XY_Z_M) dm = GAIA_XY_Z_M; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* counts how many polygons are there */ n_polygons++; ring = polyg->Exterior; if (ring->DimensionModel == GAIA_XY_Z) { if (dm == GAIA_XY) dm = GAIA_XY_Z; else if (dm == GAIA_XY_M) dm = GAIA_XY_Z_M; } else if (ring->DimensionModel == GAIA_XY_M) { if (dm == GAIA_XY) dm = GAIA_XY_M; else if (dm == GAIA_XY_Z) dm = GAIA_XY_Z_M; } else if (ring->DimensionModel == GAIA_XY_Z_M) dm = GAIA_XY_Z_M; for (ib = 0; ib < polyg->NumInteriors; ib++) { ring = polyg->Interiors + ib; if (ring->DimensionModel == GAIA_XY_Z) { if (dm == GAIA_XY) dm = GAIA_XY_Z; else if (dm == GAIA_XY_M) dm = GAIA_XY_Z_M; } else if (ring->DimensionModel == GAIA_XY_M) { if (dm == GAIA_XY) dm = GAIA_XY_M; else if (dm == GAIA_XY_Z) dm = GAIA_XY_Z_M; } else if (ring->DimensionModel == GAIA_XY_Z_M) dm = GAIA_XY_Z_M; } polyg = polyg->Next; } if (n_points == 0 && n_linestrings == 0 && n_polygons == 0) return GAIA_UNKNOWN; if (n_points == 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTIPOINT) { if (dm == GAIA_XY_Z) return GAIA_MULTIPOINTZ; if (dm == GAIA_XY_M) return GAIA_MULTIPOINTM; if (dm == GAIA_XY_Z_M) return GAIA_MULTIPOINTZM; else return GAIA_MULTIPOINT; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (dm == GAIA_XY_Z) return GAIA_GEOMETRYCOLLECTIONZ; if (dm == GAIA_XY_M) return GAIA_GEOMETRYCOLLECTIONM; if (dm == GAIA_XY_Z_M) return GAIA_GEOMETRYCOLLECTIONZM; else return GAIA_GEOMETRYCOLLECTION; } else { if (dm == GAIA_XY_Z) return GAIA_POINTZ; if (dm == GAIA_XY_M) return GAIA_POINTM; if (dm == GAIA_XY_Z_M) return GAIA_POINTZM; else return GAIA_POINT; } } if (n_points > 0 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (dm == GAIA_XY_Z) return GAIA_GEOMETRYCOLLECTIONZ; if (dm == GAIA_XY_M) return GAIA_GEOMETRYCOLLECTIONM; if (dm == GAIA_XY_Z_M) return GAIA_GEOMETRYCOLLECTIONZM; else return GAIA_GEOMETRYCOLLECTION; } else { if (dm == GAIA_XY_Z) return GAIA_MULTIPOINTZ; if (dm == GAIA_XY_M) return GAIA_MULTIPOINTM; if (dm == GAIA_XY_Z_M) return GAIA_MULTIPOINTZM; else return GAIA_MULTIPOINT; } } if (n_points == 0 && n_linestrings == 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTILINESTRING) { if (dm == GAIA_XY_Z) return GAIA_MULTILINESTRINGZ; if (dm == GAIA_XY_M) return GAIA_MULTILINESTRINGM; if (dm == GAIA_XY_Z_M) return GAIA_MULTILINESTRINGZM; else return GAIA_MULTILINESTRING; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (dm == GAIA_XY_Z) return GAIA_GEOMETRYCOLLECTIONZ; if (dm == GAIA_XY_M) return GAIA_GEOMETRYCOLLECTIONM; if (dm == GAIA_XY_Z_M) return GAIA_GEOMETRYCOLLECTIONZM; else return GAIA_GEOMETRYCOLLECTION; } else { if (dm == GAIA_XY_Z) return GAIA_LINESTRINGZ; if (dm == GAIA_XY_M) return GAIA_LINESTRINGM; if (dm == GAIA_XY_Z_M) return GAIA_LINESTRINGZM; else return GAIA_LINESTRING; } } if (n_points == 0 && n_linestrings > 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (dm == GAIA_XY_Z) return GAIA_GEOMETRYCOLLECTIONZ; if (dm == GAIA_XY_M) return GAIA_GEOMETRYCOLLECTIONM; if (dm == GAIA_XY_Z_M) return GAIA_GEOMETRYCOLLECTIONZM; else return GAIA_GEOMETRYCOLLECTION; } else { if (dm == GAIA_XY_Z) return GAIA_MULTILINESTRINGZ; if (dm == GAIA_XY_M) return GAIA_MULTILINESTRINGM; if (dm == GAIA_XY_Z_M) return GAIA_MULTILINESTRINGZM; else return GAIA_MULTILINESTRING; } } if (n_points == 0 && n_linestrings == 0 && n_polygons == 1) { if (geom->DeclaredType == GAIA_MULTIPOLYGON) { if (dm == GAIA_XY_Z) return GAIA_MULTIPOLYGONZ; if (dm == GAIA_XY_M) return GAIA_MULTIPOLYGONM; if (dm == GAIA_XY_Z_M) return GAIA_MULTIPOLYGONZM; else return GAIA_MULTIPOLYGON; } else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (dm == GAIA_XY_Z) return GAIA_GEOMETRYCOLLECTIONZ; if (dm == GAIA_XY_M) return GAIA_GEOMETRYCOLLECTIONM; if (dm == GAIA_XY_Z_M) return GAIA_GEOMETRYCOLLECTIONZM; else return GAIA_GEOMETRYCOLLECTION; } else { if (dm == GAIA_XY_Z) return GAIA_POLYGONZ; if (dm == GAIA_XY_M) return GAIA_POLYGONM; if (dm == GAIA_XY_Z_M) return GAIA_POLYGONZM; else return GAIA_POLYGON; } } if (n_points == 0 && n_linestrings == 0 && n_polygons > 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) { if (dm == GAIA_XY_Z) return GAIA_GEOMETRYCOLLECTIONZ; if (dm == GAIA_XY_M) return GAIA_GEOMETRYCOLLECTIONM; if (dm == GAIA_XY_Z_M) return GAIA_GEOMETRYCOLLECTIONZM; else return GAIA_GEOMETRYCOLLECTION; } else { if (dm == GAIA_XY_Z) return GAIA_MULTIPOLYGONZ; if (dm == GAIA_XY_M) return GAIA_MULTIPOLYGONM; if (dm == GAIA_XY_Z_M) return GAIA_MULTIPOLYGONZM; else return GAIA_MULTIPOLYGON; } } if (dm == GAIA_XY_Z) return GAIA_GEOMETRYCOLLECTIONZ; if (dm == GAIA_XY_M) return GAIA_GEOMETRYCOLLECTIONM; if (dm == GAIA_XY_Z_M) return GAIA_GEOMETRYCOLLECTIONZM; else return GAIA_GEOMETRYCOLLECTION; } GAIAGEO_DECLARE int gaiaGeometryAliasType (gaiaGeomCollPtr geom) { /* determines the AliasClass for this geometry */ gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; if (!geom) return GAIA_UNKNOWN; point = geom->FirstPoint; while (point) { /* counts how many points are there */ n_points++; point = point->Next; } line = geom->FirstLinestring; while (line) { /* counts how many linestrings are there */ n_linestrings++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* counts how many polygons are there */ n_polygons++; polyg = polyg->Next; } if (n_points == 0 && n_linestrings == 0 && n_polygons == 0) return GAIA_UNKNOWN; if (n_points == 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTIPOINT) return GAIA_MULTIPOINT; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_POINT; } if (n_points >= 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_MULTIPOINT; } if (n_points == 0 && n_linestrings == 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTILINESTRING) return GAIA_MULTILINESTRING; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_LINESTRING; } if (n_points == 0 && n_linestrings >= 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_MULTILINESTRING; } if (n_points == 0 && n_linestrings == 0 && n_polygons == 1) { if (geom->DeclaredType == GAIA_MULTIPOLYGON) return GAIA_MULTIPOLYGON; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_POLYGON; } if (n_points == 0 && n_linestrings == 0 && n_polygons >= 1) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_MULTIPOLYGON; } return GAIA_GEOMETRYCOLLECTION; } GAIAGEO_DECLARE int gaiaIsEmpty (gaiaGeomCollPtr geom) { /* checks if this GEOMETRYCOLLECTION is an empty one */ if (!geom) return 1; if (geom->FirstPoint != NULL) { /* there is at least one point */ return 0; } if (geom->FirstLinestring != NULL) { /* there is at least one linestring */ return 0; } if (geom->FirstPolygon != NULL) { /* there is at least one polygon */ return 0; } return 1; } GAIAGEO_DECLARE int gaiaIsClosed (gaiaLinestringPtr line) { /* checks if this linestring is a closed one */ double x0; double y0; double x1; double y1; double z; double m; if (!line) return 0; if (line->Points < 3) return 0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, 0, &x0, &y0, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, 0, &x0, &y0, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, 0, &x0, &y0, &z, &m); } else { gaiaGetPoint (line->Coords, 0, &x0, &y0); } if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, (line->Points - 1), &x1, &y1, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, (line->Points - 1), &x1, &y1, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, (line->Points - 1), &x1, &y1, &z, &m); } else { gaiaGetPoint (line->Coords, (line->Points - 1), &x1, &y1); } if (x0 == x1 && y0 == y1) return 1; return 0; } GAIAGEO_DECLARE int gaiaMbrsEqual (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2) { /* / checks if two MBRs are identical / / returns 1 if TRUE / 0 if FALSE */ if (mbr1->MinX != mbr2->MinX) return 0; if (mbr1->MinY != mbr2->MinY) return 0; if (mbr1->MaxX != mbr2->MaxX) return 0; if (mbr1->MaxY != mbr2->MaxY) return 0; return 1; } GAIAGEO_DECLARE int gaiaMbrsDisjoint (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2) { /* / checks if two MBRs are disjoint / / returns 1 if TRUE / 0 if FALSE */ if (mbr1->MinX > mbr2->MaxX) return 1; if (mbr1->MinY > mbr2->MaxY) return 1; if (mbr1->MaxX < mbr2->MinX) return 1; if (mbr1->MaxY < mbr2->MinY) return 1; if (mbr2->MinX > mbr1->MaxX) return 1; if (mbr2->MinY > mbr1->MaxY) return 1; if (mbr2->MaxX < mbr1->MinX) return 1; if (mbr2->MaxY < mbr1->MinY) return 1; return 0; } GAIAGEO_DECLARE int gaiaMbrsTouches (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2) { /* / checks if two MBRs touches / / returns 1 if TRUE / 0 if FALSE */ if (mbr1->MinX == mbr2->MinX) return 1; if (mbr1->MinY == mbr2->MinY) return 1; if (mbr1->MaxX == mbr2->MaxX) return 1; if (mbr1->MaxY == mbr2->MaxY) return 1; return 0; } GAIAGEO_DECLARE int gaiaMbrsIntersects (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2) { /* / checks if two MBRs intersect / / returns 1 if TRUE / 0 if FALSE */ if (gaiaMbrsDisjoint (mbr1, mbr2)) return 0; return 1; } GAIAGEO_DECLARE int gaiaMbrsOverlaps (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2) { /* / checks if two MBRs overlap / / returns 1 if TRUE / 0 if FALSE */ if (gaiaMbrsDisjoint (mbr1, mbr2)) return 0; if (mbr1->MinX >= mbr2->MinX && mbr1->MinX <= mbr2->MaxX) return 1; if (mbr1->MaxX >= mbr2->MinX && mbr1->MaxX <= mbr2->MaxX) return 1; if (mbr1->MinY >= mbr2->MinY && mbr1->MinY <= mbr2->MaxY) return 1; if (mbr1->MaxY >= mbr2->MinY && mbr1->MaxY <= mbr2->MaxY) return 1; return 0; } GAIAGEO_DECLARE int gaiaMbrsContains (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2) { /* / checks if MBR-1 completely contains MBR-2 / / returns 1 if TRUE / 0 if FALSE */ int ok_1 = 0; int ok_2 = 0; int ok_3 = 0; int ok_4 = 0; if (mbr2->MinX >= mbr1->MinX && mbr2->MinX <= mbr1->MaxX) ok_1 = 1; if (mbr2->MaxX >= mbr1->MinX && mbr2->MaxX <= mbr1->MaxX) ok_2 = 1; if (mbr2->MinY >= mbr1->MinY && mbr2->MinY <= mbr1->MaxY) ok_3 = 1; if (mbr2->MaxY >= mbr1->MinY && mbr2->MaxY <= mbr1->MaxY) ok_4 = 1; if (ok_1 && ok_2 && ok_3 && ok_4) return 1; return 0; } GAIAGEO_DECLARE int gaiaMbrsWithin (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2) { /* / checks if MBR-2 completely contains MBR-1 / / returns 1 if TRUE / 0 if FALSE */ int ok_1 = 0; int ok_2 = 0; int ok_3 = 0; int ok_4 = 0; if (mbr1->MinX >= mbr2->MinX && mbr1->MinX <= mbr2->MaxX) ok_1 = 1; if (mbr1->MaxX >= mbr2->MinX && mbr1->MaxX <= mbr2->MaxX) ok_2 = 1; if (mbr1->MinY >= mbr2->MinY && mbr1->MinY <= mbr2->MaxY) ok_3 = 1; if (mbr1->MaxY >= mbr2->MinY && mbr1->MaxY <= mbr2->MaxY) ok_4 = 1; if (ok_1 && ok_2 && ok_3 && ok_4) return 1; return 0; } GAIAGEO_DECLARE void gaiaMakePoint (double x, double y, int srid, unsigned char **result, int *size) { /* build a Blob encoded Geometry representing a POINT */ unsigned char *ptr; int endian_arch = gaiaEndianArch (); /* computing the Blob size and then allocating it */ *size = 44; /* header size */ *size += (sizeof (double) * 2); /* [x,y] coords */ *result = malloc (*size); ptr = *result; /* setting the Blob value */ *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, x, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, y, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, x, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, y, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINT, 1, endian_arch); /* class POINT */ gaiaExport64 (ptr + 43, x, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, y, 1, endian_arch); /* Y */ *(ptr + 59) = GAIA_MARK_END; /* END signature */ } GAIAGEO_DECLARE void gaiaMakePointZ (double x, double y, double z, int srid, unsigned char **result, int *size) { /* build a Blob encoded Geometry representing a POINT Z */ unsigned char *ptr; int endian_arch = gaiaEndianArch (); /* computing the Blob size and then allocating it */ *size = 44; /* header size */ *size += (sizeof (double) * 3); /* [x,y,z] coords */ *result = malloc (*size); ptr = *result; /* setting the Blob value */ *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, x, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, y, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, x, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, y, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINTZ, 1, endian_arch); /* class POINT */ gaiaExport64 (ptr + 43, x, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 59, z, 1, endian_arch); /* Z */ *(ptr + 67) = GAIA_MARK_END; /* END signature */ } GAIAGEO_DECLARE void gaiaMakePointM (double x, double y, double m, int srid, unsigned char **result, int *size) { /* build a Blob encoded Geometry representing a POINT M */ unsigned char *ptr; int endian_arch = gaiaEndianArch (); /* computing the Blob size and then allocating it */ *size = 44; /* header size */ *size += (sizeof (double) * 3); /* [x,y,z] coords */ *result = malloc (*size); ptr = *result; /* setting the Blob value */ *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, x, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, y, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, x, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, y, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINTM, 1, endian_arch); /* class POINT */ gaiaExport64 (ptr + 43, x, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 59, m, 1, endian_arch); /* M */ *(ptr + 67) = GAIA_MARK_END; /* END signature */ } GAIAGEO_DECLARE void gaiaMakePointZM (double x, double y, double z, double m, int srid, unsigned char **result, int *size) { /* build a Blob encoded Geometry representing a POINT ZM */ unsigned char *ptr; int endian_arch = gaiaEndianArch (); /* computing the Blob size and then allocating it */ *size = 44; /* header size */ *size += (sizeof (double) * 4); /* [x,y,z,m] coords */ *result = malloc (*size); ptr = *result; /* setting the Blob value */ *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, x, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, y, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, x, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, y, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POINTZM, 1, endian_arch); /* class POINT */ gaiaExport64 (ptr + 43, x, 1, endian_arch); /* X */ gaiaExport64 (ptr + 51, y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 59, z, 1, endian_arch); /* Z */ gaiaExport64 (ptr + 67, m, 1, endian_arch); /* M */ *(ptr + 75) = GAIA_MARK_END; /* END signature */ } GAIAGEO_DECLARE void gaiaMakeLine (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, unsigned char **result, int *size) { /* build a Blob encoded Geometry representing a LINESTRING (segment) */ int pts; int lns; int pgs; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaGeomCollPtr g; int dims0 = 0; int dims1 = 0; int dims; double x0 = 0.0; double y0 = 0.0; double z0 = 0.0; double m0 = 0.0; double x1 = 0.0; double y1 = 0.0; double z1 = 0.0; double m1 = 0.0; /* checking if GEOM-1 simply is a POINT */ if (geom1 == NULL) { *result = NULL; *size = 0; return; } pts = 0; lns = 0; pgs = 0; pt = geom1->FirstPoint; while (pt) { pts++; x0 = pt->X; y0 = pt->Y; z0 = pt->Z; m0 = pt->M; dims0 = pt->DimensionModel; pt = pt->Next; } ln = geom1->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom1->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 1 && lns == 0 && pgs == 0) ; else { /* failure: not a simple POINT */ *result = NULL; *size = 0; return; } /* checking if GEOM-2 simply is a POINT */ if (geom2 == NULL) { *result = NULL; *size = 0; return; } pts = 0; lns = 0; pgs = 0; pt = geom2->FirstPoint; while (pt) { pts++; x1 = pt->X; y1 = pt->Y; z1 = pt->Z; m1 = pt->M; dims1 = pt->DimensionModel; pt = pt->Next; } ln = geom2->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom2->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 1 && lns == 0 && pgs == 0) ; else { /* failure: not a simple POINT */ *result = NULL; *size = 0; return; } /* building a new Geometry */ if (dims0 == dims1) dims = dims0; else { if (dims0 == GAIA_XY_Z_M || dims1 == GAIA_XY_Z_M) dims = GAIA_XY_Z_M; else if (dims0 == GAIA_XY_Z && dims1 == GAIA_XY_M) dims = GAIA_XY_Z_M; else if (dims0 == GAIA_XY_M && dims1 == GAIA_XY_Z) dims = GAIA_XY_Z_M; else if (dims0 == GAIA_XY_Z) dims = GAIA_XY_Z; else if (dims1 == GAIA_XY_Z) dims = GAIA_XY_Z; else if (dims0 == GAIA_XY_M) dims = GAIA_XY_M; else if (dims1 == GAIA_XY_M) dims = GAIA_XY_M; else dims = GAIA_XY; } if (dims == GAIA_XY_Z_M) g = gaiaAllocGeomCollXYZM (); else if (dims == GAIA_XY_Z) g = gaiaAllocGeomCollXYZ (); else if (dims == GAIA_XY_M) g = gaiaAllocGeomCollXYM (); else g = gaiaAllocGeomColl (); g->Srid = geom1->Srid; g->DeclaredType = GAIA_LINESTRING; ln = gaiaAddLinestringToGeomColl (g, 2); if (dims == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, 0, x0, y0, z0, m0); gaiaSetPointXYZM (ln->Coords, 1, x1, y1, z1, m1); } else if (dims == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, 0, x0, y0, z0); gaiaSetPointXYZ (ln->Coords, 1, x1, y1, z1); } else if (dims == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, 0, x0, y0, m0); gaiaSetPointXYM (ln->Coords, 1, x1, y1, m1); } else { gaiaSetPoint (ln->Coords, 0, x0, y0); gaiaSetPoint (ln->Coords, 1, x1, y1); } /* converting to Binary Blob */ gaiaToSpatiaLiteBlobWkb (g, result, size); gaiaFreeGeomColl (g); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMergeGeometries (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { return gaiaMergeGeometries_r (NULL, geom1, geom2); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMergeGeometries_r (const void *cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* mergine two generic Geometries into a single one */ gaiaGeomCollPtr result; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaLinestringPtr new_ln; gaiaPolygonPtr pg; gaiaPolygonPtr new_pg; gaiaRingPtr rng; gaiaRingPtr new_rng; int dims1; int dims2; int dims; double x; double y; double z; double m; int iv; int ib; if (geom1 == NULL || geom2 == NULL) return NULL; if (cache != NULL) { if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return NULL; } else { if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return NULL; } dims1 = geom1->DimensionModel; dims2 = geom2->DimensionModel; /* building a new Geometry */ if (dims1 == dims2) dims = dims1; else { if (dims1 == GAIA_XY_Z_M || dims2 == GAIA_XY_Z_M) dims = GAIA_XY_Z_M; else if (dims1 == GAIA_XY_Z && dims2 == GAIA_XY_M) dims = GAIA_XY_Z_M; else if (dims1 == GAIA_XY_M && dims2 == GAIA_XY_Z) dims = GAIA_XY_Z_M; else if (dims1 == GAIA_XY_Z) dims = GAIA_XY_Z; else if (dims2 == GAIA_XY_Z) dims = GAIA_XY_Z; else if (dims1 == GAIA_XY_M) dims = GAIA_XY_M; else if (dims2 == GAIA_XY_M) dims = GAIA_XY_M; else dims = GAIA_XY; } if (dims == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else if (dims == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (dims == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else result = gaiaAllocGeomColl (); result->Srid = geom1->Srid; pt = geom1->FirstPoint; while (pt) { /* copying POINTs from GEOM-1 */ z = 0.0; m = 0.0; if (pt->DimensionModel == GAIA_XY_Z_M) { x = pt->X; y = pt->Y; z = pt->Z; m = pt->M; } else if (pt->DimensionModel == GAIA_XY_Z) { x = pt->X; y = pt->Y; z = pt->Z; } else if (pt->DimensionModel == GAIA_XY_M) { x = pt->X; y = pt->Y; m = pt->M; } else { x = pt->X; y = pt->Y; } if (result->DimensionModel == GAIA_XY_Z_M) { gaiaAddPointToGeomCollXYZM (result, x, y, z, m); } else if (result->DimensionModel == GAIA_XY_Z) { gaiaAddPointToGeomCollXYZ (result, x, y, z); } else if (result->DimensionModel == GAIA_XY_M) { gaiaAddPointToGeomCollXYM (result, x, y, m); } else { gaiaAddPointToGeomColl (result, x, y); } pt = pt->Next; } pt = geom2->FirstPoint; while (pt) { /* copying POINTs from GEOM-2 */ z = 0.0; m = 0.0; if (pt->DimensionModel == GAIA_XY_Z_M) { x = pt->X; y = pt->Y; z = pt->Z; m = pt->M; } else if (pt->DimensionModel == GAIA_XY_Z) { x = pt->X; y = pt->Y; z = pt->Z; } else if (pt->DimensionModel == GAIA_XY_M) { x = pt->X; y = pt->Y; m = pt->M; } else { x = pt->X; y = pt->Y; } if (result->DimensionModel == GAIA_XY_Z_M) { gaiaAddPointToGeomCollXYZM (result, x, y, z, m); } else if (result->DimensionModel == GAIA_XY_Z) { gaiaAddPointToGeomCollXYZ (result, x, y, z); } else if (result->DimensionModel == GAIA_XY_M) { gaiaAddPointToGeomCollXYM (result, x, y, m); } else { gaiaAddPointToGeomColl (result, x, y); } pt = pt->Next; } ln = geom1->FirstLinestring; while (ln) { /* copying LINESTRINGs from GEOM-1 */ new_ln = gaiaAddLinestringToGeomColl (result, ln->Points); for (iv = 0; iv < ln->Points; iv++) { z = 0.0; m = 0.0; if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (new_ln->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); } else if (new_ln->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); } else if (new_ln->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); } else { gaiaSetPoint (new_ln->Coords, iv, x, y); } } ln = ln->Next; } ln = geom2->FirstLinestring; while (ln) { /* copying LINESTRINGs from GEOM-2 */ new_ln = gaiaAddLinestringToGeomColl (result, ln->Points); for (iv = 0; iv < ln->Points; iv++) { z = 0.0; m = 0.0; if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (new_ln->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_ln->Coords, iv, x, y, z, m); } else if (new_ln->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_ln->Coords, iv, x, y, z); } else if (new_ln->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_ln->Coords, iv, x, y, m); } else { gaiaSetPoint (new_ln->Coords, iv, x, y); } } ln = ln->Next; } pg = geom1->FirstPolygon; while (pg) { /* copying POLYGONs from GEOM-1 */ rng = pg->Exterior; new_pg = gaiaAddPolygonToGeomColl (result, rng->Points, pg->NumInteriors); new_rng = new_pg->Exterior; for (iv = 0; iv < rng->Points; iv++) { /* Exterior Ring */ z = 0.0; m = 0.0; if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (new_rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_rng->Coords, iv, x, y, z, m); } else if (new_rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_rng->Coords, iv, x, y, z); } else if (new_rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_rng->Coords, iv, x, y, m); } else { gaiaSetPoint (new_rng->Coords, iv, x, y); } } for (ib = 0; ib < pg->NumInteriors; ib++) { /* Interior Rings */ rng = pg->Interiors + ib; new_rng = gaiaAddInteriorRing (new_pg, ib, rng->Points); for (iv = 0; iv < rng->Points; iv++) { z = 0.0; m = 0.0; if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (new_rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_rng->Coords, iv, x, y, z, m); } else if (new_rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_rng->Coords, iv, x, y, z); } else if (new_rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_rng->Coords, iv, x, y, m); } else { gaiaSetPoint (new_rng->Coords, iv, x, y); } } } pg = pg->Next; } pg = geom2->FirstPolygon; while (pg) { /* copying POLYGONs from GEOM-2 */ rng = pg->Exterior; new_pg = gaiaAddPolygonToGeomColl (result, rng->Points, pg->NumInteriors); new_rng = new_pg->Exterior; for (iv = 0; iv < rng->Points; iv++) { /* Exterior Ring */ z = 0.0; m = 0.0; if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (new_rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_rng->Coords, iv, x, y, z, m); } else if (new_rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_rng->Coords, iv, x, y, z); } else if (new_rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_rng->Coords, iv, x, y, m); } else { gaiaSetPoint (new_rng->Coords, iv, x, y); } } for (ib = 0; ib < pg->NumInteriors; ib++) { /* Interior Rings */ rng = pg->Interiors + ib; new_rng = gaiaAddInteriorRing (new_pg, ib, rng->Points); for (iv = 0; iv < rng->Points; iv++) { z = 0.0; m = 0.0; if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } if (new_rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_rng->Coords, iv, x, y, z, m); } else if (new_rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_rng->Coords, iv, x, y, z); } else if (new_rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_rng->Coords, iv, x, y, m); } else { gaiaSetPoint (new_rng->Coords, iv, x, y); } } } pg = pg->Next; } return result; } GAIAGEO_DECLARE void gaiaBuildMbr (double x1, double y1, double x2, double y2, int srid, unsigned char **result, int *size) { /* build a Blob encoded Geometry representing an MBR */ unsigned char *ptr; double minx; double maxx; double miny; double maxy; int endian_arch = gaiaEndianArch (); /* computing MinMax coords */ if (x1 > x2) { maxx = x1; minx = x2; } else { minx = x1; maxx = x2; } if (y1 > y2) { maxy = y1; miny = y2; } else { miny = y1; maxy = y2; } /* computing the Blob size and then allocating it */ *size = 44; /* header size */ *size += (8 + ((sizeof (double) * 2) * 5)); /* # rings + # points + [x.y] array - exterior ring */ *result = malloc (*size); ptr = *result; /* setting the Blob value */ *ptr = GAIA_MARK_START; /* START signature */ *(ptr + 1) = GAIA_LITTLE_ENDIAN; /* byte ordering */ gaiaExport32 (ptr + 2, srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + 6, minx, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + 14, miny, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + 22, maxx, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + 30, maxy, 1, endian_arch); /* MBR - maximum Y */ *(ptr + 38) = GAIA_MARK_MBR; /* MBR signature */ gaiaExport32 (ptr + 39, GAIA_POLYGON, 1, endian_arch); /* class POLYGON */ gaiaExport32 (ptr + 43, 1, 1, endian_arch); /* # rings */ gaiaExport32 (ptr + 47, 5, 1, endian_arch); /* # points - exterior ring */ ptr += 51; /* setting Envelope points */ gaiaExport64 (ptr, minx, 1, endian_arch); gaiaExport64 (ptr + 8, miny, 1, endian_arch); ptr += 16; gaiaExport64 (ptr, maxx, 1, endian_arch); gaiaExport64 (ptr + 8, miny, 1, endian_arch); ptr += 16; gaiaExport64 (ptr, maxx, 1, endian_arch); gaiaExport64 (ptr + 8, maxy, 1, endian_arch); ptr += 16; gaiaExport64 (ptr, minx, 1, endian_arch); gaiaExport64 (ptr + 8, maxy, 1, endian_arch); ptr += 16; gaiaExport64 (ptr, minx, 1, endian_arch); gaiaExport64 (ptr + 8, miny, 1, endian_arch); ptr += 16; *ptr = GAIA_MARK_END; /* END signature */ } GAIAGEO_DECLARE void gaiaBuildCircleMbr (double x, double y, double radius, int srid, unsigned char **result, int *size) { /* build a Blob encoded Geometry representing an MBR */ int sz; unsigned char *res = NULL; double minx = x - radius; double maxx = x + radius; double miny = y - radius; double maxy = y + radius; gaiaBuildMbr (minx, miny, maxx, maxy, srid, &res, &sz); if (!res) { *result = NULL; *size = 0; } else { *result = res; *size = sz; } } GAIAGEO_DECLARE void gaiaBuildFilterMbr (double x1, double y1, double x2, double y2, int mode, unsigned char **result, int *size) { /* build a filter for an MBR */ unsigned char *ptr; double minx; double maxx; double miny; double maxy; int endian_arch = gaiaEndianArch (); char filter = GAIA_FILTER_MBR_WITHIN; if (mode == GAIA_FILTER_MBR_CONTAINS) filter = GAIA_FILTER_MBR_CONTAINS; if (mode == GAIA_FILTER_MBR_INTERSECTS) filter = GAIA_FILTER_MBR_INTERSECTS; if (mode == GAIA_FILTER_MBR_DECLARE) filter = GAIA_FILTER_MBR_DECLARE; /* computing MinMax coords */ if (x1 > x2) { maxx = x1; minx = x2; } else { minx = x1; maxx = x2; } if (y1 > y2) { maxy = y1; miny = y2; } else { miny = y1; maxy = y2; } /* computing the Blob size and then allocating it */ *size = 37; /* MBR filter size */ *result = malloc (*size); ptr = *result; /* setting the Blob value */ *ptr = filter; /* signature */ ptr++; gaiaExport64 (ptr, minx, 1, endian_arch); /* MBR - minimum X */ ptr += 8; *ptr = filter; /* signature */ ptr++; gaiaExport64 (ptr, miny, 1, endian_arch); /* MBR - minimum Y */ ptr += 8; *ptr = filter; /* signature */ ptr++; gaiaExport64 (ptr, maxx, 1, endian_arch); /* MBR - maximum X */ ptr += 8; *ptr = filter; /* signature */ ptr++; gaiaExport64 (ptr, maxy, 1, endian_arch); /* MBR - maximum Y */ ptr += 8; *ptr = filter; /* signature */ } GAIAGEO_DECLARE int gaiaParseFilterMbr (unsigned char *ptr, int size, double *minx, double *miny, double *maxx, double *maxy, int *mode) { /* parsing a filter for an MBR */ char decl_mode; int endian_arch = gaiaEndianArch (); if (size != 37) return 0; /* cannot be an MBR Filter */ if (!ptr) return 0; /* cannot be an MBR Filter */ decl_mode = *(ptr + 0); if (decl_mode == GAIA_FILTER_MBR_WITHIN) ; else if (decl_mode == GAIA_FILTER_MBR_CONTAINS) ; else if (decl_mode == GAIA_FILTER_MBR_INTERSECTS) ; else if (decl_mode == GAIA_FILTER_MBR_DECLARE) ; else return 0; /* cannot be an MBR Filter */ if (*(ptr + 9) == decl_mode && *(ptr + 18) == decl_mode && *(ptr + 27) == decl_mode && *(ptr + 36) == decl_mode) ; else return 0; /* cannot be an MBR Filter */ *mode = decl_mode; *minx = gaiaImport64 (ptr + 1, 1, endian_arch); *miny = gaiaImport64 (ptr + 10, 1, endian_arch); *maxx = gaiaImport64 (ptr + 19, 1, endian_arch); *maxy = gaiaImport64 (ptr + 28, 1, endian_arch); return 1; } GAIAGEO_DECLARE int gaiaGetMbrMinX (const unsigned char *blob, unsigned int size, double *minx) { /* returns the MinX coordinate value for a Blob encoded Geometry */ int little_endian; int endian_arch = gaiaEndianArch (); if (size < 45) return 0; /* cannot be an internal BLOB WKB geometry */ if (*(blob + 0) != GAIA_MARK_START) return 0; /* failed to recognize START signature */ if (*(blob + (size - 1)) != GAIA_MARK_END) return 0; /* failed to recognize END signature */ if (*(blob + 38) != GAIA_MARK_MBR) return 0; /* failed to recognize MBR signature */ if (*(blob + 1) == GAIA_LITTLE_ENDIAN) little_endian = 1; else if (*(blob + 1) == GAIA_BIG_ENDIAN) little_endian = 0; else return 0; /* unknown encoding; neither little-endian nor big-endian */ *minx = gaiaImport64 (blob + 6, little_endian, endian_arch); return 1; } GAIAGEO_DECLARE int gaiaGetMbrMaxX (const unsigned char *blob, unsigned int size, double *maxx) { /* returns the MaxX coordinate value for a Blob encoded Geometry */ int little_endian; int endian_arch = gaiaEndianArch (); if (size < 45) return 0; /* cannot be an internal BLOB WKB geometry */ if (*(blob + 0) != GAIA_MARK_START) return 0; /* failed to recognize START signature */ if (*(blob + (size - 1)) != GAIA_MARK_END) return 0; /* failed to recognize END signature */ if (*(blob + 38) != GAIA_MARK_MBR) return 0; /* failed to recognize MBR signature */ if (*(blob + 1) == GAIA_LITTLE_ENDIAN) little_endian = 1; else if (*(blob + 1) == GAIA_BIG_ENDIAN) little_endian = 0; else return 0; /* unknown encoding; neither little-endian nor big-endian */ *maxx = gaiaImport64 (blob + 22, little_endian, endian_arch); return 1; } GAIAGEO_DECLARE int gaiaGetMbrMinY (const unsigned char *blob, unsigned int size, double *miny) { /* returns the MinY coordinate value for a Blob encoded Geometry */ int little_endian; int endian_arch = gaiaEndianArch (); if (size < 45) return 0; /* cannot be an internal BLOB WKB geometry */ if (*(blob + 0) != GAIA_MARK_START) return 0; /* failed to recognize START signature */ if (*(blob + (size - 1)) != GAIA_MARK_END) return 0; /* failed to recognize END signature */ if (*(blob + 38) != GAIA_MARK_MBR) return 0; /* failed to recognize MBR signature */ if (*(blob + 1) == GAIA_LITTLE_ENDIAN) little_endian = 1; else if (*(blob + 1) == GAIA_BIG_ENDIAN) little_endian = 0; else return 0; /* unknown encoding; neither little-endian nor big-endian */ *miny = gaiaImport64 (blob + 14, little_endian, endian_arch); return 1; } GAIAGEO_DECLARE int gaiaGetMbrMaxY (const unsigned char *blob, unsigned int size, double *maxy) { /* returns the MaxY coordinate value for a Blob encoded Geometry */ int little_endian; int endian_arch = gaiaEndianArch (); if (size < 45) return 0; /* cannot be an internal BLOB WKB geometry */ if (*(blob + 0) != GAIA_MARK_START) return 0; /* failed to recognize START signature */ if (*(blob + (size - 1)) != GAIA_MARK_END) return 0; /* failed to recognize END signature */ if (*(blob + 38) != GAIA_MARK_MBR) return 0; /* failed to recognize MBR signature */ if (*(blob + 1) == GAIA_LITTLE_ENDIAN) little_endian = 1; else if (*(blob + 1) == GAIA_BIG_ENDIAN) little_endian = 0; else return 0; /* unknown encoding; neither little-endian nor big-endian */ *maxy = gaiaImport64 (blob + 30, little_endian, endian_arch); return 1; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLocateBetweenMeasures (gaiaGeomCollPtr geom, double m_start, double m_end) { /* extracts points/linestrings accordingly to a range of measures */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaLinestringPtr new_line; gaiaGeomCollPtr new_geom = NULL; gaiaDynamicLinePtr dyn = NULL; int iv; double x; double y; double z; double m; if (!geom) return NULL; if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return NULL; if (geom->FirstPolygon != NULL) return NULL; if (geom->DimensionModel == GAIA_XY_M) new_geom = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) new_geom = gaiaAllocGeomCollXYZM (); else return NULL; new_geom->Srid = geom->Srid; new_geom->DeclaredType = geom->DeclaredType; pt = geom->FirstPoint; while (pt) { /* extracting POINTs */ if (pt->M >= m_start && pt->M <= m_end) { if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (new_geom, pt->X, pt->Y, pt->M); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (new_geom, pt->X, pt->Y, pt->Z, pt->M); } pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { /* extracting LINESTRINGs */ for (iv = 0; iv < ln->Points; iv++) { z = 0.0; if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } if (m >= m_start && m <= m_end) { /* found a valid vertex */ if (dyn == NULL) dyn = gaiaAllocDynamicLine (); if (ln->DimensionModel == GAIA_XY_Z_M) gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); else gaiaAppendPointMToDynamicLine (dyn, x, y, m); } else { if (dyn != NULL) { /* evaluting the latest sequence found */ int cnt = 0; pt = dyn->First; while (pt) { /* counting how many points are there */ cnt++; pt = pt->Next; } if (cnt > 1) { /* creating a Linestring */ new_line = gaiaAddLinestringToGeomColl (new_geom, cnt); cnt = 0; pt = dyn->First; while (pt) { if (new_line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_line->Coords, cnt, pt->X, pt->Y, pt->Z, pt->M); } else { gaiaSetPointXYM (new_line->Coords, cnt, pt->X, pt->Y, pt->M); } cnt++; pt = pt->Next; } } else if (cnt == 1) { /* creating a Point */ pt = dyn->First; if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (new_geom, pt->X, pt->Y, pt->M); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (new_geom, pt->X, pt->Y, pt->Z, pt->M); } gaiaFreeDynamicLine (dyn); dyn = NULL; } } } if (dyn != NULL) { /* evaluting the latest sequence found */ int cnt = 0; pt = dyn->First; while (pt) { /* counting how many points are there */ cnt++; pt = pt->Next; } if (cnt > 1) { /* creating a Linestring */ new_line = gaiaAddLinestringToGeomColl (new_geom, cnt); cnt = 0; pt = dyn->First; while (pt) { if (new_line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_line->Coords, cnt, pt->X, pt->Y, pt->Z, pt->M); } else { gaiaSetPointXYM (new_line->Coords, cnt, pt->X, pt->Y, pt->M); } cnt++; pt = pt->Next; } } else if (cnt == 1) { /* creating a Point */ pt = dyn->First; if (geom->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (new_geom, pt->X, pt->Y, pt->M); else if (geom->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (new_geom, pt->X, pt->Y, pt->Z, pt->M); } gaiaFreeDynamicLine (dyn); dyn = NULL; } ln = ln->Next; } if (new_geom->FirstPoint == NULL && new_geom->FirstLinestring == NULL) { /* empty result: returning NULL */ gaiaFreeGeomColl (new_geom); return NULL; } return new_geom; } static int check_closed_multi_linestring (gaiaGeomCollPtr geom, int single) { /* check if : / - this geometry is a (multi) Linestring / - all Linestrings are effectively closed */ int pts = 0; int lns = 0; int pgs = 0; int closed = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { if (gaiaIsClosed (ln)) closed++; lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (closed != lns) return 0; if (single) { if (pts == 0 && lns == 1 && pgs == 0) return lns; } else { if (pts == 0 && lns >= 1 && pgs == 0) return lns; } return 0; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakePolygon (gaiaGeomCollPtr exterior, gaiaGeomCollPtr interiors) { /* reassembling a Polygon from closed Linestrings */ gaiaGeomCollPtr geom; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaLinestringPtr ln; int iv; double x; double y; double z; double m; int num_interiors = 0; int ib; if (exterior == NULL) return NULL; if (!check_closed_multi_linestring (exterior, 1)) return NULL; if (interiors != NULL) { num_interiors = check_closed_multi_linestring (interiors, 0); if (!num_interiors) return NULL; } /* reassembling the Polygon */ if (exterior->DimensionModel == GAIA_XY_Z) geom = gaiaAllocGeomCollXYZ (); else if (exterior->DimensionModel == GAIA_XY_M) geom = gaiaAllocGeomCollXYM (); else if (exterior->DimensionModel == GAIA_XY_Z_M) geom = gaiaAllocGeomCollXYZM (); else geom = gaiaAllocGeomColl (); geom->Srid = exterior->Srid; ln = exterior->FirstLinestring; pg = gaiaAddPolygonToGeomColl (geom, ln->Points, num_interiors); rng = pg->Exterior; for (iv = 0; iv < ln->Points; iv++) { /* exterior ring */ m = 0.0; z = 0.0; switch (ln->DimensionModel) { case GAIA_XY: gaiaGetPoint (ln->Coords, iv, &x, &y); break; case GAIA_XY_Z: gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); break; case GAIA_XY_M: gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); break; default: return 0; }; switch (rng->DimensionModel) { case GAIA_XY: gaiaSetPoint (rng->Coords, iv, x, y); break; case GAIA_XY_Z: gaiaSetPointXYZ (rng->Coords, iv, x, y, z); break; case GAIA_XY_M: gaiaSetPointXYM (rng->Coords, iv, x, y, m); break; case GAIA_XY_Z_M: gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m); break; }; } if (interiors != NULL) { /* setting up the interior rings */ ib = 0; ln = interiors->FirstLinestring; while (ln) { rng = gaiaAddInteriorRing (pg, ib, ln->Points); for (iv = 0; iv < ln->Points; iv++) { m = 0.0; z = 0.0; switch (ln->DimensionModel) { case GAIA_XY: gaiaGetPoint (ln->Coords, iv, &x, &y); break; case GAIA_XY_Z: gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); break; case GAIA_XY_M: gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); break; case GAIA_XY_Z_M: gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); break; default: return 0; }; switch (rng->DimensionModel) { case GAIA_XY: gaiaSetPoint (rng->Coords, iv, x, y); break; case GAIA_XY_Z: gaiaSetPointXYZ (rng->Coords, iv, x, y, z); break; case GAIA_XY_M: gaiaSetPointXYM (rng->Coords, iv, x, y, m); break; case GAIA_XY_Z_M: gaiaSetPointXYZM (rng->Coords, iv, x, y, z, m); break; }; } ib++; ln = ln->Next; } } return geom; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiageo/geoJSON.c����������������������������������������������������������0000664�0001750�0001750�00000353112�12544707704�015242� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Driver template for the LEMON parser generator. ** The author disclaims copyright to this source code. */ /* First off, code is included that follows the "include" declaration ** in the input grammar file. */ #include <stdio.h> /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ /* ** These constants (all generated automatically by the parser generator) ** specify the various kinds of tokens (terminals) that the parser ** understands. ** ** Each symbol here is a terminal symbol in the grammar. */ /* Make sure the INTERFACE macro is defined. */ #ifndef INTERFACE #define INTERFACE 1 #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. ** YYCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. ** YYNOCODE is a number of type YYCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. ** YYFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. ** YYACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** ParseTOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. ** YYMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is ParseTOKENTYPE. The entry in the union ** for base tokens is called "yy0". ** YYSTACKDEPTH is the maximum depth of the parser's stack. If ** zero the stack is dynamically sized using realloc() ** ParseARG_SDECL A static variable declaration for the %extra_argument ** ParseARG_PDECL A parameter declaration for the %extra_argument ** ParseARG_STORE Code to store %extra_argument into yypParser ** ParseARG_FETCH Code to extract %extra_argument from yypParser ** YYNSTATE the combined number of states. ** YYNRULE the number of rules in the grammar ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ #define YYCODETYPE unsigned char #define YYNOCODE 84 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE void * typedef union { int yyinit; ParseTOKENTYPE yy0; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 1000000 #endif #define ParseARG_SDECL struct geoJson_data *p_data ; #define ParseARG_PDECL , struct geoJson_data *p_data #define ParseARG_FETCH struct geoJson_data *p_data = yypParser->p_data #define ParseARG_STORE yypParser->p_data = p_data #define YYNSTATE 679 #define YYNRULE 159 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) /* The yyzerominor constant is used to initialize instances of ** YYMINORTYPE objects to zero. */ static const YYMINORTYPE yyzerominor = { 0 }; /* Define the yytestcase() macro to be a no-op if is not already defined ** otherwise. ** ** Applications can choose to define yytestcase() in the %include section ** to a macro that can assist in verifying code coverage. For production ** code the yytestcase() macro should be turned off. But it is useful ** for testing. */ #ifndef yytestcase #define yytestcase(X) #endif /* Next are the tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement ** functions that take a state number and lookahead value and return an ** action integer. ** ** Suppose the action integer is N. Then the action is determined as ** follows ** ** 0 <= N < YYNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** ** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. ** ** N == YYNSTATE+YYNRULE A syntax error has occurred. ** ** N == YYNSTATE+YYNRULE+1 The parser accepts its input. ** ** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused ** slots in the yy_action[] table. ** ** The action table is constructed as a single large table named yy_action[]. ** Given state S and lookahead X, the action is computed as ** ** yy_action[ yy_shift_ofst[S] + X ] ** ** If the index value yy_shift_ofst[S]+X is out of range or if the value ** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] ** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table ** and that yy_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after ** a reduce action) then the yy_reduce_ofst[] array is used in place of ** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of ** YY_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** ** yy_action[] A single table containing all actions. ** yy_lookahead[] A table containing the lookahead for each entry in ** yy_action. Used to detect hash collisions. ** yy_shift_ofst[] For each state, the offset into yy_action for ** shifting terminals. ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { /* 0 */ 184, 533, 534, 535, 536, 537, 538, 539, 540, 541, /* 10 */ 542, 543, 544, 545, 546, 547, 548, 187, 139, 189, /* 20 */ 146, 147, 148, 190, 155, 156, 679, 104, 185, 112, /* 30 */ 242, 287, 334, 373, 412, 451, 139, 195, 146, 147, /* 40 */ 140, 201, 141, 142, 512, 149, 88, 150, 151, 157, /* 50 */ 148, 551, 155, 156, 496, 188, 243, 193, 254, 509, /* 60 */ 204, 262, 455, 288, 335, 301, 340, 471, 309, 348, /* 70 */ 507, 374, 413, 379, 418, 457, 387, 426, 482, 191, /* 80 */ 498, 480, 452, 567, 568, 839, 1, 169, 461, 465, /* 90 */ 93, 486, 490, 501, 504, 238, 240, 211, 199, 207, /* 100 */ 86, 201, 200, 208, 101, 244, 245, 215, 205, 217, /* 110 */ 553, 216, 223, 219, 227, 99, 201, 220, 228, 246, /* 120 */ 229, 19, 256, 250, 263, 275, 201, 260, 261, 95, /* 130 */ 30, 269, 31, 265, 266, 201, 273, 274, 277, 278, /* 140 */ 281, 285, 286, 42, 201, 292, 289, 290, 303, 297, /* 150 */ 307, 308, 201, 310, 322, 312, 313, 96, 316, 328, /* 160 */ 320, 321, 201, 201, 324, 325, 332, 333, 206, 120, /* 170 */ 209, 336, 337, 121, 342, 192, 349, 361, 201, 53, /* 180 */ 346, 347, 351, 352, 355, 64, 359, 360, 201, 363, /* 190 */ 364, 367, 375, 376, 2, 201, 381, 371, 372, 394, /* 200 */ 201, 122, 126, 201, 385, 386, 388, 400, 390, 391, /* 210 */ 414, 415, 398, 399, 402, 403, 406, 410, 411, 420, /* 220 */ 201, 130, 134, 201, 424, 425, 427, 439, 433, 429, /* 230 */ 430, 218, 201, 221, 437, 438, 441, 442, 445, 477, /* 240 */ 478, 202, 201, 449, 450, 473, 460, 468, 493, 201, /* 250 */ 485, 464, 489, 508, 520, 514, 510, 511, 524, 201, /* 260 */ 518, 519, 522, 523, 526, 203, 530, 531, 201, 264, /* 270 */ 276, 267, 279, 521, 311, 323, 314, 326, 350, 362, /* 280 */ 353, 365, 389, 401, 392, 404, 428, 440, 431, 443, /* 290 */ 556, 247, 248, 97, 99, 251, 249, 571, 102, 105, /* 300 */ 252, 253, 103, 292, 106, 573, 291, 295, 113, 293, /* 310 */ 294, 111, 123, 114, 110, 589, 125, 124, 296, 297, /* 320 */ 119, 127, 298, 299, 377, 840, 118, 620, 592, 128, /* 330 */ 246, 131, 300, 132, 338, 135, 339, 250, 136, 4, /* 340 */ 3, 5, 129, 532, 6, 158, 186, 133, 8, 552, /* 350 */ 104, 378, 159, 549, 460, 622, 137, 550, 112, 87, /* 360 */ 416, 194, 9, 10, 197, 464, 636, 196, 417, 468, /* 370 */ 485, 638, 198, 453, 554, 555, 489, 454, 89, 90, /* 380 */ 651, 652, 493, 91, 653, 11, 170, 469, 12, 470, /* 390 */ 557, 558, 210, 213, 479, 13, 662, 663, 664, 214, /* 400 */ 212, 14, 494, 559, 560, 678, 171, 495, 15, 561, /* 410 */ 562, 222, 225, 16, 17, 226, 224, 563, 230, 564, /* 420 */ 231, 236, 235, 233, 20, 232, 7, 234, 456, 239, /* 430 */ 840, 565, 241, 237, 566, 569, 160, 18, 840, 551, /* 440 */ 570, 92, 94, 98, 100, 572, 88, 255, 840, 21, /* 450 */ 258, 840, 574, 257, 259, 22, 575, 270, 576, 172, /* 460 */ 23, 268, 577, 578, 271, 25, 840, 272, 26, 24, /* 470 */ 579, 580, 173, 581, 280, 840, 582, 840, 283, 27, /* 480 */ 284, 28, 282, 583, 32, 29, 161, 584, 840, 840, /* 490 */ 585, 586, 107, 108, 109, 587, 304, 840, 840, 115, /* 500 */ 116, 117, 588, 590, 302, 33, 840, 591, 305, 840, /* 510 */ 306, 840, 593, 594, 174, 34, 36, 35, 840, 39, /* 520 */ 315, 476, 595, 596, 318, 37, 75, 840, 317, 840, /* 530 */ 319, 329, 597, 598, 599, 175, 40, 38, 327, 600, /* 540 */ 840, 330, 840, 331, 41, 601, 602, 603, 162, 840, /* 550 */ 840, 341, 604, 840, 840, 840, 605, 606, 43, 344, /* 560 */ 343, 840, 44, 356, 345, 45, 840, 607, 608, 176, /* 570 */ 46, 358, 840, 609, 354, 840, 610, 357, 48, 47, /* 580 */ 611, 49, 840, 612, 177, 366, 840, 613, 614, 840, /* 590 */ 840, 369, 50, 370, 163, 368, 51, 615, 52, 840, /* 600 */ 840, 616, 840, 617, 618, 840, 380, 840, 619, 621, /* 610 */ 382, 383, 840, 178, 54, 55, 384, 840, 623, 56, /* 620 */ 624, 57, 625, 393, 626, 840, 840, 59, 396, 840, /* 630 */ 58, 397, 395, 627, 840, 179, 628, 60, 405, 629, /* 640 */ 630, 840, 840, 62, 408, 840, 61, 409, 407, 631, /* 650 */ 840, 164, 632, 63, 840, 633, 634, 419, 840, 840, /* 660 */ 481, 635, 840, 637, 65, 423, 840, 421, 422, 66, /* 670 */ 840, 81, 639, 67, 640, 840, 180, 68, 69, 840, /* 680 */ 840, 432, 641, 642, 840, 435, 70, 840, 840, 434, /* 690 */ 436, 840, 643, 181, 644, 71, 517, 840, 645, 444, /* 700 */ 840, 646, 840, 183, 72, 447, 840, 446, 647, 448, /* 710 */ 73, 840, 674, 648, 165, 138, 840, 649, 166, 143, /* 720 */ 840, 650, 458, 84, 840, 459, 462, 654, 840, 463, /* 730 */ 144, 655, 840, 466, 145, 467, 840, 840, 840, 656, /* 740 */ 472, 840, 840, 657, 840, 658, 474, 475, 529, 840, /* 750 */ 74, 840, 659, 85, 660, 167, 665, 840, 661, 483, /* 760 */ 152, 840, 484, 487, 153, 840, 488, 154, 840, 666, /* 770 */ 491, 840, 492, 840, 497, 667, 840, 168, 840, 668, /* 780 */ 840, 669, 499, 670, 76, 500, 840, 840, 502, 77, /* 790 */ 503, 840, 505, 840, 78, 79, 506, 840, 840, 182, /* 800 */ 80, 513, 840, 671, 840, 840, 82, 516, 840, 840, /* 810 */ 840, 515, 672, 840, 840, 673, 83, 840, 840, 527, /* 820 */ 525, 675, 840, 528, 840, 840, 840, 840, 676, 677, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, /* 10 */ 38, 39, 40, 41, 42, 43, 44, 5, 75, 45, /* 20 */ 77, 78, 79, 49, 81, 82, 0, 59, 2, 61, /* 30 */ 18, 19, 20, 21, 22, 23, 75, 46, 77, 78, /* 40 */ 75, 50, 77, 78, 9, 79, 6, 81, 82, 23, /* 50 */ 79, 11, 81, 82, 2, 7, 7, 9, 9, 24, /* 60 */ 12, 12, 2, 7, 7, 9, 9, 9, 12, 12, /* 70 */ 12, 7, 7, 9, 9, 5, 12, 12, 5, 50, /* 80 */ 5, 2, 24, 16, 17, 26, 27, 50, 18, 19, /* 90 */ 10, 18, 19, 18, 19, 51, 52, 46, 45, 45, /* 100 */ 10, 50, 49, 49, 49, 55, 56, 45, 47, 48, /* 110 */ 15, 49, 46, 45, 45, 10, 50, 49, 49, 45, /* 120 */ 2, 10, 46, 49, 47, 48, 50, 55, 56, 45, /* 130 */ 10, 46, 10, 55, 56, 50, 55, 56, 55, 56, /* 140 */ 46, 55, 56, 10, 50, 45, 57, 58, 46, 49, /* 150 */ 57, 58, 50, 47, 48, 57, 58, 6, 46, 46, /* 160 */ 57, 58, 50, 50, 57, 58, 57, 58, 7, 45, /* 170 */ 9, 63, 64, 49, 46, 50, 47, 48, 50, 10, /* 180 */ 63, 64, 63, 64, 46, 10, 63, 64, 50, 63, /* 190 */ 64, 46, 65, 66, 10, 50, 46, 63, 64, 46, /* 200 */ 50, 55, 56, 50, 65, 66, 47, 48, 65, 66, /* 210 */ 69, 70, 65, 66, 65, 66, 46, 65, 66, 46, /* 220 */ 50, 57, 58, 50, 69, 70, 47, 48, 46, 69, /* 230 */ 70, 7, 50, 9, 69, 70, 69, 70, 46, 73, /* 240 */ 74, 50, 50, 69, 70, 46, 45, 57, 58, 50, /* 250 */ 49, 55, 56, 47, 48, 46, 73, 74, 9, 50, /* 260 */ 73, 74, 73, 74, 46, 50, 73, 74, 50, 7, /* 270 */ 7, 9, 9, 24, 7, 7, 9, 9, 7, 7, /* 280 */ 9, 9, 7, 7, 9, 9, 7, 7, 9, 9, /* 290 */ 50, 50, 50, 45, 10, 50, 53, 53, 6, 6, /* 300 */ 50, 54, 49, 45, 10, 54, 60, 53, 6, 45, /* 310 */ 45, 59, 6, 10, 45, 60, 55, 10, 62, 49, /* 320 */ 61, 6, 49, 49, 67, 83, 49, 67, 62, 10, /* 330 */ 45, 6, 54, 10, 53, 6, 54, 49, 10, 6, /* 340 */ 10, 6, 56, 1, 10, 4, 3, 57, 4, 11, /* 350 */ 59, 68, 6, 8, 45, 68, 58, 8, 61, 6, /* 360 */ 71, 4, 10, 4, 6, 55, 71, 11, 72, 57, /* 370 */ 49, 72, 7, 73, 8, 8, 56, 76, 6, 6, /* 380 */ 76, 76, 58, 6, 76, 4, 6, 76, 4, 76, /* 390 */ 8, 8, 4, 6, 80, 10, 80, 80, 80, 7, /* 400 */ 11, 4, 80, 8, 8, 74, 6, 80, 4, 8, /* 410 */ 8, 4, 6, 10, 4, 7, 11, 8, 3, 8, /* 420 */ 4, 2, 4, 6, 10, 13, 4, 14, 3, 8, /* 430 */ 83, 8, 8, 13, 8, 8, 6, 4, 83, 11, /* 440 */ 8, 6, 6, 6, 6, 11, 6, 4, 83, 4, /* 450 */ 6, 83, 11, 11, 7, 4, 8, 11, 8, 6, /* 460 */ 4, 4, 8, 8, 6, 4, 83, 7, 4, 10, /* 470 */ 8, 8, 6, 8, 4, 83, 8, 83, 6, 10, /* 480 */ 7, 4, 11, 8, 10, 4, 6, 8, 83, 83, /* 490 */ 8, 8, 6, 6, 6, 11, 11, 83, 83, 6, /* 500 */ 6, 6, 11, 11, 4, 4, 83, 11, 6, 83, /* 510 */ 7, 83, 8, 8, 6, 4, 10, 4, 83, 10, /* 520 */ 4, 24, 8, 8, 6, 4, 4, 83, 11, 83, /* 530 */ 7, 11, 8, 8, 8, 6, 4, 4, 4, 8, /* 540 */ 83, 6, 83, 7, 4, 8, 8, 8, 6, 83, /* 550 */ 83, 4, 8, 83, 83, 83, 11, 11, 10, 6, /* 560 */ 11, 83, 4, 11, 7, 4, 83, 8, 8, 6, /* 570 */ 4, 7, 83, 8, 4, 83, 8, 6, 4, 10, /* 580 */ 8, 4, 83, 8, 6, 4, 83, 8, 8, 83, /* 590 */ 83, 6, 10, 7, 6, 11, 4, 8, 4, 83, /* 600 */ 83, 8, 83, 8, 8, 83, 4, 83, 11, 11, /* 610 */ 11, 6, 83, 6, 10, 4, 7, 83, 8, 4, /* 620 */ 8, 4, 8, 4, 8, 83, 83, 4, 6, 83, /* 630 */ 10, 7, 11, 8, 83, 6, 8, 4, 4, 8, /* 640 */ 8, 83, 83, 4, 6, 83, 10, 7, 11, 8, /* 650 */ 83, 6, 8, 4, 83, 8, 8, 4, 83, 83, /* 660 */ 3, 11, 83, 11, 10, 7, 83, 11, 6, 4, /* 670 */ 83, 10, 8, 4, 8, 83, 6, 4, 10, 83, /* 680 */ 83, 4, 8, 8, 83, 6, 4, 83, 83, 11, /* 690 */ 7, 83, 8, 6, 8, 4, 24, 83, 8, 4, /* 700 */ 83, 8, 83, 6, 10, 6, 83, 11, 8, 7, /* 710 */ 4, 83, 8, 8, 6, 4, 83, 8, 4, 4, /* 720 */ 83, 11, 6, 10, 83, 7, 6, 8, 83, 7, /* 730 */ 4, 8, 83, 6, 4, 7, 83, 83, 83, 8, /* 740 */ 4, 83, 83, 11, 83, 11, 11, 6, 24, 83, /* 750 */ 10, 83, 8, 4, 8, 4, 8, 83, 11, 6, /* 760 */ 4, 83, 7, 6, 4, 83, 7, 4, 83, 8, /* 770 */ 6, 83, 7, 83, 3, 8, 83, 4, 83, 11, /* 780 */ 83, 11, 6, 8, 4, 7, 83, 83, 6, 4, /* 790 */ 7, 83, 6, 83, 4, 4, 7, 83, 83, 6, /* 800 */ 4, 4, 83, 8, 83, 83, 4, 6, 83, 83, /* 810 */ 83, 11, 8, 83, 83, 8, 4, 83, 83, 11, /* 820 */ 4, 8, 83, 6, 83, 83, 83, 83, 8, 8, }; #define YY_SHIFT_USE_DFLT (-1) #define YY_SHIFT_MAX 531 static const short yy_shift_ofst[] = { /* 0 */ -1, 26, 52, 60, 60, 79, 79, 67, 90, 95, /* 10 */ 90, 118, 90, 95, 90, 90, 95, 90, 111, 90, /* 20 */ 95, 111, 118, 111, 95, 111, 111, 95, 111, 120, /* 30 */ 122, 90, 95, 120, 118, 120, 95, 120, 120, 95, /* 40 */ 120, 133, 90, 95, 133, 118, 133, 95, 133, 133, /* 50 */ 95, 133, 169, 111, 95, 169, 118, 169, 95, 169, /* 60 */ 169, 95, 169, 175, 120, 95, 175, 118, 175, 95, /* 70 */ 175, 175, 95, 175, 95, 184, 90, 111, 120, 118, /* 80 */ 184, 95, 184, 184, 95, 184, 95, 95, 95, 95, /* 90 */ 95, 95, 80, 95, 95, 151, 80, 151, 284, 95, /* 100 */ 95, 292, 105, 292, 293, 294, 80, 80, 80, 80, /* 110 */ 151, 293, 302, 303, 105, 105, 105, 105, 292, 302, /* 120 */ 151, 292, 306, 307, 80, 306, 315, 319, 105, 315, /* 130 */ 325, 323, 294, 325, 329, 328, 303, 329, 330, 333, /* 140 */ 333, 333, 333, 80, 307, 323, 333, 333, 335, 335, /* 150 */ 335, 335, 105, 319, 328, 335, 335, 334, 12, 48, /* 160 */ 49, 56, 57, 64, 65, 58, 70, 73, 75, 40, /* 170 */ 161, 224, 262, 263, 267, 268, 271, 272, 275, 276, /* 180 */ 279, 280, 35, 249, 342, 343, 341, 346, 344, 345, /* 190 */ 349, 353, 338, 357, 352, 356, 358, 365, 359, 366, /* 200 */ 367, 372, 373, 377, 381, 380, 384, 382, 383, 388, /* 210 */ 385, 389, 387, 392, 397, 395, 396, 400, 404, 401, /* 220 */ 402, 407, 403, 405, 406, 408, 410, 409, 411, 415, /* 230 */ 416, 412, 417, 413, 418, 419, 420, 422, 421, 423, /* 240 */ 424, 426, 430, 433, 427, 432, 435, 436, 428, 434, /* 250 */ 437, 438, 440, 441, 443, 414, 442, 444, 447, 445, /* 260 */ 448, 450, 451, 453, 456, 454, 455, 457, 459, 446, /* 270 */ 458, 460, 461, 462, 463, 466, 464, 465, 468, 470, /* 280 */ 469, 471, 472, 473, 477, 475, 479, 480, 481, 482, /* 290 */ 483, 484, 486, 487, 488, 491, 492, 493, 494, 495, /* 300 */ 496, 500, 474, 485, 502, 503, 501, 504, 505, 511, /* 310 */ 508, 513, 514, 515, 516, 506, 517, 518, 523, 521, /* 320 */ 524, 525, 529, 533, 526, 531, 534, 509, 520, 535, /* 330 */ 536, 532, 537, 538, 542, 540, 539, 544, 545, 546, /* 340 */ 547, 548, 549, 553, 557, 558, 559, 560, 561, 563, /* 350 */ 566, 565, 568, 570, 569, 552, 571, 564, 574, 572, /* 360 */ 575, 578, 577, 579, 580, 581, 582, 584, 585, 586, /* 370 */ 592, 589, 593, 588, 594, 595, 596, 597, 598, 602, /* 380 */ 604, 599, 605, 609, 611, 610, 612, 615, 607, 617, /* 390 */ 614, 616, 619, 620, 621, 622, 624, 623, 625, 628, /* 400 */ 629, 633, 631, 632, 634, 636, 637, 638, 640, 639, /* 410 */ 641, 644, 645, 649, 647, 648, 650, 652, 653, 654, /* 420 */ 656, 662, 658, 665, 664, 666, 669, 670, 673, 674, /* 430 */ 675, 677, 668, 678, 679, 683, 682, 684, 686, 687, /* 440 */ 691, 690, 693, 695, 694, 696, 699, 702, 706, 700, /* 450 */ 705, 708, 711, 709, 710, 425, 714, 716, 718, 715, /* 460 */ 719, 720, 722, 726, 723, 727, 728, 730, 731, 732, /* 470 */ 734, 736, 740, 735, 741, 497, 522, 744, 746, 747, /* 480 */ 657, 751, 753, 755, 756, 748, 757, 759, 760, 761, /* 490 */ 764, 765, 763, 767, 768, 770, 771, 773, 776, 778, /* 500 */ 780, 782, 783, 785, 786, 789, 790, 791, 793, 796, /* 510 */ 775, 795, 797, 661, 800, 801, 672, 802, 804, 807, /* 520 */ 697, 812, 704, 813, 816, 713, 808, 817, 724, 749, /* 530 */ 820, 821, }; #define YY_REDUCE_USE_DFLT (-58) #define YY_REDUCE_MAX 157 static const short yy_reduce_ofst[] = { /* 0 */ 59, -28, -57, -39, -35, -34, -29, 44, -26, -9, /* 10 */ 53, 61, 54, 51, 62, 68, 66, 69, 50, 74, /* 20 */ 76, 72, 77, 78, 85, 81, 83, 94, 86, 89, /* 30 */ -32, 100, 102, 93, 106, 98, 112, 103, 107, 113, /* 40 */ 109, 108, 124, 128, 117, 129, 119, 138, 123, 126, /* 50 */ 145, 134, 127, 146, 150, 139, 159, 143, 153, 147, /* 60 */ 149, 170, 152, 141, 164, 173, 155, 179, 160, 182, /* 70 */ 165, 167, 192, 174, 199, 166, 201, 196, 190, 206, /* 80 */ 183, 209, 187, 189, 218, 193, 29, 37, 125, 191, /* 90 */ 215, 240, 84, 241, 242, 243, 248, 244, 55, 245, /* 100 */ 250, 247, 253, 251, 246, 252, 258, 264, 265, 269, /* 110 */ 254, 255, 256, 259, 270, 273, 274, 277, 278, 266, /* 120 */ 281, 282, 257, 261, 285, 260, 283, 286, 288, 287, /* 130 */ 289, 290, 291, 295, 296, 298, 297, 299, 300, 301, /* 140 */ 304, 305, 308, 309, 310, 312, 311, 313, 314, 316, /* 150 */ 317, 318, 321, 320, 324, 322, 327, 331, }; static const YYACTIONTYPE yy_default[] = { /* 0 */ 680, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 10 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 20 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 30 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 40 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 50 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 60 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 70 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 80 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 90 */ 838, 838, 838, 838, 838, 718, 838, 718, 838, 838, /* 100 */ 838, 720, 838, 720, 751, 838, 838, 838, 838, 838, /* 110 */ 718, 751, 754, 838, 838, 838, 838, 838, 720, 754, /* 120 */ 718, 720, 783, 838, 838, 783, 786, 838, 838, 786, /* 130 */ 801, 838, 838, 801, 804, 838, 838, 804, 838, 821, /* 140 */ 821, 821, 821, 838, 838, 838, 821, 821, 828, 828, /* 150 */ 828, 828, 838, 838, 838, 828, 828, 838, 838, 838, /* 160 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 170 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 180 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 190 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 200 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 210 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 220 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 230 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 240 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 250 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 260 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 270 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 280 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 290 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 300 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 310 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 320 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 330 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 340 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 350 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 360 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 370 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 380 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 390 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 400 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 410 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 420 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 430 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 440 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 450 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 460 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 470 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 480 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 490 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 500 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 510 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 520 */ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, /* 530 */ 838, 838, 681, 682, 683, 684, 685, 686, 687, 688, /* 540 */ 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, /* 550 */ 704, 713, 714, 715, 699, 705, 710, 700, 706, 702, /* 560 */ 708, 701, 707, 703, 709, 711, 712, 716, 717, 722, /* 570 */ 728, 719, 734, 721, 735, 723, 729, 724, 730, 726, /* 580 */ 732, 725, 731, 727, 733, 736, 742, 748, 750, 752, /* 590 */ 749, 753, 755, 737, 743, 738, 744, 740, 746, 739, /* 600 */ 745, 741, 747, 756, 762, 768, 769, 757, 763, 758, /* 610 */ 764, 760, 766, 759, 765, 761, 767, 770, 776, 782, /* 620 */ 784, 785, 787, 771, 777, 772, 778, 774, 780, 773, /* 630 */ 779, 775, 781, 788, 794, 800, 802, 803, 805, 789, /* 640 */ 795, 790, 796, 792, 798, 791, 797, 793, 799, 806, /* 650 */ 818, 822, 823, 824, 832, 834, 836, 819, 820, 807, /* 660 */ 813, 825, 829, 830, 831, 833, 835, 837, 826, 827, /* 670 */ 808, 814, 810, 816, 809, 815, 811, 817, 812, }; #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: ** ** %fallback ID X Y Z. ** ** appears in the grammar, then ID becomes a fallback token for X, Y, ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ #ifdef YYFALLBACK static const YYCODETYPE yyFallback[] = { }; #endif /* YYFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: ** ** + The state number for the parser at this level of the stack. ** ** + The value of the token stored at this level of the stack. ** (In other words, the "major" token.) ** ** + The semantic value stored at this level of the stack. This is ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ struct yyStackEntry { YYACTIONTYPE stateno; /* The state-number */ YYCODETYPE major; /* The major token value. This is the code ** number for the token at this stack level */ YYMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ struct yyParser { int yyidx; /* Index of top element in stack */ #ifdef YYTRACKMAXSTACKDEPTH int yyidxMax; /* Maximum value of yyidx */ #endif int yyerrcnt; /* Shifts left before out of the error */ ParseARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 int yystksz; /* Current side of the stack */ yyStackEntry *yystack; /* The parser's stack */ #else yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ #endif }; typedef struct yyParser yyParser; #ifndef NDEBUG #include <stdio.h> static FILE *yyTraceFILE = 0; static char *yyTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG /* ** Turn parser tracing on by giving a stream to which to write the trace ** and a prompt to preface each trace message. Tracing is turned off ** by making either argument NULL ** ** Inputs: ** <ul> ** <li> A FILE* to which trace output should be written. ** If NULL, then tracing is turned off. ** <li> A prefix string written at the beginning of every ** line of trace output. If NULL, then tracing is ** turned off. ** </ul> ** ** Outputs: ** None. */ void ParseTrace (FILE * TraceFILE, char *zTracePrompt) { yyTraceFILE = TraceFILE; yyTracePrompt = zTracePrompt; if (yyTraceFILE == 0) yyTracePrompt = 0; else if (yyTracePrompt == 0) yyTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ static const char *const yyTokenName[] = { "$", "GEOJSON_NEWLINE", "GEOJSON_OPEN_BRACE", "GEOJSON_TYPE", "GEOJSON_COLON", "GEOJSON_POINT", "GEOJSON_COMMA", "GEOJSON_COORDS", "GEOJSON_CLOSE_BRACE", "GEOJSON_BBOX", "GEOJSON_OPEN_BRACKET", "GEOJSON_CLOSE_BRACKET", "GEOJSON_CRS", "GEOJSON_NAME", "GEOJSON_PROPS", "GEOJSON_NUM", "GEOJSON_SHORT_SRID", "GEOJSON_LONG_SRID", "GEOJSON_LINESTRING", "GEOJSON_POLYGON", "GEOJSON_MULTIPOINT", "GEOJSON_MULTILINESTRING", "GEOJSON_MULTIPOLYGON", "GEOJSON_GEOMETRYCOLLECTION", "GEOJSON_GEOMS", "error", "main", "in", "state", "program", "geo_text", "point", "pointz", "linestring", "linestringz", "polygon", "polygonz", "multipoint", "multipointz", "multilinestring", "multilinestringz", "multipolygon", "multipolygonz", "geocoll", "geocollz", "point_coordxy", "bbox", "short_crs", "long_crs", "point_coordxyz", "coord", "short_srid", "long_srid", "extra_pointsxy", "extra_pointsxyz", "linestring_text", "linestring_textz", "polygon_text", "polygon_textz", "ring", "extra_rings", "ringz", "extra_ringsz", "multipoint_text", "multipoint_textz", "multilinestring_text", "multilinestring_textz", "multilinestring_text2", "multilinestring_textz2", "multipolygon_text", "multipolygon_textz", "multipolygon_text2", "multipolygon_textz2", "geocoll_text", "geocoll_textz", "coll_point", "geocoll_text2", "coll_linestring", "coll_polygon", "coll_pointz", "geocoll_textz2", "coll_linestringz", "coll_polygonz", }; #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { /* 0 */ "main ::= in", /* 1 */ "in ::=", /* 2 */ "in ::= in state GEOJSON_NEWLINE", /* 3 */ "state ::= program", /* 4 */ "program ::= geo_text", /* 5 */ "geo_text ::= point", /* 6 */ "geo_text ::= pointz", /* 7 */ "geo_text ::= linestring", /* 8 */ "geo_text ::= linestringz", /* 9 */ "geo_text ::= polygon", /* 10 */ "geo_text ::= polygonz", /* 11 */ "geo_text ::= multipoint", /* 12 */ "geo_text ::= multipointz", /* 13 */ "geo_text ::= multilinestring", /* 14 */ "geo_text ::= multilinestringz", /* 15 */ "geo_text ::= multipolygon", /* 16 */ "geo_text ::= multipolygonz", /* 17 */ "geo_text ::= geocoll", /* 18 */ "geo_text ::= geocollz", /* 19 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", /* 20 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", /* 21 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", /* 22 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", /* 23 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", /* 24 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", /* 25 */ "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", /* 26 */ "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", /* 27 */ "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", /* 28 */ "pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", /* 29 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", /* 30 */ "point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", /* 31 */ "bbox ::= coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_COMMA coord", /* 32 */ "short_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON short_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE", /* 33 */ "long_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON long_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE", /* 34 */ "point_coordxy ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET", /* 35 */ "point_coordxyz ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET", /* 36 */ "coord ::= GEOJSON_NUM", /* 37 */ "short_srid ::= GEOJSON_SHORT_SRID", /* 38 */ "long_srid ::= GEOJSON_LONG_SRID", /* 39 */ "extra_pointsxy ::=", /* 40 */ "extra_pointsxy ::= GEOJSON_COMMA point_coordxy extra_pointsxy", /* 41 */ "extra_pointsxyz ::=", /* 42 */ "extra_pointsxyz ::= GEOJSON_COMMA point_coordxyz extra_pointsxyz", /* 43 */ "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", /* 44 */ "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", /* 45 */ "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", /* 46 */ "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", /* 47 */ "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", /* 48 */ "linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", /* 49 */ "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", /* 50 */ "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", /* 51 */ "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", /* 52 */ "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", /* 53 */ "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", /* 54 */ "linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", /* 55 */ "linestring_text ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET", /* 56 */ "linestring_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET", /* 57 */ "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", /* 58 */ "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", /* 59 */ "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", /* 60 */ "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", /* 61 */ "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", /* 62 */ "polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", /* 63 */ "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", /* 64 */ "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", /* 65 */ "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", /* 66 */ "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", /* 67 */ "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", /* 68 */ "polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", /* 69 */ "polygon_text ::= GEOJSON_OPEN_BRACKET ring extra_rings GEOJSON_CLOSE_BRACKET", /* 70 */ "polygon_textz ::= GEOJSON_OPEN_BRACKET ringz extra_ringsz GEOJSON_CLOSE_BRACKET", /* 71 */ "ring ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET", /* 72 */ "extra_rings ::=", /* 73 */ "extra_rings ::= GEOJSON_COMMA ring extra_rings", /* 74 */ "ringz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET", /* 75 */ "extra_ringsz ::=", /* 76 */ "extra_ringsz ::= GEOJSON_COMMA ringz extra_ringsz", /* 77 */ "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", /* 78 */ "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", /* 79 */ "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", /* 80 */ "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", /* 81 */ "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", /* 82 */ "multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE", /* 83 */ "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", /* 84 */ "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", /* 85 */ "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", /* 86 */ "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", /* 87 */ "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", /* 88 */ "multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE", /* 89 */ "multipoint_text ::= GEOJSON_OPEN_BRACKET point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET", /* 90 */ "multipoint_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET", /* 91 */ "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", /* 92 */ "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", /* 93 */ "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", /* 94 */ "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", /* 95 */ "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", /* 96 */ "multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE", /* 97 */ "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", /* 98 */ "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", /* 99 */ "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", /* 100 */ "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", /* 101 */ "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", /* 102 */ "multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE", /* 103 */ "multilinestring_text ::= GEOJSON_OPEN_BRACKET linestring_text multilinestring_text2 GEOJSON_CLOSE_BRACKET", /* 104 */ "multilinestring_text2 ::=", /* 105 */ "multilinestring_text2 ::= GEOJSON_COMMA linestring_text multilinestring_text2", /* 106 */ "multilinestring_textz ::= GEOJSON_OPEN_BRACKET linestring_textz multilinestring_textz2 GEOJSON_CLOSE_BRACKET", /* 107 */ "multilinestring_textz2 ::=", /* 108 */ "multilinestring_textz2 ::= GEOJSON_COMMA linestring_textz multilinestring_textz2", /* 109 */ "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", /* 110 */ "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", /* 111 */ "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", /* 112 */ "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", /* 113 */ "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", /* 114 */ "multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE", /* 115 */ "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", /* 116 */ "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", /* 117 */ "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", /* 118 */ "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", /* 119 */ "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", /* 120 */ "multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE", /* 121 */ "multipolygon_text ::= GEOJSON_OPEN_BRACKET polygon_text multipolygon_text2 GEOJSON_CLOSE_BRACKET", /* 122 */ "multipolygon_text2 ::=", /* 123 */ "multipolygon_text2 ::= GEOJSON_COMMA polygon_text multipolygon_text2", /* 124 */ "multipolygon_textz ::= GEOJSON_OPEN_BRACKET polygon_textz multipolygon_textz2 GEOJSON_CLOSE_BRACKET", /* 125 */ "multipolygon_textz2 ::=", /* 126 */ "multipolygon_textz2 ::= GEOJSON_COMMA polygon_textz multipolygon_textz2", /* 127 */ "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", /* 128 */ "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", /* 129 */ "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", /* 130 */ "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", /* 131 */ "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", /* 132 */ "geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE", /* 133 */ "geocollz ::= GEOJSON_GEOMETRYCOLLECTION geocoll_textz", /* 134 */ "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", /* 135 */ "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", /* 136 */ "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", /* 137 */ "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", /* 138 */ "geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE", /* 139 */ "geocoll_text ::= GEOJSON_OPEN_BRACKET coll_point geocoll_text2 GEOJSON_CLOSE_BRACKET", /* 140 */ "geocoll_text ::= GEOJSON_OPEN_BRACKET coll_linestring geocoll_text2 GEOJSON_CLOSE_BRACKET", /* 141 */ "geocoll_text ::= GEOJSON_OPEN_BRACKET coll_polygon geocoll_text2 GEOJSON_CLOSE_BRACKET", /* 142 */ "geocoll_text2 ::=", /* 143 */ "geocoll_text2 ::= GEOJSON_COMMA coll_point geocoll_text2", /* 144 */ "geocoll_text2 ::= GEOJSON_COMMA coll_linestring geocoll_text2", /* 145 */ "geocoll_text2 ::= GEOJSON_COMMA coll_polygon geocoll_text2", /* 146 */ "geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_pointz geocoll_textz2 GEOJSON_CLOSE_BRACKET", /* 147 */ "geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_linestringz geocoll_textz2 GEOJSON_CLOSE_BRACKET", /* 148 */ "geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_polygonz geocoll_textz2 GEOJSON_CLOSE_BRACKET", /* 149 */ "geocoll_textz2 ::=", /* 150 */ "geocoll_textz2 ::= GEOJSON_COMMA coll_pointz geocoll_textz2", /* 151 */ "geocoll_textz2 ::= GEOJSON_COMMA coll_linestringz geocoll_textz2", /* 152 */ "geocoll_textz2 ::= GEOJSON_COMMA coll_polygonz geocoll_textz2", /* 153 */ "coll_point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE", /* 154 */ "coll_pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE", /* 155 */ "coll_linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE", /* 156 */ "coll_linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE", /* 157 */ "coll_polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE", /* 158 */ "coll_polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE", }; #endif /* NDEBUG */ #if YYSTACKDEPTH<=0 /* ** Try to increase the size of the parser stack. */ static void yyGrowStack (yyParser * p) { int newSize; yyStackEntry *pNew; newSize = p->yystksz * 2 + 100; pNew = realloc (p->yystack, newSize * sizeof (pNew[0])); if (pNew) { p->yystack = pNew; p->yystksz = newSize; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack grows to %d entries!\n", yyTracePrompt, p->yystksz); } #endif } } #endif /* ** This function allocates a new parser. ** The only argument is a pointer to a function which works like ** malloc. ** ** Inputs: ** A pointer to the function used to allocate memory. ** ** Outputs: ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ void * ParseAlloc (void *(*mallocProc) (size_t)) { yyParser *pParser; pParser = (yyParser *) (*mallocProc) ((size_t) sizeof (yyParser)); if (pParser) { pParser->yyidx = -1; #ifdef YYTRACKMAXSTACKDEPTH pParser->yyidxMax = 0; #endif #if YYSTACKDEPTH<=0 pParser->yystack = NULL; pParser->yystksz = 0; yyGrowStack (pParser); #endif } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ static void yy_destructor (yyParser * yypParser, /* The parser */ YYCODETYPE yymajor, /* Type code for object to destroy */ YYMINORTYPE * yypminor /* The object to be destroyed */ ) { switch (yymajor) { /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a ** reduce or during error processing or when a parser is ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those ** which appear on the RHS of the rule, but which are not used ** inside the C code. */ default: break; /* If no destructor action specified: do nothing */ } } /* ** Pop the parser's stack once. ** ** If there is a destructor routine associated with the token which ** is popped from the stack, then call it. ** ** Return the major token number for the symbol popped. */ static int yy_pop_parser_stack (yyParser * pParser) { YYCODETYPE yymajor; yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; if (pParser->yyidx < 0) return 0; #ifndef NDEBUG if (yyTraceFILE && pParser->yyidx >= 0) { fprintf (yyTraceFILE, "%sPopping %s\n", yyTracePrompt, yyTokenName[yytos->major]); } #endif yymajor = yytos->major; yy_destructor (pParser, yymajor, &yytos->minor); pParser->yyidx--; return yymajor; } /* ** Deallocate and destroy a parser. Destructors are all called for ** all stack elements before shutting the parser down. ** ** Inputs: ** <ul> ** <li> A pointer to the parser. This should be a pointer ** obtained from ParseAlloc. ** <li> A pointer to a function used to reclaim memory obtained ** from malloc. ** </ul> */ void ParseFree (void *p, /* The parser to be deleted */ void (*freeProc) (void *) /* Function used to reclaim memory */ ) { yyParser *pParser = (yyParser *) p; if (pParser == 0) return; while (pParser->yyidx >= 0) yy_pop_parser_stack (pParser); #if YYSTACKDEPTH<=0 free (pParser->yystack); #endif (*freeProc) ((void *) pParser); } /* ** Return the peak depth of the stack for a parser. */ #ifdef YYTRACKMAXSTACKDEPTH int ParseStackPeak (void *p) { yyParser *pParser = (yyParser *) p; return pParser->yyidxMax; } #endif /* ** Find the appropriate action for a parser given the terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_shift_action (yyParser * pParser, /* The parser */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; int stateno = pParser->yystack[pParser->yyidx].stateno; if (stateno > YY_SHIFT_MAX || (i = yy_shift_ofst[stateno]) == YY_SHIFT_USE_DFLT) { return yy_default[stateno]; } assert (iLookAhead != YYNOCODE); i += iLookAhead; if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { if (iLookAhead > 0) { #ifdef YYFALLBACK YYCODETYPE iFallback; /* Fallback token */ if (iLookAhead < sizeof (yyFallback) / sizeof (yyFallback[0]) && (iFallback = yyFallback[iLookAhead]) != 0) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFALLBACK %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); } #endif return yy_find_shift_action (pParser, iFallback); } #endif #ifdef YYWILDCARD { int j = i - iLookAhead + YYWILDCARD; if (j >= 0 && j < YY_SZ_ACTTAB && yy_lookahead[j] == YYWILDCARD) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sWILDCARD %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); } #endif /* NDEBUG */ return yy_action[j]; } } #endif /* YYWILDCARD */ } return yy_default[stateno]; } else { return yy_action[i]; } } /* ** Find the appropriate action for a parser given the non-terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_reduce_action (int stateno, /* Current state number */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; #ifdef YYERRORSYMBOL if (stateno > YY_REDUCE_MAX) { return yy_default[stateno]; } #else assert (stateno <= YY_REDUCE_MAX); #endif i = yy_reduce_ofst[stateno]; assert (i != YY_REDUCE_USE_DFLT); assert (iLookAhead != YYNOCODE); i += iLookAhead; #ifdef YYERRORSYMBOL if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { return yy_default[stateno]; } #else assert (i >= 0 && i < YY_SZ_ACTTAB); assert (yy_lookahead[i] == iLookAhead); #endif return yy_action[i]; } /* ** The following routine is called if the stack overflows. */ static void yyStackOverflow (yyParser * yypParser, YYMINORTYPE * yypMinor) { ParseARG_FETCH; yypParser->yyidx--; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ spatialite_e ("Giving up. Parser stack overflow\n"); ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ } /* ** Perform a shift action. */ static void yy_shift (yyParser * yypParser, /* The parser to be shifted */ int yyNewState, /* The new state to shift in */ int yyMajor, /* The major token to shift in */ YYMINORTYPE * yypMinor /* Pointer to the minor token to shift in */ ) { yyStackEntry *yytos; yypParser->yyidx++; #ifdef YYTRACKMAXSTACKDEPTH if (yypParser->yyidx > yypParser->yyidxMax) { yypParser->yyidxMax = yypParser->yyidx; } #endif #if YYSTACKDEPTH>0 if (yypParser->yyidx >= YYSTACKDEPTH) { yyStackOverflow (yypParser, yypMinor); return; } #else if (yypParser->yyidx >= yypParser->yystksz) { yyGrowStack (yypParser); if (yypParser->yyidx >= yypParser->yystksz) { yyStackOverflow (yypParser, yypMinor); return; } } #endif yytos = &yypParser->yystack[yypParser->yyidx]; yytos->stateno = (YYACTIONTYPE) yyNewState; yytos->major = (YYCODETYPE) yyMajor; yytos->minor = *yypMinor; #ifndef NDEBUG if (yyTraceFILE && yypParser->yyidx > 0) { int i; fprintf (yyTraceFILE, "%sShift %d\n", yyTracePrompt, yyNewState); fprintf (yyTraceFILE, "%sStack:", yyTracePrompt); for (i = 1; i <= yypParser->yyidx; i++) fprintf (yyTraceFILE, " %s", yyTokenName[yypParser->yystack[i].major]); fprintf (yyTraceFILE, "\n"); } #endif } /* The following table contains information about every rule that ** is used during the reduce. */ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ } yyRuleInfo[] = { { 26, 1}, { 27, 0}, { 27, 3}, { 28, 1}, { 29, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 30, 1}, { 31, 9}, { 31, 15}, { 31, 13}, { 31, 13}, { 31, 19}, { 31, 19}, { 32, 9}, { 32, 15}, { 32, 13}, { 32, 13}, { 31, 19}, { 31, 19}, { 46, 7}, { 47, 13}, { 48, 13}, { 45, 5}, { 49, 7}, { 50, 1}, { 51, 1}, { 52, 1}, { 53, 0}, { 53, 3}, { 54, 0}, { 54, 3}, { 33, 9}, { 33, 15}, { 33, 13}, { 33, 13}, { 33, 19}, { 33, 19}, { 34, 9}, { 34, 15}, { 34, 13}, { 34, 13}, { 34, 19}, { 34, 19}, { 55, 6}, { 56, 6}, { 35, 9}, { 35, 15}, { 35, 13}, { 35, 13}, { 35, 19}, { 35, 19}, { 36, 9}, { 36, 15}, { 36, 13}, { 36, 13}, { 36, 19}, { 36, 19}, { 57, 4}, { 58, 4}, { 59, 10}, { 60, 0}, { 60, 3}, { 61, 10}, { 62, 0}, { 62, 3}, { 37, 9}, { 37, 15}, { 37, 13}, { 37, 13}, { 37, 19}, { 37, 19}, { 38, 9}, { 38, 15}, { 38, 13}, { 38, 13}, { 38, 19}, { 38, 19}, { 63, 4}, { 64, 4}, { 39, 9}, { 39, 15}, { 39, 13}, { 39, 13}, { 39, 19}, { 39, 19}, { 40, 9}, { 40, 15}, { 40, 13}, { 40, 13}, { 40, 19}, { 40, 19}, { 65, 4}, { 67, 0}, { 67, 3}, { 66, 4}, { 68, 0}, { 68, 3}, { 41, 9}, { 41, 15}, { 41, 13}, { 41, 13}, { 41, 19}, { 41, 19}, { 42, 9}, { 42, 15}, { 42, 13}, { 42, 13}, { 42, 19}, { 42, 19}, { 69, 4}, { 71, 0}, { 71, 3}, { 70, 4}, { 72, 0}, { 72, 3}, { 43, 9}, { 43, 15}, { 43, 13}, { 43, 13}, { 43, 19}, { 43, 19}, { 44, 2}, { 44, 15}, { 44, 13}, { 44, 13}, { 44, 19}, { 44, 19}, { 73, 4}, { 73, 4}, { 73, 4}, { 76, 0}, { 76, 3}, { 76, 3}, { 76, 3}, { 74, 4}, { 74, 4}, { 74, 4}, { 80, 0}, { 80, 3}, { 80, 3}, { 80, 3}, { 75, 9}, { 79, 9}, { 77, 9}, { 81, 9}, { 78, 9}, { 82, 9},}; static void yy_accept (yyParser *); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. */ static void yy_reduce (yyParser * yypParser, /* The parser */ int yyruleno /* Number of the rule by which to reduce */ ) { int yygoto; /* The next state */ int yyact; /* The next action */ YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ yyStackEntry *yymsp; /* The top of the parser's stack */ int yysize; /* Amount to pop the stack */ ParseARG_FETCH; yymsp = &yypParser->yystack[yypParser->yyidx]; #ifndef NDEBUG if (yyTraceFILE && yyruleno >= 0 && yyruleno < (int) (sizeof (yyRuleName) / sizeof (yyRuleName[0]))) { fprintf (yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, yyRuleName[yyruleno]); } #endif /* NDEBUG */ /* Silence complaints from purify about yygotominor being uninitialized ** in some cases when it is copied into the stack after the following ** switch. yygotominor is uninitialized when a rule reduces that does ** not set the value of its left-hand side nonterminal. Leaving the ** value of the nonterminal uninitialized is utterly harmless as long ** as the value is never used. So really the only thing this code ** accomplishes is to quieten purify. ** ** 2007-01-16: The wireshark project (www.wireshark.org) reports that ** without this code, their parser segfaults. I'm not sure what there ** parser is doing to make this happen. This is the second bug report ** from wireshark this week. Clearly they are stressing Lemon in ways ** that it has not been previously stressed... (SQLite ticket #2172) */ /*memset(&yygotominor, 0, sizeof(yygotominor)); */ yygotominor = yyzerominor; switch (yyruleno) { /* Beginning here are the reduction cases. A typical example ** follows: ** case 0: ** #line <lineno> <grammarfile> ** { ... } // User supplied code ** #line <lineno> <thisfile> ** break; */ case 5: /* geo_text ::= point */ case 6: /* geo_text ::= pointz */ yytestcase (yyruleno == 6); case 7: /* geo_text ::= linestring */ yytestcase (yyruleno == 7); case 8: /* geo_text ::= linestringz */ yytestcase (yyruleno == 8); case 9: /* geo_text ::= polygon */ yytestcase (yyruleno == 9); case 10: /* geo_text ::= polygonz */ yytestcase (yyruleno == 10); case 11: /* geo_text ::= multipoint */ yytestcase (yyruleno == 11); case 12: /* geo_text ::= multipointz */ yytestcase (yyruleno == 12); case 13: /* geo_text ::= multilinestring */ yytestcase (yyruleno == 13); case 14: /* geo_text ::= multilinestringz */ yytestcase (yyruleno == 14); case 15: /* geo_text ::= multipolygon */ yytestcase (yyruleno == 15); case 16: /* geo_text ::= multipolygonz */ yytestcase (yyruleno == 16); case 17: /* geo_text ::= geocoll */ yytestcase (yyruleno == 17); case 18: /* geo_text ::= geocollz */ yytestcase (yyruleno == 18); { p_data->result = yymsp[0].minor.yy0; } break; case 19: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ case 20: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 20); case 25: /* pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 25); case 26: /* pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 26); { yygotominor.yy0 = geoJSON_buildGeomFromPoint (p_data, (gaiaPointPtr) yymsp[-1].minor. yy0); } break; case 21: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ case 22: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 22); case 27: /* pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 27); case 28: /* pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 28); { yygotominor.yy0 = geoJSON_buildGeomFromPointSrid (p_data, (gaiaPointPtr) yymsp[-1].minor.yy0, (int *) yymsp[-5].minor.yy0); } break; case 23: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ case 24: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 24); case 29: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 29); case 30: /* point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 30); { yygotominor.yy0 = geoJSON_buildGeomFromPointSrid (p_data, (gaiaPointPtr) yymsp[-1].minor.yy0, (int *) yymsp[-11].minor.yy0); } break; case 32: /* short_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON short_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE */ case 33: /* long_crs ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_NAME GEOJSON_COMMA GEOJSON_PROPS GEOJSON_COLON GEOJSON_OPEN_BRACE GEOJSON_NAME GEOJSON_COLON long_srid GEOJSON_CLOSE_BRACE GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 33); { yygotominor.yy0 = yymsp[-2].minor.yy0; } break; case 34: /* point_coordxy ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) geoJSON_point_xy (p_data, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 35: /* point_coordxyz ::= GEOJSON_OPEN_BRACKET coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) geoJSON_point_xyz (p_data, (double *) yymsp[-5].minor.yy0, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 36: /* coord ::= GEOJSON_NUM */ case 37: /* short_srid ::= GEOJSON_SHORT_SRID */ yytestcase (yyruleno == 37); case 38: /* long_srid ::= GEOJSON_LONG_SRID */ yytestcase (yyruleno == 38); case 133: /* geocollz ::= GEOJSON_GEOMETRYCOLLECTION geocoll_textz */ yytestcase (yyruleno == 133); { yygotominor.yy0 = yymsp[0].minor.yy0; } break; case 39: /* extra_pointsxy ::= */ case 41: /* extra_pointsxyz ::= */ yytestcase (yyruleno == 41); case 72: /* extra_rings ::= */ yytestcase (yyruleno == 72); case 75: /* extra_ringsz ::= */ yytestcase (yyruleno == 75); case 104: /* multilinestring_text2 ::= */ yytestcase (yyruleno == 104); case 107: /* multilinestring_textz2 ::= */ yytestcase (yyruleno == 107); case 122: /* multipolygon_text2 ::= */ yytestcase (yyruleno == 122); case 125: /* multipolygon_textz2 ::= */ yytestcase (yyruleno == 125); case 142: /* geocoll_text2 ::= */ yytestcase (yyruleno == 142); case 149: /* geocoll_textz2 ::= */ yytestcase (yyruleno == 149); { yygotominor.yy0 = NULL; } break; case 40: /* extra_pointsxy ::= GEOJSON_COMMA point_coordxy extra_pointsxy */ case 42: /* extra_pointsxyz ::= GEOJSON_COMMA point_coordxyz extra_pointsxyz */ yytestcase (yyruleno == 42); { ((gaiaPointPtr) yymsp[-1].minor.yy0)->Next = (gaiaPointPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 43: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ case 44: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 44); case 49: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 49); case 50: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 50); { yygotominor.yy0 = geoJSON_buildGeomFromLinestring (p_data, (gaiaLinestringPtr) yymsp[-1].minor.yy0); } break; case 45: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ case 46: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 46); case 51: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 51); case 52: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 52); { yygotominor.yy0 = geoJSON_buildGeomFromLinestringSrid (p_data, (gaiaLinestringPtr) yymsp[-1].minor.yy0, (int *) yymsp[-5].minor. yy0); } break; case 47: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ case 48: /* linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 48); case 53: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 53); case 54: /* linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 54); { yygotominor.yy0 = geoJSON_buildGeomFromLinestringSrid (p_data, (gaiaLinestringPtr) yymsp[-1].minor.yy0, (int *) yymsp[-11].minor. yy0); } break; case 55: /* linestring_text ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) geoJSON_linestring_xy (p_data, (gaiaPointPtr) yymsp[-4].minor.yy0); } break; case 56: /* linestring_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) geoJSON_linestring_xyz (p_data, (gaiaPointPtr) yymsp[-4].minor.yy0); } break; case 57: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ case 58: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 58); case 63: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 63); case 64: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 64); { yygotominor.yy0 = geoJSON_buildGeomFromPolygon (p_data, (gaiaPolygonPtr) yymsp[-1].minor.yy0); } break; case 59: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ case 60: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 60); case 65: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 65); case 66: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 66); { yygotominor.yy0 = geoJSON_buildGeomFromPolygonSrid (p_data, (gaiaPolygonPtr) yymsp[-1].minor.yy0, (int *) yymsp[-5].minor. yy0); } break; case 61: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ case 62: /* polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 62); case 67: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 67); case 68: /* polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 68); { yygotominor.yy0 = geoJSON_buildGeomFromPolygonSrid (p_data, (gaiaPolygonPtr) yymsp[-1].minor.yy0, (int *) yymsp[-11].minor. yy0); } break; case 69: /* polygon_text ::= GEOJSON_OPEN_BRACKET ring extra_rings GEOJSON_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_polygon_xy (p_data, (gaiaRingPtr) yymsp[-2].minor. yy0); } break; case 70: /* polygon_textz ::= GEOJSON_OPEN_BRACKET ringz extra_ringsz GEOJSON_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_polygon_xyz (p_data, (gaiaRingPtr) yymsp[-2].minor. yy0); } break; case 71: /* ring ::= GEOJSON_OPEN_BRACKET point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy GEOJSON_COMMA point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_ring_xy (p_data, (gaiaPointPtr) yymsp[-8].minor.yy0); } break; case 73: /* extra_rings ::= GEOJSON_COMMA ring extra_rings */ case 76: /* extra_ringsz ::= GEOJSON_COMMA ringz extra_ringsz */ yytestcase (yyruleno == 76); { ((gaiaRingPtr) yymsp[-1].minor.yy0)->Next = (gaiaRingPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 74: /* ringz ::= GEOJSON_OPEN_BRACKET point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz GEOJSON_COMMA point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_ring_xyz (p_data, (gaiaPointPtr) yymsp[-8].minor. yy0); } break; case 77: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ case 78: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 78); case 83: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 83); case 84: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 84); case 91: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 91); case 92: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 92); case 97: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 97); case 98: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 98); case 109: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 109); case 110: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 110); case 115: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 115); case 116: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 116); case 127: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 127); case 128: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 128); case 134: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 134); { yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 79: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ case 80: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 80); case 85: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 85); case 86: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 86); case 93: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 93); case 94: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 94); case 99: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 99); case 100: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 100); case 111: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 111); case 112: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 112); case 117: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 117); case 118: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 118); case 129: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 129); case 130: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 130); case 135: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 135); case 136: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 136); { yygotominor.yy0 = (void *) geoJSON_setSrid ((gaiaGeomCollPtr) yymsp[-1].minor. yy0, (int *) yymsp[-5].minor.yy0); } break; case 81: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ case 82: /* multipoint ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 82); case 87: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 87); case 88: /* multipointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOINT GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipoint_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 88); case 95: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 95); case 96: /* multilinestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 96); case 101: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 101); case 102: /* multilinestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTILINESTRING GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multilinestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 102); case 113: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 113); case 114: /* multipolygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 114); case 119: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 119); case 120: /* multipolygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_MULTIPOLYGON GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON multipolygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 120); case 131: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 131); case 132: /* geocoll ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_text GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 132); case 137: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON short_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 137); case 138: /* geocollz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_GEOMETRYCOLLECTION GEOJSON_COMMA GEOJSON_CRS GEOJSON_COLON long_crs GEOJSON_COMMA GEOJSON_BBOX GEOJSON_COLON GEOJSON_OPEN_BRACKET bbox GEOJSON_CLOSE_BRACKET GEOJSON_COMMA GEOJSON_GEOMS GEOJSON_COLON geocoll_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 138); { yygotominor.yy0 = (void *) geoJSON_setSrid ((gaiaGeomCollPtr) yymsp[-1].minor. yy0, (int *) yymsp[-11].minor.yy0); } break; case 89: /* multipoint_text ::= GEOJSON_OPEN_BRACKET point_coordxy extra_pointsxy GEOJSON_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_multipoint_xy (p_data, (gaiaPointPtr) yymsp[-2].minor.yy0); } break; case 90: /* multipoint_textz ::= GEOJSON_OPEN_BRACKET point_coordxyz extra_pointsxyz GEOJSON_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_multipoint_xyz (p_data, (gaiaPointPtr) yymsp[-2].minor.yy0); } break; case 103: /* multilinestring_text ::= GEOJSON_OPEN_BRACKET linestring_text multilinestring_text2 GEOJSON_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_multilinestring_xy (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 105: /* multilinestring_text2 ::= GEOJSON_COMMA linestring_text multilinestring_text2 */ case 108: /* multilinestring_textz2 ::= GEOJSON_COMMA linestring_textz multilinestring_textz2 */ yytestcase (yyruleno == 108); { ((gaiaLinestringPtr) yymsp[-1].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 106: /* multilinestring_textz ::= GEOJSON_OPEN_BRACKET linestring_textz multilinestring_textz2 GEOJSON_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_multilinestring_xyz (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 121: /* multipolygon_text ::= GEOJSON_OPEN_BRACKET polygon_text multipolygon_text2 GEOJSON_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_multipolygon_xy (p_data, (gaiaPolygonPtr) yymsp[-2].minor.yy0); } break; case 123: /* multipolygon_text2 ::= GEOJSON_COMMA polygon_text multipolygon_text2 */ case 126: /* multipolygon_textz2 ::= GEOJSON_COMMA polygon_textz multipolygon_textz2 */ yytestcase (yyruleno == 126); { ((gaiaPolygonPtr) yymsp[-1].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 124: /* multipolygon_textz ::= GEOJSON_OPEN_BRACKET polygon_textz multipolygon_textz2 GEOJSON_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_multipolygon_xyz (p_data, (gaiaPolygonPtr) yymsp[-2].minor.yy0); } break; case 139: /* geocoll_text ::= GEOJSON_OPEN_BRACKET coll_point geocoll_text2 GEOJSON_CLOSE_BRACKET */ case 140: /* geocoll_text ::= GEOJSON_OPEN_BRACKET coll_linestring geocoll_text2 GEOJSON_CLOSE_BRACKET */ yytestcase (yyruleno == 140); case 141: /* geocoll_text ::= GEOJSON_OPEN_BRACKET coll_polygon geocoll_text2 GEOJSON_CLOSE_BRACKET */ yytestcase (yyruleno == 141); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_geomColl_xy (p_data, (gaiaGeomCollPtr) yymsp[-2].minor.yy0); } break; case 143: /* geocoll_text2 ::= GEOJSON_COMMA coll_point geocoll_text2 */ case 144: /* geocoll_text2 ::= GEOJSON_COMMA coll_linestring geocoll_text2 */ yytestcase (yyruleno == 144); case 145: /* geocoll_text2 ::= GEOJSON_COMMA coll_polygon geocoll_text2 */ yytestcase (yyruleno == 145); case 150: /* geocoll_textz2 ::= GEOJSON_COMMA coll_pointz geocoll_textz2 */ yytestcase (yyruleno == 150); case 151: /* geocoll_textz2 ::= GEOJSON_COMMA coll_linestringz geocoll_textz2 */ yytestcase (yyruleno == 151); case 152: /* geocoll_textz2 ::= GEOJSON_COMMA coll_polygonz geocoll_textz2 */ yytestcase (yyruleno == 152); { ((gaiaGeomCollPtr) yymsp[-1].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 146: /* geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_pointz geocoll_textz2 GEOJSON_CLOSE_BRACKET */ case 147: /* geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_linestringz geocoll_textz2 GEOJSON_CLOSE_BRACKET */ yytestcase (yyruleno == 147); case 148: /* geocoll_textz ::= GEOJSON_OPEN_BRACKET coll_polygonz geocoll_textz2 GEOJSON_CLOSE_BRACKET */ yytestcase (yyruleno == 148); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) geoJSON_geomColl_xyz (p_data, (gaiaGeomCollPtr) yymsp[-2].minor.yy0); } break; case 153: /* coll_point ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxy GEOJSON_CLOSE_BRACE */ case 154: /* coll_pointz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POINT GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON point_coordxyz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 154); { yygotominor.yy0 = geoJSON_buildGeomFromPoint (p_data, (gaiaPointPtr) yymsp[-1].minor. yy0); } break; case 155: /* coll_linestring ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_text GEOJSON_CLOSE_BRACE */ case 156: /* coll_linestringz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_LINESTRING GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON linestring_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 156); { yygotominor.yy0 = geoJSON_buildGeomFromLinestring (p_data, (gaiaLinestringPtr) yymsp[-1].minor.yy0); } break; case 157: /* coll_polygon ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_text GEOJSON_CLOSE_BRACE */ case 158: /* coll_polygonz ::= GEOJSON_OPEN_BRACE GEOJSON_TYPE GEOJSON_COLON GEOJSON_POLYGON GEOJSON_COMMA GEOJSON_COORDS GEOJSON_COLON polygon_textz GEOJSON_CLOSE_BRACE */ yytestcase (yyruleno == 158); { yygotominor.yy0 = geoJSON_buildGeomFromPolygon (p_data, (gaiaPolygonPtr) yymsp[-1].minor.yy0); } break; default: /* (0) main ::= in */ yytestcase (yyruleno == 0); /* (1) in ::= */ yytestcase (yyruleno == 1); /* (2) in ::= in state GEOJSON_NEWLINE */ yytestcase (yyruleno == 2); /* (3) state ::= program */ yytestcase (yyruleno == 3); /* (4) program ::= geo_text */ yytestcase (yyruleno == 4); /* (31) bbox ::= coord GEOJSON_COMMA coord GEOJSON_COMMA coord GEOJSON_COMMA coord */ yytestcase (yyruleno == 31); break; }; yygoto = yyRuleInfo[yyruleno].lhs; yysize = yyRuleInfo[yyruleno].nrhs; yypParser->yyidx -= yysize; yyact = yy_find_reduce_action (yymsp[-yysize].stateno, (YYCODETYPE) yygoto); if (yyact < YYNSTATE) { #ifdef NDEBUG /* If we are not debugging and the reduce action popped at least ** one element off the stack, then we can push the new element back ** onto the stack here, and skip the stack overflow test in yy_shift(). ** That gives a significant speed improvement. */ if (yysize) { yypParser->yyidx++; yymsp -= yysize - 1; yymsp->stateno = (YYACTIONTYPE) yyact; yymsp->major = (YYCODETYPE) yygoto; yymsp->minor = yygotominor; } else #endif { yy_shift (yypParser, yyact, yygoto, &yygotominor); } } else { assert (yyact == YYNSTATE + YYNRULE + 1); yy_accept (yypParser); } } /* ** The following code executes when the parse fails */ #ifndef YYNOERRORRECOVERY static void yy_parse_failed (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFail!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser fails */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. */ static void yy_syntax_error (yyParser * yypParser, /* The parser */ int yymajor, /* The major type of the error token */ YYMINORTYPE yyminor /* The minor type of the error token */ ) { ParseARG_FETCH; #define TOKEN (yyminor.yy0) /* ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->geoJson_parse_error = 1; p_data->result = NULL; ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* ** The following is executed when the parser accepts */ static void yy_accept (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sAccept!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. ** The first argument is a pointer to a structure obtained from ** "ParseAlloc" which describes the current state of the parser. ** The second argument is the major token number. The third is ** the minor token. The fourth optional argument is whatever the ** user wants (and specified in the grammar) and is available for ** use by the action routines. ** ** Inputs: ** <ul> ** <li> A pointer to the parser (an opaque structure.) ** <li> The major token number. ** <li> The minor token number. ** <li> An option argument of a grammar-specified type. ** </ul> ** ** Outputs: ** None. */ void Parse (void *yyp, /* The parser */ int yymajor, /* The major token code number */ ParseTOKENTYPE yyminor /* The value for the token */ ParseARG_PDECL /* Optional %extra_argument parameter */ ) { YYMINORTYPE yyminorunion; int yyact; /* The parser action. */ int yyendofinput; /* True if we are at the end of input */ #ifdef YYERRORSYMBOL int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif yyParser *yypParser; /* The parser */ /* (re)initialize the parser, if necessary */ yypParser = (yyParser *) yyp; if (yypParser->yyidx < 0) { #if YYSTACKDEPTH<=0 if (yypParser->yystksz <= 0) { /*memset(&yyminorunion, 0, sizeof(yyminorunion)); */ yyminorunion = yyzerominor; yyStackOverflow (yypParser, &yyminorunion); return; } #endif yypParser->yyidx = 0; yypParser->yyerrcnt = -1; yypParser->yystack[0].stateno = 0; yypParser->yystack[0].major = 0; } yyminorunion.yy0 = yyminor; yyendofinput = (yymajor == 0); ParseARG_STORE; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sInput %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif do { yyact = yy_find_shift_action (yypParser, (YYCODETYPE) yymajor); if (yyact < YYNSTATE) { assert (!yyendofinput); /* Impossible to shift the $ token */ yy_shift (yypParser, yyact, yymajor, &yyminorunion); yypParser->yyerrcnt--; yymajor = YYNOCODE; } else if (yyact < YYNSTATE + YYNRULE) { yy_reduce (yypParser, yyact - YYNSTATE); } else { assert (yyact == YY_ERROR_ACTION); #ifdef YYERRORSYMBOL int yymx; #endif #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt); } #endif #ifdef YYERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". ** ** This is what we do if the grammar does define ERROR: ** ** * Call the %syntax_error function. ** ** * Begin popping the stack until we enter a state where ** it is legal to shift the error symbol, then shift ** the error symbol. ** ** * Set the error count to three. ** ** * Begin accepting and shifting new tokens. No new error ** processing will occur until three tokens have been ** shifted successfully. ** */ if (yypParser->yyerrcnt < 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yymx = yypParser->yystack[yypParser->yyidx].major; if (yymx == YYERRORSYMBOL || yyerrorhit) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sDiscard input token %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; } else { while (yypParser->yyidx >= 0 && yymx != YYERRORSYMBOL && (yyact = yy_find_reduce_action (yypParser->yystack [yypParser->yyidx].stateno, YYERRORSYMBOL)) >= YYNSTATE) { yy_pop_parser_stack (yypParser); } if (yypParser->yyidx < 0 || yymajor == 0) { yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yy_parse_failed (yypParser); yymajor = YYNOCODE; } else if (yymx != YYERRORSYMBOL) { YYMINORTYPE u2; u2.YYERRSYMDT = 0; yy_shift (yypParser, yyact, YYERRORSYMBOL, &u2); } } yypParser->yyerrcnt = 3; yyerrorhit = 1; #elif defined(YYNOERRORRECOVERY) /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to ** do any kind of error recovery. Instead, simply invoke the syntax ** error routine and continue going as if nothing had happened. ** ** Applications can set this macro (for example inside %include) if ** they intend to abandon the parse upon the first syntax error seen. */ yy_syntax_error (yypParser, yymajor, yyminorunion); yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; #else /* YYERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. ** ** * If the input token is $, then fail the parse. ** ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ if (yypParser->yyerrcnt <= 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yypParser->yyerrcnt = 3; yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); if (yyendofinput) { yy_parse_failed (yypParser); } yymajor = YYNOCODE; #endif } } while (yymajor != YYNOCODE && yypParser->yyidx >= 0); return; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiageo/gg_matrix.c��������������������������������������������������������0000664�0001750�0001750�00000061326�12544707704�015762� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_matrix.c -- Gaia Affine Transform Matrix support version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2012-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <sys/types.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite/sqlite.h> #include <spatialite/gaiageo.h> #include <spatialite/gaiamatrix.h> #include <spatialite_private.h> #define MATRIX_MAGIC_START 0x00 #define MATRIX_MAGIC_DELIMITER 0x3a #define MATRIX_MAGIC_END 0xb3 struct at_matrix { /* 3D Affine Transform Matrix */ double xx; double xy; double xz; double xoff; double yx; double yy; double yz; double yoff; double zx; double zy; double zz; double zoff; double w1; double w2; double w3; double w4; }; static int blob_matrix_encode (struct at_matrix *matrix, unsigned char **blob, int *blob_sz) { /* creating a BLOB-Matrix object */ unsigned char *xblob = NULL; unsigned char *ptr; int xblob_sz = 146; int endian_arch = gaiaEndianArch (); *blob = NULL; *blob_sz = 0; xblob = malloc (xblob_sz); if (xblob == NULL) return 0; ptr = xblob; /* encoding the BLOB */ *ptr = MATRIX_MAGIC_START; /* START signature */ *(ptr + 1) = 1; /* LITTLE ENDIAN */ gaiaExport64 (ptr + 2, matrix->xx, 1, endian_arch); *(ptr + 10) = MATRIX_MAGIC_DELIMITER; gaiaExport64 (ptr + 11, matrix->xy, 1, endian_arch); *(ptr + 19) = MATRIX_MAGIC_DELIMITER; gaiaExport64 (ptr + 20, matrix->xz, 1, endian_arch); *(ptr + 28) = MATRIX_MAGIC_DELIMITER; gaiaExport64 (ptr + 29, matrix->xoff, 1, endian_arch); *(ptr + 37) = MATRIX_MAGIC_DELIMITER; gaiaExport64 (ptr + 38, matrix->yx, 1, endian_arch); *(ptr + 46) = MATRIX_MAGIC_DELIMITER; gaiaExport64 (ptr + 47, matrix->yy, 1, endian_arch); *(ptr + 55) = MATRIX_MAGIC_DELIMITER; gaiaExport64 (ptr + 56, matrix->yz, 1, endian_arch); *(ptr + 64) = MATRIX_MAGIC_DELIMITER; gaiaExport64 (ptr + 65, matrix->yoff, 1, endian_arch); *(ptr + 73) = MATRIX_MAGIC_DELIMITER; gaiaExport64 (ptr + 74, matrix->zx, 1, endian_arch); *(ptr + 82) = MATRIX_MAGIC_DELIMITER; gaiaExport64 (ptr + 83, matrix->zy, 1, endian_arch); *(ptr + 91) = MATRIX_MAGIC_DELIMITER; gaiaExport64 (ptr + 92, matrix->zz, 1, endian_arch); *(ptr + 100) = MATRIX_MAGIC_DELIMITER; gaiaExport64 (ptr + 101, matrix->zoff, 1, endian_arch); *(ptr + 109) = MATRIX_MAGIC_DELIMITER; gaiaExport64 (ptr + 110, matrix->w1, 1, endian_arch); *(ptr + 118) = MATRIX_MAGIC_DELIMITER; gaiaExport64 (ptr + 119, matrix->w2, 1, endian_arch); *(ptr + 127) = MATRIX_MAGIC_DELIMITER; gaiaExport64 (ptr + 128, matrix->w3, 1, endian_arch); *(ptr + 136) = MATRIX_MAGIC_DELIMITER; gaiaExport64 (ptr + 137, matrix->w4, 1, endian_arch); *(ptr + 145) = MATRIX_MAGIC_END; *blob = xblob; *blob_sz = xblob_sz; return 1; } static int blob_matrix_decode (struct at_matrix *matrix, const unsigned char *blob, int blob_sz) { /* decoding a BLOB-Matrix object */ int endian; int endian_arch = gaiaEndianArch (); const unsigned char *ptr = blob; if (blob == NULL) return 0; if (blob_sz != 146) return 0; if (*ptr != MATRIX_MAGIC_START) return 0; if (*(ptr + 1) == 1) endian = 1; else if (*(ptr + 1) == 0) endian = 0; else return 0; matrix->xx = gaiaImport64 (ptr + 2, endian, endian_arch); matrix->xy = gaiaImport64 (ptr + 11, endian, endian_arch); matrix->xz = gaiaImport64 (ptr + 20, endian, endian_arch); matrix->xoff = gaiaImport64 (ptr + 29, endian, endian_arch); matrix->yx = gaiaImport64 (ptr + 38, endian, endian_arch); matrix->yy = gaiaImport64 (ptr + 47, endian, endian_arch); matrix->yz = gaiaImport64 (ptr + 56, endian, endian_arch); matrix->yoff = gaiaImport64 (ptr + 65, endian, endian_arch); matrix->zx = gaiaImport64 (ptr + 74, endian, endian_arch); matrix->zy = gaiaImport64 (ptr + 83, endian, endian_arch); matrix->zz = gaiaImport64 (ptr + 92, endian, endian_arch); matrix->zoff = gaiaImport64 (ptr + 101, endian, endian_arch); matrix->w1 = gaiaImport64 (ptr + 110, endian, endian_arch); matrix->w2 = gaiaImport64 (ptr + 119, endian, endian_arch); matrix->w3 = gaiaImport64 (ptr + 128, endian, endian_arch); matrix->w4 = gaiaImport64 (ptr + 137, endian, endian_arch); if (*(ptr + 145) != MATRIX_MAGIC_END) return 0; return 1; } GAIAMATRIX_DECLARE int gaia_matrix_create (double a, double b, double c, double d, double e, double f, double g, double h, double i, double xoff, double yoff, double zoff, unsigned char **blob, int *blob_sz) { /* * creating a BLOB-serialized Affine Transform Matrix * iniziatialized with explicit values */ struct at_matrix matrix; matrix.xx = a; matrix.xy = b; matrix.xz = c; matrix.xoff = xoff; matrix.yx = d; matrix.yy = e; matrix.yz = f; matrix.yoff = yoff; matrix.zx = g; matrix.zy = h; matrix.zz = i; matrix.zoff = zoff; matrix.w1 = 0.0; matrix.w2 = 0.0; matrix.w3 = 0.0; matrix.w4 = 1.0; return blob_matrix_encode (&matrix, blob, blob_sz); } static void matrix_multiply (struct at_matrix *result, struct at_matrix *matrix1, struct at_matrix *matrix2) { /* multiplying MatrixA by MatrixB */ result->xx = (matrix1->xx * matrix2->xx) + (matrix1->xy * matrix2->yx) + (matrix1->xz * matrix2->zx) + (matrix1->xoff * matrix2->w1); result->xy = (matrix1->xx * matrix2->xy) + (matrix1->xy * matrix2->yy) + (matrix1->xz * matrix2->zy) + (matrix1->xoff * matrix2->w2); result->xz = (matrix1->xx * matrix2->xz) + (matrix1->xy * matrix2->yz) + (matrix1->xz * matrix2->zz) + (matrix1->xoff * matrix2->w3); result->xoff = (matrix1->xx * matrix2->xoff) + (matrix1->xy * matrix2->yoff) + (matrix1->xz * matrix2->zoff) + (matrix1->xoff * matrix2->w4); result->yx = (matrix1->yx * matrix2->xx) + (matrix1->yy * matrix2->yx) + (matrix1->yz * matrix2->zx) + (matrix1->yoff * matrix2->w1); result->yy = (matrix1->yx * matrix2->xy) + (matrix1->yy * matrix2->yy) + (matrix1->yz * matrix2->zy) + (matrix1->yoff * matrix2->w2); result->yz = (matrix1->yx * matrix2->xz) + (matrix1->yy * matrix2->yz) + (matrix1->yz * matrix2->zz) + (matrix1->yoff * matrix2->w3); result->yoff = (matrix1->yx * matrix2->xoff) + (matrix1->yy * matrix2->yoff) + (matrix1->yz * matrix2->zoff) + (matrix1->yoff * matrix2->w4); result->zx = (matrix1->zx * matrix2->xx) + (matrix1->zy * matrix2->yx) + (matrix1->zz * matrix2->zx) + (matrix1->zoff * matrix2->w1); result->zy = (matrix1->zx * matrix2->xy) + (matrix1->zy * matrix2->yy) + (matrix1->zz * matrix2->zy) + (matrix1->zoff * matrix2->w2); result->zz = (matrix1->zx * matrix2->xz) + (matrix1->zy * matrix2->yz) + (matrix1->zz * matrix2->zz) + (matrix1->zoff * matrix2->w3); result->zoff = (matrix1->zx * matrix2->xoff) + (matrix1->zy * matrix2->yoff) + (matrix1->zz * matrix2->zoff) + (matrix1->zoff * matrix2->w4); result->w1 = (matrix1->w1 * matrix2->xx) + (matrix1->w2 * matrix2->yx) + (matrix1->w3 * matrix2->zx) + (matrix1->w4 * matrix2->w1); result->w2 = (matrix1->w1 * matrix2->xy) + (matrix1->w2 * matrix2->yy) + (matrix1->w3 * matrix2->zy) + (matrix1->w4 * matrix2->w2); result->w3 = (matrix1->w1 * matrix2->xz) + (matrix1->w2 * matrix2->yz) + (matrix1->w3 * matrix2->zz) + (matrix1->w4 * matrix2->w3); result->w4 = (matrix1->w1 * matrix2->xoff) + (matrix1->w2 * matrix2->yoff) + (matrix1->w3 * matrix2->zoff) + (matrix1->w4 * matrix2->w4); } GAIAMATRIX_DECLARE int gaia_matrix_multiply (const unsigned char *iblob1, int iblob1_sz, const unsigned char *iblob2, int iblob2_sz, unsigned char **blob, int *blob_sz) { /* * creating a BLOB-serialized Affine Transform Matrix * by multiplying MatrixA by MatrixB */ struct at_matrix matrix1; struct at_matrix matrix2; struct at_matrix result; *blob = NULL; *blob_sz = 0; if (!blob_matrix_decode (&matrix1, iblob1, iblob1_sz)) return 0; if (!blob_matrix_decode (&matrix2, iblob2, iblob2_sz)) return 0; matrix_multiply (&result, &matrix1, &matrix2); return blob_matrix_encode (&result, blob, blob_sz); } GAIAMATRIX_DECLARE int gaia_matrix_create_multiply (const unsigned char *iblob, int iblob_sz, double a, double b, double c, double d, double e, double f, double g, double h, double i, double xoff, double yoff, double zoff, unsigned char **blob, int *blob_sz) { /* * creating a BLOB-serialized Affine Transform Matrix * iniziatialized with explicit values */ struct at_matrix old_matrix; struct at_matrix matrix; struct at_matrix result; matrix.xx = a; matrix.xy = b; matrix.xz = c; matrix.xoff = xoff; matrix.yx = d; matrix.yy = e; matrix.yz = f; matrix.yoff = yoff; matrix.zx = g; matrix.zy = h; matrix.zz = i; matrix.zoff = zoff; matrix.w1 = 0.0; matrix.w2 = 0.0; matrix.w3 = 0.0; matrix.w4 = 1.0; *blob = NULL; *blob_sz = 0; if (!blob_matrix_decode (&old_matrix, iblob, iblob_sz)) return 0; matrix_multiply (&result, &matrix, &old_matrix); return blob_matrix_encode (&result, blob, blob_sz); } GAIAMATRIX_DECLARE int gaia_matrix_is_valid (const unsigned char *blob, int blob_sz) { /* checking a BLOB-ATM object for validity */ const unsigned char *ptr = blob; if (blob == NULL) return 0; if (blob_sz != 146) return 0; if (*ptr != MATRIX_MAGIC_START) return 0; if (*(ptr + 1) == 1 || *(ptr + 1) == 0) ; else return 0; if (*(ptr + 10) != MATRIX_MAGIC_DELIMITER) return 0; if (*(ptr + 19) != MATRIX_MAGIC_DELIMITER) return 0; if (*(ptr + 28) != MATRIX_MAGIC_DELIMITER) return 0;; if (*(ptr + 37) != MATRIX_MAGIC_DELIMITER) return 0; if (*(ptr + 46) != MATRIX_MAGIC_DELIMITER) return 0; if (*(ptr + 55) != MATRIX_MAGIC_DELIMITER) return 0; if (*(ptr + 64) != MATRIX_MAGIC_DELIMITER) return 0; if (*(ptr + 73) != MATRIX_MAGIC_DELIMITER) return 0; if (*(ptr + 82) != MATRIX_MAGIC_DELIMITER) return 0; if (*(ptr + 91) != MATRIX_MAGIC_DELIMITER) return 0; if (*(ptr + 100) != MATRIX_MAGIC_DELIMITER) return 0; if (*(ptr + 109) != MATRIX_MAGIC_DELIMITER) return 0; if (*(ptr + 118) != MATRIX_MAGIC_DELIMITER) return 0; if (*(ptr + 127) != MATRIX_MAGIC_DELIMITER) return 0; if (*(ptr + 136) != MATRIX_MAGIC_DELIMITER) return 0; if (*(ptr + 145) != MATRIX_MAGIC_END) return 0; return 1; } GAIAMATRIX_DECLARE char * gaia_matrix_as_text (const unsigned char *blob, int blob_sz) { /* printing a BLOB-AMT object as a text string */ char *text; struct at_matrix matrix; if (!gaia_matrix_is_valid (blob, blob_sz)) return NULL; if (!blob_matrix_decode (&matrix, blob, blob_sz)) return NULL; /* printing the AT Matrix as text */ text = sqlite3_mprintf ("%1.10f %1.10f %1.10f %1.10f\n%1.10f %1.10f %1.10f %1.10f\n" "%1.10f %1.10f %1.10f %1.10f\n%1.10f %1.10f %1.10f %1.10f\n", matrix.xx, matrix.xy, matrix.xz, matrix.xoff, matrix.yx, matrix.yy, matrix.yz, matrix.yoff, matrix.zx, matrix.zy, matrix.zz, matrix.zoff, matrix.w1, matrix.w2, matrix.w3, matrix.w4); return text; } static void gaia_point_transform3D (struct at_matrix *matrix, double *x, double *y, double *z) { /* Affine Transform 3D */ double x0 = *x; double y0 = *y; double z0 = *z; *x = (matrix->xx * x0) + (matrix->xy * y0) + (matrix->xz * z0) + matrix->xoff; *y = (matrix->yx * x0) + (matrix->yy * y0) + (matrix->yz * z0) + matrix->yoff; *z = (matrix->zx * x0) + (matrix->zy * y0) + (matrix->zz * z0) + matrix->zoff; } static void gaia_point_transform2D (struct at_matrix *matrix, double *x, double *y) { /* Affine Transform 2D */ double x0 = *x; double y0 = *y; *x = (matrix->xx * x0) + (matrix->xy * y0) + matrix->xoff; *y = (matrix->yx * x0) + (matrix->yy * y0) + matrix->yoff; } GAIAMATRIX_DECLARE gaiaGeomCollPtr gaia_matrix_transform_geometry (gaiaGeomCollPtr geom, const unsigned char *blob, int blob_sz) { /* transforming a Geometry by applying an Affine Transform Matrix */ int iv; int ib; double x; double y; double z; double m; gaiaPointPtr point; gaiaLinestringPtr line; gaiaLinestringPtr new_line; gaiaPolygonPtr polyg; gaiaPolygonPtr new_polyg; gaiaGeomCollPtr new_geom; gaiaRingPtr i_ring; gaiaRingPtr o_ring; struct at_matrix matrix; if (!gaia_matrix_is_valid (blob, blob_sz)) return NULL; if (!blob_matrix_decode (&matrix, blob, blob_sz)) return NULL; if (geom == NULL) return NULL; /* creating the output Geometry */ if (geom->DimensionModel == GAIA_XY_Z) new_geom = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) new_geom = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) new_geom = gaiaAllocGeomCollXYZM (); else new_geom = gaiaAllocGeomColl (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = geom->DeclaredType; /* cloning and transforming all individual items */ point = geom->FirstPoint; while (point) { /* copying POINTs */ if (geom->DimensionModel == GAIA_XY_Z) { x = point->X; y = point->Y; z = point->Z; gaia_point_transform3D (&matrix, &x, &y, &z); gaiaAddPointToGeomCollXYZ (new_geom, x, y, z); } else if (geom->DimensionModel == GAIA_XY_M) { x = point->X; y = point->Y; m = point->M; gaia_point_transform2D (&matrix, &x, &y); gaiaAddPointToGeomCollXYM (new_geom, x, y, m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { x = point->X; y = point->Y; z = point->Z; m = point->M; gaia_point_transform3D (&matrix, &x, &y, &z); gaiaAddPointToGeomCollXYZM (new_geom, x, y, z, m); } else { x = point->X; y = point->Y; gaia_point_transform2D (&matrix, &x, &y); gaiaAddPointToGeomColl (new_geom, x, y); } point = point->Next; } line = geom->FirstLinestring; while (line) { /* copying LINESTRINGs */ new_line = gaiaAddLinestringToGeomColl (new_geom, line->Points); for (iv = 0; iv < line->Points; iv++) { z = 0.0; m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (new_line->DimensionModel == GAIA_XY_Z || new_line->DimensionModel == GAIA_XY_Z_M) gaia_point_transform3D (&matrix, &x, &y, &z); else gaia_point_transform2D (&matrix, &x, &y); if (new_line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_line->Coords, iv, x, y, z); } else if (new_line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_line->Coords, iv, x, y, m); } else if (new_line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_line->Coords, iv, x, y, z, m); } else { gaiaSetPoint (new_line->Coords, iv, x, y); } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* copying POLYGONs */ i_ring = polyg->Exterior; new_polyg = gaiaAddPolygonToGeomColl (new_geom, i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ for (iv = 0; iv < o_ring->Points; iv++) { z = 0.0; m = 0.0; if (i_ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (i_ring->Coords, iv, &x, &y, &z); } else if (i_ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (i_ring->Coords, iv, &x, &y, &m); } else if (i_ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (i_ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (i_ring->Coords, iv, &x, &y); } if (o_ring->DimensionModel == GAIA_XY_Z || o_ring->DimensionModel == GAIA_XY_Z_M) gaia_point_transform3D (&matrix, &x, &y, &z); else gaia_point_transform2D (&matrix, &x, &y); if (o_ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (o_ring->Coords, iv, x, y, z); } else if (o_ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (o_ring->Coords, iv, x, y, m); } else if (o_ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (o_ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (o_ring->Coords, iv, x, y); } } for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); for (iv = 0; iv < o_ring->Points; iv++) { z = 0.0; m = 0.0; if (i_ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (i_ring->Coords, iv, &x, &y, &z); } else if (i_ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (i_ring->Coords, iv, &x, &y, &m); } else if (i_ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (i_ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (i_ring->Coords, iv, &x, &y); } if (o_ring->DimensionModel == GAIA_XY_Z || o_ring->DimensionModel == GAIA_XY_Z_M) gaia_point_transform3D (&matrix, &x, &y, &z); else gaia_point_transform2D (&matrix, &x, &y); if (o_ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (o_ring->Coords, iv, x, y, z); } else if (o_ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (o_ring->Coords, iv, x, y, m); } else if (o_ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (o_ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (o_ring->Coords, iv, x, y); } } } polyg = polyg->Next; } return new_geom; } static double matrix_determinant (struct at_matrix *matrix) { /* computing the Determinant for a 4x4 Matrix */ double m00 = matrix->xx; double m01 = matrix->xy; double m02 = matrix->xz; double m03 = matrix->xoff; double m10 = matrix->yx; double m11 = matrix->yy; double m12 = matrix->yz; double m13 = matrix->yoff; double m20 = matrix->zx; double m21 = matrix->zy; double m22 = matrix->zz; double m23 = matrix->zoff; double m30 = matrix->w1; double m31 = matrix->w2; double m32 = matrix->w3; double m33 = matrix->w4; double value = m03 * m12 * m21 * m30 - m02 * m13 * m21 * m30 - m03 * m11 * m22 * m30 + m01 * m13 * m22 * m30 + m02 * m11 * m23 * m30 - m01 * m12 * m23 * m30 - m03 * m12 * m20 * m31 + m02 * m13 * m20 * m31 + m03 * m10 * m22 * m31 - m00 * m13 * m22 * m31 - m02 * m10 * m23 * m31 + m00 * m12 * m23 * m31 + m03 * m11 * m20 * m32 - m01 * m13 * m20 * m32 - m03 * m10 * m21 * m32 + m00 * m13 * m21 * m32 + m01 * m10 * m23 * m32 - m00 * m11 * m23 * m32 - m02 * m11 * m20 * m33 + m01 * m12 * m20 * m33 + m02 * m10 * m21 * m33 - m00 * m12 * m21 * m33 - m01 * m10 * m22 * m33 + m00 * m11 * m22 * m33; return value; } GAIAMATRIX_DECLARE double gaia_matrix_determinant (const unsigned char *blob, int blob_sz) { /* computing the Determinant from a BLOB-AMT object */ double det; struct at_matrix matrix; if (!gaia_matrix_is_valid (blob, blob_sz)) return 0.0; if (!blob_matrix_decode (&matrix, blob, blob_sz)) return 0.0; /* computing the Determinant */ det = matrix_determinant (&matrix); return det; } static void matrix_invert (struct at_matrix *matrix, double determinant) { /* inverting a Matrix */ double m00 = matrix->xx; double m01 = matrix->xy; double m02 = matrix->xz; double m03 = matrix->xoff; double m10 = matrix->yx; double m11 = matrix->yy; double m12 = matrix->yz; double m13 = matrix->yoff; double m20 = matrix->zx; double m21 = matrix->zy; double m22 = matrix->zz; double m23 = matrix->zoff; double m30 = matrix->w1; double m31 = matrix->w2; double m32 = matrix->w3; double m33 = matrix->w4; double scale = 1.0 / determinant; double r00 = m12 * m23 * m31 - m13 * m22 * m31 + m13 * m21 * m32 - m11 * m23 * m32 - m12 * m21 * m33 + m11 * m22 * m33; double r01 = m03 * m22 * m31 - m02 * m23 * m31 - m03 * m21 * m32 + m01 * m23 * m32 + m02 * m21 * m33 - m01 * m22 * m33; double r02 = m02 * m13 * m31 - m03 * m12 * m31 + m03 * m11 * m32 - m01 * m13 * m32 - m02 * m11 * m33 + m01 * m12 * m33; double r03 = m03 * m12 * m21 - m02 * m13 * m21 - m03 * m11 * m22 + m01 * m13 * m22 + m02 * m11 * m23 - m01 * m12 * m23; double r10 = m13 * m22 * m30 - m12 * m23 * m30 - m13 * m20 * m32 + m10 * m23 * m32 + m12 * m20 * m33 - m10 * m22 * m33; double r11 = m02 * m23 * m30 - m03 * m22 * m30 + m03 * m20 * m32 - m00 * m23 * m32 - m02 * m20 * m33 + m00 * m22 * m33; double r12 = m03 * m12 * m30 - m02 * m13 * m30 - m03 * m10 * m32 + m00 * m13 * m32 + m02 * m10 * m33 - m00 * m12 * m33; double r13 = m02 * m13 * m20 - m03 * m12 * m20 + m03 * m10 * m22 - m00 * m13 * m22 - m02 * m10 * m23 + m00 * m12 * m23; double r20 = m11 * m23 * m30 - m13 * m21 * m30 + m13 * m20 * m31 - m10 * m23 * m31 - m11 * m20 * m33 + m10 * m21 * m33; double r21 = m03 * m21 * m30 - m01 * m23 * m30 - m03 * m20 * m31 + m00 * m23 * m31 + m01 * m20 * m33 - m00 * m21 * m33; double r22 = m01 * m13 * m30 - m03 * m11 * m30 + m03 * m10 * m31 - m00 * m13 * m31 - m01 * m10 * m33 + m00 * m11 * m33; double r23 = m03 * m11 * m20 - m01 * m13 * m20 - m03 * m10 * m21 + m00 * m13 * m21 + m01 * m10 * m23 - m00 * m11 * m23; double r30 = m12 * m21 * m30 - m11 * m22 * m30 - m12 * m20 * m31 + m10 * m22 * m31 + m11 * m20 * m32 - m10 * m21 * m32; double r31 = m01 * m22 * m30 - m02 * m21 * m30 + m02 * m20 * m31 - m00 * m22 * m31 - m01 * m20 * m32 + m00 * m21 * m32; double r32 = m02 * m11 * m30 - m01 * m12 * m30 - m02 * m10 * m31 + m00 * m12 * m31 + m01 * m10 * m32 - m00 * m11 * m32; double r33 = m01 * m12 * m20 - m02 * m11 * m20 + m02 * m10 * m21 - m00 * m12 * m21 - m01 * m10 * m22 + m00 * m11 * m22; matrix->xx = r00 * scale; matrix->xy = r01 * scale; matrix->xz = r02 * scale; matrix->xoff = r03 * scale; matrix->yx = r10 * scale; matrix->yy = r11 * scale; matrix->yz = r12 * scale; matrix->yoff = r13 * scale; matrix->zx = r20 * scale; matrix->zy = r21 * scale; matrix->zz = r22 * scale; matrix->zoff = r23 * scale; matrix->w1 = r30 * scale; matrix->w2 = r31 * scale; matrix->w3 = r32 * scale; matrix->w4 = r33 * scale; } GAIAMATRIX_DECLARE int gaia_matrix_invert (const unsigned char *iblob, int iblob_sz, unsigned char **oblob, int *oblob_sz) { /* * creating a BLOB-serialized Affine Transform Matrix * by Inverting another Matrix */ double det; struct at_matrix matrix; *oblob = NULL; *oblob_sz = 0; if (!gaia_matrix_is_valid (iblob, iblob_sz)) return 0; if (!blob_matrix_decode (&matrix, iblob, iblob_sz)) return 0; det = matrix_determinant (&matrix); if (det == 0.0) return 0; /* creating the Inverse Matrix */ matrix_invert (&matrix, det); return blob_matrix_encode (&matrix, oblob, oblob_sz); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiageo/gg_vanuatu.c�������������������������������������������������������0000664�0001750�0001750�00000171236�12544707704�016143� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_vanuatu.c -- WKT parser/lexer version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. The Vanuatu Team - University of Toronto - Supervisor: Greg Wilson gvwilson@cs.toronto.ca Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <sys/types.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <assert.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite/sqlite.h> #include <spatialite/debug.h> #include <spatialite/gaiageo.h> #if defined(_WIN32) || defined(WIN32) #include <io.h> #ifndef isatty #define isatty _isatty #endif #ifndef fileno #define fileno _fileno #endif #endif #define VANUATU_DYN_NONE 0 #define VANUATU_DYN_POINT 1 #define VANUATU_DYN_LINESTRING 2 #define VANUATU_DYN_POLYGON 3 #define VANUATU_DYN_RING 4 #define VANUATU_DYN_GEOMETRY 5 #define VANUATU_DYN_BLOCK 1024 /* ** CAVEAT: we must redefine any Lemon/Flex own macro */ #define YYMINORTYPE VANUATU_MINORTYPE #define YY_CHAR VANUATU_YY_CHAR #define input vanuatu_input #define ParseAlloc vanuatuParseAlloc #define ParseFree vanuatuParseFree #define ParseStackPeak vanuatuParseStackPeak #define Parse vanuatuParse #define yyStackEntry vanuatu_yyStackEntry #define yyzerominor vanuatu_yyzerominor #define yy_accept vanuatu_yy_accept #define yy_action vanuatu_yy_action #define yy_base vanuatu_yy_base #define yy_buffer_stack vanuatu_yy_buffer_stack #define yy_buffer_stack_max vanuatu_yy_buffer_stack_max #define yy_buffer_stack_top vanuatu_yy_buffer_stack_top #define yy_c_buf_p vanuatu_yy_c_buf_p #define yy_chk vanuatu_yy_chk #define yy_def vanuatu_yy_def #define yy_default vanuatu_yy_default #define yy_destructor vanuatu_yy_destructor #define yy_ec vanuatu_yy_ec #define yy_fatal_error vanuatu_yy_fatal_error #define yy_find_reduce_action vanuatu_yy_find_reduce_action #define yy_find_shift_action vanuatu_yy_find_shift_action #define yy_get_next_buffer vanuatu_yy_get_next_buffer #define yy_get_previous_state vanuatu_yy_get_previous_state #define yy_init vanuatu_yy_init #define yy_init_globals vanuatu_yy_init_globals #define yy_lookahead vanuatu_yy_lookahead #define yy_meta vanuatu_yy_meta #define yy_nxt vanuatu_yy_nxt #define yy_parse_failed vanuatu_yy_parse_failed #define yy_pop_parser_stack vanuatu_yy_pop_parser_stack #define yy_reduce vanuatu_yy_reduce #define yy_reduce_ofst vanuatu_yy_reduce_ofst #define yy_shift vanuatu_yy_shift #define yy_shift_ofst vanuatu_yy_shift_ofst #define yy_start vanuatu_yy_start #define yy_state_type vanuatu_yy_state_type #define yy_syntax_error vanuatu_yy_syntax_error #define yy_trans_info vanuatu_yy_trans_info #define yy_try_NUL_trans vanuatu_yy_try_NUL_trans #define yyParser vanuatu_yyParser #define yyStackEntry vanuatu_yyStackEntry #define yyStackOverflow vanuatu_yyStackOverflow #define yyRuleInfo vanuatu_yyRuleInfo #define yyunput vanuatu_yyunput #define yyzerominor vanuatu_yyzerominor #define yyTraceFILE vanuatu_yyTraceFILE #define yyTracePrompt vanuatu_yyTracePrompt #define yyTokenName vanuatu_yyTokenName #define yyRuleName vanuatu_yyRuleName #define ParseTrace vanuatu_ParseTrace #define yylex vanuatu_yylex #define YY_DECL int yylex (yyscan_t yyscanner) /* including LEMON generated header */ #include "vanuatuWkt.h" typedef union { double dval; struct symtab *symp; } vanuatu_yystype; #define YYSTYPE vanuatu_yystype struct vanuatu_dyn_block { /* a struct taking trace of dynamic allocations */ int type[VANUATU_DYN_BLOCK]; void *ptr[VANUATU_DYN_BLOCK]; int index; struct vanuatu_dyn_block *next; }; struct vanuatu_data { /* a struct used to make the lexer-parser reentrant and thread-safe */ int vanuatu_parse_error; int vanuatu_line; int vanuatu_col; struct vanuatu_dyn_block *vanuatu_first_dyn_block; struct vanuatu_dyn_block *vanuatu_last_dyn_block; gaiaGeomCollPtr result; YYSTYPE VanuatuWktlval; }; static struct vanuatu_dyn_block * vanuatuCreateDynBlock (void) { /* allocating a new block to trace dynamic allocations */ int i; struct vanuatu_dyn_block *p = malloc (sizeof (struct vanuatu_dyn_block)); for (i = 0; i < VANUATU_DYN_BLOCK; i++) { /* initializing map entries */ p->type[i] = VANUATU_DYN_NONE; p->ptr[i] = NULL; } p->index = 0; p->next = NULL; return p; } static void vanuatuMapDynAlloc (struct vanuatu_data *p_data, int type, void *ptr) { /* appending a dynamic allocation into the map */ struct vanuatu_dyn_block *p; if (p_data->vanuatu_first_dyn_block == NULL) { /* inserting the first block of the map */ p = vanuatuCreateDynBlock (); p_data->vanuatu_first_dyn_block = p; p_data->vanuatu_last_dyn_block = p; } if (p_data->vanuatu_last_dyn_block->index >= VANUATU_DYN_BLOCK) { /* adding a further block to the map */ p = vanuatuCreateDynBlock (); p_data->vanuatu_last_dyn_block->next = p; p_data->vanuatu_last_dyn_block = p; } p_data->vanuatu_last_dyn_block->type[p_data-> vanuatu_last_dyn_block->index] = type; p_data->vanuatu_last_dyn_block->ptr[p_data->vanuatu_last_dyn_block->index] = ptr; p_data->vanuatu_last_dyn_block->index++; } static void vanuatuMapDynClean (struct vanuatu_data *p_data, void *ptr) { /* deleting a dynamic allocation from the map */ int i; struct vanuatu_dyn_block *p = p_data->vanuatu_first_dyn_block; while (p) { for (i = 0; i < VANUATU_DYN_BLOCK; i++) { switch (p->type[i]) { case VANUATU_DYN_POINT: case VANUATU_DYN_LINESTRING: case VANUATU_DYN_POLYGON: case VANUATU_DYN_RING: case VANUATU_DYN_GEOMETRY: if (p->ptr[i] == ptr) { p->type[i] = VANUATU_DYN_NONE; return; } break; }; } p = p->next; } } static void vanuatuCleanMapDynAlloc (struct vanuatu_data *p_data, int clean_all) { /* cleaning the dynamic allocations map */ int i; struct vanuatu_dyn_block *pn; struct vanuatu_dyn_block *p = p_data->vanuatu_first_dyn_block; while (p) { if (clean_all) { for (i = 0; i < VANUATU_DYN_BLOCK; i++) { /* deleting Geometry objects */ switch (p->type[i]) { case VANUATU_DYN_POINT: gaiaFreePoint ((gaiaPointPtr) (p->ptr[i])); break; case VANUATU_DYN_LINESTRING: gaiaFreeLinestring ((gaiaLinestringPtr) (p->ptr[i])); break; case VANUATU_DYN_POLYGON: gaiaFreePolygon ((gaiaPolygonPtr) (p->ptr[i])); break; case VANUATU_DYN_RING: gaiaFreeRing ((gaiaRingPtr) (p->ptr[i])); break; case VANUATU_DYN_GEOMETRY: gaiaFreeGeomColl ((gaiaGeomCollPtr) (p->ptr[i])); break; }; } } /* deleting the map block */ pn = p->next; free (p); p = pn; } } static int vanuatuCheckValidity (gaiaGeomCollPtr geom) { /* checks if this one is a degenerated geometry */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; int ib; int entities = 0; pt = geom->FirstPoint; while (pt) { /* checking points */ entities++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { /* checking linestrings */ if (ln->Points < 2) return 0; entities++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { /* checking polygons */ rng = pg->Exterior; if (rng->Points < 4) return 0; for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; if (rng->Points < 4) return 0; } entities++; pg = pg->Next; } if (!entities) return 0; return 1; } static gaiaGeomCollPtr gaiaGeometryFromPoint (struct vanuatu_data *p_data, gaiaPointPtr point) { /* builds a GEOMETRY containing a POINT */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomColl (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINT; gaiaAddPointToGeomColl (geom, point->X, point->Y); vanuatuMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaGeometryFromPointZ (struct vanuatu_data *p_data, gaiaPointPtr point) { /* builds a GEOMETRY containing a POINTZ */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomCollXYZ (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINTZ; gaiaAddPointToGeomCollXYZ (geom, point->X, point->Y, point->Z); vanuatuMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaGeometryFromPointM (struct vanuatu_data *p_data, gaiaPointPtr point) { /* builds a GEOMETRY containing a POINTM */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomCollXYM (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINTM; gaiaAddPointToGeomCollXYM (geom, point->X, point->Y, point->M); vanuatuMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaGeometryFromPointZM (struct vanuatu_data *p_data, gaiaPointPtr point) { /* builds a GEOMETRY containing a POINTZM */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomCollXYZM (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINTZM; gaiaAddPointToGeomCollXYZM (geom, point->X, point->Y, point->Z, point->M); vanuatuMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaGeometryFromLinestring (struct vanuatu_data *p_data, gaiaLinestringPtr line) { /* builds a GEOMETRY containing a LINESTRING */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; geom = gaiaAllocGeomColl (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPoint (line->Coords, iv, &x, &y); gaiaSetPoint (line2->Coords, iv, x, y); } vanuatuMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } static gaiaGeomCollPtr gaiaGeometryFromLinestringZ (struct vanuatu_data *p_data, gaiaLinestringPtr line) { /* builds a GEOMETRY containing a LINESTRINGZ */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; double z; geom = gaiaAllocGeomCollXYZ (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (line2->Coords, iv, x, y, z); } vanuatuMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } static gaiaGeomCollPtr gaiaGeometryFromLinestringM (struct vanuatu_data *p_data, gaiaLinestringPtr line) { /* builds a GEOMETRY containing a LINESTRINGM */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; double m; geom = gaiaAllocGeomCollXYM (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); gaiaSetPointXYM (line2->Coords, iv, x, y, m); } vanuatuMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } static gaiaGeomCollPtr gaiaGeometryFromLinestringZM (struct vanuatu_data *p_data, gaiaLinestringPtr line) { /* builds a GEOMETRY containing a LINESTRINGZM */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; double z; double m; geom = gaiaAllocGeomCollXYZM (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (line2->Coords, iv, x, y, z, m); } vanuatuMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } /****************************************************************************** ** The following code was created by Team Vanuatu of The University of Toronto. ** It is responsible for handling the parsing of wkt expressions. The parser ** is built using LEMON and the cooresponding methods were written by the ** students. Authors: Ruppi Rana ruppi.rana@gmail.com Dev Tanna dev.tanna@gmail.com Elias Adum elias.adum@gmail.com Benton Hui benton.hui@gmail.com Abhayan Sundararajan abhayan@gmail.com Chee-Lun Michael Stephen Cho cheelun.cho@gmail.com Nikola Banovic nikola.banovic@gmail.com Yong Jian yong.jian@utoronto.ca Supervisor: Greg Wilson gvwilson@cs.toronto.ca ------------------------------------------------------------------------------- */ /* * Creates a 2D (xy) point in SpatiaLite * x and y are pointers to doubles which represent the x and y coordinates of the point to be created. * Returns a gaiaPointPtr representing the created point. * * Creates a 2D (xy) point. This is a parser helper function which is called when 2D coordinates are encountered. * Parameters x and y are pointers to doubles which represent the x and y coordinates of the point to be created. * Returns a gaiaPointPtr pointing to the created 2D point. */ static gaiaPointPtr vanuatu_point_xy (struct vanuatu_data *p_data, double *x, double *y) { gaiaPointPtr pt = gaiaAllocPoint (*x, *y); vanuatuMapDynAlloc (p_data, VANUATU_DYN_POINT, pt); return pt; } /* * Creates a 3D (xyz) point in SpatiaLite * x, y, and z are pointers to doubles which represent the x, y, and z coordinates of the point to be created. * Returns a gaiaPointPtr representing the created point. * * Creates a 3D (xyz) point. This is a parser helper function which is called when 3D coordinates are encountered. * Parameters x, y, and z are pointers to doubles which represent the x, y, and z coordinates of the point to be created. * Returns a gaiaPointPtr pointing to the 3D created point. */ static gaiaPointPtr vanuatu_point_xyz (struct vanuatu_data *p_data, double *x, double *y, double *z) { gaiaPointPtr pt = gaiaAllocPointXYZ (*x, *y, *z); vanuatuMapDynAlloc (p_data, VANUATU_DYN_POINT, pt); return pt; } /* * Creates a 2D (xy) point with an m value which is a part of the linear reference system. This is a parser helper * function which is called when 2D *coordinates with an m value are encountered. * Parameters x and y are pointers to doubles which represent the x and y coordinates of the point to be created. * Parameter m is a pointer to a double which represents the part of the linear reference system. * Returns a gaiaPointPtr pointing to the created 2D point with an m value. */ static gaiaPointPtr vanuatu_point_xym (struct vanuatu_data *p_data, double *x, double *y, double *m) { gaiaPointPtr pt = gaiaAllocPointXYM (*x, *y, *m); vanuatuMapDynAlloc (p_data, VANUATU_DYN_POINT, pt); return pt; } /* * Creates a 4D (xyz) point with an m value which is a part of the linear reference system. This is a parser helper * function which is called when *4Dcoordinates with an m value are encountered * Parameters x, y, and z are pointers to doubles which represent the x, y, and z coordinates of the point to be created. * Parameter m is a pointer to a double which represents the part of the linear reference system. * Returns a gaiaPointPtr pointing the created 4D point with an m value. */ gaiaPointPtr vanuatu_point_xyzm (struct vanuatu_data * p_data, double *x, double *y, double *z, double *m) { gaiaPointPtr pt = gaiaAllocPointXYZM (*x, *y, *z, *m); vanuatuMapDynAlloc (p_data, VANUATU_DYN_POINT, pt); return pt; } /* * Builds a geometry collection from a point. The geometry collection should contain only one element ? the point. * The correct geometry type must be *decided based on the point type. The parser should call this function when the * ?POINT? WKT expression is encountered. * Parameter point is a pointer to a 2D, 3D, 2D with an m value, or 4D with an m value point. * Returns a geometry collection containing the point. The geometry must have FirstPoint and LastPoint pointing to the * same place as point. *DimensionModel must be the same as the model of the point and DimensionType must be GAIA_TYPE_POINT. */ static gaiaGeomCollPtr vanuatu_buildGeomFromPoint (struct vanuatu_data *p_data, gaiaPointPtr point) { switch (point->DimensionModel) { case GAIA_XY: return gaiaGeometryFromPoint (p_data, point); case GAIA_XY_Z: return gaiaGeometryFromPointZ (p_data, point); case GAIA_XY_M: return gaiaGeometryFromPointM (p_data, point); case GAIA_XY_Z_M: return gaiaGeometryFromPointZM (p_data, point); } return NULL; } /* * Creates a 2D (xy) linestring from a list of 2D points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 2D (xy) points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr vanuatu_linestring_xy (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestring (points); vanuatuMapDynAlloc (p_data, VANUATU_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPoint (linestring->Coords, i, p->X, p->Y); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Creates a 3D (xyz) linestring from a list of 3D points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 3D (xyz) points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr vanuatu_linestring_xyz (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestringXYZ (points); vanuatuMapDynAlloc (p_data, VANUATU_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPointXYZ (linestring->Coords, i, p->X, p->Y, p->Z); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Creates a 2D (xy) with m value linestring from a list of 2D with m value points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 2D (xy) with m value points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr vanuatu_linestring_xym (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestringXYM (points); vanuatuMapDynAlloc (p_data, VANUATU_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPointXYM (linestring->Coords, i, p->X, p->Y, p->M); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Creates a 4D (xyz) with m value linestring from a list of 4D with m value points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 4D (xyz) with m value points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr vanuatu_linestring_xyzm (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestringXYZM (points); vanuatuMapDynAlloc (p_data, VANUATU_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPointXYZM (linestring->Coords, i, p->X, p->Y, p->Z, p->M); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Builds a geometry collection from a linestring. */ static gaiaGeomCollPtr vanuatu_buildGeomFromLinestring (struct vanuatu_data *p_data, gaiaLinestringPtr line) { switch (line->DimensionModel) { case GAIA_XY: return gaiaGeometryFromLinestring (p_data, line); case GAIA_XY_Z: return gaiaGeometryFromLinestringZ (p_data, line); case GAIA_XY_M: return gaiaGeometryFromLinestringM (p_data, line); case GAIA_XY_Z_M: return gaiaGeometryFromLinestringZM (p_data, line); } return NULL; } /* * Helper function that determines the number of points in the linked list. */ static int vanuatu_count_points (gaiaPointPtr first) { /* Counts the number of points in the ring. */ gaiaPointPtr p = first; int numpoints = 0; while (p != NULL) { numpoints++; p = p->Next; } return numpoints; } /* * Creates a 2D (xy) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 2D (xy) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr vanuatu_ring_xy (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = vanuatu_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRing (numpoints); if (ring == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPoint (ring->Coords, index, p->X, p->Y); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Creates a 3D (xyz) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 3D (xyz) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr vanuatu_ring_xyz (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = vanuatu_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRingXYZ (numpoints); if (ring == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPointXYZ (ring->Coords, index, p->X, p->Y, p->Z); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Creates a 2D (xym) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 2D (xym) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr vanuatu_ring_xym (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = vanuatu_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRingXYM (numpoints); if (ring == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPointXYM (ring->Coords, index, p->X, p->Y, p->M); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Creates a 3D (xyzm) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 3D (xyzm) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr vanuatu_ring_xyzm (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = vanuatu_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRingXYZM (numpoints); if (ring == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPointXYZM (ring->Coords, index, p->X, p->Y, p->Z, p->M); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Helper function that will create any type of polygon (xy, xym, xyz, xyzm) in SpatiaLite. * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are of the same type. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr vanuatu_polygon_any_type (struct vanuatu_data *p_data, gaiaRingPtr first) { gaiaRingPtr p; gaiaRingPtr p_n; gaiaPolygonPtr polygon; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a polygon structure with the exterior ring. */ polygon = gaiaCreatePolygon (first); if (polygon == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_POLYGON, polygon); /* Adds all interior rings into the polygon structure. */ p = first; while (p != NULL) { p_n = p->Next; vanuatuMapDynClean (p_data, p); if (p == first) gaiaFreeRing (p); else gaiaAddRingToPolyg (polygon, p); p = p_n; } return polygon; } /* * Creates a 2D (xy) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 2D (xy) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr vanuatu_polygon_xy (struct vanuatu_data *p_data, gaiaRingPtr first) { return vanuatu_polygon_any_type (p_data, first); } /* * Creates a 3D (xyz) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 3D (xyz) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr vanuatu_polygon_xyz (struct vanuatu_data *p_data, gaiaRingPtr first) { return vanuatu_polygon_any_type (p_data, first); } /* * Creates a 2D (xym) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 2D (xym) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr vanuatu_polygon_xym (struct vanuatu_data *p_data, gaiaRingPtr first) { return vanuatu_polygon_any_type (p_data, first); } /* * Creates a 3D (xyzm) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 3D (xyzm) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr vanuatu_polygon_xyzm (struct vanuatu_data *p_data, gaiaRingPtr first) { return vanuatu_polygon_any_type (p_data, first); } /* * Builds a geometry collection from a polygon. * NOTE: This function may already be implemented in the SpatiaLite code base. If it is, make sure that we * can use it (ie. it doesn't use any other variables or anything else set by Sandro's parser). If you find * that we can use an existing function then ignore this one. */ static gaiaGeomCollPtr vanuatu_buildGeomFromPolygon (struct vanuatu_data *p_data, gaiaPolygonPtr polygon) { gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (polygon == NULL) { return NULL; } /* Creates and allocates a geometry collection containing a multipoint. */ switch (polygon->DimensionModel) { case GAIA_XY: geom = gaiaAllocGeomColl (); break; case GAIA_XY_Z: geom = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: geom = gaiaAllocGeomCollXYM (); break; case GAIA_XY_Z_M: geom = gaiaAllocGeomCollXYZM (); break; } if (geom == NULL) { return NULL; } vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POLYGON; /* Stores the location of the first and last polygons in the linked list. */ geom->FirstPolygon = polygon; while (polygon != NULL) { vanuatuMapDynClean (p_data, polygon); geom->LastPolygon = polygon; polygon = polygon->Next; } return geom; } /* * Creates a 2D (xy) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points. * All of the points given to the function are 2D (xy) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr vanuatu_multipoint_xy (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 2D (xy) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomColl (geom, p->X, p->Y); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a 3D (xyz) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points. * All of the points given to the function are 3D (xyz) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr vanuatu_multipoint_xyz (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomCollXYZ (); if (geom == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 3D (xyz) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomCollXYZ (geom, p->X, p->Y, p->Z); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a 2D (xym) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points. * All of the points given to the function are 2D (xym) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr vanuatu_multipoint_xym (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomCollXYM (); if (geom == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 2D (xym) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomCollXYM (geom, p->X, p->Y, p->M); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a 3D (xyzm) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points given to the function are 3D (xyzm) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr vanuatu_multipoint_xyzm (struct vanuatu_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomCollXYZM (); if (geom == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 3D (xyzm) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomCollXYZM (geom, p->X, p->Y, p->Z, p->M); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 2D (xy) linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 2D (xy) linestrings. There must be at least 1 linestring in the list. * Returns a pointer to the created geometry collection of 2D linestrings. The geometry must have FirstLinestring pointing to the * first linestring in the list pointed by first and LastLinestring pointing to the last element of the same list. DimensionModel * must be GAIA_XY and DimensionType must be *GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr vanuatu_multilinestring_xy (struct vanuatu_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomColl (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Returns a geometry collection containing the created multilinestring object (?). * Creates a geometry collection containing 3D (xyz) linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 3D (xyz) linestrings. There must be at least 1 linestring in the list. * Returns a pointer to the created geometry collection of 3D linestrings. The geometry must have FirstLinestring pointing to the * first linestring in the *list pointed by first and LastLinestring pointing to the last element of the same list. DimensionModel * must be GAIA_XYZ and DimensionType must be *GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr vanuatu_multilinestring_xyz (struct vanuatu_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomCollXYZ (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY_Z; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Creates a geometry collection containing 2D (xy) with m value linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 2D (xy) with m value linestrings. There must be at least 1 linestring * in the list. * Returns a pointer to the created geometry collection of 2D with m value linestrings. The geometry must have FirstLinestring * pointing to the first *linestring in the list pointed by first and LastLinestring pointing to the last element of the same list. * DimensionModel must be GAIA_XYM and *DimensionType must be GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr vanuatu_multilinestring_xym (struct vanuatu_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomCollXYM (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY_M; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Creates a geometry collection containing 4D (xyz) with m value linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 4D (xyz) with m value linestrings. There must be at least 1 linestring * in the list. * Returns a pointer to the created geometry collection of 4D with m value linestrings. The geometry must have FirstLinestring * pointing to the first *linestring in the list pointed by first and LastLinestring pointing to the last element of the same list. * DimensionModel must be GAIA_XYZM and *DimensionType must be GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr vanuatu_multilinestring_xyzm (struct vanuatu_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomCollXYZM (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY_Z_M; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Creates a geometry collection containing 2D (xy) polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should * be added to the collection. All of the polygons in the list must be 2D (xy) polygons. There must be * at least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 2D polygons. The geometry must have * FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon pointing * to the last element of the same list. DimensionModel must be GAIA_XY and DimensionType must * be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr vanuatu_multipolygon_xy (struct vanuatu_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomColl (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 3D (xyz) polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should be * added to the collection. All of the polygons in the list must be 3D (xyz) polygons. There must be at * least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 3D polygons. The geometry must have * FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon pointing to * the last element of the same list. DimensionModel must be GAIA_XYZ and DimensionType must * be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr vanuatu_multipolygon_xyz (struct vanuatu_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomCollXYZ (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 2D (xy) with m value polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should * be added to the collection. All of the polygons in the list must be 2D (xy) with m value polygons. * There must be at least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 2D with m value polygons. The geometry * must have FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon * pointing to the last element of the same list. DimensionModel must be GAIA_XYM and DimensionType * must be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr vanuatu_multipolygon_xym (struct vanuatu_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomCollXYM (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 4D (xyz) with m value polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should be * added to the collection. All of the polygons in the list must be 4D (xyz) with m value polygons. * There must be at least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 4D with m value polygons. The geometry must * have FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon pointing // * to the last element of the same list. DimensionModel must be GAIA_XYZM and DimensionType must * be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr vanuatu_multipolygon_xyzm (struct vanuatu_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomCollXYZM (); vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; vanuatuMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } static void vanuatu_geomColl_common (struct vanuatu_data *p_data, gaiaGeomCollPtr org, gaiaGeomCollPtr dst) { /* / helper function: xfers entities between the Origin and Destination / Sandro Furieri: 2010 October 12 */ gaiaGeomCollPtr p = org; gaiaGeomCollPtr p_n; gaiaPointPtr pt; gaiaPointPtr pt_n; gaiaLinestringPtr ln; gaiaLinestringPtr ln_n; gaiaPolygonPtr pg; gaiaPolygonPtr pg_n; while (p) { pt = p->FirstPoint; while (pt) { pt_n = pt->Next; pt->Next = NULL; if (dst->FirstPoint == NULL) dst->FirstPoint = pt; if (dst->LastPoint != NULL) dst->LastPoint->Next = pt; dst->LastPoint = pt; pt = pt_n; } ln = p->FirstLinestring; while (ln) { ln_n = ln->Next; ln->Next = NULL; if (dst->FirstLinestring == NULL) dst->FirstLinestring = ln; if (dst->LastLinestring != NULL) dst->LastLinestring->Next = ln; dst->LastLinestring = ln; ln = ln_n; } pg = p->FirstPolygon; while (pg) { pg_n = pg->Next; pg->Next = NULL; if (dst->FirstPolygon == NULL) dst->FirstPolygon = pg; if (dst->LastPolygon != NULL) dst->LastPolygon->Next = pg; dst->LastPolygon = pg; pg = pg_n; } p_n = p->Next; p->FirstPoint = NULL; p->LastPoint = NULL; p->FirstLinestring = NULL; p->LastLinestring = NULL; p->FirstPolygon = NULL; p->LastPolygon = NULL; vanuatuMapDynClean (p_data, p); gaiaFreeGeomColl (p); p = p_n; } } /* Creates a 2D (xy) geometry collection in SpatiaLite * * first is the first geometry collection in a linked list of geometry collections. * Each geometry collection represents a single type of object (eg. one could be a POINT, * another could be a LINESTRING, another could be a MULTILINESTRING, etc.). * * The type of object represented by any geometry collection is stored in the declaredType * field of its struct. For example, if first->declaredType = GAIA_POINT, then first represents a point. * If first->declaredType = GAIA_MULTIPOINT, then first represents a multipoint. * * NOTE: geometry collections cannot contain other geometry collections (have to confirm this * with Sandro). * * The goal of this function is to take the information from all of the structs in the linked list and * return one geomColl struct containing all of that information. * * The integers used for 'declaredType' are defined in gaiageo.h. In this function, the only values * contained in 'declaredType' that will be encountered will be: * * GAIA_POINT, GAIA_LINESTRING, GAIA_POLYGON, * GAIA_MULTIPOINT, GAIA_MULTILINESTRING, GAIA_MULTIPOLYGON */ static gaiaGeomCollPtr vanuatu_geomColl_xy (struct vanuatu_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY; vanuatu_geomColl_common (p_data, first, geom); return geom; } /* * See geomColl_xy for description. * * The only difference between this function and geomColl_xy is that the 'declaredType' field of the structs * in the linked list for this function will only contain the following types: * * GAIA_POINTZ, GAIA_LINESTRINGZ, GAIA_POLYGONZ, * GAIA_MULTIPOINTZ, GAIA_MULTILINESTRINGZ, GAIA_MULTIPOLYGONZ */ static gaiaGeomCollPtr vanuatu_geomColl_xyz (struct vanuatu_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY_Z; vanuatu_geomColl_common (p_data, first, geom); return geom; } /* * See geomColl_xy for description. * * The only difference between this function and geomColl_xy is that the 'declaredType' field of the structs * in the linked list for this function will only contain the following types: * * GAIA_POINTM, GAIA_LINESTRINGM, GAIA_POLYGONM, * GAIA_MULTIPOINTM, GAIA_MULTILINESTRINGM, GAIA_MULTIPOLYGONM */ static gaiaGeomCollPtr vanuatu_geomColl_xym (struct vanuatu_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY_M; vanuatu_geomColl_common (p_data, first, geom); return geom; } /* * See geomColl_xy for description. * * The only difference between this function and geomColl_xy is that the 'declaredType' field of the structs * in the linked list for this function will only contain the following types: * * GAIA_POINTZM, GAIA_LINESTRINGZM, GAIA_POLYGONZM, * GAIA_MULTIPOINTZM, GAIA_MULTILINESTRINGZM, GAIA_MULTIPOLYGONZM */ static gaiaGeomCollPtr vanuatu_geomColl_xyzm (struct vanuatu_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; vanuatuMapDynAlloc (p_data, VANUATU_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY_Z_M; vanuatu_geomColl_common (p_data, first, geom); return geom; } /* including LEMON generated code */ #include "vanuatuWkt.c" /* ** CAVEAT: there is an incompatibility between LEMON and FLEX ** this macro resolves the issue */ #undef yy_accept #define yy_accept yy_vanuatu_flex_accept /* including FLEX generated code */ #include "lex.VanuatuWkt.c" /* ** This is a linked-list struct to store all the values for each token. ** All tokens will have a value of 0, except tokens denoted as NUM. ** NUM tokens are geometry coordinates and will contain the floating ** point number. */ typedef struct vanuatuFlexTokenStruct { double value; struct vanuatuFlexTokenStruct *Next; } vanuatuFlexToken; /* ** Function to clean up the linked-list of token values. */ static int vanuatu_cleanup (vanuatuFlexToken * token) { vanuatuFlexToken *ptok; vanuatuFlexToken *ptok_n; if (token == NULL) return 0; ptok = token; while (ptok) { ptok_n = ptok->Next; free (ptok); ptok = ptok_n; } return 0; } gaiaGeomCollPtr gaiaParseWkt (const unsigned char *dirty_buffer, short type) { void *pParser = ParseAlloc (malloc); /* Linked-list of token values */ vanuatuFlexToken *tokens = malloc (sizeof (vanuatuFlexToken)); /* Pointer to the head of the list */ vanuatuFlexToken *head = tokens; int yv; yyscan_t scanner; struct vanuatu_data str_data; /* initializing the helper structs */ str_data.vanuatu_line = 1; str_data.vanuatu_col = 1; str_data.vanuatu_parse_error = 0; str_data.vanuatu_first_dyn_block = NULL; str_data.vanuatu_last_dyn_block = NULL; str_data.result = NULL; /* initializing the scanner state */ VanuatuWktlex_init_extra (&str_data, &scanner); tokens->Next = NULL; VanuatuWkt_scan_string ((char *) dirty_buffer, scanner); /* / Keep tokenizing until we reach the end / yylex() will return the next matching Token for us. */ while ((yv = yylex (scanner)) != 0) { if (yv == -1) { str_data.vanuatu_parse_error = 1; break; } tokens->Next = malloc (sizeof (vanuatuFlexToken)); tokens->Next->Next = NULL; tokens->Next->value = str_data.VanuatuWktlval.dval; /* Pass the token to the wkt parser created from lemon */ Parse (pParser, yv, &(tokens->Next->value), &str_data); tokens = tokens->Next; } /* This denotes the end of a line as well as the end of the parser */ Parse (pParser, VANUATU_NEWLINE, 0, &str_data); ParseFree (pParser, free); VanuatuWktlex_destroy (scanner); /* Assigning the token as the end to avoid seg faults while cleaning */ tokens->Next = NULL; vanuatu_cleanup (head); /* ** Sandro Furieri 2010 Apr 4 ** checking if any parsing error was encountered */ if (str_data.vanuatu_parse_error) { if (str_data.result != NULL) { /* if a Geometry-result has been produced, the stack is already cleaned */ gaiaFreeGeomColl (str_data.result); vanuatuCleanMapDynAlloc (&str_data, 0); } else { /* otherwise we are required to clean the stack */ vanuatuCleanMapDynAlloc (&str_data, 1); } return NULL; } vanuatuCleanMapDynAlloc (&str_data, 0); /* ** Sandro Furieri 2010 Apr 4 ** final checkup for validity */ if (str_data.result == NULL) return NULL; if (!vanuatuCheckValidity (str_data.result)) { gaiaFreeGeomColl (str_data.result); return NULL; } if (type < 0) ; /* no restrinction about GEOMETRY CLASS TYPE */ else { if (str_data.result->DeclaredType != type) { /* invalid CLASS TYPE for request */ gaiaFreeGeomColl (str_data.result); return NULL; } } gaiaMbrGeometry (str_data.result); return str_data.result; } /****************************************************************************** ** This is the end of the code that was created by Team Vanuatu ** of The University of Toronto. Authors: Ruppi Rana ruppi.rana@gmail.com Dev Tanna dev.tanna@gmail.com Elias Adum elias.adum@gmail.com Benton Hui benton.hui@gmail.com Abhayan Sundararajan abhayan@gmail.com Chee-Lun Michael Stephen Cho cheelun.cho@gmail.com Nikola Banovic nikola.banovic@gmail.com Yong Jian yong.jian@utoronto.ca Supervisor: Greg Wilson gvwilson@cs.toronto.ca ------------------------------------------------------------------------------- */ /* ** CAVEAT: we must now undefine any Lemon/Flex own macro */ #undef YYNOCODE #undef YYNSTATE #undef YYNRULE #undef YY_SHIFT_MAX #undef YY_SHIFT_USE_DFLT #undef YY_REDUCE_USE_DFLT #undef YY_REDUCE_MAX #undef YY_FLUSH_BUFFER #undef YY_DO_BEFORE_ACTION #undef YY_NUM_RULES #undef YY_END_OF_BUFFER #undef YY_END_FILE #undef YYACTIONTYPE #undef YY_SZ_ACTTAB #undef YY_NEW_FILE #undef BEGIN #undef YY_START #undef YY_CURRENT_BUFFER #undef YY_CURRENT_BUFFER_LVALUE #undef YY_STATE_BUF_SIZE #undef YY_DECL #undef YY_FATAL_ERROR #undef YYMINORTYPE #undef YY_CHAR #undef YYSTYPE #undef input #undef ParseAlloc #undef ParseFree #undef ParseStackPeak #undef Parse #undef yyalloc #undef yyfree #undef yyin #undef yyleng #undef yyless #undef yylex #undef yylineno #undef yyout #undef yyrealloc #undef yyrestart #undef yyStackEntry #undef yytext #undef yywrap #undef yyzerominor #undef yy_accept #undef yy_action #undef yy_base #undef yy_buffer_stack #undef yy_buffer_stack_max #undef yy_buffer_stack_top #undef yy_c_buf_p #undef yy_chk #undef yy_create_buffer #undef yy_def #undef yy_default #undef yy_delete_buffer #undef yy_destructor #undef yy_ec #undef yy_fatal_error #undef yy_find_reduce_action #undef yy_find_shift_action #undef yy_flex_debug #undef yy_flush_buffer #undef yy_get_next_buffer #undef yy_get_previous_state #undef yy_init #undef yy_init_buffer #undef yy_init_globals #undef yy_load_buffer #undef yy_load_buffer_state #undef yy_lookahead #undef yy_meta #undef yy_new_buffer #undef yy_nxt #undef yy_parse_failed #undef yy_pop_parser_stack #undef yy_reduce #undef yy_reduce_ofst #undef yy_set_bol #undef yy_set_interactive #undef yy_shift #undef yy_shift_ofst #undef yy_start #undef yy_state_type #undef yy_switch_to_buffer #undef yy_syntax_error #undef yy_trans_info #undef yy_try_NUL_trans #undef yyParser #undef yyStackEntry #undef yyStackOverflow #undef yyRuleInfo #undef yytext_ptr #undef yyunput #undef yyzerominor #undef ParseARG_SDECL #undef ParseARG_PDECL #undef ParseARG_FETCH #undef ParseARG_STORE #undef REJECT #undef yymore #undef YY_MORE_ADJ #undef YY_RESTORE_YY_MORE_OFFSET #undef YY_LESS_LINENO #undef yyTracePrompt #undef yyTraceFILE #undef yyTokenName #undef yyRuleName #undef ParseTrace #undef yylex #undef YY_DECL ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiageo/Ewkt.c�������������������������������������������������������������0000664�0001750�0001750�00000277324�12544707704�014722� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Driver template for the LEMON parser generator. ** The author disclaims copyright to this source code. */ /* First off, code is included that follows the "include" declaration ** in the input grammar file. */ #include <stdio.h> /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ /* ** These constants (all generated automatically by the parser generator) ** specify the various kinds of tokens (terminals) that the parser ** understands. ** ** Each symbol here is a terminal symbol in the grammar. */ /* Make sure the INTERFACE macro is defined. */ #ifndef INTERFACE #define INTERFACE 1 #endif /* The next thing included is series of defines which control ** various aspects of the generated parser. ** YYCODETYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 terminals ** and nonterminals. "int" is used otherwise. ** YYNOCODE is a number of type YYCODETYPE which corresponds ** to no legal terminal or nonterminal number. This ** number is used to fill in empty slots of the hash ** table. ** YYFALLBACK If defined, this indicates that one or more tokens ** have fall-back values which should be used if the ** original value of the token will not parse. ** YYACTIONTYPE is the data type used for storing terminal ** and nonterminal numbers. "unsigned char" is ** used if there are fewer than 250 rules and ** states combined. "int" is used otherwise. ** ParseTOKENTYPE is the data type used for minor tokens given ** directly to the parser from the tokenizer. ** YYMINORTYPE is the data type used for all minor tokens. ** This is typically a union of many types, one of ** which is ParseTOKENTYPE. The entry in the union ** for base tokens is called "yy0". ** YYSTACKDEPTH is the maximum depth of the parser's stack. If ** zero the stack is dynamically sized using realloc() ** ParseARG_SDECL A static variable declaration for the %extra_argument ** ParseARG_PDECL A parameter declaration for the %extra_argument ** ParseARG_STORE Code to store %extra_argument into yypParser ** ParseARG_FETCH Code to extract %extra_argument from yypParser ** YYNSTATE the combined number of states. ** YYNRULE the number of rules in the grammar ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. */ #define YYCODETYPE unsigned char #define YYNOCODE 117 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE void * typedef union { int yyinit; ParseTOKENTYPE yy0; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 1000000 #endif #define ParseARG_SDECL struct ewkt_data *p_data ; #define ParseARG_PDECL , struct ewkt_data *p_data #define ParseARG_FETCH struct ewkt_data *p_data = yypParser->p_data #define ParseARG_STORE yypParser->p_data = p_data #define YYNSTATE 508 #define YYNRULE 199 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) /* The yyzerominor constant is used to initialize instances of ** YYMINORTYPE objects to zero. */ static const YYMINORTYPE yyzerominor = { 0 }; /* Define the yytestcase() macro to be a no-op if is not already defined ** otherwise. ** ** Applications can choose to define yytestcase() in the %include section ** to a macro that can assist in verifying code coverage. For production ** code the yytestcase() macro should be turned off. But it is useful ** for testing. */ #ifndef yytestcase #define yytestcase(X) #endif /* Next are the tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement ** functions that take a state number and lookahead value and return an ** action integer. ** ** Suppose the action integer is N. Then the action is determined as ** follows ** ** 0 <= N < YYNSTATE Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** ** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. ** ** N == YYNSTATE+YYNRULE A syntax error has occurred. ** ** N == YYNSTATE+YYNRULE+1 The parser accepts its input. ** ** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused ** slots in the yy_action[] table. ** ** The action table is constructed as a single large table named yy_action[]. ** Given state S and lookahead X, the action is computed as ** ** yy_action[ yy_shift_ofst[S] + X ] ** ** If the index value yy_shift_ofst[S]+X is out of range or if the value ** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] ** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table ** and that yy_default[S] should be used instead. ** ** The formula above is for computing the action when the lookahead is ** a terminal symbol. If the lookahead is a non-terminal (as occurs after ** a reduce action) then the yy_reduce_ofst[] array is used in place of ** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of ** YY_SHIFT_USE_DFLT. ** ** The following are the tables generated in this section: ** ** yy_action[] A single table containing all actions. ** yy_lookahead[] A table containing the lookahead for each entry in ** yy_action. Used to detect hash collisions. ** yy_shift_ofst[] For each state, the offset into yy_action for ** shifting terminals. ** yy_reduce_ofst[] For each state, the offset into yy_action for ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { /* 0 */ 249, 336, 337, 338, 339, 340, 341, 342, 343, 344, /* 10 */ 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, /* 20 */ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, /* 30 */ 365, 366, 163, 201, 224, 178, 202, 225, 179, 203, /* 40 */ 226, 180, 204, 227, 181, 205, 228, 182, 206, 229, /* 50 */ 508, 101, 250, 128, 371, 254, 66, 129, 19, 80, /* 60 */ 20, 95, 22, 124, 23, 141, 25, 158, 27, 232, /* 70 */ 250, 254, 708, 1, 13, 80, 19, 95, 20, 124, /* 80 */ 22, 141, 23, 158, 25, 247, 28, 103, 104, 371, /* 90 */ 105, 106, 63, 305, 111, 117, 305, 255, 21, 164, /* 100 */ 66, 165, 164, 166, 165, 167, 166, 169, 167, 177, /* 110 */ 169, 313, 183, 374, 313, 375, 376, 187, 14, 188, /* 120 */ 187, 189, 188, 190, 189, 192, 190, 200, 192, 321, /* 130 */ 207, 404, 321, 405, 406, 210, 62, 211, 210, 212, /* 140 */ 211, 213, 212, 215, 213, 223, 215, 254, 230, 3, /* 150 */ 24, 80, 104, 95, 26, 124, 71, 141, 111, 158, /* 160 */ 171, 240, 2, 172, 194, 163, 173, 195, 178, 174, /* 170 */ 196, 179, 175, 197, 180, 176, 198, 181, 217, 199, /* 180 */ 182, 218, 201, 125, 219, 202, 371, 220, 203, 224, /* 190 */ 221, 204, 225, 222, 205, 226, 108, 206, 227, 371, /* 200 */ 388, 228, 389, 390, 229, 284, 233, 242, 243, 244, /* 210 */ 245, 246, 234, 235, 236, 237, 238, 239, 31, 113, /* 220 */ 251, 252, 371, 253, 83, 63, 256, 258, 87, 260, /* 230 */ 91, 63, 265, 270, 103, 275, 257, 63, 106, 68, /* 240 */ 105, 78, 75, 75, 424, 117, 425, 426, 132, 119, /* 250 */ 135, 138, 371, 436, 64, 437, 438, 146, 69, 150, /* 260 */ 154, 65, 370, 68, 448, 70, 449, 450, 67, 184, /* 270 */ 68, 186, 209, 73, 74, 373, 33, 71, 71, 79, /* 280 */ 262, 75, 81, 66, 82, 66, 265, 66, 266, 267, /* 290 */ 85, 68, 270, 68, 68, 68, 71, 271, 272, 89, /* 300 */ 258, 71, 71, 71, 71, 275, 276, 75, 75, 277, /* 310 */ 93, 75, 75, 280, 281, 282, 66, 66, 66, 377, /* 320 */ 256, 99, 251, 378, 66, 68, 260, 68, 75, 252, /* 330 */ 253, 72, 75, 71, 407, 408, 371, 371, 380, 76, /* 340 */ 259, 77, 35, 36, 381, 38, 261, 383, 84, 263, /* 350 */ 385, 386, 39, 88, 268, 43, 47, 92, 96, 273, /* 360 */ 51, 98, 102, 278, 264, 86, 61, 283, 393, 269, /* 370 */ 287, 285, 90, 400, 286, 396, 107, 97, 274, 94, /* 380 */ 279, 399, 100, 289, 403, 108, 110, 413, 109, 288, /* 390 */ 112, 291, 113, 114, 116, 118, 115, 290, 119, 15, /* 400 */ 415, 419, 125, 120, 121, 123, 292, 122, 126, 130, /* 410 */ 133, 127, 417, 296, 55, 136, 293, 428, 297, 56, /* 420 */ 430, 131, 139, 298, 295, 57, 422, 294, 142, 148, /* 430 */ 144, 147, 301, 152, 134, 151, 155, 137, 156, 140, /* 440 */ 143, 159, 709, 145, 161, 16, 4, 168, 170, 149, /* 450 */ 5, 17, 709, 6, 83, 153, 709, 191, 193, 433, /* 460 */ 87, 709, 160, 157, 432, 299, 91, 162, 435, 374, /* 470 */ 388, 7, 132, 709, 709, 709, 300, 709, 8, 440, /* 480 */ 146, 404, 709, 18, 442, 214, 302, 445, 444, 216, /* 490 */ 424, 709, 303, 709, 709, 709, 447, 709, 709, 709, /* 500 */ 709, 436, 709, 709, 304, 709, 709, 375, 9, 709, /* 510 */ 135, 709, 389, 709, 709, 709, 709, 452, 453, 454, /* 520 */ 709, 455, 456, 709, 457, 185, 306, 312, 709, 150, /* 530 */ 307, 308, 309, 310, 425, 184, 10, 11, 709, 405, /* 540 */ 709, 709, 709, 311, 464, 709, 709, 709, 709, 709, /* 550 */ 709, 709, 437, 709, 376, 466, 390, 709, 335, 709, /* 560 */ 138, 709, 12, 709, 709, 367, 467, 154, 709, 29, /* 570 */ 468, 208, 469, 470, 471, 406, 426, 314, 315, 316, /* 580 */ 317, 318, 186, 319, 478, 368, 369, 372, 320, 379, /* 590 */ 438, 30, 382, 32, 34, 384, 37, 387, 391, 40, /* 600 */ 709, 392, 41, 42, 480, 481, 482, 394, 483, 44, /* 610 */ 58, 45, 484, 46, 395, 48, 397, 485, 59, 231, /* 620 */ 49, 50, 398, 52, 322, 401, 323, 53, 324, 54, /* 630 */ 402, 409, 493, 325, 326, 327, 209, 492, 410, 328, /* 640 */ 495, 496, 411, 412, 497, 498, 241, 499, 500, 501, /* 650 */ 407, 329, 414, 330, 408, 416, 418, 331, 332, 420, /* 660 */ 421, 423, 427, 429, 248, 431, 333, 434, 439, 334, /* 670 */ 441, 443, 446, 451, 458, 459, 460, 461, 462, 463, /* 680 */ 465, 472, 473, 474, 475, 476, 477, 479, 60, 709, /* 690 */ 486, 487, 488, 489, 709, 490, 491, 494, 502, 709, /* 700 */ 503, 504, 505, 506, 709, 507, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, /* 10 */ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, /* 20 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, /* 30 */ 53, 54, 27, 28, 29, 30, 31, 32, 33, 34, /* 40 */ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, /* 50 */ 0, 3, 2, 57, 6, 5, 60, 61, 8, 9, /* 60 */ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, /* 70 */ 2, 5, 21, 22, 3, 9, 8, 11, 10, 13, /* 80 */ 12, 15, 14, 17, 16, 19, 18, 55, 56, 6, /* 90 */ 58, 59, 60, 2, 62, 63, 2, 57, 3, 8, /* 100 */ 60, 10, 8, 12, 10, 14, 12, 16, 14, 18, /* 110 */ 16, 2, 18, 72, 2, 74, 75, 8, 3, 10, /* 120 */ 8, 12, 10, 14, 12, 16, 14, 18, 16, 2, /* 130 */ 18, 88, 2, 90, 91, 8, 60, 10, 8, 12, /* 140 */ 10, 14, 12, 16, 14, 18, 16, 5, 18, 3, /* 150 */ 3, 9, 56, 11, 3, 13, 60, 15, 62, 17, /* 160 */ 27, 19, 3, 30, 28, 27, 33, 31, 30, 36, /* 170 */ 34, 33, 39, 37, 36, 42, 40, 39, 29, 43, /* 180 */ 42, 32, 28, 3, 35, 31, 6, 38, 34, 29, /* 190 */ 41, 37, 32, 44, 40, 35, 3, 43, 38, 6, /* 200 */ 76, 41, 78, 79, 44, 60, 48, 49, 50, 51, /* 210 */ 52, 53, 48, 49, 50, 51, 52, 53, 7, 3, /* 220 */ 55, 56, 6, 58, 80, 60, 55, 56, 84, 58, /* 230 */ 86, 60, 55, 56, 55, 58, 68, 60, 59, 60, /* 240 */ 58, 58, 60, 60, 92, 63, 94, 95, 72, 3, /* 250 */ 74, 75, 6, 100, 60, 102, 103, 76, 55, 78, /* 260 */ 79, 60, 60, 60, 108, 55, 110, 111, 60, 108, /* 270 */ 60, 110, 111, 56, 56, 60, 7, 60, 60, 58, /* 280 */ 57, 60, 57, 60, 57, 60, 55, 60, 55, 55, /* 290 */ 55, 60, 56, 60, 60, 60, 60, 56, 56, 56, /* 300 */ 56, 60, 60, 60, 60, 58, 58, 60, 60, 58, /* 310 */ 58, 60, 60, 57, 57, 57, 60, 60, 60, 60, /* 320 */ 55, 57, 55, 68, 60, 60, 58, 60, 60, 56, /* 330 */ 58, 60, 60, 60, 4, 4, 6, 6, 60, 60, /* 340 */ 70, 60, 7, 3, 70, 7, 71, 71, 7, 69, /* 350 */ 73, 69, 3, 7, 68, 3, 3, 7, 3, 70, /* 360 */ 3, 7, 60, 71, 81, 80, 60, 69, 81, 85, /* 370 */ 71, 68, 84, 77, 70, 85, 7, 82, 87, 86, /* 380 */ 83, 87, 82, 64, 83, 3, 59, 64, 60, 60, /* 390 */ 7, 66, 3, 60, 62, 7, 60, 60, 3, 3, /* 400 */ 66, 89, 3, 60, 60, 63, 67, 60, 60, 7, /* 410 */ 7, 60, 67, 96, 3, 7, 60, 96, 98, 3, /* 420 */ 98, 61, 7, 99, 65, 3, 65, 69, 3, 3, /* 430 */ 7, 7, 106, 3, 72, 7, 7, 74, 3, 75, /* 440 */ 73, 3, 116, 73, 7, 3, 7, 3, 3, 76, /* 450 */ 3, 3, 116, 7, 80, 78, 116, 3, 3, 93, /* 460 */ 84, 116, 77, 79, 99, 97, 86, 77, 97, 72, /* 470 */ 76, 3, 72, 116, 116, 116, 104, 116, 7, 104, /* 480 */ 76, 88, 116, 3, 106, 3, 107, 101, 107, 3, /* 490 */ 92, 116, 105, 116, 116, 116, 105, 116, 116, 116, /* 500 */ 116, 100, 116, 116, 112, 116, 116, 74, 3, 116, /* 510 */ 74, 116, 78, 116, 116, 116, 116, 112, 112, 112, /* 520 */ 116, 112, 112, 116, 112, 108, 112, 114, 116, 78, /* 530 */ 112, 112, 112, 112, 94, 108, 3, 7, 116, 90, /* 540 */ 116, 116, 116, 112, 112, 116, 116, 116, 116, 116, /* 550 */ 116, 116, 102, 116, 75, 114, 79, 116, 1, 116, /* 560 */ 75, 116, 3, 116, 116, 4, 114, 79, 116, 3, /* 570 */ 114, 110, 114, 114, 114, 91, 95, 114, 114, 114, /* 580 */ 114, 114, 110, 114, 114, 4, 4, 4, 115, 4, /* 590 */ 103, 7, 4, 7, 7, 4, 7, 4, 4, 7, /* 600 */ 116, 4, 7, 7, 115, 115, 115, 4, 115, 7, /* 610 */ 3, 7, 115, 7, 4, 7, 4, 115, 3, 111, /* 620 */ 7, 7, 4, 7, 115, 4, 115, 7, 115, 7, /* 630 */ 4, 4, 109, 115, 115, 115, 111, 115, 4, 113, /* 640 */ 113, 113, 4, 4, 113, 113, 109, 113, 113, 113, /* 650 */ 4, 113, 4, 113, 4, 4, 4, 113, 113, 4, /* 660 */ 4, 4, 4, 4, 109, 4, 113, 4, 4, 113, /* 670 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, /* 680 */ 4, 4, 4, 4, 4, 4, 4, 4, 3, 116, /* 690 */ 4, 4, 4, 4, 116, 4, 4, 4, 4, 116, /* 700 */ 4, 4, 4, 4, 116, 4, }; #define YY_SHIFT_USE_DFLT (-1) #define YY_SHIFT_MAX 334 static const short yy_shift_ofst[] = { /* 0 */ -1, 50, 68, 48, 91, 94, 109, 112, 127, 130, /* 10 */ 66, 142, 83, 83, 83, 180, 193, 216, 246, 71, /* 20 */ 95, 115, 146, 147, 71, 151, 95, 159, 159, 83, /* 30 */ 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, /* 40 */ 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, /* 50 */ 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, /* 60 */ 83, 330, 331, 83, 83, 83, 83, 83, 83, 211, /* 70 */ 211, 83, 83, 269, 269, 83, 83, 83, 335, 335, /* 80 */ 340, 338, 338, 341, 349, 211, 341, 346, 352, 269, /* 90 */ 346, 350, 353, 335, 350, 355, 357, 354, 357, 338, /* 100 */ 354, 83, 83, 211, 269, 335, 369, 382, 83, 83, /* 110 */ 369, 383, 389, 83, 83, 83, 383, 388, 395, 83, /* 120 */ 83, 83, 83, 388, 396, 83, 83, 83, 338, 402, /* 130 */ 399, 402, 403, 411, 403, 408, 416, 408, 415, 422, /* 140 */ 415, 425, 340, 423, 340, 423, 424, 426, 349, 424, /* 150 */ 428, 430, 352, 428, 429, 435, 353, 429, 438, 355, /* 160 */ 437, 355, 437, 439, 411, 426, 442, 444, 411, 445, /* 170 */ 426, 439, 439, 439, 439, 439, 439, 447, 439, 439, /* 180 */ 439, 439, 439, 447, 439, 439, 446, 416, 430, 448, /* 190 */ 454, 416, 455, 430, 446, 446, 446, 446, 446, 446, /* 200 */ 468, 446, 446, 446, 446, 446, 446, 468, 446, 471, /* 210 */ 422, 435, 480, 482, 422, 486, 435, 471, 471, 471, /* 220 */ 471, 471, 471, 505, 471, 471, 471, 471, 471, 471, /* 230 */ 505, 471, 533, 530, 530, 530, 530, 530, 530, 530, /* 240 */ 533, 530, 530, 530, 530, 530, 530, 533, 530, 557, /* 250 */ 559, 561, 581, 582, 566, 583, 584, 585, 586, 588, /* 260 */ 587, 591, 589, 593, 594, 592, 595, 596, 597, 603, /* 270 */ 602, 604, 606, 610, 612, 608, 613, 614, 618, 621, /* 280 */ 616, 620, 622, 626, 627, 634, 638, 639, 646, 648, /* 290 */ 650, 651, 652, 655, 656, 657, 658, 659, 661, 663, /* 300 */ 664, 666, 667, 668, 669, 607, 670, 671, 672, 673, /* 310 */ 674, 675, 676, 615, 677, 678, 679, 680, 681, 682, /* 320 */ 683, 685, 686, 687, 688, 689, 691, 692, 693, 694, /* 330 */ 696, 697, 698, 699, 701, }; #define YY_REDUCE_USE_DFLT (-24) #define YY_REDUCE_MAX 248 static const short yy_reduce_ofst[] = { /* 0 */ 51, -23, 5, 32, 133, 138, 136, 154, 149, 160, /* 10 */ 158, 164, 165, 171, 177, -4, 179, 96, 182, 41, /* 20 */ 124, 144, 43, 152, 176, 153, 181, 156, 161, 40, /* 30 */ 203, 210, 217, 218, 183, 221, 223, 225, 227, 231, /* 40 */ 233, 234, 235, 236, 241, 242, 243, 247, 248, 251, /* 50 */ 252, 256, 257, 258, 264, 265, 244, 268, 267, 273, /* 60 */ 272, 76, 145, 194, 201, 202, 208, 215, 259, 168, /* 70 */ 255, 271, 278, 270, 274, 279, 281, 202, 275, 276, /* 80 */ 277, 280, 282, 283, 285, 286, 287, 284, 288, 289, /* 90 */ 290, 291, 293, 292, 294, 296, 295, 297, 300, 298, /* 100 */ 301, 302, 306, 303, 304, 299, 319, 327, 328, 329, /* 110 */ 323, 325, 332, 333, 336, 337, 334, 339, 342, 343, /* 120 */ 344, 347, 145, 345, 312, 348, 351, 356, 358, 359, /* 130 */ 360, 361, 317, 362, 321, 320, 363, 322, 324, 364, /* 140 */ 365, 366, 367, 368, 370, 371, 372, 373, 374, 375, /* 150 */ 326, 377, 376, 378, 379, 384, 380, 381, 386, 385, /* 160 */ 387, 390, 391, 392, 397, 394, 393, 398, 400, 401, /* 170 */ 404, 405, 406, 407, 409, 410, 412, 417, 414, 418, /* 180 */ 419, 420, 421, 427, 431, 432, 413, 433, 434, 449, /* 190 */ 440, 436, 450, 451, 441, 452, 456, 458, 459, 460, /* 200 */ 461, 463, 464, 465, 466, 467, 469, 472, 470, 473, /* 210 */ 479, 477, 484, 481, 485, 487, 488, 489, 490, 491, /* 220 */ 493, 497, 502, 508, 509, 511, 513, 518, 519, 520, /* 230 */ 525, 522, 523, 526, 527, 528, 531, 532, 534, 535, /* 240 */ 537, 536, 538, 540, 544, 545, 553, 555, 556, }; static const YYACTIONTYPE yy_default[] = { /* 0 */ 509, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 10 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 20 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 30 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 40 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 50 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 60 */ 707, 707, 707, 707, 550, 552, 707, 707, 707, 563, /* 70 */ 563, 707, 707, 567, 567, 707, 707, 707, 569, 569, /* 80 */ 707, 565, 565, 588, 707, 563, 588, 594, 707, 567, /* 90 */ 594, 597, 707, 569, 597, 707, 707, 591, 707, 565, /* 100 */ 591, 707, 707, 563, 567, 569, 555, 707, 707, 707, /* 110 */ 555, 559, 707, 707, 707, 707, 559, 561, 707, 707, /* 120 */ 707, 707, 707, 561, 707, 707, 707, 707, 565, 557, /* 130 */ 707, 557, 616, 707, 616, 622, 707, 622, 625, 707, /* 140 */ 625, 707, 707, 619, 707, 619, 632, 707, 707, 632, /* 150 */ 638, 707, 707, 638, 641, 707, 707, 641, 707, 707, /* 160 */ 635, 707, 635, 654, 707, 707, 707, 707, 707, 707, /* 170 */ 707, 654, 654, 654, 654, 654, 654, 707, 654, 654, /* 180 */ 654, 654, 654, 707, 654, 654, 684, 707, 707, 707, /* 190 */ 707, 707, 707, 707, 684, 684, 684, 684, 684, 684, /* 200 */ 707, 684, 684, 684, 684, 684, 684, 707, 684, 699, /* 210 */ 707, 707, 707, 707, 707, 707, 707, 699, 699, 699, /* 220 */ 699, 699, 699, 707, 699, 699, 699, 699, 699, 699, /* 230 */ 707, 699, 707, 669, 669, 669, 669, 669, 669, 669, /* 240 */ 707, 669, 669, 669, 669, 669, 669, 707, 669, 707, /* 250 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 260 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 270 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 280 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 290 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 300 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 310 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 320 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, /* 330 */ 707, 707, 707, 707, 707, 510, 511, 512, 513, 514, /* 340 */ 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, /* 350 */ 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, /* 360 */ 535, 536, 537, 538, 539, 540, 541, 542, 543, 545, /* 370 */ 553, 554, 544, 551, 571, 573, 574, 550, 564, 575, /* 380 */ 552, 568, 577, 570, 578, 572, 566, 576, 579, 581, /* 390 */ 582, 583, 587, 589, 585, 593, 595, 586, 596, 598, /* 400 */ 580, 584, 590, 592, 599, 601, 602, 546, 548, 549, /* 410 */ 603, 605, 606, 556, 607, 560, 609, 562, 610, 600, /* 420 */ 547, 604, 558, 608, 611, 613, 614, 615, 617, 621, /* 430 */ 623, 624, 626, 612, 618, 620, 627, 629, 630, 631, /* 440 */ 633, 637, 639, 640, 642, 628, 634, 636, 643, 645, /* 450 */ 646, 647, 655, 656, 657, 658, 659, 660, 648, 649, /* 460 */ 650, 651, 652, 653, 661, 683, 685, 686, 687, 688, /* 470 */ 689, 690, 677, 678, 679, 680, 681, 682, 691, 698, /* 480 */ 700, 701, 702, 703, 704, 705, 692, 693, 694, 695, /* 490 */ 696, 697, 706, 644, 662, 670, 671, 672, 673, 674, /* 500 */ 675, 676, 663, 664, 665, 666, 667, 668, }; #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0])) /* The next table maps tokens into fallback tokens. If a construct ** like the following: ** ** %fallback ID X Y Z. ** ** appears in the grammar, then ID becomes a fallback token for X, Y, ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser ** but it does not parse, the type of the token is changed to ID and ** the parse is retried before an error is thrown. */ #ifdef YYFALLBACK static const YYCODETYPE yyFallback[] = { }; #endif /* YYFALLBACK */ /* The following structure represents a single element of the ** parser's stack. Information stored includes: ** ** + The state number for the parser at this level of the stack. ** ** + The value of the token stored at this level of the stack. ** (In other words, the "major" token.) ** ** + The semantic value stored at this level of the stack. This is ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. */ struct yyStackEntry { YYACTIONTYPE stateno; /* The state-number */ YYCODETYPE major; /* The major token value. This is the code ** number for the token at this stack level */ YYMINORTYPE minor; /* The user-supplied minor token value. This ** is the value of the token */ }; typedef struct yyStackEntry yyStackEntry; /* The state of the parser is completely contained in an instance of ** the following structure */ struct yyParser { int yyidx; /* Index of top element in stack */ #ifdef YYTRACKMAXSTACKDEPTH int yyidxMax; /* Maximum value of yyidx */ #endif int yyerrcnt; /* Shifts left before out of the error */ ParseARG_SDECL /* A place to hold %extra_argument */ #if YYSTACKDEPTH<=0 int yystksz; /* Current side of the stack */ yyStackEntry *yystack; /* The parser's stack */ #else yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ #endif }; typedef struct yyParser yyParser; #ifndef NDEBUG #include <stdio.h> static FILE *yyTraceFILE = 0; static char *yyTracePrompt = 0; #endif /* NDEBUG */ #ifndef NDEBUG /* ** Turn parser tracing on by giving a stream to which to write the trace ** and a prompt to preface each trace message. Tracing is turned off ** by making either argument NULL ** ** Inputs: ** <ul> ** <li> A FILE* to which trace output should be written. ** If NULL, then tracing is turned off. ** <li> A prefix string written at the beginning of every ** line of trace output. If NULL, then tracing is ** turned off. ** </ul> ** ** Outputs: ** None. */ void ParseTrace (FILE * TraceFILE, char *zTracePrompt) { yyTraceFILE = TraceFILE; yyTracePrompt = zTracePrompt; if (yyTraceFILE == 0) yyTracePrompt = 0; else if (yyTracePrompt == 0) yyTraceFILE = 0; } #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing shifts, the names of all terminals and nonterminals ** are required. The following table supplies these names */ static const char *const yyTokenName[] = { "$", "EWKT_NEWLINE", "EWKT_POINT", "EWKT_OPEN_BRACKET", "EWKT_CLOSE_BRACKET", "EWKT_POINT_M", "EWKT_NUM", "EWKT_COMMA", "EWKT_LINESTRING", "EWKT_LINESTRING_M", "EWKT_POLYGON", "EWKT_POLYGON_M", "EWKT_MULTIPOINT", "EWKT_MULTIPOINT_M", "EWKT_MULTILINESTRING", "EWKT_MULTILINESTRING_M", "EWKT_MULTIPOLYGON", "EWKT_MULTIPOLYGON_M", "EWKT_GEOMETRYCOLLECTION", "EWKT_GEOMETRYCOLLECTION_M", "error", "main", "in", "state", "program", "geo_text", "geo_textm", "point", "pointz", "pointzm", "linestring", "linestringz", "linestringzm", "polygon", "polygonz", "polygonzm", "multipoint", "multipointz", "multipointzm", "multilinestring", "multilinestringz", "multilinestringzm", "multipolygon", "multipolygonz", "multipolygonzm", "geocoll", "geocollz", "geocollzm", "pointm", "linestringm", "polygonm", "multipointm", "multilinestringm", "multipolygonm", "geocollm", "point_coordxy", "point_coordxyz", "point_coordxym", "point_coordxyzm", "point_brkt_coordxy", "coord", "point_brkt_coordxym", "point_brkt_coordxyz", "point_brkt_coordxyzm", "extra_brkt_pointsxy", "extra_brkt_pointsxym", "extra_brkt_pointsxyz", "extra_brkt_pointsxyzm", "extra_pointsxy", "extra_pointsxym", "extra_pointsxyz", "extra_pointsxyzm", "linestring_text", "linestring_textm", "linestring_textz", "linestring_textzm", "polygon_text", "polygon_textm", "polygon_textz", "polygon_textzm", "ring", "extra_rings", "ringm", "extra_ringsm", "ringz", "extra_ringsz", "ringzm", "extra_ringszm", "multipoint_text", "multipoint_textm", "multipoint_textz", "multipoint_textzm", "multilinestring_text", "multilinestring_textm", "multilinestring_textz", "multilinestring_textzm", "multilinestring_text2", "multilinestring_textm2", "multilinestring_textz2", "multilinestring_textzm2", "multipolygon_text", "multipolygon_textm", "multipolygon_textz", "multipolygon_textzm", "multipolygon_text2", "multipolygon_textm2", "multipolygon_textz2", "multipolygon_textzm2", "geocoll_text", "geocoll_textm", "geocoll_textz", "geocoll_textzm", "geocoll_text2", "geocoll_textm2", "geocoll_textz2", "geocoll_textzm2", }; #endif /* NDEBUG */ #ifndef NDEBUG /* For tracing reduce actions, the names of all rules are required. */ static const char *const yyRuleName[] = { /* 0 */ "main ::= in", /* 1 */ "in ::=", /* 2 */ "in ::= in state EWKT_NEWLINE", /* 3 */ "state ::= program", /* 4 */ "program ::= geo_text", /* 5 */ "program ::= geo_textm", /* 6 */ "geo_text ::= point", /* 7 */ "geo_text ::= pointz", /* 8 */ "geo_text ::= pointzm", /* 9 */ "geo_text ::= linestring", /* 10 */ "geo_text ::= linestringz", /* 11 */ "geo_text ::= linestringzm", /* 12 */ "geo_text ::= polygon", /* 13 */ "geo_text ::= polygonz", /* 14 */ "geo_text ::= polygonzm", /* 15 */ "geo_text ::= multipoint", /* 16 */ "geo_text ::= multipointz", /* 17 */ "geo_text ::= multipointzm", /* 18 */ "geo_text ::= multilinestring", /* 19 */ "geo_text ::= multilinestringz", /* 20 */ "geo_text ::= multilinestringzm", /* 21 */ "geo_text ::= multipolygon", /* 22 */ "geo_text ::= multipolygonz", /* 23 */ "geo_text ::= multipolygonzm", /* 24 */ "geo_text ::= geocoll", /* 25 */ "geo_text ::= geocollz", /* 26 */ "geo_text ::= geocollzm", /* 27 */ "geo_textm ::= pointm", /* 28 */ "geo_textm ::= linestringm", /* 29 */ "geo_textm ::= polygonm", /* 30 */ "geo_textm ::= multipointm", /* 31 */ "geo_textm ::= multilinestringm", /* 32 */ "geo_textm ::= multipolygonm", /* 33 */ "geo_textm ::= geocollm", /* 34 */ "point ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxy EWKT_CLOSE_BRACKET", /* 35 */ "pointz ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyz EWKT_CLOSE_BRACKET", /* 36 */ "pointm ::= EWKT_POINT_M EWKT_OPEN_BRACKET point_coordxym EWKT_CLOSE_BRACKET", /* 37 */ "pointzm ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyzm EWKT_CLOSE_BRACKET", /* 38 */ "point_brkt_coordxy ::= EWKT_OPEN_BRACKET coord coord EWKT_CLOSE_BRACKET", /* 39 */ "point_brkt_coordxym ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET", /* 40 */ "point_brkt_coordxyz ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET", /* 41 */ "point_brkt_coordxyzm ::= EWKT_OPEN_BRACKET coord coord coord coord EWKT_CLOSE_BRACKET", /* 42 */ "point_coordxy ::= coord coord", /* 43 */ "point_coordxym ::= coord coord coord", /* 44 */ "point_coordxyz ::= coord coord coord", /* 45 */ "point_coordxyzm ::= coord coord coord coord", /* 46 */ "coord ::= EWKT_NUM", /* 47 */ "extra_brkt_pointsxy ::=", /* 48 */ "extra_brkt_pointsxy ::= EWKT_COMMA point_brkt_coordxy extra_brkt_pointsxy", /* 49 */ "extra_brkt_pointsxym ::=", /* 50 */ "extra_brkt_pointsxym ::= EWKT_COMMA point_brkt_coordxym extra_brkt_pointsxym", /* 51 */ "extra_brkt_pointsxyz ::=", /* 52 */ "extra_brkt_pointsxyz ::= EWKT_COMMA point_brkt_coordxyz extra_brkt_pointsxyz", /* 53 */ "extra_brkt_pointsxyzm ::=", /* 54 */ "extra_brkt_pointsxyzm ::= EWKT_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm", /* 55 */ "extra_pointsxy ::=", /* 56 */ "extra_pointsxy ::= EWKT_COMMA point_coordxy extra_pointsxy", /* 57 */ "extra_pointsxym ::=", /* 58 */ "extra_pointsxym ::= EWKT_COMMA point_coordxym extra_pointsxym", /* 59 */ "extra_pointsxyz ::=", /* 60 */ "extra_pointsxyz ::= EWKT_COMMA point_coordxyz extra_pointsxyz", /* 61 */ "extra_pointsxyzm ::=", /* 62 */ "extra_pointsxyzm ::= EWKT_COMMA point_coordxyzm extra_pointsxyzm", /* 63 */ "linestring ::= EWKT_LINESTRING linestring_text", /* 64 */ "linestringm ::= EWKT_LINESTRING_M linestring_textm", /* 65 */ "linestringz ::= EWKT_LINESTRING linestring_textz", /* 66 */ "linestringzm ::= EWKT_LINESTRING linestring_textzm", /* 67 */ "linestring_text ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET", /* 68 */ "linestring_textm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET", /* 69 */ "linestring_textz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET", /* 70 */ "linestring_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET", /* 71 */ "polygon ::= EWKT_POLYGON polygon_text", /* 72 */ "polygonm ::= EWKT_POLYGON_M polygon_textm", /* 73 */ "polygonz ::= EWKT_POLYGON polygon_textz", /* 74 */ "polygonzm ::= EWKT_POLYGON polygon_textzm", /* 75 */ "polygon_text ::= EWKT_OPEN_BRACKET ring extra_rings EWKT_CLOSE_BRACKET", /* 76 */ "polygon_textm ::= EWKT_OPEN_BRACKET ringm extra_ringsm EWKT_CLOSE_BRACKET", /* 77 */ "polygon_textz ::= EWKT_OPEN_BRACKET ringz extra_ringsz EWKT_CLOSE_BRACKET", /* 78 */ "polygon_textzm ::= EWKT_OPEN_BRACKET ringzm extra_ringszm EWKT_CLOSE_BRACKET", /* 79 */ "ring ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET", /* 80 */ "extra_rings ::=", /* 81 */ "extra_rings ::= EWKT_COMMA ring extra_rings", /* 82 */ "ringm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET", /* 83 */ "extra_ringsm ::=", /* 84 */ "extra_ringsm ::= EWKT_COMMA ringm extra_ringsm", /* 85 */ "ringz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET", /* 86 */ "extra_ringsz ::=", /* 87 */ "extra_ringsz ::= EWKT_COMMA ringz extra_ringsz", /* 88 */ "ringzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET", /* 89 */ "extra_ringszm ::=", /* 90 */ "extra_ringszm ::= EWKT_COMMA ringzm extra_ringszm", /* 91 */ "multipoint ::= EWKT_MULTIPOINT multipoint_text", /* 92 */ "multipointm ::= EWKT_MULTIPOINT_M multipoint_textm", /* 93 */ "multipointz ::= EWKT_MULTIPOINT multipoint_textz", /* 94 */ "multipointzm ::= EWKT_MULTIPOINT multipoint_textzm", /* 95 */ "multipoint_text ::= EWKT_OPEN_BRACKET point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET", /* 96 */ "multipoint_textm ::= EWKT_OPEN_BRACKET point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET", /* 97 */ "multipoint_textz ::= EWKT_OPEN_BRACKET point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET", /* 98 */ "multipoint_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET", /* 99 */ "multipoint_text ::= EWKT_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy EWKT_CLOSE_BRACKET", /* 100 */ "multipoint_textm ::= EWKT_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym EWKT_CLOSE_BRACKET", /* 101 */ "multipoint_textz ::= EWKT_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz EWKT_CLOSE_BRACKET", /* 102 */ "multipoint_textzm ::= EWKT_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm EWKT_CLOSE_BRACKET", /* 103 */ "multilinestring ::= EWKT_MULTILINESTRING multilinestring_text", /* 104 */ "multilinestringm ::= EWKT_MULTILINESTRING_M multilinestring_textm", /* 105 */ "multilinestringz ::= EWKT_MULTILINESTRING multilinestring_textz", /* 106 */ "multilinestringzm ::= EWKT_MULTILINESTRING multilinestring_textzm", /* 107 */ "multilinestring_text ::= EWKT_OPEN_BRACKET linestring_text multilinestring_text2 EWKT_CLOSE_BRACKET", /* 108 */ "multilinestring_text2 ::=", /* 109 */ "multilinestring_text2 ::= EWKT_COMMA linestring_text multilinestring_text2", /* 110 */ "multilinestring_textm ::= EWKT_OPEN_BRACKET linestring_textm multilinestring_textm2 EWKT_CLOSE_BRACKET", /* 111 */ "multilinestring_textm2 ::=", /* 112 */ "multilinestring_textm2 ::= EWKT_COMMA linestring_textm multilinestring_textm2", /* 113 */ "multilinestring_textz ::= EWKT_OPEN_BRACKET linestring_textz multilinestring_textz2 EWKT_CLOSE_BRACKET", /* 114 */ "multilinestring_textz2 ::=", /* 115 */ "multilinestring_textz2 ::= EWKT_COMMA linestring_textz multilinestring_textz2", /* 116 */ "multilinestring_textzm ::= EWKT_OPEN_BRACKET linestring_textzm multilinestring_textzm2 EWKT_CLOSE_BRACKET", /* 117 */ "multilinestring_textzm2 ::=", /* 118 */ "multilinestring_textzm2 ::= EWKT_COMMA linestring_textzm multilinestring_textzm2", /* 119 */ "multipolygon ::= EWKT_MULTIPOLYGON multipolygon_text", /* 120 */ "multipolygonm ::= EWKT_MULTIPOLYGON_M multipolygon_textm", /* 121 */ "multipolygonz ::= EWKT_MULTIPOLYGON multipolygon_textz", /* 122 */ "multipolygonzm ::= EWKT_MULTIPOLYGON multipolygon_textzm", /* 123 */ "multipolygon_text ::= EWKT_OPEN_BRACKET polygon_text multipolygon_text2 EWKT_CLOSE_BRACKET", /* 124 */ "multipolygon_text2 ::=", /* 125 */ "multipolygon_text2 ::= EWKT_COMMA polygon_text multipolygon_text2", /* 126 */ "multipolygon_textm ::= EWKT_OPEN_BRACKET polygon_textm multipolygon_textm2 EWKT_CLOSE_BRACKET", /* 127 */ "multipolygon_textm2 ::=", /* 128 */ "multipolygon_textm2 ::= EWKT_COMMA polygon_textm multipolygon_textm2", /* 129 */ "multipolygon_textz ::= EWKT_OPEN_BRACKET polygon_textz multipolygon_textz2 EWKT_CLOSE_BRACKET", /* 130 */ "multipolygon_textz2 ::=", /* 131 */ "multipolygon_textz2 ::= EWKT_COMMA polygon_textz multipolygon_textz2", /* 132 */ "multipolygon_textzm ::= EWKT_OPEN_BRACKET polygon_textzm multipolygon_textzm2 EWKT_CLOSE_BRACKET", /* 133 */ "multipolygon_textzm2 ::=", /* 134 */ "multipolygon_textzm2 ::= EWKT_COMMA polygon_textzm multipolygon_textzm2", /* 135 */ "geocoll ::= EWKT_GEOMETRYCOLLECTION geocoll_text", /* 136 */ "geocollm ::= EWKT_GEOMETRYCOLLECTION_M geocoll_textm", /* 137 */ "geocollz ::= EWKT_GEOMETRYCOLLECTION geocoll_textz", /* 138 */ "geocollzm ::= EWKT_GEOMETRYCOLLECTION geocoll_textzm", /* 139 */ "geocoll_text ::= EWKT_OPEN_BRACKET point geocoll_text2 EWKT_CLOSE_BRACKET", /* 140 */ "geocoll_text ::= EWKT_OPEN_BRACKET linestring geocoll_text2 EWKT_CLOSE_BRACKET", /* 141 */ "geocoll_text ::= EWKT_OPEN_BRACKET polygon geocoll_text2 EWKT_CLOSE_BRACKET", /* 142 */ "geocoll_text ::= EWKT_OPEN_BRACKET multipoint geocoll_text2 EWKT_CLOSE_BRACKET", /* 143 */ "geocoll_text ::= EWKT_OPEN_BRACKET multilinestring geocoll_text2 EWKT_CLOSE_BRACKET", /* 144 */ "geocoll_text ::= EWKT_OPEN_BRACKET multipolygon geocoll_text2 EWKT_CLOSE_BRACKET", /* 145 */ "geocoll_text ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2 EWKT_CLOSE_BRACKET", /* 146 */ "geocoll_text2 ::=", /* 147 */ "geocoll_text2 ::= EWKT_COMMA point geocoll_text2", /* 148 */ "geocoll_text2 ::= EWKT_COMMA linestring geocoll_text2", /* 149 */ "geocoll_text2 ::= EWKT_COMMA polygon geocoll_text2", /* 150 */ "geocoll_text2 ::= EWKT_COMMA multipoint geocoll_text2", /* 151 */ "geocoll_text2 ::= EWKT_COMMA multilinestring geocoll_text2", /* 152 */ "geocoll_text2 ::= EWKT_COMMA multipolygon geocoll_text2", /* 153 */ "geocoll_text2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2", /* 154 */ "geocoll_textm ::= EWKT_OPEN_BRACKET pointm geocoll_textm2 EWKT_CLOSE_BRACKET", /* 155 */ "geocoll_textm ::= EWKT_OPEN_BRACKET linestringm geocoll_textm2 EWKT_CLOSE_BRACKET", /* 156 */ "geocoll_textm ::= EWKT_OPEN_BRACKET polygonm geocoll_textm2 EWKT_CLOSE_BRACKET", /* 157 */ "geocoll_textm ::= EWKT_OPEN_BRACKET multipointm geocoll_textm2 EWKT_CLOSE_BRACKET", /* 158 */ "geocoll_textm ::= EWKT_OPEN_BRACKET multilinestringm geocoll_textm2 EWKT_CLOSE_BRACKET", /* 159 */ "geocoll_textm ::= EWKT_OPEN_BRACKET multipolygonm geocoll_textm2 EWKT_CLOSE_BRACKET", /* 160 */ "geocoll_textm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 EWKT_CLOSE_BRACKET", /* 161 */ "geocoll_textm2 ::=", /* 162 */ "geocoll_textm2 ::= EWKT_COMMA pointm geocoll_textm2", /* 163 */ "geocoll_textm2 ::= EWKT_COMMA linestringm geocoll_textm2", /* 164 */ "geocoll_textm2 ::= EWKT_COMMA polygonm geocoll_textm2", /* 165 */ "geocoll_textm2 ::= EWKT_COMMA multipointm geocoll_textm2", /* 166 */ "geocoll_textm2 ::= EWKT_COMMA multilinestringm geocoll_textm2", /* 167 */ "geocoll_textm2 ::= EWKT_COMMA multipolygonm geocoll_textm2", /* 168 */ "geocoll_textm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2", /* 169 */ "geocoll_textz ::= EWKT_OPEN_BRACKET pointz geocoll_textz2 EWKT_CLOSE_BRACKET", /* 170 */ "geocoll_textz ::= EWKT_OPEN_BRACKET linestringz geocoll_textz2 EWKT_CLOSE_BRACKET", /* 171 */ "geocoll_textz ::= EWKT_OPEN_BRACKET polygonz geocoll_textz2 EWKT_CLOSE_BRACKET", /* 172 */ "geocoll_textz ::= EWKT_OPEN_BRACKET multipointz geocoll_textz2 EWKT_CLOSE_BRACKET", /* 173 */ "geocoll_textz ::= EWKT_OPEN_BRACKET multilinestringz geocoll_textz2 EWKT_CLOSE_BRACKET", /* 174 */ "geocoll_textz ::= EWKT_OPEN_BRACKET multipolygonz geocoll_textz2 EWKT_CLOSE_BRACKET", /* 175 */ "geocoll_textz ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2 EWKT_CLOSE_BRACKET", /* 176 */ "geocoll_textz2 ::=", /* 177 */ "geocoll_textz2 ::= EWKT_COMMA pointz geocoll_textz2", /* 178 */ "geocoll_textz2 ::= EWKT_COMMA linestringz geocoll_textz2", /* 179 */ "geocoll_textz2 ::= EWKT_COMMA polygonz geocoll_textz2", /* 180 */ "geocoll_textz2 ::= EWKT_COMMA multipointz geocoll_textz2", /* 181 */ "geocoll_textz2 ::= EWKT_COMMA multilinestringz geocoll_textz2", /* 182 */ "geocoll_textz2 ::= EWKT_COMMA multipolygonz geocoll_textz2", /* 183 */ "geocoll_textz2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2", /* 184 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET pointzm geocoll_textzm2 EWKT_CLOSE_BRACKET", /* 185 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET linestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET", /* 186 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET polygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET", /* 187 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET multipointzm geocoll_textzm2 EWKT_CLOSE_BRACKET", /* 188 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET multilinestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET", /* 189 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET multipolygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET", /* 190 */ "geocoll_textzm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2 EWKT_CLOSE_BRACKET", /* 191 */ "geocoll_textzm2 ::=", /* 192 */ "geocoll_textzm2 ::= EWKT_COMMA pointzm geocoll_textzm2", /* 193 */ "geocoll_textzm2 ::= EWKT_COMMA linestringzm geocoll_textzm2", /* 194 */ "geocoll_textzm2 ::= EWKT_COMMA polygonzm geocoll_textzm2", /* 195 */ "geocoll_textzm2 ::= EWKT_COMMA multipointzm geocoll_textzm2", /* 196 */ "geocoll_textzm2 ::= EWKT_COMMA multilinestringzm geocoll_textzm2", /* 197 */ "geocoll_textzm2 ::= EWKT_COMMA multipolygonzm geocoll_textzm2", /* 198 */ "geocoll_textzm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2", }; #endif /* NDEBUG */ #if YYSTACKDEPTH<=0 /* ** Try to increase the size of the parser stack. */ static void yyGrowStack (yyParser * p) { int newSize; yyStackEntry *pNew; newSize = p->yystksz * 2 + 100; pNew = realloc (p->yystack, newSize * sizeof (pNew[0])); if (pNew) { p->yystack = pNew; p->yystksz = newSize; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack grows to %d entries!\n", yyTracePrompt, p->yystksz); } #endif } } #endif /* ** This function allocates a new parser. ** The only argument is a pointer to a function which works like ** malloc. ** ** Inputs: ** A pointer to the function used to allocate memory. ** ** Outputs: ** A pointer to a parser. This pointer is used in subsequent calls ** to Parse and ParseFree. */ void * ParseAlloc (void *(*mallocProc) (size_t)) { yyParser *pParser; pParser = (yyParser *) (*mallocProc) ((size_t) sizeof (yyParser)); if (pParser) { pParser->yyidx = -1; #ifdef YYTRACKMAXSTACKDEPTH pParser->yyidxMax = 0; #endif #if YYSTACKDEPTH<=0 pParser->yystack = NULL; pParser->yystksz = 0; yyGrowStack (pParser); #endif } return pParser; } /* The following function deletes the value associated with a ** symbol. The symbol can be either a terminal or nonterminal. ** "yymajor" is the symbol code, and "yypminor" is a pointer to ** the value. */ static void yy_destructor (yyParser * yypParser, /* The parser */ YYCODETYPE yymajor, /* Type code for object to destroy */ YYMINORTYPE * yypminor /* The object to be destroyed */ ) { ParseARG_FETCH; switch (yymajor) { /* Here is inserted the actions which take place when a ** terminal or non-terminal is destroyed. This can happen ** when the symbol is popped from the stack during a ** reduce or during error processing or when a parser is ** being destroyed before it is finished parsing. ** ** Note: during a reduce, the only symbols destroyed are those ** which appear on the RHS of the rule, but which are not used ** inside the C code. */ default: break; /* If no destructor action specified: do nothing */ } } /* ** Pop the parser's stack once. ** ** If there is a destructor routine associated with the token which ** is popped from the stack, then call it. ** ** Return the major token number for the symbol popped. */ static int yy_pop_parser_stack (yyParser * pParser) { YYCODETYPE yymajor; yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; if (pParser->yyidx < 0) return 0; #ifndef NDEBUG if (yyTraceFILE && pParser->yyidx >= 0) { fprintf (yyTraceFILE, "%sPopping %s\n", yyTracePrompt, yyTokenName[yytos->major]); } #endif yymajor = yytos->major; yy_destructor (pParser, yymajor, &yytos->minor); pParser->yyidx--; return yymajor; } /* ** Deallocate and destroy a parser. Destructors are all called for ** all stack elements before shutting the parser down. ** ** Inputs: ** <ul> ** <li> A pointer to the parser. This should be a pointer ** obtained from ParseAlloc. ** <li> A pointer to a function used to reclaim memory obtained ** from malloc. ** </ul> */ void ParseFree (void *p, /* The parser to be deleted */ void (*freeProc) (void *) /* Function used to reclaim memory */ ) { yyParser *pParser = (yyParser *) p; if (pParser == 0) return; while (pParser->yyidx >= 0) yy_pop_parser_stack (pParser); #if YYSTACKDEPTH<=0 free (pParser->yystack); #endif (*freeProc) ((void *) pParser); } /* ** Return the peak depth of the stack for a parser. */ #ifdef YYTRACKMAXSTACKDEPTH int ParseStackPeak (void *p) { yyParser *pParser = (yyParser *) p; return pParser->yyidxMax; } #endif /* ** Find the appropriate action for a parser given the terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_shift_action (yyParser * pParser, /* The parser */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; int stateno = pParser->yystack[pParser->yyidx].stateno; if (stateno > YY_SHIFT_MAX || (i = yy_shift_ofst[stateno]) == YY_SHIFT_USE_DFLT) { return yy_default[stateno]; } assert (iLookAhead != YYNOCODE); i += iLookAhead; if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { if (iLookAhead > 0) { #ifdef YYFALLBACK YYCODETYPE iFallback; /* Fallback token */ if (iLookAhead < sizeof (yyFallback) / sizeof (yyFallback[0]) && (iFallback = yyFallback[iLookAhead]) != 0) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFALLBACK %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); } #endif return yy_find_shift_action (pParser, iFallback); } #endif #ifdef YYWILDCARD { int j = i - iLookAhead + YYWILDCARD; if (j >= 0 && j < YY_SZ_ACTTAB && yy_lookahead[j] == YYWILDCARD) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sWILDCARD %s => %s\n", yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); } #endif /* NDEBUG */ return yy_action[j]; } } #endif /* YYWILDCARD */ } return yy_default[stateno]; } else { return yy_action[i]; } } /* ** Find the appropriate action for a parser given the non-terminal ** look-ahead token iLookAhead. ** ** If the look-ahead token is YYNOCODE, then check to see if the action is ** independent of the look-ahead. If it is, return the action, otherwise ** return YY_NO_ACTION. */ static int yy_find_reduce_action (int stateno, /* Current state number */ YYCODETYPE iLookAhead /* The look-ahead token */ ) { int i; #ifdef YYERRORSYMBOL if (stateno > YY_REDUCE_MAX) { return yy_default[stateno]; } #else assert (stateno <= YY_REDUCE_MAX); #endif i = yy_reduce_ofst[stateno]; assert (i != YY_REDUCE_USE_DFLT); assert (iLookAhead != YYNOCODE); i += iLookAhead; #ifdef YYERRORSYMBOL if (i < 0 || i >= YY_SZ_ACTTAB || yy_lookahead[i] != iLookAhead) { return yy_default[stateno]; } #else assert (i >= 0 && i < YY_SZ_ACTTAB); assert (yy_lookahead[i] == iLookAhead); #endif return yy_action[i]; } /* ** The following routine is called if the stack overflows. */ static void yyStackOverflow (yyParser * yypParser, YYMINORTYPE * yypMinor) { ParseARG_FETCH; yypParser->yyidx--; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will execute if the parser ** stack every overflows */ spatialite_e ("Giving up. Parser stack overflow\n"); ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ } /* ** Perform a shift action. */ static void yy_shift (yyParser * yypParser, /* The parser to be shifted */ int yyNewState, /* The new state to shift in */ int yyMajor, /* The major token to shift in */ YYMINORTYPE * yypMinor /* Pointer to the minor token to shift in */ ) { yyStackEntry *yytos; yypParser->yyidx++; #ifdef YYTRACKMAXSTACKDEPTH if (yypParser->yyidx > yypParser->yyidxMax) { yypParser->yyidxMax = yypParser->yyidx; } #endif #if YYSTACKDEPTH>0 if (yypParser->yyidx >= YYSTACKDEPTH) { yyStackOverflow (yypParser, yypMinor); return; } #else if (yypParser->yyidx >= yypParser->yystksz) { yyGrowStack (yypParser); if (yypParser->yyidx >= yypParser->yystksz) { yyStackOverflow (yypParser, yypMinor); return; } } #endif yytos = &yypParser->yystack[yypParser->yyidx]; yytos->stateno = (YYACTIONTYPE) yyNewState; yytos->major = (YYCODETYPE) yyMajor; yytos->minor = *yypMinor; #ifndef NDEBUG if (yyTraceFILE && yypParser->yyidx > 0) { int i; fprintf (yyTraceFILE, "%sShift %d\n", yyTracePrompt, yyNewState); fprintf (yyTraceFILE, "%sStack:", yyTracePrompt); for (i = 1; i <= yypParser->yyidx; i++) fprintf (yyTraceFILE, " %s", yyTokenName[yypParser->yystack[i].major]); fprintf (yyTraceFILE, "\n"); } #endif } /* The following table contains information about every rule that ** is used during the reduce. */ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ } yyRuleInfo[] = { { 21, 1}, { 22, 0}, { 22, 3}, { 23, 1}, { 24, 1}, { 24, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 25, 1}, { 26, 1}, { 26, 1}, { 26, 1}, { 26, 1}, { 26, 1}, { 26, 1}, { 26, 1}, { 27, 4}, { 28, 4}, { 48, 4}, { 29, 4}, { 59, 4}, { 61, 5}, { 62, 5}, { 63, 6}, { 55, 2}, { 57, 3}, { 56, 3}, { 58, 4}, { 60, 1}, { 64, 0}, { 64, 3}, { 65, 0}, { 65, 3}, { 66, 0}, { 66, 3}, { 67, 0}, { 67, 3}, { 68, 0}, { 68, 3}, { 69, 0}, { 69, 3}, { 70, 0}, { 70, 3}, { 71, 0}, { 71, 3}, { 30, 2}, { 49, 2}, { 31, 2}, { 32, 2}, { 72, 6}, { 73, 6}, { 74, 6}, { 75, 6}, { 33, 2}, { 50, 2}, { 34, 2}, { 35, 2}, { 76, 4}, { 77, 4}, { 78, 4}, { 79, 4}, { 80, 10}, { 81, 0}, { 81, 3}, { 82, 10}, { 83, 0}, { 83, 3}, { 84, 10}, { 85, 0}, { 85, 3}, { 86, 10}, { 87, 0}, { 87, 3}, { 36, 2}, { 51, 2}, { 37, 2}, { 38, 2}, { 88, 4}, { 89, 4}, { 90, 4}, { 91, 4}, { 88, 4}, { 89, 4}, { 90, 4}, { 91, 4}, { 39, 2}, { 52, 2}, { 40, 2}, { 41, 2}, { 92, 4}, { 96, 0}, { 96, 3}, { 93, 4}, { 97, 0}, { 97, 3}, { 94, 4}, { 98, 0}, { 98, 3}, { 95, 4}, { 99, 0}, { 99, 3}, { 42, 2}, { 53, 2}, { 43, 2}, { 44, 2}, { 100, 4}, { 104, 0}, { 104, 3}, { 101, 4}, { 105, 0}, { 105, 3}, { 102, 4}, { 106, 0}, { 106, 3}, { 103, 4}, { 107, 0}, { 107, 3}, { 45, 2}, { 54, 2}, { 46, 2}, { 47, 2}, { 108, 4}, { 108, 4}, { 108, 4}, { 108, 4}, { 108, 4}, { 108, 4}, { 108, 5}, { 112, 0}, { 112, 3}, { 112, 3}, { 112, 3}, { 112, 3}, { 112, 3}, { 112, 3}, { 112, 4}, { 109, 4}, { 109, 4}, { 109, 4}, { 109, 4}, { 109, 4}, { 109, 4}, { 109, 5}, { 113, 0}, { 113, 3}, { 113, 3}, { 113, 3}, { 113, 3}, { 113, 3}, { 113, 3}, { 113, 4}, { 110, 4}, { 110, 4}, { 110, 4}, { 110, 4}, { 110, 4}, { 110, 4}, { 110, 5}, { 114, 0}, { 114, 3}, { 114, 3}, { 114, 3}, { 114, 3}, { 114, 3}, { 114, 3}, { 114, 4}, { 111, 4}, { 111, 4}, { 111, 4}, { 111, 4}, { 111, 4}, { 111, 4}, { 111, 5}, { 115, 0}, { 115, 3}, { 115, 3}, { 115, 3}, { 115, 3}, { 115, 3}, { 115, 3}, { 115, 4},}; static void yy_accept (yyParser *); /* Forward Declaration */ /* ** Perform a reduce action and the shift that must immediately ** follow the reduce. */ static void yy_reduce (yyParser * yypParser, /* The parser */ int yyruleno /* Number of the rule by which to reduce */ ) { int yygoto; /* The next state */ int yyact; /* The next action */ YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ yyStackEntry *yymsp; /* The top of the parser's stack */ int yysize; /* Amount to pop the stack */ ParseARG_FETCH; yymsp = &yypParser->yystack[yypParser->yyidx]; #ifndef NDEBUG if (yyTraceFILE && yyruleno >= 0 && yyruleno < (int) (sizeof (yyRuleName) / sizeof (yyRuleName[0]))) { fprintf (yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, yyRuleName[yyruleno]); } #endif /* NDEBUG */ /* Silence complaints from purify about yygotominor being uninitialized ** in some cases when it is copied into the stack after the following ** switch. yygotominor is uninitialized when a rule reduces that does ** not set the value of its left-hand side nonterminal. Leaving the ** value of the nonterminal uninitialized is utterly harmless as long ** as the value is never used. So really the only thing this code ** accomplishes is to quieten purify. ** ** 2007-01-16: The wireshark project (www.wireshark.org) reports that ** without this code, their parser segfaults. I'm not sure what there ** parser is doing to make this happen. This is the second bug report ** from wireshark this week. Clearly they are stressing Lemon in ways ** that it has not been previously stressed... (SQLite ticket #2172) */ /*memset(&yygotominor, 0, sizeof(yygotominor)); */ yygotominor = yyzerominor; switch (yyruleno) { /* Beginning here are the reduction cases. A typical example ** follows: ** case 0: ** #line <lineno> <grammarfile> ** { ... } // User supplied code ** #line <lineno> <thisfile> ** break; */ case 6: /* geo_text ::= point */ case 7: /* geo_text ::= pointz */ yytestcase (yyruleno == 7); case 8: /* geo_text ::= pointzm */ yytestcase (yyruleno == 8); case 9: /* geo_text ::= linestring */ yytestcase (yyruleno == 9); case 10: /* geo_text ::= linestringz */ yytestcase (yyruleno == 10); case 11: /* geo_text ::= linestringzm */ yytestcase (yyruleno == 11); case 12: /* geo_text ::= polygon */ yytestcase (yyruleno == 12); case 13: /* geo_text ::= polygonz */ yytestcase (yyruleno == 13); case 14: /* geo_text ::= polygonzm */ yytestcase (yyruleno == 14); case 15: /* geo_text ::= multipoint */ yytestcase (yyruleno == 15); case 16: /* geo_text ::= multipointz */ yytestcase (yyruleno == 16); case 17: /* geo_text ::= multipointzm */ yytestcase (yyruleno == 17); case 18: /* geo_text ::= multilinestring */ yytestcase (yyruleno == 18); case 19: /* geo_text ::= multilinestringz */ yytestcase (yyruleno == 19); case 20: /* geo_text ::= multilinestringzm */ yytestcase (yyruleno == 20); case 21: /* geo_text ::= multipolygon */ yytestcase (yyruleno == 21); case 22: /* geo_text ::= multipolygonz */ yytestcase (yyruleno == 22); case 23: /* geo_text ::= multipolygonzm */ yytestcase (yyruleno == 23); case 24: /* geo_text ::= geocoll */ yytestcase (yyruleno == 24); case 25: /* geo_text ::= geocollz */ yytestcase (yyruleno == 25); case 26: /* geo_text ::= geocollzm */ yytestcase (yyruleno == 26); case 27: /* geo_textm ::= pointm */ yytestcase (yyruleno == 27); case 28: /* geo_textm ::= linestringm */ yytestcase (yyruleno == 28); case 29: /* geo_textm ::= polygonm */ yytestcase (yyruleno == 29); case 30: /* geo_textm ::= multipointm */ yytestcase (yyruleno == 30); case 31: /* geo_textm ::= multilinestringm */ yytestcase (yyruleno == 31); case 32: /* geo_textm ::= multipolygonm */ yytestcase (yyruleno == 32); case 33: /* geo_textm ::= geocollm */ yytestcase (yyruleno == 33); { p_data->result = yymsp[0].minor.yy0; } break; case 34: /* point ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxy EWKT_CLOSE_BRACKET */ case 35: /* pointz ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyz EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 35); case 37: /* pointzm ::= EWKT_POINT EWKT_OPEN_BRACKET point_coordxyzm EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 37); { yygotominor.yy0 = ewkt_buildGeomFromPoint (p_data, (gaiaPointPtr) yymsp[-1].minor.yy0); } break; case 36: /* pointm ::= EWKT_POINT_M EWKT_OPEN_BRACKET point_coordxym EWKT_CLOSE_BRACKET */ { yygotominor.yy0 = ewkt_buildGeomFromPoint (p_data, (gaiaPointPtr) yymsp[-1].minor.yy0); } break; case 38: /* point_brkt_coordxy ::= EWKT_OPEN_BRACKET coord coord EWKT_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) ewkt_point_xy (p_data, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 39: /* point_brkt_coordxym ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) ewkt_point_xym (p_data, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 40: /* point_brkt_coordxyz ::= EWKT_OPEN_BRACKET coord coord coord EWKT_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) ewkt_point_xyz (p_data, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 41: /* point_brkt_coordxyzm ::= EWKT_OPEN_BRACKET coord coord coord coord EWKT_CLOSE_BRACKET */ { yygotominor.yy0 = (void *) ewkt_point_xyzm (p_data, (double *) yymsp[-4].minor.yy0, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0); } break; case 42: /* point_coordxy ::= coord coord */ { yygotominor.yy0 = (void *) ewkt_point_xy (p_data, (double *) yymsp[-1].minor.yy0, (double *) yymsp[0].minor.yy0); } break; case 43: /* point_coordxym ::= coord coord coord */ { yygotominor.yy0 = (void *) ewkt_point_xym (p_data, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0, (double *) yymsp[0].minor.yy0); } break; case 44: /* point_coordxyz ::= coord coord coord */ { yygotominor.yy0 = (void *) ewkt_point_xyz (p_data, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0, (double *) yymsp[0].minor.yy0); } break; case 45: /* point_coordxyzm ::= coord coord coord coord */ { yygotominor.yy0 = (void *) ewkt_point_xyzm (p_data, (double *) yymsp[-3].minor.yy0, (double *) yymsp[-2].minor.yy0, (double *) yymsp[-1].minor.yy0, (double *) yymsp[0].minor.yy0); } break; case 46: /* coord ::= EWKT_NUM */ case 91: /* multipoint ::= EWKT_MULTIPOINT multipoint_text */ yytestcase (yyruleno == 91); case 92: /* multipointm ::= EWKT_MULTIPOINT_M multipoint_textm */ yytestcase (yyruleno == 92); case 93: /* multipointz ::= EWKT_MULTIPOINT multipoint_textz */ yytestcase (yyruleno == 93); case 94: /* multipointzm ::= EWKT_MULTIPOINT multipoint_textzm */ yytestcase (yyruleno == 94); case 103: /* multilinestring ::= EWKT_MULTILINESTRING multilinestring_text */ yytestcase (yyruleno == 103); case 104: /* multilinestringm ::= EWKT_MULTILINESTRING_M multilinestring_textm */ yytestcase (yyruleno == 104); case 105: /* multilinestringz ::= EWKT_MULTILINESTRING multilinestring_textz */ yytestcase (yyruleno == 105); case 106: /* multilinestringzm ::= EWKT_MULTILINESTRING multilinestring_textzm */ yytestcase (yyruleno == 106); case 119: /* multipolygon ::= EWKT_MULTIPOLYGON multipolygon_text */ yytestcase (yyruleno == 119); case 120: /* multipolygonm ::= EWKT_MULTIPOLYGON_M multipolygon_textm */ yytestcase (yyruleno == 120); case 121: /* multipolygonz ::= EWKT_MULTIPOLYGON multipolygon_textz */ yytestcase (yyruleno == 121); case 122: /* multipolygonzm ::= EWKT_MULTIPOLYGON multipolygon_textzm */ yytestcase (yyruleno == 122); case 135: /* geocoll ::= EWKT_GEOMETRYCOLLECTION geocoll_text */ yytestcase (yyruleno == 135); case 136: /* geocollm ::= EWKT_GEOMETRYCOLLECTION_M geocoll_textm */ yytestcase (yyruleno == 136); case 137: /* geocollz ::= EWKT_GEOMETRYCOLLECTION geocoll_textz */ yytestcase (yyruleno == 137); case 138: /* geocollzm ::= EWKT_GEOMETRYCOLLECTION geocoll_textzm */ yytestcase (yyruleno == 138); { yygotominor.yy0 = yymsp[0].minor.yy0; } break; case 47: /* extra_brkt_pointsxy ::= */ case 49: /* extra_brkt_pointsxym ::= */ yytestcase (yyruleno == 49); case 51: /* extra_brkt_pointsxyz ::= */ yytestcase (yyruleno == 51); case 53: /* extra_brkt_pointsxyzm ::= */ yytestcase (yyruleno == 53); case 55: /* extra_pointsxy ::= */ yytestcase (yyruleno == 55); case 57: /* extra_pointsxym ::= */ yytestcase (yyruleno == 57); case 59: /* extra_pointsxyz ::= */ yytestcase (yyruleno == 59); case 61: /* extra_pointsxyzm ::= */ yytestcase (yyruleno == 61); case 80: /* extra_rings ::= */ yytestcase (yyruleno == 80); case 83: /* extra_ringsm ::= */ yytestcase (yyruleno == 83); case 86: /* extra_ringsz ::= */ yytestcase (yyruleno == 86); case 89: /* extra_ringszm ::= */ yytestcase (yyruleno == 89); case 108: /* multilinestring_text2 ::= */ yytestcase (yyruleno == 108); case 111: /* multilinestring_textm2 ::= */ yytestcase (yyruleno == 111); case 114: /* multilinestring_textz2 ::= */ yytestcase (yyruleno == 114); case 117: /* multilinestring_textzm2 ::= */ yytestcase (yyruleno == 117); case 124: /* multipolygon_text2 ::= */ yytestcase (yyruleno == 124); case 127: /* multipolygon_textm2 ::= */ yytestcase (yyruleno == 127); case 130: /* multipolygon_textz2 ::= */ yytestcase (yyruleno == 130); case 133: /* multipolygon_textzm2 ::= */ yytestcase (yyruleno == 133); case 146: /* geocoll_text2 ::= */ yytestcase (yyruleno == 146); case 161: /* geocoll_textm2 ::= */ yytestcase (yyruleno == 161); case 176: /* geocoll_textz2 ::= */ yytestcase (yyruleno == 176); case 191: /* geocoll_textzm2 ::= */ yytestcase (yyruleno == 191); { yygotominor.yy0 = NULL; } break; case 48: /* extra_brkt_pointsxy ::= EWKT_COMMA point_brkt_coordxy extra_brkt_pointsxy */ case 50: /* extra_brkt_pointsxym ::= EWKT_COMMA point_brkt_coordxym extra_brkt_pointsxym */ yytestcase (yyruleno == 50); case 52: /* extra_brkt_pointsxyz ::= EWKT_COMMA point_brkt_coordxyz extra_brkt_pointsxyz */ yytestcase (yyruleno == 52); case 54: /* extra_brkt_pointsxyzm ::= EWKT_COMMA point_brkt_coordxyzm extra_brkt_pointsxyzm */ yytestcase (yyruleno == 54); case 56: /* extra_pointsxy ::= EWKT_COMMA point_coordxy extra_pointsxy */ yytestcase (yyruleno == 56); case 58: /* extra_pointsxym ::= EWKT_COMMA point_coordxym extra_pointsxym */ yytestcase (yyruleno == 58); case 60: /* extra_pointsxyz ::= EWKT_COMMA point_coordxyz extra_pointsxyz */ yytestcase (yyruleno == 60); case 62: /* extra_pointsxyzm ::= EWKT_COMMA point_coordxyzm extra_pointsxyzm */ yytestcase (yyruleno == 62); { ((gaiaPointPtr) yymsp[-1].minor.yy0)->Next = (gaiaPointPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 63: /* linestring ::= EWKT_LINESTRING linestring_text */ case 64: /* linestringm ::= EWKT_LINESTRING_M linestring_textm */ yytestcase (yyruleno == 64); case 65: /* linestringz ::= EWKT_LINESTRING linestring_textz */ yytestcase (yyruleno == 65); case 66: /* linestringzm ::= EWKT_LINESTRING linestring_textzm */ yytestcase (yyruleno == 66); { yygotominor.yy0 = ewkt_buildGeomFromLinestring (p_data, (gaiaLinestringPtr) yymsp[0].minor.yy0); } break; case 67: /* linestring_text ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) ewkt_linestring_xy (p_data, (gaiaPointPtr) yymsp[-4].minor. yy0); } break; case 68: /* linestring_textm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) ewkt_linestring_xym (p_data, (gaiaPointPtr) yymsp[-4].minor. yy0); } break; case 69: /* linestring_textz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) ewkt_linestring_xyz (p_data, (gaiaPointPtr) yymsp[-4].minor. yy0); } break; case 70: /* linestring_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; yygotominor.yy0 = (void *) ewkt_linestring_xyzm (p_data, (gaiaPointPtr) yymsp[-4].minor. yy0); } break; case 71: /* polygon ::= EWKT_POLYGON polygon_text */ case 72: /* polygonm ::= EWKT_POLYGON_M polygon_textm */ yytestcase (yyruleno == 72); case 73: /* polygonz ::= EWKT_POLYGON polygon_textz */ yytestcase (yyruleno == 73); case 74: /* polygonzm ::= EWKT_POLYGON polygon_textzm */ yytestcase (yyruleno == 74); { yygotominor.yy0 = ewkt_buildGeomFromPolygon (p_data, (gaiaPolygonPtr) yymsp[0].minor. yy0); } break; case 75: /* polygon_text ::= EWKT_OPEN_BRACKET ring extra_rings EWKT_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_polygon_xy (p_data, (gaiaRingPtr) yymsp[-2].minor.yy0); } break; case 76: /* polygon_textm ::= EWKT_OPEN_BRACKET ringm extra_ringsm EWKT_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_polygon_xym (p_data, (gaiaRingPtr) yymsp[-2].minor.yy0); } break; case 77: /* polygon_textz ::= EWKT_OPEN_BRACKET ringz extra_ringsz EWKT_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_polygon_xyz (p_data, (gaiaRingPtr) yymsp[-2].minor.yy0); } break; case 78: /* polygon_textzm ::= EWKT_OPEN_BRACKET ringzm extra_ringszm EWKT_CLOSE_BRACKET */ { ((gaiaRingPtr) yymsp[-2].minor.yy0)->Next = (gaiaRingPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_polygon_xyzm (p_data, (gaiaRingPtr) yymsp[-2].minor. yy0); } break; case 79: /* ring ::= EWKT_OPEN_BRACKET point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy EWKT_COMMA point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_ring_xy (p_data, (gaiaPointPtr) yymsp[-8].minor.yy0); } break; case 81: /* extra_rings ::= EWKT_COMMA ring extra_rings */ case 84: /* extra_ringsm ::= EWKT_COMMA ringm extra_ringsm */ yytestcase (yyruleno == 84); case 87: /* extra_ringsz ::= EWKT_COMMA ringz extra_ringsz */ yytestcase (yyruleno == 87); case 90: /* extra_ringszm ::= EWKT_COMMA ringzm extra_ringszm */ yytestcase (yyruleno == 90); { ((gaiaRingPtr) yymsp[-1].minor.yy0)->Next = (gaiaRingPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 82: /* ringm ::= EWKT_OPEN_BRACKET point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym EWKT_COMMA point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_ring_xym (p_data, (gaiaPointPtr) yymsp[-8].minor.yy0); } break; case 85: /* ringz ::= EWKT_OPEN_BRACKET point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz EWKT_COMMA point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_ring_xyz (p_data, (gaiaPointPtr) yymsp[-8].minor.yy0); } break; case 88: /* ringzm ::= EWKT_OPEN_BRACKET point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm EWKT_COMMA point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET */ { ((gaiaPointPtr) yymsp[-8].minor.yy0)->Next = (gaiaPointPtr) yymsp[-6].minor.yy0; ((gaiaPointPtr) yymsp[-6].minor.yy0)->Next = (gaiaPointPtr) yymsp[-4].minor.yy0; ((gaiaPointPtr) yymsp[-4].minor.yy0)->Next = (gaiaPointPtr) yymsp[-2].minor.yy0; ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_ring_xyzm (p_data, (gaiaPointPtr) yymsp[-8].minor.yy0); } break; case 95: /* multipoint_text ::= EWKT_OPEN_BRACKET point_coordxy extra_pointsxy EWKT_CLOSE_BRACKET */ case 99: /* multipoint_text ::= EWKT_OPEN_BRACKET point_brkt_coordxy extra_brkt_pointsxy EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 99); { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multipoint_xy (p_data, (gaiaPointPtr) yymsp[-2].minor. yy0); } break; case 96: /* multipoint_textm ::= EWKT_OPEN_BRACKET point_coordxym extra_pointsxym EWKT_CLOSE_BRACKET */ case 100: /* multipoint_textm ::= EWKT_OPEN_BRACKET point_brkt_coordxym extra_brkt_pointsxym EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 100); { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multipoint_xym (p_data, (gaiaPointPtr) yymsp[-2].minor. yy0); } break; case 97: /* multipoint_textz ::= EWKT_OPEN_BRACKET point_coordxyz extra_pointsxyz EWKT_CLOSE_BRACKET */ case 101: /* multipoint_textz ::= EWKT_OPEN_BRACKET point_brkt_coordxyz extra_brkt_pointsxyz EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 101); { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multipoint_xyz (p_data, (gaiaPointPtr) yymsp[-2].minor. yy0); } break; case 98: /* multipoint_textzm ::= EWKT_OPEN_BRACKET point_coordxyzm extra_pointsxyzm EWKT_CLOSE_BRACKET */ case 102: /* multipoint_textzm ::= EWKT_OPEN_BRACKET point_brkt_coordxyzm extra_brkt_pointsxyzm EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 102); { ((gaiaPointPtr) yymsp[-2].minor.yy0)->Next = (gaiaPointPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multipoint_xyzm (p_data, (gaiaPointPtr) yymsp[-2].minor. yy0); } break; case 107: /* multilinestring_text ::= EWKT_OPEN_BRACKET linestring_text multilinestring_text2 EWKT_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multilinestring_xy (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 109: /* multilinestring_text2 ::= EWKT_COMMA linestring_text multilinestring_text2 */ case 112: /* multilinestring_textm2 ::= EWKT_COMMA linestring_textm multilinestring_textm2 */ yytestcase (yyruleno == 112); case 115: /* multilinestring_textz2 ::= EWKT_COMMA linestring_textz multilinestring_textz2 */ yytestcase (yyruleno == 115); case 118: /* multilinestring_textzm2 ::= EWKT_COMMA linestring_textzm multilinestring_textzm2 */ yytestcase (yyruleno == 118); { ((gaiaLinestringPtr) yymsp[-1].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 110: /* multilinestring_textm ::= EWKT_OPEN_BRACKET linestring_textm multilinestring_textm2 EWKT_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multilinestring_xym (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 113: /* multilinestring_textz ::= EWKT_OPEN_BRACKET linestring_textz multilinestring_textz2 EWKT_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multilinestring_xyz (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 116: /* multilinestring_textzm ::= EWKT_OPEN_BRACKET linestring_textzm multilinestring_textzm2 EWKT_CLOSE_BRACKET */ { ((gaiaLinestringPtr) yymsp[-2].minor.yy0)->Next = (gaiaLinestringPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multilinestring_xyzm (p_data, (gaiaLinestringPtr) yymsp[-2].minor.yy0); } break; case 123: /* multipolygon_text ::= EWKT_OPEN_BRACKET polygon_text multipolygon_text2 EWKT_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multipolygon_xy (p_data, (gaiaPolygonPtr) yymsp[-2].minor.yy0); } break; case 125: /* multipolygon_text2 ::= EWKT_COMMA polygon_text multipolygon_text2 */ case 128: /* multipolygon_textm2 ::= EWKT_COMMA polygon_textm multipolygon_textm2 */ yytestcase (yyruleno == 128); case 131: /* multipolygon_textz2 ::= EWKT_COMMA polygon_textz multipolygon_textz2 */ yytestcase (yyruleno == 131); case 134: /* multipolygon_textzm2 ::= EWKT_COMMA polygon_textzm multipolygon_textzm2 */ yytestcase (yyruleno == 134); { ((gaiaPolygonPtr) yymsp[-1].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 126: /* multipolygon_textm ::= EWKT_OPEN_BRACKET polygon_textm multipolygon_textm2 EWKT_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multipolygon_xym (p_data, (gaiaPolygonPtr) yymsp[-2].minor.yy0); } break; case 129: /* multipolygon_textz ::= EWKT_OPEN_BRACKET polygon_textz multipolygon_textz2 EWKT_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multipolygon_xyz (p_data, (gaiaPolygonPtr) yymsp[-2].minor.yy0); } break; case 132: /* multipolygon_textzm ::= EWKT_OPEN_BRACKET polygon_textzm multipolygon_textzm2 EWKT_CLOSE_BRACKET */ { ((gaiaPolygonPtr) yymsp[-2].minor.yy0)->Next = (gaiaPolygonPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_multipolygon_xyzm (p_data, (gaiaPolygonPtr) yymsp[-2].minor.yy0); } break; case 139: /* geocoll_text ::= EWKT_OPEN_BRACKET point geocoll_text2 EWKT_CLOSE_BRACKET */ case 140: /* geocoll_text ::= EWKT_OPEN_BRACKET linestring geocoll_text2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 140); case 141: /* geocoll_text ::= EWKT_OPEN_BRACKET polygon geocoll_text2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 141); case 142: /* geocoll_text ::= EWKT_OPEN_BRACKET multipoint geocoll_text2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 142); case 143: /* geocoll_text ::= EWKT_OPEN_BRACKET multilinestring geocoll_text2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 143); case 144: /* geocoll_text ::= EWKT_OPEN_BRACKET multipolygon geocoll_text2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 144); case 145: /* geocoll_text ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 145); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_geomColl_xy (p_data, (gaiaGeomCollPtr) yymsp[-2].minor. yy0); } break; case 147: /* geocoll_text2 ::= EWKT_COMMA point geocoll_text2 */ case 148: /* geocoll_text2 ::= EWKT_COMMA linestring geocoll_text2 */ yytestcase (yyruleno == 148); case 149: /* geocoll_text2 ::= EWKT_COMMA polygon geocoll_text2 */ yytestcase (yyruleno == 149); case 150: /* geocoll_text2 ::= EWKT_COMMA multipoint geocoll_text2 */ yytestcase (yyruleno == 150); case 151: /* geocoll_text2 ::= EWKT_COMMA multilinestring geocoll_text2 */ yytestcase (yyruleno == 151); case 152: /* geocoll_text2 ::= EWKT_COMMA multipolygon geocoll_text2 */ yytestcase (yyruleno == 152); case 153: /* geocoll_text2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_text geocoll_text2 */ yytestcase (yyruleno == 153); case 162: /* geocoll_textm2 ::= EWKT_COMMA pointm geocoll_textm2 */ yytestcase (yyruleno == 162); case 163: /* geocoll_textm2 ::= EWKT_COMMA linestringm geocoll_textm2 */ yytestcase (yyruleno == 163); case 164: /* geocoll_textm2 ::= EWKT_COMMA polygonm geocoll_textm2 */ yytestcase (yyruleno == 164); case 165: /* geocoll_textm2 ::= EWKT_COMMA multipointm geocoll_textm2 */ yytestcase (yyruleno == 165); case 166: /* geocoll_textm2 ::= EWKT_COMMA multilinestringm geocoll_textm2 */ yytestcase (yyruleno == 166); case 167: /* geocoll_textm2 ::= EWKT_COMMA multipolygonm geocoll_textm2 */ yytestcase (yyruleno == 167); case 168: /* geocoll_textm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 */ yytestcase (yyruleno == 168); case 177: /* geocoll_textz2 ::= EWKT_COMMA pointz geocoll_textz2 */ yytestcase (yyruleno == 177); case 178: /* geocoll_textz2 ::= EWKT_COMMA linestringz geocoll_textz2 */ yytestcase (yyruleno == 178); case 179: /* geocoll_textz2 ::= EWKT_COMMA polygonz geocoll_textz2 */ yytestcase (yyruleno == 179); case 180: /* geocoll_textz2 ::= EWKT_COMMA multipointz geocoll_textz2 */ yytestcase (yyruleno == 180); case 181: /* geocoll_textz2 ::= EWKT_COMMA multilinestringz geocoll_textz2 */ yytestcase (yyruleno == 181); case 182: /* geocoll_textz2 ::= EWKT_COMMA multipolygonz geocoll_textz2 */ yytestcase (yyruleno == 182); case 183: /* geocoll_textz2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2 */ yytestcase (yyruleno == 183); case 192: /* geocoll_textzm2 ::= EWKT_COMMA pointzm geocoll_textzm2 */ yytestcase (yyruleno == 192); case 193: /* geocoll_textzm2 ::= EWKT_COMMA linestringzm geocoll_textzm2 */ yytestcase (yyruleno == 193); case 194: /* geocoll_textzm2 ::= EWKT_COMMA polygonzm geocoll_textzm2 */ yytestcase (yyruleno == 194); case 195: /* geocoll_textzm2 ::= EWKT_COMMA multipointzm geocoll_textzm2 */ yytestcase (yyruleno == 195); case 196: /* geocoll_textzm2 ::= EWKT_COMMA multilinestringzm geocoll_textzm2 */ yytestcase (yyruleno == 196); case 197: /* geocoll_textzm2 ::= EWKT_COMMA multipolygonzm geocoll_textzm2 */ yytestcase (yyruleno == 197); case 198: /* geocoll_textzm2 ::= EWKT_COMMA EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2 */ yytestcase (yyruleno == 198); { ((gaiaGeomCollPtr) yymsp[-1].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[0].minor.yy0; yygotominor.yy0 = yymsp[-1].minor.yy0; } break; case 154: /* geocoll_textm ::= EWKT_OPEN_BRACKET pointm geocoll_textm2 EWKT_CLOSE_BRACKET */ case 155: /* geocoll_textm ::= EWKT_OPEN_BRACKET linestringm geocoll_textm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 155); case 156: /* geocoll_textm ::= EWKT_OPEN_BRACKET polygonm geocoll_textm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 156); case 157: /* geocoll_textm ::= EWKT_OPEN_BRACKET multipointm geocoll_textm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 157); case 158: /* geocoll_textm ::= EWKT_OPEN_BRACKET multilinestringm geocoll_textm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 158); case 159: /* geocoll_textm ::= EWKT_OPEN_BRACKET multipolygonm geocoll_textm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 159); case 160: /* geocoll_textm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION_M geocoll_textm geocoll_textm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 160); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_geomColl_xym (p_data, (gaiaGeomCollPtr) yymsp[-2].minor. yy0); } break; case 169: /* geocoll_textz ::= EWKT_OPEN_BRACKET pointz geocoll_textz2 EWKT_CLOSE_BRACKET */ case 170: /* geocoll_textz ::= EWKT_OPEN_BRACKET linestringz geocoll_textz2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 170); case 171: /* geocoll_textz ::= EWKT_OPEN_BRACKET polygonz geocoll_textz2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 171); case 172: /* geocoll_textz ::= EWKT_OPEN_BRACKET multipointz geocoll_textz2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 172); case 173: /* geocoll_textz ::= EWKT_OPEN_BRACKET multilinestringz geocoll_textz2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 173); case 174: /* geocoll_textz ::= EWKT_OPEN_BRACKET multipolygonz geocoll_textz2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 174); case 175: /* geocoll_textz ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textz geocoll_textz2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 175); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_geomColl_xyz (p_data, (gaiaGeomCollPtr) yymsp[-2].minor. yy0); } break; case 184: /* geocoll_textzm ::= EWKT_OPEN_BRACKET pointzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ case 185: /* geocoll_textzm ::= EWKT_OPEN_BRACKET linestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 185); case 186: /* geocoll_textzm ::= EWKT_OPEN_BRACKET polygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 186); case 187: /* geocoll_textzm ::= EWKT_OPEN_BRACKET multipointzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 187); case 188: /* geocoll_textzm ::= EWKT_OPEN_BRACKET multilinestringzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 188); case 189: /* geocoll_textzm ::= EWKT_OPEN_BRACKET multipolygonzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 189); case 190: /* geocoll_textzm ::= EWKT_OPEN_BRACKET EWKT_GEOMETRYCOLLECTION geocoll_textzm geocoll_textzm2 EWKT_CLOSE_BRACKET */ yytestcase (yyruleno == 190); { ((gaiaGeomCollPtr) yymsp[-2].minor.yy0)->Next = (gaiaGeomCollPtr) yymsp[-1].minor.yy0; yygotominor.yy0 = (void *) ewkt_geomColl_xyzm (p_data, (gaiaGeomCollPtr) yymsp[-2].minor.yy0); } break; default: /* (0) main ::= in */ yytestcase (yyruleno == 0); /* (1) in ::= */ yytestcase (yyruleno == 1); /* (2) in ::= in state EWKT_NEWLINE */ yytestcase (yyruleno == 2); /* (3) state ::= program */ yytestcase (yyruleno == 3); /* (4) program ::= geo_text */ yytestcase (yyruleno == 4); /* (5) program ::= geo_textm */ yytestcase (yyruleno == 5); break; }; yygoto = yyRuleInfo[yyruleno].lhs; yysize = yyRuleInfo[yyruleno].nrhs; yypParser->yyidx -= yysize; yyact = yy_find_reduce_action (yymsp[-yysize].stateno, (YYCODETYPE) yygoto); if (yyact < YYNSTATE) { #ifdef NDEBUG /* If we are not debugging and the reduce action popped at least ** one element off the stack, then we can push the new element back ** onto the stack here, and skip the stack overflow test in yy_shift(). ** That gives a significant speed improvement. */ if (yysize) { yypParser->yyidx++; yymsp -= yysize - 1; yymsp->stateno = (YYACTIONTYPE) yyact; yymsp->major = (YYCODETYPE) yygoto; yymsp->minor = yygotominor; } else #endif { yy_shift (yypParser, yyact, yygoto, &yygotominor); } } else { assert (yyact == YYNSTATE + YYNRULE + 1); yy_accept (yypParser); } } /* ** The following code executes when the parse fails */ #ifndef YYNOERRORRECOVERY static void yy_parse_failed (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sFail!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser fails */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } #endif /* YYNOERRORRECOVERY */ /* ** The following code executes when a syntax error first occurs. */ static void yy_syntax_error (yyParser * yypParser, /* The parser */ int yymajor, /* The major type of the error token */ YYMINORTYPE yyminor /* The minor type of the error token */ ) { ParseARG_FETCH; #define TOKEN (yyminor.yy0) /* ** when the LEMON parser encounters an error ** then this global variable is set */ p_data->ewkt_parse_error = 1; p_data->result = NULL; ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* ** The following is executed when the parser accepts */ static void yy_accept (yyParser * yypParser /* The parser */ ) { ParseARG_FETCH; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sAccept!\n", yyTracePrompt); } #endif while (yypParser->yyidx >= 0) yy_pop_parser_stack (yypParser); /* Here code is inserted which will be executed whenever the ** parser accepts */ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } /* The main parser program. ** The first argument is a pointer to a structure obtained from ** "ParseAlloc" which describes the current state of the parser. ** The second argument is the major token number. The third is ** the minor token. The fourth optional argument is whatever the ** user wants (and specified in the grammar) and is available for ** use by the action routines. ** ** Inputs: ** <ul> ** <li> A pointer to the parser (an opaque structure.) ** <li> The major token number. ** <li> The minor token number. ** <li> An option argument of a grammar-specified type. ** </ul> ** ** Outputs: ** None. */ void Parse (void *yyp, /* The parser */ int yymajor, /* The major token code number */ ParseTOKENTYPE yyminor /* The value for the token */ ParseARG_PDECL /* Optional %extra_argument parameter */ ) { YYMINORTYPE yyminorunion; int yyact; /* The parser action. */ int yyendofinput; /* True if we are at the end of input */ #ifdef YYERRORSYMBOL int yyerrorhit = 0; /* True if yymajor has invoked an error */ #endif yyParser *yypParser; /* The parser */ /* (re)initialize the parser, if necessary */ yypParser = (yyParser *) yyp; if (yypParser->yyidx < 0) { #if YYSTACKDEPTH<=0 if (yypParser->yystksz <= 0) { /*memset(&yyminorunion, 0, sizeof(yyminorunion)); */ yyminorunion = yyzerominor; yyStackOverflow (yypParser, &yyminorunion); return; } #endif yypParser->yyidx = 0; yypParser->yyerrcnt = -1; yypParser->yystack[0].stateno = 0; yypParser->yystack[0].major = 0; } yyminorunion.yy0 = yyminor; yyendofinput = (yymajor == 0); ParseARG_STORE; #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sInput %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif do { yyact = yy_find_shift_action (yypParser, (YYCODETYPE) yymajor); if (yyact < YYNSTATE) { assert (!yyendofinput); /* Impossible to shift the $ token */ yy_shift (yypParser, yyact, yymajor, &yyminorunion); yypParser->yyerrcnt--; yymajor = YYNOCODE; } else if (yyact < YYNSTATE + YYNRULE) { yy_reduce (yypParser, yyact - YYNSTATE); } else { assert (yyact == YY_ERROR_ACTION); #ifdef YYERRORSYMBOL int yymx; #endif #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt); } #endif #ifdef YYERRORSYMBOL /* A syntax error has occurred. ** The response to an error depends upon whether or not the ** grammar defines an error token "ERROR". ** ** This is what we do if the grammar does define ERROR: ** ** * Call the %syntax_error function. ** ** * Begin popping the stack until we enter a state where ** it is legal to shift the error symbol, then shift ** the error symbol. ** ** * Set the error count to three. ** ** * Begin accepting and shifting new tokens. No new error ** processing will occur until three tokens have been ** shifted successfully. ** */ if (yypParser->yyerrcnt < 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yymx = yypParser->yystack[yypParser->yyidx].major; if (yymx == YYERRORSYMBOL || yyerrorhit) { #ifndef NDEBUG if (yyTraceFILE) { fprintf (yyTraceFILE, "%sDiscard input token %s\n", yyTracePrompt, yyTokenName[yymajor]); } #endif yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; } else { while (yypParser->yyidx >= 0 && yymx != YYERRORSYMBOL && (yyact = yy_find_reduce_action (yypParser->yystack [yypParser->yyidx].stateno, YYERRORSYMBOL)) >= YYNSTATE) { yy_pop_parser_stack (yypParser); } if (yypParser->yyidx < 0 || yymajor == 0) { yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yy_parse_failed (yypParser); yymajor = YYNOCODE; } else if (yymx != YYERRORSYMBOL) { YYMINORTYPE u2; u2.YYERRSYMDT = 0; yy_shift (yypParser, yyact, YYERRORSYMBOL, &u2); } } yypParser->yyerrcnt = 3; yyerrorhit = 1; #elif defined(YYNOERRORRECOVERY) /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to ** do any kind of error recovery. Instead, simply invoke the syntax ** error routine and continue going as if nothing had happened. ** ** Applications can set this macro (for example inside %include) if ** they intend to abandon the parse upon the first syntax error seen. */ yy_syntax_error (yypParser, yymajor, yyminorunion); yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); yymajor = YYNOCODE; #else /* YYERRORSYMBOL is not defined */ /* This is what we do if the grammar does not define ERROR: ** ** * Report an error message, and throw away the input token. ** ** * If the input token is $, then fail the parse. ** ** As before, subsequent error messages are suppressed until ** three input tokens have been successfully shifted. */ if (yypParser->yyerrcnt <= 0) { yy_syntax_error (yypParser, yymajor, yyminorunion); } yypParser->yyerrcnt = 3; yy_destructor (yypParser, (YYCODETYPE) yymajor, &yyminorunion); if (yyendofinput) { yy_parse_failed (yypParser); } yymajor = YYNOCODE; #endif } } while (yymajor != YYNOCODE && yypParser->yyidx >= 0); return; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiageo/gg_geodesic.c������������������������������������������������������0000664�0001750�0001750�00000025622�12544707704�016237� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_geodesic.c -- Gaia functions for geodesic calculations version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <sys/types.h> #include <stdlib.h> #include <stdio.h> #include <math.h> #include <float.h> #include <string.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite/sqlite.h> #include <spatialite/gaiageo.h> #define DEG2RAD 0.0174532925199432958 #define PI 3.14159265358979323846 struct ellipses { char *name; double a; /* equatorial radius - meters */ double rf; /* reverse flattening */ double b; /* polar radius - meters */ }; #if defined(_WIN32) && !defined(__MINGW32__) #define isnan _isnan #endif /* not WIN32-MSVC */ GAIAGEO_DECLARE int gaiaEllipseParams (const char *name, double *a, double *b, double *rf) { /* trying to find ellipse params */ struct ellipses ellps_list[] = { {"MERIT", 6378137.0, 298.257, -1.0}, {"SGS85", 6378136.0, 298.257, -1.0}, {"GRS80", 6378137.0, 298.257222101, -1.0}, {"IAU76", 6378140.0, 298.257, -1.0}, {"airy", 6377563.396, -1.0, 6356256.910}, {"APL4.9", 6378137.0, 298.25, -1.0}, {"NWL9D", 6378145.0, 298.25, -1.0}, {"mod_airy", 6377340.189, -1.0, 6356034.446}, {"andrae", 6377104.43, 300.0, -1.0}, {"aust_SA", 378160.0, 298.25, -1.0}, {"GRS67", 6378160.0, 298.2471674270, -1.0}, {"bessel", 6377397.155, 299.1528128, -1.0}, {"bess_nam", 6377483.865, 299.1528128, -1.0}, {"clrk66", 6378206.4, -1.0, 6356583.8}, {"clrk80", 6378249.145, 293.4663, -1.0}, {"CPM", 6375738.7, 334.29, -1.0}, {"delmbr", 6376428.0, 311.5, -1.0}, {"engelis", 6378136.05, 298.2566, -1.0}, {"evrst30", 6377276.345, 300.8017, -1.0}, {"evrst48", 6377304.063, 300.8017, -1.0}, {"evrst56", 6377301.243, 300.8017, -1.0}, {"evrst69", 6377295.664, 300.8017, -1.0}, {"evrstSS", 6377298.556, 300.8017, -1.0}, {"fschr60", 6378166.0, 298.3, -1.0}, {"fschr60m", 6378155.0, 298.3, -1.0}, {"fschr68", 6378150.0, 298.3, -1.0}, {"helmert", 6378200.0, 298.3, -1.0}, {"hough", 6378270.0, 297.0, -1.0}, {"intl", 6378388.0, 297.0, -1.0}, {"krass", 6378245.0, 298.3, -1.0}, {"kaula", 6378163.0, 298.24, -1.0}, {"lerch", 6378139.0, 298.257, -1.0}, {"mprts", 6397300.0, 191.0, -1.0}, {"new_intl", 6378157.5, -1.0, 6356772.2}, {"plessis", 6376523.0, -1.0, 6355863.0}, {"SEasia", 6378155.0, -1.0, 6356773.3205}, {"walbeck", 6376896.0, -1.0, 6355834.8467}, {"WGS60", 6378165.0, 298.3, -1.0}, {"WGS66", 6378145.0, 298.25, -1.0}, {"WGS72", 6378135.0, 298.26, -1.0}, {"WGS84", 6378137.0, 298.257223563, -1.0}, {"sphere", 6370997.0, -1.0, 6370997.0}, {NULL, -1.0, -1.0, -1.0} }; struct ellipses *pe = ellps_list; while (1) { if (pe->name == NULL) break; if (strcmp (pe->name, name) == 0) { *a = pe->a; if (pe->rf < 0.0) { *b = pe->b; *rf = 1.0 / ((pe->a - pe->b) / pe->a); } else { *b = (pe->a * (1.0 - (1.0 / pe->rf))); *rf = pe->rf; } return 1; } pe++; } return 0; } GAIAGEO_DECLARE double gaiaGreatCircleDistance (double a, double b, double lat1, double lon1, double lat2, double lon2) { /* / Calculate great-circle distance (in m) between two points specified by / latitude/longitude (in decimal degrees) using Aviation Formulary / / http://williams.best.vwh.net/avform.htm#Dist / */ double latrad1 = lat1 * DEG2RAD; double lonrad1 = lon1 * DEG2RAD; double latrad2 = lat2 * DEG2RAD; double lonrad2 = lon2 * DEG2RAD; double avg_radius; double k1 = (sin ((latrad1 - latrad2) / 2.0)); double k2 = (sin ((lonrad1 - lonrad2) / 2.0)); double dist; dist = 2.0 * asin (sqrt (k1 * k1 + cos (latrad1) * cos (latrad2) * k2 * k2)); if (dist < 0.0) dist = dist + PI; if (a == b) avg_radius = a; else avg_radius = (2.0 * a + b) / 3.0; dist = dist * avg_radius; return dist; } GAIAGEO_DECLARE double gaiaGeodesicDistance (double a, double b, double rf, double lat1, double lon1, double lat2, double lon2) { /* / Calculate geodesic distance (in m) / between two points specified by latitude/longitude / (in decimal degrees) using Vincenty inverse formula for ellipsoids / / based on original JavaScript by (c) Chris Veness 2002-2008 / http://www.movable-type.co.uk/scripts/latlong-vincenty.html / */ double f = 1.0 / rf; double L = (lon2 - lon1) * DEG2RAD; double U1 = atan ((1.0 - f) * tan (lat1 * DEG2RAD)); double U2 = atan ((1.0 - f) * tan (lat2 * DEG2RAD)); double sinU1 = sin (U1); double cosU1 = cos (U1); double sinU2 = sin (U2); double cosU2 = cos (U2); double lambda = L; double lambdaP; double sinLambda; double cosLambda; double sinSigma; double cosSigma; double sigma; double sinAlpha; double cosSqAlpha; double cos2SigmaM; double C; double uSq; double A; double B; double deltaSigma; double s; int iterLimit = 100; do { sinLambda = sin (lambda); cosLambda = cos (lambda); sinSigma = sqrt ((cosU2 * sinLambda) * (cosU2 * sinLambda) + (cosU1 * sinU2 - sinU1 * cosU2 * cosLambda) * (cosU1 * sinU2 - sinU1 * cosU2 * cosLambda)); if (sinSigma == 0.0) return 0.0; /* co-incident points */ cosSigma = sinU1 * sinU2 + cosU1 * cosU2 * cosLambda; sigma = atan2 (sinSigma, cosSigma); sinAlpha = cosU1 * cosU2 * sinLambda / sinSigma; cosSqAlpha = 1.0 - sinAlpha * sinAlpha; cos2SigmaM = cosSigma - 2.0 * sinU1 * sinU2 / cosSqAlpha; if (isnan (cos2SigmaM)) cos2SigmaM = 0; /* equatorial line */ C = f / 16.0 * cosSqAlpha * (4.0 + f * (4.0 - 3.0 * cosSqAlpha)); lambdaP = lambda; lambda = L + (1.0 - C) * f * sinAlpha * (sigma + C * sinSigma * (cos2SigmaM + C * cosSigma * (-1.0 + 2.0 * cos2SigmaM * cos2SigmaM))); } while (fabs (lambda - lambdaP) > 1e-12 && --iterLimit > 0); if (iterLimit == 0) return -1.0; /* formula failed to converge */ uSq = cosSqAlpha * (a * a - b * b) / (b * b); A = 1.0 + uSq / 16384.0 * (4096.0 + uSq * (-768.0 + uSq * (320.0 - 175.0 * uSq))); B = uSq / 1024.0 * (256.0 + uSq * (-128.0 + uSq * (74.0 - 47.0 * uSq))); deltaSigma = B * sinSigma * (cos2SigmaM + B / 4.0 * (cosSigma * (-1.0 + 2.0 * cos2SigmaM * cos2SigmaM) - B / 6.0 * cos2SigmaM * (-3.0 + 4.0 * sinSigma * sinSigma) * (-3.0 + 4.0 * cos2SigmaM * cos2SigmaM))); s = b * A * (sigma - deltaSigma); return s; } GAIAGEO_DECLARE void gaiaFree (void *ptr) { /* freeing a generic memory allocation */ if (!ptr) return; free (ptr); } GAIAGEO_DECLARE double gaiaGreatCircleTotalLength (double a, double b, int dims, double *coords, int vert) { /* computing the GreatCircle total length for some Linestring/Ring */ int iv; double x1 = 0.0; double y1 = 0.0; double x2; double y2; double z; double m; double len = 0.0; for (iv = 0; iv < vert; iv++) { if (dims == GAIA_XY_Z) { gaiaGetPointXYZ (coords, iv, &x2, &y2, &z); } else if (dims == GAIA_XY_M) { gaiaGetPointXYM (coords, iv, &x2, &y2, &m); } else if (dims == GAIA_XY_Z_M) { gaiaGetPointXYZM (coords, iv, &x2, &y2, &z, &m); } else { gaiaGetPoint (coords, iv, &x2, &y2); } if (iv > 0) len += gaiaGreatCircleDistance (a, b, y1, x1, y2, x2); x1 = x2; y1 = y2; } return len; } GAIAGEO_DECLARE double gaiaGeodesicTotalLength (double a, double b, double rf, int dims, double *coords, int vert) { /* computing the Geodesic total length for some Linestring/Ring */ int iv; double x1 = 0.0; double y1 = 0.0; double x2; double y2; double z; double m; double l; double len = 0.0; for (iv = 0; iv < vert; iv++) { if (dims == GAIA_XY_Z) { gaiaGetPointXYZ (coords, iv, &x2, &y2, &z); } else if (dims == GAIA_XY_M) { gaiaGetPointXYM (coords, iv, &x2, &y2, &m); } else if (dims == GAIA_XY_Z_M) { gaiaGetPointXYZM (coords, iv, &x2, &y2, &z, &m); } else { gaiaGetPoint (coords, iv, &x2, &y2); } if (iv > 0) { l = gaiaGeodesicDistance (a, b, rf, y1, x1, y2, x2); if (l < 0.0) return -1.0; len += l; } x1 = x2; y1 = y2; } return len; } GAIAGEO_DECLARE int gaiaConvertLength (double value, int unit_from, int unit_to, double *cvt) { /* converting length from one unit to another */ double m; double factors[] = { 1000.0, 1.0, 0.1, 0.01, 0.001, 1852.0, 0.0254, 0.3048, 0.9144, 1609.344, 1.8288, 20.1168, 0.201168, 1.0, 0.304800609601219, 0.914401828803658, 20.11684023368047, 1609.347218694437, 0.91439523, 0.30479841, 20.11669506 }; factors[GAIA_US_IN] /= 39.37; if (unit_from < GAIA_MIN_UNIT || unit_from > GAIA_MAX_UNIT) return 0; if (unit_to < GAIA_MIN_UNIT || unit_to > GAIA_MAX_UNIT) return 0; if (unit_from == unit_to) { /* same unit */ *cvt = value; } else if (unit_from == GAIA_M) { /* from Meters to .. */ *cvt = value / factors[unit_to]; } else if (unit_to == GAIA_M) { /* from .. to Meters */ *cvt = value * factors[unit_from]; } else { m = value * factors[unit_from]; *cvt = m / factors[unit_to]; } return 1; } #undef DEG2RAD #undef PI ��������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiageo/Kml.h��������������������������������������������������������������0000664�0001750�0001750�00000000520�12544707704�014516� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#define KML_NEWLINE 1 #define KML_END 2 #define KML_CLOSE 3 #define KML_OPEN 4 #define KML_KEYWORD 5 #define KML_EQ 6 #define KML_VALUE 7 #define KML_COORD 8 ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiageo/gg_kml.c�����������������������������������������������������������0000664�0001750�0001750�00000133517�12544707704�015243� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_kml.c -- KML parser/lexer version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011-2015 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <sys/types.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <assert.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite/sqlite.h> #include <spatialite/debug.h> #include <spatialite/gaiageo.h> #if defined(_WIN32) || defined(WIN32) #include <io.h> #ifndef isatty #define isatty _isatty #endif #ifndef fileno #define fileno _fileno #endif #endif #define KML_PARSER_OPEN_NODE 1 #define KML_PARSER_SELF_CLOSED_NODE 2 #define KML_PARSER_CLOSED_NODE 3 #define GAIA_KML_UNKNOWN 0 #define GAIA_KML_POINT 1 #define GAIA_KML_LINESTRING 2 #define GAIA_KML_POLYGON 3 #define GAIA_KML_MULTIGEOMETRY 4 #define KML_DYN_NONE 0 #define KML_DYN_DYNLINE 1 #define KML_DYN_GEOM 2 #define KML_DYN_DYNPG 3 #define KML_DYN_NODE 4 #define KML_DYN_COORD 5 #define KML_DYN_ATTRIB 6 #define KML_DYN_BLOCK 1024 /* ** CAVEAT: we must redefine any Lemon/Flex own macro */ #define YYMINORTYPE KML_MINORTYPE #define YY_CHAR KML_YY_CHAR #define input kml_input #define ParseAlloc kmlParseAlloc #define ParseFree kmlParseFree #define ParseStackPeak kmlParseStackPeak #define Parse kmlParse #define yyStackEntry kml_yyStackEntry #define yyzerominor kml_yyzerominor #define yy_accept kml_yy_accept #define yy_action kml_yy_action #define yy_base kml_yy_base #define yy_buffer_stack kml_yy_buffer_stack #define yy_buffer_stack_max kml_yy_buffer_stack_max #define yy_buffer_stack_top kml_yy_buffer_stack_top #define yy_c_buf_p kml_yy_c_buf_p #define yy_chk kml_yy_chk #define yy_def kml_yy_def #define yy_default kml_yy_default #define yy_destructor kml_yy_destructor #define yy_ec kml_yy_ec #define yy_fatal_error kml_yy_fatal_error #define yy_find_reduce_action kml_yy_find_reduce_action #define yy_find_shift_action kml_yy_find_shift_action #define yy_get_next_buffer kml_yy_get_next_buffer #define yy_get_previous_state kml_yy_get_previous_state #define yy_init kml_yy_init #define yy_init_globals kml_yy_init_globals #define yy_lookahead kml_yy_lookahead #define yy_meta kml_yy_meta #define yy_nxt kml_yy_nxt #define yy_parse_failed kml_yy_parse_failed #define yy_pop_parser_stack kml_yy_pop_parser_stack #define yy_reduce kml_yy_reduce #define yy_reduce_ofst kml_yy_reduce_ofst #define yy_shift kml_yy_shift #define yy_shift_ofst kml_yy_shift_ofst #define yy_start kml_yy_start #define yy_state_type kml_yy_state_type #define yy_syntax_error kml_yy_syntax_error #define yy_trans_info kml_yy_trans_info #define yy_try_NUL_trans kml_yy_try_NUL_trans #define yyParser kml_yyParser #define yyStackEntry kml_yyStackEntry #define yyStackOverflow kml_yyStackOverflow #define yyRuleInfo kml_yyRuleInfo #define yyunput kml_yyunput #define yyzerominor kml_yyzerominor #define yyTraceFILE kml_yyTraceFILE #define yyTracePrompt kml_yyTracePrompt #define yyTokenName kml_yyTokenName #define yyRuleName kml_yyRuleName #define ParseTrace kml_ParseTrace #define yylex kml_yylex #define YY_DECL int yylex (yyscan_t yyscanner) /* including LEMON generated header */ #include "Kml.h" typedef union { char *pval; struct symtab *symp; } kml_yystype; #define YYSTYPE kml_yystype /* ** This is a linked-list struct to store all the values for each token. */ typedef struct kmlFlexTokenStruct { char *value; struct kmlFlexTokenStruct *Next; } kmlFlexToken; typedef struct kml_coord { char *Value; struct kml_coord *Next; } kmlCoord; typedef kmlCoord *kmlCoordPtr; typedef struct kml_attr { char *Key; char *Value; struct kml_attr *Next; } kmlAttr; typedef kmlAttr *kmlAttrPtr; typedef struct kml_node { char *Tag; int Type; int Error; struct kml_attr *Attributes; struct kml_coord *Coordinates; struct kml_node *Next; } kmlNode; typedef kmlNode *kmlNodePtr; typedef struct kml_dynamic_ring { gaiaDynamicLinePtr ring; int interior; int has_z; struct kml_dynamic_ring *next; } kmlDynamicRing; typedef kmlDynamicRing *kmlDynamicRingPtr; typedef struct kml_dynamic_polygon { struct kml_dynamic_ring *first; struct kml_dynamic_ring *last; } kmlDynamicPolygon; typedef kmlDynamicPolygon *kmlDynamicPolygonPtr; struct kml_dyn_block { /* a struct taking trace of dynamic allocations */ int type[KML_DYN_BLOCK]; void *ptr[KML_DYN_BLOCK]; int index; struct kml_dyn_block *next; }; struct kml_data { /* a struct used to make the lexer-parser reentrant and thread-safe */ int kml_parse_error; int kml_line; int kml_col; struct kml_dyn_block *kml_first_dyn_block; struct kml_dyn_block *kml_last_dyn_block; kmlNodePtr result; YYSTYPE KmlLval; }; static struct kml_dyn_block * kmlCreateDynBlock (void) { /* allocating a new block to trace dynamic allocations */ int i; struct kml_dyn_block *p = malloc (sizeof (struct kml_dyn_block)); for (i = 0; i < KML_DYN_BLOCK; i++) { /* initializing map entries */ p->type[i] = KML_DYN_NONE; p->ptr[i] = NULL; } p->index = 0; p->next = NULL; return p; } static void kmlMapDynAlloc (struct kml_data *p_data, int type, void *ptr) { /* appending a dynamic allocation into the map */ struct kml_dyn_block *p; if (p_data->kml_first_dyn_block == NULL) { /* inserting the first block of the map */ p = kmlCreateDynBlock (); p_data->kml_first_dyn_block = p; p_data->kml_last_dyn_block = p; } if (p_data->kml_last_dyn_block->index >= KML_DYN_BLOCK) { /* adding a further block to the map */ p = kmlCreateDynBlock (); p_data->kml_last_dyn_block->next = p; p_data->kml_last_dyn_block = p; } p_data->kml_last_dyn_block->type[p_data->kml_last_dyn_block->index] = type; p_data->kml_last_dyn_block->ptr[p_data->kml_last_dyn_block->index] = ptr; p_data->kml_last_dyn_block->index++; } static void kmlMapDynClean (struct kml_data *p_data, void *ptr) { /* deleting a dynamic allocation from the map */ int i; struct kml_dyn_block *p = p_data->kml_first_dyn_block; while (p) { for (i = 0; i < KML_DYN_BLOCK; i++) { switch (p->type[i]) { case KML_DYN_DYNLINE: case KML_DYN_GEOM: case KML_DYN_DYNPG: case KML_DYN_NODE: case KML_DYN_COORD: case KML_DYN_ATTRIB: if (p->ptr[i] == ptr) { p->type[i] = KML_DYN_NONE; return; } break; }; } p = p->next; } } static void kml_free_dyn_polygon (kmlDynamicPolygonPtr dyn) { /* deleting a dynamic polygon (ring collection) */ kmlDynamicRingPtr r; kmlDynamicRingPtr rn; if (!dyn) return; r = dyn->first; while (r) { rn = r->next; if (r->ring) gaiaFreeDynamicLine (r->ring); free (r); r = rn; } free (dyn); } static void kml_free_coord (kmlCoordPtr c) { /* deleting a KML coordinate */ if (c == NULL) return; if (c->Value) free (c->Value); free (c); } static void kml_free_attrib (kmlAttrPtr a) { /* deleting a KML attribute */ if (a == NULL) return; if (a->Key) free (a->Key); if (a->Value) free (a->Value); free (a); } static void kml_free_node (kmlNodePtr n) { /* deleting a KML node */ kmlAttrPtr a; kmlAttrPtr an; kmlCoordPtr c; kmlCoordPtr cn; if (n == NULL) return; a = n->Attributes; while (a) { an = a->Next; kml_free_attrib (a); a = an; } c = n->Coordinates; while (c) { cn = c->Next; kml_free_coord (c); c = cn; } if (n->Tag) free (n->Tag); free (n); } static void kmlCleanMapDynAlloc (struct kml_data *p_data, int clean_all) { /* cleaning the dynamic allocations map */ int i; struct kml_dyn_block *pn; struct kml_dyn_block *p = p_data->kml_first_dyn_block; while (p) { if (clean_all) { for (i = 0; i < KML_DYN_BLOCK; i++) { /* deleting Geometry objects */ switch (p->type[i]) { case KML_DYN_DYNLINE: gaiaFreeDynamicLine ((gaiaDynamicLinePtr) (p->ptr[i])); break; case KML_DYN_GEOM: gaiaFreeGeomColl ((gaiaGeomCollPtr) (p->ptr[i])); break; case KML_DYN_DYNPG: kml_free_dyn_polygon ((kmlDynamicPolygonPtr) (p->ptr[i])); break; case KML_DYN_NODE: kml_free_node ((kmlNodePtr) (p->ptr[i])); break; case KML_DYN_COORD: kml_free_coord ((kmlCoordPtr) (p->ptr[i])); break; case KML_DYN_ATTRIB: kml_free_attrib ((kmlAttrPtr) (p->ptr[i])); break; }; } } /* deleting the map block */ pn = p->next; free (p); p = pn; } } static kmlDynamicPolygonPtr kml_alloc_dyn_polygon (struct kml_data *p_data) { /* creating a dynamic polygon (ring collection) */ kmlDynamicPolygonPtr p = malloc (sizeof (kmlDynamicPolygon)); kmlMapDynAlloc (p_data, KML_DYN_DYNPG, p); p->first = NULL; p->last = NULL; return p; } static void kml_add_polygon_ring (kmlDynamicPolygonPtr dyn_pg, gaiaDynamicLinePtr dyn, int interior, int has_z) { /* inserting a further ring into the collection (dynamic polygon) */ kmlDynamicRingPtr p = malloc (sizeof (kmlDynamicRing)); p->ring = dyn; p->interior = interior; p->has_z = has_z; p->next = NULL; if (dyn_pg->first == NULL) dyn_pg->first = p; if (dyn_pg->last != NULL) dyn_pg->last->next = p; dyn_pg->last = p; } static void kml_freeString (char **ptr) { /* releasing a string from the lexer */ if (*ptr != NULL) free (*ptr); *ptr = NULL; } static void kml_saveString (char **ptr, const char *str) { /* saving a string from the lexer */ int len = strlen (str); kml_freeString (ptr); *ptr = malloc (len + 1); strcpy (*ptr, str); } static kmlCoordPtr kml_coord (struct kml_data *p_data, void *value) { /* creating a coord Item */ int len; kmlFlexToken *tok = (kmlFlexToken *) value; kmlCoordPtr c = malloc (sizeof (kmlCoord)); kmlMapDynAlloc (p_data, KML_DYN_COORD, c); len = strlen (tok->value); c->Value = malloc (len + 1); strcpy (c->Value, tok->value); c->Next = NULL; return c; } static kmlAttrPtr kml_attribute (struct kml_data *p_data, void *key, void *value) { /* creating an attribute */ int len; kmlFlexToken *k_tok = (kmlFlexToken *) key; kmlFlexToken *v_tok = (kmlFlexToken *) value; kmlAttrPtr a = malloc (sizeof (kmlAttr)); kmlMapDynAlloc (p_data, KML_DYN_ATTRIB, a); len = strlen (k_tok->value); a->Key = malloc (len + 1); strcpy (a->Key, k_tok->value); len = strlen (v_tok->value); /* we need to de-quote the string, removing first and last ".." */ if (*(v_tok->value + 0) == '"' && *(v_tok->value + len - 1) == '"') { a->Value = malloc (len - 1); memcpy (a->Value, v_tok->value + 1, len - 1); *(a->Value + len - 1) = '\0'; } else { a->Value = malloc (len + 1); strcpy (a->Value, v_tok->value); } a->Next = NULL; return a; } static void kml_freeTree (kmlNodePtr t) { /* deleting a KML tree */ kmlNodePtr n; kmlNodePtr nn; n = t; while (n) { nn = n->Next; kml_free_node (n); n = nn; } } static kmlNodePtr kml_createNode (struct kml_data *p_data, void *tag, void *attributes, void *coords) { /* creating a node */ kmlAttrPtr a; kmlCoordPtr c; int len; kmlFlexToken *tok = (kmlFlexToken *) tag; kmlNodePtr n = malloc (sizeof (kmlNode)); kmlMapDynAlloc (p_data, KML_DYN_NODE, n); len = strlen (tok->value); n->Tag = malloc (len + 1); strcpy (n->Tag, tok->value); n->Type = KML_PARSER_OPEN_NODE; n->Error = 0; a = (kmlAttrPtr) attributes; while (a) { /* transferring ownership of attributes */ kmlMapDynClean (p_data, a); a = a->Next; } n->Attributes = attributes; c = (kmlCoordPtr) coords; while (c) { /* transferring ownership of attributes */ kmlMapDynClean (p_data, c); c = c->Next; } n->Coordinates = coords; n->Next = NULL; return n; } static kmlNodePtr kml_createSelfClosedNode (struct kml_data *p_data, void *tag, void *attributes) { /* creating a self-closed node */ kmlAttrPtr a; int len; kmlFlexToken *tok = (kmlFlexToken *) tag; kmlNodePtr n = malloc (sizeof (kmlNode)); kmlMapDynAlloc (p_data, KML_DYN_NODE, n); len = strlen (tok->value); n->Tag = malloc (len + 1); strcpy (n->Tag, tok->value); n->Type = KML_PARSER_SELF_CLOSED_NODE; n->Error = 0; a = (kmlAttrPtr) attributes; while (a) { /* transferring ownership of attributes */ kmlMapDynClean (p_data, a); a = a->Next; } n->Attributes = attributes; n->Coordinates = NULL; n->Next = NULL; return n; } static kmlNodePtr kml_closingNode (struct kml_data *p_data, void *tag) { /* creating a closing node */ int len; kmlFlexToken *tok = (kmlFlexToken *) tag; kmlNodePtr n = malloc (sizeof (kmlNode)); kmlMapDynAlloc (p_data, KML_DYN_NODE, n); len = strlen (tok->value); n->Tag = malloc (len + 1); strcpy (n->Tag, tok->value); n->Type = KML_PARSER_CLOSED_NODE; n->Error = 0; n->Attributes = NULL; n->Coordinates = NULL; n->Next = NULL; return n; } static int kml_cleanup (kmlFlexToken * token) { kmlFlexToken *ptok; kmlFlexToken *ptok_n; if (token == NULL) return 0; ptok = token; while (ptok) { ptok_n = ptok->Next; if (ptok->value != NULL) free (ptok->value); free (ptok); ptok = ptok_n; } return 0; } static void kml_xferString (char **p, const char *str) { /* saving some token */ int len; if (str == NULL) { *p = NULL; return; } len = strlen (str); *p = malloc (len + 1); strcpy (*p, str); } static int guessKmlGeometryType (kmlNodePtr node) { /* attempting to guess the Geometry Type for a KML node */ int type = GAIA_KML_UNKNOWN; if (strcmp (node->Tag, "Point") == 0) type = GAIA_KML_POINT; if (strcmp (node->Tag, "LineString") == 0) type = GAIA_KML_LINESTRING; if (strcmp (node->Tag, "Polygon") == 0) type = GAIA_KML_POLYGON; if (strcmp (node->Tag, "MultiGeometry") == 0) type = GAIA_KML_MULTIGEOMETRY; return type; } static int kml_check_coord (const char *value) { /* checking a KML coordinate */ int decimal = 0; const char *p = value; if (*p == '+' || *p == '-') p++; while (*p != '\0') { if (*p == '.') { if (!decimal) decimal = 1; else return 0; } else if (*p >= '0' && *p <= '9') ; else return 0; p++; } return 1; } static int kml_extract_coords (const char *value, double *x, double *y, double *z, int *count) { /* extracting KML coords from a comma-separated string */ const char *in = value; char buf[1024]; char *out = buf; *out = '\0'; while (*in != '\0') { if (*in == ',') { *out = '\0'; if (*buf != '\0') { if (!kml_check_coord (buf)) return 0; switch (*count) { case 0: *x = atof (buf); *count += 1; break; case 1: *y = atof (buf); *count += 1; break; case 2: *z = atof (buf); *count += 1; break; default: *count += 1; break; }; } in++; out = buf; *out = '\0'; continue; } *out++ = *in++; } *out = '\0'; /* parsing the last item */ if (*buf != '\0') { if (!kml_check_coord (buf)) return 0; switch (*count) { case 0: *x = atof (buf); *count += 1; break; case 1: *y = atof (buf); *count += 1; break; case 2: *z = atof (buf); *count += 1; break; default: *count += 1; break; }; } return 1; } static int kml_parse_point_v2 (kmlCoordPtr coord, double *x, double *y, double *z, int *has_z) { /* parsing KML <coordinates> [Point] */ int count = 0; kmlCoordPtr c = coord; while (c) { if (!kml_extract_coords (c->Value, x, y, z, &count)) return 0; c = c->Next; } if (count == 2) { *has_z = 0; return 1; } if (count == 3) { *has_z = 1; return 1; } return 0; } static int kml_parse_point (struct kml_data *p_data, gaiaGeomCollPtr geom, kmlNodePtr node, kmlNodePtr * next) { /* parsing a <Point> */ double x; double y; double z; int has_z; gaiaGeomCollPtr pt; gaiaGeomCollPtr last; if (strcmp (node->Tag, "coordinates") == 0) { /* parsing a KML <Point> */ if (!kml_parse_point_v2 (node->Coordinates, &x, &y, &z, &has_z)) return 0; node = node->Next; if (node == NULL) return 0; if (strcmp (node->Tag, "coordinates") == 0) ; else return 0; node = node->Next; if (node == NULL) return 0; if (strcmp (node->Tag, "Point") == 0) ; else return 0; *next = node->Next; goto ok; } return 0; ok: /* ok, KML nodes match as expected */ if (has_z) { pt = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pt); gaiaAddPointToGeomCollXYZ (pt, x, y, z); } else { pt = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pt); gaiaAddPointToGeomColl (pt, x, y); } last = geom; while (1) { /* searching the last Geometry within chain */ if (last->Next == NULL) break; last = last->Next; } last->Next = pt; return 1; } static int kml_extract_multi_coord (const char *value, double *x, double *y, double *z, int *count, int *follow) { /* extracting KML coords from a comma-separated string */ const char *in = value; char buf[1024]; char *out = buf; int last = 0; *out = '\0'; while (*in != '\0') { last = *in; if (*in == ',') { *out = '\0'; if (*buf != '\0') { if (!kml_check_coord (buf)) return 0; switch (*count) { case 0: *x = atof (buf); *count += 1; break; case 1: *y = atof (buf); *count += 1; break; case 2: *z = atof (buf); *count += 1; break; default: *count += 1; break; }; } in++; out = buf; *out = '\0'; continue; } *out++ = *in++; } *out = '\0'; /* parsing the last item */ if (*buf != '\0') { if (!kml_check_coord (buf)) return 0; switch (*count) { case 0: *x = atof (buf); *count += 1; break; case 1: *y = atof (buf); *count += 1; break; case 2: *z = atof (buf); *count += 1; break; default: *count += 1; break; }; } if (last == ',') *follow = 1; else *follow = 0; return 1; } static int kml_extract_multi_coords (kmlCoordPtr coord, double *x, double *y, double *z, int *count, kmlCoordPtr * next) { /* extracting KML coords from a comma-separated string */ int follow; kmlCoordPtr c = coord; while (c) { if (!kml_extract_multi_coord (c->Value, x, y, z, count, &follow)) return 0; if (!follow && c->Next != NULL) { if (*(c->Next->Value) == ',') follow = 1; } if (follow) c = c->Next; else { *next = c->Next; break; } } return 1; } static void kml_add_point_to_line (gaiaDynamicLinePtr dyn, double x, double y) { /* appending a point */ gaiaAppendPointToDynamicLine (dyn, x, y); } static void kml_add_point_to_lineZ (gaiaDynamicLinePtr dyn, double x, double y, double z) { /* appending a point */ gaiaAppendPointZToDynamicLine (dyn, x, y, z); } static int kml_parse_coordinates (kmlCoordPtr coord, gaiaDynamicLinePtr dyn, int *has_z) { /* parsing KML <coordinates> [Linestring or Ring] */ int count = 0; double x; double y; double z; kmlCoordPtr next = NULL; kmlCoordPtr c = coord; while (c) { if (!kml_extract_multi_coords (c, &x, &y, &z, &count, &next)) return 0; if (count == 2) { *has_z = 0; kml_add_point_to_line (dyn, x, y); count = 0; } else if (count == 3) { kml_add_point_to_lineZ (dyn, x, y, z); count = 0; } else return 0; c = next; } return 1; } static int kml_count_dyn_points (gaiaDynamicLinePtr dyn) { /* count how many vertices are into sone linestring/ring */ int iv = 0; gaiaPointPtr pt = dyn->First; while (pt) { iv++; pt = pt->Next; } return iv; } static int kml_parse_linestring (struct kml_data *p_data, gaiaGeomCollPtr geom, kmlNodePtr node, kmlNodePtr * next) { /* parsing a <LineString> */ gaiaGeomCollPtr ln; gaiaGeomCollPtr last; gaiaLinestringPtr new_ln; gaiaPointPtr pt; int iv; int has_z = 1; int points = 0; gaiaDynamicLinePtr dyn = gaiaAllocDynamicLine (); kmlMapDynAlloc (p_data, KML_DYN_DYNLINE, dyn); if (strcmp (node->Tag, "coordinates") == 0) { /* parsing a KML <LineString> */ if (!kml_parse_coordinates (node->Coordinates, dyn, &has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "coordinates") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "LineString") == 0) ; else goto error; *next = node->Next; } /* ok, KML nodes match as expected */ points = kml_count_dyn_points (dyn); if (points < 2) goto error; if (has_z) { ln = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, ln); new_ln = gaiaAddLinestringToGeomColl (ln, points); pt = dyn->First; iv = 0; while (pt) { gaiaSetPointXYZ (new_ln->Coords, iv, pt->X, pt->Y, pt->Z); iv++; pt = pt->Next; } } else { ln = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, ln); new_ln = gaiaAddLinestringToGeomColl (ln, points); pt = dyn->First; iv = 0; while (pt) { gaiaSetPoint (new_ln->Coords, iv, pt->X, pt->Y); iv++; pt = pt->Next; } } last = geom; while (1) { /* searching the last Geometry within chain */ if (last->Next == NULL) break; last = last->Next; } last->Next = ln; gaiaFreeDynamicLine (dyn); return 1; error: gaiaFreeDynamicLine (dyn); return 0; } static gaiaDynamicLinePtr kml_parse_ring (kmlNodePtr node, int *interior, int *has_z, kmlNodePtr * next) { /* parsing a generic KML ring */ gaiaDynamicLinePtr dyn = gaiaAllocDynamicLine (); *has_z = 1; if (strcmp (node->Tag, "outerBoundaryIs") == 0) { /* parsing a KML <outerBoundaryIs> */ node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "coordinates") == 0) { /* parsing a KML <kml:coordinates> */ if (!kml_parse_coordinates (node->Coordinates, dyn, has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "coordinates") == 0) ; else goto error; } else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "outerBoundaryIs") == 0) ; else goto error; *interior = 0; *next = node->Next; return dyn; } if (strcmp (node->Tag, "innerBoundaryIs") == 0) { /* parsing a KML <innerBoundaryIs> */ node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "coordinates") == 0) { /* parsing a KML <coordinates> */ if (!kml_parse_coordinates (node->Coordinates, dyn, has_z)) goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "coordinates") == 0) ; else goto error; } else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "LinearRing") == 0) ; else goto error; node = node->Next; if (node == NULL) goto error; if (strcmp (node->Tag, "innerBoundaryIs") == 0) ; else goto error; *interior = 1; *next = node->Next; return dyn; } error: gaiaFreeDynamicLine (dyn); return 0; } static int kml_parse_polygon (struct kml_data *p_data, gaiaGeomCollPtr geom, kmlNodePtr node, kmlNodePtr * next_n) { /* parsing a <Polygon> */ int interior; int has_z; int inners; int outers; int points; int iv; int ib = 0; gaiaGeomCollPtr pg; gaiaGeomCollPtr last_g; gaiaPolygonPtr new_pg; gaiaRingPtr ring; gaiaDynamicLinePtr dyn; gaiaPointPtr pt; gaiaDynamicLinePtr exterior_ring; kmlNodePtr next; kmlDynamicRingPtr dyn_rng; kmlDynamicPolygonPtr dyn_pg = kml_alloc_dyn_polygon (p_data); kmlNodePtr n = node; while (n) { /* looping on rings */ if (strcmp (n->Tag, "Polygon") == 0) { *next_n = n->Next; break; } dyn = kml_parse_ring (n, &interior, &has_z, &next); if (dyn == NULL) goto error; if (kml_count_dyn_points (dyn) < 4) { /* cannot be a valid ring */ goto error; } /* checking if the ring is closed */ if (has_z) { if (dyn->First->X == dyn->Last->X && dyn->First->Y == dyn->Last->Y && dyn->First->Z == dyn->Last->Z) ; else goto error; } else { if (dyn->First->X == dyn->Last->X && dyn->First->Y == dyn->Last->Y) ; else goto error; } kml_add_polygon_ring (dyn_pg, dyn, interior, has_z); n = next; } /* ok, KML nodes match as expected */ inners = 0; outers = 0; has_z = 1; dyn_rng = dyn_pg->first; while (dyn_rng) { /* verifying the rings collection */ if (dyn_rng->has_z == 0) has_z = 0; if (dyn_rng->interior) inners++; else { outers++; points = kml_count_dyn_points (dyn_rng->ring); exterior_ring = dyn_rng->ring; } dyn_rng = dyn_rng->next; } if (outers != 1) /* no exterior ring declared */ goto error; if (has_z) { pg = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); new_pg = gaiaAddPolygonToGeomColl (pg, points, inners); /* initializing the EXTERIOR RING */ ring = new_pg->Exterior; pt = exterior_ring->First; iv = 0; while (pt) { gaiaSetPointXYZ (ring->Coords, iv, pt->X, pt->Y, pt->Z); iv++; pt = pt->Next; } dyn_rng = dyn_pg->first; while (dyn_rng) { /* initializing any INTERIOR RING */ if (dyn_rng->interior == 0) { dyn_rng = dyn_rng->next; continue; } points = kml_count_dyn_points (dyn_rng->ring); ring = gaiaAddInteriorRing (new_pg, ib, points); ib++; pt = dyn_rng->ring->First; iv = 0; while (pt) { gaiaSetPointXYZ (ring->Coords, iv, pt->X, pt->Y, pt->Z); iv++; pt = pt->Next; } dyn_rng = dyn_rng->next; } } else { pg = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); new_pg = gaiaAddPolygonToGeomColl (pg, points, inners); /* initializing the EXTERIOR RING */ ring = new_pg->Exterior; pt = exterior_ring->First; iv = 0; while (pt) { gaiaSetPoint (ring->Coords, iv, pt->X, pt->Y); iv++; pt = pt->Next; } dyn_rng = dyn_pg->first; while (dyn_rng) { /* initializing any INTERIOR RING */ if (dyn_rng->interior == 0) { dyn_rng = dyn_rng->next; continue; } points = kml_count_dyn_points (dyn_rng->ring); ring = gaiaAddInteriorRing (new_pg, ib, points); ib++; pt = dyn_rng->ring->First; iv = 0; while (pt) { gaiaSetPoint (ring->Coords, iv, pt->X, pt->Y); iv++; pt = pt->Next; } dyn_rng = dyn_rng->next; } } last_g = geom; while (1) { /* searching the last Geometry within chain */ if (last_g->Next == NULL) break; last_g = last_g->Next; } last_g->Next = pg; kml_free_dyn_polygon (dyn_pg); return 1; error: kml_free_dyn_polygon (dyn_pg); return 0; } static int kml_parse_multi_geometry (struct kml_data *p_data, gaiaGeomCollPtr geom, kmlNodePtr node) { /* parsing a <MultiGeometry> */ kmlNodePtr next; kmlNodePtr n = node; while (n) { /* looping on Geometry Members */ if (n->Next == NULL) { /* verifying the last KML node */ if (strcmp (n->Tag, "MultiGeometry") == 0) break; else return 0; } if (strcmp (n->Tag, "Point") == 0) { n = n->Next; if (n == NULL) return 0; if (!kml_parse_point (p_data, geom, n, &next)) return 0; n = next; continue; } else if (strcmp (n->Tag, "LineString") == 0) { n = n->Next; if (n == NULL) return 0; if (!kml_parse_linestring (p_data, geom, n, &next)) return 0; n = next; continue; } else if (strcmp (n->Tag, "Polygon") == 0) { n = n->Next; if (n == NULL) return 0; if (!kml_parse_polygon (p_data, geom, n, &next)) return 0; n = next; continue; } else return 0; } return 1; } static gaiaGeomCollPtr kml_validate_geometry (struct kml_data *p_data, gaiaGeomCollPtr chain) { int xy = 0; int xyz = 0; int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaPointPtr save_pt = NULL; gaiaLinestringPtr save_ln = NULL; gaiaPolygonPtr save_pg = NULL; gaiaRingPtr i_ring; gaiaRingPtr o_ring; int ib; gaiaGeomCollPtr g; gaiaGeomCollPtr geom; g = chain; while (g) { if (g != chain) { if (g->DimensionModel == GAIA_XY) xy++; if (g->DimensionModel == GAIA_XY_Z) xyz++; } pt = g->FirstPoint; while (pt) { pts++; save_pt = pt; pt = pt->Next; } ln = g->FirstLinestring; while (ln) { lns++; save_ln = ln; ln = ln->Next; } pg = g->FirstPolygon; while (pg) { pgs++; save_pg = pg; pg = pg->Next; } g = g->Next; } if (pts == 1 && lns == 0 && pgs == 0) { /* POINT */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_MULTIPOINT; else geom->DeclaredType = GAIA_POINT; gaiaAddPointToGeomColl (geom, save_pt->X, save_pt->Y); return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_MULTIPOINT; else geom->DeclaredType = GAIA_POINT; gaiaAddPointToGeomCollXYZ (geom, save_pt->X, save_pt->Y, save_pt->Z); return geom; } } if (pts == 0 && lns == 1 && pgs == 0) { /* LINESTRING */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); } if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_MULTILINESTRING; else geom->DeclaredType = GAIA_LINESTRING; ln = gaiaAddLinestringToGeomColl (geom, save_ln->Points); gaiaCopyLinestringCoords (ln, save_ln); return geom; } if (pts == 0 && lns == 0 && pgs == 1) { /* POLYGON */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); } if (chain->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom->DeclaredType = GAIA_MULTIPOLYGON; else geom->DeclaredType = GAIA_POLYGON; i_ring = save_pg->Exterior; pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, save_pg->NumInteriors); o_ring = pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < save_pg->NumInteriors; ib++) { i_ring = save_pg->Interiors + ib; o_ring = gaiaAddInteriorRing (pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } return geom; } if (pts >= 1 && lns == 0 && pgs == 0) { /* MULTIPOINT */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); geom->DeclaredType = GAIA_MULTIPOINT; g = chain; while (g) { pt = g->FirstPoint; while (pt) { gaiaAddPointToGeomColl (geom, pt->X, pt->Y); pt = pt->Next; } g = g->Next; } return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); geom->DeclaredType = GAIA_MULTIPOINT; g = chain; while (g) { pt = g->FirstPoint; while (pt) { gaiaAddPointToGeomCollXYZ (geom, pt->X, pt->Y, pt->Z); pt = pt->Next; } g = g->Next; } return geom; } } if (pts == 0 && lns >= 1 && pgs == 0) { /* MULTILINESTRING */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); geom->DeclaredType = GAIA_MULTILINESTRING; g = chain; while (g) { ln = g->FirstLinestring; while (ln) { save_ln = gaiaAddLinestringToGeomColl (geom, ln->Points); gaiaCopyLinestringCoords (save_ln, ln); ln = ln->Next; } g = g->Next; } return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); geom->DeclaredType = GAIA_MULTILINESTRING; g = chain; while (g) { ln = g->FirstLinestring; while (ln) { save_ln = gaiaAddLinestringToGeomColl (geom, ln->Points); gaiaCopyLinestringCoords (save_ln, ln); ln = ln->Next; } g = g->Next; } return geom; } } if (pts == 0 && lns == 0 && pgs >= 1) { /* MULTIPOLYGON */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); geom->DeclaredType = GAIA_MULTIPOLYGON; g = chain; while (g) { pg = g->FirstPolygon; while (pg) { i_ring = pg->Exterior; save_pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, pg->NumInteriors); o_ring = save_pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < pg->NumInteriors; ib++) { i_ring = pg->Interiors + ib; o_ring = gaiaAddInteriorRing (save_pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } pg = pg->Next; } g = g->Next; } return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); geom->DeclaredType = GAIA_MULTIPOLYGON; g = chain; while (g) { pg = g->FirstPolygon; while (pg) { i_ring = pg->Exterior; save_pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, pg->NumInteriors); o_ring = save_pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < pg->NumInteriors; ib++) { i_ring = pg->Interiors + ib; o_ring = gaiaAddInteriorRing (save_pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } pg = pg->Next; } g = g->Next; } return geom; } } if ((pts + lns + pgs) > 0) { /* GEOMETRYCOLLECTION */ if (xy > 0) { /* 2D [XY] */ geom = gaiaAllocGeomColl (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; g = chain; while (g) { pt = g->FirstPoint; while (pt) { gaiaAddPointToGeomColl (geom, pt->X, pt->Y); pt = pt->Next; } ln = g->FirstLinestring; while (ln) { save_ln = gaiaAddLinestringToGeomColl (geom, ln->Points); gaiaCopyLinestringCoords (save_ln, ln); ln = ln->Next; } pg = g->FirstPolygon; while (pg) { i_ring = pg->Exterior; save_pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, pg->NumInteriors); o_ring = save_pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < pg->NumInteriors; ib++) { i_ring = pg->Interiors + ib; o_ring = gaiaAddInteriorRing (save_pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } pg = pg->Next; } g = g->Next; } return geom; } else { /* 3D [XYZ] */ geom = gaiaAllocGeomCollXYZ (); kmlMapDynAlloc (p_data, KML_DYN_GEOM, pg); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; g = chain; while (g) { pt = g->FirstPoint; while (pt) { gaiaAddPointToGeomCollXYZ (geom, pt->X, pt->Y, pt->Z); pt = pt->Next; } ln = g->FirstLinestring; while (ln) { save_ln = gaiaAddLinestringToGeomColl (geom, ln->Points); gaiaCopyLinestringCoords (save_ln, ln); ln = ln->Next; } pg = g->FirstPolygon; while (pg) { i_ring = pg->Exterior; save_pg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, pg->NumInteriors); o_ring = save_pg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (ib = 0; ib < pg->NumInteriors; ib++) { i_ring = pg->Interiors + ib; o_ring = gaiaAddInteriorRing (save_pg, ib, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } pg = pg->Next; } g = g->Next; } return geom; } } return NULL; } static void kml_free_geom_chain (gaiaGeomCollPtr geom) { /* deleting a chain of preliminary geometries */ gaiaGeomCollPtr gn; while (geom) { gn = geom->Next; gaiaFreeGeomColl (geom); geom = gn; } } static gaiaGeomCollPtr kml_build_geometry (struct kml_data *p_data, kmlNodePtr tree) { /* attempting to build a geometry from KML nodes */ gaiaGeomCollPtr geom; gaiaGeomCollPtr result; int geom_type; kmlNodePtr next; if (tree == NULL) return NULL; geom_type = guessKmlGeometryType (tree); if (geom_type == GAIA_KML_UNKNOWN) { /* unsupported main geometry type */ return NULL; } /* creating the main geometry */ geom = gaiaAllocGeomColl (); switch (geom_type) { /* parsing KML nodes accordingly with declared KML type */ case GAIA_KML_POINT: geom->DeclaredType = GAIA_POINT; if (!kml_parse_point (p_data, geom, tree->Next, &next)) goto error; break; case GAIA_KML_LINESTRING: geom->DeclaredType = GAIA_LINESTRING; if (!kml_parse_linestring (p_data, geom, tree->Next, &next)) goto error; break; case GAIA_KML_POLYGON: geom->DeclaredType = GAIA_POLYGON; if (!kml_parse_polygon (p_data, geom, tree->Next, &next)) goto error; if (next != NULL) goto error; break; case GAIA_KML_MULTIGEOMETRY: geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; if (!kml_parse_multi_geometry (p_data, geom, tree->Next)) goto error; break; }; /* attempting to build the final geometry */ result = kml_validate_geometry (p_data, geom); if (result == NULL) goto error; kml_free_geom_chain (geom); return result; error: kml_free_geom_chain (geom); return NULL; } /* including LEMON generated code */ #include "Kml.c" /* ** CAVEAT: there is an incompatibility between LEMON and FLEX ** this macro resolves the issue */ #undef yy_accept #define yy_accept yy_kml_flex_accept /* including FLEX generated code */ #include "lex.Kml.c" gaiaGeomCollPtr gaiaParseKml (const unsigned char *dirty_buffer) { void *pParser = ParseAlloc (malloc); /* Linked-list of token values */ kmlFlexToken *tokens = malloc (sizeof (kmlFlexToken)); /* Pointer to the head of the list */ kmlFlexToken *head = tokens; int yv; gaiaGeomCollPtr geom = NULL; yyscan_t scanner; struct kml_data str_data; /* initializing the helper structs */ str_data.kml_line = 1; str_data.kml_col = 1; str_data.kml_parse_error = 0; str_data.kml_first_dyn_block = NULL; str_data.kml_last_dyn_block = NULL; str_data.result = NULL; /* initializing the scanner state */ Kmllex_init_extra (&str_data, &scanner); str_data.KmlLval.pval = NULL; tokens->value = NULL; tokens->Next = NULL; Kml_scan_string ((char *) dirty_buffer, scanner); /* / Keep tokenizing until we reach the end / yylex() will return the next matching Token for us. */ while ((yv = yylex (scanner)) != 0) { if (yv == -1) { str_data.kml_parse_error = 1; break; } tokens->Next = malloc (sizeof (kmlFlexToken)); tokens->Next->Next = NULL; kml_xferString (&(tokens->Next->value), str_data.KmlLval.pval); /* Pass the token to the wkt parser created from lemon */ Parse (pParser, yv, &(tokens->Next->value), &str_data); tokens = tokens->Next; } /* This denotes the end of a line as well as the end of the parser */ Parse (pParser, KML_NEWLINE, 0, &str_data); ParseFree (pParser, free); Kmllex_destroy (scanner); /* Assigning the token as the end to avoid seg faults while cleaning */ tokens->Next = NULL; kml_cleanup (head); kml_freeString (&(str_data.KmlLval.pval)); if (str_data.kml_parse_error) { if (str_data.result) { /* if a Geometry-result has been produced, the stack is already cleaned */ kml_freeTree (str_data.result); kmlCleanMapDynAlloc (&str_data, 0); } else { /* otherwise we are required to clean the stack */ kmlCleanMapDynAlloc (&str_data, 1); } return NULL; } if (str_data.result == NULL) { kmlCleanMapDynAlloc (&str_data, 0); return NULL; } /* attempting to build a geometry from KML */ geom = kml_build_geometry (&str_data, str_data.result); geom->Srid = 4326; kml_freeTree (str_data.result); kmlCleanMapDynAlloc (&str_data, 0); return geom; } /* ** CAVEAT: we must now undefine any Lemon/Flex own macro */ #undef YYNOCODE #undef YYNSTATE #undef YYNRULE #undef YY_SHIFT_MAX #undef YY_REDUCE_USE_DFLT #undef YY_REDUCE_MAX #undef YY_FLUSH_BUFFER #undef YY_DO_BEFORE_ACTION #undef YY_NUM_RULES #undef YY_END_OF_BUFFER #undef YY_END_FILE #undef YYACTIONTYPE #undef YY_SZ_ACTTAB #undef YY_NEW_FILE #undef BEGIN #undef YY_START #undef YY_CURRENT_BUFFER #undef YY_CURRENT_BUFFER_LVALUE #undef YY_STATE_BUF_SIZE #undef YY_DECL #undef YY_FATAL_ERROR #undef YYMINORTYPE #undef YY_CHAR #undef YYSTYPE #undef input #undef ParseAlloc #undef ParseFree #undef ParseStackPeak #undef Parse #undef yyalloc #undef yyfree #undef yyin #undef yyleng #undef yyless #undef yylex #undef yylineno #undef yyout #undef yyrealloc #undef yyrestart #undef yyStackEntry #undef yytext #undef yywrap #undef yyzerominor #undef yy_accept #undef yy_action #undef yy_base #undef yy_buffer_stack #undef yy_buffer_stack_max #undef yy_buffer_stack_top #undef yy_c_buf_p #undef yy_chk #undef yy_create_buffer #undef yy_def #undef yy_default #undef yy_delete_buffer #undef yy_destructor #undef yy_ec #undef yy_fatal_error #undef yy_find_reduce_action #undef yy_find_shift_action #undef yy_flex_debug #undef yy_flush_buffer #undef yy_get_next_buffer #undef yy_get_previous_state #undef yy_init #undef yy_init_buffer #undef yy_init_globals #undef yy_load_buffer #undef yy_load_buffer_state #undef yy_lookahead #undef yy_meta #undef yy_new_buffer #undef yy_nxt #undef yy_parse_failed #undef yy_pop_parser_stack #undef yy_reduce #undef yy_reduce_ofst #undef yy_set_bol #undef yy_set_interactive #undef yy_shift #undef yy_shift_ofst #undef yy_start #undef yy_state_type #undef yy_switch_to_buffer #undef yy_syntax_error #undef yy_trans_info #undef yy_try_NUL_trans #undef yyParser #undef yyStackEntry #undef yyStackOverflow #undef yyRuleInfo #undef yytext_ptr #undef yyunput #undef yyzerominor #undef ParseARG_SDECL #undef ParseARG_PDECL #undef ParseARG_FETCH #undef ParseARG_STORE #undef REJECT #undef yymore #undef YY_MORE_ADJ #undef YY_RESTORE_YY_MORE_OFFSET #undef YY_LESS_LINENO #undef yyTracePrompt #undef yyTraceFILE #undef yyTokenName #undef yyRuleName #undef ParseTrace #undef yylex #undef YY_DECL ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiageo/Makefile.am��������������������������������������������������������0000664�0001750�0001750�00000002047�12544707704�015664� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ SUBDIRS = flex lemon AM_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ AM_CPPFLAGS += -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libgaiageo.la gaiageo.la GAIAGEO_COMMON_SOURCES = gg_advanced.c \ gg_endian.c \ gg_geodesic.c \ gg_geometries.c \ gg_geoscvt.c \ gg_relations.c \ gg_relations_ext.c \ gg_lwgeom.c \ gg_extras.c \ gg_shape.c \ gg_transform.c \ gg_wkb.c \ gg_wkt.c \ gg_vanuatu.c \ gg_ewkt.c \ gg_geoJSON.c \ gg_kml.c \ gg_gml.c \ gg_voronoj.c \ gg_xml.c \ gg_matrix.c libgaiageo_la_SOURCES = $(GAIAGEO_COMMON_SOURCES) gaiageo_la_SOURCES = $(GAIAGEO_COMMON_SOURCES) gaiageo_la_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ gaiageo_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. gaiageo_la_CPPFLAGS += -DLOADABLE_EXTENSION gaiageo_la_LDFLAGS = -module gaiageo_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = Ewkt.h Ewkt.c lex.Ewkt.c \ geoJSON.h geoJSON.c lex.GeoJson.c \ Gml.h Gml.c lex.Gml.c \ Kml.h Kml.c lex.Kml.c \ vanuatuWkt.h vanuatuWkt.c lex.VanuatuWkt.c �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiageo/gg_relations.c�����������������������������������������������������0000664�0001750�0001750�00000313426�12544707704�016457� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_relations.c -- Gaia spatial relations version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <sys/types.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <float.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #ifndef OMIT_GEOS /* including GEOS */ #include <geos_c.h> #endif #include <spatialite_private.h> #include <spatialite/sqlite.h> #include <spatialite/gaiageo.h> /* GLOBAL variables */ char *gaia_geos_error_msg = NULL; char *gaia_geos_warning_msg = NULL; char *gaia_geosaux_error_msg = NULL; SPATIALITE_PRIVATE void splite_free_geos_cache_item (struct splite_geos_cache_item *p) { #ifndef OMIT_GEOS /* including GEOS */ if (p->preparedGeosGeom) GEOSPreparedGeom_destroy (p->preparedGeosGeom); if (p->geosGeom) GEOSGeom_destroy (p->geosGeom); #endif p->geosGeom = NULL; p->preparedGeosGeom = NULL; } SPATIALITE_PRIVATE void splite_free_geos_cache_item_r (const void *p_cache, struct splite_geos_cache_item *p) { #ifndef OMIT_GEOS /* including GEOS */ struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) { splite_free_geos_cache_item (p); return; } if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) { splite_free_geos_cache_item (p); return; } handle = cache->GEOS_handle; if (handle == NULL) { splite_free_geos_cache_item (p); return; } if (p->preparedGeosGeom) GEOSPreparedGeom_destroy_r (handle, p->preparedGeosGeom); if (p->geosGeom) GEOSGeom_destroy_r (handle, p->geosGeom); #endif p->geosGeom = NULL; p->preparedGeosGeom = NULL; } GAIAGEO_DECLARE void gaiaResetGeosMsg () { /* resets the GEOS error and warning messages */ if (gaia_geos_error_msg != NULL) free (gaia_geos_error_msg); if (gaia_geos_warning_msg != NULL) free (gaia_geos_warning_msg); if (gaia_geosaux_error_msg != NULL) free (gaia_geosaux_error_msg); gaia_geos_error_msg = NULL; gaia_geos_warning_msg = NULL; gaia_geosaux_error_msg = NULL; } GAIAGEO_DECLARE const char * gaiaGetGeosErrorMsg () { /* return the latest GEOS error message */ return gaia_geos_error_msg; } GAIAGEO_DECLARE const char * gaiaGetGeosWarningMsg () { /* return the latest GEOS error message */ return gaia_geos_warning_msg; } GAIAGEO_DECLARE const char * gaiaGetGeosAuxErrorMsg () { /* return the latest GEOS (auxialiary) error message */ return gaia_geosaux_error_msg; } GAIAGEO_DECLARE void gaiaSetGeosErrorMsg (const char *msg) { /* setting the latest GEOS error message */ int len; if (gaia_geos_error_msg != NULL) free (gaia_geos_error_msg); gaia_geos_error_msg = NULL; if (msg == NULL) return; len = strlen (msg); gaia_geos_error_msg = malloc (len + 1); strcpy (gaia_geos_error_msg, msg); } GAIAGEO_DECLARE void gaiaSetGeosWarningMsg (const char *msg) { /* setting the latest GEOS error message */ int len; if (gaia_geos_warning_msg != NULL) free (gaia_geos_warning_msg); gaia_geos_warning_msg = NULL; if (msg == NULL) return; len = strlen (msg); gaia_geos_warning_msg = malloc (len + 1); strcpy (gaia_geos_warning_msg, msg); } GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg (const char *msg) { /* setting the latest GEOS (auxiliary) error message */ int len; if (gaia_geosaux_error_msg != NULL) free (gaia_geosaux_error_msg); gaia_geosaux_error_msg = NULL; if (msg == NULL) return; len = strlen (msg); gaia_geosaux_error_msg = malloc (len + 1); strcpy (gaia_geosaux_error_msg, msg); } static int check_point (double *coords, int points, double x, double y) { /* checks if [X,Y] point is defined into this coordinate array [Linestring or Ring] */ int iv; double xx; double yy; for (iv = 0; iv < points; iv++) { gaiaGetPoint (coords, iv, &xx, &yy); if (xx == x && yy == y) return 1; } return 0; } GAIAGEO_DECLARE int gaiaLinestringEquals (gaiaLinestringPtr line1, gaiaLinestringPtr line2) { /* checks if two Linestrings are "spatially equal" */ int iv; double x; double y; if (line1->Points != line2->Points) return 0; for (iv = 0; iv < line1->Points; iv++) { gaiaGetPoint (line1->Coords, iv, &x, &y); if (!check_point (line2->Coords, line2->Points, x, y)) return 0; } return 1; } GAIAGEO_DECLARE int gaiaPolygonEquals (gaiaPolygonPtr polyg1, gaiaPolygonPtr polyg2) { /* checks if two Polygons are "spatially equal" */ int ib; int ib2; int iv; int ok2; double x; double y; gaiaRingPtr ring1; gaiaRingPtr ring2; if (polyg1->NumInteriors != polyg2->NumInteriors) return 0; /* checking the EXTERIOR RINGs */ ring1 = polyg1->Exterior; ring2 = polyg2->Exterior; if (ring1->Points != ring2->Points) return 0; for (iv = 0; iv < ring1->Points; iv++) { gaiaGetPoint (ring1->Coords, iv, &x, &y); if (!check_point (ring2->Coords, ring2->Points, x, y)) return 0; } for (ib = 0; ib < polyg1->NumInteriors; ib++) { /* checking the INTERIOR RINGS */ int ok = 0; ring1 = polyg1->Interiors + ib; for (ib2 = 0; ib2 < polyg2->NumInteriors; ib2++) { ok2 = 1; ring2 = polyg2->Interiors + ib2; for (iv = 0; iv < ring1->Points; iv++) { gaiaGetPoint (ring1->Coords, iv, &x, &y); if (!check_point (ring2->Coords, ring2->Points, x, y)) { ok2 = 0; break; } } if (ok2) { ok = 1; break; } } if (!ok) return 0; } return 1; } #ifndef OMIT_GEOS /* including GEOS */ static int splite_mbr_overlaps (gaiaGeomCollPtr g1, gaiaGeomCollPtr g2) { /* checks if two MBRs do overlap */ if (g1->MaxX < g2->MinX) return 0; if (g1->MinX > g2->MaxX) return 0; if (g1->MaxY < g2->MinY) return 0; if (g1->MinY > g2->MaxY) return 0; return 1; } static int splite_mbr_contains (gaiaGeomCollPtr g1, gaiaGeomCollPtr g2) { /* checks if MBR#1 fully contains MBR#2 */ if (g2->MinX < g1->MinX) return 0; if (g2->MaxX > g1->MaxX) return 0; if (g2->MinY < g1->MinY) return 0; if (g2->MaxY > g1->MaxY) return 0; return 1; } static int splite_mbr_within (gaiaGeomCollPtr g1, gaiaGeomCollPtr g2) { /* checks if MBR#1 is fully contained within MBR#2 */ if (g1->MinX < g2->MinX) return 0; if (g1->MaxX > g2->MaxX) return 0; if (g1->MinY < g2->MinY) return 0; if (g1->MaxY > g2->MaxY) return 0; return 1; } static int splite_mbr_equals (gaiaGeomCollPtr g1, gaiaGeomCollPtr g2) { /* checks if MBR#1 equals MBR#2 */ if (g1->MinX != g2->MinX) return 0; if (g1->MaxX != g2->MaxX) return 0; if (g1->MinY != g2->MinY) return 0; if (g1->MaxY != g2->MaxY) return 0; return 1; } static int evalGeosCacheItem (unsigned char *blob, int blob_size, uLong crc, struct splite_geos_cache_item *p) { /* evaluting if this one could be a valid cache hit */ if (blob_size != p->gaiaBlobSize) { /* surely not a match; different size */ return 0; } if (crc != p->crc32) { /* surely not a match: different CRC32 */ return 0; } /* the first 46 bytes of the BLOB contain the MBR, the SRID and the Type; so are assumed to represent a valid signature */ if (memcmp (blob, p->gaiaBlob, 46) == 0) return 1; return 0; } static int evalGeosCache (struct splite_internal_cache *cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2, GEOSPreparedGeometry ** gPrep, gaiaGeomCollPtr * geom) { /* handling the internal GEOS cache */ struct splite_geos_cache_item *p1 = &(cache->cacheItem1); struct splite_geos_cache_item *p2 = &(cache->cacheItem2); uLong crc1 = crc32 (0L, blob1, size1); uLong crc2 = crc32 (0L, blob2, size2); GEOSContextHandle_t handle = NULL; if (cache == NULL) return 0; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return 0; handle = cache->GEOS_handle; if (handle == NULL) return 0; /* checking the first cache item */ if (evalGeosCacheItem (blob1, size1, crc1, p1)) { /* found a matching item */ if (p1->preparedGeosGeom == NULL) { /* preparing the GeosGeometries */ p1->geosGeom = gaiaToGeos_r (cache, geom1); if (p1->geosGeom) { p1->preparedGeosGeom = (void *) GEOSPrepare_r (handle, p1->geosGeom); if (p1->preparedGeosGeom == NULL) { /* unexpected failure */ GEOSGeom_destroy_r (handle, p1->geosGeom); p1->geosGeom = NULL; } } } if (p1->preparedGeosGeom) { /* returning the corresponding GeosPreparedGeometry */ *gPrep = p1->preparedGeosGeom; *geom = geom2; return 1; } return 0; } /* checking the second cache item */ if (evalGeosCacheItem (blob2, size2, crc2, p2)) { /* found a matching item */ if (p2->preparedGeosGeom == NULL) { /* preparing the GeosGeometries */ p2->geosGeom = gaiaToGeos_r (cache, geom2); if (p2->geosGeom) { p2->preparedGeosGeom = (void *) GEOSPrepare_r (handle, p2->geosGeom); if (p2->preparedGeosGeom == NULL) { /* unexpected failure */ GEOSGeom_destroy_r (handle, p2->geosGeom); p2->geosGeom = NULL; } } } if (p2->preparedGeosGeom) { /* returning the corresponding GeosPreparedGeometry */ *gPrep = p2->preparedGeosGeom; *geom = geom1; return 1; } return 0; } /* updating the GEOS cache item#1 */ memcpy (p1->gaiaBlob, blob1, 46); p1->gaiaBlobSize = size1; p1->crc32 = crc1; if (p1->preparedGeosGeom) GEOSPreparedGeom_destroy_r (handle, p1->preparedGeosGeom); if (p1->geosGeom) GEOSGeom_destroy_r (handle, p1->geosGeom); p1->geosGeom = NULL; p1->preparedGeosGeom = NULL; /* updating the GEOS cache item#2 */ memcpy (p2->gaiaBlob, blob2, 46); p2->gaiaBlobSize = size2; p2->crc32 = crc2; if (p2->preparedGeosGeom) GEOSPreparedGeom_destroy_r (handle, p2->preparedGeosGeom); if (p2->geosGeom) GEOSGeom_destroy_r (handle, p2->geosGeom); p2->geosGeom = NULL; p2->preparedGeosGeom = NULL; return 0; } GAIAGEO_DECLARE int gaiaGeomCollEquals (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if two Geometries are "spatially equal" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_equals (geom1, geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSEquals (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollEquals_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if two Geometries are "spatially equal" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_equals (geom1, geom2)) return 0; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSEquals_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollIntersects (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if two Geometries do "spatially intersects" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSIntersects (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollIntersects_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if two Geometries do "spatially intersects" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSIntersects_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollPreparedIntersects (const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2) { /* checks if two Geometries do "spatially intersects" */ int ret; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr geom; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; /* handling the internal GEOS cache */ if (evalGeosCache (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { g2 = gaiaToGeos_r (cache, geom); ret = GEOSPreparedIntersects_r (handle, gPrep, g2); GEOSGeom_destroy_r (handle, g2); return ret; } g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSIntersects_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollDisjoint (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if two Geometries are "spatially disjoint" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 1; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSDisjoint (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollDisjoint_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if two Geometries are "spatially disjoint" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 1; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSDisjoint_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollPreparedDisjoint (const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2) { /* checks if two Geometries are "spatially disjoint" */ int ret; GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr geom; GEOSContextHandle_t handle = NULL; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 1; /* handling the internal GEOS cache */ if (evalGeosCache (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { g2 = gaiaToGeos_r (cache, geom); ret = GEOSPreparedDisjoint_r (handle, gPrep, g2); GEOSGeom_destroy_r (handle, g2); return ret; } g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSDisjoint_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollOverlaps (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if two Geometries do "spatially overlaps" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSOverlaps (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollOverlaps_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if two Geometries do "spatially overlaps" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSOverlaps_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollPreparedOverlaps (const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2) { /* checks if two Geometries do "spatially overlaps" */ int ret; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr geom; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; /* handling the internal GEOS cache */ if (evalGeosCache (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { g2 = gaiaToGeos_r (cache, geom); ret = GEOSPreparedOverlaps_r (handle, gPrep, g2); GEOSGeom_destroy_r (handle, g2); return ret; } g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSOverlaps_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollCrosses (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if two Geometries do "spatially crosses" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSCrosses (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollCrosses_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if two Geometries do "spatially crosses" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSCrosses_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollPreparedCrosses (const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2) { /* checks if two Geometries do "spatially crosses" */ int ret; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr geom; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; /* handling the internal GEOS cache */ if (evalGeosCache (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { g2 = gaiaToGeos_r (cache, geom); ret = GEOSPreparedCrosses_r (handle, gPrep, g2); GEOSGeom_destroy_r (handle, g2); return ret; } g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSCrosses_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollTouches (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if two Geometries do "spatially touches" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSTouches (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollTouches_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if two Geometries do "spatially touches" */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSTouches_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollPreparedTouches (const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2) { /* checks if two Geometries do "spatially touches" */ int ret; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSGeometry *g1; GEOSGeometry *g2; GEOSPreparedGeometry *gPrep; gaiaGeomCollPtr geom; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return 0; /* handling the internal GEOS cache */ if (evalGeosCache (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { g2 = gaiaToGeos_r (cache, geom); ret = GEOSPreparedTouches_r (handle, gPrep, g2); GEOSGeom_destroy_r (handle, g2); return ret; } g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSTouches_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollWithin (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if GEOM-1 is completely contained within GEOM-2 */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_within (geom1, geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSWithin (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollWithin_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if GEOM-1 is completely contained within GEOM-2 */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_within (geom1, geom2)) return 0; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSWithin_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollPreparedWithin (const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2) { /* checks if GEOM-1 is completely contained within GEOM-2 */ int ret; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr geom; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_within (geom1, geom2)) return 0; /* handling the internal GEOS cache */ if (evalGeosCache (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { g2 = gaiaToGeos_r (cache, geom); if (geom == geom2) ret = GEOSPreparedWithin_r (handle, gPrep, g2); else ret = GEOSPreparedContains_r (handle, gPrep, g2); GEOSGeom_destroy_r (handle, g2); return ret; } g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSWithin_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollContains (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if GEOM-1 completely contains GEOM-2 */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_contains (geom1, geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSContains (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollContains_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if GEOM-1 completely contains GEOM-2 */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_contains (geom1, geom2)) return 0; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSContains_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollPreparedContains (const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2) { /* checks if GEOM-1 completely contains GEOM-2 */ int ret; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr geom; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_contains (geom1, geom2)) return 0; /* handling the internal GEOS cache */ if (evalGeosCache (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { g2 = gaiaToGeos_r (cache, geom); if (geom == geom2) ret = GEOSPreparedContains_r (handle, gPrep, g2); else ret = GEOSPreparedWithin_r (handle, gPrep, g2); GEOSGeom_destroy_r (handle, g2); return ret; } g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSContains_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); return ret; } GAIAGEO_DECLARE int gaiaGeomCollRelate (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, const char *pattern) { /* checks if if GEOM-1 and GEOM-2 have a spatial relationship as specified by the pattern Matrix */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom1 || !geom2) return -1; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return -1; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSRelatePattern (g1, g2, pattern); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaGeomCollRelate_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, const char *pattern) { /* checks if if GEOM-1 and GEOM-2 have a spatial relationship as specified by the pattern Matrix */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return -1; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSRelatePattern_r (handle, g1, g2, pattern); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaGeomCollLength (gaiaGeomCollPtr geom, double *xlength) { /* computes the total length for this Geometry */ double length; int ret; GEOSGeometry *g; gaiaResetGeosMsg (); if (!geom) return 0; if (gaiaIsToxic (geom)) return 0; g = gaiaToGeos (geom); ret = GEOSLength (g, &length); GEOSGeom_destroy (g); if (ret) *xlength = length; return ret; } GAIAGEO_DECLARE int gaiaGeomCollLength_r (const void *p_cache, gaiaGeomCollPtr geom, double *xlength) { /* computes the total length for this Geometry */ double length; int ret; GEOSGeometry *g; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom) return 0; if (gaiaIsToxic_r (cache, geom)) return 0; g = gaiaToGeos_r (cache, geom); ret = GEOSLength_r (handle, g, &length); GEOSGeom_destroy_r (handle, g); if (ret) *xlength = length; return ret; } GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter (gaiaGeomCollPtr geom, int perimeter, double *xlength) { /* computes the total length or perimeter for this Geometry */ double length; int ret; GEOSGeometry *g; int mode = GAIA2GEOS_ONLY_LINESTRINGS; if (perimeter) mode = GAIA2GEOS_ONLY_POLYGONS; gaiaResetGeosMsg (); if (!geom) return 0; if (gaiaIsToxic (geom)) return 0; g = gaiaToGeosSelective (geom, mode); if (g == NULL) { *xlength = 0.0; return 1; } ret = GEOSLength (g, &length); GEOSGeom_destroy (g); if (ret) *xlength = length; return ret; } GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter_r (const void *p_cache, gaiaGeomCollPtr geom, int perimeter, double *xlength) { /* computes the total length or perimeter for this Geometry */ double length; int ret; int mode = GAIA2GEOS_ONLY_LINESTRINGS; GEOSGeometry *g; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; if (perimeter) mode = GAIA2GEOS_ONLY_POLYGONS; gaiaResetGeosMsg_r (cache); if (!geom) return 0; if (gaiaIsToxic_r (cache, geom)) return 0; g = gaiaToGeosSelective_r (cache, geom, mode); if (g == NULL) { *xlength = 0.0; return 1; } ret = GEOSLength_r (handle, g, &length); GEOSGeom_destroy_r (handle, g); if (ret) *xlength = length; return ret; } GAIAGEO_DECLARE int gaiaGeomCollArea (gaiaGeomCollPtr geom, double *xarea) { /* computes the total area for this Geometry */ double area; int ret; GEOSGeometry *g; gaiaResetGeosMsg (); if (!geom) return 0; if (gaiaIsToxic (geom)) return 0; g = gaiaToGeos (geom); ret = GEOSArea (g, &area); GEOSGeom_destroy (g); if (ret) *xarea = area; return ret; } GAIAGEO_DECLARE int gaiaGeomCollArea_r (const void *p_cache, gaiaGeomCollPtr geom, double *xarea) { /* computes the total area for this Geometry */ double area; int ret; GEOSGeometry *g; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom) return 0; if (gaiaIsToxic_r (cache, geom)) return 0; g = gaiaToGeos_r (cache, geom); ret = GEOSArea_r (handle, g, &area); GEOSGeom_destroy_r (handle, g); if (ret) *xarea = area; return ret; } GAIAGEO_DECLARE int gaiaGeomCollDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *xdist) { /* computes the minimum distance intercurring between GEOM-1 and GEOM-2 */ double dist; int ret; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom1 || !geom2) return 0; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSDistance (g1, g2, &dist); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (ret) *xdist = dist; return ret; } GAIAGEO_DECLARE int gaiaGeomCollDistance_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *xdist) { /* computes the minimum distance intercurring between GEOM-1 and GEOM-2 */ double dist; int ret; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return 0; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return 0; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSDistance_r (handle, g1, g2, &dist); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); if (ret) *xdist = dist; return ret; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* builds a new geometry representing the "spatial intersection" of GEOM-1 and GEOM-2 */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; gaiaResetGeosMsg (); if (!geom1 || !geom2) return NULL; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return NULL; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return NULL; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); g3 = GEOSIntersection (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (!g3) return NULL; if (geom1->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g3); else if (geom1->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g3); else geo = gaiaFromGeos_XY (g3); GEOSGeom_destroy (g3); if (geo == NULL) return NULL; geo->Srid = geom1->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* builds a new geometry representing the "spatial intersection" of GEOM-1 and GEOM-2 */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return NULL; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return NULL; /* quick check based on MBRs comparison */ if (!splite_mbr_overlaps (geom1, geom2)) return NULL; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); g3 = GEOSIntersection_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); if (!g3) return NULL; if (geom1->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ_r (cache, g3); else if (geom1->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM_r (cache, g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM_r (cache, g3); else geo = gaiaFromGeos_XY_r (cache, g3); GEOSGeom_destroy_r (handle, g3); if (geo == NULL) return NULL; geo->Srid = geom1->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* builds a new geometry representing the "spatial union" of GEOM-1 and GEOM-2 */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; gaiaResetGeosMsg (); if (!geom1 || !geom2) return NULL; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return NULL; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); g3 = GEOSUnion (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (geom1->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g3); else if (geom1->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g3); else geo = gaiaFromGeos_XY (g3); GEOSGeom_destroy (g3); if (geo == NULL) return NULL; geo->Srid = geom1->Srid; if (geo->DeclaredType == GAIA_POINT && geom1->DeclaredType == GAIA_MULTIPOINT) geo->DeclaredType = GAIA_MULTIPOINT; if (geo->DeclaredType == GAIA_LINESTRING && geom1->DeclaredType == GAIA_MULTILINESTRING) geo->DeclaredType = GAIA_MULTILINESTRING; if (geo->DeclaredType == GAIA_POLYGON && geom1->DeclaredType == GAIA_MULTIPOLYGON) geo->DeclaredType = GAIA_MULTIPOLYGON; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* builds a new geometry representing the "spatial union" of GEOM-1 and GEOM-2 */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return NULL; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return NULL; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); g3 = GEOSUnion_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); if (geom1->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ_r (cache, g3); else if (geom1->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM_r (cache, g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM_r (cache, g3); else geo = gaiaFromGeos_XY_r (cache, g3); GEOSGeom_destroy_r (handle, g3); if (geo == NULL) return NULL; geo->Srid = geom1->Srid; if (geo->DeclaredType == GAIA_POINT && geom1->DeclaredType == GAIA_MULTIPOINT) geo->DeclaredType = GAIA_MULTIPOINT; if (geo->DeclaredType == GAIA_LINESTRING && geom1->DeclaredType == GAIA_MULTILINESTRING) geo->DeclaredType = GAIA_MULTILINESTRING; if (geo->DeclaredType == GAIA_POLYGON && geom1->DeclaredType == GAIA_MULTIPOLYGON) geo->DeclaredType = GAIA_MULTIPOLYGON; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded (gaiaGeomCollPtr geom) { /* UnionCascaded (single Collection of polygons) */ GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr result; int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaResetGeosMsg (); if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; /* testing if geom only contains Polygons */ pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts || lns) return NULL; if (!pgs) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSUnionCascaded (g1); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM (g2); else result = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (result == NULL) return NULL; result->Srid = geom->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded_r (const void *p_cache, gaiaGeomCollPtr geom) { /* UnionCascaded (single Collection of polygons) */ GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr result; int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom) return NULL; if (gaiaIsToxic_r (cache, geom)) return NULL; /* testing if geom only contains Polygons */ pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts || lns) return NULL; if (!pgs) return NULL; g1 = gaiaToGeos_r (cache, geom); g2 = GEOSUnionCascaded_r (handle, g1); GEOSGeom_destroy_r (handle, g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) result = gaiaFromGeos_XYZ_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaFromGeos_XYM_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaFromGeos_XYZM_r (cache, g2); else result = gaiaFromGeos_XY_r (cache, g2); GEOSGeom_destroy_r (handle, g2); if (result == NULL) return NULL; result->Srid = geom->Srid; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* builds a new geometry representing the "spatial difference" of GEOM-1 and GEOM-2 */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; gaiaResetGeosMsg (); if (!geom1 || !geom2) return NULL; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return NULL; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); g3 = GEOSDifference (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (!g3) return NULL; if (geom1->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g3); else if (geom1->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g3); else geo = gaiaFromGeos_XY (g3); GEOSGeom_destroy (g3); if (geo == NULL) return NULL; geo->Srid = geom1->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* builds a new geometry representing the "spatial difference" of GEOM-1 and GEOM-2 */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return NULL; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return NULL; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); g3 = GEOSDifference_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); if (!g3) return NULL; if (geom1->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ_r (cache, g3); else if (geom1->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM_r (cache, g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM_r (cache, g3); else geo = gaiaFromGeos_XY_r (cache, g3); GEOSGeom_destroy_r (handle, g3); if (geo == NULL) return NULL; geo->Srid = geom1->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* builds a new geometry representing the "spatial symmetric difference" of GEOM-1 and GEOM-2 */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; gaiaResetGeosMsg (); if (!geom1 || !geom2) return NULL; if (gaiaIsToxic (geom1) || gaiaIsToxic (geom2)) return NULL; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); g3 = GEOSSymDifference (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (!g3) return NULL; if (geom1->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g3); else if (geom1->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g3); else geo = gaiaFromGeos_XY (g3); GEOSGeom_destroy (g3); if (geo == NULL) return NULL; geo->Srid = geom1->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* builds a new geometry representing the "spatial symmetric difference" of GEOM-1 and GEOM-2 */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; GEOSGeometry *g3; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return NULL; if (gaiaIsToxic_r (cache, geom1) || gaiaIsToxic_r (cache, geom2)) return NULL; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); g3 = GEOSSymDifference_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); if (!g3) return NULL; if (geom1->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ_r (cache, g3); else if (geom1->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM_r (cache, g3); else if (geom1->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM_r (cache, g3); else geo = gaiaFromGeos_XY_r (cache, g3); GEOSGeom_destroy_r (handle, g3); if (geo == NULL) return NULL; geo->Srid = geom1->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary (gaiaGeomCollPtr geom) { /* builds a new geometry representing the combinatorial boundary of GEOM */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSBoundary (g1); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g2); else geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary_r (const void *p_cache, gaiaGeomCollPtr geom) { /* builds a new geometry representing the combinatorial boundary of GEOM */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom) return NULL; if (gaiaIsToxic_r (cache, geom)) return NULL; g1 = gaiaToGeos_r (cache, geom); g2 = GEOSBoundary_r (handle, g1); GEOSGeom_destroy_r (handle, g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM_r (cache, g2); else geo = gaiaFromGeos_XY_r (cache, g2); GEOSGeom_destroy_r (handle, g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE int gaiaGeomCollCentroid (gaiaGeomCollPtr geom, double *x, double *y) { /* returns a Point representing the centroid for this Geometry */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom) return 0; if (gaiaIsToxic (geom)) { return 0; } g1 = gaiaToGeos (geom); g2 = GEOSGetCentroid (g1); GEOSGeom_destroy (g1); if (!g2) return 0; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g2); else geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (geo == NULL) return 0; if (geo->FirstPoint) { *x = geo->FirstPoint->X; *y = geo->FirstPoint->Y; gaiaFreeGeomColl (geo); return 1; } gaiaFreeGeomColl (geo); return 0; } GAIAGEO_DECLARE int gaiaGeomCollCentroid_r (const void *p_cache, gaiaGeomCollPtr geom, double *x, double *y) { /* returns a Point representing the centroid for this Geometry */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return 0; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return 0; handle = cache->GEOS_handle; if (handle == NULL) return 0; gaiaResetGeosMsg_r (cache); if (!geom) return 0; if (gaiaIsToxic_r (cache, geom)) { return 0; } g1 = gaiaToGeos_r (cache, geom); g2 = GEOSGetCentroid_r (handle, g1); GEOSGeom_destroy_r (handle, g1); if (!g2) return 0; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM_r (cache, g2); else geo = gaiaFromGeos_XY_r (cache, g2); GEOSGeom_destroy_r (handle, g2); if (geo == NULL) return 0; if (geo->FirstPoint) { *x = geo->FirstPoint->X; *y = geo->FirstPoint->Y; gaiaFreeGeomColl (geo); return 1; } gaiaFreeGeomColl (geo); return 0; } GAIAGEO_DECLARE int gaiaGetPointOnSurface (gaiaGeomCollPtr geom, double *x, double *y) { /* returns a Point guaranteed to lie on the Surface */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom) return 0; if (gaiaIsToxic (geom)) { return 0; } g1 = gaiaToGeos (geom); g2 = GEOSPointOnSurface (g1); GEOSGeom_destroy (g1); if (!g2) return 0; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g2); else geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (geo == NULL) return 0; if (geo->FirstPoint) { *x = geo->FirstPoint->X; *y = geo->FirstPoint->Y; gaiaFreeGeomColl (geo); return 1; } gaiaFreeGeomColl (geo); return 0; } GAIAGEO_DECLARE int gaiaGetPointOnSurface_r (const void *p_cache, gaiaGeomCollPtr geom, double *x, double *y) { /* returns a Point guaranteed to lie on the Surface */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return 0; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return 0; handle = cache->GEOS_handle; if (handle == NULL) return 0; gaiaResetGeosMsg_r (cache); if (!geom) return 0; if (gaiaIsToxic_r (cache, geom)) { return 0; } g1 = gaiaToGeos_r (cache, geom); g2 = GEOSPointOnSurface_r (handle, g1); GEOSGeom_destroy_r (handle, g1); if (!g2) return 0; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM_r (cache, g2); else geo = gaiaFromGeos_XY_r (cache, g2); GEOSGeom_destroy_r (handle, g2); if (geo == NULL) return 0; if (geo->FirstPoint) { *x = geo->FirstPoint->X; *y = geo->FirstPoint->Y; gaiaFreeGeomColl (geo); return 1; } gaiaFreeGeomColl (geo); return 0; } GAIAGEO_DECLARE int gaiaIsSimple (gaiaGeomCollPtr geom) { /* checks if this GEOMETRYCOLLECTION is a simple one */ int ret; GEOSGeometry *g; gaiaResetGeosMsg (); if (!geom) return -1; if (gaiaIsToxic (geom)) return 0; g = gaiaToGeos (geom); ret = GEOSisSimple (g); GEOSGeom_destroy (g); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaIsSimple_r (const void *p_cache, gaiaGeomCollPtr geom) { /* checks if this GEOMETRYCOLLECTION is a simple one */ int ret; GEOSGeometry *g; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom) return -1; if (gaiaIsToxic_r (cache, geom)) return -1; g = gaiaToGeos_r (cache, geom); ret = GEOSisSimple_r (handle, g); GEOSGeom_destroy_r (handle, g); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaIsRing (gaiaLinestringPtr line) { /* checks if this LINESTRING can be a valid RING */ gaiaGeomCollPtr geo; gaiaLinestringPtr line2; int ret; int iv; double x; double y; double z; double m; GEOSGeometry *g; gaiaResetGeosMsg (); if (!line) return -1; if (line->DimensionModel == GAIA_XY_Z) geo = gaiaAllocGeomCollXYZ (); else if (line->DimensionModel == GAIA_XY_M) geo = gaiaAllocGeomCollXYM (); else if (line->DimensionModel == GAIA_XY_Z_M) geo = gaiaAllocGeomCollXYZM (); else geo = gaiaAllocGeomColl (); line2 = gaiaAddLinestringToGeomColl (geo, line->Points); for (iv = 0; iv < line2->Points; iv++) { z = 0.0; m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (line2->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line2->Coords, iv, x, y, z); } else if (line2->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line2->Coords, iv, x, y, m); } else if (line2->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line2->Coords, iv, x, y, z, m); } else { gaiaSetPoint (line2->Coords, iv, x, y); } } if (gaiaIsToxic (geo)) { gaiaFreeGeomColl (geo); return -1; } g = gaiaToGeos (geo); gaiaFreeGeomColl (geo); ret = GEOSisRing (g); GEOSGeom_destroy (g); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaIsRing_r (const void *p_cache, gaiaLinestringPtr line) { /* checks if this LINESTRING can be a valid RING */ gaiaGeomCollPtr geo; gaiaLinestringPtr line2; int ret; int iv; double x; double y; double z; double m; GEOSGeometry *g; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!line) return -1; if (line->DimensionModel == GAIA_XY_Z) geo = gaiaAllocGeomCollXYZ (); else if (line->DimensionModel == GAIA_XY_M) geo = gaiaAllocGeomCollXYM (); else if (line->DimensionModel == GAIA_XY_Z_M) geo = gaiaAllocGeomCollXYZM (); else geo = gaiaAllocGeomColl (); line2 = gaiaAddLinestringToGeomColl (geo, line->Points); for (iv = 0; iv < line2->Points; iv++) { z = 0.0; m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (line2->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (line2->Coords, iv, x, y, z); } else if (line2->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (line2->Coords, iv, x, y, m); } else if (line2->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (line2->Coords, iv, x, y, z, m); } else { gaiaSetPoint (line2->Coords, iv, x, y); } } if (gaiaIsToxic_r (cache, geo)) { gaiaFreeGeomColl (geo); return -1; } g = gaiaToGeos_r (cache, geo); gaiaFreeGeomColl (geo); ret = GEOSisRing_r (handle, g); GEOSGeom_destroy_r (handle, g); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaIsValid (gaiaGeomCollPtr geom) { /* checks if this GEOMETRYCOLLECTION is a valid one */ int ret; GEOSGeometry *g; gaiaResetGeosMsg (); if (!geom) return -1; if (gaiaIsToxic (geom)) return 0; if (gaiaIsNotClosedGeomColl (geom)) return 0; g = gaiaToGeos (geom); ret = GEOSisValid (g); GEOSGeom_destroy (g); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaIsValid_r (const void *p_cache, gaiaGeomCollPtr geom) { /* checks if this GEOMETRYCOLLECTION is a valid one */ int ret; GEOSGeometry *g; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom) return -1; if (gaiaIsToxic_r (cache, geom)) return 0; if (gaiaIsNotClosedGeomColl_r (cache, geom)) return 0; g = gaiaToGeos_r (cache, geom); ret = GEOSisValid_r (handle, g); GEOSGeom_destroy_r (handle, g); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE char * gaiaIsValidReason (gaiaGeomCollPtr geom) { /* return a TEXT string stating if a Geometry is valid / and if not valid, a reason why */ char *text; int len; const char *str; char *gstr; GEOSGeometry *g; gaiaResetGeosMsg (); if (!geom) { str = "Invalid: NULL Geometry"; len = strlen (str); text = malloc (len + 1); strcpy (text, str); return text; } if (gaiaIsToxic (geom)) { str = "Invalid: Toxic Geometry ... too few points"; len = strlen (str); text = malloc (len + 1); strcpy (text, str); return text; } if (gaiaIsNotClosedGeomColl (geom)) { str = "Invalid: Unclosed Rings were detected"; len = strlen (str); text = malloc (len + 1); strcpy (text, str); return text; } g = gaiaToGeos (geom); gstr = GEOSisValidReason (g); GEOSGeom_destroy (g); if (gstr == NULL) return NULL; len = strlen (gstr); text = malloc (len + 1); strcpy (text, gstr); GEOSFree (gstr); return text; } GAIAGEO_DECLARE char * gaiaIsValidReason_r (const void *p_cache, gaiaGeomCollPtr geom) { /* return a TEXT string stating if a Geometry is valid / and if not valid, a reason why */ char *text; int len; const char *str; char *gstr; GEOSGeometry *g; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom) { str = "Invalid: NULL Geometry"; len = strlen (str); text = malloc (len + 1); strcpy (text, str); return text; } if (gaiaIsToxic (geom)) { str = "Invalid: Toxic Geometry ... too few points"; len = strlen (str); text = malloc (len + 1); strcpy (text, str); return text; } if (gaiaIsNotClosedGeomColl (geom)) { str = "Invalid: Unclosed Rings were detected"; len = strlen (str); text = malloc (len + 1); strcpy (text, str); return text; } g = gaiaToGeos_r (cache, geom); gstr = GEOSisValidReason_r (handle, g); GEOSGeom_destroy_r (handle, g); if (gstr == NULL) return NULL; len = strlen (gstr); text = malloc (len + 1); strcpy (text, gstr); GEOSFree_r (handle, gstr); return text; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail (gaiaGeomCollPtr geom) { /* return a Geometry detail causing a Geometry to be invalid */ char *reason = NULL; GEOSGeometry *g; GEOSGeometry *d = NULL; gaiaGeomCollPtr detail; gaiaResetGeosMsg (); if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; if (gaiaIsNotClosedGeomColl (geom)) return NULL; g = gaiaToGeos (geom); GEOSisValidDetail (g, 0, &reason, &d); GEOSGeom_destroy (g); if (reason != NULL) GEOSFree (reason); if (d == NULL) return NULL; detail = gaiaFromGeos_XY (d); GEOSGeom_destroy (d); return detail; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail_r (const void *p_cache, gaiaGeomCollPtr geom) { /* return a Geometry detail causing a Geometry to be invalid */ char *reason = NULL; GEOSGeometry *g; GEOSGeometry *d = NULL; gaiaGeomCollPtr detail; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; if (gaiaIsNotClosedGeomColl (geom)) return NULL; g = gaiaToGeos_r (cache, geom); GEOSisValidDetail_r (handle, g, 0, &reason, &d); GEOSGeom_destroy_r (handle, g); if (reason != NULL) GEOSFree_r (handle, reason); if (d == NULL) return NULL; detail = gaiaFromGeos_XY_r (cache, d); GEOSGeom_destroy_r (handle, d); return detail; } GAIAGEO_DECLARE int gaiaIsClosedGeom_r (const void *cache, gaiaGeomCollPtr geom) { /* checks if this geometry is a closed linestring (or multilinestring) */ int ret = 0; gaiaLinestringPtr ln; if (cache != NULL) gaiaResetGeosMsg_r (cache); if (!geom) return -1; if (cache != NULL) ret = gaiaIsToxic_r (cache, geom); else ret = gaiaIsToxic (geom); if (ret) return 0; ln = geom->FirstLinestring; while (ln) { /* unhappily GEOS v3.2.2 [system package on Debian Lenny and Ubuntu 12.04] * doesn't exposes the GEOSisClosed() API at all !!!! * GEOSGeometry *g; gaiaGeomCollPtr geoColl = gaiaAllocGeomColl(); gaiaInsertLinestringInGeomColl(geoColl, gaiaCloneLinestring(ln)); g = gaiaToGeos (geoColl); ret = GEOSisClosed (g); GEOSGeom_destroy (g); gaiaFreeGeomColl(geoColl); */ /* so we'll use this internal default in order to circumvent the above issue */ double x1; double y1; double z1; double m1; double x2; double y2; double z2; double m2; gaiaLineGetPoint (ln, 0, &x1, &y1, &z1, &m1); gaiaLineGetPoint (ln, ln->Points - 1, &x2, &y2, &z2, &m2); if (x1 == x2 && y1 == y2 && z1 == z2) ret = 1; else ret = 0; if (ret == 0) { /* this line isn't closed, so we don't need to continue */ break; } ln = ln->Next; } if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaIsClosedGeom (gaiaGeomCollPtr geom) { gaiaResetGeosMsg (); return gaiaIsClosedGeom_r (NULL, geom); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify (gaiaGeomCollPtr geom, double tolerance) { /* builds a simplified geometry using the Douglas-Peuker algorihtm */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSSimplify (g1, tolerance); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g2); else geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify_r (const void *p_cache, gaiaGeomCollPtr geom, double tolerance) { /* builds a simplified geometry using the Douglas-Peuker algorihtm */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom) return NULL; if (gaiaIsToxic_r (cache, geom)) return NULL; g1 = gaiaToGeos_r (cache, geom); g2 = GEOSSimplify_r (handle, g1, tolerance); GEOSGeom_destroy_r (handle, g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM_r (cache, g2); else geo = gaiaFromGeos_XY_r (cache, g2); GEOSGeom_destroy_r (handle, g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplifyPreserveTopology (gaiaGeomCollPtr geom, double tolerance) { /* builds a simplified geometry using the Douglas-Peuker algorihtm [preserving topology] */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSTopologyPreserveSimplify (g1, tolerance); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g2); else geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplifyPreserveTopology_r (const void *p_cache, gaiaGeomCollPtr geom, double tolerance) { /* builds a simplified geometry using the Douglas-Peuker algorihtm [preserving topology] */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom) return NULL; if (gaiaIsToxic_r (cache, geom)) return NULL; g1 = gaiaToGeos_r (cache, geom); g2 = GEOSTopologyPreserveSimplify_r (handle, g1, tolerance); GEOSGeom_destroy_r (handle, g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM_r (cache, g2); else geo = gaiaFromGeos_XY_r (cache, g2); GEOSGeom_destroy_r (handle, g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull (gaiaGeomCollPtr geom) { /* builds a geometry that is the convex hull of GEOM */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSConvexHull (g1); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g2); else geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull_r (const void *p_cache, gaiaGeomCollPtr geom) { /* builds a geometry that is the convex hull of GEOM */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom) return NULL; if (gaiaIsToxic_r (cache, geom)) return NULL; g1 = gaiaToGeos_r (cache, geom); g2 = GEOSConvexHull_r (handle, g1); GEOSGeom_destroy_r (handle, g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM_r (cache, g2); else geo = gaiaFromGeos_XY_r (cache, g2); GEOSGeom_destroy_r (handle, g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer (gaiaGeomCollPtr geom, double radius, int points) { /* builds a geometry that is the GIS buffer of GEOM */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom) return NULL; if (gaiaIsToxic (geom)) return NULL; g1 = gaiaToGeos (geom); g2 = GEOSBuffer (g1, radius, points); GEOSGeom_destroy (g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ (g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM (g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM (g2); else geo = gaiaFromGeos_XY (g2); GEOSGeom_destroy (g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer_r (const void *p_cache, gaiaGeomCollPtr geom, double radius, int points) { /* builds a geometry that is the GIS buffer of GEOM */ gaiaGeomCollPtr geo; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); if (!geom) return NULL; if (gaiaIsToxic_r (cache, geom)) return NULL; g1 = gaiaToGeos_r (cache, geom); g2 = GEOSBuffer_r (handle, g1, radius, points); GEOSGeom_destroy_r (handle, g1); if (!g2) return NULL; if (geom->DimensionModel == GAIA_XY_Z) geo = gaiaFromGeos_XYZ_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_M) geo = gaiaFromGeos_XYM_r (cache, g2); else if (geom->DimensionModel == GAIA_XY_Z_M) geo = gaiaFromGeos_XYZM_r (cache, g2); else geo = gaiaFromGeos_XY_r (cache, g2); GEOSGeom_destroy_r (handle, g2); if (geo == NULL) return NULL; geo->Srid = geom->Srid; return geo; } static void auxFromGeosPolygon (GEOSContextHandle_t handle, const GEOSGeometry * geos, gaiaGeomCollPtr result) { /* converting a Polygon from GEOS to SpatiaLite */ const GEOSGeometry *geos_ring; const GEOSCoordSequence *coords; unsigned int pts; unsigned int geos_dims; int interiors; int iv; int ib; double x; double y; double z; gaiaPolygonPtr pg; gaiaRingPtr rng; if (handle != NULL) { geos_ring = GEOSGetExteriorRing_r (handle, geos); interiors = GEOSGetNumInteriorRings_r (handle, geos); coords = GEOSGeom_getCoordSeq_r (handle, geos_ring); GEOSCoordSeq_getDimensions_r (handle, coords, &geos_dims); GEOSCoordSeq_getSize_r (handle, coords, &pts); } else { geos_ring = GEOSGetExteriorRing (geos); interiors = GEOSGetNumInteriorRings (geos); coords = GEOSGeom_getCoordSeq (geos_ring); GEOSCoordSeq_getDimensions (coords, &geos_dims); GEOSCoordSeq_getSize (coords, &pts); } pg = gaiaAddPolygonToGeomColl (result, pts, interiors); /* setting up the Exterior ring */ rng = pg->Exterior; for (iv = 0; iv < (int) pts; iv++) { if (geos_dims == 3) { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, coords, iv, &x); GEOSCoordSeq_getY_r (handle, coords, iv, &y); GEOSCoordSeq_getZ_r (handle, coords, iv, &z); } else { GEOSCoordSeq_getX (coords, iv, &x); GEOSCoordSeq_getY (coords, iv, &y); GEOSCoordSeq_getZ (coords, iv, &z); } } else { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, coords, iv, &x); GEOSCoordSeq_getY_r (handle, coords, iv, &y); } else { GEOSCoordSeq_getX (coords, iv, &x); GEOSCoordSeq_getY (coords, iv, &y); } z = 0.0; } if (rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, 0.0); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, 0.0); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } for (ib = 0; ib < interiors; ib++) { /* setting up any interior ring */ if (handle != NULL) { geos_ring = GEOSGetInteriorRingN_r (handle, geos, ib); coords = GEOSGeom_getCoordSeq_r (handle, geos_ring); GEOSCoordSeq_getDimensions_r (handle, coords, &geos_dims); GEOSCoordSeq_getSize_r (handle, coords, &pts); } else { geos_ring = GEOSGetInteriorRingN (geos, ib); coords = GEOSGeom_getCoordSeq (geos_ring); GEOSCoordSeq_getDimensions (coords, &geos_dims); GEOSCoordSeq_getSize (coords, &pts); } rng = gaiaAddInteriorRing (pg, ib, pts); for (iv = 0; iv < (int) pts; iv++) { if (geos_dims == 3) { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, coords, iv, &x); GEOSCoordSeq_getY_r (handle, coords, iv, &y); GEOSCoordSeq_getZ_r (handle, coords, iv, &z); } else { GEOSCoordSeq_getX (coords, iv, &x); GEOSCoordSeq_getY (coords, iv, &y); GEOSCoordSeq_getZ (coords, iv, &z); } } else { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, coords, iv, &x); GEOSCoordSeq_getY_r (handle, coords, iv, &y); } else { GEOSCoordSeq_getX (coords, iv, &x); GEOSCoordSeq_getY (coords, iv, &y); } z = 0.0; } if (rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, x, y, z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, x, y, 0.0); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, x, y, z, 0.0); } else { gaiaSetPoint (rng->Coords, iv, x, y); } } } } static void auxGeosMbr (GEOSContextHandle_t handle, const GEOSCoordSequence * cs, unsigned int pts, double *min_x, double *min_y, double *max_x, double *max_y) { /* computing the MBR */ int iv; double x; double y; *min_x = DBL_MAX; *min_y = DBL_MAX; *max_x = 0 - DBL_MAX; *max_y = 0 - DBL_MAX; for (iv = 0; iv < (int) pts; iv++) { if (handle != NULL) { GEOSCoordSeq_getX_r (handle, cs, iv, &x); GEOSCoordSeq_getY_r (handle, cs, iv, &y); } else { GEOSCoordSeq_getX (cs, iv, &x); GEOSCoordSeq_getY (cs, iv, &y); } if (x < *min_x) *min_x = x; if (x > *max_x) *max_x = x; if (y < *min_y) *min_y = y; if (y > *max_y) *max_y = y; } } static gaiaGeomCollPtr gaiaPolygonizeCommon (const void *cache, GEOSContextHandle_t handle, gaiaGeomCollPtr geom, int force_multi) { /* attempts to rearrange a generic Geometry into a (multi)polygon */ int ig; int ib; int iv; int interiors; int geos_dims = 2; int pts = 0; int lns = 0; int pgs = 0; int items; int error; double x; double y; double z; double m; gaiaGeomCollPtr result = NULL; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; GEOSCoordSequence *cs; const GEOSGeometry *const *geos_list = NULL; GEOSGeometry **p_item; GEOSGeometry *geos; const GEOSGeometry *geos_item; const GEOSGeometry *geos_item2; const GEOSGeometry *geos_ring; char *valid_polygons = NULL; const GEOSCoordSequence *coords; unsigned int pts1; unsigned int pts2; double min_x1; double max_x1; double min_y1; double max_y1; double min_x2; double max_x2; double min_y2; double max_y2; int ret; if (!geom) return NULL; if (cache != NULL) ret = gaiaIsToxic_r (cache, geom); else ret = gaiaIsToxic (geom); if (ret) return NULL; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts || pgs) return NULL; ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } if (!lns) return NULL; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_Z_M) geos_dims = 3; /* allocating GEOS linestrings */ geos_list = malloc (sizeof (const GEOSGeometry * const *) * lns); p_item = (GEOSGeometry **) geos_list; for (iv = 0; iv < lns; iv++) { /* initializing to NULL */ *p_item++ = NULL; } p_item = (GEOSGeometry **) geos_list; /* initializing GEOS linestrings */ ln = geom->FirstLinestring; while (ln) { if (handle != NULL) cs = GEOSCoordSeq_create_r (handle, ln->Points, geos_dims); else cs = GEOSCoordSeq_create (ln->Points, geos_dims); for (iv = 0; iv < ln->Points; iv++) { /* exterior ring segments */ z = 0.0; if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (geos_dims == 3) { if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); GEOSCoordSeq_setZ_r (handle, cs, iv, z); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); GEOSCoordSeq_setZ (cs, iv, z); } } else { if (handle != NULL) { GEOSCoordSeq_setX_r (handle, cs, iv, x); GEOSCoordSeq_setY_r (handle, cs, iv, y); } else { GEOSCoordSeq_setX (cs, iv, x); GEOSCoordSeq_setY (cs, iv, y); } } } if (handle != NULL) *p_item++ = GEOSGeom_createLineString_r (handle, cs); else *p_item++ = GEOSGeom_createLineString (cs); ln = ln->Next; } /* calling GEOSPolygonize */ if (handle != NULL) geos = GEOSPolygonize_r (handle, geos_list, lns); else geos = GEOSPolygonize (geos_list, lns); if (geos == NULL) goto cleanup; /* / / GEOSPolygonize is expected to return a collection of Polygons / / CAVEAT: internal holes are returned as such (interior rings in / some Polygon), but are returned as distinct Polygons too / / we must check this, so to *not* return Polygons representing holes / */ error = 0; if (handle != NULL) items = GEOSGetNumGeometries_r (handle, geos); else items = GEOSGetNumGeometries (geos); for (ig = 0; ig < items; ig++) { /* looping on elementaty GEOS geometries */ if (handle != NULL) { geos_item = GEOSGetGeometryN_r (handle, geos, ig); if (GEOSGeomTypeId_r (handle, geos_item) != GEOS_POLYGON) { /* not a Polygon ... ouch ... */ error = 1; goto cleanup; } } else { geos_item = GEOSGetGeometryN (geos, ig); if (GEOSGeomTypeId (geos_item) != GEOS_POLYGON) { /* not a Polygon ... ouch ... */ error = 1; goto cleanup; } } } /* identifying valid Polygons [excluding holes] */ valid_polygons = malloc (items); for (ig = 0; ig < items; ig++) valid_polygons[ig] = 'Y'; for (ig = 0; ig < items; ig++) { /* looping on elementaty GEOS Polygons */ if (handle != NULL) { geos_item = GEOSGetGeometryN_r (handle, geos, ig); interiors = GEOSGetNumInteriorRings_r (handle, geos_item); } else { geos_item = GEOSGetGeometryN (geos, ig); interiors = GEOSGetNumInteriorRings (geos_item); } for (ib = 0; ib < interiors; ib++) { /* looping on any interior ring */ if (handle != NULL) { geos_ring = GEOSGetInteriorRingN_r (handle, geos_item, ib); coords = GEOSGeom_getCoordSeq_r (handle, geos_ring); GEOSCoordSeq_getSize_r (handle, coords, &pts1); } else { geos_ring = GEOSGetInteriorRingN (geos_item, ib); coords = GEOSGeom_getCoordSeq (geos_ring); GEOSCoordSeq_getSize (coords, &pts1); } auxGeosMbr (handle, coords, pts1, &min_x1, &min_y1, &max_x1, &max_y1); for (iv = 0; iv < items; iv++) { if (iv == ig) { /* skipping the Polygon itself */ continue; } if (valid_polygons[iv] == 'N') { /* skipping any already invalid Polygon */ continue; } if (handle != NULL) { geos_item2 = GEOSGetGeometryN_r (handle, geos, iv); if (GEOSGetNumInteriorRings_r (handle, geos_item2) > 0) { /* this Polygon contains holes [surely valid] */ continue; } geos_ring = GEOSGetExteriorRing_r (handle, geos_item2); coords = GEOSGeom_getCoordSeq_r (handle, geos_ring); GEOSCoordSeq_getSize_r (handle, coords, &pts2); } else { geos_item2 = GEOSGetGeometryN (geos, iv); if (GEOSGetNumInteriorRings (geos_item2) > 0) { /* this Polygon contains holes [surely valid] */ continue; } geos_ring = GEOSGetExteriorRing (geos_item2); coords = GEOSGeom_getCoordSeq (geos_ring); GEOSCoordSeq_getSize (coords, &pts2); } if (pts1 == pts2) { auxGeosMbr (handle, coords, pts2, &min_x2, &min_y2, &max_x2, &max_y2); if (min_x1 == min_x2 && min_y1 == min_y2 && max_x1 == max_x2 && max_y1 == max_y2) { /* same #points, same MBRs: invalidating */ valid_polygons[iv] = 'N'; } } } } } /* creating the Geometry to be returned */ if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); if (result == NULL) return NULL; result->Srid = geom->Srid; if (force_multi) result->DeclaredType = GAIA_MULTIPOLYGON; for (ig = 0; ig < items; ig++) { /* looping on GEOS Polygons */ if (handle != NULL) geos_item = GEOSGetGeometryN_r (handle, geos, ig); else geos_item = GEOSGetGeometryN (geos, ig); if (valid_polygons[ig] == 'Y') auxFromGeosPolygon (handle, geos_item, result); } cleanup: if (valid_polygons != NULL) free (valid_polygons); if (geos_list != NULL) { /* memory cleanup */ p_item = (GEOSGeometry **) geos_list; for (iv = 0; iv < lns; iv++) { if (*p_item != NULL) { if (handle != NULL) GEOSGeom_destroy_r (handle, *p_item); else GEOSGeom_destroy (*p_item); } p_item++; } p_item = (GEOSGeometry **) geos_list; free (p_item); } if (geos != NULL) { if (handle != NULL) GEOSGeom_destroy_r (handle, geos); else GEOSGeom_destroy (geos); } if (error || result->FirstPolygon == NULL) { gaiaFreeGeomColl (result); return NULL; } return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi) { /* attempts to rearrange a generic Geometry into a (multi)polygon */ gaiaResetGeosMsg (); return gaiaPolygonizeCommon (NULL, NULL, geom, force_multi); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize_r (const void *p_cache, gaiaGeomCollPtr geom, int force_multi) { /* attempts to rearrange a generic Geometry into a (multi)polygon */ struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return NULL; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return NULL; handle = cache->GEOS_handle; if (handle == NULL) return NULL; gaiaResetGeosMsg_r (cache); return gaiaPolygonizeCommon (cache, handle, geom, force_multi); } GAIAGEO_DECLARE int gaiaGeomCollCovers (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if geom1 "spatially covers" geom2 */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom1 || !geom2) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_contains (geom1, geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSCovers (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaGeomCollCovers_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if geom1 "spatially covers" geom2 */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_contains (geom1, geom2)) return 0; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSCovers_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaGeomCollPreparedCovers (const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2) { /* checks if geom1 "spatially covers" geom2 */ int ret; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; gaiaGeomCollPtr geom; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_contains (geom1, geom2)) return 0; /* handling the internal GEOS cache */ if (evalGeosCache (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { g2 = gaiaToGeos_r (cache, geom); if (geom == geom2) ret = GEOSPreparedCovers_r (handle, gPrep, g2); else ret = GEOSPreparedCoveredBy_r (handle, gPrep, g2); GEOSGeom_destroy_r (handle, g2); if (ret == 2) return -1; return ret; } g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSCovers_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaGeomCollCoveredBy (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if geom1 is "spatially covered by" geom2 */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; gaiaResetGeosMsg (); if (!geom1 || !geom2) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_within (geom1, geom2)) return 0; g1 = gaiaToGeos (geom1); g2 = gaiaToGeos (geom2); ret = GEOSCoveredBy (g1, g2); GEOSGeom_destroy (g1); GEOSGeom_destroy (g2); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaGeomCollCoveredBy_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2) { /* checks if geom1 is "spatially covered by" geom2 */ int ret; GEOSGeometry *g1; GEOSGeometry *g2; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSContextHandle_t handle = NULL; if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_within (geom1, geom2)) return 0; g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSCoveredBy_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); if (ret == 2) return -1; return ret; } GAIAGEO_DECLARE int gaiaGeomCollPreparedCoveredBy (const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2) { /* checks if geom1 is "spatially covered by" geom2 */ int ret; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; GEOSPreparedGeometry *gPrep; GEOSGeometry *g1; GEOSGeometry *g2; GEOSContextHandle_t handle = NULL; gaiaGeomCollPtr geom; gaiaResetGeosMsg (); if (cache == NULL) return -1; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return -1; handle = cache->GEOS_handle; if (handle == NULL) return -1; gaiaResetGeosMsg_r (cache); if (!geom1 || !geom2) return -1; /* quick check based on MBRs comparison */ if (!splite_mbr_within (geom1, geom2)) return 0; /* handling the internal GEOS cache */ if (evalGeosCache (cache, geom1, blob1, size1, geom2, blob2, size2, &gPrep, &geom)) { g2 = gaiaToGeos_r (cache, geom); if (geom == geom2) ret = GEOSPreparedCoveredBy_r (handle, gPrep, g2); else ret = GEOSPreparedCovers_r (handle, gPrep, g2); GEOSGeom_destroy_r (handle, g2); if (ret == 2) return -1; return ret; } g1 = gaiaToGeos_r (cache, geom1); g2 = gaiaToGeos_r (cache, geom2); ret = GEOSCoveredBy_r (handle, g1, g2); GEOSGeom_destroy_r (handle, g1); GEOSGeom_destroy_r (handle, g2); if (ret == 2) return -1; return ret; } #endif /* end including GEOS */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiageo/gg_ewkt.c����������������������������������������������������������0000664�0001750�0001750�00000165003�12544707704�015425� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_ewkt.c -- EWKT parser/lexer version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2011-2015 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <sys/types.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <assert.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite/sqlite.h> #include <spatialite/debug.h> #include <spatialite/gaiageo.h> #ifdef _WIN32 #define strcasecmp _stricmp #define strncasecmp _strnicmp #define atoll _atoi64 #endif /* not WIN32 */ #if defined(_WIN32) || defined(WIN32) #include <io.h> #ifndef isatty #define isatty _isatty #endif #ifndef fileno #define fileno _fileno #endif #endif #define EWKT_DYN_NONE 0 #define EWKT_DYN_POINT 1 #define EWKT_DYN_LINESTRING 2 #define EWKT_DYN_POLYGON 3 #define EWKT_DYN_RING 4 #define EWKT_DYN_GEOMETRY 5 #define EWKT_DYN_BLOCK 1024 /* ** CAVEAT: we must redefine any Lemon/Flex own macro */ #define YYMINORTYPE EWKT_MINORTYPE #define YY_CHAR EWKT_YY_CHAR #define input ewkt_input #define ParseAlloc ewktParseAlloc #define ParseFree ewktParseFree #define ParseStackPeak ewktParseStackPeak #define Parse ewktParse #define yyStackEntry ewkt_yyStackEntry #define yyzerominor ewkt_yyzerominor #define yy_accept ewkt_yy_accept #define yy_action ewkt_yy_action #define yy_base ewkt_yy_base #define yy_buffer_stack ewkt_yy_buffer_stack #define yy_buffer_stack_max ewkt_yy_buffer_stack_max #define yy_buffer_stack_top ewkt_yy_buffer_stack_top #define yy_c_buf_p ewkt_yy_c_buf_p #define yy_chk ewkt_yy_chk #define yy_def ewkt_yy_def #define yy_default ewkt_yy_default #define yy_destructor ewkt_yy_destructor #define yy_ec ewkt_yy_ec #define yy_fatal_error ewkt_yy_fatal_error #define yy_find_reduce_action ewkt_yy_find_reduce_action #define yy_find_shift_action ewkt_yy_find_shift_action #define yy_get_next_buffer ewkt_yy_get_next_buffer #define yy_get_previous_state ewkt_yy_get_previous_state #define yy_init ewkt_yy_init #define yy_init_globals ewkt_yy_init_globals #define yy_lookahead ewkt_yy_lookahead #define yy_meta ewkt_yy_meta #define yy_nxt ewkt_yy_nxt #define yy_parse_failed ewkt_yy_parse_failed #define yy_pop_parser_stack ewkt_yy_pop_parser_stack #define yy_reduce ewkt_yy_reduce #define yy_reduce_ofst ewkt_yy_reduce_ofst #define yy_shift ewkt_yy_shift #define yy_shift_ofst ewkt_yy_shift_ofst #define yy_start ewkt_yy_start #define yy_state_type ewkt_yy_state_type #define yy_syntax_error ewkt_yy_syntax_error #define yy_trans_info ewkt_yy_trans_info #define yy_try_NUL_trans ewkt_yy_try_NUL_trans #define yyParser ewkt_yyParser #define yyStackEntry ewkt_yyStackEntry #define yyStackOverflow ewkt_yyStackOverflow #define yyRuleInfo ewkt_yyRuleInfo #define yyunput ewkt_yyunput #define yyzerominor ewkt_yyzerominor #define yyTraceFILE ewkt_yyTraceFILE #define yyTracePrompt ewkt_yyTracePrompt #define yyTokenName ewkt_yyTokenName #define yyRuleName ewkt_yyRuleName #define ParseTrace ewkt_ParseTrace #define yylex ewky_yylex #define YY_DECL int yylex (yyscan_t yyscanner) /* including LEMON generated header */ #include "Ewkt.h" typedef union { double dval; struct symtab *symp; } ewkt_yystype; #define YYSTYPE ewkt_yystype struct ewkt_dyn_block { /* a struct taking trace of dynamic allocations */ int type[EWKT_DYN_BLOCK]; void *ptr[EWKT_DYN_BLOCK]; int index; struct ewkt_dyn_block *next; }; struct ewkt_data { /* a struct used to make the lexer-parser reentrant and thread-safe */ int ewkt_parse_error; int ewkt_line; int ewkt_col; struct ewkt_dyn_block *ewkt_first_dyn_block; struct ewkt_dyn_block *ewkt_last_dyn_block; gaiaGeomCollPtr result; YYSTYPE EwktLval; }; static struct ewkt_dyn_block * ewktCreateDynBlock (void) { /* allocating a new block to trace dynamic allocations */ int i; struct ewkt_dyn_block *p = malloc (sizeof (struct ewkt_dyn_block)); for (i = 0; i < EWKT_DYN_BLOCK; i++) { /* initializing map entries */ p->type[i] = EWKT_DYN_NONE; p->ptr[i] = NULL; } p->index = 0; p->next = NULL; return p; } static void ewktMapDynAlloc (struct ewkt_data *p_data, int type, void *ptr) { /* appending a dynamic allocation into the map */ struct ewkt_dyn_block *p; if (p_data->ewkt_first_dyn_block == NULL) { /* inserting the first block of the map */ p = ewktCreateDynBlock (); p_data->ewkt_first_dyn_block = p; p_data->ewkt_last_dyn_block = p; } if (p_data->ewkt_last_dyn_block->index >= EWKT_DYN_BLOCK) { /* adding a further block to the map */ p = ewktCreateDynBlock (); p_data->ewkt_last_dyn_block->next = p; p_data->ewkt_last_dyn_block = p; } p_data->ewkt_last_dyn_block->type[p_data->ewkt_last_dyn_block->index] = type; p_data->ewkt_last_dyn_block->ptr[p_data->ewkt_last_dyn_block->index] = ptr; p_data->ewkt_last_dyn_block->index++; } static void ewktMapDynClean (struct ewkt_data *p_data, void *ptr) { /* deleting a dynamic allocation from the map */ int i; struct ewkt_dyn_block *p = p_data->ewkt_first_dyn_block; while (p) { for (i = 0; i < EWKT_DYN_BLOCK; i++) { switch (p->type[i]) { case EWKT_DYN_POINT: case EWKT_DYN_LINESTRING: case EWKT_DYN_POLYGON: case EWKT_DYN_RING: case EWKT_DYN_GEOMETRY: if (p->ptr[i] == ptr) { p->type[i] = EWKT_DYN_NONE; return; } break; }; } p = p->next; } } static void ewktCleanMapDynAlloc (struct ewkt_data *p_data, int clean_all) { /* cleaning the dynamic allocations map */ int i; struct ewkt_dyn_block *pn; struct ewkt_dyn_block *p = p_data->ewkt_first_dyn_block; while (p) { if (clean_all) { for (i = 0; i < EWKT_DYN_BLOCK; i++) { /* deleting Geometry objects */ switch (p->type[i]) { case EWKT_DYN_POINT: gaiaFreePoint ((gaiaPointPtr) (p->ptr[i])); break; case EWKT_DYN_LINESTRING: gaiaFreeLinestring ((gaiaLinestringPtr) (p->ptr[i])); break; case EWKT_DYN_POLYGON: gaiaFreePolygon ((gaiaPolygonPtr) (p->ptr[i])); break; case EWKT_DYN_RING: gaiaFreeRing ((gaiaRingPtr) (p->ptr[i])); break; case EWKT_DYN_GEOMETRY: gaiaFreeGeomColl ((gaiaGeomCollPtr) (p->ptr[i])); break; }; } } /* deleting the map block */ pn = p->next; free (p); p = pn; } } static int ewktCheckValidity (gaiaGeomCollPtr geom) { /* checks if this one is a degenerated geometry */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; int ib; int entities = 0; pt = geom->FirstPoint; while (pt) { /* checking points */ entities++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { /* checking linestrings */ if (ln->Points < 2) return 0; entities++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { /* checking polygons */ rng = pg->Exterior; if (rng->Points < 4) return 0; for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; if (rng->Points < 4) return 0; } entities++; pg = pg->Next; } if (!entities) return 0; return 1; } static gaiaGeomCollPtr gaiaEwktGeometryFromPoint (struct ewkt_data *p_data, gaiaPointPtr point) { /* builds a GEOMETRY containing a POINT */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomColl (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINT; gaiaAddPointToGeomColl (geom, point->X, point->Y); ewktMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaEwktGeometryFromPointZ (struct ewkt_data *p_data, gaiaPointPtr point) { /* builds a GEOMETRY containing a POINTZ */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomCollXYZ (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINTZ; gaiaAddPointToGeomCollXYZ (geom, point->X, point->Y, point->Z); ewktMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaEwktGeometryFromPointM (struct ewkt_data *p_data, gaiaPointPtr point) { /* builds a GEOMETRY containing a POINTM */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomCollXYM (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINTM; gaiaAddPointToGeomCollXYM (geom, point->X, point->Y, point->M); ewktMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaEwktGeometryFromPointZM (struct ewkt_data *p_data, gaiaPointPtr point) { /* builds a GEOMETRY containing a POINTZM */ gaiaGeomCollPtr geom = NULL; geom = gaiaAllocGeomCollXYZM (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POINTZM; gaiaAddPointToGeomCollXYZM (geom, point->X, point->Y, point->Z, point->M); ewktMapDynClean (p_data, point); gaiaFreePoint (point); return geom; } static gaiaGeomCollPtr gaiaEwktGeometryFromLinestring (struct ewkt_data *p_data, gaiaLinestringPtr line) { /* builds a GEOMETRY containing a LINESTRING */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; geom = gaiaAllocGeomColl (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPoint (line->Coords, iv, &x, &y); gaiaSetPoint (line2->Coords, iv, x, y); } ewktMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } static gaiaGeomCollPtr gaiaEwktGeometryFromLinestringZ (struct ewkt_data *p_data, gaiaLinestringPtr line) { /* builds a GEOMETRY containing a LINESTRINGZ */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; double z; geom = gaiaAllocGeomCollXYZ (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (line2->Coords, iv, x, y, z); } ewktMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } static gaiaGeomCollPtr gaiaEwktGeometryFromLinestringM (struct ewkt_data *p_data, gaiaLinestringPtr line) { /* builds a GEOMETRY containing a LINESTRINGM */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; double m; geom = gaiaAllocGeomCollXYM (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); gaiaSetPointXYM (line2->Coords, iv, x, y, m); } ewktMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } static gaiaGeomCollPtr gaiaEwktGeometryFromLinestringZM (struct ewkt_data *p_data, gaiaLinestringPtr line) { /* builds a GEOMETRY containing a LINESTRINGZM */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr line2; int iv; double x; double y; double z; double m; geom = gaiaAllocGeomCollXYZM (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_LINESTRING; line2 = gaiaAddLinestringToGeomColl (geom, line->Points); for (iv = 0; iv < line2->Points; iv++) { /* sets the POINTS for the exterior ring */ gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (line2->Coords, iv, x, y, z, m); } ewktMapDynClean (p_data, line); gaiaFreeLinestring (line); return geom; } static gaiaPointPtr ewkt_point_xy (struct ewkt_data *p_data, double *x, double *y) { gaiaPointPtr pt = gaiaAllocPoint (*x, *y); ewktMapDynAlloc (p_data, EWKT_DYN_POINT, pt); return pt; } /* * Creates a 3D (xyz) point in SpatiaLite * x, y, and z are pointers to doubles which represent the x, y, and z coordinates of the point to be created. * Returns a gaiaPointPtr representing the created point. * * Creates a 3D (xyz) point. This is a parser helper function which is called when 3D coordinates are encountered. * Parameters x, y, and z are pointers to doubles which represent the x, y, and z coordinates of the point to be created. * Returns a gaiaPointPtr pointing to the 3D created point. */ static gaiaPointPtr ewkt_point_xyz (struct ewkt_data *p_data, double *x, double *y, double *z) { gaiaPointPtr pt = gaiaAllocPointXYZ (*x, *y, *z); ewktMapDynAlloc (p_data, EWKT_DYN_POINT, pt); return pt; } /* * Creates a 2D (xy) point with an m value which is a part of the linear reference system. This is a parser helper * function which is called when 2D *coordinates with an m value are encountered. * Parameters x and y are pointers to doubles which represent the x and y coordinates of the point to be created. * Parameter m is a pointer to a double which represents the part of the linear reference system. * Returns a gaiaPointPtr pointing to the created 2D point with an m value. */ static gaiaPointPtr ewkt_point_xym (struct ewkt_data *p_data, double *x, double *y, double *m) { gaiaPointPtr pt = gaiaAllocPointXYM (*x, *y, *m); ewktMapDynAlloc (p_data, EWKT_DYN_POINT, pt); return pt; } /* * Creates a 4D (xyz) point with an m value which is a part of the linear reference system. This is a parser helper * function which is called when *4Dcoordinates with an m value are encountered * Parameters x, y, and z are pointers to doubles which represent the x, y, and z coordinates of the point to be created. * Parameter m is a pointer to a double which represents the part of the linear reference system. * Returns a gaiaPointPtr pointing the created 4D point with an m value. */ gaiaPointPtr ewkt_point_xyzm (struct ewkt_data * p_data, double *x, double *y, double *z, double *m) { gaiaPointPtr pt = gaiaAllocPointXYZM (*x, *y, *z, *m); ewktMapDynAlloc (p_data, EWKT_DYN_POINT, pt); return pt; } /* * Builds a geometry collection from a point. The geometry collection should contain only one element ? the point. * The correct geometry type must be *decided based on the point type. The parser should call this function when the * ?POINT? WKT expression is encountered. * Parameter point is a pointer to a 2D, 3D, 2D with an m value, or 4D with an m value point. * Returns a geometry collection containing the point. The geometry must have FirstPoint and LastPoint pointing to the * same place as point. *DimensionModel must be the same as the model of the point and DimensionType must be GAIA_TYPE_POINT. */ static gaiaGeomCollPtr ewkt_buildGeomFromPoint (struct ewkt_data *p_data, gaiaPointPtr point) { switch (point->DimensionModel) { case GAIA_XY: return gaiaEwktGeometryFromPoint (p_data, point); case GAIA_XY_Z: return gaiaEwktGeometryFromPointZ (p_data, point); case GAIA_XY_M: return gaiaEwktGeometryFromPointM (p_data, point); case GAIA_XY_Z_M: return gaiaEwktGeometryFromPointZM (p_data, point); } return NULL; } /* * Creates a 2D (xy) linestring from a list of 2D points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 2D (xy) points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr ewkt_linestring_xy (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestring (points); ewktMapDynAlloc (p_data, EWKT_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPoint (linestring->Coords, i, p->X, p->Y); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Creates a 3D (xyz) linestring from a list of 3D points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 3D (xyz) points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr ewkt_linestring_xyz (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestringXYZ (points); ewktMapDynAlloc (p_data, EWKT_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPointXYZ (linestring->Coords, i, p->X, p->Y, p->Z); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Creates a 2D (xy) with m value linestring from a list of 2D with m value points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 2D (xy) with m value points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr ewkt_linestring_xym (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestringXYM (points); ewktMapDynAlloc (p_data, EWKT_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPointXYM (linestring->Coords, i, p->X, p->Y, p->M); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Creates a 4D (xyz) with m value linestring from a list of 4D with m value points. * * Parameter first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points in the list must be 4D (xyz) with m value points. There must be at least 2 points in the list. * * Returns a pointer to linestring containing all of the points in the list. */ static gaiaLinestringPtr ewkt_linestring_xyzm (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; int points = 0; int i = 0; gaiaLinestringPtr linestring; while (p != NULL) { p = p->Next; points++; } linestring = gaiaAllocLinestringXYZM (points); ewktMapDynAlloc (p_data, EWKT_DYN_LINESTRING, linestring); p = first; while (p != NULL) { gaiaSetPointXYZM (linestring->Coords, i, p->X, p->Y, p->Z, p->M); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; i++; } return linestring; } /* * Builds a geometry collection from a linestring. */ static gaiaGeomCollPtr ewkt_buildGeomFromLinestring (struct ewkt_data *p_data, gaiaLinestringPtr line) { switch (line->DimensionModel) { case GAIA_XY: return gaiaEwktGeometryFromLinestring (p_data, line); case GAIA_XY_Z: return gaiaEwktGeometryFromLinestringZ (p_data, line); case GAIA_XY_M: return gaiaEwktGeometryFromLinestringM (p_data, line); case GAIA_XY_Z_M: return gaiaEwktGeometryFromLinestringZM (p_data, line); } return NULL; } /* * Helper function that determines the number of points in the linked list. */ static int ewkt_count_points (gaiaPointPtr first) { /* Counts the number of points in the ring. */ gaiaPointPtr p = first; int numpoints = 0; while (p != NULL) { numpoints++; p = p->Next; } return numpoints; } /* * Creates a 2D (xy) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 2D (xy) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr ewkt_ring_xy (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = ewkt_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRing (numpoints); if (ring == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPoint (ring->Coords, index, p->X, p->Y); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Creates a 3D (xyz) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 3D (xyz) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr ewkt_ring_xyz (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = ewkt_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRingXYZ (numpoints); if (ring == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPointXYZ (ring->Coords, index, p->X, p->Y, p->Z); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Creates a 2D (xym) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 2D (xym) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr ewkt_ring_xym (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = ewkt_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRingXYM (numpoints); if (ring == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPointXYM (ring->Coords, index, p->X, p->Y, p->M); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Creates a 3D (xyzm) ring in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the polygon. * All of the points given to the function are 3D (xyzm) points. There will be at least 4 points in the list. * * Returns the ring defined by the points given to the function. */ static gaiaRingPtr ewkt_ring_xyzm (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaRingPtr ring = NULL; int numpoints; int index; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Counts the number of points in the ring. */ numpoints = ewkt_count_points (first); if (numpoints < 4) return NULL; /* Creates and allocates a ring structure. */ ring = gaiaAllocRingXYZM (numpoints); if (ring == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_RING, ring); /* Adds every point into the ring structure. */ p = first; for (index = 0; index < numpoints; index++) { gaiaSetPointXYZM (ring->Coords, index, p->X, p->Y, p->Z, p->M); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return ring; } /* * Helper function that will create any type of polygon (xy, xym, xyz, xyzm) in SpatiaLite. * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are of the same type. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr ewkt_polygon_any_type (struct ewkt_data *p_data, gaiaRingPtr first) { gaiaRingPtr p; gaiaRingPtr p_n; gaiaPolygonPtr polygon; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a polygon structure with the exterior ring. */ polygon = gaiaCreatePolygon (first); if (polygon == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_POLYGON, polygon); /* Adds all interior rings into the polygon structure. */ p = first; while (p != NULL) { p_n = p->Next; ewktMapDynClean (p_data, p); if (p == first) gaiaFreeRing (p); else gaiaAddRingToPolyg (polygon, p); p = p_n; } return polygon; } /* * Creates a 2D (xy) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 2D (xy) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr ewkt_polygon_xy (struct ewkt_data *p_data, gaiaRingPtr first) { return ewkt_polygon_any_type (p_data, first); } /* * Creates a 3D (xyz) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 3D (xyz) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr ewkt_polygon_xyz (struct ewkt_data *p_data, gaiaRingPtr first) { return ewkt_polygon_any_type (p_data, first); } /* * Creates a 2D (xym) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 2D (xym) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr ewkt_polygon_xym (struct ewkt_data *p_data, gaiaRingPtr first) { return ewkt_polygon_any_type (p_data, first); } /* * Creates a 3D (xyzm) polygon in SpatiaLite * * first is a gaiaRingPtr to the first ring in a linked list of rings which define the polygon. * The first ring in the linked list is the external ring while the rest (if any) are internal rings. * All of the rings given to the function are 3D (xyzm) rings. There will be at least 1 ring in the list. * * Returns the polygon defined by the rings given to the function. */ static gaiaPolygonPtr ewkt_polygon_xyzm (struct ewkt_data *p_data, gaiaRingPtr first) { return ewkt_polygon_any_type (p_data, first); } /* * Builds a geometry collection from a polygon. * NOTE: This function may already be implemented in the SpatiaLite code base. If it is, make sure that we * can use it (ie. it doesn't use any other variables or anything else set by Sandro's parser). If you find * that we can use an existing function then ignore this one. */ static gaiaGeomCollPtr ewkt_buildGeomFromPolygon (struct ewkt_data *p_data, gaiaPolygonPtr polygon) { gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (polygon == NULL) { return NULL; } /* Creates and allocates a geometry collection containing a multipoint. */ switch (polygon->DimensionModel) { case GAIA_XY: geom = gaiaAllocGeomColl (); break; case GAIA_XY_Z: geom = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: geom = gaiaAllocGeomCollXYM (); break; case GAIA_XY_Z_M: geom = gaiaAllocGeomCollXYZM (); break; } if (geom == NULL) { return NULL; } ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_POLYGON; /* Stores the location of the first and last polygons in the linked list. */ geom->FirstPolygon = polygon; while (polygon != NULL) { ewktMapDynClean (p_data, polygon); geom->LastPolygon = polygon; polygon = polygon->Next; } return geom; } /* * Creates a 2D (xy) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points. * All of the points given to the function are 2D (xy) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr ewkt_multipoint_xy (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 2D (xy) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomColl (geom, p->X, p->Y); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a 3D (xyz) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points. * All of the points given to the function are 3D (xyz) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr ewkt_multipoint_xyz (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomCollXYZ (); if (geom == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 3D (xyz) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomCollXYZ (geom, p->X, p->Y, p->Z); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a 2D (xym) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points. * All of the points given to the function are 2D (xym) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr ewkt_multipoint_xym (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomCollXYM (); if (geom == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 2D (xym) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomCollXYM (geom, p->X, p->Y, p->M); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a 3D (xyzm) multipoint object in SpatiaLite * * first is a gaiaPointPtr to the first point in a linked list of points which define the linestring. * All of the points given to the function are 3D (xyzm) points. There will be at least 1 point in the list. * * Returns a geometry collection containing the created multipoint object. */ static gaiaGeomCollPtr ewkt_multipoint_xyzm (struct ewkt_data *p_data, gaiaPointPtr first) { gaiaPointPtr p = first; gaiaPointPtr p_n; gaiaGeomCollPtr geom = NULL; /* If no pointers are given, return. */ if (first == NULL) return NULL; /* Creates and allocates a geometry collection containing a multipoint. */ geom = gaiaAllocGeomCollXYZM (); if (geom == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOINT; /* For every 3D (xyzm) point, add it to the geometry collection. */ while (p != NULL) { gaiaAddPointToGeomCollXYZM (geom, p->X, p->Y, p->Z, p->M); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePoint (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 2D (xy) linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 2D (xy) linestrings. There must be at least 1 linestring in the list. * Returns a pointer to the created geometry collection of 2D linestrings. The geometry must have FirstLinestring pointing to the * first linestring in the list pointed by first and LastLinestring pointing to the last element of the same list. DimensionModel * must be GAIA_XY and DimensionType must be *GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr ewkt_multilinestring_xy (struct ewkt_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomColl (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Returns a geometry collection containing the created multilinestring object (?). * Creates a geometry collection containing 3D (xyz) linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 3D (xyz) linestrings. There must be at least 1 linestring in the list. * Returns a pointer to the created geometry collection of 3D linestrings. The geometry must have FirstLinestring pointing to the * first linestring in the *list pointed by first and LastLinestring pointing to the last element of the same list. DimensionModel * must be GAIA_XYZ and DimensionType must be *GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr ewkt_multilinestring_xyz (struct ewkt_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomCollXYZ (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY_Z; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Creates a geometry collection containing 2D (xy) with m value linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 2D (xy) with m value linestrings. There must be at least 1 linestring * in the list. * Returns a pointer to the created geometry collection of 2D with m value linestrings. The geometry must have FirstLinestring * pointing to the first *linestring in the list pointed by first and LastLinestring pointing to the last element of the same list. * DimensionModel must be GAIA_XYM and *DimensionType must be GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr ewkt_multilinestring_xym (struct ewkt_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomCollXYM (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY_M; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Creates a geometry collection containing 4D (xyz) with m value linestrings. * Parameter first is a gaiaLinestringPtr to the first linestring in a linked list of linestrings which should be added to the * collection. All of the *linestrings in the list must be 4D (xyz) with m value linestrings. There must be at least 1 linestring * in the list. * Returns a pointer to the created geometry collection of 4D with m value linestrings. The geometry must have FirstLinestring * pointing to the first *linestring in the list pointed by first and LastLinestring pointing to the last element of the same list. * DimensionModel must be GAIA_XYZM and *DimensionType must be GAIA_TYPE_LINESTRING. */ static gaiaGeomCollPtr ewkt_multilinestring_xyzm (struct ewkt_data *p_data, gaiaLinestringPtr first) { gaiaLinestringPtr p = first; gaiaLinestringPtr p_n; gaiaLinestringPtr new_line; gaiaGeomCollPtr a = gaiaAllocGeomCollXYZM (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, a); a->DeclaredType = GAIA_MULTILINESTRING; a->DimensionModel = GAIA_XY_Z_M; while (p) { new_line = gaiaAddLinestringToGeomColl (a, p->Points); gaiaCopyLinestringCoords (new_line, p); p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreeLinestring (p); p = p_n; } return a; } /* * Creates a geometry collection containing 2D (xy) polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should * be added to the collection. All of the polygons in the list must be 2D (xy) polygons. There must be * at least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 2D polygons. The geometry must have * FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon pointing * to the last element of the same list. DimensionModel must be GAIA_XY and DimensionType must * be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr ewkt_multipolygon_xy (struct ewkt_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomColl (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 3D (xyz) polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should be * added to the collection. All of the polygons in the list must be 3D (xyz) polygons. There must be at * least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 3D polygons. The geometry must have * FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon pointing to * the last element of the same list. DimensionModel must be GAIA_XYZ and DimensionType must * be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr ewkt_multipolygon_xyz (struct ewkt_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomCollXYZ (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 2D (xy) with m value polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should * be added to the collection. All of the polygons in the list must be 2D (xy) with m value polygons. * There must be at least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 2D with m value polygons. The geometry * must have FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon * pointing to the last element of the same list. DimensionModel must be GAIA_XYM and DimensionType * must be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr ewkt_multipolygon_xym (struct ewkt_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomCollXYM (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } /* * Creates a geometry collection containing 4D (xyz) with m value polygons. * * Parameter first is a gaiaPolygonPtr to the first polygon in a linked list of polygons which should be * added to the collection. All of the polygons in the list must be 4D (xyz) with m value polygons. * There must be at least 1 polygon in the list. * * Returns a pointer to the created geometry collection of 4D with m value polygons. The geometry must * have FirstPolygon pointing to the first polygon in the list pointed by first and LastPolygon pointing // * to the last element of the same list. DimensionModel must be GAIA_XYZM and DimensionType must * be GAIA_TYPE_POLYGON. * */ static gaiaGeomCollPtr ewkt_multipolygon_xyzm (struct ewkt_data *p_data, gaiaPolygonPtr first) { gaiaPolygonPtr p = first; gaiaPolygonPtr p_n; int i = 0; gaiaPolygonPtr new_polyg; gaiaRingPtr i_ring; gaiaRingPtr o_ring; gaiaGeomCollPtr geom = gaiaAllocGeomCollXYZM (); ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_MULTIPOLYGON; while (p) { i_ring = p->Exterior; new_polyg = gaiaAddPolygonToGeomColl (geom, i_ring->Points, p->NumInteriors); o_ring = new_polyg->Exterior; gaiaCopyRingCoords (o_ring, i_ring); for (i = 0; i < new_polyg->NumInteriors; i++) { i_ring = p->Interiors + i; o_ring = gaiaAddInteriorRing (new_polyg, i, i_ring->Points); gaiaCopyRingCoords (o_ring, i_ring); } p_n = p->Next; ewktMapDynClean (p_data, p); gaiaFreePolygon (p); p = p_n; } return geom; } static void ewkt_geomColl_common (struct ewkt_data *p_data, gaiaGeomCollPtr org, gaiaGeomCollPtr dst) { /* / helper function: xfers entities between the Origin and Destination / Sandro Furieri: 2010 October 12 */ gaiaGeomCollPtr p = org; gaiaGeomCollPtr p_n; gaiaPointPtr pt; gaiaPointPtr pt_n; gaiaLinestringPtr ln; gaiaLinestringPtr ln_n; gaiaPolygonPtr pg; gaiaPolygonPtr pg_n; while (p) { pt = p->FirstPoint; while (pt) { pt_n = pt->Next; pt->Next = NULL; if (dst->FirstPoint == NULL) dst->FirstPoint = pt; if (dst->LastPoint != NULL) dst->LastPoint->Next = pt; dst->LastPoint = pt; pt = pt_n; } ln = p->FirstLinestring; while (ln) { ln_n = ln->Next; ln->Next = NULL; if (dst->FirstLinestring == NULL) dst->FirstLinestring = ln; if (dst->LastLinestring != NULL) dst->LastLinestring->Next = ln; dst->LastLinestring = ln; ln = ln_n; } pg = p->FirstPolygon; while (pg) { pg_n = pg->Next; pg->Next = NULL; if (dst->FirstPolygon == NULL) dst->FirstPolygon = pg; if (dst->LastPolygon != NULL) dst->LastPolygon->Next = pg; dst->LastPolygon = pg; pg = pg_n; } p_n = p->Next; p->FirstPoint = NULL; p->LastPoint = NULL; p->FirstLinestring = NULL; p->LastLinestring = NULL; p->FirstPolygon = NULL; p->LastPolygon = NULL; ewktMapDynClean (p_data, p); gaiaFreeGeomColl (p); p = p_n; } } /* Creates a 2D (xy) geometry collection in SpatiaLite * * first is the first geometry collection in a linked list of geometry collections. * Each geometry collection represents a single type of object (eg. one could be a POINT, * another could be a LINESTRING, another could be a MULTILINESTRING, etc.). * * The type of object represented by any geometry collection is stored in the declaredType * field of its struct. For example, if first->declaredType = GAIA_POINT, then first represents a point. * If first->declaredType = GAIA_MULTIPOINT, then first represents a multipoint. * * NOTE: geometry collections cannot contain other geometry collections (have to confirm this * with Sandro). * * The goal of this function is to take the information from all of the structs in the linked list and * return one geomColl struct containing all of that information. * * The integers used for 'declaredType' are defined in gaiageo.h. In this function, the only values * contained in 'declaredType' that will be encountered will be: * * GAIA_POINT, GAIA_LINESTRING, GAIA_POLYGON, * GAIA_MULTIPOINT, GAIA_MULTILINESTRING, GAIA_MULTIPOLYGON */ static gaiaGeomCollPtr ewkt_geomColl_xy (struct ewkt_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY; ewkt_geomColl_common (p_data, first, geom); return geom; } /* * See geomColl_xy for description. * * The only difference between this function and geomColl_xy is that the 'declaredType' field of the structs * in the linked list for this function will only contain the following types: * * GAIA_POINTZ, GAIA_LINESTRINGZ, GAIA_POLYGONZ, * GAIA_MULTIPOINTZ, GAIA_MULTILINESTRINGZ, GAIA_MULTIPOLYGONZ */ static gaiaGeomCollPtr ewkt_geomColl_xyz (struct ewkt_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY_Z; ewkt_geomColl_common (p_data, first, geom); return geom; } /* * See geomColl_xy for description. * * The only difference between this function and geomColl_xy is that the 'declaredType' field of the structs * in the linked list for this function will only contain the following types: * * GAIA_POINTM, GAIA_LINESTRINGM, GAIA_POLYGONM, * GAIA_MULTIPOINTM, GAIA_MULTILINESTRINGM, GAIA_MULTIPOLYGONM */ static gaiaGeomCollPtr ewkt_geomColl_xym (struct ewkt_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY_M; ewkt_geomColl_common (p_data, first, geom); return geom; } /* * See geomColl_xy for description. * * The only difference between this function and geomColl_xy is that the 'declaredType' field of the structs * in the linked list for this function will only contain the following types: * * GAIA_POINTZM, GAIA_LINESTRINGZM, GAIA_POLYGONZM, * GAIA_MULTIPOINTZM, GAIA_MULTILINESTRINGZM, GAIA_MULTIPOLYGONZM */ static gaiaGeomCollPtr ewkt_geomColl_xyzm (struct ewkt_data *p_data, gaiaGeomCollPtr first) { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); if (geom == NULL) return NULL; ewktMapDynAlloc (p_data, EWKT_DYN_GEOMETRY, geom); geom->DeclaredType = GAIA_GEOMETRYCOLLECTION; geom->DimensionModel = GAIA_XY_Z_M; ewkt_geomColl_common (p_data, first, geom); return geom; } /* including LEMON generated code */ #include "Ewkt.c" /* ** CAVEAT: there is an incompatibility between LEMON and FLEX ** this macro resolves the issue */ #undef yy_accept #define yy_accept yy_ewkt_flex_accept /* including FLEX generated code */ #include "lex.Ewkt.c" #line 3 "lex.Ewkt.c" #define YY_INT_ALIGNED short int /* ** This is a linked-list struct to store all the values for each token. ** All tokens will have a value of 0, except tokens denoted as NUM. ** NUM tokens are geometry coordinates and will contain the floating ** point number. */ typedef struct ewktFlexTokenStruct { double value; struct ewktFlexTokenStruct *Next; } ewktFlexToken; /* ** Function to clean up the linked-list of token values. */ static int ewkt_cleanup (ewktFlexToken * token) { ewktFlexToken *ptok; ewktFlexToken *ptok_n; if (token == NULL) return 0; ptok = token; while (ptok) { ptok_n = ptok->Next; free (ptok); ptok = ptok_n; } return 0; } static int findEwktSrid (const char *buffer, int *base_offset) { /* attempting to identify the EWKT SRID */ char dummy[1024]; char *out; const char *in = buffer; int end = -1; int i; *base_offset = 0; while (*in != '\0') { /* searching the first semi-colon [srid delimiter] */ if (*in == ';') { end = in - buffer; break; } in++; } if (end < 0) return -1; in = buffer; out = dummy; for (i = 0; i < end; i++) { /* normalizing whitespaces */ char c = *in; if (c == ' ' || c == '\t' || c == '\n') { in++; continue; } *out++ = *in++; } *out = '\0'; if (strncasecmp (dummy, "SRID=", 5) != 0) return -1; for (i = 5; i < (int) strlen (dummy); i++) { if (i == 5) { if (dummy[i] == '-' || dummy[i] == '+') continue; } if (dummy[i] >= '0' && dummy[i] <= '9') continue; return -1; } *base_offset = end + 1; return atoi (dummy + 5); } gaiaGeomCollPtr gaiaParseEWKT (const unsigned char *dirty_buffer) { void *pParser = ParseAlloc (malloc); /* Linked-list of token values */ ewktFlexToken *tokens = malloc (sizeof (ewktFlexToken)); /* Pointer to the head of the list */ ewktFlexToken *head = tokens; int yv; int srid; int base_offset; yyscan_t scanner; struct ewkt_data str_data; /* initializing the helper structs */ str_data.ewkt_line = 1; str_data.ewkt_col = 1; str_data.ewkt_parse_error = 0; str_data.ewkt_first_dyn_block = NULL; str_data.ewkt_last_dyn_block = NULL; str_data.result = NULL; /* initializing the scanner state */ Ewktlex_init_extra (&str_data, &scanner); tokens->Next = NULL; srid = findEwktSrid ((char *) dirty_buffer, &base_offset); Ewkt_scan_string ((char *) dirty_buffer + base_offset, scanner); /* / Keep tokenizing until we reach the end / yylex() will return the next matching Token for us. */ while ((yv = yylex (scanner)) != 0) { if (yv == -1) { str_data.ewkt_parse_error = 1; break; } tokens->Next = malloc (sizeof (ewktFlexToken)); tokens->Next->Next = NULL; tokens->Next->value = str_data.EwktLval.dval; /* Pass the token to the wkt parser created from lemon */ Parse (pParser, yv, &(tokens->Next->value), &str_data); tokens = tokens->Next; } /* This denotes the end of a line as well as the end of the parser */ Parse (pParser, EWKT_NEWLINE, 0, &str_data); ParseFree (pParser, free); Ewktlex_destroy (scanner); /* Assigning the token as the end to avoid seg faults while cleaning */ tokens->Next = NULL; ewkt_cleanup (head); if (str_data.ewkt_parse_error) { if (str_data.result) { /* if a Geometry-result has been produced, the stack is already cleaned */ gaiaFreeGeomColl (str_data.result); ewktCleanMapDynAlloc (&str_data, 0); } else { /* otherwise we are required to clean the stack */ ewktCleanMapDynAlloc (&str_data, 1); } return NULL; } ewktCleanMapDynAlloc (&str_data, 0); if (str_data.result == NULL) return NULL; if (!ewktCheckValidity (str_data.result)) { gaiaFreeGeomColl (str_data.result); return NULL; } gaiaMbrGeometry (str_data.result); str_data.result->Srid = srid; return str_data.result; } /* ** CAVEAT: we must now undefine any Lemon/Flex own macro */ #undef YYNOCODE #undef YYNSTATE #undef YYNRULE #undef YY_SHIFT_MAX #undef YY_SHIFT_USE_DFLT #undef YY_REDUCE_USE_DFLT #undef YY_REDUCE_MAX #undef YY_FLUSH_BUFFER #undef YY_DO_BEFORE_ACTION #undef YY_NUM_RULES #undef YY_END_OF_BUFFER #undef YY_END_FILE #undef YYACTIONTYPE #undef YY_SZ_ACTTAB #undef YY_NEW_FILE #undef BEGIN #undef YY_START #undef YY_CURRENT_BUFFER #undef YY_CURRENT_BUFFER_LVALUE #undef YY_STATE_BUF_SIZE #undef YY_DECL #undef YY_FATAL_ERROR #undef YYMINORTYPE #undef YY_CHAR #undef YYSTYPE #undef input #undef ParseAlloc #undef ParseFree #undef ParseStackPeak #undef Parse #undef yyalloc #undef yyfree #undef yyin #undef yyleng #undef yyless #undef yylex #undef yylineno #undef yyout #undef yyrealloc #undef yyrestart #undef yyStackEntry #undef yytext #undef yywrap #undef yyzerominor #undef yy_accept #undef yy_action #undef yy_base #undef yy_buffer_stack #undef yy_buffer_stack_max #undef yy_buffer_stack_top #undef yy_c_buf_p #undef yy_chk #undef yy_create_buffer #undef yy_def #undef yy_default #undef yy_delete_buffer #undef yy_destructor #undef yy_ec #undef yy_fatal_error #undef yy_find_reduce_action #undef yy_find_shift_action #undef yy_flex_debug #undef yy_flush_buffer #undef yy_get_next_buffer #undef yy_get_previous_state #undef yy_init #undef yy_init_buffer #undef yy_init_globals #undef yy_load_buffer #undef yy_load_buffer_state #undef yy_lookahead #undef yy_meta #undef yy_new_buffer #undef yy_nxt #undef yy_parse_failed #undef yy_pop_parser_stack #undef yy_reduce #undef yy_reduce_ofst #undef yy_set_bol #undef yy_set_interactive #undef yy_shift #undef yy_shift_ofst #undef yy_start #undef yy_state_type #undef yy_switch_to_buffer #undef yy_syntax_error #undef yy_trans_info #undef yy_try_NUL_trans #undef yyParser #undef yyStackEntry #undef yyStackOverflow #undef yyRuleInfo #undef yytext_ptr #undef yyunput #undef yyzerominor #undef ParseARG_SDECL #undef ParseARG_PDECL #undef ParseARG_FETCH #undef ParseARG_STORE #undef REJECT #undef yymore #undef YY_MORE_ADJ #undef YY_RESTORE_YY_MORE_OFFSET #undef YY_LESS_LINENO #undef yyTracePrompt #undef yyTraceFILE #undef yyTokenName #undef yyRuleName #undef ParseTrace #undef yylex #undef YY_DECL �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiageo/gg_extras.c��������������������������������������������������������0000664�0001750�0001750�00000106053�12544707704�015761� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_extras.c -- Gaia extra functions support version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2012-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <sys/types.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <float.h> #include <math.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite/sqlite.h> #include <spatialite/gaiageo.h> #if defined(_WIN32) && !defined(__MINGW32__) static double rint (double x) { return floor (x + 0.5); } #endif static void auxGridSnapPoint (int dimension_model, gaiaPointPtr pt, gaiaGeomCollPtr result, double origin_x, double origin_y, double origin_z, double origin_m, double size_x, double size_y, double size_z, double size_m) { /* snapping a Point to a regular Grid */ double x = pt->X; double y = pt->Y; double z = 0.0; double m = 0.0; int has_z = 0; int has_m = 0; gaiaPointPtr ptx; if (pt == NULL || result == NULL) return; if (dimension_model == GAIA_XY_Z || dimension_model == GAIA_XY_Z_M) has_z = 1; if (dimension_model == GAIA_XY_M || dimension_model == GAIA_XY_Z_M) has_m = 1; if (has_z) z = pt->Z; if (has_m) m = pt->M; /* snapping coords to the given grid */ if (size_x > 0.0) x = rint ((x - origin_x) / size_x) * size_x + origin_x; if (size_y > 0.0) y = rint ((y - origin_y) / size_y) * size_y + origin_y; if (has_z && size_z > 0.0) z = rint ((z - origin_z) / size_z) * size_z + origin_z; if (has_m && size_m > 0.0) m = rint ((m - origin_m) / size_m) * size_m + origin_m; ptx = result->FirstPoint; while (ptx) { /* checking if already defined */ if (has_z && has_m) { if (ptx->X == x && ptx->Y == y && ptx->Z == z && ptx->M == m) return; } else if (has_z) { if (ptx->X == x && ptx->Y == y && ptx->Z == z) return; } else if (has_m) { if (ptx->X == x && ptx->Y == y && ptx->M == m) return; } else { if (ptx->X == x && ptx->Y == y) return; } ptx = ptx->Next; } /* inserting the snapped Point into the result Geometry */ if (has_z && has_m) gaiaAddPointToGeomCollXYZM (result, x, y, z, m); else if (has_z) gaiaAddPointToGeomCollXYZ (result, x, y, z); else if (has_m) gaiaAddPointToGeomCollXYM (result, x, y, m); else gaiaAddPointToGeomColl (result, x, y); } static void auxGridSnapLinestring (gaiaLinestringPtr ln, gaiaGeomCollPtr result, double origin_x, double origin_y, double origin_z, double origin_m, double size_x, double size_y, double size_z, double size_m) { /* snapping a Linestring to a regular Grid */ double x; double y; double z; double m; int has_z = 0; int has_m = 0; int iv; gaiaDynamicLinePtr dyn; gaiaPointPtr pt; gaiaLinestringPtr lnx; int count = 0; if (ln == NULL || result == NULL) return; if (ln->DimensionModel == GAIA_XY_Z || ln->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (ln->DimensionModel == GAIA_XY_M || ln->DimensionModel == GAIA_XY_Z_M) has_m = 1; dyn = gaiaAllocDynamicLine (); for (iv = 0; iv < ln->Points; iv++) { /* snapping each Vertex to the given grid */ int to_be_inserted = 0; z = 0.0; m = 0.0; if (has_z && has_m) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else if (has_z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (has_m) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } /* snapping coords to the given grid */ if (size_x > 0.0) x = rint ((x - origin_x) / size_x) * size_x + origin_x; if (size_y > 0.0) y = rint ((y - origin_y) / size_y) * size_y + origin_y; if (has_z && size_z > 0.0) z = rint ((z - origin_z) / size_z) * size_z + origin_z; if (has_m && size_m > 0.0) m = rint ((m - origin_m) / size_m) * size_m + origin_m; if (dyn->Last == NULL) to_be_inserted = 1; else { /* skipping repeated points */ pt = dyn->Last; if (has_z && has_m) { if (pt->X == x && pt->Y == y && pt->Z == z && pt->M == m) ; else to_be_inserted = 1; } else if (has_z) { if (pt->X == x && pt->Y == y && pt->Z == z) ; else to_be_inserted = 1; } else if (has_m) { if (pt->X == x && pt->Y == y && pt->M == m) ; else to_be_inserted = 1; } else { if (pt->X == x && pt->Y == y) ; else to_be_inserted = 1; } } if (to_be_inserted) { if (has_z && has_m) gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); else if (has_z) gaiaAppendPointZToDynamicLine (dyn, x, y, z); else if (has_m) gaiaAppendPointMToDynamicLine (dyn, x, y, m); else gaiaAppendPointToDynamicLine (dyn, x, y); } } /* checking for validity */ pt = dyn->First; while (pt) { /* counting how many points are there */ count++; pt = pt->Next; } if (count < 2) { /* skipping any collapsed line */ gaiaFreeDynamicLine (dyn); return; } /* inserting into the result Geometry */ lnx = gaiaAddLinestringToGeomColl (result, count); iv = 0; pt = dyn->First; while (pt) { /* copying points */ if (lnx->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (lnx->Coords, iv, pt->X, pt->Y, pt->Z); } else if (lnx->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (lnx->Coords, iv, pt->X, pt->Y, pt->M); } else if (lnx->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (lnx->Coords, iv, pt->X, pt->Y, pt->Z, pt->M); } else { gaiaSetPoint (lnx->Coords, iv, pt->X, pt->Y); } iv++; pt = pt->Next; } gaiaFreeDynamicLine (dyn); } static gaiaDynamicLinePtr auxGridSnapRing (gaiaRingPtr rng, double origin_x, double origin_y, double origin_z, double origin_m, double size_x, double size_y, double size_z, double size_m) { /* snapping a Ring to a regular Grid */ double x; double y; double z; double m; int has_z = 0; int has_m = 0; int iv; gaiaDynamicLinePtr dyn; gaiaPointPtr pt0; gaiaPointPtr pt; int count = 0; if (rng == NULL) return NULL; if (rng->DimensionModel == GAIA_XY_Z || rng->DimensionModel == GAIA_XY_Z_M) has_z = 1; if (rng->DimensionModel == GAIA_XY_M || rng->DimensionModel == GAIA_XY_Z_M) has_m = 1; dyn = gaiaAllocDynamicLine (); for (iv = 0; iv < rng->Points; iv++) { /* snapping each Vertex to the given grid */ int to_be_inserted = 0; z = 0.0; m = 0.0; if (has_z && has_m) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else if (has_z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (has_m) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } /* snapping coords to the given grid */ if (size_x > 0.0) x = rint ((x - origin_x) / size_x) * size_x + origin_x; if (size_y > 0.0) y = rint ((y - origin_y) / size_y) * size_y + origin_y; if (has_z && size_z > 0.0) z = rint ((z - origin_z) / size_z) * size_z + origin_z; if (has_m && size_m > 0.0) m = rint ((m - origin_m) / size_m) * size_m + origin_m; if (dyn->Last == NULL) to_be_inserted = 1; else { /* skipping repeated points */ pt = dyn->Last; if (has_z && has_m) { if (pt->X == x && pt->Y == y && pt->Z == z && pt->M == m) ; else to_be_inserted = 1; } else if (has_z) { if (pt->X == x && pt->Y == y && pt->Z == z) ; else to_be_inserted = 1; } else if (has_m) { if (pt->X == x && pt->Y == y && pt->M == m) ; else to_be_inserted = 1; } else { if (pt->X == x && pt->Y == y) ; else to_be_inserted = 1; } } if (to_be_inserted) { if (has_z && has_m) gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); else if (has_z) gaiaAppendPointZToDynamicLine (dyn, x, y, z); else if (has_m) gaiaAppendPointMToDynamicLine (dyn, x, y, m); else gaiaAppendPointToDynamicLine (dyn, x, y); } } /* ensuring for Ring closure */ pt0 = dyn->First; pt = dyn->Last; if (has_z && has_m) { if (pt0->X == pt->X && pt0->Y == pt->Y && pt0->Z == pt->Z && pt0->M == pt->M) ; else gaiaAppendPointZMToDynamicLine (dyn, pt->X, pt->Y, pt->Z, pt->M); } else if (has_z) { if (pt0->X == pt->X && pt0->Y == pt->Y && pt0->Z == pt->Z) ; else gaiaAppendPointZToDynamicLine (dyn, pt->X, pt->Y, pt->Z); } else if (has_m) { if (pt0->X == pt->X && pt0->Y == pt->Y && pt0->M == pt->M) ; else gaiaAppendPointMToDynamicLine (dyn, pt->X, pt->Y, pt->M); } else { if (pt0->X == pt->X && pt0->Y == pt->Y) ; else gaiaAppendPointToDynamicLine (dyn, pt->X, pt->Y); } /* checking for validity */ pt = dyn->First; while (pt) { /* counting how many points are there */ count++; pt = pt->Next; } if (count < 4) { /* skipping any collapsed ring */ gaiaFreeDynamicLine (dyn); return NULL; } return dyn; } static void auxGridSnapPolygon (gaiaPolygonPtr pg, gaiaGeomCollPtr result, double origin_x, double origin_y, double origin_z, double origin_m, double size_x, double size_y, double size_z, double size_m) { /* snapping a Polygon to a regular Grid */ int ib; int holes = 0; int count; int next_hole = 0; int iv; gaiaRingPtr rng; gaiaPolygonPtr pgx; gaiaPointPtr pt; gaiaDynamicLinePtr rng_ext; gaiaDynamicLinePtr dyn; gaiaDynamicLinePtr *rng_ints = NULL; if (pg == NULL || result == NULL) return; /* snapping the Exterior Ring */ rng = pg->Exterior; rng_ext = auxGridSnapRing (rng, origin_x, origin_y, origin_z, origin_m, size_x, size_y, size_z, size_m); if (rng_ext == NULL) /* skipping any collaped Polygon */ return; if (pg->NumInteriors) { /* snapping any Interior Ring */ rng_ints = malloc (sizeof (gaiaRingPtr *) * pg->NumInteriors); for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; *(rng_ints + ib) = auxGridSnapRing (rng, origin_x, origin_y, origin_z, origin_m, size_x, size_y, size_z, size_m); if (*(rng_ints + ib) != NULL) holes++; } } /* inserting into the result Geometry */ pt = rng_ext->First; count = 0; while (pt) { /* counting how many points are in the Exterior Ring */ count++; pt = pt->Next; } pgx = gaiaAddPolygonToGeomColl (result, count, holes); rng = pgx->Exterior; iv = 0; pt = rng_ext->First; while (pt) { /* copying Exterior Ring points */ if (rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, pt->X, pt->Y, pt->Z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, pt->X, pt->Y, pt->M); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, pt->X, pt->Y, pt->Z, pt->M); } else { gaiaSetPoint (rng->Coords, iv, pt->X, pt->Y); } iv++; pt = pt->Next; } if (holes > 0) { /* setting up any not-collapsed Hole */ for (ib = 0; ib < pg->NumInteriors; ib++) { if (*(rng_ints + ib) == NULL) continue; dyn = *(rng_ints + ib); pt = dyn->First; count = 0; while (pt) { /* counting how many points are in the Exterior Ring */ count++; pt = pt->Next; } rng = gaiaAddInteriorRing (pgx, next_hole++, count); iv = 0; pt = dyn->First; while (pt) { /* copying Interior Ring points */ if (rng->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (rng->Coords, iv, pt->X, pt->Y, pt->Z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (rng->Coords, iv, pt->X, pt->Y, pt->M); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (rng->Coords, iv, pt->X, pt->Y, pt->Z, pt->M); } else { gaiaSetPoint (rng->Coords, iv, pt->X, pt->Y); } iv++; pt = pt->Next; } } } /* memory clean-up */ gaiaFreeDynamicLine (rng_ext); if (rng_ints) { for (ib = 0; ib < pg->NumInteriors; ib++) { dyn = *(rng_ints + ib); if (dyn) gaiaFreeDynamicLine (dyn); } free (rng_ints); } } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnapToGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, double origin_z, double origin_m, double size_x, double size_y, double size_z, double size_m) { /* creating a Geometry snapped to a regular Grid */ gaiaGeomCollPtr result; int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; if (!geom) return NULL; /* creating the output Geometry */ if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); /* snapping elementary Geometries to the given Grid */ pt = geom->FirstPoint; while (pt) { /* snapping POINTs */ auxGridSnapPoint (geom->DimensionModel, pt, result, origin_x, origin_y, origin_z, origin_m, size_x, size_y, size_z, size_m); pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { /* snapping LINESTRINGs */ auxGridSnapLinestring (ln, result, origin_x, origin_y, origin_z, origin_m, size_x, size_y, size_z, size_m); ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { /* snapping POLYGONs */ auxGridSnapPolygon (pg, result, origin_x, origin_y, origin_z, origin_m, size_x, size_y, size_z, size_m); pg = pg->Next; } /* validating the output Geometry */ pt = result->FirstPoint; while (pt) { /* counting how many POINTs are there */ pts++; pt = pt->Next; } ln = result->FirstLinestring; while (ln) { /* counting how many LINESTRINGs are there */ lns++; ln = ln->Next; } pg = result->FirstPolygon; while (pg) { /* counting how many POLYGONs are there */ pgs++; pg = pg->Next; } if (pts == 0 && lns == 0 && pgs == 0) { /* empty result */ gaiaFreeGeomColl (result); return NULL; } /* final adjustment */ result->Srid = geom->Srid; if (pts == 1 && lns == 0 && pgs == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) result->DeclaredType = GAIA_GEOMETRYCOLLECTION; else if (geom->DeclaredType == GAIA_MULTIPOINT) result->DeclaredType = GAIA_MULTIPOINT; else result->DeclaredType = GAIA_POINT; } else if (pts == 0 && lns == 1 && pgs == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) result->DeclaredType = GAIA_GEOMETRYCOLLECTION; else if (geom->DeclaredType == GAIA_MULTILINESTRING) result->DeclaredType = GAIA_MULTILINESTRING; else result->DeclaredType = GAIA_LINESTRING; } else if (pts == 0 && lns == 0 && pgs == 1) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) result->DeclaredType = GAIA_GEOMETRYCOLLECTION; else if (geom->DeclaredType == GAIA_MULTIPOLYGON) result->DeclaredType = GAIA_MULTIPOLYGON; else result->DeclaredType = GAIA_POLYGON; } else if (pts > 1 && lns == 0 && pgs == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) result->DeclaredType = GAIA_GEOMETRYCOLLECTION; else result->DeclaredType = GAIA_MULTIPOINT; } else if (pts == 0 && lns > 1 && pgs == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) result->DeclaredType = GAIA_GEOMETRYCOLLECTION; else result->DeclaredType = GAIA_MULTILINESTRING; } else if (pts == 0 && lns == 0 && pgs > 1) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) result->DeclaredType = GAIA_GEOMETRYCOLLECTION; else result->DeclaredType = GAIA_MULTIPOLYGON; } else result->DeclaredType = GAIA_GEOMETRYCOLLECTION; return result; } #ifndef OMIT_GEOS /* only if GEOS is enabled */ static void get_grid_bbox (gaiaGeomCollPtr geom, double *min_x, double *min_y, double *max_x, double *max_y) { /* extracting the BBOX representing the input geometry */ gaiaMbrGeometry (geom); *min_x = geom->MinX; *min_y = geom->MinY; *max_x = geom->MaxX; *max_y = geom->MaxY; } static void get_grid_base (double min_x, double min_y, double origin_x, double origin_y, double size, double *base_x, double *base_y) { /* determining the grid base-point [MinX/MinY] */ double x = rint ((min_x - origin_x) / size) * size + origin_x; double y = rint ((min_y - origin_y) / size) * size + origin_y; if (x > min_x) *base_x = x - size; else *base_x = x; if (y > min_y) *base_y = y - size; else *base_y = y; } static gaiaGeomCollPtr gaiaSquareGridCommon (const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int edges_only) { /* creating a regular grid [Square cells] */ double min_x; double min_y; double max_x; double max_y; double base_x; double base_y; double x1; double y1; double x2; double y2; double x3; double y3; double x4; double y4; int count = 0; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaLinestringPtr ln; gaiaGeomCollPtr result = NULL; gaiaGeomCollPtr item = NULL; int ret; if (size <= 0.0) return NULL; result = gaiaAllocGeomColl (); result->Srid = geom->Srid; get_grid_bbox (geom, &min_x, &min_y, &max_x, &max_y); get_grid_base (min_x, min_y, origin_x, origin_y, size, &base_x, &base_y); while (base_y < max_y) { /* looping on grid rows */ x1 = base_x; y1 = base_y; x2 = x1 + size; y2 = y1; x3 = x2; y3 = y1 + size; x4 = x1; y4 = y3; while (x1 < max_x) { /* looping on grid columns */ item = gaiaAllocGeomColl (); pg = gaiaAddPolygonToGeomColl (item, 5, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, x1, y1); gaiaSetPoint (rng->Coords, 1, x2, y2); gaiaSetPoint (rng->Coords, 2, x3, y3); gaiaSetPoint (rng->Coords, 3, x4, y4); gaiaSetPoint (rng->Coords, 4, x1, y1); gaiaMbrGeometry (item); if (p_cache != NULL) ret = gaiaGeomCollIntersects_r (p_cache, geom, item); else ret = gaiaGeomCollIntersects (geom, item); if (ret == 1) { /* ok, inserting a valid cell */ count++; if (edges_only) { /* multilinestring */ ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x2, y2); gaiaSetPoint (ln->Coords, 1, x3, y3); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x3, y3); gaiaSetPoint (ln->Coords, 1, x4, y4); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x4, y4); gaiaSetPoint (ln->Coords, 1, x1, y1); } else { /* polygon */ pg = gaiaAddPolygonToGeomColl (result, 5, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, x1, y1); gaiaSetPoint (rng->Coords, 1, x2, y2); gaiaSetPoint (rng->Coords, 2, x3, y3); gaiaSetPoint (rng->Coords, 3, x4, y4); gaiaSetPoint (rng->Coords, 4, x1, y1); } } gaiaFreeGeomColl (item); x1 += size; x2 += size; x3 += size; x4 += size; } base_y += size; } /* final check */ if (!count) { /* empty grid */ gaiaFreeGeomColl (result); return NULL; } if (!edges_only) { result->DeclaredType = GAIA_MULTIPOLYGON; return result; } item = result; if (p_cache != NULL) result = gaiaUnaryUnion_r (p_cache, item); else result = gaiaUnaryUnion (item); gaiaFreeGeomColl (item); result->Srid = geom->Srid; result->DeclaredType = GAIA_LINESTRING; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int edges_only) { return gaiaSquareGridCommon (NULL, geom, origin_x, origin_y, size, edges_only); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid_r (const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int edges_only) { return gaiaSquareGridCommon (p_cache, geom, origin_x, origin_y, size, edges_only); } static void get_trigrid_base (double min_x, double min_y, double origin_x, double origin_y, double shift_h_odd, double shift_h_even, double shift_v, int *odd_even, double *base_x, double *base_y) { /* determining the grid base-point [MinX/MinY] for a Triangular Grid */ double bx = origin_x; double by = origin_y; while (1) { /* looping on grid rows */ if (min_y < origin_y) { /* going southward */ if (by > min_y) goto next_scanline; if (*odd_even) bx = origin_x - shift_h_odd; else bx = origin_x; } else { /* going northward */ if (by < min_y) goto next_scanline; if (*odd_even) bx = origin_x - shift_h_odd; else bx = origin_x; } while (1) { /* looping on grid columns */ if (min_x < origin_x) { /* going eastward */ if (bx - shift_h_even - shift_h_odd < min_x) { *base_x = bx; *base_y = by; return; } bx -= shift_h_even; } else { /* going westward */ if (bx + shift_h_even > min_x || bx + shift_h_even + shift_h_odd > min_x) { *base_x = bx; *base_y = by; return; } bx += shift_h_even; } } next_scanline: if (min_y < origin_y) by -= shift_v; else by += shift_v; if (*odd_even) *odd_even = 0; else *odd_even = 1; } } static gaiaGeomCollPtr gaiaTriangularGridCommon (const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int edges_only) { /* creating a regular grid [Triangular cells] */ double min_x; double min_y; double max_x; double max_y; double base_x; double base_y; double x1; double y1; double x2; double y2; double x3; double y3; double x4; double y4; double shift_h_odd; double shift_h_even; double shift_v; int count = 0; int odd_even = 0; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaLinestringPtr ln; gaiaGeomCollPtr result = NULL; gaiaGeomCollPtr item = NULL; int ret; if (size <= 0.0) return NULL; shift_h_odd = size / 2.0; shift_h_even = size; shift_v = size * sin (3.14159265358979323846 / 3.0); result = gaiaAllocGeomColl (); result->Srid = geom->Srid; get_grid_bbox (geom, &min_x, &min_y, &max_x, &max_y); get_trigrid_base (min_x, min_y, origin_x, origin_y, shift_h_odd, shift_h_even, shift_v, &odd_even, &base_x, &base_y); base_x -= base_x; base_y -= shift_v; while (base_y < max_y) { /* looping on grid rows */ if (odd_even) x1 = base_x - shift_h_odd; else x1 = base_x; y1 = base_y; x2 = x1 + shift_h_even; y2 = y1; x3 = x1 + shift_h_odd; y3 = y1 + shift_v; x4 = x3 + shift_h_even; y4 = y3; while (x1 < max_x) { /* looping on grid columns */ item = gaiaAllocGeomColl (); pg = gaiaAddPolygonToGeomColl (item, 4, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, x1, y1); gaiaSetPoint (rng->Coords, 1, x2, y2); gaiaSetPoint (rng->Coords, 2, x3, y3); gaiaSetPoint (rng->Coords, 3, x1, y1); gaiaMbrGeometry (item); if (p_cache != NULL) ret = gaiaGeomCollIntersects_r (p_cache, geom, item); else ret = gaiaGeomCollIntersects (geom, item); if (ret == 1) { /* ok, inserting a valid cell [pointing upside] */ count++; if (edges_only) { /* multilinestring */ ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x2, y2); gaiaSetPoint (ln->Coords, 1, x3, y3); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x3, y3); gaiaSetPoint (ln->Coords, 1, x1, y1); } else { /* polygon */ pg = gaiaAddPolygonToGeomColl (result, 4, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, x1, y1); gaiaSetPoint (rng->Coords, 1, x2, y2); gaiaSetPoint (rng->Coords, 2, x3, y3); gaiaSetPoint (rng->Coords, 3, x1, y1); } } gaiaFreeGeomColl (item); item = gaiaAllocGeomColl (); pg = gaiaAddPolygonToGeomColl (item, 4, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, x3, y3); gaiaSetPoint (rng->Coords, 1, x2, y2); gaiaSetPoint (rng->Coords, 2, x4, y4); gaiaSetPoint (rng->Coords, 3, x3, y3); gaiaMbrGeometry (item); if (p_cache != NULL) ret = gaiaGeomCollIntersects_r (p_cache, geom, item); else ret = gaiaGeomCollIntersects (geom, item); if (ret == 1) { /* ok, inserting a valid cell [pointing downside] */ count++; if (edges_only) { /* multilinestring */ ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x2, y2); gaiaSetPoint (ln->Coords, 1, x3, y3); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x3, y3); gaiaSetPoint (ln->Coords, 1, x1, y1); } else { /* polygon */ pg = gaiaAddPolygonToGeomColl (result, 4, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, x3, y3); gaiaSetPoint (rng->Coords, 1, x2, y2); gaiaSetPoint (rng->Coords, 2, x4, y4); gaiaSetPoint (rng->Coords, 3, x3, y3); } } gaiaFreeGeomColl (item); x1 += shift_h_even; x2 += shift_h_even; x3 += shift_h_even; x4 += shift_h_even; } base_y += shift_v; if (odd_even) odd_even = 0; else odd_even = 1; } /* final check */ if (!count) { /* empty grid */ gaiaFreeGeomColl (result); return NULL; } if (!edges_only) { result->DeclaredType = GAIA_MULTIPOLYGON; return result; } item = result; if (p_cache != NULL) result = gaiaUnaryUnion_r (p_cache, item); else result = gaiaUnaryUnion (item); gaiaFreeGeomColl (item); result->Srid = geom->Srid; result->DeclaredType = GAIA_LINESTRING; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int edges_only) { return gaiaTriangularGridCommon (NULL, geom, origin_x, origin_y, size, edges_only); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid_r (const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int edges_only) { return gaiaTriangularGridCommon (p_cache, geom, origin_x, origin_y, size, edges_only); } static void get_hexgrid_base (double min_x, double min_y, double origin_x, double origin_y, double shift3, double shift4, double shift, int *odd_even, double *base_x, double *base_y) { /* determining the grid base-point [MinX/MinY] for am Hexagonal Grid */ double bx = origin_x; double by = origin_y; while (1) { /* looping on grid rows */ if (min_y < origin_y) { /* going southward */ if (by > min_y) goto next_scanline; if (*odd_even) bx = origin_x - (shift3 / 2.0); else bx = origin_x; } else { /* going northward */ if (by < min_y) goto next_scanline; if (*odd_even) bx = origin_x + (shift3 / 2.0); else bx = origin_x; } while (1) { /* looping on grid columns */ if (min_x < origin_x) { /* going westward */ if (bx - shift4 < min_x) { *base_x = bx; *base_y = by; return; } bx -= shift3; } else { /* going eastward */ if (bx + shift4 > min_x) { *base_x = bx; *base_y = by; return; } bx += shift3; } } next_scanline: if (min_y < origin_y) by -= shift; else by += shift; if (*odd_even) *odd_even = 0; else *odd_even = 1; } } static gaiaGeomCollPtr gaiaHexagonalGridCommon (const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int edges_only) { /* creating a regular grid [Hexagonal cells] */ double min_x; double min_y; double max_x; double max_y; double base_x; double base_y; double x1; double y1; double x2; double y2; double x3; double y3; double x4; double y4; double x5; double y5; double x6; double y6; int count = 0; int odd_even = 0; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaLinestringPtr ln; gaiaGeomCollPtr result = NULL; gaiaGeomCollPtr item = NULL; double shift; double shift2; double shift3; double shift4; int ret; if (size <= 0.0) return NULL; shift = size * sin (3.14159265358979323846 / 3.0); shift2 = size / 2.0; shift3 = size * 3.0; shift4 = size * 2.0; result = gaiaAllocGeomColl (); result->Srid = geom->Srid; get_grid_bbox (geom, &min_x, &min_y, &max_x, &max_y); get_hexgrid_base (min_x, min_y, origin_x, origin_y, shift3, shift4, shift, &odd_even, &base_x, &base_y); base_x -= shift3; base_y -= shift; while ((base_y - shift) < max_y) { /* looping on grid rows */ if (odd_even) x1 = base_x - (shift3 / 2.0); else x1 = base_x; y1 = base_y; x2 = x1 + shift2; y2 = y1 - shift; x3 = x2 + size; y3 = y2; x4 = x1 + shift4; y4 = y1; x5 = x3; y5 = y1 + shift; x6 = x2; y6 = y5; while (x1 < max_x) { /* looping on grid columns */ item = gaiaAllocGeomColl (); pg = gaiaAddPolygonToGeomColl (item, 7, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, x1, y1); gaiaSetPoint (rng->Coords, 1, x2, y2); gaiaSetPoint (rng->Coords, 2, x3, y3); gaiaSetPoint (rng->Coords, 3, x4, y4); gaiaSetPoint (rng->Coords, 4, x5, y5); gaiaSetPoint (rng->Coords, 5, x6, y6); gaiaSetPoint (rng->Coords, 6, x1, y1); gaiaMbrGeometry (item); if (p_cache != NULL) ret = gaiaGeomCollIntersects_r (p_cache, geom, item); else ret = gaiaGeomCollIntersects (geom, item); if (ret == 1) { /* ok, inserting a valid cell */ count++; if (edges_only) { /* multilinestring */ ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x2, y2); gaiaSetPoint (ln->Coords, 1, x3, y3); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x3, y3); gaiaSetPoint (ln->Coords, 1, x4, y4); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x4, y4); gaiaSetPoint (ln->Coords, 1, x5, y5); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x5, y5); gaiaSetPoint (ln->Coords, 1, x6, y6); ln = gaiaAddLinestringToGeomColl (result, 2); gaiaSetPoint (ln->Coords, 0, x6, y6); gaiaSetPoint (ln->Coords, 1, x1, y1); } else { /* polygon */ pg = gaiaAddPolygonToGeomColl (result, 7, 0); rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, x1, y1); gaiaSetPoint (rng->Coords, 1, x2, y2); gaiaSetPoint (rng->Coords, 2, x3, y3); gaiaSetPoint (rng->Coords, 3, x4, y4); gaiaSetPoint (rng->Coords, 4, x5, y5); gaiaSetPoint (rng->Coords, 5, x6, y6); gaiaSetPoint (rng->Coords, 6, x1, y1); } } gaiaFreeGeomColl (item); x1 += shift3; x2 += shift3; x3 += shift3; x4 += shift3; x5 += shift3; x6 += shift3; } base_y += shift; if (odd_even) odd_even = 0; else odd_even = 1; } /* final check */ if (!count) { /* empty grid */ gaiaFreeGeomColl (result); return NULL; } if (!edges_only) { result->DeclaredType = GAIA_MULTIPOLYGON; return result; } item = result; if (p_cache != NULL) result = gaiaUnaryUnion_r (p_cache, item); else result = gaiaUnaryUnion (item); gaiaFreeGeomColl (item); result->Srid = geom->Srid; result->DeclaredType = GAIA_LINESTRING; return result; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int edges_only) { return gaiaHexagonalGridCommon (NULL, geom, origin_x, origin_y, size, edges_only); } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid_r (const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int edges_only) { return gaiaHexagonalGridCommon (p_cache, geom, origin_x, origin_y, size, edges_only); } #endif /* end including GEOS */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiageo/lex.VanuatuWkt.c���������������������������������������������������0000664�0001750�0001750�00000200777�12544707704�016706� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #line 3 "lex.VanuatuWkt.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include <stdio.h> #include <string.h> #include <errno.h> #include <stdlib.h> /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include <inttypes.h> typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; #endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST #endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T typedef void *yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) are macros in the reentrant scanner. */ #define yyin yyg->yyin_r #define yyout yyg->yyout_r #define yyextra yyg->yyextra_r #define yyleng yyg->yyleng_r #define yytext yyg->yytext_r #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) #define yy_flex_debug yyg->yy_flex_debug_r /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yyg->yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yyg->yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE VanuatuWktrestart(yyin ,yyscanner ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = yyg->yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via VanuatuWktrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] void VanuatuWktrestart (FILE * input_file, yyscan_t yyscanner); void VanuatuWkt_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); YY_BUFFER_STATE VanuatuWkt_create_buffer (FILE * file, int size, yyscan_t yyscanner); void VanuatuWkt_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void VanuatuWkt_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner); void VanuatuWktpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner); void VanuatuWktpop_buffer_state (yyscan_t yyscanner); static void VanuatuWktensure_buffer_stack (yyscan_t yyscanner); static void VanuatuWkt_load_buffer_state (yyscan_t yyscanner); static void VanuatuWkt_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner); #define YY_FLUSH_BUFFER VanuatuWkt_flush_buffer(YY_CURRENT_BUFFER ,yyscanner) YY_BUFFER_STATE VanuatuWkt_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner); YY_BUFFER_STATE VanuatuWkt_scan_string (yyconst char *yy_str, yyscan_t yyscanner); YY_BUFFER_STATE VanuatuWkt_scan_bytes (yyconst char *bytes, int len, yyscan_t yyscanner); void *VanuatuWktalloc (yy_size_t, yyscan_t yyscanner); void *VanuatuWktrealloc (void *, yy_size_t, yyscan_t yyscanner); void VanuatuWktfree (void *, yyscan_t yyscanner); #define yy_new_buffer VanuatuWkt_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ VanuatuWktensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ VanuatuWkt_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ VanuatuWktensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ VanuatuWkt_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ typedef unsigned char YY_CHAR; typedef int yy_state_type; #define yytext_ptr yytext_r static yy_state_type yy_get_previous_state (yyscan_t yyscanner); static yy_state_type yy_try_NUL_trans (yy_state_type current_state, yyscan_t yyscanner); static int yy_get_next_buffer (yyscan_t yyscanner); static void yy_fatal_error (yyconst char msg[], yyscan_t yyscanner); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yyg->yytext_ptr = yy_bp; \ yyleng = (size_t) (yy_cp - yy_bp); \ yyg->yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; #define YY_NUM_RULES 36 #define YY_END_OF_BUFFER 37 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static yyconst flex_int16_t yy_accept[114] = { 0, 0, 0, 37, 35, 33, 34, 3, 4, 35, 2, 35, 1, 35, 35, 35, 35, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 7, 6, 0, 0, 0, 0, 0, 8, 13, 0, 0, 0, 0, 0, 0, 15, 14, 0, 0, 0, 0, 0, 16, 0, 9, 0, 17, 0, 0, 0, 11, 10, 0, 0, 19, 18, 0, 0, 12, 0, 20, 25, 0, 0, 0, 27, 26, 0, 0, 28, 0, 21, 0, 0, 23, 22, 0, 24, 29, 0, 31, 30, 32, 0 }; static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 4, 5, 1, 6, 7, 8, 9, 1, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 11, 1, 12, 1, 13, 1, 14, 1, 1, 15, 16, 17, 18, 19, 1, 20, 21, 22, 23, 1, 1, 1, 24, 25, 1, 1, 1, 1, 1, 1, 1, 1, 26, 1, 27, 1, 28, 1, 29, 1, 1, 30, 31, 32, 33, 34, 1, 35, 36, 37, 38, 1, 1, 1, 39, 40, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static yyconst flex_int32_t yy_meta[41] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static yyconst flex_int16_t yy_base[115] = { 0, 0, 33, 211, 255, 255, 255, 255, 255, 192, 255, 191, 2, 2, 3, 4, 0, 11, 13, 185, 15, 26, 28, 32, 36, 162, 161, 154, 37, 42, 33, 39, 33, 71, 16, 46, 53, 61, 54, 64, 56, 57, 65, 80, 67, 66, 67, 74, 79, 0, 255, 82, 87, 82, 93, 91, 95, 255, 112, 105, 100, 106, 109, 103, 0, 255, 113, 112, 121, 114, 114, 125, 255, 124, 144, 118, 154, 130, 143, 0, 255, 143, 141, 0, 255, 146, 148, 154, 255, 153, 255, 184, 157, 161, 0, 255, 172, 167, 177, 255, 177, 194, 174, 0, 255, 182, 182, 255, 214, 0, 255, 192, 255, 255, 0 }; static yyconst flex_int16_t yy_def[115] = { 0, 114, 114, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 43, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 58, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 74, 113, 113, 113, 76, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 91, 113, 113, 113, 113, 113, 113, 113, 113, 101, 113, 113, 113, 113, 113, 108, 113, 113, 113, 0, 113 }; static yyconst flex_int16_t yy_nxt[296] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 113, 12, 19, 20, 13, 21, 14, 15, 22, 24, 16, 25, 17, 26, 18, 19, 20, 34, 23, 13, 21, 14, 15, 22, 24, 16, 5, 6, 7, 8, 9, 10, 11, 23, 12, 28, 29, 13, 30, 14, 15, 31, 32, 16, 35, 36, 37, 38, 39, 40, 28, 29, 13, 30, 14, 15, 31, 32, 16, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 33, 49, 49, 48, 52, 53, 54, 55, 41, 42, 43, 44, 45, 46, 47, 50, 56, 57, 48, 52, 53, 54, 55, 58, 51, 59, 60, 61, 62, 63, 50, 56, 57, 64, 64, 67, 68, 69, 58, 51, 59, 60, 61, 62, 63, 70, 71, 65, 72, 73, 67, 68, 69, 74, 75, 76, 66, 77, 78, 82, 70, 71, 65, 72, 73, 79, 79, 86, 74, 75, 76, 66, 77, 78, 82, 83, 83, 87, 88, 80, 89, 90, 86, 27, 91, 92, 93, 97, 81, 84, 34, 33, 87, 88, 80, 89, 90, 98, 85, 91, 92, 93, 97, 81, 84, 94, 94, 99, 100, 101, 102, 106, 98, 85, 27, 103, 103, 107, 108, 95, 18, 17, 99, 100, 101, 102, 106, 112, 96, 104, 113, 113, 107, 108, 95, 109, 109, 113, 105, 113, 113, 113, 112, 96, 104, 113, 113, 113, 113, 110, 113, 113, 113, 105, 113, 113, 113, 113, 111, 113, 113, 113, 113, 113, 110, 113, 113, 113, 113, 113, 113, 113, 113, 111, 3, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113 }; static yyconst flex_int16_t yy_chk[296] = { 0, 114, 1, 1, 1, 1, 1, 1, 1, 0, 1, 12, 12, 1, 13, 1, 1, 14, 16, 1, 17, 17, 18, 18, 20, 20, 34, 15, 1, 13, 1, 1, 14, 16, 1, 2, 2, 2, 2, 2, 2, 2, 15, 2, 21, 22, 2, 23, 2, 2, 24, 24, 2, 28, 29, 30, 31, 32, 35, 21, 22, 2, 23, 2, 2, 24, 24, 2, 28, 29, 30, 31, 32, 35, 36, 37, 38, 39, 40, 41, 42, 33, 43, 43, 42, 44, 45, 46, 47, 36, 37, 38, 39, 40, 41, 42, 43, 48, 51, 42, 44, 45, 46, 47, 52, 43, 53, 54, 55, 56, 56, 43, 48, 51, 58, 58, 59, 60, 61, 52, 43, 53, 54, 55, 56, 56, 62, 63, 58, 66, 67, 59, 60, 61, 68, 69, 70, 58, 71, 73, 75, 62, 63, 58, 66, 67, 74, 74, 77, 68, 69, 70, 58, 71, 73, 75, 76, 76, 78, 81, 74, 82, 85, 77, 27, 86, 87, 89, 92, 74, 76, 26, 25, 78, 81, 74, 82, 85, 93, 76, 86, 87, 89, 92, 74, 76, 91, 91, 96, 97, 98, 100, 102, 93, 76, 19, 101, 101, 105, 106, 91, 11, 9, 96, 97, 98, 100, 102, 111, 91, 101, 3, 0, 105, 106, 91, 108, 108, 0, 101, 0, 0, 0, 111, 91, 101, 0, 0, 0, 0, 108, 0, 0, 0, 101, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 108, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113 }; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET /* vanuatuLexer.l -- Vanuatu WKT parser - FLEX config version 2.4, 2010 April 2 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): The Vanuatu Team - University of Toronto Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /****************************************************************************** ** The following code was created by Team Vanuatu of The University of Toronto. Authors: Ruppi Rana ruppi.rana@gmail.com Dev Tanna dev.tanna@gmail.com Elias Adum elias.adum@gmail.com Benton Hui benton.hui@gmail.com Abhayan Sundararajan abhayan@gmail.com Chee-Lun Michael Stephen Cho cheelun.cho@gmail.com Nikola Banovic nikola.banovic@gmail.com Yong Jian yong.jian@utoronto.ca Supervisor: Greg Wilson gvwilson@cs.toronto.ca ------------------------------------------------------------------------------- */ #define YY_NO_INPUT 1 /** * The main string-token matcher. * The lower case part is probably not needed. We should really be converting * The string to all uppercase/lowercase to make it case iNsEnSiTiVe. * What Flex will do is, For the input string, beginning from the front, Flex * will try to match with any of the defined tokens from below. Flex will * then match the string of longest length. Suppose the string is: POINT ZM, * Flex would match both POINT Z and POINT ZM, but since POINT ZM is the longer * of the two tokens, FLEX will match POINT ZM. */ #define INITIAL 0 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include <unistd.h> #endif #define YY_EXTRA_TYPE struct vanuatu_data * /* Holds the entire state of the reentrant scanner. */ struct yyguts_t { /* User-defined. Not touched by flex. */ YY_EXTRA_TYPE yyextra_r; /* The rest are the same as the globals declared in the non-reentrant scanner. */ FILE *yyin_r, *yyout_r; size_t yy_buffer_stack_top; /**< index of top of stack. */ size_t yy_buffer_stack_max; /**< capacity of stack. */ YY_BUFFER_STATE *yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; int yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; int yy_did_buffer_switch_on_eof; int yy_start_stack_ptr; int yy_start_stack_depth; int *yy_start_stack; yy_state_type yy_last_accepting_state; char *yy_last_accepting_cpos; int yylineno_r; int yy_flex_debug_r; char *yytext_r; int yy_more_flag; int yy_more_len; }; /* end struct yyguts_t */ static int yy_init_globals (yyscan_t yyscanner); int VanuatuWktlex_init (yyscan_t * scanner); int VanuatuWktlex_init_extra (YY_EXTRA_TYPE user_defined, yyscan_t * scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int VanuatuWktlex_destroy (yyscan_t yyscanner); int VanuatuWktget_debug (yyscan_t yyscanner); void VanuatuWktset_debug (int debug_flag, yyscan_t yyscanner); YY_EXTRA_TYPE VanuatuWktget_extra (yyscan_t yyscanner); void VanuatuWktset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner); FILE *VanuatuWktget_in (yyscan_t yyscanner); void VanuatuWktset_in (FILE * in_str, yyscan_t yyscanner); FILE *VanuatuWktget_out (yyscan_t yyscanner); void VanuatuWktset_out (FILE * out_str, yyscan_t yyscanner); int VanuatuWktget_leng (yyscan_t yyscanner); char *VanuatuWktget_text (yyscan_t yyscanner); int VanuatuWktget_lineno (yyscan_t yyscanner); void VanuatuWktset_lineno (int line_number, yyscan_t yyscanner); int VanuatuWktget_column (yyscan_t yyscanner); void VanuatuWktset_column (int column_no, yyscan_t yyscanner); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int VanuatuWktwrap (yyscan_t yyscanner); #else extern int VanuatuWktwrap (yyscan_t yyscanner); #endif #endif #ifndef yytext_ptr static void yy_flex_strncpy (char *, yyconst char *, int, yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *, yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner); #else static int input (yyscan_t yyscanner); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ unsigned n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int VanuatuWktlex (yyscan_t yyscanner); #define YY_DECL int VanuatuWktlex (yyscan_t yyscanner) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_init) { yyg->yy_init = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if (!yyg->yy_start) yyg->yy_start = 1; /* first start state */ if (!yyin) yyin = stdin; if (!yyout) yyout = stdout; if (!YY_CURRENT_BUFFER) { VanuatuWktensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = VanuatuWkt_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } VanuatuWkt_load_buffer_state (yyscanner); } while (1) /* loops until end-of-file is reached */ { yy_cp = yyg->yy_c_buf_p; /* Support of yytext. */ *yy_cp = yyg->yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = yyg->yy_start; yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI (*yy_cp)]; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 114) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while (yy_base[yy_current_state] != 255); yy_find_action: yy_act = yy_accept[yy_current_state]; if (yy_act == 0) { /* have to back up */ yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch (yy_act) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yyg->yy_hold_char; yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; goto yy_find_action; case 1: YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->vanuatu_col += (int) strlen (yytext); VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = atof (yytext); return VANUATU_NUM; } YY_BREAK case 2:YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_COMMA; } YY_BREAK case 3:YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_OPEN_BRACKET; } YY_BREAK case 4:YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_CLOSE_BRACKET; } YY_BREAK case 5:YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT; } YY_BREAK case 6: /* rule 6 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT_Z; } YY_BREAK case 7: /* rule 7 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT_M; } YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POINT_ZM; } YY_BREAK case 9:YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING; } YY_BREAK case 10: /* rule 10 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_Z; } YY_BREAK case 11: /* rule 11 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_M; } YY_BREAK case 12: /* rule 12 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_LINESTRING_ZM; } YY_BREAK case 13:YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON; } YY_BREAK case 14: /* rule 14 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON_Z; } YY_BREAK case 15: /* rule 15 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON_M; } YY_BREAK case 16: /* rule 16 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_POLYGON_ZM; } YY_BREAK case 17:YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT; } YY_BREAK case 18: /* rule 18 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_Z; } YY_BREAK case 19: /* rule 19 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_M; } YY_BREAK case 20: /* rule 20 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOINT_ZM; } YY_BREAK case 21:YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING; } YY_BREAK case 22: /* rule 22 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_Z; } YY_BREAK case 23: /* rule 23 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_M; } YY_BREAK case 24: /* rule 24 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTILINESTRING_ZM; } YY_BREAK case 25:YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON; } YY_BREAK case 26: /* rule 26 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_Z; } YY_BREAK case 27: /* rule 27 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_M; } YY_BREAK case 28: /* rule 28 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_MULTIPOLYGON_ZM; } YY_BREAK case 29:YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION; } YY_BREAK case 30: /* rule 30 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_Z; } YY_BREAK case 31: /* rule 31 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_M; } YY_BREAK case 32: /* rule 32 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->VanuatuWktlval.dval = 0; return VANUATU_GEOMETRYCOLLECTION_ZM; } YY_BREAK case 33:YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->vanuatu_col += (int) strlen (yytext); } /* ignore but count white space */ YY_BREAK case 34: /* rule 34 can match eol */ YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->vanuatu_col = 0; VanuatuWktget_extra (yyscanner)->vanuatu_line++; } YY_BREAK case 35:YY_RULE_SETUP { VanuatuWktget_extra (yyscanner)->vanuatu_col += (int) strlen (yytext); return -1; } YY_BREAK case 36:YY_RULE_SETUP ECHO; YY_BREAK case YY_STATE_EOF (INITIAL):yyterminate (); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yyg->yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * VanuatuWktlex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if (yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) { /* This was really a NUL. */ yy_state_type yy_next_state; yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans (yy_current_state, yyscanner); yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; if (yy_next_state) { /* Consume the NUL. */ yy_cp = ++yyg->yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yyg->yy_c_buf_p; goto yy_find_action; } } else switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_END_OF_FILE: { yyg->yy_did_buffer_switch_on_eof = 0; if (VanuatuWktwrap (yyscanner)) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF (YY_START); goto do_action; } else { if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yyg->yy_c_buf_p = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg-> yy_n_chars]; yy_current_state = yy_get_previous_state (yyscanner); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR ("fatal flex scanner internal error--no action found"); } /* end of action switch */ } /* end of scanning one token */ } /* end of VanuatuWktlex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = yyg->yytext_ptr; register int number_to_move, i; int ret_val; if (yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1]) YY_FATAL_ERROR ("fatal flex scanner internal error--end of buffer missed"); if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0) { /* Don't try to fill the buffer, so this is an EOF. */ if (yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1; for (i = 0; i < number_to_move; ++i) *(dest++) = *(source++); if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while (num_to_read <= 0) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER; int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); if (b->yy_is_our_buffer) { int new_size = b->yy_buf_size * 2; if (new_size <= 0) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ VanuatuWktrealloc ((void *) b->yy_ch_buf, b->yy_buf_size + 2, yyscanner); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if (!b->yy_ch_buf) YY_FATAL_ERROR ("fatal error - scanner input buffer overflow"); yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if (num_to_read > YY_READ_BUF_SIZE) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT ((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), yyg->yy_n_chars, (size_t) num_to_read); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } if (yyg->yy_n_chars == 0) { if (number_to_move == YY_MORE_ADJ) { ret_val = EOB_ACT_END_OF_FILE; VanuatuWktrestart (yyin, yyscanner); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) VanuatuWktrealloc ((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, new_size, yyscanner); if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in yy_get_next_buffer()"); } yyg->yy_n_chars += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (yyscan_t yyscanner) { register yy_state_type yy_current_state; register char *yy_cp; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_current_state = yyg->yy_start; for (yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI (*yy_cp)] : 1); if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 114) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state, yyscan_t yyscanner) { register int yy_is_jam; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* This var may be unused depending upon options. */ register char *yy_cp = yyg->yy_c_buf_p; register YY_CHAR yy_c = 1; if (yy_accept[yy_current_state]) { yyg->yy_last_accepting_state = yy_current_state; yyg->yy_last_accepting_cpos = yy_cp; } while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) { yy_current_state = (int) yy_def[yy_current_state]; if (yy_current_state >= 114) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 113); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner) #else static int input (yyscan_t yyscanner) #endif { int c; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; *yyg->yy_c_buf_p = yyg->yy_hold_char; if (*yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if (yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]) /* This was really a NUL. */ *yyg->yy_c_buf_p = '\0'; else { /* need more input */ int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; ++yyg->yy_c_buf_p; switch (yy_get_next_buffer (yyscanner)) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ VanuatuWktrestart (yyin, yyscanner); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if (VanuatuWktwrap (yyscanner)) return EOF; if (!yyg->yy_did_buffer_switch_on_eof) YY_NEW_FILE; #ifdef __cplusplus return yyinput (yyscanner); #else return input (yyscanner); #endif } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + offset; break; } } } c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ yyg->yy_hold_char = *++yyg->yy_c_buf_p; return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ void VanuatuWktrestart (FILE * input_file, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) { VanuatuWktensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = VanuatuWkt_create_buffer (yyin, YY_BUF_SIZE, yyscanner); } VanuatuWkt_init_buffer (YY_CURRENT_BUFFER, input_file, yyscanner); VanuatuWkt_load_buffer_state (yyscanner); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ void VanuatuWkt_switch_to_buffer (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* TODO. We should be able to replace this entire function body * with * VanuatuWktpop_buffer_state(); * VanuatuWktpush_buffer_state(new_buffer); */ VanuatuWktensure_buffer_stack (yyscanner); if (YY_CURRENT_BUFFER == new_buffer) return; if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } YY_CURRENT_BUFFER_LVALUE = new_buffer; VanuatuWkt_load_buffer_state (yyscanner); /* We don't actually know whether we did this switch during * EOF (VanuatuWktwrap()) processing, but the only time this flag * is looked at is after VanuatuWktwrap() is called, so it's safe * to go ahead and always set it. */ yyg->yy_did_buffer_switch_on_eof = 1; } static void VanuatuWkt_load_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; yyg->yy_hold_char = *yyg->yy_c_buf_p; } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * @param yyscanner The scanner object. * @return the allocated buffer state. */ YY_BUFFER_STATE VanuatuWkt_create_buffer (FILE * file, int size, yyscan_t yyscanner) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) VanuatuWktalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in VanuatuWkt_create_buffer()"); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) VanuatuWktalloc (b->yy_buf_size + 2, yyscanner); if (!b->yy_ch_buf) YY_FATAL_ERROR ("out of dynamic memory in VanuatuWkt_create_buffer()"); b->yy_is_our_buffer = 1; VanuatuWkt_init_buffer (b, file, yyscanner); return b; } /** Destroy the buffer. * @param b a buffer created with VanuatuWkt_create_buffer() * @param yyscanner The scanner object. */ void VanuatuWkt_delete_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; if (b == YY_CURRENT_BUFFER) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if (b->yy_is_our_buffer) VanuatuWktfree ((void *) b->yy_ch_buf, yyscanner); VanuatuWktfree ((void *) b, yyscanner); } #ifndef __cplusplus extern int isatty (int); #endif /* __cplusplus */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a VanuatuWktrestart() or at EOF. */ static void VanuatuWkt_init_buffer (YY_BUFFER_STATE b, FILE * file, yyscan_t yyscanner) { int oerrno = errno; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; VanuatuWkt_flush_buffer (b, yyscanner); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then VanuatuWkt_init_buffer was _probably_ * called from VanuatuWktrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER) { b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty (fileno (file)) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * @param yyscanner The scanner object. */ void VanuatuWkt_flush_buffer (YY_BUFFER_STATE b, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!b) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if (b == YY_CURRENT_BUFFER) VanuatuWkt_load_buffer_state (yyscanner); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * @param yyscanner The scanner object. */ void VanuatuWktpush_buffer_state (YY_BUFFER_STATE new_buffer, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (new_buffer == NULL) return; VanuatuWktensure_buffer_stack (yyscanner); /* This block is copied from VanuatuWkt_switch_to_buffer. */ if (YY_CURRENT_BUFFER) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) yyg->yy_buffer_stack_top++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from VanuatuWkt_switch_to_buffer. */ VanuatuWkt_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * @param yyscanner The scanner object. */ void VanuatuWktpop_buffer_state (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return; VanuatuWkt_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; if (yyg->yy_buffer_stack_top > 0) --yyg->yy_buffer_stack_top; if (YY_CURRENT_BUFFER) { VanuatuWkt_load_buffer_state (yyscanner); yyg->yy_did_buffer_switch_on_eof = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void VanuatuWktensure_buffer_stack (yyscan_t yyscanner) { int num_to_alloc; struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!yyg->yy_buffer_stack) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; yyg->yy_buffer_stack = (struct yy_buffer_state **) VanuatuWktalloc (num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in VanuatuWktensure_buffer_stack()"); memset (yyg->yy_buffer_stack, 0, num_to_alloc * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; yyg->yy_buffer_stack_top = 0; return; } if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1) { /* Increase the buffer to prepare for a possible push. */ int grow_size = 8 /* arbitrary grow size */ ; num_to_alloc = yyg->yy_buffer_stack_max + grow_size; yyg->yy_buffer_stack = (struct yy_buffer_state **) VanuatuWktrealloc (yyg->yy_buffer_stack, num_to_alloc * sizeof (struct yy_buffer_state *), yyscanner); if (!yyg->yy_buffer_stack) YY_FATAL_ERROR ("out of dynamic memory in VanuatuWktensure_buffer_stack()"); /* zero only the new slots. */ memset (yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof (struct yy_buffer_state *)); yyg->yy_buffer_stack_max = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE VanuatuWkt_scan_buffer (char *base, yy_size_t size, yyscan_t yyscanner) { YY_BUFFER_STATE b; if (size < 2 || base[size - 2] != YY_END_OF_BUFFER_CHAR || base[size - 1] != YY_END_OF_BUFFER_CHAR) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) VanuatuWktalloc (sizeof (struct yy_buffer_state), yyscanner); if (!b) YY_FATAL_ERROR ("out of dynamic memory in VanuatuWkt_scan_buffer()"); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; VanuatuWkt_switch_to_buffer (b, yyscanner); return b; } /** Setup the input buffer state to scan a string. The next call to VanuatuWktlex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * @param yyscanner The scanner object. * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * VanuatuWkt_scan_bytes() instead. */ YY_BUFFER_STATE VanuatuWkt_scan_string (yyconst char *yystr, yyscan_t yyscanner) { return VanuatuWkt_scan_bytes (yystr, strlen (yystr), yyscanner); } /** Setup the input buffer state to scan the given bytes. The next call to VanuatuWktlex() will * scan from a @e copy of @a bytes. * @param bytes the byte buffer to scan * @param len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE VanuatuWkt_scan_bytes (yyconst char *yybytes, int _yybytes_len, yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; buf = (char *) VanuatuWktalloc (n, yyscanner); if (!buf) YY_FATAL_ERROR ("out of dynamic memory in VanuatuWkt_scan_bytes()"); for (i = 0; i < _yybytes_len; ++i) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR; b = VanuatuWkt_scan_buffer (buf, n, yyscanner); if (!b) YY_FATAL_ERROR ("bad buffer in VanuatuWkt_scan_bytes()"); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yy_fatal_error (yyconst char *msg, yyscan_t yyscanner) { (void) fprintf (stderr, "%s\n", msg); exit (YY_EXIT_FAILURE); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = yyg->yy_hold_char; \ yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ yyg->yy_hold_char = *yyg->yy_c_buf_p; \ *yyg->yy_c_buf_p = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ YY_EXTRA_TYPE VanuatuWktget_extra (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyextra; } /** Get the current line number. * @param yyscanner The scanner object. */ int VanuatuWktget_lineno (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yylineno; } /** Get the current column number. * @param yyscanner The scanner object. */ int VanuatuWktget_column (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; if (!YY_CURRENT_BUFFER) return 0; return yycolumn; } /** Get the input stream. * @param yyscanner The scanner object. */ FILE * VanuatuWktget_in (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyin; } /** Get the output stream. * @param yyscanner The scanner object. */ FILE * VanuatuWktget_out (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyout; } /** Get the length of the current token. * @param yyscanner The scanner object. */ int VanuatuWktget_leng (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yyleng; } /** Get the current token. * @param yyscanner The scanner object. */ char * VanuatuWktget_text (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yytext; } /** Set the user-defined data. This data is never touched by the scanner. * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ void VanuatuWktset_extra (YY_EXTRA_TYPE user_defined, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyextra = user_defined; } /** Set the current line number. * @param line_number * @param yyscanner The scanner object. */ void VanuatuWktset_lineno (int line_number, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* lineno is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("VanuatuWktset_lineno called with no buffer", yyscanner); yylineno = line_number; } /** Set the current column. * @param line_number * @param yyscanner The scanner object. */ void VanuatuWktset_column (int column_no, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* column is only valid if an input buffer exists. */ if (!YY_CURRENT_BUFFER) yy_fatal_error ("VanuatuWktset_column called with no buffer", yyscanner); yycolumn = column_no; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * @param yyscanner The scanner object. * @see VanuatuWkt_switch_to_buffer */ void VanuatuWktset_in (FILE * in_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyin = in_str; } void VanuatuWktset_out (FILE * out_str, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yyout = out_str; } int VanuatuWktget_debug (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; return yy_flex_debug; } void VanuatuWktset_debug (int bdebug, yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; yy_flex_debug = bdebug; } /* Accessor methods for yylval and yylloc */ /* User-visible API */ /* VanuatuWktlex_init is special because it creates the scanner itself, so it is * the ONLY reentrant function that doesn't take the scanner as the last argument. * That's why we explicitly handle the declaration, instead of using our macros. */ int VanuatuWktlex_init (yyscan_t * ptr_yy_globals) { if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) VanuatuWktalloc (sizeof (struct yyguts_t), NULL); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); return yy_init_globals (*ptr_yy_globals); } /* VanuatuWktlex_init_extra has the same functionality as VanuatuWktlex_init, but follows the * convention of taking the scanner as the last argument. Note however, that * this is a *pointer* to a scanner, as it will be allocated by this call (and * is the reason, too, why this function also must handle its own declaration). * The user defined value in the first argument will be available to VanuatuWktalloc in * the yyextra field. */ int VanuatuWktlex_init_extra (YY_EXTRA_TYPE yy_user_defined, yyscan_t * ptr_yy_globals) { struct yyguts_t dummy_yyguts; VanuatuWktset_extra (yy_user_defined, &dummy_yyguts); if (ptr_yy_globals == NULL) { errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) VanuatuWktalloc (sizeof (struct yyguts_t), &dummy_yyguts); if (*ptr_yy_globals == NULL) { errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset (*ptr_yy_globals, 0x00, sizeof (struct yyguts_t)); VanuatuWktset_extra (yy_user_defined, *ptr_yy_globals); return yy_init_globals (*ptr_yy_globals); } static int yy_init_globals (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Initialization is the same as for the non-reentrant scanner. * This function is called from VanuatuWktlex_destroy(), so don't allocate here. */ yyg->yy_buffer_stack = 0; yyg->yy_buffer_stack_top = 0; yyg->yy_buffer_stack_max = 0; yyg->yy_c_buf_p = (char *) 0; yyg->yy_init = 0; yyg->yy_start = 0; yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; yyg->yy_start_stack = NULL; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = (FILE *) 0; yyout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * VanuatuWktlex_init() */ return 0; } /* VanuatuWktlex_destroy is for both reentrant and non-reentrant scanners. */ int VanuatuWktlex_destroy (yyscan_t yyscanner) { struct yyguts_t *yyg = (struct yyguts_t *) yyscanner; /* Pop the buffer stack, destroying each element. */ while (YY_CURRENT_BUFFER) { VanuatuWkt_delete_buffer (YY_CURRENT_BUFFER, yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; VanuatuWktpop_buffer_state (yyscanner); } /* Destroy the stack itself. */ VanuatuWktfree (yyg->yy_buffer_stack, yyscanner); yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ VanuatuWktfree (yyg->yy_start_stack, yyscanner); yyg->yy_start_stack = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * VanuatuWktlex() is called, initialization will occur. */ yy_init_globals (yyscanner); /* Destroy the main struct (reentrant only). */ VanuatuWktfree (yyscanner, yyscanner); yyscanner = NULL; return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char *s1, yyconst char *s2, int n, yyscan_t yyscanner) { register int i; for (i = 0; i < n; ++i) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char *s, yyscan_t yyscanner) { register int n; for (n = 0; s[n]; ++n) ; return n; } #endif void * VanuatuWktalloc (yy_size_t size, yyscan_t yyscanner) { return (void *) malloc (size); } void * VanuatuWktrealloc (void *ptr, yy_size_t size, yyscan_t yyscanner) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc ((char *) ptr, size); } void VanuatuWktfree (void *ptr, yyscan_t yyscanner) { free ((char *) ptr); /* see VanuatuWktrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" int VanuatuWktwrap (yyscan_t yyscanner) { return 1; } /****************************************************************************** ** This is the end of the code that was created by Team Vanuatu ** of The University of Toronto. Authors: Ruppi Rana ruppi.rana@gmail.com Dev Tanna dev.tanna@gmail.com Elias Adum elias.adum@gmail.com Benton Hui benton.hui@gmail.com Abhayan Sundararajan abhayan@gmail.com Chee-Lun Michael Stephen Cho cheelun.cho@gmail.com Nikola Banovic nikola.banovic@gmail.com Yong Jian yong.jian@utoronto.ca Supervisor: Greg Wilson gvwilson@cs.toronto.ca ------------------------------------------------------------------------------- */ �libspatialite-4.3.0a/src/headers/�������������������������������������������������������������������0000775�0001750�0001750�00000000000�12573314325�013717� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/Makefile.in��������������������������������������������������������0000664�0001750�0001750�00000042246�12573313636�015720� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/headers ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(nobase_include_HEADERS) \ $(noinst_HEADERS) $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' 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)$(includedir)" HEADERS = $(nobase_include_HEADERS) $(noinst_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_HEADERS = spatialite_private.h nobase_include_HEADERS = spatialite.h \ spatialite/gaiaexif.h \ spatialite/gaiaaux.h \ spatialite/gaiamatrix.h \ spatialite/gaiageo.h \ spatialite/gg_const.h \ spatialite/gg_structs.h \ spatialite/gg_core.h \ spatialite/gg_mbr.h \ spatialite/gg_formats.h \ spatialite/gg_dynamic.h \ spatialite/gg_advanced.h \ spatialite/gg_xml.h \ spatialite/gg_wfs.h \ spatialite/gg_dxf.h \ spatialite/spatialite.h \ spatialite/sqlite.h \ spatialite/debug.h \ spatialite/geopackage.h \ spatialite/control_points.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/headers/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/headers/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-nobase_includeHEADERS: $(nobase_include_HEADERS) @$(NORMAL_INSTALL) @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ $(am__nobase_list) | while read dir files; do \ xfiles=; for file in $$files; do \ if test -f "$$file"; then xfiles="$$xfiles $$file"; \ else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \ test -z "$$xfiles" || { \ test "x$$dir" = x. || { \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)/$$dir"; }; \ echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(includedir)/$$dir'"; \ $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(includedir)/$$dir" || exit $$?; }; \ done uninstall-nobase_includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \ $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-nobase_includeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-nobase_includeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool cscopelist-am ctags ctags-am distclean \ distclean-generic distclean-libtool distclean-tags distdir 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-nobase_includeHEADERS install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-nobase_includeHEADERS .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite.h�������������������������������������������������������0000664�0001750�0001750�00000147634�12544707704�016173� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* spatialite.h -- Gaia spatial support for SQLite version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file spatialite.h Main SpatiaLite header file */ #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifdef _WIN32 #ifdef DLL_EXPORT #define SPATIALITE_DECLARE __declspec(dllexport) #else #define SPATIALITE_DECLARE extern #endif #else #define SPATIALITE_DECLARE __attribute__ ((visibility("default"))) #endif #endif #ifndef _SPATIALITE_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _SPATIALITE_H #endif #define SPLITE_AXIS_1 0x51 #define SPLITE_AXIS_2 0x52 #define SPLITE_AXIS_NAME 0x3e #define SPLITE_AXIS_ORIENTATION 0x3f #ifdef __cplusplus extern "C" { #endif #include <spatialite/gaiageo.h> #ifdef LOADABLE_EXTENSION SPATIALITE_DECLARE int sqlite3_spatialite_init (sqlite3 * db, char **pzErrMsg, const sqlite3_api_routines * pApi); #endif /** Initializes the library \note you are always expected to explicitly call this function before attempting to call any SpatiaLite own function. */ SPATIALITE_DECLARE void spatialite_initialize (void); /** Finalizes the library \note you are always expected to explicitly call this function immediately before exiting the main application.\n This function will free any memory allocation and will release any system resource internally used by the library.\n */ SPATIALITE_DECLARE void spatialite_shutdown (void); /** Return the current library version. \return the version string. */ SPATIALITE_DECLARE const char *spatialite_version (void); /** Return the target CPU name. \return the target CPU string. */ SPATIALITE_DECLARE const char *spatialite_target_cpu (void); /** Initializes the internal memory block supporting each connection \sa spatialite_init_ex, spatialite_cleanup_ex */ SPATIALITE_DECLARE void *spatialite_alloc_connection (void); /** Initializes a SpatiaLite connection. This function is now \b DEPRECATED because is not reentrant (not thread safe); use spatialite_init_ex() for all new development. \param verbose if TRUE a short start-up message is shown on stderr \sa spatialite_cleanup, spatialite_init_ex \note You absolutely must invoke this function before attempting to perform any other SpatiaLite's call. */ SPATIALITE_DECLARE void spatialite_init (int verbose); /** Initializes a SpatiaLite connection. \param db_handle handle to the current SQLite connection \param ptr a memory pointer returned by spatialite_alloc_connection() \param verbose if TRUE a short start-up message is shown on stderr \sa spatialite_alloc_connection, spatialite_cleanup_ex, spatialite_init \note You absolutely must invoke this function before attempting to perform any other SpatiaLite's call. */ SPATIALITE_DECLARE void spatialite_init_ex (sqlite3 * db_handle, const void *ptr, int verbose); /** Initializes the GEOS library. \note You are never supposed to invoke this function (internally handled). */ SPATIALITE_DECLARE void spatialite_init_geos (void); /** Cleanup a SpatiaLite connection This function is now \b DEPRECATED; use spatialite_cleanup_ex() for all new development. This function performs general cleanup, essentially undoing the effect of spatialite_init(). \sa spatialite_init */ SPATIALITE_DECLARE void spatialite_cleanup (void); /** Cleanup a SpatiaLite connection This function performs general cleanup, essentially undoing the effect of spatialite_init_ex(). \param ptr the same memory pointer passed to the corresponding call to spatialite_init_ex() and returned by spatialite_alloc_connection() \sa spatialite_init_ex, spatialite_alloc_connection */ SPATIALITE_DECLARE void spatialite_cleanup_ex (const void *ptr); /** Dumps a full geometry-table into an external Shapefile \param sqlite handle to current DB connection \param table the name of the table to be exported \param column the name of the geometry column \param shp_path pathname of the Shapefile to be exported (no suffix) \param charset a valid GNU ICONV charset to be used for DBF text strings \param geom_type "POINT", "LINESTRING", "POLYGON", "MULTIPOLYGON" or NULL \param verbose if TRUE a short report is shown on stderr \param rows on completion will contain the total number of exported rows \param err_msg on completion will contain an error message (if any) \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int dump_shapefile (sqlite3 * sqlite, char *table, char *column, char *shp_path, char *charset, char *geom_type, int verbose, int *rows, char *err_msg); /** Loads an external Shapefile into a newly created table \param sqlite handle to current DB connection \param shp_path pathname of the Shapefile to be imported (no suffix) \param table the name of the table to be created \param charset a valid GNU ICONV charset to be used for DBF text strings \param srid the SRID to be set for Geometries \param column the name of the geometry column \param coerce2d if TRUE any Geometry will be casted to 2D [XY] \param compressed if TRUE compressed Geometries will be created \param verbose if TRUE a short report is shown on stderr \param spatial_index if TRUE an R*Tree Spatial Index will be created \param rows on completion will contain the total number of imported rows \param err_msg on completion will contain an error message (if any) \return 0 on failure, any other value on success \sa load_shapefile_ex, load_shapefile_ex2 \note this function simply calls load_shapefile_ex by passing implicit gype="AUTO" and pk_column=NULL arguments */ SPATIALITE_DECLARE int load_shapefile (sqlite3 * sqlite, char *shp_path, char *table, char *charset, int srid, char *column, int coerce2d, int compressed, int verbose, int spatial_index, int *rows, char *err_msg); /** Loads an external Shapefile into a newly created table \param sqlite handle to current DB connection \param shp_path pathname of the Shapefile to be imported (no suffix) \param table the name of the table to be created \param charset a valid GNU ICONV charset to be used for DBF text strings \param srid the SRID to be set for Geometries \param geo_column the name of the geometry column \param gtype expected to be one of: "LINESTRING", "LINESTRINGZ", "LINESTRINGM", "LINESTRINGZM", "MULTILINESTRING", "MULTILINESTRINGZ", "MULTILINESTRINGM", "MULTILINESTRINGZM", "POLYGON", "POLYGONZ", "POLYGONM", "POLYGONZM", "MULTIPOLYGON", "MULTIPOLYGONZ", "MULTIPOLYGONM", "MULTIPOLYGONZM" or "AUTO". \param pk_column name of the Primary Key column; if NULL or mismatching then "PK_UID" will be assumed by default. \param coerce2d if TRUE any Geometry will be casted to 2D [XY] \param compressed if TRUE compressed Geometries will be created \param verbose if TRUE a short report is shown on stderr \param spatial_index if TRUE an R*Tree Spatial Index will be created \param rows on completion will contain the total number of imported rows \param err_msg on completion will contain an error message (if any) \return 0 on failure, any other value on success \sa load_shapefile, load_shapefile_ex2 \note the Shapefile format doesn't supports any distinction between LINESTRINGs and MULTILINESTRINGs, or between POLYGONs and MULTIPOLYGONs; as does not allows to clearly distinguish if the M-measure is required. \n So a first preliminary scan of the Shapefile is required in order to correctly identify the actual payload (gtype = "AUTO", default case). \n By explicitly specifying some expected geometry type this first scan will be skipped at all thus introducing a noticeable performance gain. \n Anyway, declaring a mismatching geometry type will surely cause a failure. */ SPATIALITE_DECLARE int load_shapefile_ex (sqlite3 * sqlite, char *shp_path, char *table, char *charset, int srid, char *geo_column, char *gtype, char *pk_column, int coerce2d, int compressed, int verbose, int spatial_index, int *rows, char *err_msg); /** Loads an external Shapefile into a newly created table \param sqlite handle to current DB connection \param shp_path pathname of the Shapefile to be imported (no suffix) \param table the name of the table to be created \param charset a valid GNU ICONV charset to be used for DBF text strings \param srid the SRID to be set for Geometries \param geo_column the name of the geometry column \param gtype expected to be one of: "LINESTRING", "LINESTRINGZ", "LINESTRINGM", "LINESTRINGZM", "MULTILINESTRING", "MULTILINESTRINGZ", "MULTILINESTRINGM", "MULTILINESTRINGZM", "POLYGON", "POLYGONZ", "POLYGONM", "POLYGONZM", "MULTIPOLYGON", "MULTIPOLYGONZ", "MULTIPOLYGONM", "MULTIPOLYGONZM" or "AUTO". \param pk_column name of the Primary Key column; if NULL or mismatching then "PK_UID" will be assumed by default. \param coerce2d if TRUE any Geometry will be casted to 2D [XY] \param compressed if TRUE compressed Geometries will be created \param verbose if TRUE a short report is shown on stderr \param spatial_index if TRUE an R*Tree Spatial Index will be created \param text_dates is TRUE all DBF dates will be considered as TEXT \param rows on completion will contain the total number of imported rows \param err_msg on completion will contain an error message (if any) \return 0 on failure, any other value on success \sa load_shapefile, load_shapefile_ex \note the Shapefile format doesn't supports any distinction between LINESTRINGs and MULTILINESTRINGs, or between POLYGONs and MULTIPOLYGONs; as does not allows to clearly distinguish if the M-measure is required. \n So a first preliminary scan of the Shapefile is required in order to correctly identify the actual payload (gtype = "AUTO", default case). \n By explicitly specifying some expected geometry type this first scan will be skipped at all thus introducing a noticeable performance gain. \n Anyway, declaring a mismatching geometry type will surely cause a failure. */ SPATIALITE_DECLARE int load_shapefile_ex2 (sqlite3 * sqlite, char *shp_path, char *table, char *charset, int srid, char *geo_column, char *gtype, char *pk_column, int coerce2d, int compressed, int verbose, int spatial_index, int text_date, int *rows, char *err_msg); /** Loads an external DBF file into a newly created table \param sqlite handle to current DB connection \param dbf_path pathname of the DBF file to be imported \param table the name of the table to be created \param charset a valid GNU ICONV charset to be used for DBF text strings \param verbose if TRUE a short report is shown on stderr \param rows on completion will contain the total number of actually exported rows \param err_msg on completion will contain an error message (if any) \sa load_dbf_ex, load_dbf_ex2 \note this function simply calls load_dbf_ex by passing an implicit pk_column=NULL argument \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int load_dbf (sqlite3 * sqlite, char *dbf_path, char *table, char *charset, int verbose, int *rows, char *err_msg); /** Loads an external DBF file into a newly created table \param sqlite handle to current DB connection \param dbf_path pathname of the DBF file to be imported \param table the name of the table to be created \param pk_column name of the Primary Key column; if NULL or mismatching then "PK_UID" will be assumed by default. \param charset a valid GNU ICONV charset to be used for DBF text strings \param verbose if TRUE a short report is shown on stderr \param rows on completion will contain the total number of actually exported rows \param err_msg on completion will contain an error message (if any) \sa load_dbf, load_dbf_ex2 \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int load_dbf_ex (sqlite3 * sqlite, char *dbf_path, char *table, char *pk_column, char *charset, int verbose, int *rows, char *err_msg); /** Loads an external DBF file into a newly created table \param sqlite handle to current DB connection \param dbf_path pathname of the DBF file to be imported \param table the name of the table to be created \param pk_column name of the Primary Key column; if NULL or mismatching then "PK_UID" will be assumed by default. \param charset a valid GNU ICONV charset to be used for DBF text strings \param verbose if TRUE a short report is shown on stderr \param text_dates is TRUE all DBF dates will be considered as TEXT \param rows on completion will contain the total number of imported rows \param err_msg on completion will contain an error message (if any) \sa load_dbf, load_dbf_ex \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int load_dbf_ex2 (sqlite3 * sqlite, char *dbf_path, char *table, char *pk_column, char *charset, int verbose, int text_date, int *rows, char *err_msg); /** Dumps a full table into an external DBF file \param sqlite handle to current DB connection \param table the name of the table to be exported \param dbf_path pathname of the DBF to be exported \param charset a valid GNU ICONV charset to be used for DBF text strings \param err_msg on completion will contain an error message (if any) \sa dump_dbf_ex \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int dump_dbf (sqlite3 * sqlite, char *table, char *dbf_path, char *charset, char *err_msg); /** Dumps a full table into an external DBF file \param sqlite handle to current DB connection \param table the name of the table to be exported \param dbf_path pathname of the DBF to be exported \param charset a valid GNU ICONV charset to be used for DBF text strings \param rows on completion will contain the total number of exported rows \param err_msg on completion will contain an error message (if any) \sa dump_dbf \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int dump_dbf_ex (sqlite3 * sqlite, char *table, char *dbf_path, char *charset, int *rows, char *err_msg); /** Loads an external spreadsheet (.xls) file into a newly created table \param sqlite handle to current DB connection \param path pathname of the spreadsheet file to be imported \param table the name of the table to be created \param worksheetIndex the index identifying the worksheet to be imported \param first_titles if TRUE the first line is assumed to contain column names \param rows on completion will contain the total number of actually exported rows \param err_msg on completion will contain an error message (if any) \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int load_XL (sqlite3 * sqlite, const char *path, const char *table, unsigned int worksheetIndex, int first_titles, unsigned int *rows, char *err_msg); /** A portable replacement for C99 round() \param value a double value \return the nearest integeral value */ SPATIALITE_DECLARE double math_round (double value); /** A portable replacement for C99 llabs() \param value a 64 bit integer value \return the corresponding absolute value */ SPATIALITE_DECLARE sqlite3_int64 math_llabs (sqlite3_int64 value); /** Inserts the inlined EPSG dataset into the "spatial_ref_sys" table \param sqlite handle to current DB connection \param verbose if TRUE a short report is shown on stderr \return 0 on failure, any other value on success \sa spatial_ref_sys_init2 \note this function is internally invoked by the SQL function InitSpatialMetadata(), and is not usually intended for direct use. This functions is now deprecated, and will simply call spatial_ref_sys_init2(sqlite, GAIA_EPSG_ANY, verbose). */ SPATIALITE_DECLARE int spatial_ref_sys_init (sqlite3 * sqlite, int verbose); /** Inserts the inlined EPSG dataset into the "spatial_ref_sys" table \param sqlite handle to current DB connection \param mode can be one of GAIA_EPSG_ANY, GAIA_EPSG_NONE or GAIA_EPSG_WGS84_ONLY \param verbose if TRUE a short report is shown on stderr \return 0 on failure, any other value on success \note this function is internally invoked by the SQL function InitSpatialMetadata(), and is not usually intended for direct use. */ SPATIALITE_DECLARE int spatial_ref_sys_init2 (sqlite3 * sqlite, int mode, int verbose); /** Inserts some inlined EPSG definition into the "spatial_ref_sys" table \param sqlite handle to current DB connection \param srid the SRID value uniquely identifying the required EPSG definition \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int insert_epsg_srid (sqlite3 * sqlite, int srid); /** checks a SRID definition from the "spatial_ref_sys" table determining if it is of the geographic type \param sqlite handle to current DB connection \param srid the SRID value uniquely identifying the required EPSG definition \param geographic on successful completion will contain TRUE or FALSE \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int srid_is_geographic (sqlite3 * sqlite, int srid, int *geographic); /** checks a SRID definition from the "spatial_ref_sys" table determining if it is of the projected type \param sqlite handle to current DB connection \param srid the SRID value uniquely identifying the required EPSG definition \param projected on successful completion will contain TRUE or FALSE \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int srid_is_projected (sqlite3 * sqlite, int srid, int *projected); /** checks a SRID definition from the "spatial_ref_sys" table determining if the axes order is X-Y or Y-X \param sqlite handle to current DB connection \param srid the SRID value uniquely identifying the required EPSG definition \param flipped on successful completion will contain 0 (FALSE) if axes order is X-Y, any other value (TRUE) if axes order is Y-X. \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int srid_has_flipped_axes (sqlite3 * sqlite, int srid, int *flipped); /** checks a SRID definition from the "spatial_ref_sys" table then returning the corresponding Spheroid name \param sqlite handle to current DB connection \param srid the SRID value uniquely identifying the required EPSG definition \return the Spheroid name on succes, NULL on failure \note you are responsible for freeing the returned name. */ SPATIALITE_DECLARE char *srid_get_spheroid (sqlite3 * sqlite, int srid); /** checks a SRID definition from the "spatial_ref_sys" table then returning the corresponding Prime Meridian name \param sqlite handle to current DB connection \param srid the SRID value uniquely identifying the required EPSG definition \return the Prime Meridian name on succes, NULL on failure \note you are responsible for freeing the returned name. */ SPATIALITE_DECLARE char *srid_get_prime_meridian (sqlite3 * sqlite, int srid); /** checks a SRID definition from the "spatial_ref_sys" table then returning the corresponding Projection name \param sqlite handle to current DB connection \param srid the SRID value uniquely identifying the required EPSG definition \return the Projection name on succes, NULL on failure \note you are responsible for freeing the returned name. */ SPATIALITE_DECLARE char *srid_get_projection (sqlite3 * sqlite, int srid); /** checks a SRID definition from the "spatial_ref_sys" table then returning the corresponding Datum name \param sqlite handle to current DB connection \param srid the SRID value uniquely identifying the required EPSG definition \return the Datum name on succes, NULL on failure \note you are responsible for freeing the returned name. */ SPATIALITE_DECLARE char *srid_get_datum (sqlite3 * sqlite, int srid); /** checks a SRID definition from the "spatial_ref_sys" table then returning the corresponding Unit name \param sqlite handle to current DB connection \param srid the SRID value uniquely identifying the required EPSG definition \return the Unit name on succes, NULL on failure \note you are responsible for freeing the returned name. */ SPATIALITE_DECLARE char *srid_get_unit (sqlite3 * sqlite, int srid); /** checks a SRID definition from the "spatial_ref_sys" table then returning an Axis definition \param sqlite handle to current DB connection \param srid the SRID value uniquely identifying the required EPSG definition \param axis should be one of SPLITE_AXIS_1 or SPLITE_AXIS_2 \param mode should be one of SPLITE_AXIS_NAME or SPLITE_AXIS_ORIENTATION \return the reqested name on succes, NULL on failure \note you are responsible for freeing the returned name. */ SPATIALITE_DECLARE char *srid_get_axis (sqlite3 * sqlite, int srid, char axis, char mode); /** Checks if a column is actually defined into the given table \param sqlite handle to current DB connection \param table the table to be checked \param column the column to be checked \return 0 on success, any other value on success \note internally used to detect if some KML attribute defaults to a constant value */ SPATIALITE_DECLARE int is_kml_constant (sqlite3 * sqlite, char *table, char *column); /** Dumps a full geometry-table into an external KML file \param sqlite handle to current DB connection \param table the name of the table to be exported \param geom_col the name of the geometry column \param kml_path pathname of the KML file to be exported \param name_col column to be used for KML "name" (may be null) \param desc_col column to be used for KML "description" (may be null) \param precision number of decimal digits for coordinates \sa dump_kml_ex \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int dump_kml (sqlite3 * sqlite, char *table, char *geom_col, char *kml_path, char *name_col, char *desc_col, int precision); /** Dumps a full geometry-table into an external KML file \param sqlite handle to current DB connection \param table the name of the table to be exported \param geom_col the name of the geometry column \param kml_path pathname of the KML file to be exported \param name_col column to be used for KML "name" (may be null) \param desc_col column to be used for KML "description" (may be null) \param precision number of decimal digits for coordinates \param rows on completion will contain the total number of exported rows \sa dump_kml \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int dump_kml_ex (sqlite3 * sqlite, char *table, char *geom_col, char *kml_path, char *name_col, char *desc_col, int precision, int *rows); /** Checks for duplicated rows into the same table \param sqlite handle to current DB connection \param table name of the table to be checked \param dupl_count on completion will contain the number of duplicated rows found \sa remove_duplicated_rows \note two (or more) rows are assumed to be duplicated if any column value (excluding any Primary Key column) is exacly the same */ SPATIALITE_DECLARE void check_duplicated_rows (sqlite3 * sqlite, char *table, int *dupl_count); /** Remove duplicated rows from a table \param sqlite handle to current DB connection \param table name of the table to be cleaned \sa check_duplicated_rows, remove_duplicated_rows_ex \note when two (or more) duplicated rows exist, only the first occurence will be preserved, then deleting any further occurrence. */ SPATIALITE_DECLARE void remove_duplicated_rows (sqlite3 * sqlite, char *table); /** Remove duplicated rows from a table \param sqlite handle to current DB connection \param table name of the table to be cleaned \param removed on successful completion will contain the total count of removed duplicate rows \sa check_duplicated_rows, remove_duplicated_rows_ex2 \note when two (or more) duplicated rows exist, only the first occurence will be preserved, then deleting any further occurrence. */ SPATIALITE_DECLARE void remove_duplicated_rows_ex (sqlite3 * sqlite, char *table, int *removed); /** Remove duplicated rows from a table \param sqlite handle to current DB connection \param table name of the table to be cleaned \param removed on successful completion will contain the total count of removed duplicate rows \param transaction boolena; if set to TRUE will internally handle a SQL Transaction \sa check_duplicated_rows, remove_duplicated_rows \note when two (or more) duplicated rows exist, only the first occurence will be preserved, then deleting any further occurrence. */ SPATIALITE_DECLARE void remove_duplicated_rows_ex2 (sqlite3 * sqlite, char *table, int *removed, int transaction); /** Creates a derived table surely containing elementary Geometries \param sqlite handle to current DB connection \param inTable name of the input table \param geometry name of the Geometry column \param outTable name of the output table to be created \param pKey name of the Primary Key column in the output table \param multiId name of the column identifying origins in the output table \sa elementary_geometries_ex \note if the input table contains some kind of complex Geometry (MULTIPOINT, MULTILINESTRING, MULTIPOLYGON or GEOMETRYCOLLECTION), then many rows are inserted into the output table: each single row will contain the same attributes and an elementaty Geometry. All the rows created by expanding the same input row will expose the same value in the "multiId" column. */ SPATIALITE_DECLARE void elementary_geometries (sqlite3 * sqlite, char *inTable, char *geometry, char *outTable, char *pKey, char *multiId); /** Creates a derived table surely containing elementary Geometries \param sqlite handle to current DB connection \param inTable name of the input table \param geometry name of the Geometry column \param outTable name of the output table to be created \param pKey name of the Primary Key column in the output table \param multiId name of the column identifying origins in the output table \param rows on completion will contain the total number of inserted rows \sa elementary_geometries_ex2 \note if the input table contains some kind of complex Geometry (MULTIPOINT, MULTILINESTRING, MULTIPOLYGON or GEOMETRYCOLLECTION), then many rows are inserted into the output table: each single row will contain the same attributes and an elementaty Geometry. All the rows created by expanding the same input row will expose the same value in the "multiId" column. */ SPATIALITE_DECLARE void elementary_geometries_ex (sqlite3 * sqlite, char *inTable, char *geometry, char *outTable, char *pKey, char *multiId, int *rows); /** Creates a derived table surely containing elementary Geometries \param sqlite handle to current DB connection \param inTable name of the input table \param geometry name of the Geometry column \param outTable name of the output table to be created \param pKey name of the Primary Key column in the output table \param multiId name of the column identifying origins in the output table \param rows on completion will contain the total number of inserted rows \param transaction boolena; if set to TRUE will internally handle a SQL Transaction \sa elementary_geometries \note if the input table contains some kind of complex Geometry (MULTIPOINT, MULTILINESTRING, MULTIPOLYGON or GEOMETRYCOLLECTION), then many rows are inserted into the output table: each single row will contain the same attributes and an elementaty Geometry. All the rows created by expanding the same input row will expose the same value in the "multiId" column. */ SPATIALITE_DECLARE void elementary_geometries_ex2 (sqlite3 * sqlite, char *inTable, char *geometry, char *outTable, char *pKey, char *multiId, int *rows, int transaction); /** Dumps a full geometry-table into an external GeoJSON file \param sqlite handle to current DB connection \param table the name of the table to be exported \param geom_col the name of the geometry column \param outfile_path pathname for the GeoJSON file to be written to \param precision number of decimal digits for coordinates \param option the format to use for output \sa dump_geojson_rx \note valid values for option are: - 0 no option - 1 GeoJSON MBR - 2 GeoJSON Short CRS (e.g EPSG:4326) - 3 MBR + Short CRS - 4 GeoJSON Long CRS (e.g urn:ogc:def:crs:EPSG::4326) - 5 MBR + Long CRS \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int dump_geojson (sqlite3 * sqlite, char *table, char *geom_col, char *outfile_path, int precision, int option); /** Dumps a full geometry-table into an external GeoJSON file \param sqlite handle to current DB connection \param table the name of the table to be exported \param geom_col the name of the geometry column \param outfile_path pathname for the GeoJSON file to be written to \param precision number of decimal digits for coordinates \param option the format to use for output \param rows on completion will contain the total number of exported rows \sa dump_geojson \note valid values for option are: - 0 no option - 1 GeoJSON MBR - 2 GeoJSON Short CRS (e.g EPSG:4326) - 3 MBR + Short CRS - 4 GeoJSON Long CRS (e.g urn:ogc:def:crs:EPSG::4326) - 5 MBR + Long CRS \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int dump_geojson_ex (sqlite3 * sqlite, char *table, char *geom_col, char *outfile_path, int precision, int option, int *rows); /** Updates the LAYER_STATICS metadata table \param sqlite handle to current DB connection \param table name of the table to be processed \param column name of the geometry to be processed \note this function will explore the given table/geometry determining the number of rows and the full layer extent; a corresponding table/geometry entry is expected to be already declared in the GEOMETRY_COLUMNS table. These informations will be permanently stored into the LAYER_STATISTICS table; if such table does not yet exists will be implicitly created. - if table is NULL, any entry found within GEOMETRY_COLUMNS will be processed. - if table is not NULL and column is NULL, any geometry belonging to the given table will be processed. - if both table and column are not NULL, then only the given entry will be processed. \sa gaiaStatisticsInvalidate, gaiaGetLayerExtent, gaiaGetVectorLayersList \return 0 on failure, the total count of processed entries on success */ SPATIALITE_DECLARE int update_layer_statistics (sqlite3 * sqlite, const char *table, const char *column); /** Immediately and unconditionally invalidates the already existing Statistics \param handle SQLite handle to current DB connection. \param table VectorLayer Table (or View, or VirtualShape). \param geometry Geometry Column name. \return 0 on success, any other value on success \sa update_layer_statistics, gaiaGetLayerExtent, gaiaGetVectorLayersList \note if the table arg is NULL all Statistics for any VectorLayer defined within the DB will be invalidated; otherwise only a single Layer will be affectedd (if existing). \n By defining the geometry arg (not NULL) you can further restrict your selection. */ SPATIALITE_DECLARE int gaiaStatisticsInvalidate (sqlite3 * handle, const char *table, const char *geometry); /** Queries the Metadata tables returning the Layer Full Extent \param handle SQLite handle to current DB connection. \param table VectorLayer Table (or View, or VirtualShape). \param geometry Geometry Column name. \param mode if TRUE a PESSIMISTIC statistics update will be implied, otherwise OPTIMISTIC. \return the pointer to the newly created Geometry (Envelope): NULL on failure \sa update_layer_statistic, gaiaStatisticsInvalidate, gaiaGetVectorLayersList \note you are responsible to destroy (before or after) any allocated Geometry returned by gaiaGetLayerExtent(). \n The geometry arg is optional when the table simply has a single Geometry Column, and can be NULL in this case. \n When the mode arg is set to FALSE (default) then the returned infos will be simply retrieved from the staticized statistic tables (faster, but could be inaccurate). \n If the mode arg is set to TRUE a preliminary attempt to update the statistic tables will be always performed (probably slower, but surely accurate). \n If the named Layer doesn't exist, or if it's completely empty (not containing any valid Geometry) NULL will be returned. */ SPATIALITE_DECLARE gaiaGeomCollPtr gaiaGetLayerExtent (sqlite3 * handle, const char *table, const char *geometry, int mode); /** Queries the Metadata tables supporting Vector Layers \param handle SQLite handle to current DB connection. \param table VectorLayer Table (or View, or VirtualShape). \param geometry Geometry Column name. \param mode one of GAIA_VECTORS_LIST_OPTIMISTIC or GAIA_VECTORS_LIST_PESSIMISTIC. \return the pointer to the newly created VectorLayersList object: NULL on failure \sa gaiaFreeVectorLayersList, update_layer_statistics, gaiaStatisticsInvalidate, gaiaGetLayerExtent, gaiaGetVectorLayersList \note you are responsible to destroy (before or after) any allocated VectorLayersList returned by gaiaGetVectorLayersList(). \n If the table arg is NULL all VectorLayers defined within the DB will be reported; otherwise only a single Layer will be reported (if existing). \n By defining the geometry arg (not NULL) you can further restrict the returned report. \n When the mode arg is set to GAIA_VECTORS_LIST_OPTIMISTIC (default) then the returned infos will be simply retrieved from the staticized statistic tables (faster, but could be inaccurate). \n If the mode arg is set to GAIA_VECTORS_LIST_PESSIMISTIC a preliminary attempt to update the statistic tables will be always performed (probably slower, but surely accurate). */ SPATIALITE_DECLARE gaiaVectorLayersListPtr gaiaGetVectorLayersList (sqlite3 * handle, const char *table, const char *geometry, int mode); /** Creates (or re-creates) the "splite_metacatalog" and "splite_metacalog_statistics" tables. \param handle SQLite handle to current DB connection. \return 0 (FALSE) on failure, any other value (TRUE) on success \sa gaiaUpdateMetaCatalogStatistics, gaiaUpdateMetaCatalogStatisticsFromMaster */ SPATIALITE_DECLARE int gaiaCreateMetaCatalogTables (sqlite3 * handle); /** Updates the "splite_metacatalog_statistics" table. \param handle SQLite handle to current DB connection. \param table name of the table to be processed. \param column name of the column to be processed. \return 0 (FALSE) on failure, any other value (TRUE) on success \sa gaiaCreateMetaCatalogTables, gaiaUpdateMetaCatalogStatisticsFromMaster */ SPATIALITE_DECLARE int gaiaUpdateMetaCatalogStatistics (sqlite3 * handle, const char *table, const char *column); /** Updates the "splite_metacatalog_statistics" table (using a Master Table). \param handle SQLite handle to current DB connection. \param master_table name of the master-table controlling the whole process. \param table_name name of the column into the master-table containing table-names. \param column_name name of the column into the master-table containing column-names. \return 0 (FALSE) on failure, any other value (TRUE) on success \sa gaiaCreateMetaCatalogTables, gaiaUpdateMetaCatalogStatistics */ SPATIALITE_DECLARE int gaiaUpdateMetaCatalogStatisticsFromMaster (sqlite3 * handle, const char *master_table, const char *table_name, const char *column_name); /** Destroys a VectorLayersList object \param ptr pointer to the VectorLayersList object to be destroyed \sa gaiaGetVectorLayersList */ SPATIALITE_DECLARE void gaiaFreeVectorLayersList (gaiaVectorLayersListPtr ptr); /** Drops a layer-table, removing any related dependency \param sqlite handle to current DB connection \param table name of the table to be removed \note this function will drop a SpatialTable, SpatialView or VirtualShape being properly registered within the Metadata tables. \n an eventual Spatial Index will be dropped as well, and any row referring the selected table will be removed from the Metadata tables. \return 0 on failure, any other value on success \sa gaiaDropTableEx \note this one simply is a convenience method alway defaulting to gaiaDropTableEx(sqlite, "main", table); */ SPATIALITE_DECLARE int gaiaDropTable (sqlite3 * sqlite, const char *table); /** Drops a layer-table, removing any related dependency \param sqlite handle to current DB connection \param prefix schema prefix identifying the target DB\n "main" always identifies the main DB (primary, not Attached). \param table name of the table to be removed \note this function will drop a SpatialTable, SpatialView or VirtualShape being properly registered within the Metadata tables. \n an eventual Spatial Index will be dropped as well, and any row referring the selected table will be removed from the Metadata tables. \return 0 on failure, any other value on success \sa gaiaDropTableEx2 */ SPATIALITE_DECLARE int gaiaDropTableEx (sqlite3 * sqlite, const char *prefix, const char *table); /** Drops a layer-table, removing any related dependency \param sqlite handle to current DB connection \param prefix schema prefix identifying the target DB\n "main" always identifies the main DB (primary, not Attached). \param table name of the table to be removed \param transaction boolena; if set to TRUE will internally handle a SQL Transaction \note this function will drop a SpatialTable, SpatialView or VirtualShape being properly registered within the Metadata tables. \n an eventual Spatial Index will be dropped as well, and any row referring the selected table will be removed from the Metadata tables. \return 0 on failure, any other value on success \sa gaiaDropTable */ SPATIALITE_DECLARE int gaiaDropTableEx2 (sqlite3 * sqlite, const char *prefix, const char *table, int transaction); /** Checks a Geometry Column for validity \param sqlite handle to current DB connection \param table name of the table \param geometry name of the column to be checked \param report_path pathname of the report-file \param n_rows if this variable is not NULL on successful completion will contain the total number of rows found into the checkeck table \param n_invalids if this variable is not NULL on successful completion will contain the total number of invalid Geometries found into the checkeck table \param err_msg if this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned \sa check_geometry_column_r, check_all_geometry_columns, sanitize_geometry_column, sanitize_all_geometry_columns \note this function will check a Geometry Column (layer) for validity; a HTML report will be produced. \n an eventual error message returned via err_msg requires to be deallocated by invoking free()\n not reentrant and thread unsafe. \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int check_geometry_column (sqlite3 * sqlite, const char *table, const char *geom, const char *report_path, int *n_rows, int *n_invalids, char **err_msg); /** Checks a Geometry Column for validity \param p_cache a memory pointer returned by spatialite_alloc_connection() \param sqlite handle to current DB connection \param table name of the table \param geometry name of the column to be checked \param report_path pathname of the report-file \param n_rows if this variable is not NULL on successful completion will contain the total number of rows found into the checkeck table \param n_invalids if this variable is not NULL on successful completion will contain the total number of invalid Geometries found into the checkeck table \param err_msg if this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned \sa check_geometry_column, check_all_geometry_columns, sanitize_geometry_column, sanitize_all_geometry_columns \note this function will check a Geometry Column (layer) for validity; a HTML report will be produced. \n an eventual error message returned via err_msg requires to be deallocated by invoking free()\n reentrant and thread-safe. \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int check_geometry_column_r (const void *p_cache, sqlite3 * sqlite, const char *table, const char *geom, const char *report_path, int *n_rows, int *n_invalids, char **err_msg); /** Checks all Geometry Columns for validity \param sqlite handle to current DB connection \param output_dir pathname of the directory to be created for report-files \param n_invalids if this variable is not NULL on successful completion will contain the total number of invalid Geometries found \param err_msg if this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned \sa check_all_geometry_columns_r, check_geometry_column, sanitize_geometry_column, sanitize_all_geometry_columns \note this function will check all Geometry Columns (vector layers) for validity; a HTML report will be produced. \n an eventual error message returned via err_msg requires to be deallocated by invoking free()\n not reentrant and thread unsafe. \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int check_all_geometry_columns (sqlite3 * sqlite, const char *output_dir, int *n_invalids, char **err_msg); /** Checks all Geometry Columns for validity \param p_cache a memory pointer returned by spatialite_alloc_connection() \param sqlite handle to current DB connection \param output_dir pathname of the directory to be created for report-files \param n_invalids if this variable is not NULL on successful completion will contain the total number of invalid Geometries found \param err_msg if this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned \sa check_all_geometry_columns, check_geometry_column, sanitize_geometry_column, sanitize_all_geometry_columns \note this function will check all Geometry Columns (vector layers) for validity; a HTML report will be produced. \n an eventual error message returned via err_msg requires to be deallocated by invoking free()\n reentrant and thread-safe. \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int check_all_geometry_columns_r (const void *p_cache, sqlite3 * sqlite, const char *output_dir, int *n_invalids, char **err_msg); /** Sanitizes a Geometry Column making all invalid geometries to be valid \param sqlite handle to current DB connection \param table name of the table \param geometry name of the column to be checked \param tmp_table name of the temporary table \param report_path pathname of the report-file \param n_invalids if this variable is not NULL on successful completion will contain the total number of invalid Geometries found into the sanitize table \param n_repaired if this variable is not NULL on successful completion will contain the total number of repaired Geometries \param n_discarded if this variable is not NULL on successful completion will contain the total number of repaired Geometries (by discarding fragments) \param n_failures if this variable is not NULL on successful completion will contain the total number of repair failures (i.e. Geometries beyond possible repair) \param err_msg if this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned \sa sanitize_geometry_column_r, check_geometry_column, check_all_geometry_columns, sanitize_all_geometry_columns \note this function will attempt to make valid all invalid geometries found within a Geometry Column (layer); a temporary table is required. \n if the process has full success the temprary table will be deleted; otherwise it will be preserved for further inspection. a HTML report will be produced as well. \n an eventual error message returned via err_msg requires to be deallocated by invoking free()\n not reentrant and thread unsafe. \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int sanitize_geometry_column (sqlite3 * sqlite, const char *table, const char *geom, const char *tmp_table, const char *report_path, int *n_invalids, int *n_repaired, int *n_discarded, int *n_failures, char **err_msg); /** Sanitizes a Geometry Column making all invalid geometries to be valid \param p_cache a memory pointer returned by spatialite_alloc_connection() \param sqlite handle to current DB connection \param table name of the table \param geometry name of the column to be checked \param tmp_table name of the temporary table \param report_path pathname of the report-file \param n_invalids if this variable is not NULL on successful completion will contain the total number of invalid Geometries found into the sanitize table \param n_repaired if this variable is not NULL on successful completion will contain the total number of repaired Geometries \param n_discarded if this variable is not NULL on successful completion will contain the total number of repaired Geometries (by discarding fragments) \param n_failures if this variable is not NULL on successful completion will contain the total number of repair failures (i.e. Geometries beyond possible repair) \param err_msg if this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned \sa sanitize_geometry_column, check_geometry_column, check_all_geometry_columns, sanitize_all_geometry_columns \note this function will attempt to make valid all invalid geometries found within a Geometry Column (layer); a temporary table is required. \n if the process has full success the temprary table will be deleted; otherwise it will be preserved for further inspection. a HTML report will be produced as well. \n an eventual error message returned via err_msg requires to be deallocated by invoking free()\n reentrant and thread-safe. \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int sanitize_geometry_column_r (const void *p_cache, sqlite3 * sqlite, const char *table, const char *geom, const char *tmp_table, const char *report_path, int *n_invalids, int *n_repaired, int *n_discarded, int *n_failures, char **err_msg); /** Sanitizes all Geometry Columns making all invalid geometries to be valid \param sqlite handle to current DB connection \param tmp_prefix name-prefix for temporary tables \param output_dir pathname of the directory to be created for report-files \param not_repaired if this variable is not NULL on successful completion will contain the total count of repair failures (i.e. Geometries beyond possible repair) \param err_msg if this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned \sa sanitize_all_geometry_columns_r, check_geometry_column, check_all_geometry_columns, sanitize_geometry_column \note this function will attempt to make valid all invalid geometries found within all Geometry Columns (vector layers); a temporary table is required so to support each input table. \n if the process has full success the temprary table will be deleted; otherwise it will be preserved for further inspection. a HTML report will be produced as well. \n an eventual error message returned via err_msg requires to be deallocated by invoking free()\n not reentrant and thread unsafe. \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int sanitize_all_geometry_columns (sqlite3 * sqlite, const char *tmp_prefix, const char *output_dir, int *not_repaired, char **err_msg); /** Sanitizes all Geometry Columns making all invalid geometries to be valid \param p_cache a memory pointer returned by spatialite_alloc_connection() \param sqlite handle to current DB connection \param tmp_prefix name-prefix for temporary tables \param output_dir pathname of the directory to be created for report-files \param not_repaired if this variable is not NULL on successful completion will contain the total count of repair failures (i.e. Geometries beyond possible repair) \param err_msg if this variable is not NULL and the return status is ZERO (failure), an appropriate error message will be returned \sa sanitize_all_geometry_columns, check_geometry_column, check_all_geometry_columns, sanitize_geometry_column \note this function will attempt to make valid all invalid geometries found within all Geometry Columns (vector layers); a temporary table is required so to support each input table. \n if the process has full success the temprary table will be deleted; otherwise it will be preserved for further inspection. a HTML report will be produced as well. \n an eventual error message returned via err_msg requires to be deallocated by invoking free()\n reentrant and thread-safe. \return 0 on failure, any other value on success */ SPATIALITE_DECLARE int sanitize_all_geometry_columns_r (const void *p_cache, sqlite3 * sqlite, const char *tmp_prefix, const char *output_dir, int *not_repaired, char **err_msg); SPATIALITE_DECLARE int gaiaGPKG2Spatialite (sqlite3 * handle_in, const char *gpkg_in_path, sqlite3 * handle_out, const char *splite_out_path); SPATIALITE_DECLARE int gaiaSpatialite2GPKG (sqlite3 * handle_in, const char *splite_in_path, sqlite3 * handle_out, const char *gpkg_out_path); #ifdef __cplusplus } #endif #endif /* _SPATIALITE_H */ ����������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/��������������������������������������������������������0000775�0001750�0001750�00000000000�12573314325�016056� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/gaiaexif.h����������������������������������������������0000664�0001750�0001750�00000046155�12544707704�017744� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gaiaexif.h -- Gaia common EXIF Metadata reading functions version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gaiaexif.h EXIF/image: supporting functions and constants */ #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifdef DLL_EXPORT #define GAIAEXIF_DECLARE __declspec(dllexport) #else #define GAIAEXIF_DECLARE extern #endif #endif #ifndef _GAIAEXIF_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GAIAEXIF_H #endif #ifdef __cplusplus extern "C" { #endif /* constants used for BLOB value types */ /** generic hexadecimal BLOB */ #define GAIA_HEX_BLOB 0 /** this BLOB does actually contain a GIF image */ #define GAIA_GIF_BLOB 1 /** this BLOB does actually containt a PNG image */ #define GAIA_PNG_BLOB 2 /** this BLOB does actually contain a generic JPEG image */ #define GAIA_JPEG_BLOB 3 /** this BLOB does actually contain a JPEG-EXIF image */ #define GAIA_EXIF_BLOB 4 /** this BLOB does actually contain a JPEG-EXIF image including GPS data */ #define GAIA_EXIF_GPS_BLOB 5 /** this BLOB does actually contain a ZIP compressed file */ #define GAIA_ZIP_BLOB 6 /** this BLOB does actually contain a PDF document */ #define GAIA_PDF_BLOB 7 /** this BLOB does actually contain a SpatiaLite Geometry */ #define GAIA_GEOMETRY_BLOB 8 /** this BLOB does actually contain a TIFF image */ #define GAIA_TIFF_BLOB 9 /** this BLOB does actually contain a WebP image */ #define GAIA_WEBP_BLOB 10 /** this BLOB does actually contain a JP2 (Jpeg2000) image */ #define GAIA_JP2_BLOB 11 /** this BLOB does actually contain a SpatiaLite XmlBLOB */ #define GAIA_XML_BLOB 12 /** this BLOB does actually contain a GPKG Geometry */ #define GAIA_GPB_BLOB 13 /* constants used for EXIF value types */ /** unrecognized EXIF value */ #define GAIA_EXIF_NONE 0 /** EXIF value of the BYTE type */ #define GAIA_EXIF_BYTE 1 /** EXIF value of the SHORT type */ #define GAIA_EXIF_SHORT 2 /** EXIF value of the STRING type */ #define GAIA_EXIF_STRING 3 /** EXIF value of the LONG type */ #define GAIA_EXIF_LONG 4 /** EXIF value of the RATIONAL type */ #define GAIA_EXIF_RATIONAL 5 /** EXIF value of the SLONG type */ #define GAIA_EXIF_SLONG 9 /** EXIF value of the SRATIONAL type */ #define GAIA_EXIF_SRATIONAL 10 /** Container for an EXIF tag */ typedef struct gaiaExifTagStruct { /* an EXIF TAG */ /** GPS data included (0/1) */ char Gps; /** EXIF tag ID */ unsigned short TagId; /** EXIF value type */ unsigned short Type; /** number of values */ unsigned short Count; /** tag offset [big- little-endian encoded] */ unsigned char TagOffset[4]; /** array of BYTE values */ unsigned char *ByteValue; /** array of STRING values */ char *StringValue; /** array of SHORT values */ unsigned short *ShortValues; /** array of LONG values ] */ unsigned int *LongValues; /** array of RATIONAL values [numerators] */ unsigned int *LongRationals1; /** array of RATIONAL values [denominators] */ unsigned int *LongRationals2; /** array of Signed SHORT values */ short *SignedShortValues; /** array of Signed LONG values */ int *SignedLongValues; /** array of Signed RATIONAL values [numerators] */ int *SignedLongRationals1; /** array of Signed RATIONAL values [denominators] */ int *SignedLongRationals2; /** array of FLOAT values */ float *FloatValues; /** array of DOUBLE values */ double *DoubleValues; /** pointer to next item into the linked list */ struct gaiaExifTagStruct *Next; } gaiaExifTag; /** Typedef for EXIF tag structure. \sa gaiaExifTagStruct */ typedef gaiaExifTag *gaiaExifTagPtr; /** Container for a list of EXIF tags */ typedef struct gaiaExifTagListStruct { /* an EXIF TAG LIST */ /** pointer to first item into the linked list */ gaiaExifTagPtr First; /** pointer to the last item into the linked list */ gaiaExifTagPtr Last; /** number of items */ int NumTags; /** an array of pointers to items */ gaiaExifTagPtr *TagsArray; } gaiaExifTagList; /** Typedef for EXIF tag structure \sa gaiaExifTagListStruct */ typedef gaiaExifTagList *gaiaExifTagListPtr; /* function prototipes */ /** Creates a list of EXIF tags by parsing a BLOB of the JPEG-EXIF type \param blob the BLOB to be parsed \param size the BLOB size (in bytes) \return a list of EXIF tags: or NULL if any error is encountered \sa gaiaExifTagsFree \note you must explicitly destroy the list when it's any longer used. */ GAIAEXIF_DECLARE gaiaExifTagListPtr gaiaGetExifTags (const unsigned char *blob, int size); /** Destroy a list of EXIF tags \param tag_list the list to be destroied \sa gaiaGetExifTags \note the pointer passed to this function must be one returned by a previous call to gaiaGetExifTags */ GAIAEXIF_DECLARE void gaiaExifTagsFree (gaiaExifTagListPtr tag_list); /** Return the total number of EXIF tags into the list \param tag_list pointer to an EXIF tag list. \return the EXIF tag count. \sa gaiaGetExifTags, gaiaExifTagsFree */ GAIAEXIF_DECLARE int gaiaGetExifTagsCount (gaiaExifTagListPtr tag_list); /** Retrieves an EXIF tag by its relative position into the list \param tag_list pointer to an EXIF tag list. \param pos relative item position [first item is 0] \return a pointer to the corresponding EXIF tag: NULL if not found \sa gaiaGetExifTags, gaiaExifTagsFree, gaiaExifTagsCount */ GAIAEXIF_DECLARE gaiaExifTagPtr gaiaGetExifTagByPos (gaiaExifTagListPtr tag_list, const int pos); /** Return the total number of EXIF tags into the list \param tag_list pointer to an EXIF tag list. \return the EXIF tag count. \sa gaiaGetExifTags, gaiaExifTagsFree */ GAIAEXIF_DECLARE int gaiaGetExifTagsCount (gaiaExifTagListPtr tag_list); /** Retrieves an EXIF tag by its Tag ID \param tag_list pointer to an EXIF tag list. \param tag_id the Tag ID to be found \return a pointer to the corresponding EXIF tag: NULL if not found \sa gaiaGetExifTags, gaiaExifTagsFree */ GAIAEXIF_DECLARE gaiaExifTagPtr gaiaGetExifTagById (const gaiaExifTagListPtr tag_list, const unsigned short tag_id); /** Retrieves an EXIF-GPS tag by its Tag ID \param tag_list pointer to an EXIF tag list. \param tag_id the GPS Tag ID to be found \return a pointer to the corresponding EXIF tag: NULL if not found \sa gaiaGetExifTags, gaiaExifTagsFree */ GAIAEXIF_DECLARE gaiaExifTagPtr gaiaGetExifGpsTagById (const gaiaExifTagListPtr tag_list, const unsigned short tag_id); /** Retrieves an EXIF tag by its name \param tag_list pointer to an EXIF tag list. \param tag_name the Tag Name to be found \return a pointer to the corresponding EXIF tag: NULL if not found \sa gaiaGetExifTags, gaiaExifTagsFree */ GAIAEXIF_DECLARE gaiaExifTagPtr gaiaGetExifTagByName (const gaiaExifTagListPtr tag_list, const char *tag_name); /** Return the Tag ID from an EXIF tag \param tag pointer to an EXIF tag \return the Tag ID \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName */ GAIAEXIF_DECLARE unsigned short gaiaExifTagGetId (const gaiaExifTagPtr tag); /** Return the Tag Name from an EXIF tag \param tag pointer to an EXIF tag \param tag_name receiving buffer: the Tag Name will be copied here \param len length of the receiving buffer \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName */ GAIAEXIF_DECLARE void gaiaExifTagGetName (const gaiaExifTagPtr tag, char *tag_name, int len); /** Checks if an EXIF tag actually is an EXIF-GPS tag \param tag pointer to an EXIF tag \return 0 if false: any other value if true \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName */ GAIAEXIF_DECLARE int gaiaIsExifGpsTag (const gaiaExifTagPtr tag); /** Return the value type for an EXIF tag \param tag pointer to an EXIF tag \return the value type: one of GAIA_EXIF_NONE, GAIA_EXIF_BYTE, GAIA_EXIF_SHORT, GAIA_EXIF_STRING, GAIA_EXIF_LONG, GAIA_EXIF_RATIONAL, GAIA_EXIF_SLONG, GAIA_EXIF_SRATIONAL \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName */ GAIAEXIF_DECLARE unsigned short gaiaExifTagGetValueType (const gaiaExifTagPtr tag); /** Return the total count of values from an EXIF tag \param tag pointer to an EXIF tag \return the number of available values \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName */ GAIAEXIF_DECLARE unsigned short gaiaExifTagGetNumValues (const gaiaExifTagPtr tag); /** Return a BYTE value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the BYTE value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE unsigned char gaiaExifTagGetByteValue (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a STRING value from an EXIF tag \param tag pointer to an EXIF tag. \param str receiving buffer: the STRING value will be copied here. \param len length of the receiving buffer \param ok on completion will contain 0 on failure: any other value on success. \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE void gaiaExifTagGetStringValue (const gaiaExifTagPtr tag, char *str, int len, int *ok); /** Return a SHORT value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the SHORT value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE unsigned short gaiaExifTagGetShortValue (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a LONG value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the LONG value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE unsigned int gaiaExifTagGetLongValue (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a RATIONAL [numerator] value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the RATIONAL [numerator] value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE unsigned int gaiaExifTagGetRational1Value (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a RATIONAL [denominator] value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the RATIONAL [denominator] value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE unsigned int gaiaExifTagGetRational2Value (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a RATIONAL value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the RATIONAL value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE double gaiaExifTagGetRationalValue (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a Signed SHORT value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the Signed SHORT value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE short gaiaExifTagGetSignedShortValue (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a Signed LONG value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the Signed LONG value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE int gaiaExifTagGetSignedLongValue (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a SRATIONAL [numerator] value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the SRATIONAL [numerator] value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE int gaiaExifTagGetSignedRational1Value (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a SRATIONAL [denominator] value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the SRATIONAL [denominator] value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE int gaiaExifTagGetSignedRational2Value (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a Signed RATIONAL value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the Signed RATIONAL value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE double gaiaExifTagGetSignedRationalValue (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a FLOAT value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the FLOAT value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE float gaiaExifTagGetFloatValue (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a DOUBLE value from an EXIF tag \param tag pointer to an EXIF tag. \param ind value index [first value has index 0]. \param ok on completion will contain 0 on failure: any other value on success. \return the DOUBLE value \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaExifTagGetValueType, gaiaExifTagGetNumValues */ GAIAEXIF_DECLARE double gaiaExifTagGetDoubleValue (const gaiaExifTagPtr tag, const int ind, int *ok); /** Return a human readable description from an EXIF tag \param tag pointer to an EXIF tag. \param str receiving buffer: the STRING value will be copied here. \param len length of the receiving buffer \param ok on completion will contain 0 on failure: any other value on success. \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName */ GAIAEXIF_DECLARE void gaiaExifTagGetHumanReadable (const gaiaExifTagPtr tag, char *str, int len, int *ok); /** Attempts to guess the actual content-type of some BLOB \param blob the BLOB to be parsed \param size length of the BLOB (in bytes) \return the BLOB type: one of GAIA_HEX_BLOB, GAIA_GIF_BLOB, GAIA_PNG_BLOB, GAIA_JPEG_BLOB, GAIA_EXIF_BLOB, GAIA_EXIF_GPS_BLOB, GAIA_ZIP_BLOB, GAIA_PDF_BLOB, GAIA_GEOMETRY_BLOB, GAIA_TIFF_BLOB, GAIA_WEBP_BLOB, GAIA_JP2_BLOB, GAIA_XML_BLOB, GAIA_GPB_BLOB */ GAIAEXIF_DECLARE int gaiaGuessBlobType (const unsigned char *blob, int size); /** Return longitude and latitude from an EXIF-GPS tag \param blob the BLOB to be parsed \param size length of the BLOB (in bytes) \param longitude on success will contain the longitude coordinate \param latitude on success will contain the latitude coordinate \return 0 on failure: any other value on success \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaIsExifGpsTag */ GAIAEXIF_DECLARE int gaiaGetGpsCoords (const unsigned char *blob, int size, double *longitude, double *latitude); /** Return a text string representing DMS coordinates from an EXIF-GPS tag \param blob the BLOB to be parsed \param size length of the BLOB (in bytes) \param latlong receiving buffer: the text string will be copied here. \param ll_size length of the receiving buffer \return 0 on failure: any other value on success \sa gaiaGetExifTagById, gaiaGetExifGpsTagById, gaiaGetExifTagByName, gaiaIsExifGpsTag */ GAIAEXIF_DECLARE int gaiaGetGpsLatLong (const unsigned char *blob, int size, char *latlong, int ll_size); #ifdef __cplusplus } #endif #endif /* _GAIAEXIF_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/gg_xml.h������������������������������������������������0000664�0001750�0001750�00000064751�12544707704�017446� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_xml.h -- Gaia common support for XML documents version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gg_xml.h Geometry handling functions: XML document */ #ifndef _GG_XML_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_XML_H #endif #ifdef __cplusplus extern "C" { #endif /* constant values for XmlBLOB */ /** XmlBLOB internal marker: START */ #define GAIA_XML_START 0x00 /** XmlBLOB internal marker: END */ #define GAIA_XML_END 0xDD /** XmlBLOB internal marker: HEADER */ #define GAIA_XML_HEADER 0xAC /** XmlBLOB internal marker: LEGACY HEADER */ #define GAIA_XML_LEGACY_HEADER 0xAB /** XmlBLOB internal marker: SCHEMA */ #define GAIA_XML_SCHEMA 0xBA /** XmlBLOB internal marker: FILEID */ #define GAIA_XML_FILEID 0xCA /** XmlBLOB internal marker: PARENTID */ #define GAIA_XML_PARENTID 0xDA /** XmlBLOB internal marker: TITLE */ #define GAIA_XML_NAME 0xDE /** XmlBLOB internal marker: TITLE */ #define GAIA_XML_TITLE 0xDB /** XmlBLOB internal marker: ABSTRACT */ #define GAIA_XML_ABSTRACT 0xDC /** XmlBLOB internal marker: GEOMETRY */ #define GAIA_XML_GEOMETRY 0xDD /** XmlBLOB internal marker: CRC32 */ #define GAIA_XML_CRC32 0xBC /** XmlBLOB internal marker: PAYLOAD */ #define GAIA_XML_PAYLOAD 0xCB /* bitmasks for XmlBLOB-FLAG */ /** XmlBLOB FLAG - LITTLE_ENDIAN bitmask */ #define GAIA_XML_LITTLE_ENDIAN 0x01 /** XmlBLOB FLAG - COMPRESSED bitmask */ #define GAIA_XML_COMPRESSED 0x02 /** XmlBLOB FLAG - VALIDATED bitmask */ #define GAIA_XML_VALIDATED 0x04 /** XmlBLOB FLAG - ISO METADATA bitmask */ #define GAIA_XML_ISO_METADATA 0x80 /** XmlBLOB FLAG - SLDSE VECTOR STYLE bitmask */ #define GAIA_XML_SLD_SE_RASTER_STYLE 0x10 /** XmlBLOB FLAG - SLDSE VECTOR STYLE bitmask */ #define GAIA_XML_SLD_SE_VECTOR_STYLE 0x40 /** XmlBLOB FLAG - SLD STYLE bitmask */ #define GAIA_XML_SLD_STYLE 0x48 /** XmlBLOB FLAG - SVG bitmask */ #define GAIA_XML_SVG 0x20 /* function prototypes */ #ifndef DOXYGEN_SHOULD_IGNORE_THIS #ifdef ENABLE_LIBXML2 /* LIBXML2 enabled: supporting XML documents */ #endif /** return the LIBXML2 version string \return a text string identifying the current LIBXML2 version \note the version string corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE char *gaia_libxml2_version (void); /** Creates an XmlBLOB buffer \param p_cache a memory pointer returned by spatialite_alloc_connection() \param xml pointer to the XML document (XmlBLOB payload). \param xml_len lenght of the XML document (in bytes). \param compressed if TRUE the returned XmlBLOB will be zip-compressed. \param schemaURI if not NULL the XML document will be assumed to be valid only if it successfully passes a formal Schema valitadion. \param result on completion will containt a pointer to XmlBLOB: NULL on failure. \param size on completion this variable will contain the XmlBLOB's size (in bytes) \param parsing_errors on completion this variable will contain all error/warning messages emitted during the XML Parsing step. Can be set to NULL so to ignore any message. \param schema_validation_errors on completion this variable will contain all error/warning messages emitted during the XML Schema Validation step. Can be set to NULL so to ignore any message. \sa gaiaXmlFromBlob, gaiaXmlTextFromBlob, gaiaXmlBlobGetLastParseError, gaiaXmlBlobGetLastValidateError \note the XmlBLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaXmlToBlob (const void *p_cache, const unsigned char *xml, int xml_len, int compressed, const char *schemaURI, unsigned char **result, int *size, char **parsing_errors, char **schema_validation_errors); /** Extract an XMLDocument from within an XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \param indent if a negative value is passed the XMLDocument will be extracted exactly as it was when loaded. Otherwise it will be properly formatted using the required intenting (max. 8); ZERO means that the whole XML Document will consist of a single line. \return the pointer to the newly created XMLDocument buffer: NULL on failure \sa gaiaXmlToBlob, gaiaXmlFromBlob \note the returned XMLDocument will always be encoded as UTF-8 (irrespectively from the internal encoding declaration), so to allow any further processing as SQLite TEXT. \note the XMLDocument buffer corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlTextFromBlob (const unsigned char *blob, int size, int indent); /** Extract an XMLDocument from within an XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \param indent if a negative value is passed the XMLDocument will be extracted exactly as it was when loaded. Otherwise it will be properly formatted using the required intenting (max. 8); ZERO means that the whole XML Document will consist of a single line. \param result pointer to the memory buffer containing the XML Document \param res_size dimension (in bytes) of the XML Document memory buffer (both values will be passed back after successful completion). \sa gaiaXmlToBlob, gaiaXmlTextFromBlob \note the returned XMLDocument will always respect the internal encoding declaration, and may not support any further processing as SQLite TEXT if it's not UTF-8. \note the XMLDocument buffer corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE void gaiaXmlFromBlob (const unsigned char *blob, int size, int indent, unsigned char **result, int *res_size); /** Checks if a BLOB actually is a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return TRUE or FALSE \sa gaiaIsCompressedXmlBlob, gaiaIsSchemaValidatedXmlBlob, gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob, gaiaIsSvgXmlBlob */ GAIAGEO_DECLARE int gaiaIsValidXmlBlob (const unsigned char *blob, int size); /** Checks if a valid XmlBLOB buffer is compressed or not \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB; -1 in any other case. \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob, gaiaIsSvgXmlBlob */ GAIAGEO_DECLARE int gaiaIsCompressedXmlBlob (const unsigned char *blob, int size); /** Checks if a valid XmlBLOB buffer does contain an ISO Metadata or not \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB; -1 in any other case. \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, gaiaIsCompressedXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob, gaiaIsSvgXmlBlob */ GAIAGEO_DECLARE int gaiaIsIsoMetadataXmlBlob (const unsigned char *blob, int size); /** Checks if a valid XmlBLOB buffer does contain an SLD/SE Style or not \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB of the Vector type; -1 in any other case. \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSvgXmlBlob */ GAIAGEO_DECLARE int gaiaIsSldSeVectorStyleXmlBlob (const unsigned char *blob, int size); /** Checks if a valid XmlBLOB buffer does contain an SLD/SE Style or not \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB of the Raster type; -1 in any other case. \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldStyleXmlBlob, gaiaIsSvgXmlBlob */ GAIAGEO_DECLARE int gaiaIsSldSeRasterStyleXmlBlob (const unsigned char *blob, int size); /** Checks if a valid XmlBLOB buffer does contain an SLD Style or not \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB of the SLD type; -1 in any other case. \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterXmlBlob, gaiaIsSvgXmlBlob */ GAIAGEO_DECLARE int gaiaIsSldStyleXmlBlob (const unsigned char *blob, int size); /** Checks if a valid XmlBLOB buffer does contain an SVG Symbol or not \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB; -1 in any other case. \sa gaiaIsValidXmlBlob, gaiaIsSchemaValidatedXmlBlob, gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob */ GAIAGEO_DECLARE int gaiaIsSvgXmlBlob (const unsigned char *blob, int size); /** Return another XmlBLOB buffer compressed / uncompressed \param blob pointer to the input XmlBLOB buffer. \param in_size input XmlBLOB's size (in bytes). \param compressed if TRUE the returned XmlBLOB will be zip-compressed. \param result on completion will containt a pointer to the output XmlBLOB: NULL on failure. \param out_size on completion this variable will contain the output XmlBLOB's size (in bytes) \sa gaiaXmlToBlob, gaiaIsCompressedXmlBlob \note the XmlBLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaXmlBlobCompression (const unsigned char *blob, int in_size, int compressed, unsigned char **result, int *out_size); /** Checks if a valid XmlBLOB buffer has successfully passed a formal Schema validation or not \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return TRUE or FALSE if the BLOB actually is a valid XmlBLOB but not schema-validated; -1 in any other case. \sa gaiaIsValidXmlBlob, gaiaIsSvgXmlBlob, gaiaIsCompressedXmlBlob, gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob */ GAIAGEO_DECLARE int gaiaIsSchemaValidatedXmlBlob (const unsigned char *blob, int size); /** Return the XMLDocument size (in bytes) from a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return the XMLDocument size (in bytes) for any valid XmlBLOB; -1 if the BLOB isn't a valid XmlBLOB. */ GAIAGEO_DECLARE int gaiaXmlBlobGetDocumentSize (const unsigned char *blob, int size); /** Return the SchemaURI from a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return the SchemaURI for any valid XmlBLOB containing a SchemaURI; NULL in any other case. \sa gaiaXmlGetInternalSchemaURI \note the returned SchemaURI corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetSchemaURI (const unsigned char *blob, int size); /** Return the Internal SchemaURI from a valid XmlDocument \param p_cache a memory pointer returned by spatialite_alloc_connection() \param xml pointer to the XML document \param xml_len lenght of the XML document (in bytes). \return the SchemaURI eventually defined within a valid XMLDocument; NULL if the XMLDocument is invalid, or if it doesn't contain any SchemaURI. \sa gaiaXmlBlobGetSchemaURI \note the returned SchemaURI corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlGetInternalSchemaURI (const void *p_cache, const unsigned char *xml, int xml_len); /** Return the FileIdentifier from a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return the FileIdentifier for any valid XmlBLOB containing a FileIdentifier; NULL in any other case. \sa gaiaIsIsoMetadataXmlBlob, gaiaXmlBlobSetFileId, gaiaXmlBlobAddFileId \note the returned FileIdentifier corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetFileId (const unsigned char *blob, int size); /** Return the ParentIdentifier from a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return the ParentIdentifier for any valid XmlBLOB containing a ParentIdentifier; NULL in any other case. \sa gaiaIsIsoMetadataXmlBlob, gaiaXmlBlobSetParentId, gaiaXmlBlobAddParentId \note the returned ParentIdentifier corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetParentId (const unsigned char *blob, int size); /** Return a new XmlBLOB (ISO Metadata) by replacing the FileId value \param p_cache a memory pointer returned by spatialite_alloc_connection() \param blob pointer to the input XmlBLOB buffer. \param size input XmlBLOB's size (in bytes). \param identifier the new FileId value to be set. \param new_blob on completion will contain a pointer to the output XmlBLOB buffer. \param new_size on completion will containg the output XmlBlob's size (in bytes). \return TRUE for success; FALSE for any failure cause. \sa gaiaIsIsoMetadataXmlBlob, gaiaXmlBlobGetFileId, gaiaXmlBlobAddFileId \note the output XmlBLOB corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE int gaiaXmlBlobSetFileId (const void *p_cache, const unsigned char *blob, int size, const char *identifier, unsigned char **new_blob, int *new_size); /** Return a new XmlBLOB (ISO Metadata) by replacing the ParentId value \param p_cache a memory pointer returned by spatialite_alloc_connection() \param blob pointer to the inputXmlBLOB buffer. \param size input XmlBLOB's size (in bytes). \param identifier the new ParentId value to be set. \param new_blob on completion will contain a pointer to the output XmlBLOB buffer. \param new_size on completion will containg the output XmlBlob's size (in bytes). \return TRUE for success; FALSE for any failure cause. \sa gaiaIsIsoMetadataXmlBlob, gaiaXmlBlobGetParentId, gaiaXmlBlobAddParentId \note the returned XmlBLOB corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE int gaiaXmlBlobSetParentId (const void *p_cache, const unsigned char *blob, int size, const char *identifier, unsigned char **new_blob, int *new_size); /** Return a new XmlBLOB (ISO Metadata) by inserting a FileId value \param p_cache a memory pointer returned by spatialite_alloc_connection() \param blob pointer to the input XmlBLOB buffer. \param size input XmlBLOB's size (in bytes). \param identifier the new FileId value to be inserted. \param ns_id prefix corresponding to FileIdentifier NameSpace (may be NULL) \param uri_id URI corresponding to the FileIdentifier NameSpace (may be NULL) \param ns_charstr prefix corresponding to CharacterString NameSpace (may be NULL) \param uri_charstr URI corresponding to CharacterString NameSpace (may be NULL) \param new_blob on completion will contain a pointer to the output XmlBLOB buffer. \param new_size on completion will containg the output XmlBlob's size (in bytes). \return TRUE for success; FALSE for any failure cause. \sa gaiaIsIsoMetadataXmlBlob, gaiaXmlBlobGetFileId, gaiaXmlBlobSetFileId \note the output XmlBLOB corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE int gaiaXmlBlobAddFileId (const void *p_cache, const unsigned char *blob, int size, const char *identifier, const char *ns_id, const char *uri_id, const char *ns_charstr, const char *uri_charstr, unsigned char **new_blob, int *new_size); /** Return a new XmlBLOB (ISO Metadata) by inserting a ParentId value \param p_cache a memory pointer returned by spatialite_alloc_connection() \param blob pointer to the inputXmlBLOB buffer. \param size input XmlBLOB's size (in bytes). \param identifier the new ParentId value to be inserted. \param ns_id prefix corresponding to FileIdentifier NameSpace (may be NULL) \param uri_id URI corresponding to the FileIdentifier NameSpace (may be NULL) \param ns_charstr prefix corresponding to CharacterString NameSpace (may be NULL) \param uri_charstr URI corresponding to CharacterString NameSpace (may be NULL) \param new_blob on completion will contain a pointer to the output XmlBLOB buffer. \param new_size on completion will containg the output XmlBlob's size (in bytes). \return TRUE for success; FALSE for any failure cause. \sa gaiaIsIsoMetadataXmlBlob, gaiaXmlBlobGetParentId, gaiaXmlBlobSetParentId \note the returned XmlBLOB corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE int gaiaXmlBlobAddParentId (const void *p_cache, const unsigned char *blob, int size, const char *identifier, const char *ns_id, const char *uri_id, const char *ns_charstr, const char *uri_charstr, unsigned char **new_blob, int *new_size); /** Return the Name from a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return the Name for any valid XmlBLOB containing a Name; NULL in any other case. \sa gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob \note the returned Name corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetName (const unsigned char *blob, int size); /** Return the Title from a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return the Title for any valid XmlBLOB containing a Title; NULL in any other case. \sa gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob \note the returned Title corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetTitle (const unsigned char *blob, int size); /** Return the Abstract from a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return the Abstract for any valid XmlBLOB containing an Abstract; NULL in any other case. \sa gaiaIsIsoMetadataXmlBlob, gaiaIsSldSeVectorStyleXmlBlob, gaiaIsSldSeRasterStyleXmlBlob, gaiaIsSldStyleXmlBlob \note the returned Abstract corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetAbstract (const unsigned char *blob, int size); /** Return the Geometry Buffer from a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \param blob_geom on completion this variable will contain a pointer to the returned Geometry Buffer (NULL if no Geometry was defined within the XmlBLOB) \param blob_size on completion this variable will contain the size (in bytes) of the returned Geometry Buffer \sa gaiaIsIsoMetadataXmlBlob \note the returned Geometry Buffer corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE void gaiaXmlBlobGetGeometry (const unsigned char *blob, int size, unsigned char **blob_geom, int *blob_size); /** Return the Charset Encoding from a valid XmlBLOB buffer \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \return the Charset Encoding for any valid XmlBLOB explicitly defining an Encoding; NULL in any other case. \note the returned Encoding corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetEncoding (const unsigned char *blob, int size); /** Return the most recent XML Parse error/warning (if any) \param ptr a memory pointer returned by spatialite_alloc_connection() \return the most recent XML Parse error/warning message (if any); NULL in any other case. \sa gaiaXmlBlobGetLastValidateError, gaiaIsValidXPathExpression, gaiaXmlBlobGetLastXPathError \note the returned error/warning message corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetLastParseError (const void *p_cache); /** Return the most recent XML Validate error/warning (if any) \param p_cache a memory pointer returned by spatialite_alloc_connection() \return the most recent XML Validate error/warning message (if any); NULL in any other case. \sa gaiaXmlBlobGetLastParseError, gaiaIsValidXPathExpression, gaiaXmlBlobGetLastXPathError \note the returned error/warning message corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetLastValidateError (const void *p_cache); /** Checks if a Text string could be a valid XPathExpression \param p_cache a memory pointer returned by spatialite_alloc_connection() \param xpath_expr pointer to the XPathExpression to be checked. \return TRUE or FALSE if the Text string actually is a valid XPathExpression; -1 in any other case. \sa gaiaXmlBlobGetLastXPathError */ GAIAGEO_DECLARE int gaiaIsValidXPathExpression (const void *p_cache, const char *xpath_expr); /** Return the most recent XPath error/warning (if any) \param p_cache a memory pointer returned by spatialite_alloc_connection() \return the most recent XPath error/warning message (if any); NULL in any other case. \sa gaiaXmlBlobGetLastParseError, gaiaXmlBlobGetLastValidateError, gaiaIsValidXPathExpression \note the returned error/warning message corresponds to dynamically allocated memory: so you are responsible to free() it before or after. */ GAIAGEO_DECLARE char *gaiaXmlBlobGetLastXPathError (const void *p_cache); /** Load an external XML Document \param path_or_url pointer to the external XML Document (could be a pathname or an URL). \param result on completion will containt a pointer to a BLOB: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes). \param parsing_errors on completion this variable will contain all error/warning messages emitted during the XML Parsing step. Can be set to NULL so to ignore any message. \sa gaiaXmlFromBlob, gaiaXmlStore \note the BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE int gaiaXmlLoad (const void *p_cache, const char *path_or_url, unsigned char **result, int *size, char **parsing_errors); /** Stores an external XML Document \param blob pointer to the XmlBLOB buffer. \param size XmlBLOB's size (in bytes). \param path pathname of the export file \param indent if a negative value is passed the XMLDocument will be extracted exactly as it was when loaded. Otherwise it will be properly formatted using the required intenting (max. 8); ZERO means that the whole XML Document will consist of a single line. \sa gaiaXmlToBlob, gaiaXmlTextFromBlob \note the returned XMLDocument will always respect the internal encoding declaration, and may not support any further processing as SQLite TEXT if it's not UTF-8. \note the XMLDocument buffer corresponds to dynamically allocated memory: so you are responsible to free() it before or after. \sa gaiaXmlFromBlob, gaiaXmlLoad \note the BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE int gaiaXmlStore (const unsigned char *blob, int size, const char *path, int indent); #endif /* end LIBXML2: supporting XML documents */ #ifdef __cplusplus } #endif #endif /* _GG_XML_H */ �����������������������libspatialite-4.3.0a/src/headers/spatialite/gaiamatrix.h��������������������������������������������0000664�0001750�0001750�00000022614�12544707704�020307� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gaiamatrix.h -- Gaia common utility functions: affine trasform Matrix version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gaiamatrix.h Auxiliary/helper functions */ #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifdef DLL_EXPORT #define GAIAMATRIX_DECLARE __declspec(dllexport) #else #define GAIAMATRIX_DECLARE extern #endif #endif #ifndef _GAIAMATRIX_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GAIAMATRIX_H #endif #ifdef __cplusplus extern "C" { #endif /** Typedef for gaiaAffineTransformMatrix object (opaque, hidden) \sa gaiaAffineTransformMatrixPtr */ typedef struct priv_affine_transform gaiaAffineTransformMatrix; /** Typedef for gaiaAffineTransformMatrixPtr object pointer (opaque, hidden) \sa gaiaAffineTransformMatrix */ typedef gaiaAffineTransformMatrix *gaiaAffineTransformMatrixPtr; /* function prototypes */ /** Creating a fully initialized BLOB-Matrix \param a XX component of the affine transformation. \param b XY component of the affine transformation. \param c XZ component of the affine transformation. \param d YX component of the affine transformation. \param e YY component of the affine transformation. \param f YZ component of the affine transformation. \param g ZX component of the affine transformation. \param h ZY component of the affine transformation. \param i ZZ component of the affine transformation. \param xoff X translation component of the affine transformation. \param yoff Y translation component of the affine transformation. \param zoff Z translation component of the affine transformation. \param blob on completion this variable will contain a BLOB-encoded affine transform Matrix \param blob_sz on completion this variable will contain the BLOB's size (in bytes) \return 0 on failure: any other different value on success. \sa gaia_matrix_is_valid, gaia_matrix_as_text, gaia_matrix_multiply, gaia_matrix_create_multiply, gaia_matrix_transform_geometry \note you are responsible to destroy (before or after) any BLOB returned by this function. */ GAIAMATRIX_DECLARE int gaia_matrix_create (double a, double b, double c, double d, double e, double f, double g, double h, double i, double xoff, double yoff, double zoff, unsigned char **blob, int *blob_sz); /** Creating a BLOB-Matrix by multiplying MatrixA by MatrixB \param iblob1 pointer to a BLOB-encoded Matrix A \param iblob1_sz A BLOB's size (in bytes) \param iblob2 pointer to a BLOB-encoded Matrix A \param iblob2_sz A BLOB's size (in bytes) \param blob on completion this variable will contain a BLOB-encoded affine transform Matrix \param blob_sz on completion this variable will contain the BLOB's size (in bytes) \return 0 on failure: any other different value on success. \sa gaia_matrix_create, gaia_matrix_is_valid, gaia_matrix_as_text, gaia_matrix_create_multiply, gaia_matrix_transform_geometry, gaia_matrix_invert \note you are responsible to destroy (before or after) any BLOB returned by this function. */ GAIAMATRIX_DECLARE int gaia_matrix_multiply (const unsigned char *iblob1, int iblob1_sz, const unsigned char *iblob2, int iblob2_sz, unsigned char **blob, int *blob_sz); /** Creating a BLOB-Matrix by applying a further trasformation to a previous BLOB-Matrix \param iblob pointer to a BLOB-encoded Matrix \param iblob_sz BLOB's size (in bytes) \param a XX component of the affine transformation. \param b XY component of the affine transformation. \param c XZ component of the affine transformation. \param d YX component of the affine transformation. \param e YY component of the affine transformation. \param f YZ component of the affine transformation. \param g ZX component of the affine transformation. \param h ZY component of the affine transformation. \param i ZZ component of the affine transformation. \param xoff X translation component of the affine transformation. \param yoff Y translation component of the affine transformation. \param zoff Z translation component of the affine transformation. \param blob on completion this variable will contain a BLOB-encoded affine transform Matrix \param blob_sz on completion this variable will contain the BLOB's size (in bytes) \return 0 on failure: any other different value on success. \sa gaia_matrix_create, gaia_matrix_is_valid, gaia_matrix_as_text, gaia_matrix_multiply, gaia_matrix_transform_geometry \note you are responsible to destroy (before or after) any BLOB returned by this function. */ GAIAMATRIX_DECLARE int gaia_matrix_create_multiply (const unsigned char *iblob, int iblob_sz, double a, double b, double c, double d, double e, double f, double g, double h, double i, double xoff, double yoff, double zoff, unsigned char **blob, int *blob_sz); /** Testing a BLOB-Matrix for validity \param blob pointer to a BLOB-encoded Matrix \param blob_sz BLOB's size (in bytes) \return TRUE if the BLOB really is of the BLOB-Matrix type; FALSE if not. \sa gaia_matrix_create, gaia_matrix_as_text, gaia_matrix_multiply, gaia_matrix_create_multiply, gaia_matrix_transform_geometry */ GAIAMATRIX_DECLARE int gaia_matrix_is_valid (const unsigned char *blob, int blob_sz); /** Printing a textual represention from a BLOB-Matrix \param blob pointer to a BLOB-encoded Matrix \param blob_sz BLOB's size (in bytes) \return a text string; NULL on failure. \sa gaia_matrix_create, gaia_matrix_is_valid, gaia_matrix_multiply, gaia_matrix_create_multiply, gaia_matrix_transform_geometry \note you are responsible to destroy (before or after) any text string returned by this function by calling sqlite3_free(). */ GAIAMATRIX_DECLARE char *gaia_matrix_as_text (const unsigned char *blob, int blob_sz); /** Transforming a Geometry accordingly to an Affine Transform Matrix \param geom the input Geometry \param blob pointer to a BLOB-encoded Matrix \param blob_sz BLOB's size (in bytes) \return pointer to the transformed Geometry or NULL on failure. \sa gaia_matrix_create, gaia_matrix_is_valid, gaia_matrix_as_text, gaia_matrix_multiply, gaia_matrix_create_multiply \note you are responsible to destroy (before or after) any Geometry returned by this function. */ GAIAMATRIX_DECLARE gaiaGeomCollPtr gaia_matrix_transform_geometry (gaiaGeomCollPtr geom, const unsigned char *blob, int blob_sz); /** Computing the Determinant from an Affine Transform Matrix \param blob pointer to a BLOB-encoded Matrix \param blob_sz BLOB's size (in bytes) \return the Determinant of the Matix; 0.0 on invalid args. \sa gaia_matrix_create, gaia_matrix_is_valid, gaia_matrix_invert \note you are responsible to destroy (before or after) any Geometry returned by this function. */ GAIAMATRIX_DECLARE double gaia_matrix_determinant (const unsigned char *blob, int blob_sz); /** Creating a BLOB-Matrix by applying a further trasformation to a previous BLOB-Matrix \param iblob pointer to a BLOB-encoded Matrix \param iblob_sz BLOB's size (in bytes) \param blob on completion this variable will contain a BLOB-encoded affine transform Matrix (Inverse) \param blob_sz on completion this variable will contain the BLOB's size (in bytes) \return 0 on failure: any other different value on success. Note that not all Matrices can be Inverted, only those having a valid Determinant. \sa gaia_matrix_create, gaia_matrix_is_valid, gaia_matrix_multiply, gaia_matrix_determinant \note you are responsible to destroy (before or after) any BLOB returned by this function. */ GAIAMATRIX_DECLARE int gaia_matrix_invert (const unsigned char *iblob, int iblob_sz, unsigned char **blob, int *blob_sz); #ifdef __cplusplus } #endif #endif /* _GAIAMATRIX_H */ ��������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/sqlite.h������������������������������������������������0000664�0001750�0001750�00000004665�12544707704�017470� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* sqlite.h -- supporting SQLite headers in a flexible way version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2013-2015 the Initial Developer. All Rights Reserved. Contributor(s): Pepijn Van Eeckhoudt <pepijnvaneeckhoudt@luciad.com> Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #ifndef _SPATIALITE_SQLITE_H #define _SPATIALITE_SQLITE_H #ifdef LOADABLE_EXTENSION /* loadable-extension only */ #ifdef SPL_AMALGAMATION /* spatialite-amalgamation */ #include <spatialite/sqlite3ext.h> #else #include <sqlite3ext.h> #endif /* We can't use SQLITE_EXTENSION_INIT1 as this is an intializer in recent version of sqlite */ extern const sqlite3_api_routines *sqlite3_api; #else /* ordinary lib */ #ifdef SPL_AMALGAMATION /* spatialite-amalgamation */ #include <spatialite/sqlite3.h> #else #include <sqlite3.h> #endif #endif #ifndef SQLITE_DETERMINISTIC /* probably SQLite < 3.8.3 - attempting to fix */ #define SQLITE_DETERMINISTIC SQLITE_UTF8 #endif #endif ���������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/gg_mbr.h������������������������������������������������0000664�0001750�0001750�00000034275�12544707704�017424� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_mbr.h -- Gaia common support for geometries: MBR functions version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gg_mbr.h Geometry handling functions: MBR */ #ifndef _GG_MBR_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_MBR_H #endif #ifdef __cplusplus extern "C" { #endif /* function prototypes */ /** Updates the actual MBR for a Linestring object \param line pointer to the Linestring object */ GAIAGEO_DECLARE void gaiaMbrLinestring (gaiaLinestringPtr line); /** Updates the actual MBR for a Ring object \param rng pointer to the Ring object */ GAIAGEO_DECLARE void gaiaMbrRing (gaiaRingPtr rng); /** Updates the actual MBR for a Polygon object \param polyg pointer to the Polygon object */ GAIAGEO_DECLARE void gaiaMbrPolygon (gaiaPolygonPtr polyg); /** Updates the actual MBR for a Geometry object \param geom pointer to the Geometry object */ GAIAGEO_DECLARE void gaiaMbrGeometry (gaiaGeomCollPtr geom); /** Retrieves the MBR (MinX) from a BLOB-Geometry object \param blob pointer to BLOB-Geometry. \param size the BLOB's size (in bytes). \param minx on completion this variable will contain the MBR MinX coordinate. \return 0 on failure: any other value on success. \sa gaiaGetMbrMaxX, gaiaGetMbrMinY, gaiaGetMbrMaxY */ GAIAGEO_DECLARE int gaiaGetMbrMinX (const unsigned char *blob, unsigned int size, double *minx); /** Retrieves the MBR (MaxX) from a BLOB-Geometry object \param blob pointer to BLOB-Geometry. \param size the BLOB's size (in bytes). \param maxx on completion this variable will contain the MBR MaxX coordinate. \return 0 on failure: any other value on success. \sa gaiaGetMbrMinX, gaiaGetMbrMinY, gaiaGetMbrMaxY */ GAIAGEO_DECLARE int gaiaGetMbrMaxX (const unsigned char *blob, unsigned int size, double *maxx); /** Retrieves the MBR (MinY) from a BLOB-Geometry object \param blob pointer to BLOB-Geometry. \param size the BLOB's size (in bytes). \param miny on completion this variable will contain the MBR MinY coordinate. \return 0 on failure: any other value on success. \sa gaiaGetMbrMinX, gaiaGetMbrMaxX, gaiaGetMbrMaxY */ GAIAGEO_DECLARE int gaiaGetMbrMinY (const unsigned char *blob, unsigned int size, double *miny); /** Retrieves the MBR (MaxY) from a BLOB-Geometry object \param blob pointer to BLOB-Geometry. \param size the BLOB's size (in bytes). \param maxy on completion this variable will contain the MBR MaxY coordinate. \return 0 on failure: any other value on success. \sa gaiaGetMbrMinX, gaiaGetMbrMaxX, gaiaGetMbrMinY */ GAIAGEO_DECLARE int gaiaGetMbrMaxY (const unsigned char *blob, unsigned int size, double *maxy); /** Creates a Geometry object corresponding to the Envelope [MBR] for a BLOB-Geometry \param blob pointer to BLOB-Geometry \param size the BLOB's size (in bytes) \return the pointer to the newly created Geometry object: NULL on failure \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromSpatiaLiteBlobMbr (const unsigned char *blob, unsigned int size); /** MBRs comparison: Contains \param mbr1 pointer to first Geometry object. \param mbr2 pointer to second Geometry object. \return 0 if false; any other value if mbr1 spatially \e contains mbr2 \sa gaiaMbrsDisjoint, gaiaMbrsEqual, gaiaMbrsIntersects, gaiaMbrsOverlaps, gaiaMbrsTouches, gaiaMbrsWithin */ GAIAGEO_DECLARE int gaiaMbrsContains (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2); /** MBRs comparison: Disjoint \param mbr1 pointer to first Geometry object. \param mbr2 pointer to second Geometry object. \return 0 if false; any other value if mbr1 and mbr2 are spatially \e disjoint \sa gaiaMbrsContains, gaiaMbrsEqual, gaiaMbrsIntersects, gaiaMbrsOverlaps, gaiaMbrsTouches, gaiaMbrsWithin */ GAIAGEO_DECLARE int gaiaMbrsDisjoint (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2); /** MBRs comparison: Equal \param mbr1 pointer to first Geometry object. \param mbr2 pointer to second Geometry object. \return 0 if false; any other value if mbr1 and mbr2 are spatially \e equal \sa gaiaMbrsContains, gaiaMbrsDisjoint, gaiaMbrsIntersects, gaiaMbrsOverlaps, gaiaMbrsTouches, gaiaMbrsWithin */ GAIAGEO_DECLARE int gaiaMbrsEqual (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2); /** MBRs comparison: Intersects \param mbr1 pointer to first Geometry object. \param mbr2 pointer to second Geometry object. \return 0 if false; any other value if mbr1 and mbr2 spatially \e intersect \sa gaiaMbrsContains, gaiaMbrsDisjoint, gaiaMbrsEqual, gaiaMbrsOverlaps, gaiaMbrsTouches, gaiaMbrsWithin */ GAIAGEO_DECLARE int gaiaMbrsIntersects (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2); /** MBRs comparison: Overlaps \param mbr1 pointer to first Geometry object. \param mbr2 pointer to second Geometry object. \return 0 if false; any other value if mbr1 and mbr2 spatially \e overlap \sa gaiaMbrsContains, gaiaMbrsDisjoint, gaiaMbrsEqual, gaiaMbrsIntersects, gaiaMbrsTouches, gaiaMbrsWithin */ GAIAGEO_DECLARE int gaiaMbrsOverlaps (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2); /** MBRs comparison: Touches \param mbr1 pointer to first Geometry object. \param mbr2 pointer to second Geometry object. \return 0 if false; any other value if mbr1 and mbr2 spatially \e touche \sa gaiaMbrsContains, gaiaMbrsDisjoint, gaiaMbrsEqual, gaiaMbrsIntersects, gaiaMbrsOverlaps, gaiaMbrsWithin */ GAIAGEO_DECLARE int gaiaMbrsTouches (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2); /** MBRs comparison: Within \param mbr1 pointer to first Geometry object. \param mbr2 pointer to second Geometry object. \return 0 if false; any other value if mbr1 is spatially \e within mbr2 \sa gaiaMbrsContains, gaiaMbrsDisjoint, gaiaMbrsEqual, gaiaMbrsIntersects, gaiaMbrsOverlaps, gaiaMbrsTouches */ GAIAGEO_DECLARE int gaiaMbrsWithin (gaiaGeomCollPtr mbr1, gaiaGeomCollPtr mbr2); /** Creates a BLOB-Geometry representing an Envelope [MBR] \param x1 first X coordinate. \param y1 first Y coordinate. \param x2 second X coordinate. \param y2 second Y coordinate. \param srid the SRID associated to the Envelope \param result on completion will contain a pointer to newly created BLOB-Geometry \param size on completion this variabile will contain the BLOB's size (in bytes) \sa gaiaBuildCircleMbr \note [XY] coords must define two extreme Points identifying a diagonal of the MBR [Envelope] \n no special order is required for coords: MAX / MIN values will be internally arranged as appropriate. */ GAIAGEO_DECLARE void gaiaBuildMbr (double x1, double y1, double x2, double y2, int srid, unsigned char **result, int *size); /** Creates a BLOB-Geometry representing an Envelope [MBR] \param x centre X coordinate. \param y centre Y coordinate. \param radius the radius of the circle \param srid the SRID associated to the Envelope \param result on completion will contain a pointer to newly created BLOB-Geometry \param size on completion this variabile will contain the BLOB's size (in bytes) \sa gaiaBuildMbr \note the \e circle of givern \e radius and \e centre will be used so to determine the corresponding \e square Envelope */ GAIAGEO_DECLARE void gaiaBuildCircleMbr (double x, double y, double radius, int srid, unsigned char **result, int *size); /** Creates a BLOB-FilterMBR \param x1 first X coordinate. \param y1 first Y coordinate. \param x2 second X coordinate. \param y2 second Y coordinate. \param mode one of: GAIA_FILTER_MBR_WITHIN, GAIA_FILTER_MBR_CONTAINS, GAIA_FILTER_MBR_INTERSECTS, GAIA_FILTER_MBR_DECLARE \param result on completion will contain a pointer to newly created BLOB-FilterMBR \param size on completion this variabile will contain the BLOB's size (in bytes) \sa gaiaParseFilterMbr \note [XY] coords must define two extreme Points identifying a diagonal of the MBR [Envelope] \n no special order is required for coords: MAX / MIN values will be internally arranged as appropriate. \remark internally used to implement Geometry Callback R*Tree filtering. */ GAIAGEO_DECLARE void gaiaBuildFilterMbr (double x1, double y1, double x2, double y2, int mode, unsigned char **result, int *size); /** Creates a BLOB-FilterMBR \param result pointer to BLOB-FilterMBR [previously created by gaiaBuildFilterMbr] BLOB-Geometry \param size BLOB's size (in bytes) \param minx on completion this variable will contain the MBR MinX coord. \param miny on completion this variable will contain the MBR MinY coord. \param maxx on completion this variable will contain the MBR MinY coord. \param maxy on completion this variable will contain the MBR MaxY coord. \param mode on completion this variable will contain the FilterMBR mode. \sa gaiaBuildFilterMbr \remark internally used to implement Geometry Callback R*Tree filtering. */ GAIAGEO_DECLARE int gaiaParseFilterMbr (unsigned char *result, int size, double *minx, double *miny, double *maxx, double *maxy, int *mode); /** Computes the Z-Range for a Linestring object \param line pointer to the Linestring object \param min on completion this variable will contain the min Z value found \param max on completion this variable will contain the max Z value found \note if the Linestring has XY or XYM dims, the Z-Range is meaningless */ GAIAGEO_DECLARE void gaiaZRangeLinestring (gaiaLinestringPtr line, double *min, double *max); /** Computes the Z-Range for a Ring object \param rng pointer to the Ring object \param min on completion this variable will contain the min Z value found \param max on completion this variable will contain the max Z value found \note if the Ring has XY or XYM dims, the Z-Range is meaningless */ GAIAGEO_DECLARE void gaiaZRangeRing (gaiaRingPtr rng, double *min, double *max); /** Computes the Z-Range for a Polygon object \param polyg pointer to the Polygon object \param min on completion this variable will contain the min Z value found \param max on completion this variable will contain the max Z value found \note if the Polygon has XY or XYM dims, the Z-Range is meaningless */ GAIAGEO_DECLARE void gaiaZRangePolygon (gaiaPolygonPtr polyg, double *min, double *max); /** Computes the Z-Range for a Geometry object \param geom pointer to the Geometry object \param min on completion this variable will contain the min Z value found \param max on completion this variable will contain the max Z value found \note if the Geometry has XY or XYM dims, the Z-Range is meaningless */ GAIAGEO_DECLARE void gaiaZRangeGeometry (gaiaGeomCollPtr geom, double *min, double *max); /** Computes the M-Range for a Linestring object \param line pointer to the Linestring object \param min on completion this variable will contain the min M value found \param max on completion this variable will contain the max M value found \note if the Linestring has XY or XYZ dims, the M-Range is meaningless */ GAIAGEO_DECLARE void gaiaMRangeLinestring (gaiaLinestringPtr line, double *min, double *max); /** Computes the M-Range for a Ring object \param rng pointer to the Ring object \param min on completion this variable will contain the min M value found \param max on completion this variable will contain the max M value found \note if the Ring has XY or XYZ dims, the M-Range is meaningless */ GAIAGEO_DECLARE void gaiaMRangeRing (gaiaRingPtr rng, double *min, double *max); /** Computes the M-Range for a Polygon object \param polyg pointer to the Polygon object \param min on completion this variable will contain the min M value found \param max on completion this variable will contain the max M value found \note if the Polygon has XY or XYZ dims, the M-Range is meaningless */ GAIAGEO_DECLARE void gaiaMRangePolygon (gaiaPolygonPtr polyg, double *min, double *max); /** Computes the Z-Range for a Geometry object \param geom pointer to the Geometry object \param min on completion this variable will contain the min M value found \param max on completion this variable will contain the max M value found \note if the Geometry has XY or XYZ dims, the M-Range is meaningless */ GAIAGEO_DECLARE void gaiaMRangeGeometry (gaiaGeomCollPtr geom, double *min, double *max); #ifdef __cplusplus } #endif #endif /* _GG_MBR_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/control_points.h����������������������������������������0000664�0001750�0001750�00000020034�12544707704�021227� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* control_points.h -- Gaia implementation of RMSE and TPS Control Points version 4.3, 2015 May 5 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file control_points.h Auxiliary/helper functions */ #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifdef DLL_EXPORT #define GAIACP_DECLARE __declspec(dllexport) #else #define GAIACP_DECLARE extern #endif #endif #ifndef _GAIACP_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GAIACP_H #endif #ifdef __cplusplus extern "C" { #endif /** Typedef for GaiaControPoints object (opaque, hidden) \sa GaiaControlPointsPtr */ typedef struct opaque_control_points GaiaControlPoints; /** Typedef for GaiaControPointsPtr object pointer (opaque, hidden) \sa GaiaControlPoints */ typedef GaiaControlPoints *GaiaControlPointsPtr; /** Typedef for GaiaPolynomialCoeffs object (opaque, hidden) \sa GaiaPolynomialCoeffsPtr */ typedef struct priv_polynomial_coeffs GaiaPolynomialCoeffs; /** Typedef for GaiaPolynomialCoeffsPtr object pointer (opaque, hidden) \sa GaiaPolynomialCoeffs */ typedef GaiaPolynomialCoeffs *GaiaPolynomialCoeffsPtr; /* function prototypes */ /** Creates a Control Points container (opaque object) \param allocation_incr how many Control Points should be allocated every time that necessity arises to increment the internal storage \param has3d true if the Control Points are all expected to be 3D \param order polynomial order: 1 or 2 or 3 \param tps true if the solution method must be Thin Plate Spline \return the handle of the container object, or NULL on failure \sa gaiaFreeControlPoints, gaiaAddControlPoint3D, gaiaAddControlPoint2D, gaiaAffineFromControlPoints \note you must properly destroy the container object when it isn't any longer used. */ GAIACP_DECLARE GaiaControlPointsPtr gaiaCreateControlPoints (int allocation_incr, int has3d, int order, int tps); /** Destroys a Control Points container (opaque object) \param cp_handle the handle identifying the container object (returned by a previous call to gaiaCreateControlPoints). \sa gaiaCreateControlPoints */ GAIACP_DECLARE void gaiaFreeControlPoints (GaiaControlPointsPtr cp_handle); /** Add a further Control Point 3D to the container (opaque object) \param cp_handle the handle identifying the container object (returned by a previous call to gaiaCreateControlPoints). \param x0 X coordinate of the first Point. \param y0 Y coordinate of the first Point. \param z0 Z coordinate of the first Point. \param x1 X coordinate of the second Point. \param y1 Y coordinate of the second Point. \param z1 Z coordinate of the second Point. \return 0 on failure: any other different value on success. \sa gaiaCreateControlPoints, gaiaAddControlPoint2D */ GAIACP_DECLARE int gaiaAddControlPoint3D (GaiaControlPointsPtr cp_handle, double x0, double y0, double z0, double x1, double y1, double z1); /** Add a further Control Point 2D to the container (opaque object) \param cp_handle the handle identifying the container object (returned by a previous call to gaiaCreateControlPoints). \param x0 X coordinate of the first Point. \param y0 Y coordinate of the first Point. \param x1 X coordinate of the second Point. \param y1 Y coordinate of the second Point. \return 0 on failure: any other different value on success. \sa gaiaCreateControlPoints, gaiaAddControlPoint3D */ GAIACP_DECLARE int gaiaAddControlPoint2D (GaiaControlPointsPtr cp_handle, double x0, double y0, double x1, double y1); /** Resolves a Control Point set by computing an Affine Transform Matrix \param cp_handle the handle identifying the container object (returned by a previous call to gaiaCreateControlPoints). \param blob on completion this variable will contain a BLOB-encoded Polynomial coeffs object \param blob_sz on completion this variable will contain the BLOB's size (in bytes) \return 0 on failure: any other different value on success. \sa gaiaCreateControlPoints, gaiaPolynomialIsValid, gaiaPolynomialAsText, gaiaPolynomialTransformGeometry */ GAIACP_DECLARE int gaiaCreatePolynomialCoeffs (GaiaControlPointsPtr cp_handle, unsigned char **blob, int *blob_sz); /** Testing a BLOB-Polynomial for validity \param blob pointer to a BLOB-encoded Polynomial coeffs object \param blob_sz BLOB's size (in bytes) \return TRUE if the BLOB really is of the BLOB-Polynomial type; FALSE if not. \sa gaiaCreatePolynomialCoeffs, gaiaPolynomialAsText */ GAIACP_DECLARE int gaiaPolynomialIsValid (const unsigned char *blob, int blob_sz); /** Printing a textual represention from a BLOB-Matrix \param blob pointer to a BLOB-encoded Polynomial coeffs object \param blob_sz BLOB's size (in bytes) \return a text string; NULL on failure. \sa gaiaCreateControlPoints, gaiaPolynomialIsValid, gaiaPolynomialTransformGeometry \note you are responsible to destroy (before or after) any text string returned by this function by calling sqlite3_free(). */ GAIACP_DECLARE char *gaiaPolynomialAsText (const unsigned char *blob, int blob_sz); /** Transforming a Geometry accordingly to an Affine Transform Matrix \param geom the input Geometry \param blob pointer to a BLOB-encoded Polynomial coeffs object \param blob_sz BLOB's size (in bytes) \return 0 pointer to the transformed Geometry or NULL on failure. \sa gaiaCreateControlPoints, gaiaPolynomialIsValid, gaiaPolynomialAsText \note you are responsible to destroy (before or after) any Geometry returned by this function. */ GAIACP_DECLARE gaiaGeomCollPtr gaiaPolynomialTransformGeometry (gaiaGeomCollPtr geom, const unsigned char *blob, int blob_sz); /** Converts a Polynomial coeffs object into an Affine Transsform Matrix \param iblob pointer to a BLOB-encoded Polynomial coeffs object \param iblob_sz BLOB's size (in bytes) \param oblob on completion this variable will contain a BLOB-encoded Affine Transform Matrix object \param oblob_sz on completion this variable will contain the BLOB's size (in bytes) \return 0 on failure: any other different value on success. \sa gaiaCreateControlPoints, gaiaPolynomialIsValid, gaiaPolynomialAsText, gaiaPolynomialTransformGeometry, gaiaPolynomialToMatrix */ GAIACP_DECLARE int gaiaPolynomialToMatrix (const unsigned char *iblob, int iblob_sz, unsigned char **oblob, int *oblob_sz); #ifdef __cplusplus } #endif #endif /* _GAIACP_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/gg_const.h����������������������������������������������0000664�0001750�0001750�00000042451�12544707704�017765� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_const.h -- Gaia common support for geometries: constants version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Klaus Foerster klaus.foerster@svg.cc Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gg_const.h Geometry constants and macros */ #ifndef _GG_CONST_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_CONST_H #endif #ifdef __cplusplus extern "C" { #endif /* constant values for getVectorLayersList modes */ /** mode: FAST (QGIS data-provider) */ #define GAIA_VECTORS_LIST_FAST 0 /** mode: OPTIMISTIC */ #define GAIA_VECTORS_LIST_OPTIMISTIC 1 /** mode: PESSIMISTIC */ #define GAIA_VECTORS_LIST_PESSIMISTIC 2 /* constant values for Vector Layer Types */ /** Vector Layer: unknown type */ #define GAIA_VECTOR_UNKNOWN -1 /** Vector Layer: Spatial Table */ #define GAIA_VECTOR_TABLE 1 /** Vector Layer: Spatial View */ #define GAIA_VECTOR_VIEW 2 /** Vector Layer: Virtual Shape */ #define GAIA_VECTOR_VIRTUAL 3 /* constant values for Vector Layer Geometry Types */ /** Vector Layer Geometry: Geometry */ #define GAIA_VECTOR_GEOMETRY 0 /** Vector Layer Geometry: Point */ #define GAIA_VECTOR_POINT 1 /** Vector Layer Geometry: Linestring */ #define GAIA_VECTOR_LINESTRING 2 /** Vector Layer Geometry: Polygon */ #define GAIA_VECTOR_POLYGON 3 /** Vector Layer Geometry: MultiPoint */ #define GAIA_VECTOR_MULTIPOINT 4 /** Vector Layer Geometry: MultiLinestring */ #define GAIA_VECTOR_MULTILINESTRING 5 /** Vector Layer Geometry: MultiPolygon */ #define GAIA_VECTOR_MULTIPOLYGON 6 /** Vector Layer Geometry: GeometryCollection */ #define GAIA_VECTOR_GEOMETRYCOLLECTION 7 /* constant values for Spatial Index */ /** Vector Layer: no Spatial Index */ #define GAIA_SPATIAL_INDEX_NONE 0 /** Vector Layer: Spatial Index RTree */ #define GAIA_SPATIAL_INDEX_RTREE 1 /** Vector Layer: Spatial Index MbrCache */ #define GAIA_SPATIAL_INDEX_MBRCACHE 2 /* constant values for generic geometry classes */ /** WKT parser: unknown Geometry type */ #define GAIA_TYPE_NONE 0 /** WKT parser: Point Geometry type */ #define GAIA_TYPE_POINT 1 /** WKT parser: Linestring Geometry type */ #define GAIA_TYPE_LINESTRING 2 /** WKT parser: Polygon Geometry type */ #define GAIA_TYPE_POLYGON 3 /* constants that defines byte storage order */ /** Big-Endian marker */ #define GAIA_BIG_ENDIAN 0 /** Little-Endian marker */ #define GAIA_LITTLE_ENDIAN 1 /* constants that defines special markers used for encoding of SpatiaLite internal BLOB geometries */ /** BLOB-Geometry internal marker: START */ #define GAIA_MARK_START 0x00 /** BLOB-Geometry internal marker: END */ #define GAIA_MARK_END 0xFE /** BLOB-Geometry internal marker: MBR */ #define GAIA_MARK_MBR 0x7C /** BLOB-Geometry internal marker: ENTITY */ #define GAIA_MARK_ENTITY 0x69 /* constants that defines GEOMETRY CLASSes */ /** BLOB-Geometry CLASS: unknown */ #define GAIA_UNKNOWN 0 /** BLOB-Geometry CLASS: POINT */ #define GAIA_POINT 1 /** BLOB-Geometry CLASS: LINESTRING */ #define GAIA_LINESTRING 2 /** BLOB-Geometry CLASS: POLYGON */ #define GAIA_POLYGON 3 /** BLOB-Geometry CLASS: MULTIPOINT */ #define GAIA_MULTIPOINT 4 /** BLOB-Geometry CLASS: MULTILINESTRING */ #define GAIA_MULTILINESTRING 5 /** BLOB-Geometry CLASS: MULTIPOLYGON */ #define GAIA_MULTIPOLYGON 6 /** BLOB-Geometry CLASS: GEOMETRYCOLLECTION */ #define GAIA_GEOMETRYCOLLECTION 7 /** BLOB-Geometry CLASS: POINT Z */ #define GAIA_POINTZ 1001 /** BLOB-Geometry CLASS: LINESTRING Z */ #define GAIA_LINESTRINGZ 1002 /** BLOB-Geometry CLASS: POLYGON Z */ #define GAIA_POLYGONZ 1003 /** BLOB-Geometry CLASS: MULTIPOINT Z */ #define GAIA_MULTIPOINTZ 1004 /** BLOB-Geometry CLASS: MULTILINESTRING Z */ #define GAIA_MULTILINESTRINGZ 1005 /** BLOB-Geometry CLASS: MULTIPOLYGON Z */ #define GAIA_MULTIPOLYGONZ 1006 /** BLOB-Geometry CLASS: GEOMETRYCOLLECTION Z */ #define GAIA_GEOMETRYCOLLECTIONZ 1007 /** BLOB-Geometry CLASS: POINT M */ #define GAIA_POINTM 2001 /** BLOB-Geometry CLASS: LINESTRING M */ #define GAIA_LINESTRINGM 2002 /** BLOB-Geometry CLASS: POLYGON M */ #define GAIA_POLYGONM 2003 /** BLOB-Geometry CLASS: MULTIPOINT M */ #define GAIA_MULTIPOINTM 2004 /** BLOB-Geometry CLASS: MULTILINESTRING M */ #define GAIA_MULTILINESTRINGM 2005 /** BLOB-Geometry CLASS: MULTIPOLYGON M */ #define GAIA_MULTIPOLYGONM 2006 /** BLOB-Geometry CLASS: GEOMETRYCOLLECTION M */ #define GAIA_GEOMETRYCOLLECTIONM 2007 /** BLOB-Geometry CLASS: POINT ZM */ #define GAIA_POINTZM 3001 /** BLOB-Geometry CLASS: LINESTRING ZM */ #define GAIA_LINESTRINGZM 3002 /** BLOB-Geometry CLASS: POLYGON ZM */ #define GAIA_POLYGONZM 3003 /** BLOB-Geometry CLASS: MULTIPOINT ZM */ #define GAIA_MULTIPOINTZM 3004 /** BLOB-Geometry CLASS: MULTILINESTRING ZM */ #define GAIA_MULTILINESTRINGZM 3005 /** BLOB-Geometry CLASS: MULTIPOLYGON ZM */ #define GAIA_MULTIPOLYGONZM 3006 /** BLOB-Geometry CLASS: GEOMETRYCOLLECTION ZM */ #define GAIA_GEOMETRYCOLLECTIONZM 3007 /* constants that defines Compressed GEOMETRY CLASSes */ /** BLOB-Geometry CLASS: compressed LINESTRING */ #define GAIA_COMPRESSED_LINESTRING 1000002 /** BLOB-Geometry CLASS: compressed POLYGON */ #define GAIA_COMPRESSED_POLYGON 1000003 /** BLOB-Geometry CLASS: compressed LINESTRING Z */ #define GAIA_COMPRESSED_LINESTRINGZ 1001002 /** BLOB-Geometry CLASS: compressed POLYGON Z */ #define GAIA_COMPRESSED_POLYGONZ 1001003 /** BLOB-Geometry CLASS: compressed LINESTRING M */ #define GAIA_COMPRESSED_LINESTRINGM 1002002 /** BLOB-Geometry CLASS: compressed POLYGON M */ #define GAIA_COMPRESSED_POLYGONM 1002003 /** BLOB-Geometry CLASS: compressed LINESTRING ZM */ #define GAIA_COMPRESSED_LINESTRINGZM 1003002 /** BLOB-Geometry CLASS: compressed POLYGON ZM */ #define GAIA_COMPRESSED_POLYGONZM 1003003 /* constants that defines GEOS-WKB 3D CLASSes */ /** GEOS-WKB 3D CLASS: POINT Z */ #define GAIA_GEOSWKB_POINTZ -2147483647 /** GEOS-WKB 3D CLASS: LINESTRING Z */ #define GAIA_GEOSWKB_LINESTRINGZ -2147483646 /** GEOS-WKB 3D CLASS: POLYGON Z */ #define GAIA_GEOSWKB_POLYGONZ -2147483645 /** GEOS-WKB 3D CLASS: MULTIPOINT Z */ #define GAIA_GEOSWKB_MULTIPOINTZ -2147483644 /** GEOS-WKB 3D CLASS: MULTILINESTRING Z */ #define GAIA_GEOSWKB_MULTILINESTRINGZ -2147483643 /** GEOS-WKB 3D CLASS: MULTIPOLYGON Z */ #define GAIA_GEOSWKB_MULTIPOLYGONZ -2147483642 /** GEOS-WKB 3D CLASS: POINT Z */ #define GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ -2147483641 /* constants that defines multitype values */ /** DBF data type: NULL */ #define GAIA_NULL_VALUE 0 /** DBF data type: TEXT */ #define GAIA_TEXT_VALUE 1 /** DBF data type: INT */ #define GAIA_INT_VALUE 2 /** DBF data type: DOUBLE */ #define GAIA_DOUBLE_VALUE 3 /* constants that defines POINT index for LINESTRING */ /** Linestring/Ring functions: START POINT */ #define GAIA_START_POINT 1 /** Linestring/Ring functions: END POINT */ #define GAIA_END_POINT 2 /** Linestring/Ring functions: POINTN */ #define GAIA_POINTN 3 /* constants that defines MBRs spatial relationships */ /** MBR relationships: CONTAINS */ #define GAIA_MBR_CONTAINS 1 /** MBR relationships: DISJOINT */ #define GAIA_MBR_DISJOINT 2 /** MBR relationships: EQUAL */ #define GAIA_MBR_EQUAL 3 /** MBR relationships: INTERSECTS */ #define GAIA_MBR_INTERSECTS 4 /** MBR relationships: OVERLAP */ #define GAIA_MBR_OVERLAPS 5 /** MBR relationships: TOUCHES */ #define GAIA_MBR_TOUCHES 6 /** MBR relationships: WITHIN */ #define GAIA_MBR_WITHIN 7 /* constants used for FilterMBR */ /** FilerMBR relationships: WITHIN */ #define GAIA_FILTER_MBR_WITHIN 74 /** FilerMBR relationships: CONTAINS */ #define GAIA_FILTER_MBR_CONTAINS 77 /** FilerMBR relationships: INTERSECTS */ #define GAIA_FILTER_MBR_INTERSECTS 79 /** FilerMBR relationships: DECLARE */ #define GAIA_FILTER_MBR_DECLARE 89 /* constants defining SVG default values */ /** SVG precision: RELATIVE */ #define GAIA_SVG_DEFAULT_RELATIVE 0 /** SVG precision: DEFAULT */ #define GAIA_SVG_DEFAULT_PRECISION 6 /** SVG precision: MAX */ #define GAIA_SVG_DEFAULT_MAX_PRECISION 15 /* constants used for VirtualNetwork */ /** VirtualNetwork internal markers: START */ #define GAIA_NET_START 0x67 /** VirtualNetwork internal markers: 64 bit START */ #define GAIA_NET64_START 0x68 /** VirtualNetwork internal markers: A-Stat START */ #define GAIA_NET64_A_STAR_START 0x69 /** VirtualNetwork internal markers: END */ #define GAIA_NET_END 0x87 /** VirtualNetwork internal markers: HEADER */ #define GAIA_NET_HEADER 0xc0 /** VirtualNetwork internal markers: CODE */ #define GAIA_NET_CODE 0xa6 /** VirtualNetwork internal markers: ID */ #define GAIA_NET_ID 0xb5 /** VirtualNetwork internal markers: NODE */ #define GAIA_NET_NODE 0xde /** VirtualNetwork internal markers: ARC */ #define GAIA_NET_ARC 0x54 /** VirtualNetwork internal markers: TABLE */ #define GAIA_NET_TABLE 0xa0 /** VirtualNetwork internal markers: FROM */ #define GAIA_NET_FROM 0xa1 /** VirtualNetwork internal markers: TO */ #define GAIA_NET_TO 0xa2 /** VirtualNetwork internal markers: GEOM */ #define GAIA_NET_GEOM 0xa3 /** VirtualNetwork internal markers: NAME */ #define GAIA_NET_NAME 0xa4 /** VirtualNetwork internal markers: COEFF */ #define GAIA_NET_A_STAR_COEFF 0xa5 /** VirtualNetwork internal markers: BLOCK */ #define GAIA_NET_BLOCK 0xed /* constants used for Coordinate Dimensions */ /** Coordinate Dimensions: XY */ #define GAIA_XY 0x00 /** Coordinate Dimensions: XYZ */ #define GAIA_XY_Z 0x01 /** Coordinate Dimensions: XYM */ #define GAIA_XY_M 0x02 /** Coordinate Dimensions: XYZM */ #define GAIA_XY_Z_M 0x03 /* constants used for length unit conversion */ /** Length unit conversion: Kilometer */ #define GAIA_KM 0 /** Length unit conversion: Meter */ #define GAIA_M 1 /** Length unit conversion: Decimeter */ #define GAIA_DM 2 /** Length unit conversion: Centimeter */ #define GAIA_CM 3 /** Length unit conversion: Millimeter */ #define GAIA_MM 4 /** Length unit conversion: International Nautical Mile */ #define GAIA_KMI 5 /** Length unit conversion: Inch */ #define GAIA_IN 6 /** Length unit conversion: Feet */ #define GAIA_FT 7 /** Length unit conversion: Yard */ #define GAIA_YD 8 /** Length unit conversion: Mile */ #define GAIA_MI 9 /** Length unit conversion: Fathom */ #define GAIA_FATH 10 /** Length unit conversion: Chain */ #define GAIA_CH 11 /** Length unit conversion: Link */ #define GAIA_LINK 12 /** Length unit conversion: US Inch */ #define GAIA_US_IN 13 /** Length unit conversion: US Feet */ #define GAIA_US_FT 14 /** Length unit conversion: US Yard */ #define GAIA_US_YD 15 /** Length unit conversion: US Chain */ #define GAIA_US_CH 16 /** Length unit conversion: US Mile */ #define GAIA_US_MI 17 /** Length unit conversion: Indian Yard */ #define GAIA_IND_YD 18 /** Length unit conversion: Indian Feet */ #define GAIA_IND_FT 19 /** Length unit conversion: Indian Chain */ #define GAIA_IND_CH 20 /** Length unit conversion: MIN */ #define GAIA_MIN_UNIT GAIA_KM /** Length unit conversion: MAX */ #define GAIA_MAX_UNIT GAIA_IND_CH /* constants used for SHAPES */ /** SHP shape: unknown */ #define GAIA_SHP_NULL 0 /** SHP shape: POINT */ #define GAIA_SHP_POINT 1 /** SHP shape: POLYLINE */ #define GAIA_SHP_POLYLINE 3 /** SHP shape: POLYGON */ #define GAIA_SHP_POLYGON 5 /** SHP shape: MULTIPOINT */ #define GAIA_SHP_MULTIPOINT 8 /** SHP shape: POINT Z */ #define GAIA_SHP_POINTZ 11 /** SHP shape: POLYLINE Z */ #define GAIA_SHP_POLYLINEZ 13 /** SHP shape: POLYGON Z */ #define GAIA_SHP_POLYGONZ 15 /** SHP shape: MULTIPOINT Z */ #define GAIA_SHP_MULTIPOINTZ 18 /** SHP shape: POINT M */ #define GAIA_SHP_POINTM 21 /** SHP shape: POLYLINE M */ #define GAIA_SHP_POLYLINEM 23 /** SHP shape: POLYGON M */ #define GAIA_SHP_POLYGONM 25 /** SHP shape: MULTIPOINT M */ #define GAIA_SHP_MULTIPOINTM 28 /* constants used for Clone Special modes */ /** Clone Special Mode: Same Order as input */ #define GAIA_SAME_ORDER 0 /** Clone Special Mode: Reversed Order */ #define GAIA_REVERSE_ORDER -1 /** Clone Special Mode: apply Left Handle Rule to Polygon Rings */ #define GAIA_LHR_ORDER -2 /* macros */ /** macro extracting XY coordinates \param xy pointer [const void *] to COORD mem-array \param v [int] point index [first point has index 0] \param x [double *] X coordinate \param y [double *] Y coordinate \sa gaiaLineGetPoint, gaiaRingGetPoint \note using this macro on behalf of COORDs not of [XY] dims may cause serious problems */ #define gaiaGetPoint(xy,v,x,y) \ {*x = xy[(v) * 2]; \ *y = xy[(v) * 2 + 1];} /** macro setting XY coordinates \param xy pointer [const void *] to COORD mem-array \param v [int] point index [first point has index 0] \param x [double] X coordinate \param y [double] Y coordinate \sa gaiaLineSetPoint, gaiaRingSetPoint \note using this macro on behalf on COORDs not of [XY] dims may cause serious problems */ #define gaiaSetPoint(xy,v,x,y) \ {xy[(v) * 2] = x; \ xy[(v) * 2 + 1] = y;} /** macro extracting XYZ coordinates \param xyz pointer [const void *] to COORD mem-array \param v [int] point index [first point has index 0] \param x [double *] X coordinate \param y [double *] Y coordinate \param z [double *] Z coordinate \sa gaiaLineGetPoint, gaiaRingGetPoint \note using this macro on behalf of COORDs not of [XYZ] dims may cause serious problems */ #define gaiaGetPointXYZ(xyz,v,x,y,z) \ {*x = xyz[(v) * 3]; \ *y = xyz[(v) * 3 + 1]; \ *z = xyz[(v) * 3 + 2];} /** macro setting XYZ coordinates \param xyz pointer [const void *] to COORD mem-array \param v [int] point index [first point has index 0] \param x [double] X coordinate \param y [double] Y coordinate \param z [double] Z coordinate \sa gaiaLineSetPoint, gaiaRingSetPoint \note using this macro on behalf on COORDs not of [XYZ] dims may cause serious problems */ #define gaiaSetPointXYZ(xyz,v,x,y,z) \ {xyz[(v) * 3] = x; \ xyz[(v) * 3 + 1] = y; \ xyz[(v) * 3 + 2] = z;} /** macro extracting XYM coordinates \param xym pointer [const void *] to COORD mem-array \param v [int] point index [first point has index 0] \param x [double *] X coordinate \param y [double *] Y coordinate \param m [double *] M measure \sa gaiaLineGetPoint, gaiaRingGetPoint \note using this macro on behalf of COORDs not of [XYM] dims may cause serious problems */ #define gaiaGetPointXYM(xym,v,x,y,m) \ {*x = xym[(v) * 3]; \ *y = xym[(v) * 3 + 1]; \ *m = xym[(v) * 3 + 2];} /** macro setting XYM coordinates \param xym pointer [const void *] to COORD mem-array \param v [int] point index [first point has index 0] \param x [double] X coordinate \param y [double] Y coordinate \param m [double] M measure \sa gaiaLineSetPoint, gaiaRingSetPoint \note using this macro on behalf on COORDs not of [XYM] dims may cause serious problems */ #define gaiaSetPointXYM(xym,v,x,y,m) \ {xym[(v) * 3] = x; \ xym[(v) * 3 + 1] = y; \ xym[(v) * 3 + 2] = m;} /** macro extracting XYZM coordinates \param xyzm pointer [const void *] to COORD mem-array \param v [int] point index [first point has index 0] \param x [double *] X coordinate \param y [double *] Y coordinate \param z [double *] Z coordinate \param m [double *] M measure \sa gaiaLineGetPoint, gaiaRingGetPoint \note using this macro on behalf of COORDs not of [XYZM] dims may cause serious problems */ #define gaiaGetPointXYZM(xyzm,v,x,y,z,m) \ {*x = xyzm[(v) * 4]; \ *y = xyzm[(v) * 4 + 1]; \ *z = xyzm[(v) * 4 + 2]; \ *m = xyzm[(v) * 4 + 3];} /** macro setting XYZM coordinates \param xyzm pointer [const void *] to COORD mem-array \param v [int] point index [first point has index 0] \param x [double] X coordinate \param y [double] Y coordinate \param z [double] Z coordinate \param m [double] M measure \sa gaiaLineSetPoint, gaiaRingSetPoint \note using this macro on behalf on COORDs not of [XYZM] dims may cause serious problems */ #define gaiaSetPointXYZM(xyzm,v,x,y,z,m) \ {xyzm[(v) * 4] = x; \ xyzm[(v) * 4 + 1] = y; \ xyzm[(v) * 4 + 2] = z; \ xyzm[(v) * 4 + 3] = m;} #ifdef __cplusplus } #endif #endif /* _GG_CONST_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/gg_dxf.h������������������������������������������������0000664�0001750�0001750�00000070424�12544707704�017421� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_dxf.h -- Gaia common support for DXF files version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gg_dxf.h Geometry handling functions: DXF files */ #ifndef _GG_DXF_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_DXF_H #endif #ifdef __cplusplus extern "C" { #endif /* constant values for DXF */ /** import distinct layers */ #define GAIA_DXF_IMPORT_BY_LAYER 1 /** import layers mixed altogether by type */ #define GAIA_DXF_IMPORT_MIXED 2 /** auto-selects 2D or 3D */ #define GAIA_DXF_AUTO_2D_3D 3 /** always force 2D */ #define GAIA_DXF_FORCE_2D 4 /** always force 3D */ #define GAIA_DXF_FORCE_3D 5 /** don't apply any special Ring handling */ #define GAIA_DXF_RING_NONE 6 /** apply special "linked rings" handling */ #define GAIA_DXF_RING_LINKED 7 /** apply special "unlinked rings" handling */ #define GAIA_DXF_RING_UNLINKED 8 /** DXF version [Writer] */ #define GAIA_DXF_V12 1000 /* data structs */ /** wrapper for DXF Extra Attribute object */ typedef struct gaia_dxf_extra_attr { /** pointer to Extra Attribute Key value */ char *key; /** pointer to Extra Attribute Value string */ char *value; /** pointer to next item [linked list] */ struct gaia_dxf_extra_attr *next; } gaiaDxfExtraAttr; /** Typedef for DXF Extra Attribute object \sa gaiaDxfExtraAttr */ typedef gaiaDxfExtraAttr *gaiaDxfExtraAttrPtr; /** wrapper for DXF Insert object */ typedef struct gaia_dxf_insert { /** pointer to Block ID string */ char *block_id; /** X coordinate */ double x; /** Y coordinate */ double y; /** Z coordinate */ double z; /** X scale factor */ double scale_x; /** Y scale factor */ double scale_y; /** Z scale factor */ double scale_z; /** rotation angle */ double angle; /** boolean flag: contains Text objects */ int hasText; /** boolean flag: contains Point objects */ int hasPoint; /** boolean flag: contains Polyline (Linestring) objects */ int hasLine; /** boolean flag: contains Polyline (Polygon) objects */ int hasPolyg; /** boolean flag: contains Hatch objects */ int hasHatch; /** boolean flag: contains 3d Text objects */ int is3Dtext; /** boolean flag: contains 3d Point objects */ int is3Dpoint; /** boolean flag: contains 3d Polyline (Linestring) objects */ int is3Dline; /** boolean flag: contains 3d Polyline (Polygon) objects */ int is3Dpolyg; /** pointer to first Extra Attribute [linked list] */ gaiaDxfExtraAttrPtr first; /** pointer to last Extra Attribute [linked list] */ gaiaDxfExtraAttrPtr last; /** pointer to next item [linked list] */ struct gaia_dxf_insert *next; } gaiaDxfInsert; /** Typedef for DXF Insert object \sa gaiaDxfText */ typedef gaiaDxfInsert *gaiaDxfInsertPtr; /** wrapper for DXF Text object */ typedef struct gaia_dxf_text { /** pointer to Label string */ char *label; /** X coordinate */ double x; /** Y coordinate */ double y; /** Z coordinate */ double z; /** label rotation angle */ double angle; /** pointer to first Extra Attribute [linked list] */ gaiaDxfExtraAttrPtr first; /** pointer to last Extra Attribute [linked list] */ gaiaDxfExtraAttrPtr last; /** pointer to next item [linked list] */ struct gaia_dxf_text *next; } gaiaDxfText; /** Typedef for DXF Text object \sa gaiaDxfText */ typedef gaiaDxfText *gaiaDxfTextPtr; /** wrapper for DXF Point object */ typedef struct gaia_dxf_point { /** X coordinate */ double x; /** Y coordinate */ double y; /** Z coordinate */ double z; /** pointer to first Extra Attribute [linked list] */ gaiaDxfExtraAttrPtr first; /** pointer to last Extra Attribute [linked list] */ gaiaDxfExtraAttrPtr last; /** pointer to next item [linked list] */ struct gaia_dxf_point *next; } gaiaDxfPoint; /** Typedef for DXF Point object \sa gaiaDxfPoint */ typedef gaiaDxfPoint *gaiaDxfPointPtr; /** wrapper for DXF Circle object */ typedef struct gaia_dxf_circle { /** Center X coordinate */ double cx; /** Center Y coordinate */ double cy; /** Center Z coordinate */ double cz; /** radius */ double radius; } gaiaDxfCircle; /** Typedef for DXF Circle object \sa gaiaDxfCircle */ typedef gaiaDxfCircle *gaiaDxfCirclePtr; /** wrapper for DXF Arc object */ typedef struct gaia_dxf_arc { /** Center X coordinate */ double cx; /** Center Y coordinate */ double cy; /** Center Z coordinate */ double cz; /** radius */ double radius; /** start angle */ double start; /** stop angle */ double stop; } gaiaDxfArc; /** Typedef for DXF Arc object \sa gaiaDxfArc */ typedef gaiaDxfArc *gaiaDxfArcPtr; /** wrapper for DXF Polygon interior hole object */ typedef struct gaia_dxf_hole { /** total count of points */ int points; /** array of X coordinates */ double *x; /** array of Y coordinates */ double *y; /** array of Z coordinates */ double *z; /** pointer to next item [linked list] */ struct gaia_dxf_hole *next; } gaiaDxfHole; /** Typedef for DXF Point object \sa gaiaDxfHole */ typedef gaiaDxfHole *gaiaDxfHolePtr; /** wrapper for DXF Polyline object could be a Linestring or a Polygon depending on the is_closed flag */ typedef struct gaia_dxf_polyline { /** open (Linestring) or closed (Polygon exterior ring) */ int is_closed; /** total count of points */ int points; /** array of X coordinates */ double *x; /** array of Y coordinates */ double *y; /** array of Z coordinates */ double *z; /** pointer to first Polygon hole [linked list] */ gaiaDxfHolePtr first_hole; /** pointer to last Polygon hole [linked list] */ gaiaDxfHolePtr last_hole; /** pointer to first Extra Attribute [linked list] */ gaiaDxfExtraAttrPtr first; /** pointer to last Extra Attribute [linked list] */ gaiaDxfExtraAttrPtr last; /** pointer to next item [linked list] */ struct gaia_dxf_polyline *next; } gaiaDxfPolyline; /** Typedef for DXF Polyline object \sa gaiaDxfPolyline */ typedef gaiaDxfPolyline *gaiaDxfPolylinePtr; /** wrapper for DXF Pattern Segment object */ typedef struct gaia_dxf_hatch_segm { /** start X */ double x0; /** start Y */ double y0; /** end X */ double x1; /** end Y */ double y1; /** pointer to next item [linked list] */ struct gaia_dxf_hatch_segm *next; } gaiaDxfHatchSegm; /** Typedef for DXF Hatch Segment object \sa gaiaDxfHatch */ typedef gaiaDxfHatchSegm *gaiaDxfHatchSegmPtr; /** wrapper for DXF Boundary Path object */ typedef struct gaia_dxf_boundary_path { /** pointer to first segment */ gaiaDxfHatchSegmPtr first; /** pointer to last segment */ gaiaDxfHatchSegmPtr last; /** pointer to next item [linked list] */ struct gaia_dxf_boundary_path *next; } gaiaDxfBoundaryPath; /** Typedef for DXF Boundary Path object \sa gaiaDxfBoundaryPath */ typedef gaiaDxfBoundaryPath *gaiaDxfBoundaryPathPtr; /** wrapper for DXF Pattern Hatch object */ typedef struct gaia_dxf_hatch { /** hatch pattern spacing */ double spacing; /** hatch line angle */ double angle; /** hatch line base X */ double base_x; /** hatch line base Y */ double base_y; /** hatch line offset X */ double offset_x; /** hatch line offset Y */ double offset_y; /** pointer to first Boundary */ gaiaDxfBoundaryPathPtr first; /** pointer to last Boundary */ gaiaDxfBoundaryPathPtr last; /** pointer to Boundary geometry */ gaiaGeomCollPtr boundary; /** pointer to first Pattern segment */ gaiaDxfHatchSegmPtr first_out; /** pointer to last Pattern segment */ gaiaDxfHatchSegmPtr last_out; /** pointer to next item [linked list] */ struct gaia_dxf_hatch *next; } gaiaDxfHatch; /** Typedef for DXF Hatch object \sa gaiaDxfHatch */ typedef gaiaDxfHatch *gaiaDxfHatchPtr; /** wrapper for DXF Block object */ typedef struct gaia_dxf_block { /** Boolean flag: this block is referenced by some Insert */ int hasInsert; /** pointer to Layer Name string */ char *layer_name; /** pointer to Block ID string */ char *block_id; /** pointer to first DXF Text object [linked list] */ gaiaDxfTextPtr first_text; /** pointer to last DXF Text object [linked list] */ gaiaDxfTextPtr last_text; /** pointer to first DXF Point object [linked list] */ gaiaDxfPointPtr first_point; /** pointer to last DXF Point object [linked list] */ gaiaDxfPointPtr last_point; /** pointer to first DXF Polyline (Linestring) object [linked list] */ gaiaDxfPolylinePtr first_line; /** pointer to last DXF Polyline (Linestring) object [linked list] */ gaiaDxfPolylinePtr last_line; /** pointer to first DXF Polyline (Polygon) object [linked list] */ gaiaDxfPolylinePtr first_polyg; /** pointer to last DXF Polyline (Polygon) object [linked list] */ gaiaDxfPolylinePtr last_polyg; /** pointer to first DXF Hatch object [linked list] */ gaiaDxfHatchPtr first_hatch; /** pointer to last DXF Hatch object [linked list] */ gaiaDxfHatchPtr last_hatch; /** boolean flag: contains 3d Text objects */ int is3Dtext; /** boolean flag: contains 3d Point objects */ int is3Dpoint; /** boolean flag: contains 3d Polyline (Linestring) objects */ int is3Dline; /** boolean flag: contains 3d Polyline (Polygon) objects */ int is3Dpolyg; /** pointer to next item [linked list] */ struct gaia_dxf_block *next; } gaiaDxfBlock; /** Typedef for DXF Block object \sa gaiaDxfBlock */ typedef gaiaDxfBlock *gaiaDxfBlockPtr; /** wrapper for DXF Layer object */ typedef struct gaia_dxf_layer { /** pointer to Layer Name string */ char *layer_name; /** pointer to first DXF Text object [linked list] */ gaiaDxfTextPtr first_text; /** pointer to last DXF Text object [linked list] */ gaiaDxfTextPtr last_text; /** pointer to first DXF Point object [linked list] */ gaiaDxfPointPtr first_point; /** pointer to lasst DXF Point object [linked list] */ gaiaDxfPointPtr last_point; /** pointer to first DXF Polyline (Linestring) object [linked list] */ gaiaDxfPolylinePtr first_line; /** pointer to last DXF Polyline (Linestring) object [linked list] */ gaiaDxfPolylinePtr last_line; /** pointer to first DXF Polyline (Polygon) object [linked list] */ gaiaDxfPolylinePtr first_polyg; /** pointer to last DXF Polyline (Polygon) object [linked list] */ gaiaDxfPolylinePtr last_polyg; /** pointer to first DXF Hatch object [linked list] */ gaiaDxfHatchPtr first_hatch; /** pointer to last DXF Hatch object [linked list] */ gaiaDxfHatchPtr last_hatch; /** pointer to first DXF Insert Text object [linked list] */ gaiaDxfInsertPtr first_ins_text; /** pointer to last DXF Insert Text object [linked list] */ gaiaDxfInsertPtr last_ins_text; /** pointer to first DXF Insert Point object [linked list] */ gaiaDxfInsertPtr first_ins_point; /** pointer to last DXF Insert Point object [linked list] */ gaiaDxfInsertPtr last_ins_point; /** pointer to first DXF Insert Polyline (Linestring) object [linked list] */ gaiaDxfInsertPtr first_ins_line; /** pointer to last DXF Insert Polyline (Linestring) object [linked list] */ gaiaDxfInsertPtr last_ins_line; /** pointer to first DXF Insert Polyline (Polygon) object [linked list] */ gaiaDxfInsertPtr first_ins_polyg; /** pointer to last DXF Insert Polyline (Polygon) object [linked list] */ gaiaDxfInsertPtr last_ins_polyg; /** pointer to first DXF Insert Hatch object [linked list] */ gaiaDxfInsertPtr first_ins_hatch; /** pointer to last DXF Insert Hatch object [linked list] */ gaiaDxfInsertPtr last_ins_hatch; /** boolean flag: contains 3d Text objects */ int is3Dtext; /** boolean flag: contains 3d Point objects */ int is3Dpoint; /** boolean flag: contains 3d Polyline (Linestring) objects */ int is3Dline; /** boolean flag: contains 3d Polyline (Polygon) objects */ int is3Dpolyg; /** boolean flag: contains 3d Insert Text objects */ int is3DinsText; /** boolean flag: contains 3d Insert Point objects */ int is3DinsPoint; /** boolean flag: contains 3d Insert Polyline (Linestring) objects */ int is3DinsLine; /** boolean flag: contains 3d Insert Polyline (Polygon) objects */ int is3DinsPolyg; /** boolean flag: contains Text Extra Attributes */ int hasExtraText; /** boolean flag: contains Point Extra Attributes */ int hasExtraPoint; /** boolean flag: contains Polyline (Linestring) Extra Attributes */ int hasExtraLine; /** boolean flag: contains Polyline (Polygon) Extra Attributes */ int hasExtraPolyg; /** boolean flag: contains Insert Text Extra Attributes */ int hasExtraInsText; /** boolean flag: contains Insert Text Extra Attributes */ int hasExtraInsPoint; /** boolean flag: contains Insert Polyline (Linestring) Extra Attributes */ int hasExtraInsLine; /** boolean flag: contains Insert Polyline (Polygon) Extra Attributes */ int hasExtraInsPolyg; /** pointer to next item [linked list] */ struct gaia_dxf_layer *next; } gaiaDxfLayer; /** Typedef for DXF Layer object \sa gaiaDxfLayer */ typedef gaiaDxfLayer *gaiaDxfLayerPtr; /** wrapper for DXF Parser object */ typedef struct gaia_dxf_parser { /** OUT: origin/input filename */ char *filename; /** OUT: pointer to first DXF Layer object [linked list] */ gaiaDxfLayerPtr first_layer; /** OUT: pointer to last DXF Layer object [linked list] */ gaiaDxfLayerPtr last_layer; /** OUT: pointer to first DXF Block object [linked list] */ gaiaDxfBlockPtr first_block; /** OUT: pointer to last DXF Block object [linked list] */ gaiaDxfBlockPtr last_block; /** IN: parser option - dimension handlig */ int force_dims; /** IN: parser option - the SRID */ int srid; /** IN: parser option - pointer the single Layer Name string */ const char *selected_layer; /** IN: parser option - pointer to prefix string for DB tables */ const char *prefix; /** IN: parser option - linked rings special handling */ int linked_rings; /** IN: parser option - unlinked rings special handling */ int unlinked_rings; /** internal parser variable */ int line_no; /** internal parser variable */ int op_code_line; /** internal parser variable */ int op_code; /** internal parser variable */ int section; /** internal parser variable */ int tables; /** internal parser variable */ int blocks; /** internal parser variable */ int entities; /** internal parser variable */ int is_layer; /** internal parser variable */ int is_block; /** internal parser variable */ int is_text; /** internal parser variable */ int is_point; /** internal parser variable */ int is_polyline; /** internal parser variable */ int is_lwpolyline; /** internal parser variable */ int is_line; /** internal parser variable */ int is_circle; /** internal parser variable */ int is_arc; /** internal parser variable */ int is_vertex; /** internal parser variable */ int is_hatch; /** internal parser variable */ int is_hatch_boundary; /** internal parser variable */ int is_insert; /** internal parser variable */ int eof; /** internal parser variable */ int error; /** internal parser variable */ char *curr_layer_name; /** internal parser variable */ gaiaDxfText curr_text; /** internal parser variable */ gaiaDxfInsert curr_insert; /** internal parser variable */ gaiaDxfBlock curr_block; /** internal parser variable */ gaiaDxfPoint curr_point; /** internal parser variable */ gaiaDxfPoint curr_end_point; /** internal parser variable */ gaiaDxfCircle curr_circle; /** internal parser variable */ gaiaDxfArc curr_arc; /** internal parser variable */ int is_closed_polyline; /** internal parser variable */ gaiaDxfPointPtr first_pt; /** internal parser variable */ gaiaDxfPointPtr last_pt; /** internal parser variable */ char *extra_key; /** internal parser variable */ char *extra_value; /** internal parser variable */ gaiaDxfExtraAttrPtr first_ext; /** internal parser variable */ gaiaDxfExtraAttrPtr last_ext; /** internal parser variable */ gaiaDxfHatchPtr curr_hatch; /** internal parser variable */ int undeclared_layers; } gaiaDxfParser; /** Typedef for DXF Layer object \sa gaiaDxfParser */ typedef gaiaDxfParser *gaiaDxfParserPtr; /** wrapper for DXF Write object */ typedef struct gaia_dxf_write { /** IN: output DXF file handle */ FILE *out; /** IN: coord's precision (number of decimal digits) */ int precision; /** IN: DXF version number */ int version; /** OUT: count of exported geometries */ int count; /** OUT: error flag */ int error; } gaiaDxfWriter; /** Typedef for DXF Writer object */ typedef gaiaDxfWriter *gaiaDxfWriterPtr; /* function prototypes */ /** Creates a DXF Parser object \param srid the SRID value to be used for all Geometries \param force_dims should be one of GAIA_DXF_AUTO_2D_3D, GAIA_DXF_FORCE_2D or GAIA_DXF_FORCE_3D \param prefix an optional prefix to be used for DB target tables (could be NULL) \param selected_layers if set, only the DXF Layer of corresponding name will be imported (could be NULL) \param special_rings rings handling: should be one of GAIA_DXF_RING_NONE, GAIA_DXF_RING_LINKED of GAIA_DXF_RING_UNLINKED \return the pointer to a DXF Parser object \sa gaiaDestroyDxfParser, gaiaParseDxfFile, gaiaLoadFromDxfParser \note the DXF Parser object corresponds to dynamically allocated memory: so you are responsible to destroy this object before or later by invoking gaiaDestroyDxfParser(). */ GAIAGEO_DECLARE gaiaDxfParserPtr gaiaCreateDxfParser (int srid, int force_dims, const char *prefix, const char *selected_layer, int special_rings); /** Destroying a DXF Parser object \param parser pointer to DXF Parser object \sa gaiaCreateDxfParser \note the pointer to the DXF Parser object to be finalized is expected to be the one returned by a previous call to gaiaCreateDxfParser. */ GAIAGEO_DECLARE void gaiaDestroyDxfParser (gaiaDxfParserPtr parser); /** Parsing a DXF file \param parser pointer to DXF Parser object \param dxf_path pathname of the DXF external file to be parsed \return 0 on failure, any other value on success \sa gaiaParseDxfFile_r, gaiaCreateDxfParser, gaiaDestroyDxfParser, gaiaLoadFromDxfParser \note the pointer to the DXF Parser object is expected to be the one returned by a previous call to gaiaCreateDxfParser. A DXF Parser object can be used only a single time to parse a DXF file.\n not reentrant and thread unsafe. */ GAIAGEO_DECLARE int gaiaParseDxfFile (gaiaDxfParserPtr parser, const char *dxf_path); /** Parsing a DXF file \param p_cache a memory pointer returned by spatialite_alloc_connection() \param parser pointer to DXF Parser object \param dxf_path pathname of the DXF external file to be parsed \return 0 on failure, any other value on success \sa gaiaParseDxfFile, gaiaCreateDxfParser, gaiaDestroyDxfParser, gaiaLoadFromDxfParser \note the pointer to the DXF Parser object is expected to be the one returned by a previous call to gaiaCreateDxfParser. A DXF Parser object can be used only a single time to parse a DXF file.\n reentrant and thread-safe. */ GAIAGEO_DECLARE int gaiaParseDxfFile_r (const void *p_cache, gaiaDxfParserPtr parser, const char *dxf_path); /** Populating a DB so to permanently store all Geometries from a DXF Parser \param db_handle handle to a valid DB connection \param parser pointer to DXF Parser object \param mode should be one of GAIA_DXF_IMPORT_BY_LAYER or GAIA_DXF_IMPORT_MIXED \param append boolean flag: if set and some required DB table already exists will attempt to append further rows into the existing table. otherwise an error will be returned. \return 0 on failure, any other value on success \sa gaiaCreateDxfParser, gaiaDestroyDxfParser, gaiaParseDxfFile \note the pointer to the DXF Parser object is expected to be the one returned by a previous call to gaiaCreateDxfParser and previously used for a succesfull call to gaiaParseDxfFile */ GAIAGEO_DECLARE int gaiaLoadFromDxfParser (sqlite3 * db_handle, gaiaDxfParserPtr parser, int mode, int append); /** Initializing a DXF Writer Object \param writer pointer to the gaiaDxfWriter object to be initialized \param out file handle to DXF output file \param precision number of decimal digits for any coordinate \param version currently always expected to be GAIA_DXF_V12 \return 0 on failure, any other value on success \sa gaiaDxfWriteHeader, gaiaExportDxf */ GAIAGEO_DECLARE int gaiaDxfWriterInit (gaiaDxfWriterPtr dxf, FILE * out, int precision, int version); /** Writing the DXF Header \param dxf pointer to a properly initialized gaiaDxfWriter object \param minx the minimum X coordinate contained within the DXF \param minx the minimum Y coordinate contained within the DXF \param minx the minimum Z coordinate contained within the DXF \param minx the maximum X coordinate contained within the DXF \param minx the maximum Y coordinate contained within the DXF \param minx the maximum Z coordinate contained within the DXF \return 0 on failure, any other value on success \sa gaiaDxfWriterInit, gaiaDxfWriteFooter, gaiaDxfWriteTables, gaiaDxfWriteEntities */ GAIAGEO_DECLARE int gaiaDxfWriteHeader (gaiaDxfWriterPtr dxf, double minx, double miny, double minz, double maxx, double maxy, double maxz); /** Writing a DXF Entities Section Header \param dxf pointer to a properly initialized gaiaDxfWriter object \return 0 on failure, any other value on success \sa gaiaDxfWriteHeader */ GAIAGEO_DECLARE int gaiaDxfWriteFooter (gaiaDxfWriterPtr dxf); /** Writing the DXF Tables Section Header \param dxf pointer to a properly initialized gaiaDxfWriter object \return 0 on failure, any other value on success \sa gaiaDxfWriteHeader, gaiaDxfWriteEndSection */ GAIAGEO_DECLARE int gaiaDxfWriteTables (gaiaDxfWriterPtr dxf); /** Writing a DXF Table/Layer definition \param dxf pointer to a properly initialized gaiaDxfWriter object \param layer_name name of the layer \return 0 on failure, any other value on success \sa gaiaDxfWriteTables, gaiaDxfWriteEndSection */ GAIAGEO_DECLARE int gaiaDxfWriteLayer (gaiaDxfWriterPtr dxf, const char *layer_name); /** Writing a DXF Entities Section Header \param dxf pointer to a properly initialized gaiaDxfWriter object \return 0 on failure, any other value on success \sa gaiaDxfWriteHeader, gaiaDxfWriteEndSection, gaiaDxfWritePoint, gaiaDxfWriteText, gaiaDxfWriteLine, gaiaDxfWriteRing, gaiaDxfWriteGeometry */ GAIAGEO_DECLARE int gaiaDxfWriteEntities (gaiaDxfWriterPtr dxf); /** Writing a DXF Entities Section Header \param dxf pointer to a properly initialized gaiaDxfWriter object \return 0 on failure, any other value on success \sa gaiaDxfWriteTables, gaiaDxfWriteEntities */ GAIAGEO_DECLARE int gaiaDxfWriteEndSection (gaiaDxfWriterPtr dxf); /** Writing a DXF Point Entity \param dxf pointer to a properly initialized gaiaDxfWriter object \param layer_name name of the corresponding layer \param x X coordinate value \param y Y coordinate value \param z Z coordinate value \return 0 on failure, any other value on success \sa gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWriteText, gaiaDxfWriteLine, gaiaDxfWriteRing, gaiaDxfWriteGeometry */ GAIAGEO_DECLARE int gaiaDxfWritePoint (gaiaDxfWriterPtr dxf, const char *layer_name, double x, double y, double z); /** Writing a DXF Text Entity \param dxf pointer to a properly initialized gaiaDxfWriter object \param layer_name name of the corresponding layer \param x X coordinate value \param y Y coordinate value \param z Z coordinate value \param label text string containing the label value \param text_height height of the text in map units \param angle text rotation angle \return 0 on failure, any other value on success \sa gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWritePoint, gaiaDxfWriteLine, gaiaDxfWriteRing, gaiaDxfWriteGeometry */ GAIAGEO_DECLARE int gaiaDxfWriteText (gaiaDxfWriterPtr dxf, const char *layer_name, double x, double y, double z, const char *label, double text_height, double angle); /** Writing a DXF Polyline (opened) Entity \param dxf pointer to a properly initialized gaiaDxfWriter object \param layer_name name of the corresponding layer \param line pointer to the internal Linestring to be exported into the DXF \return 0 on failure, any other value on success \sa gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWritePoint, gaiaDxfWriteText, gaiaDxfWriteRing, gaiaDxfWriteGeometry */ GAIAGEO_DECLARE int gaiaDxfWriteLine (gaiaDxfWriterPtr dxf, const char *layer_name, gaiaLinestringPtr line); /** Writing a DXF Polyline (closed) Entity \param dxf pointer to a properly initialized gaiaDxfWriter object \param layer_name name of the corresponding layer \param line pointer to the internal Ring to be exported into the DXF \return 0 on failure, any other value on success \sa gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWritePoint, gaiaDxfWriteText, gaiaDxfWriteLine, gaiaDxfWriteGeometry */ GAIAGEO_DECLARE int gaiaDxfWriteRing (gaiaDxfWriterPtr dxf, const char *layer_name, gaiaRingPtr ring); /** Writing a DXF generic Entity \param dxf pointer to a properly initialized gaiaDxfWriter object \param layer_name name of the corresponding layer \param line pointer to the internal Ring to be exported into the DXF \param label text string containing the label value (could be NULL) \param text_height only for Text Labels: ingnored in any other case. \param text_rotation only for Text Labels: ingnored in any other case. \return 0 on failure, any other value on success \sa gaiaDxfWriteEntities, gaiaDxfWriteEndSection, gaiaDxfWritePoint, gaiaDxfWriteText, gaiaDxfWriteLine, gaiaDxfWriteRing */ GAIAGEO_DECLARE int gaiaDxfWriteGeometry (gaiaDxfWriterPtr dxf, const char *layer_name, const char *label, double text_height, double text_rotation, gaiaGeomCollPtr geometry); /** Exporting a complex DXF file \param dxf pointer to a properly initialized gaiaDxfWriter object \param db_hanlde handle to the current DB connection \param sql a text string defining the SQL query to be used for extracting all geometries/entities to be exported into the output DXF \param layer_col_name name of the SQL resultset column containing the Layer name \param geom_col_name name of the SQL resultset column containing Geometries \param label_col_name name of the SQL resultset column containing Label values (could be NULL) \param text_height_col_name name of the SQL resultset column containing Text Height values (could be NULL) \param text_rotation_col_name name of the SQL resultset column containing Text Rotation values (could be NULL) \param geom_filter an optional arbitrary Geometry to be used as a Spatial Filter (could be NULL) \return 0 on failure; the total count of exported entities on success \sa gaiaDxfWriterInit */ GAIAGEO_DECLARE int gaiaExportDxf (gaiaDxfWriterPtr dxf, sqlite3 * db_handle, const char *sql, const char *layer_col_name, const char *geom_col_name, const char *label_col_name, const char *text_height_col_name, const char *text_rotation_col_name, gaiaGeomCollPtr geom_filter); #ifdef __cplusplus } #endif #endif /* _GG_DXF_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/gg_advanced.h�������������������������������������������0000664�0001750�0001750�00000352067�12544707704�020413� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_advanced.h -- Gaia common support for geometries: advanced version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: this module has been partly funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale (wrapping liblwgeom APIs) */ /** \file gg_advanced.h Geometry handling functions: advanced */ #ifndef _GG_ADVANCED_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_ADVANCED_H #endif /** Gaia-to-GEOS: all geometries */ #define GAIA2GEOS_ALL 0 /** Gaia-to-GEOS: only geometries of the Point type */ #define GAIA2GEOS_ONLY_POINTS 1 /** Gaia-to-GEOS: only geometries of the Linestring type */ #define GAIA2GEOS_ONLY_LINESTRINGS 2 /** Gaia-to-GEOS: only geometries of the Polygon type */ #define GAIA2GEOS_ONLY_POLYGONS 3 #ifdef __cplusplus extern "C" { #endif #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifndef OMIT_PROJ /* including PROJ.4 */ #endif /** Converts and angle from Radians into Degrees \param rads the angle measured in Radians. \return the angle measured in Degrees. \sa gaiaDegsToRads \remark \b PROJ.4 support required */ GAIAGEO_DECLARE double gaiaRadsToDegs (double rads); /** Converts and angle from Degrees into Radians \param degs the angle measured in Degrees. \return the angle measured in Radians. \sa gaiaRadsToDegs \remark \b PROJ.4 support required */ GAIAGEO_DECLARE double gaiaDegsToRads (double degs); /** Tansforms a Geometry object into a different Reference System [aka Reprojection] \param org pointer to input Geometry object. \param proj_from geodetic parameters string [EPSG format] qualifying the input Reference System \param proj_to geodetic parameters string [EPSG format] qualifying the output Reference System \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaTransform_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeometryTransform()\n not reentrant and thread unsafe. \remark \b PROJ.4 support required */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform (gaiaGeomCollPtr org, char *proj_from, char *proj_to); /** Tansforms a Geometry object into a different Reference System [aka Reprojection] \param p_cache a memory pointer returned by spatialite_alloc_connection() \param org pointer to input Geometry object. \param proj_from geodetic parameters string [EPSG format] qualifying the input Reference System \param proj_to geodetic parameters string [EPSG format] qualifying the output Reference System \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaTransform, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeometryTransform()\n reentrant and thread-safe. \remark \b PROJ.4 support required */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform_r (const void *p_cache, gaiaGeomCollPtr org, char *proj_from, char *proj_to); #endif /* end including PROJ.4 */ #ifndef OMIT_GEOS /* including GEOS */ /** Resets the GEOS error and warning messages to an empty state \sa gaiaResetGeosMsg_r, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaGeosAuxErrorMsg, gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE void gaiaResetGeosMsg (void); /** Resets the GEOS error and warning messages to an empty state \param p_cache a memory pointer returned by spatialite_alloc_connection() \sa gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaGeosAuxErrorMsg, gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE void gaiaResetGeosMsg_r (const void *p_cache); /** Return the latest GEOS error message (if any) \return the latest GEOS error message: an empty string if no error was previoysly found. \sa gaiaGetGeosErrorMsg_r, gaiaResetGeosMsg, gaiaGetGeosWarningMsg, gaiaGetGeosAuxErrorMsg, gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg, gaiaCriticalPointFromGEOSmsg \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE const char *gaiaGetGeosErrorMsg (void); /** Return the latest GEOS error message (if any) \param p_cache a memory pointer returned by spatialite_alloc_connection() \return the latest GEOS error message: an empty string if no error was previoysly found. \sa gaiaGetGeosErrorMsg, gaiaResetGeosMsg, gaiaGetGeosWarningMsg, gaiaGetGeosAuxErrorMsg, gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg, gaiaCriticalPointFromGEOSmsg \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE const char *gaiaGetGeosErrorMsg_r (const void *p_cache); /** Return the latest GEOS warning message (if any) \return the latest GEOS warning message: an empty string if no warning was previoysly found. \sa gaiaGetGeosWarningMsg_r, gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosAuxErrorMsg, gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg, gaiaCriticalPointFromGEOSmsg \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE const char *gaiaGetGeosWarningMsg (void); /** Return the latest GEOS warning message (if any) \param p_cache a memory pointer returned by spatialite_alloc_connection() \return the latest GEOS warning message: an empty string if no warning was previoysly found. \sa gaiaGetGeosWarningMsg, gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosAuxErrorMsg, gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg, gaiaCriticalPointFromGEOSmsg \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE const char *gaiaGetGeosWarningMsg_r (const void *p_cache); /** Return the latest GEOS (auxiliary) error message (if any) \return the latest GEOS (auxiliary) error message: an empty string if no error was previoysly found. \sa gaiaGetGeosAuxErrorMsg_r, gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE const char *gaiaGetGeosAuxErrorMsg (void); /** Return the latest GEOS (auxiliary) error message (if any) \param p_cache a memory pointer returned by spatialite_alloc_connection() \return the latest GEOS (auxiliary) error message: an empty string if no error was previoysly found. \sa gaiaGetGeosAuxErrorMsg, gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE const char *gaiaGetGeosAuxErrorMsg_r (const void *p_cache); /** Attempts to (possibile) return a Point Geometry extracted from the latest GEOS error / warning message \return a Point Geometry: NULL if no warning/error was previoysly found or if the current GEOS message doesn't contains a critical Point. \sa gaiaCriticalPointFromGEOSmsg_r, gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg (void); /** Attempts to (possibile) return a Point Geometry extracted from the latest GEOS error / warning message \param p_cache a memory pointer returned by spatialite_alloc_connection() \return a Point Geometry: NULL if no warning/error was previoysly found or if the current GEOS message doesn't contains a critical Point. \sa gaiaCriticalPointFromGEOSmsg_r, gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaSetGeosErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg_r (const void *p_cache); /** Set the current GEOS error message \param msg the error message to be set. \sa gaiaSetGeosErrorMsg_r, gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaGetGeosAuxErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE void gaiaSetGeosErrorMsg (const char *msg); /** Set the current GEOS error message \param p_cache a memory pointer returned by spatialite_alloc_connection() \param msg the error message to be set. \sa gaiaSetGeosErrorMsg, gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaGetGeosAuxErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosAuxErrorMsg \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE void gaiaSetGeosErrorMsg_r (const void *p_cache, const char *msg); /** Set the current GEOS warning message \param msg the warning message to be set. \sa gaiaSetGeosWarningMsg_r, gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaGetGeosAuxErrorMsg, gaiaSetGeosErrorMsg, gaiaSetGeosAuxErrorMsg \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE void gaiaSetGeosWarningMsg (const char *msg); /** Set the current GEOS warning message \param p_cache a memory pointer returned by spatialite_alloc_connection() \param msg the warning message to be set. \sa gaiaSetGeosWarningMsg, gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaGetGeosAuxErrorMsg, gaiaSetGeosErrorMsg, gaiaSetGeosAuxErrorMsg \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE void gaiaSetGeosWarningMsg_r (const void *p_cache, const char *msg); /** Set the current GEOS (auxiliary) error message \param msg the error message to be set. \sa gaiaSetAuxErrorMsg_r, gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaGetGeosAuxErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosErrorMsg \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg (const char *msg); /** Set the current GEOS (auxiliary) error message \param p_cache a memory pointer returned by spatialite_alloc_connection() \param msg the error message to be set. \sa gaiaSetAuxErrorMsg, gaiaResetGeosMsg, gaiaGetGeosErrorMsg, gaiaGetGeosWarningMsg, gaiaGetGeosAuxErrorMsg, gaiaSetGeosWarningMsg, gaiaSetGeosErrorMsg \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg_r (const void *p_cache, const char *msg); /** Converts a Geometry object into a GEOS Geometry \param gaia pointer to Geometry object \return handle to GEOS Geometry \sa gaiaToGeos_r, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM, gaiaToGeosSelective \note convenience method, simply defaulting to gaiaToGeosSelective(geom, GAIA2GEOS_ALL)\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE void *gaiaToGeos (const gaiaGeomCollPtr gaia); /** Converts a Geometry object into a GEOS Geometry \param p_cache a memory pointer returned by spatialite_alloc_connection() \param gaia pointer to Geometry object \return handle to GEOS Geometry \sa gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM, gaiaToGeosSelective_r \note convenience method, simply defaulting to gaiaToGeosSelective_r(p_cache, geom, GAIA2GEOS_ALL)\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE void *gaiaToGeos_r (const void *p_cache, const gaiaGeomCollPtr gaia); /** Converts a Geometry object into a GEOS Geometry \param gaia pointer to Geometry object \param mode one of GAIA2GEOS_ALL, GAIA2GEOS_ONLY_POINTS, GAIA2GEOS_ONLY_LINESTRINGS or GAIA2GEOS_ONLY_POLYGONS \return handle to GEOS Geometry \sa gaiaToGeosSelective_r, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM \note if the mode argument is not GAIA2GEOS_ALL only elementary geometries of the selected type will be passed to GEOS, ignoring any other.\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE void *gaiaToGeosSelective (const gaiaGeomCollPtr gaia, int mode); /** Converts a Geometry object into a GEOS Geometry \param p_cache a memory pointer returned by spatialite_alloc_connection() \param gaia pointer to Geometry object \param mode one of GAIA2GEOS_ALL, GAIA2GEOS_ONLY_POINTS, GAIA2GEOS_ONLY_LINESTRINGS or GAIA2GEOS_ONLY_POLYGONS \return handle to GEOS Geometry \sa gaiaToGeosSelective, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM \note if the mode argument is not GAIA2GEOS_ALL only elementary geometries of the selected type will be passed to GEOS, ignoring any other.\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE void *gaiaToGeosSelective_r (const void *p_cache, const gaiaGeomCollPtr gaia, int mode); /** Converts a GEOS Geometry into a Geometry object [XY dims] \param geos handle to GEOS Geometry \return the pointer to the newly created Geometry object \sa gaiaFromGeos_XY_r, gaiaToGeos, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaFromGeos_XY()\n not reentrant and thread usafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY (const void *geos); /** Converts a GEOS Geometry into a Geometry object [XY dims] \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geos handle to GEOS Geometry \return the pointer to the newly created Geometry object \sa gaiaFromGeos_XY, gaiaToGeos, gaiaFromGeos_XYZ, gaiaFromGeos_XYM, gaiaFromGeos_XYZM \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaFromGeos_XY_r()\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY_r (const void *p_cache, const void *geos); /** Converts a GEOS Geometry into a Geometry object [XYZ dims] \param geos handle to GEOS Geometry \return the pointer to the newly created Geometry object \sa gaiaFromGeos_XYZ_r, gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYM, gaiaFromGeos_XYZM \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaFromGeos_XYZ()\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ (const void *geos); /** Converts a GEOS Geometry into a Geometry object [XYZ dims] \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geos handle to GEOS Geometry \return the pointer to the newly created Geometry object \sa gaiaFromGeos_XYZ, gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYM, gaiaFromGeos_XYZM \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaFromGeos_XYZ_r()\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ_r (const void *p_cache, const void *geos); /** Converts a GEOS Geometry into a Geometry object [XYM dims] \param geos handle to GEOS Geometry \return the pointer to the newly created Geometry object \sa gaiaFromGeos_XYM_r, gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYZM \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaFromGeos_XYM()\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM (const void *geos); /** Converts a GEOS Geometry into a Geometry object [XYM dims] \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geos handle to GEOS Geometry \return the pointer to the newly created Geometry object \sa gaiaFromGeos_XYM, gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYZM \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaFromGeos_XYM_r()\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM_r (const void *p_cache, const void *geos); /** Converts a GEOS Geometry into a Geometry object [XYZM dims] \param geos handle to GEOS Geometry \return the pointer to the newly created Geometry object \sa gaiaFromGeos_XYZM_r, gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaFromGeos_XYZM()\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM (const void *geos); /** Converts a GEOS Geometry into a Geometry object [XYZM dims] \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geos handle to GEOS Geometry \return the pointer to the newly created Geometry object \sa gaiaFromGeos_XYZM, gaiaToGeos, gaiaFromGeos_XY, gaiaFromGeos_XYZ, gaiaFromGeos_XYM \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaFromGeos_XYZM_r()\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM_r (const void *p_cache, const void *geos); /** Checks if a Geometry object represents an OGC Simple Geometry \param geom pointer to Geometry object. \return 0 if false; any other value if true \sa gaiaIsSimple_r, gaiaIsClosed, gaiaIsRing, gaiaIsValid \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaIsSimple (gaiaGeomCollPtr geom); /** Checks if a Geometry object represents an OGC Simple Geometry \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom pointer to Geometry object. \return 0 if false; any other value if true \sa gaiaIsSimple, gaiaIsClosed, gaiaIsRing, gaiaIsValid \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaIsSimple_r (const void *p_cache, gaiaGeomCollPtr geom); /** Checks if a Linestring object represents an OGC Closed Geometry This function only works on a single linestring - if you pass in a multi-line linestring geometry, it will return 0 (false). See gaiaIsClosedGeom for an alternative. \param line pointer to Linestring object. \return 0 if false; any other value if true \sa gaiaIsSimple, gaiaIsRing, gaiaIsValid, gaiaIsClosedGeom \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaIsClosed (gaiaLinestringPtr line); /** Checks if a Geometry object represents an OGC Closed Linestring \param geom pointer to Geometry object. \return 0 if false; any other value if true \sa gaiaIsClosedGeom_r, gaiaIsSimple, gaiaIsRing, gaiaIsValid, gaiaIsClosed \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaIsClosedGeom (gaiaGeomCollPtr geom); /** Checks if a Geometry object represents an OGC Closed Linestring \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom pointer to Geometry object. \return 0 if false; any other value if true \sa gaiaIsClosedGeom, gaiaIsSimple, gaiaIsRing, gaiaIsValid, gaiaIsClosed \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaIsClosedGeom_r (const void *p_cache, gaiaGeomCollPtr geom); /** Checks if a Linestring object represents an OGC Ring Geometry \param line pointer to Geometry object. \return 0 if false; any other value if true \sa gaiaIsRing_r, gaiaIsSimple, gaiaIsClosed, gaiaIsValid \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaIsRing (gaiaLinestringPtr line); /** Checks if a Linestring object represents an OGC Ring Geometry \param p_cache a memory pointer returned by spatialite_alloc_connection() \param line pointer to Geometry object. \return 0 if false; any other value if true \sa gaiaIsRing, gaiaIsSimple, gaiaIsClosed, gaiaIsValid \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaIsRing_r (const void *p_cache, gaiaLinestringPtr line); /** Checks if a Geometry object represents an OGC Valid Geometry \param geom pointer to Geometry object. \return 0 if false; any other value if true \sa gaiaIsValid_r, gaiaIsSimple, gaiaIsClosed, gaiaIsRing, gaiaIsValidReason \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaIsValid (gaiaGeomCollPtr geom); /** return a TEXT string stating if a Geometry is valid and if not valid, a reason why * \param geom pointer to the Geometry object to be validated. \return a text string. \sa gaiaIsValid, gaiaIsValidReason_r, gaiaIsValidDetail \note you are responsible to free() the returned text string\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE char *gaiaIsValidReason (gaiaGeomCollPtr geom); /** return a TEXT string stating if a Geometry is valid and if not valid, a reason why \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom pointer to the Geometry object to be validated. \return a text string. \sa gaiaIsValid_r, gaiaIsValidReason, gaiaIsValidDetail_r \note you are responsible to free() the returned text string\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE char *gaiaIsValidReason_r (const void *p_cache, gaiaGeomCollPtr geom); /** return a Geometry detail causing a Geometry to be invalid * \param geom pointer to the Geometry object to be validated. \return pointer to a Geometry object causing invalidity, or NULL. \sa gaiaIsValid, gaiaIsValidReason, gaiaIsValidDetail_r \note you are responsible to destroy the returned Geometry\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail (gaiaGeomCollPtr geom); /** return a Geometry detail causing a Geometry to be invalid \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom pointer to the Geometry object to be validated. \return pointer to a Geometry object causing invalidity, or NULL. \sa gaiaIsValid_r, gaiaIsValidReason_r, gaiaIsValidDetail \note you are responsible to destroy the returned Geometry\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail_r (const void *p_cache, gaiaGeomCollPtr geom); /** Checks if a Geometry object represents an OGC Valid Geometry \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom pointer to Geometry object. \return 0 if false; any other value if true \sa gaiaIsValid, gaiaIsSimple, gaiaIsClosed, gaiaIsRing, gaiaIsValidReason_r \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaIsValid_r (const void *p_cache, gaiaGeomCollPtr geom); /** Measures the total Length for a Geometry object \param geom pointer to Geometry object \param length on completion this variable will contain the measured length \return 0 on failure: any other value on success \sa gaiaGeomCollLenght_r, gaiaGeomCollArea, gaiaMeasureLength, gaiaGeomCollLengthOrPerimeter \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollLength (gaiaGeomCollPtr geom, double *length); /** Measures the total Length for a Geometry object \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom pointer to Geometry object \param length on completion this variable will contain the measured length \return 0 on failure: any other value on success \sa gaiaGeomCollLenght, gaiaGeomCollArea, gaiaMeasureLength, gaiaGeomCollLengthOrPerimeter \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollLength_r (const void *p_cache, gaiaGeomCollPtr geom, double *length); /** Measures the total Length or Perimeter for a Geometry object \param geom pointer to Geometry object \param perimeter if TRUE only Polygons will be considered, ignoring any Linesting \n the opposite if FALSE (considering only Linestrings and ignoring any Polygon) \param length on completion this variable will contain the measured length or perimeter \return 0 on failure: any other value on success \sa gaiaGeomCollLengthOrPerimeter_r, gaiaGeomCollArea, gaiaMeasureLength, gaiaGeomCollLength \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter (gaiaGeomCollPtr geom, int perimeter, double *length); /** Measures the total Length or Perimeter for a Geometry object \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom pointer to Geometry object \param perimeter if TRUE only Polygons will be considered, ignoring any Linesting \n the opposite if FALSE (considering only Linestrings and ignoring any Polygon) \param length on completion this variable will contain the measured length or perimeter \return 0 on failure: any other value on success \sa gaiaGeomCollLengthOrPerimeter, gaiaGeomCollArea, gaiaMeasureLength, gaiaGeomCollLength \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter_r (const void *p_cache, gaiaGeomCollPtr geom, int perimeter, double *length); /** Measures the total Area for a Geometry object \param geom pointer to Geometry object \param area on completion this variable will contain the measured area \return 0 on failure: any other value on success \sa gaiaGeoCollArea_r, gaiaGeomCollLength, gaiaMeasureArea, gaiaGeodesicArea \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollArea (gaiaGeomCollPtr geom, double *area); /** Measures the total Area for a Geometry object \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom pointer to Geometry object \param area on completion this variable will contain the measured area \return 0 on failure: any other value on success \sa gaiaGeoCollArea, gaiaGeomCollLength, gaiaMeasureArea, gaiaGeodesicArea \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollArea_r (const void *p_cache, gaiaGeomCollPtr geom, double *area); /** Attempts to rearrange a generic Geometry object into a Polygon or MultiPolygon \param geom the input Geometry object \param force_multi if not set to 0, then an eventual Polygon will be returned casted to MultiPolygon \return the pointer to newly created Geometry object representing a Polygon or MultiPolygon Geometry: NULL on failure. \sa gaiaPolygonize_r, gaiaMakePolygon, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaPolygonize()\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize (gaiaGeomCollPtr geom, int force_multi); /** Attempts to rearrange a generic Geometry object into a Polygon or MultiPolygon \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom the input Geometry object \param force_multi if not set to 0, then an eventual Polygon will be returned casted to MultiPolygon \return the pointer to newly created Geometry object representing a Polygon or MultiPolygon Geometry: NULL on failure. \sa gaiaPolygonize, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaPolygonize_r()\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize_r (const void *p_cache, gaiaGeomCollPtr geom, int force_multi); /** Spatial relationship evalution: Equals \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollEquals_r, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate \note Obsolete: not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollEquals (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Equals \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollEquals_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Disjoint \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollDisjoint_r, gaiaGeomCollEquals, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate \note Obsolete: not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollDisjoint (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Disjoint \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollDisjoint_r, gaiaGeomCollEquals, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollDisjoint_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Disjoint (GEOSPreparedGeometry) \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param blob1 the BLOB corresponding to the first Geometry \param size1 the size (in bytes) of the first BLOB \param geom2 the second Geometry object to be evaluated \param blob2 the BLOB corresponding to the second Geometry \param size2 the size (in bytes) of the second BLOB \return 0 if false: any other value if true \sa gaiaGeomCollDisjoint, gaiaGeomCollDisjoint_r \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollPreparedDisjoint (const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2); /** Spatial relationship evalution: Intesects \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollIntersects_r, gaiaGeomCollPreparedIntersects, gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollIntersects (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Intersects \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollIntersects, gaiaGeomCollPreparedIntersects, gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollIntersects_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Intersects (GEOSPreparedGeometry) \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param blob1 the BLOB corresponding to the first Geometry \param size1 the size (in bytes) of the first BLOB \param geom2 the second Geometry object to be evaluated \param blob2 the BLOB corresponding to the second Geometry \param size2 the size (in bytes) of the second BLOB \return 0 if false: any other value if true \sa gaiaGeomCollIntersects, gaiaGeomCollIntersects_r \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollPreparedIntersects (const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2); /** Spatial relationship evalution: Overlaps \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollOverlaps_r, gaiaGeomCollPreparedOverlaps, gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollOverlaps (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Overlaps \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollOverlaps, gaiaGeomCollPreparedOverlaps, gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollOverlaps_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Overlaps (GEOSPreparedGeometry) \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param blob1 the BLOB corresponding to the first Geometry \param size1 the size (in bytes) of the first BLOB \param geom2 the second Geometry object to be evaluated \param blob2 the BLOB corresponding to the second Geometry \param size2 the size (in bytes) of the second BLOB \return 0 if false: any other value if true \sa gaiaGeomCollOverlaps, gaiaGeomCollOverlaps_r \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollPreparedOverlaps (const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2); /** Spatial relationship evalution: Crosses \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollCrosses_r, gaiaGeomCollPreparedCrosses, gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollCrosses (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Crosses \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollCrosses, gaiaGeomCollPreparedCrosses, gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollCrosses_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Crosses (GEOSPreparedGeometry) \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param blob1 the BLOB corresponding to the first Geometry \param size1 the size (in bytes) of the first BLOB \param geom2 the second Geometry object to be evaluated \param blob2 the BLOB corresponding to the second Geometry \param size2 the size (in bytes) of the second BLOB \return 0 if false: any other value if true \note reentrant and thread-safe. \sa gaiaGeomCollCrosses, gaiaGeomCollCrosses_r \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollPreparedCrosses (const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2); /** Spatial relationship evalution: Contains \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollContains_r, gaiaGeomCollPreparedContains, gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollContains (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Contains \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollContains, gaiaGeomCollPreparedContains, gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollWithin, gaiaGeomCollTouches, gaiaGeomCollRelate \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollContains_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Contains (GEOSPreparedGeometry) \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param blob1 the BLOB corresponding to the first Geometry \param size1 the size (in bytes) of the first BLOB \param geom2 the second Geometry object to be evaluated \param blob2 the BLOB corresponding to the second Geometry \param size2 the size (in bytes) of the second BLOB \return 0 if false: any other value if true \sa gaiaGeomCollContains, gaiaGeomCollContains_r \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollPreparedContains (const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2); /** Spatial relationship evalution: Within \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollWithin_r, gaiaGeomCollPreparedWithin, gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollTouches, gaiaGeomCollRelate \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollWithin (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Within \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollWithin, gaiaGeomCollPreparedWithin, gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollTouches, gaiaGeomCollRelate \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollWithin_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Within (GEOSPreparedGeometry) \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param blob1 the BLOB corresponding to the first Geometry \param size1 the size (in bytes) of the first BLOB \param geom2 the second Geometry object to be evaluated \param blob2 the BLOB corresponding to the second Geometry \param size2 the size (in bytes) of the second BLOB \return 0 if false: any other value if true \sa gaiaGeomCollWithin, gaiaGeomCollWithin_r \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollPreparedWithin (const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2); /** Spatial relationship evalution: Touches \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollTouches_r, gaiaGeomCollPreparedTouches, gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollRelate \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollTouches (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Touches \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \return 0 if false: any other value if true \sa gaiaGeomCollTouches, gaiaGeomCollPreparedTouches, gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollRelate \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollTouches_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial relationship evalution: Touches (GEOSPreparedGeometry) \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param blob1 the BLOB corresponding to the first Geometry \param size1 the size (in bytes) of the first BLOB \param geom2 the second Geometry object to be evaluated \param blob2 the BLOB corresponding to the second Geometry \param size2 the size (in bytes) of the second BLOB \return 0 if false: any other value if true \sa gaiaGeomCollTouches, gaiaGeomCollTouches_r \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollPreparedTouches (const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2); /** Spatial relationship evalution: Relate \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \param pattern intersection matrix pattern [DE-9IM] \return 0 if false: any other value if true \sa gaiaGeomCollRelate_r, gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollRelate \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollRelate (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, const char *pattern); /** Spatial relationship evalution: Relate \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object to be evaluated \param geom2 the second Geometry object to be evaluated \param pattern intersection matrix pattern [DE-9IM] \return 0 if false: any other value if true \sa gaiaGeomCollRelate, gaiaGeomCollEquals, gaiaGeomCollDisjoint, gaiaGeomCollIntersects, gaiaGeomCollOverlaps, gaiaGeomCollCrosses, gaiaGeomCollContains, gaiaGeomCollWithin, gaiaGeomCollRelate \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollRelate_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, const char *pattern); /** Calculates the maximum distance intercurring between two Geometry objects \param geom1 the first Geometry object \param geom2 the second Geometry object \param dist on completion this variable will contain the calculated distance \return 0 on failure: any other value on success. \sa gaiaGeomCollDistance_r, gaia3DDistance, gaiaMaxDistance, gaia3DMaxDistance \note this function always computes the 2D cartesian distance.\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist); /** Calculates the maximum distance intercurring between two Geometry objects \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object \param geom2 the second Geometry object \param dist on completion this variable will contain the calculated distance \return 0 on failure: any other value on success. \sa gaiaGeomCollDistance, gaia3DDistance, gaiaMaxDistance, gaia3DMaxDistance \note this function always computes the 2D cartesian distance.\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollDistance_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist); /** Spatial operator: Intersection \param geom1 the first Geometry object \param geom2 the second Geometry object \return the pointer to newly created Geometry object representing the geometry Intersection of both input Geometries: NULL on failure. \sa gaiaGeometryIntersection_r, gaiaFreeGeomColl, gaiaGeometryUnion, gaiaGeometryDifference, gaiaGeometrySymDifference, gaiaBoundary \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeometryIntersection()\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: Intersection \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object \param geom2 the second Geometry object \return the pointer to newly created Geometry object representing the geometry Intersection of both input Geometries: NULL on failure. \sa gaiaGeometryIntersection, gaiaFreeGeomColl, gaiaGeometryUnion, gaiaGeometryDifference, gaiaGeometrySymDifference, gaiaBoundary \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeometryIntersection_r()\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: Union \param geom1 the first Geometry object \param geom2 the second Geometry object \return the pointer to newly created Geometry object representing the geometry Union of both input Geometries: NULL on failure. \sa gaiaGeometryUnion_r, gaiaFreeGeomColl, gaiaUnaryUnion, gaiaUnionCascaded \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeometryUnion()\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: Union \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object \param geom2 the second Geometry object \return the pointer to newly created Geometry object representing the geometry Union of both input Geometries: NULL on failure. \sa gaiaGeometryUnion, gaiaFreeGeomColl, gaiaUnaryUnion, gaiaUnionCascaded \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeometryUnion_r()\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: Union Cascaded \param geom the input Geometry object. \return the pointer to newly created Geometry object: NULL on failure. \n this function is similar to gaiaUnaryUnion, but it only accepts Polygons and MultiPolygons and it's now deprecated; anyway it's supported on older GEOS versions. NULL on failure. \sa gaiaUnionCascaded, gaiaFreeGeomColl, gaiaGeometryUnion, gaiaUnionUnion \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaUnionCascaded()\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded (gaiaGeomCollPtr geom); /** Spatial operator: Union Cascaded \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom the input Geometry object. \return the pointer to newly created Geometry object: NULL on failure. \n this function is similar to gaiaUnaryUnion, but it only accepts Polygons and MultiPolygons and it's now deprecated; anyway it's supported on older GEOS versions. NULL on failure. \sa gaiaUnionCascaded, gaiaFreeGeomColl, gaiaGeometryUnion, gaiaUnionUnion \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaUnionCascaded_r()\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded_r (const void *p_cache, gaiaGeomCollPtr geom); /** Spatial operator: Difference \param geom1 the first Geometry object \param geom2 the second Geometry object \return the pointer to newly created Geometry object representing the geometry Difference of both input Geometries: NULL on failure. \sa gaiaGeometryDifference_r, gaiaGeometrySymDifference, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeometryDifference()\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: Difference \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object \param geom2 the second Geometry object \return the pointer to newly created Geometry object representing the geometry Difference of both input Geometries: NULL on failure. \sa gaiaGeometryDifference, gaiaGeometrySymDifference, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeometryDifference_r()\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: SymDifference \param geom1 the first Geometry object \param geom2 the second Geometry object \return the pointer to newly created Geometry object representing the geometry SymDifference of both input Geometries: NULL on failure. \sa gaiaGeometrySymDifference_r, gaiaGeometryDifference, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeometrySymDifference()\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: SymDifference \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 the first Geometry object \param geom2 the second Geometry object \return the pointer to newly created Geometry object representing the geometry SymDifference of both input Geometries: NULL on failure. \sa gaiaGeometrySymDifference, gaiaGeometryDifference, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeometrySymDifference_r()\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: Boundary \param geom the Geometry object to be evaluated \return the pointer to newly created Geometry object representing the geometry Boundary of the input Geometry: NULL on failure. \sa gaiaBoudary_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaBoundary()\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary (gaiaGeomCollPtr geom); /** Spatial operator: Boundary \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom the Geometry object to be evaluated \return the pointer to newly created Geometry object representing the geometry Boundary of the input Geometry: NULL on failure. \sa gaiaBoudary, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaBoundary_r()\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary_r (const void *p_cache, gaiaGeomCollPtr geom); /** Spatial operator: Centroid \param geom pointer to Geometry object. \param x on completion this variable will contain the centroid X coordinate \param y on completion this variable will contain the centroid Y coordinate \return 0 on failure: any other value on success \sa gaiaGeomCollCentroid_r, gaiaRingCentroid \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollCentroid (gaiaGeomCollPtr geom, double *x, double *y); /** Spatial operator: Centroid \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom pointer to Geometry object. \param x on completion this variable will contain the centroid X coordinate \param y on completion this variable will contain the centroid Y coordinate \return 0 on failure: any other value on success \sa gaiaGeomCollCentroid, gaiaRingCentroid \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGeomCollCentroid_r (const void *p_cache, gaiaGeomCollPtr geom, double *x, double *y); /** Spatial operator: PointOnSurface \param geom pointer to Geometry object. \param x on completion this variable will contain the Point X coordinate \param y on completion this variable will contain the Point Y coordinate \return 0 on failure: any other value on success \sa gaiaGetPointOnSurface_r \note not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGetPointOnSurface (gaiaGeomCollPtr geom, double *x, double *y); /** Spatial operator: PointOnSurface \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom pointer to Geometry object. \param x on completion this variable will contain the Point X coordinate \param y on completion this variable will contain the Point Y coordinate \return 0 on failure: any other value on success \sa gaiaGetPointOnSurface \note reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE int gaiaGetPointOnSurface_r (const void *p_cache, gaiaGeomCollPtr geom, double *x, double *y); /** Spatial operator: Simplify \param geom the input Geometry object \param tolerance approximation threshold \return the pointer to newly created Geometry object representing the simplified Geometry [applying the Douglas-Peucker algorithm]: NULL on failure. \sa gaiaGeomCollSimplify_r, gaiaFreeGeomColl, gaiaGeomCollSimplifyPreserveTopology \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeomCollSimplify()\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify (gaiaGeomCollPtr geom, double tolerance); /** Spatial operator: Simplify \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom the input Geometry object \param tolerance approximation threshold \return the pointer to newly created Geometry object representing the simplified Geometry [applying the Douglas-Peucker algorithm]: NULL on failure. \sa gaiaGeomCollSimplify, gaiaFreeGeomColl, gaiaGeomCollSimplifyPreserveTopology \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeomCollSimplify_r()\n reentrant and thread safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify_r (const void *p_cache, gaiaGeomCollPtr geom, double tolerance); /** Spatial operator: Simplify [preserving topology] \param geom the input Geometry object \param tolerance approximation threshold \return the pointer to newly created Geometry object representing the simplified Geometry [applying the Douglas-Peucker algorithm]: NULL on failure. \sa gaiaGeomCollSimplifyPreserveTopology_r, gaiaFreeGeomColl, gaiaGeomCollSimplify \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeomCollSimplify()\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplifyPreserveTopology (gaiaGeomCollPtr geom, double tolerance); /** Spatial operator: Simplify [preserving topology] \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom the input Geometry object \param tolerance approximation threshold \return the pointer to newly created Geometry object representing the simplified Geometry [applying the Douglas-Peucker algorithm]: NULL on failure. \sa gaiaGeomCollSimplifyPreserveTopology, gaiaFreeGeomColl, gaiaGeomCollSimplify \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeomCollSimplify_r()\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplifyPreserveTopology_r (const void *p_cache, gaiaGeomCollPtr geom, double tolerance); /** Spatial operator: ConvexHull \param geom the input Geometry object \return the pointer to newly created Geometry object representing the ConvexHull of input Geometry: NULL on failure. \sa gaiaConvexHull_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaConvexHull()\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull (gaiaGeomCollPtr geom); /** Spatial operator: ConvexHull \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom the input Geometry object \return the pointer to newly created Geometry object representing the ConvexHull of input Geometry: NULL on failure. \sa gaiaConvexHull, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaConvexHull_r()\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull_r (const void *p_cache, gaiaGeomCollPtr geom); /** Spatial operator: Buffer \param geom the input Geometry object \param radius the buffer's radius \param points number of points (aka vertices) to be used in order to approximate a circular arc. \return the pointer to newly created Geometry object representing the Buffer of input Geometry: NULL on failure. \sa gaiaGeomCollBuffer_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeomCollBuffer()\n not reentrant and thread unsafe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer (gaiaGeomCollPtr geom, double radius, int points); /** Spatial operator: Buffer \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom the input Geometry object \param radius the buffer's radius \param points number of points (aka vertices) to be used in order to approximate a circular arc. \return the pointer to newly created Geometry object representing the Buffer of input Geometry: NULL on failure. \sa gaiaGeomCollBuffer, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaGeomCollBuffer_r()\n reentrant and thread-safe. \remark \b GEOS support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer_r (const void *p_cache, gaiaGeomCollPtr geom, double radius, int points); #ifndef DOXYGEN_SHOULD_IGNORE_THIS #ifdef GEOS_ADVANCED #endif /** Calculates the Hausdorff distance intercurring between two Geometry objects \param geom1 pointer to first Geometry object \param geom2 pointer to second Geometry object \param dist on completion this variable will contain the calculated Hausdorff distance \return 0 on failure: any other value on success. \sa gaiaHausdorffDistance_r \note not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE int gaiaHausdorffDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist); /** Calculates the Hausdorff distance intercurring between two Geometry objects \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 pointer to first Geometry object \param geom2 pointer to second Geometry object \param dist on completion this variable will contain the calculated Hausdorff distance \return 0 on failure: any other value on success. \sa gaiaHausdorffDistance \note reentrant and thread-safe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE int gaiaHausdorffDistance_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist); /** Spatial operator: Offset Curve \param geom the input Geometry object \param radius the buffer's radius \param points number of points (aka vertices) to be used in order to approximate a circular arc. \param left_right if set to 1 the left-sided OffsetCurve will be returned; otherwise the right-sided one. \return the pointer to newly created Geometry object representing the OffsetCurve of input Geometry: NULL on failure. \sa gaiaOffsetCurve_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaOffsetCurve()\n not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve (gaiaGeomCollPtr geom, double radius, int points, int left_right); /** Spatial operator: Offset Curve \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom the input Geometry object \param radius the buffer's radius \param points number of points (aka vertices) to be used in order to approximate a circular arc. \param left_right if set to 1 the left-sided OffsetCurve will be returned; otherwise the right-sided one. \return the pointer to newly created Geometry object representing the OffsetCurve of input Geometry: NULL on failure. \sa gaiaOffsetCurve, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaOffsetCurve_r()\n reentrant and thread-safe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve_r (const void *p_cache, gaiaGeomCollPtr geom, double radius, int points, int left_right); /** Spatial operator: Single Sided Buffer \param geom the input Geometry object \param radius the buffer's radius \param points number of points (aka vertices) to be used in order to approximate a circular arc. \param left_right if set to 1 the left-sided Buffer will be returned; otherwise the right-sided one. \return the pointer to newly created Geometry object representing the single-sided Buffer of input Geometry: NULL on failure. \sa gaiaSingleSidedBuffer_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSingleSidedBuffer()\n not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer (gaiaGeomCollPtr geom, double radius, int points, int left_right); /** Spatial operator: Single Sided Buffer \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom the input Geometry object \param radius the buffer's radius \param points number of points (aka vertices) to be used in order to approximate a circular arc. \param left_right if set to 1 the left-sided Buffer will be returned; otherwise the right-sided one. \return the pointer to newly created Geometry object representing the single-sided Buffer of input Geometry: NULL on failure. \sa gaiaSingleSidedBuffer, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSingleSidedBuffer_r()\n reentrant and thread-safe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer_r (const void *p_cache, gaiaGeomCollPtr geom, double radius, int points, int left_right); /** Spatial operator: Shared Paths \param geom1 pointer to first Geometry object \param geom2 pointer to second Geometry object \return the pointer to newly created Geometry object representing any Share Path common to both input geometries: NULL on failure. \sa gaiaSharedPaths_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSharedPaths()\n not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: Shared Paths \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 pointer to first Geometry object \param geom2 pointer to second Geometry object \return the pointer to newly created Geometry object representing any Share Path common to both input geometries: NULL on failure. \sa gaiaSharedPaths, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSharedPaths_r()\n reentrant and thread-safe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: Line Interpolate Point \param ln_geom the input Geometry object [expected to be of lineal type] \param fraction total length fraction [in the range 0.0 / 1.0] \return the pointer to newly created Geometry object representing a Point laying on the input Geometry and positioned at the given length fraction: NULL on failure. \sa gaiaLineInterpolatePoint_r, gaiaLineInterpolateEquidistantPoints, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaLineInterpolatePoint()\n not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint (gaiaGeomCollPtr ln_geom, double fraction); /** Spatial operator: Line Interpolate Point \param p_cache a memory pointer returned by spatialite_alloc_connection() \param ln_geom the input Geometry object [expected to be of lineal type] \param fraction total length fraction [in the range 0.0 / 1.0] \return the pointer to newly created Geometry object representing a Point laying on the input Geometry and positioned at the given length fraction: NULL on failure. \sa gaiaLineInterpolatePoint, gaiaLineInterpolateEquidistantPoints, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaLineInterpolatePoint_r()\n reentrant and thread-safe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint_r (const void *p_cache, gaiaGeomCollPtr ln_geom, double fraction); /** Spatial operator: Line Interpolate Equidistant Points \param ln_geom the input Geometry object [expected to be of lineal type] \param distance regular distance between interpolated points \return the pointer to newly created Geometry object representing a MultiPoint; such MultiPoint always supports the M coordinate (the corresponding value representing the progressive distance for each interpolated Point). individual Points will be regularly spaced by the given distance: NULL on failure. \sa gaiaLineInterpolateEquidistantPoints_r, gaiaLineInterpolatePoint, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaLineInterpolateEquidistantPoints()\n not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolateEquidistantPoints (gaiaGeomCollPtr ln_geom, double distance); /** Spatial operator: Line Interpolate Equidistant Points \param p_cache a memory pointer returned by spatialite_alloc_connection() \param ln_geom the input Geometry object [expected to be of lineal type] \param distance regular distance between interpolated points \return the pointer to newly created Geometry object representing a MultiPoint; such MultiPoint always supports the M coordinate (the corresponding value representing the progressive distance for each interpolated Point). individual Points will be regularly spaced by the given distance: NULL on failure. \sa gaiaLineInterpolateEquidistantPoints, gaiaLineInterpolatePoint, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaLineInterpolateEquidistantPoints_r()\n reentrant and thread-safe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolateEquidistantPoints_r (const void *p_cache, gaiaGeomCollPtr ln_geom, double distance); /** Spatial operator: Line Substring \param ln_geom the input Geometry object [expected to be of lineal type] \param start_fraction substring start, expressed as total length fraction [in the range 0.0 / 1.0] \param end_fraction substring end, expressed as total length fraction \return the pointer to newly created Geometry object representing a Linestring laying on the input Geometry. \n this Linestring will begin (and stop) at given total length fractions. NULL on failure. \sa gaiaLineSubstring_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaLineSubstring()\n not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring (gaiaGeomCollPtr ln_geom, double start_fraction, double end_fraction); /** Spatial operator: Line Substring \param p_cache a memory pointer returned by spatialite_alloc_connection() \param ln_geom the input Geometry object [expected to be of lineal type] \param start_fraction substring start, expressed as total length fraction [in the range 0.0 / 1.0] \param end_fraction substring end, expressed as total length fraction \return the pointer to newly created Geometry object representing a Linestring laying on the input Geometry. \n this Linestring will begin (and stop) at given total length fractions. NULL on failure. \sa gaiaLineSubstring, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaLineSubstring_r()\n reentrant and thread-safe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring_r (const void *p_cache, gaiaGeomCollPtr ln_geom, double start_fraction, double end_fraction); /** Spatial operator: Shortest Line \param geom1 pointer to the first Geometry object. \param geom2 pointer to the second Geometry object. \return the pointer to newly created Geometry object representing a Linestring; NULL on failure. \n the returned Linestring graphically represents the minimum distance intercurrinng between both input geometries. \sa gaiaShortestLine_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaShortestLine()\n not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: Shortest Line \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 pointer to the first Geometry object. \param geom2 pointer to the second Geometry object. \return the pointer to newly created Geometry object representing a Linestring; NULL on failure. \n the returned Linestring graphically represents the minimum distance intercurrinng between both input geometries. \sa gaiaShortestLine, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaShortestLine_r()\n reentrant and thread-safe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: Snap \param geom1 pointer to the first Geometry object. \param geom2 pointer to the second Geometry object. \param tolerance approximation factor \return the pointer to newly created Geometry object; NULL on failure. \n the returned Geometry represents the first input Geometry (nicely \e snapped to the second input Geometry, whenever is possible). \sa gaiaSnap_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSnap()\n not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance); /** Spatial operator: Snap \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 pointer to the first Geometry object. \param geom2 pointer to the second Geometry object. \param tolerance approximation factor \return the pointer to newly created Geometry object; NULL on failure. \n the returned Geometry represents the first input Geometry (nicely \e snapped to the second input Geometry, whenever is possible). \sa gaiaSnap, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSnap_r()\n reentrant and thread-safe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance); /** Spatial operator: Line Merge \param geom pointer to input Geometry object. \return the pointer to newly created Geometry object; NULL on failure. \n if possible, this representing a reassembled Linestring or MultiLinestring. \sa gaiaLineMerge_r, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaLineMerge()\n not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge (gaiaGeomCollPtr geom); /** Spatial operator: Line Merge \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom pointer to input Geometry object. \return the pointer to newly created Geometry object; NULL on failure. \n if possible, this representing a reassembled Linestring or MultiLinestring. \sa gaiaLineMerge, gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaLineMerge_r()\n reentrant and thread-safe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge_r (const void *p_cache, gaiaGeomCollPtr geom); /** Spatial operator: Line Cut At Nodes \param geom1 pointer to input Geometry object [Linestring or MultiLinestring]. \param geom2 pointer to input Geometry object [Point or MultiPoint]. \return the pointer to newly created Geometry object; NULL on failure. \n if possible, any input Linestring will be split accordingly to given Node(s): no point will be interpolated, existing Linestring Vertices will be evaluated. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaLinesCutAtNodes() \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLinesCutAtNodes (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Spatial operator: Unary Union \param geom the input Geometry object. \return the pointer to newly created Geometry object: NULL on failure. \n this function is the same as gaiaGeometryUnion, except in that this works internally to the input Geometry itself. NULL on failure. \sa gaiaUnaryUnion_r, gaiaFreeGeomColl, gaiaGeometryUnion, gaiaUnionCascaded \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaUnaryUnion()\n not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion (gaiaGeomCollPtr geom); /** Spatial operator: Unary Union \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom the input Geometry object. \return the pointer to newly created Geometry object: NULL on failure. \n this function is the same as gaiaGeometryUnion, except in that this works internally to the input Geometry itself. NULL on failure. \sa gaiaUnaryUnion, gaiaFreeGeomColl, gaiaGeometryUnion, gaiaUnionCascaded \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaUnaryUnion_r()\n reentrant and thread-safe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion_r (const void *p_cache, gaiaGeomCollPtr geom); /** Determines the location of the closest Point on Linestring to the given Point \param ln_geom pointer to first input Geometry object [expected to be of the lineal type]. \param pt_geom pointer to second input Geometry object [expected to be a Point]. \return the fraction [in the range 0.0 / 1.0] of ln_geom total length where the closest Point to pt_geom lays. \sa gaiaLineLocatePoint_r \note not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE double gaiaLineLocatePoint (gaiaGeomCollPtr ln_geom, gaiaGeomCollPtr pt_geom); /** Determines the location of the closest Point on Linestring to the given Point \param p_cache a memory pointer returned by spatialite_alloc_connection() \param ln_geom pointer to first input Geometry object [expected to be of the lineal type]. \param pt_geom pointer to second input Geometry object [expected to be a Point]. \return the fraction [in the range 0.0 / 1.0] of ln_geom total length where the closest Point to pt_geom lays. \sa gaiaLineLocatePoint \note reentrant and thread-safe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE double gaiaLineLocatePoint_r (const void *p_cache, gaiaGeomCollPtr ln_geom, gaiaGeomCollPtr pt_geom); /** Topology check: test if a Geometry covers another one \param geom1 pointer to first input Geometry object. \param geom2 pointer to second input Geometry object. \return 0 if false; any other value if geom1 \e spatially \e covers geom2. \sa gaiaGeomCollCovers_r, gaiaGeomCollPreparedCovers, gaiaGeomCollCoveredBy \note not reentrant and thead unsafe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE int gaiaGeomCollCovers (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Topology check: test if a Geometry covers another one \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 pointer to first input Geometry object. \param geom2 pointer to second input Geometry object. \return 0 if false; any other value if geom1 \e spatially \e covers geom2. \sa gaiaGeomCollCovers, gaiaGeomCollPreparedCovers, gaiaGeomCollCoveredBy \note reentrant and thead-safe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE int gaiaGeomCollCovers_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Topology check: test if a Geometry covers another one (GEOSPreparedGeometry) \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 pointer to first input Geometry object. \param blob1 the BLOB corresponding to the first Geometry \param size1 the size (in bytes) of the first BLOB \param geom2 pointer to second input Geometry object. \param blob2 the BLOB corresponding to the second Geometry \param size2 the size (in bytes) of the second BLOB \return 0 if false; any other value if geom1 \e spatially \e covers geom2. \note reentrant and thread-safe. \sa gaiaGeomCollCovers, gaiaGeomCollCovers_r \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE int gaiaGeomCollPreparedCovers (const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2); /** Topology check: test if a Geometry is covered by another one \param geom1 pointer to first input Geometry object. \param geom2 pointer to second input Geometry object. \return 0 if false; any other value if geom2 is \e spatially \e covered \e by geom1. \sa gaiaGeomCollCoveredBy_r, gaiaGeomCollPreparedCoveredBy, gaiaGeomCollCovers \note not reentrant and thread unsafe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE int gaiaGeomCollCoveredBy (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Topology check: test if a Geometry is covered by another one \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 pointer to first input Geometry object. \param geom2 pointer to second input Geometry object. \return 0 if false; any other value if geom2 is \e spatially \e covered \e by geom1. \sa gaiaGeomCollCoveredBy, gaiaGeomCollPreparedCoveredBy, gaiaGeomCollCovers \note reentrant and thread-safe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE int gaiaGeomCollCoveredBy_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Topology check: test if a Geometry is covered by another one (GEOSPreparedGeometry) \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 pointer to first input Geometry object. \param blob1 the BLOB corresponding to the first Geometry \param size1 the size (in bytes) of the first BLOB \param geom2 pointer to second input Geometry object. \param blob2 the BLOB corresponding to the second Geometry \param size2 the size (in bytes) of the second BLOB \return 0 if false; any other value if geom2 is \e spatially \e covered \e by geom1. \sa gaiaGeomCollCoveredBy, gaiaGeomCollCoveredBy_r, gaiaGeomCollCovers \note reentrant and thread-safe. \remark \b GEOS-ADVANCED support required. */ GAIAGEO_DECLARE int gaiaGeomCollPreparedCoveredBy (const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2); /** Utility function: SquareGrid \param geom the Geometry to be covered by the Grid. \param origin_x the X ccordinate identifying the Grid Origin. \param origin_y the Y coordinate identifiying the Grid Origin. \param size the Grid cell-side size. \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will return a MULTIPOLYGON containing square POLYGONs. \return the pointer to newly created Geometry object: NULL on failure. \n this function will always return a MultiPolygon \n NULL will be returned if any argument is invalid. \sa gaiaSquareGrid_r, gaiaFreeGeomColl, gaiaTriangularGrid, gaiaHexagonalGrid \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSquareGrid()\n not reentrant and thread unsafe. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int only_edges); /** Utility function: SquareGrid \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom the Geometry to be covered by the Grid. \param origin_x the X ccordinate identifying the Grid Origin. \param origin_y the Y coordinate identifiying the Grid Origin. \param size the Grid cell-side size. \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will return a MULTIPOLYGON containing square POLYGONs. \return the pointer to newly created Geometry object: NULL on failure. \n this function will always return a MultiPolygon \n NULL will be returned if any argument is invalid. \sa gaiaSquareGrid, gaiaFreeGeomColl, gaiaTriangularGrid, gaiaHexagonalGrid \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSquareGrid_r()\n reentrant and thread-safe. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid_r (const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int only_edges); /** Utility function: TriangularGrid \param geom the Geometry to be covered by the Grid. \param origin_x the X ccordinate identifying the Grid Origin. \param origin_y the Y coordinate identifiying the Grid Origin. \param size the Grid cell-side size. \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will return a MULTIPOLYGON containing triangular POLYGONs. \return the pointer to newly created Geometry object: NULL on failure. \n this function will always return a MultiPolygon \n NULL will be returned if any argument is invalid. \sa gaiaTriangularGrid_r, gaiaFreeGeomColl, gaiaSquareGrid, gaiaHexagonalGrid \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaTriangularGrid()\n not reentrant and thread unsafe. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int only_edges); /** Utility function: TriangularGrid \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom the Geometry to be covered by the Grid. \param origin_x the X ccordinate identifying the Grid Origin. \param origin_y the Y coordinate identifiying the Grid Origin. \param size the Grid cell-side size. \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will return a MULTIPOLYGON containing triangular POLYGONs. \return the pointer to newly created Geometry object: NULL on failure. \n this function will always return a MultiPolygon \n NULL will be returned if any argument is invalid. \sa gaiaTriangularGrid, gaiaFreeGeomColl, gaiaSquareGrid, gaiaHexagonalGrid \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaTriangularGrid_r()\n reentrant and thread-safe. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid_r (const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int only_edges); /** Utility function: HexagonalGrid \param geom the Geometry to be covered by the Grid. \param origin_x the X ccordinate identifying the Grid Origin. \param origin_y the Y coordinate identifiying the Grid Origin. \param size the Grid cell-side size. \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will return a MULTIPOLYGON containing hexagonal POLYGONs. \return the pointer to newly created Geometry object: NULL on failure. \n this function will always return a MultiPolygon \n NULL will be returned if any argument is invalid. \sa gaiaGexagonalGrid_r, gaiaFreeGeomColl, gaiaSquareGrid, gaiaTriangularGrid \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaHexagonalGrid()\n not reentrant and thread unsafe. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int only_edges); /** Utility function: HexagonalGrid \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom the Geometry to be covered by the Grid. \param origin_x the X ccordinate identifying the Grid Origin. \param origin_y the Y coordinate identifiying the Grid Origin. \param size the Grid cell-side size. \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will return a MULTIPOLYGON containing hexagonal POLYGONs. \return the pointer to newly created Geometry object: NULL on failure. \n this function will always return a MultiPolygon \n NULL will be returned if any argument is invalid. \sa gaiaGexagonalGrid, gaiaFreeGeomColl, gaiaSquareGrid, gaiaTriangularGrid \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaHexagonalGrid_r()\n reentrant and thread-safe. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid_r (const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int only_edges); #endif /* end GEOS advanced features */ #ifndef DOXYGEN_SHOULD_IGNORE_THIS #ifdef GEOS_TRUNK #endif /** Delaunay Triangulation \param geom pointer to input Geometry object. \param tolerance optional snapping tolerance. \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will return a MULTIPOLYGON containing triangular POLYGONs. \return the pointer to newly created Geometry object: NULL on failure. \n NULL will be returned if any argument is invalid. \sa gaiaDelaunatTriangulation_r, gaiaFreeGeomColl, gaiaVoronojDiagram, gaiaConcaveHull \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaDelaunayTriangulation()\n not reentrant and thread unsafe. \remark \b GEOS-TRUNK support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation (gaiaGeomCollPtr geom, double tolerance, int only_edges); /** Delaunay Triangulation \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom pointer to input Geometry object. \param tolerance optional snapping tolerance. \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will return a MULTIPOLYGON containing triangular POLYGONs. \return the pointer to newly created Geometry object: NULL on failure. \n NULL will be returned if any argument is invalid. \sa gaiaDelaunatTriangulation, gaiaFreeGeomColl, gaiaVoronojDiagram, gaiaConcaveHull \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaDelaunayTriangulation_r()\n reentrant and thread-safe. \remark \b GEOS-TRUNK support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation_r (const void *p_cache, gaiaGeomCollPtr geom, double tolerance, int only_edges); /** Voronoj Diagram \param geom pointer to input Geometry object. \param extra_frame_size percent factor expanding the BBOX of input Geometry \param tolerance optional snapping tolerance. \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will return a MULTIPOLYGON. \return the pointer to newly created Geometry object: NULL on failure. \n NULL will be returned if any argument is invalid. \sa gaiaVoronojDiagram_r, gaiaFreeGeomColl, gaiaDelaunayTriangulation \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaVoronojDiagram()\n not reentrant and thread unsafe. \remark \b GEOS-TRUNK support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram (gaiaGeomCollPtr geom, double extra_frame_size, double tolerance, int only_edges); /** Voronoj Diagram \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom pointer to input Geometry object. \param extra_frame_size percent factor expanding the BBOX of input Geometry \param tolerance optional snapping tolerance. \param only_edges if non-zero will return a MULTILINESTRING, otherwise it will return a MULTIPOLYGON. \return the pointer to newly created Geometry object: NULL on failure. \n NULL will be returned if any argument is invalid. \sa gaiaVoronojDiagram, gaiaFreeGeomColl, gaiaDelaunayTriangulation \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaVoronojDiagram_r()\n reentrant and thread-safe. \remark \b GEOS-TRUNK support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram_r (const void *p_cache, gaiaGeomCollPtr geom, double extra_frame_size, double tolerance, int only_edges); /** Concave Hull \param geom pointer to input Geometry object. \param factor multiplier used for filtering Delaunay triangles: please read the note. \param tolerance optional snapping tolerance. \param allow_holes if FALSE any interior hole will be suppressed. \return the pointer to newly created Geometry object (always of the Polygon type): NULL on failure. \n NULL will be returned if any argument is invalid. \sa gaiaConcaveHull_r, gaiaFreeGeomColl, gaiaDelaunayTriangulation \note This function will first create the Delauany Triangulation corresponding to input Geometry, determining at the same time the \b standard \b deviation for all edge's lengths. \n Then in a second pass all Delaunay's triangles will be filtered, and all triangles presenting at least one edge longer than \b standard \b deviation \b * \b factor will be discarded. \n All filtered triangles will then be merged altogether so to create the Concave Hull. \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaConcaveHull()\n not reentrant and thread unsafe. \remark \b GEOS-TRUNK support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull (gaiaGeomCollPtr geom, double factor, double tolerance, int allow_holes); /** Concave Hull \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom pointer to input Geometry object. \param factor multiplier used for filtering Delaunay triangles: please read the note. \param tolerance optional snapping tolerance. \param allow_holes if FALSE any interior hole will be suppressed. \return the pointer to newly created Geometry object (always of the Polygon type): NULL on failure. \n NULL will be returned if any argument is invalid. \sa gaiaConcaveHull, gaiaFreeGeomColl, gaiaDelaunayTriangulation \note This function will first create the Delauany Triangulation corresponding to input Geometry, determining at the same time the \b standard \b deviation for all edge's lengths. \n Then in a second pass all Delaunay's triangles will be filtered, and all triangles presenting at least one edge longer than \b standard \b deviation \b * \b factor will be discarded. \n All filtered triangles will then be merged altogether so to create the Concave Hull. \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaConcaveHull_r()\n reentrant and thread-safe. \remark \b GEOS-TRUNK support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull_r (const void *p_cache, gaiaGeomCollPtr geom, double factor, double tolerance, int allow_holes); #endif /* end GEOS experimental features */ #ifndef DOXYGEN_SHOULD_IGNORE_THIS #ifdef ENABLE_LWGEOM #endif /** Resets the LWGEOM error and warning messages to an empty state \sa gaiaGetLwGeomErrorMsg, gaiaGetLwGeomWarningMsg, gaiaSetLwGeomErrorMsg, gaiaSetLwGeomWarningMsg \note not reentrant and thread unsafe. \remark \b LWGEOM support required. */ GAIAGEO_DECLARE void gaiaResetLwGeomMsg (void); /** Return the latest LWGEOM error message (if any) \return the latest LWGEOM error message: an empty string if no error was previoysly found. \note not reentrant and thread unsafe. \sa gaiaResetLwGeomMsg, gaiaGetLwGeomWarningMsg, gaiaSetLwGeomErrorMsg, gaiaSetLwGeomWarningMsg \remark \b LWGEOM support required. */ GAIAGEO_DECLARE const char *gaiaGetLwGeomErrorMsg (void); /** Return the latest LWGEOM warning message (if any) \return the latest LWGEOM warning message: an empty string if no warning was previoysly found. \sa gaiaResetLwGeomMsg, gaiaGetLwGeomErrorMsg, gaiaSetLwGeomErrorMsg, gaiaSetLwGeomWarningMsg \note not reentrant and thread unsafe. \remark \b LWGEOM support required. */ GAIAGEO_DECLARE const char *gaiaGetLwGeomWarningMsg (void); /** Set the current LWGEOM error message \param msg the error message to be set. \sa gaiaResetLwGeomMsg, gaiaGetLwGeomErrorMsg, gaiaGetLwGeomWarningMsg, gaiaSetLwGeomWarningMsg \note not reentrant and thread unsafe. \remark \b LWGEOM support required. */ GAIAGEO_DECLARE void gaiaSetLwGeomErrorMsg (const char *msg); /** Set the current LWGEOM warning message \param msg the warning message to be set. \sa gaiaResetLwGeomMsg, gaiaGetLwGeomErrorMsg, gaiaGetLwGeomWarningMsg, gaiaSetLwGeomErrorMsg \note not reentrant and thread unsafe. \remark \b LWGEOM support required. */ GAIAGEO_DECLARE void gaiaSetLwGeomWarningMsg (const char *msg); /** Utility function: MakeValid \param geom the input Geometry object. \return the pointer to newly created Geometry object: NULL on failure. \n this function will attempt to create a valid representation of a given invalid geometry without loosing any of the input vertices. \n Already-valid geometries are returned without further intervention. \n NULL will be returned if the passed argument is invalid. \sa gaiaFreeGeomColl, gaiaMakeValidDiscarded \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaMakeValid() \remark \b LWGEOM support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValid (gaiaGeomCollPtr geom); /** Utility function: MakeValidDiscarded \param geom the input Geometry object. \return the pointer to newly created Geometry object: NULL on failure. \n this function will attempt to collect any invalid item (offending geometries) discarded by gaiaMakeValid while building a valid Geometry. \n Saving any discarded item could be useful for a finer (manual) adjustment. \n NULL will be returned if gaiaMakeValid hasn't identified any offending item to be discarded during the validation. \sa gaiaFreeGeomColl, gaiaMakeValid \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaMakeValidDiscarded() \remark \b LWGEOM support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValidDiscarded (gaiaGeomCollPtr geom); /** Utility function: Segmentize \param geom the input Geometry object. \param dist the meximum segment length. \return the pointer to newly created Geometry object: NULL on failure. \n this function will return a modified geometry having no segment longer than the given distance. \n Distance computation is performed in 2d only. \n all Points or segments shorter than 'dist' will be returned without further intervention. \n NULL will be returned if the passed argument is invalid. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSegmentize() \remark \b LWGEOM support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSegmentize (gaiaGeomCollPtr geom, double dist); /** Utility function: Azimuth \param xa the X coordinate of PointA. \param ya the Y coordinate of PointA. \param xb the X ccordinate of PointB. \param yb the Y coordinate of PointB. \param azimuth on completion this variable will contain the angle in radians from the horizontal of the vector defined by pointA and pointB. \n Angle is computed clockwise from down-to-up: on the clock: 12=0; 3=PI/2; 6=PI; 9=3PI/2. \return 0 on failure: any other value on success \sa gaiaProjectedPoint \remark \b LWGEOM support required. */ GAIAGEO_DECLARE int gaiaAzimuth (double xa, double ya, double xb, double yb, double *azimuth); /** Utility function: EllipsoidAzimuth \param xa the X coordinate of PointA. \param ya the Y coordinate of PointA. \param xb the X ccordinate of PointB. \param yb the Y coordinate of PointB. \param a major axis of the reference spheroid. \param b minor axis of the reference spheroid. \param azimuth on completion this variable will contain the angle in radians from the horizontal of the vector defined by pointA and pointB. \n Angle is computed clockwise from down-to-up: on the clock: 12=0; 3=PI/2; 6=PI; 9=3PI/2. \return 0 on failure: any other value on success \sa gaiaAzimuth \remark \b LWGEOM support required. */ GAIAGEO_DECLARE int gaiaEllipsoidAzimuth (double xa, double ya, double xb, double yb, double a, double b, double *azimuth); /** Utility function: ProjectedPoint \param x1 the X coordinate of the Start Point. \param y1 the Y coordinate of the Start Point. \param a major axis of the reference spheroid. \param b minor axis of the reference spheroid. \param distance a distance expressed in Meters \param azimuth (aka bearing aka heading) expressed in radians; on the clock: 12=0; 3=PI/2; 6=PI; 9=3PI/2. \param x2 on completion this variable will contain the the X coordinate of the Projected Point. \param y2 on completion this variable will contain the the Y coordinate of the Projected Point. \return 0 on failure: any other value on success \remark \b LWGEOM support required. */ GAIAGEO_DECLARE int gaiaProjectedPoint (double x1, double y1, double a, double b, double distance, double azimuth, double *x2, double *y2); /** Utility function: GeoHash \param geom the input geometry. \param precision the expected precision: if <= 0 will be automatically determined. \return NULL on failure: a null-terminated text string on success \note you are responsible to free (before or after) any text string returned by gaiaGeoHash() \remark \b LWGEOM support required. */ GAIAGEO_DECLARE char *gaiaGeoHash (gaiaGeomCollPtr geom, int precision); /** Utility function: AsX3D \param geom the input geometry. \param srs the WKT SRS definition. \param precision the expected precision (coord decimal digits). \param options \param refid the X3D namespace \return NULL on failure: a null-terminated text string on success \note you are responsible to free (before or after) any text string returned by gaiaAsX3D() \remark \b LWGEOM support required. */ GAIAGEO_DECLARE char *gaiaAsX3D (gaiaGeomCollPtr geom, const char *srs, int precision, int options, const char *refid); /** Calculates the minimum 3D distance intercurring between two Geometry objects \param geom1 the first Geometry object \param geom2 the second Geometry object \param dist on completion this variable will contain the calculated distance \return 0 on failure: any other value on success. \sa gaiaGeomCollDistance, gaiaMaxDistance, gaia3DMaxDisance \note this function computes the 3D cartesian distance (if Z is supported) \remark \b LWGEOM support required. */ GAIAGEO_DECLARE int gaia3DDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist); /** Calculates the maximum 2D distance intercurring between two Geometry objects \param geom1 the first Geometry object \param geom2 the second Geometry object \param dist on completion this variable will contain the calculated distance \return 0 on failure: any other value on success. \sa gaiaGeomCollDistance, gaia3DDistance, gaia3DMaxDistance \note this function computes the 2D maximum cartesian distance (Z is always ignored) \remark \b LWGEOM support required. */ GAIAGEO_DECLARE int gaiaMaxDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist); /** Calculates the maximum 3D distance intercurring between two Geometry objects \param geom1 the first Geometry object \param geom2 the second Geometry object \param dist on completion this variable will contain the calculated distance \return 0 on failure: any other value on success. \sa gaiaGeomCollDistance, gaia3DDistance, gaiaMaxDistance \note this function computes the 3D maximum cartesian distance (if Z is supported) \remark \b LWGEOM support required. */ GAIAGEO_DECLARE int gaia3DMaxDistance (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist); /** Utility function: Split \param input the input Geometry object. \param blade the blade Geometry object. \return the pointer to newly created Geometry object: NULL on failure. \n The function supports splitting a line by point, a line by line, a polygon by line. \sa gaiaFreeGeomColl, gaiaSplitLeft, gaiaSplitRight \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSplit() \note gaiaSplit will return both the \b left and the \b right split halves at the same time. \remark \b LWGEOM support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplit (gaiaGeomCollPtr input, gaiaGeomCollPtr blade); /** Utility function: SplitLeft \param input the input Geometry object. \param blade the blade Geometry object. \return the pointer to newly created Geometry object: NULL on failure. \n The function supports splitting a line by point, a line by line, a polygon by line. \sa gaiaFreeGeomColl, gaiaSplit, gaiaSplitRight \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSplitLeft() \note gaiaSplitLeft will only return the \b left split half; NULL may be eventually returned if empty. \remark \b LWGEOM support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitLeft (gaiaGeomCollPtr input, gaiaGeomCollPtr blade); /** Utility function: SplitRight \param input the input Geometry object. \param blade the blade Geometry object. \return the pointer to newly created Geometry object: NULL on failure. \n The function supports splitting a line by point, a line by line, a polygon by line. \sa gaiaFreeGeomColl, gaiaSplit, gaiaSplitLeft \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSplitRight() \note gaiaSplitLeft will only return the \b right split half; NULL may be eventually returned if empty. \remark \b LWGEOM support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitRight (gaiaGeomCollPtr input, gaiaGeomCollPtr blade); /** Measures the total Area for a Geometry object (geodesic) \param geom pointer to Geometry object \param a major axis of the reference spheroid. \param b minor axis of the reference spheroid. \param use_ellipsoid if TRUE will measure the Area on the Ellipsoid, otherwise on the Sphere \param area on completion this variable will contain the measured area \return 0 on failure: any other value on success \sa gaiaGeomCollLength, gaiaMeasureArea, gaiaGeomCollArea \remark \b LWGEOM support required. */ GAIAGEO_DECLARE int gaiaGeodesicArea (gaiaGeomCollPtr geom, double a, double b, int use_ellipsoid, double *area); /** Utility function: re-noding lines \param input the input Geometry object. \return the pointer to newly created Geometry object: NULL on failure. \n The function fully nodes a set of linestrings, using the least nodes preserving all the input ones. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaNode() \remark \b LWGEOM support required. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaNodeLines (gaiaGeomCollPtr input); #endif /* end LWGEOM support */ #endif /* end including GEOS */ /** Utility function: SnapToGrid \param geom the input Geometry object. \param origin_x the X ccordinate identifying the Grid Origin. \param origin_y the Y coordinate identifiying the Grid Origin. \param origin_z the Z ccordinate identifying the Grid Origin. \param origin_m the M coordinate identifiying the Grid Origin. \param size_x Grid cell size (X axis). \param size_y Grid cell size (Y axis). \param size_z Grid cell size (Z axis). \param size_m Grid cell size (M axis). \return the pointer to newly created Geometry object: NULL on failure. \n this function will return a modified geometry having all points snapped to a regular Grid defined by its origin and cell size. \n Consecutive points falling on the same cell will be removed, eventually returning NULL if \n output points are not enough to define a geometry of the given type. \n Collapsed geometries in a collection are stripped from it. \n Specify 0 as size for any dimension you don't want to snap to a grid. \n NULL will be returned if the passed argument is invalid. \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaSnapToGrid() */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnapToGrid (gaiaGeomCollPtr geom, double origin_x, double origin_y, double origin_z, double origin_m, double size_x, double size_y, double size_z, double size_m); #ifdef __cplusplus } #endif #endif /* _GG_ADVANCED_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/gg_core.h�����������������������������������������������0000664�0001750�0001750�00000203277�12544707704�017574� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_core.h -- Gaia common support for geometries: core functions version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gg_core.h Geometry handling functions: core */ #ifndef _GG_CORE_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_CORE_H #endif #ifdef __cplusplus extern "C" { #endif /* function prototypes */ /** Safely frees any dynamic memory block allocated by the library itself \param ptr pointer to dynamically allocated memory \note on some platforms (most notably, Microsoft Windows) many different runtime libraries may actually support the same process. \n attempting to free() a memory block allocated by a different runtime module may easily cause fatal memory corruption. */ GAIAGEO_DECLARE void gaiaFree (void *ptr); /** Allocates a 2D POINT [XY] \param x the X coordinate. \param y the Y coordinate. \return the pointer to the newly created POINT object: NULL on failure \sa gaiaFreePoint \note you are responsible to destroy (before or after) any allocated POINT, unless you've passed ownership of the POINT object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPoint (double x, double y); /** Allocates a 3D POINT [XYZ] \param x the X coordinate. \param y the Y coordinate. \param z the Z coordinate. \return the pointer to the newly created POINT object: NULL on failure \sa gaiaFreePoint \note you are responsible to destroy (before or after) any allocated POINT, unless you've passed ownership of the POINT object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPointXYZ (double x, double y, double z); /** Allocates a 2D POINT [XYM] \param x the X coordinate. \param y the Y coordinate. \param m the M measure. \return the pointer to the newly created POINT object: NULL on failure \sa gaiaFreePoint \note you are responsible to destroy (before or after) any allocated POINT, unless you've passed ownership of the POINT object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPointXYM (double x, double y, double m); /** Allocates a 3D POINT [XYZM] \param x the X coordinate. \param y the Y coordinate. \param z the Z coordinate. \param m the M measure. \return the pointer to the newly created POINT object: NULL on failure \sa gaiaFreePoint \note you are responsible to destroy (before or after) any allocated POINT, unless you've passed ownership of the POINT object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPointXYZM (double x, double y, double z, double m); /** Destroys a POINT object \param ptr pointer to the POINT object to be destroyed \sa gaiaAllocPoint, gaiaAllocPointXYZ, gaiaAllocPointXYM, gaiaAllocPointXYZM \note attempting to destroy any POINT object whose ownership has already been transferred to some other (higher order) object is a serious error, and will easily cause severe memory corruption. */ GAIAGEO_DECLARE void gaiaFreePoint (gaiaPointPtr ptr); /** Allocates a 2D LINESTRING [XY] \param vert number of points [aka vertices] into the Linestring \return the pointer to newly created LINESTRING object: NULL on failure \sa gaiaFreeLinestring, gaiaLineSetPoint, gaiaLineGetPoint, gaiaSetPoint, gaiaGetPoint \note you are responsible to destroy (before or after) any allocated LINESTRING, unless you've passed ownership of the LINESTRING object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestring (int vert); /** Allocates a 3D LINESTRING [XYZ] \param vert number of points [aka vertices] into the Linestring \return the pointer to newly created LINESTRING object: NULL on failure \sa gaiaFreeLinestring, gaiaLineSetPoint, gaiaLineGetPoint, gaiaSetPointXYZ, gaiaGetPointXYZ \note you are responsible to destroy (before or after) any allocated LINESTRING, unless you've passed ownership of the LINESTRING object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestringXYZ (int vert); /** Allocates a 2D LINESTRING [XYM] \param vert number of points [aka vertices] into the Linestring \return the pointer to newly created LINESTRING object: NULL on failure \sa gaiaFreeLinestring, gaiaLineSetPoint, gaiaLineGetPoint, gaiaSetPointXYM, gaiaGetPointXYM \note you are responsible to destroy (before or after) any allocated LINESTRING, unless you've passed ownership of the LINESTRING object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestringXYM (int vert); /** Allocates a 3D LINESTRING [XYZM] \param vert number of points [aka vertices] into the Linestring \return the pointer to newly created LINESTRING object: NULL on failure \sa gaiaFreeLinestring, gaiaLineSetPoint, gaiaLineGetPoint, gaiaSetPointXYZM, gaiaGetPointXYZM \note you are responsible to destroy (before or after) any allocated LINESTRING, unless you've passed ownership of the LINESTRING object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestringXYZM (int vert); /** Destroys a LINESTRING object \param ptr pointer to the LINESTRING object to be destroyed \sa gaiaAllocLinestring, gaiaAllocLinestringXYZ, gaiaAllocLinestringXYM, gaiaAllocLinestringXYZM \note attempting to destroy any LINESTRING object whose ownnership has already been transferred to some other (higher order) object is a serious error, and will easily cause severe memory corruption. */ GAIAGEO_DECLARE void gaiaFreeLinestring (gaiaLinestringPtr ptr); /** Copies coordinates between two LINESTRING objects \param dst destination LINESTRING [output] \param src origin LINESTRING [input] \sa gaiaCopyLinestringCoordsReverse \note both LINESTRING objects must have exactly the same number of points: if dimensions aren't the same for both objects, then the appropriate conversion will be silently applied. */ GAIAGEO_DECLARE void gaiaCopyLinestringCoords (gaiaLinestringPtr dst, gaiaLinestringPtr src); /** Copies coordinates between two LINESTRING objects in reverse order \param dst destination LINESTRING [output] \param src origin LINESTRING [input] \sa gaiaCopyLinestringCoords \note both LINESTRING objects must have exactly the same number of points: if dimensions aren't the same for both objects, then the appropriate conversion will be silently applied. */ GAIAGEO_DECLARE void gaiaCopyLinestringCoordsReverse (gaiaLinestringPtr dst, gaiaLinestringPtr src); /** Allocates a 2D RING [XY] \param vert number of points [aka vertices] into the Ring \return the pointer to newly created RING object: NULL on failure \sa gaiaFreeRing, gaiaRingSetPoint, gaiaRingGetPoint, gaiaSetPoint, gaiaGetPoint \note you are responsible to destroy (before or after) any allocated RING, unless you've passed ownership of the RING object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRing (int vert); /** Allocates a 3D RING [XYZ] \param vert number of points [aka vertices] into the Ring \return the pointer to newly created RING object: NULL on failure \sa gaiaFreeRing, gaiaRingSetPoint, gaiaRingGetPoint, gaiaSetPointXYZ, gaiaGetPointXYZ \note you are responsible to destroy (before or after) any allocated RING, unless you've passed ownership of the RING object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRingXYZ (int vert); /** Allocates 2D RING [XYM] \param vert number of points [aka vertices] into the Ring \return the pointer to newly created RING object: NULL on failure \sa gaiaFreeRing, gaiaRingSetPoint, gaiaRingGetPoint, gaiaSetPointXYM, gaiaGetPointXYM \note you are responsible to destroy (before or after) any allocated RING, unless you've passed ownership of the RING object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRingXYM (int vert); /** Allocates a 3D RING [XYZM] \param vert number of points [aka vertices] into the Ring \return the pointer to newly created RING object: NULL on failure \sa gaiaFreeRing, gaiaRingSetPoint, gaiaRingGetPoint, gaiaSetPointXYZM, gaiaSetPointXYZM \note you are responsible to destroy (before or after) any allocated RING, unless you've passed ownership of the RING object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRingXYZM (int vert); /** Destroys a RING object \param ptr pointer to the RING object to be destroyed \sa gaiaAllocRing, gaiaAllocRingXYZ, gaiaAllocRingXYM, gaiaAllocRingXYZM \note attempting to destroy any RING object whose ownership has already been transferred to some other (higher order) object is a serious error, and will easily cause severe memory corruption. */ GAIAGEO_DECLARE void gaiaFreeRing (gaiaRingPtr ptr); /** Copies coordinates between two RING objects \param dst destination RING [output] \param src origin RING [input] \sa gaiaCopyRingCoordsReverse \note both RING objects must have exactly the same number of points: if dimensions aren't the same for both objects, then the appropriate conversion will be silently applied. */ GAIAGEO_DECLARE void gaiaCopyRingCoords (gaiaRingPtr dst, gaiaRingPtr src); /** Copies coordinates between two RING objects in reverse order \param dst destination RING [output] \param src origin RING [input] \sa gaiaCopyRingCoords \note both RING objects must have exactly the same number of points: if dimensions aren't the same for both objects, then the appropriate conversion will be silently applied. */ GAIAGEO_DECLARE void gaiaCopyRingCoordsReverse (gaiaRingPtr dst, gaiaRingPtr src); /** Allocates a 2D POLYGON [XY] \param vert number of points [aka vertices] into the Exterior Ring. \param holes number of Interior Rings [0, if no Interior Ring is required]. \return the pointer to newly created POLYGON object: NULL on failure \sa gaiaFreePolygon \note you are responsible to destroy (before or after) any allocated POLYGON, unless you've passed ownership of the POLYGON object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygon (int vert, int holes); /** Allocates a 3D POLYGON [XYZ] \param vert number of points [aka vertices] into the Exterior Ring. \param holes number of Interior Rings [0, if no Interior Ring is required]. \return the pointer to newly created POLYGON object: NULL on failure \sa gaiaFreePolygon \note you are responsible to destroy (before or after) any allocated POLYGON, unless you've passed ownership of the POLYGON object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygonXYZ (int vert, int holes); /** Allocates a 2D POLYGON [XYM] \param vert number of points [aka vertices] into the Exterior Ring. \param holes number of Interior Rings [0, if no Interior Ring is required]. \return the pointer to newly created POLYGON object: NULL on failure \sa gaiaFreePolygon \note you are responsible to destroy (before or after) any allocated POLYGON, unless you've passed ownership of the POLYGON object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygonXYM (int vert, int holes); /** Allocates a 3D POLYGON [XYZM] \param vert number of points [aka vertices] into the Exterior Ring. \param holes number of Interior Rings [may by 0, if no Interior Ring is required]. \return the pointer to newly created POLYGON object: NULL on failure \sa gaiaFreePolygon \note you are responsible to destroy (before or after) any allocated POLYGON, unless you've passed ownership of the POLYGON object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygonXYZM (int vert, int holes); /** Allocates a POLYGON \param ring pointer to a valid RING object: assumed to be the Polygon's Exterior Ring. \return the pointer to newly created POLYGON object: NULL on failure \sa gaiaAllocRing, gaiaAllocRingXYZ, gaiaAllocRingXYM, gaiaAllocRingXYZM, gaiaFreePolygon \note you are responsible to destroy (before or after) any allocated POLYGON, unless you've passed ownership of the POLYGON object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. \n Ownership of passed Ring object will be transferred to the Polygon object being created. */ GAIAGEO_DECLARE gaiaPolygonPtr gaiaCreatePolygon (gaiaRingPtr ring); /** Destroys a POLYGON object \param polyg pointer to the POLYGON object to be destroyed \sa gaiaAllocPolygon, gaiaAllocPolygonXYZ, gaiaAllocPolygonXYM, gaiaAllocPolygonXYZM, gaiaCreatePolygon \note attempting to destroy any POLYGON object whose ownership has already been transferred to some other (higher order) object is a serious error, and will easily cause severe memory corruption. \n Ownership of each RING object referenced by a POLYGON object always belongs to the POLYGON itself, so destroying the POLYGON will surely destroy any related RING as well. */ GAIAGEO_DECLARE void gaiaFreePolygon (gaiaPolygonPtr polyg); /** Allocates a 2D Geometry [XY] \return the pointer to newly created Geometry object: NULL on failure \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomColl (void); /** Allocates a 3D Geometry [XYZ] \return the pointer to newly created Geometry object: NULL on failure \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomCollXYZ (void); /** Allocates a 2D Geometry [XYM] \return the pointer to newly created Geometry object: NULL on failure \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomCollXYM (void); /** Allocates a 3D Geometry [XYZM] \return the pointer to newly created Geometry object: NULL on failure \sa gaiaFreeGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomCollXYZM (void); /** Destroys a Geometry object \param geom pointer to the Geometry object to be destroyed \sa gaiaAllocGeomColl, gaiaAllocGeomCollXYZ, gaiaAllocGeomCollXYM, gaiaAllocGeomCollXYZM \note attempting to destroy any Geometry object whose ownership has already been transferred to some other (higher order) object is a serious error, and will easily cause severe memory corruption. \n Ownership of each POINT, LINESTRING or POLYGON object referenced by a Geometry object always belongs to the Geometry itself, so destroying the Geometry will surely destroy any related elementary geometry item as well. */ GAIAGEO_DECLARE void gaiaFreeGeomColl (gaiaGeomCollPtr geom); /** Creates a new 2D Point [XY] object into a Geometry object \param p pointer to the Geometry object \param x X coordinate of the Point to be created \param y X coordinate of the Point to be created \note ownership of the newly created POINT object belongs to the Geometry object. */ GAIAGEO_DECLARE void gaiaAddPointToGeomColl (gaiaGeomCollPtr p, double x, double y); /** Creates a new 3D Point [XYZ] object into a Geometry object \param p pointer to the Geometry object \param x X coordinate of the Point to be created \param y X coordinate of the Point to be created \param z Z coordinate of the Point to be created \note ownership of the newly created POINT object belongs to the Geometry object. */ GAIAGEO_DECLARE void gaiaAddPointToGeomCollXYZ (gaiaGeomCollPtr p, double x, double y, double z); /** Creates a new 2D Point [XYM] object into a Geometry object \param p pointer to the Geometry object \param x X coordinate of the Point to be created \param y X coordinate of the Point to be created \param m M measure of the Point to be created \note ownership of the newly created POINT object belongs to the Geometry object. */ GAIAGEO_DECLARE void gaiaAddPointToGeomCollXYM (gaiaGeomCollPtr p, double x, double y, double m); /** Creates a new 3D Point [XYZM] object into a Geometry object \param p pointer to the Geometry object \param x X coordinate of the Point to be created \param y X coordinate of the Point to be created \param z Z coordinate of the Point to be created \param m M measure of the Point to be created \note ownership of the newly created POINT object belongs to the Geometry object. */ GAIAGEO_DECLARE void gaiaAddPointToGeomCollXYZM (gaiaGeomCollPtr p, double x, double y, double z, double m); /** Creates a new Linestring object into a Geometry object \param p pointer to the Geometry object. \param vert number of points [aka vertices] into the Linestring. \return the pointer to newly created Linestring: NULL on failure. \note ownership of the newly created Linestring object belongs to the Geometry object. \n the newly created Linestring will have the same dimensions as the Geometry has. */ GAIAGEO_DECLARE gaiaLinestringPtr gaiaAddLinestringToGeomColl (gaiaGeomCollPtr p, int vert); /** Inserts an already existing Linestring object into a Geometry object \param p pointer to the Geometry object. \param line pointer to the Linestring object. \note ownership of the Linestring object will be transferred to the Geometry object. */ GAIAGEO_DECLARE void gaiaInsertLinestringInGeomColl (gaiaGeomCollPtr p, gaiaLinestringPtr line); /** Creates a new Polygon object into a Geometry object \param p pointer to the Geometry object. \param vert number of points [aka vertices] into the Polygon's Exterior Ring. \param interiors number of Interiors Rings [0, if no Interior Ring is required] \return the pointer to newly created Polygon: NULL on failure. \note ownership of the newly created Polygon object belongs to the Geometry object. \n the newly created Polygon will have the same dimensions as the Geometry has. */ GAIAGEO_DECLARE gaiaPolygonPtr gaiaAddPolygonToGeomColl (gaiaGeomCollPtr p, int vert, int interiors); /** Creates a new Polygon object into a Geometry object starting from an already existing Ring object \param p pointer to the Geometry object. \param ring pointer to the Ring object [assumed to represent to Polygon's Exterior Ring]. \return the pointer to the newly created Polygon object: NULL on failure. \note ownership of the Ring object will be transferred to the Polygon object, and the Polygon object ownerships belongs to the Geometry object. \n the Polygon object will have the same dimensions as the Ring object has. */ GAIAGEO_DECLARE gaiaPolygonPtr gaiaInsertPolygonInGeomColl (gaiaGeomCollPtr p, gaiaRingPtr ring); /** Creates a new Interior Ring object into a Polygon object \param p pointer to the Polygon object. \param pos relative position index [first Interior Ring has index 0]. \param vert number of points (aka vertices) into the Ring. \return the pointer to the newly created Ring object: NULL on failure. \sa gaiaAllocPolygon, gaiaAllocPolygonXYZ, gaiaAllocPolygonXYM, gaiaAllocPolygonXYZM \note ownership of the Ring object belongs to the Polygon object. \n the newly created Ring will have the same dimensions the Polygon has. */ GAIAGEO_DECLARE gaiaRingPtr gaiaAddInteriorRing (gaiaPolygonPtr p, int pos, int vert); /** Inserts an already existing Ring object into a Polygon object \param p pointer to the Polygon object \param ring pointer to the Ring object \sa gaiaAddRingToPolygon \note ownership of the Ring object still remains to the calling procedure (a duplicated copy of the original Ring will be inserted into the Polygon). \n the newly created Polygon will have the same dimensions as the Ring has. \n if required the Polygon's Interior Rings count could be increased. */ GAIAGEO_DECLARE void gaiaInsertInteriorRing (gaiaPolygonPtr p, gaiaRingPtr ring); /** Inserts an already existing Ring object into a Polygon object \param polyg pointer to the Polygon object \param ring pointer to the Ring object \sa gaiaInsertInteriorRing \note ownership of the Ring object will be transferred to the Polygon object. \n the newly created Polygon will have the same dimensions as the Ring has. \n if required the Polygon's Interior Rings count could be increased. */ GAIAGEO_DECLARE void gaiaAddRingToPolyg (gaiaPolygonPtr polyg, gaiaRingPtr ring); /** Duplicates a Linestring object \param line pointer to Linestring object [origin]. \return the pointer to newly created Linestring object: NULL on failure. \sa gaiaCloneRing, gaiaClonePolygon, gaiaCloneGeomColl, gaiaCloneGeomCollPoints, gaiaCloneGeomCollLinestrings, gaiaCloneGeomCollPolygons, gaiaCloneLinestringSpecial \note the newly created object is an exact copy of the original one. */ GAIAGEO_DECLARE gaiaLinestringPtr gaiaCloneLinestring (gaiaLinestringPtr line); /** Duplicates a Linestring object (special) \param line pointer to Linestring object [origin]. \param mode one of GAIA_SAME_ORDER or GAIA_REVERSE_ORDER. \return the pointer to newly created Linestring object: NULL on failure. \sa gaiaCloneLinestring, gaiaCloneGeomCollSpecial \note if GAIA_REVERSE_ORDER is specified, then any vertex into the newly created object will be in reverse order [first vertex will be last one, and last vertex will be the first one]. In any other case this function will simply default to gaiaCloneLinestring. */ GAIAGEO_DECLARE gaiaLinestringPtr gaiaCloneLinestringSpecial (gaiaLinestringPtr line, int mode); /** Duplicates a Ring object \param ring pointer to Ring object [origin]. \return the pointer to newly created Ring object: NULL on failure. \sa gaiaCloneLinestring, gaiaClonePolygon, gaiaCloneGeomColl, gaiaCloneGeomCollPoints, gaiaCloneGeomCollLinestrings, gaiaCloneGeomCollPolygons, gaiaCloneRingSpecial \note the newly created object is an exact copy of the original one. */ GAIAGEO_DECLARE gaiaRingPtr gaiaCloneRing (gaiaRingPtr ring); /** Duplicates a Ring object (special) \param ring pointer to Ring object [origin]. \param mode one of GAIA_SAME_ORDER or GAIA_REVERSE_ORDER. \return the pointer to newly created Ring object: NULL on failure. \sa gaiaCloneRing, gaiaClonePolygonSpecial \note if GAIA_REVERSE_ORDER is specified, then any vertex into the newly created object will be in reverse order [first vertex will be last one, and last vertex will be the first one]. In any other case this function will simply default to gaiaCloneRing. */ GAIAGEO_DECLARE gaiaRingPtr gaiaCloneRingSpecial (gaiaRingPtr ring, int mode); /** Duplicates a Polygon object \param polyg pointer to Polygon object [origin]. \return the pointer to newly created Polygon object: NULL on failure. \sa gaiaCloneLinestring, gaiaCloneRing, gaiaCloneGeomColl, gaiaCloneGeomCollPoints, gaiaCloneGeomCollLinestrings, gaiaCloneGeomCollPolygons, gaiaClonePolygonSpecial \note the newly created object is an exact copy of the original one. */ GAIAGEO_DECLARE gaiaPolygonPtr gaiaClonePolygon (gaiaPolygonPtr polyg); /** Duplicates a Polygon object (special) \param polyg pointer to Polygon object [origin]. \param mode one of GAIA_SAME_ORDER, GAIA_REVERSE_ORDER or GAIA_LHR_ORDER. \return the pointer to newly created Polygon object: NULL on failure. \sa gaiaClonePolygon, gaiaCloneGeomCollSpecial \note if GAIA_REVERSE_ORDER is specified, then any Ring into the newly created object will be in reverse order. If GAIA_LHR_ORDER is specified instead, any Exterior Ring will have clockwise orientation, and any Interior Ring will have counter-clockwise orientation. In any other case this function will simply default to gaiaClonePolygon. */ GAIAGEO_DECLARE gaiaPolygonPtr gaiaClonePolygonSpecial (gaiaPolygonPtr polyg, int mode); /** Duplicates a Geometry object \param geom pointer to Geometry object [origin]. \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaCloneLinestring, gaiaCloneRing, gaiaClonePolygon, gaiaCloneGeomCollPoints, gaiaCloneGeomCollLinestrings, gaiaCloneGeomCollPolygons, gaiaCastGeomCollToXY, gaiaCastGeomCollToXYZ, gaiaCastGeomCollToXYM, gaiaCastGeomCollToXYZM, gaiaExtractPointsFromGeomColl, gaiaExtractLinestringsFromGeomColl, gaiaExtractPolygonsFromGeomColl, gaiaMergeGeometries, gaiaCloneGeomCollSpecial \note the newly created object is an exact copy of the original one. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomColl (gaiaGeomCollPtr geom); /** Duplicates a Geometry object (special) \param geom pointer to Geometry object [origin]. \param mode one of GAIA_SAME_ORDER, GAIA_REVERSE_ORDER or GAIA_LHR_ORDER. \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaCloneLinestringSpecial, gaiaCloneRingSpecial, gaiaClonePolygonSpecial, gaiaCloneGeomColl \note if GAIA_REVERSE_ORDER is specified, then any Linestring and/or Ring into the newly created object will be in reverse order. If GAIA_LHR_ORDER is specified instead, any Polygong will have the Exterior Ring in clockwise orientation, and any Interior Ring int counter-clockwise orientation. In any other case this function will simply default to gaiaCloneGeomColl. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollSpecial (gaiaGeomCollPtr geom, int mode); /** Duplicates a Geometry object [Points only] \param geom pointer to Geometry object [origin]. \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaCloneLinestring, gaiaCloneRing, gaiaClonePolygon, gaiaCloneGeomColl, gaiaCloneGeomCollLinestrings, gaiaCloneGeomCollPolygons \note the newly created object is an exact copy of the original one; except in that only Point objects will be copied. \n Caveat: an empty Geometry could be returned. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollPoints (gaiaGeomCollPtr geom); /** Duplicates a Geometry object [Linestrings only] \param geom pointer to Geometry object [origin]. \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaCloneLinestring, gaiaCloneRing, gaiaClonePolygon, gaiaCloneGeomColl, gaiaCloneGeomCollPoints, gaiaCloneGeomCollPolygons \note the newly created object is an exact copy of the original one; except in that only Linestrings objects will be copied. \n Caveat: an empty Geometry could be returned. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollLinestrings (gaiaGeomCollPtr geom); /** Duplicates a Geometry object [Polygons only] \param geom pointer to Geometry object [origin]. \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaCloneLinestring, gaiaCloneRing, gaiaClonePolygon, gaiaCloneGeomColl, gaiaCloneGeomCollPoints, gaiaCloneGeomCollLinestrings \note the newly created object is an exact copy of the original one; except in that only Polygons objects will be copied. \n Caveat: an empty Geometry could be returned. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollPolygons (gaiaGeomCollPtr geom); /** Duplicates a Geometry object [casting dimensions to 2D XY] \param geom pointer to Geometry object [origin]. \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaCloneGeomColl, gaiaCastGeomCollToXYZ, gaiaCastGeomCollToXYM, gaiaCastGeomCollToXYZM \note the newly created object is an exact copy of the original one; except in that any elementary item will be casted to 2D [XY] dimensions. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXY (gaiaGeomCollPtr geom); /** Duplicates a Geometry object [casting dimensions to 3D XYZ] \param geom pointer to Geometry object [origin]. \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaCloneGeomColl, gaiaCastGeomCollToXY, gaiaCastGeomCollToXYM, gaiaCastGeomCollToXYZM \note the newly created object is an exact copy of the original one; except in that any elementary item will be cast to 3D [XYZ] dimensions. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXYZ (gaiaGeomCollPtr geom); /** Duplicates a Geometry object [casting dimensions to 2D XYM] \param geom pointer to Geometry object [origin]. \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaCloneGeomColl, gaiaCastGeomCollToXY, gaiaCastGeomCollToXYZ, gaiaCastGeomCollToXYZM \note the newly created object is an exact copy of the original one; except in that any elementary item will be cast to 2D [XYM] dimensions. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXYM (gaiaGeomCollPtr geom); /** Duplicates a Geometry object [casting dimensions to 3D XYZM] \param geom pointer to Geometry object [origin]. \return the pointer to newly created Geometry object: NULL on failure. \sa gaiaCloneGeomColl, gaiaCastGeomCollToXY, gaiaCastGeomCollToXYZ, gaiaCastGeomCollToXYM \note the newly created object is an exact copy of the original one; except in that any elementary item will be cast to 3D [XYZM] dimensions. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXYZM (gaiaGeomCollPtr geom); /** Gets coodinates from a Linestring's Point \param ln pointer to Linestring object. \param v relative position of Point: first Point has index 0 \param x on completion this variable will contain the Point X coordinate. \param y on completion this variable will contain the Point Y coordinate. \param z on completion this variable will contain the Point Z coordinate. \param m on completion this variable will contain the Point M measure. \return 0 on failure: any other different value on success. \sa gaiaLineSetPoint, gaiaGetPoint, gaiaGetPointXYZ, gaiaGetPointXYM, gaiaGetPointXYZM \note this function perform the same identical task performed by gaiaGetPoint(), gaiaGetPointXYZ(), gaiaGetPointXYM() and gaiaGetPointXYZM() macros. \n using the gaiaLineGetPoint() function is a little bit slower but is intrinsically safest, because misused macros can easily cause severe memory corruption. \n gaiaLineGetPoint() instead will always ensure that the appropriate dimensions (as declared by the Linestring object) will be correctly used. */ GAIAGEO_DECLARE int gaiaLineGetPoint (gaiaLinestringPtr ln, int v, double *x, double *y, double *z, double *m); /** Sets coordinates for a Linestring's Point \param ln pointer to Linestring object. \param v relative position of Point: first Point has index 0 \param x the Point's X coordinate. \param y the Point's Y coordinate. \param z the Point's Z coordinate. \param m the Point's M measure. \return 0 on failure: any other different value on success. \sa gaiaLineGetPoint, gaiaSetPoint, gaiaSetPointXYZ, gaiaSetPointXYM, gaiaSetPointXYZM \note this function perform the same identical task performed by gaiaSetPoint(), gaiaSetPointXYZ(), gaiaSetPointXYM() and gaiaSetPointXYZM() macros. \n using the gaiaLineSetPoint() function is a little bit slower but is intrinsically safest, because misused macros can easily cause severe memory corruption. \n gaiaLineSetPoint() instead will always ensure that the appropriate dimensions (as declared by the Linestring object) will be correctly used. */ GAIAGEO_DECLARE int gaiaLineSetPoint (gaiaLinestringPtr ln, int v, double x, double y, double z, double m); /** Gets coordinates from a Ring's Point \param rng pointer to Ring object. \param v relative position of Point: first Point has index 0 \param x on completion this variable will contain the Point X coordinate. \param y on completion this variable will contain the Point Y coordinate. \param z on completion this variable will contain the Point Z coordinate. \param m on completion this variable will contain the Point M measure. \return 0 on failure: any other different value on success. \sa gaiaRingSetPoint, gaiaGetPoint, gaiaGetPointXYZ, gaiaGetPointXYM, gaiaGetPointXYZM \note this function perform the same identical task performed by gaiaGetPoint(), gaiaGetPointXYZ(), gaiaGetPointXYM() and gaiaGetPointXYZM() macros. \n using the gaiaRingGetPoint() function is a little bit slower but is intrinsically safest, because misused macros can easily cause severe memory corruption. \n gaiaRingGetPoint() instead will always ensure that the appropriate dimensions (as declared by the Ring object) will be correctly used. */ GAIAGEO_DECLARE int gaiaRingGetPoint (gaiaRingPtr rng, int v, double *x, double *y, double *z, double *m); /** Sets coodinates for a Ring's Point \param rng pointer to Ring object. \param v relative position of Point: first Point has index 0 \param x the Point's X coordinate. \param y the Point's Y coordinate. \param z the Point's Z coordinate. \param m the Point's M measure. \return 0 on failure: any other different value on success. \sa gaiaRingGetPoint, gaiaGetPoint, gaiaGetPointXYZ, gaiaSetPointXYM, gaiaSetPointXYZM \note this function perform the same identical task performed by gaiaSetPoint(), gaiaSetPointXYZ(), gaiaSetPointXYM() and gaiaSetPointXYZM() macros. \n using the gaiaRingSetPoint() function is a little bit slower but is intrinsically safest, because misused macros can easily cause severe memory corruption. \n gaiaRingSetPoint() instead will always ensure that the appropriate dimensions (as declared by the Ring object) will be correctly used. */ GAIAGEO_DECLARE int gaiaRingSetPoint (gaiaRingPtr rng, int v, double x, double y, double z, double m); /** Determines OGC dimensions for a Geometry object \param geom pointer to Geometry object \return OGC dimensions \note OGC dimensions are defined as follows: \li if the Geometry doesn't contain any elementary item: \b -1 \li if the Geometry only contains Point items: \b 0 \li if the Geometry only contains Point / Linestring items: \b 1 \li if the Geometry contains some Polygon item: \b 2 */ GAIAGEO_DECLARE int gaiaDimension (gaiaGeomCollPtr geom); /** Determines the corresponding Type for a Geometry object \param geom pointer to Geometry object \return the corresponding Geometry Type \note Type is one of: GAIA_POINT, GAIA_LINESTRING, GAIA_POLYGON, GAIA_MULTIPOINT, GAIA_MULTILINESTRING, GAIA_MULTIPOLYGON, GAIA_GEOMETRYCOLLECTION, GAIA_POINTZ, GAIA_LINESTRINGZ, GAIA_POLYGONZ, GAIA_MULTIPOINTZ, GAIA_MULTILINESTRINGZ, GAIA_MULTIPOLYGONZ, GAIA_GEOMETRYCOLLECTIONZ, GAIA_POINTM, GAIA_LINESTRINGM, GAIA_POLYGONM, GAIA_MULTIPOINTM, GAIA_MULTILINESTRINGM, GAIA_MULTIPOLYGONM, GAIA_GEOMETRYCOLLECTIONM, GAIA_POINTZM, GAIA_LINESTRINGZM, GAIA_POLYGONZM, GAIA_MULTIPOINTZM, GAIA_MULTILINESTRINGZM, GAIA_MULTIPOLYGONZM, GAIA_GEOMETRYCOLLECTIONZM \n on failure GAIA_NONE will be returned. */ GAIAGEO_DECLARE int gaiaGeometryType (gaiaGeomCollPtr geom); /** Determines the corresponding Type for a Geometry object \param geom pointer to Geometry object \return the corresponding Geometry Type \sa gaiaGeometryType \note Type is one of: GAIA_POINT, GAIA_LINESTRING, GAIA_POLYGON, GAIA_MULTIPOINT, GAIA_MULTILINESTRING, GAIA_MULTIPOLYGON, GAIA_GEOMETRYCOLLECTION \n on failure GAIA_NONE will be returned. \remark deprecated function (used in earlier SpatiaLite versions). */ GAIAGEO_DECLARE int gaiaGeometryAliasType (gaiaGeomCollPtr geom); /** Checks for empty Geometry object \param geom pointer to Geometry object \return 0 if the Geometry is empty: otherwise any other different value. \note an empty Geometry is a Geometry not containing any elementary item: i.e. no Points, no Linestrings and no Polygons at all. */ GAIAGEO_DECLARE int gaiaIsEmpty (gaiaGeomCollPtr geom); /** Checks for toxic Geometry object \param geom pointer to Geometry object \return 0 if the Geometry is not toxic: otherwise any other different value. \sa gaiaIsToxic_r, gaiaSanitize \note a \b toxic Geometry is a Geometry containing severely malformed Polygons: i.e. containing less than 4 Points. \n Or containing severely malformed Linestrings: i.e. containing less than 2 Points. \n Attempting to pass any toxic Geometry to GEOS supported functions will easily cause a crash.\n not reentrant and thread unsafe. */ GAIAGEO_DECLARE int gaiaIsToxic (gaiaGeomCollPtr geom); /** Checks for toxic Geometry object \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom pointer to Geometry object \return 0 if the Geometry is not toxic: otherwise any other different value. \sa gaiaIsToxic, gaiaSanitize \note a \b toxic Geometry is a Geometry containing severely malformed Polygons: i.e. containing less than 4 Points. \n Or containing severely malformed Linestrings: i.e. containing less than 2 Points. \n Attempting to pass any toxic Geometry to GEOS supported functions will easily cause a crash.\n reentrant and thread-safe. */ GAIAGEO_DECLARE int gaiaIsToxic_r (const void *p_cache, gaiaGeomCollPtr geom); /** Checks for not-closed Rings \param ring pointer to Ring object \return 0 if the Ring in unclosed: otherwise any other different value. \sa gaiaIsNotClosedRing_r, gaiaIsToxic, gaiaIsNotClosedGeomColl \note unclosed Rings cause GEOS supported functions to crash. \n SpatiaLite will always carefully check any Ring before passing it to GEOS, eventually silently inserting a further point required so to properly close the figure. \n This function allows to explicitly identify any unclosed Ring.\n not reentrant and thread unsafe. */ GAIAGEO_DECLARE int gaiaIsNotClosedRing (gaiaRingPtr ring); /** Checks for not-closed Rings \param p_cache a memory pointer returned by spatialite_alloc_connection() \param ring pointer to Ring object \return 0 if the Ring in unclosed: otherwise any other different value. \sa gaiaIsNotClosedRing, gaiaIsToxic, gaiaIsNotClosedGeomColl \note unclosed Rings cause GEOS supported functions to crash. \n SpatiaLite will always carefully check any Ring before passing it to GEOS, eventually silently inserting a further point required so to properly close the figure. \n This function allows to explicitly identify any unclosed Ring.\n reentrant and thread-safe. */ GAIAGEO_DECLARE int gaiaIsNotClosedRing_r (const void *p_data, gaiaRingPtr ring); /** Checks for not-closed Rings in a Geometry object \param geom pointer to Geometry object \return 0 if the Geometry has no unclosed Rings: otherwise any other different value. \sa gaiaIsNotClosedGeomColl_r, gaiaIsToxic, gaiaIsNotClosedRing \note This function allows to explicitly identify any Geometry containing at least one unclosed Ring.\n not reentrant and thread unsafe. */ GAIAGEO_DECLARE int gaiaIsNotClosedGeomColl (gaiaGeomCollPtr geom); /** Checks for not-closed Rings in a Geometry object \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom pointer to Geometry object \return 0 if the Geometry has no unclosed Rings: otherwise any other different value. \sa gaiaIsNotClosedGeomColl, gaiaIsToxic, gaiaIsNotClosedRing \note This function allows to explicitly identify any Geometry containing at least one unclosed Ring.\n reentrant and thread-safe. */ GAIAGEO_DECLARE int gaiaIsNotClosedGeomColl_r (const void *p_data, gaiaGeomCollPtr geom); /** Attempts to sanitize a possibly malformed Geometry object \param org pointer to Geometry object. \return the pointer to newly created Geometry: NULL on failure. \sa gaiaIsToxic \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaSanitize() \n the output Geometry will surely have: \li no repeated Points on Linestrings or Rings (i.e. consecutive Points sharing exactly the same coordinates): any repeated Point will be suppressed, simply leaving only the first occurrence. \li proper Ring closure: for sure any Ring will have exactly coinciding first and last Points. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSanitize (gaiaGeomCollPtr org); /** Attempts to resolve a (Multi)Linestring from a Geometry object \param geom pointer to Geometry object. \param force_multi: 0 if the returned Geometry could represent a Linestring: any other value if casting to MultiLinestring is required unconditionally. \return the pointer to newly created Geometry: NULL on failure. \sa gaiaDissolveSegments, gaiaDissolvePoints \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaLinearize() \n the input Geometry is expected to contain Polygons only: then any Ring will be transformed into the corresponding Linestring. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLinearize (gaiaGeomCollPtr geom, int force_multi); /** Attempts to resolve a collection of Segments from a Geometry object \param geom pointer to Geometry object. \return the pointer to newly created Geometry: NULL on failure. \sa gaiaLinearize, gaiaDissolvePoints \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaDissolveSegments() \n the input Geometry can be of any arbitrary type: \li any Point will be copied untouched. \li any Linestring will be dissolved into Segments. \li any Ring will be dissolved into Segments. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDissolveSegments (gaiaGeomCollPtr geom); /** Attempts to resolve a collection of Points from a Geometry object \param geom pointer to Geometry object. \return the pointer to newly created Geometry: NULL on failure. \sa gaiaLinearize, gaiaDissolveSegments \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaDissolvePoints() \n the input Geometry can be of any arbitrary type: \li any Point will be copied untouched. \li any Linestring will be dissolved into sparse Points. \li any Ring will be dissolved into sparse Points. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDissolvePoints (gaiaGeomCollPtr geom); /** Extracts any Point from a Geometry object \param geom pointer to Geometry object \return the pointer to newly created Geometry: NULL on failure. \sa gaiaExtractLinestringsFromGeomColl, gaiaExtractPolygonsFromGeomColl, gaiaCloneGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaExtractPointsFromGeomColl() \n the newly created Geometry will contain any Point contained into the input Geometry. \n if the input Geometry doesn't contains any Point, then NULL will be returned. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaExtractPointsFromGeomColl (gaiaGeomCollPtr geom); /** Extracts any Linestring from a Geometry object \param geom pointer to Geometry object \return the pointer to newly created Geometry: NULL on failure. \sa gaiaExtractPointsFromGeomColl, gaiaExtractPolygonsFromGeomColl, gaiaCloneGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaExtractLinestringsFromGeomColl() \n the newly created Geometry will contain any Linestring contained into the input Geometry. \n if the input Geometry doesn't contains any Linestring, then NULL will be returned. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaExtractLinestringsFromGeomColl (gaiaGeomCollPtr geom); /** Extracts any Polygon from a Geometry object \param geom pointer to Geometry object \return the pointer to newly created Geometry: NULL on failure. \sa gaiaExtractPointsFromGeomColl, gaiaExtractLinestringsFromGeomColl, gaiaCloneGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaExtractPolygonsFromGeomColl() \n the newly created Geometry will contain any Polygon contained into the input Geometry. \n if the input Geometry doesn't contains any Polygon, then NULL will be returned. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaExtractPolygonsFromGeomColl (gaiaGeomCollPtr geom); /** Merges two Geometry objects into a single one \param geom1 pointer to first Geometry object. \param geom2 pointer to second Geometry object. \return the pointer to newly created Geometry: NULL on failure. \sa gaiaMergeGeometries_r, gaiaCloneGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaMergeGeometries() \n the newly created Geometry will contain any Point, Linestring and/or Polygon contained in both input Geometries.\n not reentrant and thread unsafe. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMergeGeometries (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Merges two Geometry objects into a single one \param p_cache a memory pointer returned by spatialite_alloc_connection() \param geom1 pointer to first Geometry object. \param geom2 pointer to second Geometry object. \return the pointer to newly created Geometry: NULL on failure. \sa gaiaMergeGeometries, gaiaCloneGeomColl \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaMergeGeometries() \n the newly created Geometry will contain any Point, Linestring and/or Polygon contained in both input Geometries.\n reentrant and thread-safe. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMergeGeometries_r (const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2); /** Return a GeometryCollection containing elements matching the specified range of measures \param geom pointer to Geometry object \param m_start range of measures: start value \param m_end range of measures: end value \return the pointer to newly created Geometry: NULL on failure. \note you are responsible to destroy (before or after) any allocated Geometry, this including any Geometry created by gaiaLocateBetweenMeasures() \n the newly created Geometry will contain Points and/or Linestrings. \n if the input Geometry has no M dimension then NULL will be returned. \n if the input Geometry doesn't contains any point/vertex corresponding to the required range of measures then NULL will be returned. \n if the input Geometry contains any Polygon (or is a GeometryCollection) then NULL will be returned. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLocateBetweenMeasures (gaiaGeomCollPtr geom, double m_start, double m_end); /** Measures the geometric length for a Linestring or Ring \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_ZM \param coords pointed to COORD mem-array \param vert number of Points (aka Vertices) within the COORD mem-array \return the calculated geometric length \sa gaiaGeomCollLength \note \b dims, \b coords and \b vert are usually expected to correspond to \b DimensionModel, \b Coords and \b Points members from a gaiaLinestringStruct or gaiaRingStruct \remark internal method: doesn't require any GEOS support. */ GAIAGEO_DECLARE double gaiaMeasureLength (int dims, double *coords, int vert); /** Measures the geometric area for a Ring object \param ring pointer to Ring object \return the calculated geometric area \sa gaiaGeomCollArea \remark internal method: doesn't require any GEOS support. */ GAIAGEO_DECLARE double gaiaMeasureArea (gaiaRingPtr ring); /** Determines the Centroid for a Ring object \param ring pointer to Ring object. \param rx on completion this variable will contain the centroid X coordinate. \param ry on completion this variable will contain the centroid Y coordinate. \sa gaiaGeomCollCentroid \remark internal method: doesn't require any GEOS support. */ GAIAGEO_DECLARE void gaiaRingCentroid (gaiaRingPtr ring, double *rx, double *ry); /** Determines the direction for a Ring object \param p pointer to Ring object \return 0 if the ring has counter-clockwise direction; any other different value for clockwise direction. */ GAIAGEO_DECLARE void gaiaClockwise (gaiaRingPtr p); /** Check if a Point lays on a Ring surface \param ring pointer to Ring object \param pt_x Point X coordinate \param pt_y Point Y coordinate \return 0 if false: any other value if true */ GAIAGEO_DECLARE int gaiaIsPointOnRingSurface (gaiaRingPtr ring, double pt_x, double pt_y); /** Checks if a Point lays on a Polygon surface \param polyg pointer to Polygon object \param x Point X coordinate \param y Point Y coordinate \return 0 if false: any other value if true */ GAIAGEO_DECLARE int gaiaIsPointOnPolygonSurface (gaiaPolygonPtr polyg, double x, double y); /** Computes the minimum distance between a Point and a Linestring or Ring \param x0 Point X coordinate \param y0 Point Y coordinate \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_ZM \param coords pointed to COORD mem-array \param vert number of Points (aka Vertices) within the COORD mem-array \return the calculated minumum distance. \note \b dims, \b coords and \b vert are usually expected to correspond to \b DimensionModel, \b Coords and \b Points members from a gaiaLinestringStruct or gaiaRingStruct */ GAIAGEO_DECLARE double gaiaMinDistance (double x0, double y0, int dims, double *coords, int vert); /** Determines the intesection Point between two Segments \param x0 on completion this variable will contain the Intersection X coord \param y0 on completion this variable will contain the Intersection Y coord \param x1 start Point X of first Segment \param y1 start Point Y of first Segment \param x2 end Point X of first Segment \param y2 end Point Y of first Segment \param x3 start Point X of second Segment \param y3 start Point Y of second Segment \param x4 end Point X of second Segment \param y4 end Point Y of second Segment \return 0 if the Segments doesn't intersect at all: any other value on success. */ GAIAGEO_DECLARE int gaiaIntersect (double *x0, double *y0, double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4); /** Shifts any coordinate within a Geometry object \param geom pointer to Geometry object. \param shift_x X axis shift factor. \param shift_y Y axis shift factor. \sa gaiaScaleCoords, gaiaRotateCoords, gaiaReflectCoords, gaiaSwapCoords, gaiaShiftCoords3D, gaiaShiftLongitude */ GAIAGEO_DECLARE void gaiaShiftCoords (gaiaGeomCollPtr geom, double shift_x, double shift_y); /** Shifts any coordinate within a 3D Geometry object \param geom pointer to Geometry object. \param shift_x X axis shift factor. \param shift_y Y axis shift factor. \param shift_z Z axis shift factor. \sa gaiaScaleCoords, gaiaRotateCoords, gaiaReflectCoords, gaiaSwapCoords, gaiaShiftCoords, gaiaShiftLongitude, gaiaNormalizeLonLat */ GAIAGEO_DECLARE void gaiaShiftCoords3D (gaiaGeomCollPtr geom, double shift_x, double shift_y, double shift_z); /** Shifts negative longitudes \param geom pointer to Geometry object. \sa gaiaShiftCoords, gaiaShiftCoords3D, gaiaNormalizeLonLat \note only intended for geographic (longitude/latitude) coordinates. Negative longitudes (-180/0) will be shifted by 360, thus allowing to represent longitudes in the 0/360 range and effectively crossing the International Date Line. */ GAIAGEO_DECLARE void gaiaShiftLongitude (gaiaGeomCollPtr geom); /** Shifts any coordinate to within the "normal range" of longitude and latitude values (-180.0 to 180.0 longitude and -90.0 to 90.0 latitude). \param geom pointer to Geometry object. \sa gaiaScaleCoords, gaiaRotateCoords, gaiaReflectCoords, gaiaSwapCoords, gaiaShiftCoords3D, gaiaShiftLongitude */ GAIAGEO_DECLARE void gaiaNormalizeLonLat (gaiaGeomCollPtr geom); /** Scales any coordinate within a Geometry object \param geom pointer to Geometry object. \param scale_x X axis scale factor. \param scale_y Y axis scale factor. \sa gaiaShiftCoords, gaiaRotateCoords, gaiaReflectCoords, gaiaSwapCoords */ GAIAGEO_DECLARE void gaiaScaleCoords (gaiaGeomCollPtr geom, double scale_x, double scale_y); /** Rotates any coordinate within a Geometry object \param geom pointer to Geometry object. \param angle rotation angle [expressed in Degrees]. \sa gaiaShiftCoords, gaiaScaleCoords, gaiaReflectCoords, gaiaSwapCoords */ GAIAGEO_DECLARE void gaiaRotateCoords (gaiaGeomCollPtr geom, double angle); /** Reflects any coordinate within a Geometry object \param geom pointer to Geometry object. \param x_axis if set to 0, no X axis reflection will be applied: otherwise the X axis will be reflected. \param y_axis if set to 0, no Y axis reflection will be applied: otherwise the Y axis will be reflected. \sa gaiaShiftCoords, gaiaScaleCoords, gaiaRotateCoords, gaiaSwapCoords */ GAIAGEO_DECLARE void gaiaReflectCoords (gaiaGeomCollPtr geom, int x_axis, int y_axis); /** Swaps any coordinate within a Geometry object \param geom pointer to Geometry object. \sa gaiaShiftCoords, gaiaScaleCoords, gaiaRotateCoords, gaiaReflectCoords \note the X and Y axes will be swapped. */ GAIAGEO_DECLARE void gaiaSwapCoords (gaiaGeomCollPtr geom); /** Checks if two Linestring objects are equivalent \param line1 pointer to first Linestring object. \param line2 pointer to second Linestring object. \return 0 if false: any other different value if true \sa gaiaPolygonEquals \note two Linestrings objects are assumed to be equivalent if exactly \remark deprecated function (used in earlier SpatiaLite versions). the same Points are found in both them. */ GAIAGEO_DECLARE int gaiaLinestringEquals (gaiaLinestringPtr line1, gaiaLinestringPtr line2); /** Checks if two Polygons objects are equivalent \param polyg1 pointer to first Polygon object. \param polyg2 pointer to second Polygon object. \return 0 if false: any other different value if true \sa gaiaLinestringEquals \note two Polygon objects are assumed to be equivalent if exactly the same Points are found in both them. \remark deprecated function (used in earlier SpatiaLite versions). */ GAIAGEO_DECLARE int gaiaPolygonEquals (gaiaPolygonPtr polyg1, gaiaPolygonPtr polyg2); /** Retrieves Geodesic params for an Ellipsoid definition \param name text string identifying an Ellipsoid definition. \param a on completion this variable will contain the first geodesic param. \param b on completion this variable will contain the second geodesic param. \param rf on completion this variable will contain the third geodesic param. \return 0 on failure: any other value on success. \sa gaiaGreatCircleDistance, gaiaGeodesicDistance, gaiaGreatCircleTotalLength, gaiaGeodesicTotalLength \note supported Ellipsoid definitions are: \b MERIT, \b SGS85, \b GRS80, \b IAU76, \b airy, \b APL4.9, \b NWL9D, \b mod_airy, \b andrae, \b aust_SA, \b GRS67, \b bessel, \b bess_nam, \b clrk66, \b clrk80, \b CPM, \b delmbr, \b engelis, \b evrst30, \b evrst48, \b evrst56, \b evrst69, \b evrstSS, \b fschr60 */ GAIAGEO_DECLARE int gaiaEllipseParams (const char *name, double *a, double *b, double *rf); /** Calculates the Great Circle Distance between between two Points \param a first geodesic parameter. \param b second geodesic parameter. \param lat1 Latitude of first Point. \param lon1 Longitude of first Point. \param lat2 Latitude of second Point. \param lon2 Longitude of second Point. \return the calculated Great Circle Distance. \sa gaiaEllipseParams, gaiaGeodesicDistance, gaiaGreatCircleTotalLength, gaiaGeodesicTotalLength \note the returned distance is expressed in Kilometers. \n the Great Circle method is less accurate but fastest to be calculated. */ GAIAGEO_DECLARE double gaiaGreatCircleDistance (double a, double b, double lat1, double lon1, double lat2, double lon2); /** Calculates the Geodesic Distance between between two Points \param a first geodesic parameter. \param b second geodesic parameter. \param rf third geodesic parameter. \param lat1 Latitude of first Point. \param lon1 Longitude of first Point. \param lat2 Latitude of second Point. \param lon2 Longitude of second Point. \return the calculated Geodesic Distance. \sa gaiaEllipseParams, gaiaGreatCircleDistance, gaiaGreatCircleTotalLength, gaiaGeodesicTotalLength \note the returned distance is expressed in Kilometers. \n the Geodesic method is much more accurate but slowest to be calculated. */ GAIAGEO_DECLARE double gaiaGeodesicDistance (double a, double b, double rf, double lat1, double lon1, double lat2, double lon2); /** Calculates the Great Circle Total Length for a Linestring / Ring \param a first geodesic parameter. \param b second geodesic parameter. \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_ZM \param coords pointed to COORD mem-array \param vert number of Points (aka Vertices) within the COORD mem-array \return the calculated Great Circle Total Length. \sa gaiaEllipseParams, gaiaGreatCircleDistance, gaiaGeodesicDistance, gaiaGeodesicTotalLength \note the returned length is expressed in Kilometers. \n the Great Circle method is less accurate but fastest to be calculated. \n \b dims, \b coords and \b vert are usually expected to correspond to \b DimensionModel, \b Coords and \b Points members from a gaiaLinestringStruct or gaiaRingStruct */ GAIAGEO_DECLARE double gaiaGreatCircleTotalLength (double a, double b, int dims, double *coords, int vert); /** Calculates the Geodesic Total Length for a Linestring / Ring \param a first geodesic parameter. \param b second geodesic parameter. \param rf third geodesic parameter. \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_ZM \param coords pointed to COORD mem-array \param vert number of Points (aka Vertices) within the COORD mem-array \return the calculated Geodesic Total Length. \sa gaiaEllipseParams, gaiaGreatCircleDistance, gaiaGeodesicDistance, gaiaGreatCircleTotalLength \note the returned length is expressed in Kilometers. \n the Geodesic method is much more accurate but slowest to be calculated. \n \b dims, \b coords and \b vert are usually expected to correspond to \b DimensionModel, \b Coords and \b Points members from a gaiaLinestringStruct or gaiaRingStruct */ GAIAGEO_DECLARE double gaiaGeodesicTotalLength (double a, double b, double rf, int dims, double *coords, int vert); /** Convert a Length from a Measure Unit to another \param value the length measure to be converted. \param unit_from original Measure Unit. \param unit_to converted Measure Unit. \param cvt on completion this variable will contain the converted length measure. \note supported Measu Units are: GAIA_KM, GAIA_M, GAIA_DM, GAIA_CM, GAIA_MM, GAIA_KMI, GAIA_IN, GAIA_FT, GAIA_YD, GAIA_MI, GAIA_FATH, GAIC_CH, GAIA_LINK, GAIA_US_IN, GAIA_US_FT, GAIA_US_YD, GAIA_US_CH, GAIA_US_MI, GAIA_IND_YD, GAIA_IND_FT, GAIA_IND_CH */ GAIAGEO_DECLARE int gaiaConvertLength (double value, int unit_from, int unit_to, double *cvt); /** Creates a Circle (Linestring) Geometry \param center_x center point X coordinate. \param center_y center point Y coordinate. \param radius the circle's radius. \param step angular distance (in degrees) between points on the circumference. \sa gaiaMakeArc, gaiaMakeEllipse, gaiaMakeEllipticArc \note simply a convenience method defaulting to gaiaMakeEllipse with both axes set to radius value */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeCircle (double center_x, double center_y, double radius, double step); /** Creates an Ellipse (Linestring) Geometry \param center_x center point X coordinate. \param center_y center point Y coordinate. \param x_axis the ellipses's X axis. \param y_axis the ellipses's Y axis. \param step angular distance (in degrees) between points on the ellipse. \sa gaiaMakeEllipticArc, gaiaMakeCircle, gaiaMakeArc */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeEllipse (double center_x, double center_y, double x_axis, double y_axis, double step); /** Creates a Circular Arc (Linestring) Geometry \param center_x center point X coordinate. \param center_y center point Y coordinate. \param radius the circle's radius. \param start the start angle (in degrees). \param start the stop angle (in degrees). \param step angular distance (in degrees) between points on the circumference. \sa gaiaMakeCircle, gaiaMakeEllipse, gaiaMakeEllipticArc \note simply a convenience method defaulting to gaiaMakeEllipticArc with both axes set to radius value */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeArc (double center_x, double center_y, double radius, double start, double stop, double step); /** Creates an Elliptic Arc (Linestring) Geometry \param center_x center point X coordinate. \param center_y center point Y coordinate. \param x_axis the ellipses's X axis. \param y_axis the ellipses's Y axis. \param start the start angle (in degrees). \param start the stop angle (in degrees). \param step angular distance (in degrees) between points on the ellipse. \sa gaiaMakeCircle, gaiaMakeEllipse, gaiaMakeEllipticArc */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeEllipticArc (double center_x, double center_y, double x_axis, double y_axis, double start, double stop, double step); /** Creates a Polygon from closed Linestrings \param exterior a closed Linestring assumed to represent the Exterior Ring. \param interiors one (or more than one) clsed Linestrings assumed to represent all Interior Rings (could be a Linstring or a MultiLinestring).\n NULL if there are no Interior Rings at all. \sa gaiaPolygonize \note this method will simply check if all the received Linestrings are closed, but it could possibly return an invalid Polygon if there is any topology inconsistency between the exterior and interior rings. You are responsible to destroy (before or after) any allocated Geometry, this including any Geometry returned by gaiaPolygonize()\n not reentrant and thread unsafe. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakePolygon (gaiaGeomCollPtr exterior, gaiaGeomCollPtr interiors); #ifdef __cplusplus } #endif #endif /* _GG_CORE_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/geopackage.h��������������������������������������������0000664�0001750�0001750�00000015262�12544707704�020250� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* GeoPackage extensions for SpatiaLite / SQLite version 4.3, 2015 June 29 Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012-2015 the Initial Developer. All Rights Reserved. Contributor(s): Sandro Furieri (a.furieri@lqt.it) Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file geopackage.h GeoPackage: supporting functions and constants */ #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifdef _WIN32 #ifdef DLL_EXPORT #define GEOPACKAGE_DECLARE __declspec(dllexport) #define GEOPACKAGE_PRIVATE #else #define GEOPACKAGE_DECLARE extern #define GEOPACKAGE_PRIVATE #endif #else #define GEOPACKAGE_DECLARE __attribute__ ((visibility("default"))) #define GEOPACKAGE_PRIVATE __attribute__ ((visibility("hidden"))) #endif #endif #ifndef _GEOPACKAGE_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GEOPACKAGE_H #endif #include "sqlite.h" #ifdef __cplusplus extern "C" { #endif #include <spatialite/gaiageo.h> /* Internal geopackage SQL function implementation */ GEOPACKAGE_PRIVATE void fnct_gpkgCreateBaseTables (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgCreateTilesTable (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgCreateTilesZoomLevel (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgInsertEpsgSRID (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgAddTileTriggers (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgGetNormalRow (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgGetNormalZoom (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgGetImageType (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgAddGeometryColumn (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgMakePoint (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgMakePointWithSRID (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgMakePointZ (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgMakePointZWithSRID (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgMakePointM (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgMakePointMWithSRID (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgMakePointZM (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgMakePointZMWithSRID (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_ToGPB (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_GeomFromGPB (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_DECLARE gaiaGeomCollPtr gaiaFromGeoPackageGeometryBlob (const unsigned char *gpb, unsigned int gpb_len); /* Sandro Furieri - 2014-05-19 */ GEOPACKAGE_DECLARE int gaiaIsValidGPB (const unsigned char *gpb, int gpb_len); GEOPACKAGE_DECLARE int gaiaGetSridFromGPB (const unsigned char *gpb, int gpb_len); GEOPACKAGE_DECLARE int gaiaIsEmptyGPB (const unsigned char *gpb, int gpb_len); GEOPACKAGE_DECLARE int gaiaGetEnvelopeFromGPB (const unsigned char *gpb, int gpb_len, double *min_x, double *max_x, double *min_y, double *max_y, int *has_z, double *min_z, double *max_z, int *has_m, double *min_m, double *max_m); GEOPACKAGE_DECLARE char *gaiaGetGeometryTypeFromGPB (const unsigned char *gpb, int gpb_len); GEOPACKAGE_PRIVATE void fnct_IsValidGPB (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_GPKG_IsAssignable (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgAddGeometryTriggers (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgAddGeometryTriggers (sqlite3_context * context, int argc, sqlite3_value ** argv); GEOPACKAGE_PRIVATE void fnct_gpkgAddSpatialIndex (sqlite3_context * context, int argc, sqlite3_value ** argv); /* end Sandro Furieri - 2014-05-19 */ /* Sandro Furieri - 2015-06-14 */ GEOPACKAGE_DECLARE void gaiaToGPB (gaiaGeomCollPtr geom, unsigned char **result, int *size); /* end Sandro Furieri - 2015-06-14 */ /* Markers for unused arguments / variable */ #if __GNUC__ #define UNUSED __attribute__ ((__unused__)) #else #define UNUSED #endif #ifdef __cplusplus } #endif #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/gaiaaux.h�����������������������������������������������0000664�0001750�0001750�00000035557�12544707704�017612� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gaiaaux.h -- Gaia common utility functions version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gaiaaux.h Auxiliary/helper functions */ #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifdef DLL_EXPORT #define GAIAAUX_DECLARE __declspec(dllexport) #else #define GAIAAUX_DECLARE extern #endif #endif #ifndef _GAIAAUX_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GAIAAUX_H #endif #ifdef __cplusplus extern "C" { #endif /* constants */ /** SQL single quoted string (text constant) */ #define GAIA_SQL_SINGLE_QUOTE 1001 /** SQL double quoted string (SQL name) */ #define GAIA_SQL_DOUBLE_QUOTE 1002 /* function prototypes */ /** Retrieves the Locale Charset \return the GNU ICONV name identifying the locale charset */ GAIAAUX_DECLARE const char *gaiaGetLocaleCharset (void); /** Converts a text string from one charset to another \param buf the text string to be converted \param fromCs the GNU ICONV name identifying the input charset \param toCs the GNU ICONV name identifying the output charset \return 0 on failure, any other value on success. \note this function uses an internal buffer limited to 64KB; so it's not safe passing extremely huge-sized text string. */ GAIAAUX_DECLARE int gaiaConvertCharset (char **buf, const char *fromCs, const char *toCs); /** Creates a persistent UTF8 converter object \param fromCS the GNU ICONV name identifying the input charset \return the handle of the converter object, or NULL on failure \sa gaiaFreeUTF8Converter \note you must properly destroy the converter object when it isn't any longer used. */ GAIAAUX_DECLARE void *gaiaCreateUTF8Converter (const char *fromCS); /** Destroys an UTF8 converter object \param cvtCS the handle identifying the UTF8 convert object (returned by a previous call to gaiaCreateUTF8Converter). \sa gaiaCreateUTF8Converter */ GAIAAUX_DECLARE void gaiaFreeUTF8Converter (void *cvtCS); /** Converts a text string to UTF8 \param cvtCS the handle identifying the UTF8 convert object (returned by a previous call to gaiaCreateUTF8Converter). \param buf the input text string \param len length (in bytes) of input string \param err on completion will contain 0 on success, any other value on failure \return the null-terminated UTF8 encoded string: NULL on failure \sa gaiaCreateUTF8Converter, gaiaFreeUTF8Converter \note this function can safely handle strings of arbitrary length, and will return the converted string into a dynamically allocated buffer created by malloc(). You are required to explicitly free() any string returned by this function. */ GAIAAUX_DECLARE char *gaiaConvertToUTF8 (void *cvtCS, const char *buf, int len, int *err); /** Checks if a name is a reserved SQLite name \param name the name to be checked \return 0 if no: any other value if yes \sa gaiaIsReservedSqlName, gaiaIllegalSqlName */ GAIAAUX_DECLARE int gaiaIsReservedSqliteName (const char *name); /** Checks if a name is a reserved SQL name \param name the name to be checked \return 0 if no: any other value if yes \sa gaiaIsReservedSqliteName, gaiaIllegalSqlName */ GAIAAUX_DECLARE int gaiaIsReservedSqlName (const char *name); /** Checks if a name is an illegal SQL name \param name the name to be checked \return 0 if no: any other value if yes \sa gaiaIsReservedSqliteName, gaiaIsReservedSqlName */ GAIAAUX_DECLARE int gaiaIllegalSqlName (const char *name); /** Properly formats an SQL text constant \param value the text string to be formatted \return the formatted string: NULL on failure \sa gaiaQuotedSql, gaiaDequotedSql \note this function simply is a convenience method corresponding to: gaiaQuotedSQL(value, GAIA_SQL_SINGLE_QUOTE); \remark passing a string like "Sant'Andrea" will return 'Sant''Andrea' */ GAIAAUX_DECLARE char *gaiaSingleQuotedSql (const char *value); /** Properly formats an SQL name \param value the SQL name to be formatted \return the formatted string: NULL on failure \sa gaiaQuotedSql, gaiaDequotedSql \note this function simply is a convenience method corresponding to: gaiaQuotedSQL(value, GAIA_SQL_DOUBLE_QUOTE); \remark passing a string like "Sant\"Andrea" will return "Sant""Andrea" */ GAIAAUX_DECLARE char *gaiaDoubleQuotedSql (const char *value); /** Properly formats an SQL generic string \param value the string to be formatted \param quote GAIA_SQL_SINGLE_QUOTE or GAIA_SQL_DOUBLE_QUOTE \return the formatted string: NULL on failure \sa gaiaSingleQuotedSql, gaiaDoubleQuotedSql, gaiaDequotedSql \note this function can safely handle strings of arbitrary length, and will return the formatted string into a dynamically allocated buffer created by malloc(). You are required to explicitly free() any string returned by this function. */ GAIAAUX_DECLARE char *gaiaQuotedSql (const char *value, int quote); /** Properly formats an SQL generic string (dequoting) \param value the string to be dequoted \return the formatted string: NULL on failure \sa gaiaSingleQuotedSql, gaiaDoubleQuotedSql, gaiaQuotedSql \note this function can safely handle strings of arbitrary length, and will return the formatted string into a dynamically allocated buffer created by malloc(). You are required to explicitly free() any string returned by this function. */ GAIAAUX_DECLARE char *gaiaDequotedSql (const char *value); /* / DEPRECATED FUNCTION: gaiaCleanSqlString() / this function must not be used for any new project / it's still maintained for backward compatibility, / but will be probably removed in future versions */ /** deprecated function \param value the string to be formatted \sa gaiaQuotedSql \note this function is still supported simply for backward compatibility. it's intrinsically unsafe (passing huge strings potentially leads to buffer overflows) and you are strongly encouraged to use gaiaQuotedSql() as a safest replacement. */ GAIAAUX_DECLARE void gaiaCleanSqlString (char *value); /** SQL log: statement start \param sqlite handle of the current DB connection \param user_agent name of the invoking application, e.g. "spatialite_gui" or "spatialite CLI" \param utf8Sql the SQL statement bein executed \param sqllog_pk after completion this variable will contain the value of the Primary Key identifying the corresponding Log event \sa gaiaUpdateSqlLog \note this function inserts an \b event into the SQL Log, and is expected to be invoked immediately \b before executing the SQL statement itself. */ GAIAAUX_DECLARE void gaiaInsertIntoSqlLog (sqlite3 * sqlite, const char *user_agent, const char *utf8Sql, sqlite3_int64 * sqllog_pk); /** SQL log: statement start \param sqlite handle of the current DB connection \param sqllog_pk the Primary Key identifying the corresponding Log event. \n expected to be exactely the same returned by the most recent call to gaiaInsertIntoSqlLog() \param success expected to be TRUE if the SQL statement was successfully executed. \param errMsg expected to be the error message returned by SQLite on failure, NULL on success. \sa gaiaInsertIntoSqlLog \note this function completes an \b event inserted into the SQL Log, and is expected to be invoked immediately \b after executing the SQL statement itself. */ GAIAAUX_DECLARE void gaiaUpdateSqlLog (sqlite3 * sqlite, sqlite3_int64 sqllog_pk, int success, const char *errMsg); /** Creates a persistent MD5 checksum object \return the handle of an MD5 checksum object, or NULL on failure \sa gaiaFreeMD5Checksum, gaiaUpdateMD5Checksum, gaiaFinalizeMD5Checksum \note you must properly destroy the MD5 object when it isn't any longer used. */ GAIAAUX_DECLARE void *gaiaCreateMD5Checksum (void); /** Destroys an MD5 checksum object \param md5 the handle of the MD5 checksum object (returned by a previous call to gaiaCreateMD5Checksum). \sa gaiaCreateMD5Checksum */ GAIAAUX_DECLARE void gaiaFreeMD5Checksum (void *md5); /** Updates an MD5 checksum object \param md5 the handle of the MD5 checksum object (returned by a previous call to gaiaCreateMD5Checksum). \param blob an arbitrary sequence of binary data \param blob_size the length (in bytes) of the binary data \sa gaiaCreateMD5Checksum, gaiaFreeMD5Checksum, gaiaFinalizeMD5Checksum \note you can repeatedly invoke gaiaUpdateMD5Checksum more than a single time and always using the same MD5 object. In this case the final MD5 checksum returned by gaiaGetMD5Checsum will be the total checksum for any data processed by the MD5 object since its initialization. */ GAIAAUX_DECLARE void gaiaUpdateMD5Checksum (void *md5, const unsigned char *blob, int blob_len); /** Return an MD5 checksum value \param md5 the handle of the MD5 checksum object (returned by a previous call to gaiaCreateMD5Checksum). \return an hexadecimal text string representing the MD checksum: NULL on failure \sa gaiaCreateMD5Checksum, gaiaUpdateMD5Checksum, gaiaFreeMD5Checksum \note this function will return the MD5 checksum into a dynamically allocated buffer created by malloc(). You are required to explicitly free() any string returned by this function. \note gaiaFinalizeMD5Checksum will implicitly reset the MD5 object to its initial state. */ GAIAAUX_DECLARE char *gaiaFinalizeMD5Checksum (void *md5); /** Return longitude and latitude angles from a DMS string \param dms a text string representing a valid DMS (Degrees/Minutes/Seconds) expression. \param longitude on completion this variable will contain the longitude angle expressed in Decimal Degrees. \param latitude on completion this variable will contain the latitude angle expressed in Decimal Degrees. \return ZERO (FALSE) on failure, any other different value (TRUE) on success. \sa gaiaConvertToDMS \note this function will return a dynamically allocated buffer created by malloc(). You are required to explicitly free() any string returned by this function. */ GAIAAUX_DECLARE int gaiaParseDMS (const char *dms, double *longitude, double *latitude); /** Return a DMS string \param longitude the angle of longitude expressed in Decimal Degrees. \param latitude the angle of latitude expressed in Decimal Degrees. \return the corresponding DMS (Degrees/Minutes/Seconds) text string, or NULL on failure \sa gaiaLongitudeFromDMS, gaiaLatitudeFromDMS \note this function will return a dynamically allocated buffer created by malloc(). You are required to explicitly free() any string returned by this function. */ GAIAAUX_DECLARE char *gaiaConvertToDMS (double longitude, double latitude); /** Return a percent-encoded URL \param url the URL to be percent-encoded \return the corresponding percent-encoded URL text string, or NULL on failure \sa gaiaDecodeURL \note this function will return a dynamically allocated buffer created by malloc(). You are required to explicitly free() any string returned by this function. */ GAIAAUX_DECLARE char *gaiaEncodeURL (const char *url); /** Return a clean URL from its percent-encoded representation \param encoded the percent-encoded URL to be decoded \return the corresponding clean URL text string, or NULL on failure \sa gaiaEncodeURL \note this function will return a dynamically allocated buffer created by malloc(). You are required to explicitly free() any string returned by this function. */ GAIAAUX_DECLARE char *gaiaDecodeURL (const char *encoded); /** Return the DirName component (if any) from a Path \param path full or relative pathname \return the corresponding DirName text string, or NULL on failure \sa gaiaFullFileNameFromPath, gaiaFileNameFromPath, gaiaFileExtFromPath \note this function will return a dynamically allocated buffer created by malloc(). You are required to explicitly free() any string returned by this function. */ GAIAAUX_DECLARE char *gaiaDirNameFromPath (const char *path); /** Return the FullFileName from a Path \param path full or relative pathname \return the corresponding FullFileName (including an eventual extension), or NULL on failure \sa gaiaDirNameFromPath, gaiaFileNameFromPath, gaiaFileExtFromPath \note this function will return a dynamically allocated buffer created by malloc(). You are required to explicitly free() any string returned by this function. */ GAIAAUX_DECLARE char *gaiaFullFileNameFromPath (const char *path); /** Return the FileName from a Path \param path full or relative pathname \return the corresponding FileName (excluding an eventual extension), or NULL on failure \sa gaiaDirNameFromPath, gaiaFullFileNameFromPath, gaiaFileExtFromPath \note this function will return a dynamically allocated buffer created by malloc(). You are required to explicitly free() any string returned by this function. */ GAIAAUX_DECLARE char *gaiaFileNameFromPath (const char *path); /** Return the FileExtension from a Path \param path full or relative pathname \return the corresponding FileExtension (if any), or NULL on failure \sa gaiaDirNameFromPath, gaiaFullFileNameFromPath, gaiaFileNameFromPath \note this function will return a dynamically allocated buffer created by malloc(). You are required to explicitly free() any string returned by this function. */ GAIAAUX_DECLARE char *gaiaFileExtFromPath (const char *path); #ifdef __cplusplus } #endif #endif /* _GAIAAUX_H */ �������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/gg_dynamic.h��������������������������������������������0000664�0001750�0001750�00000031546�12544707704�020266� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_dynamic.h -- Gaia common support for geometries: DynamicLine functions version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gg_dynamic.h Geometry handling functions: DynamicLine handling */ #ifndef _GG_DYNAMIC #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_DYNAMIC #endif #ifdef __cplusplus extern "C" { #endif /* function prototypes */ /** Creates a new dynamicly growing line/ring object \return the pointer to newly created object \sa gaiaCreateDynamicLine, gaiaFreeDynamicLine \note you are responsible to destroy (before or after) any allocated dynamically growing line/ring object. */ GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaAllocDynamicLine (void); /** Destroys a dynamically growing line/ring object \param p pointer to object to be destroyed \sa gaiaAllocDynamicLine */ GAIAGEO_DECLARE void gaiaFreeDynamicLine (gaiaDynamicLinePtr p); /** Appends a new 2D Point [XY] at the end of a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param x X coordinate of the Point \param y Y coordinate of the Point \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointToDynamicLine (gaiaDynamicLinePtr p, double x, double y); /** Appends a new 3D Point [XYZ] at the end of a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param x X coordinate of the Point \param y Y coordinate of the Point \param z Z coordinate of the Point \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointZToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double z); /** Appends a new 2D Point [XYM] at the end of a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param x X coordinate of the Point \param y Y coordinate of the Point \param m M measure of the Point \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointMToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double m); /** Appends a new 3D Point [XYZM] at the end of a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param x X coordinate of the Point \param y Y coordinate of the Point \param z Z coordinate of the Point \param m M measure of the Point \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointZMToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double z, double m); /** Appends a new 2D Point [XY] before the first one of a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param x X coordinate of the Point \param y Y coordinate of the Point \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointToDynamicLine (gaiaDynamicLinePtr p, double x, double y); /** Appends a new 3D Point [XYZ] before the first one of a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param x X coordinate of the Point \param y Y coordinate of the Point \param z Z coordinate of the Point \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointZToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double z); /** Appends a new 2D Point [XYM] before the first one of a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param x X coordinate of the Point \param y Y coordinate of the Point \param m M measure of the Point \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointMToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double m); /** Appends a new 3D Point [XYZM] before the first one of a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param x X coordinate of the Point \param y Y coordinate of the Point \param z Z coordinate of the Point \param m M measure of the Point \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointZMToDynamicLine (gaiaDynamicLinePtr p, double x, double y, double z, double m); /** Appends a new 2D Point [XY] immediately after the given Point into a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param pt pointer to the given Point. \param x X coordinate of the Point to be appended \param y Y coordinate of the Point to be appended \sa gaiaDynamicLiceInsertBefore \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineInsertAfter (gaiaDynamicLinePtr p, gaiaPointPtr pt, double x, double y); /** Appends a new 2D Point [XY] immediately before the given Point into a dynamically growing line/ring object \param p pointer to the dynamically growing line/ring object. \param pt pointer to the given Point. \param x X coordinate of the Point to be appended \param y Y coordinate of the Point to be appended \sa gaiaDynamicLiceInsertBeforeAfter \return the pointer to newly created Point */ GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineInsertBefore (gaiaDynamicLinePtr p, gaiaPointPtr pt, double x, double y); /** Removes a given Point from a dynamically growing line/ring object \param p pointer to dynamically growing line/ring object. \param pt pointer to given Point. \note the given Point (referenced by its address) will be removed from the dynamically growin line/ring object. \n the given Point will be then implicitly destroyed. */ GAIAGEO_DECLARE void gaiaDynamicLineDeletePoint (gaiaDynamicLinePtr p, gaiaPointPtr pt); /** Duplicates a dynamically growing line/ring object \param org pointer to dynamically growing line/ring object [origin]. \return the pointer to newly created dynamic growing line/ring object: NULL on failure. \note the newly created object is an exact copy of the original one. */ GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaCloneDynamicLine (gaiaDynamicLinePtr org); /** Duplicates and reverts a dynamically growing line/ring object \param org pointer to dynamically growing line/ring object [origin]. \return the pointer to newly created dynamic growing line/ring object: NULL on failure. \note the newly created object is an exact copy of the origina one, except in that direction is reverted. \n i.e. first inpunt point becomes last output point, and last input point becomes first output point. */ GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaReverseDynamicLine (gaiaDynamicLinePtr org); /** Cuts a dynamically growing line/ring in two halves, using a given cut point \param org pointer to the input object [the line to be split]. \param point pointer to given cut point. \return the pointer to newly created dynamic growing line/ring object: NULL on failure. \sa gaiaDynamicLineSplitAfter \note the newly created object will contain a line going from the orginal first point to the cut point [excluded]. \n on completion the orginal line will be reduced, going from the cut point [included] to the original last point. */ GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineSplitBefore (gaiaDynamicLinePtr org, gaiaPointPtr point); /** Cuts a dynamically growing line/ring in two halves, using a given cut point \param org pointer to the input object [the line to be split]. \param point pointer to given cut point. \return the pointer to newly created dynamic growing line/ring object: NULL on failure. \sa gaiaDynamicLineSplitBefore \note the newly created object will contain a line going from the orginal first point to the cut point [included]. \n on completion the orginal line will be reduced, going from the cut point [excluded] to the original last point. */ GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineSplitAfter (gaiaDynamicLinePtr org, gaiaPointPtr point); /** Merges two dynamically growing line/ring object into a single one \param org pointer to the first input object [first line]. \param point pointer to the reference Point object. \param toJoin pointer to the second input object [second line]. \return the pointer to newly created dynamically growing line/ring object [merged line]: NULL on failure. \sa gaiaDynamicLineJoinBefore \note the reference Point must exists into the first line: the second line will then be inserted immediately after the reference Point. \n The newly created object will represent the resulting merged line: \n both input objects remain untouched. */ GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineJoinAfter (gaiaDynamicLinePtr org, gaiaPointPtr point, gaiaDynamicLinePtr toJoin); /** Merges two dynamically growing line/ring object into a single one \param org pointer to the first input object [first line]. \param point pointer to the reference Point object. \param toJoin pointer to the second input object [second line]. \return the pointer to newly created dynamically growing line/ring object [merged line]: NULL on failure. \sa gaiaDynamicLineJoinAfter \note the reference Point must exists into the first line: the second line will then be inserted immediately before the reference Point. \n The newly created object will represent the resulting merged line: \n both input objects remain untouched. */ GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineJoinBefore (gaiaDynamicLinePtr org, gaiaPointPtr point, gaiaDynamicLinePtr toJoin); /** Finds a Point within a dymically growing line/ring object [by coords] \param p pointer to dymamically line/ring object. \param x Point X coordinate. \param y Point Y coordinate. \return the pointer to the corresponding Point object: NULL on failure. \sa gaiaDynamicLineFindByPos \note if the line object contains more Points sharing the same coordinates, a reference to the first one found will be returned. */ GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineFindByCoords (gaiaDynamicLinePtr p, double x, double y); /** Finds a Point within a dymically growing line/ring object [by position] \param p pointer to dymamically line/ring object. \param pos relative position [first Point has index 0]. \return the pointer to the corresponding Point object: NULL on failure. \sa gaiaDynamicLineFindByCoords */ GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineFindByPos (gaiaDynamicLinePtr p, int pos); /** Creates a new dynamicly growing line/ring object \param coords an array of COORDs, any dimension [XY, XYZ, XYM, XYZM] \param points number of points [aka vertices] into the array \return the pointer to newly created object \sa gaiaAllocDynamicLine, gaiaFreeDynamicLine, gaiaLinestringStruct, gaiaRingStruct \note you are responsible to destroy (before or after) any allocated dynamically growing line/ring object. \n The COORDs array is usually expected to be one found within a gaiaLinestring or gaiaRing object. */ GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaCreateDynamicLine (double *coords, int points); #ifdef __cplusplus } #endif #endif /* _GG_DYNAMIC */ ����������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/spatialite.h��������������������������������������������0000664�0001750�0001750�00000005057�12544707704�020322� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* spatialite.h -- Gaia support for SQLite extensions version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <spatialite_private.h> SPATIALITE_PRIVATE int virtualshape_extension_init (void *db); SPATIALITE_PRIVATE int virtualdbf_extension_init (void *db); SPATIALITE_PRIVATE int virtualtext_extension_init (void *db); SPATIALITE_PRIVATE int virtualXL_extension_init (void *db); SPATIALITE_PRIVATE int virtualnetwork_extension_init (void *db); SPATIALITE_PRIVATE int virtualfdo_extension_init (void *db); SPATIALITE_PRIVATE int virtualbbox_extension_init (void *db, const void *p_cache); SPATIALITE_PRIVATE int mbrcache_extension_init (void *db); SPATIALITE_PRIVATE int virtual_spatialindex_extension_init (void *db); SPATIALITE_PRIVATE int virtual_elementary_extension_init (void *db); SPATIALITE_PRIVATE int virtual_xpath_extension_init (void *db, const void *p_cache); SPATIALITE_PRIVATE int virtualgpkg_extension_init (void *db); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/debug.h�������������������������������������������������0000664�0001750�0001750�00000005051�12544707704�017243� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* debug.h -- abstract defs for standard output functions version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2012-2015 the Initial Developer. All Rights Reserved. Contributor(s): Pepijn Van Eeckhoudt <pepijnvaneeckhoudt@luciad.com> Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #ifndef SPATIALITE_DEBUG_H #define SPATIALITE_DEBUG_H #ifdef __ANDROID__ /* Android specific */ #include <android/log.h> #ifdef DEBUG #define spatialite_d(...) #else #define spatialite_d(...) __android_log_print(ANDROID_LOG_DEBUG, "Spatialite", __VA_ARGS__) #endif #define spatialite_i(...) __android_log_print(ANDROID_LOG_INFO, "Spatialite", __VA_ARGS__) #define spatialite_e(...) __android_log_print(ANDROID_LOG_ERROR, "Spatialite", __VA_ARGS__) #else /* any other standard platform (Win, Linux, Mac) */ #include <stdio.h> #ifdef DEBUG #define spatialite_d(...) #else #define spatialite_d(...) fprintf(stdout, __VA_ARGS__) #endif #define spatialite_i(...) fprintf(stdout, __VA_ARGS__) #define spatialite_e(...) fprintf(stderr, __VA_ARGS__) #endif /* platform specific */ #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/gaiageo.h�����������������������������������������������0000664�0001750�0001750�00000004457�12544707704�017562� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gaiageo.h -- Gaia common support for geometries version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Klaus Foerster klaus.foerster@svg.cc Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gaiageo.h Geometry handling functions and constants */ #ifndef DOXYGEN_SHOULD_SKIP_THIS /* stdio.h included for FILE objects. */ #include <stdio.h> #ifdef DLL_EXPORT #define GAIAGEO_DECLARE __declspec(dllexport) #else #define GAIAGEO_DECLARE extern #endif #endif #ifndef _GAIAGEO_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GAIAGEO_H #endif #include "gg_const.h" #include "gg_structs.h" #include "gg_core.h" #include "gg_mbr.h" #include "gg_formats.h" #include "gg_dynamic.h" #include "gg_advanced.h" #include "gg_xml.h" #endif /* _GAIAGEO_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/gg_formats.h��������������������������������������������0000664�0001750�0001750�00000165103�12544707704�020312� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_formats.h -- Gaia common support for geometries: formats version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Klaus Foerster klaus.foerster@svg.cc Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gg_formats.h Geometry handling functions: formats */ #ifndef _GG_FORMATS_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_FORMATS_H #endif #ifdef __cplusplus extern "C" { #endif /* function prototypes */ /** Test CPU endianness \return 0 if big-endian: any other value if little-endian */ GAIAGEO_DECLARE int gaiaEndianArch (void); /** Import an INT-16 value in endian-aware fashion \param p endian-dependent representation (input buffer). \param little_endian 0 if the input buffer is big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \return the internal SHORT value \sa gaiaEndianArch, gaiaExport16 \note you are expected to pass an input buffer corresponding to an allocation size of (at least) 2 bytes. */ GAIAGEO_DECLARE short gaiaImport16 (const unsigned char *p, int little_endian, int little_endian_arch); /** Import an INT-32 value in endian-aware fashion \param p endian-dependent representation (input buffer). \param little_endian 0 if the input buffer is big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \return the internal INT value \sa gaiaEndianArch, gaiaExport32 \note you are expected to pass an input buffer corresponding to an allocation size of (at least) 4 bytes. */ GAIAGEO_DECLARE int gaiaImport32 (const unsigned char *p, int little_endian, int little_endian_arch); /** Import an UINT-32 value in endian-aware fashion \param p endian-dependent representation (input buffer). \param little_endian 0 if the input buffer is big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \return the internal UINT value \sa gaiaEndianArch, gaiaExportU32 \note you are expected to pass an input buffer corresponding to an allocation size of (at least) 4 bytes. */ GAIAGEO_DECLARE unsigned int gaiaImportU32 (const unsigned char *p, int little_endian, int little_endian_arch); /** Import a FLOAT-32 value in endian-aware fashion \param p endian-dependent representation (input buffer). \param little_endian 0 if the input buffer is big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \return the internal FLOAT value \sa gaiaEndianArch, gaiaExportF32 \note you are expected to pass an input buffer corresponding to an allocation size of (at least) 4 bytes. */ GAIAGEO_DECLARE float gaiaImportF32 (const unsigned char *p, int little_endian, int little_endian_arch); /** Import an DOUBLE-64 in endian-aware fashion \param p endian-dependent representation (input buffer). \param little_endian 0 if the input buffer is big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \return the internal DOUBLE value \sa gaiaEndianArch, gaiaExport64 \note you are expected to pass an input buffer corresponding to an allocation size of (at least) 8 bytes. */ GAIAGEO_DECLARE double gaiaImport64 (const unsigned char *p, int little_endian, int little_endian_arch); /** Import an INT-64 in endian-aware fashion \param p endian-dependent representation (input buffer). \param little_endian 0 if the input buffer is big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \return the internal INT-64 value \sa gaiaEndianArch, gaiaExportI64 \note you are expected to pass an input buffer corresponding to an allocation size of (at least) 8 bytes. */ GAIAGEO_DECLARE sqlite3_int64 gaiaImportI64 (const unsigned char *p, int little_endian, int little_endian_arch); /** Export an INT-16 value in endian-aware fashion \param p endian-dependent representation (output buffer). \param value the internal value to be exported. \param little_endian 0 if the output buffer has to be big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \sa gaiaEndianArch, gaiaImport16 \note you are expected to pass an output buffer corresponding to an allocation size of (at least) 2 bytes. */ GAIAGEO_DECLARE void gaiaExport16 (unsigned char *p, short value, int little_endian, int little_endian_arch); /** Export an INT-32 value in endian-aware fashion \param p endian-dependent representation (output buffer). \param value the internal value to be exported. \param little_endian 0 if the output buffer has to be big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \sa gaiaEndianArch, gaiaImport32 \note you are expected to pass an output buffer corresponding to an allocation size of (at least) 4 bytes. */ GAIAGEO_DECLARE void gaiaExport32 (unsigned char *p, int value, int little_endian, int little_endian_arch); /** Export an UINT-32 value in endian-aware fashion \param p endian-dependent representation (output buffer). \param value the internal value to be exported. \param little_endian 0 if the output buffer has to be big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \sa gaiaEndianArch, gaiaImportU32 \note you are expected to pass an output buffer corresponding to an allocation size of (at least) 4 bytes. */ GAIAGEO_DECLARE void gaiaExportU32 (unsigned char *p, unsigned int value, int little_endian, int little_endian_arch); /** Export a FLOAT-32 value in endian-aware fashion \param p endian-dependent representation (output buffer). \param value the internal value to be exported. \param little_endian 0 if the output buffer has to be big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \sa gaiaEndianArch, gaiaImportF32 \note you are expected to pass an output buffer corresponding to an allocation size of (at least) 4 bytes. */ GAIAGEO_DECLARE void gaiaExportF32 (unsigned char *p, float value, int little_endian, int little_endian_arch); /** Export a DOUBLE value in endian-aware fashion \param p endian-dependent representation (output buffer). \param value the internal value to be exported. \param little_endian 0 if the output buffer has to be big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \sa gaiaEndianArch, gaiaImport64 \note you are expected to pass an output buffer corresponding to an allocation size of (at least) 8 bytes. */ GAIAGEO_DECLARE void gaiaExport64 (unsigned char *p, double value, int little_endian, int little_endian_arch); /** Export an INT-64 value in endian-aware fashion \param p endian-dependent representation (output buffer). \param value the internal value to be exported. \param little_endian 0 if the output buffer has to be big-endian: any other value for little-endian. \param little_endian_arch the value returned by gaiaEndianArch() \sa gaiaEndianArch, gaiaImportI64 \note you are expected to pass an output buffer corresponding to an allocation size of (at least) 8 bytes. */ GAIAGEO_DECLARE void gaiaExportI64 (unsigned char *p, sqlite3_int64 value, int little_endian, int little_endian_arch); /** Initializes a dynamically growing Text output buffer \param buf pointer to gaiaOutBufferStruct structure \sa gaiaOutBufferReset, gaiaAppendToOutBuffer \note Text notations representing Geometry objects may easily require a huge storage amount: the gaiaOutBufferStruct automatically supports a dynamically growing output buffer. \n You are required to initialize this structure before attempting any further operation; and you are responsible to cleanup any related memory allocation when it's any longer required. */ GAIAGEO_DECLARE void gaiaOutBufferInitialize (gaiaOutBufferPtr buf); /** Resets a dynamically growing Text output buffer to its initial (empty) state \param buf pointer to gaiaOutBufferStruct structure \sa gaiaOutBufferInitialize, gaiaAppendToOutBuffer \note You are required to initialize this structure before attempting any further operation: this function will release any related memory allocation. */ GAIAGEO_DECLARE void gaiaOutBufferReset (gaiaOutBufferPtr buf); /** Appends a text string at the end of Text output buffer \param buf pointer to gaiaOutBufferStruct structure. \param text the text string to be appended. \sa gaiaOutBufferInitialize, gaiaOutBufferReset \note You are required to initialize this structure before attempting any further operation: the dynamically growing Text buffer will be automatically allocated and/or extended as required. */ GAIAGEO_DECLARE void gaiaAppendToOutBuffer (gaiaOutBufferPtr buf, const char *text); /** Creates a BLOB-Geometry representing a Point \param x Point X coordinate. \param y Point Y coordinate. \param srid the SRID to be set for the Point. \param result on completion will containt a pointer to BLOB-Geometry: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \sa gaiaFromSpatiaLiteBlobWkb \note the BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaMakePoint (double x, double y, int srid, unsigned char **result, int *size); /** Creates a BLOB-Geometry representing a PointZ \param x Point X coordinate. \param y Point Y coordinate. \param z Point Z coordinate. \param srid the SRID to be set for the Point. \param result on completion will containt a pointer to BLOB-Geometry: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \sa gaiaFromSpatiaLiteBlobWkb \note the BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaMakePointZ (double x, double y, double z, int srid, unsigned char **result, int *size); /** Creates a BLOB-Geometry representing a PointM \param x Point X coordinate. \param y Point Y coordinate. \param m Point M coordinate. \param srid the SRID to be set for the Point. \param result on completion will containt a pointer to BLOB-Geometry: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \sa gaiaFromSpatiaLiteBlobWkb \note the BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaMakePointM (double x, double y, double m, int srid, unsigned char **result, int *size); /** Creates a BLOB-Geometry representing a PointZM \param x Point X coordinate. \param y Point Y coordinate. \param z Point Z coordinate. \param m Point M coordinate. \param srid the SRID to be set for the Point. \param result on completion will containt a pointer to BLOB-Geometry: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \sa gaiaFromSpatiaLiteBlobWkb \note the BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaMakePointZM (double x, double y, double z, double m, int srid, unsigned char **result, int *size); /** Creates a BLOB-Geometry representing a Segment (2-Points Linestring) \param geom1 pointer to first Geometry object (expected to represent a Point). \param geom2 pointer to second Geometry object (expected to represent a Point). \param result on completion will containt a pointer to BLOB-Geometry: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \sa gaiaFromSpatiaLiteBlobWkb \note the BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaMakeLine (gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, unsigned char **result, int *size); /** Creates a Geometry object from the corresponding BLOB-Geometry \param blob pointer to BLOB-Geometry \param size the BLOB's size \return the pointer to the newly created Geometry object: NULL on failure \sa gaiaFreeGeomColl, gaiaToSpatiaLiteBlobWkb, gaiaToCompressedBlobWkb, gaiaFromSpatiaLiteBlobWkbEx \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromSpatiaLiteBlobWkb (const unsigned char *blob, unsigned int size); /** Creates a Geometry object from the corresponding BLOB-Geometry \param blob pointer to BLOB-Geometry \param size the BLOB's size \param gpkg_mode is set to TRUE will accept only GPKG Geometry-BLOBs \param gpkg_amphibious is set to TRUE will indifferenctly accept either SpatiaLite Geometry-BLOBs or GPKG Geometry-BLOBs \return the pointer to the newly created Geometry object: NULL on failure \sa gaiaFreeGeomColl, gaiaToSpatiaLiteBlobWkb, gaiaToCompressedBlobWkb \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromSpatiaLiteBlobWkbEx (const unsigned char *blob, unsigned int size, int gpkg_mode, int gpkg_amphibious); /** Creates a BLOB-Geometry corresponding to a Geometry object \param geom pointer to the Geometry object. \param result on completion will containt a pointer to BLOB-Geometry: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \sa gaiaFromSpatiaLiteBlobWkb, gaiaToCompressedBlobWkb \note the BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaToSpatiaLiteBlobWkb (gaiaGeomCollPtr geom, unsigned char **result, int *size); /** Creates a BLOB-Geometry corresponding to a Geometry object \param geom pointer to the Geometry object. \param result on completion will containt a pointer to BLOB-Geometry: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \param gpkg_mode is set to TRUE will always return GPKG Geometry-BLOBs \sa gaiaFromSpatiaLiteBlobWkb, gaiaToCompressedBlobWkb \note the BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaToSpatiaLiteBlobWkbEx (gaiaGeomCollPtr geom, unsigned char **result, int *size, int gpkg_mode); /** Creates a Compressed BLOB-Geometry corresponding to a Geometry object \param geom pointer to the Geometry object. \param result on completion will containt a pointer to Compressed BLOB-Geometry: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \sa gaiaFromSpatiaLiteBlobWkb, gaiaToSpatiaLiteBlobWkb \note this function will apply compression to any Linestring / Ring found within the Geometry to be encoded. \n the returned BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaToCompressedBlobWkb (gaiaGeomCollPtr geom, unsigned char **result, int *size); /** Creates a Geometry object from WKB notation \param blob pointer to WKB buffer \param size the BLOB's size (in bytes) \return the pointer to the newly created Geometry object: NULL on failure. \sa gaiaToWkb, gaiaToHexWkb, gaiaFromEWKB, gaiaToEWKB \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromWkb (const unsigned char *blob, unsigned int size); /** Encodes a Geometry object into WKB notation \param geom pointer to Geometry object \param result on completion will containt a pointer to the WKB buffer [BLOB]: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \sa gaiaFromWkb, gaiaToHexWkb, gaiaFromEWKB, gaiaToEWKB \note this function will apply 3D WKB encoding as internally intended by SpatiaLite: not necessarily intended by other OGC-like implementations. \n Anyway, 2D WKB is surely standard and safely interoperable. \n the returned BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaToWkb (gaiaGeomCollPtr geom, unsigned char **result, int *size); /** Encodes a Geometry object into (hex) WKB notation \param geom pointer to Geometry object \return the pointer to a text buffer containing WKB translated into plain hexadecimal: NULL on failure. \sa gaiaFromWkb, gaiaToWkb, gaiaFromEWKB, gaiaToEWKB \note the returned buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE char *gaiaToHexWkb (gaiaGeomCollPtr geom); /** Encodes a Geometry object into EWKB notation \param out_buf pointer to dynamically growing Text buffer \param geom pointer to Geometry object \sa gaiaFromWkb, gaiaToWkb, gaiaToHexWkb, gaiaFromEWKB, gaiaToEWKB \note this function will produce strictly conformat EWKB; you can safely use this for PostGIS data exchange. */ GAIAGEO_DECLARE void gaiaToEWKB (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom); /** Creates a Geometry object from EWKB notation \param in_buffer pointer to EWKB buffer \return the pointer to the newly created Geometry object: NULL on failure. \sa gaiaToWkb, gaiaToHexWkb, gaiaParseHexEWKB, gaiaToEWKB, gaiaEwkbGetPoint, gaiaEwkbGetLinestring, gaiaEwkbGetPolygon, gaiaEwkbGetMultiGeometry \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromEWKB (const unsigned char *in_buffer); /** Translates an EWKB notation from hexadecimal into binary \param blob_hex pointer to EWKB input buffer (hexadecimal text string) \param blob_size lenght (in bytes) of the input buffer; if succesfull will contain the lenght of the returned output buffer. \return the pointer to the newly created EWKB binary buffer: NULL on failure. \sa gaiaToWkb, gaiaToHexWkb, gaiaFromEWKB, gaiaToEWKB \note you are responsible to destroy (before or after) any buffer allocated by gaiaParseHexEWKB() */ GAIAGEO_DECLARE unsigned char *gaiaParseHexEWKB (const unsigned char *blob_hex, int *blob_size); /** Attempts to decode a Point from within an EWKB binary buffer \param geom pointer to an existing Geometry object; if succesfull the parsed Point will be inserted into this Geometry \param blob pointer to EWKB input buffer \param offset the offset (in bytes) on the input buffer where the Point definition is expected to start. \param blob_size lenght (in bytes) of the input buffer. \param endian (boolean) states if the EWKB input buffer is little- or big-endian encode. \param endian_arch (boolean) states if the target CPU has a little- or big-endian architecture. \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_Z_M \return -1 on failure; otherwise the offset where the next object starts. \sa gaiaEwkbGetLinestring, gaiaEwkbGetPolygon, gaiaEwkbGetMultiGeometry \note these functions are mainly intended for internal usage. */ GAIAGEO_DECLARE int gaiaEwkbGetPoint (gaiaGeomCollPtr geom, unsigned char *blob, int offset, int blob_size, int endian, int endian_arch, int dims); /** Attempts to decode a Point from within an EWKB binary buffer \param geom pointer to an existing Geometry object; if succesfull the parsed Linestring will be inserted into this Geometry \param blob pointer to EWKB input buffer \param offset the offset (in bytes) on the input buffer where the Point definition is expected to start. \param blob_size lenght (in bytes) of the input buffer. \param endian (boolean) states if the EWKB input buffer is little- or big-endian encode. \param endian_arch (boolean) states if the target CPU has a little- or big-endian architecture. \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_Z_M \return -1 on failure; otherwise the offset where the next object starts. \sa gaiaEwkbGetPoint, gaiaEwkbGetPolygon, gaiaEwkbGetMultiGeometry \note these functions are mainly intended for internal usage. */ GAIAGEO_DECLARE int gaiaEwkbGetLinestring (gaiaGeomCollPtr geom, unsigned char *blob, int offset, int blob_size, int endian, int endian_arch, int dims); /** Attempts to decode a Polygon from within an EWKB binary buffer \param geom pointer to an existing Geometry object; if succesfull the parsed Polygon will be inserted into this Geometry \param blob pointer to EWKB input buffer \param offset the offset (in bytes) on the input buffer where the Point definition is expected to start. \param blob_size lenght (in bytes) of the input buffer. \param endian (boolean) states if the EWKB input buffer is little- or big-endian encode. \param endian_arch (boolean) states if the target CPU has a little- or big-endian architecture. \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_Z_M \return -1 on failure; otherwise the offset where the next object starts. \sa gaiaEwkbGetPoint, gaiaEwkbGetPolygon, gaiaEwkbGetMultiGeometry */ GAIAGEO_DECLARE int gaiaEwkbGetPolygon (gaiaGeomCollPtr geom, unsigned char *blob, int offset, int blob_size, int endian, int endian_arch, int dims); /** Attempts to decode a MultiGeometry from within an EWKB binary buffer \param geom pointer to an existing Geometry object; if succesfull the parsed MultiGeometry will be inserted into this Geometry \param blob pointer to EWKB input buffer \param offset the offset (in bytes) on the input buffer where the Point definition is expected to start. \param blob_size lenght (in bytes) of the input buffer. \param endian (boolean) states if the EWKB input buffer is little- or big-endian encode. \param endian_arch (boolean) states if the target CPU has a little- or big-endian architecture. \param dims dimensions: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M or GAIA_XY_Z_M \return -1 on failure; otherwise the offset where the next object starts. \sa gaiaEwkbGetPoint, gaiaEwkbGetLinestring, gaiaEwkbGetPolygon \note these functions are mainly intended for internal usage. */ GAIAGEO_DECLARE int gaiaEwkbGetMultiGeometry (gaiaGeomCollPtr geom, unsigned char *blob, int offset, int blob_size, int endian, int endian_arch, int dims); /** Creates a Geometry object from FGF notation \param blob pointer to FGF buffer \param size the BLOB's size (in bytes) \return the pointer to the newly created Geometry object: NULL on failure. \sa gaiaToFgf \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromFgf (const unsigned char *blob, unsigned int size); /** Encodes a Geometry object into FGF notation \param geom pointer to Geometry object \param result on completion will containt a pointer to the FGF buffer [BLOB]: NULL on failure. \param size on completion this variable will contain the BLOB's size (in bytes) \param coord_dims one of: GAIA_XY, GAIA_XY_Z, GAIA_XY_M, GAIA_XY_ZM \sa gaiaFromFgf \note the returned BLOB buffer corresponds to dynamically allocated memory: so you are responsible to free() it [unless SQLite will take care of memory cleanup via buffer binding]. */ GAIAGEO_DECLARE void gaiaToFgf (gaiaGeomCollPtr geom, unsigned char **result, int *size, int coord_dims); /** Creates a Geometry object from WKT notation \param in_buffer pointer to WKT buffer \param type the expected Geometry Class Type \n if actual type defined in WKT doesn't corresponds to this, an error will be raised. \return the pointer to the newly created Geometry object: NULL on failure \sa gaiaOutWkt, gaiaOutWktStrict, gaiaParseEWKT, gaiaToEWKT \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseWkt (const unsigned char *in_buffer, short type); /** Encodes a Geometry object into WKT notation \param out_buf pointer to dynamically growing Text buffer \param geom pointer to Geometry object \sa gaiaParseWkt, gaiaOutWktStrict, gaiaParseEWKT, gaiaToEWKT, gaiaOutWktEx \note this function will apply 3D WKT encoding as internally intended by SpatiaLite: not necessarily intended by other OGC-like implementations. \n Anyway, 2D WKT is surely standard and safely interoperable. */ GAIAGEO_DECLARE void gaiaOutWkt (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom); /** Encodes a Geometry object into WKT notation \param out_buf pointer to dynamically growing Text buffer \param geom pointer to Geometry object \param precision decimal digits to be used for coordinates \sa gaiaParseWkt, gaiaOutWktStrict, gaiaParseEWKT, gaiaToEWKT \note this function will apply 3D WKT encoding as internally intended by SpatiaLite: not necessarily intended by other OGC-like implementations. \n Anyway, 2D WKT is surely standard and safely interoperable. */ GAIAGEO_DECLARE void gaiaOutWktEx (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom, int precision); /** Encodes a Geometry object into strict 2D WKT notation \param out_buf pointer to dynamically growing Text buffer \param geom pointer to Geometry object \param precision decimal digits to be used for coordinates \sa gaiaParseWkt, gaiaOutWkt, gaiaParseEWKT, gaiaToEWKT \note this function will apply strict 2D WKT encoding, so to be surely standard and safely interoperable. \n Dimensions will be automatically casted to 2D [XY] when required. */ GAIAGEO_DECLARE void gaiaOutWktStrict (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom, int precision); /** Creates a Geometry object from EWKT notation \param in_buffer pointer to EWKT buffer \return the pointer to the newly created Geometry object: NULL on failure \sa gaiaParseWkt, gaiaOutWkt, gaiaOutWktStrict, gaiaToEWKT \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseEWKT (const unsigned char *in_buffer); /** Encodes a Geometry object into EWKT notation \param out_buf pointer to dynamically growing Text buffer \param geom pointer to Geometry object \sa gaiaParseWkt, gaiaOutWkt, gaiaOutWktStrict, gaiaParseEWKT \note this function will apply PostGIS own EWKT encoding. */ GAIAGEO_DECLARE void gaiaToEWKT (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom); /** Encodes a WKT 3D Point [XYZ] \param out_buf pointer to dynamically growing Text buffer \param point pointer to Point object \sa gaiaOutLinestringZ, gaiaOutPolygonZ, gaiaOutPointZex \remark mainly intended for internal usage. */ GAIAGEO_DECLARE void gaiaOutPointZ (gaiaOutBufferPtr out_buf, gaiaPointPtr point); /** Encodes a WKT 3D Point [XYZ] \param out_buf pointer to dynamically growing Text buffer \param point pointer to Point object \param precision decimal digits to be used for coordinates \sa gaiaOutLinestringZ, gaiaOutPolygonZ \remark mainly intended for internal usage. */ GAIAGEO_DECLARE void gaiaOutPointZex (gaiaOutBufferPtr out_buf, gaiaPointPtr point, int precision); /** Encodes a WKT 3D Linestring [XYZ] \param out_buf pointer to dynamically growing Text buffer \param linestring pointer to Linestring object \sa gaiaOutPointZ, gaiaOutPolygonZ, gaiaOutLinestringZex \remark mainly intended for internal usage. */ GAIAGEO_DECLARE void gaiaOutLinestringZ (gaiaOutBufferPtr out_buf, gaiaLinestringPtr linestring); /** Encodes a WKT 3D Linestring [XYZ] \param out_buf pointer to dynamically growing Text buffer \param linestring pointer to Linestring object \param precision decimal digits to be used for coordinates \sa gaiaOutPointZ, gaiaOutPolygonZ \remark mainly intended for internal usage. */ GAIAGEO_DECLARE void gaiaOutLinestringZex (gaiaOutBufferPtr out_buf, gaiaLinestringPtr linestring, int precision); /** Encodes a WKT 3D Polygon [XYZ] \param out_buf pointer to dynamically growing Text buffer \param polygon pointer to Point object \sa gaiaOutPointZ, gaiaOutLinestringZ, gaiaOutPolygonZex \remark mainly intended for internal usage. */ GAIAGEO_DECLARE void gaiaOutPolygonZ (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polygon); /** Encodes a WKT 3D Polygon [XYZ] \param out_buf pointer to dynamically growing Text buffer \param polygon pointer to Point object \param precision decimal digits to be used for coordinates \sa gaiaOutPointZ, gaiaOutLinestringZ \remark mainly intended for internal usage. */ GAIAGEO_DECLARE void gaiaOutPolygonZex (gaiaOutBufferPtr out_buf, gaiaPolygonPtr polygon, int precision); /** Creates a Geometry object from KML notation \param in_buffer pointer to KML buffer \return the pointer to the newly created Geometry object: NULL on failure \sa gaiaOutBareKml, gaiaOutFullKml \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseKml (const unsigned char *in_buffer); /** Encodes a Geometry object into KML notation \param out_buf pointer to dynamically growing Text buffer \param geom pointer to Geometry object \param precision decimal digits to be used for coordinates \sa gaiaParseKml, gaiaOutFullKml \note this function will export the simplest KML notation (no descriptions). */ GAIAGEO_DECLARE void gaiaOutBareKml (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom, int precision); /** Encodes a Geometry object into KML notation \param out_buf pointer to dynamically growing Text buffer \param name text string to be set as KML \e name \param desc text string to se set as KML \e description \param geom pointer to Geometry object \param precision decimal digits to be used for coordinates \sa gaiaParseKml, gaiaOutBareKml \note this function will export the simplest KML notation (no descriptions). */ GAIAGEO_DECLARE void gaiaOutFullKml (gaiaOutBufferPtr out_buf, const char *name, const char *desc, gaiaGeomCollPtr geom, int precision); /** Creates a Geometry object from GML notation \param in_buffer pointer to GML buffer \param sqlite_handle handle to current DB connection \return the pointer to the newly created Geometry object: NULL on failure \sa gaiaParseGml_r, gaiaOutGml \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object.\n not reentrant and thread unsafe. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseGml (const unsigned char *in_buffer, sqlite3 * sqlite_handle); /** Creates a Geometry object from GML notation \param p_cache a memory pointer returned by spatialite_alloc_connection() \param in_buffer pointer to GML buffer \param sqlite_handle handle to current DB connection \return the pointer to the newly created Geometry object: NULL on failure \sa gaiaParseGml, gaiaOutGml \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object.\n reentrant and thread-safe. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseGml_r (const void *p_cache, const unsigned char *in_buffer, sqlite3 * sqlite_handle); /** Encodes a Geometry object into GML notation \param out_buf pointer to dynamically growing Text buffer \param version GML version \param precision decimal digits to be used for coordinates \param geom pointer to Geometry object \sa gaiaParseGml \note if \e version is set to \b 3, then GMLv3 will be used; in any other case GMLv2 will be assumed by default. */ GAIAGEO_DECLARE void gaiaOutGml (gaiaOutBufferPtr out_buf, int version, int precision, gaiaGeomCollPtr geom); /** Creates a Geometry object from GeoJSON notation \param in_buffer pointer to GeoJSON buffer \return the pointer to the newly created Geometry object: NULL on failure \sa gaiaOutGeoJSON \note you are responsible to destroy (before or after) any allocated Geometry, unless you've passed ownership of the Geometry object to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseGeoJSON (const unsigned char *in_buffer); /** Encodes a Geometry object into GeoJSON notation \param out_buf pointer to dynamically growing Text buffer \param geom pointer to Geometry object \param precision decimal digits to be used for coordinates \param options GeoJSON specific options \sa gaiaParseGeoJSON \note \e options can assume the following values: \li 1 = BBOX, no CRS \li 2 = no BBOX, short form CRS \li 3 = BBOX, short form CRS \li 4 = no BBOX, long form CRS \li 5 = BBOX, long form CRS \li any other value: no BBOX and no CRS */ GAIAGEO_DECLARE void gaiaOutGeoJSON (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom, int precision, int options); /** Encodes a Geometry object into SVG notation \param out_buf pointer to dynamically growing Text buffer \param geom pointer to Geometry object \param relative flag: relative or absolute coordinates \param precision decimal digits to be used for coordinates \note if \e relative is set to \b 1, then SVG relative coords will be used: in any other case SVG absolute coords will be assumed by default. */ GAIAGEO_DECLARE void gaiaOutSvg (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom, int relative, int precision); /** Allocates a new DBF Field Value object [duplicating an existing one] \param org pointer to input DBF Field Value object. \return the pointer to newly created DBF Field object. \sa gaiaAllocDbfField, gaiaFreeDbfField, gaiaCloneDbfField, gaiaCloneValue, gaiaSetNullValue, gaiaSetIntValue, gaiaSetDoubleValue, gaiaSetStrValue \note the newly created object is an exact copy of the original one. */ GAIAGEO_DECLARE gaiaValuePtr gaiaCloneValue (gaiaValuePtr org); /** Resets a DBF Field Value object to its initial empty state \param p pointer to DBF Field Value object \sa gaiaAllocDbfField, gaiaCloneDbfField, gaiaCloneValue, gaiaSetNullValue, gaiaSetIntValue, gaiaSetDoubleValue, gaiaSetStrValue, gaiaResetDbfEntity */ GAIAGEO_DECLARE void gaiaFreeValue (gaiaValuePtr p); /** Allocates a new DBF Field object \param name text string: DBF Field name. \param type identifier of the corresponding DBF data type. \param offset corresponding offset into the DBF I/O buffer. \param length max field length (in bytes). \param decimals precision: number of decimal digits. \return the pointer to newly created DBF Field object. \sa gaiaFreeDbfField, gaiaCloneDbfField, gaiaFreeValue, gaiaSetNullValue, gaiaSetIntValue, gaiaSetDoubleValue, gaiaSetStrValue \note you are responsible to destroy (before or after) any allocated DBF Field, unless you've passed ownership to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. \n supported DBF data types are: \li 'C' text string [default] \li 'N' numeric \li 'D' date \li 'L' boolean */ GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaAllocDbfField (char *name, unsigned char type, int offset, unsigned char length, unsigned char decimals); /** Destroys a DBF Field object \param p pointer to DBF Field object \sa gaiaAllocDbfField, gaiaCloneDbfField, gaiaCloneValue, gaiaFreeValue, gaiaSetNullValue, gaiaSetIntValue, gaiaSetDoubleValue, gaiaSetStrValue */ GAIAGEO_DECLARE void gaiaFreeDbfField (gaiaDbfFieldPtr p); /** Allocates a new DBF Field object [duplicating an existing one] \param org pointer to input DBF Field object. \return the pointer to newly created DBF Field object. \sa gaiaAllocDbfField, gaiaFreeDbfField, gaiaCloneDbfField, gaiaFreeValue, gaiaSetNullValue, gaiaSetIntValue, gaiaSetDoubleValue, gaiaSetStrValue \note the newly created object is an exact copy of the original one [this including an evantual Field Value]. */ GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaCloneDbfField (gaiaDbfFieldPtr org); /** Sets a NULL current value for a DBF Field object \param field pointer to DBF Field object \sa gaiaAllocDbfField, gaiaFreeDbfField, gaiaCloneDbfField, gaiaFreeValue, gaiaSetIntValue, gaiaSetDoubleValue, gaiaSetStrValue */ GAIAGEO_DECLARE void gaiaSetNullValue (gaiaDbfFieldPtr field); /** Sets an INTEGER current value for a DBF Field object \param field pointer to DBF Field object. \param value integer value to be set. \sa gaiaAllocDbfField, gaiaFreeDbfField, gaiaCloneDbfField, gaiaFreeValue, gaiaSetNullValue, gaiaSetDoubleValue, gaiaSetStrValue */ GAIAGEO_DECLARE void gaiaSetIntValue (gaiaDbfFieldPtr field, sqlite3_int64 value); /** Sets a DOUBLE current value for a DBF Field object \param field pointer to DBF Field object. \param value double value to be set. \sa gaiaAllocDbfField, gaiaFreeDbfField, gaiaCloneDbfField, gaiaFreeValue, gaiaSetNullValue, gaiaSetIntValue, gaiaSetStrValue */ GAIAGEO_DECLARE void gaiaSetDoubleValue (gaiaDbfFieldPtr field, double value); /** Sets a TEXT current value for a DBF Field object \param field pointer to DBF Field object. \param str text string value to be set. \sa gaiaAllocDbfField, gaiaFreeDbfField, gaiaCloneDbfField, gaiaFreeValue, gaiaSetNullValue, gaiaSetIntValue, gaiaSetDoubleValue */ GAIAGEO_DECLARE void gaiaSetStrValue (gaiaDbfFieldPtr field, char *str); /** Creates an initially empty DBF List object \return the pointer to newly allocated DBF List object: NULL on failure. \sa gaiaFreeDbfList, gaiaIsValidDbfList, gaiaResetDbfEntity, gaiaCloneDbfEntity, gaiaAddDbfField \note you are responsible to destroy (before or after) any allocated DBF List, unless you've passed ownership to some further object: in this case destroying the higher order object will implicitly destroy any contained child object. */ GAIAGEO_DECLARE gaiaDbfListPtr gaiaAllocDbfList (void); /** Destroys a DBF List object \param list pointer to the DBF List object \sa gaiaAllocDbfList, gaiaIsValidDbfList, gaiaResetDbfEntity, gaiaCloneDbfEntity, gaiaAddDbfField \note attempting to destroy any DBF List object whose ownnership has already been transferred to some other (higher order) object is a serious error, and will easily cause severe memory corruption. */ GAIAGEO_DECLARE void gaiaFreeDbfList (gaiaDbfListPtr list); /** Checks a DBF List object for validity \param list pointer to the DBF List object. \return 0 if not valid: any other value if valid. \sa gaiaAllocDbfList, gaiaFreeDbfList, gaiaIsValidDbfList, gaiaResetDbfEntity, gaiaCloneDbfEntity, gaiaAddDbfField */ GAIAGEO_DECLARE int gaiaIsValidDbfList (gaiaDbfListPtr list); /** Inserts a further DBF Field object into a DBF List object \param list pointer to the DBF List object. \param name text string: DBF Field name. \param type identifier of the corresponding DBF data type. \param offset corresponding offset into the DBF I/O buffer. \param length max field length (in bytes). \param decimals precision: number of decimal digits. \return the pointer to newly created DBF Field object. \sa gaiaAllocDbfField \note supported DBF data types are: \li 'C' text string [default] \li 'N' numeric \li 'D' date \li 'L' boolean */ GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaAddDbfField (gaiaDbfListPtr list, char *name, unsigned char type, int offset, unsigned char length, unsigned char decimals); /** Resets a DBF List object to its initial empty state \param list pointer to the DBF List object. \sa gaiaFreeValue \note any DBF Field associated to the List object will be reset to its initial empty state (i.e. \e no \e value at all). */ GAIAGEO_DECLARE void gaiaResetDbfEntity (gaiaDbfListPtr list); /** Allocates a new DBF List object [duplicating an existing one] \param org pointer to input DBF List object. \return the pointer to newly created DBF List object. \sa gaiaCloneDbfField, gaiaCloneValue, \note the newly created object is an exact copy of the original one. \n this including any currently set Field Value. */ GAIAGEO_DECLARE gaiaDbfListPtr gaiaCloneDbfEntity (gaiaDbfListPtr org); /** Allocates a new Shapefile object. \return the pointer to newly created Shapefile object. \sa gaiaFreeShapefile, gaiaOpenShpRead, gaiaOpenShpWrite, gaiaReadShpEntity, gaiaShpAnalyze, gaiaWriteShpEntity, gaiaFlushShpHeaders \note you are responsible to destroy (before or after) any allocated Shapefile. \n you should phisically open the Shapefile in \e read or \e write mode before performing any actual I/O operation. */ GAIAGEO_DECLARE gaiaShapefilePtr gaiaAllocShapefile (void); /** Destroys a Shapefile object \param shp pointer to the Shapefile object. \sa gaiaAllocShapefile, gaiaOpenShpRead, gaiaOpenShpWrite, gaiaReadShpEntity, gaiaShpAnalyze, gaiaWriteShpEntity, gaiaFlushShpHeaders \note destroying the Shapefile object will close any related file: anyway you a responsible to explicitly call gaiaFlushShpHeader before destroyng a Shapefile opened in \e write mode. */ GAIAGEO_DECLARE void gaiaFreeShapefile (gaiaShapefilePtr shp); /** Open a Shapefile in read mode \param shp pointer to the Shapefile object. \param path \e abstract pathname to the corresponding file-system files. \param charFrom GNU ICONV name identifying the input charset encoding. \param charTo GNU ICONV name identifying the output charset encoding. \sa gaiaAllocShapefile, gaiaFreeShapefile, gaiaOpenShpWrite, gaiaReadShpEntity, gaiaShpAnalyze, gaiaWriteShpEntity, gaiaFlushShpHeaders \note on failure the object member \e Valid will be set to 0; and the object member \e LastError will contain the appropriate error message. \n the \e abstract pathname should not contain any suffix at all. */ GAIAGEO_DECLARE void gaiaOpenShpRead (gaiaShapefilePtr shp, const char *path, const char *charFrom, const char *charTo); /** Open a Shapefile in read mode \param shp pointer to the Shapefile object. \param path \e abstract pathname to the corresponding file-system files. \param shape the SHAPE code; expected to be one of GAIA_SHP_POINT, GAIA_SHP_POLYLINE, GAIA_SHP_POLYGON, GAIA_SHP_MULTIPOINT, GAIA_SHP_POINTZ, GAIA_SHP_POLYLINEZ, GAIA_SHP_POLYGONZ, GAIA_SHP_MULTIPOINTZ, GAIA_SHP_POINTM, GAIA_SHP_POLYLINEM, GAIA_SHP_POLYGONM, GAIA_SHP_MULTIPOINTM \param list pointer to DBF List object representing the corresponding data attributes. \param charFrom GNU ICONV name identifying the input charset encoding. \param charTo GNU ICONV name identifying the output charset encoding. \sa gaiaAllocShapefile, gaiaFreeShapefile, gaiaOpenShpRead, gaiaReadShpEntity, gaiaShpAnalyze, gaiaWriteShpEntity, gaiaFlushShpHeaders \note on failure the object member \e Valid will be set to 0; and the object member \e LastError will contain the appropriate error message. \n the \e abstract pathname should not contain any suffix at all. */ GAIAGEO_DECLARE void gaiaOpenShpWrite (gaiaShapefilePtr shp, const char *path, int shape, gaiaDbfListPtr list, const char *charFrom, const char *charTo); /** Reads a feature from a Shapefile object \param shp pointer to the Shapefile object. \param current_row the row number identifying the feature to be read. \param srid feature's SRID \return 0 on failure: any other value on success. \sa gaiaAllocShapefile, gaiaFreeShapefile, gaiaOpenShpRead, gaiaOpenShpWrite, gaiaShpAnalyze, gaiaWriteShpEntity, gaiaFlushShpHeaders \note on completion the Shapefile's \e Dbf member will contain the feature read: \li the \e Dbf->Geometry member will contain the corresponding Geometry \li and the \e Dbf->First member will point to the linked list containing the corresponding data attributes [both data formats and values]. \remark the Shapefile object should be opened in \e read mode. */ GAIAGEO_DECLARE int gaiaReadShpEntity (gaiaShapefilePtr shp, int current_row, int srid); /** Reads a feature from a Shapefile object \param shp pointer to the Shapefile object. \param current_row the row number identifying the feature to be read. \param srid feature's SRID \param text_dates is TRUE all DBF dates will be considered as TEXT \return 0 on failure: any other value on success. \sa gaiaAllocShapefile, gaiaFreeShapefile, gaiaOpenShpRead, gaiaOpenShpWrite, gaiaShpAnalyze, gaiaWriteShpEntity, gaiaFlushShpHeaders \note on completion the Shapefile's \e Dbf member will contain the feature read: \li the \e Dbf->Geometry member will contain the corresponding Geometry \li and the \e Dbf->First member will point to the linked list containing the corresponding data attributes [both data formats and values]. \remark the Shapefile object should be opened in \e read mode. */ GAIAGEO_DECLARE int gaiaReadShpEntity_ex (gaiaShapefilePtr shp, int current_row, int srid, int text_dates); /** Prescans a Shapefile object gathering informations \param shp pointer to the Shapefile object. \sa gaiaAllocShapefile, gaiaFreeShapefile, gaiaOpenShpRead, gaiaOpenShpWrite, gaiaReadShpEntity, gaiaWriteShpEntity, gaiaFlushShpHeaders \note on completion the Shapefile's \e EffectiveType will containt the Geometry type corresponding to features actually found. \remark the Shapefile object should be opened in \e read mode. */ GAIAGEO_DECLARE void gaiaShpAnalyze (gaiaShapefilePtr shp); /** Writes a feature into a Shapefile object \param shp pointer to the Shapefile object. \param entity pointer to DBF List object containing both Geometry and Field values. \return 0 on failure: any other value on success. \sa gaiaAllocShapefile, gaiaFreeShapefile, gaiaOpenShpRead, gaiaOpenShpWrite, gaiaReadShpEntity, gaiaShpAnalyze, gaiaFlushShpHeaders \remark the Shapefile object should be opened in \e write mode. */ GAIAGEO_DECLARE int gaiaWriteShpEntity (gaiaShapefilePtr shp, gaiaDbfListPtr entity); /** Writes into an output Shapefile any required header / footer \param shp pointer to the Shapefile object. \sa gaiaAllocShapefile, gaiaFreeShapefile, gaiaOpenShpRead, gaiaOpenShpWrite, gaiaReadShpEntity, gaiaShpAnalyze, gaiaWriteShpEntity \note forgetting to call gaiaFlushShpHeader for any Shapefile opened in \e write mode immediately before destroying the object, will surely cause severe file corruption. */ GAIAGEO_DECLARE void gaiaFlushShpHeaders (gaiaShapefilePtr shp); /** Allocates a new DBF File object. \return the pointer to newly created DBF File object. \sa gaiaFreeDbf, gaiaOpenDbfRead, gaiaOpenDbfWrite, gaiaReadDbfEntity, gaiaWriteDbfEntity, gaiaFlushDbfHeader \note you are responsible to destroy (before or after) any allocated DBF File. \n you should phisically open the DBF File in \e read or \e write mode before performing any actual I/O operation. */ GAIAGEO_DECLARE gaiaDbfPtr gaiaAllocDbf (void); /** Destroys a DBF File object \param dbf pointer to the DBF File object. \sa gaiaAllocDbf, gaiaFreeDbf, gaiaOpenDbfWrite, gaiaReadDbfEntity, gaiaWriteDbfEntity, gaiaFlushDbfHeader \note destroying the Shapefile object will close any related file: anyway you a responsible to explicitly call gaiaFlushShpHeader before destroyng a Shapefile opened in \e write mode. */ GAIAGEO_DECLARE void gaiaFreeDbf (gaiaDbfPtr dbf); /** Open a DBF File in read mode \param dbf pointer to the DBF File object. \param path pathname to the corresponding file-system file. \param charFrom GNU ICONV name identifying the input charset encoding. \param charTo GNU ICONV name identifying the output charset encoding. \sa gaiaAllocDbf, gaiaFreeDbf, gaiaOpenDbfWrite, gaiaReadDbfEntity, gaiaWriteDbfEntity, gaiaFlushDbfHeader \note on failure the object member \e Valid will be set to 0; and the object member \e LastError will contain the appropriate error message. */ GAIAGEO_DECLARE void gaiaOpenDbfRead (gaiaDbfPtr dbf, const char *path, const char *charFrom, const char *charTo); /** Open a DBF File in write mode \param dbf pointer to the DBF File object. \param path pathname to the corresponding file-system file. \param charFrom GNU ICONV name identifying the input charset encoding. \param charTo GNU ICONV name identifying the output charset encoding. \sa gaiaAllocDbf, gaiaFreeDbf, gaiaOpenDbfRead, gaiaReadDbfEntity, gaiaWriteDbfEntity, gaiaFlushDbfHeader \note on failure the object member \e Valid will be set to 0; and the object member \e LastError will contain the appropriate error message. */ GAIAGEO_DECLARE void gaiaOpenDbfWrite (gaiaDbfPtr dbf, const char *path, const char *charFrom, const char *charTo); /** Reads a record from a DBF File object \param dbf pointer to the DBF File object. \param current_row the row number identifying the record to be read. \param deleted on completion this variable will contain 0 if the record just read is valid: any other value if the record just read is marked as \e logically \e deleted. \return 0 on failure: any other value on success. \sa gaiaAllocDbf, gaiaFreeDbf, gaiaOpenDbfRead, gaiaOpenDbfWrite, gaiaFlushDbfHeader \note on completion the DBF File \e First member will point to the linked list containing the corresponding data attributes [both data formats and values]. \remark the DBF File object should be opened in \e read mode. */ GAIAGEO_DECLARE int gaiaReadDbfEntity (gaiaDbfPtr dbf, int current_row, int *deleted); /** Reads a record from a DBF File object \param dbf pointer to the DBF File object. \param current_row the row number identifying the record to be read. \param deleted on completion this variable will contain 0 if the record \param text_dates is TRUE all DBF dates will be considered as TEXT just read is valid: any other value if the record just read is marked as \e logically \e deleted. \return 0 on failure: any other value on success. \sa gaiaAllocDbf, gaiaFreeDbf, gaiaOpenDbfRead, gaiaOpenDbfWrite, gaiaFlushDbfHeader \note on completion the DBF File \e First member will point to the linked list containing the corresponding data attributes [both data formats and values]. \remark the DBF File object should be opened in \e read mode. */ GAIAGEO_DECLARE int gaiaReadDbfEntity_ex (gaiaDbfPtr dbf, int current_row, int *deleted, int text_dates); /** Writes a record into a DBF File object \param dbf pointer to the DBF File object. \param entity pointer to DBF List object containing Fields and corresponding values. \return 0 on failure: any other value on success. \sa gaiaAllocDbf, gaiaFreeDbf, gaiaOpenDbfRead, gaiaOpenDbfWrite, gaiaReadDbfEntity, gaiaFlushDbfHeader \remark the DBF File object should be opened in \e write mode. */ GAIAGEO_DECLARE int gaiaWriteDbfEntity (gaiaDbfPtr dbf, gaiaDbfListPtr entity); /** Writes into an output DBF File any required header / footer \param dbf pointer to the DBF File object. \sa gaiaAllocDbf, gaiaFreeDbf, gaiaOpenDbfRead, gaiaOpenDbfWrite, gaiaReadDbfEntity, gaiaWriteDbfEntity \note forgetting to call gaiaFlushDbfHeader for any DBF File opened in \e write mode immediately before destroying the object, will surely cause severe file corruption. */ GAIAGEO_DECLARE void gaiaFlushDbfHeader (gaiaDbfPtr dbf); #ifndef OMIT_ICONV /* ICONV enabled: supporting text reader */ /** Creates a Text Reader object \param path to the corresponding file-system file. \param field_separator the character acting as a separator between adjacent fields. \param text_separator the character used to quote text strings. \param decimal_separator the character used as a separator between integer and decimal digits for real numeric values. \param first_line_titles 0 if the first line contains regular values: any other value if the first line contains column names. \param encoding GNU ICONV name identifying the input charset encoding. \return the pointer to the newly created Text Reader object: NULL on failure \sa gaiaTextReaderDestroy, gaiaTextReaderParse, gaiaTextReaderGetRow, gaiaTextReaderFetchField \note you are responsible to destroy (before or after) any allocated Text Reader object. */ GAIAGEO_DECLARE gaiaTextReaderPtr gaiaTextReaderAlloc (const char *path, char field_separator, char text_separator, char decimal_separator, int first_line_titles, const char *encoding); /** Destroys a Text Reader object \param reader pointer to Text Reader object. \sa gaiaTextReaderAlloc, gaiaTextReaderParse, gaiaTextReaderGetRow, gaiaTextReaderFetchField */ GAIAGEO_DECLARE void gaiaTextReaderDestroy (gaiaTextReaderPtr reader); /** Prescans the external file associated to a Text Reade object \param reader pointer to Text Reader object. \return 0 on failure: any other value on success. \sa gaiaTextReaderAlloc, gaiaTextReaderDestroy, gaiaTextReaderGetRow, gaiaTextReaderFetchField \note this preliminary step is required so to ensure: \li file consistency: checking expected formatting rules. \li identifying the number / type / name of fields [aka columns]. \li identifying the actual number of lines within the file. */ GAIAGEO_DECLARE int gaiaTextReaderParse (gaiaTextReaderPtr reader); /** Reads a line from a Text Reader object \param reader pointer to Text Reader object. \param row_num the Line Number identifying the Line to be read. \return 0 on failure: any other value on success. \sa gaiaTextReaderAlloc, gaiaTextReaderDestroy, gaiaTextReaderParse, gaiaTextReaderFetchField \note this function will load the requested Line into the current buffer: you can then use gaiaTextReaderFetchField in order to retrieve any individual field [aka column] value. */ GAIAGEO_DECLARE int gaiaTextReaderGetRow (gaiaTextReaderPtr reader, int row_num); /** Retrieves an individual field value from the current Line \param reader pointer to Text Reader object. \param field_num relative field [aka column] index: first field has index 0. \param type on completion this variable will contain the value type. \param value on completion this variable will contain the current field value. \return 0 on failure: any other value on success. \sa gaiaTextReaderAlloc, gaiaTextReaderDestroy, gaiaTextReaderParse, gaiaTextReaderGetRow */ GAIAGEO_DECLARE int gaiaTextReaderFetchField (gaiaTextReaderPtr reader, int field_num, int *type, const char **value); #endif /* end ICONV (text reader) */ #ifdef __cplusplus } #endif #endif /* _GG_FORMATS_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/gg_wfs.h������������������������������������������������0000664�0001750�0001750�00000045460�12544707704�017441� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_wfs.h -- Gaia common support for WFS version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gg_wfs.h WFS support */ #ifndef _GG_WFS_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_WFS_H #endif #ifdef __cplusplus extern "C" { #endif typedef struct gaia_wfs_catalog gaiaWFScatalog; typedef gaiaWFScatalog *gaiaWFScatalogPtr; typedef struct gaia_wfs_item gaiaWFSitem; typedef gaiaWFSitem *gaiaWFSitemPtr; typedef struct gaia_wfs_schema gaiaWFSschema; typedef gaiaWFSschema *gaiaWFSschemaPtr; typedef struct gaia_wfs_column gaiaWFScolumn; typedef gaiaWFScolumn *gaiaWFScolumnPtr; /** Loads data from some WFS source \param sqlite handle to current DB connection \param path_or_url pointer to some WFS-GetFeature XML Document (could be a pathname or an URL). \param alt_describe_uri an alternative URI for DescribeFeatureType to be used if no one is found within the XML document returned by GetFeature. \param layer_name the name of the WFS layer. \param swap_axes if TRUE the X and Y axes will be swapped \param table the name of the table to be created \param pk_column name of the Primary Key column; if NULL or mismatching then "PK_UID" will be assumed by default. \param spatial_index if TRUE an R*Tree Spatial Index will be created \param rows on completion will contain the total number of actually imported rows \param err_msg on completion will contain an error message (if any) \param progress_callback pointer to a callback function to be invoked immediately after processing each WFS page (could be NULL) \param callback_ptr an arbitrary pointer (to be passed as the second argument by the callback function). \sa create_wfs_catalog, load_from_wfs_paged, reset_wfs_http_connection \return 0 on failure, any other value on success \note an eventual error message returned via err_msg requires to be deallocated by invoking free() \n please note: this one simply is a convenience method, and exactly corresponds to load_from_wfs_paged() setting a negative page size. */ SPATIALITE_DECLARE int load_from_wfs (sqlite3 * sqlite, const char *path_or_url, const char *alt_describe_uri, const char *layer_name, int swap_axes, const char *table, const char *pk_column_name, int spatial_index, int *rows, char **err_msg, void (*progress_callback) (int, void *), void *callback_ptr); /** Loads data from some WFS source (using WFS paging) \param sqlite handle to current DB connection \param path_or_url pointer to some WFS-GetFeature XML Document (could be a pathname or an URL). \param alt_describe_uri an alternative URI for DescribeFeatureType to be used if no one is found within the XML document returned by GetFeature. \param layer_name the name of the WFS layer. \param swap_axes if TRUE the X and Y axes will be swapped \param table the name of the table to be created \param pk_column name of the Primary Key column; if NULL or mismatching then "PK_UID" will be assumed by default. \param spatial_index if TRUE an R*Tree Spatial Index will be created \param page_size max number of features for each single WFS call; if zero or negative a single monolithic page is assumed (i.e. paging will not be applied). \param rows on completion will contain the total number of actually imported rows \param err_msg on completion will contain an error message (if any) \param progress_callback pointer to a callback function to be invoked immediately after processing each WFS page (could be NULL) \param callback_ptr an arbitrary pointer (to be passed as the second argument by the callback function). \sa create_wfs_catalog, load_from_wfs, reset_wfs_http_connection \return 0 on failure, any other value on success \note an eventual error message returned via err_msg requires to be deallocated by invoking free() \note the progress_callback function must have this signature: \b void \b myfunct(\b int \b count, \b void \b *ptr); \n and will cyclically report how many features have been processed since the initial call start. */ SPATIALITE_DECLARE int load_from_wfs_paged (sqlite3 * sqlite, const char *path_or_url, const char *alt_describe_uri, const char *layer_name, int swap_axes, const char *table, const char *pk_column_name, int spatial_index, int page_size, int *rows, char **err_msg, void (*progress_callback) (int, void *), void *callback_ptr); /** Creates a Catalog for some WFS service \param path_or_url pointer to some WFS-GetCapabilities XML Document (could be a pathname or an URL). \param err_msg on completion will contain an error message (if any) \return the pointer to the corresponding WFS-Catalog object: NULL on failure \sa destroy_wfs_catalog, get_wfs_catalog_count, get_wfs_catalog_item, load_from_wfs, reset_wfs_http_connection, get_wfs_version \note an eventual error message returned via err_msg requires to be deallocated by invoking free().\n you are responsible to destroy (before or after) any WFS-Catalog returned by create_wfs_catalog(). */ SPATIALITE_DECLARE gaiaWFScatalogPtr create_wfs_catalog (const char *path_or_url, char **err_msg); /** Destroys a WFS-Catalog object freeing any allocated resource \param handle the pointer to a valid WFS-Catalog returned by a previous call to create_wfs_catalog() \sa create_wfs_catalog */ SPATIALITE_DECLARE void destroy_wfs_catalog (gaiaWFScatalogPtr handle); /** Return the WFS-Version string as reported by GetCapabilities \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \return the WFS Version string: NULL is undefined \sa create_wfs_catalog */ SPATIALITE_DECLARE const char *get_wfs_version (gaiaWFScatalogPtr handle); /** Return the base URL for any WFS-GetFeature call \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \return the base URL for any WFS-GetFeature call: NULL is undefined \sa create_wfs_catalog, get_wfs_base_describe_url, get_wfs_request_url */ SPATIALITE_DECLARE const char *get_wfs_base_request_url (gaiaWFScatalogPtr handle); /** Return the base URL for any WFS-DescribeFeatureType call \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \return the base URL for any WFS-DescribeFeatureType call: NULL is undefined \sa create_wfs_catalog, get_wfs_base_request_url, get_wfs_describe_url */ SPATIALITE_DECLARE const char *get_wfs_base_describe_url (gaiaWFScatalogPtr handle); /** Return a GetFeature URL (GET) \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \param name the NAME uniquely identifying the required WFS layer. \param version could be "1.0.0" or "1.1.0"; if NULL or invalid "1.1.0" will be assumed. \param srid the preferred SRS to be used for WFS geometries; if negative or mismatching will be simply ignored. \param max_features the WFS MAXFEATURES argument; any negative or zero value will be ignored. \return the GetFeature URL: NULL if any error is found. \sa get_wfs_base_request_url, get_wfs_describe_url \note you are responsible to destroy (before or after) any allocated memory returned by get_wfs_request_url(). */ SPATIALITE_DECLARE char *get_wfs_request_url (gaiaWFScatalogPtr handle, const char *name, const char *version, int srid, int max_features); /** Return a DescribeFeatureType URL (GET) \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \param name the NAME uniquely identifying the required WFS layer. \param version could be "1.0.0" or "1.1.0"; if NULL or invalid "1.1.0" will be assumed. \return the DescribeFeatureType URL: NULL if any error is found. \sa get_wfs_base_describe_url, get_wfs_request_url \note you are responsible to destroy (before or after) any allocated memory returned by get_wfs_describe_url(). */ SPATIALITE_DECLARE char *get_wfs_describe_url (gaiaWFScatalogPtr handle, const char *name, const char *version); /** Return the total count of items (aka Layers) defined within a WFS-Catalog object \param handle the pointer to a valid WFS-Catalog returned by a previous call to create_wfs_catalog() \return the total count of items (aka Layers) defined within a WFS-Catalog object: a negative number if the WFS-Catalog isn't valid \sa create_wfs_catalog, get_wfs_catalog_item */ SPATIALITE_DECLARE int get_wfs_catalog_count (gaiaWFScatalogPtr handle); /** Return the pointer to some specific Layer defined within a WFS-Catalog object \param handle the pointer to a valid WFS-Catalog returned by a previous call to create_wfs_catalog() \param index the relative index identifying the required WFS-Layer (the first Item in the WFS-Catalaog object has index ZERO). \return the pointer to the required WFS-Layer object: NULL if the passed index isn't valid \sa create_wfs_catalog, get_wfs_catalog_count, get_wfs_item_name, get_wfs_item_title, get_wfs_item_abstract, get_wfs_layer_srid_count, get_wfs_layer_srid, get_wfs_keyword_count, get_wfs_keyword */ SPATIALITE_DECLARE gaiaWFSitemPtr get_wfs_catalog_item (gaiaWFScatalogPtr handle, int index); /** Return the name corresponding to some WFS-Item (aka Layer) object \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \return the name corresponding to the WFS-Layer object \sa get_wfs_layer_title, get_wfs_layer_abstract, get_wfs_layer_srid_count, get_wfs_layer_srid, get_wfs_keyword_count, get_wfs_keyword */ SPATIALITE_DECLARE const char *get_wfs_item_name (gaiaWFSitemPtr handle); /** Return the title corresponding to some WFS-Item (aka Layer) object \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \return the title corresponding to the WFS-Layer object \sa get_wfs_item_name, get_wfs_item_abstract, get_wfs_layer_srid_count, get_wfs_layer_srid, get_wfs_keyword_count, get_wfs_keyword */ SPATIALITE_DECLARE const char *get_wfs_item_title (gaiaWFSitemPtr handle); /** Return the abstract corresponding to some WFS-Item (aka Layer) object \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \return the abstract corresponding to the WFS-Layer object \sa get_wfs_item_name, get_wfs_item_title, get_wfs_layer_srid_count, get_wfs_layer_srid, get_wfs_keyword_count, get_wfs_keyword */ SPATIALITE_DECLARE const char *get_wfs_item_abstract (gaiaWFSitemPtr handle); /** Return the total count of SRIDs supported by a WFS-Item object \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \return the total count of SRIDs supported by a WFS-Item object: a negative number if the WFS-Item isn't valid \sa get_wfs_item_name, get_wfs_item_title, get_wfs_item_abstract, get_wfs_layer_srid, get_wfs_keyword_count, get_wfs_keyword */ SPATIALITE_DECLARE int get_wfs_layer_srid_count (gaiaWFSitemPtr handle); /** Return one of the SRIDs supported by a WFS-Item object \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \param index the relative index identifying the required SRID (the first SRID value supported by a WFS-Item object has index ZERO). \return the SRID-value: a negative number if the required SRID-value isn't defined. \sa get_wfs_item_name, get_wfs_item_title, get_wfs_item_abstract, get_wfs_layer_srid_count, get_wfs_keyword_count, get_wfs_keyword */ SPATIALITE_DECLARE int get_wfs_layer_srid (gaiaWFSitemPtr handle, int index); /** Return the total count of Keywords associated to a WFS-Item object \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \return the total count of Keyword associated to a WFS-Item object: a negative number if the WFS-Item isn't valid \sa get_wfs_item_name, get_wfs_item_title, get_wfs_item_abstract, get_wfs_layer_srid_count, get_wfs_layer_srid, get_wfs_layer_keyword */ SPATIALITE_DECLARE int get_wfs_keyword_count (gaiaWFSitemPtr handle); /** Return one of the Keywords supported by a WFS-Item object \param handle the pointer to a valid WFS-Item returned by a previous call to get_wfs_catalog_item(). \param index the relative index identifying the required Keyword (the first Keyword associated to a WFS-Item object has index ZERO). \return the Keyword value: NULL if the required Keyword isn't defined. \sa get_wfs_item_name, get_wfs_item_title, get_wfs_item_abstract, get_wfs_layer_srid_count, get_wfs_layer_srid, get_wfs_layer_keyword */ SPATIALITE_DECLARE const char *get_wfs_keyword (gaiaWFSitemPtr handle, int index); /** Creates a Schema representing some WFS Layer \param path_or_url pointer to some WFS-DescribeFeatureType XML Document (could be a pathname or an URL). \param err_msg on completion will contain an error message (if any) \return the pointer to the corresponding WFS-Schema object: NULL on failure \sa destroy_wfs_schema,get_wfs_schema_column_count, get_wfs_schema_column_info, get_wfs_schema_geometry_info \note an eventual error message returned via err_msg requires to be deallocated by invoking free().\n you are responsible to destroy (before or after) any WFS-Schema returned by create_wfs_schema(). */ SPATIALITE_DECLARE gaiaWFSschemaPtr create_wfs_schema (const char *path_or_url, const char *layer_name, char **err_msg); /** Destroys a WFS-schema object freeing any allocated resource \param handle the pointer to a valid WFS-Catalog returned by a previous call to create_wfs_schema() \sa create_wfs_schema */ SPATIALITE_DECLARE void destroy_wfs_schema (gaiaWFSschemaPtr handle); /** Return the infos describing some WFS-GeometryColumn object \param handle the pointer to a valid WFS-Schema returned by a previous call to create_wfs_schema(). \param name on completion will contain a pointer to the GeometryColumn name \param type on completion will contain the GeometryType set for the Column; could be one of GAIA_POINT, GAIA_LINESTRING, GAIA_POLYGON, GAIA_MULTIPOINT, GAIA_MULTILINESTRING, GAIA_MULTIPOLYGON or GAIA_GEOMETRYCOLLECTION \param srid on completion will contain the SRID-value set for the GeometryColumn \param dims on completion will contain the dimensions (2 or 3) set for the GeometryColumn \param nullable on completion will contain a Boolean value; if TRUE the Column may contain NULL-values. \return TRUE on success, FALSE if any error is encountered or if the WFS-Schema hasn't any Geometry-Column defined. \sa create_wfs_schema, get_wfs_schema_column_count, get_wfs_schema_column, get_wfs_schema_column_info */ SPATIALITE_DECLARE int get_wfs_schema_geometry_info (gaiaWFSschemaPtr handle, const char **name, int *type, int *srid, int *dims, int *nullable); /** Return the total count of items (aka Columns) defined within a WFS-Schema object \param handle the pointer to a valid WFS-Schema returned by a previous call to create_wfs_schema() \return the total count of items (aka Columns) defined within a WFS-Schema object: a negative number if the WFS-Schema isn't valid \sa create_wfs_schema, get_wfs_schema_geometry_info, get_wfs_schema_column, get_wfs_schema_column_info */ SPATIALITE_DECLARE int get_wfs_schema_column_count (gaiaWFSschemaPtr handle); /** Return the pointer to some specific Column defined within a WFS-Schema object \param handle the pointer to a valid WFS-Schema returned by a previous call to create_wfs_schema() \param index the relative index identifying the required WFS-Column (the first Item in the WFS-Schema object has index ZERO). \return the pointer to the required WFS-Column object: NULL if the passed index isn't valid \sa create_wfs_schema, get_wfs_schema_geometry_info, get_wfs_schema_column_count, get_wfs_schema_column_info */ SPATIALITE_DECLARE gaiaWFScolumnPtr get_wfs_schema_column (gaiaWFSschemaPtr handle, int index); /** Return the infos describing some WFS-Column object \param handle the pointer to a valid WFS-Column returned by a previous call to get_wfs_schema_column(). \param name on completion will contain a pointer to the Column name \param type on completion will contain the datatype set for the Column; could be one of SQLITE_TEXT, SQLITE_INTEGER or SQLITE_FLOAT \param nullable on completion will contain a Boolean value; if TRUE the Column may contain NULL-values. \return TRUE on success, FALSE if any error is encountered \sa get_wfs_schema_column, get_wfs_schema_geometry_info */ SPATIALITE_DECLARE int get_wfs_schema_column_info (gaiaWFScolumnPtr handle, const char **name, int *type, int *nullable); /** Resets the libxml2 "nano HTTP": useful when changing the HTTP_PROXY settings \sa create_wfs_catalog, load_from_wfs, load_from_wfs_paged */ SPATIALITE_DECLARE void reset_wfs_http_connection (void); #ifdef __cplusplus } #endif #endif /* _GG_WFS_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite/gg_structs.h��������������������������������������������0000664�0001750�0001750�00000055314�12544707704�020350� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_structs.h -- Gaia common support for geometries: structures version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /** \file gg_structs.h Geometry structures */ #ifndef _GG_STRUCTS_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _GG_STRUCTS_H #endif #include <sys/types.h> #ifdef __cplusplus extern "C" { #endif /** Container for OGC POINT Geometry */ typedef struct gaiaPointStruct { /* an OpenGis POINT */ /** X coordinate */ double X; /* X,Y coordinates */ /** Y coordinate */ double Y; /** Z coordinate: only for XYZ and XYZM dims */ double Z; /* Z coordinate */ /** M measure: only for XYM and XYZM dims */ double M; /* M measure */ /** one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M, GAIA_XY_ZM */ int DimensionModel; /* (x,y), (x,y,z), (x,y,m) or (x,y,z,m) */ /** pointer to next item [double linked list] */ struct gaiaPointStruct *Next; /* for double-linked list */ /** pointer to previous item [double linked list] */ struct gaiaPointStruct *Prev; /* for double-linked list */ } gaiaPoint; /** Typedef for OGC POINT structure \sa gaiaPoint */ typedef gaiaPoint *gaiaPointPtr; /** Container for dynamically growing line/ring */ typedef struct gaiaDynamicLineStruct { /* a generic DYNAMIC LINE object */ /** invalid object */ int Error; /** the SRID */ int Srid; /** pointer to first POINT [double linked list] */ gaiaPointPtr First; /* Points linked list - first */ /** pointer to last POINT [double linked list] */ gaiaPointPtr Last; /* Points linked list - last */ } gaiaDynamicLine; /** Typedef for dynamically growing line/ring structure \sa gaiaDynamicLine */ typedef gaiaDynamicLine *gaiaDynamicLinePtr; /** Container for OGC LINESTRING Geometry */ typedef struct gaiaLinestringStruct { /* an OpenGis LINESTRING */ /** number of points [aka vertices] */ int Points; /* number of vertices */ /** COORDs mem-array */ double *Coords; /* X,Y [vertices] array */ /** MBR: min X */ double MinX; /* MBR - BBOX */ /** MBR: min Y */ double MinY; /* MBR - BBOX */ /** MBR: max X */ double MaxX; /* MBR - BBOX */ /** MBR: max X */ double MaxY; /* MBR - BBOX */ /** one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M, GAIA_XY_ZM */ int DimensionModel; /* (x,y), (x,y,z), (x,y,m) or (x,y,z,m) */ /** pointer to next item [linked list] */ struct gaiaLinestringStruct *Next; /* for linked list */ } gaiaLinestring; /** Typedef for OGC LINESTRING structure \sa gaiaLinestring */ typedef gaiaLinestring *gaiaLinestringPtr; /** Container for OGC RING Geometry */ typedef struct gaiaRingStruct { /* a GIS ring - OpenGis LINESTRING, closed */ /** number of points [aka vertices] */ int Points; /* number of vertices */ /** COORDs mem-array */ double *Coords; /* X,Y [vertices] array */ /** clockwise / counterclockwise */ int Clockwise; /* clockwise / counterclockwise */ /** MBR: min X */ double MinX; /* MBR - BBOX */ /** MBR: min Y */ double MinY; /* MBR - BBOX */ /** MBR: max X */ double MaxX; /* MBR - BBOX */ /** MBR: max Y */ double MaxY; /* MBR - BBOX */ /** one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M, GAIA_XY_ZM */ int DimensionModel; /* (x,y), (x,y,z), (x,y,m) or (x,y,z,m) */ /** pointer to next item [linked list] */ struct gaiaRingStruct *Next; /* for linked list */ /** pointer to belonging Polygon */ struct gaiaPolygonStruct *Link; /* polygon reference */ } gaiaRing; /** Typedef for OGC RING structure \sa gaiaRing */ typedef gaiaRing *gaiaRingPtr; /** Container for OGC POLYGON Geometry */ typedef struct gaiaPolygonStruct { /* an OpenGis POLYGON */ /** the exterior ring (mandatory) */ gaiaRingPtr Exterior; /* exterior ring */ /** number of interior rings (may be, none) */ int NumInteriors; /* number of interior rings */ /** array of interior rings */ gaiaRingPtr Interiors; /* interior rings array */ /** index of first unused interior ring */ int NextInterior; /* first free interior ring */ /** MBR: min X */ double MinX; /* MBR - BBOX */ /** MBR: min Y */ double MinY; /* MBR - BBOX */ /** MBR: max X */ double MaxX; /* MBR - BBOX */ /** MBR: max Y */ double MaxY; /* MBR - BBOX */ /** one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M, GAIA_XY_ZM */ int DimensionModel; /* (x,y), (x,y,z), (x,y,m) or (x,y,z,m) */ /** pointer to next item [linked list] */ struct gaiaPolygonStruct *Next; /* for linked list */ } gaiaPolygon; /** Typedef for OGC POLYGON structure \sa gaiaPolygon */ typedef gaiaPolygon *gaiaPolygonPtr; /** Container for OGC GEOMETRYCOLLECTION Geometry */ typedef struct gaiaGeomCollStruct { /* OpenGis GEOMETRYCOLLECTION */ /** the SRID */ int Srid; /* the SRID value for this GEOMETRY */ /** CPU endian arch */ char endian_arch; /* littleEndian - bigEndian arch for target CPU */ /** BLOB Geometry endian arch */ char endian; /* littleEndian - bigEndian */ /** BLOB-Geometry buffer */ const unsigned char *blob; /* WKB encoded buffer */ /** BLOB-Geometry buffer size (in bytes) */ unsigned long size; /* buffer size */ /** current offset [BLOB parsing] */ unsigned long offset; /* current offset [for parsing] */ /** pointer to first POINT [linked list]; may be NULL */ gaiaPointPtr FirstPoint; /* Points linked list - first */ /** pointer to last POINT [linked list]; may be NULL */ gaiaPointPtr LastPoint; /* Points linked list - last */ /** pointer to first LINESTRING [linked list]; may be NULL */ gaiaLinestringPtr FirstLinestring; /* Linestrings linked list - first */ /** pointer to last LINESTRING [linked list]; may be NULL */ gaiaLinestringPtr LastLinestring; /* Linestrings linked list - last */ /** pointer to first POLYGON [linked list]; may be NULL */ gaiaPolygonPtr FirstPolygon; /* Polygons linked list - first */ /** pointer to last POLYGON [linked list]; may be NULL */ gaiaPolygonPtr LastPolygon; /* Polygons linked list - last */ /** MBR: min X */ double MinX; /* MBR - BBOX */ /** MBR: min Y */ double MinY; /* MBR - BBOX */ /** MBR: max X */ double MaxX; /* MBR - BBOX */ /** MBR: max Y */ double MaxY; /* MBR - BBOX */ /** one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M, GAIA_XY_ZM */ int DimensionModel; /* (x,y), (x,y,z), (x,y,m) or (x,y,z,m) */ /** any valid Geometry Class type */ int DeclaredType; /* the declared TYPE for this Geometry */ /** pointer to next item [linked list] */ struct gaiaGeomCollStruct *Next; /* Vanuatu - used for linked list */ } gaiaGeomColl; /** Typedef for OGC GEOMETRYCOLLECTION structure \sa gaiaGeomCool */ typedef gaiaGeomColl *gaiaGeomCollPtr; /** Container similar to LINESTRING [internally used] */ typedef struct gaiaPreRingStruct { /* a LINESTRING used to build rings */ /** pointer to LINESTRING */ gaiaLinestringPtr Line; /* a LINESTRING pointer */ /** already used/visited item */ int AlreadyUsed; /* a switch to mark an already used line element */ /** pointer to next item [linked list] */ struct gaiaPreRingStruct *Next; /* for linked list */ } gaiaPreRing; /** Typedef for gaiaPreRing structure \sa gaiaPreRing */ typedef gaiaPreRing *gaiaPreRingPtr; /** Container for variant (multi-type) value */ typedef struct gaiaValueStruct { /* a DBF field multitype value */ /** data type: one of GAIA_NULL_VALUE, GAIA_INT_VALUE, GAIA_DOUBLE_VALUE, GAIA_TEXT_VALUE */ short Type; /* the type */ /** TEXT type value */ char *TxtValue; /* the text value */ /** INT type value */ sqlite3_int64 IntValue; /* the integer value */ /** DOUBLE type value */ double DblValue; /* the double value */ } gaiaValue; /** Typedef for variant (multi-type) value structure */ typedef gaiaValue *gaiaValuePtr; /** Container for DBF field */ typedef struct gaiaDbfFieldStruct { /* a DBF field definition - shapefile attribute */ /** field name */ char *Name; /* field name */ /** DBF data type */ unsigned char Type; /* field type */ /** DBF buffer offset [where the field value starts] */ int Offset; /* buffer offset [this field begins at *buffer+offset* and extends for *length* bytes */ /** total DBF buffer field length (in bytes) */ unsigned char Length; /* field total length [in bytes] */ /** precision (decimal digits) */ unsigned char Decimals; /* decimal positions */ /** current variant [multi-type] value */ gaiaValuePtr Value; /* the current multitype value for this attribute */ /** pointer to next item [linked list] */ struct gaiaDbfFieldStruct *Next; /* pointer to next element in linked list */ } gaiaDbfField; /** Typedef for DBF field structure */ typedef gaiaDbfField *gaiaDbfFieldPtr; /** Container for a list of DBF fields */ typedef struct gaiaDbfListStruct { /* a linked list to contain the DBF fields definitions - shapefile attributes */ /** current RowID */ int RowId; /* the current RowId */ /** current Geometry */ gaiaGeomCollPtr Geometry; /* geometry for current entity */ /** pointer to first DBF field [linked list] */ gaiaDbfFieldPtr First; /* pointer to first element in linked list */ /** pointer to last DBF field [linked list] */ gaiaDbfFieldPtr Last; /* pointer to last element in linker list */ } gaiaDbfList; /** Typedef for a list of DBF fields \sa gaiaDbfList */ typedef gaiaDbfList *gaiaDbfListPtr; /** Container for DBF file handling */ typedef struct gaiaDbfStruct { /* DBF TYPE */ /** DBF endian arch */ int endian_arch; /** validity flag: 1 = ready to be processed */ int Valid; /* 1 = ready to process */ /** DBF file pathname */ char *Path; /* the DBF path */ /** FILE handle */ FILE *flDbf; /* the DBF file handle */ /** list of DBF fields */ gaiaDbfListPtr Dbf; /* the DBF attributes list */ /** I/O buffer */ unsigned char *BufDbf; /* the DBF I/O buffer */ /** header size (in bytes) */ int DbfHdsz; /* the DBF header length */ /** record length (in bytes) */ int DbfReclen; /* the DBF record length */ /** current file size */ int DbfSize; /* current DBF size */ /** current Record Number */ int DbfRecno; /* current DBF record number */ /** handle to ICONV converter object */ void *IconvObj; /* opaque reference to ICONV converter */ /** last error message (may be NULL) */ char *LastError; /* last error message */ } gaiaDbf; /** Typedef for DBF file handler structure \sa gaiaDbf */ typedef gaiaDbf *gaiaDbfPtr; /** Container for SHP file handling */ typedef struct gaiaShapefileStruct { /* SHAPEFILE TYPE */ /** SHP endian arch */ int endian_arch; /** validity flag: 1 = ready to be processed */ int Valid; /* 1 = ready to process */ /** read or write mode */ int ReadOnly; /* read or write mode */ /** SHP 'abstract' path (no suffixes) */ char *Path; /* the shapefile abstract path [no suffixes] */ /** FILE handle to SHX file */ FILE *flShx; /* the SHX file handle */ /** FILE handle to SHP file */ FILE *flShp; /* the SHP file handle */ /** FILE handle to DBF file */ FILE *flDbf; /* the DBF file handle */ /** the SHP shape code */ int Shape; /* the SHAPE code for the whole shapefile */ /** list of DBF fields */ gaiaDbfListPtr Dbf; /* the DBF attributes list */ /** DBF I/O buffer */ unsigned char *BufDbf; /* the DBF I/O buffer */ /** DBF header size (in bytes) */ int DbfHdsz; /* the DBF header length */ /** DBF record length (in bytes) */ int DbfReclen; /* the DBF record length */ /** DBF current file size (in bytes) */ int DbfSize; /* current DBF size */ /** DBF current Record Number */ int DbfRecno; /* current DBF record number */ /** SHP I/O buffer */ unsigned char *BufShp; /* the SHP I/O buffer */ /** SHP current buffer size (in bytes) */ int ShpBfsz; /* the SHP buffer current size */ /** SHP current file size */ int ShpSize; /* current SHP size */ /** SHX current file size */ int ShxSize; /* current SHX size */ /** Total Extent: min X */ double MinX; /* the MBR/BBOX for the whole shapefile */ /** Total Extent: min Y */ double MinY; /** Total Extent: max X */ double MaxX; /** Total Extent: max Y */ double MaxY; /** handle to ICONV converter object */ void *IconvObj; /* opaque reference to ICONV converter */ /** last error message (may be NULL) */ char *LastError; /* last error message */ /** SHP actual OGC Geometry type */ int EffectiveType; /* the effective Geometry-type, as determined by gaiaShpAnalyze() */ /** SHP actual dims: one of GAIA_XY, GAIA_XY_Z, GAIA_XY_M, GAIA_XY_ZM */ int EffectiveDims; /* the effective Dimensions [XY, XYZ, XYM, XYZM], as determined by gaiaShpAnalyze() */ } gaiaShapefile; /** Typedef for SHP file handler structure \sa gaiaShapefile */ typedef gaiaShapefile *gaiaShapefilePtr; /** Container for dynamically growing output buffer */ typedef struct gaiaOutBufferStruct { /* a struct handling a dynamically growing output buffer */ /** current buffer */ char *Buffer; /** current write offset */ int WriteOffset; /** current buffer size (in bytes) */ int BufferSize; /** validity flag */ int Error; } gaiaOutBuffer; /** Typedef for dynamically growing output buffer structure \sa gaiaOutBuffer */ typedef gaiaOutBuffer *gaiaOutBufferPtr; #ifndef OMIT_ICONV /* ICONV enabled: supporting text reader */ /** Virtual Text driver: MAX number of fields */ #define VRTTXT_FIELDS_MAX 65535 /** Virtual Text driver: MAX block size (in bytes) */ #define VRTTXT_BLOCK_MAX 65535 /** Virtual Text driver: TEXT value */ #define VRTTXT_TEXT 1 /** Virtual Text driver: INTEGER value */ #define VRTTXT_INTEGER 2 /** Virtual Text driver: DOUBLE value */ #define VRTTXT_DOUBLE 3 /** Virtual Text driver: NULL value */ #define VRTTXT_NULL 4 /** Container for Virtual Text record (line) */ struct vrttxt_line { /* a struct representing a full LINE (aka Record) */ /** current offset (parsing) */ off_t offset; /** line length (in bytes) */ int len; /** array of field offsets (where each field starts) */ int field_offsets[VRTTXT_FIELDS_MAX]; /** number of field into the record */ int num_fields; /** validity flag */ int error; }; /** Container for Virtual Text record (line) offsets */ struct vrttxt_row { /* a struct storing Row offsets */ /** Line Number */ int line_no; /** start offset */ off_t offset; /** record (line) length (in bytes) */ int len; /** number of fields into this record */ int num_fields; }; /** Container for Virtual Text block of records */ struct vrttxt_row_block { /* / for efficiency sake, individual Row offsets / are grouped in reasonably sized blocks */ /** array of records [lines] */ struct vrttxt_row rows[VRTTXT_BLOCK_MAX]; /** number of records into the array */ int num_rows; /** min Line Number */ int min_line_no; /** max Line Number */ int max_line_no; /** pointer to next item [linked list] */ struct vrttxt_row_block *next; }; /** Container for Virtual Text column (field) header */ struct vrttxt_column_header { /* a struct representing a Column (aka Field) header */ /** column name */ char *name; /** data type: one of GAIA_NULL_VALUE, GAIA_INT_VALUE, GAIA_DOUBLE_VALUE, GAIA_TEXT_VALUE */ int type; }; /** Container for Virtual Text file handling */ typedef struct vrttxt_reader { /* the main TXT-Reader struct */ /** array of columns (fields) */ struct vrttxt_column_header columns[VRTTXT_FIELDS_MAX]; /** FILE handle */ FILE *text_file; /** handle to ICONV converter object */ void *toUtf8; /* the UTF-8 ICONV converter */ /** field separator character */ char field_separator; /** text separator character (quote) */ char text_separator; /** decimal separator */ char decimal_separator; /** TRUE if the first line contains column names */ int first_line_titles; /** validity flag */ int error; /** pointer to first block of records [linked list] */ struct vrttxt_row_block *first; /** pointer to last block of records [linked list] */ struct vrttxt_row_block *last; /** array of pointers to individual records [lines] */ struct vrttxt_row **rows; /** number of records */ int num_rows; /** current Line Number */ int line_no; /** max number of columns (fields) */ int max_fields; /** current buffer size */ int current_buf_sz; /** current buffer offset [parsing] */ int current_buf_off; /** I/O buffer */ char *line_buffer; /** current field buffer */ char *field_buffer; /** array of field offsets [current record] */ int field_offsets[VRTTXT_FIELDS_MAX]; /** array of field lengths [current record] */ int field_lens[VRTTXT_FIELDS_MAX]; /** max field [current record] */ int max_current_field; /** current record [line] ready for parsing */ int current_line_ready; } gaiaTextReader; /** Typedef for Virtual Text file handling structure \sa gaiaTextReader */ typedef gaiaTextReader *gaiaTextReaderPtr; #endif /* end ICONV (text reader) */ /** Layer Extent infos */ typedef struct gaiaLayerExtentInfos { /** row count (aka feature count) */ int Count; /** Extent: min X */ double MinX; /* MBR - BBOX */ /** Extent: min Y */ double MinY; /* MBR - BBOX */ /** Extent: max X */ double MaxX; /* MBR - BBOX */ /** Extent: max Y */ double MaxY; /* MBR - BBOX */ } gaiaLayerExtent; /** Typedef for Layer Extent infos \sa gaiaLayerExtent */ typedef gaiaLayerExtent *gaiaLayerExtentPtr; /** Layer Auth infos */ typedef struct gaiaLayerAuthInfos { /** Read-Only layer: TRUE or FALSE */ int IsReadOnly; /** Hidden layer: TRUE or FALSE */ int IsHidden; } gaiaLayerAuth; /** Typedef for Layer Auth infos \sa gaiaLayerAuth */ typedef gaiaLayerAuth *gaiaLayerAuthPtr; /** Attribute/Field MaxSize/Length infos */ typedef struct gaiaAttributeFieldMaxSizeInfos { /** MaxSize / MaxLength */ int MaxSize; } gaiaAttributeFieldMaxSize; /** Typedef for Attribute/Field MaxSize/Length infos \sa gaiaAttributeFieldMaxSize */ typedef gaiaAttributeFieldMaxSize *gaiaAttributeFieldMaxSizePtr; /** Attribute/Field Integer range infos */ typedef struct gaiaAttributeFieldIntRangeInfos { /** Minimum value */ sqlite3_int64 MinValue; /** Maximum value */ sqlite3_int64 MaxValue; } gaiaAttributeFieldIntRange; /** Typedef for Attribute/Field Integer range infos \sa gaiaAttributeFieldIntRange */ typedef gaiaAttributeFieldIntRange *gaiaAttributeFieldIntRangePtr; /** Attribute/Field Double range infos */ typedef struct gaiaAttributeFieldDoubleRangeInfos { /** Minimum value */ double MinValue; /** Maximum value */ double MaxValue; } gaiaAttributeFieldDoubleRange; /** Typedef for Attribute/Field Double range infos \sa gaiaAttributeFieldDoubleRange */ typedef gaiaAttributeFieldDoubleRange *gaiaAttributeFieldDoubleRangePtr; /** LayerAttributeField infos */ typedef struct gaiaLayerAttributeFieldInfos { /** ordinal position */ int Ordinal; /** SQL name of the corresponding column */ char *AttributeFieldName; /** total count of NULL values */ int NullValuesCount; /** total count of INTEGER values */ int IntegerValuesCount; /** total count of DOUBLE values */ int DoubleValuesCount; /** total count of TEXT values */ int TextValuesCount; /** total count of BLOB values */ int BlobValuesCount; /** pointer to MaxSize/Length infos (may be NULL) */ gaiaAttributeFieldMaxSizePtr MaxSize; /** pointer to range of Integer values infos (may be NULL) */ gaiaAttributeFieldIntRangePtr IntRange; /** pointer to range of Double values infos (may be NULL) */ gaiaAttributeFieldDoubleRangePtr DoubleRange; /** pointer to next item (linked list) */ struct gaiaLayerAttributeFieldInfos *Next; } gaiaLayerAttributeField; /** Typedef for Layer AttributeField infos \sa gaiaLayerAttributeField */ typedef gaiaLayerAttributeField *gaiaLayerAttributeFieldPtr; /** Vector Layer item */ typedef struct gaiaVectorLayerItem { /** one of GAIA_VECTOR_UNKNOWN, GAIA_VECTOR_TABLE, GAIA_VECTOR_VIEW, GAIA_VECTOR_VIRTUAL */ int LayerType; /** SQL name of the corresponding table */ char *TableName; /** SQL name of the corresponding Geometry column */ char *GeometryName; /** SRID value */ int Srid; /** one of GAIA_VECTOR_UNKNOWN, GAIA_VECTOR_POINT, GAIA_VECTOR_LINESTRING, GAIA_VECTOR_POLYGON, GAIA_VECTOR_MULTIPOINT, GAIA_VECTOR_MULTILINESTRING, GAIA_VECTOR_MULTIPOLYGON, GAIA_VECTOR_GEOMETRYCOLLECTION, GAIA_VECTOR_GEOMETRY */ int GeometryType; /** one of GAIA_VECTOR_UNKNOWN, GAIA_XY, GAIA_XY_Z, GAIA_XY_M, GAIA_XY_ZM */ int Dimensions; /** one of GAIA_VECTOR_UNKNOWN, GAIA_SPATIAL_INDEX_NONE, GAIA_SPATIAL_INDEX_RTREE, GAIA_SPATIAL_INDEX_MBRCACHE */ int SpatialIndex; /** pointer to Extent infos (may be NULL) */ gaiaLayerExtentPtr ExtentInfos; /** pointer to Auth infos (may be NULL) */ gaiaLayerAuthPtr AuthInfos; /** pointer to first Field/Attribute (linked list) */ gaiaLayerAttributeFieldPtr First; /** pointer to last Field/Attribute (linked list) */ gaiaLayerAttributeFieldPtr Last; /** pointer to next item (linked list) */ struct gaiaVectorLayerItem *Next; } gaiaVectorLayer; /** Typedef for Vector Layer item \sa gaiaVectorLayer */ typedef gaiaVectorLayer *gaiaVectorLayerPtr; /** Container for Vector Layers List */ typedef struct gaiaVectorLayersListStr { /** pointer to first vector layer (linked list) */ gaiaVectorLayerPtr First; /** pointer to last vector layer (linked list) */ gaiaVectorLayerPtr Last; /** pointer to currently set vector layer */ gaiaVectorLayerPtr Current; } gaiaVectorLayersList; /** Typedef for Vector Layers List \sa gaiaVectorLayersList */ typedef gaiaVectorLayersList *gaiaVectorLayersListPtr; #ifdef __cplusplus } #endif #endif /* _GG_STRUCTS_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/Makefile.am��������������������������������������������������������0000664�0001750�0001750�00000001055�12544707704�015701� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ noinst_HEADERS = spatialite_private.h nobase_include_HEADERS = spatialite.h \ spatialite/gaiaexif.h \ spatialite/gaiaaux.h \ spatialite/gaiamatrix.h \ spatialite/gaiageo.h \ spatialite/gg_const.h \ spatialite/gg_structs.h \ spatialite/gg_core.h \ spatialite/gg_mbr.h \ spatialite/gg_formats.h \ spatialite/gg_dynamic.h \ spatialite/gg_advanced.h \ spatialite/gg_xml.h \ spatialite/gg_wfs.h \ spatialite/gg_dxf.h \ spatialite/spatialite.h \ spatialite/sqlite.h \ spatialite/debug.h \ spatialite/geopackage.h \ spatialite/control_points.h �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/headers/spatialite_private.h�����������������������������������������������0000664�0001750�0001750�00000050072�12544707704�017712� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* spatialite.h -- Gaia spatial support for SQLite version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <time.h> #include <stdarg.h> #include <zlib.h> /** \file spatialite_private.h SpatiaLite private header file */ #ifndef DOXYGEN_SHOULD_SKIP_THIS #ifdef _WIN32 #ifdef DLL_EXPORT #define SPATIALITE_PRIVATE #else #define SPATIALITE_PRIVATE #endif #else #define SPATIALITE_PRIVATE __attribute__ ((visibility("hidden"))) #endif #endif #ifndef _SPATIALITE_PRIVATE_H #ifndef DOXYGEN_SHOULD_SKIP_THIS #define _SPATIALITE_PRIVATE_H #endif #ifdef __cplusplus extern "C" { #endif /** spatial_ref_sys_init2: will create the "spatial_ref_sys" table and will populate this table with any supported EPSG SRID definition */ #define GAIA_EPSG_ANY -9999 /** spatial_ref_sys_init2: will create the "spatial_ref_sys" table and will populate this table only inserting WGS84-related definitions */ #define GAIA_EPSG_WGS84_ONLY -9998 /** spatial_ref_sys_init2: will create the "spatial_ref_sys" table but will avoid to insert any row at all */ #define GAIA_EPSG_NONE -9997 #define SPATIALITE_STATISTICS_GENUINE 1 #define SPATIALITE_STATISTICS_VIEWS 2 #define SPATIALITE_STATISTICS_VIRTS 3 #define SPATIALITE_STATISTICS_LEGACY 4 #define SPATIALITE_CACHE_MAGIC1 0xf8 #define SPATIALITE_CACHE_MAGIC2 0x8f struct vxpath_ns { /* a Namespace definition */ char *Prefix; char *Href; struct vxpath_ns *Next; }; struct vxpath_namespaces { /* Namespace container */ struct vxpath_ns *First; struct vxpath_ns *Last; }; struct splite_geos_cache_item { unsigned char gaiaBlob[64]; int gaiaBlobSize; uLong crc32; void *geosGeom; void *preparedGeosGeom; }; struct splite_xmlSchema_cache_item { time_t timestamp; char *schemaURI; void *schemaDoc; void *parserCtxt; void *schema; }; #define MAX_XMLSCHEMA_CACHE 16 struct splite_internal_cache { unsigned char magic1; int gpkg_mode; int gpkg_amphibious_mode; int decimal_precision; void *GEOS_handle; void *PROJ_handle; void *xmlParsingErrors; void *xmlSchemaValidationErrors; void *xmlXPathErrors; struct splite_geos_cache_item cacheItem1; struct splite_geos_cache_item cacheItem2; struct splite_xmlSchema_cache_item xmlSchemaCache[MAX_XMLSCHEMA_CACHE]; int pool_index; void (*geos_warning) (const char *fmt, ...); void (*geos_error) (const char *fmt, ...); unsigned char magic2; }; struct epsg_defs { int srid; char *auth_name; int auth_srid; char *ref_sys_name; char *proj4text; char *srs_wkt; int is_geographic; int flipped_axes; char *spheroid; char *prime_meridian; char *datum; char *projection; char *unit; char *axis_1; char *orientation_1; char *axis_2; char *orientation_2; struct epsg_defs *next; }; struct gaia_control_points { /* a struct to implement ATM_ControlPoints - aggregate function */ int count; int allocation_incr; int allocated_items; int has3d; int tps; int order; /* point set A */ double *x0; double *y0; double *z0; /* point set B */ double *x1; double *y1; double *z1; /* affine transform coefficients */ double a; double b; double c; double d; double e; double f; double g; double h; double i; double xoff; double yoff; double zoff; int affine_valid; }; SPATIALITE_PRIVATE void free_internal_cache (struct splite_internal_cache *cache); SPATIALITE_PRIVATE struct epsg_defs *add_epsg_def (int filter_srid, struct epsg_defs **first, struct epsg_defs **last, int srid, const char *auth_name, int auth_srid, const char *ref_sys_name); SPATIALITE_PRIVATE struct epsg_defs *add_epsg_def_ex (int filter_srid, struct epsg_defs **first, struct epsg_defs **last, int srid, const char *auth_name, int auth_srid, const char *ref_sys_name, int is_geographic, int flipped_axes, const char *spheroid, const char *prime_meridian, const char *datum, const char *projection, const char *unit, const char *axis_1, const char *orientation_1, const char *axis_2, const char *orientation_2); SPATIALITE_PRIVATE void add_proj4text (struct epsg_defs *p, int count, const char *text); SPATIALITE_PRIVATE void add_srs_wkt (struct epsg_defs *p, int count, const char *text); SPATIALITE_PRIVATE void initialize_epsg (int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void free_epsg (struct epsg_defs *first); SPATIALITE_PRIVATE int exists_spatial_ref_sys (void *handle); SPATIALITE_PRIVATE int checkSpatialMetaData (const void *sqlite); SPATIALITE_PRIVATE int delaunay_triangle_check (void *pg); SPATIALITE_PRIVATE void *voronoj_build (int pgs, void *first, double extra_frame_size); SPATIALITE_PRIVATE void *voronoj_build_r (const void *p_cache, int pgs, void *first, double extra_frame_size); SPATIALITE_PRIVATE void *voronoj_export (void *voronoj, void *result, int only_edges); SPATIALITE_PRIVATE void *voronoj_export_r (const void *p_cache, void *voronoj, void *result, int only_edges); SPATIALITE_PRIVATE void voronoj_free (void *voronoj); SPATIALITE_PRIVATE void *concave_hull_build (void *first, int dimension_model, double factor, int allow_holes); SPATIALITE_PRIVATE void *concave_hull_build_r (const void *p_cache, void *first, int dimension_model, double factor, int allow_holes); SPATIALITE_PRIVATE int createAdvancedMetaData (void *sqlite); SPATIALITE_PRIVATE void updateSpatiaLiteHistory (void *sqlite, const char *table, const char *geom, const char *operation); SPATIALITE_PRIVATE int createGeometryColumns (void *p_sqlite); SPATIALITE_PRIVATE int check_layer_statistics (void *p_sqlite); SPATIALITE_PRIVATE int check_views_layer_statistics (void *p_sqlite); SPATIALITE_PRIVATE int check_virts_layer_statistics (void *p_sqlite); SPATIALITE_PRIVATE void updateGeometryTriggers (void *p_sqlite, const char *table, const char *column); SPATIALITE_PRIVATE int upgradeGeometryTriggers (void *p_sqlite); SPATIALITE_PRIVATE int getRealSQLnames (void *p_sqlite, const char *table, const char *column, char **real_table, char **real_column); /* DEPRECATED - always use buildSpatialIndexEx */ SPATIALITE_PRIVATE void buildSpatialIndex (void *p_sqlite, const unsigned char *table, const char *column); SPATIALITE_PRIVATE int buildSpatialIndexEx (void *p_sqlite, const unsigned char *table, const char *column); SPATIALITE_PRIVATE int validateRowid (void *p_sqlite, const char *table); SPATIALITE_PRIVATE int doComputeFieldInfos (void *p_sqlite, const char *table, const char *column, int stat_type, void *p_lyr); SPATIALITE_PRIVATE void getProjParams (void *p_sqlite, int srid, char **params); SPATIALITE_PRIVATE void getProjParamsEx (void *p_sqlite, int srid, char **params, int gpkg_amphibious_mode); SPATIALITE_PRIVATE int getEllipsoidParams (void *p_sqlite, int srid, double *a, double *b, double *rf); SPATIALITE_PRIVATE void addVectorLayer (void *list, const char *layer_type, const char *table_name, const char *geometry_column, int geometry_type, int srid, int spatial_index); SPATIALITE_PRIVATE void addVectorLayerExtent (void *list, const char *table_name, const char *geometry_column, int count, double min_x, double min_y, double max_x, double max_y); SPATIALITE_PRIVATE void addLayerAttributeField (void *list, const char *table_name, const char *geometry_column, int ordinal, const char *column_name, int null_values, int integer_values, int double_values, int text_values, int blob_values, int null_max_size, int max_size, int null_int_range, void *integer_min, void *integer_max, int null_double_range, double double_min, double double_max); SPATIALITE_PRIVATE int createStylingTables (void *p_sqlite, int relaxed); SPATIALITE_PRIVATE int createStylingTables_ex (void *p_sqlite, int relaxed, int transaction); SPATIALITE_PRIVATE int register_external_graphic (void *p_sqlite, const char *xlink_href, const unsigned char *p_blob, int n_bytes, const char *title, const char *abstract, const char *file_name); SPATIALITE_PRIVATE int unregister_external_graphic (void *p_sqlite, const char *xlink_href); SPATIALITE_PRIVATE int register_vector_style (void *p_sqlite, const unsigned char *p_blob, int n_bytes); SPATIALITE_PRIVATE int unregister_vector_style (void *p_sqlite, int style_id, const char *style_name, int remove_all); SPATIALITE_PRIVATE int reload_vector_style (void *p_sqlite, int style_id, const char *style_name, const unsigned char *p_blob, int n_bytes); /* DEPRECATED - always use register_vector_styled_layer_ex */ SPATIALITE_PRIVATE int register_vector_styled_layer (void *p_sqlite, const char *f_table_name, const char *f_geometry_column, int style_id, const unsigned char *p_blob, int n_bytes); SPATIALITE_PRIVATE int register_vector_styled_layer_ex (void *p_sqlite, const char *coverage_name, int style_id, const char *style_name); SPATIALITE_PRIVATE int unregister_vector_styled_layer (void *p_sqlite, const char *coverage_name, int style_id, const char *style_name); SPATIALITE_PRIVATE int register_raster_style (void *p_sqlite, const unsigned char *p_blob, int n_bytes); SPATIALITE_PRIVATE int unregister_raster_style (void *p_sqlite, int style_id, const char *style_name, int remove_all); SPATIALITE_PRIVATE int reload_raster_style (void *p_sqlite, int style_id, const char *style_name, const unsigned char *p_blob, int n_bytes); /* DEPRECATED - always use register_raster_styled_layer_ex */ SPATIALITE_PRIVATE int register_raster_styled_layer (void *p_sqlite, const char *coverage_name, int style_id, const unsigned char *p_blob, int n_bytes); SPATIALITE_PRIVATE int register_raster_styled_layer_ex (void *p_sqlite, const char *coverage_name, int style_id, const char *style_name); SPATIALITE_PRIVATE int unregister_raster_styled_layer (void *p_sqlite, const char *coverage_name, int style_id, const char *style_name); SPATIALITE_PRIVATE int register_raster_coverage_srid (void *p_sqlite, const char *coverage_name, int srid); SPATIALITE_PRIVATE int unregister_raster_coverage_srid (void *p_sqlite, const char *coverage_name, int srid); SPATIALITE_PRIVATE int register_raster_coverage_keyword (void *p_sqlite, const char *coverage_name, const char *keyword); SPATIALITE_PRIVATE int unregister_raster_coverage_keyword (void *p_sqlite, const char *coverage_name, const char *keyword); SPATIALITE_PRIVATE int update_raster_coverage_extent (void *p_sqlite, const void *cache, const char *coverage_name, int transaction); /* DEPRECATED - always use register_styled_group_ex */ SPATIALITE_PRIVATE int register_styled_group (void *p_sqlite, const char *group_name, const char *f_table_name, const char *f_geometry_column, const char *coverage_name, int paint_order); SPATIALITE_PRIVATE int register_styled_group_ex (void *p_sqlite, const char *group_name, const char *vector_coverage_name, const char *raster_coverage_name); SPATIALITE_PRIVATE int set_styled_group_layer_paint_order (void *p_sqlite, int item_id, const char *group_name, const char *vector_coverage_name, const char *raster_coverage_name, int paint_order); SPATIALITE_PRIVATE int unregister_styled_group (void *p_sqlite, const char *group_name); SPATIALITE_PRIVATE int unregister_styled_group_layer (void *p_sqlite, int item_id, const char *group_name, const char *vector_coverage_name, const char *raster_coverage_name); SPATIALITE_PRIVATE int styled_group_set_infos (void *p_sqlite, const char *group_name, const char *title, const char *abstract); /* DEPRECATED - always use register_group_style_ex */ SPATIALITE_PRIVATE int register_group_style (void *p_sqlite, const char *group_name, int style_id, const unsigned char *p_blob, int n_bytes); SPATIALITE_PRIVATE int register_group_style_ex (void *p_sqlite, const unsigned char *p_blob, int n_bytes); SPATIALITE_PRIVATE int unregister_group_style (void *p_sqlite, int style_id, const char *style_name, int remove_all); SPATIALITE_PRIVATE int reload_group_style (void *p_sqlite, int style_id, const char *style_name, const unsigned char *p_blob, int n_bytes); SPATIALITE_PRIVATE int register_styled_group_style (void *p_sqlite, const char *group_name, int style_id, const char *style_name); SPATIALITE_PRIVATE int unregister_styled_group_style (void *p_sqlite, const char *group_name, int style_id, const char *style_name); SPATIALITE_PRIVATE int createIsoMetadataTables (void *p_sqlite, int relaxed); SPATIALITE_PRIVATE int get_iso_metadata_id (void *p_sqlite, const char *fileIdentifier, void *p_id); SPATIALITE_PRIVATE int register_iso_metadata (void *p_sqlite, const char *scope, const unsigned char *p_blob, int n_bytes, void *p_id, const char *fileIdentifier); SPATIALITE_PRIVATE int createRasterCoveragesTable (void *p_sqlite); SPATIALITE_PRIVATE int checkPopulatedCoverage (void *p_sqlite, const char *coverage_name); SPATIALITE_PRIVATE int createVectorCoveragesTable (void *p_sqlite); SPATIALITE_PRIVATE int register_vector_coverage (void *p_sqlite, const char *coverage_name, const char *f_table_name, const char *f_geometry_column, const char *title, const char *abstract); SPATIALITE_PRIVATE int unregister_vector_coverage (void *p_sqlite, const char *coverage_name); SPATIALITE_PRIVATE int set_vector_coverage_infos (void *p_sqlite, const char *coverage_name, const char *title, const char *abstract); SPATIALITE_PRIVATE int register_vector_coverage_srid (void *p_sqlite, const char *coverage_name, int srid); SPATIALITE_PRIVATE int unregister_vector_coverage_srid (void *p_sqlite, const char *coverage_name, int srid); SPATIALITE_PRIVATE int register_vector_coverage_keyword (void *p_sqlite, const char *coverage_name, const char *keyword); SPATIALITE_PRIVATE int unregister_vector_coverage_keyword (void *p_sqlite, const char *coverage_name, const char *keyword); SPATIALITE_PRIVATE int update_vector_coverage_extent (void *p_sqlite, const void *cache, const char *coverage_name, int transaction); SPATIALITE_PRIVATE const char *splite_lwgeom_version (void); SPATIALITE_PRIVATE void splite_lwgeom_init (void); SPATIALITE_PRIVATE void splite_free_geos_cache_item (struct splite_geos_cache_item *p); SPATIALITE_PRIVATE void splite_free_geos_cache_item_r (const void *p_cache, struct splite_geos_cache_item *p); SPATIALITE_PRIVATE void splite_free_xml_schema_cache_item (struct splite_xmlSchema_cache_item *p); SPATIALITE_PRIVATE void vxpath_free_namespaces (struct vxpath_namespaces *ns_list); SPATIALITE_PRIVATE struct vxpath_namespaces *vxpath_get_namespaces (void *p_xml_doc); SPATIALITE_PRIVATE int vxpath_eval_expr (const void *p_cache, void *xml_doc, const char *xpath_expr, void *p_xpathCtx, void *p_xpathObj); SPATIALITE_PRIVATE void *register_spatialite_sql_functions (void *db, const void *cache); SPATIALITE_PRIVATE void init_spatialite_virtualtables (void *p_db, const void *p_cache); SPATIALITE_PRIVATE void spatialite_splash_screen (int verbose); SPATIALITE_PRIVATE void geos_error (const char *fmt, ...); SPATIALITE_PRIVATE void geos_warning (const char *fmt, ...); SPATIALITE_PRIVATE void splite_cache_semaphore_lock (void); SPATIALITE_PRIVATE void splite_cache_semaphore_unlock (void); SPATIALITE_PRIVATE void splite_lwgeom_semaphore_lock (void); SPATIALITE_PRIVATE void splite_lwgeom_semaphore_unlock (void); SPATIALITE_PRIVATE const void *gaiaAuxClonerCreate (const void *sqlite, const char *db_prefix, const char *in_table, const char *out_table); SPATIALITE_PRIVATE void gaiaAuxClonerDestroy (const void *cloner); SPATIALITE_PRIVATE void gaiaAuxClonerAddOption (const void *cloner, const char *option); SPATIALITE_PRIVATE int gaiaAuxClonerCheckValidTarget (const void *cloner); SPATIALITE_PRIVATE int gaiaAuxClonerExecute (const void *cloner); SPATIALITE_PRIVATE int gaia_matrix_to_arrays (const unsigned char *blob, int blob_sz, double *E, double *N, double *Z); #ifdef __cplusplus } #endif #endif /* _SPATIALITE_PRIVATE_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/�������������������������������������������������������������������0000775�0001750�0001750�00000000000�12573314326�014000� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_08.c��������������������������������������������������0000664�0001750�0001750�00000614644�12544707704�017056� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_08 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 2830, "epsg", 2830, "NAD83(HARN) / New York West", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=350000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New York West\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-78.58333333333333],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",0.9999375],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",350000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2830\"]]"); p = add_epsg_def_ex (filter, first, last, 2831, "epsg", 2831, "NAD83(HARN) / New York Long Island", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New York Long Island\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 9, "rd_parallel_1\",41.03333333333333],PARAMETER[\"standard_"); add_srs_wkt (p, 10, "parallel_2\",40.66666666666666],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 11, "origin\",40.16666666666666],PARAMETER[\"central_meridian"); add_srs_wkt (p, 12, "\",-74],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 15, "\"EPSG\",\"2831\"]]"); p = add_epsg_def_ex (filter, first, last, 2832, "epsg", 2832, "NAD83(HARN) / North Dakota North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333"); add_proj4text (p, 1, "333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / North Dakota North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",48.73333333333333],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",47.43333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 11, "igin\",47],PARAMETER[\"central_meridian\",-100.5],PARAME"); add_srs_wkt (p, 12, "TER[\"false_easting\",600000],PARAMETER[\"false_northing"); add_srs_wkt (p, 13, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"283"); add_srs_wkt (p, 15, "2\"]]"); p = add_epsg_def_ex (filter, first, last, 2833, "epsg", 2833, "NAD83(HARN) / North Dakota South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333"); add_proj4text (p, 1, "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / North Dakota South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",47.48333333333333],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",46.18333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 11, "igin\",45.66666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 12, ",-100.5],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 15, "\"EPSG\",\"2833\"]]"); p = add_epsg_def_ex (filter, first, last, 2834, "epsg", 2834, "NAD83(HARN) / Ohio North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39"); add_proj4text (p, 1, ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Ohio North\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",41.7],PARAMETER[\"standard_parallel_2\",40.43333333"); add_srs_wkt (p, 10, "333333],PARAMETER[\"latitude_of_origin\",39.666666666666"); add_srs_wkt (p, 11, "66],PARAMETER[\"central_meridian\",-82.5],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_easting\",600000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 13, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2834\"]]"); p = add_epsg_def_ex (filter, first, last, 2835, "epsg", 2835, "NAD83(HARN) / Ohio South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333"); add_proj4text (p, 1, "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Ohio South\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",40.03333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",38.73333333333333],PARAMETER[\"latitude_of_origin\",38]"); add_srs_wkt (p, 11, ",PARAMETER[\"central_meridian\",-82.5],PARAMETER[\"false"); add_srs_wkt (p, 12, "_easting\",600000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 13, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 14, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2835\"]]"); p = add_epsg_def_ex (filter, first, last, 2836, "epsg", 2836, "NAD83(HARN) / Oklahoma North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666"); add_proj4text (p, 1, "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oklahoma North\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_1\",36.76666666666667],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",35.56666666666667],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",35],PARAMETER[\"central_meridian\",-98],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_easting\",600000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 13, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2836\"]]"); p = add_epsg_def_ex (filter, first, last, 2837, "epsg", 2837, "NAD83(HARN) / Oklahoma South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333"); add_proj4text (p, 1, "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oklahoma South\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_1\",35.23333333333333],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",33.93333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",33.33333333333334],PARAMETER[\"central_meridian\",-98],"); add_srs_wkt (p, 12, "PARAMETER[\"false_easting\",600000],PARAMETER[\"false_no"); add_srs_wkt (p, 13, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"2837\"]]"); p = add_epsg_def_ex (filter, first, last, 2838, "epsg", 2838, "NAD83(HARN) / Oregon North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oregon North\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",46],PARAMETER[\"standard_parallel_2\",44.3333333"); add_srs_wkt (p, 10, "3333334],PARAMETER[\"latitude_of_origin\",43.66666666666"); add_srs_wkt (p, 11, "666],PARAMETER[\"central_meridian\",-120.5],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",2500000],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 13, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 14, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2838\"]]"); p = add_epsg_def_ex (filter, first, last, 2839, "epsg", 2839, "NAD83(HARN) / Oregon South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oregon South\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",44],PARAMETER[\"standard_parallel_2\",42.3333333"); add_srs_wkt (p, 10, "3333334],PARAMETER[\"latitude_of_origin\",41.66666666666"); add_srs_wkt (p, 11, "666],PARAMETER[\"central_meridian\",-120.5],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",1500000],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 13, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 14, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2839\"]]"); p = add_epsg_def_ex (filter, first, last, 2840, "epsg", 2840, "NAD83(HARN) / Rhode Island", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); add_proj4text (p, 1, "9999375 +x_0=100000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0"); add_proj4text (p, 2, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Rhode Island\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 9, "1.08333333333334],PARAMETER[\"central_meridian\",-71.5],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.99999375],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",100000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 12, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2840\"]]"); p = add_epsg_def_ex (filter, first, last, 2841, "epsg", 2841, "NAD83(HARN) / South Dakota North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666"); add_proj4text (p, 1, "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 3, "s"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / South Dakota North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",45.68333333333333],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",44.41666666666666],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 11, "igin\",43.83333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 12, ",-100],PARAMETER[\"false_easting\",600000],PARAMETER[\"f"); add_srs_wkt (p, 13, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"2841\"]]"); p = add_epsg_def_ex (filter, first, last, 2842, "epsg", 2842, "NAD83(HARN) / South Dakota South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); add_proj4text (p, 1, ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); add_proj4text (p, 2, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 3, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / South Dakota South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",44.4],PARAMETER[\"standard_parallel_2\",42"); add_srs_wkt (p, 10, ".83333333333334],PARAMETER[\"latitude_of_origin\",42.333"); add_srs_wkt (p, 11, "33333333334],PARAMETER[\"central_meridian\",-100.3333333"); add_srs_wkt (p, 12, "333333],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 15, "\"EPSG\",\"2842\"]]"); p = add_epsg_def_ex (filter, first, last, 2843, "epsg", 2843, "NAD83(HARN) / Tennessee", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3"); add_proj4text (p, 1, "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Tennessee\",GEOGCS[\"NAD83(HARN)\""); add_srs_wkt (p, 1, ",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 8, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 9, "\",36.41666666666666],PARAMETER[\"standard_parallel_2\","); add_srs_wkt (p, 10, "35.25],PARAMETER[\"latitude_of_origin\",34.3333333333333"); add_srs_wkt (p, 11, "4],PARAMETER[\"central_meridian\",-86],PARAMETER[\"false"); add_srs_wkt (p, 12, "_easting\",600000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 13, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 14, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2843\"]]"); p = add_epsg_def_ex (filter, first, last, 2844, "epsg", 2844, "NAD83(HARN) / Texas North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3"); add_proj4text (p, 1, "4 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas North\",GEOGCS[\"NAD83(HARN"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"La"); add_srs_wkt (p, 8, "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, "el_1\",36.18333333333333],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 10, "2\",34.65],PARAMETER[\"latitude_of_origin\",34],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-101.5],PARAMETER[\"false_easting"); add_srs_wkt (p, 12, "\",200000],PARAMETER[\"false_northing\",1000000],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2844\"]]"); p = add_epsg_def_ex (filter, first, last, 2845, "epsg", 2845, "NAD83(HARN) / Texas North Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333"); add_proj4text (p, 1, "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y"); add_proj4text (p, 2, "_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas North Central\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",33.96666666666667],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",32.13333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 11, "igin\",31.66666666666667],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 12, ",-98.5],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",2000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 15, "ORITY[\"EPSG\",\"2845\"]]"); p = add_epsg_def_ex (filter, first, last, 2846, "epsg", 2846, "NAD83(HARN) / Texas Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666"); add_proj4text (p, 1, "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); add_proj4text (p, 2, "x_0=700000 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 3, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas Central\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",31.88333333333333],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 10, "_2\",30.11666666666667],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",29.66666666666667],PARAMETER[\"central_meridian\",-100."); add_srs_wkt (p, 12, "3333333333333],PARAMETER[\"false_easting\",700000],PARAM"); add_srs_wkt (p, 13, "ETER[\"false_northing\",3000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 15, "H],AUTHORITY[\"EPSG\",\"2846\"]]"); p = add_epsg_def_ex (filter, first, last, 2847, "epsg", 2847, "NAD83(HARN) / Texas South Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333"); add_proj4text (p, 1, "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0"); add_proj4text (p, 2, "=4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas South Central\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",30.28333333333333],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",28.38333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 11, "igin\",27.83333333333333],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 12, ",-99],PARAMETER[\"false_easting\",600000],PARAMETER[\"fa"); add_srs_wkt (p, 13, "lse_northing\",4000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 15, "ITY[\"EPSG\",\"2847\"]]"); p = add_epsg_def_ex (filter, first, last, 2848, "epsg", 2848, "NAD83(HARN) / Texas South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y"); add_proj4text (p, 2, "_0=5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas South\",GEOGCS[\"NAD83(HARN"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"La"); add_srs_wkt (p, 8, "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, "el_1\",27.83333333333333],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 10, "2\",26.16666666666667],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 11, "25.66666666666667],PARAMETER[\"central_meridian\",-98.5]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_easting\",300000],PARAMETER[\"false_n"); add_srs_wkt (p, 13, "orthing\",5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"2848\"]]"); p = add_epsg_def_ex (filter, first, last, 2849, "epsg", 2849, "NAD83(HARN) / Utah North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +"); add_proj4text (p, 2, "y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Utah North\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",41.78333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",40.71666666666667],PARAMETER[\"latitude_of_origin\",40."); add_srs_wkt (p, 11, "33333333333334],PARAMETER[\"central_meridian\",-111.5],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 13, "thing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"2849\"]]"); p = add_epsg_def_ex (filter, first, last, 2850, "epsg", 2850, "NAD83(HARN) / Utah Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Utah Central\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",40.65],PARAMETER[\"standard_parallel_2\",39.0166"); add_srs_wkt (p, 10, "6666666667],PARAMETER[\"latitude_of_origin\",38.33333333"); add_srs_wkt (p, 11, "333334],PARAMETER[\"central_meridian\",-111.5],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "2000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 14, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "2850\"]]"); p = add_epsg_def_ex (filter, first, last, 2851, "epsg", 2851, "NAD83(HARN) / Utah South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Utah South\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",38.35],PARAMETER[\"standard_parallel_2\",37.2166666"); add_srs_wkt (p, 10, "6666667],PARAMETER[\"latitude_of_origin\",36.66666666666"); add_srs_wkt (p, 11, "666],PARAMETER[\"central_meridian\",-111.5],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",500000],PARAMETER[\"false_northing\",300"); add_srs_wkt (p, 13, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"285"); add_srs_wkt (p, 15, "1\"]]"); p = add_epsg_def_ex (filter, first, last, 2852, "epsg", 2852, "NAD83(HARN) / Vermont", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); add_proj4text (p, 1, "=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Vermont\",GEOGCS[\"NAD83(HARN)\","); add_srs_wkt (p, 1, "DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"615"); add_srs_wkt (p, 4, "2\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",42.5],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-72.5],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.999964286],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"2852\"]]"); p = add_epsg_def_ex (filter, first, last, 2853, "epsg", 2853, "NAD83(HARN) / Virginia North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37"); add_proj4text (p, 1, ".66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Virginia North\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_1\",39.2],PARAMETER[\"standard_parallel_2\",38.0333"); add_srs_wkt (p, 10, "3333333333],PARAMETER[\"latitude_of_origin\",37.66666666"); add_srs_wkt (p, 11, "666666],PARAMETER[\"central_meridian\",-78.5],PARAMETER["); add_srs_wkt (p, 12, "\"false_easting\",3500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "2000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 14, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "2853\"]]"); p = add_epsg_def_ex (filter, first, last, 2854, "epsg", 2854, "NAD83(HARN) / Virginia South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666"); add_proj4text (p, 1, "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +"); add_proj4text (p, 2, "y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Virginia South\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_1\",37.96666666666667],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",36.76666666666667],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",36.33333333333334],PARAMETER[\"central_meridian\",-78.5"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",3500000],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"2854\"]]"); p = add_epsg_def_ex (filter, first, last, 2855, "epsg", 2855, "NAD83(HARN) / Washington North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47"); add_proj4text (p, 1, " +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Washington North\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",48.73333333333333],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",47.5],PARAMETER[\"latitude_of_origin\",47],PARAM"); add_srs_wkt (p, 11, "ETER[\"central_meridian\",-120.8333333333333],PARAMETER["); add_srs_wkt (p, 12, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 13, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2855\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 2856, "epsg", 2856, "NAD83(HARN) / Washington South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333"); add_proj4text (p, 1, "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Washington South\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",47.33333333333334],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",45.83333333333334],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",45.33333333333334],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 12, "20.5],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 13, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"2856\"]]"); p = add_epsg_def_ex (filter, first, last, 2857, "epsg", 2857, "NAD83(HARN) / West Virginia North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / West Virginia North\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",40.25],PARAMETER[\"standard_parallel_2\",3"); add_srs_wkt (p, 10, "9],PARAMETER[\"latitude_of_origin\",38.5],PARAMETER[\"ce"); add_srs_wkt (p, 11, "ntral_meridian\",-79.5],PARAMETER[\"false_easting\",6000"); add_srs_wkt (p, 12, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 14, "ORTH],AUTHORITY[\"EPSG\",\"2857\"]]"); p = add_epsg_def_ex (filter, first, last, 2858, "epsg", 2858, "NAD83(HARN) / West Virginia South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / West Virginia South\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",38.88333333333333],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",37.48333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 11, "igin\",37],PARAMETER[\"central_meridian\",-81],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",600000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2858\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 2859, "epsg", 2859, "NAD83(HARN) / Wisconsin North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666"); add_proj4text (p, 1, "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wisconsin North\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",46.76666666666667],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",45.56666666666667],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",45.16666666666666],PARAMETER[\"central_meridian\",-9"); add_srs_wkt (p, 12, "0],PARAMETER[\"false_easting\",600000],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 14, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 15, "G\",\"2859\"]]"); p = add_epsg_def_ex (filter, first, last, 2860, "epsg", 2860, "NAD83(HARN) / Wisconsin Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); add_proj4text (p, 1, "334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wisconsin Central\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",45.5],PARAMETER[\"standard_parallel_2\",44.25"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",43.83333333333334],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-90],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",600000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 13, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2860\"]]"); p = add_epsg_def_ex (filter, first, last, 2861, "epsg", 2861, "NAD83(HARN) / Wisconsin South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333"); add_proj4text (p, 1, "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wisconsin South\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",44.06666666666667],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",42.73333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",42],PARAMETER[\"central_meridian\",-90],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",600000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 13, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2861\"]]"); p = add_epsg_def_ex (filter, first, last, 2862, "epsg", 2862, "NAD83(HARN) / Wyoming East", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wyoming East\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 9, "0.5],PARAMETER[\"central_meridian\",-105.1666666666667],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999375],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",200000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2862\"]]"); p = add_epsg_def_ex (filter, first, last, 2863, "epsg", 2863, "NAD83(HARN) / Wyoming East Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 2, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wyoming East Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",40.5],PARAMETER[\"central_meridian\",-107.3333333"); add_srs_wkt (p, 10, "333333],PARAMETER[\"scale_factor\",0.9999375],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",400000],PARAMETER[\"false_northing\",1"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"28"); add_srs_wkt (p, 14, "63\"]]"); p = add_epsg_def_ex (filter, first, last, 2864, "epsg", 2864, "NAD83(HARN) / Wyoming West Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0"); add_proj4text (p, 1, "=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wyoming West Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",40.5],PARAMETER[\"central_meridian\",-108.75],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9999375],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",600000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2864\"]]"); p = add_epsg_def_ex (filter, first, last, 2865, "epsg", 2865, "NAD83(HARN) / Wyoming West", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 2, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wyoming West\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 9, "0.5],PARAMETER[\"central_meridian\",-110.0833333333333],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999375],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",800000],PARAMETER[\"false_northing\",100000],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2865\"]]"); p = add_epsg_def_ex (filter, first, last, 2866, "epsg", 2866, "NAD83(HARN) / Puerto Rico and Virgin Is.", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333"); add_proj4text (p, 1, "333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +"); add_proj4text (p, 2, "x_0=200000 +y_0=200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 3, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Puerto Rico and Virgin Is.\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference"); add_srs_wkt (p, 2, "_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",18.43333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 10, "ndard_parallel_2\",18.03333333333333],PARAMETER[\"latitu"); add_srs_wkt (p, 11, "de_of_origin\",17.83333333333333],PARAMETER[\"central_me"); add_srs_wkt (p, 12, "ridian\",-66.43333333333334],PARAMETER[\"false_easting\""); add_srs_wkt (p, 13, ",200000],PARAMETER[\"false_northing\",200000],UNIT[\"met"); add_srs_wkt (p, 14, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 15, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2866\"]]"); p = add_epsg_def_ex (filter, first, last, 2867, "epsg", 2867, "NAD83(HARN) / Arizona East (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arizona East (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",31],PARAMETER[\"central_meridian\",-110.1666666666667],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",700000],PARAMETER[\"false_northing\",0],UNIT[\"fo"); add_srs_wkt (p, 12, "ot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2867\"]]"); p = add_epsg_def_ex (filter, first, last, 2868, "epsg", 2868, "NAD83(HARN) / Arizona Central (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arizona Central (ft)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",31],PARAMETER[\"central_meridian\",-111.916666666"); add_srs_wkt (p, 10, "6667],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",700000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, "T[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X"); add_srs_wkt (p, 13, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2868\"]]"); p = add_epsg_def_ex (filter, first, last, 2869, "epsg", 2869, "NAD83(HARN) / Arizona West (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, "=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arizona West (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",31],PARAMETER[\"central_meridian\",-113.75],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.999933333],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "700000],PARAMETER[\"false_northing\",0],UNIT[\"foot\",0."); add_srs_wkt (p, 12, "3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2869\"]]"); p = add_epsg_def_ex (filter, first, last, 2870, "epsg", 2870, "NAD83(HARN) / California zone 1 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, "3333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=5000"); add_proj4text (p, 2, "00.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 1 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N"); add_srs_wkt (p, 2, "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 9, "andard_parallel_1\",41.66666666666666],PARAMETER[\"stand"); add_srs_wkt (p, 10, "ard_parallel_2\",40],PARAMETER[\"latitude_of_origin\",39"); add_srs_wkt (p, 11, ".33333333333334],PARAMETER[\"central_meridian\",-122],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_easting\",6561666.667],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",1640416.667],UNIT[\"US survey foot\",0.30480"); add_srs_wkt (p, 14, "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 15, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2870\"]]"); p = add_epsg_def_ex (filter, first, last, 2871, "epsg", 2871, "NAD83(HARN) / California zone 2 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.00"); add_proj4text (p, 2, "01016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0"); add_proj4text (p, 3, ",0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 2 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N"); add_srs_wkt (p, 2, "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 9, "andard_parallel_1\",39.83333333333334],PARAMETER[\"stand"); add_srs_wkt (p, 10, "ard_parallel_2\",38.33333333333334],PARAMETER[\"latitude"); add_srs_wkt (p, 11, "_of_origin\",37.66666666666666],PARAMETER[\"central_meri"); add_srs_wkt (p, 12, "dian\",-122],PARAMETER[\"false_easting\",6561666.667],PA"); add_srs_wkt (p, 13, "RAMETER[\"false_northing\",1640416.667],UNIT[\"US survey"); add_srs_wkt (p, 14, " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); add_srs_wkt (p, 15, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 16, "2871\"]]"); p = add_epsg_def_ex (filter, first, last, 2872, "epsg", 2872, "NAD83(HARN) / California zone 3 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0="); add_proj4text (p, 2, "500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 3, "nits=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 3 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N"); add_srs_wkt (p, 2, "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 9, "andard_parallel_1\",38.43333333333333],PARAMETER[\"stand"); add_srs_wkt (p, 10, "ard_parallel_2\",37.06666666666667],PARAMETER[\"latitude"); add_srs_wkt (p, 11, "_of_origin\",36.5],PARAMETER[\"central_meridian\",-120.5"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",6561666.667],PARAMETER[\"f"); add_srs_wkt (p, 13, "alse_northing\",1640416.667],UNIT[\"US survey foot\",0.3"); add_srs_wkt (p, 14, "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 15, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2872\"]]"); p = add_epsg_def_ex (filter, first, last, 2873, "epsg", 2873, "NAD83(HARN) / California zone 4 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, "4 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.000101600"); add_proj4text (p, 2, "1 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 4 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N"); add_srs_wkt (p, 2, "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 9, "andard_parallel_1\",37.25],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 10, "_2\",36],PARAMETER[\"latitude_of_origin\",35.33333333333"); add_srs_wkt (p, 11, "334],PARAMETER[\"central_meridian\",-119],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_easting\",6561666.667],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "1640416.667],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 15, ",NORTH],AUTHORITY[\"EPSG\",\"2873\"]]"); p = add_epsg_def_ex (filter, first, last, 2874, "epsg", 2874, "NAD83(HARN) / California zone 5 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=50"); add_proj4text (p, 2, "0000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 3, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 5 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N"); add_srs_wkt (p, 2, "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 9, "andard_parallel_1\",35.46666666666667],PARAMETER[\"stand"); add_srs_wkt (p, 10, "ard_parallel_2\",34.03333333333333],PARAMETER[\"latitude"); add_srs_wkt (p, 11, "_of_origin\",33.5],PARAMETER[\"central_meridian\",-118],"); add_srs_wkt (p, 12, "PARAMETER[\"false_easting\",6561666.667],PARAMETER[\"fal"); add_srs_wkt (p, 13, "se_northing\",1640416.667],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 14, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 15, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2874\"]]"); p = add_epsg_def_ex (filter, first, last, 2875, "epsg", 2875, "NAD83(HARN) / California zone 6 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000"); add_proj4text (p, 2, ".0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 3, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 6 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N"); add_srs_wkt (p, 2, "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 9, "andard_parallel_1\",33.88333333333333],PARAMETER[\"stand"); add_srs_wkt (p, 10, "ard_parallel_2\",32.78333333333333],PARAMETER[\"latitude"); add_srs_wkt (p, 11, "_of_origin\",32.16666666666666],PARAMETER[\"central_meri"); add_srs_wkt (p, 12, "dian\",-116.25],PARAMETER[\"false_easting\",6561666.667]"); add_srs_wkt (p, 13, ",PARAMETER[\"false_northing\",1640416.667],UNIT[\"US sur"); add_srs_wkt (p, 14, "vey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 15, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 16, ",\"2875\"]]"); p = add_epsg_def_ex (filter, first, last, 2876, "epsg", 2876, "NAD83(HARN) / Colorado North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666"); add_proj4text (p, 1, "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 3, ",0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Colorado North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",40.78333333333333],PARAMETER[\"standard"); add_srs_wkt (p, 10, "_parallel_2\",39.71666666666667],PARAMETER[\"latitude_of"); add_srs_wkt (p, 11, "_origin\",39.33333333333334],PARAMETER[\"central_meridia"); add_srs_wkt (p, 12, "n\",-105.5],PARAMETER[\"false_easting\",3000000],PARAMET"); add_srs_wkt (p, 13, "ER[\"false_northing\",1000000],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 14, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 15, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2876\"]]"); p = add_epsg_def_ex (filter, first, last, 2877, "epsg", 2877, "NAD83(HARN) / Colorado Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, "3334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.60"); add_proj4text (p, 2, "96012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Colorado Central (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Ne"); add_srs_wkt (p, 2, "twork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",39.75],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 10, "2\",38.45],PARAMETER[\"latitude_of_origin\",37.833333333"); add_srs_wkt (p, 11, "33334],PARAMETER[\"central_meridian\",-105.5],PARAMETER["); add_srs_wkt (p, 12, "\"false_easting\",3000000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "1000000],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 15, "RTH],AUTHORITY[\"EPSG\",\"2877\"]]"); p = add_epsg_def_ex (filter, first, last, 2878, "epsg", 2878, "NAD83(HARN) / Colorado South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 3, ",0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Colorado South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",38.43333333333333],PARAMETER[\"standard"); add_srs_wkt (p, 10, "_parallel_2\",37.23333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 11, "_origin\",36.66666666666666],PARAMETER[\"central_meridia"); add_srs_wkt (p, 12, "n\",-105.5],PARAMETER[\"false_easting\",3000000],PARAMET"); add_srs_wkt (p, 13, "ER[\"false_northing\",1000000],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 14, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 15, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2878\"]]"); p = add_epsg_def_ex (filter, first, last, 2879, "epsg", 2879, "NAD83(HARN) / Connecticut (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, ".83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_"); add_proj4text (p, 2, "0=152400.3048006096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 3, "+units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Connecticut (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",41.86666666666667],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",41.2],PARAMETER[\"latitude_of_origin\",40.833"); add_srs_wkt (p, 11, "33333333334],PARAMETER[\"central_meridian\",-72.75],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",1000000],PARAMETER[\"false_north"); add_srs_wkt (p, 13, "ing\",500000],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 15, "\",NORTH],AUTHORITY[\"EPSG\",\"2879\"]]"); p = add_epsg_def_ex (filter, first, last, 2880, "epsg", 2880, "NAD83(HARN) / Delaware (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, "995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Delaware (ftUS)\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",38],PARAMETER[\"central_meridian\",-75.41666666666667],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.999995],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",656166.667],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"2880\"]]"); p = add_epsg_def_ex (filter, first, last, 2881, "epsg", 2881, "NAD83(HARN) / Florida East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs"); add_proj4text (p, 2, "84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Florida East (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",24.33333333333333],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 10, "81],PARAMETER[\"scale_factor\",0.999941177],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",656166.667],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"2881\"]]"); p = add_epsg_def_ex (filter, first, last, 2882, "epsg", 2882, "NAD83(HARN) / Florida West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs"); add_proj4text (p, 2, "84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Florida West (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",24.33333333333333],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 10, "82],PARAMETER[\"scale_factor\",0.999941177],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",656166.667],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"2882\"]]"); p = add_epsg_def_ex (filter, first, last, 2883, "epsg", 2883, "NAD83(HARN) / Florida North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Florida North (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 9, "rd_parallel_1\",30.75],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",29.58333333333333],PARAMETER[\"latitude_of_origin\",29]"); add_srs_wkt (p, 11, ",PARAMETER[\"central_meridian\",-84.5],PARAMETER[\"false"); add_srs_wkt (p, 12, "_easting\",1968500],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 13, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"2883\"]]"); p = add_epsg_def_ex (filter, first, last, 2884, "epsg", 2884, "NAD83(HARN) / Georgia East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 2, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Georgia East (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",30],PARAMETER[\"central_meridian\",-82.166666666666"); add_srs_wkt (p, 10, "67],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",656166.667],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"2884\"]]"); p = add_epsg_def_ex (filter, first, last, 2885, "epsg", 2885, "NAD83(HARN) / Georgia West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 2, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Georgia West (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",30],PARAMETER[\"central_meridian\",-84.166666666666"); add_srs_wkt (p, 10, "67],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",2296583.333],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"2885\"]]"); p = add_epsg_def_ex (filter, first, last, 2886, "epsg", 2886, "NAD83(HARN) / Idaho East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, "666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Idaho East (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",41.66666666666666],PARAMETER[\"central_meridian\",-112."); add_srs_wkt (p, 10, "1666666666667],PARAMETER[\"scale_factor\",0.999947368],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",656166.667],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 13, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"2886\"]]"); p = add_epsg_def_ex (filter, first, last, 2887, "epsg", 2887, "NAD83(HARN) / Idaho Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, "99473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, "0 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Idaho Central (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",41.66666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-114],PARAMETER[\"scale_factor\",0.999947368],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",1640416.667],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"2887\"]]"); p = add_epsg_def_ex (filter, first, last, 2888, "epsg", 2888, "NAD83(HARN) / Idaho West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, ".999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Idaho West (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",41.66666666666666],PARAMETER[\"central_meridian\",-115."); add_srs_wkt (p, 10, "75],PARAMETER[\"scale_factor\",0.999933333],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",2624666.667],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"2888\"]]"); p = add_epsg_def_ex (filter, first, last, 2889, "epsg", 2889, "NAD83(HARN) / Indiana East (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=99999.99989839978 +y_0=249364.9987299975 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Indiana East (ftUS) (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refe"); add_srs_wkt (p, 2, "rence_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",37.5],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 10, "85.66666666666667],PARAMETER[\"scale_factor\",0.99996666"); add_srs_wkt (p, 11, "7],PARAMETER[\"false_easting\",328083.333],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",818125],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 13, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 14, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2889\"]]"); p = add_epsg_def_ex (filter, first, last, 2890, "epsg", 2890, "NAD83(HARN) / Indiana West (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=900000 +y_0=249364.9987299975 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Indiana West (ftUS) (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refe"); add_srs_wkt (p, 2, "rence_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",37.5],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 10, "87.08333333333333],PARAMETER[\"scale_factor\",0.99996666"); add_srs_wkt (p, 11, "7],PARAMETER[\"false_easting\",2952750],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",818125],UNIT[\"US survey foot\",0.304800609"); add_srs_wkt (p, 13, "6012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 14, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2890\"]]"); p = add_epsg_def_ex (filter, first, last, 2891, "epsg", 2891, "NAD83(HARN) / Kentucky North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kentucky North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",37.96666666666667],PARAMETER[\"standard"); add_srs_wkt (p, 10, "_parallel_2\",38.96666666666667],PARAMETER[\"latitude_of"); add_srs_wkt (p, 11, "_origin\",37.5],PARAMETER[\"central_meridian\",-84.25],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_easting\",1640416.667],PARAMETER[\"fals"); add_srs_wkt (p, 13, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 14, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 15, "Y\",NORTH],AUTHORITY[\"EPSG\",\"2891\"]]"); p = add_epsg_def_ex (filter, first, last, 2892, "epsg", 2892, "NAD83(HARN) / Kentucky South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333"); add_proj4text (p, 1, "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0"); add_proj4text (p, 2, "001016001 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 3, ",0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kentucky South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",37.93333333333333],PARAMETER[\"standard"); add_srs_wkt (p, 10, "_parallel_2\",36.73333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 11, "_origin\",36.33333333333334],PARAMETER[\"central_meridia"); add_srs_wkt (p, 12, "n\",-85.75],PARAMETER[\"false_easting\",1640416.667],PAR"); add_srs_wkt (p, 13, "AMETER[\"false_northing\",1640416.667],UNIT[\"US survey "); add_srs_wkt (p, 14, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 15, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 16, "2892\"]]"); p = add_epsg_def_ex (filter, first, last, 2893, "epsg", 2893, "NAD83(HARN) / Maryland (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666"); add_proj4text (p, 1, "666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, "0 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maryland (ftUS)\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",39.45],PARAMETER[\"standard_parallel_2\",38.3"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",37.66666666666666],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-77],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",1312333.333],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 13, "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"2893\"]]"); p = add_epsg_def_ex (filter, first, last, 2894, "epsg", 2894, "NAD83(HARN) / Massachusetts Mainland (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, "667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=7"); add_proj4text (p, 2, "50000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Massachusetts Mainland (ftUS)\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refere"); add_srs_wkt (p, 2, "nce_Network\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",42.68333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",41.71666666666667],PARAMETER[\"lat"); add_srs_wkt (p, 11, "itude_of_origin\",41],PARAMETER[\"central_meridian\",-71"); add_srs_wkt (p, 12, ".5],PARAMETER[\"false_easting\",656166.667],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",2460625],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 14, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 15, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2894\"]]"); p = add_epsg_def_ex (filter, first, last, 2895, "epsg", 2895, "NAD83(HARN) / Massachusetts Island (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333"); add_proj4text (p, 1, "333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0"); add_proj4text (p, 2, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_de"); add_proj4text (p, 3, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Massachusetts Island (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Referenc"); add_srs_wkt (p, 2, "e_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",41.48333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 10, "ndard_parallel_2\",41.28333333333333],PARAMETER[\"latitu"); add_srs_wkt (p, 11, "de_of_origin\",41],PARAMETER[\"central_meridian\",-70.5]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_easting\",1640416.667],PARAMETER[\"fa"); add_srs_wkt (p, 13, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 14, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 15, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2895\"]]"); p = add_epsg_def_ex (filter, first, last, 2896, "epsg", 2896, "NAD83(HARN) / Michigan North (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333"); add_proj4text (p, 1, "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999"); add_proj4text (p, 2, "968001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Michigan North (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",47.08333333333334],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",45.48333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 11, "igin\",44.78333333333333],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 12, ",-87],PARAMETER[\"false_easting\",26246719.16],PARAMETER"); add_srs_wkt (p, 13, "[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 15, "HORITY[\"EPSG\",\"2896\"]]"); p = add_epsg_def_ex (filter, first, last, 2897, "epsg", 2897, "NAD83(HARN) / Michigan Central (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43"); add_proj4text (p, 1, ".31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.9"); add_proj4text (p, 2, "99976001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 3, "ts=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Michigan Central (ft)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",45.7],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",44.18333333333333],PARAMETER[\"latitude_of_origin\",43."); add_srs_wkt (p, 11, "31666666666667],PARAMETER[\"central_meridian\",-84.36666"); add_srs_wkt (p, 12, "666666666],PARAMETER[\"false_easting\",19685039.37],PARA"); add_srs_wkt (p, 13, "METER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 15, "],AUTHORITY[\"EPSG\",\"2897\"]]"); p = add_epsg_def_ex (filter, first, last, 2898, "epsg", 2898, "NAD83(HARN) / Michigan South (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41"); add_proj4text (p, 1, ".5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Michigan South (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",43.66666666666666],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",42.1],PARAMETER[\"latitude_of_origin\",41.5],"); add_srs_wkt (p, 11, "PARAMETER[\"central_meridian\",-84.36666666666666],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_easting\",13123359.58],PARAMETER[\"false_no"); add_srs_wkt (p, 13, "rthing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 14, "02\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 15, "SG\",\"2898\"]]"); p = add_epsg_def_ex (filter, first, last, 2899, "epsg", 2899, "NAD83(HARN) / Mississippi East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Mississippi East (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Ne"); add_srs_wkt (p, 2, "twork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 9, "_origin\",29.5],PARAMETER[\"central_meridian\",-88.83333"); add_srs_wkt (p, 10, "333333333],PARAMETER[\"scale_factor\",0.99995],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",984250.0000000002],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"2899\"]]"); p = add_epsg_def_ex (filter, first, last, 2900, "epsg", 2900, "NAD83(HARN) / Mississippi West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Mississippi West (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Ne"); add_srs_wkt (p, 2, "twork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 9, "_origin\",29.5],PARAMETER[\"central_meridian\",-90.33333"); add_srs_wkt (p, 10, "333333333],PARAMETER[\"scale_factor\",0.99995],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",2296583.333],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"2900\"]]"); p = add_epsg_def_ex (filter, first, last, 2901, "epsg", 2901, "NAD83(HARN) / Montana (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5"); add_proj4text (p, 1, " +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Montana (ft)\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",49],PARAMETER[\"standard_parallel_2\",45],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",44.25],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",-109.5],PARAMETER[\"false_easting\",1968503.937"); add_srs_wkt (p, 12, "],PARAMETER[\"false_northing\",0],UNIT[\"foot\",0.3048,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"2901\"]]"); p = add_epsg_def_ex (filter, first, last, 2902, "epsg", 2902, "NAD83(HARN) / New Mexico East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); add_proj4text (p, 1, "909091 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Mexico East (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",31],PARAMETER[\"central_meridian\",-104.33333333"); add_srs_wkt (p, 10, "33333],PARAMETER[\"scale_factor\",0.999909091],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",541337.5],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"2902\"]]"); p = add_epsg_def_ex (filter, first, last, 2903, "epsg", 2903, "NAD83(HARN) / New Mexico Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000"); add_proj4text (p, 1, "00.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Mexico Central (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_"); add_srs_wkt (p, 2, "Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",31],PARAMETER[\"central_meridian\",-106.25],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",1640416.667],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"2903\"]]"); p = add_epsg_def_ex (filter, first, last, 2904, "epsg", 2904, "NAD83(HARN) / New Mexico West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); add_proj4text (p, 1, "916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +towgs"); add_proj4text (p, 2, "84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Mexico West (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",31],PARAMETER[\"central_meridian\",-107.83333333"); add_srs_wkt (p, 10, "33333],PARAMETER[\"scale_factor\",0.999916667],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",2723091.667],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"2904\"]]"); p = add_epsg_def_ex (filter, first, last, 2905, "epsg", 2905, "NAD83(HARN) / New York East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New York East (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",38.83333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-74.5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",492125],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"2905\"]]"); p = add_epsg_def_ex (filter, first, last, 2906, "epsg", 2906, "NAD83(HARN) / New York Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New York Central (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Ne"); add_srs_wkt (p, 2, "twork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 9, "_origin\",40],PARAMETER[\"central_meridian\",-76.5833333"); add_srs_wkt (p, 10, "3333333],PARAMETER[\"scale_factor\",0.9999375],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",820208.3330000002],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"2906\"]]"); p = add_epsg_def_ex (filter, first, last, 2907, "epsg", 2907, "NAD83(HARN) / New York West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New York West (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",40],PARAMETER[\"central_meridian\",-78.5833333333"); add_srs_wkt (p, 10, "3333],PARAMETER[\"scale_factor\",0.9999375],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",1148291.667],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"2907\"]]"); p = add_epsg_def_ex (filter, first, last, 2908, "epsg", 2908, "NAD83(HARN) / New York Long Island (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000"); add_proj4text (p, 2, "000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New York Long Island (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Referenc"); add_srs_wkt (p, 2, "e_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",41.03333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 10, "ndard_parallel_2\",40.66666666666666],PARAMETER[\"latitu"); add_srs_wkt (p, 11, "de_of_origin\",40.16666666666666],PARAMETER[\"central_me"); add_srs_wkt (p, 12, "ridian\",-74],PARAMETER[\"false_easting\",984250.0000000"); add_srs_wkt (p, 13, "002],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); add_srs_wkt (p, 14, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 15, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"29"); add_srs_wkt (p, 16, "08\"]]"); p = add_epsg_def_ex (filter, first, last, 2909, "epsg", 2909, "NAD83(HARN) / North Dakota North (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333"); add_proj4text (p, 1, "333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / North Dakota North (ft)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Ne"); add_srs_wkt (p, 2, "twork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",48.73333333333333],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",47.43333333333333],PARAMETER[\"latitude_"); add_srs_wkt (p, 11, "of_origin\",47],PARAMETER[\"central_meridian\",-100.5],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_easting\",1968503.937],PARAMETER[\"fals"); add_srs_wkt (p, 13, "e_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 15, "\"EPSG\",\"2909\"]]"); p = add_epsg_def_ex (filter, first, last, 2910, "epsg", 2910, "NAD83(HARN) / North Dakota South (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333"); add_proj4text (p, 1, "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9"); add_proj4text (p, 2, "999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / North Dakota South (ft)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Ne"); add_srs_wkt (p, 2, "twork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",47.48333333333333],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",46.18333333333333],PARAMETER[\"latitude_"); add_srs_wkt (p, 11, "of_origin\",45.66666666666666],PARAMETER[\"central_merid"); add_srs_wkt (p, 12, "ian\",-100.5],PARAMETER[\"false_easting\",1968503.937],P"); add_srs_wkt (p, 13, "ARAMETER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 15, "RTH],AUTHORITY[\"EPSG\",\"2910\"]]"); p = add_epsg_def_ex (filter, first, last, 2911, "epsg", 2911, "NAD83(HARN) / Oklahoma North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666"); add_proj4text (p, 1, "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oklahoma North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",36.76666666666667],PARAMETER[\"standard"); add_srs_wkt (p, 10, "_parallel_2\",35.56666666666667],PARAMETER[\"latitude_of"); add_srs_wkt (p, 11, "_origin\",35],PARAMETER[\"central_meridian\",-98],PARAME"); add_srs_wkt (p, 12, "TER[\"false_easting\",1968500],PARAMETER[\"false_northin"); add_srs_wkt (p, 13, "g\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 15, "H],AUTHORITY[\"EPSG\",\"2911\"]]"); p = add_epsg_def_ex (filter, first, last, 2912, "epsg", 2912, "NAD83(HARN) / Oklahoma South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333"); add_proj4text (p, 1, "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oklahoma South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",35.23333333333333],PARAMETER[\"standard"); add_srs_wkt (p, 10, "_parallel_2\",33.93333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 11, "_origin\",33.33333333333334],PARAMETER[\"central_meridia"); add_srs_wkt (p, 12, "n\",-98],PARAMETER[\"false_easting\",1968500],PARAMETER["); add_srs_wkt (p, 13, "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 14, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 15, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2912\"]]"); p = add_epsg_def_ex (filter, first, last, 2913, "epsg", 2913, "NAD83(HARN) / Oregon North (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oregon North (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",46],PARAMETER[\"standard_parallel_2\",44.3333"); add_srs_wkt (p, 10, "3333333334],PARAMETER[\"latitude_of_origin\",43.66666666"); add_srs_wkt (p, 11, "666666],PARAMETER[\"central_meridian\",-120.5],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",8202099.738],PARAMETER[\"false_northi"); add_srs_wkt (p, 13, "ng\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"2913\"]]"); p = add_epsg_def_ex (filter, first, last, 2914, "epsg", 2914, "NAD83(HARN) / Oregon South (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oregon South (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",44],PARAMETER[\"standard_parallel_2\",42.3333"); add_srs_wkt (p, 10, "3333333334],PARAMETER[\"latitude_of_origin\",41.66666666"); add_srs_wkt (p, 11, "666666],PARAMETER[\"central_meridian\",-120.5],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",4921259.843],PARAMETER[\"false_northi"); add_srs_wkt (p, 13, "ng\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"2914\"]]"); p = add_epsg_def_ex (filter, first, last, 2915, "epsg", 2915, "NAD83(HARN) / Tennessee (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3"); add_proj4text (p, 1, "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Tennessee (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",36.41666666666666],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",35.25],PARAMETER[\"latitude_of_origin\",34.33333"); add_srs_wkt (p, 11, "333333334],PARAMETER[\"central_meridian\",-86],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",1968500],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 15, "AUTHORITY[\"EPSG\",\"2915\"]]"); p = add_epsg_def_ex (filter, first, last, 2916, "epsg", 2916, "NAD83(HARN) / Texas North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3"); add_proj4text (p, 1, "4 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.99989"); add_proj4text (p, 2, "83998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas North (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",36.18333333333333],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",34.65],PARAMETER[\"latitude_of_origin\",34],P"); add_srs_wkt (p, 11, "ARAMETER[\"central_meridian\",-101.5],PARAMETER[\"false_"); add_srs_wkt (p, 12, "easting\",656166.667],PARAMETER[\"false_northing\",32808"); add_srs_wkt (p, 13, "33.333],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 15, "TH],AUTHORITY[\"EPSG\",\"2916\"]]"); p = add_epsg_def_ex (filter, first, last, 2917, "epsg", 2917, "NAD83(HARN) / Texas North Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333"); add_proj4text (p, 1, "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y"); add_proj4text (p, 2, "_0=2000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 3, "units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas North Central (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference"); add_srs_wkt (p, 2, "_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",33.96666666666667],PARAMETER[\"sta"); add_srs_wkt (p, 10, "ndard_parallel_2\",32.13333333333333],PARAMETER[\"latitu"); add_srs_wkt (p, 11, "de_of_origin\",31.66666666666667],PARAMETER[\"central_me"); add_srs_wkt (p, 12, "ridian\",-98.5],PARAMETER[\"false_easting\",1968500],PAR"); add_srs_wkt (p, 13, "AMETER[\"false_northing\",6561666.667],UNIT[\"US survey "); add_srs_wkt (p, 14, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 15, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 16, "2917\"]]"); p = add_epsg_def_ex (filter, first, last, 2918, "epsg", 2918, "NAD83(HARN) / Texas Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666"); add_proj4text (p, 1, "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); add_proj4text (p, 2, "x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +towgs84"); add_proj4text (p, 3, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas Central (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 9, "rd_parallel_1\",31.88333333333333],PARAMETER[\"standard_"); add_srs_wkt (p, 10, "parallel_2\",30.11666666666667],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 11, "origin\",29.66666666666667],PARAMETER[\"central_meridian"); add_srs_wkt (p, 12, "\",-100.3333333333333],PARAMETER[\"false_easting\",22965"); add_srs_wkt (p, 13, "83.333],PARAMETER[\"false_northing\",9842500.000000002],"); add_srs_wkt (p, 14, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 16, "ORITY[\"EPSG\",\"2918\"]]"); p = add_epsg_def_ex (filter, first, last, 2919, "epsg", 2919, "NAD83(HARN) / Texas South Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333"); add_proj4text (p, 1, "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0"); add_proj4text (p, 2, "=3999999.9998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un"); add_proj4text (p, 3, "its=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas South Central (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference"); add_srs_wkt (p, 2, "_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",30.28333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 10, "ndard_parallel_2\",28.38333333333333],PARAMETER[\"latitu"); add_srs_wkt (p, 11, "de_of_origin\",27.83333333333333],PARAMETER[\"central_me"); add_srs_wkt (p, 12, "ridian\",-99],PARAMETER[\"false_easting\",1968500],PARAM"); add_srs_wkt (p, 13, "ETER[\"false_northing\",13123333.333],UNIT[\"US survey f"); add_srs_wkt (p, 14, "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); add_srs_wkt (p, 15, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 16, "919\"]]"); p = add_epsg_def_ex (filter, first, last, 2920, "epsg", 2920, "NAD83(HARN) / Texas South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.00"); add_proj4text (p, 2, "00000001 +y_0=5000000.0001016 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 3, "0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas South (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",27.83333333333333],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",26.16666666666667],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 11, "igin\",25.66666666666667],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 12, ",-98.5],PARAMETER[\"false_easting\",984250.0000000002],P"); add_srs_wkt (p, 13, "ARAMETER[\"false_northing\",16404166.667],UNIT[\"US surv"); add_srs_wkt (p, 14, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 15, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 16, ",\"2920\"]]"); p = add_epsg_def_ex (filter, first, last, 2921, "epsg", 2921, "NAD83(HARN) / Utah North (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0"); add_proj4text (p, 2, "001504 +y_0=999999.9999960001 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 3, "0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Utah North (ft)\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",41.78333333333333],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",40.71666666666667],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",40.33333333333334],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 12, "11.5],PARAMETER[\"false_easting\",1640419.948],PARAMETER"); add_srs_wkt (p, 13, "[\"false_northing\",3280839.895],UNIT[\"foot\",0.3048,AU"); add_srs_wkt (p, 14, "THORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 15, "NORTH],AUTHORITY[\"EPSG\",\"2921\"]]"); p = add_epsg_def_ex (filter, first, last, 2922, "epsg", 2922, "NAD83(HARN) / Utah Central (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0="); add_proj4text (p, 2, "1999999.999992 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Utah Central (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",40.65],PARAMETER[\"standard_parallel_2\",39.0"); add_srs_wkt (p, 10, "1666666666667],PARAMETER[\"latitude_of_origin\",38.33333"); add_srs_wkt (p, 11, "333333334],PARAMETER[\"central_meridian\",-111.5],PARAME"); add_srs_wkt (p, 12, "TER[\"false_easting\",1640419.948],PARAMETER[\"false_nor"); add_srs_wkt (p, 13, "thing\",6561679.79],UNIT[\"foot\",0.3048,AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 15, "ITY[\"EPSG\",\"2922\"]]"); p = add_epsg_def_ex (filter, first, last, 2923, "epsg", 2923, "NAD83(HARN) / Utah South (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0="); add_proj4text (p, 2, "2999999.999988 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Utah South (ft)\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",38.35],PARAMETER[\"standard_parallel_2\",37.2"); add_srs_wkt (p, 10, "1666666666667],PARAMETER[\"latitude_of_origin\",36.66666"); add_srs_wkt (p, 11, "666666666],PARAMETER[\"central_meridian\",-111.5],PARAME"); add_srs_wkt (p, 12, "TER[\"false_easting\",1640419.948],PARAMETER[\"false_nor"); add_srs_wkt (p, 13, "thing\",9842519.685],UNIT[\"foot\",0.3048,AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 15, "RITY[\"EPSG\",\"2923\"]]"); p = add_epsg_def_ex (filter, first, last, 2924, "epsg", 2924, "NAD83(HARN) / Virginia North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37"); add_proj4text (p, 1, ".66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2"); add_proj4text (p, 2, "000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Virginia North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",39.2],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",38.03333333333333],PARAMETER[\"latitude_of_origin\",37."); add_srs_wkt (p, 11, "66666666666666],PARAMETER[\"central_meridian\",-78.5],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_easting\",11482916.667],PARAMETER[\"fals"); add_srs_wkt (p, 13, "e_northing\",6561666.667],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 14, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 15, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2924\"]]"); p = add_epsg_def_ex (filter, first, last, 2925, "epsg", 2925, "NAD83(HARN) / Virginia South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666"); add_proj4text (p, 1, "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0"); add_proj4text (p, 2, "001016 +y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 3, "0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Virginia South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",37.96666666666667],PARAMETER[\"standard"); add_srs_wkt (p, 10, "_parallel_2\",36.76666666666667],PARAMETER[\"latitude_of"); add_srs_wkt (p, 11, "_origin\",36.33333333333334],PARAMETER[\"central_meridia"); add_srs_wkt (p, 12, "n\",-78.5],PARAMETER[\"false_easting\",11482916.667],PAR"); add_srs_wkt (p, 13, "AMETER[\"false_northing\",3280833.333],UNIT[\"US survey "); add_srs_wkt (p, 14, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 15, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 16, "2925\"]]"); p = add_epsg_def_ex (filter, first, last, 2926, "epsg", 2926, "NAD83(HARN) / Washington North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47"); add_proj4text (p, 1, " +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0"); add_proj4text (p, 2, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_de"); add_proj4text (p, 3, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Washington North (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Ne"); add_srs_wkt (p, 2, "twork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",48.73333333333333],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",47.5],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 11, "7],PARAMETER[\"central_meridian\",-120.8333333333333],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_easting\",1640416.667],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 14, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 15, "Y\",NORTH],AUTHORITY[\"EPSG\",\"2926\"]]"); p = add_epsg_def_ex (filter, first, last, 2927, "epsg", 2927, "NAD83(HARN) / Washington South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333"); add_proj4text (p, 1, "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0"); add_proj4text (p, 2, "001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un"); add_proj4text (p, 3, "its=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Washington South (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Ne"); add_srs_wkt (p, 2, "twork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",47.33333333333334],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",45.83333333333334],PARAMETER[\"latitude_"); add_srs_wkt (p, 11, "of_origin\",45.33333333333334],PARAMETER[\"central_merid"); add_srs_wkt (p, 12, "ian\",-120.5],PARAMETER[\"false_easting\",1640416.667],P"); add_srs_wkt (p, 13, "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 14, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 15, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2927\"]]"); p = add_epsg_def_ex (filter, first, last, 2928, "epsg", 2928, "NAD83(HARN) / Wisconsin North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666"); add_proj4text (p, 1, "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wisconsin North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",46.76666666666667],PARAMETER[\"standard"); add_srs_wkt (p, 10, "_parallel_2\",45.56666666666667],PARAMETER[\"latitude_of"); add_srs_wkt (p, 11, "_origin\",45.16666666666666],PARAMETER[\"central_meridia"); add_srs_wkt (p, 12, "n\",-90],PARAMETER[\"false_easting\",1968500],PARAMETER["); add_srs_wkt (p, 13, "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 14, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 15, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2928\"]]"); p = add_epsg_def_ex (filter, first, last, 2929, "epsg", 2929, "NAD83(HARN) / Wisconsin Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); add_proj4text (p, 1, "334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wisconsin Central (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N"); add_srs_wkt (p, 2, "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 9, "andard_parallel_1\",45.5],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 10, "2\",44.25],PARAMETER[\"latitude_of_origin\",43.833333333"); add_srs_wkt (p, 11, "33334],PARAMETER[\"central_meridian\",-90],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_easting\",1968500],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 13, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 15, "ORITY[\"EPSG\",\"2929\"]]"); p = add_epsg_def_ex (filter, first, last, 2930, "epsg", 2930, "NAD83(HARN) / Wisconsin South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333"); add_proj4text (p, 1, "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wisconsin South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",44.06666666666667],PARAMETER[\"standard"); add_srs_wkt (p, 10, "_parallel_2\",42.73333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 11, "_origin\",42],PARAMETER[\"central_meridian\",-90],PARAME"); add_srs_wkt (p, 12, "TER[\"false_easting\",1968500],PARAMETER[\"false_northin"); add_srs_wkt (p, 13, "g\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 15, "H],AUTHORITY[\"EPSG\",\"2930\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ��������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_42.c��������������������������������������������������0000664�0001750�0001750�00000544256�12544707704�017055� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_42 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 30492, "epsg", 30492, "Voirol 1875 / Sud Algerie (ancienne)", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Voirol_1875", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.9996"); add_proj4text (p, 1, "25769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +t"); add_proj4text (p, 2, "owgs84=-73,-247,227,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Voirol 1875 / Sud Algerie (ancienne)\",GEOGCS[\""); add_srs_wkt (p, 1, "Voirol 1875\",DATUM[\"Voirol_1875\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "80 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7011\"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6304\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4304\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 9, "_origin\",33.3],PARAMETER[\"central_meridian\",2.7],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",0.999625769],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",300000],UNI"); add_srs_wkt (p, 12, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"30492\"]]"); p = add_epsg_def_ex (filter, first, last, 30493, "epsg", 30493, "Voirol 1879 / Nord Algerie (ancienne)", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Voirol_1879", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.99962554"); add_proj4text (p, 1, "4 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Voirol 1879 / Nord Algerie (ancienne)\",GEOGCS["); add_srs_wkt (p, 1, "\"Voirol 1879\",DATUM[\"Voirol_1879\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7011\"]],AUTHORITY[\"EPSG\",\"6671\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4671\"]],PROJECTION[\"Lambert_Conformal_Conic_1S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"latitude_of_origin\",36],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",2.7],PARAMETER[\"scale_factor\",0.99962"); add_srs_wkt (p, 10, "5544],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",300000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"30493\"]]"); p = add_epsg_def_ex (filter, first, last, 30494, "epsg", 30494, "Voirol 1879 / Sud Algerie (ancienne)", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Voirol_1879", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.9996"); add_proj4text (p, 1, "25769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Voirol 1879 / Sud Algerie (ancienne)\",GEOGCS[\""); add_srs_wkt (p, 1, "Voirol 1879\",DATUM[\"Voirol_1879\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "80 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7011\"]],AUTHORITY[\"EPSG\",\"6671\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4671\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",33.3],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",2.7],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 10, "25769],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",300000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"30494\"]]"); p = add_epsg_def_ex (filter, first, last, 30729, "epsg", 30729, "Nord Sahara 1959 / UTM zone 29N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Nord_Sahara_1959", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=clrk80 +towgs84=-209.3622,-87."); add_proj4text (p, 1, "8162,404.6198,0.0046,3.4784,0.5805,-1.4547 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"Nord Sahara 1959 / UTM zone 29N\",GEOGCS[\"Nord"); add_srs_wkt (p, 1, " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7012\"]],TOWGS84[-209.3622,-87.8162,404.6198,0.0046,3."); add_srs_wkt (p, 4, "4784,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 8, "RITY[\"EPSG\",\"4307\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 9, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",-9],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 13, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"30729\"]]"); p = add_epsg_def_ex (filter, first, last, 30730, "epsg", 30730, "Nord Sahara 1959 / UTM zone 30N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Nord_Sahara_1959", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=clrk80 +towgs84=-209.3622,-87."); add_proj4text (p, 1, "8162,404.6198,0.0046,3.4784,0.5805,-1.4547 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"Nord Sahara 1959 / UTM zone 30N\",GEOGCS[\"Nord"); add_srs_wkt (p, 1, " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7012\"]],TOWGS84[-209.3622,-87.8162,404.6198,0.0046,3."); add_srs_wkt (p, 4, "4784,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 8, "RITY[\"EPSG\",\"4307\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 9, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",-3],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 13, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"30730\"]]"); p = add_epsg_def_ex (filter, first, last, 30731, "epsg", 30731, "Nord Sahara 1959 / UTM zone 31N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Nord_Sahara_1959", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=31 +ellps=clrk80 +towgs84=-209.3622,-87."); add_proj4text (p, 1, "8162,404.6198,0.0046,3.4784,0.5805,-1.4547 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"Nord Sahara 1959 / UTM zone 31N\",GEOGCS[\"Nord"); add_srs_wkt (p, 1, " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7012\"]],TOWGS84[-209.3622,-87.8162,404.6198,0.0046,3."); add_srs_wkt (p, 4, "4784,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 8, "RITY[\"EPSG\",\"4307\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 9, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",3],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 13, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"30731\"]]"); p = add_epsg_def_ex (filter, first, last, 30732, "epsg", 30732, "Nord Sahara 1959 / UTM zone 32N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Nord_Sahara_1959", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=clrk80 +towgs84=-209.3622,-87."); add_proj4text (p, 1, "8162,404.6198,0.0046,3.4784,0.5805,-1.4547 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"Nord Sahara 1959 / UTM zone 32N\",GEOGCS[\"Nord"); add_srs_wkt (p, 1, " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7012\"]],TOWGS84[-209.3622,-87.8162,404.6198,0.0046,3."); add_srs_wkt (p, 4, "4784,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 8, "RITY[\"EPSG\",\"4307\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 9, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",9],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 13, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"30732\"]]"); p = add_epsg_def_ex (filter, first, last, 30791, "epsg", 30791, "Nord Sahara 1959 / Nord Algerie", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Nord_Sahara_1959", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.99962554"); add_proj4text (p, 1, "4 +x_0=500135 +y_0=300090 +ellps=clrk80 +towgs84=-209.36"); add_proj4text (p, 2, "22,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547 +units"); add_proj4text (p, 3, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nord Sahara 1959 / Nord Algerie\",GEOGCS[\"Nord"); add_srs_wkt (p, 1, " Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7012\"]],TOWGS84[-209.3622,-87.8162,404.6198,0.0046,3."); add_srs_wkt (p, 4, "4784,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 8, "RITY[\"EPSG\",\"4307\"]],PROJECTION[\"Lambert_Conformal_"); add_srs_wkt (p, 9, "Conic_1SP\"],PARAMETER[\"latitude_of_origin\",36],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",2.7],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 11, ",0.999625544],PARAMETER[\"false_easting\",500135],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",300090],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"30791\"]]"); p = add_epsg_def_ex (filter, first, last, 30792, "epsg", 30792, "Nord Sahara 1959 / Sud Algerie", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Nord_Sahara_1959", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.9996"); add_proj4text (p, 1, "25769 +x_0=500135 +y_0=300090 +ellps=clrk80 +towgs84=-20"); add_proj4text (p, 2, "9.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547 +u"); add_proj4text (p, 3, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nord Sahara 1959 / Sud Algerie\",GEOGCS[\"Nord "); add_srs_wkt (p, 1, "Sahara 1959\",DATUM[\"Nord_Sahara_1959\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7012\"]],TOWGS84[-209.3622,-87.8162,404.6198,0.0046,3.47"); add_srs_wkt (p, 4, "84,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6307\"]],PRIMEM["); add_srs_wkt (p, 5, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 6, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 7, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 8, "TY[\"EPSG\",\"4307\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 9, "nic_1SP\"],PARAMETER[\"latitude_of_origin\",33.3],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",2.7],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 11, ",0.999625769],PARAMETER[\"false_easting\",500135],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",300090],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"30792\"]]"); p = add_epsg_def_ex (filter, first, last, 30800, "epsg", 30800, "RT38 2.5 gon W (deprecated)", 0, 1, "Bessel 1841", "Greenwich", "Stockholm_1938", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT38 2.5 gon W (deprecated)\",GEOGCS[\"RT38\",D"); add_srs_wkt (p, 1, "ATUM[\"Stockholm_1938\",SPHEROID[\"Bessel 1841\",6377397"); add_srs_wkt (p, 2, ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6308\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4308\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",15.80827777777"); add_srs_wkt (p, 9, "778],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"30800\"]]"); p = add_epsg_def_ex (filter, first, last, 31028, "epsg", 31028, "Yoff / UTM zone 28N", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Yoff", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +units=m +no_"); add_proj4text (p, 1, "defs"); add_srs_wkt (p, 0, "PROJCS[\"Yoff / UTM zone 28N\",GEOGCS[\"Yoff\",DATUM[\"Y"); add_srs_wkt (p, 1, "off\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602"); add_srs_wkt (p, 2, "12936269,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6310\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4310\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"31028\"]]"); p = add_epsg_def_ex (filter, first, last, 31121, "epsg", 31121, "Zanderij / UTM zone 21N", 0, 0, "International 1924", "Greenwich", "Zanderij", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=intl +towgs84=-265,120,-358,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Zanderij / UTM zone 21N\",GEOGCS[\"Zanderij\",D"); add_srs_wkt (p, 1, "ATUM[\"Zanderij\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 2, "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-35"); add_srs_wkt (p, 3, "8,0,0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"31121\"]]"); p = add_epsg_def_ex (filter, first, last, 31154, "epsg", 31154, "Zanderij / TM 54 NW", 0, 0, "International 1924", "Greenwich", "Zanderij", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-54 +k=0.9996 +x_0=500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Zanderij / TM 54 NW\",GEOGCS[\"Zanderij\",DATUM"); add_srs_wkt (p, 1, "[\"Zanderij\",SPHEROID[\"International 1924\",6378388,29"); add_srs_wkt (p, 2, "7,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-358,0,"); add_srs_wkt (p, 3, "0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4311\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "54],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "1154\"]]"); p = add_epsg_def_ex (filter, first, last, 31170, "epsg", 31170, "Zanderij / Suriname Old TM", 0, 0, "International 1924", "Greenwich", "Zanderij", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9996"); add_proj4text (p, 1, " +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0"); add_proj4text (p, 2, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Zanderij / Suriname Old TM\",GEOGCS[\"Zanderij\""); add_srs_wkt (p, 1, ",DATUM[\"Zanderij\",SPHEROID[\"International 1924\",6378"); add_srs_wkt (p, 2, "388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-"); add_srs_wkt (p, 3, "358,0,0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-55.68333333333333],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"31170\"]]"); p = add_epsg_def_ex (filter, first, last, 31171, "epsg", 31171, "Zanderij / Suriname TM", 0, 0, "International 1924", "Greenwich", "Zanderij", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9999"); add_proj4text (p, 1, " +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0"); add_proj4text (p, 2, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Zanderij / Suriname TM\",GEOGCS[\"Zanderij\",DA"); add_srs_wkt (p, 1, "TUM[\"Zanderij\",SPHEROID[\"International 1924\",6378388"); add_srs_wkt (p, 2, ",297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-265,120,-358"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6311\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4311\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-55.68333333333333],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "99],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"31171\"]]"); p = add_epsg_def_ex (filter, first, last, 31251, "epsg", 31251, "MGI (Ferro) / Austria GK West Zone", 0, 1, "Bessel 1841", "Ferro", "Militar_Geographische_Institut_Ferro", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=-5000000"); add_proj4text (p, 1, " +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / Austria GK West Zone\",GEOGCS[\"M"); add_srs_wkt (p, 1, "GI (Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferr"); add_srs_wkt (p, 2, "o\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666"); add_srs_wkt (p, 5, "6666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",28],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",0],PARAMETER[\"false_northing\",-5000000],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31251\"]]"); p = add_epsg_def_ex (filter, first, last, 31252, "epsg", 31252, "MGI (Ferro) / Austria GK Central Zone", 0, 1, "Bessel 1841", "Ferro", "Militar_Geographische_Institut_Ferro", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=-5000000"); add_proj4text (p, 1, " +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / Austria GK Central Zone\",GEOGCS["); add_srs_wkt (p, 1, "\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Institut_F"); add_srs_wkt (p, 2, "erro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6"); add_srs_wkt (p, 5, "6666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degre"); add_srs_wkt (p, 6, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 7, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 8, "[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 9, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 10, "_meridian\",31],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",0],PARAMETER[\"false_northing\",-50000"); add_srs_wkt (p, 12, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31252"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 31253, "epsg", 31253, "MGI (Ferro) / Austria GK East Zone", 0, 1, "Bessel 1841", "Ferro", "Militar_Geographische_Institut_Ferro", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=-5000000"); add_proj4text (p, 1, " +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / Austria GK East Zone\",GEOGCS[\"M"); add_srs_wkt (p, 1, "GI (Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferr"); add_srs_wkt (p, 2, "o\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666"); add_srs_wkt (p, 5, "6666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",34],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",0],PARAMETER[\"false_northing\",-5000000],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31253\"]]"); p = add_epsg_def_ex (filter, first, last, 31254, "epsg", 31254, "MGI / Austria GK West", 0, 1, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "0 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.129,46"); add_proj4text (p, 2, "3.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria GK West\",GEOGCS[\"MGI\",DATUM[\""); add_srs_wkt (p, 1, "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); add_srs_wkt (p, 2, "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); add_srs_wkt (p, 3, ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"431"); add_srs_wkt (p, 8, "2\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",0],PARAMETER[\"central_meridian\",10."); add_srs_wkt (p, 10, "33333333333333],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",0],PARAMETER[\"false_northing\",-50000"); add_srs_wkt (p, 12, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31254"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 31255, "epsg", 31255, "MGI / Austria GK Central", 0, 1, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "0 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.129,46"); add_proj4text (p, 2, "3.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria GK Central\",GEOGCS[\"MGI\",DATUM"); add_srs_wkt (p, 1, "[\"Militar_Geographische_Institute\",SPHEROID[\"Bessel 1"); add_srs_wkt (p, 2, "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); add_srs_wkt (p, 3, "]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.42"); add_srs_wkt (p, 4, "32],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"43"); add_srs_wkt (p, 8, "12\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",13"); add_srs_wkt (p, 10, ".33333333333333],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",0],PARAMETER[\"false_northing\",-5000"); add_srs_wkt (p, 12, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 13, "[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3125"); add_srs_wkt (p, 14, "5\"]]"); p = add_epsg_def_ex (filter, first, last, 31256, "epsg", 31256, "MGI / Austria GK East", 0, 1, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "0 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.129,46"); add_proj4text (p, 2, "3.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria GK East\",GEOGCS[\"MGI\",DATUM[\""); add_srs_wkt (p, 1, "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); add_srs_wkt (p, 2, "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); add_srs_wkt (p, 3, ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"431"); add_srs_wkt (p, 8, "2\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",0],PARAMETER[\"central_meridian\",16."); add_srs_wkt (p, 10, "33333333333333],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",0],PARAMETER[\"false_northing\",-50000"); add_srs_wkt (p, 12, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31256"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 31257, "epsg", 31257, "MGI / Austria GK M28", 0, 1, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "150000 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.1"); add_proj4text (p, 2, "29,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria GK M28\",GEOGCS[\"MGI\",DATUM[\"M"); add_srs_wkt (p, 1, "ilitar_Geographische_Institute\",SPHEROID[\"Bessel 1841\""); add_srs_wkt (p, 2, ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T"); add_srs_wkt (p, 3, "OWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4312\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",10.333"); add_srs_wkt (p, 10, "33333333333],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",150000],PARAMETER[\"false_northing\",-500"); add_srs_wkt (p, 12, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"312"); add_srs_wkt (p, 14, "57\"]]"); p = add_epsg_def_ex (filter, first, last, 31258, "epsg", 31258, "MGI / Austria GK M31", 0, 1, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "450000 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.1"); add_proj4text (p, 2, "29,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria GK M31\",GEOGCS[\"MGI\",DATUM[\"M"); add_srs_wkt (p, 1, "ilitar_Geographische_Institute\",SPHEROID[\"Bessel 1841\""); add_srs_wkt (p, 2, ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T"); add_srs_wkt (p, 3, "OWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4312\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",13.333"); add_srs_wkt (p, 10, "33333333333],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",450000],PARAMETER[\"false_northing\",-500"); add_srs_wkt (p, 12, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"312"); add_srs_wkt (p, 14, "58\"]]"); p = add_epsg_def_ex (filter, first, last, 31259, "epsg", 31259, "MGI / Austria GK M34", 0, 1, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "750000 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.1"); add_proj4text (p, 2, "29,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria GK M34\",GEOGCS[\"MGI\",DATUM[\"M"); add_srs_wkt (p, 1, "ilitar_Geographische_Institute\",SPHEROID[\"Bessel 1841\""); add_srs_wkt (p, 2, ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T"); add_srs_wkt (p, 3, "OWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4312\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",16.333"); add_srs_wkt (p, 10, "33333333333],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",750000],PARAMETER[\"false_northing\",-500"); add_srs_wkt (p, 12, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"312"); add_srs_wkt (p, 14, "59\"]]"); p = add_epsg_def_ex (filter, first, last, 31265, "epsg", 31265, "MGI / 3-degree Gauss zone 5 (deprecated)", 0, 0, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.47"); add_proj4text (p, 2, "4,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / 3-degree Gauss zone 5 (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH"); add_srs_wkt (p, 2, "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137"); add_srs_wkt (p, 4, ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 8, "RITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 9, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",15],PARAMETER[\"scale_factor\",1],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",5500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31"); add_srs_wkt (p, 14, "265\"]]"); p = add_epsg_def_ex (filter, first, last, 31266, "epsg", 31266, "MGI / 3-degree Gauss zone 6 (deprecated)", 0, 0, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.47"); add_proj4text (p, 2, "4,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / 3-degree Gauss zone 6 (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH"); add_srs_wkt (p, 2, "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137"); add_srs_wkt (p, 4, ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 8, "RITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 9, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",18],PARAMETER[\"scale_factor\",1],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",6500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31"); add_srs_wkt (p, 14, "266\"]]"); p = add_epsg_def_ex (filter, first, last, 31267, "epsg", 31267, "MGI / 3-degree Gauss zone 7 (deprecated)", 0, 0, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.47"); add_proj4text (p, 2, "4,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / 3-degree Gauss zone 7 (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH"); add_srs_wkt (p, 2, "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137"); add_srs_wkt (p, 4, ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 8, "RITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 9, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",21],PARAMETER[\"scale_factor\",1],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",7500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31"); add_srs_wkt (p, 14, "267\"]]"); p = add_epsg_def_ex (filter, first, last, 31268, "epsg", 31268, "MGI / 3-degree Gauss zone 8 (deprecated)", 0, 0, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.47"); add_proj4text (p, 2, "4,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / 3-degree Gauss zone 8 (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH"); add_srs_wkt (p, 2, "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137"); add_srs_wkt (p, 4, ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 8, "RITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 9, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",24],PARAMETER[\"scale_factor\",1],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",8500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31"); add_srs_wkt (p, 14, "268\"]]"); p = add_epsg_def_ex (filter, first, last, 31275, "epsg", 31275, "MGI / Balkans zone 5 (deprecated)", 0, 1, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=5500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137"); add_proj4text (p, 2, ",1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Balkans zone 5 (deprecated)\",GEOGCS[\"MG"); add_srs_wkt (p, 1, "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); add_srs_wkt (p, 4, ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",15],PARAMETER[\"scale_factor\",0.9999],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",5500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31275"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 31276, "epsg", 31276, "MGI / Balkans zone 6 (deprecated)", 0, 1, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=6500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137"); add_proj4text (p, 2, ",1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Balkans zone 6 (deprecated)\",GEOGCS[\"MG"); add_srs_wkt (p, 1, "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); add_srs_wkt (p, 4, ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",18],PARAMETER[\"scale_factor\",0.9999],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",6500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31276"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 31277, "epsg", 31277, "MGI / Balkans zone 7 (deprecated)", 0, 1, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137"); add_proj4text (p, 2, ",1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Balkans zone 7 (deprecated)\",GEOGCS[\"MG"); add_srs_wkt (p, 1, "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); add_srs_wkt (p, 4, ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",21],PARAMETER[\"scale_factor\",0.9999],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",7500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31277"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 31278, "epsg", 31278, "MGI / Balkans zone 8 (deprecated)", 0, 1, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137"); add_proj4text (p, 2, ",1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Balkans zone 8 (deprecated)\",GEOGCS[\"MG"); add_srs_wkt (p, 1, "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); add_srs_wkt (p, 4, ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",21],PARAMETER[\"scale_factor\",0.9999],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",7500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31278"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 31279, "epsg", 31279, "MGI / Balkans zone 8 (deprecated)", 0, 1, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=8500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137"); add_proj4text (p, 2, ",1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Balkans zone 8 (deprecated)\",GEOGCS[\"MG"); add_srs_wkt (p, 1, "I\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); add_srs_wkt (p, 4, ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",24],PARAMETER[\"scale_factor\",0.9999],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",8500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31279"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 31281, "epsg", 31281, "MGI (Ferro) / Austria West Zone", 0, 1, "Bessel 1841", "Ferro", "Militar_Geographische_Institut_Ferro", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps"); add_proj4text (p, 1, "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / Austria West Zone\",GEOGCS[\"MGI "); add_srs_wkt (p, 1, "(Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferro\""); add_srs_wkt (p, 2, ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666666"); add_srs_wkt (p, 5, "6666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4805\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",28],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 13, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31281\"]]"); p = add_epsg_def_ex (filter, first, last, 31282, "epsg", 31282, "MGI (Ferro) / Austria Central Zone", 0, 1, "Bessel 1841", "Ferro", "Militar_Geographische_Institut_Ferro", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +ellps"); add_proj4text (p, 1, "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / Austria Central Zone\",GEOGCS[\"M"); add_srs_wkt (p, 1, "GI (Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferr"); add_srs_wkt (p, 2, "o\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666"); add_srs_wkt (p, 5, "6666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4805\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",31],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 13, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31282\"]]"); p = add_epsg_def_ex (filter, first, last, 31283, "epsg", 31283, "MGI (Ferro) / Austria East Zone", 0, 1, "Bessel 1841", "Ferro", "Militar_Geographische_Institut_Ferro", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=0 +ellps"); add_proj4text (p, 1, "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / Austria East Zone\",GEOGCS[\"MGI "); add_srs_wkt (p, 1, "(Ferro)\",DATUM[\"Militar_Geographische_Institut_Ferro\""); add_srs_wkt (p, 2, ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,480,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\",-17.6666666"); add_srs_wkt (p, 5, "6666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4805\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",34],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 13, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31283\"]]"); p = add_epsg_def_ex (filter, first, last, 31284, "epsg", 31284, "MGI / Austria M28", 0, 1, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "150000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463."); add_proj4text (p, 2, "919,5.137,1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria M28\",GEOGCS[\"MGI\",DATUM[\"Mili"); add_srs_wkt (p, 1, "tar_Geographische_Institute\",SPHEROID[\"Bessel 1841\",6"); add_srs_wkt (p, 2, "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); add_srs_wkt (p, 3, "GS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4312\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",0],PARAMETER[\"central_meridian\",10.3333"); add_srs_wkt (p, 10, "3333333333],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",150000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31284\"]]"); p = add_epsg_def_ex (filter, first, last, 31285, "epsg", 31285, "MGI / Austria M31", 0, 1, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "450000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463."); add_proj4text (p, 2, "919,5.137,1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria M31\",GEOGCS[\"MGI\",DATUM[\"Mili"); add_srs_wkt (p, 1, "tar_Geographische_Institute\",SPHEROID[\"Bessel 1841\",6"); add_srs_wkt (p, 2, "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); add_srs_wkt (p, 3, "GS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4312\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",0],PARAMETER[\"central_meridian\",13.3333"); add_srs_wkt (p, 10, "3333333333],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",450000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31285\"]]"); p = add_epsg_def_ex (filter, first, last, 31286, "epsg", 31286, "MGI / Austria M34", 0, 1, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "750000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463."); add_proj4text (p, 2, "919,5.137,1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria M34\",GEOGCS[\"MGI\",DATUM[\"Mili"); add_srs_wkt (p, 1, "tar_Geographische_Institute\",SPHEROID[\"Bessel 1841\",6"); add_srs_wkt (p, 2, "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); add_srs_wkt (p, 3, "GS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4312\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",0],PARAMETER[\"central_meridian\",16.3333"); add_srs_wkt (p, 10, "3333333333],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",750000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31286\"]]"); p = add_epsg_def_ex (filter, first, last, 31287, "epsg", 31287, "MGI / Austria Lambert", 0, 1, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Lambert_Conformal_Conic_2SP", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.3333"); add_proj4text (p, 1, "3333333333 +x_0=400000 +y_0=400000 +ellps=bessel +towgs8"); add_proj4text (p, 2, "4=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units"); add_proj4text (p, 3, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria Lambert\",GEOGCS[\"MGI\",DATUM[\""); add_srs_wkt (p, 1, "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); add_srs_wkt (p, 2, "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); add_srs_wkt (p, 3, ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"431"); add_srs_wkt (p, 8, "2\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",49],PARAMETER[\"standard_par"); add_srs_wkt (p, 10, "allel_2\",46],PARAMETER[\"latitude_of_origin\",47.5],PAR"); add_srs_wkt (p, 11, "AMETER[\"central_meridian\",13.33333333333333],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",400000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 14, "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 15, "1287\"]]"); p = add_epsg_def_ex (filter, first, last, 31288, "epsg", 31288, "MGI (Ferro) / M28", 0, 1, "Bessel 1841", "Ferro", "Militar_Geographische_Institut_Ferro", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=150000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / M28\",GEOGCS[\"MGI (Ferro)\",DATU"); add_srs_wkt (p, 1, "M[\"Militar_Geographische_Institut_Ferro\",SPHEROID[\"Be"); add_srs_wkt (p, 2, "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7004\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6805\"]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4805\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",28],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",1500"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"31288\"]]"); p = add_epsg_def_ex (filter, first, last, 31289, "epsg", 31289, "MGI (Ferro) / M31", 0, 1, "Bessel 1841", "Ferro", "Militar_Geographische_Institut_Ferro", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=450000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / M31\",GEOGCS[\"MGI (Ferro)\",DATU"); add_srs_wkt (p, 1, "M[\"Militar_Geographische_Institut_Ferro\",SPHEROID[\"Be"); add_srs_wkt (p, 2, "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7004\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6805\"]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4805\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",31],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",4500"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"31289\"]]"); p = add_epsg_def_ex (filter, first, last, 31290, "epsg", 31290, "MGI (Ferro) / M34", 0, 1, "Bessel 1841", "Ferro", "Militar_Geographische_Institut_Ferro", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=750000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / M34\",GEOGCS[\"MGI (Ferro)\",DATU"); add_srs_wkt (p, 1, "M[\"Militar_Geographische_Institut_Ferro\",SPHEROID[\"Be"); add_srs_wkt (p, 2, "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7004\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6805\"]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8909\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4805\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",34],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",7500"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"31290\"]]"); p = add_epsg_def_ex (filter, first, last, 31291, "epsg", 31291, "MGI (Ferro) / Austria West Zone (deprecated)", 0, 0, "Bessel 1841", "Ferro", "Militar_Geographische_Institut_Ferro", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps"); add_proj4text (p, 1, "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / Austria West Zone (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Ins"); add_srs_wkt (p, 2, "titut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1"); add_srs_wkt (p, 3, "528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,48"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\""); add_srs_wkt (p, 5, ",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 10, "ntral_meridian\",28],PARAMETER[\"scale_factor\",1],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",0],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 12, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31291\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 31292, "epsg", 31292, "MGI (Ferro) / Austria Central Zone (deprecated)", 0, 0, "Bessel 1841", "Ferro", "Militar_Geographische_Institut_Ferro", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +ellps"); add_proj4text (p, 1, "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / Austria Central Zone (deprecated)"); add_srs_wkt (p, 1, "\",GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_"); add_srs_wkt (p, 2, "Institut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,29"); add_srs_wkt (p, 3, "9.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203"); add_srs_wkt (p, 4, ",480,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Fer"); add_srs_wkt (p, 5, "ro\",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UN"); add_srs_wkt (p, 6, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 7, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 8, ",AUTHORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 9, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",31],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31"); add_srs_wkt (p, 14, "292\"]]"); p = add_epsg_def_ex (filter, first, last, 31293, "epsg", 31293, "MGI (Ferro) / Austria East Zone (deprecated)", 0, 0, "Bessel 1841", "Ferro", "Militar_Geographische_Institut_Ferro", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=0 +ellps"); add_proj4text (p, 1, "=bessel +towgs84=682,-203,480,0,0,0,0 +pm=ferro +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI (Ferro) / Austria East Zone (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Ins"); add_srs_wkt (p, 2, "titut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1"); add_srs_wkt (p, 3, "528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,48"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\""); add_srs_wkt (p, 5, ",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4805\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 10, "ntral_meridian\",34],PARAMETER[\"scale_factor\",1],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",0],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 12, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31293\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 31294, "epsg", 31294, "MGI / M28 (deprecated)", 0, 0, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "150000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463."); add_proj4text (p, 2, "919,5.137,1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / M28 (deprecated)\",GEOGCS[\"MGI\",DATUM[\""); add_srs_wkt (p, 1, "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); add_srs_wkt (p, 2, "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); add_srs_wkt (p, 3, ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"431"); add_srs_wkt (p, 8, "2\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",0],PARAMETER[\"central_meridian\",10."); add_srs_wkt (p, 10, "33333333333333],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",150000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 12, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31294\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 31295, "epsg", 31295, "MGI / M31 (deprecated)", 0, 0, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "450000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463."); add_proj4text (p, 2, "919,5.137,1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / M31 (deprecated)\",GEOGCS[\"MGI\",DATUM[\""); add_srs_wkt (p, 1, "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); add_srs_wkt (p, 2, "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); add_srs_wkt (p, 3, ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"431"); add_srs_wkt (p, 8, "2\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",0],PARAMETER[\"central_meridian\",13."); add_srs_wkt (p, 10, "33333333333333],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",450000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 12, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31295\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 31296, "epsg", 31296, "MGI / M34 (deprecated)", 0, 0, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "750000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463."); add_proj4text (p, 2, "919,5.137,1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / M34 (deprecated)\",GEOGCS[\"MGI\",DATUM[\""); add_srs_wkt (p, 1, "Militar_Geographische_Institute\",SPHEROID[\"Bessel 1841"); add_srs_wkt (p, 2, "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); add_srs_wkt (p, 3, ",TOWGS84[577.326,90.129,463.919,5.137,1.474,5.297,2.4232"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"431"); add_srs_wkt (p, 8, "2\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",0],PARAMETER[\"central_meridian\",16."); add_srs_wkt (p, 10, "33333333333333],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",750000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 12, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31296\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 31297, "epsg", 31297, "MGI / Austria Lambert (deprecated)", 0, 0, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.3333"); add_proj4text (p, 1, "3333333333 +x_0=400000 +y_0=400000 +ellps=bessel +towgs8"); add_proj4text (p, 2, "4=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units"); add_proj4text (p, 3, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Austria Lambert (deprecated)\",GEOGCS[\"M"); add_srs_wkt (p, 1, "GI\",DATUM[\"Militar_Geographische_Institute\",SPHEROID["); add_srs_wkt (p, 2, "\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474"); add_srs_wkt (p, 4, ",5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4312\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 9, "P\"],PARAMETER[\"standard_parallel_1\",49],PARAMETER[\"s"); add_srs_wkt (p, 10, "tandard_parallel_2\",46],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",47.5],PARAMETER[\"central_meridian\",13.33333333333333]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_easting\",400000],PARAMETER[\"false_n"); add_srs_wkt (p, 13, "orthing\",400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"31297\"]]"); p = add_epsg_def_ex (filter, first, last, 31300, "epsg", 31300, "Belge 1972 / Belge Lambert 72", 0, 0, "International 1924", "Greenwich", "Reseau_National_Belge_1972", "Lambert_Conformal_Conic_2SP_Belgium", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666"); add_proj4text (p, 1, "666 +lat_0=90 +lon_0=4.356939722222222 +x_0=150000.01256"); add_proj4text (p, 2, " +y_0=5400088.4378 +ellps=intl +towgs84=-106.8686,52.297"); add_proj4text (p, 3, "8,-103.7239,0.3366,-0.457,1.8422,-1.2747 +units=m +no_de"); add_proj4text (p, 4, "fs"); add_srs_wkt (p, 0, "PROJCS[\"Belge 1972 / Belge Lambert 72\",GEOGCS[\"Belge "); add_srs_wkt (p, 1, "1972\",DATUM[\"Reseau_National_Belge_1972\",SPHEROID[\"I"); add_srs_wkt (p, 2, "nternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "2\"]],TOWGS84[-106.8686,52.2978,-103.7239,0.3366,-0.457,"); add_srs_wkt (p, 4, "1.8422,-1.2747],AUTHORITY[\"EPSG\",\"6313\"]],PRIMEM[\"G"); add_srs_wkt (p, 5, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 6, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 7, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 8, "\"EPSG\",\"4313\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 9, "_2SP_Belgium\"],PARAMETER[\"standard_parallel_1\",49.833"); add_srs_wkt (p, 10, "33333333334],PARAMETER[\"standard_parallel_2\",51.166666"); add_srs_wkt (p, 11, "66666666],PARAMETER[\"latitude_of_origin\",90],PARAMETER"); add_srs_wkt (p, 12, "[\"central_meridian\",4.356939722222222],PARAMETER[\"fal"); add_srs_wkt (p, 13, "se_easting\",150000.01256],PARAMETER[\"false_northing\","); add_srs_wkt (p, 14, "5400088.4378],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 15, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 16, "\",\"31300\"]]"); p = add_epsg_def_ex (filter, first, last, 31370, "epsg", 31370, "Belge 1972 / Belgian Lambert 72", 0, 0, "International 1924", "Greenwich", "Reseau_National_Belge_1972", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=51.16666723333333 +lat_2=49.8333339 +la"); add_proj4text (p, 1, "t_0=90 +lon_0=4.367486666666666 +x_0=150000.013 +y_0=540"); add_proj4text (p, 2, "0088.438 +ellps=intl +towgs84=-106.8686,52.2978,-103.723"); add_proj4text (p, 3, "9,0.3366,-0.457,1.8422,-1.2747 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Belge 1972 / Belgian Lambert 72\",GEOGCS[\"Belg"); add_srs_wkt (p, 1, "e 1972\",DATUM[\"Reseau_National_Belge_1972\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[-106.8686,52.2978,-103.7239,0.3366,-0.457"); add_srs_wkt (p, 4, ",1.8422,-1.2747],AUTHORITY[\"EPSG\",\"6313\"]],PRIMEM[\""); add_srs_wkt (p, 5, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 6, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 7, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 8, "[\"EPSG\",\"4313\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 9, "c_2SP\"],PARAMETER[\"standard_parallel_1\",51.1666672333"); add_srs_wkt (p, 10, "3333],PARAMETER[\"standard_parallel_2\",49.8333339],PARA"); add_srs_wkt (p, 11, "METER[\"latitude_of_origin\",90],PARAMETER[\"central_mer"); add_srs_wkt (p, 12, "idian\",4.367486666666666],PARAMETER[\"false_easting\",1"); add_srs_wkt (p, 13, "50000.013],PARAMETER[\"false_northing\",5400088.438],UNI"); add_srs_wkt (p, 14, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 15, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31370\"]]"); p = add_epsg_def_ex (filter, first, last, 31461, "epsg", 31461, "DHDN / 3-degree Gauss zone 1 (deprecated)", 0, 0, "Bessel 1841", "Greenwich", "Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=3 +k=1 +x_0=1500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +towgs84=598.1,73.7,418.2,0.202,0.045,-2.45"); add_proj4text (p, 2, "5,6.7 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss zone 1 (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",1500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31461\"]]"); p = add_epsg_def_ex (filter, first, last, 31462, "epsg", 31462, "DHDN / 3-degree Gauss zone 2 (deprecated)", 0, 0, "Bessel 1841", "Greenwich", "Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +towgs84=598.1,73.7,418.2,0.202,0.045,-2.45"); add_proj4text (p, 2, "5,6.7 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss zone 2 (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",6],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",2500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31462\"]]"); p = add_epsg_def_ex (filter, first, last, 31463, "epsg", 31463, "DHDN / 3-degree Gauss zone 3 (deprecated)", 0, 0, "Bessel 1841", "Greenwich", "Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +towgs84=598.1,73.7,418.2,0.202,0.045,-2.45"); add_proj4text (p, 2, "5,6.7 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss zone 3 (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",3500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31463\"]]"); p = add_epsg_def_ex (filter, first, last, 31464, "epsg", 31464, "DHDN / 3-degree Gauss zone 4 (deprecated)", 0, 0, "Bessel 1841", "Greenwich", "Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=598.1,73.7,418.2,0.202,0.045,-2.4"); add_proj4text (p, 2, "55,6.7 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss zone 4 (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",12],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",4500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31464\"]]"); p = add_epsg_def_ex (filter, first, last, 31465, "epsg", 31465, "DHDN / 3-degree Gauss zone 5 (deprecated)", 0, 0, "Bessel 1841", "Greenwich", "Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=598.1,73.7,418.2,0.202,0.045,-2.4"); add_proj4text (p, 2, "55,6.7 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss zone 5 (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",5500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31465\"]]"); p = add_epsg_def_ex (filter, first, last, 31466, "epsg", 31466, "DHDN / 3-degree Gauss-Kruger zone 2", 0, 1, "Bessel 1841", "Greenwich", "Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +towgs84=598.1,73.7,418.2,0.202,0.045,-2.45"); add_proj4text (p, 2, "5,6.7 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 2\",GEOGCS[\""); add_srs_wkt (p, 1, "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,"); add_srs_wkt (p, 4, "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",6"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",2500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 13, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31466\"]]"); p = add_epsg_def_ex (filter, first, last, 31467, "epsg", 31467, "DHDN / 3-degree Gauss-Kruger zone 3", 0, 1, "Bessel 1841", "Greenwich", "Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +towgs84=598.1,73.7,418.2,0.202,0.045,-2.45"); add_proj4text (p, 2, "5,6.7 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 3\",GEOGCS[\""); add_srs_wkt (p, 1, "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,"); add_srs_wkt (p, 4, "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",3500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 13, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31467\"]]"); p = add_epsg_def_ex (filter, first, last, 31468, "epsg", 31468, "DHDN / 3-degree Gauss-Kruger zone 4", 0, 1, "Bessel 1841", "Greenwich", "Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=598.1,73.7,418.2,0.202,0.045,-2.4"); add_proj4text (p, 2, "55,6.7 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 4\",GEOGCS[\""); add_srs_wkt (p, 1, "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,"); add_srs_wkt (p, 4, "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 10, "2],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",4500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 13, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31468\"]]"); p = add_epsg_def_ex (filter, first, last, 31469, "epsg", 31469, "DHDN / 3-degree Gauss-Kruger zone 5", 0, 1, "Bessel 1841", "Greenwich", "Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=598.1,73.7,418.2,0.202,0.045,-2.4"); add_proj4text (p, 2, "55,6.7 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 5\",GEOGCS[\""); add_srs_wkt (p, 1, "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,"); add_srs_wkt (p, 4, "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 10, "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",5500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 13, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31469\"]]"); p = add_epsg_def_ex (filter, first, last, 31491, "epsg", 31491, "Germany_Zone_1", 0, 0, "Bessel_1841", "Greenwich", "D_Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "Meter", "unknown", "unknown", "unknown", "unknown"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=3 +k=1 +x_0=1500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Germany_Zone_1\",GEOGCS[\"GCS_Deutsches_Hauptdr"); add_srs_wkt (p, 1, "eiecksnetz\",DATUM[\"D_Deutsches_Hauptdreiecksnetz\",SPH"); add_srs_wkt (p, 2, "EROID[\"Bessel_1841\",6377397.155,299.1528128]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PR"); add_srs_wkt (p, 4, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"False_East"); add_srs_wkt (p, 5, "ing\",1500000.0],PARAMETER[\"False_Northing\",0.0],PARAM"); add_srs_wkt (p, 6, "ETER[\"Central_Meridian\",3.0],PARAMETER[\"Scale_Factor\""); add_srs_wkt (p, 7, ",1.0],PARAMETER[\"Latitude_Of_Origin\",0.0],UNIT[\"Meter"); add_srs_wkt (p, 8, "\",1.0],AUTHORITY[\"EPSG\",\"31491\"]]"); p = add_epsg_def_ex (filter, first, last, 31492, "epsg", 31492, "Germany_Zone_2", 0, 0, "Bessel_1841", "Greenwich", "D_Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "Meter", "unknown", "unknown", "unknown", "unknown"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Germany_Zone_2\",GEOGCS[\"GCS_Deutsches_Hauptdr"); add_srs_wkt (p, 1, "eiecksnetz\",DATUM[\"D_Deutsches_Hauptdreiecksnetz\",SPH"); add_srs_wkt (p, 2, "EROID[\"Bessel_1841\",6377397.155,299.1528128]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PR"); add_srs_wkt (p, 4, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"False_East"); add_srs_wkt (p, 5, "ing\",2500000.0],PARAMETER[\"False_Northing\",0.0],PARAM"); add_srs_wkt (p, 6, "ETER[\"Central_Meridian\",6.0],PARAMETER[\"Scale_Factor\""); add_srs_wkt (p, 7, ",1.0],PARAMETER[\"Latitude_Of_Origin\",0.0],UNIT[\"Meter"); add_srs_wkt (p, 8, "\",1.0],AUTHORITY[\"EPSG\",\"31492\"]]"); p = add_epsg_def_ex (filter, first, last, 31493, "epsg", 31493, "Germany_Zone_3", 0, 0, "Bessel_1841", "Greenwich", "D_Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "Meter", "unknown", "unknown", "unknown", "unknown"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Germany_Zone_3\",GEOGCS[\"GCS_Deutsches_Hauptdr"); add_srs_wkt (p, 1, "eiecksnetz\",DATUM[\"D_Deutsches_Hauptdreiecksnetz\",SPH"); add_srs_wkt (p, 2, "EROID[\"Bessel_1841\",6377397.155,299.1528128]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PR"); add_srs_wkt (p, 4, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"False_East"); add_srs_wkt (p, 5, "ing\",3500000.0],PARAMETER[\"False_Northing\",0.0],PARAM"); add_srs_wkt (p, 6, "ETER[\"Central_Meridian\",9.0],PARAMETER[\"Scale_Factor\""); add_srs_wkt (p, 7, ",1.0],PARAMETER[\"Latitude_Of_Origin\",0.0],UNIT[\"Meter"); add_srs_wkt (p, 8, "\",1.0],AUTHORITY[\"EPSG\",\"31493\"]]"); p = add_epsg_def_ex (filter, first, last, 31494, "epsg", 31494, "Germany_Zone_4", 0, 0, "Bessel_1841", "Greenwich", "D_Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "Meter", "unknown", "unknown", "unknown", "unknown"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Germany_Zone_4\",GEOGCS[\"GCS_Deutsches_Hauptdr"); add_srs_wkt (p, 1, "eiecksnetz\",DATUM[\"D_Deutsches_Hauptdreiecksnetz\",SPH"); add_srs_wkt (p, 2, "EROID[\"Bessel_1841\",6377397.155,299.1528128]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PR"); add_srs_wkt (p, 4, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"False_East"); add_srs_wkt (p, 5, "ing\",4500000.0],PARAMETER[\"False_Northing\",0.0],PARAM"); add_srs_wkt (p, 6, "ETER[\"Central_Meridian\",12.0],PARAMETER[\"Scale_Factor"); add_srs_wkt (p, 7, "\",1.0],PARAMETER[\"Latitude_Of_Origin\",0.0],UNIT[\"Met"); add_srs_wkt (p, 8, "er\",1.0],AUTHORITY[\"EPSG\",\"31494\"]]"); p = add_epsg_def_ex (filter, first, last, 31495, "epsg", 31495, "Germany_Zone_5", 0, 0, "Bessel_1841", "Greenwich", "D_Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "Meter", "unknown", "unknown", "unknown", "unknown"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Germany_Zone_5\",GEOGCS[\"GCS_Deutsches_Hauptdr"); add_srs_wkt (p, 1, "eiecksnetz\",DATUM[\"D_Deutsches_Hauptdreiecksnetz\",SPH"); add_srs_wkt (p, 2, "EROID[\"Bessel_1841\",6377397.155,299.1528128]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PR"); add_srs_wkt (p, 4, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"False_East"); add_srs_wkt (p, 5, "ing\",5500000.0],PARAMETER[\"False_Northing\",0.0],PARAM"); add_srs_wkt (p, 6, "ETER[\"Central_Meridian\",15.0],PARAMETER[\"Scale_Factor"); add_srs_wkt (p, 7, "\",1.0],PARAMETER[\"Latitude_Of_Origin\",0.0],UNIT[\"Met"); add_srs_wkt (p, 8, "er\",1.0],AUTHORITY[\"EPSG\",\"31495\"]]"); p = add_epsg_def_ex (filter, first, last, 31528, "epsg", 31528, "Conakry 1905 / UTM zone 28N", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Conakry_1905", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,"); add_proj4text (p, 1, "259,-9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Conakry 1905 / UTM zone 28N\",GEOGCS[\"Conakry "); add_srs_wkt (p, 1, "1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Clarke 1880 (IG"); add_srs_wkt (p, 2, "N)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "11\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6315\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4315\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"31528\"]]"); p = add_epsg_def_ex (filter, first, last, 31529, "epsg", 31529, "Conakry 1905 / UTM zone 29N", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Conakry_1905", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,"); add_proj4text (p, 1, "259,-9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Conakry 1905 / UTM zone 29N\",GEOGCS[\"Conakry "); add_srs_wkt (p, 1, "1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Clarke 1880 (IG"); add_srs_wkt (p, 2, "N)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "11\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6315\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4315\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"31529\"]]"); p = add_epsg_def_ex (filter, first, last, 31600, "epsg", 31600, "Dealul Piscului 1930 / Stereo 33", 0, 0, "International 1924", "Greenwich", "Dealul_Piscului_1930", "Oblique_Stereographic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=sterea +lat_0=45.9 +lon_0=25.39246588888889 +k=0.9"); add_proj4text (p, 1, "996667 +x_0=500000 +y_0=500000 +ellps=intl +towgs84=103."); add_proj4text (p, 2, "25,-100.4,-307.19,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Dealul Piscului 1930 / Stereo 33\",GEOGCS[\"Dea"); add_srs_wkt (p, 1, "lul Piscului 1930\",DATUM[\"Dealul_Piscului_1930\",SPHER"); add_srs_wkt (p, 2, "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7022\"]],TOWGS84[103.25,-100.4,-307.19,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6316\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4316\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",45.9],PARAMETER[\"central_meridian\",25.39"); add_srs_wkt (p, 10, "246588888889],PARAMETER[\"scale_factor\",0.9996667],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"31600\"]]"); p = add_epsg_def_ex (filter, first, last, 31700, "epsg", 31700, "Dealul Piscului 1970/ Stereo 70 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Dealul_Piscului_1970", "Oblique_Stereographic", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 "); add_proj4text (p, 1, "+y_0=500000 +ellps=krass +towgs84=28,-121,-77,0,0,0,0 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Dealul Piscului 1970/ Stereo 70 (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Dealul Piscului 1970\",DATUM[\"Dealul_Piscului_"); add_srs_wkt (p, 2, "1970\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7024\"]],TOWGS84[28,-121,-77,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6317\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4317\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",46],PARAMETER[\"central_meridian\",25],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",0.99975],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",500000],PARAMETER[\"false_northing\",500000],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); add_srs_wkt (p, 13, "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"31700\"]]"); p = add_epsg_def_ex (filter, first, last, 31838, "epsg", 31838, "NGN / UTM zone 38N", 0, 0, "WGS 84", "Greenwich", "National_Geodetic_Network", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGN / UTM zone 38N\",GEOGCS[\"NGN\",DATUM[\"Nat"); add_srs_wkt (p, 1, "ional_Geodetic_Network\",SPHEROID[\"WGS 84\",6378137,298"); add_srs_wkt (p, 2, ".257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[-3.2,-5"); add_srs_wkt (p, 3, ".7,2.8,0,0,0,0],AUTHORITY[\"EPSG\",\"6318\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4318\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",45],PARAMETER[\"scale_factor\",0.9996],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"31838\"]]"); p = add_epsg_def_ex (filter, first, last, 31839, "epsg", 31839, "NGN / UTM zone 39N", 0, 0, "WGS 84", "Greenwich", "National_Geodetic_Network", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGN / UTM zone 39N\",GEOGCS[\"NGN\",DATUM[\"Nat"); add_srs_wkt (p, 1, "ional_Geodetic_Network\",SPHEROID[\"WGS 84\",6378137,298"); add_srs_wkt (p, 2, ".257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[-3.2,-5"); add_srs_wkt (p, 3, ".7,2.8,0,0,0,0],AUTHORITY[\"EPSG\",\"6318\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4318\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",51],PARAMETER[\"scale_factor\",0.9996],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"31839\"]]"); p = add_epsg_def_ex (filter, first, last, 31900, "epsg", 31900, "KUDAMS / KTM (deprecated)", 0, 0, "GRS 1980", "Greenwich", "Kuwait_Utility", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=48 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +towgs84=-20.8,11.3,2.4,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"KUDAMS / KTM (deprecated)\",GEOGCS[\"KUDAMS\",D"); add_srs_wkt (p, 1, "ATUM[\"Kuwait_Utility\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 2, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[-20.8,"); add_srs_wkt (p, 3, "11.3,2.4,0,0,0,0],AUTHORITY[\"EPSG\",\"6319\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4319\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",48],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"31900\"]]"); p = add_epsg_def_ex (filter, first, last, 31901, "epsg", 31901, "KUDAMS / KTM", 0, 0, "GRS 1980", "Greenwich", "Kuwait_Utility", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=-20.8,11.3,2.4,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"KUDAMS / KTM\",GEOGCS[\"KUDAMS\",DATUM[\"Kuwait"); add_srs_wkt (p, 1, "_Utility\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[-20.8,11.3,2.4,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6319\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4319\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",4"); add_srs_wkt (p, 9, "8],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"31901\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 31965, "epsg", 31965, "SIRGAS 2000 / UTM zone 11N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 11N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-117"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"319"); add_srs_wkt (p, 14, "65\"]]"); p = add_epsg_def_ex (filter, first, last, 31966, "epsg", 31966, "SIRGAS 2000 / UTM zone 12N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 12N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-111"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"319"); add_srs_wkt (p, 14, "66\"]]"); p = add_epsg_def_ex (filter, first, last, 31967, "epsg", 31967, "SIRGAS 2000 / UTM zone 13N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 13N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-105"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"319"); add_srs_wkt (p, 14, "67\"]]"); p = add_epsg_def_ex (filter, first, last, 31968, "epsg", 31968, "SIRGAS 2000 / UTM zone 14N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 14N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-99]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3196"); add_srs_wkt (p, 14, "8\"]]"); p = add_epsg_def_ex (filter, first, last, 31969, "epsg", 31969, "SIRGAS 2000 / UTM zone 15N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 15N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-93]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3196"); add_srs_wkt (p, 14, "9\"]]"); p = add_epsg_def_ex (filter, first, last, 31970, "epsg", 31970, "SIRGAS 2000 / UTM zone 16N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 16N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-87]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3197"); add_srs_wkt (p, 14, "0\"]]"); p = add_epsg_def_ex (filter, first, last, 31971, "epsg", 31971, "SIRGAS 2000 / UTM zone 17N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 17N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-81]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3197"); add_srs_wkt (p, 14, "1\"]]"); p = add_epsg_def_ex (filter, first, last, 31972, "epsg", 31972, "SIRGAS 2000 / UTM zone 18N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 18N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-75]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3197"); add_srs_wkt (p, 14, "2\"]]"); p = add_epsg_def_ex (filter, first, last, 31973, "epsg", 31973, "SIRGAS 2000 / UTM zone 19N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 19N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-69]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3197"); add_srs_wkt (p, 14, "3\"]]"); p = add_epsg_def_ex (filter, first, last, 31974, "epsg", 31974, "SIRGAS 2000 / UTM zone 20N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 20N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-63]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3197"); add_srs_wkt (p, 14, "4\"]]"); p = add_epsg_def_ex (filter, first, last, 31975, "epsg", 31975, "SIRGAS 2000 / UTM zone 21N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 21N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-57]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3197"); add_srs_wkt (p, 14, "5\"]]"); p = add_epsg_def_ex (filter, first, last, 31976, "epsg", 31976, "SIRGAS 2000 / UTM zone 22N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 22N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-51]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3197"); add_srs_wkt (p, 14, "6\"]]"); p = add_epsg_def_ex (filter, first, last, 31977, "epsg", 31977, "SIRGAS 2000 / UTM zone 17S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 17S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-81]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 13, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"31977\"]]"); p = add_epsg_def_ex (filter, first, last, 31978, "epsg", 31978, "SIRGAS 2000 / UTM zone 18S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 18S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-75]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 13, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"31978\"]]"); p = add_epsg_def_ex (filter, first, last, 31979, "epsg", 31979, "SIRGAS 2000 / UTM zone 19S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 19S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-69]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 13, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"31979\"]]"); p = add_epsg_def_ex (filter, first, last, 31980, "epsg", 31980, "SIRGAS 2000 / UTM zone 20S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 20S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-63]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 13, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"31980\"]]"); p = add_epsg_def_ex (filter, first, last, 31981, "epsg", 31981, "SIRGAS 2000 / UTM zone 21S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 21S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-57]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 13, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"31981\"]]"); p = add_epsg_def_ex (filter, first, last, 31982, "epsg", 31982, "SIRGAS 2000 / UTM zone 22S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 22S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-51]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 13, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"31982\"]]"); p = add_epsg_def_ex (filter, first, last, 31983, "epsg", 31983, "SIRGAS 2000 / UTM zone 23S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 23S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-45]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 13, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"31983\"]]"); p = add_epsg_def_ex (filter, first, last, 31984, "epsg", 31984, "SIRGAS 2000 / UTM zone 24S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 24S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-39]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 13, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"31984\"]]"); p = add_epsg_def_ex (filter, first, last, 31985, "epsg", 31985, "SIRGAS 2000 / UTM zone 25S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 25S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-33]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 13, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"31985\"]]"); p = add_epsg_def_ex (filter, first, last, 31986, "epsg", 31986, "SIRGAS 1995 / UTM zone 17N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 17N\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "70\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-8"); add_srs_wkt (p, 10, "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"319"); add_srs_wkt (p, 14, "86\"]]"); p = add_epsg_def_ex (filter, first, last, 31987, "epsg", 31987, "SIRGAS 1995 / UTM zone 18N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 18N\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "70\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-7"); add_srs_wkt (p, 10, "5],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"319"); add_srs_wkt (p, 14, "87\"]]"); p = add_epsg_def_ex (filter, first, last, 31988, "epsg", 31988, "SIRGAS 1995 / UTM zone 19N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 19N\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "70\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-6"); add_srs_wkt (p, 10, "9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"319"); add_srs_wkt (p, 14, "88\"]]"); p = add_epsg_def_ex (filter, first, last, 31989, "epsg", 31989, "SIRGAS 1995 / UTM zone 20N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 20N\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "70\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-6"); add_srs_wkt (p, 10, "3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"319"); add_srs_wkt (p, 14, "89\"]]"); p = add_epsg_def_ex (filter, first, last, 31990, "epsg", 31990, "SIRGAS 1995 / UTM zone 21N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 21N\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "70\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-5"); add_srs_wkt (p, 10, "7],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"319"); add_srs_wkt (p, 14, "90\"]]"); p = add_epsg_def_ex (filter, first, last, 31991, "epsg", 31991, "SIRGAS 1995 / UTM zone 22N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 22N\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "70\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-5"); add_srs_wkt (p, 10, "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"319"); add_srs_wkt (p, 14, "91\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_43.c��������������������������������������������������0000664�0001750�0001750�00000556127�12544707704�017056� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_43 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 31992, "epsg", 31992, "SIRGAS 1995 / UTM zone 17S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 17S\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "70\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-8"); add_srs_wkt (p, 10, "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"31992\"]]"); p = add_epsg_def_ex (filter, first, last, 31993, "epsg", 31993, "SIRGAS 1995 / UTM zone 18S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 18S\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "70\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-7"); add_srs_wkt (p, 10, "5],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"31993\"]]"); p = add_epsg_def_ex (filter, first, last, 31994, "epsg", 31994, "SIRGAS 1995 / UTM zone 19S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 19S\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "70\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-6"); add_srs_wkt (p, 10, "9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"31994\"]]"); p = add_epsg_def_ex (filter, first, last, 31995, "epsg", 31995, "SIRGAS 1995 / UTM zone 20S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 20S\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "70\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-6"); add_srs_wkt (p, 10, "3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"31995\"]]"); p = add_epsg_def_ex (filter, first, last, 31996, "epsg", 31996, "SIRGAS 1995 / UTM zone 21S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 21S\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "70\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-5"); add_srs_wkt (p, 10, "7],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"31996\"]]"); p = add_epsg_def_ex (filter, first, last, 31997, "epsg", 31997, "SIRGAS 1995 / UTM zone 22S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 22S\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "70\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-5"); add_srs_wkt (p, 10, "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"31997\"]]"); p = add_epsg_def_ex (filter, first, last, 31998, "epsg", 31998, "SIRGAS 1995 / UTM zone 23S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 23S\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "70\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-4"); add_srs_wkt (p, 10, "5],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"31998\"]]"); p = add_epsg_def_ex (filter, first, last, 31999, "epsg", 31999, "SIRGAS 1995 / UTM zone 24S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 24S\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "70\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-3"); add_srs_wkt (p, 10, "9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"31999\"]]"); p = add_epsg_def_ex (filter, first, last, 32000, "epsg", 32000, "SIRGAS 1995 / UTM zone 25S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 1995 / UTM zone 25S\",GEOGCS[\"SIRGAS 19"); add_srs_wkt (p, 1, "95\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_Amer"); add_srs_wkt (p, 2, "ica_del_Sur_1995\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6170\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "70\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-3"); add_srs_wkt (p, 10, "3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"32000\"]]"); p = add_epsg_def_ex (filter, first, last, 32001, "epsg", 32001, "NAD27 / Montana North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.71666666666667 +lat_2=47.85 +lat_0=4"); add_proj4text (p, 1, "7 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD"); add_proj4text (p, 2, "27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Montana North\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_1\",48.71666666666667],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_2\",47.85],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 10, "rigin\",47],PARAMETER[\"central_meridian\",-109.5],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",2000000],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"32001\"]]"); p = add_epsg_def_ex (filter, first, last, 32002, "epsg", 32002, "NAD27 / Montana Central", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.88333333333333 +lat_2=46.45 +lat_0=4"); add_proj4text (p, 1, "5.83333333333334 +lon_0=-109.5 +x_0=609601.2192024384 +y"); add_proj4text (p, 2, "_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Montana Central\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "67\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",47.88333333333333],PARAMETE"); add_srs_wkt (p, 9, "R[\"standard_parallel_2\",46.45],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",45.83333333333334],PARAMETER[\"central_meridia"); add_srs_wkt (p, 11, "n\",-109.5],PARAMETER[\"false_easting\",2000000],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_northing\",0],UNIT[\"US survey foot\",0.30480"); add_srs_wkt (p, 13, "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 14, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32002\"]]"); p = add_epsg_def_ex (filter, first, last, 32003, "epsg", 32003, "NAD27 / Montana South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.4 +lat_2=44.86666666666667 +lat_0=44"); add_proj4text (p, 1, " +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD2"); add_proj4text (p, 2, "7 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Montana South\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_1\",46.4],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_2\",44.86666666666667],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 10, "igin\",44],PARAMETER[\"central_meridian\",-109.5],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",2000000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"32003\"]]"); p = add_epsg_def_ex (filter, first, last, 32005, "epsg", 32005, "NAD27 / Nebraska North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.85 +lat_2=42.81666666666667 +lat_0=4"); add_proj4text (p, 1, "1.33333333333334 +lon_0=-100 +x_0=609601.2192024384 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Nebraska North\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",41.85],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",42.81666666666667],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, "origin\",41.33333333333334],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-100],PARAMETER[\"false_easting\",2000000],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 13, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 14, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32005\"]]"); p = add_epsg_def_ex (filter, first, last, 32006, "epsg", 32006, "NAD27 / Nebraska South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.28333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, "667 +lat_0=39.66666666666666 +lon_0=-99.5 +x_0=609601.21"); add_proj4text (p, 2, "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Nebraska South\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",40.28333333333333],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",41.71666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",39.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-99.5],PARAMETER[\"false_easting\",200000"); add_srs_wkt (p, 12, "0],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot"); add_srs_wkt (p, 13, "\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS"); add_srs_wkt (p, 14, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3200"); add_srs_wkt (p, 15, "6\"]]"); p = add_epsg_def_ex (filter, first, last, 32007, "epsg", 32007, "NAD27 / Nevada East", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Nevada East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",34.75],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 9, "15.5833333333333],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"32007\"]]"); p = add_epsg_def_ex (filter, first, last, 32008, "epsg", 32008, "NAD27 / Nevada Central", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, "9999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Nevada Central\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",34.75],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-116.6666666666667],PARAMETER[\"scale_factor\",0.9999],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"32008\"]]"); p = add_epsg_def_ex (filter, first, last, 32009, "epsg", 32009, "NAD27 / Nevada West", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Nevada West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",34.75],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 9, "18.5833333333333],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"32009\"]]"); p = add_epsg_def_ex (filter, first, last, 32010, "epsg", 32010, "NAD27 / New Hampshire", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New Hampshire\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",42.5],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "71.66666666666667],PARAMETER[\"scale_factor\",0.99996666"); add_srs_wkt (p, 10, "7],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 12, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"32010\"]]"); p = add_epsg_def_ex (filter, first, last, 32011, "epsg", 32011, "NAD27 / New Jersey", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.66666666"); add_proj4text (p, 1, "666667 +k=0.9999749999999999 +x_0=609601.2192024384 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New Jersey\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 8, "de_of_origin\",38.83333333333334],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-74.66666666666667],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.999975],PARAMETER[\"false_easting\",2000000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"US survey foot\",0.3048006"); add_srs_wkt (p, 12, "096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32011\"]]"); p = add_epsg_def_ex (filter, first, last, 32012, "epsg", 32012, "NAD27 / New Mexico East", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); add_proj4text (p, 1, "909091 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); add_proj4text (p, 2, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New Mexico East\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "67\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",31],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "104.3333333333333],PARAMETER[\"scale_factor\",0.99990909"); add_srs_wkt (p, 10, "1],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 12, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"32012\"]]"); p = add_epsg_def_ex (filter, first, last, 32013, "epsg", 32013, "NAD27 / New Mexico Central", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=1524"); add_proj4text (p, 1, "00.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New Mexico Central\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",31],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "-106.25],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"32013\"]]"); p = add_epsg_def_ex (filter, first, last, 32014, "epsg", 32014, "NAD27 / New Mexico West", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); add_proj4text (p, 1, "916667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); add_proj4text (p, 2, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New Mexico West\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "67\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",31],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "107.8333333333333],PARAMETER[\"scale_factor\",0.99991666"); add_srs_wkt (p, 10, "7],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 12, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"32014\"]]"); p = add_epsg_def_ex (filter, first, last, 32015, "epsg", 32015, "NAD27 / New York East", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-74.33333333333333 +k=0.999"); add_proj4text (p, 1, "966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); add_proj4text (p, 2, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New York East\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",40],PARAMETER[\"central_meridian\",-74"); add_srs_wkt (p, 9, ".33333333333333],PARAMETER[\"scale_factor\",0.999966667]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"32015\"]]"); p = add_epsg_def_ex (filter, first, last, 32016, "epsg", 32016, "NAD27 / New York Central", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New York Central\",GEOGCS[\"NAD27\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "67\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",40],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "76.58333333333333],PARAMETER[\"scale_factor\",0.9999375]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"32016\"]]"); p = add_epsg_def_ex (filter, first, last, 32017, "epsg", 32017, "NAD27 / New York West", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New York West\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",40],PARAMETER[\"central_meridian\",-78"); add_srs_wkt (p, 9, ".58333333333333],PARAMETER[\"scale_factor\",0.9999375],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"32017\"]]"); p = add_epsg_def_ex (filter, first, last, 32018, "epsg", 32018, "NAD27 / New York Long Island (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, "666 +lat_0=40.5 +lon_0=-74 +x_0=304800.6096012192 +y_0=0"); add_proj4text (p, 2, " +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New York Long Island (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHERO"); add_srs_wkt (p, 2, "ID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_"); add_srs_wkt (p, 8, "Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.033333"); add_srs_wkt (p, 9, "33333333],PARAMETER[\"standard_parallel_2\",40.666666666"); add_srs_wkt (p, 10, "66666],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-74],PARAMETER[\"false_easting\",10"); add_srs_wkt (p, 12, "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); add_srs_wkt (p, 13, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 14, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "32018\"]]"); p = add_epsg_def_ex (filter, first, last, 32019, "epsg", 32019, "NAD27 / North Carolina", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.33333333333334 +lat_2=36.16666666666"); add_proj4text (p, 1, "666 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / North Carolina\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",34.33333333333334],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",36.16666666666666],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",33.75],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-79],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32019\"]]"); p = add_epsg_def_ex (filter, first, last, 32020, "epsg", 32020, "NAD27 / North Dakota North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.43333333333333 +lat_2=48.73333333333"); add_proj4text (p, 1, "333 +lat_0=47 +lon_0=-100.5 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / North Dakota North\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",47.43333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",48.73333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",47],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-100.5],PARAMETER[\"false_easting\",2000000],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 13, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 14, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32020\"]]"); p = add_epsg_def_ex (filter, first, last, 32021, "epsg", 32021, "NAD27 / North Dakota South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.18333333333333 +lat_2=47.48333333333"); add_proj4text (p, 1, "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=609601.2"); add_proj4text (p, 2, "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / North Dakota South\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",46.18333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",47.48333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",45.66666666666666],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-100.5],PARAMETER[\"false_easting\",20"); add_srs_wkt (p, 12, "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); add_srs_wkt (p, 13, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 14, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "32021\"]]"); p = add_epsg_def_ex (filter, first, last, 32022, "epsg", 32022, "NAD27 / Ohio North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.43333333333333 +lat_2=41.7 +lat_0=39"); add_proj4text (p, 1, ".66666666666666 +lon_0=-82.5 +x_0=609601.2192024384 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Ohio North\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER["); add_srs_wkt (p, 8, "\"standard_parallel_1\",40.43333333333333],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_2\",41.7],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 10, "n\",39.66666666666666],PARAMETER[\"central_meridian\",-8"); add_srs_wkt (p, 11, "2.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 13, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 14, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32022\"]]"); p = add_epsg_def_ex (filter, first, last, 32023, "epsg", 32023, "NAD27 / Ohio South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333"); add_proj4text (p, 1, "333 +lat_0=38 +lon_0=-82.5 +x_0=609601.2192024384 +y_0=0"); add_proj4text (p, 2, " +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Ohio South\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER["); add_srs_wkt (p, 8, "\"standard_parallel_1\",38.73333333333333],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_2\",40.03333333333333],PARAMETER[\"lati"); add_srs_wkt (p, 10, "tude_of_origin\",38],PARAMETER[\"central_meridian\",-82."); add_srs_wkt (p, 11, "5],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 13, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"32023\"]]"); p = add_epsg_def_ex (filter, first, last, 32024, "epsg", 32024, "NAD27 / Oklahoma North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.56666666666667 +lat_2=36.76666666666"); add_proj4text (p, 1, "667 +lat_0=35 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +"); add_proj4text (p, 2, "datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Oklahoma North\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",35.56666666666667],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",36.76666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",35],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, "-98],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 13, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 14, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32024\"]]"); p = add_epsg_def_ex (filter, first, last, 32025, "epsg", 32025, "NAD27 / Oklahoma South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.93333333333333 +lat_2=35.23333333333"); add_proj4text (p, 1, "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=609601.2192"); add_proj4text (p, 2, "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Oklahoma South\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",33.93333333333333],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",35.23333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",33.33333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-98],PARAMETER[\"false_easting\",2000000]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 13, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32025\""); add_srs_wkt (p, 15, "]]"); p = add_epsg_def_ex (filter, first, last, 32026, "epsg", 32026, "NAD27 / Oregon North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.33333333333334 +lat_2=46 +lat_0=43.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Oregon North\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",44.33333333333334],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",46],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 10, "\",43.66666666666666],PARAMETER[\"central_meridian\",-12"); add_srs_wkt (p, 11, "0.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 13, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 14, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32026\"]]"); p = add_epsg_def_ex (filter, first, last, 32027, "epsg", 32027, "NAD27 / Oregon South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.33333333333334 +lat_2=44 +lat_0=41.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Oregon South\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",42.33333333333334],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",44],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 10, "\",41.66666666666666],PARAMETER[\"central_meridian\",-12"); add_srs_wkt (p, 11, "0.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 13, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 14, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32027\"]]"); p = add_epsg_def_ex (filter, first, last, 32028, "epsg", 32028, "NAD27 / Pennsylvania North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.88333333333333 +lat_2=41.95 +lat_0=4"); add_proj4text (p, 1, "0.16666666666666 +lon_0=-77.75 +x_0=609601.2192024384 +y"); add_proj4text (p, 2, "_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Pennsylvania North\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",40.88333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",41.95],PARAMETER[\"latitude_"); add_srs_wkt (p, 10, "of_origin\",40.16666666666666],PARAMETER[\"central_merid"); add_srs_wkt (p, 11, "ian\",-77.75],PARAMETER[\"false_easting\",2000000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 13, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32028\"]]"); p = add_epsg_def_ex (filter, first, last, 32029, "epsg", 32029, "NAD27 / Pennsylvania South (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.93333333333333 +lat_2=40.8 +lat_0=39"); add_proj4text (p, 1, ".33333333333334 +lon_0=-77.75 +x_0=609601.2192024384 +y_"); add_proj4text (p, 2, "0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Pennsylvania South (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID"); add_srs_wkt (p, 2, "[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",39.9333333333"); add_srs_wkt (p, 9, "3333],PARAMETER[\"standard_parallel_2\",40.8],PARAMETER["); add_srs_wkt (p, 10, "\"latitude_of_origin\",39.33333333333334],PARAMETER[\"ce"); add_srs_wkt (p, 11, "ntral_meridian\",-77.75],PARAMETER[\"false_easting\",200"); add_srs_wkt (p, 12, "0000],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); add_srs_wkt (p, 13, "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); add_srs_wkt (p, 14, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 15, "2029\"]]"); p = add_epsg_def_ex (filter, first, last, 32030, "epsg", 32030, "NAD27 / Rhode Island", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); add_proj4text (p, 1, "999938 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); add_proj4text (p, 2, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Rhode Island\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",41.08333333333334],PARAMETER[\"central_m"); add_srs_wkt (p, 9, "eridian\",-71.5],PARAMETER[\"scale_factor\",0.9999938],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"32030\"]]"); p = add_epsg_def_ex (filter, first, last, 32031, "epsg", 32031, "NAD27 / South Carolina North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.76666666666667 +lat_2=34.96666666666"); add_proj4text (p, 1, "667 +lat_0=33 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +"); add_proj4text (p, 2, "datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / South Carolina North\",GEOGCS[\"NAD27\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",33.76666666666667],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",34.96666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",33],PARAMETER[\"central_merid"); add_srs_wkt (p, 11, "ian\",-81],PARAMETER[\"false_easting\",2000000],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 13, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 14, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32031\"]]"); p = add_epsg_def_ex (filter, first, last, 32033, "epsg", 32033, "NAD27 / South Carolina South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.33333333333334 +lat_2=33.66666666666"); add_proj4text (p, 1, "666 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609601.2192"); add_proj4text (p, 2, "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / South Carolina South\",GEOGCS[\"NAD27\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",32.33333333333334],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",33.66666666666666],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",31.83333333333333],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-81],PARAMETER[\"false_easting\",20"); add_srs_wkt (p, 12, "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); add_srs_wkt (p, 13, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 14, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "32033\"]]"); p = add_epsg_def_ex (filter, first, last, 32034, "epsg", 32034, "NAD27 / South Dakota North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.41666666666666 +lat_2=45.68333333333"); add_proj4text (p, 1, "333 +lat_0=43.83333333333334 +lon_0=-100 +x_0=609601.219"); add_proj4text (p, 2, "2024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / South Dakota North\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",44.41666666666666],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",45.68333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",43.83333333333334],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-100],PARAMETER[\"false_easting\",2000"); add_srs_wkt (p, 12, "000],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); add_srs_wkt (p, 13, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 14, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32"); add_srs_wkt (p, 15, "034\"]]"); p = add_epsg_def_ex (filter, first, last, 32035, "epsg", 32035, "NAD27 / South Dakota South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.83333333333334 +lat_2=44.4 +lat_0=42"); add_proj4text (p, 1, ".33333333333334 +lon_0=-100.3333333333333 +x_0=609601.21"); add_proj4text (p, 2, "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / South Dakota South\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",42.83333333333334],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",44.4],PARAMETER[\"latitude_o"); add_srs_wkt (p, 10, "f_origin\",42.33333333333334],PARAMETER[\"central_meridi"); add_srs_wkt (p, 11, "an\",-100.3333333333333],PARAMETER[\"false_easting\",200"); add_srs_wkt (p, 12, "0000],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); add_srs_wkt (p, 13, "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); add_srs_wkt (p, 14, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 15, "2035\"]]"); p = add_epsg_def_ex (filter, first, last, 32036, "epsg", 32036, "NAD27 / Tennessee (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=3"); add_proj4text (p, 1, "4.66666666666666 +lon_0=-86 +x_0=30480.06096012192 +y_0="); add_proj4text (p, 2, "0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Tennessee (deprecated)\",GEOGCS[\"NAD27"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke"); add_srs_wkt (p, 2, " 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",35.25],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",36.41666666666666],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",34.66666666666666],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",-86],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 13, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 14, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32036\"]]"); p = add_epsg_def_ex (filter, first, last, 32037, "epsg", 32037, "NAD27 / Texas North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=3"); add_proj4text (p, 1, "4 +lon_0=-101.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD"); add_proj4text (p, 2, "27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Texas North\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",34.65],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, "allel_2\",36.18333333333333],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",34],PARAMETER[\"central_meridian\",-101.5],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_easting\",2000000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"32037\"]]"); p = add_epsg_def_ex (filter, first, last, 32038, "epsg", 32038, "NAD27 / Texas North Central", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.13333333333333 +lat_2=33.96666666666"); add_proj4text (p, 1, "667 +lat_0=31.66666666666667 +lon_0=-97.5 +x_0=609601.21"); add_proj4text (p, 2, "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Texas North Central\",GEOGCS[\"NAD27\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",32.13333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",33.96666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",31.66666666666667],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-97.5],PARAMETER[\"false_easting\",200"); add_srs_wkt (p, 12, "0000],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); add_srs_wkt (p, 13, "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); add_srs_wkt (p, 14, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 15, "2038\"]]"); p = add_epsg_def_ex (filter, first, last, 32039, "epsg", 32039, "NAD27 / Texas Central", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.11666666666667 +lat_2=31.88333333333"); add_proj4text (p, 1, "333 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); add_proj4text (p, 2, "x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Texas Central\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_1\",30.11666666666667],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_2\",31.88333333333333],PARAMETER[\"l"); add_srs_wkt (p, 10, "atitude_of_origin\",29.66666666666667],PARAMETER[\"centr"); add_srs_wkt (p, 11, "al_meridian\",-100.3333333333333],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"US"); add_srs_wkt (p, 13, " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"32039\"]]"); p = add_epsg_def_ex (filter, first, last, 32040, "epsg", 32040, "NAD27 / Texas South Central", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333"); add_proj4text (p, 1, "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=609601.2192"); add_proj4text (p, 2, "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Texas South Central\",GEOGCS[\"NAD27\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",28.38333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",30.28333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",27.83333333333333],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-99],PARAMETER[\"false_easting\",20000"); add_srs_wkt (p, 12, "00],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 13, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"320"); add_srs_wkt (p, 15, "40\"]]"); p = add_epsg_def_ex (filter, first, last, 32041, "epsg", 32041, "NAD27 / Texas South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=26.16666666666667 +lat_2=27.83333333333"); add_proj4text (p, 1, "333 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=609601.21"); add_proj4text (p, 2, "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Texas South\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",26.16666666666667],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",27.83333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",25.66666666666667],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-98.5],PARAMETER[\"false_easting\",2000000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\","); add_srs_wkt (p, 13, "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32041\""); add_srs_wkt (p, 15, "]]"); p = add_epsg_def_ex (filter, first, last, 32042, "epsg", 32042, "NAD27 / Utah North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.71666666666667 +lat_2=41.78333333333"); add_proj4text (p, 1, "333 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=609601.2"); add_proj4text (p, 2, "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Utah North\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER["); add_srs_wkt (p, 8, "\"standard_parallel_1\",40.71666666666667],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_2\",41.78333333333333],PARAMETER[\"lati"); add_srs_wkt (p, 10, "tude_of_origin\",40.33333333333334],PARAMETER[\"central_"); add_srs_wkt (p, 11, "meridian\",-111.5],PARAMETER[\"false_easting\",2000000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\","); add_srs_wkt (p, 13, "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32042\""); add_srs_wkt (p, 15, "]]"); p = add_epsg_def_ex (filter, first, last, 32043, "epsg", 32043, "NAD27 / Utah Central", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.01666666666667 +lat_2=40.65 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=609601.2192024384 +y"); add_proj4text (p, 2, "_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Utah Central\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",39.01666666666667],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",40.65],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",38.33333333333334],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, "-111.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32043\"]]"); p = add_epsg_def_ex (filter, first, last, 32044, "epsg", 32044, "NAD27 / Utah South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.21666666666667 +lat_2=38.35 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=609601.2192024384 +y"); add_proj4text (p, 2, "_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Utah South\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER["); add_srs_wkt (p, 8, "\"standard_parallel_1\",37.21666666666667],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_2\",38.35],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 10, "in\",36.66666666666666],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 11, "111.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32044\"]]"); p = add_epsg_def_ex (filter, first, last, 32045, "epsg", 32045, "NAD27 / Vermont", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); add_proj4text (p, 1, "=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Vermont\",GEOGCS[\"NAD27\",DATUM[\"Nort"); add_srs_wkt (p, 1, "h_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378206"); add_srs_wkt (p, 2, ".4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 6, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]],P"); add_srs_wkt (p, 7, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 8, "of_origin\",42.5],PARAMETER[\"central_meridian\",-72.5],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.999964286],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 11, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"32045\"]]"); p = add_epsg_def_ex (filter, first, last, 32046, "epsg", 32046, "NAD27 / Virginia North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.03333333333333 +lat_2=39.2 +lat_0=37"); add_proj4text (p, 1, ".66666666666666 +lon_0=-78.5 +x_0=609601.2192024384 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Virginia North\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",38.03333333333333],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",39.2],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 10, "rigin\",37.66666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-78.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32046\"]]"); p = add_epsg_def_ex (filter, first, last, 32047, "epsg", 32047, "NAD27 / Virginia South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.76666666666667 +lat_2=37.96666666666"); add_proj4text (p, 1, "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=609601.21"); add_proj4text (p, 2, "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Virginia South\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",36.76666666666667],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",37.96666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",36.33333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-78.5],PARAMETER[\"false_easting\",200000"); add_srs_wkt (p, 12, "0],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot"); add_srs_wkt (p, 13, "\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS"); add_srs_wkt (p, 14, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3204"); add_srs_wkt (p, 15, "7\"]]"); p = add_epsg_def_ex (filter, first, last, 32048, "epsg", 32048, "NAD27 / Washington North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47"); add_proj4text (p, 1, " +lon_0=-120.8333333333333 +x_0=609601.2192024384 +y_0=0"); add_proj4text (p, 2, " +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Washington North\",GEOGCS[\"NAD27\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "67\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",47.5],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",48.73333333333333],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, "origin\",47],PARAMETER[\"central_meridian\",-120.8333333"); add_srs_wkt (p, 11, "333333],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32048\"]]"); p = add_epsg_def_ex (filter, first, last, 32049, "epsg", 32049, "NAD27 / Washington South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.83333333333334 +lat_2=47.33333333333"); add_proj4text (p, 1, "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=609601.2"); add_proj4text (p, 2, "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Washington South\",GEOGCS[\"NAD27\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "67\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",45.83333333333334],PARAMETE"); add_srs_wkt (p, 9, "R[\"standard_parallel_2\",47.33333333333334],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",45.33333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-120.5],PARAMETER[\"false_easting\",20000"); add_srs_wkt (p, 12, "00],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 13, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"320"); add_srs_wkt (p, 15, "49\"]]"); p = add_epsg_def_ex (filter, first, last, 32050, "epsg", 32050, "NAD27 / West Virginia North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39 +lat_2=40.25 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-f"); add_proj4text (p, 2, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / West Virginia North\",GEOGCS[\"NAD27\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",39],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",40.25],PARAMETER[\"latitude_of_origin\",38."); add_srs_wkt (p, 10, "5],PARAMETER[\"central_meridian\",-79.5],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",2000000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"32050\"]]"); p = add_epsg_def_ex (filter, first, last, 32051, "epsg", 32051, "NAD27 / West Virginia South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.48333333333333 +lat_2=38.88333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +"); add_proj4text (p, 2, "datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / West Virginia South\",GEOGCS[\"NAD27\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",37.48333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",38.88333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",37],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-81],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32051\"]]"); p = add_epsg_def_ex (filter, first, last, 32052, "epsg", 32052, "NAD27 / Wisconsin North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.56666666666667 +lat_2=46.76666666666"); add_proj4text (p, 1, "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=609601.2192"); add_proj4text (p, 2, "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Wisconsin North\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "67\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",45.56666666666667],PARAMETE"); add_srs_wkt (p, 9, "R[\"standard_parallel_2\",46.76666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",45.16666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-90],PARAMETER[\"false_easting\",2000000]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 13, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32052\""); add_srs_wkt (p, 15, "]]"); p = add_epsg_def_ex (filter, first, last, 32053, "epsg", 32053, "NAD27 / Wisconsin Central", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.25 +lat_2=45.5 +lat_0=43.83333333333"); add_proj4text (p, 1, "334 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +datum=NAD2"); add_proj4text (p, 2, "7 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Wisconsin Central\",GEOGCS[\"NAD27\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); add_srs_wkt (p, 2, "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",44.25],PARAMETER[\"standa"); add_srs_wkt (p, 9, "rd_parallel_2\",45.5],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 10, "3.83333333333334],PARAMETER[\"central_meridian\",-90],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",2000000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 14, "NORTH],AUTHORITY[\"EPSG\",\"32053\"]]"); p = add_epsg_def_ex (filter, first, last, 32054, "epsg", 32054, "NAD27 / Wisconsin South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.73333333333333 +lat_2=44.06666666666"); add_proj4text (p, 1, "667 +lat_0=42 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +"); add_proj4text (p, 2, "datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Wisconsin South\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "67\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",42.73333333333333],PARAMETE"); add_srs_wkt (p, 9, "R[\"standard_parallel_2\",44.06666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",42],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, "-90],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 13, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 14, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32054\"]]"); p = add_epsg_def_ex (filter, first, last, 32055, "epsg", 32055, "NAD27 / Wyoming East", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-105.1666666"); add_proj4text (p, 1, "666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat"); add_proj4text (p, 2, "um=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Wyoming East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",40.66666666666666],PARAMETER[\"central_m"); add_srs_wkt (p, 9, "eridian\",-105.1666666666667],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.999941177],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 12, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32055\"]]"); p = add_epsg_def_ex (filter, first, last, 32056, "epsg", 32056, "NAD27 / Wyoming East Central", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-107.3333333"); add_proj4text (p, 1, "333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat"); add_proj4text (p, 2, "um=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Wyoming East Central\",GEOGCS[\"NAD27\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",40.66666666666666],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-107.3333333333333],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.999941177],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot"); add_srs_wkt (p, 12, "\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS"); add_srs_wkt (p, 13, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3205"); add_srs_wkt (p, 14, "6\"]]"); p = add_epsg_def_ex (filter, first, last, 32057, "epsg", 32057, "NAD27 / Wyoming West Central", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-108.75 +k=0"); add_proj4text (p, 1, ".999941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +u"); add_proj4text (p, 2, "nits=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Wyoming West Central\",GEOGCS[\"NAD27\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",40.66666666666666],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-108.75],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".999941177],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 12, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32057\"]]"); p = add_epsg_def_ex (filter, first, last, 32058, "epsg", 32058, "NAD27 / Wyoming West", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-110.0833333"); add_proj4text (p, 1, "333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat"); add_proj4text (p, 2, "um=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Wyoming West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",40.66666666666666],PARAMETER[\"central_m"); add_srs_wkt (p, 9, "eridian\",-110.0833333333333],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.999941177],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 12, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32058\"]]"); p = add_epsg_def_ex (filter, first, last, 32061, "epsg", 32061, "NAD27 / Guatemala Norte (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=16.81666666666667 +lat_0=16.81666666666"); add_proj4text (p, 1, "667 +lon_0=-90.33333333333333 +k_0=0.99992226 +x_0=50000"); add_proj4text (p, 2, "0 +y_0=292209.579 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Guatemala Norte (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_1S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"latitude_of_origin\",16.81666666666667]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",-90.33333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",0.99992226],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",500000],PARAMETER[\"false_northing\",292209.579],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32061\"]]"); p = add_epsg_def_ex (filter, first, last, 32062, "epsg", 32062, "NAD27 / Guatemala Sur (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=14.9 +lat_0=14.9 +lon_0=-90.33333333333"); add_proj4text (p, 1, "333 +k_0=0.99989906 +x_0=500000 +y_0=325992.681 +datum=N"); add_proj4text (p, 2, "AD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Guatemala Sur (deprecated)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Cl"); add_srs_wkt (p, 2, "arke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_1S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"latitude_of_origin\",14.9],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-90.33333333333333],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.99989906],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",325992.681],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"32062\"]]"); p = add_epsg_def_ex (filter, first, last, 32064, "epsg", 32064, "NAD27 / BLM 14N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 14N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-99"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",1640416.67],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"32064\"]]"); p = add_epsg_def_ex (filter, first, last, 32065, "epsg", 32065, "NAD27 / BLM 15N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 15N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-93"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",1640416.67],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"32065\"]]"); p = add_epsg_def_ex (filter, first, last, 32066, "epsg", 32066, "NAD27 / BLM 16N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 16N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-87"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",1640416.67],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"32066\"]]"); p = add_epsg_def_ex (filter, first, last, 32067, "epsg", 32067, "NAD27 / BLM 17N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 17N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-81"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",1640416.67],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"32067\"]]"); p = add_epsg_def_ex (filter, first, last, 32074, "epsg", 32074, "NAD27 / BLM 14N (feet) (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 14N (feet) (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",1640416.67],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"32074\"]]"); p = add_epsg_def_ex (filter, first, last, 32075, "epsg", 32075, "NAD27 / BLM 15N (feet) (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 15N (feet) (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",1640416.67],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"32075\"]]"); p = add_epsg_def_ex (filter, first, last, 32076, "epsg", 32076, "NAD27 / BLM 16N (feet) (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 16N (feet) (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",1640416.67],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"32076\"]]"); p = add_epsg_def_ex (filter, first, last, 32077, "epsg", 32077, "NAD27 / BLM 17N (feet) (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 17N (feet) (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",1640416.67],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"32077\"]]"); p = add_epsg_def_ex (filter, first, last, 32081, "epsg", 32081, "NAD27 / MTM zone 1", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / MTM zone 1\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 8, "de_of_origin\",0],PARAMETER[\"central_meridian\",-53],PA"); add_srs_wkt (p, 9, "RAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",304800],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32081\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 32082, "epsg", 32082, "NAD27 / MTM zone 2", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / MTM zone 2\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 8, "de_of_origin\",0],PARAMETER[\"central_meridian\",-56],PA"); add_srs_wkt (p, 9, "RAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",304800],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32082\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 32083, "epsg", 32083, "NAD27 / MTM zone 3", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / MTM zone 3\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 8, "de_of_origin\",0],PARAMETER[\"central_meridian\",-58.5],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",304800],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32083"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32084, "epsg", 32084, "NAD27 / MTM zone 4", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / MTM zone 4\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 8, "de_of_origin\",0],PARAMETER[\"central_meridian\",-61.5],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",304800],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32084"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32085, "epsg", 32085, "NAD27 / MTM zone 5", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / MTM zone 5\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 8, "de_of_origin\",0],PARAMETER[\"central_meridian\",-64.5],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",304800],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32085"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32086, "epsg", 32086, "NAD27 / MTM zone 6", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / MTM zone 6\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 8, "de_of_origin\",0],PARAMETER[\"central_meridian\",-67.5],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",304800],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32086"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32098, "epsg", 32098, "NAD27 / Quebec Lambert", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_"); add_proj4text (p, 1, "0=0 +y_0=0 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Quebec Lambert\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",60],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, "allel_2\",46],PARAMETER[\"latitude_of_origin\",44],PARAM"); add_srs_wkt (p, 10, "ETER[\"central_meridian\",-68.5],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32098\"]]"); p = add_epsg_def_ex (filter, first, last, 32099, "epsg", 32099, "NAD27 / Louisiana Offshore", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.66666666666667 +lon_0=-91.33333333333333 +"); add_proj4text (p, 2, "x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Louisiana Offshore\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",27.83333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",26.16666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",25.66666666666667],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-91.33333333333333],PARAMETER[\"false_"); add_srs_wkt (p, 12, "easting\",2000000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 13, "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"32099\"]]"); p = add_epsg_def_ex (filter, first, last, 32100, "epsg", 32100, "NAD83 / Montana", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5"); add_proj4text (p, 1, " +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Montana\",GEOGCS[\"NAD83\",DATUM[\"Nort"); add_srs_wkt (p, 1, "h_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 2, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",49],PARAMETER[\"standa"); add_srs_wkt (p, 9, "rd_parallel_2\",45],PARAMETER[\"latitude_of_origin\",44."); add_srs_wkt (p, 10, "25],PARAMETER[\"central_meridian\",-109.5],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",600000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32100\"]]"); p = add_epsg_def_ex (filter, first, last, 32104, "epsg", 32104, "NAD83 / Nebraska", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Nebraska\",GEOGCS[\"NAD83\",DATUM[\"Nor"); add_srs_wkt (p, 1, "th_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",43],PARAMETER[\"stan"); add_srs_wkt (p, 9, "dard_parallel_2\",40],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 10, "9.83333333333334],PARAMETER[\"central_meridian\",-100],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"32104\"]]"); p = add_epsg_def_ex (filter, first, last, 32107, "epsg", 32107, "NAD83 / Nevada East", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Nevada East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",34.75],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-115.5833333333333],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9999],PARAMETER[\"false_easting\",200000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",8000000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"32107\"]]"); p = add_epsg_def_ex (filter, first, last, 32108, "epsg", 32108, "NAD83 / Nevada Central", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, "9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Nevada Central\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",34.75],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-116.6666666666667],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9999],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",6000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"32108\"]]"); p = add_epsg_def_ex (filter, first, last, 32109, "epsg", 32109, "NAD83 / Nevada West", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Nevada West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",34.75],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-118.5833333333333],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9999],PARAMETER[\"false_easting\",800000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",4000000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"32109\"]]"); p = add_epsg_def_ex (filter, first, last, 32110, "epsg", 32110, "NAD83 / New Hampshire", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Hampshire\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",42.5],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-71.66666666666667],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.999966667],PARAMETER[\"false_easting\",300000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"32110\"]]"); p = add_epsg_def_ex (filter, first, last, 32111, "epsg", 32111, "NAD83 / New Jersey", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Jersey\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",38.83333333333334],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-74.5],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9999],PARAMETER[\"false_easting\",150000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"32111\"]]"); p = add_epsg_def_ex (filter, first, last, 32112, "epsg", 32112, "NAD83 / New Mexico East", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); add_proj4text (p, 1, "909091 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Mexico East\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",-104.3333333333333],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",0.999909091],PARAMETER[\"false_easting\",165000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"32112\"]]"); p = add_epsg_def_ex (filter, first, last, 32113, "epsg", 32113, "NAD83 / New Mexico Central", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000"); add_proj4text (p, 1, "00 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Mexico Central\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-106.25],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "99],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"32113\"]]"); p = add_epsg_def_ex (filter, first, last, 32114, "epsg", 32114, "NAD83 / New Mexico West", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); add_proj4text (p, 1, "916667 +x_0=830000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Mexico West\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",-107.8333333333333],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",0.999916667],PARAMETER[\"false_easting\",830000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"32114\"]]"); p = add_epsg_def_ex (filter, first, last, 32115, "epsg", 32115, "NAD83 / New York East", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New York East\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",38.83333333333334],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-74.5],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9999],PARAMETER[\"false_easting\",150000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"32115\"]]"); p = add_epsg_def_ex (filter, first, last, 32116, "epsg", 32116, "NAD83 / New York Central", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New York Central\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",-76.58333333333333],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",0.9999375],PARAMETER[\"false_easting\",250000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"32116\"]]"); p = add_epsg_def_ex (filter, first, last, 32117, "epsg", 32117, "NAD83 / New York West", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=350000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New York West\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",40],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-78.58333333333333],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9999375],PARAMETER[\"false_easting\",350000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"32117\"]]"); p = add_epsg_def_ex (filter, first, last, 32118, "epsg", 32118, "NAD83 / New York Long Island", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New York Long Island\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.03333"); add_srs_wkt (p, 9, "333333333],PARAMETER[\"standard_parallel_2\",40.66666666"); add_srs_wkt (p, 10, "666666],PARAMETER[\"latitude_of_origin\",40.166666666666"); add_srs_wkt (p, 11, "66],PARAMETER[\"central_meridian\",-74],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_easting\",300000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 13, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 14, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32118\"]]"); p = add_epsg_def_ex (filter, first, last, 32119, "epsg", 32119, "NAD83 / North Carolina", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); add_proj4text (p, 1, "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / North Carolina\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",36.16666666666"); add_srs_wkt (p, 9, "666],PARAMETER[\"standard_parallel_2\",34.33333333333334"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",33.75],PARAMETER[\"ce"); add_srs_wkt (p, 11, "ntral_meridian\",-79],PARAMETER[\"false_easting\",609601"); add_srs_wkt (p, 12, ".22],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 14, "NORTH],AUTHORITY[\"EPSG\",\"32119\"]]"); p = add_epsg_def_ex (filter, first, last, 32120, "epsg", 32120, "NAD83 / North Dakota North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333"); add_proj4text (p, 1, "333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / North Dakota North\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",48.7333333"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"standard_parallel_2\",47.4333333333"); add_srs_wkt (p, 10, "3333],PARAMETER[\"latitude_of_origin\",47],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-100.5],PARAMETER[\"false_easting\",60"); add_srs_wkt (p, 12, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"32120\"]]"); p = add_epsg_def_ex (filter, first, last, 32121, "epsg", 32121, "NAD83 / North Dakota South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333"); add_proj4text (p, 1, "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / North Dakota South\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",47.4833333"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"standard_parallel_2\",46.1833333333"); add_srs_wkt (p, 10, "3333],PARAMETER[\"latitude_of_origin\",45.66666666666666"); add_srs_wkt (p, 11, "],PARAMETER[\"central_meridian\",-100.5],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_easting\",600000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 13, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32121\"]]"); p = add_epsg_def_ex (filter, first, last, 32122, "epsg", 32122, "NAD83 / Ohio North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39"); add_proj4text (p, 1, ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Ohio North\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",41.7],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",40.43333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",39.66666666666666],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-82.5],PARAMETER[\"false_easting\",600000],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"32122\"]]"); } #endif /* full EPSG initialization enabled/disabled */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/srs_init.c���������������������������������������������������������0000664�0001750�0001750�00000062222�12544707704�015726� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* srs_init.c -- populating the SPATIAL_REF_SYS table version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <stdlib.h> #include <stdio.h> #include <string.h> #include <spatialite/sqlite.h> #include <spatialite/debug.h> #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ #include <spatialite.h> #include <spatialite_private.h> static void free_epsg_def (struct epsg_defs *ptr) { /* memory cleanup - destroying an EPSG def item */ if (ptr->auth_name) free (ptr->auth_name); if (ptr->ref_sys_name) free (ptr->ref_sys_name); if (ptr->proj4text) free (ptr->proj4text); if (ptr->srs_wkt) free (ptr->srs_wkt); if (ptr->spheroid) free (ptr->spheroid); if (ptr->prime_meridian) free (ptr->prime_meridian); if (ptr->datum) free (ptr->datum); if (ptr->projection) free (ptr->projection); if (ptr->unit) free (ptr->unit); if (ptr->axis_1) free (ptr->axis_1); if (ptr->orientation_1) free (ptr->orientation_1); if (ptr->axis_2) free (ptr->axis_2); if (ptr->orientation_2) free (ptr->orientation_2); free (ptr); } SPATIALITE_PRIVATE struct epsg_defs * add_epsg_def (int filter_srid, struct epsg_defs **first, struct epsg_defs **last, int srid, const char *auth_name, int auth_srid, const char *ref_sys_name) { /* appending an EPSG def to the list */ int len; struct epsg_defs *p; if (filter_srid == GAIA_EPSG_NONE) return NULL; if (filter_srid == GAIA_EPSG_ANY || filter_srid == GAIA_EPSG_WGS84_ONLY) ; else if (srid != filter_srid) return NULL; p = malloc (sizeof (struct epsg_defs)); if (!p) return NULL; p->srid = srid; p->auth_name = NULL; p->auth_srid = auth_srid; p->ref_sys_name = NULL; p->proj4text = NULL; p->srs_wkt = NULL; p->next = NULL; if (auth_name) { len = strlen (auth_name); if (len > 0) { p->auth_name = malloc (len + 1); if (p->auth_name == NULL) goto error; strcpy (p->auth_name, auth_name); } } if (ref_sys_name) { len = strlen (ref_sys_name); if (len > 0) { p->ref_sys_name = malloc (len + 1); if (p->ref_sys_name == NULL) goto error; strcpy (p->ref_sys_name, ref_sys_name); } } p->is_geographic = -1; p->flipped_axes = -1; p->spheroid = NULL; p->prime_meridian = NULL; p->datum = NULL; p->projection = NULL; p->unit = NULL; p->axis_1 = NULL; p->orientation_1 = NULL; p->axis_2 = NULL; p->orientation_2 = NULL; if (*first == NULL) *first = p; if (*last != NULL) (*last)->next = p; *last = p; return p; error: free_epsg_def (p); return NULL; } SPATIALITE_PRIVATE struct epsg_defs * add_epsg_def_ex (int filter_srid, struct epsg_defs **first, struct epsg_defs **last, int srid, const char *auth_name, int auth_srid, const char *ref_sys_name, int is_geographic, int flipped_axes, const char *spheroid, const char *prime_meridian, const char *datum, const char *projection, const char *unit, const char *axis_1, const char *orientation_1, const char *axis_2, const char *orientation_2) { /* appending an EPSG def to the list */ int len; struct epsg_defs *p; if (filter_srid == GAIA_EPSG_NONE) return NULL; if (filter_srid == GAIA_EPSG_ANY || filter_srid == GAIA_EPSG_WGS84_ONLY) ; else if (srid != filter_srid) return NULL; p = malloc (sizeof (struct epsg_defs)); if (!p) return NULL; p->srid = srid; p->auth_name = NULL; p->auth_srid = auth_srid; p->ref_sys_name = NULL; p->proj4text = NULL; p->srs_wkt = NULL; p->spheroid = NULL; p->prime_meridian = NULL; p->datum = NULL; p->unit = NULL; p->axis_1 = NULL; p->orientation_1 = NULL; p->axis_2 = NULL; p->orientation_2 = NULL; p->next = NULL; if (auth_name) { len = strlen (auth_name); if (len > 0) { p->auth_name = malloc (len + 1); if (p->auth_name == NULL) goto error; strcpy (p->auth_name, auth_name); } } if (ref_sys_name) { len = strlen (ref_sys_name); if (len > 0) { p->ref_sys_name = malloc (len + 1); if (p->ref_sys_name == NULL) goto error; strcpy (p->ref_sys_name, ref_sys_name); } } p->is_geographic = is_geographic; p->flipped_axes = flipped_axes; if (spheroid) { len = strlen (spheroid); p->spheroid = malloc (len + 1); if (p->spheroid == NULL) goto error; strcpy (p->spheroid, spheroid); } if (prime_meridian) { len = strlen (prime_meridian); p->prime_meridian = malloc (len + 1); if (p->prime_meridian == NULL) goto error; strcpy (p->prime_meridian, prime_meridian); } if (datum) { len = strlen (datum); p->datum = malloc (len + 1); if (p->datum == NULL) goto error; strcpy (p->datum, datum); } if (projection) { len = strlen (projection); p->projection = malloc (len + 1); if (p->projection == NULL) goto error; strcpy (p->projection, projection); } if (unit) { len = strlen (unit); p->unit = malloc (len + 1); if (p->unit == NULL) goto error; strcpy (p->unit, unit); } if (axis_1) { len = strlen (axis_1); p->axis_1 = malloc (len + 1); if (p->axis_1 == NULL) goto error; strcpy (p->axis_1, axis_1); } if (orientation_1) { len = strlen (orientation_1); p->orientation_1 = malloc (len + 1); if (p->orientation_1 == NULL) goto error; strcpy (p->orientation_1, orientation_1); } if (axis_2) { len = strlen (axis_2); p->axis_2 = malloc (len + 1); if (p->axis_2 == NULL) goto error; strcpy (p->axis_2, axis_2); } if (orientation_2) { len = strlen (orientation_2); p->orientation_2 = malloc (len + 1); if (p->orientation_2 == NULL) goto error; strcpy (p->orientation_2, orientation_2); } if (*first == NULL) *first = p; if (*last != NULL) (*last)->next = p; *last = p; return p; error: free_epsg_def (p); return NULL; } SPATIALITE_PRIVATE void add_proj4text (struct epsg_defs *p, int count, const char *text) { /* creating the PROJ4TEXT string */ int len; int olen; char *string; if (p == NULL || text == NULL) return; len = strlen (text); if (!count) { p->proj4text = malloc (len + 1); if (p->proj4text == NULL) return; strcpy (p->proj4text, text); return; } if (p->proj4text == NULL) return; olen = strlen (p->proj4text); string = malloc (len + olen + 1); if (string == NULL) return; strcpy (string, p->proj4text); free (p->proj4text); p->proj4text = string; strcat (p->proj4text, text); } SPATIALITE_PRIVATE void add_srs_wkt (struct epsg_defs *p, int count, const char *text) { /* creating the SRS_WKT string */ int len; int olen; char *string; if (p == NULL || text == NULL) return; len = strlen (text); if (!count) { p->srs_wkt = malloc (len + 1); if (p->srs_wkt == NULL) return; strcpy (p->srs_wkt, text); return; } if (p->srs_wkt == NULL) return; olen = strlen (p->srs_wkt); string = malloc (len + olen + 1); if (string == NULL) return; strcpy (string, p->srs_wkt); free (p->srs_wkt); p->srs_wkt = string; strcat (p->srs_wkt, text); } SPATIALITE_PRIVATE void free_epsg (struct epsg_defs *first) { /* memory cleanup - destroying the EPSG list */ struct epsg_defs *p = first; struct epsg_defs *pn; while (p) { pn = p->next; free_epsg_def (p); p = pn; } } static void create_spatial_ref_sys_aux (sqlite3 * handle) { /* just in case, we'll create the SPATIAL_REF_SYS_AUX table */ const char *sql = "CREATE TABLE IF NOT EXISTS spatial_ref_sys_aux (\n" "\tsrid INTEGER NOT NULL PRIMARY KEY,\n" "\tis_geographic INTEGER,\n" "\thas_flipped_axes INTEGER,\n" "\tspheroid TEXT,\n" "\tprime_meridian TEXT,\n" "\tdatum TEXT,\n" "\tprojection TEXT,\n" "\tunit TEXT,\n" "\taxis_1_name TEXT,\n" "\taxis_1_orientation TEXT,\n" "\taxis_2_name TEXT,\n" "\taxis_2_orientation TEXT,\n" "\tCONSTRAINT fk_sprefsys FOREIGN KEY (srid) " "\tREFERENCES spatial_ref_sys (srid))"; sqlite3_exec (handle, sql, NULL, NULL, NULL); /* creating the SPATIAL_REF_SYS_ALL view */ sql = "CREATE VIEW IF NOT EXISTS spatial_ref_sys_all AS\n" "SELECT a.srid AS srid, a.auth_name AS auth_name, " "a.auth_srid AS auth_srid, a.ref_sys_name AS ref_sys_name,\n" "b.is_geographic AS is_geographic, " "b.has_flipped_axes AS has_flipped_axes, " "b.spheroid AS spheroid, b.prime_meridian AS prime_meridian, " "b.datum AS datum, b.projection AS projection, b.unit AS unit,\n" "b.axis_1_name AS axis_1_name, " "b.axis_1_orientation AS axis_1_orientation,\n" "b.axis_2_name AS axis_2_name, " "b.axis_2_orientation AS axis_2_orientation,\n" "a.proj4text AS proj4text, a.srtext AS srtext\n" "FROM spatial_ref_sys AS a\n" "LEFT JOIN spatial_ref_sys_aux AS b ON (a.srid = b.srid)"; sqlite3_exec (handle, sql, NULL, NULL, NULL); } static int populate_spatial_ref_sys (sqlite3 * handle, int mode) { /* populating the EPSG dataset into the SPATIAL_REF_SYS table */ struct epsg_defs *first = NULL; struct epsg_defs *last = NULL; struct epsg_defs *p; char sql[1024]; int ret; sqlite3_stmt *stmt = NULL; sqlite3_stmt *stmt_aux = NULL; int ok_aux; /* initializing the EPSG defs list */ initialize_epsg (mode, &first, &last); create_spatial_ref_sys_aux (handle); /* preparing the SQL parameterized statement (main) */ strcpy (sql, "INSERT INTO spatial_ref_sys "); strcat (sql, "(srid, auth_name, auth_srid, ref_sys_name, proj4text, srtext) "); strcat (sql, "VALUES (?, ?, ?, ?, ?, ?)"); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("%s\n", sqlite3_errmsg (handle)); goto error; } /* preparing the SQL parameterized statement (aux) */ strcpy (sql, "INSERT INTO spatial_ref_sys_aux "); strcat (sql, "(srid, is_geographic, has_flipped_axes, spheroid, prime_meridian, "); strcat (sql, "datum, projection, unit, axis_1_name, axis_1_orientation, "); strcat (sql, "axis_2_name, axis_2_orientation) "); strcat (sql, "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt_aux, NULL); if (ret != SQLITE_OK) { spatialite_e ("%s\n", sqlite3_errmsg (handle)); goto error; } p = first; while (p) { if (p->auth_name == NULL) break; /* inserting into SPATIAL_REF_SYS */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, p->srid); sqlite3_bind_text (stmt, 2, p->auth_name, strlen (p->auth_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, p->auth_srid); sqlite3_bind_text (stmt, 4, p->ref_sys_name, strlen (p->ref_sys_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 5, p->proj4text, strlen (p->proj4text), SQLITE_STATIC); if (strlen (p->srs_wkt) == 0) sqlite3_bind_text (stmt, 6, "Undefined", 9, SQLITE_STATIC); else sqlite3_bind_text (stmt, 6, p->srs_wkt, strlen (p->srs_wkt), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("%s\n", sqlite3_errmsg (handle)); goto error; } /* inserting into SPATIAL_REF_SYS_AUX */ ok_aux = 0; sqlite3_reset (stmt_aux); sqlite3_clear_bindings (stmt_aux); sqlite3_bind_int (stmt_aux, 1, p->srid); if (p->is_geographic < 0) sqlite3_bind_null (stmt_aux, 2); else { sqlite3_bind_int (stmt_aux, 2, p->is_geographic); ok_aux = 1; } if (p->flipped_axes < 0) sqlite3_bind_null (stmt_aux, 3); else { sqlite3_bind_int (stmt_aux, 3, p->flipped_axes); ok_aux = 1; } if (p->spheroid == NULL) sqlite3_bind_null (stmt_aux, 4); else { sqlite3_bind_text (stmt_aux, 4, p->spheroid, strlen (p->spheroid), SQLITE_STATIC); ok_aux = 1; } if (p->prime_meridian == NULL) sqlite3_bind_null (stmt_aux, 5); else { sqlite3_bind_text (stmt_aux, 5, p->prime_meridian, strlen (p->prime_meridian), SQLITE_STATIC); ok_aux = 1; } if (p->datum == NULL) sqlite3_bind_null (stmt_aux, 6); else { sqlite3_bind_text (stmt_aux, 6, p->datum, strlen (p->datum), SQLITE_STATIC); ok_aux = 1; } if (p->projection == NULL) sqlite3_bind_null (stmt_aux, 7); else { sqlite3_bind_text (stmt_aux, 7, p->projection, strlen (p->projection), SQLITE_STATIC); ok_aux = 1; } if (p->unit == NULL) sqlite3_bind_null (stmt_aux, 8); else { sqlite3_bind_text (stmt_aux, 8, p->unit, strlen (p->unit), SQLITE_STATIC); ok_aux = 1; } if (p->axis_1 == NULL) sqlite3_bind_null (stmt_aux, 9); else { sqlite3_bind_text (stmt_aux, 9, p->axis_1, strlen (p->axis_1), SQLITE_STATIC); ok_aux = 1; } if (p->orientation_1 == NULL) sqlite3_bind_null (stmt_aux, 10); else { sqlite3_bind_text (stmt_aux, 10, p->orientation_1, strlen (p->orientation_1), SQLITE_STATIC); ok_aux = 1; } if (p->axis_2 == NULL) sqlite3_bind_null (stmt_aux, 11); else { sqlite3_bind_text (stmt_aux, 11, p->axis_2, strlen (p->axis_2), SQLITE_STATIC); ok_aux = 1; } if (p->orientation_2 == NULL) sqlite3_bind_null (stmt_aux, 12); else { sqlite3_bind_text (stmt_aux, 12, p->orientation_2, strlen (p->orientation_2), SQLITE_STATIC); ok_aux = 1; } if (ok_aux) { ret = sqlite3_step (stmt_aux); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("%s\n", sqlite3_errmsg (handle)); goto error; } } p = p->next; } sqlite3_finalize (stmt); sqlite3_finalize (stmt_aux); /* freeing the EPSG defs list */ free_epsg (first); return 1; error: if (stmt) sqlite3_finalize (stmt); if (stmt_aux) sqlite3_finalize (stmt_aux); /* freeing the EPSG defs list */ free_epsg (first); return 0; } SPATIALITE_PRIVATE int exists_spatial_ref_sys (void *p_sqlite) { /* checking if the SPATIAL_REF_SYS table exists */ int ret; int ok = 0; char sql[1024]; char **results; int n_rows; int n_columns; char *err_msg = NULL; sqlite3 *handle = (sqlite3 *) p_sqlite; strcpy (sql, "SELECT name FROM sqlite_master WHERE type = 'table' AND name LIKE 'spatial_ref_sys'"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, &err_msg); if (ret != SQLITE_OK) { /* some error occurred */ spatialite_e ("XX %s\n", err_msg); sqlite3_free (err_msg); return 0; } if (n_rows > 0) ok = 1; sqlite3_free_table (results); return ok; } static int check_spatial_ref_sys (sqlite3 * handle) { /* checking if the SPATIAL_REF_SYS table has an appropriate layout */ int ret; int i; const char *name; char sql[1024]; char **results; int n_rows; int n_columns; char *err_msg = NULL; int rs_srid = 0; int auth_name = 0; int auth_srid = 0; int ref_sys_name = 0; int proj4text = 0; int srtext = 0; strcpy (sql, "PRAGMA table_info(spatial_ref_sys)"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, &err_msg); if (ret != SQLITE_OK) { /* some error occurred */ spatialite_e ("%s\n", err_msg); sqlite3_free (err_msg); return 0; } if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { name = results[(i * n_columns) + 1]; if (strcasecmp (name, "srid") == 0) rs_srid = 1; if (strcasecmp (name, "auth_name") == 0) auth_name = 1; if (strcasecmp (name, "auth_srid") == 0) auth_srid = 1; if (strcasecmp (name, "ref_sys_name") == 0) ref_sys_name = 1; if (strcasecmp (name, "proj4text") == 0) proj4text = 1; if (strcasecmp (name, "srtext") == 0) srtext = 1; } } sqlite3_free_table (results); if (rs_srid && auth_name && auth_srid && ref_sys_name && proj4text && srtext) ret = 1; else ret = 0; return ret; } static int spatial_ref_sys_count (sqlite3 * handle) { /* checking if the SPATIAL_REF_SYS table is empty */ int ret; int i; int count = 0; char sql[1024]; char **results; int n_rows; int n_columns; char *err_msg = NULL; strcpy (sql, "SELECT Count(*) FROM spatial_ref_sys"); ret = sqlite3_get_table (handle, sql, &results, &n_rows, &n_columns, &err_msg); if (ret != SQLITE_OK) { /* some error occurred */ spatialite_e ("%s\n", err_msg); sqlite3_free (err_msg); return 0; } if (n_rows > 0) { for (i = 1; i <= n_rows; i++) { count = atoi (results[(i * n_columns) + 0]); } } sqlite3_free_table (results); return count; } SPATIALITE_DECLARE int spatial_ref_sys_init (sqlite3 * handle, int verbose) { /* / deprecated function / [still supported simply not to break API-level back-compatibility] */ return spatial_ref_sys_init2 (handle, GAIA_EPSG_ANY, verbose); } SPATIALITE_DECLARE int spatial_ref_sys_init2 (sqlite3 * handle, int mode, int verbose) { /* populating the EPSG dataset into the SPATIAL_REF_SYS table */ if (!exists_spatial_ref_sys (handle)) { if (verbose) spatialite_e ("the SPATIAL_REF_SYS table doesn't exists\n"); return 0; } if (!check_spatial_ref_sys (handle)) { if (verbose) spatialite_e ("the SPATIAL_REF_SYS table has an unsupported layout\n"); return 0; } if (spatial_ref_sys_count (handle)) { if (verbose) spatialite_e ("the SPATIAL_REF_SYS table already contains some row(s)\n"); return 0; } if (mode == GAIA_EPSG_ANY || mode == GAIA_EPSG_NONE || mode == GAIA_EPSG_WGS84_ONLY) ; else mode = GAIA_EPSG_ANY; if (populate_spatial_ref_sys (handle, mode)) { if (verbose && mode != GAIA_EPSG_NONE) spatialite_e ("OK: the SPATIAL_REF_SYS table was successfully populated\n"); return 1; } return 0; } SPATIALITE_DECLARE int insert_epsg_srid (sqlite3 * handle, int srid) { /* inserting a single EPSG definition into the SPATIAL_REF_SYS table */ struct epsg_defs *first = NULL; struct epsg_defs *last = NULL; char sql[1024]; int ret; int error = 0; sqlite3_stmt *stmt = NULL; sqlite3_stmt *stmt_aux = NULL; int ok_aux; if (!exists_spatial_ref_sys (handle)) { spatialite_e ("the SPATIAL_REF_SYS table doesn't exists\n"); return 0; } if (!check_spatial_ref_sys (handle)) { spatialite_e ("the SPATIAL_REF_SYS table has an unsupported layout\n"); return 0; } /* initializing the EPSG defs list */ initialize_epsg (srid, &first, &last); if (first == NULL) { spatialite_e ("SRID=%d isn't defined in the EPSG inlined dataset\n", srid); return 0; } create_spatial_ref_sys_aux (handle); /* preparing the SQL parameterized statement */ strcpy (sql, "INSERT INTO spatial_ref_sys "); strcat (sql, "(srid, auth_name, auth_srid, ref_sys_name, proj4text, srtext) "); strcat (sql, "VALUES (?, ?, ?, ?, ?, ?)"); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("%s\n", sqlite3_errmsg (handle)); error = 1; goto stop; } /* preparing the SQL parameterized statement (aux) */ strcpy (sql, "INSERT INTO spatial_ref_sys_aux "); strcat (sql, "(srid, is_geographic, has_flipped_axes, spheroid, prime_meridian, "); strcat (sql, "datum, projection, unit, axis_1_name, axis_1_orientation, "); strcat (sql, "axis_2_name, axis_2_orientation) "); strcat (sql, "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt_aux, NULL); if (ret != SQLITE_OK) { spatialite_e ("%s\n", sqlite3_errmsg (handle)); error = 1; goto stop; } /* inserting into SPATIAL_REF_SYS_AUX */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, first->srid); sqlite3_bind_text (stmt, 2, first->auth_name, strlen (first->auth_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, first->auth_srid); sqlite3_bind_text (stmt, 4, first->ref_sys_name, strlen (first->ref_sys_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 5, first->proj4text, strlen (first->proj4text), SQLITE_STATIC); if (strlen (first->srs_wkt) == 0) sqlite3_bind_text (stmt, 6, "Undefined", 9, SQLITE_STATIC); else sqlite3_bind_text (stmt, 6, first->srs_wkt, strlen (first->srs_wkt), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("%s\n", sqlite3_errmsg (handle)); error = 1; goto stop; } /* inserting into SPATIAL_REF_SYS_AUX */ ok_aux = 0; sqlite3_reset (stmt_aux); sqlite3_clear_bindings (stmt_aux); sqlite3_bind_int (stmt_aux, 1, first->srid); if (first->is_geographic < 0) sqlite3_bind_null (stmt_aux, 2); else { sqlite3_bind_int (stmt_aux, 2, first->is_geographic); ok_aux = 1; } if (first->flipped_axes < 0) sqlite3_bind_null (stmt_aux, 3); else { sqlite3_bind_int (stmt_aux, 3, first->flipped_axes); ok_aux = 1; } if (first->spheroid == NULL) sqlite3_bind_null (stmt_aux, 4); else { sqlite3_bind_text (stmt_aux, 4, first->spheroid, strlen (first->spheroid), SQLITE_STATIC); ok_aux = 1; } if (first->prime_meridian == NULL) sqlite3_bind_null (stmt_aux, 5); else { sqlite3_bind_text (stmt_aux, 5, first->prime_meridian, strlen (first->prime_meridian), SQLITE_STATIC); ok_aux = 1; } if (first->datum == NULL) sqlite3_bind_null (stmt_aux, 6); else { sqlite3_bind_text (stmt_aux, 6, first->datum, strlen (first->datum), SQLITE_STATIC); ok_aux = 1; } if (first->projection == NULL) sqlite3_bind_null (stmt_aux, 7); else { sqlite3_bind_text (stmt_aux, 7, first->projection, strlen (first->projection), SQLITE_STATIC); ok_aux = 1; } if (first->unit == NULL) sqlite3_bind_null (stmt_aux, 8); else { sqlite3_bind_text (stmt_aux, 8, first->unit, strlen (first->unit), SQLITE_STATIC); ok_aux = 1; } if (first->axis_1 == NULL) sqlite3_bind_null (stmt_aux, 9); else { sqlite3_bind_text (stmt_aux, 9, first->axis_1, strlen (first->axis_1), SQLITE_STATIC); ok_aux = 1; } if (first->orientation_1 == NULL) sqlite3_bind_null (stmt_aux, 10); else { sqlite3_bind_text (stmt_aux, 10, first->orientation_1, strlen (first->orientation_1), SQLITE_STATIC); ok_aux = 1; } if (first->axis_2 == NULL) sqlite3_bind_null (stmt_aux, 11); else { sqlite3_bind_text (stmt_aux, 11, first->axis_2, strlen (first->axis_2), SQLITE_STATIC); ok_aux = 1; } if (first->orientation_2 == NULL) sqlite3_bind_null (stmt_aux, 11); else { sqlite3_bind_text (stmt_aux, 11, first->orientation_2, strlen (first->orientation_2), SQLITE_STATIC); ok_aux = 1; } if (ok_aux) { ret = sqlite3_step (stmt_aux); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("%s\n", sqlite3_errmsg (handle)); goto stop; } } stop: if (stmt != NULL) sqlite3_finalize (stmt); if (stmt_aux != NULL) sqlite3_finalize (stmt_aux); /* freeing the EPSG defs list */ free_epsg (first); if (error) return 0; return 1; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/Makefile.in��������������������������������������������������������0000664�0001750�0001750�00000467037�12573313636�016011� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/srsinit ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libsrsinit_la_LIBADD = am__objects_1 = libsrsinit_la-srs_init.lo \ libsrsinit_la-epsg_inlined_00.lo \ libsrsinit_la-epsg_inlined_01.lo \ libsrsinit_la-epsg_inlined_02.lo \ libsrsinit_la-epsg_inlined_03.lo \ libsrsinit_la-epsg_inlined_04.lo \ libsrsinit_la-epsg_inlined_05.lo \ libsrsinit_la-epsg_inlined_06.lo \ libsrsinit_la-epsg_inlined_07.lo \ libsrsinit_la-epsg_inlined_08.lo \ libsrsinit_la-epsg_inlined_09.lo \ libsrsinit_la-epsg_inlined_10.lo \ libsrsinit_la-epsg_inlined_11.lo \ libsrsinit_la-epsg_inlined_12.lo \ libsrsinit_la-epsg_inlined_13.lo \ libsrsinit_la-epsg_inlined_14.lo \ libsrsinit_la-epsg_inlined_15.lo \ libsrsinit_la-epsg_inlined_16.lo \ libsrsinit_la-epsg_inlined_17.lo \ libsrsinit_la-epsg_inlined_18.lo \ libsrsinit_la-epsg_inlined_19.lo \ libsrsinit_la-epsg_inlined_20.lo \ libsrsinit_la-epsg_inlined_21.lo \ libsrsinit_la-epsg_inlined_22.lo \ libsrsinit_la-epsg_inlined_23.lo \ libsrsinit_la-epsg_inlined_24.lo \ libsrsinit_la-epsg_inlined_25.lo \ libsrsinit_la-epsg_inlined_26.lo \ libsrsinit_la-epsg_inlined_27.lo \ libsrsinit_la-epsg_inlined_28.lo \ libsrsinit_la-epsg_inlined_29.lo \ libsrsinit_la-epsg_inlined_30.lo \ libsrsinit_la-epsg_inlined_31.lo \ libsrsinit_la-epsg_inlined_32.lo \ libsrsinit_la-epsg_inlined_33.lo \ libsrsinit_la-epsg_inlined_34.lo \ libsrsinit_la-epsg_inlined_35.lo \ libsrsinit_la-epsg_inlined_36.lo \ libsrsinit_la-epsg_inlined_37.lo \ libsrsinit_la-epsg_inlined_38.lo \ libsrsinit_la-epsg_inlined_39.lo \ libsrsinit_la-epsg_inlined_40.lo \ libsrsinit_la-epsg_inlined_41.lo \ libsrsinit_la-epsg_inlined_42.lo \ libsrsinit_la-epsg_inlined_43.lo \ libsrsinit_la-epsg_inlined_44.lo \ libsrsinit_la-epsg_inlined_45.lo \ libsrsinit_la-epsg_inlined_46.lo \ libsrsinit_la-epsg_inlined_wgs84_00.lo \ libsrsinit_la-epsg_inlined_wgs84_01.lo \ libsrsinit_la-epsg_inlined_prussian.lo \ libsrsinit_la-epsg_inlined_extra.lo am_libsrsinit_la_OBJECTS = $(am__objects_1) libsrsinit_la_OBJECTS = $(am_libsrsinit_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libsrsinit_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libsrsinit_la_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ srsinit_la_LIBADD = am__objects_2 = srsinit_la-srs_init.lo srsinit_la-epsg_inlined_00.lo \ srsinit_la-epsg_inlined_01.lo srsinit_la-epsg_inlined_02.lo \ srsinit_la-epsg_inlined_03.lo srsinit_la-epsg_inlined_04.lo \ srsinit_la-epsg_inlined_05.lo srsinit_la-epsg_inlined_06.lo \ srsinit_la-epsg_inlined_07.lo srsinit_la-epsg_inlined_08.lo \ srsinit_la-epsg_inlined_09.lo srsinit_la-epsg_inlined_10.lo \ srsinit_la-epsg_inlined_11.lo srsinit_la-epsg_inlined_12.lo \ srsinit_la-epsg_inlined_13.lo srsinit_la-epsg_inlined_14.lo \ srsinit_la-epsg_inlined_15.lo srsinit_la-epsg_inlined_16.lo \ srsinit_la-epsg_inlined_17.lo srsinit_la-epsg_inlined_18.lo \ srsinit_la-epsg_inlined_19.lo srsinit_la-epsg_inlined_20.lo \ srsinit_la-epsg_inlined_21.lo srsinit_la-epsg_inlined_22.lo \ srsinit_la-epsg_inlined_23.lo srsinit_la-epsg_inlined_24.lo \ srsinit_la-epsg_inlined_25.lo srsinit_la-epsg_inlined_26.lo \ srsinit_la-epsg_inlined_27.lo srsinit_la-epsg_inlined_28.lo \ srsinit_la-epsg_inlined_29.lo srsinit_la-epsg_inlined_30.lo \ srsinit_la-epsg_inlined_31.lo srsinit_la-epsg_inlined_32.lo \ srsinit_la-epsg_inlined_33.lo srsinit_la-epsg_inlined_34.lo \ srsinit_la-epsg_inlined_35.lo srsinit_la-epsg_inlined_36.lo \ srsinit_la-epsg_inlined_37.lo srsinit_la-epsg_inlined_38.lo \ srsinit_la-epsg_inlined_39.lo srsinit_la-epsg_inlined_40.lo \ srsinit_la-epsg_inlined_41.lo srsinit_la-epsg_inlined_42.lo \ srsinit_la-epsg_inlined_43.lo srsinit_la-epsg_inlined_44.lo \ srsinit_la-epsg_inlined_45.lo srsinit_la-epsg_inlined_46.lo \ srsinit_la-epsg_inlined_wgs84_00.lo \ srsinit_la-epsg_inlined_wgs84_01.lo \ srsinit_la-epsg_inlined_prussian.lo \ srsinit_la-epsg_inlined_extra.lo am_srsinit_la_OBJECTS = $(am__objects_2) srsinit_la_OBJECTS = $(am_srsinit_la_OBJECTS) srsinit_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(srsinit_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libsrsinit_la_SOURCES) $(srsinit_la_SOURCES) DIST_SOURCES = $(libsrsinit_la_SOURCES) $(srsinit_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = epsg_update AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libsrsinit.la srsinit.la SRSINIT_COMMON_SOURCES = srs_init.c \ epsg_inlined_00.c \ epsg_inlined_01.c \ epsg_inlined_02.c \ epsg_inlined_03.c \ epsg_inlined_04.c \ epsg_inlined_05.c \ epsg_inlined_06.c \ epsg_inlined_07.c \ epsg_inlined_08.c \ epsg_inlined_09.c \ epsg_inlined_10.c \ epsg_inlined_11.c \ epsg_inlined_12.c \ epsg_inlined_13.c \ epsg_inlined_14.c \ epsg_inlined_15.c \ epsg_inlined_16.c \ epsg_inlined_17.c \ epsg_inlined_18.c \ epsg_inlined_19.c \ epsg_inlined_20.c \ epsg_inlined_21.c \ epsg_inlined_22.c \ epsg_inlined_23.c \ epsg_inlined_24.c \ epsg_inlined_25.c \ epsg_inlined_26.c \ epsg_inlined_27.c \ epsg_inlined_28.c \ epsg_inlined_29.c \ epsg_inlined_30.c \ epsg_inlined_31.c \ epsg_inlined_32.c \ epsg_inlined_33.c \ epsg_inlined_34.c \ epsg_inlined_35.c \ epsg_inlined_36.c \ epsg_inlined_37.c \ epsg_inlined_38.c \ epsg_inlined_39.c \ epsg_inlined_40.c \ epsg_inlined_41.c \ epsg_inlined_42.c \ epsg_inlined_43.c \ epsg_inlined_44.c \ epsg_inlined_45.c \ epsg_inlined_46.c \ epsg_inlined_wgs84_00.c \ epsg_inlined_wgs84_01.c \ epsg_inlined_prussian.c \ epsg_inlined_extra.c libsrsinit_la_SOURCES = $(SRSINIT_COMMON_SOURCES) libsrsinit_la_CFLAGS = -fvisibility=hidden srsinit_la_SOURCES = $(SRSINIT_COMMON_SOURCES) srsinit_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ -DLOADABLE_EXTENSION -fvisibility=hidden srsinit_la_LDFLAGS = -module srsinit_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/srsinit/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/srsinit/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libsrsinit.la: $(libsrsinit_la_OBJECTS) $(libsrsinit_la_DEPENDENCIES) $(EXTRA_libsrsinit_la_DEPENDENCIES) $(AM_V_CCLD)$(libsrsinit_la_LINK) $(libsrsinit_la_OBJECTS) $(libsrsinit_la_LIBADD) $(LIBS) srsinit.la: $(srsinit_la_OBJECTS) $(srsinit_la_DEPENDENCIES) $(EXTRA_srsinit_la_DEPENDENCIES) $(AM_V_CCLD)$(srsinit_la_LINK) $(srsinit_la_OBJECTS) $(srsinit_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_00.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_01.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_02.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_03.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_04.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_05.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_06.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_07.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_08.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_09.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_10.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_11.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_12.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_13.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_14.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_15.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_16.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_17.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_18.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_19.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_20.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_21.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_22.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_23.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_24.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_25.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_26.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_27.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_28.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_29.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_30.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_31.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_32.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_33.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_34.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_35.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_36.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_37.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_38.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_39.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_41.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_42.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_43.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_44.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_45.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_46.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsrsinit_la-srs_init.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_00.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_01.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_02.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_03.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_04.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_05.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_06.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_07.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_08.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_09.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_10.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_11.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_12.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_13.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_14.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_15.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_16.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_17.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_18.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_19.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_20.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_21.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_22.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_23.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_24.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_25.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_26.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_27.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_28.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_29.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_30.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_31.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_32.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_33.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_34.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_35.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_36.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_37.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_38.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_39.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_40.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_41.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_42.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_43.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_44.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_45.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_46.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_extra.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_prussian.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_wgs84_00.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-epsg_inlined_wgs84_01.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srsinit_la-srs_init.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libsrsinit_la-srs_init.lo: srs_init.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-srs_init.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-srs_init.Tpo -c -o libsrsinit_la-srs_init.lo `test -f 'srs_init.c' || echo '$(srcdir)/'`srs_init.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-srs_init.Tpo $(DEPDIR)/libsrsinit_la-srs_init.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='srs_init.c' object='libsrsinit_la-srs_init.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-srs_init.lo `test -f 'srs_init.c' || echo '$(srcdir)/'`srs_init.c libsrsinit_la-epsg_inlined_00.lo: epsg_inlined_00.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_00.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_00.Tpo -c -o libsrsinit_la-epsg_inlined_00.lo `test -f 'epsg_inlined_00.c' || echo '$(srcdir)/'`epsg_inlined_00.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_00.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_00.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_00.c' object='libsrsinit_la-epsg_inlined_00.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_00.lo `test -f 'epsg_inlined_00.c' || echo '$(srcdir)/'`epsg_inlined_00.c libsrsinit_la-epsg_inlined_01.lo: epsg_inlined_01.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_01.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_01.Tpo -c -o libsrsinit_la-epsg_inlined_01.lo `test -f 'epsg_inlined_01.c' || echo '$(srcdir)/'`epsg_inlined_01.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_01.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_01.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_01.c' object='libsrsinit_la-epsg_inlined_01.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_01.lo `test -f 'epsg_inlined_01.c' || echo '$(srcdir)/'`epsg_inlined_01.c libsrsinit_la-epsg_inlined_02.lo: epsg_inlined_02.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_02.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_02.Tpo -c -o libsrsinit_la-epsg_inlined_02.lo `test -f 'epsg_inlined_02.c' || echo '$(srcdir)/'`epsg_inlined_02.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_02.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_02.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_02.c' object='libsrsinit_la-epsg_inlined_02.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_02.lo `test -f 'epsg_inlined_02.c' || echo '$(srcdir)/'`epsg_inlined_02.c libsrsinit_la-epsg_inlined_03.lo: epsg_inlined_03.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_03.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_03.Tpo -c -o libsrsinit_la-epsg_inlined_03.lo `test -f 'epsg_inlined_03.c' || echo '$(srcdir)/'`epsg_inlined_03.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_03.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_03.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_03.c' object='libsrsinit_la-epsg_inlined_03.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_03.lo `test -f 'epsg_inlined_03.c' || echo '$(srcdir)/'`epsg_inlined_03.c libsrsinit_la-epsg_inlined_04.lo: epsg_inlined_04.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_04.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_04.Tpo -c -o libsrsinit_la-epsg_inlined_04.lo `test -f 'epsg_inlined_04.c' || echo '$(srcdir)/'`epsg_inlined_04.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_04.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_04.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_04.c' object='libsrsinit_la-epsg_inlined_04.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_04.lo `test -f 'epsg_inlined_04.c' || echo '$(srcdir)/'`epsg_inlined_04.c libsrsinit_la-epsg_inlined_05.lo: epsg_inlined_05.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_05.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_05.Tpo -c -o libsrsinit_la-epsg_inlined_05.lo `test -f 'epsg_inlined_05.c' || echo '$(srcdir)/'`epsg_inlined_05.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_05.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_05.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_05.c' object='libsrsinit_la-epsg_inlined_05.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_05.lo `test -f 'epsg_inlined_05.c' || echo '$(srcdir)/'`epsg_inlined_05.c libsrsinit_la-epsg_inlined_06.lo: epsg_inlined_06.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_06.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_06.Tpo -c -o libsrsinit_la-epsg_inlined_06.lo `test -f 'epsg_inlined_06.c' || echo '$(srcdir)/'`epsg_inlined_06.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_06.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_06.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_06.c' object='libsrsinit_la-epsg_inlined_06.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_06.lo `test -f 'epsg_inlined_06.c' || echo '$(srcdir)/'`epsg_inlined_06.c libsrsinit_la-epsg_inlined_07.lo: epsg_inlined_07.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_07.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_07.Tpo -c -o libsrsinit_la-epsg_inlined_07.lo `test -f 'epsg_inlined_07.c' || echo '$(srcdir)/'`epsg_inlined_07.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_07.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_07.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_07.c' object='libsrsinit_la-epsg_inlined_07.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_07.lo `test -f 'epsg_inlined_07.c' || echo '$(srcdir)/'`epsg_inlined_07.c libsrsinit_la-epsg_inlined_08.lo: epsg_inlined_08.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_08.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_08.Tpo -c -o libsrsinit_la-epsg_inlined_08.lo `test -f 'epsg_inlined_08.c' || echo '$(srcdir)/'`epsg_inlined_08.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_08.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_08.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_08.c' object='libsrsinit_la-epsg_inlined_08.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_08.lo `test -f 'epsg_inlined_08.c' || echo '$(srcdir)/'`epsg_inlined_08.c libsrsinit_la-epsg_inlined_09.lo: epsg_inlined_09.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_09.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_09.Tpo -c -o libsrsinit_la-epsg_inlined_09.lo `test -f 'epsg_inlined_09.c' || echo '$(srcdir)/'`epsg_inlined_09.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_09.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_09.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_09.c' object='libsrsinit_la-epsg_inlined_09.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_09.lo `test -f 'epsg_inlined_09.c' || echo '$(srcdir)/'`epsg_inlined_09.c libsrsinit_la-epsg_inlined_10.lo: epsg_inlined_10.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_10.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_10.Tpo -c -o libsrsinit_la-epsg_inlined_10.lo `test -f 'epsg_inlined_10.c' || echo '$(srcdir)/'`epsg_inlined_10.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_10.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_10.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_10.c' object='libsrsinit_la-epsg_inlined_10.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_10.lo `test -f 'epsg_inlined_10.c' || echo '$(srcdir)/'`epsg_inlined_10.c libsrsinit_la-epsg_inlined_11.lo: epsg_inlined_11.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_11.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_11.Tpo -c -o libsrsinit_la-epsg_inlined_11.lo `test -f 'epsg_inlined_11.c' || echo '$(srcdir)/'`epsg_inlined_11.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_11.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_11.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_11.c' object='libsrsinit_la-epsg_inlined_11.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_11.lo `test -f 'epsg_inlined_11.c' || echo '$(srcdir)/'`epsg_inlined_11.c libsrsinit_la-epsg_inlined_12.lo: epsg_inlined_12.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_12.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_12.Tpo -c -o libsrsinit_la-epsg_inlined_12.lo `test -f 'epsg_inlined_12.c' || echo '$(srcdir)/'`epsg_inlined_12.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_12.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_12.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_12.c' object='libsrsinit_la-epsg_inlined_12.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_12.lo `test -f 'epsg_inlined_12.c' || echo '$(srcdir)/'`epsg_inlined_12.c libsrsinit_la-epsg_inlined_13.lo: epsg_inlined_13.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_13.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_13.Tpo -c -o libsrsinit_la-epsg_inlined_13.lo `test -f 'epsg_inlined_13.c' || echo '$(srcdir)/'`epsg_inlined_13.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_13.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_13.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_13.c' object='libsrsinit_la-epsg_inlined_13.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_13.lo `test -f 'epsg_inlined_13.c' || echo '$(srcdir)/'`epsg_inlined_13.c libsrsinit_la-epsg_inlined_14.lo: epsg_inlined_14.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_14.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_14.Tpo -c -o libsrsinit_la-epsg_inlined_14.lo `test -f 'epsg_inlined_14.c' || echo '$(srcdir)/'`epsg_inlined_14.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_14.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_14.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_14.c' object='libsrsinit_la-epsg_inlined_14.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_14.lo `test -f 'epsg_inlined_14.c' || echo '$(srcdir)/'`epsg_inlined_14.c libsrsinit_la-epsg_inlined_15.lo: epsg_inlined_15.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_15.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_15.Tpo -c -o libsrsinit_la-epsg_inlined_15.lo `test -f 'epsg_inlined_15.c' || echo '$(srcdir)/'`epsg_inlined_15.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_15.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_15.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_15.c' object='libsrsinit_la-epsg_inlined_15.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_15.lo `test -f 'epsg_inlined_15.c' || echo '$(srcdir)/'`epsg_inlined_15.c libsrsinit_la-epsg_inlined_16.lo: epsg_inlined_16.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_16.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_16.Tpo -c -o libsrsinit_la-epsg_inlined_16.lo `test -f 'epsg_inlined_16.c' || echo '$(srcdir)/'`epsg_inlined_16.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_16.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_16.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_16.c' object='libsrsinit_la-epsg_inlined_16.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_16.lo `test -f 'epsg_inlined_16.c' || echo '$(srcdir)/'`epsg_inlined_16.c libsrsinit_la-epsg_inlined_17.lo: epsg_inlined_17.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_17.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_17.Tpo -c -o libsrsinit_la-epsg_inlined_17.lo `test -f 'epsg_inlined_17.c' || echo '$(srcdir)/'`epsg_inlined_17.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_17.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_17.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_17.c' object='libsrsinit_la-epsg_inlined_17.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_17.lo `test -f 'epsg_inlined_17.c' || echo '$(srcdir)/'`epsg_inlined_17.c libsrsinit_la-epsg_inlined_18.lo: epsg_inlined_18.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_18.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_18.Tpo -c -o libsrsinit_la-epsg_inlined_18.lo `test -f 'epsg_inlined_18.c' || echo '$(srcdir)/'`epsg_inlined_18.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_18.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_18.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_18.c' object='libsrsinit_la-epsg_inlined_18.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_18.lo `test -f 'epsg_inlined_18.c' || echo '$(srcdir)/'`epsg_inlined_18.c libsrsinit_la-epsg_inlined_19.lo: epsg_inlined_19.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_19.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_19.Tpo -c -o libsrsinit_la-epsg_inlined_19.lo `test -f 'epsg_inlined_19.c' || echo '$(srcdir)/'`epsg_inlined_19.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_19.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_19.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_19.c' object='libsrsinit_la-epsg_inlined_19.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_19.lo `test -f 'epsg_inlined_19.c' || echo '$(srcdir)/'`epsg_inlined_19.c libsrsinit_la-epsg_inlined_20.lo: epsg_inlined_20.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_20.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_20.Tpo -c -o libsrsinit_la-epsg_inlined_20.lo `test -f 'epsg_inlined_20.c' || echo '$(srcdir)/'`epsg_inlined_20.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_20.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_20.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_20.c' object='libsrsinit_la-epsg_inlined_20.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_20.lo `test -f 'epsg_inlined_20.c' || echo '$(srcdir)/'`epsg_inlined_20.c libsrsinit_la-epsg_inlined_21.lo: epsg_inlined_21.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_21.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_21.Tpo -c -o libsrsinit_la-epsg_inlined_21.lo `test -f 'epsg_inlined_21.c' || echo '$(srcdir)/'`epsg_inlined_21.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_21.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_21.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_21.c' object='libsrsinit_la-epsg_inlined_21.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_21.lo `test -f 'epsg_inlined_21.c' || echo '$(srcdir)/'`epsg_inlined_21.c libsrsinit_la-epsg_inlined_22.lo: epsg_inlined_22.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_22.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_22.Tpo -c -o libsrsinit_la-epsg_inlined_22.lo `test -f 'epsg_inlined_22.c' || echo '$(srcdir)/'`epsg_inlined_22.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_22.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_22.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_22.c' object='libsrsinit_la-epsg_inlined_22.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_22.lo `test -f 'epsg_inlined_22.c' || echo '$(srcdir)/'`epsg_inlined_22.c libsrsinit_la-epsg_inlined_23.lo: epsg_inlined_23.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_23.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_23.Tpo -c -o libsrsinit_la-epsg_inlined_23.lo `test -f 'epsg_inlined_23.c' || echo '$(srcdir)/'`epsg_inlined_23.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_23.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_23.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_23.c' object='libsrsinit_la-epsg_inlined_23.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_23.lo `test -f 'epsg_inlined_23.c' || echo '$(srcdir)/'`epsg_inlined_23.c libsrsinit_la-epsg_inlined_24.lo: epsg_inlined_24.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_24.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_24.Tpo -c -o libsrsinit_la-epsg_inlined_24.lo `test -f 'epsg_inlined_24.c' || echo '$(srcdir)/'`epsg_inlined_24.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_24.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_24.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_24.c' object='libsrsinit_la-epsg_inlined_24.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_24.lo `test -f 'epsg_inlined_24.c' || echo '$(srcdir)/'`epsg_inlined_24.c libsrsinit_la-epsg_inlined_25.lo: epsg_inlined_25.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_25.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_25.Tpo -c -o libsrsinit_la-epsg_inlined_25.lo `test -f 'epsg_inlined_25.c' || echo '$(srcdir)/'`epsg_inlined_25.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_25.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_25.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_25.c' object='libsrsinit_la-epsg_inlined_25.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_25.lo `test -f 'epsg_inlined_25.c' || echo '$(srcdir)/'`epsg_inlined_25.c libsrsinit_la-epsg_inlined_26.lo: epsg_inlined_26.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_26.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_26.Tpo -c -o libsrsinit_la-epsg_inlined_26.lo `test -f 'epsg_inlined_26.c' || echo '$(srcdir)/'`epsg_inlined_26.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_26.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_26.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_26.c' object='libsrsinit_la-epsg_inlined_26.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_26.lo `test -f 'epsg_inlined_26.c' || echo '$(srcdir)/'`epsg_inlined_26.c libsrsinit_la-epsg_inlined_27.lo: epsg_inlined_27.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_27.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_27.Tpo -c -o libsrsinit_la-epsg_inlined_27.lo `test -f 'epsg_inlined_27.c' || echo '$(srcdir)/'`epsg_inlined_27.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_27.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_27.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_27.c' object='libsrsinit_la-epsg_inlined_27.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_27.lo `test -f 'epsg_inlined_27.c' || echo '$(srcdir)/'`epsg_inlined_27.c libsrsinit_la-epsg_inlined_28.lo: epsg_inlined_28.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_28.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_28.Tpo -c -o libsrsinit_la-epsg_inlined_28.lo `test -f 'epsg_inlined_28.c' || echo '$(srcdir)/'`epsg_inlined_28.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_28.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_28.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_28.c' object='libsrsinit_la-epsg_inlined_28.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_28.lo `test -f 'epsg_inlined_28.c' || echo '$(srcdir)/'`epsg_inlined_28.c libsrsinit_la-epsg_inlined_29.lo: epsg_inlined_29.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_29.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_29.Tpo -c -o libsrsinit_la-epsg_inlined_29.lo `test -f 'epsg_inlined_29.c' || echo '$(srcdir)/'`epsg_inlined_29.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_29.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_29.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_29.c' object='libsrsinit_la-epsg_inlined_29.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_29.lo `test -f 'epsg_inlined_29.c' || echo '$(srcdir)/'`epsg_inlined_29.c libsrsinit_la-epsg_inlined_30.lo: epsg_inlined_30.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_30.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_30.Tpo -c -o libsrsinit_la-epsg_inlined_30.lo `test -f 'epsg_inlined_30.c' || echo '$(srcdir)/'`epsg_inlined_30.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_30.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_30.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_30.c' object='libsrsinit_la-epsg_inlined_30.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_30.lo `test -f 'epsg_inlined_30.c' || echo '$(srcdir)/'`epsg_inlined_30.c libsrsinit_la-epsg_inlined_31.lo: epsg_inlined_31.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_31.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_31.Tpo -c -o libsrsinit_la-epsg_inlined_31.lo `test -f 'epsg_inlined_31.c' || echo '$(srcdir)/'`epsg_inlined_31.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_31.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_31.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_31.c' object='libsrsinit_la-epsg_inlined_31.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_31.lo `test -f 'epsg_inlined_31.c' || echo '$(srcdir)/'`epsg_inlined_31.c libsrsinit_la-epsg_inlined_32.lo: epsg_inlined_32.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_32.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_32.Tpo -c -o libsrsinit_la-epsg_inlined_32.lo `test -f 'epsg_inlined_32.c' || echo '$(srcdir)/'`epsg_inlined_32.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_32.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_32.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_32.c' object='libsrsinit_la-epsg_inlined_32.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_32.lo `test -f 'epsg_inlined_32.c' || echo '$(srcdir)/'`epsg_inlined_32.c libsrsinit_la-epsg_inlined_33.lo: epsg_inlined_33.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_33.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_33.Tpo -c -o libsrsinit_la-epsg_inlined_33.lo `test -f 'epsg_inlined_33.c' || echo '$(srcdir)/'`epsg_inlined_33.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_33.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_33.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_33.c' object='libsrsinit_la-epsg_inlined_33.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_33.lo `test -f 'epsg_inlined_33.c' || echo '$(srcdir)/'`epsg_inlined_33.c libsrsinit_la-epsg_inlined_34.lo: epsg_inlined_34.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_34.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_34.Tpo -c -o libsrsinit_la-epsg_inlined_34.lo `test -f 'epsg_inlined_34.c' || echo '$(srcdir)/'`epsg_inlined_34.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_34.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_34.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_34.c' object='libsrsinit_la-epsg_inlined_34.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_34.lo `test -f 'epsg_inlined_34.c' || echo '$(srcdir)/'`epsg_inlined_34.c libsrsinit_la-epsg_inlined_35.lo: epsg_inlined_35.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_35.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_35.Tpo -c -o libsrsinit_la-epsg_inlined_35.lo `test -f 'epsg_inlined_35.c' || echo '$(srcdir)/'`epsg_inlined_35.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_35.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_35.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_35.c' object='libsrsinit_la-epsg_inlined_35.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_35.lo `test -f 'epsg_inlined_35.c' || echo '$(srcdir)/'`epsg_inlined_35.c libsrsinit_la-epsg_inlined_36.lo: epsg_inlined_36.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_36.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_36.Tpo -c -o libsrsinit_la-epsg_inlined_36.lo `test -f 'epsg_inlined_36.c' || echo '$(srcdir)/'`epsg_inlined_36.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_36.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_36.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_36.c' object='libsrsinit_la-epsg_inlined_36.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_36.lo `test -f 'epsg_inlined_36.c' || echo '$(srcdir)/'`epsg_inlined_36.c libsrsinit_la-epsg_inlined_37.lo: epsg_inlined_37.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_37.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_37.Tpo -c -o libsrsinit_la-epsg_inlined_37.lo `test -f 'epsg_inlined_37.c' || echo '$(srcdir)/'`epsg_inlined_37.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_37.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_37.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_37.c' object='libsrsinit_la-epsg_inlined_37.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_37.lo `test -f 'epsg_inlined_37.c' || echo '$(srcdir)/'`epsg_inlined_37.c libsrsinit_la-epsg_inlined_38.lo: epsg_inlined_38.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_38.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_38.Tpo -c -o libsrsinit_la-epsg_inlined_38.lo `test -f 'epsg_inlined_38.c' || echo '$(srcdir)/'`epsg_inlined_38.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_38.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_38.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_38.c' object='libsrsinit_la-epsg_inlined_38.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_38.lo `test -f 'epsg_inlined_38.c' || echo '$(srcdir)/'`epsg_inlined_38.c libsrsinit_la-epsg_inlined_39.lo: epsg_inlined_39.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_39.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_39.Tpo -c -o libsrsinit_la-epsg_inlined_39.lo `test -f 'epsg_inlined_39.c' || echo '$(srcdir)/'`epsg_inlined_39.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_39.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_39.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_39.c' object='libsrsinit_la-epsg_inlined_39.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_39.lo `test -f 'epsg_inlined_39.c' || echo '$(srcdir)/'`epsg_inlined_39.c libsrsinit_la-epsg_inlined_40.lo: epsg_inlined_40.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_40.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_40.Tpo -c -o libsrsinit_la-epsg_inlined_40.lo `test -f 'epsg_inlined_40.c' || echo '$(srcdir)/'`epsg_inlined_40.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_40.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_40.c' object='libsrsinit_la-epsg_inlined_40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_40.lo `test -f 'epsg_inlined_40.c' || echo '$(srcdir)/'`epsg_inlined_40.c libsrsinit_la-epsg_inlined_41.lo: epsg_inlined_41.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_41.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_41.Tpo -c -o libsrsinit_la-epsg_inlined_41.lo `test -f 'epsg_inlined_41.c' || echo '$(srcdir)/'`epsg_inlined_41.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_41.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_41.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_41.c' object='libsrsinit_la-epsg_inlined_41.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_41.lo `test -f 'epsg_inlined_41.c' || echo '$(srcdir)/'`epsg_inlined_41.c libsrsinit_la-epsg_inlined_42.lo: epsg_inlined_42.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_42.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_42.Tpo -c -o libsrsinit_la-epsg_inlined_42.lo `test -f 'epsg_inlined_42.c' || echo '$(srcdir)/'`epsg_inlined_42.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_42.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_42.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_42.c' object='libsrsinit_la-epsg_inlined_42.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_42.lo `test -f 'epsg_inlined_42.c' || echo '$(srcdir)/'`epsg_inlined_42.c libsrsinit_la-epsg_inlined_43.lo: epsg_inlined_43.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_43.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_43.Tpo -c -o libsrsinit_la-epsg_inlined_43.lo `test -f 'epsg_inlined_43.c' || echo '$(srcdir)/'`epsg_inlined_43.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_43.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_43.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_43.c' object='libsrsinit_la-epsg_inlined_43.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_43.lo `test -f 'epsg_inlined_43.c' || echo '$(srcdir)/'`epsg_inlined_43.c libsrsinit_la-epsg_inlined_44.lo: epsg_inlined_44.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_44.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_44.Tpo -c -o libsrsinit_la-epsg_inlined_44.lo `test -f 'epsg_inlined_44.c' || echo '$(srcdir)/'`epsg_inlined_44.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_44.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_44.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_44.c' object='libsrsinit_la-epsg_inlined_44.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_44.lo `test -f 'epsg_inlined_44.c' || echo '$(srcdir)/'`epsg_inlined_44.c libsrsinit_la-epsg_inlined_45.lo: epsg_inlined_45.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_45.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_45.Tpo -c -o libsrsinit_la-epsg_inlined_45.lo `test -f 'epsg_inlined_45.c' || echo '$(srcdir)/'`epsg_inlined_45.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_45.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_45.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_45.c' object='libsrsinit_la-epsg_inlined_45.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_45.lo `test -f 'epsg_inlined_45.c' || echo '$(srcdir)/'`epsg_inlined_45.c libsrsinit_la-epsg_inlined_46.lo: epsg_inlined_46.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_46.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_46.Tpo -c -o libsrsinit_la-epsg_inlined_46.lo `test -f 'epsg_inlined_46.c' || echo '$(srcdir)/'`epsg_inlined_46.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_46.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_46.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_46.c' object='libsrsinit_la-epsg_inlined_46.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_46.lo `test -f 'epsg_inlined_46.c' || echo '$(srcdir)/'`epsg_inlined_46.c libsrsinit_la-epsg_inlined_wgs84_00.lo: epsg_inlined_wgs84_00.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_wgs84_00.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Tpo -c -o libsrsinit_la-epsg_inlined_wgs84_00.lo `test -f 'epsg_inlined_wgs84_00.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_00.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_00.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_wgs84_00.c' object='libsrsinit_la-epsg_inlined_wgs84_00.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_wgs84_00.lo `test -f 'epsg_inlined_wgs84_00.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_00.c libsrsinit_la-epsg_inlined_wgs84_01.lo: epsg_inlined_wgs84_01.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_wgs84_01.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Tpo -c -o libsrsinit_la-epsg_inlined_wgs84_01.lo `test -f 'epsg_inlined_wgs84_01.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_01.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_wgs84_01.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_wgs84_01.c' object='libsrsinit_la-epsg_inlined_wgs84_01.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_wgs84_01.lo `test -f 'epsg_inlined_wgs84_01.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_01.c libsrsinit_la-epsg_inlined_prussian.lo: epsg_inlined_prussian.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_prussian.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Tpo -c -o libsrsinit_la-epsg_inlined_prussian.lo `test -f 'epsg_inlined_prussian.c' || echo '$(srcdir)/'`epsg_inlined_prussian.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_prussian.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_prussian.c' object='libsrsinit_la-epsg_inlined_prussian.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_prussian.lo `test -f 'epsg_inlined_prussian.c' || echo '$(srcdir)/'`epsg_inlined_prussian.c libsrsinit_la-epsg_inlined_extra.lo: epsg_inlined_extra.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -MT libsrsinit_la-epsg_inlined_extra.lo -MD -MP -MF $(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Tpo -c -o libsrsinit_la-epsg_inlined_extra.lo `test -f 'epsg_inlined_extra.c' || echo '$(srcdir)/'`epsg_inlined_extra.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Tpo $(DEPDIR)/libsrsinit_la-epsg_inlined_extra.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_extra.c' object='libsrsinit_la-epsg_inlined_extra.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsrsinit_la_CFLAGS) $(CFLAGS) -c -o libsrsinit_la-epsg_inlined_extra.lo `test -f 'epsg_inlined_extra.c' || echo '$(srcdir)/'`epsg_inlined_extra.c srsinit_la-srs_init.lo: srs_init.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-srs_init.lo -MD -MP -MF $(DEPDIR)/srsinit_la-srs_init.Tpo -c -o srsinit_la-srs_init.lo `test -f 'srs_init.c' || echo '$(srcdir)/'`srs_init.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-srs_init.Tpo $(DEPDIR)/srsinit_la-srs_init.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='srs_init.c' object='srsinit_la-srs_init.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-srs_init.lo `test -f 'srs_init.c' || echo '$(srcdir)/'`srs_init.c srsinit_la-epsg_inlined_00.lo: epsg_inlined_00.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_00.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_00.Tpo -c -o srsinit_la-epsg_inlined_00.lo `test -f 'epsg_inlined_00.c' || echo '$(srcdir)/'`epsg_inlined_00.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_00.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_00.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_00.c' object='srsinit_la-epsg_inlined_00.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_00.lo `test -f 'epsg_inlined_00.c' || echo '$(srcdir)/'`epsg_inlined_00.c srsinit_la-epsg_inlined_01.lo: epsg_inlined_01.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_01.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_01.Tpo -c -o srsinit_la-epsg_inlined_01.lo `test -f 'epsg_inlined_01.c' || echo '$(srcdir)/'`epsg_inlined_01.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_01.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_01.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_01.c' object='srsinit_la-epsg_inlined_01.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_01.lo `test -f 'epsg_inlined_01.c' || echo '$(srcdir)/'`epsg_inlined_01.c srsinit_la-epsg_inlined_02.lo: epsg_inlined_02.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_02.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_02.Tpo -c -o srsinit_la-epsg_inlined_02.lo `test -f 'epsg_inlined_02.c' || echo '$(srcdir)/'`epsg_inlined_02.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_02.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_02.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_02.c' object='srsinit_la-epsg_inlined_02.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_02.lo `test -f 'epsg_inlined_02.c' || echo '$(srcdir)/'`epsg_inlined_02.c srsinit_la-epsg_inlined_03.lo: epsg_inlined_03.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_03.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_03.Tpo -c -o srsinit_la-epsg_inlined_03.lo `test -f 'epsg_inlined_03.c' || echo '$(srcdir)/'`epsg_inlined_03.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_03.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_03.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_03.c' object='srsinit_la-epsg_inlined_03.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_03.lo `test -f 'epsg_inlined_03.c' || echo '$(srcdir)/'`epsg_inlined_03.c srsinit_la-epsg_inlined_04.lo: epsg_inlined_04.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_04.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_04.Tpo -c -o srsinit_la-epsg_inlined_04.lo `test -f 'epsg_inlined_04.c' || echo '$(srcdir)/'`epsg_inlined_04.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_04.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_04.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_04.c' object='srsinit_la-epsg_inlined_04.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_04.lo `test -f 'epsg_inlined_04.c' || echo '$(srcdir)/'`epsg_inlined_04.c srsinit_la-epsg_inlined_05.lo: epsg_inlined_05.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_05.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_05.Tpo -c -o srsinit_la-epsg_inlined_05.lo `test -f 'epsg_inlined_05.c' || echo '$(srcdir)/'`epsg_inlined_05.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_05.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_05.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_05.c' object='srsinit_la-epsg_inlined_05.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_05.lo `test -f 'epsg_inlined_05.c' || echo '$(srcdir)/'`epsg_inlined_05.c srsinit_la-epsg_inlined_06.lo: epsg_inlined_06.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_06.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_06.Tpo -c -o srsinit_la-epsg_inlined_06.lo `test -f 'epsg_inlined_06.c' || echo '$(srcdir)/'`epsg_inlined_06.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_06.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_06.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_06.c' object='srsinit_la-epsg_inlined_06.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_06.lo `test -f 'epsg_inlined_06.c' || echo '$(srcdir)/'`epsg_inlined_06.c srsinit_la-epsg_inlined_07.lo: epsg_inlined_07.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_07.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_07.Tpo -c -o srsinit_la-epsg_inlined_07.lo `test -f 'epsg_inlined_07.c' || echo '$(srcdir)/'`epsg_inlined_07.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_07.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_07.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_07.c' object='srsinit_la-epsg_inlined_07.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_07.lo `test -f 'epsg_inlined_07.c' || echo '$(srcdir)/'`epsg_inlined_07.c srsinit_la-epsg_inlined_08.lo: epsg_inlined_08.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_08.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_08.Tpo -c -o srsinit_la-epsg_inlined_08.lo `test -f 'epsg_inlined_08.c' || echo '$(srcdir)/'`epsg_inlined_08.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_08.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_08.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_08.c' object='srsinit_la-epsg_inlined_08.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_08.lo `test -f 'epsg_inlined_08.c' || echo '$(srcdir)/'`epsg_inlined_08.c srsinit_la-epsg_inlined_09.lo: epsg_inlined_09.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_09.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_09.Tpo -c -o srsinit_la-epsg_inlined_09.lo `test -f 'epsg_inlined_09.c' || echo '$(srcdir)/'`epsg_inlined_09.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_09.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_09.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_09.c' object='srsinit_la-epsg_inlined_09.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_09.lo `test -f 'epsg_inlined_09.c' || echo '$(srcdir)/'`epsg_inlined_09.c srsinit_la-epsg_inlined_10.lo: epsg_inlined_10.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_10.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_10.Tpo -c -o srsinit_la-epsg_inlined_10.lo `test -f 'epsg_inlined_10.c' || echo '$(srcdir)/'`epsg_inlined_10.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_10.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_10.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_10.c' object='srsinit_la-epsg_inlined_10.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_10.lo `test -f 'epsg_inlined_10.c' || echo '$(srcdir)/'`epsg_inlined_10.c srsinit_la-epsg_inlined_11.lo: epsg_inlined_11.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_11.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_11.Tpo -c -o srsinit_la-epsg_inlined_11.lo `test -f 'epsg_inlined_11.c' || echo '$(srcdir)/'`epsg_inlined_11.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_11.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_11.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_11.c' object='srsinit_la-epsg_inlined_11.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_11.lo `test -f 'epsg_inlined_11.c' || echo '$(srcdir)/'`epsg_inlined_11.c srsinit_la-epsg_inlined_12.lo: epsg_inlined_12.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_12.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_12.Tpo -c -o srsinit_la-epsg_inlined_12.lo `test -f 'epsg_inlined_12.c' || echo '$(srcdir)/'`epsg_inlined_12.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_12.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_12.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_12.c' object='srsinit_la-epsg_inlined_12.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_12.lo `test -f 'epsg_inlined_12.c' || echo '$(srcdir)/'`epsg_inlined_12.c srsinit_la-epsg_inlined_13.lo: epsg_inlined_13.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_13.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_13.Tpo -c -o srsinit_la-epsg_inlined_13.lo `test -f 'epsg_inlined_13.c' || echo '$(srcdir)/'`epsg_inlined_13.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_13.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_13.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_13.c' object='srsinit_la-epsg_inlined_13.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_13.lo `test -f 'epsg_inlined_13.c' || echo '$(srcdir)/'`epsg_inlined_13.c srsinit_la-epsg_inlined_14.lo: epsg_inlined_14.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_14.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_14.Tpo -c -o srsinit_la-epsg_inlined_14.lo `test -f 'epsg_inlined_14.c' || echo '$(srcdir)/'`epsg_inlined_14.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_14.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_14.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_14.c' object='srsinit_la-epsg_inlined_14.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_14.lo `test -f 'epsg_inlined_14.c' || echo '$(srcdir)/'`epsg_inlined_14.c srsinit_la-epsg_inlined_15.lo: epsg_inlined_15.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_15.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_15.Tpo -c -o srsinit_la-epsg_inlined_15.lo `test -f 'epsg_inlined_15.c' || echo '$(srcdir)/'`epsg_inlined_15.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_15.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_15.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_15.c' object='srsinit_la-epsg_inlined_15.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_15.lo `test -f 'epsg_inlined_15.c' || echo '$(srcdir)/'`epsg_inlined_15.c srsinit_la-epsg_inlined_16.lo: epsg_inlined_16.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_16.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_16.Tpo -c -o srsinit_la-epsg_inlined_16.lo `test -f 'epsg_inlined_16.c' || echo '$(srcdir)/'`epsg_inlined_16.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_16.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_16.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_16.c' object='srsinit_la-epsg_inlined_16.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_16.lo `test -f 'epsg_inlined_16.c' || echo '$(srcdir)/'`epsg_inlined_16.c srsinit_la-epsg_inlined_17.lo: epsg_inlined_17.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_17.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_17.Tpo -c -o srsinit_la-epsg_inlined_17.lo `test -f 'epsg_inlined_17.c' || echo '$(srcdir)/'`epsg_inlined_17.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_17.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_17.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_17.c' object='srsinit_la-epsg_inlined_17.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_17.lo `test -f 'epsg_inlined_17.c' || echo '$(srcdir)/'`epsg_inlined_17.c srsinit_la-epsg_inlined_18.lo: epsg_inlined_18.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_18.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_18.Tpo -c -o srsinit_la-epsg_inlined_18.lo `test -f 'epsg_inlined_18.c' || echo '$(srcdir)/'`epsg_inlined_18.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_18.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_18.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_18.c' object='srsinit_la-epsg_inlined_18.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_18.lo `test -f 'epsg_inlined_18.c' || echo '$(srcdir)/'`epsg_inlined_18.c srsinit_la-epsg_inlined_19.lo: epsg_inlined_19.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_19.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_19.Tpo -c -o srsinit_la-epsg_inlined_19.lo `test -f 'epsg_inlined_19.c' || echo '$(srcdir)/'`epsg_inlined_19.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_19.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_19.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_19.c' object='srsinit_la-epsg_inlined_19.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_19.lo `test -f 'epsg_inlined_19.c' || echo '$(srcdir)/'`epsg_inlined_19.c srsinit_la-epsg_inlined_20.lo: epsg_inlined_20.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_20.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_20.Tpo -c -o srsinit_la-epsg_inlined_20.lo `test -f 'epsg_inlined_20.c' || echo '$(srcdir)/'`epsg_inlined_20.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_20.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_20.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_20.c' object='srsinit_la-epsg_inlined_20.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_20.lo `test -f 'epsg_inlined_20.c' || echo '$(srcdir)/'`epsg_inlined_20.c srsinit_la-epsg_inlined_21.lo: epsg_inlined_21.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_21.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_21.Tpo -c -o srsinit_la-epsg_inlined_21.lo `test -f 'epsg_inlined_21.c' || echo '$(srcdir)/'`epsg_inlined_21.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_21.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_21.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_21.c' object='srsinit_la-epsg_inlined_21.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_21.lo `test -f 'epsg_inlined_21.c' || echo '$(srcdir)/'`epsg_inlined_21.c srsinit_la-epsg_inlined_22.lo: epsg_inlined_22.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_22.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_22.Tpo -c -o srsinit_la-epsg_inlined_22.lo `test -f 'epsg_inlined_22.c' || echo '$(srcdir)/'`epsg_inlined_22.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_22.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_22.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_22.c' object='srsinit_la-epsg_inlined_22.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_22.lo `test -f 'epsg_inlined_22.c' || echo '$(srcdir)/'`epsg_inlined_22.c srsinit_la-epsg_inlined_23.lo: epsg_inlined_23.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_23.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_23.Tpo -c -o srsinit_la-epsg_inlined_23.lo `test -f 'epsg_inlined_23.c' || echo '$(srcdir)/'`epsg_inlined_23.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_23.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_23.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_23.c' object='srsinit_la-epsg_inlined_23.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_23.lo `test -f 'epsg_inlined_23.c' || echo '$(srcdir)/'`epsg_inlined_23.c srsinit_la-epsg_inlined_24.lo: epsg_inlined_24.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_24.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_24.Tpo -c -o srsinit_la-epsg_inlined_24.lo `test -f 'epsg_inlined_24.c' || echo '$(srcdir)/'`epsg_inlined_24.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_24.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_24.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_24.c' object='srsinit_la-epsg_inlined_24.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_24.lo `test -f 'epsg_inlined_24.c' || echo '$(srcdir)/'`epsg_inlined_24.c srsinit_la-epsg_inlined_25.lo: epsg_inlined_25.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_25.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_25.Tpo -c -o srsinit_la-epsg_inlined_25.lo `test -f 'epsg_inlined_25.c' || echo '$(srcdir)/'`epsg_inlined_25.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_25.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_25.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_25.c' object='srsinit_la-epsg_inlined_25.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_25.lo `test -f 'epsg_inlined_25.c' || echo '$(srcdir)/'`epsg_inlined_25.c srsinit_la-epsg_inlined_26.lo: epsg_inlined_26.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_26.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_26.Tpo -c -o srsinit_la-epsg_inlined_26.lo `test -f 'epsg_inlined_26.c' || echo '$(srcdir)/'`epsg_inlined_26.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_26.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_26.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_26.c' object='srsinit_la-epsg_inlined_26.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_26.lo `test -f 'epsg_inlined_26.c' || echo '$(srcdir)/'`epsg_inlined_26.c srsinit_la-epsg_inlined_27.lo: epsg_inlined_27.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_27.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_27.Tpo -c -o srsinit_la-epsg_inlined_27.lo `test -f 'epsg_inlined_27.c' || echo '$(srcdir)/'`epsg_inlined_27.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_27.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_27.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_27.c' object='srsinit_la-epsg_inlined_27.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_27.lo `test -f 'epsg_inlined_27.c' || echo '$(srcdir)/'`epsg_inlined_27.c srsinit_la-epsg_inlined_28.lo: epsg_inlined_28.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_28.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_28.Tpo -c -o srsinit_la-epsg_inlined_28.lo `test -f 'epsg_inlined_28.c' || echo '$(srcdir)/'`epsg_inlined_28.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_28.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_28.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_28.c' object='srsinit_la-epsg_inlined_28.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_28.lo `test -f 'epsg_inlined_28.c' || echo '$(srcdir)/'`epsg_inlined_28.c srsinit_la-epsg_inlined_29.lo: epsg_inlined_29.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_29.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_29.Tpo -c -o srsinit_la-epsg_inlined_29.lo `test -f 'epsg_inlined_29.c' || echo '$(srcdir)/'`epsg_inlined_29.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_29.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_29.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_29.c' object='srsinit_la-epsg_inlined_29.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_29.lo `test -f 'epsg_inlined_29.c' || echo '$(srcdir)/'`epsg_inlined_29.c srsinit_la-epsg_inlined_30.lo: epsg_inlined_30.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_30.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_30.Tpo -c -o srsinit_la-epsg_inlined_30.lo `test -f 'epsg_inlined_30.c' || echo '$(srcdir)/'`epsg_inlined_30.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_30.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_30.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_30.c' object='srsinit_la-epsg_inlined_30.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_30.lo `test -f 'epsg_inlined_30.c' || echo '$(srcdir)/'`epsg_inlined_30.c srsinit_la-epsg_inlined_31.lo: epsg_inlined_31.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_31.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_31.Tpo -c -o srsinit_la-epsg_inlined_31.lo `test -f 'epsg_inlined_31.c' || echo '$(srcdir)/'`epsg_inlined_31.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_31.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_31.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_31.c' object='srsinit_la-epsg_inlined_31.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_31.lo `test -f 'epsg_inlined_31.c' || echo '$(srcdir)/'`epsg_inlined_31.c srsinit_la-epsg_inlined_32.lo: epsg_inlined_32.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_32.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_32.Tpo -c -o srsinit_la-epsg_inlined_32.lo `test -f 'epsg_inlined_32.c' || echo '$(srcdir)/'`epsg_inlined_32.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_32.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_32.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_32.c' object='srsinit_la-epsg_inlined_32.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_32.lo `test -f 'epsg_inlined_32.c' || echo '$(srcdir)/'`epsg_inlined_32.c srsinit_la-epsg_inlined_33.lo: epsg_inlined_33.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_33.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_33.Tpo -c -o srsinit_la-epsg_inlined_33.lo `test -f 'epsg_inlined_33.c' || echo '$(srcdir)/'`epsg_inlined_33.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_33.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_33.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_33.c' object='srsinit_la-epsg_inlined_33.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_33.lo `test -f 'epsg_inlined_33.c' || echo '$(srcdir)/'`epsg_inlined_33.c srsinit_la-epsg_inlined_34.lo: epsg_inlined_34.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_34.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_34.Tpo -c -o srsinit_la-epsg_inlined_34.lo `test -f 'epsg_inlined_34.c' || echo '$(srcdir)/'`epsg_inlined_34.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_34.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_34.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_34.c' object='srsinit_la-epsg_inlined_34.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_34.lo `test -f 'epsg_inlined_34.c' || echo '$(srcdir)/'`epsg_inlined_34.c srsinit_la-epsg_inlined_35.lo: epsg_inlined_35.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_35.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_35.Tpo -c -o srsinit_la-epsg_inlined_35.lo `test -f 'epsg_inlined_35.c' || echo '$(srcdir)/'`epsg_inlined_35.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_35.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_35.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_35.c' object='srsinit_la-epsg_inlined_35.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_35.lo `test -f 'epsg_inlined_35.c' || echo '$(srcdir)/'`epsg_inlined_35.c srsinit_la-epsg_inlined_36.lo: epsg_inlined_36.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_36.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_36.Tpo -c -o srsinit_la-epsg_inlined_36.lo `test -f 'epsg_inlined_36.c' || echo '$(srcdir)/'`epsg_inlined_36.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_36.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_36.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_36.c' object='srsinit_la-epsg_inlined_36.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_36.lo `test -f 'epsg_inlined_36.c' || echo '$(srcdir)/'`epsg_inlined_36.c srsinit_la-epsg_inlined_37.lo: epsg_inlined_37.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_37.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_37.Tpo -c -o srsinit_la-epsg_inlined_37.lo `test -f 'epsg_inlined_37.c' || echo '$(srcdir)/'`epsg_inlined_37.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_37.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_37.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_37.c' object='srsinit_la-epsg_inlined_37.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_37.lo `test -f 'epsg_inlined_37.c' || echo '$(srcdir)/'`epsg_inlined_37.c srsinit_la-epsg_inlined_38.lo: epsg_inlined_38.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_38.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_38.Tpo -c -o srsinit_la-epsg_inlined_38.lo `test -f 'epsg_inlined_38.c' || echo '$(srcdir)/'`epsg_inlined_38.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_38.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_38.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_38.c' object='srsinit_la-epsg_inlined_38.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_38.lo `test -f 'epsg_inlined_38.c' || echo '$(srcdir)/'`epsg_inlined_38.c srsinit_la-epsg_inlined_39.lo: epsg_inlined_39.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_39.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_39.Tpo -c -o srsinit_la-epsg_inlined_39.lo `test -f 'epsg_inlined_39.c' || echo '$(srcdir)/'`epsg_inlined_39.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_39.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_39.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_39.c' object='srsinit_la-epsg_inlined_39.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_39.lo `test -f 'epsg_inlined_39.c' || echo '$(srcdir)/'`epsg_inlined_39.c srsinit_la-epsg_inlined_40.lo: epsg_inlined_40.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_40.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_40.Tpo -c -o srsinit_la-epsg_inlined_40.lo `test -f 'epsg_inlined_40.c' || echo '$(srcdir)/'`epsg_inlined_40.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_40.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_40.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_40.c' object='srsinit_la-epsg_inlined_40.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_40.lo `test -f 'epsg_inlined_40.c' || echo '$(srcdir)/'`epsg_inlined_40.c srsinit_la-epsg_inlined_41.lo: epsg_inlined_41.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_41.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_41.Tpo -c -o srsinit_la-epsg_inlined_41.lo `test -f 'epsg_inlined_41.c' || echo '$(srcdir)/'`epsg_inlined_41.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_41.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_41.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_41.c' object='srsinit_la-epsg_inlined_41.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_41.lo `test -f 'epsg_inlined_41.c' || echo '$(srcdir)/'`epsg_inlined_41.c srsinit_la-epsg_inlined_42.lo: epsg_inlined_42.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_42.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_42.Tpo -c -o srsinit_la-epsg_inlined_42.lo `test -f 'epsg_inlined_42.c' || echo '$(srcdir)/'`epsg_inlined_42.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_42.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_42.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_42.c' object='srsinit_la-epsg_inlined_42.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_42.lo `test -f 'epsg_inlined_42.c' || echo '$(srcdir)/'`epsg_inlined_42.c srsinit_la-epsg_inlined_43.lo: epsg_inlined_43.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_43.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_43.Tpo -c -o srsinit_la-epsg_inlined_43.lo `test -f 'epsg_inlined_43.c' || echo '$(srcdir)/'`epsg_inlined_43.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_43.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_43.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_43.c' object='srsinit_la-epsg_inlined_43.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_43.lo `test -f 'epsg_inlined_43.c' || echo '$(srcdir)/'`epsg_inlined_43.c srsinit_la-epsg_inlined_44.lo: epsg_inlined_44.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_44.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_44.Tpo -c -o srsinit_la-epsg_inlined_44.lo `test -f 'epsg_inlined_44.c' || echo '$(srcdir)/'`epsg_inlined_44.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_44.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_44.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_44.c' object='srsinit_la-epsg_inlined_44.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_44.lo `test -f 'epsg_inlined_44.c' || echo '$(srcdir)/'`epsg_inlined_44.c srsinit_la-epsg_inlined_45.lo: epsg_inlined_45.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_45.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_45.Tpo -c -o srsinit_la-epsg_inlined_45.lo `test -f 'epsg_inlined_45.c' || echo '$(srcdir)/'`epsg_inlined_45.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_45.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_45.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_45.c' object='srsinit_la-epsg_inlined_45.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_45.lo `test -f 'epsg_inlined_45.c' || echo '$(srcdir)/'`epsg_inlined_45.c srsinit_la-epsg_inlined_46.lo: epsg_inlined_46.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_46.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_46.Tpo -c -o srsinit_la-epsg_inlined_46.lo `test -f 'epsg_inlined_46.c' || echo '$(srcdir)/'`epsg_inlined_46.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_46.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_46.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_46.c' object='srsinit_la-epsg_inlined_46.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_46.lo `test -f 'epsg_inlined_46.c' || echo '$(srcdir)/'`epsg_inlined_46.c srsinit_la-epsg_inlined_wgs84_00.lo: epsg_inlined_wgs84_00.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_wgs84_00.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_wgs84_00.Tpo -c -o srsinit_la-epsg_inlined_wgs84_00.lo `test -f 'epsg_inlined_wgs84_00.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_00.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_wgs84_00.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_wgs84_00.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_wgs84_00.c' object='srsinit_la-epsg_inlined_wgs84_00.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_wgs84_00.lo `test -f 'epsg_inlined_wgs84_00.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_00.c srsinit_la-epsg_inlined_wgs84_01.lo: epsg_inlined_wgs84_01.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_wgs84_01.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_wgs84_01.Tpo -c -o srsinit_la-epsg_inlined_wgs84_01.lo `test -f 'epsg_inlined_wgs84_01.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_01.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_wgs84_01.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_wgs84_01.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_wgs84_01.c' object='srsinit_la-epsg_inlined_wgs84_01.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_wgs84_01.lo `test -f 'epsg_inlined_wgs84_01.c' || echo '$(srcdir)/'`epsg_inlined_wgs84_01.c srsinit_la-epsg_inlined_prussian.lo: epsg_inlined_prussian.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_prussian.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_prussian.Tpo -c -o srsinit_la-epsg_inlined_prussian.lo `test -f 'epsg_inlined_prussian.c' || echo '$(srcdir)/'`epsg_inlined_prussian.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_prussian.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_prussian.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_prussian.c' object='srsinit_la-epsg_inlined_prussian.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_prussian.lo `test -f 'epsg_inlined_prussian.c' || echo '$(srcdir)/'`epsg_inlined_prussian.c srsinit_la-epsg_inlined_extra.lo: epsg_inlined_extra.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srsinit_la-epsg_inlined_extra.lo -MD -MP -MF $(DEPDIR)/srsinit_la-epsg_inlined_extra.Tpo -c -o srsinit_la-epsg_inlined_extra.lo `test -f 'epsg_inlined_extra.c' || echo '$(srcdir)/'`epsg_inlined_extra.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/srsinit_la-epsg_inlined_extra.Tpo $(DEPDIR)/srsinit_la-epsg_inlined_extra.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsg_inlined_extra.c' object='srsinit_la-epsg_inlined_extra.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(srsinit_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(srsinit_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srsinit_la-epsg_inlined_extra.lo `test -f 'epsg_inlined_extra.c' || echo '$(srcdir)/'`epsg_inlined_extra.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: 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: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool \ clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_26.c��������������������������������������������������0000664�0001750�0001750�00000513605�12544707704�017051� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_26 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 5298, "epsg", 5298, "DRUKREF 03 / Mongar TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=91.23333333333333 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Mongar TM\",GEOGCS[\"DRUKREF 03\","); add_srs_wkt (p, 1, "DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",91.23333333333333],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",1],PARAMETER[\"false_easting\",250000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",-2500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"5298\"]]"); p = add_epsg_def_ex (filter, first, last, 5299, "epsg", 5299, "DRUKREF 03 / Paro TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=89.34999999999999 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Paro TM\",GEOGCS[\"DRUKREF 03\",DA"); add_srs_wkt (p, 1, "TUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",89.35],PARAMETER[\"scale_factor\",1],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",250000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"5299\"]]"); p = add_epsg_def_ex (filter, first, last, 5300, "epsg", 5300, "DRUKREF 03 / Pemagatshel TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=91.34999999999999 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Pemagatshel TM\",GEOGCS[\"DRUKREF "); add_srs_wkt (p, 1, "03\",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",91.35],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",250000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"5300\"]]"); p = add_epsg_def_ex (filter, first, last, 5301, "epsg", 5301, "DRUKREF 03 / Punakha TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=89.84999999999999 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Punakha TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",89.85],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",250000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"5301\"]]"); p = add_epsg_def_ex (filter, first, last, 5302, "epsg", 5302, "DRUKREF 03 / Samdrup Jongkhar TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=91.56666666666666 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Samdrup Jongkhar TM\",GEOGCS[\"DRU"); add_srs_wkt (p, 1, "KREF 03\",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1058\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",91.56666666666666],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",25000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",-2500000],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5302\"]]"); p = add_epsg_def_ex (filter, first, last, 5303, "epsg", 5303, "DRUKREF 03 / Samtse TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=89.06666666666666 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Samtse TM\",GEOGCS[\"DRUKREF 03\","); add_srs_wkt (p, 1, "DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",89.06666666666666],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",1],PARAMETER[\"false_easting\",250000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",-2500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"5303\"]]"); p = add_epsg_def_ex (filter, first, last, 5304, "epsg", 5304, "DRUKREF 03 / Sarpang TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90.26666666666667 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Sarpang TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",90.26666666666667],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",1],PARAMETER[\"false_easting\",250000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",-2500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"5304\"]]"); p = add_epsg_def_ex (filter, first, last, 5305, "epsg", 5305, "DRUKREF 03 / Thimphu TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=89.55 +k=1 +x_0=250000 +y_0="); add_proj4text (p, 1, "-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Thimphu TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",89.55],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",250000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"5305\"]]"); p = add_epsg_def_ex (filter, first, last, 5306, "epsg", 5306, "DRUKREF 03 / Trashigang TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=91.75 +k=1 +x_0=250000 +y_0="); add_proj4text (p, 1, "-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Trashigang TM\",GEOGCS[\"DRUKREF 0"); add_srs_wkt (p, 1, "3\",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",91.75],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",250000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"5306\"]]"); p = add_epsg_def_ex (filter, first, last, 5307, "epsg", 5307, "DRUKREF 03 / Trongsa TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90.5 +k=1 +x_0=250000 +y_0=-"); add_proj4text (p, 1, "2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Trongsa TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",90.5],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",250000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"5307\"]]"); p = add_epsg_def_ex (filter, first, last, 5308, "epsg", 5308, "DRUKREF 03 / Tsirang TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90.16666666666667 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Tsirang TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",90.16666666666667],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",1],PARAMETER[\"false_easting\",250000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",-2500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"5308\"]]"); p = add_epsg_def_ex (filter, first, last, 5309, "epsg", 5309, "DRUKREF 03 / Wangdue Phodrang TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90.11666666666666 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Wangdue Phodrang TM\",GEOGCS[\"DRU"); add_srs_wkt (p, 1, "KREF 03\",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1058\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",90.11666666666666],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",25000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",-2500000],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5309\"]]"); p = add_epsg_def_ex (filter, first, last, 5310, "epsg", 5310, "DRUKREF 03 / Yangtse TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=91.56666666666666 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Yangtse TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",91.56666666666666],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",1],PARAMETER[\"false_easting\",250000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",-2500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"5310\"]]"); p = add_epsg_def_ex (filter, first, last, 5311, "epsg", 5311, "DRUKREF 03 / Zhemgang TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90.86666666666666 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Zhemgang TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",90.86666666666666],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",1],PARAMETER[\"false_easting\",250000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",-2500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"5311\"]]"); p = add_epsg_def_ex (filter, first, last, 5316, "epsg", 5316, "ETRS89 / Faroe TM", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-7 +k=0.999997 +x_0=200000 +"); add_proj4text (p, 1, "y_0=-6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Faroe TM\",GEOGCS[\"ETRS89\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Terrestrial_Reference_System_1989\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-7],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".999997],PARAMETER[\"false_easting\",200000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",-6000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"5316\"]]"); p = add_epsg_def_ex (filter, first, last, 5318, "epsg", 5318, "ETRS89 / Faroe TM", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-7 +k=0.999997 +x_0=200000 +"); add_proj4text (p, 1, "y_0=-6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / Faroe TM + FVR09 height\",PROJCS[\"E"); add_srs_wkt (p, 1, "TRS89 / Faroe TM\",GEOGCS[\"ETRS89\",DATUM[\"European_Te"); add_srs_wkt (p, 2, "rrestrial_Reference_System_1989\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 3, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 4, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRIMEM["); add_srs_wkt (p, 5, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 6, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 7, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 8, "TY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",-7],PARAMETER[\"scale_factor\",0.999997],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",200000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",-6000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"5316\"]],VERT_CS[\"FVR09 height\",V"); add_srs_wkt (p, 15, "ERT_DATUM[\"Faroe Islands Vertical Reference 2009\",2005"); add_srs_wkt (p, 16, ",AUTHORITY[\"EPSG\",\"1059\"]],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 17, "Y[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 18, ",\"5317\"]],AUTHORITY[\"EPSG\",\"5318\"]]"); p = add_epsg_def_ex (filter, first, last, 5320, "epsg", 5320, "NAD83 / Teranet Ontario Lambert", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.5 +lat_2=54.5 +lat_0=0 +lon_0=-84 +x"); add_proj4text (p, 1, "_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Teranet Ontario Lambert\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44.5]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",54.5],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-84]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",1000000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"5320\"]]"); p = add_epsg_def_ex (filter, first, last, 5321, "epsg", 5321, "NAD83(CSRS) / Teranet Ontario Lambert", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.5 +lat_2=54.5 +lat_0=0 +lon_0=-84 +x"); add_proj4text (p, 1, "_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Teranet Ontario Lambert\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference"); add_srs_wkt (p, 2, "_System\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_1\",44.5],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 10, "_2\",54.5],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 11, "[\"central_meridian\",-84],PARAMETER[\"false_easting\",1"); add_srs_wkt (p, 12, "000000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"5321\"]]"); p = add_epsg_def_ex (filter, first, last, 5324, "epsg", 5324, "ISN2004", 1, 1, "GRS 1980", "Greenwich", "Islands_Net_2004", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"ISN2004\",DATUM[\"Islands_Net_2004\",SPHEROID[\""); add_srs_wkt (p, 1, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1060\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"5324\"]]"); p = add_epsg_def_ex (filter, first, last, 5325, "epsg", 5325, "ISN2004 / Lambert 2004", 0, 0, "GRS 1980", "Greenwich", "Islands_Net_2004", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=64.25 +lat_2=65.75 +lat_0=65 +lon_0=-19"); add_proj4text (p, 1, " +x_0=1700000 +y_0=300000 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ISN2004 / Lambert 2004\",GEOGCS[\"ISN2004\",DAT"); add_srs_wkt (p, 1, "UM[\"Islands_Net_2004\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 2, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"1060\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"5324\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",64.25],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",65.75],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 10, "\",65],PARAMETER[\"central_meridian\",-19],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",1700000],PARAMETER[\"false_northing\",300"); add_srs_wkt (p, 12, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 13, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5325"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 5329, "epsg", 5329, "Segara (Jakarta) / NEIEZ", 0, 0, "Bessel 1841", "Jakarta", "Gunung_Segara_Jakarta", "Mercator_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=merc +lon_0=3.192280555555556 +k=0.997 +x_0=390000"); add_proj4text (p, 1, "0 +y_0=900000 +ellps=bessel +towgs84=-403,684,41,0,0,0,0"); add_proj4text (p, 2, " +pm=jakarta +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Segara (Jakarta) / NEIEZ\",GEOGCS[\"Segara (Jak"); add_srs_wkt (p, 1, "arta)\",DATUM[\"Gunung_Segara_Jakarta\",SPHEROID[\"Besse"); add_srs_wkt (p, 2, "l 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "04\"]],TOWGS84[-403,684,41,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6820\"]],PRIMEM[\"Jakarta\",106.8077194444444,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8908\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4820\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Mercator_1SP\"],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",3.192280555555556],PARAMETER[\"scale_factor\",0.997],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",3900000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",900000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"5329\"]]"); p = add_epsg_def_ex (filter, first, last, 5330, "epsg", 5330, "Batavia (Jakarta) / NEIEZ", 0, 0, "Bessel 1841", "Jakarta", "Batavia_Jakarta", "Mercator_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=merc +lon_0=3.192280555555556 +k=0.997 +x_0=390000"); add_proj4text (p, 1, "0 +y_0=900000 +ellps=bessel +towgs84=-377,681,-50,0,0,0,"); add_proj4text (p, 2, "0 +pm=jakarta +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Batavia (Jakarta) / NEIEZ\",GEOGCS[\"Batavia (J"); add_srs_wkt (p, 1, "akarta)\",DATUM[\"Batavia_Jakarta\",SPHEROID[\"Bessel 18"); add_srs_wkt (p, 2, "41\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); add_srs_wkt (p, 3, "]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY[\"EPSG\",\"68"); add_srs_wkt (p, 4, "13\"]],PRIMEM[\"Jakarta\",106.8077194444444,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8908\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4813\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Mercator_1SP\"],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, ".192280555555556],PARAMETER[\"scale_factor\",0.997],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",3900000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",900000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"5330\"]]"); p = add_epsg_def_ex (filter, first, last, 5331, "epsg", 5331, "Makassar (Jakarta) / NEIEZ", 0, 0, "Bessel 1841", "Jakarta", "Makassar_Jakarta", "Mercator_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=merc +lon_0=3.192280555555556 +k=0.997 +x_0=390000"); add_proj4text (p, 1, "0 +y_0=900000 +ellps=bessel +towgs84=-587.8,519.75,145.7"); add_proj4text (p, 2, "6,0,0,0,0 +pm=jakarta +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Makassar (Jakarta) / NEIEZ\",GEOGCS[\"Makassar "); add_srs_wkt (p, 1, "(Jakarta)\",DATUM[\"Makassar_Jakarta\",SPHEROID[\"Bessel"); add_srs_wkt (p, 2, " 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "4\"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6804\"]],PRIMEM[\"Jakarta\",106.8077194444444,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"480"); add_srs_wkt (p, 8, "4\"]],PROJECTION[\"Mercator_1SP\"],PARAMETER[\"central_m"); add_srs_wkt (p, 9, "eridian\",3.192280555555556],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.997],PARAMETER[\"false_easting\",3900000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",900000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"5331\"]]"); p = add_epsg_def_ex (filter, first, last, 5337, "epsg", 5337, "Aratu / UTM zone 25S", 0, 0, "International 1924", "Greenwich", "Aratu", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +ellps=intl +towgs84=-151.99,2"); add_proj4text (p, 1, "87.04,-147.45,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Aratu / UTM zone 25S\",GEOGCS[\"Aratu\",DATUM[\""); add_srs_wkt (p, 1, "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-33],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"5337\"]]"); p = add_epsg_def_ex (filter, first, last, 5340, "epsg", 5340, "POSGAR 2007", 1, 1, "GRS 1980", "Greenwich", "Posiciones_Geodesicas_Argentinas_2007", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"POSGAR 2007\",DATUM[\"Posiciones_Geodesicas_Arg"); add_srs_wkt (p, 1, "entinas_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 2, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"1062\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5340\""); add_srs_wkt (p, 7, "]]"); p = add_epsg_def_ex (filter, first, last, 5343, "epsg", 5343, "POSGAR 2007 / Argentina 1", 0, 1, "GRS 1980", "Greenwich", "Posiciones_Geodesicas_Argentinas_2007", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 2007 / Argentina 1\",GEOGCS[\"POSGAR 200"); add_srs_wkt (p, 1, "7\",DATUM[\"Posiciones_Geodesicas_Argentinas_2007\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1062\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"5340\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-72],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",1],PARAMETER[\"false_easting\",1500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"5343\"]]"); p = add_epsg_def_ex (filter, first, last, 5344, "epsg", 5344, "POSGAR 2007 / Argentina 2", 0, 1, "GRS 1980", "Greenwich", "Posiciones_Geodesicas_Argentinas_2007", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 2007 / Argentina 2\",GEOGCS[\"POSGAR 200"); add_srs_wkt (p, 1, "7\",DATUM[\"Posiciones_Geodesicas_Argentinas_2007\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1062\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"5340\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",1],PARAMETER[\"false_easting\",2500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"5344\"]]"); p = add_epsg_def_ex (filter, first, last, 5345, "epsg", 5345, "POSGAR 2007 / Argentina 3", 0, 1, "GRS 1980", "Greenwich", "Posiciones_Geodesicas_Argentinas_2007", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 2007 / Argentina 3\",GEOGCS[\"POSGAR 200"); add_srs_wkt (p, 1, "7\",DATUM[\"Posiciones_Geodesicas_Argentinas_2007\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1062\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"5340\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-66],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",1],PARAMETER[\"false_easting\",3500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"5345\"]]"); p = add_epsg_def_ex (filter, first, last, 5346, "epsg", 5346, "POSGAR 2007 / Argentina 4", 0, 1, "GRS 1980", "Greenwich", "Posiciones_Geodesicas_Argentinas_2007", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 2007 / Argentina 4\",GEOGCS[\"POSGAR 200"); add_srs_wkt (p, 1, "7\",DATUM[\"Posiciones_Geodesicas_Argentinas_2007\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1062\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"5340\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",1],PARAMETER[\"false_easting\",4500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"5346\"]]"); p = add_epsg_def_ex (filter, first, last, 5347, "epsg", 5347, "POSGAR 2007 / Argentina 5", 0, 1, "GRS 1980", "Greenwich", "Posiciones_Geodesicas_Argentinas_2007", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 2007 / Argentina 5\",GEOGCS[\"POSGAR 200"); add_srs_wkt (p, 1, "7\",DATUM[\"Posiciones_Geodesicas_Argentinas_2007\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1062\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"5340\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-60],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",1],PARAMETER[\"false_easting\",5500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"5347\"]]"); p = add_epsg_def_ex (filter, first, last, 5348, "epsg", 5348, "POSGAR 2007 / Argentina 6", 0, 1, "GRS 1980", "Greenwich", "Posiciones_Geodesicas_Argentinas_2007", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 2007 / Argentina 6\",GEOGCS[\"POSGAR 200"); add_srs_wkt (p, 1, "7\",DATUM[\"Posiciones_Geodesicas_Argentinas_2007\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1062\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"5340\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",1],PARAMETER[\"false_easting\",6500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"5348\"]]"); p = add_epsg_def_ex (filter, first, last, 5349, "epsg", 5349, "POSGAR 2007 / Argentina 7", 0, 1, "GRS 1980", "Greenwich", "Posiciones_Geodesicas_Argentinas_2007", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 2007 / Argentina 7\",GEOGCS[\"POSGAR 200"); add_srs_wkt (p, 1, "7\",DATUM[\"Posiciones_Geodesicas_Argentinas_2007\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1062\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"5340\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-54],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",1],PARAMETER[\"false_easting\",7500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"5349\"]]"); p = add_epsg_def_ex (filter, first, last, 5354, "epsg", 5354, "MARGEN", 1, 1, "GRS 1980", "Greenwich", "Marco_Geodesico_Nacional", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"MARGEN\",DATUM[\"Marco_Geodesico_Nacional\",SPH"); add_srs_wkt (p, 1, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"1063\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"5354\"]]"); p = add_epsg_def_ex (filter, first, last, 5355, "epsg", 5355, "MARGEN / UTM zone 20S", 0, 0, "GRS 1980", "Greenwich", "Marco_Geodesico_Nacional", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MARGEN / UTM zone 20S\",GEOGCS[\"MARGEN\",DATUM"); add_srs_wkt (p, 1, "[\"Marco_Geodesico_Nacional\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1063\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"5354\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"5355\"]]"); p = add_epsg_def_ex (filter, first, last, 5356, "epsg", 5356, "MARGEN / UTM zone 19S", 0, 0, "GRS 1980", "Greenwich", "Marco_Geodesico_Nacional", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MARGEN / UTM zone 19S\",GEOGCS[\"MARGEN\",DATUM"); add_srs_wkt (p, 1, "[\"Marco_Geodesico_Nacional\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1063\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"5354\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"5356\"]]"); p = add_epsg_def_ex (filter, first, last, 5357, "epsg", 5357, "MARGEN / UTM zone 21S", 0, 0, "GRS 1980", "Greenwich", "Marco_Geodesico_Nacional", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MARGEN / UTM zone 21S\",GEOGCS[\"MARGEN\",DATUM"); add_srs_wkt (p, 1, "[\"Marco_Geodesico_Nacional\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1063\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"5354\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"5357\"]]"); p = add_epsg_def_ex (filter, first, last, 5360, "epsg", 5360, "SIRGAS-Chile", 1, 1, "GRS 1980", "Greenwich", "SIRGAS_Chile", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"SIRGAS-Chile\",DATUM[\"SIRGAS_Chile\",SPHEROID["); add_srs_wkt (p, 1, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"106"); add_srs_wkt (p, 3, "4\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"5360\"]]"); p = add_epsg_def_ex (filter, first, last, 5361, "epsg", 5361, "SIRGAS-Chile / UTM zone 19S", 0, 0, "GRS 1980", "Greenwich", "SIRGAS_Chile", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS-Chile / UTM zone 19S\",GEOGCS[\"SIRGAS-C"); add_srs_wkt (p, 1, "hile\",DATUM[\"SIRGAS_Chile\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1064\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"5360\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"5361\"]]"); p = add_epsg_def_ex (filter, first, last, 5362, "epsg", 5362, "SIRGAS-Chile / UTM zone 18S", 0, 0, "GRS 1980", "Greenwich", "SIRGAS_Chile", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS-Chile / UTM zone 18S\",GEOGCS[\"SIRGAS-C"); add_srs_wkt (p, 1, "hile\",DATUM[\"SIRGAS_Chile\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1064\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"5360\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"5362\"]]"); p = add_epsg_def_ex (filter, first, last, 5365, "epsg", 5365, "CR05", 1, 1, "WGS 84", "Greenwich", "Costa_Rica_2005", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"CR05\",DATUM[\"Costa_Rica_2005\",SPHEROID[\"WGS"); add_srs_wkt (p, 1, " 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]"); add_srs_wkt (p, 2, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1065\"]],P"); add_srs_wkt (p, 3, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 4, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 5, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"5365\"]]"); p = add_epsg_def_ex (filter, first, last, 5367, "epsg", 5367, "CR05 / CRTM05", 0, 1, "WGS 84", "Greenwich", "Costa_Rica_2005", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"CR05 / CRTM05\",GEOGCS[\"CR05\",DATUM[\"Costa_R"); add_srs_wkt (p, 1, "ica_2005\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"1065\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5365\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",-84],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"5367\"]]"); p = add_epsg_def_ex (filter, first, last, 5371, "epsg", 5371, "MACARIO SOLIS", 1, 1, "GRS 1980", "Greenwich", "Sistema_Geodesico_Nacional_de_Panama_MACARIO_SOLIS", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"MACARIO SOLIS\",DATUM[\"Sistema_Geodesico_Nacio"); add_srs_wkt (p, 1, "nal_de_Panama_MACARIO_SOLIS\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1066\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"5371\"]]"); p = add_epsg_def_ex (filter, first, last, 5373, "epsg", 5373, "Peru96", 1, 1, "GRS 1980", "Greenwich", "Peru96", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Peru96\",DATUM[\"Peru96\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 1, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 2, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1067\"]],PRIMEM"); add_srs_wkt (p, 3, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 4, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 5, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"5373\"]]"); p = add_epsg_def_ex (filter, first, last, 5381, "epsg", 5381, "SIRGAS-ROU98", 1, 1, "WGS 84", "Greenwich", "SIRGAS_ROU98", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"SIRGAS-ROU98\",DATUM[\"SIRGAS_ROU98\",SPHEROID["); add_srs_wkt (p, 1, "\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "30\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1068\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"5381\"]]"); p = add_epsg_def_ex (filter, first, last, 5382, "epsg", 5382, "SIRGAS-ROU98 / UTM zone 21S", 0, 0, "WGS 84", "Greenwich", "SIRGAS_ROU98", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS-ROU98 / UTM zone 21S\",GEOGCS[\"SIRGAS-R"); add_srs_wkt (p, 1, "OU98\",DATUM[\"SIRGAS_ROU98\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1068\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"5381\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"5382\"]]"); p = add_epsg_def_ex (filter, first, last, 5383, "epsg", 5383, "SIRGAS-ROU98 / UTM zone 22S", 0, 0, "WGS 84", "Greenwich", "SIRGAS_ROU98", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS-ROU98 / UTM zone 22S\",GEOGCS[\"SIRGAS-R"); add_srs_wkt (p, 1, "OU98\",DATUM[\"SIRGAS_ROU98\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1068\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"5381\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"5383\"]]"); p = add_epsg_def_ex (filter, first, last, 5387, "epsg", 5387, "Peru96 / UTM zone 18S", 0, 0, "GRS 1980", "Greenwich", "Peru96", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Peru96 / UTM zone 18S\",GEOGCS[\"Peru96\",DATUM"); add_srs_wkt (p, 1, "[\"Peru96\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1067\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5373\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",-75],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",10000000],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5"); add_srs_wkt (p, 13, "387\"]]"); p = add_epsg_def_ex (filter, first, last, 5388, "epsg", 5388, "Peru96 / UTM zone 17S (deprecated)", 0, 0, "GRS 1980", "Greenwich", "Peru96", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Peru96 / UTM zone 17S (deprecated)\",GEOGCS[\"P"); add_srs_wkt (p, 1, "eru96\",DATUM[\"Peru96\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"1067\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"5373\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"5388\"]]"); p = add_epsg_def_ex (filter, first, last, 5389, "epsg", 5389, "Peru96 / UTM zone 19S", 0, 0, "GRS 1980", "Greenwich", "Peru96", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Peru96 / UTM zone 19S\",GEOGCS[\"Peru96\",DATUM"); add_srs_wkt (p, 1, "[\"Peru96\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1067\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5373\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",-69],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",10000000],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5"); add_srs_wkt (p, 13, "389\"]]"); p = add_epsg_def_ex (filter, first, last, 5393, "epsg", 5393, "SIRGAS_ES2007.8", 1, 1, "GRS 1980", "Greenwich", "SIRGAS_ES2007_8", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"SIRGAS_ES2007.8\",DATUM[\"SIRGAS_ES2007_8\",SPH"); add_srs_wkt (p, 1, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"1069\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"5393\"]]"); p = add_epsg_def_ex (filter, first, last, 5396, "epsg", 5396, "SIRGAS 2000 / UTM zone 26S", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=26 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 26S\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-27]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 13, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"5396\"]]"); p = add_epsg_def_ex (filter, first, last, 5451, "epsg", 5451, "Ocotepeque 1935", 1, 1, "Clarke 1866", "Greenwich", "Ocotepeque_1935", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=205,96,-98,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Ocotepeque 1935\",DATUM[\"Ocotepeque_1935\",SPH"); add_srs_wkt (p, 1, "EROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7008\"]],TOWGS84[205,96,-98,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1070\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5451\"]]"); p = add_epsg_def_ex (filter, first, last, 5456, "epsg", 5456, "Ocotepeque 1935 / Costa Rica Norte", 0, 0, "Clarke 1866", "Greenwich", "Ocotepeque_1935", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=10.46666666666667 +lat_0=10.46666666666"); add_proj4text (p, 1, "667 +lon_0=-84.33333333333333 +k_0=0.99995696 +x_0=50000"); add_proj4text (p, 2, "0 +y_0=271820.522 +ellps=clrk66 +towgs84=205,96,-98,0,0,"); add_proj4text (p, 3, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ocotepeque 1935 / Costa Rica Norte\",GEOGCS[\"O"); add_srs_wkt (p, 1, "cotepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Cl"); add_srs_wkt (p, 2, "arke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7008\"]],TOWGS84[205,96,-98,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"1070\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"5451\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 9, "_origin\",10.46666666666667],PARAMETER[\"central_meridia"); add_srs_wkt (p, 10, "n\",-84.33333333333333],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 11, "95696],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",271820.522],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"5456\"]]"); p = add_epsg_def_ex (filter, first, last, 5457, "epsg", 5457, "Ocotepeque 1935 / Costa Rica Sur", 0, 0, "Clarke 1866", "Greenwich", "Ocotepeque_1935", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=9 +lat_0=9 +lon_0=-83.66666666666667 +k"); add_proj4text (p, 1, "_0=0.99995696 +x_0=500000 +y_0=327987.436 +ellps=clrk66 "); add_proj4text (p, 2, "+towgs84=205,96,-98,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ocotepeque 1935 / Costa Rica Sur\",GEOGCS[\"Oco"); add_srs_wkt (p, 1, "tepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[205,96,-98,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"1070\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"5451\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",9],PARAMETER[\"central_meridian\",-83.6666666666"); add_srs_wkt (p, 10, "6667],PARAMETER[\"scale_factor\",0.99995696],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",500000],PARAMETER[\"false_northing\",327"); add_srs_wkt (p, 12, "987.436],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "5457\"]]"); p = add_epsg_def_ex (filter, first, last, 5458, "epsg", 5458, "Ocotepeque 1935 / Guatemala Norte (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=16.81666666666667 +lat_0=16.81666666666"); add_proj4text (p, 1, "667 +lon_0=-90.33333333333333 +k_0=0.99992226 +x_0=50000"); add_proj4text (p, 2, "0 +y_0=292209.579 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ocotepeque 1935 / Guatemala Norte (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SP"); add_srs_wkt (p, 2, "HEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",16.816"); add_srs_wkt (p, 9, "66666666667],PARAMETER[\"central_meridian\",-90.33333333"); add_srs_wkt (p, 10, "333333],PARAMETER[\"scale_factor\",0.99992226],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "292209.579],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"5458\"]]"); p = add_epsg_def_ex (filter, first, last, 5459, "epsg", 5459, "Ocotepeque 1935 / Guatemala Sur", 0, 0, "Clarke 1866", "Greenwich", "Ocotepeque_1935", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=14.9 +lat_0=14.9 +lon_0=-90.33333333333"); add_proj4text (p, 1, "333 +k_0=0.99989906 +x_0=500000 +y_0=325992.681 +ellps=c"); add_proj4text (p, 2, "lrk66 +towgs84=205,96,-98,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ocotepeque 1935 / Guatemala Sur\",GEOGCS[\"Ocot"); add_srs_wkt (p, 1, "epeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Clark"); add_srs_wkt (p, 2, "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7008\"]],TOWGS84[205,96,-98,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1070\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"5451\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",14.9],PARAMETER[\"central_meridian\",-90.33333333"); add_srs_wkt (p, 10, "333333],PARAMETER[\"scale_factor\",0.99989906],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "325992.681],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"5459\"]]"); p = add_epsg_def_ex (filter, first, last, 5460, "epsg", 5460, "Ocotepeque 1935 / El Salvador Lambert", 0, 0, "Clarke 1866", "Greenwich", "Ocotepeque_1935", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=13.78333333333333 +lat_0=13.78333333333"); add_proj4text (p, 1, "333 +lon_0=-89 +k_0=0.99996704 +x_0=500000 +y_0=295809.1"); add_proj4text (p, 2, "84 +ellps=clrk66 +towgs84=205,96,-98,0,0,0,0 +units=m +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ocotepeque 1935 / El Salvador Lambert\",GEOGCS["); add_srs_wkt (p, 1, "\"Ocotepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7008\"]],TOWGS84[205,96,-98,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"1070\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"5451\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",13.78333333333333],PARAMETER[\"central_meri"); add_srs_wkt (p, 10, "dian\",-89],PARAMETER[\"scale_factor\",0.99996704],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",295809.184],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"5460\"]]"); p = add_epsg_def_ex (filter, first, last, 5461, "epsg", 5461, "Ocotepeque 1935 / Nicaragua Norte", 0, 0, "Clarke 1866", "Greenwich", "Ocotepeque_1935", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=13.86666666666667 +lat_0=13.86666666666"); add_proj4text (p, 1, "667 +lon_0=-85.5 +k_0=0.99990314 +x_0=500000 +y_0=359891"); add_proj4text (p, 2, ".816 +ellps=clrk66 +towgs84=205,96,-98,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ocotepeque 1935 / Nicaragua Norte\",GEOGCS[\"Oc"); add_srs_wkt (p, 1, "otepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[205,96,-98,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"1070\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"5451\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",13.86666666666667],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-85.5],PARAMETER[\"scale_factor\",0.99990314],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "359891.816],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"5461\"]]"); p = add_epsg_def_ex (filter, first, last, 5462, "epsg", 5462, "Ocotepeque 1935 / Nicaragua Sur", 0, 0, "Clarke 1866", "Greenwich", "Ocotepeque_1935", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=11.73333333333333 +lat_0=11.73333333333"); add_proj4text (p, 1, "333 +lon_0=-85.5 +k_0=0.9999222800000001 +x_0=500000 +y_"); add_proj4text (p, 2, "0=288876.327 +ellps=clrk66 +towgs84=205,96,-98,0,0,0,0 +"); add_proj4text (p, 3, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ocotepeque 1935 / Nicaragua Sur\",GEOGCS[\"Ocot"); add_srs_wkt (p, 1, "epeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Clark"); add_srs_wkt (p, 2, "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7008\"]],TOWGS84[205,96,-98,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1070\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"5451\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",11.73333333333333],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-85.5],PARAMETER[\"scale_factor\",0.99992228],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "288876.327],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"5462\"]]"); p = add_epsg_def_ex (filter, first, last, 5463, "epsg", 5463, "SAD69 / UTM zone 17N", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=aust_SA +towgs84=-66.87,4.37,-"); add_proj4text (p, 1, "38.52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 17N\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-66.87,4.37,-38.52,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-81],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"5463\"]]"); p = add_epsg_def_ex (filter, first, last, 5464, "epsg", 5464, "Sibun Gorge 1922", 1, 1, "Clarke 1858", "Greenwich", "Sibun_Gorge_1922", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Sibun Gorge 1922\",DATUM[\"Sibun_Gorge_1922\",S"); add_srs_wkt (p, 1, "PHEROID[\"Clarke 1858\",6378293.645208759,294.2606763692"); add_srs_wkt (p, 2, "606,AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 3, "071\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"5464\"]]"); p = add_epsg_def_ex (filter, first, last, 5466, "epsg", 5466, "Sibun Gorge 1922 / Colony Grid (deprecated)", 0, 0, "Clarke 1858", "Greenwich", "Sibun_Gorge_1922", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=17.06124194444444 +lon_0=-88.6318575 "); add_proj4text (p, 1, "+k=1 +x_0=66220.02833082761 +y_0=135779.5099885299 +a=63"); add_proj4text (p, 2, "78293.645208759 +b=6356617.987679838 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Sibun Gorge 1922 / Colony Grid (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Sibun Gorge 1922\",DATUM[\"Sibun_Gorge_1922\",SP"); add_srs_wkt (p, 2, "HEROID[\"Clarke 1858\",6378293.645208759,294.26067636926"); add_srs_wkt (p, 3, "06,AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"10"); add_srs_wkt (p, 4, "71\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"5464\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",17.0612"); add_srs_wkt (p, 9, "4194444444],PARAMETER[\"central_meridian\",-88.6318575],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",66220.02833082761],PARAMETER[\"false_northing\",135779."); add_srs_wkt (p, 12, "5099885299],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"5466\"]]"); p = add_epsg_def_ex (filter, first, last, 5467, "epsg", 5467, "Panama-Colon 1911", 1, 1, "Clarke 1866", "Greenwich", "Panama_Colon_1911", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Panama-Colon 1911\",DATUM[\"Panama_Colon_1911\""); add_srs_wkt (p, 1, ",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"1072\"]"); add_srs_wkt (p, 3, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 4, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 5, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 6, "],AUTHORITY[\"EPSG\",\"5467\"]]"); p = add_epsg_def_ex (filter, first, last, 5469, "epsg", 5469, "Panama-Colon 1911 / Panama Lambert", 0, 0, "Clarke 1866", "Greenwich", "Panama_Colon_1911", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=8.416666666666666 +lat_0=8.416666666666"); add_proj4text (p, 1, "666 +lon_0=-80 +k_0=0.99989909 +x_0=500000 +y_0=294865.3"); add_proj4text (p, 2, "03 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Panama-Colon 1911 / Panama Lambert\",GEOGCS[\"P"); add_srs_wkt (p, 1, "anama-Colon 1911\",DATUM[\"Panama_Colon_1911\",SPHEROID["); add_srs_wkt (p, 2, "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"1072\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"5467\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_1SP\"],PARAMETER[\"latitude_of_origin\",8.416666666666"); add_srs_wkt (p, 9, "666],PARAMETER[\"central_meridian\",-80],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.99989909],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",294865.303],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 13, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5469\"]]"); p = add_epsg_def_ex (filter, first, last, 5472, "epsg", 5472, "Panama-Colon 1911 / Panama Polyconic", 0, 0, "Clarke 1866", "Greenwich", "Panama_Colon_1911", "Polyconic", "Clarke's yard", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=poly +lat_0=8.25 +lon_0=-81 +x_0=914391.7962 +y_0="); add_proj4text (p, 1, "999404.7217154861 +ellps=clrk66 +to_meter=0.9143917962 +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Panama-Colon 1911 / Panama Polyconic\",GEOGCS[\""); add_srs_wkt (p, 1, "Panama-Colon 1911\",DATUM[\"Panama_Colon_1911\",SPHEROID"); add_srs_wkt (p, 2, "[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"1072\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"5467\"]],PROJECTION[\"Polyconic\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",8.25],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-81],PARAMETER[\"false_easting\",1000000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",1092972.1],UNIT[\"Clarke's yard\",0."); add_srs_wkt (p, 11, "9143917962,AUTHORITY[\"EPSG\",\"9037\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"547"); add_srs_wkt (p, 13, "2\"]]"); p = add_epsg_def_ex (filter, first, last, 5479, "epsg", 5479, "RSRGD2000 / MSLC2000", 0, 1, "GRS 1980", "Greenwich", "Ross_Sea_Region_Geodetic_Datum_2000", "Lambert_Conformal_Conic_2SP", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-78 +lon_0=163 +x_0=7000000 +y_0=5000000 +e"); add_proj4text (p, 2, "llps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RSRGD2000 / MSLC2000\",GEOGCS[\"RSRGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Ross_Sea_Region_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6764\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4764\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",-7"); add_srs_wkt (p, 9, "6.66666666666667],PARAMETER[\"standard_parallel_2\",-79."); add_srs_wkt (p, 10, "33333333333333],PARAMETER[\"latitude_of_origin\",-78],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",163],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",7000000],PARAMETER[\"false_northing\",5000000],UNI"); add_srs_wkt (p, 13, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"North"); add_srs_wkt (p, 14, "ing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "5479\"]]"); p = add_epsg_def_ex (filter, first, last, 5480, "epsg", 5480, "RSRGD2000 / BCLC2000", 0, 1, "GRS 1980", "Greenwich", "Ross_Sea_Region_Geodetic_Datum_2000", "Lambert_Conformal_Conic_2SP", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=-73.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-74.5 +lon_0=165 +x_0=5000000 +y_0=3000000 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RSRGD2000 / BCLC2000\",GEOGCS[\"RSRGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Ross_Sea_Region_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6764\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4764\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",-7"); add_srs_wkt (p, 9, "3.66666666666667],PARAMETER[\"standard_parallel_2\",-75."); add_srs_wkt (p, 10, "33333333333333],PARAMETER[\"latitude_of_origin\",-74.5],"); add_srs_wkt (p, 11, "PARAMETER[\"central_meridian\",165],PARAMETER[\"false_ea"); add_srs_wkt (p, 12, "sting\",5000000],PARAMETER[\"false_northing\",3000000],U"); add_srs_wkt (p, 13, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nor"); add_srs_wkt (p, 14, "thing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"5480\"]]"); p = add_epsg_def_ex (filter, first, last, 5481, "epsg", 5481, "RSRGD2000 / PCLC2000", 0, 1, "GRS 1980", "Greenwich", "Ross_Sea_Region_Geodetic_Datum_2000", "Lambert_Conformal_Conic_2SP", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=-70.66666666666667 +lat_2=-72.333333333"); add_proj4text (p, 1, "33333 +lat_0=-71.5 +lon_0=166 +x_0=3000000 +y_0=1000000 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RSRGD2000 / PCLC2000\",GEOGCS[\"RSRGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Ross_Sea_Region_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6764\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4764\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",-7"); add_srs_wkt (p, 9, "0.66666666666667],PARAMETER[\"standard_parallel_2\",-72."); add_srs_wkt (p, 10, "33333333333333],PARAMETER[\"latitude_of_origin\",-71.5],"); add_srs_wkt (p, 11, "PARAMETER[\"central_meridian\",166],PARAMETER[\"false_ea"); add_srs_wkt (p, 12, "sting\",3000000],PARAMETER[\"false_northing\",1000000],U"); add_srs_wkt (p, 13, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nor"); add_srs_wkt (p, 14, "thing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"5481\"]]"); p = add_epsg_def_ex (filter, first, last, 5482, "epsg", 5482, "RSRGD2000 / RSPS2000", 0, 1, "GRS 1980", "Greenwich", "Ross_Sea_Region_Geodetic_Datum_2000", "Polar_Stereographic", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-90 +lon_0=180 +k=0.994 +"); add_proj4text (p, 1, "x_0=5000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RSRGD2000 / RSPS2000\",GEOGCS[\"RSRGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Ross_Sea_Region_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6764\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4764\"]],PROJECTION[\"Polar_Stere"); add_srs_wkt (p, 8, "ographic\"],PARAMETER[\"latitude_of_origin\",-90],PARAME"); add_srs_wkt (p, 9, "TER[\"central_meridian\",180],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.994],PARAMETER[\"false_easting\",5000000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5482\"]]"); p = add_epsg_def_ex (filter, first, last, 5489, "epsg", 5489, "RGAF09", 1, 1, "GRS 1980", "Greenwich", "Reseau_Geodesique_des_Antilles_Francaises_2009", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RGAF09\",DATUM[\"Reseau_Geodesique_des_Antilles"); add_srs_wkt (p, 1, "_Francaises_2009\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 2, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"1073\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"54"); add_srs_wkt (p, 7, "89\"]]"); p = add_epsg_def_ex (filter, first, last, 5490, "epsg", 5490, "RGAF09 / UTM zone 20N", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_des_Antilles_Francaises_2009", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGAF09 / UTM zone 20N\",GEOGCS[\"RGAF09\",DATUM"); add_srs_wkt (p, 1, "[\"Reseau_Geodesique_des_Antilles_Francaises_2009\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1073\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"5489\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"5490\"]]"); p = add_epsg_def_ex (filter, first, last, 5498, "epsg", 5498, "NAD83", 1, 1, "GRS 1980", "Greenwich", "North_American_Datum_1983", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +geoid"); add_proj4text (p, 1, "grids=g2012a_conus.gtx,g2012a_alaska.gtx,g2012a_guam.gtx"); add_proj4text (p, 2, ",g2012a_hawaii.gtx,g2012a_puertorico.gtx,g2012a_samoa.gt"); add_proj4text (p, 3, "x +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83 + NAVD88 height\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],VERT_CS[\"NAVD88 height\",VERT_DATU"); add_srs_wkt (p, 8, "M[\"North American Vertical Datum 1988\",2005,EXTENSION["); add_srs_wkt (p, 9, "\"PROJ4_GRIDS\",\"g2012a_conus.gtx,g2012a_alaska.gtx,g20"); add_srs_wkt (p, 10, "12a_guam.gtx,g2012a_hawaii.gtx,g2012a_puertorico.gtx,g20"); add_srs_wkt (p, 11, "12a_samoa.gtx\"],AUTHORITY[\"EPSG\",\"5103\"]],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"5703\"]],AUTHORITY[\"EPSG\",\"5498\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 5499, "epsg", 5499, "NAD83(HARN)", 1, 1, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +geoid"); add_proj4text (p, 1, "grids=g2012a_conus.gtx,g2012a_alaska.gtx,g2012a_guam.gtx"); add_proj4text (p, 2, ",g2012a_hawaii.gtx,g2012a_puertorico.gtx,g2012a_samoa.gt"); add_proj4text (p, 3, "x +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(HARN) + NAVD88 height\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],VERT_CS[\"N"); add_srs_wkt (p, 8, "AVD88 height\",VERT_DATUM[\"North American Vertical Datu"); add_srs_wkt (p, 9, "m 1988\",2005,EXTENSION[\"PROJ4_GRIDS\",\"g2012a_conus.g"); add_srs_wkt (p, 10, "tx,g2012a_alaska.gtx,g2012a_guam.gtx,g2012a_hawaii.gtx,g"); add_srs_wkt (p, 11, "2012a_puertorico.gtx,g2012a_samoa.gtx\"],AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"5103\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5703\"]],AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"5499\"]]"); p = add_epsg_def_ex (filter, first, last, 5500, "epsg", 5500, "NAD83(NSRS2007)", 1, 1, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +geoid"); add_proj4text (p, 1, "grids=g2012a_conus.gtx,g2012a_alaska.gtx,g2012a_guam.gtx"); add_proj4text (p, 2, ",g2012a_hawaii.gtx,g2012a_puertorico.gtx,g2012a_samoa.gt"); add_proj4text (p, 3, "x +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(NSRS2007) + NAVD88 height\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],VERT_CS[\"NAVD88 height\",VERT_DATUM[\"North American"); add_srs_wkt (p, 9, " Vertical Datum 1988\",2005,EXTENSION[\"PROJ4_GRIDS\",\""); add_srs_wkt (p, 10, "g2012a_conus.gtx,g2012a_alaska.gtx,g2012a_guam.gtx,g2012"); add_srs_wkt (p, 11, "a_hawaii.gtx,g2012a_puertorico.gtx,g2012a_samoa.gtx\"],A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"5103\"]],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "5703\"]],AUTHORITY[\"EPSG\",\"5500\"]]"); p = add_epsg_def_ex (filter, first, last, 5513, "epsg", 5513, "S-JTSK / Krovak", 0, 0, "Bessel 1841", "Greenwich", "System_Jednotne_Trigonometricke_Site_Katastralni", "Krovak", "metre", "X", "South", "Y", "West"); add_proj4text (p, 0, "+proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha"); add_proj4text (p, 1, "=30.28813972222222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel"); add_proj4text (p, 2, " +towgs84=589,76,480,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"S-JTSK / Krovak\",GEOGCS[\"S-JTSK\",DATUM[\"Sys"); add_srs_wkt (p, 1, "tem_Jednotne_Trigonometricke_Site_Katastralni\",SPHEROID"); add_srs_wkt (p, 2, "[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7004\"]],TOWGS84[589,76,480,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6156\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4156\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Krovak\"],PARAMETER[\"latitude_of_center\",49.5],PAR"); add_srs_wkt (p, 9, "AMETER[\"longitude_of_center\",24.83333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"azimuth\",30.28813972222222],PARAMETER[\"pseudo_st"); add_srs_wkt (p, 11, "andard_parallel_1\",78.5],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 12, "999],PARAMETER[\"false_easting\",0],PARAMETER[\"false_no"); add_srs_wkt (p, 13, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",SOUTH],AXIS[\"Y\",WEST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"5513\"]]"); p = add_epsg_def_ex (filter, first, last, 5514, "epsg", 5514, "S-JTSK / Krovak East North", 0, 0, "Bessel 1841", "Greenwich", "System_Jednotne_Trigonometricke_Site_Katastralni", "Krovak", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha"); add_proj4text (p, 1, "=30.28813972222222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel"); add_proj4text (p, 2, " +towgs84=589,76,480,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"S-JTSK / Krovak East North\",GEOGCS[\"S-JTSK\","); add_srs_wkt (p, 1, "DATUM[\"System_Jednotne_Trigonometricke_Site_Katastralni"); add_srs_wkt (p, 2, "\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7004\"]],TOWGS84[589,76,480,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6156\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4156\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Krovak\"],PARAMETER[\"latitude_of_center\""); add_srs_wkt (p, 9, ",49.5],PARAMETER[\"longitude_of_center\",24.833333333333"); add_srs_wkt (p, 10, "33],PARAMETER[\"azimuth\",30.28813972222222],PARAMETER[\""); add_srs_wkt (p, 11, "pseudo_standard_parallel_1\",78.5],PARAMETER[\"scale_fac"); add_srs_wkt (p, 12, "tor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 15, "\"EPSG\",\"5514\"]]"); p = add_epsg_def_ex (filter, first, last, 5518, "epsg", 5518, "CI1971 / Chatham Islands Map Grid", 0, 1, "International 1924", "Greenwich", "Chatham_Islands_Datum_1971", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-44 +lon_0=-176.5 +k=1 +x_0=350000 +y"); add_proj4text (p, 1, "_0=650000 +ellps=intl +towgs84=175,-38,113,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CI1971 / Chatham Islands Map Grid\",GEOGCS[\"Ch"); add_srs_wkt (p, 1, "atham Islands 1971\",DATUM[\"Chatham_Islands_Datum_1971\""); add_srs_wkt (p, 2, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7022\"]],TOWGS84[175,-38,113,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6672\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4672\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",-44],PARAMETER[\"central_meridian\",-176.5],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",35"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",650000],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH"); add_srs_wkt (p, 13, "],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"5518\"]]"); p = add_epsg_def_ex (filter, first, last, 5519, "epsg", 5519, "CI1979 / Chatham Islands Map Grid", 0, 1, "International 1924", "Greenwich", "Chatham_Islands_Datum_1979", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-44 +lon_0=-176.5 +k=1 +x_0=350000 +y"); add_proj4text (p, 1, "_0=650000 +ellps=intl +towgs84=174.05,-25.49,112.57,0,0,"); add_proj4text (p, 2, "0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CI1979 / Chatham Islands Map Grid\",GEOGCS[\"Ch"); add_srs_wkt (p, 1, "atham Islands 1979\",DATUM[\"Chatham_Islands_Datum_1979\""); add_srs_wkt (p, 2, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7022\"]],TOWGS84[174.05,-25.49,112.57,0,0,0.554"); add_srs_wkt (p, 4, ",0.2263],AUTHORITY[\"EPSG\",\"6673\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4673\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",-44],PARAMETER[\"central_meridi"); add_srs_wkt (p, 10, "an\",-176.5],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",350000],PARAMETER[\"false_northing\",6500"); add_srs_wkt (p, 12, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"5519\"]]"); p = add_epsg_def_ex (filter, first, last, 5520, "epsg", 5520, "DHDN / 3-degree Gauss-Kruger zone 1", 0, 1, "Bessel 1841", "Greenwich", "Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=3 +k=1 +x_0=1500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +towgs84=598.1,73.7,418.2,0.202,0.045,-2.45"); add_proj4text (p, 2, "5,6.7 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 1\",GEOGCS[\""); add_srs_wkt (p, 1, "DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,"); add_srs_wkt (p, 4, "6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 13, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5520\"]]"); p = add_epsg_def_ex (filter, first, last, 5523, "epsg", 5523, "WGS 84 / Gabon TM 2011", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11.5 +k=0.9996 +x_0=1500000 "); add_proj4text (p, 1, "+y_0=5500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Gabon TM 2011\",GEOGCS[\"WGS 84\",DATU"); add_srs_wkt (p, 1, "M[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 4, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 6, "AST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 7, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 8, "ETER[\"central_meridian\",11.5],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",1500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",5500000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"5523\"]]"); p = add_epsg_def_ex (filter, first, last, 5524, "epsg", 5524, "Corrego Alegre 1961", 1, 1, "International 1924", "Greenwich", "Corrego_Alegre_1961", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Corrego Alegre 1961\",DATUM[\"Corrego_Alegre_19"); add_srs_wkt (p, 1, "61\",SPHEROID[\"International 1924\",6378388,297,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\",\"1074\"]],PRI"); add_srs_wkt (p, 3, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 4, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 5, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"5524\"]]"); p = add_epsg_def_ex (filter, first, last, 5527, "epsg", 5527, "SAD69(96)", 1, 1, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969_96", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=aust_SA +towgs84=-67.35,3.88,-38.22"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"SAD69(96)\",DATUM[\"South_American_Datum_1969_9"); add_srs_wkt (p, 1, "6\",SPHEROID[\"GRS 1967 Modified\",6378160,298.25,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7050\"]],TOWGS84[-67.35,3.88,-38.22,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"1075\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"55"); add_srs_wkt (p, 7, "27\"]]"); p = add_epsg_def_ex (filter, first, last, 5530, "epsg", 5530, "SAD69(96) / Brazil Polyconic", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969_96", "Polyconic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000"); add_proj4text (p, 1, "0 +ellps=aust_SA +towgs84=-67.35,3.88,-38.22,0,0,0,0 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / Brazil Polyconic\",GEOGCS[\"SAD69(9"); add_srs_wkt (p, 1, "6)\",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "050\"]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Polyconic\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",-54],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",5000000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5530\"]]"); p = add_epsg_def_ex (filter, first, last, 5531, "epsg", 5531, "SAD69(96) / UTM zone 21S", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969_96", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=aust_SA +towgs84=-67.35"); add_proj4text (p, 1, ",3.88,-38.22,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / UTM zone 21S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5531\"]]"); p = add_epsg_def_ex (filter, first, last, 5532, "epsg", 5532, "SAD69(96) / UTM zone 22S (deprecated)", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=aust_SA +towgs84=-66.87"); add_proj4text (p, 1, ",4.37,-38.52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / UTM zone 22S (deprecated)\",GEOGCS["); add_srs_wkt (p, 1, "\"SAD69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7050\"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6618\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",-51],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5532\"]]"); p = add_epsg_def_ex (filter, first, last, 5533, "epsg", 5533, "SAD69(96) / UTM zone 23S", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969_96", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=aust_SA +towgs84=-67.35"); add_proj4text (p, 1, ",3.88,-38.22,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / UTM zone 23S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-45],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5533\"]]"); p = add_epsg_def_ex (filter, first, last, 5534, "epsg", 5534, "SAD69(96) / UTM zone 24S", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969_96", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=aust_SA +towgs84=-67.35"); add_proj4text (p, 1, ",3.88,-38.22,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / UTM zone 24S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-39],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5534\"]]"); p = add_epsg_def_ex (filter, first, last, 5535, "epsg", 5535, "SAD69(96) / UTM zone 25S", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969_96", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +ellps=aust_SA +towgs84=-67.35"); add_proj4text (p, 1, ",3.88,-38.22,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / UTM zone 25S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-33],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5535\"]]"); p = add_epsg_def_ex (filter, first, last, 5536, "epsg", 5536, "Corrego Alegre 1961 / UTM zone 21S", 0, 0, "International 1924", "Greenwich", "Corrego_Alegre_1961", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Corrego Alegre 1961 / UTM zone 21S\",GEOGCS[\"C"); add_srs_wkt (p, 1, "orrego Alegre 1961\",DATUM[\"Corrego_Alegre_1961\",SPHER"); add_srs_wkt (p, 2, "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7022\"]],AUTHORITY[\"EPSG\",\"1074\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"5524\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"5536\"]]"); p = add_epsg_def_ex (filter, first, last, 5537, "epsg", 5537, "Corrego Alegre 1961 / UTM zone 22S", 0, 0, "International 1924", "Greenwich", "Corrego_Alegre_1961", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Corrego Alegre 1961 / UTM zone 22S\",GEOGCS[\"C"); add_srs_wkt (p, 1, "orrego Alegre 1961\",DATUM[\"Corrego_Alegre_1961\",SPHER"); add_srs_wkt (p, 2, "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7022\"]],AUTHORITY[\"EPSG\",\"1074\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"5524\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"5537\"]]"); p = add_epsg_def_ex (filter, first, last, 5538, "epsg", 5538, "Corrego Alegre 1961 / UTM zone 23S", 0, 0, "International 1924", "Greenwich", "Corrego_Alegre_1961", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Corrego Alegre 1961 / UTM zone 23S\",GEOGCS[\"C"); add_srs_wkt (p, 1, "orrego Alegre 1961\",DATUM[\"Corrego_Alegre_1961\",SPHER"); add_srs_wkt (p, 2, "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7022\"]],AUTHORITY[\"EPSG\",\"1074\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"5524\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"5538\"]]"); p = add_epsg_def_ex (filter, first, last, 5539, "epsg", 5539, "Corrego Alegre 1961 / UTM zone 24S", 0, 0, "International 1924", "Greenwich", "Corrego_Alegre_1961", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Corrego Alegre 1961 / UTM zone 24S\",GEOGCS[\"C"); add_srs_wkt (p, 1, "orrego Alegre 1961\",DATUM[\"Corrego_Alegre_1961\",SPHER"); add_srs_wkt (p, 2, "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7022\"]],AUTHORITY[\"EPSG\",\"1074\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"5524\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"5539\"]]"); p = add_epsg_def_ex (filter, first, last, 5546, "epsg", 5546, "PNG94", 1, 1, "GRS 1980", "Greenwich", "Papua_New_Guinea_Geodetic_Datum_1994", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"PNG94\",DATUM[\"Papua_New_Guinea_Geodetic_Datum"); add_srs_wkt (p, 1, "_1994\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"1076\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5546\"]]"); p = add_epsg_def_ex (filter, first, last, 5550, "epsg", 5550, "PNG94 / PNGMG94 zone 54", 0, 0, "GRS 1980", "Greenwich", "Papua_New_Guinea_Geodetic_Datum_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=54 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PNG94 / PNGMG94 zone 54\",GEOGCS[\"PNG94\",DATU"); add_srs_wkt (p, 1, "M[\"Papua_New_Guinea_Geodetic_Datum_1994\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1076\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"5546\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",141],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"5550\"]]"); p = add_epsg_def_ex (filter, first, last, 5551, "epsg", 5551, "PNG94 / PNGMG94 zone 55", 0, 0, "GRS 1980", "Greenwich", "Papua_New_Guinea_Geodetic_Datum_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PNG94 / PNGMG94 zone 55\",GEOGCS[\"PNG94\",DATU"); add_srs_wkt (p, 1, "M[\"Papua_New_Guinea_Geodetic_Datum_1994\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1076\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"5546\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",147],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"5551\"]]"); p = add_epsg_def_ex (filter, first, last, 5552, "epsg", 5552, "PNG94 / PNGMG94 zone 56", 0, 0, "GRS 1980", "Greenwich", "Papua_New_Guinea_Geodetic_Datum_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=56 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PNG94 / PNGMG94 zone 56\",GEOGCS[\"PNG94\",DATU"); add_srs_wkt (p, 1, "M[\"Papua_New_Guinea_Geodetic_Datum_1994\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1076\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"5546\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",153],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"5552\"]]"); p = add_epsg_def_ex (filter, first, last, 5554, "epsg", 5554, "ETRS89 / UTM zone 31N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=31 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / UTM zone 31N + DHHN92 height\",PROJC"); add_srs_wkt (p, 1, "S[\"ETRS89 / UTM zone 31N\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 2, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 3, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 4, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 5, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 6, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 7, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 8, "],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 9, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 10, "R[\"central_meridian\",3],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 11, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"25831\"]],VERT_CS[\"DHHN92 height\""); add_srs_wkt (p, 15, ",VERT_DATUM[\"Deutsches Haupthoehennetz 1992\",2005,AUTH"); add_srs_wkt (p, 16, "ORITY[\"EPSG\",\"5181\"]],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 17, "PSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"57"); add_srs_wkt (p, 18, "83\"]],AUTHORITY[\"EPSG\",\"5554\"]]"); p = add_epsg_def_ex (filter, first, last, 5555, "epsg", 5555, "ETRS89 / UTM zone 32N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / UTM zone 32N + DHHN92 height\",PROJC"); add_srs_wkt (p, 1, "S[\"ETRS89 / UTM zone 32N\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 2, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 3, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 4, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 5, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 6, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 7, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 8, "],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 9, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 10, "R[\"central_meridian\",9],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 11, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"25832\"]],VERT_CS[\"DHHN92 height\""); add_srs_wkt (p, 15, ",VERT_DATUM[\"Deutsches Haupthoehennetz 1992\",2005,AUTH"); add_srs_wkt (p, 16, "ORITY[\"EPSG\",\"5181\"]],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 17, "PSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"57"); add_srs_wkt (p, 18, "83\"]],AUTHORITY[\"EPSG\",\"5555\"]]"); p = add_epsg_def_ex (filter, first, last, 5556, "epsg", 5556, "ETRS89 / UTM zone 33N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / UTM zone 33N + DHHN92 height\",PROJC"); add_srs_wkt (p, 1, "S[\"ETRS89 / UTM zone 33N\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 2, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 3, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 4, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 5, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 6, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 7, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 8, "],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 9, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 10, "R[\"central_meridian\",15],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 11, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"25833\"]],VERT_CS[\"DHHN92 height\""); add_srs_wkt (p, 15, ",VERT_DATUM[\"Deutsches Haupthoehennetz 1992\",2005,AUTH"); add_srs_wkt (p, 16, "ORITY[\"EPSG\",\"5181\"]],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 17, "PSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"57"); add_srs_wkt (p, 18, "83\"]],AUTHORITY[\"EPSG\",\"5556\"]]"); p = add_epsg_def_ex (filter, first, last, 5559, "epsg", 5559, "Ocotepeque 1935 / Guatemala Norte", 0, 0, "Clarke 1866", "Greenwich", "Ocotepeque_1935", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=16.81666666666667 +lat_0=16.81666666666"); add_proj4text (p, 1, "667 +lon_0=-90.33333333333333 +k_0=0.99992226 +x_0=50000"); add_proj4text (p, 2, "0 +y_0=292209.579 +ellps=clrk66 +towgs84=205,96,-98,0,0,"); add_proj4text (p, 3, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ocotepeque 1935 / Guatemala Norte\",GEOGCS[\"Oc"); add_srs_wkt (p, 1, "otepeque 1935\",DATUM[\"Ocotepeque_1935\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[205,96,-98,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"1070\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"5451\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",16.81666666666667],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-90.33333333333333],PARAMETER[\"scale_factor\",0.999922"); add_srs_wkt (p, 11, "26],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",292209.579],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"5559\"]]"); p = add_epsg_def_ex (filter, first, last, 5561, "epsg", 5561, "UCS-2000", 1, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=25,-141,-78.5,0,0.35"); add_proj4text (p, 1, ",0.736,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Kr"); add_srs_wkt (p, 1, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 2, "]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"5561\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ���������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_36.c��������������������������������������������������0000664�0001750�0001750�00000537463�12544707704�017062� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_36 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 23830, "epsg", 23830, "DGN95 / Indonesia TM-3 zone 46.2", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=94.5 +k=0.9999 +x_0=200000 +"); add_proj4text (p, 1, "y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 46.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",94.5],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "9999],PARAMETER[\"false_easting\",200000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"23830\"]]"); p = add_epsg_def_ex (filter, first, last, 23831, "epsg", 23831, "DGN95 / Indonesia TM-3 zone 47.1", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=97.5 +k=0.9999 +x_0=200000 +"); add_proj4text (p, 1, "y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 47.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",97.5],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "9999],PARAMETER[\"false_easting\",200000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"23831\"]]"); p = add_epsg_def_ex (filter, first, last, 23832, "epsg", 23832, "DGN95 / Indonesia TM-3 zone 47.2", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=100.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 47.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",100.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999],PARAMETER[\"false_easting\",200000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"23832\"]]"); p = add_epsg_def_ex (filter, first, last, 23833, "epsg", 23833, "DGN95 / Indonesia TM-3 zone 48.1", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=103.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 48.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",103.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999],PARAMETER[\"false_easting\",200000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"23833\"]]"); p = add_epsg_def_ex (filter, first, last, 23834, "epsg", 23834, "DGN95 / Indonesia TM-3 zone 48.2", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=106.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 48.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",106.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999],PARAMETER[\"false_easting\",200000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"23834\"]]"); p = add_epsg_def_ex (filter, first, last, 23835, "epsg", 23835, "DGN95 / Indonesia TM-3 zone 49.1", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=109.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 49.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",109.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999],PARAMETER[\"false_easting\",200000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"23835\"]]"); p = add_epsg_def_ex (filter, first, last, 23836, "epsg", 23836, "DGN95 / Indonesia TM-3 zone 49.2", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=112.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 49.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",112.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999],PARAMETER[\"false_easting\",200000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"23836\"]]"); p = add_epsg_def_ex (filter, first, last, 23837, "epsg", 23837, "DGN95 / Indonesia TM-3 zone 50.1", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=115.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 50.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",115.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999],PARAMETER[\"false_easting\",200000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"23837\"]]"); p = add_epsg_def_ex (filter, first, last, 23838, "epsg", 23838, "DGN95 / Indonesia TM-3 zone 50.2", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=118.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 50.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",118.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999],PARAMETER[\"false_easting\",200000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"23838\"]]"); p = add_epsg_def_ex (filter, first, last, 23839, "epsg", 23839, "DGN95 / Indonesia TM-3 zone 51.1", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=121.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 51.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",121.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999],PARAMETER[\"false_easting\",200000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"23839\"]]"); p = add_epsg_def_ex (filter, first, last, 23840, "epsg", 23840, "DGN95 / Indonesia TM-3 zone 51.2", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=124.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 51.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",124.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999],PARAMETER[\"false_easting\",200000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"23840\"]]"); p = add_epsg_def_ex (filter, first, last, 23841, "epsg", 23841, "DGN95 / Indonesia TM-3 zone 52.1", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=127.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 52.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",127.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999],PARAMETER[\"false_easting\",200000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"23841\"]]"); p = add_epsg_def_ex (filter, first, last, 23842, "epsg", 23842, "DGN95 / Indonesia TM-3 zone 52.2", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=130.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 52.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",130.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999],PARAMETER[\"false_easting\",200000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"23842\"]]"); p = add_epsg_def_ex (filter, first, last, 23843, "epsg", 23843, "DGN95 / Indonesia TM-3 zone 53.1", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=133.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 53.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",133.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999],PARAMETER[\"false_easting\",200000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"23843\"]]"); p = add_epsg_def_ex (filter, first, last, 23844, "epsg", 23844, "DGN95 / Indonesia TM-3 zone 53.2", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=136.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 53.2\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",136.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999],PARAMETER[\"false_easting\",200000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"23844\"]]"); p = add_epsg_def_ex (filter, first, last, 23845, "epsg", 23845, "DGN95 / Indonesia TM-3 zone 54.1", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=139.5 +k=0.9999 +x_0=200000 "); add_proj4text (p, 1, "+y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / Indonesia TM-3 zone 54.1\",GEOGCS[\"DGN"); add_srs_wkt (p, 1, "95\",DATUM[\"Datum_Geodesi_Nasional_1995\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4755\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",139.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999],PARAMETER[\"false_easting\",200000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"23845\"]]"); p = add_epsg_def_ex (filter, first, last, 23846, "epsg", 23846, "ID74 / UTM zone 46N", 0, 0, "Indonesian National Spheroid", "Greenwich", "Indonesian_Datum_1974", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=46 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 46N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",93],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"23846\"]]"); p = add_epsg_def_ex (filter, first, last, 23847, "epsg", 23847, "ID74 / UTM zone 47N", 0, 0, "Indonesian National Spheroid", "Greenwich", "Indonesian_Datum_1974", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=47 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 47N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",99],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"23847\"]]"); p = add_epsg_def_ex (filter, first, last, 23848, "epsg", 23848, "ID74 / UTM zone 48N", 0, 0, "Indonesian National Spheroid", "Greenwich", "Indonesian_Datum_1974", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 48N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",105],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"23848\"]]"); p = add_epsg_def_ex (filter, first, last, 23849, "epsg", 23849, "ID74 / UTM zone 49N", 0, 0, "Indonesian National Spheroid", "Greenwich", "Indonesian_Datum_1974", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=49 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 49N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",111],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"23849\"]]"); p = add_epsg_def_ex (filter, first, last, 23850, "epsg", 23850, "ID74 / UTM zone 50N", 0, 0, "Indonesian National Spheroid", "Greenwich", "Indonesian_Datum_1974", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=50 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 50N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",117],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"23850\"]]"); p = add_epsg_def_ex (filter, first, last, 23851, "epsg", 23851, "ID74 / UTM zone 51N", 0, 0, "Indonesian National Spheroid", "Greenwich", "Indonesian_Datum_1974", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=51 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 51N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",123],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"23851\"]]"); p = add_epsg_def_ex (filter, first, last, 23852, "epsg", 23852, "ID74 / UTM zone 52N", 0, 0, "Indonesian National Spheroid", "Greenwich", "Indonesian_Datum_1974", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=52 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 52N\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",129],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"23852\"]]"); p = add_epsg_def_ex (filter, first, last, 23853, "epsg", 23853, "ID74 / UTM zone 53N (deprecated)", 0, 0, "Indonesian National Spheroid", "Greenwich", "Indonesian_Datum_1974", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=53 +a=6378160 +b=6356774.50408554 +towgs"); add_proj4text (p, 1, "84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 53N (deprecated)\",GEOGCS[\"ID7"); add_srs_wkt (p, 1, "4\",DATUM[\"Indonesian_Datum_1974\",SPHEROID[\"Indonesia"); add_srs_wkt (p, 2, "n National Spheroid\",6378160,298.247,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7021\"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6238\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",135],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"23853\"]]"); p = add_epsg_def_ex (filter, first, last, 23866, "epsg", 23866, "DGN95 / UTM zone 46N", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=46 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 46N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",93],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"23866\"]]"); p = add_epsg_def_ex (filter, first, last, 23867, "epsg", 23867, "DGN95 / UTM zone 47N", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=47 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 47N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",99],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"23867\"]]"); p = add_epsg_def_ex (filter, first, last, 23868, "epsg", 23868, "DGN95 / UTM zone 48N", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 48N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",105],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"23868\"]]"); p = add_epsg_def_ex (filter, first, last, 23869, "epsg", 23869, "DGN95 / UTM zone 49N", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=49 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 49N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",111],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"23869\"]]"); p = add_epsg_def_ex (filter, first, last, 23870, "epsg", 23870, "DGN95 / UTM zone 50N", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=50 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 50N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",117],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"23870\"]]"); p = add_epsg_def_ex (filter, first, last, 23871, "epsg", 23871, "DGN95 / UTM zone 51N", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=51 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 51N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",123],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"23871\"]]"); p = add_epsg_def_ex (filter, first, last, 23872, "epsg", 23872, "DGN95 / UTM zone 52N", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=52 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 52N\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",129],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"23872\"]]"); p = add_epsg_def_ex (filter, first, last, 23877, "epsg", 23877, "DGN95 / UTM zone 47S", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=47 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 47S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",99],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"23877\"]]"); p = add_epsg_def_ex (filter, first, last, 23878, "epsg", 23878, "DGN95 / UTM zone 48S", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 48S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",105],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"23878\"]]"); p = add_epsg_def_ex (filter, first, last, 23879, "epsg", 23879, "DGN95 / UTM zone 49S", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=49 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 49S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",111],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"23879\"]]"); p = add_epsg_def_ex (filter, first, last, 23880, "epsg", 23880, "DGN95 / UTM zone 50S", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 50S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",117],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"23880\"]]"); p = add_epsg_def_ex (filter, first, last, 23881, "epsg", 23881, "DGN95 / UTM zone 51S", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=51 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 51S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",123],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"23881\"]]"); p = add_epsg_def_ex (filter, first, last, 23882, "epsg", 23882, "DGN95 / UTM zone 52S", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=52 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 52S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",129],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"23882\"]]"); p = add_epsg_def_ex (filter, first, last, 23883, "epsg", 23883, "DGN95 / UTM zone 53S", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=53 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 53S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",135],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"23883\"]]"); p = add_epsg_def_ex (filter, first, last, 23884, "epsg", 23884, "DGN95 / UTM zone 54S", 0, 0, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=54 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DGN95 / UTM zone 54S\",GEOGCS[\"DGN95\",DATUM[\""); add_srs_wkt (p, 1, "Datum_Geodesi_Nasional_1995\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6755\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4755\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",141],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"23884\"]]"); p = add_epsg_def_ex (filter, first, last, 23886, "epsg", 23886, "ID74 / UTM zone 46S (deprecated)", 0, 0, "Indonesian National Spheroid", "Greenwich", "Indonesian_Datum_1974", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=46 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 46S (deprecated)\",GEOGCS[\"ID7"); add_srs_wkt (p, 1, "4\",DATUM[\"Indonesian_Datum_1974\",SPHEROID[\"Indonesia"); add_srs_wkt (p, 2, "n National Spheroid\",6378160,298.247,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7021\"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6238\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"23886\"]]"); p = add_epsg_def_ex (filter, first, last, 23887, "epsg", 23887, "ID74 / UTM zone 47S", 0, 0, "Indonesian National Spheroid", "Greenwich", "Indonesian_Datum_1974", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=47 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 47S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",99],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"23887\"]]"); p = add_epsg_def_ex (filter, first, last, 23888, "epsg", 23888, "ID74 / UTM zone 48S", 0, 0, "Indonesian National Spheroid", "Greenwich", "Indonesian_Datum_1974", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 48S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",105],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"23888\"]]"); p = add_epsg_def_ex (filter, first, last, 23889, "epsg", 23889, "ID74 / UTM zone 49S", 0, 0, "Indonesian National Spheroid", "Greenwich", "Indonesian_Datum_1974", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=49 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 49S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",111],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"23889\"]]"); p = add_epsg_def_ex (filter, first, last, 23890, "epsg", 23890, "ID74 / UTM zone 50S", 0, 0, "Indonesian National Spheroid", "Greenwich", "Indonesian_Datum_1974", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 50S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",117],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"23890\"]]"); p = add_epsg_def_ex (filter, first, last, 23891, "epsg", 23891, "ID74 / UTM zone 51S", 0, 0, "Indonesian National Spheroid", "Greenwich", "Indonesian_Datum_1974", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=51 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 51S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",123],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"23891\"]]"); p = add_epsg_def_ex (filter, first, last, 23892, "epsg", 23892, "ID74 / UTM zone 52S", 0, 0, "Indonesian National Spheroid", "Greenwich", "Indonesian_Datum_1974", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=52 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 52S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",129],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"23892\"]]"); p = add_epsg_def_ex (filter, first, last, 23893, "epsg", 23893, "ID74 / UTM zone 53S", 0, 0, "Indonesian National Spheroid", "Greenwich", "Indonesian_Datum_1974", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=53 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 53S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",135],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"23893\"]]"); p = add_epsg_def_ex (filter, first, last, 23894, "epsg", 23894, "ID74 / UTM zone 54S", 0, 0, "Indonesian National Spheroid", "Greenwich", "Indonesian_Datum_1974", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=54 +south +a=6378160 +b=6356774.50408554"); add_proj4text (p, 1, " +towgs84=-24,-15,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ID74 / UTM zone 54S\",GEOGCS[\"ID74\",DATUM[\"I"); add_srs_wkt (p, 1, "ndonesian_Datum_1974\",SPHEROID[\"Indonesian National Sp"); add_srs_wkt (p, 2, "heroid\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],T"); add_srs_wkt (p, 3, "OWGS84[-24,-15,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6238\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4238\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",141],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"23894\"]]"); p = add_epsg_def_ex (filter, first, last, 23946, "epsg", 23946, "Indian 1954 / UTM zone 46N", 0, 0, "Everest 1830 (1937 Adjustment)", "Greenwich", "Indian_1954", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=46 +a=6377276.345 +b=6356075.413140239 +"); add_proj4text (p, 1, "towgs84=217,823,299,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1954 / UTM zone 46N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, "54\",DATUM[\"Indian_1954\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7015\"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6239\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4239\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"23946\"]]"); p = add_epsg_def_ex (filter, first, last, 23947, "epsg", 23947, "Indian 1954 / UTM zone 47N", 0, 0, "Everest 1830 (1937 Adjustment)", "Greenwich", "Indian_1954", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=47 +a=6377276.345 +b=6356075.413140239 +"); add_proj4text (p, 1, "towgs84=217,823,299,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1954 / UTM zone 47N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, "54\",DATUM[\"Indian_1954\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7015\"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6239\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4239\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"23947\"]]"); p = add_epsg_def_ex (filter, first, last, 23948, "epsg", 23948, "Indian 1954 / UTM zone 48N", 0, 0, "Everest 1830 (1937 Adjustment)", "Greenwich", "Indian_1954", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +"); add_proj4text (p, 1, "towgs84=217,823,299,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1954 / UTM zone 48N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, "54\",DATUM[\"Indian_1954\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7015\"]],TOWGS84[217,823,299,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6239\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4239\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",105],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"23948\"]]"); p = add_epsg_def_ex (filter, first, last, 24047, "epsg", 24047, "Indian 1975 / UTM zone 47N", 0, 0, "Everest 1830 (1937 Adjustment)", "Greenwich", "Indian_1975", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=47 +a=6377276.345 +b=6356075.413140239 +"); add_proj4text (p, 1, "towgs84=210,814,289,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1975 / UTM zone 47N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, "75\",DATUM[\"Indian_1975\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7015\"]],TOWGS84[210,814,289,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6240\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4240\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"24047\"]]"); p = add_epsg_def_ex (filter, first, last, 24048, "epsg", 24048, "Indian 1975 / UTM zone 48N", 0, 0, "Everest 1830 (1937 Adjustment)", "Greenwich", "Indian_1975", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +"); add_proj4text (p, 1, "towgs84=210,814,289,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1975 / UTM zone 48N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, "75\",DATUM[\"Indian_1975\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7015\"]],TOWGS84[210,814,289,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6240\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4240\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",105],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"24048\"]]"); p = add_epsg_def_ex (filter, first, last, 24100, "epsg", 24100, "Jamaica 1875 / Jamaica (Old Grid)", 0, 0, "Clarke 1880", "Greenwich", "Jamaica_1875", "Lambert_Conformal_Conic_1SP", "Clarke's foot", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=167"); add_proj4text (p, 1, "638.49597 +y_0=121918.90616 +a=6378249.144808011 +b=6356"); add_proj4text (p, 2, "514.966204134 +to_meter=0.3047972654 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Jamaica 1875 / Jamaica (Old Grid)\",GEOGCS[\"Ja"); add_srs_wkt (p, 1, "maica 1875\",DATUM[\"Jamaica_1875\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "80\",6378249.144808011,293.4663076556365,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7034\"]],AUTHORITY[\"EPSG\",\"6241\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4241\"]],PROJECTION[\"Lambert_Conformal_Conic_1S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"latitude_of_origin\",18],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-77],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",550000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",400000],UNIT[\"Clarke's foot\",0.3047972654,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9005\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 13, "thing\",NORTH],AUTHORITY[\"EPSG\",\"24100\"]]"); p = add_epsg_def_ex (filter, first, last, 24200, "epsg", 24200, "JAD69 / Jamaica National Grid", 0, 0, "Clarke 1866", "Greenwich", "Jamaica_1969", "Lambert_Conformal_Conic_1SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=250"); add_proj4text (p, 1, "000 +y_0=150000 +ellps=clrk66 +towgs84=70,207,389.5,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JAD69 / Jamaica National Grid\",GEOGCS[\"JAD69\""); add_srs_wkt (p, 1, ",DATUM[\"Jamaica_1969\",SPHEROID[\"Clarke 1866\",6378206"); add_srs_wkt (p, 2, ".4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS"); add_srs_wkt (p, 3, "84[70,207,389.5,0,0,0,0],AUTHORITY[\"EPSG\",\"6242\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4242\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",18],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",-77],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",250000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",150000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"24200\"]]"); p = add_epsg_def_ex (filter, first, last, 24305, "epsg", 24305, "Kalianpur 1937 / UTM zone 45N", 0, 0, "Everest 1830 (1937 Adjustment)", "Greenwich", "Kalianpur_1937", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=45 +a=6377276.345 +b=6356075.413140239 +"); add_proj4text (p, 1, "towgs84=214,804,268,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1937 / UTM zone 45N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1937\",DATUM[\"Kalianpur_1937\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1937 Adjustment)\",6377276.345,300.8017,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7015\"]],TOWGS84[214,804,268,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4144\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",0],PARAMETER[\"central_meridian\",87],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 13, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24305\"]]"); p = add_epsg_def_ex (filter, first, last, 24306, "epsg", 24306, "Kalianpur 1937 / UTM zone 46N", 0, 0, "Everest 1830 (1937 Adjustment)", "Greenwich", "Kalianpur_1937", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=46 +a=6377276.345 +b=6356075.413140239 +"); add_proj4text (p, 1, "towgs84=214,804,268,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1937 / UTM zone 46N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1937\",DATUM[\"Kalianpur_1937\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1937 Adjustment)\",6377276.345,300.8017,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7015\"]],TOWGS84[214,804,268,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4144\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",0],PARAMETER[\"central_meridian\",93],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 13, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24306\"]]"); p = add_epsg_def_ex (filter, first, last, 24311, "epsg", 24311, "Kalianpur 1962 / UTM zone 41N", 0, 0, "Everest 1830 (1962 Definition)", "Greenwich", "Kalianpur_1962", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=41 +a=6377301.243 +b=6356100.230165385 +"); add_proj4text (p, 1, "towgs84=283,682,231,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1962 / UTM zone 41N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4145\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",63],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24311\"]]"); p = add_epsg_def_ex (filter, first, last, 24312, "epsg", 24312, "Kalianpur 1962 / UTM zone 42N", 0, 0, "Everest 1830 (1962 Definition)", "Greenwich", "Kalianpur_1962", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=42 +a=6377301.243 +b=6356100.230165385 +"); add_proj4text (p, 1, "towgs84=283,682,231,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1962 / UTM zone 42N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4145\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",69],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24312\"]]"); p = add_epsg_def_ex (filter, first, last, 24313, "epsg", 24313, "Kalianpur 1962 / UTM zone 43N", 0, 0, "Everest 1830 (1962 Definition)", "Greenwich", "Kalianpur_1962", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=43 +a=6377301.243 +b=6356100.230165385 +"); add_proj4text (p, 1, "towgs84=283,682,231,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1962 / UTM zone 43N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4145\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",75],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24313\"]]"); p = add_epsg_def_ex (filter, first, last, 24342, "epsg", 24342, "Kalianpur 1975 / UTM zone 42N", 0, 0, "Everest 1830 (1975 Definition)", "Greenwich", "Kalianpur_1975", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=42 +a=6377299.151 +b=6356098.145120132 +"); add_proj4text (p, 1, "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / UTM zone 42N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4146\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",69],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24342\"]]"); p = add_epsg_def_ex (filter, first, last, 24343, "epsg", 24343, "Kalianpur 1975 / UTM zone 43N", 0, 0, "Everest 1830 (1975 Definition)", "Greenwich", "Kalianpur_1975", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=43 +a=6377299.151 +b=6356098.145120132 +"); add_proj4text (p, 1, "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / UTM zone 43N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4146\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",75],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24343\"]]"); p = add_epsg_def_ex (filter, first, last, 24344, "epsg", 24344, "Kalianpur 1975 / UTM zone 44N", 0, 0, "Everest 1830 (1975 Definition)", "Greenwich", "Kalianpur_1975", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=44 +a=6377299.151 +b=6356098.145120132 +"); add_proj4text (p, 1, "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / UTM zone 44N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4146\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",81],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24344\"]]"); p = add_epsg_def_ex (filter, first, last, 24345, "epsg", 24345, "Kalianpur 1975 / UTM zone 45N", 0, 0, "Everest 1830 (1975 Definition)", "Greenwich", "Kalianpur_1975", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=45 +a=6377299.151 +b=6356098.145120132 +"); add_proj4text (p, 1, "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / UTM zone 45N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4146\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",87],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24345\"]]"); p = add_epsg_def_ex (filter, first, last, 24346, "epsg", 24346, "Kalianpur 1975 / UTM zone 46N", 0, 0, "Everest 1830 (1975 Definition)", "Greenwich", "Kalianpur_1975", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=46 +a=6377299.151 +b=6356098.145120132 +"); add_proj4text (p, 1, "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / UTM zone 46N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4146\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",93],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24346\"]]"); p = add_epsg_def_ex (filter, first, last, 24347, "epsg", 24347, "Kalianpur 1975 / UTM zone 47N", 0, 0, "Everest 1830 (1975 Definition)", "Greenwich", "Kalianpur_1975", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=47 +a=6377299.151 +b=6356098.145120132 +"); add_proj4text (p, 1, "towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / UTM zone 47N\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4146\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",99],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"24347\"]]"); p = add_epsg_def_ex (filter, first, last, 24370, "epsg", 24370, "Kalianpur 1880 / India zone 0", 0, 0, "Everest (1830 Definition)", "Greenwich", "Kalianpur_1880", "Lambert_Conformal_Conic_1SP", "Indian yard", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.5 +lat_0=39.5 +lon_0=68 +k_0=0.99846"); add_proj4text (p, 1, "154 +x_0=2153865.73916853 +y_0=2368292.194628102 +a=6377"); add_proj4text (p, 2, "299.36559538 +b=6356098.359005156 +to_meter=0.9143985307"); add_proj4text (p, 3, "444408 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1880 / India zone 0\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest ("); add_srs_wkt (p, 2, "1830 Definition)\",6377299.36559538,300.8017255433549,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",39."); add_srs_wkt (p, 9, "5],PARAMETER[\"central_meridian\",68],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.99846154],PARAMETER[\"false_easting\",2355500"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",2590000],UNIT[\"Indian ya"); add_srs_wkt (p, 12, "rd\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"24370\"]]"); p = add_epsg_def_ex (filter, first, last, 24371, "epsg", 24371, "Kalianpur 1880 / India zone I", 0, 0, "Everest (1830 Definition)", "Greenwich", "Kalianpur_1880", "Lambert_Conformal_Conic_1SP", "Indian yard", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878"); add_proj4text (p, 1, "641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=637"); add_proj4text (p, 2, "7299.36559538 +b=6356098.359005156 +to_meter=0.914398530"); add_proj4text (p, 3, "7444408 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1880 / India zone I\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest ("); add_srs_wkt (p, 2, "1830 Definition)\",6377299.36559538,300.8017255433549,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",32."); add_srs_wkt (p, 9, "5],PARAMETER[\"central_meridian\",68],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.99878641],PARAMETER[\"false_easting\",3000000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",1000000],UNIT[\"Indian ya"); add_srs_wkt (p, 12, "rd\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"24371\"]]"); p = add_epsg_def_ex (filter, first, last, 24372, "epsg", 24372, "Kalianpur 1880 / India zone IIa", 0, 0, "Everest (1830 Definition)", "Greenwich", "Kalianpur_1880", "Lambert_Conformal_Conic_1SP", "Indian yard", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299"); add_proj4text (p, 2, ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444"); add_proj4text (p, 3, "408 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1880 / India zone IIa\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, "anpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, " (1830 Definition)\",6377299.36559538,300.8017255433549,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",26"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",74],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.99878641],PARAMETER[\"false_easting\",3000000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",1000000],UNIT[\"Indian yar"); add_srs_wkt (p, 12, "d\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\"]],AXI"); add_srs_wkt (p, 13, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"24372\"]]"); p = add_epsg_def_ex (filter, first, last, 24373, "epsg", 24373, "Kalianpur 1880 / India zone IIIa", 0, 0, "Everest (1830 Definition)", "Greenwich", "Kalianpur_1880", "Lambert_Conformal_Conic_1SP", "Indian yard", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299"); add_proj4text (p, 2, ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444"); add_proj4text (p, 3, "408 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1880 / India zone IIIa\",GEOGCS[\"Kal"); add_srs_wkt (p, 1, "ianpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everes"); add_srs_wkt (p, 2, "t (1830 Definition)\",6377299.36559538,300.8017255433549"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "19],PARAMETER[\"central_meridian\",80],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.99878641],PARAMETER[\"false_easting\",300000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",1000000],UNIT[\"Indian y"); add_srs_wkt (p, 12, "ard\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\"]],A"); add_srs_wkt (p, 13, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"24373\"]]"); p = add_epsg_def_ex (filter, first, last, 24374, "epsg", 24374, "Kalianpur 1880 / India zone IVa", 0, 0, "Everest (1830 Definition)", "Greenwich", "Kalianpur_1880", "Lambert_Conformal_Conic_1SP", "Indian yard", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299"); add_proj4text (p, 2, ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444"); add_proj4text (p, 3, "408 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1880 / India zone IVa\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, "anpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, " (1830 Definition)\",6377299.36559538,300.8017255433549,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",12"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",80],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.99878641],PARAMETER[\"false_easting\",3000000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",1000000],UNIT[\"Indian yar"); add_srs_wkt (p, 12, "d\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\"]],AXI"); add_srs_wkt (p, 13, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"24374\"]]"); p = add_epsg_def_ex (filter, first, last, 24375, "epsg", 24375, "Kalianpur 1937 / India zone IIb", 0, 0, "Everest 1830 (1937 Adjustment)", "Greenwich", "Kalianpur_1937", "Lambert_Conformal_Conic_1SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743185.69 +y_0=914395.23 +a=6377276.345 +b=6356075"); add_proj4text (p, 2, ".413140239 +towgs84=214,804,268,0,0,0,0 +units=m +no_def"); add_proj4text (p, 3, "s"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1937 / India zone IIb\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, "anpur 1937\",DATUM[\"Kalianpur_1937\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, " 1830 (1937 Adjustment)\",6377276.345,300.8017,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7015\"]],TOWGS84[214,804,268,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4144\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",26],PARAMETER[\"central_meridian\",90"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.99878641],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",2743185.69],PARAMETER[\"false_northing\",91"); add_srs_wkt (p, 12, "4395.23],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 14, "Y[\"EPSG\",\"24375\"]]"); p = add_epsg_def_ex (filter, first, last, 24376, "epsg", 24376, "Kalianpur 1962 / India zone I", 0, 0, "Everest 1830 (1962 Definition)", "Greenwich", "Kalianpur_1962", "Lambert_Conformal_Conic_1SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878"); add_proj4text (p, 1, "641 +x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=63561"); add_proj4text (p, 2, "00.230165385 +towgs84=283,682,231,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1962 / India zone I\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1962 Definition)\",6377301.243,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4145\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",32.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",68],PARAMETER[\"scale_factor\",0.99878641],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",2743196.4],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "914398.8],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 13, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"24376\"]]"); p = add_epsg_def_ex (filter, first, last, 24377, "epsg", 24377, "Kalianpur 1962 / India zone IIa", 0, 0, "Everest 1830 (1962 Definition)", "Greenwich", "Kalianpur_1962", "Lambert_Conformal_Conic_1SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=6356100.2"); add_proj4text (p, 2, "30165385 +towgs84=283,682,231,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1962 / India zone IIa\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, "anpur 1962\",DATUM[\"Kalianpur_1962\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, " 1830 (1962 Definition)\",6377301.243,300.8017255,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7044\"]],TOWGS84[283,682,231,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4145\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",26],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 10, "74],PARAMETER[\"scale_factor\",0.99878641],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",2743196.4],PARAMETER[\"false_northing\",9"); add_srs_wkt (p, 12, "14398.8],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 14, "Y[\"EPSG\",\"24377\"]]"); p = add_epsg_def_ex (filter, first, last, 24378, "epsg", 24378, "Kalianpur 1975 / India zone I", 0, 0, "Everest 1830 (1975 Definition)", "Greenwich", "Kalianpur_1975", "Lambert_Conformal_Conic_1SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878"); add_proj4text (p, 1, "641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=63560"); add_proj4text (p, 2, "98.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / India zone I\",GEOGCS[\"Kalian"); add_srs_wkt (p, 1, "pur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1975 Definition)\",6377299.151,300.8017255,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4146\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",32.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",68],PARAMETER[\"scale_factor\",0.99878641],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",2743195.5],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 13, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"24378\"]]"); p = add_epsg_def_ex (filter, first, last, 24379, "epsg", 24379, "Kalianpur 1975 / India zone IIa", 0, 0, "Everest 1830 (1975 Definition)", "Greenwich", "Kalianpur_1975", "Lambert_Conformal_Conic_1SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1"); add_proj4text (p, 2, "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / India zone IIa\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, "anpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, " 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4146\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",26],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 10, "74],PARAMETER[\"scale_factor\",0.99878641],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",2743195.5],PARAMETER[\"false_northing\",9"); add_srs_wkt (p, 12, "14398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 14, "Y[\"EPSG\",\"24379\"]]"); p = add_epsg_def_ex (filter, first, last, 24380, "epsg", 24380, "Kalianpur 1975 / India zone IIb", 0, 0, "Everest 1830 (1975 Definition)", "Greenwich", "Kalianpur_1975", "Lambert_Conformal_Conic_1SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1"); add_proj4text (p, 2, "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / India zone IIb\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, "anpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, " 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4146\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",26],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 10, "90],PARAMETER[\"scale_factor\",0.99878641],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",2743195.5],PARAMETER[\"false_northing\",9"); add_srs_wkt (p, 12, "14398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 14, "Y[\"EPSG\",\"24380\"]]"); p = add_epsg_def_ex (filter, first, last, 24381, "epsg", 24381, "Kalianpur 1975 / India zone IIIa", 0, 0, "Everest 1830 (1975 Definition)", "Greenwich", "Kalianpur_1975", "Lambert_Conformal_Conic_1SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1"); add_proj4text (p, 2, "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / India zone IIIa\",GEOGCS[\"Kal"); add_srs_wkt (p, 1, "ianpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everes"); add_srs_wkt (p, 2, "t 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4146\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER["); add_srs_wkt (p, 9, "\"latitude_of_origin\",19],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",80],PARAMETER[\"scale_factor\",0.99878641],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",2743195.5],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "914398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 13, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"24381\"]]"); p = add_epsg_def_ex (filter, first, last, 24382, "epsg", 24382, "Kalianpur 1880 / India zone IIb", 0, 0, "Everest (1830 Definition)", "Greenwich", "Kalianpur_1880", "Lambert_Conformal_Conic_1SP", "Indian yard", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299"); add_proj4text (p, 2, ".36559538 +b=6356098.359005156 +to_meter=0.9143985307444"); add_proj4text (p, 3, "408 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1880 / India zone IIb\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, "anpur 1880\",DATUM[\"Kalianpur_1880\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, " (1830 Definition)\",6377299.36559538,300.8017255433549,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6243\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4243\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",26"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",90],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.99878641],PARAMETER[\"false_easting\",3000000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",1000000],UNIT[\"Indian yar"); add_srs_wkt (p, 12, "d\",0.9143985307444408,AUTHORITY[\"EPSG\",\"9084\"]],AXI"); add_srs_wkt (p, 13, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"24382\"]]"); p = add_epsg_def_ex (filter, first, last, 24383, "epsg", 24383, "Kalianpur 1975 / India zone IVa", 0, 0, "Everest 1830 (1975 Definition)", "Greenwich", "Kalianpur_1975", "Lambert_Conformal_Conic_1SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 "); add_proj4text (p, 1, "+x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.1"); add_proj4text (p, 2, "45120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kalianpur 1975 / India zone IVa\",GEOGCS[\"Kali"); add_srs_wkt (p, 1, "anpur 1975\",DATUM[\"Kalianpur_1975\",SPHEROID[\"Everest"); add_srs_wkt (p, 2, " 1830 (1975 Definition)\",6377299.151,300.8017255,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4146\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",12],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 10, "80],PARAMETER[\"scale_factor\",0.99878641],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",2743195.5],PARAMETER[\"false_northing\",9"); add_srs_wkt (p, 12, "14398.5],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 14, "Y[\"EPSG\",\"24383\"]]"); p = add_epsg_def_ex (filter, first, last, 24500, "epsg", 24500, "Kertau 1968 / Singapore Grid", 0, 0, "Everest 1830 Modified", "Greenwich", "Kertau_1968", "Cassini_Soldner", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=cass +lat_0=1.287646666666667 +lon_0=103.853002222"); add_proj4text (p, 1, "2222 +x_0=30000 +y_0=30000 +a=6377304.063 +b=6356103.038"); add_proj4text (p, 2, "993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kertau 1968 / Singapore Grid\",GEOGCS[\"Kertau "); add_srs_wkt (p, 1, "1968\",DATUM[\"Kertau_1968\",SPHEROID[\"Everest 1830 Mod"); add_srs_wkt (p, 2, "ified\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\""); add_srs_wkt (p, 3, "]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6245\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION[\"Cassini_So"); add_srs_wkt (p, 8, "ldner\"],PARAMETER[\"latitude_of_origin\",1.287646666666"); add_srs_wkt (p, 9, "667],PARAMETER[\"central_meridian\",103.8530022222222],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",30000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",30000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"24500\"]]"); p = add_epsg_def_ex (filter, first, last, 24547, "epsg", 24547, "Kertau 1968 / UTM zone 47N", 0, 0, "Everest 1830 Modified", "Greenwich", "Kertau_1968", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=47 +a=6377304.063 +b=6356103.038993155 +"); add_proj4text (p, 1, "towgs84=-11,851,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kertau 1968 / UTM zone 47N\",GEOGCS[\"Kertau 19"); add_srs_wkt (p, 1, "68\",DATUM[\"Kertau_1968\",SPHEROID[\"Everest 1830 Modif"); add_srs_wkt (p, 2, "ied\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6245\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",99],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"24547\"]]"); p = add_epsg_def_ex (filter, first, last, 24548, "epsg", 24548, "Kertau 1968 / UTM zone 48N", 0, 0, "Everest 1830 Modified", "Greenwich", "Kertau_1968", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +a=6377304.063 +b=6356103.038993155 +"); add_proj4text (p, 1, "towgs84=-11,851,5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kertau 1968 / UTM zone 48N\",GEOGCS[\"Kertau 19"); add_srs_wkt (p, 1, "68\",DATUM[\"Kertau_1968\",SPHEROID[\"Everest 1830 Modif"); add_srs_wkt (p, 2, "ied\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EPSG\",\"6245\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",105],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"24548\"]]"); p = add_epsg_def_ex (filter, first, last, 24571, "epsg", 24571, "Kertau / R.S.O. Malaya (ch) (deprecated)", 0, 0, "Everest 1830 Modified", "Greenwich", "Kertau_1968", "Hotine_Oblique_Mercator", "British chain (Benoit 1895 B)", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k="); add_proj4text (p, 1, "0.99984 +x_0=804671.2997750348 +y_0=0 +no_uoff +gamma=32"); add_proj4text (p, 2, "3.1301023611111 +a=6377304.063 +b=6356103.038993155 +tow"); add_proj4text (p, 3, "gs84=-11,851,5,0,0,0,0 +to_meter=20.11678249437587 +no_d"); add_proj4text (p, 4, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Kertau / R.S.O. Malaya (ch) (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"Kertau 1968\",DATUM[\"Kertau_1968\",SPHEROID[\"Ever"); add_srs_wkt (p, 2, "est 1830 Modified\",6377304.063,300.8017,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7018\"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6245\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4245\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Hotine_Oblique_Mercator\"],PARAMETER[\"latitude_of_cen"); add_srs_wkt (p, 9, "ter\",4],PARAMETER[\"longitude_of_center\",102.25],PARAM"); add_srs_wkt (p, 10, "ETER[\"azimuth\",323.0257905],PARAMETER[\"rectified_grid"); add_srs_wkt (p, 11, "_angle\",323.1301023611111],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 12, ".99984],PARAMETER[\"false_easting\",40000],PARAMETER[\"f"); add_srs_wkt (p, 13, "alse_northing\",0],UNIT[\"British chain (Benoit 1895 B)\""); add_srs_wkt (p, 14, ",20.11678249437587,AUTHORITY[\"EPSG\",\"9062\"]],AXIS[\""); add_srs_wkt (p, 15, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"24571\"]]"); p = add_epsg_def_ex (filter, first, last, 24600, "epsg", 24600, "KOC Lambert", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Kuwait_Oil_Company", "Lambert_Conformal_Conic_1SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.99878"); add_proj4text (p, 1, "64078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +tow"); add_proj4text (p, 2, "gs84=-294.7,-200.1,525.5,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"KOC Lambert\",GEOGCS[\"KOC\",DATUM[\"Kuwait_Oil"); add_srs_wkt (p, 1, "_Company\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,29"); add_srs_wkt (p, 2, "3.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-294.7,-200."); add_srs_wkt (p, 3, "1,525.5,0,0,0,0],AUTHORITY[\"EPSG\",\"6246\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4246\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_1SP\"],PARAMETER[\"latitude_of_origin\",32.5],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",45],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "9987864078],PARAMETER[\"false_easting\",1500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",1166200],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 13, "hing\",NORTH],AUTHORITY[\"EPSG\",\"24600\"]]"); p = add_epsg_def_ex (filter, first, last, 24718, "epsg", 24718, "La Canoa / UTM zone 18N", 0, 0, "International 1924", "Greenwich", "La_Canoa", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=intl +towgs84=-273.5,110.6,-35"); add_proj4text (p, 1, "7.9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"La Canoa / UTM zone 18N\",GEOGCS[\"La Canoa\",D"); add_srs_wkt (p, 1, "ATUM[\"La_Canoa\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 2, "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-273.5,110.6"); add_srs_wkt (p, 3, ",-357.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6247\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4247\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-75],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"24718\"]]"); p = add_epsg_def_ex (filter, first, last, 24719, "epsg", 24719, "La Canoa / UTM zone 19N", 0, 0, "International 1924", "Greenwich", "La_Canoa", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=intl +towgs84=-273.5,110.6,-35"); add_proj4text (p, 1, "7.9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"La Canoa / UTM zone 19N\",GEOGCS[\"La Canoa\",D"); add_srs_wkt (p, 1, "ATUM[\"La_Canoa\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 2, "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-273.5,110.6"); add_srs_wkt (p, 3, ",-357.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6247\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4247\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-69],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"24719\"]]"); p = add_epsg_def_ex (filter, first, last, 24720, "epsg", 24720, "La Canoa / UTM zone 20N", 0, 0, "International 1924", "Greenwich", "La_Canoa", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=intl +towgs84=-273.5,110.6,-35"); add_proj4text (p, 1, "7.9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"La Canoa / UTM zone 20N\",GEOGCS[\"La Canoa\",D"); add_srs_wkt (p, 1, "ATUM[\"La_Canoa\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 2, "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-273.5,110.6"); add_srs_wkt (p, 3, ",-357.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6247\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4247\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-63],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"24720\"]]"); p = add_epsg_def_ex (filter, first, last, 24817, "epsg", 24817, "PSAD56 / UTM zone 17N", 0, 0, "International 1924", "Greenwich", "Provisional_South_American_Datum_1956", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=intl +towgs84=-288,175,-376,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 17N\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"24817\"]]"); p = add_epsg_def_ex (filter, first, last, 24818, "epsg", 24818, "PSAD56 / UTM zone 18N", 0, 0, "International 1924", "Greenwich", "Provisional_South_American_Datum_1956", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=intl +towgs84=-288,175,-376,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 18N\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"24818\"]]"); p = add_epsg_def_ex (filter, first, last, 24819, "epsg", 24819, "PSAD56 / UTM zone 19N", 0, 0, "International 1924", "Greenwich", "Provisional_South_American_Datum_1956", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=intl +towgs84=-288,175,-376,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 19N\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"24819\"]]"); p = add_epsg_def_ex (filter, first, last, 24820, "epsg", 24820, "PSAD56 / UTM zone 20N", 0, 0, "International 1924", "Greenwich", "Provisional_South_American_Datum_1956", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=intl +towgs84=-288,175,-376,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 20N\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"24820\"]]"); p = add_epsg_def_ex (filter, first, last, 24821, "epsg", 24821, "PSAD56 / UTM zone 21N", 0, 0, "International 1924", "Greenwich", "Provisional_South_American_Datum_1956", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=intl +towgs84=-288,175,-376,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 21N\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"24821\"]]"); p = add_epsg_def_ex (filter, first, last, 24877, "epsg", 24877, "PSAD56 / UTM zone 17S", 0, 0, "International 1924", "Greenwich", "Provisional_South_American_Datum_1956", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +south +ellps=intl +towgs84=-288,175,"); add_proj4text (p, 1, "-376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 17S\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"24877\"]]"); p = add_epsg_def_ex (filter, first, last, 24878, "epsg", 24878, "PSAD56 / UTM zone 18S", 0, 0, "International 1924", "Greenwich", "Provisional_South_American_Datum_1956", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=intl +towgs84=-288,175,"); add_proj4text (p, 1, "-376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 18S\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"24878\"]]"); p = add_epsg_def_ex (filter, first, last, 24879, "epsg", 24879, "PSAD56 / UTM zone 19S", 0, 0, "International 1924", "Greenwich", "Provisional_South_American_Datum_1956", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=intl +towgs84=-288,175,"); add_proj4text (p, 1, "-376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 19S\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"24879\"]]"); p = add_epsg_def_ex (filter, first, last, 24880, "epsg", 24880, "PSAD56 / UTM zone 20S", 0, 0, "International 1924", "Greenwich", "Provisional_South_American_Datum_1956", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=intl +towgs84=-288,175,"); add_proj4text (p, 1, "-376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 20S\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"24880\"]]"); p = add_epsg_def_ex (filter, first, last, 24881, "epsg", 24881, "PSAD56 / UTM zone 21S", 0, 0, "International 1924", "Greenwich", "Provisional_South_American_Datum_1956", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=intl +towgs84=-288,175,"); add_proj4text (p, 1, "-376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 21S\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-57],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"24881\"]]"); p = add_epsg_def_ex (filter, first, last, 24882, "epsg", 24882, "PSAD56 / UTM zone 22S", 0, 0, "International 1924", "Greenwich", "Provisional_South_American_Datum_1956", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=intl +towgs84=-288,175,"); add_proj4text (p, 1, "-376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / UTM zone 22S\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"24882\"]]"); p = add_epsg_def_ex (filter, first, last, 24891, "epsg", 24891, "PSAD56 / Peru west zone", 0, 0, "International 1924", "Greenwich", "Provisional_South_American_Datum_1956", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-6 +lon_0=-80.5 +k=0.99983008 +x_0=22"); add_proj4text (p, 1, "2000 +y_0=1426834.743 +ellps=intl +towgs84=-288,175,-376"); add_proj4text (p, 2, ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / Peru west zone\",GEOGCS[\"PSAD56\",DAT"); add_srs_wkt (p, 1, "UM[\"Provisional_South_American_Datum_1956\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 9, "6],PARAMETER[\"central_meridian\",-80.5],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.99983008],PARAMETER[\"false_easting\",2220"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",1426834.743],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"24891\"]]"); p = add_epsg_def_ex (filter, first, last, 24892, "epsg", 24892, "PSAD56 / Peru central zone", 0, 0, "International 1924", "Greenwich", "Provisional_South_American_Datum_1956", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-9.5 +lon_0=-76 +k=0.99932994 +x_0=72"); add_proj4text (p, 1, "0000 +y_0=1039979.159 +ellps=intl +towgs84=-288,175,-376"); add_proj4text (p, 2, ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / Peru central zone\",GEOGCS[\"PSAD56\","); add_srs_wkt (p, 1, "DATUM[\"Provisional_South_American_Datum_1956\",SPHEROID"); add_srs_wkt (p, 2, "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7022\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "-9.5],PARAMETER[\"central_meridian\",-76],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",0.99932994],PARAMETER[\"false_easting\",720"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",1039979.159],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"24892\"]]"); } #endif /* full EPSG initialization enabled/disabled */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_25.c��������������������������������������������������0000664�0001750�0001750�00000513400�12544707704�017041� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 4878, "epsg", 4878, "ETRS89 / NTM zone 28 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 28 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",28.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4878\"]]"); p = add_epsg_def_ex (filter, first, last, 4879, "epsg", 4879, "ETRS89 / NTM zone 29 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=29.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 29 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",29.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4879\"]]"); p = add_epsg_def_ex (filter, first, last, 4880, "epsg", 4880, "ETRS89 / NTM zone 30 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 30 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",30.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4880\"]]"); p = add_epsg_def_ex (filter, first, last, 4901, "epsg", 4901, "ATF (Paris)", 1, 1, "Plessis 1817", "Paris RGS", "Ancienne_Triangulation_Francaise_Paris", "none", "grad", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6376523 +b=6355862.933255573 +pm=2.3372"); add_proj4text (p, 1, "08333333333 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ATF (Paris)\",DATUM[\"Ancienne_Triangulation_Fr"); add_srs_wkt (p, 1, "ancaise_Paris\",SPHEROID[\"Plessis 1817\",6376523,308.64"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7027\"]],AUTHORITY[\"EPSG\",\"6901"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Paris RGS\",2.337208333333333,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8914\"]],UNIT[\"grad\",0.01570796326794897,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9105\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4901\"]]"); p = add_epsg_def_ex (filter, first, last, 4902, "epsg", 4902, "NDG (Paris)", 1, 1, "Plessis 1817", "Paris", "Nord_de_Guerre_Paris", "none", "grad", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6376523 +b=6355862.933255573 +pm=paris "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NDG (Paris)\",DATUM[\"Nord_de_Guerre_Paris\",SP"); add_srs_wkt (p, 1, "HEROID[\"Plessis 1817\",6376523,308.64,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7027\"]],AUTHORITY[\"EPSG\",\"6902\"]],PRIMEM[\"Paris"); add_srs_wkt (p, 3, "\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\""); add_srs_wkt (p, 4, ",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS["); add_srs_wkt (p, 5, "\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"4902\"]]"); p = add_epsg_def_ex (filter, first, last, 4903, "epsg", 4903, "Madrid 1870 (Madrid)", 1, 1, "Struve 1860", "Madrid", "Madrid_1870_Madrid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378298.3 +b=6356657.142669562 +pm=madr"); add_proj4text (p, 1, "id +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Madrid 1870 (Madrid)\",DATUM[\"Madrid_1870_Madr"); add_srs_wkt (p, 1, "id\",SPHEROID[\"Struve 1860\",6378298.3,294.73,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7028\"]],AUTHORITY[\"EPSG\",\"6903\"]],PRIME"); add_srs_wkt (p, 3, "M[\"Madrid\",-3.687938888888889,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "5\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 6, "\",EAST],AUTHORITY[\"EPSG\",\"4903\"]]"); p = add_epsg_def_ex (filter, first, last, 4904, "epsg", 4904, "Lisbon 1890 (Lisbon)", 1, 1, "Bessel 1841", "Lisbon", "Lisbon_1890_Lisbon", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=508.088,-191.042,56"); add_proj4text (p, 1, "5.223,0,0,0,0 +pm=lisbon +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Lisbon 1890 (Lisbon)\",DATUM[\"Lisbon_1890_Lisb"); add_srs_wkt (p, 1, "on\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7004\"]],TOWGS84[508.088,-191.042,565"); add_srs_wkt (p, 3, ".223,0,0,0,0],AUTHORITY[\"EPSG\",\"6904\"]],PRIMEM[\"Lis"); add_srs_wkt (p, 4, "bon\",-9.131906111111112,AUTHORITY[\"EPSG\",\"8902\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4904\"]]"); p = add_epsg_def_ex (filter, first, last, 5013, "epsg", 5013, "PTRA08", 1, 1, "GRS 1980", "Greenwich", "Autonomous_Regions_of_Portugal_2008", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"PTRA08\",DATUM[\"Autonomous_Regions_of_Portugal"); add_srs_wkt (p, 1, "_2008\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"1041\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5013\"]]"); p = add_epsg_def_ex (filter, first, last, 5014, "epsg", 5014, "PTRA08 / UTM zone 25N", 0, 0, "GRS 1980", "Greenwich", "Autonomous_Regions_of_Portugal_2008", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=25 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PTRA08 / UTM zone 25N\",GEOGCS[\"PTRA08\",DATUM"); add_srs_wkt (p, 1, "[\"Autonomous_Regions_of_Portugal_2008\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1041\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5013\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",-33],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"5014\"]]"); p = add_epsg_def_ex (filter, first, last, 5015, "epsg", 5015, "PTRA08 / UTM zone 26N", 0, 0, "GRS 1980", "Greenwich", "Autonomous_Regions_of_Portugal_2008", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PTRA08 / UTM zone 26N\",GEOGCS[\"PTRA08\",DATUM"); add_srs_wkt (p, 1, "[\"Autonomous_Regions_of_Portugal_2008\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1041\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5013\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",-27],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"5015\"]]"); p = add_epsg_def_ex (filter, first, last, 5016, "epsg", 5016, "PTRA08 / UTM zone 28N", 0, 0, "GRS 1980", "Greenwich", "Autonomous_Regions_of_Portugal_2008", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PTRA08 / UTM zone 28N\",GEOGCS[\"PTRA08\",DATUM"); add_srs_wkt (p, 1, "[\"Autonomous_Regions_of_Portugal_2008\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1041\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5013\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",-15],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"5016\"]]"); p = add_epsg_def_ex (filter, first, last, 5018, "epsg", 5018, "Lisbon / Portuguese Grid New", 0, 0, "International 1924", "Greenwich", "Lisbon_1937", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111"); add_proj4text (p, 1, "111112 +k=1 +x_0=0 +y_0=0 +ellps=intl +towgs84=-304.046,"); add_proj4text (p, 2, "-60.576,103.64,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Lisbon / Portuguese Grid New\",GEOGCS[\"Lisbon\""); add_srs_wkt (p, 1, ",DATUM[\"Lisbon_1937\",SPHEROID[\"International 1924\",6"); add_srs_wkt (p, 2, "378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-304.04"); add_srs_wkt (p, 3, "6,-60.576,103.64,0,0,0,0],AUTHORITY[\"EPSG\",\"6207\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4207\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",39.6666666666"); add_srs_wkt (p, 9, "6666],PARAMETER[\"central_meridian\",-8.131906111111112]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"5018\"]]"); p = add_epsg_def_ex (filter, first, last, 5041, "epsg", 5041, "WGS 84 / UPS North (E,N)", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=0 +k=0.994 +x_0="); add_proj4text (p, 1, "2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UPS North (E,N)\",GEOGCS[\"WGS 84\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2572235"); add_srs_wkt (p, 2, "63,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"63"); add_srs_wkt (p, 3, "26\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_S"); add_srs_wkt (p, 7, "tereographic\"],PARAMETER[\"latitude_of_origin\",90],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",0],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.994],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",2000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"5041\"]]"); p = add_epsg_def_ex (filter, first, last, 5042, "epsg", 5042, "WGS 84 / UPS South (E,N)", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-90 +lon_0=0 +k=0.994 +x_"); add_proj4text (p, 1, "0=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UPS South (E,N)\",GEOGCS[\"WGS 84\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2572235"); add_srs_wkt (p, 2, "63,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"63"); add_srs_wkt (p, 3, "26\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_S"); add_srs_wkt (p, 7, "tereographic\"],PARAMETER[\"latitude_of_origin\",-90],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",0],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.994],PARAMETER[\"false_easting\",2000000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",2000000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"5042\"]]"); p = add_epsg_def_ex (filter, first, last, 5048, "epsg", 5048, "ETRS89 / TM35FIN(N,E)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM35FIN(N,E)\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",27],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AUTHORITY[\"EPSG\",\"5048\"]]"); p = add_epsg_def_ex (filter, first, last, 5069, "epsg", 5069, "NAD27 / Conus Albers", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +"); add_proj4text (p, 1, "x_0=0 +y_0=0 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Conus Albers\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Albers_Conic_Equal_Area\"],PARAMETER[\"s"); add_srs_wkt (p, 8, "tandard_parallel_1\",29.5],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",45.5],PARAMETER[\"latitude_of_center\",23],PARAMETE"); add_srs_wkt (p, 10, "R[\"longitude_of_center\",-96],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"5069\"]]"); p = add_epsg_def_ex (filter, first, last, 5070, "epsg", 5070, "NAD83 / Conus Albers", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +"); add_proj4text (p, 1, "x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Conus Albers\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Albers_Conic_Equal_Area\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_1\",29.5],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_2\",45.5],PARAMETER[\"latitude_of_center\""); add_srs_wkt (p, 10, ",23],PARAMETER[\"longitude_of_center\",-96],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",0],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 12, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5070\"]]"); p = add_epsg_def_ex (filter, first, last, 5071, "epsg", 5071, "NAD83(HARN) / Conus Albers", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +"); add_proj4text (p, 1, "x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Conus Albers\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"A"); add_srs_wkt (p, 8, "lbers_Conic_Equal_Area\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, "1\",29.5],PARAMETER[\"standard_parallel_2\",45.5],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_center\",23],PARAMETER[\"longitude_of_"); add_srs_wkt (p, 11, "center\",-96],PARAMETER[\"false_easting\",0],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"5071\"]]"); p = add_epsg_def_ex (filter, first, last, 5072, "epsg", 5072, "NAD83(NSRS2007) / Conus Albers", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +"); add_proj4text (p, 1, "x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Conus Albers\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Albers_Conic_Equal_Area\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",29.5],PARAMETER[\"standard_parallel_2"); add_srs_wkt (p, 10, "\",45.5],PARAMETER[\"latitude_of_center\",23],PARAMETER["); add_srs_wkt (p, 11, "\"longitude_of_center\",-96],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 14, "ORTH],AUTHORITY[\"EPSG\",\"5072\"]]"); p = add_epsg_def_ex (filter, first, last, 5105, "epsg", 5105, "ETRS89 / NTM zone 5", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=5.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 5\",GEOGCS[\"ETRS89\",DATUM[\""); add_srs_wkt (p, 1, "European_Terrestrial_Reference_System_1989\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PARAME"); add_srs_wkt (p, 9, "TER[\"central_meridian\",5.5],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",100000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"5105\"]]"); p = add_epsg_def_ex (filter, first, last, 5106, "epsg", 5106, "ETRS89 / NTM zone 6", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=6.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 6\",GEOGCS[\"ETRS89\",DATUM[\""); add_srs_wkt (p, 1, "European_Terrestrial_Reference_System_1989\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PARAME"); add_srs_wkt (p, 9, "TER[\"central_meridian\",6.5],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",100000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"5106\"]]"); p = add_epsg_def_ex (filter, first, last, 5107, "epsg", 5107, "ETRS89 / NTM zone 7", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=7.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 7\",GEOGCS[\"ETRS89\",DATUM[\""); add_srs_wkt (p, 1, "European_Terrestrial_Reference_System_1989\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PARAME"); add_srs_wkt (p, 9, "TER[\"central_meridian\",7.5],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",100000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"5107\"]]"); p = add_epsg_def_ex (filter, first, last, 5108, "epsg", 5108, "ETRS89 / NTM zone 8", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=8.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 8\",GEOGCS[\"ETRS89\",DATUM[\""); add_srs_wkt (p, 1, "European_Terrestrial_Reference_System_1989\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PARAME"); add_srs_wkt (p, 9, "TER[\"central_meridian\",8.5],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",100000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"5108\"]]"); p = add_epsg_def_ex (filter, first, last, 5109, "epsg", 5109, "ETRS89 / NTM zone 9", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=9.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 9\",GEOGCS[\"ETRS89\",DATUM[\""); add_srs_wkt (p, 1, "European_Terrestrial_Reference_System_1989\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PARAME"); add_srs_wkt (p, 9, "TER[\"central_meridian\",9.5],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",100000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"5109\"]]"); p = add_epsg_def_ex (filter, first, last, 5110, "epsg", 5110, "ETRS89 / NTM zone 10", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=10.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 10\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",10.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5110\"]]"); p = add_epsg_def_ex (filter, first, last, 5111, "epsg", 5111, "ETRS89 / NTM zone 11", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=11.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 11\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",11.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5111\"]]"); p = add_epsg_def_ex (filter, first, last, 5112, "epsg", 5112, "ETRS89 / NTM zone 12", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=12.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 12\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",12.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5112\"]]"); p = add_epsg_def_ex (filter, first, last, 5113, "epsg", 5113, "ETRS89 / NTM zone 13", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=13.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 13\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",13.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5113\"]]"); p = add_epsg_def_ex (filter, first, last, 5114, "epsg", 5114, "ETRS89 / NTM zone 14", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=14.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 14\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",14.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5114\"]]"); p = add_epsg_def_ex (filter, first, last, 5115, "epsg", 5115, "ETRS89 / NTM zone 15", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=15.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 15\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",15.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5115\"]]"); p = add_epsg_def_ex (filter, first, last, 5116, "epsg", 5116, "ETRS89 / NTM zone 16", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=16.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 16\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",16.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5116\"]]"); p = add_epsg_def_ex (filter, first, last, 5117, "epsg", 5117, "ETRS89 / NTM zone 17", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=17.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 17\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",17.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5117\"]]"); p = add_epsg_def_ex (filter, first, last, 5118, "epsg", 5118, "ETRS89 / NTM zone 18", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=18.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 18\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",18.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5118\"]]"); p = add_epsg_def_ex (filter, first, last, 5119, "epsg", 5119, "ETRS89 / NTM zone 19", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=19.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 19\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",19.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5119\"]]"); p = add_epsg_def_ex (filter, first, last, 5120, "epsg", 5120, "ETRS89 / NTM zone 20", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=20.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 20\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",20.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5120\"]]"); p = add_epsg_def_ex (filter, first, last, 5121, "epsg", 5121, "ETRS89 / NTM zone 21", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=21.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 21\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",21.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5121\"]]"); p = add_epsg_def_ex (filter, first, last, 5122, "epsg", 5122, "ETRS89 / NTM zone 22", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=22.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 22\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",22.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5122\"]]"); p = add_epsg_def_ex (filter, first, last, 5123, "epsg", 5123, "ETRS89 / NTM zone 23", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=23.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 23\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",23.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5123\"]]"); p = add_epsg_def_ex (filter, first, last, 5124, "epsg", 5124, "ETRS89 / NTM zone 24", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=24.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 24\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",24.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5124\"]]"); p = add_epsg_def_ex (filter, first, last, 5125, "epsg", 5125, "ETRS89 / NTM zone 25", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=25.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 25\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",25.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5125\"]]"); p = add_epsg_def_ex (filter, first, last, 5126, "epsg", 5126, "ETRS89 / NTM zone 26", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=26.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 26\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",26.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5126\"]]"); p = add_epsg_def_ex (filter, first, last, 5127, "epsg", 5127, "ETRS89 / NTM zone 27", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=27.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 27\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",27.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5127\"]]"); p = add_epsg_def_ex (filter, first, last, 5128, "epsg", 5128, "ETRS89 / NTM zone 28", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=28.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 28\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",28.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5128\"]]"); p = add_epsg_def_ex (filter, first, last, 5129, "epsg", 5129, "ETRS89 / NTM zone 29", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=29.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 29\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",29.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5129\"]]"); p = add_epsg_def_ex (filter, first, last, 5130, "epsg", 5130, "ETRS89 / NTM zone 30", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=30.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 30\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",58],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",30.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",100000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"5130\"]]"); p = add_epsg_def_ex (filter, first, last, 5132, "epsg", 5132, "Tokyo 1892", 1, 1, "Bessel 1841", "Greenwich", "Tokyo_1892", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tokyo 1892\",DATUM[\"Tokyo_1892\",SPHEROID[\"Be"); add_srs_wkt (p, 1, "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7004\"]],AUTHORITY[\"EPSG\",\"1048\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 3, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 4, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 5, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"5132\"]]"); p = add_epsg_def_ex (filter, first, last, 5167, "epsg", 5167, "Korean 1985 / East Sea Belt", 0, 1, "Bessel 1841", "Greenwich", "Korean_Datum_1985", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=131 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / East Sea Belt\",GEOGCS[\"Korean 1"); add_srs_wkt (p, 1, "985\",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bessel 1841"); add_srs_wkt (p, 2, "\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4162"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",38],PARAMETER[\"central_meridian\",131"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",200000],PARAMETER[\"false_northing\",500000],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5167\"]]"); p = add_epsg_def_ex (filter, first, last, 5168, "epsg", 5168, "Korean 1985 / Central Belt Jeju", 0, 1, "Bessel 1841", "Greenwich", "Korean_Datum_1985", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "50000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / Central Belt Jeju\",GEOGCS[\"Kore"); add_srs_wkt (p, 1, "an 1985\",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bessel "); add_srs_wkt (p, 2, "1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4162\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",38],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "127],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",200000],PARAMETER[\"false_northing\",550000],UNIT"); add_srs_wkt (p, 11, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); add_srs_wkt (p, 12, "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5168\"]]"); p = add_epsg_def_ex (filter, first, last, 5169, "epsg", 5169, "Tokyo 1892 / Korea West Belt", 0, 1, "Bessel 1841", "Greenwich", "Tokyo_1892", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=125 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo 1892 / Korea West Belt\",GEOGCS[\"Tokyo 1"); add_srs_wkt (p, 1, "892\",DATUM[\"Tokyo_1892\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"1048\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5132\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",38],PARAMETER[\"central_meridian\",125],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",200"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",500000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 12, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"5169\"]]"); p = add_epsg_def_ex (filter, first, last, 5170, "epsg", 5170, "Tokyo 1892 / Korea Central Belt", 0, 1, "Bessel 1841", "Greenwich", "Tokyo_1892", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo 1892 / Korea Central Belt\",GEOGCS[\"Toky"); add_srs_wkt (p, 1, "o 1892\",DATUM[\"Tokyo_1892\",SPHEROID[\"Bessel 1841\",6"); add_srs_wkt (p, 2, "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1048\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5132\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",38],PARAMETER[\"central_meridian\",127],PA"); add_srs_wkt (p, 9, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "200000],PARAMETER[\"false_northing\",500000],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5170\"]]"); p = add_epsg_def_ex (filter, first, last, 5171, "epsg", 5171, "Tokyo 1892 / Korea East Belt", 0, 1, "Bessel 1841", "Greenwich", "Tokyo_1892", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=129 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo 1892 / Korea East Belt\",GEOGCS[\"Tokyo 1"); add_srs_wkt (p, 1, "892\",DATUM[\"Tokyo_1892\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"1048\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5132\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",38],PARAMETER[\"central_meridian\",129],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",200"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",500000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 12, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"5171\"]]"); p = add_epsg_def_ex (filter, first, last, 5172, "epsg", 5172, "Tokyo 1892 / Korea East Sea Belt", 0, 1, "Bessel 1841", "Greenwich", "Tokyo_1892", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=131 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo 1892 / Korea East Sea Belt\",GEOGCS[\"Tok"); add_srs_wkt (p, 1, "yo 1892\",DATUM[\"Tokyo_1892\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 2, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1048\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5132\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 8, "de_of_origin\",38],PARAMETER[\"central_meridian\",131],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",200000],PARAMETER[\"false_northing\",500000],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5172\"]]"); p = add_epsg_def_ex (filter, first, last, 5173, "epsg", 5173, "Korean 1985 / Modified West Belt", 0, 1, "Bessel 1841", "Greenwich", "Korean_Datum_1985", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=125.0028902777778 +k=1 +x_0"); add_proj4text (p, 1, "=200000 +y_0=500000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / Modified West Belt\",GEOGCS[\"Kor"); add_srs_wkt (p, 1, "ean 1985\",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bessel"); add_srs_wkt (p, 2, " 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "4\"]],AUTHORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4162\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",38],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "125.0028902777778],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",200000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "5173\"]]"); p = add_epsg_def_ex (filter, first, last, 5174, "epsg", 5174, "Korean 1985 / Modified Central Belt", 0, 1, "Bessel 1841", "Greenwich", "Korean_Datum_1985", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127.0028902777778 +k=1 +x_0"); add_proj4text (p, 1, "=200000 +y_0=500000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / Modified Central Belt\",GEOGCS[\""); add_srs_wkt (p, 1, "Korean 1985\",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bes"); add_srs_wkt (p, 2, "sel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7004\"]],AUTHORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4162\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",38],PARAMETER[\"central_meridia"); add_srs_wkt (p, 9, "n\",127.0028902777778],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",200000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"5174\"]]"); p = add_epsg_def_ex (filter, first, last, 5175, "epsg", 5175, "Korean 1985 / Modified Central Belt Jeju", 0, 1, "Bessel 1841", "Greenwich", "Korean_Datum_1985", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127.0028902777778 +k=1 +x_0"); add_proj4text (p, 1, "=200000 +y_0=550000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / Modified Central Belt Jeju\",GEOG"); add_srs_wkt (p, 1, "CS[\"Korean 1985\",DATUM[\"Korean_Datum_1985\",SPHEROID["); add_srs_wkt (p, 2, "\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7004\"]],AUTHORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4162\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",38],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",127.0028902777778],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",200000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",550000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"5175\"]]"); p = add_epsg_def_ex (filter, first, last, 5176, "epsg", 5176, "Korean 1985 / Modified East Belt", 0, 1, "Bessel 1841", "Greenwich", "Korean_Datum_1985", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=129.0028902777778 +k=1 +x_0"); add_proj4text (p, 1, "=200000 +y_0=500000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / Modified East Belt\",GEOGCS[\"Kor"); add_srs_wkt (p, 1, "ean 1985\",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bessel"); add_srs_wkt (p, 2, " 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "4\"]],AUTHORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4162\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",38],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 9, "129.0028902777778],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",200000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "5176\"]]"); p = add_epsg_def_ex (filter, first, last, 5177, "epsg", 5177, "Korean 1985 / Modified East Sea Belt", 0, 1, "Bessel 1841", "Greenwich", "Korean_Datum_1985", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=131.0028902777778 +k=1 +x_0"); add_proj4text (p, 1, "=200000 +y_0=500000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / Modified East Sea Belt\",GEOGCS[\""); add_srs_wkt (p, 1, "Korean 1985\",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bes"); add_srs_wkt (p, 2, "sel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7004\"]],AUTHORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4162\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",38],PARAMETER[\"central_meridia"); add_srs_wkt (p, 9, "n\",131.0028902777778],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",200000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"5177\"]]"); p = add_epsg_def_ex (filter, first, last, 5178, "epsg", 5178, "Korean 1985 / Unified CS", 0, 1, "Bessel 1841", "Greenwich", "Korean_Datum_1985", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=100000"); add_proj4text (p, 1, "0 +y_0=2000000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / Unified CS\",GEOGCS[\"Korean 1985"); add_srs_wkt (p, 1, "\",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bessel 1841\","); add_srs_wkt (p, 2, "6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4162\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 8, "de_of_origin\",38],PARAMETER[\"central_meridian\",127.5]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",1000000],PARAMETER[\"false_northing\",2000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5178\"]]"); p = add_epsg_def_ex (filter, first, last, 5179, "epsg", 5179, "Korea 2000 / Unified CS", 0, 1, "GRS 1980", "Greenwich", "Geocentric_datum_of_Korea", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=100000"); add_proj4text (p, 1, "0 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / Unified CS\",GEOGCS[\"Korea 2000\""); add_srs_wkt (p, 1, ",DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4737\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",127.5],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "96],PARAMETER[\"false_easting\",1000000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",2000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"5179\"]]"); p = add_epsg_def_ex (filter, first, last, 5180, "epsg", 5180, "Korea 2000 / West Belt", 0, 1, "GRS 1980", "Greenwich", "Geocentric_datum_of_Korea", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=125 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / West Belt\",GEOGCS[\"Korea 2000\","); add_srs_wkt (p, 1, "DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4737\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",125],PARAMETER[\"scale_factor\",1],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",200000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"5180\"]]"); p = add_epsg_def_ex (filter, first, last, 5181, "epsg", 5181, "Korea 2000 / Central Belt", 0, 1, "GRS 1980", "Greenwich", "Geocentric_datum_of_Korea", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / Central Belt\",GEOGCS[\"Korea 2000"); add_srs_wkt (p, 1, "\",DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4737\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",38],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",127],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",200000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"5181\"]]"); p = add_epsg_def_ex (filter, first, last, 5182, "epsg", 5182, "Korea 2000 / Central Belt Jeju", 0, 1, "GRS 1980", "Greenwich", "Geocentric_datum_of_Korea", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "50000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / Central Belt Jeju\",GEOGCS[\"Korea"); add_srs_wkt (p, 1, " 2000\",DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4737\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",38],PARAME"); add_srs_wkt (p, 9, "TER[\"central_meridian\",127],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",200000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",550000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"5182\"]]"); p = add_epsg_def_ex (filter, first, last, 5183, "epsg", 5183, "Korea 2000 / East Belt", 0, 1, "GRS 1980", "Greenwich", "Geocentric_datum_of_Korea", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=129 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / East Belt\",GEOGCS[\"Korea 2000\","); add_srs_wkt (p, 1, "DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4737\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",129],PARAMETER[\"scale_factor\",1],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",200000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"5183\"]]"); p = add_epsg_def_ex (filter, first, last, 5184, "epsg", 5184, "Korea 2000 / East Sea Belt", 0, 1, "GRS 1980", "Greenwich", "Geocentric_datum_of_Korea", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=131 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / East Sea Belt\",GEOGCS[\"Korea 200"); add_srs_wkt (p, 1, "0\",DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4737\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",38],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",131],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",200000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"5184\"]]"); p = add_epsg_def_ex (filter, first, last, 5185, "epsg", 5185, "Korea 2000 / West Belt 2010", 0, 1, "GRS 1980", "Greenwich", "Geocentric_datum_of_Korea", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=125 +k=1 +x_0=200000 +y_0=6"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / West Belt 2010\",GEOGCS[\"Korea 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4737\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",38],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",125],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",200000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",600000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"5185\"]]"); p = add_epsg_def_ex (filter, first, last, 5186, "epsg", 5186, "Korea 2000 / Central Belt 2010", 0, 1, "GRS 1980", "Greenwich", "Geocentric_datum_of_Korea", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=6"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / Central Belt 2010\",GEOGCS[\"Korea"); add_srs_wkt (p, 1, " 2000\",DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4737\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",38],PARAME"); add_srs_wkt (p, 9, "TER[\"central_meridian\",127],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",200000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",600000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"5186\"]]"); p = add_epsg_def_ex (filter, first, last, 5187, "epsg", 5187, "Korea 2000 / East Belt 2010", 0, 1, "GRS 1980", "Greenwich", "Geocentric_datum_of_Korea", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=129 +k=1 +x_0=200000 +y_0=6"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / East Belt 2010\",GEOGCS[\"Korea 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4737\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",38],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",129],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",200000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",600000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"5187\"]]"); p = add_epsg_def_ex (filter, first, last, 5188, "epsg", 5188, "Korea 2000 / East Sea Belt 2010", 0, 1, "GRS 1980", "Greenwich", "Geocentric_datum_of_Korea", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=131 +k=1 +x_0=200000 +y_0=6"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Korea 2000 / East Sea Belt 2010\",GEOGCS[\"Kore"); add_srs_wkt (p, 1, "a 2000\",DATUM[\"Geocentric_datum_of_Korea\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6737\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4737\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",38],PARAME"); add_srs_wkt (p, 9, "TER[\"central_meridian\",131],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",200000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",600000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"5188\"]]"); p = add_epsg_def_ex (filter, first, last, 5221, "epsg", 5221, "S-JTSK (Ferro) / Krovak East North", 0, 0, "Bessel 1841", "Ferro", "System_Jednotne_Trigonometricke_Site_Katastralni_Ferro", "Krovak", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=krovak +lat_0=49.5 +lon_0=42.5 +alpha=30.288139722"); add_proj4text (p, 1, "22222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +towgs84=589"); add_proj4text (p, 2, ",76,480,0,0,0,0 +pm=ferro +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"S-JTSK (Ferro) / Krovak East North\",GEOGCS[\"S"); add_srs_wkt (p, 1, "-JTSK (Ferro)\",DATUM[\"System_Jednotne_Trigonometricke_"); add_srs_wkt (p, 2, "Site_Katastralni_Ferro\",SPHEROID[\"Bessel 1841\",637739"); add_srs_wkt (p, 3, "7.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84["); add_srs_wkt (p, 4, "589,76,480,0,0,0,0],AUTHORITY[\"EPSG\",\"6818\"]],PRIMEM"); add_srs_wkt (p, 5, "[\"Ferro\",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\""); add_srs_wkt (p, 6, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 8, "EAST],AUTHORITY[\"EPSG\",\"4818\"]],PROJECTION[\"Krovak\""); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_center\",49.5],PARAMETER[\"lon"); add_srs_wkt (p, 10, "gitude_of_center\",42.5],PARAMETER[\"azimuth\",30.288139"); add_srs_wkt (p, 11, "72222222],PARAMETER[\"pseudo_standard_parallel_1\",78.5]"); add_srs_wkt (p, 12, ",PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_ea"); add_srs_wkt (p, 13, "sting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 14, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 15, "Y\",NORTH],AUTHORITY[\"EPSG\",\"5221\"]]"); p = add_epsg_def_ex (filter, first, last, 5223, "epsg", 5223, "WGS 84 / Gabon TM", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Gabon TM\",GEOGCS[\"WGS 84\",DATUM[\"W"); add_srs_wkt (p, 1, "GS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",12],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"5223\"]]"); p = add_epsg_def_ex (filter, first, last, 5228, "epsg", 5228, "S-JTSK/05", 1, 1, "Bessel 1841", "Greenwich", "System_Jednotne_Trigonometricke_Site_Katastralni_05", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=572.213,85.334,461."); add_proj4text (p, 1, "94,4.9732,1.529,5.2484,3.5378 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"S-JTSK/05\",DATUM[\"System_Jednotne_Trigonometr"); add_srs_wkt (p, 1, "icke_Site_Katastralni_05\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); add_srs_wkt (p, 3, "4[572.213,85.334,461.94,4.9732,1.529,5.2484,3.5378],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"1052\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5228\"]]"); p = add_epsg_def_ex (filter, first, last, 5229, "epsg", 5229, "S-JTSK/05 (Ferro)", 1, 1, "Bessel 1841", "Ferro", "System_Jednotne_Trigonometricke_Site_Katastralni_05_Ferro", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=572.213,85.334,461."); add_proj4text (p, 1, "94,4.9732,1.529,5.2484,3.5378 +pm=ferro +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"S-JTSK/05 (Ferro)\",DATUM[\"System_Jednotne_Tri"); add_srs_wkt (p, 1, "gonometricke_Site_Katastralni_05_Ferro\",SPHEROID[\"Bess"); add_srs_wkt (p, 2, "el 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "004\"]],TOWGS84[572.213,85.334,461.94,4.9732,1.529,5.248"); add_srs_wkt (p, 4, "4,3.5378],AUTHORITY[\"EPSG\",\"1055\"]],PRIMEM[\"Ferro\""); add_srs_wkt (p, 5, ",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"5229\"]]"); p = add_epsg_def_ex (filter, first, last, 5233, "epsg", 5233, "SLD99", 1, 1, "Everest 1830 (1937 Adjustment)", "Greenwich", "Sri_Lanka_Datum_1999", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); add_proj4text (p, 1, "84=-0.293,766.95,87.713,0.195704,1.695068,3.473016,-0.03"); add_proj4text (p, 2, "9338 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"SLD99\",DATUM[\"Sri_Lanka_Datum_1999\",SPHEROID"); add_srs_wkt (p, 1, "[\"Everest 1830 (1937 Adjustment)\",6377276.345,300.8017"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7015\"]],TOWGS84[-0.293,766.95,87."); add_srs_wkt (p, 3, "713,0.195704,1.695068,3.473016,-0.039338],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"1053\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"5233\"]]"); p = add_epsg_def_ex (filter, first, last, 5234, "epsg", 5234, "Kandawala / Sri Lanka Grid", 0, 0, "Everest 1830 (1937 Adjustment)", "Greenwich", "Kandawala", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=7.000480277777778 +lon_0=80.771711111"); add_proj4text (p, 1, "11112 +k=0.9999238418 +x_0=200000 +y_0=200000 +a=6377276"); add_proj4text (p, 2, ".345 +b=6356075.413140239 +towgs84=-97,787,86,0,0,0,0 +u"); add_proj4text (p, 3, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kandawala / Sri Lanka Grid\",GEOGCS[\"Kandawala"); add_srs_wkt (p, 1, "\",DATUM[\"Kandawala\",SPHEROID[\"Everest 1830 (1937 Adj"); add_srs_wkt (p, 2, "ustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "5\"]],TOWGS84[-97,787,86,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "244\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4244\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",7.0004"); add_srs_wkt (p, 9, "80277777778],PARAMETER[\"central_meridian\",80.771711111"); add_srs_wkt (p, 10, "11112],PARAMETER[\"scale_factor\",0.9999238418],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",200000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 14, "Y[\"EPSG\",\"5234\"]]"); p = add_epsg_def_ex (filter, first, last, 5235, "epsg", 5235, "SLD99 / Sri Lanka Grid 1999", 0, 0, "Everest 1830 (1937 Adjustment)", "Greenwich", "Sri_Lanka_Datum_1999", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=7.000471527777778 +lon_0=80.771713083"); add_proj4text (p, 1, "33334 +k=0.9999238418 +x_0=500000 +y_0=500000 +a=6377276"); add_proj4text (p, 2, ".345 +b=6356075.413140239 +towgs84=-0.293,766.95,87.713,"); add_proj4text (p, 3, "0.195704,1.695068,3.473016,-0.039338 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SLD99 / Sri Lanka Grid 1999\",GEOGCS[\"SLD99\","); add_srs_wkt (p, 1, "DATUM[\"Sri_Lanka_Datum_1999\",SPHEROID[\"Everest 1830 ("); add_srs_wkt (p, 2, "1937 Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7015\"]],TOWGS84[-0.293,766.95,87.713,0.195704,1.69"); add_srs_wkt (p, 4, "5068,3.473016,-0.039338],AUTHORITY[\"EPSG\",\"1053\"]],P"); add_srs_wkt (p, 5, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 6, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 7, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 8, "UTHORITY[\"EPSG\",\"5233\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 9, "cator\"],PARAMETER[\"latitude_of_origin\",7.000471527777"); add_srs_wkt (p, 10, "778],PARAMETER[\"central_meridian\",80.77171308333334],P"); add_srs_wkt (p, 11, "ARAMETER[\"scale_factor\",0.9999238418],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_easting\",500000],PARAMETER[\"false_northing\",500000]"); add_srs_wkt (p, 13, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 14, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 15, "\",\"5235\"]]"); p = add_epsg_def_ex (filter, first, last, 5243, "epsg", 5243, "ETRS89 / LCC Germany (E-N)", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.66666666666666 +lat_2=53.66666666666"); add_proj4text (p, 1, "666 +lat_0=51 +lon_0=10.5 +x_0=0 +y_0=0 +ellps=GRS80 +to"); add_proj4text (p, 2, "wgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / LCC Germany (E-N)\",GEOGCS[\"ETRS89\","); add_srs_wkt (p, 1, "DATUM[\"European_Terrestrial_Reference_System_1989\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",48.66666666666666],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 10, "_2\",53.66666666666666],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",51],PARAMETER[\"central_meridian\",10.5],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"524"); add_srs_wkt (p, 15, "3\"]]"); p = add_epsg_def_ex (filter, first, last, 5246, "epsg", 5246, "GDBD2009", 1, 1, "GRS 1980", "Greenwich", "Geocentric_Datum_Brunei_Darussalam_2009", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"GDBD2009\",DATUM[\"Geocentric_Datum_Brunei_Daru"); add_srs_wkt (p, 1, "ssalam_2009\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 2, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"1056\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5246\""); add_srs_wkt (p, 7, "]]"); p = add_epsg_def_ex (filter, first, last, 5247, "epsg", 5247, "GDBD2009 / Brunei BRSO", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_Brunei_Darussalam_2009", "Hotine_Oblique_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.9"); add_proj4text (p, 1, "9984 +x_0=0 +y_0=0 +no_uoff +gamma=53.13010236111111 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDBD2009 / Brunei BRSO\",GEOGCS[\"GDBD2009\",DA"); add_srs_wkt (p, 1, "TUM[\"Geocentric_Datum_Brunei_Darussalam_2009\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"105"); add_srs_wkt (p, 4, "6\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"5246\"]],PROJECTION[\"Hotine_"); add_srs_wkt (p, 8, "Oblique_Mercator\"],PARAMETER[\"latitude_of_center\",4],"); add_srs_wkt (p, 9, "PARAMETER[\"longitude_of_center\",115],PARAMETER[\"azimu"); add_srs_wkt (p, 10, "th\",53.31580995],PARAMETER[\"rectified_grid_angle\",53."); add_srs_wkt (p, 11, "13010236111111],PARAMETER[\"scale_factor\",0.99984],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",0],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 15, "G\",\"5247\"]]"); p = add_epsg_def_ex (filter, first, last, 5252, "epsg", 5252, "TUREF", 1, 1, "GRS 1980", "Greenwich", "Turkish_National_Reference_Frame", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"TUREF\",DATUM[\"Turkish_National_Reference_Fram"); add_srs_wkt (p, 1, "e\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1057\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"5252\"]]"); p = add_epsg_def_ex (filter, first, last, 5253, "epsg", 5253, "TUREF / TM27", 0, 1, "GRS 1980", "Greenwich", "Turkish_National_Reference_Frame", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / TM27\",GEOGCS[\"TUREF\",DATUM[\"Turkish"); add_srs_wkt (p, 1, "_National_Reference_Frame\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"5252\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",27],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 12, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5253\"]]"); p = add_epsg_def_ex (filter, first, last, 5254, "epsg", 5254, "TUREF / TM30", 0, 1, "GRS 1980", "Greenwich", "Turkish_National_Reference_Frame", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / TM30\",GEOGCS[\"TUREF\",DATUM[\"Turkish"); add_srs_wkt (p, 1, "_National_Reference_Frame\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"5252\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",30],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 12, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5254\"]]"); p = add_epsg_def_ex (filter, first, last, 5255, "epsg", 5255, "TUREF / TM33", 0, 1, "GRS 1980", "Greenwich", "Turkish_National_Reference_Frame", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / TM33\",GEOGCS[\"TUREF\",DATUM[\"Turkish"); add_srs_wkt (p, 1, "_National_Reference_Frame\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"5252\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",33],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 12, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5255\"]]"); p = add_epsg_def_ex (filter, first, last, 5256, "epsg", 5256, "TUREF / TM36", 0, 1, "GRS 1980", "Greenwich", "Turkish_National_Reference_Frame", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / TM36\",GEOGCS[\"TUREF\",DATUM[\"Turkish"); add_srs_wkt (p, 1, "_National_Reference_Frame\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"5252\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",36],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 12, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5256\"]]"); p = add_epsg_def_ex (filter, first, last, 5257, "epsg", 5257, "TUREF / TM39", 0, 1, "GRS 1980", "Greenwich", "Turkish_National_Reference_Frame", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / TM39\",GEOGCS[\"TUREF\",DATUM[\"Turkish"); add_srs_wkt (p, 1, "_National_Reference_Frame\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"5252\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",39],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 12, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5257\"]]"); p = add_epsg_def_ex (filter, first, last, 5258, "epsg", 5258, "TUREF / TM42", 0, 1, "GRS 1980", "Greenwich", "Turkish_National_Reference_Frame", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / TM42\",GEOGCS[\"TUREF\",DATUM[\"Turkish"); add_srs_wkt (p, 1, "_National_Reference_Frame\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"5252\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",42],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 12, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5258\"]]"); p = add_epsg_def_ex (filter, first, last, 5259, "epsg", 5259, "TUREF / TM45", 0, 1, "GRS 1980", "Greenwich", "Turkish_National_Reference_Frame", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / TM45\",GEOGCS[\"TUREF\",DATUM[\"Turkish"); add_srs_wkt (p, 1, "_National_Reference_Frame\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"5252\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",45],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 12, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"5259\"]]"); p = add_epsg_def_ex (filter, first, last, 5264, "epsg", 5264, "DRUKREF 03", 1, 1, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"DRUKREF 03\",DATUM[\"Bhutan_National_Geodetic_D"); add_srs_wkt (p, 1, "atum\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"1058\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5264\"]]"); p = add_epsg_def_ex (filter, first, last, 5266, "epsg", 5266, "DRUKREF 03 / Bhutan National Grid", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=250000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Bhutan National Grid\",GEOGCS[\"DR"); add_srs_wkt (p, 1, "UKREF 03\",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1058\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",90],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",1],PARAMETER[\"false_easting\",250000],PARAMETER["); add_srs_wkt (p, 11, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"5266\"]]"); p = add_epsg_def_ex (filter, first, last, 5269, "epsg", 5269, "TUREF / 3-degree Gauss-Kruger zone 9", 0, 1, "GRS 1980", "Greenwich", "Turkish_National_Reference_Frame", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / 3-degree Gauss-Kruger zone 9\",GEOGCS[\""); add_srs_wkt (p, 1, "TUREF\",DATUM[\"Turkish_National_Reference_Frame\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1057\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"5252\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",27],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",9500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"5269\"]]"); p = add_epsg_def_ex (filter, first, last, 5270, "epsg", 5270, "TUREF / 3-degree Gauss-Kruger zone 10", 0, 1, "GRS 1980", "Greenwich", "Turkish_National_Reference_Frame", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / 3-degree Gauss-Kruger zone 10\",GEOGCS["); add_srs_wkt (p, 1, "\"TUREF\",DATUM[\"Turkish_National_Reference_Frame\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1057\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"5252\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",30],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",1],PARAMETER[\"false_easting\",10500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"5270\"]]"); p = add_epsg_def_ex (filter, first, last, 5271, "epsg", 5271, "TUREF / 3-degree Gauss-Kruger zone 11", 0, 1, "GRS 1980", "Greenwich", "Turkish_National_Reference_Frame", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / 3-degree Gauss-Kruger zone 11\",GEOGCS["); add_srs_wkt (p, 1, "\"TUREF\",DATUM[\"Turkish_National_Reference_Frame\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1057\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"5252\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",1],PARAMETER[\"false_easting\",11500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"5271\"]]"); p = add_epsg_def_ex (filter, first, last, 5272, "epsg", 5272, "TUREF / 3-degree Gauss-Kruger zone 12", 0, 1, "GRS 1980", "Greenwich", "Turkish_National_Reference_Frame", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / 3-degree Gauss-Kruger zone 12\",GEOGCS["); add_srs_wkt (p, 1, "\"TUREF\",DATUM[\"Turkish_National_Reference_Frame\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1057\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"5252\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",36],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",1],PARAMETER[\"false_easting\",12500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"5272\"]]"); p = add_epsg_def_ex (filter, first, last, 5273, "epsg", 5273, "TUREF / 3-degree Gauss-Kruger zone 13", 0, 1, "GRS 1980", "Greenwich", "Turkish_National_Reference_Frame", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / 3-degree Gauss-Kruger zone 13\",GEOGCS["); add_srs_wkt (p, 1, "\"TUREF\",DATUM[\"Turkish_National_Reference_Frame\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1057\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"5252\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",1],PARAMETER[\"false_easting\",13500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"5273\"]]"); p = add_epsg_def_ex (filter, first, last, 5274, "epsg", 5274, "TUREF / 3-degree Gauss-Kruger zone 14", 0, 1, "GRS 1980", "Greenwich", "Turkish_National_Reference_Frame", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / 3-degree Gauss-Kruger zone 14\",GEOGCS["); add_srs_wkt (p, 1, "\"TUREF\",DATUM[\"Turkish_National_Reference_Frame\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1057\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"5252\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",42],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",1],PARAMETER[\"false_easting\",14500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"5274\"]]"); p = add_epsg_def_ex (filter, first, last, 5275, "epsg", 5275, "TUREF / 3-degree Gauss-Kruger zone 15", 0, 1, "GRS 1980", "Greenwich", "Turkish_National_Reference_Frame", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / 3-degree Gauss-Kruger zone 15\",GEOGCS["); add_srs_wkt (p, 1, "\"TUREF\",DATUM[\"Turkish_National_Reference_Frame\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1057\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"5252\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",1],PARAMETER[\"false_easting\",15500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"5275\"]]"); p = add_epsg_def_ex (filter, first, last, 5292, "epsg", 5292, "DRUKREF 03 / Bumthang TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90.73333333333333 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Bumthang TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",90.73333333333333],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",1],PARAMETER[\"false_easting\",250000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",-2500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"5292\"]]"); p = add_epsg_def_ex (filter, first, last, 5293, "epsg", 5293, "DRUKREF 03 / Chhukha TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=89.55 +k=1 +x_0=250000 +y_0="); add_proj4text (p, 1, "-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Chhukha TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",89.55],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",250000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"5293\"]]"); p = add_epsg_def_ex (filter, first, last, 5294, "epsg", 5294, "DRUKREF 03 / Dagana TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=89.84999999999999 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Dagana TM\",GEOGCS[\"DRUKREF 03\","); add_srs_wkt (p, 1, "DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",89.85],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",250000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"5294\"]]"); p = add_epsg_def_ex (filter, first, last, 5295, "epsg", 5295, "DRUKREF 03 / Gasa TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90.03333333333333 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Gasa TM\",GEOGCS[\"DRUKREF 03\",DA"); add_srs_wkt (p, 1, "TUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",90.03333333333333],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",1],PARAMETER[\"false_easting\",250000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",-2500000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"5295\"]]"); p = add_epsg_def_ex (filter, first, last, 5296, "epsg", 5296, "DRUKREF 03 / Ha TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90.15000000000001 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Ha TM\",GEOGCS[\"DRUKREF 03\",DATU"); add_srs_wkt (p, 1, "M[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",90.15],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",250000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",-2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"5296\"]]"); p = add_epsg_def_ex (filter, first, last, 5297, "epsg", 5297, "DRUKREF 03 / Lhuentse TM", 0, 0, "GRS 1980", "Greenwich", "Bhutan_National_Geodetic_Datum", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=91.13333333333334 +k=1 +x_0="); add_proj4text (p, 1, "250000 +y_0=-2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DRUKREF 03 / Lhuentse TM\",GEOGCS[\"DRUKREF 03\""); add_srs_wkt (p, 1, ",DATUM[\"Bhutan_National_Geodetic_Datum\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1058\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5264\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",91.13333333333334],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",1],PARAMETER[\"false_easting\",250000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",-2500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"5297\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_29.c��������������������������������������������������0000664�0001750�0001750�00000603751�12544707704�017056� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_29 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 6085, "epsg", 6085, "WGS 84 / EPSG Arctic zone 4-38", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, "6440330555556 +lon_0=154 +x_0=38500000 +y_0=4500000 +dat"); add_proj4text (p, 2, "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 4-38\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",77],PARAMETER[\"standard_parallel_2\",73.6666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"latitude_of_origin\",75.36440330555"); add_srs_wkt (p, 10, "556],PARAMETER[\"central_meridian\",154],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",38500000],PARAMETER[\"false_northing\",4500"); add_srs_wkt (p, 12, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"6085\"]]"); p = add_epsg_def_ex (filter, first, last, 6086, "epsg", 6086, "WGS 84 / EPSG Arctic zone 4-40", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, "6440330555556 +lon_0=179 +x_0=40500000 +y_0=4500000 +dat"); add_proj4text (p, 2, "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 4-40\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",77],PARAMETER[\"standard_parallel_2\",73.6666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"latitude_of_origin\",75.36440330555"); add_srs_wkt (p, 10, "556],PARAMETER[\"central_meridian\",179],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",40500000],PARAMETER[\"false_northing\",4500"); add_srs_wkt (p, 12, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"6086\"]]"); p = add_epsg_def_ex (filter, first, last, 6087, "epsg", 6087, "WGS 84 / EPSG Arctic zone 5-15", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=54 +x_0=15500000 +y_"); add_proj4text (p, 2, "0=5500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 5-15\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",73.66666666666667],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",70.33333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",72.02500919444444],PARAMETER[\"central_meridian\",54],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",15500000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"6087\"]]"); p = add_epsg_def_ex (filter, first, last, 6088, "epsg", 6088, "WGS 84 / EPSG Arctic zone 5-17", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=74 +x_0=17500000 +y_"); add_proj4text (p, 2, "0=5500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 5-17\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",73.66666666666667],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",70.33333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",72.02500919444444],PARAMETER[\"central_meridian\",74],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",17500000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"6088\"]]"); p = add_epsg_def_ex (filter, first, last, 6089, "epsg", 6089, "WGS 84 / EPSG Arctic zone 5-19", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=95 +x_0=19500000 +y_"); add_proj4text (p, 2, "0=5500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 5-19\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",73.66666666666667],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",70.33333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",72.02500919444444],PARAMETER[\"central_meridian\",95],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",19500000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"6089\"]]"); p = add_epsg_def_ex (filter, first, last, 6090, "epsg", 6090, "WGS 84 / EPSG Arctic zone 5-21", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=116 +x_0=21500000 +y"); add_proj4text (p, 2, "_0=5500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 5-21\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",73.66666666666667],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",70.33333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",72.02500919444444],PARAMETER[\"central_meridian\",116],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",21500000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"6090\"]]"); p = add_epsg_def_ex (filter, first, last, 6091, "epsg", 6091, "WGS 84 / EPSG Arctic zone 5-23", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=137 +x_0=23500000 +y"); add_proj4text (p, 2, "_0=5500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 5-23\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",73.66666666666667],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",70.33333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",72.02500919444444],PARAMETER[\"central_meridian\",137],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",23500000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"6091\"]]"); p = add_epsg_def_ex (filter, first, last, 6092, "epsg", 6092, "WGS 84 / EPSG Arctic zone 5-25", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=158 +x_0=25500000 +y"); add_proj4text (p, 2, "_0=5500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 5-25\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",73.66666666666667],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",70.33333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",72.02500919444444],PARAMETER[\"central_meridian\",158],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",25500000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"6092\"]]"); p = add_epsg_def_ex (filter, first, last, 6093, "epsg", 6093, "WGS 84 / EPSG Arctic zone 5-27", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=179 +x_0=27500000 +y"); add_proj4text (p, 2, "_0=5500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 5-27\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",73.66666666666667],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",70.33333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",72.02500919444444],PARAMETER[\"central_meridian\",179],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",27500000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"6093\"]]"); p = add_epsg_def_ex (filter, first, last, 6094, "epsg", 6094, "NAD83(NSRS2007) / EPSG Arctic zone 5-29", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=-163 +x_0=29500000 +"); add_proj4text (p, 2, "y_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / EPSG Arctic zone 5-29\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",73.66666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",70.33333333333333],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",72.02500919444444],PARAMETER[\"c"); add_srs_wkt (p, 12, "entral_meridian\",-163],PARAMETER[\"false_easting\",2950"); add_srs_wkt (p, 13, "0000],PARAMETER[\"false_northing\",5500000],UNIT[\"metre"); add_srs_wkt (p, 14, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 15, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6094\"]]"); p = add_epsg_def_ex (filter, first, last, 6095, "epsg", 6095, "NAD83(NSRS2007) / EPSG Arctic zone 5-31", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=-147 +x_0=31500000 +"); add_proj4text (p, 2, "y_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / EPSG Arctic zone 5-31\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",73.66666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",70.33333333333333],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",72.02500919444444],PARAMETER[\"c"); add_srs_wkt (p, 12, "entral_meridian\",-147],PARAMETER[\"false_easting\",3150"); add_srs_wkt (p, 13, "0000],PARAMETER[\"false_northing\",5500000],UNIT[\"metre"); add_srs_wkt (p, 14, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 15, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6095\"]]"); p = add_epsg_def_ex (filter, first, last, 6096, "epsg", 6096, "NAD83(NSRS2007) / EPSG Arctic zone 6-14", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, "8747555555557 +lon_0=-165 +x_0=14500000 +y_0=6500000 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / EPSG Arctic zone 6-14\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",70.33333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",67],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 11, "origin\",68.68747555555557],PARAMETER[\"central_meridian"); add_srs_wkt (p, 12, "\",-165],PARAMETER[\"false_easting\",14500000],PARAMETER"); add_srs_wkt (p, 13, "[\"false_northing\",6500000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 15, "ng\",NORTH],AUTHORITY[\"EPSG\",\"6096\"]]"); p = add_epsg_def_ex (filter, first, last, 6097, "epsg", 6097, "NAD83(NSRS2007) / EPSG Arctic zone 6-16", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, "8747555555557 +lon_0=-147 +x_0=16500000 +y_0=6500000 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / EPSG Arctic zone 6-16\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",70.33333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",67],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 11, "origin\",68.68747555555557],PARAMETER[\"central_meridian"); add_srs_wkt (p, 12, "\",-147],PARAMETER[\"false_easting\",16500000],PARAMETER"); add_srs_wkt (p, 13, "[\"false_northing\",6500000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 15, "ng\",NORTH],AUTHORITY[\"EPSG\",\"6097\"]]"); p = add_epsg_def_ex (filter, first, last, 6098, "epsg", 6098, "NAD83(CSRS) / EPSG Arctic zone 1-23", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=87 +lat_2=83.66666666666667 +lat_0=85.4"); add_proj4text (p, 1, "3711833333333 +lon_0=-90 +x_0=23500000 +y_0=1500000 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 1-23\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",87],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",83.66666666666667],PARAMETER[\"latitude_of_origin\",85."); add_srs_wkt (p, 11, "43711833333333],PARAMETER[\"central_meridian\",-90],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",23500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 13, "hing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 14, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"6098\"]]"); p = add_epsg_def_ex (filter, first, last, 6099, "epsg", 6099, "NAD83(CSRS) / EPSG Arctic zone 2-14", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, "333 +lat_0=82.05842488888888 +lon_0=-115 +x_0=14500000 +"); add_proj4text (p, 2, "y_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 2-14\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",83.66666666666667],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",80.33333333333333],PARAMETER[\"latitude_"); add_srs_wkt (p, 11, "of_origin\",82.05842488888888],PARAMETER[\"central_merid"); add_srs_wkt (p, 12, "ian\",-115],PARAMETER[\"false_easting\",14500000],PARAME"); add_srs_wkt (p, 13, "TER[\"false_northing\",2500000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 15, "thing\",NORTH],AUTHORITY[\"EPSG\",\"6099\"]]"); p = add_epsg_def_ex (filter, first, last, 6100, "epsg", 6100, "NAD83(CSRS) / EPSG Arctic zone 2-16", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, "333 +lat_0=82.05842488888888 +lon_0=-75 +x_0=16500000 +y"); add_proj4text (p, 2, "_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 2-16\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",83.66666666666667],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",80.33333333333333],PARAMETER[\"latitude_"); add_srs_wkt (p, 11, "of_origin\",82.05842488888888],PARAMETER[\"central_merid"); add_srs_wkt (p, 12, "ian\",-75],PARAMETER[\"false_easting\",16500000],PARAMET"); add_srs_wkt (p, 13, "ER[\"false_northing\",2500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 14, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 15, "hing\",NORTH],AUTHORITY[\"EPSG\",\"6100\"]]"); p = add_epsg_def_ex (filter, first, last, 6101, "epsg", 6101, "NAD83(CSRS) / EPSG Arctic zone 3-25", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, "0733752777778 +lon_0=-129 +x_0=25500000 +y_0=3500000 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 3-25\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",80.33333333333333],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",77],PARAMETER[\"latitude_of_origin\",78."); add_srs_wkt (p, 11, "70733752777778],PARAMETER[\"central_meridian\",-129],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_easting\",25500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 13, "thing\",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 15, "AUTHORITY[\"EPSG\",\"6101\"]]"); p = add_epsg_def_ex (filter, first, last, 6102, "epsg", 6102, "NAD83(CSRS) / EPSG Arctic zone 3-27", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, "0733752777778 +lon_0=-99 +x_0=27500000 +y_0=3500000 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 3-27\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",80.33333333333333],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",77],PARAMETER[\"latitude_of_origin\",78."); add_srs_wkt (p, 11, "70733752777778],PARAMETER[\"central_meridian\",-99],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",27500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 13, "hing\",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 14, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"6102\"]]"); p = add_epsg_def_ex (filter, first, last, 6103, "epsg", 6103, "NAD83(CSRS) / EPSG Arctic zone 3-29", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, "0733752777778 +lon_0=-69 +x_0=29500000 +y_0=3500000 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 3-29\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",80.33333333333333],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",77],PARAMETER[\"latitude_of_origin\",78."); add_srs_wkt (p, 11, "70733752777778],PARAMETER[\"central_meridian\",-69],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",29500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 13, "hing\",3500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 14, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"6103\"]]"); p = add_epsg_def_ex (filter, first, last, 6104, "epsg", 6104, "NAD83(CSRS) / EPSG Arctic zone 4-14", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, "6440330555556 +lon_0=-129 +x_0=14500000 +y_0=4500000 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 4-14\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",77],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",73.66666666666667],PARAMETER[\"latitude_of_origin\",75."); add_srs_wkt (p, 11, "36440330555556],PARAMETER[\"central_meridian\",-129],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_easting\",14500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 13, "thing\",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 15, "AUTHORITY[\"EPSG\",\"6104\"]]"); p = add_epsg_def_ex (filter, first, last, 6105, "epsg", 6105, "NAD83(CSRS) / EPSG Arctic zone 4-16", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, "6440330555556 +lon_0=-104 +x_0=16500000 +y_0=4500000 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 4-16\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",77],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",73.66666666666667],PARAMETER[\"latitude_of_origin\",75."); add_srs_wkt (p, 11, "36440330555556],PARAMETER[\"central_meridian\",-104],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_easting\",16500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 13, "thing\",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 15, "AUTHORITY[\"EPSG\",\"6105\"]]"); p = add_epsg_def_ex (filter, first, last, 6106, "epsg", 6106, "NAD83(CSRS) / EPSG Arctic zone 4-18", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, "6440330555556 +lon_0=-79 +x_0=18500000 +y_0=4500000 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 4-18\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",77],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",73.66666666666667],PARAMETER[\"latitude_of_origin\",75."); add_srs_wkt (p, 11, "36440330555556],PARAMETER[\"central_meridian\",-79],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",18500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 13, "hing\",4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 14, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"6106\"]]"); p = add_epsg_def_ex (filter, first, last, 6107, "epsg", 6107, "NAD83(CSRS) / EPSG Arctic zone 5-33", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=-131 +x_0=33500000 +"); add_proj4text (p, 2, "y_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 5-33\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",73.66666666666667],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",70.33333333333333],PARAMETER[\"latitude_"); add_srs_wkt (p, 11, "of_origin\",72.02500919444444],PARAMETER[\"central_merid"); add_srs_wkt (p, 12, "ian\",-131],PARAMETER[\"false_easting\",33500000],PARAME"); add_srs_wkt (p, 13, "TER[\"false_northing\",5500000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 15, "thing\",NORTH],AUTHORITY[\"EPSG\",\"6107\"]]"); p = add_epsg_def_ex (filter, first, last, 6108, "epsg", 6108, "NAD83(CSRS) / EPSG Arctic zone 5-35", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=-111 +x_0=35500000 +"); add_proj4text (p, 2, "y_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 5-35\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",73.66666666666667],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",70.33333333333333],PARAMETER[\"latitude_"); add_srs_wkt (p, 11, "of_origin\",72.02500919444444],PARAMETER[\"central_merid"); add_srs_wkt (p, 12, "ian\",-111],PARAMETER[\"false_easting\",35500000],PARAME"); add_srs_wkt (p, 13, "TER[\"false_northing\",5500000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 15, "thing\",NORTH],AUTHORITY[\"EPSG\",\"6108\"]]"); p = add_epsg_def_ex (filter, first, last, 6109, "epsg", 6109, "NAD83(CSRS) / EPSG Arctic zone 5-37", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=-91 +x_0=37500000 +y"); add_proj4text (p, 2, "_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 5-37\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",73.66666666666667],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",70.33333333333333],PARAMETER[\"latitude_"); add_srs_wkt (p, 11, "of_origin\",72.02500919444444],PARAMETER[\"central_merid"); add_srs_wkt (p, 12, "ian\",-91],PARAMETER[\"false_easting\",37500000],PARAMET"); add_srs_wkt (p, 13, "ER[\"false_northing\",5500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 14, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 15, "hing\",NORTH],AUTHORITY[\"EPSG\",\"6109\"]]"); p = add_epsg_def_ex (filter, first, last, 6110, "epsg", 6110, "NAD83(CSRS) / EPSG Arctic zone 5-39", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=-71 +x_0=39500000 +y"); add_proj4text (p, 2, "_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 5-39\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",73.66666666666667],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",70.33333333333333],PARAMETER[\"latitude_"); add_srs_wkt (p, 11, "of_origin\",72.02500919444444],PARAMETER[\"central_merid"); add_srs_wkt (p, 12, "ian\",-71],PARAMETER[\"false_easting\",39500000],PARAMET"); add_srs_wkt (p, 13, "ER[\"false_northing\",5500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 14, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 15, "hing\",NORTH],AUTHORITY[\"EPSG\",\"6110\"]]"); p = add_epsg_def_ex (filter, first, last, 6111, "epsg", 6111, "NAD83(CSRS) / EPSG Arctic zone 6-18", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, "8747555555557 +lon_0=-132 +x_0=18500000 +y_0=6500000 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 6-18\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",70.33333333333333],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",67],PARAMETER[\"latitude_of_origin\",68."); add_srs_wkt (p, 11, "68747555555557],PARAMETER[\"central_meridian\",-132],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_easting\",18500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 13, "thing\",6500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 15, "AUTHORITY[\"EPSG\",\"6111\"]]"); p = add_epsg_def_ex (filter, first, last, 6112, "epsg", 6112, "NAD83(CSRS) / EPSG Arctic zone 6-20", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, "8747555555557 +lon_0=-113 +x_0=20500000 +y_0=6500000 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 6-20\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",70.33333333333333],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",67],PARAMETER[\"latitude_of_origin\",68."); add_srs_wkt (p, 11, "68747555555557],PARAMETER[\"central_meridian\",-113],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_easting\",20500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 13, "thing\",6500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 15, "AUTHORITY[\"EPSG\",\"6112\"]]"); p = add_epsg_def_ex (filter, first, last, 6113, "epsg", 6113, "NAD83(CSRS) / EPSG Arctic zone 6-22", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, "8747555555557 +lon_0=-94 +x_0=22500000 +y_0=6500000 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 6-22\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",70.33333333333333],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",67],PARAMETER[\"latitude_of_origin\",68."); add_srs_wkt (p, 11, "68747555555557],PARAMETER[\"central_meridian\",-94],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",22500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 13, "hing\",6500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 14, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"6113\"]]"); p = add_epsg_def_ex (filter, first, last, 6114, "epsg", 6114, "NAD83(CSRS) / EPSG Arctic zone 6-24", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, "8747555555557 +lon_0=-75 +x_0=24500000 +y_0=6500000 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / EPSG Arctic zone 6-24\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",70.33333333333333],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",67],PARAMETER[\"latitude_of_origin\",68."); add_srs_wkt (p, 11, "68747555555557],PARAMETER[\"central_meridian\",-75],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",24500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 13, "hing\",6500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 14, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"6114\"]]"); p = add_epsg_def_ex (filter, first, last, 6115, "epsg", 6115, "WGS 84 / EPSG Arctic zone 1-27", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=87 +lat_2=83.66666666666667 +lat_0=85.4"); add_proj4text (p, 1, "3711833333333 +lon_0=30 +x_0=27500000 +y_0=1500000 +datu"); add_proj4text (p, 2, "m=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 1-27\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",87],PARAMETER[\"standard_parallel_2\",83.6666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"latitude_of_origin\",85.43711833333"); add_srs_wkt (p, 10, "333],PARAMETER[\"central_meridian\",30],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",27500000],PARAMETER[\"false_northing\",15000"); add_srs_wkt (p, 12, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"6115\"]]"); p = add_epsg_def_ex (filter, first, last, 6116, "epsg", 6116, "WGS 84 / EPSG Arctic zone 1-29", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=87 +lat_2=83.66666666666667 +lat_0=85.4"); add_proj4text (p, 1, "3711833333333 +lon_0=90 +x_0=29500000 +y_0=1500000 +datu"); add_proj4text (p, 2, "m=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 1-29\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",87],PARAMETER[\"standard_parallel_2\",83.6666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"latitude_of_origin\",85.43711833333"); add_srs_wkt (p, 10, "333],PARAMETER[\"central_meridian\",90],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",29500000],PARAMETER[\"false_northing\",15000"); add_srs_wkt (p, 12, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"6116\"]]"); p = add_epsg_def_ex (filter, first, last, 6117, "epsg", 6117, "WGS 84 / EPSG Arctic zone 1-31", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=87 +lat_2=83.66666666666667 +lat_0=85.4"); add_proj4text (p, 1, "3711833333333 +lon_0=150 +x_0=31500000 +y_0=1500000 +dat"); add_proj4text (p, 2, "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 1-31\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",87],PARAMETER[\"standard_parallel_2\",83.6666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"latitude_of_origin\",85.43711833333"); add_srs_wkt (p, 10, "333],PARAMETER[\"central_meridian\",150],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",31500000],PARAMETER[\"false_northing\",1500"); add_srs_wkt (p, 12, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"6117\"]]"); p = add_epsg_def_ex (filter, first, last, 6118, "epsg", 6118, "WGS 84 / EPSG Arctic zone 1-21", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=87 +lat_2=83.66666666666667 +lat_0=85.4"); add_proj4text (p, 1, "3711833333333 +lon_0=-150 +x_0=21500000 +y_0=1500000 +da"); add_proj4text (p, 2, "tum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 1-21\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",87],PARAMETER[\"standard_parallel_2\",83.6666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"latitude_of_origin\",85.43711833333"); add_srs_wkt (p, 10, "333],PARAMETER[\"central_meridian\",-150],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",21500000],PARAMETER[\"false_northing\",150"); add_srs_wkt (p, 12, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"6118\"]]"); p = add_epsg_def_ex (filter, first, last, 6119, "epsg", 6119, "WGS 84 / EPSG Arctic zone 2-28", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, "333 +lat_0=82.05842488888888 +lon_0=133 +x_0=28500000 +y"); add_proj4text (p, 2, "_0=2500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 2-28\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",83.66666666666667],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",80.33333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",82.05842488888888],PARAMETER[\"central_meridian\",133],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",28500000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"6119\"]]"); p = add_epsg_def_ex (filter, first, last, 6120, "epsg", 6120, "WGS 84 / EPSG Arctic zone 2-10", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, "333 +lat_0=82.05842488888888 +lon_0=166 +x_0=10500000 +y"); add_proj4text (p, 2, "_0=2500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 2-10\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",83.66666666666667],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",80.33333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",82.05842488888888],PARAMETER[\"central_meridian\",166],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",10500000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"6120\"]]"); p = add_epsg_def_ex (filter, first, last, 6121, "epsg", 6121, "WGS 84 / EPSG Arctic zone 2-12", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, "333 +lat_0=82.05842488888888 +lon_0=-154 +x_0=12500000 +"); add_proj4text (p, 2, "y_0=2500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 2-12\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",83.66666666666667],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",80.33333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",82.05842488888888],PARAMETER[\"central_meridian\",-154]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",12500000],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"6121\"]]"); p = add_epsg_def_ex (filter, first, last, 6122, "epsg", 6122, "WGS 84 / EPSG Arctic zone 3-21", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, "0733752777778 +lon_0=176 +x_0=21500000 +y_0=3500000 +dat"); add_proj4text (p, 2, "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 3-21\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",80.33333333333333],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",77],PARAMETER[\"latitude_of_origin\",78.70733752777"); add_srs_wkt (p, 10, "778],PARAMETER[\"central_meridian\",176],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",21500000],PARAMETER[\"false_northing\",3500"); add_srs_wkt (p, 12, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"6122\"]]"); p = add_epsg_def_ex (filter, first, last, 6123, "epsg", 6123, "WGS 84 / EPSG Arctic zone 3-23", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, "0733752777778 +lon_0=-153 +x_0=23500000 +y_0=3500000 +da"); add_proj4text (p, 2, "tum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 3-23\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",80.33333333333333],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",77],PARAMETER[\"latitude_of_origin\",78.70733752777"); add_srs_wkt (p, 10, "778],PARAMETER[\"central_meridian\",-153],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",23500000],PARAMETER[\"false_northing\",350"); add_srs_wkt (p, 12, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"6123\"]]"); p = add_epsg_def_ex (filter, first, last, 6124, "epsg", 6124, "WGS 84 / EPSG Arctic zone 4-12", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, "6440330555556 +lon_0=-155 +x_0=12500000 +y_0=4500000 +da"); add_proj4text (p, 2, "tum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 4-12\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",77],PARAMETER[\"standard_parallel_2\",73.6666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"latitude_of_origin\",75.36440330555"); add_srs_wkt (p, 10, "556],PARAMETER[\"central_meridian\",-155],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",12500000],PARAMETER[\"false_northing\",450"); add_srs_wkt (p, 12, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"6124\"]]"); p = add_epsg_def_ex (filter, first, last, 6125, "epsg", 6125, "ETRS89 / EPSG Arctic zone 5-47", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=-5 +x_0=47500000 +y_"); add_proj4text (p, 2, "0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / EPSG Arctic zone 5-47\",GEOGCS[\"ETRS8"); add_srs_wkt (p, 1, "9\",DATUM[\"European_Terrestrial_Reference_System_1989\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",73.66666666666667],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",70.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",72.02500919444444],PARAMETER[\"central_meridian\",-5"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",47500000],PARAMETER[\"fals"); add_srs_wkt (p, 13, "e_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 15, "TH],AUTHORITY[\"EPSG\",\"6125\"]]"); p = add_epsg_def_ex (filter, first, last, 6128, "epsg", 6128, "Grand Cayman National Grid 1959", 0, 0, "Clarke 1866", "Greenwich", "Grand_Cayman_Geodetic_Datum_1959", "Transverse_Mercator", "foot", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=clrk66 +towgs84=-179.483,-69.3"); add_proj4text (p, 1, "79,-27.584,-7.862,8.163,6.042,-13.925 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Grand Cayman National Grid 1959\",GEOGCS[\"GCGD"); add_srs_wkt (p, 1, "59\",DATUM[\"Grand_Cayman_Geodetic_Datum_1959\",SPHEROID"); add_srs_wkt (p, 2, "[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7008\"]],TOWGS84[-179.483,-69.379,-27.584,-7.86"); add_srs_wkt (p, 4, "2,8.163,6.042,-13.925],AUTHORITY[\"EPSG\",\"6723\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4723\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 10, "ntral_meridian\",-81],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",1640419.9475],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"9002\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 14, "ORTH],AUTHORITY[\"EPSG\",\"6128\"]]"); p = add_epsg_def_ex (filter, first, last, 6129, "epsg", 6129, "Sister Islands National Grid 1961", 0, 0, "Clarke 1866", "Greenwich", "Sister_Islands_Geodetic_Datum_1961", "Transverse_Mercator", "foot", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=clrk66 +towgs84=8.853,-52.644,"); add_proj4text (p, 1, "180.304,-0.393,-2.323,2.96,-24.081 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Sister Islands National Grid 1961\",GEOGCS[\"SI"); add_srs_wkt (p, 1, "GD61\",DATUM[\"Sister_Islands_Geodetic_Datum_1961\",SPHE"); add_srs_wkt (p, 2, "ROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7008\"]],TOWGS84[8.853,-52.644,180.304,-0."); add_srs_wkt (p, 4, "393,-2.323,2.96,-24.081],AUTHORITY[\"EPSG\",\"6726\"]],P"); add_srs_wkt (p, 5, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 6, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 7, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 8, "UTHORITY[\"EPSG\",\"4726\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 9, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",-81],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 11, "6],PARAMETER[\"false_easting\",1640419.9475],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"9002\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 14, "NORTH],AUTHORITY[\"EPSG\",\"6129\"]]"); p = add_epsg_def_ex (filter, first, last, 6135, "epsg", 6135, "CIGD11", 1, 1, "GRS 1980", "Greenwich", "Cayman_Islands_Geodetic_Datum_2011", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"CIGD11\",DATUM[\"Cayman_Islands_Geodetic_Datum_"); add_srs_wkt (p, 1, "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"1100\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"6135\"]]"); p = add_epsg_def_ex (filter, first, last, 6141, "epsg", 6141, "Cayman Islands National Grid 2011 (deprecated)", 0, 0, "GRS 1980", "Greenwich", "Cayman_Islands_Geodetic_Datum_2011", "Lambert_Conformal_Conic_2SP", "foot", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=19.33333333333333 +lat_2=19.7 +lat_0=19"); add_proj4text (p, 1, ".33333333333333 +lon_0=80.56666666666666 +x_0=899160 +y_"); add_proj4text (p, 2, "0=579120 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cayman Islands National Grid 2011 (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"CIGD11\",DATUM[\"Cayman_Islands_Geodetic_Datum"); add_srs_wkt (p, 2, "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"1100\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"6135\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",19.33333333333333],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",19.7],PARAMETER[\"latitude_of_origin\",1"); add_srs_wkt (p, 11, "9.33333333333333],PARAMETER[\"central_meridian\",80.5666"); add_srs_wkt (p, 12, "6666666666],PARAMETER[\"false_easting\",2950000],PARAMET"); add_srs_wkt (p, 13, "ER[\"false_northing\",1900000],UNIT[\"foot\",0.3048,AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"9002\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 15, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"6141\"]]"); p = add_epsg_def_ex (filter, first, last, 6144, "epsg", 6144, "ETRS89", 1, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +vunit"); add_proj4text (p, 1, "s=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 + NN54 height\",GEOGCS[\"ETRS89\",DATU"); add_srs_wkt (p, 1, "M[\"European_Terrestrial_Reference_System_1989\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4258\"]],VERT_CS[\"NN54 heig"); add_srs_wkt (p, 8, "ht\",VERT_DATUM[\"Norway Normal Null 1954\",2005,AUTHORI"); add_srs_wkt (p, 9, "TY[\"EPSG\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 10, "\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\""); add_srs_wkt (p, 11, "]],AUTHORITY[\"EPSG\",\"6144\"]]"); p = add_epsg_def_ex (filter, first, last, 6145, "epsg", 6145, "ETRS89 / NTM zone 5", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=5.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vun"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 5 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 5\",GEOGCS[\"ETRS89\",DATUM[\"European"); add_srs_wkt (p, 2, "_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 3, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 4, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRIM"); add_srs_wkt (p, 5, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",5.5],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",100000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 14, "THORITY[\"EPSG\",\"5105\"]],VERT_CS[\"NN54 height\",VERT"); add_srs_wkt (p, 15, "_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPSG"); add_srs_wkt (p, 16, "\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 17, "\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTHO"); add_srs_wkt (p, 18, "RITY[\"EPSG\",\"6145\"]]"); p = add_epsg_def_ex (filter, first, last, 6146, "epsg", 6146, "ETRS89 / NTM zone 6", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=6.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vun"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 6 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 6\",GEOGCS[\"ETRS89\",DATUM[\"European"); add_srs_wkt (p, 2, "_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 3, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 4, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRIM"); add_srs_wkt (p, 5, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",6.5],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",100000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 14, "THORITY[\"EPSG\",\"5106\"]],VERT_CS[\"NN54 height\",VERT"); add_srs_wkt (p, 15, "_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPSG"); add_srs_wkt (p, 16, "\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 17, "\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTHO"); add_srs_wkt (p, 18, "RITY[\"EPSG\",\"6146\"]]"); p = add_epsg_def_ex (filter, first, last, 6147, "epsg", 6147, "ETRS89 / NTM zone 7", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=7.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vun"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 7 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 7\",GEOGCS[\"ETRS89\",DATUM[\"European"); add_srs_wkt (p, 2, "_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 3, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 4, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRIM"); add_srs_wkt (p, 5, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",7.5],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",100000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 14, "THORITY[\"EPSG\",\"5107\"]],VERT_CS[\"NN54 height\",VERT"); add_srs_wkt (p, 15, "_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPSG"); add_srs_wkt (p, 16, "\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 17, "\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTHO"); add_srs_wkt (p, 18, "RITY[\"EPSG\",\"6147\"]]"); p = add_epsg_def_ex (filter, first, last, 6148, "epsg", 6148, "ETRS89 / NTM zone 8", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=8.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vun"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 8 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 8\",GEOGCS[\"ETRS89\",DATUM[\"European"); add_srs_wkt (p, 2, "_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 3, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 4, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRIM"); add_srs_wkt (p, 5, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",8.5],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",100000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 14, "THORITY[\"EPSG\",\"5108\"]],VERT_CS[\"NN54 height\",VERT"); add_srs_wkt (p, 15, "_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPSG"); add_srs_wkt (p, 16, "\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 17, "\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTHO"); add_srs_wkt (p, 18, "RITY[\"EPSG\",\"6148\"]]"); p = add_epsg_def_ex (filter, first, last, 6149, "epsg", 6149, "ETRS89 / NTM zone 9", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=9.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vun"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 9 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 9\",GEOGCS[\"ETRS89\",DATUM[\"European"); add_srs_wkt (p, 2, "_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 3, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 4, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRIM"); add_srs_wkt (p, 5, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",9.5],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",100000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 14, "THORITY[\"EPSG\",\"5109\"]],VERT_CS[\"NN54 height\",VERT"); add_srs_wkt (p, 15, "_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPSG"); add_srs_wkt (p, 16, "\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 17, "\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTHO"); add_srs_wkt (p, 18, "RITY[\"EPSG\",\"6149\"]]"); p = add_epsg_def_ex (filter, first, last, 6150, "epsg", 6150, "ETRS89 / NTM zone 10", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=10.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 10 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 10\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",10.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5110\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6150\"]]"); p = add_epsg_def_ex (filter, first, last, 6151, "epsg", 6151, "ETRS89 / NTM zone 11", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=11.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 11 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 11\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",11.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5111\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6151\"]]"); p = add_epsg_def_ex (filter, first, last, 6152, "epsg", 6152, "ETRS89 / NTM zone 12", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=12.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 12 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 12\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",12.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5112\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6152\"]]"); p = add_epsg_def_ex (filter, first, last, 6153, "epsg", 6153, "ETRS89 / NTM zone 13", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=13.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 13 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 13\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",13.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5113\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6153\"]]"); p = add_epsg_def_ex (filter, first, last, 6154, "epsg", 6154, "ETRS89 / NTM zone 14", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=14.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 14 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 14\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",14.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5114\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6154\"]]"); p = add_epsg_def_ex (filter, first, last, 6155, "epsg", 6155, "ETRS89 / NTM zone 15", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=15.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 15 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 15\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",15.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5115\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6155\"]]"); p = add_epsg_def_ex (filter, first, last, 6156, "epsg", 6156, "ETRS89 / NTM zone 16", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=16.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 16 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 16\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",16.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5116\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6156\"]]"); p = add_epsg_def_ex (filter, first, last, 6157, "epsg", 6157, "ETRS89 / NTM zone 17", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=17.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 17 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 17\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",17.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5117\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6157\"]]"); p = add_epsg_def_ex (filter, first, last, 6158, "epsg", 6158, "ETRS89 / NTM zone 18", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=18.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 18 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 18\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",18.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5118\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6158\"]]"); p = add_epsg_def_ex (filter, first, last, 6159, "epsg", 6159, "ETRS89 / NTM zone 19", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=19.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 19 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 19\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",19.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5119\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6159\"]]"); p = add_epsg_def_ex (filter, first, last, 6160, "epsg", 6160, "ETRS89 / NTM zone 20", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=20.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 20 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 20\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",20.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5120\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6160\"]]"); p = add_epsg_def_ex (filter, first, last, 6161, "epsg", 6161, "ETRS89 / NTM zone 21", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=21.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 21 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 21\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",21.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5121\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6161\"]]"); p = add_epsg_def_ex (filter, first, last, 6162, "epsg", 6162, "ETRS89 / NTM zone 22", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=22.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 22 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 22\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",22.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5122\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6162\"]]"); p = add_epsg_def_ex (filter, first, last, 6163, "epsg", 6163, "ETRS89 / NTM zone 23", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=23.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 23 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 23\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",23.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5123\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6163\"]]"); p = add_epsg_def_ex (filter, first, last, 6164, "epsg", 6164, "ETRS89 / NTM zone 24", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=24.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 24 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 24\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",24.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5124\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6164\"]]"); p = add_epsg_def_ex (filter, first, last, 6165, "epsg", 6165, "ETRS89 / NTM zone 25", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=25.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 25 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 25\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",25.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5125\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6165\"]]"); p = add_epsg_def_ex (filter, first, last, 6166, "epsg", 6166, "ETRS89 / NTM zone 26", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=26.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 26 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 26\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",26.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5126\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6166\"]]"); p = add_epsg_def_ex (filter, first, last, 6167, "epsg", 6167, "ETRS89 / NTM zone 27", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=27.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 27 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 27\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",27.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5127\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6167\"]]"); p = add_epsg_def_ex (filter, first, last, 6168, "epsg", 6168, "ETRS89 / NTM zone 28", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=28.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 28 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 28\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",28.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5128\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6168\"]]"); p = add_epsg_def_ex (filter, first, last, 6169, "epsg", 6169, "ETRS89 / NTM zone 29", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=29.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 29 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 29\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",29.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5129\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6169\"]]"); p = add_epsg_def_ex (filter, first, last, 6170, "epsg", 6170, "ETRS89 / NTM zone 30", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=30.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 30 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / NTM zone 30\",GEOGCS[\"ETRS89\",DATUM[\"Europea"); add_srs_wkt (p, 2, "n_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 3, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 4, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",30.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5130\"]],VERT_CS[\"NN54 height\",VER"); add_srs_wkt (p, 15, "T_DATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 17, "1\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"6170\"]]"); p = add_epsg_def_ex (filter, first, last, 6171, "epsg", 6171, "ETRS89 / UTM zone 31N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=31 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / UTM zone 31 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / UTM zone 31N\",GEOGCS[\"ETRS89\",DATUM[\"Europe"); add_srs_wkt (p, 2, "an_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 3, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 4, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 9, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",3],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"25831\"]],VERT_CS[\"NN54 height\",VERT_D"); add_srs_wkt (p, 15, "ATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 16, ",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 17, "]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTHORI"); add_srs_wkt (p, 18, "TY[\"EPSG\",\"6171\"]]"); p = add_epsg_def_ex (filter, first, last, 6172, "epsg", 6172, "ETRS89 / UTM zone 32N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / UTM zone 32 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / UTM zone 32N\",GEOGCS[\"ETRS89\",DATUM[\"Europe"); add_srs_wkt (p, 2, "an_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 3, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 4, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 9, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",9],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"25832\"]],VERT_CS[\"NN54 height\",VERT_D"); add_srs_wkt (p, 15, "ATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 16, ",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 17, "]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTHORI"); add_srs_wkt (p, 18, "TY[\"EPSG\",\"6172\"]]"); p = add_epsg_def_ex (filter, first, last, 6173, "epsg", 6173, "ETRS89 / UTM zone 33N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / UTM zone 33 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / UTM zone 33N\",GEOGCS[\"ETRS89\",DATUM[\"Europe"); add_srs_wkt (p, 2, "an_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 3, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 4, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 9, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",15],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"25833\"]],VERT_CS[\"NN54 height\",VERT_D"); add_srs_wkt (p, 15, "ATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 16, ",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 17, "]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTHORI"); add_srs_wkt (p, 18, "TY[\"EPSG\",\"6173\"]]"); p = add_epsg_def_ex (filter, first, last, 6174, "epsg", 6174, "ETRS89 / UTM zone 34N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / UTM zone 34 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / UTM zone 34N\",GEOGCS[\"ETRS89\",DATUM[\"Europe"); add_srs_wkt (p, 2, "an_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 3, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 4, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 9, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",21],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"25834\"]],VERT_CS[\"NN54 height\",VERT_D"); add_srs_wkt (p, 15, "ATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 16, ",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 17, "]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTHORI"); add_srs_wkt (p, 18, "TY[\"EPSG\",\"6174\"]]"); p = add_epsg_def_ex (filter, first, last, 6175, "epsg", 6175, "ETRS89 / UTM zone 35N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / UTM zone 35 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / UTM zone 35N\",GEOGCS[\"ETRS89\",DATUM[\"Europe"); add_srs_wkt (p, 2, "an_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 3, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 4, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 9, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",27],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"25835\"]],VERT_CS[\"NN54 height\",VERT_D"); add_srs_wkt (p, 15, "ATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 16, ",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 17, "]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTHORI"); add_srs_wkt (p, 18, "TY[\"EPSG\",\"6175\"]]"); p = add_epsg_def_ex (filter, first, last, 6176, "epsg", 6176, "ETRS89 / UTM zone 36N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / UTM zone 36 + NN54 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / UTM zone 36N\",GEOGCS[\"ETRS89\",DATUM[\"Europe"); add_srs_wkt (p, 2, "an_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 3, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 4, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 9, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",33],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"25836\"]],VERT_CS[\"NN54 height\",VERT_D"); add_srs_wkt (p, 15, "ATUM[\"Norway Normal Null 1954\",2005,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 16, ",\"5174\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 17, "]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5776\"]],AUTHORI"); add_srs_wkt (p, 18, "TY[\"EPSG\",\"6176\"]]"); p = add_epsg_def_ex (filter, first, last, 6190, "epsg", 6190, "Belge 1972 / Belgian Lambert 72", 0, 0, "International 1924", "Greenwich", "Reseau_National_Belge_1972", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=51.16666723333333 +lat_2=49.8333339 +la"); add_proj4text (p, 1, "t_0=90 +lon_0=4.367486666666666 +x_0=150000.013 +y_0=540"); add_proj4text (p, 2, "0088.438 +ellps=intl +towgs84=-106.8686,52.2978,-103.723"); add_proj4text (p, 3, "9,0.3366,-0.457,1.8422,-1.2747 +units=m +vunits=m +no_de"); add_proj4text (p, 4, "fs"); add_srs_wkt (p, 0, "COMPD_CS[\"Belge 1972 / Belgian Lambert 72 + Ostend heig"); add_srs_wkt (p, 1, "ht\",PROJCS[\"Belge 1972 / Belgian Lambert 72\",GEOGCS[\""); add_srs_wkt (p, 2, "Belge 1972\",DATUM[\"Reseau_National_Belge_1972\",SPHERO"); add_srs_wkt (p, 3, "ID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"7022\"]],TOWGS84[-106.8686,52.2978,-103.7239,0.3366,-"); add_srs_wkt (p, 5, "0.457,1.8422,-1.2747],AUTHORITY[\"EPSG\",\"6313\"]],PRIM"); add_srs_wkt (p, 6, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 7, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 8, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 9, "ORITY[\"EPSG\",\"4313\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 10, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",51.16666"); add_srs_wkt (p, 11, "723333333],PARAMETER[\"standard_parallel_2\",49.8333339]"); add_srs_wkt (p, 12, ",PARAMETER[\"latitude_of_origin\",90],PARAMETER[\"centra"); add_srs_wkt (p, 13, "l_meridian\",4.367486666666666],PARAMETER[\"false_eastin"); add_srs_wkt (p, 14, "g\",150000.013],PARAMETER[\"false_northing\",5400088.438"); add_srs_wkt (p, 15, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 16, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"31370\""); add_srs_wkt (p, 17, "]],VERT_CS[\"Ostend height\",VERT_DATUM[\"Ostend\",2005,"); add_srs_wkt (p, 18, "AUTHORITY[\"EPSG\",\"5110\"]],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 19, "[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 20, "\"5710\"]],AUTHORITY[\"EPSG\",\"6190\"]]"); p = add_epsg_def_ex (filter, first, last, 6204, "epsg", 6204, "Macedonian State Coordinate System", 0, 0, "Bessel 1841", "Greenwich", "MGI_1901", "Transverse_Mercator", "metre", "Y", "East", "X", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Macedonian State Coordinate System\",GEOGCS[\"M"); add_srs_wkt (p, 1, "GI 1901\",DATUM[\"MGI_1901\",SPHEROID[\"Bessel 1841\",63"); add_srs_wkt (p, 2, "77397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWG"); add_srs_wkt (p, 3, "S84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\",\"1031\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"3906\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",21],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "99],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"6204\"]]"); p = add_epsg_def_ex (filter, first, last, 6207, "epsg", 6207, "Nepal 1981", 1, 1, "Everest 1830 (1937 Adjustment)", "Greenwich", "Nepal_1981", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); add_proj4text (p, 1, "84=293.17,726.18,245.36,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Nepal 1981\",DATUM[\"Nepal_1981\",SPHEROID[\"Ev"); add_srs_wkt (p, 1, "erest 1830 (1937 Adjustment)\",6377276.345,300.8017,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7015\"]],TOWGS84[293.17,726.18,245.36,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"1111\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"6207\"]]"); p = add_epsg_def_ex (filter, first, last, 6210, "epsg", 6210, "SIRGAS 2000 / UTM zone 23N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 23N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-45]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6210"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 6211, "epsg", 6211, "SIRGAS 2000 / UTM zone 24N", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=24 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / UTM zone 24N\",GEOGCS[\"SIRGAS 20"); add_srs_wkt (p, 1, "00\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_las_"); add_srs_wkt (p, 2, "AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4674"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-39]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6211"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 6316, "epsg", 6316, "Macedonia State Coordinate System zone 7", 0, 0, "Bessel 1841", "Greenwich", "MGI_1901", "Transverse_Mercator", "metre", "Y", "East", "X", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Macedonia State Coordinate System zone 7\",GEOG"); add_srs_wkt (p, 1, "CS[\"MGI 1901\",DATUM[\"MGI_1901\",SPHEROID[\"Bessel 184"); add_srs_wkt (p, 2, "1\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]"); add_srs_wkt (p, 3, "],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\",\"103"); add_srs_wkt (p, 4, "1\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"3906\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",21],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9999],PARAMETER[\"false_easting\",7500000],PARAMETER["); add_srs_wkt (p, 11, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"6316\"]]"); p = add_epsg_def_ex (filter, first, last, 6318, "epsg", 6318, "NAD83(2011)", 1, 1, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 1, "ference_System_2011\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 2, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"6318\"]]"); p = add_epsg_def_ex (filter, first, last, 6322, "epsg", 6322, "NAD83(PA11)", 1, 1, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_PA11", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD83(PA11)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 1, "ference_System_PA11\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 2, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"1117\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"6322\"]]"); p = add_epsg_def_ex (filter, first, last, 6325, "epsg", 6325, "NAD83(MA11)", 1, 1, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_MA11", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD83(MA11)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 1, "ference_System_MA11\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 2, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"1118\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"6325\"]]"); p = add_epsg_def_ex (filter, first, last, 6328, "epsg", 6328, "NAD83(2011) / UTM zone 59N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=59 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 59N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",171],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6328\"]]"); p = add_epsg_def_ex (filter, first, last, 6329, "epsg", 6329, "NAD83(2011) / UTM zone 60N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=60 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 60N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",177],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6329\"]]"); p = add_epsg_def_ex (filter, first, last, 6330, "epsg", 6330, "NAD83(2011) / UTM zone 1N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=1 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 1N\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-177],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6330\"]]"); p = add_epsg_def_ex (filter, first, last, 6331, "epsg", 6331, "NAD83(2011) / UTM zone 2N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=2 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 2N\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-171],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6331\"]]"); p = add_epsg_def_ex (filter, first, last, 6332, "epsg", 6332, "NAD83(2011) / UTM zone 3N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=3 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 3N\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-165],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6332\"]]"); p = add_epsg_def_ex (filter, first, last, 6333, "epsg", 6333, "NAD83(2011) / UTM zone 4N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=4 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 4N\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-159],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6333\"]]"); p = add_epsg_def_ex (filter, first, last, 6334, "epsg", 6334, "NAD83(2011) / UTM zone 5N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=5 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 5N\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-153],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6334\"]]"); p = add_epsg_def_ex (filter, first, last, 6335, "epsg", 6335, "NAD83(2011) / UTM zone 6N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=6 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 6N\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-147],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6335\"]]"); p = add_epsg_def_ex (filter, first, last, 6336, "epsg", 6336, "NAD83(2011) / UTM zone 7N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=7 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 7N\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-141],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6336\"]]"); p = add_epsg_def_ex (filter, first, last, 6337, "epsg", 6337, "NAD83(2011) / UTM zone 8N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=8 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 8N\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-135],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6337\"]]"); p = add_epsg_def_ex (filter, first, last, 6338, "epsg", 6338, "NAD83(2011) / UTM zone 9N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=9 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 9N\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-129],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6338\"]]"); p = add_epsg_def_ex (filter, first, last, 6339, "epsg", 6339, "NAD83(2011) / UTM zone 10N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=10 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 10N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-123],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"6339\"]]"); p = add_epsg_def_ex (filter, first, last, 6340, "epsg", 6340, "NAD83(2011) / UTM zone 11N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 11N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-117],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"6340\"]]"); p = add_epsg_def_ex (filter, first, last, 6341, "epsg", 6341, "NAD83(2011) / UTM zone 12N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 12N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-111],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"6341\"]]"); } #endif /* full EPSG initialization enabled/disabled */ �����������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_40.c��������������������������������������������������0000664�0001750�0001750�00000556555�12544707704�017060� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_40 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 27224, "epsg", 27224, "NZGD49 / Mount Pleasant Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-43.59063758333333 +lon_0=172.7271935"); add_proj4text (p, 1, "833333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Mount Pleasant Circuit\",GEOGCS[\"NZGD"); add_srs_wkt (p, 1, "49\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID["); add_srs_wkt (p, 2, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5"); add_srs_wkt (p, 4, "993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",-43.59063758333333],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",172.7271935833333],PARAMETER[\"scale_fac"); add_srs_wkt (p, 11, "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); add_srs_wkt (p, 14, ",EAST],AUTHORITY[\"EPSG\",\"27224\"]]"); p = add_epsg_def_ex (filter, first, last, 27225, "epsg", 27225, "NZGD49 / Gawler Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-43.74871155555556 +lon_0=171.3607484"); add_proj4text (p, 1, "722222 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Gawler Circuit\",GEOGCS[\"NZGD49\",DAT"); add_srs_wkt (p, 1, "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",-43.74871155555556],PARAMETER[\"central_me"); add_srs_wkt (p, 10, "ridian\",171.3607484722222],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",300000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"27225\"]]"); p = add_epsg_def_ex (filter, first, last, 27226, "epsg", 27226, "NZGD49 / Timaru Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-44.40222036111111 +lon_0=171.0572508"); add_proj4text (p, 1, "333333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Timaru Circuit\",GEOGCS[\"NZGD49\",DAT"); add_srs_wkt (p, 1, "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",-44.40222036111111],PARAMETER[\"central_me"); add_srs_wkt (p, 10, "ridian\",171.0572508333333],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",300000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"27226\"]]"); p = add_epsg_def_ex (filter, first, last, 27227, "epsg", 27227, "NZGD49 / Lindis Peak Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-44.73526797222222 +lon_0=169.4677550"); add_proj4text (p, 1, "833333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Lindis Peak Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",-44.73526797222222],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",169.4677550833333],PARAMETER[\"scale_factor"); add_srs_wkt (p, 11, "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 14, "EAST],AUTHORITY[\"EPSG\",\"27227\"]]"); p = add_epsg_def_ex (filter, first, last, 27228, "epsg", 27228, "NZGD49 / Mount Nicholas Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-45.13290258333333 +lon_0=168.3986411"); add_proj4text (p, 1, "944444 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Mount Nicholas Circuit\",GEOGCS[\"NZGD"); add_srs_wkt (p, 1, "49\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID["); add_srs_wkt (p, 2, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5"); add_srs_wkt (p, 4, "993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",-45.13290258333333],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",168.3986411944444],PARAMETER[\"scale_fac"); add_srs_wkt (p, 11, "tor\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); add_srs_wkt (p, 14, ",EAST],AUTHORITY[\"EPSG\",\"27228\"]]"); p = add_epsg_def_ex (filter, first, last, 27229, "epsg", 27229, "NZGD49 / Mount York Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-45.56372616666666 +lon_0=167.7388617"); add_proj4text (p, 1, "777778 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Mount York Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",-45.56372616666666],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",167.7388617777778],PARAMETER[\"scale_factor"); add_srs_wkt (p, 11, "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 14, "EAST],AUTHORITY[\"EPSG\",\"27229\"]]"); p = add_epsg_def_ex (filter, first, last, 27230, "epsg", 27230, "NZGD49 / Observation Point Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-45.81619661111111 +lon_0=170.6285951"); add_proj4text (p, 1, "666667 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Observation Point Circuit\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ZGD49\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHERO"); add_srs_wkt (p, 2, "ID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-"); add_srs_wkt (p, 4, "4.5993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 7, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4272\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",-45.81619661111111],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",170.6285951666667],PARAMETER[\"scale_"); add_srs_wkt (p, 11, "factor\",1],PARAMETER[\"false_easting\",300000],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); add_srs_wkt (p, 14, "ing\",EAST],AUTHORITY[\"EPSG\",\"27230\"]]"); p = add_epsg_def_ex (filter, first, last, 27231, "epsg", 27231, "NZGD49 / North Taieri Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-45.86151336111111 +lon_0=170.2825891"); add_proj4text (p, 1, "111111 +k=0.99996 +x_0=300000 +y_0=700000 +ellps=intl +t"); add_proj4text (p, 2, "owgs84=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units"); add_proj4text (p, 3, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / North Taieri Circuit\",GEOGCS[\"NZGD49"); add_srs_wkt (p, 1, "\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599"); add_srs_wkt (p, 4, "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 8, "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",-45.86151336111111],PARAMETER[\"cent"); add_srs_wkt (p, 10, "ral_meridian\",170.2825891111111],PARAMETER[\"scale_fact"); add_srs_wkt (p, 11, "or\",0.99996],PARAMETER[\"false_easting\",300000],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Ea"); add_srs_wkt (p, 14, "sting\",EAST],AUTHORITY[\"EPSG\",\"27231\"]]"); p = add_epsg_def_ex (filter, first, last, 27232, "epsg", 27232, "NZGD49 / Bluff Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-46.60000961111111 +lon_0=168.342872 "); add_proj4text (p, 1, "+k=1 +x_0=300002.66 +y_0=699999.58 +ellps=intl +towgs84="); add_proj4text (p, 2, "59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Bluff Circuit\",GEOGCS[\"NZGD49\",DATU"); add_srs_wkt (p, 1, "M[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",-46.60000961111111],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",168.342872],PARAMETER[\"scale_factor\",1],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",300002.66],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",699999.58],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"27232\"]]"); p = add_epsg_def_ex (filter, first, last, 27258, "epsg", 27258, "NZGD49 / UTM zone 58S", 0, 0, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=intl +towgs84=59.47,-5."); add_proj4text (p, 1, "04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / UTM zone 58S\",GEOGCS[\"NZGD49\",DATUM"); add_srs_wkt (p, 1, "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",165],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2725"); add_srs_wkt (p, 14, "8\"]]"); p = add_epsg_def_ex (filter, first, last, 27259, "epsg", 27259, "NZGD49 / UTM zone 59S", 0, 0, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=59 +south +ellps=intl +towgs84=59.47,-5."); add_proj4text (p, 1, "04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / UTM zone 59S\",GEOGCS[\"NZGD49\",DATUM"); add_srs_wkt (p, 1, "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",171],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2725"); add_srs_wkt (p, 14, "9\"]]"); p = add_epsg_def_ex (filter, first, last, 27260, "epsg", 27260, "NZGD49 / UTM zone 60S", 0, 0, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=60 +south +ellps=intl +towgs84=59.47,-5."); add_proj4text (p, 1, "04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / UTM zone 60S\",GEOGCS[\"NZGD49\",DATUM"); add_srs_wkt (p, 1, "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",177],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2726"); add_srs_wkt (p, 14, "0\"]]"); p = add_epsg_def_ex (filter, first, last, 27291, "epsg", 27291, "NZGD49 / North Island Grid", 0, 0, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "British yard (Sears 1922)", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-39 +lon_0=175.5 +k=1 +x_0=274319.524"); add_proj4text (p, 1, "3848086 +y_0=365759.3658464114 +ellps=intl +towgs84=59.4"); add_proj4text (p, 2, "7,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +to_meter=0.91439"); add_proj4text (p, 3, "84146160287 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / North Island Grid\",GEOGCS[\"NZGD49\","); add_srs_wkt (p, 1, "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int"); add_srs_wkt (p, 2, "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",-39],PARAMETER[\"central_meridian\",175."); add_srs_wkt (p, 10, "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",300000],PARAMETER[\"false_northing\",400000],UNIT[\""); add_srs_wkt (p, 12, "British yard (Sears 1922)\",0.9143984146160287,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9040\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 14, "ing\",NORTH],AUTHORITY[\"EPSG\",\"27291\"]]"); p = add_epsg_def_ex (filter, first, last, 27292, "epsg", 27292, "NZGD49 / South Island Grid", 0, 0, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "British yard (Sears 1922)", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-44 +lon_0=171.5 +k=1 +x_0=457199.207"); add_proj4text (p, 1, "3080143 +y_0=457199.2073080143 +ellps=intl +towgs84=59.4"); add_proj4text (p, 2, "7,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +to_meter=0.91439"); add_proj4text (p, 3, "84146160287 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / South Island Grid\",GEOGCS[\"NZGD49\","); add_srs_wkt (p, 1, "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int"); add_srs_wkt (p, 2, "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",-44],PARAMETER[\"central_meridian\",171."); add_srs_wkt (p, 10, "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",500000],PARAMETER[\"false_northing\",500000],UNIT[\""); add_srs_wkt (p, 12, "British yard (Sears 1922)\",0.9143984146160287,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9040\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 14, "ing\",NORTH],AUTHORITY[\"EPSG\",\"27292\"]]"); p = add_epsg_def_ex (filter, first, last, 27391, "epsg", 27391, "NGO 1948 (Oslo) / NGO zone I", 0, 1, "Bessel Modified", "Oslo", "NGO_1948_Oslo", "Transverse_Mercator", "metre", "x", "North", "y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=-4.666666666666667 +k=1 +x_"); add_proj4text (p, 1, "0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84="); add_proj4text (p, 2, "278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGO 1948 (Oslo) / NGO zone I\",GEOGCS[\"NGO 194"); add_srs_wkt (p, 1, "8 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mod"); add_srs_wkt (p, 2, "ified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "5\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.72291666666"); add_srs_wkt (p, 5, "667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.0174"); add_srs_wkt (p, 6, "532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitu"); add_srs_wkt (p, 7, "de\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 8, "\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 9, "[\"latitude_of_origin\",58],PARAMETER[\"central_meridian"); add_srs_wkt (p, 10, "\",-4.666666666666667],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"27391"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 27392, "epsg", 27392, "NGO 1948 (Oslo) / NGO zone II", 0, 1, "Bessel Modified", "Oslo", "NGO_1948_Oslo", "Transverse_Mercator", "metre", "x", "North", "y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=-2.333333333333333 +k=1 +x_"); add_proj4text (p, 1, "0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84="); add_proj4text (p, 2, "278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGO 1948 (Oslo) / NGO zone II\",GEOGCS[\"NGO 19"); add_srs_wkt (p, 1, "48 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mo"); add_srs_wkt (p, 2, "dified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "05\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.7229166666"); add_srs_wkt (p, 5, "6667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 7, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",58],PARAMETER[\"central_meridia"); add_srs_wkt (p, 10, "n\",-2.333333333333333],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"27392"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 27393, "epsg", 27393, "NGO 1948 (Oslo) / NGO zone III", 0, 1, "Bessel Modified", "Oslo", "NGO_1948_Oslo", "Transverse_Mercator", "metre", "x", "North", "y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=637"); add_proj4text (p, 1, "7492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7."); add_proj4text (p, 2, "889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGO 1948 (Oslo) / NGO zone III\",GEOGCS[\"NGO 1"); add_srs_wkt (p, 1, "948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel M"); add_srs_wkt (p, 2, "odified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.722916666"); add_srs_wkt (p, 5, "66667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",58],PARAMETER[\"central_meridia"); add_srs_wkt (p, 10, "n\",0],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXI"); add_srs_wkt (p, 13, "S[\"y\",EAST],AUTHORITY[\"EPSG\",\"27393\"]]"); p = add_epsg_def_ex (filter, first, last, 27394, "epsg", 27394, "NGO 1948 (Oslo) / NGO zone IV", 0, 1, "Bessel Modified", "Oslo", "NGO_1948_Oslo", "Transverse_Mercator", "metre", "x", "North", "y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=2.5 +k=1 +x_0=0 +y_0=0 +a=6"); add_proj4text (p, 1, "377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,"); add_proj4text (p, 2, "7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGO 1948 (Oslo) / NGO zone IV\",GEOGCS[\"NGO 19"); add_srs_wkt (p, 1, "48 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mo"); add_srs_wkt (p, 2, "dified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "05\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.7229166666"); add_srs_wkt (p, 5, "6667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 7, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",58],PARAMETER[\"central_meridia"); add_srs_wkt (p, 10, "n\",2.5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],A"); add_srs_wkt (p, 13, "XIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"27394\"]]"); p = add_epsg_def_ex (filter, first, last, 27395, "epsg", 27395, "NGO 1948 (Oslo) / NGO zone V", 0, 1, "Bessel Modified", "Oslo", "NGO_1948_Oslo", "Transverse_Mercator", "metre", "x", "North", "y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=6.166666666666667 +k=1 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2"); add_proj4text (p, 2, "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGO 1948 (Oslo) / NGO zone V\",GEOGCS[\"NGO 194"); add_srs_wkt (p, 1, "8 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mod"); add_srs_wkt (p, 2, "ified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "5\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.72291666666"); add_srs_wkt (p, 5, "667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.0174"); add_srs_wkt (p, 6, "532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitu"); add_srs_wkt (p, 7, "de\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 8, "\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER"); add_srs_wkt (p, 9, "[\"latitude_of_origin\",58],PARAMETER[\"central_meridian"); add_srs_wkt (p, 10, "\",6.166666666666667],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",0],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"27395\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 27396, "epsg", 27396, "NGO 1948 (Oslo) / NGO zone VI", 0, 1, "Bessel Modified", "Oslo", "NGO_1948_Oslo", "Transverse_Mercator", "metre", "x", "North", "y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=10.16666666666667 +k=1 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2"); add_proj4text (p, 2, "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGO 1948 (Oslo) / NGO zone VI\",GEOGCS[\"NGO 19"); add_srs_wkt (p, 1, "48 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel Mo"); add_srs_wkt (p, 2, "dified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "05\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.7229166666"); add_srs_wkt (p, 5, "6667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 7, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",58],PARAMETER[\"central_meridia"); add_srs_wkt (p, 10, "n\",10.16666666666667],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"27396"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 27397, "epsg", 27397, "NGO 1948 (Oslo) / NGO zone VII", 0, 1, "Bessel Modified", "Oslo", "NGO_1948_Oslo", "Transverse_Mercator", "metre", "x", "North", "y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=14.16666666666667 +k=1 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2"); add_proj4text (p, 2, "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGO 1948 (Oslo) / NGO zone VII\",GEOGCS[\"NGO 1"); add_srs_wkt (p, 1, "948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel M"); add_srs_wkt (p, 2, "odified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.722916666"); add_srs_wkt (p, 5, "66667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",58],PARAMETER[\"central_meridia"); add_srs_wkt (p, 10, "n\",14.16666666666667],PARAMETER[\"scale_factor\",1],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"27397"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 27398, "epsg", 27398, "NGO 1948 (Oslo) / NGO zone VIII", 0, 1, "Bessel Modified", "Oslo", "NGO_1948_Oslo", "Transverse_Mercator", "metre", "x", "North", "y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=18.33333333333333 +k=1 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=2"); add_proj4text (p, 2, "78.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NGO 1948 (Oslo) / NGO zone VIII\",GEOGCS[\"NGO "); add_srs_wkt (p, 1, "1948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHEROID[\"Bessel "); add_srs_wkt (p, 2, "Modified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\",10.72291666"); add_srs_wkt (p, 5, "666667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4817\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",58],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",18.33333333333333],PARAMETER[\"scale_factor\",1],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",0],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"273"); add_srs_wkt (p, 14, "98\"]]"); p = add_epsg_def_ex (filter, first, last, 27429, "epsg", 27429, "Datum 73 / UTM zone 29N", 0, 0, "International 1924", "Greenwich", "Datum_73", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=intl +towgs84=-223.237,110.193"); add_proj4text (p, 1, ",36.649,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Datum 73 / UTM zone 29N\",GEOGCS[\"Datum 73\",D"); add_srs_wkt (p, 1, "ATUM[\"Datum_73\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 2, "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-223.237,110"); add_srs_wkt (p, 3, ".193,36.649,0,0,0,0],AUTHORITY[\"EPSG\",\"6274\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"4274\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-9],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"27429\"]]"); p = add_epsg_def_ex (filter, first, last, 27492, "epsg", 27492, "Datum 73 / Modified Portuguese Grid (deprecated)", 0, 1, "International 1924", "Greenwich", "Datum_73", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111"); add_proj4text (p, 1, "111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps="); add_proj4text (p, 2, "intl +towgs84=-223.237,110.193,36.649,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Datum 73 / Modified Portuguese Grid (deprecated"); add_srs_wkt (p, 1, ")\",GEOGCS[\"Datum 73\",DATUM[\"Datum_73\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-223.237,110.193,36.649,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6274\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4274\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",39.66666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-8.131906111111112],PARAMETER[\"scale_factor\",1],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",180.598],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",-86.99],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"27492\"]]"); p = add_epsg_def_ex (filter, first, last, 27493, "epsg", 27493, "Datum 73 / Modified Portuguese Grid", 0, 0, "International 1924", "Greenwich", "Datum_73", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111"); add_proj4text (p, 1, "111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps="); add_proj4text (p, 2, "intl +towgs84=-223.237,110.193,36.649,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Datum 73 / Modified Portuguese Grid\",GEOGCS[\""); add_srs_wkt (p, 1, "Datum 73\",DATUM[\"Datum_73\",SPHEROID[\"International 1"); add_srs_wkt (p, 2, "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); add_srs_wkt (p, 3, "-223.237,110.193,36.649,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, "74\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4274\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",39.6666"); add_srs_wkt (p, 9, "6666666666],PARAMETER[\"central_meridian\",-8.1319061111"); add_srs_wkt (p, 10, "11112],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",180.598],PARAMETER[\"false_northing\",-86.99],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"27493\"]]"); p = add_epsg_def_ex (filter, first, last, 27500, "epsg", 27500, "ATF (Paris) / Nord de Guerre", 0, 0, "Plessis 1817", "Paris RGS", "Ancienne_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); add_proj4text (p, 1, "001 +lon_0=5.4 +k_0=0.99950908 +x_0=500000 +y_0=300000 +"); add_proj4text (p, 2, "a=6376523 +b=6355862.933255573 +pm=2.337208333333333 +un"); add_proj4text (p, 3, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ATF (Paris) / Nord de Guerre\",GEOGCS[\"ATF (Pa"); add_srs_wkt (p, 1, "ris)\",DATUM[\"Ancienne_Triangulation_Francaise_Paris\","); add_srs_wkt (p, 2, "SPHEROID[\"Plessis 1817\",6376523,308.64,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7027\"]],AUTHORITY[\"EPSG\",\"6901\"]],PRIMEM[\"Pa"); add_srs_wkt (p, 4, "ris RGS\",2.337208333333333,AUTHORITY[\"EPSG\",\"8914\"]"); add_srs_wkt (p, 5, "],UNIT[\"grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9105\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4901\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",55"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",6],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.99950908],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",300000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"27500\"]]"); p = add_epsg_def_ex (filter, first, last, 27561, "epsg", 27561, "NTF (Paris) / Lambert Nord France", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a"); add_proj4text (p, 2, "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm="); add_proj4text (p, 3, "paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Lambert Nord France\",GEOGCS[\"NT"); add_srs_wkt (p, 1, "F (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Par"); add_srs_wkt (p, 2, "is\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.466021"); add_srs_wkt (p, 3, "2936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,3"); add_srs_wkt (p, 4, "20,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris"); add_srs_wkt (p, 5, "\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\""); add_srs_wkt (p, 6, ",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS["); add_srs_wkt (p, 7, "\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\""); add_srs_wkt (p, 8, "EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic_1"); add_srs_wkt (p, 9, "SP\"],PARAMETER[\"latitude_of_origin\",55],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",0],PARAMETER[\"scale_factor\",0.999877"); add_srs_wkt (p, 11, "341],PARAMETER[\"false_easting\",600000],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_northing\",200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"27561\"]]"); p = add_epsg_def_ex (filter, first, last, 27562, "epsg", 27562, "NTF (Paris) / Lambert Centre France", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); add_proj4text (p, 1, "42 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towg"); add_proj4text (p, 2, "s84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Lambert Centre France\",GEOGCS[\""); add_srs_wkt (p, 1, "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P"); add_srs_wkt (p, 2, "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660"); add_srs_wkt (p, 3, "212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60"); add_srs_wkt (p, 4, ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par"); add_srs_wkt (p, 5, "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra"); add_srs_wkt (p, 6, "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AX"); add_srs_wkt (p, 7, "IS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORIT"); add_srs_wkt (p, 8, "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 9, "ic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 11, "987742],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",200000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"27562\"]]"); p = add_epsg_def_ex (filter, first, last, 27563, "epsg", 27563, "NTF (Paris) / Lambert Sud France", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a"); add_proj4text (p, 2, "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm="); add_proj4text (p, 3, "paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Lambert Sud France\",GEOGCS[\"NTF"); add_srs_wkt (p, 1, " (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Pari"); add_srs_wkt (p, 2, "s\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212"); add_srs_wkt (p, 3, "936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,32"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\""); add_srs_wkt (p, 5, ",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\","); add_srs_wkt (p, 6, "0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic_1S"); add_srs_wkt (p, 9, "P\"],PARAMETER[\"latitude_of_origin\",49],PARAMETER[\"ce"); add_srs_wkt (p, 10, "ntral_meridian\",0],PARAMETER[\"scale_factor\",0.9998774"); add_srs_wkt (p, 11, "99],PARAMETER[\"false_easting\",600000],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"27563\"]]"); p = add_epsg_def_ex (filter, first, last, 27564, "epsg", 27564, "NTF (Paris) / Lambert Corse", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.36"); add_proj4text (p, 2, "9 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 "); add_proj4text (p, 3, "+pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Lambert Corse\",GEOGCS[\"NTF (Par"); add_srs_wkt (p, 1, "is)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\",S"); add_srs_wkt (p, 2, "PHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.466021293626"); add_srs_wkt (p, 3, "9,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2.3"); add_srs_wkt (p, 5, "3722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.01"); add_srs_wkt (p, 6, "570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\""); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",46.85],PARAMETER[\"ce"); add_srs_wkt (p, 10, "ntral_meridian\",0],PARAMETER[\"scale_factor\",0.9999447"); add_srs_wkt (p, 11, "1],PARAMETER[\"false_easting\",234.358],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",185861.369],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"27564\"]]"); p = add_epsg_def_ex (filter, first, last, 27571, "epsg", 27571, "NTF (Paris) / Lambert zone I", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +"); add_proj4text (p, 2, "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); add_proj4text (p, 3, "=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Lambert zone I\",GEOGCS[\"NTF (Pa"); add_srs_wkt (p, 1, "ris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\","); add_srs_wkt (p, 2, "SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602129362"); add_srs_wkt (p, 3, "69,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2."); add_srs_wkt (p, 5, "33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.0"); add_srs_wkt (p, 6, "1570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\""); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",55],PARAMETER[\"centr"); add_srs_wkt (p, 10, "al_meridian\",0],PARAMETER[\"scale_factor\",0.999877341]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",600000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",1200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"27571\"]]"); p = add_epsg_def_ex (filter, first, last, 27572, "epsg", 27572, "NTF (Paris) / Lambert zone II", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); add_proj4text (p, 1, "42 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +tow"); add_proj4text (p, 2, "gs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Lambert zone II\",GEOGCS[\"NTF (P"); add_srs_wkt (p, 1, "aris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\""); add_srs_wkt (p, 2, ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); add_srs_wkt (p, 3, "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2"); add_srs_wkt (p, 5, ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0."); add_srs_wkt (p, 6, "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP"); add_srs_wkt (p, 9, "\"],PARAMETER[\"latitude_of_origin\",52],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",0],PARAMETER[\"scale_factor\",0.99987742"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",600000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",2200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"27572\"]]"); p = add_epsg_def_ex (filter, first, last, 27573, "epsg", 27573, "NTF (Paris) / Lambert zone III", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +"); add_proj4text (p, 2, "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); add_proj4text (p, 3, "=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Lambert zone III\",GEOGCS[\"NTF ("); add_srs_wkt (p, 1, "Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\""); add_srs_wkt (p, 2, ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); add_srs_wkt (p, 3, "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2"); add_srs_wkt (p, 5, ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0."); add_srs_wkt (p, 6, "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP"); add_srs_wkt (p, 9, "\"],PARAMETER[\"latitude_of_origin\",49],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",0],PARAMETER[\"scale_factor\",0.99987749"); add_srs_wkt (p, 11, "9],PARAMETER[\"false_easting\",600000],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",3200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"27573\"]]"); p = add_epsg_def_ex (filter, first, last, 27574, "epsg", 27574, "NTF (Paris) / Lambert zone IV", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.3"); add_proj4text (p, 2, "69 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0"); add_proj4text (p, 3, " +pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Lambert zone IV\",GEOGCS[\"NTF (P"); add_srs_wkt (p, 1, "aris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\""); add_srs_wkt (p, 2, ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); add_srs_wkt (p, 3, "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2"); add_srs_wkt (p, 5, ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0."); add_srs_wkt (p, 6, "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP"); add_srs_wkt (p, 9, "\"],PARAMETER[\"latitude_of_origin\",46.85],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",0],PARAMETER[\"scale_factor\",0.99994"); add_srs_wkt (p, 11, "471],PARAMETER[\"false_easting\",234.358],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",4185861.369],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"27574\"]]"); p = add_epsg_def_ex (filter, first, last, 27581, "epsg", 27581, "NTF (Paris) / France I (deprecated)", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +"); add_proj4text (p, 2, "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); add_proj4text (p, 3, "=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / France I (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P"); add_srs_wkt (p, 2, "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660"); add_srs_wkt (p, 3, "212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60"); add_srs_wkt (p, 4, ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par"); add_srs_wkt (p, 5, "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra"); add_srs_wkt (p, 6, "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AX"); add_srs_wkt (p, 7, "IS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORIT"); add_srs_wkt (p, 8, "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 9, "ic_1SP\"],PARAMETER[\"latitude_of_origin\",55],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 11, "9877341],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",1200000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"27581\"]]"); p = add_epsg_def_ex (filter, first, last, 27582, "epsg", 27582, "NTF (Paris) / France II (deprecated)", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); add_proj4text (p, 1, "42 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +tow"); add_proj4text (p, 2, "gs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / France II (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P"); add_srs_wkt (p, 2, "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660"); add_srs_wkt (p, 3, "212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60"); add_srs_wkt (p, 4, ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par"); add_srs_wkt (p, 5, "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra"); add_srs_wkt (p, 6, "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AX"); add_srs_wkt (p, 7, "IS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORIT"); add_srs_wkt (p, 8, "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 9, "ic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 11, "987742],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",2200000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"27582\"]]"); p = add_epsg_def_ex (filter, first, last, 27583, "epsg", 27583, "NTF (Paris) / France III (deprecated)", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +"); add_proj4text (p, 2, "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); add_proj4text (p, 3, "=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / France III (deprecated)\",GEOGCS["); add_srs_wkt (p, 1, "\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise"); add_srs_wkt (p, 2, "_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46"); add_srs_wkt (p, 3, "60212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-"); add_srs_wkt (p, 4, "60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"P"); add_srs_wkt (p, 5, "aris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"g"); add_srs_wkt (p, 6, "rad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],"); add_srs_wkt (p, 7, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 8, "ITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 9, "onic_1SP\"],PARAMETER[\"latitude_of_origin\",49],PARAMET"); add_srs_wkt (p, 10, "ER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 11, "999877499],PARAMETER[\"false_easting\",600000],PARAMETER"); add_srs_wkt (p, 12, "[\"false_northing\",3200000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"27583\"]]"); p = add_epsg_def_ex (filter, first, last, 27584, "epsg", 27584, "NTF (Paris) / France IV (deprecated)", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.3"); add_proj4text (p, 2, "69 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0"); add_proj4text (p, 3, " +pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / France IV (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P"); add_srs_wkt (p, 2, "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660"); add_srs_wkt (p, 3, "212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60"); add_srs_wkt (p, 4, ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par"); add_srs_wkt (p, 5, "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra"); add_srs_wkt (p, 6, "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AX"); add_srs_wkt (p, 7, "IS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORIT"); add_srs_wkt (p, 8, "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 9, "ic_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 11, ".99994471],PARAMETER[\"false_easting\",234.358],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",4185861.369],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"27584\"]]"); p = add_epsg_def_ex (filter, first, last, 27591, "epsg", 27591, "NTF (Paris) / Nord France (deprecated)", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a"); add_proj4text (p, 2, "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm="); add_proj4text (p, 3, "paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Nord France (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francais"); add_srs_wkt (p, 2, "e_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4"); add_srs_wkt (p, 3, "660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,"); add_srs_wkt (p, 4, "-60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\""); add_srs_wkt (p, 5, "Paris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\""); add_srs_wkt (p, 6, "grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]]"); add_srs_wkt (p, 7, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 8, "RITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_"); add_srs_wkt (p, 9, "Conic_1SP\"],PARAMETER[\"latitude_of_origin\",55],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 11, ".999877341],PARAMETER[\"false_easting\",600000],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"27591\"]]"); p = add_epsg_def_ex (filter, first, last, 27592, "epsg", 27592, "NTF (Paris) / Centre France (deprecated)", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); add_proj4text (p, 1, "42 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towg"); add_proj4text (p, 2, "s84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Centre France (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Franca"); add_srs_wkt (p, 2, "ise_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293"); add_srs_wkt (p, 3, ".4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-16"); add_srs_wkt (p, 4, "8,-60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM["); add_srs_wkt (p, 5, "\"Paris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT["); add_srs_wkt (p, 6, "\"grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 9, "l_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PARA"); add_srs_wkt (p, 10, "METER[\"central_meridian\",0],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 11, ",0.99987742],PARAMETER[\"false_easting\",600000],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"27592\"]]"); p = add_epsg_def_ex (filter, first, last, 27593, "epsg", 27593, "NTF (Paris) / Sud France (deprecated)", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a"); add_proj4text (p, 2, "=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm="); add_proj4text (p, 3, "paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Sud France (deprecated)\",GEOGCS["); add_srs_wkt (p, 1, "\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise"); add_srs_wkt (p, 2, "_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46"); add_srs_wkt (p, 3, "60212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-"); add_srs_wkt (p, 4, "60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"P"); add_srs_wkt (p, 5, "aris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"g"); add_srs_wkt (p, 6, "rad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],"); add_srs_wkt (p, 7, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 8, "ITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 9, "onic_1SP\"],PARAMETER[\"latitude_of_origin\",49],PARAMET"); add_srs_wkt (p, 10, "ER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 11, "999877499],PARAMETER[\"false_easting\",600000],PARAMETER"); add_srs_wkt (p, 12, "[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"27593\"]]"); p = add_epsg_def_ex (filter, first, last, 27594, "epsg", 27594, "NTF (Paris) / Corse (deprecated)", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.36"); add_proj4text (p, 2, "9 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 "); add_proj4text (p, 3, "+pm=paris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NTF (Paris) / Corse (deprecated)\",GEOGCS[\"NTF"); add_srs_wkt (p, 1, " (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Pari"); add_srs_wkt (p, 2, "s\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212"); add_srs_wkt (p, 3, "936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,32"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\""); add_srs_wkt (p, 5, ",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\","); add_srs_wkt (p, 6, "0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic_1S"); add_srs_wkt (p, 9, "P\"],PARAMETER[\"latitude_of_origin\",46.85],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",0],PARAMETER[\"scale_factor\",0.99994"); add_srs_wkt (p, 11, "471],PARAMETER[\"false_easting\",234.358],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",185861.369],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"27594\"]]"); p = add_epsg_def_ex (filter, first, last, 27700, "epsg", 27700, "OSGB 1936 / British National Grid", 0, 0, "Airy 1830", "Greenwich", "OSGB_1936", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400"); add_proj4text (p, 1, "000 +y_0=-100000 +ellps=airy +towgs84=446.448,-125.157,5"); add_proj4text (p, 2, "42.06,0.15,0.247,0.842,-20.489 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"OSGB 1936 / British National Grid\",GEOGCS[\"OS"); add_srs_wkt (p, 1, "GB 1936\",DATUM[\"OSGB_1936\",SPHEROID[\"Airy 1830\",637"); add_srs_wkt (p, 2, "7563.396,299.3249646,AUTHORITY[\"EPSG\",\"7001\"]],TOWGS"); add_srs_wkt (p, 3, "84[446.448,-125.157,542.06,0.15,0.247,0.842,-20.489],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6277\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4277\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",49],PARAMETER[\"central_meridian\",-2],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996012717],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",400000],PARAMETER[\"false_northing\",-100000],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 13, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"27700\"]]"); p = add_epsg_def_ex (filter, first, last, 28191, "epsg", 28191, "Palestine 1923 / Palestine Grid", 0, 0, "Clarke 1880 (Benoit)", "Greenwich", "Palestine_1923", "Cassini_Soldner", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=cass +lat_0=31.73409694444445 +lon_0=35.2120805555"); add_proj4text (p, 1, "5556 +x_0=170251.555 +y_0=126867.909 +a=6378300.789 +b=6"); add_proj4text (p, 2, "356566.435 +towgs84=-275.7224,94.7824,340.8944,-8.001,-4"); add_proj4text (p, 3, ".42,-11.821,1 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Palestine 1923 / Palestine Grid\",GEOGCS[\"Pale"); add_srs_wkt (p, 1, "stine 1923\",DATUM[\"Palestine_1923\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1880 (Benoit)\",6378300.789,293.4663155389811,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7010\"]],TOWGS84[-275.7224,94.7824,340.8944,-"); add_srs_wkt (p, 4, "8.001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6281\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4281\"]],PROJECTION[\"Cassini_Soldner\""); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",31.73409694444445],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",35.21208055555556],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",170251.555],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",126867.909],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"28191\"]]"); p = add_epsg_def_ex (filter, first, last, 28192, "epsg", 28192, "Palestine 1923 / Palestine Belt", 0, 0, "Clarke 1880 (Benoit)", "Greenwich", "Palestine_1923", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31.73409694444445 +lon_0=35.212080555"); add_proj4text (p, 1, "55556 +k=1 +x_0=170251.555 +y_0=1126867.909 +a=6378300.7"); add_proj4text (p, 2, "89 +b=6356566.435 +towgs84=-275.7224,94.7824,340.8944,-8"); add_proj4text (p, 3, ".001,-4.42,-11.821,1 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Palestine 1923 / Palestine Belt\",GEOGCS[\"Pale"); add_srs_wkt (p, 1, "stine 1923\",DATUM[\"Palestine_1923\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1880 (Benoit)\",6378300.789,293.4663155389811,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7010\"]],TOWGS84[-275.7224,94.7824,340.8944,-"); add_srs_wkt (p, 4, "8.001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6281\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4281\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",31.73409694444445"); add_srs_wkt (p, 10, "],PARAMETER[\"central_meridian\",35.21208055555556],PARA"); add_srs_wkt (p, 11, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",17"); add_srs_wkt (p, 12, "0251.555],PARAMETER[\"false_northing\",1126867.909],UNIT"); add_srs_wkt (p, 13, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 14, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "28192\"]]"); p = add_epsg_def_ex (filter, first, last, 28193, "epsg", 28193, "Palestine 1923 / Israeli CS Grid", 0, 0, "Clarke 1880 (Benoit)", "Greenwich", "Palestine_1923", "Cassini_Soldner", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=cass +lat_0=31.73409694444445 +lon_0=35.2120805555"); add_proj4text (p, 1, "5556 +x_0=170251.555 +y_0=1126867.909 +a=6378300.789 +b="); add_proj4text (p, 2, "6356566.435 +towgs84=-275.7224,94.7824,340.8944,-8.001,-"); add_proj4text (p, 3, "4.42,-11.821,1 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Palestine 1923 / Israeli CS Grid\",GEOGCS[\"Pal"); add_srs_wkt (p, 1, "estine 1923\",DATUM[\"Palestine_1923\",SPHEROID[\"Clarke"); add_srs_wkt (p, 2, " 1880 (Benoit)\",6378300.789,293.4663155389811,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7010\"]],TOWGS84[-275.7224,94.7824,340.8944,"); add_srs_wkt (p, 4, "-8.001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\"6281\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4281\"]],PROJECTION[\"Cassini_Soldner\""); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",31.73409694444445],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",35.21208055555556],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",170251.555],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",1126867.909],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"28193\"]]"); p = add_epsg_def_ex (filter, first, last, 28232, "epsg", 28232, "Pointe Noire / UTM zone 32S", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Congo_1960_Pointe_Noire", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +towgs"); add_proj4text (p, 1, "84=-148,51,-291,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pointe Noire / UTM zone 32S\",GEOGCS[\"Pointe N"); add_srs_wkt (p, 1, "oire\",DATUM[\"Congo_1960_Pointe_Noire\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7011\"]],TOWGS84[-148,51,-291,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6282\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4282\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"28232\"]]"); p = add_epsg_def_ex (filter, first, last, 28348, "epsg", 28348, "GDA94 / MGA zone 48", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 48\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",105],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"28348\"]]"); p = add_epsg_def_ex (filter, first, last, 28349, "epsg", 28349, "GDA94 / MGA zone 49", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=49 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 49\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",111],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"28349\"]]"); p = add_epsg_def_ex (filter, first, last, 28350, "epsg", 28350, "GDA94 / MGA zone 50", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 50\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",117],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"28350\"]]"); p = add_epsg_def_ex (filter, first, last, 28351, "epsg", 28351, "GDA94 / MGA zone 51", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=51 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 51\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",123],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"28351\"]]"); p = add_epsg_def_ex (filter, first, last, 28352, "epsg", 28352, "GDA94 / MGA zone 52", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=52 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 52\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",129],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"28352\"]]"); p = add_epsg_def_ex (filter, first, last, 28353, "epsg", 28353, "GDA94 / MGA zone 53", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=53 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 53\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",135],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"28353\"]]"); p = add_epsg_def_ex (filter, first, last, 28354, "epsg", 28354, "GDA94 / MGA zone 54", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=54 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 54\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",141],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"28354\"]]"); p = add_epsg_def_ex (filter, first, last, 28355, "epsg", 28355, "GDA94 / MGA zone 55", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 55\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",147],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"28355\"]]"); p = add_epsg_def_ex (filter, first, last, 28356, "epsg", 28356, "GDA94 / MGA zone 56", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=56 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 56\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",153],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"28356\"]]"); p = add_epsg_def_ex (filter, first, last, 28357, "epsg", 28357, "GDA94 / MGA zone 57", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 57\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",159],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"28357\"]]"); p = add_epsg_def_ex (filter, first, last, 28358, "epsg", 28358, "GDA94 / MGA zone 58", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 58\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",165],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"28358\"]]"); p = add_epsg_def_ex (filter, first, last, 28402, "epsg", 28402, "Pulkovo 1942 / Gauss-Kruger zone 2 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 2 (deprecated)"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHERO"); add_srs_wkt (p, 2, "ID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"428"); add_srs_wkt (p, 8, "4\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",0],PARAMETER[\"central_meridian\",9],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",2500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"28402\"]]"); p = add_epsg_def_ex (filter, first, last, 28403, "epsg", 28403, "Pulkovo 1942 / Gauss-Kruger zone 3 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 3 (deprecated)"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHERO"); add_srs_wkt (p, 2, "ID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"428"); add_srs_wkt (p, 8, "4\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",0],PARAMETER[\"central_meridian\",15]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",3500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 13, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"28403\"]]"); p = add_epsg_def_ex (filter, first, last, 28404, "epsg", 28404, "Pulkovo 1942 / Gauss-Kruger zone 4", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 4\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",21],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",4500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"28404\"]]"); p = add_epsg_def_ex (filter, first, last, 28405, "epsg", 28405, "Pulkovo 1942 / Gauss-Kruger zone 5", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 5\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",27],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",5500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"28405\"]]"); p = add_epsg_def_ex (filter, first, last, 28406, "epsg", 28406, "Pulkovo 1942 / Gauss-Kruger zone 6", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 6\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",33],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",6500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"28406\"]]"); p = add_epsg_def_ex (filter, first, last, 28407, "epsg", 28407, "Pulkovo 1942 / Gauss-Kruger zone 7", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 7\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",39],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",7500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"28407\"]]"); p = add_epsg_def_ex (filter, first, last, 28408, "epsg", 28408, "Pulkovo 1942 / Gauss-Kruger zone 8", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 8\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",45],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",8500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"28408\"]]"); p = add_epsg_def_ex (filter, first, last, 28409, "epsg", 28409, "Pulkovo 1942 / Gauss-Kruger zone 9", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 9\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",51],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",9500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"28409\"]]"); p = add_epsg_def_ex (filter, first, last, 28410, "epsg", 28410, "Pulkovo 1942 / Gauss-Kruger zone 10", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 10\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",57],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",10500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"28410\"]]"); p = add_epsg_def_ex (filter, first, last, 28411, "epsg", 28411, "Pulkovo 1942 / Gauss-Kruger zone 11", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 11\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",63],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",11500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"28411\"]]"); p = add_epsg_def_ex (filter, first, last, 28412, "epsg", 28412, "Pulkovo 1942 / Gauss-Kruger zone 12", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 12\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",69],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",12500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"28412\"]]"); p = add_epsg_def_ex (filter, first, last, 28413, "epsg", 28413, "Pulkovo 1942 / Gauss-Kruger zone 13", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 13\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",75],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",13500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"28413\"]]"); p = add_epsg_def_ex (filter, first, last, 28414, "epsg", 28414, "Pulkovo 1942 / Gauss-Kruger zone 14", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 14\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",81],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",14500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"28414\"]]"); p = add_epsg_def_ex (filter, first, last, 28415, "epsg", 28415, "Pulkovo 1942 / Gauss-Kruger zone 15", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 15\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",87],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",15500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"28415\"]]"); p = add_epsg_def_ex (filter, first, last, 28416, "epsg", 28416, "Pulkovo 1942 / Gauss-Kruger zone 16", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 16\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",93],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",16500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"28416\"]]"); p = add_epsg_def_ex (filter, first, last, 28417, "epsg", 28417, "Pulkovo 1942 / Gauss-Kruger zone 17", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 17\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",99],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",17500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"28417\"]]"); p = add_epsg_def_ex (filter, first, last, 28418, "epsg", 28418, "Pulkovo 1942 / Gauss-Kruger zone 18", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 18\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",105],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",18500000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"28418\"]]"); p = add_epsg_def_ex (filter, first, last, 28419, "epsg", 28419, "Pulkovo 1942 / Gauss-Kruger zone 19", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 19\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",111],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",19500000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"28419\"]]"); p = add_epsg_def_ex (filter, first, last, 28420, "epsg", 28420, "Pulkovo 1942 / Gauss-Kruger zone 20", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 20\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",117],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",20500000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"28420\"]]"); p = add_epsg_def_ex (filter, first, last, 28421, "epsg", 28421, "Pulkovo 1942 / Gauss-Kruger zone 21", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 21\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",123],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",21500000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"28421\"]]"); p = add_epsg_def_ex (filter, first, last, 28422, "epsg", 28422, "Pulkovo 1942 / Gauss-Kruger zone 22", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 22\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",129],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",22500000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"28422\"]]"); p = add_epsg_def_ex (filter, first, last, 28423, "epsg", 28423, "Pulkovo 1942 / Gauss-Kruger zone 23", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 23\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",135],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",23500000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"28423\"]]"); p = add_epsg_def_ex (filter, first, last, 28424, "epsg", 28424, "Pulkovo 1942 / Gauss-Kruger zone 24", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 24\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",141],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",24500000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"28424\"]]"); p = add_epsg_def_ex (filter, first, last, 28425, "epsg", 28425, "Pulkovo 1942 / Gauss-Kruger zone 25", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 25\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",147],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",25500000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"28425\"]]"); p = add_epsg_def_ex (filter, first, last, 28426, "epsg", 28426, "Pulkovo 1942 / Gauss-Kruger zone 26", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 26\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",153],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",26500000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"28426\"]]"); p = add_epsg_def_ex (filter, first, last, 28427, "epsg", 28427, "Pulkovo 1942 / Gauss-Kruger zone 27", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 27\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",159],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",27500000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"28427\"]]"); p = add_epsg_def_ex (filter, first, last, 28428, "epsg", 28428, "Pulkovo 1942 / Gauss-Kruger zone 28", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=28500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 28\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",165],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",28500000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"28428\"]]"); p = add_epsg_def_ex (filter, first, last, 28429, "epsg", 28429, "Pulkovo 1942 / Gauss-Kruger zone 29", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=29500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 29\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",171],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",29500000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"28429\"]]"); p = add_epsg_def_ex (filter, first, last, 28430, "epsg", 28430, "Pulkovo 1942 / Gauss-Kruger zone 30", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 30\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",177],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",30500000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"28430\"]]"); p = add_epsg_def_ex (filter, first, last, 28431, "epsg", 28431, "Pulkovo 1942 / Gauss-Kruger zone 31", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 31\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",-177],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",1],PARAMETER[\"false_easting\",3150000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 13, "AST],AUTHORITY[\"EPSG\",\"28431\"]]"); p = add_epsg_def_ex (filter, first, last, 28432, "epsg", 28432, "Pulkovo 1942 / Gauss-Kruger zone 32", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger zone 32\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",-171],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",1],PARAMETER[\"false_easting\",3250000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 13, "AST],AUTHORITY[\"EPSG\",\"28432\"]]"); p = add_epsg_def_ex (filter, first, last, 28462, "epsg", 28462, "Pulkovo 1942 / Gauss-Kruger 2N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=500000 +y_0=0 +e"); add_proj4text (p, 1, "llps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0.1"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 2N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",9],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"28462\"]]"); p = add_epsg_def_ex (filter, first, last, 28463, "epsg", 28463, "Pulkovo 1942 / Gauss-Kruger 3N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 3N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",15],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"28463\"]]"); p = add_epsg_def_ex (filter, first, last, 28464, "epsg", 28464, "Pulkovo 1942 / Gauss-Kruger 4N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 4N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",21],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"28464\"]]"); p = add_epsg_def_ex (filter, first, last, 28465, "epsg", 28465, "Pulkovo 1942 / Gauss-Kruger 5N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 5N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",27],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"28465\"]]"); p = add_epsg_def_ex (filter, first, last, 28466, "epsg", 28466, "Pulkovo 1942 / Gauss-Kruger 6N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 6N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",33],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"28466\"]]"); p = add_epsg_def_ex (filter, first, last, 28467, "epsg", 28467, "Pulkovo 1942 / Gauss-Kruger 7N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 7N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",39],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"28467\"]]"); p = add_epsg_def_ex (filter, first, last, 28468, "epsg", 28468, "Pulkovo 1942 / Gauss-Kruger 8N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 8N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",45],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"28468\"]]"); p = add_epsg_def_ex (filter, first, last, 28469, "epsg", 28469, "Pulkovo 1942 / Gauss-Kruger 9N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 9N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",51],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"28469\"]]"); p = add_epsg_def_ex (filter, first, last, 28470, "epsg", 28470, "Pulkovo 1942 / Gauss-Kruger 10N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 10N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",57],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28470\"]]"); p = add_epsg_def_ex (filter, first, last, 28471, "epsg", 28471, "Pulkovo 1942 / Gauss-Kruger 11N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 11N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",63],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28471\"]]"); p = add_epsg_def_ex (filter, first, last, 28472, "epsg", 28472, "Pulkovo 1942 / Gauss-Kruger 12N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 12N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",69],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28472\"]]"); p = add_epsg_def_ex (filter, first, last, 28473, "epsg", 28473, "Pulkovo 1942 / Gauss-Kruger 13N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 13N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",75],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28473\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ���������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_32.c��������������������������������������������������0000664�0001750�0001750�00000577401�12544707704�017052� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_32 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 6563, "epsg", 6563, "NAD83(2011) / Pennsylvania North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4"); add_proj4text (p, 1, "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps"); add_proj4text (p, 2, "=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Pennsylvania North (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",41.95],PARAMETER[\"standard_parallel_2\",40.8833333"); add_srs_wkt (p, 10, "3333333],PARAMETER[\"latitude_of_origin\",40.16666666666"); add_srs_wkt (p, 11, "666],PARAMETER[\"central_meridian\",-77.75],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",1968500],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 13, ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 15, "HORITY[\"EPSG\",\"6563\"]]"); p = add_epsg_def_ex (filter, first, last, 6564, "epsg", 6564, "NAD83(2011) / Pennsylvania South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); add_proj4text (p, 1, "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Pennsylvania South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40"); add_srs_wkt (p, 9, ".96666666666667],PARAMETER[\"standard_parallel_2\",39.93"); add_srs_wkt (p, 10, "333333333333],PARAMETER[\"latitude_of_origin\",39.333333"); add_srs_wkt (p, 11, "33333334],PARAMETER[\"central_meridian\",-77.75],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_easting\",600000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 14, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6564\""); add_srs_wkt (p, 15, "]]"); p = add_epsg_def_ex (filter, first, last, 6565, "epsg", 6565, "NAD83(2011) / Pennsylvania South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); add_proj4text (p, 1, "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Pennsylvania South (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",40.96666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",39.93333333333333],PARAMETER[\"latitude_of_origin\",39."); add_srs_wkt (p, 11, "33333333333334],PARAMETER[\"central_meridian\",-77.75],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_easting\",1968500],PARAMETER[\"false_no"); add_srs_wkt (p, 13, "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 15, ",NORTH],AUTHORITY[\"EPSG\",\"6565\"]]"); p = add_epsg_def_ex (filter, first, last, 6566, "epsg", 6566, "NAD83(2011) / Puerto Rico and Virgin Is.", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333"); add_proj4text (p, 1, "333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +"); add_proj4text (p, 2, "x_0=200000 +y_0=200000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Puerto Rico and Virgin Is.\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refere"); add_srs_wkt (p, 2, "nce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572"); add_srs_wkt (p, 3, "22101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",18.43333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",18.03333333333333],PARAMETER[\"latitude_of_origin\",17."); add_srs_wkt (p, 11, "83333333333333],PARAMETER[\"central_meridian\",-66.43333"); add_srs_wkt (p, 12, "333333334],PARAMETER[\"false_easting\",200000],PARAMETER"); add_srs_wkt (p, 13, "[\"false_northing\",200000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 15, "HORITY[\"EPSG\",\"6566\"]]"); p = add_epsg_def_ex (filter, first, last, 6567, "epsg", 6567, "NAD83(2011) / Rhode Island", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); add_proj4text (p, 1, "9999375 +x_0=100000 +y_0=0 +ellps=GRS80 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Rhode Island\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",41.08333333333334"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-71.5],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.99999375],PARAMETER[\"false_easting\",10000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"6567\"]]"); p = add_epsg_def_ex (filter, first, last, 6568, "epsg", 6568, "NAD83(2011) / Rhode Island (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); add_proj4text (p, 1, "9999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +unit"); add_proj4text (p, 2, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Rhode Island (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",41.0833333"); add_srs_wkt (p, 9, "3333334],PARAMETER[\"central_meridian\",-71.5],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.99999375],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",328083.3333],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 12, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"6568\"]]"); p = add_epsg_def_ex (filter, first, last, 6569, "epsg", 6569, "NAD83(2011) / South Carolina", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31"); add_proj4text (p, 1, ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / South Carolina\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.8333"); add_srs_wkt (p, 9, "3333333334],PARAMETER[\"standard_parallel_2\",32.5],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",31.83333333333333],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-81],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "609600],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"6569\"]]"); p = add_epsg_def_ex (filter, first, last, 6570, "epsg", 6570, "NAD83(2011) / South Carolina (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31"); add_proj4text (p, 1, ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / South Carolina (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 9, "4.83333333333334],PARAMETER[\"standard_parallel_2\",32.5"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",31.83333333333333],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-81],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",2000000],PARAMETER[\"false_northing\",0],UNIT[\"fo"); add_srs_wkt (p, 13, "ot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 14, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6570\"]]"); p = add_epsg_def_ex (filter, first, last, 6571, "epsg", 6571, "NAD83(2011) / South Dakota North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666"); add_proj4text (p, 1, "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / South Dakota North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45"); add_srs_wkt (p, 9, ".68333333333333],PARAMETER[\"standard_parallel_2\",44.41"); add_srs_wkt (p, 10, "666666666666],PARAMETER[\"latitude_of_origin\",43.833333"); add_srs_wkt (p, 11, "33333334],PARAMETER[\"central_meridian\",-100],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",600000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6571\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 6572, "epsg", 6572, "NAD83(2011) / South Dakota North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666"); add_proj4text (p, 1, "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / South Dakota North (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",45.68333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",44.41666666666666],PARAMETER[\"latitude_of_origin\",43."); add_srs_wkt (p, 11, "83333333333334],PARAMETER[\"central_meridian\",-100],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_easting\",1968500],PARAMETER[\"false_nort"); add_srs_wkt (p, 13, "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 15, "ORTH],AUTHORITY[\"EPSG\",\"6572\"]]"); p = add_epsg_def_ex (filter, first, last, 6573, "epsg", 6573, "NAD83(2011) / South Dakota South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); add_proj4text (p, 1, ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); add_proj4text (p, 2, "_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / South Dakota South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44"); add_srs_wkt (p, 9, ".4],PARAMETER[\"standard_parallel_2\",42.83333333333334]"); add_srs_wkt (p, 10, ",PARAMETER[\"latitude_of_origin\",42.33333333333334],PAR"); add_srs_wkt (p, 11, "AMETER[\"central_meridian\",-100.3333333333333],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_easting\",600000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 14, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6573\""); add_srs_wkt (p, 15, "]]"); p = add_epsg_def_ex (filter, first, last, 6574, "epsg", 6574, "NAD83(2011) / South Dakota South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); add_proj4text (p, 1, ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); add_proj4text (p, 2, "_0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / South Dakota South (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",44.4],PARAMETER[\"standard_parallel_2\",42.83333333"); add_srs_wkt (p, 10, "333334],PARAMETER[\"latitude_of_origin\",42.333333333333"); add_srs_wkt (p, 11, "34],PARAMETER[\"central_meridian\",-100.3333333333333],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_easting\",1968500],PARAMETER[\"false_no"); add_srs_wkt (p, 13, "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 15, ",NORTH],AUTHORITY[\"EPSG\",\"6574\"]]"); p = add_epsg_def_ex (filter, first, last, 6575, "epsg", 6575, "NAD83(2011) / Tennessee", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3"); add_proj4text (p, 1, "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Tennessee\",GEOGCS[\"NAD83(2011)\""); add_srs_wkt (p, 1, ",DATUM[\"NAD83_National_Spatial_Reference_System_2011\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",36.4166666666"); add_srs_wkt (p, 9, "6666],PARAMETER[\"standard_parallel_2\",35.25],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",34.33333333333334],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-86],PARAMETER[\"false_easting\",60000"); add_srs_wkt (p, 12, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 14, "RTH],AUTHORITY[\"EPSG\",\"6575\"]]"); p = add_epsg_def_ex (filter, first, last, 6576, "epsg", 6576, "NAD83(2011) / Tennessee (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3"); add_proj4text (p, 1, "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Tennessee (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.4"); add_srs_wkt (p, 9, "1666666666666],PARAMETER[\"standard_parallel_2\",35.25],"); add_srs_wkt (p, 10, "PARAMETER[\"latitude_of_origin\",34.33333333333334],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-86],PARAMETER[\"false_eastin"); add_srs_wkt (p, 12, "g\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 13, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 14, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 15, "G\",\"6576\"]]"); p = add_epsg_def_ex (filter, first, last, 6577, "epsg", 6577, "NAD83(2011) / Texas Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666"); add_proj4text (p, 1, "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); add_proj4text (p, 2, "x_0=700000 +y_0=3000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Texas Central\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",31.88333"); add_srs_wkt (p, 9, "333333333],PARAMETER[\"standard_parallel_2\",30.11666666"); add_srs_wkt (p, 10, "666667],PARAMETER[\"latitude_of_origin\",29.666666666666"); add_srs_wkt (p, 11, "67],PARAMETER[\"central_meridian\",-100.3333333333333],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_easting\",700000],PARAMETER[\"false_nor"); add_srs_wkt (p, 13, "thing\",3000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"6577\"]]"); p = add_epsg_def_ex (filter, first, last, 6578, "epsg", 6578, "NAD83(2011) / Texas Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666"); add_proj4text (p, 1, "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); add_proj4text (p, 2, "x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +units=u"); add_proj4text (p, 3, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Texas Central (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 9, "1.88333333333333],PARAMETER[\"standard_parallel_2\",30.1"); add_srs_wkt (p, 10, "1666666666667],PARAMETER[\"latitude_of_origin\",29.66666"); add_srs_wkt (p, 11, "666666667],PARAMETER[\"central_meridian\",-100.333333333"); add_srs_wkt (p, 12, "3333],PARAMETER[\"false_easting\",2296583.333],PARAMETER"); add_srs_wkt (p, 13, "[\"false_northing\",9842500.000000002],UNIT[\"US survey "); add_srs_wkt (p, 14, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 15, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 16, "6578\"]]"); p = add_epsg_def_ex (filter, first, last, 6579, "epsg", 6579, "NAD83(2011) / Texas Centric Albers Equal Area", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x"); add_proj4text (p, 1, "_0=1500000 +y_0=6000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Texas Centric Albers Equal Area\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2011\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Albers_Conic_Equal_Area\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, "el_1\",27.5],PARAMETER[\"standard_parallel_2\",35],PARAM"); add_srs_wkt (p, 10, "ETER[\"latitude_of_center\",18],PARAMETER[\"longitude_of"); add_srs_wkt (p, 11, "_center\",-100],PARAMETER[\"false_easting\",1500000],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_northing\",6000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 14, "RTH],AUTHORITY[\"EPSG\",\"6579\"]]"); p = add_epsg_def_ex (filter, first, last, 6580, "epsg", 6580, "NAD83(2011) / Texas Centric Lambert Conformal", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x"); add_proj4text (p, 1, "_0=1500000 +y_0=5000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Texas Centric Lambert Conformal\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2011\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",27.5],PARAMETER[\"standard_parallel_2\",35],P"); add_srs_wkt (p, 10, "ARAMETER[\"latitude_of_origin\",18],PARAMETER[\"central_"); add_srs_wkt (p, 11, "meridian\",-100],PARAMETER[\"false_easting\",1500000],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_northing\",5000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 14, "ORTH],AUTHORITY[\"EPSG\",\"6580\"]]"); p = add_epsg_def_ex (filter, first, last, 6581, "epsg", 6581, "NAD83(2011) / Texas North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3"); add_proj4text (p, 1, "4 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Texas North\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal_"); add_srs_wkt (p, 8, "Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.183333"); add_srs_wkt (p, 9, "33333333],PARAMETER[\"standard_parallel_2\",34.65],PARAM"); add_srs_wkt (p, 10, "ETER[\"latitude_of_origin\",34],PARAMETER[\"central_meri"); add_srs_wkt (p, 11, "dian\",-101.5],PARAMETER[\"false_easting\",200000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"6581\"]]"); p = add_epsg_def_ex (filter, first, last, 6582, "epsg", 6582, "NAD83(2011) / Texas North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3"); add_proj4text (p, 1, "4 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.99989"); add_proj4text (p, 2, "83998 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Texas North (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36"); add_srs_wkt (p, 9, ".18333333333333],PARAMETER[\"standard_parallel_2\",34.65"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",34],PARAMETER[\"centr"); add_srs_wkt (p, 11, "al_meridian\",-101.5],PARAMETER[\"false_easting\",656166"); add_srs_wkt (p, 12, ".667],PARAMETER[\"false_northing\",3280833.333],UNIT[\"U"); add_srs_wkt (p, 13, "S survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"6582\"]]"); p = add_epsg_def_ex (filter, first, last, 6583, "epsg", 6583, "NAD83(2011) / Texas North Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333"); add_proj4text (p, 1, "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y"); add_proj4text (p, 2, "_0=2000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Texas North Central\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 9, "3.96666666666667],PARAMETER[\"standard_parallel_2\",32.1"); add_srs_wkt (p, 10, "3333333333333],PARAMETER[\"latitude_of_origin\",31.66666"); add_srs_wkt (p, 11, "666666667],PARAMETER[\"central_meridian\",-98.5],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_easting\",600000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",2000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 14, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "6583\"]]"); p = add_epsg_def_ex (filter, first, last, 6584, "epsg", 6584, "NAD83(2011) / Texas North Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333"); add_proj4text (p, 1, "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y"); add_proj4text (p, 2, "_0=2000000.0001016 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Texas North Central (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refere"); add_srs_wkt (p, 2, "nce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572"); add_srs_wkt (p, 3, "22101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",33.96666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",32.13333333333333],PARAMETER[\"latitude_of_origin\",31."); add_srs_wkt (p, 11, "66666666666667],PARAMETER[\"central_meridian\",-98.5],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_easting\",1968500],PARAMETER[\"false_nor"); add_srs_wkt (p, 13, "thing\",6561666.667],UNIT[\"US survey foot\",0.304800609"); add_srs_wkt (p, 14, "6012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 15, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6584\"]]"); p = add_epsg_def_ex (filter, first, last, 6585, "epsg", 6585, "NAD83(2011) / Texas South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y"); add_proj4text (p, 2, "_0=5000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Texas South\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal_"); add_srs_wkt (p, 8, "Conic_2SP\"],PARAMETER[\"standard_parallel_1\",27.833333"); add_srs_wkt (p, 9, "33333333],PARAMETER[\"standard_parallel_2\",26.166666666"); add_srs_wkt (p, 10, "66667],PARAMETER[\"latitude_of_origin\",25.6666666666666"); add_srs_wkt (p, 11, "7],PARAMETER[\"central_meridian\",-98.5],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_easting\",300000],PARAMETER[\"false_northing\",500000"); add_srs_wkt (p, 13, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6585\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 6586, "epsg", 6586, "NAD83(2011) / Texas South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.00"); add_proj4text (p, 2, "00000001 +y_0=5000000.0001016 +ellps=GRS80 +units=us-ft "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Texas South (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",27"); add_srs_wkt (p, 9, ".83333333333333],PARAMETER[\"standard_parallel_2\",26.16"); add_srs_wkt (p, 10, "666666666667],PARAMETER[\"latitude_of_origin\",25.666666"); add_srs_wkt (p, 11, "66666667],PARAMETER[\"central_meridian\",-98.5],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_easting\",984250.0000000002],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",16404166.667],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 14, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 15, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6586\"]]"); p = add_epsg_def_ex (filter, first, last, 6587, "epsg", 6587, "NAD83(2011) / Texas South Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333"); add_proj4text (p, 1, "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0"); add_proj4text (p, 2, "=4000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Texas South Central\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 9, "0.28333333333333],PARAMETER[\"standard_parallel_2\",28.3"); add_srs_wkt (p, 10, "8333333333333],PARAMETER[\"latitude_of_origin\",27.83333"); add_srs_wkt (p, 11, "333333333],PARAMETER[\"central_meridian\",-99],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",600000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "4000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 14, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "6587\"]]"); p = add_epsg_def_ex (filter, first, last, 6588, "epsg", 6588, "NAD83(2011) / Texas South Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333"); add_proj4text (p, 1, "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0"); add_proj4text (p, 2, "=3999999.9998984 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Texas South Central (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refere"); add_srs_wkt (p, 2, "nce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572"); add_srs_wkt (p, 3, "22101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",30.28333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",28.38333333333333],PARAMETER[\"latitude_of_origin\",27."); add_srs_wkt (p, 11, "83333333333333],PARAMETER[\"central_meridian\",-99],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",1968500],PARAMETER[\"false_north"); add_srs_wkt (p, 13, "ing\",13123333.333],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 14, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 15, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6588\"]]"); p = add_epsg_def_ex (filter, first, last, 6589, "epsg", 6589, "NAD83(2011) / Vermont", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); add_proj4text (p, 1, "=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Vermont\",GEOGCS[\"NAD83(2011)\","); add_srs_wkt (p, 1, "DATUM[\"NAD83_National_Spatial_Reference_System_2011\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",42.5],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-72.5],PARAMETER[\"scale_factor\",0.99996"); add_srs_wkt (p, 10, "4286],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"6589\"]]"); p = add_epsg_def_ex (filter, first, last, 6590, "epsg", 6590, "NAD83(2011) / Vermont (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); add_proj4text (p, 1, "=500000.00001016 +y_0=0 +ellps=GRS80 +units=us-ft +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Vermont (ftUS)\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",42.5],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",-72.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".999964286],PARAMETER[\"false_easting\",1640416.6667],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 12, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6590\"]]"); p = add_epsg_def_ex (filter, first, last, 6591, "epsg", 6591, "NAD83(2011) / Virginia Lambert", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37 +lat_2=39.5 +lat_0=36 +lon_0=-79.5 +"); add_proj4text (p, 1, "x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Virginia Lambert\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_2\",39.5],PARAMETER[\"lati"); add_srs_wkt (p, 10, "tude_of_origin\",36],PARAMETER[\"central_meridian\",-79."); add_srs_wkt (p, 11, "5],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 13, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "6591\"]]"); p = add_epsg_def_ex (filter, first, last, 6592, "epsg", 6592, "NAD83(2011) / Virginia North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37"); add_proj4text (p, 1, ".66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +"); add_proj4text (p, 2, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Virginia North\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.2],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",38.03333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",37.66666666666666],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-78.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",3500000],PARAMETER[\"false_northing\",2000000],UNIT[\"m"); add_srs_wkt (p, 13, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 14, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6592\"]]"); p = add_epsg_def_ex (filter, first, last, 6593, "epsg", 6593, "NAD83(2011) / Virginia North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37"); add_proj4text (p, 1, ".66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2"); add_proj4text (p, 2, "000000.0001016 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Virginia North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",39.2],PARAMETER[\"standard_parallel_2\",38.033333333333"); add_srs_wkt (p, 10, "33],PARAMETER[\"latitude_of_origin\",37.66666666666666],"); add_srs_wkt (p, 11, "PARAMETER[\"central_meridian\",-78.5],PARAMETER[\"false_"); add_srs_wkt (p, 12, "easting\",11482916.667],PARAMETER[\"false_northing\",656"); add_srs_wkt (p, 13, "1666.667],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 15, "ORTH],AUTHORITY[\"EPSG\",\"6593\"]]"); p = add_epsg_def_ex (filter, first, last, 6594, "epsg", 6594, "NAD83(2011) / Virginia South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666"); add_proj4text (p, 1, "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +"); add_proj4text (p, 2, "y_0=1000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Virginia South\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.9666"); add_srs_wkt (p, 9, "6666666667],PARAMETER[\"standard_parallel_2\",36.7666666"); add_srs_wkt (p, 10, "6666667],PARAMETER[\"latitude_of_origin\",36.33333333333"); add_srs_wkt (p, 11, "334],PARAMETER[\"central_meridian\",-78.5],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_easting\",3500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 13, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"659"); add_srs_wkt (p, 15, "4\"]]"); p = add_epsg_def_ex (filter, first, last, 6595, "epsg", 6595, "NAD83(2011) / Virginia South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666"); add_proj4text (p, 1, "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0"); add_proj4text (p, 2, "001016 +y_0=999999.9998983998 +ellps=GRS80 +units=us-ft "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Virginia South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",37.96666666666667],PARAMETER[\"standard_parallel_2\",36"); add_srs_wkt (p, 10, ".76666666666667],PARAMETER[\"latitude_of_origin\",36.333"); add_srs_wkt (p, 11, "33333333334],PARAMETER[\"central_meridian\",-78.5],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_easting\",11482916.667],PARAMETER[\"false_n"); add_srs_wkt (p, 13, "orthing\",3280833.333],UNIT[\"US survey foot\",0.3048006"); add_srs_wkt (p, 14, "096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 15, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6595\"]]"); p = add_epsg_def_ex (filter, first, last, 6596, "epsg", 6596, "NAD83(2011) / Washington North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47"); add_proj4text (p, 1, " +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Washington North\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.7"); add_srs_wkt (p, 9, "3333333333333],PARAMETER[\"standard_parallel_2\",47.5],P"); add_srs_wkt (p, 10, "ARAMETER[\"latitude_of_origin\",47],PARAMETER[\"central_"); add_srs_wkt (p, 11, "meridian\",-120.8333333333333],PARAMETER[\"false_easting"); add_srs_wkt (p, 12, "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 13, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"6596\"]]"); p = add_epsg_def_ex (filter, first, last, 6597, "epsg", 6597, "NAD83(2011) / Washington North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47"); add_proj4text (p, 1, " +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0"); add_proj4text (p, 2, " +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Washington North (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 8, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",48.73333333333333],PARAMETER[\"standard_parallel_2\",47"); add_srs_wkt (p, 10, ".5],PARAMETER[\"latitude_of_origin\",47],PARAMETER[\"cen"); add_srs_wkt (p, 11, "tral_meridian\",-120.8333333333333],PARAMETER[\"false_ea"); add_srs_wkt (p, 12, "sting\",1640416.667],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 13, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 15, "TY[\"EPSG\",\"6597\"]]"); p = add_epsg_def_ex (filter, first, last, 6598, "epsg", 6598, "NAD83(2011) / Washington South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333"); add_proj4text (p, 1, "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Washington South\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.3"); add_srs_wkt (p, 9, "3333333333334],PARAMETER[\"standard_parallel_2\",45.8333"); add_srs_wkt (p, 10, "3333333334],PARAMETER[\"latitude_of_origin\",45.33333333"); add_srs_wkt (p, 11, "333334],PARAMETER[\"central_meridian\",-120.5],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6598\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 6599, "epsg", 6599, "NAD83(2011) / Washington South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333"); add_proj4text (p, 1, "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0"); add_proj4text (p, 2, "001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Washington South (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 8, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",47.33333333333334],PARAMETER[\"standard_parallel_2\",45"); add_srs_wkt (p, 10, ".83333333333334],PARAMETER[\"latitude_of_origin\",45.333"); add_srs_wkt (p, 11, "33333333334],PARAMETER[\"central_meridian\",-120.5],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",1640416.667],PARAMETER[\"false_n"); add_srs_wkt (p, 13, "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 15, ",NORTH],AUTHORITY[\"EPSG\",\"6599\"]]"); p = add_epsg_def_ex (filter, first, last, 6600, "epsg", 6600, "NAD83(2011) / West Virginia North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / West Virginia North\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 9, "0.25],PARAMETER[\"standard_parallel_2\",39],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",38.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-79.5],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"6600\"]]"); p = add_epsg_def_ex (filter, first, last, 6601, "epsg", 6601, "NAD83(2011) / West Virginia North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / West Virginia North (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refere"); add_srs_wkt (p, 2, "nce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572"); add_srs_wkt (p, 3, "22101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",40.25],PARAMETER[\"standard_parallel_2\",39],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",38.5],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-79.5],PARAMETER[\"false_easting\",1968500],PARA"); add_srs_wkt (p, 12, "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 13, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6601\"]]"); p = add_epsg_def_ex (filter, first, last, 6602, "epsg", 6602, "NAD83(2011) / West Virginia South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / West Virginia South\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 9, "8.88333333333333],PARAMETER[\"standard_parallel_2\",37.4"); add_srs_wkt (p, 10, "8333333333333],PARAMETER[\"latitude_of_origin\",37],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-81],PARAMETER[\"false_eastin"); add_srs_wkt (p, 12, "g\",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 13, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 14, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6602\"]]"); p = add_epsg_def_ex (filter, first, last, 6603, "epsg", 6603, "NAD83(2011) / West Virginia South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / West Virginia South (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refere"); add_srs_wkt (p, 2, "nce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572"); add_srs_wkt (p, 3, "22101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",38.88333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",37.48333333333333],PARAMETER[\"latitude_of_origin\",37]"); add_srs_wkt (p, 11, ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"false_e"); add_srs_wkt (p, 12, "asting\",1968500],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 13, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"6603\"]]"); p = add_epsg_def_ex (filter, first, last, 6604, "epsg", 6604, "NAD83(2011) / Wisconsin Central (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); add_proj4text (p, 1, "334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Wisconsin Central (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia"); add_srs_wkt (p, 2, "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 3, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_1\",45.5],PARAMETER[\"st"); add_srs_wkt (p, 10, "andard_parallel_2\",44.25],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",43.83333333333334],PARAMETER[\"central_meridian\",-9"); add_srs_wkt (p, 12, "0],PARAMETER[\"false_easting\",600000],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 14, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 15, "G\",\"6604\"]]"); p = add_epsg_def_ex (filter, first, last, 6605, "epsg", 6605, "NAD83(2011) / Wisconsin Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); add_proj4text (p, 1, "334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us"); add_proj4text (p, 2, "-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Wisconsin Central (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 4, "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 8, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 9, "\",45.5],PARAMETER[\"standard_parallel_2\",44.25],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",43.83333333333334],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-90],PARAMETER[\"false_easting\",19"); add_srs_wkt (p, 12, "68500],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); add_srs_wkt (p, 13, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 14, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "6605\"]]"); p = add_epsg_def_ex (filter, first, last, 6606, "epsg", 6606, "NAD83(2011) / Wisconsin North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666"); add_proj4text (p, 1, "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Wisconsin North\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",46.76"); add_srs_wkt (p, 9, "666666666667],PARAMETER[\"standard_parallel_2\",45.56666"); add_srs_wkt (p, 10, "666666667],PARAMETER[\"latitude_of_origin\",45.166666666"); add_srs_wkt (p, 11, "66666],PARAMETER[\"central_meridian\",-90],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_easting\",600000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 13, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6606\"]]"); p = add_epsg_def_ex (filter, first, last, 6607, "epsg", 6607, "NAD83(2011) / Wisconsin North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666"); add_proj4text (p, 1, "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Wisconsin North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",46.76666666666667],PARAMETER[\"standard_parallel_2\",45"); add_srs_wkt (p, 10, ".56666666666667],PARAMETER[\"latitude_of_origin\",45.166"); add_srs_wkt (p, 11, "66666666666],PARAMETER[\"central_meridian\",-90],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_easting\",1968500],PARAMETER[\"false_northing"); add_srs_wkt (p, 13, "\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 15, "],AUTHORITY[\"EPSG\",\"6607\"]]"); p = add_epsg_def_ex (filter, first, last, 6608, "epsg", 6608, "NAD83(2011) / Wisconsin South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333"); add_proj4text (p, 1, "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Wisconsin South\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44.06"); add_srs_wkt (p, 9, "666666666667],PARAMETER[\"standard_parallel_2\",42.73333"); add_srs_wkt (p, 10, "333333333],PARAMETER[\"latitude_of_origin\",42],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-90],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"6608\"]]"); p = add_epsg_def_ex (filter, first, last, 6609, "epsg", 6609, "NAD83(2011) / Wisconsin South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333"); add_proj4text (p, 1, "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Wisconsin South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",44.06666666666667],PARAMETER[\"standard_parallel_2\",42"); add_srs_wkt (p, 10, ".73333333333333],PARAMETER[\"latitude_of_origin\",42],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-90],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US"); add_srs_wkt (p, 13, " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"6609\"]]"); p = add_epsg_def_ex (filter, first, last, 6610, "epsg", 6610, "NAD83(2011) / Wisconsin Transverse Mercator", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y"); add_proj4text (p, 1, "_0=-4480000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Wisconsin Transverse Mercator\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-90],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",520000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",-4480000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"6610\"]]"); p = add_epsg_def_ex (filter, first, last, 6611, "epsg", 6611, "NAD83(2011) / Wyoming East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Wyoming East\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-105.1666666666667],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9999375],PARAMETER[\"false_easting\",200000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"6611\"]]"); p = add_epsg_def_ex (filter, first, last, 6612, "epsg", 6612, "NAD83(2011) / Wyoming East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Wyoming East (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-105.1666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.9999375],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",656166.6667],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 12, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"6612\"]]"); p = add_epsg_def_ex (filter, first, last, 6613, "epsg", 6613, "NAD83(2011) / Wyoming East Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Wyoming East Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-107.3333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.9999375],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",400000],PARAMETER[\"false_northing\",100000],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6613\"]]"); p = add_epsg_def_ex (filter, first, last, 6614, "epsg", 6614, "NAD83(2011) / Wyoming East Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellp"); add_proj4text (p, 2, "s=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Wyoming East Central (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",40"); add_srs_wkt (p, 9, ".5],PARAMETER[\"central_meridian\",-107.3333333333333],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",0.9999375],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",1312333.3333],PARAMETER[\"false_northing\",3280"); add_srs_wkt (p, 12, "83.3333],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 14, "RTH],AUTHORITY[\"EPSG\",\"6614\"]]"); p = add_epsg_def_ex (filter, first, last, 6615, "epsg", 6615, "NAD83(2011) / Wyoming West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Wyoming West\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-110.0833333333333],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9999375],PARAMETER[\"false_easting\",800000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",100000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"6615\"]]"); p = add_epsg_def_ex (filter, first, last, 6616, "epsg", 6616, "NAD83(2011) / Wyoming West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +el"); add_proj4text (p, 2, "lps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Wyoming West (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-110.0833333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.9999375],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",2624666.6667],PARAMETER[\"false_northing\",328083.3333]"); add_srs_wkt (p, 12, ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"6616\"]]"); p = add_epsg_def_ex (filter, first, last, 6617, "epsg", 6617, "NAD83(2011) / Wyoming West Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0"); add_proj4text (p, 1, "=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Wyoming West Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-108.75],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9999375],PARAMETER[\"false_easting\",600000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"6617\"]]"); p = add_epsg_def_ex (filter, first, last, 6618, "epsg", 6618, "NAD83(2011) / Wyoming West Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0"); add_proj4text (p, 1, "=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Wyoming West Central (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",40"); add_srs_wkt (p, 9, ".5],PARAMETER[\"central_meridian\",-108.75],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.9999375],PARAMETER[\"false_easting\",19"); add_srs_wkt (p, 11, "68500],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); add_srs_wkt (p, 12, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 13, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "6618\"]]"); p = add_epsg_def_ex (filter, first, last, 6619, "epsg", 6619, "NAD83(2011) / Utah Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 "); add_proj4text (p, 2, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Utah Central\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.65],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",39.01666666666667],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",38.33333333333334],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-111.5],PARAMETER[\"false_easting"); add_srs_wkt (p, 12, "\",500000],PARAMETER[\"false_northing\",2000000],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6619\"]]"); p = add_epsg_def_ex (filter, first, last, 6620, "epsg", 6620, "NAD83(2011) / Utah North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +"); add_proj4text (p, 2, "y_0=1000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Utah North\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",41.7833333333"); add_srs_wkt (p, 9, "3333],PARAMETER[\"standard_parallel_2\",40.7166666666666"); add_srs_wkt (p, 10, "7],PARAMETER[\"latitude_of_origin\",40.33333333333334],P"); add_srs_wkt (p, 11, "ARAMETER[\"central_meridian\",-111.5],PARAMETER[\"false_"); add_srs_wkt (p, 12, "easting\",500000],PARAMETER[\"false_northing\",1000000],"); add_srs_wkt (p, 13, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6620\"]]"); p = add_epsg_def_ex (filter, first, last, 6621, "epsg", 6621, "NAD83(2011) / Utah South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 "); add_proj4text (p, 2, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Utah South\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",38.35],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",37.21666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-111.5],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 12, "0000],PARAMETER[\"false_northing\",3000000],UNIT[\"metre"); add_srs_wkt (p, 13, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 14, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6621\"]]"); p = add_epsg_def_ex (filter, first, last, 6622, "epsg", 6622, "NAD83(CSRS) / Quebec Lambert", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_"); add_proj4text (p, 1, "0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Quebec Lambert\",GEOGCS[\"NAD83(C"); add_srs_wkt (p, 1, "SRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",60],PARAMETER[\"standard_parallel_2\",46],PAR"); add_srs_wkt (p, 10, "AMETER[\"latitude_of_origin\",44],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",-68.5],PARAMETER[\"false_easting\",0],PARAMETER"); add_srs_wkt (p, 12, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"6622\"]]"); p = add_epsg_def_ex (filter, first, last, 6623, "epsg", 6623, "NAD83 / Quebec Albers", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_"); add_proj4text (p, 1, "0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Quebec Albers\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Albers_Conic_Equal_Area\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_1\",60],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",46],PARAMETER[\"latitude_of_center\",44"); add_srs_wkt (p, 10, "],PARAMETER[\"longitude_of_center\",-68.5],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6623\"]]"); p = add_epsg_def_ex (filter, first, last, 6624, "epsg", 6624, "NAD83(CSRS) / Quebec Albers", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_"); add_proj4text (p, 1, "0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Quebec Albers\",GEOGCS[\"NAD83(CS"); add_srs_wkt (p, 1, "RS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Albers_Conic_Equal_Area\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, "el_1\",60],PARAMETER[\"standard_parallel_2\",46],PARAMET"); add_srs_wkt (p, 10, "ER[\"latitude_of_center\",44],PARAMETER[\"longitude_of_c"); add_srs_wkt (p, 11, "enter\",-68.5],PARAMETER[\"false_easting\",0],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"6624\"]]"); p = add_epsg_def_ex (filter, first, last, 6625, "epsg", 6625, "NAD83(2011) / Utah Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0"); add_proj4text (p, 2, "=2000000.00001016 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Utah Central (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 9, "0.65],PARAMETER[\"standard_parallel_2\",39.0166666666666"); add_srs_wkt (p, 10, "7],PARAMETER[\"latitude_of_origin\",38.33333333333334],P"); add_srs_wkt (p, 11, "ARAMETER[\"central_meridian\",-111.5],PARAMETER[\"false_"); add_srs_wkt (p, 12, "easting\",1640416.6667],PARAMETER[\"false_northing\",656"); add_srs_wkt (p, 13, "1666.666700001],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 14, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 15, "Y\",NORTH],AUTHORITY[\"EPSG\",\"6625\"]]"); p = add_epsg_def_ex (filter, first, last, 6626, "epsg", 6626, "NAD83(2011) / Utah North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0"); add_proj4text (p, 2, "0001016 +y_0=999999.9999898402 +ellps=GRS80 +units=us-ft"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Utah North (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 8, "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41."); add_srs_wkt (p, 9, "78333333333333],PARAMETER[\"standard_parallel_2\",40.716"); add_srs_wkt (p, 10, "66666666667],PARAMETER[\"latitude_of_origin\",40.3333333"); add_srs_wkt (p, 11, "3333334],PARAMETER[\"central_meridian\",-111.5],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_easting\",1640416.6667],PARAMETER[\"false_nort"); add_srs_wkt (p, 13, "hing\",3280833.333300001],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 14, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 15, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6626\"]]"); p = add_epsg_def_ex (filter, first, last, 6627, "epsg", 6627, "NAD83(2011) / Utah South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0"); add_proj4text (p, 2, "=3000000 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Utah South (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 8, "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38."); add_srs_wkt (p, 9, "35],PARAMETER[\"standard_parallel_2\",37.21666666666667]"); add_srs_wkt (p, 10, ",PARAMETER[\"latitude_of_origin\",36.66666666666666],PAR"); add_srs_wkt (p, 11, "AMETER[\"central_meridian\",-111.5],PARAMETER[\"false_ea"); add_srs_wkt (p, 12, "sting\",1640416.6667],PARAMETER[\"false_northing\",98425"); add_srs_wkt (p, 13, "00.000000002],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 15, "\",NORTH],AUTHORITY[\"EPSG\",\"6627\"]]"); p = add_epsg_def_ex (filter, first, last, 6628, "epsg", 6628, "NAD83(PA11) / Hawaii zone 1", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_PA11", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0."); add_proj4text (p, 1, "999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(PA11) / Hawaii zone 1\",GEOGCS[\"NAD83(PA"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_PA"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",18.83333333333333"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-155.5],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.999966667],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"6628\"]]"); p = add_epsg_def_ex (filter, first, last, 6629, "epsg", 6629, "NAD83(PA11) / Hawaii zone 2", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_PA11", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(PA11) / Hawaii zone 2\",GEOGCS[\"NAD83(PA"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_PA"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",20.33333333333333"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-156.6666666666667],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.999966667],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6629\"]]"); p = add_epsg_def_ex (filter, first, last, 6630, "epsg", 6630, "NAD83(PA11) / Hawaii zone 3", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_PA11", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99"); add_proj4text (p, 1, "999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(PA11) / Hawaii zone 3\",GEOGCS[\"NAD83(PA"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_PA"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",21.16666666666667"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-158],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.99999],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"6630\"]]"); p = add_epsg_def_ex (filter, first, last, 6631, "epsg", 6631, "NAD83(PA11) / Hawaii zone 4", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_PA11", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0."); add_proj4text (p, 1, "99999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(PA11) / Hawaii zone 4\",GEOGCS[\"NAD83(PA"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_PA"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",21.83333333333333"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-159.5],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.99999],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"6631\"]]"); p = add_epsg_def_ex (filter, first, last, 6632, "epsg", 6632, "NAD83(PA11) / Hawaii zone 5", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_PA11", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666"); add_proj4text (p, 1, "666667 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(PA11) / Hawaii zone 5\",GEOGCS[\"NAD83(PA"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_PA"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",21.66666666666667"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-160.1666666666667],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"6632\"]]"); p = add_epsg_def_ex (filter, first, last, 6633, "epsg", 6633, "NAD83(PA11) / Hawaii zone 3 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_PA11", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99"); add_proj4text (p, 1, "999 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +units=us-f"); add_proj4text (p, 2, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(PA11) / Hawaii zone 3 (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(PA11)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_PA11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",21.1666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"central_meridian\",-158],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",0.99999],PARAMETER[\"false_easting\",16"); add_srs_wkt (p, 11, "40416.6667],PARAMETER[\"false_northing\",0],UNIT[\"US su"); add_srs_wkt (p, 12, "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"6633\"]]"); p = add_epsg_def_ex (filter, first, last, 6634, "epsg", 6634, "NAD83(PA11) / UTM zone 4N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_PA11", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=4 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(PA11) / UTM zone 4N\",GEOGCS[\"NAD83(PA11"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_National_Spatial_Reference_System_PA11"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-159],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6634\"]]"); p = add_epsg_def_ex (filter, first, last, 6635, "epsg", 6635, "NAD83(PA11) / UTM zone 5N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_PA11", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=5 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(PA11) / UTM zone 5N\",GEOGCS[\"NAD83(PA11"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_National_Spatial_Reference_System_PA11"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-153],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6635\"]]"); p = add_epsg_def_ex (filter, first, last, 6636, "epsg", 6636, "NAD83(PA11) / UTM zone 2S", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_PA11", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=2 +south +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(PA11) / UTM zone 2S\",GEOGCS[\"NAD83(PA11"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_National_Spatial_Reference_System_PA11"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1117\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"6322\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-171],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"6636\"]]"); p = add_epsg_def_ex (filter, first, last, 6637, "epsg", 6637, "NAD83(MA11) / Guam Map Grid", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_MA11", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=13.5 +lon_0=144.75 +k=1 +x_0=100000 +"); add_proj4text (p, 1, "y_0=200000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(MA11) / Guam Map Grid\",GEOGCS[\"NAD83(MA"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_MA"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1118\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6325\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",13.5],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",144.75],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",100000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"6637\"]]"); p = add_epsg_def_ex (filter, first, last, 6646, "epsg", 6646, "Karbala 1979 / Iraq National Grid", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Karbala_1979", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.02626833333333 +lon_0=46.5 +k=0.99"); add_proj4text (p, 1, "94 +x_0=800000 +y_0=0 +ellps=clrk80 +towgs84=70.995,-335"); add_proj4text (p, 2, ".916,262.898,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Karbala 1979 / Iraq National Grid\",GEOGCS[\"Ka"); add_srs_wkt (p, 1, "rbala 1979\",DATUM[\"Karbala_1979\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "80 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012"); add_srs_wkt (p, 3, "\"]],TOWGS84[70.995,-335.916,262.898,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6743\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4743\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",29.02626833333333],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",46.5],PARAMETER[\"scale_factor\",0.9994],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",800000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 13, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"6646\"]]"); p = add_epsg_def_ex (filter, first, last, 6649, "epsg", 6649, "NAD83(CSRS)", 1, 1, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +vunit"); add_proj4text (p, 1, "s=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(CSRS) + CGVD2013 height\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],VERT_CS["); add_srs_wkt (p, 8, "\"CGVD2013 height\",VERT_DATUM[\"Canadian Geodetic Verti"); add_srs_wkt (p, 9, "cal Datum of 2013\",2005,AUTHORITY[\"EPSG\",\"1127\"]],U"); add_srs_wkt (p, 10, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\""); add_srs_wkt (p, 11, ",UP],AUTHORITY[\"EPSG\",\"6647\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "6649\"]]"); p = add_epsg_def_ex (filter, first, last, 6650, "epsg", 6650, "NAD83(CSRS) / UTM zone 7N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=7 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(CSRS) / UTM zone 7N + CGVD2013 height\""); add_srs_wkt (p, 1, ",PROJCS[\"NAD83(CSRS) / UTM zone 7N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 2, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 3, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 8, "itude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\""); add_srs_wkt (p, 9, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-141],PARAMETER[\"scal"); add_srs_wkt (p, 11, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 14, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3154\"]],VERT_CS[\"CG"); add_srs_wkt (p, 15, "VD2013 height\",VERT_DATUM[\"Canadian Geodetic Vertical "); add_srs_wkt (p, 16, "Datum of 2013\",2005,AUTHORITY[\"EPSG\",\"1127\"]],UNIT["); add_srs_wkt (p, 17, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"6647\"]],AUTHORITY[\"EPSG\",\"665"); add_srs_wkt (p, 19, "0\"]]"); p = add_epsg_def_ex (filter, first, last, 6651, "epsg", 6651, "NAD83(CSRS) / UTM zone 8N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=8 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(CSRS) / UTM zone 8N + CGVD2013 height\""); add_srs_wkt (p, 1, ",PROJCS[\"NAD83(CSRS) / UTM zone 8N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 2, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 3, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 8, "itude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\""); add_srs_wkt (p, 9, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-135],PARAMETER[\"scal"); add_srs_wkt (p, 11, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 14, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3155\"]],VERT_CS[\"CG"); add_srs_wkt (p, 15, "VD2013 height\",VERT_DATUM[\"Canadian Geodetic Vertical "); add_srs_wkt (p, 16, "Datum of 2013\",2005,AUTHORITY[\"EPSG\",\"1127\"]],UNIT["); add_srs_wkt (p, 17, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"6647\"]],AUTHORITY[\"EPSG\",\"665"); add_srs_wkt (p, 19, "1\"]]"); p = add_epsg_def_ex (filter, first, last, 6652, "epsg", 6652, "NAD83(CSRS) / UTM zone 9N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=9 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(CSRS) / UTM zone 9N + CGVD2013 height\""); add_srs_wkt (p, 1, ",PROJCS[\"NAD83(CSRS) / UTM zone 9N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 2, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 3, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 8, "itude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\""); add_srs_wkt (p, 9, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-129],PARAMETER[\"scal"); add_srs_wkt (p, 11, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 14, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3156\"]],VERT_CS[\"CG"); add_srs_wkt (p, 15, "VD2013 height\",VERT_DATUM[\"Canadian Geodetic Vertical "); add_srs_wkt (p, 16, "Datum of 2013\",2005,AUTHORITY[\"EPSG\",\"1127\"]],UNIT["); add_srs_wkt (p, 17, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"6647\"]],AUTHORITY[\"EPSG\",\"665"); add_srs_wkt (p, 19, "2\"]]"); p = add_epsg_def_ex (filter, first, last, 6653, "epsg", 6653, "NAD83(CSRS) / UTM zone 10N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=10 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(CSRS) / UTM zone 10N + CGVD2013 height\""); add_srs_wkt (p, 1, ",PROJCS[\"NAD83(CSRS) / UTM zone 10N\",GEOGCS[\"NAD83(CS"); add_srs_wkt (p, 2, "RS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\","); add_srs_wkt (p, 3, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 8, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION["); add_srs_wkt (p, 9, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",-123],PARAMETER[\"sca"); add_srs_wkt (p, 11, "le_factor\",0.9996],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 14, "thing\",NORTH],AUTHORITY[\"EPSG\",\"3157\"]],VERT_CS[\"C"); add_srs_wkt (p, 15, "GVD2013 height\",VERT_DATUM[\"Canadian Geodetic Vertical"); add_srs_wkt (p, 16, " Datum of 2013\",2005,AUTHORITY[\"EPSG\",\"1127\"]],UNIT"); add_srs_wkt (p, 17, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",U"); add_srs_wkt (p, 18, "P],AUTHORITY[\"EPSG\",\"6647\"]],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 19, "53\"]]"); p = add_epsg_def_ex (filter, first, last, 6654, "epsg", 6654, "NAD83(CSRS) / UTM zone 11N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(CSRS) / UTM zone 11N + CGVD2013 height\""); add_srs_wkt (p, 1, ",PROJCS[\"NAD83(CSRS) / UTM zone 11N\",GEOGCS[\"NAD83(CS"); add_srs_wkt (p, 2, "RS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\","); add_srs_wkt (p, 3, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 8, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION["); add_srs_wkt (p, 9, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",-117],PARAMETER[\"sca"); add_srs_wkt (p, 11, "le_factor\",0.9996],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 14, "thing\",NORTH],AUTHORITY[\"EPSG\",\"2955\"]],VERT_CS[\"C"); add_srs_wkt (p, 15, "GVD2013 height\",VERT_DATUM[\"Canadian Geodetic Vertical"); add_srs_wkt (p, 16, " Datum of 2013\",2005,AUTHORITY[\"EPSG\",\"1127\"]],UNIT"); add_srs_wkt (p, 17, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",U"); add_srs_wkt (p, 18, "P],AUTHORITY[\"EPSG\",\"6647\"]],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 19, "54\"]]"); p = add_epsg_def_ex (filter, first, last, 6655, "epsg", 6655, "NAD83(CSRS) / UTM zone 12N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(CSRS) / UTM zone 12N + CGVD2013 height\""); add_srs_wkt (p, 1, ",PROJCS[\"NAD83(CSRS) / UTM zone 12N\",GEOGCS[\"NAD83(CS"); add_srs_wkt (p, 2, "RS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\","); add_srs_wkt (p, 3, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 8, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION["); add_srs_wkt (p, 9, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",-111],PARAMETER[\"sca"); add_srs_wkt (p, 11, "le_factor\",0.9996],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 14, "thing\",NORTH],AUTHORITY[\"EPSG\",\"2956\"]],VERT_CS[\"C"); add_srs_wkt (p, 15, "GVD2013 height\",VERT_DATUM[\"Canadian Geodetic Vertical"); add_srs_wkt (p, 16, " Datum of 2013\",2005,AUTHORITY[\"EPSG\",\"1127\"]],UNIT"); add_srs_wkt (p, 17, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",U"); add_srs_wkt (p, 18, "P],AUTHORITY[\"EPSG\",\"6647\"]],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 19, "55\"]]"); p = add_epsg_def_ex (filter, first, last, 6656, "epsg", 6656, "NAD83(CSRS) / UTM zone 13N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(CSRS) / UTM zone 13N + CGVD2013 height\""); add_srs_wkt (p, 1, ",PROJCS[\"NAD83(CSRS) / UTM zone 13N\",GEOGCS[\"NAD83(CS"); add_srs_wkt (p, 2, "RS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\","); add_srs_wkt (p, 3, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 8, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION["); add_srs_wkt (p, 9, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",-105],PARAMETER[\"sca"); add_srs_wkt (p, 11, "le_factor\",0.9996],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 14, "thing\",NORTH],AUTHORITY[\"EPSG\",\"2957\"]],VERT_CS[\"C"); add_srs_wkt (p, 15, "GVD2013 height\",VERT_DATUM[\"Canadian Geodetic Vertical"); add_srs_wkt (p, 16, " Datum of 2013\",2005,AUTHORITY[\"EPSG\",\"1127\"]],UNIT"); add_srs_wkt (p, 17, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",U"); add_srs_wkt (p, 18, "P],AUTHORITY[\"EPSG\",\"6647\"]],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 19, "56\"]]"); p = add_epsg_def_ex (filter, first, last, 6657, "epsg", 6657, "NAD83(CSRS) / UTM zone 14N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(CSRS) / UTM zone 14N + CGVD2013 height\""); add_srs_wkt (p, 1, ",PROJCS[\"NAD83(CSRS) / UTM zone 14N\",GEOGCS[\"NAD83(CS"); add_srs_wkt (p, 2, "RS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\","); add_srs_wkt (p, 3, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 8, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION["); add_srs_wkt (p, 9, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",-99],PARAMETER[\"scal"); add_srs_wkt (p, 11, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 14, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3158\"]],VERT_CS[\"CG"); add_srs_wkt (p, 15, "VD2013 height\",VERT_DATUM[\"Canadian Geodetic Vertical "); add_srs_wkt (p, 16, "Datum of 2013\",2005,AUTHORITY[\"EPSG\",\"1127\"]],UNIT["); add_srs_wkt (p, 17, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"6647\"]],AUTHORITY[\"EPSG\",\"665"); add_srs_wkt (p, 19, "7\"]]"); p = add_epsg_def_ex (filter, first, last, 6658, "epsg", 6658, "NAD83(CSRS) / UTM zone 15N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(CSRS) / UTM zone 15N + CGVD2013 height\""); add_srs_wkt (p, 1, ",PROJCS[\"NAD83(CSRS) / UTM zone 15N\",GEOGCS[\"NAD83(CS"); add_srs_wkt (p, 2, "RS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\","); add_srs_wkt (p, 3, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 8, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION["); add_srs_wkt (p, 9, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",-93],PARAMETER[\"scal"); add_srs_wkt (p, 11, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 14, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3159\"]],VERT_CS[\"CG"); add_srs_wkt (p, 15, "VD2013 height\",VERT_DATUM[\"Canadian Geodetic Vertical "); add_srs_wkt (p, 16, "Datum of 2013\",2005,AUTHORITY[\"EPSG\",\"1127\"]],UNIT["); add_srs_wkt (p, 17, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"6647\"]],AUTHORITY[\"EPSG\",\"665"); add_srs_wkt (p, 19, "8\"]]"); p = add_epsg_def_ex (filter, first, last, 6659, "epsg", 6659, "NAD83(CSRS) / UTM zone 16N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(CSRS) / UTM zone 16N + CGVD2013 height\""); add_srs_wkt (p, 1, ",PROJCS[\"NAD83(CSRS) / UTM zone 16N\",GEOGCS[\"NAD83(CS"); add_srs_wkt (p, 2, "RS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\","); add_srs_wkt (p, 3, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 8, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION["); add_srs_wkt (p, 9, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",-87],PARAMETER[\"scal"); add_srs_wkt (p, 11, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 14, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3160\"]],VERT_CS[\"CG"); add_srs_wkt (p, 15, "VD2013 height\",VERT_DATUM[\"Canadian Geodetic Vertical "); add_srs_wkt (p, 16, "Datum of 2013\",2005,AUTHORITY[\"EPSG\",\"1127\"]],UNIT["); add_srs_wkt (p, 17, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"6647\"]],AUTHORITY[\"EPSG\",\"665"); add_srs_wkt (p, 19, "9\"]]"); p = add_epsg_def_ex (filter, first, last, 6660, "epsg", 6660, "NAD83(CSRS) / UTM zone 17N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(CSRS) / UTM zone 17N + CGVD2013 height\""); add_srs_wkt (p, 1, ",PROJCS[\"NAD83(CSRS) / UTM zone 17N\",GEOGCS[\"NAD83(CS"); add_srs_wkt (p, 2, "RS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\","); add_srs_wkt (p, 3, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 8, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION["); add_srs_wkt (p, 9, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scal"); add_srs_wkt (p, 11, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 14, "hing\",NORTH],AUTHORITY[\"EPSG\",\"2958\"]],VERT_CS[\"CG"); add_srs_wkt (p, 15, "VD2013 height\",VERT_DATUM[\"Canadian Geodetic Vertical "); add_srs_wkt (p, 16, "Datum of 2013\",2005,AUTHORITY[\"EPSG\",\"1127\"]],UNIT["); add_srs_wkt (p, 17, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"6647\"]],AUTHORITY[\"EPSG\",\"666"); add_srs_wkt (p, 19, "0\"]]"); p = add_epsg_def_ex (filter, first, last, 6661, "epsg", 6661, "NAD83(CSRS) / UTM zone 18N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(CSRS) / UTM zone 18N + CGVD2013 height\""); add_srs_wkt (p, 1, ",PROJCS[\"NAD83(CSRS) / UTM zone 18N\",GEOGCS[\"NAD83(CS"); add_srs_wkt (p, 2, "RS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\","); add_srs_wkt (p, 3, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 8, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION["); add_srs_wkt (p, 9, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",-75],PARAMETER[\"scal"); add_srs_wkt (p, 11, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 14, "hing\",NORTH],AUTHORITY[\"EPSG\",\"2959\"]],VERT_CS[\"CG"); add_srs_wkt (p, 15, "VD2013 height\",VERT_DATUM[\"Canadian Geodetic Vertical "); add_srs_wkt (p, 16, "Datum of 2013\",2005,AUTHORITY[\"EPSG\",\"1127\"]],UNIT["); add_srs_wkt (p, 17, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"6647\"]],AUTHORITY[\"EPSG\",\"666"); add_srs_wkt (p, 19, "1\"]]"); p = add_epsg_def_ex (filter, first, last, 6662, "epsg", 6662, "NAD83(CSRS) / UTM zone 19N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(CSRS) / UTM zone 19N + CGVD2013 height\""); add_srs_wkt (p, 1, ",PROJCS[\"NAD83(CSRS) / UTM zone 19N\",GEOGCS[\"NAD83(CS"); add_srs_wkt (p, 2, "RS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\","); add_srs_wkt (p, 3, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 8, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION["); add_srs_wkt (p, 9, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scal"); add_srs_wkt (p, 11, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 14, "hing\",NORTH],AUTHORITY[\"EPSG\",\"2960\"]],VERT_CS[\"CG"); add_srs_wkt (p, 15, "VD2013 height\",VERT_DATUM[\"Canadian Geodetic Vertical "); add_srs_wkt (p, 16, "Datum of 2013\",2005,AUTHORITY[\"EPSG\",\"1127\"]],UNIT["); add_srs_wkt (p, 17, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"6647\"]],AUTHORITY[\"EPSG\",\"666"); add_srs_wkt (p, 19, "2\"]]"); p = add_epsg_def_ex (filter, first, last, 6663, "epsg", 6663, "NAD83(CSRS) / UTM zone 20N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(CSRS) / UTM zone 20N + CGVD2013 height\""); add_srs_wkt (p, 1, ",PROJCS[\"NAD83(CSRS) / UTM zone 20N\",GEOGCS[\"NAD83(CS"); add_srs_wkt (p, 2, "RS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\","); add_srs_wkt (p, 3, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 8, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION["); add_srs_wkt (p, 9, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scal"); add_srs_wkt (p, 11, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 14, "hing\",NORTH],AUTHORITY[\"EPSG\",\"2961\"]],VERT_CS[\"CG"); add_srs_wkt (p, 15, "VD2013 height\",VERT_DATUM[\"Canadian Geodetic Vertical "); add_srs_wkt (p, 16, "Datum of 2013\",2005,AUTHORITY[\"EPSG\",\"1127\"]],UNIT["); add_srs_wkt (p, 17, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"6647\"]],AUTHORITY[\"EPSG\",\"666"); add_srs_wkt (p, 19, "3\"]]"); p = add_epsg_def_ex (filter, first, last, 6664, "epsg", 6664, "NAD83(CSRS) / UTM zone 21N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(CSRS) / UTM zone 21N + CGVD2013 height\""); add_srs_wkt (p, 1, ",PROJCS[\"NAD83(CSRS) / UTM zone 21N\",GEOGCS[\"NAD83(CS"); add_srs_wkt (p, 2, "RS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\","); add_srs_wkt (p, 3, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 8, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION["); add_srs_wkt (p, 9, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scal"); add_srs_wkt (p, 11, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 14, "hing\",NORTH],AUTHORITY[\"EPSG\",\"2962\"]],VERT_CS[\"CG"); add_srs_wkt (p, 15, "VD2013 height\",VERT_DATUM[\"Canadian Geodetic Vertical "); add_srs_wkt (p, 16, "Datum of 2013\",2005,AUTHORITY[\"EPSG\",\"1127\"]],UNIT["); add_srs_wkt (p, 17, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"6647\"]],AUTHORITY[\"EPSG\",\"666"); add_srs_wkt (p, 19, "4\"]]"); p = add_epsg_def_ex (filter, first, last, 6665, "epsg", 6665, "NAD83(CSRS) / UTM zone 22N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(CSRS) / UTM zone 22N + CGVD2013 height\""); add_srs_wkt (p, 1, ",PROJCS[\"NAD83(CSRS) / UTM zone 22N\",GEOGCS[\"NAD83(CS"); add_srs_wkt (p, 2, "RS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\","); add_srs_wkt (p, 3, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 8, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION["); add_srs_wkt (p, 9, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",-51],PARAMETER[\"scal"); add_srs_wkt (p, 11, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 14, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3761\"]],VERT_CS[\"CG"); add_srs_wkt (p, 15, "VD2013 height\",VERT_DATUM[\"Canadian Geodetic Vertical "); add_srs_wkt (p, 16, "Datum of 2013\",2005,AUTHORITY[\"EPSG\",\"1127\"]],UNIT["); add_srs_wkt (p, 17, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"6647\"]],AUTHORITY[\"EPSG\",\"666"); add_srs_wkt (p, 19, "5\"]]"); p = add_epsg_def_ex (filter, first, last, 6668, "epsg", 6668, "JGD2011", 1, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\""); add_srs_wkt (p, 1, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 4, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 5, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"6668\"]]"); p = add_epsg_def_ex (filter, first, last, 6669, "epsg", 6669, "JGD2011 / Japan Plane Rectangular CS I", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS I\",GEOGCS"); add_srs_wkt (p, 1, "[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",33],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",129.5],PARAMETER[\"scale_factor\",0.9999],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",0],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"6669\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 6670, "epsg", 6670, "JGD2011 / Japan Plane Rectangular CS II", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS II\",GEOGC"); add_srs_wkt (p, 1, "S[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",33],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",131],PARAMETER[\"scale_factor\",0.9999],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"6670\"]]"); p = add_epsg_def_ex (filter, first, last, 6671, "epsg", 6671, "JGD2011 / Japan Plane Rectangular CS III", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS III\",GEOG"); add_srs_wkt (p, 1, "CS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",36],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",132.1666666666667],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9999],PARAMETER[\"false_easting\",0],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"6671\"]]"); p = add_epsg_def_ex (filter, first, last, 6672, "epsg", 6672, "JGD2011 / Japan Plane Rectangular CS IV", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS IV\",GEOGC"); add_srs_wkt (p, 1, "S[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",33],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",133.5],PARAMETER[\"scale_factor\",0.9999],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",0],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"6672\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 6673, "epsg", 6673, "JGD2011 / Japan Plane Rectangular CS V", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS V\",GEOGCS"); add_srs_wkt (p, 1, "[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",36],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",134.3333333333333],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999],PARAMETER[\"false_easting\",0],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"6673\"]]"); p = add_epsg_def_ex (filter, first, last, 6674, "epsg", 6674, "JGD2011 / Japan Plane Rectangular CS VI", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS VI\",GEOGC"); add_srs_wkt (p, 1, "S[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",36],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",136],PARAMETER[\"scale_factor\",0.9999],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"6674\"]]"); p = add_epsg_def_ex (filter, first, last, 6675, "epsg", 6675, "JGD2011 / Japan Plane Rectangular CS VII", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS VII\",GEOG"); add_srs_wkt (p, 1, "CS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",36],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",137.1666666666667],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9999],PARAMETER[\"false_easting\",0],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"6675\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_31.c��������������������������������������������������0000664�0001750�0001750�00000571440�12544707704�017046� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_31 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 6462, "epsg", 6462, "NAD83(2011) / Iowa North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +"); add_proj4text (p, 2, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Iowa North\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",43.2666666666"); add_srs_wkt (p, 9, "6667],PARAMETER[\"standard_parallel_2\",42.0666666666666"); add_srs_wkt (p, 10, "7],PARAMETER[\"latitude_of_origin\",41.5],PARAMETER[\"ce"); add_srs_wkt (p, 11, "ntral_meridian\",-93.5],PARAMETER[\"false_easting\",1500"); add_srs_wkt (p, 12, "000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre\""); add_srs_wkt (p, 13, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"6462\"]]"); p = add_epsg_def_ex (filter, first, last, 6463, "epsg", 6463, "NAD83(2011) / Iowa North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.99"); add_proj4text (p, 2, "99898402 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Iowa North (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 8, "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43."); add_srs_wkt (p, 9, "26666666666667],PARAMETER[\"standard_parallel_2\",42.066"); add_srs_wkt (p, 10, "66666666667],PARAMETER[\"latitude_of_origin\",41.5],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-93.5],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",4921250],PARAMETER[\"false_northing\",3280833.3333"); add_srs_wkt (p, 13, "00001],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 15, "H],AUTHORITY[\"EPSG\",\"6463\"]]"); p = add_epsg_def_ex (filter, first, last, 6464, "epsg", 6464, "NAD83(2011) / Iowa South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, "667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Iowa South\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",41.7833333333"); add_srs_wkt (p, 9, "3333],PARAMETER[\"standard_parallel_2\",40.6166666666666"); add_srs_wkt (p, 10, "7],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-93.5],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 12, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"6464\"]]"); p = add_epsg_def_ex (filter, first, last, 6465, "epsg", 6465, "NAD83(2011) / Iowa South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, "667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +"); add_proj4text (p, 2, "ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Iowa South (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 8, "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41."); add_srs_wkt (p, 9, "78333333333333],PARAMETER[\"standard_parallel_2\",40.616"); add_srs_wkt (p, 10, "66666666667],PARAMETER[\"latitude_of_origin\",40],PARAME"); add_srs_wkt (p, 11, "TER[\"central_meridian\",-93.5],PARAMETER[\"false_eastin"); add_srs_wkt (p, 12, "g\",1640416.6667],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 13, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"6465\"]]"); p = add_epsg_def_ex (filter, first, last, 6466, "epsg", 6466, "NAD83(2011) / Kansas North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Kansas North\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.78333"); add_srs_wkt (p, 9, "333333333],PARAMETER[\"standard_parallel_2\",38.71666666"); add_srs_wkt (p, 10, "666667],PARAMETER[\"latitude_of_origin\",38.333333333333"); add_srs_wkt (p, 11, "34],PARAMETER[\"central_meridian\",-98],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_easting\",400000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 13, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 14, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6466\"]]"); p = add_epsg_def_ex (filter, first, last, 6467, "epsg", 6467, "NAD83(2011) / Kansas North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.9999"); add_proj4text (p, 2, "8984 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Kansas North (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 9, "9.78333333333333],PARAMETER[\"standard_parallel_2\",38.7"); add_srs_wkt (p, 10, "1666666666667],PARAMETER[\"latitude_of_origin\",38.33333"); add_srs_wkt (p, 11, "333333334],PARAMETER[\"central_meridian\",-98],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",1312333.3333],PARAMETER[\"false_north"); add_srs_wkt (p, 13, "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 15, "RTH],AUTHORITY[\"EPSG\",\"6467\"]]"); p = add_epsg_def_ex (filter, first, last, 6468, "epsg", 6468, "NAD83(2011) / Kansas South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y"); add_proj4text (p, 2, "_0=400000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Kansas South\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.56666"); add_srs_wkt (p, 9, "666666667],PARAMETER[\"standard_parallel_2\",37.26666666"); add_srs_wkt (p, 10, "666667],PARAMETER[\"latitude_of_origin\",36.666666666666"); add_srs_wkt (p, 11, "66],PARAMETER[\"central_meridian\",-98.5],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_easting\",400000],PARAMETER[\"false_northing\",40000"); add_srs_wkt (p, 13, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6468\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 6469, "epsg", 6469, "NAD83(2011) / Kansas South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99"); add_proj4text (p, 2, "998984 +y_0=399999.99998984 +ellps=GRS80 +units=us-ft +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Kansas South (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 9, "8.56666666666667],PARAMETER[\"standard_parallel_2\",37.2"); add_srs_wkt (p, 10, "6666666666667],PARAMETER[\"latitude_of_origin\",36.66666"); add_srs_wkt (p, 11, "666666666],PARAMETER[\"central_meridian\",-98.5],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_easting\",1312333.3333],PARAMETER[\"false_nor"); add_srs_wkt (p, 13, "thing\",1312333.3333],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 14, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 15, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6469\"]]"); p = add_epsg_def_ex (filter, first, last, 6470, "epsg", 6470, "NAD83(2011) / Kentucky North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Kentucky North\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.9666"); add_srs_wkt (p, 9, "6666666667],PARAMETER[\"standard_parallel_2\",38.9666666"); add_srs_wkt (p, 10, "6666667],PARAMETER[\"latitude_of_origin\",37.5],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-84.25],PARAMETER[\"false_easting"); add_srs_wkt (p, 12, "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 13, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"6470\"]]"); p = add_epsg_def_ex (filter, first, last, 6471, "epsg", 6471, "NAD83(2011) / Kentucky North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Kentucky North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",37.96666666666667],PARAMETER[\"standard_parallel_2\",38"); add_srs_wkt (p, 10, ".96666666666667],PARAMETER[\"latitude_of_origin\",37.5],"); add_srs_wkt (p, 11, "PARAMETER[\"central_meridian\",-84.25],PARAMETER[\"false"); add_srs_wkt (p, 12, "_easting\",1640416.667],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 13, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 15, "ORITY[\"EPSG\",\"6471\"]]"); p = add_epsg_def_ex (filter, first, last, 6472, "epsg", 6472, "NAD83(2011) / Kentucky Single Zone", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666"); add_proj4text (p, 1, "666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 "); add_proj4text (p, 2, "+y_0=1000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Kentucky Single Zone\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 9, "7.08333333333334],PARAMETER[\"standard_parallel_2\",38.6"); add_srs_wkt (p, 10, "6666666666666],PARAMETER[\"latitude_of_origin\",36.33333"); add_srs_wkt (p, 11, "333333334],PARAMETER[\"central_meridian\",-85.75],PARAME"); add_srs_wkt (p, 12, "TER[\"false_easting\",1500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 13, "g\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"6472\"]]"); p = add_epsg_def_ex (filter, first, last, 6473, "epsg", 6473, "NAD83(2011) / Kentucky Single Zone (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666"); add_proj4text (p, 1, "666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 "); add_proj4text (p, 2, "+y_0=999999.9998983998 +ellps=GRS80 +units=us-ft +no_def"); add_proj4text (p, 3, "s"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Kentucky Single Zone (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 8, "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, "el_1\",37.08333333333334],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 10, "2\",38.66666666666666],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 11, "36.33333333333334],PARAMETER[\"central_meridian\",-85.75"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",4921250],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",3280833.333],UNIT[\"US survey foot\",0.30480"); add_srs_wkt (p, 14, "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 15, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6473\"]]"); p = add_epsg_def_ex (filter, first, last, 6474, "epsg", 6474, "NAD83(2011) / Kentucky South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333"); add_proj4text (p, 1, "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +"); add_proj4text (p, 2, "y_0=500000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Kentucky South\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.9333"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"standard_parallel_2\",36.7333333"); add_srs_wkt (p, 10, "3333333],PARAMETER[\"latitude_of_origin\",36.33333333333"); add_srs_wkt (p, 11, "334],PARAMETER[\"central_meridian\",-85.75],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",500000],PARAMETER[\"false_northing\",500"); add_srs_wkt (p, 13, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 14, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6474"); add_srs_wkt (p, 15, "\"]]"); p = add_epsg_def_ex (filter, first, last, 6475, "epsg", 6475, "NAD83(2011) / Kentucky South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333"); add_proj4text (p, 1, "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0"); add_proj4text (p, 2, "001016001 +y_0=500000.0001016001 +ellps=GRS80 +units=us-"); add_proj4text (p, 3, "ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Kentucky South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",37.93333333333333],PARAMETER[\"standard_parallel_2\",36"); add_srs_wkt (p, 10, ".73333333333333],PARAMETER[\"latitude_of_origin\",36.333"); add_srs_wkt (p, 11, "33333333334],PARAMETER[\"central_meridian\",-85.75],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",1640416.667],PARAMETER[\"false_n"); add_srs_wkt (p, 13, "orthing\",1640416.667],UNIT[\"US survey foot\",0.3048006"); add_srs_wkt (p, 14, "096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 15, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6475\"]]"); p = add_epsg_def_ex (filter, first, last, 6476, "epsg", 6476, "NAD83(2011) / Louisiana North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666"); add_proj4text (p, 1, "667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Louisiana North\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",32.66"); add_srs_wkt (p, 9, "666666666666],PARAMETER[\"standard_parallel_2\",31.16666"); add_srs_wkt (p, 10, "666666667],PARAMETER[\"latitude_of_origin\",30.5],PARAME"); add_srs_wkt (p, 11, "TER[\"central_meridian\",-92.5],PARAMETER[\"false_eastin"); add_srs_wkt (p, 12, "g\",1000000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 13, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6476\"]]"); p = add_epsg_def_ex (filter, first, last, 6477, "epsg", 6477, "NAD83(2011) / Louisiana North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666"); add_proj4text (p, 1, "667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Louisiana North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",32.66666666666666],PARAMETER[\"standard_parallel_2\",31"); add_srs_wkt (p, 10, ".16666666666667],PARAMETER[\"latitude_of_origin\",30.5],"); add_srs_wkt (p, 11, "PARAMETER[\"central_meridian\",-92.5],PARAMETER[\"false_"); add_srs_wkt (p, 12, "easting\",3280833.333300001],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 15, "AUTHORITY[\"EPSG\",\"6477\"]]"); p = add_epsg_def_ex (filter, first, last, 6478, "epsg", 6478, "NAD83(2011) / Louisiana South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91"); add_proj4text (p, 1, ".33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Louisiana South\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",30.7]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",29.3],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",28.5],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 11, "91.33333333333333],PARAMETER[\"false_easting\",1000000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"6478\"]]"); p = add_epsg_def_ex (filter, first, last, 6479, "epsg", 6479, "NAD83(2011) / Louisiana South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91"); add_proj4text (p, 1, ".33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Louisiana South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",30.7],PARAMETER[\"standard_parallel_2\",29.3],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",28.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 11, "an\",-91.33333333333333],PARAMETER[\"false_easting\",328"); add_srs_wkt (p, 12, "0833.333300001],PARAMETER[\"false_northing\",0],UNIT[\"U"); add_srs_wkt (p, 13, "S survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"6479\"]]"); p = add_epsg_def_ex (filter, first, last, 6480, "epsg", 6480, "NAD83(2011) / Maine CS2000 Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=5"); add_proj4text (p, 1, "00000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Maine CS2000 Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",43.5],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-69.125],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.99998],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"6480\"]]"); p = add_epsg_def_ex (filter, first, last, 6481, "epsg", 6481, "NAD83(2011) / Maine CS2000 East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0"); add_proj4text (p, 1, ".99998 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Maine CS2000 East\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",43.833333333"); add_srs_wkt (p, 9, "33334],PARAMETER[\"central_meridian\",-67.875],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.99998],PARAMETER[\"false_easting\",7"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"6481\"]]"); p = add_epsg_def_ex (filter, first, last, 6482, "epsg", 6482, "NAD83(2011) / Maine CS2000 West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0"); add_proj4text (p, 1, ".99998 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Maine CS2000 West\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",42.833333333"); add_srs_wkt (p, 9, "33334],PARAMETER[\"central_meridian\",-70.375],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.99998],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"6482\"]]"); p = add_epsg_def_ex (filter, first, last, 6483, "epsg", 6483, "NAD83(2011) / Maine East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Maine East\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",43.66666666666666],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",-68.5],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9999],PARAMETER[\"false_easting\",300000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"6483\"]]"); p = add_epsg_def_ex (filter, first, last, 6484, "epsg", 6484, "NAD83(2011) / Maine East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +units=us"); add_proj4text (p, 2, "-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Maine East (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",43.666666666"); add_srs_wkt (p, 9, "66666],PARAMETER[\"central_meridian\",-68.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.9999],PARAMETER[\"false_easting\",98425"); add_srs_wkt (p, 11, "0.0000000002],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 12, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"6484\"]]"); p = add_epsg_def_ex (filter, first, last, 6485, "epsg", 6485, "NAD83(2011) / Maine West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Maine West\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",42.83333333333334],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",-70.16666666666667],PARAMETE"); add_srs_wkt (p, 10, "R[\"scale_factor\",0.999966667],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",900000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6485\"]]"); p = add_epsg_def_ex (filter, first, last, 6486, "epsg", 6486, "NAD83(2011) / Maine West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +u"); add_proj4text (p, 2, "nits=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Maine West (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",42.833333333"); add_srs_wkt (p, 9, "33334],PARAMETER[\"central_meridian\",-70.16666666666667"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.999966667],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",2952750],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"6486\"]]"); p = add_epsg_def_ex (filter, first, last, 6487, "epsg", 6487, "NAD83(2011) / Maryland", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666"); add_proj4text (p, 1, "666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Maryland\",GEOGCS[\"NAD83(2011)\""); add_srs_wkt (p, 1, ",DATUM[\"NAD83_National_Spatial_Reference_System_2011\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",39.45],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",38.3],PARAMETER[\"latitude_o"); add_srs_wkt (p, 10, "f_origin\",37.66666666666666],PARAMETER[\"central_meridi"); add_srs_wkt (p, 11, "an\",-77],PARAMETER[\"false_easting\",400000],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"6487\"]]"); p = add_epsg_def_ex (filter, first, last, 6488, "epsg", 6488, "NAD83(2011) / Maryland (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666"); add_proj4text (p, 1, "666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, "0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Maryland (ftUS)\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.45"); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_2\",38.3],PARAMETER[\"la"); add_srs_wkt (p, 10, "titude_of_origin\",37.66666666666666],PARAMETER[\"centra"); add_srs_wkt (p, 11, "l_meridian\",-77],PARAMETER[\"false_easting\",1312333.33"); add_srs_wkt (p, 12, "3],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot"); add_srs_wkt (p, 13, "\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS"); add_srs_wkt (p, 14, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6488"); add_srs_wkt (p, 15, "\"]]"); p = add_epsg_def_ex (filter, first, last, 6489, "epsg", 6489, "NAD83(2011) / Massachusetts Island", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333"); add_proj4text (p, 1, "333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Massachusetts Island\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 9, "1.48333333333333],PARAMETER[\"standard_parallel_2\",41.2"); add_srs_wkt (p, 10, "8333333333333],PARAMETER[\"latitude_of_origin\",41],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-70.5],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 13, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6489\"]]"); p = add_epsg_def_ex (filter, first, last, 6490, "epsg", 6490, "NAD83(2011) / Massachusetts Island (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333"); add_proj4text (p, 1, "333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0"); add_proj4text (p, 2, " +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Massachusetts Island (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 8, "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, "el_1\",41.48333333333333],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 10, "2\",41.28333333333333],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 11, "41],PARAMETER[\"central_meridian\",-70.5],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_easting\",1640416.667],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"6490\"]]"); p = add_epsg_def_ex (filter, first, last, 6491, "epsg", 6491, "NAD83(2011) / Massachusetts Mainland", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, "667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellp"); add_proj4text (p, 2, "s=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Massachusetts Mainland\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",42.68333333333333],PARAMETER[\"standard_parallel_2\",41"); add_srs_wkt (p, 10, ".71666666666667],PARAMETER[\"latitude_of_origin\",41],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-71.5],PARAMETER[\"false_ea"); add_srs_wkt (p, 12, "sting\",200000],PARAMETER[\"false_northing\",750000],UNI"); add_srs_wkt (p, 13, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6491\"]]"); p = add_epsg_def_ex (filter, first, last, 6492, "epsg", 6492, "NAD83(2011) / Massachusetts Mainland (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, "667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=7"); add_proj4text (p, 2, "50000 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Massachusetts Mainland (ftUS)\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",42.68333333333333],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 10, "_2\",41.71666666666667],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",41],PARAMETER[\"central_meridian\",-71.5],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_easting\",656166.667],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "2460625],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 15, "RTH],AUTHORITY[\"EPSG\",\"6492\"]]"); p = add_epsg_def_ex (filter, first, last, 6493, "epsg", 6493, "NAD83(2011) / Michigan Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43"); add_proj4text (p, 1, ".31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Michigan Central\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.7"); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_2\",44.18333333333333],P"); add_srs_wkt (p, 10, "ARAMETER[\"latitude_of_origin\",43.31666666666667],PARAM"); add_srs_wkt (p, 11, "ETER[\"central_meridian\",-84.36666666666666],PARAMETER["); add_srs_wkt (p, 12, "\"false_easting\",6000000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6493\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 6494, "epsg", 6494, "NAD83(2011) / Michigan Central (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43"); add_proj4text (p, 1, ".31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.9"); add_proj4text (p, 2, "99976001 +y_0=0 +ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Michigan Central (ft)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",45.7],PARAMETER[\"standard_parallel_2\",44.183333333333"); add_srs_wkt (p, 10, "33],PARAMETER[\"latitude_of_origin\",43.31666666666667],"); add_srs_wkt (p, 11, "PARAMETER[\"central_meridian\",-84.36666666666666],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_easting\",19685039.37],PARAMETER[\"false_no"); add_srs_wkt (p, 13, "rthing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 14, "02\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 15, "SG\",\"6494\"]]"); p = add_epsg_def_ex (filter, first, last, 6495, "epsg", 6495, "NAD83(2011) / Michigan North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333"); add_proj4text (p, 1, "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Michigan North\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.0833"); add_srs_wkt (p, 9, "3333333334],PARAMETER[\"standard_parallel_2\",45.4833333"); add_srs_wkt (p, 10, "3333333],PARAMETER[\"latitude_of_origin\",44.78333333333"); add_srs_wkt (p, 11, "333],PARAMETER[\"central_meridian\",-87],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_easting\",8000000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 13, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6495\"]]"); p = add_epsg_def_ex (filter, first, last, 6496, "epsg", 6496, "NAD83(2011) / Michigan North (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333"); add_proj4text (p, 1, "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999"); add_proj4text (p, 2, "968001 +y_0=0 +ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Michigan North (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 9, "7.08333333333334],PARAMETER[\"standard_parallel_2\",45.4"); add_srs_wkt (p, 10, "8333333333333],PARAMETER[\"latitude_of_origin\",44.78333"); add_srs_wkt (p, 11, "333333333],PARAMETER[\"central_meridian\",-87],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",26246719.16],PARAMETER[\"false_northi"); add_srs_wkt (p, 13, "ng\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"6496\"]]"); p = add_epsg_def_ex (filter, first, last, 6497, "epsg", 6497, "NAD83(2011) / Michigan Oblique Mercator", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Hotine_Oblique_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=33"); add_proj4text (p, 1, "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +no"); add_proj4text (p, 2, "_uoff +gamma=337.25556 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Michigan Oblique Mercator\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Hoti"); add_srs_wkt (p, 8, "ne_Oblique_Mercator\"],PARAMETER[\"latitude_of_center\","); add_srs_wkt (p, 9, "45.30916666666666],PARAMETER[\"longitude_of_center\",-86"); add_srs_wkt (p, 10, "],PARAMETER[\"azimuth\",337.25556],PARAMETER[\"rectified"); add_srs_wkt (p, 11, "_grid_angle\",337.25556],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 12, "96],PARAMETER[\"false_easting\",2546731.496],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",-4354009.816],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 14, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 15, ",AUTHORITY[\"EPSG\",\"6497\"]]"); p = add_epsg_def_ex (filter, first, last, 6498, "epsg", 6498, "NAD83(2011) / Michigan South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41"); add_proj4text (p, 1, ".5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Michigan South\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43.6666"); add_srs_wkt (p, 9, "6666666666],PARAMETER[\"standard_parallel_2\",42.1],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",41.5],PARAMETER[\"central_m"); add_srs_wkt (p, 11, "eridian\",-84.36666666666666],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",4000000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 13, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"6498\"]]"); p = add_epsg_def_ex (filter, first, last, 6499, "epsg", 6499, "NAD83(2011) / Michigan South (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41"); add_proj4text (p, 1, ".5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Michigan South (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 9, "3.66666666666666],PARAMETER[\"standard_parallel_2\",42.1"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",41.5],PARAMETER[\"cen"); add_srs_wkt (p, 11, "tral_meridian\",-84.36666666666666],PARAMETER[\"false_ea"); add_srs_wkt (p, 12, "sting\",13123359.58],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 13, "T[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X"); add_srs_wkt (p, 14, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6499\"]]"); p = add_epsg_def_ex (filter, first, last, 6500, "epsg", 6500, "NAD83(2011) / Minnesota Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Minnesota Central\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 8, "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47."); add_srs_wkt (p, 9, "05],PARAMETER[\"standard_parallel_2\",45.61666666666667]"); add_srs_wkt (p, 10, ",PARAMETER[\"latitude_of_origin\",45],PARAMETER[\"centra"); add_srs_wkt (p, 11, "l_meridian\",-94.25],PARAMETER[\"false_easting\",800000]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_northing\",100000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"6500\"]]"); p = add_epsg_def_ex (filter, first, last, 6501, "epsg", 6501, "NAD83(2011) / Minnesota Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989"); add_proj4text (p, 2, "83997 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Minnesota Central (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 4, "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 8, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 9, "\",47.05],PARAMETER[\"standard_parallel_2\",45.616666666"); add_srs_wkt (p, 10, "66667],PARAMETER[\"latitude_of_origin\",45],PARAMETER[\""); add_srs_wkt (p, 11, "central_meridian\",-94.25],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 12, "624666.6667],PARAMETER[\"false_northing\",328083.3333],U"); add_srs_wkt (p, 13, "NIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 15, "RITY[\"EPSG\",\"6501\"]]"); p = add_epsg_def_ex (filter, first, last, 6502, "epsg", 6502, "NAD83(2011) / Minnesota North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y"); add_proj4text (p, 2, "_0=100000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Minnesota North\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.63"); add_srs_wkt (p, 9, "333333333333],PARAMETER[\"standard_parallel_2\",47.03333"); add_srs_wkt (p, 10, "333333333],PARAMETER[\"latitude_of_origin\",46.5],PARAME"); add_srs_wkt (p, 11, "TER[\"central_meridian\",-93.1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 12, "g\",800000],PARAMETER[\"false_northing\",100000],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6502\"]]"); p = add_epsg_def_ex (filter, first, last, 6503, "epsg", 6503, "NAD83(2011) / Minnesota North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); add_proj4text (p, 2, "00101599 +y_0=99999.99998983997 +ellps=GRS80 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Minnesota North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",48.63333333333333],PARAMETER[\"standard_parallel_2\",47"); add_srs_wkt (p, 10, ".03333333333333],PARAMETER[\"latitude_of_origin\",46.5],"); add_srs_wkt (p, 11, "PARAMETER[\"central_meridian\",-93.1],PARAMETER[\"false_"); add_srs_wkt (p, 12, "easting\",2624666.6667],PARAMETER[\"false_northing\",328"); add_srs_wkt (p, 13, "083.3333],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 15, "ORTH],AUTHORITY[\"EPSG\",\"6503\"]]"); p = add_epsg_def_ex (filter, first, last, 6504, "epsg", 6504, "NAD83(2011) / Minnesota South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps="); add_proj4text (p, 2, "GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Minnesota South\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.21"); add_srs_wkt (p, 9, "666666666667],PARAMETER[\"standard_parallel_2\",43.78333"); add_srs_wkt (p, 10, "333333333],PARAMETER[\"latitude_of_origin\",43],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-94],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "800000],PARAMETER[\"false_northing\",100000],UNIT[\"metr"); add_srs_wkt (p, 13, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6504\"]]"); p = add_epsg_def_ex (filter, first, last, 6505, "epsg", 6505, "NAD83(2011) / Minnesota South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999"); add_proj4text (p, 2, "99.99998983997 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Minnesota South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",45.21666666666667],PARAMETER[\"standard_parallel_2\",43"); add_srs_wkt (p, 10, ".78333333333333],PARAMETER[\"latitude_of_origin\",43],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-94],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",2624666.6667],PARAMETER[\"false_northing\",328083."); add_srs_wkt (p, 13, "3333],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 15, "],AUTHORITY[\"EPSG\",\"6505\"]]"); p = add_epsg_def_ex (filter, first, last, 6506, "epsg", 6506, "NAD83(2011) / Mississippi East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Mississippi East\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",29.5],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-88.83333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.99995],PARAMETER[\"false_easting\",3000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"6506\"]]"); p = add_epsg_def_ex (filter, first, last, 6507, "epsg", 6507, "NAD83(2011) / Mississippi East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Mississippi East (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",29.5],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-88.83333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.99995],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",984250.0000000002],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"6507\"]]"); p = add_epsg_def_ex (filter, first, last, 6508, "epsg", 6508, "NAD83(2011) / Mississippi TM", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=32.5 +lon_0=-89.75 +k=0.9998335 +x_0="); add_proj4text (p, 1, "500000 +y_0=1300000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Mississippi TM\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",32.5],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",-89.75],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9998335],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",1300000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"6508\"]]"); p = add_epsg_def_ex (filter, first, last, 6509, "epsg", 6509, "NAD83(2011) / Mississippi West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Mississippi West\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",29.5],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-90.33333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.99995],PARAMETER[\"false_easting\",7000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"6509\"]]"); p = add_epsg_def_ex (filter, first, last, 6510, "epsg", 6510, "NAD83(2011) / Mississippi West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Mississippi West (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",29.5],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-90.33333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.99995],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",2296583.333],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 12, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"6510\"]]"); p = add_epsg_def_ex (filter, first, last, 6511, "epsg", 6511, "NAD83(2011) / Missouri Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9"); add_proj4text (p, 1, "99933333 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Missouri Central\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",35.8333333333"); add_srs_wkt (p, 9, "3334],PARAMETER[\"central_meridian\",-92.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.999933333],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"6511\"]]"); p = add_epsg_def_ex (filter, first, last, 6512, "epsg", 6512, "NAD83(2011) / Missouri East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9"); add_proj4text (p, 1, "99933333 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Missouri East\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",35.83333333333334"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-90.5],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.999933333],PARAMETER[\"false_easting\",2500"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"6512\"]]"); p = add_epsg_def_ex (filter, first, last, 6513, "epsg", 6513, "NAD83(2011) / Missouri West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9"); add_proj4text (p, 1, "99941177 +x_0=850000 +y_0=0 +ellps=GRS80 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Missouri West\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",36.16666666666666"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-94.5],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.999941177],PARAMETER[\"false_easting\",8500"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"6513\"]]"); p = add_epsg_def_ex (filter, first, last, 6514, "epsg", 6514, "NAD83(2011) / Montana", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5"); add_proj4text (p, 1, " +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Montana\",GEOGCS[\"NAD83(2011)\","); add_srs_wkt (p, 1, "DATUM[\"NAD83_National_Spatial_Reference_System_2011\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",49],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",45],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",44.25],PARAMETER[\"central_meridian\",-109.5],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",600000],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 13, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 14, "514\"]]"); p = add_epsg_def_ex (filter, first, last, 6515, "epsg", 6515, "NAD83(2011) / Montana (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5"); add_proj4text (p, 1, " +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +units=ft +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Montana (ft)\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",49],PARA"); add_srs_wkt (p, 9, "METER[\"standard_parallel_2\",45],PARAMETER[\"latitude_o"); add_srs_wkt (p, 10, "f_origin\",44.25],PARAMETER[\"central_meridian\",-109.5]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",1968503.937],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"6515\"]]"); p = add_epsg_def_ex (filter, first, last, 6516, "epsg", 6516, "NAD83(2011) / Nebraska", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Nebraska\",GEOGCS[\"NAD83(2011)\""); add_srs_wkt (p, 1, ",DATUM[\"NAD83_National_Spatial_Reference_System_2011\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",43],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",40],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",39.83333333333334],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, "-100],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"6516\"]]"); p = add_epsg_def_ex (filter, first, last, 6517, "epsg", 6517, "NAD83(2011) / Nebraska (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Nebraska (ftUS) (deprecated)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); add_srs_wkt (p, 2, "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_1\",43],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",40],PARAMETER[\"latitude_of_origin\",39."); add_srs_wkt (p, 11, "83333333333334],PARAMETER[\"central_meridian\",-100],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_easting\",1640416.6667],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 14, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 15, "Y\",NORTH],AUTHORITY[\"EPSG\",\"6517\"]]"); p = add_epsg_def_ex (filter, first, last, 6518, "epsg", 6518, "NAD83(2011) / Nevada Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, "9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Nevada Central\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",-116.6666666666667],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",0.9999],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",6000000],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"6518\"]]"); p = add_epsg_def_ex (filter, first, last, 6519, "epsg", 6519, "NAD83(2011) / Nevada Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, "9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Nevada Central (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",34.75],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-116.6666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",1640416.6667],PARAMETER[\"false_northing\",19685000],UN"); add_srs_wkt (p, 12, "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"6519\"]]"); p = add_epsg_def_ex (filter, first, last, 6520, "epsg", 6520, "NAD83(2011) / Nevada East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Nevada East\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-115.5833333333333],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9999],PARAMETER[\"false_easting\",200000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",8000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"6520\"]]"); p = add_epsg_def_ex (filter, first, last, 6521, "epsg", 6521, "NAD83(2011) / Nevada East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps="); add_proj4text (p, 2, "GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Nevada East (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",34.75],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-115.5833333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",65"); add_srs_wkt (p, 11, "6166.6667],PARAMETER[\"false_northing\",26246666.6667000"); add_srs_wkt (p, 12, "1],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"6521\"]]"); p = add_epsg_def_ex (filter, first, last, 6522, "epsg", 6522, "NAD83(2011) / Nevada West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Nevada West\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-118.5833333333333],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9999],PARAMETER[\"false_easting\",800000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",4000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"6522\"]]"); p = add_epsg_def_ex (filter, first, last, 6523, "epsg", 6523, "NAD83(2011) / Nevada West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps"); add_proj4text (p, 2, "=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Nevada West (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",34.75],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-118.5833333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",26"); add_srs_wkt (p, 11, "24666.6667],PARAMETER[\"false_northing\",13123333.3333],"); add_srs_wkt (p, 12, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"6523\"]]"); p = add_epsg_def_ex (filter, first, last, 6524, "epsg", 6524, "NAD83(2011) / New Hampshire", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / New Hampshire\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",42.5],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-71.66666666666667],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.999966667],PARAMETER[\"false_easting\",30000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"6524\"]]"); p = add_epsg_def_ex (filter, first, last, 6525, "epsg", 6525, "NAD83(2011) / New Hampshire (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / New Hampshire (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",42.5],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-71.66666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.999966667],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",984250.0000000002],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"6525\"]]"); p = add_epsg_def_ex (filter, first, last, 6526, "epsg", 6526, "NAD83(2011) / New Jersey", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / New Jersey\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",38.83333333333334],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",-74.5],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9999],PARAMETER[\"false_easting\",150000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"6526\"]]"); p = add_epsg_def_ex (filter, first, last, 6527, "epsg", 6527, "NAD83(2011) / New Jersey (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=us-ft +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / New Jersey (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",38.833333333"); add_srs_wkt (p, 9, "33334],PARAMETER[\"central_meridian\",-74.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.9999],PARAMETER[\"false_easting\",49212"); add_srs_wkt (p, 11, "5],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot"); add_srs_wkt (p, 12, "\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS"); add_srs_wkt (p, 13, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6527"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 6528, "epsg", 6528, "NAD83(2011) / New Mexico Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000"); add_proj4text (p, 1, "00 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / New Mexico Central\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",31],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-106.25],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",0.9999],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"6528\"]]"); p = add_epsg_def_ex (filter, first, last, 6529, "epsg", 6529, "NAD83(2011) / New Mexico Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000"); add_proj4text (p, 1, "00.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / New Mexico Central (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",31],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",-106.25],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9999],PARAMETER[\"false_easting\",1640416.6"); add_srs_wkt (p, 11, "67],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 12, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"652"); add_srs_wkt (p, 14, "9\"]]"); p = add_epsg_def_ex (filter, first, last, 6530, "epsg", 6530, "NAD83(2011) / New Mexico East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); add_proj4text (p, 1, "909091 +x_0=165000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / New Mexico East\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",-104.3333333333333],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.999909091],PARAMETER[\"false_easting\",165"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"6530\"]]"); p = add_epsg_def_ex (filter, first, last, 6531, "epsg", 6531, "NAD83(2011) / New Mexico East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); add_proj4text (p, 1, "909091 +x_0=165000 +y_0=0 +ellps=GRS80 +units=us-ft +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / New Mexico East (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",31],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-104.3333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.999909091],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",541337.5],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 12, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"6531\"]]"); p = add_epsg_def_ex (filter, first, last, 6532, "epsg", 6532, "NAD83(2011) / New Mexico West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); add_proj4text (p, 1, "916667 +x_0=830000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / New Mexico West\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",-107.8333333333333],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.999916667],PARAMETER[\"false_easting\",830"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"6532\"]]"); p = add_epsg_def_ex (filter, first, last, 6533, "epsg", 6533, "NAD83(2011) / New Mexico West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); add_proj4text (p, 1, "916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +units"); add_proj4text (p, 2, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / New Mexico West (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",31],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-107.8333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.999916667],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",2723091.667],PARAMETER[\"false_northing\",0],UNIT[\"U"); add_srs_wkt (p, 12, "S survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"6533\"]]"); p = add_epsg_def_ex (filter, first, last, 6534, "epsg", 6534, "NAD83(2011) / New York Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / New York Central\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",40],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",-76.58333333333333],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",0.9999375],PARAMETER[\"false_easting\",2500"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"6534\"]]"); p = add_epsg_def_ex (filter, first, last, 6535, "epsg", 6535, "NAD83(2011) / New York Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / New York Central (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",40],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",-76.58333333333333],PARAMETE"); add_srs_wkt (p, 10, "R[\"scale_factor\",0.9999375],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",820208.3330000002],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"6535\"]]"); p = add_epsg_def_ex (filter, first, last, 6536, "epsg", 6536, "NAD83(2011) / New York East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / New York East\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",38.83333333333334"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-74.5],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9999],PARAMETER[\"false_easting\",150000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"6536\"]]"); p = add_epsg_def_ex (filter, first, last, 6537, "epsg", 6537, "NAD83(2011) / New York East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=us-ft +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / New York East (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",38.8333333"); add_srs_wkt (p, 9, "3333334],PARAMETER[\"central_meridian\",-74.5],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",49"); add_srs_wkt (p, 11, "2125],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); add_srs_wkt (p, 12, "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); add_srs_wkt (p, 13, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 14, "537\"]]"); p = add_epsg_def_ex (filter, first, last, 6538, "epsg", 6538, "NAD83(2011) / New York Long Island", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / New York Long Island\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 9, "1.03333333333333],PARAMETER[\"standard_parallel_2\",40.6"); add_srs_wkt (p, 10, "6666666666666],PARAMETER[\"latitude_of_origin\",40.16666"); add_srs_wkt (p, 11, "666666666],PARAMETER[\"central_meridian\",-74],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",300000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6538\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 6539, "epsg", 6539, "NAD83(2011) / New York Long Island (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000"); add_proj4text (p, 2, "000001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / New York Long Island (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"La"); add_srs_wkt (p, 8, "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, "el_1\",41.03333333333333],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 10, "2\",40.66666666666666],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 11, "40.16666666666666],PARAMETER[\"central_meridian\",-74],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_easting\",984250.0000000002],PARAMETER["); add_srs_wkt (p, 13, "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 14, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 15, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6539\"]]"); p = add_epsg_def_ex (filter, first, last, 6540, "epsg", 6540, "NAD83(2011) / New York West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=350000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / New York West\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-78.58333333333333],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999375],PARAMETER[\"false_easting\",350000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"6540\"]]"); p = add_epsg_def_ex (filter, first, last, 6541, "epsg", 6541, "NAD83(2011) / New York West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / New York West (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",40],PARAME"); add_srs_wkt (p, 9, "TER[\"central_meridian\",-78.58333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.9999375],PARAMETER[\"false_easting\",11"); add_srs_wkt (p, 11, "48291.667],PARAMETER[\"false_northing\",0],UNIT[\"US sur"); add_srs_wkt (p, 12, "vey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"6541\"]]"); p = add_epsg_def_ex (filter, first, last, 6542, "epsg", 6542, "NAD83(2011) / North Carolina", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); add_proj4text (p, 1, "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps"); add_proj4text (p, 2, "=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / North Carolina\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.1666"); add_srs_wkt (p, 9, "6666666666],PARAMETER[\"standard_parallel_2\",34.3333333"); add_srs_wkt (p, 10, "3333334],PARAMETER[\"latitude_of_origin\",33.75],PARAMET"); add_srs_wkt (p, 11, "ER[\"central_meridian\",-79],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",609601.22],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 13, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 14, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6542\"]]"); p = add_epsg_def_ex (filter, first, last, 6543, "epsg", 6543, "NAD83(2011) / North Carolina (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); add_proj4text (p, 1, "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / North Carolina (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",36.16666666666666],PARAMETER[\"standard_parallel_2\",34"); add_srs_wkt (p, 10, ".33333333333334],PARAMETER[\"latitude_of_origin\",33.75]"); add_srs_wkt (p, 11, ",PARAMETER[\"central_meridian\",-79],PARAMETER[\"false_e"); add_srs_wkt (p, 12, "asting\",2000000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 13, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"6543\"]]"); p = add_epsg_def_ex (filter, first, last, 6544, "epsg", 6544, "NAD83(2011) / North Dakota North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333"); add_proj4text (p, 1, "333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / North Dakota North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48"); add_srs_wkt (p, 9, ".73333333333333],PARAMETER[\"standard_parallel_2\",47.43"); add_srs_wkt (p, 10, "333333333333],PARAMETER[\"latitude_of_origin\",47],PARAM"); add_srs_wkt (p, 11, "ETER[\"central_meridian\",-100.5],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",600000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 13, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6544\"]]"); p = add_epsg_def_ex (filter, first, last, 6545, "epsg", 6545, "NAD83(2011) / North Dakota North (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333"); add_proj4text (p, 1, "333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +"); add_proj4text (p, 2, "ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / North Dakota North (ft)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 8, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",48.73333333333333],PARAMETER[\"standard_parallel_2\",47"); add_srs_wkt (p, 10, ".43333333333333],PARAMETER[\"latitude_of_origin\",47],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-100.5],PARAMETER[\"false_e"); add_srs_wkt (p, 12, "asting\",1968503.937],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 13, "IT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6545\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 6546, "epsg", 6546, "NAD83(2011) / North Dakota South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333"); add_proj4text (p, 1, "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / North Dakota South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47"); add_srs_wkt (p, 9, ".48333333333333],PARAMETER[\"standard_parallel_2\",46.18"); add_srs_wkt (p, 10, "333333333333],PARAMETER[\"latitude_of_origin\",45.666666"); add_srs_wkt (p, 11, "66666666],PARAMETER[\"central_meridian\",-100.5],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_easting\",600000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 14, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6546\""); add_srs_wkt (p, 15, "]]"); p = add_epsg_def_ex (filter, first, last, 6547, "epsg", 6547, "NAD83(2011) / North Dakota South (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333"); add_proj4text (p, 1, "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9"); add_proj4text (p, 2, "999976 +y_0=0 +ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / North Dakota South (ft)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 8, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",47.48333333333333],PARAMETER[\"standard_parallel_2\",46"); add_srs_wkt (p, 10, ".18333333333333],PARAMETER[\"latitude_of_origin\",45.666"); add_srs_wkt (p, 11, "66666666666],PARAMETER[\"central_meridian\",-100.5],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",1968503.937],PARAMETER[\"false_n"); add_srs_wkt (p, 13, "orthing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"6547\"]]"); p = add_epsg_def_ex (filter, first, last, 6548, "epsg", 6548, "NAD83(2011) / Ohio North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39"); add_proj4text (p, 1, ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Ohio North\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",41.7],PARAMET"); add_srs_wkt (p, 9, "ER[\"standard_parallel_2\",40.43333333333333],PARAMETER["); add_srs_wkt (p, 10, "\"latitude_of_origin\",39.66666666666666],PARAMETER[\"ce"); add_srs_wkt (p, 11, "ntral_meridian\",-82.5],PARAMETER[\"false_easting\",6000"); add_srs_wkt (p, 12, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 14, "ORTH],AUTHORITY[\"EPSG\",\"6548\"]]"); p = add_epsg_def_ex (filter, first, last, 6549, "epsg", 6549, "NAD83(2011) / Ohio North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39"); add_proj4text (p, 1, ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Ohio North (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 8, "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41."); add_srs_wkt (p, 9, "7],PARAMETER[\"standard_parallel_2\",40.43333333333333],"); add_srs_wkt (p, 10, "PARAMETER[\"latitude_of_origin\",39.66666666666666],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-82.5],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US"); add_srs_wkt (p, 13, " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"6549\"]]"); p = add_epsg_def_ex (filter, first, last, 6550, "epsg", 6550, "NAD83(2011) / Ohio South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333"); add_proj4text (p, 1, "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Ohio South\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",40.0333333333"); add_srs_wkt (p, 9, "3333],PARAMETER[\"standard_parallel_2\",38.7333333333333"); add_srs_wkt (p, 10, "3],PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-82.5],PARAMETER[\"false_easting\",600000"); add_srs_wkt (p, 12, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"6550\"]]"); p = add_epsg_def_ex (filter, first, last, 6551, "epsg", 6551, "NAD83(2011) / Ohio South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333"); add_proj4text (p, 1, "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Ohio South (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 8, "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40."); add_srs_wkt (p, 9, "03333333333333],PARAMETER[\"standard_parallel_2\",38.733"); add_srs_wkt (p, 10, "33333333333],PARAMETER[\"latitude_of_origin\",38],PARAME"); add_srs_wkt (p, 11, "TER[\"central_meridian\",-82.5],PARAMETER[\"false_eastin"); add_srs_wkt (p, 12, "g\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 13, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 14, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 15, "G\",\"6551\"]]"); p = add_epsg_def_ex (filter, first, last, 6552, "epsg", 6552, "NAD83(2011) / Oklahoma North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666"); add_proj4text (p, 1, "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Oklahoma North\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.7666"); add_srs_wkt (p, 9, "6666666667],PARAMETER[\"standard_parallel_2\",35.5666666"); add_srs_wkt (p, 10, "6666667],PARAMETER[\"latitude_of_origin\",35],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-98],PARAMETER[\"false_easting\",60"); add_srs_wkt (p, 12, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"6552\"]]"); p = add_epsg_def_ex (filter, first, last, 6553, "epsg", 6553, "NAD83(2011) / Oklahoma North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666"); add_proj4text (p, 1, "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Oklahoma North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",36.76666666666667],PARAMETER[\"standard_parallel_2\",35"); add_srs_wkt (p, 10, ".56666666666667],PARAMETER[\"latitude_of_origin\",35],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-98],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US"); add_srs_wkt (p, 13, " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"6553\"]]"); p = add_epsg_def_ex (filter, first, last, 6554, "epsg", 6554, "NAD83(2011) / Oklahoma South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333"); add_proj4text (p, 1, "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Oklahoma South\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35.2333"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"standard_parallel_2\",33.9333333"); add_srs_wkt (p, 10, "3333333],PARAMETER[\"latitude_of_origin\",33.33333333333"); add_srs_wkt (p, 11, "334],PARAMETER[\"central_meridian\",-98],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_easting\",600000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 13, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6554\"]]"); p = add_epsg_def_ex (filter, first, last, 6555, "epsg", 6555, "NAD83(2011) / Oklahoma South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333"); add_proj4text (p, 1, "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Oklahoma South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",35.23333333333333],PARAMETER[\"standard_parallel_2\",33"); add_srs_wkt (p, 10, ".93333333333333],PARAMETER[\"latitude_of_origin\",33.333"); add_srs_wkt (p, 11, "33333333334],PARAMETER[\"central_meridian\",-98],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_easting\",1968500],PARAMETER[\"false_northing"); add_srs_wkt (p, 13, "\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 15, "],AUTHORITY[\"EPSG\",\"6555\"]]"); p = add_epsg_def_ex (filter, first, last, 6556, "epsg", 6556, "NAD83(2011) / Oregon LCC (m)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120"); add_proj4text (p, 1, ".5 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Oregon LCC (m)\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",45.5],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_origin\",41.75],PARAMETER[\"central_meridian\",-120"); add_srs_wkt (p, 11, ".5],PARAMETER[\"false_easting\",400000],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"6556\"]]"); p = add_epsg_def_ex (filter, first, last, 6557, "epsg", 6557, "NAD83(2011) / Oregon GIC Lambert (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120"); add_proj4text (p, 1, ".5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +units=ft +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Oregon GIC Lambert (ft)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 8, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",43],PARAMETER[\"standard_parallel_2\",45.5],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",41.75],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-120.5],PARAMETER[\"false_easting\",1312335.958],PARA"); add_srs_wkt (p, 12, "METER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"6557\"]]"); p = add_epsg_def_ex (filter, first, last, 6558, "epsg", 6558, "NAD83(2011) / Oregon North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Oregon North\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",46],PARA"); add_srs_wkt (p, 9, "METER[\"standard_parallel_2\",44.33333333333334],PARAMET"); add_srs_wkt (p, 10, "ER[\"latitude_of_origin\",43.66666666666666],PARAMETER[\""); add_srs_wkt (p, 11, "central_meridian\",-120.5],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 12, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"6558\"]]"); p = add_epsg_def_ex (filter, first, last, 6559, "epsg", 6559, "NAD83(2011) / Oregon North (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Oregon North (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 8, "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",46]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",44.33333333333334],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",43.66666666666666],PARAME"); add_srs_wkt (p, 11, "TER[\"central_meridian\",-120.5],PARAMETER[\"false_easti"); add_srs_wkt (p, 12, "ng\",8202099.738],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 13, "foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6559\"]]"); p = add_epsg_def_ex (filter, first, last, 6560, "epsg", 6560, "NAD83(2011) / Oregon South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Oregon South\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44],PARA"); add_srs_wkt (p, 9, "METER[\"standard_parallel_2\",42.33333333333334],PARAMET"); add_srs_wkt (p, 10, "ER[\"latitude_of_origin\",41.66666666666666],PARAMETER[\""); add_srs_wkt (p, 11, "central_meridian\",-120.5],PARAMETER[\"false_easting\",1"); add_srs_wkt (p, 12, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"6560\"]]"); p = add_epsg_def_ex (filter, first, last, 6561, "epsg", 6561, "NAD83(2011) / Oregon South (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Oregon South (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 8, "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",42.33333333333334],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",41.66666666666666],PARAME"); add_srs_wkt (p, 11, "TER[\"central_meridian\",-120.5],PARAMETER[\"false_easti"); add_srs_wkt (p, 12, "ng\",4921259.843],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 13, "foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6561\"]]"); p = add_epsg_def_ex (filter, first, last, 6562, "epsg", 6562, "NAD83(2011) / Pennsylvania North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4"); add_proj4text (p, 1, "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps"); add_proj4text (p, 2, "=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Pennsylvania North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41"); add_srs_wkt (p, 9, ".95],PARAMETER[\"standard_parallel_2\",40.88333333333333"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",40.16666666666666],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-77.75],PARAMETER[\"false_e"); add_srs_wkt (p, 12, "asting\",600000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6562\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_00.c��������������������������������������������������0000664�0001750�0001750�00000530360�12544707704�017036� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_00 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 2000, "epsg", 2000, "Anguilla 1957 / British West Indies Grid", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Anguilla_1957", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, "_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Anguilla 1957 / British West Indies Grid\",GEOG"); add_srs_wkt (p, 1, "CS[\"Anguilla 1957\",DATUM[\"Anguilla_1957\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7012\"]],AUTHORITY[\"EPSG\",\"6600\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4600\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-62],PARAMETER[\"scale_factor\",0.9995],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",400000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"2000\"]]"); p = add_epsg_def_ex (filter, first, last, 2001, "epsg", 2001, "Antigua 1943 / British West Indies Grid", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Antigua_1943", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=-255,-15,71,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Antigua 1943 / British West Indies Grid\",GEOGC"); add_srs_wkt (p, 1, "S[\"Antigua 1943\",DATUM[\"Antigua_1943\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7012\"]],TOWGS84[-255,-15,71,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6601\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4601\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-62],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9995],PARAMETER[\"false_easting\",400000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"2001\"]]"); p = add_epsg_def_ex (filter, first, last, 2002, "epsg", 2002, "Dominica 1945 / British West Indies Grid", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Dominica_1945", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=725,685,536,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Dominica 1945 / British West Indies Grid\",GEOG"); add_srs_wkt (p, 1, "CS[\"Dominica 1945\",DATUM[\"Dominica_1945\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7012\"]],TOWGS84[725,685,536,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6602\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4602\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",-62],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",0.9995],PARAMETER[\"false_easting\",400000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 13, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"2002\"]]"); p = add_epsg_def_ex (filter, first, last, 2003, "epsg", 2003, "Grenada 1953 / British West Indies Grid", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Grenada_1953", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=72,213.7,93,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Grenada 1953 / British West Indies Grid\",GEOGC"); add_srs_wkt (p, 1, "S[\"Grenada 1953\",DATUM[\"Grenada_1953\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7012\"]],TOWGS84[72,213.7,93,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6603\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4603\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-62],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9995],PARAMETER[\"false_easting\",400000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"2003\"]]"); p = add_epsg_def_ex (filter, first, last, 2004, "epsg", 2004, "Montserrat 1958 / British West Indies Grid", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Montserrat_1958", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=174,359,365,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Montserrat 1958 / British West Indies Grid\",GE"); add_srs_wkt (p, 1, "OGCS[\"Montserrat 1958\",DATUM[\"Montserrat_1958\",SPHER"); add_srs_wkt (p, 2, "OID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7012\"]],TOWGS84[174,359,365,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6604\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4604\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 9, "_origin\",0],PARAMETER[\"central_meridian\",-62],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",0.9995],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "400000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2004\"]]"); p = add_epsg_def_ex (filter, first, last, 2005, "epsg", 2005, "St. Kitts 1955 / British West Indies Grid", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "St_Kitts_1955", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=9,183,236,0,0,0,"); add_proj4text (p, 2, "0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"St. Kitts 1955 / British West Indies Grid\",GEO"); add_srs_wkt (p, 1, "GCS[\"St. Kitts 1955\",DATUM[\"St_Kitts_1955\",SPHEROID["); add_srs_wkt (p, 2, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7012\"]],TOWGS84[9,183,236,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6605\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4605\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",-62],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",0.9995],PARAMETER[\"false_easting\",400000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 13, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"2005\"]]"); p = add_epsg_def_ex (filter, first, last, 2006, "epsg", 2006, "St. Lucia 1955 / British West Indies Grid", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "St_Lucia_1955", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=-149,128,296,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"St. Lucia 1955 / British West Indies Grid\",GEO"); add_srs_wkt (p, 1, "GCS[\"St. Lucia 1955\",DATUM[\"St_Lucia_1955\",SPHEROID["); add_srs_wkt (p, 2, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7012\"]],TOWGS84[-149,128,296,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6606\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4606\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",-62],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",0.9995],PARAMETER[\"false_easting\",400"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 13, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2006\"]]"); p = add_epsg_def_ex (filter, first, last, 2007, "epsg", 2007, "St. Vincent 45 / British West Indies Grid", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "St_Vincent_1945", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=195.671,332.517,"); add_proj4text (p, 2, "274.607,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"St. Vincent 45 / British West Indies Grid\",GEO"); add_srs_wkt (p, 1, "GCS[\"St. Vincent 1945\",DATUM[\"St_Vincent_1945\",SPHER"); add_srs_wkt (p, 2, "OID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7012\"]],TOWGS84[195.671,332.517,274.607,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6607\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4607\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 10, "62],PARAMETER[\"scale_factor\",0.9995],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",400000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 12, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 14, "007\"]]"); p = add_epsg_def_ex (filter, first, last, 2008, "epsg", 2008, "NAD27(CGQ77) / SCoPQ zone 2 (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_CGQ77", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / SCoPQ zone 2 (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD27(CGQ77)\",DATUM[\"North_American_Datum_1927_CG"); add_srs_wkt (p, 2, "Q77\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821389"); add_srs_wkt (p, 3, "82,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 4, "09\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-55.5],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9999],PARAMETER[\"false_easting\",304800],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2008\"]]"); p = add_epsg_def_ex (filter, first, last, 2009, "epsg", 2009, "NAD27(CGQ77) / SCoPQ zone 3", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_CGQ77", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / SCoPQ zone 3\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-58.5],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",304800],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2009\"]]"); p = add_epsg_def_ex (filter, first, last, 2010, "epsg", 2010, "NAD27(CGQ77) / SCoPQ zone 4", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_CGQ77", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / SCoPQ zone 4\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-61.5],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",304800],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2010\"]]"); p = add_epsg_def_ex (filter, first, last, 2011, "epsg", 2011, "NAD27(CGQ77) / SCoPQ zone 5", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_CGQ77", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / SCoPQ zone 5\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-64.5],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",304800],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2011\"]]"); p = add_epsg_def_ex (filter, first, last, 2012, "epsg", 2012, "NAD27(CGQ77) / SCoPQ zone 6", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_CGQ77", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / SCoPQ zone 6\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-67.5],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",304800],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2012\"]]"); p = add_epsg_def_ex (filter, first, last, 2013, "epsg", 2013, "NAD27(CGQ77) / SCoPQ zone 7", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_CGQ77", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / SCoPQ zone 7\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-70.5],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",304800],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2013\"]]"); p = add_epsg_def_ex (filter, first, last, 2014, "epsg", 2014, "NAD27(CGQ77) / SCoPQ zone 8", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_CGQ77", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / SCoPQ zone 8\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-73.5],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",304800],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2014\"]]"); p = add_epsg_def_ex (filter, first, last, 2015, "epsg", 2015, "NAD27(CGQ77) / SCoPQ zone 9", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_CGQ77", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / SCoPQ zone 9\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-76.5],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",304800],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2015\"]]"); p = add_epsg_def_ex (filter, first, last, 2016, "epsg", 2016, "NAD27(CGQ77) / SCoPQ zone 10", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_CGQ77", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / SCoPQ zone 10\",GEOGCS[\"NAD27(C"); add_srs_wkt (p, 1, "GQ77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHERO"); add_srs_wkt (p, 2, "ID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-79.5],PARAMETER[\"scale_factor\",0.9999"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",304800],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"2016\"]]"); p = add_epsg_def_ex (filter, first, last, 2017, "epsg", 2017, "NAD27(76) / MTM zone 8", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_1976", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 8\",GEOGCS[\"NAD27(76)\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clark"); add_srs_wkt (p, 2, "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4608\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",-73.5],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",304800],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2017\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 2018, "epsg", 2018, "NAD27(76) / MTM zone 9", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_1976", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 9\",GEOGCS[\"NAD27(76)\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clark"); add_srs_wkt (p, 2, "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4608\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",-76.5],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",304800],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2018\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 2019, "epsg", 2019, "NAD27(76) / MTM zone 10", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_1976", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 10\",GEOGCS[\"NAD27(76)\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-79.5],PARAMETER[\"scale_factor\",0.9999],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",304800],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2019\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 2020, "epsg", 2020, "NAD27(76) / MTM zone 11", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_1976", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 11\",GEOGCS[\"NAD27(76)\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-82.5],PARAMETER[\"scale_factor\",0.9999],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",304800],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"2020\"]]"); p = add_epsg_def_ex (filter, first, last, 2021, "epsg", 2021, "NAD27(76) / MTM zone 12", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_1976", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 12\",GEOGCS[\"NAD27(76)\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-81],PARAMETER[\"scale_factor\",0.9999],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",304800],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2021\"]]"); p = add_epsg_def_ex (filter, first, last, 2022, "epsg", 2022, "NAD27(76) / MTM zone 13", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_1976", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 13\",GEOGCS[\"NAD27(76)\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-84],PARAMETER[\"scale_factor\",0.9999],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",304800],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2022\"]]"); p = add_epsg_def_ex (filter, first, last, 2023, "epsg", 2023, "NAD27(76) / MTM zone 14", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_1976", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 14\",GEOGCS[\"NAD27(76)\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-87],PARAMETER[\"scale_factor\",0.9999],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",304800],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2023\"]]"); p = add_epsg_def_ex (filter, first, last, 2024, "epsg", 2024, "NAD27(76) / MTM zone 15", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_1976", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 15\",GEOGCS[\"NAD27(76)\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-90],PARAMETER[\"scale_factor\",0.9999],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",304800],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2024\"]]"); p = add_epsg_def_ex (filter, first, last, 2025, "epsg", 2025, "NAD27(76) / MTM zone 16", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_1976", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 16\",GEOGCS[\"NAD27(76)\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-93],PARAMETER[\"scale_factor\",0.9999],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",304800],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2025\"]]"); p = add_epsg_def_ex (filter, first, last, 2026, "epsg", 2026, "NAD27(76) / MTM zone 17", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_1976", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / MTM zone 17\",GEOGCS[\"NAD27(76)\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-96],PARAMETER[\"scale_factor\",0.9999],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",304800],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2026\"]]"); p = add_epsg_def_ex (filter, first, last, 2027, "epsg", 2027, "NAD27(76) / UTM zone 15N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_1976", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / UTM zone 15N\",GEOGCS[\"NAD27(76)\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2027\"]]"); p = add_epsg_def_ex (filter, first, last, 2028, "epsg", 2028, "NAD27(76) / UTM zone 16N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_1976", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / UTM zone 16N\",GEOGCS[\"NAD27(76)\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2028\"]]"); p = add_epsg_def_ex (filter, first, last, 2029, "epsg", 2029, "NAD27(76) / UTM zone 17N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_1976", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / UTM zone 17N\",GEOGCS[\"NAD27(76)\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2029\"]]"); p = add_epsg_def_ex (filter, first, last, 2030, "epsg", 2030, "NAD27(76) / UTM zone 18N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_1976", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(76) / UTM zone 18N\",GEOGCS[\"NAD27(76)\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927_1976\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6608\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4608\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2030\"]]"); p = add_epsg_def_ex (filter, first, last, 2031, "epsg", 2031, "NAD27(CGQ77) / UTM zone 17N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_CGQ77", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / UTM zone 17N\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-81],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"2031\"]]"); p = add_epsg_def_ex (filter, first, last, 2032, "epsg", 2032, "NAD27(CGQ77) / UTM zone 18N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_CGQ77", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / UTM zone 18N\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-75],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"2032\"]]"); p = add_epsg_def_ex (filter, first, last, 2033, "epsg", 2033, "NAD27(CGQ77) / UTM zone 19N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_CGQ77", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / UTM zone 19N\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-69],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"2033\"]]"); p = add_epsg_def_ex (filter, first, last, 2034, "epsg", 2034, "NAD27(CGQ77) / UTM zone 20N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_CGQ77", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / UTM zone 20N\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-63],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"2034\"]]"); p = add_epsg_def_ex (filter, first, last, 2035, "epsg", 2035, "NAD27(CGQ77) / UTM zone 21N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_CGQ77", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / UTM zone 21N\",GEOGCS[\"NAD27(CG"); add_srs_wkt (p, 1, "Q77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4609\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-57],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"2035\"]]"); p = add_epsg_def_ex (filter, first, last, 2036, "epsg", 2036, "NAD83(CSRS98) / New Brunswick Stereo (deprecated)", 0, 1, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Oblique_Stereographic", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=2"); add_proj4text (p, 1, "500000 +y_0=7500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / New Brunswick Stereo (deprecate"); add_srs_wkt (p, 1, "d)\",GEOGCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spa"); add_srs_wkt (p, 2, "tial_Reference_System\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4140\"]],PROJECTION[\"Oblique_Stereographic\"],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",46.5],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",-66.5],PARAMETER[\"scale_factor\",0.999912],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",2500000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",7500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 14, "THORITY[\"EPSG\",\"2036\"]]"); p = add_epsg_def_ex (filter, first, last, 2037, "epsg", 2037, "NAD83(CSRS98) / UTM zone 19N (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / UTM zone 19N (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4140"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-69]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2037"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2038, "epsg", 2038, "NAD83(CSRS98) / UTM zone 20N (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / UTM zone 20N (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4140"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-63]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2038"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2039, "epsg", 2039, "Israel / Israeli TM Grid", 0, 0, "GRS 1980", "Greenwich", "Israel", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31.73439361111111 +lon_0=35.204516944"); add_proj4text (p, 1, "44445 +k=1.0000067 +x_0=219529.584 +y_0=626907.39 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=-48,55,52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Israel / Israeli TM Grid\",GEOGCS[\"Israel\",DA"); add_srs_wkt (p, 1, "TUM[\"Israel\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 2, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[-48,55,52,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"6141\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, "41\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",31.73439361111111],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",35.20451694444445],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1.0000067],PARAMETER[\"false_easting\",219529.584],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",626907.39],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 13, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2039\"]]"); p = add_epsg_def_ex (filter, first, last, 2040, "epsg", 2040, "Locodjo 1965 / UTM zone 30N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Locodjo_1965", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=clrk80 +towgs84=-125,53,467,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Locodjo 1965 / UTM zone 30N\",GEOGCS[\"Locodjo "); add_srs_wkt (p, 1, "1965\",DATUM[\"Locodjo_1965\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[-125,53,467,0,0,0,0],AUTHORITY[\"EPSG\",\"6142\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4142\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-3],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2040\"]]"); p = add_epsg_def_ex (filter, first, last, 2041, "epsg", 2041, "Abidjan 1987 / UTM zone 30N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Abidjan_1987", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=clrk80 +towgs84=-124.76,53,466"); add_proj4text (p, 1, ".79,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Abidjan 1987 / UTM zone 30N\",GEOGCS[\"Abidjan "); add_srs_wkt (p, 1, "1987\",DATUM[\"Abidjan_1987\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[-124.76,53,466.79,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "143\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4143\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",-3],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"2041\"]]"); p = add_epsg_def_ex (filter, first, last, 2042, "epsg", 2042, "Locodjo 1965 / UTM zone 29N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Locodjo_1965", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=clrk80 +towgs84=-125,53,467,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Locodjo 1965 / UTM zone 29N\",GEOGCS[\"Locodjo "); add_srs_wkt (p, 1, "1965\",DATUM[\"Locodjo_1965\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[-125,53,467,0,0,0,0],AUTHORITY[\"EPSG\",\"6142\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4142\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-9],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2042\"]]"); p = add_epsg_def_ex (filter, first, last, 2043, "epsg", 2043, "Abidjan 1987 / UTM zone 29N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Abidjan_1987", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=clrk80 +towgs84=-124.76,53,466"); add_proj4text (p, 1, ".79,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Abidjan 1987 / UTM zone 29N\",GEOGCS[\"Abidjan "); add_srs_wkt (p, 1, "1987\",DATUM[\"Abidjan_1987\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[-124.76,53,466.79,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "143\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4143\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",-9],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"2043\"]]"); p = add_epsg_def_ex (filter, first, last, 2044, "epsg", 2044, "Hanoi 1972 / Gauss-Kruger zone 18", 0, 1, "Krassowsky 1940", "Greenwich", "Hanoi_1972", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hanoi 1972 / Gauss-Kruger zone 18\",GEOGCS[\"Ha"); add_srs_wkt (p, 1, "noi 1972\",DATUM[\"Hanoi_1972\",SPHEROID[\"Krassowsky 19"); add_srs_wkt (p, 2, "40\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84"); add_srs_wkt (p, 3, "[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY[\"EPSG\",\"614"); add_srs_wkt (p, 4, "7\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4147\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",105],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",1],PARAMETER[\"false_easting\",18500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"2044\"]]"); p = add_epsg_def_ex (filter, first, last, 2045, "epsg", 2045, "Hanoi 1972 / Gauss-Kruger zone 19", 0, 1, "Krassowsky 1940", "Greenwich", "Hanoi_1972", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hanoi 1972 / Gauss-Kruger zone 19\",GEOGCS[\"Ha"); add_srs_wkt (p, 1, "noi 1972\",DATUM[\"Hanoi_1972\",SPHEROID[\"Krassowsky 19"); add_srs_wkt (p, 2, "40\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84"); add_srs_wkt (p, 3, "[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY[\"EPSG\",\"614"); add_srs_wkt (p, 4, "7\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4147\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",111],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",1],PARAMETER[\"false_easting\",19500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"2045\"]]"); p = add_epsg_def_ex (filter, first, last, 2046, "epsg", 2046, "Hartebeesthoek94 / Lo15", 0, 0, "WGS 84", "Greenwich", "Hartebeesthoek94", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo15\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Mercator_So"); add_srs_wkt (p, 8, "uth_Orientated\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",15],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"2046\"]]"); p = add_epsg_def_ex (filter, first, last, 2047, "epsg", 2047, "Hartebeesthoek94 / Lo17", 0, 0, "WGS 84", "Greenwich", "Hartebeesthoek94", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=17 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo17\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Mercator_So"); add_srs_wkt (p, 8, "uth_Orientated\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",17],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"2047\"]]"); p = add_epsg_def_ex (filter, first, last, 2048, "epsg", 2048, "Hartebeesthoek94 / Lo19", 0, 0, "WGS 84", "Greenwich", "Hartebeesthoek94", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=19 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo19\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Mercator_So"); add_srs_wkt (p, 8, "uth_Orientated\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",19],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"2048\"]]"); p = add_epsg_def_ex (filter, first, last, 2049, "epsg", 2049, "Hartebeesthoek94 / Lo21", 0, 0, "WGS 84", "Greenwich", "Hartebeesthoek94", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo21\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Mercator_So"); add_srs_wkt (p, 8, "uth_Orientated\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",21],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"2049\"]]"); p = add_epsg_def_ex (filter, first, last, 2050, "epsg", 2050, "Hartebeesthoek94 / Lo23", 0, 0, "WGS 84", "Greenwich", "Hartebeesthoek94", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=23 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo23\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Mercator_So"); add_srs_wkt (p, 8, "uth_Orientated\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",23],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"2050\"]]"); p = add_epsg_def_ex (filter, first, last, 2051, "epsg", 2051, "Hartebeesthoek94 / Lo25", 0, 0, "WGS 84", "Greenwich", "Hartebeesthoek94", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=25 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo25\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Mercator_So"); add_srs_wkt (p, 8, "uth_Orientated\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",25],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"2051\"]]"); p = add_epsg_def_ex (filter, first, last, 2052, "epsg", 2052, "Hartebeesthoek94 / Lo27", 0, 0, "WGS 84", "Greenwich", "Hartebeesthoek94", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo27\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Mercator_So"); add_srs_wkt (p, 8, "uth_Orientated\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",27],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"2052\"]]"); p = add_epsg_def_ex (filter, first, last, 2053, "epsg", 2053, "Hartebeesthoek94 / Lo29", 0, 0, "WGS 84", "Greenwich", "Hartebeesthoek94", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=29 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo29\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Mercator_So"); add_srs_wkt (p, 8, "uth_Orientated\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",29],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"2053\"]]"); p = add_epsg_def_ex (filter, first, last, 2054, "epsg", 2054, "Hartebeesthoek94 / Lo31", 0, 0, "WGS 84", "Greenwich", "Hartebeesthoek94", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo31\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Mercator_So"); add_srs_wkt (p, 8, "uth_Orientated\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",31],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"2054\"]]"); p = add_epsg_def_ex (filter, first, last, 2055, "epsg", 2055, "Hartebeesthoek94 / Lo33", 0, 0, "WGS 84", "Greenwich", "Hartebeesthoek94", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Hartebeesthoek94 / Lo33\",GEOGCS[\"Hartebeestho"); add_srs_wkt (p, 1, "ek94\",DATUM[\"Hartebeesthoek94\",SPHEROID[\"WGS 84\",63"); add_srs_wkt (p, 2, "78137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6148\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4148\"]],PROJECTION[\"Transverse_Mercator_So"); add_srs_wkt (p, 8, "uth_Orientated\"],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",33],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Y\",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"2055\"]]"); p = add_epsg_def_ex (filter, first, last, 2056, "epsg", 2056, "CH1903+ / LV95", 0, 0, "Bessel 1841", "Greenwich", "CH1903+", "Hotine_Oblique_Mercator_Azimuth_Center", "metre", "Y", "East", "X", "North"); add_proj4text (p, 0, "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333"); add_proj4text (p, 1, "333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +t"); add_proj4text (p, 2, "owgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CH1903+ / LV95\",GEOGCS[\"CH1903+\",DATUM[\"CH1"); add_srs_wkt (p, 1, "903+\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[674.374,15.056,405"); add_srs_wkt (p, 3, ".346,0,0,0,0],AUTHORITY[\"EPSG\",\"6150\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4150\"]],PROJECTION[\"Hotine_Oblique_Mercator_Az"); add_srs_wkt (p, 8, "imuth_Center\"],PARAMETER[\"latitude_of_center\",46.9524"); add_srs_wkt (p, 9, "0555555556],PARAMETER[\"longitude_of_center\",7.43958333"); add_srs_wkt (p, 10, "3333333],PARAMETER[\"azimuth\",90],PARAMETER[\"rectified"); add_srs_wkt (p, 11, "_grid_angle\",90],PARAMETER[\"scale_factor\",1],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_easting\",2600000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",1200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "2056\"]]"); p = add_epsg_def_ex (filter, first, last, 2057, "epsg", 2057, "Rassadiran / Nakhl e Taqi", 0, 0, "International 1924", "Greenwich", "Rassadiran", "Hotine_Oblique_Mercator_Azimuth_Center", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=27.51882880555555 +lonc=52.6035391666"); add_proj4text (p, 1, "6667 +alpha=0.5716611944444444 +k=0.999895934 +x_0=65837"); add_proj4text (p, 2, "7.437 +y_0=3044969.194 +gamma=0.5716611944444444 +ellps="); add_proj4text (p, 3, "intl +towgs84=-133.63,-157.5,-158.62,0,0,0,0 +units=m +n"); add_proj4text (p, 4, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"Rassadiran / Nakhl e Taqi\",GEOGCS[\"Rassadiran"); add_srs_wkt (p, 1, "\",DATUM[\"Rassadiran\",SPHEROID[\"International 1924\","); add_srs_wkt (p, 2, "6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-133.6"); add_srs_wkt (p, 3, "3,-157.5,-158.62,0,0,0,0],AUTHORITY[\"EPSG\",\"6153\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4153\"]],PROJECTION[\"Hotine_Obliqu"); add_srs_wkt (p, 8, "e_Mercator_Azimuth_Center\"],PARAMETER[\"latitude_of_cen"); add_srs_wkt (p, 9, "ter\",27.51882880555555],PARAMETER[\"longitude_of_center"); add_srs_wkt (p, 10, "\",52.60353916666667],PARAMETER[\"azimuth\",0.5716611944"); add_srs_wkt (p, 11, "444444],PARAMETER[\"rectified_grid_angle\",0.57166119444"); add_srs_wkt (p, 12, "44444],PARAMETER[\"scale_factor\",0.999895934],PARAMETER"); add_srs_wkt (p, 13, "[\"false_easting\",658377.437],PARAMETER[\"false_northin"); add_srs_wkt (p, 14, "g\",3044969.194],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 15, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 16, "AUTHORITY[\"EPSG\",\"2057\"]]"); p = add_epsg_def_ex (filter, first, last, 2058, "epsg", 2058, "ED50(ED77) / UTM zone 38N", 0, 0, "International 1924", "Greenwich", "European_Datum_1950_1977", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=intl +towgs84=-117,-132,-164,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50(ED77) / UTM zone 38N\",GEOGCS[\"ED50(ED77)"); add_srs_wkt (p, 1, "\",DATUM[\"European_Datum_1950_1977\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-117,-132,-164,0,0,0,0],AUTHORITY[\"EPSG\",\"615"); add_srs_wkt (p, 4, "4\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4154\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",45],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"2058\"]]"); p = add_epsg_def_ex (filter, first, last, 2059, "epsg", 2059, "ED50(ED77) / UTM zone 39N", 0, 0, "International 1924", "Greenwich", "European_Datum_1950_1977", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=intl +towgs84=-117,-132,-164,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50(ED77) / UTM zone 39N\",GEOGCS[\"ED50(ED77)"); add_srs_wkt (p, 1, "\",DATUM[\"European_Datum_1950_1977\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-117,-132,-164,0,0,0,0],AUTHORITY[\"EPSG\",\"615"); add_srs_wkt (p, 4, "4\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4154\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",51],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"2059\"]]"); p = add_epsg_def_ex (filter, first, last, 2060, "epsg", 2060, "ED50(ED77) / UTM zone 40N", 0, 0, "International 1924", "Greenwich", "European_Datum_1950_1977", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=40 +ellps=intl +towgs84=-117,-132,-164,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50(ED77) / UTM zone 40N\",GEOGCS[\"ED50(ED77)"); add_srs_wkt (p, 1, "\",DATUM[\"European_Datum_1950_1977\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-117,-132,-164,0,0,0,0],AUTHORITY[\"EPSG\",\"615"); add_srs_wkt (p, 4, "4\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4154\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",57],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"2060\"]]"); p = add_epsg_def_ex (filter, first, last, 2061, "epsg", 2061, "ED50(ED77) / UTM zone 41N", 0, 0, "International 1924", "Greenwich", "European_Datum_1950_1977", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=41 +ellps=intl +towgs84=-117,-132,-164,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50(ED77) / UTM zone 41N\",GEOGCS[\"ED50(ED77)"); add_srs_wkt (p, 1, "\",DATUM[\"European_Datum_1950_1977\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-117,-132,-164,0,0,0,0],AUTHORITY[\"EPSG\",\"615"); add_srs_wkt (p, 4, "4\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4154\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",63],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"2061\"]]"); p = add_epsg_def_ex (filter, first, last, 2062, "epsg", 2062, "Madrid 1870 (Madrid) / Spain", 0, 0, "Struve 1860", "Madrid", "Madrid_1870_Madrid", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40 +lat_0=40 +lon_0=0 +k_0=0.9988085293"); add_proj4text (p, 1, " +x_0=600000 +y_0=600000 +a=6378298.3 +b=6356657.1426695"); add_proj4text (p, 2, "62 +pm=madrid +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Madrid 1870 (Madrid) / Spain\",GEOGCS[\"Madrid "); add_srs_wkt (p, 1, "1870 (Madrid)\",DATUM[\"Madrid_1870_Madrid\",SPHEROID[\""); add_srs_wkt (p, 2, "Struve 1860\",6378298.3,294.73,AUTHORITY[\"EPSG\",\"7028"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6903\"]],PRIMEM[\"Madrid\",-3."); add_srs_wkt (p, 4, "687938888888889,AUTHORITY[\"EPSG\",\"8905\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4903\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_1SP\"],PARAMETER[\"latitude_of_origin\",40],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "988085293],PARAMETER[\"false_easting\",600000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",600000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2062\"]]"); p = add_epsg_def_ex (filter, first, last, 2063, "epsg", 2063, "Dabola 1981 / UTM zone 28N (deprecated)", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Conakry_1905", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,"); add_proj4text (p, 1, "259,-9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Dabola 1981 / UTM zone 28N (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"Conakry 1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7011\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6315\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4315\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",-15],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 13, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2063\"]]"); p = add_epsg_def_ex (filter, first, last, 2064, "epsg", 2064, "Dabola 1981 / UTM zone 29N (deprecated)", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Conakry_1905", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,"); add_proj4text (p, 1, "259,-9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Dabola 1981 / UTM zone 29N (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"Conakry 1905\",DATUM[\"Conakry_1905\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7011\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6315\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4315\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",-9],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"2064\"]]"); p = add_epsg_def_ex (filter, first, last, 2065, "epsg", 2065, "S-JTSK (Ferro) / Krovak", 0, 0, "Bessel 1841", "Ferro", "System_Jednotne_Trigonometricke_Site_Katastralni_Ferro", "Krovak", "metre", "X", "South", "Y", "West"); add_proj4text (p, 0, "+proj=krovak +lat_0=49.5 +lon_0=42.5 +alpha=30.288139722"); add_proj4text (p, 1, "22222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +towgs84=589"); add_proj4text (p, 2, ",76,480,0,0,0,0 +pm=ferro +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"S-JTSK (Ferro) / Krovak\",GEOGCS[\"S-JTSK (Ferr"); add_srs_wkt (p, 1, "o)\",DATUM[\"System_Jednotne_Trigonometricke_Site_Katast"); add_srs_wkt (p, 2, "ralni_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1"); add_srs_wkt (p, 3, "528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[589,76,480,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6818\"]],PRIMEM[\"Ferro\","); add_srs_wkt (p, 5, "-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4818\"]],PROJECTION[\"Krovak\"],PARAMET"); add_srs_wkt (p, 9, "ER[\"latitude_of_center\",49.5],PARAMETER[\"longitude_of"); add_srs_wkt (p, 10, "_center\",42.5],PARAMETER[\"azimuth\",30.28813972222222]"); add_srs_wkt (p, 11, ",PARAMETER[\"pseudo_standard_parallel_1\",78.5],PARAMETE"); add_srs_wkt (p, 12, "R[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 13, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",SOUTH],AXIS[\"Y\",WE"); add_srs_wkt (p, 15, "ST],AUTHORITY[\"EPSG\",\"2065\"]]"); p = add_epsg_def_ex (filter, first, last, 2066, "epsg", 2066, "Mount Dillon / Tobago Grid", 0, 0, "Clarke 1858", "Greenwich", "Mount_Dillon", "Cassini_Soldner", "Clarke's link", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=cass +lat_0=11.25217861111111 +lon_0=-60.686008888"); add_proj4text (p, 1, "88889 +x_0=37718.66159325 +y_0=36209.91512952 +a=6378293"); add_proj4text (p, 2, ".645208759 +b=6356617.987679838 +to_meter=0.201166195164"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mount Dillon / Tobago Grid\",GEOGCS[\"Mount Dil"); add_srs_wkt (p, 1, "lon\",DATUM[\"Mount_Dillon\",SPHEROID[\"Clarke 1858\",63"); add_srs_wkt (p, 2, "78293.645208759,294.2606763692606,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "007\"]],AUTHORITY[\"EPSG\",\"6157\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4157\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",11.25217861111111],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-60.68600888888889],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",187500],PARAMETER[\"false_northing\",180000],UNIT"); add_srs_wkt (p, 11, "[\"Clarke's link\",0.201166195164,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "039\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2066\"]]"); p = add_epsg_def_ex (filter, first, last, 2067, "epsg", 2067, "Naparima 1955 / UTM zone 20N", 0, 0, "International 1924", "Greenwich", "Naparima_1955", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=intl +towgs84=-0.465,372.095,1"); add_proj4text (p, 1, "71.736,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Naparima 1955 / UTM zone 20N\",GEOGCS[\"Naparim"); add_srs_wkt (p, 1, "a 1955\",DATUM[\"Naparima_1955\",SPHEROID[\"Internationa"); add_srs_wkt (p, 2, "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 3, "84[-0.465,372.095,171.736,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6158\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4158\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"2067\"]]"); p = add_epsg_def_ex (filter, first, last, 2068, "epsg", 2068, "ELD79 / Libya zone 5", 0, 0, "International 1924", "Greenwich", "European_Libyan_Datum_1979", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9999 +x_0=200000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-115.8543,-99.0583,-152.4616,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / Libya zone 5\",GEOGCS[\"ELD79\",DATUM[\""); add_srs_wkt (p, 1, "European_Libyan_Datum_1979\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9999],PARAMETER[\"false_easting\",200000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"2068\"]]"); p = add_epsg_def_ex (filter, first, last, 2069, "epsg", 2069, "ELD79 / Libya zone 6", 0, 0, "International 1924", "Greenwich", "European_Libyan_Datum_1979", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11 +k=0.9999 +x_0=200000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-115.8543,-99.0583,-152.4616,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / Libya zone 6\",GEOGCS[\"ELD79\",DATUM[\""); add_srs_wkt (p, 1, "European_Libyan_Datum_1979\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",11],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9999],PARAMETER[\"false_easting\",200000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2069\"]]"); p = add_epsg_def_ex (filter, first, last, 2070, "epsg", 2070, "ELD79 / Libya zone 7", 0, 0, "International 1924", "Greenwich", "European_Libyan_Datum_1979", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13 +k=0.9999 +x_0=200000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-115.8543,-99.0583,-152.4616,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / Libya zone 7\",GEOGCS[\"ELD79\",DATUM[\""); add_srs_wkt (p, 1, "European_Libyan_Datum_1979\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",13],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9999],PARAMETER[\"false_easting\",200000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2070\"]]"); p = add_epsg_def_ex (filter, first, last, 2071, "epsg", 2071, "ELD79 / Libya zone 8", 0, 0, "International 1924", "Greenwich", "European_Libyan_Datum_1979", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=200000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-115.8543,-99.0583,-152.4616,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / Libya zone 8\",GEOGCS[\"ELD79\",DATUM[\""); add_srs_wkt (p, 1, "European_Libyan_Datum_1979\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9999],PARAMETER[\"false_easting\",200000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2071\"]]"); p = add_epsg_def_ex (filter, first, last, 2072, "epsg", 2072, "ELD79 / Libya zone 9", 0, 0, "International 1924", "Greenwich", "European_Libyan_Datum_1979", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=17 +k=0.9999 +x_0=200000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-115.8543,-99.0583,-152.4616,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / Libya zone 9\",GEOGCS[\"ELD79\",DATUM[\""); add_srs_wkt (p, 1, "European_Libyan_Datum_1979\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",17],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9999],PARAMETER[\"false_easting\",200000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2072\"]]"); p = add_epsg_def_ex (filter, first, last, 2073, "epsg", 2073, "ELD79 / Libya zone 10", 0, 0, "International 1924", "Greenwich", "European_Libyan_Datum_1979", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=19 +k=0.9999 +x_0=200000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-115.8543,-99.0583,-152.4616,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / Libya zone 10\",GEOGCS[\"ELD79\",DATUM["); add_srs_wkt (p, 1, "\"European_Libyan_Datum_1979\",SPHEROID[\"International "); add_srs_wkt (p, 2, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 3, "[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",19],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9999],PARAMETER[\"false_easting\",200000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2073\"]]"); p = add_epsg_def_ex (filter, first, last, 2074, "epsg", 2074, "ELD79 / Libya zone 11", 0, 0, "International 1924", "Greenwich", "European_Libyan_Datum_1979", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=200000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-115.8543,-99.0583,-152.4616,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / Libya zone 11\",GEOGCS[\"ELD79\",DATUM["); add_srs_wkt (p, 1, "\"European_Libyan_Datum_1979\",SPHEROID[\"International "); add_srs_wkt (p, 2, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 3, "[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9999],PARAMETER[\"false_easting\",200000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2074\"]]"); p = add_epsg_def_ex (filter, first, last, 2075, "epsg", 2075, "ELD79 / Libya zone 12", 0, 0, "International 1924", "Greenwich", "European_Libyan_Datum_1979", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=23 +k=0.9999 +x_0=200000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-115.8543,-99.0583,-152.4616,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / Libya zone 12\",GEOGCS[\"ELD79\",DATUM["); add_srs_wkt (p, 1, "\"European_Libyan_Datum_1979\",SPHEROID[\"International "); add_srs_wkt (p, 2, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 3, "[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",23],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9999],PARAMETER[\"false_easting\",200000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2075\"]]"); p = add_epsg_def_ex (filter, first, last, 2076, "epsg", 2076, "ELD79 / Libya zone 13", 0, 0, "International 1924", "Greenwich", "European_Libyan_Datum_1979", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=25 +k=0.9999 +x_0=200000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-115.8543,-99.0583,-152.4616,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / Libya zone 13\",GEOGCS[\"ELD79\",DATUM["); add_srs_wkt (p, 1, "\"European_Libyan_Datum_1979\",SPHEROID[\"International "); add_srs_wkt (p, 2, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 3, "[-115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",25],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9999],PARAMETER[\"false_easting\",200000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2076\"]]"); p = add_epsg_def_ex (filter, first, last, 2077, "epsg", 2077, "ELD79 / UTM zone 32N", 0, 0, "International 1924", "Greenwich", "European_Libyan_Datum_1979", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=intl +towgs84=-115.8543,-99.05"); add_proj4text (p, 1, "83,-152.4616,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / UTM zone 32N\",GEOGCS[\"ELD79\",DATUM[\""); add_srs_wkt (p, 1, "European_Libyan_Datum_1979\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"2077\"]]"); p = add_epsg_def_ex (filter, first, last, 2078, "epsg", 2078, "ELD79 / UTM zone 33N", 0, 0, "International 1924", "Greenwich", "European_Libyan_Datum_1979", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=intl +towgs84=-115.8543,-99.05"); add_proj4text (p, 1, "83,-152.4616,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / UTM zone 33N\",GEOGCS[\"ELD79\",DATUM[\""); add_srs_wkt (p, 1, "European_Libyan_Datum_1979\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"2078\"]]"); p = add_epsg_def_ex (filter, first, last, 2079, "epsg", 2079, "ELD79 / UTM zone 34N", 0, 0, "International 1924", "Greenwich", "European_Libyan_Datum_1979", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=intl +towgs84=-115.8543,-99.05"); add_proj4text (p, 1, "83,-152.4616,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / UTM zone 34N\",GEOGCS[\"ELD79\",DATUM[\""); add_srs_wkt (p, 1, "European_Libyan_Datum_1979\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"2079\"]]"); p = add_epsg_def_ex (filter, first, last, 2080, "epsg", 2080, "ELD79 / UTM zone 35N", 0, 0, "International 1924", "Greenwich", "European_Libyan_Datum_1979", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=intl +towgs84=-115.8543,-99.05"); add_proj4text (p, 1, "83,-152.4616,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / UTM zone 35N\",GEOGCS[\"ELD79\",DATUM[\""); add_srs_wkt (p, 1, "European_Libyan_Datum_1979\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "115.8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6159\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"2080\"]]"); p = add_epsg_def_ex (filter, first, last, 2081, "epsg", 2081, "Chos Malal 1914 / Argentina 2", 0, 1, "International 1924", "Greenwich", "Chos_Malal_1914", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Chos Malal 1914 / Argentina 2\",GEOGCS[\"Chos M"); add_srs_wkt (p, 1, "alal 1914\",DATUM[\"Chos_Malal_1914\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6160\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4160\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",-90],PARAMETER[\"central_meridian\",-69]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",2500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2081\"]]"); p = add_epsg_def_ex (filter, first, last, 2082, "epsg", 2082, "Pampa del Castillo / Argentina 2", 0, 1, "International 1924", "Greenwich", "Pampa_del_Castillo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=27.5,14,186.4,0,0,0,0 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pampa del Castillo / Argentina 2\",GEOGCS[\"Pam"); add_srs_wkt (p, 1, "pa del Castillo\",DATUM[\"Pampa_del_Castillo\",SPHEROID["); add_srs_wkt (p, 2, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7022\"]],TOWGS84[27.5,14,186.4,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6161\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4161\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "-90],PARAMETER[\"central_meridian\",-69],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",1],PARAMETER[\"false_easting\",2500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2082\"]]"); p = add_epsg_def_ex (filter, first, last, 2083, "epsg", 2083, "Hito XVIII 1963 / Argentina 2", 0, 1, "International 1924", "Greenwich", "Hito_XVIII_1963", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=16,196,93,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Hito XVIII 1963 / Argentina 2\",GEOGCS[\"Hito X"); add_srs_wkt (p, 1, "VIII 1963\",DATUM[\"Hito_XVIII_1963\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[16,196,93,0,0,0,0],AUTHORITY[\"EPSG\",\"6254\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4254\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",-90],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-69],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "1],PARAMETER[\"false_easting\",2500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"2083\"]]"); p = add_epsg_def_ex (filter, first, last, 2084, "epsg", 2084, "Hito XVIII 1963 / UTM zone 19S", 0, 0, "International 1924", "Greenwich", "Hito_XVIII_1963", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=intl +towgs84=16,196,93"); add_proj4text (p, 1, ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hito XVIII 1963 / UTM zone 19S\",GEOGCS[\"Hito "); add_srs_wkt (p, 1, "XVIII 1963\",DATUM[\"Hito_XVIII_1963\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[16,196,93,0,0,0,0],AUTHORITY[\"EPSG\",\"6254\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4254\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-69],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"2084\"]]"); p = add_epsg_def_ex (filter, first, last, 2085, "epsg", 2085, "NAD27 / Cuba Norte (deprecated)", 0, 1, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_1SP", "metre", "Y", "North", "X", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=22.35 +lat_0=22.35 +lon_0=-81 +k_0=0.99"); add_proj4text (p, 1, "993602 +x_0=500000 +y_0=280296.016 +datum=NAD27 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Cuba Norte (deprecated)\",GEOGCS[\"NAD2"); add_srs_wkt (p, 1, "7\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clark"); add_srs_wkt (p, 2, "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",22.35],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-81],PARAMETER[\"scale_factor\",0.99993"); add_srs_wkt (p, 10, "602],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",280296.016],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Y\",NORTH],AXIS[\"X\",EAST],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"2085\"]]"); p = add_epsg_def_ex (filter, first, last, 2086, "epsg", 2086, "NAD27 / Cuba Sur (deprecated)", 0, 1, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_1SP", "metre", "Y", "North", "X", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=20.71666666666667 +lat_0=20.71666666666"); add_proj4text (p, 1, "667 +lon_0=-76.83333333333333 +k_0=0.99994848 +x_0=50000"); add_proj4text (p, 2, "0 +y_0=229126.939 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Cuba Sur (deprecated)\",GEOGCS[\"NAD27\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",20.71666666666667],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-76.83333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.99994848],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",229126.939],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AUTHORITY[\"EPSG\",\"2086\"]]"); p = add_epsg_def_ex (filter, first, last, 2087, "epsg", 2087, "ELD79 / TM 12 NE", 0, 0, "International 1924", "Greenwich", "European_Libyan_Datum_1979", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-115.8543,-99.0583,-152.4616,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ELD79 / TM 12 NE\",GEOGCS[\"ELD79\",DATUM[\"Eur"); add_srs_wkt (p, 1, "opean_Libyan_Datum_1979\",SPHEROID[\"International 1924\""); add_srs_wkt (p, 2, ",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-115."); add_srs_wkt (p, 3, "8543,-99.0583,-152.4616,0,0,0,0],AUTHORITY[\"EPSG\",\"61"); add_srs_wkt (p, 4, "59\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4159\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",12],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"2087\"]]"); p = add_epsg_def_ex (filter, first, last, 2088, "epsg", 2088, "Carthage / TM 11 NE", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Carthage", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +a=6378249.2 +b=6356515 +towgs84=-263,6,431,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Carthage / TM 11 NE\",GEOGCS[\"Carthage\",DATUM"); add_srs_wkt (p, 1, "[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,2"); add_srs_wkt (p, 2, "93.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-"); add_srs_wkt (p, 3, "263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4223\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",11],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"2088\"]]"); p = add_epsg_def_ex (filter, first, last, 2089, "epsg", 2089, "Yemen NGN96 / UTM zone 38N", 0, 0, "WGS 84", "Greenwich", "Yemen_National_Geodetic_Network_1996", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Yemen NGN96 / UTM zone 38N\",GEOGCS[\"Yemen NGN"); add_srs_wkt (p, 1, "96\",DATUM[\"Yemen_National_Geodetic_Network_1996\",SPHE"); add_srs_wkt (p, 2, "ROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6163\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4163\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"2089\"]]"); p = add_epsg_def_ex (filter, first, last, 2090, "epsg", 2090, "Yemen NGN96 / UTM zone 39N", 0, 0, "WGS 84", "Greenwich", "Yemen_National_Geodetic_Network_1996", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Yemen NGN96 / UTM zone 39N\",GEOGCS[\"Yemen NGN"); add_srs_wkt (p, 1, "96\",DATUM[\"Yemen_National_Geodetic_Network_1996\",SPHE"); add_srs_wkt (p, 2, "ROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6163\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4163\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",51],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"2090\"]]"); p = add_epsg_def_ex (filter, first, last, 2091, "epsg", 2091, "South Yemen / Gauss Kruger zone 8 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "South_Yemen", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"South Yemen / Gauss Kruger zone 8 (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"South Yemen\",DATUM[\"South_Yemen\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6164\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4164\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",8500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"2091\"]]"); p = add_epsg_def_ex (filter, first, last, 2092, "epsg", 2092, "South Yemen / Gauss Kruger zone 9 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "South_Yemen", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"South Yemen / Gauss Kruger zone 9 (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"South Yemen\",DATUM[\"South_Yemen\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6164\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4164\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",51],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",9500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"2092\"]]"); p = add_epsg_def_ex (filter, first, last, 2093, "epsg", 2093, "Hanoi 1972 / GK 106 NE", 0, 1, "Krassowsky 1940", "Greenwich", "Hanoi_1972", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=106 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hanoi 1972 / GK 106 NE\",GEOGCS[\"Hanoi 1972\","); add_srs_wkt (p, 1, "DATUM[\"Hanoi_1972\",SPHEROID[\"Krassowsky 1940\",637824"); add_srs_wkt (p, 2, "5,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[-17.51,-10"); add_srs_wkt (p, 3, "8.32,-62.39,0,0,0,0],AUTHORITY[\"EPSG\",\"6147\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"4147\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",106],PARAMETER[\"scale_factor\",1],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"20"); add_srs_wkt (p, 13, "93\"]]"); p = add_epsg_def_ex (filter, first, last, 2094, "epsg", 2094, "WGS 72BE / TM 106 NE", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=106 +k=0.9996 +x_0=500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / TM 106 NE\",GEOGCS[\"WGS 72BE\",DATU"); add_srs_wkt (p, 1, "M[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\"WG"); add_srs_wkt (p, 2, "S 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",106],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"2094\"]]"); p = add_epsg_def_ex (filter, first, last, 2095, "epsg", 2095, "Bissau / UTM zone 28N", 0, 0, "International 1924", "Greenwich", "Bissau", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=intl +towgs84=-173,253,27,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bissau / UTM zone 28N\",GEOGCS[\"Bissau\",DATUM"); add_srs_wkt (p, 1, "[\"Bissau\",SPHEROID[\"International 1924\",6378388,297,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-173,253,27,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6165\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, "65\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"209"); add_srs_wkt (p, 13, "5\"]]"); p = add_epsg_def_ex (filter, first, last, 2096, "epsg", 2096, "Korean 1985 / East Belt", 0, 1, "Bessel 1841", "Greenwich", "Korean_Datum_1985", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=129 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / East Belt\",GEOGCS[\"Korean 1985\""); add_srs_wkt (p, 1, ",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bessel 1841\",63"); add_srs_wkt (p, 2, "77397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4162\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",38],PARAMETER[\"central_meridian\",129],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",500000],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2096\"]]"); p = add_epsg_def_ex (filter, first, last, 2097, "epsg", 2097, "Korean 1985 / Central Belt", 0, 1, "Bessel 1841", "Greenwich", "Korean_Datum_1985", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / Central Belt\",GEOGCS[\"Korean 19"); add_srs_wkt (p, 1, "85\",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bessel 1841\""); add_srs_wkt (p, 2, ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4162\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",38],PARAMETER[\"central_meridian\",127],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",200000],PARAMETER[\"false_northing\",500000],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2097\"]]"); p = add_epsg_def_ex (filter, first, last, 2098, "epsg", 2098, "Korean 1985 / West Belt", 0, 1, "Bessel 1841", "Greenwich", "Korean_Datum_1985", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=125 +k=1 +x_0=200000 +y_0=5"); add_proj4text (p, 1, "00000 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Korean 1985 / West Belt\",GEOGCS[\"Korean 1985\""); add_srs_wkt (p, 1, ",DATUM[\"Korean_Datum_1985\",SPHEROID[\"Bessel 1841\",63"); add_srs_wkt (p, 2, "77397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6162\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4162\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",38],PARAMETER[\"central_meridian\",125],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",500000],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2098\"]]"); p = add_epsg_def_ex (filter, first, last, 2099, "epsg", 2099, "Qatar 1948 / Qatar Grid", 0, 0, "Helmert 1906", "Greenwich", "Qatar_1948", "Cassini_Soldner", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=cass +lat_0=25.38236111111111 +lon_0=50.7613888888"); add_proj4text (p, 1, "8889 +x_0=100000 +y_0=100000 +ellps=helmert +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Qatar 1948 / Qatar Grid\",GEOGCS[\"Qatar 1948\""); add_srs_wkt (p, 1, ",DATUM[\"Qatar_1948\",SPHEROID[\"Helmert 1906\",6378200,"); add_srs_wkt (p, 2, "298.3,AUTHORITY[\"EPSG\",\"7020\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6286\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 6, "\",EAST],AUTHORITY[\"EPSG\",\"4286\"]],PROJECTION[\"Cass"); add_srs_wkt (p, 7, "ini_Soldner\"],PARAMETER[\"latitude_of_origin\",25.38236"); add_srs_wkt (p, 8, "111111111],PARAMETER[\"central_meridian\",50.76138888888"); add_srs_wkt (p, 9, "889],PARAMETER[\"false_easting\",100000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",100000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 12, "TH],AUTHORITY[\"EPSG\",\"2099\"]]"); p = add_epsg_def_ex (filter, first, last, 2100, "epsg", 2100, "GGRS87 / Greek Grid", 0, 0, "GRS 1980", "Greenwich", "Greek_Geodetic_Reference_System_1987", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +towgs84=-199.87,74.79,246.62,0,0,0,0 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GGRS87 / Greek Grid\",GEOGCS[\"GGRS87\",DATUM[\""); add_srs_wkt (p, 1, "Greek_Geodetic_Reference_System_1987\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-199.87,74.79,246.62,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6121\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4121\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",24],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"2100\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_03.c��������������������������������������������������0000664�0001750�0001750�00000514255�12544707704�017046� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_03 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 2325, "epsg", 2325, "ED50 / TM45", 0, 1, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM45\",GEOGCS[\"ED50\",DATUM[\"European_"); add_srs_wkt (p, 1, "Datum_1950\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4230\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",4"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2325\"]]"); p = add_epsg_def_ex (filter, first, last, 2326, "epsg", 2326, "Hong Kong 1980 Grid System", 0, 1, "International 1924", "Greenwich", "Hong_Kong_1980", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=22.31213333333334 +lon_0=114.17855555"); add_proj4text (p, 1, "55556 +k=1 +x_0=836694.05 +y_0=819069.8 +ellps=intl +tow"); add_proj4text (p, 2, "gs84=-162.619,-276.959,-161.764,0.067753,-2.243649,-1.15"); add_proj4text (p, 3, "8827,-1.094246 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hong Kong 1980 Grid System\",GEOGCS[\"Hong Kong"); add_srs_wkt (p, 1, " 1980\",DATUM[\"Hong_Kong_1980\",SPHEROID[\"Internationa"); add_srs_wkt (p, 2, "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 3, "84[-162.619,-276.959,-161.764,0.067753,-2.243649,-1.1588"); add_srs_wkt (p, 4, "27,-1.094246],AUTHORITY[\"EPSG\",\"6611\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 5, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4611\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",22.31213333333334],PARAMET"); add_srs_wkt (p, 10, "ER[\"central_meridian\",114.1785555555556],PARAMETER[\"s"); add_srs_wkt (p, 11, "cale_factor\",1],PARAMETER[\"false_easting\",836694.05],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",819069.8],UNIT[\"metre\",1,"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 14, "XIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2326\"]]"); p = add_epsg_def_ex (filter, first, last, 2327, "epsg", 2327, "Xian 1980 / Gauss-Kruger zone 13", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 13\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",75],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",13500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"2327\"]]"); p = add_epsg_def_ex (filter, first, last, 2328, "epsg", 2328, "Xian 1980 / Gauss-Kruger zone 14", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 14\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",81],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",14500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"2328\"]]"); p = add_epsg_def_ex (filter, first, last, 2329, "epsg", 2329, "Xian 1980 / Gauss-Kruger zone 15", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 15\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",87],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",15500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"2329\"]]"); p = add_epsg_def_ex (filter, first, last, 2330, "epsg", 2330, "Xian 1980 / Gauss-Kruger zone 16", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 16\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",93],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",16500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"2330\"]]"); p = add_epsg_def_ex (filter, first, last, 2331, "epsg", 2331, "Xian 1980 / Gauss-Kruger zone 17", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 17\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",99],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",1],PARAMETER[\"false_easting\",17500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"2331\"]]"); p = add_epsg_def_ex (filter, first, last, 2332, "epsg", 2332, "Xian 1980 / Gauss-Kruger zone 18", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 18\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",105],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",18500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"2332\"]]"); p = add_epsg_def_ex (filter, first, last, 2333, "epsg", 2333, "Xian 1980 / Gauss-Kruger zone 19", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 19\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",111],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",19500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"2333\"]]"); p = add_epsg_def_ex (filter, first, last, 2334, "epsg", 2334, "Xian 1980 / Gauss-Kruger zone 20", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 20\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",117],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",20500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"2334\"]]"); p = add_epsg_def_ex (filter, first, last, 2335, "epsg", 2335, "Xian 1980 / Gauss-Kruger zone 21", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 21\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",123],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",21500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"2335\"]]"); p = add_epsg_def_ex (filter, first, last, 2336, "epsg", 2336, "Xian 1980 / Gauss-Kruger zone 22", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 22\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",129],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",22500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"2336\"]]"); p = add_epsg_def_ex (filter, first, last, 2337, "epsg", 2337, "Xian 1980 / Gauss-Kruger zone 23", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger zone 23\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",135],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",23500000],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"2337\"]]"); p = add_epsg_def_ex (filter, first, last, 2338, "epsg", 2338, "Xian 1980 / Gauss-Kruger CM 75E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 75E\",GEOGCS[\"Xian"); add_srs_wkt (p, 1, " 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",637814"); add_srs_wkt (p, 2, "0,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",75],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",1],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"2338\"]]"); p = add_epsg_def_ex (filter, first, last, 2339, "epsg", 2339, "Xian 1980 / Gauss-Kruger CM 81E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 81E\",GEOGCS[\"Xian"); add_srs_wkt (p, 1, " 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",637814"); add_srs_wkt (p, 2, "0,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",81],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",1],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"2339\"]]"); p = add_epsg_def_ex (filter, first, last, 2340, "epsg", 2340, "Xian 1980 / Gauss-Kruger CM 87E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 87E\",GEOGCS[\"Xian"); add_srs_wkt (p, 1, " 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",637814"); add_srs_wkt (p, 2, "0,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",87],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",1],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"2340\"]]"); p = add_epsg_def_ex (filter, first, last, 2341, "epsg", 2341, "Xian 1980 / Gauss-Kruger CM 93E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 93E\",GEOGCS[\"Xian"); add_srs_wkt (p, 1, " 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",637814"); add_srs_wkt (p, 2, "0,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",93],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",1],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"2341\"]]"); p = add_epsg_def_ex (filter, first, last, 2342, "epsg", 2342, "Xian 1980 / Gauss-Kruger CM 99E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 99E\",GEOGCS[\"Xian"); add_srs_wkt (p, 1, " 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",637814"); add_srs_wkt (p, 2, "0,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",99],PARAMETER[\"scale_"); add_srs_wkt (p, 9, "factor\",1],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"2342\"]]"); p = add_epsg_def_ex (filter, first, last, 2343, "epsg", 2343, "Xian 1980 / Gauss-Kruger CM 105E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 105E\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",105],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"2343\"]]"); p = add_epsg_def_ex (filter, first, last, 2344, "epsg", 2344, "Xian 1980 / Gauss-Kruger CM 111E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 111E\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",111],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"2344\"]]"); p = add_epsg_def_ex (filter, first, last, 2345, "epsg", 2345, "Xian 1980 / Gauss-Kruger CM 117E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 117E\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",117],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"2345\"]]"); p = add_epsg_def_ex (filter, first, last, 2346, "epsg", 2346, "Xian 1980 / Gauss-Kruger CM 123E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 123E\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",123],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"2346\"]]"); p = add_epsg_def_ex (filter, first, last, 2347, "epsg", 2347, "Xian 1980 / Gauss-Kruger CM 129E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 129E\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",129],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"2347\"]]"); p = add_epsg_def_ex (filter, first, last, 2348, "epsg", 2348, "Xian 1980 / Gauss-Kruger CM 135E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / Gauss-Kruger CM 135E\",GEOGCS[\"Xia"); add_srs_wkt (p, 1, "n 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975\",63781"); add_srs_wkt (p, 2, "40,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",135],PARAMETER[\"scal"); add_srs_wkt (p, 9, "e_factor\",1],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 10, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"2348\"]]"); p = add_epsg_def_ex (filter, first, last, 2349, "epsg", 2349, "Xian 1980 / 3-degree Gauss-Kruger zone 25", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 25\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",75],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",25500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2349\"]]"); p = add_epsg_def_ex (filter, first, last, 2350, "epsg", 2350, "Xian 1980 / 3-degree Gauss-Kruger zone 26", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 26\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",78],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",26500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2350\"]]"); p = add_epsg_def_ex (filter, first, last, 2351, "epsg", 2351, "Xian 1980 / 3-degree Gauss-Kruger zone 27", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 27\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",81],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",27500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2351\"]]"); p = add_epsg_def_ex (filter, first, last, 2352, "epsg", 2352, "Xian 1980 / 3-degree Gauss-Kruger zone 28", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 28\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",84],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",28500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2352\"]]"); p = add_epsg_def_ex (filter, first, last, 2353, "epsg", 2353, "Xian 1980 / 3-degree Gauss-Kruger zone 29", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 29\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",87],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",29500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2353\"]]"); p = add_epsg_def_ex (filter, first, last, 2354, "epsg", 2354, "Xian 1980 / 3-degree Gauss-Kruger zone 30", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 30\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",90],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",30500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2354\"]]"); p = add_epsg_def_ex (filter, first, last, 2355, "epsg", 2355, "Xian 1980 / 3-degree Gauss-Kruger zone 31", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 31\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",93],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",31500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2355\"]]"); p = add_epsg_def_ex (filter, first, last, 2356, "epsg", 2356, "Xian 1980 / 3-degree Gauss-Kruger zone 32", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 32\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",96],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",32500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2356\"]]"); p = add_epsg_def_ex (filter, first, last, 2357, "epsg", 2357, "Xian 1980 / 3-degree Gauss-Kruger zone 33", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0"); add_proj4text (p, 1, " +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 33\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",99],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",33500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2357\"]]"); p = add_epsg_def_ex (filter, first, last, 2358, "epsg", 2358, "Xian 1980 / 3-degree Gauss-Kruger zone 34", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 34\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",102],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",3450"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2358\"]]"); p = add_epsg_def_ex (filter, first, last, 2359, "epsg", 2359, "Xian 1980 / 3-degree Gauss-Kruger zone 35", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 35\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",105],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",3550"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2359\"]]"); p = add_epsg_def_ex (filter, first, last, 2360, "epsg", 2360, "Xian 1980 / 3-degree Gauss-Kruger zone 36", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 36\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",108],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",3650"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2360\"]]"); p = add_epsg_def_ex (filter, first, last, 2361, "epsg", 2361, "Xian 1980 / 3-degree Gauss-Kruger zone 37", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 37\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",111],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",3750"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2361\"]]"); p = add_epsg_def_ex (filter, first, last, 2362, "epsg", 2362, "Xian 1980 / 3-degree Gauss-Kruger zone 38", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 38\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",114],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",3850"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2362\"]]"); p = add_epsg_def_ex (filter, first, last, 2363, "epsg", 2363, "Xian 1980 / 3-degree Gauss-Kruger zone 39", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 39\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",117],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",3950"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2363\"]]"); p = add_epsg_def_ex (filter, first, last, 2364, "epsg", 2364, "Xian 1980 / 3-degree Gauss-Kruger zone 40", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 40\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",120],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",4050"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2364\"]]"); p = add_epsg_def_ex (filter, first, last, 2365, "epsg", 2365, "Xian 1980 / 3-degree Gauss-Kruger zone 41", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 41\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",123],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",4150"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2365\"]]"); p = add_epsg_def_ex (filter, first, last, 2366, "epsg", 2366, "Xian 1980 / 3-degree Gauss-Kruger zone 42", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 42\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",126],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",4250"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2366\"]]"); p = add_epsg_def_ex (filter, first, last, 2367, "epsg", 2367, "Xian 1980 / 3-degree Gauss-Kruger zone 43", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 43\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",129],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",4350"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2367\"]]"); p = add_epsg_def_ex (filter, first, last, 2368, "epsg", 2368, "Xian 1980 / 3-degree Gauss-Kruger zone 44", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 44\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",132],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",4450"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2368\"]]"); p = add_epsg_def_ex (filter, first, last, 2369, "epsg", 2369, "Xian 1980 / 3-degree Gauss-Kruger zone 45", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0="); add_proj4text (p, 1, "0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger zone 45\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",135],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",4550"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"2369\"]]"); p = add_epsg_def_ex (filter, first, last, 2370, "epsg", 2370, "Xian 1980 / 3-degree Gauss-Kruger CM 75E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 75E\",GEOG"); add_srs_wkt (p, 1, "CS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975"); add_srs_wkt (p, 2, "\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",75],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"2370\"]]"); p = add_epsg_def_ex (filter, first, last, 2371, "epsg", 2371, "Xian 1980 / 3-degree Gauss-Kruger CM 78E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 78E\",GEOG"); add_srs_wkt (p, 1, "CS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975"); add_srs_wkt (p, 2, "\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",78],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"2371\"]]"); p = add_epsg_def_ex (filter, first, last, 2372, "epsg", 2372, "Xian 1980 / 3-degree Gauss-Kruger CM 81E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 81E\",GEOG"); add_srs_wkt (p, 1, "CS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975"); add_srs_wkt (p, 2, "\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",81],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"2372\"]]"); p = add_epsg_def_ex (filter, first, last, 2373, "epsg", 2373, "Xian 1980 / 3-degree Gauss-Kruger CM 84E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 84E\",GEOG"); add_srs_wkt (p, 1, "CS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975"); add_srs_wkt (p, 2, "\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",84],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"2373\"]]"); p = add_epsg_def_ex (filter, first, last, 2374, "epsg", 2374, "Xian 1980 / 3-degree Gauss-Kruger CM 87E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 87E\",GEOG"); add_srs_wkt (p, 1, "CS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975"); add_srs_wkt (p, 2, "\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",87],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"2374\"]]"); p = add_epsg_def_ex (filter, first, last, 2375, "epsg", 2375, "Xian 1980 / 3-degree Gauss-Kruger CM 90E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 90E\",GEOG"); add_srs_wkt (p, 1, "CS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975"); add_srs_wkt (p, 2, "\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",90],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"2375\"]]"); p = add_epsg_def_ex (filter, first, last, 2376, "epsg", 2376, "Xian 1980 / 3-degree Gauss-Kruger CM 93E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 93E\",GEOG"); add_srs_wkt (p, 1, "CS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975"); add_srs_wkt (p, 2, "\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",93],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"2376\"]]"); p = add_epsg_def_ex (filter, first, last, 2377, "epsg", 2377, "Xian 1980 / 3-degree Gauss-Kruger CM 96E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 96E\",GEOG"); add_srs_wkt (p, 1, "CS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975"); add_srs_wkt (p, 2, "\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",96],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"2377\"]]"); p = add_epsg_def_ex (filter, first, last, 2378, "epsg", 2378, "Xian 1980 / 3-degree Gauss-Kruger CM 99E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 99E\",GEOG"); add_srs_wkt (p, 1, "CS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 1975"); add_srs_wkt (p, 2, "\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",0],PARAMETER[\"central_meridian\",99],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"2378\"]]"); p = add_epsg_def_ex (filter, first, last, 2379, "epsg", 2379, "Xian 1980 / 3-degree Gauss-Kruger CM 102E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 102E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",102],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2379\"]]"); p = add_epsg_def_ex (filter, first, last, 2380, "epsg", 2380, "Xian 1980 / 3-degree Gauss-Kruger CM 105E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 105E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",105],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2380\"]]"); p = add_epsg_def_ex (filter, first, last, 2381, "epsg", 2381, "Xian 1980 / 3-degree Gauss-Kruger CM 108E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 108E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",108],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2381\"]]"); p = add_epsg_def_ex (filter, first, last, 2382, "epsg", 2382, "Xian 1980 / 3-degree Gauss-Kruger CM 111E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 111E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",111],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2382\"]]"); p = add_epsg_def_ex (filter, first, last, 2383, "epsg", 2383, "Xian 1980 / 3-degree Gauss-Kruger CM 114E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 114E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",114],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2383\"]]"); p = add_epsg_def_ex (filter, first, last, 2384, "epsg", 2384, "Xian 1980 / 3-degree Gauss-Kruger CM 117E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 117E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",117],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2384\"]]"); p = add_epsg_def_ex (filter, first, last, 2385, "epsg", 2385, "Xian 1980 / 3-degree Gauss-Kruger CM 120E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 120E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",120],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2385\"]]"); p = add_epsg_def_ex (filter, first, last, 2386, "epsg", 2386, "Xian 1980 / 3-degree Gauss-Kruger CM 123E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 123E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",123],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2386\"]]"); p = add_epsg_def_ex (filter, first, last, 2387, "epsg", 2387, "Xian 1980 / 3-degree Gauss-Kruger CM 126E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 126E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",126],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2387\"]]"); p = add_epsg_def_ex (filter, first, last, 2388, "epsg", 2388, "Xian 1980 / 3-degree Gauss-Kruger CM 129E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 129E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",129],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2388\"]]"); p = add_epsg_def_ex (filter, first, last, 2389, "epsg", 2389, "Xian 1980 / 3-degree Gauss-Kruger CM 132E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 132E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",132],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2389\"]]"); p = add_epsg_def_ex (filter, first, last, 2390, "epsg", 2390, "Xian 1980 / 3-degree Gauss-Kruger CM 135E", 0, 1, "IAG 1975", "Greenwich", "Xian_1980", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+a=6378140 +b=6356755.288157528 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Xian 1980 / 3-degree Gauss-Kruger CM 135E\",GEO"); add_srs_wkt (p, 1, "GCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG 197"); add_srs_wkt (p, 2, "5\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",135],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"2390\"]]"); p = add_epsg_def_ex (filter, first, last, 2391, "epsg", 2391, "KKJ / Finland zone 1", 0, 1, "International 1924", "Greenwich", "Kartastokoordinaattijarjestelma_1966", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=1500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=intl +towgs84=-96.062,-82.428,-121.753,4.801,0.34"); add_proj4text (p, 2, "5,-1.376,1.496 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"KKJ / Finland zone 1\",GEOGCS[\"KKJ\",DATUM[\"K"); add_srs_wkt (p, 1, "artastokoordinaattijarjestelma_1966\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.49"); add_srs_wkt (p, 4, "6],AUTHORITY[\"EPSG\",\"6123\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "23\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",21"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",1500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 13, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2391\"]]"); p = add_epsg_def_ex (filter, first, last, 2392, "epsg", 2392, "KKJ / Finland zone 2", 0, 1, "International 1924", "Greenwich", "Kartastokoordinaattijarjestelma_1966", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=2500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=intl +towgs84=-96.062,-82.428,-121.753,4.801,0.34"); add_proj4text (p, 2, "5,-1.376,1.496 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"KKJ / Finland zone 2\",GEOGCS[\"KKJ\",DATUM[\"K"); add_srs_wkt (p, 1, "artastokoordinaattijarjestelma_1966\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.49"); add_srs_wkt (p, 4, "6],AUTHORITY[\"EPSG\",\"6123\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "23\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",24"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",2500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 13, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2392\"]]"); p = add_epsg_def_ex (filter, first, last, 2393, "epsg", 2393, "KKJ / Finland Uniform Coordinate System", 0, 1, "International 1924", "Greenwich", "Kartastokoordinaattijarjestelma_1966", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=3500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=intl +towgs84=-96.062,-82.428,-121.753,4.801,0.34"); add_proj4text (p, 2, "5,-1.376,1.496 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"KKJ / Finland Uniform Coordinate System\",GEOGC"); add_srs_wkt (p, 1, "S[\"KKJ\",DATUM[\"Kartastokoordinaattijarjestelma_1966\""); add_srs_wkt (p, 2, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7022\"]],TOWGS84[-96.062,-82.428,-121.753,4.801"); add_srs_wkt (p, 4, ",0.345,-1.376,1.496],AUTHORITY[\"EPSG\",\"6123\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 8, "RITY[\"EPSG\",\"4123\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 9, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",27],PARAMETER[\"scale_factor\",1],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",3500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"23"); add_srs_wkt (p, 14, "93\"]]"); p = add_epsg_def_ex (filter, first, last, 2394, "epsg", 2394, "KKJ / Finland zone 4", 0, 1, "International 1924", "Greenwich", "Kartastokoordinaattijarjestelma_1966", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=intl +towgs84=-96.062,-82.428,-121.753,4.801,0.34"); add_proj4text (p, 2, "5,-1.376,1.496 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"KKJ / Finland zone 4\",GEOGCS[\"KKJ\",DATUM[\"K"); add_srs_wkt (p, 1, "artastokoordinaattijarjestelma_1966\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.49"); add_srs_wkt (p, 4, "6],AUTHORITY[\"EPSG\",\"6123\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "23\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",30"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",4500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 13, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2394\"]]"); p = add_epsg_def_ex (filter, first, last, 2395, "epsg", 2395, "South Yemen / Gauss-Kruger zone 8", 0, 1, "Krassowsky 1940", "Greenwich", "South_Yemen", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"South Yemen / Gauss-Kruger zone 8\",GEOGCS[\"So"); add_srs_wkt (p, 1, "uth Yemen\",DATUM[\"South_Yemen\",SPHEROID[\"Krassowsky "); add_srs_wkt (p, 2, "1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS"); add_srs_wkt (p, 3, "84[-76,-138,67,0,0,0,0],AUTHORITY[\"EPSG\",\"6164\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4164\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",45],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",8500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "2395\"]]"); p = add_epsg_def_ex (filter, first, last, 2396, "epsg", 2396, "South Yemen / Gauss-Kruger zone 9", 0, 1, "Krassowsky 1940", "Greenwich", "South_Yemen", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"South Yemen / Gauss-Kruger zone 9\",GEOGCS[\"So"); add_srs_wkt (p, 1, "uth Yemen\",DATUM[\"South_Yemen\",SPHEROID[\"Krassowsky "); add_srs_wkt (p, 2, "1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS"); add_srs_wkt (p, 3, "84[-76,-138,67,0,0,0,0],AUTHORITY[\"EPSG\",\"6164\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4164\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",51],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",9500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "2396\"]]"); p = add_epsg_def_ex (filter, first, last, 2397, "epsg", 2397, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4178\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",3500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2397\"]]"); p = add_epsg_def_ex (filter, first, last, 2398, "epsg", 2398, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4178\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",0],PARAMETER[\"central_meridian\",12],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",4500000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 13, "T],AUTHORITY[\"EPSG\",\"2398\"]]"); p = add_epsg_def_ex (filter, first, last, 2399, "epsg", 2399, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4178\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",0],PARAMETER[\"central_meridian\",15],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",5500000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 13, "T],AUTHORITY[\"EPSG\",\"2399\"]]"); p = add_epsg_def_ex (filter, first, last, 2400, "epsg", 2400, "RT90 2.5 gon W (deprecated)", 0, 1, "Bessel 1841", "Greenwich", "Rikets_koordinatsystem_1990", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +towgs84=414.1,41.3,603.1,-"); add_proj4text (p, 2, "0.855,2.141,-7.023,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT90 2.5 gon W (deprecated)\",GEOGCS[\"RT90\",D"); add_srs_wkt (p, 1, "ATUM[\"Rikets_koordinatsystem_1990\",SPHEROID[\"Bessel 1"); add_srs_wkt (p, 2, "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); add_srs_wkt (p, 3, "]],TOWGS84[414.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6124\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4124\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",15.8082777"); add_srs_wkt (p, 10, "7777778],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",1500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); add_srs_wkt (p, 13, "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2400\"]]"); p = add_epsg_def_ex (filter, first, last, 2401, "epsg", 2401, "Beijing 1954 / 3-degree Gauss-Kruger zone 25", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 25\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",75],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",25500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2401\"]]"); p = add_epsg_def_ex (filter, first, last, 2402, "epsg", 2402, "Beijing 1954 / 3-degree Gauss-Kruger zone 26", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 26\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",78],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",26500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2402\"]]"); p = add_epsg_def_ex (filter, first, last, 2403, "epsg", 2403, "Beijing 1954 / 3-degree Gauss-Kruger zone 27", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 27\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",81],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",27500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2403\"]]"); p = add_epsg_def_ex (filter, first, last, 2404, "epsg", 2404, "Beijing 1954 / 3-degree Gauss-Kruger zone 28", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 28\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",84],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",28500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2404\"]]"); p = add_epsg_def_ex (filter, first, last, 2405, "epsg", 2405, "Beijing 1954 / 3-degree Gauss-Kruger zone 29", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 29\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",87],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",29500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2405\"]]"); p = add_epsg_def_ex (filter, first, last, 2406, "epsg", 2406, "Beijing 1954 / 3-degree Gauss-Kruger zone 30", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 30\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",90],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",30500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2406\"]]"); p = add_epsg_def_ex (filter, first, last, 2407, "epsg", 2407, "Beijing 1954 / 3-degree Gauss-Kruger zone 31", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 31\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",93],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",31500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2407\"]]"); p = add_epsg_def_ex (filter, first, last, 2408, "epsg", 2408, "Beijing 1954 / 3-degree Gauss-Kruger zone 32", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 32\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",96],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",32500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2408\"]]"); p = add_epsg_def_ex (filter, first, last, 2409, "epsg", 2409, "Beijing 1954 / 3-degree Gauss-Kruger zone 33", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 33\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",99],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",33500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2409\"]]"); p = add_epsg_def_ex (filter, first, last, 2410, "epsg", 2410, "Beijing 1954 / 3-degree Gauss-Kruger zone 34", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 34\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",102],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",34500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2410\"]]"); p = add_epsg_def_ex (filter, first, last, 2411, "epsg", 2411, "Beijing 1954 / 3-degree Gauss-Kruger zone 35", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 35\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",35500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2411\"]]"); p = add_epsg_def_ex (filter, first, last, 2412, "epsg", 2412, "Beijing 1954 / 3-degree Gauss-Kruger zone 36", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 36\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",108],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",36500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2412\"]]"); p = add_epsg_def_ex (filter, first, last, 2413, "epsg", 2413, "Beijing 1954 / 3-degree Gauss-Kruger zone 37", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 37\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",111],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",37500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2413\"]]"); p = add_epsg_def_ex (filter, first, last, 2414, "epsg", 2414, "Beijing 1954 / 3-degree Gauss-Kruger zone 38", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 38\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",114],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",38500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2414\"]]"); p = add_epsg_def_ex (filter, first, last, 2415, "epsg", 2415, "Beijing 1954 / 3-degree Gauss-Kruger zone 39", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 39\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",117],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",39500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2415\"]]"); p = add_epsg_def_ex (filter, first, last, 2416, "epsg", 2416, "Beijing 1954 / 3-degree Gauss-Kruger zone 40", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 40\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",120],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",40500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2416\"]]"); p = add_epsg_def_ex (filter, first, last, 2417, "epsg", 2417, "Beijing 1954 / 3-degree Gauss-Kruger zone 41", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 41\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",123],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",41500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2417\"]]"); p = add_epsg_def_ex (filter, first, last, 2418, "epsg", 2418, "Beijing 1954 / 3-degree Gauss-Kruger zone 42", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 42\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",126],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",42500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2418\"]]"); p = add_epsg_def_ex (filter, first, last, 2419, "epsg", 2419, "Beijing 1954 / 3-degree Gauss-Kruger zone 43", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 43\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",129],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",43500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2419\"]]"); p = add_epsg_def_ex (filter, first, last, 2420, "epsg", 2420, "Beijing 1954 / 3-degree Gauss-Kruger zone 44", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 44\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",132],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",44500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2420\"]]"); p = add_epsg_def_ex (filter, first, last, 2421, "epsg", 2421, "Beijing 1954 / 3-degree Gauss-Kruger zone 45", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger zone 45\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",135],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",45500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2421\"]]"); p = add_epsg_def_ex (filter, first, last, 2422, "epsg", 2422, "Beijing 1954 / 3-degree Gauss-Kruger CM 75E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 75E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",75],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2422\"]]"); p = add_epsg_def_ex (filter, first, last, 2423, "epsg", 2423, "Beijing 1954 / 3-degree Gauss-Kruger CM 78E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 78E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",78],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2423\"]]"); p = add_epsg_def_ex (filter, first, last, 2424, "epsg", 2424, "Beijing 1954 / 3-degree Gauss-Kruger CM 81E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 81E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",81],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2424\"]]"); p = add_epsg_def_ex (filter, first, last, 2425, "epsg", 2425, "Beijing 1954 / 3-degree Gauss-Kruger CM 84E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 84E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",84],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2425\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_09.c��������������������������������������������������0000664�0001750�0001750�00000532032�12544707704�017045� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_09 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 2931, "epsg", 2931, "Beduaram / TM 13 NE", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Beduaram", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +a=6378249.2 +b=6356515 +towgs84=-106,-87,188,0,0,0,"); add_proj4text (p, 2, "0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beduaram / TM 13 NE\",GEOGCS[\"Beduaram\",DATUM"); add_srs_wkt (p, 1, "[\"Beduaram\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,2"); add_srs_wkt (p, 2, "93.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-"); add_srs_wkt (p, 3, "106,-87,188,0,0,0,0],AUTHORITY[\"EPSG\",\"6213\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"4213\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",13],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"2931\"]]"); p = add_epsg_def_ex (filter, first, last, 2932, "epsg", 2932, "QND95 / Qatar National Grid", 0, 0, "International 1924", "Greenwich", "Qatar_National_Datum_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.9"); add_proj4text (p, 1, "9999 +x_0=200000 +y_0=300000 +ellps=intl +towgs84=-119.4"); add_proj4text (p, 2, "248,-303.65872,-11.00061,1.164298,0.174458,1.096259,3.65"); add_proj4text (p, 3, "7065 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"QND95 / Qatar National Grid\",GEOGCS[\"QND95\","); add_srs_wkt (p, 1, "DATUM[\"Qatar_National_Datum_1995\",SPHEROID[\"Internati"); add_srs_wkt (p, 2, "onal 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TO"); add_srs_wkt (p, 3, "WGS84[-119.4248,-303.65872,-11.00061,1.164298,0.174458,1"); add_srs_wkt (p, 4, ".096259,3.657065],AUTHORITY[\"EPSG\",\"6614\"]],PRIMEM[\""); add_srs_wkt (p, 5, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 6, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 7, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 8, "[\"EPSG\",\"4614\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 9, ",PARAMETER[\"latitude_of_origin\",24.45],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",51.21666666666667],PARAMETER[\"scale_fac"); add_srs_wkt (p, 11, "tor\",0.99999],PARAMETER[\"false_easting\",200000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",300000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 14, "thing\",NORTH],AUTHORITY[\"EPSG\",\"2932\"]]"); p = add_epsg_def_ex (filter, first, last, 2933, "epsg", 2933, "Segara / UTM zone 50S", 0, 0, "Bessel 1841", "Greenwich", "Gunung_Segara", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +ellps=bessel +towgs84=-403,68"); add_proj4text (p, 1, "4,41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Segara / UTM zone 50S\",GEOGCS[\"Segara\",DATUM"); add_srs_wkt (p, 1, "[\"Gunung_Segara\",SPHEROID[\"Bessel 1841\",6377397.155,"); add_srs_wkt (p, 2, "299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-403,6"); add_srs_wkt (p, 3, "84,41,0,0,0,0],AUTHORITY[\"EPSG\",\"6613\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4613\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",117],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"2933\"]]"); p = add_epsg_def_ex (filter, first, last, 2934, "epsg", 2934, "Segara (Jakarta) / NEIEZ (deprecated)", 0, 0, "Bessel 1841", "Jakarta", "Gunung_Segara_Jakarta", "Mercator_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=-403,684,41,0,0,0,0 +pm=jakarta +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Segara (Jakarta) / NEIEZ (deprecated)\",GEOGCS["); add_srs_wkt (p, 1, "\"Segara (Jakarta)\",DATUM[\"Gunung_Segara_Jakarta\",SPH"); add_srs_wkt (p, 2, "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7004\"]],TOWGS84[-403,684,41,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6820\"]],PRIMEM[\"Jakarta\",106.8077194444"); add_srs_wkt (p, 5, "444,AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\",0.0174"); add_srs_wkt (p, 6, "532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitu"); add_srs_wkt (p, 7, "de\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 8, "\"4820\"]],PROJECTION[\"Mercator_1SP\"],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",110],PARAMETER[\"scale_factor\",0.997],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",3900000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",900000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"2934\"]]"); p = add_epsg_def_ex (filter, first, last, 2935, "epsg", 2935, "Pulkovo 1942 / CS63 zone A1", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1166666666666667 +lon_0=41.53333333"); add_proj4text (p, 1, "333333 +k=1 +x_0=1300000 +y_0=0 +ellps=krass +towgs84=23"); add_proj4text (p, 2, ".92,-141.27,-80.9,0,0.35,0.82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone A1\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, ".1166666666666667],PARAMETER[\"central_meridian\",41.533"); add_srs_wkt (p, 10, "33333333333],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",1300000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2935\"]]"); p = add_epsg_def_ex (filter, first, last, 2936, "epsg", 2936, "Pulkovo 1942 / CS63 zone A2", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1166666666666667 +lon_0=44.53333333"); add_proj4text (p, 1, "333333 +k=1 +x_0=2300000 +y_0=0 +ellps=krass +towgs84=23"); add_proj4text (p, 2, ".92,-141.27,-80.9,0,0.35,0.82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone A2\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, ".1166666666666667],PARAMETER[\"central_meridian\",44.533"); add_srs_wkt (p, 10, "33333333333],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",2300000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2936\"]]"); p = add_epsg_def_ex (filter, first, last, 2937, "epsg", 2937, "Pulkovo 1942 / CS63 zone A3", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1166666666666667 +lon_0=47.53333333"); add_proj4text (p, 1, "333333 +k=1 +x_0=3300000 +y_0=0 +ellps=krass +towgs84=23"); add_proj4text (p, 2, ".92,-141.27,-80.9,0,0.35,0.82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone A3\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, ".1166666666666667],PARAMETER[\"central_meridian\",47.533"); add_srs_wkt (p, 10, "33333333333],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",3300000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2937\"]]"); p = add_epsg_def_ex (filter, first, last, 2938, "epsg", 2938, "Pulkovo 1942 / CS63 zone A4", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1166666666666667 +lon_0=50.53333333"); add_proj4text (p, 1, "333333 +k=1 +x_0=4300000 +y_0=0 +ellps=krass +towgs84=23"); add_proj4text (p, 2, ".92,-141.27,-80.9,0,0.35,0.82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone A4\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, ".1166666666666667],PARAMETER[\"central_meridian\",50.533"); add_srs_wkt (p, 10, "33333333333],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",4300000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2938\"]]"); p = add_epsg_def_ex (filter, first, last, 2939, "epsg", 2939, "Pulkovo 1942 / CS63 zone K2", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1333333333333333 +lon_0=50.76666666"); add_proj4text (p, 1, "666667 +k=1 +x_0=2300000 +y_0=0 +ellps=krass +towgs84=23"); add_proj4text (p, 2, ".92,-141.27,-80.9,0,0.35,0.82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone K2\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, ".1333333333333333],PARAMETER[\"central_meridian\",50.766"); add_srs_wkt (p, 10, "66666666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",2300000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2939\"]]"); p = add_epsg_def_ex (filter, first, last, 2940, "epsg", 2940, "Pulkovo 1942 / CS63 zone K3", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1333333333333333 +lon_0=53.76666666"); add_proj4text (p, 1, "666667 +k=1 +x_0=3300000 +y_0=0 +ellps=krass +towgs84=23"); add_proj4text (p, 2, ".92,-141.27,-80.9,0,0.35,0.82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone K3\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, ".1333333333333333],PARAMETER[\"central_meridian\",53.766"); add_srs_wkt (p, 10, "66666666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",3300000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2940\"]]"); p = add_epsg_def_ex (filter, first, last, 2941, "epsg", 2941, "Pulkovo 1942 / CS63 zone K4", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1333333333333333 +lon_0=56.76666666"); add_proj4text (p, 1, "666667 +k=1 +x_0=4300000 +y_0=0 +ellps=krass +towgs84=23"); add_proj4text (p, 2, ".92,-141.27,-80.9,0,0.35,0.82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone K4\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, ".1333333333333333],PARAMETER[\"central_meridian\",56.766"); add_srs_wkt (p, 10, "66666666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",4300000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2941\"]]"); p = add_epsg_def_ex (filter, first, last, 2942, "epsg", 2942, "Porto Santo / UTM zone 28N", 0, 0, "International 1924", "Greenwich", "Porto_Santo_1936", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=intl +towgs84=-499,-249,314,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Porto Santo / UTM zone 28N\",GEOGCS[\"Porto San"); add_srs_wkt (p, 1, "to\",DATUM[\"Porto_Santo_1936\",SPHEROID[\"International"); add_srs_wkt (p, 2, " 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-499,-249,314,0,0,0,0],AUTHORITY[\"EPSG\",\"6615\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4615\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-15],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"2942\"]]"); p = add_epsg_def_ex (filter, first, last, 2943, "epsg", 2943, "Selvagem Grande / UTM zone 28N", 0, 0, "International 1924", "Greenwich", "Selvagem_Grande", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=intl +towgs84=-289,-124,60,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Selvagem Grande / UTM zone 28N\",GEOGCS[\"Selva"); add_srs_wkt (p, 1, "gem Grande\",DATUM[\"Selvagem_Grande\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-289,-124,60,0,0,0,0],AUTHORITY[\"EPSG\",\"6616"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4616\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-15],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"2943\"]]"); p = add_epsg_def_ex (filter, first, last, 2944, "epsg", 2944, "NAD83(CSRS) / SCoPQ zone 2 (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / SCoPQ zone 2 (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-55.5],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",304800],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2944\"]]"); p = add_epsg_def_ex (filter, first, last, 2945, "epsg", 2945, "NAD83(CSRS) / MTM zone 3", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 3\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-58.5],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9999],PARAMETER[\"false_easting\",304800],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"2945\"]]"); p = add_epsg_def_ex (filter, first, last, 2946, "epsg", 2946, "NAD83(CSRS) / MTM zone 4", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 4\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-61.5],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9999],PARAMETER[\"false_easting\",304800],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"2946\"]]"); p = add_epsg_def_ex (filter, first, last, 2947, "epsg", 2947, "NAD83(CSRS) / MTM zone 5", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 5\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-64.5],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9999],PARAMETER[\"false_easting\",304800],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"2947\"]]"); p = add_epsg_def_ex (filter, first, last, 2948, "epsg", 2948, "NAD83(CSRS) / MTM zone 6", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 6\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-67.5],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9999],PARAMETER[\"false_easting\",304800],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"2948\"]]"); p = add_epsg_def_ex (filter, first, last, 2949, "epsg", 2949, "NAD83(CSRS) / MTM zone 7", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 7\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-70.5],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9999],PARAMETER[\"false_easting\",304800],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"2949\"]]"); p = add_epsg_def_ex (filter, first, last, 2950, "epsg", 2950, "NAD83(CSRS) / MTM zone 8", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 8\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-73.5],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9999],PARAMETER[\"false_easting\",304800],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"2950\"]]"); p = add_epsg_def_ex (filter, first, last, 2951, "epsg", 2951, "NAD83(CSRS) / MTM zone 9", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 9\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-76.5],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9999],PARAMETER[\"false_easting\",304800],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"2951\"]]"); p = add_epsg_def_ex (filter, first, last, 2952, "epsg", 2952, "NAD83(CSRS) / MTM zone 10", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 10\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-79.5],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9999],PARAMETER[\"false_easting\",304800],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"2952\"]]"); p = add_epsg_def_ex (filter, first, last, 2953, "epsg", 2953, "NAD83(CSRS) / New Brunswick Stereographic", 0, 1, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Oblique_Stereographic", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=2"); add_proj4text (p, 1, "500000 +y_0=7500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / New Brunswick Stereographic\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",46.5],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 10, "66.5],PARAMETER[\"scale_factor\",0.999912],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",2500000],PARAMETER[\"false_northing\",750"); add_srs_wkt (p, 12, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"2953\"]]"); p = add_epsg_def_ex (filter, first, last, 2954, "epsg", 2954, "NAD83(CSRS) / Prince Edward Isl. Stereographic (NAD83)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Oblique_Stereographic", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=40"); add_proj4text (p, 1, "0000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Prince Edward Isl. Stereographic "); add_srs_wkt (p, 1, "(NAD83)\",GEOGCS[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_"); add_srs_wkt (p, 2, "Spatial_Reference_System\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 3, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 4, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4617\"]],PROJECTION[\"Oblique_Stereographic\"],PA"); add_srs_wkt (p, 9, "RAMETER[\"latitude_of_origin\",47.25],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",-63],PARAMETER[\"scale_factor\",0.999912],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",400000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",800000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORIT"); add_srs_wkt (p, 14, "Y[\"EPSG\",\"2954\"]]"); p = add_epsg_def_ex (filter, first, last, 2955, "epsg", 2955, "NAD83(CSRS) / UTM zone 11N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 11N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-117],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 13, "hing\",NORTH],AUTHORITY[\"EPSG\",\"2955\"]]"); p = add_epsg_def_ex (filter, first, last, 2956, "epsg", 2956, "NAD83(CSRS) / UTM zone 12N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 12N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-111],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 13, "hing\",NORTH],AUTHORITY[\"EPSG\",\"2956\"]]"); p = add_epsg_def_ex (filter, first, last, 2957, "epsg", 2957, "NAD83(CSRS) / UTM zone 13N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 13N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-105],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 13, "hing\",NORTH],AUTHORITY[\"EPSG\",\"2957\"]]"); p = add_epsg_def_ex (filter, first, last, 2958, "epsg", 2958, "NAD83(CSRS) / UTM zone 17N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 17N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"2958\"]]"); p = add_epsg_def_ex (filter, first, last, 2959, "epsg", 2959, "NAD83(CSRS) / UTM zone 18N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 18N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-75],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"2959\"]]"); p = add_epsg_def_ex (filter, first, last, 2960, "epsg", 2960, "NAD83(CSRS) / UTM zone 19N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 19N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"2960\"]]"); p = add_epsg_def_ex (filter, first, last, 2961, "epsg", 2961, "NAD83(CSRS) / UTM zone 20N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 20N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"2961\"]]"); p = add_epsg_def_ex (filter, first, last, 2962, "epsg", 2962, "NAD83(CSRS) / UTM zone 21N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 21N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"2962\"]]"); p = add_epsg_def_ex (filter, first, last, 2964, "epsg", 2964, "NAD27 / Alaska Albers", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Albers_Conic_Equal_Area", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska Albers\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Albers_Conic_Equal_Area\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",55],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 9, "2\",65],PARAMETER[\"latitude_of_center\",50],PARAMETER[\""); add_srs_wkt (p, 10, "longitude_of_center\",-154],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot"); add_srs_wkt (p, 12, "\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS"); add_srs_wkt (p, 13, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2964"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2965, "epsg", 2965, "NAD83 / Indiana East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Indiana East (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",37.5],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-85.66666666666667],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.999966667],PARAMETER[\"false_easting\",328083"); add_srs_wkt (p, 11, ".333],PARAMETER[\"false_northing\",820208.3330000002],UN"); add_srs_wkt (p, 12, "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"2965\"]]"); p = add_epsg_def_ex (filter, first, last, 2966, "epsg", 2966, "NAD83 / Indiana West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Indiana West (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",37.5],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-87.08333333333333],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.999966667],PARAMETER[\"false_easting\",295275"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",820208.3330000002],UNIT["); add_srs_wkt (p, 12, "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"2966\"]]"); p = add_epsg_def_ex (filter, first, last, 2967, "epsg", 2967, "NAD83(HARN) / Indiana East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Indiana East (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",37.5],PARAMETER[\"central_meridian\",-85.6666666666"); add_srs_wkt (p, 10, "6667],PARAMETER[\"scale_factor\",0.999966667],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",328083.333],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",820208.3330000002],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 13, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 14, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2967\"]]"); p = add_epsg_def_ex (filter, first, last, 2968, "epsg", 2968, "NAD83(HARN) / Indiana West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Indiana West (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",37.5],PARAMETER[\"central_meridian\",-87.0833333333"); add_srs_wkt (p, 10, "3333],PARAMETER[\"scale_factor\",0.999966667],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",2952750],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "820208.3330000002],UNIT[\"US survey foot\",0.30480060960"); add_srs_wkt (p, 13, "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2968\"]]"); p = add_epsg_def_ex (filter, first, last, 2969, "epsg", 2969, "Fort Marigot / UTM zone 20N", 0, 0, "International 1924", "Greenwich", "Fort_Marigot", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=intl +towgs84=137,248,-430,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Fort Marigot / UTM zone 20N\",GEOGCS[\"Fort Mar"); add_srs_wkt (p, 1, "igot\",DATUM[\"Fort_Marigot\",SPHEROID[\"International 1"); add_srs_wkt (p, 2, "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); add_srs_wkt (p, 3, "137,248,-430,0,0,0,0],AUTHORITY[\"EPSG\",\"6621\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4621\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-63],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2969\"]]"); p = add_epsg_def_ex (filter, first, last, 2970, "epsg", 2970, "Guadeloupe 1948 / UTM zone 20N", 0, 0, "International 1924", "Greenwich", "Guadeloupe_1948", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=intl +towgs84=-467,-16,-300,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Guadeloupe 1948 / UTM zone 20N\",GEOGCS[\"Guade"); add_srs_wkt (p, 1, "loupe 1948\",DATUM[\"Guadeloupe_1948\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-467,-16,-300,0,0,0,0],AUTHORITY[\"EPSG\",\"662"); add_srs_wkt (p, 4, "2\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4622\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-63],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"2970\"]]"); p = add_epsg_def_ex (filter, first, last, 2971, "epsg", 2971, "CSG67 / UTM zone 22N", 0, 0, "International 1924", "Greenwich", "Centre_Spatial_Guyanais_1967", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=intl +towgs84=-186,230,110,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CSG67 / UTM zone 22N\",GEOGCS[\"CSG67\",DATUM[\""); add_srs_wkt (p, 1, "Centre_Spatial_Guyanais_1967\",SPHEROID[\"International "); add_srs_wkt (p, 2, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 3, "[-186,230,110,0,0,0,0],AUTHORITY[\"EPSG\",\"6623\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4623\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-51],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2971\"]]"); p = add_epsg_def_ex (filter, first, last, 2972, "epsg", 2972, "RGFG95 / UTM zone 22N", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_Francais_Guyane_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGFG95 / UTM zone 22N\",GEOGCS[\"RGFG95\",DATUM"); add_srs_wkt (p, 1, "[\"Reseau_Geodesique_Francais_Guyane_1995\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6624\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4624\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-51],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"2972\"]]"); p = add_epsg_def_ex (filter, first, last, 2973, "epsg", 2973, "Martinique 1938 / UTM zone 20N", 0, 0, "International 1924", "Greenwich", "Martinique_1938", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=intl +towgs84=186,482,151,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Martinique 1938 / UTM zone 20N\",GEOGCS[\"Marti"); add_srs_wkt (p, 1, "nique 1938\",DATUM[\"Martinique_1938\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[186,482,151,0,0,0,0],AUTHORITY[\"EPSG\",\"6625\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4625\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-63],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"2973\"]]"); p = add_epsg_def_ex (filter, first, last, 2975, "epsg", 2975, "RGR92 / UTM zone 40S", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_Reunion_1992", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGR92 / UTM zone 40S\",GEOGCS[\"RGR92\",DATUM[\""); add_srs_wkt (p, 1, "Reseau_Geodesique_de_la_Reunion_1992\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6627\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4627\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",57],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"2975\"]]"); p = add_epsg_def_ex (filter, first, last, 2976, "epsg", 2976, "Tahiti 52 / UTM zone 6S", 0, 0, "International 1924", "Greenwich", "Tahiti_52", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=6 +south +ellps=intl +towgs84=162,117,15"); add_proj4text (p, 1, "4,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tahiti 52 / UTM zone 6S\",GEOGCS[\"Tahiti 52\","); add_srs_wkt (p, 1, "DATUM[\"Tahiti_52\",SPHEROID[\"International 1924\",6378"); add_srs_wkt (p, 2, "388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[162,117,15"); add_srs_wkt (p, 3, "4,0,0,0,0],AUTHORITY[\"EPSG\",\"6628\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4628\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",-147],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"2976\"]]"); p = add_epsg_def_ex (filter, first, last, 2977, "epsg", 2977, "Tahaa 54 / UTM zone 5S", 0, 0, "International 1924", "Greenwich", "Tahaa_54", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=5 +south +ellps=intl +towgs84=72.438,345"); add_proj4text (p, 1, ".918,79.486,1.6045,0.8823,0.5565,1.3746 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Tahaa 54 / UTM zone 5S\",GEOGCS[\"Tahaa 54\",DA"); add_srs_wkt (p, 1, "TUM[\"Tahaa_54\",SPHEROID[\"International 1924\",6378388"); add_srs_wkt (p, 2, ",297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[72.438,345.91"); add_srs_wkt (p, 3, "8,79.486,1.6045,0.8823,0.5565,1.3746],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6629\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4629\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-153],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 13, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2977\"]]"); p = add_epsg_def_ex (filter, first, last, 2978, "epsg", 2978, "IGN72 Nuku Hiva / UTM zone 7S", 0, 0, "International 1924", "Greenwich", "IGN72_Nuku_Hiva", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=7 +south +ellps=intl +towgs84=84,274,65,"); add_proj4text (p, 1, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN72 Nuku Hiva / UTM zone 7S\",GEOGCS[\"IGN72 "); add_srs_wkt (p, 1, "Nuku Hiva\",DATUM[\"IGN72_Nuku_Hiva\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[84,274,65,0,0,0,0],AUTHORITY[\"EPSG\",\"6630\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4630\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",-141],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"2978\"]]"); p = add_epsg_def_ex (filter, first, last, 2979, "epsg", 2979, "K0 1949 / UTM zone 42S (deprecated)", 0, 0, "International 1924", "Greenwich", "K0_1949", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=42 +south +ellps=intl +towgs84=145,-187,"); add_proj4text (p, 1, "103,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"K0 1949 / UTM zone 42S (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "K0 1949\",DATUM[\"K0_1949\",SPHEROID[\"International 192"); add_srs_wkt (p, 2, "4\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[14"); add_srs_wkt (p, 3, "5,-187,103,0,0,0,0],AUTHORITY[\"EPSG\",\"6631\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4631\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",69],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2979\"]]"); p = add_epsg_def_ex (filter, first, last, 2980, "epsg", 2980, "Combani 1950 / UTM zone 38S", 0, 0, "International 1924", "Greenwich", "Combani_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +ellps=intl +towgs84=-382,-59,"); add_proj4text (p, 1, "-262,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Combani 1950 / UTM zone 38S\",GEOGCS[\"Combani "); add_srs_wkt (p, 1, "1950\",DATUM[\"Combani_1950\",SPHEROID[\"International 1"); add_srs_wkt (p, 2, "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); add_srs_wkt (p, 3, "-382,-59,-262,0,0,0,0],AUTHORITY[\"EPSG\",\"6632\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4632\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",45],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2980\"]]"); p = add_epsg_def_ex (filter, first, last, 2981, "epsg", 2981, "IGN56 Lifou / UTM zone 58S", 0, 0, "International 1924", "Greenwich", "IGN56_Lifou", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=intl +towgs84=335.47,22"); add_proj4text (p, 1, "2.58,-230.94,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN56 Lifou / UTM zone 58S\",GEOGCS[\"IGN56 Lif"); add_srs_wkt (p, 1, "ou\",DATUM[\"IGN56_Lifou\",SPHEROID[\"International 1924"); add_srs_wkt (p, 2, "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[335"); add_srs_wkt (p, 3, ".47,222.58,-230.94,0,0,0,0],AUTHORITY[\"EPSG\",\"6633\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4633\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",165],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"2981\"]]"); p = add_epsg_def_ex (filter, first, last, 2982, "epsg", 2982, "IGN72 Grand Terre / UTM zone 58S (deprecated)", 0, 0, "International 1924", "Greenwich", "IGN72_Grande_Terre", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=intl +towgs84=-13,-348,"); add_proj4text (p, 1, "292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN72 Grand Terre / UTM zone 58S (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"IGN72 Grand Terre\",DATUM[\"IGN72_Grande_Terre"); add_srs_wkt (p, 2, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7022\"]],TOWGS84[-13,-348,292,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6634\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4634\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",165],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2982"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2983, "epsg", 2983, "ST87 Ouvea / UTM zone 58S (deprecated)", 0, 0, "International 1924", "Greenwich", "ST87_Ouvea", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=intl +towgs84=-122.383,"); add_proj4text (p, 1, "-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ST87 Ouvea / UTM zone 58S (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, "[\"ST87 Ouvea\",DATUM[\"ST87_Ouvea\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,"); add_srs_wkt (p, 4, "4.4798],AUTHORITY[\"EPSG\",\"6635\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 7, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4635\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 10, "\",165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",500000],PARAMETER[\"false_northing\",1000"); add_srs_wkt (p, 12, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"2983\"]]"); p = add_epsg_def_ex (filter, first, last, 2984, "epsg", 2984, "RGNC 1991 / Lambert New Caledonia (deprecated)", 0, 0, "International 1924", "Greenwich", "Reseau_Geodesique_Nouvelle_Caledonie_1991", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-20.66666666666667 +lat_2=-22.333333333"); add_proj4text (p, 1, "33333 +lat_0=-21.5 +lon_0=166 +x_0=400000 +y_0=300000 +e"); add_proj4text (p, 2, "llps=intl +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGNC 1991 / Lambert New Caledonia (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"RGNC 1991\",DATUM[\"Reseau_Geodesique_Nouvelle"); add_srs_wkt (p, 2, "_Caledonie_1991\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 3, "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[0,0,0,0,0,0,"); add_srs_wkt (p, 4, "0],AUTHORITY[\"EPSG\",\"6645\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 8, "45\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"standard_parallel_1\",-20.66666666666667],PARAMET"); add_srs_wkt (p, 10, "ER[\"standard_parallel_2\",-22.33333333333333],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",-21.5],PARAMETER[\"central_merid"); add_srs_wkt (p, 12, "ian\",166],PARAMETER[\"false_easting\",400000],PARAMETER"); add_srs_wkt (p, 13, "[\"false_northing\",300000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 15, "HORITY[\"EPSG\",\"2984\"]]"); p = add_epsg_def_ex (filter, first, last, 2987, "epsg", 2987, "Saint Pierre et Miquelon 1950 / UTM zone 21N", 0, 0, "Clarke 1866", "Greenwich", "Saint_Pierre_et_Miquelon_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=clrk66 +towgs84=30,430,368,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Saint Pierre et Miquelon 1950 / UTM zone 21N\","); add_srs_wkt (p, 1, "GEOGCS[\"Saint Pierre et Miquelon 1950\",DATUM[\"Saint_P"); add_srs_wkt (p, 2, "ierre_et_Miquelon_1950\",SPHEROID[\"Clarke 1866\",637820"); add_srs_wkt (p, 3, "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWG"); add_srs_wkt (p, 4, "S84[30,430,368,0,0,0,0],AUTHORITY[\"EPSG\",\"6638\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4638\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 9, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",-57],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 13, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"2987\"]]"); p = add_epsg_def_ex (filter, first, last, 2988, "epsg", 2988, "MOP78 / UTM zone 1S", 0, 0, "International 1924", "Greenwich", "MOP78", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=1 +south +ellps=intl +towgs84=253,-132,-"); add_proj4text (p, 1, "127,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MOP78 / UTM zone 1S\",GEOGCS[\"MOP78\",DATUM[\""); add_srs_wkt (p, 1, "MOP78\",SPHEROID[\"International 1924\",6378388,297,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7022\"]],TOWGS84[253,-132,-127,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6639\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4639"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-177"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",500000],PARAMETER[\"false_northing\",10000000],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"2988\"]]"); p = add_epsg_def_ex (filter, first, last, 2989, "epsg", 2989, "RRAF 1991 / UTM zone 20N (deprecated)", 0, 0, "WGS 84", "Greenwich", "Reseau_de_Reference_des_Antilles_Francaises_1991", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RRAF 1991 / UTM zone 20N (deprecated)\",GEOGCS["); add_srs_wkt (p, 1, "\"RRAF 1991\",DATUM[\"Reseau_de_Reference_des_Antilles_F"); add_srs_wkt (p, 2, "rancaises_1991\",SPHEROID[\"WGS 84\",6378137,298.2572235"); add_srs_wkt (p, 3, "63,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6640\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4640\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-63],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2989\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 2990, "epsg", 2990, "Reunion 1947 / TM Reunion (deprecated)", 0, 0, "International 1924", "Greenwich", "Reunion_1947", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-21.11666666666667 +lon_0=55.53333333"); add_proj4text (p, 1, "333333 +k=1 +x_0=50000 +y_0=160000 +ellps=intl +towgs84="); add_proj4text (p, 2, "94,-948,-1262,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Reunion 1947 / TM Reunion (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, "[\"Reunion 1947\",DATUM[\"Reunion_1947\",SPHEROID[\"Inte"); add_srs_wkt (p, 2, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[94,-948,-1262,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "626\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4626\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",-21.11"); add_srs_wkt (p, 9, "666666666667],PARAMETER[\"central_meridian\",55.53333333"); add_srs_wkt (p, 10, "333333],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",50000],PARAMETER[\"false_northing\",160000],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2990\"]]"); p = add_epsg_def_ex (filter, first, last, 2991, "epsg", 2991, "NAD83 / Oregon LCC (m)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120"); add_proj4text (p, 1, ".5 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,"); add_proj4text (p, 2, "0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oregon LCC (m)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",43],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_2\",45.5],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 10, "igin\",41.75],PARAMETER[\"central_meridian\",-120.5],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",400000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "2991\"]]"); p = add_epsg_def_ex (filter, first, last, 2992, "epsg", 2992, "NAD83 / Oregon GIC Lambert (ft)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120"); add_proj4text (p, 1, ".5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oregon GIC Lambert (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",45.5],PARAMETER[\"latit"); add_srs_wkt (p, 10, "ude_of_origin\",41.75],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 11, "20.5],PARAMETER[\"false_easting\",1312335.958],PARAMETER"); add_srs_wkt (p, 12, "[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"2992\"]]"); p = add_epsg_def_ex (filter, first, last, 2993, "epsg", 2993, "NAD83(HARN) / Oregon LCC (m)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120"); add_proj4text (p, 1, ".5 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,"); add_proj4text (p, 2, "0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oregon LCC (m)\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_1\",43],PARAMETER[\"standard_parallel_2\",45.5],PAR"); add_srs_wkt (p, 10, "AMETER[\"latitude_of_origin\",41.75],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-120.5],PARAMETER[\"false_easting\",400000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"2993\"]]"); p = add_epsg_def_ex (filter, first, last, 2994, "epsg", 2994, "NAD83(HARN) / Oregon GIC Lambert (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120"); add_proj4text (p, 1, ".5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Oregon GIC Lambert (ft)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Ne"); add_srs_wkt (p, 2, "twork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",43],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",45.5],PARAMETER[\"latitude_of_origin\",41.75],PARAMETER"); add_srs_wkt (p, 11, "[\"central_meridian\",-120.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",1312335.958],PARAMETER[\"false_northing\",0],UNIT[\"foo"); add_srs_wkt (p, 13, "t\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 14, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2994\"]]"); p = add_epsg_def_ex (filter, first, last, 2995, "epsg", 2995, "IGN53 Mare / UTM zone 58S", 0, 0, "International 1924", "Greenwich", "IGN53_Mare", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=intl +towgs84=287.58,17"); add_proj4text (p, 1, "7.78,-135.41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN53 Mare / UTM zone 58S\",GEOGCS[\"IGN53 Mare"); add_srs_wkt (p, 1, "\",DATUM[\"IGN53_Mare\",SPHEROID[\"International 1924\","); add_srs_wkt (p, 2, "6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[287.58"); add_srs_wkt (p, 3, ",177.78,-135.41,0,0,0,0],AUTHORITY[\"EPSG\",\"6641\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4641\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",165],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"2995\"]]"); p = add_epsg_def_ex (filter, first, last, 2996, "epsg", 2996, "ST84 Ile des Pins / UTM zone 58S", 0, 0, "International 1924", "Greenwich", "ST84_Ile_des_Pins", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=intl +towgs84=-13,-348,"); add_proj4text (p, 1, "292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ST84 Ile des Pins / UTM zone 58S\",GEOGCS[\"ST8"); add_srs_wkt (p, 1, "4 Ile des Pins\",DATUM[\"ST84_Ile_des_Pins\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[-13,-348,292,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6642\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4642\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",165],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"2996\"]]"); p = add_epsg_def_ex (filter, first, last, 2997, "epsg", 2997, "ST71 Belep / UTM zone 58S", 0, 0, "International 1924", "Greenwich", "ST71_Belep", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=intl +towgs84=-480.26,-"); add_proj4text (p, 1, "438.32,-643.429,16.3119,20.1721,-4.0349,-111.7002 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ST71 Belep / UTM zone 58S\",GEOGCS[\"ST71 Belep"); add_srs_wkt (p, 1, "\",DATUM[\"ST71_Belep\",SPHEROID[\"International 1924\","); add_srs_wkt (p, 2, "6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-480.2"); add_srs_wkt (p, 3, "6,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7002],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6643\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4643\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",0],PARAMETER[\"central_meridian\",165],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",500000],PARAMETER[\"false_northing\",10000000],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 13, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "2997\"]]"); p = add_epsg_def_ex (filter, first, last, 2998, "epsg", 2998, "NEA74 Noumea / UTM zone 58S", 0, 0, "International 1924", "Greenwich", "NEA74_Noumea", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=intl +towgs84=-10.18,-3"); add_proj4text (p, 1, "50.43,291.37,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NEA74 Noumea / UTM zone 58S\",GEOGCS[\"NEA74 No"); add_srs_wkt (p, 1, "umea\",DATUM[\"NEA74_Noumea\",SPHEROID[\"International 1"); add_srs_wkt (p, 2, "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); add_srs_wkt (p, 3, "-10.18,-350.43,291.37,0,0,0,0],AUTHORITY[\"EPSG\",\"6644"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4644\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",165],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"2998\"]]"); p = add_epsg_def_ex (filter, first, last, 2999, "epsg", 2999, "Grand Comoros / UTM zone 38S", 0, 0, "International 1924", "Greenwich", "Grand_Comoros", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +ellps=intl +towgs84=-963,510,"); add_proj4text (p, 1, "-359,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Grand Comoros / UTM zone 38S\",GEOGCS[\"Grand C"); add_srs_wkt (p, 1, "omoros\",DATUM[\"Grand_Comoros\",SPHEROID[\"Internationa"); add_srs_wkt (p, 2, "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 3, "84[-963,510,-359,0,0,0,0],AUTHORITY[\"EPSG\",\"6646\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4646\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",45],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"2999\"]]"); p = add_epsg_def_ex (filter, first, last, 3000, "epsg", 3000, "Segara / NEIEZ", 0, 0, "Bessel 1841", "Greenwich", "Gunung_Segara", "Mercator_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=-403,684,41,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"Segara / NEIEZ\",GEOGCS[\"Segara\",DATUM[\"Gunu"); add_srs_wkt (p, 1, "ng_Segara\",SPHEROID[\"Bessel 1841\",6377397.155,299.152"); add_srs_wkt (p, 2, "8128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-403,684,41,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6613\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4613\"]],PROJECTION[\"Mercator_1SP\"],PARAMETER[\"cen"); add_srs_wkt (p, 8, "tral_meridian\",110],PARAMETER[\"scale_factor\",0.997],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_easting\",3900000],PARAMETER[\"false_no"); add_srs_wkt (p, 10, "rthing\",900000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"3000\"]]"); p = add_epsg_def_ex (filter, first, last, 3001, "epsg", 3001, "Batavia / NEIEZ", 0, 0, "Bessel 1841", "Greenwich", "Batavia", "Mercator_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=-377,681,-50,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Batavia / NEIEZ\",GEOGCS[\"Batavia\",DATUM[\"Ba"); add_srs_wkt (p, 1, "tavia\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-50,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4211\"]],PROJECTION[\"Mercator_1SP\"],PARAMETER[\"centra"); add_srs_wkt (p, 8, "l_meridian\",110],PARAMETER[\"scale_factor\",0.997],PARA"); add_srs_wkt (p, 9, "METER[\"false_easting\",3900000],PARAMETER[\"false_north"); add_srs_wkt (p, 10, "ing\",900000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"3001\"]]"); p = add_epsg_def_ex (filter, first, last, 3002, "epsg", 3002, "Makassar / NEIEZ", 0, 0, "Bessel 1841", "Greenwich", "Makassar", "Mercator_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Makassar / NEIEZ\",GEOGCS[\"Makassar\",DATUM[\""); add_srs_wkt (p, 1, "Makassar\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528"); add_srs_wkt (p, 2, "128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-587.8,519.75,"); add_srs_wkt (p, 3, "145.76,0,0,0,0],AUTHORITY[\"EPSG\",\"6257\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4257\"]],PROJECTION[\"Mercator_1SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",110],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.997],PARAMETER[\"false_easting\",3900000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",900000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"3002\"]]"); p = add_epsg_def_ex (filter, first, last, 3003, "epsg", 3003, "Monte Mario / Italy zone 1", 0, 0, "International 1924", "Greenwich", "Monte_Mario", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-104.1,-49.1,-9.9,0.971,-2.917,"); add_proj4text (p, 2, "0.714,-11.68 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Monte Mario / Italy zone 1\",GEOGCS[\"Monte Mar"); add_srs_wkt (p, 1, "io\",DATUM[\"Monte_Mario\",SPHEROID[\"International 1924"); add_srs_wkt (p, 2, "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-10"); add_srs_wkt (p, 3, "4.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6265\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4265\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",1500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"3003\"]]"); p = add_epsg_def_ex (filter, first, last, 3004, "epsg", 3004, "Monte Mario / Italy zone 2", 0, 0, "International 1924", "Greenwich", "Monte_Mario", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-104.1,-49.1,-9.9,0.971,-2.917"); add_proj4text (p, 2, ",0.714,-11.68 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Monte Mario / Italy zone 2\",GEOGCS[\"Monte Mar"); add_srs_wkt (p, 1, "io\",DATUM[\"Monte_Mario\",SPHEROID[\"International 1924"); add_srs_wkt (p, 2, "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-10"); add_srs_wkt (p, 3, "4.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6265\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4265\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",2520000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"3004\"]]"); p = add_epsg_def_ex (filter, first, last, 3005, "epsg", 3005, "NAD83 / BC Albers", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Albers_Conic_Equal_Area", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=50 +lat_2=58.5 +lat_0=45 +lon_0=-126 +x"); add_proj4text (p, 1, "_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BC Albers\",GEOGCS[\"NAD83\",DATUM[\"No"); add_srs_wkt (p, 1, "rth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 2, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 3, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4269\"]],PROJECTION[\"Albers_Conic_Equal_Area\"],P"); add_srs_wkt (p, 8, "ARAMETER[\"standard_parallel_1\",50],PARAMETER[\"standar"); add_srs_wkt (p, 9, "d_parallel_2\",58.5],PARAMETER[\"latitude_of_center\",45"); add_srs_wkt (p, 10, "],PARAMETER[\"longitude_of_center\",-126],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",1000000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 13, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"3005\"]]"); p = add_epsg_def_ex (filter, first, last, 3006, "epsg", 3006, "SWEREF99 TM", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 TM\",GEOGCS[\"SWEREF99\",DATUM[\"SWERE"); add_srs_wkt (p, 1, "F99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",15],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3006\"]]"); p = add_epsg_def_ex (filter, first, last, 3007, "epsg", 3007, "SWEREF99 12 00", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=150000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 12 00\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",12],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",15000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3007\"]]"); p = add_epsg_def_ex (filter, first, last, 3008, "epsg", 3008, "SWEREF99 13 30", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.5 +k=1 +x_0=150000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 13 30\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",13.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",150"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3008\"]]"); p = add_epsg_def_ex (filter, first, last, 3009, "epsg", 3009, "SWEREF99 15 00", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=150000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 15 00\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",15],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",15000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3009\"]]"); p = add_epsg_def_ex (filter, first, last, 3010, "epsg", 3010, "SWEREF99 16 30", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16.5 +k=1 +x_0=150000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 16 30\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",16.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",150"); add_srs_wkt (p, 10, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3010\"]]"); p = add_epsg_def_ex (filter, first, last, 3011, "epsg", 3011, "SWEREF99 18 00", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=150000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 18 00\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",18],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",15000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 11, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3011\"]]"); p = add_epsg_def_ex (filter, first, last, 3012, "epsg", 3012, "SWEREF99 14 15", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=14.25 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 14 15\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",14.25],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",15"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3012\"]]"); p = add_epsg_def_ex (filter, first, last, 3013, "epsg", 3013, "SWEREF99 15 45", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15.75 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 15 45\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",15.75],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",15"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3013\"]]"); p = add_epsg_def_ex (filter, first, last, 3014, "epsg", 3014, "SWEREF99 17 15", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=17.25 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 17 15\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",17.25],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",15"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3014\"]]"); p = add_epsg_def_ex (filter, first, last, 3015, "epsg", 3015, "SWEREF99 18 45", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18.75 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 18 45\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",18.75],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",15"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3015\"]]"); p = add_epsg_def_ex (filter, first, last, 3016, "epsg", 3016, "SWEREF99 20 15", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20.25 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 20 15\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",20.25],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",15"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3016\"]]"); p = add_epsg_def_ex (filter, first, last, 3017, "epsg", 3017, "SWEREF99 21 45", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21.75 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 21 45\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",21.75],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",15"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3017\"]]"); p = add_epsg_def_ex (filter, first, last, 3018, "epsg", 3018, "SWEREF99 23 15", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=23.25 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 23 15\",GEOGCS[\"SWEREF99\",DATUM[\"SW"); add_srs_wkt (p, 1, "EREF99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PR"); add_srs_wkt (p, 7, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_origin\",0],PARAMETER[\"central_meridian\",23.25],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",15"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3018\"]]"); p = add_epsg_def_ex (filter, first, last, 3019, "epsg", 3019, "RT90 7.5 gon V", 0, 1, "Bessel 1841", "Greenwich", "Rikets_koordinatsystem_1990", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11.30827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +towgs84=414.1,41.3,603.1,-"); add_proj4text (p, 2, "0.855,2.141,-7.023,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT90 7.5 gon V\",GEOGCS[\"RT90\",DATUM[\"Rikets"); add_srs_wkt (p, 1, "_koordinatsystem_1990\",SPHEROID[\"Bessel 1841\",6377397"); add_srs_wkt (p, 2, ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[4"); add_srs_wkt (p, 3, "14.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6124\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4124\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",11.30827777777778],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",15"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"3019\"]]"); p = add_epsg_def_ex (filter, first, last, 3020, "epsg", 3020, "RT90 5 gon V", 0, 1, "Bessel 1841", "Greenwich", "Rikets_koordinatsystem_1990", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.55827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +towgs84=414.1,41.3,603.1,-"); add_proj4text (p, 2, "0.855,2.141,-7.023,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT90 5 gon V\",GEOGCS[\"RT90\",DATUM[\"Rikets_k"); add_srs_wkt (p, 1, "oordinatsystem_1990\",SPHEROID[\"Bessel 1841\",6377397.1"); add_srs_wkt (p, 2, "55,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[414"); add_srs_wkt (p, 3, ".1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6124\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4124\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",13.55827777777778],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",150"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"3020\"]]"); p = add_epsg_def_ex (filter, first, last, 3021, "epsg", 3021, "RT90 2.5 gon V", 0, 1, "Bessel 1841", "Greenwich", "Rikets_koordinatsystem_1990", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +towgs84=414.1,41.3,603.1,-"); add_proj4text (p, 2, "0.855,2.141,-7.023,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT90 2.5 gon V\",GEOGCS[\"RT90\",DATUM[\"Rikets"); add_srs_wkt (p, 1, "_koordinatsystem_1990\",SPHEROID[\"Bessel 1841\",6377397"); add_srs_wkt (p, 2, ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[4"); add_srs_wkt (p, 3, "14.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6124\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4124\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",15.80827777777778],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",15"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"3021\"]]"); p = add_epsg_def_ex (filter, first, last, 3022, "epsg", 3022, "RT90 0 gon", 0, 1, "Bessel 1841", "Greenwich", "Rikets_koordinatsystem_1990", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18.05827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +towgs84=414.1,41.3,603.1,-"); add_proj4text (p, 2, "0.855,2.141,-7.023,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT90 0 gon\",GEOGCS[\"RT90\",DATUM[\"Rikets_koo"); add_srs_wkt (p, 1, "rdinatsystem_1990\",SPHEROID[\"Bessel 1841\",6377397.155"); add_srs_wkt (p, 2, ",299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[414.1"); add_srs_wkt (p, 3, ",41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6124\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4124\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",18.05827777777778],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",15000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"3022\"]]"); p = add_epsg_def_ex (filter, first, last, 3023, "epsg", 3023, "RT90 2.5 gon O", 0, 1, "Bessel 1841", "Greenwich", "Rikets_koordinatsystem_1990", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20.30827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +towgs84=414.1,41.3,603.1,-"); add_proj4text (p, 2, "0.855,2.141,-7.023,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT90 2.5 gon O\",GEOGCS[\"RT90\",DATUM[\"Rikets"); add_srs_wkt (p, 1, "_koordinatsystem_1990\",SPHEROID[\"Bessel 1841\",6377397"); add_srs_wkt (p, 2, ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[4"); add_srs_wkt (p, 3, "14.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6124\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4124\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",20.30827777777778],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",15"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"3023\"]]"); p = add_epsg_def_ex (filter, first, last, 3024, "epsg", 3024, "RT90 5 gon O", 0, 1, "Bessel 1841", "Greenwich", "Rikets_koordinatsystem_1990", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=22.55827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +towgs84=414.1,41.3,603.1,-"); add_proj4text (p, 2, "0.855,2.141,-7.023,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT90 5 gon O\",GEOGCS[\"RT90\",DATUM[\"Rikets_k"); add_srs_wkt (p, 1, "oordinatsystem_1990\",SPHEROID[\"Bessel 1841\",6377397.1"); add_srs_wkt (p, 2, "55,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[414"); add_srs_wkt (p, 3, ".1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6124\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4124\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",22.55827777777778],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",150"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"3024\"]]"); p = add_epsg_def_ex (filter, first, last, 3025, "epsg", 3025, "RT38 7.5 gon V", 0, 1, "Bessel 1841", "Greenwich", "Stockholm_1938", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11.30827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT38 7.5 gon V\",GEOGCS[\"RT38\",DATUM[\"Stockh"); add_srs_wkt (p, 1, "olm_1938\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528"); add_srs_wkt (p, 2, "128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "308\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4308\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",11.30827777777778],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",1],PARAMETER[\"false_easting\",1500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"3025\"]]"); p = add_epsg_def_ex (filter, first, last, 3026, "epsg", 3026, "RT38 5 gon V", 0, 1, "Bessel 1841", "Greenwich", "Stockholm_1938", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.55827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT38 5 gon V\",GEOGCS[\"RT38\",DATUM[\"Stockhol"); add_srs_wkt (p, 1, "m_1938\",SPHEROID[\"Bessel 1841\",6377397.155,299.152812"); add_srs_wkt (p, 2, "8,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"630"); add_srs_wkt (p, 3, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4308\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",13.55827777777778],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",1500000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3026\"]]"); p = add_epsg_def_ex (filter, first, last, 3027, "epsg", 3027, "RT38 2.5 gon V", 0, 1, "Bessel 1841", "Greenwich", "Stockholm_1938", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT38 2.5 gon V\",GEOGCS[\"RT38\",DATUM[\"Stockh"); add_srs_wkt (p, 1, "olm_1938\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528"); add_srs_wkt (p, 2, "128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "308\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4308\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",15.80827777777778],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",1],PARAMETER[\"false_easting\",1500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"3027\"]]"); p = add_epsg_def_ex (filter, first, last, 3028, "epsg", 3028, "RT38 0 gon", 0, 1, "Bessel 1841", "Greenwich", "Stockholm_1938", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18.05827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT38 0 gon\",GEOGCS[\"RT38\",DATUM[\"Stockholm_"); add_srs_wkt (p, 1, "1938\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6308\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4308\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",18.05827777777778],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",1],PARAMETER[\"false_easting\",1500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"3028\"]]"); p = add_epsg_def_ex (filter, first, last, 3029, "epsg", 3029, "RT38 2.5 gon O", 0, 1, "Bessel 1841", "Greenwich", "Stockholm_1938", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20.30827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT38 2.5 gon O\",GEOGCS[\"RT38\",DATUM[\"Stockh"); add_srs_wkt (p, 1, "olm_1938\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528"); add_srs_wkt (p, 2, "128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "308\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4308\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 7, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",20.30827777777778],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",1],PARAMETER[\"false_easting\",1500000"); add_srs_wkt (p, 10, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 11, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EA"); add_srs_wkt (p, 12, "ST],AUTHORITY[\"EPSG\",\"3029\"]]"); p = add_epsg_def_ex (filter, first, last, 3030, "epsg", 3030, "RT38 5 gon O", 0, 1, "Bessel 1841", "Greenwich", "Stockholm_1938", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=22.55827777777778 +k=1 +x_0="); add_proj4text (p, 1, "1500000 +y_0=0 +ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RT38 5 gon O\",GEOGCS[\"RT38\",DATUM[\"Stockhol"); add_srs_wkt (p, 1, "m_1938\",SPHEROID[\"Bessel 1841\",6377397.155,299.152812"); add_srs_wkt (p, 2, "8,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"630"); add_srs_wkt (p, 3, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4308\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",22.55827777777778],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",1500000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 12, "T],AUTHORITY[\"EPSG\",\"3030\"]]"); p = add_epsg_def_ex (filter, first, last, 3031, "epsg", 3031, "WGS 84 / Antarctic Polar Stereographic", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=0 +k=1 +x_0=0 "); add_proj4text (p, 1, "+y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Antarctic Polar Stereographic\",GEOGCS"); add_srs_wkt (p, 1, "[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",63781"); add_srs_wkt (p, 2, "37,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Polar_Stereographic\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",-71],PARAMETER[\"central_meridian\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PARA"); add_srs_wkt (p, 10, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"3031\"]]"); p = add_epsg_def_ex (filter, first, last, 3032, "epsg", 3032, "WGS 84 / Australian Antarctic Polar Stereographic", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=70 +k=1 +x_0=6"); add_proj4text (p, 1, "000000 +y_0=6000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Australian Antarctic Polar Stereograph"); add_srs_wkt (p, 1, "ic\",GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS"); add_srs_wkt (p, 2, " 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"432"); add_srs_wkt (p, 7, "6\"]],PROJECTION[\"Polar_Stereographic\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",-71],PARAMETER[\"central_meridian\",7"); add_srs_wkt (p, 9, "0],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",6000000],PARAMETER[\"false_northing\",6000000],UNIT"); add_srs_wkt (p, 11, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 12, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "3032\"]]"); p = add_epsg_def_ex (filter, first, last, 3033, "epsg", 3033, "WGS 84 / Australian Antarctic Lambert", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.5 +lat_2=-74.5 +lat_0=-50 +lon_0=70"); add_proj4text (p, 1, " +x_0=6000000 +y_0=6000000 +datum=WGS84 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Australian Antarctic Lambert\",GEOGCS["); add_srs_wkt (p, 1, "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",-68.5],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-74.5],PARAMETER[\"latitude_of_origin\",-50],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",70],PARAMETER[\"false_easting\",600"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",6000000],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3033\"]]"); p = add_epsg_def_ex (filter, first, last, 3034, "epsg", 3034, "ETRS89 / LCC Europe", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Lambert_Conformal_Conic_2SP", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4"); add_proj4text (p, 1, "000000 +y_0=2800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / LCC Europe\",GEOGCS[\"ETRS89\",DATUM[\""); add_srs_wkt (p, 1, "European_Terrestrial_Reference_System_1989\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 9, "5],PARAMETER[\"standard_parallel_2\",65],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",52],PARAMETER[\"central_meridian\",10]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",4000000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",2800000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"3034\"]]"); p = add_epsg_def_ex (filter, first, last, 3035, "epsg", 3035, "ETRS89 / LAEA Europe", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Lambert_Azimuthal_Equal_Area", "metre", "Y", "North", "X", "East"); add_proj4text (p, 0, "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / LAEA Europe\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 8, "_Azimuthal_Equal_Area\"],PARAMETER[\"latitude_of_center\""); add_srs_wkt (p, 9, ",52],PARAMETER[\"longitude_of_center\",10],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",4321000],PARAMETER[\"false_northing\",321"); add_srs_wkt (p, 11, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"Y\",NORTH],AXIS[\"X\",EAST],AUTHORITY[\"EPSG\",\"303"); add_srs_wkt (p, 13, "5\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_21.c��������������������������������������������������0000664�0001750�0001750�00000475330�12544707704�017046� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 4309, "epsg", 4309, "Yacare", 1, 1, "International 1924", "Greenwich", "Yacare", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-155,171,37,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Yacare\",DATUM[\"Yacare\",SPHEROID[\"Internatio"); add_srs_wkt (p, 1, "nal 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOW"); add_srs_wkt (p, 2, "GS84[-155,171,37,0,0,0,0],AUTHORITY[\"EPSG\",\"6309\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4309\"]]"); p = add_epsg_def_ex (filter, first, last, 4310, "epsg", 4310, "Yoff", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Yoff", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Yoff\",DATUM[\"Yoff\",SPHEROID[\"Clarke 1880 (I"); add_srs_wkt (p, 1, "GN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "011\"]],AUTHORITY[\"EPSG\",\"6310\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 3, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 4, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 5, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4310\"]]"); p = add_epsg_def_ex (filter, first, last, 4311, "epsg", 4311, "Zanderij", 1, 1, "International 1924", "Greenwich", "Zanderij", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-265,120,-358,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Zanderij\",DATUM[\"Zanderij\",SPHEROID[\"Intern"); add_srs_wkt (p, 1, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 2, ",TOWGS84[-265,120,-358,0,0,0,0],AUTHORITY[\"EPSG\",\"631"); add_srs_wkt (p, 3, "1\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4311\"]]"); p = add_epsg_def_ex (filter, first, last, 4312, "epsg", 4312, "MGI", 1, 1, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=577.326,90.129,463."); add_proj4text (p, 1, "919,5.137,1.474,5.297,2.4232 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"MGI\",DATUM[\"Militar_Geographische_Institute\""); add_srs_wkt (p, 1, ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5"); add_srs_wkt (p, 3, ".137,1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4312\"]]"); p = add_epsg_def_ex (filter, first, last, 4313, "epsg", 4313, "Belge 1972", 1, 1, "International 1924", "Greenwich", "Reseau_National_Belge_1972", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-106.8686,52.2978,-10"); add_proj4text (p, 1, "3.7239,0.3366,-0.457,1.8422,-1.2747 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Belge 1972\",DATUM[\"Reseau_National_Belge_1972"); add_srs_wkt (p, 1, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7022\"]],TOWGS84[-106.8686,52.2978,-103.7239"); add_srs_wkt (p, 3, ",0.3366,-0.457,1.8422,-1.2747],AUTHORITY[\"EPSG\",\"6313"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4313\"]]"); p = add_epsg_def_ex (filter, first, last, 4314, "epsg", 4314, "DHDN", 1, 1, "Bessel 1841", "Greenwich", "Deutsches_Hauptdreiecksnetz", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=598.1,73.7,418.2,0."); add_proj4text (p, 1, "202,0.045,-2.455,6.7 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SP"); add_srs_wkt (p, 1, "HEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.04"); add_srs_wkt (p, 3, "5,-2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4314\"]]"); p = add_epsg_def_ex (filter, first, last, 4315, "epsg", 4315, "Conakry 1905", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Conakry_1905", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-23,259,-"); add_proj4text (p, 1, "9,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Conakry 1905\",DATUM[\"Conakry_1905\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7011\"]],TOWGS84[-23,259,-9,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6315\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4315\"]]"); p = add_epsg_def_ex (filter, first, last, 4316, "epsg", 4316, "Dealul Piscului 1930", 1, 1, "International 1924", "Greenwich", "Dealul_Piscului_1930", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=103.25,-100.4,-307.19"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Dealul Piscului 1930\",DATUM[\"Dealul_Piscului_"); add_srs_wkt (p, 1, "1930\",SPHEROID[\"International 1924\",6378388,297,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7022\"]],TOWGS84[103.25,-100.4,-307.19,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6316\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4316\"]]"); p = add_epsg_def_ex (filter, first, last, 4317, "epsg", 4317, "Dealul Piscului 1970", 1, 1, "Krassowsky 1940", "Greenwich", "Dealul_Piscului_1970", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=28,-121,-77,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Dealul Piscului 1970\",DATUM[\"Dealul_Piscului_"); add_srs_wkt (p, 1, "1970\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7024\"]],TOWGS84[28,-121,-77,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6317\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4317\"]]"); p = add_epsg_def_ex (filter, first, last, 4318, "epsg", 4318, "NGN", 1, 1, "WGS 84", "Greenwich", "National_Geodetic_Network", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NGN\",DATUM[\"National_Geodetic_Network\",SPHER"); add_srs_wkt (p, 1, "OID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7030\"]],TOWGS84[-3.2,-5.7,2.8,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6318\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4318\"]]"); p = add_epsg_def_ex (filter, first, last, 4319, "epsg", 4319, "KUDAMS", 1, 1, "GRS 1980", "Greenwich", "Kuwait_Utility", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=-20.8,11.3,2.4,0,0,0"); add_proj4text (p, 1, ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"KUDAMS\",DATUM[\"Kuwait_Utility\",SPHEROID[\"GR"); add_srs_wkt (p, 1, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 2, "\"]],TOWGS84[-20.8,11.3,2.4,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"6319\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 6, "de\",EAST],AUTHORITY[\"EPSG\",\"4319\"]]"); p = add_epsg_def_ex (filter, first, last, 4322, "epsg", 4322, "WGS 72", 1, 1, "WGS 72", "Greenwich", "WGS_1972", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.554,0."); add_proj4text (p, 1, "2263 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"WGS 72\",DATUM[\"WGS_1972\",SPHEROID[\"WGS 72\""); add_srs_wkt (p, 1, ",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TOWGS84[0,"); add_srs_wkt (p, 2, "0,4.5,0,0,0.554,0.2263],AUTHORITY[\"EPSG\",\"6322\"]],PR"); add_srs_wkt (p, 3, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 4, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 5, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4322\"]]"); p = add_epsg_def_ex (filter, first, last, 4324, "epsg", 4324, "WGS 72BE", 1, 1, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0"); add_proj4text (p, 1, ".38 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"WGS 72BE\",DATUM[\"WGS_1972_Transit_Broadcast_E"); add_srs_wkt (p, 1, "phemeris\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORITY["); add_srs_wkt (p, 2, "\"EPSG\",\"7043\"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6324\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4324\"]]"); p = add_epsg_def_ex (filter, first, last, 4399, "epsg", 4399, "NAD27 / BLM 59N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 59N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",171"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",1640416.67],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"4399\"]]"); p = add_epsg_def_ex (filter, first, last, 4400, "epsg", 4400, "NAD27 / BLM 60N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 60N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",177"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",1640416.67],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"4400\"]]"); p = add_epsg_def_ex (filter, first, last, 4401, "epsg", 4401, "NAD27 / BLM 1N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 1N (ftUS)\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-177"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",1640416.67],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"4401\"]]"); p = add_epsg_def_ex (filter, first, last, 4402, "epsg", 4402, "NAD27 / BLM 2N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 2N (ftUS)\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-171"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",1640416.67],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"4402\"]]"); p = add_epsg_def_ex (filter, first, last, 4403, "epsg", 4403, "NAD27 / BLM 3N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-165 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 3N (ftUS)\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-165"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",1640416.67],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"4403\"]]"); p = add_epsg_def_ex (filter, first, last, 4404, "epsg", 4404, "NAD27 / BLM 4N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-159 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 4N (ftUS)\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-159"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",1640416.67],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"4404\"]]"); p = add_epsg_def_ex (filter, first, last, 4405, "epsg", 4405, "NAD27 / BLM 5N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-153 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 5N (ftUS)\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-153"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",1640416.67],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"4405\"]]"); p = add_epsg_def_ex (filter, first, last, 4406, "epsg", 4406, "NAD27 / BLM 6N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-147 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 6N (ftUS)\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-147"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",1640416.67],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"4406\"]]"); p = add_epsg_def_ex (filter, first, last, 4407, "epsg", 4407, "NAD27 / BLM 7N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-141 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 7N (ftUS)\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-141"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",1640416.67],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"4407\"]]"); p = add_epsg_def_ex (filter, first, last, 4408, "epsg", 4408, "NAD27 / BLM 8N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-135 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 8N (ftUS)\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-135"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",1640416.67],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"4408\"]]"); p = add_epsg_def_ex (filter, first, last, 4409, "epsg", 4409, "NAD27 / BLM 9N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-129 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 9N (ftUS)\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-129"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",1640416.67],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"4409\"]]"); p = add_epsg_def_ex (filter, first, last, 4410, "epsg", 4410, "NAD27 / BLM 10N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-123 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 10N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-12"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",1640416.67],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"4410\"]]"); p = add_epsg_def_ex (filter, first, last, 4411, "epsg", 4411, "NAD27 / BLM 11N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 11N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-11"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",1640416.67],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"4411\"]]"); p = add_epsg_def_ex (filter, first, last, 4412, "epsg", 4412, "NAD27 / BLM 12N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 12N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-11"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",1640416.67],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"4412\"]]"); p = add_epsg_def_ex (filter, first, last, 4413, "epsg", 4413, "NAD27 / BLM 13N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-105 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 13N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-10"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",1640416.67],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"4413\"]]"); p = add_epsg_def_ex (filter, first, last, 4414, "epsg", 4414, "NAD83(HARN) / Guam Map Grid", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=13.5 +lon_0=144.75 +k=1 +x_0=100000 +"); add_proj4text (p, 1, "y_0=200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Guam Map Grid\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",1"); add_srs_wkt (p, 9, "3.5],PARAMETER[\"central_meridian\",144.75],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",200000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"4414\"]]"); p = add_epsg_def_ex (filter, first, last, 4415, "epsg", 4415, "Katanga 1955 / Katanga Lambert", 0, 0, "Clarke 1866", "Greenwich", "Katanga_1955", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-6.5 +lat_2=-11.5 +lat_0=-9 +lon_0=26 +"); add_proj4text (p, 1, "x_0=500000 +y_0=500000 +ellps=clrk66 +towgs84=-103.746,-"); add_proj4text (p, 2, "9.614,-255.95,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Katanga 1955 / Katanga Lambert\",GEOGCS[\"Katan"); add_srs_wkt (p, 1, "ga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6695\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4695\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",-6.5],PARAMETER[\"standard_parallel_2\",-1"); add_srs_wkt (p, 10, "1.5],PARAMETER[\"latitude_of_origin\",-9],PARAMETER[\"ce"); add_srs_wkt (p, 11, "ntral_meridian\",26],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_northing\",500000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"4415\"]]"); p = add_epsg_def_ex (filter, first, last, 4417, "epsg", 4417, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4178\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",0],PARAMETER[\"central_meridian\",21],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",7500000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 13, "T],AUTHORITY[\"EPSG\",\"4417\"]]"); p = add_epsg_def_ex (filter, first, last, 4418, "epsg", 4418, "NAD27 / BLM 18N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-75 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 18N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-75"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",1640416.67],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"4418\"]]"); p = add_epsg_def_ex (filter, first, last, 4419, "epsg", 4419, "NAD27 / BLM 19N (ftUS)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-69 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / BLM 19N (ftUS)\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",-69"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",1640416.67],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"4419\"]]"); p = add_epsg_def_ex (filter, first, last, 4420, "epsg", 4420, "NAD83 / BLM 60N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 60N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",177],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",1640416.67],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"4420\"]]"); p = add_epsg_def_ex (filter, first, last, 4421, "epsg", 4421, "NAD83 / BLM 1N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 1N (ftUS)\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-177],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",1640416.67],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"4421\"]]"); p = add_epsg_def_ex (filter, first, last, 4422, "epsg", 4422, "NAD83 / BLM 2N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 2N (ftUS)\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-171],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",1640416.67],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"4422\"]]"); p = add_epsg_def_ex (filter, first, last, 4423, "epsg", 4423, "NAD83 / BLM 3N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-165 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 3N (ftUS)\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-165],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",1640416.67],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"4423\"]]"); p = add_epsg_def_ex (filter, first, last, 4424, "epsg", 4424, "NAD83 / BLM 4N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-159 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 4N (ftUS)\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-159],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",1640416.67],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"4424\"]]"); p = add_epsg_def_ex (filter, first, last, 4425, "epsg", 4425, "NAD83 / BLM 5N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-153 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 5N (ftUS)\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-153],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",1640416.67],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"4425\"]]"); p = add_epsg_def_ex (filter, first, last, 4426, "epsg", 4426, "NAD83 / BLM 6N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-147 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 6N (ftUS)\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-147],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",1640416.67],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"4426\"]]"); p = add_epsg_def_ex (filter, first, last, 4427, "epsg", 4427, "NAD83 / BLM 7N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-141 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 7N (ftUS)\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-141],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",1640416.67],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"4427\"]]"); p = add_epsg_def_ex (filter, first, last, 4428, "epsg", 4428, "NAD83 / BLM 8N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-135 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 8N (ftUS)\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-135],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",1640416.67],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"4428\"]]"); p = add_epsg_def_ex (filter, first, last, 4429, "epsg", 4429, "NAD83 / BLM 9N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-129 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 9N (ftUS)\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-129],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",1640416.67],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"4429\"]]"); p = add_epsg_def_ex (filter, first, last, 4430, "epsg", 4430, "NAD83 / BLM 10N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-123 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 10N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-123],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",1640416.67],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"4430\"]]"); p = add_epsg_def_ex (filter, first, last, 4431, "epsg", 4431, "NAD83 / BLM 11N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 11N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-117],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",1640416.67],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"4431\"]]"); p = add_epsg_def_ex (filter, first, last, 4432, "epsg", 4432, "NAD83 / BLM 12N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 12N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-111],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",1640416.67],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"4432\"]]"); p = add_epsg_def_ex (filter, first, last, 4433, "epsg", 4433, "NAD83 / BLM 13N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-105 +k=0.9996 +x_0=500000.0"); add_proj4text (p, 1, "01016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 13N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-105],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",1640416.67],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"4433\"]]"); p = add_epsg_def_ex (filter, first, last, 4434, "epsg", 4434, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4178\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",0],PARAMETER[\"central_meridian\",24],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",8500000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 13, "T],AUTHORITY[\"EPSG\",\"4434\"]]"); p = add_epsg_def_ex (filter, first, last, 4437, "epsg", 4437, "NAD83(NSRS2007) / Puerto Rico and Virgin Is.", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333"); add_proj4text (p, 1, "333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +"); add_proj4text (p, 2, "x_0=200000 +y_0=200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 3, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Puerto Rico and Virgin Is.\","); add_srs_wkt (p, 1, "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia"); add_srs_wkt (p, 2, "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 3, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_1\",18.43333333333333],P"); add_srs_wkt (p, 10, "ARAMETER[\"standard_parallel_2\",18.03333333333333],PARA"); add_srs_wkt (p, 11, "METER[\"latitude_of_origin\",17.83333333333333],PARAMETE"); add_srs_wkt (p, 12, "R[\"central_meridian\",-66.43333333333334],PARAMETER[\"f"); add_srs_wkt (p, 13, "alse_easting\",200000],PARAMETER[\"false_northing\",2000"); add_srs_wkt (p, 14, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 15, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"4437\""); add_srs_wkt (p, 16, "]]"); p = add_epsg_def_ex (filter, first, last, 4438, "epsg", 4438, "NAD83 / BLM 18N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-75 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 18N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-75],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",1640416.67],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"4438\"]]"); p = add_epsg_def_ex (filter, first, last, 4439, "epsg", 4439, "NAD83 / BLM 19N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-69 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 19N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-69],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",1640416.67],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"4439\"]]"); p = add_epsg_def_ex (filter, first, last, 4455, "epsg", 4455, "NAD27 / Pennsylvania South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); add_proj4text (p, 1, "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=609601.2"); add_proj4text (p, 2, "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Pennsylvania South\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",40.96666666666667],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",39.93333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",39.33333333333334],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-77.75],PARAMETER[\"false_easting\",20"); add_srs_wkt (p, 12, "00000],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); add_srs_wkt (p, 13, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 14, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "4455\"]]"); p = add_epsg_def_ex (filter, first, last, 4456, "epsg", 4456, "NAD27 / New York Long Island", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, "666 +lat_0=40.5 +lon_0=-74 +x_0=609601.2192024384 +y_0=3"); add_proj4text (p, 2, "0480.06096012192 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New York Long Island\",GEOGCS[\"NAD27\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",41.03333333333333],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",40.66666666666666],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",40.5],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-74],PARAMETER[\"false_easting\",2000000],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",100000],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 13, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 14, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"4456\"]]"); p = add_epsg_def_ex (filter, first, last, 4457, "epsg", 4457, "NAD83 / South Dakota North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666"); add_proj4text (p, 1, "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / South Dakota North (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.6"); add_srs_wkt (p, 9, "8333333333333],PARAMETER[\"standard_parallel_2\",44.4166"); add_srs_wkt (p, 10, "6666666666],PARAMETER[\"latitude_of_origin\",43.83333333"); add_srs_wkt (p, 11, "333334],PARAMETER[\"central_meridian\",-100],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",1968500],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 13, ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 15, "HORITY[\"EPSG\",\"4457\"]]"); p = add_epsg_def_ex (filter, first, last, 4462, "epsg", 4462, "WGS 84 / Australian Centre for Remote Sensing Lambert", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-18 +lat_2=-36 +lat_0=-27 +lon_0=132 +x"); add_proj4text (p, 1, "_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Australian Centre for Remote Sensing L"); add_srs_wkt (p, 1, "ambert\",GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4326\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",-18],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",-36],PARAMETER[\"latitude_of_origin\",-27]"); add_srs_wkt (p, 10, ",PARAMETER[\"central_meridian\",132],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"4462\"]]"); p = add_epsg_def_ex (filter, first, last, 4463, "epsg", 4463, "RGSPM06", 1, 1, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_Saint_Pierre_et_Miquelon_2006", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RGSPM06\",DATUM[\"Reseau_Geodesique_de_Saint_Pi"); add_srs_wkt (p, 1, "erre_et_Miquelon_2006\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 2, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"1038\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4463\"]]"); p = add_epsg_def_ex (filter, first, last, 4467, "epsg", 4467, "RGSPM06 / UTM zone 21N", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_Saint_Pierre_et_Miquelon_2006", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGSPM06 / UTM zone 21N\",GEOGCS[\"RGSPM06\",DAT"); add_srs_wkt (p, 1, "UM[\"Reseau_Geodesique_de_Saint_Pierre_et_Miquelon_2006\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"1038\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4463\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",-57],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 13, "hing\",NORTH],AUTHORITY[\"EPSG\",\"4467\"]]"); p = add_epsg_def_ex (filter, first, last, 4470, "epsg", 4470, "RGM04", 1, 1, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_Mayotte_2004", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RGM04\",DATUM[\"Reseau_Geodesique_de_Mayotte_20"); add_srs_wkt (p, 1, "04\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"1036\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4470\"]]"); p = add_epsg_def_ex (filter, first, last, 4471, "epsg", 4471, "RGM04 / UTM zone 38S", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_Mayotte_2004", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGM04 / UTM zone 38S\",GEOGCS[\"RGM04\",DATUM[\""); add_srs_wkt (p, 1, "Reseau_Geodesique_de_Mayotte_2004\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1036\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4470\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",45],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"4471\"]]"); p = add_epsg_def_ex (filter, first, last, 4474, "epsg", 4474, "Cadastre 1997 / UTM zone 38S (deprecated)", 0, 0, "International 1924", "Greenwich", "Combani_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +ellps=intl +towgs84=-382,-59,"); add_proj4text (p, 1, "-262,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cadastre 1997 / UTM zone 38S (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"Combani 1950\",DATUM[\"Combani_1950\",SPHEROID[\"I"); add_srs_wkt (p, 2, "nternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "2\"]],TOWGS84[-382,-59,-262,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6632\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4632\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 13, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"4474\"]]"); p = add_epsg_def_ex (filter, first, last, 4475, "epsg", 4475, "Cadastre 1997", 1, 1, "International 1924", "Greenwich", "Cadastre_1997", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-381.788,-57.501,-256"); add_proj4text (p, 1, ".673,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Cadastre 1997\",DATUM[\"Cadastre_1997\",SPHEROI"); add_srs_wkt (p, 1, "D[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7022\"]],TOWGS84[-381.788,-57.501,-256.673,0,0,0,0],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1037\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4475\"]"); add_srs_wkt (p, 7, "]"); p = add_epsg_def_ex (filter, first, last, 4483, "epsg", 4483, "Mexico ITRF92", 1, 1, "GRS 1980", "Greenwich", "Mexico_ITRF92", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Mexico ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROI"); add_srs_wkt (p, 1, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 3, "042\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4483\"]]"); p = add_epsg_def_ex (filter, first, last, 4484, "epsg", 4484, "Mexico ITRF92 / UTM zone 11N", 0, 0, "GRS 1980", "Greenwich", "Mexico_ITRF92", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexico ITRF92 / UTM zone 11N\",GEOGCS[\"Mexico "); add_srs_wkt (p, 1, "ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4483\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-117],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"4484\"]]"); p = add_epsg_def_ex (filter, first, last, 4485, "epsg", 4485, "Mexico ITRF92 / UTM zone 12N", 0, 0, "GRS 1980", "Greenwich", "Mexico_ITRF92", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexico ITRF92 / UTM zone 12N\",GEOGCS[\"Mexico "); add_srs_wkt (p, 1, "ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4483\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-111],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"4485\"]]"); p = add_epsg_def_ex (filter, first, last, 4486, "epsg", 4486, "Mexico ITRF92 / UTM zone 13N", 0, 0, "GRS 1980", "Greenwich", "Mexico_ITRF92", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexico ITRF92 / UTM zone 13N\",GEOGCS[\"Mexico "); add_srs_wkt (p, 1, "ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4483\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-105],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"4486\"]]"); p = add_epsg_def_ex (filter, first, last, 4487, "epsg", 4487, "Mexico ITRF92 / UTM zone 14N", 0, 0, "GRS 1980", "Greenwich", "Mexico_ITRF92", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexico ITRF92 / UTM zone 14N\",GEOGCS[\"Mexico "); add_srs_wkt (p, 1, "ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4483\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-99],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"4487\"]]"); p = add_epsg_def_ex (filter, first, last, 4488, "epsg", 4488, "Mexico ITRF92 / UTM zone 15N", 0, 0, "GRS 1980", "Greenwich", "Mexico_ITRF92", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexico ITRF92 / UTM zone 15N\",GEOGCS[\"Mexico "); add_srs_wkt (p, 1, "ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4483\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-93],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"4488\"]]"); p = add_epsg_def_ex (filter, first, last, 4489, "epsg", 4489, "Mexico ITRF92 / UTM zone 16N", 0, 0, "GRS 1980", "Greenwich", "Mexico_ITRF92", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexico ITRF92 / UTM zone 16N\",GEOGCS[\"Mexico "); add_srs_wkt (p, 1, "ITRF92\",DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4483\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-87],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"4489\"]]"); p = add_epsg_def_ex (filter, first, last, 4490, "epsg", 4490, "China Geodetic Coordinate System 2000", 1, 1, "CGCS2000", "Greenwich", "China_2000", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"China Geodetic Coordinate System 2000\",DATUM[\""); add_srs_wkt (p, 1, "China_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 4, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 6, "AST],AUTHORITY[\"EPSG\",\"4490\"]]"); p = add_epsg_def_ex (filter, first, last, 4491, "epsg", 4491, "CGCS2000 / Gauss-Kruger zone 13", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 13\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",75],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",13500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4491\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 4492, "epsg", 4492, "CGCS2000 / Gauss-Kruger zone 14", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 14\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",81],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",14500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4492\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 4493, "epsg", 4493, "CGCS2000 / Gauss-Kruger zone 15", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 15\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",87],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",15500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4493\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 4494, "epsg", 4494, "CGCS2000 / Gauss-Kruger zone 16", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 16\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",93],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",16500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4494\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 4495, "epsg", 4495, "CGCS2000 / Gauss-Kruger zone 17", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 17\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",99],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",17500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4495\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 4496, "epsg", 4496, "CGCS2000 / Gauss-Kruger zone 18", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 18\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",105],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",18500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4496\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 4497, "epsg", 4497, "CGCS2000 / Gauss-Kruger zone 19", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 19\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",111],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",19500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4497\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 4498, "epsg", 4498, "CGCS2000 / Gauss-Kruger zone 20", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 20\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",117],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",20500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4498\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 4499, "epsg", 4499, "CGCS2000 / Gauss-Kruger zone 21", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 21\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",123],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",21500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4499\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 4500, "epsg", 4500, "CGCS2000 / Gauss-Kruger zone 22", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 22\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",129],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",22500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4500\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 4501, "epsg", 4501, "CGCS2000 / Gauss-Kruger zone 23", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger zone 23\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",135],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",23500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4501\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 4502, "epsg", 4502, "CGCS2000 / Gauss-Kruger CM 75E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 75E\",GEOGCS[\"China"); add_srs_wkt (p, 1, " Geodetic Coordinate System 2000\",DATUM[\"China_2000\","); add_srs_wkt (p, 2, "SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",75],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4502\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 4503, "epsg", 4503, "CGCS2000 / Gauss-Kruger CM 81E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 81E\",GEOGCS[\"China"); add_srs_wkt (p, 1, " Geodetic Coordinate System 2000\",DATUM[\"China_2000\","); add_srs_wkt (p, 2, "SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",81],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4503\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 4504, "epsg", 4504, "CGCS2000 / Gauss-Kruger CM 87E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 87E\",GEOGCS[\"China"); add_srs_wkt (p, 1, " Geodetic Coordinate System 2000\",DATUM[\"China_2000\","); add_srs_wkt (p, 2, "SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",87],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4504\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 4505, "epsg", 4505, "CGCS2000 / Gauss-Kruger CM 93E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 93E\",GEOGCS[\"China"); add_srs_wkt (p, 1, " Geodetic Coordinate System 2000\",DATUM[\"China_2000\","); add_srs_wkt (p, 2, "SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",93],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4505\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 4506, "epsg", 4506, "CGCS2000 / Gauss-Kruger CM 99E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 99E\",GEOGCS[\"China"); add_srs_wkt (p, 1, " Geodetic Coordinate System 2000\",DATUM[\"China_2000\","); add_srs_wkt (p, 2, "SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",99],PARAMETER[\"scale_factor\",1],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4506\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 4507, "epsg", 4507, "CGCS2000 / Gauss-Kruger CM 105E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 105E\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",105],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4507\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 4508, "epsg", 4508, "CGCS2000 / Gauss-Kruger CM 111E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 111E\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",111],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4508\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 4509, "epsg", 4509, "CGCS2000 / Gauss-Kruger CM 117E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 117E\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",117],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4509\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 4510, "epsg", 4510, "CGCS2000 / Gauss-Kruger CM 123E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 123E\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",123],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4510\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 4511, "epsg", 4511, "CGCS2000 / Gauss-Kruger CM 129E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 129E\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",129],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4511\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 4512, "epsg", 4512, "CGCS2000 / Gauss-Kruger CM 135E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / Gauss-Kruger CM 135E\",GEOGCS[\"Chin"); add_srs_wkt (p, 1, "a Geodetic Coordinate System 2000\",DATUM[\"China_2000\""); add_srs_wkt (p, 2, ",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",135],PARAMETER[\"scale_factor\",1],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4512\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 4513, "epsg", 4513, "CGCS2000 / 3-degree Gauss-Kruger zone 25", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 25\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",75],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",25500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"4513\"]]"); p = add_epsg_def_ex (filter, first, last, 4514, "epsg", 4514, "CGCS2000 / 3-degree Gauss-Kruger zone 26", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 26\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",78],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",26500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"4514\"]]"); p = add_epsg_def_ex (filter, first, last, 4515, "epsg", 4515, "CGCS2000 / 3-degree Gauss-Kruger zone 27", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 27\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",81],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",27500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"4515\"]]"); p = add_epsg_def_ex (filter, first, last, 4516, "epsg", 4516, "CGCS2000 / 3-degree Gauss-Kruger zone 28", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 28\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",84],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",28500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"4516\"]]"); p = add_epsg_def_ex (filter, first, last, 4517, "epsg", 4517, "CGCS2000 / 3-degree Gauss-Kruger zone 29", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 29\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",87],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",29500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"4517\"]]"); p = add_epsg_def_ex (filter, first, last, 4518, "epsg", 4518, "CGCS2000 / 3-degree Gauss-Kruger zone 30", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 30\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",90],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",30500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"4518\"]]"); p = add_epsg_def_ex (filter, first, last, 4519, "epsg", 4519, "CGCS2000 / 3-degree Gauss-Kruger zone 31", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 31\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",93],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",31500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"4519\"]]"); p = add_epsg_def_ex (filter, first, last, 4520, "epsg", 4520, "CGCS2000 / 3-degree Gauss-Kruger zone 32", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 32\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",96],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",32500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"4520\"]]"); p = add_epsg_def_ex (filter, first, last, 4521, "epsg", 4521, "CGCS2000 / 3-degree Gauss-Kruger zone 33", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 33\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",99],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",33500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"4521\"]]"); p = add_epsg_def_ex (filter, first, last, 4522, "epsg", 4522, "CGCS2000 / 3-degree Gauss-Kruger zone 34", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 34\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",102],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",34500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"4522\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_17.c��������������������������������������������������0000664�0001750�0001750�00000532612�12544707704�017050� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_17 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 3750, "epsg", 3750, "NAD83(HARN) / UTM zone 4N", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=4 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 4N\",GEOGCS[\"NAD83(HARN"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",-159],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"3750\"]]"); p = add_epsg_def_ex (filter, first, last, 3751, "epsg", 3751, "NAD83(HARN) / UTM zone 5N", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=5 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 5N\",GEOGCS[\"NAD83(HARN"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",-153],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"3751\"]]"); p = add_epsg_def_ex (filter, first, last, 3752, "epsg", 3752, "WGS 84 / Mercator 41 (deprecated)", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Mercator_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=merc +lon_0=100 +lat_ts=-41 +x_0=0 +y_0=0 +datum=W"); add_proj4text (p, 1, "GS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Mercator 41 (deprecated)\",GEOGCS[\"WG"); add_srs_wkt (p, 1, "S 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,29"); add_srs_wkt (p, 2, "8.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Mercator_1SP\"],PARAMETER[\"latitude_of_origin\",-41],"); add_srs_wkt (p, 8, "PARAMETER[\"central_meridian\",100],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",1],PARAMETER[\"false_easting\",0],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"3752\"]]"); p = add_epsg_def_ex (filter, first, last, 3753, "epsg", 3753, "NAD83(HARN) / Ohio North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39"); add_proj4text (p, 1, ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Ohio North (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",41.7],PARAMETER[\"standard_parallel_2\",40.43"); add_srs_wkt (p, 10, "333333333333],PARAMETER[\"latitude_of_origin\",39.666666"); add_srs_wkt (p, 11, "66666666],PARAMETER[\"central_meridian\",-82.5],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_easting\",1968500],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 15, "AUTHORITY[\"EPSG\",\"3753\"]]"); p = add_epsg_def_ex (filter, first, last, 3754, "epsg", 3754, "NAD83(HARN) / Ohio South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333"); add_proj4text (p, 1, "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Ohio South (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",40.03333333333333],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",38.73333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",38],PARAMETER[\"central_meridian\",-82.5],PARAMETER["); add_srs_wkt (p, 12, "\"false_easting\",1968500],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"3754\"]]"); p = add_epsg_def_ex (filter, first, last, 3755, "epsg", 3755, "NAD83(HARN) / Wyoming East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wyoming East (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",40.5],PARAMETER[\"central_meridian\",-105.166666666"); add_srs_wkt (p, 10, "6667],PARAMETER[\"scale_factor\",0.9999375],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",656166.6667],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"3755\"]]"); p = add_epsg_def_ex (filter, first, last, 3756, "epsg", 3756, "NAD83(HARN) / Wyoming East Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wyoming East Central (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Referenc"); add_srs_wkt (p, 2, "e_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",40.5],PARAMETER[\"central_meridian\",-107."); add_srs_wkt (p, 10, "3333333333333],PARAMETER[\"scale_factor\",0.9999375],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",1312333.3333],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",328083.3333],UNIT[\"US survey foot\",0.30480"); add_srs_wkt (p, 13, "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 14, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3756\"]]"); p = add_epsg_def_ex (filter, first, last, 3757, "epsg", 3757, "NAD83(HARN) / Wyoming West Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0"); add_proj4text (p, 1, "=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wyoming West Central (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Referenc"); add_srs_wkt (p, 2, "e_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",40.5],PARAMETER[\"central_meridian\",-108."); add_srs_wkt (p, 10, "75],PARAMETER[\"scale_factor\",0.9999375],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",1968500],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"3757\"]]"); p = add_epsg_def_ex (filter, first, last, 3758, "epsg", 3758, "NAD83(HARN) / Wyoming West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wyoming West (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",40.5],PARAMETER[\"central_meridian\",-110.083333333"); add_srs_wkt (p, 10, "3333],PARAMETER[\"scale_factor\",0.9999375],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",2624666.6667],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",328083.3333],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 13, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3758\"]]"); p = add_epsg_def_ex (filter, first, last, 3759, "epsg", 3759, "NAD83 / Hawaii zone 3 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99"); add_proj4text (p, 1, "999 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 2, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Hawaii zone 3 (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",21.16666666666667"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-158],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.99999],PARAMETER[\"false_easting\",1640416.6"); add_srs_wkt (p, 11, "667],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); add_srs_wkt (p, 12, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"37"); add_srs_wkt (p, 14, "59\"]]"); p = add_epsg_def_ex (filter, first, last, 3760, "epsg", 3760, "NAD83(HARN) / Hawaii zone 3 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99"); add_proj4text (p, 1, "999 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 2, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Hawaii zone 3 (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",21.16666666666667],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-158],PARAMETER[\"scale_factor\",0.99999],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",1640416.6667],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"3760\"]]"); p = add_epsg_def_ex (filter, first, last, 3761, "epsg", 3761, "NAD83(CSRS) / UTM zone 22N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 22N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-51],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3761\"]]"); p = add_epsg_def_ex (filter, first, last, 3762, "epsg", 3762, "WGS 84 / South Georgia Lambert", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-54 +lat_2=-54.75 +lat_0=-55 +lon_0=-37"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / South Georgia Lambert\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",-54],PARAMETER[\"standard_parallel_2\",-54.75],P"); add_srs_wkt (p, 9, "ARAMETER[\"latitude_of_origin\",-55],PARAMETER[\"central"); add_srs_wkt (p, 10, "_meridian\",-37],PARAMETER[\"false_easting\",0],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"3762\"]]"); p = add_epsg_def_ex (filter, first, last, 3763, "epsg", 3763, "ETRS89 / Portugal TM06", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=39.66825833333333 +lon_0=-8.133108333"); add_proj4text (p, 1, "333334 +k=1 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Portugal TM06\",GEOGCS[\"ETRS89\",DATU"); add_srs_wkt (p, 1, "M[\"European_Terrestrial_Reference_System_1989\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",39.668"); add_srs_wkt (p, 9, "25833333333],PARAMETER[\"central_meridian\",-8.133108333"); add_srs_wkt (p, 10, "333334],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 13, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3763\"]]"); p = add_epsg_def_ex (filter, first, last, 3764, "epsg", 3764, "NZGD2000 / Chatham Island Circuit 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-44 +lon_0=-176.5 +k=1 +x_0=400000 +y"); add_proj4text (p, 1, "_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Chatham Island Circuit 2000\",GEOGCS"); add_srs_wkt (p, 1, "[\"NZGD2000\",DATUM[\"New_Zealand_Geodetic_Datum_2000\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6167\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",-44],PARAMETER[\"central_meridian\",-176.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",400000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",800000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3764\"]]"); p = add_epsg_def_ex (filter, first, last, 3765, "epsg", 3765, "HTRS96 / Croatia TM", 0, 0, "GRS 1980", "Greenwich", "Croatian_Terrestrial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16.5 +k=0.9999 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"HTRS96 / Croatia TM\",GEOGCS[\"HTRS96\",DATUM[\""); add_srs_wkt (p, 1, "Croatian_Terrestrial_Reference_System\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6761\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4761\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",16.5],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "99],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3765\"]]"); p = add_epsg_def_ex (filter, first, last, 3766, "epsg", 3766, "HTRS96 / Croatia LCC", 0, 0, "GRS 1980", "Greenwich", "Croatian_Terrestrial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.91666666666666 +lat_2=43.08333333333"); add_proj4text (p, 1, "334 +lat_0=0 +lon_0=16.5 +x_0=0 +y_0=0 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"HTRS96 / Croatia LCC\",GEOGCS[\"HTRS96\",DATUM["); add_srs_wkt (p, 1, "\"Croatian_Terrestrial_Reference_System\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6761\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4761\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.9"); add_srs_wkt (p, 9, "1666666666666],PARAMETER[\"standard_parallel_2\",43.0833"); add_srs_wkt (p, 10, "3333333334],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",16.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3766\"]]"); p = add_epsg_def_ex (filter, first, last, 3767, "epsg", 3767, "HTRS96 / UTM zone 33N", 0, 0, "GRS 1980", "Greenwich", "Croatian_Terrestrial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"HTRS96 / UTM zone 33N\",GEOGCS[\"HTRS96\",DATUM"); add_srs_wkt (p, 1, "[\"Croatian_Terrestrial_Reference_System\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6761\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4761\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",15],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"3767\"]]"); p = add_epsg_def_ex (filter, first, last, 3768, "epsg", 3768, "HTRS96 / UTM zone 34N", 0, 0, "GRS 1980", "Greenwich", "Croatian_Terrestrial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"HTRS96 / UTM zone 34N\",GEOGCS[\"HTRS96\",DATUM"); add_srs_wkt (p, 1, "[\"Croatian_Terrestrial_Reference_System\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6761\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4761\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",21],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"3768\"]]"); p = add_epsg_def_ex (filter, first, last, 3769, "epsg", 3769, "Bermuda 1957 / UTM zone 20N", 0, 0, "Clarke 1866", "Greenwich", "Bermuda_1957", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=clrk66 +towgs84=-73,213,296,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bermuda 1957 / UTM zone 20N\",GEOGCS[\"Bermuda "); add_srs_wkt (p, 1, "1957\",DATUM[\"Bermuda_1957\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-73,213,296,0,0,0,0],AUTHORITY[\"EPSG\",\"6216\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4216\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-63],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"3769\"]]"); p = add_epsg_def_ex (filter, first, last, 3770, "epsg", 3770, "BDA2000 / Bermuda 2000 National Grid", 0, 0, "WGS 84", "Greenwich", "Bermuda_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=32 +lon_0=-64.75 +k=1 +x_0=550000 +y_"); add_proj4text (p, 1, "0=100000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"BDA2000 / Bermuda 2000 National Grid\",GEOGCS[\""); add_srs_wkt (p, 1, "BDA2000\",DATUM[\"Bermuda_2000\",SPHEROID[\"WGS 84\",637"); add_srs_wkt (p, 2, "8137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6762\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4762\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",32],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-64.75],PARAMETER[\"scale_factor\",1],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",550000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",100000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"3770\"]]"); p = add_epsg_def_ex (filter, first, last, 3771, "epsg", 3771, "NAD27 / Alberta 3TM ref merid 111 W", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alberta 3TM ref merid 111 W\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-111],PARAMETER[\"scale_factor\",0.9999],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"3771\"]]"); p = add_epsg_def_ex (filter, first, last, 3772, "epsg", 3772, "NAD27 / Alberta 3TM ref merid 114 W", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-114 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alberta 3TM ref merid 114 W\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-114],PARAMETER[\"scale_factor\",0.9999],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"3772\"]]"); p = add_epsg_def_ex (filter, first, last, 3773, "epsg", 3773, "NAD27 / Alberta 3TM ref merid 117 W", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alberta 3TM ref merid 117 W\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-117],PARAMETER[\"scale_factor\",0.9999],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"3773\"]]"); p = add_epsg_def_ex (filter, first, last, 3774, "epsg", 3774, "NAD27 / Alberta 3TM ref merid 120 W (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alberta 3TM ref merid 120 W (deprecated"); add_srs_wkt (p, 1, ")\",GEOGCS[\"NAD27\",DATUM[\"North_American_Datum_1927\""); add_srs_wkt (p, 2, ",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-120],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9999],PARAMETER[\"false_easting\",0],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"3774\"]]"); p = add_epsg_def_ex (filter, first, last, 3775, "epsg", 3775, "NAD83 / Alberta 3TM ref merid 111 W", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alberta 3TM ref merid 111 W\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-111],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9999],PARAMETER[\"false_easting\",0],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3775\"]]"); p = add_epsg_def_ex (filter, first, last, 3776, "epsg", 3776, "NAD83 / Alberta 3TM ref merid 114 W", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-114 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alberta 3TM ref merid 114 W\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-114],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9999],PARAMETER[\"false_easting\",0],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3776\"]]"); p = add_epsg_def_ex (filter, first, last, 3777, "epsg", 3777, "NAD83 / Alberta 3TM ref merid 117 W", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alberta 3TM ref merid 117 W\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-117],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9999],PARAMETER[\"false_easting\",0],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3777\"]]"); p = add_epsg_def_ex (filter, first, last, 3778, "epsg", 3778, "NAD83 / Alberta 3TM ref merid 120 W (deprecated)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alberta 3TM ref merid 120 W (deprecated"); add_srs_wkt (p, 1, ")\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",-120],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"3778\"]]"); p = add_epsg_def_ex (filter, first, last, 3779, "epsg", 3779, "NAD83(CSRS) / Alberta 3TM ref merid 111 W", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Alberta 3TM ref merid 111 W\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-111],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3779\"]]"); p = add_epsg_def_ex (filter, first, last, 3780, "epsg", 3780, "NAD83(CSRS) / Alberta 3TM ref merid 114 W", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-114 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Alberta 3TM ref merid 114 W\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-114],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3780\"]]"); p = add_epsg_def_ex (filter, first, last, 3781, "epsg", 3781, "NAD83(CSRS) / Alberta 3TM ref merid 117 W", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Alberta 3TM ref merid 117 W\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-117],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3781\"]]"); p = add_epsg_def_ex (filter, first, last, 3782, "epsg", 3782, "NAD83(CSRS) / Alberta 3TM ref merid 120 W (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Alberta 3TM ref merid 120 W (depr"); add_srs_wkt (p, 1, "ecated)\",GEOGCS[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_"); add_srs_wkt (p, 2, "Spatial_Reference_System\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 3, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 4, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4617\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 10, "dian\",-120],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",0],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 13, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"3782\"]]"); p = add_epsg_def_ex (filter, first, last, 3783, "epsg", 3783, "Pitcairn 2006 / Pitcairn TM 2006", 0, 0, "WGS 84", "Greenwich", "Pitcairn_2006", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-25.06855261111111 +lon_0=-130.112967"); add_proj4text (p, 1, "1111111 +k=1 +x_0=14200 +y_0=15500 +ellps=WGS84 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pitcairn 2006 / Pitcairn TM 2006\",GEOGCS[\"Pit"); add_srs_wkt (p, 1, "cairn 2006\",DATUM[\"Pitcairn_2006\",SPHEROID[\"WGS 84\""); add_srs_wkt (p, 2, ",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6763\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4763\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",-25.06855261111111]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",-130.1129671111111],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",14"); add_srs_wkt (p, 11, "200],PARAMETER[\"false_northing\",15500],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3783\"]]"); p = add_epsg_def_ex (filter, first, last, 3784, "epsg", 3784, "Pitcairn 1967 / UTM zone 9S", 0, 0, "International 1924", "Greenwich", "Pitcairn_1967", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=9 +south +ellps=intl +towgs84=185,165,42"); add_proj4text (p, 1, ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pitcairn 1967 / UTM zone 9S\",GEOGCS[\"Pitcairn"); add_srs_wkt (p, 1, " 1967\",DATUM[\"Pitcairn_1967\",SPHEROID[\"International"); add_srs_wkt (p, 2, " 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS8"); add_srs_wkt (p, 3, "4[185,165,42,0,0,0,0],AUTHORITY[\"EPSG\",\"6729\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4729\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-129],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"3784\"]]"); p = add_epsg_def_ex (filter, first, last, 3785, "epsg", 3785, "Popular Visualisation CRS / Mercator (deprecated)", 0, 0, "Popular Visualisation Sphere", "Greenwich", "Popular_Visualisation_Datum", "Mercator_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 "); add_proj4text (p, 1, "+x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext "); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Popular Visualisation CRS / Mercator (deprecate"); add_srs_wkt (p, 1, "d)\",GEOGCS[\"Popular Visualisation CRS\",DATUM[\"Popula"); add_srs_wkt (p, 2, "r_Visualisation_Datum\",SPHEROID[\"Popular Visualisation"); add_srs_wkt (p, 3, " Sphere\",6378137,0,AUTHORITY[\"EPSG\",\"7059\"]],TOWGS8"); add_srs_wkt (p, 4, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6055\"]],PRIMEM[\""); add_srs_wkt (p, 5, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 6, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 7, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 8, "[\"EPSG\",\"4055\"]],PROJECTION[\"Mercator_1SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"central_meridian\",0],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],EXTENSION[\"PROJ4\",\""); add_srs_wkt (p, 13, "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 "); add_srs_wkt (p, 14, "+x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext "); add_srs_wkt (p, 15, " +no_defs\"],AUTHORITY[\"EPSG\",\"3785\"]]"); p = add_epsg_def_ex (filter, first, last, 3786, "epsg", 3786, "World Equidistant Cylindrical (Sphere) (deprecated)", 0, 0, "GRS 1980 Authalic Sphere", "Greenwich", "Not_specified_based_on_GRS_1980_Authalic_Sphere", "Equirectangular", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6"); add_proj4text (p, 1, "371007 +b=6371007 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"World Equidistant Cylindrical (Sphere) (depreca"); add_srs_wkt (p, 1, "ted)\",GEOGCS[\"Unspecified datum based upon the GRS 198"); add_srs_wkt (p, 2, "0 Authalic Sphere\",DATUM[\"Not_specified_based_on_GRS_1"); add_srs_wkt (p, 3, "980_Authalic_Sphere\",SPHEROID[\"GRS 1980 Authalic Spher"); add_srs_wkt (p, 4, "e\",6371007,0,AUTHORITY[\"EPSG\",\"7048\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"6047\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 8, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4047\"]],PROJECTI"); add_srs_wkt (p, 9, "ON[\"Equirectangular\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",0],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 13, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3786\"]]"); p = add_epsg_def_ex (filter, first, last, 3787, "epsg", 3787, "MGI / Slovene National Grid (deprecated)", 0, 0, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "Y", "East", "X", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=-5000000 +ellps=bessel +towgs84=577.326,90.129,463.919"); add_proj4text (p, 2, ",5.137,1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Slovene National Grid (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"MGI\",DATUM[\"Militar_Geographische_Institute\",SPH"); add_srs_wkt (p, 2, "EROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137"); add_srs_wkt (p, 4, ",1.474,5.297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 8, "RITY[\"EPSG\",\"4312\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 9, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",15],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"3787\"]]"); p = add_epsg_def_ex (filter, first, last, 3788, "epsg", 3788, "NZGD2000 / Auckland Islands TM 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=166 +k=1 +x_0=3500000 +y_0=1"); add_proj4text (p, 1, "0000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Auckland Islands TM 2000\",GEOGCS[\""); add_srs_wkt (p, 1, "NZGD2000\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6167\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",166],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",1],PARAMETER[\"false_easting\",3500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AUTHORITY[\"EPSG\",\"3788\"]]"); p = add_epsg_def_ex (filter, first, last, 3789, "epsg", 3789, "NZGD2000 / Campbell Island TM 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=169 +k=1 +x_0=3500000 +y_0=1"); add_proj4text (p, 1, "0000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Campbell Island TM 2000\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ZGD2000\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6167\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",169],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",1],PARAMETER[\"false_easting\",3500000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Ea"); add_srs_wkt (p, 13, "sting\",EAST],AUTHORITY[\"EPSG\",\"3789\"]]"); p = add_epsg_def_ex (filter, first, last, 3790, "epsg", 3790, "NZGD2000 / Antipodes Islands TM 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=179 +k=1 +x_0=3500000 +y_0=1"); add_proj4text (p, 1, "0000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Antipodes Islands TM 2000\",GEOGCS[\""); add_srs_wkt (p, 1, "NZGD2000\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6167\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",179],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",1],PARAMETER[\"false_easting\",3500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AUTHORITY[\"EPSG\",\"3790\"]]"); p = add_epsg_def_ex (filter, first, last, 3791, "epsg", 3791, "NZGD2000 / Raoul Island TM 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-178 +k=1 +x_0=3500000 +y_0="); add_proj4text (p, 1, "10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Raoul Island TM 2000\",GEOGCS[\"NZGD"); add_srs_wkt (p, 1, "2000\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "167\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",-178],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",3500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 13, "g\",EAST],AUTHORITY[\"EPSG\",\"3791\"]]"); p = add_epsg_def_ex (filter, first, last, 3793, "epsg", 3793, "NZGD2000 / Chatham Islands TM 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-176.5 +k=1 +x_0=3500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Chatham Islands TM 2000\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ZGD2000\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6167\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",-176.5],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",1],PARAMETER[\"false_easting\",3500000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Easting\",EAST],AUTHORITY[\"EPSG\",\"3793\"]]"); p = add_epsg_def_ex (filter, first, last, 3794, "epsg", 3794, "Slovenia 1996 / Slovene National Grid", 0, 0, "GRS 1980", "Greenwich", "Slovenia_Geodetic_Datum_1996", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Slovenia 1996 / Slovene National Grid\",GEOGCS["); add_srs_wkt (p, 1, "\"Slovenia 1996\",DATUM[\"Slovenia_Geodetic_Datum_1996\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6765\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4765\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9999],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",-5000000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 13, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3794\"]]"); p = add_epsg_def_ex (filter, first, last, 3795, "epsg", 3795, "NAD27 / Cuba Norte", 0, 1, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "metre", "Y", "North", "X", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=23 +lat_2=21.7 +lat_0=22.35 +lon_0=-81 "); add_proj4text (p, 1, "+x_0=500000 +y_0=280296.016 +datum=NAD27 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Cuba Norte\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER["); add_srs_wkt (p, 8, "\"standard_parallel_1\",23],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 9, "l_2\",21.7],PARAMETER[\"latitude_of_origin\",22.35],PARA"); add_srs_wkt (p, 10, "METER[\"central_meridian\",-81],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",280296.016],UNI"); add_srs_wkt (p, 12, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AXIS[\"X\",EAST],AUTHORITY[\"EPSG\",\"3795\"]]"); p = add_epsg_def_ex (filter, first, last, 3796, "epsg", 3796, "NAD27 / Cuba Sur", 0, 1, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "metre", "Y", "North", "X", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=21.3 +lat_2=20.13333333333333 +lat_0=20"); add_proj4text (p, 1, ".71666666666667 +lon_0=-76.83333333333333 +x_0=500000 +y"); add_proj4text (p, 2, "_0=229126.939 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Cuba Sur\",GEOGCS[\"NAD27\",DATUM[\"Nor"); add_srs_wkt (p, 1, "th_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637820"); add_srs_wkt (p, 2, "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",21.3],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 9, "l_2\",20.13333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",20.71666666666667],PARAMETER[\"central_meridian\",-76.8"); add_srs_wkt (p, 11, "3333333333333],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",229126.939],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\",NORTH],AXIS[\"X\","); add_srs_wkt (p, 14, "EAST],AUTHORITY[\"EPSG\",\"3796\"]]"); p = add_epsg_def_ex (filter, first, last, 3797, "epsg", 3797, "NAD27 / MTQ Lambert", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0="); add_proj4text (p, 1, "800000 +y_0=0 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / MTQ Lambert\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",50],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, "el_2\",46],PARAMETER[\"latitude_of_origin\",44],PARAMETE"); add_srs_wkt (p, 10, "R[\"central_meridian\",-70],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "800000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"3797\"]]"); p = add_epsg_def_ex (filter, first, last, 3798, "epsg", 3798, "NAD83 / MTQ Lambert", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0="); add_proj4text (p, 1, "800000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTQ Lambert\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"standard_parallel_1\",50],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_2\",46],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",44],PARAMETER[\"central_meridian\",-70],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",800000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3798\"]]"); p = add_epsg_def_ex (filter, first, last, 3799, "epsg", 3799, "NAD83(CSRS) / MTQ Lambert", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0="); add_proj4text (p, 1, "800000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTQ Lambert\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",50],PARAMETER[\"standard_parallel_2\",46],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",44],PARAMETER[\"central_merid"); add_srs_wkt (p, 11, "ian\",-70],PARAMETER[\"false_easting\",800000],PARAMETER"); add_srs_wkt (p, 12, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"3799\"]]"); p = add_epsg_def_ex (filter, first, last, 3800, "epsg", 3800, "NAD27 / Alberta 3TM ref merid 120 W", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alberta 3TM ref merid 120 W\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"C"); add_srs_wkt (p, 2, "larke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-120],PARAMETER[\"scale_factor\",0.9999],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"3800\"]]"); p = add_epsg_def_ex (filter, first, last, 3801, "epsg", 3801, "NAD83 / Alberta 3TM ref merid 120 W", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alberta 3TM ref merid 120 W\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-120],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9999],PARAMETER[\"false_easting\",0],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3801\"]]"); p = add_epsg_def_ex (filter, first, last, 3802, "epsg", 3802, "NAD83(CSRS) / Alberta 3TM ref merid 120 W", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Alberta 3TM ref merid 120 W\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-120],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3802\"]]"); p = add_epsg_def_ex (filter, first, last, 3812, "epsg", 3812, "ETRS89 / Belgian Lambert 2008", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666"); add_proj4text (p, 1, "666 +lat_0=50.797815 +lon_0=4.359215833333333 +x_0=64932"); add_proj4text (p, 2, "8 +y_0=665262 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Belgian Lambert 2008\",GEOGCS[\"ETRS89"); add_srs_wkt (p, 1, "\",DATUM[\"European_Terrestrial_Reference_System_1989\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",49.83333333333334],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",51.16666666666666],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",50.797815],PARAMETER[\"central_meridian\",4.35921583"); add_srs_wkt (p, 12, "3333333],PARAMETER[\"false_easting\",649328],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",665262],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 15, "RITY[\"EPSG\",\"3812\"]]"); p = add_epsg_def_ex (filter, first, last, 3814, "epsg", 3814, "NAD83 / Mississippi TM", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=32.5 +lon_0=-89.75 +k=0.9998335 +x_0="); add_proj4text (p, 1, "500000 +y_0=1300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Mississippi TM\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",32.5],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",-89.75],PARAMETER[\"scale_factor\",0.99983"); add_srs_wkt (p, 10, "35],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",1300000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"3814\"]]"); p = add_epsg_def_ex (filter, first, last, 3815, "epsg", 3815, "NAD83(HARN) / Mississippi TM", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=32.5 +lon_0=-89.75 +k=0.9998335 +x_0="); add_proj4text (p, 1, "500000 +y_0=1300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Mississippi TM\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "32.5],PARAMETER[\"central_meridian\",-89.75],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.9998335],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",1300000],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3815\"]]"); p = add_epsg_def_ex (filter, first, last, 3816, "epsg", 3816, "NAD83(NSRS2007) / Mississippi TM", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=32.5 +lon_0=-89.75 +k=0.9998335 +x_0="); add_proj4text (p, 1, "500000 +y_0=1300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Mississippi TM\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",32.5],PARAMETER[\"central_meridian\",-89"); add_srs_wkt (p, 10, ".75],PARAMETER[\"scale_factor\",0.9998335],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",500000],PARAMETER[\"false_northing\",1300"); add_srs_wkt (p, 12, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 13, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3816"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 3819, "epsg", 3819, "HD1909", 1, 1, "Bessel 1841", "Greenwich", "Hungarian_Datum_1909", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=595.48,121.69,515.3"); add_proj4text (p, 1, "5,4.115,-2.9383,0.853,-3.408 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"HD1909\",DATUM[\"Hungarian_Datum_1909\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7004\"]],TOWGS84[595.48,121.69,515.35,4.115,-2.93"); add_srs_wkt (p, 3, "83,0.853,-3.408],AUTHORITY[\"EPSG\",\"1024\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"3819\"]]"); p = add_epsg_def_ex (filter, first, last, 3821, "epsg", 3821, "TWD67", 1, 1, "GRS 1967 Modified", "Greenwich", "Taiwan_Datum_1967", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=aust_SA +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"TWD67\",DATUM[\"Taiwan_Datum_1967\",SPHEROID[\""); add_srs_wkt (p, 1, "GRS 1967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7050\"]],AUTHORITY[\"EPSG\",\"1025\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 3, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 4, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 5, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"3821\"]]"); p = add_epsg_def_ex (filter, first, last, 3824, "epsg", 3824, "TWD97", 1, 1, "GRS 1980", "Greenwich", "Taiwan_Datum_1997", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"TWD97\",DATUM[\"Taiwan_Datum_1997\",SPHEROID[\""); add_srs_wkt (p, 1, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1026\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"3824\"]]"); p = add_epsg_def_ex (filter, first, last, 3825, "epsg", 3825, "TWD97 / TM2 zone 119", 0, 0, "GRS 1980", "Greenwich", "Taiwan_Datum_1997", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=119 +k=0.9999 +x_0=250000 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"TWD97 / TM2 zone 119\",GEOGCS[\"TWD97\",DATUM[\""); add_srs_wkt (p, 1, "Taiwan_Datum_1997\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 2, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"1026\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "3824\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "19],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",250000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3825\"]]"); p = add_epsg_def_ex (filter, first, last, 3826, "epsg", 3826, "TWD97 / TM2 zone 121", 0, 0, "GRS 1980", "Greenwich", "Taiwan_Datum_1997", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=121 +k=0.9999 +x_0=250000 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"TWD97 / TM2 zone 121\",GEOGCS[\"TWD97\",DATUM[\""); add_srs_wkt (p, 1, "Taiwan_Datum_1997\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 2, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"1026\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "3824\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "21],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",250000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3826\"]]"); p = add_epsg_def_ex (filter, first, last, 3827, "epsg", 3827, "TWD67 / TM2 zone 119", 0, 0, "GRS 1967 Modified", "Greenwich", "Taiwan_Datum_1967", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=119 +k=0.9999 +x_0=250000 +y"); add_proj4text (p, 1, "_0=0 +ellps=aust_SA +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TWD67 / TM2 zone 119\",GEOGCS[\"TWD67\",DATUM[\""); add_srs_wkt (p, 1, "Taiwan_Datum_1967\",SPHEROID[\"GRS 1967 Modified\",63781"); add_srs_wkt (p, 2, "60,298.25,AUTHORITY[\"EPSG\",\"7050\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"1025\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"3821\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",119],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9999],PARAMETER[\"false_easting\",250000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"3827\"]]"); p = add_epsg_def_ex (filter, first, last, 3828, "epsg", 3828, "TWD67 / TM2 zone 121", 0, 0, "GRS 1967 Modified", "Greenwich", "Taiwan_Datum_1967", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=121 +k=0.9999 +x_0=250000 +y"); add_proj4text (p, 1, "_0=0 +ellps=aust_SA +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TWD67 / TM2 zone 121\",GEOGCS[\"TWD67\",DATUM[\""); add_srs_wkt (p, 1, "Taiwan_Datum_1967\",SPHEROID[\"GRS 1967 Modified\",63781"); add_srs_wkt (p, 2, "60,298.25,AUTHORITY[\"EPSG\",\"7050\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"1025\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"3821\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",121],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9999],PARAMETER[\"false_easting\",250000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"3828\"]]"); p = add_epsg_def_ex (filter, first, last, 3829, "epsg", 3829, "Hu Tzu Shan 1950 / UTM zone 51N", 0, 0, "International 1924", "Greenwich", "Hu_Tzu_Shan_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=51 +ellps=intl +towgs84=-637,-549,-203,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hu Tzu Shan 1950 / UTM zone 51N\",GEOGCS[\"Hu T"); add_srs_wkt (p, 1, "zu Shan 1950\",DATUM[\"Hu_Tzu_Shan_1950\",SPHEROID[\"Int"); add_srs_wkt (p, 2, "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[-637,-549,-203,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6236\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4236\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",123],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"3829\"]]"); p = add_epsg_def_ex (filter, first, last, 3832, "epsg", 3832, "WGS 84 / PDC Mercator", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Mercator_1SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=merc +lon_0=150 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / PDC Mercator\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Mercator_1"); add_srs_wkt (p, 7, "SP\"],PARAMETER[\"central_meridian\",150],PARAMETER[\"sc"); add_srs_wkt (p, 8, "ale_factor\",1],PARAMETER[\"false_easting\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 10, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 11, "ORTH],AUTHORITY[\"EPSG\",\"3832\"]]"); p = add_epsg_def_ex (filter, first, last, 3833, "epsg", 3833, "Pulkovo 1942(58) / Gauss-Kruger zone 2", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.8"); add_proj4text (p, 2, "44,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Gauss-Kruger zone 2\",GEOGCS"); add_srs_wkt (p, 1, "[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID"); add_srs_wkt (p, 2, "[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-"); add_srs_wkt (p, 4, "0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4179\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",2500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 13, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3833\"]]"); p = add_epsg_def_ex (filter, first, last, 3834, "epsg", 3834, "Pulkovo 1942(83) / Gauss-Kruger zone 2", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / Gauss-Kruger zone 2\",GEOGCS"); add_srs_wkt (p, 1, "[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\",SPHEROID"); add_srs_wkt (p, 2, "[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4178\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",1],PARAMETER[\"false_easting\",2500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"3834\"]]"); p = add_epsg_def_ex (filter, first, last, 3835, "epsg", 3835, "Pulkovo 1942(83) / Gauss-Kruger zone 3", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / Gauss-Kruger zone 3\",GEOGCS"); add_srs_wkt (p, 1, "[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\",SPHEROID"); add_srs_wkt (p, 2, "[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4178\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",1],PARAMETER[\"false_easting\",3500000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"3835\"]]"); p = add_epsg_def_ex (filter, first, last, 3836, "epsg", 3836, "Pulkovo 1942(83) / Gauss-Kruger zone 4", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / Gauss-Kruger zone 4\",GEOGCS"); add_srs_wkt (p, 1, "[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\",SPHEROID"); add_srs_wkt (p, 2, "[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4178\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",1],PARAMETER[\"false_easting\",4500000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"3836\"]]"); p = add_epsg_def_ex (filter, first, last, 3837, "epsg", 3837, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.8"); add_proj4text (p, 2, "44,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.05"); add_srs_wkt (p, 4, "3,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",3500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3837\"]]"); p = add_epsg_def_ex (filter, first, last, 3838, "epsg", 3838, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.05"); add_srs_wkt (p, 4, "3,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",12],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",4500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3838\"]]"); p = add_epsg_def_ex (filter, first, last, 3839, "epsg", 3839, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 9", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 9"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.05"); add_srs_wkt (p, 4, "3,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",27],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",9500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3839\"]]"); p = add_epsg_def_ex (filter, first, last, 3840, "epsg", 3840, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 10", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0"); add_proj4text (p, 2, ".844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 1"); add_srs_wkt (p, 1, "0\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.05"); add_srs_wkt (p, 4, "3,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",30],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",10500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3840\"]]"); p = add_epsg_def_ex (filter, first, last, 3841, "epsg", 3841, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 6", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 6"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4178\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",0],PARAMETER[\"central_meridian\",18],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",6500000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 13, "T],AUTHORITY[\"EPSG\",\"3841\"]]"); p = add_epsg_def_ex (filter, first, last, 3842, "epsg", 3842, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7"); add_srs_wkt (p, 1, " (deprecated)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulk"); add_srs_wkt (p, 2, "ovo_1942_83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "78\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",18"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",6500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 13, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3842\"]]"); p = add_epsg_def_ex (filter, first, last, 3843, "epsg", 3843, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8"); add_srs_wkt (p, 1, " (deprecated)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulk"); add_srs_wkt (p, 2, "ovo_1942_83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "78\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",18"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",6500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 13, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3843\"]]"); p = add_epsg_def_ex (filter, first, last, 3844, "epsg", 3844, "Pulkovo 1942(58) / Stereo70", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Oblique_Stereographic", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 "); add_proj4text (p, 1, "+y_0=500000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.3"); add_proj4text (p, 2, "59,-0.053,0.844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Stereo70\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4179\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",46],PARAMETER[\"central_meridian\",25],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.99975],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",500000],PARAMETER[\"false_northing\",500000],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 13, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3844\"]]"); p = add_epsg_def_ex (filter, first, last, 3845, "epsg", 3845, "SWEREF99 / RT90 7.5 gon V emulation", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11.30625 +k=1.000006 +x_0=15"); add_proj4text (p, 1, "00025.141 +y_0=-667.282 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 / RT90 7.5 gon V emulation\",GEOGCS[\""); add_srs_wkt (p, 1, "SWEREF99\",DATUM[\"SWEREF99\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6619\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4619\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",11.30625],PARAMETER[\"scale_factor\",1.000006],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",1500025.141],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",-667.282],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"3845\"]]"); p = add_epsg_def_ex (filter, first, last, 3846, "epsg", 3846, "SWEREF99 / RT90 5 gon V emulation", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.55626666666667 +k=1.00000"); add_proj4text (p, 1, "58 +x_0=1500044.695 +y_0=-667.13 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 2, ",0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 / RT90 5 gon V emulation\",GEOGCS[\"SW"); add_srs_wkt (p, 1, "EREF99\",DATUM[\"SWEREF99\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6619\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4619\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",13.55626666666667],PARAMETER[\"scale_factor\",1."); add_srs_wkt (p, 10, "0000058],PARAMETER[\"false_easting\",1500044.695],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",-667.13],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"3846\"]]"); p = add_epsg_def_ex (filter, first, last, 3847, "epsg", 3847, "SWEREF99 / RT90 2.5 gon V emulation", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15.80628452944445 +k=1.00000"); add_proj4text (p, 1, "561024 +x_0=1500064.274 +y_0=-667.711 +ellps=GRS80 +towg"); add_proj4text (p, 2, "s84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 / RT90 2.5 gon V emulation\",GEOGCS[\""); add_srs_wkt (p, 1, "SWEREF99\",DATUM[\"SWEREF99\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6619\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4619\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",15.80628452944445],PARAMETER[\"scale_factor\",1."); add_srs_wkt (p, 10, "00000561024],PARAMETER[\"false_easting\",1500064.274],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",-667.711],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"3847\"]]"); p = add_epsg_def_ex (filter, first, last, 3848, "epsg", 3848, "SWEREF99 / RT90 0 gon emulation", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18.0563 +k=1.0000054 +x_0=15"); add_proj4text (p, 1, "00083.521 +y_0=-668.8440000000001 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 / RT90 0 gon emulation\",GEOGCS[\"SWER"); add_srs_wkt (p, 1, "EF99\",DATUM[\"SWEREF99\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 2, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 3, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4619\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",18.0563],PARAMETER[\"scale_factor\",1.0000054],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",1500083.521],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",-668.844],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"3848\"]]"); p = add_epsg_def_ex (filter, first, last, 3849, "epsg", 3849, "SWEREF99 / RT90 2.5 gon O emulation", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20.30631666666667 +k=1.00000"); add_proj4text (p, 1, "52 +x_0=1500102.765 +y_0=-670.706 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 / RT90 2.5 gon O emulation\",GEOGCS[\""); add_srs_wkt (p, 1, "SWEREF99\",DATUM[\"SWEREF99\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6619\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4619\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",20.30631666666667],PARAMETER[\"scale_factor\",1."); add_srs_wkt (p, 10, "0000052],PARAMETER[\"false_easting\",1500102.765],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",-670.706],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 13, "T],AUTHORITY[\"EPSG\",\"3849\"]]"); p = add_epsg_def_ex (filter, first, last, 3850, "epsg", 3850, "SWEREF99 / RT90 5 gon O emulation", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=22.55633333333333 +k=1.00000"); add_proj4text (p, 1, "49 +x_0=1500121.846 +y_0=-672.557 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SWEREF99 / RT90 5 gon O emulation\",GEOGCS[\"SW"); add_srs_wkt (p, 1, "EREF99\",DATUM[\"SWEREF99\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6619\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4619\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",22.55633333333333],PARAMETER[\"scale_factor\",1."); add_srs_wkt (p, 10, "0000049],PARAMETER[\"false_easting\",1500121.846],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",-672.557],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 13, "T],AUTHORITY[\"EPSG\",\"3850\"]]"); p = add_epsg_def_ex (filter, first, last, 3851, "epsg", 3851, "NZGD2000 / NZCS2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Lambert_Conformal_Conic_2SP", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=-37.5 +lat_2=-44.5 +lat_0=-41 +lon_0=17"); add_proj4text (p, 1, "3 +x_0=3000000 +y_0=7000000 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / NZCS2000\",GEOGCS[\"NZGD2000\",DATUM"); add_srs_wkt (p, 1, "[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",-37.5],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",-44.5],PARAMETER[\"lati"); add_srs_wkt (p, 10, "tude_of_origin\",-41],PARAMETER[\"central_meridian\",173"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",3000000],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",7000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA"); add_srs_wkt (p, 14, "ST],AUTHORITY[\"EPSG\",\"3851\"]]"); p = add_epsg_def_ex (filter, first, last, 3852, "epsg", 3852, "RSRGD2000 / DGLC2000", 0, 1, "GRS 1980", "Greenwich", "Ross_Sea_Region_Geodetic_Datum_2000", "Lambert_Conformal_Conic_2SP", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=157 +x_0=500000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RSRGD2000 / DGLC2000\",GEOGCS[\"RSRGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Ross_Sea_Region_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6764\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4764\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",-7"); add_srs_wkt (p, 9, "6.66666666666667],PARAMETER[\"standard_parallel_2\",-79."); add_srs_wkt (p, 10, "33333333333333],PARAMETER[\"latitude_of_origin\",-90],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",157],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 13, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",N"); add_srs_wkt (p, 14, "ORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3852\""); add_srs_wkt (p, 15, "]]"); p = add_epsg_def_ex (filter, first, last, 3854, "epsg", 3854, "County ST74", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "x", "North", "y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18.05787 +k=0.99999506 +x_0="); add_proj4text (p, 1, "100182.7406 +y_0=-6500620.1207 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 2, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"County ST74\",GEOGCS[\"SWEREF99\",DATUM[\"SWERE"); add_srs_wkt (p, 1, "F99\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 8, "rigin\",0],PARAMETER[\"central_meridian\",18.05787],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",0.99999506],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",100182.7406],PARAMETER[\"false_northing\",-650062"); add_srs_wkt (p, 11, "0.1207],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "854\"]]"); p = add_epsg_def_ex (filter, first, last, 3857, "epsg", 3857, "WGS 84 / Pseudo-Mercator", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Mercator_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 "); add_proj4text (p, 1, "+x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext "); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Pseudo-Mercator\",GEOGCS[\"WGS 84\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2572235"); add_srs_wkt (p, 2, "63,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"63"); add_srs_wkt (p, 3, "26\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Mercato"); add_srs_wkt (p, 7, "r_1SP\"],PARAMETER[\"central_meridian\",0],PARAMETER[\"s"); add_srs_wkt (p, 8, "cale_factor\",1],PARAMETER[\"false_easting\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 10, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],EXTENS"); add_srs_wkt (p, 11, "ION[\"PROJ4\",\"+proj=merc +a=6378137 +b=6378137 +lat_ts"); add_srs_wkt (p, 12, "=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrid"); add_srs_wkt (p, 13, "s=@null +wktext +no_defs\"],AUTHORITY[\"EPSG\",\"3857\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3873, "epsg", 3873, "ETRS89 / GK19FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=19 +k=1 +x_0=19500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK19FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",19],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",19500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"3873\"]]"); p = add_epsg_def_ex (filter, first, last, 3874, "epsg", 3874, "ETRS89 / GK20FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20 +k=1 +x_0=20500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK20FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",20],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",20500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"3874\"]]"); p = add_epsg_def_ex (filter, first, last, 3875, "epsg", 3875, "ETRS89 / GK21FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=21500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK21FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",21],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",21500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"3875\"]]"); p = add_epsg_def_ex (filter, first, last, 3876, "epsg", 3876, "ETRS89 / GK22FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=22 +k=1 +x_0=22500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK22FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",22],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",22500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"3876\"]]"); p = add_epsg_def_ex (filter, first, last, 3877, "epsg", 3877, "ETRS89 / GK23FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=23 +k=1 +x_0=23500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK23FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",23],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",23500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"3877\"]]"); p = add_epsg_def_ex (filter, first, last, 3878, "epsg", 3878, "ETRS89 / GK24FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=24500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK24FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",24],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",24500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"3878\"]]"); p = add_epsg_def_ex (filter, first, last, 3879, "epsg", 3879, "ETRS89 / GK25FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=25 +k=1 +x_0=25500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK25FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",25],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",25500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"3879\"]]"); p = add_epsg_def_ex (filter, first, last, 3880, "epsg", 3880, "ETRS89 / GK26FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=26 +k=1 +x_0=26500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK26FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",26],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",26500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"3880\"]]"); p = add_epsg_def_ex (filter, first, last, 3881, "epsg", 3881, "ETRS89 / GK27FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=27500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK27FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",27],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",27500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"3881\"]]"); p = add_epsg_def_ex (filter, first, last, 3882, "epsg", 3882, "ETRS89 / GK28FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=28500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK28FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",28],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",28500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"3882\"]]"); p = add_epsg_def_ex (filter, first, last, 3883, "epsg", 3883, "ETRS89 / GK29FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=29 +k=1 +x_0=29500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK29FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",29],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",29500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"3883\"]]"); p = add_epsg_def_ex (filter, first, last, 3884, "epsg", 3884, "ETRS89 / GK30FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=30500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK30FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",30],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",30500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"3884\"]]"); p = add_epsg_def_ex (filter, first, last, 3885, "epsg", 3885, "ETRS89 / GK31FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=31500000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / GK31FIN\",GEOGCS[\"ETRS89\",DATUM[\"Eu"); add_srs_wkt (p, 1, "ropean_Terrestrial_Reference_System_1989\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",31],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",31500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"3885\"]]"); p = add_epsg_def_ex (filter, first, last, 3889, "epsg", 3889, "IGRS", 1, 1, "GRS 1980", "Greenwich", "Iraqi_Geospatial_Reference_System", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"IGRS\",DATUM[\"Iraqi_Geospatial_Reference_Syste"); add_srs_wkt (p, 1, "m\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1029\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"3889\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ����������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_23.c��������������������������������������������������0000664�0001750�0001750�00000325322�12544707704�017043� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_23 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 4644, "epsg", 4644, "NEA74 Noumea", 1, 1, "International 1924", "Greenwich", "NEA74_Noumea", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-10.18,-350.43,291.37"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NEA74 Noumea\",DATUM[\"NEA74_Noumea\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[-10.18,-350.43,291.37,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"6644\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4644\"]]"); p = add_epsg_def_ex (filter, first, last, 4645, "epsg", 4645, "RGNC 1991", 1, 1, "International 1924", "Greenwich", "Reseau_Geodesique_Nouvelle_Caledonie_1991", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=0,0,0,0,0,0,0 +no_def"); add_proj4text (p, 1, "s"); add_srs_wkt (p, 0, "GEOGCS[\"RGNC 1991\",DATUM[\"Reseau_Geodesique_Nouvelle_"); add_srs_wkt (p, 1, "Caledonie_1991\",SPHEROID[\"International 1924\",6378388"); add_srs_wkt (p, 2, ",297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6645\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"464"); add_srs_wkt (p, 7, "5\"]]"); p = add_epsg_def_ex (filter, first, last, 4646, "epsg", 4646, "Grand Comoros", 1, 1, "International 1924", "Greenwich", "Grand_Comoros", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-963,510,-359,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Grand Comoros\",DATUM[\"Grand_Comoros\",SPHEROI"); add_srs_wkt (p, 1, "D[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7022\"]],TOWGS84[-963,510,-359,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6646\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4646\"]]"); p = add_epsg_def_ex (filter, first, last, 4647, "epsg", 4647, "ETRS89 / UTM zone 32N (zE-N)", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=32500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 32N (zE-N)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9996],PARAMETER[\"false_easting\",32500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"4647\"]]"); p = add_epsg_def_ex (filter, first, last, 4652, "epsg", 4652, "New Beijing / 3-degree Gauss-Kruger zone 25", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 25\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",25500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4652\"]]"); p = add_epsg_def_ex (filter, first, last, 4653, "epsg", 4653, "New Beijing / 3-degree Gauss-Kruger zone 26", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 26\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",7"); add_srs_wkt (p, 9, "8],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",26500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4653\"]]"); p = add_epsg_def_ex (filter, first, last, 4654, "epsg", 4654, "New Beijing / 3-degree Gauss-Kruger zone 27", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 27\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",27500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4654\"]]"); p = add_epsg_def_ex (filter, first, last, 4655, "epsg", 4655, "New Beijing / 3-degree Gauss-Kruger zone 28", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 28\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, "4],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",28500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4655\"]]"); p = add_epsg_def_ex (filter, first, last, 4656, "epsg", 4656, "New Beijing / 3-degree Gauss-Kruger zone 29", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 29\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",8"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",29500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4656\"]]"); p = add_epsg_def_ex (filter, first, last, 4657, "epsg", 4657, "Reykjavik 1900", 1, 1, "Danish 1876", "Greenwich", "Reykjavik_1900", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377019.27 +b=6355762.5391 +towgs84=-28"); add_proj4text (p, 1, ",199,5,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Reykjavik 1900\",DATUM[\"Reykjavik_1900\",SPHER"); add_srs_wkt (p, 1, "OID[\"Danish 1876\",6377019.27,300,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7051\"]],TOWGS84[-28,199,5,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6657\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 6, "\",EAST],AUTHORITY[\"EPSG\",\"4657\"]]"); p = add_epsg_def_ex (filter, first, last, 4658, "epsg", 4658, "Hjorsey 1955", 1, 1, "International 1924", "Greenwich", "Hjorsey_1955", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +n"); add_proj4text (p, 1, "o_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Hjorsey 1955\",DATUM[\"Hjorsey_1955\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[-73,46,-86,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"6658\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 6, "de\",EAST],AUTHORITY[\"EPSG\",\"4658\"]]"); p = add_epsg_def_ex (filter, first, last, 4659, "epsg", 4659, "ISN93", 1, 1, "GRS 1980", "Greenwich", "Islands_Net_1993", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"ISN93\",DATUM[\"Islands_Net_1993\",SPHEROID[\"G"); add_srs_wkt (p, 1, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 2, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6659\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4659\"]]"); p = add_epsg_def_ex (filter, first, last, 4660, "epsg", 4660, "Helle 1954", 1, 1, "International 1924", "Greenwich", "Helle_1954", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=982.6087,552.753,-540"); add_proj4text (p, 1, ".873,6.68162662527694,-31.6114924086422,-19.848161004816"); add_proj4text (p, 2, "8,16.805 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Helle 1954\",DATUM[\"Helle_1954\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],TOWGS84[982.6087,552.753,-540.873,6.68162662527694,"); add_srs_wkt (p, 3, "-31.6114924086422,-19.8481610048168,16.805],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6660\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4660\"]]"); p = add_epsg_def_ex (filter, first, last, 4661, "epsg", 4661, "LKS92", 1, 1, "GRS 1980", "Greenwich", "Latvia_1992", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"LKS92\",DATUM[\"Latvia_1992\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 1, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 2, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6661\"]],PR"); add_srs_wkt (p, 3, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 4, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 5, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4661\"]]"); p = add_epsg_def_ex (filter, first, last, 4662, "epsg", 4662, "IGN72 Grande Terre", 1, 1, "International 1924", "Greenwich", "IGN72_Grande_Terre", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-11.64,-348.6,291.98,"); add_proj4text (p, 1, "0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGN72 Grande Terre\",DATUM[\"IGN72_Grande_Terre"); add_srs_wkt (p, 1, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7022\"]],TOWGS84[-11.64,-348.6,291.98,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6634\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 7, "62\"]]"); p = add_epsg_def_ex (filter, first, last, 4663, "epsg", 4663, "Porto Santo 1995", 1, 1, "International 1924", "Greenwich", "Porto_Santo_1995", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-502.862,-247.438,312"); add_proj4text (p, 1, ".724,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Porto Santo 1995\",DATUM[\"Porto_Santo_1995\",S"); add_srs_wkt (p, 1, "PHEROID[\"International 1924\",6378388,297,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7022\"]],TOWGS84[-502.862,-247.438,312.724,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"6663\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 7, "63\"]]"); p = add_epsg_def_ex (filter, first, last, 4664, "epsg", 4664, "Azores Oriental 1995", 1, 1, "International 1924", "Greenwich", "Azores_Oriental_Islands_1995", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-204.619,140.176,55.2"); add_proj4text (p, 1, "26,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Azores Oriental 1995\",DATUM[\"Azores_Oriental_"); add_srs_wkt (p, 1, "Islands_1995\",SPHEROID[\"International 1924\",6378388,2"); add_srs_wkt (p, 2, "97,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-204.619,140.17"); add_srs_wkt (p, 3, "6,55.226,0,0,0,0],AUTHORITY[\"EPSG\",\"6664\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4664\"]]"); p = add_epsg_def_ex (filter, first, last, 4665, "epsg", 4665, "Azores Central 1995", 1, 1, "International 1924", "Greenwich", "Azores_Central_Islands_1995", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-106.226,166.366,-37."); add_proj4text (p, 1, "893,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Azores Central 1995\",DATUM[\"Azores_Central_Is"); add_srs_wkt (p, 1, "lands_1995\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-106.226,166.366,"); add_srs_wkt (p, 3, "-37.893,0,0,0,0],AUTHORITY[\"EPSG\",\"6665\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4665\"]]"); p = add_epsg_def_ex (filter, first, last, 4666, "epsg", 4666, "Lisbon 1890", 1, 1, "Bessel 1841", "Greenwich", "Lisbon_1890", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=508.088,-191.042,56"); add_proj4text (p, 1, "5.223,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Lisbon 1890\",DATUM[\"Lisbon_1890\",SPHEROID[\""); add_srs_wkt (p, 1, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7004\"]],TOWGS84[508.088,-191.042,565.223,0,0,0,0],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6666\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4666\"]"); add_srs_wkt (p, 7, "]"); p = add_epsg_def_ex (filter, first, last, 4667, "epsg", 4667, "IKBD-92", 1, 1, "WGS 84", "Greenwich", "Iraq_Kuwait_Boundary_Datum_1992", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"IKBD-92\",DATUM[\"Iraq_Kuwait_Boundary_Datum_19"); add_srs_wkt (p, 1, "92\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6667\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4667\"]]"); p = add_epsg_def_ex (filter, first, last, 4668, "epsg", 4668, "ED79", 1, 1, "International 1924", "Greenwich", "European_Datum_1979", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-86,-98,-119,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ED79\",DATUM[\"European_Datum_1979\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[-86,-98,-119,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"6668\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 6, "de\",EAST],AUTHORITY[\"EPSG\",\"4668\"]]"); p = add_epsg_def_ex (filter, first, last, 4669, "epsg", 4669, "LKS94", 1, 1, "GRS 1980", "Greenwich", "Lithuania_1994_ETRS89", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"LKS94\",DATUM[\"Lithuania_1994_ETRS89\",SPHEROI"); add_srs_wkt (p, 1, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "126\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4669\"]]"); p = add_epsg_def_ex (filter, first, last, 4670, "epsg", 4670, "IGM95", 1, 1, "WGS 84", "Greenwich", "Istituto_Geografico_Militaire_1995", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"IGM95\",DATUM[\"Istituto_Geografico_Militaire_1"); add_srs_wkt (p, 1, "995\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6670\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4670\"]]"); p = add_epsg_def_ex (filter, first, last, 4671, "epsg", 4671, "Voirol 1879", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Voirol_1879", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Voirol 1879\",DATUM[\"Voirol_1879\",SPHEROID[\""); add_srs_wkt (p, 1, "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\",\"6671\"]],PRIM"); add_srs_wkt (p, 3, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 4, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 5, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4671\"]]"); p = add_epsg_def_ex (filter, first, last, 4672, "epsg", 4672, "Chatham Islands 1971", 1, 1, "International 1924", "Greenwich", "Chatham_Islands_Datum_1971", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=175,-38,113,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Chatham Islands 1971\",DATUM[\"Chatham_Islands_"); add_srs_wkt (p, 1, "Datum_1971\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[175,-38,113,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"6672\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 7, "72\"]]"); p = add_epsg_def_ex (filter, first, last, 4673, "epsg", 4673, "Chatham Islands 1979", 1, 1, "International 1924", "Greenwich", "Chatham_Islands_Datum_1979", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=174.05,-25.49,112.57,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Chatham Islands 1979\",DATUM[\"Chatham_Islands_"); add_srs_wkt (p, 1, "Datum_1979\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[174.05,-25.49,112"); add_srs_wkt (p, 3, ".57,0,0,0.554,0.2263],AUTHORITY[\"EPSG\",\"6673\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4673\"]]"); p = add_epsg_def_ex (filter, first, last, 4674, "epsg", 4674, "SIRGAS 2000", 1, 1, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"SIRGAS 2000\",DATUM[\"Sistema_de_Referencia_Geo"); add_srs_wkt (p, 1, "centrico_para_las_AmericaS_2000\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4674\"]]"); p = add_epsg_def_ex (filter, first, last, 4675, "epsg", 4675, "Guam 1963", 1, 1, "Clarke 1866", "Greenwich", "Guam_1963", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=-100,-248,259,0,0,0"); add_proj4text (p, 1, ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Guam 1963\",DATUM[\"Guam_1963\",SPHEROID[\"Clar"); add_srs_wkt (p, 1, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7008\"]],TOWGS84[-100,-248,259,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6675\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 6, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4675\"]]"); p = add_epsg_def_ex (filter, first, last, 4676, "epsg", 4676, "Vientiane 1982", 1, 1, "Krassowsky 1940", "Greenwich", "Vientiane_1982", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Vientiane 1982\",DATUM[\"Vientiane_1982\",SPHER"); add_srs_wkt (p, 1, "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7024\"]],AUTHORITY[\"EPSG\",\"6676\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 4, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 5, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4676\"]]"); p = add_epsg_def_ex (filter, first, last, 4677, "epsg", 4677, "Lao 1993", 1, 1, "Krassowsky 1940", "Greenwich", "Lao_1993", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Lao 1993\",DATUM[\"Lao_1993\",SPHEROID[\"Krasso"); add_srs_wkt (p, 1, "wsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"6677\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 4, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 5, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4677\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def_ex (filter, first, last, 4678, "epsg", 4678, "Lao 1997", 1, 1, "Krassowsky 1940", "Greenwich", "Lao_National_Datum_1997", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=44.585,-131.212,-39."); add_proj4text (p, 1, "544,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Lao 1997\",DATUM[\"Lao_National_Datum_1997\",SP"); add_srs_wkt (p, 1, "HEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7024\"]],TOWGS84[44.585,-131.212,-39.544,0,0,0,0],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6678\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4678\""); add_srs_wkt (p, 7, "]]"); p = add_epsg_def_ex (filter, first, last, 4679, "epsg", 4679, "Jouik 1961", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Jouik_1961", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-80.01,253.26,291.1"); add_proj4text (p, 1, "9,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Jouik 1961\",DATUM[\"Jouik_1961\",SPHEROID[\"Cl"); add_srs_wkt (p, 1, "arke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7012\"]],TOWGS84[-80.01,253.26,291.19,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6679\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4679\"]]"); p = add_epsg_def_ex (filter, first, last, 4680, "epsg", 4680, "Nouakchott 1965", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Nouakchott_1965", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=124.5,-63.5,-281,0,"); add_proj4text (p, 1, "0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Nouakchott 1965\",DATUM[\"Nouakchott_1965\",SPH"); add_srs_wkt (p, 1, "EROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7012\"]],TOWGS84[124.5,-63.5,-281,0,0,0,0],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6680\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4680\""); add_srs_wkt (p, 7, "]]"); p = add_epsg_def_ex (filter, first, last, 4681, "epsg", 4681, "Mauritania 1999", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Mauritania_1999", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Mauritania 1999\",DATUM[\"Mauritania_1999\",SPH"); add_srs_wkt (p, 1, "EROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG\",\"6681\"]],PRIM"); add_srs_wkt (p, 3, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 4, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 5, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4681\"]]"); p = add_epsg_def_ex (filter, first, last, 4682, "epsg", 4682, "Gulshan 303", 1, 1, "Everest 1830 (1937 Adjustment)", "Greenwich", "Gulshan_303", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); add_proj4text (p, 1, "84=283.7,735.9,261.1,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Gulshan 303\",DATUM[\"Gulshan_303\",SPHEROID[\""); add_srs_wkt (p, 1, "Everest 1830 (1937 Adjustment)\",6377276.345,300.8017,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7015\"]],TOWGS84[283.7,735.9,261.1,0,"); add_srs_wkt (p, 3, "0,0,0],AUTHORITY[\"EPSG\",\"6682\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4682\"]]"); p = add_epsg_def_ex (filter, first, last, 4683, "epsg", 4683, "PRS92", 1, 1, "Clarke 1866", "Greenwich", "Philippine_Reference_System_1992", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=-127.62,-67.24,-47."); add_proj4text (p, 1, "04,-3.068,4.903,1.578,-1.06 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"PRS92\",DATUM[\"Philippine_Reference_System_199"); add_srs_wkt (p, 1, "2\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-127.62,-67.24,-4"); add_srs_wkt (p, 3, "7.04,-3.068,4.903,1.578,-1.06],AUTHORITY[\"EPSG\",\"6683"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4683\"]]"); p = add_epsg_def_ex (filter, first, last, 4684, "epsg", 4684, "Gan 1970", 1, 1, "International 1924", "Greenwich", "Gan_1970", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-133,-321,50,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Gan 1970\",DATUM[\"Gan_1970\",SPHEROID[\"Intern"); add_srs_wkt (p, 1, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 2, ",TOWGS84[-133,-321,50,0,0,0,0],AUTHORITY[\"EPSG\",\"6684"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 4, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 6, "AST],AUTHORITY[\"EPSG\",\"4684\"]]"); p = add_epsg_def_ex (filter, first, last, 4685, "epsg", 4685, "Gandajika", 1, 1, "International 1924", "Greenwich", "Gandajika", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Gandajika\",DATUM[\"Gandajika\",SPHEROID[\"Inte"); add_srs_wkt (p, 1, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 2, "]],AUTHORITY[\"EPSG\",\"6685\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 4, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 5, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 6, "85\"]]"); p = add_epsg_def_ex (filter, first, last, 4686, "epsg", 4686, "MAGNA-SIRGAS", 1, 1, "GRS 1980", "Greenwich", "Marco_Geocentrico_Nacional_de_Referencia", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"MAGNA-SIRGAS\",DATUM[\"Marco_Geocentrico_Nacion"); add_srs_wkt (p, 1, "al_de_Referencia\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 2, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"6686\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 7, "86\"]]"); p = add_epsg_def_ex (filter, first, last, 4687, "epsg", 4687, "RGPF", 1, 1, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_Polynesie_Francaise", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0.072,-0.507,-0.245,"); add_proj4text (p, 1, "-0.0183,0.0003,-0.007,-0.0093 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"RGPF\",DATUM[\"Reseau_Geodesique_de_la_Polynesi"); add_srs_wkt (p, 1, "e_Francaise\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 2, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0.072,-0.507,-0."); add_srs_wkt (p, 3, "245,-0.0183,0.0003,-0.007,-0.0093],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6687\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4687\"]]"); p = add_epsg_def_ex (filter, first, last, 4688, "epsg", 4688, "Fatu Iva 72", 1, 1, "International 1924", "Greenwich", "Fatu_Iva_72", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=347.103,1078.125,2623"); add_proj4text (p, 1, ".922,-33.8875,70.6773,-9.3943,186.074 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Fatu Iva 72\",DATUM[\"Fatu_Iva_72\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[347.103,1078.125,2623.922,-33.8875,70.677"); add_srs_wkt (p, 3, "3,-9.3943,186.074],AUTHORITY[\"EPSG\",\"6688\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4688\"]]"); p = add_epsg_def_ex (filter, first, last, 4689, "epsg", 4689, "IGN63 Hiva Oa", 1, 1, "International 1924", "Greenwich", "IGN63_Hiva_Oa", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=410.721,55.049,80.746"); add_proj4text (p, 1, ",2.5779,2.3514,0.6664,17.3311 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGN63 Hiva Oa\",DATUM[\"IGN63_Hiva_Oa\",SPHEROI"); add_srs_wkt (p, 1, "D[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7022\"]],TOWGS84[410.721,55.049,80.746,2.5779,2.3514,0"); add_srs_wkt (p, 3, ".6664,17.3311],AUTHORITY[\"EPSG\",\"6689\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4689\"]]"); p = add_epsg_def_ex (filter, first, last, 4690, "epsg", 4690, "Tahiti 79", 1, 1, "International 1924", "Greenwich", "Tahiti_79", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=221.525,152.948,176.7"); add_proj4text (p, 1, "68,-2.3847,-1.3896,-0.877,11.4741 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tahiti 79\",DATUM[\"Tahiti_79\",SPHEROID[\"Inte"); add_srs_wkt (p, 1, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 2, "]],TOWGS84[221.525,152.948,176.768,-2.3847,-1.3896,-0.87"); add_srs_wkt (p, 3, "7,11.4741],AUTHORITY[\"EPSG\",\"6690\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4690\"]]"); p = add_epsg_def_ex (filter, first, last, 4691, "epsg", 4691, "Moorea 87", 1, 1, "International 1924", "Greenwich", "Moorea_87", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=215.525,149.593,176.2"); add_proj4text (p, 1, "29,-3.2624,-1.692,-1.1571,10.4773 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Moorea 87\",DATUM[\"Moorea_87\",SPHEROID[\"Inte"); add_srs_wkt (p, 1, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 2, "]],TOWGS84[215.525,149.593,176.229,-3.2624,-1.692,-1.157"); add_srs_wkt (p, 3, "1,10.4773],AUTHORITY[\"EPSG\",\"6691\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4691\"]]"); p = add_epsg_def_ex (filter, first, last, 4692, "epsg", 4692, "Maupiti 83", 1, 1, "International 1924", "Greenwich", "Maupiti_83", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=217.037,86.959,23.956"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Maupiti 83\",DATUM[\"Maupiti_83\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],TOWGS84[217.037,86.959,23.956,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6692\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4692\"]]"); p = add_epsg_def_ex (filter, first, last, 4693, "epsg", 4693, "Nakhl-e Ghanem", 1, 1, "WGS 84", "Greenwich", "Nakhl_e_Ghanem", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,-0.15,0.68,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Nakhl-e Ghanem\",DATUM[\"Nakhl_e_Ghanem\",SPHER"); add_srs_wkt (p, 1, "OID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7030\"]],TOWGS84[0,-0.15,0.68,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6693\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4693\"]]"); p = add_epsg_def_ex (filter, first, last, 4694, "epsg", 4694, "POSGAR 94", 1, 1, "WGS 84", "Greenwich", "Posiciones_Geodesicas_Argentinas_1994", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"POSGAR 94\",DATUM[\"Posiciones_Geodesicas_Argen"); add_srs_wkt (p, 1, "tinas_1994\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6694\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4694\"]]"); p = add_epsg_def_ex (filter, first, last, 4695, "epsg", 4695, "Katanga 1955", 1, 1, "Clarke 1866", "Greenwich", "Katanga_1955", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=-103.746,-9.614,-25"); add_proj4text (p, 1, "5.95,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6695\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 7, "95\"]]"); p = add_epsg_def_ex (filter, first, last, 4696, "epsg", 4696, "Kasai 1953", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Kasai_1953", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kasai 1953\",DATUM[\"Kasai_1953\",SPHEROID[\"Cl"); add_srs_wkt (p, 1, "arke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7012\"]],AUTHORITY[\"EPSG\",\"6696\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 4, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 5, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4696\"]]"); p = add_epsg_def_ex (filter, first, last, 4697, "epsg", 4697, "IGC 1962 6th Parallel South", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "IGC_1962_Arc_of_the_6th_Parallel_South", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGC 1962 6th Parallel South\",DATUM[\"IGC_1962_"); add_srs_wkt (p, 1, "Arc_of_the_6th_Parallel_South\",SPHEROID[\"Clarke 1880 ("); add_srs_wkt (p, 2, "RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6697\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4697"); add_srs_wkt (p, 7, "\"]]"); p = add_epsg_def_ex (filter, first, last, 4698, "epsg", 4698, "IGN 1962 Kerguelen", 1, 1, "International 1924", "Greenwich", "IGN_1962_Kerguelen", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=145,-187,103,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGN 1962 Kerguelen\",DATUM[\"IGN_1962_Kerguelen"); add_srs_wkt (p, 1, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7022\"]],TOWGS84[145,-187,103,0,0,0,0],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6698\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 6, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4698\"]]"); p = add_epsg_def_ex (filter, first, last, 4699, "epsg", 4699, "Le Pouce 1934", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Le_Pouce_1934", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-770.1,158.4,-498.2"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Le Pouce 1934\",DATUM[\"Le_Pouce_1934\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7012\"]],TOWGS84[-770.1,158.4,-498.2,0,0,0,0],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6699\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4699\""); add_srs_wkt (p, 7, "]]"); p = add_epsg_def_ex (filter, first, last, 4700, "epsg", 4700, "IGN Astro 1960", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "IGN_Astro_1960", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGN Astro 1960\",DATUM[\"IGN_Astro_1960\",SPHER"); add_srs_wkt (p, 1, "OID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY["); add_srs_wkt (p, 2, "\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG\",\"6700\"]],PRIMEM"); add_srs_wkt (p, 3, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 4, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 5, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"4700\"]]"); p = add_epsg_def_ex (filter, first, last, 4701, "epsg", 4701, "IGCB 1955", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Institut_Geographique_du_Congo_Belge_1955", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0"); add_proj4text (p, 1, ",0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGCB 1955\",DATUM[\"Institut_Geographique_du_Co"); add_srs_wkt (p, 1, "ngo_Belge_1955\",SPHEROID[\"Clarke 1880 (RGS)\",6378249."); add_srs_wkt (p, 2, "145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-79.9,"); add_srs_wkt (p, 3, "-158,-168.9,0,0,0,0],AUTHORITY[\"EPSG\",\"6701\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"4701\"]]"); p = add_epsg_def_ex (filter, first, last, 4702, "epsg", 4702, "Mauritania 1999", 1, 1, "GRS 1980", "Greenwich", "Mauritania_1999", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Mauritania 1999\",DATUM[\"Mauritania_1999\",SPH"); add_srs_wkt (p, 1, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6702\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4702\"]]"); p = add_epsg_def_ex (filter, first, last, 4703, "epsg", 4703, "Mhast 1951", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Missao_Hidrografico_Angola_y_Sao_Tome_1951", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Mhast 1951\",DATUM[\"Missao_Hidrografico_Angola"); add_srs_wkt (p, 1, "_y_Sao_Tome_1951\",SPHEROID[\"Clarke 1880 (RGS)\",637824"); add_srs_wkt (p, 2, "9.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6703\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4703\"]]"); p = add_epsg_def_ex (filter, first, last, 4704, "epsg", 4704, "Mhast (onshore)", 1, 1, "International 1924", "Greenwich", "Mhast_onshore", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Mhast (onshore)\",DATUM[\"Mhast_onshore\",SPHER"); add_srs_wkt (p, 1, "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7022\"]],AUTHORITY[\"EPSG\",\"6704\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 4, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 5, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4704\"]]"); p = add_epsg_def_ex (filter, first, last, 4705, "epsg", 4705, "Mhast (offshore)", 1, 1, "International 1924", "Greenwich", "Mhast_offshore", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Mhast (offshore)\",DATUM[\"Mhast_offshore\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],AUTHORITY[\"EPSG\",\"6705\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 3, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 4, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 5, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"4705\"]]"); p = add_epsg_def_ex (filter, first, last, 4706, "epsg", 4706, "Egypt Gulf of Suez S-650 TL", 1, 1, "Helmert 1906", "Greenwich", "Egypt_Gulf_of_Suez_S_650_TL", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=helmert +towgs84=-146.21,112.63,4.0"); add_proj4text (p, 1, "5,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Egypt Gulf of Suez S-650 TL\",DATUM[\"Egypt_Gul"); add_srs_wkt (p, 1, "f_of_Suez_S_650_TL\",SPHEROID[\"Helmert 1906\",6378200,2"); add_srs_wkt (p, 2, "98.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-146.21,112.6"); add_srs_wkt (p, 3, "3,4.05,0,0,0,0],AUTHORITY[\"EPSG\",\"6706\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4706\"]]"); p = add_epsg_def_ex (filter, first, last, 4707, "epsg", 4707, "Tern Island 1961", 1, 1, "International 1924", "Greenwich", "Tern_Island_1961", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=114,-116,-333,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tern Island 1961\",DATUM[\"Tern_Island_1961\",S"); add_srs_wkt (p, 1, "PHEROID[\"International 1924\",6378388,297,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7022\"]],TOWGS84[114,-116,-333,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"6707\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4707\"]]"); p = add_epsg_def_ex (filter, first, last, 4708, "epsg", 4708, "Cocos Islands 1965", 1, 1, "Australian National Spheroid", "Greenwich", "Cocos_Islands_1965", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=aust_SA +towgs84=-491,-22,435,0,0,0"); add_proj4text (p, 1, ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Cocos Islands 1965\",DATUM[\"Cocos_Islands_1965"); add_srs_wkt (p, 1, "\",SPHEROID[\"Australian National Spheroid\",6378160,298"); add_srs_wkt (p, 2, ".25,AUTHORITY[\"EPSG\",\"7003\"]],TOWGS84[-491,-22,435,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6708\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4708\"]]"); p = add_epsg_def_ex (filter, first, last, 4709, "epsg", 4709, "Iwo Jima 1945", 1, 1, "International 1924", "Greenwich", "Iwo_Jima_1945", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=145,75,-272,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Iwo Jima 1945\",DATUM[\"Iwo_Jima_1945\",SPHEROI"); add_srs_wkt (p, 1, "D[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7022\"]],TOWGS84[145,75,-272,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6709\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"4709\"]]"); p = add_epsg_def_ex (filter, first, last, 4710, "epsg", 4710, "St. Helena 1971", 1, 1, "International 1924", "Greenwich", "St_Helena_1971", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-320,550,-494,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"St. Helena 1971\",DATUM[\"St_Helena_1971\",SPHE"); add_srs_wkt (p, 1, "ROID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG"); add_srs_wkt (p, 2, "\",\"7022\"]],TOWGS84[-320,550,-494,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6710\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4710\"]]"); p = add_epsg_def_ex (filter, first, last, 4711, "epsg", 4711, "Marcus Island 1952", 1, 1, "International 1924", "Greenwich", "Marcus_Island_1952", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=124,-234,-25,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Marcus Island 1952\",DATUM[\"Marcus_Island_1952"); add_srs_wkt (p, 1, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7022\"]],TOWGS84[124,-234,-25,0,0,0,0],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6711\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 6, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4711\"]]"); p = add_epsg_def_ex (filter, first, last, 4712, "epsg", 4712, "Ascension Island 1958", 1, 1, "International 1924", "Greenwich", "Ascension_Island_1958", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-205,107,53,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Ascension Island 1958\",DATUM[\"Ascension_Islan"); add_srs_wkt (p, 1, "d_1958\",SPHEROID[\"International 1924\",6378388,297,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7022\"]],TOWGS84[-205,107,53,0,0,0,0],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6712\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4712\""); add_srs_wkt (p, 7, "]]"); p = add_epsg_def_ex (filter, first, last, 4713, "epsg", 4713, "Ayabelle Lighthouse", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Ayabelle_Lighthouse", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-79,-129,145,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Ayabelle Lighthouse\",DATUM[\"Ayabelle_Lighthou"); add_srs_wkt (p, 1, "se\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-79,-129,145,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"6713\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "13\"]]"); p = add_epsg_def_ex (filter, first, last, 4714, "epsg", 4714, "Bellevue", 1, 1, "International 1924", "Greenwich", "Bellevue", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-127,-769,472,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Bellevue\",DATUM[\"Bellevue\",SPHEROID[\"Intern"); add_srs_wkt (p, 1, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 2, ",TOWGS84[-127,-769,472,0,0,0,0],AUTHORITY[\"EPSG\",\"671"); add_srs_wkt (p, 3, "4\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4714\"]]"); p = add_epsg_def_ex (filter, first, last, 4715, "epsg", 4715, "Camp Area Astro", 1, 1, "International 1924", "Greenwich", "Camp_Area_Astro", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-104,-129,239,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Camp Area Astro\",DATUM[\"Camp_Area_Astro\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[-104,-129,239,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6715\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4715\"]]"); p = add_epsg_def_ex (filter, first, last, 4716, "epsg", 4716, "Phoenix Islands 1966", 1, 1, "International 1924", "Greenwich", "Phoenix_Islands_1966", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=298,-304,-375,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Phoenix Islands 1966\",DATUM[\"Phoenix_Islands_"); add_srs_wkt (p, 1, "1966\",SPHEROID[\"International 1924\",6378388,297,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7022\"]],TOWGS84[298,-304,-375,0,0,0,0],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6716\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4716\""); add_srs_wkt (p, 7, "]]"); p = add_epsg_def_ex (filter, first, last, 4717, "epsg", 4717, "Cape Canaveral", 1, 1, "Clarke 1866", "Greenwich", "Cape_Canaveral", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=-2,151,181,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Cape Canaveral\",DATUM[\"Cape_Canaveral\",SPHER"); add_srs_wkt (p, 1, "OID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7008\"]],TOWGS84[-2,151,181,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6717\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4717\"]]"); p = add_epsg_def_ex (filter, first, last, 4718, "epsg", 4718, "Solomon 1968", 1, 1, "International 1924", "Greenwich", "Solomon_1968", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=230,-199,-752,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Solomon 1968\",DATUM[\"Solomon_1968\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[230,-199,-752,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6718\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"4718\"]]"); p = add_epsg_def_ex (filter, first, last, 4719, "epsg", 4719, "Easter Island 1967", 1, 1, "International 1924", "Greenwich", "Easter_Island_1967", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=211,147,111,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Easter Island 1967\",DATUM[\"Easter_Island_1967"); add_srs_wkt (p, 1, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7022\"]],TOWGS84[211,147,111,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6719\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4719\"]]"); p = add_epsg_def_ex (filter, first, last, 4720, "epsg", 4720, "Fiji 1986", 1, 1, "WGS 72", "Greenwich", "Fiji_Geodetic_Datum_1986", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.554,0."); add_proj4text (p, 1, "2263 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Fiji 1986\",DATUM[\"Fiji_Geodetic_Datum_1986\","); add_srs_wkt (p, 1, "SPHEROID[\"WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6720\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 6, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4720\"]]"); p = add_epsg_def_ex (filter, first, last, 4721, "epsg", 4721, "Fiji 1956", 1, 1, "International 1924", "Greenwich", "Fiji_1956", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=265.025,384.929,-194."); add_proj4text (p, 1, "046,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Fiji 1956\",DATUM[\"Fiji_1956\",SPHEROID[\"Inte"); add_srs_wkt (p, 1, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 2, "]],TOWGS84[265.025,384.929,-194.046,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6721\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4721\"]]"); p = add_epsg_def_ex (filter, first, last, 4722, "epsg", 4722, "South Georgia 1968", 1, 1, "International 1924", "Greenwich", "South_Georgia_1968", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-794,119,-298,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"South Georgia 1968\",DATUM[\"South_Georgia_1968"); add_srs_wkt (p, 1, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7022\"]],TOWGS84[-794,119,-298,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6722\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4722\"]]"); p = add_epsg_def_ex (filter, first, last, 4723, "epsg", 4723, "GCGD59", 1, 1, "Clarke 1866", "Greenwich", "Grand_Cayman_Geodetic_Datum_1959", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=-179.483,-69.379,-2"); add_proj4text (p, 1, "7.584,-7.862,8.163,6.042,-13.925 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"GCGD59\",DATUM[\"Grand_Cayman_Geodetic_Datum_19"); add_srs_wkt (p, 1, "59\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213898"); add_srs_wkt (p, 2, "2,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-179.483,-69.379"); add_srs_wkt (p, 3, ",-27.584,-7.862,8.163,6.042,-13.925],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6723\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4723\"]]"); p = add_epsg_def_ex (filter, first, last, 4724, "epsg", 4724, "Diego Garcia 1969", 1, 1, "International 1924", "Greenwich", "Diego_Garcia_1969", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=208,-435,-229,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Diego Garcia 1969\",DATUM[\"Diego_Garcia_1969\""); add_srs_wkt (p, 1, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[208,-435,-229,0,0,0,0],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6724\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4724\"]]"); p = add_epsg_def_ex (filter, first, last, 4725, "epsg", 4725, "Johnston Island 1961", 1, 1, "International 1924", "Greenwich", "Johnston_Island_1961", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=189,-79,-202,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Johnston Island 1961\",DATUM[\"Johnston_Island_"); add_srs_wkt (p, 1, "1961\",SPHEROID[\"International 1924\",6378388,297,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7022\"]],TOWGS84[189,-79,-202,0,0,0,0],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6725\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4725\""); add_srs_wkt (p, 7, "]]"); p = add_epsg_def_ex (filter, first, last, 4726, "epsg", 4726, "SIGD61", 1, 1, "Clarke 1866", "Greenwich", "Sister_Islands_Geodetic_Datum_1961", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=8.853,-52.644,180.3"); add_proj4text (p, 1, "04,-0.393,-2.323,2.96,-24.081 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"SIGD61\",DATUM[\"Sister_Islands_Geodetic_Datum_"); add_srs_wkt (p, 1, "1961\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138"); add_srs_wkt (p, 2, "982,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[8.853,-52.644,"); add_srs_wkt (p, 3, "180.304,-0.393,-2.323,2.96,-24.081],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6726\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4726\"]]"); p = add_epsg_def_ex (filter, first, last, 4727, "epsg", 4727, "Midway 1961", 1, 1, "International 1924", "Greenwich", "Midway_1961", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=403,-81,277,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Midway 1961\",DATUM[\"Midway_1961\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[403,-81,277,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6727\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 6, "\",EAST],AUTHORITY[\"EPSG\",\"4727\"]]"); p = add_epsg_def_ex (filter, first, last, 4728, "epsg", 4728, "Pico de las Nieves 1984", 1, 1, "International 1924", "Greenwich", "Pico_de_las_Nieves_1984", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-307,-92,127,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Pico de las Nieves 1984\",DATUM[\"Pico_de_las_N"); add_srs_wkt (p, 1, "ieves_1984\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-307,-92,127,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6728\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4728\"]]"); p = add_epsg_def_ex (filter, first, last, 4729, "epsg", 4729, "Pitcairn 1967", 1, 1, "International 1924", "Greenwich", "Pitcairn_1967", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=185,165,42,0,0,0,0 +n"); add_proj4text (p, 1, "o_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Pitcairn 1967\",DATUM[\"Pitcairn_1967\",SPHEROI"); add_srs_wkt (p, 1, "D[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7022\"]],TOWGS84[185,165,42,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6729\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4729\"]]"); p = add_epsg_def_ex (filter, first, last, 4730, "epsg", 4730, "Santo 1965", 1, 1, "International 1924", "Greenwich", "Santo_1965", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=170,42,84,0,0,0,0 +no"); add_proj4text (p, 1, "_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Santo 1965\",DATUM[\"Santo_1965\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],TOWGS84[170,42,84,0,0,0,0],AUTHORITY[\"EPSG\",\"673"); add_srs_wkt (p, 3, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4730\"]]"); p = add_epsg_def_ex (filter, first, last, 4731, "epsg", 4731, "Viti Levu 1916", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Viti_Levu_1916", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=51,391,-36,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Viti Levu 1916\",DATUM[\"Viti_Levu_1916\",SPHER"); add_srs_wkt (p, 1, "OID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY["); add_srs_wkt (p, 2, "\"EPSG\",\"7012\"]],TOWGS84[51,391,-36,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"6731\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4731\"]]"); p = add_epsg_def_ex (filter, first, last, 4732, "epsg", 4732, "Marshall Islands 1960", 1, 1, "Hough 1960", "Greenwich", "Marshall_Islands_1960", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378270 +b=6356794.343434343 +towgs84=1"); add_proj4text (p, 1, "02,52,-38,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Marshall Islands 1960\",DATUM[\"Marshall_Island"); add_srs_wkt (p, 1, "s_1960\",SPHEROID[\"Hough 1960\",6378270,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7053\"]],TOWGS84[102,52,-38,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6732\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4732\"]]"); p = add_epsg_def_ex (filter, first, last, 4733, "epsg", 4733, "Wake Island 1952", 1, 1, "International 1924", "Greenwich", "Wake_Island_1952", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=276,-57,149,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Wake Island 1952\",DATUM[\"Wake_Island_1952\",S"); add_srs_wkt (p, 1, "PHEROID[\"International 1924\",6378388,297,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7022\"]],TOWGS84[276,-57,149,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6733\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4733\"]]"); p = add_epsg_def_ex (filter, first, last, 4734, "epsg", 4734, "Tristan 1968", 1, 1, "International 1924", "Greenwich", "Tristan_1968", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-632,438,-609,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tristan 1968\",DATUM[\"Tristan_1968\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[-632,438,-609,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6734\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"4734\"]]"); p = add_epsg_def_ex (filter, first, last, 4735, "epsg", 4735, "Kusaie 1951", 1, 1, "International 1924", "Greenwich", "Kusaie_1951", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=647,1777,-1124,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kusaie 1951\",DATUM[\"Kusaie_1951\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[647,1777,-1124,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6735\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4735\"]]"); p = add_epsg_def_ex (filter, first, last, 4736, "epsg", 4736, "Deception Island", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Deception_Island", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=260,12,-147,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Deception Island\",DATUM[\"Deception_Island\",S"); add_srs_wkt (p, 1, "PHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7012\"]],TOWGS84[260,12,-147,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6736\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4736\"]]"); p = add_epsg_def_ex (filter, first, last, 4737, "epsg", 4737, "Korea 2000", 1, 1, "GRS 1980", "Greenwich", "Geocentric_datum_of_Korea", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Korea 2000\",DATUM[\"Geocentric_datum_of_Korea\""); add_srs_wkt (p, 1, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6737\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4737\"]]"); p = add_epsg_def_ex (filter, first, last, 4738, "epsg", 4738, "Hong Kong 1963", 1, 1, "Clarke 1858", "Greenwich", "Hong_Kong_1963", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Hong Kong 1963\",DATUM[\"Hong_Kong_1963\",SPHER"); add_srs_wkt (p, 1, "OID[\"Clarke 1858\",6378293.645208759,294.2606763692606,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"6738\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4738\"]]"); p = add_epsg_def_ex (filter, first, last, 4739, "epsg", 4739, "Hong Kong 1963(67)", 1, 1, "International 1924", "Greenwich", "Hong_Kong_1963_67", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-156,-271,-189,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Hong Kong 1963(67)\",DATUM[\"Hong_Kong_1963_67\""); add_srs_wkt (p, 1, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[-156,-271,-189,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6739\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4739\"]]"); p = add_epsg_def_ex (filter, first, last, 4740, "epsg", 4740, "PZ-90", 1, 1, "PZ-90", "Greenwich", "Parametrop_Zemp_1990", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378136 +b=6356751.361745712 +towgs84=0"); add_proj4text (p, 1, ",0,1.5,0,0,0.076,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"PZ-90\",DATUM[\"Parametrop_Zemp_1990\",SPHEROID"); add_srs_wkt (p, 1, "[\"PZ-90\",6378136,298.257839303,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "54\"]],TOWGS84[0,0,1.5,0,0,0.076,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6740\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 6, "\",EAST],AUTHORITY[\"EPSG\",\"4740\"]]"); p = add_epsg_def_ex (filter, first, last, 4741, "epsg", 4741, "FD54", 1, 1, "International 1924", "Greenwich", "Faroe_Datum_1954", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"FD54\",DATUM[\"Faroe_Datum_1954\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],AUTHORITY[\"EPSG\",\"6741\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 3, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 4, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 5, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4741\"]]"); p = add_epsg_def_ex (filter, first, last, 4742, "epsg", 4742, "GDM2000", 1, 1, "GRS 1980", "Greenwich", "Geodetic_Datum_of_Malaysia_2000", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"GDM2000\",DATUM[\"Geodetic_Datum_of_Malaysia_20"); add_srs_wkt (p, 1, "00\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6742\"]],PRI"); add_srs_wkt (p, 3, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 4, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 5, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4742\"]]"); p = add_epsg_def_ex (filter, first, last, 4743, "epsg", 4743, "Karbala 1979", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Karbala_1979", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=70.995,-335.916,262"); add_proj4text (p, 1, ".898,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Karbala 1979\",DATUM[\"Karbala_1979\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7012\"]],TOWGS84[70.995,-335.916,262.898,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6743\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4743"); add_srs_wkt (p, 7, "\"]]"); p = add_epsg_def_ex (filter, first, last, 4744, "epsg", 4744, "Nahrwan 1934", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Nahrwan_1934", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Nahrwan 1934\",DATUM[\"Nahrwan_1934\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7012\"]],AUTHORITY[\"EPSG\",\"6744\"]],PRIMEM[\"G"); add_srs_wkt (p, 3, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 4, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 5, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"4744\"]]"); p = add_epsg_def_ex (filter, first, last, 4745, "epsg", 4745, "RD/83", 1, 1, "Bessel 1841", "Greenwich", "Rauenberg_Datum_83", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"RD/83\",DATUM[\"Rauenberg_Datum_83\",SPHEROID[\""); add_srs_wkt (p, 1, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7004\"]],AUTHORITY[\"EPSG\",\"6745\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 4, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 5, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4745\"]]"); p = add_epsg_def_ex (filter, first, last, 4746, "epsg", 4746, "PD/83", 1, 1, "Bessel 1841", "Greenwich", "Potsdam_Datum_83", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"PD/83\",DATUM[\"Potsdam_Datum_83\",SPHEROID[\"B"); add_srs_wkt (p, 1, "essel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7004\"]],AUTHORITY[\"EPSG\",\"6746\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 3, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 4, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 5, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4746\"]]"); p = add_epsg_def_ex (filter, first, last, 4747, "epsg", 4747, "GR96", 1, 1, "GRS 1980", "Greenwich", "Greenland_1996", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"GR96\",DATUM[\"Greenland_1996\",SPHEROID[\"GRS "); add_srs_wkt (p, 1, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 2, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4747\"]]"); p = add_epsg_def_ex (filter, first, last, 4748, "epsg", 4748, "Vanua Levu 1915", 1, 1, "Clarke 1880 (international foot)", "Greenwich", "Vanua_Levu_1915", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378306.3696 +b=6356571.996 +towgs84=51"); add_proj4text (p, 1, ",391,-36,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Vanua Levu 1915\",DATUM[\"Vanua_Levu_1915\",SPH"); add_srs_wkt (p, 1, "EROID[\"Clarke 1880 (international foot)\",6378306.3696,"); add_srs_wkt (p, 2, "293.4663076556355,AUTHORITY[\"EPSG\",\"7055\"]],TOWGS84["); add_srs_wkt (p, 3, "51,391,-36,0,0,0,0],AUTHORITY[\"EPSG\",\"6748\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4748\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_update/�������������������������������������������������������0000775�0001750�0001750�00000000000�12573314326�016300� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_update/Makefile.in��������������������������������������������0000664�0001750�0001750�00000030223�12573313636�020270� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/srsinit/epsg_update ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = README.txt README-obsolete.txt auto_epsg.c \ epsg_from_gdal.c auto_epsg_ext.c all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/srsinit/epsg_update/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/srsinit/epsg_update/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_update/auto_epsg_ext.c����������������������������������������0000664�0001750�0001750�00000325220�12544707704�021242� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* / auto_epsg_ext / / a tool autogenerating C code for SpatiaLite / [spatial_ref_sys self-initialization routines] / / version 1.0, 2014 December 3 / / Author: Sandro Furieri a.furieri@lqt.it / / Copyright (C) 2014 Alessandro Furieri / / This program is free software: you can redistribute it and/or modify / it under the terms of the GNU General Public License as published by / the Free Software Foundation, either version 3 of the License, or / (at your option) any later version. / / This program is distributed in the hope that it will be useful, / but WITHOUT ANY WARRANTY; without even the implied warranty of / MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the / GNU General Public License for more details. / / You should have received a copy of the GNU General Public License / along with this program. If not, see <http://www.gnu.org/licenses/>. / */ #include <stdlib.h> #include <stdio.h> #include <string.h> #include <time.h> struct epsg_entry { /* a struct wrapping an EPSG entry */ int srid; int is_geographic; int flipped_axes; char *ref_sys_name; char *proj4text; char *srtext; char *spheroid; char *prime_meridian; char *datum; char *projection; char *unit; char *axis_1; char *orientation_1; char *axis_2; char *orientation_2; struct epsg_entry *next; }; struct epsg_dict { /* the EPSG dictionary */ struct epsg_entry *first; struct epsg_entry *last; struct epsg_entry **sorted; int count; }; static void free_epsg_entry (struct epsg_entry *p) { /* destroying an epsg_entry */ if (p->ref_sys_name) free (p->ref_sys_name); if (p->proj4text) free (p->proj4text); if (p->srtext) free (p->srtext); if (p->spheroid) free (p->spheroid); if (p->prime_meridian) free (p->prime_meridian); if (p->datum) free (p->datum); if (p->projection) free (p->projection); if (p->unit) free (p->unit); if (p->axis_1) free (p->axis_1); if (p->orientation_1) free (p->orientation_1); if (p->axis_2) free (p->axis_2); if (p->orientation_2) free (p->orientation_2); free (p); } static void free_epsg (struct epsg_dict *epsg) { /* destroying the EPSG dictionary */ struct epsg_entry *pE; struct epsg_entry *pEn; pE = epsg->first; while (pE) { pEn = pE->next; free_epsg_entry (pE); pE = pEn; } if (epsg->sorted) free (epsg->sorted); } static void epsg_insert (struct epsg_dict *epsg, int srid, int is_geographic, int flipped_axes, const char *unit, const char *axis_1, const char *orientation_1, const char *axis_2, const char *orientation_2, const char *spheroid, const char *prime_meridian, const char *datum, const char *projection, const char *name, const char *proj4text, const char *srtext) { /* inserting an entry into the EPSG dictionary */ int len; struct epsg_entry *p = malloc (sizeof (struct epsg_entry)); p->srid = srid; p->is_geographic = is_geographic; p->flipped_axes = flipped_axes; len = strlen (name); p->ref_sys_name = malloc (len + 1); strcpy (p->ref_sys_name, name); len = strlen (proj4text); p->proj4text = malloc (len + 1); strcpy (p->proj4text, proj4text); len = strlen (srtext); p->srtext = malloc (len + 1); strcpy (p->srtext, srtext); len = strlen (unit); p->unit = malloc (len + 1); strcpy (p->unit, unit); len = strlen (axis_1); p->axis_1 = malloc (len + 1); strcpy (p->axis_1, axis_1); len = strlen (orientation_1); p->orientation_1 = malloc (len + 1); strcpy (p->orientation_1, orientation_1); len = strlen (axis_2); p->axis_2 = malloc (len + 1); strcpy (p->axis_2, axis_2); len = strlen (orientation_2); p->orientation_2 = malloc (len + 1); strcpy (p->orientation_2, orientation_2); len = strlen (spheroid); p->spheroid = malloc (len + 1); strcpy (p->spheroid, spheroid); len = strlen (prime_meridian); p->prime_meridian = malloc (len + 1); strcpy (p->prime_meridian, prime_meridian); len = strlen (datum); p->datum = malloc (len + 1); strcpy (p->datum, datum); len = strlen (projection); p->projection = malloc (len + 1); strcpy (p->projection, projection); p->next = NULL; /* updating the linked list */ if (epsg->first == NULL) epsg->first = p; if (epsg->last != NULL) epsg->last->next = p; epsg->last = p; } static int parse_epsg (FILE * fl_epsg, struct epsg_dict *epsg) { /* parsing the EPSG input file */ char srid[64]; char is_geographic[64]; char flipped_axes[64]; char unit[128]; char axis_1[128]; char orientation_1[128]; char axis_2[128]; char orientation_2[128]; char spheroid[128]; char prime_meridian[128]; char datum[128]; char projection[128]; char name[512]; char proj4text[512]; char srtext[8192]; char *out = srid; int count = 0; int row_no = 1; int c; int err = 0; *srid = '\0'; *is_geographic = '\0'; *flipped_axes = '\0'; *unit = '\0'; *axis_1 = '\0'; *orientation_1 = '\0'; *axis_2 = '\0'; *orientation_2 = '\0'; *spheroid = '\0'; *prime_meridian = '\0'; *datum = '\0'; *projection = '\0'; *name = '\0'; *proj4text = '\0'; *srtext = '\0'; while ((c = getc (fl_epsg)) != EOF) { if (c == '\r') continue; if (c == '\t') { if (out != NULL) *out = '\0'; count++; if (count == 1) out = is_geographic; else if (count == 2) out = flipped_axes; else if (count == 3) out = unit; else if (count == 4) out = axis_1; else if (count == 5) out = orientation_1; else if (count == 6) out = axis_2; else if (count == 7) out = orientation_2; else if (count == 8) out = spheroid; else if (count == 9) out = prime_meridian; else if (count == 10) out = datum; else if (count == 11) out = projection; else if (count == 12) out = name; else if (count == 13) out = proj4text; else if (count == 14) out = srtext; else { out = NULL; fprintf (stderr, "invalid line #%d\n", row_no); err = 1; } continue; } if (c == '\n') { if (out != NULL) *out = '\0'; if (!err) epsg_insert (epsg, atoi (srid), atoi (is_geographic), atoi (flipped_axes), unit, axis_1, orientation_1, axis_2, orientation_2, spheroid, prime_meridian, datum, projection, name, proj4text, srtext); row_no++; *srid = '\0'; *is_geographic = '\0'; *flipped_axes = '\0'; *unit = '\0'; *axis_1 = '\0'; *orientation_1 = '\0'; *axis_2 = '\0'; *orientation_2 = '\0'; *spheroid = '\0'; *prime_meridian = '\0'; *datum = '\0'; *projection = '\0'; *name = '\0'; *proj4text = '\0'; *srtext = '\0'; err = 0; count = 0; out = srid; continue; } if (out != NULL) *out++ = c; } return 1; } static int cmp_sort (const void *p1, const void *p2) { /* comparison function for QSORT */ struct epsg_entry *e1 = *(struct epsg_entry **) p1; struct epsg_entry *e2 = *(struct epsg_entry **) p2; if (e1->srid == e2->srid) return 0; if (e1->srid < e2->srid) return -1; return 1; } static int sort_epsg (struct epsg_dict *epsg) { /* sorting the EPSG defs by ascending SRID */ int count = 0; int i; struct epsg_entry *p = epsg->first; while (p) { /* counting how many entries are there */ count++; p = p->next; } if (count == 0) return 0; if (epsg->sorted) free (epsg->sorted); epsg->sorted = malloc (sizeof (struct epsg_dict *) * count); epsg->count = count; i = 0; p = epsg->first; while (p) { /* feeding the pointer array */ *(epsg->sorted + i) = p; i++; p = p->next; } /* sorting the pointer array by ascending SRID */ qsort (epsg->sorted, count, sizeof (struct epsg_dict *), cmp_sort); return 1; } static FILE * open_file (int file_no) { /* opening an output file */ char path[1024]; FILE *out = NULL; sprintf (path, "epsg_inlined_%02d.c", file_no); out = fopen (path, "wb"); if (out == NULL) { fprintf (stderr, "ERROR: unable to open the \"%s\" output file\n", path); return NULL; } return out; } static FILE * open_file2 () { /* opening the "extra" output file */ FILE *out = NULL; out = fopen ("epsg_inlined_extra.c", "wb"); if (out == NULL) { fprintf (stderr, "ERROR: unable to open the \"epsg_inlined_extra.c\" output file\n"); return NULL; } return out; } static FILE * open_file3 () { /* opening the "prussian" output file */ FILE *out = NULL; out = fopen ("epsg_inlined_prussian.c", "wb"); if (out == NULL) { fprintf (stderr, "ERROR: unable to open the \"epsg_inlined_prussian.c\" output file\n"); return NULL; } return out; } static FILE * open_file_wgs84 (int file_no) { /* opening an output file "wgs84" */ char path[1024]; FILE *out = NULL; sprintf (path, "epsg_inlined_wgs84_%02d.c", file_no); out = fopen (path, "wb"); if (out == NULL) { fprintf (stderr, "ERROR: unable to open the \"%s\" output file\n", path); return NULL; } return out; } static void do_prussian (FILE * out) { /* writing the "prussian" body */ fprintf (out, "SPATIALITE_PRIVATE void\ninitialize_epsg_prussian(int filter,struct epsg_defs **first, struct epsg_defs **last)\n"); fprintf (out, "{\n/* old Prussian based on Cassini-Soldner - kindly contributed by Mark Johnson */\n"); fprintf (out, " struct epsg_defs *p;\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187900,\"mj10777.de\",187900,\"DHDN / Soldner Rathausnetz 660\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=14741.77 +y_0=-11288.28 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner Rathausnetz 660\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.41864827777778],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.62720366666667],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",14741.77],PARAMETER[\\\"false_northing\\\",-11288.28],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187900\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187901,\"mj10777.de\",187901,\"DHDN / Soldner 1 Kucklinsberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.46022375 +lon_0=21.95509736 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 1 Kucklinsberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.46022375],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",21.95509736],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187901\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187902,\"mj10777.de\",187902,\"DHDN / Soldner 2 Paulinen\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.28921067 +lon_0=20.73315431 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 2 Paulinen\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.28921067],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",20.73315431],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187902\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187903,\"mj10777.de\",187903,\"DHDN / Soldner 3 Markushof I\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.05881333 +lon_0=19.37343583 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 3 Markushof I\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.05881333],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",19.37343583],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187903\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187904,\"mj10777.de\",187904,\"DHDN / Soldner 4 Thurmberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.22552092 +lon_0=18.12569375 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 4 Thurmberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.22552092],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",18.12569375],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187904\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187905,\"mj10777.de\",187905,\"DHDN / Soldner 5 Kauernick I\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=53.38933197 +lon_0=19.59810438 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 5 Kauernick I\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.38933197],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",19.59810438],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187905\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187906,\"mj10777.de\",187906,\"DHDN / Soldner 6 Thorn, Rathausturm\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=53.01181586 +lon_0=18.60725428 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 6 Thorn, Rathausturm\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.01181586],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",18.60725428],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187906\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187907,\"mj10777.de\",187907,\"DHDN / Soldner 7 Heinrichsthal\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=53.71289217 +lon_0=17.49676781 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 7 Heinrichsthal\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.71289217],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",17.49676781],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187907\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187908,\"mj10777.de\",187908,\"DHDN / Soldner 8 Gollenberg, Denkmal\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.20857178 +lon_0=16.22956781 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 8 Gollenberg, Denkmal\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.20857178],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",16.22956781],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187908\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187909,\"mj10777.de\",187909,\"DHDN / Soldner 9 Gnesen\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.53820406 +lon_0=17.59450500 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 9 Gnesen\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.53820406],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",17.59450500],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187909\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187910,\"mj10777.de\",187910,\"DHDN / Soldner 10 Josefsberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.98768806 +lon_0=16.20044389 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 10 Josefsberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.98768806],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",16.20044389],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187910\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187911,\"mj10777.de\",187911,\"DHDN / Soldner 11 Schroda\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.23137372 +lon_0=17.27795372 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 11 Schroda\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.23137372],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",17.27795372],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187911\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187912,\"mj10777.de\",187912,\"DHDN / Soldner 12 Pschow\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.04206544 +lon_0=18.39610692 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 12 Pschow\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.04206544],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",18.39610692],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187912\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187913,\"mj10777.de\",187913,\"DHDN / Soldner 13 Rummelsberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.70352314 +lon_0=17.11233917 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 13 Rummelsberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.70352314],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",17.11233917],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187913\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187914,\"mj10777.de\",187914,\"DHDN / Soldner 14 Gröditzberg I\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.17819342 +lon_0=15.76127086 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 14 Gröditzberg I\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.17819342],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",15.76127086],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187914\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187915,\"mj10777.de\",187915,\"DHDN / Soldner 15 Kaltenborn\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.92903708 +lon_0=14.66212942 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 15 Kaltenborn\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.92903708],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",14.66212942],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187915\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187917,\"mj10777.de\",187917,\"DHDN / Soldner 17 Greifswald, Nikolaikirche\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.09698872 +lon_0=13.37880703 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 17 Greifswald, Nikolaikirche\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.09698872],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.37880703],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187917\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187916,\"mj10777.de\",187916,\"DHDN / Soldner 16 Bahn I\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=53.10184583 +lon_0=14.70144539 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 16 Bahn I\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.10184583],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",14.70144539],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187916\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187918,\"mj10777.de\",187918,\"DHDN / Soldner 18 Müggelberg 600\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 18 Müggelberg 600\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.41864827777778],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.62720366666667],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187918\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187919,\"mj10777.de\",187919,\"DHDN / Soldner 19 Götzer Berg 650\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.43725961111112 +lon_0=12.72882972222223 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 19 Götzer Berg 650\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.43725961111112],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",12.72882972222223],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187919\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187920,\"mj10777.de\",187920,\"DHDN / Soldner 20 Torgau, Stadtkirche\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.56136217 +lon_0=13.00760264 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 20 Torgau, Stadtkirche\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.56136217],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.00760264],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187920\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187921,\"mj10777.de\",187921,\"DHDN / Soldner 21 Burkersroda, Kirchturm\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.17656322 +lon_0=11.64139367 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 21 Burkersroda, Kirchturm\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.17656322],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",11.64139367],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187921\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187922,\"mj10777.de\",187922,\"DHDN / Soldner 22 Inselsberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.85237983 +lon_0=10.46776506 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 22 Inselsberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.85237983],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.46776506],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187922\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187923,\"mj10777.de\",187923,\"DHDN / Soldner 23 Magdeburg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.12625311 +lon_0=11.63550325 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 23 Magdeburg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.12625311],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",11.63550325],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187923\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187924,\"mj10777.de\",187924,\"DHDN / Soldner 24 Ostenfeld I\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.47018733 +lon_0=9.23411097 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 24 Ostenfeld I\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.47018733],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",9.23411097],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187924\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187925,\"mj10777.de\",187925,\"DHDN / Soldner 25 Rathkrügen\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=53.81839364 +lon_0=10.04220189 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 25 Rathkrügen\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.81839364],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.04220189],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187925\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187926,\"mj10777.de\",187926,\"DHDN / Soldner 26 Bungsberg, Aussichtsturm\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.21110653 +lon_0=10.72636431 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 26 Bungsberg, Aussichtsturm\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.21110653],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.72636431],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187926\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187927,\"mj10777.de\",187927,\"DHDN / Soldner 27 Celle, Stadtkirche\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.62574192 +lon_0=10.08190214 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 27 Celle, Stadtkirche\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.62574192],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.08190214],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187927\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187928,\"mj10777.de\",187928,\"DHDN / Soldner 28 Kaltenborn\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.79646722 +lon_0=10.27322494 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 28 Kaltenborn\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.79646722],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.27322494],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187928\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187929,\"mj10777.de\",187929,\"DHDN / Soldner 29 Silberberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=53.73123461 +lon_0=9.05774925 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 29 Silberberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.73123461],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",9.05774925],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187929\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187930,\"mj10777.de\",187930,\"DHDN / Soldner 30 Windberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.88088372 +lon_0=7.53062114 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 30 Windberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.88088372],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.53062114],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187930\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187931,\"mj10777.de\",187931,\"DHDN / Soldner 31 Hermannsdenkmal\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.91301647 +lon_0=8.84051853 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 31 Hermannsdenkmal\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.91301647],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",8.84051853],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187931\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187932,\"mj10777.de\",187932,\"DHDN / Soldner 32 Münster\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.96547642 +lon_0=7.62334994 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 32 Münster\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.96547642],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.62334994],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187932\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187933,\"mj10777.de\",187933,\"DHDN / Soldner 33 Bochum, Peter-Paul-Kirche\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.48373533 +lon_0=7.22115822 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 33 Bochum, Peter-Paul-Kirche\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.48373533],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.22115822],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187933\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187934,\"mj10777.de\",187934,\"DHDN / Soldner 34 Homert\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.26480147 +lon_0=8.10687050 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 34 Homert\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.26480147],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",8.10687050],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187934\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187935,\"mj10777.de\",187935,\"DHDN / Soldner 35 Kassel, Martinskirche\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.31846489 +lon_0=9.50203072 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 35 Kassel, Martinskirche\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.31846489],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",9.50203072],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187935\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187936,\"mj10777.de\",187936,\"DHDN / Soldner 36 Schaumburg, Schloßturm\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.34048964 +lon_0=7.97808156 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 36 Schaumburg, Schloßturm\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.34048964],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.97808156],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187936\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187937,\"mj10777.de\",187937,\"DHDN / Soldner 37 Fleckert\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.18762544 +lon_0=7.60594289 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 37 Fleckert\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.18762544],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.60594289],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187937\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187938,\"mj10777.de\",187938,\"DHDN / Soldner 38 Cöln, Dom\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.94257242 +lon_0=6.95897600 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 38 Cöln, Dom\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.94257242],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",6.95897600],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187938\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187939,\"mj10777.de\",187939,\"DHDN / Soldner 39 Langschoß\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.66738711 +lon_0=6.28935703 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 39 Langschoß\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.66738711],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",6.28935703],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187939\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187940,\"mj10777.de\",187940,\"DHDN / Soldner 40 Rissenthal\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=49.47801819 +lon_0=6.75864339 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 40 Rissenthal\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",49.47801819],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",6.75864339],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187940\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187941,\"mj10777.de\",187941,\"DHDN / Soldner Bayern\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=48.13959111 +lon_0=11.57437083 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner Bayern\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",48.13959111],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",11.57437083],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187941\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def (filter,first, last, 187998, \"mj10777.de\", 187998,\"DHDN / Ferro / Deutsches_Hauptdreiecksnetz\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=longlat +ellps=bessel +datum=potsdam +pm=ferro +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Ferro / Deutsches_Hauptdreiecksnetz\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"SPHEROID[\\\"Bessel 1841\\\",6377397.155,299.1528128,\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]], AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,5,\"PRIMEM[\\\"ferro\\\",-17.66666666666667],UNIT[\\\"Degree\\\",0.017453292519943295,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187998\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]]\");\n"); fprintf (out, "/* mj10777: Not exsiting System, used for testing purposes. */\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187999,\"mj10777.de\",187999,\"DHDN / Brandenburger Tor\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=16819.76033675660074 +y_0=-11046.08218553455117 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner Brandenburger Tor\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.41864827777778],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.62720366666667],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",16819.76033675660074],PARAMETER[\\\"false_northing\\\",-11046.08218553455117],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187999\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def (filter,first, last, 325833, \"mj10777.de\", 325833,\"ETRS89 / UTM zone 33N (Brandenburg)\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"ETRS89 / UTM zone 33N (Brandenburg)\\\",GEOGCS[\\\"ETRS89\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"DATUM[\\\"European_Terrestrial_Reference_System_1989\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"SPHEROID[\\\"GRS 1980\\\",6378137,298.257222101,\");\n"); fprintf (out, " add_srs_wkt(p,3,\"AUTHORITY[\\\"EPSG\\\",\\\"7019\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"6258\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"PRIMEM[\\\"Greenwich\\\",0,AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,5,\"UNIT[\\\"degree\\\",0.01745329251994328,AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"4258\\\"]],UNIT[\\\"metre\\\",1,\");\n"); fprintf (out, " add_srs_wkt(p,7,\"AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],PROJECTION[\\\"Transverse_Mercator\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PARAMETER[\\\"latitude_of_origin\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"central_meridian\\\",15],PARAMETER[\\\"scale_factor\\\",0.9996],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"false_easting\\\",3500000],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"AUTHORITY[\\\"EPSG\\\",\\\"325833\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AXIS[\\\"Easting\\\",EAST],AXIS[\\\"Northing\\\",NORTH]]\");\n"); } static void do_header (FILE * out, int macro) { /* writing a file header */ time_t tm; time (&tm); fprintf (out, "/*\n\n"); fprintf (out, " helper function for srs_init.c -- populating the SPATIAL_REF_SYS table\n\n"); fprintf (out, " this code was autogenerated by \"auto_epsg_ext\" on %s\n", ctime (&tm)); fprintf (out, " Author: Sandro Furieri a.furieri@lqt.it\n\n"); fprintf (out, " -----------------------------------------------------------------------------\n\n"); fprintf (out, " Version: MPL 1.1/GPL 2.0/LGPL 2.1\n\n"); fprintf (out, " The contents of this file are subject to the Mozilla Public License Version\n"); fprintf (out, " 1.1 (the \"License\"); you may not use this file except in compliance with\n"); fprintf (out, " the License. You may obtain a copy of the License at\n"); fprintf (out, " http://www.mozilla.org/MPL/\n\n"); fprintf (out, "Software distributed under the License is distributed on an \"AS IS\" basis,\n"); fprintf (out, "WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\n"); fprintf (out, "for the specific language governing rights and limitations under the\n"); fprintf (out, "License.\n\nThe Original Code is the SpatiaLite library\n\n"); fprintf (out, "The Initial Developer of the Original Code is Alessandro Furieri\n\n"); fprintf (out, "Portions created by the Initial Developer are Copyright (C) 2008\n"); fprintf (out, "the Initial Developer. All Rights Reserved.\n\nContributor(s):\n\n"); fprintf (out, "Alternatively, the contents of this file may be used under the terms of\n"); fprintf (out, "either the GNU General Public License Version 2 or later (the \"GPL\"), or\n"); fprintf (out, "the GNU Lesser General Public License Version 2.1 or later (the \"LGPL\"),\n"); fprintf (out, "in which case the provisions of the GPL or the LGPL are applicable instead\n"); fprintf (out, "of those above. If you wish to allow use of your version of this file only\n"); fprintf (out, "under the terms of either the GPL or the LGPL, and not to allow others to\n"); fprintf (out, "use your version of this file under the terms of the MPL, indicate your\n"); fprintf (out, "decision by deleting the provisions above and replace them with the notice\n"); fprintf (out, "and other provisions required by the GPL or the LGPL. If you do not delete\n"); fprintf (out, "the provisions above, a recipient may use your version of this file under\n"); fprintf (out, "the terms of any one of the MPL, the GPL or the LGPL.\n\n*/\n\n"); fprintf (out, "#if defined(_WIN32) && !defined(__MINGW32__)\n"); fprintf (out, "#include \"config-msvc.h\"\n#else\n"); fprintf (out, "#include \"config.h\"\n#endif\n\n"); fprintf (out, "#include <spatialite_private.h>\n\n"); if (macro) fprintf (out, "#ifndef OMIT_EPSG /* full EPSG initialization enabled */\n\n"); } static void do_footer (FILE * out, int macro) { /* writing a file footer */ fprintf (out, "}\n\n"); if (macro) fprintf (out, "#endif /* full EPSG initialization enabled/disabled */\n\n"); } static void output_c_code (FILE * out, struct epsg_dict *epsg) { /* generating the C code supporting spatial_ref_sys self-initialization */ struct epsg_entry *p = epsg->first; int n; int sect = 0; int wgs84_sect = 0; int def_cnt = 1000; int out_cnt; const char *in; int i; int pending_footer = 0; for (i = 0; i < epsg->count; i++) { p = *(epsg->sorted + i); if (p->srid == 4326 || (p->srid >= 32601 && p->srid <= 32766)) { /* skipping WGS84 defs */ continue; } if (def_cnt > 100) { if (out != NULL) { if (pending_footer) { do_footer (out, 1); pending_footer = 0; } /* closing the output file */ fclose (out); out = NULL; } /* opening the next output file */ out = open_file (sect); if (out == NULL) return; /* function header */ do_header (out, 1); fprintf (out, "SPATIALITE_PRIVATE void\n"); fprintf (out, "initialize_epsg_%02d (int filter, struct epsg_defs **first, struct epsg_defs **last)\n", sect++); fprintf (out, "{\n/* initializing the EPSG defs list */\n"); fprintf (out, " struct epsg_defs *p;\n"); def_cnt = 0; } pending_footer = 1; /* inserting the main EPSG def */ def_cnt++; fprintf (out, " p = add_epsg_def_ex (filter, first, last, %d, \"epsg\", %d,\n", p->srid, p->srid); fprintf (out, " \"%s\", %d, %d,\n", p->ref_sys_name, p->is_geographic, p->flipped_axes); fprintf (out, " \"%s\", \"%s\",\n", p->spheroid, p->prime_meridian); fprintf (out, " \"%s\", \"%s\", \"%s\",\n", p->datum, p->projection, p->unit); fprintf (out, " \"%s\", \"%s\", \"%s\", \"%s\");\n", p->axis_1, p->orientation_1, p->axis_2, p->orientation_2); /* inserting the proj4text string */ n = 0; in = p->proj4text; while (*in != '\0') { fprintf (out, " add_proj4text (p, %d,\n \"", n); out_cnt = 0; while (*in != '\0') { if (*in == '"') { fprintf (out, "\\%c", *in++); out_cnt += 2; } else { fprintf (out, "%c", *in++); out_cnt++; } if (out_cnt >= 56) break; } fprintf (out, "\");\n"); n++; } if (p->srtext != NULL) { /* inserting the srs_wkt string */ n = 0; in = p->srtext; while (*in != '\0') { fprintf (out, " add_srs_wkt (p, %d,\n \"", n); out_cnt = 0; while (*in != '\0') { if (*in == '"') { fprintf (out, "\\%c", *in++); out_cnt += 2; } else { fprintf (out, "%c", *in++); out_cnt++; } if (out_cnt >= 56) break; } fprintf (out, "\");\n"); n++; } } else fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); } if (out != NULL) { /* closing the output file */ if (pending_footer) { do_footer (out, 1); pending_footer = 0; } /* closing the output file */ fclose (out); out = NULL; } def_cnt = 1000; pending_footer = 0; for (i = 0; i < epsg->count; i++) { p = *(epsg->sorted + i); if (p->srid == 4326 || (p->srid >= 32601 && p->srid <= 32766)) ; else { /* skipping not-WGS84 defs */ continue; } if (def_cnt > 100) { if (out != NULL) { if (pending_footer) { do_footer (out, 0); pending_footer = 0; } /* closing the output file */ fclose (out); out = NULL; } /* opening the next output file */ out = open_file_wgs84 (wgs84_sect); if (out == NULL) return; /* function header */ do_header (out, 0); fprintf (out, "SPATIALITE_PRIVATE void\n"); fprintf (out, "initialize_epsg_wgs84_%02d (int filter, struct epsg_defs **first, struct epsg_defs **last)\n", wgs84_sect++); fprintf (out, "{\n/* initializing the EPSG defs list [WGS84] */\n"); fprintf (out, " struct epsg_defs *p;\n"); def_cnt = 0; } pending_footer = 1; /* inserting the main EPSG def */ def_cnt++; fprintf (out, " p = add_epsg_def_ex (filter, first, last, %d, \"epsg\", %d,\n", p->srid, p->srid); fprintf (out, " \"%s\", %d, %d,\n", p->ref_sys_name, p->is_geographic, p->flipped_axes); fprintf (out, " \"%s\", \"%s\",\n", p->spheroid, p->prime_meridian); fprintf (out, " \"%s\", \"%s\", \"%s\",\n", p->datum, p->projection, p->unit); fprintf (out, " \"%s\", \"%s\", \"%s\", \"%s\");\n", p->axis_1, p->orientation_1, p->axis_2, p->orientation_2); /* inserting the proj4text string */ n = 0; in = p->proj4text; while (*in != '\0') { fprintf (out, " add_proj4text (p, %d,\n \"", n); out_cnt = 0; while (*in != '\0') { if (*in == '"') { fprintf (out, "\\%c", *in++); out_cnt += 2; } else { fprintf (out, "%c", *in++); out_cnt++; } if (out_cnt >= 56) break; } fprintf (out, "\");\n"); n++; } if (p->srtext != NULL) { /* inserting the srs_wkt string */ n = 0; in = p->srtext; while (*in != '\0') { fprintf (out, " add_srs_wkt (p, %d,\n \"", n); out_cnt = 0; while (*in != '\0') { if (*in == '"') { fprintf (out, "\\%c", *in++); out_cnt += 2; } else { fprintf (out, "%c", *in++); out_cnt++; } if (out_cnt >= 56) break; } fprintf (out, "\");\n"); n++; } } else fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); } if (out != NULL) { /* closing the output file */ if (pending_footer) { do_footer (out, 0); pending_footer = 0; } /* closing the output file */ fclose (out); out = NULL; } /* opening the "prussian" output file */ out = open_file3 (); if (out == NULL) return; /* function header */ do_header (out, 1); do_prussian (out); /* function footer */ do_footer (out, 1); /* closing the "prussian" output file */ fclose (out); out = NULL; /* opening the "extra" output file */ out = open_file2 (); if (out == NULL) return; /* function header */ do_header (out, 0); fprintf (out, "/* declaring prototypes */\n"); for (i = 0; i < sect; i++) fprintf (out, "SPATIALITE_PRIVATE void initialize_epsg_%02d (\n\tint filter, struct epsg_defs **first, struct epsg_defs **last);\n", i); for (i = 0; i < wgs84_sect; i++) fprintf (out, "SPATIALITE_PRIVATE void initialize_epsg_wgs84_%02d (\n\tint filter, struct epsg_defs **first, struct epsg_defs **last);\n", i); fprintf (out, "SPATIALITE_PRIVATE void initialize_epsg_prussian (\n\tint filter, struct epsg_defs **first, struct epsg_defs **last);\n"); fprintf (out, "SPATIALITE_PRIVATE void initialize_epsg_extra (\n\tint filter, struct epsg_defs **first, struct epsg_defs **last);\n\n"); fprintf (out, "SPATIALITE_PRIVATE void\n"); fprintf (out, "initialize_epsg_extra (int filter, struct epsg_defs **first, struct epsg_defs **last)\n\n"); fprintf (out, "{\n/* initializing the EPSG defs list [EXTRA] */\n"); fprintf (out, " struct epsg_defs *p;\n"); fprintf (out, " p = add_epsg_def (filter, first, last, 40000, \"gfoss.it\", 1,\n"); fprintf (out, " \"Italy mainland zone 1 GB Roma40\");\n"); fprintf (out, " add_proj4text (p, 0,\n"); fprintf (out, " \"+proj=tmerc+lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_\");\n"); fprintf (out, " add_proj4text (p, 1,\n"); fprintf (out, " \"0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.97\");\n"); fprintf (out, " add_proj4text (p, 2, \"1,-2.917,0.714,-11.68 +no_defs\");\n"); fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); fprintf (out, " p = add_epsg_def (filter, first, last, 40001, \"gfoss.it\", 2,\n"); fprintf (out, " \"Italy mainland zone 2 GB Roma40\");\n"); fprintf (out, " add_proj4text (p, 0,\n"); fprintf (out, " \"+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y\");\n"); fprintf (out, " add_proj4text (p, 1,\n"); fprintf (out, " \"_0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.9\");\n"); fprintf (out, " add_proj4text (p, 2, \"71,-2.917,0.714,-11.68 +no_defs\");\n"); fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); fprintf (out, " p = add_epsg_def (filter, first, last, 40002, \"gfoss.it\", 3,\n"); fprintf (out, " \"Italy Sardinia GB Roma40\");\n"); fprintf (out, " add_proj4text (p, 0,\n"); fprintf (out, " \"+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y\");\n"); fprintf (out, " add_proj4text (p, 1,\n"); fprintf (out, " \"_0=0 +ellps=intl +units=m +towgs84=-168.6,-34.0,38.6,-0.\");\n"); fprintf (out, " add_proj4text (p, 2, \"374,-0.679,-1.379,-9.48 +no_defs\");\n"); fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); fprintf (out, " p = add_epsg_def (filter, first, last, 40003, \"gfoss.it\", 4,\n"); fprintf (out, " \"Italy Sicily GB Roma40\");\n"); fprintf (out, " add_proj4text (p, 0,\n"); fprintf (out, " \"+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y\");\n"); fprintf (out, " add_proj4text (p, 1,\n"); fprintf (out, " \"_0=0 +ellps=intl +units=m +towgs84=-50.2,-50.4,84.8,-0.6\");\n"); fprintf (out, " add_proj4text (p, 2, \"90,-2.012,0.459,-28.08 +no_defs\");\n"); fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); /* function footer */ do_footer (out, 0); /* inserting the pilot function */ fprintf (out, "SPATIALITE_PRIVATE void\n"); fprintf (out, "initialize_epsg (int filter, struct epsg_defs **first, struct epsg_defs **last)\n"); fprintf (out, "{\n/* initializing the EPSG defs list */\n"); fprintf (out, " struct epsg_defs *p;\n "); fprintf (out, "/* initializing the EPSG UNKNOWN def [-1] */\n"); fprintf (out, " p = add_epsg_def (filter, first, last, -1, \"NONE\", -1, \"Undefined - Cartesian\");\n"); fprintf (out, " add_proj4text (p, 0, \"\");\n"); fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); fprintf (out, " p = add_epsg_def (filter, first, last, 0, \"NONE\", 0, \"Undefined - Geographic Long/Lat\");\n"); fprintf (out, " add_proj4text (p, 0, \"\");\n"); fprintf (out, " add_srs_wkt (p, 0, \"\");\n\n"); fprintf (out, " if (filter != GAIA_EPSG_WGS84_ONLY)\n {\n"); fprintf (out, "#ifndef OMIT_EPSG /* full EPSG initialization enabled */\n"); for (i = 0; i < sect; i++) fprintf (out, " initialize_epsg_%02d (filter, first, last);\n", i); fprintf (out, " initialize_epsg_prussian (filter, first, last);\n"); fprintf (out, " initialize_epsg_extra (filter, first, last);\n"); fprintf (out, "#endif /* full EPSG initialization enabled/disabled */\n"); fprintf (out, " }\n"); for (i = 0; i < wgs84_sect; i++) fprintf (out, " initialize_epsg_wgs84_%02d (filter, first, last);\n", i); fprintf (out, "}\n"); /* closing the "extra" output file */ fclose (out); out = NULL; } int main (void) { /* / / Please note: no args are supported !!! / / we'll expect to find two input files respectively named: / - epsg / - wkt / / the C code will be generated into: epsg_inlined.c / */ FILE *fl_epsg = NULL; FILE *fl_out = NULL; struct epsg_dict epsg; /* initializing the EPSG dictionary */ epsg.first = NULL; epsg.last = NULL; epsg.sorted = NULL; epsg.count = 0; /* opening the EPSG input file */ fl_epsg = fopen ("epsg", "rb"); if (fl_epsg == NULL) { fprintf (stderr, "ERROR: unable to open the \"epsg\" input file\n"); goto stop; } if (!parse_epsg (fl_epsg, &epsg)) { fprintf (stderr, "ERROR: malformed EPSG input file\n"); goto stop; } if (!sort_epsg (&epsg)) { fprintf (stderr, "ERROR: unable to sort EPSG entries\n"); goto stop; } output_c_code (fl_out, &epsg); stop: free_epsg (&epsg); if (fl_epsg) fclose (fl_epsg); if (fl_out) fclose (fl_out); return 0; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_update/README.txt���������������������������������������������0000664�0001750�0001750�00000003212�12544707704�017720� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������HOW-TO: UPDATE spatial_ref_sys SELF-INITIALIZING C CODE ============================================================================ When updating is required: each time a new GDAL version will be released. ============================================================================ STEP #0: building the most recent GDAL -------- - download the latest GDAL sources - build and install (no special settings are required) - CAVEAT: set the LD_LIBRARY_PATH env variable so to be absolutely sure to target this custom built GDAL and not the default system installation STEP #1: compiling the C GDAL utility -------- # cd {libspatialite-source}/src/srsinit/epsg_update Linux: # gcc epsg_from_gdal.c -o epsg_from_gdal -lgdal Windows [MinGW]: # gcc -I/usr/local/include epsg_from_gdal.c -o epsg_from_gdal.exe \ -L/usr/local/lib -lgdal STEP #2: getting the basic EPSG file -------- # rm epsg # epsg_from_gdal >epsg all right: this "epsg" output file will be used as a "seed" into the next step STEP #3: compiling the C generator tool -------- # cd {libspatialite-source}/src/srsinit/epsg_update Linux: # gcc auto_epsg_ext.c -o auto_epsg_ext Windows [MinGW]: # gcc auto_epsg_ext.c -o auto_epsg_ext.exe STEP #4: generating the C code [inlined EPSG dataset] -------- # rm epsg_inlined_*.c # ./auto_epsg_ext at the end of this step several "epsg_inlined_*.c" files will be generated STEP #5: final setup -------- - copy the generated file into the parent dir: rm ../epsg_inlined*.c cp epsg_inlined*.c .. - be sure to update as required the repository (ADD/DEL) - be sure to update as required Makefile.am - and finally commit into the repository ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_update/auto_epsg.c��������������������������������������������0000664�0001750�0001750�00000321136�12544707704�020364� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* / auto_epsg / / a tool autogenerating C code for SpatiaLite / [spatial_ref_sys self-initialization routines] / / version 1.0, 2012 January 18 / / Author: Sandro Furieri a.furieri@lqt.it / / Copyright (C) 2011 Alessandro Furieri / / This program is free software: you can redistribute it and/or modify / it under the terms of the GNU General Public License as published by / the Free Software Foundation, either version 3 of the License, or / (at your option) any later version. / / This program is distributed in the hope that it will be useful, / but WITHOUT ANY WARRANTY; without even the implied warranty of / MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the / GNU General Public License for more details. / / You should have received a copy of the GNU General Public License / along with this program. If not, see <http://www.gnu.org/licenses/>. / */ #include <stdlib.h> #include <stdio.h> #include <string.h> #include <time.h> struct epsg_entry { /* a struct wrapping an EPSG entry */ int srid; char *ref_sys_name; char *proj4text; char *srs_wkt; struct epsg_entry *next; }; struct epsg_dict { /* the EPSG dictionary */ struct epsg_entry *first; struct epsg_entry *last; struct epsg_entry **sorted; int count; }; static void free_epsg_entry (struct epsg_entry *p) { /* destroying an epsg_entry */ if (p->ref_sys_name) free (p->ref_sys_name); if (p->proj4text) free (p->proj4text); if (p->srs_wkt) free (p->srs_wkt); free (p); } static void free_epsg (struct epsg_dict *epsg) { /* destroying the EPSG dictionary */ struct epsg_entry *pE; struct epsg_entry *pEn; pE = epsg->first; while (pE) { pEn = pE->next; free_epsg_entry (pE); pE = pEn; } if (epsg->sorted) free (epsg->sorted); } static void epsg_insert (struct epsg_dict *epsg, int srid, const char *name, const char *proj4text) { /* inserting an entry into the EPSG dictionary */ int len; struct epsg_entry *p = malloc (sizeof (struct epsg_entry)); p->srid = srid; len = strlen (name); p->ref_sys_name = malloc (len + 1); strcpy (p->ref_sys_name, name); len = strlen (proj4text); p->proj4text = malloc (len + 1); strcpy (p->proj4text, proj4text); p->srs_wkt = NULL; p->next = NULL; /* updating the linked list */ if (epsg->first == NULL) epsg->first = p; if (epsg->last != NULL) epsg->last->next = p; epsg->last = p; } static void add_wkt (struct epsg_dict *epsg, int srid, const char *wkt) { /* adding the WKT def to some EPSG entry */ struct epsg_entry *p = epsg->first; while (p) { if (p->srid == srid) { int len = strlen (wkt); if (p->srs_wkt) free (p->srs_wkt); p->srs_wkt = malloc (len + 1); strcpy (p->srs_wkt, wkt); return; } p = p->next; } } static int parse_epsg (FILE * fl_epsg, struct epsg_dict *epsg) { /* parsing the EPSG input file */ char line[1024]; char name[512]; char *out = line; int odd_even = 0; int c; while ((c = getc (fl_epsg)) != EOF) { if (c == '\r') continue; if (c == '\n') { *out = '\0'; if (odd_even) { int i; int len = strlen (line); char srid[16]; char *p = srid; const char *proj4text = NULL; if (odd_even == 2) { if (*line == '#') { /* closing a pending invalid EPSG def */ odd_even = 0; *name = '\0'; out = line; continue; } return 0; } if (*name == '\0') return 0; if (strncmp (line, "# ", 2) == 0) { /* probably an invalid EPSG def: skipping */ odd_even = 2; *name = '\0'; out = line; continue; } if (*line != '<') return 0; if (strcmp (line + len - 2, "<>") != 0) return 0; line[len - 2] = '\0'; for (i = 1; i < 10; i++) { if (line[i] == '>') { *p = '\0'; proj4text = line + i + 2; } *p++ = line[i]; } if (!proj4text) return 0; len = strlen (line); for (i = len - 1; i > 1; i--) { if (line[i] == ' ') line[i] = '\0'; else break; } epsg_insert (epsg, atoi (srid), name, proj4text); odd_even = 0; *name = '\0'; } else { if (strncmp (line, "# ", 2) != 0) return 0; strcpy (name, line + 2); odd_even = 1; } out = line; continue; } *out++ = c; } return 1; } static int fetch_srid (const char *line) { /* attempting to retrieve the WKT own SRID */ int len = strlen (line); int i; int cnt = 0; for (i = len - 1; i > 1; i--) { if (line[i] == ']') cnt++; if (cnt == 3) { if (strncmp (line + i, "],AUTHORITY[\"EPSG\",\"", 20) == 0) return atoi (line + i + 20); return -1; } } return -1; } static int parse_wkt (FILE * fl_wkt, struct epsg_dict *epsg) { /* parsing the WKT input file */ char line[8192]; int srid; char *out = line; int c; while ((c = getc (fl_wkt)) != EOF) { if (c == '\r') continue; if (c == '\n') { *out = '\0'; srid = fetch_srid (line); if (srid >= 0) add_wkt (epsg, srid, line); out = line; continue; } *out++ = c; } return 1; } static int cmp_sort (const void *p1, const void *p2) { /* comparison function for QSORT */ struct epsg_entry *e1 = *(struct epsg_entry **) p1; struct epsg_entry *e2 = *(struct epsg_entry **) p2; if (e1->srid == e2->srid) return 0; if (e1->srid < e2->srid) return -1; return 1; } static int sort_epsg (struct epsg_dict *epsg) { /* sorting the EPSG defs by ascending SRID */ int count = 0; int i; struct epsg_entry *p = epsg->first; while (p) { /* counting how many entries are there */ count++; p = p->next; } if (count == 0) return 0; if (epsg->sorted) free (epsg->sorted); epsg->sorted = malloc (sizeof (struct epsg_dict *) * count); epsg->count = count; i = 0; p = epsg->first; while (p) { /* feeding the pointer array */ *(epsg->sorted + i) = p; i++; p = p->next; } /* sorting the pointer array by ascending SRID */ qsort (epsg->sorted, count, sizeof (struct epsg_dict *), cmp_sort); return 1; } static FILE * open_file (int file_no) { /* opening an output file */ char path[1024]; FILE *out = NULL; sprintf (path, "epsg_inlined_%02d.c", file_no); out = fopen (path, "wb"); if (out == NULL) { fprintf (stderr, "ERROR: unable to open the \"%s\" output file\n", path); return NULL; } return out; } static FILE * open_file2 () { /* opening the "extra" output file */ FILE *out = NULL; out = fopen ("epsg_inlined_extra.c", "wb"); if (out == NULL) { fprintf (stderr, "ERROR: unable to open the \"epsg_inlined_extra.c\" output file\n"); return NULL; } return out; } static FILE * open_file3 () { /* opening the "prussian" output file */ FILE *out = NULL; out = fopen ("epsg_inlined_prussian.c", "wb"); if (out == NULL) { fprintf (stderr, "ERROR: unable to open the \"epsg_inlined_prussian.c\" output file\n"); return NULL; } return out; } static FILE * open_file_wgs84 (int file_no) { /* opening an output file "wgs84" */ char path[1024]; FILE *out = NULL; sprintf (path, "epsg_inlined_wgs84_%02d.c", file_no); out = fopen (path, "wb"); if (out == NULL) { fprintf (stderr, "ERROR: unable to open the \"%s\" output file\n", path); return NULL; } return out; } static void do_prussian (FILE * out) { /* writing the "prussian" body */ fprintf (out, "SPATIALITE_PRIVATE void\ninitialize_epsg_prussian(int filter,struct epsg_defs **first, struct epsg_defs **last)\n"); fprintf (out, "{\n/* old Prussian based on Cassini-Soldner - kindly contributed by Mark Johnson */\n"); fprintf (out, " struct epsg_defs *p;\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187900,\"mj10777.de\",187900,\"DHDN / Soldner Rathausnetz 660\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=14741.77 +y_0=-11288.28 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner Rathausnetz 660\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.41864827777778],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.62720366666667],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",14741.77],PARAMETER[\\\"false_northing\\\",-11288.28],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187900\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187901,\"mj10777.de\",187901,\"DHDN / Soldner 1 Kucklinsberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.46022375 +lon_0=21.95509736 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 1 Kucklinsberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.46022375],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",21.95509736],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187901\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187902,\"mj10777.de\",187902,\"DHDN / Soldner 2 Paulinen\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.28921067 +lon_0=20.73315431 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 2 Paulinen\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.28921067],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",20.73315431],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187902\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187903,\"mj10777.de\",187903,\"DHDN / Soldner 3 Markushof I\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.05881333 +lon_0=19.37343583 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 3 Markushof I\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.05881333],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",19.37343583],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187903\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187904,\"mj10777.de\",187904,\"DHDN / Soldner 4 Thurmberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.22552092 +lon_0=18.12569375 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 4 Thurmberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.22552092],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",18.12569375],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187904\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187905,\"mj10777.de\",187905,\"DHDN / Soldner 5 Kauernick I\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=53.38933197 +lon_0=19.59810438 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 5 Kauernick I\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.38933197],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",19.59810438],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187905\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187906,\"mj10777.de\",187906,\"DHDN / Soldner 6 Thorn, Rathausturm\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=53.01181586 +lon_0=18.60725428 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 6 Thorn, Rathausturm\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.01181586],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",18.60725428],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187906\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187907,\"mj10777.de\",187907,\"DHDN / Soldner 7 Heinrichsthal\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=53.71289217 +lon_0=17.49676781 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 7 Heinrichsthal\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.71289217],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",17.49676781],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187907\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187908,\"mj10777.de\",187908,\"DHDN / Soldner 8 Gollenberg, Denkmal\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.20857178 +lon_0=16.22956781 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 8 Gollenberg, Denkmal\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.20857178],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",16.22956781],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187908\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187909,\"mj10777.de\",187909,\"DHDN / Soldner 9 Gnesen\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.53820406 +lon_0=17.59450500 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 9 Gnesen\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.53820406],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",17.59450500],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187909\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187910,\"mj10777.de\",187910,\"DHDN / Soldner 10 Josefsberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.98768806 +lon_0=16.20044389 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 10 Josefsberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.98768806],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",16.20044389],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187910\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187911,\"mj10777.de\",187911,\"DHDN / Soldner 11 Schroda\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.23137372 +lon_0=17.27795372 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 11 Schroda\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.23137372],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",17.27795372],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187911\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187912,\"mj10777.de\",187912,\"DHDN / Soldner 12 Pschow\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.04206544 +lon_0=18.39610692 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 12 Pschow\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.04206544],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",18.39610692],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187912\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187913,\"mj10777.de\",187913,\"DHDN / Soldner 13 Rummelsberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.70352314 +lon_0=17.11233917 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 13 Rummelsberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.70352314],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",17.11233917],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187913\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187914,\"mj10777.de\",187914,\"DHDN / Soldner 14 Gröditzberg I\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.17819342 +lon_0=15.76127086 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 14 Gröditzberg I\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.17819342],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",15.76127086],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187914\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187915,\"mj10777.de\",187915,\"DHDN / Soldner 15 Kaltenborn\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.92903708 +lon_0=14.66212942 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 15 Kaltenborn\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.92903708],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",14.66212942],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187915\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187917,\"mj10777.de\",187917,\"DHDN / Soldner 17 Greifswald, Nikolaikirche\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.09698872 +lon_0=13.37880703 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 17 Greifswald, Nikolaikirche\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.09698872],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.37880703],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187917\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187916,\"mj10777.de\",187916,\"DHDN / Soldner 16 Bahn I\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=53.10184583 +lon_0=14.70144539 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 16 Bahn I\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.10184583],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",14.70144539],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187916\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187918,\"mj10777.de\",187918,\"DHDN / Soldner 18 Müggelberg 600\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 18 Müggelberg 600\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.41864827777778],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.62720366666667],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187918\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187919,\"mj10777.de\",187919,\"DHDN / Soldner 19 Götzer Berg 650\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.43725961111112 +lon_0=12.72882972222223 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 19 Götzer Berg 650\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.43725961111112],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",12.72882972222223],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187919\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187920,\"mj10777.de\",187920,\"DHDN / Soldner 20 Torgau, Stadtkirche\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.56136217 +lon_0=13.00760264 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 20 Torgau, Stadtkirche\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.56136217],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.00760264],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187920\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187921,\"mj10777.de\",187921,\"DHDN / Soldner 21 Burkersroda, Kirchturm\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.17656322 +lon_0=11.64139367 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 21 Burkersroda, Kirchturm\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.17656322],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",11.64139367],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187921\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187922,\"mj10777.de\",187922,\"DHDN / Soldner 22 Inselsberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.85237983 +lon_0=10.46776506 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 22 Inselsberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.85237983],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.46776506],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187922\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187923,\"mj10777.de\",187923,\"DHDN / Soldner 23 Magdeburg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.12625311 +lon_0=11.63550325 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 23 Magdeburg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.12625311],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",11.63550325],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187923\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187924,\"mj10777.de\",187924,\"DHDN / Soldner 24 Ostenfeld I\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.47018733 +lon_0=9.23411097 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 24 Ostenfeld I\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.47018733],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",9.23411097],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187924\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187925,\"mj10777.de\",187925,\"DHDN / Soldner 25 Rathkrügen\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=53.81839364 +lon_0=10.04220189 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 25 Rathkrügen\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.81839364],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.04220189],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187925\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187926,\"mj10777.de\",187926,\"DHDN / Soldner 26 Bungsberg, Aussichtsturm\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=54.21110653 +lon_0=10.72636431 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 26 Bungsberg, Aussichtsturm\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",54.21110653],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.72636431],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187926\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187927,\"mj10777.de\",187927,\"DHDN / Soldner 27 Celle, Stadtkirche\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.62574192 +lon_0=10.08190214 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 27 Celle, Stadtkirche\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.62574192],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.08190214],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187927\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187928,\"mj10777.de\",187928,\"DHDN / Soldner 28 Kaltenborn\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.79646722 +lon_0=10.27322494 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 28 Kaltenborn\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.79646722],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",10.27322494],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187928\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187929,\"mj10777.de\",187929,\"DHDN / Soldner 29 Silberberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=53.73123461 +lon_0=9.05774925 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 29 Silberberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",53.73123461],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",9.05774925],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187929\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187930,\"mj10777.de\",187930,\"DHDN / Soldner 30 Windberg\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.88088372 +lon_0=7.53062114 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 30 Windberg\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.88088372],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.53062114],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187930\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187931,\"mj10777.de\",187931,\"DHDN / Soldner 31 Hermannsdenkmal\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.91301647 +lon_0=8.84051853 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 31 Hermannsdenkmal\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.91301647],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",8.84051853],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187931\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187932,\"mj10777.de\",187932,\"DHDN / Soldner 32 Münster\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.96547642 +lon_0=7.62334994 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 32 Münster\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.96547642],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.62334994],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187932\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187933,\"mj10777.de\",187933,\"DHDN / Soldner 33 Bochum, Peter-Paul-Kirche\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.48373533 +lon_0=7.22115822 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 33 Bochum, Peter-Paul-Kirche\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.48373533],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.22115822],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187933\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187934,\"mj10777.de\",187934,\"DHDN / Soldner 34 Homert\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.26480147 +lon_0=8.10687050 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 34 Homert\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.26480147],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",8.10687050],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187934\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187935,\"mj10777.de\",187935,\"DHDN / Soldner 35 Kassel, Martinskirche\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=51.31846489 +lon_0=9.50203072 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 35 Kassel, Martinskirche\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",51.31846489],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",9.50203072],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187935\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187936,\"mj10777.de\",187936,\"DHDN / Soldner 36 Schaumburg, Schloßturm\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.34048964 +lon_0=7.97808156 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 36 Schaumburg, Schloßturm\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.34048964],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.97808156],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187936\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187937,\"mj10777.de\",187937,\"DHDN / Soldner 37 Fleckert\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.18762544 +lon_0=7.60594289 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 37 Fleckert\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.18762544],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",7.60594289],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187937\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187938,\"mj10777.de\",187938,\"DHDN / Soldner 38 Cöln, Dom\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.94257242 +lon_0=6.95897600 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 38 Cöln, Dom\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.94257242],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",6.95897600],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187938\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187939,\"mj10777.de\",187939,\"DHDN / Soldner 39 Langschoß\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=50.66738711 +lon_0=6.28935703 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 39 Langschoß\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",50.66738711],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",6.28935703],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187939\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187940,\"mj10777.de\",187940,\"DHDN / Soldner 40 Rissenthal\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=49.47801819 +lon_0=6.75864339 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner 40 Rissenthal\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",49.47801819],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",6.75864339],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187940\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187941,\"mj10777.de\",187941,\"DHDN / Soldner Bayern\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=48.13959111 +lon_0=11.57437083 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner Bayern\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",48.13959111],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",11.57437083],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",0],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187941\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def (filter,first, last, 187998, \"mj10777.de\", 187998,\"DHDN / Ferro / Deutsches_Hauptdreiecksnetz\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=longlat +ellps=bessel +datum=potsdam +pm=ferro +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Ferro / Deutsches_Hauptdreiecksnetz\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"SPHEROID[\\\"Bessel 1841\\\",6377397.155,299.1528128,\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]], AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,5,\"PRIMEM[\\\"ferro\\\",-17.66666666666667],UNIT[\\\"Degree\\\",0.017453292519943295,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187998\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]]\");\n"); fprintf (out, "/* mj10777: Not exsiting System, used for testing purposes. */\n"); fprintf (out, " p = add_epsg_def(filter,first,last,187999,\"mj10777.de\",187999,\"DHDN / Brandenburger Tor\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 \");\n"); fprintf (out, " add_proj4text(p,1,\"+x_0=16819.76033675660074 +y_0=-11046.08218553455117 +ellps=bessel +datum=potsdam +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"DHDN / Soldner Brandenburger Tor\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"GEOGCS[\\\"DHDN\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"DATUM[\\\"Deutsches_Hauptdreiecksnetz\\\",SPHEROID[\\\"Bessel 1841\\\",\");\n"); fprintf (out, " add_srs_wkt(p,3,\"6377397.155,299.1528128,AUTHORITY[\\\"EPSG\\\",\\\"7004\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"AUTHORITY[\\\"EPSG\\\",\\\"6314\\\"]],PRIMEM[\\\"Greenwich\\\",0,\");\n"); fprintf (out, " add_srs_wkt(p,5,\"AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],UNIT[\\\"degree\\\",0.01745329251994328,\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"4314\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,7,\"UNIT[\\\"metre\\\",1,AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PROJECTION[\\\"Cassini_Soldner\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"latitude_of_origin\\\",52.41864827777778],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"central_meridian\\\",13.62720366666667],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"PARAMETER[\\\"false_easting\\\",16819.76033675660074],PARAMETER[\\\"false_northing\\\",-11046.08218553455117],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AUTHORITY[\\\"mj10777.de\\\",\\\"187999\\\"],AXIS[\\\"x\\\",NORTH],AXIS[\\\"y\\\",EAST]]\");\n"); fprintf (out, " p = add_epsg_def (filter,first, last, 325833, \"mj10777.de\", 325833,\"ETRS89 / UTM zone 33N (Brandenburg)\");\n"); fprintf (out, " add_proj4text(p,0,\"+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs\");\n"); fprintf (out, " add_srs_wkt(p,0,\"PROJCS[\\\"ETRS89 / UTM zone 33N (Brandenburg)\\\",GEOGCS[\\\"ETRS89\\\",\");\n"); fprintf (out, " add_srs_wkt(p,1,\"DATUM[\\\"European_Terrestrial_Reference_System_1989\\\",\");\n"); fprintf (out, " add_srs_wkt(p,2,\"SPHEROID[\\\"GRS 1980\\\",6378137,298.257222101,\");\n"); fprintf (out, " add_srs_wkt(p,3,\"AUTHORITY[\\\"EPSG\\\",\\\"7019\\\"]],AUTHORITY[\\\"EPSG\\\",\\\"6258\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,4,\"PRIMEM[\\\"Greenwich\\\",0,AUTHORITY[\\\"EPSG\\\",\\\"8901\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,5,\"UNIT[\\\"degree\\\",0.01745329251994328,AUTHORITY[\\\"EPSG\\\",\\\"9122\\\"]],\");\n"); fprintf (out, " add_srs_wkt(p,6,\"AUTHORITY[\\\"EPSG\\\",\\\"4258\\\"]],UNIT[\\\"metre\\\",1,\");\n"); fprintf (out, " add_srs_wkt(p,7,\"AUTHORITY[\\\"EPSG\\\",\\\"9001\\\"]],PROJECTION[\\\"Transverse_Mercator\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,8,\"PARAMETER[\\\"latitude_of_origin\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,9,\"PARAMETER[\\\"central_meridian\\\",15],PARAMETER[\\\"scale_factor\\\",0.9996],\");\n"); fprintf (out, " add_srs_wkt(p,10,\"PARAMETER[\\\"false_easting\\\",3500000],PARAMETER[\\\"false_northing\\\",0],\");\n"); fprintf (out, " add_srs_wkt(p,11,\"AUTHORITY[\\\"EPSG\\\",\\\"325833\\\"],\");\n"); fprintf (out, " add_srs_wkt(p,12,\"AXIS[\\\"Easting\\\",EAST],AXIS[\\\"Northing\\\",NORTH]]\");\n"); } static void do_header (FILE * out, int macro) { /* writing a file header */ time_t tm; time (&tm); fprintf (out, "/*\n\n"); fprintf (out, " helper function for srs_init.c -- populating the SPATIAL_REF_SYS table\n\n"); fprintf (out, " this code was autogenerated by \"auto_epsg\" on %s\n", ctime (&tm)); fprintf (out, " Author: Sandro Furieri a.furieri@lqt.it\n\n"); fprintf (out, " -----------------------------------------------------------------------------\n\n"); fprintf (out, " Version: MPL 1.1/GPL 2.0/LGPL 2.1\n\n"); fprintf (out, " The contents of this file are subject to the Mozilla Public License Version\n"); fprintf (out, " 1.1 (the \"License\"); you may not use this file except in compliance with\n"); fprintf (out, " the License. You may obtain a copy of the License at\n"); fprintf (out, " http://www.mozilla.org/MPL/\n\n"); fprintf (out, "Software distributed under the License is distributed on an \"AS IS\" basis,\n"); fprintf (out, "WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\n"); fprintf (out, "for the specific language governing rights and limitations under the\n"); fprintf (out, "License.\n\nThe Original Code is the SpatiaLite library\n\n"); fprintf (out, "The Initial Developer of the Original Code is Alessandro Furieri\n\n"); fprintf (out, "Portions created by the Initial Developer are Copyright (C) 2008\n"); fprintf (out, "the Initial Developer. All Rights Reserved.\n\nContributor(s):\n\n"); fprintf (out, "Alternatively, the contents of this file may be used under the terms of\n"); fprintf (out, "either the GNU General Public License Version 2 or later (the \"GPL\"), or\n"); fprintf (out, "the GNU Lesser General Public License Version 2.1 or later (the \"LGPL\"),\n"); fprintf (out, "in which case the provisions of the GPL or the LGPL are applicable instead\n"); fprintf (out, "of those above. If you wish to allow use of your version of this file only\n"); fprintf (out, "under the terms of either the GPL or the LGPL, and not to allow others to\n"); fprintf (out, "use your version of this file under the terms of the MPL, indicate your\n"); fprintf (out, "decision by deleting the provisions above and replace them with the notice\n"); fprintf (out, "and other provisions required by the GPL or the LGPL. If you do not delete\n"); fprintf (out, "the provisions above, a recipient may use your version of this file under\n"); fprintf (out, "the terms of any one of the MPL, the GPL or the LGPL.\n\n*/\n\n"); fprintf (out, "#include \"config.h\"\n\n"); fprintf (out, "#include <spatialite_private.h>\n\n"); if (macro) fprintf (out, "#ifndef OMIT_EPSG /* full EPSG initialization enabled */\n\n"); } static void do_footer (FILE * out, int macro) { /* writing a file footer */ fprintf (out, "}\n\n"); if (macro) fprintf (out, "#endif /* full EPSG initialization enabled/disabled */\n\n"); } static void output_c_code (FILE * out, struct epsg_dict *epsg) { /* generating the C code supporting spatial_ref_sys self-initialization */ struct epsg_entry *p = epsg->first; int n; int sect = 0; int wgs84_sect = 0; int def_cnt = 1000; int out_cnt; const char *in; int i; int pending_footer = 0; for (i = 0; i < epsg->count; i++) { p = *(epsg->sorted + i); if (p->srid == 4326 || (p->srid >= 32601 && p->srid <= 32766)) { /* skipping WGS84 defs */ continue; } if (def_cnt > 100) { if (out != NULL) { if (pending_footer) { do_footer (out, 1); pending_footer = 0; } /* closing the output file */ fclose (out); out = NULL; } /* opening the next output file */ out = open_file (sect); if (out == NULL) return; /* function header */ do_header (out, 1); fprintf (out, "SPATIALITE_PRIVATE void\n"); fprintf (out, "initialize_epsg_%02d (int filter, struct epsg_defs **first, struct epsg_defs **last)\n", sect++); fprintf (out, "{\n/* initializing the EPSG defs list */\n"); fprintf (out, " struct epsg_defs *p;\n"); def_cnt = 0; } pending_footer = 1; /* inserting the main EPSG def */ def_cnt++; fprintf (out, " p = add_epsg_def (filter, first, last, %d, \"epsg\", %d,\n", p->srid, p->srid); fprintf (out, " \"%s\");\n", p->ref_sys_name); /* inserting the proj4text string */ n = 0; in = p->proj4text; while (*in != '\0') { fprintf (out, " add_proj4text (p, %d,\n \"", n); out_cnt = 0; while (*in != '\0') { if (*in == '"') { fprintf (out, "\\%c", *in++); out_cnt += 2; } else { fprintf (out, "%c", *in++); out_cnt++; } if (out_cnt >= 56) break; } fprintf (out, "\");\n"); n++; } if (p->srs_wkt != NULL) { /* inserting the srs_wkt string */ n = 0; n = 0; in = p->srs_wkt; while (*in != '\0') { fprintf (out, " add_srs_wkt (p, %d,\n \"", n); out_cnt = 0; while (*in != '\0') { if (*in == '"') { fprintf (out, "\\%c", *in++); out_cnt += 2; } else { fprintf (out, "%c", *in++); out_cnt++; } if (out_cnt >= 56) break; } fprintf (out, "\");\n"); n++; } } else fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); } if (out != NULL) { /* closing the output file */ if (pending_footer) { do_footer (out, 1); pending_footer = 0; } /* closing the output file */ fclose (out); out = NULL; } def_cnt = 1000; pending_footer = 0; for (i = 0; i < epsg->count; i++) { p = *(epsg->sorted + i); if (p->srid == 4326 || (p->srid >= 32601 && p->srid <= 32766)) ; else { /* skipping not-WGS84 defs */ continue; } if (def_cnt > 100) { if (out != NULL) { if (pending_footer) { do_footer (out, 0); pending_footer = 0; } /* closing the output file */ fclose (out); out = NULL; } /* opening the next output file */ out = open_file_wgs84 (wgs84_sect); if (out == NULL) return; /* function header */ do_header (out, 0); fprintf (out, "SPATIALITE_PRIVATE void\n"); fprintf (out, "initialize_epsg_wgs84_%02d (int filter, struct epsg_defs **first, struct epsg_defs **last)\n", wgs84_sect++); fprintf (out, "{\n/* initializing the EPSG defs list [WGS84] */\n"); fprintf (out, " struct epsg_defs *p;\n"); def_cnt = 0; } pending_footer = 1; /* inserting the main EPSG def */ def_cnt++; fprintf (out, " p = add_epsg_def (filter, first, last, %d, \"epsg\", %d,\n", p->srid, p->srid); fprintf (out, " \"%s\");\n", p->ref_sys_name); /* inserting the proj4text string */ n = 0; in = p->proj4text; while (*in != '\0') { fprintf (out, " add_proj4text (p, %d,\n \"", n); out_cnt = 0; while (*in != '\0') { if (*in == '"') { fprintf (out, "\\%c", *in++); out_cnt += 2; } else { fprintf (out, "%c", *in++); out_cnt++; } if (out_cnt >= 56) break; } fprintf (out, "\");\n"); n++; } if (p->srs_wkt != NULL) { /* inserting the srs_wkt string */ n = 0; in = p->srs_wkt; while (*in != '\0') { fprintf (out, " add_srs_wkt (p, %d,\n \"", n); out_cnt = 0; while (*in != '\0') { if (*in == '"') { fprintf (out, "\\%c", *in++); out_cnt += 2; } else { fprintf (out, "%c", *in++); out_cnt++; } if (out_cnt >= 56) break; } fprintf (out, "\");\n"); n++; } } else fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); } if (out != NULL) { /* closing the output file */ if (pending_footer) { do_footer (out, 0); pending_footer = 0; } /* closing the output file */ fclose (out); out = NULL; } /* opening the "prussian" output file */ out = open_file3 (); if (out == NULL) return; /* function header */ do_header (out, 1); do_prussian (out); /* function footer */ do_footer (out, 1); /* closing the "prussian" output file */ fclose (out); out = NULL; /* opening the "extra" output file */ out = open_file2 (); if (out == NULL) return; /* function header */ do_header (out, 0); fprintf (out, "/* declaring prototypes */\n"); for (i = 0; i < sect; i++) fprintf (out, "SPATIALITE_PRIVATE void initialize_epsg_%02d (\n\tint filter, struct epsg_defs **first, struct epsg_defs **last);\n", i); for (i = 0; i < wgs84_sect; i++) fprintf (out, "SPATIALITE_PRIVATE void initialize_epsg_wgs84_%02d (\n\tint filter, struct epsg_defs **first, struct epsg_defs **last);\n", i); fprintf (out, "SPATIALITE_PRIVATE void initialize_epsg_prussian (\n\tint filter, struct epsg_defs **first, struct epsg_defs **last);\n"); fprintf (out, "SPATIALITE_PRIVATE void initialize_epsg_extra (\n\tint filter, struct epsg_defs **first, struct epsg_defs **last);\n\n"); fprintf (out, "SPATIALITE_PRIVATE void\n"); fprintf (out, "initialize_epsg_extra (int filter, struct epsg_defs **first, struct epsg_defs **last)\n\n"); fprintf (out, "{\n/* initializing the EPSG defs list [EXTRA] */\n"); fprintf (out, " struct epsg_defs *p;\n"); fprintf (out, " p = add_epsg_def (filter, first, last, 40000, \"gfoss.it\", 1,\n"); fprintf (out, " \"Italy mainland zone 1 GB Roma40\");\n"); fprintf (out, " add_proj4text (p, 0,\n"); fprintf (out, " \"+proj=tmerc+lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_\");\n"); fprintf (out, " add_proj4text (p, 1,\n"); fprintf (out, " \"0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.97\");\n"); fprintf (out, " add_proj4text (p, 2, \"1,-2.917,0.714,-11.68 +no_defs\");\n"); fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); fprintf (out, " p = add_epsg_def (filter, first, last, 40001, \"gfoss.it\", 2,\n"); fprintf (out, " \"Italy mainland zone 2 GB Roma40\");\n"); fprintf (out, " add_proj4text (p, 0,\n"); fprintf (out, " \"+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y\");\n"); fprintf (out, " add_proj4text (p, 1,\n"); fprintf (out, " \"_0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.9\");\n"); fprintf (out, " add_proj4text (p, 2, \"71,-2.917,0.714,-11.68 +no_defs\");\n"); fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); fprintf (out, " p = add_epsg_def (filter, first, last, 40002, \"gfoss.it\", 3,\n"); fprintf (out, " \"Italy Sardinia GB Roma40\");\n"); fprintf (out, " add_proj4text (p, 0,\n"); fprintf (out, " \"+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y\");\n"); fprintf (out, " add_proj4text (p, 1,\n"); fprintf (out, " \"_0=0 +ellps=intl +units=m +towgs84=-168.6,-34.0,38.6,-0.\");\n"); fprintf (out, " add_proj4text (p, 2, \"374,-0.679,-1.379,-9.48 +no_defs\");\n"); fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); fprintf (out, " p = add_epsg_def (filter, first, last, 40003, \"gfoss.it\", 4,\n"); fprintf (out, " \"Italy Sicily GB Roma40\");\n"); fprintf (out, " add_proj4text (p, 0,\n"); fprintf (out, " \"+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y\");\n"); fprintf (out, " add_proj4text (p, 1,\n"); fprintf (out, " \"_0=0 +ellps=intl +units=m +towgs84=-50.2,-50.4,84.8,-0.6\");\n"); fprintf (out, " add_proj4text (p, 2, \"90,-2.012,0.459,-28.08 +no_defs\");\n"); fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); /* function footer */ do_footer (out, 0); /* inserting the pilot function */ fprintf (out, "SPATIALITE_PRIVATE void\n"); fprintf (out, "initialize_epsg (int filter, struct epsg_defs **first, struct epsg_defs **last)\n"); fprintf (out, "{\n/* initializing the EPSG defs list */\n"); fprintf (out, " struct epsg_defs *p;\n "); fprintf (out, "/* initializing the EPSG UNKNOWN def [-1] */\n"); fprintf (out, " p = add_epsg_def (filter, first, last, -1, \"NONE\", -1, \"Undefined - Cartesian\");\n"); fprintf (out, " add_proj4text (p, 0, \"\");\n"); fprintf (out, " add_srs_wkt (p, 0, \"\");\n"); fprintf (out, " p = add_epsg_def (filter, first, last, 0, \"NONE\", 0, \"Undefined - Geographic Long/Lat\");\n"); fprintf (out, " add_proj4text (p, 0, \"\");\n"); fprintf (out, " add_srs_wkt (p, 0, \"\");\n\n"); fprintf (out, " if (filter != GAIA_EPSG_WGS84_ONLY)\n {\n"); fprintf (out, "#ifndef OMIT_EPSG /* full EPSG initialization enabled */\n"); for (i = 0; i < sect; i++) fprintf (out, " initialize_epsg_%02d (filter, first, last);\n", i); fprintf (out, " initialize_epsg_prussian (filter, first, last);\n"); fprintf (out, " initialize_epsg_extra (filter, first, last);\n"); fprintf (out, "#endif /* full EPSG initialization enabled/disabled */\n"); fprintf (out, " }\n"); for (i = 0; i < wgs84_sect; i++) fprintf (out, " initialize_epsg_wgs84_%02d (filter, first, last);\n", i); fprintf (out, "}\n"); /* closing the "extra" output file */ fclose (out); out = NULL; } int main (int argc, char *argv[]) { /* / / Please note: no args are supported !!! / / we'll expect to find two input files respectively named: / - epsg / - wkt / / the C code will be generated into: epsg_inlined.c / */ FILE *fl_epsg = NULL; FILE *fl_wkt = NULL; FILE *fl_out = NULL; struct epsg_dict epsg; /* initializing the EPSG dictionary */ epsg.first = NULL; epsg.last = NULL; epsg.sorted = NULL; epsg.count = 0; /* opening the EPSG input file */ fl_epsg = fopen ("epsg", "rb"); if (fl_epsg == NULL) { fprintf (stderr, "ERROR: unable to open the \"epsg\" input file\n"); goto stop; } /* opening the WKT input file */ fl_wkt = fopen ("wkt", "rb"); if (fl_wkt == NULL) { fprintf (stderr, "ERROR: unable to open the \"wkt\" input file\n"); goto stop; } if (!parse_epsg (fl_epsg, &epsg)) { fprintf (stderr, "ERROR: malformed EPSG input file\n"); goto stop; } if (!parse_wkt (fl_wkt, &epsg)) { fprintf (stderr, "ERROR: malformed WKT input file\n"); goto stop; } if (!sort_epsg (&epsg)) { fprintf (stderr, "ERROR: unable to sort EPSG entries\n"); goto stop; } output_c_code (fl_out, &epsg); stop: free_epsg (&epsg); if (fl_epsg) fclose (fl_epsg); if (fl_wkt) fclose (fl_wkt); if (fl_out) fclose (fl_out); return 0; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_update/README-obsolete.txt������������������������������������0000664�0001750�0001750�00000003633�12544707704�021541� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������**************************************************************************** *** *** WARNING WARNING WARNING WARNING WARNING *** *** this procedure was discontinued since 4.2.1 and is now obsolete *** the currecnt procedure is documented in README.txt *** **************************************************************************** HOW-TO: UPDATE spatial_ref_sys SELF-INITIALIZING C CODE ============================================================================ When updating is required: each time a new GDAL version will be released. ============================================================================ STEP #1: getting the basic EPSG files -------- - download the latest GDAL sources - build and install be sure to set: ./configure --with-python=yes # cd {gdal-sources}/data # rm epsg # epsg_tr.py --config OVERRIDE_PROJ_DATUM_WITH_TOWGS84 FALSE \ # -proj4 -skip -list gcs.csv > epsg # epsg_tr.py --config OVERRIDE_PROJ_DATUM_WITH_TOWGS84 FALSE \ # -proj4 -skip -list pcs.csv >> epsg # rm wkt # epsg_tr.py -wkt -skip -list gcs.csv > wkt # epsg_tr.py -wkt -skip -list pcs.csv >> wkt all right: these "epsg" and "wkt" files will be used as "seeds" into the next step: - copy both "epsg" and "wkt" files into: {libspatialite-source}/src/srcinit/epsg_update STEP #2: compiling the C generator tool -------- # cd {libspatialite-source}/src/srsinit/epsg_update Linux: # gcc auto_epsg.c -o auto_epsg Windows [MinGW]: # gcc auto_epsg.c -o auto_epsg.exe STEP #3: generating the C code [inlined EPSG dataset] -------- # rm epsg_inlined_*.c # ./auto_epsg at the end of this step several "epsg_inlined_*.c" files will be generated STEP #4: final setup -------- - copy the generated file into the parent dir: rm ../epsg_inlined*.c cp epsg_inlined*.c .. - be sure to update as required the repository (ADD/DEL) - be sure to update as required Makefile.am - and finally commit into the repository �����������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_update/Makefile.am��������������������������������������������0000664�0001750�0001750�00000000136�12544707704�020260� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ EXTRA_DIST = README.txt README-obsolete.txt auto_epsg.c \ epsg_from_gdal.c auto_epsg_ext.c ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_update/epsg_from_gdal.c���������������������������������������0000664�0001750�0001750�00000012002�12544707704�021333� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* / epsg_from_gdal / / a tool autogenerating C code for SpatiaLite / [spatial_ref_sys self-initialization routines] / / version 1.0, 2014 December 2014 / / Author: Sandro Furieri a.furieri@lqt.it / / Copyright (C) 2014 Alessandro Furieri / / This program is free software: you can redistribute it and/or modify / it under the terms of the GNU General Public License as published by / the Free Software Foundation, either version 3 of the License, or / (at your option) any later version. / / This program is distributed in the hope that it will be useful, / but WITHOUT ANY WARRANTY; without even the implied warranty of / MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the / GNU General Public License for more details. / / You should have received a copy of the GNU General Public License / along with this program. If not, see <http://www.gnu.org/licenses/>. / */ #include <stdlib.h> #include <stdio.h> #include <ogr_srs_api.h> static void print_wkt (int srid) { OGRSpatialReferenceH handle; handle = OSRNewSpatialReference (NULL); if (handle == NULL) ; else { OGRErr err; char urn[1024]; char *proj4 = NULL; char *wkt = NULL; const char *name = NULL; const char *unit = NULL; const char *axis_1 = NULL; const char *axis_2 = NULL; const char *orient_1; const char *orient_2; const char *spheroid = NULL; const char *prime_meridian = NULL; const char *datum = NULL; const char *projection = NULL; OGRAxisOrientation orientation_1 = OAO_Other; OGRAxisOrientation orientation_2 = OAO_Other; int flipped_axes = 0; int is_geographic = 0; sprintf (urn, "urn:ogc:def:crs:EPSG::%d", srid); err = OSRSetFromUserInput (handle, urn); if (err == 0) { if (OSRIsGeocentric (handle)) goto skip; if (OSREPSGTreatsAsLatLong (handle)) flipped_axes = 1; if (OSREPSGTreatsAsNorthingEasting (handle)) flipped_axes = 1; if (OSRIsGeographic (handle)) is_geographic = 1; OSRExportToProj4 (handle, &proj4); OSRExportToWkt (handle, &wkt); name = OSRGetAttrValue (handle, "PROJCS", 0); if (name == NULL) name = OSRGetAttrValue (handle, "GEOGCS", 0); unit = OSRGetAttrValue (handle, "UNIT", 0); spheroid = OSRGetAttrValue (handle, "SPHEROID", 0); prime_meridian = OSRGetAttrValue (handle, "PRIMEM", 0); datum = OSRGetAttrValue (handle, "DATUM", 0); projection = OSRGetAttrValue (handle, "PROJECTION", 0); if (is_geographic) { axis_1 = OSRGetAxis (handle, "GEOGCS", 0, &orientation_1); axis_2 = OSRGetAxis (handle, "GEOGCS", 1, &orientation_2); } else { axis_1 = OSRGetAxis (handle, "PROJCS", 0, &orientation_1); axis_2 = OSRGetAxis (handle, "PROJCS", 1, &orientation_2); } } if (proj4 != NULL || wkt != NULL) { if (strlen (proj4) > 0) { int i; int len = strlen (proj4); for (i = len - 1; i >= 0; i--) { if (*(proj4 + i) == ' ') *(proj4 + i) = '\0'; else break; } if (unit == NULL) unit = "unknown"; if (spheroid == NULL) spheroid = "unknown"; if (prime_meridian == NULL) prime_meridian = "unknown"; if (datum == NULL) datum = "unknown"; if (is_geographic) projection = "none"; else { if (projection == NULL) projection = "unknown"; } if (axis_1 == NULL) { axis_1 = "unknown"; orient_1 = "unknown"; } else { switch (orientation_1) { case OAO_North: orient_1 = "North"; break; case OAO_South: orient_1 = "South"; break; case OAO_East: orient_1 = "East"; break; case OAO_West: orient_1 = "West"; break; case OAO_Up: orient_1 = "Up"; break; case OAO_Down: orient_1 = "Down"; break; default: orient_1 = "unknown"; break; }; } if (axis_2 == NULL) { axis_2 = "unknown"; orient_2 = "unknown"; } else { switch (orientation_2) { case OAO_North: orient_2 = "North"; break; case OAO_South: orient_2 = "South"; break; case OAO_East: orient_2 = "East"; break; case OAO_West: orient_2 = "West"; break; case OAO_Up: orient_2 = "Up"; break; case OAO_Down: orient_2 = "Down"; break; default: orient_2 = "unknown"; break; }; } printf ("%d\t%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", srid, is_geographic, flipped_axes, unit, axis_1, orient_1, axis_2, orient_2, spheroid, prime_meridian, datum, projection, name, proj4, wkt); } } skip: if (proj4 != NULL) OGRFree (proj4); if (wkt != NULL) OGRFree (wkt); OSRRelease (handle); } } int main (void) { int srid; for (srid = 1; srid <= 32766; srid++) print_wkt (srid); return 0; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_18.c��������������������������������������������������0000664�0001750�0001750�00000447063�12544707704�017056� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_18 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 3890, "epsg", 3890, "IGRS / UTM zone 37N", 0, 0, "GRS 1980", "Greenwich", "Iraqi_Geospatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGRS / UTM zone 37N\",GEOGCS[\"IGRS\",DATUM[\"I"); add_srs_wkt (p, 1, "raqi_Geospatial_Reference_System\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1029\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"3889\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",39],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"3890\"]]"); p = add_epsg_def_ex (filter, first, last, 3891, "epsg", 3891, "IGRS / UTM zone 38N", 0, 0, "GRS 1980", "Greenwich", "Iraqi_Geospatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGRS / UTM zone 38N\",GEOGCS[\"IGRS\",DATUM[\"I"); add_srs_wkt (p, 1, "raqi_Geospatial_Reference_System\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1029\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"3889\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",45],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"3891\"]]"); p = add_epsg_def_ex (filter, first, last, 3892, "epsg", 3892, "IGRS / UTM zone 39N", 0, 0, "GRS 1980", "Greenwich", "Iraqi_Geospatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGRS / UTM zone 39N\",GEOGCS[\"IGRS\",DATUM[\"I"); add_srs_wkt (p, 1, "raqi_Geospatial_Reference_System\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1029\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"3889\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",51],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"3892\"]]"); p = add_epsg_def_ex (filter, first, last, 3893, "epsg", 3893, "ED50 / Iraq National Grid", 0, 0, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.02626833333333 +lon_0=46.5 +k=0.99"); add_proj4text (p, 1, "94 +x_0=800000 +y_0=0 +ellps=intl +towgs84=-87,-98,-121,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / Iraq National Grid\",GEOGCS[\"ED50\",DAT"); add_srs_wkt (p, 1, "UM[\"European_Datum_1950\",SPHEROID[\"International 1924"); add_srs_wkt (p, 2, "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87"); add_srs_wkt (p, 3, ",-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",29.02626833333333],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",46.5],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9994],PARAMETER[\"false_easting\",800000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"3893\"]]"); p = add_epsg_def_ex (filter, first, last, 3901, "epsg", 3901, "KKJ / Finland Uniform Coordinate System", 0, 1, "International 1924", "Greenwich", "Kartastokoordinaattijarjestelma_1966", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=3500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=intl +towgs84=-96.062,-82.428,-121.753,4.801,0.34"); add_proj4text (p, 2, "5,-1.376,1.496 +units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"KKJ / Finland Uniform Coordinate System + N60"); add_srs_wkt (p, 1, " height\",PROJCS[\"KKJ / Finland Uniform Coordinate Syst"); add_srs_wkt (p, 2, "em\",GEOGCS[\"KKJ\",DATUM[\"Kartastokoordinaattijarjeste"); add_srs_wkt (p, 3, "lma_1966\",SPHEROID[\"International 1924\",6378388,297,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-96.062,-82.428,-12"); add_srs_wkt (p, 5, "1.753,4.801,0.345,-1.376,1.496],AUTHORITY[\"EPSG\",\"612"); add_srs_wkt (p, 6, "3\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 7, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 9, "EAST],AUTHORITY[\"EPSG\",\"4123\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 10, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",27],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 12, ",1],PARAMETER[\"false_easting\",3500000],PARAMETER[\"fal"); add_srs_wkt (p, 13, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"2393\"]],VERT_CS[\"N60 height\",VERT_DATUM[\"Hel"); add_srs_wkt (p, 16, "sinki 1960\",2005,AUTHORITY[\"EPSG\",\"5116\"]],UNIT[\"m"); add_srs_wkt (p, 17, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],A"); add_srs_wkt (p, 18, "UTHORITY[\"EPSG\",\"5717\"]],AUTHORITY[\"EPSG\",\"3901\""); add_srs_wkt (p, 19, "]]"); p = add_epsg_def_ex (filter, first, last, 3902, "epsg", 3902, "ETRS89 / TM35FIN(N,E)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / TM35FIN(N,E) + N60 height\",PROJCS[\""); add_srs_wkt (p, 1, "ETRS89 / TM35FIN(N,E)\",GEOGCS[\"ETRS89\",DATUM[\"Europe"); add_srs_wkt (p, 2, "an_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 3, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 4, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 9, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 10, "entral_meridian\",27],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"5048\"]],VERT_CS[\"N60 height\",VERT_DAT"); add_srs_wkt (p, 15, "UM[\"Helsinki 1960\",2005,AUTHORITY[\"EPSG\",\"5116\"]],"); add_srs_wkt (p, 16, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up"); add_srs_wkt (p, 17, "\",UP],AUTHORITY[\"EPSG\",\"5717\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 18, "\"3902\"]]"); p = add_epsg_def_ex (filter, first, last, 3903, "epsg", 3903, "ETRS89 / TM35FIN(N,E)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / TM35FIN(N,E) + N2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / TM35FIN(N,E)\",GEOGCS[\"ETRS89\",DATUM[\"Eur"); add_srs_wkt (p, 2, "opean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS"); add_srs_wkt (p, 3, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",27],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 11, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5048\"]],VERT_CS[\"N2000 height\",VE"); add_srs_wkt (p, 15, "RT_DATUM[\"N2000\",2005,AUTHORITY[\"EPSG\",\"1030\"]],UN"); add_srs_wkt (p, 16, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\""); add_srs_wkt (p, 17, ",UP],AUTHORITY[\"EPSG\",\"3900\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 18, "3903\"]]"); p = add_epsg_def_ex (filter, first, last, 3906, "epsg", 3906, "MGI 1901", 1, 1, "Bessel 1841", "Greenwich", "MGI_1901", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=682,-203,480,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"MGI 1901\",DATUM[\"MGI_1901\",SPHEROID[\"Bessel"); add_srs_wkt (p, 1, " 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 2, "4\"]],TOWGS84[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "1031\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 6, "\",EAST],AUTHORITY[\"EPSG\",\"3906\"]]"); p = add_epsg_def_ex (filter, first, last, 3907, "epsg", 3907, "MGI 1901 / Balkans zone 5", 0, 1, "Bessel 1841", "Greenwich", "MGI_1901", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=5500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI 1901 / Balkans zone 5\",GEOGCS[\"MGI 1901\""); add_srs_wkt (p, 1, ",DATUM[\"MGI_1901\",SPHEROID[\"Bessel 1841\",6377397.155"); add_srs_wkt (p, 2, ",299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-"); add_srs_wkt (p, 3, "203,480,0,0,0,0],AUTHORITY[\"EPSG\",\"1031\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"3906\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",15],PARAMETER[\"scale_factor\",0.9999],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",5500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "907\"]]"); p = add_epsg_def_ex (filter, first, last, 3908, "epsg", 3908, "MGI 1901 / Balkans zone 6", 0, 1, "Bessel 1841", "Greenwich", "MGI_1901", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=6500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI 1901 / Balkans zone 6\",GEOGCS[\"MGI 1901\""); add_srs_wkt (p, 1, ",DATUM[\"MGI_1901\",SPHEROID[\"Bessel 1841\",6377397.155"); add_srs_wkt (p, 2, ",299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-"); add_srs_wkt (p, 3, "203,480,0,0,0,0],AUTHORITY[\"EPSG\",\"1031\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"3906\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",18],PARAMETER[\"scale_factor\",0.9999],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",6500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "908\"]]"); p = add_epsg_def_ex (filter, first, last, 3909, "epsg", 3909, "MGI 1901 / Balkans zone 7", 0, 1, "Bessel 1841", "Greenwich", "MGI_1901", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI 1901 / Balkans zone 7\",GEOGCS[\"MGI 1901\""); add_srs_wkt (p, 1, ",DATUM[\"MGI_1901\",SPHEROID[\"Bessel 1841\",6377397.155"); add_srs_wkt (p, 2, ",299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-"); add_srs_wkt (p, 3, "203,480,0,0,0,0],AUTHORITY[\"EPSG\",\"1031\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"3906\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",21],PARAMETER[\"scale_factor\",0.9999],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",7500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "909\"]]"); p = add_epsg_def_ex (filter, first, last, 3910, "epsg", 3910, "MGI 1901 / Balkans zone 8", 0, 1, "Bessel 1841", "Greenwich", "MGI_1901", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=8500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI 1901 / Balkans zone 8\",GEOGCS[\"MGI 1901\""); add_srs_wkt (p, 1, ",DATUM[\"MGI_1901\",SPHEROID[\"Bessel 1841\",6377397.155"); add_srs_wkt (p, 2, ",299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-"); add_srs_wkt (p, 3, "203,480,0,0,0,0],AUTHORITY[\"EPSG\",\"1031\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"3906\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",24],PARAMETER[\"scale_factor\",0.9999],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",8500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "910\"]]"); p = add_epsg_def_ex (filter, first, last, 3911, "epsg", 3911, "MGI 1901 / Slovenia Grid", 0, 1, "Bessel 1841", "Greenwich", "MGI_1901", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI 1901 / Slovenia Grid\",GEOGCS[\"MGI 1901\","); add_srs_wkt (p, 1, "DATUM[\"MGI_1901\",SPHEROID[\"Bessel 1841\",6377397.155,"); add_srs_wkt (p, 2, "299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-2"); add_srs_wkt (p, 3, "03,480,0,0,0,0],AUTHORITY[\"EPSG\",\"1031\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"3906\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",15],PARAMETER[\"scale_factor\",0.9999],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"391"); add_srs_wkt (p, 13, "1\"]]"); p = add_epsg_def_ex (filter, first, last, 3912, "epsg", 3912, "MGI 1901 / Slovene National Grid", 0, 0, "Bessel 1841", "Greenwich", "MGI_1901", "Transverse_Mercator", "metre", "Y", "East", "X", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=-5000000 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI 1901 / Slovene National Grid\",GEOGCS[\"MGI"); add_srs_wkt (p, 1, " 1901\",DATUM[\"MGI_1901\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); add_srs_wkt (p, 3, "4[682,-203,480,0,0,0,0],AUTHORITY[\"EPSG\",\"1031\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"3906\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",15],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"3912\"]]"); p = add_epsg_def_ex (filter, first, last, 3920, "epsg", 3920, "Puerto Rico / UTM zone 20N", 0, 0, "Clarke 1866", "Greenwich", "Puerto_Rico", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=clrk66 +towgs84=11,72,-101,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Puerto Rico / UTM zone 20N\",GEOGCS[\"Puerto Ri"); add_srs_wkt (p, 1, "co\",DATUM[\"Puerto_Rico\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TO"); add_srs_wkt (p, 3, "WGS84[11,72,-101,0,0,0,0],AUTHORITY[\"EPSG\",\"6139\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4139\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",-63],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"3920\"]]"); p = add_epsg_def_ex (filter, first, last, 3942, "epsg", 3942, "RGF93 / CC42", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_Francais_1993", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.25 +lat_2=42.75 +lat_0=42 +lon_0=3 +"); add_proj4text (p, 1, "x_0=1700000 +y_0=1200000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / CC42\",GEOGCS[\"RGF93\",DATUM[\"Reseau_"); add_srs_wkt (p, 1, "Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",41.25],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",42.75],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",42],PARAMETER[\"central_meridian\",3],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",1700000],PARAMETER[\"false_northing\",12"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"39"); add_srs_wkt (p, 14, "42\"]]"); p = add_epsg_def_ex (filter, first, last, 3943, "epsg", 3943, "RGF93 / CC43", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_Francais_1993", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.25 +lat_2=43.75 +lat_0=43 +lon_0=3 +"); add_proj4text (p, 1, "x_0=1700000 +y_0=2200000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / CC43\",GEOGCS[\"RGF93\",DATUM[\"Reseau_"); add_srs_wkt (p, 1, "Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",42.25],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",43.75],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",43],PARAMETER[\"central_meridian\",3],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",1700000],PARAMETER[\"false_northing\",22"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"39"); add_srs_wkt (p, 14, "43\"]]"); p = add_epsg_def_ex (filter, first, last, 3944, "epsg", 3944, "RGF93 / CC44", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_Francais_1993", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.25 +lat_2=44.75 +lat_0=44 +lon_0=3 +"); add_proj4text (p, 1, "x_0=1700000 +y_0=3200000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / CC44\",GEOGCS[\"RGF93\",DATUM[\"Reseau_"); add_srs_wkt (p, 1, "Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",43.25],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",44.75],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",44],PARAMETER[\"central_meridian\",3],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",1700000],PARAMETER[\"false_northing\",32"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"39"); add_srs_wkt (p, 14, "44\"]]"); p = add_epsg_def_ex (filter, first, last, 3945, "epsg", 3945, "RGF93 / CC45", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_Francais_1993", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.25 +lat_2=45.75 +lat_0=45 +lon_0=3 +"); add_proj4text (p, 1, "x_0=1700000 +y_0=4200000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / CC45\",GEOGCS[\"RGF93\",DATUM[\"Reseau_"); add_srs_wkt (p, 1, "Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",44.25],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",45.75],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",45],PARAMETER[\"central_meridian\",3],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",1700000],PARAMETER[\"false_northing\",42"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"39"); add_srs_wkt (p, 14, "45\"]]"); p = add_epsg_def_ex (filter, first, last, 3946, "epsg", 3946, "RGF93 / CC46", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_Francais_1993", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.25 +lat_2=46.75 +lat_0=46 +lon_0=3 +"); add_proj4text (p, 1, "x_0=1700000 +y_0=5200000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / CC46\",GEOGCS[\"RGF93\",DATUM[\"Reseau_"); add_srs_wkt (p, 1, "Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",45.25],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",46.75],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",46],PARAMETER[\"central_meridian\",3],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",1700000],PARAMETER[\"false_northing\",52"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"39"); add_srs_wkt (p, 14, "46\"]]"); p = add_epsg_def_ex (filter, first, last, 3947, "epsg", 3947, "RGF93 / CC47", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_Francais_1993", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.25 +lat_2=47.75 +lat_0=47 +lon_0=3 +"); add_proj4text (p, 1, "x_0=1700000 +y_0=6200000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / CC47\",GEOGCS[\"RGF93\",DATUM[\"Reseau_"); add_srs_wkt (p, 1, "Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",46.25],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",47.75],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",47],PARAMETER[\"central_meridian\",3],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",1700000],PARAMETER[\"false_northing\",62"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"39"); add_srs_wkt (p, 14, "47\"]]"); p = add_epsg_def_ex (filter, first, last, 3948, "epsg", 3948, "RGF93 / CC48", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_Francais_1993", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.25 +lat_2=48.75 +lat_0=48 +lon_0=3 +"); add_proj4text (p, 1, "x_0=1700000 +y_0=7200000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / CC48\",GEOGCS[\"RGF93\",DATUM[\"Reseau_"); add_srs_wkt (p, 1, "Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",47.25],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",48.75],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",48],PARAMETER[\"central_meridian\",3],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",1700000],PARAMETER[\"false_northing\",72"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"39"); add_srs_wkt (p, 14, "48\"]]"); p = add_epsg_def_ex (filter, first, last, 3949, "epsg", 3949, "RGF93 / CC49", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_Francais_1993", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.25 +lat_2=49.75 +lat_0=49 +lon_0=3 +"); add_proj4text (p, 1, "x_0=1700000 +y_0=8200000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / CC49\",GEOGCS[\"RGF93\",DATUM[\"Reseau_"); add_srs_wkt (p, 1, "Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",48.25],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",49.75],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",49],PARAMETER[\"central_meridian\",3],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",1700000],PARAMETER[\"false_northing\",82"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"39"); add_srs_wkt (p, 14, "49\"]]"); p = add_epsg_def_ex (filter, first, last, 3950, "epsg", 3950, "RGF93 / CC50", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_Francais_1993", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.25 +lat_2=50.75 +lat_0=50 +lon_0=3 +"); add_proj4text (p, 1, "x_0=1700000 +y_0=9200000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / CC50\",GEOGCS[\"RGF93\",DATUM[\"Reseau_"); add_srs_wkt (p, 1, "Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",49.25],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",50.75],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",50],PARAMETER[\"central_meridian\",3],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",1700000],PARAMETER[\"false_northing\",92"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"39"); add_srs_wkt (p, 14, "50\"]]"); p = add_epsg_def_ex (filter, first, last, 3968, "epsg", 3968, "NAD83 / Virginia Lambert", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37 +lat_2=39.5 +lat_0=36 +lon_0=-79.5 +"); add_proj4text (p, 1, "x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Virginia Lambert\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",37],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",39.5],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 10, "rigin\",36],PARAMETER[\"central_meridian\",-79.5],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",0],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 13, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3968\"]]"); p = add_epsg_def_ex (filter, first, last, 3969, "epsg", 3969, "NAD83(HARN) / Virginia Lambert", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37 +lat_2=39.5 +lat_0=36 +lon_0=-79.5 +"); add_proj4text (p, 1, "x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Virginia Lambert\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",37],PARAMETER[\"standard_parallel_2\",39.5],P"); add_srs_wkt (p, 10, "ARAMETER[\"latitude_of_origin\",36],PARAMETER[\"central_"); add_srs_wkt (p, 11, "meridian\",-79.5],PARAMETER[\"false_easting\",0],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"3969\"]]"); p = add_epsg_def_ex (filter, first, last, 3970, "epsg", 3970, "NAD83(NSRS2007) / Virginia Lambert", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37 +lat_2=39.5 +lat_0=36 +lon_0=-79.5 +"); add_proj4text (p, 1, "x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Virginia Lambert\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 9, "ER[\"standard_parallel_1\",37],PARAMETER[\"standard_para"); add_srs_wkt (p, 10, "llel_2\",39.5],PARAMETER[\"latitude_of_origin\",36],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-79.5],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 13, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3970\"]]"); p = add_epsg_def_ex (filter, first, last, 3973, "epsg", 3973, "WGS 84 / NSIDC EASE-Grid North", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Azimuthal_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84"); add_proj4text (p, 1, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / NSIDC EASE-Grid North\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Azimuthal_Equal_Area\"],PARAMETER[\"latitude_of_c"); add_srs_wkt (p, 8, "enter\",90],PARAMETER[\"longitude_of_center\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 10, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 11, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3973\"]]"); p = add_epsg_def_ex (filter, first, last, 3974, "epsg", 3974, "WGS 84 / NSIDC EASE-Grid South", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Azimuthal_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=laea +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS8"); add_proj4text (p, 1, "4 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / NSIDC EASE-Grid South\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Azimuthal_Equal_Area\"],PARAMETER[\"latitude_of_c"); add_srs_wkt (p, 8, "enter\",-90],PARAMETER[\"longitude_of_center\",0],PARAME"); add_srs_wkt (p, 9, "TER[\"false_easting\",0],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 10, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 11, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3974\"]]"); p = add_epsg_def_ex (filter, first, last, 3975, "epsg", 3975, "WGS 84 / NSIDC EASE-Grid Global", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Cylindrical_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +datum=WGS84"); add_proj4text (p, 1, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / NSIDC EASE-Grid Global\",GEOGCS[\"WGS "); add_srs_wkt (p, 1, "84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298."); add_srs_wkt (p, 2, "257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Cylindrical_Equal_Area\"],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 8, "1\",30],PARAMETER[\"central_meridian\",0],PARAMETER[\"fa"); add_srs_wkt (p, 9, "lse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 10, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 11, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3975\"]]"); p = add_epsg_def_ex (filter, first, last, 3976, "epsg", 3976, "WGS 84 / NSIDC Sea Ice Polar Stereographic South", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-70 +lon_0=0 +k=1 +x_0=0 "); add_proj4text (p, 1, "+y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / NSIDC Sea Ice Polar Stereographic Sout"); add_srs_wkt (p, 1, "h\",GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS "); add_srs_wkt (p, 2, "84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Polar_Stereographic\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",-70],PARAMETER[\"central_meridian\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"3976\"]]"); p = add_epsg_def_ex (filter, first, last, 3978, "epsg", 3978, "NAD83 / Canada Atlas Lambert", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=77 +lat_0=49 +lon_0=-95 +x_0="); add_proj4text (p, 1, "0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Canada Atlas Lambert\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",49],PARA"); add_srs_wkt (p, 9, "METER[\"standard_parallel_2\",77],PARAMETER[\"latitude_o"); add_srs_wkt (p, 10, "f_origin\",49],PARAMETER[\"central_meridian\",-95],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",0],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 12, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"3978\"]]"); p = add_epsg_def_ex (filter, first, last, 3979, "epsg", 3979, "NAD83(CSRS) / Canada Atlas Lambert", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=77 +lat_0=49 +lon_0=-95 +x_0="); add_proj4text (p, 1, "0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Canada Atlas Lambert\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",49],PARAMETER[\"standard_parallel_2\",7"); add_srs_wkt (p, 10, "7],PARAMETER[\"latitude_of_origin\",49],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-95],PARAMETER[\"false_easting\",0],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"3979\"]]"); p = add_epsg_def_ex (filter, first, last, 3985, "epsg", 3985, "Katanga 1955 / Katanga Lambert (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "Katanga_1955", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-6.5 +lat_2=-11.5 +lat_0=9 +lon_0=26 +x"); add_proj4text (p, 1, "_0=500000 +y_0=500000 +ellps=clrk66 +towgs84=-103.746,-9"); add_proj4text (p, 2, ".614,-255.95,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Katanga 1955 / Katanga Lambert (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6695\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4695"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 9, "ER[\"standard_parallel_1\",-6.5],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",-11.5],PARAMETER[\"latitude_of_origin\",9],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",26],PARAMETER[\"false_easti"); add_srs_wkt (p, 12, "ng\",500000],PARAMETER[\"false_northing\",500000],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3985\"]]"); p = add_epsg_def_ex (filter, first, last, 3986, "epsg", 3986, "Katanga 1955 / Katanga Gauss zone A", 0, 0, "Clarke 1866", "Greenwich", "Katanga_1955", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-9 +lon_0=30 +k=1 +x_0=200000 +y_0=50"); add_proj4text (p, 1, "0000 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Katanga 1955 / Katanga Gauss zone A\",GEOGCS[\""); add_srs_wkt (p, 1, "Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6695\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4695\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",-9],PARAMETER[\"central_meridian\",30],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",2000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",500000],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3986\"]]"); p = add_epsg_def_ex (filter, first, last, 3987, "epsg", 3987, "Katanga 1955 / Katanga Gauss zone B", 0, 0, "Clarke 1866", "Greenwich", "Katanga_1955", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-9 +lon_0=28 +k=1 +x_0=200000 +y_0=50"); add_proj4text (p, 1, "0000 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Katanga 1955 / Katanga Gauss zone B\",GEOGCS[\""); add_srs_wkt (p, 1, "Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6695\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4695\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",-9],PARAMETER[\"central_meridian\",28],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",2000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",500000],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3987\"]]"); p = add_epsg_def_ex (filter, first, last, 3988, "epsg", 3988, "Katanga 1955 / Katanga Gauss zone C", 0, 0, "Clarke 1866", "Greenwich", "Katanga_1955", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-9 +lon_0=26 +k=1 +x_0=200000 +y_0=50"); add_proj4text (p, 1, "0000 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Katanga 1955 / Katanga Gauss zone C\",GEOGCS[\""); add_srs_wkt (p, 1, "Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6695\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4695\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",-9],PARAMETER[\"central_meridian\",26],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",2000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",500000],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3988\"]]"); p = add_epsg_def_ex (filter, first, last, 3989, "epsg", 3989, "Katanga 1955 / Katanga Gauss zone D", 0, 0, "Clarke 1866", "Greenwich", "Katanga_1955", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-9 +lon_0=24 +k=1 +x_0=200000 +y_0=50"); add_proj4text (p, 1, "0000 +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Katanga 1955 / Katanga Gauss zone D\",GEOGCS[\""); add_srs_wkt (p, 1, "Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6695\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4695\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",-9],PARAMETER[\"central_meridian\",24],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",2000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",500000],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3989\"]]"); p = add_epsg_def_ex (filter, first, last, 3991, "epsg", 3991, "Puerto Rico State Plane CS of 1927", 0, 0, "Clarke 1866", "Greenwich", "Puerto_Rico", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333"); add_proj4text (p, 1, "333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +"); add_proj4text (p, 2, "x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=11,7"); add_proj4text (p, 3, "2,-101,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Puerto Rico State Plane CS of 1927\",GEOGCS[\"P"); add_srs_wkt (p, 1, "uerto Rico\",DATUM[\"Puerto_Rico\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "139\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4139\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 8, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 9, "\",18.43333333333333],PARAMETER[\"standard_parallel_2\","); add_srs_wkt (p, 10, "18.03333333333333],PARAMETER[\"latitude_of_origin\",17.8"); add_srs_wkt (p, 11, "3333333333333],PARAMETER[\"central_meridian\",-66.433333"); add_srs_wkt (p, 12, "33333334],PARAMETER[\"false_easting\",500000],PARAMETER["); add_srs_wkt (p, 13, "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 14, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 15, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3991\"]]"); p = add_epsg_def_ex (filter, first, last, 3992, "epsg", 3992, "Puerto Rico / St. Croix", 0, 0, "Clarke 1866", "Greenwich", "Puerto_Rico", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333"); add_proj4text (p, 1, "333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +"); add_proj4text (p, 2, "x_0=152400.3048006096 +y_0=30480.06096012192 +ellps=clrk"); add_proj4text (p, 3, "66 +towgs84=11,72,-101,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Puerto Rico / St. Croix\",GEOGCS[\"Puerto Rico\""); add_srs_wkt (p, 1, ",DATUM[\"Puerto_Rico\",SPHEROID[\"Clarke 1866\",6378206."); add_srs_wkt (p, 2, "4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS8"); add_srs_wkt (p, 3, "4[11,72,-101,0,0,0,0],AUTHORITY[\"EPSG\",\"6139\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4139\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",18.43333"); add_srs_wkt (p, 9, "333333333],PARAMETER[\"standard_parallel_2\",18.03333333"); add_srs_wkt (p, 10, "333333],PARAMETER[\"latitude_of_origin\",17.833333333333"); add_srs_wkt (p, 11, "33],PARAMETER[\"central_meridian\",-66.43333333333334],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 13, "thing\",100000],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 14, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 15, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3992\"]]"); p = add_epsg_def_ex (filter, first, last, 3994, "epsg", 3994, "WGS 84 / Mercator 41", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Mercator_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=merc +lon_0=100 +lat_ts=-41 +x_0=0 +y_0=0 +datum=W"); add_proj4text (p, 1, "GS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Mercator 41\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Mercator_2"); add_srs_wkt (p, 7, "SP\"],PARAMETER[\"standard_parallel_1\",-41],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",100],PARAMETER[\"false_easting\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 10, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"3994\"]]"); p = add_epsg_def_ex (filter, first, last, 3995, "epsg", 3995, "WGS 84 / Arctic Polar Stereographic", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=90 +lat_ts=71 +lon_0=0 +k=1 +x_0=0 +y"); add_proj4text (p, 1, "_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Arctic Polar Stereographic\",GEOGCS[\""); add_srs_wkt (p, 1, "WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,"); add_srs_wkt (p, 2, "298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Polar_Stereographic\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 8, "in\",71],PARAMETER[\"central_meridian\",0],PARAMETER[\"s"); add_srs_wkt (p, 9, "cale_factor\",1],PARAMETER[\"false_easting\",0],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"3995\"]]"); p = add_epsg_def_ex (filter, first, last, 3996, "epsg", 3996, "WGS 84 / IBCAO Polar Stereographic", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=90 +lat_ts=75 +lon_0=0 +k=1 +x_0=0 +y"); add_proj4text (p, 1, "_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / IBCAO Polar Stereographic\",GEOGCS[\"W"); add_srs_wkt (p, 1, "GS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,2"); add_srs_wkt (p, 2, "98.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 6, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Polar_Stereographic\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",75],PARAMETER[\"central_meridian\",0],PARAMETER[\"sc"); add_srs_wkt (p, 9, "ale_factor\",1],PARAMETER[\"false_easting\",0],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"3996\"]]"); p = add_epsg_def_ex (filter, first, last, 3997, "epsg", 3997, "WGS 84 / Dubai Local TM", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=55.33333333333334 +k=1 +x_0="); add_proj4text (p, 1, "500000 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Dubai Local TM\",GEOGCS[\"WGS 84\",DAT"); add_srs_wkt (p, 1, "UM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.25722356"); add_srs_wkt (p, 2, "3,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"632"); add_srs_wkt (p, 3, "6\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",55.33333333333334],PARAMETER["); add_srs_wkt (p, 9, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 12, "thing\",NORTH],AUTHORITY[\"EPSG\",\"3997\"]]"); p = add_epsg_def_ex (filter, first, last, 4001, "epsg", 4001, "Unknown datum based upon the Airy 1830 ellipsoid", 1, 1, "Airy 1830", "Greenwich", "Not_specified_based_on_Airy_1830_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=airy +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Airy 1830 ellipsoi"); add_srs_wkt (p, 1, "d\",DATUM[\"Not_specified_based_on_Airy_1830_ellipsoid\""); add_srs_wkt (p, 2, ",SPHEROID[\"Airy 1830\",6377563.396,299.3249646,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7001\"]],AUTHORITY[\"EPSG\",\"6001\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4001\"]]"); p = add_epsg_def_ex (filter, first, last, 4002, "epsg", 4002, "Unknown datum based upon the Airy Modified 1849 ellipsoid", 1, 1, "Airy Modified 1849", "Greenwich", "Not_specified_based_on_Airy_Modified_1849_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=mod_airy +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Airy Modified 1849"); add_srs_wkt (p, 1, " ellipsoid\",DATUM[\"Not_specified_based_on_Airy_Modifie"); add_srs_wkt (p, 2, "d_1849_ellipsoid\",SPHEROID[\"Airy Modified 1849\",63773"); add_srs_wkt (p, 3, "40.189,299.3249646,AUTHORITY[\"EPSG\",\"7002\"]],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6002\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4002\"]]"); p = add_epsg_def_ex (filter, first, last, 4003, "epsg", 4003, "Unknown datum based upon the Australian National Spheroid", 1, 1, "Australian National Spheroid", "Greenwich", "Not_specified_based_on_Australian_National_Spheroid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=aust_SA +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Australian Nationa"); add_srs_wkt (p, 1, "l Spheroid\",DATUM[\"Not_specified_based_on_Australian_N"); add_srs_wkt (p, 2, "ational_Spheroid\",SPHEROID[\"Australian National Sphero"); add_srs_wkt (p, 3, "id\",6378160,298.25,AUTHORITY[\"EPSG\",\"7003\"]],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6003\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4003\"]]"); p = add_epsg_def_ex (filter, first, last, 4004, "epsg", 4004, "Unknown datum based upon the Bessel 1841 ellipsoid", 1, 1, "Bessel 1841", "Greenwich", "Not_specified_based_on_Bessel_1841_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Bessel 1841 ellips"); add_srs_wkt (p, 1, "oid\",DATUM[\"Not_specified_based_on_Bessel_1841_ellipso"); add_srs_wkt (p, 2, "id\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6004\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4004\"]]"); p = add_epsg_def_ex (filter, first, last, 4005, "epsg", 4005, "Unknown datum based upon the Bessel Modified ellipsoid", 1, 1, "Bessel Modified", "Greenwich", "Not_specified_based_on_Bessel_Modified_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377492.018 +b=6356173.508712696 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Bessel Modified el"); add_srs_wkt (p, 1, "lipsoid\",DATUM[\"Not_specified_based_on_Bessel_Modified"); add_srs_wkt (p, 2, "_ellipsoid\",SPHEROID[\"Bessel Modified\",6377492.018,29"); add_srs_wkt (p, 3, "9.1528128,AUTHORITY[\"EPSG\",\"7005\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6005\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4005\"]]"); p = add_epsg_def_ex (filter, first, last, 4006, "epsg", 4006, "Unknown datum based upon the Bessel Namibia ellipsoid", 1, 1, "Bessel Namibia (GLM)", "Greenwich", "Not_specified_based_on_Bessel_Namibia_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bess_nam +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Bessel Namibia ell"); add_srs_wkt (p, 1, "ipsoid\",DATUM[\"Not_specified_based_on_Bessel_Namibia_e"); add_srs_wkt (p, 2, "llipsoid\",SPHEROID[\"Bessel Namibia (GLM)\",6377483.865"); add_srs_wkt (p, 3, "280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6006\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4006\"]]"); p = add_epsg_def_ex (filter, first, last, 4007, "epsg", 4007, "Unknown datum based upon the Clarke 1858 ellipsoid", 1, 1, "Clarke 1858", "Greenwich", "Not_specified_based_on_Clarke_1858_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Clarke 1858 ellips"); add_srs_wkt (p, 1, "oid\",DATUM[\"Not_specified_based_on_Clarke_1858_ellipso"); add_srs_wkt (p, 2, "id\",SPHEROID[\"Clarke 1858\",6378293.645208759,294.2606"); add_srs_wkt (p, 3, "763692606,AUTHORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6007\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4007\"]]"); p = add_epsg_def_ex (filter, first, last, 4008, "epsg", 4008, "Unknown datum based upon the Clarke 1866 ellipsoid", 1, 1, "Clarke 1866", "Greenwich", "Not_specified_based_on_Clarke_1866_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Clarke 1866 ellips"); add_srs_wkt (p, 1, "oid\",DATUM[\"Not_specified_based_on_Clarke_1866_ellipso"); add_srs_wkt (p, 2, "id\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213898"); add_srs_wkt (p, 3, "2,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"600"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4008\"]]"); p = add_epsg_def_ex (filter, first, last, 4009, "epsg", 4009, "Unknown datum based upon the Clarke 1866 Michigan ellipsoid", 1, 1, "Clarke 1866 Michigan", "Greenwich", "Not_specified_based_on_Clarke_1866_Michigan_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378450.047548896 +b=6356826.621488444 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Clarke 1866 Michig"); add_srs_wkt (p, 1, "an ellipsoid\",DATUM[\"Not_specified_based_on_Clarke_186"); add_srs_wkt (p, 2, "6_Michigan_ellipsoid\",SPHEROID[\"Clarke 1866 Michigan\""); add_srs_wkt (p, 3, ",6378450.047548896,294.9786971646772,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"7009\"]],AUTHORITY[\"EPSG\",\"6009\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4009\"]]"); p = add_epsg_def_ex (filter, first, last, 4010, "epsg", 4010, "Unknown datum based upon the Clarke 1880 (Benoit) ellipsoid", 1, 1, "Clarke 1880 (Benoit)", "Greenwich", "Not_specified_based_on_Clarke_1880_Benoit_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378300.789 +b=6356566.435 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Clarke 1880 (Benoi"); add_srs_wkt (p, 1, "t) ellipsoid\",DATUM[\"Not_specified_based_on_Clarke_188"); add_srs_wkt (p, 2, "0_Benoit_ellipsoid\",SPHEROID[\"Clarke 1880 (Benoit)\",6"); add_srs_wkt (p, 3, "378300.789,293.4663155389811,AUTHORITY[\"EPSG\",\"7010\""); add_srs_wkt (p, 4, "]],AUTHORITY[\"EPSG\",\"6010\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"40"); add_srs_wkt (p, 8, "10\"]]"); p = add_epsg_def_ex (filter, first, last, 4011, "epsg", 4011, "Unknown datum based upon the Clarke 1880 (IGN) ellipsoid", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Not_specified_based_on_Clarke_1880_IGN_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Clarke 1880 (IGN) "); add_srs_wkt (p, 1, "ellipsoid\",DATUM[\"Not_specified_based_on_Clarke_1880_I"); add_srs_wkt (p, 2, "GN_ellipsoid\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,"); add_srs_wkt (p, 3, "293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6011\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4011\"]]"); p = add_epsg_def_ex (filter, first, last, 4012, "epsg", 4012, "Unknown datum based upon the Clarke 1880 (RGS) ellipsoid", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Not_specified_based_on_Clarke_1880_RGS_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Clarke 1880 (RGS) "); add_srs_wkt (p, 1, "ellipsoid\",DATUM[\"Not_specified_based_on_Clarke_1880_R"); add_srs_wkt (p, 2, "GS_ellipsoid\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6012\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4012\"]]"); p = add_epsg_def_ex (filter, first, last, 4013, "epsg", 4013, "Unknown datum based upon the Clarke 1880 (Arc) ellipsoid", 1, 1, "Clarke 1880 (Arc)", "Greenwich", "Not_specified_based_on_Clarke_1880_Arc_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.145 +b=6356514.966398753 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Clarke 1880 (Arc) "); add_srs_wkt (p, 1, "ellipsoid\",DATUM[\"Not_specified_based_on_Clarke_1880_A"); add_srs_wkt (p, 2, "rc_ellipsoid\",SPHEROID[\"Clarke 1880 (Arc)\",6378249.14"); add_srs_wkt (p, 3, "5,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6013\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4013\"]]"); p = add_epsg_def_ex (filter, first, last, 4014, "epsg", 4014, "Unknown datum based upon the Clarke 1880 (SGA 1922) ellipsoid", 1, 1, "Clarke 1880 (SGA 1922)", "Greenwich", "Not_specified_based_on_Clarke_1880_SGA_1922_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356514.996941779 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Clarke 1880 (SGA 1"); add_srs_wkt (p, 1, "922) ellipsoid\",DATUM[\"Not_specified_based_on_Clarke_1"); add_srs_wkt (p, 2, "880_SGA_1922_ellipsoid\",SPHEROID[\"Clarke 1880 (SGA 192"); add_srs_wkt (p, 3, "2)\",6378249.2,293.46598,AUTHORITY[\"EPSG\",\"7014\"]],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6014\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4014\""); add_srs_wkt (p, 8, "]]"); p = add_epsg_def_ex (filter, first, last, 4015, "epsg", 4015, "Unknown datum based upon the Everest 1830 (1937 Adjustment) ellipsoid", 1, 1, "Everest 1830 (1937 Adjustment)", "Greenwich", "Not_specified_based_on_Everest_1830_1937_Adjustment_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377276.345 +b=6356075.413140239 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Everest 1830 (1937"); add_srs_wkt (p, 1, " Adjustment) ellipsoid\",DATUM[\"Not_specified_based_on_"); add_srs_wkt (p, 2, "Everest_1830_1937_Adjustment_ellipsoid\",SPHEROID[\"Ever"); add_srs_wkt (p, 3, "est 1830 (1937 Adjustment)\",6377276.345,300.8017,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"7015\"]],AUTHORITY[\"EPSG\",\"6015\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4015\"]]"); p = add_epsg_def_ex (filter, first, last, 4016, "epsg", 4016, "Unknown datum based upon the Everest 1830 (1967 Definition) ellipsoid", 1, 1, "Everest 1830 (1967 Definition)", "Greenwich", "Not_specified_based_on_Everest_1830_1967_Definition_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=evrstSS +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Everest 1830 (1967"); add_srs_wkt (p, 1, " Definition) ellipsoid\",DATUM[\"Not_specified_based_on_"); add_srs_wkt (p, 2, "Everest_1830_1967_Definition_ellipsoid\",SPHEROID[\"Ever"); add_srs_wkt (p, 3, "est 1830 (1967 Definition)\",6377298.556,300.8017,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"7016\"]],AUTHORITY[\"EPSG\",\"6016\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4016\"]]"); p = add_epsg_def_ex (filter, first, last, 4018, "epsg", 4018, "Unknown datum based upon the Everest 1830 Modified ellipsoid", 1, 1, "Everest 1830 Modified", "Greenwich", "Not_specified_based_on_Everest_1830_Modified_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377304.063 +b=6356103.038993155 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Everest 1830 Modif"); add_srs_wkt (p, 1, "ied ellipsoid\",DATUM[\"Not_specified_based_on_Everest_1"); add_srs_wkt (p, 2, "830_Modified_ellipsoid\",SPHEROID[\"Everest 1830 Modifie"); add_srs_wkt (p, 3, "d\",6377304.063,300.8017,AUTHORITY[\"EPSG\",\"7018\"]],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6018\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4018\""); add_srs_wkt (p, 8, "]]"); p = add_epsg_def_ex (filter, first, last, 4019, "epsg", 4019, "Unknown datum based upon the GRS 1980 ellipsoid", 1, 1, "GRS 1980", "Greenwich", "Not_specified_based_on_GRS_1980_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the GRS 1980 ellipsoid"); add_srs_wkt (p, 1, "\",DATUM[\"Not_specified_based_on_GRS_1980_ellipsoid\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6019\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4019\"]]"); p = add_epsg_def_ex (filter, first, last, 4020, "epsg", 4020, "Unknown datum based upon the Helmert 1906 ellipsoid", 1, 1, "Helmert 1906", "Greenwich", "Not_specified_based_on_Helmert_1906_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=helmert +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Helmert 1906 ellip"); add_srs_wkt (p, 1, "soid\",DATUM[\"Not_specified_based_on_Helmert_1906_ellip"); add_srs_wkt (p, 2, "soid\",SPHEROID[\"Helmert 1906\",6378200,298.3,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7020\"]],AUTHORITY[\"EPSG\",\"6020\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"4020\"]]"); p = add_epsg_def_ex (filter, first, last, 4021, "epsg", 4021, "Unknown datum based upon the Indonesian National Spheroid", 1, 1, "Indonesian National Spheroid", "Greenwich", "Not_specified_based_on_Indonesian_National_Spheroid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378160 +b=6356774.50408554 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Indonesian Nationa"); add_srs_wkt (p, 1, "l Spheroid\",DATUM[\"Not_specified_based_on_Indonesian_N"); add_srs_wkt (p, 2, "ational_Spheroid\",SPHEROID[\"Indonesian National Sphero"); add_srs_wkt (p, 3, "id\",6378160,298.247,AUTHORITY[\"EPSG\",\"7021\"]],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6021\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4021\"]]"); p = add_epsg_def_ex (filter, first, last, 4022, "epsg", 4022, "Unknown datum based upon the International 1924 ellipsoid", 1, 1, "International 1924", "Greenwich", "Not_specified_based_on_International_1924_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the International 1924"); add_srs_wkt (p, 1, " ellipsoid\",DATUM[\"Not_specified_based_on_Internationa"); add_srs_wkt (p, 2, "l_1924_ellipsoid\",SPHEROID[\"International 1924\",63783"); add_srs_wkt (p, 3, "88,297,AUTHORITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6022\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4022\"]]"); p = add_epsg_def_ex (filter, first, last, 4023, "epsg", 4023, "MOLDREF99", 1, 1, "GRS 1980", "Greenwich", "MOLDREF99", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"MOLDREF99\",DATUM[\"MOLDREF99\",SPHEROID[\"GRS "); add_srs_wkt (p, 1, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 2, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1032\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4023\"]]"); p = add_epsg_def_ex (filter, first, last, 4024, "epsg", 4024, "Unknown datum based upon the Krassowsky 1940 ellipsoid", 1, 1, "Krassowsky 1940", "Greenwich", "Not_specified_based_on_Krassowsky_1940_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Krassowsky 1940 el"); add_srs_wkt (p, 1, "lipsoid\",DATUM[\"Not_specified_based_on_Krassowsky_1940"); add_srs_wkt (p, 2, "_ellipsoid\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7024\"]],AUTHORITY[\"EPSG\",\"6024\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4024\"]]"); p = add_epsg_def_ex (filter, first, last, 4025, "epsg", 4025, "Unknown datum based upon the NWL 9D ellipsoid", 1, 1, "NWL 9D", "Greenwich", "Not_specified_based_on_NWL_9D_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the NWL 9D ellipsoid\""); add_srs_wkt (p, 1, ",DATUM[\"Not_specified_based_on_NWL_9D_ellipsoid\",SPHER"); add_srs_wkt (p, 2, "OID[\"NWL 9D\",6378145,298.25,AUTHORITY[\"EPSG\",\"7025\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6025\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"40"); add_srs_wkt (p, 7, "25\"]]"); p = add_epsg_def_ex (filter, first, last, 4026, "epsg", 4026, "MOLDREF99 / Moldova TM", 0, 1, "GRS 1980", "Greenwich", "MOLDREF99", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28.4 +k=0.9999400000000001 +"); add_proj4text (p, 1, "x_0=200000 +y_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MOLDREF99 / Moldova TM\",GEOGCS[\"MOLDREF99\",D"); add_srs_wkt (p, 1, "ATUM[\"MOLDREF99\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 2, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"1032\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"40"); add_srs_wkt (p, 7, "23\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",28"); add_srs_wkt (p, 9, ".4],PARAMETER[\"scale_factor\",0.99994],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",200000],PARAMETER[\"false_northing\",-500000"); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4026\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 4027, "epsg", 4027, "Unknown datum based upon the Plessis 1817 ellipsoid", 1, 1, "Plessis 1817", "Greenwich", "Not_specified_based_on_Plessis_1817_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6376523 +b=6355862.933255573 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Plessis 1817 ellip"); add_srs_wkt (p, 1, "soid\",DATUM[\"Not_specified_based_on_Plessis_1817_ellip"); add_srs_wkt (p, 2, "soid\",SPHEROID[\"Plessis 1817\",6376523,308.64,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7027\"]],AUTHORITY[\"EPSG\",\"6027\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4027\"]]"); p = add_epsg_def_ex (filter, first, last, 4028, "epsg", 4028, "Unknown datum based upon the Struve 1860 ellipsoid", 1, 1, "Struve 1860", "Greenwich", "Not_specified_based_on_Struve_1860_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378298.3 +b=6356657.142669562 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Struve 1860 ellips"); add_srs_wkt (p, 1, "oid\",DATUM[\"Not_specified_based_on_Struve_1860_ellipso"); add_srs_wkt (p, 2, "id\",SPHEROID[\"Struve 1860\",6378298.3,294.73,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7028\"]],AUTHORITY[\"EPSG\",\"6028\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"4028\"]]"); p = add_epsg_def_ex (filter, first, last, 4029, "epsg", 4029, "Unknown datum based upon the War Office ellipsoid", 1, 1, "War Office", "Greenwich", "Not_specified_based_on_War_Office_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378300 +b=6356751.689189189 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the War Office ellipso"); add_srs_wkt (p, 1, "id\",DATUM[\"Not_specified_based_on_War_Office_ellipsoid"); add_srs_wkt (p, 2, "\",SPHEROID[\"War Office\",6378300,296,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7029\"]],AUTHORITY[\"EPSG\",\"6029\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4029\"]]"); p = add_epsg_def_ex (filter, first, last, 4030, "epsg", 4030, "Unknown datum based upon the WGS 84 ellipsoid", 1, 1, "WGS 84", "Greenwich", "Not_specified_based_on_WGS_84_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the WGS 84 ellipsoid\""); add_srs_wkt (p, 1, ",DATUM[\"Not_specified_based_on_WGS_84_ellipsoid\",SPHER"); add_srs_wkt (p, 2, "OID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7030\"]],AUTHORITY[\"EPSG\",\"6030\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4030\"]]"); p = add_epsg_def_ex (filter, first, last, 4031, "epsg", 4031, "Unknown datum based upon the GEM 10C ellipsoid", 1, 1, "GEM 10C", "Greenwich", "Not_specified_based_on_GEM_10C_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the GEM 10C ellipsoid\""); add_srs_wkt (p, 1, ",DATUM[\"Not_specified_based_on_GEM_10C_ellipsoid\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GEM 10C\",6378137,298.257223563,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7031\"]],AUTHORITY[\"EPSG\",\"6031\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4031\"]]"); p = add_epsg_def_ex (filter, first, last, 4032, "epsg", 4032, "Unknown datum based upon the OSU86F ellipsoid", 1, 1, "OSU86F", "Greenwich", "Not_specified_based_on_OSU86F_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378136.2 +b=6356751.516927429 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the OSU86F ellipsoid\""); add_srs_wkt (p, 1, ",DATUM[\"Not_specified_based_on_OSU86F_ellipsoid\",SPHER"); add_srs_wkt (p, 2, "OID[\"OSU86F\",6378136.2,298.257223563,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7032\"]],AUTHORITY[\"EPSG\",\"6032\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4032\"]]"); p = add_epsg_def_ex (filter, first, last, 4033, "epsg", 4033, "Unknown datum based upon the OSU91A ellipsoid", 1, 1, "OSU91A", "Greenwich", "Not_specified_based_on_OSU91A_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378136.3 +b=6356751.616592146 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the OSU91A ellipsoid\""); add_srs_wkt (p, 1, ",DATUM[\"Not_specified_based_on_OSU91A_ellipsoid\",SPHER"); add_srs_wkt (p, 2, "OID[\"OSU91A\",6378136.3,298.257223563,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7033\"]],AUTHORITY[\"EPSG\",\"6033\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4033\"]]"); p = add_epsg_def_ex (filter, first, last, 4034, "epsg", 4034, "Unknown datum based upon the Clarke 1880 ellipsoid", 1, 1, "Clarke 1880", "Greenwich", "Not_specified_based_on_Clarke_1880_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.144808011 +b=6356514.966204134 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Clarke 1880 ellips"); add_srs_wkt (p, 1, "oid\",DATUM[\"Not_specified_based_on_Clarke_1880_ellipso"); add_srs_wkt (p, 2, "id\",SPHEROID[\"Clarke 1880\",6378249.144808011,293.4663"); add_srs_wkt (p, 3, "076556365,AUTHORITY[\"EPSG\",\"7034\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6034\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4034\"]]"); p = add_epsg_def_ex (filter, first, last, 4035, "epsg", 4035, "Unknown datum based upon the Authalic Sphere", 1, 1, "Sphere", "Greenwich", "Not_specified_based_on_Authalic_Sphere", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6371000 +b=6371000 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Authalic Sphere\","); add_srs_wkt (p, 1, "DATUM[\"Not_specified_based_on_Authalic_Sphere\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Sphere\",6371000,0,AUTHORITY[\"EPSG\",\"7035\"]],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6035\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4035\"]]"); p = add_epsg_def_ex (filter, first, last, 4036, "epsg", 4036, "Unknown datum based upon the GRS 1967 ellipsoid", 1, 1, "GRS 1967", "Greenwich", "Not_specified_based_on_GRS_1967_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS67 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the GRS 1967 ellipsoid"); add_srs_wkt (p, 1, "\",DATUM[\"Not_specified_based_on_GRS_1967_ellipsoid\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1967\",6378160,298.247167427,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7036\"]],AUTHORITY[\"EPSG\",\"6036\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4036\"]]"); p = add_epsg_def_ex (filter, first, last, 4037, "epsg", 4037, "WGS 84 / TMzn35N", 0, 1, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=35 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / TMzn35N\",GEOGCS[\"WGS 84\",DATUM[\"WG"); add_srs_wkt (p, 1, "S_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],P"); add_srs_wkt (p, 3, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 4, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 5, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",27],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"4037\"]]"); p = add_epsg_def_ex (filter, first, last, 4038, "epsg", 4038, "WGS 84 / TMzn36N", 0, 1, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=36 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / TMzn36N\",GEOGCS[\"WGS 84\",DATUM[\"WG"); add_srs_wkt (p, 1, "S_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],P"); add_srs_wkt (p, 3, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 4, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 5, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",33],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 9, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 10, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 11, "\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"4038\"]]"); p = add_epsg_def_ex (filter, first, last, 4041, "epsg", 4041, "Unknown datum based upon the Average Terrestrial System 1977 ellipsoid", 1, 1, "Average Terrestrial System 1977", "Greenwich", "Not_specified_based_on_Average_Terrestrial_System_1977_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378135 +b=6356750.304921594 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Average Terrestria"); add_srs_wkt (p, 1, "l System 1977 ellipsoid\",DATUM[\"Not_specified_based_on"); add_srs_wkt (p, 2, "_Average_Terrestrial_System_1977_ellipsoid\",SPHEROID[\""); add_srs_wkt (p, 3, "Average Terrestrial System 1977\",6378135,298.257,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"7041\"]],AUTHORITY[\"EPSG\",\"6041\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4041\"]]"); p = add_epsg_def_ex (filter, first, last, 4042, "epsg", 4042, "Unknown datum based upon the Everest (1830 Definition) ellipsoid", 1, 1, "Everest (1830 Definition)", "Greenwich", "Not_specified_based_on_Everest_1830_Definition_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377299.36559538 +b=6356098.359005156 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Everest (1830 Defi"); add_srs_wkt (p, 1, "nition) ellipsoid\",DATUM[\"Not_specified_based_on_Evere"); add_srs_wkt (p, 2, "st_1830_Definition_ellipsoid\",SPHEROID[\"Everest (1830 "); add_srs_wkt (p, 3, "Definition)\",6377299.36559538,300.8017255433549,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"7042\"]],AUTHORITY[\"EPSG\",\"6042\"]],PRI"); add_srs_wkt (p, 5, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4042\"]]"); p = add_epsg_def_ex (filter, first, last, 4043, "epsg", 4043, "Unknown datum based upon the WGS 72 ellipsoid", 1, 1, "WGS 72", "Greenwich", "Not_specified_based_on_WGS_72_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS72 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the WGS 72 ellipsoid\""); add_srs_wkt (p, 1, ",DATUM[\"Not_specified_based_on_WGS_72_ellipsoid\",SPHER"); add_srs_wkt (p, 2, "OID[\"WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6043\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"40"); add_srs_wkt (p, 7, "43\"]]"); p = add_epsg_def_ex (filter, first, last, 4044, "epsg", 4044, "Unknown datum based upon the Everest 1830 (1962 Definition) ellipsoid", 1, 1, "Everest 1830 (1962 Definition)", "Greenwich", "Not_specified_based_on_Everest_1830_1962_Definition_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377301.243 +b=6356100.230165385 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Everest 1830 (1962"); add_srs_wkt (p, 1, " Definition) ellipsoid\",DATUM[\"Not_specified_based_on_"); add_srs_wkt (p, 2, "Everest_1830_1962_Definition_ellipsoid\",SPHEROID[\"Ever"); add_srs_wkt (p, 3, "est 1830 (1962 Definition)\",6377301.243,300.8017255,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"7044\"]],AUTHORITY[\"EPSG\",\"6044\"]]"); add_srs_wkt (p, 5, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 6, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 7, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 8, ",AUTHORITY[\"EPSG\",\"4044\"]]"); p = add_epsg_def_ex (filter, first, last, 4045, "epsg", 4045, "Unknown datum based upon the Everest 1830 (1975 Definition) ellipsoid", 1, 1, "Everest 1830 (1975 Definition)", "Greenwich", "Not_specified_based_on_Everest_1830_1975_Definition_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377299.151 +b=6356098.145120132 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Unknown datum based upon the Everest 1830 (1975"); add_srs_wkt (p, 1, " Definition) ellipsoid\",DATUM[\"Not_specified_based_on_"); add_srs_wkt (p, 2, "Everest_1830_1975_Definition_ellipsoid\",SPHEROID[\"Ever"); add_srs_wkt (p, 3, "est 1830 (1975 Definition)\",6377299.151,300.8017255,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"7045\"]],AUTHORITY[\"EPSG\",\"6045\"]]"); add_srs_wkt (p, 5, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 6, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 7, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 8, ",AUTHORITY[\"EPSG\",\"4045\"]]"); p = add_epsg_def_ex (filter, first, last, 4046, "epsg", 4046, "RGRDC 2005", 1, 1, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_RDC_2005", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RGRDC 2005\",DATUM[\"Reseau_Geodesique_de_la_RD"); add_srs_wkt (p, 1, "C_2005\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4046\"]]"); p = add_epsg_def_ex (filter, first, last, 4047, "epsg", 4047, "Unspecified datum based upon the GRS 1980 Authalic Sphere", 1, 1, "GRS 1980 Authalic Sphere", "Greenwich", "Not_specified_based_on_GRS_1980_Authalic_Sphere", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6371007 +b=6371007 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unspecified datum based upon the GRS 1980 Autha"); add_srs_wkt (p, 1, "lic Sphere\",DATUM[\"Not_specified_based_on_GRS_1980_Aut"); add_srs_wkt (p, 2, "halic_Sphere\",SPHEROID[\"GRS 1980 Authalic Sphere\",637"); add_srs_wkt (p, 3, "1007,0,AUTHORITY[\"EPSG\",\"7048\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6047\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4047\"]]"); p = add_epsg_def_ex (filter, first, last, 4048, "epsg", 4048, "RGRDC 2005 / Congo TM zone 12", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_RDC_2005", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 12\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",12],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9999],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"4048\"]]"); p = add_epsg_def_ex (filter, first, last, 4049, "epsg", 4049, "RGRDC 2005 / Congo TM zone 14", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_RDC_2005", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=14 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 14\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",14],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9999],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"4049\"]]"); p = add_epsg_def_ex (filter, first, last, 4050, "epsg", 4050, "RGRDC 2005 / Congo TM zone 16", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_RDC_2005", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 16\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",16],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9999],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"4050\"]]"); p = add_epsg_def_ex (filter, first, last, 4051, "epsg", 4051, "RGRDC 2005 / Congo TM zone 18", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_RDC_2005", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 18\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",18],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9999],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"4051\"]]"); p = add_epsg_def_ex (filter, first, last, 4052, "epsg", 4052, "Unspecified datum based upon the Clarke 1866 Authalic Sphere", 1, 1, "Clarke 1866 Authalic Sphere", "Greenwich", "Not_specified_based_on_Clarke_1866_Authalic_Sphere", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6370997 +b=6370997 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unspecified datum based upon the Clarke 1866 Au"); add_srs_wkt (p, 1, "thalic Sphere\",DATUM[\"Not_specified_based_on_Clarke_18"); add_srs_wkt (p, 2, "66_Authalic_Sphere\",SPHEROID[\"Clarke 1866 Authalic Sph"); add_srs_wkt (p, 3, "ere\",6370997,0,AUTHORITY[\"EPSG\",\"7052\"]],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6052\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4052\"]]"); p = add_epsg_def_ex (filter, first, last, 4053, "epsg", 4053, "Unspecified datum based upon the International 1924 Authalic Sphere", 1, 1, "International 1924 Authalic Sphere", "Greenwich", "Not_specified_based_on_International_1924_Authalic_Sphere", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6371228 +b=6371228 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unspecified datum based upon the International "); add_srs_wkt (p, 1, "1924 Authalic Sphere\",DATUM[\"Not_specified_based_on_In"); add_srs_wkt (p, 2, "ternational_1924_Authalic_Sphere\",SPHEROID[\"Internatio"); add_srs_wkt (p, 3, "nal 1924 Authalic Sphere\",6371228,0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"7057\"]],AUTHORITY[\"EPSG\",\"6053\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4053\"]]"); p = add_epsg_def_ex (filter, first, last, 4054, "epsg", 4054, "Unspecified datum based upon the Hughes 1980 ellipsoid", 1, 1, "Hughes 1980", "Greenwich", "Not_specified_based_on_Hughes_1980_ellipsoid", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378273 +b=6356889.449 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Unspecified datum based upon the Hughes 1980 el"); add_srs_wkt (p, 1, "lipsoid\",DATUM[\"Not_specified_based_on_Hughes_1980_ell"); add_srs_wkt (p, 2, "ipsoid\",SPHEROID[\"Hughes 1980\",6378273,298.2794111230"); add_srs_wkt (p, 3, "64,AUTHORITY[\"EPSG\",\"7058\"]],AUTHORITY[\"EPSG\",\"60"); add_srs_wkt (p, 4, "54\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4054\"]]"); p = add_epsg_def_ex (filter, first, last, 4055, "epsg", 4055, "Popular Visualisation CRS", 1, 1, "Popular Visualisation Sphere", "Greenwich", "Popular_Visualisation_Datum", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378137 +b=6378137 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 1, ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Popular Visualisation CRS\",DATUM[\"Popular_Vis"); add_srs_wkt (p, 1, "ualisation_Datum\",SPHEROID[\"Popular Visualisation Sphe"); add_srs_wkt (p, 2, "re\",6378137,0,AUTHORITY[\"EPSG\",\"7059\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6055\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4055\"]]"); p = add_epsg_def_ex (filter, first, last, 4056, "epsg", 4056, "RGRDC 2005 / Congo TM zone 20", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_RDC_2005", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 20\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",20],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9999],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"4056\"]]"); p = add_epsg_def_ex (filter, first, last, 4057, "epsg", 4057, "RGRDC 2005 / Congo TM zone 22", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_RDC_2005", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=22 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 22\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",22],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9999],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"4057\"]]"); p = add_epsg_def_ex (filter, first, last, 4058, "epsg", 4058, "RGRDC 2005 / Congo TM zone 24", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_RDC_2005", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 24\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",24],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9999],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"4058\"]]"); p = add_epsg_def_ex (filter, first, last, 4059, "epsg", 4059, "RGRDC 2005 / Congo TM zone 26", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_RDC_2005", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=26 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 26\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",26],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9999],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"4059\"]]"); p = add_epsg_def_ex (filter, first, last, 4060, "epsg", 4060, "RGRDC 2005 / Congo TM zone 28", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_RDC_2005", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 28\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",28],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9999],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"4060\"]]"); } #endif /* full EPSG initialization enabled/disabled */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_37.c��������������������������������������������������0000664�0001750�0001750�00000533066�12544707704�017056� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_37 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 24893, "epsg", 24893, "PSAD56 / Peru east zone", 0, 0, "International 1924", "Greenwich", "Provisional_South_American_Datum_1956", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-9.5 +lon_0=-70.5 +k=0.99952992 +x_0="); add_proj4text (p, 1, "1324000 +y_0=1040084.558 +ellps=intl +towgs84=-288,175,-"); add_proj4text (p, 2, "376,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / Peru east zone\",GEOGCS[\"PSAD56\",DAT"); add_srs_wkt (p, 1, "UM[\"Provisional_South_American_Datum_1956\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 9, "9.5],PARAMETER[\"central_meridian\",-70.5],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",0.99952992],PARAMETER[\"false_easting\",13"); add_srs_wkt (p, 11, "24000],PARAMETER[\"false_northing\",1040084.558],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"24893\"]]"); p = add_epsg_def_ex (filter, first, last, 25000, "epsg", 25000, "Leigon / Ghana Metre Grid", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Leigon", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.666666666666667 +lon_0=-1 +k=0.9997"); add_proj4text (p, 1, "5 +x_0=274319.51 +y_0=0 +ellps=clrk80 +towgs84=-130,29,3"); add_proj4text (p, 2, "64,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Leigon / Ghana Metre Grid\",GEOGCS[\"Leigon\",D"); add_srs_wkt (p, 1, "ATUM[\"Leigon\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.1"); add_srs_wkt (p, 2, "45,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-130,29"); add_srs_wkt (p, 3, ",364,0,0,0,0],AUTHORITY[\"EPSG\",\"6250\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4250\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",4.666666666666667],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-1],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".99975],PARAMETER[\"false_easting\",274319.51],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"25000\"]]"); p = add_epsg_def_ex (filter, first, last, 25231, "epsg", 25231, "Lome / UTM zone 31N", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Lome", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=31 +a=6378249.2 +b=6356515 +units=m +no_"); add_proj4text (p, 1, "defs"); add_srs_wkt (p, 0, "PROJCS[\"Lome / UTM zone 31N\",GEOGCS[\"Lome\",DATUM[\"L"); add_srs_wkt (p, 1, "ome\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602"); add_srs_wkt (p, 2, "12936269,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6252\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4252\"]],PROJECTION[\"T"); add_srs_wkt (p, 7, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 8, "],PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"25231\"]]"); p = add_epsg_def_ex (filter, first, last, 25391, "epsg", 25391, "Luzon 1911 / Philippines zone I", 0, 0, "Clarke 1866", "Greenwich", "Luzon_1911", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Luzon 1911 / Philippines zone I\",GEOGCS[\"Luzo"); add_srs_wkt (p, 1, "n 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"6253"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",117],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.99995],PARAMETER[\"false_easting\",500000],PARAMETER["); add_srs_wkt (p, 11, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"25391\"]]"); p = add_epsg_def_ex (filter, first, last, 25392, "epsg", 25392, "Luzon 1911 / Philippines zone II", 0, 0, "Clarke 1866", "Greenwich", "Luzon_1911", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=119 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Luzon 1911 / Philippines zone II\",GEOGCS[\"Luz"); add_srs_wkt (p, 1, "on 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "3\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",119],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.99995],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"25392\"]]"); p = add_epsg_def_ex (filter, first, last, 25393, "epsg", 25393, "Luzon 1911 / Philippines zone III", 0, 0, "Clarke 1866", "Greenwich", "Luzon_1911", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=121 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Luzon 1911 / Philippines zone III\",GEOGCS[\"Lu"); add_srs_wkt (p, 1, "zon 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, "53\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",121],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.99995],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"25393\"]]"); p = add_epsg_def_ex (filter, first, last, 25394, "epsg", 25394, "Luzon 1911 / Philippines zone IV", 0, 0, "Clarke 1866", "Greenwich", "Luzon_1911", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Luzon 1911 / Philippines zone IV\",GEOGCS[\"Luz"); add_srs_wkt (p, 1, "on 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "3\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",123],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.99995],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"25394\"]]"); p = add_epsg_def_ex (filter, first, last, 25395, "epsg", 25395, "Luzon 1911 / Philippines zone V", 0, 0, "Clarke 1866", "Greenwich", "Luzon_1911", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=125 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Luzon 1911 / Philippines zone V\",GEOGCS[\"Luzo"); add_srs_wkt (p, 1, "n 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\"EPSG\",\"6253"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4253\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",125],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.99995],PARAMETER[\"false_easting\",500000],PARAMETER["); add_srs_wkt (p, 11, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"25395\"]]"); p = add_epsg_def_ex (filter, first, last, 25700, "epsg", 25700, "Makassar (Jakarta) / NEIEZ (deprecated)", 0, 0, "Bessel 1841", "Jakarta", "Makassar_Jakarta", "Mercator_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +pm="); add_proj4text (p, 2, "jakarta +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Makassar (Jakarta) / NEIEZ (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"Makassar (Jakarta)\",DATUM[\"Makassar_Jakarta\",SPHE"); add_srs_wkt (p, 2, "ROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7004\"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6804\"]],PRIMEM[\"Jakarta\",106.807"); add_srs_wkt (p, 5, "7194444444,AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4804\"]],PROJECTION[\"Mercator_1SP\"],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",110],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "97],PARAMETER[\"false_easting\",3900000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",900000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"25700\"]]"); p = add_epsg_def_ex (filter, first, last, 25828, "epsg", 25828, "ETRS89 / UTM zone 28N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 28N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-15],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"25828\"]]"); p = add_epsg_def_ex (filter, first, last, 25829, "epsg", 25829, "ETRS89 / UTM zone 29N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 29N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-9],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"25829\"]]"); p = add_epsg_def_ex (filter, first, last, 25830, "epsg", 25830, "ETRS89 / UTM zone 30N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 30N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-3],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"25830\"]]"); p = add_epsg_def_ex (filter, first, last, 25831, "epsg", 25831, "ETRS89 / UTM zone 31N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=31 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 31N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",3],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"25831\"]]"); p = add_epsg_def_ex (filter, first, last, 25832, "epsg", 25832, "ETRS89 / UTM zone 32N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 32N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",9],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"25832\"]]"); p = add_epsg_def_ex (filter, first, last, 25833, "epsg", 25833, "ETRS89 / UTM zone 33N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 33N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",15],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"25833\"]]"); p = add_epsg_def_ex (filter, first, last, 25834, "epsg", 25834, "ETRS89 / UTM zone 34N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 34N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",21],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"25834\"]]"); p = add_epsg_def_ex (filter, first, last, 25835, "epsg", 25835, "ETRS89 / UTM zone 35N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 35N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",27],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"25835\"]]"); p = add_epsg_def_ex (filter, first, last, 25836, "epsg", 25836, "ETRS89 / UTM zone 36N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 36N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",33],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"25836\"]]"); p = add_epsg_def_ex (filter, first, last, 25837, "epsg", 25837, "ETRS89 / UTM zone 37N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 37N\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",39],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"25837\"]]"); p = add_epsg_def_ex (filter, first, last, 25838, "epsg", 25838, "ETRS89 / UTM zone 38N (deprecated)", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 38N (deprecated)\",GEOGCS[\"E"); add_srs_wkt (p, 1, "TRS89\",DATUM[\"European_Terrestrial_Reference_System_19"); add_srs_wkt (p, 2, "89\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",45],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"25838\"]]"); p = add_epsg_def_ex (filter, first, last, 25884, "epsg", 25884, "ETRS89 / TM Baltic93", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM Baltic93\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",24],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"25884\"]]"); p = add_epsg_def_ex (filter, first, last, 25932, "epsg", 25932, "Malongo 1987 / UTM zone 32S", 0, 0, "International 1924", "Greenwich", "Malongo_1987", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +ellps=intl +towgs84=-254.1,-5"); add_proj4text (p, 1, ".36,-100.29,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Malongo 1987 / UTM zone 32S\",GEOGCS[\"Malongo "); add_srs_wkt (p, 1, "1987\",DATUM[\"Malongo_1987\",SPHEROID[\"International 1"); add_srs_wkt (p, 2, "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); add_srs_wkt (p, 3, "-254.1,-5.36,-100.29,0,0,0,0],AUTHORITY[\"EPSG\",\"6259\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4259\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",9],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"25932\"]]"); p = add_epsg_def_ex (filter, first, last, 26191, "epsg", 26191, "Merchich / Nord Maroc", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Merchich", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=-5.4 +k_0=0.999"); add_proj4text (p, 1, "625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +"); add_proj4text (p, 2, "towgs84=31,146,47,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Merchich / Nord Maroc\",GEOGCS[\"Merchich\",DAT"); add_srs_wkt (p, 1, "UM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2"); add_srs_wkt (p, 2, ",293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84"); add_srs_wkt (p, 3, "[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_1SP\"],PARAMETER[\"latitude_of_origin\",33.3],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-5.4],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.999625769],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",300000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"26191\"]]"); p = add_epsg_def_ex (filter, first, last, 26192, "epsg", 26192, "Merchich / Sud Maroc", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Merchich", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=29.7 +lat_0=29.7 +lon_0=-5.4 +k_0=0.999"); add_proj4text (p, 1, "6155960000001 +x_0=500000 +y_0=300000 +a=6378249.2 +b=63"); add_proj4text (p, 2, "56515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Merchich / Sud Maroc\",GEOGCS[\"Merchich\",DATU"); add_srs_wkt (p, 1, "M[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,"); add_srs_wkt (p, 2, "293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84["); add_srs_wkt (p, 3, "31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_1SP\"],PARAMETER[\"latitude_of_origin\",29.7],PARAME"); add_srs_wkt (p, 9, "TER[\"central_meridian\",-5.4],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.999615596],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",300000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"26192\"]]"); p = add_epsg_def_ex (filter, first, last, 26193, "epsg", 26193, "Merchich / Sahara (deprecated)", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Merchich", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.999"); add_proj4text (p, 1, "6 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 +towg"); add_proj4text (p, 2, "s84=31,146,47,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Merchich / Sahara (deprecated)\",GEOGCS[\"Merch"); add_srs_wkt (p, 1, "ich\",DATUM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\","); add_srs_wkt (p, 2, "6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]"); add_srs_wkt (p, 3, "],TOWGS84[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",26"); add_srs_wkt (p, 9, ".1],PARAMETER[\"central_meridian\",-5.4],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.9996],PARAMETER[\"false_easting\",1200000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",400000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"26193\"]]"); p = add_epsg_def_ex (filter, first, last, 26194, "epsg", 26194, "Merchich / Sahara Nord", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Merchich", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.999"); add_proj4text (p, 1, "616304 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 "); add_proj4text (p, 2, "+towgs84=31,146,47,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Merchich / Sahara Nord\",GEOGCS[\"Merchich\",DA"); add_srs_wkt (p, 1, "TUM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249."); add_srs_wkt (p, 2, "2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS8"); add_srs_wkt (p, 3, "4[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Conformal_"); add_srs_wkt (p, 8, "Conic_1SP\"],PARAMETER[\"latitude_of_origin\",26.1],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-5.4],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",0.999616304],PARAMETER[\"false_easting\",1200000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",400000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"26194\"]]"); p = add_epsg_def_ex (filter, first, last, 26195, "epsg", 26195, "Merchich / Sahara Sud", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Merchich", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=22.5 +lat_0=22.5 +lon_0=-5.4 +k_0=0.999"); add_proj4text (p, 1, "616437 +x_0=1500000 +y_0=400000 +a=6378249.2 +b=6356515 "); add_proj4text (p, 2, "+towgs84=31,146,47,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Merchich / Sahara Sud\",GEOGCS[\"Merchich\",DAT"); add_srs_wkt (p, 1, "UM[\"Merchich\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2"); add_srs_wkt (p, 2, ",293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84"); add_srs_wkt (p, 3, "[31,146,47,0,0,0,0],AUTHORITY[\"EPSG\",\"6261\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4261\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_1SP\"],PARAMETER[\"latitude_of_origin\",22.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-5.4],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.999616437],PARAMETER[\"false_easting\",1500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",400000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"26195\"]]"); p = add_epsg_def_ex (filter, first, last, 26237, "epsg", 26237, "Massawa / UTM zone 37N", 0, 0, "Bessel 1841", "Greenwich", "Massawa", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=bessel +towgs84=639,405,60,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Massawa / UTM zone 37N\",GEOGCS[\"Massawa\",DAT"); add_srs_wkt (p, 1, "UM[\"Massawa\",SPHEROID[\"Bessel 1841\",6377397.155,299."); add_srs_wkt (p, 2, "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[639,405,60"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6262\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4262\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"26237\"]]"); p = add_epsg_def_ex (filter, first, last, 26331, "epsg", 26331, "Minna / UTM zone 31N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Minna", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=31 +ellps=clrk80 +towgs84=-92,-93,122,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Minna / UTM zone 31N\",GEOGCS[\"Minna\",DATUM[\""); add_srs_wkt (p, 1, "Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4"); add_srs_wkt (p, 2, "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,122,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4263\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"263"); add_srs_wkt (p, 13, "31\"]]"); p = add_epsg_def_ex (filter, first, last, 26332, "epsg", 26332, "Minna / UTM zone 32N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Minna", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=clrk80 +towgs84=-92,-93,122,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Minna / UTM zone 32N\",GEOGCS[\"Minna\",DATUM[\""); add_srs_wkt (p, 1, "Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4"); add_srs_wkt (p, 2, "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,122,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4263\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"263"); add_srs_wkt (p, 13, "32\"]]"); p = add_epsg_def_ex (filter, first, last, 26391, "epsg", 26391, "Minna / Nigeria West Belt", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Minna", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4 +lon_0=4.5 +k=0.99975 +x_0=230738.2"); add_proj4text (p, 1, "6 +y_0=0 +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Minna / Nigeria West Belt\",GEOGCS[\"Minna\",DA"); add_srs_wkt (p, 1, "TUM[\"Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145"); add_srs_wkt (p, 2, ",293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,1"); add_srs_wkt (p, 3, "22,0,0,0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",4],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",4.5],PARAMETER[\"scale_factor\",0.99975],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",230738.26],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"26391\"]]"); p = add_epsg_def_ex (filter, first, last, 26392, "epsg", 26392, "Minna / Nigeria Mid Belt", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Minna", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4 +lon_0=8.5 +k=0.99975 +x_0=670553.9"); add_proj4text (p, 1, "8 +y_0=0 +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Minna / Nigeria Mid Belt\",GEOGCS[\"Minna\",DAT"); add_srs_wkt (p, 1, "UM[\"Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,"); add_srs_wkt (p, 2, "293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,12"); add_srs_wkt (p, 3, "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",4],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",8.5],PARAMETER[\"scale_factor\",0.99975],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",670553.98],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"26392\"]]"); p = add_epsg_def_ex (filter, first, last, 26393, "epsg", 26393, "Minna / Nigeria East Belt", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Minna", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4 +lon_0=12.5 +k=0.99975 +x_0=1110369"); add_proj4text (p, 1, ".7 +y_0=0 +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Minna / Nigeria East Belt\",GEOGCS[\"Minna\",DA"); add_srs_wkt (p, 1, "TUM[\"Minna\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145"); add_srs_wkt (p, 2, ",293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-92,-93,1"); add_srs_wkt (p, 3, "22,0,0,0,0],AUTHORITY[\"EPSG\",\"6263\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4263\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",4],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",12.5],PARAMETER[\"scale_factor\",0.99975],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",1110369.7],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"26393\"]]"); p = add_epsg_def_ex (filter, first, last, 26432, "epsg", 26432, "Mhast / UTM zone 32S (deprecated)", 0, 0, "International 1924", "Greenwich", "Mhast", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +ellps=intl +towgs84=-252.95,-"); add_proj4text (p, 1, "4.11,-96.38,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mhast / UTM zone 32S (deprecated)\",GEOGCS[\"Mh"); add_srs_wkt (p, 1, "ast\",DATUM[\"Mhast\",SPHEROID[\"International 1924\",63"); add_srs_wkt (p, 2, "78388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-252.95,"); add_srs_wkt (p, 3, "-4.11,-96.38,0,0,0,0],AUTHORITY[\"EPSG\",\"6264\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4264\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",9],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"26432\"]]"); p = add_epsg_def_ex (filter, first, last, 26591, "epsg", 26591, "Monte Mario (Rome) / Italy zone 1 (deprecated)", 0, 0, "International 1924", "Rome", "Monte_Mario_Rome", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-3.45233333333333 +k=0.9996 "); add_proj4text (p, 1, "+x_0=1500000 +y_0=0 +ellps=intl +towgs84=-104.1,-49.1,-9"); add_proj4text (p, 2, ".9,0.971,-2.917,0.714,-11.68 +pm=rome +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Monte Mario (Rome) / Italy zone 1 (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"Monte Mario (Rome)\",DATUM[\"Monte_Mario_Rome\""); add_srs_wkt (p, 2, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7022\"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917"); add_srs_wkt (p, 4, ",0.714,-11.68],AUTHORITY[\"EPSG\",\"6806\"]],PRIMEM[\"Ro"); add_srs_wkt (p, 5, "me\",12.45233333333333,AUTHORITY[\"EPSG\",\"8906\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4806\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",-3.45233333333333],PARAMETER[\"scal"); add_srs_wkt (p, 11, "e_factor\",0.9996],PARAMETER[\"false_easting\",1500000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"26591\"]]"); p = add_epsg_def_ex (filter, first, last, 26592, "epsg", 26592, "Monte Mario (Rome) / Italy zone 2 (deprecated)", 0, 0, "International 1924", "Rome", "Monte_Mario_Rome", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=2.54766666666666 +k=0.9996 +"); add_proj4text (p, 1, "x_0=2520000 +y_0=0 +ellps=intl +towgs84=-104.1,-49.1,-9."); add_proj4text (p, 2, "9,0.971,-2.917,0.714,-11.68 +pm=rome +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Monte Mario (Rome) / Italy zone 2 (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"Monte Mario (Rome)\",DATUM[\"Monte_Mario_Rome\""); add_srs_wkt (p, 2, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7022\"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917"); add_srs_wkt (p, 4, ",0.714,-11.68],AUTHORITY[\"EPSG\",\"6806\"]],PRIMEM[\"Ro"); add_srs_wkt (p, 5, "me\",12.45233333333333,AUTHORITY[\"EPSG\",\"8906\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4806\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",2.54766666666666],PARAMETER[\"scale"); add_srs_wkt (p, 11, "_factor\",0.9996],PARAMETER[\"false_easting\",2520000],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"26592\"]]"); p = add_epsg_def_ex (filter, first, last, 26632, "epsg", 26632, "M'poraloko / UTM zone 32N", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "M_poraloko", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +towgs84=-74,"); add_proj4text (p, 1, "-130,42,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"M'poraloko / UTM zone 32N\",GEOGCS[\"M'poraloko"); add_srs_wkt (p, 1, "\",DATUM[\"M_poraloko\",SPHEROID[\"Clarke 1880 (IGN)\",6"); add_srs_wkt (p, 2, "378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-74,-130,42,0,0,0,0],AUTHORITY[\"EPSG\",\"6266\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4266\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",9],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"26632\"]]"); p = add_epsg_def_ex (filter, first, last, 26692, "epsg", 26692, "M'poraloko / UTM zone 32S", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "M_poraloko", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +towgs"); add_proj4text (p, 1, "84=-74,-130,42,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"M'poraloko / UTM zone 32S\",GEOGCS[\"M'poraloko"); add_srs_wkt (p, 1, "\",DATUM[\"M_poraloko\",SPHEROID[\"Clarke 1880 (IGN)\",6"); add_srs_wkt (p, 2, "378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-74,-130,42,0,0,0,0],AUTHORITY[\"EPSG\",\"6266\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4266\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",9],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"26692\"]]"); p = add_epsg_def_ex (filter, first, last, 26701, "epsg", 26701, "NAD27 / UTM zone 1N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=1 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 1N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-177],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26701"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 26702, "epsg", 26702, "NAD27 / UTM zone 2N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=2 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 2N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-171],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26702"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 26703, "epsg", 26703, "NAD27 / UTM zone 3N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=3 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 3N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-165],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26703"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 26704, "epsg", 26704, "NAD27 / UTM zone 4N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=4 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 4N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-159],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26704"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 26705, "epsg", 26705, "NAD27 / UTM zone 5N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=5 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 5N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-153],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26705"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 26706, "epsg", 26706, "NAD27 / UTM zone 6N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=6 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 6N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-147],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26706"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 26707, "epsg", 26707, "NAD27 / UTM zone 7N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=7 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 7N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-141],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26707"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 26708, "epsg", 26708, "NAD27 / UTM zone 8N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=8 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 8N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-135],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26708"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 26709, "epsg", 26709, "NAD27 / UTM zone 9N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=9 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 9N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-129],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26709"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 26710, "epsg", 26710, "NAD27 / UTM zone 10N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=10 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 10N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-123],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26710"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 26711, "epsg", 26711, "NAD27 / UTM zone 11N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=11 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 11N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-117],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26711"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 26712, "epsg", 26712, "NAD27 / UTM zone 12N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=12 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 12N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-111],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26712"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 26713, "epsg", 26713, "NAD27 / UTM zone 13N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=13 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 13N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-105],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26713"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 26714, "epsg", 26714, "NAD27 / UTM zone 14N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=14 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 14N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-99],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26714\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 26715, "epsg", 26715, "NAD27 / UTM zone 15N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=15 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 15N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-93],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26715\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 26716, "epsg", 26716, "NAD27 / UTM zone 16N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=16 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 16N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-87],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26716\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 26717, "epsg", 26717, "NAD27 / UTM zone 17N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 17N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-81],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26717\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 26718, "epsg", 26718, "NAD27 / UTM zone 18N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 18N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-75],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26718\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 26719, "epsg", 26719, "NAD27 / UTM zone 19N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 19N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-69],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26719\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 26720, "epsg", 26720, "NAD27 / UTM zone 20N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 20N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-63],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26720\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 26721, "epsg", 26721, "NAD27 / UTM zone 21N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 21N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-57],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26721\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 26722, "epsg", 26722, "NAD27 / UTM zone 22N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 22N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-51],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"26722\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 26729, "epsg", 26729, "NAD27 / Alabama East", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9"); add_proj4text (p, 1, "9996 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=u"); add_proj4text (p, 2, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alabama East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",30.5],PARAMETER[\"central_meridian\",-85"); add_srs_wkt (p, 9, ".83333333333333],PARAMETER[\"scale_factor\",0.99996],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"26729\"]]"); p = add_epsg_def_ex (filter, first, last, 26730, "epsg", 26730, "NAD27 / Alabama West", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=1"); add_proj4text (p, 1, "52400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alabama West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",30],PARAMETER[\"central_meridian\",-87.5"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.999933333],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"26730\"]]"); p = add_epsg_def_ex (filter, first, last, 26731, "epsg", 26731, "NAD27 / Alaska zone 1", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Hotine_Oblique_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32"); add_proj4text (p, 1, "3.1301023611111 +k=0.9999 +x_0=5000000.001016002 +y_0=-5"); add_proj4text (p, 2, "000000.001016002 +no_uoff +gamma=323.1301023611111 +datu"); add_proj4text (p, 3, "m=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 1\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_center\",57],PARAMETER[\"longitude_of_center"); add_srs_wkt (p, 9, "\",-133.6666666666667],PARAMETER[\"azimuth\",323.1301023"); add_srs_wkt (p, 10, "611111],PARAMETER[\"rectified_grid_angle\",323.130102361"); add_srs_wkt (p, 11, "1111],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_easting\",16404166.67],PARAMETER[\"false_northing\",-"); add_srs_wkt (p, 13, "16404166.67],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 15, ",NORTH],AUTHORITY[\"EPSG\",\"26731\"]]"); p = add_epsg_def_ex (filter, first, last, 26732, "epsg", 26732, "NAD27 / Alaska zone 2", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=152400."); add_proj4text (p, 1, "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 2\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",54],PARAMETER[\"central_meridian\",-14"); add_srs_wkt (p, 9, "2],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"26732\"]]"); p = add_epsg_def_ex (filter, first, last, 26733, "epsg", 26733, "NAD27 / Alaska zone 3", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=152400."); add_proj4text (p, 1, "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 3\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",54],PARAMETER[\"central_meridian\",-14"); add_srs_wkt (p, 9, "6],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"26733\"]]"); p = add_epsg_def_ex (filter, first, last, 26734, "epsg", 26734, "NAD27 / Alaska zone 4", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=152400."); add_proj4text (p, 1, "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 4\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",54],PARAMETER[\"central_meridian\",-15"); add_srs_wkt (p, 9, "0],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"26734\"]]"); p = add_epsg_def_ex (filter, first, last, 26735, "epsg", 26735, "NAD27 / Alaska zone 5", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=152400."); add_proj4text (p, 1, "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 5\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",54],PARAMETER[\"central_meridian\",-15"); add_srs_wkt (p, 9, "4],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"26735\"]]"); p = add_epsg_def_ex (filter, first, last, 26736, "epsg", 26736, "NAD27 / Alaska zone 6", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=152400."); add_proj4text (p, 1, "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 6\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",54],PARAMETER[\"central_meridian\",-15"); add_srs_wkt (p, 9, "8],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"26736\"]]"); p = add_epsg_def_ex (filter, first, last, 26737, "epsg", 26737, "NAD27 / Alaska zone 7", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=213360."); add_proj4text (p, 1, "4267208534 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 7\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",54],PARAMETER[\"central_meridian\",-16"); add_srs_wkt (p, 9, "2],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",700000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"26737\"]]"); p = add_epsg_def_ex (filter, first, last, 26738, "epsg", 26738, "NAD27 / Alaska zone 8", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=152400."); add_proj4text (p, 1, "3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 8\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",54],PARAMETER[\"central_meridian\",-16"); add_srs_wkt (p, 9, "6],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"26738\"]]"); p = add_epsg_def_ex (filter, first, last, 26739, "epsg", 26739, "NAD27 / Alaska zone 9", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=182880."); add_proj4text (p, 1, "3657607315 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 9\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",54],PARAMETER[\"central_meridian\",-17"); add_srs_wkt (p, 9, "0],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",600000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"26739\"]]"); p = add_epsg_def_ex (filter, first, last, 26740, "epsg", 26740, "NAD27 / Alaska zone 10", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333"); add_proj4text (p, 1, "334 +lat_0=51 +lon_0=-176 +x_0=914401.8288036576 +y_0=0 "); add_proj4text (p, 2, "+datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Alaska zone 10\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",53.83333333333334],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",51.83333333333334],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",51],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, "-176],PARAMETER[\"false_easting\",3000000],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",0],UNIT[\"US survey foot\",0.30480060960"); add_srs_wkt (p, 13, "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26740\"]]"); p = add_epsg_def_ex (filter, first, last, 26741, "epsg", 26741, "NAD27 / California zone I", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, "3333333333334 +lon_0=-122 +x_0=609601.2192024384 +y_0=0 "); add_proj4text (p, 2, "+datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / California zone I\",GEOGCS[\"NAD27\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); add_srs_wkt (p, 2, "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",41.66666666666666],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",40],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 10, "origin\",39.33333333333334],PARAMETER[\"central_meridian"); add_srs_wkt (p, 11, "\",-122],PARAMETER[\"false_easting\",2000000],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 13, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 14, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26741\"]]"); p = add_epsg_def_ex (filter, first, last, 26742, "epsg", 26742, "NAD27 / California zone II", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=609601.219"); add_proj4text (p, 2, "2024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / California zone II\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",39.83333333333334],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",38.33333333333334],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",37.66666666666666],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-122],PARAMETER[\"false_easting\",2000"); add_srs_wkt (p, 12, "000],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); add_srs_wkt (p, 13, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 14, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26"); add_srs_wkt (p, 15, "742\"]]"); p = add_epsg_def_ex (filter, first, last, 26743, "epsg", 26743, "NAD27 / California zone III", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, "667 +lat_0=36.5 +lon_0=-120.5 +x_0=609601.2192024384 +y_"); add_proj4text (p, 2, "0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / California zone III\",GEOGCS[\"NAD27\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",38.43333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",37.06666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",36.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 11, "an\",-120.5],PARAMETER[\"false_easting\",2000000],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 13, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 14, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26743\"]]"); p = add_epsg_def_ex (filter, first, last, 26744, "epsg", 26744, "NAD27 / California zone IV", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, "4 +lon_0=-119 +x_0=609601.2192024384 +y_0=0 +datum=NAD27"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / California zone IV\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",37.25],PARAMETER[\"standa"); add_srs_wkt (p, 9, "rd_parallel_2\",36],PARAMETER[\"latitude_of_origin\",35."); add_srs_wkt (p, 10, "33333333333334],PARAMETER[\"central_meridian\",-119],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",2000000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 14, "ORTH],AUTHORITY[\"EPSG\",\"26744\"]]"); p = add_epsg_def_ex (filter, first, last, 26745, "epsg", 26745, "NAD27 / California zone V", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, "333 +lat_0=33.5 +lon_0=-118 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / California zone V\",GEOGCS[\"NAD27\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); add_srs_wkt (p, 2, "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",35.46666666666667],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",34.03333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",33.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 11, "an\",-118],PARAMETER[\"false_easting\",2000000],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 13, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 14, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26745\"]]"); p = add_epsg_def_ex (filter, first, last, 26746, "epsg", 26746, "NAD27 / California zone VI", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=609601."); add_proj4text (p, 2, "2192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / California zone VI\",GEOGCS[\"NAD27\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 186"); add_srs_wkt (p, 2, "6\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "8\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",33.88333333333333],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",32.78333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",32.16666666666666],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-116.25],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 12, "000000],PARAMETER[\"false_northing\",0],UNIT[\"US survey"); add_srs_wkt (p, 13, " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); add_srs_wkt (p, 14, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "26746\"]]"); p = add_epsg_def_ex (filter, first, last, 26747, "epsg", 26747, "NAD27 / California zone VII (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666"); add_proj4text (p, 1, "667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +"); add_proj4text (p, 2, "x_0=1276106.450596901 +y_0=127079.524511049 +datum=NAD27"); add_proj4text (p, 3, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / California zone VII (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4267\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",34.4166666"); add_srs_wkt (p, 9, "6666666],PARAMETER[\"standard_parallel_2\",33.8666666666"); add_srs_wkt (p, 10, "6667],PARAMETER[\"latitude_of_origin\",34.13333333333333"); add_srs_wkt (p, 11, "],PARAMETER[\"central_meridian\",-118.3333333333333],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_easting\",4186692.58],PARAMETER[\"false_n"); add_srs_wkt (p, 13, "orthing\",416926.74],UNIT[\"US survey foot\",0.304800609"); add_srs_wkt (p, 14, "6012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 15, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26747\"]]"); p = add_epsg_def_ex (filter, first, last, 26748, "epsg", 26748, "NAD27 / Arizona East", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f"); add_proj4text (p, 2, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Arizona East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",31],PARAMETER[\"central_meridian\",-110."); add_srs_wkt (p, 9, "1666666666667],PARAMETER[\"scale_factor\",0.9999],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"26748\"]]"); p = add_epsg_def_ex (filter, first, last, 26749, "epsg", 26749, "NAD27 / Arizona Central", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f"); add_proj4text (p, 2, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Arizona Central\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "67\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",31],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "111.9166666666667],PARAMETER[\"scale_factor\",0.9999],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"26749\"]]"); p = add_epsg_def_ex (filter, first, last, 26750, "epsg", 26750, "NAD27 / Arizona West", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, "=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Arizona West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",31],PARAMETER[\"central_meridian\",-113."); add_srs_wkt (p, 9, "75],PARAMETER[\"scale_factor\",0.999933333],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"26750\"]]"); p = add_epsg_def_ex (filter, first, last, 26751, "epsg", 26751, "NAD27 / Arkansas North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=609601.2192"); add_proj4text (p, 2, "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Arkansas North\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",36.23333333333333],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",34.93333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",34.33333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-92],PARAMETER[\"false_easting\",2000000]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 13, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26751\""); add_srs_wkt (p, 15, "]]"); p = add_epsg_def_ex (filter, first, last, 26752, "epsg", 26752, "NAD27 / Arkansas South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, ".66666666666666 +lon_0=-92 +x_0=609601.2192024384 +y_0=0"); add_proj4text (p, 2, " +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Arkansas South\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",34.76666666666667],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",33.3],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 10, "rigin\",32.66666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-92],PARAMETER[\"false_easting\",2000000],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",0],UNIT[\"US survey foot\",0.30480060960"); add_srs_wkt (p, 13, "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26752\"]]"); p = add_epsg_def_ex (filter, first, last, 26753, "epsg", 26753, "NAD27 / Colorado North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.71666666666667 +lat_2=40.78333333333"); add_proj4text (p, 1, "333 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=609601.2"); add_proj4text (p, 2, "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Colorado North\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",39.71666666666667],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",40.78333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",39.33333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-105.5],PARAMETER[\"false_easting\",20000"); add_srs_wkt (p, 12, "00],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 13, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"267"); add_srs_wkt (p, 15, "53\"]]"); p = add_epsg_def_ex (filter, first, last, 26754, "epsg", 26754, "NAD27 / Colorado Central", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, "3334 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +datum="); add_proj4text (p, 2, "NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Colorado Central\",GEOGCS[\"NAD27\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "67\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",39.75],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",38.45],PARAMETER[\"latitude_of_origin\",37"); add_srs_wkt (p, 10, ".83333333333334],PARAMETER[\"central_meridian\",-105.5],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",2000000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"26754\"]]"); p = add_epsg_def_ex (filter, first, last, 26755, "epsg", 26755, "NAD27 / Colorado South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=609601.2"); add_proj4text (p, 2, "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Colorado South\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",38.43333333333333],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",37.23333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",36.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-105.5],PARAMETER[\"false_easting\",20000"); add_srs_wkt (p, 12, "00],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 13, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"267"); add_srs_wkt (p, 15, "55\"]]"); p = add_epsg_def_ex (filter, first, last, 26756, "epsg", 26756, "NAD27 / Connecticut", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, ".83333333333334 +lon_0=-72.75 +x_0=182880.3657607315 +y_"); add_proj4text (p, 2, "0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Connecticut\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",41.86666666666667],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",41.2],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 10, "in\",40.83333333333334],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 11, "72.75],PARAMETER[\"false_easting\",600000],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",0],UNIT[\"US survey foot\",0.30480060960"); add_srs_wkt (p, 13, "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26756\"]]"); p = add_epsg_def_ex (filter, first, last, 26757, "epsg", 26757, "NAD27 / Delaware", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, "995 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us"); add_proj4text (p, 2, "-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Delaware\",GEOGCS[\"NAD27\",DATUM[\"Nor"); add_srs_wkt (p, 1, "th_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637820"); add_srs_wkt (p, 2, "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",38],PARAMETER[\"central_meridian\",-75.4166"); add_srs_wkt (p, 9, "6666666667],PARAMETER[\"scale_factor\",0.999995],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"26757\"]]"); p = add_epsg_def_ex (filter, first, last, 26758, "epsg", 26758, "NAD27 / Florida East", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); add_proj4text (p, 2, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Florida East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",24.33333333333333],PARAMETER[\"central_m"); add_srs_wkt (p, 9, "eridian\",-81],PARAMETER[\"scale_factor\",0.999941177],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"26758\"]]"); p = add_epsg_def_ex (filter, first, last, 26759, "epsg", 26759, "NAD27 / Florida West", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units"); add_proj4text (p, 2, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Florida West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",24.33333333333333],PARAMETER[\"central_m"); add_srs_wkt (p, 9, "eridian\",-82],PARAMETER[\"scale_factor\",0.999941177],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"26759\"]]"); p = add_epsg_def_ex (filter, first, last, 26760, "epsg", 26760, "NAD27 / Florida North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, "9 +lon_0=-84.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD2"); add_proj4text (p, 2, "7 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Florida North\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_1\",30.75],PARAMETER[\"standard_p"); add_srs_wkt (p, 9, "arallel_2\",29.58333333333333],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 10, "rigin\",29],PARAMETER[\"central_meridian\",-84.5],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",2000000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"26760\"]]"); p = add_epsg_def_ex (filter, first, last, 26766, "epsg", 26766, "NAD27 / Georgia East", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f"); add_proj4text (p, 2, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Georgia East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",30],PARAMETER[\"central_meridian\",-82.1"); add_srs_wkt (p, 9, "6666666666667],PARAMETER[\"scale_factor\",0.9999],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"26766\"]]"); p = add_epsg_def_ex (filter, first, last, 26767, "epsg", 26767, "NAD27 / Georgia West", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-f"); add_proj4text (p, 2, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Georgia West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",30],PARAMETER[\"central_meridian\",-84.1"); add_srs_wkt (p, 9, "6666666666667],PARAMETER[\"scale_factor\",0.9999],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"26767\"]]"); p = add_epsg_def_ex (filter, first, last, 26768, "epsg", 26768, "NAD27 / Idaho East", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, "666667 +k=0.9999473679999999 +x_0=152400.3048006096 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Idaho East\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 8, "de_of_origin\",41.66666666666666],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-112.1666666666667],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.999947368],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"US survey foot\",0.30480"); add_srs_wkt (p, 12, "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26768\"]]"); p = add_epsg_def_ex (filter, first, last, 26769, "epsg", 26769, "NAD27 / Idaho Central", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, "99473679999999 +x_0=152400.3048006096 +y_0=0 +datum=NAD2"); add_proj4text (p, 2, "7 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Idaho Central\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",41.66666666666666],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-114],PARAMETER[\"scale_factor\",0.999947368"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"26769\"]]"); p = add_epsg_def_ex (filter, first, last, 26770, "epsg", 26770, "NAD27 / Idaho West", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, ".999933333 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +u"); add_proj4text (p, 2, "nits=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Idaho West\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 8, "de_of_origin\",41.66666666666666],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-115.75],PARAMETER[\"scale_factor\",0.999933333"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"26770\"]]"); p = add_epsg_def_ex (filter, first, last, 26771, "epsg", 26771, "NAD27 / Illinois East", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, "333333 +k=0.9999749999999999 +x_0=152400.3048006096 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Illinois East\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",36.66666666666666],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-88.33333333333333],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.999975],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"US survey foot\",0.30480"); add_srs_wkt (p, 12, "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26771\"]]"); p = add_epsg_def_ex (filter, first, last, 26772, "epsg", 26772, "NAD27 / Illinois West", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, "666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +dat"); add_proj4text (p, 2, "um=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Illinois West\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",36.66666666666666],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-90.16666666666667],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.999941177],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 12, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26772\"]]"); p = add_epsg_def_ex (filter, first, last, 26773, "epsg", 26773, "NAD27 / Indiana East", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Indiana East\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",37.5],PARAMETER[\"central_meridian\",-85"); add_srs_wkt (p, 9, ".66666666666667],PARAMETER[\"scale_factor\",0.999966667]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"26773\"]]"); p = add_epsg_def_ex (filter, first, last, 26774, "epsg", 26774, "NAD27 / Indiana West", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Indiana West\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",37.5],PARAMETER[\"central_meridian\",-87"); add_srs_wkt (p, 9, ".08333333333333],PARAMETER[\"scale_factor\",0.999966667]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"26774\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_38.c��������������������������������������������������0000664�0001750�0001750�00000572644�12544707704�017064� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_38 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 26775, "epsg", 26775, "NAD27 / Iowa North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, "667 +lat_0=41.5 +lon_0=-93.5 +x_0=609601.2192024384 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Iowa North\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER["); add_srs_wkt (p, 8, "\"standard_parallel_1\",43.26666666666667],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_2\",42.06666666666667],PARAMETER[\"lati"); add_srs_wkt (p, 10, "tude_of_origin\",41.5],PARAMETER[\"central_meridian\",-9"); add_srs_wkt (p, 11, "3.5],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 13, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 14, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26775\"]]"); p = add_epsg_def_ex (filter, first, last, 26776, "epsg", 26776, "NAD27 / Iowa South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, "667 +lat_0=40 +lon_0=-93.5 +x_0=609601.2192024384 +y_0=0"); add_proj4text (p, 2, " +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Iowa South\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER["); add_srs_wkt (p, 8, "\"standard_parallel_1\",41.78333333333333],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_2\",40.61666666666667],PARAMETER[\"lati"); add_srs_wkt (p, 10, "tude_of_origin\",40],PARAMETER[\"central_meridian\",-93."); add_srs_wkt (p, 11, "5],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 13, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26776\"]]"); p = add_epsg_def_ex (filter, first, last, 26777, "epsg", 26777, "NAD27 / Kansas North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=609601.2192"); add_proj4text (p, 2, "024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Kansas North\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",39.78333333333333],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",38.71666666666667],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",38.33333333333334],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-98],PARAMETER[\"false_easting\",2000000],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 13, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26777\"]]"); p = add_epsg_def_ex (filter, first, last, 26778, "epsg", 26778, "NAD27 / Kansas South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=609601.21"); add_proj4text (p, 2, "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Kansas South\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",38.56666666666667],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",37.26666666666667],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",36.66666666666666],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-98.5],PARAMETER[\"false_easting\",2000000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\","); add_srs_wkt (p, 13, "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26778\""); add_srs_wkt (p, 15, "]]"); p = add_epsg_def_ex (filter, first, last, 26779, "epsg", 26779, "NAD27 / Kentucky North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, "667 +lat_0=37.5 +lon_0=-84.25 +x_0=609601.2192024384 +y_"); add_proj4text (p, 2, "0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Kentucky North\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",37.96666666666667],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",38.96666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",37.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-84.25],PARAMETER[\"false_easting\",2000000],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 13, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 14, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26779\"]]"); p = add_epsg_def_ex (filter, first, last, 26780, "epsg", 26780, "NAD27 / Kentucky South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.73333333333333 +lat_2=37.93333333333"); add_proj4text (p, 1, "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=609601.2"); add_proj4text (p, 2, "192024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Kentucky South\",GEOGCS[\"NAD27\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"426"); add_srs_wkt (p, 7, "7\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 8, "TER[\"standard_parallel_1\",36.73333333333333],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",37.93333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",36.33333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-85.75],PARAMETER[\"false_easting\",20000"); add_srs_wkt (p, 12, "00],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 13, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"267"); add_srs_wkt (p, 15, "80\"]]"); p = add_epsg_def_ex (filter, first, last, 26781, "epsg", 26781, "NAD27 / Louisiana North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=31.16666666666667 +lat_2=32.66666666666"); add_proj4text (p, 1, "666 +lat_0=30.66666666666667 +lon_0=-92.5 +x_0=609601.21"); add_proj4text (p, 2, "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Louisiana North\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "67\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",31.16666666666667],PARAMETE"); add_srs_wkt (p, 9, "R[\"standard_parallel_2\",32.66666666666666],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",30.66666666666667],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-92.5],PARAMETER[\"false_easting\",200000"); add_srs_wkt (p, 12, "0],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot"); add_srs_wkt (p, 13, "\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS"); add_srs_wkt (p, 14, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2678"); add_srs_wkt (p, 15, "1\"]]"); p = add_epsg_def_ex (filter, first, last, 26782, "epsg", 26782, "NAD27 / Louisiana South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.666666666666"); add_proj4text (p, 1, "67 +lon_0=-91.33333333333333 +x_0=609601.2192024384 +y_0"); add_proj4text (p, 2, "=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Louisiana South\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "67\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",29.3],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",30.7],PARAMETER[\"latitude_of_origin\",28.6"); add_srs_wkt (p, 10, "6666666666667],PARAMETER[\"central_meridian\",-91.333333"); add_srs_wkt (p, 11, "33333333],PARAMETER[\"false_easting\",2000000],PARAMETER"); add_srs_wkt (p, 12, "[\"false_northing\",0],UNIT[\"US survey foot\",0.3048006"); add_srs_wkt (p, 13, "096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26782\"]]"); p = add_epsg_def_ex (filter, first, last, 26783, "epsg", 26783, "NAD27 / Maine East", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us"); add_proj4text (p, 2, "-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Maine East\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 8, "de_of_origin\",43.83333333333334],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-68.5],PARAMETER[\"scale_factor\",0.9999],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"26783\"]]"); p = add_epsg_def_ex (filter, first, last, 26784, "epsg", 26784, "NAD27 / Maine West", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +dat"); add_proj4text (p, 2, "um=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Maine West\",GEOGCS[\"NAD27\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6378"); add_srs_wkt (p, 2, "206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]"); add_srs_wkt (p, 7, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 8, "de_of_origin\",42.83333333333334],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-70.16666666666667],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.999966667],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"US survey foot\",0.30480"); add_srs_wkt (p, 12, "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26784\"]]"); p = add_epsg_def_ex (filter, first, last, 26785, "epsg", 26785, "NAD27 / Maryland", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.3 +lat_2=39.45 +lat_0=37.83333333333"); add_proj4text (p, 1, "334 +lon_0=-77 +x_0=243840.4876809754 +y_0=0 +datum=NAD2"); add_proj4text (p, 2, "7 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Maryland\",GEOGCS[\"NAD27\",DATUM[\"Nor"); add_srs_wkt (p, 1, "th_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637820"); add_srs_wkt (p, 2, "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",38.3],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 9, "l_2\",39.45],PARAMETER[\"latitude_of_origin\",37.8333333"); add_srs_wkt (p, 10, "3333334],PARAMETER[\"central_meridian\",-77],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",800000.0000000002],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 14, "NORTH],AUTHORITY[\"EPSG\",\"26785\"]]"); p = add_epsg_def_ex (filter, first, last, 26786, "epsg", 26786, "NAD27 / Massachusetts Mainland", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333"); add_proj4text (p, 1, "333 +lat_0=41 +lon_0=-71.5 +x_0=182880.3657607315 +y_0=0"); add_proj4text (p, 2, " +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Massachusetts Mainland\",GEOGCS[\"NAD27"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke"); add_srs_wkt (p, 2, " 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",41.71666666666667],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",42.68333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",41],PARAMETER[\"central_merid"); add_srs_wkt (p, 11, "ian\",-71.5],PARAMETER[\"false_easting\",600000],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_northing\",0],UNIT[\"US survey foot\",0.30480"); add_srs_wkt (p, 13, "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 14, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26786\"]]"); p = add_epsg_def_ex (filter, first, last, 26787, "epsg", 26787, "NAD27 / Massachusetts Island", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.28333333333333 +lat_2=41.48333333333"); add_proj4text (p, 1, "333 +lat_0=41 +lon_0=-70.5 +x_0=60960.12192024384 +y_0=0"); add_proj4text (p, 2, " +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Massachusetts Island\",GEOGCS[\"NAD27\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",41.28333333333333],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",41.48333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",41],PARAMETER[\"central_merid"); add_srs_wkt (p, 11, "ian\",-70.5],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_northing\",0],UNIT[\"US survey foot\",0.30480"); add_srs_wkt (p, 13, "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 14, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26787\"]]"); p = add_epsg_def_ex (filter, first, last, 26791, "epsg", 26791, "NAD27 / Minnesota North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.03333333333333 +lat_2=48.63333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=609601.21"); add_proj4text (p, 2, "92024384 +y_0=0 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Minnesota North\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "67\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",47.03333333333333],PARAMETE"); add_srs_wkt (p, 9, "R[\"standard_parallel_2\",48.63333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",46.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-93.1],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26791\"]]"); p = add_epsg_def_ex (filter, first, last, 26792, "epsg", 26792, "NAD27 / Minnesota Central", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.61666666666667 +lat_2=47.05 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=609601.2192024384 +y_0=0 +datum=NAD"); add_proj4text (p, 2, "27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Minnesota Central\",GEOGCS[\"NAD27\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); add_srs_wkt (p, 2, "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",45.61666666666667],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",47.05],PARAMETER[\"latitude_"); add_srs_wkt (p, 10, "of_origin\",45],PARAMETER[\"central_meridian\",-94.25],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",2000000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"26792\"]]"); p = add_epsg_def_ex (filter, first, last, 26793, "epsg", 26793, "NAD27 / Minnesota South", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.78333333333333 +lat_2=45.21666666666"); add_proj4text (p, 1, "667 +lat_0=43 +lon_0=-94 +x_0=609601.2192024384 +y_0=0 +"); add_proj4text (p, 2, "datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Minnesota South\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "67\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",43.78333333333333],PARAMETE"); add_srs_wkt (p, 9, "R[\"standard_parallel_2\",45.21666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",43],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, "-94],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 13, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 14, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26793\"]]"); p = add_epsg_def_ex (filter, first, last, 26794, "epsg", 26794, "NAD27 / Mississippi East", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.66666666666667 +lon_0=-88.83333333"); add_proj4text (p, 1, "333333 +k=0.99996 +x_0=152400.3048006096 +y_0=0 +datum=N"); add_proj4text (p, 2, "AD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Mississippi East\",GEOGCS[\"NAD27\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "67\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",29.66666666666667],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",-88.83333333333333],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.99996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 12, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26794\"]]"); p = add_epsg_def_ex (filter, first, last, 26795, "epsg", 26795, "NAD27 / Mississippi West", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, "99941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Mississippi West\",GEOGCS[\"NAD27\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "67\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",30.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",-90.33333333333333],PARAMETER[\"scale_factor\",0.999941"); add_srs_wkt (p, 10, "177],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 12, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 13, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26795\"]]"); p = add_epsg_def_ex (filter, first, last, 26796, "epsg", 26796, "NAD27 / Missouri East", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9"); add_proj4text (p, 1, "99933333 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Missouri East\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",35.83333333333334],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-90.5],PARAMETER[\"scale_factor\",0.99993333"); add_srs_wkt (p, 10, "3],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 12, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26796\"]]"); p = add_epsg_def_ex (filter, first, last, 26797, "epsg", 26797, "NAD27 / Missouri Central", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9"); add_proj4text (p, 1, "99933333 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Missouri Central\",GEOGCS[\"NAD27\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "67\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",35.83333333333334],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",-92.5],PARAMETER[\"scale_factor\",0.999933"); add_srs_wkt (p, 10, "333],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 12, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 13, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26797\"]]"); p = add_epsg_def_ex (filter, first, last, 26798, "epsg", 26798, "NAD27 / Missouri West", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9"); add_proj4text (p, 1, "99941177 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Missouri West\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",36.16666666666666],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",-94.5],PARAMETER[\"scale_factor\",0.99994117"); add_srs_wkt (p, 10, "7],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 12, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26798\"]]"); p = add_epsg_def_ex (filter, first, last, 26799, "epsg", 26799, "NAD27 / California zone VII", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666"); add_proj4text (p, 1, "667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +"); add_proj4text (p, 2, "x_0=1276106.450596901 +y_0=1268253.006858014 +datum=NAD2"); add_proj4text (p, 3, "7 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / California zone VII\",GEOGCS[\"NAD27\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "66\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "08\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",34.41666666666666],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",33.86666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",34.13333333333333],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-118.3333333333333],PARAMETER[\"false_"); add_srs_wkt (p, 12, "easting\",4186692.58],PARAMETER[\"false_northing\",41609"); add_srs_wkt (p, 13, "26.74],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 15, "H],AUTHORITY[\"EPSG\",\"26799\"]]"); p = add_epsg_def_ex (filter, first, last, 26801, "epsg", 26801, "NAD Michigan / Michigan East (deprecated)", 0, 0, "Clarke 1866 Michigan", "Greenwich", "NAD27_Michigan", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.5 +lon_0=-83.66666666666667 +k=0.9"); add_proj4text (p, 1, "99942857 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548"); add_proj4text (p, 2, "896 +b=6356826.621488444 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD Michigan / Michigan East (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHEROID"); add_srs_wkt (p, 2, "[\"Clarke 1866 Michigan\",6378450.047548896,294.97869716"); add_srs_wkt (p, 3, "46772,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",41.5"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-83.66666666666667],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.999942857],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"26801\"]]"); p = add_epsg_def_ex (filter, first, last, 26802, "epsg", 26802, "NAD Michigan / Michigan Old Central (deprecated)", 0, 0, "Clarke 1866 Michigan", "Greenwich", "NAD27_Michigan", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.5 +lon_0=-85.75 +k=0.999909091 +x_"); add_proj4text (p, 1, "0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=63568"); add_proj4text (p, 2, "26.621488444 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD Michigan / Michigan Old Central (deprecated"); add_srs_wkt (p, 1, ")\",GEOGCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",S"); add_srs_wkt (p, 2, "PHEROID[\"Clarke 1866 Michigan\",6378450.047548896,294.9"); add_srs_wkt (p, 3, "786971646772,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",41.5],PARAMETER[\"central_meridian\",-85.75],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",0.999909091],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 12, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"26802\"]]"); p = add_epsg_def_ex (filter, first, last, 26803, "epsg", 26803, "NAD Michigan / Michigan West (deprecated)", 0, 0, "Clarke 1866 Michigan", "Greenwich", "NAD27_Michigan", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.5 +lon_0=-88.75 +k=0.999909091 +x_"); add_proj4text (p, 1, "0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=63568"); add_proj4text (p, 2, "26.621488444 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD Michigan / Michigan West (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHEROID"); add_srs_wkt (p, 2, "[\"Clarke 1866 Michigan\",6378450.047548896,294.97869716"); add_srs_wkt (p, 3, "46772,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",41.5"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-88.75],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.999909091],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); add_srs_wkt (p, 12, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26"); add_srs_wkt (p, 14, "803\"]]"); p = add_epsg_def_ex (filter, first, last, 26811, "epsg", 26811, "NAD Michigan / Michigan North (deprecated)", 0, 0, "Clarke 1866 Michigan", "Greenwich", "NAD27_Michigan", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333"); add_proj4text (p, 1, "334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=609601.2192"); add_proj4text (p, 2, "024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 "); add_proj4text (p, 3, "+units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD Michigan / Michigan North (deprecated)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866 Michigan\",6378450.047548896,294.9786971"); add_srs_wkt (p, 3, "646772,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"La"); add_srs_wkt (p, 8, "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, "el_1\",45.48333333333333],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 10, "2\",47.08333333333334],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 11, "44.78333333333333],PARAMETER[\"central_meridian\",-87],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_easting\",2000000],PARAMETER[\"false_no"); add_srs_wkt (p, 13, "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 15, ",NORTH],AUTHORITY[\"EPSG\",\"26811\"]]"); p = add_epsg_def_ex (filter, first, last, 26812, "epsg", 26812, "NAD Michigan / Michigan Central (deprecated)", 0, 0, "Clarke 1866 Michigan", "Greenwich", "NAD27_Michigan", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43"); add_proj4text (p, 1, ".31666666666667 +lon_0=-84.33333333333333 +x_0=609601.21"); add_proj4text (p, 2, "92024384 +y_0=0 +a=6378450.047548896 +b=6356826.62148844"); add_proj4text (p, 3, "4 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD Michigan / Michigan Central (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHER"); add_srs_wkt (p, 2, "OID[\"Clarke 1866 Michigan\",6378450.047548896,294.97869"); add_srs_wkt (p, 3, "71646772,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",44.18333333333333],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 10, "_2\",45.7],PARAMETER[\"latitude_of_origin\",43.316666666"); add_srs_wkt (p, 11, "66667],PARAMETER[\"central_meridian\",-84.33333333333333"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",2000000],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 14, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 15, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26812\"]]"); p = add_epsg_def_ex (filter, first, last, 26813, "epsg", 26813, "NAD Michigan / Michigan South (deprecated)", 0, 0, "Clarke 1866 Michigan", "Greenwich", "NAD27_Michigan", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41"); add_proj4text (p, 1, ".5 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0"); add_proj4text (p, 2, "=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD Michigan / Michigan South (deprecated)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Clarke 1866 Michigan\",6378450.047548896,294.9786971"); add_srs_wkt (p, 3, "646772,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4268\"]],PROJECTION[\"La"); add_srs_wkt (p, 8, "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, "el_1\",42.1],PARAMETER[\"standard_parallel_2\",43.666666"); add_srs_wkt (p, 10, "66666666],PARAMETER[\"latitude_of_origin\",41.5],PARAMET"); add_srs_wkt (p, 11, "ER[\"central_meridian\",-84.33333333333333],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",2000000],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 13, ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 15, "HORITY[\"EPSG\",\"26813\"]]"); p = add_epsg_def_ex (filter, first, last, 26814, "epsg", 26814, "NAD83 / Maine East (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine East (ftUS) (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"626"); add_srs_wkt (p, 4, "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",43.6666"); add_srs_wkt (p, 9, "6666666666],PARAMETER[\"central_meridian\",-68.5],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",300000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26814\"]]"); p = add_epsg_def_ex (filter, first, last, 26815, "epsg", 26815, "NAD83 / Maine West (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine West (ftUS) (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"626"); add_srs_wkt (p, 4, "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",42.8333"); add_srs_wkt (p, 9, "3333333334],PARAMETER[\"central_meridian\",-70.166666666"); add_srs_wkt (p, 10, "66667],PARAMETER[\"scale_factor\",0.999966667],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",900000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26815\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 26819, "epsg", 26819, "NAD83 / Minnesota North (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); add_proj4text (p, 2, "00101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0"); add_proj4text (p, 3, ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Minnesota North (ftUS) (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"La"); add_srs_wkt (p, 8, "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, "el_1\",48.63333333333333],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 10, "2\",47.03333333333333],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 11, "46.5],PARAMETER[\"central_meridian\",-93.1],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",800000.0000101601],PARAMETER[\"false_nor"); add_srs_wkt (p, 13, "thing\",99999.99998984],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 15, "ITY[\"EPSG\",\"26819\"]]"); p = add_epsg_def_ex (filter, first, last, 26820, "epsg", 26820, "NAD83 / Minnesota Central (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.999989"); add_proj4text (p, 2, "84 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Minnesota Central (ftUS) (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",47.05],PARAMETER[\"standard_parallel_2\",45.6166"); add_srs_wkt (p, 10, "6666666667],PARAMETER[\"latitude_of_origin\",45],PARAMET"); add_srs_wkt (p, 11, "ER[\"central_meridian\",-94.25],PARAMETER[\"false_eastin"); add_srs_wkt (p, 12, "g\",800000.0000101601],PARAMETER[\"false_northing\",9999"); add_srs_wkt (p, 13, "9.99998984],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"26820\"]]"); p = add_epsg_def_ex (filter, first, last, 26821, "epsg", 26821, "NAD83 / Minnesota South (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=999"); add_proj4text (p, 2, "99.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Minnesota South (ftUS) (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"La"); add_srs_wkt (p, 8, "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, "el_1\",45.21666666666667],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 10, "2\",43.78333333333333],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 11, "43],PARAMETER[\"central_meridian\",-94],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_easting\",800000.0000101601],PARAMETER[\"false_northin"); add_srs_wkt (p, 13, "g\",99999.99998984],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 15, "\"EPSG\",\"26821\"]]"); p = add_epsg_def_ex (filter, first, last, 26822, "epsg", 26822, "NAD83 / Nebraska (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Nebraska (ftUS) (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 9, "3],PARAMETER[\"standard_parallel_2\",40],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",39.83333333333334],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-100],PARAMETER[\"false_easting\",500000.000"); add_srs_wkt (p, 12, "0101601],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 13, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26822\"]]"); p = add_epsg_def_ex (filter, first, last, 26823, "epsg", 26823, "NAD83 / West Virginia North (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,"); add_proj4text (p, 2, "0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / West Virginia North (ftUS) (deprecated)"); add_srs_wkt (p, 1, "\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",40.25],PARAMETER[\"standard_parallel_2\",39],"); add_srs_wkt (p, 10, "PARAMETER[\"latitude_of_origin\",38.5],PARAMETER[\"centr"); add_srs_wkt (p, 11, "al_meridian\",-79.5],PARAMETER[\"false_easting\",1968500"); add_srs_wkt (p, 12, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"26823\"]]"); p = add_epsg_def_ex (filter, first, last, 26824, "epsg", 26824, "NAD83 / West Virginia South (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, "0 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / West Virginia South (ftUS) (deprecated)"); add_srs_wkt (p, 1, "\",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",38.88333333333333],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",37.48333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",37],PARAMETER[\"central_meridian\",-81],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",1968500],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 13, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 14, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26824\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 26825, "epsg", 26825, "NAD83(HARN) / Maine East (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine East (ftUS) (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refer"); add_srs_wkt (p, 2, "ence_Network\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",43.66666666666666],PARAMETER[\"central_m"); add_srs_wkt (p, 10, "eridian\",-68.5],PARAMETER[\"scale_factor\",0.9999],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",300000],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 13, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 14, "6825\"]]"); p = add_epsg_def_ex (filter, first, last, 26826, "epsg", 26826, "NAD83(HARN) / Maine West (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine West (ftUS) (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refer"); add_srs_wkt (p, 2, "ence_Network\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",42.83333333333334],PARAMETER[\"central_m"); add_srs_wkt (p, 10, "eridian\",-70.16666666666667],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 11, ",0.999966667],PARAMETER[\"false_easting\",900000],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"26826\"]]"); p = add_epsg_def_ex (filter, first, last, 26830, "epsg", 26830, "NAD83(HARN) / Minnesota North (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); add_proj4text (p, 2, "00101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0"); add_proj4text (p, 3, ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Minnesota North (ftUS) (deprecate"); add_srs_wkt (p, 1, "d)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_"); add_srs_wkt (p, 2, "Reference_Network\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",48.63333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",47.03333333333333],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",46.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 12, "an\",-93.1],PARAMETER[\"false_easting\",800000.000010160"); add_srs_wkt (p, 13, "1],PARAMETER[\"false_northing\",99999.99998984],UNIT[\"m"); add_srs_wkt (p, 14, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 15, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26830\"]]"); p = add_epsg_def_ex (filter, first, last, 26831, "epsg", 26831, "NAD83(HARN) / Minnesota Central (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.999989"); add_proj4text (p, 2, "84 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Minnesota Central (ftUS) (depreca"); add_srs_wkt (p, 1, "ted)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accurac"); add_srs_wkt (p, 2, "y_Reference_Network\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",47.05],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",45.61666666666667],PARAMETER[\"latitude_"); add_srs_wkt (p, 11, "of_origin\",45],PARAMETER[\"central_meridian\",-94.25],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_easting\",800000.0000101601],PARAMETER["); add_srs_wkt (p, 13, "\"false_northing\",99999.99998984],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 15, "RTH],AUTHORITY[\"EPSG\",\"26831\"]]"); p = add_epsg_def_ex (filter, first, last, 26832, "epsg", 26832, "NAD83(HARN) / Minnesota South (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=999"); add_proj4text (p, 2, "99.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Minnesota South (ftUS) (deprecate"); add_srs_wkt (p, 1, "d)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_"); add_srs_wkt (p, 2, "Reference_Network\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",45.21666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",43.78333333333333],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",43],PARAMETER[\"central_meridian"); add_srs_wkt (p, 12, "\",-94],PARAMETER[\"false_easting\",800000.0000101601],P"); add_srs_wkt (p, 13, "ARAMETER[\"false_northing\",99999.99998984],UNIT[\"metre"); add_srs_wkt (p, 14, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 15, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26832\"]]"); p = add_epsg_def_ex (filter, first, last, 26833, "epsg", 26833, "NAD83(HARN) / Nebraska (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Nebraska (ftUS) (deprecated)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Referen"); add_srs_wkt (p, 2, "ce_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_1\",43],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",40],PARAMETER[\"latitude_of_origin\",39.8333333333"); add_srs_wkt (p, 11, "3334],PARAMETER[\"central_meridian\",-100],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_easting\",500000.0000101601],PARAMETER[\"false_nort"); add_srs_wkt (p, 13, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 14, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "26833\"]]"); p = add_epsg_def_ex (filter, first, last, 26834, "epsg", 26834, "NAD83(HARN) / West Virginia North (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,"); add_proj4text (p, 2, "0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / West Virginia North (ftUS) (depre"); add_srs_wkt (p, 1, "cated)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accur"); add_srs_wkt (p, 2, "acy_Reference_Network\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_1\",40.25],PARAMETER[\"sta"); add_srs_wkt (p, 10, "ndard_parallel_2\",39],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 11, "38.5],PARAMETER[\"central_meridian\",-79.5],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",1968500],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 13, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 14, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26834\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 26835, "epsg", 26835, "NAD83(HARN) / West Virginia South (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, "0 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / West Virginia South (ftUS) (depre"); add_srs_wkt (p, 1, "cated)\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accur"); add_srs_wkt (p, 2, "acy_Reference_Network\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4152\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_1\",38.88333333333333],PAR"); add_srs_wkt (p, 10, "AMETER[\"standard_parallel_2\",37.48333333333333],PARAME"); add_srs_wkt (p, 11, "TER[\"latitude_of_origin\",37],PARAMETER[\"central_merid"); add_srs_wkt (p, 12, "ian\",-81],PARAMETER[\"false_easting\",1968500],PARAMETE"); add_srs_wkt (p, 13, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 15, "ITY[\"EPSG\",\"26835\"]]"); p = add_epsg_def_ex (filter, first, last, 26836, "epsg", 26836, "NAD83(NSRS2007) / Maine East (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maine East (ftUS) (deprecated"); add_srs_wkt (p, 1, ")\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Sp"); add_srs_wkt (p, 2, "atial_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 3, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 4, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",43.66666666666666],PARAMET"); add_srs_wkt (p, 10, "ER[\"central_meridian\",-68.5],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 11, ",0.9999],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"26836\"]]"); p = add_epsg_def_ex (filter, first, last, 26837, "epsg", 26837, "NAD83(NSRS2007) / Maine West (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maine West (ftUS) (deprecated"); add_srs_wkt (p, 1, ")\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Sp"); add_srs_wkt (p, 2, "atial_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 3, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 4, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",42.83333333333334],PARAMET"); add_srs_wkt (p, 10, "ER[\"central_meridian\",-70.16666666666667],PARAMETER[\""); add_srs_wkt (p, 11, "scale_factor\",0.999966667],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "900000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"26837\"]]"); p = add_epsg_def_ex (filter, first, last, 26841, "epsg", 26841, "NAD83(NSRS2007) / Minnesota North (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); add_proj4text (p, 2, "00101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0"); add_proj4text (p, 3, ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Minnesota North (ftUS) (depre"); add_srs_wkt (p, 1, "cated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Nation"); add_srs_wkt (p, 2, "al_Spatial_Reference_System_2007\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 3, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 4, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM"); add_srs_wkt (p, 5, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 6, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 7, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 8, "ITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 9, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",48.6333333"); add_srs_wkt (p, 10, "3333333],PARAMETER[\"standard_parallel_2\",47.0333333333"); add_srs_wkt (p, 11, "3333],PARAMETER[\"latitude_of_origin\",46.5],PARAMETER[\""); add_srs_wkt (p, 12, "central_meridian\",-93.1],PARAMETER[\"false_easting\",80"); add_srs_wkt (p, 13, "0000.0000101601],PARAMETER[\"false_northing\",99999.9999"); add_srs_wkt (p, 14, "8984],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 15, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"268"); add_srs_wkt (p, 16, "41\"]]"); p = add_epsg_def_ex (filter, first, last, 26842, "epsg", 26842, "NAD83(NSRS2007) / Minnesota Central (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.999989"); add_proj4text (p, 2, "84 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Minnesota Central (ftUS) (dep"); add_srs_wkt (p, 1, "recated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Nati"); add_srs_wkt (p, 2, "onal_Spatial_Reference_System_2007\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 3, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 4, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIM"); add_srs_wkt (p, 5, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 9, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.05],P"); add_srs_wkt (p, 10, "ARAMETER[\"standard_parallel_2\",45.61666666666667],PARA"); add_srs_wkt (p, 11, "METER[\"latitude_of_origin\",45],PARAMETER[\"central_mer"); add_srs_wkt (p, 12, "idian\",-94.25],PARAMETER[\"false_easting\",800000.00001"); add_srs_wkt (p, 13, "01601],PARAMETER[\"false_northing\",99999.99998984],UNIT"); add_srs_wkt (p, 14, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 15, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26842\"]]"); p = add_epsg_def_ex (filter, first, last, 26843, "epsg", 26843, "NAD83(NSRS2007) / Minnesota South (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=999"); add_proj4text (p, 2, "99.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Minnesota South (ftUS) (depre"); add_srs_wkt (p, 1, "cated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Nation"); add_srs_wkt (p, 2, "al_Spatial_Reference_System_2007\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 3, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 4, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM"); add_srs_wkt (p, 5, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 6, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 7, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 8, "ITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 9, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",45.2166666"); add_srs_wkt (p, 10, "6666667],PARAMETER[\"standard_parallel_2\",43.7833333333"); add_srs_wkt (p, 11, "3333],PARAMETER[\"latitude_of_origin\",43],PARAMETER[\"c"); add_srs_wkt (p, 12, "entral_meridian\",-94],PARAMETER[\"false_easting\",80000"); add_srs_wkt (p, 13, "0.0000101601],PARAMETER[\"false_northing\",99999.9999898"); add_srs_wkt (p, 14, "4],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 15, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26843\""); add_srs_wkt (p, 16, "]]"); p = add_epsg_def_ex (filter, first, last, 26844, "epsg", 26844, "NAD83(NSRS2007) / Nebraska (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Nebraska (ftUS) (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spati"); add_srs_wkt (p, 2, "al_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 3, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 4, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 9, "\"],PARAMETER[\"standard_parallel_1\",43],PARAMETER[\"st"); add_srs_wkt (p, 10, "andard_parallel_2\",40],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",39.83333333333334],PARAMETER[\"central_meridian\",-100]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_easting\",500000.0000101601],PARAMETE"); add_srs_wkt (p, 13, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 15, "ITY[\"EPSG\",\"26844\"]]"); p = add_epsg_def_ex (filter, first, last, 26845, "epsg", 26845, "NAD83(NSRS2007) / West Virginia North (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,"); add_proj4text (p, 2, "0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / West Virginia North (ftUS) (d"); add_srs_wkt (p, 1, "eprecated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Na"); add_srs_wkt (p, 2, "tional_Spatial_Reference_System_2007\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 3, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 4, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 9, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.25],"); add_srs_wkt (p, 10, "PARAMETER[\"standard_parallel_2\",39],PARAMETER[\"latitu"); add_srs_wkt (p, 11, "de_of_origin\",38.5],PARAMETER[\"central_meridian\",-79."); add_srs_wkt (p, 12, "5],PARAMETER[\"false_easting\",1968500],PARAMETER[\"fals"); add_srs_wkt (p, 13, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 14, "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 15, "SG\",\"26845\"]]"); p = add_epsg_def_ex (filter, first, last, 26846, "epsg", 26846, "NAD83(NSRS2007) / West Virginia South (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, "0 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / West Virginia South (ftUS) (d"); add_srs_wkt (p, 1, "eprecated)\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_Na"); add_srs_wkt (p, 2, "tional_Spatial_Reference_System_2007\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 3, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 4, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 9, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.8833"); add_srs_wkt (p, 10, "3333333333],PARAMETER[\"standard_parallel_2\",37.4833333"); add_srs_wkt (p, 11, "3333333],PARAMETER[\"latitude_of_origin\",37],PARAMETER["); add_srs_wkt (p, 12, "\"central_meridian\",-81],PARAMETER[\"false_easting\",19"); add_srs_wkt (p, 13, "68500],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 15, ",NORTH],AUTHORITY[\"EPSG\",\"26846\"]]"); p = add_epsg_def_ex (filter, first, last, 26847, "epsg", 26847, "NAD83 / Maine East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine East (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",43.66666666666666],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",-68.5],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9999],PARAMETER[\"false_easting\",984250.000000"); add_srs_wkt (p, 11, "0002],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); add_srs_wkt (p, 12, "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); add_srs_wkt (p, 13, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 14, "6847\"]]"); p = add_epsg_def_ex (filter, first, last, 26848, "epsg", 26848, "NAD83 / Maine West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine West (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",42.83333333333334],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",-70.16666666666667],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",0.999966667],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",2952750],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 12, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"26848\"]]"); p = add_epsg_def_ex (filter, first, last, 26849, "epsg", 26849, "NAD83 / Minnesota North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); add_proj4text (p, 2, "00101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 3, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Minnesota North (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.6333"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"standard_parallel_2\",47.0333333"); add_srs_wkt (p, 10, "3333333],PARAMETER[\"latitude_of_origin\",46.5],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-93.1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",2624666.6667],PARAMETER[\"false_northing\",328083.3333]"); add_srs_wkt (p, 13, ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 15, "HORITY[\"EPSG\",\"26849\"]]"); p = add_epsg_def_ex (filter, first, last, 26850, "epsg", 26850, "NAD83 / Minnesota Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989"); add_proj4text (p, 2, "83997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Minnesota Central (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.0"); add_srs_wkt (p, 9, "5],PARAMETER[\"standard_parallel_2\",45.61666666666667],"); add_srs_wkt (p, 10, "PARAMETER[\"latitude_of_origin\",45],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-94.25],PARAMETER[\"false_easting\",2624666."); add_srs_wkt (p, 12, "6667],PARAMETER[\"false_northing\",328083.3333],UNIT[\"U"); add_srs_wkt (p, 13, "S survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"26850\"]]"); p = add_epsg_def_ex (filter, first, last, 26851, "epsg", 26851, "NAD83 / Minnesota South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999"); add_proj4text (p, 2, "99.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Minnesota South (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.2166"); add_srs_wkt (p, 9, "6666666667],PARAMETER[\"standard_parallel_2\",43.7833333"); add_srs_wkt (p, 10, "3333333],PARAMETER[\"latitude_of_origin\",43],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-94],PARAMETER[\"false_easting\",26"); add_srs_wkt (p, 12, "24666.6667],PARAMETER[\"false_northing\",328083.3333],UN"); add_srs_wkt (p, 13, "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 15, "ITY[\"EPSG\",\"26851\"]]"); p = add_epsg_def_ex (filter, first, last, 26852, "epsg", 26852, "NAD83 / Nebraska (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Nebraska (ftUS)\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",43],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",40],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",39.83333333333334],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, "-100],PARAMETER[\"false_easting\",1640416.6667],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 13, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 14, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26852\"]]"); p = add_epsg_def_ex (filter, first, last, 26853, "epsg", 26853, "NAD83 / West Virginia North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / West Virginia North (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40"); add_srs_wkt (p, 9, ".25],PARAMETER[\"standard_parallel_2\",39],PARAMETER[\"l"); add_srs_wkt (p, 10, "atitude_of_origin\",38.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-79.5],PARAMETER[\"false_easting\",1968500],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26853\"]]"); p = add_epsg_def_ex (filter, first, last, 26854, "epsg", 26854, "NAD83 / West Virginia South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / West Virginia South (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38"); add_srs_wkt (p, 9, ".88333333333333],PARAMETER[\"standard_parallel_2\",37.48"); add_srs_wkt (p, 10, "333333333333],PARAMETER[\"latitude_of_origin\",37],PARAM"); add_srs_wkt (p, 11, "ETER[\"central_meridian\",-81],PARAMETER[\"false_easting"); add_srs_wkt (p, 12, "\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US su"); add_srs_wkt (p, 13, "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 14, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 15, "\",\"26854\"]]"); p = add_epsg_def_ex (filter, first, last, 26855, "epsg", 26855, "NAD83(HARN) / Maine East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine East (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",43.66666666666666],PARAMETER[\"central_meridian\",-68.5"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",984250.0000000002],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"26855\"]]"); p = add_epsg_def_ex (filter, first, last, 26856, "epsg", 26856, "NAD83(HARN) / Maine West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine West (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",42.83333333333334],PARAMETER[\"central_meridian\",-70.1"); add_srs_wkt (p, 10, "6666666666667],PARAMETER[\"scale_factor\",0.999966667],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",2952750],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"26856\"]]"); p = add_epsg_def_ex (filter, first, last, 26857, "epsg", 26857, "NAD83(HARN) / Minnesota North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); add_proj4text (p, 2, "00101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 3, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Minnesota North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",48.63333333333333],PARAMETER[\"standard"); add_srs_wkt (p, 10, "_parallel_2\",47.03333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 11, "_origin\",46.5],PARAMETER[\"central_meridian\",-93.1],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_easting\",2624666.6667],PARAMETER[\"fals"); add_srs_wkt (p, 13, "e_northing\",328083.3333],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 14, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 15, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26857\"]]"); p = add_epsg_def_ex (filter, first, last, 26858, "epsg", 26858, "NAD83(HARN) / Minnesota Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989"); add_proj4text (p, 2, "83997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Minnesota Central (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_N"); add_srs_wkt (p, 2, "etwork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 9, "andard_parallel_1\",47.05],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 10, "_2\",45.61666666666667],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",45],PARAMETER[\"central_meridian\",-94.25],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",2624666.6667],PARAMETER[\"false_northing"); add_srs_wkt (p, 13, "\",328083.3333],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 14, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 15, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26858\"]]"); p = add_epsg_def_ex (filter, first, last, 26859, "epsg", 26859, "NAD83(HARN) / Minnesota South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999"); add_proj4text (p, 2, "99.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Minnesota South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",45.21666666666667],PARAMETER[\"standard"); add_srs_wkt (p, 10, "_parallel_2\",43.78333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 11, "_origin\",43],PARAMETER[\"central_meridian\",-94],PARAME"); add_srs_wkt (p, 12, "TER[\"false_easting\",2624666.6667],PARAMETER[\"false_no"); add_srs_wkt (p, 13, "rthing\",328083.3333],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 14, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 15, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26859\"]]"); p = add_epsg_def_ex (filter, first, last, 26860, "epsg", 26860, "NAD83(HARN) / Nebraska (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Nebraska (ftUS)\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",43],PARAMETER[\"standard_parallel_2\",40],PAR"); add_srs_wkt (p, 10, "AMETER[\"latitude_of_origin\",39.83333333333334],PARAMET"); add_srs_wkt (p, 11, "ER[\"central_meridian\",-100],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",1640416.6667],PARAMETER[\"false_northing\",0],UNIT[\"US"); add_srs_wkt (p, 13, " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"26860\"]]"); p = add_epsg_def_ex (filter, first, last, 26861, "epsg", 26861, "NAD83(HARN) / West Virginia North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / West Virginia North (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference"); add_srs_wkt (p, 2, "_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",40.25],PARAMETER[\"standard_parall"); add_srs_wkt (p, 10, "el_2\",39],PARAMETER[\"latitude_of_origin\",38.5],PARAME"); add_srs_wkt (p, 11, "TER[\"central_meridian\",-79.5],PARAMETER[\"false_eastin"); add_srs_wkt (p, 12, "g\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US s"); add_srs_wkt (p, 13, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 14, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 15, "G\",\"26861\"]]"); p = add_epsg_def_ex (filter, first, last, 26862, "epsg", 26862, "NAD83(HARN) / West Virginia South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / West Virginia South (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference"); add_srs_wkt (p, 2, "_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",38.88333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 10, "ndard_parallel_2\",37.48333333333333],PARAMETER[\"latitu"); add_srs_wkt (p, 11, "de_of_origin\",37],PARAMETER[\"central_meridian\",-81],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_easting\",1968500],PARAMETER[\"false_no"); add_srs_wkt (p, 13, "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 15, ",NORTH],AUTHORITY[\"EPSG\",\"26862\"]]"); p = add_epsg_def_ex (filter, first, last, 26863, "epsg", 26863, "NAD83(NSRS2007) / Maine East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maine East (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",43.66666666666666],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",-68.5],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",984250.0000000002],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 13, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 14, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26863\"]]"); p = add_epsg_def_ex (filter, first, last, 26864, "epsg", 26864, "NAD83(NSRS2007) / Maine West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maine West (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",42.83333333333334],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",-70.16666666666667],PARAMETER[\"scale_facto"); add_srs_wkt (p, 11, "r\",0.999966667],PARAMETER[\"false_easting\",2952750],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 13, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26864\"]]"); p = add_epsg_def_ex (filter, first, last, 26865, "epsg", 26865, "NAD83(NSRS2007) / Minnesota North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.00"); add_proj4text (p, 2, "00101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 3, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Minnesota North (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",48.63333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",47.03333333333333],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",46.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 12, "an\",-93.1],PARAMETER[\"false_easting\",2624666.6667],PA"); add_srs_wkt (p, 13, "RAMETER[\"false_northing\",328083.3333],UNIT[\"US survey"); add_srs_wkt (p, 14, " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); add_srs_wkt (p, 15, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 16, "26865\"]]"); p = add_epsg_def_ex (filter, first, last, 26866, "epsg", 26866, "NAD83(NSRS2007) / Minnesota Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.999989"); add_proj4text (p, 2, "83997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Minnesota Central (ftUS)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); add_srs_wkt (p, 2, "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_1\",47.05],PARAMETER[\"sta"); add_srs_wkt (p, 10, "ndard_parallel_2\",45.61666666666667],PARAMETER[\"latitu"); add_srs_wkt (p, 11, "de_of_origin\",45],PARAMETER[\"central_meridian\",-94.25"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",2624666.6667],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",328083.3333],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 14, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 15, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26866\"]]"); p = add_epsg_def_ex (filter, first, last, 26867, "epsg", 26867, "NAD83(NSRS2007) / Minnesota South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=999"); add_proj4text (p, 2, "99.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Minnesota South (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",45.21666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",43.78333333333333],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",43],PARAMETER[\"central_meridian"); add_srs_wkt (p, 12, "\",-94],PARAMETER[\"false_easting\",2624666.6667],PARAME"); add_srs_wkt (p, 13, "TER[\"false_northing\",328083.3333],UNIT[\"US survey foo"); add_srs_wkt (p, 14, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 15, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"268"); add_srs_wkt (p, 16, "67\"]]"); p = add_epsg_def_ex (filter, first, last, 26868, "epsg", 26868, "NAD83(NSRS2007) / Nebraska (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Nebraska (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",43],PARAMETER[\"standard_parall"); add_srs_wkt (p, 10, "el_2\",40],PARAMETER[\"latitude_of_origin\",39.833333333"); add_srs_wkt (p, 11, "33334],PARAMETER[\"central_meridian\",-100],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",1640416.6667],PARAMETER[\"false_northing"); add_srs_wkt (p, 13, "\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 15, "],AUTHORITY[\"EPSG\",\"26868\"]]"); p = add_epsg_def_ex (filter, first, last, 26869, "epsg", 26869, "NAD83(NSRS2007) / West Virginia North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / West Virginia North (ftUS)\","); add_srs_wkt (p, 1, "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia"); add_srs_wkt (p, 2, "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 3, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_1\",40.25],PARAMETER[\"s"); add_srs_wkt (p, 10, "tandard_parallel_2\",39],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",38.5],PARAMETER[\"central_meridian\",-79.5],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",1968500],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 13, ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 15, "HORITY[\"EPSG\",\"26869\"]]"); p = add_epsg_def_ex (filter, first, last, 26870, "epsg", 26870, "NAD83(NSRS2007) / West Virginia South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / West Virginia South (ftUS)\","); add_srs_wkt (p, 1, "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia"); add_srs_wkt (p, 2, "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 3, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_1\",38.88333333333333],P"); add_srs_wkt (p, 10, "ARAMETER[\"standard_parallel_2\",37.48333333333333],PARA"); add_srs_wkt (p, 11, "METER[\"latitude_of_origin\",37],PARAMETER[\"central_mer"); add_srs_wkt (p, 12, "idian\",-81],PARAMETER[\"false_easting\",1968500],PARAME"); add_srs_wkt (p, 13, "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 14, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 15, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26870\"]]"); p = add_epsg_def_ex (filter, first, last, 26891, "epsg", 26891, "NAD83(CSRS) / MTM zone 11", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 11\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-82.5],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9999],PARAMETER[\"false_easting\",304800],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 13, "hing\",NORTH],AUTHORITY[\"EPSG\",\"26891\"]]"); p = add_epsg_def_ex (filter, first, last, 26892, "epsg", 26892, "NAD83(CSRS) / MTM zone 12", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 12\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",304800],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"26892\"]]"); p = add_epsg_def_ex (filter, first, last, 26893, "epsg", 26893, "NAD83(CSRS) / MTM zone 13", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 13\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-84],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",304800],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"26893\"]]"); p = add_epsg_def_ex (filter, first, last, 26894, "epsg", 26894, "NAD83(CSRS) / MTM zone 14", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 14\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-87],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",304800],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"26894\"]]"); p = add_epsg_def_ex (filter, first, last, 26895, "epsg", 26895, "NAD83(CSRS) / MTM zone 15", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 15\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-90],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",304800],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"26895\"]]"); p = add_epsg_def_ex (filter, first, last, 26896, "epsg", 26896, "NAD83(CSRS) / MTM zone 16", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 16\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-93],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",304800],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"26896\"]]"); p = add_epsg_def_ex (filter, first, last, 26897, "epsg", 26897, "NAD83(CSRS) / MTM zone 17", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 17\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-96],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",304800],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"26897\"]]"); p = add_epsg_def_ex (filter, first, last, 26898, "epsg", 26898, "NAD83(CSRS) / MTM zone 1", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 1\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-53],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",304800],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"26898\"]]"); p = add_epsg_def_ex (filter, first, last, 26899, "epsg", 26899, "NAD83(CSRS) / MTM zone 2", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / MTM zone 2\",GEOGCS[\"NAD83(CSRS)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-56],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",304800],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"26899\"]]"); p = add_epsg_def_ex (filter, first, last, 26901, "epsg", 26901, "NAD83 / UTM zone 1N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=1 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 1N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-177],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26901\"]]"); p = add_epsg_def_ex (filter, first, last, 26902, "epsg", 26902, "NAD83 / UTM zone 2N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=2 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 2N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-171],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26902\"]]"); p = add_epsg_def_ex (filter, first, last, 26903, "epsg", 26903, "NAD83 / UTM zone 3N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=3 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 3N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-165],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26903\"]]"); p = add_epsg_def_ex (filter, first, last, 26904, "epsg", 26904, "NAD83 / UTM zone 4N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=4 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 4N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-159],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26904\"]]"); p = add_epsg_def_ex (filter, first, last, 26905, "epsg", 26905, "NAD83 / UTM zone 5N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=5 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 5N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-153],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26905\"]]"); p = add_epsg_def_ex (filter, first, last, 26906, "epsg", 26906, "NAD83 / UTM zone 6N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=6 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 6N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-147],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26906\"]]"); p = add_epsg_def_ex (filter, first, last, 26907, "epsg", 26907, "NAD83 / UTM zone 7N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=7 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 7N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-141],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26907\"]]"); p = add_epsg_def_ex (filter, first, last, 26908, "epsg", 26908, "NAD83 / UTM zone 8N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=8 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 8N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-135],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26908\"]]"); p = add_epsg_def_ex (filter, first, last, 26909, "epsg", 26909, "NAD83 / UTM zone 9N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=9 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 9N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-129],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26909\"]]"); p = add_epsg_def_ex (filter, first, last, 26910, "epsg", 26910, "NAD83 / UTM zone 10N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=10 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 10N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-123],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26910\"]]"); p = add_epsg_def_ex (filter, first, last, 26911, "epsg", 26911, "NAD83 / UTM zone 11N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 11N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-117],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26911\"]]"); p = add_epsg_def_ex (filter, first, last, 26912, "epsg", 26912, "NAD83 / UTM zone 12N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 12N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-111],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26912\"]]"); p = add_epsg_def_ex (filter, first, last, 26913, "epsg", 26913, "NAD83 / UTM zone 13N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 13N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-105],PARAMETER[\"scale_factor\",0.9996],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26913\"]]"); p = add_epsg_def_ex (filter, first, last, 26914, "epsg", 26914, "NAD83 / UTM zone 14N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 14N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-99],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26914\"]]"); p = add_epsg_def_ex (filter, first, last, 26915, "epsg", 26915, "NAD83 / UTM zone 15N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 15N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-93],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26915\"]]"); p = add_epsg_def_ex (filter, first, last, 26916, "epsg", 26916, "NAD83 / UTM zone 16N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 16N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-87],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26916\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ��������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_02.c��������������������������������������������������0000664�0001750�0001750�00000567610�12544707704�017050� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_02 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 2209, "epsg", 2209, "ED50 / 3-degree Gauss-Kruger zone 12", 0, 1, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0"); add_proj4text (p, 1, " +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / 3-degree Gauss-Kruger zone 12\",GEOGCS[\""); add_srs_wkt (p, 1, "ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",36],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",12500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"2209\"]]"); p = add_epsg_def_ex (filter, first, last, 2210, "epsg", 2210, "ED50 / 3-degree Gauss-Kruger zone 13", 0, 1, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / 3-degree Gauss-Kruger zone 13\",GEOGCS[\""); add_srs_wkt (p, 1, "ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",39],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",13500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"2210\"]]"); p = add_epsg_def_ex (filter, first, last, 2211, "epsg", 2211, "ED50 / 3-degree Gauss-Kruger zone 14", 0, 1, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / 3-degree Gauss-Kruger zone 14\",GEOGCS[\""); add_srs_wkt (p, 1, "ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",42],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",14500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"2211\"]]"); p = add_epsg_def_ex (filter, first, last, 2212, "epsg", 2212, "ED50 / 3-degree Gauss-Kruger zone 15", 0, 1, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / 3-degree Gauss-Kruger zone 15\",GEOGCS[\""); add_srs_wkt (p, 1, "ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",45],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",15500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"2212\"]]"); p = add_epsg_def_ex (filter, first, last, 2213, "epsg", 2213, "ETRS89 / TM 30 NE", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM 30 NE\",GEOGCS[\"ETRS89\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Terrestrial_Reference_System_1989\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",30],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2213\"]]"); p = add_epsg_def_ex (filter, first, last, 2214, "epsg", 2214, "Douala 1948 / AOF west (deprecated)", 0, 0, "International 1924", "Greenwich", "Douala_1948", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=10.5 +k=0.999 +x_0=1000000 +"); add_proj4text (p, 1, "y_0=1000000 +ellps=intl +towgs84=-206.1,-174.7,-87.7,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Douala 1948 / AOF west (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "Douala 1948\",DATUM[\"Douala_1948\",SPHEROID[\"Internati"); add_srs_wkt (p, 2, "onal 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TO"); add_srs_wkt (p, 3, "WGS84[-206.1,-174.7,-87.7,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6192\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4192\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",10.5],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.999],PARAMETER[\"false_easting\",1000000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"2214\"]]"); p = add_epsg_def_ex (filter, first, last, 2215, "epsg", 2215, "Manoca 1962 / UTM zone 32N", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Manoca_1962", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +towgs84=-70."); add_proj4text (p, 1, "9,-151.8,-41.4,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Manoca 1962 / UTM zone 32N\",GEOGCS[\"Manoca 19"); add_srs_wkt (p, 1, "62\",DATUM[\"Manoca_1962\",SPHEROID[\"Clarke 1880 (IGN)\""); add_srs_wkt (p, 2, ",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\""); add_srs_wkt (p, 3, "]],TOWGS84[-70.9,-151.8,-41.4,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6193\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4193\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"2215\"]]"); p = add_epsg_def_ex (filter, first, last, 2216, "epsg", 2216, "Qornoq 1927 / UTM zone 22N", 0, 0, "International 1924", "Greenwich", "Qornoq_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=intl +towgs84=164,138,-189,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Qornoq 1927 / UTM zone 22N\",GEOGCS[\"Qornoq 19"); add_srs_wkt (p, 1, "27\",DATUM[\"Qornoq_1927\",SPHEROID[\"International 1924"); add_srs_wkt (p, 2, "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[164"); add_srs_wkt (p, 3, ",138,-189,0,0,0,0],AUTHORITY[\"EPSG\",\"6194\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4194\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",-51],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"2216\"]]"); p = add_epsg_def_ex (filter, first, last, 2217, "epsg", 2217, "Qornoq 1927 / UTM zone 23N", 0, 0, "International 1924", "Greenwich", "Qornoq_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +ellps=intl +towgs84=164,138,-189,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Qornoq 1927 / UTM zone 23N\",GEOGCS[\"Qornoq 19"); add_srs_wkt (p, 1, "27\",DATUM[\"Qornoq_1927\",SPHEROID[\"International 1924"); add_srs_wkt (p, 2, "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[164"); add_srs_wkt (p, 3, ",138,-189,0,0,0,0],AUTHORITY[\"EPSG\",\"6194\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4194\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",-45],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"2217\"]]"); p = add_epsg_def_ex (filter, first, last, 2219, "epsg", 2219, "ATS77 / UTM zone 19N", 0, 0, "Average Terrestrial System 1977", "Greenwich", "Average_Terrestrial_System_1977", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +a=6378135 +b=6356750.304921594 +unit"); add_proj4text (p, 1, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ATS77 / UTM zone 19N\",GEOGCS[\"ATS77\",DATUM[\""); add_srs_wkt (p, 1, "Average_Terrestrial_System_1977\",SPHEROID[\"Average Ter"); add_srs_wkt (p, 2, "restrial System 1977\",6378135,298.257,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7041\"]],AUTHORITY[\"EPSG\",\"6122\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4122\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2219\"]]"); p = add_epsg_def_ex (filter, first, last, 2220, "epsg", 2220, "ATS77 / UTM zone 20N", 0, 0, "Average Terrestrial System 1977", "Greenwich", "Average_Terrestrial_System_1977", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +a=6378135 +b=6356750.304921594 +unit"); add_proj4text (p, 1, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ATS77 / UTM zone 20N\",GEOGCS[\"ATS77\",DATUM[\""); add_srs_wkt (p, 1, "Average_Terrestrial_System_1977\",SPHEROID[\"Average Ter"); add_srs_wkt (p, 2, "restrial System 1977\",6378135,298.257,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7041\"]],AUTHORITY[\"EPSG\",\"6122\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4122\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2220\"]]"); p = add_epsg_def_ex (filter, first, last, 2222, "epsg", 2222, "NAD83 / Arizona East (ft)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arizona East (ft)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",-110.1666666666667],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9999],PARAMETER[\"false_easting\",700000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2222\"]]"); p = add_epsg_def_ex (filter, first, last, 2223, "epsg", 2223, "NAD83 / Arizona Central (ft)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arizona Central (ft)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-111.9166666666667],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",700000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"2223\"]]"); p = add_epsg_def_ex (filter, first, last, 2224, "epsg", 2224, "NAD83 / Arizona West (ft)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, "=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arizona West (ft)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",-113.75],PARAMETER[\"scale_factor\",0.9999"); add_srs_wkt (p, 10, "33333],PARAMETER[\"false_easting\",700000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"2224\"]]"); p = add_epsg_def_ex (filter, first, last, 2225, "epsg", 2225, "NAD83 / California zone 1 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, "3333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=5000"); add_proj4text (p, 2, "00.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 1 (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.6"); add_srs_wkt (p, 9, "6666666666666],PARAMETER[\"standard_parallel_2\",40],PAR"); add_srs_wkt (p, 10, "AMETER[\"latitude_of_origin\",39.33333333333334],PARAMET"); add_srs_wkt (p, 11, "ER[\"central_meridian\",-122],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",6561666.667],PARAMETER[\"false_northing\",1640416.667],"); add_srs_wkt (p, 13, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 15, "ORITY[\"EPSG\",\"2225\"]]"); p = add_epsg_def_ex (filter, first, last, 2226, "epsg", 2226, "NAD83 / California zone 2 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.00"); add_proj4text (p, 2, "01016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0"); add_proj4text (p, 3, ",0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 2 (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.8"); add_srs_wkt (p, 9, "3333333333334],PARAMETER[\"standard_parallel_2\",38.3333"); add_srs_wkt (p, 10, "3333333334],PARAMETER[\"latitude_of_origin\",37.66666666"); add_srs_wkt (p, 11, "666666],PARAMETER[\"central_meridian\",-122],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",6561666.667],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",1640416.667],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 15, "\",NORTH],AUTHORITY[\"EPSG\",\"2226\"]]"); p = add_epsg_def_ex (filter, first, last, 2227, "epsg", 2227, "NAD83 / California zone 3 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0="); add_proj4text (p, 2, "500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 3, "nits=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 3 (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.4"); add_srs_wkt (p, 9, "3333333333333],PARAMETER[\"standard_parallel_2\",37.0666"); add_srs_wkt (p, 10, "6666666667],PARAMETER[\"latitude_of_origin\",36.5],PARAM"); add_srs_wkt (p, 11, "ETER[\"central_meridian\",-120.5],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",6561666.667],PARAMETER[\"false_northing\",1640416."); add_srs_wkt (p, 13, "667],UNIT[\"US survey foot\",0.3048006096012192,AUTHORIT"); add_srs_wkt (p, 14, "Y[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 15, ",AUTHORITY[\"EPSG\",\"2227\"]]"); p = add_epsg_def_ex (filter, first, last, 2228, "epsg", 2228, "NAD83 / California zone 4 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, "4 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.000101600"); add_proj4text (p, 2, "1 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 4 (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.2"); add_srs_wkt (p, 9, "5],PARAMETER[\"standard_parallel_2\",36],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",35.33333333333334],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-119],PARAMETER[\"false_easting\",6561666.66"); add_srs_wkt (p, 12, "7],PARAMETER[\"false_northing\",1640416.667],UNIT[\"US s"); add_srs_wkt (p, 13, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 14, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 15, "G\",\"2228\"]]"); p = add_epsg_def_ex (filter, first, last, 2229, "epsg", 2229, "NAD83 / California zone 5 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=50"); add_proj4text (p, 2, "0000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 3, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 5 (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35.4"); add_srs_wkt (p, 9, "6666666666667],PARAMETER[\"standard_parallel_2\",34.0333"); add_srs_wkt (p, 10, "3333333333],PARAMETER[\"latitude_of_origin\",33.5],PARAM"); add_srs_wkt (p, 11, "ETER[\"central_meridian\",-118],PARAMETER[\"false_eastin"); add_srs_wkt (p, 12, "g\",6561666.667],PARAMETER[\"false_northing\",1640416.66"); add_srs_wkt (p, 13, "7],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"2229\"]]"); p = add_epsg_def_ex (filter, first, last, 2230, "epsg", 2230, "NAD83 / California zone 6 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000"); add_proj4text (p, 2, ".0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 3, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 6 (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",33.8"); add_srs_wkt (p, 9, "8333333333333],PARAMETER[\"standard_parallel_2\",32.7833"); add_srs_wkt (p, 10, "3333333333],PARAMETER[\"latitude_of_origin\",32.16666666"); add_srs_wkt (p, 11, "666666],PARAMETER[\"central_meridian\",-116.25],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_easting\",6561666.667],PARAMETER[\"false_north"); add_srs_wkt (p, 13, "ing\",1640416.667],UNIT[\"US survey foot\",0.30480060960"); add_srs_wkt (p, 14, "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 15, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2230\"]]"); p = add_epsg_def_ex (filter, first, last, 2231, "epsg", 2231, "NAD83 / Colorado North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666"); add_proj4text (p, 1, "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 3, ",0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Colorado North (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.78333"); add_srs_wkt (p, 9, "333333333],PARAMETER[\"standard_parallel_2\",39.71666666"); add_srs_wkt (p, 10, "666667],PARAMETER[\"latitude_of_origin\",39.333333333333"); add_srs_wkt (p, 11, "34],PARAMETER[\"central_meridian\",-105.5],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_easting\",3000000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 13, "0000],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 15, "],AUTHORITY[\"EPSG\",\"2231\"]]"); p = add_epsg_def_ex (filter, first, last, 2232, "epsg", 2232, "NAD83 / Colorado Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, "3334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.60"); add_proj4text (p, 2, "96012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Colorado Central (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.75"); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_2\",38.45],PARAMETER[\"l"); add_srs_wkt (p, 10, "atitude_of_origin\",37.83333333333334],PARAMETER[\"centr"); add_srs_wkt (p, 11, "al_meridian\",-105.5],PARAMETER[\"false_easting\",300000"); add_srs_wkt (p, 12, "0],PARAMETER[\"false_northing\",1000000],UNIT[\"US surve"); add_srs_wkt (p, 13, "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); add_srs_wkt (p, 14, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 15, "\"2232\"]]"); p = add_epsg_def_ex (filter, first, last, 2233, "epsg", 2233, "NAD83 / Colorado South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 3, ",0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Colorado South (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.43333"); add_srs_wkt (p, 9, "333333333],PARAMETER[\"standard_parallel_2\",37.23333333"); add_srs_wkt (p, 10, "333333],PARAMETER[\"latitude_of_origin\",36.666666666666"); add_srs_wkt (p, 11, "66],PARAMETER[\"central_meridian\",-105.5],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_easting\",3000000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 13, "0000],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 15, "],AUTHORITY[\"EPSG\",\"2233\"]]"); p = add_epsg_def_ex (filter, first, last, 2234, "epsg", 2234, "NAD83 / Connecticut (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, ".83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_"); add_proj4text (p, 2, "0=152400.3048006096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 3, "+units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Connecticut (ftUS)\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",41.8666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"standard_parallel_2\",41.2],PARAMET"); add_srs_wkt (p, 10, "ER[\"latitude_of_origin\",40.83333333333334],PARAMETER[\""); add_srs_wkt (p, 11, "central_meridian\",-72.75],PARAMETER[\"false_easting\",1"); add_srs_wkt (p, 12, "000000],PARAMETER[\"false_northing\",500000],UNIT[\"US s"); add_srs_wkt (p, 13, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 14, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 15, "G\",\"2234\"]]"); p = add_epsg_def_ex (filter, first, last, 2235, "epsg", 2235, "NAD83 / Delaware (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, "995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Delaware (ftUS)\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",-75.41666666666667],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",0.999995],PARAMETER[\"false_easting\",656166.667],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 12, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2235\"]]"); p = add_epsg_def_ex (filter, first, last, 2236, "epsg", 2236, "NAD83 / Florida East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs"); add_proj4text (p, 2, "84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Florida East (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",24.33333333333333],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.999941177],PARAMETER[\"false_easting\",656166.6"); add_srs_wkt (p, 11, "67],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 12, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"223"); add_srs_wkt (p, 14, "6\"]]"); p = add_epsg_def_ex (filter, first, last, 2237, "epsg", 2237, "NAD83 / Florida West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs"); add_proj4text (p, 2, "84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Florida West (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",24.33333333333333],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",-82],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.999941177],PARAMETER[\"false_easting\",656166.6"); add_srs_wkt (p, 11, "67],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 12, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"223"); add_srs_wkt (p, 14, "7\"]]"); p = add_epsg_def_ex (filter, first, last, 2238, "epsg", 2238, "NAD83 / Florida North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Florida North (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",30.75],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",29.58333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",29],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-84.5],PARAMETER[\"false_easting\",1968500],PARA"); add_srs_wkt (p, 12, "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 13, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2238\"]]"); p = add_epsg_def_ex (filter, first, last, 2239, "epsg", 2239, "NAD83 / Georgia East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 2, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Georgia East (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-82.16666666666667],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9999],PARAMETER[\"false_easting\",656166.667],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 12, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 13, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2239\"]]"); p = add_epsg_def_ex (filter, first, last, 2240, "epsg", 2240, "NAD83 / Georgia West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 2, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Georgia West (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-84.16666666666667],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9999],PARAMETER[\"false_easting\",2296583.333],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\","); add_srs_wkt (p, 12, "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2240\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 2241, "epsg", 2241, "NAD83 / Idaho East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, "666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Idaho East (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",41.66666666666666],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",-112.1666666666667],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",0.999947368],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",656166.667],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"2241\"]]"); p = add_epsg_def_ex (filter, first, last, 2242, "epsg", 2242, "NAD83 / Idaho Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, "99473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, "0 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Idaho Central (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",41.66666666666666"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-114],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.999947368],PARAMETER[\"false_easting\",16404"); add_srs_wkt (p, 11, "16.667],PARAMETER[\"false_northing\",0],UNIT[\"US survey"); add_srs_wkt (p, 12, " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); add_srs_wkt (p, 13, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "2242\"]]"); p = add_epsg_def_ex (filter, first, last, 2243, "epsg", 2243, "NAD83 / Idaho West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, ".999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Idaho West (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",41.66666666666666],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",-115.75],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.999933333],PARAMETER[\"false_easting\",262466"); add_srs_wkt (p, 11, "6.667],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); add_srs_wkt (p, 12, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 13, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "2243\"]]"); p = add_epsg_def_ex (filter, first, last, 2244, "epsg", 2244, "NAD83 / Indiana East (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=99999.99989839978 +y_0=249364.9987299975 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Indiana East (ftUS) (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",37.5],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",-85.66666666666667],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",0.999966667],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",328083.333],PARAMETER[\"false_northing\",818125],"); add_srs_wkt (p, 12, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"2244\"]]"); p = add_epsg_def_ex (filter, first, last, 2245, "epsg", 2245, "NAD83 / Indiana West (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=900000 +y_0=249364.9987299975 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Indiana West (ftUS) (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",37.5],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",-87.08333333333333],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",0.999966667],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",2952750],PARAMETER[\"false_northing\",818125],UNI"); add_srs_wkt (p, 12, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"2245\"]]"); p = add_epsg_def_ex (filter, first, last, 2246, "epsg", 2246, "NAD83 / Kentucky North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kentucky North (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.96666"); add_srs_wkt (p, 9, "666666667],PARAMETER[\"standard_parallel_2\",38.96666666"); add_srs_wkt (p, 10, "666667],PARAMETER[\"latitude_of_origin\",37.5],PARAMETER"); add_srs_wkt (p, 11, "[\"central_meridian\",-84.25],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",1640416.667],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 13, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 14, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 15, "SG\",\"2246\"]]"); p = add_epsg_def_ex (filter, first, last, 2247, "epsg", 2247, "NAD83 / Kentucky South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333"); add_proj4text (p, 1, "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0"); add_proj4text (p, 2, "001016001 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 3, ",0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kentucky South (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.93333"); add_srs_wkt (p, 9, "333333333],PARAMETER[\"standard_parallel_2\",36.73333333"); add_srs_wkt (p, 10, "333333],PARAMETER[\"latitude_of_origin\",36.333333333333"); add_srs_wkt (p, 11, "34],PARAMETER[\"central_meridian\",-85.75],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_easting\",1640416.667],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",1640416.667],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 15, "\",NORTH],AUTHORITY[\"EPSG\",\"2247\"]]"); p = add_epsg_def_ex (filter, first, last, 2248, "epsg", 2248, "NAD83 / Maryland (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666"); add_proj4text (p, 1, "666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, "0 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maryland (ftUS)\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",39.45],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",38.3],PARAMETER[\"latitude_o"); add_srs_wkt (p, 10, "f_origin\",37.66666666666666],PARAMETER[\"central_meridi"); add_srs_wkt (p, 11, "an\",-77],PARAMETER[\"false_easting\",1312333.333],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 13, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2248\"]]"); p = add_epsg_def_ex (filter, first, last, 2249, "epsg", 2249, "NAD83 / Massachusetts Mainland (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, "667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=7"); add_proj4text (p, 2, "50000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Massachusetts Mainland (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 9, "2.68333333333333],PARAMETER[\"standard_parallel_2\",41.7"); add_srs_wkt (p, 10, "1666666666667],PARAMETER[\"latitude_of_origin\",41],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-71.5],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",656166.667],PARAMETER[\"false_northing\",2460625],"); add_srs_wkt (p, 13, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 15, "ORITY[\"EPSG\",\"2249\"]]"); p = add_epsg_def_ex (filter, first, last, 2250, "epsg", 2250, "NAD83 / Massachusetts Island (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333"); add_proj4text (p, 1, "333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0"); add_proj4text (p, 2, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_de"); add_proj4text (p, 3, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Massachusetts Island (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 9, "1.48333333333333],PARAMETER[\"standard_parallel_2\",41.2"); add_srs_wkt (p, 10, "8333333333333],PARAMETER[\"latitude_of_origin\",41],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-70.5],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",1640416.667],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 13, "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"2250\"]]"); p = add_epsg_def_ex (filter, first, last, 2251, "epsg", 2251, "NAD83 / Michigan North (ft)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333"); add_proj4text (p, 1, "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999"); add_proj4text (p, 2, "968001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Michigan North (ft)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",47.0833333"); add_srs_wkt (p, 9, "3333334],PARAMETER[\"standard_parallel_2\",45.4833333333"); add_srs_wkt (p, 10, "3333],PARAMETER[\"latitude_of_origin\",44.78333333333333"); add_srs_wkt (p, 11, "],PARAMETER[\"central_meridian\",-87],PARAMETER[\"false_"); add_srs_wkt (p, 12, "easting\",26246719.16],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 13, "NIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2251\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 2252, "epsg", 2252, "NAD83 / Michigan Central (ft)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43"); add_proj4text (p, 1, ".31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.9"); add_proj4text (p, 2, "99976001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 3, "ts=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Michigan Central (ft)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.7],PA"); add_srs_wkt (p, 9, "RAMETER[\"standard_parallel_2\",44.18333333333333],PARAM"); add_srs_wkt (p, 10, "ETER[\"latitude_of_origin\",43.31666666666667],PARAMETER"); add_srs_wkt (p, 11, "[\"central_meridian\",-84.36666666666666],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_easting\",19685039.37],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AX"); add_srs_wkt (p, 14, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22"); add_srs_wkt (p, 15, "52\"]]"); p = add_epsg_def_ex (filter, first, last, 2253, "epsg", 2253, "NAD83 / Michigan South (ft)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41"); add_proj4text (p, 1, ".5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Michigan South (ft)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",43.6666666"); add_srs_wkt (p, 9, "6666666],PARAMETER[\"standard_parallel_2\",42.1],PARAMET"); add_srs_wkt (p, 10, "ER[\"latitude_of_origin\",41.5],PARAMETER[\"central_meri"); add_srs_wkt (p, 11, "dian\",-84.36666666666666],PARAMETER[\"false_easting\",1"); add_srs_wkt (p, 12, "3123359.58],PARAMETER[\"false_northing\",0],UNIT[\"foot\""); add_srs_wkt (p, 13, ",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 14, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2253\"]]"); p = add_epsg_def_ex (filter, first, last, 2254, "epsg", 2254, "NAD83 / Mississippi East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Mississippi East (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",29.5],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-88.83333333333333],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",0.99995],PARAMETER[\"false_easting\",98425"); add_srs_wkt (p, 11, "0.0000000002],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 12, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"2254\"]]"); p = add_epsg_def_ex (filter, first, last, 2255, "epsg", 2255, "NAD83 / Mississippi West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Mississippi West (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",29.5],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-90.33333333333333],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",0.99995],PARAMETER[\"false_easting\",22965"); add_srs_wkt (p, 11, "83.333],PARAMETER[\"false_northing\",0],UNIT[\"US survey"); add_srs_wkt (p, 12, " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); add_srs_wkt (p, 13, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "2255\"]]"); p = add_epsg_def_ex (filter, first, last, 2256, "epsg", 2256, "NAD83 / Montana (ft)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5"); add_proj4text (p, 1, " +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Montana (ft)\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"standard_parallel_1\",49],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_2\",45],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",44.25],PARAMETER[\"central_meridian\",-109.5],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",1968503.937],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"2256\"]]"); p = add_epsg_def_ex (filter, first, last, 2257, "epsg", 2257, "NAD83 / New Mexico East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); add_proj4text (p, 1, "909091 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Mexico East (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-104.3333333333333],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.999909091],PARAMETER[\"false_easting\",54133"); add_srs_wkt (p, 11, "7.5],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); add_srs_wkt (p, 12, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22"); add_srs_wkt (p, 14, "57\"]]"); p = add_epsg_def_ex (filter, first, last, 2258, "epsg", 2258, "NAD83 / New Mexico Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000"); add_proj4text (p, 1, "00.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Mexico Central (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",-106.25],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9999],PARAMETER[\"false_easting\",1640416.667],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 12, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2258\"]]"); p = add_epsg_def_ex (filter, first, last, 2259, "epsg", 2259, "NAD83 / New Mexico West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); add_proj4text (p, 1, "916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +towgs"); add_proj4text (p, 2, "84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Mexico West (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-107.8333333333333],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.999916667],PARAMETER[\"false_easting\",27230"); add_srs_wkt (p, 11, "91.667],PARAMETER[\"false_northing\",0],UNIT[\"US survey"); add_srs_wkt (p, 12, " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); add_srs_wkt (p, 13, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "2259\"]]"); p = add_epsg_def_ex (filter, first, last, 2260, "epsg", 2260, "NAD83 / New York East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New York East (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",38.83333333333334"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-74.5],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9999],PARAMETER[\"false_easting\",492125],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 12, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 13, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2260\"]]"); p = add_epsg_def_ex (filter, first, last, 2261, "epsg", 2261, "NAD83 / New York Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New York Central (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",40],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",-76.58333333333333],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.9999375],PARAMETER[\"false_easting\",82020"); add_srs_wkt (p, 11, "8.3330000002],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 12, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"2261\"]]"); p = add_epsg_def_ex (filter, first, last, 2262, "epsg", 2262, "NAD83 / New York West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New York West (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-78.58333333333333],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999375],PARAMETER[\"false_easting\",1148291."); add_srs_wkt (p, 11, "667],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); add_srs_wkt (p, 12, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22"); add_srs_wkt (p, 14, "62\"]]"); p = add_epsg_def_ex (filter, first, last, 2263, "epsg", 2263, "NAD83 / New York Long Island (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000"); add_proj4text (p, 2, "000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New York Long Island (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",4"); add_srs_wkt (p, 9, "1.03333333333333],PARAMETER[\"standard_parallel_2\",40.6"); add_srs_wkt (p, 10, "6666666666666],PARAMETER[\"latitude_of_origin\",40.16666"); add_srs_wkt (p, 11, "666666666],PARAMETER[\"central_meridian\",-74],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",984250.0000000002],PARAMETER[\"false_"); add_srs_wkt (p, 13, "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 15, "\",NORTH],AUTHORITY[\"EPSG\",\"2263\"]]"); p = add_epsg_def_ex (filter, first, last, 2264, "epsg", 2264, "NAD83 / North Carolina (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); add_proj4text (p, 1, "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / North Carolina (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.16666"); add_srs_wkt (p, 9, "666666666],PARAMETER[\"standard_parallel_2\",34.33333333"); add_srs_wkt (p, 10, "333334],PARAMETER[\"latitude_of_origin\",33.75],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-79],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "2000000],PARAMETER[\"false_northing\",0],UNIT[\"US surve"); add_srs_wkt (p, 13, "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); add_srs_wkt (p, 14, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 15, "\"2264\"]]"); p = add_epsg_def_ex (filter, first, last, 2265, "epsg", 2265, "NAD83 / North Dakota North (ft)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333"); add_proj4text (p, 1, "333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / North Dakota North (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.73"); add_srs_wkt (p, 9, "333333333333],PARAMETER[\"standard_parallel_2\",47.43333"); add_srs_wkt (p, 10, "333333333],PARAMETER[\"latitude_of_origin\",47],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-100.5],PARAMETER[\"false_easting"); add_srs_wkt (p, 12, "\",1968503.937],PARAMETER[\"false_northing\",0],UNIT[\"f"); add_srs_wkt (p, 13, "oot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 14, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2265\"]]"); p = add_epsg_def_ex (filter, first, last, 2266, "epsg", 2266, "NAD83 / North Dakota South (ft)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333"); add_proj4text (p, 1, "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9"); add_proj4text (p, 2, "999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / North Dakota South (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.48"); add_srs_wkt (p, 9, "333333333333],PARAMETER[\"standard_parallel_2\",46.18333"); add_srs_wkt (p, 10, "333333333],PARAMETER[\"latitude_of_origin\",45.666666666"); add_srs_wkt (p, 11, "66666],PARAMETER[\"central_meridian\",-100.5],PARAMETER["); add_srs_wkt (p, 12, "\"false_easting\",1968503.937],PARAMETER[\"false_northin"); add_srs_wkt (p, 13, "g\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]"); add_srs_wkt (p, 14, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 15, "\"2266\"]]"); p = add_epsg_def_ex (filter, first, last, 2267, "epsg", 2267, "NAD83 / Oklahoma North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666"); add_proj4text (p, 1, "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oklahoma North (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.76666"); add_srs_wkt (p, 9, "666666667],PARAMETER[\"standard_parallel_2\",35.56666666"); add_srs_wkt (p, 10, "666667],PARAMETER[\"latitude_of_origin\",35],PARAMETER[\""); add_srs_wkt (p, 11, "central_meridian\",-98],PARAMETER[\"false_easting\",1968"); add_srs_wkt (p, 12, "500],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); add_srs_wkt (p, 13, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 14, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22"); add_srs_wkt (p, 15, "67\"]]"); p = add_epsg_def_ex (filter, first, last, 2268, "epsg", 2268, "NAD83 / Oklahoma South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333"); add_proj4text (p, 1, "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oklahoma South (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35.23333"); add_srs_wkt (p, 9, "333333333],PARAMETER[\"standard_parallel_2\",33.93333333"); add_srs_wkt (p, 10, "333333],PARAMETER[\"latitude_of_origin\",33.333333333333"); add_srs_wkt (p, 11, "34],PARAMETER[\"central_meridian\",-98],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_easting\",1968500],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 13, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 15, "TY[\"EPSG\",\"2268\"]]"); p = add_epsg_def_ex (filter, first, last, 2269, "epsg", 2269, "NAD83 / Oregon North (ft)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oregon North (ft)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",46],PARAMET"); add_srs_wkt (p, 9, "ER[\"standard_parallel_2\",44.33333333333334],PARAMETER["); add_srs_wkt (p, 10, "\"latitude_of_origin\",43.66666666666666],PARAMETER[\"ce"); add_srs_wkt (p, 11, "ntral_meridian\",-120.5],PARAMETER[\"false_easting\",820"); add_srs_wkt (p, 12, "2099.738],PARAMETER[\"false_northing\",0],UNIT[\"foot\","); add_srs_wkt (p, 13, "0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2269\"]]"); p = add_epsg_def_ex (filter, first, last, 2270, "epsg", 2270, "NAD83 / Oregon South (ft)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oregon South (ft)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",44],PARAMET"); add_srs_wkt (p, 9, "ER[\"standard_parallel_2\",42.33333333333334],PARAMETER["); add_srs_wkt (p, 10, "\"latitude_of_origin\",41.66666666666666],PARAMETER[\"ce"); add_srs_wkt (p, 11, "ntral_meridian\",-120.5],PARAMETER[\"false_easting\",492"); add_srs_wkt (p, 12, "1259.843],PARAMETER[\"false_northing\",0],UNIT[\"foot\","); add_srs_wkt (p, 13, "0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2270\"]]"); p = add_epsg_def_ex (filter, first, last, 2271, "epsg", 2271, "NAD83 / Pennsylvania North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4"); add_proj4text (p, 1, "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Pennsylvania North (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.9"); add_srs_wkt (p, 9, "5],PARAMETER[\"standard_parallel_2\",40.88333333333333],"); add_srs_wkt (p, 10, "PARAMETER[\"latitude_of_origin\",40.16666666666666],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-77.75],PARAMETER[\"false_eas"); add_srs_wkt (p, 12, "ting\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"U"); add_srs_wkt (p, 13, "S survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"2271\"]]"); p = add_epsg_def_ex (filter, first, last, 2272, "epsg", 2272, "NAD83 / Pennsylvania South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); add_proj4text (p, 1, "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Pennsylvania South (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.9"); add_srs_wkt (p, 9, "6666666666667],PARAMETER[\"standard_parallel_2\",39.9333"); add_srs_wkt (p, 10, "3333333333],PARAMETER[\"latitude_of_origin\",39.33333333"); add_srs_wkt (p, 11, "333334],PARAMETER[\"central_meridian\",-77.75],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",1968500],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 15, "AUTHORITY[\"EPSG\",\"2272\"]]"); p = add_epsg_def_ex (filter, first, last, 2273, "epsg", 2273, "NAD83 / South Carolina (ft)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31"); add_proj4text (p, 1, ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / South Carolina (ft)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",34.8333333"); add_srs_wkt (p, 9, "3333334],PARAMETER[\"standard_parallel_2\",32.5],PARAMET"); add_srs_wkt (p, 10, "ER[\"latitude_of_origin\",31.83333333333333],PARAMETER[\""); add_srs_wkt (p, 11, "central_meridian\",-81],PARAMETER[\"false_easting\",2000"); add_srs_wkt (p, 12, "000],PARAMETER[\"false_northing\",0],UNIT[\"foot\",0.304"); add_srs_wkt (p, 13, "8,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"2273\"]]"); p = add_epsg_def_ex (filter, first, last, 2274, "epsg", 2274, "NAD83 / Tennessee (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3"); add_proj4text (p, 1, "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Tennessee (ftUS)\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",36.4166666666"); add_srs_wkt (p, 9, "6666],PARAMETER[\"standard_parallel_2\",35.25],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",34.33333333333334],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-86],PARAMETER[\"false_easting\",19685"); add_srs_wkt (p, 12, "00],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 13, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"227"); add_srs_wkt (p, 15, "4\"]]"); p = add_epsg_def_ex (filter, first, last, 2275, "epsg", 2275, "NAD83 / Texas North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3"); add_proj4text (p, 1, "4 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.99989"); add_proj4text (p, 2, "83998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas North (ftUS)\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",36.1833333"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"standard_parallel_2\",34.65],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",34],PARAMETER[\"central_merid"); add_srs_wkt (p, 11, "ian\",-101.5],PARAMETER[\"false_easting\",656166.667],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_northing\",3280833.333],UNIT[\"US survey"); add_srs_wkt (p, 13, " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); add_srs_wkt (p, 14, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "2275\"]]"); p = add_epsg_def_ex (filter, first, last, 2276, "epsg", 2276, "NAD83 / Texas North Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333"); add_proj4text (p, 1, "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y"); add_proj4text (p, 2, "_0=2000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 3, "units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas North Central (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",33"); add_srs_wkt (p, 9, ".96666666666667],PARAMETER[\"standard_parallel_2\",32.13"); add_srs_wkt (p, 10, "333333333333],PARAMETER[\"latitude_of_origin\",31.666666"); add_srs_wkt (p, 11, "66666667],PARAMETER[\"central_meridian\",-98.5],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_easting\",1968500],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",6561666.667],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 15, "\",NORTH],AUTHORITY[\"EPSG\",\"2276\"]]"); p = add_epsg_def_ex (filter, first, last, 2277, "epsg", 2277, "NAD83 / Texas Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666"); add_proj4text (p, 1, "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); add_proj4text (p, 2, "x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +towgs84"); add_proj4text (p, 3, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas Central (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",31.88333"); add_srs_wkt (p, 9, "333333333],PARAMETER[\"standard_parallel_2\",30.11666666"); add_srs_wkt (p, 10, "666667],PARAMETER[\"latitude_of_origin\",29.666666666666"); add_srs_wkt (p, 11, "67],PARAMETER[\"central_meridian\",-100.3333333333333],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_easting\",2296583.333],PARAMETER[\"fals"); add_srs_wkt (p, 13, "e_northing\",9842500.000000002],UNIT[\"US survey foot\","); add_srs_wkt (p, 14, "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 15, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2277\"]"); add_srs_wkt (p, 16, "]"); p = add_epsg_def_ex (filter, first, last, 2278, "epsg", 2278, "NAD83 / Texas South Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333"); add_proj4text (p, 1, "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0"); add_proj4text (p, 2, "=3999999.9998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un"); add_proj4text (p, 3, "its=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas South Central (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",30"); add_srs_wkt (p, 9, ".28333333333333],PARAMETER[\"standard_parallel_2\",28.38"); add_srs_wkt (p, 10, "333333333333],PARAMETER[\"latitude_of_origin\",27.833333"); add_srs_wkt (p, 11, "33333333],PARAMETER[\"central_meridian\",-99],PARAMETER["); add_srs_wkt (p, 12, "\"false_easting\",1968500],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "13123333.333],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 15, "\",NORTH],AUTHORITY[\"EPSG\",\"2278\"]]"); p = add_epsg_def_ex (filter, first, last, 2279, "epsg", 2279, "NAD83 / Texas South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.00"); add_proj4text (p, 2, "00000001 +y_0=5000000.0001016 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 3, "0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas South (ftUS)\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",27.8333333"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"standard_parallel_2\",26.1666666666"); add_srs_wkt (p, 10, "6667],PARAMETER[\"latitude_of_origin\",25.66666666666667"); add_srs_wkt (p, 11, "],PARAMETER[\"central_meridian\",-98.5],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_easting\",984250.0000000002],PARAMETER[\"false_northin"); add_srs_wkt (p, 13, "g\",16404166.667],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 14, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 15, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2279\"]]"); p = add_epsg_def_ex (filter, first, last, 2280, "epsg", 2280, "NAD83 / Utah North (ft)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0"); add_proj4text (p, 2, "001504 +y_0=999999.9999960001 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 3, "0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Utah North (ft)\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",41.7833333333"); add_srs_wkt (p, 9, "3333],PARAMETER[\"standard_parallel_2\",40.7166666666666"); add_srs_wkt (p, 10, "7],PARAMETER[\"latitude_of_origin\",40.33333333333334],P"); add_srs_wkt (p, 11, "ARAMETER[\"central_meridian\",-111.5],PARAMETER[\"false_"); add_srs_wkt (p, 12, "easting\",1640419.948],PARAMETER[\"false_northing\",3280"); add_srs_wkt (p, 13, "839.895],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"2280\"]]"); p = add_epsg_def_ex (filter, first, last, 2281, "epsg", 2281, "NAD83 / Utah Central (ft)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0="); add_proj4text (p, 2, "1999999.999992 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Utah Central (ft)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",40.65],PARA"); add_srs_wkt (p, 9, "METER[\"standard_parallel_2\",39.01666666666667],PARAMET"); add_srs_wkt (p, 10, "ER[\"latitude_of_origin\",38.33333333333334],PARAMETER[\""); add_srs_wkt (p, 11, "central_meridian\",-111.5],PARAMETER[\"false_easting\",1"); add_srs_wkt (p, 12, "640419.948],PARAMETER[\"false_northing\",6561679.79],UNI"); add_srs_wkt (p, 13, "T[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X"); add_srs_wkt (p, 14, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2281\"]]"); p = add_epsg_def_ex (filter, first, last, 2282, "epsg", 2282, "NAD83 / Utah South (ft)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0="); add_proj4text (p, 2, "2999999.999988 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Utah South (ft)\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",38.35],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",37.21666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-111.5],PARAMETER[\"false_easting\",16"); add_srs_wkt (p, 12, "40419.948],PARAMETER[\"false_northing\",9842519.685],UNI"); add_srs_wkt (p, 13, "T[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X"); add_srs_wkt (p, 14, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2282\"]]"); p = add_epsg_def_ex (filter, first, last, 2283, "epsg", 2283, "NAD83 / Virginia North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37"); add_proj4text (p, 1, ".66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2"); add_proj4text (p, 2, "000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Virginia North (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.2],PA"); add_srs_wkt (p, 9, "RAMETER[\"standard_parallel_2\",38.03333333333333],PARAM"); add_srs_wkt (p, 10, "ETER[\"latitude_of_origin\",37.66666666666666],PARAMETER"); add_srs_wkt (p, 11, "[\"central_meridian\",-78.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",11482916.667],PARAMETER[\"false_northing\",6561666.667]"); add_srs_wkt (p, 13, ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 15, "HORITY[\"EPSG\",\"2283\"]]"); p = add_epsg_def_ex (filter, first, last, 2284, "epsg", 2284, "NAD83 / Virginia South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666"); add_proj4text (p, 1, "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0"); add_proj4text (p, 2, "001016 +y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 3, "0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Virginia South (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.96666"); add_srs_wkt (p, 9, "666666667],PARAMETER[\"standard_parallel_2\",36.76666666"); add_srs_wkt (p, 10, "666667],PARAMETER[\"latitude_of_origin\",36.333333333333"); add_srs_wkt (p, 11, "34],PARAMETER[\"central_meridian\",-78.5],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_easting\",11482916.667],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",3280833.333],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 15, "\",NORTH],AUTHORITY[\"EPSG\",\"2284\"]]"); p = add_epsg_def_ex (filter, first, last, 2285, "epsg", 2285, "NAD83 / Washington North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47"); add_proj4text (p, 1, " +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0"); add_proj4text (p, 2, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_de"); add_proj4text (p, 3, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Washington North (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",48.73"); add_srs_wkt (p, 9, "333333333333],PARAMETER[\"standard_parallel_2\",47.5],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",47],PARAMETER[\"central_m"); add_srs_wkt (p, 11, "eridian\",-120.8333333333333],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",1640416.667],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 13, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 14, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 15, "SG\",\"2285\"]]"); p = add_epsg_def_ex (filter, first, last, 2286, "epsg", 2286, "NAD83 / Washington South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333"); add_proj4text (p, 1, "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0"); add_proj4text (p, 2, "001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un"); add_proj4text (p, 3, "its=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Washington South (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",47.33"); add_srs_wkt (p, 9, "333333333334],PARAMETER[\"standard_parallel_2\",45.83333"); add_srs_wkt (p, 10, "333333334],PARAMETER[\"latitude_of_origin\",45.333333333"); add_srs_wkt (p, 11, "33334],PARAMETER[\"central_meridian\",-120.5],PARAMETER["); add_srs_wkt (p, 12, "\"false_easting\",1640416.667],PARAMETER[\"false_northin"); add_srs_wkt (p, 13, "g\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 15, "H],AUTHORITY[\"EPSG\",\"2286\"]]"); p = add_epsg_def_ex (filter, first, last, 2287, "epsg", 2287, "NAD83 / Wisconsin North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666"); add_proj4text (p, 1, "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wisconsin North (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",46.7666"); add_srs_wkt (p, 9, "6666666667],PARAMETER[\"standard_parallel_2\",45.5666666"); add_srs_wkt (p, 10, "6666667],PARAMETER[\"latitude_of_origin\",45.16666666666"); add_srs_wkt (p, 11, "666],PARAMETER[\"central_meridian\",-90],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_easting\",1968500],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 13, "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 15, "ITY[\"EPSG\",\"2287\"]]"); p = add_epsg_def_ex (filter, first, last, 2288, "epsg", 2288, "NAD83 / Wisconsin Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); add_proj4text (p, 1, "334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wisconsin Central (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45.5"); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_2\",44.25],PARAMETER[\"l"); add_srs_wkt (p, 10, "atitude_of_origin\",43.83333333333334],PARAMETER[\"centr"); add_srs_wkt (p, 11, "al_meridian\",-90],PARAMETER[\"false_easting\",1968500],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\","); add_srs_wkt (p, 13, "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2288\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 2289, "epsg", 2289, "NAD83 / Wisconsin South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333"); add_proj4text (p, 1, "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wisconsin South (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44.0666"); add_srs_wkt (p, 9, "6666666667],PARAMETER[\"standard_parallel_2\",42.7333333"); add_srs_wkt (p, 10, "3333333],PARAMETER[\"latitude_of_origin\",42],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-90],PARAMETER[\"false_easting\",19"); add_srs_wkt (p, 12, "68500],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); add_srs_wkt (p, 13, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 14, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "2289\"]]"); p = add_epsg_def_ex (filter, first, last, 2290, "epsg", 2290, "ATS77 / Prince Edward Isl. Stereographic (ATS77)", 0, 0, "Average Terrestrial System 1977", "Greenwich", "Average_Terrestrial_System_1977", "Oblique_Stereographic", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=70"); add_proj4text (p, 1, "0000 +y_0=400000 +a=6378135 +b=6356750.304921594 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ATS77 / Prince Edward Isl. Stereographic (ATS77"); add_srs_wkt (p, 1, ")\",GEOGCS[\"ATS77\",DATUM[\"Average_Terrestrial_System_"); add_srs_wkt (p, 2, "1977\",SPHEROID[\"Average Terrestrial System 1977\",6378"); add_srs_wkt (p, 3, "135,298.257,AUTHORITY[\"EPSG\",\"7041\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6122\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4122\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Oblique_Stereographic\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",47.25],PARAMETER[\"central_meridian\",-63],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.999912],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "700000],PARAMETER[\"false_northing\",400000],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2290\"]]"); p = add_epsg_def_ex (filter, first, last, 2291, "epsg", 2291, "NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated)", 0, 0, "Average Terrestrial System 1977", "Greenwich", "Average_Terrestrial_System_1977", "Oblique_Stereographic", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=40"); add_proj4text (p, 1, "0000 +y_0=800000 +a=6378135 +b=6356750.304921594 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / Prince Edward Isl. Stereographi"); add_srs_wkt (p, 1, "c (NAD83) (deprecated)\",GEOGCS[\"ATS77\",DATUM[\"Averag"); add_srs_wkt (p, 2, "e_Terrestrial_System_1977\",SPHEROID[\"Average Terrestri"); add_srs_wkt (p, 3, "al System 1977\",6378135,298.257,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 4, "41\"]],AUTHORITY[\"EPSG\",\"6122\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4122\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER"); add_srs_wkt (p, 9, "[\"latitude_of_origin\",47.25],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-63],PARAMETER[\"scale_factor\",0.999912],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",400000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",800000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, "AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"2291\"]]"); p = add_epsg_def_ex (filter, first, last, 2292, "epsg", 2292, "NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Oblique_Stereographic", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=40"); add_proj4text (p, 1, "0000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / Prince Edward Isl. Stereographi"); add_srs_wkt (p, 1, "c (NAD83) (deprecated)\",GEOGCS[\"NAD83(CSRS98)\",DATUM["); add_srs_wkt (p, 2, "\"NAD83_Canadian_Spatial_Reference_System\",SPHEROID[\"G"); add_srs_wkt (p, 3, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 4, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6140\""); add_srs_wkt (p, 5, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 6, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 8, "T],AUTHORITY[\"EPSG\",\"4140\"]],PROJECTION[\"Oblique_St"); add_srs_wkt (p, 9, "ereographic\"],PARAMETER[\"latitude_of_origin\",47.25],P"); add_srs_wkt (p, 10, "ARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fac"); add_srs_wkt (p, 11, "tor\",0.999912],PARAMETER[\"false_easting\",400000],PARA"); add_srs_wkt (p, 12, "METER[\"false_northing\",800000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAST],AXIS[\"N(Y)\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"2292\"]]"); p = add_epsg_def_ex (filter, first, last, 2294, "epsg", 2294, "ATS77 / MTM Nova Scotia zone 4", 0, 0, "Average Terrestrial System 1977", "Greenwich", "Average_Terrestrial_System_1977", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=4500000"); add_proj4text (p, 1, " +y_0=0 +a=6378135 +b=6356750.304921594 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"ATS77 / MTM Nova Scotia zone 4\",GEOGCS[\"ATS77"); add_srs_wkt (p, 1, "\",DATUM[\"Average_Terrestrial_System_1977\",SPHEROID[\""); add_srs_wkt (p, 2, "Average Terrestrial System 1977\",6378135,298.257,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7041\"]],AUTHORITY[\"EPSG\",\"6122\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4122\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-61.5],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "99],PARAMETER[\"false_easting\",4500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2294\"]]"); p = add_epsg_def_ex (filter, first, last, 2295, "epsg", 2295, "ATS77 / MTM Nova Scotia zone 5", 0, 0, "Average Terrestrial System 1977", "Greenwich", "Average_Terrestrial_System_1977", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=5500000"); add_proj4text (p, 1, " +y_0=0 +a=6378135 +b=6356750.304921594 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"ATS77 / MTM Nova Scotia zone 5\",GEOGCS[\"ATS77"); add_srs_wkt (p, 1, "\",DATUM[\"Average_Terrestrial_System_1977\",SPHEROID[\""); add_srs_wkt (p, 2, "Average Terrestrial System 1977\",6378135,298.257,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7041\"]],AUTHORITY[\"EPSG\",\"6122\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4122\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-64.5],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "99],PARAMETER[\"false_easting\",5500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2295\"]]"); p = add_epsg_def_ex (filter, first, last, 2308, "epsg", 2308, "Batavia / TM 109 SE", 0, 0, "Bessel 1841", "Greenwich", "Batavia", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=109 +k=0.9996 +x_0=500000 +y"); add_proj4text (p, 1, "_0=10000000 +ellps=bessel +towgs84=-377,681,-50,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Batavia / TM 109 SE\",GEOGCS[\"Batavia\",DATUM["); add_srs_wkt (p, 1, "\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299.152"); add_srs_wkt (p, 2, "8128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-50,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4211\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",109],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_easting\",500000],PARAMETER[\"false_northing\",1000"); add_srs_wkt (p, 11, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"2308\"]]"); p = add_epsg_def_ex (filter, first, last, 2309, "epsg", 2309, "WGS 84 / TM 116 SE", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=116 +k=0.9996 +x_0=500000 +y"); add_proj4text (p, 1, "_0=10000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / TM 116 SE\",GEOGCS[\"WGS 84\",DATUM[\""); add_srs_wkt (p, 1, "WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]]"); add_srs_wkt (p, 3, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 4, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 5, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, "[\"central_meridian\",116],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"2309\"]]"); p = add_epsg_def_ex (filter, first, last, 2310, "epsg", 2310, "WGS 84 / TM 132 SE", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=0.9996 +x_0=500000 +y"); add_proj4text (p, 1, "_0=10000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / TM 132 SE\",GEOGCS[\"WGS 84\",DATUM[\""); add_srs_wkt (p, 1, "WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]]"); add_srs_wkt (p, 3, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 4, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 5, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 7, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 8, "[\"central_meridian\",132],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"2310\"]]"); p = add_epsg_def_ex (filter, first, last, 2311, "epsg", 2311, "WGS 84 / TM 6 NE", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=6 +k=0.9996 +x_0=500000 +y_0"); add_proj4text (p, 1, "=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / TM 6 NE\",GEOGCS[\"WGS 84\",DATUM[\"WG"); add_srs_wkt (p, 1, "S_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],P"); add_srs_wkt (p, 3, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 4, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 5, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 7, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 8, "central_meridian\",6],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 10, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 11, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"2311\"]]"); p = add_epsg_def_ex (filter, first, last, 2312, "epsg", 2312, "Garoua / UTM zone 33N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Garoua", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Garoua / UTM zone 33N\",GEOGCS[\"Garoua\",DATUM"); add_srs_wkt (p, 1, "[\"Garoua\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,2"); add_srs_wkt (p, 2, "93.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"6197\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 6, "de\",EAST],AUTHORITY[\"EPSG\",\"4197\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 7, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 8, ",PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_fa"); add_srs_wkt (p, 9, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"2312\"]]"); p = add_epsg_def_ex (filter, first, last, 2313, "epsg", 2313, "Kousseri / UTM zone 33N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Kousseri", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kousseri / UTM zone 33N\",GEOGCS[\"Kousseri\",D"); add_srs_wkt (p, 1, "ATUM[\"Kousseri\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6198\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 6, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4198\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"sc"); add_srs_wkt (p, 9, "ale_factor\",0.9996],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"2313\"]]"); p = add_epsg_def_ex (filter, first, last, 2314, "epsg", 2314, "Trinidad 1903 / Trinidad Grid (ftCla)", 0, 0, "Clarke 1858", "Greenwich", "Trinidad_1903", "Cassini_Soldner", "Clarke's foot", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=cass +lat_0=10.44166666666667 +lon_0=-61.333333333"); add_proj4text (p, 1, "33334 +x_0=86501.46392052001 +y_0=65379.0134283 +a=63782"); add_proj4text (p, 2, "93.645208759 +b=6356617.987679838 +towgs84=-61.702,284.4"); add_proj4text (p, 3, "88,472.052,0,0,0,0 +to_meter=0.3047972654 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Trinidad 1903 / Trinidad Grid (ftCla)\",GEOGCS["); add_srs_wkt (p, 1, "\"Trinidad 1903\",DATUM[\"Trinidad_1903\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1858\",6378293.645208759,294.2606763692606,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7007\"]],TOWGS84[-61.702,284.488,472.052,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6302\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4302\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",10.44166666666667],PARAMETER[\"central"); add_srs_wkt (p, 10, "_meridian\",-61.33333333333334],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",283800],PARAMETER[\"false_northing\",214500],UNIT[\""); add_srs_wkt (p, 12, "Clarke's foot\",0.3047972654,AUTHORITY[\"EPSG\",\"9005\""); add_srs_wkt (p, 13, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"2314\"]]"); p = add_epsg_def_ex (filter, first, last, 2315, "epsg", 2315, "Campo Inchauspe / UTM zone 19S", 0, 0, "International 1924", "Greenwich", "Campo_Inchauspe", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=intl +towgs84=-148,136,"); add_proj4text (p, 1, "90,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Campo Inchauspe / UTM zone 19S\",GEOGCS[\"Campo"); add_srs_wkt (p, 1, " Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-69],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"2315\"]]"); p = add_epsg_def_ex (filter, first, last, 2316, "epsg", 2316, "Campo Inchauspe / UTM zone 20S", 0, 0, "International 1924", "Greenwich", "Campo_Inchauspe", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=intl +towgs84=-148,136,"); add_proj4text (p, 1, "90,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Campo Inchauspe / UTM zone 20S\",GEOGCS[\"Campo"); add_srs_wkt (p, 1, " Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-63],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"2316\"]]"); p = add_epsg_def_ex (filter, first, last, 2317, "epsg", 2317, "PSAD56 / ICN Regional", 0, 0, "International 1924", "Greenwich", "Provisional_South_American_Datum_1956", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=9 +lat_2=3 +lat_0=6 +lon_0=-66 +x_0=100"); add_proj4text (p, 1, "0000 +y_0=1000000 +ellps=intl +towgs84=-288,175,-376,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PSAD56 / ICN Regional\",GEOGCS[\"PSAD56\",DATUM"); add_srs_wkt (p, 1, "[\"Provisional_South_American_Datum_1956\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[-288,175,-376,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6248\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4248\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",9],PARAMETER[\"standard_parallel_2\",3],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",6],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 11, "66],PARAMETER[\"false_easting\",1000000],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"2317\"]]"); p = add_epsg_def_ex (filter, first, last, 2318, "epsg", 2318, "Ain el Abd / Aramco Lambert", 0, 0, "International 1924", "Greenwich", "Ain_el_Abd_1970", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=17 +lat_2=33 +lat_0=25.08951 +lon_0=48 "); add_proj4text (p, 1, "+x_0=0 +y_0=0 +ellps=intl +towgs84=-143,-236,7,0,0,0,0 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ain el Abd / Aramco Lambert\",GEOGCS[\"Ain el A"); add_srs_wkt (p, 1, "bd\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International "); add_srs_wkt (p, 2, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 3, "[-143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4204\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",17],PARA"); add_srs_wkt (p, 9, "METER[\"standard_parallel_2\",33],PARAMETER[\"latitude_o"); add_srs_wkt (p, 10, "f_origin\",25.08951],PARAMETER[\"central_meridian\",48],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"2318\"]]"); p = add_epsg_def_ex (filter, first, last, 2319, "epsg", 2319, "ED50 / TM27", 0, 1, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM27\",GEOGCS[\"ED50\",DATUM[\"European_"); add_srs_wkt (p, 1, "Datum_1950\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4230\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2319\"]]"); p = add_epsg_def_ex (filter, first, last, 2320, "epsg", 2320, "ED50 / TM30", 0, 1, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM30\",GEOGCS[\"ED50\",DATUM[\"European_"); add_srs_wkt (p, 1, "Datum_1950\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4230\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "0],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2320\"]]"); p = add_epsg_def_ex (filter, first, last, 2321, "epsg", 2321, "ED50 / TM33", 0, 1, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM33\",GEOGCS[\"ED50\",DATUM[\"European_"); add_srs_wkt (p, 1, "Datum_1950\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4230\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2321\"]]"); p = add_epsg_def_ex (filter, first, last, 2322, "epsg", 2322, "ED50 / TM36", 0, 1, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM36\",GEOGCS[\"ED50\",DATUM[\"European_"); add_srs_wkt (p, 1, "Datum_1950\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4230\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "6],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2322\"]]"); p = add_epsg_def_ex (filter, first, last, 2323, "epsg", 2323, "ED50 / TM39", 0, 1, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM39\",GEOGCS[\"ED50\",DATUM[\"European_"); add_srs_wkt (p, 1, "Datum_1950\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4230\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",3"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2323\"]]"); p = add_epsg_def_ex (filter, first, last, 2324, "epsg", 2324, "ED50 / TM42", 0, 1, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM42\",GEOGCS[\"ED50\",DATUM[\"European_"); add_srs_wkt (p, 1, "Datum_1950\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4230\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",4"); add_srs_wkt (p, 9, "2],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2324\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_16.c��������������������������������������������������0000664�0001750�0001750�00000600466�12544707704�017052� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_16 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 3649, "epsg", 3649, "NAD83(NSRS2007) / Pennsylvania North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4"); add_proj4text (p, 1, "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Pennsylvania North\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",41.95],PARAMETER[\"standard_"); add_srs_wkt (p, 10, "parallel_2\",40.88333333333333],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 11, "origin\",40.16666666666666],PARAMETER[\"central_meridian"); add_srs_wkt (p, 12, "\",-77.75],PARAMETER[\"false_easting\",600000],PARAMETER"); add_srs_wkt (p, 13, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 15, "TY[\"EPSG\",\"3649\"]]"); p = add_epsg_def_ex (filter, first, last, 3650, "epsg", 3650, "NAD83(NSRS2007) / Pennsylvania North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4"); add_proj4text (p, 1, "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Pennsylvania North (ftUS)\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial"); add_srs_wkt (p, 2, "_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 3, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 4, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_1\",41.95],PARAMETER[\"s"); add_srs_wkt (p, 10, "tandard_parallel_2\",40.88333333333333],PARAMETER[\"lati"); add_srs_wkt (p, 11, "tude_of_origin\",40.16666666666666],PARAMETER[\"central_"); add_srs_wkt (p, 12, "meridian\",-77.75],PARAMETER[\"false_easting\",1968500],"); add_srs_wkt (p, 13, "PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\","); add_srs_wkt (p, 14, "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 15, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3650\"]"); add_srs_wkt (p, 16, "]"); p = add_epsg_def_ex (filter, first, last, 3651, "epsg", 3651, "NAD83(NSRS2007) / Pennsylvania South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); add_proj4text (p, 1, "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Pennsylvania South\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",40.96666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"standard_parallel_2\",39.93333333333333],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",39.33333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 12, "ral_meridian\",-77.75],PARAMETER[\"false_easting\",60000"); add_srs_wkt (p, 13, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 15, "RTH],AUTHORITY[\"EPSG\",\"3651\"]]"); p = add_epsg_def_ex (filter, first, last, 3652, "epsg", 3652, "NAD83(NSRS2007) / Pennsylvania South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); add_proj4text (p, 1, "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Pennsylvania South (ftUS)\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial"); add_srs_wkt (p, 2, "_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 3, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 4, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_1\",40.96666666666667],P"); add_srs_wkt (p, 10, "ARAMETER[\"standard_parallel_2\",39.93333333333333],PARA"); add_srs_wkt (p, 11, "METER[\"latitude_of_origin\",39.33333333333334],PARAMETE"); add_srs_wkt (p, 12, "R[\"central_meridian\",-77.75],PARAMETER[\"false_easting"); add_srs_wkt (p, 13, "\",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US su"); add_srs_wkt (p, 14, "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 15, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 16, "\",\"3652\"]]"); p = add_epsg_def_ex (filter, first, last, 3653, "epsg", 3653, "NAD83(NSRS2007) / Rhode Island", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); add_proj4text (p, 1, "9999375 +x_0=100000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0"); add_proj4text (p, 2, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Rhode Island\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",41.08333333333334],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",-71.5],PARAMETER[\"scale_factor\",0.99999375],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 13, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "3653\"]]"); p = add_epsg_def_ex (filter, first, last, 3654, "epsg", 3654, "NAD83(NSRS2007) / Rhode Island (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); add_proj4text (p, 1, "9999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +towg"); add_proj4text (p, 2, "s84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Rhode Island (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",41.08333333333334],PARAMETER[\"centr"); add_srs_wkt (p, 10, "al_meridian\",-71.5],PARAMETER[\"scale_factor\",0.999993"); add_srs_wkt (p, 11, "75],PARAMETER[\"false_easting\",328083.3333],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3654\"]]"); p = add_epsg_def_ex (filter, first, last, 3655, "epsg", 3655, "NAD83(NSRS2007) / South Carolina", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31"); add_proj4text (p, 1, ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / South Carolina\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",34.83333333333334],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",32.5],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 11, "in\",31.83333333333333],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 12, "81],PARAMETER[\"false_easting\",609600],PARAMETER[\"fals"); add_srs_wkt (p, 13, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 14, "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 15, "SG\",\"3655\"]]"); p = add_epsg_def_ex (filter, first, last, 3656, "epsg", 3656, "NAD83(NSRS2007) / South Carolina (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31"); add_proj4text (p, 1, ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / South Carolina (ft)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"standard_parallel_1\",34.83333333333334],PARAMETE"); add_srs_wkt (p, 10, "R[\"standard_parallel_2\",32.5],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 11, "origin\",31.83333333333333],PARAMETER[\"central_meridian"); add_srs_wkt (p, 12, "\",-81],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 15, "ITY[\"EPSG\",\"3656\"]]"); p = add_epsg_def_ex (filter, first, last, 3657, "epsg", 3657, "NAD83(NSRS2007) / South Dakota North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666"); add_proj4text (p, 1, "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 3, "s"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / South Dakota North\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",45.68333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"standard_parallel_2\",44.41666666666666],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",43.83333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 12, "ral_meridian\",-100],PARAMETER[\"false_easting\",600000]"); add_srs_wkt (p, 13, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 15, "H],AUTHORITY[\"EPSG\",\"3657\"]]"); p = add_epsg_def_ex (filter, first, last, 3658, "epsg", 3658, "NAD83(NSRS2007) / South Dakota North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666"); add_proj4text (p, 1, "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / South Dakota North (ftUS)\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial"); add_srs_wkt (p, 2, "_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 3, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 4, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_1\",45.68333333333333],P"); add_srs_wkt (p, 10, "ARAMETER[\"standard_parallel_2\",44.41666666666666],PARA"); add_srs_wkt (p, 11, "METER[\"latitude_of_origin\",43.83333333333334],PARAMETE"); add_srs_wkt (p, 12, "R[\"central_meridian\",-100],PARAMETER[\"false_easting\""); add_srs_wkt (p, 13, ",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 14, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 15, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 16, ",\"3658\"]]"); p = add_epsg_def_ex (filter, first, last, 3659, "epsg", 3659, "NAD83(NSRS2007) / South Dakota South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); add_proj4text (p, 1, ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); add_proj4text (p, 2, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 3, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / South Dakota South\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",44.4],PARAMETER[\"standard_p"); add_srs_wkt (p, 10, "arallel_2\",42.83333333333334],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 11, "rigin\",42.33333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 12, ",-100.3333333333333],PARAMETER[\"false_easting\",600000]"); add_srs_wkt (p, 13, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 15, "H],AUTHORITY[\"EPSG\",\"3659\"]]"); p = add_epsg_def_ex (filter, first, last, 3660, "epsg", 3660, "NAD83(NSRS2007) / South Dakota South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); add_proj4text (p, 1, ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); add_proj4text (p, 2, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / South Dakota South (ftUS)\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial"); add_srs_wkt (p, 2, "_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 3, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 4, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_1\",44.4],PARAMETER[\"st"); add_srs_wkt (p, 10, "andard_parallel_2\",42.83333333333334],PARAMETER[\"latit"); add_srs_wkt (p, 11, "ude_of_origin\",42.33333333333334],PARAMETER[\"central_m"); add_srs_wkt (p, 12, "eridian\",-100.3333333333333],PARAMETER[\"false_easting\""); add_srs_wkt (p, 13, ",1968500],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 14, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 15, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 16, ",\"3660\"]]"); p = add_epsg_def_ex (filter, first, last, 3661, "epsg", 3661, "NAD83(NSRS2007) / Tennessee", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3"); add_proj4text (p, 1, "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Tennessee\",GEOGCS[\"NAD83(NS"); add_srs_wkt (p, 1, "RS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 9, "andard_parallel_1\",36.41666666666666],PARAMETER[\"stand"); add_srs_wkt (p, 10, "ard_parallel_2\",35.25],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",34.33333333333334],PARAMETER[\"central_meridian\",-86],"); add_srs_wkt (p, 12, "PARAMETER[\"false_easting\",600000],PARAMETER[\"false_no"); add_srs_wkt (p, 13, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"3661\"]]"); p = add_epsg_def_ex (filter, first, last, 3662, "epsg", 3662, "NAD83(NSRS2007) / Tennessee (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3"); add_proj4text (p, 1, "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Tennessee (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 9, "ER[\"standard_parallel_1\",36.41666666666666],PARAMETER["); add_srs_wkt (p, 10, "\"standard_parallel_2\",35.25],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 11, "rigin\",34.33333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 12, ",-86],PARAMETER[\"false_easting\",1968500],PARAMETER[\"f"); add_srs_wkt (p, 13, "alse_northing\",0],UNIT[\"US survey foot\",0.30480060960"); add_srs_wkt (p, 14, "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 15, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3662\"]]"); p = add_epsg_def_ex (filter, first, last, 3663, "epsg", 3663, "NAD83(NSRS2007) / Texas Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666"); add_proj4text (p, 1, "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); add_proj4text (p, 2, "x_0=700000 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 3, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas Central\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_1\",31.88333333333333],PARAMETER[\"s"); add_srs_wkt (p, 10, "tandard_parallel_2\",30.11666666666667],PARAMETER[\"lati"); add_srs_wkt (p, 11, "tude_of_origin\",29.66666666666667],PARAMETER[\"central_"); add_srs_wkt (p, 12, "meridian\",-100.3333333333333],PARAMETER[\"false_easting"); add_srs_wkt (p, 13, "\",700000],PARAMETER[\"false_northing\",3000000],UNIT[\""); add_srs_wkt (p, 14, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 15, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3663\"]]"); p = add_epsg_def_ex (filter, first, last, 3664, "epsg", 3664, "NAD83(NSRS2007) / Texas Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666"); add_proj4text (p, 1, "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); add_proj4text (p, 2, "x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +towgs84"); add_proj4text (p, 3, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas Central (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",31.88333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",30.11666666666667],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",29.66666666666667],PARAMETER[\"c"); add_srs_wkt (p, 12, "entral_meridian\",-100.3333333333333],PARAMETER[\"false_"); add_srs_wkt (p, 13, "easting\",2296583.333],PARAMETER[\"false_northing\",9842"); add_srs_wkt (p, 14, "500.000000002],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 15, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 16, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3664\"]]"); p = add_epsg_def_ex (filter, first, last, 3665, "epsg", 3665, "NAD83(NSRS2007) / Texas Centric Albers Equal Area", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x"); add_proj4text (p, 1, "_0=1500000 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas Centric Albers Equal Ar"); add_srs_wkt (p, 1, "ea\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_S"); add_srs_wkt (p, 2, "patial_Reference_System_2007\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 3, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 4, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"G"); add_srs_wkt (p, 5, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 6, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 7, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 8, "\"EPSG\",\"4759\"]],PROJECTION[\"Albers_Conic_Equal_Area"); add_srs_wkt (p, 9, "\"],PARAMETER[\"standard_parallel_1\",27.5],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",35],PARAMETER[\"latitude_of_center"); add_srs_wkt (p, 11, "\",18],PARAMETER[\"longitude_of_center\",-100],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",1500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",6000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 14, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "3665\"]]"); p = add_epsg_def_ex (filter, first, last, 3666, "epsg", 3666, "NAD83(NSRS2007) / Texas Centric Lambert Conformal", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x"); add_proj4text (p, 1, "_0=1500000 +y_0=5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas Centric Lambert Conform"); add_srs_wkt (p, 1, "al\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_S"); add_srs_wkt (p, 2, "patial_Reference_System_2007\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 3, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 4, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"G"); add_srs_wkt (p, 5, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 6, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 7, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 8, "\"EPSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 9, "_2SP\"],PARAMETER[\"standard_parallel_1\",27.5],PARAMETE"); add_srs_wkt (p, 10, "R[\"standard_parallel_2\",35],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 11, "igin\",18],PARAMETER[\"central_meridian\",-100],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_easting\",1500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 14, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "3666\"]]"); p = add_epsg_def_ex (filter, first, last, 3667, "epsg", 3667, "NAD83(NSRS2007) / Texas North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3"); add_proj4text (p, 1, "4 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas North\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",36.18333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 10, "ndard_parallel_2\",34.65],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 11, "\",34],PARAMETER[\"central_meridian\",-101.5],PARAMETER["); add_srs_wkt (p, 12, "\"false_easting\",200000],PARAMETER[\"false_northing\",1"); add_srs_wkt (p, 13, "000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 14, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 15, "667\"]]"); p = add_epsg_def_ex (filter, first, last, 3668, "epsg", 3668, "NAD83(NSRS2007) / Texas North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3"); add_proj4text (p, 1, "4 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.99989"); add_proj4text (p, 2, "83998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",36.18333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"standard_parallel_2\",34.65],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 11, "origin\",34],PARAMETER[\"central_meridian\",-101.5],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",656166.667],PARAMETER[\"false_no"); add_srs_wkt (p, 13, "rthing\",3280833.333],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 14, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 15, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3668\"]]"); p = add_epsg_def_ex (filter, first, last, 3669, "epsg", 3669, "NAD83(NSRS2007) / Texas North Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333"); add_proj4text (p, 1, "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y"); add_proj4text (p, 2, "_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas North Central\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"standard_parallel_1\",33.96666666666667],PARAMETE"); add_srs_wkt (p, 10, "R[\"standard_parallel_2\",32.13333333333333],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",31.66666666666667],PARAMETER[\"cent"); add_srs_wkt (p, 12, "ral_meridian\",-98.5],PARAMETER[\"false_easting\",600000"); add_srs_wkt (p, 13, "],PARAMETER[\"false_northing\",2000000],UNIT[\"metre\",1"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 15, "\",NORTH],AUTHORITY[\"EPSG\",\"3669\"]]"); p = add_epsg_def_ex (filter, first, last, 3670, "epsg", 3670, "NAD83(NSRS2007) / Texas North Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333"); add_proj4text (p, 1, "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y"); add_proj4text (p, 2, "_0=2000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 3, "units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas North Central (ftUS)\","); add_srs_wkt (p, 1, "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia"); add_srs_wkt (p, 2, "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 3, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_1\",33.96666666666667],P"); add_srs_wkt (p, 10, "ARAMETER[\"standard_parallel_2\",32.13333333333333],PARA"); add_srs_wkt (p, 11, "METER[\"latitude_of_origin\",31.66666666666667],PARAMETE"); add_srs_wkt (p, 12, "R[\"central_meridian\",-98.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 13, ",1968500],PARAMETER[\"false_northing\",6561666.667],UNIT"); add_srs_wkt (p, 14, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"3670\"]]"); p = add_epsg_def_ex (filter, first, last, 3671, "epsg", 3671, "NAD83(NSRS2007) / Texas South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y"); add_proj4text (p, 2, "_0=5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas South\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",27.83333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 10, "ndard_parallel_2\",26.16666666666667],PARAMETER[\"latitu"); add_srs_wkt (p, 11, "de_of_origin\",25.66666666666667],PARAMETER[\"central_me"); add_srs_wkt (p, 12, "ridian\",-98.5],PARAMETER[\"false_easting\",300000],PARA"); add_srs_wkt (p, 13, "METER[\"false_northing\",5000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 15, "TH],AUTHORITY[\"EPSG\",\"3671\"]]"); p = add_epsg_def_ex (filter, first, last, 3672, "epsg", 3672, "NAD83(NSRS2007) / Texas South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.00"); add_proj4text (p, 2, "00000001 +y_0=5000000.0001016 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 3, "0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",27.83333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"standard_parallel_2\",26.16666666666667],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",25.66666666666667],PARAMETER[\"cent"); add_srs_wkt (p, 12, "ral_meridian\",-98.5],PARAMETER[\"false_easting\",984250"); add_srs_wkt (p, 13, ".0000000002],PARAMETER[\"false_northing\",16404166.667],"); add_srs_wkt (p, 14, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 16, "ORITY[\"EPSG\",\"3672\"]]"); p = add_epsg_def_ex (filter, first, last, 3673, "epsg", 3673, "NAD83(NSRS2007) / Texas South Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333"); add_proj4text (p, 1, "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0"); add_proj4text (p, 2, "=4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas South Central\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"standard_parallel_1\",30.28333333333333],PARAMETE"); add_srs_wkt (p, 10, "R[\"standard_parallel_2\",28.38333333333333],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",27.83333333333333],PARAMETER[\"cent"); add_srs_wkt (p, 12, "ral_meridian\",-99],PARAMETER[\"false_easting\",600000],"); add_srs_wkt (p, 13, "PARAMETER[\"false_northing\",4000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 15, ",NORTH],AUTHORITY[\"EPSG\",\"3673\"]]"); p = add_epsg_def_ex (filter, first, last, 3674, "epsg", 3674, "NAD83(NSRS2007) / Texas South Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333"); add_proj4text (p, 1, "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0"); add_proj4text (p, 2, "=3999999.9998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un"); add_proj4text (p, 3, "its=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Texas South Central (ftUS)\","); add_srs_wkt (p, 1, "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia"); add_srs_wkt (p, 2, "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 3, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_1\",30.28333333333333],P"); add_srs_wkt (p, 10, "ARAMETER[\"standard_parallel_2\",28.38333333333333],PARA"); add_srs_wkt (p, 11, "METER[\"latitude_of_origin\",27.83333333333333],PARAMETE"); add_srs_wkt (p, 12, "R[\"central_meridian\",-99],PARAMETER[\"false_easting\","); add_srs_wkt (p, 13, "1968500],PARAMETER[\"false_northing\",13123333.333],UNIT"); add_srs_wkt (p, 14, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"3674\"]]"); p = add_epsg_def_ex (filter, first, last, 3675, "epsg", 3675, "NAD83(NSRS2007) / Utah Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Utah Central\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",40.65],PARAMETER[\"standard_parall"); add_srs_wkt (p, 10, "el_2\",39.01666666666667],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 11, "\",38.33333333333334],PARAMETER[\"central_meridian\",-11"); add_srs_wkt (p, 12, "1.5],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 13, "se_northing\",2000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 15, "TY[\"EPSG\",\"3675\"]]"); p = add_epsg_def_ex (filter, first, last, 3676, "epsg", 3676, "NAD83(NSRS2007) / Utah Central (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0="); add_proj4text (p, 2, "1999999.999992 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Utah Central (ft)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",40.65],PARAMETER[\"standard_"); add_srs_wkt (p, 10, "parallel_2\",39.01666666666667],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 11, "origin\",38.33333333333334],PARAMETER[\"central_meridian"); add_srs_wkt (p, 12, "\",-111.5],PARAMETER[\"false_easting\",1640419.948],PARA"); add_srs_wkt (p, 13, "METER[\"false_northing\",6561679.79],UNIT[\"foot\",0.304"); add_srs_wkt (p, 14, "8,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 15, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3676\"]]"); p = add_epsg_def_ex (filter, first, last, 3677, "epsg", 3677, "NAD83(NSRS2007) / Utah Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0"); add_proj4text (p, 2, "=2000000.00001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 3, "nits=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Utah Central (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"standard_parallel_1\",40.65],PARAMETER[\"standard"); add_srs_wkt (p, 10, "_parallel_2\",39.01666666666667],PARAMETER[\"latitude_of"); add_srs_wkt (p, 11, "_origin\",38.33333333333334],PARAMETER[\"central_meridia"); add_srs_wkt (p, 12, "n\",-111.5],PARAMETER[\"false_easting\",1640416.6667],PA"); add_srs_wkt (p, 13, "RAMETER[\"false_northing\",6561666.666700001],UNIT[\"US "); add_srs_wkt (p, 14, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 15, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 16, "SG\",\"3677\"]]"); p = add_epsg_def_ex (filter, first, last, 3678, "epsg", 3678, "NAD83(NSRS2007) / Utah North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +"); add_proj4text (p, 2, "y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Utah North\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_1\",41.78333333333333],PARAMETER[\"stan"); add_srs_wkt (p, 10, "dard_parallel_2\",40.71666666666667],PARAMETER[\"latitud"); add_srs_wkt (p, 11, "e_of_origin\",40.33333333333334],PARAMETER[\"central_mer"); add_srs_wkt (p, 12, "idian\",-111.5],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 13, "METER[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 15, "TH],AUTHORITY[\"EPSG\",\"3678\"]]"); p = add_epsg_def_ex (filter, first, last, 3679, "epsg", 3679, "NAD83(NSRS2007) / Utah North (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0"); add_proj4text (p, 2, "001504 +y_0=999999.9999960001 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 3, "0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Utah North (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",41.78333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",40.71666666666667],PARAMETER[\"lat"); add_srs_wkt (p, 11, "itude_of_origin\",40.33333333333334],PARAMETER[\"central"); add_srs_wkt (p, 12, "_meridian\",-111.5],PARAMETER[\"false_easting\",1640419."); add_srs_wkt (p, 13, "948],PARAMETER[\"false_northing\",3280839.895],UNIT[\"fo"); add_srs_wkt (p, 14, "ot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 15, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3679\"]]"); p = add_epsg_def_ex (filter, first, last, 3680, "epsg", 3680, "NAD83(NSRS2007) / Utah North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0"); add_proj4text (p, 2, "0001016 +y_0=999999.9999898402 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 3, ",0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Utah North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",41.78333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"standard_parallel_2\",40.71666666666667],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",40.33333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 12, "ral_meridian\",-111.5],PARAMETER[\"false_easting\",16404"); add_srs_wkt (p, 13, "16.6667],PARAMETER[\"false_northing\",3280833.333300001]"); add_srs_wkt (p, 14, ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 16, "HORITY[\"EPSG\",\"3680\"]]"); p = add_epsg_def_ex (filter, first, last, 3681, "epsg", 3681, "NAD83(NSRS2007) / Utah South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Utah South\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_1\",38.35],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",37.21666666666667],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",36.66666666666666],PARAMETER[\"central_meridian\",-111."); add_srs_wkt (p, 12, "5],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",3000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"3681\"]]"); p = add_epsg_def_ex (filter, first, last, 3682, "epsg", 3682, "NAD83(NSRS2007) / Utah South (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0="); add_proj4text (p, 2, "2999999.999988 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Utah South (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",38.35],PARAMETER[\"standard_par"); add_srs_wkt (p, 10, "allel_2\",37.21666666666667],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 11, "gin\",36.66666666666666],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 12, "-111.5],PARAMETER[\"false_easting\",1640419.948],PARAMET"); add_srs_wkt (p, 13, "ER[\"false_northing\",9842519.685],UNIT[\"foot\",0.3048,"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 15, ",NORTH],AUTHORITY[\"EPSG\",\"3682\"]]"); p = add_epsg_def_ex (filter, first, last, 3683, "epsg", 3683, "NAD83(NSRS2007) / Utah South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0"); add_proj4text (p, 2, "=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Utah South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",38.35],PARAMETER[\"standard_"); add_srs_wkt (p, 10, "parallel_2\",37.21666666666667],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 11, "origin\",36.66666666666666],PARAMETER[\"central_meridian"); add_srs_wkt (p, 12, "\",-111.5],PARAMETER[\"false_easting\",1640416.6667],PAR"); add_srs_wkt (p, 13, "AMETER[\"false_northing\",9842500.000000002],UNIT[\"US s"); add_srs_wkt (p, 14, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 15, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"3683\"]]"); p = add_epsg_def_ex (filter, first, last, 3684, "epsg", 3684, "NAD83(NSRS2007) / Vermont", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); add_proj4text (p, 1, "=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Vermont\",GEOGCS[\"NAD83(NSRS"); add_srs_wkt (p, 1, "2007)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, "2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",42.5],PARAMETER[\"central_meridian\",-72.5],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",0.999964286],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3684\"]]"); p = add_epsg_def_ex (filter, first, last, 3685, "epsg", 3685, "NAD83(NSRS2007) / Virginia North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37"); add_proj4text (p, 1, ".66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Virginia North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",39.2],PARAMETER[\"standard_para"); add_srs_wkt (p, 10, "llel_2\",38.03333333333333],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 11, "in\",37.66666666666666],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 12, "78.5],PARAMETER[\"false_easting\",3500000],PARAMETER[\"f"); add_srs_wkt (p, 13, "alse_northing\",2000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 15, "RITY[\"EPSG\",\"3685\"]]"); p = add_epsg_def_ex (filter, first, last, 3686, "epsg", 3686, "NAD83(NSRS2007) / Virginia North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37"); add_proj4text (p, 1, ".66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2"); add_proj4text (p, 2, "000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 3, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Virginia North (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",39.2],PARAMETER[\"standar"); add_srs_wkt (p, 10, "d_parallel_2\",38.03333333333333],PARAMETER[\"latitude_o"); add_srs_wkt (p, 11, "f_origin\",37.66666666666666],PARAMETER[\"central_meridi"); add_srs_wkt (p, 12, "an\",-78.5],PARAMETER[\"false_easting\",11482916.667],PA"); add_srs_wkt (p, 13, "RAMETER[\"false_northing\",6561666.667],UNIT[\"US survey"); add_srs_wkt (p, 14, " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); add_srs_wkt (p, 15, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 16, "3686\"]]"); p = add_epsg_def_ex (filter, first, last, 3687, "epsg", 3687, "NAD83(NSRS2007) / Virginia South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666"); add_proj4text (p, 1, "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +"); add_proj4text (p, 2, "y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Virginia South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",37.96666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",36.76666666666667],PARAMETER[\"lat"); add_srs_wkt (p, 11, "itude_of_origin\",36.33333333333334],PARAMETER[\"central"); add_srs_wkt (p, 12, "_meridian\",-78.5],PARAMETER[\"false_easting\",3500000],"); add_srs_wkt (p, 13, "PARAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 15, ",NORTH],AUTHORITY[\"EPSG\",\"3687\"]]"); p = add_epsg_def_ex (filter, first, last, 3688, "epsg", 3688, "NAD83(NSRS2007) / Virginia South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666"); add_proj4text (p, 1, "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0"); add_proj4text (p, 2, "001016 +y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 3, "0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Virginia South (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",37.96666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",36.76666666666667],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",36.33333333333334],PARAMETER[\"c"); add_srs_wkt (p, 12, "entral_meridian\",-78.5],PARAMETER[\"false_easting\",114"); add_srs_wkt (p, 13, "82916.667],PARAMETER[\"false_northing\",3280833.333],UNI"); add_srs_wkt (p, 14, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 15, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 16, "TY[\"EPSG\",\"3688\"]]"); p = add_epsg_def_ex (filter, first, last, 3689, "epsg", 3689, "NAD83(NSRS2007) / Washington North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47"); add_proj4text (p, 1, " +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Washington North\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 9, "ER[\"standard_parallel_1\",48.73333333333333],PARAMETER["); add_srs_wkt (p, 10, "\"standard_parallel_2\",47.5],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 11, "igin\",47],PARAMETER[\"central_meridian\",-120.833333333"); add_srs_wkt (p, 12, "3333],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 13, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"3689\"]]"); p = add_epsg_def_ex (filter, first, last, 3690, "epsg", 3690, "NAD83(NSRS2007) / Washington North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47"); add_proj4text (p, 1, " +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0"); add_proj4text (p, 2, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_de"); add_proj4text (p, 3, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Washington North (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 7, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_1\",48.73333333333333],PAR"); add_srs_wkt (p, 10, "AMETER[\"standard_parallel_2\",47.5],PARAMETER[\"latitud"); add_srs_wkt (p, 11, "e_of_origin\",47],PARAMETER[\"central_meridian\",-120.83"); add_srs_wkt (p, 12, "33333333333],PARAMETER[\"false_easting\",1640416.667],PA"); add_srs_wkt (p, 13, "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 14, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 15, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3690\"]]"); p = add_epsg_def_ex (filter, first, last, 3691, "epsg", 3691, "NAD83(NSRS2007) / Washington South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333"); add_proj4text (p, 1, "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Washington South\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 9, "ER[\"standard_parallel_1\",47.33333333333334],PARAMETER["); add_srs_wkt (p, 10, "\"standard_parallel_2\",45.83333333333334],PARAMETER[\"l"); add_srs_wkt (p, 11, "atitude_of_origin\",45.33333333333334],PARAMETER[\"centr"); add_srs_wkt (p, 12, "al_meridian\",-120.5],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 13, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 15, "TH],AUTHORITY[\"EPSG\",\"3691\"]]"); p = add_epsg_def_ex (filter, first, last, 3692, "epsg", 3692, "NAD83(NSRS2007) / Washington South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333"); add_proj4text (p, 1, "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0"); add_proj4text (p, 2, "001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un"); add_proj4text (p, 3, "its=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Washington South (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 7, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_1\",47.33333333333334],PAR"); add_srs_wkt (p, 10, "AMETER[\"standard_parallel_2\",45.83333333333334],PARAME"); add_srs_wkt (p, 11, "TER[\"latitude_of_origin\",45.33333333333334],PARAMETER["); add_srs_wkt (p, 12, "\"central_meridian\",-120.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 13, ",1640416.667],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 14, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 15, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 16, "SG\",\"3692\"]]"); p = add_epsg_def_ex (filter, first, last, 3693, "epsg", 3693, "NAD83(NSRS2007) / West Virginia North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / West Virginia North\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"standard_parallel_1\",40.25],PARAMETER[\"standard"); add_srs_wkt (p, 10, "_parallel_2\",39],PARAMETER[\"latitude_of_origin\",38.5]"); add_srs_wkt (p, 11, ",PARAMETER[\"central_meridian\",-79.5],PARAMETER[\"false"); add_srs_wkt (p, 12, "_easting\",600000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 13, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 14, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3693\"]]"); p = add_epsg_def_ex (filter, first, last, 3694, "epsg", 3694, "NAD83(NSRS2007) / West Virginia South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / West Virginia South\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"standard_parallel_1\",38.88333333333333],PARAMETE"); add_srs_wkt (p, 10, "R[\"standard_parallel_2\",37.48333333333333],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",37],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 12, "-81],PARAMETER[\"false_easting\",600000],PARAMETER[\"fal"); add_srs_wkt (p, 13, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"3694\"]]"); p = add_epsg_def_ex (filter, first, last, 3695, "epsg", 3695, "NAD83(NSRS2007) / Wisconsin Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); add_proj4text (p, 1, "334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wisconsin Central\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",45.5],PARAMETER[\"standard_p"); add_srs_wkt (p, 10, "arallel_2\",44.25],PARAMETER[\"latitude_of_origin\",43.8"); add_srs_wkt (p, 11, "3333333333334],PARAMETER[\"central_meridian\",-90],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_easting\",600000],PARAMETER[\"false_northin"); add_srs_wkt (p, 13, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 14, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"36"); add_srs_wkt (p, 15, "95\"]]"); p = add_epsg_def_ex (filter, first, last, 3696, "epsg", 3696, "NAD83(NSRS2007) / Wisconsin Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); add_proj4text (p, 1, "334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wisconsin Central (ftUS)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); add_srs_wkt (p, 2, "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_1\",45.5],PARAMETER[\"stan"); add_srs_wkt (p, 10, "dard_parallel_2\",44.25],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",43.83333333333334],PARAMETER[\"central_meridian\",-90],"); add_srs_wkt (p, 12, "PARAMETER[\"false_easting\",1968500],PARAMETER[\"false_n"); add_srs_wkt (p, 13, "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 15, ",NORTH],AUTHORITY[\"EPSG\",\"3696\"]]"); p = add_epsg_def_ex (filter, first, last, 3697, "epsg", 3697, "NAD83(NSRS2007) / Wisconsin North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666"); add_proj4text (p, 1, "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wisconsin North\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",46.76666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",45.56666666666667],PARAMETER[\"lat"); add_srs_wkt (p, 11, "itude_of_origin\",45.16666666666666],PARAMETER[\"central"); add_srs_wkt (p, 12, "_meridian\",-90],PARAMETER[\"false_easting\",600000],PAR"); add_srs_wkt (p, 13, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"3697\"]]"); p = add_epsg_def_ex (filter, first, last, 3698, "epsg", 3698, "NAD83(NSRS2007) / Wisconsin North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666"); add_proj4text (p, 1, "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wisconsin North (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",46.76666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",45.56666666666667],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",45.16666666666666],PARAMETER[\"c"); add_srs_wkt (p, 12, "entral_meridian\",-90],PARAMETER[\"false_easting\",19685"); add_srs_wkt (p, 13, "00],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 14, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 15, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"369"); add_srs_wkt (p, 16, "8\"]]"); p = add_epsg_def_ex (filter, first, last, 3699, "epsg", 3699, "NAD83(NSRS2007) / Wisconsin South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333"); add_proj4text (p, 1, "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wisconsin South\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",44.06666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",42.73333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 11, "itude_of_origin\",42],PARAMETER[\"central_meridian\",-90"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",600000],PARAMETER[\"false_"); add_srs_wkt (p, 13, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 14, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 15, "\",\"3699\"]]"); p = add_epsg_def_ex (filter, first, last, 3700, "epsg", 3700, "NAD83(NSRS2007) / Wisconsin South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333"); add_proj4text (p, 1, "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wisconsin South (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",44.06666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",42.73333333333333],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",42],PARAMETER[\"central_meridian"); add_srs_wkt (p, 12, "\",-90],PARAMETER[\"false_easting\",1968500],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 14, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 15, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3700\"]]"); p = add_epsg_def_ex (filter, first, last, 3701, "epsg", 3701, "NAD83(NSRS2007) / Wisconsin Transverse Mercator", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y"); add_proj4text (p, 1, "_0=-4480000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wisconsin Transverse Mercator"); add_srs_wkt (p, 1, "\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spa"); add_srs_wkt (p, 2, "tial_Reference_System_2007\",SPHEROID[\"GRS 1980\",63781"); add_srs_wkt (p, 3, "37,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0"); add_srs_wkt (p, 4, ",0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 5, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",-90],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",520000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",-4480000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"3701\"]]"); p = add_epsg_def_ex (filter, first, last, 3702, "epsg", 3702, "NAD83(NSRS2007) / Wyoming East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wyoming East\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",40.5],PARAMETER[\"central_meridian\",-105."); add_srs_wkt (p, 10, "1666666666667],PARAMETER[\"scale_factor\",0.9999375],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",200000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "3702\"]]"); p = add_epsg_def_ex (filter, first, last, 3703, "epsg", 3703, "NAD83(NSRS2007) / Wyoming East Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 2, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wyoming East Central\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",40.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-107.3333333333333],PARAMETER[\"scale_factor\",0.999937"); add_srs_wkt (p, 11, "5],PARAMETER[\"false_easting\",400000],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",100000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"3703\"]]"); p = add_epsg_def_ex (filter, first, last, 3704, "epsg", 3704, "NAD83(NSRS2007) / Wyoming West Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0"); add_proj4text (p, 1, "=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wyoming West Central\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",40.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-108.75],PARAMETER[\"scale_factor\",0.9999375],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",600000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3704\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3705, "epsg", 3705, "NAD83(NSRS2007) / Wyoming West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 2, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wyoming West\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",40.5],PARAMETER[\"central_meridian\",-110."); add_srs_wkt (p, 10, "0833333333333],PARAMETER[\"scale_factor\",0.9999375],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",800000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",100000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"3705\"]]"); p = add_epsg_def_ex (filter, first, last, 3706, "epsg", 3706, "NAD83(NSRS2007) / UTM zone 59N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=59 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 59N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",171],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3706\"]]"); p = add_epsg_def_ex (filter, first, last, 3707, "epsg", 3707, "NAD83(NSRS2007) / UTM zone 60N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=60 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 60N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",177],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3707\"]]"); p = add_epsg_def_ex (filter, first, last, 3708, "epsg", 3708, "NAD83(NSRS2007) / UTM zone 1N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=1 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 1N\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",0],PARAMETER[\"central_meridian\",-177],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3708\"]]"); p = add_epsg_def_ex (filter, first, last, 3709, "epsg", 3709, "NAD83(NSRS2007) / UTM zone 2N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=2 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 2N\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",0],PARAMETER[\"central_meridian\",-171],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3709\"]]"); p = add_epsg_def_ex (filter, first, last, 3710, "epsg", 3710, "NAD83(NSRS2007) / UTM zone 3N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=3 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 3N\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",0],PARAMETER[\"central_meridian\",-165],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3710\"]]"); p = add_epsg_def_ex (filter, first, last, 3711, "epsg", 3711, "NAD83(NSRS2007) / UTM zone 4N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=4 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 4N\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",0],PARAMETER[\"central_meridian\",-159],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3711\"]]"); p = add_epsg_def_ex (filter, first, last, 3712, "epsg", 3712, "NAD83(NSRS2007) / UTM zone 5N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=5 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 5N\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",0],PARAMETER[\"central_meridian\",-153],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3712\"]]"); p = add_epsg_def_ex (filter, first, last, 3713, "epsg", 3713, "NAD83(NSRS2007) / UTM zone 6N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=6 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 6N\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",0],PARAMETER[\"central_meridian\",-147],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3713\"]]"); p = add_epsg_def_ex (filter, first, last, 3714, "epsg", 3714, "NAD83(NSRS2007) / UTM zone 7N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=7 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 7N\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",0],PARAMETER[\"central_meridian\",-141],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3714\"]]"); p = add_epsg_def_ex (filter, first, last, 3715, "epsg", 3715, "NAD83(NSRS2007) / UTM zone 8N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=8 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 8N\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",0],PARAMETER[\"central_meridian\",-135],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3715\"]]"); p = add_epsg_def_ex (filter, first, last, 3716, "epsg", 3716, "NAD83(NSRS2007) / UTM zone 9N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=9 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 9N\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",0],PARAMETER[\"central_meridian\",-129],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3716\"]]"); p = add_epsg_def_ex (filter, first, last, 3717, "epsg", 3717, "NAD83(NSRS2007) / UTM zone 10N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=10 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 10N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-123],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3717\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3718, "epsg", 3718, "NAD83(NSRS2007) / UTM zone 11N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 11N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-117],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3718\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3719, "epsg", 3719, "NAD83(NSRS2007) / UTM zone 12N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 12N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-111],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3719\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3720, "epsg", 3720, "NAD83(NSRS2007) / UTM zone 13N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 13N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-105],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3720\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3721, "epsg", 3721, "NAD83(NSRS2007) / UTM zone 14N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 14N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-99],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3721\"]]"); p = add_epsg_def_ex (filter, first, last, 3722, "epsg", 3722, "NAD83(NSRS2007) / UTM zone 15N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 15N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-93],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3722\"]]"); p = add_epsg_def_ex (filter, first, last, 3723, "epsg", 3723, "NAD83(NSRS2007) / UTM zone 16N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 16N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-87],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3723\"]]"); p = add_epsg_def_ex (filter, first, last, 3724, "epsg", 3724, "NAD83(NSRS2007) / UTM zone 17N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 17N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-81],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3724\"]]"); p = add_epsg_def_ex (filter, first, last, 3725, "epsg", 3725, "NAD83(NSRS2007) / UTM zone 18N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 18N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-75],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3725\"]]"); p = add_epsg_def_ex (filter, first, last, 3726, "epsg", 3726, "NAD83(NSRS2007) / UTM zone 19N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / UTM zone 19N\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-69],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3726\"]]"); p = add_epsg_def_ex (filter, first, last, 3727, "epsg", 3727, "Reunion 1947 / TM Reunion", 0, 0, "International 1924", "Greenwich", "Reunion_1947", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-21.11666666666667 +lon_0=55.53333333"); add_proj4text (p, 1, "333333 +k=1 +x_0=160000 +y_0=50000 +ellps=intl +towgs84="); add_proj4text (p, 2, "94,-948,-1262,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Reunion 1947 / TM Reunion\",GEOGCS[\"Reunion 19"); add_srs_wkt (p, 1, "47\",DATUM[\"Reunion_1947\",SPHEROID[\"International 192"); add_srs_wkt (p, 2, "4\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[94"); add_srs_wkt (p, 3, ",-948,-1262,0,0,0,0],AUTHORITY[\"EPSG\",\"6626\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"4626\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",-21.11666666666667"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",55.53333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",16"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",50000],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3727\"]]"); p = add_epsg_def_ex (filter, first, last, 3728, "epsg", 3728, "NAD83(NSRS2007) / Ohio North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39"); add_proj4text (p, 1, ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Ohio North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",41.7],PARAMETER[\"standard_p"); add_srs_wkt (p, 10, "arallel_2\",40.43333333333333],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 11, "rigin\",39.66666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 12, ",-82.5],PARAMETER[\"false_easting\",1968500],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 14, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 15, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3728\"]]"); p = add_epsg_def_ex (filter, first, last, 3729, "epsg", 3729, "NAD83(NSRS2007) / Ohio South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333"); add_proj4text (p, 1, "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Ohio South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",40.03333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"standard_parallel_2\",38.73333333333333],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",38],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 12, "-82.5],PARAMETER[\"false_easting\",1968500],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 14, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 15, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3729\"]]"); p = add_epsg_def_ex (filter, first, last, 3730, "epsg", 3730, "NAD83(NSRS2007) / Wyoming East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wyoming East (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",40.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-105.1666666666667],PARAMETER[\"scale_factor\",0.999937"); add_srs_wkt (p, 11, "5],PARAMETER[\"false_easting\",656166.6667],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3730\"]]"); p = add_epsg_def_ex (filter, first, last, 3731, "epsg", 3731, "NAD83(NSRS2007) / Wyoming East Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wyoming East Central (ftUS)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spati"); add_srs_wkt (p, 2, "al_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 3, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 4, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",40.5],PARAMETER[\"central_m"); add_srs_wkt (p, 10, "eridian\",-107.3333333333333],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 11, ",0.9999375],PARAMETER[\"false_easting\",1312333.3333],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_northing\",328083.3333],UNIT[\"US survey"); add_srs_wkt (p, 13, " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); add_srs_wkt (p, 14, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "3731\"]]"); p = add_epsg_def_ex (filter, first, last, 3732, "epsg", 3732, "NAD83(NSRS2007) / Wyoming West Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0"); add_proj4text (p, 1, "=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wyoming West Central (ftUS)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spati"); add_srs_wkt (p, 2, "al_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 3, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 4, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",40.5],PARAMETER[\"central_m"); add_srs_wkt (p, 10, "eridian\",-108.75],PARAMETER[\"scale_factor\",0.9999375]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",1968500],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"3732\"]]"); p = add_epsg_def_ex (filter, first, last, 3733, "epsg", 3733, "NAD83(NSRS2007) / Wyoming West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Wyoming West (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",40.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-110.0833333333333],PARAMETER[\"scale_factor\",0.999937"); add_srs_wkt (p, 11, "5],PARAMETER[\"false_easting\",2624666.6667],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",328083.3333],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 13, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3733\"]]"); p = add_epsg_def_ex (filter, first, last, 3734, "epsg", 3734, "NAD83 / Ohio North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39"); add_proj4text (p, 1, ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Ohio North (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",41.7],PARAM"); add_srs_wkt (p, 9, "ETER[\"standard_parallel_2\",40.43333333333333],PARAMETE"); add_srs_wkt (p, 10, "R[\"latitude_of_origin\",39.66666666666666],PARAMETER[\""); add_srs_wkt (p, 11, "central_meridian\",-82.5],PARAMETER[\"false_easting\",19"); add_srs_wkt (p, 12, "68500],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); add_srs_wkt (p, 13, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 14, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "3734\"]]"); p = add_epsg_def_ex (filter, first, last, 3735, "epsg", 3735, "NAD83 / Ohio South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333"); add_proj4text (p, 1, "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Ohio South (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",40.03333333"); add_srs_wkt (p, 9, "333333],PARAMETER[\"standard_parallel_2\",38.73333333333"); add_srs_wkt (p, 10, "333],PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"ce"); add_srs_wkt (p, 11, "ntral_meridian\",-82.5],PARAMETER[\"false_easting\",1968"); add_srs_wkt (p, 12, "500],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); add_srs_wkt (p, 13, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 14, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"37"); add_srs_wkt (p, 15, "35\"]]"); p = add_epsg_def_ex (filter, first, last, 3736, "epsg", 3736, "NAD83 / Wyoming East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wyoming East (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-105.1666666666667],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999375],PARAMETER[\"false_easting\",656166.6"); add_srs_wkt (p, 11, "667],PARAMETER[\"false_northing\",0],UNIT[\"US survey fo"); add_srs_wkt (p, 12, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"37"); add_srs_wkt (p, 14, "36\"]]"); p = add_epsg_def_ex (filter, first, last, 3737, "epsg", 3737, "NAD83 / Wyoming East Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wyoming East Central (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-107.3333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.9999375],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",1312333.3333],PARAMETER[\"false_northing\",328083.3333]"); add_srs_wkt (p, 12, ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"3737\"]]"); p = add_epsg_def_ex (filter, first, last, 3738, "epsg", 3738, "NAD83 / Wyoming West Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0"); add_proj4text (p, 1, "=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wyoming West Central (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",40.5],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-108.75],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9999375],PARAMETER[\"false_easting\",1968500],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 12, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 13, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3738\"]]"); p = add_epsg_def_ex (filter, first, last, 3739, "epsg", 3739, "NAD83 / Wyoming West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wyoming West (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-110.0833333333333],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999375],PARAMETER[\"false_easting\",2624666."); add_srs_wkt (p, 11, "6667],PARAMETER[\"false_northing\",328083.3333],UNIT[\"U"); add_srs_wkt (p, 12, "S survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"3739\"]]"); p = add_epsg_def_ex (filter, first, last, 3740, "epsg", 3740, "NAD83(HARN) / UTM zone 10N", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=10 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 10N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-123],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3740\"]]"); p = add_epsg_def_ex (filter, first, last, 3741, "epsg", 3741, "NAD83(HARN) / UTM zone 11N", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 11N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-117],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3741\"]]"); p = add_epsg_def_ex (filter, first, last, 3742, "epsg", 3742, "NAD83(HARN) / UTM zone 12N", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 12N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-111],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3742\"]]"); p = add_epsg_def_ex (filter, first, last, 3743, "epsg", 3743, "NAD83(HARN) / UTM zone 13N", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 13N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-105],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3743\"]]"); p = add_epsg_def_ex (filter, first, last, 3744, "epsg", 3744, "NAD83(HARN) / UTM zone 14N", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 14N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-99],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"3744\"]]"); p = add_epsg_def_ex (filter, first, last, 3745, "epsg", 3745, "NAD83(HARN) / UTM zone 15N", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 15N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-93],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"3745\"]]"); p = add_epsg_def_ex (filter, first, last, 3746, "epsg", 3746, "NAD83(HARN) / UTM zone 16N", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 16N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-87],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"3746\"]]"); p = add_epsg_def_ex (filter, first, last, 3747, "epsg", 3747, "NAD83(HARN) / UTM zone 17N", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 17N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"3747\"]]"); p = add_epsg_def_ex (filter, first, last, 3748, "epsg", 3748, "NAD83(HARN) / UTM zone 18N", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 18N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"3748\"]]"); p = add_epsg_def_ex (filter, first, last, 3749, "epsg", 3749, "NAD83(HARN) / UTM zone 19N", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 19N\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"3749\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_35.c��������������������������������������������������0000664�0001750�0001750�00000533633�12544707704�017054� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_35 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 21459, "epsg", 21459, "Beijing 1954 / Gauss-Kruger CM 111E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 111E\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",111],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"21459\"]]"); p = add_epsg_def_ex (filter, first, last, 21460, "epsg", 21460, "Beijing 1954 / Gauss-Kruger CM 117E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 117E\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",117],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"21460\"]]"); p = add_epsg_def_ex (filter, first, last, 21461, "epsg", 21461, "Beijing 1954 / Gauss-Kruger CM 123E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 123E\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",123],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"21461\"]]"); p = add_epsg_def_ex (filter, first, last, 21462, "epsg", 21462, "Beijing 1954 / Gauss-Kruger CM 129E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 129E\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",129],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"21462\"]]"); p = add_epsg_def_ex (filter, first, last, 21463, "epsg", 21463, "Beijing 1954 / Gauss-Kruger CM 135E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 135E\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",135],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"21463\"]]"); p = add_epsg_def_ex (filter, first, last, 21473, "epsg", 21473, "Beijing 1954 / Gauss-Kruger 13N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 13N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",75],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"21473\"]]"); p = add_epsg_def_ex (filter, first, last, 21474, "epsg", 21474, "Beijing 1954 / Gauss-Kruger 14N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 14N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",81],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"21474\"]]"); p = add_epsg_def_ex (filter, first, last, 21475, "epsg", 21475, "Beijing 1954 / Gauss-Kruger 15N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 15N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",87],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"21475\"]]"); p = add_epsg_def_ex (filter, first, last, 21476, "epsg", 21476, "Beijing 1954 / Gauss-Kruger 16N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 16N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",93],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"21476\"]]"); p = add_epsg_def_ex (filter, first, last, 21477, "epsg", 21477, "Beijing 1954 / Gauss-Kruger 17N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 17N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",99],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"21477\"]]"); p = add_epsg_def_ex (filter, first, last, 21478, "epsg", 21478, "Beijing 1954 / Gauss-Kruger 18N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 18N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"21478\"]]"); p = add_epsg_def_ex (filter, first, last, 21479, "epsg", 21479, "Beijing 1954 / Gauss-Kruger 19N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 19N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",111],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"21479\"]]"); p = add_epsg_def_ex (filter, first, last, 21480, "epsg", 21480, "Beijing 1954 / Gauss-Kruger 20N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 20N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",117],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"21480\"]]"); p = add_epsg_def_ex (filter, first, last, 21481, "epsg", 21481, "Beijing 1954 / Gauss-Kruger 21N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 21N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",123],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"21481\"]]"); p = add_epsg_def_ex (filter, first, last, 21482, "epsg", 21482, "Beijing 1954 / Gauss-Kruger 22N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 22N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",129],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"21482\"]]"); p = add_epsg_def_ex (filter, first, last, 21483, "epsg", 21483, "Beijing 1954 / Gauss-Kruger 23N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger 23N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",135],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"21483\"]]"); p = add_epsg_def_ex (filter, first, last, 21500, "epsg", 21500, "Belge 1950 (Brussels) / Belge Lambert 50", 0, 0, "International 1924", "Brussels", "Reseau_National_Belge_1950_Brussels", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666"); add_proj4text (p, 1, "666 +lat_0=90 +lon_0=0 +x_0=150000 +y_0=5400000 +ellps=i"); add_proj4text (p, 2, "ntl +pm=brussels +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Belge 1950 (Brussels) / Belge Lambert 50\",GEOG"); add_srs_wkt (p, 1, "CS[\"Belge 1950 (Brussels)\",DATUM[\"Reseau_National_Bel"); add_srs_wkt (p, 2, "ge_1950_Brussels\",SPHEROID[\"International 1924\",63783"); add_srs_wkt (p, 3, "88,297,AUTHORITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6809\"]],PRIMEM[\"Brussels\",4.367975,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8910\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4809\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_1\",49.83333333333334],PARAMETER[\"standard_par"); add_srs_wkt (p, 10, "allel_2\",51.16666666666666],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 11, "gin\",90],PARAMETER[\"central_meridian\",0],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",150000],PARAMETER[\"false_northing\",540"); add_srs_wkt (p, 13, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"215"); add_srs_wkt (p, 15, "00\"]]"); p = add_epsg_def_ex (filter, first, last, 21780, "epsg", 21780, "Bern 1898 (Bern) / LV03C", 0, 0, "Bessel 1841", "Bern", "CH1903_Bern", "Hotine_Oblique_Mercator_Azimuth_Center", "metre", "Y", "East", "X", "North"); add_proj4text (p, 0, "+proj=somerc +lat_0=46.95240555555556 +lon_0=0 +k_0=1 +x"); add_proj4text (p, 1, "_0=0 +y_0=0 +ellps=bessel +towgs84=674.4,15.1,405.3,0,0,"); add_proj4text (p, 2, "0,0 +pm=bern +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bern 1898 (Bern) / LV03C\",GEOGCS[\"Bern 1898 ("); add_srs_wkt (p, 1, "Bern)\",DATUM[\"CH1903_Bern\",SPHEROID[\"Bessel 1841\",6"); add_srs_wkt (p, 2, "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); add_srs_wkt (p, 3, "GS84[674.4,15.1,405.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6801"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Bern\",7.439583333333333,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8907\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4801\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Hotine_Oblique_Mercator_Azimuth_Center\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_center\",46.95240555555556],PARAMETER[\"long"); add_srs_wkt (p, 10, "itude_of_center\",0],PARAMETER[\"azimuth\",90],PARAMETER"); add_srs_wkt (p, 11, "[\"rectified_grid_angle\",90],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 12, ",1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nor"); add_srs_wkt (p, 13, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 14, "],AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 15, "\"21780\"]]"); p = add_epsg_def_ex (filter, first, last, 21781, "epsg", 21781, "CH1903 / LV03", 0, 0, "Bessel 1841", "Greenwich", "CH1903", "Hotine_Oblique_Mercator_Azimuth_Center", "metre", "Y", "East", "X", "North"); add_proj4text (p, 0, "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333"); add_proj4text (p, 1, "333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +tow"); add_proj4text (p, 2, "gs84=674.4,15.1,405.3,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CH1903 / LV03\",GEOGCS[\"CH1903\",DATUM[\"CH190"); add_srs_wkt (p, 1, "3\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7004\"]],TOWGS84[674.4,15.1,405.3,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6149\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4149\"]],PROJECTION[\"Hotine_Oblique_Mercator_Azimuth_Ce"); add_srs_wkt (p, 8, "nter\"],PARAMETER[\"latitude_of_center\",46.952405555555"); add_srs_wkt (p, 9, "56],PARAMETER[\"longitude_of_center\",7.439583333333333]"); add_srs_wkt (p, 10, ",PARAMETER[\"azimuth\",90],PARAMETER[\"rectified_grid_an"); add_srs_wkt (p, 11, "gle\",90],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_easting\",600000],PARAMETER[\"false_northing\",200000]"); add_srs_wkt (p, 13, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y"); add_srs_wkt (p, 14, "\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\"21781\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 21782, "epsg", 21782, "CH1903 / LV03C-G", 0, 0, "Bessel 1841", "Greenwich", "CH1903", "Hotine_Oblique_Mercator_Azimuth_Center", "metre", "Y", "East", "X", "North"); add_proj4text (p, 0, "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333"); add_proj4text (p, 1, "333333 +k_0=1 +x_0=0 +y_0=0 +ellps=bessel +towgs84=674.4"); add_proj4text (p, 2, ",15.1,405.3,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CH1903 / LV03C-G\",GEOGCS[\"CH1903\",DATUM[\"CH"); add_srs_wkt (p, 1, "1903\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[674.4,15.1,405.3,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6149\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4149\"]],PROJECTION[\"Hotine_Oblique_Mercator_Azimuth"); add_srs_wkt (p, 8, "_Center\"],PARAMETER[\"latitude_of_center\",46.952405555"); add_srs_wkt (p, 9, "55556],PARAMETER[\"longitude_of_center\",7.4395833333333"); add_srs_wkt (p, 10, "33],PARAMETER[\"azimuth\",90],PARAMETER[\"rectified_grid"); add_srs_wkt (p, 11, "_angle\",90],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\",\"21782\"]]"); p = add_epsg_def_ex (filter, first, last, 21817, "epsg", 21817, "Bogota 1975 / UTM zone 17N (deprecated)", 0, 0, "International 1924", "Greenwich", "Bogota_1975", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=intl +towgs84=307,304,-318,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / UTM zone 17N (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Inter"); add_srs_wkt (p, 2, "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]"); add_srs_wkt (p, 3, "],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"621"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-81],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"21817\"]]"); p = add_epsg_def_ex (filter, first, last, 21818, "epsg", 21818, "Bogota 1975 / UTM zone 18N", 0, 0, "International 1924", "Greenwich", "Bogota_1975", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=intl +towgs84=307,304,-318,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / UTM zone 18N\",GEOGCS[\"Bogota 19"); add_srs_wkt (p, 1, "75\",DATUM[\"Bogota_1975\",SPHEROID[\"International 1924"); add_srs_wkt (p, 2, "\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[307"); add_srs_wkt (p, 3, ",304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4218\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",-75],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"21818\"]]"); p = add_epsg_def_ex (filter, first, last, 21891, "epsg", 21891, "Bogota 1975 / Colombia West zone (deprecated)", 0, 0, "International 1924", "Greenwich", "Bogota_1975", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666"); add_proj4text (p, 1, "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / Colombia West zone (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4."); add_srs_wkt (p, 9, "599047222222222],PARAMETER[\"central_meridian\",-77.0809"); add_srs_wkt (p, 10, "1666666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",1000000],PARAMETER[\"false_northing\",1000"); add_srs_wkt (p, 12, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 13, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2189"); add_srs_wkt (p, 14, "1\"]]"); p = add_epsg_def_ex (filter, first, last, 21892, "epsg", 21892, "Bogota 1975 / Colombia Bogota zone (deprecated)", 0, 0, "International 1924", "Greenwich", "Bogota_1975", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666"); add_proj4text (p, 1, "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / Colombia Bogota zone (deprecated)"); add_srs_wkt (p, 1, "\",GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID"); add_srs_wkt (p, 2, "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7022\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 9, ".599047222222222],PARAMETER[\"central_meridian\",-74.080"); add_srs_wkt (p, 10, "91666666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",1000000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 12, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"218"); add_srs_wkt (p, 14, "92\"]]"); p = add_epsg_def_ex (filter, first, last, 21893, "epsg", 21893, "Bogota 1975 / Colombia East Central zone (deprecated)", 0, 0, "International 1924", "Greenwich", "Bogota_1975", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666"); add_proj4text (p, 1, "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / Colombia East Central zone (depre"); add_srs_wkt (p, 1, "cated)\",GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SP"); add_srs_wkt (p, 2, "HEROID[\"International 1924\",6378388,297,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7022\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4218\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",4.599047222222222],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-71.08091666666667],PARAMETER[\"scale_factor\",1],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",1000000],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"21893\"]]"); p = add_epsg_def_ex (filter, first, last, 21894, "epsg", 21894, "Bogota 1975 / Colombia East (deprecated)", 0, 0, "International 1924", "Greenwich", "Bogota_1975", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666"); add_proj4text (p, 1, "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / Colombia East (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Inte"); add_srs_wkt (p, 2, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, "18\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",4.59904"); add_srs_wkt (p, 9, "7222222222],PARAMETER[\"central_meridian\",-68.080916666"); add_srs_wkt (p, 10, "66667],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",1000000],PARAMETER[\"false_northing\",1000000],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"21894\"]]"); p = add_epsg_def_ex (filter, first, last, 21896, "epsg", 21896, "Bogota 1975 / Colombia West zone", 0, 1, "International 1924", "Greenwich", "Bogota_1975", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666"); add_proj4text (p, 1, "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / Colombia West zone\",GEOGCS[\"Bog"); add_srs_wkt (p, 1, "ota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Internationa"); add_srs_wkt (p, 2, "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 3, "84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",4.599047222222"); add_srs_wkt (p, 9, "222],PARAMETER[\"central_meridian\",-77.08091666666667],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",1000000],PARAMETER[\"false_northing\",1000000],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"21896\"]]"); p = add_epsg_def_ex (filter, first, last, 21897, "epsg", 21897, "Bogota 1975 / Colombia Bogota zone", 0, 1, "International 1924", "Greenwich", "Bogota_1975", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666"); add_proj4text (p, 1, "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / Colombia Bogota zone\",GEOGCS[\"B"); add_srs_wkt (p, 1, "ogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Internatio"); add_srs_wkt (p, 2, "nal 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOW"); add_srs_wkt (p, 3, "GS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",4.5990472222"); add_srs_wkt (p, 9, "22222],PARAMETER[\"central_meridian\",-74.08091666666667"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",1000000],PARAMETER[\"false_northing\",1000000],UNIT["); add_srs_wkt (p, 12, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NOR"); add_srs_wkt (p, 13, "TH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"21897\"]]"); p = add_epsg_def_ex (filter, first, last, 21898, "epsg", 21898, "Bogota 1975 / Colombia East Central zone", 0, 1, "International 1924", "Greenwich", "Bogota_1975", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666"); add_proj4text (p, 1, "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / Colombia East Central zone\",GEOG"); add_srs_wkt (p, 1, "CS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\"Inte"); add_srs_wkt (p, 2, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, "18\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",4.59904"); add_srs_wkt (p, 9, "7222222222],PARAMETER[\"central_meridian\",-71.080916666"); add_srs_wkt (p, 10, "66667],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",1000000],PARAMETER[\"false_northing\",1000000],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"21898\"]]"); p = add_epsg_def_ex (filter, first, last, 21899, "epsg", 21899, "Bogota 1975 / Colombia East", 0, 1, "International 1924", "Greenwich", "Bogota_1975", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666"); add_proj4text (p, 1, "666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs"); add_proj4text (p, 2, "84=307,304,-318,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Bogota 1975 / Colombia East\",GEOGCS[\"Bogota 1"); add_srs_wkt (p, 1, "975\",DATUM[\"Bogota_1975\",SPHEROID[\"International 192"); add_srs_wkt (p, 2, "4\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[30"); add_srs_wkt (p, 3, "7,304,-318,0,0,0,0],AUTHORITY[\"EPSG\",\"6218\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4218\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",4.599047222222222],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",-68.08091666666667],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",100"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",1000000],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 13, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"21899\"]]"); p = add_epsg_def_ex (filter, first, last, 22032, "epsg", 22032, "Camacupa / UTM zone 32S", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Camacupa", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +ellps=clrk80 +towgs84=-50.9,-"); add_proj4text (p, 1, "347.6,-231,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Camacupa / UTM zone 32S\",GEOGCS[\"Camacupa\",D"); add_srs_wkt (p, 1, "ATUM[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9"); add_srs_wkt (p, 3, ",-347.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",9],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"22032\"]]"); p = add_epsg_def_ex (filter, first, last, 22033, "epsg", 22033, "Camacupa / UTM zone 33S", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Camacupa", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +south +ellps=clrk80 +towgs84=-50.9,-"); add_proj4text (p, 1, "347.6,-231,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Camacupa / UTM zone 33S\",GEOGCS[\"Camacupa\",D"); add_srs_wkt (p, 1, "ATUM[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9"); add_srs_wkt (p, 3, ",-347.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",15],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"22033\"]]"); p = add_epsg_def_ex (filter, first, last, 22091, "epsg", 22091, "Camacupa / TM 11.30 SE", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Camacupa", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11.5 +k=0.9996 +x_0=500000 +"); add_proj4text (p, 1, "y_0=10000000 +ellps=clrk80 +towgs84=-50.9,-347.6,-231,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Camacupa / TM 11.30 SE\",GEOGCS[\"Camacupa\",DA"); add_srs_wkt (p, 1, "TUM[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249."); add_srs_wkt (p, 2, "145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9,"); add_srs_wkt (p, 3, "-347.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",11.5],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"22091\"]]"); p = add_epsg_def_ex (filter, first, last, 22092, "epsg", 22092, "Camacupa / TM 12 SE", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Camacupa", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +towgs84=-50.9,-347.6,-231,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Camacupa / TM 12 SE\",GEOGCS[\"Camacupa\",DATUM"); add_srs_wkt (p, 1, "[\"Camacupa\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145"); add_srs_wkt (p, 2, ",293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-50.9,-34"); add_srs_wkt (p, 3, "7.6,-231,0,0,0,0],AUTHORITY[\"EPSG\",\"6220\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4220\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",12],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"22092\"]]"); p = add_epsg_def_ex (filter, first, last, 22171, "epsg", 22171, "POSGAR 98 / Argentina 1", 0, 1, "GRS 1980", "Greenwich", "Posiciones_Geodesicas_Argentinas_1998", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 98 / Argentina 1\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",-72],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",1500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"22171\"]]"); p = add_epsg_def_ex (filter, first, last, 22172, "epsg", 22172, "POSGAR 98 / Argentina 2", 0, 1, "GRS 1980", "Greenwich", "Posiciones_Geodesicas_Argentinas_1998", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 98 / Argentina 2\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",-69],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",2500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"22172\"]]"); p = add_epsg_def_ex (filter, first, last, 22173, "epsg", 22173, "POSGAR 98 / Argentina 3", 0, 1, "GRS 1980", "Greenwich", "Posiciones_Geodesicas_Argentinas_1998", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 98 / Argentina 3\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",-66],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",3500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"22173\"]]"); p = add_epsg_def_ex (filter, first, last, 22174, "epsg", 22174, "POSGAR 98 / Argentina 4", 0, 1, "GRS 1980", "Greenwich", "Posiciones_Geodesicas_Argentinas_1998", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 98 / Argentina 4\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",-63],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",4500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"22174\"]]"); p = add_epsg_def_ex (filter, first, last, 22175, "epsg", 22175, "POSGAR 98 / Argentina 5", 0, 1, "GRS 1980", "Greenwich", "Posiciones_Geodesicas_Argentinas_1998", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 98 / Argentina 5\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",-60],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",5500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"22175\"]]"); p = add_epsg_def_ex (filter, first, last, 22176, "epsg", 22176, "POSGAR 98 / Argentina 6", 0, 1, "GRS 1980", "Greenwich", "Posiciones_Geodesicas_Argentinas_1998", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 98 / Argentina 6\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",-57],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",6500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"22176\"]]"); p = add_epsg_def_ex (filter, first, last, 22177, "epsg", 22177, "POSGAR 98 / Argentina 7", 0, 1, "GRS 1980", "Greenwich", "Posiciones_Geodesicas_Argentinas_1998", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 98 / Argentina 7\",GEOGCS[\"POSGAR 98\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1998\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"619"); add_srs_wkt (p, 4, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4190\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",-54],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",7500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"22177\"]]"); p = add_epsg_def_ex (filter, first, last, 22181, "epsg", 22181, "POSGAR 94 / Argentina 1", 0, 1, "WGS 84", "Greenwich", "Posiciones_Geodesicas_Argentinas_1994", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 94 / Argentina 1\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",-72],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",1500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"22181\"]]"); p = add_epsg_def_ex (filter, first, last, 22182, "epsg", 22182, "POSGAR 94 / Argentina 2", 0, 1, "WGS 84", "Greenwich", "Posiciones_Geodesicas_Argentinas_1994", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 94 / Argentina 2\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",-69],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",2500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"22182\"]]"); p = add_epsg_def_ex (filter, first, last, 22183, "epsg", 22183, "POSGAR 94 / Argentina 3", 0, 1, "WGS 84", "Greenwich", "Posiciones_Geodesicas_Argentinas_1994", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 94 / Argentina 3\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",-66],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",3500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"22183\"]]"); p = add_epsg_def_ex (filter, first, last, 22184, "epsg", 22184, "POSGAR 94 / Argentina 4", 0, 1, "WGS 84", "Greenwich", "Posiciones_Geodesicas_Argentinas_1994", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 94 / Argentina 4\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",-63],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",4500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"22184\"]]"); p = add_epsg_def_ex (filter, first, last, 22185, "epsg", 22185, "POSGAR 94 / Argentina 5", 0, 1, "WGS 84", "Greenwich", "Posiciones_Geodesicas_Argentinas_1994", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 94 / Argentina 5\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",-60],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",5500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"22185\"]]"); p = add_epsg_def_ex (filter, first, last, 22186, "epsg", 22186, "POSGAR 94 / Argentina 6", 0, 1, "WGS 84", "Greenwich", "Posiciones_Geodesicas_Argentinas_1994", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 94 / Argentina 6\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",-57],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",6500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"22186\"]]"); p = add_epsg_def_ex (filter, first, last, 22187, "epsg", 22187, "POSGAR 94 / Argentina 7", 0, 1, "WGS 84", "Greenwich", "Posiciones_Geodesicas_Argentinas_1994", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"POSGAR 94 / Argentina 7\",GEOGCS[\"POSGAR 94\","); add_srs_wkt (p, 1, "DATUM[\"Posiciones_Geodesicas_Argentinas_1994\",SPHEROID"); add_srs_wkt (p, 2, "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6694"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4694\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",-54],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",7500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"22187\"]]"); p = add_epsg_def_ex (filter, first, last, 22191, "epsg", 22191, "Campo Inchauspe / Argentina 1", 0, 1, "International 1924", "Greenwich", "Campo_Inchauspe", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Campo Inchauspe / Argentina 1\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-72],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",1500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"22191\"]]"); p = add_epsg_def_ex (filter, first, last, 22192, "epsg", 22192, "Campo Inchauspe / Argentina 2", 0, 1, "International 1924", "Greenwich", "Campo_Inchauspe", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Campo Inchauspe / Argentina 2\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-69],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",2500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"22192\"]]"); p = add_epsg_def_ex (filter, first, last, 22193, "epsg", 22193, "Campo Inchauspe / Argentina 3", 0, 1, "International 1924", "Greenwich", "Campo_Inchauspe", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Campo Inchauspe / Argentina 3\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-66],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",3500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"22193\"]]"); p = add_epsg_def_ex (filter, first, last, 22194, "epsg", 22194, "Campo Inchauspe / Argentina 4", 0, 1, "International 1924", "Greenwich", "Campo_Inchauspe", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Campo Inchauspe / Argentina 4\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-63],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",4500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"22194\"]]"); p = add_epsg_def_ex (filter, first, last, 22195, "epsg", 22195, "Campo Inchauspe / Argentina 5", 0, 1, "International 1924", "Greenwich", "Campo_Inchauspe", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Campo Inchauspe / Argentina 5\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-60],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",5500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"22195\"]]"); p = add_epsg_def_ex (filter, first, last, 22196, "epsg", 22196, "Campo Inchauspe / Argentina 6", 0, 1, "International 1924", "Greenwich", "Campo_Inchauspe", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Campo Inchauspe / Argentina 6\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-57],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",6500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"22196\"]]"); p = add_epsg_def_ex (filter, first, last, 22197, "epsg", 22197, "Campo Inchauspe / Argentina 7", 0, 1, "International 1924", "Greenwich", "Campo_Inchauspe", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-148,136,90,0,0,0,0 +units=m +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Campo Inchauspe / Argentina 7\",GEOGCS[\"Campo "); add_srs_wkt (p, 1, "Inchauspe\",DATUM[\"Campo_Inchauspe\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\"EPSG\",\"6221\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4221\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",-90],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-54],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",7500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"22197\"]]"); p = add_epsg_def_ex (filter, first, last, 22234, "epsg", 22234, "Cape / UTM zone 34S", 0, 0, "Clarke 1880 (Arc)", "Greenwich", "Cape", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.9663"); add_proj4text (p, 1, "98753 +towgs84=-136,-108,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / UTM zone 34S\",GEOGCS[\"Cape\",DATUM[\"C"); add_srs_wkt (p, 1, "ape\",SPHEROID[\"Clarke 1880 (Arc)\",6378249.145,293.466"); add_srs_wkt (p, 2, "3077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-29"); add_srs_wkt (p, 3, "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4222\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",21],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"22234\"]]"); p = add_epsg_def_ex (filter, first, last, 22235, "epsg", 22235, "Cape / UTM zone 35S", 0, 0, "Clarke 1880 (Arc)", "Greenwich", "Cape", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.9663"); add_proj4text (p, 1, "98753 +towgs84=-136,-108,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / UTM zone 35S\",GEOGCS[\"Cape\",DATUM[\"C"); add_srs_wkt (p, 1, "ape\",SPHEROID[\"Clarke 1880 (Arc)\",6378249.145,293.466"); add_srs_wkt (p, 2, "3077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-29"); add_srs_wkt (p, 3, "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4222\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"22235\"]]"); p = add_epsg_def_ex (filter, first, last, 22236, "epsg", 22236, "Cape / UTM zone 36S (deprecated)", 0, 0, "Clarke 1880 (Arc)", "Greenwich", "Cape", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.9663"); add_proj4text (p, 1, "98753 +towgs84=-136,-108,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / UTM zone 36S (deprecated)\",GEOGCS[\"Cap"); add_srs_wkt (p, 1, "e\",DATUM[\"Cape\",SPHEROID[\"Clarke 1880 (Arc)\",637824"); add_srs_wkt (p, 2, "9.145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84["); add_srs_wkt (p, 3, "-136,-108,-292,0,0,0,0],AUTHORITY[\"EPSG\",\"6222\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4222\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",33],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"22236\"]]"); p = add_epsg_def_ex (filter, first, last, 22275, "epsg", 22275, "Cape / Lo15", 0, 0, "Clarke 1880 (Arc)", "Greenwich", "Cape", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo15\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "22\"]],PROJECTION[\"Transverse_Mercator_South_Orientated"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",15],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\""); add_srs_wkt (p, 12, ",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22275\"]]"); p = add_epsg_def_ex (filter, first, last, 22277, "epsg", 22277, "Cape / Lo17", 0, 0, "Clarke 1880 (Arc)", "Greenwich", "Cape", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=17 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo17\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "22\"]],PROJECTION[\"Transverse_Mercator_South_Orientated"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",17],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\""); add_srs_wkt (p, 12, ",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22277\"]]"); p = add_epsg_def_ex (filter, first, last, 22279, "epsg", 22279, "Cape / Lo19", 0, 0, "Clarke 1880 (Arc)", "Greenwich", "Cape", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=19 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo19\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "22\"]],PROJECTION[\"Transverse_Mercator_South_Orientated"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",19],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\""); add_srs_wkt (p, 12, ",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22279\"]]"); p = add_epsg_def_ex (filter, first, last, 22281, "epsg", 22281, "Cape / Lo21", 0, 0, "Clarke 1880 (Arc)", "Greenwich", "Cape", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo21\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "22\"]],PROJECTION[\"Transverse_Mercator_South_Orientated"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",21],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\""); add_srs_wkt (p, 12, ",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22281\"]]"); p = add_epsg_def_ex (filter, first, last, 22283, "epsg", 22283, "Cape / Lo23", 0, 0, "Clarke 1880 (Arc)", "Greenwich", "Cape", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=23 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo23\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "22\"]],PROJECTION[\"Transverse_Mercator_South_Orientated"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",23],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\""); add_srs_wkt (p, 12, ",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22283\"]]"); p = add_epsg_def_ex (filter, first, last, 22285, "epsg", 22285, "Cape / Lo25", 0, 0, "Clarke 1880 (Arc)", "Greenwich", "Cape", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=25 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo25\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "22\"]],PROJECTION[\"Transverse_Mercator_South_Orientated"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",25],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\""); add_srs_wkt (p, 12, ",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22285\"]]"); p = add_epsg_def_ex (filter, first, last, 22287, "epsg", 22287, "Cape / Lo27", 0, 0, "Clarke 1880 (Arc)", "Greenwich", "Cape", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo27\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "22\"]],PROJECTION[\"Transverse_Mercator_South_Orientated"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",27],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\""); add_srs_wkt (p, 12, ",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22287\"]]"); p = add_epsg_def_ex (filter, first, last, 22289, "epsg", 22289, "Cape / Lo29", 0, 0, "Clarke 1880 (Arc)", "Greenwich", "Cape", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=29 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo29\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "22\"]],PROJECTION[\"Transverse_Mercator_South_Orientated"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",29],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\""); add_srs_wkt (p, 12, ",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22289\"]]"); p = add_epsg_def_ex (filter, first, last, 22291, "epsg", 22291, "Cape / Lo31", 0, 0, "Clarke 1880 (Arc)", "Greenwich", "Cape", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo31\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "22\"]],PROJECTION[\"Transverse_Mercator_South_Orientated"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",31],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\""); add_srs_wkt (p, 12, ",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22291\"]]"); p = add_epsg_def_ex (filter, first, last, 22293, "epsg", 22293, "Cape / Lo33", 0, 0, "Clarke 1880 (Arc)", "Greenwich", "Cape", "Transverse_Mercator_South_Orientated", "metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=0 +y_0=0 +axis="); add_proj4text (p, 1, "wsu +a=6378249.145 +b=6356514.966398753 +towgs84=-136,-1"); add_proj4text (p, 2, "08,-292,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cape / Lo33\",GEOGCS[\"Cape\",DATUM[\"Cape\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (Arc)\",6378249.145,293.4663077,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7013\"]],TOWGS84[-136,-108,-292,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6222\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "22\"]],PROJECTION[\"Transverse_Mercator_South_Orientated"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",33],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\""); add_srs_wkt (p, 12, ",WEST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"22293\"]]"); p = add_epsg_def_ex (filter, first, last, 22332, "epsg", 22332, "Carthage / UTM zone 32N", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Carthage", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +towgs84=-263"); add_proj4text (p, 1, ",6,431,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Carthage / UTM zone 32N\",GEOGCS[\"Carthage\",D"); add_srs_wkt (p, 1, "ATUM[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249"); add_srs_wkt (p, 2, ".2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS"); add_srs_wkt (p, 3, "84[-263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",9],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"22332\"]]"); p = add_epsg_def_ex (filter, first, last, 22391, "epsg", 22391, "Carthage / Nord Tunisie", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Carthage", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=9.9 +k_0=0.99962554"); add_proj4text (p, 1, "4 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs"); add_proj4text (p, 2, "84=-263,6,431,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Carthage / Nord Tunisie\",GEOGCS[\"Carthage\",D"); add_srs_wkt (p, 1, "ATUM[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249"); add_srs_wkt (p, 2, ".2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS"); add_srs_wkt (p, 3, "84[-263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",36],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",9.9],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.999625544],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",300000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"22391\"]]"); p = add_epsg_def_ex (filter, first, last, 22392, "epsg", 22392, "Carthage / Sud Tunisie", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Carthage", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=9.9 +k_0=0.9996"); add_proj4text (p, 1, "25769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +t"); add_proj4text (p, 2, "owgs84=-263,6,431,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Carthage / Sud Tunisie\",GEOGCS[\"Carthage\",DA"); add_srs_wkt (p, 1, "TUM[\"Carthage\",SPHEROID[\"Clarke 1880 (IGN)\",6378249."); add_srs_wkt (p, 2, "2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-263,6,431,0,0,0,0],AUTHORITY[\"EPSG\",\"6223\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4223\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",33.3],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",9.9],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",0.999625769],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",300000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"22392\"]]"); p = add_epsg_def_ex (filter, first, last, 22521, "epsg", 22521, "Corrego Alegre 1970-72 / UTM zone 21S", 0, 0, "International 1924", "Greenwich", "Corrego_Alegre_1970_72", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=intl +towgs84=-205.57,1"); add_proj4text (p, 1, "68.77,-4.12,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 21S\",GEOGCS["); add_srs_wkt (p, 1, "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); add_srs_wkt (p, 2, "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7022\"]],TOWGS84[-205.57,168.77,-4.12,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 8, "25\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-5"); add_srs_wkt (p, 10, "7],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"22521\"]]"); p = add_epsg_def_ex (filter, first, last, 22522, "epsg", 22522, "Corrego Alegre 1970-72 / UTM zone 22S", 0, 0, "International 1924", "Greenwich", "Corrego_Alegre_1970_72", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=intl +towgs84=-205.57,1"); add_proj4text (p, 1, "68.77,-4.12,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 22S\",GEOGCS["); add_srs_wkt (p, 1, "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); add_srs_wkt (p, 2, "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7022\"]],TOWGS84[-205.57,168.77,-4.12,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 8, "25\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-5"); add_srs_wkt (p, 10, "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"22522\"]]"); p = add_epsg_def_ex (filter, first, last, 22523, "epsg", 22523, "Corrego Alegre 1970-72 / UTM zone 23S", 0, 0, "International 1924", "Greenwich", "Corrego_Alegre_1970_72", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=intl +towgs84=-205.57,1"); add_proj4text (p, 1, "68.77,-4.12,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 23S\",GEOGCS["); add_srs_wkt (p, 1, "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); add_srs_wkt (p, 2, "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7022\"]],TOWGS84[-205.57,168.77,-4.12,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 8, "25\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-4"); add_srs_wkt (p, 10, "5],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"22523\"]]"); p = add_epsg_def_ex (filter, first, last, 22524, "epsg", 22524, "Corrego Alegre 1970-72 / UTM zone 24S", 0, 0, "International 1924", "Greenwich", "Corrego_Alegre_1970_72", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=intl +towgs84=-205.57,1"); add_proj4text (p, 1, "68.77,-4.12,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 24S\",GEOGCS["); add_srs_wkt (p, 1, "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); add_srs_wkt (p, 2, "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7022\"]],TOWGS84[-205.57,168.77,-4.12,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 8, "25\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-3"); add_srs_wkt (p, 10, "9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"22524\"]]"); p = add_epsg_def_ex (filter, first, last, 22525, "epsg", 22525, "Corrego Alegre 1970-72 / UTM zone 25S", 0, 0, "International 1924", "Greenwich", "Corrego_Alegre_1970_72", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +ellps=intl +towgs84=-205.57,1"); add_proj4text (p, 1, "68.77,-4.12,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Corrego Alegre 1970-72 / UTM zone 25S\",GEOGCS["); add_srs_wkt (p, 1, "\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre_1970_7"); add_srs_wkt (p, 2, "2\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7022\"]],TOWGS84[-205.57,168.77,-4.12,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 8, "25\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-3"); add_srs_wkt (p, 10, "3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"22525\"]]"); p = add_epsg_def_ex (filter, first, last, 22700, "epsg", 22700, "Deir ez Zor / Levant Zone", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Deir_ez_Zor", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0."); add_proj4text (p, 1, "9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 "); add_proj4text (p, 2, "+towgs84=-190.421,8.532,238.69,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Deir ez Zor / Levant Zone\",GEOGCS[\"Deir ez Zo"); add_srs_wkt (p, 1, "r\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"Clarke 1880 (IGN)\""); add_srs_wkt (p, 2, ",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\""); add_srs_wkt (p, 3, "]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6227\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4227\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 9, "_origin\",34.65],PARAMETER[\"central_meridian\",37.35],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",0.9996256],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",300000],PARAMETER[\"false_northing\",300000],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22700\"]]"); p = add_epsg_def_ex (filter, first, last, 22770, "epsg", 22770, "Deir ez Zor / Syria Lambert", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Deir_ez_Zor", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0."); add_proj4text (p, 1, "9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 "); add_proj4text (p, 2, "+towgs84=-190.421,8.532,238.69,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Deir ez Zor / Syria Lambert\",GEOGCS[\"Deir ez "); add_srs_wkt (p, 1, "Zor\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"Clarke 1880 (IGN)"); add_srs_wkt (p, 2, "\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011"); add_srs_wkt (p, 3, "\"]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6227\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4227\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",34.65],PARAMETER[\"central_meridian\",37.35"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.9996256],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",300000],PARAMETER[\"false_northing\",300000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 13, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22770\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 22780, "epsg", 22780, "Deir ez Zor / Levant Stereographic", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Deir_ez_Zor", "Oblique_Stereographic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=sterea +lat_0=34.2 +lon_0=39.15 +k=0.9995341 +x_0="); add_proj4text (p, 1, "0 +y_0=0 +a=6378249.2 +b=6356515 +towgs84=-190.421,8.532"); add_proj4text (p, 2, ",238.69,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Deir ez Zor / Levant Stereographic\",GEOGCS[\"D"); add_srs_wkt (p, 1, "eir ez Zor\",DATUM[\"Deir_ez_Zor\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 2, "0 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7011\"]],TOWGS84[-190.421,8.532,238.69,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6227\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4227\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",34.2],PARAMETER[\"central_meridian\",39.15"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.9995341],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"22780\"]]"); p = add_epsg_def_ex (filter, first, last, 22832, "epsg", 22832, "Douala / UTM zone 32N (deprecated)", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Douala", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_"); add_proj4text (p, 1, "defs"); add_srs_wkt (p, 0, "PROJCS[\"Douala / UTM zone 32N (deprecated)\",GEOGCS[\"D"); add_srs_wkt (p, 1, "ouala\",DATUM[\"Douala\",SPHEROID[\"Clarke 1880 (IGN)\","); add_srs_wkt (p, 2, "6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6228\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"422"); add_srs_wkt (p, 7, "8\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",9],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"22832"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 22991, "epsg", 22991, "Egypt 1907 / Blue Belt", 0, 0, "Helmert 1906", "Greenwich", "Egypt_1907", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=35 +k=1 +x_0=300000 +y_0=11"); add_proj4text (p, 1, "00000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Egypt 1907 / Blue Belt\",GEOGCS[\"Egypt 1907\","); add_srs_wkt (p, 1, "DATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\",6378200,2"); add_srs_wkt (p, 2, "98.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-130,110,-13,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4229\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",30],PARAMETER[\"central_meridia"); add_srs_wkt (p, 9, "n\",35],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",300000],PARAMETER[\"false_northing\",1100000],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"22991\"]]"); p = add_epsg_def_ex (filter, first, last, 22992, "epsg", 22992, "Egypt 1907 / Red Belt", 0, 0, "Helmert 1906", "Greenwich", "Egypt_1907", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=31 +k=1 +x_0=615000 +y_0=81"); add_proj4text (p, 1, "0000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Egypt 1907 / Red Belt\",GEOGCS[\"Egypt 1907\",D"); add_srs_wkt (p, 1, "ATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\",6378200,29"); add_srs_wkt (p, 2, "8.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-130,110,-13,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4229\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",30],PARAMETER[\"central_meridia"); add_srs_wkt (p, 9, "n\",31],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",615000],PARAMETER[\"false_northing\",810000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"22992\"]]"); p = add_epsg_def_ex (filter, first, last, 22993, "epsg", 22993, "Egypt 1907 / Purple Belt", 0, 0, "Helmert 1906", "Greenwich", "Egypt_1907", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=27 +k=1 +x_0=700000 +y_0=20"); add_proj4text (p, 1, "0000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Egypt 1907 / Purple Belt\",GEOGCS[\"Egypt 1907\""); add_srs_wkt (p, 1, ",DATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\",6378200,"); add_srs_wkt (p, 2, "298.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-130,110,-13"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4229\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",30],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",27],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",700000],PARAMETER[\"false_northing\",200000]"); add_srs_wkt (p, 11, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 12, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"22993\"]]"); p = add_epsg_def_ex (filter, first, last, 22994, "epsg", 22994, "Egypt 1907 / Extended Purple Belt", 0, 0, "Helmert 1906", "Greenwich", "Egypt_1907", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=27 +k=1 +x_0=700000 +y_0=12"); add_proj4text (p, 1, "00000 +ellps=helmert +towgs84=-130,110,-13,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Egypt 1907 / Extended Purple Belt\",GEOGCS[\"Eg"); add_srs_wkt (p, 1, "ypt 1907\",DATUM[\"Egypt_1907\",SPHEROID[\"Helmert 1906\""); add_srs_wkt (p, 2, ",6378200,298.3,AUTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-13"); add_srs_wkt (p, 3, "0,110,-13,0,0,0,0],AUTHORITY[\"EPSG\",\"6229\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4229\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",27],PARAMETER[\"scale_factor\",1],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",700000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",1200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"22994\"]]"); p = add_epsg_def_ex (filter, first, last, 23028, "epsg", 23028, "ED50 / UTM zone 28N", 0, 0, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 28N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-15],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"23028\"]]"); p = add_epsg_def_ex (filter, first, last, 23029, "epsg", 23029, "ED50 / UTM zone 29N", 0, 0, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 29N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-9],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"23029\"]]"); p = add_epsg_def_ex (filter, first, last, 23030, "epsg", 23030, "ED50 / UTM zone 30N", 0, 0, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 30N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-3],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"23030\"]]"); p = add_epsg_def_ex (filter, first, last, 23031, "epsg", 23031, "ED50 / UTM zone 31N", 0, 0, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=31 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 31N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",3],PARAMETER[\"scale_factor\",0.9996],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"23031\"]]"); p = add_epsg_def_ex (filter, first, last, 23032, "epsg", 23032, "ED50 / UTM zone 32N", 0, 0, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 32N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"23032\"]]"); p = add_epsg_def_ex (filter, first, last, 23033, "epsg", 23033, "ED50 / UTM zone 33N", 0, 0, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 33N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"23033\"]]"); p = add_epsg_def_ex (filter, first, last, 23034, "epsg", 23034, "ED50 / UTM zone 34N", 0, 0, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 34N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",21],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"23034\"]]"); p = add_epsg_def_ex (filter, first, last, 23035, "epsg", 23035, "ED50 / UTM zone 35N", 0, 0, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 35N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",27],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"23035\"]]"); p = add_epsg_def_ex (filter, first, last, 23036, "epsg", 23036, "ED50 / UTM zone 36N", 0, 0, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 36N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",33],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"23036\"]]"); p = add_epsg_def_ex (filter, first, last, 23037, "epsg", 23037, "ED50 / UTM zone 37N", 0, 0, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 37N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",39],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"23037\"]]"); p = add_epsg_def_ex (filter, first, last, 23038, "epsg", 23038, "ED50 / UTM zone 38N", 0, 0, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=intl +towgs84=-87,-98,-121,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / UTM zone 38N\",GEOGCS[\"ED50\",DATUM[\"E"); add_srs_wkt (p, 1, "uropean_Datum_1950\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-"); add_srs_wkt (p, 3, "121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"23038\"]]"); p = add_epsg_def_ex (filter, first, last, 23090, "epsg", 23090, "ED50 / TM 0 N", 0, 0, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM 0 N\",GEOGCS[\"ED50\",DATUM[\"Europea"); add_srs_wkt (p, 1, "n_Datum_1950\",SPHEROID[\"International 1924\",6378388,2"); add_srs_wkt (p, 2, "97,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0,"); add_srs_wkt (p, 3, "0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4230\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"230"); add_srs_wkt (p, 13, "90\"]]"); p = add_epsg_def_ex (filter, first, last, 23095, "epsg", 23095, "ED50 / TM 5 NE", 0, 0, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=5 +k=0.9996 +x_0=500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM 5 NE\",GEOGCS[\"ED50\",DATUM[\"Europe"); add_srs_wkt (p, 1, "an_Datum_1950\",SPHEROID[\"International 1924\",6378388,"); add_srs_wkt (p, 2, "297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",5],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "23095\"]]"); p = add_epsg_def_ex (filter, first, last, 23239, "epsg", 23239, "Fahud / UTM zone 39N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Fahud", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=clrk80 +towgs84=-346,-1,224,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Fahud / UTM zone 39N\",GEOGCS[\"Fahud\",DATUM[\""); add_srs_wkt (p, 1, "Fahud\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4"); add_srs_wkt (p, 2, "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-346,-1,224,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6232\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4232\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"232"); add_srs_wkt (p, 13, "39\"]]"); p = add_epsg_def_ex (filter, first, last, 23240, "epsg", 23240, "Fahud / UTM zone 40N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Fahud", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=40 +ellps=clrk80 +towgs84=-346,-1,224,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Fahud / UTM zone 40N\",GEOGCS[\"Fahud\",DATUM[\""); add_srs_wkt (p, 1, "Fahud\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.4"); add_srs_wkt (p, 2, "65,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-346,-1,224,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6232\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4232\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, "7],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"232"); add_srs_wkt (p, 13, "40\"]]"); p = add_epsg_def_ex (filter, first, last, 23433, "epsg", 23433, "Garoua / UTM zone 33N (deprecated)", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Garoua", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +a=6378249.2 +b=6356515 +units=m +no_"); add_proj4text (p, 1, "defs"); add_srs_wkt (p, 0, "PROJCS[\"Garoua / UTM zone 33N (deprecated)\",GEOGCS[\"G"); add_srs_wkt (p, 1, "aroua\",DATUM[\"Garoua\",SPHEROID[\"Clarke 1880 (IGN)\","); add_srs_wkt (p, 2, "6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6234\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"423"); add_srs_wkt (p, 7, "4\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",15]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2343"); add_srs_wkt (p, 13, "3\"]]"); p = add_epsg_def_ex (filter, first, last, 23700, "epsg", 23700, "HD72 / EOV", 0, 0, "GRS 1967", "Greenwich", "Hungarian_Datum_1972", "Hotine_Oblique_Mercator_Azimuth_Center", "metre", "Y", "East", "X", "North"); add_proj4text (p, 0, "+proj=somerc +lat_0=47.14439372222222 +lon_0=19.04857177"); add_proj4text (p, 1, "777778 +k_0=0.99993 +x_0=650000 +y_0=200000 +ellps=GRS67"); add_proj4text (p, 2, " +towgs84=52.17,-71.82,-14.9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"HD72 / EOV\",GEOGCS[\"HD72\",DATUM[\"Hungarian_"); add_srs_wkt (p, 1, "Datum_1972\",SPHEROID[\"GRS 1967\",6378160,298.247167427"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7036\"]],TOWGS84[52.17,-71.82,-14."); add_srs_wkt (p, 3, "9,0,0,0,0],AUTHORITY[\"EPSG\",\"6237\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4237\"]],PROJECTION[\"Hotine_Oblique_Mercator_Azim"); add_srs_wkt (p, 8, "uth_Center\"],PARAMETER[\"latitude_of_center\",47.144393"); add_srs_wkt (p, 9, "72222222],PARAMETER[\"longitude_of_center\",19.048571777"); add_srs_wkt (p, 10, "77778],PARAMETER[\"azimuth\",90],PARAMETER[\"rectified_g"); add_srs_wkt (p, 11, "rid_angle\",90],PARAMETER[\"scale_factor\",0.99993],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",650000],PARAMETER[\"false_northi"); add_srs_wkt (p, 13, "ng\",200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 14, "]],AXIS[\"Y\",EAST],AXIS[\"X\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"23700\"]]"); } #endif /* full EPSG initialization enabled/disabled */ �����������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_19.c��������������������������������������������������0000664�0001750�0001750�00000345651�12544707704�017057� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_19 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 4061, "epsg", 4061, "RGRDC 2005 / UTM zone 33S", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_RDC_2005", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / UTM zone 33S\",GEOGCS[\"RGRDC 2005"); add_srs_wkt (p, 1, "\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1033\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",15],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"4061\"]]"); p = add_epsg_def_ex (filter, first, last, 4062, "epsg", 4062, "RGRDC 2005 / UTM zone 34S", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_RDC_2005", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=utm +zone=34 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / UTM zone 34S\",GEOGCS[\"RGRDC 2005"); add_srs_wkt (p, 1, "\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1033\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",21],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"4062\"]]"); p = add_epsg_def_ex (filter, first, last, 4063, "epsg", 4063, "RGRDC 2005 / UTM zone 35S", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_RDC_2005", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / UTM zone 35S\",GEOGCS[\"RGRDC 2005"); add_srs_wkt (p, 1, "\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1033\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",27],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"4063\"]]"); p = add_epsg_def_ex (filter, first, last, 4071, "epsg", 4071, "Chua / UTM zone 23S", 0, 0, "International 1924", "Greenwich", "Chua", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=intl +towgs84=-143.87,2"); add_proj4text (p, 1, "43.37,-33.52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Chua / UTM zone 23S\",GEOGCS[\"Chua\",DATUM[\"C"); add_srs_wkt (p, 1, "hua\",SPHEROID[\"International 1924\",6378388,297,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7022\"]],TOWGS84[-143.87,243.37,-33.52,0,"); add_srs_wkt (p, 3, "0,0,0],AUTHORITY[\"EPSG\",\"6224\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4224\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",500000],PARAMETER[\"false_northing\",10000000"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"4071\"]]"); p = add_epsg_def_ex (filter, first, last, 4075, "epsg", 4075, "SREF98", 1, 1, "GRS 1980", "Greenwich", "Serbian_Reference_Network_1998", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"SREF98\",DATUM[\"Serbian_Reference_Network_1998"); add_srs_wkt (p, 1, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"1034\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4075\"]]"); p = add_epsg_def_ex (filter, first, last, 4081, "epsg", 4081, "REGCAN95", 1, 1, "GRS 1980", "Greenwich", "Red_Geodesica_de_Canarias_1995", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"REGCAN95\",DATUM[\"Red_Geodesica_de_Canarias_19"); add_srs_wkt (p, 1, "95\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"1035\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4081\"]]"); p = add_epsg_def_ex (filter, first, last, 4082, "epsg", 4082, "REGCAN95 / UTM zone 27N", 0, 0, "GRS 1980", "Greenwich", "Red_Geodesica_de_Canarias_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=27 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"REGCAN95 / UTM zone 27N\",GEOGCS[\"REGCAN95\",D"); add_srs_wkt (p, 1, "ATUM[\"Red_Geodesica_de_Canarias_1995\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1035\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4081\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-21],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"4082\"]]"); p = add_epsg_def_ex (filter, first, last, 4083, "epsg", 4083, "REGCAN95 / UTM zone 28N", 0, 0, "GRS 1980", "Greenwich", "Red_Geodesica_de_Canarias_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"REGCAN95 / UTM zone 28N\",GEOGCS[\"REGCAN95\",D"); add_srs_wkt (p, 1, "ATUM[\"Red_Geodesica_de_Canarias_1995\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1035\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4081\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-15],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"4083\"]]"); p = add_epsg_def_ex (filter, first, last, 4087, "epsg", 4087, "WGS 84 / World Equidistant Cylindrical", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Equirectangular", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +dat"); add_proj4text (p, 1, "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / World Equidistant Cylindrical\",GEOGCS"); add_srs_wkt (p, 1, "[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",63781"); add_srs_wkt (p, 2, "37,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Equirectangular\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",0],PARAMETER[\"central_meridian\",0],PARAMETER[\"fal"); add_srs_wkt (p, 9, "se_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 10, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 11, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"4087\"]]"); p = add_epsg_def_ex (filter, first, last, 4088, "epsg", 4088, "World Equidistant Cylindrical (Sphere)", 0, 0, "GRS 1980 Authalic Sphere", "Greenwich", "Not_specified_based_on_GRS_1980_Authalic_Sphere", "Equirectangular", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6"); add_proj4text (p, 1, "371007 +b=6371007 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"World Equidistant Cylindrical (Sphere)\",GEOGCS"); add_srs_wkt (p, 1, "[\"Unspecified datum based upon the GRS 1980 Authalic Sp"); add_srs_wkt (p, 2, "here\",DATUM[\"Not_specified_based_on_GRS_1980_Authalic_"); add_srs_wkt (p, 3, "Sphere\",SPHEROID[\"GRS 1980 Authalic Sphere\",6371007,0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"7048\"]],AUTHORITY[\"EPSG\",\"6047"); add_srs_wkt (p, 5, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 6, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 7, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 8, "AST],AUTHORITY[\"EPSG\",\"4047\"]],PROJECTION[\"Equirect"); add_srs_wkt (p, 9, "angular\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",0],PARAMETER[\"false_easting\",0],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"4088\"]]"); p = add_epsg_def_ex (filter, first, last, 4093, "epsg", 4093, "ETRS89 / DKTM1", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.99998 +x_0=200000 +y_"); add_proj4text (p, 1, "0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / DKTM1\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 1, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",9],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "98],PARAMETER[\"false_easting\",200000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"4093\"]]"); p = add_epsg_def_ex (filter, first, last, 4094, "epsg", 4094, "ETRS89 / DKTM2", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=10 +k=0.99998 +x_0=400000 +y"); add_proj4text (p, 1, "_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / DKTM2\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 1, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",10],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "998],PARAMETER[\"false_easting\",400000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"4094\"]]"); p = add_epsg_def_ex (filter, first, last, 4095, "epsg", 4095, "ETRS89 / DKTM3", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11.75 +k=0.99998 +x_0=600000"); add_proj4text (p, 1, " +y_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / DKTM3\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 1, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",11.75],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".99998],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",-5000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"4095\"]]"); p = add_epsg_def_ex (filter, first, last, 4096, "epsg", 4096, "ETRS89 / DKTM4", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=800000 +y_0=-50"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / DKTM4\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 1, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",15],PARAMETER[\"scale_factor\",1],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",800000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"4096\"]]"); p = add_epsg_def_ex (filter, first, last, 4097, "epsg", 4097, "ETRS89 / DKTM1", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.99998 +x_0=200000 +y_"); add_proj4text (p, 1, "0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / DKTM1 + DVR90 height\",PROJCS[\"ETRS"); add_srs_wkt (p, 1, "89 / DKTM1\",GEOGCS[\"ETRS89\",DATUM[\"European_Terrestr"); add_srs_wkt (p, 2, "ial_Reference_System_1989\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 3, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 4, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4258\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",9],PARAMETER[\"scale_factor\",0.99998],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",200000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 13, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"4093\"]],VERT_CS[\"DVR90 height\",VERT_DAT"); add_srs_wkt (p, 15, "UM[\"Dansk Vertikal Reference 1990\",2005,AUTHORITY[\"EP"); add_srs_wkt (p, 16, "SG\",\"5206\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 17, "01\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5799\"]],AUT"); add_srs_wkt (p, 18, "HORITY[\"EPSG\",\"4097\"]]"); p = add_epsg_def_ex (filter, first, last, 4098, "epsg", 4098, "ETRS89 / DKTM2", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=10 +k=0.99998 +x_0=400000 +y"); add_proj4text (p, 1, "_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 2, " +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / DKTM2 + DVR90 height\",PROJCS[\"ETRS"); add_srs_wkt (p, 1, "89 / DKTM2\",GEOGCS[\"ETRS89\",DATUM[\"European_Terrestr"); add_srs_wkt (p, 2, "ial_Reference_System_1989\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 3, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 4, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4258\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",10],PARAMETER[\"scale_factor\",0.99998],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",400000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 13, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"4094\"]],VERT_CS[\"DVR90 height\",VERT_DA"); add_srs_wkt (p, 15, "TUM[\"Dansk Vertikal Reference 1990\",2005,AUTHORITY[\"E"); add_srs_wkt (p, 16, "PSG\",\"5206\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 17, "001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5799\"]],AU"); add_srs_wkt (p, 18, "THORITY[\"EPSG\",\"4098\"]]"); p = add_epsg_def_ex (filter, first, last, 4099, "epsg", 4099, "ETRS89 / DKTM3", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11.75 +k=0.99998 +x_0=600000"); add_proj4text (p, 1, " +y_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / DKTM3 + DVR90 height\",PROJCS[\"ETRS"); add_srs_wkt (p, 1, "89 / DKTM3\",GEOGCS[\"ETRS89\",DATUM[\"European_Terrestr"); add_srs_wkt (p, 2, "ial_Reference_System_1989\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 3, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 4, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4258\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",11.75],PARAMETER[\"scale_factor\",0.99998],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",600000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 13, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"4095\"]],VERT_CS[\"DVR90 height\",VERT"); add_srs_wkt (p, 15, "_DATUM[\"Dansk Vertikal Reference 1990\",2005,AUTHORITY["); add_srs_wkt (p, 16, "\"EPSG\",\"5206\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 17, "\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5799\"]]"); add_srs_wkt (p, 18, ",AUTHORITY[\"EPSG\",\"4099\"]]"); p = add_epsg_def_ex (filter, first, last, 4100, "epsg", 4100, "ETRS89 / DKTM4", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=800000 +y_0=-50"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vuni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / DKTM4 + DVR90 height\",PROJCS[\"ETRS"); add_srs_wkt (p, 1, "89 / DKTM4\",GEOGCS[\"ETRS89\",DATUM[\"European_Terrestr"); add_srs_wkt (p, 2, "ial_Reference_System_1989\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 3, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 4, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4258\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",800000],PARAMETER[\"false_northing\",-5000"); add_srs_wkt (p, 12, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"4096\"]],VERT_CS[\"DVR90 height\",VERT_DATUM[\""); add_srs_wkt (p, 15, "Dansk Vertikal Reference 1990\",2005,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 16, "\"5206\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 17, "],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5799\"]],AUTHORIT"); add_srs_wkt (p, 18, "Y[\"EPSG\",\"4100\"]]"); p = add_epsg_def_ex (filter, first, last, 4120, "epsg", 4120, "Greek", 1, 1, "Bessel 1841", "Greenwich", "Greek", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Greek\",DATUM[\"Greek\",SPHEROID[\"Bessel 1841\""); add_srs_wkt (p, 1, ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"6120\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 4, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 5, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4120\""); add_srs_wkt (p, 6, "]]"); p = add_epsg_def_ex (filter, first, last, 4121, "epsg", 4121, "GGRS87", 1, 1, "GRS 1980", "Greenwich", "Greek_Geodetic_Reference_System_1987", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=-199.87,74.79,246.62"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"GGRS87\",DATUM[\"Greek_Geodetic_Reference_Syste"); add_srs_wkt (p, 1, "m_1987\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[-199.87,74.79,246.62,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"6121\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4121\"]]"); p = add_epsg_def_ex (filter, first, last, 4122, "epsg", 4122, "ATS77", 1, 1, "Average Terrestrial System 1977", "Greenwich", "Average_Terrestrial_System_1977", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378135 +b=6356750.304921594 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ATS77\",DATUM[\"Average_Terrestrial_System_1977"); add_srs_wkt (p, 1, "\",SPHEROID[\"Average Terrestrial System 1977\",6378135,"); add_srs_wkt (p, 2, "298.257,AUTHORITY[\"EPSG\",\"7041\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6122\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4122\"]]"); p = add_epsg_def_ex (filter, first, last, 4123, "epsg", 4123, "KKJ", 1, 1, "International 1924", "Greenwich", "Kartastokoordinaattijarjestelma_1966", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-96.062,-82.428,-121."); add_proj4text (p, 1, "753,4.801,0.345,-1.376,1.496 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"KKJ\",DATUM[\"Kartastokoordinaattijarjestelma_1"); add_srs_wkt (p, 1, "966\",SPHEROID[\"International 1924\",6378388,297,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7022\"]],TOWGS84[-96.062,-82.428,-121.753"); add_srs_wkt (p, 3, ",4.801,0.345,-1.376,1.496],AUTHORITY[\"EPSG\",\"6123\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4123\"]]"); p = add_epsg_def_ex (filter, first, last, 4124, "epsg", 4124, "RT90", 1, 1, "Bessel 1841", "Greenwich", "Rikets_koordinatsystem_1990", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=414.1,41.3,603.1,-0"); add_proj4text (p, 1, ".855,2.141,-7.023,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"RT90\",DATUM[\"Rikets_koordinatsystem_1990\",SP"); add_srs_wkt (p, 1, "HEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7004\"]],TOWGS84[414.1,41.3,603.1,-0.855,2.1"); add_srs_wkt (p, 3, "41,-7.023,0],AUTHORITY[\"EPSG\",\"6124\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4124\"]]"); p = add_epsg_def_ex (filter, first, last, 4125, "epsg", 4125, "Samboja", 1, 1, "Bessel 1841", "Greenwich", "Samboja", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-404.78,685.68,45.4"); add_proj4text (p, 1, "7,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Samboja\",DATUM[\"Samboja\",SPHEROID[\"Bessel 1"); add_srs_wkt (p, 1, "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); add_srs_wkt (p, 2, "]],TOWGS84[-404.78,685.68,45.47,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6125\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4125\"]]"); p = add_epsg_def_ex (filter, first, last, 4126, "epsg", 4126, "LKS94 (ETRS89)", 1, 1, "GRS 1980", "Greenwich", "Lithuania_1994_ETRS89", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"LKS94 (ETRS89)\",DATUM[\"Lithuania_1994_ETRS89\""); add_srs_wkt (p, 1, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6126\"]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 4, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9108\"]],AXI"); add_srs_wkt (p, 5, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4126\"]]"); p = add_epsg_def_ex (filter, first, last, 4127, "epsg", 4127, "Tete", 1, 1, "Clarke 1866", "Greenwich", "Tete", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=-73.472,-51.66,-112"); add_proj4text (p, 1, ".482,0.953,4.6,-2.368,0.586 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tete\",DATUM[\"Tete\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 1, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 2, "],TOWGS84[-73.472,-51.66,-112.482,0.953,4.6,-2.368,0.586"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6127\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"412"); add_srs_wkt (p, 7, "7\"]]"); p = add_epsg_def_ex (filter, first, last, 4128, "epsg", 4128, "Madzansua", 1, 1, "Clarke 1866", "Greenwich", "Madzansua", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Madzansua\",DATUM[\"Madzansua\",SPHEROID[\"Clar"); add_srs_wkt (p, 1, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7008\"]],AUTHORITY[\"EPSG\",\"6128\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 4, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 5, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4128\"]]"); p = add_epsg_def_ex (filter, first, last, 4129, "epsg", 4129, "Observatario", 1, 1, "Clarke 1866", "Greenwich", "Observatario", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Observatario\",DATUM[\"Observatario\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6129\"]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 4, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 5, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4129\"]]"); p = add_epsg_def_ex (filter, first, last, 4130, "epsg", 4130, "Moznet", 1, 1, "WGS 84", "Greenwich", "Moznet_ITRF94", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Moznet\",DATUM[\"Moznet_ITRF94\",SPHEROID[\"WGS"); add_srs_wkt (p, 1, " 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]"); add_srs_wkt (p, 2, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6130\"]],P"); add_srs_wkt (p, 3, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 4, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 5, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4130\"]]"); p = add_epsg_def_ex (filter, first, last, 4131, "epsg", 4131, "Indian 1960", 1, 1, "Everest 1830 (1937 Adjustment)", "Greenwich", "Indian_1960", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); add_proj4text (p, 1, "84=198,881,317,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Indian 1960\",DATUM[\"Indian_1960\",SPHEROID[\""); add_srs_wkt (p, 1, "Everest 1830 (1937 Adjustment)\",6377276.345,300.8017,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7015\"]],TOWGS84[198,881,317,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6131\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4131"); add_srs_wkt (p, 7, "\"]]"); p = add_epsg_def_ex (filter, first, last, 4132, "epsg", 4132, "FD58", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Final_Datum_1958", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-241.54,-163.64,396"); add_proj4text (p, 1, ".06,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"FD58\",DATUM[\"Final_Datum_1958\",SPHEROID[\"Cl"); add_srs_wkt (p, 1, "arke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7012\"]],TOWGS84[-241.54,-163.64,396.06,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6132\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4132\"]]"); p = add_epsg_def_ex (filter, first, last, 4133, "epsg", 4133, "EST92", 1, 1, "GRS 1980", "Greenwich", "Estonia_1992", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0.055,-0.541,-0.185,"); add_proj4text (p, 1, "0.0183,-0.0003,-0.007,-0.014 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"EST92\",DATUM[\"Estonia_1992\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 1, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 2, "],TOWGS84[0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.0"); add_srs_wkt (p, 3, "14],AUTHORITY[\"EPSG\",\"6133\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, "33\"]]"); p = add_epsg_def_ex (filter, first, last, 4134, "epsg", 4134, "PSD93", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "PDO_Survey_Datum_1993", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-180.624,-225.516,1"); add_proj4text (p, 1, "73.919,-0.81,-1.898,8.336,16.71006 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"PSD93\",DATUM[\"PDO_Survey_Datum_1993\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7012\"]],TOWGS84[-180.624,-225.516,173.919,-0.8"); add_srs_wkt (p, 3, "1,-1.898,8.336,16.71006],AUTHORITY[\"EPSG\",\"6134\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4134\"]]"); p = add_epsg_def_ex (filter, first, last, 4135, "epsg", 4135, "Old Hawaiian", 1, 1, "Clarke 1866", "Greenwich", "Old_Hawaiian", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=61,-285,-181,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Old Hawaiian\",DATUM[\"Old_Hawaiian\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7008\"]],TOWGS84[61,-285,-181,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"6135\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4135\"]]"); p = add_epsg_def_ex (filter, first, last, 4136, "epsg", 4136, "St. Lawrence Island", 1, 1, "Clarke 1866", "Greenwich", "St_Lawrence_Island", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"St. Lawrence Island\",DATUM[\"St_Lawrence_Islan"); add_srs_wkt (p, 1, "d\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6136"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 4, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 6, "AST],AUTHORITY[\"EPSG\",\"4136\"]]"); p = add_epsg_def_ex (filter, first, last, 4137, "epsg", 4137, "St. Paul Island", 1, 1, "Clarke 1866", "Greenwich", "St_Paul_Island", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"St. Paul Island\",DATUM[\"St_Paul_Island\",SPHE"); add_srs_wkt (p, 1, "ROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6137\"]],PRI"); add_srs_wkt (p, 3, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 4, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 5, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4137\"]]"); p = add_epsg_def_ex (filter, first, last, 4138, "epsg", 4138, "St. George Island", 1, 1, "Clarke 1866", "Greenwich", "St_George_Island", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"St. George Island\",DATUM[\"St_George_Island\","); add_srs_wkt (p, 1, "SPHEROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6138\"]]"); add_srs_wkt (p, 3, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 4, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 5, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4138\"]]"); p = add_epsg_def_ex (filter, first, last, 4139, "epsg", 4139, "Puerto Rico", 1, 1, "Clarke 1866", "Greenwich", "Puerto_Rico", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Puerto Rico\",DATUM[\"Puerto_Rico\",SPHEROID[\""); add_srs_wkt (p, 1, "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7008\"]],TOWGS84[11,72,-101,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6139\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4139\"]]"); p = add_epsg_def_ex (filter, first, last, 4140, "epsg", 4140, "NAD83(CSRS98)", 1, 1, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_"); add_srs_wkt (p, 1, "Reference_System\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 2, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, "40\"]]"); p = add_epsg_def_ex (filter, first, last, 4141, "epsg", 4141, "Israel", 1, 1, "GRS 1980", "Greenwich", "Israel", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=-48,55,52,0,0,0,0 +n"); add_proj4text (p, 1, "o_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Israel\",DATUM[\"Israel\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 1, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 2, "GS84[-48,55,52,0,0,0,0],AUTHORITY[\"EPSG\",\"6141\"]],PR"); add_srs_wkt (p, 3, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 4, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 5, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4141\"]]"); p = add_epsg_def_ex (filter, first, last, 4142, "epsg", 4142, "Locodjo 1965", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Locodjo_1965", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Locodjo 1965\",DATUM[\"Locodjo_1965\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7012\"]],TOWGS84[-125,53,467,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6142\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4142\"]]"); p = add_epsg_def_ex (filter, first, last, 4143, "epsg", 4143, "Abidjan 1987", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Abidjan_1987", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-124.76,53,466.79,0"); add_proj4text (p, 1, ",0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Abidjan 1987\",DATUM[\"Abidjan_1987\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7012\"]],TOWGS84[-124.76,53,466.79,0,0,0,0],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6143\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 6, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4143\"]]"); p = add_epsg_def_ex (filter, first, last, 4144, "epsg", 4144, "Kalianpur 1937", 1, 1, "Everest 1830 (1937 Adjustment)", "Greenwich", "Kalianpur_1937", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); add_proj4text (p, 1, "84=214,804,268,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kalianpur 1937\",DATUM[\"Kalianpur_1937\",SPHER"); add_srs_wkt (p, 1, "OID[\"Everest 1830 (1937 Adjustment)\",6377276.345,300.8"); add_srs_wkt (p, 2, "017,AUTHORITY[\"EPSG\",\"7015\"]],TOWGS84[214,804,268,0,"); add_srs_wkt (p, 3, "0,0,0],AUTHORITY[\"EPSG\",\"6144\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4144\"]]"); p = add_epsg_def_ex (filter, first, last, 4145, "epsg", 4145, "Kalianpur 1962", 1, 1, "Everest 1830 (1962 Definition)", "Greenwich", "Kalianpur_1962", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377301.243 +b=6356100.230165385 +towgs"); add_proj4text (p, 1, "84=283,682,231,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kalianpur 1962\",DATUM[\"Kalianpur_1962\",SPHER"); add_srs_wkt (p, 1, "OID[\"Everest 1830 (1962 Definition)\",6377301.243,300.8"); add_srs_wkt (p, 2, "017255,AUTHORITY[\"EPSG\",\"7044\"]],TOWGS84[283,682,231"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6145\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4145\"]]"); p = add_epsg_def_ex (filter, first, last, 4146, "epsg", 4146, "Kalianpur 1975", 1, 1, "Everest 1830 (1975 Definition)", "Greenwich", "Kalianpur_1975", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377299.151 +b=6356098.145120132 +towgs"); add_proj4text (p, 1, "84=295,736,257,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kalianpur 1975\",DATUM[\"Kalianpur_1975\",SPHER"); add_srs_wkt (p, 1, "OID[\"Everest 1830 (1975 Definition)\",6377299.151,300.8"); add_srs_wkt (p, 2, "017255,AUTHORITY[\"EPSG\",\"7045\"]],TOWGS84[295,736,257"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6146\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4146\"]]"); p = add_epsg_def_ex (filter, first, last, 4147, "epsg", 4147, "Hanoi 1972", 1, 1, "Krassowsky 1940", "Greenwich", "Hanoi_1972", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=-17.51,-108.32,-62.3"); add_proj4text (p, 1, "9,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Hanoi 1972\",DATUM[\"Hanoi_1972\",SPHEROID[\"Kr"); add_srs_wkt (p, 1, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 2, "]],TOWGS84[-17.51,-108.32,-62.39,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6147\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4147\"]]"); p = add_epsg_def_ex (filter, first, last, 4148, "epsg", 4148, "Hartebeesthoek94", 1, 1, "WGS 84", "Greenwich", "Hartebeesthoek94", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Hartebeesthoek94\",DATUM[\"Hartebeesthoek94\",S"); add_srs_wkt (p, 1, "PHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6148\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4148\"]]"); p = add_epsg_def_ex (filter, first, last, 4149, "epsg", 4149, "CH1903", 1, 1, "Bessel 1841", "Greenwich", "CH1903", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=674.4,15.1,405.3,0,"); add_proj4text (p, 1, "0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"CH1903\",DATUM[\"CH1903\",SPHEROID[\"Bessel 184"); add_srs_wkt (p, 1, "1\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]"); add_srs_wkt (p, 2, "],TOWGS84[674.4,15.1,405.3,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6149\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 6, "\",EAST],AUTHORITY[\"EPSG\",\"4149\"]]"); p = add_epsg_def_ex (filter, first, last, 4150, "epsg", 4150, "CH1903+", 1, 1, "Bessel 1841", "Greenwich", "CH1903+", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=674.374,15.056,405."); add_proj4text (p, 1, "346,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"CH1903+\",DATUM[\"CH1903+\",SPHEROID[\"Bessel 1"); add_srs_wkt (p, 1, "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); add_srs_wkt (p, 2, "]],TOWGS84[674.374,15.056,405.346,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6150\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 6, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4150\"]]"); p = add_epsg_def_ex (filter, first, last, 4151, "epsg", 4151, "CHTRF95", 1, 1, "GRS 1980", "Greenwich", "Swiss_Terrestrial_Reference_Frame_1995", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"CHTRF95\",DATUM[\"Swiss_Terrestrial_Reference_F"); add_srs_wkt (p, 1, "rame_1995\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6151\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4151\"]]"); p = add_epsg_def_ex (filter, first, last, 4152, "epsg", 4152, "NAD83(HARN)", 1, 1, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refer"); add_srs_wkt (p, 1, "ence_Network\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 2, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 7, "]]"); p = add_epsg_def_ex (filter, first, last, 4153, "epsg", 4153, "Rassadiran", 1, 1, "International 1924", "Greenwich", "Rassadiran", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-133.63,-157.5,-158.6"); add_proj4text (p, 1, "2,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Rassadiran\",DATUM[\"Rassadiran\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],TOWGS84[-133.63,-157.5,-158.62,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6153\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4153\"]]"); p = add_epsg_def_ex (filter, first, last, 4154, "epsg", 4154, "ED50(ED77)", 1, 1, "International 1924", "Greenwich", "European_Datum_1950_1977", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-117,-132,-164,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ED50(ED77)\",DATUM[\"European_Datum_1950_1977\""); add_srs_wkt (p, 1, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[-117,-132,-164,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6154\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4154\"]]"); p = add_epsg_def_ex (filter, first, last, 4155, "epsg", 4155, "Dabola 1981", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Dabola_1981", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-83,37,12"); add_proj4text (p, 1, "4,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Dabola 1981\",DATUM[\"Dabola_1981\",SPHEROID[\""); add_srs_wkt (p, 1, "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7011\"]],TOWGS84[-83,37,124,0,0,0,0],AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"6155\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 6, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4155\"]]"); p = add_epsg_def_ex (filter, first, last, 4156, "epsg", 4156, "S-JTSK", 1, 1, "Bessel 1841", "Greenwich", "System_Jednotne_Trigonometricke_Site_Katastralni", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=589,76,480,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"S-JTSK\",DATUM[\"System_Jednotne_Trigonometrick"); add_srs_wkt (p, 1, "e_Site_Katastralni\",SPHEROID[\"Bessel 1841\",6377397.15"); add_srs_wkt (p, 2, "5,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[589,"); add_srs_wkt (p, 3, "76,480,0,0,0,0],AUTHORITY[\"EPSG\",\"6156\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4156\"]]"); p = add_epsg_def_ex (filter, first, last, 4157, "epsg", 4157, "Mount Dillon", 1, 1, "Clarke 1858", "Greenwich", "Mount_Dillon", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Mount Dillon\",DATUM[\"Mount_Dillon\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1858\",6378293.645208759,294.2606763692606,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"6157\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4157\"]]"); p = add_epsg_def_ex (filter, first, last, 4158, "epsg", 4158, "Naparima 1955", 1, 1, "International 1924", "Greenwich", "Naparima_1955", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-0.465,372.095,171.73"); add_proj4text (p, 1, "6,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Naparima 1955\",DATUM[\"Naparima_1955\",SPHEROI"); add_srs_wkt (p, 1, "D[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7022\"]],TOWGS84[-0.465,372.095,171.736,0,0,0,0],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6158\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 6, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4158\"]]"); p = add_epsg_def_ex (filter, first, last, 4159, "epsg", 4159, "ELD79", 1, 1, "International 1924", "Greenwich", "European_Libyan_Datum_1979", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-115.8543,-99.0583,-1"); add_proj4text (p, 1, "52.4616,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ELD79\",DATUM[\"European_Libyan_Datum_1979\",SP"); add_srs_wkt (p, 1, "HEROID[\"International 1924\",6378388,297,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7022\"]],TOWGS84[-115.8543,-99.0583,-152.4616,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6159\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4159\"]]"); p = add_epsg_def_ex (filter, first, last, 4160, "epsg", 4160, "Chos Malal 1914", 1, 1, "International 1924", "Greenwich", "Chos_Malal_1914", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Chos Malal 1914\",DATUM[\"Chos_Malal_1914\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],AUTHORITY[\"EPSG\",\"6160\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 3, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 4, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 5, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"4160\"]]"); p = add_epsg_def_ex (filter, first, last, 4161, "epsg", 4161, "Pampa del Castillo", 1, 1, "International 1924", "Greenwich", "Pampa_del_Castillo", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=27.5,14,186.4,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Pampa del Castillo\",DATUM[\"Pampa_del_Castillo"); add_srs_wkt (p, 1, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7022\"]],TOWGS84[27.5,14,186.4,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6161\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4161\"]]"); p = add_epsg_def_ex (filter, first, last, 4162, "epsg", 4162, "Korean 1985", 1, 1, "Bessel 1841", "Greenwich", "Korean_Datum_1985", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Korean 1985\",DATUM[\"Korean_Datum_1985\",SPHER"); add_srs_wkt (p, 1, "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6162\"]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 4, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 5, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4162\"]]"); p = add_epsg_def_ex (filter, first, last, 4163, "epsg", 4163, "Yemen NGN96", 1, 1, "WGS 84", "Greenwich", "Yemen_National_Geodetic_Network_1996", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Yemen NGN96\",DATUM[\"Yemen_National_Geodetic_N"); add_srs_wkt (p, 1, "etwork_1996\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6163\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4163\"]]"); p = add_epsg_def_ex (filter, first, last, 4164, "epsg", 4164, "South Yemen", 1, 1, "Krassowsky 1940", "Greenwich", "South_Yemen", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=-76,-138,67,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"South Yemen\",DATUM[\"South_Yemen\",SPHEROID[\""); add_srs_wkt (p, 1, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 2, "4\"]],TOWGS84[-76,-138,67,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6164\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 6, "\",EAST],AUTHORITY[\"EPSG\",\"4164\"]]"); p = add_epsg_def_ex (filter, first, last, 4165, "epsg", 4165, "Bissau", 1, 1, "International 1924", "Greenwich", "Bissau", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-173,253,27,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Bissau\",DATUM[\"Bissau\",SPHEROID[\"Internatio"); add_srs_wkt (p, 1, "nal 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOW"); add_srs_wkt (p, 2, "GS84[-173,253,27,0,0,0,0],AUTHORITY[\"EPSG\",\"6165\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4165\"]]"); p = add_epsg_def_ex (filter, first, last, 4166, "epsg", 4166, "Korean 1995", 1, 1, "WGS 84", "Greenwich", "Korean_Datum_1995", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Korean 1995\",DATUM[\"Korean_Datum_1995\",SPHER"); add_srs_wkt (p, 1, "OID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "166\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4166\"]]"); p = add_epsg_def_ex (filter, first, last, 4167, "epsg", 4167, "NZGD2000", 1, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"NZGD2000\",DATUM[\"New_Zealand_Geodetic_Datum_2"); add_srs_wkt (p, 1, "000\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6167\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4167\"]]"); p = add_epsg_def_ex (filter, first, last, 4168, "epsg", 4168, "Accra", 1, 1, "War Office", "Greenwich", "Accra", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378300 +b=6356751.689189189 +towgs84=-"); add_proj4text (p, 1, "199,32,322,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Accra\",DATUM[\"Accra\",SPHEROID[\"War Office\""); add_srs_wkt (p, 1, ",6378300,296,AUTHORITY[\"EPSG\",\"7029\"]],TOWGS84[-199,"); add_srs_wkt (p, 2, "32,322,0,0,0,0],AUTHORITY[\"EPSG\",\"6168\"]],PRIMEM[\"G"); add_srs_wkt (p, 3, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 4, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 5, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"4168\"]]"); p = add_epsg_def_ex (filter, first, last, 4169, "epsg", 4169, "American Samoa 1962", 1, 1, "Clarke 1866", "Greenwich", "American_Samoa_1962", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=-115,118,426,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"American Samoa 1962\",DATUM[\"American_Samoa_19"); add_srs_wkt (p, 1, "62\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213898"); add_srs_wkt (p, 2, "2,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-115,118,426,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6169\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4169\"]]"); p = add_epsg_def_ex (filter, first, last, 4170, "epsg", 4170, "SIRGAS 1995", 1, 1, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_America_del_Sur_1995", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"SIRGAS 1995\",DATUM[\"Sistema_de_Referencia_Geo"); add_srs_wkt (p, 1, "centrico_para_America_del_Sur_1995\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6170\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4170\"]]"); p = add_epsg_def_ex (filter, first, last, 4171, "epsg", 4171, "RGF93", 1, 1, "GRS 1980", "Greenwich", "Reseau_Geodesique_Francais_1993", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RGF93\",DATUM[\"Reseau_Geodesique_Francais_1993"); add_srs_wkt (p, 1, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6171\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4171\"]]"); p = add_epsg_def_ex (filter, first, last, 4172, "epsg", 4172, "POSGAR", 1, 1, "GRS 1980", "Greenwich", "Posiciones_Geodesicas_Argentinas", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"POSGAR\",DATUM[\"Posiciones_Geodesicas_Argentin"); add_srs_wkt (p, 1, "as\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6172\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4172\"]]"); p = add_epsg_def_ex (filter, first, last, 4173, "epsg", 4173, "IRENET95", 1, 1, "GRS 1980", "Greenwich", "IRENET95", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"IRENET95\",DATUM[\"IRENET95\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 1, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 2, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6173\"]],PR"); add_srs_wkt (p, 3, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 4, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 5, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4173\"]]"); p = add_epsg_def_ex (filter, first, last, 4174, "epsg", 4174, "Sierra Leone 1924", 1, 1, "War Office", "Greenwich", "Sierra_Leone_Colony_1924", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378300 +b=6356751.689189189 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Sierra Leone 1924\",DATUM[\"Sierra_Leone_Colony"); add_srs_wkt (p, 1, "_1924\",SPHEROID[\"War Office\",6378300,296,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7029\"]],AUTHORITY[\"EPSG\",\"6174\"]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 4, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 5, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4174\"]]"); p = add_epsg_def_ex (filter, first, last, 4175, "epsg", 4175, "Sierra Leone 1968", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Sierra_Leone_1968", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Sierra Leone 1968\",DATUM[\"Sierra_Leone_1968\""); add_srs_wkt (p, 1, ",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7012\"]],TOWGS84[-88,4,101,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6175\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4175\"]]"); p = add_epsg_def_ex (filter, first, last, 4176, "epsg", 4176, "Australian Antarctic", 1, 1, "GRS 1980", "Greenwich", "Australian_Antarctic_Datum_1998", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Australian Antarctic\",DATUM[\"Australian_Antar"); add_srs_wkt (p, 1, "ctic_Datum_1998\",SPHEROID[\"GRS 1980\",6378137,298.2572"); add_srs_wkt (p, 2, "22101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6176\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, "76\"]]"); p = add_epsg_def_ex (filter, first, last, 4178, "epsg", 4178, "Pulkovo 1942(83)", 1, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=26,-121,-78,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\",SP"); add_srs_wkt (p, 1, "HEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4178\"]]"); p = add_epsg_def_ex (filter, first, last, 4179, "epsg", 4179, "Pulkovo 1942(58)", 1, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=33.4,-146.6,-76.3,-0"); add_proj4text (p, 1, ".359,-0.053,0.844,-0.84 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SP"); add_srs_wkt (p, 1, "HEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0"); add_srs_wkt (p, 3, ".844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4179\"]]"); p = add_epsg_def_ex (filter, first, last, 4180, "epsg", 4180, "EST97", 1, 1, "GRS 1980", "Greenwich", "Estonia_1997", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"EST97\",DATUM[\"Estonia_1997\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 1, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 2, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6180\"]],P"); add_srs_wkt (p, 3, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 4, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 5, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4180\"]]"); p = add_epsg_def_ex (filter, first, last, 4181, "epsg", 4181, "Luxembourg 1930", 1, 1, "International 1924", "Greenwich", "Luxembourg_1930", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-189.6806,18.3463,-42"); add_proj4text (p, 1, ".7695,-0.33746,-3.09264,2.53861,0.4598 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Luxembourg 1930\",DATUM[\"Luxembourg_1930\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[-189.6806,18.3463,-42.7695,-0.337"); add_srs_wkt (p, 3, "46,-3.09264,2.53861,0.4598],AUTHORITY[\"EPSG\",\"6181\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4181\"]]"); p = add_epsg_def_ex (filter, first, last, 4182, "epsg", 4182, "Azores Occidental 1939", 1, 1, "International 1924", "Greenwich", "Azores_Occidental_Islands_1939", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-425,-169,81,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Azores Occidental 1939\",DATUM[\"Azores_Occiden"); add_srs_wkt (p, 1, "tal_Islands_1939\",SPHEROID[\"International 1924\",63783"); add_srs_wkt (p, 2, "88,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-425,-169,8"); add_srs_wkt (p, 3, "1,0,0,0,0],AUTHORITY[\"EPSG\",\"6182\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4182\"]]"); p = add_epsg_def_ex (filter, first, last, 4183, "epsg", 4183, "Azores Central 1948", 1, 1, "International 1924", "Greenwich", "Azores_Central_Islands_1948", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-104,167,-38,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Azores Central 1948\",DATUM[\"Azores_Central_Is"); add_srs_wkt (p, 1, "lands_1948\",SPHEROID[\"International 1924\",6378388,297"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-104,167,-38,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6183\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4183\"]]"); p = add_epsg_def_ex (filter, first, last, 4184, "epsg", 4184, "Azores Oriental 1940", 1, 1, "International 1924", "Greenwich", "Azores_Oriental_Islands_1940", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-203,141,53,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Azores Oriental 1940\",DATUM[\"Azores_Oriental_"); add_srs_wkt (p, 1, "Islands_1940\",SPHEROID[\"International 1924\",6378388,2"); add_srs_wkt (p, 2, "97,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-203,141,53,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6184\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4184\"]]"); p = add_epsg_def_ex (filter, first, last, 4185, "epsg", 4185, "Madeira 1936", 1, 1, "International 1924", "Greenwich", "Madeira_1936", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Madeira 1936\",DATUM[\"Madeira_1936\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],AUTHORITY[\"EPSG\",\"6185\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 3, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 4, "74532925199433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Lati"); add_srs_wkt (p, 5, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4185\"]]"); p = add_epsg_def_ex (filter, first, last, 4188, "epsg", 4188, "OSNI 1952", 1, 1, "Airy 1830", "Greenwich", "OSNI_1952", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=airy +towgs84=482.5,-130.6,564.6,-1"); add_proj4text (p, 1, ".042,-0.214,-0.631,8.15 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"OSNI 1952\",DATUM[\"OSNI_1952\",SPHEROID[\"Airy"); add_srs_wkt (p, 1, " 1830\",6377563.396,299.3249646,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 2, "1\"]],TOWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8."); add_srs_wkt (p, 3, "15],AUTHORITY[\"EPSG\",\"6188\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, "88\"]]"); p = add_epsg_def_ex (filter, first, last, 4189, "epsg", 4189, "REGVEN", 1, 1, "GRS 1980", "Greenwich", "Red_Geodesica_Venezolana", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"REGVEN\",DATUM[\"Red_Geodesica_Venezolana\",SPH"); add_srs_wkt (p, 1, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6189\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4189\"]]"); p = add_epsg_def_ex (filter, first, last, 4190, "epsg", 4190, "POSGAR 98", 1, 1, "GRS 1980", "Greenwich", "Posiciones_Geodesicas_Argentinas_1998", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"POSGAR 98\",DATUM[\"Posiciones_Geodesicas_Argen"); add_srs_wkt (p, 1, "tinas_1998\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6190\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4190\"]"); add_srs_wkt (p, 7, "]"); p = add_epsg_def_ex (filter, first, last, 4191, "epsg", 4191, "Albanian 1987", 1, 1, "Krassowsky 1940", "Greenwich", "Albanian_1987", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Albanian 1987\",DATUM[\"Albanian_1987\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7024\"]],AUTHORITY[\"EPSG\",\"6191\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 3, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 4, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 5, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4191\"]]"); p = add_epsg_def_ex (filter, first, last, 4192, "epsg", 4192, "Douala 1948", 1, 1, "International 1924", "Greenwich", "Douala_1948", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-206.1,-174.7,-87.7,0"); add_proj4text (p, 1, ",0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Douala 1948\",DATUM[\"Douala_1948\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[-206.1,-174.7,-87.7,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6192\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4192\"]]"); p = add_epsg_def_ex (filter, first, last, 4193, "epsg", 4193, "Manoca 1962", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Manoca_1962", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-70.9,-15"); add_proj4text (p, 1, "1.8,-41.4,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Manoca 1962\",DATUM[\"Manoca_1962\",SPHEROID[\""); add_srs_wkt (p, 1, "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7011\"]],TOWGS84[-70.9,-151.8,-41.4,0,0,0,0"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6193\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"419"); add_srs_wkt (p, 7, "3\"]]"); p = add_epsg_def_ex (filter, first, last, 4194, "epsg", 4194, "Qornoq 1927", 1, 1, "International 1924", "Greenwich", "Qornoq_1927", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=164,138,-189,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Qornoq 1927\",DATUM[\"Qornoq_1927\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[164,138,-189,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"6194\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 6, "de\",EAST],AUTHORITY[\"EPSG\",\"4194\"]]"); p = add_epsg_def_ex (filter, first, last, 4195, "epsg", 4195, "Scoresbysund 1952", 1, 1, "International 1924", "Greenwich", "Scoresbysund_1952", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=105,326,-102.5,0,0,0."); add_proj4text (p, 1, "814,-0.6 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Scoresbysund 1952\",DATUM[\"Scoresbysund_1952\""); add_srs_wkt (p, 1, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[105,326,-102.5,0,0,0.814,-0.6]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6195\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4195"); add_srs_wkt (p, 7, "\"]]"); p = add_epsg_def_ex (filter, first, last, 4196, "epsg", 4196, "Ammassalik 1958", 1, 1, "International 1924", "Greenwich", "Ammassalik_1958", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-45,417,-3.5,0,0,0.81"); add_proj4text (p, 1, "4,-0.6 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Ammassalik 1958\",DATUM[\"Ammassalik_1958\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[-45,417,-3.5,0,0,0.814,-0.6],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6196\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4196\"]]"); p = add_epsg_def_ex (filter, first, last, 4197, "epsg", 4197, "Garoua", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Garoua", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Garoua\",DATUM[\"Garoua\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 1, "0 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\""); add_srs_wkt (p, 2, "]],AUTHORITY[\"EPSG\",\"6197\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 4, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 5, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 6, "97\"]]"); p = add_epsg_def_ex (filter, first, last, 4198, "epsg", 4198, "Kousseri", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Kousseri", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kousseri\",DATUM[\"Kousseri\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, " 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "012\"]],AUTHORITY[\"EPSG\",\"6198\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 3, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 4, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 5, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4198\"]]"); p = add_epsg_def_ex (filter, first, last, 4199, "epsg", 4199, "Egypt 1930", 1, 1, "International 1924", "Greenwich", "Egypt_1930", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Egypt 1930\",DATUM[\"Egypt_1930\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],AUTHORITY[\"EPSG\",\"6199\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 3, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 4, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 5, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4199\"]]"); p = add_epsg_def_ex (filter, first, last, 4200, "epsg", 4200, "Pulkovo 1995", 1, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=24.47,-130.89,-81.56"); add_proj4text (p, 1, ",0,0,0.13,-0.22 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 1, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); p = add_epsg_def_ex (filter, first, last, 4201, "epsg", 4201, "Adindan", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Adindan", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-166,-15,204,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Adindan\",DATUM[\"Adindan\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 1, "880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 2, "2\"]],TOWGS84[-166,-15,204,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6201\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 6, "\",EAST],AUTHORITY[\"EPSG\",\"4201\"]]"); p = add_epsg_def_ex (filter, first, last, 4202, "epsg", 4202, "AGD66", 1, 1, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1966", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=aust_SA +towgs84=-117.808,-51.536,1"); add_proj4text (p, 1, "37.784,0.303,0.446,0.234,-0.29 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"AGD66\",DATUM[\"Australian_Geodetic_Datum_1966\""); add_srs_wkt (p, 1, ",SPHEROID[\"Australian National Spheroid\",6378160,298.2"); add_srs_wkt (p, 2, "5,AUTHORITY[\"EPSG\",\"7003\"]],TOWGS84[-117.808,-51.536"); add_srs_wkt (p, 3, ",137.784,0.303,0.446,0.234,-0.29],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "202\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4202\"]]"); p = add_epsg_def_ex (filter, first, last, 4203, "epsg", 4203, "AGD84", 1, 1, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1984", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=aust_SA +towgs84=-134,-48,149,0,0,0"); add_proj4text (p, 1, ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"AGD84\",DATUM[\"Australian_Geodetic_Datum_1984\""); add_srs_wkt (p, 1, ",SPHEROID[\"Australian National Spheroid\",6378160,298.2"); add_srs_wkt (p, 2, "5,AUTHORITY[\"EPSG\",\"7003\"]],TOWGS84[-134,-48,149,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6203\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4203\"]]"); p = add_epsg_def_ex (filter, first, last, 4204, "epsg", 4204, "Ain el Abd", 1, 1, "International 1924", "Greenwich", "Ain_el_Abd_1970", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-143,-236,7,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Ain el Abd\",DATUM[\"Ain_el_Abd_1970\",SPHEROID"); add_srs_wkt (p, 1, "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[-143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6204\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4204\"]]"); p = add_epsg_def_ex (filter, first, last, 4205, "epsg", 4205, "Afgooye", 1, 1, "Krassowsky 1940", "Greenwich", "Afgooye", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=-43,-163,45,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Afgooye\",DATUM[\"Afgooye\",SPHEROID[\"Krassows"); add_srs_wkt (p, 1, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 2, "WGS84[-43,-163,45,0,0,0,0],AUTHORITY[\"EPSG\",\"6205\"]]"); add_srs_wkt (p, 3, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 4, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 5, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4205\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ���������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_24.c��������������������������������������������������0000664�0001750�0001750�00000437217�12544707704�017053� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_24 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 4749, "epsg", 4749, "RGNC91-93", 1, 1, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_Nouvelle_Caledonie_91_93", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RGNC91-93\",DATUM[\"Reseau_Geodesique_de_Nouvel"); add_srs_wkt (p, 1, "le_Caledonie_91_93\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 2, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6749\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4749\"]]"); p = add_epsg_def_ex (filter, first, last, 4750, "epsg", 4750, "ST87 Ouvea", 1, 1, "WGS 84", "Greenwich", "ST87_Ouvea", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=-56.263,16.136,-22.8"); add_proj4text (p, 1, "56,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ST87 Ouvea\",DATUM[\"ST87_Ouvea\",SPHEROID[\"WG"); add_srs_wkt (p, 1, "S 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 2, "]],TOWGS84[-56.263,16.136,-22.856,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6750\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 6, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4750\"]]"); p = add_epsg_def_ex (filter, first, last, 4751, "epsg", 4751, "Kertau (RSO)", 1, 1, "Everest 1830 (RSO 1969)", "Greenwich", "Kertau_RSO", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377295.664 +b=6356094.667915204 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Kertau (RSO)\",DATUM[\"Kertau_RSO\",SPHEROID[\""); add_srs_wkt (p, 1, "Everest 1830 (RSO 1969)\",6377295.664,300.8017,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7056\"]],AUTHORITY[\"EPSG\",\"6751\"]],PRIME"); add_srs_wkt (p, 3, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 4, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 5, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 6, "RITY[\"EPSG\",\"4751\"]]"); p = add_epsg_def_ex (filter, first, last, 4752, "epsg", 4752, "Viti Levu 1912", 1, 1, "Clarke 1880 (international foot)", "Greenwich", "Viti_Levu_1912", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378306.3696 +b=6356571.996 +towgs84=51"); add_proj4text (p, 1, ",391,-36,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Viti Levu 1912\",DATUM[\"Viti_Levu_1912\",SPHER"); add_srs_wkt (p, 1, "OID[\"Clarke 1880 (international foot)\",6378306.3696,29"); add_srs_wkt (p, 2, "3.4663076556355,AUTHORITY[\"EPSG\",\"7055\"]],TOWGS84[51"); add_srs_wkt (p, 3, ",391,-36,0,0,0,0],AUTHORITY[\"EPSG\",\"6752\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4752\"]]"); p = add_epsg_def_ex (filter, first, last, 4753, "epsg", 4753, "fk89", 1, 1, "International 1924", "Greenwich", "fk89", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"fk89\",DATUM[\"fk89\",SPHEROID[\"International "); add_srs_wkt (p, 1, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"6753\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 5, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4753\"]]"); p = add_epsg_def_ex (filter, first, last, 4754, "epsg", 4754, "LGD2006", 1, 1, "International 1924", "Greenwich", "Libyan_Geodetic_Datum_2006", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-208.4058,-109.8777,-"); add_proj4text (p, 1, "2.5764,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"LGD2006\",DATUM[\"Libyan_Geodetic_Datum_2006\","); add_srs_wkt (p, 1, "SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[-208.4058,-109.8777,-2.5764,0,"); add_srs_wkt (p, 3, "0,0,0],AUTHORITY[\"EPSG\",\"6754\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4754\"]]"); p = add_epsg_def_ex (filter, first, last, 4755, "epsg", 4755, "DGN95", 1, 1, "WGS 84", "Greenwich", "Datum_Geodesi_Nasional_1995", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"DGN95\",DATUM[\"Datum_Geodesi_Nasional_1995\",S"); add_srs_wkt (p, 1, "PHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6755\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4755\"]]"); p = add_epsg_def_ex (filter, first, last, 4756, "epsg", 4756, "VN-2000", 1, 1, "WGS 84", "Greenwich", "Vietnam_2000", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=-192.873,-39.382,-11"); add_proj4text (p, 1, "1.202,-0.00205,-0.0005,0.00335,0.0188 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"VN-2000\",DATUM[\"Vietnam_2000\",SPHEROID[\"WGS"); add_srs_wkt (p, 1, " 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]"); add_srs_wkt (p, 2, "],TOWGS84[-192.873,-39.382,-111.202,-0.00205,-0.0005,0.0"); add_srs_wkt (p, 3, "0335,0.0188],AUTHORITY[\"EPSG\",\"6756\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4756\"]]"); p = add_epsg_def_ex (filter, first, last, 4757, "epsg", 4757, "SVY21", 1, 1, "WGS 84", "Greenwich", "SVY21", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"SVY21\",DATUM[\"SVY21\",SPHEROID[\"WGS 84\",637"); add_srs_wkt (p, 1, "8137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"6757\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 5, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4757\"]]"); p = add_epsg_def_ex (filter, first, last, 4758, "epsg", 4758, "JAD2001", 1, 1, "WGS 84", "Greenwich", "Jamaica_2001", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"JAD2001\",DATUM[\"Jamaica_2001\",SPHEROID[\"WGS"); add_srs_wkt (p, 1, " 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]"); add_srs_wkt (p, 2, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6758\"]],P"); add_srs_wkt (p, 3, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 4, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 5, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4758\"]]"); p = add_epsg_def_ex (filter, first, last, 4759, "epsg", 4759, "NAD83(NSRS2007)", 1, 1, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatia"); add_srs_wkt (p, 1, "l_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 2, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 3, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4759\"]]"); p = add_epsg_def_ex (filter, first, last, 4760, "epsg", 4760, "WGS 66", 1, 1, "NWL 9D", "Greenwich", "World_Geodetic_System_1966", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"WGS 66\",DATUM[\"World_Geodetic_System_1966\",S"); add_srs_wkt (p, 1, "PHEROID[\"NWL 9D\",6378145,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "025\"]],AUTHORITY[\"EPSG\",\"6760\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 3, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 4, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 5, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4760\"]]"); p = add_epsg_def_ex (filter, first, last, 4761, "epsg", 4761, "HTRS96", 1, 1, "GRS 1980", "Greenwich", "Croatian_Terrestrial_Reference_System", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"HTRS96\",DATUM[\"Croatian_Terrestrial_Reference"); add_srs_wkt (p, 1, "_System\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6761\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 6, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4761\"]]"); p = add_epsg_def_ex (filter, first, last, 4762, "epsg", 4762, "BDA2000", 1, 1, "WGS 84", "Greenwich", "Bermuda_2000", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"BDA2000\",DATUM[\"Bermuda_2000\",SPHEROID[\"WGS"); add_srs_wkt (p, 1, " 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]"); add_srs_wkt (p, 2, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6762\"]],P"); add_srs_wkt (p, 3, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 4, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 5, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4762\"]]"); p = add_epsg_def_ex (filter, first, last, 4763, "epsg", 4763, "Pitcairn 2006", 1, 1, "WGS 84", "Greenwich", "Pitcairn_2006", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Pitcairn 2006\",DATUM[\"Pitcairn_2006\",SPHEROI"); add_srs_wkt (p, 1, "D[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"676"); add_srs_wkt (p, 3, "3\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4763\"]]"); p = add_epsg_def_ex (filter, first, last, 4764, "epsg", 4764, "RSRGD2000", 1, 1, "GRS 1980", "Greenwich", "Ross_Sea_Region_Geodetic_Datum_2000", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RSRGD2000\",DATUM[\"Ross_Sea_Region_Geodetic_Da"); add_srs_wkt (p, 1, "tum_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6764\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4764\"]]"); p = add_epsg_def_ex (filter, first, last, 4765, "epsg", 4765, "Slovenia 1996", 1, 1, "GRS 1980", "Greenwich", "Slovenia_Geodetic_Datum_1996", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Slovenia 1996\",DATUM[\"Slovenia_Geodetic_Datum"); add_srs_wkt (p, 1, "_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6765\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4765\"]]"); p = add_epsg_def_ex (filter, first, last, 4766, "epsg", 4766, "New Beijing / 3-degree Gauss-Kruger zone 30", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 30\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "0],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",30500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4766\"]]"); p = add_epsg_def_ex (filter, first, last, 4767, "epsg", 4767, "New Beijing / 3-degree Gauss-Kruger zone 31", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 31\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",31500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4767\"]]"); p = add_epsg_def_ex (filter, first, last, 4768, "epsg", 4768, "New Beijing / 3-degree Gauss-Kruger zone 32", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 32\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "6],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",32500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4768\"]]"); p = add_epsg_def_ex (filter, first, last, 4769, "epsg", 4769, "New Beijing / 3-degree Gauss-Kruger zone 33", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 33\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",33500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],"); add_srs_wkt (p, 12, "AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4769\"]]"); p = add_epsg_def_ex (filter, first, last, 4770, "epsg", 4770, "New Beijing / 3-degree Gauss-Kruger zone 34", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 34\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "02],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",34500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4770\"]]"); p = add_epsg_def_ex (filter, first, last, 4771, "epsg", 4771, "New Beijing / 3-degree Gauss-Kruger zone 35", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 35\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "05],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",35500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4771\"]]"); p = add_epsg_def_ex (filter, first, last, 4772, "epsg", 4772, "New Beijing / 3-degree Gauss-Kruger zone 36", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 36\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "08],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",36500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4772\"]]"); p = add_epsg_def_ex (filter, first, last, 4773, "epsg", 4773, "New Beijing / 3-degree Gauss-Kruger zone 37", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 37\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "11],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",37500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4773\"]]"); p = add_epsg_def_ex (filter, first, last, 4774, "epsg", 4774, "New Beijing / 3-degree Gauss-Kruger zone 38", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 38\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "14],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",38500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4774\"]]"); p = add_epsg_def_ex (filter, first, last, 4775, "epsg", 4775, "New Beijing / 3-degree Gauss-Kruger zone 39", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 39\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "17],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",39500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4775\"]]"); p = add_epsg_def_ex (filter, first, last, 4776, "epsg", 4776, "New Beijing / 3-degree Gauss-Kruger zone 40", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 40\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "20],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",40500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4776\"]]"); p = add_epsg_def_ex (filter, first, last, 4777, "epsg", 4777, "New Beijing / 3-degree Gauss-Kruger zone 41", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 41\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "23],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",41500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4777\"]]"); p = add_epsg_def_ex (filter, first, last, 4778, "epsg", 4778, "New Beijing / 3-degree Gauss-Kruger zone 42", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 42\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "26],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",42500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4778\"]]"); p = add_epsg_def_ex (filter, first, last, 4779, "epsg", 4779, "New Beijing / 3-degree Gauss-Kruger zone 43", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 43\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "29],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",43500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4779\"]]"); p = add_epsg_def_ex (filter, first, last, 4780, "epsg", 4780, "New Beijing / 3-degree Gauss-Kruger zone 44", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 44\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "32],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",44500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4780\"]]"); p = add_epsg_def_ex (filter, first, last, 4781, "epsg", 4781, "New Beijing / 3-degree Gauss-Kruger zone 45", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger zone 45\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "35],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",45500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4781\"]]"); p = add_epsg_def_ex (filter, first, last, 4782, "epsg", 4782, "New Beijing / 3-degree Gauss-Kruger CM 75E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 75E\",GE"); add_srs_wkt (p, 1, "OGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"45"); add_srs_wkt (p, 7, "55\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",75"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4782\"]]"); p = add_epsg_def_ex (filter, first, last, 4783, "epsg", 4783, "New Beijing / 3-degree Gauss-Kruger CM 78E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 78E\",GE"); add_srs_wkt (p, 1, "OGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"45"); add_srs_wkt (p, 7, "55\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",78"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4783\"]]"); p = add_epsg_def_ex (filter, first, last, 4784, "epsg", 4784, "New Beijing / 3-degree Gauss-Kruger CM 81E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 81E\",GE"); add_srs_wkt (p, 1, "OGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"45"); add_srs_wkt (p, 7, "55\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",81"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4784\"]]"); p = add_epsg_def_ex (filter, first, last, 4785, "epsg", 4785, "New Beijing / 3-degree Gauss-Kruger CM 84E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 84E\",GE"); add_srs_wkt (p, 1, "OGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"45"); add_srs_wkt (p, 7, "55\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",84"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4785\"]]"); p = add_epsg_def_ex (filter, first, last, 4786, "epsg", 4786, "New Beijing / 3-degree Gauss-Kruger CM 87E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 87E\",GE"); add_srs_wkt (p, 1, "OGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"45"); add_srs_wkt (p, 7, "55\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",87"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4786\"]]"); p = add_epsg_def_ex (filter, first, last, 4787, "epsg", 4787, "New Beijing / 3-degree Gauss-Kruger CM 90E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 90E\",GE"); add_srs_wkt (p, 1, "OGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"45"); add_srs_wkt (p, 7, "55\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",90"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4787\"]]"); p = add_epsg_def_ex (filter, first, last, 4788, "epsg", 4788, "New Beijing / 3-degree Gauss-Kruger CM 93E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 93E\",GE"); add_srs_wkt (p, 1, "OGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"45"); add_srs_wkt (p, 7, "55\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",93"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4788\"]]"); p = add_epsg_def_ex (filter, first, last, 4789, "epsg", 4789, "New Beijing / 3-degree Gauss-Kruger CM 96E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 96E\",GE"); add_srs_wkt (p, 1, "OGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"45"); add_srs_wkt (p, 7, "55\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",96"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4789\"]]"); p = add_epsg_def_ex (filter, first, last, 4790, "epsg", 4790, "New Beijing / 3-degree Gauss-Kruger CM 99E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 99E\",GE"); add_srs_wkt (p, 1, "OGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"45"); add_srs_wkt (p, 7, "55\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",99"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4790\"]]"); p = add_epsg_def_ex (filter, first, last, 4791, "epsg", 4791, "New Beijing / 3-degree Gauss-Kruger CM 102E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 102E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "02],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4791\"]]"); p = add_epsg_def_ex (filter, first, last, 4792, "epsg", 4792, "New Beijing / 3-degree Gauss-Kruger CM 105E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 105E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "05],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4792\"]]"); p = add_epsg_def_ex (filter, first, last, 4793, "epsg", 4793, "New Beijing / 3-degree Gauss-Kruger CM 108E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 108E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "08],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4793\"]]"); p = add_epsg_def_ex (filter, first, last, 4794, "epsg", 4794, "New Beijing / 3-degree Gauss-Kruger CM 111E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 111E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "11],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4794\"]]"); p = add_epsg_def_ex (filter, first, last, 4795, "epsg", 4795, "New Beijing / 3-degree Gauss-Kruger CM 114E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 114E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "14],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4795\"]]"); p = add_epsg_def_ex (filter, first, last, 4796, "epsg", 4796, "New Beijing / 3-degree Gauss-Kruger CM 117E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 117E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "17],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4796\"]]"); p = add_epsg_def_ex (filter, first, last, 4797, "epsg", 4797, "New Beijing / 3-degree Gauss-Kruger CM 120E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 120E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "20],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4797\"]]"); p = add_epsg_def_ex (filter, first, last, 4798, "epsg", 4798, "New Beijing / 3-degree Gauss-Kruger CM 123E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 123E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "23],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4798\"]]"); p = add_epsg_def_ex (filter, first, last, 4799, "epsg", 4799, "New Beijing / 3-degree Gauss-Kruger CM 126E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 126E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "26],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4799\"]]"); p = add_epsg_def_ex (filter, first, last, 4800, "epsg", 4800, "New Beijing / 3-degree Gauss-Kruger CM 129E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 129E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "29],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4800\"]]"); p = add_epsg_def_ex (filter, first, last, 4801, "epsg", 4801, "Bern 1898 (Bern)", 1, 1, "Bessel 1841", "Bern", "CH1903_Bern", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=674.4,15.1,405.3,0,"); add_proj4text (p, 1, "0,0,0 +pm=bern +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Bern 1898 (Bern)\",DATUM[\"CH1903_Bern\",SPHERO"); add_srs_wkt (p, 1, "ID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7004\"]],TOWGS84[674.4,15.1,405.3,0,0,0,0],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6801\"]],PRIMEM[\"Bern\",7.4395833333333"); add_srs_wkt (p, 4, "33,AUTHORITY[\"EPSG\",\"8907\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4801\"]]"); p = add_epsg_def_ex (filter, first, last, 4802, "epsg", 4802, "Bogota 1975 (Bogota)", 1, 1, "International 1924", "Bogota", "Bogota_1975_Bogota", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=307,304,-318,0,0,0,0 "); add_proj4text (p, 1, "+pm=bogota +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Bogota 1975 (Bogota)\",DATUM[\"Bogota_1975_Bogo"); add_srs_wkt (p, 1, "ta\",SPHEROID[\"International 1924\",6378388,297,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7022\"]],TOWGS84[307,304,-318,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6802\"]],PRIMEM[\"Bogota\",-74.0809166"); add_srs_wkt (p, 4, "6666667,AUTHORITY[\"EPSG\",\"8904\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4802\"]]"); p = add_epsg_def_ex (filter, first, last, 4803, "epsg", 4803, "Lisbon (Lisbon)", 1, 1, "International 1924", "Lisbon", "Lisbon_1937_Lisbon", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-304.046,-60.576,103."); add_proj4text (p, 1, "64,0,0,0,0 +pm=lisbon +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Lisbon (Lisbon)\",DATUM[\"Lisbon_1937_Lisbon\","); add_srs_wkt (p, 1, "SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6803\"]],PRIMEM[\"Lisbon\",-9.13"); add_srs_wkt (p, 4, "1906111111112,AUTHORITY[\"EPSG\",\"8902\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4803\"]]"); p = add_epsg_def_ex (filter, first, last, 4804, "epsg", 4804, "Makassar (Jakarta)", 1, 1, "Bessel 1841", "Jakarta", "Makassar_Jakarta", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-587.8,519.75,145.7"); add_proj4text (p, 1, "6,0,0,0,0 +pm=jakarta +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Makassar (Jakarta)\",DATUM[\"Makassar_Jakarta\""); add_srs_wkt (p, 1, ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7004\"]],TOWGS84[-587.8,519.75,145.76,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6804\"]],PRIMEM[\"Jakarta\",1"); add_srs_wkt (p, 4, "06.8077194444444,AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4804\"]]"); p = add_epsg_def_ex (filter, first, last, 4805, "epsg", 4805, "MGI (Ferro)", 1, 1, "Bessel 1841", "Ferro", "Militar_Geographische_Institut_Ferro", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=682,-203,480,0,0,0,"); add_proj4text (p, 1, "0 +pm=ferro +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"MGI (Ferro)\",DATUM[\"Militar_Geographische_Ins"); add_srs_wkt (p, 1, "titut_Ferro\",SPHEROID[\"Bessel 1841\",6377397.155,299.1"); add_srs_wkt (p, 2, "528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[682,-203,48"); add_srs_wkt (p, 3, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6805\"]],PRIMEM[\"Ferro\""); add_srs_wkt (p, 4, ",-17.66666666666667,AUTHORITY[\"EPSG\",\"8909\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4805\"]]"); p = add_epsg_def_ex (filter, first, last, 4806, "epsg", 4806, "Monte Mario (Rome)", 1, 1, "International 1924", "Rome", "Monte_Mario_Rome", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-104.1,-49.1,-9.9,0.9"); add_proj4text (p, 1, "71,-2.917,0.714,-11.68 +pm=rome +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Monte Mario (Rome)\",DATUM[\"Monte_Mario_Rome\""); add_srs_wkt (p, 1, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917"); add_srs_wkt (p, 3, ",0.714,-11.68],AUTHORITY[\"EPSG\",\"6806\"]],PRIMEM[\"Ro"); add_srs_wkt (p, 4, "me\",12.45233333333333,AUTHORITY[\"EPSG\",\"8906\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4806\"]]"); p = add_epsg_def_ex (filter, first, last, 4807, "epsg", 4807, "NTF (Paris)", 1, 1, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "none", "grad", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,"); add_proj4text (p, 1, "320,0,0,0,0 +pm=paris +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Fr"); add_srs_wkt (p, 1, "ancaise_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2"); add_srs_wkt (p, 2, ",293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84"); add_srs_wkt (p, 3, "[-168,-60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Paris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],U"); add_srs_wkt (p, 5, "NIT[\"grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "05\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4807\"]]"); p = add_epsg_def_ex (filter, first, last, 4808, "epsg", 4808, "Padang (Jakarta)", 1, 1, "Bessel 1841", "Jakarta", "Padang_1884_Jakarta", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +pm=jakarta +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Padang (Jakarta)\",DATUM[\"Padang_1884_Jakarta\""); add_srs_wkt (p, 1, ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6808\"]],PR"); add_srs_wkt (p, 3, "IMEM[\"Jakarta\",106.8077194444444,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8908\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4808\"]]"); p = add_epsg_def_ex (filter, first, last, 4809, "epsg", 4809, "Belge 1950 (Brussels)", 1, 1, "International 1924", "Brussels", "Reseau_National_Belge_1950_Brussels", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +pm=brussels +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Belge 1950 (Brussels)\",DATUM[\"Reseau_National"); add_srs_wkt (p, 1, "_Belge_1950_Brussels\",SPHEROID[\"International 1924\",6"); add_srs_wkt (p, 2, "378388,297,AUTHORITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6809\"]],PRIMEM[\"Brussels\",4.367975,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8910\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4809\"]]"); p = add_epsg_def_ex (filter, first, last, 4810, "epsg", 4810, "Tananarive (Paris)", 1, 1, "International 1924", "Paris", "Tananarive_1925_Paris", "none", "grad", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-189,-242,-91,0,0,0,0"); add_proj4text (p, 1, " +pm=paris +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tananarive (Paris)\",DATUM[\"Tananarive_1925_Pa"); add_srs_wkt (p, 1, "ris\",SPHEROID[\"International 1924\",6378388,297,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7022\"]],TOWGS84[-189,-242,-91,0,0,0,0],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6810\"]],PRIMEM[\"Paris\",2.33722917"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.015707963"); add_srs_wkt (p, 5, "26794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 7, "10\"]]"); p = add_epsg_def_ex (filter, first, last, 4811, "epsg", 4811, "Voirol 1875 (Paris)", 1, 1, "Clarke 1880 (IGN)", "Paris", "Voirol_1875_Paris", "none", "grad", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-73,-247,"); add_proj4text (p, 1, "227,0,0,0,0 +pm=paris +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Voirol 1875 (Paris)\",DATUM[\"Voirol_1875_Paris"); add_srs_wkt (p, 1, "\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602129"); add_srs_wkt (p, 2, "36269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-73,-247,227"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6811\"]],PRIMEM[\"Paris\""); add_srs_wkt (p, 4, ",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\","); add_srs_wkt (p, 5, "0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4811\"]]"); p = add_epsg_def_ex (filter, first, last, 4812, "epsg", 4812, "New Beijing / 3-degree Gauss-Kruger CM 132E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 132E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "32],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4812\"]]"); p = add_epsg_def_ex (filter, first, last, 4813, "epsg", 4813, "Batavia (Jakarta)", 1, 1, "Bessel 1841", "Jakarta", "Batavia_Jakarta", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-377,681,-50,0,0,0,"); add_proj4text (p, 1, "0 +pm=jakarta +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Batavia (Jakarta)\",DATUM[\"Batavia_Jakarta\",S"); add_srs_wkt (p, 1, "PHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-50,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6813\"]],PRIMEM[\"Jakarta\",106.8077194"); add_srs_wkt (p, 4, "444444,AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4813\"]]"); p = add_epsg_def_ex (filter, first, last, 4814, "epsg", 4814, "RT38 (Stockholm)", 1, 1, "Bessel 1841", "Stockholm", "Stockholm_1938_Stockholm", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +pm=stockholm +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"RT38 (Stockholm)\",DATUM[\"Stockholm_1938_Stock"); add_srs_wkt (p, 1, "holm\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6814\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Stockholm\",18.05827777777778,AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"8911\"]],UNIT[\"degree\",0.0174532925199433,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4814\"]]"); p = add_epsg_def_ex (filter, first, last, 4815, "epsg", 4815, "Greek (Athens)", 1, 1, "Bessel 1841", "Athens", "Greek_Athens", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +pm=athens +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Greek (Athens)\",DATUM[\"Greek_Athens\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7004\"]],AUTHORITY[\"EPSG\",\"6815\"]],PRIMEM[\"A"); add_srs_wkt (p, 3, "thens\",23.7163375,AUTHORITY[\"EPSG\",\"8912\"]],UNIT[\""); add_srs_wkt (p, 4, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 5, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4815\"]]"); p = add_epsg_def_ex (filter, first, last, 4816, "epsg", 4816, "Carthage (Paris)", 1, 1, "Clarke 1880 (IGN)", "Paris", "Carthage_Paris", "none", "grad", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-263,6,43"); add_proj4text (p, 1, "1,0,0,0,0 +pm=paris +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Carthage (Paris)\",DATUM[\"Carthage_Paris\",SPH"); add_srs_wkt (p, 1, "EROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936269,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-263,6,431,0,0,0,0"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6816\"]],PRIMEM[\"Paris\",2.33722"); add_srs_wkt (p, 4, "917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.015707"); add_srs_wkt (p, 5, "96326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4816\"]]"); p = add_epsg_def_ex (filter, first, last, 4817, "epsg", 4817, "NGO 1948 (Oslo)", 1, 1, "Bessel Modified", "Oslo", "NGO_1948_Oslo", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377492.018 +b=6356173.508712696 +towgs"); add_proj4text (p, 1, "84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "GEOGCS[\"NGO 1948 (Oslo)\",DATUM[\"NGO_1948_Oslo\",SPHER"); add_srs_wkt (p, 1, "OID[\"Bessel Modified\",6377492.018,299.1528128,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,"); add_srs_wkt (p, 3, "-6.61,6.21],AUTHORITY[\"EPSG\",\"6817\"]],PRIMEM[\"Oslo\""); add_srs_wkt (p, 4, ",10.72291666666667,AUTHORITY[\"EPSG\",\"8913\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4817\"]]"); p = add_epsg_def_ex (filter, first, last, 4818, "epsg", 4818, "S-JTSK (Ferro)", 1, 1, "Bessel 1841", "Ferro", "System_Jednotne_Trigonometricke_Site_Katastralni_Ferro", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=589,76,480,0,0,0,0 "); add_proj4text (p, 1, "+pm=ferro +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"S-JTSK (Ferro)\",DATUM[\"System_Jednotne_Trigon"); add_srs_wkt (p, 1, "ometricke_Site_Katastralni_Ferro\",SPHEROID[\"Bessel 184"); add_srs_wkt (p, 2, "1\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]"); add_srs_wkt (p, 3, "],TOWGS84[589,76,480,0,0,0,0],AUTHORITY[\"EPSG\",\"6818\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Ferro\",-17.66666666666667,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8909\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4818\"]]"); p = add_epsg_def_ex (filter, first, last, 4819, "epsg", 4819, "Nord Sahara 1959 (Paris)", 1, 1, "Clarke 1880 (RGS)", "Paris", "Nord_Sahara_1959_Paris", "none", "grad", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-209.3622,-87.8162,"); add_proj4text (p, 1, "404.6198,0.0046,3.4784,0.5805,-1.4547 +pm=paris +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Nord Sahara 1959 (Paris)\",DATUM[\"Nord_Sahara_"); add_srs_wkt (p, 1, "1959_Paris\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,"); add_srs_wkt (p, 2, "293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-209.3622,"); add_srs_wkt (p, 3, "-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6819\"]],PRIMEM[\"Paris\",2.33722917,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.0157079632679489"); add_srs_wkt (p, 6, "7,AUTHORITY[\"EPSG\",\"9105\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4819\"]]"); p = add_epsg_def_ex (filter, first, last, 4820, "epsg", 4820, "Segara (Jakarta)", 1, 1, "Bessel 1841", "Jakarta", "Gunung_Segara_Jakarta", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-403,684,41,0,0,0,0"); add_proj4text (p, 1, " +pm=jakarta +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Segara (Jakarta)\",DATUM[\"Gunung_Segara_Jakart"); add_srs_wkt (p, 1, "a\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"7004\"]],TOWGS84[-403,684,41,0,0,0,0],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6820\"]],PRIMEM[\"Jakarta\",106.807"); add_srs_wkt (p, 4, "7194444444,AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4820\"]]"); p = add_epsg_def_ex (filter, first, last, 4821, "epsg", 4821, "Voirol 1879 (Paris)", 1, 1, "Clarke 1880 (IGN)", "Paris", "Voirol_1879_Paris", "none", "grad", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +pm=paris +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Voirol 1879 (Paris)\",DATUM[\"Voirol_1879_Paris"); add_srs_wkt (p, 1, "\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602129"); add_srs_wkt (p, 2, "36269,AUTHORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6821\"]],PRIMEM[\"Paris\",2.33722917,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8903\"]],UNIT[\"grad\",0.01570796326794897,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9105\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4821\"]]"); p = add_epsg_def_ex (filter, first, last, 4822, "epsg", 4822, "New Beijing / 3-degree Gauss-Kruger CM 135E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / 3-degree Gauss-Kruger CM 135E\",G"); add_srs_wkt (p, 1, "EOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4555\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 9, "35],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 12, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"4822\"]]"); p = add_epsg_def_ex (filter, first, last, 4823, "epsg", 4823, "Sao Tome", 1, 1, "International 1924", "Greenwich", "Sao_Tome", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Sao Tome\",DATUM[\"Sao_Tome\",SPHEROID[\"Intern"); add_srs_wkt (p, 1, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"1044\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 4, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 5, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4823"); add_srs_wkt (p, 6, "\"]]"); p = add_epsg_def_ex (filter, first, last, 4824, "epsg", 4824, "Principe", 1, 1, "International 1924", "Greenwich", "Principe", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Principe\",DATUM[\"Principe\",SPHEROID[\"Intern"); add_srs_wkt (p, 1, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"1046\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 4, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 5, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4824"); add_srs_wkt (p, 6, "\"]]"); p = add_epsg_def_ex (filter, first, last, 4826, "epsg", 4826, "WGS 84 / Cape Verde National", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "M", "East", "P", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=15 +lat_2=16.66666666666667 +lat_0=15.8"); add_proj4text (p, 1, "3333333333333 +lon_0=-24 +x_0=161587.83 +y_0=128511.202 "); add_proj4text (p, 2, "+datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Cape Verde National\",GEOGCS[\"WGS 84\""); add_srs_wkt (p, 1, ",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2572"); add_srs_wkt (p, 2, "23563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 6, "\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 7, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 8, "_1\",15],PARAMETER[\"standard_parallel_2\",16.6666666666"); add_srs_wkt (p, 9, "6667],PARAMETER[\"latitude_of_origin\",15.83333333333333"); add_srs_wkt (p, 10, "],PARAMETER[\"central_meridian\",-24],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",161587.83],PARAMETER[\"false_northing\",128511"); add_srs_wkt (p, 12, ".202],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"M\",EAST],AXIS[\"P\",NORTH],AUTHORITY[\"EPSG\",\"482"); add_srs_wkt (p, 14, "6\"]]"); p = add_epsg_def_ex (filter, first, last, 4839, "epsg", 4839, "ETRS89 / LCC Germany (N-E)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Lambert_Conformal_Conic_2SP", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.66666666666666 +lat_2=53.66666666666"); add_proj4text (p, 1, "666 +lat_0=51 +lon_0=10.5 +x_0=0 +y_0=0 +ellps=GRS80 +to"); add_proj4text (p, 2, "wgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / LCC Germany (N-E)\",GEOGCS[\"ETRS89\","); add_srs_wkt (p, 1, "DATUM[\"European_Terrestrial_Reference_System_1989\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",48.66666666666666],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 10, "_2\",53.66666666666666],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",51],PARAMETER[\"central_meridian\",10.5],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\""); add_srs_wkt (p, 14, ",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4839"); add_srs_wkt (p, 15, "\"]]"); p = add_epsg_def_ex (filter, first, last, 4855, "epsg", 4855, "ETRS89 / NTM zone 5 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=5.5 +k=1 +x_0=100000 +y_0=10"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 5 (deprecated)\",GEOGCS[\"ETR"); add_srs_wkt (p, 1, "S89\",DATUM[\"European_Terrestrial_Reference_System_1989"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",5.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4855\"]]"); p = add_epsg_def_ex (filter, first, last, 4856, "epsg", 4856, "ETRS89 / NTM zone 6 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=6.5 +k=1 +x_0=100000 +y_0=10"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 6 (deprecated)\",GEOGCS[\"ETR"); add_srs_wkt (p, 1, "S89\",DATUM[\"European_Terrestrial_Reference_System_1989"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",6.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4856\"]]"); p = add_epsg_def_ex (filter, first, last, 4857, "epsg", 4857, "ETRS89 / NTM zone 7 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=7.5 +k=1 +x_0=100000 +y_0=10"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 7 (deprecated)\",GEOGCS[\"ETR"); add_srs_wkt (p, 1, "S89\",DATUM[\"European_Terrestrial_Reference_System_1989"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",7.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4857\"]]"); p = add_epsg_def_ex (filter, first, last, 4858, "epsg", 4858, "ETRS89 / NTM zone 8 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=8.5 +k=1 +x_0=100000 +y_0=10"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 8 (deprecated)\",GEOGCS[\"ETR"); add_srs_wkt (p, 1, "S89\",DATUM[\"European_Terrestrial_Reference_System_1989"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",8.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4858\"]]"); p = add_epsg_def_ex (filter, first, last, 4859, "epsg", 4859, "ETRS89 / NTM zone 9 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9.5 +k=1 +x_0=100000 +y_0=10"); add_proj4text (p, 1, "00000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 9 (deprecated)\",GEOGCS[\"ETR"); add_srs_wkt (p, 1, "S89\",DATUM[\"European_Terrestrial_Reference_System_1989"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",9.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4859\"]]"); p = add_epsg_def_ex (filter, first, last, 4860, "epsg", 4860, "ETRS89 / NTM zone 10 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=10.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 10 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",10.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4860\"]]"); p = add_epsg_def_ex (filter, first, last, 4861, "epsg", 4861, "ETRS89 / NTM zone 11 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 11 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",11.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4861\"]]"); p = add_epsg_def_ex (filter, first, last, 4862, "epsg", 4862, "ETRS89 / NTM zone 12 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 12 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",12.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4862\"]]"); p = add_epsg_def_ex (filter, first, last, 4863, "epsg", 4863, "ETRS89 / NTM zone 13 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 13 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",13.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4863\"]]"); p = add_epsg_def_ex (filter, first, last, 4864, "epsg", 4864, "ETRS89 / NTM zone 14 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=14.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 14 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",14.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4864\"]]"); p = add_epsg_def_ex (filter, first, last, 4865, "epsg", 4865, "ETRS89 / NTM zone 15 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 15 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",15.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4865\"]]"); p = add_epsg_def_ex (filter, first, last, 4866, "epsg", 4866, "ETRS89 / NTM zone 16 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 16 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",16.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4866\"]]"); p = add_epsg_def_ex (filter, first, last, 4867, "epsg", 4867, "ETRS89 / NTM zone 17 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=17.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 17 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",17.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4867\"]]"); p = add_epsg_def_ex (filter, first, last, 4868, "epsg", 4868, "ETRS89 / NTM zone 18 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 18 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",18.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4868\"]]"); p = add_epsg_def_ex (filter, first, last, 4869, "epsg", 4869, "ETRS89 / NTM zone 19 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=19.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 19 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",19.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4869\"]]"); p = add_epsg_def_ex (filter, first, last, 4870, "epsg", 4870, "ETRS89 / NTM zone 20 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 20 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",20.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4870\"]]"); p = add_epsg_def_ex (filter, first, last, 4871, "epsg", 4871, "ETRS89 / NTM zone 21 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 21 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",21.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4871\"]]"); p = add_epsg_def_ex (filter, first, last, 4872, "epsg", 4872, "ETRS89 / NTM zone 22 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=22.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 22 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",22.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4872\"]]"); p = add_epsg_def_ex (filter, first, last, 4873, "epsg", 4873, "ETRS89 / NTM zone 23 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=23.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 23 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",23.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4873\"]]"); p = add_epsg_def_ex (filter, first, last, 4874, "epsg", 4874, "ETRS89 / NTM zone 24 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 24 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",24.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4874\"]]"); p = add_epsg_def_ex (filter, first, last, 4875, "epsg", 4875, "ETRS89 / NTM zone 25 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=25.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 25 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",25.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4875\"]]"); p = add_epsg_def_ex (filter, first, last, 4876, "epsg", 4876, "ETRS89 / NTM zone 26 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=26.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 26 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",26.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4876\"]]"); p = add_epsg_def_ex (filter, first, last, 4877, "epsg", 4877, "ETRS89 / NTM zone 27 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / NTM zone 27 (deprecated)\",GEOGCS[\"ET"); add_srs_wkt (p, 1, "RS89\",DATUM[\"European_Terrestrial_Reference_System_198"); add_srs_wkt (p, 2, "9\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",27.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",100000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"4877\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_06.c��������������������������������������������������0000664�0001750�0001750�00000543465�12544707704�017056� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_06 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 2628, "epsg", 2628, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 156E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 156E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",156],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2628\"]]"); p = add_epsg_def_ex (filter, first, last, 2629, "epsg", 2629, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 159E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 159E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",159],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2629\"]]"); p = add_epsg_def_ex (filter, first, last, 2630, "epsg", 2630, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 162E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 162E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",162],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2630\"]]"); p = add_epsg_def_ex (filter, first, last, 2631, "epsg", 2631, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 165E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 165E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",165],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2631\"]]"); p = add_epsg_def_ex (filter, first, last, 2632, "epsg", 2632, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 168E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 168E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",168],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2632\"]]"); p = add_epsg_def_ex (filter, first, last, 2633, "epsg", 2633, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 171E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 171E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",171],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2633\"]]"); p = add_epsg_def_ex (filter, first, last, 2634, "epsg", 2634, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 174E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 174E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",174],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2634\"]]"); p = add_epsg_def_ex (filter, first, last, 2635, "epsg", 2635, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 177E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 177E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",177],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2635\"]]"); p = add_epsg_def_ex (filter, first, last, 2636, "epsg", 2636, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 180E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 180E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",180],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2636\"]]"); p = add_epsg_def_ex (filter, first, last, 2637, "epsg", 2637, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 177W", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 177W\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-177],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2637\"]]"); p = add_epsg_def_ex (filter, first, last, 2638, "epsg", 2638, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 174W", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 174W\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-174],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2638\"]]"); p = add_epsg_def_ex (filter, first, last, 2639, "epsg", 2639, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 171W", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 171W\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-171],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2639\"]]"); p = add_epsg_def_ex (filter, first, last, 2640, "epsg", 2640, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 168W", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 168W\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-168],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2640\"]]"); p = add_epsg_def_ex (filter, first, last, 2641, "epsg", 2641, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 7", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 7\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",21],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",7500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2641\"]]"); p = add_epsg_def_ex (filter, first, last, 2642, "epsg", 2642, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 8", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 8\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",24],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",8500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2642\"]]"); p = add_epsg_def_ex (filter, first, last, 2643, "epsg", 2643, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 9", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 9\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",27],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",9500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2643\"]]"); p = add_epsg_def_ex (filter, first, last, 2644, "epsg", 2644, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 10", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 10\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",30],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",10"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2644\"]]"); p = add_epsg_def_ex (filter, first, last, 2645, "epsg", 2645, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 11", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 11\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",33],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",11"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2645\"]]"); p = add_epsg_def_ex (filter, first, last, 2646, "epsg", 2646, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 12", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 12\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",36],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",12"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2646\"]]"); p = add_epsg_def_ex (filter, first, last, 2647, "epsg", 2647, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 13", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 13\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",39],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",13"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2647\"]]"); p = add_epsg_def_ex (filter, first, last, 2648, "epsg", 2648, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 14", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 14\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",42],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",14"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2648\"]]"); p = add_epsg_def_ex (filter, first, last, 2649, "epsg", 2649, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 15", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 15\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",45],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",15"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2649\"]]"); p = add_epsg_def_ex (filter, first, last, 2650, "epsg", 2650, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 16", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 16\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",48],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",16"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2650\"]]"); p = add_epsg_def_ex (filter, first, last, 2651, "epsg", 2651, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 17", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 17\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",51],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",17"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2651\"]]"); p = add_epsg_def_ex (filter, first, last, 2652, "epsg", 2652, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 18", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=18500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 18\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",54],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",18"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2652\"]]"); p = add_epsg_def_ex (filter, first, last, 2653, "epsg", 2653, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 19", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=19500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 19\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",57],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",19"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2653\"]]"); p = add_epsg_def_ex (filter, first, last, 2654, "epsg", 2654, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 20", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=20500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 20\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",60],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",20"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2654\"]]"); p = add_epsg_def_ex (filter, first, last, 2655, "epsg", 2655, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 21", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=21500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 21\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",63],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",21"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2655\"]]"); p = add_epsg_def_ex (filter, first, last, 2656, "epsg", 2656, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 22", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=22500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 22\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",66],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",22"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2656\"]]"); p = add_epsg_def_ex (filter, first, last, 2657, "epsg", 2657, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 23", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=23500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 23\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",69],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",23"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2657\"]]"); p = add_epsg_def_ex (filter, first, last, 2658, "epsg", 2658, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 24", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=24500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 24\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",72],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",24"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2658\"]]"); p = add_epsg_def_ex (filter, first, last, 2659, "epsg", 2659, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 25", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 25\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",75],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",25"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2659\"]]"); p = add_epsg_def_ex (filter, first, last, 2660, "epsg", 2660, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 26", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 26\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",78],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",26"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2660\"]]"); p = add_epsg_def_ex (filter, first, last, 2661, "epsg", 2661, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 27", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 27\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",81],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",27"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2661\"]]"); p = add_epsg_def_ex (filter, first, last, 2662, "epsg", 2662, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 28", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 28\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",84],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",28"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2662\"]]"); p = add_epsg_def_ex (filter, first, last, 2663, "epsg", 2663, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 29", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 29\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",87],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",29"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2663\"]]"); p = add_epsg_def_ex (filter, first, last, 2664, "epsg", 2664, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 30", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 30\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",90],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",30"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2664\"]]"); p = add_epsg_def_ex (filter, first, last, 2665, "epsg", 2665, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 31", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 31\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",93],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",31"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2665\"]]"); p = add_epsg_def_ex (filter, first, last, 2666, "epsg", 2666, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 32", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 32\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",96],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",32"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2666\"]]"); p = add_epsg_def_ex (filter, first, last, 2667, "epsg", 2667, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 33", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 33\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",99],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",33"); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2667\"]]"); p = add_epsg_def_ex (filter, first, last, 2668, "epsg", 2668, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 34", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 34\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",102],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 11, "4500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2668\"]]"); p = add_epsg_def_ex (filter, first, last, 2669, "epsg", 2669, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 35", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 35\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",105],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 11, "5500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2669\"]]"); p = add_epsg_def_ex (filter, first, last, 2670, "epsg", 2670, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 36", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 36\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",108],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 11, "6500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2670\"]]"); p = add_epsg_def_ex (filter, first, last, 2671, "epsg", 2671, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 37", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 37\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",111],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 11, "7500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2671\"]]"); p = add_epsg_def_ex (filter, first, last, 2672, "epsg", 2672, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 38", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 38\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",114],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 11, "8500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2672\"]]"); p = add_epsg_def_ex (filter, first, last, 2673, "epsg", 2673, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 39", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 39\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",117],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 11, "9500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2673\"]]"); p = add_epsg_def_ex (filter, first, last, 2674, "epsg", 2674, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 40", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 40\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",120],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",4"); add_srs_wkt (p, 11, "0500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2674\"]]"); p = add_epsg_def_ex (filter, first, last, 2675, "epsg", 2675, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 41", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 41\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",123],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",4"); add_srs_wkt (p, 11, "1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2675\"]]"); p = add_epsg_def_ex (filter, first, last, 2676, "epsg", 2676, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 42", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 42\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",126],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",4"); add_srs_wkt (p, 11, "2500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2676\"]]"); p = add_epsg_def_ex (filter, first, last, 2677, "epsg", 2677, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 43", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 43\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",129],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",4"); add_srs_wkt (p, 11, "3500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2677\"]]"); p = add_epsg_def_ex (filter, first, last, 2678, "epsg", 2678, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 44", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 44\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",132],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",4"); add_srs_wkt (p, 11, "4500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2678\"]]"); p = add_epsg_def_ex (filter, first, last, 2679, "epsg", 2679, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 45", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 45\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",135],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",4"); add_srs_wkt (p, 11, "5500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2679\"]]"); p = add_epsg_def_ex (filter, first, last, 2680, "epsg", 2680, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 46", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=46500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 46\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",138],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",4"); add_srs_wkt (p, 11, "6500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2680\"]]"); p = add_epsg_def_ex (filter, first, last, 2681, "epsg", 2681, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 47", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=47500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 47\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",141],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",4"); add_srs_wkt (p, 11, "7500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2681\"]]"); p = add_epsg_def_ex (filter, first, last, 2682, "epsg", 2682, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 48", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=48500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 48\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",144],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",4"); add_srs_wkt (p, 11, "8500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2682\"]]"); p = add_epsg_def_ex (filter, first, last, 2683, "epsg", 2683, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 49", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=49500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 49\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",147],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",4"); add_srs_wkt (p, 11, "9500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2683\"]]"); p = add_epsg_def_ex (filter, first, last, 2684, "epsg", 2684, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 50", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=50500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 50\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",150],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "0500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2684\"]]"); p = add_epsg_def_ex (filter, first, last, 2685, "epsg", 2685, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 51", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=51500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 51\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",153],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "1500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2685\"]]"); p = add_epsg_def_ex (filter, first, last, 2686, "epsg", 2686, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 52", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=52500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 52\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",156],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "2500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2686\"]]"); p = add_epsg_def_ex (filter, first, last, 2687, "epsg", 2687, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 53", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=53500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 53\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",159],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "3500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2687\"]]"); p = add_epsg_def_ex (filter, first, last, 2688, "epsg", 2688, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 54", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=54500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 54\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",162],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "4500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2688\"]]"); p = add_epsg_def_ex (filter, first, last, 2689, "epsg", 2689, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 55", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=55500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 55\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",165],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "5500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2689\"]]"); p = add_epsg_def_ex (filter, first, last, 2690, "epsg", 2690, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 56", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=56500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 56\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",168],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "6500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2690\"]]"); p = add_epsg_def_ex (filter, first, last, 2691, "epsg", 2691, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 57", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=57500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 57\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",171],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "7500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2691\"]]"); p = add_epsg_def_ex (filter, first, last, 2692, "epsg", 2692, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 58", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=58500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 58\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",174],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "8500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2692\"]]"); p = add_epsg_def_ex (filter, first, last, 2693, "epsg", 2693, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 59", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=59500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 59\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",177],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "9500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2693\"]]"); p = add_epsg_def_ex (filter, first, last, 2694, "epsg", 2694, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 60 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60000000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 60 (d"); add_srs_wkt (p, 1, "eprecated)\",GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_199"); add_srs_wkt (p, 2, "5\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0."); add_srs_wkt (p, 4, "13,-0.22],AUTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 10, "an\",180],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",60000000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2694\"]]"); p = add_epsg_def_ex (filter, first, last, 2695, "epsg", 2695, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 61", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=61500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 61\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-177],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "61500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2695\"]]"); p = add_epsg_def_ex (filter, first, last, 2696, "epsg", 2696, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 62", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=62500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 62\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-174],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "62500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2696\"]]"); p = add_epsg_def_ex (filter, first, last, 2697, "epsg", 2697, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 63", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=63500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 63\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-171],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "63500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2697\"]]"); p = add_epsg_def_ex (filter, first, last, 2698, "epsg", 2698, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 64", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=64500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 64\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-168],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "64500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2698\"]]"); p = add_epsg_def_ex (filter, first, last, 2699, "epsg", 2699, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 21E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 21E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",21],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2699\"]]"); p = add_epsg_def_ex (filter, first, last, 2700, "epsg", 2700, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 24E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 24E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",24],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2700\"]]"); p = add_epsg_def_ex (filter, first, last, 2701, "epsg", 2701, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 27E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 27E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",27],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2701\"]]"); p = add_epsg_def_ex (filter, first, last, 2702, "epsg", 2702, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 30E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 30E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",30],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2702\"]]"); p = add_epsg_def_ex (filter, first, last, 2703, "epsg", 2703, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 33E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 33E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",33],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2703\"]]"); p = add_epsg_def_ex (filter, first, last, 2704, "epsg", 2704, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 36E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 36E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",36],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2704\"]]"); p = add_epsg_def_ex (filter, first, last, 2705, "epsg", 2705, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 39E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 39E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",39],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2705\"]]"); p = add_epsg_def_ex (filter, first, last, 2706, "epsg", 2706, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 42E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 42E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",42],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2706\"]]"); p = add_epsg_def_ex (filter, first, last, 2707, "epsg", 2707, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 45E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 45E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",45],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2707\"]]"); p = add_epsg_def_ex (filter, first, last, 2708, "epsg", 2708, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 48E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 48E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",48],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2708\"]]"); p = add_epsg_def_ex (filter, first, last, 2709, "epsg", 2709, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 51E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 51E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",51],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2709\"]]"); p = add_epsg_def_ex (filter, first, last, 2710, "epsg", 2710, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 54E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 54E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",54],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2710\"]]"); p = add_epsg_def_ex (filter, first, last, 2711, "epsg", 2711, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 57E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 57E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",57],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2711\"]]"); p = add_epsg_def_ex (filter, first, last, 2712, "epsg", 2712, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 60E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 60E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",60],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2712\"]]"); p = add_epsg_def_ex (filter, first, last, 2713, "epsg", 2713, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 63E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 63E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",63],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2713\"]]"); p = add_epsg_def_ex (filter, first, last, 2714, "epsg", 2714, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 66E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 66E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",66],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2714\"]]"); p = add_epsg_def_ex (filter, first, last, 2715, "epsg", 2715, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 69E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 69E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",69],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2715\"]]"); p = add_epsg_def_ex (filter, first, last, 2716, "epsg", 2716, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 72E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 72E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",72],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2716\"]]"); p = add_epsg_def_ex (filter, first, last, 2717, "epsg", 2717, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 75E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 75E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",75],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2717\"]]"); p = add_epsg_def_ex (filter, first, last, 2718, "epsg", 2718, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 78E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 78E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",78],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2718\"]]"); p = add_epsg_def_ex (filter, first, last, 2719, "epsg", 2719, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 81E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 81E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",81],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2719\"]]"); p = add_epsg_def_ex (filter, first, last, 2720, "epsg", 2720, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 84E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 84E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",84],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2720\"]]"); p = add_epsg_def_ex (filter, first, last, 2721, "epsg", 2721, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 87E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 87E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",87],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2721\"]]"); p = add_epsg_def_ex (filter, first, last, 2722, "epsg", 2722, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 90E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 90E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",90],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2722\"]]"); p = add_epsg_def_ex (filter, first, last, 2723, "epsg", 2723, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 93E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 93E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",93],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2723\"]]"); p = add_epsg_def_ex (filter, first, last, 2724, "epsg", 2724, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 96E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 96E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",96],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2724\"]]"); p = add_epsg_def_ex (filter, first, last, 2725, "epsg", 2725, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 99E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 99E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",99],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2725\"]]"); p = add_epsg_def_ex (filter, first, last, 2726, "epsg", 2726, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 102E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 102E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",102],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2726\"]]"); p = add_epsg_def_ex (filter, first, last, 2727, "epsg", 2727, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 105E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 105E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",105],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2727\"]]"); p = add_epsg_def_ex (filter, first, last, 2728, "epsg", 2728, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 108E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 108E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",108],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2728\"]]"); } #endif /* full EPSG initialization enabled/disabled */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_41.c��������������������������������������������������0000664�0001750�0001750�00000541775�12544707704�017057� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_41 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 28474, "epsg", 28474, "Pulkovo 1942 / Gauss-Kruger 14N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 14N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",81],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28474\"]]"); p = add_epsg_def_ex (filter, first, last, 28475, "epsg", 28475, "Pulkovo 1942 / Gauss-Kruger 15N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 15N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",87],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28475\"]]"); p = add_epsg_def_ex (filter, first, last, 28476, "epsg", 28476, "Pulkovo 1942 / Gauss-Kruger 16N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 16N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",93],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28476\"]]"); p = add_epsg_def_ex (filter, first, last, 28477, "epsg", 28477, "Pulkovo 1942 / Gauss-Kruger 17N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 17N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",99],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28477\"]]"); p = add_epsg_def_ex (filter, first, last, 28478, "epsg", 28478, "Pulkovo 1942 / Gauss-Kruger 18N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 18N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",105],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28478\"]]"); p = add_epsg_def_ex (filter, first, last, 28479, "epsg", 28479, "Pulkovo 1942 / Gauss-Kruger 19N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 19N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",111],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28479\"]]"); p = add_epsg_def_ex (filter, first, last, 28480, "epsg", 28480, "Pulkovo 1942 / Gauss-Kruger 20N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 20N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",117],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28480\"]]"); p = add_epsg_def_ex (filter, first, last, 28481, "epsg", 28481, "Pulkovo 1942 / Gauss-Kruger 21N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 21N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",123],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28481\"]]"); p = add_epsg_def_ex (filter, first, last, 28482, "epsg", 28482, "Pulkovo 1942 / Gauss-Kruger 22N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 22N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",129],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28482\"]]"); p = add_epsg_def_ex (filter, first, last, 28483, "epsg", 28483, "Pulkovo 1942 / Gauss-Kruger 23N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 23N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",135],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28483\"]]"); p = add_epsg_def_ex (filter, first, last, 28484, "epsg", 28484, "Pulkovo 1942 / Gauss-Kruger 24N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 24N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",141],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28484\"]]"); p = add_epsg_def_ex (filter, first, last, 28485, "epsg", 28485, "Pulkovo 1942 / Gauss-Kruger 25N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 25N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",147],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28485\"]]"); p = add_epsg_def_ex (filter, first, last, 28486, "epsg", 28486, "Pulkovo 1942 / Gauss-Kruger 26N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 26N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",153],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28486\"]]"); p = add_epsg_def_ex (filter, first, last, 28487, "epsg", 28487, "Pulkovo 1942 / Gauss-Kruger 27N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 27N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",159],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28487\"]]"); p = add_epsg_def_ex (filter, first, last, 28488, "epsg", 28488, "Pulkovo 1942 / Gauss-Kruger 28N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 28N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",165],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28488\"]]"); p = add_epsg_def_ex (filter, first, last, 28489, "epsg", 28489, "Pulkovo 1942 / Gauss-Kruger 29N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 29N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",171],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28489\"]]"); p = add_epsg_def_ex (filter, first, last, 28490, "epsg", 28490, "Pulkovo 1942 / Gauss-Kruger 30N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 30N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",177],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28490\"]]"); p = add_epsg_def_ex (filter, first, last, 28491, "epsg", 28491, "Pulkovo 1942 / Gauss-Kruger 31N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 31N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-177],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28491\"]]"); p = add_epsg_def_ex (filter, first, last, 28492, "epsg", 28492, "Pulkovo 1942 / Gauss-Kruger 32N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger 32N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-171],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"28492\"]]"); p = add_epsg_def_ex (filter, first, last, 28600, "epsg", 28600, "Qatar 1974 / Qatar National Grid", 0, 0, "International 1924", "Greenwich", "Qatar_1974", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.9"); add_proj4text (p, 1, "9999 +x_0=200000 +y_0=300000 +ellps=intl +towgs84=-128.1"); add_proj4text (p, 2, "6,-282.42,21.93,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Qatar 1974 / Qatar National Grid\",GEOGCS[\"Qat"); add_srs_wkt (p, 1, "ar 1974\",DATUM[\"Qatar_1974\",SPHEROID[\"International "); add_srs_wkt (p, 2, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 3, "[-128.16,-282.42,21.93,0,0,0,0],AUTHORITY[\"EPSG\",\"628"); add_srs_wkt (p, 4, "5\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4285\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",24.45],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",51.21666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.99999],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",200000],PARAMETER[\"false_northing\",300000],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"28600\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 28991, "epsg", 28991, "Amersfoort / RD Old", 0, 0, "Bessel 1841", "Greenwich", "Amersfoort", "Oblique_Stereographic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.387638888"); add_proj4text (p, 1, "88889 +k=0.9999079 +x_0=0 +y_0=0 +ellps=bessel +towgs84="); add_proj4text (p, 2, "565.4171,50.3319,465.5524,-0.398957388243134,0.343987817"); add_proj4text (p, 3, "378283,-1.87740163998045,4.0725 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Amersfoort / RD Old\",GEOGCS[\"Amersfoort\",DAT"); add_srs_wkt (p, 1, "UM[\"Amersfoort\",SPHEROID[\"Bessel 1841\",6377397.155,2"); add_srs_wkt (p, 2, "99.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[565.417"); add_srs_wkt (p, 3, "1,50.3319,465.5524,-0.398957388243134,0.343987817378283,"); add_srs_wkt (p, 4, "-1.87740163998045,4.0725],AUTHORITY[\"EPSG\",\"6289\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4289\"]],PROJECTION[\"Oblique_Stere"); add_srs_wkt (p, 9, "ographic\"],PARAMETER[\"latitude_of_origin\",52.15616055"); add_srs_wkt (p, 10, "555555],PARAMETER[\"central_meridian\",5.38763888888889]"); add_srs_wkt (p, 11, ",PARAMETER[\"scale_factor\",0.9999079],PARAMETER[\"false"); add_srs_wkt (p, 12, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 13, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"28991\"]]"); p = add_epsg_def_ex (filter, first, last, 28992, "epsg", 28992, "Amersfoort / RD New", 0, 0, "Bessel 1841", "Greenwich", "Amersfoort", "Oblique_Stereographic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.387638888"); add_proj4text (p, 1, "88889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel"); add_proj4text (p, 2, " +towgs84=565.4171,50.3319,465.5524,-0.398957388243134,0"); add_proj4text (p, 3, ".343987817378283,-1.87740163998045,4.0725 +units=m +no_d"); add_proj4text (p, 4, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Amersfoort / RD New\",GEOGCS[\"Amersfoort\",DAT"); add_srs_wkt (p, 1, "UM[\"Amersfoort\",SPHEROID[\"Bessel 1841\",6377397.155,2"); add_srs_wkt (p, 2, "99.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[565.417"); add_srs_wkt (p, 3, "1,50.3319,465.5524,-0.398957388243134,0.343987817378283,"); add_srs_wkt (p, 4, "-1.87740163998045,4.0725],AUTHORITY[\"EPSG\",\"6289\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4289\"]],PROJECTION[\"Oblique_Stere"); add_srs_wkt (p, 9, "ographic\"],PARAMETER[\"latitude_of_origin\",52.15616055"); add_srs_wkt (p, 10, "555555],PARAMETER[\"central_meridian\",5.38763888888889]"); add_srs_wkt (p, 11, ",PARAMETER[\"scale_factor\",0.9999079],PARAMETER[\"false"); add_srs_wkt (p, 12, "_easting\",155000],PARAMETER[\"false_northing\",463000],"); add_srs_wkt (p, 13, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"28992\"]]"); p = add_epsg_def_ex (filter, first, last, 29100, "epsg", 29100, "SAD69 / Brazil Polyconic (deprecated)", 0, 0, "GRS 1967", "Greenwich", "South_American_Datum_1969", "Polyconic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000"); add_proj4text (p, 1, "0 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / Brazil Polyconic (deprecated)\",GEOGCS["); add_srs_wkt (p, 1, "\"SAD69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "36\"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "291\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Polyco"); add_srs_wkt (p, 8, "nic\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-54],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"29100\"]]"); p = add_epsg_def_ex (filter, first, last, 29101, "epsg", 29101, "SAD69 / Brazil Polyconic", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969", "Polyconic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000"); add_proj4text (p, 1, "0 +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / Brazil Polyconic\",GEOGCS[\"SAD69\",DAT"); add_srs_wkt (p, 1, "UM[\"South_American_Datum_1969\",SPHEROID[\"GRS 1967 Mod"); add_srs_wkt (p, 2, "ified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOW"); add_srs_wkt (p, 3, "GS84[-66.87,4.37,-38.52,0,0,0,0],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 4, "18\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Polycon"); add_srs_wkt (p, 8, "ic\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-54],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 10, "0],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 12, "Y\",NORTH],AUTHORITY[\"EPSG\",\"29101\"]]"); p = add_epsg_def_ex (filter, first, last, 29118, "epsg", 29118, "SAD69 / UTM zone 18N (deprecated)", 0, 0, "GRS 1967", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); add_proj4text (p, 1, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 18N (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-75],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"29118\"]]"); p = add_epsg_def_ex (filter, first, last, 29119, "epsg", 29119, "SAD69 / UTM zone 19N (deprecated)", 0, 0, "GRS 1967", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); add_proj4text (p, 1, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 19N (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-69],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"29119\"]]"); p = add_epsg_def_ex (filter, first, last, 29120, "epsg", 29120, "SAD69 / UTM zone 20N (deprecated)", 0, 0, "GRS 1967", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); add_proj4text (p, 1, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 20N (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-63],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"29120\"]]"); p = add_epsg_def_ex (filter, first, last, 29121, "epsg", 29121, "SAD69 / UTM zone 21N (deprecated)", 0, 0, "GRS 1967", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); add_proj4text (p, 1, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 21N (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-57],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"29121\"]]"); p = add_epsg_def_ex (filter, first, last, 29122, "epsg", 29122, "SAD69 / UTM zone 22N (deprecated)", 0, 0, "GRS 1967", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0"); add_proj4text (p, 1, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 22N (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-51],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"29122\"]]"); p = add_epsg_def_ex (filter, first, last, 29168, "epsg", 29168, "SAD69 / UTM zone 18N", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=aust_SA +towgs84=-66.87,4.37,-"); add_proj4text (p, 1, "38.52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 18N\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-66.87,4.37,-38.52,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-75],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"29168\"]]"); p = add_epsg_def_ex (filter, first, last, 29169, "epsg", 29169, "SAD69 / UTM zone 19N", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=aust_SA +towgs84=-66.87,4.37,-"); add_proj4text (p, 1, "38.52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 19N\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-66.87,4.37,-38.52,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-69],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"29169\"]]"); p = add_epsg_def_ex (filter, first, last, 29170, "epsg", 29170, "SAD69 / UTM zone 20N", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=aust_SA +towgs84=-66.87,4.37,-"); add_proj4text (p, 1, "38.52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 20N\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-66.87,4.37,-38.52,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-63],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"29170\"]]"); p = add_epsg_def_ex (filter, first, last, 29171, "epsg", 29171, "SAD69 / UTM zone 21N", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=aust_SA +towgs84=-66.87,4.37,-"); add_proj4text (p, 1, "38.52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 21N\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-66.87,4.37,-38.52,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-57],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"29171\"]]"); p = add_epsg_def_ex (filter, first, last, 29172, "epsg", 29172, "SAD69 / UTM zone 22N", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=aust_SA +towgs84=-66.87,4.37,-"); add_proj4text (p, 1, "38.52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 22N\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-66.87,4.37,-38.52,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-51],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"29172\"]]"); p = add_epsg_def_ex (filter, first, last, 29177, "epsg", 29177, "SAD69 / UTM zone 17S (deprecated)", 0, 0, "GRS 1967", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 17S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-81],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"29177\"]]"); p = add_epsg_def_ex (filter, first, last, 29178, "epsg", 29178, "SAD69 / UTM zone 18S (deprecated)", 0, 0, "GRS 1967", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 18S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-75],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"29178\"]]"); p = add_epsg_def_ex (filter, first, last, 29179, "epsg", 29179, "SAD69 / UTM zone 19S (deprecated)", 0, 0, "GRS 1967", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 19S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-69],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"29179\"]]"); p = add_epsg_def_ex (filter, first, last, 29180, "epsg", 29180, "SAD69 / UTM zone 20S (deprecated)", 0, 0, "GRS 1967", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 20S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-63],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"29180\"]]"); p = add_epsg_def_ex (filter, first, last, 29181, "epsg", 29181, "SAD69 / UTM zone 21S (deprecated)", 0, 0, "GRS 1967", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 21S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-57],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"29181\"]]"); p = add_epsg_def_ex (filter, first, last, 29182, "epsg", 29182, "SAD69 / UTM zone 22S (deprecated)", 0, 0, "GRS 1967", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 22S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-51],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"29182\"]]"); p = add_epsg_def_ex (filter, first, last, 29183, "epsg", 29183, "SAD69 / UTM zone 23S (deprecated)", 0, 0, "GRS 1967", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 23S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-45],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"29183\"]]"); p = add_epsg_def_ex (filter, first, last, 29184, "epsg", 29184, "SAD69 / UTM zone 24S (deprecated)", 0, 0, "GRS 1967", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 24S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-39],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"29184\"]]"); p = add_epsg_def_ex (filter, first, last, 29185, "epsg", 29185, "SAD69 / UTM zone 25S (deprecated)", 0, 0, "GRS 1967", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +ellps=GRS67 +towgs84=-57,1,-4"); add_proj4text (p, 1, "1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 25S (deprecated)\",GEOGCS[\"SA"); add_srs_wkt (p, 1, "D69\",DATUM[\"South_American_Datum_1969\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\"7036\""); add_srs_wkt (p, 3, "]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EPSG\",\"6291\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4291\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-33],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"29185\"]]"); p = add_epsg_def_ex (filter, first, last, 29187, "epsg", 29187, "SAD69 / UTM zone 17S", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +south +ellps=aust_SA +towgs84=-66.87"); add_proj4text (p, 1, ",4.37,-38.52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 17S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-66.87,4.37,-38.52,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-81],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"29187\"]]"); p = add_epsg_def_ex (filter, first, last, 29188, "epsg", 29188, "SAD69 / UTM zone 18S", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=aust_SA +towgs84=-66.87"); add_proj4text (p, 1, ",4.37,-38.52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 18S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-66.87,4.37,-38.52,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-75],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"29188\"]]"); p = add_epsg_def_ex (filter, first, last, 29189, "epsg", 29189, "SAD69 / UTM zone 19S", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=aust_SA +towgs84=-66.87"); add_proj4text (p, 1, ",4.37,-38.52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 19S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-66.87,4.37,-38.52,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-69],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"29189\"]]"); p = add_epsg_def_ex (filter, first, last, 29190, "epsg", 29190, "SAD69 / UTM zone 20S", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=aust_SA +towgs84=-66.87"); add_proj4text (p, 1, ",4.37,-38.52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 20S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-66.87,4.37,-38.52,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-63],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"29190\"]]"); p = add_epsg_def_ex (filter, first, last, 29191, "epsg", 29191, "SAD69 / UTM zone 21S", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=aust_SA +towgs84=-66.87"); add_proj4text (p, 1, ",4.37,-38.52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 21S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-66.87,4.37,-38.52,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-57],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"29191\"]]"); p = add_epsg_def_ex (filter, first, last, 29192, "epsg", 29192, "SAD69 / UTM zone 22S", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=aust_SA +towgs84=-66.87"); add_proj4text (p, 1, ",4.37,-38.52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 22S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-66.87,4.37,-38.52,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-51],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"29192\"]]"); p = add_epsg_def_ex (filter, first, last, 29193, "epsg", 29193, "SAD69 / UTM zone 23S", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=aust_SA +towgs84=-66.87"); add_proj4text (p, 1, ",4.37,-38.52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 23S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-66.87,4.37,-38.52,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-45],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"29193\"]]"); p = add_epsg_def_ex (filter, first, last, 29194, "epsg", 29194, "SAD69 / UTM zone 24S", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=aust_SA +towgs84=-66.87"); add_proj4text (p, 1, ",4.37,-38.52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 24S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-66.87,4.37,-38.52,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-39],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"29194\"]]"); p = add_epsg_def_ex (filter, first, last, 29195, "epsg", 29195, "SAD69 / UTM zone 25S", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +ellps=aust_SA +towgs84=-66.87"); add_proj4text (p, 1, ",4.37,-38.52,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69 / UTM zone 25S\",GEOGCS[\"SAD69\",DATUM[\""); add_srs_wkt (p, 1, "South_American_Datum_1969\",SPHEROID[\"GRS 1967 Modified"); add_srs_wkt (p, 2, "\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\"]],TOWGS84["); add_srs_wkt (p, 3, "-66.87,4.37,-38.52,0,0,0,0],AUTHORITY[\"EPSG\",\"6618\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4618\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-33],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"29195\"]]"); p = add_epsg_def_ex (filter, first, last, 29220, "epsg", 29220, "Sapper Hill 1943 / UTM zone 20S", 0, 0, "International 1924", "Greenwich", "Sapper_Hill_1943", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=intl +towgs84=-355,21,7"); add_proj4text (p, 1, "2,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Sapper Hill 1943 / UTM zone 20S\",GEOGCS[\"Sapp"); add_srs_wkt (p, 1, "er Hill 1943\",DATUM[\"Sapper_Hill_1943\",SPHEROID[\"Int"); add_srs_wkt (p, 2, "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY[\"EPSG\",\"6292"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4292\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-63],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"29220\"]]"); p = add_epsg_def_ex (filter, first, last, 29221, "epsg", 29221, "Sapper Hill 1943 / UTM zone 21S", 0, 0, "International 1924", "Greenwich", "Sapper_Hill_1943", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=intl +towgs84=-355,21,7"); add_proj4text (p, 1, "2,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Sapper Hill 1943 / UTM zone 21S\",GEOGCS[\"Sapp"); add_srs_wkt (p, 1, "er Hill 1943\",DATUM[\"Sapper_Hill_1943\",SPHEROID[\"Int"); add_srs_wkt (p, 2, "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY[\"EPSG\",\"6292"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4292\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-57],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"29221\"]]"); p = add_epsg_def_ex (filter, first, last, 29333, "epsg", 29333, "Schwarzeck / UTM zone 33S", 0, 0, "Bessel Namibia (GLM)", "Greenwich", "Schwarzeck", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +south +ellps=bess_nam +towgs84=616,9"); add_proj4text (p, 1, "7,-251,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Schwarzeck / UTM zone 33S\",GEOGCS[\"Schwarzeck"); add_srs_wkt (p, 1, "\",DATUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\""); add_srs_wkt (p, 2, ",6377483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046"); add_srs_wkt (p, 3, "\"]],TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "293\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",15],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"29333\"]]"); p = add_epsg_def_ex (filter, first, last, 29371, "epsg", 29371, "Schwarzeck / Lo22/11", 0, 0, "Bessel Namibia (GLM)", "Greenwich", "Schwarzeck", "Transverse_Mercator_South_Orientated", "German legal metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-22 +lon_0=11 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); add_proj4text (p, 2, "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Schwarzeck / Lo22/11\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator_South_Orientated\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",-22],PARAMETER[\"central_meridian\",11],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"German legal metre\","); add_srs_wkt (p, 12, "1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"Y\",WE"); add_srs_wkt (p, 13, "ST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29371\"]]"); p = add_epsg_def_ex (filter, first, last, 29373, "epsg", 29373, "Schwarzeck / Lo22/13", 0, 0, "Bessel Namibia (GLM)", "Greenwich", "Schwarzeck", "Transverse_Mercator_South_Orientated", "German legal metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-22 +lon_0=13 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); add_proj4text (p, 2, "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Schwarzeck / Lo22/13\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator_South_Orientated\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",-22],PARAMETER[\"central_meridian\",13],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"German legal metre\","); add_srs_wkt (p, 12, "1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"Y\",WE"); add_srs_wkt (p, 13, "ST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29373\"]]"); p = add_epsg_def_ex (filter, first, last, 29375, "epsg", 29375, "Schwarzeck / Lo22/15", 0, 0, "Bessel Namibia (GLM)", "Greenwich", "Schwarzeck", "Transverse_Mercator_South_Orientated", "German legal metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-22 +lon_0=15 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); add_proj4text (p, 2, "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Schwarzeck / Lo22/15\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator_South_Orientated\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",-22],PARAMETER[\"central_meridian\",15],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"German legal metre\","); add_srs_wkt (p, 12, "1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"Y\",WE"); add_srs_wkt (p, 13, "ST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29375\"]]"); p = add_epsg_def_ex (filter, first, last, 29377, "epsg", 29377, "Schwarzeck / Lo22/17", 0, 0, "Bessel Namibia (GLM)", "Greenwich", "Schwarzeck", "Transverse_Mercator_South_Orientated", "German legal metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-22 +lon_0=17 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); add_proj4text (p, 2, "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Schwarzeck / Lo22/17\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator_South_Orientated\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",-22],PARAMETER[\"central_meridian\",17],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"German legal metre\","); add_srs_wkt (p, 12, "1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"Y\",WE"); add_srs_wkt (p, 13, "ST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29377\"]]"); p = add_epsg_def_ex (filter, first, last, 29379, "epsg", 29379, "Schwarzeck / Lo22/19", 0, 0, "Bessel Namibia (GLM)", "Greenwich", "Schwarzeck", "Transverse_Mercator_South_Orientated", "German legal metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-22 +lon_0=19 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); add_proj4text (p, 2, "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Schwarzeck / Lo22/19\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator_South_Orientated\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",-22],PARAMETER[\"central_meridian\",19],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"German legal metre\","); add_srs_wkt (p, 12, "1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"Y\",WE"); add_srs_wkt (p, 13, "ST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29379\"]]"); p = add_epsg_def_ex (filter, first, last, 29381, "epsg", 29381, "Schwarzeck / Lo22/21", 0, 0, "Bessel Namibia (GLM)", "Greenwich", "Schwarzeck", "Transverse_Mercator_South_Orientated", "German legal metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-22 +lon_0=21 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); add_proj4text (p, 2, "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Schwarzeck / Lo22/21\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator_South_Orientated\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",-22],PARAMETER[\"central_meridian\",21],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"German legal metre\","); add_srs_wkt (p, 12, "1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"Y\",WE"); add_srs_wkt (p, 13, "ST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29381\"]]"); p = add_epsg_def_ex (filter, first, last, 29383, "epsg", 29383, "Schwarzeck / Lo22/23", 0, 0, "Bessel Namibia (GLM)", "Greenwich", "Schwarzeck", "Transverse_Mercator_South_Orientated", "German legal metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-22 +lon_0=23 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); add_proj4text (p, 2, "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Schwarzeck / Lo22/23\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator_South_Orientated\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",-22],PARAMETER[\"central_meridian\",23],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"German legal metre\","); add_srs_wkt (p, 12, "1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"Y\",WE"); add_srs_wkt (p, 13, "ST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29383\"]]"); p = add_epsg_def_ex (filter, first, last, 29385, "epsg", 29385, "Schwarzeck / Lo22/25", 0, 0, "Bessel Namibia (GLM)", "Greenwich", "Schwarzeck", "Transverse_Mercator_South_Orientated", "German legal metre", "Y", "West", "X", "South"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-22 +lon_0=25 +k=1 +x_0=0 +y_0=0 +axi"); add_proj4text (p, 1, "s=wsu +ellps=bess_nam +towgs84=616,97,-251,0,0,0,0 +to_m"); add_proj4text (p, 2, "eter=1.0000135965 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Schwarzeck / Lo22/25\",GEOGCS[\"Schwarzeck\",DA"); add_srs_wkt (p, 1, "TUM[\"Schwarzeck\",SPHEROID[\"Bessel Namibia (GLM)\",637"); add_srs_wkt (p, 2, "7483.865280419,299.1528128,AUTHORITY[\"EPSG\",\"7046\"]]"); add_srs_wkt (p, 3, ",TOWGS84[616,97,-251,0,0,0,0],AUTHORITY[\"EPSG\",\"6293\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4293\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator_South_Orientated\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",-22],PARAMETER[\"central_meridian\",25],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"German legal metre\","); add_srs_wkt (p, 12, "1.0000135965,AUTHORITY[\"EPSG\",\"9031\"]],AXIS[\"Y\",WE"); add_srs_wkt (p, 13, "ST],AXIS[\"X\",SOUTH],AUTHORITY[\"EPSG\",\"29385\"]]"); p = add_epsg_def_ex (filter, first, last, 29635, "epsg", 29635, "Sudan / UTM zone 35N (deprecated)", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Sudan", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +a=6378249.2 +b=6356515 +units=m +no_"); add_proj4text (p, 1, "defs"); add_srs_wkt (p, 0, "PROJCS[\"Sudan / UTM zone 35N (deprecated)\",GEOGCS[\"Su"); add_srs_wkt (p, 1, "dan\",DATUM[\"Sudan\",SPHEROID[\"Clarke 1880 (IGN)\",637"); add_srs_wkt (p, 2, "8249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6296\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4296\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",27],PA"); add_srs_wkt (p, 9, "RAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29635\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 29636, "epsg", 29636, "Sudan / UTM zone 36N (deprecated)", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Sudan", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +a=6378249.2 +b=6356515 +units=m +no_"); add_proj4text (p, 1, "defs"); add_srs_wkt (p, 0, "PROJCS[\"Sudan / UTM zone 36N (deprecated)\",GEOGCS[\"Su"); add_srs_wkt (p, 1, "dan\",DATUM[\"Sudan\",SPHEROID[\"Clarke 1880 (IGN)\",637"); add_srs_wkt (p, 2, "8249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6296\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4296\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",33],PA"); add_srs_wkt (p, 9, "RAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 12, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29636\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 29700, "epsg", 29700, "Tananarive (Paris) / Laborde Grid (deprecated)", 0, 0, "International 1924", "Paris", "Tananarive_1925_Paris", "Hotine_Oblique_Mercator_Azimuth_Center", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha="); add_proj4text (p, 1, "18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +gamm"); add_proj4text (p, 2, "a=18.9 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=pa"); add_proj4text (p, 3, "ris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tananarive (Paris) / Laborde Grid (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"Tananarive (Paris)\",DATUM[\"Tananarive_1925_P"); add_srs_wkt (p, 2, "aris\",SPHEROID[\"International 1924\",6378388,297,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7022\"]],TOWGS84[-189,-242,-91,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6810\"]],PRIMEM[\"Paris\",2.3372291"); add_srs_wkt (p, 5, "7,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.01570796"); add_srs_wkt (p, 6, "326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 8, "10\"]],PROJECTION[\"Hotine_Oblique_Mercator_Azimuth_Cent"); add_srs_wkt (p, 9, "er\"],PARAMETER[\"latitude_of_center\",-21],PARAMETER[\""); add_srs_wkt (p, 10, "longitude_of_center\",49],PARAMETER[\"azimuth\",21],PARA"); add_srs_wkt (p, 11, "METER[\"rectified_grid_angle\",21],PARAMETER[\"scale_fac"); add_srs_wkt (p, 12, "tor\",0.9995],PARAMETER[\"false_easting\",400000],PARAME"); add_srs_wkt (p, 13, "TER[\"false_northing\",800000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 14, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 15, ",AUTHORITY[\"EPSG\",\"29700\"]]"); p = add_epsg_def_ex (filter, first, last, 29702, "epsg", 29702, "Tananarive (Paris) / Laborde Grid approximation", 0, 1, "International 1924", "Paris", "Tananarive_1925_Paris", "Hotine_Oblique_Mercator_Azimuth_Center", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha="); add_proj4text (p, 1, "18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +gamm"); add_proj4text (p, 2, "a=18.9 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=pa"); add_proj4text (p, 3, "ris +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tananarive (Paris) / Laborde Grid approximation"); add_srs_wkt (p, 1, "\",GEOGCS[\"Tananarive (Paris)\",DATUM[\"Tananarive_1925"); add_srs_wkt (p, 2, "_Paris\",SPHEROID[\"International 1924\",6378388,297,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7022\"]],TOWGS84[-189,-242,-91,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6810\"]],PRIMEM[\"Paris\",2.33722"); add_srs_wkt (p, 5, "917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.015707"); add_srs_wkt (p, 6, "96326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4810\"]],PROJECTION[\"Hotine_Oblique_Mercator_Azimuth_Ce"); add_srs_wkt (p, 9, "nter\"],PARAMETER[\"latitude_of_center\",-21],PARAMETER["); add_srs_wkt (p, 10, "\"longitude_of_center\",49],PARAMETER[\"azimuth\",21],PA"); add_srs_wkt (p, 11, "RAMETER[\"rectified_grid_angle\",21],PARAMETER[\"scale_f"); add_srs_wkt (p, 12, "actor\",0.9995],PARAMETER[\"false_easting\",400000],PARA"); add_srs_wkt (p, 13, "METER[\"false_northing\",800000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 15, "T],AUTHORITY[\"EPSG\",\"29702\"]]"); p = add_epsg_def_ex (filter, first, last, 29738, "epsg", 29738, "Tananarive / UTM zone 38S", 0, 0, "International 1924", "Greenwich", "Tananarive_1925", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +ellps=intl +towgs84=-189,-242"); add_proj4text (p, 1, ",-91,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tananarive / UTM zone 38S\",GEOGCS[\"Tananarive"); add_srs_wkt (p, 1, "\",DATUM[\"Tananarive_1925\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "189,-242,-91,0,0,0,0],AUTHORITY[\"EPSG\",\"6297\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4297\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",45],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"29738\"]]"); p = add_epsg_def_ex (filter, first, last, 29739, "epsg", 29739, "Tananarive / UTM zone 39S", 0, 0, "International 1924", "Greenwich", "Tananarive_1925", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +south +ellps=intl +towgs84=-189,-242"); add_proj4text (p, 1, ",-91,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tananarive / UTM zone 39S\",GEOGCS[\"Tananarive"); add_srs_wkt (p, 1, "\",DATUM[\"Tananarive_1925\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "189,-242,-91,0,0,0,0],AUTHORITY[\"EPSG\",\"6297\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4297\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",51],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"29739\"]]"); p = add_epsg_def_ex (filter, first, last, 29849, "epsg", 29849, "Timbalai 1948 / UTM zone 49N", 0, 0, "Everest 1830 (1967 Definition)", "Greenwich", "Timbalai_1948", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=49 +ellps=evrstSS +towgs84=-679,669,-48,"); add_proj4text (p, 1, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Timbalai 1948 / UTM zone 49N\",GEOGCS[\"Timbala"); add_srs_wkt (p, 1, "i 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1830"); add_srs_wkt (p, 2, " (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7016\"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4298\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",111],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 13, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29849\"]]"); p = add_epsg_def_ex (filter, first, last, 29850, "epsg", 29850, "Timbalai 1948 / UTM zone 50N", 0, 0, "Everest 1830 (1967 Definition)", "Greenwich", "Timbalai_1948", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=50 +ellps=evrstSS +towgs84=-679,669,-48,"); add_proj4text (p, 1, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Timbalai 1948 / UTM zone 50N\",GEOGCS[\"Timbala"); add_srs_wkt (p, 1, "i 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1830"); add_srs_wkt (p, 2, " (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7016\"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4298\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",117],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 13, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29850\"]]"); p = add_epsg_def_ex (filter, first, last, 29871, "epsg", 29871, "Timbalai 1948 / RSO Borneo (ch)", 0, 0, "Everest 1830 (1967 Definition)", "Greenwich", "Timbalai_1948", "Hotine_Oblique_Mercator_Azimuth_Center", "British chain (Sears 1922)", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 "); add_proj4text (p, 1, "+k=0.99984 +x_0=590476.8714630401 +y_0=442857.653094361 "); add_proj4text (p, 2, "+gamma=53.13010236111111 +ellps=evrstSS +towgs84=-679,66"); add_proj4text (p, 3, "9,-48,0,0,0,0 +to_meter=20.11676512155263 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Timbalai 1948 / RSO Borneo (ch)\",GEOGCS[\"Timb"); add_srs_wkt (p, 1, "alai 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7016\"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4298\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Hotine_Oblique_Mercator_Azimuth_Center\"],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_center\",4],PARAMETER[\"longitude_of_c"); add_srs_wkt (p, 10, "enter\",115],PARAMETER[\"azimuth\",53.31582047222222],PA"); add_srs_wkt (p, 11, "RAMETER[\"rectified_grid_angle\",53.13010236111111],PARA"); add_srs_wkt (p, 12, "METER[\"scale_factor\",0.99984],PARAMETER[\"false_eastin"); add_srs_wkt (p, 13, "g\",29352.4763],PARAMETER[\"false_northing\",22014.3572]"); add_srs_wkt (p, 14, ",UNIT[\"British chain (Sears 1922)\",20.11676512155263,A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"9042\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 16, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29871\"]]"); p = add_epsg_def_ex (filter, first, last, 29872, "epsg", 29872, "Timbalai 1948 / RSO Borneo (ft)", 0, 0, "Everest 1830 (1967 Definition)", "Greenwich", "Timbalai_1948", "Hotine_Oblique_Mercator_Azimuth_Center", "British foot (Sears 1922)", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 "); add_proj4text (p, 1, "+k=0.99984 +x_0=590476.8727431979 +y_0=442857.6545573985"); add_proj4text (p, 2, " +gamma=53.13010236111111 +ellps=evrstSS +towgs84=-679,6"); add_proj4text (p, 3, "69,-48,0,0,0,0 +to_meter=0.3047994715386762 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Timbalai 1948 / RSO Borneo (ft)\",GEOGCS[\"Timb"); add_srs_wkt (p, 1, "alai 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 1"); add_srs_wkt (p, 2, "830 (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7016\"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4298\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Hotine_Oblique_Mercator_Azimuth_Center\"],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_center\",4],PARAMETER[\"longitude_of_c"); add_srs_wkt (p, 10, "enter\",115],PARAMETER[\"azimuth\",53.31582047222222],PA"); add_srs_wkt (p, 11, "RAMETER[\"rectified_grid_angle\",53.13010236111111],PARA"); add_srs_wkt (p, 12, "METER[\"scale_factor\",0.99984],PARAMETER[\"false_eastin"); add_srs_wkt (p, 13, "g\",1937263.44],PARAMETER[\"false_northing\",1452947.58]"); add_srs_wkt (p, 14, ",UNIT[\"British foot (Sears 1922)\",0.3047994715386762,A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"9041\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 16, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29872\"]]"); p = add_epsg_def_ex (filter, first, last, 29873, "epsg", 29873, "Timbalai 1948 / RSO Borneo (m)", 0, 0, "Everest 1830 (1967 Definition)", "Greenwich", "Timbalai_1948", "Hotine_Oblique_Mercator_Azimuth_Center", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 "); add_proj4text (p, 1, "+k=0.99984 +x_0=590476.87 +y_0=442857.65 +gamma=53.13010"); add_proj4text (p, 2, "236111111 +ellps=evrstSS +towgs84=-679,669,-48,0,0,0,0 +"); add_proj4text (p, 3, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Timbalai 1948 / RSO Borneo (m)\",GEOGCS[\"Timba"); add_srs_wkt (p, 1, "lai 1948\",DATUM[\"Timbalai_1948\",SPHEROID[\"Everest 18"); add_srs_wkt (p, 2, "30 (1967 Definition)\",6377298.556,300.8017,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7016\"]],TOWGS84[-679,669,-48,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4298\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Hotine_Oblique_Mercator_Azimuth_Center\"],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_center\",4],PARAMETER[\"longitude_of_c"); add_srs_wkt (p, 10, "enter\",115],PARAMETER[\"azimuth\",53.31582047222222],PA"); add_srs_wkt (p, 11, "RAMETER[\"rectified_grid_angle\",53.13010236111111],PARA"); add_srs_wkt (p, 12, "METER[\"scale_factor\",0.99984],PARAMETER[\"false_eastin"); add_srs_wkt (p, 13, "g\",590476.87],PARAMETER[\"false_northing\",442857.65],U"); add_srs_wkt (p, 14, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 15, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 16, ",\"29873\"]]"); p = add_epsg_def_ex (filter, first, last, 29900, "epsg", 29900, "TM65 / Irish National Grid (deprecated)", 0, 0, "Airy Modified 1849", "Greenwich", "TM65", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=20000"); add_proj4text (p, 1, "0 +y_0=250000 +ellps=mod_airy +towgs84=482.5,-130.6,564."); add_proj4text (p, 2, "6,-1.042,-0.214,-0.631,8.15 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TM65 / Irish National Grid (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"TM65\",DATUM[\"TM65\",SPHEROID[\"Airy Modified 1849\""); add_srs_wkt (p, 2, ",6377340.189,299.3249646,AUTHORITY[\"EPSG\",\"7002\"]],T"); add_srs_wkt (p, 3, "OWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6299\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4299\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",53.5],PARAMETER[\"central_meridian\",-8],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1.000035],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",200000],PARAMETER[\"false_northing\",250000],UNI"); add_srs_wkt (p, 12, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 13, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "29900\"]]"); p = add_epsg_def_ex (filter, first, last, 29901, "epsg", 29901, "OSNI 1952 / Irish National Grid", 0, 0, "Airy 1830", "Greenwich", "OSNI_1952", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1 +x_0=200000 +y_0="); add_proj4text (p, 1, "250000 +ellps=airy +towgs84=482.5,-130.6,564.6,-1.042,-0"); add_proj4text (p, 2, ".214,-0.631,8.15 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"OSNI 1952 / Irish National Grid\",GEOGCS[\"OSNI"); add_srs_wkt (p, 1, " 1952\",DATUM[\"OSNI_1952\",SPHEROID[\"Airy 1830\",63775"); add_srs_wkt (p, 2, "63.396,299.3249646,AUTHORITY[\"EPSG\",\"7001\"]],TOWGS84"); add_srs_wkt (p, 3, "[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6188\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4188\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",53.5],PARAMETER[\"central_meridian\",-8],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",20000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",250000],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"29901\"]]"); p = add_epsg_def_ex (filter, first, last, 29902, "epsg", 29902, "TM65 / Irish Grid", 0, 0, "Airy Modified 1849", "Greenwich", "TM65", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=20000"); add_proj4text (p, 1, "0 +y_0=250000 +ellps=mod_airy +towgs84=482.5,-130.6,564."); add_proj4text (p, 2, "6,-1.042,-0.214,-0.631,8.15 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TM65 / Irish Grid\",GEOGCS[\"TM65\",DATUM[\"TM6"); add_srs_wkt (p, 1, "5\",SPHEROID[\"Airy Modified 1849\",6377340.189,299.3249"); add_srs_wkt (p, 2, "646,AUTHORITY[\"EPSG\",\"7002\"]],TOWGS84[482.5,-130.6,5"); add_srs_wkt (p, 3, "64.6,-1.042,-0.214,-0.631,8.15],AUTHORITY[\"EPSG\",\"629"); add_srs_wkt (p, 4, "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4299\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",53.5],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",-8],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1.000035],PARAMETER[\"false_easting\",200000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",250000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 13, "thing\",NORTH],AUTHORITY[\"EPSG\",\"29902\"]]"); p = add_epsg_def_ex (filter, first, last, 29903, "epsg", 29903, "TM75 / Irish Grid", 0, 0, "Airy Modified 1849", "Greenwich", "Geodetic_Datum_of_1965", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=20000"); add_proj4text (p, 1, "0 +y_0=250000 +ellps=mod_airy +towgs84=482.5,-130.6,564."); add_proj4text (p, 2, "6,-1.042,-0.214,-0.631,8.15 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TM75 / Irish Grid\",GEOGCS[\"TM75\",DATUM[\"Geo"); add_srs_wkt (p, 1, "detic_Datum_of_1965\",SPHEROID[\"Airy Modified 1849\",63"); add_srs_wkt (p, 2, "77340.189,299.3249646,AUTHORITY[\"EPSG\",\"7002\"]],TOWG"); add_srs_wkt (p, 3, "S84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6300\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4300\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",53.5],PARAMETER[\"central_meridian\",-8],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1.000035],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",200000],PARAMETER[\"false_northing\",250000],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"299"); add_srs_wkt (p, 14, "03\"]]"); p = add_epsg_def_ex (filter, first, last, 30161, "epsg", 30161, "Tokyo / Japan Plane Rectangular CS I", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS I\",GEOGCS[\""); add_srs_wkt (p, 1, "Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397"); add_srs_wkt (p, 2, ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-"); add_srs_wkt (p, 3, "146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"63"); add_srs_wkt (p, 4, "01\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",33],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",129.5],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"30161\"]]"); p = add_epsg_def_ex (filter, first, last, 30162, "epsg", 30162, "Tokyo / Japan Plane Rectangular CS II", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS II\",GEOGCS["); add_srs_wkt (p, 1, "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); add_srs_wkt (p, 2, "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); add_srs_wkt (p, 3, "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",33],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",131],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER["); add_srs_wkt (p, 11, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"30162\"]]"); p = add_epsg_def_ex (filter, first, last, 30163, "epsg", 30163, "Tokyo / Japan Plane Rectangular CS III", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); add_proj4text (p, 2, "80.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS III\",GEOGCS"); add_srs_wkt (p, 1, "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",36],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",132.1666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"30163\"]]"); p = add_epsg_def_ex (filter, first, last, 30164, "epsg", 30164, "Tokyo / Japan Plane Rectangular CS IV", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS IV\",GEOGCS["); add_srs_wkt (p, 1, "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); add_srs_wkt (p, 2, "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); add_srs_wkt (p, 3, "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",33],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",133.5],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"30164\"]]"); p = add_epsg_def_ex (filter, first, last, 30165, "epsg", 30165, "Tokyo / Japan Plane Rectangular CS V", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); add_proj4text (p, 2, "80.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS V\",GEOGCS[\""); add_srs_wkt (p, 1, "Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397"); add_srs_wkt (p, 2, ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-"); add_srs_wkt (p, 3, "146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"63"); add_srs_wkt (p, 4, "01\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",36],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",134.3333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 13, "T],AUTHORITY[\"EPSG\",\"30165\"]]"); p = add_epsg_def_ex (filter, first, last, 30166, "epsg", 30166, "Tokyo / Japan Plane Rectangular CS VI", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS VI\",GEOGCS["); add_srs_wkt (p, 1, "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); add_srs_wkt (p, 2, "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); add_srs_wkt (p, 3, "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",36],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",136],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER["); add_srs_wkt (p, 11, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"30166\"]]"); p = add_epsg_def_ex (filter, first, last, 30167, "epsg", 30167, "Tokyo / Japan Plane Rectangular CS VII", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); add_proj4text (p, 2, "80.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS VII\",GEOGCS"); add_srs_wkt (p, 1, "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",36],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",137.1666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"30167\"]]"); p = add_epsg_def_ex (filter, first, last, 30168, "epsg", 30168, "Tokyo / Japan Plane Rectangular CS VIII", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS VIII\",GEOGC"); add_srs_wkt (p, 1, "S[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",637"); add_srs_wkt (p, 2, "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS"); add_srs_wkt (p, 3, "84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",36"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",138.5],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"30168\"]]"); p = add_epsg_def_ex (filter, first, last, 30169, "epsg", 30169, "Tokyo / Japan Plane Rectangular CS IX", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); add_proj4text (p, 2, "80.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS IX\",GEOGCS["); add_srs_wkt (p, 1, "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); add_srs_wkt (p, 2, "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); add_srs_wkt (p, 3, "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",36],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",139.8333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"30169\"]]"); p = add_epsg_def_ex (filter, first, last, 30170, "epsg", 30170, "Tokyo / Japan Plane Rectangular CS X", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=bessel +towgs84=-146.414,507.337,6"); add_proj4text (p, 2, "80.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS X\",GEOGCS[\""); add_srs_wkt (p, 1, "Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397"); add_srs_wkt (p, 2, ".155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-"); add_srs_wkt (p, 3, "146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"63"); add_srs_wkt (p, 4, "01\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",40],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",140.8333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.9999],PARAMETER[\"false_easting\",0]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 13, "T],AUTHORITY[\"EPSG\",\"30170\"]]"); p = add_epsg_def_ex (filter, first, last, 30171, "epsg", 30171, "Tokyo / Japan Plane Rectangular CS XI", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_"); add_proj4text (p, 1, "0=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS XI\",GEOGCS["); add_srs_wkt (p, 1, "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); add_srs_wkt (p, 2, "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); add_srs_wkt (p, 3, "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",44],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",140.25],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"30171\"]]"); p = add_epsg_def_ex (filter, first, last, 30172, "epsg", 30172, "Tokyo / Japan Plane Rectangular CS XII", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_"); add_proj4text (p, 1, "0=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS XII\",GEOGCS"); add_srs_wkt (p, 1, "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",44],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",142.25],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"30172\"]]"); p = add_epsg_def_ex (filter, first, last, 30173, "epsg", 30173, "Tokyo / Japan Plane Rectangular CS XIII", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_"); add_proj4text (p, 1, "0=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS XIII\",GEOGC"); add_srs_wkt (p, 1, "S[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",637"); add_srs_wkt (p, 2, "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS"); add_srs_wkt (p, 3, "84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",44"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",144.25],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"30173\"]]"); p = add_epsg_def_ex (filter, first, last, 30174, "epsg", 30174, "Tokyo / Japan Plane Rectangular CS XIV", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS XIV\",GEOGCS"); add_srs_wkt (p, 1, "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",26],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",142],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER["); add_srs_wkt (p, 11, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"30174\"]]"); p = add_epsg_def_ex (filter, first, last, 30175, "epsg", 30175, "Tokyo / Japan Plane Rectangular CS XV", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS XV\",GEOGCS["); add_srs_wkt (p, 1, "\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63773"); add_srs_wkt (p, 2, "97.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84"); add_srs_wkt (p, 3, "[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",26],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",127.5],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"30175\"]]"); p = add_epsg_def_ex (filter, first, last, 30176, "epsg", 30176, "Tokyo / Japan Plane Rectangular CS XVI", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS XVI\",GEOGCS"); add_srs_wkt (p, 1, "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",26],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",124],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER["); add_srs_wkt (p, 11, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"30176\"]]"); p = add_epsg_def_ex (filter, first, last, 30177, "epsg", 30177, "Tokyo / Japan Plane Rectangular CS XVII", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS XVII\",GEOGC"); add_srs_wkt (p, 1, "S[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",637"); add_srs_wkt (p, 2, "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS"); add_srs_wkt (p, 3, "84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",26"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",131],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"30177\"]]"); p = add_epsg_def_ex (filter, first, last, 30178, "epsg", 30178, "Tokyo / Japan Plane Rectangular CS XVIII", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS XVIII\",GEOG"); add_srs_wkt (p, 1, "CS[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",63"); add_srs_wkt (p, 2, "77397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWG"); add_srs_wkt (p, 3, "S84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",136],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"30178\"]]"); p = add_epsg_def_ex (filter, first, last, 30179, "epsg", 30179, "Tokyo / Japan Plane Rectangular CS XIX", 0, 1, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / Japan Plane Rectangular CS XIX\",GEOGCS"); add_srs_wkt (p, 1, "[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377"); add_srs_wkt (p, 2, "397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4301\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",26],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",154],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9999],PARAMETER[\"false_easting\",0],PARAMETER["); add_srs_wkt (p, 11, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"30179\"]]"); p = add_epsg_def_ex (filter, first, last, 30200, "epsg", 30200, "Trinidad 1903 / Trinidad Grid", 0, 0, "Clarke 1858", "Greenwich", "Trinidad_1903", "Cassini_Soldner", "Clarke's link", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=cass +lat_0=10.44166666666667 +lon_0=-61.333333333"); add_proj4text (p, 1, "33334 +x_0=86501.46392051999 +y_0=65379.0134283 +a=63782"); add_proj4text (p, 2, "93.645208759 +b=6356617.987679838 +towgs84=-61.702,284.4"); add_proj4text (p, 3, "88,472.052,0,0,0,0 +to_meter=0.201166195164 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Trinidad 1903 / Trinidad Grid\",GEOGCS[\"Trinid"); add_srs_wkt (p, 1, "ad 1903\",DATUM[\"Trinidad_1903\",SPHEROID[\"Clarke 1858"); add_srs_wkt (p, 2, "\",6378293.645208759,294.2606763692606,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7007\"]],TOWGS84[-61.702,284.488,472.052,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6302\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4302\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 9, "_origin\",10.44166666666667],PARAMETER[\"central_meridia"); add_srs_wkt (p, 10, "n\",-61.33333333333334],PARAMETER[\"false_easting\",4300"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",325000],UNIT[\"Clarke's"); add_srs_wkt (p, 12, " link\",0.201166195164,AUTHORITY[\"EPSG\",\"9039\"]],AXI"); add_srs_wkt (p, 13, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"30200\"]]"); p = add_epsg_def_ex (filter, first, last, 30339, "epsg", 30339, "TC(1948) / UTM zone 39N", 0, 0, "Helmert 1906", "Greenwich", "Trucial_Coast_1948", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=helmert +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TC(1948) / UTM zone 39N\",GEOGCS[\"TC(1948)\",D"); add_srs_wkt (p, 1, "ATUM[\"Trucial_Coast_1948\",SPHEROID[\"Helmert 1906\",63"); add_srs_wkt (p, 2, "78200,298.3,AUTHORITY[\"EPSG\",\"7020\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6303\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4303\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",51],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"30339\"]]"); p = add_epsg_def_ex (filter, first, last, 30340, "epsg", 30340, "TC(1948) / UTM zone 40N", 0, 0, "Helmert 1906", "Greenwich", "Trucial_Coast_1948", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=40 +ellps=helmert +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TC(1948) / UTM zone 40N\",GEOGCS[\"TC(1948)\",D"); add_srs_wkt (p, 1, "ATUM[\"Trucial_Coast_1948\",SPHEROID[\"Helmert 1906\",63"); add_srs_wkt (p, 2, "78200,298.3,AUTHORITY[\"EPSG\",\"7020\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6303\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4303\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",0],PARAMETER[\"central_meridian\",57],PARAMETER[\"scale"); add_srs_wkt (p, 9, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"30340\"]]"); p = add_epsg_def_ex (filter, first, last, 30491, "epsg", 30491, "Voirol 1875 / Nord Algerie (ancienne)", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Voirol_1875", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.99962554"); add_proj4text (p, 1, "4 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs"); add_proj4text (p, 2, "84=-73,-247,227,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Voirol 1875 / Nord Algerie (ancienne)\",GEOGCS["); add_srs_wkt (p, 1, "\"Voirol 1875\",DATUM[\"Voirol_1875\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7011\"]],TOWGS84[-73,-247,227,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6304\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4304\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",36],PARAMETER[\"central_meridian\",2.7],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.999625544],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",500000],PARAMETER[\"false_northing\",300000],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"30491\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ���libspatialite-4.3.0a/src/srsinit/epsg_inlined_14.c��������������������������������������������������0000664�0001750�0001750�00000607216�12544707704�017050� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_14 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 3447, "epsg", 3447, "ETRS89 / Belgian Lambert 2005", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666"); add_proj4text (p, 1, "666 +lat_0=50.797815 +lon_0=4.359215833333333 +x_0=15032"); add_proj4text (p, 2, "8 +y_0=166262 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Belgian Lambert 2005\",GEOGCS[\"ETRS89"); add_srs_wkt (p, 1, "\",DATUM[\"European_Terrestrial_Reference_System_1989\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",49.83333333333334],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",51.16666666666666],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",50.797815],PARAMETER[\"central_meridian\",4.35921583"); add_srs_wkt (p, 12, "3333333],PARAMETER[\"false_easting\",150328],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",166262],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 15, "RITY[\"EPSG\",\"3447\"]]"); p = add_epsg_def_ex (filter, first, last, 3448, "epsg", 3448, "JAD2001 / Jamaica Metric Grid", 0, 0, "WGS 84", "Greenwich", "Jamaica_2001", "Lambert_Conformal_Conic_1SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=750"); add_proj4text (p, 1, "000 +y_0=650000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JAD2001 / Jamaica Metric Grid\",GEOGCS[\"JAD200"); add_srs_wkt (p, 1, "1\",DATUM[\"Jamaica_2001\",SPHEROID[\"WGS 84\",6378137,2"); add_srs_wkt (p, 2, "98.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6758\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4758\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",18],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",-77],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",750000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",650000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"3448\"]]"); p = add_epsg_def_ex (filter, first, last, 3449, "epsg", 3449, "JAD2001 / UTM zone 17N", 0, 0, "WGS 84", "Greenwich", "Jamaica_2001", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JAD2001 / UTM zone 17N\",GEOGCS[\"JAD2001\",DAT"); add_srs_wkt (p, 1, "UM[\"Jamaica_2001\",SPHEROID[\"WGS 84\",6378137,298.2572"); add_srs_wkt (p, 2, "23563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6758\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "58\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-8"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"344"); add_srs_wkt (p, 13, "9\"]]"); p = add_epsg_def_ex (filter, first, last, 3450, "epsg", 3450, "JAD2001 / UTM zone 18N", 0, 0, "WGS 84", "Greenwich", "Jamaica_2001", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JAD2001 / UTM zone 18N\",GEOGCS[\"JAD2001\",DAT"); add_srs_wkt (p, 1, "UM[\"Jamaica_2001\",SPHEROID[\"WGS 84\",6378137,298.2572"); add_srs_wkt (p, 2, "23563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6758\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "58\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-7"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"345"); add_srs_wkt (p, 13, "0\"]]"); p = add_epsg_def_ex (filter, first, last, 3451, "epsg", 3451, "NAD83 / Louisiana North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666"); add_proj4text (p, 1, "667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Louisiana North (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",32.6666"); add_srs_wkt (p, 9, "6666666666],PARAMETER[\"standard_parallel_2\",31.1666666"); add_srs_wkt (p, 10, "6666667],PARAMETER[\"latitude_of_origin\",30.5],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-92.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",3280833.333300001],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 13, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"3451\"]]"); p = add_epsg_def_ex (filter, first, last, 3452, "epsg", 3452, "NAD83 / Louisiana South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91"); add_proj4text (p, 1, ".33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Louisiana South (ftUS)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",30.7],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",29.3],PARAMETER[\"latit"); add_srs_wkt (p, 10, "ude_of_origin\",28.5],PARAMETER[\"central_meridian\",-91"); add_srs_wkt (p, 11, ".33333333333333],PARAMETER[\"false_easting\",3280833.333"); add_srs_wkt (p, 12, "300001],PARAMETER[\"false_northing\",0],UNIT[\"US survey"); add_srs_wkt (p, 13, " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); add_srs_wkt (p, 14, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "3452\"]]"); p = add_epsg_def_ex (filter, first, last, 3453, "epsg", 3453, "NAD83 / Louisiana Offshore (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.5 +lon_0=-91.33333333333333 +x_0=999999.99"); add_proj4text (p, 2, "99898402 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 3, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Louisiana Offshore (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",27.8"); add_srs_wkt (p, 9, "3333333333333],PARAMETER[\"standard_parallel_2\",26.1666"); add_srs_wkt (p, 10, "6666666667],PARAMETER[\"latitude_of_origin\",25.5],PARAM"); add_srs_wkt (p, 11, "ETER[\"central_meridian\",-91.33333333333333],PARAMETER["); add_srs_wkt (p, 12, "\"false_easting\",3280833.333300001],PARAMETER[\"false_n"); add_srs_wkt (p, 13, "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 15, ",NORTH],AUTHORITY[\"EPSG\",\"3453\"]]"); p = add_epsg_def_ex (filter, first, last, 3454, "epsg", 3454, "NAD83 / South Dakota North (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); add_proj4text (p, 1, ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); add_proj4text (p, 2, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / South Dakota North (ftUS) (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",44.4],PARAMETER[\"standard_parallel_2\",42.83333"); add_srs_wkt (p, 10, "333333334],PARAMETER[\"latitude_of_origin\",42.333333333"); add_srs_wkt (p, 11, "33334],PARAMETER[\"central_meridian\",-100.3333333333333"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",1968500],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 14, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 15, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3454\"]]"); p = add_epsg_def_ex (filter, first, last, 3455, "epsg", 3455, "NAD83 / South Dakota South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); add_proj4text (p, 1, ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); add_proj4text (p, 2, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / South Dakota South (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",44.4"); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_2\",42.83333333333334],P"); add_srs_wkt (p, 10, "ARAMETER[\"latitude_of_origin\",42.33333333333334],PARAM"); add_srs_wkt (p, 11, "ETER[\"central_meridian\",-100.3333333333333],PARAMETER["); add_srs_wkt (p, 12, "\"false_easting\",1968500],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"3455\"]]"); p = add_epsg_def_ex (filter, first, last, 3456, "epsg", 3456, "NAD83(HARN) / Louisiana North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666"); add_proj4text (p, 1, "667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Louisiana North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",32.66666666666666],PARAMETER[\"standard"); add_srs_wkt (p, 10, "_parallel_2\",31.16666666666667],PARAMETER[\"latitude_of"); add_srs_wkt (p, 11, "_origin\",30.5],PARAMETER[\"central_meridian\",-92.5],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_easting\",3280833.333300001],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 14, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 15, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3456\"]]"); p = add_epsg_def_ex (filter, first, last, 3457, "epsg", 3457, "NAD83(HARN) / Louisiana South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91"); add_proj4text (p, 1, ".33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Louisiana South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",30.7],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",29.3],PARAMETER[\"latitude_of_origin\",28.5],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-91.33333333333333],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_easting\",3280833.333300001],PARAMETER[\"false_northi"); add_srs_wkt (p, 13, "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 15, "TH],AUTHORITY[\"EPSG\",\"3457\"]]"); p = add_epsg_def_ex (filter, first, last, 3458, "epsg", 3458, "NAD83(HARN) / South Dakota North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666"); add_proj4text (p, 1, "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / South Dakota North (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_"); add_srs_wkt (p, 2, "Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_1\",45.68333333333333],PARAMETER[\"stan"); add_srs_wkt (p, 10, "dard_parallel_2\",44.41666666666666],PARAMETER[\"latitud"); add_srs_wkt (p, 11, "e_of_origin\",43.83333333333334],PARAMETER[\"central_mer"); add_srs_wkt (p, 12, "idian\",-100],PARAMETER[\"false_easting\",1968500],PARAM"); add_srs_wkt (p, 13, "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 14, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 15, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3458\"]]"); p = add_epsg_def_ex (filter, first, last, 3459, "epsg", 3459, "NAD83(HARN) / South Dakota South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); add_proj4text (p, 1, ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); add_proj4text (p, 2, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / South Dakota South (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_"); add_srs_wkt (p, 2, "Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_1\",44.4],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 10, "_2\",42.83333333333334],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",42.33333333333334],PARAMETER[\"central_meridian\",-100."); add_srs_wkt (p, 12, "3333333333333],PARAMETER[\"false_easting\",1968500],PARA"); add_srs_wkt (p, 13, "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 14, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 15, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3459\"]]"); p = add_epsg_def_ex (filter, first, last, 3460, "epsg", 3460, "Fiji 1986 / Fiji Map Grid", 0, 0, "WGS 72", "Greenwich", "Fiji_Geodetic_Datum_1986", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-17 +lon_0=178.75 +k=0.99985 +x_0=200"); add_proj4text (p, 1, "0000 +y_0=4000000 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 2, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Fiji 1986 / Fiji Map Grid\",GEOGCS[\"Fiji 1986\""); add_srs_wkt (p, 1, ",DATUM[\"Fiji_Geodetic_Datum_1986\",SPHEROID[\"WGS 72\","); add_srs_wkt (p, 2, "6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",4.5,0,0,0.554,0.2263],AUTHORITY[\"EPSG\",\"6720\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4720\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",-17],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",178.75],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "99985],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",4000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"3460\"]]"); p = add_epsg_def_ex (filter, first, last, 3461, "epsg", 3461, "Dabola 1981 / UTM zone 28N", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Dabola_1981", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-83,"); add_proj4text (p, 1, "37,124,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Dabola 1981 / UTM zone 28N\",GEOGCS[\"Dabola 19"); add_srs_wkt (p, 1, "81\",DATUM[\"Dabola_1981\",SPHEROID[\"Clarke 1880 (IGN)\""); add_srs_wkt (p, 2, ",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\""); add_srs_wkt (p, 3, "]],TOWGS84[-83,37,124,0,0,0,0],AUTHORITY[\"EPSG\",\"6155"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4155\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-15],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"3461\"]]"); p = add_epsg_def_ex (filter, first, last, 3462, "epsg", 3462, "Dabola 1981 / UTM zone 29N", 0, 0, "Clarke 1880 (IGN)", "Greenwich", "Dabola_1981", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-83,"); add_proj4text (p, 1, "37,124,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Dabola 1981 / UTM zone 29N\",GEOGCS[\"Dabola 19"); add_srs_wkt (p, 1, "81\",DATUM[\"Dabola_1981\",SPHEROID[\"Clarke 1880 (IGN)\""); add_srs_wkt (p, 2, ",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7011\""); add_srs_wkt (p, 3, "]],TOWGS84[-83,37,124,0,0,0,0],AUTHORITY[\"EPSG\",\"6155"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4155\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-9],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"3462\"]]"); p = add_epsg_def_ex (filter, first, last, 3463, "epsg", 3463, "NAD83 / Maine CS2000 Central", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=5"); add_proj4text (p, 1, "00000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine CS2000 Central\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",43.5],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-69.125],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".99998],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"3463\"]]"); p = add_epsg_def_ex (filter, first, last, 3464, "epsg", 3464, "NAD83(HARN) / Maine CS2000 Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=5"); add_proj4text (p, 1, "00000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine CS2000 Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",43.5],PARAMETER[\"central_meridian\",-69.125],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.99998],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 13, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3464\"]]"); p = add_epsg_def_ex (filter, first, last, 3465, "epsg", 3465, "NAD83(NSRS2007) / Alabama East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9"); add_proj4text (p, 1, "9996 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alabama East\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",30.5],PARAMETER[\"central_meridian\",-85.8"); add_srs_wkt (p, 10, "3333333333333],PARAMETER[\"scale_factor\",0.99996],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",200000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"34"); add_srs_wkt (p, 14, "65\"]]"); p = add_epsg_def_ex (filter, first, last, 3466, "epsg", 3466, "NAD83(NSRS2007) / Alabama West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=6"); add_proj4text (p, 1, "00000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alabama West\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",30],PARAMETER[\"central_meridian\",-87.5],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.999933333],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",600000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3466\"]]"); p = add_epsg_def_ex (filter, first, last, 3467, "epsg", 3467, "NAD83(NSRS2007) / Alaska Albers", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska Albers\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Albers_Conic_Equal_Area\"],PARAMETER[\"st"); add_srs_wkt (p, 9, "andard_parallel_1\",55],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",65],PARAMETER[\"latitude_of_center\",50],PARAMETER[\"lo"); add_srs_wkt (p, 11, "ngitude_of_center\",-154],PARAMETER[\"false_easting\",0]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"3467\"]]"); p = add_epsg_def_ex (filter, first, last, 3468, "epsg", 3468, "NAD83(NSRS2007) / Alaska zone 1", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Hotine_Oblique_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32"); add_proj4text (p, 1, "3.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +no"); add_proj4text (p, 2, "_uoff +gamma=323.1301023611111 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 3, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 1\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Hotine_Oblique_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_center\",57],PARAMETER[\"longitude_of_center\""); add_srs_wkt (p, 10, ",-133.6666666666667],PARAMETER[\"azimuth\",323.130102361"); add_srs_wkt (p, 11, "1111],PARAMETER[\"rectified_grid_angle\",323.13010236111"); add_srs_wkt (p, 12, "11],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false"); add_srs_wkt (p, 13, "_easting\",5000000],PARAMETER[\"false_northing\",-500000"); add_srs_wkt (p, 14, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 15, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3468\"]"); add_srs_wkt (p, 16, "]"); p = add_epsg_def_ex (filter, first, last, 3469, "epsg", 3469, "NAD83(NSRS2007) / Alaska zone 2", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 2\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",54],PARAMETER[\"central_meridian\",-142],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3469\"]]"); p = add_epsg_def_ex (filter, first, last, 3470, "epsg", 3470, "NAD83(NSRS2007) / Alaska zone 3", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 3\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",54],PARAMETER[\"central_meridian\",-146],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3470\"]]"); p = add_epsg_def_ex (filter, first, last, 3471, "epsg", 3471, "NAD83(NSRS2007) / Alaska zone 4", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 4\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",54],PARAMETER[\"central_meridian\",-150],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3471\"]]"); p = add_epsg_def_ex (filter, first, last, 3472, "epsg", 3472, "NAD83(NSRS2007) / Alaska zone 5", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 5\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",54],PARAMETER[\"central_meridian\",-154],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3472\"]]"); p = add_epsg_def_ex (filter, first, last, 3473, "epsg", 3473, "NAD83(NSRS2007) / Alaska zone 6", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 6\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",54],PARAMETER[\"central_meridian\",-158],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3473\"]]"); p = add_epsg_def_ex (filter, first, last, 3474, "epsg", 3474, "NAD83(NSRS2007) / Alaska zone 7", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 7\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",54],PARAMETER[\"central_meridian\",-162],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3474\"]]"); p = add_epsg_def_ex (filter, first, last, 3475, "epsg", 3475, "NAD83(NSRS2007) / Alaska zone 8", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 8\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",54],PARAMETER[\"central_meridian\",-166],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3475\"]]"); p = add_epsg_def_ex (filter, first, last, 3476, "epsg", 3476, "NAD83(NSRS2007) / Alaska zone 9", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 9\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",54],PARAMETER[\"central_meridian\",-170],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3476\"]]"); p = add_epsg_def_ex (filter, first, last, 3477, "epsg", 3477, "NAD83(NSRS2007) / Alaska zone 10", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333"); add_proj4text (p, 1, "334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Alaska zone 10\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",53.83333333333334],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",51.83333333333334],PARAMETER[\"lat"); add_srs_wkt (p, 11, "itude_of_origin\",51],PARAMETER[\"central_meridian\",-17"); add_srs_wkt (p, 12, "6],PARAMETER[\"false_easting\",1000000],PARAMETER[\"fals"); add_srs_wkt (p, 13, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 14, "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 15, "SG\",\"3477\"]]"); p = add_epsg_def_ex (filter, first, last, 3478, "epsg", 3478, "NAD83(NSRS2007) / Arizona Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arizona Central\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",31],PARAMETER[\"central_meridian\",-111."); add_srs_wkt (p, 10, "9166666666667],PARAMETER[\"scale_factor\",0.9999],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",213360],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"347"); add_srs_wkt (p, 14, "8\"]]"); p = add_epsg_def_ex (filter, first, last, 3479, "epsg", 3479, "NAD83(NSRS2007) / Arizona Central (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arizona Central (ft)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",31],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 10, "-111.9166666666667],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",700000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "2\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"3479\"]]"); p = add_epsg_def_ex (filter, first, last, 3480, "epsg", 3480, "NAD83(NSRS2007) / Arizona East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arizona East\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",31],PARAMETER[\"central_meridian\",-110.16"); add_srs_wkt (p, 10, "66666666667],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",213360],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3480\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3481, "epsg", 3481, "NAD83(NSRS2007) / Arizona East (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arizona East (ft)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",31],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 10, "10.1666666666667],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",700000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"3481\"]]"); p = add_epsg_def_ex (filter, first, last, 3482, "epsg", 3482, "NAD83(NSRS2007) / Arizona West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, "=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arizona West\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",31],PARAMETER[\"central_meridian\",-113.75"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.999933333],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",213360],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3482\"]]"); p = add_epsg_def_ex (filter, first, last, 3483, "epsg", 3483, "NAD83(NSRS2007) / Arizona West (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, "=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arizona West (ft)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",31],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 10, "13.75],PARAMETER[\"scale_factor\",0.999933333],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",700000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"34"); add_srs_wkt (p, 14, "83\"]]"); p = add_epsg_def_ex (filter, first, last, 3484, "epsg", 3484, "NAD83(NSRS2007) / Arkansas North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arkansas North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",36.23333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",34.93333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 11, "itude_of_origin\",34.33333333333334],PARAMETER[\"central"); add_srs_wkt (p, 12, "_meridian\",-92],PARAMETER[\"false_easting\",400000],PAR"); add_srs_wkt (p, 13, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"3484\"]]"); p = add_epsg_def_ex (filter, first, last, 3485, "epsg", 3485, "NAD83(NSRS2007) / Arkansas North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.9999"); add_proj4text (p, 2, "8984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=u"); add_proj4text (p, 3, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arkansas North (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",36.23333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",34.93333333333333],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",34.33333333333334],PARAMETER[\"c"); add_srs_wkt (p, 12, "entral_meridian\",-92],PARAMETER[\"false_easting\",13123"); add_srs_wkt (p, 13, "33.3333],PARAMETER[\"false_northing\",0],UNIT[\"US surve"); add_srs_wkt (p, 14, "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); add_srs_wkt (p, 15, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 16, "\"3485\"]]"); p = add_epsg_def_ex (filter, first, last, 3486, "epsg", 3486, "NAD83(NSRS2007) / Arkansas South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, ".66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arkansas South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",34.76666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",33.3],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 11, "in\",32.66666666666666],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 12, "92],PARAMETER[\"false_easting\",400000],PARAMETER[\"fals"); add_srs_wkt (p, 13, "e_northing\",400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"3486\"]]"); p = add_epsg_def_ex (filter, first, last, 3487, "epsg", 3487, "NAD83(NSRS2007) / Arkansas South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, ".66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399"); add_proj4text (p, 2, "999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 3, "us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Arkansas South (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",34.76666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",33.3],PARAMETER[\"latitude_o"); add_srs_wkt (p, 11, "f_origin\",32.66666666666666],PARAMETER[\"central_meridi"); add_srs_wkt (p, 12, "an\",-92],PARAMETER[\"false_easting\",1312333.3333],PARA"); add_srs_wkt (p, 13, "METER[\"false_northing\",1312333.3333],UNIT[\"US survey "); add_srs_wkt (p, 14, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 15, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 16, "3487\"]]"); p = add_epsg_def_ex (filter, first, last, 3488, "epsg", 3488, "NAD83(NSRS2007) / California Albers", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_"); add_proj4text (p, 1, "0=0 +y_0=-4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California Albers\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Albers_Conic_Equal_Area\"],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_1\",34],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",40.5],PARAMETER[\"latitude_of_center\",0],PARAMETE"); add_srs_wkt (p, 11, "R[\"longitude_of_center\",-120],PARAMETER[\"false_eastin"); add_srs_wkt (p, 12, "g\",0],PARAMETER[\"false_northing\",-4000000],UNIT[\"met"); add_srs_wkt (p, 13, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3488\"]]"); p = add_epsg_def_ex (filter, first, last, 3489, "epsg", 3489, "NAD83(NSRS2007) / California zone 1", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, "3333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 1\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",41.66666666666666],PARAMETER"); add_srs_wkt (p, 10, "[\"standard_parallel_2\",40],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 11, "gin\",39.33333333333334],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 12, "-122],PARAMETER[\"false_easting\",2000000],PARAMETER[\"f"); add_srs_wkt (p, 13, "alse_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 15, "ITY[\"EPSG\",\"3489\"]]"); p = add_epsg_def_ex (filter, first, last, 3490, "epsg", 3490, "NAD83(NSRS2007) / California zone 1 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, "3333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=5000"); add_proj4text (p, 2, "00.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 1 (ftUS)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); add_srs_wkt (p, 2, "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_1\",41.66666666666666],PAR"); add_srs_wkt (p, 10, "AMETER[\"standard_parallel_2\",40],PARAMETER[\"latitude_"); add_srs_wkt (p, 11, "of_origin\",39.33333333333334],PARAMETER[\"central_merid"); add_srs_wkt (p, 12, "ian\",-122],PARAMETER[\"false_easting\",6561666.667],PAR"); add_srs_wkt (p, 13, "AMETER[\"false_northing\",1640416.667],UNIT[\"US survey "); add_srs_wkt (p, 14, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 15, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 16, "3490\"]]"); p = add_epsg_def_ex (filter, first, last, 3491, "epsg", 3491, "NAD83(NSRS2007) / California zone 2", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y"); add_proj4text (p, 2, "_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 2\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",39.83333333333334],PARAMETER"); add_srs_wkt (p, 10, "[\"standard_parallel_2\",38.33333333333334],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",37.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 12, "ral_meridian\",-122],PARAMETER[\"false_easting\",2000000"); add_srs_wkt (p, 13, "],PARAMETER[\"false_northing\",500000],UNIT[\"metre\",1,"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 15, ",NORTH],AUTHORITY[\"EPSG\",\"3491\"]]"); p = add_epsg_def_ex (filter, first, last, 3492, "epsg", 3492, "NAD83(NSRS2007) / California zone 2 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.00"); add_proj4text (p, 2, "01016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0"); add_proj4text (p, 3, ",0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 2 (ftUS)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); add_srs_wkt (p, 2, "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_1\",39.83333333333334],PAR"); add_srs_wkt (p, 10, "AMETER[\"standard_parallel_2\",38.33333333333334],PARAME"); add_srs_wkt (p, 11, "TER[\"latitude_of_origin\",37.66666666666666],PARAMETER["); add_srs_wkt (p, 12, "\"central_meridian\",-122],PARAMETER[\"false_easting\",6"); add_srs_wkt (p, 13, "561666.667],PARAMETER[\"false_northing\",1640416.667],UN"); add_srs_wkt (p, 14, "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 15, "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 16, "ITY[\"EPSG\",\"3492\"]]"); p = add_epsg_def_ex (filter, first, last, 3493, "epsg", 3493, "NAD83(NSRS2007) / California zone 3", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 3\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",38.43333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"standard_parallel_2\",37.06666666666667],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",36.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 12, ",-120.5],PARAMETER[\"false_easting\",2000000],PARAMETER["); add_srs_wkt (p, 13, "\"false_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 15, "HORITY[\"EPSG\",\"3493\"]]"); p = add_epsg_def_ex (filter, first, last, 3494, "epsg", 3494, "NAD83(NSRS2007) / California zone 3 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0="); add_proj4text (p, 2, "500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 3, "nits=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 3 (ftUS)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); add_srs_wkt (p, 2, "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_1\",38.43333333333333],PAR"); add_srs_wkt (p, 10, "AMETER[\"standard_parallel_2\",37.06666666666667],PARAME"); add_srs_wkt (p, 11, "TER[\"latitude_of_origin\",36.5],PARAMETER[\"central_mer"); add_srs_wkt (p, 12, "idian\",-120.5],PARAMETER[\"false_easting\",6561666.667]"); add_srs_wkt (p, 13, ",PARAMETER[\"false_northing\",1640416.667],UNIT[\"US sur"); add_srs_wkt (p, 14, "vey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 15, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 16, ",\"3494\"]]"); p = add_epsg_def_ex (filter, first, last, 3495, "epsg", 3495, "NAD83(NSRS2007) / California zone 4", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, "4 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 4\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",37.25],PARAMETER[\"standard_"); add_srs_wkt (p, 10, "parallel_2\",36],PARAMETER[\"latitude_of_origin\",35.333"); add_srs_wkt (p, 11, "33333333334],PARAMETER[\"central_meridian\",-119],PARAME"); add_srs_wkt (p, 12, "TER[\"false_easting\",2000000],PARAMETER[\"false_northin"); add_srs_wkt (p, 13, "g\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"3495\"]]"); p = add_epsg_def_ex (filter, first, last, 3496, "epsg", 3496, "NAD83(NSRS2007) / California zone 4 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, "4 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.000101600"); add_proj4text (p, 2, "1 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 4 (ftUS)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); add_srs_wkt (p, 2, "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_1\",37.25],PARAMETER[\"sta"); add_srs_wkt (p, 10, "ndard_parallel_2\",36],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 11, "35.33333333333334],PARAMETER[\"central_meridian\",-119],"); add_srs_wkt (p, 12, "PARAMETER[\"false_easting\",6561666.667],PARAMETER[\"fal"); add_srs_wkt (p, 13, "se_northing\",1640416.667],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 14, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 15, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3496\"]]"); p = add_epsg_def_ex (filter, first, last, 3497, "epsg", 3497, "NAD83(NSRS2007) / California zone 5", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 5\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",35.46666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"standard_parallel_2\",34.03333333333333],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",33.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 12, ",-118],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 15, "RITY[\"EPSG\",\"3497\"]]"); p = add_epsg_def_ex (filter, first, last, 3498, "epsg", 3498, "NAD83(NSRS2007) / California zone 5 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=50"); add_proj4text (p, 2, "0000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 3, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 5 (ftUS)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); add_srs_wkt (p, 2, "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_1\",35.46666666666667],PAR"); add_srs_wkt (p, 10, "AMETER[\"standard_parallel_2\",34.03333333333333],PARAME"); add_srs_wkt (p, 11, "TER[\"latitude_of_origin\",33.5],PARAMETER[\"central_mer"); add_srs_wkt (p, 12, "idian\",-118],PARAMETER[\"false_easting\",6561666.667],P"); add_srs_wkt (p, 13, "ARAMETER[\"false_northing\",1640416.667],UNIT[\"US surve"); add_srs_wkt (p, 14, "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); add_srs_wkt (p, 15, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 16, "\"3498\"]]"); p = add_epsg_def_ex (filter, first, last, 3499, "epsg", 3499, "NAD83(NSRS2007) / California zone 6", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000"); add_proj4text (p, 2, " +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 3, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 6\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",33.88333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"standard_parallel_2\",32.78333333333333],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",32.16666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 12, "ral_meridian\",-116.25],PARAMETER[\"false_easting\",2000"); add_srs_wkt (p, 13, "000],PARAMETER[\"false_northing\",500000],UNIT[\"metre\""); add_srs_wkt (p, 14, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 15, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3499\"]]"); p = add_epsg_def_ex (filter, first, last, 3500, "epsg", 3500, "NAD83(NSRS2007) / California zone 6 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000"); add_proj4text (p, 2, ".0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 3, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / California zone 6 (ftUS)\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_"); add_srs_wkt (p, 2, "Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 3, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_1\",33.88333333333333],PAR"); add_srs_wkt (p, 10, "AMETER[\"standard_parallel_2\",32.78333333333333],PARAME"); add_srs_wkt (p, 11, "TER[\"latitude_of_origin\",32.16666666666666],PARAMETER["); add_srs_wkt (p, 12, "\"central_meridian\",-116.25],PARAMETER[\"false_easting\""); add_srs_wkt (p, 13, ",6561666.667],PARAMETER[\"false_northing\",1640416.667],"); add_srs_wkt (p, 14, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 16, "ORITY[\"EPSG\",\"3500\"]]"); p = add_epsg_def_ex (filter, first, last, 3501, "epsg", 3501, "NAD83(NSRS2007) / Colorado Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, "3334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Colorado Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 9, "ER[\"standard_parallel_1\",39.75],PARAMETER[\"standard_p"); add_srs_wkt (p, 10, "arallel_2\",38.45],PARAMETER[\"latitude_of_origin\",37.8"); add_srs_wkt (p, 11, "3333333333334],PARAMETER[\"central_meridian\",-105.5],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_easting\",914401.8289],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",304800.6096],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 15, "RITY[\"EPSG\",\"3501\"]]"); p = add_epsg_def_ex (filter, first, last, 3502, "epsg", 3502, "NAD83(NSRS2007) / Colorado Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, "3334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.60"); add_proj4text (p, 2, "96012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Colorado Central (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 7, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_1\",39.75],PARAMETER[\"sta"); add_srs_wkt (p, 10, "ndard_parallel_2\",38.45],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 11, "\",37.83333333333334],PARAMETER[\"central_meridian\",-10"); add_srs_wkt (p, 12, "5.5],PARAMETER[\"false_easting\",3000000],PARAMETER[\"fa"); add_srs_wkt (p, 13, "lse_northing\",1000000],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 14, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 15, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3502\"]]"); p = add_epsg_def_ex (filter, first, last, 3503, "epsg", 3503, "NAD83(NSRS2007) / Colorado North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666"); add_proj4text (p, 1, "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 3, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Colorado North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",40.78333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",39.71666666666667],PARAMETER[\"lat"); add_srs_wkt (p, 11, "itude_of_origin\",39.33333333333334],PARAMETER[\"central"); add_srs_wkt (p, 12, "_meridian\",-105.5],PARAMETER[\"false_easting\",914401.8"); add_srs_wkt (p, 13, "289],PARAMETER[\"false_northing\",304800.6096],UNIT[\"me"); add_srs_wkt (p, 14, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 15, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3503\"]]"); p = add_epsg_def_ex (filter, first, last, 3504, "epsg", 3504, "NAD83(NSRS2007) / Colorado North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666"); add_proj4text (p, 1, "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 3, ",0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Colorado North (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",40.78333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",39.71666666666667],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",39.33333333333334],PARAMETER[\"c"); add_srs_wkt (p, 12, "entral_meridian\",-105.5],PARAMETER[\"false_easting\",30"); add_srs_wkt (p, 13, "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"US s"); add_srs_wkt (p, 14, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 15, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"3504\"]]"); p = add_epsg_def_ex (filter, first, last, 3505, "epsg", 3505, "NAD83(NSRS2007) / Colorado South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 3, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Colorado South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",38.43333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",37.23333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 11, "itude_of_origin\",36.66666666666666],PARAMETER[\"central"); add_srs_wkt (p, 12, "_meridian\",-105.5],PARAMETER[\"false_easting\",914401.8"); add_srs_wkt (p, 13, "289],PARAMETER[\"false_northing\",304800.6096],UNIT[\"me"); add_srs_wkt (p, 14, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 15, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3505\"]]"); p = add_epsg_def_ex (filter, first, last, 3506, "epsg", 3506, "NAD83(NSRS2007) / Colorado South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 3, ",0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Colorado South (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",38.43333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",37.23333333333333],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",36.66666666666666],PARAMETER[\"c"); add_srs_wkt (p, 12, "entral_meridian\",-105.5],PARAMETER[\"false_easting\",30"); add_srs_wkt (p, 13, "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"US s"); add_srs_wkt (p, 14, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 15, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"3506\"]]"); p = add_epsg_def_ex (filter, first, last, 3507, "epsg", 3507, "NAD83(NSRS2007) / Connecticut", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, ".83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=1524"); add_proj4text (p, 2, "00.3048 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Connecticut\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",41.86666666666667],PARAMETER[\"sta"); add_srs_wkt (p, 10, "ndard_parallel_2\",41.2],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",40.83333333333334],PARAMETER[\"central_meridian\",-72.7"); add_srs_wkt (p, 12, "5],PARAMETER[\"false_easting\",304800.6096],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",152400.3048],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 15, "AUTHORITY[\"EPSG\",\"3507\"]]"); p = add_epsg_def_ex (filter, first, last, 3508, "epsg", 3508, "NAD83(NSRS2007) / Connecticut (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, ".83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_"); add_proj4text (p, 2, "0=152400.3048006096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 3, "+units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Connecticut (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",41.86666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"standard_parallel_2\",41.2],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 11, "rigin\",40.83333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 12, ",-72.75],PARAMETER[\"false_easting\",1000000],PARAMETER["); add_srs_wkt (p, 13, "\"false_northing\",500000],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 14, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 15, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3508\"]]"); p = add_epsg_def_ex (filter, first, last, 3509, "epsg", 3509, "NAD83(NSRS2007) / Delaware", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, "995 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Delaware\",GEOGCS[\"NAD83(NSR"); add_srs_wkt (p, 1, "S2007)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, "_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 9, "_origin\",38],PARAMETER[\"central_meridian\",-75.4166666"); add_srs_wkt (p, 10, "6666667],PARAMETER[\"scale_factor\",0.999995],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",200000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 12, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3509\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3510, "epsg", 3510, "NAD83(NSRS2007) / Delaware (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, "995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Delaware (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",38],PARAMETER[\"central_meridian\",-75.4"); add_srs_wkt (p, 10, "1666666666667],PARAMETER[\"scale_factor\",0.999995],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",656166.667],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",0],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"3510\"]]"); p = add_epsg_def_ex (filter, first, last, 3511, "epsg", 3511, "NAD83(NSRS2007) / Florida East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Florida East\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",24.33333333333333],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",-81],PARAMETER[\"scale_factor\",0.999941177],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",200000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "3511\"]]"); p = add_epsg_def_ex (filter, first, last, 3512, "epsg", 3512, "NAD83(NSRS2007) / Florida East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs"); add_proj4text (p, 2, "84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Florida East (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",24.33333333333333],PARAMETER[\"centr"); add_srs_wkt (p, 10, "al_meridian\",-81],PARAMETER[\"scale_factor\",0.99994117"); add_srs_wkt (p, 11, "7],PARAMETER[\"false_easting\",656166.667],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",0],UNIT[\"US survey foot\",0.30480060960"); add_srs_wkt (p, 13, "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3512\"]]"); p = add_epsg_def_ex (filter, first, last, 3513, "epsg", 3513, "NAD83(NSRS2007) / Florida GDL Albers", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_"); add_proj4text (p, 1, "0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Florida GDL Albers\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Albers_Conic_Equal_Area\"],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_1\",24],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",31.5],PARAMETER[\"latitude_of_center\",24],PARAMET"); add_srs_wkt (p, 11, "ER[\"longitude_of_center\",-84],PARAMETER[\"false_eastin"); add_srs_wkt (p, 12, "g\",400000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 13, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 14, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3513\"]]"); p = add_epsg_def_ex (filter, first, last, 3514, "epsg", 3514, "NAD83(NSRS2007) / Florida North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Florida North\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_1\",30.75],PARAMETER[\"standard_para"); add_srs_wkt (p, 10, "llel_2\",29.58333333333333],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 11, "in\",29],PARAMETER[\"central_meridian\",-84.5],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",600000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3514\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 3515, "epsg", 3515, "NAD83(NSRS2007) / Florida North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Florida North (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",30.75],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",29.58333333333333],PARAMETER[\"latitude_"); add_srs_wkt (p, 11, "of_origin\",29],PARAMETER[\"central_meridian\",-84.5],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_easting\",1968500],PARAMETER[\"false_nor"); add_srs_wkt (p, 13, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 14, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 15, "NORTH],AUTHORITY[\"EPSG\",\"3515\"]]"); p = add_epsg_def_ex (filter, first, last, 3516, "epsg", 3516, "NAD83(NSRS2007) / Florida West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Florida West\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",24.33333333333333],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",-82],PARAMETER[\"scale_factor\",0.999941177],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",200000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "3516\"]]"); p = add_epsg_def_ex (filter, first, last, 3517, "epsg", 3517, "NAD83(NSRS2007) / Florida West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs"); add_proj4text (p, 2, "84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Florida West (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",24.33333333333333],PARAMETER[\"centr"); add_srs_wkt (p, 10, "al_meridian\",-82],PARAMETER[\"scale_factor\",0.99994117"); add_srs_wkt (p, 11, "7],PARAMETER[\"false_easting\",656166.667],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",0],UNIT[\"US survey foot\",0.30480060960"); add_srs_wkt (p, 13, "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3517\"]]"); p = add_epsg_def_ex (filter, first, last, 3518, "epsg", 3518, "NAD83(NSRS2007) / Georgia East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Georgia East\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",30],PARAMETER[\"central_meridian\",-82.166"); add_srs_wkt (p, 10, "66666666667],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",200000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3518\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3519, "epsg", 3519, "NAD83(NSRS2007) / Georgia East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 2, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Georgia East (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",30],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 10, "82.16666666666667],PARAMETER[\"scale_factor\",0.9999],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",656166.667],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",0],UNIT[\"US survey foot\",0.3048006096012192"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"3519\"]]"); p = add_epsg_def_ex (filter, first, last, 3520, "epsg", 3520, "NAD83(NSRS2007) / Georgia West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Georgia West\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",30],PARAMETER[\"central_meridian\",-84.166"); add_srs_wkt (p, 10, "66666666667],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",700000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3520\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3521, "epsg", 3521, "NAD83(NSRS2007) / Georgia West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,"); add_proj4text (p, 2, "0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Georgia West (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",30],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 10, "84.16666666666667],PARAMETER[\"scale_factor\",0.9999],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",2296583.333],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 13, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3521\"]]"); p = add_epsg_def_ex (filter, first, last, 3522, "epsg", 3522, "NAD83(NSRS2007) / Idaho Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, "99473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Idaho Central\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",41.66666666666666],PARAMETER[\"central_me"); add_srs_wkt (p, 10, "ridian\",-114],PARAMETER[\"scale_factor\",0.999947368],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"3522\"]]"); p = add_epsg_def_ex (filter, first, last, 3523, "epsg", 3523, "NAD83(NSRS2007) / Idaho Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, "99473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, "0 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Idaho Central (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",41.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 10, "ral_meridian\",-114],PARAMETER[\"scale_factor\",0.999947"); add_srs_wkt (p, 11, "368],PARAMETER[\"false_easting\",1640416.667],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 13, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 14, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3523\"]]"); p = add_epsg_def_ex (filter, first, last, 3524, "epsg", 3524, "NAD83(NSRS2007) / Idaho East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, "666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Idaho East\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",41.66666666666666],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-112.1666666666667],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 11, "99947368],PARAMETER[\"false_easting\",200000],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"3524\"]]"); p = add_epsg_def_ex (filter, first, last, 3525, "epsg", 3525, "NAD83(NSRS2007) / Idaho East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, "666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Idaho East (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",41.66666666666666],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",-112.1666666666667],PARAMETER[\"scale_facto"); add_srs_wkt (p, 11, "r\",0.999947368],PARAMETER[\"false_easting\",656166.667]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 13, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3525\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 3526, "epsg", 3526, "NAD83(NSRS2007) / Idaho West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, ".999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Idaho West\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",41.66666666666666],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-115.75],PARAMETER[\"scale_factor\",0.999933333],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",800000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"3526\"]]"); p = add_epsg_def_ex (filter, first, last, 3527, "epsg", 3527, "NAD83(NSRS2007) / Idaho West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, ".999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Idaho West (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",41.66666666666666],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",-115.75],PARAMETER[\"scale_factor\",0.99993"); add_srs_wkt (p, 11, "3333],PARAMETER[\"false_easting\",2624666.667],PARAMETER"); add_srs_wkt (p, 12, "[\"false_northing\",0],UNIT[\"US survey foot\",0.3048006"); add_srs_wkt (p, 13, "096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3527\"]]"); p = add_epsg_def_ex (filter, first, last, 3528, "epsg", 3528, "NAD83(NSRS2007) / Illinois East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, "333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Illinois East\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",36.66666666666666],PARAMETER[\"central_me"); add_srs_wkt (p, 10, "ridian\",-88.33333333333333],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 11, "0.999975],PARAMETER[\"false_easting\",300000],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"3528\"]]"); p = add_epsg_def_ex (filter, first, last, 3529, "epsg", 3529, "NAD83(NSRS2007) / Illinois East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, "333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Illinois East (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",36.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 10, "ral_meridian\",-88.33333333333333],PARAMETER[\"scale_fac"); add_srs_wkt (p, 11, "tor\",0.999975],PARAMETER[\"false_easting\",984250.00000"); add_srs_wkt (p, 12, "00002],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); add_srs_wkt (p, 13, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 14, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "3529\"]]"); p = add_epsg_def_ex (filter, first, last, 3530, "epsg", 3530, "NAD83(NSRS2007) / Illinois West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, "666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Illinois West\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",36.66666666666666],PARAMETER[\"central_me"); add_srs_wkt (p, 10, "ridian\",-90.16666666666667],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 11, "0.999941177],PARAMETER[\"false_easting\",700000],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"3530\"]]"); p = add_epsg_def_ex (filter, first, last, 3531, "epsg", 3531, "NAD83(NSRS2007) / Illinois West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, "666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Illinois West (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",36.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 10, "ral_meridian\",-90.16666666666667],PARAMETER[\"scale_fac"); add_srs_wkt (p, 11, "tor\",0.999941177],PARAMETER[\"false_easting\",2296583.3"); add_srs_wkt (p, 12, "33300001],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 13, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"3531\"]]"); p = add_epsg_def_ex (filter, first, last, 3532, "epsg", 3532, "NAD83(NSRS2007) / Indiana East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 2, ",0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Indiana East\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",37.5],PARAMETER[\"central_meridian\",-85.6"); add_srs_wkt (p, 10, "6666666666667],PARAMETER[\"scale_factor\",0.999966667],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",100000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",250000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"3532\"]]"); p = add_epsg_def_ex (filter, first, last, 3533, "epsg", 3533, "NAD83(NSRS2007) / Indiana East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Indiana East (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",37.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-85.66666666666667],PARAMETER[\"scale_factor\",0.999966"); add_srs_wkt (p, 11, "667],PARAMETER[\"false_easting\",328083.333],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",820208.3330000002],UNIT[\"US survey foo"); add_srs_wkt (p, 13, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"353"); add_srs_wkt (p, 15, "3\"]]"); p = add_epsg_def_ex (filter, first, last, 3534, "epsg", 3534, "NAD83(NSRS2007) / Indiana West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 2, ",0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Indiana West\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",37.5],PARAMETER[\"central_meridian\",-87.0"); add_srs_wkt (p, 10, "8333333333333],PARAMETER[\"scale_factor\",0.999966667],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",900000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",250000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"3534\"]]"); p = add_epsg_def_ex (filter, first, last, 3535, "epsg", 3535, "NAD83(NSRS2007) / Indiana West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Indiana West (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",37.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-87.08333333333333],PARAMETER[\"scale_factor\",0.999966"); add_srs_wkt (p, 11, "667],PARAMETER[\"false_easting\",2952750],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",820208.3330000002],UNIT[\"US survey foot\""); add_srs_wkt (p, 13, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3535\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 3536, "epsg", 3536, "NAD83(NSRS2007) / Iowa North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Iowa North\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_1\",43.26666666666667],PARAMETER[\"stan"); add_srs_wkt (p, 10, "dard_parallel_2\",42.06666666666667],PARAMETER[\"latitud"); add_srs_wkt (p, 11, "e_of_origin\",41.5],PARAMETER[\"central_meridian\",-93.5"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",1500000],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"3536\"]]"); p = add_epsg_def_ex (filter, first, last, 3537, "epsg", 3537, "NAD83(NSRS2007) / Iowa North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.99"); add_proj4text (p, 2, "99898402 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Iowa North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",43.26666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"standard_parallel_2\",42.06666666666667],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",41.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 12, ",-93.5],PARAMETER[\"false_easting\",4921250],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",3280833.333300001],UNIT[\"US survey foo"); add_srs_wkt (p, 14, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 15, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"353"); add_srs_wkt (p, 16, "7\"]]"); p = add_epsg_def_ex (filter, first, last, 3538, "epsg", 3538, "NAD83(NSRS2007) / Iowa South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, "667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Iowa South\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_1\",41.78333333333333],PARAMETER[\"stan"); add_srs_wkt (p, 10, "dard_parallel_2\",40.61666666666667],PARAMETER[\"latitud"); add_srs_wkt (p, 11, "e_of_origin\",40],PARAMETER[\"central_meridian\",-93.5],"); add_srs_wkt (p, 12, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 13, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"3538\"]]"); p = add_epsg_def_ex (filter, first, last, 3539, "epsg", 3539, "NAD83(NSRS2007) / Iowa South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, "667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Iowa South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",41.78333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"standard_parallel_2\",40.61666666666667],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",40],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 12, "-93.5],PARAMETER[\"false_easting\",1640416.6667],PARAMET"); add_srs_wkt (p, 13, "ER[\"false_northing\",0],UNIT[\"US survey foot\",0.30480"); add_srs_wkt (p, 14, "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 15, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3539\"]]"); p = add_epsg_def_ex (filter, first, last, 3540, "epsg", 3540, "NAD83(NSRS2007) / Kansas North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kansas North\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",39.78333333333333],PARAMETER[\"sta"); add_srs_wkt (p, 10, "ndard_parallel_2\",38.71666666666667],PARAMETER[\"latitu"); add_srs_wkt (p, 11, "de_of_origin\",38.33333333333334],PARAMETER[\"central_me"); add_srs_wkt (p, 12, "ridian\",-98],PARAMETER[\"false_easting\",400000],PARAME"); add_srs_wkt (p, 13, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 15, "ORITY[\"EPSG\",\"3540\"]]"); p = add_epsg_def_ex (filter, first, last, 3541, "epsg", 3541, "NAD83(NSRS2007) / Kansas North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.9999"); add_proj4text (p, 2, "8984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=u"); add_proj4text (p, 3, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kansas North (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"standard_parallel_1\",39.78333333333333],PARAMETE"); add_srs_wkt (p, 10, "R[\"standard_parallel_2\",38.71666666666667],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",38.33333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 12, "ral_meridian\",-98],PARAMETER[\"false_easting\",1312333."); add_srs_wkt (p, 13, "3333],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); add_srs_wkt (p, 14, "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); add_srs_wkt (p, 15, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 16, "541\"]]"); p = add_epsg_def_ex (filter, first, last, 3542, "epsg", 3542, "NAD83(NSRS2007) / Kansas South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y"); add_proj4text (p, 2, "_0=400000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kansas South\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",38.56666666666667],PARAMETER[\"sta"); add_srs_wkt (p, 10, "ndard_parallel_2\",37.26666666666667],PARAMETER[\"latitu"); add_srs_wkt (p, 11, "de_of_origin\",36.66666666666666],PARAMETER[\"central_me"); add_srs_wkt (p, 12, "ridian\",-98.5],PARAMETER[\"false_easting\",400000],PARA"); add_srs_wkt (p, 13, "METER[\"false_northing\",400000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 15, "H],AUTHORITY[\"EPSG\",\"3542\"]]"); p = add_epsg_def_ex (filter, first, last, 3543, "epsg", 3543, "NAD83(NSRS2007) / Kansas South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99"); add_proj4text (p, 2, "998984 +y_0=399999.99998984 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 3, "0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kansas South (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"standard_parallel_1\",38.56666666666667],PARAMETE"); add_srs_wkt (p, 10, "R[\"standard_parallel_2\",37.26666666666667],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",36.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 12, "ral_meridian\",-98.5],PARAMETER[\"false_easting\",131233"); add_srs_wkt (p, 13, "3.3333],PARAMETER[\"false_northing\",1312333.3333],UNIT["); add_srs_wkt (p, 14, "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"3543\"]]"); p = add_epsg_def_ex (filter, first, last, 3544, "epsg", 3544, "NAD83(NSRS2007) / Kentucky North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kentucky North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",37.96666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",38.96666666666667],PARAMETER[\"lat"); add_srs_wkt (p, 11, "itude_of_origin\",37.5],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 12, "84.25],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 13, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"3544\"]]"); p = add_epsg_def_ex (filter, first, last, 3545, "epsg", 3545, "NAD83(NSRS2007) / Kentucky North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kentucky North (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",37.96666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",38.96666666666667],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",37.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 12, "an\",-84.25],PARAMETER[\"false_easting\",1640416.667],PA"); add_srs_wkt (p, 13, "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 14, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 15, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3545\"]]"); p = add_epsg_def_ex (filter, first, last, 3546, "epsg", 3546, "NAD83(NSRS2007) / Kentucky Single Zone", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666"); add_proj4text (p, 1, "666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 "); add_proj4text (p, 2, "+y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 3, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kentucky Single Zone\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",37.08333333333334],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",38.66666666666666],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",36.33333333333334],PARAMETER[\"c"); add_srs_wkt (p, 12, "entral_meridian\",-85.75],PARAMETER[\"false_easting\",15"); add_srs_wkt (p, 13, "00000],PARAMETER[\"false_northing\",1000000],UNIT[\"metr"); add_srs_wkt (p, 14, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 15, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3546\"]]"); p = add_epsg_def_ex (filter, first, last, 3547, "epsg", 3547, "NAD83(NSRS2007) / Kentucky Single Zone (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666"); add_proj4text (p, 1, "666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 "); add_proj4text (p, 2, "+y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 3, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kentucky Single Zone (ftUS)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spati"); add_srs_wkt (p, 2, "al_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 3, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 4, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 9, "\"],PARAMETER[\"standard_parallel_1\",37.08333333333334]"); add_srs_wkt (p, 10, ",PARAMETER[\"standard_parallel_2\",38.66666666666666],PA"); add_srs_wkt (p, 11, "RAMETER[\"latitude_of_origin\",36.33333333333334],PARAME"); add_srs_wkt (p, 12, "TER[\"central_meridian\",-85.75],PARAMETER[\"false_easti"); add_srs_wkt (p, 13, "ng\",4921250],PARAMETER[\"false_northing\",3280833.333],"); add_srs_wkt (p, 14, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 16, "ORITY[\"EPSG\",\"3547\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_46.c��������������������������������������������������0000664�0001750�0001750�00000507621�12544707704�017054� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_46 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 32424, "epsg", 32424, "WGS 72BE / UTM zone 24N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=24 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 24N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-39],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32424\"]]"); p = add_epsg_def_ex (filter, first, last, 32425, "epsg", 32425, "WGS 72BE / UTM zone 25N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=25 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 25N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-33],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32425\"]]"); p = add_epsg_def_ex (filter, first, last, 32426, "epsg", 32426, "WGS 72BE / UTM zone 26N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 26N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-27],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32426\"]]"); p = add_epsg_def_ex (filter, first, last, 32427, "epsg", 32427, "WGS 72BE / UTM zone 27N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=27 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 27N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-21],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32427\"]]"); p = add_epsg_def_ex (filter, first, last, 32428, "epsg", 32428, "WGS 72BE / UTM zone 28N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 28N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-15],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32428\"]]"); p = add_epsg_def_ex (filter, first, last, 32429, "epsg", 32429, "WGS 72BE / UTM zone 29N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 29N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-9],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32429\"]]"); p = add_epsg_def_ex (filter, first, last, 32430, "epsg", 32430, "WGS 72BE / UTM zone 30N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 30N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-3],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32430\"]]"); p = add_epsg_def_ex (filter, first, last, 32431, "epsg", 32431, "WGS 72BE / UTM zone 31N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=31 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 31N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",3],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32431\"]]"); p = add_epsg_def_ex (filter, first, last, 32432, "epsg", 32432, "WGS 72BE / UTM zone 32N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 32N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",9],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32432\"]]"); p = add_epsg_def_ex (filter, first, last, 32433, "epsg", 32433, "WGS 72BE / UTM zone 33N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 33N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",15],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32433\"]]"); p = add_epsg_def_ex (filter, first, last, 32434, "epsg", 32434, "WGS 72BE / UTM zone 34N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 34N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",21],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32434\"]]"); p = add_epsg_def_ex (filter, first, last, 32435, "epsg", 32435, "WGS 72BE / UTM zone 35N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 35N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",27],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32435\"]]"); p = add_epsg_def_ex (filter, first, last, 32436, "epsg", 32436, "WGS 72BE / UTM zone 36N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 36N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",33],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32436\"]]"); p = add_epsg_def_ex (filter, first, last, 32437, "epsg", 32437, "WGS 72BE / UTM zone 37N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 37N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",39],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32437\"]]"); p = add_epsg_def_ex (filter, first, last, 32438, "epsg", 32438, "WGS 72BE / UTM zone 38N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 38N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",45],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32438\"]]"); p = add_epsg_def_ex (filter, first, last, 32439, "epsg", 32439, "WGS 72BE / UTM zone 39N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 39N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",51],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32439\"]]"); p = add_epsg_def_ex (filter, first, last, 32440, "epsg", 32440, "WGS 72BE / UTM zone 40N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=40 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 40N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",57],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32440\"]]"); p = add_epsg_def_ex (filter, first, last, 32441, "epsg", 32441, "WGS 72BE / UTM zone 41N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=41 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 41N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",63],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32441\"]]"); p = add_epsg_def_ex (filter, first, last, 32442, "epsg", 32442, "WGS 72BE / UTM zone 42N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=42 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 42N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",69],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32442\"]]"); p = add_epsg_def_ex (filter, first, last, 32443, "epsg", 32443, "WGS 72BE / UTM zone 43N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=43 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 43N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",75],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32443\"]]"); p = add_epsg_def_ex (filter, first, last, 32444, "epsg", 32444, "WGS 72BE / UTM zone 44N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=44 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 44N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",81],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32444\"]]"); p = add_epsg_def_ex (filter, first, last, 32445, "epsg", 32445, "WGS 72BE / UTM zone 45N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=45 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 45N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",87],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32445\"]]"); p = add_epsg_def_ex (filter, first, last, 32446, "epsg", 32446, "WGS 72BE / UTM zone 46N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=46 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 46N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",93],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32446\"]]"); p = add_epsg_def_ex (filter, first, last, 32447, "epsg", 32447, "WGS 72BE / UTM zone 47N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=47 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 47N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",99],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32447\"]]"); p = add_epsg_def_ex (filter, first, last, 32448, "epsg", 32448, "WGS 72BE / UTM zone 48N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 48N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",105],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32448\"]]"); p = add_epsg_def_ex (filter, first, last, 32449, "epsg", 32449, "WGS 72BE / UTM zone 49N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=49 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 49N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",111],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32449\"]]"); p = add_epsg_def_ex (filter, first, last, 32450, "epsg", 32450, "WGS 72BE / UTM zone 50N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=50 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 50N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",117],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32450\"]]"); p = add_epsg_def_ex (filter, first, last, 32451, "epsg", 32451, "WGS 72BE / UTM zone 51N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=51 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 51N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",123],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32451\"]]"); p = add_epsg_def_ex (filter, first, last, 32452, "epsg", 32452, "WGS 72BE / UTM zone 52N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=52 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 52N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",129],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32452\"]]"); p = add_epsg_def_ex (filter, first, last, 32453, "epsg", 32453, "WGS 72BE / UTM zone 53N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=53 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 53N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",135],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32453\"]]"); p = add_epsg_def_ex (filter, first, last, 32454, "epsg", 32454, "WGS 72BE / UTM zone 54N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=54 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 54N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",141],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32454\"]]"); p = add_epsg_def_ex (filter, first, last, 32455, "epsg", 32455, "WGS 72BE / UTM zone 55N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=55 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 55N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",147],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32455\"]]"); p = add_epsg_def_ex (filter, first, last, 32456, "epsg", 32456, "WGS 72BE / UTM zone 56N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=56 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 56N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",153],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32456\"]]"); p = add_epsg_def_ex (filter, first, last, 32457, "epsg", 32457, "WGS 72BE / UTM zone 57N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=57 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 57N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",159],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32457\"]]"); p = add_epsg_def_ex (filter, first, last, 32458, "epsg", 32458, "WGS 72BE / UTM zone 58N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 58N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",165],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32458\"]]"); p = add_epsg_def_ex (filter, first, last, 32459, "epsg", 32459, "WGS 72BE / UTM zone 59N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=59 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 59N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",171],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32459\"]]"); p = add_epsg_def_ex (filter, first, last, 32460, "epsg", 32460, "WGS 72BE / UTM zone 60N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=60 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 60N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",177],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32460\"]]"); p = add_epsg_def_ex (filter, first, last, 32501, "epsg", 32501, "WGS 72BE / UTM zone 1S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=1 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); add_proj4text (p, 1, ",0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 1S\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-177],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"32501\"]]"); p = add_epsg_def_ex (filter, first, last, 32502, "epsg", 32502, "WGS 72BE / UTM zone 2S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=2 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); add_proj4text (p, 1, ",0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 2S\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-171],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"32502\"]]"); p = add_epsg_def_ex (filter, first, last, 32503, "epsg", 32503, "WGS 72BE / UTM zone 3S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=3 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); add_proj4text (p, 1, ",0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 3S\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-165],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"32503\"]]"); p = add_epsg_def_ex (filter, first, last, 32504, "epsg", 32504, "WGS 72BE / UTM zone 4S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=4 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); add_proj4text (p, 1, ",0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 4S\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-159],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"32504\"]]"); p = add_epsg_def_ex (filter, first, last, 32505, "epsg", 32505, "WGS 72BE / UTM zone 5S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=5 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); add_proj4text (p, 1, ",0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 5S\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-153],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"32505\"]]"); p = add_epsg_def_ex (filter, first, last, 32506, "epsg", 32506, "WGS 72BE / UTM zone 6S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=6 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); add_proj4text (p, 1, ",0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 6S\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-147],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"32506\"]]"); p = add_epsg_def_ex (filter, first, last, 32507, "epsg", 32507, "WGS 72BE / UTM zone 7S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=7 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); add_proj4text (p, 1, ",0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 7S\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-141],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"32507\"]]"); p = add_epsg_def_ex (filter, first, last, 32508, "epsg", 32508, "WGS 72BE / UTM zone 8S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=8 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); add_proj4text (p, 1, ",0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 8S\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-135],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"32508\"]]"); p = add_epsg_def_ex (filter, first, last, 32509, "epsg", 32509, "WGS 72BE / UTM zone 9S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=9 +south +ellps=WGS72 +towgs84=0,0,1.9,0"); add_proj4text (p, 1, ",0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 9S\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-129],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"32509\"]]"); p = add_epsg_def_ex (filter, first, last, 32510, "epsg", 32510, "WGS 72BE / UTM zone 10S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=10 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 10S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-123],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"32510\"]]"); p = add_epsg_def_ex (filter, first, last, 32511, "epsg", 32511, "WGS 72BE / UTM zone 11S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=11 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 11S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-117],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"32511\"]]"); p = add_epsg_def_ex (filter, first, last, 32512, "epsg", 32512, "WGS 72BE / UTM zone 12S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=12 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 12S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-111],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"32512\"]]"); p = add_epsg_def_ex (filter, first, last, 32513, "epsg", 32513, "WGS 72BE / UTM zone 13S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=13 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 13S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-105],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"32513\"]]"); p = add_epsg_def_ex (filter, first, last, 32514, "epsg", 32514, "WGS 72BE / UTM zone 14S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=14 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 14S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-99],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32514\"]]"); p = add_epsg_def_ex (filter, first, last, 32515, "epsg", 32515, "WGS 72BE / UTM zone 15S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=15 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 15S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-93],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32515\"]]"); p = add_epsg_def_ex (filter, first, last, 32516, "epsg", 32516, "WGS 72BE / UTM zone 16S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=16 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 16S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-87],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32516\"]]"); p = add_epsg_def_ex (filter, first, last, 32517, "epsg", 32517, "WGS 72BE / UTM zone 17S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 17S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-81],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32517\"]]"); p = add_epsg_def_ex (filter, first, last, 32518, "epsg", 32518, "WGS 72BE / UTM zone 18S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 18S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-75],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32518\"]]"); p = add_epsg_def_ex (filter, first, last, 32519, "epsg", 32519, "WGS 72BE / UTM zone 19S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 19S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-69],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32519\"]]"); p = add_epsg_def_ex (filter, first, last, 32520, "epsg", 32520, "WGS 72BE / UTM zone 20S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 20S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-63],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32520\"]]"); p = add_epsg_def_ex (filter, first, last, 32521, "epsg", 32521, "WGS 72BE / UTM zone 21S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 21S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-57],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32521\"]]"); p = add_epsg_def_ex (filter, first, last, 32522, "epsg", 32522, "WGS 72BE / UTM zone 22S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 22S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-51],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32522\"]]"); p = add_epsg_def_ex (filter, first, last, 32523, "epsg", 32523, "WGS 72BE / UTM zone 23S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 23S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-45],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32523\"]]"); p = add_epsg_def_ex (filter, first, last, 32524, "epsg", 32524, "WGS 72BE / UTM zone 24S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 24S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-39],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32524\"]]"); p = add_epsg_def_ex (filter, first, last, 32525, "epsg", 32525, "WGS 72BE / UTM zone 25S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 25S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-33],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32525\"]]"); p = add_epsg_def_ex (filter, first, last, 32526, "epsg", 32526, "WGS 72BE / UTM zone 26S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=26 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 26S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-27],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32526\"]]"); p = add_epsg_def_ex (filter, first, last, 32527, "epsg", 32527, "WGS 72BE / UTM zone 27S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=27 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 27S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-21],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32527\"]]"); p = add_epsg_def_ex (filter, first, last, 32528, "epsg", 32528, "WGS 72BE / UTM zone 28S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 28S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-15],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32528\"]]"); p = add_epsg_def_ex (filter, first, last, 32529, "epsg", 32529, "WGS 72BE / UTM zone 29S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 29S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-9],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32529\"]]"); p = add_epsg_def_ex (filter, first, last, 32530, "epsg", 32530, "WGS 72BE / UTM zone 30S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=30 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 30S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-3],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32530\"]]"); p = add_epsg_def_ex (filter, first, last, 32531, "epsg", 32531, "WGS 72BE / UTM zone 31S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=31 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 31S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",3],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32531\"]]"); p = add_epsg_def_ex (filter, first, last, 32532, "epsg", 32532, "WGS 72BE / UTM zone 32S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 32S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",9],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32532\"]]"); p = add_epsg_def_ex (filter, first, last, 32533, "epsg", 32533, "WGS 72BE / UTM zone 33S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 33S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",15],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32533\"]]"); p = add_epsg_def_ex (filter, first, last, 32534, "epsg", 32534, "WGS 72BE / UTM zone 34S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=34 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 34S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",21],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32534\"]]"); p = add_epsg_def_ex (filter, first, last, 32535, "epsg", 32535, "WGS 72BE / UTM zone 35S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 35S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",27],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32535\"]]"); p = add_epsg_def_ex (filter, first, last, 32536, "epsg", 32536, "WGS 72BE / UTM zone 36S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 36S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",33],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32536\"]]"); p = add_epsg_def_ex (filter, first, last, 32537, "epsg", 32537, "WGS 72BE / UTM zone 37S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 37S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",39],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32537\"]]"); p = add_epsg_def_ex (filter, first, last, 32538, "epsg", 32538, "WGS 72BE / UTM zone 38S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 38S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",45],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32538\"]]"); p = add_epsg_def_ex (filter, first, last, 32539, "epsg", 32539, "WGS 72BE / UTM zone 39S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 39S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",51],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32539\"]]"); p = add_epsg_def_ex (filter, first, last, 32540, "epsg", 32540, "WGS 72BE / UTM zone 40S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=40 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 40S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",57],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32540\"]]"); p = add_epsg_def_ex (filter, first, last, 32541, "epsg", 32541, "WGS 72BE / UTM zone 41S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=41 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 41S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",63],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32541\"]]"); p = add_epsg_def_ex (filter, first, last, 32542, "epsg", 32542, "WGS 72BE / UTM zone 42S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=42 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 42S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",69],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32542\"]]"); p = add_epsg_def_ex (filter, first, last, 32543, "epsg", 32543, "WGS 72BE / UTM zone 43S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=43 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 43S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",75],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32543\"]]"); p = add_epsg_def_ex (filter, first, last, 32544, "epsg", 32544, "WGS 72BE / UTM zone 44S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=44 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 44S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",81],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32544\"]]"); p = add_epsg_def_ex (filter, first, last, 32545, "epsg", 32545, "WGS 72BE / UTM zone 45S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=45 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 45S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",87],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32545\"]]"); p = add_epsg_def_ex (filter, first, last, 32546, "epsg", 32546, "WGS 72BE / UTM zone 46S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=46 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 46S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",93],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32546\"]]"); p = add_epsg_def_ex (filter, first, last, 32547, "epsg", 32547, "WGS 72BE / UTM zone 47S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=47 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 47S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",99],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32547\"]]"); p = add_epsg_def_ex (filter, first, last, 32548, "epsg", 32548, "WGS 72BE / UTM zone 48S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 48S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",105],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32548\"]]"); p = add_epsg_def_ex (filter, first, last, 32549, "epsg", 32549, "WGS 72BE / UTM zone 49S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=49 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 49S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",111],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32549\"]]"); p = add_epsg_def_ex (filter, first, last, 32550, "epsg", 32550, "WGS 72BE / UTM zone 50S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 50S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",117],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32550\"]]"); p = add_epsg_def_ex (filter, first, last, 32551, "epsg", 32551, "WGS 72BE / UTM zone 51S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=51 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 51S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",123],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32551\"]]"); p = add_epsg_def_ex (filter, first, last, 32552, "epsg", 32552, "WGS 72BE / UTM zone 52S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=52 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 52S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",129],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32552\"]]"); p = add_epsg_def_ex (filter, first, last, 32553, "epsg", 32553, "WGS 72BE / UTM zone 53S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=53 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 53S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",135],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32553\"]]"); p = add_epsg_def_ex (filter, first, last, 32554, "epsg", 32554, "WGS 72BE / UTM zone 54S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=54 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 54S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",141],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32554\"]]"); p = add_epsg_def_ex (filter, first, last, 32555, "epsg", 32555, "WGS 72BE / UTM zone 55S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=55 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 55S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",147],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32555\"]]"); p = add_epsg_def_ex (filter, first, last, 32556, "epsg", 32556, "WGS 72BE / UTM zone 56S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=56 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 56S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",153],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32556\"]]"); p = add_epsg_def_ex (filter, first, last, 32557, "epsg", 32557, "WGS 72BE / UTM zone 57S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=57 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 57S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",159],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32557\"]]"); p = add_epsg_def_ex (filter, first, last, 32558, "epsg", 32558, "WGS 72BE / UTM zone 58S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 58S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",165],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32558\"]]"); p = add_epsg_def_ex (filter, first, last, 32559, "epsg", 32559, "WGS 72BE / UTM zone 59S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=59 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 59S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",171],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32559\"]]"); p = add_epsg_def_ex (filter, first, last, 32560, "epsg", 32560, "WGS 72BE / UTM zone 60S", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=60 +south +ellps=WGS72 +towgs84=0,0,1.9,"); add_proj4text (p, 1, "0,0,0.814,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 60S\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",177],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"32560\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ���������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_07.c��������������������������������������������������0000664�0001750�0001750�00000561256�12544707704�017055� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_07 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 2729, "epsg", 2729, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 111E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 111E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",111],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2729\"]]"); p = add_epsg_def_ex (filter, first, last, 2730, "epsg", 2730, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 114E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 114E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",114],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2730\"]]"); p = add_epsg_def_ex (filter, first, last, 2731, "epsg", 2731, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 117E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 117E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",117],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2731\"]]"); p = add_epsg_def_ex (filter, first, last, 2732, "epsg", 2732, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 120E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 120E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",120],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2732\"]]"); p = add_epsg_def_ex (filter, first, last, 2733, "epsg", 2733, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 123E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 123E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",123],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2733\"]]"); p = add_epsg_def_ex (filter, first, last, 2734, "epsg", 2734, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 126E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 126E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",126],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2734\"]]"); p = add_epsg_def_ex (filter, first, last, 2735, "epsg", 2735, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 129E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 129E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",129],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2735\"]]"); p = add_epsg_def_ex (filter, first, last, 2736, "epsg", 2736, "Tete / UTM zone 36S", 0, 0, "Clarke 1866", "Greenwich", "Tete", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +south +ellps=clrk66 +towgs84=-73.472"); add_proj4text (p, 1, ",-51.66,-112.482,0.953,4.6,-2.368,0.586 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Tete / UTM zone 36S\",GEOGCS[\"Tete\",DATUM[\"T"); add_srs_wkt (p, 1, "ete\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821389"); add_srs_wkt (p, 2, "82,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-73.472,-51.66,"); add_srs_wkt (p, 3, "-112.482,0.953,4.6,-2.368,0.586],AUTHORITY[\"EPSG\",\"61"); add_srs_wkt (p, 4, "27\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4127\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",33],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"2736\"]]"); p = add_epsg_def_ex (filter, first, last, 2737, "epsg", 2737, "Tete / UTM zone 37S", 0, 0, "Clarke 1866", "Greenwich", "Tete", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +south +ellps=clrk66 +towgs84=-73.472"); add_proj4text (p, 1, ",-51.66,-112.482,0.953,4.6,-2.368,0.586 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Tete / UTM zone 37S\",GEOGCS[\"Tete\",DATUM[\"T"); add_srs_wkt (p, 1, "ete\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821389"); add_srs_wkt (p, 2, "82,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-73.472,-51.66,"); add_srs_wkt (p, 3, "-112.482,0.953,4.6,-2.368,0.586],AUTHORITY[\"EPSG\",\"61"); add_srs_wkt (p, 4, "27\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4127\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",39],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"2737\"]]"); p = add_epsg_def_ex (filter, first, last, 2738, "epsg", 2738, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 132E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 132E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",132],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2738\"]]"); p = add_epsg_def_ex (filter, first, last, 2739, "epsg", 2739, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 135E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 135E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",135],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2739\"]]"); p = add_epsg_def_ex (filter, first, last, 2740, "epsg", 2740, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 138E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 138E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",138],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2740\"]]"); p = add_epsg_def_ex (filter, first, last, 2741, "epsg", 2741, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 141E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 141E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",141],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2741\"]]"); p = add_epsg_def_ex (filter, first, last, 2742, "epsg", 2742, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 144E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 144E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",144],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2742\"]]"); p = add_epsg_def_ex (filter, first, last, 2743, "epsg", 2743, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 147E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 147E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",147],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2743\"]]"); p = add_epsg_def_ex (filter, first, last, 2744, "epsg", 2744, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 150E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 150E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",150],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2744\"]]"); p = add_epsg_def_ex (filter, first, last, 2745, "epsg", 2745, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 153E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 153E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",153],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2745\"]]"); p = add_epsg_def_ex (filter, first, last, 2746, "epsg", 2746, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 156E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 156E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",156],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2746\"]]"); p = add_epsg_def_ex (filter, first, last, 2747, "epsg", 2747, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 159E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 159E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",159],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2747\"]]"); p = add_epsg_def_ex (filter, first, last, 2748, "epsg", 2748, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 162E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 162E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",162],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2748\"]]"); p = add_epsg_def_ex (filter, first, last, 2749, "epsg", 2749, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 165E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 165E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",165],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2749\"]]"); p = add_epsg_def_ex (filter, first, last, 2750, "epsg", 2750, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 168E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 168E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",168],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2750\"]]"); p = add_epsg_def_ex (filter, first, last, 2751, "epsg", 2751, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 171E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 171E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",171],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2751\"]]"); p = add_epsg_def_ex (filter, first, last, 2752, "epsg", 2752, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 174E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 174E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",174],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2752\"]]"); p = add_epsg_def_ex (filter, first, last, 2753, "epsg", 2753, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 177E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 177E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",177],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2753\"]]"); p = add_epsg_def_ex (filter, first, last, 2754, "epsg", 2754, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 180E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 180E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",180],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2754\"]]"); p = add_epsg_def_ex (filter, first, last, 2755, "epsg", 2755, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 177W", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 177W\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-177],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2755\"]]"); p = add_epsg_def_ex (filter, first, last, 2756, "epsg", 2756, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 174W", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 174W\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-174],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2756\"]]"); p = add_epsg_def_ex (filter, first, last, 2757, "epsg", 2757, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 171W", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 171W\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-171],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2757\"]]"); p = add_epsg_def_ex (filter, first, last, 2758, "epsg", 2758, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 168W", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 168W\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-168],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2758\"]]"); p = add_epsg_def_ex (filter, first, last, 2759, "epsg", 2759, "NAD83(HARN) / Alabama East", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9"); add_proj4text (p, 1, "9996 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Alabama East\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "0.5],PARAMETER[\"central_meridian\",-85.83333333333333],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.99996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",200000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2759\"]]"); p = add_epsg_def_ex (filter, first, last, 2760, "epsg", 2760, "NAD83(HARN) / Alabama West", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=6"); add_proj4text (p, 1, "00000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Alabama West\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-87.5],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.999933333],PARAMETER[\"false_easting\",600"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"2760\"]]"); p = add_epsg_def_ex (filter, first, last, 2761, "epsg", 2761, "NAD83(HARN) / Arizona East", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arizona East\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "1],PARAMETER[\"central_meridian\",-110.1666666666667],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",213360],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 13, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2761\"]]"); p = add_epsg_def_ex (filter, first, last, 2762, "epsg", 2762, "NAD83(HARN) / Arizona Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arizona Central\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",31],PARAMETER[\"central_meridian\",-111.9166666666667],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",213360],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2762\"]]"); p = add_epsg_def_ex (filter, first, last, 2763, "epsg", 2763, "NAD83(HARN) / Arizona West", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, "=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arizona West\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "1],PARAMETER[\"central_meridian\",-113.75],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",0.999933333],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 11, "13360],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"2763\"]]"); p = add_epsg_def_ex (filter, first, last, 2764, "epsg", 2764, "NAD83(HARN) / Arkansas North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arkansas North\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_1\",36.23333333333333],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",34.93333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",34.33333333333334],PARAMETER[\"central_meridian\",-92],"); add_srs_wkt (p, 12, "PARAMETER[\"false_easting\",400000],PARAMETER[\"false_no"); add_srs_wkt (p, 13, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"2764\"]]"); p = add_epsg_def_ex (filter, first, last, 2765, "epsg", 2765, "NAD83(HARN) / Arkansas South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, ".66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arkansas South\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_1\",34.76666666666667],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",33.3],PARAMETER[\"latitude_of_origin\",32.66666666"); add_srs_wkt (p, 11, "666666],PARAMETER[\"central_meridian\",-92],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",400000],PARAMETER[\"false_northing\",400"); add_srs_wkt (p, 13, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 14, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2765"); add_srs_wkt (p, 15, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2766, "epsg", 2766, "NAD83(HARN) / California zone 1", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, "3333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 1\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",41.66666666666666],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",40],PARAMETER[\"latitude_of_origin\",39.33333333"); add_srs_wkt (p, 11, "333334],PARAMETER[\"central_meridian\",-122],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",2000000],PARAMETER[\"false_northing\",50"); add_srs_wkt (p, 13, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"276"); add_srs_wkt (p, 15, "6\"]]"); p = add_epsg_def_ex (filter, first, last, 2767, "epsg", 2767, "NAD83(HARN) / California zone 2", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y"); add_proj4text (p, 2, "_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 2\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",39.83333333333334],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",38.33333333333334],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",37.66666666666666],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 12, "22],PARAMETER[\"false_easting\",2000000],PARAMETER[\"fal"); add_srs_wkt (p, 13, "se_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"2767\"]]"); p = add_epsg_def_ex (filter, first, last, 2768, "epsg", 2768, "NAD83(HARN) / California zone 3", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 3\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",38.43333333333333],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",37.06666666666667],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",36.5],PARAMETER[\"central_meridian\",-120.5],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_easting\",2000000],PARAMETER[\"false_northing"); add_srs_wkt (p, 13, "\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 14, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 15, "\"2768\"]]"); p = add_epsg_def_ex (filter, first, last, 2769, "epsg", 2769, "NAD83(HARN) / California zone 4", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, "4 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 4\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",37.25],PARAMETER[\"standard_parallel_2\",36],"); add_srs_wkt (p, 10, "PARAMETER[\"latitude_of_origin\",35.33333333333334],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-119],PARAMETER[\"false_easti"); add_srs_wkt (p, 12, "ng\",2000000],PARAMETER[\"false_northing\",500000],UNIT["); add_srs_wkt (p, 13, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 14, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2769\"]]"); p = add_epsg_def_ex (filter, first, last, 2770, "epsg", 2770, "NAD83(HARN) / California zone 5", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 5\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",35.46666666666667],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",34.03333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",33.5],PARAMETER[\"central_meridian\",-118],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",2000000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 14, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "2770\"]]"); p = add_epsg_def_ex (filter, first, last, 2771, "epsg", 2771, "NAD83(HARN) / California zone 6", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000"); add_proj4text (p, 2, " +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 3, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California zone 6\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",33.88333333333333],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",32.78333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",32.16666666666666],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 12, "16.25],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 15, "RITY[\"EPSG\",\"2771\"]]"); p = add_epsg_def_ex (filter, first, last, 2772, "epsg", 2772, "NAD83(HARN) / Colorado North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666"); add_proj4text (p, 1, "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 3, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Colorado North\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_1\",40.78333333333333],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",39.71666666666667],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",39.33333333333334],PARAMETER[\"central_meridian\",-105."); add_srs_wkt (p, 12, "5],PARAMETER[\"false_easting\",914401.8289],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",304800.6096],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 15, "AUTHORITY[\"EPSG\",\"2772\"]]"); p = add_epsg_def_ex (filter, first, last, 2773, "epsg", 2773, "NAD83(HARN) / Colorado Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, "3334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Colorado Central\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",39.75],PARAMETER[\"standard_parallel_2\",38.4"); add_srs_wkt (p, 10, "5],PARAMETER[\"latitude_of_origin\",37.83333333333334],P"); add_srs_wkt (p, 11, "ARAMETER[\"central_meridian\",-105.5],PARAMETER[\"false_"); add_srs_wkt (p, 12, "easting\",914401.8289],PARAMETER[\"false_northing\",3048"); add_srs_wkt (p, 13, "00.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 14, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "2773\"]]"); p = add_epsg_def_ex (filter, first, last, 2774, "epsg", 2774, "NAD83(HARN) / Colorado South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 3, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Colorado South\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_1\",38.43333333333333],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",37.23333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",36.66666666666666],PARAMETER[\"central_meridian\",-105."); add_srs_wkt (p, 12, "5],PARAMETER[\"false_easting\",914401.8289],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",304800.6096],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 15, "AUTHORITY[\"EPSG\",\"2774\"]]"); p = add_epsg_def_ex (filter, first, last, 2775, "epsg", 2775, "NAD83(HARN) / Connecticut", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, ".83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=1524"); add_proj4text (p, 2, "00.3048 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Connecticut\",GEOGCS[\"NAD83(HARN"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"La"); add_srs_wkt (p, 8, "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, "el_1\",41.86666666666667],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 10, "2\",41.2],PARAMETER[\"latitude_of_origin\",40.8333333333"); add_srs_wkt (p, 11, "3334],PARAMETER[\"central_meridian\",-72.75],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",304800.6096],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",152400.3048],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 14, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 15, "\",\"2775\"]]"); p = add_epsg_def_ex (filter, first, last, 2776, "epsg", 2776, "NAD83(HARN) / Delaware", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, "995 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Delaware\",GEOGCS[\"NAD83(HARN)\""); add_srs_wkt (p, 1, ",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",38],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",-75.41666666666667],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",0.999995],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",200000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"2776\"]]"); p = add_epsg_def_ex (filter, first, last, 2777, "epsg", 2777, "NAD83(HARN) / Florida East", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Florida East\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 9, "4.33333333333333],PARAMETER[\"central_meridian\",-81],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",0.999941177],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",200000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2777\"]]"); p = add_epsg_def_ex (filter, first, last, 2778, "epsg", 2778, "NAD83(HARN) / Florida West", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Florida West\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 9, "4.33333333333333],PARAMETER[\"central_meridian\",-82],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",0.999941177],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",200000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2778\"]]"); p = add_epsg_def_ex (filter, first, last, 2779, "epsg", 2779, "NAD83(HARN) / Florida North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Florida North\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",30.75],PARAMETER[\"standard_parallel_2\",29.5833"); add_srs_wkt (p, 10, "3333333333],PARAMETER[\"latitude_of_origin\",29],PARAMET"); add_srs_wkt (p, 11, "ER[\"central_meridian\",-84.5],PARAMETER[\"false_easting"); add_srs_wkt (p, 12, "\",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 13, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"2779\"]]"); p = add_epsg_def_ex (filter, first, last, 2780, "epsg", 2780, "NAD83(HARN) / Georgia East", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Georgia East\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-82.16666666666667],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",200000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 13, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2780\"]]"); p = add_epsg_def_ex (filter, first, last, 2781, "epsg", 2781, "NAD83(HARN) / Georgia West", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Georgia West\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-84.16666666666667],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",700000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 13, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2781\"]]"); p = add_epsg_def_ex (filter, first, last, 2782, "epsg", 2782, "NAD83(HARN) / Hawaii zone 1", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0."); add_proj4text (p, 1, "999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0"); add_proj4text (p, 2, ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Hawaii zone 1\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",1"); add_srs_wkt (p, 9, "8.83333333333333],PARAMETER[\"central_meridian\",-155.5]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.999966667],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2782\"]]"); p = add_epsg_def_ex (filter, first, last, 2783, "epsg", 2783, "NAD83(HARN) / Hawaii zone 2", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Hawaii zone 2\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 9, "0.33333333333333],PARAMETER[\"central_meridian\",-156.66"); add_srs_wkt (p, 10, "66666666667],PARAMETER[\"scale_factor\",0.999966667],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "2783\"]]"); p = add_epsg_def_ex (filter, first, last, 2784, "epsg", 2784, "NAD83(HARN) / Hawaii zone 3", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99"); add_proj4text (p, 1, "999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Hawaii zone 3\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 9, "1.16666666666667],PARAMETER[\"central_meridian\",-158],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",0.99999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2784\"]]"); p = add_epsg_def_ex (filter, first, last, 2785, "epsg", 2785, "NAD83(HARN) / Hawaii zone 4", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0."); add_proj4text (p, 1, "99999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Hawaii zone 4\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 9, "1.83333333333333],PARAMETER[\"central_meridian\",-159.5]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.99999],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2785\"]]"); p = add_epsg_def_ex (filter, first, last, 2786, "epsg", 2786, "NAD83(HARN) / Hawaii zone 5", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666"); add_proj4text (p, 1, "666667 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 2, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Hawaii zone 5\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 9, "1.66666666666667],PARAMETER[\"central_meridian\",-160.16"); add_srs_wkt (p, 10, "66666666667],PARAMETER[\"scale_factor\",1],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2786\"]]"); p = add_epsg_def_ex (filter, first, last, 2787, "epsg", 2787, "NAD83(HARN) / Idaho East", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, "666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Idaho East\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",41.6"); add_srs_wkt (p, 9, "6666666666666],PARAMETER[\"central_meridian\",-112.16666"); add_srs_wkt (p, 10, "66666667],PARAMETER[\"scale_factor\",0.999947368],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",200000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"278"); add_srs_wkt (p, 14, "7\"]]"); p = add_epsg_def_ex (filter, first, last, 2788, "epsg", 2788, "NAD83(HARN) / Idaho Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, "99473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Idaho Central\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 9, "1.66666666666666],PARAMETER[\"central_meridian\",-114],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",0.999947368],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 12, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2788\"]]"); p = add_epsg_def_ex (filter, first, last, 2789, "epsg", 2789, "NAD83(HARN) / Idaho West", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, ".999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Idaho West\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",41.6"); add_srs_wkt (p, 9, "6666666666666],PARAMETER[\"central_meridian\",-115.75],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",0.999933333],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",800000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 12, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2789\"]]"); p = add_epsg_def_ex (filter, first, last, 2790, "epsg", 2790, "NAD83(HARN) / Illinois East", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, "333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Illinois East\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "6.66666666666666],PARAMETER[\"central_meridian\",-88.333"); add_srs_wkt (p, 10, "33333333333],PARAMETER[\"scale_factor\",0.999975],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",300000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"279"); add_srs_wkt (p, 14, "0\"]]"); p = add_epsg_def_ex (filter, first, last, 2791, "epsg", 2791, "NAD83(HARN) / Illinois West", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, "666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Illinois West\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "6.66666666666666],PARAMETER[\"central_meridian\",-90.166"); add_srs_wkt (p, 10, "66666666667],PARAMETER[\"scale_factor\",0.999941177],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",700000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "2791\"]]"); p = add_epsg_def_ex (filter, first, last, 2792, "epsg", 2792, "NAD83(HARN) / Indiana East", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 2, ",0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Indiana East\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "7.5],PARAMETER[\"central_meridian\",-85.66666666666667],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.999966667],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",100000],PARAMETER[\"false_northing\",250000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 13, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2792\"]]"); p = add_epsg_def_ex (filter, first, last, 2793, "epsg", 2793, "NAD83(HARN) / Indiana West", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 2, ",0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Indiana West\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "7.5],PARAMETER[\"central_meridian\",-87.08333333333333],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.999966667],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",900000],PARAMETER[\"false_northing\",250000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X"); add_srs_wkt (p, 13, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2793\"]]"); p = add_epsg_def_ex (filter, first, last, 2794, "epsg", 2794, "NAD83(HARN) / Iowa North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Iowa North\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",43.26666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",42.06666666666667],PARAMETER[\"latitude_of_origin\",41."); add_srs_wkt (p, 11, "5],PARAMETER[\"central_meridian\",-93.5],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_easting\",1500000],PARAMETER[\"false_northing\",10000"); add_srs_wkt (p, 13, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 14, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2794\""); add_srs_wkt (p, 15, "]]"); p = add_epsg_def_ex (filter, first, last, 2795, "epsg", 2795, "NAD83(HARN) / Iowa South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, "667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Iowa South\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",41.78333333333333],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",40.61666666666667],PARAMETER[\"latitude_of_origin\",40]"); add_srs_wkt (p, 11, ",PARAMETER[\"central_meridian\",-93.5],PARAMETER[\"false"); add_srs_wkt (p, 12, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 13, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 14, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2795\"]]"); p = add_epsg_def_ex (filter, first, last, 2796, "epsg", 2796, "NAD83(HARN) / Kansas North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kansas North\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",39.78333333333333],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 10, "_2\",38.71666666666667],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",38.33333333333334],PARAMETER[\"central_meridian\",-98],"); add_srs_wkt (p, 12, "PARAMETER[\"false_easting\",400000],PARAMETER[\"false_no"); add_srs_wkt (p, 13, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"2796\"]]"); p = add_epsg_def_ex (filter, first, last, 2797, "epsg", 2797, "NAD83(HARN) / Kansas South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y"); add_proj4text (p, 2, "_0=400000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kansas South\",GEOGCS[\"NAD83(HAR"); add_srs_wkt (p, 1, "N)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",38.56666666666667],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 10, "_2\",37.26666666666667],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",36.66666666666666],PARAMETER[\"central_meridian\",-98.5"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",400000],PARAMETER[\"false_"); add_srs_wkt (p, 13, "northing\",400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"2797\"]]"); p = add_epsg_def_ex (filter, first, last, 2798, "epsg", 2798, "NAD83(HARN) / Kentucky North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kentucky North\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_1\",37.96666666666667],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",38.96666666666667],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",37.5],PARAMETER[\"central_meridian\",-84.25],PARAMETER["); add_srs_wkt (p, 12, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 13, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2798\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 2799, "epsg", 2799, "NAD83(HARN) / Kentucky South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333"); add_proj4text (p, 1, "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +"); add_proj4text (p, 2, "y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kentucky South\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_1\",37.93333333333333],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",36.73333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",36.33333333333334],PARAMETER[\"central_meridian\",-85.7"); add_srs_wkt (p, 12, "5],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 15, "\"EPSG\",\"2799\"]]"); p = add_epsg_def_ex (filter, first, last, 2800, "epsg", 2800, "NAD83(HARN) / Louisiana North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666"); add_proj4text (p, 1, "667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Louisiana North\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",32.66666666666666],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",31.16666666666667],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",30.5],PARAMETER[\"central_meridian\",-92.5],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_easting\",1000000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 14, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2800\""); add_srs_wkt (p, 15, "]]"); p = add_epsg_def_ex (filter, first, last, 2801, "epsg", 2801, "NAD83(HARN) / Louisiana South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91"); add_proj4text (p, 1, ".33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Louisiana South\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",30.7],PARAMETER[\"standard_parallel_2\",29.3]"); add_srs_wkt (p, 10, ",PARAMETER[\"latitude_of_origin\",28.5],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-91.33333333333333],PARAMETER[\"false_eas"); add_srs_wkt (p, 12, "ting\",1000000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 13, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 14, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2801\"]]"); p = add_epsg_def_ex (filter, first, last, 2802, "epsg", 2802, "NAD83(HARN) / Maine East", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine East\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",43.6"); add_srs_wkt (p, 9, "6666666666666],PARAMETER[\"central_meridian\",-68.5],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",300000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2802\"]]"); p = add_epsg_def_ex (filter, first, last, 2803, "epsg", 2803, "NAD83(HARN) / Maine West", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine West\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",42.8"); add_srs_wkt (p, 9, "3333333333334],PARAMETER[\"central_meridian\",-70.166666"); add_srs_wkt (p, 10, "66666667],PARAMETER[\"scale_factor\",0.999966667],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",900000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"280"); add_srs_wkt (p, 14, "3\"]]"); p = add_epsg_def_ex (filter, first, last, 2804, "epsg", 2804, "NAD83(HARN) / Maryland", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666"); add_proj4text (p, 1, "666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maryland\",GEOGCS[\"NAD83(HARN)\""); add_srs_wkt (p, 1, ",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 8, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 9, "\",39.45],PARAMETER[\"standard_parallel_2\",38.3],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",37.66666666666666],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-77],PARAMETER[\"false_easting\",40"); add_srs_wkt (p, 12, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"2804\"]]"); p = add_epsg_def_ex (filter, first, last, 2805, "epsg", 2805, "NAD83(HARN) / Massachusetts Mainland", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, "667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Massachusetts Mainland\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",42.68333333333333],PARAMETER[\"standard"); add_srs_wkt (p, 10, "_parallel_2\",41.71666666666667],PARAMETER[\"latitude_of"); add_srs_wkt (p, 11, "_origin\",41],PARAMETER[\"central_meridian\",-71.5],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",200000],PARAMETER[\"false_northi"); add_srs_wkt (p, 13, "ng\",750000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"2805\"]]"); p = add_epsg_def_ex (filter, first, last, 2806, "epsg", 2806, "NAD83(HARN) / Massachusetts Island", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333"); add_proj4text (p, 1, "333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Massachusetts Island\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 9, "rd_parallel_1\",41.48333333333333],PARAMETER[\"standard_"); add_srs_wkt (p, 10, "parallel_2\",41.28333333333333],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 11, "origin\",41],PARAMETER[\"central_meridian\",-70.5],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 13, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 14, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"28"); add_srs_wkt (p, 15, "06\"]]"); p = add_epsg_def_ex (filter, first, last, 2807, "epsg", 2807, "NAD83(HARN) / Michigan North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333"); add_proj4text (p, 1, "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 3, "s"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Michigan North\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_1\",47.08333333333334],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",45.48333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",44.78333333333333],PARAMETER[\"central_meridian\",-87],"); add_srs_wkt (p, 12, "PARAMETER[\"false_easting\",8000000],PARAMETER[\"false_n"); add_srs_wkt (p, 13, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"2807\"]]"); p = add_epsg_def_ex (filter, first, last, 2808, "epsg", 2808, "NAD83(HARN) / Michigan Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43"); add_proj4text (p, 1, ".31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Michigan Central\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",45.7],PARAMETER[\"standard_parallel_2\",44.18"); add_srs_wkt (p, 10, "333333333333],PARAMETER[\"latitude_of_origin\",43.316666"); add_srs_wkt (p, 11, "66666667],PARAMETER[\"central_meridian\",-84.36666666666"); add_srs_wkt (p, 12, "666],PARAMETER[\"false_easting\",6000000],PARAMETER[\"fa"); add_srs_wkt (p, 13, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"2808\"]]"); p = add_epsg_def_ex (filter, first, last, 2809, "epsg", 2809, "NAD83(HARN) / Michigan South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41"); add_proj4text (p, 1, ".5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Michigan South\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_1\",43.66666666666666],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",42.1],PARAMETER[\"latitude_of_origin\",41.5],PARAM"); add_srs_wkt (p, 11, "ETER[\"central_meridian\",-84.36666666666666],PARAMETER["); add_srs_wkt (p, 12, "\"false_easting\",4000000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2809\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 2810, "epsg", 2810, "NAD83(HARN) / Minnesota North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y"); add_proj4text (p, 2, "_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Minnesota North\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",48.63333333333333],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",47.03333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",46.5],PARAMETER[\"central_meridian\",-93.1],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_easting\",800000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",100000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 14, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "2810\"]]"); p = add_epsg_def_ex (filter, first, last, 2811, "epsg", 2811, "NAD83(HARN) / Minnesota Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +to"); add_proj4text (p, 2, "wgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Minnesota Central\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",47.05],PARAMETER[\"standard_parallel_2\",45.6"); add_srs_wkt (p, 10, "1666666666667],PARAMETER[\"latitude_of_origin\",45],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-94.25],PARAMETER[\"false_eas"); add_srs_wkt (p, 12, "ting\",800000],PARAMETER[\"false_northing\",100000],UNIT"); add_srs_wkt (p, 13, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 14, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2811\"]]"); p = add_epsg_def_ex (filter, first, last, 2812, "epsg", 2812, "NAD83(HARN) / Minnesota South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Minnesota South\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",45.21666666666667],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",43.78333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",43],PARAMETER[\"central_meridian\",-94],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",800000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 13, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 14, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2812"); add_srs_wkt (p, 15, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2813, "epsg", 2813, "NAD83(HARN) / Mississippi East", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Mississippi East\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",29.5],PARAMETER[\"central_meridian\",-88.83333333333333"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.99995],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",300000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2813\"]]"); p = add_epsg_def_ex (filter, first, last, 2814, "epsg", 2814, "NAD83(HARN) / Mississippi West", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Mississippi West\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",29.5],PARAMETER[\"central_meridian\",-90.33333333333333"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.99995],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",700000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2814\"]]"); p = add_epsg_def_ex (filter, first, last, 2815, "epsg", 2815, "NAD83(HARN) / Missouri East", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9"); add_proj4text (p, 1, "99933333 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Missouri East\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "5.83333333333334],PARAMETER[\"central_meridian\",-90.5],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.999933333],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",250000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2815\"]]"); p = add_epsg_def_ex (filter, first, last, 2816, "epsg", 2816, "NAD83(HARN) / Missouri Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9"); add_proj4text (p, 1, "99933333 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Missouri Central\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",35.83333333333334],PARAMETER[\"central_meridian\",-92.5"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.999933333],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2816\"]]"); p = add_epsg_def_ex (filter, first, last, 2817, "epsg", 2817, "NAD83(HARN) / Missouri West", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9"); add_proj4text (p, 1, "99941177 +x_0=850000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Missouri West\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "6.16666666666666],PARAMETER[\"central_meridian\",-94.5],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.999941177],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",850000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2817\"]]"); p = add_epsg_def_ex (filter, first, last, 2818, "epsg", 2818, "NAD83(HARN) / Montana", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5"); add_proj4text (p, 1, " +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Montana\",GEOGCS[\"NAD83(HARN)\","); add_srs_wkt (p, 1, "DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"615"); add_srs_wkt (p, 4, "2\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 8, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",49],PARAMETER[\"standard_parallel_2\",45],PARAMETER[\"l"); add_srs_wkt (p, 10, "atitude_of_origin\",44.25],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-109.5],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"2818\"]]"); p = add_epsg_def_ex (filter, first, last, 2819, "epsg", 2819, "NAD83(HARN) / Nebraska", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Nebraska\",GEOGCS[\"NAD83(HARN)\""); add_srs_wkt (p, 1, ",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 8, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 9, "\",43],PARAMETER[\"standard_parallel_2\",40],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",39.83333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-100],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"2819\"]]"); p = add_epsg_def_ex (filter, first, last, 2820, "epsg", 2820, "NAD83(HARN) / Nevada East", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Nevada East\",GEOGCS[\"NAD83(HARN"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",34"); add_srs_wkt (p, 9, ".75],PARAMETER[\"central_meridian\",-115.5833333333333],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",200000],PARAMETER[\"false_northing\",8000000],UNI"); add_srs_wkt (p, 12, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2820\"]]"); p = add_epsg_def_ex (filter, first, last, 2821, "epsg", 2821, "NAD83(HARN) / Nevada Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, "9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Nevada Central\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "34.75],PARAMETER[\"central_meridian\",-116.6666666666667"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",500000],PARAMETER[\"false_northing\",6000000],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2821\"]]"); p = add_epsg_def_ex (filter, first, last, 2822, "epsg", 2822, "NAD83(HARN) / Nevada West", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Nevada West\",GEOGCS[\"NAD83(HARN"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",34"); add_srs_wkt (p, 9, ".75],PARAMETER[\"central_meridian\",-118.5833333333333],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",800000],PARAMETER[\"false_northing\",4000000],UNI"); add_srs_wkt (p, 12, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2822\"]]"); p = add_epsg_def_ex (filter, first, last, 2823, "epsg", 2823, "NAD83(HARN) / New Hampshire", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Hampshire\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 9, "2.5],PARAMETER[\"central_meridian\",-71.66666666666667],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.999966667],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",300000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2823\"]]"); p = add_epsg_def_ex (filter, first, last, 2824, "epsg", 2824, "NAD83(HARN) / New Jersey", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Jersey\",GEOGCS[\"NAD83(HARN)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",38.8"); add_srs_wkt (p, 9, "3333333333334],PARAMETER[\"central_meridian\",-74.5],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",150000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2824\"]]"); p = add_epsg_def_ex (filter, first, last, 2825, "epsg", 2825, "NAD83(HARN) / New Mexico East", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); add_proj4text (p, 1, "909091 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Mexico East\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",31],PARAMETER[\"central_meridian\",-104.3333333333333],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.999909091],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",165000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2825\"]]"); p = add_epsg_def_ex (filter, first, last, 2826, "epsg", 2826, "NAD83(HARN) / New Mexico Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000"); add_proj4text (p, 1, "00 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Mexico Central\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",31],PARAMETER[\"central_meridian\",-106.25],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",0.9999],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"2826\"]]"); p = add_epsg_def_ex (filter, first, last, 2827, "epsg", 2827, "NAD83(HARN) / New Mexico West", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); add_proj4text (p, 1, "916667 +x_0=830000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Mexico West\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",31],PARAMETER[\"central_meridian\",-107.8333333333333],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.999916667],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",830000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2827\"]]"); p = add_epsg_def_ex (filter, first, last, 2828, "epsg", 2828, "NAD83(HARN) / New York East", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New York East\",GEOGCS[\"NAD83(HA"); add_srs_wkt (p, 1, "RN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "8.83333333333334],PARAMETER[\"central_meridian\",-74.5],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",150000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2828\"]]"); p = add_epsg_def_ex (filter, first, last, 2829, "epsg", 2829, "NAD83(HARN) / New York Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New York Central\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",40],PARAMETER[\"central_meridian\",-76.58333333333333],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9999375],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",250000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2829\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_13.c��������������������������������������������������0000664�0001750�0001750�00000553374�12544707704�017054� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_13 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 3346, "epsg", 3346, "LKS94 / Lithuania TM", 0, 1, "GRS 1980", "Greenwich", "Lithuania_1994_ETRS89", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9998 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"LKS94 / Lithuania TM\",GEOGCS[\"LKS94\",DATUM[\""); add_srs_wkt (p, 1, "Lithuania_1994_ETRS89\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 2, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"6126\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4669\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",24],PARAMETER[\"scale_factor\",0.9998],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 12, "NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3346\"]]"); p = add_epsg_def_ex (filter, first, last, 3347, "epsg", 3347, "NAD83 / Statistics Canada Lambert", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675 +lon_0=-9"); add_proj4text (p, 1, "1.86666666666666 +x_0=6200000 +y_0=3000000 +ellps=GRS80 "); add_proj4text (p, 2, "+towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Statistics Canada Lambert\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",49],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_2\",77],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_origin\",63.390675],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-91.86666666666666],PARAMETER[\"false_easting\",6200000"); add_srs_wkt (p, 12, "],PARAMETER[\"false_northing\",3000000],UNIT[\"metre\",1"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3347\"]]"); p = add_epsg_def_ex (filter, first, last, 3348, "epsg", 3348, "NAD83(CSRS) / Statistics Canada Lambert", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675 +lon_0=-9"); add_proj4text (p, 1, "1.86666666666666 +x_0=6200000 +y_0=3000000 +ellps=GRS80 "); add_proj4text (p, 2, "+towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Statistics Canada Lambert\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",49],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 10, "2\",77],PARAMETER[\"latitude_of_origin\",63.390675],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-91.86666666666666],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",6200000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",3000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 14, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 15, "TY[\"EPSG\",\"3348\"]]"); p = add_epsg_def_ex (filter, first, last, 3349, "epsg", 3349, "WGS 84 / PDC Mercator (deprecated)", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Mercator_1SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=merc +lon_0=-150 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / PDC Mercator (deprecated)\",GEOGCS[\"W"); add_srs_wkt (p, 1, "GS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,2"); add_srs_wkt (p, 2, "98.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 6, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Mercator_1SP\"],PARAMETER[\"central_meridian\",-150]"); add_srs_wkt (p, 8, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 9, "\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 10, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 11, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3349\"]]"); p = add_epsg_def_ex (filter, first, last, 3350, "epsg", 3350, "Pulkovo 1942 / CS63 zone C0", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1 +lon_0=21.95 +k=1 +x_0=250000 +y_"); add_proj4text (p, 1, "0=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.8"); add_proj4text (p, 2, "2,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone C0\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, ".1],PARAMETER[\"central_meridian\",21.95],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",250000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"3350\"]]"); p = add_epsg_def_ex (filter, first, last, 3351, "epsg", 3351, "Pulkovo 1942 / CS63 zone C1", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1 +lon_0=24.95 +k=1 +x_0=1250000 +y"); add_proj4text (p, 1, "_0=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0."); add_proj4text (p, 2, "82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone C1\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, ".1],PARAMETER[\"central_meridian\",24.95],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",1250000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3351\"]]"); p = add_epsg_def_ex (filter, first, last, 3352, "epsg", 3352, "Pulkovo 1942 / CS63 zone C2", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0.1 +lon_0=27.95 +k=1 +x_0=2250000 +y"); add_proj4text (p, 1, "_0=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0."); add_proj4text (p, 2, "82,-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / CS63 zone C2\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940"); add_srs_wkt (p, 2, "\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[2"); add_srs_wkt (p, 3, "3.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, ".1],PARAMETER[\"central_meridian\",27.95],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",2250000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3352\"]]"); p = add_epsg_def_ex (filter, first, last, 3353, "epsg", 3353, "Mhast (onshore) / UTM zone 32S", 0, 0, "International 1924", "Greenwich", "Mhast_onshore", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mhast (onshore) / UTM zone 32S\",GEOGCS[\"Mhast"); add_srs_wkt (p, 1, " (onshore)\",DATUM[\"Mhast_onshore\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6704\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4704\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",9],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",10000000],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "353\"]]"); p = add_epsg_def_ex (filter, first, last, 3354, "epsg", 3354, "Mhast (offshore) / UTM zone 32S", 0, 0, "International 1924", "Greenwich", "Mhast_offshore", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mhast (offshore) / UTM zone 32S\",GEOGCS[\"Mhas"); add_srs_wkt (p, 1, "t (offshore)\",DATUM[\"Mhast_offshore\",SPHEROID[\"Inter"); add_srs_wkt (p, 2, "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6705\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"470"); add_srs_wkt (p, 7, "5\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",9],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"3354\"]]"); p = add_epsg_def_ex (filter, first, last, 3355, "epsg", 3355, "Egypt Gulf of Suez S-650 TL / Red Belt", 0, 0, "Helmert 1906", "Greenwich", "Egypt_Gulf_of_Suez_S_650_TL", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=31 +k=1 +x_0=615000 +y_0=81"); add_proj4text (p, 1, "0000 +ellps=helmert +towgs84=-146.21,112.63,4.05,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Egypt Gulf of Suez S-650 TL / Red Belt\",GEOGCS"); add_srs_wkt (p, 1, "[\"Egypt Gulf of Suez S-650 TL\",DATUM[\"Egypt_Gulf_of_S"); add_srs_wkt (p, 2, "uez_S_650_TL\",SPHEROID[\"Helmert 1906\",6378200,298.3,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7020\"]],TOWGS84[-146.21,112.63,4.05"); add_srs_wkt (p, 4, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6706\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4706\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",30],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",31],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",615000],PARAMETER[\"false_northing\",810000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"3355\"]]"); p = add_epsg_def_ex (filter, first, last, 3356, "epsg", 3356, "Grand Cayman 1959 / UTM zone 17N (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "Grand_Cayman_Geodetic_Datum_1959", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=clrk66 +towgs84=-179.483,-69.3"); add_proj4text (p, 1, "79,-27.584,-7.862,8.163,6.042,-13.925 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Grand Cayman 1959 / UTM zone 17N (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"GCGD59\",DATUM[\"Grand_Cayman_Geodetic_Datum_1"); add_srs_wkt (p, 2, "959\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821389"); add_srs_wkt (p, 3, "82,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-179.483,-69.37"); add_srs_wkt (p, 4, "9,-27.584,-7.862,8.163,6.042,-13.925],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"6723\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 7, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 8, "ude\",EAST],AUTHORITY[\"EPSG\",\"4723\"]],PROJECTION[\"T"); add_srs_wkt (p, 9, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 10, "],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_"); add_srs_wkt (p, 11, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 14, "ng\",NORTH],AUTHORITY[\"EPSG\",\"3356\"]]"); p = add_epsg_def_ex (filter, first, last, 3357, "epsg", 3357, "Little Cayman 1961 / UTM zone 17N (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "Sister_Islands_Geodetic_Datum_1961", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=clrk66 +towgs84=8.853,-52.644,"); add_proj4text (p, 1, "180.304,-0.393,-2.323,2.96,-24.081 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Little Cayman 1961 / UTM zone 17N (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"SIGD61\",DATUM[\"Sister_Islands_Geodetic_Datum"); add_srs_wkt (p, 2, "_1961\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213"); add_srs_wkt (p, 3, "8982,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[8.853,-52.644"); add_srs_wkt (p, 4, ",180.304,-0.393,-2.323,2.96,-24.081],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"6726\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 6, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 8, "de\",EAST],AUTHORITY[\"EPSG\",\"4726\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 9, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 10, ",PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_f"); add_srs_wkt (p, 11, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 12, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"3357\"]]"); p = add_epsg_def_ex (filter, first, last, 3358, "epsg", 3358, "NAD83(HARN) / North Carolina", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); add_proj4text (p, 1, "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / North Carolina\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_1\",36.16666666666666],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",34.33333333333334],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",33.75],PARAMETER[\"central_meridian\",-79],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",609601.22],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3358\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 3359, "epsg", 3359, "NAD83(HARN) / North Carolina (ftUS) (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); add_proj4text (p, 1, "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024385 +y_0="); add_proj4text (p, 2, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / North Carolina (ftUS) (deprecated"); add_srs_wkt (p, 1, ")\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_R"); add_srs_wkt (p, 2, "eference_Network\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "52\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"standard_parallel_1\",36.16666666666666],PARAMETE"); add_srs_wkt (p, 10, "R[\"standard_parallel_2\",34.33333333333334],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",33.75],PARAMETER[\"central_meridian"); add_srs_wkt (p, 12, "\",-79],PARAMETER[\"false_easting\",2000004.000008],PARA"); add_srs_wkt (p, 13, "METER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 15, "],AUTHORITY[\"EPSG\",\"3359\"]]"); p = add_epsg_def_ex (filter, first, last, 3360, "epsg", 3360, "NAD83(HARN) / South Carolina", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31"); add_proj4text (p, 1, ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / South Carolina\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_1\",34.83333333333334],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",32.5],PARAMETER[\"latitude_of_origin\",31.83333333"); add_srs_wkt (p, 11, "333333],PARAMETER[\"central_meridian\",-81],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",609600],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 13, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3360\"]]"); p = add_epsg_def_ex (filter, first, last, 3361, "epsg", 3361, "NAD83(HARN) / South Carolina (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31"); add_proj4text (p, 1, ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / South Carolina (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",34.83333333333334],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",32.5],PARAMETER[\"latitude_of_origin\",31.833"); add_srs_wkt (p, 11, "33333333333],PARAMETER[\"central_meridian\",-81],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_easting\",2000000],PARAMETER[\"false_northing"); add_srs_wkt (p, 13, "\",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]]"); add_srs_wkt (p, 14, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "3361\"]]"); p = add_epsg_def_ex (filter, first, last, 3362, "epsg", 3362, "NAD83(HARN) / Pennsylvania North", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4"); add_proj4text (p, 1, "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Pennsylvania North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",41.95],PARAMETER[\"standard_parallel_2\",4"); add_srs_wkt (p, 10, "0.88333333333333],PARAMETER[\"latitude_of_origin\",40.16"); add_srs_wkt (p, 11, "666666666666],PARAMETER[\"central_meridian\",-77.75],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_easting\",600000],PARAMETER[\"false_north"); add_srs_wkt (p, 13, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 14, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "3362\"]]"); p = add_epsg_def_ex (filter, first, last, 3363, "epsg", 3363, "NAD83(HARN) / Pennsylvania North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4"); add_proj4text (p, 1, "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Pennsylvania North (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_"); add_srs_wkt (p, 2, "Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_1\",41.95],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",40.88333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",40.16666666666666],PARAMETER[\"central_meridian\",-77.7"); add_srs_wkt (p, 12, "5],PARAMETER[\"false_easting\",1968500],PARAMETER[\"fals"); add_srs_wkt (p, 13, "e_northing\",0],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 14, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 15, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3363\"]]"); p = add_epsg_def_ex (filter, first, last, 3364, "epsg", 3364, "NAD83(HARN) / Pennsylvania South", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); add_proj4text (p, 1, "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Pennsylvania South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",40.96666666666667],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",39.93333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 11, "igin\",39.33333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 12, ",-77.75],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 15, "\"EPSG\",\"3364\"]]"); p = add_epsg_def_ex (filter, first, last, 3365, "epsg", 3365, "NAD83(HARN) / Pennsylvania South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); add_proj4text (p, 1, "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Pennsylvania South (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_"); add_srs_wkt (p, 2, "Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_1\",40.96666666666667],PARAMETER[\"stan"); add_srs_wkt (p, 10, "dard_parallel_2\",39.93333333333333],PARAMETER[\"latitud"); add_srs_wkt (p, 11, "e_of_origin\",39.33333333333334],PARAMETER[\"central_mer"); add_srs_wkt (p, 12, "idian\",-77.75],PARAMETER[\"false_easting\",1968500],PAR"); add_srs_wkt (p, 13, "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3"); add_srs_wkt (p, 14, "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 15, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3365\"]]"); p = add_epsg_def_ex (filter, first, last, 3366, "epsg", 3366, "Hong Kong 1963 Grid System (deprecated)", 0, 1, "Clarke 1858", "Greenwich", "Hong_Kong_1963", "Cassini_Soldner", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=cass +lat_0=22.31213333333334 +lon_0=114.178555555"); add_proj4text (p, 1, "5556 +x_0=40243.57775604237 +y_0=19069.93351512578 +a=63"); add_proj4text (p, 2, "78293.645208759 +b=6356617.987679838 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hong Kong 1963 Grid System (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"Hong Kong 1963\",DATUM[\"Hong_Kong_1963\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1858\",6378293.645208759,294.2606763692606,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"6738\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4738\"]],PROJECTION[\"Cassini_Soldner\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",22.31213333333334],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",114.1785555555556],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",40243.57775604237],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",19069.93351512578],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Ea"); add_srs_wkt (p, 13, "sting\",EAST],AUTHORITY[\"EPSG\",\"3366\"]]"); p = add_epsg_def_ex (filter, first, last, 3367, "epsg", 3367, "IGN Astro 1960 / UTM zone 28N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "IGN_Astro_1960", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN Astro 1960 / UTM zone 28N\",GEOGCS[\"IGN As"); add_srs_wkt (p, 1, "tro 1960\",DATUM[\"IGN_Astro_1960\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "80 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6700\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4700\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "367\"]]"); p = add_epsg_def_ex (filter, first, last, 3368, "epsg", 3368, "IGN Astro 1960 / UTM zone 29N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "IGN_Astro_1960", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN Astro 1960 / UTM zone 29N\",GEOGCS[\"IGN As"); add_srs_wkt (p, 1, "tro 1960\",DATUM[\"IGN_Astro_1960\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "80 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6700\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4700\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "9],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"336"); add_srs_wkt (p, 13, "8\"]]"); p = add_epsg_def_ex (filter, first, last, 3369, "epsg", 3369, "IGN Astro 1960 / UTM zone 30N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "IGN_Astro_1960", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN Astro 1960 / UTM zone 30N\",GEOGCS[\"IGN As"); add_srs_wkt (p, 1, "tro 1960\",DATUM[\"IGN_Astro_1960\",SPHEROID[\"Clarke 18"); add_srs_wkt (p, 2, "80 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6700\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4700\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"336"); add_srs_wkt (p, 13, "9\"]]"); p = add_epsg_def_ex (filter, first, last, 3370, "epsg", 3370, "NAD27 / UTM zone 59N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=59 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 59N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",171],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3370\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 3371, "epsg", 3371, "NAD27 / UTM zone 60N", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=60 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / UTM zone 60N\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",177],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3371\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 3372, "epsg", 3372, "NAD83 / UTM zone 59N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=59 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 59N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",171],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"3372\"]]"); p = add_epsg_def_ex (filter, first, last, 3373, "epsg", 3373, "NAD83 / UTM zone 60N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=60 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 60N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",177],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"3373\"]]"); p = add_epsg_def_ex (filter, first, last, 3374, "epsg", 3374, "FD54 / UTM zone 29N", 0, 0, "International 1924", "Greenwich", "Faroe_Datum_1954", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"FD54 / UTM zone 29N\",GEOGCS[\"FD54\",DATUM[\"F"); add_srs_wkt (p, 1, "aroe_Datum_1954\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 2, "8,297,AUTHORITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6741\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 6, "\",EAST],AUTHORITY[\"EPSG\",\"4741\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 7, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 8, "ARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_fact"); add_srs_wkt (p, 9, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"3374\"]]"); p = add_epsg_def_ex (filter, first, last, 3375, "epsg", 3375, "GDM2000 / Peninsula RSO", 0, 0, "GRS 1980", "Greenwich", "Geodetic_Datum_of_Malaysia_2000", "Hotine_Oblique_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.02579646666"); add_proj4text (p, 1, "66 +k=0.99984 +x_0=804671 +y_0=0 +no_uoff +gamma=323.130"); add_proj4text (p, 2, "1023611111 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Peninsula RSO\",GEOGCS[\"GDM2000\",DA"); add_srs_wkt (p, 1, "TUM[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"474"); add_srs_wkt (p, 7, "2\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARAMETER["); add_srs_wkt (p, 8, "\"latitude_of_center\",4],PARAMETER[\"longitude_of_cente"); add_srs_wkt (p, 9, "r\",102.25],PARAMETER[\"azimuth\",323.0257964666666],PAR"); add_srs_wkt (p, 10, "AMETER[\"rectified_grid_angle\",323.1301023611111],PARAM"); add_srs_wkt (p, 11, "ETER[\"scale_factor\",0.99984],PARAMETER[\"false_easting"); add_srs_wkt (p, 12, "\",804671],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 13, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 14, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3375\"]]"); p = add_epsg_def_ex (filter, first, last, 3376, "epsg", 3376, "GDM2000 / East Malaysia BRSO", 0, 0, "GRS 1980", "Greenwich", "Geodetic_Datum_of_Malaysia_2000", "Hotine_Oblique_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.9"); add_proj4text (p, 1, "9984 +x_0=0 +y_0=0 +no_uoff +gamma=53.13010236111111 +el"); add_proj4text (p, 2, "lps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / East Malaysia BRSO\",GEOGCS[\"GDM2000"); add_srs_wkt (p, 1, "\",DATUM[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],AUTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4742\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"latitude_of_center\",4],PARAMETER[\"longitude_of_ce"); add_srs_wkt (p, 9, "nter\",115],PARAMETER[\"azimuth\",53.31580995],PARAMETER"); add_srs_wkt (p, 10, "[\"rectified_grid_angle\",53.13010236111111],PARAMETER[\""); add_srs_wkt (p, 11, "scale_factor\",0.99984],PARAMETER[\"false_easting\",0],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 14, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3376\"]]"); p = add_epsg_def_ex (filter, first, last, 3377, "epsg", 3377, "GDM2000 / Johor Grid", 0, 0, "GRS 1980", "Greenwich", "Geodetic_Datum_of_Malaysia_2000", "Cassini_Soldner", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=cass +lat_0=2.121679744444445 +lon_0=103.427936236"); add_proj4text (p, 1, "1111 +x_0=-14810.562 +y_0=8758.32 +ellps=GRS80 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Johor Grid\",GEOGCS[\"GDM2000\",DATUM"); add_srs_wkt (p, 1, "[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4742\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 8, "of_origin\",2.121679744444445],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",103.4279362361111],PARAMETER[\"false_easting\",-14"); add_srs_wkt (p, 10, "810.562],PARAMETER[\"false_northing\",8758.32],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3377\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 3378, "epsg", 3378, "GDM2000 / Sembilan and Melaka Grid", 0, 0, "GRS 1980", "Greenwich", "Geodetic_Datum_of_Malaysia_2000", "Cassini_Soldner", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=cass +lat_0=2.682347636111111 +lon_0=101.974905041"); add_proj4text (p, 1, "6667 +x_0=3673.785 +y_0=-4240.573 +ellps=GRS80 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Sembilan and Melaka Grid\",GEOGCS[\"G"); add_srs_wkt (p, 1, "DM2000\",DATUM[\"Geodetic_Datum_of_Malaysia_2000\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],AUTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4742\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",2.682347636111111],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",101.9749050416667],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",3673.785],PARAMETER[\"false_northing\",-4240.5"); add_srs_wkt (p, 11, "73],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"3378\"]]"); p = add_epsg_def_ex (filter, first, last, 3379, "epsg", 3379, "GDM2000 / PahangGrid", 0, 0, "GRS 1980", "Greenwich", "Geodetic_Datum_of_Malaysia_2000", "Cassini_Soldner", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=cass +lat_0=3.769388088888889 +lon_0=102.368298983"); add_proj4text (p, 1, "3333 +x_0=-7368.228 +y_0=6485.858 +ellps=GRS80 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / PahangGrid\",GEOGCS[\"GDM2000\",DATUM"); add_srs_wkt (p, 1, "[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4742\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 8, "of_origin\",3.769388088888889],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",102.3682989833333],PARAMETER[\"false_easting\",-73"); add_srs_wkt (p, 10, "68.228],PARAMETER[\"false_northing\",6485.858],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3379\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 3380, "epsg", 3380, "GDM2000 / Selangor Grid", 0, 0, "GRS 1980", "Greenwich", "Geodetic_Datum_of_Malaysia_2000", "Cassini_Soldner", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=cass +lat_0=3.68464905 +lon_0=101.3891079138889 +x"); add_proj4text (p, 1, "_0=-34836.161 +y_0=56464.049 +ellps=GRS80 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Selangor Grid\",GEOGCS[\"GDM2000\",DA"); add_srs_wkt (p, 1, "TUM[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"474"); add_srs_wkt (p, 7, "2\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"latitu"); add_srs_wkt (p, 8, "de_of_origin\",3.68464905],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",101.3891079138889],PARAMETER[\"false_easting\",-34836.1"); add_srs_wkt (p, 10, "61],PARAMETER[\"false_northing\",56464.049],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 12, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3380\"]]"); p = add_epsg_def_ex (filter, first, last, 3381, "epsg", 3381, "GDM2000 / Terengganu Grid", 0, 0, "GRS 1980", "Greenwich", "Geodetic_Datum_of_Malaysia_2000", "Cassini_Soldner", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=cass +lat_0=4.9762852 +lon_0=103.070275625 +x_0=19"); add_proj4text (p, 1, "594.245 +y_0=3371.895 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Terengganu Grid\",GEOGCS[\"GDM2000\","); add_srs_wkt (p, 1, "DATUM[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "42\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",4.9762852],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",103.070275625],PARAMETER[\"false_easting\",19594.245],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",3371.895],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 12, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3381\"]]"); p = add_epsg_def_ex (filter, first, last, 3382, "epsg", 3382, "GDM2000 / Pinang Grid", 0, 0, "GRS 1980", "Greenwich", "Geodetic_Datum_of_Malaysia_2000", "Cassini_Soldner", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=cass +lat_0=5.421517541666667 +lon_0=100.344376963"); add_proj4text (p, 1, "8889 +x_0=-23.414 +y_0=62.283 +ellps=GRS80 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Pinang Grid\",GEOGCS[\"GDM2000\",DATU"); add_srs_wkt (p, 1, "M[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 2, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4742\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 8, "of_origin\",5.421517541666667],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",100.3443769638889],PARAMETER[\"false_easting\",-23"); add_srs_wkt (p, 10, ".414],PARAMETER[\"false_northing\",62.283],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3382\"]]"); p = add_epsg_def_ex (filter, first, last, 3383, "epsg", 3383, "GDM2000 / Kedah and Perlis Grid", 0, 0, "GRS 1980", "Greenwich", "Geodetic_Datum_of_Malaysia_2000", "Cassini_Soldner", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=cass +lat_0=5.964672713888889 +lon_0=100.636371111"); add_proj4text (p, 1, "1111 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Kedah and Perlis Grid\",GEOGCS[\"GDM2"); add_srs_wkt (p, 1, "000\",DATUM[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],AUTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4742\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",5.964672713888889],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",100.6363711111111],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 11, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 12, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3383\"]]"); p = add_epsg_def_ex (filter, first, last, 3384, "epsg", 3384, "GDM2000 / Perak Grid", 0, 0, "GRS 1980", "Greenwich", "Geodetic_Datum_of_Malaysia_2000", "Cassini_Soldner", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=cass +lat_0=4.859063022222222 +lon_0=100.815410586"); add_proj4text (p, 1, "1111 +x_0=-1.769 +y_0=133454.779 +ellps=GRS80 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Perak Grid\",GEOGCS[\"GDM2000\",DATUM"); add_srs_wkt (p, 1, "[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4742\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 8, "of_origin\",4.859063022222222],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",100.8154105861111],PARAMETER[\"false_easting\",-1."); add_srs_wkt (p, 10, "769],PARAMETER[\"false_northing\",133454.779],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3384\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 3385, "epsg", 3385, "GDM2000 / Kelantan Grid", 0, 0, "GRS 1980", "Greenwich", "Geodetic_Datum_of_Malaysia_2000", "Cassini_Soldner", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=cass +lat_0=5.972543658333334 +lon_0=102.295241669"); add_proj4text (p, 1, "4444 +x_0=13227.851 +y_0=8739.894 +ellps=GRS80 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDM2000 / Kelantan Grid\",GEOGCS[\"GDM2000\",DA"); add_srs_wkt (p, 1, "TUM[\"Geodetic_Datum_of_Malaysia_2000\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6742\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"474"); add_srs_wkt (p, 7, "2\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"latitu"); add_srs_wkt (p, 8, "de_of_origin\",5.972543658333334],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",102.2952416694444],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "13227.851],PARAMETER[\"false_northing\",8739.894],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"338"); add_srs_wkt (p, 13, "5\"]]"); p = add_epsg_def_ex (filter, first, last, 3386, "epsg", 3386, "KKJ / Finland zone 0", 0, 1, "International 1924", "Greenwich", "Kartastokoordinaattijarjestelma_1966", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=intl +towgs84=-96.062,-82.428,-121.753,4.801,0.345"); add_proj4text (p, 2, ",-1.376,1.496 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"KKJ / Finland zone 0\",GEOGCS[\"KKJ\",DATUM[\"K"); add_srs_wkt (p, 1, "artastokoordinaattijarjestelma_1966\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.49"); add_srs_wkt (p, 4, "6],AUTHORITY[\"EPSG\",\"6123\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "23\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",18"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 13, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3386\"]]"); p = add_epsg_def_ex (filter, first, last, 3387, "epsg", 3387, "KKJ / Finland zone 5", 0, 1, "International 1924", "Greenwich", "Kartastokoordinaattijarjestelma_1966", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=intl +towgs84=-96.062,-82.428,-121.753,4.801,0.34"); add_proj4text (p, 2, "5,-1.376,1.496 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"KKJ / Finland zone 5\",GEOGCS[\"KKJ\",DATUM[\"K"); add_srs_wkt (p, 1, "artastokoordinaattijarjestelma_1966\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.49"); add_srs_wkt (p, 4, "6],AUTHORITY[\"EPSG\",\"6123\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "23\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",33"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",5500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 13, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3387\"]]"); p = add_epsg_def_ex (filter, first, last, 3388, "epsg", 3388, "Pulkovo 1942 / Caspian Sea Mercator", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Mercator_2SP", "metre", "none", "North", "none", "East"); add_proj4text (p, 0, "+proj=merc +lon_0=51 +lat_ts=42 +x_0=0 +y_0=0 +ellps=kra"); add_proj4text (p, 1, "ss +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0.12 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Caspian Sea Mercator\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Mercator_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",42],PARAMETER[\"central_meridian\",51],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"none\",NORT"); add_srs_wkt (p, 12, "H],AXIS[\"none\",EAST],AUTHORITY[\"EPSG\",\"3388\"]]"); p = add_epsg_def_ex (filter, first, last, 3389, "epsg", 3389, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 60", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 60\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",180],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",60500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"3389\"]]"); p = add_epsg_def_ex (filter, first, last, 3390, "epsg", 3390, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 60", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 60\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",180],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",6"); add_srs_wkt (p, 11, "0500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"3390\"]]"); p = add_epsg_def_ex (filter, first, last, 3391, "epsg", 3391, "Karbala 1979 / UTM zone 37N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Karbala_1979", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=clrk80 +towgs84=70.995,-335.91"); add_proj4text (p, 1, "6,262.898,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Karbala 1979 / UTM zone 37N\",GEOGCS[\"Karbala "); add_srs_wkt (p, 1, "1979\",DATUM[\"Karbala_1979\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[70.995,-335.916,262.898,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6743\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4743\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"3391\"]]"); p = add_epsg_def_ex (filter, first, last, 3392, "epsg", 3392, "Karbala 1979 / UTM zone 38N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Karbala_1979", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=clrk80 +towgs84=70.995,-335.91"); add_proj4text (p, 1, "6,262.898,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Karbala 1979 / UTM zone 38N\",GEOGCS[\"Karbala "); add_srs_wkt (p, 1, "1979\",DATUM[\"Karbala_1979\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[70.995,-335.916,262.898,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6743\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4743\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"3392\"]]"); p = add_epsg_def_ex (filter, first, last, 3393, "epsg", 3393, "Karbala 1979 / UTM zone 39N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Karbala_1979", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=clrk80 +towgs84=70.995,-335.91"); add_proj4text (p, 1, "6,262.898,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Karbala 1979 / UTM zone 39N\",GEOGCS[\"Karbala "); add_srs_wkt (p, 1, "1979\",DATUM[\"Karbala_1979\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[70.995,-335.916,262.898,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6743\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4743\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",51],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"3393\"]]"); p = add_epsg_def_ex (filter, first, last, 3394, "epsg", 3394, "Nahrwan 1934 / Iraq zone", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Nahrwan_1934", "Lambert_Conformal_Conic_1SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.99878"); add_proj4text (p, 1, "64078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nahrwan 1934 / Iraq zone\",GEOGCS[\"Nahrwan 193"); add_srs_wkt (p, 1, "4\",DATUM[\"Nahrwan_1934\",SPHEROID[\"Clarke 1880 (RGS)\""); add_srs_wkt (p, 2, ",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6744\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 6, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4744\"]],P"); add_srs_wkt (p, 7, "ROJECTION[\"Lambert_Conformal_Conic_1SP\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",32.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 9, ",45],PARAMETER[\"scale_factor\",0.9987864078],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",1500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "1166200],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"3394\"]]"); p = add_epsg_def_ex (filter, first, last, 3395, "epsg", 3395, "WGS 84 / World Mercator", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Mercator_1SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +uni"); add_proj4text (p, 1, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / World Mercator\",GEOGCS[\"WGS 84\",DAT"); add_srs_wkt (p, 1, "UM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.25722356"); add_srs_wkt (p, 2, "3,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"632"); add_srs_wkt (p, 3, "6\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Mercato"); add_srs_wkt (p, 7, "r_1SP\"],PARAMETER[\"central_meridian\",0],PARAMETER[\"s"); add_srs_wkt (p, 8, "cale_factor\",1],PARAMETER[\"false_easting\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 10, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 11, "NORTH],AUTHORITY[\"EPSG\",\"3395\"]]"); p = add_epsg_def_ex (filter, first, last, 3396, "epsg", 3396, "PD/83 / 3-degree Gauss-Kruger zone 3", 0, 1, "Bessel 1841", "Greenwich", "Potsdam_Datum_83", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PD/83 / 3-degree Gauss-Kruger zone 3\",GEOGCS[\""); add_srs_wkt (p, 1, "PD/83\",DATUM[\"Potsdam_Datum_83\",SPHEROID[\"Bessel 184"); add_srs_wkt (p, 2, "1\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6746\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"474"); add_srs_wkt (p, 7, "6\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",9],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",3500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 12, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"3396\"]]"); p = add_epsg_def_ex (filter, first, last, 3397, "epsg", 3397, "PD/83 / 3-degree Gauss-Kruger zone 4", 0, 1, "Bessel 1841", "Greenwich", "Potsdam_Datum_83", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PD/83 / 3-degree Gauss-Kruger zone 4\",GEOGCS[\""); add_srs_wkt (p, 1, "PD/83\",DATUM[\"Potsdam_Datum_83\",SPHEROID[\"Bessel 184"); add_srs_wkt (p, 2, "1\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6746\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"474"); add_srs_wkt (p, 7, "6\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",12]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",4500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXI"); add_srs_wkt (p, 12, "S[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3397\"]]"); p = add_epsg_def_ex (filter, first, last, 3398, "epsg", 3398, "RD/83 / 3-degree Gauss-Kruger zone 4", 0, 1, "Bessel 1841", "Greenwich", "Rauenberg_Datum_83", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RD/83 / 3-degree Gauss-Kruger zone 4\",GEOGCS[\""); add_srs_wkt (p, 1, "RD/83\",DATUM[\"Rauenberg_Datum_83\",SPHEROID[\"Bessel 1"); add_srs_wkt (p, 2, "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6745\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "45\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",12"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",4500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3398\"]]"); p = add_epsg_def_ex (filter, first, last, 3399, "epsg", 3399, "RD/83 / 3-degree Gauss-Kruger zone 5", 0, 1, "Bessel 1841", "Greenwich", "Rauenberg_Datum_83", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RD/83 / 3-degree Gauss-Kruger zone 5\",GEOGCS[\""); add_srs_wkt (p, 1, "RD/83\",DATUM[\"Rauenberg_Datum_83\",SPHEROID[\"Bessel 1"); add_srs_wkt (p, 2, "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6745\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 7, "45\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",15"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",5500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 11, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AX"); add_srs_wkt (p, 12, "IS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3399\"]]"); p = add_epsg_def_ex (filter, first, last, 3400, "epsg", 3400, "NAD83 / Alberta 10-TM (Forest)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alberta 10-TM (Forest)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-115],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "2],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"3400\"]]"); p = add_epsg_def_ex (filter, first, last, 3401, "epsg", 3401, "NAD83 / Alberta 10-TM (Resource)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alberta 10-TM (Resource)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",-115],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "9992],PARAMETER[\"false_easting\",0],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"3401\"]]"); p = add_epsg_def_ex (filter, first, last, 3402, "epsg", 3402, "NAD83(CSRS) / Alberta 10-TM (Forest)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Alberta 10-TM (Forest)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 9, "_origin\",0],PARAMETER[\"central_meridian\",-115],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9992],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3402\"]]"); p = add_epsg_def_ex (filter, first, last, 3403, "epsg", 3403, "NAD83(CSRS) / Alberta 10-TM (Resource)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Alberta 10-TM (Resource)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",0],PARAMETER[\"central_meridian\",-115],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9992],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 13, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3403\"]]"); p = add_epsg_def_ex (filter, first, last, 3404, "epsg", 3404, "NAD83(HARN) / North Carolina (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); add_proj4text (p, 1, "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / North Carolina (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",36.16666666666666],PARAMETER[\"standard"); add_srs_wkt (p, 10, "_parallel_2\",34.33333333333334],PARAMETER[\"latitude_of"); add_srs_wkt (p, 11, "_origin\",33.75],PARAMETER[\"central_meridian\",-79],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_easting\",2000000],PARAMETER[\"false_nort"); add_srs_wkt (p, 13, "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 15, "ORTH],AUTHORITY[\"EPSG\",\"3404\"]]"); p = add_epsg_def_ex (filter, first, last, 3405, "epsg", 3405, "VN-2000 / UTM zone 48N", 0, 0, "WGS 84", "Greenwich", "Vietnam_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +ellps=WGS84 +towgs84=-192.873,-39.38"); add_proj4text (p, 1, "2,-111.202,-0.00205,-0.0005,0.00335,0.0188 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"VN-2000 / UTM zone 48N\",GEOGCS[\"VN-2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Vietnam_2000\",SPHEROID[\"WGS 84\",6378137,298.2572"); add_srs_wkt (p, 2, "23563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[-192.873,-39"); add_srs_wkt (p, 3, ".382,-111.202,-0.00205,-0.0005,0.00335,0.0188],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6756\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4756\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",0],PARAMETER[\"central_meridian\",105],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3405\"]]"); p = add_epsg_def_ex (filter, first, last, 3406, "epsg", 3406, "VN-2000 / UTM zone 49N", 0, 0, "WGS 84", "Greenwich", "Vietnam_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=49 +ellps=WGS84 +towgs84=-192.873,-39.38"); add_proj4text (p, 1, "2,-111.202,-0.00205,-0.0005,0.00335,0.0188 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"VN-2000 / UTM zone 49N\",GEOGCS[\"VN-2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Vietnam_2000\",SPHEROID[\"WGS 84\",6378137,298.2572"); add_srs_wkt (p, 2, "23563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[-192.873,-39"); add_srs_wkt (p, 3, ".382,-111.202,-0.00205,-0.0005,0.00335,0.0188],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6756\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4756\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",0],PARAMETER[\"central_meridian\",111],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3406\"]]"); p = add_epsg_def_ex (filter, first, last, 3407, "epsg", 3407, "Hong Kong 1963 Grid System", 0, 1, "Clarke 1858", "Greenwich", "Hong_Kong_1963", "Cassini_Soldner", "Clarke's foot", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=cass +lat_0=22.31213333333334 +lon_0=114.178555555"); add_proj4text (p, 1, "5556 +x_0=40243.57775604237 +y_0=19069.93351512578 +a=63"); add_proj4text (p, 2, "78293.645208759 +b=6356617.987679838 +to_meter=0.3047972"); add_proj4text (p, 3, "654 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hong Kong 1963 Grid System\",GEOGCS[\"Hong Kong"); add_srs_wkt (p, 1, " 1963\",DATUM[\"Hong_Kong_1963\",SPHEROID[\"Clarke 1858\""); add_srs_wkt (p, 2, ",6378293.645208759,294.2606763692606,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7007\"]],AUTHORITY[\"EPSG\",\"6738\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4738\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER"); add_srs_wkt (p, 8, "[\"latitude_of_origin\",22.31213333333334],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",114.1785555555556],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",132033.92],PARAMETER[\"false_northing\",62565.9"); add_srs_wkt (p, 11, "6],UNIT[\"Clarke's foot\",0.3047972654,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9005\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AUTHORITY[\"EPSG\",\"3407\"]]"); p = add_epsg_def_ex (filter, first, last, 3408, "epsg", 3408, "NSIDC EASE-Grid North", 0, 0, "International 1924 Authalic Sphere", "Greenwich", "Not_specified_based_on_International_1924_Authalic_Sphere", "Lambert_Azimuthal_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6371228 +"); add_proj4text (p, 1, "b=6371228 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NSIDC EASE-Grid North\",GEOGCS[\"Unspecified da"); add_srs_wkt (p, 1, "tum based upon the International 1924 Authalic Sphere\","); add_srs_wkt (p, 2, "DATUM[\"Not_specified_based_on_International_1924_Authal"); add_srs_wkt (p, 3, "ic_Sphere\",SPHEROID[\"International 1924 Authalic Spher"); add_srs_wkt (p, 4, "e\",6371228,0,AUTHORITY[\"EPSG\",\"7057\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"6053\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 8, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4053\"]],PROJECTI"); add_srs_wkt (p, 9, "ON[\"Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_center\",90],PARAMETER[\"longitude_of_center\",0],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",0],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"340"); add_srs_wkt (p, 14, "8\"]]"); p = add_epsg_def_ex (filter, first, last, 3409, "epsg", 3409, "NSIDC EASE-Grid South", 0, 0, "International 1924 Authalic Sphere", "Greenwich", "Not_specified_based_on_International_1924_Authalic_Sphere", "Lambert_Azimuthal_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=laea +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +a=6371228 "); add_proj4text (p, 1, "+b=6371228 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NSIDC EASE-Grid South\",GEOGCS[\"Unspecified da"); add_srs_wkt (p, 1, "tum based upon the International 1924 Authalic Sphere\","); add_srs_wkt (p, 2, "DATUM[\"Not_specified_based_on_International_1924_Authal"); add_srs_wkt (p, 3, "ic_Sphere\",SPHEROID[\"International 1924 Authalic Spher"); add_srs_wkt (p, 4, "e\",6371228,0,AUTHORITY[\"EPSG\",\"7057\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"6053\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 8, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4053\"]],PROJECTI"); add_srs_wkt (p, 9, "ON[\"Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_center\",-90],PARAMETER[\"longitude_of_center\",0],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"34"); add_srs_wkt (p, 14, "09\"]]"); p = add_epsg_def_ex (filter, first, last, 3410, "epsg", 3410, "NSIDC EASE-Grid Global", 0, 0, "International 1924 Authalic Sphere", "Greenwich", "Not_specified_based_on_International_1924_Authalic_Sphere", "Cylindrical_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +a=6371228 +"); add_proj4text (p, 1, "b=6371228 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NSIDC EASE-Grid Global\",GEOGCS[\"Unspecified d"); add_srs_wkt (p, 1, "atum based upon the International 1924 Authalic Sphere\""); add_srs_wkt (p, 2, ",DATUM[\"Not_specified_based_on_International_1924_Autha"); add_srs_wkt (p, 3, "lic_Sphere\",SPHEROID[\"International 1924 Authalic Sphe"); add_srs_wkt (p, 4, "re\",6371228,0,AUTHORITY[\"EPSG\",\"7057\"]],AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"6053\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 8, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4053\"]],PROJECTI"); add_srs_wkt (p, 9, "ON[\"Cylindrical_Equal_Area\"],PARAMETER[\"standard_para"); add_srs_wkt (p, 10, "llel_1\",30],PARAMETER[\"central_meridian\",0],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",0],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3410\"]]"); p = add_epsg_def_ex (filter, first, last, 3411, "epsg", 3411, "NSIDC Sea Ice Polar Stereographic North", 0, 0, "Hughes 1980", "Greenwich", "Not_specified_based_on_Hughes_1980_ellipsoid", "Polar_Stereographic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 "); add_proj4text (p, 1, "+y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NSIDC Sea Ice Polar Stereographic North\",GEOGC"); add_srs_wkt (p, 1, "S[\"Unspecified datum based upon the Hughes 1980 ellipso"); add_srs_wkt (p, 2, "id\",DATUM[\"Not_specified_based_on_Hughes_1980_ellipsoi"); add_srs_wkt (p, 3, "d\",SPHEROID[\"Hughes 1980\",6378273,298.279411123064,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"7058\"]],AUTHORITY[\"EPSG\",\"6054\"]"); add_srs_wkt (p, 5, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 6, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 7, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 8, "],AUTHORITY[\"EPSG\",\"4054\"]],PROJECTION[\"Polar_Stere"); add_srs_wkt (p, 9, "ographic\"],PARAMETER[\"latitude_of_origin\",70],PARAMET"); add_srs_wkt (p, 10, "ER[\"central_meridian\",-45],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 11, "1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 13, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "3411\"]]"); p = add_epsg_def_ex (filter, first, last, 3412, "epsg", 3412, "NSIDC Sea Ice Polar Stereographic South", 0, 0, "Hughes 1980", "Greenwich", "Not_specified_based_on_Hughes_1980_ellipsoid", "Polar_Stereographic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-70 +lon_0=0 +k=1 +x_0=0 "); add_proj4text (p, 1, "+y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NSIDC Sea Ice Polar Stereographic South\",GEOGC"); add_srs_wkt (p, 1, "S[\"Unspecified datum based upon the Hughes 1980 ellipso"); add_srs_wkt (p, 2, "id\",DATUM[\"Not_specified_based_on_Hughes_1980_ellipsoi"); add_srs_wkt (p, 3, "d\",SPHEROID[\"Hughes 1980\",6378273,298.279411123064,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"7058\"]],AUTHORITY[\"EPSG\",\"6054\"]"); add_srs_wkt (p, 5, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 6, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 7, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 8, "],AUTHORITY[\"EPSG\",\"4054\"]],PROJECTION[\"Polar_Stere"); add_srs_wkt (p, 9, "ographic\"],PARAMETER[\"latitude_of_origin\",-70],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",0],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",0],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 13, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "3412\"]]"); p = add_epsg_def_ex (filter, first, last, 3413, "epsg", 3413, "WGS 84 / NSIDC Sea Ice Polar Stereographic North", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 "); add_proj4text (p, 1, "+y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / NSIDC Sea Ice Polar Stereographic Nort"); add_srs_wkt (p, 1, "h\",GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS "); add_srs_wkt (p, 2, "84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Polar_Stereographic\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",70],PARAMETER[\"central_meridian\",-45"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"3413\"]]"); p = add_epsg_def_ex (filter, first, last, 3414, "epsg", 3414, "SVY21 / Singapore TM", 0, 1, "WGS 84", "Greenwich", "SVY21", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=1.366666666666667 +lon_0=103.83333333"); add_proj4text (p, 1, "33333 +k=1 +x_0=28001.642 +y_0=38744.572 +ellps=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SVY21 / Singapore TM\",GEOGCS[\"SVY21\",DATUM[\""); add_srs_wkt (p, 1, "SVY21\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6757\"]],PR"); add_srs_wkt (p, 3, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 4, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 5, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4757\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",1.36666666666666"); add_srs_wkt (p, 8, "7],PARAMETER[\"central_meridian\",103.8333333333333],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, "8001.642],PARAMETER[\"false_northing\",38744.572],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"3414"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 3415, "epsg", 3415, "WGS 72BE / South China Sea Lambert", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=18 +lat_2=24 +lat_0=21 +lon_0=114 +x_0="); add_proj4text (p, 1, "500000 +y_0=500000 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 2, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / South China Sea Lambert\",GEOGCS[\"W"); add_srs_wkt (p, 1, "GS 72BE\",DATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\""); add_srs_wkt (p, 2, ",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7043\"]],TOWGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EP"); add_srs_wkt (p, 4, "SG\",\"6324\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",18],PARAMETER[\"standard_parallel_2\",24],PAR"); add_srs_wkt (p, 10, "AMETER[\"latitude_of_origin\",21],PARAMETER[\"central_me"); add_srs_wkt (p, 11, "ridian\",114],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",500000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 14, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3415\"]]"); p = add_epsg_def_ex (filter, first, last, 3416, "epsg", 3416, "ETRS89 / Austria Lambert", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Lambert_Conformal_Conic_2SP", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.3333"); add_proj4text (p, 1, "3333333333 +x_0=400000 +y_0=400000 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Austria Lambert\",GEOGCS[\"ETRS89\",DA"); add_srs_wkt (p, 1, "TUM[\"European_Terrestrial_Reference_System_1989\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",49],PARAMETER[\"standard_parallel_2\",46],PARAMETER"); add_srs_wkt (p, 10, "[\"latitude_of_origin\",47.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 11, "an\",13.33333333333333],PARAMETER[\"false_easting\",4000"); add_srs_wkt (p, 12, "00],PARAMETER[\"false_northing\",400000],UNIT[\"metre\","); add_srs_wkt (p, 13, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 14, "Y\",EAST],AUTHORITY[\"EPSG\",\"3416\"]]"); p = add_epsg_def_ex (filter, first, last, 3417, "epsg", 3417, "NAD83 / Iowa North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.99"); add_proj4text (p, 2, "99898402 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Iowa North (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",43.26666666"); add_srs_wkt (p, 9, "666667],PARAMETER[\"standard_parallel_2\",42.06666666666"); add_srs_wkt (p, 10, "667],PARAMETER[\"latitude_of_origin\",41.5],PARAMETER[\""); add_srs_wkt (p, 11, "central_meridian\",-93.5],PARAMETER[\"false_easting\",49"); add_srs_wkt (p, 12, "21250],PARAMETER[\"false_northing\",3280833.333300001],U"); add_srs_wkt (p, 13, "NIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 15, "RITY[\"EPSG\",\"3417\"]]"); p = add_epsg_def_ex (filter, first, last, 3418, "epsg", 3418, "NAD83 / Iowa South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, "667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Iowa South (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",41.78333333"); add_srs_wkt (p, 9, "333333],PARAMETER[\"standard_parallel_2\",40.61666666666"); add_srs_wkt (p, 10, "667],PARAMETER[\"latitude_of_origin\",40],PARAMETER[\"ce"); add_srs_wkt (p, 11, "ntral_meridian\",-93.5],PARAMETER[\"false_easting\",1640"); add_srs_wkt (p, 12, "416.6667],PARAMETER[\"false_northing\",0],UNIT[\"US surv"); add_srs_wkt (p, 13, "ey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"3418\"]]"); p = add_epsg_def_ex (filter, first, last, 3419, "epsg", 3419, "NAD83 / Kansas North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.9999"); add_proj4text (p, 2, "8984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=u"); add_proj4text (p, 3, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kansas North (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",39.7833333"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"standard_parallel_2\",38.7166666666"); add_srs_wkt (p, 10, "6667],PARAMETER[\"latitude_of_origin\",38.33333333333334"); add_srs_wkt (p, 11, "],PARAMETER[\"central_meridian\",-98],PARAMETER[\"false_"); add_srs_wkt (p, 12, "easting\",1312333.3333],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 13, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 15, "ORITY[\"EPSG\",\"3419\"]]"); p = add_epsg_def_ex (filter, first, last, 3420, "epsg", 3420, "NAD83 / Kansas South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99"); add_proj4text (p, 2, "998984 +y_0=399999.99998984 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 3, "0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kansas South (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",38.5666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"standard_parallel_2\",37.2666666666"); add_srs_wkt (p, 10, "6667],PARAMETER[\"latitude_of_origin\",36.66666666666666"); add_srs_wkt (p, 11, "],PARAMETER[\"central_meridian\",-98.5],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_easting\",1312333.3333],PARAMETER[\"false_northing\",1"); add_srs_wkt (p, 13, "312333.3333],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 15, ",NORTH],AUTHORITY[\"EPSG\",\"3420\"]]"); p = add_epsg_def_ex (filter, first, last, 3421, "epsg", 3421, "NAD83 / Nevada East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Nevada East (ftUS)\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-115.5833333333333],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9999],PARAMETER[\"false_easting\",656166.666"); add_srs_wkt (p, 11, "7],PARAMETER[\"false_northing\",26246666.66670001],UNIT["); add_srs_wkt (p, 12, "\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"3421\"]]"); p = add_epsg_def_ex (filter, first, last, 3422, "epsg", 3422, "NAD83 / Nevada Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, "9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Nevada Central (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",-116.6666666666667],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.9999],PARAMETER[\"false_easting\",1640416."); add_srs_wkt (p, 11, "6667],PARAMETER[\"false_northing\",19685000],UNIT[\"US s"); add_srs_wkt (p, 12, "urvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "3\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"3422\"]]"); p = add_epsg_def_ex (filter, first, last, 3423, "epsg", 3423, "NAD83 / Nevada West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Nevada West (ftUS)\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",34.75],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-118.5833333333333],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9999],PARAMETER[\"false_easting\",2624666.66"); add_srs_wkt (p, 11, "67],PARAMETER[\"false_northing\",13123333.3333],UNIT[\"U"); add_srs_wkt (p, 12, "S survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"3423\"]]"); p = add_epsg_def_ex (filter, first, last, 3424, "epsg", 3424, "NAD83 / New Jersey (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Jersey (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",38.83333333333334],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",-74.5],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9999],PARAMETER[\"false_easting\",492125],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 12, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3424\"]]"); p = add_epsg_def_ex (filter, first, last, 3425, "epsg", 3425, "NAD83(HARN) / Iowa North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.99"); add_proj4text (p, 2, "99898402 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Iowa North (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",43.26666666666667],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",42.06666666666667],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",41.5],PARAMETER[\"central_meridian\",-93.5],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_easting\",4921250],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",3280833.333300001],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 14, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 15, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3425\"]]"); p = add_epsg_def_ex (filter, first, last, 3426, "epsg", 3426, "NAD83(HARN) / Iowa South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, "667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Iowa South (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",41.78333333333333],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",40.61666666666667],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",40],PARAMETER[\"central_meridian\",-93.5],PARAMETER["); add_srs_wkt (p, 12, "\"false_easting\",1640416.6667],PARAMETER[\"false_northi"); add_srs_wkt (p, 13, "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 15, "TH],AUTHORITY[\"EPSG\",\"3426\"]]"); p = add_epsg_def_ex (filter, first, last, 3427, "epsg", 3427, "NAD83(HARN) / Kansas North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.9999"); add_proj4text (p, 2, "8984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=u"); add_proj4text (p, 3, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kansas North (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",39.78333333333333],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",38.71666666666667],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 11, "igin\",38.33333333333334],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 12, ",-98],PARAMETER[\"false_easting\",1312333.3333],PARAMETE"); add_srs_wkt (p, 13, "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 14, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 15, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3427\"]]"); p = add_epsg_def_ex (filter, first, last, 3428, "epsg", 3428, "NAD83(HARN) / Kansas South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99"); add_proj4text (p, 2, "998984 +y_0=399999.99998984 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 3, "0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kansas South (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",38.56666666666667],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",37.26666666666667],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 11, "igin\",36.66666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 12, ",-98.5],PARAMETER[\"false_easting\",1312333.3333],PARAME"); add_srs_wkt (p, 13, "TER[\"false_northing\",1312333.3333],UNIT[\"US survey fo"); add_srs_wkt (p, 14, "ot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AX"); add_srs_wkt (p, 15, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"34"); add_srs_wkt (p, 16, "28\"]]"); p = add_epsg_def_ex (filter, first, last, 3429, "epsg", 3429, "NAD83(HARN) / Nevada East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Nevada East (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",34.75],PARAMETER[\"central_meridian\",-115.58333333"); add_srs_wkt (p, 10, "33333],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",656166.6667],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "26246666.66670001],UNIT[\"US survey foot\",0.30480060960"); add_srs_wkt (p, 13, "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3429\"]]"); p = add_epsg_def_ex (filter, first, last, 3430, "epsg", 3430, "NAD83(HARN) / Nevada Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, "9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Nevada Central (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",34.75],PARAMETER[\"central_meridian\",-116.66666"); add_srs_wkt (p, 10, "66666667],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",1640416.6667],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",19685000],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"3430\"]]"); p = add_epsg_def_ex (filter, first, last, 3431, "epsg", 3431, "NAD83(HARN) / Nevada West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Nevada West (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",34.75],PARAMETER[\"central_meridian\",-118.58333333"); add_srs_wkt (p, 10, "33333],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",2624666.6667],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",13123333.3333],UNIT[\"US survey foot\",0.30480060960121"); add_srs_wkt (p, 13, "92,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3431\"]]"); p = add_epsg_def_ex (filter, first, last, 3432, "epsg", 3432, "NAD83(HARN) / New Jersey (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Jersey (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",38.83333333333334],PARAMETER[\"central_meridian\",-74.5"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",492125],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"3432\"]]"); p = add_epsg_def_ex (filter, first, last, 3433, "epsg", 3433, "NAD83 / Arkansas North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.9999"); add_proj4text (p, 2, "8984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=u"); add_proj4text (p, 3, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arkansas North (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.23333"); add_srs_wkt (p, 9, "333333333],PARAMETER[\"standard_parallel_2\",34.93333333"); add_srs_wkt (p, 10, "333333],PARAMETER[\"latitude_of_origin\",34.333333333333"); add_srs_wkt (p, 11, "34],PARAMETER[\"central_meridian\",-92],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_easting\",1312333.3333],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 13, "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 15, "HORITY[\"EPSG\",\"3433\"]]"); p = add_epsg_def_ex (filter, first, last, 3434, "epsg", 3434, "NAD83 / Arkansas South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, ".66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399"); add_proj4text (p, 2, "999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 3, "us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arkansas South (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.76666"); add_srs_wkt (p, 9, "666666667],PARAMETER[\"standard_parallel_2\",33.3],PARAM"); add_srs_wkt (p, 10, "ETER[\"latitude_of_origin\",32.66666666666666],PARAMETER"); add_srs_wkt (p, 11, "[\"central_meridian\",-92],PARAMETER[\"false_easting\",1"); add_srs_wkt (p, 12, "312333.3333],PARAMETER[\"false_northing\",1312333.3333],"); add_srs_wkt (p, 13, "UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 15, "ORITY[\"EPSG\",\"3434\"]]"); p = add_epsg_def_ex (filter, first, last, 3435, "epsg", 3435, "NAD83 / Illinois East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, "333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Illinois East (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",36.66666666666666"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-88.33333333333333],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.999975],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",984250.0000000002],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 12, ",UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"3435\"]]"); p = add_epsg_def_ex (filter, first, last, 3436, "epsg", 3436, "NAD83 / Illinois West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, "666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Illinois West (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",36.66666666666666"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-90.16666666666667],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.999941177],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",2296583.333300001],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"3436\"]]"); p = add_epsg_def_ex (filter, first, last, 3437, "epsg", 3437, "NAD83 / New Hampshire (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / New Hampshire (ftUS)\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",42.5],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-71.66666666666667],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.999966667],PARAMETER[\"false_easting\",98425"); add_srs_wkt (p, 11, "0.0000000002],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 12, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"3437\"]]"); p = add_epsg_def_ex (filter, first, last, 3438, "epsg", 3438, "NAD83 / Rhode Island (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); add_proj4text (p, 1, "9999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +towg"); add_proj4text (p, 2, "s84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Rhode Island (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",41.08333333333334],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",-71.5],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.99999375],PARAMETER[\"false_easting\",328083."); add_srs_wkt (p, 11, "3333],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); add_srs_wkt (p, 12, "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); add_srs_wkt (p, 13, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 14, "438\"]]"); p = add_epsg_def_ex (filter, first, last, 3439, "epsg", 3439, "PSD93 / UTM zone 39N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "PDO_Survey_Datum_1993", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=clrk80 +towgs84=-180.624,-225."); add_proj4text (p, 1, "516,173.919,-0.81,-1.898,8.336,16.71006 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"PSD93 / UTM zone 39N\",GEOGCS[\"PSD93\",DATUM[\""); add_srs_wkt (p, 1, "PDO_Survey_Datum_1993\",SPHEROID[\"Clarke 1880 (RGS)\",6"); add_srs_wkt (p, 2, "378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84"); add_srs_wkt (p, 3, "[-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.71006],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6134\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4134\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",51],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3439\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3440, "epsg", 3440, "PSD93 / UTM zone 40N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "PDO_Survey_Datum_1993", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=40 +ellps=clrk80 +towgs84=-180.624,-225."); add_proj4text (p, 1, "516,173.919,-0.81,-1.898,8.336,16.71006 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"PSD93 / UTM zone 40N\",GEOGCS[\"PSD93\",DATUM[\""); add_srs_wkt (p, 1, "PDO_Survey_Datum_1993\",SPHEROID[\"Clarke 1880 (RGS)\",6"); add_srs_wkt (p, 2, "378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84"); add_srs_wkt (p, 3, "[-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.71006],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6134\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4134\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",57],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3440\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3441, "epsg", 3441, "NAD83(HARN) / Arkansas North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.9999"); add_proj4text (p, 2, "8984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=u"); add_proj4text (p, 3, "s-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arkansas North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",36.23333333333333],PARAMETER[\"standard"); add_srs_wkt (p, 10, "_parallel_2\",34.93333333333333],PARAMETER[\"latitude_of"); add_srs_wkt (p, 11, "_origin\",34.33333333333334],PARAMETER[\"central_meridia"); add_srs_wkt (p, 12, "n\",-92],PARAMETER[\"false_easting\",1312333.3333],PARAM"); add_srs_wkt (p, 13, "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 14, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 15, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3441\"]]"); p = add_epsg_def_ex (filter, first, last, 3442, "epsg", 3442, "NAD83(HARN) / Arkansas South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, ".66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399"); add_proj4text (p, 2, "999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 3, "us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Arkansas South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netw"); add_srs_wkt (p, 2, "ork\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",34.76666666666667],PARAMETER[\"standard"); add_srs_wkt (p, 10, "_parallel_2\",33.3],PARAMETER[\"latitude_of_origin\",32."); add_srs_wkt (p, 11, "66666666666666],PARAMETER[\"central_meridian\",-92],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",1312333.3333],PARAMETER[\"false_"); add_srs_wkt (p, 13, "northing\",1312333.3333],UNIT[\"US survey foot\",0.30480"); add_srs_wkt (p, 14, "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 15, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3442\"]]"); p = add_epsg_def_ex (filter, first, last, 3443, "epsg", 3443, "NAD83(HARN) / Illinois East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, "333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Illinois East (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",36.66666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-88.33333333333333],PARAMETER[\"scale_factor\",0.999975"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",984250.0000000002],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_northing\",0],UNIT[\"US survey foot\",0.30480"); add_srs_wkt (p, 13, "06096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 14, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3443\"]]"); p = add_epsg_def_ex (filter, first, last, 3444, "epsg", 3444, "NAD83(HARN) / Illinois West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, "666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Illinois West (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",36.66666666666666],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-90.16666666666667],PARAMETER[\"scale_factor\",0.999941"); add_srs_wkt (p, 11, "177],PARAMETER[\"false_easting\",2296583.333300001],PARA"); add_srs_wkt (p, 12, "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 13, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3444\"]]"); p = add_epsg_def_ex (filter, first, last, 3445, "epsg", 3445, "NAD83(HARN) / New Hampshire (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / New Hampshire (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",42.5],PARAMETER[\"central_meridian\",-71.66666666"); add_srs_wkt (p, 10, "666667],PARAMETER[\"scale_factor\",0.999966667],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",984250.0000000002],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 13, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3445\"]]"); p = add_epsg_def_ex (filter, first, last, 3446, "epsg", 3446, "NAD83(HARN) / Rhode Island (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); add_proj4text (p, 1, "9999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +towg"); add_proj4text (p, 2, "s84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Rhode Island (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",41.08333333333334],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 10, "71.5],PARAMETER[\"scale_factor\",0.99999375],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",328083.3333],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"3446\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_34.c��������������������������������������������������0000664�0001750�0001750�00000536212�12544707704�017047� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_34 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 20032, "epsg", 20032, "Pulkovo 1995 / Gauss-Kruger zone 32", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 32\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",-171],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",32500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"20032\"]]"); p = add_epsg_def_ex (filter, first, last, 20064, "epsg", 20064, "Pulkovo 1995 / Gauss-Kruger 4N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 4N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",21],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"20064\"]]"); p = add_epsg_def_ex (filter, first, last, 20065, "epsg", 20065, "Pulkovo 1995 / Gauss-Kruger 5N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 5N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",27],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"20065\"]]"); p = add_epsg_def_ex (filter, first, last, 20066, "epsg", 20066, "Pulkovo 1995 / Gauss-Kruger 6N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 6N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",33],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"20066\"]]"); p = add_epsg_def_ex (filter, first, last, 20067, "epsg", 20067, "Pulkovo 1995 / Gauss-Kruger 7N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 7N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",39],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"20067\"]]"); p = add_epsg_def_ex (filter, first, last, 20068, "epsg", 20068, "Pulkovo 1995 / Gauss-Kruger 8N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 8N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",45],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"20068\"]]"); p = add_epsg_def_ex (filter, first, last, 20069, "epsg", 20069, "Pulkovo 1995 / Gauss-Kruger 9N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 9N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",51],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"20069\"]]"); p = add_epsg_def_ex (filter, first, last, 20070, "epsg", 20070, "Pulkovo 1995 / Gauss-Kruger 10N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 10N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",57],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"20070\"]]"); p = add_epsg_def_ex (filter, first, last, 20071, "epsg", 20071, "Pulkovo 1995 / Gauss-Kruger 11N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 11N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",63],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"20071\"]]"); p = add_epsg_def_ex (filter, first, last, 20072, "epsg", 20072, "Pulkovo 1995 / Gauss-Kruger 12N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 12N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",69],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"20072\"]]"); p = add_epsg_def_ex (filter, first, last, 20073, "epsg", 20073, "Pulkovo 1995 / Gauss-Kruger 13N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 13N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",75],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"20073\"]]"); p = add_epsg_def_ex (filter, first, last, 20074, "epsg", 20074, "Pulkovo 1995 / Gauss-Kruger 14N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 14N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",81],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"20074\"]]"); p = add_epsg_def_ex (filter, first, last, 20075, "epsg", 20075, "Pulkovo 1995 / Gauss-Kruger 15N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 15N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",87],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"20075\"]]"); p = add_epsg_def_ex (filter, first, last, 20076, "epsg", 20076, "Pulkovo 1995 / Gauss-Kruger 16N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 16N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",93],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"20076\"]]"); p = add_epsg_def_ex (filter, first, last, 20077, "epsg", 20077, "Pulkovo 1995 / Gauss-Kruger 17N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 17N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",99],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"20077\"]]"); p = add_epsg_def_ex (filter, first, last, 20078, "epsg", 20078, "Pulkovo 1995 / Gauss-Kruger 18N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 18N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",105],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"20078\"]]"); p = add_epsg_def_ex (filter, first, last, 20079, "epsg", 20079, "Pulkovo 1995 / Gauss-Kruger 19N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 19N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",111],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"20079\"]]"); p = add_epsg_def_ex (filter, first, last, 20080, "epsg", 20080, "Pulkovo 1995 / Gauss-Kruger 20N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 20N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",117],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"20080\"]]"); p = add_epsg_def_ex (filter, first, last, 20081, "epsg", 20081, "Pulkovo 1995 / Gauss-Kruger 21N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 21N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",123],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"20081\"]]"); p = add_epsg_def_ex (filter, first, last, 20082, "epsg", 20082, "Pulkovo 1995 / Gauss-Kruger 22N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 22N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",129],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"20082\"]]"); p = add_epsg_def_ex (filter, first, last, 20083, "epsg", 20083, "Pulkovo 1995 / Gauss-Kruger 23N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 23N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",135],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"20083\"]]"); p = add_epsg_def_ex (filter, first, last, 20084, "epsg", 20084, "Pulkovo 1995 / Gauss-Kruger 24N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 24N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",141],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"20084\"]]"); p = add_epsg_def_ex (filter, first, last, 20085, "epsg", 20085, "Pulkovo 1995 / Gauss-Kruger 25N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 25N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",147],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"20085\"]]"); p = add_epsg_def_ex (filter, first, last, 20086, "epsg", 20086, "Pulkovo 1995 / Gauss-Kruger 26N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 26N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",153],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"20086\"]]"); p = add_epsg_def_ex (filter, first, last, 20087, "epsg", 20087, "Pulkovo 1995 / Gauss-Kruger 27N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 27N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",159],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"20087\"]]"); p = add_epsg_def_ex (filter, first, last, 20088, "epsg", 20088, "Pulkovo 1995 / Gauss-Kruger 28N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 28N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",165],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"20088\"]]"); p = add_epsg_def_ex (filter, first, last, 20089, "epsg", 20089, "Pulkovo 1995 / Gauss-Kruger 29N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 29N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",171],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"20089\"]]"); p = add_epsg_def_ex (filter, first, last, 20090, "epsg", 20090, "Pulkovo 1995 / Gauss-Kruger 30N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 30N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",177],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"20090\"]]"); p = add_epsg_def_ex (filter, first, last, 20091, "epsg", 20091, "Pulkovo 1995 / Gauss-Kruger 31N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 31N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-177],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"20091\"]]"); p = add_epsg_def_ex (filter, first, last, 20092, "epsg", 20092, "Pulkovo 1995 / Gauss-Kruger 32N (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger 32N (deprecated)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-171],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"20092\"]]"); p = add_epsg_def_ex (filter, first, last, 20135, "epsg", 20135, "Adindan / UTM zone 35N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Adindan", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=clrk80 +towgs84=-166,-15,204,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Adindan / UTM zone 35N\",GEOGCS[\"Adindan\",DAT"); add_srs_wkt (p, 1, "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 2, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15"); add_srs_wkt (p, 3, ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",27],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"20135\"]]"); p = add_epsg_def_ex (filter, first, last, 20136, "epsg", 20136, "Adindan / UTM zone 36N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Adindan", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=clrk80 +towgs84=-166,-15,204,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Adindan / UTM zone 36N\",GEOGCS[\"Adindan\",DAT"); add_srs_wkt (p, 1, "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 2, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15"); add_srs_wkt (p, 3, ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",33],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"20136\"]]"); p = add_epsg_def_ex (filter, first, last, 20137, "epsg", 20137, "Adindan / UTM zone 37N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Adindan", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=clrk80 +towgs84=-166,-15,204,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Adindan / UTM zone 37N\",GEOGCS[\"Adindan\",DAT"); add_srs_wkt (p, 1, "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 2, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15"); add_srs_wkt (p, 3, ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",39],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"20137\"]]"); p = add_epsg_def_ex (filter, first, last, 20138, "epsg", 20138, "Adindan / UTM zone 38N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Adindan", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=clrk80 +towgs84=-166,-15,204,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Adindan / UTM zone 38N\",GEOGCS[\"Adindan\",DAT"); add_srs_wkt (p, 1, "UM[\"Adindan\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 2, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-166,-15"); add_srs_wkt (p, 3, ",204,0,0,0,0],AUTHORITY[\"EPSG\",\"6201\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4201\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",45],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"20138\"]]"); p = add_epsg_def_ex (filter, first, last, 20248, "epsg", 20248, "AGD66 / AMG zone 48 (deprecated)", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1966", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 48 (deprecated)\",GEOGCS[\"AGD"); add_srs_wkt (p, 1, "66\",DATUM[\"Australian_Geodetic_Datum_1966\",SPHEROID[\""); add_srs_wkt (p, 2, "Australian National Spheroid\",6378160,298.25,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7003\"]],TOWGS84[-117.808,-51.536,137.784,0.3"); add_srs_wkt (p, 4, "03,0.446,0.234,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIM"); add_srs_wkt (p, 5, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 6, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 7, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 8, "ORITY[\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 9, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 10, "ntral_meridian\",105],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"20248\"]]"); p = add_epsg_def_ex (filter, first, last, 20249, "epsg", 20249, "AGD66 / AMG zone 49", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1966", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=49 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 49\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 10, "an\",111],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"20249\"]]"); p = add_epsg_def_ex (filter, first, last, 20250, "epsg", 20250, "AGD66 / AMG zone 50", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1966", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 50\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 10, "an\",117],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"20250\"]]"); p = add_epsg_def_ex (filter, first, last, 20251, "epsg", 20251, "AGD66 / AMG zone 51", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1966", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=51 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 51\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 10, "an\",123],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"20251\"]]"); p = add_epsg_def_ex (filter, first, last, 20252, "epsg", 20252, "AGD66 / AMG zone 52", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1966", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=52 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 52\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 10, "an\",129],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"20252\"]]"); p = add_epsg_def_ex (filter, first, last, 20253, "epsg", 20253, "AGD66 / AMG zone 53", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1966", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=53 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 53\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 10, "an\",135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"20253\"]]"); p = add_epsg_def_ex (filter, first, last, 20254, "epsg", 20254, "AGD66 / AMG zone 54", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1966", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=54 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 54\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 10, "an\",141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"20254\"]]"); p = add_epsg_def_ex (filter, first, last, 20255, "epsg", 20255, "AGD66 / AMG zone 55", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1966", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=55 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 55\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 10, "an\",147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"20255\"]]"); p = add_epsg_def_ex (filter, first, last, 20256, "epsg", 20256, "AGD66 / AMG zone 56", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1966", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=56 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 56\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 10, "an\",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"20256\"]]"); p = add_epsg_def_ex (filter, first, last, 20257, "epsg", 20257, "AGD66 / AMG zone 57", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1966", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=57 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 57\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 10, "an\",159],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"20257\"]]"); p = add_epsg_def_ex (filter, first, last, 20258, "epsg", 20258, "AGD66 / AMG zone 58", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1966", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=aust_SA +towgs84=-117.8"); add_proj4text (p, 1, "08,-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / AMG zone 58\",GEOGCS[\"AGD66\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1966\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.2"); add_srs_wkt (p, 4, "34,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 10, "an\",165],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"20258\"]]"); p = add_epsg_def_ex (filter, first, last, 20348, "epsg", 20348, "AGD84 / AMG zone 48 (deprecated)", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 48 (deprecated)\",GEOGCS[\"AGD"); add_srs_wkt (p, 1, "84\",DATUM[\"Australian_Geodetic_Datum_1984\",SPHEROID[\""); add_srs_wkt (p, 2, "Australian National Spheroid\",6378160,298.25,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4203\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",0],PARAMETER[\"central_meridian\",105],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2034"); add_srs_wkt (p, 14, "8\"]]"); p = add_epsg_def_ex (filter, first, last, 20349, "epsg", 20349, "AGD84 / AMG zone 49", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=49 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 49\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",111],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"20349\"]]"); p = add_epsg_def_ex (filter, first, last, 20350, "epsg", 20350, "AGD84 / AMG zone 50", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 50\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",117],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"20350\"]]"); p = add_epsg_def_ex (filter, first, last, 20351, "epsg", 20351, "AGD84 / AMG zone 51", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=51 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 51\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",123],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"20351\"]]"); p = add_epsg_def_ex (filter, first, last, 20352, "epsg", 20352, "AGD84 / AMG zone 52", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=52 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 52\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",129],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"20352\"]]"); p = add_epsg_def_ex (filter, first, last, 20353, "epsg", 20353, "AGD84 / AMG zone 53", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=53 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 53\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",135],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"20353\"]]"); p = add_epsg_def_ex (filter, first, last, 20354, "epsg", 20354, "AGD84 / AMG zone 54", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=54 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 54\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",141],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"20354\"]]"); p = add_epsg_def_ex (filter, first, last, 20355, "epsg", 20355, "AGD84 / AMG zone 55", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=55 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 55\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",147],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"20355\"]]"); p = add_epsg_def_ex (filter, first, last, 20356, "epsg", 20356, "AGD84 / AMG zone 56", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=56 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 56\",GEOGCS[\"AGD84\",DATUM[\""); add_srs_wkt (p, 1, "Australian_Geodetic_Datum_1984\",SPHEROID[\"Australian N"); add_srs_wkt (p, 2, "ational Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4203\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"20356\"]]"); p = add_epsg_def_ex (filter, first, last, 20357, "epsg", 20357, "AGD84 / AMG zone 57 (deprecated)", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=57 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 57 (deprecated)\",GEOGCS[\"AGD"); add_srs_wkt (p, 1, "84\",DATUM[\"Australian_Geodetic_Datum_1984\",SPHEROID[\""); add_srs_wkt (p, 2, "Australian National Spheroid\",6378160,298.25,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4203\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",0],PARAMETER[\"central_meridian\",159],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2035"); add_srs_wkt (p, 14, "7\"]]"); p = add_epsg_def_ex (filter, first, last, 20358, "epsg", 20358, "AGD84 / AMG zone 58 (deprecated)", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=aust_SA +towgs84=-134,-"); add_proj4text (p, 1, "48,149,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD84 / AMG zone 58 (deprecated)\",GEOGCS[\"AGD"); add_srs_wkt (p, 1, "84\",DATUM[\"Australian_Geodetic_Datum_1984\",SPHEROID[\""); add_srs_wkt (p, 2, "Australian National Spheroid\",6378160,298.25,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7003\"]],TOWGS84[-134,-48,149,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6203\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4203\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",0],PARAMETER[\"central_meridian\",165],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2035"); add_srs_wkt (p, 14, "8\"]]"); p = add_epsg_def_ex (filter, first, last, 20436, "epsg", 20436, "Ain el Abd / UTM zone 36N", 0, 0, "International 1924", "Greenwich", "Ain_el_Abd_1970", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=intl +towgs84=-143,-236,7,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ain el Abd / UTM zone 36N\",GEOGCS[\"Ain el Abd"); add_srs_wkt (p, 1, "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",33],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"20436\"]]"); p = add_epsg_def_ex (filter, first, last, 20437, "epsg", 20437, "Ain el Abd / UTM zone 37N", 0, 0, "International 1924", "Greenwich", "Ain_el_Abd_1970", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=intl +towgs84=-143,-236,7,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ain el Abd / UTM zone 37N\",GEOGCS[\"Ain el Abd"); add_srs_wkt (p, 1, "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",39],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"20437\"]]"); p = add_epsg_def_ex (filter, first, last, 20438, "epsg", 20438, "Ain el Abd / UTM zone 38N", 0, 0, "International 1924", "Greenwich", "Ain_el_Abd_1970", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=intl +towgs84=-143,-236,7,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ain el Abd / UTM zone 38N\",GEOGCS[\"Ain el Abd"); add_srs_wkt (p, 1, "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",45],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"20438\"]]"); p = add_epsg_def_ex (filter, first, last, 20439, "epsg", 20439, "Ain el Abd / UTM zone 39N", 0, 0, "International 1924", "Greenwich", "Ain_el_Abd_1970", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=intl +towgs84=-143,-236,7,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ain el Abd / UTM zone 39N\",GEOGCS[\"Ain el Abd"); add_srs_wkt (p, 1, "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",51],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"20439\"]]"); p = add_epsg_def_ex (filter, first, last, 20440, "epsg", 20440, "Ain el Abd / UTM zone 40N", 0, 0, "International 1924", "Greenwich", "Ain_el_Abd_1970", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=40 +ellps=intl +towgs84=-143,-236,7,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ain el Abd / UTM zone 40N\",GEOGCS[\"Ain el Abd"); add_srs_wkt (p, 1, "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",57],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"20440\"]]"); p = add_epsg_def_ex (filter, first, last, 20499, "epsg", 20499, "Ain el Abd / Bahrain Grid", 0, 0, "International 1924", "Greenwich", "Ain_el_Abd_1970", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=intl +towgs84=-143,-236,7,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Ain el Abd / Bahrain Grid\",GEOGCS[\"Ain el Abd"); add_srs_wkt (p, 1, "\",DATUM[\"Ain_el_Abd_1970\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "143,-236,7,0,0,0,0],AUTHORITY[\"EPSG\",\"6204\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4204\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",51],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"20499\"]]"); p = add_epsg_def_ex (filter, first, last, 20538, "epsg", 20538, "Afgooye / UTM zone 38N", 0, 0, "Krassowsky 1940", "Greenwich", "Afgooye", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=krass +towgs84=-43,-163,45,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Afgooye / UTM zone 38N\",GEOGCS[\"Afgooye\",DAT"); add_srs_wkt (p, 1, "UM[\"Afgooye\",SPHEROID[\"Krassowsky 1940\",6378245,298."); add_srs_wkt (p, 2, "3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[-43,-163,45,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6205\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4205\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",4"); add_srs_wkt (p, 9, "5],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"205"); add_srs_wkt (p, 13, "38\"]]"); p = add_epsg_def_ex (filter, first, last, 20539, "epsg", 20539, "Afgooye / UTM zone 39N", 0, 0, "Krassowsky 1940", "Greenwich", "Afgooye", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=krass +towgs84=-43,-163,45,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Afgooye / UTM zone 39N\",GEOGCS[\"Afgooye\",DAT"); add_srs_wkt (p, 1, "UM[\"Afgooye\",SPHEROID[\"Krassowsky 1940\",6378245,298."); add_srs_wkt (p, 2, "3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[-43,-163,45,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6205\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4205\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",5"); add_srs_wkt (p, 9, "1],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"205"); add_srs_wkt (p, 13, "39\"]]"); p = add_epsg_def_ex (filter, first, last, 20790, "epsg", 20790, "Lisbon (Lisbon) / Portuguese National Grid", 0, 0, "International 1924", "Lisbon", "Lisbon_1937_Lisbon", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0="); add_proj4text (p, 1, "200000 +y_0=300000 +ellps=intl +towgs84=-304.046,-60.576"); add_proj4text (p, 2, ",103.64,0,0,0,0 +pm=lisbon +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Lisbon (Lisbon) / Portuguese National Grid\",GE"); add_srs_wkt (p, 1, "OGCS[\"Lisbon (Lisbon)\",DATUM[\"Lisbon_1937_Lisbon\",SP"); add_srs_wkt (p, 2, "HEROID[\"International 1924\",6378388,297,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7022\"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6803\"]],PRIMEM[\"Lisbon\",-9.1319"); add_srs_wkt (p, 5, "06111111112,AUTHORITY[\"EPSG\",\"8902\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4803\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",39.66666666666666],PARAMET"); add_srs_wkt (p, 10, "ER[\"central_meridian\",1],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",200000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",300000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"20790\"]]"); p = add_epsg_def_ex (filter, first, last, 20791, "epsg", 20791, "Lisbon (Lisbon) / Portuguese Grid", 0, 0, "International 1924", "Lisbon", "Lisbon_1937_Lisbon", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0="); add_proj4text (p, 1, "0 +y_0=0 +ellps=intl +towgs84=-304.046,-60.576,103.64,0,"); add_proj4text (p, 2, "0,0,0 +pm=lisbon +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Lisbon (Lisbon) / Portuguese Grid\",GEOGCS[\"Li"); add_srs_wkt (p, 1, "sbon (Lisbon)\",DATUM[\"Lisbon_1937_Lisbon\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[-304.046,-60.576,103.64,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6803\"]],PRIMEM[\"Lisbon\",-9.1319061111111"); add_srs_wkt (p, 5, "12,AUTHORITY[\"EPSG\",\"8902\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4803\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",39.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 10, "ral_meridian\",1],PARAMETER[\"scale_factor\",1],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",0],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"20791\"]]"); p = add_epsg_def_ex (filter, first, last, 20822, "epsg", 20822, "Aratu / UTM zone 22S", 0, 0, "International 1924", "Greenwich", "Aratu", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=intl +towgs84=-151.99,2"); add_proj4text (p, 1, "87.04,-147.45,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Aratu / UTM zone 22S\",GEOGCS[\"Aratu\",DATUM[\""); add_srs_wkt (p, 1, "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"20822\"]]"); p = add_epsg_def_ex (filter, first, last, 20823, "epsg", 20823, "Aratu / UTM zone 23S", 0, 0, "International 1924", "Greenwich", "Aratu", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=intl +towgs84=-151.99,2"); add_proj4text (p, 1, "87.04,-147.45,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Aratu / UTM zone 23S\",GEOGCS[\"Aratu\",DATUM[\""); add_srs_wkt (p, 1, "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"20823\"]]"); p = add_epsg_def_ex (filter, first, last, 20824, "epsg", 20824, "Aratu / UTM zone 24S", 0, 0, "International 1924", "Greenwich", "Aratu", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=intl +towgs84=-151.99,2"); add_proj4text (p, 1, "87.04,-147.45,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Aratu / UTM zone 24S\",GEOGCS[\"Aratu\",DATUM[\""); add_srs_wkt (p, 1, "Aratu\",SPHEROID[\"International 1924\",6378388,297,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7022\"]],TOWGS84[-151.99,287.04,-147.45"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6208\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4208\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",-39],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"20824\"]]"); p = add_epsg_def_ex (filter, first, last, 20934, "epsg", 20934, "Arc 1950 / UTM zone 34S", 0, 0, "Clarke 1880 (Arc)", "Greenwich", "Arc_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.9663"); add_proj4text (p, 1, "98753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Arc 1950 / UTM zone 34S\",GEOGCS[\"Arc 1950\",D"); add_srs_wkt (p, 1, "ATUM[\"Arc_1950\",SPHEROID[\"Clarke 1880 (Arc)\",6378249"); add_srs_wkt (p, 2, ".145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-"); add_srs_wkt (p, 3, "143,-90,-294,0,0,0,0],AUTHORITY[\"EPSG\",\"6209\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4209\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",21],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"20934\"]]"); p = add_epsg_def_ex (filter, first, last, 20935, "epsg", 20935, "Arc 1950 / UTM zone 35S", 0, 0, "Clarke 1880 (Arc)", "Greenwich", "Arc_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.9663"); add_proj4text (p, 1, "98753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Arc 1950 / UTM zone 35S\",GEOGCS[\"Arc 1950\",D"); add_srs_wkt (p, 1, "ATUM[\"Arc_1950\",SPHEROID[\"Clarke 1880 (Arc)\",6378249"); add_srs_wkt (p, 2, ".145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-"); add_srs_wkt (p, 3, "143,-90,-294,0,0,0,0],AUTHORITY[\"EPSG\",\"6209\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4209\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",27],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"20935\"]]"); p = add_epsg_def_ex (filter, first, last, 20936, "epsg", 20936, "Arc 1950 / UTM zone 36S", 0, 0, "Clarke 1880 (Arc)", "Greenwich", "Arc_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.9663"); add_proj4text (p, 1, "98753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Arc 1950 / UTM zone 36S\",GEOGCS[\"Arc 1950\",D"); add_srs_wkt (p, 1, "ATUM[\"Arc_1950\",SPHEROID[\"Clarke 1880 (Arc)\",6378249"); add_srs_wkt (p, 2, ".145,293.4663077,AUTHORITY[\"EPSG\",\"7013\"]],TOWGS84[-"); add_srs_wkt (p, 3, "143,-90,-294,0,0,0,0],AUTHORITY[\"EPSG\",\"6209\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4209\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",33],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"20936\"]]"); p = add_epsg_def_ex (filter, first, last, 21035, "epsg", 21035, "Arc 1960 / UTM zone 35S", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Arc_1960", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +south +ellps=clrk80 +towgs84=-160,-6"); add_proj4text (p, 1, ",-302,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Arc 1960 / UTM zone 35S\",GEOGCS[\"Arc 1960\",D"); add_srs_wkt (p, 1, "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); add_srs_wkt (p, 3, "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",27],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"21035\"]]"); p = add_epsg_def_ex (filter, first, last, 21036, "epsg", 21036, "Arc 1960 / UTM zone 36S", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Arc_1960", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +south +ellps=clrk80 +towgs84=-160,-6"); add_proj4text (p, 1, ",-302,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Arc 1960 / UTM zone 36S\",GEOGCS[\"Arc 1960\",D"); add_srs_wkt (p, 1, "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); add_srs_wkt (p, 3, "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",33],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"21036\"]]"); p = add_epsg_def_ex (filter, first, last, 21037, "epsg", 21037, "Arc 1960 / UTM zone 37S", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Arc_1960", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +south +ellps=clrk80 +towgs84=-160,-6"); add_proj4text (p, 1, ",-302,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Arc 1960 / UTM zone 37S\",GEOGCS[\"Arc 1960\",D"); add_srs_wkt (p, 1, "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); add_srs_wkt (p, 3, "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",39],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"21037\"]]"); p = add_epsg_def_ex (filter, first, last, 21095, "epsg", 21095, "Arc 1960 / UTM zone 35N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Arc_1960", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=clrk80 +towgs84=-160,-6,-302,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Arc 1960 / UTM zone 35N\",GEOGCS[\"Arc 1960\",D"); add_srs_wkt (p, 1, "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); add_srs_wkt (p, 3, "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",27],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"21095\"]]"); p = add_epsg_def_ex (filter, first, last, 21096, "epsg", 21096, "Arc 1960 / UTM zone 36N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Arc_1960", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=clrk80 +towgs84=-160,-6,-302,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Arc 1960 / UTM zone 36N\",GEOGCS[\"Arc 1960\",D"); add_srs_wkt (p, 1, "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); add_srs_wkt (p, 3, "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",33],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"21096\"]]"); p = add_epsg_def_ex (filter, first, last, 21097, "epsg", 21097, "Arc 1960 / UTM zone 37N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Arc_1960", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=clrk80 +towgs84=-160,-6,-302,0"); add_proj4text (p, 1, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Arc 1960 / UTM zone 37N\",GEOGCS[\"Arc 1960\",D"); add_srs_wkt (p, 1, "ATUM[\"Arc_1960\",SPHEROID[\"Clarke 1880 (RGS)\",6378249"); add_srs_wkt (p, 2, ".145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-160,"); add_srs_wkt (p, 3, "-6,-302,0,0,0,0],AUTHORITY[\"EPSG\",\"6210\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4210\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",39],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"21097\"]]"); p = add_epsg_def_ex (filter, first, last, 21100, "epsg", 21100, "Batavia (Jakarta) / NEIEZ (deprecated)", 0, 0, "Bessel 1841", "Jakarta", "Batavia_Jakarta", "Mercator_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=-377,681,-50,0,0,0,0 +pm=jakarta "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Batavia (Jakarta) / NEIEZ (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, "[\"Batavia (Jakarta)\",DATUM[\"Batavia_Jakarta\",SPHEROI"); add_srs_wkt (p, 2, "D[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7004\"]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6813\"]],PRIMEM[\"Jakarta\",106.8077194444444"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8908\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"48"); add_srs_wkt (p, 8, "13\"]],PROJECTION[\"Mercator_1SP\"],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",110],PARAMETER[\"scale_factor\",0.997],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",3900000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",900000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"21100\"]]"); p = add_epsg_def_ex (filter, first, last, 21148, "epsg", 21148, "Batavia / UTM zone 48S", 0, 0, "Bessel 1841", "Greenwich", "Batavia", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +south +ellps=bessel +towgs84=-377,68"); add_proj4text (p, 1, "1,-50,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Batavia / UTM zone 48S\",GEOGCS[\"Batavia\",DAT"); add_srs_wkt (p, 1, "UM[\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299."); add_srs_wkt (p, 2, "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-"); add_srs_wkt (p, 3, "50,0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",105],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"21148\"]]"); p = add_epsg_def_ex (filter, first, last, 21149, "epsg", 21149, "Batavia / UTM zone 49S", 0, 0, "Bessel 1841", "Greenwich", "Batavia", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=49 +south +ellps=bessel +towgs84=-377,68"); add_proj4text (p, 1, "1,-50,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Batavia / UTM zone 49S\",GEOGCS[\"Batavia\",DAT"); add_srs_wkt (p, 1, "UM[\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299."); add_srs_wkt (p, 2, "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-"); add_srs_wkt (p, 3, "50,0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",111],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"21149\"]]"); p = add_epsg_def_ex (filter, first, last, 21150, "epsg", 21150, "Batavia / UTM zone 50S", 0, 0, "Bessel 1841", "Greenwich", "Batavia", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +ellps=bessel +towgs84=-377,68"); add_proj4text (p, 1, "1,-50,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Batavia / UTM zone 50S\",GEOGCS[\"Batavia\",DAT"); add_srs_wkt (p, 1, "UM[\"Batavia\",SPHEROID[\"Bessel 1841\",6377397.155,299."); add_srs_wkt (p, 2, "1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-377,681,-"); add_srs_wkt (p, 3, "50,0,0,0,0],AUTHORITY[\"EPSG\",\"6211\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4211\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",117],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"21150\"]]"); p = add_epsg_def_ex (filter, first, last, 21291, "epsg", 21291, "Barbados 1938 / British West Indies Grid", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Barbados_1938", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x"); add_proj4text (p, 1, "_0=400000 +y_0=0 +ellps=clrk80 +towgs84=31.95,300.99,419"); add_proj4text (p, 2, ".19,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Barbados 1938 / British West Indies Grid\",GEOG"); add_srs_wkt (p, 1, "CS[\"Barbados 1938\",DATUM[\"Barbados_1938\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7012\"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6212\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4212\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",-62],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",0.9995],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",400000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"21291\"]]"); p = add_epsg_def_ex (filter, first, last, 21292, "epsg", 21292, "Barbados 1938 / Barbados National Grid", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Barbados_1938", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=13.17638888888889 +lon_0=-59.55972222"); add_proj4text (p, 1, "222222 +k=0.9999986 +x_0=30000 +y_0=75000 +ellps=clrk80 "); add_proj4text (p, 2, "+towgs84=31.95,300.99,419.19,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Barbados 1938 / Barbados National Grid\",GEOGCS"); add_srs_wkt (p, 1, "[\"Barbados 1938\",DATUM[\"Barbados_1938\",SPHEROID[\"Cl"); add_srs_wkt (p, 2, "arke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7012\"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6212\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4212\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 9, "_origin\",13.17638888888889],PARAMETER[\"central_meridia"); add_srs_wkt (p, 10, "n\",-59.55972222222222],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 11, "9986],PARAMETER[\"false_easting\",30000],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_northing\",75000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"21292\"]]"); p = add_epsg_def_ex (filter, first, last, 21413, "epsg", 21413, "Beijing 1954 / Gauss-Kruger zone 13", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 13\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",75],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",1],PARAMETER[\"false_easting\",13500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"21413\"]]"); p = add_epsg_def_ex (filter, first, last, 21414, "epsg", 21414, "Beijing 1954 / Gauss-Kruger zone 14", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 14\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",81],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",1],PARAMETER[\"false_easting\",14500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"21414\"]]"); p = add_epsg_def_ex (filter, first, last, 21415, "epsg", 21415, "Beijing 1954 / Gauss-Kruger zone 15", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 15\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",87],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",1],PARAMETER[\"false_easting\",15500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"21415\"]]"); p = add_epsg_def_ex (filter, first, last, 21416, "epsg", 21416, "Beijing 1954 / Gauss-Kruger zone 16", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 16\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",93],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",1],PARAMETER[\"false_easting\",16500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"21416\"]]"); p = add_epsg_def_ex (filter, first, last, 21417, "epsg", 21417, "Beijing 1954 / Gauss-Kruger zone 17", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 17\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",99],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",1],PARAMETER[\"false_easting\",17500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"21417\"]]"); p = add_epsg_def_ex (filter, first, last, 21418, "epsg", 21418, "Beijing 1954 / Gauss-Kruger zone 18", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 18\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",105],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",18500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"21418\"]]"); p = add_epsg_def_ex (filter, first, last, 21419, "epsg", 21419, "Beijing 1954 / Gauss-Kruger zone 19", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 19\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",111],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",19500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"21419\"]]"); p = add_epsg_def_ex (filter, first, last, 21420, "epsg", 21420, "Beijing 1954 / Gauss-Kruger zone 20", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 20\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",117],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",20500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"21420\"]]"); p = add_epsg_def_ex (filter, first, last, 21421, "epsg", 21421, "Beijing 1954 / Gauss-Kruger zone 21", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 21\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",123],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",21500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"21421\"]]"); p = add_epsg_def_ex (filter, first, last, 21422, "epsg", 21422, "Beijing 1954 / Gauss-Kruger zone 22", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 22\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",129],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",22500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"21422\"]]"); p = add_epsg_def_ex (filter, first, last, 21423, "epsg", 21423, "Beijing 1954 / Gauss-Kruger zone 23", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger zone 23\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",135],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",23500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"21423\"]]"); p = add_epsg_def_ex (filter, first, last, 21453, "epsg", 21453, "Beijing 1954 / Gauss-Kruger CM 75E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 75E\",GEOGCS[\"B"); add_srs_wkt (p, 1, "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",75],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"21453\"]]"); p = add_epsg_def_ex (filter, first, last, 21454, "epsg", 21454, "Beijing 1954 / Gauss-Kruger CM 81E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 81E\",GEOGCS[\"B"); add_srs_wkt (p, 1, "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",81],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"21454\"]]"); p = add_epsg_def_ex (filter, first, last, 21455, "epsg", 21455, "Beijing 1954 / Gauss-Kruger CM 87E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 87E\",GEOGCS[\"B"); add_srs_wkt (p, 1, "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",87],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"21455\"]]"); p = add_epsg_def_ex (filter, first, last, 21456, "epsg", 21456, "Beijing 1954 / Gauss-Kruger CM 93E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 93E\",GEOGCS[\"B"); add_srs_wkt (p, 1, "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",93],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"21456\"]]"); p = add_epsg_def_ex (filter, first, last, 21457, "epsg", 21457, "Beijing 1954 / Gauss-Kruger CM 99E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 99E\",GEOGCS[\"B"); add_srs_wkt (p, 1, "eijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 4, "14\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",99],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"21457\"]]"); p = add_epsg_def_ex (filter, first, last, 21458, "epsg", 21458, "Beijing 1954 / Gauss-Kruger CM 105E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / Gauss-Kruger CM 105E\",GEOGCS[\""); add_srs_wkt (p, 1, "Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",105],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"21458\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_wgs84_01.c��������������������������������������������0000664�0001750�0001750�00000132310�12544707704�020064� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> SPATIALITE_PRIVATE void initialize_epsg_wgs84_01 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list [WGS84] */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 32734, "epsg", 32734, "WGS 84 / UTM zone 34S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=34 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 34S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",21],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32734\"]]"); p = add_epsg_def_ex (filter, first, last, 32735, "epsg", 32735, "WGS 84 / UTM zone 35S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 35S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",27],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32735\"]]"); p = add_epsg_def_ex (filter, first, last, 32736, "epsg", 32736, "WGS 84 / UTM zone 36S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 36S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",33],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32736\"]]"); p = add_epsg_def_ex (filter, first, last, 32737, "epsg", 32737, "WGS 84 / UTM zone 37S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 37S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",39],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32737\"]]"); p = add_epsg_def_ex (filter, first, last, 32738, "epsg", 32738, "WGS 84 / UTM zone 38S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 38S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",45],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32738\"]]"); p = add_epsg_def_ex (filter, first, last, 32739, "epsg", 32739, "WGS 84 / UTM zone 39S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 39S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",51],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32739\"]]"); p = add_epsg_def_ex (filter, first, last, 32740, "epsg", 32740, "WGS 84 / UTM zone 40S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=40 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 40S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",57],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32740\"]]"); p = add_epsg_def_ex (filter, first, last, 32741, "epsg", 32741, "WGS 84 / UTM zone 41S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=41 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 41S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",63],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32741\"]]"); p = add_epsg_def_ex (filter, first, last, 32742, "epsg", 32742, "WGS 84 / UTM zone 42S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=42 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 42S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",69],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32742\"]]"); p = add_epsg_def_ex (filter, first, last, 32743, "epsg", 32743, "WGS 84 / UTM zone 43S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=43 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 43S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",75],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32743\"]]"); p = add_epsg_def_ex (filter, first, last, 32744, "epsg", 32744, "WGS 84 / UTM zone 44S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=44 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 44S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",81],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32744\"]]"); p = add_epsg_def_ex (filter, first, last, 32745, "epsg", 32745, "WGS 84 / UTM zone 45S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=45 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 45S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",87],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32745\"]]"); p = add_epsg_def_ex (filter, first, last, 32746, "epsg", 32746, "WGS 84 / UTM zone 46S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=46 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 46S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",93],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32746\"]]"); p = add_epsg_def_ex (filter, first, last, 32747, "epsg", 32747, "WGS 84 / UTM zone 47S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=47 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 47S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",99],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32747\"]]"); p = add_epsg_def_ex (filter, first, last, 32748, "epsg", 32748, "WGS 84 / UTM zone 48S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 48S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",105],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32748\"]]"); p = add_epsg_def_ex (filter, first, last, 32749, "epsg", 32749, "WGS 84 / UTM zone 49S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=49 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 49S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",111],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32749\"]]"); p = add_epsg_def_ex (filter, first, last, 32750, "epsg", 32750, "WGS 84 / UTM zone 50S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 50S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",117],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32750\"]]"); p = add_epsg_def_ex (filter, first, last, 32751, "epsg", 32751, "WGS 84 / UTM zone 51S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=51 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 51S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",123],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32751\"]]"); p = add_epsg_def_ex (filter, first, last, 32752, "epsg", 32752, "WGS 84 / UTM zone 52S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=52 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 52S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",129],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32752\"]]"); p = add_epsg_def_ex (filter, first, last, 32753, "epsg", 32753, "WGS 84 / UTM zone 53S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=53 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 53S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",135],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32753\"]]"); p = add_epsg_def_ex (filter, first, last, 32754, "epsg", 32754, "WGS 84 / UTM zone 54S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=54 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 54S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",141],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32754\"]]"); p = add_epsg_def_ex (filter, first, last, 32755, "epsg", 32755, "WGS 84 / UTM zone 55S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=55 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 55S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",147],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32755\"]]"); p = add_epsg_def_ex (filter, first, last, 32756, "epsg", 32756, "WGS 84 / UTM zone 56S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=56 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 56S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",153],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32756\"]]"); p = add_epsg_def_ex (filter, first, last, 32757, "epsg", 32757, "WGS 84 / UTM zone 57S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=57 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 57S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",159],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32757\"]]"); p = add_epsg_def_ex (filter, first, last, 32758, "epsg", 32758, "WGS 84 / UTM zone 58S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 58S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",165],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32758\"]]"); p = add_epsg_def_ex (filter, first, last, 32759, "epsg", 32759, "WGS 84 / UTM zone 59S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=59 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 59S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",171],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32759\"]]"); p = add_epsg_def_ex (filter, first, last, 32760, "epsg", 32760, "WGS 84 / UTM zone 60S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=60 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 60S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",177],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32760\"]]"); p = add_epsg_def_ex (filter, first, last, 32761, "epsg", 32761, "WGS 84 / UPS South (N,E)", 0, 1, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-90 +lon_0=0 +k=0.994 +x_"); add_proj4text (p, 1, "0=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UPS South (N,E)\",GEOGCS[\"WGS 84\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2572235"); add_srs_wkt (p, 2, "63,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"63"); add_srs_wkt (p, 3, "26\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_S"); add_srs_wkt (p, 7, "tereographic\"],PARAMETER[\"latitude_of_origin\",-90],PA"); add_srs_wkt (p, 8, "RAMETER[\"central_meridian\",0],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.994],PARAMETER[\"false_easting\",2000000],PARAMETER"); add_srs_wkt (p, 10, "[\"false_northing\",2000000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AUTHORITY[\"EPSG\",\"32761\"]]"); p = add_epsg_def_ex (filter, first, last, 32766, "epsg", 32766, "WGS 84 / TM 36 SE", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / TM 36 SE\",GEOGCS[\"WGS 84\",DATUM[\"W"); add_srs_wkt (p, 1, "GS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",36],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"32766\"]]"); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_11.c��������������������������������������������������0000664�0001750�0001750�00000544030�12544707704�017037� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_11 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 3140, "epsg", 3140, "Viti Levu 1912 / Viti Levu Grid", 0, 1, "Clarke 1880 (international foot)", "Greenwich", "Viti_Levu_1912", "Cassini_Soldner", "link", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=cass +lat_0=-18 +lon_0=178 +x_0=109435.392 +y_0=14"); add_proj4text (p, 1, "1622.272 +a=6378306.3696 +b=6356571.996 +towgs84=51,391,"); add_proj4text (p, 2, "-36,0,0,0,0 +to_meter=0.201168 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Viti Levu 1912 / Viti Levu Grid\",GEOGCS[\"Viti"); add_srs_wkt (p, 1, " Levu 1912\",DATUM[\"Viti_Levu_1912\",SPHEROID[\"Clarke "); add_srs_wkt (p, 2, "1880 (international foot)\",6378306.3696,293.46630765563"); add_srs_wkt (p, 3, "55,AUTHORITY[\"EPSG\",\"7055\"]],TOWGS84[51,391,-36,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6752\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4752\"]],PROJECTION[\"Cassini_Soldner\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",-18],PARAMETER[\"central_meridian\",17"); add_srs_wkt (p, 10, "8],PARAMETER[\"false_easting\",544000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",704000],UNIT[\"link\",0.201168,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9098\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"3140\"]]"); p = add_epsg_def_ex (filter, first, last, 3141, "epsg", 3141, "Fiji 1956 / UTM zone 60S", 0, 0, "International 1924", "Greenwich", "Fiji_1956", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=60 +south +ellps=intl +towgs84=265.025,3"); add_proj4text (p, 1, "84.929,-194.046,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Fiji 1956 / UTM zone 60S\",GEOGCS[\"Fiji 1956\""); add_srs_wkt (p, 1, ",DATUM[\"Fiji_1956\",SPHEROID[\"International 1924\",637"); add_srs_wkt (p, 2, "8388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[265.025,3"); add_srs_wkt (p, 3, "84.929,-194.046,0,0,0,0],AUTHORITY[\"EPSG\",\"6721\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4721\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",177],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"3141\"]]"); p = add_epsg_def_ex (filter, first, last, 3142, "epsg", 3142, "Fiji 1956 / UTM zone 1S", 0, 0, "International 1924", "Greenwich", "Fiji_1956", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=1 +south +ellps=intl +towgs84=265.025,38"); add_proj4text (p, 1, "4.929,-194.046,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Fiji 1956 / UTM zone 1S\",GEOGCS[\"Fiji 1956\","); add_srs_wkt (p, 1, "DATUM[\"Fiji_1956\",SPHEROID[\"International 1924\",6378"); add_srs_wkt (p, 2, "388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[265.025,38"); add_srs_wkt (p, 3, "4.929,-194.046,0,0,0,0],AUTHORITY[\"EPSG\",\"6721\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4721\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-177],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"3142\"]]"); p = add_epsg_def_ex (filter, first, last, 3143, "epsg", 3143, "Fiji 1986 / Fiji Map Grid (deprecated)", 0, 0, "WGS 72", "Greenwich", "Fiji_Geodetic_Datum_1986", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-17 +lon_0=178.75 +k=0.99985 +x_0=200"); add_proj4text (p, 1, "0000 +y_0=4000000 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 2, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Fiji 1986 / Fiji Map Grid (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, "[\"Fiji 1986\",DATUM[\"Fiji_Geodetic_Datum_1986\",SPHERO"); add_srs_wkt (p, 2, "ID[\"WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6720\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4720\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-1"); add_srs_wkt (p, 9, "7],PARAMETER[\"central_meridian\",178.75],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",0.99985],PARAMETER[\"false_easting\",200000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",4000000],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3143\"]]"); p = add_epsg_def_ex (filter, first, last, 3146, "epsg", 3146, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 6 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 6 (de"); add_srs_wkt (p, 1, "precated)\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942"); add_srs_wkt (p, 2, "\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0"); add_srs_wkt (p, 4, ".82,-0.12],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",18],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",6500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",N"); add_srs_wkt (p, 13, "ORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3146\"]]"); p = add_epsg_def_ex (filter, first, last, 3147, "epsg", 3147, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E (de"); add_srs_wkt (p, 1, "precated)\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942"); add_srs_wkt (p, 2, "\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0"); add_srs_wkt (p, 4, ".82,-0.12],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4284\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",18],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NO"); add_srs_wkt (p, 13, "RTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3147\"]]"); p = add_epsg_def_ex (filter, first, last, 3148, "epsg", 3148, "Indian 1960 / UTM zone 48N", 0, 0, "Everest 1830 (1937 Adjustment)", "Greenwich", "Indian_1960", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +"); add_proj4text (p, 1, "towgs84=198,881,317,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1960 / UTM zone 48N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, "60\",DATUM[\"Indian_1960\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7015\"]],TOWGS84[198,881,317,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6131\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4131\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",105],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"3148\"]]"); p = add_epsg_def_ex (filter, first, last, 3149, "epsg", 3149, "Indian 1960 / UTM zone 49N", 0, 0, "Everest 1830 (1937 Adjustment)", "Greenwich", "Indian_1960", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=49 +a=6377276.345 +b=6356075.413140239 +"); add_proj4text (p, 1, "towgs84=198,881,317,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1960 / UTM zone 49N\",GEOGCS[\"Indian 19"); add_srs_wkt (p, 1, "60\",DATUM[\"Indian_1960\",SPHEROID[\"Everest 1830 (1937"); add_srs_wkt (p, 2, " Adjustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7015\"]],TOWGS84[198,881,317,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6131\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4131\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",111],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"3149\"]]"); p = add_epsg_def_ex (filter, first, last, 3150, "epsg", 3150, "Pulkovo 1995 / 3-degree Gauss-Kruger zone 6 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger zone 6 (de"); add_srs_wkt (p, 1, "precated)\",GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995"); add_srs_wkt (p, 2, "\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.1"); add_srs_wkt (p, 4, "3,-0.22],AUTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 10, "\",18],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",6500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 13, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3150\"]]"); p = add_epsg_def_ex (filter, first, last, 3151, "epsg", 3151, "Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E (de"); add_srs_wkt (p, 1, "precated)\",GEOGCS[\"Pulkovo 1995\",DATUM[\"Pulkovo_1995"); add_srs_wkt (p, 2, "\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7024\"]],TOWGS84[24.47,-130.89,-81.56,0,0,0.1"); add_srs_wkt (p, 4, "3,-0.22],AUTHORITY[\"EPSG\",\"6200\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4200\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 10, "\",18],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 13, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3151\"]]"); p = add_epsg_def_ex (filter, first, last, 3152, "epsg", 3152, "ST74", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "x", "North", "y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18.05779 +k=0.99999425 +x_0="); add_proj4text (p, 1, "100178.1808 +y_0=-6500614.7836 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 2, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ST74\",GEOGCS[\"SWEREF99\",DATUM[\"SWEREF99\",S"); add_srs_wkt (p, 1, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",18.05779],PARAMETER[\""); add_srs_wkt (p, 9, "scale_factor\",0.99999425],PARAMETER[\"false_easting\",1"); add_srs_wkt (p, 10, "00178.1808],PARAMETER[\"false_northing\",-6500614.7836],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"x\""); add_srs_wkt (p, 12, ",NORTH],AXIS[\"y\",EAST],AUTHORITY[\"EPSG\",\"3152\"]]"); p = add_epsg_def_ex (filter, first, last, 3153, "epsg", 3153, "NAD83(CSRS) / BC Albers", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Albers_Conic_Equal_Area", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=50 +lat_2=58.5 +lat_0=45 +lon_0=-126 +x"); add_proj4text (p, 1, "_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / BC Albers\",GEOGCS[\"NAD83(CSRS)\""); add_srs_wkt (p, 1, ",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"Albe"); add_srs_wkt (p, 8, "rs_Conic_Equal_Area\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",50],PARAMETER[\"standard_parallel_2\",58.5],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_center\",45],PARAMETER[\"longitude_of_center"); add_srs_wkt (p, 11, "\",-126],PARAMETER[\"false_easting\",1000000],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"3153\"]]"); p = add_epsg_def_ex (filter, first, last, 3154, "epsg", 3154, "NAD83(CSRS) / UTM zone 7N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=7 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 7N\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-141],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3154\"]]"); p = add_epsg_def_ex (filter, first, last, 3155, "epsg", 3155, "NAD83(CSRS) / UTM zone 8N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=8 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 8N\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-135],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3155\"]]"); p = add_epsg_def_ex (filter, first, last, 3156, "epsg", 3156, "NAD83(CSRS) / UTM zone 9N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=9 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 1, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 9N\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-129],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3156\"]]"); p = add_epsg_def_ex (filter, first, last, 3157, "epsg", 3157, "NAD83(CSRS) / UTM zone 10N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=10 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 10N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-123],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 13, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3157\"]]"); p = add_epsg_def_ex (filter, first, last, 3158, "epsg", 3158, "NAD83(CSRS) / UTM zone 14N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 14N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-99],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3158\"]]"); p = add_epsg_def_ex (filter, first, last, 3159, "epsg", 3159, "NAD83(CSRS) / UTM zone 15N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 15N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-93],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3159\"]]"); p = add_epsg_def_ex (filter, first, last, 3160, "epsg", 3160, "NAD83(CSRS) / UTM zone 16N", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / UTM zone 16N\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",-87],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3160\"]]"); p = add_epsg_def_ex (filter, first, last, 3161, "epsg", 3161, "NAD83 / Ontario MNR Lambert", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.5 +lat_2=53.5 +lat_0=0 +lon_0=-85 +x"); add_proj4text (p, 1, "_0=930000 +y_0=6430000 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Ontario MNR Lambert\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",44.5],PARA"); add_srs_wkt (p, 9, "METER[\"standard_parallel_2\",53.5],PARAMETER[\"latitude"); add_srs_wkt (p, 10, "_of_origin\",0],PARAMETER[\"central_meridian\",-85],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",930000],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",6430000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 13, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"3161\"]]"); p = add_epsg_def_ex (filter, first, last, 3162, "epsg", 3162, "NAD83(CSRS) / Ontario MNR Lambert", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.5 +lat_2=53.5 +lat_0=0 +lon_0=-85 +x"); add_proj4text (p, 1, "_0=930000 +y_0=6430000 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Ontario MNR Lambert\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",44.5],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",53.5],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-85],PARAMETER[\"false_easting\",93000"); add_srs_wkt (p, 12, "0],PARAMETER[\"false_northing\",6430000],UNIT[\"metre\","); add_srs_wkt (p, 13, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3162\"]]"); p = add_epsg_def_ex (filter, first, last, 3163, "epsg", 3163, "RGNC91-93 / Lambert New Caledonia", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_Nouvelle_Caledonie_91_93", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-20.66666666666667 +lat_2=-22.333333333"); add_proj4text (p, 1, "33333 +lat_0=-21.5 +lon_0=166 +x_0=400000 +y_0=300000 +e"); add_proj4text (p, 2, "llps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGNC91-93 / Lambert New Caledonia\",GEOGCS[\"RG"); add_srs_wkt (p, 1, "NC91-93\",DATUM[\"Reseau_Geodesique_de_Nouvelle_Caledoni"); add_srs_wkt (p, 2, "e_91_93\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6749\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4749\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_1\",-20.66666666666667],PARAMETER[\"sta"); add_srs_wkt (p, 10, "ndard_parallel_2\",-22.33333333333333],PARAMETER[\"latit"); add_srs_wkt (p, 11, "ude_of_origin\",-21.5],PARAMETER[\"central_meridian\",16"); add_srs_wkt (p, 12, "6],PARAMETER[\"false_easting\",400000],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",300000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 15, "\"EPSG\",\"3163\"]]"); p = add_epsg_def_ex (filter, first, last, 3164, "epsg", 3164, "ST87 Ouvea / UTM zone 58S", 0, 0, "WGS 84", "Greenwich", "ST87_Ouvea", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=WGS84 +towgs84=-56.263,"); add_proj4text (p, 1, "16.136,-22.856,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ST87 Ouvea / UTM zone 58S\",GEOGCS[\"ST87 Ouvea"); add_srs_wkt (p, 1, "\",DATUM[\"ST87_Ouvea\",SPHEROID[\"WGS 84\",6378137,298."); add_srs_wkt (p, 2, "257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[-56.263,"); add_srs_wkt (p, 3, "16.136,-22.856,0,0,0,0],AUTHORITY[\"EPSG\",\"6750\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4750\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",165],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"3164\"]]"); p = add_epsg_def_ex (filter, first, last, 3165, "epsg", 3165, "NEA74 Noumea / Noumea Lambert", 0, 0, "International 1924", "Greenwich", "NEA74_Noumea", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-22.24469175 +lat_2=-22.29469175 +lat_0"); add_proj4text (p, 1, "=-22.26969175 +lon_0=166.44242575 +x_0=0.66 +y_0=1.02 +e"); add_proj4text (p, 2, "llps=intl +towgs84=-10.18,-350.43,291.37,0,0,0,0 +units="); add_proj4text (p, 3, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NEA74 Noumea / Noumea Lambert\",GEOGCS[\"NEA74 "); add_srs_wkt (p, 1, "Noumea\",DATUM[\"NEA74_Noumea\",SPHEROID[\"International"); add_srs_wkt (p, 2, " 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-10.18,-350.43,291.37,0,0,0,0],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 4, "44\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4644\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 8, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",-22.24469175],PARAMETER[\"standard_parallel_2\",-22.294"); add_srs_wkt (p, 10, "69175],PARAMETER[\"latitude_of_origin\",-22.26969175],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",166.44242575],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_easting\",0.66],PARAMETER[\"false_northing\",1.02],"); add_srs_wkt (p, 13, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3165\"]]"); p = add_epsg_def_ex (filter, first, last, 3166, "epsg", 3166, "NEA74 Noumea / Noumea Lambert 2", 0, 0, "International 1924", "Greenwich", "NEA74_Noumea", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-22.24472222222222 +lat_2=-22.294722222"); add_proj4text (p, 1, "22222 +lat_0=-22.26972222222222 +lon_0=166.4425 +x_0=8.3"); add_proj4text (p, 2, "13000000000001 +y_0=-2.354 +ellps=intl +towgs84=-10.18,-"); add_proj4text (p, 3, "350.43,291.37,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NEA74 Noumea / Noumea Lambert 2\",GEOGCS[\"NEA7"); add_srs_wkt (p, 1, "4 Noumea\",DATUM[\"NEA74_Noumea\",SPHEROID[\"Internation"); add_srs_wkt (p, 2, "al 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWG"); add_srs_wkt (p, 3, "S84[-10.18,-350.43,291.37,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6644\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4644\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",-22.24472222222222],PARAMETER[\"standard_parallel_2"); add_srs_wkt (p, 10, "\",-22.29472222222222],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 11, "-22.26972222222222],PARAMETER[\"central_meridian\",166.4"); add_srs_wkt (p, 12, "425],PARAMETER[\"false_easting\",8.313],PARAMETER[\"fals"); add_srs_wkt (p, 13, "e_northing\",-2.354],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"3166\"]]"); p = add_epsg_def_ex (filter, first, last, 3167, "epsg", 3167, "Kertau (RSO) / RSO Malaya (ch)", 0, 0, "Everest 1830 (RSO 1969)", "Greenwich", "Kertau_RSO", "Hotine_Oblique_Mercator", "British chain (Sears 1922 truncated)", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k="); add_proj4text (p, 1, "0.99984 +x_0=40000 +y_0=0 +no_uoff +gamma=323.1301023611"); add_proj4text (p, 2, "111 +a=6377295.664 +b=6356094.667915204 +to_meter=20.116"); add_proj4text (p, 3, "756 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kertau (RSO) / RSO Malaya (ch)\",GEOGCS[\"Kerta"); add_srs_wkt (p, 1, "u (RSO)\",DATUM[\"Kertau_RSO\",SPHEROID[\"Everest 1830 ("); add_srs_wkt (p, 2, "RSO 1969)\",6377295.664,300.8017,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "56\"]],AUTHORITY[\"EPSG\",\"6751\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4751\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"latitude_of_center\",4],PARAMETER[\"longitude_of_ce"); add_srs_wkt (p, 9, "nter\",102.25],PARAMETER[\"azimuth\",323.0257905],PARAME"); add_srs_wkt (p, 10, "TER[\"rectified_grid_angle\",323.1301023611111],PARAMETE"); add_srs_wkt (p, 11, "R[\"scale_factor\",0.99984],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "1988.392164223695],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 13, "\"British chain (Sears 1922 truncated)\",20.116756,AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"9301\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 15, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"3167\"]]"); p = add_epsg_def_ex (filter, first, last, 3168, "epsg", 3168, "Kertau (RSO) / RSO Malaya (m)", 0, 0, "Everest 1830 (RSO 1969)", "Greenwich", "Kertau_RSO", "Hotine_Oblique_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k="); add_proj4text (p, 1, "0.99984 +x_0=804670.24 +y_0=0 +no_uoff +gamma=323.130102"); add_proj4text (p, 2, "3611111 +a=6377295.664 +b=6356094.667915204 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kertau (RSO) / RSO Malaya (m)\",GEOGCS[\"Kertau"); add_srs_wkt (p, 1, " (RSO)\",DATUM[\"Kertau_RSO\",SPHEROID[\"Everest 1830 (R"); add_srs_wkt (p, 2, "SO 1969)\",6377295.664,300.8017,AUTHORITY[\"EPSG\",\"705"); add_srs_wkt (p, 3, "6\"]],AUTHORITY[\"EPSG\",\"6751\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4751\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"latitude_of_center\",4],PARAMETER[\"longitude_of_ce"); add_srs_wkt (p, 9, "nter\",102.25],PARAMETER[\"azimuth\",323.0257905],PARAME"); add_srs_wkt (p, 10, "TER[\"rectified_grid_angle\",323.1301023611111],PARAMETE"); add_srs_wkt (p, 11, "R[\"scale_factor\",0.99984],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "804670.24],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 13, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 14, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3168\"]]"); p = add_epsg_def_ex (filter, first, last, 3169, "epsg", 3169, "RGNC91-93 / UTM zone 57S", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_Nouvelle_Caledonie_91_93", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGNC91-93 / UTM zone 57S\",GEOGCS[\"RGNC91-93\""); add_srs_wkt (p, 1, ",DATUM[\"Reseau_Geodesique_de_Nouvelle_Caledonie_91_93\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6749\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4749\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",159],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3169\"]]"); p = add_epsg_def_ex (filter, first, last, 3170, "epsg", 3170, "RGNC91-93 / UTM zone 58S", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_Nouvelle_Caledonie_91_93", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGNC91-93 / UTM zone 58S\",GEOGCS[\"RGNC91-93\""); add_srs_wkt (p, 1, ",DATUM[\"Reseau_Geodesique_de_Nouvelle_Caledonie_91_93\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6749\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4749\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",165],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3170\"]]"); p = add_epsg_def_ex (filter, first, last, 3171, "epsg", 3171, "RGNC91-93 / UTM zone 59S", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_Nouvelle_Caledonie_91_93", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGNC91-93 / UTM zone 59S\",GEOGCS[\"RGNC91-93\""); add_srs_wkt (p, 1, ",DATUM[\"Reseau_Geodesique_de_Nouvelle_Caledonie_91_93\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6749\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4749\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",171],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3171\"]]"); p = add_epsg_def_ex (filter, first, last, 3172, "epsg", 3172, "IGN53 Mare / UTM zone 59S", 0, 0, "International 1924", "Greenwich", "IGN53_Mare", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=59 +south +ellps=intl +towgs84=287.58,17"); add_proj4text (p, 1, "7.78,-135.41,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN53 Mare / UTM zone 59S\",GEOGCS[\"IGN53 Mare"); add_srs_wkt (p, 1, "\",DATUM[\"IGN53_Mare\",SPHEROID[\"International 1924\","); add_srs_wkt (p, 2, "6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[287.58"); add_srs_wkt (p, 3, ",177.78,-135.41,0,0,0,0],AUTHORITY[\"EPSG\",\"6641\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4641\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",171],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"3172\"]]"); p = add_epsg_def_ex (filter, first, last, 3174, "epsg", 3174, "NAD83 / Great Lakes Albers", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=42.122774 +lat_2=49.01518 +lat_0=45.568"); add_proj4text (p, 1, "977 +lon_0=-84.455955 +x_0=1000000 +y_0=1000000 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Great Lakes Albers\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Albers_Conic_Equal_"); add_srs_wkt (p, 8, "Area\"],PARAMETER[\"standard_parallel_1\",42.122774],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",49.01518],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_center\",45.568977],PARAMETER[\"longitude_of_ce"); add_srs_wkt (p, 11, "nter\",-84.455955],PARAMETER[\"false_easting\",1000000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"3174\"]]"); p = add_epsg_def_ex (filter, first, last, 3175, "epsg", 3175, "NAD83 / Great Lakes and St Lawrence Albers", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=42.122774 +lat_2=49.01518 +lat_0=45.568"); add_proj4text (p, 1, "977 +lon_0=-83.248627 +x_0=1000000 +y_0=1000000 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Great Lakes and St Lawrence Albers\",GE"); add_srs_wkt (p, 1, "OGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Albe"); add_srs_wkt (p, 8, "rs_Conic_Equal_Area\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",42.122774],PARAMETER[\"standard_parallel_2\",49.01518],"); add_srs_wkt (p, 10, "PARAMETER[\"latitude_of_center\",45.568977],PARAMETER[\""); add_srs_wkt (p, 11, "longitude_of_center\",-83.248627],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",1000000],PARAMETER[\"false_northing\",1000000],UNI"); add_srs_wkt (p, 13, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3175\"]]"); p = add_epsg_def_ex (filter, first, last, 3176, "epsg", 3176, "Indian 1960 / TM 106 NE", 0, 0, "Everest 1830 (1937 Adjustment)", "Greenwich", "Indian_1960", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=106 +k=0.9996 +x_0=500000 +y"); add_proj4text (p, 1, "_0=0 +a=6377276.345 +b=6356075.413140239 +towgs84=198,88"); add_proj4text (p, 2, "1,317,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Indian 1960 / TM 106 NE\",GEOGCS[\"Indian 1960\""); add_srs_wkt (p, 1, ",DATUM[\"Indian_1960\",SPHEROID[\"Everest 1830 (1937 Adj"); add_srs_wkt (p, 2, "ustment)\",6377276.345,300.8017,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "5\"]],TOWGS84[198,881,317,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6131\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4131\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",106],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.9996],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"3176\"]]"); p = add_epsg_def_ex (filter, first, last, 3177, "epsg", 3177, "LGD2006 / Libya TM", 0, 0, "International 1924", "Greenwich", "Libyan_Geodetic_Datum_2006", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=17 +k=0.9965000000000001 +x_"); add_proj4text (p, 1, "0=1000000 +y_0=0 +ellps=intl +towgs84=-208.4058,-109.877"); add_proj4text (p, 2, "7,-2.5764,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM\",GEOGCS[\"LGD2006\",DATUM[\""); add_srs_wkt (p, 1, "Libyan_Geodetic_Datum_2006\",SPHEROID[\"International 19"); add_srs_wkt (p, 2, "24\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-"); add_srs_wkt (p, 3, "208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",17],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9965],PARAMETER[\"false_easting\",1000000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"3177\"]]"); p = add_epsg_def_ex (filter, first, last, 3178, "epsg", 3178, "GR96 / UTM zone 18N", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 18N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4747"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-75]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3178"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 3179, "epsg", 3179, "GR96 / UTM zone 19N", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 19N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4747"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-69]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3179"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 3180, "epsg", 3180, "GR96 / UTM zone 20N", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 20N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4747"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-63]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3180"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 3181, "epsg", 3181, "GR96 / UTM zone 21N", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 21N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4747"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-57]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3181"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 3182, "epsg", 3182, "GR96 / UTM zone 22N", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 22N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4747"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-51]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3182"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 3183, "epsg", 3183, "GR96 / UTM zone 23N", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 23N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4747"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-45]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3183"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 3184, "epsg", 3184, "GR96 / UTM zone 24N", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=24 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 24N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4747"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-39]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3184"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 3185, "epsg", 3185, "GR96 / UTM zone 25N", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=25 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 25N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4747"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-33]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3185"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 3186, "epsg", 3186, "GR96 / UTM zone 26N", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 26N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4747"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-27]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3186"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 3187, "epsg", 3187, "GR96 / UTM zone 27N", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=27 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 27N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4747"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-21]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3187"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 3188, "epsg", 3188, "GR96 / UTM zone 28N", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 28N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4747"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-15]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3188"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 3189, "epsg", 3189, "GR96 / UTM zone 29N", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / UTM zone 29N\",GEOGCS[\"GR96\",DATUM[\"G"); add_srs_wkt (p, 1, "reenland_1996\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 2, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4747"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-9],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3189\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 3190, "epsg", 3190, "LGD2006 / Libya TM zone 5", 0, 0, "International 1924", "Greenwich", "Libyan_Geodetic_Datum_2006", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.99995 +x_0=200000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +towgs84=-208.4058,-109.8777,-2.5764,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM zone 5\",GEOGCS[\"LGD2006\","); add_srs_wkt (p, 1, "DATUM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",0.99995],PARAMETER[\"false_easting\",200000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"3190\"]]"); p = add_epsg_def_ex (filter, first, last, 3191, "epsg", 3191, "LGD2006 / Libya TM zone 6", 0, 0, "International 1924", "Greenwich", "Libyan_Geodetic_Datum_2006", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11 +k=0.99995 +x_0=200000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-208.4058,-109.8777,-2.5764,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM zone 6\",GEOGCS[\"LGD2006\","); add_srs_wkt (p, 1, "DATUM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",11],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",0.99995],PARAMETER[\"false_easting\",20000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"3191\"]]"); p = add_epsg_def_ex (filter, first, last, 3192, "epsg", 3192, "LGD2006 / Libya TM zone 7", 0, 0, "International 1924", "Greenwich", "Libyan_Geodetic_Datum_2006", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13 +k=0.99995 +x_0=200000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-208.4058,-109.8777,-2.5764,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM zone 7\",GEOGCS[\"LGD2006\","); add_srs_wkt (p, 1, "DATUM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",13],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",0.99995],PARAMETER[\"false_easting\",20000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"3192\"]]"); p = add_epsg_def_ex (filter, first, last, 3193, "epsg", 3193, "LGD2006 / Libya TM zone 8", 0, 0, "International 1924", "Greenwich", "Libyan_Geodetic_Datum_2006", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.99995 +x_0=200000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-208.4058,-109.8777,-2.5764,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM zone 8\",GEOGCS[\"LGD2006\","); add_srs_wkt (p, 1, "DATUM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",0.99995],PARAMETER[\"false_easting\",20000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"3193\"]]"); p = add_epsg_def_ex (filter, first, last, 3194, "epsg", 3194, "LGD2006 / Libya TM zone 9", 0, 0, "International 1924", "Greenwich", "Libyan_Geodetic_Datum_2006", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=17 +k=0.99995 +x_0=200000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-208.4058,-109.8777,-2.5764,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM zone 9\",GEOGCS[\"LGD2006\","); add_srs_wkt (p, 1, "DATUM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",17],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",0.99995],PARAMETER[\"false_easting\",20000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"3194\"]]"); p = add_epsg_def_ex (filter, first, last, 3195, "epsg", 3195, "LGD2006 / Libya TM zone 10", 0, 0, "International 1924", "Greenwich", "Libyan_Geodetic_Datum_2006", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=19 +k=0.99995 +x_0=200000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-208.4058,-109.8777,-2.5764,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM zone 10\",GEOGCS[\"LGD2006\""); add_srs_wkt (p, 1, ",DATUM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",19],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",0.99995],PARAMETER[\"false_easting\",20000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"3195\"]]"); p = add_epsg_def_ex (filter, first, last, 3196, "epsg", 3196, "LGD2006 / Libya TM zone 11", 0, 0, "International 1924", "Greenwich", "Libyan_Geodetic_Datum_2006", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.99995 +x_0=200000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-208.4058,-109.8777,-2.5764,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM zone 11\",GEOGCS[\"LGD2006\""); add_srs_wkt (p, 1, ",DATUM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",21],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",0.99995],PARAMETER[\"false_easting\",20000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"3196\"]]"); p = add_epsg_def_ex (filter, first, last, 3197, "epsg", 3197, "LGD2006 / Libya TM zone 12", 0, 0, "International 1924", "Greenwich", "Libyan_Geodetic_Datum_2006", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=23 +k=0.99995 +x_0=200000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-208.4058,-109.8777,-2.5764,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM zone 12\",GEOGCS[\"LGD2006\""); add_srs_wkt (p, 1, ",DATUM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",23],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",0.99995],PARAMETER[\"false_easting\",20000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"3197\"]]"); p = add_epsg_def_ex (filter, first, last, 3198, "epsg", 3198, "LGD2006 / Libya TM zone 13", 0, 0, "International 1924", "Greenwich", "Libyan_Geodetic_Datum_2006", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=25 +k=0.99995 +x_0=200000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +towgs84=-208.4058,-109.8777,-2.5764,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / Libya TM zone 13\",GEOGCS[\"LGD2006\""); add_srs_wkt (p, 1, ",DATUM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",25],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",0.99995],PARAMETER[\"false_easting\",20000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"3198\"]]"); p = add_epsg_def_ex (filter, first, last, 3199, "epsg", 3199, "LGD2006 / UTM zone 32N", 0, 0, "International 1924", "Greenwich", "Libyan_Geodetic_Datum_2006", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=intl +towgs84=-208.4058,-109.8"); add_proj4text (p, 1, "777,-2.5764,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / UTM zone 32N\",GEOGCS[\"LGD2006\",DAT"); add_srs_wkt (p, 1, "UM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Internation"); add_srs_wkt (p, 2, "al 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWG"); add_srs_wkt (p, 3, "S84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"3199\"]]"); p = add_epsg_def_ex (filter, first, last, 3200, "epsg", 3200, "FD58 / Iraq zone", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Final_Datum_1958", "Lambert_Conformal_Conic_1SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.99878"); add_proj4text (p, 1, "64078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +tow"); add_proj4text (p, 2, "gs84=-241.54,-163.64,396.06,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"FD58 / Iraq zone\",GEOGCS[\"FD58\",DATUM[\"Fina"); add_srs_wkt (p, 1, "l_Datum_1958\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 2, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-241.54,"); add_srs_wkt (p, 3, "-163.64,396.06,0,0,0,0],AUTHORITY[\"EPSG\",\"6132\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4132\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",32.5],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",45],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",0.9987864078],PARAMETER[\"false_easting\",1500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",1166200],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 13, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3200\"]]"); p = add_epsg_def_ex (filter, first, last, 3201, "epsg", 3201, "LGD2006 / UTM zone 33N", 0, 0, "International 1924", "Greenwich", "Libyan_Geodetic_Datum_2006", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=intl +towgs84=-208.4058,-109.8"); add_proj4text (p, 1, "777,-2.5764,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / UTM zone 33N\",GEOGCS[\"LGD2006\",DAT"); add_srs_wkt (p, 1, "UM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Internation"); add_srs_wkt (p, 2, "al 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWG"); add_srs_wkt (p, 3, "S84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3201\"]]"); p = add_epsg_def_ex (filter, first, last, 3202, "epsg", 3202, "LGD2006 / UTM zone 34N", 0, 0, "International 1924", "Greenwich", "Libyan_Geodetic_Datum_2006", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=intl +towgs84=-208.4058,-109.8"); add_proj4text (p, 1, "777,-2.5764,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / UTM zone 34N\",GEOGCS[\"LGD2006\",DAT"); add_srs_wkt (p, 1, "UM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Internation"); add_srs_wkt (p, 2, "al 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWG"); add_srs_wkt (p, 3, "S84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",21],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3202\"]]"); p = add_epsg_def_ex (filter, first, last, 3203, "epsg", 3203, "LGD2006 / UTM zone 35N", 0, 0, "International 1924", "Greenwich", "Libyan_Geodetic_Datum_2006", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=intl +towgs84=-208.4058,-109.8"); add_proj4text (p, 1, "777,-2.5764,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LGD2006 / UTM zone 35N\",GEOGCS[\"LGD2006\",DAT"); add_srs_wkt (p, 1, "UM[\"Libyan_Geodetic_Datum_2006\",SPHEROID[\"Internation"); add_srs_wkt (p, 2, "al 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWG"); add_srs_wkt (p, 3, "S84[-208.4058,-109.8777,-2.5764,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6754\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4754\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",27],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3203\"]]"); p = add_epsg_def_ex (filter, first, last, 3204, "epsg", 3204, "WGS 84 / SCAR IMW SP19-20", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.333333333"); add_proj4text (p, 1, "33334 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SP19-20\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-60.66666666666666],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-63.33333333333334],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-66],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3204\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3205, "epsg", 3205, "WGS 84 / SCAR IMW SP21-22", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.333333333"); add_proj4text (p, 1, "33334 +lat_0=-90 +lon_0=-54 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SP21-22\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-60.66666666666666],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-63.33333333333334],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-54],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3205\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3206, "epsg", 3206, "WGS 84 / SCAR IMW SP23-24", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.333333333"); add_proj4text (p, 1, "33334 +lat_0=-90 +lon_0=-42 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SP23-24\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-60.66666666666666],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-63.33333333333334],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-42],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3206\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3207, "epsg", 3207, "WGS 84 / SCAR IMW SQ01-02", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-174 +x_0=0 +y_0=0 +datum=WGS84 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ01-02\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-64.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-67.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-174],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3207\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3208, "epsg", 3208, "WGS 84 / SCAR IMW SQ19-20", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ19-20\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-64.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-67.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-66],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3208\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3209, "epsg", 3209, "WGS 84 / SCAR IMW SQ21-22", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-54 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ21-22\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-64.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-67.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-54],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3209\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3210, "epsg", 3210, "WGS 84 / SCAR IMW SQ37-38", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=42 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ37-38\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-64.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-67.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",42],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3210\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3211, "epsg", 3211, "WGS 84 / SCAR IMW SQ39-40", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=54 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ39-40\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-64.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-67.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",54],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3211\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3212, "epsg", 3212, "WGS 84 / SCAR IMW SQ41-42", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=66 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ41-42\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-64.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-67.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",66],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3212\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3213, "epsg", 3213, "WGS 84 / SCAR IMW SQ43-44", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=78 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ43-44\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-64.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-67.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",78],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3213\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3214, "epsg", 3214, "WGS 84 / SCAR IMW SQ45-46", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=90 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ45-46\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-64.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-67.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",90],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3214\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3215, "epsg", 3215, "WGS 84 / SCAR IMW SQ47-48", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=102 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ47-48\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-64.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-67.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",102],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3215\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3216, "epsg", 3216, "WGS 84 / SCAR IMW SQ49-50", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=114 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ49-50\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-64.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-67.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",114],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3216\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3217, "epsg", 3217, "WGS 84 / SCAR IMW SQ51-52", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=126 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ51-52\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-64.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-67.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",126],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3217\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3218, "epsg", 3218, "WGS 84 / SCAR IMW SQ53-54", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=138 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ53-54\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-64.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-67.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",138],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3218\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3219, "epsg", 3219, "WGS 84 / SCAR IMW SQ55-56", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=150 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ55-56\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-64.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-67.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",150],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3219\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3220, "epsg", 3220, "WGS 84 / SCAR IMW SQ57-58", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=162 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SQ57-58\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-64.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-67.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",162],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3220\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3221, "epsg", 3221, "WGS 84 / SCAR IMW SR13-14", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-102 +x_0=0 +y_0=0 +datum=WGS84 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR13-14\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-102],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3221\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3222, "epsg", 3222, "WGS 84 / SCAR IMW SR15-16", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-90 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR15-16\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-90],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3222\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3223, "epsg", 3223, "WGS 84 / SCAR IMW SR17-18", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-78 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR17-18\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-78],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3223\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3224, "epsg", 3224, "WGS 84 / SCAR IMW SR19-20", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR19-20\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-66],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3224\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3225, "epsg", 3225, "WGS 84 / SCAR IMW SR27-28", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-18 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR27-28\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-18],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3225\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3226, "epsg", 3226, "WGS 84 / SCAR IMW SR29-30", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-6 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR29-30\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-6],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3226\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3227, "epsg", 3227, "WGS 84 / SCAR IMW SR31-32", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=6 +x_0=0 +y_0=0 +datum=WGS84 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR31-32\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",6],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3227\"]]"); p = add_epsg_def_ex (filter, first, last, 3228, "epsg", 3228, "WGS 84 / SCAR IMW SR33-34", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=18 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR33-34\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",18],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3228\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3229, "epsg", 3229, "WGS 84 / SCAR IMW SR35-36", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=30 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR35-36\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",30],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3229\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3230, "epsg", 3230, "WGS 84 / SCAR IMW SR37-38", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=42 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR37-38\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",42],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3230\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3231, "epsg", 3231, "WGS 84 / SCAR IMW SR39-40", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=54 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR39-40\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",54],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3231\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3232, "epsg", 3232, "WGS 84 / SCAR IMW SR41-42", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=66 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR41-42\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",66],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3232\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3233, "epsg", 3233, "WGS 84 / SCAR IMW SR43-44", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=78 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR43-44\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",78],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3233\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3234, "epsg", 3234, "WGS 84 / SCAR IMW SR45-46", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=90 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR45-46\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",90],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3234\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3235, "epsg", 3235, "WGS 84 / SCAR IMW SR47-48", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=102 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR47-48\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",102],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3235\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3236, "epsg", 3236, "WGS 84 / SCAR IMW SR49-50", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=114 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR49-50\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",114],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3236\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3237, "epsg", 3237, "WGS 84 / SCAR IMW SR51-52", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=126 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR51-52\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",126],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3237\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3238, "epsg", 3238, "WGS 84 / SCAR IMW SR53-54", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=138 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR53-54\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",138],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3238\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3239, "epsg", 3239, "WGS 84 / SCAR IMW SR55-56", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=150 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR55-56\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",150],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3239\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3240, "epsg", 3240, "WGS 84 / SCAR IMW SR57-58", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=162 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR57-58\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",162],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3240\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3241, "epsg", 3241, "WGS 84 / SCAR IMW SR59-60", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=174 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SR59-60\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-68.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-71.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",174],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3241\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3242, "epsg", 3242, "WGS 84 / SCAR IMW SS04-06", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-153 +x_0=0 +y_0=0 +datum=WGS84 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS04-06\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-72.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-153],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3242\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3243, "epsg", 3243, "WGS 84 / SCAR IMW SS07-09", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-135 +x_0=0 +y_0=0 +datum=WGS84 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS07-09\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-72.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-135],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3243\""); add_srs_wkt (p, 14, "]]"); } #endif /* full EPSG initialization enabled/disabled */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_22.c��������������������������������������������������0000664�0001750�0001750�00000417116�12544707704�017045� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_22 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 4523, "epsg", 4523, "CGCS2000 / 3-degree Gauss-Kruger zone 35", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 35\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",105],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",35500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"4523\"]]"); p = add_epsg_def_ex (filter, first, last, 4524, "epsg", 4524, "CGCS2000 / 3-degree Gauss-Kruger zone 36", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 36\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",108],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",36500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"4524\"]]"); p = add_epsg_def_ex (filter, first, last, 4525, "epsg", 4525, "CGCS2000 / 3-degree Gauss-Kruger zone 37", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 37\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",111],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",37500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"4525\"]]"); p = add_epsg_def_ex (filter, first, last, 4526, "epsg", 4526, "CGCS2000 / 3-degree Gauss-Kruger zone 38", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 38\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",114],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",38500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"4526\"]]"); p = add_epsg_def_ex (filter, first, last, 4527, "epsg", 4527, "CGCS2000 / 3-degree Gauss-Kruger zone 39", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 39\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",117],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",39500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"4527\"]]"); p = add_epsg_def_ex (filter, first, last, 4528, "epsg", 4528, "CGCS2000 / 3-degree Gauss-Kruger zone 40", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 40\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",120],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",40500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"4528\"]]"); p = add_epsg_def_ex (filter, first, last, 4529, "epsg", 4529, "CGCS2000 / 3-degree Gauss-Kruger zone 41", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 41\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",123],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",41500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"4529\"]]"); p = add_epsg_def_ex (filter, first, last, 4530, "epsg", 4530, "CGCS2000 / 3-degree Gauss-Kruger zone 42", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 42\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",126],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",42500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"4530\"]]"); p = add_epsg_def_ex (filter, first, last, 4531, "epsg", 4531, "CGCS2000 / 3-degree Gauss-Kruger zone 43", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 43\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",129],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",43500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"4531\"]]"); p = add_epsg_def_ex (filter, first, last, 4532, "epsg", 4532, "CGCS2000 / 3-degree Gauss-Kruger zone 44", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 44\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",132],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",44500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"4532\"]]"); p = add_epsg_def_ex (filter, first, last, 4533, "epsg", 4533, "CGCS2000 / 3-degree Gauss-Kruger zone 45", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger zone 45\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",135],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",45500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"4533\"]]"); p = add_epsg_def_ex (filter, first, last, 4534, "epsg", 4534, "CGCS2000 / 3-degree Gauss-Kruger CM 75E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 75E\",GEOGC"); add_srs_wkt (p, 1, "S[\"China Geodetic Coordinate System 2000\",DATUM[\"Chin"); add_srs_wkt (p, 2, "a_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",75],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"4534\"]]"); p = add_epsg_def_ex (filter, first, last, 4535, "epsg", 4535, "CGCS2000 / 3-degree Gauss-Kruger CM 78E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 78E\",GEOGC"); add_srs_wkt (p, 1, "S[\"China Geodetic Coordinate System 2000\",DATUM[\"Chin"); add_srs_wkt (p, 2, "a_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",78],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"4535\"]]"); p = add_epsg_def_ex (filter, first, last, 4536, "epsg", 4536, "CGCS2000 / 3-degree Gauss-Kruger CM 81E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 81E\",GEOGC"); add_srs_wkt (p, 1, "S[\"China Geodetic Coordinate System 2000\",DATUM[\"Chin"); add_srs_wkt (p, 2, "a_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",81],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"4536\"]]"); p = add_epsg_def_ex (filter, first, last, 4537, "epsg", 4537, "CGCS2000 / 3-degree Gauss-Kruger CM 84E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 84E\",GEOGC"); add_srs_wkt (p, 1, "S[\"China Geodetic Coordinate System 2000\",DATUM[\"Chin"); add_srs_wkt (p, 2, "a_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",84],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"4537\"]]"); p = add_epsg_def_ex (filter, first, last, 4538, "epsg", 4538, "CGCS2000 / 3-degree Gauss-Kruger CM 87E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 87E\",GEOGC"); add_srs_wkt (p, 1, "S[\"China Geodetic Coordinate System 2000\",DATUM[\"Chin"); add_srs_wkt (p, 2, "a_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",87],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"4538\"]]"); p = add_epsg_def_ex (filter, first, last, 4539, "epsg", 4539, "CGCS2000 / 3-degree Gauss-Kruger CM 90E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 90E\",GEOGC"); add_srs_wkt (p, 1, "S[\"China Geodetic Coordinate System 2000\",DATUM[\"Chin"); add_srs_wkt (p, 2, "a_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",90],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"4539\"]]"); p = add_epsg_def_ex (filter, first, last, 4540, "epsg", 4540, "CGCS2000 / 3-degree Gauss-Kruger CM 93E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 93E\",GEOGC"); add_srs_wkt (p, 1, "S[\"China Geodetic Coordinate System 2000\",DATUM[\"Chin"); add_srs_wkt (p, 2, "a_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",93],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"4540\"]]"); p = add_epsg_def_ex (filter, first, last, 4541, "epsg", 4541, "CGCS2000 / 3-degree Gauss-Kruger CM 96E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 96E\",GEOGC"); add_srs_wkt (p, 1, "S[\"China Geodetic Coordinate System 2000\",DATUM[\"Chin"); add_srs_wkt (p, 2, "a_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",96],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"4541\"]]"); p = add_epsg_def_ex (filter, first, last, 4542, "epsg", 4542, "CGCS2000 / 3-degree Gauss-Kruger CM 99E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 99E\",GEOGC"); add_srs_wkt (p, 1, "S[\"China Geodetic Coordinate System 2000\",DATUM[\"Chin"); add_srs_wkt (p, 2, "a_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",99],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"4542\"]]"); p = add_epsg_def_ex (filter, first, last, 4543, "epsg", 4543, "CGCS2000 / 3-degree Gauss-Kruger CM 102E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 102E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",102],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"4543\"]]"); p = add_epsg_def_ex (filter, first, last, 4544, "epsg", 4544, "CGCS2000 / 3-degree Gauss-Kruger CM 105E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 105E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",105],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"4544\"]]"); p = add_epsg_def_ex (filter, first, last, 4545, "epsg", 4545, "CGCS2000 / 3-degree Gauss-Kruger CM 108E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 108E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",108],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"4545\"]]"); p = add_epsg_def_ex (filter, first, last, 4546, "epsg", 4546, "CGCS2000 / 3-degree Gauss-Kruger CM 111E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 111E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",111],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"4546\"]]"); p = add_epsg_def_ex (filter, first, last, 4547, "epsg", 4547, "CGCS2000 / 3-degree Gauss-Kruger CM 114E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 114E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",114],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"4547\"]]"); p = add_epsg_def_ex (filter, first, last, 4548, "epsg", 4548, "CGCS2000 / 3-degree Gauss-Kruger CM 117E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 117E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",117],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"4548\"]]"); p = add_epsg_def_ex (filter, first, last, 4549, "epsg", 4549, "CGCS2000 / 3-degree Gauss-Kruger CM 120E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 120E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",120],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"4549\"]]"); p = add_epsg_def_ex (filter, first, last, 4550, "epsg", 4550, "CGCS2000 / 3-degree Gauss-Kruger CM 123E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 123E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",123],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"4550\"]]"); p = add_epsg_def_ex (filter, first, last, 4551, "epsg", 4551, "CGCS2000 / 3-degree Gauss-Kruger CM 126E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 126E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",126],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"4551\"]]"); p = add_epsg_def_ex (filter, first, last, 4552, "epsg", 4552, "CGCS2000 / 3-degree Gauss-Kruger CM 129E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 129E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",129],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"4552\"]]"); p = add_epsg_def_ex (filter, first, last, 4553, "epsg", 4553, "CGCS2000 / 3-degree Gauss-Kruger CM 132E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 132E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",132],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"4553\"]]"); p = add_epsg_def_ex (filter, first, last, 4554, "epsg", 4554, "CGCS2000 / 3-degree Gauss-Kruger CM 135E", 0, 1, "CGCS2000", "Greenwich", "China_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CGCS2000 / 3-degree Gauss-Kruger CM 135E\",GEOG"); add_srs_wkt (p, 1, "CS[\"China Geodetic Coordinate System 2000\",DATUM[\"Chi"); add_srs_wkt (p, 2, "na_2000\",SPHEROID[\"CGCS2000\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"1024\"]],AUTHORITY[\"EPSG\",\"1043\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4490\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",135],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"4554\"]]"); p = add_epsg_def_ex (filter, first, last, 4555, "epsg", 4555, "New Beijing", 1, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"New Beijing\",DATUM[\"New_Beijing\",SPHEROID[\""); add_srs_wkt (p, 1, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 2, "4\"]],AUTHORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 3, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 4, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 5, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4555\"]]"); p = add_epsg_def_ex (filter, first, last, 4558, "epsg", 4558, "RRAF 1991", 1, 1, "GRS 1980", "Greenwich", "Reseau_de_Reference_des_Antilles_Francaises_1991", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RRAF 1991\",DATUM[\"Reseau_de_Reference_des_Ant"); add_srs_wkt (p, 1, "illes_Francaises_1991\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 2, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"1047\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4558\"]]"); p = add_epsg_def_ex (filter, first, last, 4559, "epsg", 4559, "RRAF 1991 / UTM zone 20N", 0, 0, "GRS 1980", "Greenwich", "Reseau_de_Reference_des_Antilles_Francaises_1991", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RRAF 1991 / UTM zone 20N\",GEOGCS[\"RRAF 1991\""); add_srs_wkt (p, 1, ",DATUM[\"Reseau_de_Reference_des_Antilles_Francaises_199"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"1047\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4558\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",-63],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"4559\"]]"); p = add_epsg_def_ex (filter, first, last, 4568, "epsg", 4568, "New Beijing / Gauss-Kruger zone 13", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 13\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",75],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",135"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"4568\"]]"); p = add_epsg_def_ex (filter, first, last, 4569, "epsg", 4569, "New Beijing / Gauss-Kruger zone 14", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 14\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",81],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",145"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"4569\"]]"); p = add_epsg_def_ex (filter, first, last, 4570, "epsg", 4570, "New Beijing / Gauss-Kruger zone 15", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 15\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",87],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",155"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"4570\"]]"); p = add_epsg_def_ex (filter, first, last, 4571, "epsg", 4571, "New Beijing / Gauss-Kruger zone 16", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 16\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",93],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",165"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"4571\"]]"); p = add_epsg_def_ex (filter, first, last, 4572, "epsg", 4572, "New Beijing / Gauss-Kruger zone 17", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 17\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",99],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",175"); add_srs_wkt (p, 10, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"4572\"]]"); p = add_epsg_def_ex (filter, first, last, 4573, "epsg", 4573, "New Beijing / Gauss-Kruger zone 18", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 18\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",105],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",18"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"4573\"]]"); p = add_epsg_def_ex (filter, first, last, 4574, "epsg", 4574, "New Beijing / Gauss-Kruger zone 19", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 19\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",111],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",19"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"4574\"]]"); p = add_epsg_def_ex (filter, first, last, 4575, "epsg", 4575, "New Beijing / Gauss-Kruger zone 20", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 20\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",117],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",20"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"4575\"]]"); p = add_epsg_def_ex (filter, first, last, 4576, "epsg", 4576, "New Beijing / Gauss-Kruger zone 21", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 21\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",123],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",21"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"4576\"]]"); p = add_epsg_def_ex (filter, first, last, 4577, "epsg", 4577, "New Beijing / Gauss-Kruger zone 22", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 22\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",129],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",22"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"4577\"]]"); p = add_epsg_def_ex (filter, first, last, 4578, "epsg", 4578, "New Beijing / Gauss-Kruger zone 23", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger zone 23\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",135],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",23"); add_srs_wkt (p, 10, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 11, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 12, "Y\",EAST],AUTHORITY[\"EPSG\",\"4578\"]]"); p = add_epsg_def_ex (filter, first, last, 4579, "epsg", 4579, "New Beijing / Gauss-Kruger CM 75E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 75E\",GEOGCS[\"Ne"); add_srs_wkt (p, 1, "w Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky "); add_srs_wkt (p, 2, "1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 6, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],P"); add_srs_wkt (p, 7, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 8, "of_origin\",0],PARAMETER[\"central_meridian\",75],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"4579\"]]"); p = add_epsg_def_ex (filter, first, last, 4580, "epsg", 4580, "New Beijing / Gauss-Kruger CM 81E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 81E\",GEOGCS[\"Ne"); add_srs_wkt (p, 1, "w Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky "); add_srs_wkt (p, 2, "1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 6, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],P"); add_srs_wkt (p, 7, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 8, "of_origin\",0],PARAMETER[\"central_meridian\",81],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"4580\"]]"); p = add_epsg_def_ex (filter, first, last, 4581, "epsg", 4581, "New Beijing / Gauss-Kruger CM 87E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 87E\",GEOGCS[\"Ne"); add_srs_wkt (p, 1, "w Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky "); add_srs_wkt (p, 2, "1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 6, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],P"); add_srs_wkt (p, 7, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 8, "of_origin\",0],PARAMETER[\"central_meridian\",87],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"4581\"]]"); p = add_epsg_def_ex (filter, first, last, 4582, "epsg", 4582, "New Beijing / Gauss-Kruger CM 93E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 93E\",GEOGCS[\"Ne"); add_srs_wkt (p, 1, "w Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky "); add_srs_wkt (p, 2, "1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 6, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],P"); add_srs_wkt (p, 7, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 8, "of_origin\",0],PARAMETER[\"central_meridian\",93],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"4582\"]]"); p = add_epsg_def_ex (filter, first, last, 4583, "epsg", 4583, "New Beijing / Gauss-Kruger CM 99E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 99E\",GEOGCS[\"Ne"); add_srs_wkt (p, 1, "w Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky "); add_srs_wkt (p, 2, "1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 6, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],P"); add_srs_wkt (p, 7, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 8, "of_origin\",0],PARAMETER[\"central_meridian\",99],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 10, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 11, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 12, "EAST],AUTHORITY[\"EPSG\",\"4583\"]]"); p = add_epsg_def_ex (filter, first, last, 4584, "epsg", 4584, "New Beijing / Gauss-Kruger CM 105E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 105E\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",105],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"4584\"]]"); p = add_epsg_def_ex (filter, first, last, 4585, "epsg", 4585, "New Beijing / Gauss-Kruger CM 111E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 111E\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",111],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"4585\"]]"); p = add_epsg_def_ex (filter, first, last, 4586, "epsg", 4586, "New Beijing / Gauss-Kruger CM 117E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 117E\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",117],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"4586\"]]"); p = add_epsg_def_ex (filter, first, last, 4587, "epsg", 4587, "New Beijing / Gauss-Kruger CM 123E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 123E\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",123],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"4587\"]]"); p = add_epsg_def_ex (filter, first, last, 4588, "epsg", 4588, "New Beijing / Gauss-Kruger CM 129E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 129E\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",129],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"4588\"]]"); p = add_epsg_def_ex (filter, first, last, 4589, "epsg", 4589, "New Beijing / Gauss-Kruger CM 135E", 0, 1, "Krassowsky 1940", "Greenwich", "New_Beijing", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"New Beijing / Gauss-Kruger CM 135E\",GEOGCS[\"N"); add_srs_wkt (p, 1, "ew Beijing\",DATUM[\"New_Beijing\",SPHEROID[\"Krassowsky"); add_srs_wkt (p, 2, " 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"1045\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4555\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",0],PARAMETER[\"central_meridian\",135],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 10, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 11, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 12, ",EAST],AUTHORITY[\"EPSG\",\"4589\"]]"); p = add_epsg_def_ex (filter, first, last, 4600, "epsg", 4600, "Anguilla 1957", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Anguilla_1957", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Anguilla 1957\",DATUM[\"Anguilla_1957\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7012\"]],AUTHORITY[\"EPSG\",\"6600\"]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 4, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 5, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4600\"]]"); p = add_epsg_def_ex (filter, first, last, 4601, "epsg", 4601, "Antigua 1943", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Antigua_1943", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-255,-15,71,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Antigua 1943\",DATUM[\"Antigua_1943\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7012\"]],TOWGS84[-255,-15,71,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6601\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4601\"]]"); p = add_epsg_def_ex (filter, first, last, 4602, "epsg", 4602, "Dominica 1945", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Dominica_1945", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=725,685,536,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Dominica 1945\",DATUM[\"Dominica_1945\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7012\"]],TOWGS84[725,685,536,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6602\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4602\"]]"); p = add_epsg_def_ex (filter, first, last, 4603, "epsg", 4603, "Grenada 1953", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Grenada_1953", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=72,213.7,93,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Grenada 1953\",DATUM[\"Grenada_1953\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7012\"]],TOWGS84[72,213.7,93,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6603\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4603\"]]"); p = add_epsg_def_ex (filter, first, last, 4604, "epsg", 4604, "Montserrat 1958", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Montserrat_1958", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=174,359,365,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Montserrat 1958\",DATUM[\"Montserrat_1958\",SPH"); add_srs_wkt (p, 1, "EROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7012\"]],TOWGS84[174,359,365,0,0,0,0],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6604\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 6, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4604\"]]"); p = add_epsg_def_ex (filter, first, last, 4605, "epsg", 4605, "St. Kitts 1955", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "St_Kitts_1955", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=9,183,236,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"St. Kitts 1955\",DATUM[\"St_Kitts_1955\",SPHERO"); add_srs_wkt (p, 1, "ID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7012\"]],TOWGS84[9,183,236,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6605\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4605\"]]"); p = add_epsg_def_ex (filter, first, last, 4606, "epsg", 4606, "St. Lucia 1955", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "St_Lucia_1955", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-149,128,296,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"St. Lucia 1955\",DATUM[\"St_Lucia_1955\",SPHERO"); add_srs_wkt (p, 1, "ID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7012\"]],TOWGS84[-149,128,296,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"6606\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4606\"]]"); p = add_epsg_def_ex (filter, first, last, 4607, "epsg", 4607, "St. Vincent 1945", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "St_Vincent_1945", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=195.671,332.517,274"); add_proj4text (p, 1, ".607,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"St. Vincent 1945\",DATUM[\"St_Vincent_1945\",SP"); add_srs_wkt (p, 1, "HEROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7012\"]],TOWGS84[195.671,332.517,274.607,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6607\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4607\"]]"); p = add_epsg_def_ex (filter, first, last, 4608, "epsg", 4608, "NAD27(76)", 1, 1, "Clarke 1866", "Greenwich", "North_American_Datum_1927_1976", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD27(76)\",DATUM[\"North_American_Datum_1927_1"); add_srs_wkt (p, 1, "976\",SPHEROID[\"Clarke 1866\",6378206.4,294.97869821389"); add_srs_wkt (p, 2, "82,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 3, "08\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4608\"]]"); p = add_epsg_def_ex (filter, first, last, 4609, "epsg", 4609, "NAD27(CGQ77)", 1, 1, "Clarke 1866", "Greenwich", "North_American_Datum_1927_CGQ77", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD27(CGQ77)\",DATUM[\"North_American_Datum_192"); add_srs_wkt (p, 1, "7_CGQ77\",SPHEROID[\"Clarke 1866\",6378206.4,294.9786982"); add_srs_wkt (p, 2, "138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"6609\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 6, "de\",EAST],AUTHORITY[\"EPSG\",\"4609\"]]"); p = add_epsg_def_ex (filter, first, last, 4610, "epsg", 4610, "Xian 1980", 1, 1, "IAG 1975", "Greenwich", "Xian_1980", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378140 +b=6356755.288157528 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Xian 1980\",DATUM[\"Xian_1980\",SPHEROID[\"IAG "); add_srs_wkt (p, 1, "1975\",6378140,298.257,AUTHORITY[\"EPSG\",\"7049\"]],AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"6610\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 4, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 5, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4610\"]]"); p = add_epsg_def_ex (filter, first, last, 4611, "epsg", 4611, "Hong Kong 1980", 1, 1, "International 1924", "Greenwich", "Hong_Kong_1980", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-162.619,-276.959,-16"); add_proj4text (p, 1, "1.764,0.067753,-2.243649,-1.158827,-1.094246 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Hong Kong 1980\",DATUM[\"Hong_Kong_1980\",SPHER"); add_srs_wkt (p, 1, "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7022\"]],TOWGS84[-162.619,-276.959,-161.764,0.067753,"); add_srs_wkt (p, 3, "-2.243649,-1.158827,-1.094246],AUTHORITY[\"EPSG\",\"6611"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4611\"]]"); p = add_epsg_def_ex (filter, first, last, 4612, "epsg", 4612, "JGD2000", 1, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\""); add_srs_wkt (p, 1, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4612\"]]"); p = add_epsg_def_ex (filter, first, last, 4613, "epsg", 4613, "Segara", 1, 1, "Bessel 1841", "Greenwich", "Gunung_Segara", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-403,684,41,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Segara\",DATUM[\"Gunung_Segara\",SPHEROID[\"Bes"); add_srs_wkt (p, 1, "sel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7004\"]],TOWGS84[-403,684,41,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6613\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4613\"]]"); p = add_epsg_def_ex (filter, first, last, 4614, "epsg", 4614, "QND95", 1, 1, "International 1924", "Greenwich", "Qatar_National_Datum_1995", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-119.4248,-303.65872,"); add_proj4text (p, 1, "-11.00061,1.164298,0.174458,1.096259,3.657065 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"QND95\",DATUM[\"Qatar_National_Datum_1995\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[-119.4248,-303.65872,-11.00061,1."); add_srs_wkt (p, 3, "164298,0.174458,1.096259,3.657065],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6614\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4614\"]]"); p = add_epsg_def_ex (filter, first, last, 4615, "epsg", 4615, "Porto Santo", 1, 1, "International 1924", "Greenwich", "Porto_Santo_1936", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-499,-249,314,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Porto Santo\",DATUM[\"Porto_Santo_1936\",SPHERO"); add_srs_wkt (p, 1, "ID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7022\"]],TOWGS84[-499,-249,314,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6615\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 6, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4615\"]]"); p = add_epsg_def_ex (filter, first, last, 4616, "epsg", 4616, "Selvagem Grande", 1, 1, "International 1924", "Greenwich", "Selvagem_Grande", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-289,-124,60,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Selvagem Grande\",DATUM[\"Selvagem_Grande\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[-289,-124,60,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6616\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4616\"]]"); p = add_epsg_def_ex (filter, first, last, 4617, "epsg", 4617, "NAD83(CSRS)", 1, 1, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD83(CSRS)\",DATUM[\"NAD83_Canadian_Spatial_Re"); add_srs_wkt (p, 1, "ference_System\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 2, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"461"); add_srs_wkt (p, 7, "7\"]]"); p = add_epsg_def_ex (filter, first, last, 4618, "epsg", 4618, "SAD69", 1, 1, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=aust_SA +towgs84=-66.87,4.37,-38.52"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"SAD69\",DATUM[\"South_American_Datum_1969\",SPH"); add_srs_wkt (p, 1, "EROID[\"GRS 1967 Modified\",6378160,298.25,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7050\"]],TOWGS84[-66.87,4.37,-38.52,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6618\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4618\"]]"); p = add_epsg_def_ex (filter, first, last, 4619, "epsg", 4619, "SWEREF99", 1, 1, "GRS 1980", "Greenwich", "SWEREF99", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"SWEREF99\",DATUM[\"SWEREF99\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 1, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 2, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6619\"]],PR"); add_srs_wkt (p, 3, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 4, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 5, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4619\"]]"); p = add_epsg_def_ex (filter, first, last, 4620, "epsg", 4620, "Point 58", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Point_58", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-106,-129,165,0,0,0"); add_proj4text (p, 1, ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Point 58\",DATUM[\"Point_58\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, " 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "012\"]],TOWGS84[-106,-129,165,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6620\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4620\"]]"); p = add_epsg_def_ex (filter, first, last, 4621, "epsg", 4621, "Fort Marigot", 1, 1, "International 1924", "Greenwich", "Fort_Marigot", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=137,248,-430,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Fort Marigot\",DATUM[\"Fort_Marigot\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[137,248,-430,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6621\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4621\"]]"); p = add_epsg_def_ex (filter, first, last, 4622, "epsg", 4622, "Guadeloupe 1948", 1, 1, "International 1924", "Greenwich", "Guadeloupe_1948", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-467,-16,-300,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Guadeloupe 1948\",DATUM[\"Guadeloupe_1948\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[-467,-16,-300,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6622\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4622\"]]"); p = add_epsg_def_ex (filter, first, last, 4623, "epsg", 4623, "CSG67", 1, 1, "International 1924", "Greenwich", "Centre_Spatial_Guyanais_1967", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-186,230,110,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"CSG67\",DATUM[\"Centre_Spatial_Guyanais_1967\","); add_srs_wkt (p, 1, "SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[-186,230,110,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"6623\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4623\"]]"); p = add_epsg_def_ex (filter, first, last, 4624, "epsg", 4624, "RGFG95", 1, 1, "GRS 1980", "Greenwich", "Reseau_Geodesique_Francais_Guyane_1995", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RGFG95\",DATUM[\"Reseau_Geodesique_Francais_Guy"); add_srs_wkt (p, 1, "ane_1995\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6624\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4624\"]]"); p = add_epsg_def_ex (filter, first, last, 4625, "epsg", 4625, "Martinique 1938", 1, 1, "International 1924", "Greenwich", "Martinique_1938", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=186,482,151,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Martinique 1938\",DATUM[\"Martinique_1938\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[186,482,151,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6625\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4625\"]]"); p = add_epsg_def_ex (filter, first, last, 4626, "epsg", 4626, "Reunion 1947", 1, 1, "International 1924", "Greenwich", "Reunion_1947", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=94,-948,-1262,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Reunion 1947\",DATUM[\"Reunion_1947\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[94,-948,-1262,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6626\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"4626\"]]"); p = add_epsg_def_ex (filter, first, last, 4627, "epsg", 4627, "RGR92", 1, 1, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_Reunion_1992", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RGR92\",DATUM[\"Reseau_Geodesique_de_la_Reunion"); add_srs_wkt (p, 1, "_1992\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6627\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4627\"]]"); p = add_epsg_def_ex (filter, first, last, 4628, "epsg", 4628, "Tahiti 52", 1, 1, "International 1924", "Greenwich", "Tahiti_52", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=162,117,154,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tahiti 52\",DATUM[\"Tahiti_52\",SPHEROID[\"Inte"); add_srs_wkt (p, 1, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 2, "]],TOWGS84[162,117,154,0,0,0,0],AUTHORITY[\"EPSG\",\"662"); add_srs_wkt (p, 3, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4628\"]]"); p = add_epsg_def_ex (filter, first, last, 4629, "epsg", 4629, "Tahaa 54", 1, 1, "International 1924", "Greenwich", "Tahaa_54", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=72.438,345.918,79.486"); add_proj4text (p, 1, ",1.6045,0.8823,0.5565,1.3746 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tahaa 54\",DATUM[\"Tahaa_54\",SPHEROID[\"Intern"); add_srs_wkt (p, 1, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 2, ",TOWGS84[72.438,345.918,79.486,1.6045,0.8823,0.5565,1.37"); add_srs_wkt (p, 3, "46],AUTHORITY[\"EPSG\",\"6629\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 7, "29\"]]"); p = add_epsg_def_ex (filter, first, last, 4630, "epsg", 4630, "IGN72 Nuku Hiva", 1, 1, "International 1924", "Greenwich", "IGN72_Nuku_Hiva", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=84,274,65,0,0,0,0 +no"); add_proj4text (p, 1, "_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGN72 Nuku Hiva\",DATUM[\"IGN72_Nuku_Hiva\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[84,274,65,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6630\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4630\"]]"); p = add_epsg_def_ex (filter, first, last, 4631, "epsg", 4631, "K0 1949", 1, 1, "International 1924", "Greenwich", "K0_1949", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=145,-187,103,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"K0 1949\",DATUM[\"K0_1949\",SPHEROID[\"Internat"); add_srs_wkt (p, 1, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 2, "OWGS84[145,-187,103,0,0,0,0],AUTHORITY[\"EPSG\",\"6631\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4631\"]]"); p = add_epsg_def_ex (filter, first, last, 4632, "epsg", 4632, "Combani 1950", 1, 1, "International 1924", "Greenwich", "Combani_1950", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-382,-59,-262,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Combani 1950\",DATUM[\"Combani_1950\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[-382,-59,-262,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6632\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"4632\"]]"); p = add_epsg_def_ex (filter, first, last, 4633, "epsg", 4633, "IGN56 Lifou", 1, 1, "International 1924", "Greenwich", "IGN56_Lifou", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=335.47,222.58,-230.94"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGN56 Lifou\",DATUM[\"IGN56_Lifou\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[335.47,222.58,-230.94,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6633\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4633\"]]"); p = add_epsg_def_ex (filter, first, last, 4634, "epsg", 4634, "IGN72 Grand Terre", 1, 1, "International 1924", "Greenwich", "IGN72_Grande_Terre", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-13,-348,292,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGN72 Grand Terre\",DATUM[\"IGN72_Grande_Terre\""); add_srs_wkt (p, 1, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[-13,-348,292,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"6634\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4634\"]]"); p = add_epsg_def_ex (filter, first, last, 4635, "epsg", 4635, "ST87 Ouvea", 1, 1, "International 1924", "Greenwich", "ST87_Ouvea", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-122.383,-188.696,103"); add_proj4text (p, 1, ".344,3.5107,-4.9668,-5.7047,4.4798 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ST87 Ouvea\",DATUM[\"ST87_Ouvea\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],TOWGS84[-122.383,-188.696,103.344,3.5107,-4.9668,-5"); add_srs_wkt (p, 3, ".7047,4.4798],AUTHORITY[\"EPSG\",\"6635\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4635\"]]"); p = add_epsg_def_ex (filter, first, last, 4636, "epsg", 4636, "Petrels 1972", 1, 1, "International 1924", "Greenwich", "Petrels_1972", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=365,194,166,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Petrels 1972\",DATUM[\"Petrels_1972\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[365,194,166,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6636\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4636\"]]"); p = add_epsg_def_ex (filter, first, last, 4637, "epsg", 4637, "Perroud 1950", 1, 1, "International 1924", "Greenwich", "Pointe_Geologie_Perroud_1950", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=325,154,172,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Perroud 1950\",DATUM[\"Pointe_Geologie_Perroud_"); add_srs_wkt (p, 1, "1950\",SPHEROID[\"International 1924\",6378388,297,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7022\"]],TOWGS84[325,154,172,0,0,0,0],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6637\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4637\"]"); add_srs_wkt (p, 7, "]"); p = add_epsg_def_ex (filter, first, last, 4638, "epsg", 4638, "Saint Pierre et Miquelon 1950", 1, 1, "Clarke 1866", "Greenwich", "Saint_Pierre_et_Miquelon_1950", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=30,430,368,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Saint Pierre et Miquelon 1950\",DATUM[\"Saint_P"); add_srs_wkt (p, 1, "ierre_et_Miquelon_1950\",SPHEROID[\"Clarke 1866\",637820"); add_srs_wkt (p, 2, "6.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWG"); add_srs_wkt (p, 3, "S84[30,430,368,0,0,0,0],AUTHORITY[\"EPSG\",\"6638\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4638\"]]"); p = add_epsg_def_ex (filter, first, last, 4639, "epsg", 4639, "MOP78", 1, 1, "International 1924", "Greenwich", "MOP78", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=253,-132,-127,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"MOP78\",DATUM[\"MOP78\",SPHEROID[\"Internationa"); add_srs_wkt (p, 1, "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 2, "84[253,-132,-127,0,0,0,0],AUTHORITY[\"EPSG\",\"6639\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4639\"]]"); p = add_epsg_def_ex (filter, first, last, 4640, "epsg", 4640, "RRAF 1991", 1, 1, "WGS 84", "Greenwich", "Reseau_de_Reference_des_Antilles_Francaises_1991", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RRAF 1991\",DATUM[\"Reseau_de_Reference_des_Ant"); add_srs_wkt (p, 1, "illes_Francaises_1991\",SPHEROID[\"WGS 84\",6378137,298."); add_srs_wkt (p, 2, "257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 3, "0,0,0],AUTHORITY[\"EPSG\",\"6640\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4640\"]]"); p = add_epsg_def_ex (filter, first, last, 4641, "epsg", 4641, "IGN53 Mare", 1, 1, "International 1924", "Greenwich", "IGN53_Mare", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=287.58,177.78,-135.41"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"IGN53 Mare\",DATUM[\"IGN53_Mare\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],TOWGS84[287.58,177.78,-135.41,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6641\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4641\"]]"); p = add_epsg_def_ex (filter, first, last, 4642, "epsg", 4642, "ST84 Ile des Pins", 1, 1, "International 1924", "Greenwich", "ST84_Ile_des_Pins", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-13,-348,292,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ST84 Ile des Pins\",DATUM[\"ST84_Ile_des_Pins\""); add_srs_wkt (p, 1, ",SPHEROID[\"International 1924\",6378388,297,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7022\"]],TOWGS84[-13,-348,292,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"6642\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4642\"]]"); p = add_epsg_def_ex (filter, first, last, 4643, "epsg", 4643, "ST71 Belep", 1, 1, "International 1924", "Greenwich", "ST71_Belep", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-480.26,-438.32,-643."); add_proj4text (p, 1, "429,16.3119,20.1721,-4.0349,-111.7002 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ST71 Belep\",DATUM[\"ST71_Belep\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],TOWGS84[-480.26,-438.32,-643.429,16.3119,20.1721,-4"); add_srs_wkt (p, 3, ".0349,-111.7002],AUTHORITY[\"EPSG\",\"6643\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4643\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_20.c��������������������������������������������������0000664�0001750�0001750�00000313677�12544707704�017052� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_20 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 4206, "epsg", 4206, "Agadez", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Agadez", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Agadez\",DATUM[\"Agadez\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 1, "0 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7011\"]],AUTHORITY[\"EPSG\",\"6206\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 4, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 5, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4206\"]]"); p = add_epsg_def_ex (filter, first, last, 4207, "epsg", 4207, "Lisbon", 1, 1, "International 1924", "Greenwich", "Lisbon_1937", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-304.046,-60.576,103."); add_proj4text (p, 1, "64,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Lisbon\",DATUM[\"Lisbon_1937\",SPHEROID[\"Inter"); add_srs_wkt (p, 1, "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]"); add_srs_wkt (p, 2, "],TOWGS84[-304.046,-60.576,103.64,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6207\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 6, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4207\"]]"); p = add_epsg_def_ex (filter, first, last, 4208, "epsg", 4208, "Aratu", 1, 1, "International 1924", "Greenwich", "Aratu", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-151.99,287.04,-147.4"); add_proj4text (p, 1, "5,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Aratu\",DATUM[\"Aratu\",SPHEROID[\"Internationa"); add_srs_wkt (p, 1, "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 2, "84[-151.99,287.04,-147.45,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6208\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 6, "\",EAST],AUTHORITY[\"EPSG\",\"4208\"]]"); p = add_epsg_def_ex (filter, first, last, 4209, "epsg", 4209, "Arc 1950", 1, 1, "Clarke 1880 (Arc)", "Greenwich", "Arc_1950", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.145 +b=6356514.966398753 +towgs"); add_proj4text (p, 1, "84=-143,-90,-294,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Arc 1950\",DATUM[\"Arc_1950\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, " 1880 (Arc)\",6378249.145,293.4663077,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7013\"]],TOWGS84[-143,-90,-294,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6209\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 6, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4209\"]]"); p = add_epsg_def_ex (filter, first, last, 4210, "epsg", 4210, "Arc 1960", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Arc_1960", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-160,-6,-302,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Arc 1960\",DATUM[\"Arc_1960\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, " 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "012\"]],TOWGS84[-160,-6,-302,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6210\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4210\"]]"); p = add_epsg_def_ex (filter, first, last, 4211, "epsg", 4211, "Batavia", 1, 1, "Bessel 1841", "Greenwich", "Batavia", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-377,681,-50,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Batavia\",DATUM[\"Batavia\",SPHEROID[\"Bessel 1"); add_srs_wkt (p, 1, "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); add_srs_wkt (p, 2, "]],TOWGS84[-377,681,-50,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 3, "11\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4211\"]]"); p = add_epsg_def_ex (filter, first, last, 4212, "epsg", 4212, "Barbados 1938", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Barbados_1938", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=31.95,300.99,419.19"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Barbados 1938\",DATUM[\"Barbados_1938\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7012\"]],TOWGS84[31.95,300.99,419.19,0,0,0,0],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6212\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4212\""); add_srs_wkt (p, 7, "]]"); p = add_epsg_def_ex (filter, first, last, 4213, "epsg", 4213, "Beduaram", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Beduaram", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-106,-87,"); add_proj4text (p, 1, "188,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Beduaram\",DATUM[\"Beduaram\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, " 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7011\"]],TOWGS84[-106,-87,188,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6213\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4213\"]]"); p = add_epsg_def_ex (filter, first, last, 4214, "epsg", 4214, "Beijing 1954", 1, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=15.8,-154.4,-82.3,0,"); add_proj4text (p, 1, "0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 1, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 6, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]]"); p = add_epsg_def_ex (filter, first, last, 4215, "epsg", 4215, "Belge 1950", 1, 1, "International 1924", "Greenwich", "Reseau_National_Belge_1950", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Belge 1950\",DATUM[\"Reseau_National_Belge_1950"); add_srs_wkt (p, 1, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 2, "[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\",\"6215\"]],PRIME"); add_srs_wkt (p, 3, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 4, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 5, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 6, "RITY[\"EPSG\",\"4215\"]]"); p = add_epsg_def_ex (filter, first, last, 4216, "epsg", 4216, "Bermuda 1957", 1, 1, "Clarke 1866", "Greenwich", "Bermuda_1957", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=-73,213,296,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Bermuda 1957\",DATUM[\"Bermuda_1957\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7008\"]],TOWGS84[-73,213,296,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6216\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4216\"]]"); p = add_epsg_def_ex (filter, first, last, 4217, "epsg", 4217, "NAD83 / BLM 59N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 59N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",171],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",1640416.67],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"4217\"]]"); p = add_epsg_def_ex (filter, first, last, 4218, "epsg", 4218, "Bogota 1975", 1, 1, "International 1924", "Greenwich", "Bogota_1975", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=307,304,-318,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Bogota 1975\",DATUM[\"Bogota_1975\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[307,304,-318,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"6218\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 6, "de\",EAST],AUTHORITY[\"EPSG\",\"4218\"]]"); p = add_epsg_def_ex (filter, first, last, 4219, "epsg", 4219, "Bukit Rimpah", 1, 1, "Bessel 1841", "Greenwich", "Bukit_Rimpah", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-384,664,-48,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Bukit Rimpah\",DATUM[\"Bukit_Rimpah\",SPHEROID["); add_srs_wkt (p, 1, "\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG"); add_srs_wkt (p, 2, "\",\"7004\"]],TOWGS84[-384,664,-48,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6219\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4219\"]]"); p = add_epsg_def_ex (filter, first, last, 4220, "epsg", 4220, "Camacupa", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Camacupa", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-50.9,-347.6,-231,0"); add_proj4text (p, 1, ",0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Camacupa\",DATUM[\"Camacupa\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, " 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "012\"]],TOWGS84[-50.9,-347.6,-231,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6220\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 6, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4220\"]]"); p = add_epsg_def_ex (filter, first, last, 4221, "epsg", 4221, "Campo Inchauspe", 1, 1, "International 1924", "Greenwich", "Campo_Inchauspe", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-148,136,90,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Campo Inchauspe\",DATUM[\"Campo_Inchauspe\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[-148,136,90,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6221\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4221\"]]"); p = add_epsg_def_ex (filter, first, last, 4222, "epsg", 4222, "Cape", 1, 1, "Clarke 1880 (Arc)", "Greenwich", "Cape", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.145 +b=6356514.966398753 +towgs"); add_proj4text (p, 1, "84=-136,-108,-292,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Cape\",DATUM[\"Cape\",SPHEROID[\"Clarke 1880 (A"); add_srs_wkt (p, 1, "rc)\",6378249.145,293.4663077,AUTHORITY[\"EPSG\",\"7013\""); add_srs_wkt (p, 2, "]],TOWGS84[-136,-108,-292,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "6222\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 4, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 6, "\",EAST],AUTHORITY[\"EPSG\",\"4222\"]]"); p = add_epsg_def_ex (filter, first, last, 4223, "epsg", 4223, "Carthage", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Carthage", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-263,6,43"); add_proj4text (p, 1, "1,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Carthage\",DATUM[\"Carthage\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, " 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7011\"]],TOWGS84[-263,6,431,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6223\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4223\"]]"); p = add_epsg_def_ex (filter, first, last, 4224, "epsg", 4224, "Chua", 1, 1, "International 1924", "Greenwich", "Chua", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-143.87,243.37,-33.52"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Chua\",DATUM[\"Chua\",SPHEROID[\"International "); add_srs_wkt (p, 1, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 2, "[-143.87,243.37,-33.52,0,0,0,0],AUTHORITY[\"EPSG\",\"622"); add_srs_wkt (p, 3, "4\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4224\"]]"); p = add_epsg_def_ex (filter, first, last, 4225, "epsg", 4225, "Corrego Alegre 1970-72", 1, 1, "International 1924", "Greenwich", "Corrego_Alegre_1970_72", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-205.57,168.77,-4.12,"); add_proj4text (p, 1, "0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Corrego Alegre 1970-72\",DATUM[\"Corrego_Alegre"); add_srs_wkt (p, 1, "_1970_72\",SPHEROID[\"International 1924\",6378388,297,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-205.57,168.77,-4.1"); add_srs_wkt (p, 3, "2,0,0,0,0],AUTHORITY[\"EPSG\",\"6225\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4225\"]]"); p = add_epsg_def_ex (filter, first, last, 4226, "epsg", 4226, "Cote d'Ivoire", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Cote_d_Ivoire", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Cote d'Ivoire\",DATUM[\"Cote_d_Ivoire\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7011\"]],AUTHORITY[\"EPSG\",\"6226\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"910"); add_srs_wkt (p, 5, "8\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4226\"]]"); p = add_epsg_def_ex (filter, first, last, 4227, "epsg", 4227, "Deir ez Zor", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Deir_ez_Zor", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-190.421,"); add_proj4text (p, 1, "8.532,238.69,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Deir ez Zor\",DATUM[\"Deir_ez_Zor\",SPHEROID[\""); add_srs_wkt (p, 1, "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7011\"]],TOWGS84[-190.421,8.532,238.69,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6227\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4227\"]]"); p = add_epsg_def_ex (filter, first, last, 4228, "epsg", 4228, "Douala", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Douala", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Douala\",DATUM[\"Douala\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 1, "0 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7011\"]],AUTHORITY[\"EPSG\",\"6228\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 4, ".0174532925199433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"L"); add_srs_wkt (p, 5, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4228\"]]"); p = add_epsg_def_ex (filter, first, last, 4229, "epsg", 4229, "Egypt 1907", 1, 1, "Helmert 1906", "Greenwich", "Egypt_1907", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=helmert +towgs84=-130,110,-13,0,0,0"); add_proj4text (p, 1, ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Egypt 1907\",DATUM[\"Egypt_1907\",SPHEROID[\"He"); add_srs_wkt (p, 1, "lmert 1906\",6378200,298.3,AUTHORITY[\"EPSG\",\"7020\"]]"); add_srs_wkt (p, 2, ",TOWGS84[-130,110,-13,0,0,0,0],AUTHORITY[\"EPSG\",\"6229"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 4, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 6, "AST],AUTHORITY[\"EPSG\",\"4229\"]]"); p = add_epsg_def_ex (filter, first, last, 4230, "epsg", 4230, "ED50", 1, 1, "International 1924", "Greenwich", "European_Datum_1950", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"6230\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 6, "de\",EAST],AUTHORITY[\"EPSG\",\"4230\"]]"); p = add_epsg_def_ex (filter, first, last, 4231, "epsg", 4231, "ED87", 1, 1, "International 1924", "Greenwich", "European_Datum_1987", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-83.11,-97.38,-117.22"); add_proj4text (p, 1, ",0.00569290865241986,-0.0446975835137458,0.0442850539012"); add_proj4text (p, 2, "516,0.1218 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ED87\",DATUM[\"European_Datum_1987\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[-83.11,-97.38,-117.22,0.00569290865241986"); add_srs_wkt (p, 3, ",-0.0446975835137458,0.0442850539012516,0.1218],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6231\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4231\"]]"); p = add_epsg_def_ex (filter, first, last, 4232, "epsg", 4232, "Fahud", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Fahud", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-346,-1,224,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Fahud\",DATUM[\"Fahud\",SPHEROID[\"Clarke 1880 "); add_srs_wkt (p, 1, "(RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]"); add_srs_wkt (p, 2, "],TOWGS84[-346,-1,224,0,0,0,0],AUTHORITY[\"EPSG\",\"6232"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 4, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 6, "AST],AUTHORITY[\"EPSG\",\"4232\"]]"); p = add_epsg_def_ex (filter, first, last, 4233, "epsg", 4233, "Gandajika 1970", 1, 1, "International 1924", "Greenwich", "Gandajika_1970", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-133,-321,50,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Gandajika 1970\",DATUM[\"Gandajika_1970\",SPHER"); add_srs_wkt (p, 1, "OID[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7022\"]],TOWGS84[-133,-321,50,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6233\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4233\"]]"); p = add_epsg_def_ex (filter, first, last, 4234, "epsg", 4234, "Garoua", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Garoua", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Garoua\",DATUM[\"Garoua\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 1, "0 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7011\"]],AUTHORITY[\"EPSG\",\"6234\"]],PRIMEM[\"Green"); add_srs_wkt (p, 3, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 4, ".0174532925199433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"L"); add_srs_wkt (p, 5, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 6, "SG\",\"4234\"]]"); p = add_epsg_def_ex (filter, first, last, 4235, "epsg", 4235, "Guyane Francaise", 1, 1, "International 1924", "Greenwich", "Guyane_Francaise", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Guyane Francaise\",DATUM[\"Guyane_Francaise\",S"); add_srs_wkt (p, 1, "PHEROID[\"International 1924\",6378388,297,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7022\"]],AUTHORITY[\"EPSG\",\"6235\"]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 4, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9108\"]],AXI"); add_srs_wkt (p, 5, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"4235\"]]"); p = add_epsg_def_ex (filter, first, last, 4236, "epsg", 4236, "Hu Tzu Shan 1950", 1, 1, "International 1924", "Greenwich", "Hu_Tzu_Shan_1950", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-637,-549,-203,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Hu Tzu Shan 1950\",DATUM[\"Hu_Tzu_Shan_1950\",S"); add_srs_wkt (p, 1, "PHEROID[\"International 1924\",6378388,297,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7022\"]],TOWGS84[-637,-549,-203,0,0,0,0],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6236\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4236\"]]"); p = add_epsg_def_ex (filter, first, last, 4237, "epsg", 4237, "HD72", 1, 1, "GRS 1967", "Greenwich", "Hungarian_Datum_1972", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS67 +towgs84=52.17,-71.82,-14.9,0"); add_proj4text (p, 1, ",0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"HD72\",DATUM[\"Hungarian_Datum_1972\",SPHEROID["); add_srs_wkt (p, 1, "\"GRS 1967\",6378160,298.247167427,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7036\"]],TOWGS84[52.17,-71.82,-14.9,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6237\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4237\"]]"); p = add_epsg_def_ex (filter, first, last, 4238, "epsg", 4238, "ID74", 1, 1, "Indonesian National Spheroid", "Greenwich", "Indonesian_Datum_1974", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378160 +b=6356774.50408554 +towgs84=-2"); add_proj4text (p, 1, "4,-15,5,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"ID74\",DATUM[\"Indonesian_Datum_1974\",SPHEROID"); add_srs_wkt (p, 1, "[\"Indonesian National Spheroid\",6378160,298.247,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7021\"]],TOWGS84[-24,-15,5,0,0,0,0],AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"6238\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 6, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4238\"]]"); p = add_epsg_def_ex (filter, first, last, 4239, "epsg", 4239, "Indian 1954", 1, 1, "Everest 1830 (1937 Adjustment)", "Greenwich", "Indian_1954", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); add_proj4text (p, 1, "84=217,823,299,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Indian 1954\",DATUM[\"Indian_1954\",SPHEROID[\""); add_srs_wkt (p, 1, "Everest 1830 (1937 Adjustment)\",6377276.345,300.8017,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7015\"]],TOWGS84[217,823,299,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6239\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4239"); add_srs_wkt (p, 7, "\"]]"); p = add_epsg_def_ex (filter, first, last, 4240, "epsg", 4240, "Indian 1975", 1, 1, "Everest 1830 (1937 Adjustment)", "Greenwich", "Indian_1975", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); add_proj4text (p, 1, "84=210,814,289,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Indian 1975\",DATUM[\"Indian_1975\",SPHEROID[\""); add_srs_wkt (p, 1, "Everest 1830 (1937 Adjustment)\",6377276.345,300.8017,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7015\"]],TOWGS84[210,814,289,0,0,0,0]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6240\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4240"); add_srs_wkt (p, 7, "\"]]"); p = add_epsg_def_ex (filter, first, last, 4241, "epsg", 4241, "Jamaica 1875", 1, 1, "Clarke 1880", "Greenwich", "Jamaica_1875", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.144808011 +b=6356514.966204134 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Jamaica 1875\",DATUM[\"Jamaica_1875\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880\",6378249.144808011,293.4663076556365,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7034\"]],AUTHORITY[\"EPSG\",\"6241\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4241\"]]"); p = add_epsg_def_ex (filter, first, last, 4242, "epsg", 4242, "JAD69", 1, 1, "Clarke 1866", "Greenwich", "Jamaica_1969", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=70,207,389.5,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"JAD69\",DATUM[\"Jamaica_1969\",SPHEROID[\"Clark"); add_srs_wkt (p, 1, "e 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7008\"]],TOWGS84[70,207,389.5,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6242\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4242\"]]"); p = add_epsg_def_ex (filter, first, last, 4243, "epsg", 4243, "Kalianpur 1880", 1, 1, "Everest (1830 Definition)", "Greenwich", "Kalianpur_1880", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377299.36559538 +b=6356098.359005156 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kalianpur 1880\",DATUM[\"Kalianpur_1880\",SPHER"); add_srs_wkt (p, 1, "OID[\"Everest (1830 Definition)\",6377299.36559538,300.8"); add_srs_wkt (p, 2, "017255433549,AUTHORITY[\"EPSG\",\"7042\"]],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6243\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 6, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4243\"]]"); p = add_epsg_def_ex (filter, first, last, 4244, "epsg", 4244, "Kandawala", 1, 1, "Everest 1830 (1937 Adjustment)", "Greenwich", "Kandawala", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs"); add_proj4text (p, 1, "84=-97,787,86,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kandawala\",DATUM[\"Kandawala\",SPHEROID[\"Ever"); add_srs_wkt (p, 1, "est 1830 (1937 Adjustment)\",6377276.345,300.8017,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7015\"]],TOWGS84[-97,787,86,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6244\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4244\"]]"); p = add_epsg_def_ex (filter, first, last, 4245, "epsg", 4245, "Kertau 1968", 1, 1, "Everest 1830 Modified", "Greenwich", "Kertau_1968", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377304.063 +b=6356103.038993155 +towgs"); add_proj4text (p, 1, "84=-11,851,5,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Kertau 1968\",DATUM[\"Kertau_1968\",SPHEROID[\""); add_srs_wkt (p, 1, "Everest 1830 Modified\",6377304.063,300.8017,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7018\"]],TOWGS84[-11,851,5,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6245\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4245\"]]"); p = add_epsg_def_ex (filter, first, last, 4246, "epsg", 4246, "KOC", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Kuwait_Oil_Company", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-294.7,-200.1,525.5"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"KOC\",DATUM[\"Kuwait_Oil_Company\",SPHEROID[\"C"); add_srs_wkt (p, 1, "larke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 2, ",\"7012\"]],TOWGS84[-294.7,-200.1,525.5,0,0,0,0],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6246\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4246\"]]"); p = add_epsg_def_ex (filter, first, last, 4247, "epsg", 4247, "La Canoa", 1, 1, "International 1924", "Greenwich", "La_Canoa", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-273.5,110.6,-357.9,0"); add_proj4text (p, 1, ",0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"La Canoa\",DATUM[\"La_Canoa\",SPHEROID[\"Intern"); add_srs_wkt (p, 1, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 2, ",TOWGS84[-273.5,110.6,-357.9,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6247\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4247\"]]"); p = add_epsg_def_ex (filter, first, last, 4248, "epsg", 4248, "PSAD56", 1, 1, "International 1924", "Greenwich", "Provisional_South_American_Datum_1956", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-288,175,-376,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"PSAD56\",DATUM[\"Provisional_South_American_Dat"); add_srs_wkt (p, 1, "um_1956\",SPHEROID[\"International 1924\",6378388,297,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7022\"]],TOWGS84[-288,175,-376,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6248\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "48\"]]"); p = add_epsg_def_ex (filter, first, last, 4249, "epsg", 4249, "Lake", 1, 1, "International 1924", "Greenwich", "Lake", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Lake\",DATUM[\"Lake\",SPHEROID[\"International "); add_srs_wkt (p, 1, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"6249\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 5, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4249\"]]"); p = add_epsg_def_ex (filter, first, last, 4250, "epsg", 4250, "Leigon", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Leigon", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-130,29,364,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Leigon\",DATUM[\"Leigon\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 1, "0 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\""); add_srs_wkt (p, 2, "]],TOWGS84[-130,29,364,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 3, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4250\"]]"); p = add_epsg_def_ex (filter, first, last, 4251, "epsg", 4251, "Liberia 1964", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Liberia_1964", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-90,40,88,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Liberia 1964\",DATUM[\"Liberia_1964\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7012\"]],TOWGS84[-90,40,88,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6251\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 6, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4251\"]]"); p = add_epsg_def_ex (filter, first, last, 4252, "epsg", 4252, "Lome", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Lome", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Lome\",DATUM[\"Lome\",SPHEROID[\"Clarke 1880 (I"); add_srs_wkt (p, 1, "GN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "011\"]],AUTHORITY[\"EPSG\",\"6252\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 3, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 4, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 5, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4252\"]]"); p = add_epsg_def_ex (filter, first, last, 4253, "epsg", 4253, "Luzon 1911", 1, 1, "Clarke 1866", "Greenwich", "Luzon_1911", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk66 +towgs84=-133,-77,-51,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Luzon 1911\",DATUM[\"Luzon_1911\",SPHEROID[\"Cl"); add_srs_wkt (p, 1, "arke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG"); add_srs_wkt (p, 2, "\",\"7008\"]],TOWGS84[-133,-77,-51,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6253\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4253\"]]"); p = add_epsg_def_ex (filter, first, last, 4254, "epsg", 4254, "Hito XVIII 1963", 1, 1, "International 1924", "Greenwich", "Hito_XVIII_1963", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=16,196,93,0,0,0,0 +no"); add_proj4text (p, 1, "_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Hito XVIII 1963\",DATUM[\"Hito_XVIII_1963\",SPH"); add_srs_wkt (p, 1, "EROID[\"International 1924\",6378388,297,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7022\"]],TOWGS84[16,196,93,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6254\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4254\"]]"); p = add_epsg_def_ex (filter, first, last, 4255, "epsg", 4255, "Herat North", 1, 1, "International 1924", "Greenwich", "Herat_North", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-333,-222,114,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Herat North\",DATUM[\"Herat_North\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[-333,-222,114,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6255\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4255\"]]"); p = add_epsg_def_ex (filter, first, last, 4256, "epsg", 4256, "Mahe 1971", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Mahe_1971", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=41,-220,-134,0,0,0,"); add_proj4text (p, 1, "0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Mahe 1971\",DATUM[\"Mahe_1971\",SPHEROID[\"Clar"); add_srs_wkt (p, 1, "ke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7012\"]],TOWGS84[41,-220,-134,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6256\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4256\"]]"); p = add_epsg_def_ex (filter, first, last, 4257, "epsg", 4257, "Makassar", 1, 1, "Bessel 1841", "Greenwich", "Makassar", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-587.8,519.75,145.7"); add_proj4text (p, 1, "6,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Makassar\",DATUM[\"Makassar\",SPHEROID[\"Bessel"); add_srs_wkt (p, 1, " 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 2, "4\"]],TOWGS84[-587.8,519.75,145.76,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6257\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4257\"]]"); p = add_epsg_def_ex (filter, first, last, 4258, "epsg", 4258, "ETRS89", 1, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"ETRS89\",DATUM[\"European_Terrestrial_Reference"); add_srs_wkt (p, 1, "_System_1989\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 2, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\""); add_srs_wkt (p, 7, "]]"); p = add_epsg_def_ex (filter, first, last, 4259, "epsg", 4259, "Malongo 1987", 1, 1, "International 1924", "Greenwich", "Malongo_1987", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-254.1,-5.36,-100.29,"); add_proj4text (p, 1, "0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Malongo 1987\",DATUM[\"Malongo_1987\",SPHEROID["); add_srs_wkt (p, 1, "\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[-254.1,-5.36,-100.29,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6259\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4259\"]]"); p = add_epsg_def_ex (filter, first, last, 4260, "epsg", 4260, "Manoca", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Manoca", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-70.9,-151.8,-41.4,"); add_proj4text (p, 1, "0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Manoca\",DATUM[\"Manoca\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 1, "0 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\""); add_srs_wkt (p, 2, "]],TOWGS84[-70.9,-151.8,-41.4,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6260\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4260\"]]"); p = add_epsg_def_ex (filter, first, last, 4261, "epsg", 4261, "Merchich", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Merchich", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=31,146,47"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Merchich\",DATUM[\"Merchich\",SPHEROID[\"Clarke"); add_srs_wkt (p, 1, " 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7011\"]],TOWGS84[31,146,47,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6261\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 6, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4261\"]]"); p = add_epsg_def_ex (filter, first, last, 4262, "epsg", 4262, "Massawa", 1, 1, "Bessel 1841", "Greenwich", "Massawa", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=639,405,60,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Massawa\",DATUM[\"Massawa\",SPHEROID[\"Bessel 1"); add_srs_wkt (p, 1, "841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\""); add_srs_wkt (p, 2, "]],TOWGS84[639,405,60,0,0,0,0],AUTHORITY[\"EPSG\",\"6262"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 4, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 6, "AST],AUTHORITY[\"EPSG\",\"4262\"]]"); p = add_epsg_def_ex (filter, first, last, 4263, "epsg", 4263, "Minna", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Minna", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-92,-93,122,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Minna\",DATUM[\"Minna\",SPHEROID[\"Clarke 1880 "); add_srs_wkt (p, 1, "(RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]"); add_srs_wkt (p, 2, "],TOWGS84[-92,-93,122,0,0,0,0],AUTHORITY[\"EPSG\",\"6263"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 4, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 6, "AST],AUTHORITY[\"EPSG\",\"4263\"]]"); p = add_epsg_def_ex (filter, first, last, 4264, "epsg", 4264, "Mhast", 1, 1, "International 1924", "Greenwich", "Mhast", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-252.95,-4.11,-96.38,"); add_proj4text (p, 1, "0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Mhast\",DATUM[\"Mhast\",SPHEROID[\"Internationa"); add_srs_wkt (p, 1, "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 2, "84[-252.95,-4.11,-96.38,0,0,0,0],AUTHORITY[\"EPSG\",\"62"); add_srs_wkt (p, 3, "64\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4264\"]]"); p = add_epsg_def_ex (filter, first, last, 4265, "epsg", 4265, "Monte Mario", 1, 1, "International 1924", "Greenwich", "Monte_Mario", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-104.1,-49.1,-9.9,0.9"); add_proj4text (p, 1, "71,-2.917,0.714,-11.68 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Monte Mario\",DATUM[\"Monte_Mario\",SPHEROID[\""); add_srs_wkt (p, 1, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "22\"]],TOWGS84[-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11."); add_srs_wkt (p, 3, "68],AUTHORITY[\"EPSG\",\"6265\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "65\"]]"); p = add_epsg_def_ex (filter, first, last, 4266, "epsg", 4266, "M'poraloko", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "M_poraloko", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-74,-130,"); add_proj4text (p, 1, "42,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"M'poraloko\",DATUM[\"M_poraloko\",SPHEROID[\"Cl"); add_srs_wkt (p, 1, "arke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORITY["); add_srs_wkt (p, 2, "\"EPSG\",\"7011\"]],TOWGS84[-74,-130,42,0,0,0,0],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6266\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4266\"]]"); p = add_epsg_def_ex (filter, first, last, 4267, "epsg", 4267, "NAD27", 1, 1, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +datum=NAD27 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPH"); add_srs_wkt (p, 1, "EROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PR"); add_srs_wkt (p, 3, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 4, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 5, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4267\"]]"); p = add_epsg_def_ex (filter, first, last, 4268, "epsg", 4268, "NAD27 Michigan", 1, 1, "Clarke 1866 Michigan", "Greenwich", "NAD27_Michigan", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378450.047548896 +b=6356826.621488444 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD27 Michigan\",DATUM[\"NAD27_Michigan\",SPHER"); add_srs_wkt (p, 1, "OID[\"Clarke 1866 Michigan\",6378450.047548896,294.97869"); add_srs_wkt (p, 2, "71646772,AUTHORITY[\"EPSG\",\"7009\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6268\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4268\"]]"); p = add_epsg_def_ex (filter, first, last, 4269, "epsg", 4269, "NAD83", 1, 1, "GRS 1980", "Greenwich", "North_American_Datum_1983", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPH"); add_srs_wkt (p, 1, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4269\"]]"); p = add_epsg_def_ex (filter, first, last, 4270, "epsg", 4270, "Nahrwan 1967", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Nahrwan_1967", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-242.2,-144.9,370.3"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Nahrwan 1967\",DATUM[\"Nahrwan_1967\",SPHEROID["); add_srs_wkt (p, 1, "\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EP"); add_srs_wkt (p, 2, "SG\",\"7012\"]],TOWGS84[-242.2,-144.9,370.3,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6270\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4270\"]]"); p = add_epsg_def_ex (filter, first, last, 4271, "epsg", 4271, "Naparima 1972", 1, 1, "International 1924", "Greenwich", "Naparima_1972", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-10,375,165,0,0,0,0 +"); add_proj4text (p, 1, "no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Naparima 1972\",DATUM[\"Naparima_1972\",SPHEROI"); add_srs_wkt (p, 1, "D[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7022\"]],TOWGS84[-10,375,165,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6271\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"4271\"]]"); p = add_epsg_def_ex (filter, first, last, 4272, "epsg", 4272, "NZGD49", 1, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=59.47,-5.04,187.44,0."); add_proj4text (p, 1, "47,-0.1,1.024,-4.5993 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NZGD49\",DATUM[\"New_Zealand_Geodetic_Datum_194"); add_srs_wkt (p, 1, "9\",SPHEROID[\"International 1924\",6378388,297,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7022\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0"); add_srs_wkt (p, 3, ".1,1.024,-4.5993],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4272\"]]"); p = add_epsg_def_ex (filter, first, last, 4273, "epsg", 4273, "NGO 1948", 1, 1, "Bessel Modified", "Greenwich", "NGO_1948", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6377492.018 +b=6356173.508712696 +towgs"); add_proj4text (p, 1, "84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NGO 1948\",DATUM[\"NGO_1948\",SPHEROID[\"Bessel"); add_srs_wkt (p, 1, " Modified\",6377492.018,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7005\"]],TOWGS84[278.3,93,474.5,7.889,0.05,-6.61,6.21],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6273\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4273\""); add_srs_wkt (p, 7, "]]"); p = add_epsg_def_ex (filter, first, last, 4274, "epsg", 4274, "Datum 73", 1, 1, "International 1924", "Greenwich", "Datum_73", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-223.237,110.193,36.6"); add_proj4text (p, 1, "49,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Datum 73\",DATUM[\"Datum_73\",SPHEROID[\"Intern"); add_srs_wkt (p, 1, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 2, ",TOWGS84[-223.237,110.193,36.649,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6274\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4274\"]]"); p = add_epsg_def_ex (filter, first, last, 4275, "epsg", 4275, "NTF", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Nouvelle_Triangulation_Francaise", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,"); add_proj4text (p, 1, "320,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NTF\",DATUM[\"Nouvelle_Triangulation_Francaise\""); add_srs_wkt (p, 1, ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); add_srs_wkt (p, 2, "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6275\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4275\"]]"); p = add_epsg_def_ex (filter, first, last, 4276, "epsg", 4276, "NSWC 9Z-2", 1, 1, "NWL 9D", "Greenwich", "NSWC_9Z_2", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=WGS66 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NSWC 9Z-2\",DATUM[\"NSWC_9Z_2\",SPHEROID[\"NWL "); add_srs_wkt (p, 1, "9D\",6378145,298.25,AUTHORITY[\"EPSG\",\"7025\"]],AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"6276\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 5, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4276\"]]"); p = add_epsg_def_ex (filter, first, last, 4277, "epsg", 4277, "OSGB 1936", 1, 1, "Airy 1830", "Greenwich", "OSGB_1936", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=airy +towgs84=446.448,-125.157,542."); add_proj4text (p, 1, "06,0.15,0.247,0.842,-20.489 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"OSGB 1936\",DATUM[\"OSGB_1936\",SPHEROID[\"Airy"); add_srs_wkt (p, 1, " 1830\",6377563.396,299.3249646,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 2, "1\"]],TOWGS84[446.448,-125.157,542.06,0.15,0.247,0.842,-"); add_srs_wkt (p, 3, "20.489],AUTHORITY[\"EPSG\",\"6277\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4277\"]]"); p = add_epsg_def_ex (filter, first, last, 4278, "epsg", 4278, "OSGB70", 1, 1, "Airy 1830", "Greenwich", "OSGB_1970_SN", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=airy +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"OSGB70\",DATUM[\"OSGB_1970_SN\",SPHEROID[\"Airy"); add_srs_wkt (p, 1, " 1830\",6377563.396,299.3249646,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 2, "1\"]],AUTHORITY[\"EPSG\",\"6278\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 3, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 4, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 5, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4278\"]]"); p = add_epsg_def_ex (filter, first, last, 4279, "epsg", 4279, "OS(SN)80", 1, 1, "Airy 1830", "Greenwich", "OS_SN_1980", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=airy +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"OS(SN)80\",DATUM[\"OS_SN_1980\",SPHEROID[\"Airy"); add_srs_wkt (p, 1, " 1830\",6377563.396,299.3249646,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 2, "1\"]],AUTHORITY[\"EPSG\",\"6279\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 3, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 4, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 5, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4279\"]]"); p = add_epsg_def_ex (filter, first, last, 4280, "epsg", 4280, "Padang", 1, 1, "Bessel 1841", "Greenwich", "Padang_1884", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Padang\",DATUM[\"Padang_1884\",SPHEROID[\"Besse"); add_srs_wkt (p, 1, "l 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "04\"]],AUTHORITY[\"EPSG\",\"6280\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 3, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 4, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 5, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4280\"]]"); p = add_epsg_def_ex (filter, first, last, 4281, "epsg", 4281, "Palestine 1923", 1, 1, "Clarke 1880 (Benoit)", "Greenwich", "Palestine_1923", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378300.789 +b=6356566.435 +towgs84=-27"); add_proj4text (p, 1, "5.7224,94.7824,340.8944,-8.001,-4.42,-11.821,1 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Palestine 1923\",DATUM[\"Palestine_1923\",SPHER"); add_srs_wkt (p, 1, "OID[\"Clarke 1880 (Benoit)\",6378300.789,293.46631553898"); add_srs_wkt (p, 2, "11,AUTHORITY[\"EPSG\",\"7010\"]],TOWGS84[-275.7224,94.78"); add_srs_wkt (p, 3, "24,340.8944,-8.001,-4.42,-11.821,1],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6281\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4281\"]]"); p = add_epsg_def_ex (filter, first, last, 4282, "epsg", 4282, "Pointe Noire", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Congo_1960_Pointe_Noire", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-148,51,-"); add_proj4text (p, 1, "291,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Pointe Noire\",DATUM[\"Congo_1960_Pointe_Noire\""); add_srs_wkt (p, 1, ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); add_srs_wkt (p, 2, "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-148,51,-291,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6282\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4282\"]]"); p = add_epsg_def_ex (filter, first, last, 4283, "epsg", 4283, "GDA94", 1, 1, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"GDA94\",DATUM[\"Geocentric_Datum_of_Australia_1"); add_srs_wkt (p, 1, "994\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6283\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4283\"]]"); p = add_epsg_def_ex (filter, first, last, 4284, "epsg", 4284, "Pulkovo 1942", 1, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=krass +towgs84=23.92,-141.27,-80.9,"); add_proj4text (p, 1, "0,0.35,0.82,-0.12 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 1, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 7, "]]"); p = add_epsg_def_ex (filter, first, last, 4285, "epsg", 4285, "Qatar 1974", 1, 1, "International 1924", "Greenwich", "Qatar_1974", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-128.16,-282.42,21.93"); add_proj4text (p, 1, ",0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Qatar 1974\",DATUM[\"Qatar_1974\",SPHEROID[\"In"); add_srs_wkt (p, 1, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 2, "\"]],TOWGS84[-128.16,-282.42,21.93,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6285\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4285\"]]"); p = add_epsg_def_ex (filter, first, last, 4286, "epsg", 4286, "Qatar 1948", 1, 1, "Helmert 1906", "Greenwich", "Qatar_1948", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=helmert +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Qatar 1948\",DATUM[\"Qatar_1948\",SPHEROID[\"He"); add_srs_wkt (p, 1, "lmert 1906\",6378200,298.3,AUTHORITY[\"EPSG\",\"7020\"]]"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"6286\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 4, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 5, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4286"); add_srs_wkt (p, 6, "\"]]"); p = add_epsg_def_ex (filter, first, last, 4287, "epsg", 4287, "Qornoq", 1, 1, "International 1924", "Greenwich", "Qornoq", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=164,138,-189,0,0,0,0 "); add_proj4text (p, 1, "+no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Qornoq\",DATUM[\"Qornoq\",SPHEROID[\"Internatio"); add_srs_wkt (p, 1, "nal 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOW"); add_srs_wkt (p, 2, "GS84[164,138,-189,0,0,0,0],AUTHORITY[\"EPSG\",\"6287\"]]"); add_srs_wkt (p, 3, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 4, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 5, "08\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"4287\"]]"); p = add_epsg_def_ex (filter, first, last, 4288, "epsg", 4288, "Loma Quintana", 1, 1, "International 1924", "Greenwich", "Loma_Quintana", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Loma Quintana\",DATUM[\"Loma_Quintana\",SPHEROI"); add_srs_wkt (p, 1, "D[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 2, "\"7022\"]],AUTHORITY[\"EPSG\",\"6288\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 3, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 4, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 5, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"4288\"]]"); p = add_epsg_def_ex (filter, first, last, 4289, "epsg", 4289, "Amersfoort", 1, 1, "Bessel 1841", "Greenwich", "Amersfoort", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=565.4171,50.3319,46"); add_proj4text (p, 1, "5.5524,-0.398957388243134,0.343987817378283,-1.877401639"); add_proj4text (p, 2, "98045,4.0725 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Amersfoort\",DATUM[\"Amersfoort\",SPHEROID[\"Be"); add_srs_wkt (p, 1, "ssel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7004\"]],TOWGS84[565.4171,50.3319,465.5524,-0.3989573882"); add_srs_wkt (p, 3, "43134,0.343987817378283,-1.87740163998045,4.0725],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6289\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4289\"]]"); p = add_epsg_def_ex (filter, first, last, 4291, "epsg", 4291, "SAD69", 1, 1, "GRS 1967", "Greenwich", "South_American_Datum_1969", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS67 +towgs84=-57,1,-41,0,0,0,0 +n"); add_proj4text (p, 1, "o_defs"); add_srs_wkt (p, 0, "GEOGCS[\"SAD69\",DATUM[\"South_American_Datum_1969\",SPH"); add_srs_wkt (p, 1, "EROID[\"GRS 1967\",6378160,298.247167427,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7036\"]],TOWGS84[-57,1,-41,0,0,0,0],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6291\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4291\"]]"); p = add_epsg_def_ex (filter, first, last, 4292, "epsg", 4292, "Sapper Hill 1943", 1, 1, "International 1924", "Greenwich", "Sapper_Hill_1943", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-355,21,72,0,0,0,0 +n"); add_proj4text (p, 1, "o_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Sapper Hill 1943\",DATUM[\"Sapper_Hill_1943\",S"); add_srs_wkt (p, 1, "PHEROID[\"International 1924\",6378388,297,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7022\"]],TOWGS84[-355,21,72,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6292\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4292\"]]"); p = add_epsg_def_ex (filter, first, last, 4293, "epsg", 4293, "Schwarzeck", 1, 1, "Bessel Namibia (GLM)", "Greenwich", "Schwarzeck", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bess_nam +towgs84=616,97,-251,0,0,0"); add_proj4text (p, 1, ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Schwarzeck\",DATUM[\"Schwarzeck\",SPHEROID[\"Be"); add_srs_wkt (p, 1, "ssel Namibia (GLM)\",6377483.865280419,299.1528128,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7046\"]],TOWGS84[616,97,-251,0,0,0,0],AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"6293\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 5, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 6, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4293\"]"); add_srs_wkt (p, 7, "]"); p = add_epsg_def_ex (filter, first, last, 4294, "epsg", 4294, "Segora", 1, 1, "Bessel 1841", "Greenwich", "Segora", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-403,684,41,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Segora\",DATUM[\"Segora\",SPHEROID[\"Bessel 184"); add_srs_wkt (p, 1, "1\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]"); add_srs_wkt (p, 2, "],TOWGS84[-403,684,41,0,0,0,0],AUTHORITY[\"EPSG\",\"6294"); add_srs_wkt (p, 3, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 4, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 6, "AST],AUTHORITY[\"EPSG\",\"4294\"]]"); p = add_epsg_def_ex (filter, first, last, 4295, "epsg", 4295, "Serindung", 1, 1, "Bessel 1841", "Greenwich", "Serindung", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Serindung\",DATUM[\"Serindung\",SPHEROID[\"Bess"); add_srs_wkt (p, 1, "el 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "004\"]],AUTHORITY[\"EPSG\",\"6295\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 3, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 4, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 5, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4295\"]]"); p = add_epsg_def_ex (filter, first, last, 4296, "epsg", 4296, "Sudan", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Sudan", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Sudan\",DATUM[\"Sudan\",SPHEROID[\"Clarke 1880 "); add_srs_wkt (p, 1, "(IGN)\",6378249.2,293.4660212936269,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7011\"]],AUTHORITY[\"EPSG\",\"6296\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 3, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 4, "74532925199433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Lati"); add_srs_wkt (p, 5, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4296\"]]"); p = add_epsg_def_ex (filter, first, last, 4297, "epsg", 4297, "Tananarive", 1, 1, "International 1924", "Greenwich", "Tananarive_1925", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=intl +towgs84=-189,-242,-91,0,0,0,0"); add_proj4text (p, 1, " +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tananarive\",DATUM[\"Tananarive_1925\",SPHEROID"); add_srs_wkt (p, 1, "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 2, "7022\"]],TOWGS84[-189,-242,-91,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6297\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"4297\"]]"); p = add_epsg_def_ex (filter, first, last, 4298, "epsg", 4298, "Timbalai 1948", 1, 1, "Everest 1830 (1967 Definition)", "Greenwich", "Timbalai_1948", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=evrstSS +towgs84=-679,669,-48,0,0,0"); add_proj4text (p, 1, ",0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Timbalai 1948\",DATUM[\"Timbalai_1948\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Everest 1830 (1967 Definition)\",6377298.556,300.801"); add_srs_wkt (p, 2, "7,AUTHORITY[\"EPSG\",\"7016\"]],TOWGS84[-679,669,-48,0,0"); add_srs_wkt (p, 3, ",0,0],AUTHORITY[\"EPSG\",\"6298\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4298\"]]"); p = add_epsg_def_ex (filter, first, last, 4299, "epsg", 4299, "TM65", 1, 1, "Airy Modified 1849", "Greenwich", "TM65", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=mod_airy +towgs84=482.5,-130.6,564."); add_proj4text (p, 1, "6,-1.042,-0.214,-0.631,8.15 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"TM65\",DATUM[\"TM65\",SPHEROID[\"Airy Modified "); add_srs_wkt (p, 1, "1849\",6377340.189,299.3249646,AUTHORITY[\"EPSG\",\"7002"); add_srs_wkt (p, 2, "\"]],TOWGS84[482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.1"); add_srs_wkt (p, 3, "5],AUTHORITY[\"EPSG\",\"6299\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "99\"]]"); p = add_epsg_def_ex (filter, first, last, 4300, "epsg", 4300, "TM75", 1, 1, "Airy Modified 1849", "Greenwich", "Geodetic_Datum_of_1965", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=mod_airy +towgs84=482.5,-130.6,564."); add_proj4text (p, 1, "6,-1.042,-0.214,-0.631,8.15 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"TM75\",DATUM[\"Geodetic_Datum_of_1965\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Airy Modified 1849\",6377340.189,299.3249646,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7002\"]],TOWGS84[482.5,-130.6,564.6,-1.042"); add_srs_wkt (p, 3, ",-0.214,-0.631,8.15],AUTHORITY[\"EPSG\",\"6300\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"4300\"]]"); p = add_epsg_def_ex (filter, first, last, 4301, "epsg", 4301, "Tokyo", 1, 1, "Bessel 1841", "Greenwich", "Tokyo", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-146.414,507.337,68"); add_proj4text (p, 1, "0.507,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Tokyo\",DATUM[\"Tokyo\",SPHEROID[\"Bessel 1841\""); add_srs_wkt (p, 1, ",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],T"); add_srs_wkt (p, 2, "OWGS84[-146.414,507.337,680.507,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"6301\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4301\"]]"); p = add_epsg_def_ex (filter, first, last, 4302, "epsg", 4302, "Trinidad 1903", 1, 1, "Clarke 1858", "Greenwich", "Trinidad_1903", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 "); add_proj4text (p, 1, "+towgs84=-61.702,284.488,472.052,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Trinidad 1903\",DATUM[\"Trinidad_1903\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Clarke 1858\",6378293.645208759,294.2606763692606,AU"); add_srs_wkt (p, 2, "THORITY[\"EPSG\",\"7007\"]],TOWGS84[-61.702,284.488,472."); add_srs_wkt (p, 3, "052,0,0,0,0],AUTHORITY[\"EPSG\",\"6302\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4302\"]]"); p = add_epsg_def_ex (filter, first, last, 4303, "epsg", 4303, "TC(1948)", 1, 1, "Helmert 1906", "Greenwich", "Trucial_Coast_1948", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=helmert +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"TC(1948)\",DATUM[\"Trucial_Coast_1948\",SPHEROI"); add_srs_wkt (p, 1, "D[\"Helmert 1906\",6378200,298.3,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 2, "20\"]],AUTHORITY[\"EPSG\",\"6303\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 3, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 4, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 5, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "4303\"]]"); p = add_epsg_def_ex (filter, first, last, 4304, "epsg", 4304, "Voirol 1875", 1, 1, "Clarke 1880 (IGN)", "Greenwich", "Voirol_1875", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-73,-247,"); add_proj4text (p, 1, "227,0,0,0,0 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Voirol 1875\",DATUM[\"Voirol_1875\",SPHEROID[\""); add_srs_wkt (p, 1, "Clarke 1880 (IGN)\",6378249.2,293.4660212936269,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7011\"]],TOWGS84[-73,-247,227,0,0,0,0],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6304\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4304\"]]"); p = add_epsg_def_ex (filter, first, last, 4306, "epsg", 4306, "Bern 1938", 1, 1, "Bessel 1841", "Greenwich", "Bern_1938", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Bern 1938\",DATUM[\"Bern_1938\",SPHEROID[\"Bess"); add_srs_wkt (p, 1, "el 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "004\"]],AUTHORITY[\"EPSG\",\"6306\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 3, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 4, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 5, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4306\"]]"); p = add_epsg_def_ex (filter, first, last, 4307, "epsg", 4307, "Nord Sahara 1959", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "Nord_Sahara_1959", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-209.3622,-87.8162,"); add_proj4text (p, 1, "404.6198,0.0046,3.4784,0.5805,-1.4547 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"Nord Sahara 1959\",DATUM[\"Nord_Sahara_1959\",S"); add_srs_wkt (p, 1, "PHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7012\"]],TOWGS84[-209.3622,-87.8162,404.6"); add_srs_wkt (p, 3, "198,0.0046,3.4784,0.5805,-1.4547],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "307\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4307\"]]"); p = add_epsg_def_ex (filter, first, last, 4308, "epsg", 4308, "RT38", 1, 1, "Bessel 1841", "Greenwich", "Stockholm_1938", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"RT38\",DATUM[\"Stockholm_1938\",SPHEROID[\"Bess"); add_srs_wkt (p, 1, "el 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 2, "004\"]],AUTHORITY[\"EPSG\",\"6308\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 3, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 4, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 5, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"4308\"]]"); } #endif /* full EPSG initialization enabled/disabled */ �����������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_04.c��������������������������������������������������0000664�0001750�0001750�00000536550�12544707704�017051� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_04 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 2426, "epsg", 2426, "Beijing 1954 / 3-degree Gauss-Kruger CM 87E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 87E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",87],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2426\"]]"); p = add_epsg_def_ex (filter, first, last, 2427, "epsg", 2427, "Beijing 1954 / 3-degree Gauss-Kruger CM 90E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 90E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",90],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2427\"]]"); p = add_epsg_def_ex (filter, first, last, 2428, "epsg", 2428, "Beijing 1954 / 3-degree Gauss-Kruger CM 93E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 93E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",93],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2428\"]]"); p = add_epsg_def_ex (filter, first, last, 2429, "epsg", 2429, "Beijing 1954 / 3-degree Gauss-Kruger CM 96E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 96E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",96],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2429\"]]"); p = add_epsg_def_ex (filter, first, last, 2430, "epsg", 2430, "Beijing 1954 / 3-degree Gauss-Kruger CM 99E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 99E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",99],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",1],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2430\"]]"); p = add_epsg_def_ex (filter, first, last, 2431, "epsg", 2431, "Beijing 1954 / 3-degree Gauss-Kruger CM 102E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 102E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",102],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2431\"]]"); p = add_epsg_def_ex (filter, first, last, 2432, "epsg", 2432, "Beijing 1954 / 3-degree Gauss-Kruger CM 105E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 105E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2432\"]]"); p = add_epsg_def_ex (filter, first, last, 2433, "epsg", 2433, "Beijing 1954 / 3-degree Gauss-Kruger CM 108E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 108E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",108],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2433\"]]"); p = add_epsg_def_ex (filter, first, last, 2434, "epsg", 2434, "Beijing 1954 / 3-degree Gauss-Kruger CM 111E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 111E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",111],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2434\"]]"); p = add_epsg_def_ex (filter, first, last, 2435, "epsg", 2435, "Beijing 1954 / 3-degree Gauss-Kruger CM 114E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 114E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",114],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2435\"]]"); p = add_epsg_def_ex (filter, first, last, 2436, "epsg", 2436, "Beijing 1954 / 3-degree Gauss-Kruger CM 117E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 117E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",117],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2436\"]]"); p = add_epsg_def_ex (filter, first, last, 2437, "epsg", 2437, "Beijing 1954 / 3-degree Gauss-Kruger CM 120E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 120E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",120],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2437\"]]"); p = add_epsg_def_ex (filter, first, last, 2438, "epsg", 2438, "Beijing 1954 / 3-degree Gauss-Kruger CM 123E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 123E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",123],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2438\"]]"); p = add_epsg_def_ex (filter, first, last, 2439, "epsg", 2439, "Beijing 1954 / 3-degree Gauss-Kruger CM 126E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 126E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",126],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2439\"]]"); p = add_epsg_def_ex (filter, first, last, 2440, "epsg", 2440, "Beijing 1954 / 3-degree Gauss-Kruger CM 129E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 129E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",129],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2440\"]]"); p = add_epsg_def_ex (filter, first, last, 2441, "epsg", 2441, "Beijing 1954 / 3-degree Gauss-Kruger CM 132E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 132E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",132],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2441\"]]"); p = add_epsg_def_ex (filter, first, last, 2442, "epsg", 2442, "Beijing 1954 / 3-degree Gauss-Kruger CM 135E", 0, 1, "Krassowsky 1940", "Greenwich", "Beijing_1954", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=15.8,-154.4,-82.3,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Beijing 1954 / 3-degree Gauss-Kruger CM 135E\","); add_srs_wkt (p, 1, "GEOGCS[\"Beijing 1954\",DATUM[\"Beijing_1954\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[15.8,-154.4,-82.3,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6214\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4214\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",135],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2442\"]]"); p = add_epsg_def_ex (filter, first, last, 2443, "epsg", 2443, "JGD2000 / Japan Plane Rectangular CS I", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS I\",GEOGCS"); add_srs_wkt (p, 1, "[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",33"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",129.5],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"2443\"]]"); p = add_epsg_def_ex (filter, first, last, 2444, "epsg", 2444, "JGD2000 / Japan Plane Rectangular CS II", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS II\",GEOGC"); add_srs_wkt (p, 1, "S[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "3],PARAMETER[\"central_meridian\",131],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2444\"]]"); p = add_epsg_def_ex (filter, first, last, 2445, "epsg", 2445, "JGD2000 / Japan Plane Rectangular CS III", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS III\",GEOG"); add_srs_wkt (p, 1, "CS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "6],PARAMETER[\"central_meridian\",132.1666666666667],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2445\"]]"); p = add_epsg_def_ex (filter, first, last, 2446, "epsg", 2446, "JGD2000 / Japan Plane Rectangular CS IV", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS IV\",GEOGC"); add_srs_wkt (p, 1, "S[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "3],PARAMETER[\"central_meridian\",133.5],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2446\"]]"); p = add_epsg_def_ex (filter, first, last, 2447, "epsg", 2447, "JGD2000 / Japan Plane Rectangular CS V", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS V\",GEOGCS"); add_srs_wkt (p, 1, "[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",36"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",134.3333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",0.9999],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2447\"]]"); p = add_epsg_def_ex (filter, first, last, 2448, "epsg", 2448, "JGD2000 / Japan Plane Rectangular CS VI", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS VI\",GEOGC"); add_srs_wkt (p, 1, "S[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "6],PARAMETER[\"central_meridian\",136],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2448\"]]"); p = add_epsg_def_ex (filter, first, last, 2449, "epsg", 2449, "JGD2000 / Japan Plane Rectangular CS VII", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS VII\",GEOG"); add_srs_wkt (p, 1, "CS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "6],PARAMETER[\"central_meridian\",137.1666666666667],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2449\"]]"); p = add_epsg_def_ex (filter, first, last, 2450, "epsg", 2450, "JGD2000 / Japan Plane Rectangular CS VIII", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS VIII\",GEO"); add_srs_wkt (p, 1, "GCS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "36],PARAMETER[\"central_meridian\",138.5],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",0.9999],PARAMETER[\"false_easting\",0],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2450\"]]"); p = add_epsg_def_ex (filter, first, last, 2451, "epsg", 2451, "JGD2000 / Japan Plane Rectangular CS IX", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS IX\",GEOGC"); add_srs_wkt (p, 1, "S[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",3"); add_srs_wkt (p, 9, "6],PARAMETER[\"central_meridian\",139.8333333333333],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9999],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2451\"]]"); p = add_epsg_def_ex (filter, first, last, 2452, "epsg", 2452, "JGD2000 / Japan Plane Rectangular CS X", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS X\",GEOGCS"); add_srs_wkt (p, 1, "[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",40"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",140.8333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",0.9999],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2452\"]]"); p = add_epsg_def_ex (filter, first, last, 2453, "epsg", 2453, "JGD2000 / Japan Plane Rectangular CS XI", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS XI\",GEOGC"); add_srs_wkt (p, 1, "S[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 9, "4],PARAMETER[\"central_meridian\",140.25],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",0.9999],PARAMETER[\"false_easting\",0],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2453\"]]"); p = add_epsg_def_ex (filter, first, last, 2454, "epsg", 2454, "JGD2000 / Japan Plane Rectangular CS XII", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS XII\",GEOG"); add_srs_wkt (p, 1, "CS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 9, "4],PARAMETER[\"central_meridian\",142.25],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",0.9999],PARAMETER[\"false_easting\",0],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2454\"]]"); p = add_epsg_def_ex (filter, first, last, 2455, "epsg", 2455, "JGD2000 / Japan Plane Rectangular CS XIII", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS XIII\",GEO"); add_srs_wkt (p, 1, "GCS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "44],PARAMETER[\"central_meridian\",144.25],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",0.9999],PARAMETER[\"false_easting\",0],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2455\"]]"); p = add_epsg_def_ex (filter, first, last, 2456, "epsg", 2456, "JGD2000 / Japan Plane Rectangular CS XIV", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS XIV\",GEOG"); add_srs_wkt (p, 1, "CS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 9, "6],PARAMETER[\"central_meridian\",142],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2456\"]]"); p = add_epsg_def_ex (filter, first, last, 2457, "epsg", 2457, "JGD2000 / Japan Plane Rectangular CS XV", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS XV\",GEOGC"); add_srs_wkt (p, 1, "S[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 9, "6],PARAMETER[\"central_meridian\",127.5],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2457\"]]"); p = add_epsg_def_ex (filter, first, last, 2458, "epsg", 2458, "JGD2000 / Japan Plane Rectangular CS XVI", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS XVI\",GEOG"); add_srs_wkt (p, 1, "CS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 9, "6],PARAMETER[\"central_meridian\",124],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2458\"]]"); p = add_epsg_def_ex (filter, first, last, 2459, "epsg", 2459, "JGD2000 / Japan Plane Rectangular CS XVII", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS XVII\",GEO"); add_srs_wkt (p, 1, "GCS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "26],PARAMETER[\"central_meridian\",131],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"2459\"]]"); p = add_epsg_def_ex (filter, first, last, 2460, "epsg", 2460, "JGD2000 / Japan Plane Rectangular CS XVIII", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS XVIII\",GE"); add_srs_wkt (p, 1, "OGCS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",20],PARAMETER[\"central_meridian\",136],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2460\"]]"); p = add_epsg_def_ex (filter, first, last, 2461, "epsg", 2461, "JGD2000 / Japan Plane Rectangular CS XIX", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / Japan Plane Rectangular CS XIX\",GEOG"); add_srs_wkt (p, 1, "CS[\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",2"); add_srs_wkt (p, 9, "6],PARAMETER[\"central_meridian\",154],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9999],PARAMETER[\"false_easting\",0],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2461\"]]"); p = add_epsg_def_ex (filter, first, last, 2462, "epsg", 2462, "Albanian 1987 / Gauss-Kruger zone 4", 0, 1, "Krassowsky 1940", "Greenwich", "Albanian_1987", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Albanian 1987 / Gauss-Kruger zone 4\",GEOGCS[\""); add_srs_wkt (p, 1, "Albanian 1987\",DATUM[\"Albanian_1987\",SPHEROID[\"Krass"); add_srs_wkt (p, 2, "owsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6191\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4191"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",21],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",4500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 11, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 12, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2462\"]]"); p = add_epsg_def_ex (filter, first, last, 2463, "epsg", 2463, "Pulkovo 1995 / Gauss-Kruger CM 21E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 21E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",21],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2463\"]]"); p = add_epsg_def_ex (filter, first, last, 2464, "epsg", 2464, "Pulkovo 1995 / Gauss-Kruger CM 27E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 27E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",27],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2464\"]]"); p = add_epsg_def_ex (filter, first, last, 2465, "epsg", 2465, "Pulkovo 1995 / Gauss-Kruger CM 33E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 33E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",33],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2465\"]]"); p = add_epsg_def_ex (filter, first, last, 2466, "epsg", 2466, "Pulkovo 1995 / Gauss-Kruger CM 39E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 39E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",39],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2466\"]]"); p = add_epsg_def_ex (filter, first, last, 2467, "epsg", 2467, "Pulkovo 1995 / Gauss-Kruger CM 45E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 45E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",45],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2467\"]]"); p = add_epsg_def_ex (filter, first, last, 2468, "epsg", 2468, "Pulkovo 1995 / Gauss-Kruger CM 51E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 51E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",51],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2468\"]]"); p = add_epsg_def_ex (filter, first, last, 2469, "epsg", 2469, "Pulkovo 1995 / Gauss-Kruger CM 57E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 57E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",57],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2469\"]]"); p = add_epsg_def_ex (filter, first, last, 2470, "epsg", 2470, "Pulkovo 1995 / Gauss-Kruger CM 63E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 63E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",63],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2470\"]]"); p = add_epsg_def_ex (filter, first, last, 2471, "epsg", 2471, "Pulkovo 1995 / Gauss-Kruger CM 69E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 69E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",69],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2471\"]]"); p = add_epsg_def_ex (filter, first, last, 2472, "epsg", 2472, "Pulkovo 1995 / Gauss-Kruger CM 75E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 75E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",75],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2472\"]]"); p = add_epsg_def_ex (filter, first, last, 2473, "epsg", 2473, "Pulkovo 1995 / Gauss-Kruger CM 81E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 81E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",81],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2473\"]]"); p = add_epsg_def_ex (filter, first, last, 2474, "epsg", 2474, "Pulkovo 1995 / Gauss-Kruger CM 87E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 87E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",87],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2474\"]]"); p = add_epsg_def_ex (filter, first, last, 2475, "epsg", 2475, "Pulkovo 1995 / Gauss-Kruger CM 93E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 93E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",93],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2475\"]]"); p = add_epsg_def_ex (filter, first, last, 2476, "epsg", 2476, "Pulkovo 1995 / Gauss-Kruger CM 99E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.22"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 99E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",99],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2476\"]]"); p = add_epsg_def_ex (filter, first, last, 2477, "epsg", 2477, "Pulkovo 1995 / Gauss-Kruger CM 105E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 105E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2477\"]]"); p = add_epsg_def_ex (filter, first, last, 2478, "epsg", 2478, "Pulkovo 1995 / Gauss-Kruger CM 111E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 111E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",111],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2478\"]]"); p = add_epsg_def_ex (filter, first, last, 2479, "epsg", 2479, "Pulkovo 1995 / Gauss-Kruger CM 117E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 117E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",117],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2479\"]]"); p = add_epsg_def_ex (filter, first, last, 2480, "epsg", 2480, "Pulkovo 1995 / Gauss-Kruger CM 123E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 123E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",123],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2480\"]]"); p = add_epsg_def_ex (filter, first, last, 2481, "epsg", 2481, "Pulkovo 1995 / Gauss-Kruger CM 129E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 129E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",129],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2481\"]]"); p = add_epsg_def_ex (filter, first, last, 2482, "epsg", 2482, "Pulkovo 1995 / Gauss-Kruger CM 135E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 135E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",135],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2482\"]]"); p = add_epsg_def_ex (filter, first, last, 2483, "epsg", 2483, "Pulkovo 1995 / Gauss-Kruger CM 141E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 141E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",141],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2483\"]]"); p = add_epsg_def_ex (filter, first, last, 2484, "epsg", 2484, "Pulkovo 1995 / Gauss-Kruger CM 147E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 147E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",147],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2484\"]]"); p = add_epsg_def_ex (filter, first, last, 2485, "epsg", 2485, "Pulkovo 1995 / Gauss-Kruger CM 153E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 153E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",153],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2485\"]]"); p = add_epsg_def_ex (filter, first, last, 2486, "epsg", 2486, "Pulkovo 1995 / Gauss-Kruger CM 159E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 159E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",159],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2486\"]]"); p = add_epsg_def_ex (filter, first, last, 2487, "epsg", 2487, "Pulkovo 1995 / Gauss-Kruger CM 165E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 165E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",165],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2487\"]]"); p = add_epsg_def_ex (filter, first, last, 2488, "epsg", 2488, "Pulkovo 1995 / Gauss-Kruger CM 171E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 171E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",171],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2488\"]]"); p = add_epsg_def_ex (filter, first, last, 2489, "epsg", 2489, "Pulkovo 1995 / Gauss-Kruger CM 177E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 177E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",177],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2489\"]]"); p = add_epsg_def_ex (filter, first, last, 2490, "epsg", 2490, "Pulkovo 1995 / Gauss-Kruger CM 177W", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 177W\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",-177],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2490\"]]"); p = add_epsg_def_ex (filter, first, last, 2491, "epsg", 2491, "Pulkovo 1995 / Gauss-Kruger CM 171W", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger CM 171W\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",-171],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"2491\"]]"); p = add_epsg_def_ex (filter, first, last, 2492, "epsg", 2492, "Pulkovo 1942 / Gauss-Kruger CM 9E (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=500000 +y_0=0 +e"); add_proj4text (p, 1, "llps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0.1"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 9E (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID"); add_srs_wkt (p, 2, "[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",9],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",5"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2492\"]]"); p = add_epsg_def_ex (filter, first, last, 2493, "epsg", 2493, "Pulkovo 1942 / Gauss-Kruger CM 15E (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 15E (deprecated)"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHERO"); add_srs_wkt (p, 2, "ID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"428"); add_srs_wkt (p, 8, "4\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",0],PARAMETER[\"central_meridian\",15]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2493\"]]"); p = add_epsg_def_ex (filter, first, last, 2494, "epsg", 2494, "Pulkovo 1942 / Gauss-Kruger CM 21E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 21E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",21],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2494\"]]"); p = add_epsg_def_ex (filter, first, last, 2495, "epsg", 2495, "Pulkovo 1942 / Gauss-Kruger CM 27E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 27E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",27],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2495\"]]"); p = add_epsg_def_ex (filter, first, last, 2496, "epsg", 2496, "Pulkovo 1942 / Gauss-Kruger CM 33E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 33E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",33],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2496\"]]"); p = add_epsg_def_ex (filter, first, last, 2497, "epsg", 2497, "Pulkovo 1942 / Gauss-Kruger CM 39E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 39E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",39],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2497\"]]"); p = add_epsg_def_ex (filter, first, last, 2498, "epsg", 2498, "Pulkovo 1942 / Gauss-Kruger CM 45E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 45E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",45],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2498\"]]"); p = add_epsg_def_ex (filter, first, last, 2499, "epsg", 2499, "Pulkovo 1942 / Gauss-Kruger CM 51E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 51E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",51],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2499\"]]"); p = add_epsg_def_ex (filter, first, last, 2500, "epsg", 2500, "Pulkovo 1942 / Gauss-Kruger CM 57E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 57E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",57],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2500\"]]"); p = add_epsg_def_ex (filter, first, last, 2501, "epsg", 2501, "Pulkovo 1942 / Gauss-Kruger CM 63E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 63E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",63],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2501\"]]"); p = add_epsg_def_ex (filter, first, last, 2502, "epsg", 2502, "Pulkovo 1942 / Gauss-Kruger CM 69E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 69E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",69],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2502\"]]"); p = add_epsg_def_ex (filter, first, last, 2503, "epsg", 2503, "Pulkovo 1942 / Gauss-Kruger CM 75E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 75E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",75],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2503\"]]"); p = add_epsg_def_ex (filter, first, last, 2504, "epsg", 2504, "Pulkovo 1942 / Gauss-Kruger CM 81E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 81E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",81],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2504\"]]"); p = add_epsg_def_ex (filter, first, last, 2505, "epsg", 2505, "Pulkovo 1942 / Gauss-Kruger CM 87E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 87E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",87],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2505\"]]"); p = add_epsg_def_ex (filter, first, last, 2506, "epsg", 2506, "Pulkovo 1942 / Gauss-Kruger CM 93E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 93E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",93],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2506\"]]"); p = add_epsg_def_ex (filter, first, last, 2507, "epsg", 2507, "Pulkovo 1942 / Gauss-Kruger CM 99E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 99E\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",99],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"2507\"]]"); p = add_epsg_def_ex (filter, first, last, 2508, "epsg", 2508, "Pulkovo 1942 / Gauss-Kruger CM 105E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 105E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",105],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"2508\"]]"); p = add_epsg_def_ex (filter, first, last, 2509, "epsg", 2509, "Pulkovo 1942 / Gauss-Kruger CM 111E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 111E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",111],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"2509\"]]"); p = add_epsg_def_ex (filter, first, last, 2510, "epsg", 2510, "Pulkovo 1942 / Gauss-Kruger CM 117E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 117E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",117],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"2510\"]]"); p = add_epsg_def_ex (filter, first, last, 2511, "epsg", 2511, "Pulkovo 1942 / Gauss-Kruger CM 123E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 123E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",123],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"2511\"]]"); p = add_epsg_def_ex (filter, first, last, 2512, "epsg", 2512, "Pulkovo 1942 / Gauss-Kruger CM 129E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 129E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",129],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"2512\"]]"); p = add_epsg_def_ex (filter, first, last, 2513, "epsg", 2513, "Pulkovo 1942 / Gauss-Kruger CM 135E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 135E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",135],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"2513\"]]"); p = add_epsg_def_ex (filter, first, last, 2514, "epsg", 2514, "Pulkovo 1942 / Gauss-Kruger CM 141E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 141E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",141],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"2514\"]]"); p = add_epsg_def_ex (filter, first, last, 2515, "epsg", 2515, "Pulkovo 1942 / Gauss-Kruger CM 147E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 147E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",147],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"2515\"]]"); p = add_epsg_def_ex (filter, first, last, 2516, "epsg", 2516, "Pulkovo 1942 / Gauss-Kruger CM 153E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 153E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",153],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"2516\"]]"); p = add_epsg_def_ex (filter, first, last, 2517, "epsg", 2517, "Pulkovo 1942 / Gauss-Kruger CM 159E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 159E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",159],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"2517\"]]"); p = add_epsg_def_ex (filter, first, last, 2518, "epsg", 2518, "Pulkovo 1942 / Gauss-Kruger CM 165E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 165E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",165],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"2518\"]]"); p = add_epsg_def_ex (filter, first, last, 2519, "epsg", 2519, "Pulkovo 1942 / Gauss-Kruger CM 171E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 171E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",171],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"2519\"]]"); p = add_epsg_def_ex (filter, first, last, 2520, "epsg", 2520, "Pulkovo 1942 / Gauss-Kruger CM 177E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 177E\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",177],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",1],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"2520\"]]"); p = add_epsg_def_ex (filter, first, last, 2521, "epsg", 2521, "Pulkovo 1942 / Gauss-Kruger CM 177W", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 177W\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",-177],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",1],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 13, "T],AUTHORITY[\"EPSG\",\"2521\"]]"); p = add_epsg_def_ex (filter, first, last, 2522, "epsg", 2522, "Pulkovo 1942 / Gauss-Kruger CM 171W", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / Gauss-Kruger CM 171W\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",-171],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",1],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 13, "T],AUTHORITY[\"EPSG\",\"2522\"]]"); p = add_epsg_def_ex (filter, first, last, 2523, "epsg", 2523, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 7", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 7\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",21],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",75"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2523\"]]"); p = add_epsg_def_ex (filter, first, last, 2524, "epsg", 2524, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 8", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 8\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",24],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",85"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2524\"]]"); p = add_epsg_def_ex (filter, first, last, 2525, "epsg", 2525, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 9", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 9\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",27],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",95"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"2525\"]]"); p = add_epsg_def_ex (filter, first, last, 2526, "epsg", 2526, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 10", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 10\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",30],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "10500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2526\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ��������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_30.c��������������������������������������������������0000664�0001750�0001750�00000552754�12544707704�017054� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_30 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 6342, "epsg", 6342, "NAD83(2011) / UTM zone 13N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 13N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-105],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"6342\"]]"); p = add_epsg_def_ex (filter, first, last, 6343, "epsg", 6343, "NAD83(2011) / UTM zone 14N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 14N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-99],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6343\"]]"); p = add_epsg_def_ex (filter, first, last, 6344, "epsg", 6344, "NAD83(2011) / UTM zone 15N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 15N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-93],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6344\"]]"); p = add_epsg_def_ex (filter, first, last, 6345, "epsg", 6345, "NAD83(2011) / UTM zone 16N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 16N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-87],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6345\"]]"); p = add_epsg_def_ex (filter, first, last, 6346, "epsg", 6346, "NAD83(2011) / UTM zone 17N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 17N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-81],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6346\"]]"); p = add_epsg_def_ex (filter, first, last, 6347, "epsg", 6347, "NAD83(2011) / UTM zone 18N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 18N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-75],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6347\"]]"); p = add_epsg_def_ex (filter, first, last, 6348, "epsg", 6348, "NAD83(2011) / UTM zone 19N", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / UTM zone 19N\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-69],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"6348\"]]"); p = add_epsg_def_ex (filter, first, last, 6349, "epsg", 6349, "NAD83(2011)", 1, 1, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +geoidgrids=g2012a_conus.gtx,"); add_proj4text (p, 1, "g2012a_alaska.gtx,g2012a_guam.gtx,g2012a_hawaii.gtx,g201"); add_proj4text (p, 2, "2a_puertorico.gtx,g2012a_samoa.gtx +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD83(2011) + NAVD88 height\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"6318\"]],VERT_CS[\"NAVD88 height\",V"); add_srs_wkt (p, 8, "ERT_DATUM[\"North American Vertical Datum 1988\",2005,EX"); add_srs_wkt (p, 9, "TENSION[\"PROJ4_GRIDS\",\"g2012a_conus.gtx,g2012a_alaska"); add_srs_wkt (p, 10, ".gtx,g2012a_guam.gtx,g2012a_hawaii.gtx,g2012a_puertorico"); add_srs_wkt (p, 11, ".gtx,g2012a_samoa.gtx\"],AUTHORITY[\"EPSG\",\"5103\"]],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\""); add_srs_wkt (p, 13, ",UP],AUTHORITY[\"EPSG\",\"5703\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "6349\"]]"); p = add_epsg_def_ex (filter, first, last, 6350, "epsg", 6350, "NAD83(2011) / Conus Albers", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +"); add_proj4text (p, 1, "x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Conus Albers\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Albers_Conic_Equa"); add_srs_wkt (p, 8, "l_Area\"],PARAMETER[\"standard_parallel_1\",29.5],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",45.5],PARAMETER[\"latitude_o"); add_srs_wkt (p, 10, "f_center\",23],PARAMETER[\"longitude_of_center\",-96],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6350\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 6351, "epsg", 6351, "NAD83(2011) / EPSG Arctic zone 5-29", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=-163 +x_0=29500000 +"); add_proj4text (p, 2, "y_0=5500000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / EPSG Arctic zone 5-29\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",73.66666666666667],PARAMETER[\"standard_parallel_2\",70"); add_srs_wkt (p, 10, ".33333333333333],PARAMETER[\"latitude_of_origin\",72.025"); add_srs_wkt (p, 11, "00919444444],PARAMETER[\"central_meridian\",-163],PARAME"); add_srs_wkt (p, 12, "TER[\"false_easting\",29500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 13, "ng\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 14, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 15, "HORITY[\"EPSG\",\"6351\"]]"); p = add_epsg_def_ex (filter, first, last, 6352, "epsg", 6352, "NAD83(2011) / EPSG Arctic zone 5-31", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=-147 +x_0=31500000 +"); add_proj4text (p, 2, "y_0=5500000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / EPSG Arctic zone 5-31\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",73.66666666666667],PARAMETER[\"standard_parallel_2\",70"); add_srs_wkt (p, 10, ".33333333333333],PARAMETER[\"latitude_of_origin\",72.025"); add_srs_wkt (p, 11, "00919444444],PARAMETER[\"central_meridian\",-147],PARAME"); add_srs_wkt (p, 12, "TER[\"false_easting\",31500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 13, "ng\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 14, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 15, "HORITY[\"EPSG\",\"6352\"]]"); p = add_epsg_def_ex (filter, first, last, 6353, "epsg", 6353, "NAD83(2011) / EPSG Arctic zone 6-14", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, "8747555555557 +lon_0=-165 +x_0=14500000 +y_0=6500000 +el"); add_proj4text (p, 2, "lps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / EPSG Arctic zone 6-14\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",70.33333333333333],PARAMETER[\"standard_parallel_2\",67"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",68.68747555555557],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-165],PARAMETER[\"false_eas"); add_srs_wkt (p, 12, "ting\",14500000],PARAMETER[\"false_northing\",6500000],U"); add_srs_wkt (p, 13, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 14, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"6353\"]]"); p = add_epsg_def_ex (filter, first, last, 6354, "epsg", 6354, "NAD83(2011) / EPSG Arctic zone 6-16", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, "8747555555557 +lon_0=-147 +x_0=16500000 +y_0=6500000 +el"); add_proj4text (p, 2, "lps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / EPSG Arctic zone 6-16\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",70.33333333333333],PARAMETER[\"standard_parallel_2\",67"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",68.68747555555557],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-147],PARAMETER[\"false_eas"); add_srs_wkt (p, 12, "ting\",16500000],PARAMETER[\"false_northing\",6500000],U"); add_srs_wkt (p, 13, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 14, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"6354\"]]"); p = add_epsg_def_ex (filter, first, last, 6355, "epsg", 6355, "NAD83(2011) / Alabama East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9"); add_proj4text (p, 1, "9996 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Alabama East\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",30.5],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-85.83333333333333],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.99996],PARAMETER[\"false_easting\",200000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"6355\"]]"); p = add_epsg_def_ex (filter, first, last, 6356, "epsg", 6356, "NAD83(2011) / Alabama West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=6"); add_proj4text (p, 1, "00000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Alabama West\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-87.5],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "9933333],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"6356\"]]"); p = add_epsg_def_ex (filter, first, last, 6362, "epsg", 6362, "Mexico ITRF92 / LCC", 0, 1, "GRS 1980", "Greenwich", "Mexico_ITRF92", "Lambert_Conformal_Conic_2SP", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=17.5 +lat_2=29.5 +lat_0=12 +lon_0=-102 "); add_proj4text (p, 1, "+x_0=2500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexico ITRF92 / LCC\",GEOGCS[\"Mexico ITRF92\","); add_srs_wkt (p, 1, "DATUM[\"Mexico_ITRF92\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 2, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"1042\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4483\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",17.5],PARAMETER[\"stan"); add_srs_wkt (p, 9, "dard_parallel_2\",29.5],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",12],PARAMETER[\"central_meridian\",-102],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",2500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nor"); add_srs_wkt (p, 13, "thing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"6362\"]]"); p = add_epsg_def_ex (filter, first, last, 6365, "epsg", 6365, "Mexico ITRF2008", 1, 1, "GRS 1980", "Greenwich", "Mexico_ITRF2008", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"Mexico ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPH"); add_srs_wkt (p, 1, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 2, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"1120\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"6365\"]]"); p = add_epsg_def_ex (filter, first, last, 6366, "epsg", 6366, "Mexico ITRF2008 / UTM zone 11N", 0, 0, "GRS 1980", "Greenwich", "Mexico_ITRF2008", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexico ITRF2008 / UTM zone 11N\",GEOGCS[\"Mexic"); add_srs_wkt (p, 1, "o ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6365\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-117],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"6366\"]]"); p = add_epsg_def_ex (filter, first, last, 6367, "epsg", 6367, "Mexico ITRF2008 / UTM zone 12N", 0, 0, "GRS 1980", "Greenwich", "Mexico_ITRF2008", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexico ITRF2008 / UTM zone 12N\",GEOGCS[\"Mexic"); add_srs_wkt (p, 1, "o ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6365\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-111],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"6367\"]]"); p = add_epsg_def_ex (filter, first, last, 6368, "epsg", 6368, "Mexico ITRF2008 / UTM zone 13N", 0, 0, "GRS 1980", "Greenwich", "Mexico_ITRF2008", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexico ITRF2008 / UTM zone 13N\",GEOGCS[\"Mexic"); add_srs_wkt (p, 1, "o ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6365\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-105],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"6368\"]]"); p = add_epsg_def_ex (filter, first, last, 6369, "epsg", 6369, "Mexico ITRF2008 / UTM zone 14N", 0, 0, "GRS 1980", "Greenwich", "Mexico_ITRF2008", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexico ITRF2008 / UTM zone 14N\",GEOGCS[\"Mexic"); add_srs_wkt (p, 1, "o ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6365\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-99],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"6369\"]]"); p = add_epsg_def_ex (filter, first, last, 6370, "epsg", 6370, "Mexico ITRF2008 / UTM zone 15N", 0, 0, "GRS 1980", "Greenwich", "Mexico_ITRF2008", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexico ITRF2008 / UTM zone 15N\",GEOGCS[\"Mexic"); add_srs_wkt (p, 1, "o ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6365\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-93],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"6370\"]]"); p = add_epsg_def_ex (filter, first, last, 6371, "epsg", 6371, "Mexico ITRF2008 / UTM zone 16N", 0, 0, "GRS 1980", "Greenwich", "Mexico_ITRF2008", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexico ITRF2008 / UTM zone 16N\",GEOGCS[\"Mexic"); add_srs_wkt (p, 1, "o ITRF2008\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6365\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-87],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"6371\"]]"); p = add_epsg_def_ex (filter, first, last, 6372, "epsg", 6372, "Mexico ITRF2008 / LCC", 0, 1, "GRS 1980", "Greenwich", "Mexico_ITRF2008", "Lambert_Conformal_Conic_2SP", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=17.5 +lat_2=29.5 +lat_0=12 +lon_0=-102 "); add_proj4text (p, 1, "+x_0=2500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mexico ITRF2008 / LCC\",GEOGCS[\"Mexico ITRF200"); add_srs_wkt (p, 1, "8\",DATUM[\"Mexico_ITRF2008\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1120\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"6365\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"standard_parallel_1\",17.5],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",29.5],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 10, "in\",12],PARAMETER[\"central_meridian\",-102],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",2500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"6372\"]]"); p = add_epsg_def_ex (filter, first, last, 6381, "epsg", 6381, "UCS-2000 / Ukraine TM zone 7", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=300000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / Ukraine TM zone 7\",GEOGCS[\"UCS-200"); add_srs_wkt (p, 1, "0\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\","); add_srs_wkt (p, 2, "6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,-"); add_srs_wkt (p, 3, "141,-78.5,0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",21],PARAMETER[\"scale_factor\",1],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",300000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"6381\"]]"); p = add_epsg_def_ex (filter, first, last, 6382, "epsg", 6382, "UCS-2000 / Ukraine TM zone 8", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=300000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / Ukraine TM zone 8\",GEOGCS[\"UCS-200"); add_srs_wkt (p, 1, "0\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\","); add_srs_wkt (p, 2, "6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,-"); add_srs_wkt (p, 3, "141,-78.5,0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",24],PARAMETER[\"scale_factor\",1],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",300000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"6382\"]]"); p = add_epsg_def_ex (filter, first, last, 6383, "epsg", 6383, "UCS-2000 / Ukraine TM zone 9", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=300000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / Ukraine TM zone 9\",GEOGCS[\"UCS-200"); add_srs_wkt (p, 1, "0\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\","); add_srs_wkt (p, 2, "6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,-"); add_srs_wkt (p, 3, "141,-78.5,0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",27],PARAMETER[\"scale_factor\",1],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",300000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"6383\"]]"); p = add_epsg_def_ex (filter, first, last, 6384, "epsg", 6384, "UCS-2000 / Ukraine TM zone 10", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=300000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / Ukraine TM zone 10\",GEOGCS[\"UCS-20"); add_srs_wkt (p, 1, "00\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, "-141,-78.5,0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",30],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",300000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"6384\"]]"); p = add_epsg_def_ex (filter, first, last, 6385, "epsg", 6385, "UCS-2000 / Ukraine TM zone 11", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=300000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / Ukraine TM zone 11\",GEOGCS[\"UCS-20"); add_srs_wkt (p, 1, "00\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, "-141,-78.5,0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",33],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",300000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"6385\"]]"); p = add_epsg_def_ex (filter, first, last, 6386, "epsg", 6386, "UCS-2000 / Ukraine TM zone 12", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=300000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / Ukraine TM zone 12\",GEOGCS[\"UCS-20"); add_srs_wkt (p, 1, "00\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, "-141,-78.5,0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",36],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",300000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"6386\"]]"); p = add_epsg_def_ex (filter, first, last, 6387, "epsg", 6387, "UCS-2000 / Ukraine TM zone 13", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=300000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / Ukraine TM zone 13\",GEOGCS[\"UCS-20"); add_srs_wkt (p, 1, "00\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, "-141,-78.5,0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",39],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",300000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"6387\"]]"); p = add_epsg_def_ex (filter, first, last, 6391, "epsg", 6391, "Cayman Islands National Grid 2011", 0, 0, "GRS 1980", "Greenwich", "Cayman_Islands_Geodetic_Datum_2011", "Lambert_Conformal_Conic_2SP", "foot", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=19.33333333333333 +lat_2=19.7 +lat_0=19"); add_proj4text (p, 1, ".33333333333333 +lon_0=-80.56666666666666 +x_0=899160 +y"); add_proj4text (p, 2, "_0=579120 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cayman Islands National Grid 2011\",GEOGCS[\"CI"); add_srs_wkt (p, 1, "GD11\",DATUM[\"Cayman_Islands_Geodetic_Datum_2011\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"1100\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"6135\"]],PROJECTION[\"La"); add_srs_wkt (p, 8, "mbert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, "el_1\",19.33333333333333],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 10, "2\",19.7],PARAMETER[\"latitude_of_origin\",19.3333333333"); add_srs_wkt (p, 11, "3333],PARAMETER[\"central_meridian\",-80.56666666666666]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_easting\",2950000],PARAMETER[\"false_"); add_srs_wkt (p, 13, "northing\",1900000],UNIT[\"foot\",0.3048,AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"9002\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 15, "NORTH],AUTHORITY[\"EPSG\",\"6391\"]]"); p = add_epsg_def_ex (filter, first, last, 6393, "epsg", 6393, "NAD83(2011) / Alaska Albers", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Alaska Albers\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Albers_Conic_Equa"); add_srs_wkt (p, 8, "l_Area\"],PARAMETER[\"standard_parallel_1\",55],PARAMETE"); add_srs_wkt (p, 9, "R[\"standard_parallel_2\",65],PARAMETER[\"latitude_of_ce"); add_srs_wkt (p, 10, "nter\",50],PARAMETER[\"longitude_of_center\",-154],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",0],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 12, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6393\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 6394, "epsg", 6394, "NAD83(2011) / Alaska zone 1", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Hotine_Oblique_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32"); add_proj4text (p, 1, "3.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +no"); add_proj4text (p, 2, "_uoff +gamma=323.1301023611111 +ellps=GRS80 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Alaska zone 1\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Hotine_Oblique_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_center\",57],PARAMETER"); add_srs_wkt (p, 9, "[\"longitude_of_center\",-133.6666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "azimuth\",323.1301023611111],PARAMETER[\"rectified_grid_"); add_srs_wkt (p, 11, "angle\",323.1301023611111],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 12, "9999],PARAMETER[\"false_easting\",5000000],PARAMETER[\"f"); add_srs_wkt (p, 13, "alse_northing\",-5000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 15, "ORITY[\"EPSG\",\"6394\"]]"); p = add_epsg_def_ex (filter, first, last, 6395, "epsg", 6395, "NAD83(2011) / Alaska zone 2", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Alaska zone 2\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-142],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "9],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"6395\"]]"); p = add_epsg_def_ex (filter, first, last, 6396, "epsg", 6396, "NAD83(2011) / Alaska zone 3", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Alaska zone 3\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-146],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "9],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"6396\"]]"); p = add_epsg_def_ex (filter, first, last, 6397, "epsg", 6397, "NAD83(2011) / Alaska zone 4", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Alaska zone 4\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-150],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "9],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"6397\"]]"); p = add_epsg_def_ex (filter, first, last, 6398, "epsg", 6398, "NAD83(2011) / Alaska zone 5", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Alaska zone 5\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-154],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "9],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"6398\"]]"); p = add_epsg_def_ex (filter, first, last, 6399, "epsg", 6399, "NAD83(2011) / Alaska zone 6", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Alaska zone 6\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-158],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "9],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"6399\"]]"); p = add_epsg_def_ex (filter, first, last, 6400, "epsg", 6400, "NAD83(2011) / Alaska zone 7", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Alaska zone 7\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-162],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "9],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"6400\"]]"); p = add_epsg_def_ex (filter, first, last, 6401, "epsg", 6401, "NAD83(2011) / Alaska zone 8", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Alaska zone 8\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-166],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "9],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"6401\"]]"); p = add_epsg_def_ex (filter, first, last, 6402, "epsg", 6402, "NAD83(2011) / Alaska zone 9", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Alaska zone 9\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",54],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-170],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 10, "9],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"6402\"]]"); p = add_epsg_def_ex (filter, first, last, 6403, "epsg", 6403, "NAD83(2011) / Alaska zone 10", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333"); add_proj4text (p, 1, "334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Alaska zone 10\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",53.8333"); add_srs_wkt (p, 9, "3333333334],PARAMETER[\"standard_parallel_2\",51.8333333"); add_srs_wkt (p, 10, "3333334],PARAMETER[\"latitude_of_origin\",51],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-176],PARAMETER[\"false_easting\",1"); add_srs_wkt (p, 12, "000000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"6403\"]]"); p = add_epsg_def_ex (filter, first, last, 6404, "epsg", 6404, "NAD83(2011) / Arizona Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Arizona Central\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",-111.9166666666667],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.9999],PARAMETER[\"false_easting\",213360],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"6404\"]]"); p = add_epsg_def_ex (filter, first, last, 6405, "epsg", 6405, "NAD83(2011) / Arizona Central (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Arizona Central (ft)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",31],PARAME"); add_srs_wkt (p, 9, "TER[\"central_meridian\",-111.9166666666667],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.9999],PARAMETER[\"false_easting\",70000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"foot\",0.3048,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"6405\"]]"); p = add_epsg_def_ex (filter, first, last, 6406, "epsg", 6406, "NAD83(2011) / Arizona East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Arizona East\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-110.1666666666667],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",213360],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"6406\"]]"); p = add_epsg_def_ex (filter, first, last, 6407, "epsg", 6407, "NAD83(2011) / Arizona East (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Arizona East (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",31],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-110.1666666666667],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",0.9999],PARAMETER[\"false_easting\",700000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"foot\",0.3048,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"6407\"]]"); p = add_epsg_def_ex (filter, first, last, 6408, "epsg", 6408, "NAD83(2011) / Arizona West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, "=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Arizona West\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-113.75],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "999933333],PARAMETER[\"false_easting\",213360],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"6408\"]]"); p = add_epsg_def_ex (filter, first, last, 6409, "epsg", 6409, "NAD83(2011) / Arizona West (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, "=213360 +y_0=0 +ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Arizona West (ft)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",31],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-113.75],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.999933333],PARAMETER[\"false_easting\",700000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"6409\"]]"); p = add_epsg_def_ex (filter, first, last, 6410, "epsg", 6410, "NAD83(2011) / Arkansas North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Arkansas North\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",36.2333"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"standard_parallel_2\",34.9333333"); add_srs_wkt (p, 10, "3333333],PARAMETER[\"latitude_of_origin\",34.33333333333"); add_srs_wkt (p, 11, "334],PARAMETER[\"central_meridian\",-92],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_easting\",400000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 13, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6410\"]]"); p = add_epsg_def_ex (filter, first, last, 6411, "epsg", 6411, "NAD83(2011) / Arkansas North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.9999"); add_proj4text (p, 2, "8984 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Arkansas North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",36.23333333333333],PARAMETER[\"standard_parallel_2\",34"); add_srs_wkt (p, 10, ".93333333333333],PARAMETER[\"latitude_of_origin\",34.333"); add_srs_wkt (p, 11, "33333333334],PARAMETER[\"central_meridian\",-92],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_easting\",1312333.3333],PARAMETER[\"false_nor"); add_srs_wkt (p, 13, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 14, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 15, "NORTH],AUTHORITY[\"EPSG\",\"6411\"]]"); p = add_epsg_def_ex (filter, first, last, 6412, "epsg", 6412, "NAD83(2011) / Arkansas South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, ".66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellp"); add_proj4text (p, 2, "s=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Arkansas South\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",34.7666"); add_srs_wkt (p, 9, "6666666667],PARAMETER[\"standard_parallel_2\",33.3],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",32.66666666666666],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-92],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "400000],PARAMETER[\"false_northing\",400000],UNIT[\"metr"); add_srs_wkt (p, 13, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6412\"]]"); p = add_epsg_def_ex (filter, first, last, 6413, "epsg", 6413, "NAD83(2011) / Arkansas South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, ".66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399"); add_proj4text (p, 2, "999.99998984 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Arkansas South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",34.76666666666667],PARAMETER[\"standard_parallel_2\",33"); add_srs_wkt (p, 10, ".3],PARAMETER[\"latitude_of_origin\",32.66666666666666],"); add_srs_wkt (p, 11, "PARAMETER[\"central_meridian\",-92],PARAMETER[\"false_ea"); add_srs_wkt (p, 12, "sting\",1312333.3333],PARAMETER[\"false_northing\",13123"); add_srs_wkt (p, 13, "33.3333],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 15, "RTH],AUTHORITY[\"EPSG\",\"6413\"]]"); p = add_epsg_def_ex (filter, first, last, 6414, "epsg", 6414, "NAD83(2011) / California Albers", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_"); add_proj4text (p, 1, "0=0 +y_0=-4000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / California Albers\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Albers_Conic"); add_srs_wkt (p, 8, "_Equal_Area\"],PARAMETER[\"standard_parallel_1\",34],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",40.5],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_center\",0],PARAMETER[\"longitude_of_center\",-120]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",0],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",-4000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"6414\"]]"); p = add_epsg_def_ex (filter, first, last, 6415, "epsg", 6415, "NAD83(2011) / California zone 1", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, "3333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellp"); add_proj4text (p, 2, "s=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / California zone 1\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 8, "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41."); add_srs_wkt (p, 9, "66666666666666],PARAMETER[\"standard_parallel_2\",40],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",39.33333333333334],PARAME"); add_srs_wkt (p, 11, "TER[\"central_meridian\",-122],PARAMETER[\"false_easting"); add_srs_wkt (p, 12, "\",2000000],PARAMETER[\"false_northing\",500000],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6415\"]]"); p = add_epsg_def_ex (filter, first, last, 6416, "epsg", 6416, "NAD83(2011) / California zone 1 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, "3333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=5000"); add_proj4text (p, 2, "00.0001016001 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / California zone 1 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 4, "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 8, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 9, "\",41.66666666666666],PARAMETER[\"standard_parallel_2\","); add_srs_wkt (p, 10, "40],PARAMETER[\"latitude_of_origin\",39.33333333333334],"); add_srs_wkt (p, 11, "PARAMETER[\"central_meridian\",-122],PARAMETER[\"false_e"); add_srs_wkt (p, 12, "asting\",6561666.667],PARAMETER[\"false_northing\",16404"); add_srs_wkt (p, 13, "16.667],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 15, "TH],AUTHORITY[\"EPSG\",\"6416\"]]"); p = add_epsg_def_ex (filter, first, last, 6417, "epsg", 6417, "NAD83(2011) / California zone 2", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y"); add_proj4text (p, 2, "_0=500000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / California zone 2\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 8, "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39."); add_srs_wkt (p, 9, "83333333333334],PARAMETER[\"standard_parallel_2\",38.333"); add_srs_wkt (p, 10, "33333333334],PARAMETER[\"latitude_of_origin\",37.6666666"); add_srs_wkt (p, 11, "6666666],PARAMETER[\"central_meridian\",-122],PARAMETER["); add_srs_wkt (p, 12, "\"false_easting\",2000000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 13, "500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 14, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 15, "417\"]]"); p = add_epsg_def_ex (filter, first, last, 6418, "epsg", 6418, "NAD83(2011) / California zone 2 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.00"); add_proj4text (p, 2, "01016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / California zone 2 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 4, "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 8, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 9, "\",39.83333333333334],PARAMETER[\"standard_parallel_2\","); add_srs_wkt (p, 10, "38.33333333333334],PARAMETER[\"latitude_of_origin\",37.6"); add_srs_wkt (p, 11, "6666666666666],PARAMETER[\"central_meridian\",-122],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",6561666.667],PARAMETER[\"false_n"); add_srs_wkt (p, 13, "orthing\",1640416.667],UNIT[\"US survey foot\",0.3048006"); add_srs_wkt (p, 14, "096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 15, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6418\"]]"); p = add_epsg_def_ex (filter, first, last, 6419, "epsg", 6419, "NAD83(2011) / California zone 3", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +"); add_proj4text (p, 2, "ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / California zone 3\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 8, "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38."); add_srs_wkt (p, 9, "43333333333333],PARAMETER[\"standard_parallel_2\",37.066"); add_srs_wkt (p, 10, "66666666667],PARAMETER[\"latitude_of_origin\",36.5],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-120.5],PARAMETER[\"false_eas"); add_srs_wkt (p, 12, "ting\",2000000],PARAMETER[\"false_northing\",500000],UNI"); add_srs_wkt (p, 13, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6419\"]]"); p = add_epsg_def_ex (filter, first, last, 6420, "epsg", 6420, "NAD83(2011) / California zone 3 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0="); add_proj4text (p, 2, "500000.0001016001 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / California zone 3 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 4, "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 8, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 9, "\",38.43333333333333],PARAMETER[\"standard_parallel_2\","); add_srs_wkt (p, 10, "37.06666666666667],PARAMETER[\"latitude_of_origin\",36.5"); add_srs_wkt (p, 11, "],PARAMETER[\"central_meridian\",-120.5],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_easting\",6561666.667],PARAMETER[\"false_northing\",1"); add_srs_wkt (p, 13, "640416.667],UNIT[\"US survey foot\",0.3048006096012192,A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 15, ",NORTH],AUTHORITY[\"EPSG\",\"6420\"]]"); p = add_epsg_def_ex (filter, first, last, 6421, "epsg", 6421, "NAD83(2011) / California zone 4", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, "4 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / California zone 4\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 8, "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37."); add_srs_wkt (p, 9, "25],PARAMETER[\"standard_parallel_2\",36],PARAMETER[\"la"); add_srs_wkt (p, 10, "titude_of_origin\",35.33333333333334],PARAMETER[\"centra"); add_srs_wkt (p, 11, "l_meridian\",-119],PARAMETER[\"false_easting\",2000000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",500000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 14, "NORTH],AUTHORITY[\"EPSG\",\"6421\"]]"); p = add_epsg_def_ex (filter, first, last, 6422, "epsg", 6422, "NAD83(2011) / California zone 4 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, "4 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.000101600"); add_proj4text (p, 2, "1 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / California zone 4 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 4, "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 8, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 9, "\",37.25],PARAMETER[\"standard_parallel_2\",36],PARAMETE"); add_srs_wkt (p, 10, "R[\"latitude_of_origin\",35.33333333333334],PARAMETER[\""); add_srs_wkt (p, 11, "central_meridian\",-119],PARAMETER[\"false_easting\",656"); add_srs_wkt (p, 12, "1666.667],PARAMETER[\"false_northing\",1640416.667],UNIT"); add_srs_wkt (p, 13, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"6422\"]]"); p = add_epsg_def_ex (filter, first, last, 6423, "epsg", 6423, "NAD83(2011) / California zone 5", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +el"); add_proj4text (p, 2, "lps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / California zone 5\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 8, "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35."); add_srs_wkt (p, 9, "46666666666667],PARAMETER[\"standard_parallel_2\",34.033"); add_srs_wkt (p, 10, "33333333333],PARAMETER[\"latitude_of_origin\",33.5],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-118],PARAMETER[\"false_easti"); add_srs_wkt (p, 12, "ng\",2000000],PARAMETER[\"false_northing\",500000],UNIT["); add_srs_wkt (p, 13, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 14, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6423\"]]"); p = add_epsg_def_ex (filter, first, last, 6424, "epsg", 6424, "NAD83(2011) / California zone 5 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=50"); add_proj4text (p, 2, "0000.0001016001 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / California zone 5 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 4, "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 8, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 9, "\",35.46666666666667],PARAMETER[\"standard_parallel_2\","); add_srs_wkt (p, 10, "34.03333333333333],PARAMETER[\"latitude_of_origin\",33.5"); add_srs_wkt (p, 11, "],PARAMETER[\"central_meridian\",-118],PARAMETER[\"false"); add_srs_wkt (p, 12, "_easting\",6561666.667],PARAMETER[\"false_northing\",164"); add_srs_wkt (p, 13, "0416.667],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 15, "ORTH],AUTHORITY[\"EPSG\",\"6424\"]]"); p = add_epsg_def_ex (filter, first, last, 6425, "epsg", 6425, "NAD83(2011) / California zone 6", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000"); add_proj4text (p, 2, " +y_0=500000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / California zone 6\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 8, "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",33."); add_srs_wkt (p, 9, "88333333333333],PARAMETER[\"standard_parallel_2\",32.783"); add_srs_wkt (p, 10, "33333333333],PARAMETER[\"latitude_of_origin\",32.1666666"); add_srs_wkt (p, 11, "6666666],PARAMETER[\"central_meridian\",-116.25],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_easting\",2000000],PARAMETER[\"false_northing"); add_srs_wkt (p, 13, "\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 14, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 15, "\"6425\"]]"); p = add_epsg_def_ex (filter, first, last, 6426, "epsg", 6426, "NAD83(2011) / California zone 6 (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000"); add_proj4text (p, 2, ".0001016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / California zone 6 (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1"); add_srs_wkt (p, 4, "116\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 8, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 9, "\",33.88333333333333],PARAMETER[\"standard_parallel_2\","); add_srs_wkt (p, 10, "32.78333333333333],PARAMETER[\"latitude_of_origin\",32.1"); add_srs_wkt (p, 11, "6666666666666],PARAMETER[\"central_meridian\",-116.25],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_easting\",6561666.667],PARAMETER[\"fals"); add_srs_wkt (p, 13, "e_northing\",1640416.667],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 14, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 15, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6426\"]]"); p = add_epsg_def_ex (filter, first, last, 6427, "epsg", 6427, "NAD83(2011) / Colorado Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, "3334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +el"); add_proj4text (p, 2, "lps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Colorado Central\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(2011)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, "_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",39.7"); add_srs_wkt (p, 9, "5],PARAMETER[\"standard_parallel_2\",38.45],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",37.83333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-105.5],PARAMETER[\"false_easting\",91440"); add_srs_wkt (p, 12, "1.8289],PARAMETER[\"false_northing\",304800.6096],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6427\"]]"); p = add_epsg_def_ex (filter, first, last, 6428, "epsg", 6428, "NAD83(2011) / Colorado Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, "3334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.60"); add_proj4text (p, 2, "96012192 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Colorado Central (ftUS)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2011\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, "16\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 8, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",39.75],PARAMETER[\"standard_parallel_2\",38.45],PARAMET"); add_srs_wkt (p, 10, "ER[\"latitude_of_origin\",37.83333333333334],PARAMETER[\""); add_srs_wkt (p, 11, "central_meridian\",-105.5],PARAMETER[\"false_easting\",3"); add_srs_wkt (p, 12, "000000],PARAMETER[\"false_northing\",1000000],UNIT[\"US "); add_srs_wkt (p, 13, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 14, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 15, "SG\",\"6428\"]]"); p = add_epsg_def_ex (filter, first, last, 6429, "epsg", 6429, "NAD83(2011) / Colorado North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666"); add_proj4text (p, 1, "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Colorado North\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",40.7833"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"standard_parallel_2\",39.7166666"); add_srs_wkt (p, 10, "6666667],PARAMETER[\"latitude_of_origin\",39.33333333333"); add_srs_wkt (p, 11, "334],PARAMETER[\"central_meridian\",-105.5],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",914401.8289],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",304800.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 14, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 15, "\",\"6429\"]]"); p = add_epsg_def_ex (filter, first, last, 6430, "epsg", 6430, "NAD83(2011) / Colorado North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666"); add_proj4text (p, 1, "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "288036576 +y_0=304800.6096012192 +ellps=GRS80 +units=us-"); add_proj4text (p, 3, "ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Colorado North (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",40.78333333333333],PARAMETER[\"standard_parallel_2\",39"); add_srs_wkt (p, 10, ".71666666666667],PARAMETER[\"latitude_of_origin\",39.333"); add_srs_wkt (p, 11, "33333333334],PARAMETER[\"central_meridian\",-105.5],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",3000000],PARAMETER[\"false_north"); add_srs_wkt (p, 13, "ing\",1000000],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 14, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 15, "Y\",NORTH],AUTHORITY[\"EPSG\",\"6430\"]]"); p = add_epsg_def_ex (filter, first, last, 6431, "epsg", 6431, "NAD83(2011) / Colorado South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Colorado South\",GEOGCS[\"NAD83(2"); add_srs_wkt (p, 1, "011)\",DATUM[\"NAD83_National_Spatial_Reference_System_2"); add_srs_wkt (p, 2, "011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",38.4333"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"standard_parallel_2\",37.2333333"); add_srs_wkt (p, 10, "3333333],PARAMETER[\"latitude_of_origin\",36.66666666666"); add_srs_wkt (p, 11, "666],PARAMETER[\"central_meridian\",-105.5],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",914401.8289],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",304800.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 14, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 15, "\",\"6431\"]]"); p = add_epsg_def_ex (filter, first, last, 6432, "epsg", 6432, "NAD83(2011) / Colorado South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "288036576 +y_0=304800.6096012192 +ellps=GRS80 +units=us-"); add_proj4text (p, 3, "ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Colorado South (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_"); add_srs_wkt (p, 8, "Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",38.43333333333333],PARAMETER[\"standard_parallel_2\",37"); add_srs_wkt (p, 10, ".23333333333333],PARAMETER[\"latitude_of_origin\",36.666"); add_srs_wkt (p, 11, "66666666666],PARAMETER[\"central_meridian\",-105.5],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",3000000],PARAMETER[\"false_north"); add_srs_wkt (p, 13, "ing\",1000000],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 14, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 15, "Y\",NORTH],AUTHORITY[\"EPSG\",\"6432\"]]"); p = add_epsg_def_ex (filter, first, last, 6433, "epsg", 6433, "NAD83(2011) / Connecticut", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, ".83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=1524"); add_proj4text (p, 2, "00.3048 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Connecticut\",GEOGCS[\"NAD83(2011"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_National_Spatial_Reference_System_2011"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal_"); add_srs_wkt (p, 8, "Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.866666"); add_srs_wkt (p, 9, "66666667],PARAMETER[\"standard_parallel_2\",41.2],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",40.83333333333334],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-72.75],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",304800.6096],PARAMETER[\"false_northing\",152400.3048],"); add_srs_wkt (p, 13, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6433\"]]"); p = add_epsg_def_ex (filter, first, last, 6434, "epsg", 6434, "NAD83(2011) / Connecticut (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, ".83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_"); add_proj4text (p, 2, "0=152400.3048006096 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Connecticut (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41"); add_srs_wkt (p, 9, ".86666666666667],PARAMETER[\"standard_parallel_2\",41.2]"); add_srs_wkt (p, 10, ",PARAMETER[\"latitude_of_origin\",40.83333333333334],PAR"); add_srs_wkt (p, 11, "AMETER[\"central_meridian\",-72.75],PARAMETER[\"false_ea"); add_srs_wkt (p, 12, "sting\",1000000],PARAMETER[\"false_northing\",500000],UN"); add_srs_wkt (p, 13, "IT[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 15, "ITY[\"EPSG\",\"6434\"]]"); p = add_epsg_def_ex (filter, first, last, 6435, "epsg", 6435, "NAD83(2011) / Delaware", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, "995 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Delaware\",GEOGCS[\"NAD83(2011)\""); add_srs_wkt (p, 1, ",DATUM[\"NAD83_National_Spatial_Reference_System_2011\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",38],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",-75.41666666666667],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",0.999995],PARAMETER[\"false_easting\",200000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"6435\"]]"); p = add_epsg_def_ex (filter, first, last, 6436, "epsg", 6436, "NAD83(2011) / Delaware (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, "995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units=us"); add_proj4text (p, 2, "-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Delaware (ftUS)\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",38],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",-75.41666666666667],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",0.999995],PARAMETER[\"false_easting\",656166"); add_srs_wkt (p, 11, ".667],PARAMETER[\"false_northing\",0],UNIT[\"US survey f"); add_srs_wkt (p, 12, "oot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],A"); add_srs_wkt (p, 13, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 14, "436\"]]"); p = add_epsg_def_ex (filter, first, last, 6437, "epsg", 6437, "NAD83(2011) / Florida East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Florida East\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",24.33333333333333"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-81],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.999941177],PARAMETER[\"false_easting\",200000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"6437\"]]"); p = add_epsg_def_ex (filter, first, last, 6438, "epsg", 6438, "NAD83(2011) / Florida East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units"); add_proj4text (p, 2, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Florida East (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",24.3333333"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"central_meridian\",-81],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.999941177],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "656166.667],PARAMETER[\"false_northing\",0],UNIT[\"US su"); add_srs_wkt (p, 12, "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"6438\"]]"); p = add_epsg_def_ex (filter, first, last, 6439, "epsg", 6439, "NAD83(2011) / Florida GDL Albers", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_"); add_proj4text (p, 1, "0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Florida GDL Albers\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Albers_Coni"); add_srs_wkt (p, 8, "c_Equal_Area\"],PARAMETER[\"standard_parallel_1\",24],PA"); add_srs_wkt (p, 9, "RAMETER[\"standard_parallel_2\",31.5],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_center\",24],PARAMETER[\"longitude_of_center\",-84"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",400000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"6439\"]]"); p = add_epsg_def_ex (filter, first, last, 6440, "epsg", 6440, "NAD83(2011) / Florida North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Florida North\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",30.75],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",29.58333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",29],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-84.5],PARAMETER[\"false_easting\",600000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"6440\"]]"); p = add_epsg_def_ex (filter, first, last, 6441, "epsg", 6441, "NAD83(2011) / Florida North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us"); add_proj4text (p, 2, "-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Florida North (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 9, "0.75],PARAMETER[\"standard_parallel_2\",29.5833333333333"); add_srs_wkt (p, 10, "3],PARAMETER[\"latitude_of_origin\",29],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-84.5],PARAMETER[\"false_easting\",196850"); add_srs_wkt (p, 12, "0],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot"); add_srs_wkt (p, 13, "\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS"); add_srs_wkt (p, 14, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6441"); add_srs_wkt (p, 15, "\"]]"); p = add_epsg_def_ex (filter, first, last, 6442, "epsg", 6442, "NAD83(2011) / Florida West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Florida West\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",24.33333333333333"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-82],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.999941177],PARAMETER[\"false_easting\",200000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"6442\"]]"); p = add_epsg_def_ex (filter, first, last, 6443, "epsg", 6443, "NAD83(2011) / Florida West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units"); add_proj4text (p, 2, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Florida West (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",24.3333333"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"central_meridian\",-82],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.999941177],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "656166.667],PARAMETER[\"false_northing\",0],UNIT[\"US su"); add_srs_wkt (p, 12, "rvey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"6443\"]]"); p = add_epsg_def_ex (filter, first, last, 6444, "epsg", 6444, "NAD83(2011) / Georgia East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Georgia East\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-82.16666666666667],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",200000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"6444\"]]"); p = add_epsg_def_ex (filter, first, last, 6445, "epsg", 6445, "NAD83(2011) / Georgia East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units=us-f"); add_proj4text (p, 2, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Georgia East (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",30],PARAME"); add_srs_wkt (p, 9, "TER[\"central_meridian\",-82.16666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.9999],PARAMETER[\"false_easting\",65616"); add_srs_wkt (p, 11, "6.667],PARAMETER[\"false_northing\",0],UNIT[\"US survey "); add_srs_wkt (p, 12, "foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],"); add_srs_wkt (p, 13, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "6445\"]]"); p = add_epsg_def_ex (filter, first, last, 6446, "epsg", 6446, "NAD83(2011) / Georgia West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Georgia West\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",30],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-84.16666666666667],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",700000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"6446\"]]"); p = add_epsg_def_ex (filter, first, last, 6447, "epsg", 6447, "NAD83(2011) / Georgia West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +units=us-f"); add_proj4text (p, 2, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Georgia West (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",30],PARAME"); add_srs_wkt (p, 9, "TER[\"central_meridian\",-84.16666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.9999],PARAMETER[\"false_easting\",22965"); add_srs_wkt (p, 11, "83.333],PARAMETER[\"false_northing\",0],UNIT[\"US survey"); add_srs_wkt (p, 12, " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); add_srs_wkt (p, 13, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "6447\"]]"); p = add_epsg_def_ex (filter, first, last, 6448, "epsg", 6448, "NAD83(2011) / Idaho Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, "99473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Idaho Central\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",41.66666666666666"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-114],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.999947368],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 13, "RTH],AUTHORITY[\"EPSG\",\"6448\"]]"); p = add_epsg_def_ex (filter, first, last, 6449, "epsg", 6449, "NAD83(2011) / Idaho Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, "99473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, "0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Idaho Central (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",41.6666666"); add_srs_wkt (p, 9, "6666666],PARAMETER[\"central_meridian\",-114],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",0.999947368],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",1640416.667],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 12, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"6449\"]]"); p = add_epsg_def_ex (filter, first, last, 6450, "epsg", 6450, "NAD83(2011) / Idaho East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, "666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Idaho East\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",41.66666666666666],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",-112.1666666666667],PARAMETE"); add_srs_wkt (p, 10, "R[\"scale_factor\",0.999947368],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",200000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6450\"]]"); p = add_epsg_def_ex (filter, first, last, 6451, "epsg", 6451, "NAD83(2011) / Idaho East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, "666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Idaho East (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",41.666666666"); add_srs_wkt (p, 9, "66666],PARAMETER[\"central_meridian\",-112.1666666666667"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.999947368],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",656166.667],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 12, "],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"6451\"]]"); p = add_epsg_def_ex (filter, first, last, 6452, "epsg", 6452, "NAD83(2011) / Idaho West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, ".999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Idaho West\",GEOGCS[\"NAD83(2011)"); add_srs_wkt (p, 1, "\",DATUM[\"NAD83_National_Spatial_Reference_System_2011\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",41.66666666666666],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",-115.75],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.999933333],PARAMETER[\"false_easting\",800000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"6452\"]]"); p = add_epsg_def_ex (filter, first, last, 6453, "epsg", 6453, "NAD83(2011) / Idaho West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, ".999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +u"); add_proj4text (p, 2, "nits=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Idaho West (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",41.666666666"); add_srs_wkt (p, 9, "66666],PARAMETER[\"central_meridian\",-115.75],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.999933333],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",2624666.667],PARAMETER[\"false_northing\",0],UNIT[\"U"); add_srs_wkt (p, 12, "S survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"6453\"]]"); p = add_epsg_def_ex (filter, first, last, 6454, "epsg", 6454, "NAD83(2011) / Illinois East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, "333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Illinois East\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",36.66666666666666"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-88.33333333333333],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.999975],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",300000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6454\"]]"); p = add_epsg_def_ex (filter, first, last, 6455, "epsg", 6455, "NAD83(2011) / Illinois East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, "333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Illinois East (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",36.6666666"); add_srs_wkt (p, 9, "6666666],PARAMETER[\"central_meridian\",-88.333333333333"); add_srs_wkt (p, 10, "33],PARAMETER[\"scale_factor\",0.999975],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",984250.0000000002],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"6455\"]]"); p = add_epsg_def_ex (filter, first, last, 6456, "epsg", 6456, "NAD83(2011) / Illinois West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, "666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Illinois West\",GEOGCS[\"NAD83(20"); add_srs_wkt (p, 1, "11)\",DATUM[\"NAD83_National_Spatial_Reference_System_20"); add_srs_wkt (p, 2, "11\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",36.66666666666666"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-90.16666666666667],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.999941177],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",700000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6456\"]]"); p = add_epsg_def_ex (filter, first, last, 6457, "epsg", 6457, "NAD83(2011) / Illinois West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, "666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ell"); add_proj4text (p, 2, "ps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Illinois West (ftUS)\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",36.6666666"); add_srs_wkt (p, 9, "6666666],PARAMETER[\"central_meridian\",-90.166666666666"); add_srs_wkt (p, 10, "67],PARAMETER[\"scale_factor\",0.999941177],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",2296583.333300001],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 14, "NORTH],AUTHORITY[\"EPSG\",\"6457\"]]"); p = add_epsg_def_ex (filter, first, last, 6458, "epsg", 6458, "NAD83(2011) / Indiana East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Indiana East\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",37.5],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-85.66666666666667],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.999966667],PARAMETER[\"false_easting\",10000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",250000],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"6458\"]]"); p = add_epsg_def_ex (filter, first, last, 6459, "epsg", 6459, "NAD83(2011) / Indiana East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +"); add_proj4text (p, 2, "ellps=GRS80 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Indiana East (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",37.5],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-85.66666666666667],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.999966667],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",328083.333],PARAMETER[\"false_northing\",820208.33300"); add_srs_wkt (p, 12, "00002],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"6459\"]]"); p = add_epsg_def_ex (filter, first, last, 6460, "epsg", 6460, "NAD83(2011) / Indiana West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Indiana West\",GEOGCS[\"NAD83(201"); add_srs_wkt (p, 1, "1)\",DATUM[\"NAD83_National_Spatial_Reference_System_201"); add_srs_wkt (p, 2, "1\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",37.5],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-87.08333333333333],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.999966667],PARAMETER[\"false_easting\",90000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",250000],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"6460\"]]"); p = add_epsg_def_ex (filter, first, last, 6461, "epsg", 6461, "NAD83(2011) / Indiana West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Indiana West (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",37.5],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",-87.08333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.999966667],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",2952750],PARAMETER[\"false_northing\",820208.33300000"); add_srs_wkt (p, 12, "02],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"6461\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ��������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_01.c��������������������������������������������������0000664�0001750�0001750�00000547603�12544707704�017047� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_01 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 2101, "epsg", 2101, "Lake / Maracaibo Grid M1", 0, 0, "International 1924", "Greenwich", "Lake", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666"); add_proj4text (p, 1, "667 +lon_0=-71.60561777777777 +k_0=1 +x_0=0 +y_0=-52684."); add_proj4text (p, 2, "972 +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Lake / Maracaibo Grid M1\",GEOGCS[\"Lake\",DATU"); add_srs_wkt (p, 1, "M[\"Lake\",SPHEROID[\"International 1924\",6378388,297,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\",\"6249\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4249\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, "nformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",10"); add_srs_wkt (p, 8, ".16666666666667],PARAMETER[\"central_meridian\",-71.6056"); add_srs_wkt (p, 9, "1777777777],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",0],PARAMETER[\"false_northing\",-52684.972"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2101\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 2102, "epsg", 2102, "Lake / Maracaibo Grid", 0, 0, "International 1924", "Greenwich", "Lake", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666"); add_proj4text (p, 1, "667 +lon_0=-71.60561777777777 +k_0=1 +x_0=200000 +y_0=14"); add_proj4text (p, 2, "7315.028 +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Lake / Maracaibo Grid\",GEOGCS[\"Lake\",DATUM[\""); add_srs_wkt (p, 1, "Lake\",SPHEROID[\"International 1924\",6378388,297,AUTHO"); add_srs_wkt (p, 2, "RITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\",\"6249\"]],P"); add_srs_wkt (p, 3, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 4, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 5, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"4249\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 7, "mal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",10.166"); add_srs_wkt (p, 8, "66666666667],PARAMETER[\"central_meridian\",-71.60561777"); add_srs_wkt (p, 9, "777777],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_"); add_srs_wkt (p, 10, "easting\",200000],PARAMETER[\"false_northing\",147315.02"); add_srs_wkt (p, 11, "8],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2102\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 2103, "epsg", 2103, "Lake / Maracaibo Grid M3", 0, 0, "International 1924", "Greenwich", "Lake", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666"); add_proj4text (p, 1, "667 +lon_0=-71.60561777777777 +k_0=1 +x_0=500000 +y_0=44"); add_proj4text (p, 2, "7315.028 +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Lake / Maracaibo Grid M3\",GEOGCS[\"Lake\",DATU"); add_srs_wkt (p, 1, "M[\"Lake\",SPHEROID[\"International 1924\",6378388,297,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\",\"6249\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4249\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 7, "nformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\",10"); add_srs_wkt (p, 8, ".16666666666667],PARAMETER[\"central_meridian\",-71.6056"); add_srs_wkt (p, 9, "1777777777],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",500000],PARAMETER[\"false_northing\",44731"); add_srs_wkt (p, 11, "5.028],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"21"); add_srs_wkt (p, 13, "03\"]]"); p = add_epsg_def_ex (filter, first, last, 2104, "epsg", 2104, "Lake / Maracaibo La Rosa Grid", 0, 0, "International 1924", "Greenwich", "Lake", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666"); add_proj4text (p, 1, "667 +lon_0=-71.60561777777777 +k_0=1 +x_0=-17044 +y_0=-2"); add_proj4text (p, 2, "3139.97 +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Lake / Maracaibo La Rosa Grid\",GEOGCS[\"Lake\""); add_srs_wkt (p, 1, ",DATUM[\"Lake\",SPHEROID[\"International 1924\",6378388,"); add_srs_wkt (p, 2, "297,AUTHORITY[\"EPSG\",\"7022\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "249\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4249\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 8, ",10.16666666666667],PARAMETER[\"central_meridian\",-71.6"); add_srs_wkt (p, 9, "0561777777777],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",-17044],PARAMETER[\"false_northing\",-23"); add_srs_wkt (p, 11, "139.97],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 13, "104\"]]"); p = add_epsg_def_ex (filter, first, last, 2105, "epsg", 2105, "NZGD2000 / Mount Eden 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-36.87972222222222 +lon_0=174.7641666"); add_proj4text (p, 1, "666667 +k=0.9999 +x_0=400000 +y_0=800000 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Mount Eden 2000\",GEOGCS[\"NZGD2000\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",-36.8797222"); add_srs_wkt (p, 9, "2222222],PARAMETER[\"central_meridian\",174.764166666666"); add_srs_wkt (p, 10, "7],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",400000],PARAMETER[\"false_northing\",800000],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nor"); add_srs_wkt (p, 13, "thing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"2105\"]]"); p = add_epsg_def_ex (filter, first, last, 2106, "epsg", 2106, "NZGD2000 / Bay of Plenty 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-37.76111111111111 +lon_0=176.4661111"); add_proj4text (p, 1, "111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Bay of Plenty 2000\",GEOGCS[\"NZGD20"); add_srs_wkt (p, 1, "00\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"616"); add_srs_wkt (p, 4, "7\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",-37.761"); add_srs_wkt (p, 9, "11111111111],PARAMETER[\"central_meridian\",176.46611111"); add_srs_wkt (p, 10, "11111],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",400000],PARAMETER[\"false_northing\",800000],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort"); add_srs_wkt (p, 13, "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"2106\"]]"); p = add_epsg_def_ex (filter, first, last, 2107, "epsg", 2107, "NZGD2000 / Poverty Bay 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-38.62444444444444 +lon_0=177.8855555"); add_proj4text (p, 1, "555556 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Poverty Bay 2000\",GEOGCS[\"NZGD2000"); add_srs_wkt (p, 1, "\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",-38.624444"); add_srs_wkt (p, 9, "44444444],PARAMETER[\"central_meridian\",177.88555555555"); add_srs_wkt (p, 10, "56],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",400000],PARAMETER[\"false_northing\",800000],UNIT["); add_srs_wkt (p, 12, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northin"); add_srs_wkt (p, 13, "g\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 14, "107\"]]"); p = add_epsg_def_ex (filter, first, last, 2108, "epsg", 2108, "NZGD2000 / Hawkes Bay 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-39.65083333333333 +lon_0=176.6736111"); add_proj4text (p, 1, "111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Hawkes Bay 2000\",GEOGCS[\"NZGD2000\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",-39.6508333"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"central_meridian\",176.673611111111"); add_srs_wkt (p, 10, "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",400000],PARAMETER[\"false_northing\",800000],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2108"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2109, "epsg", 2109, "NZGD2000 / Taranaki 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-39.13555555555556 +lon_0=174.2277777"); add_proj4text (p, 1, "777778 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Taranaki 2000\",GEOGCS[\"NZGD2000\","); add_srs_wkt (p, 1, "DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",-39.135555555"); add_srs_wkt (p, 9, "55556],PARAMETER[\"central_meridian\",174.2277777777778]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",400000],PARAMETER[\"false_northing\",800000],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2109"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2110, "epsg", 2110, "NZGD2000 / Tuhirangi 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-39.51222222222222 +lon_0=175.64 +k=1"); add_proj4text (p, 1, " +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Tuhirangi 2000\",GEOGCS[\"NZGD2000\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",-39.5122222"); add_srs_wkt (p, 9, "2222222],PARAMETER[\"central_meridian\",175.64],PARAMETE"); add_srs_wkt (p, 10, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",400000"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",800000],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 13, "XIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2110\"]]"); p = add_epsg_def_ex (filter, first, last, 2111, "epsg", 2111, "NZGD2000 / Wanganui 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-40.24194444444444 +lon_0=175.4880555"); add_proj4text (p, 1, "555555 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Wanganui 2000\",GEOGCS[\"NZGD2000\","); add_srs_wkt (p, 1, "DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",-40.241944444"); add_srs_wkt (p, 9, "44444],PARAMETER[\"central_meridian\",175.4880555555555]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",400000],PARAMETER[\"false_northing\",800000],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2111"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2112, "epsg", 2112, "NZGD2000 / Wairarapa 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-40.92527777777777 +lon_0=175.6472222"); add_proj4text (p, 1, "222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Wairarapa 2000\",GEOGCS[\"NZGD2000\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",-40.9252777"); add_srs_wkt (p, 9, "7777777],PARAMETER[\"central_meridian\",175.647222222222"); add_srs_wkt (p, 10, "2],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",400000],PARAMETER[\"false_northing\",800000],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2112"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2113, "epsg", 2113, "NZGD2000 / Wellington 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.3011111111111 +lon_0=174.77638888"); add_proj4text (p, 1, "88889 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Wellington 2000\",GEOGCS[\"NZGD2000\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",-41.3011111"); add_srs_wkt (p, 9, "111111],PARAMETER[\"central_meridian\",174.7763888888889"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",400000],PARAMETER[\"false_northing\",800000],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2113"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2114, "epsg", 2114, "NZGD2000 / Collingwood 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-40.71472222222223 +lon_0=172.6719444"); add_proj4text (p, 1, "444444 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Collingwood 2000\",GEOGCS[\"NZGD2000"); add_srs_wkt (p, 1, "\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",-40.714722"); add_srs_wkt (p, 9, "22222223],PARAMETER[\"central_meridian\",172.67194444444"); add_srs_wkt (p, 10, "44],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",400000],PARAMETER[\"false_northing\",800000],UNIT["); add_srs_wkt (p, 12, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northin"); add_srs_wkt (p, 13, "g\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 14, "114\"]]"); p = add_epsg_def_ex (filter, first, last, 2115, "epsg", 2115, "NZGD2000 / Nelson 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.27444444444444 +lon_0=173.2991666"); add_proj4text (p, 1, "666667 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Nelson 2000\",GEOGCS[\"NZGD2000\",DA"); add_srs_wkt (p, 1, "TUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",-41.2744444444"); add_srs_wkt (p, 9, "4444],PARAMETER[\"central_meridian\",173.2991666666667],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",400000],PARAMETER[\"false_northing\",800000],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2115\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 2116, "epsg", 2116, "NZGD2000 / Karamea 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.28972222222222 +lon_0=172.1088888"); add_proj4text (p, 1, "888889 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Karamea 2000\",GEOGCS[\"NZGD2000\",D"); add_srs_wkt (p, 1, "ATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",-41.289722222"); add_srs_wkt (p, 9, "22222],PARAMETER[\"central_meridian\",172.1088888888889]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",400000],PARAMETER[\"false_northing\",800000],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2116"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2117, "epsg", 2117, "NZGD2000 / Buller 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.81055555555555 +lon_0=171.5811111"); add_proj4text (p, 1, "111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Buller 2000\",GEOGCS[\"NZGD2000\",DA"); add_srs_wkt (p, 1, "TUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",-41.8105555555"); add_srs_wkt (p, 9, "5555],PARAMETER[\"central_meridian\",171.5811111111111],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",400000],PARAMETER[\"false_northing\",800000],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2117\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 2118, "epsg", 2118, "NZGD2000 / Grey 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-42.33361111111111 +lon_0=171.5497222"); add_proj4text (p, 1, "222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Grey 2000\",GEOGCS[\"NZGD2000\",DATU"); add_srs_wkt (p, 1, "M[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 2, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 3, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",-42.3336111111111"); add_srs_wkt (p, 9, "1],PARAMETER[\"central_meridian\",171.5497222222222],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",1],PARAMETER[\"false_easting\",4"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",800000],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 13, "TH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2118\"]]"); p = add_epsg_def_ex (filter, first, last, 2119, "epsg", 2119, "NZGD2000 / Amuri 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-42.68888888888888 +lon_0=173.01 +k=1"); add_proj4text (p, 1, " +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Amuri 2000\",GEOGCS[\"NZGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",-42.688888888888"); add_srs_wkt (p, 9, "88],PARAMETER[\"central_meridian\",173.01],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",400000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",800000],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Easting\",EAST],AUTHORITY[\"EPSG\",\"2119\"]]"); p = add_epsg_def_ex (filter, first, last, 2120, "epsg", 2120, "NZGD2000 / Marlborough 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.54444444444444 +lon_0=173.8019444"); add_proj4text (p, 1, "444444 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Marlborough 2000\",GEOGCS[\"NZGD2000"); add_srs_wkt (p, 1, "\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",-41.544444"); add_srs_wkt (p, 9, "44444444],PARAMETER[\"central_meridian\",173.80194444444"); add_srs_wkt (p, 10, "44],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",400000],PARAMETER[\"false_northing\",800000],UNIT["); add_srs_wkt (p, 12, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northin"); add_srs_wkt (p, 13, "g\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 14, "120\"]]"); p = add_epsg_def_ex (filter, first, last, 2121, "epsg", 2121, "NZGD2000 / Hokitika 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-42.88611111111111 +lon_0=170.9797222"); add_proj4text (p, 1, "222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Hokitika 2000\",GEOGCS[\"NZGD2000\","); add_srs_wkt (p, 1, "DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",-42.886111111"); add_srs_wkt (p, 9, "11111],PARAMETER[\"central_meridian\",170.9797222222222]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",400000],PARAMETER[\"false_northing\",800000],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2121"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2122, "epsg", 2122, "NZGD2000 / Okarito 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-43.11 +lon_0=170.2608333333333 +k=1 "); add_proj4text (p, 1, "+x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Okarito 2000\",GEOGCS[\"NZGD2000\",D"); add_srs_wkt (p, 1, "ATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",-43.11],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",170.2608333333333],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",400000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",800000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2122\"]]"); p = add_epsg_def_ex (filter, first, last, 2123, "epsg", 2123, "NZGD2000 / Jacksons Bay 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-43.97777777777778 +lon_0=168.6061111"); add_proj4text (p, 1, "111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Jacksons Bay 2000\",GEOGCS[\"NZGD200"); add_srs_wkt (p, 1, "0\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",-43.977777"); add_srs_wkt (p, 9, "77777778],PARAMETER[\"central_meridian\",168.60611111111"); add_srs_wkt (p, 10, "11],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",400000],PARAMETER[\"false_northing\",800000],UNIT["); add_srs_wkt (p, 12, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northin"); add_srs_wkt (p, 13, "g\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 14, "123\"]]"); p = add_epsg_def_ex (filter, first, last, 2124, "epsg", 2124, "NZGD2000 / Mount Pleasant 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-43.59055555555556 +lon_0=172.7269444"); add_proj4text (p, 1, "444445 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Mount Pleasant 2000\",GEOGCS[\"NZGD2"); add_srs_wkt (p, 1, "000\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"616"); add_srs_wkt (p, 4, "7\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",-43.590"); add_srs_wkt (p, 9, "55555555556],PARAMETER[\"central_meridian\",172.72694444"); add_srs_wkt (p, 10, "44445],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",400000],PARAMETER[\"false_northing\",800000],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort"); add_srs_wkt (p, 13, "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"2124\"]]"); p = add_epsg_def_ex (filter, first, last, 2125, "epsg", 2125, "NZGD2000 / Gawler 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-43.74861111111111 +lon_0=171.3605555"); add_proj4text (p, 1, "555555 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Gawler 2000\",GEOGCS[\"NZGD2000\",DA"); add_srs_wkt (p, 1, "TUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",-43.7486111111"); add_srs_wkt (p, 9, "1111],PARAMETER[\"central_meridian\",171.3605555555555],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",400000],PARAMETER[\"false_northing\",800000],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2125\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 2126, "epsg", 2126, "NZGD2000 / Timaru 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-44.40194444444445 +lon_0=171.0572222"); add_proj4text (p, 1, "222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Timaru 2000\",GEOGCS[\"NZGD2000\",DA"); add_srs_wkt (p, 1, "TUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",-44.4019444444"); add_srs_wkt (p, 9, "4445],PARAMETER[\"central_meridian\",171.0572222222222],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",400000],PARAMETER[\"false_northing\",800000],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2126\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 2127, "epsg", 2127, "NZGD2000 / Lindis Peak 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-44.735 +lon_0=169.4675 +k=1 +x_0=400"); add_proj4text (p, 1, "000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Lindis Peak 2000\",GEOGCS[\"NZGD2000"); add_srs_wkt (p, 1, "\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",-44.735],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",169.4675],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",1],PARAMETER[\"false_easting\",400000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",800000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Ea"); add_srs_wkt (p, 13, "sting\",EAST],AUTHORITY[\"EPSG\",\"2127\"]]"); p = add_epsg_def_ex (filter, first, last, 2128, "epsg", 2128, "NZGD2000 / Mount Nicholas 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-45.13277777777778 +lon_0=168.3986111"); add_proj4text (p, 1, "111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Mount Nicholas 2000\",GEOGCS[\"NZGD2"); add_srs_wkt (p, 1, "000\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"616"); add_srs_wkt (p, 4, "7\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",-45.132"); add_srs_wkt (p, 9, "77777777778],PARAMETER[\"central_meridian\",168.39861111"); add_srs_wkt (p, 10, "11111],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",400000],PARAMETER[\"false_northing\",800000],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort"); add_srs_wkt (p, 13, "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"2128\"]]"); p = add_epsg_def_ex (filter, first, last, 2129, "epsg", 2129, "NZGD2000 / Mount York 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-45.56361111111111 +lon_0=167.7386111"); add_proj4text (p, 1, "111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Mount York 2000\",GEOGCS[\"NZGD2000\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",-45.5636111"); add_srs_wkt (p, 9, "1111111],PARAMETER[\"central_meridian\",167.738611111111"); add_srs_wkt (p, 10, "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",400000],PARAMETER[\"false_northing\",800000],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2129"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2130, "epsg", 2130, "NZGD2000 / Observation Point 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-45.81611111111111 +lon_0=170.6283333"); add_proj4text (p, 1, "333333 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Observation Point 2000\",GEOGCS[\"NZ"); add_srs_wkt (p, 1, "GD2000\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6167\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",-45."); add_srs_wkt (p, 9, "81611111111111],PARAMETER[\"central_meridian\",170.62833"); add_srs_wkt (p, 10, "33333333],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",400000],PARAMETER[\"false_northing\",800000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"N"); add_srs_wkt (p, 13, "orthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"2130\"]]"); p = add_epsg_def_ex (filter, first, last, 2131, "epsg", 2131, "NZGD2000 / North Taieri 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-45.86138888888889 +lon_0=170.2825 +k"); add_proj4text (p, 1, "=0.99996 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 2, ",0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / North Taieri 2000\",GEOGCS[\"NZGD200"); add_srs_wkt (p, 1, "0\",DATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",-45.861388"); add_srs_wkt (p, 9, "88888889],PARAMETER[\"central_meridian\",170.2825],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",0.99996],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",400000],PARAMETER[\"false_northing\",800000],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2131"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2132, "epsg", 2132, "NZGD2000 / Bluff 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-46.6 +lon_0=168.3427777777778 +k=1 +"); add_proj4text (p, 1, "x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / Bluff 2000\",GEOGCS[\"NZGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",-46.6],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",168.3427777777778],PARAMETER[\"sca"); add_srs_wkt (p, 10, "le_factor\",1],PARAMETER[\"false_easting\",400000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",800000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AUTHORITY[\"EPSG\",\"2132\"]]"); p = add_epsg_def_ex (filter, first, last, 2133, "epsg", 2133, "NZGD2000 / UTM zone 58S", 0, 0, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / UTM zone 58S\",GEOGCS[\"NZGD2000\",D"); add_srs_wkt (p, 1, "ATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",165],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"2133\"]]"); p = add_epsg_def_ex (filter, first, last, 2134, "epsg", 2134, "NZGD2000 / UTM zone 59S", 0, 0, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / UTM zone 59S\",GEOGCS[\"NZGD2000\",D"); add_srs_wkt (p, 1, "ATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",171],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"2134\"]]"); p = add_epsg_def_ex (filter, first, last, 2135, "epsg", 2135, "NZGD2000 / UTM zone 60S", 0, 0, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=60 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / UTM zone 60S\",GEOGCS[\"NZGD2000\",D"); add_srs_wkt (p, 1, "ATUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",177],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"2135\"]]"); p = add_epsg_def_ex (filter, first, last, 2136, "epsg", 2136, "Accra / Ghana National Grid", 0, 0, "War Office", "Greenwich", "Accra", "Transverse_Mercator", "Gold Coast foot", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.666666666666667 +lon_0=-1 +k=0.9997"); add_proj4text (p, 1, "5 +x_0=274319.7391633579 +y_0=0 +a=6378300 +b=6356751.68"); add_proj4text (p, 2, "9189189 +towgs84=-199,32,322,0,0,0,0 +to_meter=0.3047997"); add_proj4text (p, 3, "101815088 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Accra / Ghana National Grid\",GEOGCS[\"Accra\","); add_srs_wkt (p, 1, "DATUM[\"Accra\",SPHEROID[\"War Office\",6378300,296,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7029\"]],TOWGS84[-199,32,322,0,0,0,0],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6168\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4168\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",4.666666666666667],PARAMETER[\"central_m"); add_srs_wkt (p, 9, "eridian\",-1],PARAMETER[\"scale_factor\",0.99975],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",900000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"Gold Coast foot\",0.3047997101815088,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9094\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"2136\"]]"); p = add_epsg_def_ex (filter, first, last, 2137, "epsg", 2137, "Accra / TM 1 NW", 0, 0, "War Office", "Greenwich", "Accra", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-1 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +a=6378300 +b=6356751.689189189 +towgs84=-199,32,322"); add_proj4text (p, 2, ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Accra / TM 1 NW\",GEOGCS[\"Accra\",DATUM[\"Accr"); add_srs_wkt (p, 1, "a\",SPHEROID[\"War Office\",6378300,296,AUTHORITY[\"EPSG"); add_srs_wkt (p, 2, "\",\"7029\"]],TOWGS84[-199,32,322,0,0,0,0],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6168\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 6, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4168\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 8, "n\",0],PARAMETER[\"central_meridian\",-1],PARAMETER[\"sc"); add_srs_wkt (p, 9, "ale_factor\",0.9996],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 11, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 12, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"2137\"]]"); p = add_epsg_def_ex (filter, first, last, 2138, "epsg", 2138, "NAD27(CGQ77) / Quebec Lambert", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927_CGQ77", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_"); add_proj4text (p, 1, "0=0 +y_0=0 +ellps=clrk66 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27(CGQ77) / Quebec Lambert\",GEOGCS[\"NAD27("); add_srs_wkt (p, 1, "CGQ77)\",DATUM[\"North_American_Datum_1927_CGQ77\",SPHER"); add_srs_wkt (p, 2, "OID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6609\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4609\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",60],PARA"); add_srs_wkt (p, 9, "METER[\"standard_parallel_2\",46],PARAMETER[\"latitude_o"); add_srs_wkt (p, 10, "f_origin\",44],PARAMETER[\"central_meridian\",-68.5],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2138\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 2139, "epsg", 2139, "NAD83(CSRS98) / SCoPQ zone 2 (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / SCoPQ zone 2 (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4140"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-55."); add_srs_wkt (p, 10, "5],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",304800],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2139\"]]"); p = add_epsg_def_ex (filter, first, last, 2140, "epsg", 2140, "NAD83(CSRS98) / MTM zone 3 (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / MTM zone 3 (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4140\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-58.5]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",304800],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2140\"]]"); p = add_epsg_def_ex (filter, first, last, 2141, "epsg", 2141, "NAD83(CSRS98) / MTM zone 4 (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / MTM zone 4 (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4140\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-61.5]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",304800],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2141\"]]"); p = add_epsg_def_ex (filter, first, last, 2142, "epsg", 2142, "NAD83(CSRS98) / MTM zone 5 (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / MTM zone 5 (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4140\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-64.5]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",304800],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2142\"]]"); p = add_epsg_def_ex (filter, first, last, 2143, "epsg", 2143, "NAD83(CSRS98) / MTM zone 6 (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / MTM zone 6 (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4140\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-67.5]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",304800],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2143\"]]"); p = add_epsg_def_ex (filter, first, last, 2144, "epsg", 2144, "NAD83(CSRS98) / MTM zone 7 (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / MTM zone 7 (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4140\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-70.5]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",304800],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2144\"]]"); p = add_epsg_def_ex (filter, first, last, 2145, "epsg", 2145, "NAD83(CSRS98) / MTM zone 8 (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / MTM zone 8 (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4140\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-73.5]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",304800],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2145\"]]"); p = add_epsg_def_ex (filter, first, last, 2146, "epsg", 2146, "NAD83(CSRS98) / MTM zone 9 (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / MTM zone 9 (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4140\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-76.5]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",304800],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2146\"]]"); p = add_epsg_def_ex (filter, first, last, 2147, "epsg", 2147, "NAD83(CSRS98) / MTM zone 10 (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / MTM zone 10 (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4140\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-79.5]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",304800],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E(X)\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"2147\"]]"); p = add_epsg_def_ex (filter, first, last, 2148, "epsg", 2148, "NAD83(CSRS98) / UTM zone 21N (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / UTM zone 21N (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4140"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-57]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2148"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2149, "epsg", 2149, "NAD83(CSRS98) / UTM zone 18N (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / UTM zone 18N (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4140"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-75]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2149"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2150, "epsg", 2150, "NAD83(CSRS98) / UTM zone 17N (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / UTM zone 17N (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4140"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-81]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 11, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2150"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2151, "epsg", 2151, "NAD83(CSRS98) / UTM zone 13N (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / UTM zone 13N (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4140"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-105"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"215"); add_srs_wkt (p, 14, "1\"]]"); p = add_epsg_def_ex (filter, first, last, 2152, "epsg", 2152, "NAD83(CSRS98) / UTM zone 12N (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / UTM zone 12N (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4140"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-111"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"215"); add_srs_wkt (p, 14, "2\"]]"); p = add_epsg_def_ex (filter, first, last, 2153, "epsg", 2153, "NAD83(CSRS98) / UTM zone 11N (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS98) / UTM zone 11N (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(CSRS98)\",DATUM[\"NAD83_Canadian_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6140\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4140"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-117"); add_srs_wkt (p, 10, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"215"); add_srs_wkt (p, 14, "3\"]]"); p = add_epsg_def_ex (filter, first, last, 2154, "epsg", 2154, "RGF93 / Lambert-93", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_Francais_1993", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0="); add_proj4text (p, 1, "700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGF93 / Lambert-93\",GEOGCS[\"RGF93\",DATUM[\"R"); add_srs_wkt (p, 1, "eseau_Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",49],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_2\",44],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 10, "gin\",46.5],PARAMETER[\"central_meridian\",3],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",700000],PARAMETER[\"false_northing\",6"); add_srs_wkt (p, 12, "600000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 13, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 14, "154\"]]"); p = add_epsg_def_ex (filter, first, last, 2155, "epsg", 2155, "American Samoa 1962 / American Samoa Lambert (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "American_Samoa_1962", "Lambert_Conformal_Conic_1SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.266666666"); add_proj4text (p, 1, "66667 +lon_0=170 +k_0=1 +x_0=152400.3048006096 +y_0=0 +e"); add_proj4text (p, 2, "llps=clrk66 +towgs84=-115,118,426,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"American Samoa 1962 / American Samoa Lambert (d"); add_srs_wkt (p, 1, "eprecated)\",GEOGCS[\"American Samoa 1962\",DATUM[\"Amer"); add_srs_wkt (p, 2, "ican_Samoa_1962\",SPHEROID[\"Clarke 1866\",6378206.4,294"); add_srs_wkt (p, 3, ".9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-11"); add_srs_wkt (p, 4, "5,118,426,0,0,0,0],AUTHORITY[\"EPSG\",\"6169\"]],PRIMEM["); add_srs_wkt (p, 5, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 6, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 7, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 8, "TY[\"EPSG\",\"4169\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 9, "nic_1SP\"],PARAMETER[\"latitude_of_origin\",-14.26666666"); add_srs_wkt (p, 10, "666667],PARAMETER[\"central_meridian\",170],PARAMETER[\""); add_srs_wkt (p, 11, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 13, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2155\"]]"); p = add_epsg_def_ex (filter, first, last, 2156, "epsg", 2156, "NAD83(HARN) / UTM zone 59S (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 59S (deprecated)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_"); add_srs_wkt (p, 2, "Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",171],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2156"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2157, "epsg", 2157, "IRENET95 / Irish Transverse Mercator", 0, 0, "GRS 1980", "Greenwich", "IRENET95", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=0.99982 +x_0=600000"); add_proj4text (p, 1, " +y_0=750000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IRENET95 / Irish Transverse Mercator\",GEOGCS[\""); add_srs_wkt (p, 1, "IRENET95\",DATUM[\"IRENET95\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6173\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4173\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",53.5],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-8],PARAMETER[\"scale_factor\",0.99982],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",600000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",750000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2157\"]]"); p = add_epsg_def_ex (filter, first, last, 2158, "epsg", 2158, "IRENET95 / UTM zone 29N", 0, 0, "GRS 1980", "Greenwich", "IRENET95", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IRENET95 / UTM zone 29N\",GEOGCS[\"IRENET95\",D"); add_srs_wkt (p, 1, "ATUM[\"IRENET95\",SPHEROID[\"GRS 1980\",6378137,298.2572"); add_srs_wkt (p, 2, "22101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,"); add_srs_wkt (p, 3, "0],AUTHORITY[\"EPSG\",\"6173\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 7, "73\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 8, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-9"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"215"); add_srs_wkt (p, 13, "8\"]]"); p = add_epsg_def_ex (filter, first, last, 2159, "epsg", 2159, "Sierra Leone 1924 / New Colony Grid", 0, 0, "War Office", "Greenwich", "Sierra_Leone_Colony_1924", "Transverse_Mercator", "Gold Coast foot", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=6.666666666666667 +lon_0=-12 +k=1 +x_"); add_proj4text (p, 1, "0=152399.8550907544 +y_0=0 +a=6378300 +b=6356751.6891891"); add_proj4text (p, 2, "89 +to_meter=0.3047997101815088 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Sierra Leone 1924 / New Colony Grid\",GEOGCS[\""); add_srs_wkt (p, 1, "Sierra Leone 1924\",DATUM[\"Sierra_Leone_Colony_1924\",S"); add_srs_wkt (p, 2, "PHEROID[\"War Office\",6378300,296,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7029\"]],AUTHORITY[\"EPSG\",\"6174\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4174\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",6.666666666666667],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-12],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"Gold Coast foot\",0.3047997101815088,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9094\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 13, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2159\"]]"); p = add_epsg_def_ex (filter, first, last, 2160, "epsg", 2160, "Sierra Leone 1924 / New War Office Grid", 0, 0, "War Office", "Greenwich", "Sierra_Leone_Colony_1924", "Transverse_Mercator", "Gold Coast foot", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=6.666666666666667 +lon_0=-12 +k=1 +x_"); add_proj4text (p, 1, "0=243839.7681452071 +y_0=182879.8261089053 +a=6378300 +b"); add_proj4text (p, 2, "=6356751.689189189 +to_meter=0.3047997101815088 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Sierra Leone 1924 / New War Office Grid\",GEOGC"); add_srs_wkt (p, 1, "S[\"Sierra Leone 1924\",DATUM[\"Sierra_Leone_Colony_1924"); add_srs_wkt (p, 2, "\",SPHEROID[\"War Office\",6378300,296,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7029\"]],AUTHORITY[\"EPSG\",\"6174\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4174\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",6.666666666666667],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-12],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",800000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",600000],UNIT[\"Gold Coast foot\",0.3047997101"); add_srs_wkt (p, 12, "815088,AUTHORITY[\"EPSG\",\"9094\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2160\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 2161, "epsg", 2161, "Sierra Leone 1968 / UTM zone 28N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Sierra_Leone_1968", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=clrk80 +towgs84=-88,4,101,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Sierra Leone 1968 / UTM zone 28N\",GEOGCS[\"Sie"); add_srs_wkt (p, 1, "rra Leone 1968\",DATUM[\"Sierra_Leone_1968\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7012\"]],TOWGS84[-88,4,101,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6175\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4175\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",-15],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.9996],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 13, "hing\",NORTH],AUTHORITY[\"EPSG\",\"2161\"]]"); p = add_epsg_def_ex (filter, first, last, 2162, "epsg", 2162, "Sierra Leone 1968 / UTM zone 29N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Sierra_Leone_1968", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=clrk80 +towgs84=-88,4,101,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Sierra Leone 1968 / UTM zone 29N\",GEOGCS[\"Sie"); add_srs_wkt (p, 1, "rra Leone 1968\",DATUM[\"Sierra_Leone_1968\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7012\"]],TOWGS84[-88,4,101,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6175\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4175\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9996],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"2162\"]]"); p = add_epsg_def_ex (filter, first, last, 2163, "epsg", 2163, "US National Atlas Equal Area", 0, 0, "Clarke 1866 Authalic Sphere", "Greenwich", "Not_specified_based_on_Clarke_1866_Authalic_Sphere", "Lambert_Azimuthal_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=laea +lat_0=45 +lon_0=-100 +x_0=0 +y_0=0 +a=637099"); add_proj4text (p, 1, "7 +b=6370997 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"US National Atlas Equal Area\",GEOGCS[\"Unspeci"); add_srs_wkt (p, 1, "fied datum based upon the Clarke 1866 Authalic Sphere\","); add_srs_wkt (p, 2, "DATUM[\"Not_specified_based_on_Clarke_1866_Authalic_Sphe"); add_srs_wkt (p, 3, "re\",SPHEROID[\"Clarke 1866 Authalic Sphere\",6370997,0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"7052\"]],AUTHORITY[\"EPSG\",\"6052\""); add_srs_wkt (p, 5, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 6, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 8, "T],AUTHORITY[\"EPSG\",\"4052\"]],PROJECTION[\"Lambert_Az"); add_srs_wkt (p, 9, "imuthal_Equal_Area\"],PARAMETER[\"latitude_of_center\",4"); add_srs_wkt (p, 10, "5],PARAMETER[\"longitude_of_center\",-100],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2163\"]]"); p = add_epsg_def_ex (filter, first, last, 2164, "epsg", 2164, "Locodjo 1965 / TM 5 NW", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Locodjo_1965", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-5 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Locodjo 1965 / TM 5 NW\",GEOGCS[\"Locodjo 1965\""); add_srs_wkt (p, 1, ",DATUM[\"Locodjo_1965\",SPHEROID[\"Clarke 1880 (RGS)\",6"); add_srs_wkt (p, 2, "378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84"); add_srs_wkt (p, 3, "[-125,53,467,0,0,0,0],AUTHORITY[\"EPSG\",\"6142\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4142\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-5],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2164\"]]"); p = add_epsg_def_ex (filter, first, last, 2165, "epsg", 2165, "Abidjan 1987 / TM 5 NW", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Abidjan_1987", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-5 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Abidjan 1987 / TM 5 NW\",GEOGCS[\"Abidjan 1987\""); add_srs_wkt (p, 1, ",DATUM[\"Abidjan_1987\",SPHEROID[\"Clarke 1880 (RGS)\",6"); add_srs_wkt (p, 2, "378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84"); add_srs_wkt (p, 3, "[-124.76,53,466.79,0,0,0,0],AUTHORITY[\"EPSG\",\"6143\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4143\"]],PROJECTION[\"Transverse_"); add_srs_wkt (p, 8, "Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-5],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 10, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"2165\"]]"); p = add_epsg_def_ex (filter, first, last, 2166, "epsg", 2166, "Pulkovo 1942(83) / Gauss Kruger zone 3 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / Gauss Kruger zone 3 (depreca"); add_srs_wkt (p, 1, "ted)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_"); add_srs_wkt (p, 2, "83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4178\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",9],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",35000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"2166\"]]"); p = add_epsg_def_ex (filter, first, last, 2167, "epsg", 2167, "Pulkovo 1942(83) / Gauss Kruger zone 4 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / Gauss Kruger zone 4 (depreca"); add_srs_wkt (p, 1, "ted)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_"); add_srs_wkt (p, 2, "83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4178\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",12],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",4500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2167\"]]"); p = add_epsg_def_ex (filter, first, last, 2168, "epsg", 2168, "Pulkovo 1942(83) / Gauss Kruger zone 5 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / Gauss Kruger zone 5 (depreca"); add_srs_wkt (p, 1, "ted)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_"); add_srs_wkt (p, 2, "83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4178\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",15],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",5500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2168\"]]"); p = add_epsg_def_ex (filter, first, last, 2169, "epsg", 2169, "Luxembourg 1930 / Gauss", 0, 1, "International 1924", "Greenwich", "Luxembourg_1930", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=49.83333333333334 +lon_0=6.1666666666"); add_proj4text (p, 1, "66667 +k=1 +x_0=80000 +y_0=100000 +ellps=intl +towgs84=-"); add_proj4text (p, 2, "189.6806,18.3463,-42.7695,-0.33746,-3.09264,2.53861,0.45"); add_proj4text (p, 3, "98 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Luxembourg 1930 / Gauss\",GEOGCS[\"Luxembourg 1"); add_srs_wkt (p, 1, "930\",DATUM[\"Luxembourg_1930\",SPHEROID[\"International"); add_srs_wkt (p, 2, " 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-189.6806,18.3463,-42.7695,-0.33746,-3.09264,2.53861,0"); add_srs_wkt (p, 4, ".4598],AUTHORITY[\"EPSG\",\"6181\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4181\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",49.83333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 10, "ral_meridian\",6.166666666666667],PARAMETER[\"scale_fact"); add_srs_wkt (p, 11, "or\",1],PARAMETER[\"false_easting\",80000],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",100000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"2169\"]]"); p = add_epsg_def_ex (filter, first, last, 2170, "epsg", 2170, "MGI / Slovenia Grid (deprecated)", 0, 1, "Bessel 1841", "Greenwich", "Militar_Geographische_Institute", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,"); add_proj4text (p, 2, "1.474,5.297,2.4232 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MGI / Slovenia Grid (deprecated)\",GEOGCS[\"MGI"); add_srs_wkt (p, 1, "\",DATUM[\"Militar_Geographische_Institute\",SPHEROID[\""); add_srs_wkt (p, 2, "Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7004\"]],TOWGS84[577.326,90.129,463.919,5.137,1.474,5"); add_srs_wkt (p, 4, ".297,2.4232],AUTHORITY[\"EPSG\",\"6312\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4312\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",15],PARAMETER[\"scale_factor\",0.9999],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2170\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 2171, "epsg", 2171, "Pulkovo 1942(58) / Poland zone I (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Oblique_Stereographic", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=sterea +lat_0=50.625 +lon_0=21.08333333333333 +k=0"); add_proj4text (p, 1, ".9998 +x_0=4637000 +y_0=5647000 +ellps=krass +towgs84=33"); add_proj4text (p, 2, ".4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Poland zone I (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",S"); add_srs_wkt (p, 2, "PHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,"); add_srs_wkt (p, 4, "0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4179\"]],PROJECTION[\"Oblique_Stereographic\"],P"); add_srs_wkt (p, 9, "ARAMETER[\"latitude_of_origin\",50.625],PARAMETER[\"cent"); add_srs_wkt (p, 10, "ral_meridian\",21.08333333333333],PARAMETER[\"scale_fact"); add_srs_wkt (p, 11, "or\",0.9998],PARAMETER[\"false_easting\",4637000],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",5647000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"2171\"]]"); p = add_epsg_def_ex (filter, first, last, 2172, "epsg", 2172, "Pulkovo 1942(58) / Poland zone II", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Oblique_Stereographic", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=sterea +lat_0=53.00194444444445 +lon_0=21.50277777"); add_proj4text (p, 1, "777778 +k=0.9998 +x_0=4603000 +y_0=5806000 +ellps=krass "); add_proj4text (p, 2, "+towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +un"); add_proj4text (p, 3, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Poland zone II\",GEOGCS[\"Pu"); add_srs_wkt (p, 1, "lkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4179\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",53.00194444444445],PARAMETER[\"central"); add_srs_wkt (p, 10, "_meridian\",21.50277777777778],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 11, ",0.9998],PARAMETER[\"false_easting\",4603000],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",5806000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"2172\"]]"); p = add_epsg_def_ex (filter, first, last, 2173, "epsg", 2173, "Pulkovo 1942(58) / Poland zone III", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Oblique_Stereographic", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=sterea +lat_0=53.58333333333334 +lon_0=17.00833333"); add_proj4text (p, 1, "333333 +k=0.9998 +x_0=3501000 +y_0=5999000 +ellps=krass "); add_proj4text (p, 2, "+towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +un"); add_proj4text (p, 3, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Poland zone III\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID[\"K"); add_srs_wkt (p, 2, "rassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024"); add_srs_wkt (p, 3, "\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"417"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",53.58333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 10, "ral_meridian\",17.00833333333333],PARAMETER[\"scale_fact"); add_srs_wkt (p, 11, "or\",0.9998],PARAMETER[\"false_easting\",3501000],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",5999000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"2173\"]]"); p = add_epsg_def_ex (filter, first, last, 2174, "epsg", 2174, "Pulkovo 1942(58) / Poland zone IV", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Oblique_Stereographic", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=sterea +lat_0=51.67083333333333 +lon_0=16.67222222"); add_proj4text (p, 1, "222222 +k=0.9998 +x_0=3703000 +y_0=5627000 +ellps=krass "); add_proj4text (p, 2, "+towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +un"); add_proj4text (p, 3, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Poland zone IV\",GEOGCS[\"Pu"); add_srs_wkt (p, 1, "lkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID[\"Kr"); add_srs_wkt (p, 2, "assowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4179\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",51.67083333333333],PARAMETER[\"central"); add_srs_wkt (p, 10, "_meridian\",16.67222222222222],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 11, ",0.9998],PARAMETER[\"false_easting\",3703000],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",5627000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"2174\"]]"); p = add_epsg_def_ex (filter, first, last, 2175, "epsg", 2175, "Pulkovo 1942(58) / Poland zone V", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18.95833333333333 +k=0.99998"); add_proj4text (p, 1, "3 +x_0=237000 +y_0=-4700000 +ellps=krass +towgs84=33.4,-"); add_proj4text (p, 2, "146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Poland zone V\",GEOGCS[\"Pul"); add_srs_wkt (p, 1, "kovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID[\"Kra"); add_srs_wkt (p, 2, "ssowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4179\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",18.958"); add_srs_wkt (p, 10, "33333333333],PARAMETER[\"scale_factor\",0.999983],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",237000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",-4700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"2175\"]]"); p = add_epsg_def_ex (filter, first, last, 2176, "epsg", 2176, "ETRS89 / Poland CS2000 zone 5", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "x", "North", "y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.999923 +x_0=5500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Poland CS2000 zone 5\",GEOGCS[\"ETRS89"); add_srs_wkt (p, 1, "\",DATUM[\"European_Terrestrial_Reference_System_1989\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.999923],PARAMETER[\"false_easting\",5500000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\"y\",EAS"); add_srs_wkt (p, 13, "T],AUTHORITY[\"EPSG\",\"2176\"]]"); p = add_epsg_def_ex (filter, first, last, 2177, "epsg", 2177, "ETRS89 / Poland CS2000 zone 6", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "x", "North", "y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.999923 +x_0=6500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Poland CS2000 zone 6\",GEOGCS[\"ETRS89"); add_srs_wkt (p, 1, "\",DATUM[\"European_Terrestrial_Reference_System_1989\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",18],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.999923],PARAMETER[\"false_easting\",6500000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\"y\",EAS"); add_srs_wkt (p, 13, "T],AUTHORITY[\"EPSG\",\"2177\"]]"); p = add_epsg_def_ex (filter, first, last, 2178, "epsg", 2178, "ETRS89 / Poland CS2000 zone 7", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "x", "North", "y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.999923 +x_0=7500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Poland CS2000 zone 7\",GEOGCS[\"ETRS89"); add_srs_wkt (p, 1, "\",DATUM[\"European_Terrestrial_Reference_System_1989\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",21],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.999923],PARAMETER[\"false_easting\",7500000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\"y\",EAS"); add_srs_wkt (p, 13, "T],AUTHORITY[\"EPSG\",\"2178\"]]"); p = add_epsg_def_ex (filter, first, last, 2179, "epsg", 2179, "ETRS89 / Poland CS2000 zone 8", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "x", "North", "y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.999923 +x_0=8500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Poland CS2000 zone 8\",GEOGCS[\"ETRS89"); add_srs_wkt (p, 1, "\",DATUM[\"European_Terrestrial_Reference_System_1989\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",0],PARAMETER[\"central_meridian\",24],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.999923],PARAMETER[\"false_easting\",8500000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\"y\",EAS"); add_srs_wkt (p, 13, "T],AUTHORITY[\"EPSG\",\"2179\"]]"); p = add_epsg_def_ex (filter, first, last, 2180, "epsg", 2180, "ETRS89 / Poland CS92", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "x", "North", "y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=19 +k=0.9993 +x_0=500000 +y_"); add_proj4text (p, 1, "0=-5300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Poland CS92\",GEOGCS[\"ETRS89\",DATUM["); add_srs_wkt (p, 1, "\"European_Terrestrial_Reference_System_1989\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",19],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9993],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",-5300000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"2180\"]]"); p = add_epsg_def_ex (filter, first, last, 2188, "epsg", 2188, "Azores Occidental 1939 / UTM zone 25N", 0, 0, "International 1924", "Greenwich", "Azores_Occidental_Islands_1939", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=25 +ellps=intl +towgs84=-425,-169,81,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Azores Occidental 1939 / UTM zone 25N\",GEOGCS["); add_srs_wkt (p, 1, "\"Azores Occidental 1939\",DATUM[\"Azores_Occidental_Isl"); add_srs_wkt (p, 2, "ands_1939\",SPHEROID[\"International 1924\",6378388,297,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-425,-169,81,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6182\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "82\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",0],PARAMETER[\"central_meridian\",-3"); add_srs_wkt (p, 10, "3],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"218"); add_srs_wkt (p, 14, "8\"]]"); p = add_epsg_def_ex (filter, first, last, 2189, "epsg", 2189, "Azores Central 1948 / UTM zone 26N", 0, 0, "International 1924", "Greenwich", "Azores_Central_Islands_1948", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=intl +towgs84=-104,167,-38,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Azores Central 1948 / UTM zone 26N\",GEOGCS[\"A"); add_srs_wkt (p, 1, "zores Central 1948\",DATUM[\"Azores_Central_Islands_1948"); add_srs_wkt (p, 2, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7022\"]],TOWGS84[-104,167,-38,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6183\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4183\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",-27],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2189\"]]"); p = add_epsg_def_ex (filter, first, last, 2190, "epsg", 2190, "Azores Oriental 1940 / UTM zone 26N", 0, 0, "International 1924", "Greenwich", "Azores_Oriental_Islands_1940", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=intl +towgs84=-203,141,53,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Azores Oriental 1940 / UTM zone 26N\",GEOGCS[\""); add_srs_wkt (p, 1, "Azores Oriental 1940\",DATUM[\"Azores_Oriental_Islands_1"); add_srs_wkt (p, 2, "940\",SPHEROID[\"International 1924\",6378388,297,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7022\"]],TOWGS84[-203,141,53,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6184\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4184\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",-27],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2190\"]]"); p = add_epsg_def_ex (filter, first, last, 2191, "epsg", 2191, "Madeira 1936 / UTM zone 28N (deprecated)", 0, 0, "International 1924", "Greenwich", "Madeira_1936", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=intl +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Madeira 1936 / UTM zone 28N (deprecated)\",GEOG"); add_srs_wkt (p, 1, "CS[\"Madeira 1936\",DATUM[\"Madeira_1936\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6185\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9108\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4185\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 8, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "15],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 10, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 13, "191\"]]"); p = add_epsg_def_ex (filter, first, last, 2192, "epsg", 2192, "ED50 / France EuroLambert (deprecated)", 0, 0, "International 1924", "Greenwich", "European_Datum_1950", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.3372291666666"); add_proj4text (p, 1, "67 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +ellps=intl "); add_proj4text (p, 2, "+towgs84=-87,-98,-121,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / France EuroLambert (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, "[\"ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\"Inter"); add_srs_wkt (p, 2, "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]"); add_srs_wkt (p, 3, "],TOWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"623"); add_srs_wkt (p, 4, "0\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 8, "_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",46.8],PARAMETER[\"central_meridian\",2.337229166666667]"); add_srs_wkt (p, 10, ",PARAMETER[\"scale_factor\",0.99987742],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",600000],PARAMETER[\"false_northing\",2200000"); add_srs_wkt (p, 12, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2192\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 2193, "epsg", 2193, "NZGD2000 / New Zealand Transverse Mercator 2000", 0, 1, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=173 +k=0.9996 +x_0=1600000 +"); add_proj4text (p, 1, "y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / New Zealand Transverse Mercator 2000"); add_srs_wkt (p, 1, "\",GEOGCS[\"NZGD2000\",DATUM[\"New_Zealand_Geodetic_Datu"); add_srs_wkt (p, 2, "m_2000\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6167\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4167\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",0],PARAMETER[\"central_meridian\",173],PARAME"); add_srs_wkt (p, 10, "TER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",1600000],PARAMETER[\"false_northing\",10000000],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2193"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 2194, "epsg", 2194, "American Samoa 1962 / American Samoa Lambert (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "American_Samoa_1962", "Lambert_Conformal_Conic_1SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.266666666"); add_proj4text (p, 1, "66667 +lon_0=-170 +k_0=1 +x_0=152400.3048006096 +y_0=0 +"); add_proj4text (p, 2, "ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +units=us-ft "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"American Samoa 1962 / American Samoa Lambert (d"); add_srs_wkt (p, 1, "eprecated)\",GEOGCS[\"American Samoa 1962\",DATUM[\"Amer"); add_srs_wkt (p, 2, "ican_Samoa_1962\",SPHEROID[\"Clarke 1866\",6378206.4,294"); add_srs_wkt (p, 3, ".9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-11"); add_srs_wkt (p, 4, "5,118,426,0,0,0,0],AUTHORITY[\"EPSG\",\"6169\"]],PRIMEM["); add_srs_wkt (p, 5, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 6, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 7, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 8, "TY[\"EPSG\",\"4169\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 9, "nic_1SP\"],PARAMETER[\"latitude_of_origin\",-14.26666666"); add_srs_wkt (p, 10, "666667],PARAMETER[\"central_meridian\",-170],PARAMETER[\""); add_srs_wkt (p, 11, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_northing\",0],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 13, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2194\"]]"); p = add_epsg_def_ex (filter, first, last, 2195, "epsg", 2195, "NAD83(HARN) / UTM zone 2S", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=2 +south +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / UTM zone 2S\",GEOGCS[\"NAD83(HARN"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 5, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 6, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 7, "de\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\"Tr"); add_srs_wkt (p, 8, "ansverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0]"); add_srs_wkt (p, 9, ",PARAMETER[\"central_meridian\",-171],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"2195\"]]"); p = add_epsg_def_ex (filter, first, last, 2196, "epsg", 2196, "ETRS89 / Kp2000 Jutland", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9.5 +k=0.99995 +x_0=200000 +"); add_proj4text (p, 1, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Kp2000 Jutland\",GEOGCS[\"ETRS89\",DAT"); add_srs_wkt (p, 1, "UM[\"European_Terrestrial_Reference_System_1989\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",9.5],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.99995],PARAMETER[\"false_easting\",200000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"2196\"]]"); p = add_epsg_def_ex (filter, first, last, 2197, "epsg", 2197, "ETRS89 / Kp2000 Zealand", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.99995 +x_0=500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Kp2000 Zealand\",GEOGCS[\"ETRS89\",DAT"); add_srs_wkt (p, 1, "UM[\"European_Terrestrial_Reference_System_1989\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",12],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.99995],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"2197\"]]"); p = add_epsg_def_ex (filter, first, last, 2198, "epsg", 2198, "ETRS89 / Kp2000 Bornholm", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=900000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Kp2000 Bornholm\",GEOGCS[\"ETRS89\",DA"); add_srs_wkt (p, 1, "TUM[\"European_Terrestrial_Reference_System_1989\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",15],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",1],PARAMETER[\"false_easting\",900000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"2198\"]]"); p = add_epsg_def_ex (filter, first, last, 2199, "epsg", 2199, "Albanian 1987 / Gauss Kruger zone 4 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Albanian_1987", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Albanian 1987 / Gauss Kruger zone 4 (deprecated"); add_srs_wkt (p, 1, ")\",GEOGCS[\"Albanian 1987\",DATUM[\"Albanian_1987\",SPH"); add_srs_wkt (p, 2, "EROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7024\"]],AUTHORITY[\"EPSG\",\"6191\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4191\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",21],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_easting\",4500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 12, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2199\"]]"); p = add_epsg_def_ex (filter, first, last, 2200, "epsg", 2200, "ATS77 / New Brunswick Stereographic (ATS77)", 0, 1, "Average Terrestrial System 1977", "Greenwich", "Average_Terrestrial_System_1977", "Oblique_Stereographic", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=3"); add_proj4text (p, 1, "00000 +y_0=800000 +a=6378135 +b=6356750.304921594 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ATS77 / New Brunswick Stereographic (ATS77)\",G"); add_srs_wkt (p, 1, "EOGCS[\"ATS77\",DATUM[\"Average_Terrestrial_System_1977\""); add_srs_wkt (p, 2, ",SPHEROID[\"Average Terrestrial System 1977\",6378135,29"); add_srs_wkt (p, 3, "8.257,AUTHORITY[\"EPSG\",\"7041\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6122\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4122\"]],PROJECTION[\"Obli"); add_srs_wkt (p, 8, "que_Stereographic\"],PARAMETER[\"latitude_of_origin\",46"); add_srs_wkt (p, 9, ".5],PARAMETER[\"central_meridian\",-66.5],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",0.999912],PARAMETER[\"false_easting\",30000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",800000],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 13, "AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\"2200\"]]"); p = add_epsg_def_ex (filter, first, last, 2201, "epsg", 2201, "REGVEN / UTM zone 18N", 0, 0, "GRS 1980", "Greenwich", "Red_Geodesica_Venezolana", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"REGVEN / UTM zone 18N\",GEOGCS[\"REGVEN\",DATUM"); add_srs_wkt (p, 1, "[\"Red_Geodesica_Venezolana\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6189\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4189\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"2201\"]]"); p = add_epsg_def_ex (filter, first, last, 2202, "epsg", 2202, "REGVEN / UTM zone 19N", 0, 0, "GRS 1980", "Greenwich", "Red_Geodesica_Venezolana", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"REGVEN / UTM zone 19N\",GEOGCS[\"REGVEN\",DATUM"); add_srs_wkt (p, 1, "[\"Red_Geodesica_Venezolana\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6189\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4189\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"2202\"]]"); p = add_epsg_def_ex (filter, first, last, 2203, "epsg", 2203, "REGVEN / UTM zone 20N", 0, 0, "GRS 1980", "Greenwich", "Red_Geodesica_Venezolana", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"REGVEN / UTM zone 20N\",GEOGCS[\"REGVEN\",DATUM"); add_srs_wkt (p, 1, "[\"Red_Geodesica_Venezolana\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6189\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4189\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"2203\"]]"); p = add_epsg_def_ex (filter, first, last, 2204, "epsg", 2204, "NAD27 / Tennessee", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=3"); add_proj4text (p, 1, "4.66666666666666 +lon_0=-86 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "30480.06096012192 +datum=NAD27 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Tennessee\",GEOGCS[\"NAD27\",DATUM[\"No"); add_srs_wkt (p, 1, "rth_American_Datum_1927\",SPHEROID[\"Clarke 1866\",63782"); add_srs_wkt (p, 2, "06.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 8, "standard_parallel_1\",35.25],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, "el_2\",36.41666666666666],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 10, "\",34.66666666666666],PARAMETER[\"central_meridian\",-86"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",2000000],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",100000],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2204\"]]"); p = add_epsg_def_ex (filter, first, last, 2205, "epsg", 2205, "NAD83 / Kentucky North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666"); add_proj4text (p, 1, "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kentucky North\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",37.96666666666"); add_srs_wkt (p, 9, "667],PARAMETER[\"standard_parallel_2\",38.96666666666667"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",37.5],PARAMETER[\"cen"); add_srs_wkt (p, 11, "tral_meridian\",-84.25],PARAMETER[\"false_easting\",5000"); add_srs_wkt (p, 12, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 14, "ORTH],AUTHORITY[\"EPSG\",\"2205\"]]"); p = add_epsg_def_ex (filter, first, last, 2206, "epsg", 2206, "ED50 / 3-degree Gauss-Kruger zone 9", 0, 1, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / 3-degree Gauss-Kruger zone 9\",GEOGCS[\""); add_srs_wkt (p, 1, "ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",27],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",9500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"2206\"]]"); p = add_epsg_def_ex (filter, first, last, 2207, "epsg", 2207, "ED50 / 3-degree Gauss-Kruger zone 10", 0, 1, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0"); add_proj4text (p, 1, " +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / 3-degree Gauss-Kruger zone 10\",GEOGCS[\""); add_srs_wkt (p, 1, "ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",30],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",10500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"2207\"]]"); p = add_epsg_def_ex (filter, first, last, 2208, "epsg", 2208, "ED50 / 3-degree Gauss-Kruger zone 11", 0, 1, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0"); add_proj4text (p, 1, " +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / 3-degree Gauss-Kruger zone 11\",GEOGCS[\""); add_srs_wkt (p, 1, "ED50\",DATUM[\"European_Datum_1950\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[-87,-98,-121,0,0,0,0],AUTHORITY[\"EPSG\",\"6230\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4230\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",33],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",11500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"2208\"]]"); } #endif /* full EPSG initialization enabled/disabled */ �����������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/Makefile.am��������������������������������������������������������0000664�0001750�0001750�00000003246�12544707704�015765� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ SUBDIRS = epsg_update AM_CPPFLAGS = @CFLAGS@ AM_CPPFLAGS += -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libsrsinit.la srsinit.la SRSINIT_COMMON_SOURCES = srs_init.c \ epsg_inlined_00.c \ epsg_inlined_01.c \ epsg_inlined_02.c \ epsg_inlined_03.c \ epsg_inlined_04.c \ epsg_inlined_05.c \ epsg_inlined_06.c \ epsg_inlined_07.c \ epsg_inlined_08.c \ epsg_inlined_09.c \ epsg_inlined_10.c \ epsg_inlined_11.c \ epsg_inlined_12.c \ epsg_inlined_13.c \ epsg_inlined_14.c \ epsg_inlined_15.c \ epsg_inlined_16.c \ epsg_inlined_17.c \ epsg_inlined_18.c \ epsg_inlined_19.c \ epsg_inlined_20.c \ epsg_inlined_21.c \ epsg_inlined_22.c \ epsg_inlined_23.c \ epsg_inlined_24.c \ epsg_inlined_25.c \ epsg_inlined_26.c \ epsg_inlined_27.c \ epsg_inlined_28.c \ epsg_inlined_29.c \ epsg_inlined_30.c \ epsg_inlined_31.c \ epsg_inlined_32.c \ epsg_inlined_33.c \ epsg_inlined_34.c \ epsg_inlined_35.c \ epsg_inlined_36.c \ epsg_inlined_37.c \ epsg_inlined_38.c \ epsg_inlined_39.c \ epsg_inlined_40.c \ epsg_inlined_41.c \ epsg_inlined_42.c \ epsg_inlined_43.c \ epsg_inlined_44.c \ epsg_inlined_45.c \ epsg_inlined_46.c \ epsg_inlined_wgs84_00.c \ epsg_inlined_wgs84_01.c \ epsg_inlined_prussian.c \ epsg_inlined_extra.c libsrsinit_la_SOURCES = $(SRSINIT_COMMON_SOURCES) libsrsinit_la_CFLAGS = -fvisibility=hidden srsinit_la_SOURCES = $(SRSINIT_COMMON_SOURCES) srsinit_la_CPPFLAGS = @CFLAGS@ srsinit_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. srsinit_la_CPPFLAGS += -DLOADABLE_EXTENSION srsinit_la_CPPFLAGS += -fvisibility=hidden srsinit_la_LDFLAGS = -module srsinit_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_44.c��������������������������������������������������0000664�0001750�0001750�00000536131�12544707704�017050� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_44 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 32123, "epsg", 32123, "NAD83 / Ohio South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333"); add_proj4text (p, 1, "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Ohio South\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",40.03333333333333]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",38.73333333333333],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",38],PARAMETER[\"central_m"); add_srs_wkt (p, 11, "eridian\",-82.5],PARAMETER[\"false_easting\",600000],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"32123\"]]"); p = add_epsg_def_ex (filter, first, last, 32124, "epsg", 32124, "NAD83 / Oklahoma North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666"); add_proj4text (p, 1, "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oklahoma North\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",36.76666666666"); add_srs_wkt (p, 9, "667],PARAMETER[\"standard_parallel_2\",35.56666666666667"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",35],PARAMETER[\"centr"); add_srs_wkt (p, 11, "al_meridian\",-98],PARAMETER[\"false_easting\",600000],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"32124\"]]"); p = add_epsg_def_ex (filter, first, last, 32125, "epsg", 32125, "NAD83 / Oklahoma South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333"); add_proj4text (p, 1, "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oklahoma South\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",35.23333333333"); add_srs_wkt (p, 9, "333],PARAMETER[\"standard_parallel_2\",33.93333333333333"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",33.33333333333334],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-98],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",600000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 13, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32125\"]]"); p = add_epsg_def_ex (filter, first, last, 32126, "epsg", 32126, "NAD83 / Oregon North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oregon North\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"standard_parallel_1\",46],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_2\",44.33333333333334],PARAMETER[\"lati"); add_srs_wkt (p, 10, "tude_of_origin\",43.66666666666666],PARAMETER[\"central_"); add_srs_wkt (p, 11, "meridian\",-120.5],PARAMETER[\"false_easting\",2500000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"32126\"]]"); p = add_epsg_def_ex (filter, first, last, 32127, "epsg", 32127, "NAD83 / Oregon South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Oregon South\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"standard_parallel_1\",44],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_2\",42.33333333333334],PARAMETER[\"lati"); add_srs_wkt (p, 10, "tude_of_origin\",41.66666666666666],PARAMETER[\"central_"); add_srs_wkt (p, 11, "meridian\",-120.5],PARAMETER[\"false_easting\",1500000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"32127\"]]"); p = add_epsg_def_ex (filter, first, last, 32128, "epsg", 32128, "NAD83 / Pennsylvania North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=4"); add_proj4text (p, 1, "0.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Pennsylvania North\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",41.95],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",40.88333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",40.16666666666666],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-77.75],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",600000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 13, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"32128\"]]"); p = add_epsg_def_ex (filter, first, last, 32129, "epsg", 32129, "NAD83 / Pennsylvania South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333"); add_proj4text (p, 1, "333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Pennsylvania South\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",40.9666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"standard_parallel_2\",39.9333333333"); add_srs_wkt (p, 10, "3333],PARAMETER[\"latitude_of_origin\",39.33333333333334"); add_srs_wkt (p, 11, "],PARAMETER[\"central_meridian\",-77.75],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_easting\",600000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 13, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32129\"]]"); p = add_epsg_def_ex (filter, first, last, 32130, "epsg", 32130, "NAD83 / Rhode Island", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9"); add_proj4text (p, 1, "9999375 +x_0=100000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0"); add_proj4text (p, 2, ",0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Rhode Island\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",41.08333333333334],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-71.5],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.99999375],PARAMETER[\"false_easting\",100000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"32130\"]]"); p = add_epsg_def_ex (filter, first, last, 32133, "epsg", 32133, "NAD83 / South Carolina", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31"); add_proj4text (p, 1, ".83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / South Carolina\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",34.83333333333"); add_srs_wkt (p, 9, "334],PARAMETER[\"standard_parallel_2\",32.5],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",31.83333333333333],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-81],PARAMETER[\"false_easting\",609600],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"32133\"]]"); p = add_epsg_def_ex (filter, first, last, 32134, "epsg", 32134, "NAD83 / South Dakota North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666"); add_proj4text (p, 1, "666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 3, "s"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / South Dakota North\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",45.6833333"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"standard_parallel_2\",44.4166666666"); add_srs_wkt (p, 10, "6666],PARAMETER[\"latitude_of_origin\",43.83333333333334"); add_srs_wkt (p, 11, "],PARAMETER[\"central_meridian\",-100],PARAMETER[\"false"); add_srs_wkt (p, 12, "_easting\",600000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 13, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 14, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32134\"]]"); p = add_epsg_def_ex (filter, first, last, 32135, "epsg", 32135, "NAD83 / South Dakota South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42"); add_proj4text (p, 1, ".33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y"); add_proj4text (p, 2, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 3, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / South Dakota South\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",44.4],PARA"); add_srs_wkt (p, 9, "METER[\"standard_parallel_2\",42.83333333333334],PARAMET"); add_srs_wkt (p, 10, "ER[\"latitude_of_origin\",42.33333333333334],PARAMETER[\""); add_srs_wkt (p, 11, "central_meridian\",-100.3333333333333],PARAMETER[\"false"); add_srs_wkt (p, 12, "_easting\",600000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 13, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 14, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32135\"]]"); p = add_epsg_def_ex (filter, first, last, 32136, "epsg", 32136, "NAD83 / Tennessee", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=3"); add_proj4text (p, 1, "4.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Tennessee\",GEOGCS[\"NAD83\",DATUM[\"No"); add_srs_wkt (p, 1, "rth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 2, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,"); add_srs_wkt (p, 3, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",36.41666666666666],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",35.25],PARAMETER[\"lati"); add_srs_wkt (p, 10, "tude_of_origin\",34.33333333333334],PARAMETER[\"central_"); add_srs_wkt (p, 11, "meridian\",-86],PARAMETER[\"false_easting\",600000],PARA"); add_srs_wkt (p, 12, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"32136\"]]"); p = add_epsg_def_ex (filter, first, last, 32137, "epsg", 32137, "NAD83 / Texas North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=3"); add_proj4text (p, 1, "4 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas North\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"standard_parallel_1\",36.18333333333333"); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_2\",34.65],PARAMETER[\"l"); add_srs_wkt (p, 10, "atitude_of_origin\",34],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 11, "101.5],PARAMETER[\"false_easting\",200000],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"32137\"]]"); p = add_epsg_def_ex (filter, first, last, 32138, "epsg", 32138, "NAD83 / Texas North Central", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333"); add_proj4text (p, 1, "333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y"); add_proj4text (p, 2, "_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas North Central\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",33.9666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"standard_parallel_2\",32.1333333333"); add_srs_wkt (p, 10, "3333],PARAMETER[\"latitude_of_origin\",31.66666666666667"); add_srs_wkt (p, 11, "],PARAMETER[\"central_meridian\",-98.5],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_easting\",600000],PARAMETER[\"false_northing\",2000000"); add_srs_wkt (p, 13, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32138\""); add_srs_wkt (p, 15, "]]"); p = add_epsg_def_ex (filter, first, last, 32139, "epsg", 32139, "NAD83 / Texas Central", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666"); add_proj4text (p, 1, "667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +"); add_proj4text (p, 2, "x_0=700000 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 3, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas Central\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"standard_parallel_1\",31.88333333333333"); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_2\",30.11666666666667],P"); add_srs_wkt (p, 10, "ARAMETER[\"latitude_of_origin\",29.66666666666667],PARAM"); add_srs_wkt (p, 11, "ETER[\"central_meridian\",-100.3333333333333],PARAMETER["); add_srs_wkt (p, 12, "\"false_easting\",700000],PARAMETER[\"false_northing\",3"); add_srs_wkt (p, 13, "000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 14, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 15, "2139\"]]"); p = add_epsg_def_ex (filter, first, last, 32140, "epsg", 32140, "NAD83 / Texas South Central", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333"); add_proj4text (p, 1, "333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0"); add_proj4text (p, 2, "=4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 3, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas South Central\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",30.2833333"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"standard_parallel_2\",28.3833333333"); add_srs_wkt (p, 10, "3333],PARAMETER[\"latitude_of_origin\",27.83333333333333"); add_srs_wkt (p, 11, "],PARAMETER[\"central_meridian\",-99],PARAMETER[\"false_"); add_srs_wkt (p, 12, "easting\",600000],PARAMETER[\"false_northing\",4000000],"); add_srs_wkt (p, 13, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32140\"]]"); p = add_epsg_def_ex (filter, first, last, 32141, "epsg", 32141, "NAD83 / Texas South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y"); add_proj4text (p, 2, "_0=5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas South\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"standard_parallel_1\",27.83333333333333"); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_2\",26.16666666666667],P"); add_srs_wkt (p, 10, "ARAMETER[\"latitude_of_origin\",25.66666666666667],PARAM"); add_srs_wkt (p, 11, "ETER[\"central_meridian\",-98.5],PARAMETER[\"false_easti"); add_srs_wkt (p, 12, "ng\",300000],PARAMETER[\"false_northing\",5000000],UNIT["); add_srs_wkt (p, 13, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 14, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32141\"]]"); p = add_epsg_def_ex (filter, first, last, 32142, "epsg", 32142, "NAD83 / Utah North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +"); add_proj4text (p, 2, "y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Utah North\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",41.78333333333333]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",40.71666666666667],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",40.33333333333334],PARAME"); add_srs_wkt (p, 11, "TER[\"central_meridian\",-111.5],PARAMETER[\"false_easti"); add_srs_wkt (p, 12, "ng\",500000],PARAMETER[\"false_northing\",1000000],UNIT["); add_srs_wkt (p, 13, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAS"); add_srs_wkt (p, 14, "T],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32142\"]]"); p = add_epsg_def_ex (filter, first, last, 32143, "epsg", 32143, "NAD83 / Utah Central", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Utah Central\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"standard_parallel_1\",40.65],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_2\",39.01666666666667],PARAMETER[\"l"); add_srs_wkt (p, 10, "atitude_of_origin\",38.33333333333334],PARAMETER[\"centr"); add_srs_wkt (p, 11, "al_meridian\",-111.5],PARAMETER[\"false_easting\",500000"); add_srs_wkt (p, 12, "],PARAMETER[\"false_northing\",2000000],UNIT[\"metre\",1"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 14, "\",NORTH],AUTHORITY[\"EPSG\",\"32143\"]]"); p = add_epsg_def_ex (filter, first, last, 32144, "epsg", 32144, "NAD83 / Utah South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Utah South\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",38.35],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",37.21666666666667],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",36.66666666666666],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-111.5],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",3000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"32144\"]]"); p = add_epsg_def_ex (filter, first, last, 32145, "epsg", 32145, "NAD83 / Vermont", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); add_proj4text (p, 1, "=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Vermont\",GEOGCS[\"NAD83\",DATUM[\"Nort"); add_srs_wkt (p, 1, "h_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,29"); add_srs_wkt (p, 2, "8.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",42.5],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",-72.5],PARAMETER[\"scale_factor\",0.999964286],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "32145\"]]"); p = add_epsg_def_ex (filter, first, last, 32146, "epsg", 32146, "NAD83 / Virginia North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37"); add_proj4text (p, 1, ".66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Virginia North\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",39.2],PARAMETE"); add_srs_wkt (p, 9, "R[\"standard_parallel_2\",38.03333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",37.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-78.5],PARAMETER[\"false_easting\",350000"); add_srs_wkt (p, 12, "0],PARAMETER[\"false_northing\",2000000],UNIT[\"metre\","); add_srs_wkt (p, 13, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"32146\"]]"); p = add_epsg_def_ex (filter, first, last, 32147, "epsg", 32147, "NAD83 / Virginia South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666"); add_proj4text (p, 1, "667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +"); add_proj4text (p, 2, "y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 3, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Virginia South\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",37.96666666666"); add_srs_wkt (p, 9, "667],PARAMETER[\"standard_parallel_2\",36.76666666666667"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",36.33333333333334],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-78.5],PARAMETER[\"false_ea"); add_srs_wkt (p, 12, "sting\",3500000],PARAMETER[\"false_northing\",1000000],U"); add_srs_wkt (p, 13, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32147\"]]"); p = add_epsg_def_ex (filter, first, last, 32148, "epsg", 32148, "NAD83 / Washington North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47"); add_proj4text (p, 1, " +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Washington North\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",48.7333333333"); add_srs_wkt (p, 9, "3333],PARAMETER[\"standard_parallel_2\",47.5],PARAMETER["); add_srs_wkt (p, 10, "\"latitude_of_origin\",47],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-120.8333333333333],PARAMETER[\"false_easting\",500000]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"32148\"]]"); p = add_epsg_def_ex (filter, first, last, 32149, "epsg", 32149, "NAD83 / Washington South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333"); add_proj4text (p, 1, "334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Washington South\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",47.3333333333"); add_srs_wkt (p, 9, "3334],PARAMETER[\"standard_parallel_2\",45.8333333333333"); add_srs_wkt (p, 10, "4],PARAMETER[\"latitude_of_origin\",45.33333333333334],P"); add_srs_wkt (p, 11, "ARAMETER[\"central_meridian\",-120.5],PARAMETER[\"false_"); add_srs_wkt (p, 12, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32149\"]]"); p = add_epsg_def_ex (filter, first, last, 32150, "epsg", 32150, "NAD83 / West Virginia North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79."); add_proj4text (p, 1, "5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / West Virginia North\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",40.25],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",39],PARAMETER[\"latitude_"); add_srs_wkt (p, 10, "of_origin\",38.5],PARAMETER[\"central_meridian\",-79.5],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",600000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"32150\"]]"); p = add_epsg_def_ex (filter, first, last, 32151, "epsg", 32151, "NAD83 / West Virginia South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333"); add_proj4text (p, 1, "333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / West Virginia South\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",38.8833333"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"standard_parallel_2\",37.4833333333"); add_srs_wkt (p, 10, "3333],PARAMETER[\"latitude_of_origin\",37],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-81],PARAMETER[\"false_easting\",60000"); add_srs_wkt (p, 12, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 14, "RTH],AUTHORITY[\"EPSG\",\"32151\"]]"); p = add_epsg_def_ex (filter, first, last, 32152, "epsg", 32152, "NAD83 / Wisconsin North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666"); add_proj4text (p, 1, "667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wisconsin North\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",46.7666666666"); add_srs_wkt (p, 9, "6667],PARAMETER[\"standard_parallel_2\",45.5666666666666"); add_srs_wkt (p, 10, "7],PARAMETER[\"latitude_of_origin\",45.16666666666666],P"); add_srs_wkt (p, 11, "ARAMETER[\"central_meridian\",-90],PARAMETER[\"false_eas"); add_srs_wkt (p, 12, "ting\",600000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 13, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 14, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32152\"]]"); p = add_epsg_def_ex (filter, first, last, 32153, "epsg", 32153, "NAD83 / Wisconsin Central", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); add_proj4text (p, 1, "334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wisconsin Central\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",45.5],PARAM"); add_srs_wkt (p, 9, "ETER[\"standard_parallel_2\",44.25],PARAMETER[\"latitude"); add_srs_wkt (p, 10, "_of_origin\",43.83333333333334],PARAMETER[\"central_meri"); add_srs_wkt (p, 11, "dian\",-90],PARAMETER[\"false_easting\",600000],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"32153\"]]"); p = add_epsg_def_ex (filter, first, last, 32154, "epsg", 32154, "NAD83 / Wisconsin South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333"); add_proj4text (p, 1, "333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wisconsin South\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",44.0666666666"); add_srs_wkt (p, 9, "6667],PARAMETER[\"standard_parallel_2\",42.7333333333333"); add_srs_wkt (p, 10, "3],PARAMETER[\"latitude_of_origin\",42],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-90],PARAMETER[\"false_easting\",600000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"32154\"]]"); p = add_epsg_def_ex (filter, first, last, 32155, "epsg", 32155, "NAD83 / Wyoming East", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wyoming East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",40.5],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-105.1666666666667],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9999375],PARAMETER[\"false_easting\",200000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"32155\"]]"); p = add_epsg_def_ex (filter, first, last, 32156, "epsg", 32156, "NAD83 / Wyoming East Central", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 2, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wyoming East Central\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-107.3333333333333],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",0.9999375],PARAMETER[\"false_easting\",400000]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",100000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"32156\"]]"); p = add_epsg_def_ex (filter, first, last, 32157, "epsg", 32157, "NAD83 / Wyoming West Central", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0"); add_proj4text (p, 1, "=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wyoming West Central\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",40.5],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-108.75],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999375],PARAMETER[\"false_easting\",600000],PARAMETER["); add_srs_wkt (p, 11, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"32157\"]]"); p = add_epsg_def_ex (filter, first, last, 32158, "epsg", 32158, "NAD83 / Wyoming West", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9"); add_proj4text (p, 1, "999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 2, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wyoming West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",40.5],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-110.0833333333333],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9999375],PARAMETER[\"false_easting\",800000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",100000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"32158\"]]"); p = add_epsg_def_ex (filter, first, last, 32161, "epsg", 32161, "NAD83 / Puerto Rico & Virgin Is.", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333"); add_proj4text (p, 1, "333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +"); add_proj4text (p, 2, "x_0=200000 +y_0=200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 3, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Puerto Rico & Virgin Is.\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS "); add_srs_wkt (p, 2, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Confo"); add_srs_wkt (p, 8, "rmal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",18.4"); add_srs_wkt (p, 9, "3333333333333],PARAMETER[\"standard_parallel_2\",18.0333"); add_srs_wkt (p, 10, "3333333333],PARAMETER[\"latitude_of_origin\",17.83333333"); add_srs_wkt (p, 11, "333333],PARAMETER[\"central_meridian\",-66.4333333333333"); add_srs_wkt (p, 12, "4],PARAMETER[\"false_easting\",200000],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 15, "\"EPSG\",\"32161\"]]"); p = add_epsg_def_ex (filter, first, last, 32164, "epsg", 32164, "NAD83 / BLM 14N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 14N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-99],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",1640416.67],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"32164\"]]"); p = add_epsg_def_ex (filter, first, last, 32165, "epsg", 32165, "NAD83 / BLM 15N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 15N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-93],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",1640416.67],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"32165\"]]"); p = add_epsg_def_ex (filter, first, last, 32166, "epsg", 32166, "NAD83 / BLM 16N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 16N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-87],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",1640416.67],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"32166\"]]"); p = add_epsg_def_ex (filter, first, last, 32167, "epsg", 32167, "NAD83 / BLM 17N (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / BLM 17N (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-81],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",1640416.67],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"32167\"]]"); p = add_epsg_def_ex (filter, first, last, 32180, "epsg", 32180, "NAD83 / SCoPQ zone 2 (deprecated)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / SCoPQ zone 2 (deprecated)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",-55.5],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999],PARAMETER[\"false_easting\",304800],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"32180\"]]"); p = add_epsg_def_ex (filter, first, last, 32181, "epsg", 32181, "NAD83 / MTM zone 1", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 1\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-53],PARAMETER[\"scale_factor\",0.9999],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",304800],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "2181\"]]"); p = add_epsg_def_ex (filter, first, last, 32182, "epsg", 32182, "NAD83 / MTM zone 2", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 2\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-56],PARAMETER[\"scale_factor\",0.9999],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",304800],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 13, "2182\"]]"); p = add_epsg_def_ex (filter, first, last, 32183, "epsg", 32183, "NAD83 / MTM zone 3", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 3\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-58.5],PARAMETER[\"scale_factor\",0.9999],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",304800],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "32183\"]]"); p = add_epsg_def_ex (filter, first, last, 32184, "epsg", 32184, "NAD83 / MTM zone 4", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 4\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-61.5],PARAMETER[\"scale_factor\",0.9999],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",304800],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "32184\"]]"); p = add_epsg_def_ex (filter, first, last, 32185, "epsg", 32185, "NAD83 / MTM zone 5", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 5\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-64.5],PARAMETER[\"scale_factor\",0.9999],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",304800],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "32185\"]]"); p = add_epsg_def_ex (filter, first, last, 32186, "epsg", 32186, "NAD83 / MTM zone 6", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 6\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-67.5],PARAMETER[\"scale_factor\",0.9999],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",304800],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "32186\"]]"); p = add_epsg_def_ex (filter, first, last, 32187, "epsg", 32187, "NAD83 / MTM zone 7", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 7\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-70.5],PARAMETER[\"scale_factor\",0.9999],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",304800],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "32187\"]]"); p = add_epsg_def_ex (filter, first, last, 32188, "epsg", 32188, "NAD83 / MTM zone 8", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 8\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-73.5],PARAMETER[\"scale_factor\",0.9999],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",304800],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "32188\"]]"); p = add_epsg_def_ex (filter, first, last, 32189, "epsg", 32189, "NAD83 / MTM zone 9", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 9\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 9, "dian\",-76.5],PARAMETER[\"scale_factor\",0.9999],PARAMET"); add_srs_wkt (p, 10, "ER[\"false_easting\",304800],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "32189\"]]"); p = add_epsg_def_ex (filter, first, last, 32190, "epsg", 32190, "NAD83 / MTM zone 10", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "E(X)", "East", "N(Y)", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 10\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-79.5],PARAMETER[\"scale_factor\",0.9999],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",304800],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"E(X)\",EAST],AXIS[\"N(Y)\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32190\"]]"); p = add_epsg_def_ex (filter, first, last, 32191, "epsg", 32191, "NAD83 / MTM zone 11", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 11\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-82.5],PARAMETER[\"scale_factor\",0.9999],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",304800],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"32191\"]]"); p = add_epsg_def_ex (filter, first, last, 32192, "epsg", 32192, "NAD83 / MTM zone 12", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 12\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-81],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",304800],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"32192\"]]"); p = add_epsg_def_ex (filter, first, last, 32193, "epsg", 32193, "NAD83 / MTM zone 13", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 13\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-84],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",304800],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"32193\"]]"); p = add_epsg_def_ex (filter, first, last, 32194, "epsg", 32194, "NAD83 / MTM zone 14", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 14\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-87],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",304800],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"32194\"]]"); p = add_epsg_def_ex (filter, first, last, 32195, "epsg", 32195, "NAD83 / MTM zone 15", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 15\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-90],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",304800],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"32195\"]]"); p = add_epsg_def_ex (filter, first, last, 32196, "epsg", 32196, "NAD83 / MTM zone 16", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 16\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-93],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",304800],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"32196\"]]"); p = add_epsg_def_ex (filter, first, last, 32197, "epsg", 32197, "NAD83 / MTM zone 17", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / MTM zone 17\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-96],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",304800],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"32197\"]]"); p = add_epsg_def_ex (filter, first, last, 32198, "epsg", 32198, "NAD83 / Quebec Lambert", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_"); add_proj4text (p, 1, "0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Quebec Lambert\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",60],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_2\",46],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 10, "in\",44],PARAMETER[\"central_meridian\",-68.5],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",0],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32198\"]]"); p = add_epsg_def_ex (filter, first, last, 32199, "epsg", 32199, "NAD83 / Louisiana Offshore", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666"); add_proj4text (p, 1, "667 +lat_0=25.5 +lon_0=-91.33333333333333 +x_0=1000000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Louisiana Offshore\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",27.8333333"); add_srs_wkt (p, 9, "3333333],PARAMETER[\"standard_parallel_2\",26.1666666666"); add_srs_wkt (p, 10, "6667],PARAMETER[\"latitude_of_origin\",25.5],PARAMETER[\""); add_srs_wkt (p, 11, "central_meridian\",-91.33333333333333],PARAMETER[\"false"); add_srs_wkt (p, 12, "_easting\",1000000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 13, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 14, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32199\"]]"); p = add_epsg_def_ex (filter, first, last, 32201, "epsg", 32201, "WGS 72 / UTM zone 1N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=1 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 1, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 1N\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-177],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32201"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32202, "epsg", 32202, "WGS 72 / UTM zone 2N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=2 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 1, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 2N\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-171],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32202"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32203, "epsg", 32203, "WGS 72 / UTM zone 3N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=3 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 1, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 3N\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-165],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32203"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32204, "epsg", 32204, "WGS 72 / UTM zone 4N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=4 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 1, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 4N\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-159],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32204"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32205, "epsg", 32205, "WGS 72 / UTM zone 5N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=5 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 1, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 5N\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-153],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32205"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32206, "epsg", 32206, "WGS 72 / UTM zone 6N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=6 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 1, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 6N\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-147],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32206"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32207, "epsg", 32207, "WGS 72 / UTM zone 7N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=7 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 1, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 7N\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-141],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32207"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32208, "epsg", 32208, "WGS 72 / UTM zone 8N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=8 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 1, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 8N\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-135],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32208"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32209, "epsg", 32209, "WGS 72 / UTM zone 9N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=9 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.55"); add_proj4text (p, 1, "4,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 9N\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-129],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32209"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32210, "epsg", 32210, "WGS 72 / UTM zone 10N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=10 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 10N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-123"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"322"); add_srs_wkt (p, 13, "10\"]]"); p = add_epsg_def_ex (filter, first, last, 32211, "epsg", 32211, "WGS 72 / UTM zone 11N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 11N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-117"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"322"); add_srs_wkt (p, 13, "11\"]]"); p = add_epsg_def_ex (filter, first, last, 32212, "epsg", 32212, "WGS 72 / UTM zone 12N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 12N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-111"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"322"); add_srs_wkt (p, 13, "12\"]]"); p = add_epsg_def_ex (filter, first, last, 32213, "epsg", 32213, "WGS 72 / UTM zone 13N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 13N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-105"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"322"); add_srs_wkt (p, 13, "13\"]]"); p = add_epsg_def_ex (filter, first, last, 32214, "epsg", 32214, "WGS 72 / UTM zone 14N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 14N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-99]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3221"); add_srs_wkt (p, 13, "4\"]]"); p = add_epsg_def_ex (filter, first, last, 32215, "epsg", 32215, "WGS 72 / UTM zone 15N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 15N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-93]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3221"); add_srs_wkt (p, 13, "5\"]]"); p = add_epsg_def_ex (filter, first, last, 32216, "epsg", 32216, "WGS 72 / UTM zone 16N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 16N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-87]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3221"); add_srs_wkt (p, 13, "6\"]]"); p = add_epsg_def_ex (filter, first, last, 32217, "epsg", 32217, "WGS 72 / UTM zone 17N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 17N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-81]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3221"); add_srs_wkt (p, 13, "7\"]]"); p = add_epsg_def_ex (filter, first, last, 32218, "epsg", 32218, "WGS 72 / UTM zone 18N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 18N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-75]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3221"); add_srs_wkt (p, 13, "8\"]]"); p = add_epsg_def_ex (filter, first, last, 32219, "epsg", 32219, "WGS 72 / UTM zone 19N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 19N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-69]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3221"); add_srs_wkt (p, 13, "9\"]]"); p = add_epsg_def_ex (filter, first, last, 32220, "epsg", 32220, "WGS 72 / UTM zone 20N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 20N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-63]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3222"); add_srs_wkt (p, 13, "0\"]]"); p = add_epsg_def_ex (filter, first, last, 32221, "epsg", 32221, "WGS 72 / UTM zone 21N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 21N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-57]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3222"); add_srs_wkt (p, 13, "1\"]]"); p = add_epsg_def_ex (filter, first, last, 32222, "epsg", 32222, "WGS 72 / UTM zone 22N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 22N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-51]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3222"); add_srs_wkt (p, 13, "2\"]]"); p = add_epsg_def_ex (filter, first, last, 32223, "epsg", 32223, "WGS 72 / UTM zone 23N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 23N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-45]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3222"); add_srs_wkt (p, 13, "3\"]]"); p = add_epsg_def_ex (filter, first, last, 32224, "epsg", 32224, "WGS 72 / UTM zone 24N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=24 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 24N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-39]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3222"); add_srs_wkt (p, 13, "4\"]]"); p = add_epsg_def_ex (filter, first, last, 32225, "epsg", 32225, "WGS 72 / UTM zone 25N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=25 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 25N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-33]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3222"); add_srs_wkt (p, 13, "5\"]]"); p = add_epsg_def_ex (filter, first, last, 32226, "epsg", 32226, "WGS 72 / UTM zone 26N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 26N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-27]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3222"); add_srs_wkt (p, 13, "6\"]]"); p = add_epsg_def_ex (filter, first, last, 32227, "epsg", 32227, "WGS 72 / UTM zone 27N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=27 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 27N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-21]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3222"); add_srs_wkt (p, 13, "7\"]]"); p = add_epsg_def_ex (filter, first, last, 32228, "epsg", 32228, "WGS 72 / UTM zone 28N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 28N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-15]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3222"); add_srs_wkt (p, 13, "8\"]]"); p = add_epsg_def_ex (filter, first, last, 32229, "epsg", 32229, "WGS 72 / UTM zone 29N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 29N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-9],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32229"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32230, "epsg", 32230, "WGS 72 / UTM zone 30N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 30N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-3],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32230"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32231, "epsg", 32231, "WGS 72 / UTM zone 31N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=31 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 31N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",3],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32231\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 32232, "epsg", 32232, "WGS 72 / UTM zone 32N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 32N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",9],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 12, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32232\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 32233, "epsg", 32233, "WGS 72 / UTM zone 33N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 33N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",15],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32233"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32234, "epsg", 32234, "WGS 72 / UTM zone 34N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 34N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",21],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32234"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32235, "epsg", 32235, "WGS 72 / UTM zone 35N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 35N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",27],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32235"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32236, "epsg", 32236, "WGS 72 / UTM zone 36N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 36N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",33],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32236"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32237, "epsg", 32237, "WGS 72 / UTM zone 37N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 37N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",39],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32237"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32238, "epsg", 32238, "WGS 72 / UTM zone 38N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 38N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",45],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32238"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32239, "epsg", 32239, "WGS 72 / UTM zone 39N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 39N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",51],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32239"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32240, "epsg", 32240, "WGS 72 / UTM zone 40N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=40 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 40N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",57],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32240"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32241, "epsg", 32241, "WGS 72 / UTM zone 41N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=41 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 41N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",63],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32241"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32242, "epsg", 32242, "WGS 72 / UTM zone 42N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=42 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 42N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",69],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32242"); add_srs_wkt (p, 13, "\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_prussian.c��������������������������������������������0000664�0001750�0001750�00000161635�12544707704�020470� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_prussian(int filter,struct epsg_defs **first, struct epsg_defs **last) { /* old Prussian based on Cassini-Soldner - kindly contributed by Mark Johnson */ struct epsg_defs *p; p = add_epsg_def(filter,first,last,187900,"mj10777.de",187900,"DHDN / Soldner Rathausnetz 660"); add_proj4text(p,0,"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 "); add_proj4text(p,1,"+x_0=14741.77 +y_0=-11288.28 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner Rathausnetz 660\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.41864827777778],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",13.62720366666667],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",14741.77],PARAMETER[\"false_northing\",-11288.28],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187900\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187901,"mj10777.de",187901,"DHDN / Soldner 1 Kucklinsberg"); add_proj4text(p,0,"+proj=cass +lat_0=54.46022375 +lon_0=21.95509736 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 1 Kucklinsberg\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.46022375],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",21.95509736],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187901\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187902,"mj10777.de",187902,"DHDN / Soldner 2 Paulinen"); add_proj4text(p,0,"+proj=cass +lat_0=54.28921067 +lon_0=20.73315431 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 2 Paulinen\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.28921067],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",20.73315431],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187902\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187903,"mj10777.de",187903,"DHDN / Soldner 3 Markushof I"); add_proj4text(p,0,"+proj=cass +lat_0=54.05881333 +lon_0=19.37343583 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 3 Markushof I\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.05881333],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",19.37343583],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187903\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187904,"mj10777.de",187904,"DHDN / Soldner 4 Thurmberg"); add_proj4text(p,0,"+proj=cass +lat_0=54.22552092 +lon_0=18.12569375 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 4 Thurmberg\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.22552092],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",18.12569375],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187904\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187905,"mj10777.de",187905,"DHDN / Soldner 5 Kauernick I"); add_proj4text(p,0,"+proj=cass +lat_0=53.38933197 +lon_0=19.59810438 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 5 Kauernick I\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",53.38933197],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",19.59810438],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187905\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187906,"mj10777.de",187906,"DHDN / Soldner 6 Thorn, Rathausturm"); add_proj4text(p,0,"+proj=cass +lat_0=53.01181586 +lon_0=18.60725428 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 6 Thorn, Rathausturm\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",53.01181586],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",18.60725428],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187906\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187907,"mj10777.de",187907,"DHDN / Soldner 7 Heinrichsthal"); add_proj4text(p,0,"+proj=cass +lat_0=53.71289217 +lon_0=17.49676781 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 7 Heinrichsthal\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",53.71289217],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",17.49676781],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187907\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187908,"mj10777.de",187908,"DHDN / Soldner 8 Gollenberg, Denkmal"); add_proj4text(p,0,"+proj=cass +lat_0=54.20857178 +lon_0=16.22956781 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 8 Gollenberg, Denkmal\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.20857178],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",16.22956781],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187908\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187909,"mj10777.de",187909,"DHDN / Soldner 9 Gnesen"); add_proj4text(p,0,"+proj=cass +lat_0=52.53820406 +lon_0=17.59450500 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 9 Gnesen\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.53820406],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",17.59450500],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187909\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187910,"mj10777.de",187910,"DHDN / Soldner 10 Josefsberg"); add_proj4text(p,0,"+proj=cass +lat_0=51.98768806 +lon_0=16.20044389 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 10 Josefsberg\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.98768806],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",16.20044389],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187910\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187911,"mj10777.de",187911,"DHDN / Soldner 11 Schroda"); add_proj4text(p,0,"+proj=cass +lat_0=52.23137372 +lon_0=17.27795372 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 11 Schroda\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.23137372],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",17.27795372],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187911\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187912,"mj10777.de",187912,"DHDN / Soldner 12 Pschow"); add_proj4text(p,0,"+proj=cass +lat_0=50.04206544 +lon_0=18.39610692 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 12 Pschow\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.04206544],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",18.39610692],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187912\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187913,"mj10777.de",187913,"DHDN / Soldner 13 Rummelsberg"); add_proj4text(p,0,"+proj=cass +lat_0=50.70352314 +lon_0=17.11233917 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 13 Rummelsberg\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.70352314],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",17.11233917],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187913\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187914,"mj10777.de",187914,"DHDN / Soldner 14 Gröditzberg I"); add_proj4text(p,0,"+proj=cass +lat_0=51.17819342 +lon_0=15.76127086 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 14 Gröditzberg I\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.17819342],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",15.76127086],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187914\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187915,"mj10777.de",187915,"DHDN / Soldner 15 Kaltenborn"); add_proj4text(p,0,"+proj=cass +lat_0=51.92903708 +lon_0=14.66212942 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 15 Kaltenborn\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.92903708],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",14.66212942],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187915\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187917,"mj10777.de",187917,"DHDN / Soldner 17 Greifswald, Nikolaikirche"); add_proj4text(p,0,"+proj=cass +lat_0=54.09698872 +lon_0=13.37880703 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 17 Greifswald, Nikolaikirche\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.09698872],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",13.37880703],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187917\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187916,"mj10777.de",187916,"DHDN / Soldner 16 Bahn I"); add_proj4text(p,0,"+proj=cass +lat_0=53.10184583 +lon_0=14.70144539 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 16 Bahn I\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",53.10184583],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",14.70144539],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187916\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187918,"mj10777.de",187918,"DHDN / Soldner 18 Müggelberg 600"); add_proj4text(p,0,"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 18 Müggelberg 600\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.41864827777778],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",13.62720366666667],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187918\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187919,"mj10777.de",187919,"DHDN / Soldner 19 Götzer Berg 650"); add_proj4text(p,0,"+proj=cass +lat_0=52.43725961111112 +lon_0=12.72882972222223 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 19 Götzer Berg 650\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.43725961111112],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",12.72882972222223],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187919\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187920,"mj10777.de",187920,"DHDN / Soldner 20 Torgau, Stadtkirche"); add_proj4text(p,0,"+proj=cass +lat_0=51.56136217 +lon_0=13.00760264 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 20 Torgau, Stadtkirche\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.56136217],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",13.00760264],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187920\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187921,"mj10777.de",187921,"DHDN / Soldner 21 Burkersroda, Kirchturm"); add_proj4text(p,0,"+proj=cass +lat_0=51.17656322 +lon_0=11.64139367 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 21 Burkersroda, Kirchturm\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.17656322],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",11.64139367],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187921\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187922,"mj10777.de",187922,"DHDN / Soldner 22 Inselsberg"); add_proj4text(p,0,"+proj=cass +lat_0=50.85237983 +lon_0=10.46776506 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 22 Inselsberg\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.85237983],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",10.46776506],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187922\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187923,"mj10777.de",187923,"DHDN / Soldner 23 Magdeburg"); add_proj4text(p,0,"+proj=cass +lat_0=52.12625311 +lon_0=11.63550325 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 23 Magdeburg\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.12625311],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",11.63550325],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187923\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187924,"mj10777.de",187924,"DHDN / Soldner 24 Ostenfeld I"); add_proj4text(p,0,"+proj=cass +lat_0=54.47018733 +lon_0=9.23411097 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 24 Ostenfeld I\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.47018733],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",9.23411097],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187924\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187925,"mj10777.de",187925,"DHDN / Soldner 25 Rathkrügen"); add_proj4text(p,0,"+proj=cass +lat_0=53.81839364 +lon_0=10.04220189 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 25 Rathkrügen\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",53.81839364],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",10.04220189],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187925\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187926,"mj10777.de",187926,"DHDN / Soldner 26 Bungsberg, Aussichtsturm"); add_proj4text(p,0,"+proj=cass +lat_0=54.21110653 +lon_0=10.72636431 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 26 Bungsberg, Aussichtsturm\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",54.21110653],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",10.72636431],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187926\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187927,"mj10777.de",187927,"DHDN / Soldner 27 Celle, Stadtkirche"); add_proj4text(p,0,"+proj=cass +lat_0=52.62574192 +lon_0=10.08190214 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 27 Celle, Stadtkirche\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.62574192],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",10.08190214],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187927\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187928,"mj10777.de",187928,"DHDN / Soldner 28 Kaltenborn"); add_proj4text(p,0,"+proj=cass +lat_0=51.79646722 +lon_0=10.27322494 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 28 Kaltenborn\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.79646722],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",10.27322494],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187928\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187929,"mj10777.de",187929,"DHDN / Soldner 29 Silberberg"); add_proj4text(p,0,"+proj=cass +lat_0=53.73123461 +lon_0=9.05774925 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 29 Silberberg\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",53.73123461],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",9.05774925],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187929\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187930,"mj10777.de",187930,"DHDN / Soldner 30 Windberg"); add_proj4text(p,0,"+proj=cass +lat_0=52.88088372 +lon_0=7.53062114 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 30 Windberg\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.88088372],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",7.53062114],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187930\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187931,"mj10777.de",187931,"DHDN / Soldner 31 Hermannsdenkmal"); add_proj4text(p,0,"+proj=cass +lat_0=51.91301647 +lon_0=8.84051853 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 31 Hermannsdenkmal\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.91301647],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",8.84051853],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187931\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187932,"mj10777.de",187932,"DHDN / Soldner 32 Münster"); add_proj4text(p,0,"+proj=cass +lat_0=51.96547642 +lon_0=7.62334994 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 32 Münster\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.96547642],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",7.62334994],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187932\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187933,"mj10777.de",187933,"DHDN / Soldner 33 Bochum, Peter-Paul-Kirche"); add_proj4text(p,0,"+proj=cass +lat_0=51.48373533 +lon_0=7.22115822 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 33 Bochum, Peter-Paul-Kirche\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.48373533],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",7.22115822],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187933\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187934,"mj10777.de",187934,"DHDN / Soldner 34 Homert"); add_proj4text(p,0,"+proj=cass +lat_0=51.26480147 +lon_0=8.10687050 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 34 Homert\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.26480147],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",8.10687050],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187934\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187935,"mj10777.de",187935,"DHDN / Soldner 35 Kassel, Martinskirche"); add_proj4text(p,0,"+proj=cass +lat_0=51.31846489 +lon_0=9.50203072 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 35 Kassel, Martinskirche\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",51.31846489],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",9.50203072],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187935\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187936,"mj10777.de",187936,"DHDN / Soldner 36 Schaumburg, Schloßturm"); add_proj4text(p,0,"+proj=cass +lat_0=50.34048964 +lon_0=7.97808156 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 36 Schaumburg, Schloßturm\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.34048964],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",7.97808156],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187936\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187937,"mj10777.de",187937,"DHDN / Soldner 37 Fleckert"); add_proj4text(p,0,"+proj=cass +lat_0=50.18762544 +lon_0=7.60594289 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 37 Fleckert\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.18762544],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",7.60594289],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187937\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187938,"mj10777.de",187938,"DHDN / Soldner 38 Cöln, Dom"); add_proj4text(p,0,"+proj=cass +lat_0=50.94257242 +lon_0=6.95897600 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 38 Cöln, Dom\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.94257242],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",6.95897600],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187938\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187939,"mj10777.de",187939,"DHDN / Soldner 39 Langschoß"); add_proj4text(p,0,"+proj=cass +lat_0=50.66738711 +lon_0=6.28935703 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 39 Langschoß\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",50.66738711],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",6.28935703],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187939\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187940,"mj10777.de",187940,"DHDN / Soldner 40 Rissenthal"); add_proj4text(p,0,"+proj=cass +lat_0=49.47801819 +lon_0=6.75864339 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner 40 Rissenthal\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",49.47801819],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",6.75864339],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187940\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def(filter,first,last,187941,"mj10777.de",187941,"DHDN / Soldner Bayern"); add_proj4text(p,0,"+proj=cass +lat_0=48.13959111 +lon_0=11.57437083 "); add_proj4text(p,1,"+x_0=0 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner Bayern\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",48.13959111],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",11.57437083],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",0],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187941\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter,first, last, 187998, "mj10777.de", 187998,"DHDN / Ferro / Deutsches_Hauptdreiecksnetz"); add_proj4text(p,0,"+proj=longlat +ellps=bessel +datum=potsdam +pm=ferro +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Ferro / Deutsches_Hauptdreiecksnetz\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\","); add_srs_wkt(p,3,"SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"7004\"]], AUTHORITY[\"EPSG\",\"6314\"]],"); add_srs_wkt(p,5,"PRIMEM[\"ferro\",-17.66666666666667],UNIT[\"Degree\",0.017453292519943295,"); add_srs_wkt(p,6,"AUTHORITY[\"mj10777.de\",\"187998\"]],AUTHORITY[\"EPSG\",\"4314\"]]"); /* mj10777: Not exsiting System, used for testing purposes. */ p = add_epsg_def(filter,first,last,187999,"mj10777.de",187999,"DHDN / Brandenburger Tor"); add_proj4text(p,0,"+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 "); add_proj4text(p,1,"+x_0=16819.76033675660074 +y_0=-11046.08218553455117 +ellps=bessel +datum=potsdam +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"DHDN / Soldner Brandenburger Tor\","); add_srs_wkt(p,1,"GEOGCS[\"DHDN\","); add_srs_wkt(p,2,"DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\","); add_srs_wkt(p,3,"6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],"); add_srs_wkt(p,4,"AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt(p,5,"AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4314\"]],"); add_srs_wkt(p,7,"UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt(p,8,"PROJECTION[\"Cassini_Soldner\"],"); add_srs_wkt(p,9,"PARAMETER[\"latitude_of_origin\",52.41864827777778],"); add_srs_wkt(p,10,"PARAMETER[\"central_meridian\",13.62720366666667],"); add_srs_wkt(p,11,"PARAMETER[\"false_easting\",16819.76033675660074],PARAMETER[\"false_northing\",-11046.08218553455117],"); add_srs_wkt(p,12,"AUTHORITY[\"mj10777.de\",\"187999\"],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]]"); p = add_epsg_def (filter,first, last, 325833, "mj10777.de", 325833,"ETRS89 / UTM zone 33N (Brandenburg)"); add_proj4text(p,0,"+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt(p,0,"PROJCS[\"ETRS89 / UTM zone 33N (Brandenburg)\",GEOGCS[\"ETRS89\","); add_srs_wkt(p,1,"DATUM[\"European_Terrestrial_Reference_System_1989\","); add_srs_wkt(p,2,"SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt(p,3,"AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt(p,4,"PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt(p,5,"UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt(p,6,"AUTHORITY[\"EPSG\",\"4258\"]],UNIT[\"metre\",1,"); add_srs_wkt(p,7,"AUTHORITY[\"EPSG\",\"9001\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt(p,8,"PARAMETER[\"latitude_of_origin\",0],"); add_srs_wkt(p,9,"PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt(p,10,"PARAMETER[\"false_easting\",3500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt(p,11,"AUTHORITY[\"EPSG\",\"325833\"],"); add_srs_wkt(p,12,"AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]]"); } #endif /* full EPSG initialization enabled/disabled */ ���������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_33.c��������������������������������������������������0000664�0001750�0001750�00000547050�12544707704�017050� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_33 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 6676, "epsg", 6676, "JGD2011 / Japan Plane Rectangular CS VIII", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS VIII\",GEO"); add_srs_wkt (p, 1, "GCS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",36],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",138.5],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",0],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"667"); add_srs_wkt (p, 13, "6\"]]"); p = add_epsg_def_ex (filter, first, last, 6677, "epsg", 6677, "JGD2011 / Japan Plane Rectangular CS IX", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS IX\",GEOGC"); add_srs_wkt (p, 1, "S[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",36],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",139.8333333333333],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999],PARAMETER[\"false_easting\",0],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"6677\"]]"); p = add_epsg_def_ex (filter, first, last, 6678, "epsg", 6678, "JGD2011 / Japan Plane Rectangular CS X", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999"); add_proj4text (p, 1, " +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS X\",GEOGCS"); add_srs_wkt (p, 1, "[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPHE"); add_srs_wkt (p, 2, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 4, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",40],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",140.8333333333333],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 10, ".9999],PARAMETER[\"false_easting\",0],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"6678\"]]"); p = add_epsg_def_ex (filter, first, last, 6679, "epsg", 6679, "JGD2011 / Japan Plane Rectangular CS XI", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XI\",GEOGC"); add_srs_wkt (p, 1, "S[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",44],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",140.25],PARAMETER[\"scale_factor\",0.9999],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",0],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"6679\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 6680, "epsg", 6680, "JGD2011 / Japan Plane Rectangular CS XII", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XII\",GEOG"); add_srs_wkt (p, 1, "CS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",44],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",142.25],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",0],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"668"); add_srs_wkt (p, 13, "0\"]]"); p = add_epsg_def_ex (filter, first, last, 6681, "epsg", 6681, "JGD2011 / Japan Plane Rectangular CS XIII", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XIII\",GEO"); add_srs_wkt (p, 1, "GCS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",44],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",144.25],PARAMETER[\"scale_factor\",0.9999],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",0],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"66"); add_srs_wkt (p, 13, "81\"]]"); p = add_epsg_def_ex (filter, first, last, 6682, "epsg", 6682, "JGD2011 / Japan Plane Rectangular CS XIV", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XIV\",GEOG"); add_srs_wkt (p, 1, "CS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",26],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",142],PARAMETER[\"scale_factor\",0.9999],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",0],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"6682\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 6683, "epsg", 6683, "JGD2011 / Japan Plane Rectangular CS XV", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0"); add_proj4text (p, 1, "=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XV\",GEOGC"); add_srs_wkt (p, 1, "S[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",26],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",127.5],PARAMETER[\"scale_factor\",0.9999],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",0],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"6683\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 6684, "epsg", 6684, "JGD2011 / Japan Plane Rectangular CS XVI", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XVI\",GEOG"); add_srs_wkt (p, 1, "CS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",26],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",124],PARAMETER[\"scale_factor\",0.9999],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",0],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"6684\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 6685, "epsg", 6685, "JGD2011 / Japan Plane Rectangular CS XVII", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XVII\",GEO"); add_srs_wkt (p, 1, "GCS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",26],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",131],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"6685\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 6686, "epsg", 6686, "JGD2011 / Japan Plane Rectangular CS XVIII", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XVIII\",GE"); add_srs_wkt (p, 1, "OGCS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\","); add_srs_wkt (p, 2, "SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",20],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",136],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"6686\""); add_srs_wkt (p, 13, "]]"); p = add_epsg_def_ex (filter, first, last, 6687, "epsg", 6687, "JGD2011 / Japan Plane Rectangular CS XIX", 0, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / Japan Plane Rectangular CS XIX\",GEOG"); add_srs_wkt (p, 1, "CS[\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"6668\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",26],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",154],PARAMETER[\"scale_factor\",0.9999],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",0],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"6687\"]"); add_srs_wkt (p, 13, "]"); p = add_epsg_def_ex (filter, first, last, 6688, "epsg", 6688, "JGD2011 / UTM zone 51N", 0, 0, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=51 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / UTM zone 51N\",GEOGCS[\"JGD2011\",DAT"); add_srs_wkt (p, 1, "UM[\"Japanese_Geodetic_Datum_2011\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"6668\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",123],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 12, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6688\"]]"); p = add_epsg_def_ex (filter, first, last, 6689, "epsg", 6689, "JGD2011 / UTM zone 52N", 0, 0, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=52 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / UTM zone 52N\",GEOGCS[\"JGD2011\",DAT"); add_srs_wkt (p, 1, "UM[\"Japanese_Geodetic_Datum_2011\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"6668\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",129],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 12, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6689\"]]"); p = add_epsg_def_ex (filter, first, last, 6690, "epsg", 6690, "JGD2011 / UTM zone 53N", 0, 0, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=53 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / UTM zone 53N\",GEOGCS[\"JGD2011\",DAT"); add_srs_wkt (p, 1, "UM[\"Japanese_Geodetic_Datum_2011\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"6668\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",135],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 12, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6690\"]]"); p = add_epsg_def_ex (filter, first, last, 6691, "epsg", 6691, "JGD2011 / UTM zone 54N", 0, 0, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=54 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / UTM zone 54N\",GEOGCS[\"JGD2011\",DAT"); add_srs_wkt (p, 1, "UM[\"Japanese_Geodetic_Datum_2011\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"6668\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",141],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 12, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6691\"]]"); p = add_epsg_def_ex (filter, first, last, 6692, "epsg", 6692, "JGD2011 / UTM zone 55N", 0, 0, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=55 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2011 / UTM zone 55N\",GEOGCS[\"JGD2011\",DAT"); add_srs_wkt (p, 1, "UM[\"Japanese_Geodetic_Datum_2011\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"6668\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",147],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 11, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 12, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6692\"]]"); p = add_epsg_def_ex (filter, first, last, 6696, "epsg", 6696, "JGD2000", 1, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +vunit"); add_proj4text (p, 1, "s=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"JGD2000 + JGD2000 (vertical) height\",GEOGCS["); add_srs_wkt (p, 1, "\"JGD2000\",DATUM[\"Japanese_Geodetic_Datum_2000\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6612\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4612\"]],VERT_CS[\"JGD2000"); add_srs_wkt (p, 8, " (vertical) height\",VERT_DATUM[\"Japanese Geodetic Datu"); add_srs_wkt (p, 9, "m 2000 (vertical)\",2005,AUTHORITY[\"EPSG\",\"1130\"]],U"); add_srs_wkt (p, 10, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\""); add_srs_wkt (p, 11, ",UP],AUTHORITY[\"EPSG\",\"6694\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "6696\"]]"); p = add_epsg_def_ex (filter, first, last, 6697, "epsg", 6697, "JGD2011", 1, 1, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2011", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"JGD2011 + JGD2011 (vertical) height\",GEOGCS["); add_srs_wkt (p, 1, "\"JGD2011\",DATUM[\"Japanese_Geodetic_Datum_2011\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],AUTHORITY[\"EPSG\",\"1128\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"6668\"]],VERT_CS[\"JGD2011 (vertical) height\",VE"); add_srs_wkt (p, 8, "RT_DATUM[\"Japanese Geodetic Datum 2011 (vertical)\",200"); add_srs_wkt (p, 9, "5,AUTHORITY[\"EPSG\",\"1131\"]],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 10, "TY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 11, ",\"6695\"]],AUTHORITY[\"EPSG\",\"6697\"]]"); p = add_epsg_def_ex (filter, first, last, 6700, "epsg", 6700, "Tokyo", 1, 1, "Bessel 1841", "Greenwich", "Tokyo", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-146.414,507.337,68"); add_proj4text (p, 1, "0.507,0,0,0,0 +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"Tokyo + JSLD72 height\",GEOGCS[\"Tokyo\",DATU"); add_srs_wkt (p, 1, "M[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397.155,299.152"); add_srs_wkt (p, 2, "8128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-146.414,507."); add_srs_wkt (p, 3, "337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"6301\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"4301\"]],VERT_CS[\"JSLD72 height\",VERT_"); add_srs_wkt (p, 8, "DATUM[\"Japanese Standard Levelling Datum 1972\",2005,AU"); add_srs_wkt (p, 9, "THORITY[\"EPSG\",\"1129\"]],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, "EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 11, "693\"]],AUTHORITY[\"EPSG\",\"6700\"]]"); p = add_epsg_def_ex (filter, first, last, 6703, "epsg", 6703, "WGS 84 / TM 60 SW", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-60 +k=0.9996 +x_0=500000 +y"); add_proj4text (p, 1, "_0=10000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / TM 60 SW\",GEOGCS[\"WGS 84\",DATUM[\"W"); add_srs_wkt (p, 1, "GS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",-60],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 9, "996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"6703\"]]"); p = add_epsg_def_ex (filter, first, last, 6706, "epsg", 6706, "RDN2008", 1, 1, "GRS 1980", "Greenwich", "Rete_Dinamica_Nazionale_2008", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"RDN2008\",DATUM[\"Rete_Dinamica_Nazionale_2008\""); add_srs_wkt (p, 1, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 2, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"1132\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"6706\"]]"); p = add_epsg_def_ex (filter, first, last, 6707, "epsg", 6707, "RDN2008 / TM32", 0, 1, "GRS 1980", "Greenwich", "Rete_Dinamica_Nazionale_2008", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RDN2008 / TM32\",GEOGCS[\"RDN2008\",DATUM[\"Ret"); add_srs_wkt (p, 1, "e_Dinamica_Nazionale_2008\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1132\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"6706\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",9],PARAMETER[\"scale_factor\",0.9996],PARAMETER["); add_srs_wkt (p, 10, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 11, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"6707\"]]"); p = add_epsg_def_ex (filter, first, last, 6708, "epsg", 6708, "RDN2008 / TM33", 0, 1, "GRS 1980", "Greenwich", "Rete_Dinamica_Nazionale_2008", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RDN2008 / TM33\",GEOGCS[\"RDN2008\",DATUM[\"Ret"); add_srs_wkt (p, 1, "e_Dinamica_Nazionale_2008\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1132\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"6706\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",15],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"6708\"]]"); p = add_epsg_def_ex (filter, first, last, 6709, "epsg", 6709, "RDN2008 / TM34", 0, 1, "GRS 1980", "Greenwich", "Rete_Dinamica_Nazionale_2008", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RDN2008 / TM34\",GEOGCS[\"RDN2008\",DATUM[\"Ret"); add_srs_wkt (p, 1, "e_Dinamica_Nazionale_2008\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1132\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"6706\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",21],PARAMETER[\"scale_factor\",0.9996],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 12, "Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"6709\"]]"); p = add_epsg_def_ex (filter, first, last, 6720, "epsg", 6720, "WGS 84 / CIG92", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105.625 +k=1.000024 +x_0=500"); add_proj4text (p, 1, "00 +y_0=1300000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / CIG92\",GEOGCS[\"WGS 84\",DATUM[\"WGS_"); add_srs_wkt (p, 1, "1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRI"); add_srs_wkt (p, 3, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 4, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 5, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 7, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 8, "ntral_meridian\",105.625],PARAMETER[\"scale_factor\",1.0"); add_srs_wkt (p, 9, "00024],PARAMETER[\"false_easting\",50000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",1300000],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 11, "G\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\","); add_srs_wkt (p, 12, "NORTH],AUTHORITY[\"EPSG\",\"6720\"]]"); p = add_epsg_def_ex (filter, first, last, 6721, "epsg", 6721, "GDA94 / CIG94", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105.625 +k=1.00002514 +x_0=5"); add_proj4text (p, 1, "0000 +y_0=1300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / CIG94\",GEOGCS[\"GDA94\",DATUM[\"Geocen"); add_srs_wkt (p, 1, "tric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",105.625],PARAMETER[\"scale_factor\",1.0000251"); add_srs_wkt (p, 10, "4],PARAMETER[\"false_easting\",50000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",1300000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"6721\"]]"); p = add_epsg_def_ex (filter, first, last, 6722, "epsg", 6722, "WGS 84 / CKIG92", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96.875 +k=1 +x_0=50000 +y_0="); add_proj4text (p, 1, "1400000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / CKIG92\",GEOGCS[\"WGS 84\",DATUM[\"WGS"); add_srs_wkt (p, 1, "_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHOR"); add_srs_wkt (p, 2, "ITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PR"); add_srs_wkt (p, 3, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 4, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 5, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 7, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 8, "entral_meridian\",96.875],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 9, "PARAMETER[\"false_easting\",50000],PARAMETER[\"false_nor"); add_srs_wkt (p, 10, "thing\",1400000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 11, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"6722\"]]"); p = add_epsg_def_ex (filter, first, last, 6723, "epsg", 6723, "GDA94 / CKIG94", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96.875 +k=0.99999387 +x_0=50"); add_proj4text (p, 1, "000 +y_0=1500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / CKIG94\",GEOGCS[\"GDA94\",DATUM[\"Geoce"); add_srs_wkt (p, 1, "ntric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",96.875],PARAMETER[\"scale_factor\",0.9999938"); add_srs_wkt (p, 10, "7],PARAMETER[\"false_easting\",50000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",1500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"6723\"]]"); p = add_epsg_def_ex (filter, first, last, 6732, "epsg", 6732, "GDA94 / MGA zone 41", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=41 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 41\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",63],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"6732\"]]"); p = add_epsg_def_ex (filter, first, last, 6733, "epsg", 6733, "GDA94 / MGA zone 42", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=42 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 42\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",69],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"6733\"]]"); p = add_epsg_def_ex (filter, first, last, 6734, "epsg", 6734, "GDA94 / MGA zone 43", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=43 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 43\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",75],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"6734\"]]"); p = add_epsg_def_ex (filter, first, last, 6735, "epsg", 6735, "GDA94 / MGA zone 44", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=44 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 44\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",81],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"6735\"]]"); p = add_epsg_def_ex (filter, first, last, 6736, "epsg", 6736, "GDA94 / MGA zone 46", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=46 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 46\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",93],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"6736\"]]"); p = add_epsg_def_ex (filter, first, last, 6737, "epsg", 6737, "GDA94 / MGA zone 47", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=47 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 47\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",99],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"6737\"]]"); p = add_epsg_def_ex (filter, first, last, 6738, "epsg", 6738, "GDA94 / MGA zone 59", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / MGA zone 59\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",171],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"6738\"]]"); p = add_epsg_def_ex (filter, first, last, 6783, "epsg", 6783, "NAD83(CORS96)", 1, 1, "GRS 1980", "Greenwich", "NAD83_Continuously_Operating_Reference_Station_1996", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"NAD83(CORS96)\",DATUM[\"NAD83_Continuously_Oper"); add_srs_wkt (p, 1, "ating_Reference_Station_1996\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"1133\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"6783\"]]"); p = add_epsg_def_ex (filter, first, last, 6867, "epsg", 6867, "NAD83(CORS96) / Oregon LCC (m)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Continuously_Operating_Reference_Station_1996", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120"); add_proj4text (p, 1, ".5 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CORS96) / Oregon LCC (m)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(CORS96)\",DATUM[\"NAD83_Continuously_Operating_Referenc"); add_srs_wkt (p, 2, "e_Station_1996\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1133\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"6783\"]],PROJECTION[\"Lamb"); add_srs_wkt (p, 8, "ert_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",43],PARAMETER[\"standard_parallel_2\",45.5],PARAMET"); add_srs_wkt (p, 10, "ER[\"latitude_of_origin\",41.75],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-120.5],PARAMETER[\"false_easting\",400000],PARA"); add_srs_wkt (p, 12, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 14, "HORITY[\"EPSG\",\"6867\"]]"); p = add_epsg_def_ex (filter, first, last, 6868, "epsg", 6868, "NAD83(CORS96) / Oregon GIC Lambert (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Continuously_Operating_Reference_Station_1996", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120"); add_proj4text (p, 1, ".5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +units=ft +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CORS96) / Oregon GIC Lambert (ft)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(CORS96)\",DATUM[\"NAD83_Continuously_Operating"); add_srs_wkt (p, 2, "_Reference_Station_1996\",SPHEROID[\"GRS 1980\",6378137,"); add_srs_wkt (p, 3, "298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"1133\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"6783\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",43],PARAMETER[\"standard_parallel_2\",45.5"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",41.75],PARAMETER[\"ce"); add_srs_wkt (p, 11, "ntral_meridian\",-120.5],PARAMETER[\"false_easting\",131"); add_srs_wkt (p, 12, "2335.958],PARAMETER[\"false_northing\",0],UNIT[\"foot\","); add_srs_wkt (p, 13, "0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6868\"]]"); p = add_epsg_def_ex (filter, first, last, 6870, "epsg", 6870, "ETRS89 / Albania 2010", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Albania 2010\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",20],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"6870\"]]"); p = add_epsg_def_ex (filter, first, last, 6871, "epsg", 6871, "WGS 84 / Pseudo-Mercator", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Mercator_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +uni"); add_proj4text (p, 1, "ts=m +geoidgrids=egm08_25.gtx +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"WGS 84 / Pseudo-Mercator + EGM2008 geoid hei"); add_srs_wkt (p, 1, "ght\",PROJCS[\"WGS 84 / Pseudo-Mercator\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 2, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 3, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"M"); add_srs_wkt (p, 8, "ercator_1SP\"],PARAMETER[\"central_meridian\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 12, "EXTENSION[\"PROJ4\",\"+proj=merc +a=6378137 +b=6378137 +"); add_srs_wkt (p, 13, "lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +n"); add_srs_wkt (p, 14, "adgrids=@null +wktext +no_defs\"],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "3857\"]],VERT_CS[\"EGM2008 geoid height\",VERT_DATUM[\"E"); add_srs_wkt (p, 16, "GM2008 geoid\",2005,EXTENSION[\"PROJ4_GRIDS\",\"egm08_25"); add_srs_wkt (p, 17, ".gtx\"],AUTHORITY[\"EPSG\",\"1027\"]],UNIT[\"metre\",1,A"); add_srs_wkt (p, 18, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\""); add_srs_wkt (p, 19, "EPSG\",\"3855\"]],AUTHORITY[\"EPSG\",\"6871\"]]"); p = add_epsg_def_ex (filter, first, last, 6875, "epsg", 6875, "RDN2008 / Italy zone", 0, 1, "GRS 1980", "Greenwich", "Rete_Dinamica_Nazionale_2008", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9985000000000001 +x_"); add_proj4text (p, 1, "0=7000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RDN2008 / Italy zone\",GEOGCS[\"RDN2008\",DATUM"); add_srs_wkt (p, 1, "[\"Rete_Dinamica_Nazionale_2008\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1132\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"6706\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",12],PARAMETER[\"scale_factor\",0.9985],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",7000000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"6875\"]]"); p = add_epsg_def_ex (filter, first, last, 6876, "epsg", 6876, "RDN2008 / Zone 12", 0, 1, "GRS 1980", "Greenwich", "Rete_Dinamica_Nazionale_2008", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=3000000 +y_0=0 "); add_proj4text (p, 1, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RDN2008 / Zone 12\",GEOGCS[\"RDN2008\",DATUM[\""); add_srs_wkt (p, 1, "Rete_Dinamica_Nazionale_2008\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1132\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"6706\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",12],PARAMETER[\"scale_factor\",1],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",3000000],PARAMETER[\"false_northing\",0]"); add_srs_wkt (p, 11, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"N"); add_srs_wkt (p, 12, "orthing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"6876\"]]"); p = add_epsg_def_ex (filter, first, last, 6879, "epsg", 6879, "NAD83(2011) / Wisconsin Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333"); add_proj4text (p, 1, "334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Wisconsin Central\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(2011)\",DATUM[\"NAD83_National_Spatial_Reference_Syste"); add_srs_wkt (p, 2, "m_2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Conf"); add_srs_wkt (p, 8, "ormal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",45."); add_srs_wkt (p, 9, "5],PARAMETER[\"standard_parallel_2\",44.25],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",43.83333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-90],PARAMETER[\"false_easting\",600000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"6879\"]]"); p = add_epsg_def_ex (filter, first, last, 6880, "epsg", 6880, "NAD83(2011) / Nebraska (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2011", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(2011) / Nebraska (ftUS)\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "2011)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, "2011\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1116\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"6318\"]],PROJECTION[\"Lambert_Confor"); add_srs_wkt (p, 8, "mal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",43],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",40],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_origin\",39.83333333333334],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-100],PARAMETER[\"false_easting\",1640416.6667],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\","); add_srs_wkt (p, 13, "0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6880\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 6884, "epsg", 6884, "NAD83(CORS96) / Oregon North", 0, 0, "GRS 1980", "Greenwich", "NAD83_Continuously_Operating_Reference_Station_1996", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CORS96) / Oregon North\",GEOGCS[\"NAD83(C"); add_srs_wkt (p, 1, "ORS96)\",DATUM[\"NAD83_Continuously_Operating_Reference_"); add_srs_wkt (p, 2, "Station_1996\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, "33\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"6783\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 8, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",46],PARAMETER[\"standard_parallel_2\",44.33333333333334"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",43.66666666666666],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-120.5],PARAMETER[\"false_e"); add_srs_wkt (p, 12, "asting\",2500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6884\"]]"); p = add_epsg_def_ex (filter, first, last, 6885, "epsg", 6885, "NAD83(CORS96) / Oregon North (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Continuously_Operating_Reference_Station_1996", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CORS96) / Oregon North (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(CORS96)\",DATUM[\"NAD83_Continuously_Operating_Refer"); add_srs_wkt (p, 2, "ence_Station_1996\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1133\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"6783\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",46],PARAMETER[\"standard_parallel_2\",44.3333333"); add_srs_wkt (p, 10, "3333334],PARAMETER[\"latitude_of_origin\",43.66666666666"); add_srs_wkt (p, 11, "666],PARAMETER[\"central_meridian\",-120.5],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",8202099.738],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],A"); add_srs_wkt (p, 14, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 15, "885\"]]"); p = add_epsg_def_ex (filter, first, last, 6886, "epsg", 6886, "NAD83(CORS96) / Oregon South", 0, 0, "GRS 1980", "Greenwich", "NAD83_Continuously_Operating_Reference_Station_1996", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CORS96) / Oregon South\",GEOGCS[\"NAD83(C"); add_srs_wkt (p, 1, "ORS96)\",DATUM[\"NAD83_Continuously_Operating_Reference_"); add_srs_wkt (p, 2, "Station_1996\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"11"); add_srs_wkt (p, 4, "33\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"6783\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 8, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",44],PARAMETER[\"standard_parallel_2\",42.33333333333334"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",41.66666666666666],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-120.5],PARAMETER[\"false_e"); add_srs_wkt (p, 12, "asting\",1500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6886\"]]"); p = add_epsg_def_ex (filter, first, last, 6887, "epsg", 6887, "NAD83(CORS96) / Oregon South (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_Continuously_Operating_Reference_Station_1996", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CORS96) / Oregon South (ft)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(CORS96)\",DATUM[\"NAD83_Continuously_Operating_Refer"); add_srs_wkt (p, 2, "ence_Station_1996\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1133\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"6783\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",44],PARAMETER[\"standard_parallel_2\",42.3333333"); add_srs_wkt (p, 10, "3333334],PARAMETER[\"latitude_of_origin\",41.66666666666"); add_srs_wkt (p, 11, "666],PARAMETER[\"central_meridian\",-120.5],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",4921259.843],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],A"); add_srs_wkt (p, 14, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 15, "887\"]]"); p = add_epsg_def_ex (filter, first, last, 7400, "epsg", 7400, "NTF (Paris)", 1, 1, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "none", "grad", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,"); add_proj4text (p, 1, "320,0,0,0,0 +pm=paris +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NTF (Paris) + NGF IGN69 height\",GEOGCS[\"NTF"); add_srs_wkt (p, 1, " (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Pari"); add_srs_wkt (p, 2, "s\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212"); add_srs_wkt (p, 3, "936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,32"); add_srs_wkt (p, 4, "0,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\""); add_srs_wkt (p, 5, ",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\","); add_srs_wkt (p, 6, "0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4807\"]],VERT_CS[\"NGF-IGN69 height\",VERT_DATUM"); add_srs_wkt (p, 9, "[\"Nivellement General de la France - IGN69\",2005,AUTHO"); add_srs_wkt (p, 10, "RITY[\"EPSG\",\"5119\"]],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"572"); add_srs_wkt (p, 12, "0\"]],AUTHORITY[\"EPSG\",\"7400\"]]"); p = add_epsg_def_ex (filter, first, last, 7401, "epsg", 7401, "NTF (Paris) / France II (deprecated)", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); add_proj4text (p, 1, "42 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +tow"); add_proj4text (p, 2, "gs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +vunits=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NTF (Paris) / France II + NGF Lallemand\",PRO"); add_srs_wkt (p, 1, "JCS[\"NTF (Paris) / France II (deprecated)\",GEOGCS[\"NT"); add_srs_wkt (p, 2, "F (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Par"); add_srs_wkt (p, 3, "is\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.466021"); add_srs_wkt (p, 4, "2936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,3"); add_srs_wkt (p, 5, "20,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris"); add_srs_wkt (p, 6, "\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\""); add_srs_wkt (p, 7, ",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS["); add_srs_wkt (p, 8, "\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\""); add_srs_wkt (p, 9, "EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic_1"); add_srs_wkt (p, 10, "SP\"],PARAMETER[\"latitude_of_origin\",52],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",0],PARAMETER[\"scale_factor\",0.999877"); add_srs_wkt (p, 12, "42],PARAMETER[\"false_easting\",600000],PARAMETER[\"fals"); add_srs_wkt (p, 13, "e_northing\",2200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"27582\"]],VERT_CS[\"NGF Lallemand height\",V"); add_srs_wkt (p, 16, "ERT_DATUM[\"Nivellement General de la France - Lallemand"); add_srs_wkt (p, 17, "\",2005,AUTHORITY[\"EPSG\",\"5118\"]],UNIT[\"metre\",1,A"); add_srs_wkt (p, 18, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\""); add_srs_wkt (p, 19, "EPSG\",\"5719\"]],AUTHORITY[\"EPSG\",\"7401\"]]"); p = add_epsg_def_ex (filter, first, last, 7402, "epsg", 7402, "NTF (Paris) / France II (deprecated)", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); add_proj4text (p, 1, "42 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +tow"); add_proj4text (p, 2, "gs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +vunits=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NTF (Paris) / France II + NGF IGN69\",PROJCS["); add_srs_wkt (p, 1, "\"NTF (Paris) / France II (deprecated)\",GEOGCS[\"NTF (P"); add_srs_wkt (p, 2, "aris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\""); add_srs_wkt (p, 3, ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); add_srs_wkt (p, 4, "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0"); add_srs_wkt (p, 5, ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2"); add_srs_wkt (p, 6, ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0."); add_srs_wkt (p, 7, "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS[\"L"); add_srs_wkt (p, 8, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 9, "SG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP"); add_srs_wkt (p, 10, "\"],PARAMETER[\"latitude_of_origin\",52],PARAMETER[\"cen"); add_srs_wkt (p, 11, "tral_meridian\",0],PARAMETER[\"scale_factor\",0.99987742"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",600000],PARAMETER[\"false_"); add_srs_wkt (p, 13, "northing\",2200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 15, "\"EPSG\",\"27582\"]],VERT_CS[\"NGF-IGN69 height\",VERT_D"); add_srs_wkt (p, 16, "ATUM[\"Nivellement General de la France - IGN69\",2005,A"); add_srs_wkt (p, 17, "UTHORITY[\"EPSG\",\"5119\"]],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 18, "\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 19, "5720\"]],AUTHORITY[\"EPSG\",\"7402\"]]"); p = add_epsg_def_ex (filter, first, last, 7403, "epsg", 7403, "NTF (Paris) / France III (deprecated)", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +"); add_proj4text (p, 2, "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); add_proj4text (p, 3, "=paris +units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NTF (Paris) / France III + NGF IGN69\",PROJCS"); add_srs_wkt (p, 1, "[\"NTF (Paris) / France III (deprecated)\",GEOGCS[\"NTF "); add_srs_wkt (p, 2, "(Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris"); add_srs_wkt (p, 3, "\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602129"); add_srs_wkt (p, 4, "36269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320"); add_srs_wkt (p, 5, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\""); add_srs_wkt (p, 6, ",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\","); add_srs_wkt (p, 7, "0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS[\""); add_srs_wkt (p, 8, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 9, "PSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic_1S"); add_srs_wkt (p, 10, "P\"],PARAMETER[\"latitude_of_origin\",49],PARAMETER[\"ce"); add_srs_wkt (p, 11, "ntral_meridian\",0],PARAMETER[\"scale_factor\",0.9998774"); add_srs_wkt (p, 12, "99],PARAMETER[\"false_easting\",600000],PARAMETER[\"fals"); add_srs_wkt (p, 13, "e_northing\",3200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"27583\"]],VERT_CS[\"NGF-IGN69 height\",VERT_"); add_srs_wkt (p, 16, "DATUM[\"Nivellement General de la France - IGN69\",2005,"); add_srs_wkt (p, 17, "AUTHORITY[\"EPSG\",\"5119\"]],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 18, "[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 19, "\"5720\"]],AUTHORITY[\"EPSG\",\"7403\"]]"); p = add_epsg_def_ex (filter, first, last, 7404, "epsg", 7404, "RT90", 1, 1, "Bessel 1841", "Greenwich", "Rikets_koordinatsystem_1990", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=414.1,41.3,603.1,-0"); add_proj4text (p, 1, ".855,2.141,-7.023,0 +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"RT90 + RH70 height\",GEOGCS[\"RT90\",DATUM[\""); add_srs_wkt (p, 1, "Rikets_koordinatsystem_1990\",SPHEROID[\"Bessel 1841\",6"); add_srs_wkt (p, 2, "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); add_srs_wkt (p, 3, "GS84[414.1,41.3,603.1,-0.855,2.141,-7.023,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6124\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4124\"]],VERT_CS["); add_srs_wkt (p, 8, "\"RH70 height\",VERT_DATUM[\"Rikets hojdsystem 1970\",20"); add_srs_wkt (p, 9, "05,AUTHORITY[\"EPSG\",\"5117\"]],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"5718\"]],AUTHORITY[\"EPSG\",\"7404\"]]"); p = add_epsg_def_ex (filter, first, last, 7405, "epsg", 7405, "OSGB 1936 / British National Grid", 0, 0, "Airy 1830", "Greenwich", "OSGB_1936", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400"); add_proj4text (p, 1, "000 +y_0=-100000 +ellps=airy +towgs84=446.448,-125.157,5"); add_proj4text (p, 2, "42.06,0.15,0.247,0.842,-20.489 +units=m +vunits=m +no_de"); add_proj4text (p, 3, "fs"); add_srs_wkt (p, 0, "COMPD_CS[\"OSGB 1936 / British National Grid + ODN heigh"); add_srs_wkt (p, 1, "t\",PROJCS[\"OSGB 1936 / British National Grid\",GEOGCS["); add_srs_wkt (p, 2, "\"OSGB 1936\",DATUM[\"OSGB_1936\",SPHEROID[\"Airy 1830\""); add_srs_wkt (p, 3, ",6377563.396,299.3249646,AUTHORITY[\"EPSG\",\"7001\"]],T"); add_srs_wkt (p, 4, "OWGS84[446.448,-125.157,542.06,0.15,0.247,0.842,-20.489]"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"6277\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 6, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 7, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 8, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4277"); add_srs_wkt (p, 9, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",49],PARAMETER[\"central_meridian\",-2]"); add_srs_wkt (p, 11, ",PARAMETER[\"scale_factor\",0.9996012717],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_easting\",400000],PARAMETER[\"false_northing\",-1000"); add_srs_wkt (p, 13, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 14, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"27700\"]],VERT_CS[\"ODN height\",VERT_DATUM[\"Or"); add_srs_wkt (p, 16, "dnance Datum Newlyn\",2005,AUTHORITY[\"EPSG\",\"5101\"]]"); add_srs_wkt (p, 17, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"U"); add_srs_wkt (p, 18, "p\",UP],AUTHORITY[\"EPSG\",\"5701\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 19, ",\"7405\"]]"); p = add_epsg_def_ex (filter, first, last, 7406, "epsg", 7406, "NAD27", 1, 1, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +datum=NAD27 +vunits=us-ft +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD27 + NGVD29 height\",GEOGCS[\"NAD27\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\""); add_srs_wkt (p, 2, ",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 7, "67\"]],VERT_CS[\"NGVD29 height\",VERT_DATUM[\"National G"); add_srs_wkt (p, 8, "eodetic Vertical Datum 1929\",2005,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 9, "5102\"]],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 10, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"Up\",UP],AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"5702\"]],AUTHORITY[\"EPSG\",\"7406\"]]"); p = add_epsg_def_ex (filter, first, last, 7407, "epsg", 7407, "NAD27 / Texas North", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=3"); add_proj4text (p, 1, "4 +lon_0=-101.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD"); add_proj4text (p, 2, "27 +units=us-ft +vunits=us-ft +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NAD27 / Texas North + NGVD29 height\",PROJCS["); add_srs_wkt (p, 1, "\"NAD27 / Texas North\",GEOGCS[\"NAD27\",DATUM[\"North_A"); add_srs_wkt (p, 2, "merican_Datum_1927\",SPHEROID[\"Clarke 1866\",6378206.4,"); add_srs_wkt (p, 3, "294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",34.65],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",36.18333333333333],PARAMETER[\"latitude_of_origin\",34]"); add_srs_wkt (p, 11, ",PARAMETER[\"central_meridian\",-101.5],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_easting\",2000000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 13, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 15, "TY[\"EPSG\",\"32037\"]],VERT_CS[\"NGVD29 height\",VERT_D"); add_srs_wkt (p, 16, "ATUM[\"National Geodetic Vertical Datum 1929\",2005,AUTH"); add_srs_wkt (p, 17, "ORITY[\"EPSG\",\"5102\"]],UNIT[\"US survey foot\",0.3048"); add_srs_wkt (p, 18, "006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"Up\",U"); add_srs_wkt (p, 19, "P],AUTHORITY[\"EPSG\",\"5702\"]],AUTHORITY[\"EPSG\",\"74"); add_srs_wkt (p, 20, "07\"]]"); p = add_epsg_def_ex (filter, first, last, 7408, "epsg", 7408, "Amersfoort", 1, 1, "Bessel 1841", "Greenwich", "Amersfoort", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=565.4171,50.3319,46"); add_proj4text (p, 1, "5.5524,-0.398957388243134,0.343987817378283,-1.877401639"); add_proj4text (p, 2, "98045,4.0725 +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"RD/NAP\",GEOGCS[\"Amersfoort\",DATUM[\"Amersf"); add_srs_wkt (p, 1, "oort\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[565.4171,50.3319,4"); add_srs_wkt (p, 3, "65.5524,-0.398957388243134,0.343987817378283,-1.87740163"); add_srs_wkt (p, 4, "998045,4.0725],AUTHORITY[\"EPSG\",\"6289\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4289\"]],VERT_CS[\"NAP height\",VERT_DATUM[\"Nor"); add_srs_wkt (p, 9, "maal Amsterdams Peil\",2005,AUTHORITY[\"EPSG\",\"5109\"]"); add_srs_wkt (p, 10, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "Up\",UP],AUTHORITY[\"EPSG\",\"5709\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"7408\"]]"); p = add_epsg_def_ex (filter, first, last, 7409, "epsg", 7409, "ETRS89", 1, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +vunit"); add_proj4text (p, 1, "s=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 + EVRF2000 height\",GEOGCS[\"ETRS89\","); add_srs_wkt (p, 1, "DATUM[\"European_Terrestrial_Reference_System_1989\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],VERT_CS[\"EVRF"); add_srs_wkt (p, 8, "2000 height\",VERT_DATUM[\"European Vertical Reference F"); add_srs_wkt (p, 9, "rame 2000\",2005,AUTHORITY[\"EPSG\",\"5129\"]],UNIT[\"me"); add_srs_wkt (p, 10, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"5730\"]],AUTHORITY[\"EPSG\",\"7409\"]"); add_srs_wkt (p, 12, "]"); p = add_epsg_def_ex (filter, first, last, 7410, "epsg", 7410, "PSD93", 1, 1, "Clarke 1880 (RGS)", "Greenwich", "PDO_Survey_Datum_1993", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=clrk80 +towgs84=-180.624,-225.516,1"); add_proj4text (p, 1, "73.919,-0.81,-1.898,8.336,16.71006 +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"PSHD93\",GEOGCS[\"PSD93\",DATUM[\"PDO_Survey_"); add_srs_wkt (p, 1, "Datum_1993\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,"); add_srs_wkt (p, 2, "293.465,AUTHORITY[\"EPSG\",\"7012\"]],TOWGS84[-180.624,-"); add_srs_wkt (p, 3, "225.516,173.919,-0.81,-1.898,8.336,16.71006],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6134\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4134\"]],VERT_CS["); add_srs_wkt (p, 8, "\"PHD93 height\",VERT_DATUM[\"PDO Height Datum 1993\",20"); add_srs_wkt (p, 9, "05,AUTHORITY[\"EPSG\",\"5123\"]],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 10, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"5724\"]],AUTHORITY[\"EPSG\",\"7410\"]]"); p = add_epsg_def_ex (filter, first, last, 7411, "epsg", 7411, "NTF (Paris) / Lambert zone II", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); add_proj4text (p, 1, "42 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +tow"); add_proj4text (p, 2, "gs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +vunits=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NTF (Paris) / Lambert zone II + NGF Lallemand"); add_srs_wkt (p, 1, " height\",PROJCS[\"NTF (Paris) / Lambert zone II\",GEOGC"); add_srs_wkt (p, 2, "S[\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francai"); add_srs_wkt (p, 3, "se_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293."); add_srs_wkt (p, 4, "4660212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168"); add_srs_wkt (p, 5, ",-60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\""); add_srs_wkt (p, 6, "Paris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\""); add_srs_wkt (p, 7, "grad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]]"); add_srs_wkt (p, 8, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 9, "RITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_"); add_srs_wkt (p, 10, "Conic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PARAME"); add_srs_wkt (p, 11, "TER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 12, ".99987742],PARAMETER[\"false_easting\",600000],PARAMETER"); add_srs_wkt (p, 13, "[\"false_northing\",2200000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"27572\"]],VERT_CS[\"NGF Lallemand he"); add_srs_wkt (p, 16, "ight\",VERT_DATUM[\"Nivellement General de la France - L"); add_srs_wkt (p, 17, "allemand\",2005,AUTHORITY[\"EPSG\",\"5118\"]],UNIT[\"met"); add_srs_wkt (p, 18, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUT"); add_srs_wkt (p, 19, "HORITY[\"EPSG\",\"5719\"]],AUTHORITY[\"EPSG\",\"7411\"]]"); p = add_epsg_def_ex (filter, first, last, 7412, "epsg", 7412, "NTF (Paris) / Lambert zone II", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); add_proj4text (p, 1, "42 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +tow"); add_proj4text (p, 2, "gs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +vunits=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NTF (Paris) / Lambert zone II + NGF IGN69\",P"); add_srs_wkt (p, 1, "ROJCS[\"NTF (Paris) / Lambert zone II\",GEOGCS[\"NTF (Pa"); add_srs_wkt (p, 2, "ris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\","); add_srs_wkt (p, 3, "SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46602129362"); add_srs_wkt (p, 4, "69,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0,"); add_srs_wkt (p, 5, "0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2."); add_srs_wkt (p, 6, "33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0.0"); add_srs_wkt (p, 7, "1570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS[\"La"); add_srs_wkt (p, 8, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 9, "G\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\""); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",52],PARAMETER[\"centr"); add_srs_wkt (p, 11, "al_meridian\",0],PARAMETER[\"scale_factor\",0.99987742],"); add_srs_wkt (p, 12, "PARAMETER[\"false_easting\",600000],PARAMETER[\"false_no"); add_srs_wkt (p, 13, "rthing\",2200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"27572\"]],VERT_CS[\"NGF Lallemand height\",VERT"); add_srs_wkt (p, 16, "_DATUM[\"Nivellement General de la France - Lallemand\","); add_srs_wkt (p, 17, "2005,AUTHORITY[\"EPSG\",\"5118\"]],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EP"); add_srs_wkt (p, 19, "SG\",\"5719\"]],AUTHORITY[\"EPSG\",\"7412\"]]"); p = add_epsg_def_ex (filter, first, last, 7413, "epsg", 7413, "NTF (Paris) / Lambert zone III", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +"); add_proj4text (p, 2, "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); add_proj4text (p, 3, "=paris +units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NTF (Paris) / Lambert zone III + NGF IGN69\","); add_srs_wkt (p, 1, "PROJCS[\"NTF (Paris) / Lambert zone III\",GEOGCS[\"NTF ("); add_srs_wkt (p, 2, "Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Paris\""); add_srs_wkt (p, 3, ",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660212936"); add_srs_wkt (p, 4, "269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,320,0"); add_srs_wkt (p, 5, ",0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris\",2"); add_srs_wkt (p, 6, ".33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\",0."); add_srs_wkt (p, 7, "01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS[\"L"); add_srs_wkt (p, 8, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 9, "SG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP"); add_srs_wkt (p, 10, "\"],PARAMETER[\"latitude_of_origin\",49],PARAMETER[\"cen"); add_srs_wkt (p, 11, "tral_meridian\",0],PARAMETER[\"scale_factor\",0.99987749"); add_srs_wkt (p, 12, "9],PARAMETER[\"false_easting\",600000],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",3200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"27573\"]],VERT_CS[\"NGF Lallemand height\",V"); add_srs_wkt (p, 16, "ERT_DATUM[\"Nivellement General de la France - Lallemand"); add_srs_wkt (p, 17, "\",2005,AUTHORITY[\"EPSG\",\"5118\"]],UNIT[\"metre\",1,A"); add_srs_wkt (p, 18, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\""); add_srs_wkt (p, 19, "EPSG\",\"5719\"]],AUTHORITY[\"EPSG\",\"7413\"]]"); p = add_epsg_def_ex (filter, first, last, 7414, "epsg", 7414, "Tokyo", 1, 1, "Bessel 1841", "Greenwich", "Tokyo", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +towgs84=-146.414,507.337,68"); add_proj4text (p, 1, "0.507,0,0,0,0 +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"Tokyo + JSLD69 height\",GEOGCS[\"Tokyo\",DATU"); add_srs_wkt (p, 1, "M[\"Tokyo\",SPHEROID[\"Bessel 1841\",6377397.155,299.152"); add_srs_wkt (p, 2, "8128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-146.414,507."); add_srs_wkt (p, 3, "337,680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"6301\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"4301\"]],VERT_CS[\"JSLD69 height\",VERT_"); add_srs_wkt (p, 8, "DATUM[\"Japanese Standard Levelling Datum 1969\",2005,AU"); add_srs_wkt (p, 9, "THORITY[\"EPSG\",\"5122\"]],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, "EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5"); add_srs_wkt (p, 11, "723\"]],AUTHORITY[\"EPSG\",\"7414\"]]"); p = add_epsg_def_ex (filter, first, last, 7415, "epsg", 7415, "Amersfoort / RD New", 0, 0, "Bessel 1841", "Greenwich", "Amersfoort", "Oblique_Stereographic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.387638888"); add_proj4text (p, 1, "88889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel"); add_proj4text (p, 2, " +towgs84=565.4171,50.3319,465.5524,-0.398957388243134,0"); add_proj4text (p, 3, ".343987817378283,-1.87740163998045,4.0725 +units=m +vuni"); add_proj4text (p, 4, "ts=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"Amersfoort / RD New + NAP height\",PROJCS[\"A"); add_srs_wkt (p, 1, "mersfoort / RD New\",GEOGCS[\"Amersfoort\",DATUM[\"Amers"); add_srs_wkt (p, 2, "foort\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[565.4171,50.3319,"); add_srs_wkt (p, 4, "465.5524,-0.398957388243134,0.343987817378283,-1.8774016"); add_srs_wkt (p, 5, "3998045,4.0725],AUTHORITY[\"EPSG\",\"6289\"]],PRIMEM[\"G"); add_srs_wkt (p, 6, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 7, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 8, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 9, "\"EPSG\",\"4289\"]],PROJECTION[\"Oblique_Stereographic\""); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",52.15616055555555],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",5.38763888888889],PARAMETER"); add_srs_wkt (p, 12, "[\"scale_factor\",0.9999079],PARAMETER[\"false_easting\""); add_srs_wkt (p, 13, ",155000],PARAMETER[\"false_northing\",463000],UNIT[\"met"); add_srs_wkt (p, 14, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 15, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"28992\"]],VERT_CS[\""); add_srs_wkt (p, 16, "NAP height\",VERT_DATUM[\"Normaal Amsterdams Peil\",2005"); add_srs_wkt (p, 17, ",AUTHORITY[\"EPSG\",\"5109\"]],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 18, "Y[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 19, ",\"5709\"]],AUTHORITY[\"EPSG\",\"7415\"]]"); p = add_epsg_def_ex (filter, first, last, 7416, "epsg", 7416, "ETRS89 / UTM zone 32N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / UTM zone 32N + DVR90 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / UTM zone 32N\",GEOGCS[\"ETRS89\",DATUM[\"Eur"); add_srs_wkt (p, 2, "opean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS"); add_srs_wkt (p, 3, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",9],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 11, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 14, "THORITY[\"EPSG\",\"25832\"]],VERT_CS[\"DVR90 height\",VE"); add_srs_wkt (p, 15, "RT_DATUM[\"Dansk Vertikal Reference 1990\",2005,AUTHORIT"); add_srs_wkt (p, 16, "Y[\"EPSG\",\"5206\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5799\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"7416\"]]"); p = add_epsg_def_ex (filter, first, last, 7417, "epsg", 7417, "ETRS89 / UTM zone 33N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / UTM zone 33N + DVR90 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / UTM zone 33N\",GEOGCS[\"ETRS89\",DATUM[\"Eur"); add_srs_wkt (p, 2, "opean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS"); add_srs_wkt (p, 3, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",15],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 11, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"25833\"]],VERT_CS[\"DVR90 height\",V"); add_srs_wkt (p, 15, "ERT_DATUM[\"Dansk Vertikal Reference 1990\",2005,AUTHORI"); add_srs_wkt (p, 16, "TY[\"EPSG\",\"5206\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 17, "\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5799\""); add_srs_wkt (p, 18, "]],AUTHORITY[\"EPSG\",\"7417\"]]"); p = add_epsg_def_ex (filter, first, last, 7418, "epsg", 7418, "ETRS89 / Kp2000 Jutland", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9.5 +k=0.99995 +x_0=200000 +"); add_proj4text (p, 1, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vuni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / Kp2000 Jutland + DVR90 height\",PROJ"); add_srs_wkt (p, 1, "CS[\"ETRS89 / Kp2000 Jutland\",GEOGCS[\"ETRS89\",DATUM[\""); add_srs_wkt (p, 2, "European_Terrestrial_Reference_System_1989\",SPHEROID[\""); add_srs_wkt (p, 3, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 4, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\""); add_srs_wkt (p, 5, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 6, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 8, "T],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 9, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 10, "ER[\"central_meridian\",9.5],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 11, "0.99995],PARAMETER[\"false_easting\",200000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"2196\"]],VERT_CS[\"DVR90 height\""); add_srs_wkt (p, 15, ",VERT_DATUM[\"Dansk Vertikal Reference 1990\",2005,AUTHO"); add_srs_wkt (p, 16, "RITY[\"EPSG\",\"5206\"]],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 17, "SG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"579"); add_srs_wkt (p, 18, "9\"]],AUTHORITY[\"EPSG\",\"7418\"]]"); p = add_epsg_def_ex (filter, first, last, 7419, "epsg", 7419, "ETRS89 / Kp2000 Zealand", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.99995 +x_0=500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / Kp2000 Zealand + DVR90 height\",PROJ"); add_srs_wkt (p, 1, "CS[\"ETRS89 / Kp2000 Zealand\",GEOGCS[\"ETRS89\",DATUM[\""); add_srs_wkt (p, 2, "European_Terrestrial_Reference_System_1989\",SPHEROID[\""); add_srs_wkt (p, 3, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 4, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\""); add_srs_wkt (p, 5, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 6, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 8, "T],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 9, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 10, "ER[\"central_meridian\",12],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 11, ".99995],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"2197\"]],VERT_CS[\"DVR90 height\""); add_srs_wkt (p, 15, ",VERT_DATUM[\"Dansk Vertikal Reference 1990\",2005,AUTHO"); add_srs_wkt (p, 16, "RITY[\"EPSG\",\"5206\"]],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 17, "SG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"579"); add_srs_wkt (p, 18, "9\"]],AUTHORITY[\"EPSG\",\"7419\"]]"); p = add_epsg_def_ex (filter, first, last, 7420, "epsg", 7420, "ETRS89 / Kp2000 Bornholm", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=900000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / Kp2000 Bornholm + DVR90 height\",PRO"); add_srs_wkt (p, 1, "JCS[\"ETRS89 / Kp2000 Bornholm\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 2, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 3, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 5, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 6, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 8, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 9, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 10, "METER[\"central_meridian\",15],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 11, ",1],PARAMETER[\"false_easting\",900000],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"2198\"]],VERT_CS[\"DVR90 height\",VE"); add_srs_wkt (p, 15, "RT_DATUM[\"Dansk Vertikal Reference 1990\",2005,AUTHORIT"); add_srs_wkt (p, 16, "Y[\"EPSG\",\"5206\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5799\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"7420\"]]"); p = add_epsg_def_ex (filter, first, last, 7421, "epsg", 7421, "NTF (Paris) / Lambert zone II", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.999877"); add_proj4text (p, 1, "42 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +tow"); add_proj4text (p, 2, "gs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +vunits=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NTF (Paris) / Lambert zone II + NGF-IGN69 hei"); add_srs_wkt (p, 1, "ght\",PROJCS[\"NTF (Paris) / Lambert zone II\",GEOGCS[\""); add_srs_wkt (p, 2, "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P"); add_srs_wkt (p, 3, "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660"); add_srs_wkt (p, 4, "212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60"); add_srs_wkt (p, 5, ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par"); add_srs_wkt (p, 6, "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra"); add_srs_wkt (p, 7, "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AX"); add_srs_wkt (p, 8, "IS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORIT"); add_srs_wkt (p, 9, "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 10, "ic_1SP\"],PARAMETER[\"latitude_of_origin\",52],PARAMETER"); add_srs_wkt (p, 11, "[\"central_meridian\",0],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 12, "987742],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",2200000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 15, "ORITY[\"EPSG\",\"27572\"]],VERT_CS[\"NGF-IGN69 height\","); add_srs_wkt (p, 16, "VERT_DATUM[\"Nivellement General de la France - IGN69\","); add_srs_wkt (p, 17, "2005,AUTHORITY[\"EPSG\",\"5119\"]],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 18, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EP"); add_srs_wkt (p, 19, "SG\",\"5720\"]],AUTHORITY[\"EPSG\",\"7421\"]]"); p = add_epsg_def_ex (filter, first, last, 7422, "epsg", 7422, "NTF (Paris) / Lambert zone III", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +"); add_proj4text (p, 2, "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); add_proj4text (p, 3, "=paris +units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NTF (Paris) / Lambert zone III + NGF-IGN69 he"); add_srs_wkt (p, 1, "ight\",PROJCS[\"NTF (Paris) / Lambert zone III\",GEOGCS["); add_srs_wkt (p, 2, "\"NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise"); add_srs_wkt (p, 3, "_Paris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.46"); add_srs_wkt (p, 4, "60212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-"); add_srs_wkt (p, 5, "60,320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"P"); add_srs_wkt (p, 6, "aris\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"g"); add_srs_wkt (p, 7, "rad\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],"); add_srs_wkt (p, 8, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 9, "ITY[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 10, "onic_1SP\"],PARAMETER[\"latitude_of_origin\",49],PARAMET"); add_srs_wkt (p, 11, "ER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 12, "999877499],PARAMETER[\"false_easting\",600000],PARAMETER"); add_srs_wkt (p, 13, "[\"false_northing\",3200000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"27573\"]],VERT_CS[\"NGF-IGN69 height"); add_srs_wkt (p, 16, "\",VERT_DATUM[\"Nivellement General de la France - IGN69"); add_srs_wkt (p, 17, "\",2005,AUTHORITY[\"EPSG\",\"5119\"]],UNIT[\"metre\",1,A"); add_srs_wkt (p, 18, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\""); add_srs_wkt (p, 19, "EPSG\",\"5720\"]],AUTHORITY[\"EPSG\",\"7422\"]]"); p = add_epsg_def_ex (filter, first, last, 7423, "epsg", 7423, "ETRS89", 1, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +vunit"); add_proj4text (p, 1, "s=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 + EVRF2007 height\",GEOGCS[\"ETRS89\","); add_srs_wkt (p, 1, "DATUM[\"European_Terrestrial_Reference_System_1989\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],VERT_CS[\"EVRF"); add_srs_wkt (p, 8, "2007 height\",VERT_DATUM[\"European Vertical Reference F"); add_srs_wkt (p, 9, "rame 2007\",2005,AUTHORITY[\"EPSG\",\"5215\"]],UNIT[\"me"); add_srs_wkt (p, 10, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AU"); add_srs_wkt (p, 11, "THORITY[\"EPSG\",\"5621\"]],AUTHORITY[\"EPSG\",\"7423\"]"); add_srs_wkt (p, 12, "]"); p = add_epsg_def_ex (filter, first, last, 20004, "epsg", 20004, "Pulkovo 1995 / Gauss-Kruger zone 4", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 4\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",21],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",4500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"20004\"]]"); p = add_epsg_def_ex (filter, first, last, 20005, "epsg", 20005, "Pulkovo 1995 / Gauss-Kruger zone 5", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 5\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",27],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",5500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"20005\"]]"); p = add_epsg_def_ex (filter, first, last, 20006, "epsg", 20006, "Pulkovo 1995 / Gauss-Kruger zone 6", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 6\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",33],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",6500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"20006\"]]"); p = add_epsg_def_ex (filter, first, last, 20007, "epsg", 20007, "Pulkovo 1995 / Gauss-Kruger zone 7", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 7\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",39],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",7500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"20007\"]]"); p = add_epsg_def_ex (filter, first, last, 20008, "epsg", 20008, "Pulkovo 1995 / Gauss-Kruger zone 8", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 8\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",45],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",8500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"20008\"]]"); p = add_epsg_def_ex (filter, first, last, 20009, "epsg", 20009, "Pulkovo 1995 / Gauss-Kruger zone 9", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0.2"); add_proj4text (p, 2, "2 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 9\",GEOGCS[\"P"); add_srs_wkt (p, 1, "ulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 6, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 7, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTIO"); add_srs_wkt (p, 8, "N[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 9, "n\",0],PARAMETER[\"central_meridian\",51],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",9500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"20009\"]]"); p = add_epsg_def_ex (filter, first, last, 20010, "epsg", 20010, "Pulkovo 1995 / Gauss-Kruger zone 10", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 10\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",57],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",10500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"20010\"]]"); p = add_epsg_def_ex (filter, first, last, 20011, "epsg", 20011, "Pulkovo 1995 / Gauss-Kruger zone 11", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 11\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",63],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",11500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"20011\"]]"); p = add_epsg_def_ex (filter, first, last, 20012, "epsg", 20012, "Pulkovo 1995 / Gauss-Kruger zone 12", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 12\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",69],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",12500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"20012\"]]"); p = add_epsg_def_ex (filter, first, last, 20013, "epsg", 20013, "Pulkovo 1995 / Gauss-Kruger zone 13", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 13\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",75],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",13500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"20013\"]]"); p = add_epsg_def_ex (filter, first, last, 20014, "epsg", 20014, "Pulkovo 1995 / Gauss-Kruger zone 14", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 14\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",81],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",14500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"20014\"]]"); p = add_epsg_def_ex (filter, first, last, 20015, "epsg", 20015, "Pulkovo 1995 / Gauss-Kruger zone 15", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 15\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",87],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",15500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"20015\"]]"); p = add_epsg_def_ex (filter, first, last, 20016, "epsg", 20016, "Pulkovo 1995 / Gauss-Kruger zone 16", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 16\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",93],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",16500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"20016\"]]"); p = add_epsg_def_ex (filter, first, last, 20017, "epsg", 20017, "Pulkovo 1995 / Gauss-Kruger zone 17", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0."); add_proj4text (p, 2, "22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 17\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",99],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",17500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"20017\"]]"); p = add_epsg_def_ex (filter, first, last, 20018, "epsg", 20018, "Pulkovo 1995 / Gauss-Kruger zone 18", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 18\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",105],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",18500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"20018\"]]"); p = add_epsg_def_ex (filter, first, last, 20019, "epsg", 20019, "Pulkovo 1995 / Gauss-Kruger zone 19", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 19\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",111],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",19500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"20019\"]]"); p = add_epsg_def_ex (filter, first, last, 20020, "epsg", 20020, "Pulkovo 1995 / Gauss-Kruger zone 20", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 20\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",117],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",20500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"20020\"]]"); p = add_epsg_def_ex (filter, first, last, 20021, "epsg", 20021, "Pulkovo 1995 / Gauss-Kruger zone 21", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 21\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",123],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",21500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"20021\"]]"); p = add_epsg_def_ex (filter, first, last, 20022, "epsg", 20022, "Pulkovo 1995 / Gauss-Kruger zone 22", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 22\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",129],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",22500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"20022\"]]"); p = add_epsg_def_ex (filter, first, last, 20023, "epsg", 20023, "Pulkovo 1995 / Gauss-Kruger zone 23", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 23\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",135],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",23500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"20023\"]]"); p = add_epsg_def_ex (filter, first, last, 20024, "epsg", 20024, "Pulkovo 1995 / Gauss-Kruger zone 24", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 24\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",141],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",24500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"20024\"]]"); p = add_epsg_def_ex (filter, first, last, 20025, "epsg", 20025, "Pulkovo 1995 / Gauss-Kruger zone 25", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 25\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",147],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",25500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"20025\"]]"); p = add_epsg_def_ex (filter, first, last, 20026, "epsg", 20026, "Pulkovo 1995 / Gauss-Kruger zone 26", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 26\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",153],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",26500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"20026\"]]"); p = add_epsg_def_ex (filter, first, last, 20027, "epsg", 20027, "Pulkovo 1995 / Gauss-Kruger zone 27", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 27\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",159],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",27500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"20027\"]]"); p = add_epsg_def_ex (filter, first, last, 20028, "epsg", 20028, "Pulkovo 1995 / Gauss-Kruger zone 28", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=28500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 28\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",165],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",28500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"20028\"]]"); p = add_epsg_def_ex (filter, first, last, 20029, "epsg", 20029, "Pulkovo 1995 / Gauss-Kruger zone 29", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=29500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 29\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",171],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",29500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"20029\"]]"); p = add_epsg_def_ex (filter, first, last, 20030, "epsg", 20030, "Pulkovo 1995 / Gauss-Kruger zone 30", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-0"); add_proj4text (p, 2, ".22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 30\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",177],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",30500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"20030\"]]"); p = add_epsg_def_ex (filter, first, last, 20031, "epsg", 20031, "Pulkovo 1995 / Gauss-Kruger zone 31", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1995", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,0,0,0.13,-"); add_proj4text (p, 2, "0.22 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1995 / Gauss-Kruger zone 31\",GEOGCS[\""); add_srs_wkt (p, 1, "Pulkovo 1995\",DATUM[\"Pulkovo_1995\",SPHEROID[\"Krassow"); add_srs_wkt (p, 2, "sky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],T"); add_srs_wkt (p, 3, "OWGS84[24.47,-130.89,-81.56,0,0,0.13,-0.22],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6200\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4200\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",-177],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",31500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"20031\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_28.c��������������������������������������������������0000664�0001750�0001750�00000606664�12544707704�017063� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_28 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 5854, "epsg", 5854, "SWEREF99 18 45", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18.75 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"SWEREF99 18 45 + RH2000 height\",PROJCS[\"SWE"); add_srs_wkt (p, 1, "REF99 18 45\",GEOGCS[\"SWEREF99\",DATUM[\"SWEREF99\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",18.75],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",1],PARAMETER[\"false_easting\",150000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"3015\"]],VERT_CS[\"RH2000 "); add_srs_wkt (p, 14, "height\",VERT_DATUM[\"Rikets hojdsystem 2000\",2005,AUTH"); add_srs_wkt (p, 15, "ORITY[\"EPSG\",\"5208\"]],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 16, "PSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"56"); add_srs_wkt (p, 17, "13\"]],AUTHORITY[\"EPSG\",\"5854\"]]"); p = add_epsg_def_ex (filter, first, last, 5855, "epsg", 5855, "SWEREF99 20 15", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20.25 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"SWEREF99 20 15 + RH2000 height\",PROJCS[\"SWE"); add_srs_wkt (p, 1, "REF99 20 15\",GEOGCS[\"SWEREF99\",DATUM[\"SWEREF99\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",20.25],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",1],PARAMETER[\"false_easting\",150000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"3016\"]],VERT_CS[\"RH2000 "); add_srs_wkt (p, 14, "height\",VERT_DATUM[\"Rikets hojdsystem 2000\",2005,AUTH"); add_srs_wkt (p, 15, "ORITY[\"EPSG\",\"5208\"]],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 16, "PSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"56"); add_srs_wkt (p, 17, "13\"]],AUTHORITY[\"EPSG\",\"5855\"]]"); p = add_epsg_def_ex (filter, first, last, 5856, "epsg", 5856, "SWEREF99 21 45", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21.75 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"SWEREF99 21 45 + RH2000 height\",PROJCS[\"SWE"); add_srs_wkt (p, 1, "REF99 21 45\",GEOGCS[\"SWEREF99\",DATUM[\"SWEREF99\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",21.75],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",1],PARAMETER[\"false_easting\",150000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"3017\"]],VERT_CS[\"RH2000 "); add_srs_wkt (p, 14, "height\",VERT_DATUM[\"Rikets hojdsystem 2000\",2005,AUTH"); add_srs_wkt (p, 15, "ORITY[\"EPSG\",\"5208\"]],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 16, "PSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"56"); add_srs_wkt (p, 17, "13\"]],AUTHORITY[\"EPSG\",\"5856\"]]"); p = add_epsg_def_ex (filter, first, last, 5857, "epsg", 5857, "SWEREF99 23 15", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=23.25 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"SWEREF99 23 15 + RH2000 height\",PROJCS[\"SWE"); add_srs_wkt (p, 1, "REF99 23 15\",GEOGCS[\"SWEREF99\",DATUM[\"SWEREF99\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",23.25],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",1],PARAMETER[\"false_easting\",150000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"3018\"]],VERT_CS[\"RH2000 "); add_srs_wkt (p, 14, "height\",VERT_DATUM[\"Rikets hojdsystem 2000\",2005,AUTH"); add_srs_wkt (p, 15, "ORITY[\"EPSG\",\"5208\"]],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 16, "PSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"56"); add_srs_wkt (p, 17, "13\"]],AUTHORITY[\"EPSG\",\"5857\"]]"); p = add_epsg_def_ex (filter, first, last, 5858, "epsg", 5858, "SAD69(96) / UTM zone 22S", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969_96", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=aust_SA +towgs84=-67.35"); add_proj4text (p, 1, ",3.88,-38.22,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / UTM zone 22S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-51],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5858\"]]"); p = add_epsg_def_ex (filter, first, last, 5875, "epsg", 5875, "SAD69(96) / UTM zone 18S", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969_96", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=aust_SA +towgs84=-67.35"); add_proj4text (p, 1, ",3.88,-38.22,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / UTM zone 18S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-75],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5875\"]]"); p = add_epsg_def_ex (filter, first, last, 5876, "epsg", 5876, "SAD69(96) / UTM zone 19S", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969_96", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=aust_SA +towgs84=-67.35"); add_proj4text (p, 1, ",3.88,-38.22,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / UTM zone 19S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-69],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5876\"]]"); p = add_epsg_def_ex (filter, first, last, 5877, "epsg", 5877, "SAD69(96) / UTM zone 20S", 0, 0, "GRS 1967 Modified", "Greenwich", "South_American_Datum_1969_96", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=aust_SA +towgs84=-67.35"); add_proj4text (p, 1, ",3.88,-38.22,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SAD69(96) / UTM zone 20S\",GEOGCS[\"SAD69(96)\""); add_srs_wkt (p, 1, ",DATUM[\"South_American_Datum_1969_96\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "967 Modified\",6378160,298.25,AUTHORITY[\"EPSG\",\"7050\""); add_srs_wkt (p, 3, "]],TOWGS84[-67.35,3.88,-38.22,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1075\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"5527\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-63],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5877\"]]"); p = add_epsg_def_ex (filter, first, last, 5879, "epsg", 5879, "Cadastre 1997 / UTM zone 38S", 0, 0, "International 1924", "Greenwich", "Cadastre_1997", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +ellps=intl +towgs84=-381.788,"); add_proj4text (p, 1, "-57.501,-256.673,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Cadastre 1997 / UTM zone 38S\",GEOGCS[\"Cadastr"); add_srs_wkt (p, 1, "e 1997\",DATUM[\"Cadastre_1997\",SPHEROID[\"Internationa"); add_srs_wkt (p, 2, "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 3, "84[-381.788,-57.501,-256.673,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"1037\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4475\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"5879\"]]"); p = add_epsg_def_ex (filter, first, last, 5880, "epsg", 5880, "SIRGAS 2000 / Brazil Polyconic", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Polyconic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=1000000"); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / Brazil Polyconic\",GEOGCS[\"SIRGA"); add_srs_wkt (p, 1, "S 2000\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_"); add_srs_wkt (p, 2, "las_AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4674\"]],PROJECTION[\"Polyconic\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",0],PARAMETER[\"central_meridian\",-54],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",5000000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"5880\"]]"); p = add_epsg_def_ex (filter, first, last, 5886, "epsg", 5886, "TGD2005", 1, 1, "GRS 1980", "Greenwich", "Tonga_Geodetic_Datum_2005", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"TGD2005\",DATUM[\"Tonga_Geodetic_Datum_2005\",S"); add_srs_wkt (p, 1, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 2, "PSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"1095\"]],PRIMEM[\""); add_srs_wkt (p, 3, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 4, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 5, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"5886\"]]"); p = add_epsg_def_ex (filter, first, last, 5887, "epsg", 5887, "TGD2005 / Tonga Map Grid", 0, 0, "GRS 1980", "Greenwich", "Tonga_Geodetic_Datum_2005", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=0.9996 +x_0=1500000 "); add_proj4text (p, 1, "+y_0=5000000 +ellps=GRS80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TGD2005 / Tonga Map Grid\",GEOGCS[\"TGD2005\",D"); add_srs_wkt (p, 1, "ATUM[\"Tonga_Geodetic_Datum_2005\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1095\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5886\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",-177],PA"); add_srs_wkt (p, 9, "RAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easti"); add_srs_wkt (p, 10, "ng\",1500000],PARAMETER[\"false_northing\",5000000],UNIT"); add_srs_wkt (p, 11, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 12, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "5887\"]]"); p = add_epsg_def_ex (filter, first, last, 5890, "epsg", 5890, "JAXA Snow Depth Polar Stereographic North", 0, 0, "Hughes 1980", "Greenwich", "Not_specified_based_on_Hughes_1980_ellipsoid", "Polar_Stereographic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=90 +lat_ts=70 +lon_0=90 +k=1 +x_0=0 +"); add_proj4text (p, 1, "y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JAXA Snow Depth Polar Stereographic North\",GEO"); add_srs_wkt (p, 1, "GCS[\"Unspecified datum based upon the Hughes 1980 ellip"); add_srs_wkt (p, 2, "soid\",DATUM[\"Not_specified_based_on_Hughes_1980_ellips"); add_srs_wkt (p, 3, "oid\",SPHEROID[\"Hughes 1980\",6378273,298.279411123064,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"7058\"]],AUTHORITY[\"EPSG\",\"6054\""); add_srs_wkt (p, 5, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 6, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 8, "T],AUTHORITY[\"EPSG\",\"4054\"]],PROJECTION[\"Polar_Ster"); add_srs_wkt (p, 9, "eographic\"],PARAMETER[\"latitude_of_origin\",70],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",90],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 11, "1],PARAMETER[\"false_easting\",0],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 13, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "5890\"]]"); p = add_epsg_def_ex (filter, first, last, 5921, "epsg", 5921, "WGS 84 / EPSG Arctic Regional zone A1", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=85 +lat_2=77 +lat_0=81.31722600000001 +"); add_proj4text (p, 1, "lon_0=-111 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic Regional zone A1\",GEOGCS["); add_srs_wkt (p, 1, "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",85],PARAMETER[\"standard_parallel_2\",77"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",81.317226],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",-111],PARAMETER[\"false_easting\",0"); add_srs_wkt (p, 11, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 12, "RITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"N"); add_srs_wkt (p, 13, "orthing\",NORTH],AUTHORITY[\"EPSG\",\"5921\"]]"); p = add_epsg_def_ex (filter, first, last, 5922, "epsg", 5922, "WGS 84 / EPSG Arctic Regional zone A2", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=85 +lat_2=77 +lat_0=81.31722600000001 +"); add_proj4text (p, 1, "lon_0=-39 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic Regional zone A2\",GEOGCS["); add_srs_wkt (p, 1, "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",85],PARAMETER[\"standard_parallel_2\",77"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",81.317226],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",-39],PARAMETER[\"false_easting\",0]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"5922\"]]"); p = add_epsg_def_ex (filter, first, last, 5923, "epsg", 5923, "WGS 84 / EPSG Arctic Regional zone A3", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=85 +lat_2=77 +lat_0=81.31722600000001 +"); add_proj4text (p, 1, "lon_0=33 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic Regional zone A3\",GEOGCS["); add_srs_wkt (p, 1, "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",85],PARAMETER[\"standard_parallel_2\",77"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",81.317226],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",33],PARAMETER[\"false_easting\",0],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 13, "thing\",NORTH],AUTHORITY[\"EPSG\",\"5923\"]]"); p = add_epsg_def_ex (filter, first, last, 5924, "epsg", 5924, "WGS 84 / EPSG Arctic Regional zone A4", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=85 +lat_2=77 +lat_0=81.31722600000001 +"); add_proj4text (p, 1, "lon_0=105 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic Regional zone A4\",GEOGCS["); add_srs_wkt (p, 1, "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",85],PARAMETER[\"standard_parallel_2\",77"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",81.317226],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",105],PARAMETER[\"false_easting\",0]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"5924\"]]"); p = add_epsg_def_ex (filter, first, last, 5925, "epsg", 5925, "WGS 84 / EPSG Arctic Regional zone A5", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=85 +lat_2=77 +lat_0=81.31722600000001 +"); add_proj4text (p, 1, "lon_0=177 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic Regional zone A5\",GEOGCS["); add_srs_wkt (p, 1, "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",85],PARAMETER[\"standard_parallel_2\",77"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",81.317226],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",177],PARAMETER[\"false_easting\",0]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 13, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"5925\"]]"); p = add_epsg_def_ex (filter, first, last, 5926, "epsg", 5926, "WGS 84 / EPSG Arctic Regional zone B1", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=69 +lat_0=73.15574086111111 +"); add_proj4text (p, 1, "lon_0=-111 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic Regional zone B1\",GEOGCS["); add_srs_wkt (p, 1, "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",77],PARAMETER[\"standard_parallel_2\",69"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",73.15574086111111],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",-111],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5926\"]]"); p = add_epsg_def_ex (filter, first, last, 5927, "epsg", 5927, "WGS 84 / EPSG Arctic Regional zone B2", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=69 +lat_0=73.15574086111111 +"); add_proj4text (p, 1, "lon_0=-39 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic Regional zone B2\",GEOGCS["); add_srs_wkt (p, 1, "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",77],PARAMETER[\"standard_parallel_2\",69"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",73.15574086111111],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",-39],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5927\"]]"); p = add_epsg_def_ex (filter, first, last, 5928, "epsg", 5928, "WGS 84 / EPSG Arctic Regional zone B3", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=69 +lat_0=73.15574086111111 +"); add_proj4text (p, 1, "lon_0=33 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic Regional zone B3\",GEOGCS["); add_srs_wkt (p, 1, "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",77],PARAMETER[\"standard_parallel_2\",69"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",73.15574086111111],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",33],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5928\"]]"); p = add_epsg_def_ex (filter, first, last, 5929, "epsg", 5929, "WGS 84 / EPSG Arctic Regional zone B4", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=69 +lat_0=73.15574086111111 +"); add_proj4text (p, 1, "lon_0=105 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic Regional zone B4\",GEOGCS["); add_srs_wkt (p, 1, "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",77],PARAMETER[\"standard_parallel_2\",69"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",73.15574086111111],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",105],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5929\"]]"); p = add_epsg_def_ex (filter, first, last, 5930, "epsg", 5930, "WGS 84 / EPSG Arctic Regional zone B5", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=69 +lat_0=73.15574086111111 +"); add_proj4text (p, 1, "lon_0=177 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic Regional zone B5\",GEOGCS["); add_srs_wkt (p, 1, "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",77],PARAMETER[\"standard_parallel_2\",69"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",73.15574086111111],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",177],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5930\"]]"); p = add_epsg_def_ex (filter, first, last, 5931, "epsg", 5931, "WGS 84 / EPSG Arctic Regional zone C1", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=69 +lat_2=61 +lat_0=65.10127088888888 +"); add_proj4text (p, 1, "lon_0=-111 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic Regional zone C1\",GEOGCS["); add_srs_wkt (p, 1, "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",69],PARAMETER[\"standard_parallel_2\",61"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",65.10127088888888],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",-111],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 13, "AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5931\"]]"); p = add_epsg_def_ex (filter, first, last, 5932, "epsg", 5932, "WGS 84 / EPSG Arctic Regional zone C2", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=69 +lat_2=61 +lat_0=65.10127088888888 +"); add_proj4text (p, 1, "lon_0=-39 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic Regional zone C2\",GEOGCS["); add_srs_wkt (p, 1, "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",69],PARAMETER[\"standard_parallel_2\",61"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",65.10127088888888],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",-39],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5932\"]]"); p = add_epsg_def_ex (filter, first, last, 5933, "epsg", 5933, "WGS 84 / EPSG Arctic Regional zone C3", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=69 +lat_2=61 +lat_0=65.10127088888888 +"); add_proj4text (p, 1, "lon_0=33 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic Regional zone C3\",GEOGCS["); add_srs_wkt (p, 1, "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",69],PARAMETER[\"standard_parallel_2\",61"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",65.10127088888888],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",33],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AX"); add_srs_wkt (p, 13, "IS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5933\"]]"); p = add_epsg_def_ex (filter, first, last, 5934, "epsg", 5934, "WGS 84 / EPSG Arctic Regional zone C4", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=69 +lat_2=61 +lat_0=65.10127088888888 +"); add_proj4text (p, 1, "lon_0=105 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic Regional zone C4\",GEOGCS["); add_srs_wkt (p, 1, "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",69],PARAMETER[\"standard_parallel_2\",61"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",65.10127088888888],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",105],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5934\"]]"); p = add_epsg_def_ex (filter, first, last, 5935, "epsg", 5935, "WGS 84 / EPSG Arctic Regional zone C5", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=69 +lat_2=61 +lat_0=65.10127088888888 +"); add_proj4text (p, 1, "lon_0=177 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic Regional zone C5\",GEOGCS["); add_srs_wkt (p, 1, "\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637813"); add_srs_wkt (p, 2, "7,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 4, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 6, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJEC"); add_srs_wkt (p, 7, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 8, "rd_parallel_1\",69],PARAMETER[\"standard_parallel_2\",61"); add_srs_wkt (p, 9, "],PARAMETER[\"latitude_of_origin\",65.10127088888888],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",177],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "XIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5935\"]]"); p = add_epsg_def_ex (filter, first, last, 5936, "epsg", 5936, "WGS 84 / EPSG Alaska Polar Stereographic", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=-150 +k=0.994 +x"); add_proj4text (p, 1, "_0=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Alaska Polar Stereographic\",GEOG"); add_srs_wkt (p, 1, "CS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637"); add_srs_wkt (p, 2, "8137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Polar_Stereographic\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",90],PARAMETER[\"central_meridian\",-150],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",0.994],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",2000000],PARAMETER[\"false_northing\",2000000],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5936\"]]"); p = add_epsg_def_ex (filter, first, last, 5937, "epsg", 5937, "WGS 84 / EPSG Canada Polar Stereographic", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=-100 +k=0.994 +x"); add_proj4text (p, 1, "_0=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Canada Polar Stereographic\",GEOG"); add_srs_wkt (p, 1, "CS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637"); add_srs_wkt (p, 2, "8137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Polar_Stereographic\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",90],PARAMETER[\"central_meridian\",-100],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",0.994],PARAMETER[\"false_easting\""); add_srs_wkt (p, 10, ",2000000],PARAMETER[\"false_northing\",2000000],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 12, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5937\"]]"); p = add_epsg_def_ex (filter, first, last, 5938, "epsg", 5938, "WGS 84 / EPSG Greenland Polar Stereographic", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=-33 +k=0.994 +x_"); add_proj4text (p, 1, "0=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Greenland Polar Stereographic\",G"); add_srs_wkt (p, 1, "EOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\","); add_srs_wkt (p, 2, "6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 5, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 6, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],"); add_srs_wkt (p, 7, "PROJECTION[\"Polar_Stereographic\"],PARAMETER[\"latitude"); add_srs_wkt (p, 8, "_of_origin\",90],PARAMETER[\"central_meridian\",-33],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.994],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",2000000],PARAMETER[\"false_northing\",2000000],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 12, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5938\"]]"); p = add_epsg_def_ex (filter, first, last, 5939, "epsg", 5939, "WGS 84 / EPSG Norway Polar Stereographic", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=18 +k=0.994 +x_0"); add_proj4text (p, 1, "=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Norway Polar Stereographic\",GEOG"); add_srs_wkt (p, 1, "CS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637"); add_srs_wkt (p, 2, "8137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Polar_Stereographic\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",90],PARAMETER[\"central_meridian\",18],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",0.994],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 10, "000000],PARAMETER[\"false_northing\",2000000],UNIT[\"met"); add_srs_wkt (p, 11, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 12, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5939\"]]"); p = add_epsg_def_ex (filter, first, last, 5940, "epsg", 5940, "WGS 84 / EPSG Russia Polar Stereographic", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=105 +k=0.994 +x_"); add_proj4text (p, 1, "0=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Russia Polar Stereographic\",GEOG"); add_srs_wkt (p, 1, "CS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",637"); add_srs_wkt (p, 2, "8137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 6, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PRO"); add_srs_wkt (p, 7, "JECTION[\"Polar_Stereographic\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 8, "_origin\",90],PARAMETER[\"central_meridian\",105],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",0.994],PARAMETER[\"false_easting\","); add_srs_wkt (p, 10, "2000000],PARAMETER[\"false_northing\",2000000],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 12, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5940\"]]"); p = add_epsg_def_ex (filter, first, last, 5942, "epsg", 5942, "ETRS89", 1, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +vunit"); add_proj4text (p, 1, "s=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 + NN2000 height\",GEOGCS[\"ETRS89\",DA"); add_srs_wkt (p, 1, "TUM[\"European_Terrestrial_Reference_System_1989\",SPHER"); add_srs_wkt (p, 2, "OID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],VERT_CS[\"NN2000 "); add_srs_wkt (p, 8, "height\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUT"); add_srs_wkt (p, 9, "HORITY[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 10, "EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5"); add_srs_wkt (p, 11, "941\"]],AUTHORITY[\"EPSG\",\"5942\"]]"); p = add_epsg_def_ex (filter, first, last, 5945, "epsg", 5945, "ETRS89 / NTM zone 5", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=5.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vun"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 5 + NN2000 height\",PROJCS["); add_srs_wkt (p, 1, "\"ETRS89 / NTM zone 5\",GEOGCS[\"ETRS89\",DATUM[\"Europe"); add_srs_wkt (p, 2, "an_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 3, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 4, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 9, "tor\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",5.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5105\"]],VERT_CS[\"NN2000 height\",V"); add_srs_wkt (p, 15, "ERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY[\"E"); add_srs_wkt (p, 16, "PSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 17, "001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]],AU"); add_srs_wkt (p, 18, "THORITY[\"EPSG\",\"5945\"]]"); p = add_epsg_def_ex (filter, first, last, 5946, "epsg", 5946, "ETRS89 / NTM zone 6", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=6.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vun"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 6 + NN2000 height\",PROJCS["); add_srs_wkt (p, 1, "\"ETRS89 / NTM zone 6\",GEOGCS[\"ETRS89\",DATUM[\"Europe"); add_srs_wkt (p, 2, "an_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 3, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 4, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 9, "tor\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",6.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5106\"]],VERT_CS[\"NN2000 height\",V"); add_srs_wkt (p, 15, "ERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY[\"E"); add_srs_wkt (p, 16, "PSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 17, "001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]],AU"); add_srs_wkt (p, 18, "THORITY[\"EPSG\",\"5946\"]]"); p = add_epsg_def_ex (filter, first, last, 5947, "epsg", 5947, "ETRS89 / NTM zone 7", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=7.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vun"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 7 + NN2000 height\",PROJCS["); add_srs_wkt (p, 1, "\"ETRS89 / NTM zone 7\",GEOGCS[\"ETRS89\",DATUM[\"Europe"); add_srs_wkt (p, 2, "an_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 3, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 4, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 9, "tor\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",7.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5107\"]],VERT_CS[\"NN2000 height\",V"); add_srs_wkt (p, 15, "ERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY[\"E"); add_srs_wkt (p, 16, "PSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 17, "001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]],AU"); add_srs_wkt (p, 18, "THORITY[\"EPSG\",\"5947\"]]"); p = add_epsg_def_ex (filter, first, last, 5948, "epsg", 5948, "ETRS89 / NTM zone 8", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=8.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vun"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 8 + NN2000 height\",PROJCS["); add_srs_wkt (p, 1, "\"ETRS89 / NTM zone 8\",GEOGCS[\"ETRS89\",DATUM[\"Europe"); add_srs_wkt (p, 2, "an_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 3, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 4, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 9, "tor\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",8.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5108\"]],VERT_CS[\"NN2000 height\",V"); add_srs_wkt (p, 15, "ERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY[\"E"); add_srs_wkt (p, 16, "PSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 17, "001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]],AU"); add_srs_wkt (p, 18, "THORITY[\"EPSG\",\"5948\"]]"); p = add_epsg_def_ex (filter, first, last, 5949, "epsg", 5949, "ETRS89 / NTM zone 9", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=9.5 +k=1 +x_0=100000 +y_0=1"); add_proj4text (p, 1, "000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vun"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 9 + NN2000 height\",PROJCS["); add_srs_wkt (p, 1, "\"ETRS89 / NTM zone 9\",GEOGCS[\"ETRS89\",DATUM[\"Europe"); add_srs_wkt (p, 2, "an_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 3, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 4, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],PR"); add_srs_wkt (p, 5, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 6, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 7, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 8, "HORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 9, "tor\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER[\""); add_srs_wkt (p, 10, "central_meridian\",9.5],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",100000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"5109\"]],VERT_CS[\"NN2000 height\",V"); add_srs_wkt (p, 15, "ERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY[\"E"); add_srs_wkt (p, 16, "PSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 17, "001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]],AU"); add_srs_wkt (p, 18, "THORITY[\"EPSG\",\"5949\"]]"); p = add_epsg_def_ex (filter, first, last, 5950, "epsg", 5950, "ETRS89 / NTM zone 10", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=10.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 10 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 10\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",10.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5110\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5950\"]]"); p = add_epsg_def_ex (filter, first, last, 5951, "epsg", 5951, "ETRS89 / NTM zone 11", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=11.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 11 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 11\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",11.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5111\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5951\"]]"); p = add_epsg_def_ex (filter, first, last, 5952, "epsg", 5952, "ETRS89 / NTM zone 12", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=12.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 12 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 12\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",12.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5112\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5952\"]]"); p = add_epsg_def_ex (filter, first, last, 5953, "epsg", 5953, "ETRS89 / NTM zone 13", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=13.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 13 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 13\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",13.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5113\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5953\"]]"); p = add_epsg_def_ex (filter, first, last, 5954, "epsg", 5954, "ETRS89 / NTM zone 14", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=14.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 14 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 14\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",14.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5114\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5954\"]]"); p = add_epsg_def_ex (filter, first, last, 5955, "epsg", 5955, "ETRS89 / NTM zone 15", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=15.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 15 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 15\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",15.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5115\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5955\"]]"); p = add_epsg_def_ex (filter, first, last, 5956, "epsg", 5956, "ETRS89 / NTM zone 16", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=16.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 16 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 16\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",16.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5116\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5956\"]]"); p = add_epsg_def_ex (filter, first, last, 5957, "epsg", 5957, "ETRS89 / NTM zone 17", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=17.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 17 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 17\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",17.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5117\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5957\"]]"); p = add_epsg_def_ex (filter, first, last, 5958, "epsg", 5958, "ETRS89 / NTM zone 18", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=18.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 18 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 18\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",18.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5118\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5958\"]]"); p = add_epsg_def_ex (filter, first, last, 5959, "epsg", 5959, "ETRS89 / NTM zone 19", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=19.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 19 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 19\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",19.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5119\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5959\"]]"); p = add_epsg_def_ex (filter, first, last, 5960, "epsg", 5960, "ETRS89 / NTM zone 20", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=20.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 20 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 20\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",20.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5120\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5960\"]]"); p = add_epsg_def_ex (filter, first, last, 5961, "epsg", 5961, "ETRS89 / NTM zone 21", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=21.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 21 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 21\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",21.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5121\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5961\"]]"); p = add_epsg_def_ex (filter, first, last, 5962, "epsg", 5962, "ETRS89 / NTM zone 22", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=22.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 22 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 22\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",22.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5122\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5962\"]]"); p = add_epsg_def_ex (filter, first, last, 5963, "epsg", 5963, "ETRS89 / NTM zone 23", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=23.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 23 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 23\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",23.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5123\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5963\"]]"); p = add_epsg_def_ex (filter, first, last, 5964, "epsg", 5964, "ETRS89 / NTM zone 24", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=24.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 24 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 24\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",24.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5124\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5964\"]]"); p = add_epsg_def_ex (filter, first, last, 5965, "epsg", 5965, "ETRS89 / NTM zone 25", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=25.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 25 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 25\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",25.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5125\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5965\"]]"); p = add_epsg_def_ex (filter, first, last, 5966, "epsg", 5966, "ETRS89 / NTM zone 26", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=26.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 26 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 26\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",26.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5126\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5966\"]]"); p = add_epsg_def_ex (filter, first, last, 5967, "epsg", 5967, "ETRS89 / NTM zone 27", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=27.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 27 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 27\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",27.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5127\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5967\"]]"); p = add_epsg_def_ex (filter, first, last, 5968, "epsg", 5968, "ETRS89 / NTM zone 28", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=28.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 28 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 28\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",28.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5128\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5968\"]]"); p = add_epsg_def_ex (filter, first, last, 5969, "epsg", 5969, "ETRS89 / NTM zone 29", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=29.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 29 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 29\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",29.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5129\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5969\"]]"); p = add_epsg_def_ex (filter, first, last, 5970, "epsg", 5970, "ETRS89 / NTM zone 30", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=58 +lon_0=30.5 +k=1 +x_0=100000 +y_0="); add_proj4text (p, 1, "1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vu"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / NTM zone 30 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / NTM zone 30\",GEOGCS[\"ETRS89\",DATUM[\"Euro"); add_srs_wkt (p, 2, "pean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS "); add_srs_wkt (p, 3, "1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",58],PARAMETER"); add_srs_wkt (p, 10, "[\"central_meridian\",30.5],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",100000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"5130\"]],VERT_CS[\"NN2000 height"); add_srs_wkt (p, 15, "\",VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 17, ",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]"); add_srs_wkt (p, 18, "],AUTHORITY[\"EPSG\",\"5970\"]]"); p = add_epsg_def_ex (filter, first, last, 5971, "epsg", 5971, "ETRS89 / UTM zone 31N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=31 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / UTM zone 31 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / UTM zone 31N\",GEOGCS[\"ETRS89\",DATUM[\"Eur"); add_srs_wkt (p, 2, "opean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS"); add_srs_wkt (p, 3, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",3],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 11, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 14, "THORITY[\"EPSG\",\"25831\"]],VERT_CS[\"NN2000 height\",V"); add_srs_wkt (p, 15, "ERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY[\"E"); add_srs_wkt (p, 16, "PSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 17, "001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]],AU"); add_srs_wkt (p, 18, "THORITY[\"EPSG\",\"5971\"]]"); p = add_epsg_def_ex (filter, first, last, 5972, "epsg", 5972, "ETRS89 / UTM zone 32N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / UTM zone 32 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / UTM zone 32N\",GEOGCS[\"ETRS89\",DATUM[\"Eur"); add_srs_wkt (p, 2, "opean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS"); add_srs_wkt (p, 3, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",9],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 11, "6],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 14, "THORITY[\"EPSG\",\"25832\"]],VERT_CS[\"NN2000 height\",V"); add_srs_wkt (p, 15, "ERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY[\"E"); add_srs_wkt (p, 16, "PSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 17, "001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]],AU"); add_srs_wkt (p, 18, "THORITY[\"EPSG\",\"5972\"]]"); p = add_epsg_def_ex (filter, first, last, 5973, "epsg", 5973, "ETRS89 / UTM zone 33N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / UTM zone 33 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / UTM zone 33N\",GEOGCS[\"ETRS89\",DATUM[\"Eur"); add_srs_wkt (p, 2, "opean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS"); add_srs_wkt (p, 3, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",15],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 11, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"25833\"]],VERT_CS[\"NN2000 height\","); add_srs_wkt (p, 15, "VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY[\""); add_srs_wkt (p, 16, "EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 17, "9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]],A"); add_srs_wkt (p, 18, "UTHORITY[\"EPSG\",\"5973\"]]"); p = add_epsg_def_ex (filter, first, last, 5974, "epsg", 5974, "ETRS89 / UTM zone 34N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / UTM zone 34 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / UTM zone 34N\",GEOGCS[\"ETRS89\",DATUM[\"Eur"); add_srs_wkt (p, 2, "opean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS"); add_srs_wkt (p, 3, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",21],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 11, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"25834\"]],VERT_CS[\"NN2000 height\","); add_srs_wkt (p, 15, "VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY[\""); add_srs_wkt (p, 16, "EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 17, "9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]],A"); add_srs_wkt (p, 18, "UTHORITY[\"EPSG\",\"5974\"]]"); p = add_epsg_def_ex (filter, first, last, 5975, "epsg", 5975, "ETRS89 / UTM zone 35N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / UTM zone 35 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / UTM zone 35N\",GEOGCS[\"ETRS89\",DATUM[\"Eur"); add_srs_wkt (p, 2, "opean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS"); add_srs_wkt (p, 3, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",27],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 11, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"25835\"]],VERT_CS[\"NN2000 height\","); add_srs_wkt (p, 15, "VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY[\""); add_srs_wkt (p, 16, "EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 17, "9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]],A"); add_srs_wkt (p, 18, "UTHORITY[\"EPSG\",\"5975\"]]"); p = add_epsg_def_ex (filter, first, last, 5976, "epsg", 5976, "ETRS89 / UTM zone 36N", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"ETRS89 / UTM zone 36 + NN2000 height\",PROJCS"); add_srs_wkt (p, 1, "[\"ETRS89 / UTM zone 36N\",GEOGCS[\"ETRS89\",DATUM[\"Eur"); add_srs_wkt (p, 2, "opean_Terrestrial_Reference_System_1989\",SPHEROID[\"GRS"); add_srs_wkt (p, 3, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 4, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6258\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",33],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 11, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"25836\"]],VERT_CS[\"NN2000 height\","); add_srs_wkt (p, 15, "VERT_DATUM[\"Norway Normal Null 2000\",2005,AUTHORITY[\""); add_srs_wkt (p, 16, "EPSG\",\"1096\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 17, "9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5941\"]],A"); add_srs_wkt (p, 18, "UTHORITY[\"EPSG\",\"5976\"]]"); p = add_epsg_def_ex (filter, first, last, 6050, "epsg", 6050, "GR96 / EPSG Arctic zone 1-25", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=87 +lat_2=83.66666666666667 +lat_0=85.4"); add_proj4text (p, 1, "3711833333333 +lon_0=-30 +x_0=25500000 +y_0=1500000 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 1-25\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",87],PARAMETER[\"stan"); add_srs_wkt (p, 9, "dard_parallel_2\",83.66666666666667],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_origin\",85.43711833333333],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-30],PARAMETER[\"false_easting\",25500000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",1500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 14, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"6050\"]]"); p = add_epsg_def_ex (filter, first, last, 6051, "epsg", 6051, "GR96 / EPSG Arctic zone 2-18", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, "333 +lat_0=82.05842488888888 +lon_0=-52 +x_0=18500000 +y"); add_proj4text (p, 2, "_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 2-18\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",83.66666666666667],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",80.33333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",82.05842488888888],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-52],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "18500000],PARAMETER[\"false_northing\",2500000],UNIT[\"m"); add_srs_wkt (p, 13, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6051"); add_srs_wkt (p, 15, "\"]]"); p = add_epsg_def_ex (filter, first, last, 6052, "epsg", 6052, "GR96 / EPSG Arctic zone 2-20", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, "333 +lat_0=82.05842488888888 +lon_0=-12 +x_0=20500000 +y"); add_proj4text (p, 2, "_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 2-20\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",83.66666666666667],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",80.33333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",82.05842488888888],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-12],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "20500000],PARAMETER[\"false_northing\",2500000],UNIT[\"m"); add_srs_wkt (p, 13, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6052"); add_srs_wkt (p, 15, "\"]]"); p = add_epsg_def_ex (filter, first, last, 6053, "epsg", 6053, "GR96 / EPSG Arctic zone 3-29", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, "0733752777778 +lon_0=-69 +x_0=29500000 +y_0=3500000 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 3-29\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",80.33333333333333],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",77],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_origin\",78.70733752777778],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-69],PARAMETER[\"false_easting\",29500000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",3500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 14, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"6053\"]]"); p = add_epsg_def_ex (filter, first, last, 6054, "epsg", 6054, "GR96 / EPSG Arctic zone 3-31", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, "0733752777778 +lon_0=-39 +x_0=31500000 +y_0=3500000 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 3-31\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",80.33333333333333],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",77],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_origin\",78.70733752777778],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-39],PARAMETER[\"false_easting\",31500000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",3500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 14, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"6054\"]]"); p = add_epsg_def_ex (filter, first, last, 6055, "epsg", 6055, "GR96 / EPSG Arctic zone 3-33", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, "0733752777778 +lon_0=-10 +x_0=33500000 +y_0=3500000 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 3-33\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",80.33333333333333],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",77],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_origin\",78.70733752777778],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-10],PARAMETER[\"false_easting\",33500000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",3500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 14, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"6055\"]]"); p = add_epsg_def_ex (filter, first, last, 6056, "epsg", 6056, "GR96 / EPSG Arctic zone 4-20", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, "6440330555556 +lon_0=-64 +x_0=20500000 +y_0=4500000 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 4-20\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",77],PARAMETER[\"stan"); add_srs_wkt (p, 9, "dard_parallel_2\",73.66666666666667],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_origin\",75.36440330555556],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-64],PARAMETER[\"false_easting\",20500000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",4500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 14, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"6056\"]]"); p = add_epsg_def_ex (filter, first, last, 6057, "epsg", 6057, "GR96 / EPSG Arctic zone 4-22", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, "6440330555556 +lon_0=-39 +x_0=22500000 +y_0=4500000 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 4-22\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",77],PARAMETER[\"stan"); add_srs_wkt (p, 9, "dard_parallel_2\",73.66666666666667],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_origin\",75.36440330555556],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-39],PARAMETER[\"false_easting\",22500000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",4500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 14, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"6057\"]]"); p = add_epsg_def_ex (filter, first, last, 6058, "epsg", 6058, "GR96 / EPSG Arctic zone 4-24", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, "6440330555556 +lon_0=-14 +x_0=24500000 +y_0=4500000 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 4-24\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",77],PARAMETER[\"stan"); add_srs_wkt (p, 9, "dard_parallel_2\",73.66666666666667],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_origin\",75.36440330555556],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-14],PARAMETER[\"false_easting\",24500000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",4500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 14, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"6058\"]]"); p = add_epsg_def_ex (filter, first, last, 6059, "epsg", 6059, "GR96 / EPSG Arctic zone 5-41", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=-62 +x_0=41500000 +y"); add_proj4text (p, 2, "_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 5-41\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",73.66666666666667],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",70.33333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",72.02500919444444],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-62],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "41500000],PARAMETER[\"false_northing\",5500000],UNIT[\"m"); add_srs_wkt (p, 13, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6059"); add_srs_wkt (p, 15, "\"]]"); p = add_epsg_def_ex (filter, first, last, 6060, "epsg", 6060, "GR96 / EPSG Arctic zone 5-43", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=-42 +x_0=43500000 +y"); add_proj4text (p, 2, "_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 5-43\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",73.66666666666667],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",70.33333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",72.02500919444444],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-42],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "43500000],PARAMETER[\"false_northing\",5500000],UNIT[\"m"); add_srs_wkt (p, 13, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6060"); add_srs_wkt (p, 15, "\"]]"); p = add_epsg_def_ex (filter, first, last, 6061, "epsg", 6061, "GR96 / EPSG Arctic zone 5-45", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=-22 +x_0=45500000 +y"); add_proj4text (p, 2, "_0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 5-45\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",73.66666666666667],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",70.33333333333333],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",72.02500919444444],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-22],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "45500000],PARAMETER[\"false_northing\",5500000],UNIT[\"m"); add_srs_wkt (p, 13, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6061"); add_srs_wkt (p, 15, "\"]]"); p = add_epsg_def_ex (filter, first, last, 6062, "epsg", 6062, "GR96 / EPSG Arctic zone 6-26", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, "8747555555557 +lon_0=-56 +x_0=26500000 +y_0=6500000 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 6-26\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",70.33333333333333],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",67],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_origin\",68.68747555555557],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-56],PARAMETER[\"false_easting\",26500000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",6500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 14, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"6062\"]]"); p = add_epsg_def_ex (filter, first, last, 6063, "epsg", 6063, "GR96 / EPSG Arctic zone 6-28", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, "8747555555557 +lon_0=-38 +x_0=28500000 +y_0=6500000 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 6-28\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",70.33333333333333],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",67],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_origin\",68.68747555555557],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-38],PARAMETER[\"false_easting\",28500000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",6500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 14, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"6063\"]]"); p = add_epsg_def_ex (filter, first, last, 6064, "epsg", 6064, "GR96 / EPSG Arctic zone 6-30", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.6"); add_proj4text (p, 1, "8747555555557 +lon_0=-20 +x_0=30500000 +y_0=6500000 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 6-30\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",70.33333333333333],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",67],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_origin\",68.68747555555557],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-20],PARAMETER[\"false_easting\",30500000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",6500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 14, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"6064\"]]"); p = add_epsg_def_ex (filter, first, last, 6065, "epsg", 6065, "GR96 / EPSG Arctic zone 7-11", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=67 +lat_2=63.66666666666666 +lat_0=65.3"); add_proj4text (p, 1, "5103930555555 +lon_0=-51 +x_0=11500000 +y_0=7500000 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 7-11\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",67],PARAMETER[\"stan"); add_srs_wkt (p, 9, "dard_parallel_2\",63.66666666666666],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_origin\",65.35103930555555],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-51],PARAMETER[\"false_easting\",11500000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",7500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 14, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"6065\"]]"); p = add_epsg_def_ex (filter, first, last, 6066, "epsg", 6066, "GR96 / EPSG Arctic zone 7-13", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=67 +lat_2=63.66666666666666 +lat_0=65.3"); add_proj4text (p, 1, "5103930555555 +lon_0=-34 +x_0=13500000 +y_0=7500000 +ell"); add_proj4text (p, 2, "ps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 7-13\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",67],PARAMETER[\"stan"); add_srs_wkt (p, 9, "dard_parallel_2\",63.66666666666666],PARAMETER[\"latitud"); add_srs_wkt (p, 10, "e_of_origin\",65.35103930555555],PARAMETER[\"central_mer"); add_srs_wkt (p, 11, "idian\",-34],PARAMETER[\"false_easting\",13500000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",7500000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"No"); add_srs_wkt (p, 14, "rthing\",NORTH],AUTHORITY[\"EPSG\",\"6066\"]]"); p = add_epsg_def_ex (filter, first, last, 6067, "epsg", 6067, "GR96 / EPSG Arctic zone 8-20", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=63.66666666666666 +lat_2=60.33333333333"); add_proj4text (p, 1, "334 +lat_0=62.01530688888889 +lon_0=-52 +x_0=20500000 +y"); add_proj4text (p, 2, "_0=8500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 8-20\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",63.66666666666666],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",60.33333333333334],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",62.01530688888889],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-52],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "20500000],PARAMETER[\"false_northing\",8500000],UNIT[\"m"); add_srs_wkt (p, 13, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6067"); add_srs_wkt (p, 15, "\"]]"); p = add_epsg_def_ex (filter, first, last, 6068, "epsg", 6068, "GR96 / EPSG Arctic zone 8-22", 0, 0, "GRS 1980", "Greenwich", "Greenland_1996", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=63.66666666666666 +lat_2=60.33333333333"); add_proj4text (p, 1, "334 +lat_0=62.01530688888889 +lon_0=-37 +x_0=22500000 +y"); add_proj4text (p, 2, "_0=8500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GR96 / EPSG Arctic zone 8-22\",GEOGCS[\"GR96\","); add_srs_wkt (p, 1, "DATUM[\"Greenland_1996\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6747\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4747\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",63.66666666666666],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",60.33333333333334],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",62.01530688888889],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-37],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "22500000],PARAMETER[\"false_northing\",8500000],UNIT[\"m"); add_srs_wkt (p, 13, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"6068"); add_srs_wkt (p, 15, "\"]]"); p = add_epsg_def_ex (filter, first, last, 6069, "epsg", 6069, "ETRS89 / EPSG Arctic zone 2-22", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, "333 +lat_0=82.05842488888888 +lon_0=16 +x_0=22500000 +y_"); add_proj4text (p, 2, "0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / EPSG Arctic zone 2-22\",GEOGCS[\"ETRS8"); add_srs_wkt (p, 1, "9\",DATUM[\"European_Terrestrial_Reference_System_1989\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",83.66666666666667],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",80.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",82.05842488888888],PARAMETER[\"central_meridian\",16"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",22500000],PARAMETER[\"fals"); add_srs_wkt (p, 13, "e_northing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 15, "TH],AUTHORITY[\"EPSG\",\"6069\"]]"); p = add_epsg_def_ex (filter, first, last, 6070, "epsg", 6070, "ETRS89 / EPSG Arctic zone 3-11", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, "0733752777778 +lon_0=21 +x_0=11500000 +y_0=3500000 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / EPSG Arctic zone 3-11\",GEOGCS[\"ETRS8"); add_srs_wkt (p, 1, "9\",DATUM[\"European_Terrestrial_Reference_System_1989\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",80.33333333333333],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",77],PARAMETER[\"latitude_of_origin\",78.70733752"); add_srs_wkt (p, 11, "777778],PARAMETER[\"central_meridian\",21],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_easting\",11500000],PARAMETER[\"false_northing\",35"); add_srs_wkt (p, 13, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 14, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 15, "\"EPSG\",\"6070\"]]"); p = add_epsg_def_ex (filter, first, last, 6071, "epsg", 6071, "ETRS89 / EPSG Arctic zone 4-26", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, "6440330555556 +lon_0=10 +x_0=26500000 +y_0=4500000 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / EPSG Arctic zone 4-26\",GEOGCS[\"ETRS8"); add_srs_wkt (p, 1, "9\",DATUM[\"European_Terrestrial_Reference_System_1989\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",77],PARAMETER[\"standard_parallel_2\",73.6666"); add_srs_wkt (p, 10, "6666666667],PARAMETER[\"latitude_of_origin\",75.36440330"); add_srs_wkt (p, 11, "555556],PARAMETER[\"central_meridian\",10],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_easting\",26500000],PARAMETER[\"false_northing\",45"); add_srs_wkt (p, 13, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 14, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 15, "\"EPSG\",\"6071\"]]"); p = add_epsg_def_ex (filter, first, last, 6072, "epsg", 6072, "ETRS89 / EPSG Arctic zone 4-28", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, "6440330555556 +lon_0=34 +x_0=28500000 +y_0=4500000 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / EPSG Arctic zone 4-28\",GEOGCS[\"ETRS8"); add_srs_wkt (p, 1, "9\",DATUM[\"European_Terrestrial_Reference_System_1989\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",77],PARAMETER[\"standard_parallel_2\",73.6666"); add_srs_wkt (p, 10, "6666666667],PARAMETER[\"latitude_of_origin\",75.36440330"); add_srs_wkt (p, 11, "555556],PARAMETER[\"central_meridian\",34],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_easting\",28500000],PARAMETER[\"false_northing\",45"); add_srs_wkt (p, 13, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 14, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 15, "\"EPSG\",\"6072\"]]"); p = add_epsg_def_ex (filter, first, last, 6073, "epsg", 6073, "ETRS89 / EPSG Arctic zone 5-11", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=14 +x_0=11500000 +y_"); add_proj4text (p, 2, "0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / EPSG Arctic zone 5-11\",GEOGCS[\"ETRS8"); add_srs_wkt (p, 1, "9\",DATUM[\"European_Terrestrial_Reference_System_1989\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",73.66666666666667],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",70.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",72.02500919444444],PARAMETER[\"central_meridian\",14"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",11500000],PARAMETER[\"fals"); add_srs_wkt (p, 13, "e_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 15, "TH],AUTHORITY[\"EPSG\",\"6073\"]]"); p = add_epsg_def_ex (filter, first, last, 6074, "epsg", 6074, "ETRS89 / EPSG Arctic zone 5-13", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333"); add_proj4text (p, 1, "333 +lat_0=72.02500919444444 +lon_0=34 +x_0=13500000 +y_"); add_proj4text (p, 2, "0=5500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / EPSG Arctic zone 5-13\",GEOGCS[\"ETRS8"); add_srs_wkt (p, 1, "9\",DATUM[\"European_Terrestrial_Reference_System_1989\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",73.66666666666667],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",70.33333333333333],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",72.02500919444444],PARAMETER[\"central_meridian\",34"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",13500000],PARAMETER[\"fals"); add_srs_wkt (p, 13, "e_northing\",5500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 15, "TH],AUTHORITY[\"EPSG\",\"6074\"]]"); p = add_epsg_def_ex (filter, first, last, 6075, "epsg", 6075, "WGS 84 / EPSG Arctic zone 2-24", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, "333 +lat_0=82.05842488888888 +lon_0=53 +x_0=24500000 +y_"); add_proj4text (p, 2, "0=2500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 2-24\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",83.66666666666667],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",80.33333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",82.05842488888888],PARAMETER[\"central_meridian\",53],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",24500000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"6075\"]]"); p = add_epsg_def_ex (filter, first, last, 6076, "epsg", 6076, "WGS 84 / EPSG Arctic zone 2-26", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=83.66666666666667 +lat_2=80.33333333333"); add_proj4text (p, 1, "333 +lat_0=82.05842488888888 +lon_0=93 +x_0=26500000 +y_"); add_proj4text (p, 2, "0=2500000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 2-26\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",83.66666666666667],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",80.33333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",82.05842488888888],PARAMETER[\"central_meridian\",93],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",26500000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"6076\"]]"); p = add_epsg_def_ex (filter, first, last, 6077, "epsg", 6077, "WGS 84 / EPSG Arctic zone 3-13", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, "0733752777778 +lon_0=52 +x_0=13500000 +y_0=3500000 +datu"); add_proj4text (p, 2, "m=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 3-13\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",80.33333333333333],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",77],PARAMETER[\"latitude_of_origin\",78.70733752777"); add_srs_wkt (p, 10, "778],PARAMETER[\"central_meridian\",52],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",13500000],PARAMETER[\"false_northing\",35000"); add_srs_wkt (p, 12, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"6077\"]]"); p = add_epsg_def_ex (filter, first, last, 6078, "epsg", 6078, "WGS 84 / EPSG Arctic zone 3-15", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, "0733752777778 +lon_0=83 +x_0=15500000 +y_0=3500000 +datu"); add_proj4text (p, 2, "m=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 3-15\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",80.33333333333333],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",77],PARAMETER[\"latitude_of_origin\",78.70733752777"); add_srs_wkt (p, 10, "778],PARAMETER[\"central_meridian\",83],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",15500000],PARAMETER[\"false_northing\",35000"); add_srs_wkt (p, 12, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"6078\"]]"); p = add_epsg_def_ex (filter, first, last, 6079, "epsg", 6079, "WGS 84 / EPSG Arctic zone 3-17", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, "0733752777778 +lon_0=114 +x_0=17500000 +y_0=3500000 +dat"); add_proj4text (p, 2, "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 3-17\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",80.33333333333333],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",77],PARAMETER[\"latitude_of_origin\",78.70733752777"); add_srs_wkt (p, 10, "778],PARAMETER[\"central_meridian\",114],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",17500000],PARAMETER[\"false_northing\",3500"); add_srs_wkt (p, 12, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"6079\"]]"); p = add_epsg_def_ex (filter, first, last, 6080, "epsg", 6080, "WGS 84 / EPSG Arctic zone 3-19", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=80.33333333333333 +lat_2=77 +lat_0=78.7"); add_proj4text (p, 1, "0733752777778 +lon_0=145 +x_0=19500000 +y_0=3500000 +dat"); add_proj4text (p, 2, "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 3-19\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",80.33333333333333],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_2\",77],PARAMETER[\"latitude_of_origin\",78.70733752777"); add_srs_wkt (p, 10, "778],PARAMETER[\"central_meridian\",145],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",19500000],PARAMETER[\"false_northing\",3500"); add_srs_wkt (p, 12, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"6080\"]]"); p = add_epsg_def_ex (filter, first, last, 6081, "epsg", 6081, "WGS 84 / EPSG Arctic zone 4-30", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, "6440330555556 +lon_0=58 +x_0=30500000 +y_0=4500000 +datu"); add_proj4text (p, 2, "m=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 4-30\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",77],PARAMETER[\"standard_parallel_2\",73.6666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"latitude_of_origin\",75.36440330555"); add_srs_wkt (p, 10, "556],PARAMETER[\"central_meridian\",58],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",30500000],PARAMETER[\"false_northing\",45000"); add_srs_wkt (p, 12, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"6081\"]]"); p = add_epsg_def_ex (filter, first, last, 6082, "epsg", 6082, "WGS 84 / EPSG Arctic zone 4-32", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, "6440330555556 +lon_0=82 +x_0=32500000 +y_0=4500000 +datu"); add_proj4text (p, 2, "m=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 4-32\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",77],PARAMETER[\"standard_parallel_2\",73.6666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"latitude_of_origin\",75.36440330555"); add_srs_wkt (p, 10, "556],PARAMETER[\"central_meridian\",82],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",32500000],PARAMETER[\"false_northing\",45000"); add_srs_wkt (p, 12, "00],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"6082\"]]"); p = add_epsg_def_ex (filter, first, last, 6083, "epsg", 6083, "WGS 84 / EPSG Arctic zone 4-34", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, "6440330555556 +lon_0=106 +x_0=34500000 +y_0=4500000 +dat"); add_proj4text (p, 2, "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 4-34\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",77],PARAMETER[\"standard_parallel_2\",73.6666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"latitude_of_origin\",75.36440330555"); add_srs_wkt (p, 10, "556],PARAMETER[\"central_meridian\",106],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",34500000],PARAMETER[\"false_northing\",4500"); add_srs_wkt (p, 12, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"6083\"]]"); p = add_epsg_def_ex (filter, first, last, 6084, "epsg", 6084, "WGS 84 / EPSG Arctic zone 4-36", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=77 +lat_2=73.66666666666667 +lat_0=75.3"); add_proj4text (p, 1, "6440330555556 +lon_0=130 +x_0=36500000 +y_0=4500000 +dat"); add_proj4text (p, 2, "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / EPSG Arctic zone 4-36\",GEOGCS[\"WGS 8"); add_srs_wkt (p, 1, "4\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2"); add_srs_wkt (p, 2, "57223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 6, "ude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"L"); add_srs_wkt (p, 7, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 8, "lel_1\",77],PARAMETER[\"standard_parallel_2\",73.6666666"); add_srs_wkt (p, 9, "6666667],PARAMETER[\"latitude_of_origin\",75.36440330555"); add_srs_wkt (p, 10, "556],PARAMETER[\"central_meridian\",130],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",36500000],PARAMETER[\"false_northing\",4500"); add_srs_wkt (p, 12, "000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS"); add_srs_wkt (p, 13, "[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"6084\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ����������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_15.c��������������������������������������������������0000664�0001750�0001750�00000603163�12544707704�017046� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_15 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 3548, "epsg", 3548, "NAD83(NSRS2007) / Kentucky South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333"); add_proj4text (p, 1, "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +"); add_proj4text (p, 2, "y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kentucky South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",37.93333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",36.73333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 11, "itude_of_origin\",36.33333333333334],PARAMETER[\"central"); add_srs_wkt (p, 12, "_meridian\",-85.75],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 13, "PARAMETER[\"false_northing\",500000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 14, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 15, "NORTH],AUTHORITY[\"EPSG\",\"3548\"]]"); p = add_epsg_def_ex (filter, first, last, 3549, "epsg", 3549, "NAD83(NSRS2007) / Kentucky South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333"); add_proj4text (p, 1, "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0"); add_proj4text (p, 2, "001016001 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 3, ",0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Kentucky South (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",37.93333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",36.73333333333333],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",36.33333333333334],PARAMETER[\"c"); add_srs_wkt (p, 12, "entral_meridian\",-85.75],PARAMETER[\"false_easting\",16"); add_srs_wkt (p, 13, "40416.667],PARAMETER[\"false_northing\",1640416.667],UNI"); add_srs_wkt (p, 14, "T[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG"); add_srs_wkt (p, 15, "\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 16, "TY[\"EPSG\",\"3549\"]]"); p = add_epsg_def_ex (filter, first, last, 3550, "epsg", 3550, "NAD83(NSRS2007) / Louisiana North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666"); add_proj4text (p, 1, "667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Louisiana North\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",32.66666666666666],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",31.16666666666667],PARAMETER[\"lat"); add_srs_wkt (p, 11, "itude_of_origin\",30.5],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 12, "92.5],PARAMETER[\"false_easting\",1000000],PARAMETER[\"f"); add_srs_wkt (p, 13, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"3550\"]]"); p = add_epsg_def_ex (filter, first, last, 3551, "epsg", 3551, "NAD83(NSRS2007) / Louisiana North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666"); add_proj4text (p, 1, "667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Louisiana North (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",32.66666666666666],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",31.16666666666667],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",30.5],PARAMETER[\"central_meridi"); add_srs_wkt (p, 12, "an\",-92.5],PARAMETER[\"false_easting\",3280833.33330000"); add_srs_wkt (p, 13, "1],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot"); add_srs_wkt (p, 14, "\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS"); add_srs_wkt (p, 15, "[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3551"); add_srs_wkt (p, 16, "\"]]"); p = add_epsg_def_ex (filter, first, last, 3552, "epsg", 3552, "NAD83(NSRS2007) / Louisiana South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91"); add_proj4text (p, 1, ".33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Louisiana South\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",30.7],PARAMETER[\"standard_para"); add_srs_wkt (p, 10, "llel_2\",29.3],PARAMETER[\"latitude_of_origin\",28.5],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-91.33333333333333],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_easting\",1000000],PARAMETER[\"false_northing"); add_srs_wkt (p, 13, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"355"); add_srs_wkt (p, 15, "2\"]]"); p = add_epsg_def_ex (filter, first, last, 3553, "epsg", 3553, "NAD83(NSRS2007) / Louisiana South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91"); add_proj4text (p, 1, ".33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Louisiana South (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",30.7],PARAMETER[\"standar"); add_srs_wkt (p, 10, "d_parallel_2\",29.3],PARAMETER[\"latitude_of_origin\",28"); add_srs_wkt (p, 11, ".5],PARAMETER[\"central_meridian\",-91.33333333333333],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_easting\",3280833.333300001],PARAMETER["); add_srs_wkt (p, 13, "\"false_northing\",0],UNIT[\"US survey foot\",0.30480060"); add_srs_wkt (p, 14, "96012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 15, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3553\"]]"); p = add_epsg_def_ex (filter, first, last, 3554, "epsg", 3554, "NAD83(NSRS2007) / Maine CS2000 Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=5"); add_proj4text (p, 1, "00000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maine CS2000 Central\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",43.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-69.125],PARAMETER[\"scale_factor\",0.99998],PARAMETER["); add_srs_wkt (p, 11, "\"false_easting\",500000],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 12, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 13, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3554\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3555, "epsg", 3555, "NAD83(NSRS2007) / Maine CS2000 East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0"); add_proj4text (p, 1, ".99998 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maine CS2000 East\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",43.83333333333334],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",-67.875],PARAMETER[\"scale_factor\",0.99998"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",700000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"3555\"]]"); p = add_epsg_def_ex (filter, first, last, 3556, "epsg", 3556, "NAD83(NSRS2007) / Maine CS2000 West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0"); add_proj4text (p, 1, ".99998 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maine CS2000 West\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",42.83333333333334],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",-70.375],PARAMETER[\"scale_factor\",0.99998"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",300000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 13, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"3556\"]]"); p = add_epsg_def_ex (filter, first, last, 3557, "epsg", 3557, "NAD83(NSRS2007) / Maine East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maine East\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",43.66666666666666],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-68.5],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",300000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3557\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3558, "epsg", 3558, "NAD83(NSRS2007) / Maine West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maine West\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",42.83333333333334],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-70.16666666666667],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 11, "99966667],PARAMETER[\"false_easting\",900000],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"3558\"]]"); p = add_epsg_def_ex (filter, first, last, 3559, "epsg", 3559, "NAD83(NSRS2007) / Maryland", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666"); add_proj4text (p, 1, "666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maryland\",GEOGCS[\"NAD83(NSR"); add_srs_wkt (p, 1, "S2007)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, "_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",39.45],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 10, "2\",38.3],PARAMETER[\"latitude_of_origin\",37.6666666666"); add_srs_wkt (p, 11, "6666],PARAMETER[\"central_meridian\",-77],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_easting\",400000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 13, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3559\"]]"); p = add_epsg_def_ex (filter, first, last, 3560, "epsg", 3560, "NAD83 / Utah North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0"); add_proj4text (p, 2, "0001016 +y_0=999999.9999898402 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 3, ",0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Utah North (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",41.78333333"); add_srs_wkt (p, 9, "333333],PARAMETER[\"standard_parallel_2\",40.71666666666"); add_srs_wkt (p, 10, "667],PARAMETER[\"latitude_of_origin\",40.33333333333334]"); add_srs_wkt (p, 11, ",PARAMETER[\"central_meridian\",-111.5],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_easting\",1640416.6667],PARAMETER[\"false_northing\",3"); add_srs_wkt (p, 13, "280833.333300001],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 14, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 15, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3560\"]]"); p = add_epsg_def_ex (filter, first, last, 3561, "epsg", 3561, "Old Hawaiian / Hawaii zone 1", 0, 0, "Clarke 1866", "Greenwich", "Old_Hawaiian", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0."); add_proj4text (p, 1, "999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +t"); add_proj4text (p, 2, "owgs84=61,-285,-181,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Old Hawaiian / Hawaii zone 1\",GEOGCS[\"Old Haw"); add_srs_wkt (p, 1, "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613"); add_srs_wkt (p, 4, "5\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4135\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",18.8333"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"central_meridian\",-155.5],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",0.999966667],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"US"); add_srs_wkt (p, 12, " survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"3561\"]]"); p = add_epsg_def_ex (filter, first, last, 3562, "epsg", 3562, "Old Hawaiian / Hawaii zone 2", 0, 0, "Clarke 1866", "Greenwich", "Old_Hawaiian", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ell"); add_proj4text (p, 2, "ps=clrk66 +towgs84=61,-285,-181,0,0,0,0 +units=us-ft +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"Old Hawaiian / Hawaii zone 2\",GEOGCS[\"Old Haw"); add_srs_wkt (p, 1, "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613"); add_srs_wkt (p, 4, "5\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4135\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",20.3333"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"central_meridian\",-156.66666666"); add_srs_wkt (p, 10, "66667],PARAMETER[\"scale_factor\",0.999966667],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 12, "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"3562\"]]"); p = add_epsg_def_ex (filter, first, last, 3563, "epsg", 3563, "Old Hawaiian / Hawaii zone 3", 0, 0, "Clarke 1866", "Greenwich", "Old_Hawaiian", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99"); add_proj4text (p, 1, "999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84"); add_proj4text (p, 2, "=61,-285,-181,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Old Hawaiian / Hawaii zone 3\",GEOGCS[\"Old Haw"); add_srs_wkt (p, 1, "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613"); add_srs_wkt (p, 4, "5\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4135\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",21.1666"); add_srs_wkt (p, 9, "6666666667],PARAMETER[\"central_meridian\",-158],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",0.99999],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"US surve"); add_srs_wkt (p, 12, "y foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"3563\"]]"); p = add_epsg_def_ex (filter, first, last, 3564, "epsg", 3564, "Old Hawaiian / Hawaii zone 4", 0, 0, "Clarke 1866", "Greenwich", "Old_Hawaiian", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0."); add_proj4text (p, 1, "99999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs"); add_proj4text (p, 2, "84=61,-285,-181,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Old Hawaiian / Hawaii zone 4\",GEOGCS[\"Old Haw"); add_srs_wkt (p, 1, "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613"); add_srs_wkt (p, 4, "5\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4135\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",21.8333"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"central_meridian\",-159.5],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",0.99999],PARAMETER[\"false_easting"); add_srs_wkt (p, 11, "\",500000],PARAMETER[\"false_northing\",0],UNIT[\"US sur"); add_srs_wkt (p, 12, "vey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"3564\"]]"); p = add_epsg_def_ex (filter, first, last, 3565, "epsg", 3565, "Old Hawaiian / Hawaii zone 5", 0, 0, "Clarke 1866", "Greenwich", "Old_Hawaiian", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666"); add_proj4text (p, 1, "666667 +k=1 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 "); add_proj4text (p, 2, "+towgs84=61,-285,-181,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Old Hawaiian / Hawaii zone 5\",GEOGCS[\"Old Haw"); add_srs_wkt (p, 1, "aiian\",DATUM[\"Old_Hawaiian\",SPHEROID[\"Clarke 1866\","); add_srs_wkt (p, 2, "6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]"); add_srs_wkt (p, 3, "],TOWGS84[61,-285,-181,0,0,0,0],AUTHORITY[\"EPSG\",\"613"); add_srs_wkt (p, 4, "5\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4135\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",21.6666"); add_srs_wkt (p, 9, "6666666667],PARAMETER[\"central_meridian\",-160.16666666"); add_srs_wkt (p, 10, "66667],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"3565\"]]"); p = add_epsg_def_ex (filter, first, last, 3566, "epsg", 3566, "NAD83 / Utah Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0"); add_proj4text (p, 2, "=2000000.00001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 3, "nits=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Utah Central (ftUS)\",GEOGCS[\"NAD83\","); add_srs_wkt (p, 1, "DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",40.65],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",39.01666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",38.33333333333334],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-111.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 12, ",1640416.6667],PARAMETER[\"false_northing\",6561666.6667"); add_srs_wkt (p, 13, "00001],UNIT[\"US survey foot\",0.3048006096012192,AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 15, "H],AUTHORITY[\"EPSG\",\"3566\"]]"); p = add_epsg_def_ex (filter, first, last, 3567, "epsg", 3567, "NAD83 / Utah South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0"); add_proj4text (p, 2, "=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Utah South (ftUS)\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",38.35],PARA"); add_srs_wkt (p, 9, "METER[\"standard_parallel_2\",37.21666666666667],PARAMET"); add_srs_wkt (p, 10, "ER[\"latitude_of_origin\",36.66666666666666],PARAMETER[\""); add_srs_wkt (p, 11, "central_meridian\",-111.5],PARAMETER[\"false_easting\",1"); add_srs_wkt (p, 12, "640416.6667],PARAMETER[\"false_northing\",9842500.000000"); add_srs_wkt (p, 13, "002],UNIT[\"US survey foot\",0.3048006096012192,AUTHORIT"); add_srs_wkt (p, 14, "Y[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 15, ",AUTHORITY[\"EPSG\",\"3567\"]]"); p = add_epsg_def_ex (filter, first, last, 3568, "epsg", 3568, "NAD83(HARN) / Utah North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666"); add_proj4text (p, 1, "667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0"); add_proj4text (p, 2, "0001016 +y_0=999999.9999898402 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 3, ",0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Utah North (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",41.78333333333333],PARAMETER[\"standard_paral"); add_srs_wkt (p, 10, "lel_2\",40.71666666666667],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 11, "n\",40.33333333333334],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 12, "11.5],PARAMETER[\"false_easting\",1640416.6667],PARAMETE"); add_srs_wkt (p, 13, "R[\"false_northing\",3280833.333300001],UNIT[\"US survey"); add_srs_wkt (p, 14, " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); add_srs_wkt (p, 15, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 16, "3568\"]]"); p = add_epsg_def_ex (filter, first, last, 3569, "epsg", 3569, "NAD83(HARN) / Utah Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=3"); add_proj4text (p, 1, "8.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0"); add_proj4text (p, 2, "=2000000.00001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 3, "nits=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Utah Central (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Networ"); add_srs_wkt (p, 2, "k\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",40.65],PARAMETER[\"standard_parallel_2\",3"); add_srs_wkt (p, 10, "9.01666666666667],PARAMETER[\"latitude_of_origin\",38.33"); add_srs_wkt (p, 11, "333333333334],PARAMETER[\"central_meridian\",-111.5],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_easting\",1640416.6667],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",6561666.666700001],UNIT[\"US survey foot\",0"); add_srs_wkt (p, 14, ".3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X"); add_srs_wkt (p, 15, "\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3569\"]]"); p = add_epsg_def_ex (filter, first, last, 3570, "epsg", 3570, "NAD83(HARN) / Utah South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=3"); add_proj4text (p, 1, "6.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0"); add_proj4text (p, 2, "=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-f"); add_proj4text (p, 3, "t +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Utah South (ftUS)\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_pa"); add_srs_wkt (p, 9, "rallel_1\",38.35],PARAMETER[\"standard_parallel_2\",37.2"); add_srs_wkt (p, 10, "1666666666667],PARAMETER[\"latitude_of_origin\",36.66666"); add_srs_wkt (p, 11, "666666666],PARAMETER[\"central_meridian\",-111.5],PARAME"); add_srs_wkt (p, 12, "TER[\"false_easting\",1640416.6667],PARAMETER[\"false_no"); add_srs_wkt (p, 13, "rthing\",9842500.000000002],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 14, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 15, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3570\"]]"); p = add_epsg_def_ex (filter, first, last, 3571, "epsg", 3571, "WGS 84 / North Pole LAEA Bering Sea", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Azimuthal_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=laea +lat_0=90 +lon_0=180 +x_0=0 +y_0=0 +datum=WGS"); add_proj4text (p, 1, "84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / North Pole LAEA Bering Sea\",GEOGCS[\""); add_srs_wkt (p, 1, "WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,"); add_srs_wkt (p, 2, "298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 6, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTI"); add_srs_wkt (p, 7, "ON[\"Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_center\",90],PARAMETER[\"longitude_of_center\",180]"); add_srs_wkt (p, 9, ",PARAMETER[\"false_easting\",0],PARAMETER[\"false_northi"); add_srs_wkt (p, 10, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 11, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 12, "571\"]]"); p = add_epsg_def_ex (filter, first, last, 3572, "epsg", 3572, "WGS 84 / North Pole LAEA Alaska", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Azimuthal_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=laea +lat_0=90 +lon_0=-150 +x_0=0 +y_0=0 +datum=WG"); add_proj4text (p, 1, "S84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / North Pole LAEA Alaska\",GEOGCS[\"WGS "); add_srs_wkt (p, 1, "84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298."); add_srs_wkt (p, 2, "257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 8, "center\",90],PARAMETER[\"longitude_of_center\",-150],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3572\""); add_srs_wkt (p, 12, "]]"); p = add_epsg_def_ex (filter, first, last, 3573, "epsg", 3573, "WGS 84 / North Pole LAEA Canada", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Azimuthal_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=laea +lat_0=90 +lon_0=-100 +x_0=0 +y_0=0 +datum=WG"); add_proj4text (p, 1, "S84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / North Pole LAEA Canada\",GEOGCS[\"WGS "); add_srs_wkt (p, 1, "84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298."); add_srs_wkt (p, 2, "257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 8, "center\",90],PARAMETER[\"longitude_of_center\",-100],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3573\""); add_srs_wkt (p, 12, "]]"); p = add_epsg_def_ex (filter, first, last, 3574, "epsg", 3574, "WGS 84 / North Pole LAEA Atlantic", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Azimuthal_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=laea +lat_0=90 +lon_0=-40 +x_0=0 +y_0=0 +datum=WGS"); add_proj4text (p, 1, "84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / North Pole LAEA Atlantic\",GEOGCS[\"WG"); add_srs_wkt (p, 1, "S 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,29"); add_srs_wkt (p, 2, "8.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 6, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION["); add_srs_wkt (p, 7, "\"Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 8, "f_center\",90],PARAMETER[\"longitude_of_center\",-40],PA"); add_srs_wkt (p, 9, "RAMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3574\""); add_srs_wkt (p, 12, "]]"); p = add_epsg_def_ex (filter, first, last, 3575, "epsg", 3575, "WGS 84 / North Pole LAEA Europe", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Azimuthal_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=laea +lat_0=90 +lon_0=10 +x_0=0 +y_0=0 +datum=WGS8"); add_proj4text (p, 1, "4 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / North Pole LAEA Europe\",GEOGCS[\"WGS "); add_srs_wkt (p, 1, "84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298."); add_srs_wkt (p, 2, "257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 8, "center\",90],PARAMETER[\"longitude_of_center\",10],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_easting\",0],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3575\"]"); add_srs_wkt (p, 12, "]"); p = add_epsg_def_ex (filter, first, last, 3576, "epsg", 3576, "WGS 84 / North Pole LAEA Russia", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Azimuthal_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=laea +lat_0=90 +lon_0=90 +x_0=0 +y_0=0 +datum=WGS8"); add_proj4text (p, 1, "4 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / North Pole LAEA Russia\",GEOGCS[\"WGS "); add_srs_wkt (p, 1, "84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298."); add_srs_wkt (p, 2, "257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 4, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 6, "itude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\""); add_srs_wkt (p, 7, "Lambert_Azimuthal_Equal_Area\"],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 8, "center\",90],PARAMETER[\"longitude_of_center\",90],PARAM"); add_srs_wkt (p, 9, "ETER[\"false_easting\",0],PARAMETER[\"false_northing\",0"); add_srs_wkt (p, 10, "],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 11, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3576\"]"); add_srs_wkt (p, 12, "]"); p = add_epsg_def_ex (filter, first, last, 3577, "epsg", 3577, "GDA94 / Australian Albers", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Albers_Conic_Equal_Area", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=-18 +lat_2=-36 +lat_0=0 +lon_0=132 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / Australian Albers\",GEOGCS[\"GDA94\",DA"); add_srs_wkt (p, 1, "TUM[\"Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Albers_Coni"); add_srs_wkt (p, 8, "c_Equal_Area\"],PARAMETER[\"standard_parallel_1\",-18],P"); add_srs_wkt (p, 9, "ARAMETER[\"standard_parallel_2\",-36],PARAMETER[\"latitu"); add_srs_wkt (p, 10, "de_of_center\",0],PARAMETER[\"longitude_of_center\",132]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",0],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 13, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"3577\"]]"); p = add_epsg_def_ex (filter, first, last, 3578, "epsg", 3578, "NAD83 / Yukon Albers", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Albers_Conic_Equal_Area", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=61.66666666666666 +lat_2=68 +lat_0=59 +"); add_proj4text (p, 1, "lon_0=-132.5 +x_0=500000 +y_0=500000 +ellps=GRS80 +towgs"); add_proj4text (p, 2, "84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Yukon Albers\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Albers_Conic_Equal_Area\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_1\",61.66666666666666],PA"); add_srs_wkt (p, 9, "RAMETER[\"standard_parallel_2\",68],PARAMETER[\"latitude"); add_srs_wkt (p, 10, "_of_center\",59],PARAMETER[\"longitude_of_center\",-132."); add_srs_wkt (p, 11, "5],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"3578\"]]"); p = add_epsg_def_ex (filter, first, last, 3579, "epsg", 3579, "NAD83(CSRS) / Yukon Albers", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Albers_Conic_Equal_Area", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=61.66666666666666 +lat_2=68 +lat_0=59 +"); add_proj4text (p, 1, "lon_0=-132.5 +x_0=500000 +y_0=500000 +ellps=GRS80 +towgs"); add_proj4text (p, 2, "84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / Yukon Albers\",GEOGCS[\"NAD83(CSR"); add_srs_wkt (p, 1, "S)\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Albers_Conic_Equal_Area\"],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 9, "_1\",61.66666666666666],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",68],PARAMETER[\"latitude_of_center\",59],PARAMETER[\"lo"); add_srs_wkt (p, 11, "ngitude_of_center\",-132.5],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "500000],PARAMETER[\"false_northing\",500000],UNIT[\"metr"); add_srs_wkt (p, 13, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3579\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 3580, "epsg", 3580, "NAD83 / NWT Lambert", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=62 +lat_2=70 +lat_0=0 +lon_0=-112 +x_0="); add_proj4text (p, 1, "0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / NWT Lambert\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"standard_parallel_1\",62],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_2\",70],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",-112],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 12, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3580"); add_srs_wkt (p, 14, "\"]]"); p = add_epsg_def_ex (filter, first, last, 3581, "epsg", 3581, "NAD83(CSRS) / NWT Lambert", 0, 0, "GRS 1980", "Greenwich", "NAD83_Canadian_Spatial_Reference_System", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=62 +lat_2=70 +lat_0=0 +lon_0=-112 +x_0="); add_proj4text (p, 1, "0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(CSRS) / NWT Lambert\",GEOGCS[\"NAD83(CSRS"); add_srs_wkt (p, 1, ")\",DATUM[\"NAD83_Canadian_Spatial_Reference_System\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6140\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4617\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",62],PARAMETER[\"standard_parallel_2\",70],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 11, "an\",-112],PARAMETER[\"false_easting\",0],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"3581\"]]"); p = add_epsg_def_ex (filter, first, last, 3582, "epsg", 3582, "NAD83(NSRS2007) / Maryland (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666"); add_proj4text (p, 1, "666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS8"); add_proj4text (p, 2, "0 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Maryland (ftUS)\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",39.45],PARAMETER[\"standard_par"); add_srs_wkt (p, 10, "allel_2\",38.3],PARAMETER[\"latitude_of_origin\",37.6666"); add_srs_wkt (p, 11, "6666666666],PARAMETER[\"central_meridian\",-77],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_easting\",1312333.333],PARAMETER[\"false_north"); add_srs_wkt (p, 13, "ing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 15, "RTH],AUTHORITY[\"EPSG\",\"3582\"]]"); p = add_epsg_def_ex (filter, first, last, 3583, "epsg", 3583, "NAD83(NSRS2007) / Massachusetts Island", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333"); add_proj4text (p, 1, "333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Massachusetts Island\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",41.48333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",41.28333333333333],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",41],PARAMETER[\"central_meridian"); add_srs_wkt (p, 12, "\",-70.5],PARAMETER[\"false_easting\",500000],PARAMETER["); add_srs_wkt (p, 13, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 15, "[\"EPSG\",\"3583\"]]"); p = add_epsg_def_ex (filter, first, last, 3584, "epsg", 3584, "NAD83(NSRS2007) / Massachusetts Island (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333"); add_proj4text (p, 1, "333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0"); add_proj4text (p, 2, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_de"); add_proj4text (p, 3, "fs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Massachusetts Island (ftUS)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spati"); add_srs_wkt (p, 2, "al_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 3, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 4, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 9, "\"],PARAMETER[\"standard_parallel_1\",41.48333333333333]"); add_srs_wkt (p, 10, ",PARAMETER[\"standard_parallel_2\",41.28333333333333],PA"); add_srs_wkt (p, 11, "RAMETER[\"latitude_of_origin\",41],PARAMETER[\"central_m"); add_srs_wkt (p, 12, "eridian\",-70.5],PARAMETER[\"false_easting\",1640416.667"); add_srs_wkt (p, 13, "],PARAMETER[\"false_northing\",0],UNIT[\"US survey foot\""); add_srs_wkt (p, 14, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 15, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3584\"]"); add_srs_wkt (p, 16, "]"); p = add_epsg_def_ex (filter, first, last, 3585, "epsg", 3585, "NAD83(NSRS2007) / Massachusetts Mainland", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, "667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Massachusetts Mainland\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",42.68333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",41.71666666666667],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",41],PARAMETER[\"central_meridian"); add_srs_wkt (p, 12, "\",-71.5],PARAMETER[\"false_easting\",200000],PARAMETER["); add_srs_wkt (p, 13, "\"false_northing\",750000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 15, "HORITY[\"EPSG\",\"3585\"]]"); p = add_epsg_def_ex (filter, first, last, 3586, "epsg", 3586, "NAD83(NSRS2007) / Massachusetts Mainland (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, "667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=7"); add_proj4text (p, 2, "50000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Massachusetts Mainland (ftUS)"); add_srs_wkt (p, 1, "\",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spa"); add_srs_wkt (p, 2, "tial_Reference_System_2007\",SPHEROID[\"GRS 1980\",63781"); add_srs_wkt (p, 3, "37,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0"); add_srs_wkt (p, 4, ",0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Gre"); add_srs_wkt (p, 5, "enwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 9, "P\"],PARAMETER[\"standard_parallel_1\",42.68333333333333"); add_srs_wkt (p, 10, "],PARAMETER[\"standard_parallel_2\",41.71666666666667],P"); add_srs_wkt (p, 11, "ARAMETER[\"latitude_of_origin\",41],PARAMETER[\"central_"); add_srs_wkt (p, 12, "meridian\",-71.5],PARAMETER[\"false_easting\",656166.667"); add_srs_wkt (p, 13, "],PARAMETER[\"false_northing\",2460625],UNIT[\"US survey"); add_srs_wkt (p, 14, " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); add_srs_wkt (p, 15, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 16, "3586\"]]"); p = add_epsg_def_ex (filter, first, last, 3587, "epsg", 3587, "NAD83(NSRS2007) / Michigan Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43"); add_proj4text (p, 1, ".31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Michigan Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 9, "ER[\"standard_parallel_1\",45.7],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",44.18333333333333],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 11, "igin\",43.31666666666667],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 12, ",-84.36666666666666],PARAMETER[\"false_easting\",6000000"); add_srs_wkt (p, 13, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 15, "TH],AUTHORITY[\"EPSG\",\"3587\"]]"); p = add_epsg_def_ex (filter, first, last, 3588, "epsg", 3588, "NAD83(NSRS2007) / Michigan Central (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43"); add_proj4text (p, 1, ".31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.9"); add_proj4text (p, 2, "99976001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 3, "ts=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Michigan Central (ft)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",45.7],PARAMETER[\"standar"); add_srs_wkt (p, 10, "d_parallel_2\",44.18333333333333],PARAMETER[\"latitude_o"); add_srs_wkt (p, 11, "f_origin\",43.31666666666667],PARAMETER[\"central_meridi"); add_srs_wkt (p, 12, "an\",-84.36666666666666],PARAMETER[\"false_easting\",196"); add_srs_wkt (p, 13, "85039.37],PARAMETER[\"false_northing\",0],UNIT[\"foot\","); add_srs_wkt (p, 14, "0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 15, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3588\"]]"); p = add_epsg_def_ex (filter, first, last, 3589, "epsg", 3589, "NAD83(NSRS2007) / Michigan North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333"); add_proj4text (p, 1, "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 3, "s"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Michigan North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",47.08333333333334],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",45.48333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 11, "itude_of_origin\",44.78333333333333],PARAMETER[\"central"); add_srs_wkt (p, 12, "_meridian\",-87],PARAMETER[\"false_easting\",8000000],PA"); add_srs_wkt (p, 13, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 15, "AUTHORITY[\"EPSG\",\"3589\"]]"); p = add_epsg_def_ex (filter, first, last, 3590, "epsg", 3590, "NAD83(NSRS2007) / Michigan North (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333"); add_proj4text (p, 1, "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999"); add_proj4text (p, 2, "968001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Michigan North (ft)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"standard_parallel_1\",47.08333333333334],PARAMETE"); add_srs_wkt (p, 10, "R[\"standard_parallel_2\",45.48333333333333],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",44.78333333333333],PARAMETER[\"cent"); add_srs_wkt (p, 12, "ral_meridian\",-87],PARAMETER[\"false_easting\",26246719"); add_srs_wkt (p, 13, ".16],PARAMETER[\"false_northing\",0],UNIT[\"foot\",0.304"); add_srs_wkt (p, 14, "8,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 15, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3590\"]]"); p = add_epsg_def_ex (filter, first, last, 3591, "epsg", 3591, "NAD83(NSRS2007) / Michigan Oblique Mercator", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Hotine_Oblique_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=33"); add_proj4text (p, 1, "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +no"); add_proj4text (p, 2, "_uoff +gamma=337.25556 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 3, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Michigan Oblique Mercator\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial"); add_srs_wkt (p, 2, "_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 3, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 4, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4759\"]],PROJECTION[\"Hotine_Oblique_Mercator\"],PA"); add_srs_wkt (p, 9, "RAMETER[\"latitude_of_center\",45.30916666666666],PARAME"); add_srs_wkt (p, 10, "TER[\"longitude_of_center\",-86],PARAMETER[\"azimuth\",3"); add_srs_wkt (p, 11, "37.25556],PARAMETER[\"rectified_grid_angle\",337.25556],"); add_srs_wkt (p, 12, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 13, "ting\",2546731.496],PARAMETER[\"false_northing\",-435400"); add_srs_wkt (p, 14, "9.816],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 15, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"35"); add_srs_wkt (p, 16, "91\"]]"); p = add_epsg_def_ex (filter, first, last, 3592, "epsg", 3592, "NAD83(NSRS2007) / Michigan South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41"); add_proj4text (p, 1, ".5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Michigan South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",43.66666666666666],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",42.1],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 11, "in\",41.5],PARAMETER[\"central_meridian\",-84.3666666666"); add_srs_wkt (p, 12, "6666],PARAMETER[\"false_easting\",4000000],PARAMETER[\"f"); add_srs_wkt (p, 13, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"3592\"]]"); p = add_epsg_def_ex (filter, first, last, 3593, "epsg", 3593, "NAD83(NSRS2007) / Michigan South (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41"); add_proj4text (p, 1, ".5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Michigan South (ft)\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refer"); add_srs_wkt (p, 2, "ence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"47"); add_srs_wkt (p, 8, "59\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"standard_parallel_1\",43.66666666666666],PARAMETE"); add_srs_wkt (p, 10, "R[\"standard_parallel_2\",42.1],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 11, "origin\",41.5],PARAMETER[\"central_meridian\",-84.366666"); add_srs_wkt (p, 12, "66666666],PARAMETER[\"false_easting\",13123359.58],PARAM"); add_srs_wkt (p, 13, "ETER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORIT"); add_srs_wkt (p, 14, "Y[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 15, ",AUTHORITY[\"EPSG\",\"3593\"]]"); p = add_epsg_def_ex (filter, first, last, 3594, "epsg", 3594, "NAD83(NSRS2007) / Minnesota Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +to"); add_proj4text (p, 2, "wgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Minnesota Central\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",47.05],PARAMETER[\"standard_"); add_srs_wkt (p, 10, "parallel_2\",45.61666666666667],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 11, "origin\",45],PARAMETER[\"central_meridian\",-94.25],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",800000],PARAMETER[\"false_northi"); add_srs_wkt (p, 13, "ng\",100000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"3594\"]]"); p = add_epsg_def_ex (filter, first, last, 3595, "epsg", 3595, "NAD83(NSRS2007) / Minnesota North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y"); add_proj4text (p, 2, "_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Minnesota North\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",48.63333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",47.03333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 11, "itude_of_origin\",46.5],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 12, "93.1],PARAMETER[\"false_easting\",800000],PARAMETER[\"fa"); add_srs_wkt (p, 13, "lse_northing\",100000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 15, "TY[\"EPSG\",\"3595\"]]"); p = add_epsg_def_ex (filter, first, last, 3596, "epsg", 3596, "NAD83(NSRS2007) / Minnesota South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Minnesota South\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",45.21666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",43.78333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 11, "itude_of_origin\",43],PARAMETER[\"central_meridian\",-94"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",800000],PARAMETER[\"false_"); add_srs_wkt (p, 13, "northing\",100000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 15, "EPSG\",\"3596\"]]"); p = add_epsg_def_ex (filter, first, last, 3597, "epsg", 3597, "NAD83(NSRS2007) / Mississippi East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Mississippi East\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",29.5],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 10, "88.83333333333333],PARAMETER[\"scale_factor\",0.99995],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",300000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"3597\"]]"); p = add_epsg_def_ex (filter, first, last, 3598, "epsg", 3598, "NAD83(NSRS2007) / Mississippi East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Mississippi East (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 7, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",29.5],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-88.83333333333333],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 11, "9995],PARAMETER[\"false_easting\",984250.0000000002],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3"); add_srs_wkt (p, 13, "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3598\"]]"); p = add_epsg_def_ex (filter, first, last, 3599, "epsg", 3599, "NAD83(NSRS2007) / Mississippi West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Mississippi West\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",29.5],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 10, "90.33333333333333],PARAMETER[\"scale_factor\",0.99995],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",700000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"3599\"]]"); p = add_epsg_def_ex (filter, first, last, 3600, "epsg", 3600, "NAD83(NSRS2007) / Mississippi West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Mississippi West (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 7, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",29.5],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-90.33333333333333],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 11, "9995],PARAMETER[\"false_easting\",2296583.333],PARAMETER"); add_srs_wkt (p, 12, "[\"false_northing\",0],UNIT[\"US survey foot\",0.3048006"); add_srs_wkt (p, 13, "096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3600\"]]"); p = add_epsg_def_ex (filter, first, last, 3601, "epsg", 3601, "NAD83(NSRS2007) / Missouri Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9"); add_proj4text (p, 1, "99933333 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Missouri Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",35.83333333333334],PARAMETER[\"central"); add_srs_wkt (p, 10, "_meridian\",-92.5],PARAMETER[\"scale_factor\",0.99993333"); add_srs_wkt (p, 11, "3],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"3601\"]]"); p = add_epsg_def_ex (filter, first, last, 3602, "epsg", 3602, "NAD83(NSRS2007) / Missouri East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9"); add_proj4text (p, 1, "99933333 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Missouri East\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",35.83333333333334],PARAMETER[\"central_me"); add_srs_wkt (p, 10, "ridian\",-90.5],PARAMETER[\"scale_factor\",0.999933333],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",250000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"3602\"]]"); p = add_epsg_def_ex (filter, first, last, 3603, "epsg", 3603, "NAD83(NSRS2007) / Missouri West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9"); add_proj4text (p, 1, "99941177 +x_0=850000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Missouri West\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",36.16666666666666],PARAMETER[\"central_me"); add_srs_wkt (p, 10, "ridian\",-94.5],PARAMETER[\"scale_factor\",0.999941177],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",850000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"3603\"]]"); p = add_epsg_def_ex (filter, first, last, 3604, "epsg", 3604, "NAD83(NSRS2007) / Montana", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5"); add_proj4text (p, 1, " +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Montana\",GEOGCS[\"NAD83(NSRS"); add_srs_wkt (p, 1, "2007)\",DATUM[\"NAD83_National_Spatial_Reference_System_"); add_srs_wkt (p, 2, "2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHO"); add_srs_wkt (p, 3, "RITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORIT"); add_srs_wkt (p, 4, "Y[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_1\",49],PARAMETER[\"standard_parallel_2\",4"); add_srs_wkt (p, 10, "5],PARAMETER[\"latitude_of_origin\",44.25],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",-109.5],PARAMETER[\"false_easting\",60"); add_srs_wkt (p, 12, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"3604\"]]"); p = add_epsg_def_ex (filter, first, last, 3605, "epsg", 3605, "NAD83(NSRS2007) / Montana (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5"); add_proj4text (p, 1, " +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Montana (ft)\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",49],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 10, "2\",45],PARAMETER[\"latitude_of_origin\",44.25],PARAMETE"); add_srs_wkt (p, 11, "R[\"central_meridian\",-109.5],PARAMETER[\"false_easting"); add_srs_wkt (p, 12, "\",1968503.937],PARAMETER[\"false_northing\",0],UNIT[\"f"); add_srs_wkt (p, 13, "oot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 14, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3605\"]]"); p = add_epsg_def_ex (filter, first, last, 3606, "epsg", 3606, "NAD83(NSRS2007) / Nebraska", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +"); add_proj4text (p, 1, "lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Nebraska\",GEOGCS[\"NAD83(NSR"); add_srs_wkt (p, 1, "S2007)\",DATUM[\"NAD83_National_Spatial_Reference_System"); add_srs_wkt (p, 2, "_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"sta"); add_srs_wkt (p, 9, "ndard_parallel_1\",43],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 10, ",40],PARAMETER[\"latitude_of_origin\",39.83333333333334]"); add_srs_wkt (p, 11, ",PARAMETER[\"central_meridian\",-100],PARAMETER[\"false_"); add_srs_wkt (p, 12, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3606\"]]"); p = add_epsg_def_ex (filter, first, last, 3607, "epsg", 3607, "NAD83(NSRS2007) / Nevada Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, "9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Nevada Central\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",34.75],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 10, "16.6666666666667],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",6000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"3607\"]]"); p = add_epsg_def_ex (filter, first, last, 3608, "epsg", 3608, "NAD83(NSRS2007) / Nevada Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0."); add_proj4text (p, 1, "9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Nevada Central (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",34.75],PARAMETER[\"central_meridian"); add_srs_wkt (p, 10, "\",-116.6666666666667],PARAMETER[\"scale_factor\",0.9999"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",1640416.6667],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",19685000],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 13, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 14, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3608\"]]"); p = add_epsg_def_ex (filter, first, last, 3609, "epsg", 3609, "NAD83(NSRS2007) / Nevada East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Nevada East\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",34.75],PARAMETER[\"central_meridian\",-115."); add_srs_wkt (p, 10, "5833333333333],PARAMETER[\"scale_factor\",0.9999],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",200000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",8000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"3609\"]]"); p = add_epsg_def_ex (filter, first, last, 3610, "epsg", 3610, "NAD83(NSRS2007) / Nevada East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Nevada East (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",34.75],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-115.5833333333333],PARAMETER[\"scale_factor\",0.9999],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",656166.6667],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_northing\",26246666.66670001],UNIT[\"US survey foot\""); add_srs_wkt (p, 13, ",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3610\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 3611, "epsg", 3611, "NAD83(NSRS2007) / Nevada West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Nevada West\",GEOGCS[\"NAD83("); add_srs_wkt (p, 1, "NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sys"); add_srs_wkt (p, 2, "tem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",34.75],PARAMETER[\"central_meridian\",-118."); add_srs_wkt (p, 10, "5833333333333],PARAMETER[\"scale_factor\",0.9999],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",800000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",4000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"3611\"]]"); p = add_epsg_def_ex (filter, first, last, 3612, "epsg", 3612, "NAD83(NSRS2007) / Nevada West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0."); add_proj4text (p, 1, "9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Nevada West (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",34.75],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-118.5833333333333],PARAMETER[\"scale_factor\",0.9999],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",2624666.6667],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",13123333.3333],UNIT[\"US survey foot\",0."); add_srs_wkt (p, 13, "3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3612\"]]"); p = add_epsg_def_ex (filter, first, last, 3613, "epsg", 3613, "NAD83(NSRS2007) / New Hampshire", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Hampshire\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",42.5],PARAMETER[\"central_meridian\",-71."); add_srs_wkt (p, 10, "66666666666667],PARAMETER[\"scale_factor\",0.999966667],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",300000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"3613\"]]"); p = add_epsg_def_ex (filter, first, last, 3614, "epsg", 3614, "NAD83(NSRS2007) / New Hampshire (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Hampshire (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",42.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",-71.66666666666667],PARAMETER[\"scale_factor\",0.999966"); add_srs_wkt (p, 11, "667],PARAMETER[\"false_easting\",984250.0000000002],PARA"); add_srs_wkt (p, 12, "METER[\"false_northing\",0],UNIT[\"US survey foot\",0.30"); add_srs_wkt (p, 13, "48006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3614\"]]"); p = add_epsg_def_ex (filter, first, last, 3615, "epsg", 3615, "NAD83(NSRS2007) / New Jersey", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Jersey\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",38.83333333333334],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-74.5],PARAMETER[\"scale_factor\",0.9999],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",150000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3615\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3616, "epsg", 3616, "NAD83(NSRS2007) / New Jersey (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Jersey (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",38.83333333333334],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",-74.5],PARAMETER[\"scale_factor\",0.9999],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",492125],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 14, "NORTH],AUTHORITY[\"EPSG\",\"3616\"]]"); p = add_epsg_def_ex (filter, first, last, 3617, "epsg", 3617, "NAD83(NSRS2007) / New Mexico Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000"); add_proj4text (p, 1, "00 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Mexico Central\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 9, "titude_of_origin\",31],PARAMETER[\"central_meridian\",-1"); add_srs_wkt (p, 10, "06.25],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 13, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3617\"]]"); p = add_epsg_def_ex (filter, first, last, 3618, "epsg", 3618, "NAD83(NSRS2007) / New Mexico Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=5000"); add_proj4text (p, 1, "00.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Mexico Central (ftUS)\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial"); add_srs_wkt (p, 2, "_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 3, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 4, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 5, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 6, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 7, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 8, "\",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 9, "TER[\"latitude_of_origin\",31],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-106.25],PARAMETER[\"scale_factor\",0.9999],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",1640416.667],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"US survey foot\",0.3048006096012192,AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 14, "NORTH],AUTHORITY[\"EPSG\",\"3618\"]]"); p = add_epsg_def_ex (filter, first, last, 3619, "epsg", 3619, "NAD83(NSRS2007) / New Mexico East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); add_proj4text (p, 1, "909091 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Mexico East\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",31],PARAMETER[\"central_meridian\",-104."); add_srs_wkt (p, 10, "3333333333333],PARAMETER[\"scale_factor\",0.999909091],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",165000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"3619\"]]"); p = add_epsg_def_ex (filter, first, last, 3620, "epsg", 3620, "NAD83(NSRS2007) / New Mexico East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999"); add_proj4text (p, 1, "909091 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Mexico East (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",31],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 10, "-104.3333333333333],PARAMETER[\"scale_factor\",0.9999090"); add_srs_wkt (p, 11, "91],PARAMETER[\"false_easting\",541337.5],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"US survey foot\",0.304800609601"); add_srs_wkt (p, 13, "2192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 14, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3620\"]]"); p = add_epsg_def_ex (filter, first, last, 3621, "epsg", 3621, "NAD83(NSRS2007) / New Mexico West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); add_proj4text (p, 1, "916667 +x_0=830000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Mexico West\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference"); add_srs_wkt (p, 2, "_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2572221"); add_srs_wkt (p, 3, "01,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",31],PARAMETER[\"central_meridian\",-107."); add_srs_wkt (p, 10, "8333333333333],PARAMETER[\"scale_factor\",0.999916667],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",830000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"3621\"]]"); p = add_epsg_def_ex (filter, first, last, 3622, "epsg", 3622, "NAD83(NSRS2007) / New Mexico West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999"); add_proj4text (p, 1, "916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +towgs"); add_proj4text (p, 2, "84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New Mexico West (ftUS)\",GEOG"); add_srs_wkt (p, 1, "CS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Re"); add_srs_wkt (p, 2, "ference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 3, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",31],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 10, "-107.8333333333333],PARAMETER[\"scale_factor\",0.9999166"); add_srs_wkt (p, 11, "67],PARAMETER[\"false_easting\",2723091.667],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 13, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3622\"]]"); p = add_epsg_def_ex (filter, first, last, 3623, "epsg", 3623, "NAD83(NSRS2007) / New York Central", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New York Central\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referenc"); add_srs_wkt (p, 2, "e_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",40],PARAMETER[\"central_meridian\",-76"); add_srs_wkt (p, 10, ".58333333333333],PARAMETER[\"scale_factor\",0.9999375],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",250000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 13, "],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"3623\"]]"); p = add_epsg_def_ex (filter, first, last, 3624, "epsg", 3624, "NAD83(NSRS2007) / New York Central (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New York Central (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 7, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",40],PARAMETER[\"central_meridia"); add_srs_wkt (p, 10, "n\",-76.58333333333333],PARAMETER[\"scale_factor\",0.999"); add_srs_wkt (p, 11, "9375],PARAMETER[\"false_easting\",820208.3330000002],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_northing\",0],UNIT[\"US survey foot\",0.3"); add_srs_wkt (p, 13, "048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3624\"]]"); p = add_epsg_def_ex (filter, first, last, 3625, "epsg", 3625, "NAD83(NSRS2007) / New York East", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New York East\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",38.83333333333334],PARAMETER[\"central_me"); add_srs_wkt (p, 10, "ridian\",-74.5],PARAMETER[\"scale_factor\",0.9999],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_easting\",150000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"36"); add_srs_wkt (p, 14, "25\"]]"); p = add_epsg_def_ex (filter, first, last, 3626, "epsg", 3626, "NAD83(NSRS2007) / New York East (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New York East (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",38.83333333333334],PARAMETER[\"cent"); add_srs_wkt (p, 10, "ral_meridian\",-74.5],PARAMETER[\"scale_factor\",0.9999]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",492125],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",0],UNIT[\"US survey foot\",0.3048006096012192,"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"3626\"]]"); p = add_epsg_def_ex (filter, first, last, 3627, "epsg", 3627, "NAD83(NSRS2007) / New York Long Island", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New York Long Island\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",41.03333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",40.66666666666666],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",40.16666666666666],PARAMETER[\"c"); add_srs_wkt (p, 12, "entral_meridian\",-74],PARAMETER[\"false_easting\",30000"); add_srs_wkt (p, 13, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 15, "RTH],AUTHORITY[\"EPSG\",\"3627\"]]"); p = add_epsg_def_ex (filter, first, last, 3628, "epsg", 3628, "NAD83(NSRS2007) / New York Long Island (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666"); add_proj4text (p, 1, "666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000"); add_proj4text (p, 2, "000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New York Long Island (ftUS)\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spati"); add_srs_wkt (p, 2, "al_Reference_System_2007\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 3, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 4, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 9, "\"],PARAMETER[\"standard_parallel_1\",41.03333333333333]"); add_srs_wkt (p, 10, ",PARAMETER[\"standard_parallel_2\",40.66666666666666],PA"); add_srs_wkt (p, 11, "RAMETER[\"latitude_of_origin\",40.16666666666666],PARAME"); add_srs_wkt (p, 12, "TER[\"central_meridian\",-74],PARAMETER[\"false_easting\""); add_srs_wkt (p, 13, ",984250.0000000002],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 14, "[\"US survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 16, "[\"EPSG\",\"3628\"]]"); p = add_epsg_def_ex (filter, first, last, 3629, "epsg", 3629, "NAD83(NSRS2007) / New York West", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=350000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New York West\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_S"); add_srs_wkt (p, 2, "ystem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",40],PARAMETER[\"central_meridian\",-78.58"); add_srs_wkt (p, 10, "333333333333],PARAMETER[\"scale_factor\",0.9999375],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",350000],PARAMETER[\"false_northi"); add_srs_wkt (p, 12, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 13, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 14, "629\"]]"); p = add_epsg_def_ex (filter, first, last, 3630, "epsg", 3630, "NAD83(NSRS2007) / New York West (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999"); add_proj4text (p, 1, "9375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +towgs84"); add_proj4text (p, 2, "=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / New York West (ftUS)\",GEOGCS"); add_srs_wkt (p, 1, "[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Refe"); add_srs_wkt (p, 2, "rence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 3, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",40],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 10, "-78.58333333333333],PARAMETER[\"scale_factor\",0.9999375"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",1148291.667],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",0],UNIT[\"US survey foot\",0.30480060960"); add_srs_wkt (p, 13, "12192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3630\"]]"); p = add_epsg_def_ex (filter, first, last, 3631, "epsg", 3631, "NAD83(NSRS2007) / North Carolina", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); add_proj4text (p, 1, "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps"); add_proj4text (p, 2, "=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / North Carolina\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",36.16666666666666],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",34.33333333333334],PARAMETER[\"lat"); add_srs_wkt (p, 11, "itude_of_origin\",33.75],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 12, "-79],PARAMETER[\"false_easting\",609601.22],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 15, "\"EPSG\",\"3631\"]]"); p = add_epsg_def_ex (filter, first, last, 3632, "epsg", 3632, "NAD83(NSRS2007) / North Carolina (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333"); add_proj4text (p, 1, "334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0="); add_proj4text (p, 2, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / North Carolina (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",36.16666666666666],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",34.33333333333334],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",33.75],PARAMETER[\"central_merid"); add_srs_wkt (p, 12, "ian\",-79],PARAMETER[\"false_easting\",2000000],PARAMETE"); add_srs_wkt (p, 13, "R[\"false_northing\",0],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 14, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 15, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3632\"]]"); p = add_epsg_def_ex (filter, first, last, 3633, "epsg", 3633, "NAD83(NSRS2007) / North Dakota North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333"); add_proj4text (p, 1, "333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GR"); add_proj4text (p, 2, "S80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / North Dakota North\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",48.73333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"standard_parallel_2\",47.43333333333333],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",47],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 12, "-100.5],PARAMETER[\"false_easting\",600000],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 15, "\"EPSG\",\"3633\"]]"); p = add_epsg_def_ex (filter, first, last, 3634, "epsg", 3634, "NAD83(NSRS2007) / North Dakota North (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333"); add_proj4text (p, 1, "333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / North Dakota North (ft)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 7, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_1\",48.73333333333333],PAR"); add_srs_wkt (p, 10, "AMETER[\"standard_parallel_2\",47.43333333333333],PARAME"); add_srs_wkt (p, 11, "TER[\"latitude_of_origin\",47],PARAMETER[\"central_merid"); add_srs_wkt (p, 12, "ian\",-100.5],PARAMETER[\"false_easting\",1968503.937],P"); add_srs_wkt (p, 13, "ARAMETER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 15, "RTH],AUTHORITY[\"EPSG\",\"3634\"]]"); p = add_epsg_def_ex (filter, first, last, 3635, "epsg", 3635, "NAD83(NSRS2007) / North Dakota South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333"); add_proj4text (p, 1, "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / North Dakota South\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",47.48333333333333],PARAMETER"); add_srs_wkt (p, 10, "[\"standard_parallel_2\",46.18333333333333],PARAMETER[\""); add_srs_wkt (p, 11, "latitude_of_origin\",45.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 12, "ral_meridian\",-100.5],PARAMETER[\"false_easting\",60000"); add_srs_wkt (p, 13, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NO"); add_srs_wkt (p, 15, "RTH],AUTHORITY[\"EPSG\",\"3635\"]]"); p = add_epsg_def_ex (filter, first, last, 3636, "epsg", 3636, "NAD83(NSRS2007) / North Dakota South (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333"); add_proj4text (p, 1, "333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9"); add_proj4text (p, 2, "999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units"); add_proj4text (p, 3, "=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / North Dakota South (ft)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 7, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_1\",47.48333333333333],PAR"); add_srs_wkt (p, 10, "AMETER[\"standard_parallel_2\",46.18333333333333],PARAME"); add_srs_wkt (p, 11, "TER[\"latitude_of_origin\",45.66666666666666],PARAMETER["); add_srs_wkt (p, 12, "\"central_meridian\",-100.5],PARAMETER[\"false_easting\""); add_srs_wkt (p, 13, ",1968503.937],PARAMETER[\"false_northing\",0],UNIT[\"foo"); add_srs_wkt (p, 14, "t\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 15, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3636\"]]"); p = add_epsg_def_ex (filter, first, last, 3637, "epsg", 3637, "NAD83(NSRS2007) / Ohio North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39"); add_proj4text (p, 1, ".66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Ohio North\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_1\",41.7],PARAMETER[\"standard_parallel"); add_srs_wkt (p, 10, "_2\",40.43333333333333],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",39.66666666666666],PARAMETER[\"central_meridian\",-82.5"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",600000],PARAMETER[\"false_"); add_srs_wkt (p, 13, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 14, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 15, "\",\"3637\"]]"); p = add_epsg_def_ex (filter, first, last, 3638, "epsg", 3638, "NAD83(NSRS2007) / Ohio South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333"); add_proj4text (p, 1, "333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Ohio South\",GEOGCS[\"NAD83(N"); add_srs_wkt (p, 1, "SRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Syst"); add_srs_wkt (p, 2, "em_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_1\",40.03333333333333],PARAMETER[\"stan"); add_srs_wkt (p, 10, "dard_parallel_2\",38.73333333333333],PARAMETER[\"latitud"); add_srs_wkt (p, 11, "e_of_origin\",38],PARAMETER[\"central_meridian\",-82.5],"); add_srs_wkt (p, 12, "PARAMETER[\"false_easting\",600000],PARAMETER[\"false_no"); add_srs_wkt (p, 13, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 14, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 15, ",\"3638\"]]"); p = add_epsg_def_ex (filter, first, last, 3639, "epsg", 3639, "NAD83(NSRS2007) / Oklahoma North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666"); add_proj4text (p, 1, "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oklahoma North\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",36.76666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",35.56666666666667],PARAMETER[\"lat"); add_srs_wkt (p, 11, "itude_of_origin\",35],PARAMETER[\"central_meridian\",-98"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",600000],PARAMETER[\"false_"); add_srs_wkt (p, 13, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 14, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 15, "\",\"3639\"]]"); p = add_epsg_def_ex (filter, first, last, 3640, "epsg", 3640, "NAD83(NSRS2007) / Oklahoma North (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666"); add_proj4text (p, 1, "667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80"); add_proj4text (p, 2, " +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oklahoma North (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",36.76666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",35.56666666666667],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",35],PARAMETER[\"central_meridian"); add_srs_wkt (p, 12, "\",-98],PARAMETER[\"false_easting\",1968500],PARAMETER[\""); add_srs_wkt (p, 13, "false_northing\",0],UNIT[\"US survey foot\",0.3048006096"); add_srs_wkt (p, 14, "012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 15, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3640\"]]"); p = add_epsg_def_ex (filter, first, last, 3641, "epsg", 3641, "NAD83(NSRS2007) / Oklahoma South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333"); add_proj4text (p, 1, "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oklahoma South\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",35.23333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "standard_parallel_2\",33.93333333333333],PARAMETER[\"lat"); add_srs_wkt (p, 11, "itude_of_origin\",33.33333333333334],PARAMETER[\"central"); add_srs_wkt (p, 12, "_meridian\",-98],PARAMETER[\"false_easting\",600000],PAR"); add_srs_wkt (p, 13, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"3641\"]]"); p = add_epsg_def_ex (filter, first, last, 3642, "epsg", 3642, "NAD83(NSRS2007) / Oklahoma South (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333"); add_proj4text (p, 1, "333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_"); add_proj4text (p, 3, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oklahoma South (ftUS)\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Ref"); add_srs_wkt (p, 2, "erence_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.2"); add_srs_wkt (p, 3, "57222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_1\",35.23333333333333],PARAME"); add_srs_wkt (p, 10, "TER[\"standard_parallel_2\",33.93333333333333],PARAMETER"); add_srs_wkt (p, 11, "[\"latitude_of_origin\",33.33333333333334],PARAMETER[\"c"); add_srs_wkt (p, 12, "entral_meridian\",-98],PARAMETER[\"false_easting\",19685"); add_srs_wkt (p, 13, "00],PARAMETER[\"false_northing\",0],UNIT[\"US survey foo"); add_srs_wkt (p, 14, "t\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXI"); add_srs_wkt (p, 15, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"364"); add_srs_wkt (p, 16, "2\"]]"); p = add_epsg_def_ex (filter, first, last, 3643, "epsg", 3643, "NAD83(NSRS2007) / Oregon LCC (m)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120"); add_proj4text (p, 1, ".5 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,"); add_proj4text (p, 2, "0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oregon LCC (m)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 9, "[\"standard_parallel_1\",43],PARAMETER[\"standard_parall"); add_srs_wkt (p, 10, "el_2\",45.5],PARAMETER[\"latitude_of_origin\",41.75],PAR"); add_srs_wkt (p, 11, "AMETER[\"central_meridian\",-120.5],PARAMETER[\"false_ea"); add_srs_wkt (p, 12, "sting\",400000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 13, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 14, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3643\"]]"); p = add_epsg_def_ex (filter, first, last, 3644, "epsg", 3644, "NAD83(NSRS2007) / Oregon GIC Lambert (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120"); add_proj4text (p, 1, ".5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oregon GIC Lambert (ft)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_R"); add_srs_wkt (p, 2, "eference_System_2007\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 3, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 4, ",0,0,0],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 7, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4759\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_1\",43],PARAMETER[\"standa"); add_srs_wkt (p, 10, "rd_parallel_2\",45.5],PARAMETER[\"latitude_of_origin\",4"); add_srs_wkt (p, 11, "1.75],PARAMETER[\"central_meridian\",-120.5],PARAMETER[\""); add_srs_wkt (p, 12, "false_easting\",1312335.958],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",0],UNIT[\"foot\",0.3048,AUTHORITY[\"EPSG\",\"9002\"]],A"); add_srs_wkt (p, 14, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 15, "644\"]]"); p = add_epsg_def_ex (filter, first, last, 3645, "epsg", 3645, "NAD83(NSRS2007) / Oregon North", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oregon North\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",46],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 10, "2\",44.33333333333334],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 11, "43.66666666666666],PARAMETER[\"central_meridian\",-120.5"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",2500000],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 14, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 15, "G\",\"3645\"]]"); p = add_epsg_def_ex (filter, first, last, 3646, "epsg", 3646, "NAD83(NSRS2007) / Oregon North (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oregon North (ft)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",46],PARAMETER[\"standard_par"); add_srs_wkt (p, 10, "allel_2\",44.33333333333334],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 11, "gin\",43.66666666666666],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 12, "-120.5],PARAMETER[\"false_easting\",8202099.738],PARAMET"); add_srs_wkt (p, 13, "ER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"3646\"]]"); p = add_epsg_def_ex (filter, first, last, 3647, "epsg", 3647, "NAD83(NSRS2007) / Oregon South", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oregon South\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_Sy"); add_srs_wkt (p, 2, "stem_2007\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",44],PARAMETER[\"standard_parallel_"); add_srs_wkt (p, 10, "2\",42.33333333333334],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 11, "41.66666666666666],PARAMETER[\"central_meridian\",-120.5"); add_srs_wkt (p, 12, "],PARAMETER[\"false_easting\",1500000],PARAMETER[\"false"); add_srs_wkt (p, 13, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 14, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 15, "G\",\"3647\"]]"); p = add_epsg_def_ex (filter, first, last, 3648, "epsg", 3648, "NAD83(NSRS2007) / Oregon South (ft)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.6"); add_proj4text (p, 1, "6666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 "); add_proj4text (p, 2, "+ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Oregon South (ft)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Referen"); add_srs_wkt (p, 2, "ce_System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722"); add_srs_wkt (p, 3, "2101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 4, "],AUTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 5, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 6, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 7, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"475"); add_srs_wkt (p, 8, "9\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_1\",44],PARAMETER[\"standard_par"); add_srs_wkt (p, 10, "allel_2\",42.33333333333334],PARAMETER[\"latitude_of_ori"); add_srs_wkt (p, 11, "gin\",41.66666666666666],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 12, "-120.5],PARAMETER[\"false_easting\",4921259.843],PARAMET"); add_srs_wkt (p, 13, "ER[\"false_northing\",0],UNIT[\"foot\",0.3048,AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 15, "UTHORITY[\"EPSG\",\"3648\"]]"); } #endif /* full EPSG initialization enabled/disabled */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_45.c��������������������������������������������������0000664�0001750�0001750�00000513727�12544707704�017057� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_45 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 32243, "epsg", 32243, "WGS 72 / UTM zone 43N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=43 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 43N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",75],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32243"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32244, "epsg", 32244, "WGS 72 / UTM zone 44N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=44 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 44N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",81],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32244"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32245, "epsg", 32245, "WGS 72 / UTM zone 45N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=45 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 45N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",87],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32245"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32246, "epsg", 32246, "WGS 72 / UTM zone 46N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=46 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 46N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",93],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32246"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32247, "epsg", 32247, "WGS 72 / UTM zone 47N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=47 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 47N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",99],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 11, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"32247"); add_srs_wkt (p, 13, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32248, "epsg", 32248, "WGS 72 / UTM zone 48N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 48N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",105]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3224"); add_srs_wkt (p, 13, "8\"]]"); p = add_epsg_def_ex (filter, first, last, 32249, "epsg", 32249, "WGS 72 / UTM zone 49N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=49 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 49N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",111]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3224"); add_srs_wkt (p, 13, "9\"]]"); p = add_epsg_def_ex (filter, first, last, 32250, "epsg", 32250, "WGS 72 / UTM zone 50N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=50 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 50N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",117]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3225"); add_srs_wkt (p, 13, "0\"]]"); p = add_epsg_def_ex (filter, first, last, 32251, "epsg", 32251, "WGS 72 / UTM zone 51N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=51 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 51N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",123]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3225"); add_srs_wkt (p, 13, "1\"]]"); p = add_epsg_def_ex (filter, first, last, 32252, "epsg", 32252, "WGS 72 / UTM zone 52N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=52 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 52N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",129]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3225"); add_srs_wkt (p, 13, "2\"]]"); p = add_epsg_def_ex (filter, first, last, 32253, "epsg", 32253, "WGS 72 / UTM zone 53N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=53 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 53N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",135]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3225"); add_srs_wkt (p, 13, "3\"]]"); p = add_epsg_def_ex (filter, first, last, 32254, "epsg", 32254, "WGS 72 / UTM zone 54N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=54 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 54N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",141]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3225"); add_srs_wkt (p, 13, "4\"]]"); p = add_epsg_def_ex (filter, first, last, 32255, "epsg", 32255, "WGS 72 / UTM zone 55N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=55 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 55N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",147]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3225"); add_srs_wkt (p, 13, "5\"]]"); p = add_epsg_def_ex (filter, first, last, 32256, "epsg", 32256, "WGS 72 / UTM zone 56N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=56 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 56N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",153]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3225"); add_srs_wkt (p, 13, "6\"]]"); p = add_epsg_def_ex (filter, first, last, 32257, "epsg", 32257, "WGS 72 / UTM zone 57N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=57 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 57N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",159]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3225"); add_srs_wkt (p, 13, "7\"]]"); p = add_epsg_def_ex (filter, first, last, 32258, "epsg", 32258, "WGS 72 / UTM zone 58N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 58N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",165]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3225"); add_srs_wkt (p, 13, "8\"]]"); p = add_epsg_def_ex (filter, first, last, 32259, "epsg", 32259, "WGS 72 / UTM zone 59N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=59 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 59N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",171]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3225"); add_srs_wkt (p, 13, "9\"]]"); p = add_epsg_def_ex (filter, first, last, 32260, "epsg", 32260, "WGS 72 / UTM zone 60N", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=60 +ellps=WGS72 +towgs84=0,0,4.5,0,0,0.5"); add_proj4text (p, 1, "54,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 60N\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",177]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"m"); add_srs_wkt (p, 11, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\","); add_srs_wkt (p, 12, "EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3226"); add_srs_wkt (p, 13, "0\"]]"); p = add_epsg_def_ex (filter, first, last, 32301, "epsg", 32301, "WGS 72 / UTM zone 1S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=1 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); add_proj4text (p, 1, ",0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 1S\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-177],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32301\"]]"); p = add_epsg_def_ex (filter, first, last, 32302, "epsg", 32302, "WGS 72 / UTM zone 2S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=2 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); add_proj4text (p, 1, ",0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 2S\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-171],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32302\"]]"); p = add_epsg_def_ex (filter, first, last, 32303, "epsg", 32303, "WGS 72 / UTM zone 3S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=3 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); add_proj4text (p, 1, ",0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 3S\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-165],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32303\"]]"); p = add_epsg_def_ex (filter, first, last, 32304, "epsg", 32304, "WGS 72 / UTM zone 4S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=4 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); add_proj4text (p, 1, ",0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 4S\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-159],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32304\"]]"); p = add_epsg_def_ex (filter, first, last, 32305, "epsg", 32305, "WGS 72 / UTM zone 5S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=5 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); add_proj4text (p, 1, ",0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 5S\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-153],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32305\"]]"); p = add_epsg_def_ex (filter, first, last, 32306, "epsg", 32306, "WGS 72 / UTM zone 6S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=6 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); add_proj4text (p, 1, ",0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 6S\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-147],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32306\"]]"); p = add_epsg_def_ex (filter, first, last, 32307, "epsg", 32307, "WGS 72 / UTM zone 7S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=7 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); add_proj4text (p, 1, ",0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 7S\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-141],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32307\"]]"); p = add_epsg_def_ex (filter, first, last, 32308, "epsg", 32308, "WGS 72 / UTM zone 8S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=8 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); add_proj4text (p, 1, ",0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 8S\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-135],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32308\"]]"); p = add_epsg_def_ex (filter, first, last, 32309, "epsg", 32309, "WGS 72 / UTM zone 9S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=9 +south +ellps=WGS72 +towgs84=0,0,4.5,0"); add_proj4text (p, 1, ",0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 9S\",GEOGCS[\"WGS 72\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORIT"); add_srs_wkt (p, 2, "Y[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263],"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 5, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 6, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-129],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32309\"]]"); p = add_epsg_def_ex (filter, first, last, 32310, "epsg", 32310, "WGS 72 / UTM zone 10S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=10 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 10S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-123"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",500000],PARAMETER[\"false_northing\",10000000],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32310\"]]"); p = add_epsg_def_ex (filter, first, last, 32311, "epsg", 32311, "WGS 72 / UTM zone 11S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=11 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 11S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-117"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",500000],PARAMETER[\"false_northing\",10000000],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32311\"]]"); p = add_epsg_def_ex (filter, first, last, 32312, "epsg", 32312, "WGS 72 / UTM zone 12S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=12 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 12S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-111"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",500000],PARAMETER[\"false_northing\",10000000],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32312\"]]"); p = add_epsg_def_ex (filter, first, last, 32313, "epsg", 32313, "WGS 72 / UTM zone 13S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=13 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 13S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-105"); add_srs_wkt (p, 9, "],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",500000],PARAMETER[\"false_northing\",10000000],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Ea"); add_srs_wkt (p, 12, "sting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32313\"]]"); p = add_epsg_def_ex (filter, first, last, 32314, "epsg", 32314, "WGS 72 / UTM zone 14S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=14 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 14S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-99]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32314\"]]"); p = add_epsg_def_ex (filter, first, last, 32315, "epsg", 32315, "WGS 72 / UTM zone 15S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=15 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 15S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-93]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32315\"]]"); p = add_epsg_def_ex (filter, first, last, 32316, "epsg", 32316, "WGS 72 / UTM zone 16S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=16 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 16S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-87]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32316\"]]"); p = add_epsg_def_ex (filter, first, last, 32317, "epsg", 32317, "WGS 72 / UTM zone 17S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 17S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-81]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32317\"]]"); p = add_epsg_def_ex (filter, first, last, 32318, "epsg", 32318, "WGS 72 / UTM zone 18S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 18S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-75]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32318\"]]"); p = add_epsg_def_ex (filter, first, last, 32319, "epsg", 32319, "WGS 72 / UTM zone 19S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 19S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-69]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32319\"]]"); p = add_epsg_def_ex (filter, first, last, 32320, "epsg", 32320, "WGS 72 / UTM zone 20S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 20S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-63]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32320\"]]"); p = add_epsg_def_ex (filter, first, last, 32321, "epsg", 32321, "WGS 72 / UTM zone 21S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 21S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-57]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32321\"]]"); p = add_epsg_def_ex (filter, first, last, 32322, "epsg", 32322, "WGS 72 / UTM zone 22S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 22S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-51]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32322\"]]"); p = add_epsg_def_ex (filter, first, last, 32323, "epsg", 32323, "WGS 72 / UTM zone 23S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 23S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-45]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32323\"]]"); p = add_epsg_def_ex (filter, first, last, 32324, "epsg", 32324, "WGS 72 / UTM zone 24S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 24S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-39]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32324\"]]"); p = add_epsg_def_ex (filter, first, last, 32325, "epsg", 32325, "WGS 72 / UTM zone 25S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 25S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-33]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32325\"]]"); p = add_epsg_def_ex (filter, first, last, 32326, "epsg", 32326, "WGS 72 / UTM zone 26S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=26 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 26S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-27]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32326\"]]"); p = add_epsg_def_ex (filter, first, last, 32327, "epsg", 32327, "WGS 72 / UTM zone 27S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=27 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 27S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-21]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32327\"]]"); p = add_epsg_def_ex (filter, first, last, 32328, "epsg", 32328, "WGS 72 / UTM zone 28S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 28S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-15]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32328\"]]"); p = add_epsg_def_ex (filter, first, last, 32329, "epsg", 32329, "WGS 72 / UTM zone 29S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 29S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-9],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32329\"]]"); p = add_epsg_def_ex (filter, first, last, 32330, "epsg", 32330, "WGS 72 / UTM zone 30S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=30 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 30S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",-3],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32330\"]]"); p = add_epsg_def_ex (filter, first, last, 32331, "epsg", 32331, "WGS 72 / UTM zone 31S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=31 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 31S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",3],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",10000000],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "32331\"]]"); p = add_epsg_def_ex (filter, first, last, 32332, "epsg", 32332, "WGS 72 / UTM zone 32S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 32S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",9],P"); add_srs_wkt (p, 9, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 10, "ing\",500000],PARAMETER[\"false_northing\",10000000],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "32332\"]]"); p = add_epsg_def_ex (filter, first, last, 32333, "epsg", 32333, "WGS 72 / UTM zone 33S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 33S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",15],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32333\"]]"); p = add_epsg_def_ex (filter, first, last, 32334, "epsg", 32334, "WGS 72 / UTM zone 34S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=34 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 34S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",21],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32334\"]]"); p = add_epsg_def_ex (filter, first, last, 32335, "epsg", 32335, "WGS 72 / UTM zone 35S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 35S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",27],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32335\"]]"); p = add_epsg_def_ex (filter, first, last, 32336, "epsg", 32336, "WGS 72 / UTM zone 36S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 36S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",33],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32336\"]]"); p = add_epsg_def_ex (filter, first, last, 32337, "epsg", 32337, "WGS 72 / UTM zone 37S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 37S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",39],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32337\"]]"); p = add_epsg_def_ex (filter, first, last, 32338, "epsg", 32338, "WGS 72 / UTM zone 38S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 38S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",45],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32338\"]]"); p = add_epsg_def_ex (filter, first, last, 32339, "epsg", 32339, "WGS 72 / UTM zone 39S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 39S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",51],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32339\"]]"); p = add_epsg_def_ex (filter, first, last, 32340, "epsg", 32340, "WGS 72 / UTM zone 40S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=40 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 40S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",57],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32340\"]]"); p = add_epsg_def_ex (filter, first, last, 32341, "epsg", 32341, "WGS 72 / UTM zone 41S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=41 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 41S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",63],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32341\"]]"); p = add_epsg_def_ex (filter, first, last, 32342, "epsg", 32342, "WGS 72 / UTM zone 42S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=42 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 42S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",69],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32342\"]]"); p = add_epsg_def_ex (filter, first, last, 32343, "epsg", 32343, "WGS 72 / UTM zone 43S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=43 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 43S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",75],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32343\"]]"); p = add_epsg_def_ex (filter, first, last, 32344, "epsg", 32344, "WGS 72 / UTM zone 44S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=44 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 44S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",81],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32344\"]]"); p = add_epsg_def_ex (filter, first, last, 32345, "epsg", 32345, "WGS 72 / UTM zone 45S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=45 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 45S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",87],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32345\"]]"); p = add_epsg_def_ex (filter, first, last, 32346, "epsg", 32346, "WGS 72 / UTM zone 46S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=46 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 46S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",93],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32346\"]]"); p = add_epsg_def_ex (filter, first, last, 32347, "epsg", 32347, "WGS 72 / UTM zone 47S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=47 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 47S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",99],"); add_srs_wkt (p, 9, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 12, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"32347\"]]"); p = add_epsg_def_ex (filter, first, last, 32348, "epsg", 32348, "WGS 72 / UTM zone 48S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 48S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",105]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32348\"]]"); p = add_epsg_def_ex (filter, first, last, 32349, "epsg", 32349, "WGS 72 / UTM zone 49S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=49 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 49S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",111]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32349\"]]"); p = add_epsg_def_ex (filter, first, last, 32350, "epsg", 32350, "WGS 72 / UTM zone 50S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 50S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",117]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32350\"]]"); p = add_epsg_def_ex (filter, first, last, 32351, "epsg", 32351, "WGS 72 / UTM zone 51S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=51 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 51S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",123]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32351\"]]"); p = add_epsg_def_ex (filter, first, last, 32352, "epsg", 32352, "WGS 72 / UTM zone 52S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=52 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 52S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",129]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32352\"]]"); p = add_epsg_def_ex (filter, first, last, 32353, "epsg", 32353, "WGS 72 / UTM zone 53S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=53 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 53S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",135]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32353\"]]"); p = add_epsg_def_ex (filter, first, last, 32354, "epsg", 32354, "WGS 72 / UTM zone 54S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=54 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 54S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",141]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32354\"]]"); p = add_epsg_def_ex (filter, first, last, 32355, "epsg", 32355, "WGS 72 / UTM zone 55S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=55 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 55S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",147]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32355\"]]"); p = add_epsg_def_ex (filter, first, last, 32356, "epsg", 32356, "WGS 72 / UTM zone 56S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=56 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 56S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",153]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32356\"]]"); p = add_epsg_def_ex (filter, first, last, 32357, "epsg", 32357, "WGS 72 / UTM zone 57S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=57 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 57S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",159]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32357\"]]"); p = add_epsg_def_ex (filter, first, last, 32358, "epsg", 32358, "WGS 72 / UTM zone 58S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 58S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",165]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32358\"]]"); p = add_epsg_def_ex (filter, first, last, 32359, "epsg", 32359, "WGS 72 / UTM zone 59S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=59 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 59S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",171]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32359\"]]"); p = add_epsg_def_ex (filter, first, last, 32360, "epsg", 32360, "WGS 72 / UTM zone 60S", 0, 0, "WGS 72", "Greenwich", "WGS_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=60 +south +ellps=WGS72 +towgs84=0,0,4.5,"); add_proj4text (p, 1, "0,0,0.554,0.2263 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72 / UTM zone 60S\",GEOGCS[\"WGS 72\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1972\",SPHEROID[\"WGS 72\",6378135,298.26,AUTHORI"); add_srs_wkt (p, 2, "TY[\"EPSG\",\"7043\"]],TOWGS84[0,0,4.5,0,0,0.554,0.2263]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6322\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4322"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",0],PARAMETER[\"central_meridian\",177]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"32360\"]]"); p = add_epsg_def_ex (filter, first, last, 32401, "epsg", 32401, "WGS 72BE / UTM zone 1N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=1 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); add_proj4text (p, 1, "4,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 1N\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-177],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"32401\"]]"); p = add_epsg_def_ex (filter, first, last, 32402, "epsg", 32402, "WGS 72BE / UTM zone 2N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=2 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); add_proj4text (p, 1, "4,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 2N\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-171],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"32402\"]]"); p = add_epsg_def_ex (filter, first, last, 32403, "epsg", 32403, "WGS 72BE / UTM zone 3N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=3 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); add_proj4text (p, 1, "4,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 3N\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-165],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"32403\"]]"); p = add_epsg_def_ex (filter, first, last, 32404, "epsg", 32404, "WGS 72BE / UTM zone 4N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=4 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); add_proj4text (p, 1, "4,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 4N\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-159],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"32404\"]]"); p = add_epsg_def_ex (filter, first, last, 32405, "epsg", 32405, "WGS 72BE / UTM zone 5N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=5 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); add_proj4text (p, 1, "4,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 5N\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-153],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"32405\"]]"); p = add_epsg_def_ex (filter, first, last, 32406, "epsg", 32406, "WGS 72BE / UTM zone 6N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=6 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); add_proj4text (p, 1, "4,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 6N\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-147],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"32406\"]]"); p = add_epsg_def_ex (filter, first, last, 32407, "epsg", 32407, "WGS 72BE / UTM zone 7N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=7 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); add_proj4text (p, 1, "4,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 7N\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-141],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"32407\"]]"); p = add_epsg_def_ex (filter, first, last, 32408, "epsg", 32408, "WGS 72BE / UTM zone 8N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=8 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); add_proj4text (p, 1, "4,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 8N\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-135],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"32408\"]]"); p = add_epsg_def_ex (filter, first, last, 32409, "epsg", 32409, "WGS 72BE / UTM zone 9N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=9 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.81"); add_proj4text (p, 1, "4,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 9N\",GEOGCS[\"WGS 72BE\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-129],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"32409\"]]"); p = add_epsg_def_ex (filter, first, last, 32410, "epsg", 32410, "WGS 72BE / UTM zone 10N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=10 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 10N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-123],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"32410\"]]"); p = add_epsg_def_ex (filter, first, last, 32411, "epsg", 32411, "WGS 72BE / UTM zone 11N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=11 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 11N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-117],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"32411\"]]"); p = add_epsg_def_ex (filter, first, last, 32412, "epsg", 32412, "WGS 72BE / UTM zone 12N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=12 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 12N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-111],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"32412\"]]"); p = add_epsg_def_ex (filter, first, last, 32413, "epsg", 32413, "WGS 72BE / UTM zone 13N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=13 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 13N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-105],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"32413\"]]"); p = add_epsg_def_ex (filter, first, last, 32414, "epsg", 32414, "WGS 72BE / UTM zone 14N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=14 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 14N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-99],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32414\"]]"); p = add_epsg_def_ex (filter, first, last, 32415, "epsg", 32415, "WGS 72BE / UTM zone 15N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=15 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 15N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-93],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32415\"]]"); p = add_epsg_def_ex (filter, first, last, 32416, "epsg", 32416, "WGS 72BE / UTM zone 16N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=16 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 16N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-87],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32416\"]]"); p = add_epsg_def_ex (filter, first, last, 32417, "epsg", 32417, "WGS 72BE / UTM zone 17N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 17N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-81],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32417\"]]"); p = add_epsg_def_ex (filter, first, last, 32418, "epsg", 32418, "WGS 72BE / UTM zone 18N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 18N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-75],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32418\"]]"); p = add_epsg_def_ex (filter, first, last, 32419, "epsg", 32419, "WGS 72BE / UTM zone 19N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 19N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-69],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32419\"]]"); p = add_epsg_def_ex (filter, first, last, 32420, "epsg", 32420, "WGS 72BE / UTM zone 20N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 20N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-63],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32420\"]]"); p = add_epsg_def_ex (filter, first, last, 32421, "epsg", 32421, "WGS 72BE / UTM zone 21N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 21N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-57],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32421\"]]"); p = add_epsg_def_ex (filter, first, last, 32422, "epsg", 32422, "WGS 72BE / UTM zone 22N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 22N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-51],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32422\"]]"); p = add_epsg_def_ex (filter, first, last, 32423, "epsg", 32423, "WGS 72BE / UTM zone 23N", 0, 0, "WGS 72", "Greenwich", "WGS_1972_Transit_Broadcast_Ephemeris", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8"); add_proj4text (p, 1, "14,-0.38 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 72BE / UTM zone 23N\",GEOGCS[\"WGS 72BE\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1972_Transit_Broadcast_Ephemeris\",SPHEROID[\""); add_srs_wkt (p, 2, "WGS 72\",6378135,298.26,AUTHORITY[\"EPSG\",\"7043\"]],TO"); add_srs_wkt (p, 3, "WGS84[0,0,1.9,0,0,0.814,-0.38],AUTHORITY[\"EPSG\",\"6324"); add_srs_wkt (p, 4, "\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]"); add_srs_wkt (p, 5, "],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 6, "\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",E"); add_srs_wkt (p, 7, "AST],AUTHORITY[\"EPSG\",\"4324\"]],PROJECTION[\"Transver"); add_srs_wkt (p, 8, "se_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAM"); add_srs_wkt (p, 9, "ETER[\"central_meridian\",-45],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"32423\"]]"); } #endif /* full EPSG initialization enabled/disabled */ �����������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_12.c��������������������������������������������������0000664�0001750�0001750�00000540753�12544707704�017050� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_12 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 3244, "epsg", 3244, "WGS 84 / SCAR IMW SS10-12", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-117 +x_0=0 +y_0=0 +datum=WGS84 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS10-12\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-72.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-117],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3244\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3245, "epsg", 3245, "WGS 84 / SCAR IMW SS13-15", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-99 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS13-15\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-72.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-99],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3245\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3246, "epsg", 3246, "WGS 84 / SCAR IMW SS16-18", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-81 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS16-18\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-72.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-81],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3246\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3247, "epsg", 3247, "WGS 84 / SCAR IMW SS19-21", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-63 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS19-21\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-72.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-63],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3247\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3248, "epsg", 3248, "WGS 84 / SCAR IMW SS25-27", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-27 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS25-27\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-72.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-27],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3248\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3249, "epsg", 3249, "WGS 84 / SCAR IMW SS28-30", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-9 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS28-30\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-72.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-9],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3249\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3250, "epsg", 3250, "WGS 84 / SCAR IMW SS31-33", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=9 +x_0=0 +y_0=0 +datum=WGS84 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS31-33\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-72.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",9],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3250\"]]"); p = add_epsg_def_ex (filter, first, last, 3251, "epsg", 3251, "WGS 84 / SCAR IMW SS34-36", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=27 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS34-36\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-72.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",27],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3251\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3252, "epsg", 3252, "WGS 84 / SCAR IMW SS37-39", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=45 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS37-39\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-72.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",45],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3252\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3253, "epsg", 3253, "WGS 84 / SCAR IMW SS40-42", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=63 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS40-42\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-72.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",63],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3253\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3254, "epsg", 3254, "WGS 84 / SCAR IMW SS43-45", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=81 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS43-45\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-72.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",81],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3254\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3255, "epsg", 3255, "WGS 84 / SCAR IMW SS46-48", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=99 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS46-48\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-72.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",99],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3255\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3256, "epsg", 3256, "WGS 84 / SCAR IMW SS49-51", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=117 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS49-51\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-72.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",117],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3256\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3257, "epsg", 3257, "WGS 84 / SCAR IMW SS52-54", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=135 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS52-54\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-72.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",135],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3257\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3258, "epsg", 3258, "WGS 84 / SCAR IMW SS55-57", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=153 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS55-57\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-72.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",153],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3258\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3259, "epsg", 3259, "WGS 84 / SCAR IMW SS58-60", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=171 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SS58-60\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-72.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-75.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",171],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3259\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3260, "epsg", 3260, "WGS 84 / SCAR IMW ST01-04", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-168 +x_0=0 +y_0=0 +datum=WGS84 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST01-04\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-76.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-79.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-168],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3260\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3261, "epsg", 3261, "WGS 84 / SCAR IMW ST05-08", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-144 +x_0=0 +y_0=0 +datum=WGS84 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST05-08\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-76.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-79.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-144],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3261\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3262, "epsg", 3262, "WGS 84 / SCAR IMW ST09-12", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-120 +x_0=0 +y_0=0 +datum=WGS84 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST09-12\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-76.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-79.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-120],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3262\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3263, "epsg", 3263, "WGS 84 / SCAR IMW ST13-16", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-96 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST13-16\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-76.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-79.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-96],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3263\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3264, "epsg", 3264, "WGS 84 / SCAR IMW ST17-20", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-72 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST17-20\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-76.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-79.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-72],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3264\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3265, "epsg", 3265, "WGS 84 / SCAR IMW ST21-24", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-48 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST21-24\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-76.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-79.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-48],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3265\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3266, "epsg", 3266, "WGS 84 / SCAR IMW ST25-28", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=-24 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST25-28\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-76.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-79.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",-24],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3266\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3267, "epsg", 3267, "WGS 84 / SCAR IMW ST29-32", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST29-32\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-76.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-79.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",0],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 12, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST"); add_srs_wkt (p, 13, "],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3267\"]]"); p = add_epsg_def_ex (filter, first, last, 3268, "epsg", 3268, "WGS 84 / SCAR IMW ST33-36", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=24 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST33-36\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-76.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-79.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",24],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3268\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3269, "epsg", 3269, "WGS 84 / SCAR IMW ST37-40", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=48 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST37-40\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-76.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-79.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",48],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3269\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3270, "epsg", 3270, "WGS 84 / SCAR IMW ST41-44", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=72 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST41-44\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-76.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-79.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",72],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3270\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3271, "epsg", 3271, "WGS 84 / SCAR IMW ST45-48", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=96 +x_0=0 +y_0=0 +datum=WGS84 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST45-48\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-76.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-79.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",96],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3271\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3272, "epsg", 3272, "WGS 84 / SCAR IMW ST49-52", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=120 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST49-52\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-76.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-79.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",120],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3272\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3273, "epsg", 3273, "WGS 84 / SCAR IMW ST53-56", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=144 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST53-56\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-76.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-79.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",144],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3273\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3274, "epsg", 3274, "WGS 84 / SCAR IMW ST57-60", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-90 +lon_0=168 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW ST57-60\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Lamber"); add_srs_wkt (p, 7, "t_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1"); add_srs_wkt (p, 8, "\",-76.66666666666667],PARAMETER[\"standard_parallel_2\""); add_srs_wkt (p, 9, ",-79.33333333333333],PARAMETER[\"latitude_of_origin\",-9"); add_srs_wkt (p, 10, "0],PARAMETER[\"central_meridian\",168],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3274\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3275, "epsg", 3275, "WGS 84 / SCAR IMW SU01-05", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=-165 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU01-05\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",-165],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 12, "thing\",NORTH],AUTHORITY[\"EPSG\",\"3275\"]]"); p = add_epsg_def_ex (filter, first, last, 3276, "epsg", 3276, "WGS 84 / SCAR IMW SU06-10", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=-135 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU06-10\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",-135],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 12, "thing\",NORTH],AUTHORITY[\"EPSG\",\"3276\"]]"); p = add_epsg_def_ex (filter, first, last, 3277, "epsg", 3277, "WGS 84 / SCAR IMW SU11-15", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=-105 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU11-15\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",-105],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 12, "thing\",NORTH],AUTHORITY[\"EPSG\",\"3277\"]]"); p = add_epsg_def_ex (filter, first, last, 3278, "epsg", 3278, "WGS 84 / SCAR IMW SU16-20", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=-75 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU16-20\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",-75],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3278\"]]"); p = add_epsg_def_ex (filter, first, last, 3279, "epsg", 3279, "WGS 84 / SCAR IMW SU21-25", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=-45 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU21-25\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",-45],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3279\"]]"); p = add_epsg_def_ex (filter, first, last, 3280, "epsg", 3280, "WGS 84 / SCAR IMW SU26-30", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=-15 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU26-30\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",-15],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3280\"]]"); p = add_epsg_def_ex (filter, first, last, 3281, "epsg", 3281, "WGS 84 / SCAR IMW SU31-35", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=15 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU31-35\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",15],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3281\"]]"); p = add_epsg_def_ex (filter, first, last, 3282, "epsg", 3282, "WGS 84 / SCAR IMW SU36-40", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=45 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU36-40\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",45],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3282\"]]"); p = add_epsg_def_ex (filter, first, last, 3283, "epsg", 3283, "WGS 84 / SCAR IMW SU41-45", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=75 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU41-45\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",75],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3283\"]]"); p = add_epsg_def_ex (filter, first, last, 3284, "epsg", 3284, "WGS 84 / SCAR IMW SU46-50", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=105 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU46-50\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",105],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3284\"]]"); p = add_epsg_def_ex (filter, first, last, 3285, "epsg", 3285, "WGS 84 / SCAR IMW SU51-55", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=135 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU51-55\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",135],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3285\"]]"); p = add_epsg_def_ex (filter, first, last, 3286, "epsg", 3286, "WGS 84 / SCAR IMW SU56-60", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=165 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SU56-60\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",165],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3286\"]]"); p = add_epsg_def_ex (filter, first, last, 3287, "epsg", 3287, "WGS 84 / SCAR IMW SV01-10", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=-150 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SV01-10\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",-150],PARAM"); add_srs_wkt (p, 9, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],"); add_srs_wkt (p, 10, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 11, "TY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nor"); add_srs_wkt (p, 12, "thing\",NORTH],AUTHORITY[\"EPSG\",\"3287\"]]"); p = add_epsg_def_ex (filter, first, last, 3288, "epsg", 3288, "WGS 84 / SCAR IMW SV11-20", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=-90 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SV11-20\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",-90],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3288\"]]"); p = add_epsg_def_ex (filter, first, last, 3289, "epsg", 3289, "WGS 84 / SCAR IMW SV21-30", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=-30 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SV21-30\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",-30],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3289\"]]"); p = add_epsg_def_ex (filter, first, last, 3290, "epsg", 3290, "WGS 84 / SCAR IMW SV31-40", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=30 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SV31-40\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",30],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3290\"]]"); p = add_epsg_def_ex (filter, first, last, 3291, "epsg", 3291, "WGS 84 / SCAR IMW SV41-50", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=90 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SV41-50\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",90],PARAMET"); add_srs_wkt (p, 9, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 11, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 12, "ing\",NORTH],AUTHORITY[\"EPSG\",\"3291\"]]"); p = add_epsg_def_ex (filter, first, last, 3292, "epsg", 3292, "WGS 84 / SCAR IMW SV51-60", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=150 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SV51-60\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",150],PARAME"); add_srs_wkt (p, 9, "TER[\"scale_factor\",1],PARAMETER[\"false_easting\",0],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 11, "Y[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AUTHORITY[\"EPSG\",\"3292\"]]"); p = add_epsg_def_ex (filter, first, last, 3293, "epsg", 3293, "WGS 84 / SCAR IMW SW01-60", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0"); add_proj4text (p, 1, "=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / SCAR IMW SW01-60\",GEOGCS[\"WGS 84\",D"); add_srs_wkt (p, 1, "ATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223"); add_srs_wkt (p, 2, "563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 3, "326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 4, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 5, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 6, ",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_"); add_srs_wkt (p, 7, "Stereographic\"],PARAMETER[\"latitude_of_origin\",-80.23"); add_srs_wkt (p, 8, "861111111111],PARAMETER[\"central_meridian\",0],PARAMETE"); add_srs_wkt (p, 9, "R[\"scale_factor\",1],PARAMETER[\"false_easting\",0],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 11, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 12, "ng\",NORTH],AUTHORITY[\"EPSG\",\"3293\"]]"); p = add_epsg_def_ex (filter, first, last, 3294, "epsg", 3294, "WGS 84 / USGS Transantarctic Mountains", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.333333333"); add_proj4text (p, 1, "33333 +lat_0=-78 +lon_0=162 +x_0=0 +y_0=0 +datum=WGS84 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / USGS Transantarctic Mountains\",GEOGCS"); add_srs_wkt (p, 1, "[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",63781"); add_srs_wkt (p, 2, "37,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 6, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJE"); add_srs_wkt (p, 7, "CTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"stand"); add_srs_wkt (p, 8, "ard_parallel_1\",-76.66666666666667],PARAMETER[\"standar"); add_srs_wkt (p, 9, "d_parallel_2\",-79.33333333333333],PARAMETER[\"latitude_"); add_srs_wkt (p, 10, "of_origin\",-78],PARAMETER[\"central_meridian\",162],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"3294\"]]"); p = add_epsg_def_ex (filter, first, last, 3296, "epsg", 3296, "RGPF / UTM zone 5S", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_Polynesie_Francaise", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=5 +south +ellps=GRS80 +towgs84=0.072,-0."); add_proj4text (p, 1, "507,-0.245,-0.0183,0.0003,-0.007,-0.0093 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"RGPF / UTM zone 5S\",GEOGCS[\"RGPF\",DATUM[\"Re"); add_srs_wkt (p, 1, "seau_Geodesique_de_la_Polynesie_Francaise\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0.072,-0.507,-0.245,-0.0183,0.0003,-0.007,"); add_srs_wkt (p, 4, "-0.0093],AUTHORITY[\"EPSG\",\"6687\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4687\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 10, "\",-153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"3296\"]]"); p = add_epsg_def_ex (filter, first, last, 3297, "epsg", 3297, "RGPF / UTM zone 6S", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_Polynesie_Francaise", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=6 +south +ellps=GRS80 +towgs84=0.072,-0."); add_proj4text (p, 1, "507,-0.245,-0.0183,0.0003,-0.007,-0.0093 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"RGPF / UTM zone 6S\",GEOGCS[\"RGPF\",DATUM[\"Re"); add_srs_wkt (p, 1, "seau_Geodesique_de_la_Polynesie_Francaise\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0.072,-0.507,-0.245,-0.0183,0.0003,-0.007,"); add_srs_wkt (p, 4, "-0.0093],AUTHORITY[\"EPSG\",\"6687\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4687\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 10, "\",-147],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"3297\"]]"); p = add_epsg_def_ex (filter, first, last, 3298, "epsg", 3298, "RGPF / UTM zone 7S", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_Polynesie_Francaise", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=7 +south +ellps=GRS80 +towgs84=0.072,-0."); add_proj4text (p, 1, "507,-0.245,-0.0183,0.0003,-0.007,-0.0093 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"RGPF / UTM zone 7S\",GEOGCS[\"RGPF\",DATUM[\"Re"); add_srs_wkt (p, 1, "seau_Geodesique_de_la_Polynesie_Francaise\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0.072,-0.507,-0.245,-0.0183,0.0003,-0.007,"); add_srs_wkt (p, 4, "-0.0093],AUTHORITY[\"EPSG\",\"6687\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4687\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 10, "\",-141],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"3298\"]]"); p = add_epsg_def_ex (filter, first, last, 3299, "epsg", 3299, "RGPF / UTM zone 8S", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_Polynesie_Francaise", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=8 +south +ellps=GRS80 +towgs84=0.072,-0."); add_proj4text (p, 1, "507,-0.245,-0.0183,0.0003,-0.007,-0.0093 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"RGPF / UTM zone 8S\",GEOGCS[\"RGPF\",DATUM[\"Re"); add_srs_wkt (p, 1, "seau_Geodesique_de_la_Polynesie_Francaise\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0.072,-0.507,-0.245,-0.0183,0.0003,-0.007,"); add_srs_wkt (p, 4, "-0.0093],AUTHORITY[\"EPSG\",\"6687\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4687\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 10, "\",-135],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 12, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"3299\"]]"); p = add_epsg_def_ex (filter, first, last, 3300, "epsg", 3300, "Estonian Coordinate System of 1992", 0, 1, "GRS 1980", "Greenwich", "Estonia_1992", "Lambert_Conformal_Conic_2SP", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=59.33333333333334 +lat_2=58 +lat_0=57.5"); add_proj4text (p, 1, "1755393055556 +lon_0=24 +x_0=500000 +y_0=6375000 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0.055,-0.541,-0.185,0.0183,-0.0003,-0.007"); add_proj4text (p, 3, ",-0.014 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Estonian Coordinate System of 1992\",GEOGCS[\"E"); add_srs_wkt (p, 1, "ST92\",DATUM[\"Estonia_1992\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"6133\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4133\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"st"); add_srs_wkt (p, 9, "andard_parallel_1\",59.33333333333334],PARAMETER[\"stand"); add_srs_wkt (p, 10, "ard_parallel_2\",58],PARAMETER[\"latitude_of_origin\",57"); add_srs_wkt (p, 11, ".51755393055556],PARAMETER[\"central_meridian\",24],PARA"); add_srs_wkt (p, 12, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 13, "ng\",6375000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 14, "\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 15, "\",\"3300\"]]"); p = add_epsg_def_ex (filter, first, last, 3301, "epsg", 3301, "Estonian Coordinate System of 1997", 0, 1, "GRS 1980", "Greenwich", "Estonia_1997", "Lambert_Conformal_Conic_2SP", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=59.33333333333334 +lat_2=58 +lat_0=57.5"); add_proj4text (p, 1, "1755393055556 +lon_0=24 +x_0=500000 +y_0=6375000 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Estonian Coordinate System of 1997\",GEOGCS[\"E"); add_srs_wkt (p, 1, "ST97\",DATUM[\"Estonia_1997\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6180\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4180\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"standard_parallel_1\",59.33333333333334"); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_2\",58],PARAMETER[\"lati"); add_srs_wkt (p, 10, "tude_of_origin\",57.51755393055556],PARAMETER[\"central_"); add_srs_wkt (p, 11, "meridian\",24],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_northing\",6375000],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"3301\"]]"); p = add_epsg_def_ex (filter, first, last, 3302, "epsg", 3302, "IGN63 Hiva Oa / UTM zone 7S", 0, 0, "International 1924", "Greenwich", "IGN63_Hiva_Oa", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=7 +south +ellps=intl +towgs84=410.721,55"); add_proj4text (p, 1, ".049,80.746,2.5779,2.3514,0.6664,17.3311 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"IGN63 Hiva Oa / UTM zone 7S\",GEOGCS[\"IGN63 Hi"); add_srs_wkt (p, 1, "va Oa\",DATUM[\"IGN63_Hiva_Oa\",SPHEROID[\"International"); add_srs_wkt (p, 2, " 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS8"); add_srs_wkt (p, 3, "4[410.721,55.049,80.746,2.5779,2.3514,0.6664,17.3311],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6689\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4689\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",0],PARAMETER[\"central_meridian\",-141],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",500000],PARAMETER[\"false_northing\",10000000],UNI"); add_srs_wkt (p, 12, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 13, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "3302\"]]"); p = add_epsg_def_ex (filter, first, last, 3303, "epsg", 3303, "Fatu Iva 72 / UTM zone 7S", 0, 0, "International 1924", "Greenwich", "Fatu_Iva_72", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=7 +south +ellps=intl +towgs84=347.103,10"); add_proj4text (p, 1, "78.125,2623.922,-33.8875,70.6773,-9.3943,186.074 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Fatu Iva 72 / UTM zone 7S\",GEOGCS[\"Fatu Iva 7"); add_srs_wkt (p, 1, "2\",DATUM[\"Fatu_Iva_72\",SPHEROID[\"International 1924\""); add_srs_wkt (p, 2, ",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[347.1"); add_srs_wkt (p, 3, "03,1078.125,2623.922,-33.8875,70.6773,-9.3943,186.074],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6688\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4688\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-141],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 13, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"3303\"]]"); p = add_epsg_def_ex (filter, first, last, 3304, "epsg", 3304, "Tahiti 79 / UTM zone 6S", 0, 0, "International 1924", "Greenwich", "Tahiti_79", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=6 +south +ellps=intl +towgs84=221.525,15"); add_proj4text (p, 1, "2.948,176.768,-2.3847,-1.3896,-0.877,11.4741 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tahiti 79 / UTM zone 6S\",GEOGCS[\"Tahiti 79\","); add_srs_wkt (p, 1, "DATUM[\"Tahiti_79\",SPHEROID[\"International 1924\",6378"); add_srs_wkt (p, 2, "388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[221.525,15"); add_srs_wkt (p, 3, "2.948,176.768,-2.3847,-1.3896,-0.877,11.4741],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6690\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4690\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",-147],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",10000000],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3304\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3305, "epsg", 3305, "Moorea 87 / UTM zone 6S", 0, 0, "International 1924", "Greenwich", "Moorea_87", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=6 +south +ellps=intl +towgs84=215.525,14"); add_proj4text (p, 1, "9.593,176.229,-3.2624,-1.692,-1.1571,10.4773 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"Moorea 87 / UTM zone 6S\",GEOGCS[\"Moorea 87\","); add_srs_wkt (p, 1, "DATUM[\"Moorea_87\",SPHEROID[\"International 1924\",6378"); add_srs_wkt (p, 2, "388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[215.525,14"); add_srs_wkt (p, 3, "9.593,176.229,-3.2624,-1.692,-1.1571,10.4773],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6691\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4691\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",-147],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",10000000],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3305\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3306, "epsg", 3306, "Maupiti 83 / UTM zone 5S", 0, 0, "International 1924", "Greenwich", "Maupiti_83", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=5 +south +ellps=intl +towgs84=217.037,86"); add_proj4text (p, 1, ".959,23.956,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Maupiti 83 / UTM zone 5S\",GEOGCS[\"Maupiti 83\""); add_srs_wkt (p, 1, ",DATUM[\"Maupiti_83\",SPHEROID[\"International 1924\",63"); add_srs_wkt (p, 2, "78388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[217.037,"); add_srs_wkt (p, 3, "86.959,23.956,0,0,0,0],AUTHORITY[\"EPSG\",\"6692\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4692\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-153],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 13, "TH],AUTHORITY[\"EPSG\",\"3306\"]]"); p = add_epsg_def_ex (filter, first, last, 3307, "epsg", 3307, "Nakhl-e Ghanem / UTM zone 39N", 0, 0, "WGS 84", "Greenwich", "Nakhl_e_Ghanem", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=WGS84 +towgs84=0,-0.15,0.68,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nakhl-e Ghanem / UTM zone 39N\",GEOGCS[\"Nakhl-"); add_srs_wkt (p, 1, "e Ghanem\",DATUM[\"Nakhl_e_Ghanem\",SPHEROID[\"WGS 84\","); add_srs_wkt (p, 2, "6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,-0.15,0.68,0,0,0,0],AUTHORITY[\"EPSG\",\"6693\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4693\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 8, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 9, "\"central_meridian\",51],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3307\"]]"); p = add_epsg_def_ex (filter, first, last, 3308, "epsg", 3308, "GDA94 / NSW Lambert", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-30.75 +lat_2=-35.75 +lat_0=-33.25 +lon"); add_proj4text (p, 1, "_0=147 +x_0=9300000 +y_0=4500000 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 2, ",0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / NSW Lambert\",GEOGCS[\"GDA94\",DATUM[\""); add_srs_wkt (p, 1, "Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",-30.75],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_2\",-35.75],PARAMETER[\"la"); add_srs_wkt (p, 10, "titude_of_origin\",-33.25],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",147],PARAMETER[\"false_easting\",9300000],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",4500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"3308\"]]"); p = add_epsg_def_ex (filter, first, last, 3309, "epsg", 3309, "NAD27 / California Albers", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_"); add_proj4text (p, 1, "0=0 +y_0=-4000000 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / California Albers\",GEOGCS[\"NAD27\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866"); add_srs_wkt (p, 2, "\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008"); add_srs_wkt (p, 3, "\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4267\"]],PROJECTION[\"Albers_Conic_Equal_Area\"],PARAMET"); add_srs_wkt (p, 8, "ER[\"standard_parallel_1\",34],PARAMETER[\"standard_para"); add_srs_wkt (p, 9, "llel_2\",40.5],PARAMETER[\"latitude_of_center\",0],PARAM"); add_srs_wkt (p, 10, "ETER[\"longitude_of_center\",-120],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",0],PARAMETER[\"false_northing\",-4000000],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3309\"]]"); p = add_epsg_def_ex (filter, first, last, 3310, "epsg", 3310, "NAD83 / California Albers", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_"); add_proj4text (p, 1, "0=0 +y_0=-4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California Albers\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Albers_Conic_Equal_A"); add_srs_wkt (p, 8, "rea\"],PARAMETER[\"standard_parallel_1\",34],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",40.5],PARAMETER[\"latitude_of_cent"); add_srs_wkt (p, 10, "er\",0],PARAMETER[\"longitude_of_center\",-120],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",0],PARAMETER[\"false_northing\",-400"); add_srs_wkt (p, 12, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"331"); add_srs_wkt (p, 14, "0\"]]"); p = add_epsg_def_ex (filter, first, last, 3311, "epsg", 3311, "NAD83(HARN) / California Albers", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_"); add_proj4text (p, 1, "0=0 +y_0=-4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +u"); add_proj4text (p, 2, "nits=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / California Albers\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Albers_Conic_Equal_Area\"],PARAMETER[\"standard_parall"); add_srs_wkt (p, 9, "el_1\",34],PARAMETER[\"standard_parallel_2\",40.5],PARAM"); add_srs_wkt (p, 10, "ETER[\"latitude_of_center\",0],PARAMETER[\"longitude_of_"); add_srs_wkt (p, 11, "center\",-120],PARAMETER[\"false_easting\",0],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",-4000000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"3311\"]]"); p = add_epsg_def_ex (filter, first, last, 3312, "epsg", 3312, "CSG67 / UTM zone 21N", 0, 0, "International 1924", "Greenwich", "Centre_Spatial_Guyanais_1967", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=intl +towgs84=-186,230,110,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"CSG67 / UTM zone 21N\",GEOGCS[\"CSG67\",DATUM[\""); add_srs_wkt (p, 1, "Centre_Spatial_Guyanais_1967\",SPHEROID[\"International "); add_srs_wkt (p, 2, "1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84"); add_srs_wkt (p, 3, "[-186,230,110,0,0,0,0],AUTHORITY[\"EPSG\",\"6623\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4623\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",-57],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"3312\"]]"); p = add_epsg_def_ex (filter, first, last, 3313, "epsg", 3313, "RGFG95 / UTM zone 21N", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_Francais_Guyane_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGFG95 / UTM zone 21N\",GEOGCS[\"RGFG95\",DATUM"); add_srs_wkt (p, 1, "[\"Reseau_Geodesique_Francais_Guyane_1995\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6624\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4624\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-57],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"3313\"]]"); p = add_epsg_def_ex (filter, first, last, 3314, "epsg", 3314, "Katanga 1955 / Katanga Lambert (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "Katanga_1955", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-6.5 +lat_2=-11.5 +lat_0=0 +lon_0=26 +x"); add_proj4text (p, 1, "_0=0 +y_0=0 +ellps=clrk66 +towgs84=-103.746,-9.614,-255."); add_proj4text (p, 2, "95,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Katanga 1955 / Katanga Lambert (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6695\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4695"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 9, "ER[\"standard_parallel_1\",-6.5],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",-11.5],PARAMETER[\"latitude_of_origin\",0],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",26],PARAMETER[\"false_easti"); add_srs_wkt (p, 12, "ng\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3314\"]]"); p = add_epsg_def_ex (filter, first, last, 3315, "epsg", 3315, "Katanga 1955 / Katanga TM (deprecated)", 0, 0, "Clarke 1866", "Greenwich", "Katanga_1955", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-9 +lon_0=26 +k=0.9998 +x_0=0 +y_0=0 "); add_proj4text (p, 1, "+ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +"); add_proj4text (p, 2, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Katanga 1955 / Katanga TM (deprecated)\",GEOGCS"); add_srs_wkt (p, 1, "[\"Katanga 1955\",DATUM[\"Katanga_1955\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[-103.746,-9.614,-255.95,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6695\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4695\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",-9],PARAMETER[\"central_meridian\",26],PAR"); add_srs_wkt (p, 10, "AMETER[\"scale_factor\",0.9998],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 13, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3315\"]]"); p = add_epsg_def_ex (filter, first, last, 3316, "epsg", 3316, "Kasai 1953 / Congo TM zone 22", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Kasai_1953", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=22 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kasai 1953 / Congo TM zone 22\",GEOGCS[\"Kasai "); add_srs_wkt (p, 1, "1953\",DATUM[\"Kasai_1953\",SPHEROID[\"Clarke 1880 (RGS)"); add_srs_wkt (p, 2, "\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6696\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4696\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",22],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",0.9999],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",500000],PARAMETER[\"false_northing\",10000000],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"331"); add_srs_wkt (p, 13, "6\"]]"); p = add_epsg_def_ex (filter, first, last, 3317, "epsg", 3317, "Kasai 1953 / Congo TM zone 24", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Kasai_1953", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Kasai 1953 / Congo TM zone 24\",GEOGCS[\"Kasai "); add_srs_wkt (p, 1, "1953\",DATUM[\"Kasai_1953\",SPHEROID[\"Clarke 1880 (RGS)"); add_srs_wkt (p, 2, "\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6696\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4696\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",24],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",0.9999],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",500000],PARAMETER[\"false_northing\",10000000],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"331"); add_srs_wkt (p, 13, "7\"]]"); p = add_epsg_def_ex (filter, first, last, 3318, "epsg", 3318, "IGC 1962 / Congo TM zone 12", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "IGC_1962_Arc_of_the_6th_Parallel_South", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 12\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4697\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",12],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3318\"]]"); p = add_epsg_def_ex (filter, first, last, 3319, "epsg", 3319, "IGC 1962 / Congo TM zone 14", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "IGC_1962_Arc_of_the_6th_Parallel_South", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=14 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 14\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4697\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",14],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3319\"]]"); p = add_epsg_def_ex (filter, first, last, 3320, "epsg", 3320, "IGC 1962 / Congo TM zone 16", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "IGC_1962_Arc_of_the_6th_Parallel_South", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 16\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4697\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",16],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3320\"]]"); p = add_epsg_def_ex (filter, first, last, 3321, "epsg", 3321, "IGC 1962 / Congo TM zone 18", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "IGC_1962_Arc_of_the_6th_Parallel_South", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 18\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4697\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",18],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3321\"]]"); p = add_epsg_def_ex (filter, first, last, 3322, "epsg", 3322, "IGC 1962 / Congo TM zone 20", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "IGC_1962_Arc_of_the_6th_Parallel_South", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 20\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4697\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",20],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3322\"]]"); p = add_epsg_def_ex (filter, first, last, 3323, "epsg", 3323, "IGC 1962 / Congo TM zone 22", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "IGC_1962_Arc_of_the_6th_Parallel_South", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=22 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 22\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4697\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",22],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3323\"]]"); p = add_epsg_def_ex (filter, first, last, 3324, "epsg", 3324, "IGC 1962 / Congo TM zone 24", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "IGC_1962_Arc_of_the_6th_Parallel_South", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 24\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4697\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",24],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3324\"]]"); p = add_epsg_def_ex (filter, first, last, 3325, "epsg", 3325, "IGC 1962 / Congo TM zone 26", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "IGC_1962_Arc_of_the_6th_Parallel_South", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=26 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 26\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4697\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",26],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3325\"]]"); p = add_epsg_def_ex (filter, first, last, 3326, "epsg", 3326, "IGC 1962 / Congo TM zone 28", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "IGC_1962_Arc_of_the_6th_Parallel_South", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 28\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4697\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",28],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3326\"]]"); p = add_epsg_def_ex (filter, first, last, 3327, "epsg", 3327, "IGC 1962 / Congo TM zone 30", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "IGC_1962_Arc_of_the_6th_Parallel_South", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGC 1962 / Congo TM zone 30\",GEOGCS[\"IGC 1962"); add_srs_wkt (p, 1, " 6th Parallel South\",DATUM[\"IGC_1962_Arc_of_the_6th_Pa"); add_srs_wkt (p, 2, "rallel_South\",SPHEROID[\"Clarke 1880 (RGS)\",6378249.14"); add_srs_wkt (p, 3, "5,293.465,AUTHORITY[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6697\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4697\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "0],PARAMETER[\"central_meridian\",30],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9999],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3327\"]]"); p = add_epsg_def_ex (filter, first, last, 3328, "epsg", 3328, "Pulkovo 1942(58) / GUGiK-80", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Oblique_Stereographic", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=sterea +lat_0=52.16666666666666 +lon_0=19.16666666"); add_proj4text (p, 1, "666667 +k=0.999714 +x_0=500000 +y_0=500000 +ellps=krass "); add_proj4text (p, 2, "+towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +un"); add_proj4text (p, 3, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / GUGiK-80\",GEOGCS[\"Pulkovo "); add_srs_wkt (p, 1, "1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID[\"Krassows"); add_srs_wkt (p, 2, "ky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TO"); add_srs_wkt (p, 3, "WGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4179\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",52.16666666666666],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",19.16666666666667],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 11, "999714],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",500000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"3328\"]]"); p = add_epsg_def_ex (filter, first, last, 3329, "epsg", 3329, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.05"); add_srs_wkt (p, 4, "3,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",5500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3329\"]]"); p = add_epsg_def_ex (filter, first, last, 3330, "epsg", 3330, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 6", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 6"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.05"); add_srs_wkt (p, 4, "3,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",18],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",6500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3330\"]]"); p = add_epsg_def_ex (filter, first, last, 3331, "epsg", 3331, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 7", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 7"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.05"); add_srs_wkt (p, 4, "3,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",21],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",7500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3331\"]]"); p = add_epsg_def_ex (filter, first, last, 3332, "epsg", 3332, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 8", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 8"); add_srs_wkt (p, 1, "\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\""); add_srs_wkt (p, 2, ",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.05"); add_srs_wkt (p, 4, "3,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 5, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 6, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4179\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",24],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",8500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3332\"]]"); p = add_epsg_def_ex (filter, first, last, 3333, "epsg", 3333, "Pulkovo 1942(58) / Gauss-Kruger zone 3", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Gauss-Kruger zone 3\",GEOGCS"); add_srs_wkt (p, 1, "[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID"); add_srs_wkt (p, 2, "[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-"); add_srs_wkt (p, 4, "0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4179\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 10, "5],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",3500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 13, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3333\"]]"); p = add_epsg_def_ex (filter, first, last, 3334, "epsg", 3334, "Pulkovo 1942(58) / Gauss-Kruger zone 4", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Gauss-Kruger zone 4\",GEOGCS"); add_srs_wkt (p, 1, "[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID"); add_srs_wkt (p, 2, "[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-"); add_srs_wkt (p, 4, "0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4179\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2"); add_srs_wkt (p, 10, "1],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",4500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 13, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3334\"]]"); p = add_epsg_def_ex (filter, first, last, 3335, "epsg", 3335, "Pulkovo 1942(58) / Gauss-Kruger zone 5", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Gauss-Kruger zone 5\",GEOGCS"); add_srs_wkt (p, 1, "[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID"); add_srs_wkt (p, 2, "[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-"); add_srs_wkt (p, 4, "0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4179\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",2"); add_srs_wkt (p, 10, "7],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",5500000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 12, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],A"); add_srs_wkt (p, 13, "XIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3335\"]]"); p = add_epsg_def_ex (filter, first, last, 3336, "epsg", 3336, "IGN 1962 Kerguelen / UTM zone 42S", 0, 0, "International 1924", "Greenwich", "IGN_1962_Kerguelen", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=42 +south +ellps=intl +towgs84=145,-187,"); add_proj4text (p, 1, "103,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN 1962 Kerguelen / UTM zone 42S\",GEOGCS[\"IG"); add_srs_wkt (p, 1, "N 1962 Kerguelen\",DATUM[\"IGN_1962_Kerguelen\",SPHEROID"); add_srs_wkt (p, 2, "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7022\"]],TOWGS84[145,-187,103,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6698\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4698\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",69],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Northing\",NORTH],AUTHORITY[\"EPSG\",\"3336\"]]"); p = add_epsg_def_ex (filter, first, last, 3337, "epsg", 3337, "Le Pouce 1934 / Mauritius Grid", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Le_Pouce_1934", "Lambert_Conformal_Conic_1SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-20.19506944444445 +lat_0=-20.195069444"); add_proj4text (p, 1, "44445 +lon_0=57.52182777777778 +k_0=1 +x_0=1000000 +y_0="); add_proj4text (p, 2, "1000000 +ellps=clrk80 +towgs84=-770.1,158.4,-498.2,0,0,0"); add_proj4text (p, 3, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Le Pouce 1934 / Mauritius Grid\",GEOGCS[\"Le Po"); add_srs_wkt (p, 1, "uce 1934\",DATUM[\"Le_Pouce_1934\",SPHEROID[\"Clarke 188"); add_srs_wkt (p, 2, "0 (RGS)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\""); add_srs_wkt (p, 3, "]],TOWGS84[-770.1,158.4,-498.2,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6699\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4699\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Lambert_Conformal_Conic_1SP\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",-20.19506944444445],PARAMETER[\"central_meridian"); add_srs_wkt (p, 10, "\",57.52182777777778],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",1000000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 14, "THORITY[\"EPSG\",\"3337\"]]"); p = add_epsg_def_ex (filter, first, last, 3338, "epsg", 3338, "NAD83 / Alaska Albers", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska Albers\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Albers_Conic_Equal_Area\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"standard_parallel_1\",55],PARAMETER[\"stand"); add_srs_wkt (p, 9, "ard_parallel_2\",65],PARAMETER[\"latitude_of_center\",50"); add_srs_wkt (p, 10, "],PARAMETER[\"longitude_of_center\",-154],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",0],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3338\"]]"); p = add_epsg_def_ex (filter, first, last, 3339, "epsg", 3339, "IGCB 1955 / Congo TM zone 12", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Institut_Geographique_du_Congo_Belge_1955", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGCB 1955 / Congo TM zone 12\",GEOGCS[\"IGCB 19"); add_srs_wkt (p, 1, "55\",DATUM[\"Institut_Geographique_du_Congo_Belge_1955\""); add_srs_wkt (p, 2, ",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7012\"]],TOWGS84[-79.9,-158,-168.9,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6701\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4701\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 10, "2],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"3339\"]]"); p = add_epsg_def_ex (filter, first, last, 3340, "epsg", 3340, "IGCB 1955 / Congo TM zone 14", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Institut_Geographique_du_Congo_Belge_1955", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=14 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGCB 1955 / Congo TM zone 14\",GEOGCS[\"IGCB 19"); add_srs_wkt (p, 1, "55\",DATUM[\"Institut_Geographique_du_Congo_Belge_1955\""); add_srs_wkt (p, 2, ",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7012\"]],TOWGS84[-79.9,-158,-168.9,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6701\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4701\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 10, "4],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"3340\"]]"); p = add_epsg_def_ex (filter, first, last, 3341, "epsg", 3341, "IGCB 1955 / Congo TM zone 16", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Institut_Geographique_du_Congo_Belge_1955", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGCB 1955 / Congo TM zone 16\",GEOGCS[\"IGCB 19"); add_srs_wkt (p, 1, "55\",DATUM[\"Institut_Geographique_du_Congo_Belge_1955\""); add_srs_wkt (p, 2, ",SPHEROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7012\"]],TOWGS84[-79.9,-158,-168.9,0,0,"); add_srs_wkt (p, 4, "0,0],AUTHORITY[\"EPSG\",\"6701\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 5, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 6, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 7, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4701\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",1"); add_srs_wkt (p, 10, "6],PARAMETER[\"scale_factor\",0.9999],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",10000000]"); add_srs_wkt (p, 12, ",UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"E"); add_srs_wkt (p, 13, "asting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"3341\"]]"); p = add_epsg_def_ex (filter, first, last, 3342, "epsg", 3342, "IGCB 1955 / UTM zone 33S", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Institut_Geographique_du_Congo_Belge_1955", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +south +ellps=clrk80 +towgs84=-79.9,-"); add_proj4text (p, 1, "158,-168.9,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGCB 1955 / UTM zone 33S\",GEOGCS[\"IGCB 1955\""); add_srs_wkt (p, 1, ",DATUM[\"Institut_Geographique_du_Congo_Belge_1955\",SPH"); add_srs_wkt (p, 2, "EROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORIT"); add_srs_wkt (p, 3, "Y[\"EPSG\",\"7012\"]],TOWGS84[-79.9,-158,-168.9,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6701\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4701"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",0],PARAMETER[\"central_meridian\",15],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eas"); add_srs_wkt (p, 11, "ting\",500000],PARAMETER[\"false_northing\",10000000],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 13, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"3342\"]]"); p = add_epsg_def_ex (filter, first, last, 3343, "epsg", 3343, "Mauritania 1999 / UTM zone 28N", 0, 0, "GRS 1980", "Greenwich", "Mauritania_1999", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mauritania 1999 / UTM zone 28N\",GEOGCS[\"Mauri"); add_srs_wkt (p, 1, "tania 1999\",DATUM[\"Mauritania_1999\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6702\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4702\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-15],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"3343\"]]"); p = add_epsg_def_ex (filter, first, last, 3344, "epsg", 3344, "Mauritania 1999 / UTM zone 29N", 0, 0, "GRS 1980", "Greenwich", "Mauritania_1999", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mauritania 1999 / UTM zone 29N\",GEOGCS[\"Mauri"); add_srs_wkt (p, 1, "tania 1999\",DATUM[\"Mauritania_1999\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6702\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4702\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-9],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"3344\"]]"); p = add_epsg_def_ex (filter, first, last, 3345, "epsg", 3345, "Mauritania 1999 / UTM zone 30N", 0, 0, "GRS 1980", "Greenwich", "Mauritania_1999", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mauritania 1999 / UTM zone 30N\",GEOGCS[\"Mauri"); add_srs_wkt (p, 1, "tania 1999\",DATUM[\"Mauritania_1999\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6702\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4702\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-3],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"3345\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ���������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_extra.c�����������������������������������������������0000664�0001750�0001750�00000030423�12544707704�017735� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> /* declaring prototypes */ SPATIALITE_PRIVATE void initialize_epsg_00 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_01 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_02 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_03 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_04 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_05 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_06 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_07 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_08 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_09 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_10 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_11 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_12 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_13 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_14 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_15 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_16 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_17 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_18 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_19 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_20 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_21 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_22 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_23 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_24 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_25 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_26 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_27 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_28 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_29 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_30 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_31 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_32 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_33 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_34 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_35 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_36 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_37 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_38 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_39 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_40 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_41 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_42 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_43 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_44 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_45 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_46 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_wgs84_00 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_wgs84_01 ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_prussian ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_extra ( int filter, struct epsg_defs **first, struct epsg_defs **last); SPATIALITE_PRIVATE void initialize_epsg_extra (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list [EXTRA] */ struct epsg_defs *p; p = add_epsg_def (filter, first, last, 40000, "gfoss.it", 1, "Italy mainland zone 1 GB Roma40"); add_proj4text (p, 0, "+proj=tmerc+lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.97"); add_proj4text (p, 2, "1,-2.917,0.714,-11.68 +no_defs"); add_srs_wkt (p, 0, ""); p = add_epsg_def (filter, first, last, 40001, "gfoss.it", 2, "Italy mainland zone 2 GB Roma40"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.9"); add_proj4text (p, 2, "71,-2.917,0.714,-11.68 +no_defs"); add_srs_wkt (p, 0, ""); p = add_epsg_def (filter, first, last, 40002, "gfoss.it", 3, "Italy Sardinia GB Roma40"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +units=m +towgs84=-168.6,-34.0,38.6,-0."); add_proj4text (p, 2, "374,-0.679,-1.379,-9.48 +no_defs"); add_srs_wkt (p, 0, ""); p = add_epsg_def (filter, first, last, 40003, "gfoss.it", 4, "Italy Sicily GB Roma40"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=intl +units=m +towgs84=-50.2,-50.4,84.8,-0.6"); add_proj4text (p, 2, "90,-2.012,0.459,-28.08 +no_defs"); add_srs_wkt (p, 0, ""); } SPATIALITE_PRIVATE void initialize_epsg (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; /* initializing the EPSG UNKNOWN def [-1] */ p = add_epsg_def (filter, first, last, -1, "NONE", -1, "Undefined - Cartesian"); add_proj4text (p, 0, ""); add_srs_wkt (p, 0, ""); p = add_epsg_def (filter, first, last, 0, "NONE", 0, "Undefined - Geographic Long/Lat"); add_proj4text (p, 0, ""); add_srs_wkt (p, 0, ""); if (filter != GAIA_EPSG_WGS84_ONLY) { #ifndef OMIT_EPSG /* full EPSG initialization enabled */ initialize_epsg_00 (filter, first, last); initialize_epsg_01 (filter, first, last); initialize_epsg_02 (filter, first, last); initialize_epsg_03 (filter, first, last); initialize_epsg_04 (filter, first, last); initialize_epsg_05 (filter, first, last); initialize_epsg_06 (filter, first, last); initialize_epsg_07 (filter, first, last); initialize_epsg_08 (filter, first, last); initialize_epsg_09 (filter, first, last); initialize_epsg_10 (filter, first, last); initialize_epsg_11 (filter, first, last); initialize_epsg_12 (filter, first, last); initialize_epsg_13 (filter, first, last); initialize_epsg_14 (filter, first, last); initialize_epsg_15 (filter, first, last); initialize_epsg_16 (filter, first, last); initialize_epsg_17 (filter, first, last); initialize_epsg_18 (filter, first, last); initialize_epsg_19 (filter, first, last); initialize_epsg_20 (filter, first, last); initialize_epsg_21 (filter, first, last); initialize_epsg_22 (filter, first, last); initialize_epsg_23 (filter, first, last); initialize_epsg_24 (filter, first, last); initialize_epsg_25 (filter, first, last); initialize_epsg_26 (filter, first, last); initialize_epsg_27 (filter, first, last); initialize_epsg_28 (filter, first, last); initialize_epsg_29 (filter, first, last); initialize_epsg_30 (filter, first, last); initialize_epsg_31 (filter, first, last); initialize_epsg_32 (filter, first, last); initialize_epsg_33 (filter, first, last); initialize_epsg_34 (filter, first, last); initialize_epsg_35 (filter, first, last); initialize_epsg_36 (filter, first, last); initialize_epsg_37 (filter, first, last); initialize_epsg_38 (filter, first, last); initialize_epsg_39 (filter, first, last); initialize_epsg_40 (filter, first, last); initialize_epsg_41 (filter, first, last); initialize_epsg_42 (filter, first, last); initialize_epsg_43 (filter, first, last); initialize_epsg_44 (filter, first, last); initialize_epsg_45 (filter, first, last); initialize_epsg_46 (filter, first, last); initialize_epsg_prussian (filter, first, last); initialize_epsg_extra (filter, first, last); #endif /* full EPSG initialization enabled/disabled */ } initialize_epsg_wgs84_00 (filter, first, last); initialize_epsg_wgs84_01 (filter, first, last); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_39.c��������������������������������������������������0000664�0001750�0001750�00000556303�12544707704�017057� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_39 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 26917, "epsg", 26917, "NAD83 / UTM zone 17N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 17N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-81],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26917\"]]"); p = add_epsg_def_ex (filter, first, last, 26918, "epsg", 26918, "NAD83 / UTM zone 18N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 18N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-75],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26918\"]]"); p = add_epsg_def_ex (filter, first, last, 26919, "epsg", 26919, "NAD83 / UTM zone 19N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 19N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-69],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26919\"]]"); p = add_epsg_def_ex (filter, first, last, 26920, "epsg", 26920, "NAD83 / UTM zone 20N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 20N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-63],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26920\"]]"); p = add_epsg_def_ex (filter, first, last, 26921, "epsg", 26921, "NAD83 / UTM zone 21N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 21N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-57],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26921\"]]"); p = add_epsg_def_ex (filter, first, last, 26922, "epsg", 26922, "NAD83 / UTM zone 22N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 22N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-51],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26922\"]]"); p = add_epsg_def_ex (filter, first, last, 26923, "epsg", 26923, "NAD83 / UTM zone 23N", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / UTM zone 23N\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",0],PARAMETER[\"central_mer"); add_srs_wkt (p, 9, "idian\",-45],PARAMETER[\"scale_factor\",0.9996],PARAMETE"); add_srs_wkt (p, 10, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 11, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 12, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"26923\"]]"); p = add_epsg_def_ex (filter, first, last, 26929, "epsg", 26929, "NAD83 / Alabama East", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.9"); add_proj4text (p, 1, "9996 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alabama East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",30.5],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-85.83333333333333],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.99996],PARAMETER[\"false_easting\",200000],PARAMETER["); add_srs_wkt (p, 11, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"26929\"]]"); p = add_epsg_def_ex (filter, first, last, 26930, "epsg", 26930, "NAD83 / Alabama West", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=6"); add_proj4text (p, 1, "00000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 2, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alabama West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",30],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-87.5],PARAMETER[\"scale_factor\",0.999933333],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",600000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"26930\"]]"); p = add_epsg_def_ex (filter, first, last, 26931, "epsg", 26931, "NAD83 / Alaska zone 1", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Hotine_Oblique_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=32"); add_proj4text (p, 1, "3.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +no"); add_proj4text (p, 2, "_uoff +gamma=323.1301023611111 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 3, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 1\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Hotine_Oblique_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_center\",57],PARAMETER[\"longit"); add_srs_wkt (p, 9, "ude_of_center\",-133.6666666666667],PARAMETER[\"azimuth\""); add_srs_wkt (p, 10, ",323.1301023611111],PARAMETER[\"rectified_grid_angle\",3"); add_srs_wkt (p, 11, "23.1301023611111],PARAMETER[\"scale_factor\",0.9999],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_easting\",5000000],PARAMETER[\"false_nort"); add_srs_wkt (p, 13, "hing\",-5000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 14, "001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 15, "PSG\",\"26931\"]]"); p = add_epsg_def_ex (filter, first, last, 26932, "epsg", 26932, "NAD83 / Alaska zone 2", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 2\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",54],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-142],PARAMETER[\"scale_factor\",0.9999],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"269"); add_srs_wkt (p, 13, "32\"]]"); p = add_epsg_def_ex (filter, first, last, 26933, "epsg", 26933, "NAD83 / Alaska zone 3", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 3\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",54],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-146],PARAMETER[\"scale_factor\",0.9999],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"269"); add_srs_wkt (p, 13, "33\"]]"); p = add_epsg_def_ex (filter, first, last, 26934, "epsg", 26934, "NAD83 / Alaska zone 4", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 4\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",54],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-150],PARAMETER[\"scale_factor\",0.9999],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"269"); add_srs_wkt (p, 13, "34\"]]"); p = add_epsg_def_ex (filter, first, last, 26935, "epsg", 26935, "NAD83 / Alaska zone 5", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 5\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",54],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-154],PARAMETER[\"scale_factor\",0.9999],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"269"); add_srs_wkt (p, 13, "35\"]]"); p = add_epsg_def_ex (filter, first, last, 26936, "epsg", 26936, "NAD83 / Alaska zone 6", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 6\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",54],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-158],PARAMETER[\"scale_factor\",0.9999],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"269"); add_srs_wkt (p, 13, "36\"]]"); p = add_epsg_def_ex (filter, first, last, 26937, "epsg", 26937, "NAD83 / Alaska zone 7", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 7\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",54],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-162],PARAMETER[\"scale_factor\",0.9999],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"269"); add_srs_wkt (p, 13, "37\"]]"); p = add_epsg_def_ex (filter, first, last, 26938, "epsg", 26938, "NAD83 / Alaska zone 8", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 8\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",54],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-166],PARAMETER[\"scale_factor\",0.9999],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"269"); add_srs_wkt (p, 13, "38\"]]"); p = add_epsg_def_ex (filter, first, last, 26939, "epsg", 26939, "NAD83 / Alaska zone 9", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 "); add_proj4text (p, 1, "+y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_"); add_proj4text (p, 2, "defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 9\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",54],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-170],PARAMETER[\"scale_factor\",0.9999],PARAME"); add_srs_wkt (p, 10, "TER[\"false_easting\",500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 11, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 12, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"269"); add_srs_wkt (p, 13, "39\"]]"); p = add_epsg_def_ex (filter, first, last, 26940, "epsg", 26940, "NAD83 / Alaska zone 10", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333"); add_proj4text (p, 1, "334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Alaska zone 10\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",53.83333333333"); add_srs_wkt (p, 9, "334],PARAMETER[\"standard_parallel_2\",51.83333333333334"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",51],PARAMETER[\"centr"); add_srs_wkt (p, 11, "al_meridian\",-176],PARAMETER[\"false_easting\",1000000]"); add_srs_wkt (p, 12, ",PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORT"); add_srs_wkt (p, 14, "H],AUTHORITY[\"EPSG\",\"26940\"]]"); p = add_epsg_def_ex (filter, first, last, 26941, "epsg", 26941, "NAD83 / California zone 1", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.3"); add_proj4text (p, 1, "3333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 1\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",41.66666666"); add_srs_wkt (p, 9, "666666],PARAMETER[\"standard_parallel_2\",40],PARAMETER["); add_srs_wkt (p, 10, "\"latitude_of_origin\",39.33333333333334],PARAMETER[\"ce"); add_srs_wkt (p, 11, "ntral_meridian\",-122],PARAMETER[\"false_easting\",20000"); add_srs_wkt (p, 12, "00],PARAMETER[\"false_northing\",500000],UNIT[\"metre\","); add_srs_wkt (p, 13, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26941\"]]"); p = add_epsg_def_ex (filter, first, last, 26942, "epsg", 26942, "NAD83 / California zone 2", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333"); add_proj4text (p, 1, "334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y"); add_proj4text (p, 2, "_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 2\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",39.83333333"); add_srs_wkt (p, 9, "333334],PARAMETER[\"standard_parallel_2\",38.33333333333"); add_srs_wkt (p, 10, "334],PARAMETER[\"latitude_of_origin\",37.66666666666666]"); add_srs_wkt (p, 11, ",PARAMETER[\"central_meridian\",-122],PARAMETER[\"false_"); add_srs_wkt (p, 12, "easting\",2000000],PARAMETER[\"false_northing\",500000],"); add_srs_wkt (p, 13, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 14, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26942\"]]"); p = add_epsg_def_ex (filter, first, last, 26943, "epsg", 26943, "NAD83 / California zone 3", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666"); add_proj4text (p, 1, "667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 3\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",38.43333333"); add_srs_wkt (p, 9, "333333],PARAMETER[\"standard_parallel_2\",37.06666666666"); add_srs_wkt (p, 10, "667],PARAMETER[\"latitude_of_origin\",36.5],PARAMETER[\""); add_srs_wkt (p, 11, "central_meridian\",-120.5],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 12, "000000],PARAMETER[\"false_northing\",500000],UNIT[\"metr"); add_srs_wkt (p, 13, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26943\"]]"); p = add_epsg_def_ex (filter, first, last, 26944, "epsg", 26944, "NAD83 / California zone 4", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.3333333333333"); add_proj4text (p, 1, "4 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +tow"); add_proj4text (p, 2, "gs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 4\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",37.25],PARA"); add_srs_wkt (p, 9, "METER[\"standard_parallel_2\",36],PARAMETER[\"latitude_o"); add_srs_wkt (p, 10, "f_origin\",35.33333333333334],PARAMETER[\"central_meridi"); add_srs_wkt (p, 11, "an\",-119],PARAMETER[\"false_easting\",2000000],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",500000],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"26944\"]]"); p = add_epsg_def_ex (filter, first, last, 26945, "epsg", 26945, "NAD83 / California zone 5", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333"); add_proj4text (p, 1, "333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 5\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",35.46666666"); add_srs_wkt (p, 9, "666667],PARAMETER[\"standard_parallel_2\",34.03333333333"); add_srs_wkt (p, 10, "333],PARAMETER[\"latitude_of_origin\",33.5],PARAMETER[\""); add_srs_wkt (p, 11, "central_meridian\",-118],PARAMETER[\"false_easting\",200"); add_srs_wkt (p, 12, "0000],PARAMETER[\"false_northing\",500000],UNIT[\"metre\""); add_srs_wkt (p, 13, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26945\"]]"); p = add_epsg_def_ex (filter, first, last, 26946, "epsg", 26946, "NAD83 / California zone 6", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333"); add_proj4text (p, 1, "333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000"); add_proj4text (p, 2, " +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 3, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / California zone 6\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",33.88333333"); add_srs_wkt (p, 9, "333333],PARAMETER[\"standard_parallel_2\",32.78333333333"); add_srs_wkt (p, 10, "333],PARAMETER[\"latitude_of_origin\",32.16666666666666]"); add_srs_wkt (p, 11, ",PARAMETER[\"central_meridian\",-116.25],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_easting\",2000000],PARAMETER[\"false_northing\",50000"); add_srs_wkt (p, 13, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26946\""); add_srs_wkt (p, 15, "]]"); p = add_epsg_def_ex (filter, first, last, 26948, "epsg", 26948, "NAD83 / Arizona East", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arizona East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",31],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-110.1666666666667],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9999],PARAMETER[\"false_easting\",213360],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"26948\"]]"); p = add_epsg_def_ex (filter, first, last, 26949, "epsg", 26949, "NAD83 / Arizona Central", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arizona Central\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",31],PARAMETER[\"centra"); add_srs_wkt (p, 9, "l_meridian\",-111.9166666666667],PARAMETER[\"scale_facto"); add_srs_wkt (p, 10, "r\",0.9999],PARAMETER[\"false_easting\",213360],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"26949\"]]"); p = add_epsg_def_ex (filter, first, last, 26950, "epsg", 26950, "NAD83 / Arizona West", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0"); add_proj4text (p, 1, "=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arizona West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",31],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-113.75],PARAMETER[\"scale_factor\",0.999933333"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",213360],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"26950\"]]"); p = add_epsg_def_ex (filter, first, last, 26951, "epsg", 26951, "NAD83 / Arkansas North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333"); add_proj4text (p, 1, "333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arkansas North\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",36.23333333333"); add_srs_wkt (p, 9, "333],PARAMETER[\"standard_parallel_2\",34.93333333333333"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",34.33333333333334],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-92],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",400000],PARAMETER[\"false_northing\",0],UNIT[\"met"); add_srs_wkt (p, 13, "re\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AX"); add_srs_wkt (p, 14, "IS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26951\"]]"); p = add_epsg_def_ex (filter, first, last, 26952, "epsg", 26952, "NAD83 / Arkansas South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32"); add_proj4text (p, 1, ".66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Arkansas South\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",34.76666666666"); add_srs_wkt (p, 9, "667],PARAMETER[\"standard_parallel_2\",33.3],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",32.66666666666666],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-92],PARAMETER[\"false_easting\",400000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",400000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 14, "NORTH],AUTHORITY[\"EPSG\",\"26952\"]]"); p = add_epsg_def_ex (filter, first, last, 26953, "epsg", 26953, "NAD83 / Colorado North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666"); add_proj4text (p, 1, "667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 3, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Colorado North\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",40.78333333333"); add_srs_wkt (p, 9, "333],PARAMETER[\"standard_parallel_2\",39.71666666666667"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",39.33333333333334],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-105.5],PARAMETER[\"false_e"); add_srs_wkt (p, 12, "asting\",914401.8289],PARAMETER[\"false_northing\",30480"); add_srs_wkt (p, 13, "0.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 14, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 15, "6953\"]]"); p = add_epsg_def_ex (filter, first, last, 26954, "epsg", 26954, "NAD83 / Colorado Central", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.8333333333"); add_proj4text (p, 1, "3334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +el"); add_proj4text (p, 2, "lps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Colorado Central\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",39.75],PARAME"); add_srs_wkt (p, 9, "TER[\"standard_parallel_2\",38.45],PARAMETER[\"latitude_"); add_srs_wkt (p, 10, "of_origin\",37.83333333333334],PARAMETER[\"central_merid"); add_srs_wkt (p, 11, "ian\",-105.5],PARAMETER[\"false_easting\",914401.8289],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",304800.6096],UNIT[\"metre\","); add_srs_wkt (p, 13, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26954\"]]"); p = add_epsg_def_ex (filter, first, last, 26955, "epsg", 26955, "NAD83 / Colorado South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333"); add_proj4text (p, 1, "333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8"); add_proj4text (p, 2, "289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 3, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Colorado South\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",38.43333333333"); add_srs_wkt (p, 9, "333],PARAMETER[\"standard_parallel_2\",37.23333333333333"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",36.66666666666666],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-105.5],PARAMETER[\"false_e"); add_srs_wkt (p, 12, "asting\",914401.8289],PARAMETER[\"false_northing\",30480"); add_srs_wkt (p, 13, "0.6096],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 14, "XIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2"); add_srs_wkt (p, 15, "6955\"]]"); p = add_epsg_def_ex (filter, first, last, 26956, "epsg", 26956, "NAD83 / Connecticut", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40"); add_proj4text (p, 1, ".83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=1524"); add_proj4text (p, 2, "00.3048 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Connecticut\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"standard_parallel_1\",41.86666666666667"); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_2\",41.2],PARAMETER[\"la"); add_srs_wkt (p, 10, "titude_of_origin\",40.83333333333334],PARAMETER[\"centra"); add_srs_wkt (p, 11, "l_meridian\",-72.75],PARAMETER[\"false_easting\",304800."); add_srs_wkt (p, 12, "6096],PARAMETER[\"false_northing\",152400.3048],UNIT[\"m"); add_srs_wkt (p, 13, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 14, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26956\"]]"); p = add_epsg_def_ex (filter, first, last, 26957, "epsg", 26957, "NAD83 / Delaware", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999"); add_proj4text (p, 1, "995 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Delaware\",GEOGCS[\"NAD83\",DATUM[\"Nor"); add_srs_wkt (p, 1, "th_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",38],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",-75.41666666666667],PARAMETER[\"scale_factor\",0.9"); add_srs_wkt (p, 10, "99995],PARAMETER[\"false_easting\",200000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"26957\"]]"); p = add_epsg_def_ex (filter, first, last, 26958, "epsg", 26958, "NAD83 / Florida East", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Florida East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",24.33333333333333],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-81],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.999941177],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"26958\"]]"); p = add_epsg_def_ex (filter, first, last, 26959, "epsg", 26959, "NAD83 / Florida West", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999"); add_proj4text (p, 1, "941177 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Florida West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",24.33333333333333],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-82],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.999941177],PARAMETER[\"false_easting\",200000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"26959\"]]"); p = add_epsg_def_ex (filter, first, last, 26960, "epsg", 26960, "NAD83 / Florida North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=2"); add_proj4text (p, 1, "9 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Florida North\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"standard_parallel_1\",30.75],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_2\",29.58333333333333],PARAMETER[\"l"); add_srs_wkt (p, 10, "atitude_of_origin\",29],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 11, "84.5],PARAMETER[\"false_easting\",600000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"26960\"]]"); p = add_epsg_def_ex (filter, first, last, 26961, "epsg", 26961, "NAD83 / Hawaii zone 1", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0."); add_proj4text (p, 1, "999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0"); add_proj4text (p, 2, ",0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Hawaii zone 1\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",18.83333333333333],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-155.5],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.999966667],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"26961\"]]"); p = add_epsg_def_ex (filter, first, last, 26962, "epsg", 26962, "NAD83 / Hawaii zone 2", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Hawaii zone 2\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",20.33333333333333],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-156.6666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.999966667],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"26962\"]]"); p = add_epsg_def_ex (filter, first, last, 26963, "epsg", 26963, "NAD83 / Hawaii zone 3", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99"); add_proj4text (p, 1, "999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Hawaii zone 3\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",21.16666666666667],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-158],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.99999],PARAMETER[\"false_easting\",500000],PARAMETER["); add_srs_wkt (p, 11, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 12, ",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"26963\"]]"); p = add_epsg_def_ex (filter, first, last, 26964, "epsg", 26964, "NAD83 / Hawaii zone 4", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0."); add_proj4text (p, 1, "99999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Hawaii zone 4\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",21.83333333333333],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-159.5],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.99999],PARAMETER[\"false_easting\",500000],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 12, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"26964\"]]"); p = add_epsg_def_ex (filter, first, last, 26965, "epsg", 26965, "NAD83 / Hawaii zone 5", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666"); add_proj4text (p, 1, "666667 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0"); add_proj4text (p, 2, ",0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Hawaii zone 5\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",21.66666666666667],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-160.1666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"26965\"]]"); p = add_epsg_def_ex (filter, first, last, 26966, "epsg", 26966, "NAD83 / Georgia East", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Georgia East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",30],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-82.16666666666667],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9999],PARAMETER[\"false_easting\",200000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"26966\"]]"); p = add_epsg_def_ex (filter, first, last, 26967, "epsg", 26967, "NAD83 / Georgia West", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999"); add_proj4text (p, 1, "9 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0"); add_proj4text (p, 2, " +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Georgia West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",30],PARAMETER[\"central_me"); add_srs_wkt (p, 9, "ridian\",-84.16666666666667],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9999],PARAMETER[\"false_easting\",700000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"26967\"]]"); p = add_epsg_def_ex (filter, first, last, 26968, "epsg", 26968, "NAD83 / Idaho East", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666"); add_proj4text (p, 1, "666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Idaho East\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",41.66666666666666],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-112.1666666666667],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",0.999947368],PARAMETER[\"false_easting\",2"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"26968\"]]"); p = add_epsg_def_ex (filter, first, last, 26969, "epsg", 26969, "NAD83 / Idaho Central", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.99"); add_proj4text (p, 1, "99473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Idaho Central\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",41.66666666666666],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-114],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.999947368],PARAMETER[\"false_easting\",500000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"26969\"]]"); p = add_epsg_def_ex (filter, first, last, 26970, "epsg", 26970, "NAD83 / Idaho West", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0"); add_proj4text (p, 1, ".999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +towgs84=0,0,"); add_proj4text (p, 2, "0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Idaho West\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",41.66666666666666],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-115.75],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.999933333],PARAMETER[\"false_easting\",800000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"26970\"]]"); p = add_epsg_def_ex (filter, first, last, 26971, "epsg", 26971, "NAD83 / Illinois East", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333"); add_proj4text (p, 1, "333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=G"); add_proj4text (p, 2, "RS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Illinois East\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",36.66666666666666],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-88.33333333333333],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.999975],PARAMETER[\"false_easting\",300"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 13, "NORTH],AUTHORITY[\"EPSG\",\"26971\"]]"); p = add_epsg_def_ex (filter, first, last, 26972, "epsg", 26972, "NAD83 / Illinois West", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666"); add_proj4text (p, 1, "666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Illinois West\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",36.66666666666666],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-90.16666666666667],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.999941177],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "700000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y"); add_srs_wkt (p, 13, "\",NORTH],AUTHORITY[\"EPSG\",\"26972\"]]"); p = add_epsg_def_ex (filter, first, last, 26973, "epsg", 26973, "NAD83 / Indiana East", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 2, ",0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Indiana East\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",37.5],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-85.66666666666667],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.999966667],PARAMETER[\"false_easting\",100000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",250000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"26973\"]]"); p = add_epsg_def_ex (filter, first, last, 26974, "epsg", 26974, "NAD83 / Indiana West", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9"); add_proj4text (p, 1, "99966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +towgs84=0"); add_proj4text (p, 2, ",0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Indiana West\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",37.5],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-87.08333333333333],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.999966667],PARAMETER[\"false_easting\",900000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",250000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"26974\"]]"); p = add_epsg_def_ex (filter, first, last, 26975, "epsg", 26975, "NAD83 / Iowa North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666"); add_proj4text (p, 1, "667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +"); add_proj4text (p, 2, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Iowa North\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",43.26666666666667]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",42.06666666666667],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",41.5],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-93.5],PARAMETER[\"false_easting\",1500000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",1000000],UNIT[\"metre\",1,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"26975\"]]"); p = add_epsg_def_ex (filter, first, last, 26976, "epsg", 26976, "NAD83 / Iowa South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666"); add_proj4text (p, 1, "667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Iowa South\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP"); add_srs_wkt (p, 8, "\"],PARAMETER[\"standard_parallel_1\",41.78333333333333]"); add_srs_wkt (p, 9, ",PARAMETER[\"standard_parallel_2\",40.61666666666667],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_origin\",40],PARAMETER[\"central_m"); add_srs_wkt (p, 11, "eridian\",-93.5],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 12, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"26976\"]]"); p = add_epsg_def_ex (filter, first, last, 26977, "epsg", 26977, "NAD83 / Kansas North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666"); add_proj4text (p, 1, "667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0"); add_proj4text (p, 2, "=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kansas North\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"standard_parallel_1\",39.78333333333333"); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_2\",38.71666666666667],P"); add_srs_wkt (p, 10, "ARAMETER[\"latitude_of_origin\",38.33333333333334],PARAM"); add_srs_wkt (p, 11, "ETER[\"central_meridian\",-98],PARAMETER[\"false_easting"); add_srs_wkt (p, 12, "\",400000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 13, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26977\"]]"); p = add_epsg_def_ex (filter, first, last, 26978, "epsg", 26978, "NAD83 / Kansas South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666"); add_proj4text (p, 1, "667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y"); add_proj4text (p, 2, "_0=400000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kansas South\",GEOGCS[\"NAD83\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 2, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 3, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 4, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 5, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 8, "P\"],PARAMETER[\"standard_parallel_1\",38.56666666666667"); add_srs_wkt (p, 9, "],PARAMETER[\"standard_parallel_2\",37.26666666666667],P"); add_srs_wkt (p, 10, "ARAMETER[\"latitude_of_origin\",36.66666666666666],PARAM"); add_srs_wkt (p, 11, "ETER[\"central_meridian\",-98.5],PARAMETER[\"false_easti"); add_srs_wkt (p, 12, "ng\",400000],PARAMETER[\"false_northing\",400000],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26978\"]]"); p = add_epsg_def_ex (filter, first, last, 26979, "epsg", 26979, "NAD83 / Kentucky North (deprecated)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.96666666666667 +lat_2=37.96666666666"); add_proj4text (p, 1, "667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kentucky North (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 9, "7.96666666666667],PARAMETER[\"standard_parallel_2\",37.9"); add_srs_wkt (p, 10, "6666666666667],PARAMETER[\"latitude_of_origin\",37.5],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-84.25],PARAMETER[\"false_e"); add_srs_wkt (p, 12, "asting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26979\"]]"); p = add_epsg_def_ex (filter, first, last, 26980, "epsg", 26980, "NAD83 / Kentucky South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333"); add_proj4text (p, 1, "333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +"); add_proj4text (p, 2, "y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kentucky South\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",37.93333333333"); add_srs_wkt (p, 9, "333],PARAMETER[\"standard_parallel_2\",36.73333333333333"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",36.33333333333334],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-85.75],PARAMETER[\"false_e"); add_srs_wkt (p, 12, "asting\",500000],PARAMETER[\"false_northing\",500000],UN"); add_srs_wkt (p, 13, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\","); add_srs_wkt (p, 14, "EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26980\"]]"); p = add_epsg_def_ex (filter, first, last, 26981, "epsg", 26981, "NAD83 / Louisiana North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666"); add_proj4text (p, 1, "667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Louisiana North\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",32.6666666666"); add_srs_wkt (p, 9, "6666],PARAMETER[\"standard_parallel_2\",31.1666666666666"); add_srs_wkt (p, 10, "7],PARAMETER[\"latitude_of_origin\",30.5],PARAMETER[\"ce"); add_srs_wkt (p, 11, "ntral_meridian\",-92.5],PARAMETER[\"false_easting\",1000"); add_srs_wkt (p, 12, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 14, "NORTH],AUTHORITY[\"EPSG\",\"26981\"]]"); p = add_epsg_def_ex (filter, first, last, 26982, "epsg", 26982, "NAD83 / Louisiana South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91"); add_proj4text (p, 1, ".33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +towgs8"); add_proj4text (p, 2, "4=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Louisiana South\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",30.7],PARAMET"); add_srs_wkt (p, 9, "ER[\"standard_parallel_2\",29.3],PARAMETER[\"latitude_of"); add_srs_wkt (p, 10, "_origin\",28.5],PARAMETER[\"central_meridian\",-91.33333"); add_srs_wkt (p, 11, "333333333],PARAMETER[\"false_easting\",1000000],PARAMETE"); add_srs_wkt (p, 12, "R[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 13, "G\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHOR"); add_srs_wkt (p, 14, "ITY[\"EPSG\",\"26982\"]]"); p = add_epsg_def_ex (filter, first, last, 26983, "epsg", 26983, "NAD83 / Maine East", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9"); add_proj4text (p, 1, "999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 2, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine East\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",43.66666666666666],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-68.5],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9999],PARAMETER[\"false_easting\",300000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"26983\"]]"); p = add_epsg_def_ex (filter, first, last, 26984, "epsg", 26984, "NAD83 / Maine West", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666"); add_proj4text (p, 1, "666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +t"); add_proj4text (p, 2, "owgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine West\",GEOGCS[\"NAD83\",DATUM[\"N"); add_srs_wkt (p, 1, "orth_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137"); add_srs_wkt (p, 2, ",298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0"); add_srs_wkt (p, 3, ",0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Green"); add_srs_wkt (p, 4, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 5, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 6, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 7, "SG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 8, "METER[\"latitude_of_origin\",42.83333333333334],PARAMETE"); add_srs_wkt (p, 9, "R[\"central_meridian\",-70.16666666666667],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",0.999966667],PARAMETER[\"false_easting\",9"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"26984\"]]"); p = add_epsg_def_ex (filter, first, last, 26985, "epsg", 26985, "NAD83 / Maryland", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666"); add_proj4text (p, 1, "666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84="); add_proj4text (p, 2, "0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maryland\",GEOGCS[\"NAD83\",DATUM[\"Nor"); add_srs_wkt (p, 1, "th_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378137,2"); add_srs_wkt (p, 2, "98.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\""); add_srs_wkt (p, 8, "],PARAMETER[\"standard_parallel_1\",39.45],PARAMETER[\"s"); add_srs_wkt (p, 9, "tandard_parallel_2\",38.3],PARAMETER[\"latitude_of_origi"); add_srs_wkt (p, 10, "n\",37.66666666666666],PARAMETER[\"central_meridian\",-7"); add_srs_wkt (p, 11, "7],PARAMETER[\"false_easting\",400000],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 14, "G\",\"26985\"]]"); p = add_epsg_def_ex (filter, first, last, 26986, "epsg", 26986, "NAD83 / Massachusetts Mainland", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666"); add_proj4text (p, 1, "667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellp"); add_proj4text (p, 2, "s=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Massachusetts Mainland\",GEOGCS[\"NAD83"); add_srs_wkt (p, 1, "\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conforma"); add_srs_wkt (p, 8, "l_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",42.6833"); add_srs_wkt (p, 9, "3333333333],PARAMETER[\"standard_parallel_2\",41.7166666"); add_srs_wkt (p, 10, "6666667],PARAMETER[\"latitude_of_origin\",41],PARAMETER["); add_srs_wkt (p, 11, "\"central_meridian\",-71.5],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "200000],PARAMETER[\"false_northing\",750000],UNIT[\"metr"); add_srs_wkt (p, 13, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXI"); add_srs_wkt (p, 14, "S[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26986\"]]"); p = add_epsg_def_ex (filter, first, last, 26987, "epsg", 26987, "NAD83 / Massachusetts Island", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333"); add_proj4text (p, 1, "333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS"); add_proj4text (p, 2, "80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Massachusetts Island\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",41.48333"); add_srs_wkt (p, 9, "333333333],PARAMETER[\"standard_parallel_2\",41.28333333"); add_srs_wkt (p, 10, "333333],PARAMETER[\"latitude_of_origin\",41],PARAMETER[\""); add_srs_wkt (p, 11, "central_meridian\",-70.5],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 12, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"26987\"]]"); p = add_epsg_def_ex (filter, first, last, 26988, "epsg", 26988, "NAD83 / Michigan North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333"); add_proj4text (p, 1, "333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_"); add_proj4text (p, 2, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 3, "s"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Michigan North\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",47.08333333333"); add_srs_wkt (p, 9, "334],PARAMETER[\"standard_parallel_2\",45.48333333333333"); add_srs_wkt (p, 10, "],PARAMETER[\"latitude_of_origin\",44.78333333333333],PA"); add_srs_wkt (p, 11, "RAMETER[\"central_meridian\",-87],PARAMETER[\"false_east"); add_srs_wkt (p, 12, "ing\",8000000],PARAMETER[\"false_northing\",0],UNIT[\"me"); add_srs_wkt (p, 13, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],A"); add_srs_wkt (p, 14, "XIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26988\"]]"); p = add_epsg_def_ex (filter, first, last, 26989, "epsg", 26989, "NAD83 / Michigan Central", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43"); add_proj4text (p, 1, ".31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +"); add_proj4text (p, 2, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Michigan Central\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",45.7],PARAMET"); add_srs_wkt (p, 9, "ER[\"standard_parallel_2\",44.18333333333333],PARAMETER["); add_srs_wkt (p, 10, "\"latitude_of_origin\",43.31666666666667],PARAMETER[\"ce"); add_srs_wkt (p, 11, "ntral_meridian\",-84.36666666666666],PARAMETER[\"false_e"); add_srs_wkt (p, 12, "asting\",6000000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"26989\"]]"); p = add_epsg_def_ex (filter, first, last, 26990, "epsg", 26990, "NAD83 / Michigan South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41"); add_proj4text (p, 1, ".5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Michigan South\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Conic"); add_srs_wkt (p, 8, "_2SP\"],PARAMETER[\"standard_parallel_1\",43.66666666666"); add_srs_wkt (p, 9, "666],PARAMETER[\"standard_parallel_2\",42.1],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",41.5],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 11, ",-84.36666666666666],PARAMETER[\"false_easting\",4000000"); add_srs_wkt (p, 12, "],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"26990\"]]"); p = add_epsg_def_ex (filter, first, last, 26991, "epsg", 26991, "NAD83 / Minnesota North", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333"); add_proj4text (p, 1, "333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y"); add_proj4text (p, 2, "_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 3, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Minnesota North\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",48.6333333333"); add_srs_wkt (p, 9, "3333],PARAMETER[\"standard_parallel_2\",47.0333333333333"); add_srs_wkt (p, 10, "3],PARAMETER[\"latitude_of_origin\",46.5],PARAMETER[\"ce"); add_srs_wkt (p, 11, "ntral_meridian\",-93.1],PARAMETER[\"false_easting\",8000"); add_srs_wkt (p, 12, "00],PARAMETER[\"false_northing\",100000],UNIT[\"metre\","); add_srs_wkt (p, 13, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"26991\"]]"); p = add_epsg_def_ex (filter, first, last, 26992, "epsg", 26992, "NAD83 / Minnesota Central", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=4"); add_proj4text (p, 1, "5 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +to"); add_proj4text (p, 2, "wgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Minnesota Central\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",47.05],PARA"); add_srs_wkt (p, 9, "METER[\"standard_parallel_2\",45.61666666666667],PARAMET"); add_srs_wkt (p, 10, "ER[\"latitude_of_origin\",45],PARAMETER[\"central_meridi"); add_srs_wkt (p, 11, "an\",-94.25],PARAMETER[\"false_easting\",800000],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_northing\",100000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"26992\"]]"); p = add_epsg_def_ex (filter, first, last, 26993, "epsg", 26993, "NAD83 / Minnesota South", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333"); add_proj4text (p, 1, "333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps="); add_proj4text (p, 2, "GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Minnesota South\",GEOGCS[\"NAD83\",DATU"); add_srs_wkt (p, 1, "M[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal_Coni"); add_srs_wkt (p, 8, "c_2SP\"],PARAMETER[\"standard_parallel_1\",45.2166666666"); add_srs_wkt (p, 9, "6667],PARAMETER[\"standard_parallel_2\",43.7833333333333"); add_srs_wkt (p, 10, "3],PARAMETER[\"latitude_of_origin\",43],PARAMETER[\"cent"); add_srs_wkt (p, 11, "ral_meridian\",-94],PARAMETER[\"false_easting\",800000],"); add_srs_wkt (p, 12, "PARAMETER[\"false_northing\",100000],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\","); add_srs_wkt (p, 14, "NORTH],AUTHORITY[\"EPSG\",\"26993\"]]"); p = add_epsg_def_ex (filter, first, last, 26994, "epsg", 26994, "NAD83 / Mississippi East", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Mississippi East\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",29.5],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-88.83333333333333],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.99995],PARAMETER[\"false_easting\",300000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"26994\"]]"); p = add_epsg_def_ex (filter, first, last, 26995, "epsg", 26995, "NAD83 / Mississippi West", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.9"); add_proj4text (p, 1, "9995 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Mississippi West\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",29.5],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-90.33333333333333],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.99995],PARAMETER[\"false_easting\",700000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"26995\"]]"); p = add_epsg_def_ex (filter, first, last, 26996, "epsg", 26996, "NAD83 / Missouri East", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9"); add_proj4text (p, 1, "99933333 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Missouri East\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",35.83333333333334],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-90.5],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.999933333],PARAMETER[\"false_easting\",250000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"26996\"]]"); p = add_epsg_def_ex (filter, first, last, 26997, "epsg", 26997, "NAD83 / Missouri Central", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9"); add_proj4text (p, 1, "99933333 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Missouri Central\",GEOGCS[\"NAD83\",DAT"); add_srs_wkt (p, 1, "UM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6"); add_srs_wkt (p, 2, "378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS"); add_srs_wkt (p, 3, "84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",35.83333333333334],PAR"); add_srs_wkt (p, 9, "AMETER[\"central_meridian\",-92.5],PARAMETER[\"scale_fac"); add_srs_wkt (p, 10, "tor\",0.999933333],PARAMETER[\"false_easting\",500000],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"26997\"]]"); p = add_epsg_def_ex (filter, first, last, 26998, "epsg", 26998, "NAD83 / Missouri West", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9"); add_proj4text (p, 1, "99941177 +x_0=850000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Missouri West\",GEOGCS[\"NAD83\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",6378"); add_srs_wkt (p, 2, "137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84["); add_srs_wkt (p, 3, "0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"Gr"); add_srs_wkt (p, 4, "eenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\""); add_srs_wkt (p, 5, ",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 6, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 7, "PSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"latitude_of_origin\",36.16666666666666],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-94.5],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.999941177],PARAMETER[\"false_easting\",850000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 13, "ORITY[\"EPSG\",\"26998\"]]"); p = add_epsg_def_ex (filter, first, last, 27037, "epsg", 27037, "Nahrwan 1967 / UTM zone 37N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Nahrwan_1967", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=clrk80 +towgs84=-242.2,-144.9,"); add_proj4text (p, 1, "370.3,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nahrwan 1967 / UTM zone 37N\",GEOGCS[\"Nahrwan "); add_srs_wkt (p, 1, "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[-242.2,-144.9,370.3,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6270\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",39],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"27037\"]]"); p = add_epsg_def_ex (filter, first, last, 27038, "epsg", 27038, "Nahrwan 1967 / UTM zone 38N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Nahrwan_1967", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=clrk80 +towgs84=-242.2,-144.9,"); add_proj4text (p, 1, "370.3,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nahrwan 1967 / UTM zone 38N\",GEOGCS[\"Nahrwan "); add_srs_wkt (p, 1, "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[-242.2,-144.9,370.3,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6270\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",45],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"27038\"]]"); p = add_epsg_def_ex (filter, first, last, 27039, "epsg", 27039, "Nahrwan 1967 / UTM zone 39N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Nahrwan_1967", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=clrk80 +towgs84=-242.2,-144.9,"); add_proj4text (p, 1, "370.3,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nahrwan 1967 / UTM zone 39N\",GEOGCS[\"Nahrwan "); add_srs_wkt (p, 1, "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[-242.2,-144.9,370.3,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6270\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",51],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"27039\"]]"); p = add_epsg_def_ex (filter, first, last, 27040, "epsg", 27040, "Nahrwan 1967 / UTM zone 40N", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Nahrwan_1967", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=40 +ellps=clrk80 +towgs84=-242.2,-144.9,"); add_proj4text (p, 1, "370.3,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Nahrwan 1967 / UTM zone 40N\",GEOGCS[\"Nahrwan "); add_srs_wkt (p, 1, "1967\",DATUM[\"Nahrwan_1967\",SPHEROID[\"Clarke 1880 (RG"); add_srs_wkt (p, 2, "S)\",6378249.145,293.465,AUTHORITY[\"EPSG\",\"7012\"]],T"); add_srs_wkt (p, 3, "OWGS84[-242.2,-144.9,370.3,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6270\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4270\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",57],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"27040\"]]"); p = add_epsg_def_ex (filter, first, last, 27120, "epsg", 27120, "Naparima 1972 / UTM zone 20N", 0, 0, "International 1924", "Greenwich", "Naparima_1972", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +ellps=intl +towgs84=-10,375,165,0,0,"); add_proj4text (p, 1, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Naparima 1972 / UTM zone 20N\",GEOGCS[\"Naparim"); add_srs_wkt (p, 1, "a 1972\",DATUM[\"Naparima_1972\",SPHEROID[\"Internationa"); add_srs_wkt (p, 2, "l 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS"); add_srs_wkt (p, 3, "84[-10,375,165,0,0,0,0],AUTHORITY[\"EPSG\",\"6271\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4271\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",-63],PARAMETER[\"scale_factor\",0.9996"); add_srs_wkt (p, 10, "],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"27120\"]]"); p = add_epsg_def_ex (filter, first, last, 27200, "epsg", 27200, "NZGD49 / New Zealand Map Grid", 0, 0, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "New_Zealand_Map_Grid", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=nzmg +lat_0=-41 +lon_0=173 +x_0=2510000 +y_0=60231"); add_proj4text (p, 1, "50 +ellps=intl +towgs84=59.47,-5.04,187.44,0.47,-0.1,1.0"); add_proj4text (p, 2, "24,-4.5993 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / New Zealand Map Grid\",GEOGCS[\"NZGD49"); add_srs_wkt (p, 1, "\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599"); add_srs_wkt (p, 4, "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 8, "72\"]],PROJECTION[\"New_Zealand_Map_Grid\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",-41],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",173],PARAMETER[\"false_easting\",2510000],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_northing\",6023150],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"27200\"]]"); p = add_epsg_def_ex (filter, first, last, 27205, "epsg", 27205, "NZGD49 / Mount Eden Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-36.87986527777778 +lon_0=174.7643393"); add_proj4text (p, 1, "611111 +k=0.9999 +x_0=300000 +y_0=700000 +ellps=intl +to"); add_proj4text (p, 2, "wgs84=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units="); add_proj4text (p, 3, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Mount Eden Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",-36.87986527777778],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",174.7643393611111],PARAMETER[\"scale_factor"); add_srs_wkt (p, 11, "\",0.9999],PARAMETER[\"false_easting\",300000],PARAMETER"); add_srs_wkt (p, 12, "[\"false_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 14, "g\",EAST],AUTHORITY[\"EPSG\",\"27205\"]]"); p = add_epsg_def_ex (filter, first, last, 27206, "epsg", 27206, "NZGD49 / Bay of Plenty Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-37.76124980555556 +lon_0=176.4661972"); add_proj4text (p, 1, "5 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84=59.4"); add_proj4text (p, 2, "7,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Bay of Plenty Circuit\",GEOGCS[\"NZGD4"); add_srs_wkt (p, 1, "9\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599"); add_srs_wkt (p, 4, "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 8, "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",-37.76124980555556],PARAMETER[\"cent"); add_srs_wkt (p, 10, "ral_meridian\",176.46619725],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 11, "1],PARAMETER[\"false_easting\",300000],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"27206\"]]"); p = add_epsg_def_ex (filter, first, last, 27207, "epsg", 27207, "NZGD49 / Poverty Bay Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-38.62470277777778 +lon_0=177.8856362"); add_proj4text (p, 1, "777778 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Poverty Bay Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",-38.62470277777778],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",177.8856362777778],PARAMETER[\"scale_factor"); add_srs_wkt (p, 11, "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 14, "EAST],AUTHORITY[\"EPSG\",\"27207\"]]"); p = add_epsg_def_ex (filter, first, last, 27208, "epsg", 27208, "NZGD49 / Hawkes Bay Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-39.65092930555556 +lon_0=176.6736805"); add_proj4text (p, 1, "277778 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Hawkes Bay Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",-39.65092930555556],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",176.6736805277778],PARAMETER[\"scale_factor"); add_srs_wkt (p, 11, "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 14, "EAST],AUTHORITY[\"EPSG\",\"27208\"]]"); p = add_epsg_def_ex (filter, first, last, 27209, "epsg", 27209, "NZGD49 / Taranaki Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-39.13575830555556 +lon_0=174.2280117"); add_proj4text (p, 1, "5 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84=59.4"); add_proj4text (p, 2, "7,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Taranaki Circuit\",GEOGCS[\"NZGD49\",D"); add_srs_wkt (p, 1, "ATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inte"); add_srs_wkt (p, 2, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",-39.13575830555556],PARAMETER[\"central_"); add_srs_wkt (p, 10, "meridian\",174.22801175],PARAMETER[\"scale_factor\",1],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",300000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 14, "UTHORITY[\"EPSG\",\"27209\"]]"); p = add_epsg_def_ex (filter, first, last, 27210, "epsg", 27210, "NZGD49 / Tuhirangi Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-39.51247038888889 +lon_0=175.6400368"); add_proj4text (p, 1, "055556 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Tuhirangi Circuit\",GEOGCS[\"NZGD49\","); add_srs_wkt (p, 1, "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int"); add_srs_wkt (p, 2, "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",-39.51247038888889],PARAMETER[\"central_"); add_srs_wkt (p, 10, "meridian\",175.6400368055556],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 11, ",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA"); add_srs_wkt (p, 14, "ST],AUTHORITY[\"EPSG\",\"27210\"]]"); p = add_epsg_def_ex (filter, first, last, 27211, "epsg", 27211, "NZGD49 / Wanganui Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-40.24194713888889 +lon_0=175.4880996"); add_proj4text (p, 1, "111111 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Wanganui Circuit\",GEOGCS[\"NZGD49\",D"); add_srs_wkt (p, 1, "ATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inte"); add_srs_wkt (p, 2, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",-40.24194713888889],PARAMETER[\"central_"); add_srs_wkt (p, 10, "meridian\",175.4880996111111],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 11, ",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA"); add_srs_wkt (p, 14, "ST],AUTHORITY[\"EPSG\",\"27211\"]]"); p = add_epsg_def_ex (filter, first, last, 27212, "epsg", 27212, "NZGD49 / Wairarapa Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-40.92553263888889 +lon_0=175.6473496"); add_proj4text (p, 1, "666667 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Wairarapa Circuit\",GEOGCS[\"NZGD49\","); add_srs_wkt (p, 1, "DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Int"); add_srs_wkt (p, 2, "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",-40.92553263888889],PARAMETER[\"central_"); add_srs_wkt (p, 10, "meridian\",175.6473496666667],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 11, ",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA"); add_srs_wkt (p, 14, "ST],AUTHORITY[\"EPSG\",\"27212\"]]"); p = add_epsg_def_ex (filter, first, last, 27213, "epsg", 27213, "NZGD49 / Wellington Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.30131963888888 +lon_0=174.7766231"); add_proj4text (p, 1, "111111 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Wellington Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",-41.30131963888888],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",174.7766231111111],PARAMETER[\"scale_factor"); add_srs_wkt (p, 11, "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 14, "EAST],AUTHORITY[\"EPSG\",\"27213\"]]"); p = add_epsg_def_ex (filter, first, last, 27214, "epsg", 27214, "NZGD49 / Collingwood Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-40.71475905555556 +lon_0=172.6720465"); add_proj4text (p, 1, " +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84=59.47"); add_proj4text (p, 2, ",-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Collingwood Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",-40.71475905555556],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",172.6720465],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",300000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"27214\"]]"); p = add_epsg_def_ex (filter, first, last, 27215, "epsg", 27215, "NZGD49 / Nelson Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.27454472222222 +lon_0=173.2993168"); add_proj4text (p, 1, "055555 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Nelson Circuit\",GEOGCS[\"NZGD49\",DAT"); add_srs_wkt (p, 1, "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",-41.27454472222222],PARAMETER[\"central_me"); add_srs_wkt (p, 10, "ridian\",173.2993168055555],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",300000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"27215\"]]"); p = add_epsg_def_ex (filter, first, last, 27216, "epsg", 27216, "NZGD49 / Karamea Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.28991152777778 +lon_0=172.1090281"); add_proj4text (p, 1, "944444 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Karamea Circuit\",GEOGCS[\"NZGD49\",DA"); add_srs_wkt (p, 1, "TUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inter"); add_srs_wkt (p, 2, "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]"); add_srs_wkt (p, 3, "],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",-41.28991152777778],PARAMETER[\"central_m"); add_srs_wkt (p, 10, "eridian\",172.1090281944444],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 11, "1],PARAMETER[\"false_easting\",300000],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"27216\"]]"); p = add_epsg_def_ex (filter, first, last, 27217, "epsg", 27217, "NZGD49 / Buller Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.81080286111111 +lon_0=171.5812600"); add_proj4text (p, 1, "555556 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Buller Circuit\",GEOGCS[\"NZGD49\",DAT"); add_srs_wkt (p, 1, "UM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Intern"); add_srs_wkt (p, 2, "ational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]]"); add_srs_wkt (p, 3, ",TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",-41.81080286111111],PARAMETER[\"central_me"); add_srs_wkt (p, 10, "ridian\",171.5812600555556],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",300000],PARAMETER[\"false_"); add_srs_wkt (p, 12, "northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"27217\"]]"); p = add_epsg_def_ex (filter, first, last, 27218, "epsg", 27218, "NZGD49 / Grey Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-42.33369427777778 +lon_0=171.5497713"); add_proj4text (p, 1, "055556 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Grey Circuit\",GEOGCS[\"NZGD49\",DATUM"); add_srs_wkt (p, 1, "[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Internat"); add_srs_wkt (p, 2, "ional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],T"); add_srs_wkt (p, 3, "OWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",-42.33369427777778],PARAMETER[\"central_meri"); add_srs_wkt (p, 10, "dian\",171.5497713055556],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",300000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"27218\"]]"); p = add_epsg_def_ex (filter, first, last, 27219, "epsg", 27219, "NZGD49 / Amuri Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-42.68911658333333 +lon_0=173.0101333"); add_proj4text (p, 1, "888889 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Amuri Circuit\",GEOGCS[\"NZGD49\",DATU"); add_srs_wkt (p, 1, "M[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Interna"); add_srs_wkt (p, 2, "tional 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],"); add_srs_wkt (p, 3, "TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519943"); add_srs_wkt (p, 6, "3,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH]"); add_srs_wkt (p, 7, ",AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\"]],"); add_srs_wkt (p, 8, "PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude"); add_srs_wkt (p, 9, "_of_origin\",-42.68911658333333],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",173.0101333888889],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",300000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"27219\"]]"); p = add_epsg_def_ex (filter, first, last, 27220, "epsg", 27220, "NZGD49 / Marlborough Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-41.54448666666666 +lon_0=173.8020741"); add_proj4text (p, 1, "111111 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Marlborough Circuit\",GEOGCS[\"NZGD49\""); add_srs_wkt (p, 1, ",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"In"); add_srs_wkt (p, 2, "ternational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022"); add_srs_wkt (p, 3, "\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",-41.54448666666666],PARAMETER[\"centra"); add_srs_wkt (p, 10, "l_meridian\",173.8020741111111],PARAMETER[\"scale_factor"); add_srs_wkt (p, 11, "\",1],PARAMETER[\"false_easting\",300000],PARAMETER[\"fa"); add_srs_wkt (p, 12, "lse_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 14, "EAST],AUTHORITY[\"EPSG\",\"27220\"]]"); p = add_epsg_def_ex (filter, first, last, 27221, "epsg", 27221, "NZGD49 / Hokitika Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-42.88632236111111 +lon_0=170.9799935"); add_proj4text (p, 1, " +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84=59.47"); add_proj4text (p, 2, ",-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Hokitika Circuit\",GEOGCS[\"NZGD49\",D"); add_srs_wkt (p, 1, "ATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inte"); add_srs_wkt (p, 2, "rnational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",-42.88632236111111],PARAMETER[\"central_"); add_srs_wkt (p, 10, "meridian\",170.9799935],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",300000],PARAMETER[\"false_nort"); add_srs_wkt (p, 12, "hing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AU"); add_srs_wkt (p, 14, "THORITY[\"EPSG\",\"27221\"]]"); p = add_epsg_def_ex (filter, first, last, 27222, "epsg", 27222, "NZGD49 / Okarito Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-43.11012813888889 +lon_0=170.2609258"); add_proj4text (p, 1, "333333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84"); add_proj4text (p, 2, "=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no"); add_proj4text (p, 3, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Okarito Circuit\",GEOGCS[\"NZGD49\",DA"); add_srs_wkt (p, 1, "TUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\"Inter"); add_srs_wkt (p, 2, "national 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]"); add_srs_wkt (p, 3, "],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993],AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,AUTHO"); add_srs_wkt (p, 5, "RITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199"); add_srs_wkt (p, 6, "433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORT"); add_srs_wkt (p, 7, "H],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4272\"]"); add_srs_wkt (p, 8, "],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitu"); add_srs_wkt (p, 9, "de_of_origin\",-43.11012813888889],PARAMETER[\"central_m"); add_srs_wkt (p, 10, "eridian\",170.2609258333333],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 11, "1],PARAMETER[\"false_easting\",300000],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AUTHORITY[\"EPSG\",\"27222\"]]"); p = add_epsg_def_ex (filter, first, last, 27223, "epsg", 27223, "NZGD49 / Jacksons Bay Circuit", 0, 1, "International 1924", "Greenwich", "New_Zealand_Geodetic_Datum_1949", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-43.97780288888889 +lon_0=168.606267 "); add_proj4text (p, 1, "+k=1 +x_0=300000 +y_0=700000 +ellps=intl +towgs84=59.47,"); add_proj4text (p, 2, "-5.04,187.44,0.47,-0.1,1.024,-4.5993 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD49 / Jacksons Bay Circuit\",GEOGCS[\"NZGD49"); add_srs_wkt (p, 1, "\",DATUM[\"New_Zealand_Geodetic_Datum_1949\",SPHEROID[\""); add_srs_wkt (p, 2, "International 1924\",6378388,297,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "22\"]],TOWGS84[59.47,-5.04,187.44,0.47,-0.1,1.024,-4.599"); add_srs_wkt (p, 4, "3],AUTHORITY[\"EPSG\",\"6272\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"42"); add_srs_wkt (p, 8, "72\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",-43.97780288888889],PARAMETER[\"cent"); add_srs_wkt (p, 10, "ral_meridian\",168.606267],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",300000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",700000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"27223\"]]"); } #endif /* full EPSG initialization enabled/disabled */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_10.c��������������������������������������������������0000664�0001750�0001750�00000544216�12544707704�017044� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_10 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 3036, "epsg", 3036, "Moznet / UTM zone 36S", 0, 0, "WGS 84", "Greenwich", "Moznet_ITRF94", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Moznet / UTM zone 36S\",GEOGCS[\"Moznet\",DATUM"); add_srs_wkt (p, 1, "[\"Moznet_ITRF94\",SPHEROID[\"WGS 84\",6378137,298.25722"); add_srs_wkt (p, 2, "3563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6130\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"413"); add_srs_wkt (p, 7, "0\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",33]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"3036\"]]"); p = add_epsg_def_ex (filter, first, last, 3037, "epsg", 3037, "Moznet / UTM zone 37S", 0, 0, "WGS 84", "Greenwich", "Moznet_ITRF94", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Moznet / UTM zone 37S\",GEOGCS[\"Moznet\",DATUM"); add_srs_wkt (p, 1, "[\"Moznet_ITRF94\",SPHEROID[\"WGS 84\",6378137,298.25722"); add_srs_wkt (p, 2, "3563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6130\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"413"); add_srs_wkt (p, 7, "0\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",39]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"3037\"]]"); p = add_epsg_def_ex (filter, first, last, 3038, "epsg", 3038, "ETRS89 / TM26 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM26 (deprecated)\",GEOGCS[\"ETRS89\","); add_srs_wkt (p, 1, "DATUM[\"European_Terrestrial_Reference_System_1989\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-27],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); add_srs_wkt (p, 13, "ing\",EAST],AUTHORITY[\"EPSG\",\"3038\"]]"); p = add_epsg_def_ex (filter, first, last, 3039, "epsg", 3039, "ETRS89 / TM27 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=27 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM27 (deprecated)\",GEOGCS[\"ETRS89\","); add_srs_wkt (p, 1, "DATUM[\"European_Terrestrial_Reference_System_1989\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-21],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); add_srs_wkt (p, 13, "ing\",EAST],AUTHORITY[\"EPSG\",\"3039\"]]"); p = add_epsg_def_ex (filter, first, last, 3040, "epsg", 3040, "ETRS89 / UTM zone 28N (N-E)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 28N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-15],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.9996],PARAMETER[\"false_easting\",500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); add_srs_wkt (p, 13, "ing\",EAST],AUTHORITY[\"EPSG\",\"3040\"]]"); p = add_epsg_def_ex (filter, first, last, 3041, "epsg", 3041, "ETRS89 / UTM zone 29N (N-E)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 29N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-9],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 13, "g\",EAST],AUTHORITY[\"EPSG\",\"3041\"]]"); p = add_epsg_def_ex (filter, first, last, 3042, "epsg", 3042, "ETRS89 / UTM zone 30N (N-E)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 30N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",-3],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 13, "g\",EAST],AUTHORITY[\"EPSG\",\"3042\"]]"); p = add_epsg_def_ex (filter, first, last, 3043, "epsg", 3043, "ETRS89 / UTM zone 31N (N-E)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=31 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 31N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 13, "g\",EAST],AUTHORITY[\"EPSG\",\"3043\"]]"); p = add_epsg_def_ex (filter, first, last, 3044, "epsg", 3044, "ETRS89 / UTM zone 32N (N-E)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 32N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9996],PARAMETER[\"false_easting\",500000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 13, "g\",EAST],AUTHORITY[\"EPSG\",\"3044\"]]"); p = add_epsg_def_ex (filter, first, last, 3045, "epsg", 3045, "ETRS89 / UTM zone 33N (N-E)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 33N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 13, "g\",EAST],AUTHORITY[\"EPSG\",\"3045\"]]"); p = add_epsg_def_ex (filter, first, last, 3046, "epsg", 3046, "ETRS89 / UTM zone 34N (N-E)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 34N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",21],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 13, "g\",EAST],AUTHORITY[\"EPSG\",\"3046\"]]"); p = add_epsg_def_ex (filter, first, last, 3047, "epsg", 3047, "ETRS89 / UTM zone 35N (N-E)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 35N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 13, "g\",EAST],AUTHORITY[\"EPSG\",\"3047\"]]"); p = add_epsg_def_ex (filter, first, last, 3048, "epsg", 3048, "ETRS89 / UTM zone 36N (N-E)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=36 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 36N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",33],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 13, "g\",EAST],AUTHORITY[\"EPSG\",\"3048\"]]"); p = add_epsg_def_ex (filter, first, last, 3049, "epsg", 3049, "ETRS89 / UTM zone 37N (N-E)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 37N (N-E)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",39],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 13, "g\",EAST],AUTHORITY[\"EPSG\",\"3049\"]]"); p = add_epsg_def_ex (filter, first, last, 3050, "epsg", 3050, "ETRS89 / TM38 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=38 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM38 (deprecated)\",GEOGCS[\"ETRS89\","); add_srs_wkt (p, 1, "DATUM[\"European_Terrestrial_Reference_System_1989\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",45],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 13, "g\",EAST],AUTHORITY[\"EPSG\",\"3050\"]]"); p = add_epsg_def_ex (filter, first, last, 3051, "epsg", 3051, "ETRS89 / TM39 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=39 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM39 (deprecated)\",GEOGCS[\"ETRS89\","); add_srs_wkt (p, 1, "DATUM[\"European_Terrestrial_Reference_System_1989\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",51],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",500000],PARA"); add_srs_wkt (p, 11, "METER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eastin"); add_srs_wkt (p, 13, "g\",EAST],AUTHORITY[\"EPSG\",\"3051\"]]"); p = add_epsg_def_ex (filter, first, last, 3054, "epsg", 3054, "Hjorsey 1955 / UTM zone 26N", 0, 0, "International 1924", "Greenwich", "Hjorsey_1955", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=intl +towgs84=-73,46,-86,0,0,0"); add_proj4text (p, 1, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hjorsey 1955 / UTM zone 26N\",GEOGCS[\"Hjorsey "); add_srs_wkt (p, 1, "1955\",DATUM[\"Hjorsey_1955\",SPHEROID[\"International 1"); add_srs_wkt (p, 2, "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); add_srs_wkt (p, 3, "-73,46,-86,0,0,0,0],AUTHORITY[\"EPSG\",\"6658\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4658\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-27],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"3054\"]]"); p = add_epsg_def_ex (filter, first, last, 3055, "epsg", 3055, "Hjorsey 1955 / UTM zone 27N", 0, 0, "International 1924", "Greenwich", "Hjorsey_1955", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=27 +ellps=intl +towgs84=-73,46,-86,0,0,0"); add_proj4text (p, 1, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hjorsey 1955 / UTM zone 27N\",GEOGCS[\"Hjorsey "); add_srs_wkt (p, 1, "1955\",DATUM[\"Hjorsey_1955\",SPHEROID[\"International 1"); add_srs_wkt (p, 2, "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); add_srs_wkt (p, 3, "-73,46,-86,0,0,0,0],AUTHORITY[\"EPSG\",\"6658\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4658\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-21],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"3055\"]]"); p = add_epsg_def_ex (filter, first, last, 3056, "epsg", 3056, "Hjorsey 1955 / UTM zone 28N", 0, 0, "International 1924", "Greenwich", "Hjorsey_1955", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=intl +towgs84=-73,46,-86,0,0,0"); add_proj4text (p, 1, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Hjorsey 1955 / UTM zone 28N\",GEOGCS[\"Hjorsey "); add_srs_wkt (p, 1, "1955\",DATUM[\"Hjorsey_1955\",SPHEROID[\"International 1"); add_srs_wkt (p, 2, "924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84["); add_srs_wkt (p, 3, "-73,46,-86,0,0,0,0],AUTHORITY[\"EPSG\",\"6658\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4658\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",-15],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"3056\"]]"); p = add_epsg_def_ex (filter, first, last, 3057, "epsg", 3057, "ISN93 / Lambert 1993", 0, 0, "GRS 1980", "Greenwich", "Islands_Net_1993", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=64.25 +lat_2=65.75 +lat_0=65 +lon_0=-19"); add_proj4text (p, 1, " +x_0=500000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ISN93 / Lambert 1993\",GEOGCS[\"ISN93\",DATUM[\""); add_srs_wkt (p, 1, "Islands_Net_1993\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 2, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 3, ",0],AUTHORITY[\"EPSG\",\"6659\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 5, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 7, "59\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"standard_parallel_1\",64.25],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_2\",65.75],PARAMETER[\"latitude_of_origin\",65"); add_srs_wkt (p, 10, "],PARAMETER[\"central_meridian\",-19],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",500000],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3057\"]]"); p = add_epsg_def_ex (filter, first, last, 3058, "epsg", 3058, "Helle 1954 / Jan Mayen Grid", 0, 1, "International 1924", "Greenwich", "Helle_1954", "Transverse_Mercator", "metre", "x", "North", "y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-8.5 +k=1 +x_0=50000 +y_0=-7"); add_proj4text (p, 1, "800000 +ellps=intl +towgs84=982.6087,552.753,-540.873,6."); add_proj4text (p, 2, "68162662527694,-31.6114924086422,-19.8481610048168,16.80"); add_proj4text (p, 3, "5 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Helle 1954 / Jan Mayen Grid\",GEOGCS[\"Helle 19"); add_srs_wkt (p, 1, "54\",DATUM[\"Helle_1954\",SPHEROID[\"International 1924\""); add_srs_wkt (p, 2, ",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[982.6"); add_srs_wkt (p, 3, "087,552.753,-540.873,6.68162662527694,-31.6114924086422,"); add_srs_wkt (p, 4, "-19.8481610048168,16.805],AUTHORITY[\"EPSG\",\"6660\"]],"); add_srs_wkt (p, 5, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 6, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 7, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 8, "AUTHORITY[\"EPSG\",\"4660\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 9, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 10, "\"central_meridian\",-8.5],PARAMETER[\"scale_factor\",1]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_easting\",50000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",-7800000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"x\",NORTH],AXIS[\"y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"3058\"]]"); p = add_epsg_def_ex (filter, first, last, 3059, "epsg", 3059, "LKS92 / Latvia TM", 0, 1, "GRS 1980", "Greenwich", "Latvia_1992", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=-6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"LKS92 / Latvia TM\",GEOGCS[\"LKS92\",DATUM[\"La"); add_srs_wkt (p, 1, "tvia_1992\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"6661\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4661\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",24],PARA"); add_srs_wkt (p, 9, "METER[\"scale_factor\",0.9996],PARAMETER[\"false_easting"); add_srs_wkt (p, 10, "\",500000],PARAMETER[\"false_northing\",-6000000],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH"); add_srs_wkt (p, 12, "],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"3059\"]]"); p = add_epsg_def_ex (filter, first, last, 3060, "epsg", 3060, "IGN72 Grande Terre / UTM zone 58S", 0, 0, "International 1924", "Greenwich", "IGN72_Grande_Terre", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +south +ellps=intl +towgs84=-11.64,-3"); add_proj4text (p, 1, "48.6,291.98,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGN72 Grande Terre / UTM zone 58S\",GEOGCS[\"IG"); add_srs_wkt (p, 1, "N72 Grande Terre\",DATUM[\"IGN72_Grande_Terre\",SPHEROID"); add_srs_wkt (p, 2, "[\"International 1924\",6378388,297,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7022\"]],TOWGS84[-11.64,-348.6,291.98,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6634\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4662\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",0],PARAMETER[\"central_meridian\",165],PARAMETER"); add_srs_wkt (p, 10, "[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",10000000],UNIT[\"metr"); add_srs_wkt (p, 12, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3060\"]"); add_srs_wkt (p, 14, "]"); p = add_epsg_def_ex (filter, first, last, 3061, "epsg", 3061, "Porto Santo 1995 / UTM zone 28N", 0, 0, "International 1924", "Greenwich", "Porto_Santo_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=intl +towgs84=-502.862,-247.43"); add_proj4text (p, 1, "8,312.724,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Porto Santo 1995 / UTM zone 28N\",GEOGCS[\"Port"); add_srs_wkt (p, 1, "o Santo 1995\",DATUM[\"Porto_Santo_1995\",SPHEROID[\"Int"); add_srs_wkt (p, 2, "ernational 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\""); add_srs_wkt (p, 3, "]],TOWGS84[-502.862,-247.438,312.724,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6663\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4663\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_or"); add_srs_wkt (p, 9, "igin\",0],PARAMETER[\"central_meridian\",-15],PARAMETER["); add_srs_wkt (p, 10, "\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS["); add_srs_wkt (p, 13, "\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3061\"]]"); p = add_epsg_def_ex (filter, first, last, 3062, "epsg", 3062, "Azores Oriental 1995 / UTM zone 26N", 0, 0, "International 1924", "Greenwich", "Azores_Oriental_Islands_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=intl +towgs84=-204.619,140.176"); add_proj4text (p, 1, ",55.226,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Azores Oriental 1995 / UTM zone 26N\",GEOGCS[\""); add_srs_wkt (p, 1, "Azores Oriental 1995\",DATUM[\"Azores_Oriental_Islands_1"); add_srs_wkt (p, 2, "995\",SPHEROID[\"International 1924\",6378388,297,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7022\"]],TOWGS84[-204.619,140.176,55.226,"); add_srs_wkt (p, 4, "0,0,0,0],AUTHORITY[\"EPSG\",\"6664\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 5, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 6, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 7, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4664\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 9, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 10, "\",-27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"f"); add_srs_wkt (p, 11, "alse_easting\",500000],PARAMETER[\"false_northing\",0],U"); add_srs_wkt (p, 12, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 13, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 14, ",\"3062\"]]"); p = add_epsg_def_ex (filter, first, last, 3063, "epsg", 3063, "Azores Central 1995 / UTM zone 26N", 0, 0, "International 1924", "Greenwich", "Azores_Central_Islands_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=26 +ellps=intl +towgs84=-106.226,166.366"); add_proj4text (p, 1, ",-37.893,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Azores Central 1995 / UTM zone 26N\",GEOGCS[\"A"); add_srs_wkt (p, 1, "zores Central 1995\",DATUM[\"Azores_Central_Islands_1995"); add_srs_wkt (p, 2, "\",SPHEROID[\"International 1924\",6378388,297,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7022\"]],TOWGS84[-106.226,166.366,-37.893,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6665\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4665\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 10, "27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",500000],PARAMETER[\"false_northing\",0],UNIT["); add_srs_wkt (p, 12, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3"); add_srs_wkt (p, 14, "063\"]]"); p = add_epsg_def_ex (filter, first, last, 3064, "epsg", 3064, "IGM95 / UTM zone 32N", 0, 0, "WGS 84", "Greenwich", "Istituto_Geografico_Militaire_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGM95 / UTM zone 32N\",GEOGCS[\"IGM95\",DATUM[\""); add_srs_wkt (p, 1, "Istituto_Geografico_Militaire_1995\",SPHEROID[\"WGS 84\""); add_srs_wkt (p, 2, ",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6670\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4670\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",9],PARAMETER[\"scale_factor\",0.9996],PAR"); add_srs_wkt (p, 10, "AMETER[\"false_easting\",500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"3064\"]]"); p = add_epsg_def_ex (filter, first, last, 3065, "epsg", 3065, "IGM95 / UTM zone 33N", 0, 0, "WGS 84", "Greenwich", "Istituto_Geografico_Militaire_1995", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"IGM95 / UTM zone 33N\",GEOGCS[\"IGM95\",DATUM[\""); add_srs_wkt (p, 1, "Istituto_Geografico_Militaire_1995\",SPHEROID[\"WGS 84\""); add_srs_wkt (p, 2, ",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6670\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4670\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",15],PARAMETER[\"scale_factor\",0.9996],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 12, ",AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"3065\"]]"); p = add_epsg_def_ex (filter, first, last, 3066, "epsg", 3066, "ED50 / Jordan TM", 0, 0, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=37 +k=0.9998 +x_0=500000 +y_"); add_proj4text (p, 1, "0=-3000000 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +un"); add_proj4text (p, 2, "its=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / Jordan TM\",GEOGCS[\"ED50\",DATUM[\"Euro"); add_srs_wkt (p, 1, "pean_Datum_1950\",SPHEROID[\"International 1924\",637838"); add_srs_wkt (p, 2, "8,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121"); add_srs_wkt (p, 3, ",0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwi"); add_srs_wkt (p, 4, "ch\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0"); add_srs_wkt (p, 5, "174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lat"); add_srs_wkt (p, 6, "itude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG"); add_srs_wkt (p, 7, "\",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PARAME"); add_srs_wkt (p, 8, "TER[\"latitude_of_origin\",0],PARAMETER[\"central_meridi"); add_srs_wkt (p, 9, "an\",37],PARAMETER[\"scale_factor\",0.9998],PARAMETER[\""); add_srs_wkt (p, 10, "false_easting\",500000],PARAMETER[\"false_northing\",-30"); add_srs_wkt (p, 11, "00000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 12, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 13, "\"EPSG\",\"3066\"]]"); p = add_epsg_def_ex (filter, first, last, 3067, "epsg", 3067, "ETRS89 / TM35FIN(E,N)", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / TM35FIN(E,N)\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",27],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"3067\"]]"); p = add_epsg_def_ex (filter, first, last, 3068, "epsg", 3068, "DHDN / Soldner Berlin", 0, 1, "Bessel 1841", "Greenwich", "Deutsches_Hauptdreiecksnetz", "Cassini_Soldner", "metre", "x", "North", "y", "East"); add_proj4text (p, 0, "+proj=cass +lat_0=52.41864827777778 +lon_0=13.6272036666"); add_proj4text (p, 1, "6667 +x_0=40000 +y_0=10000 +ellps=bessel +towgs84=598.1,"); add_proj4text (p, 2, "73.7,418.2,0.202,0.045,-2.455,6.7 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / Soldner Berlin\",GEOGCS[\"DHDN\",DATUM[\""); add_srs_wkt (p, 1, "Deutsches_Hauptdreiecksnetz\",SPHEROID[\"Bessel 1841\",6"); add_srs_wkt (p, 2, "377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOW"); add_srs_wkt (p, 3, "GS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.7],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6314\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4314\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Cassini_Soldner\"],PARAMETER[\"latitude_of_origin"); add_srs_wkt (p, 9, "\",52.41864827777778],PARAMETER[\"central_meridian\",13."); add_srs_wkt (p, 10, "62720366666667],PARAMETER[\"false_easting\",40000],PARAM"); add_srs_wkt (p, 11, "ETER[\"false_northing\",10000],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 12, "Y[\"EPSG\",\"9001\"]],AXIS[\"x\",NORTH],AXIS[\"y\",EAST]"); add_srs_wkt (p, 13, ",AUTHORITY[\"EPSG\",\"3068\"]]"); p = add_epsg_def_ex (filter, first, last, 3069, "epsg", 3069, "NAD27 / Wisconsin Transverse Mercator", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=500000 +y"); add_proj4text (p, 1, "_0=-4500000 +datum=NAD27 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Wisconsin Transverse Mercator\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHEROID[\""); add_srs_wkt (p, 2, "Clarke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 9, "meridian\",-90],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 11, "g\",-4500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001"); add_srs_wkt (p, 12, "\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG"); add_srs_wkt (p, 13, "\",\"3069\"]]"); p = add_epsg_def_ex (filter, first, last, 3070, "epsg", 3070, "NAD83 / Wisconsin Transverse Mercator", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y"); add_proj4text (p, 1, "_0=-4480000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Wisconsin Transverse Mercator\",GEOGCS["); add_srs_wkt (p, 1, "\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\""); add_srs_wkt (p, 2, "GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"70"); add_srs_wkt (p, 3, "19\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 8, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 9, "ER[\"central_meridian\",-90],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.9996],PARAMETER[\"false_easting\",520000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",-4480000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 12, "EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUT"); add_srs_wkt (p, 13, "HORITY[\"EPSG\",\"3070\"]]"); p = add_epsg_def_ex (filter, first, last, 3071, "epsg", 3071, "NAD83(HARN) / Wisconsin Transverse Mercator", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y"); add_proj4text (p, 1, "_0=-4480000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Wisconsin Transverse Mercator\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refere"); add_srs_wkt (p, 2, "nce_Network\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-90],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_east"); add_srs_wkt (p, 11, "ing\",520000],PARAMETER[\"false_northing\",-4480000],UNI"); add_srs_wkt (p, 12, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3071\"]]"); p = add_epsg_def_ex (filter, first, last, 3072, "epsg", 3072, "NAD83 / Maine CS2000 East", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0"); add_proj4text (p, 1, ".99998 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine CS2000 East\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",43.83333333333334],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",-67.875],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.99998],PARAMETER[\"false_easting\",700000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"3072\"]]"); p = add_epsg_def_ex (filter, first, last, 3073, "epsg", 3073, "NAD83 / Maine CS2000 Central (deprecated)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43 +lon_0=-69.125 +k=0.99998 +x_0=500"); add_proj4text (p, 1, "000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine CS2000 Central (deprecated)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6269\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",43],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",-69.125],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",0.99998],PARAMETER[\"false_easting\",500000],"); add_srs_wkt (p, 11, "PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"3073\"]]"); p = add_epsg_def_ex (filter, first, last, 3074, "epsg", 3074, "NAD83 / Maine CS2000 West", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0"); add_proj4text (p, 1, ".99998 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Maine CS2000 West\",GEOGCS[\"NAD83\",DA"); add_srs_wkt (p, 1, "TUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\""); add_srs_wkt (p, 8, "],PARAMETER[\"latitude_of_origin\",42.83333333333334],PA"); add_srs_wkt (p, 9, "RAMETER[\"central_meridian\",-70.375],PARAMETER[\"scale_"); add_srs_wkt (p, 10, "factor\",0.99998],PARAMETER[\"false_easting\",300000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"3074\"]]"); p = add_epsg_def_ex (filter, first, last, 3075, "epsg", 3075, "NAD83(HARN) / Maine CS2000 East", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0"); add_proj4text (p, 1, ".99998 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine CS2000 East\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",43.83333333333334],PARAMETER[\"central_meridian\",-67.8"); add_srs_wkt (p, 10, "75],PARAMETER[\"scale_factor\",0.99998],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",700000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3075\"]]"); p = add_epsg_def_ex (filter, first, last, 3076, "epsg", 3076, "NAD83(HARN) / Maine CS2000 Central (deprecated)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=43 +lon_0=-69.125 +k=0.99998 +x_0=500"); add_proj4text (p, 1, "000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine CS2000 Central (deprecated)"); add_srs_wkt (p, 1, "\",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Re"); add_srs_wkt (p, 2, "ference_Network\",SPHEROID[\"GRS 1980\",6378137,298.2572"); add_srs_wkt (p, 3, "22101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,"); add_srs_wkt (p, 4, "0],AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 5, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 6, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"41"); add_srs_wkt (p, 8, "52\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"l"); add_srs_wkt (p, 9, "atitude_of_origin\",43],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 10, "69.125],PARAMETER[\"scale_factor\",0.99998],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",500000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3076\"]]"); p = add_epsg_def_ex (filter, first, last, 3077, "epsg", 3077, "NAD83(HARN) / Maine CS2000 West", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0"); add_proj4text (p, 1, ".99998 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 2, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Maine CS2000 West\",GEOGCS[\"NAD8"); add_srs_wkt (p, 1, "3(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\""); add_srs_wkt (p, 2, ",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPS"); add_srs_wkt (p, 4, "G\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 6, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 7, "gitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION["); add_srs_wkt (p, 8, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 9, ",42.83333333333334],PARAMETER[\"central_meridian\",-70.3"); add_srs_wkt (p, 10, "75],PARAMETER[\"scale_factor\",0.99998],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",300000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 13, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3077\"]]"); p = add_epsg_def_ex (filter, first, last, 3078, "epsg", 3078, "NAD83 / Michigan Oblique Mercator", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Hotine_Oblique_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=33"); add_proj4text (p, 1, "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +no"); add_proj4text (p, 2, "_uoff +gamma=337.25556 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 3, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Michigan Oblique Mercator\",GEOGCS[\"NA"); add_srs_wkt (p, 1, "D83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS"); add_srs_wkt (p, 2, " 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\""); add_srs_wkt (p, 3, "]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],"); add_srs_wkt (p, 4, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 5, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 6, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 7, "AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Hotine_Obliqu"); add_srs_wkt (p, 8, "e_Mercator\"],PARAMETER[\"latitude_of_center\",45.309166"); add_srs_wkt (p, 9, "66666666],PARAMETER[\"longitude_of_center\",-86],PARAMET"); add_srs_wkt (p, 10, "ER[\"azimuth\",337.25556],PARAMETER[\"rectified_grid_ang"); add_srs_wkt (p, 11, "le\",337.25556],PARAMETER[\"scale_factor\",0.9996],PARAM"); add_srs_wkt (p, 12, "ETER[\"false_easting\",2546731.496],PARAMETER[\"false_no"); add_srs_wkt (p, 13, "rthing\",-4354009.816],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 15, "TY[\"EPSG\",\"3078\"]]"); p = add_epsg_def_ex (filter, first, last, 3079, "epsg", 3079, "NAD83(HARN) / Michigan Oblique Mercator", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Hotine_Oblique_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=33"); add_proj4text (p, 1, "7.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +no"); add_proj4text (p, 2, "_uoff +gamma=337.25556 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 3, ",0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Michigan Oblique Mercator\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_"); add_srs_wkt (p, 2, "Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Hotine_Oblique_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_center\",45.30916666666666],PARAMETER[\"longitude"); add_srs_wkt (p, 10, "_of_center\",-86],PARAMETER[\"azimuth\",337.25556],PARAM"); add_srs_wkt (p, 11, "ETER[\"rectified_grid_angle\",337.25556],PARAMETER[\"sca"); add_srs_wkt (p, 12, "le_factor\",0.9996],PARAMETER[\"false_easting\",2546731."); add_srs_wkt (p, 13, "496],PARAMETER[\"false_northing\",-4354009.816],UNIT[\"m"); add_srs_wkt (p, 14, "etre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],"); add_srs_wkt (p, 15, "AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3079\"]]"); p = add_epsg_def_ex (filter, first, last, 3080, "epsg", 3080, "NAD27 / Shackleford", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Lambert_Conformal_Conic_2SP", "foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.41666666666667 +lat_2=34.91666666666"); add_proj4text (p, 1, "666 +lat_0=31.16666666666667 +lon_0=-100 +x_0=914400 +y_"); add_proj4text (p, 2, "0=914400 +datum=NAD27 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Shackleford\",GEOGCS[\"NAD27\",DATUM[\""); add_srs_wkt (p, 1, "North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",637"); add_srs_wkt (p, 2, "8206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]],A"); add_srs_wkt (p, 3, "UTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 4, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 5, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 6, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267\""); add_srs_wkt (p, 7, "]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER"); add_srs_wkt (p, 8, "[\"standard_parallel_1\",27.41666666666667],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_2\",34.91666666666666],PARAMETER[\"lat"); add_srs_wkt (p, 10, "itude_of_origin\",31.16666666666667],PARAMETER[\"central"); add_srs_wkt (p, 11, "_meridian\",-100],PARAMETER[\"false_easting\",3000000],P"); add_srs_wkt (p, 12, "ARAMETER[\"false_northing\",3000000],UNIT[\"foot\",0.304"); add_srs_wkt (p, 13, "8,AUTHORITY[\"EPSG\",\"9002\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 14, "Y\",NORTH],AUTHORITY[\"EPSG\",\"3080\"]]"); p = add_epsg_def_ex (filter, first, last, 3081, "epsg", 3081, "NAD83 / Texas State Mapping System", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.41666666666667 +lat_2=34.91666666666"); add_proj4text (p, 1, "666 +lat_0=31.16666666666667 +lon_0=-100 +x_0=1000000 +y"); add_proj4text (p, 2, "_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 3, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas State Mapping System\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GR"); add_srs_wkt (p, 2, "S 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019"); add_srs_wkt (p, 3, "\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]"); add_srs_wkt (p, 4, "],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],U"); add_srs_wkt (p, 5, "NIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 6, "122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST"); add_srs_wkt (p, 7, "],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Con"); add_srs_wkt (p, 8, "formal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",27"); add_srs_wkt (p, 9, ".41666666666667],PARAMETER[\"standard_parallel_2\",34.91"); add_srs_wkt (p, 10, "666666666666],PARAMETER[\"latitude_of_origin\",31.166666"); add_srs_wkt (p, 11, "66666667],PARAMETER[\"central_meridian\",-100],PARAMETER"); add_srs_wkt (p, 12, "[\"false_easting\",1000000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 13, ",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 14, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 15, "3081\"]]"); p = add_epsg_def_ex (filter, first, last, 3082, "epsg", 3082, "NAD83 / Texas Centric Lambert Conformal", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x"); add_proj4text (p, 1, "_0=1500000 +y_0=5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas Centric Lambert Conformal\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"626"); add_srs_wkt (p, 4, "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert"); add_srs_wkt (p, 8, "_Conformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\""); add_srs_wkt (p, 9, ",27.5],PARAMETER[\"standard_parallel_2\",35],PARAMETER[\""); add_srs_wkt (p, 10, "latitude_of_origin\",18],PARAMETER[\"central_meridian\","); add_srs_wkt (p, 11, "-100],PARAMETER[\"false_easting\",1500000],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",5000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"3082\"]]"); p = add_epsg_def_ex (filter, first, last, 3083, "epsg", 3083, "NAD83 / Texas Centric Albers Equal Area", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x"); add_proj4text (p, 1, "_0=1500000 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Texas Centric Albers Equal Area\",GEOGC"); add_srs_wkt (p, 1, "S[\"NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"626"); add_srs_wkt (p, 4, "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Albers_"); add_srs_wkt (p, 8, "Conic_Equal_Area\"],PARAMETER[\"standard_parallel_1\",27"); add_srs_wkt (p, 9, ".5],PARAMETER[\"standard_parallel_2\",35],PARAMETER[\"la"); add_srs_wkt (p, 10, "titude_of_center\",18],PARAMETER[\"longitude_of_center\""); add_srs_wkt (p, 11, ",-100],PARAMETER[\"false_easting\",1500000],PARAMETER[\""); add_srs_wkt (p, 12, "false_northing\",6000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTH"); add_srs_wkt (p, 14, "ORITY[\"EPSG\",\"3083\"]]"); p = add_epsg_def_ex (filter, first, last, 3084, "epsg", 3084, "NAD83(HARN) / Texas Centric Lambert Conformal", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x"); add_proj4text (p, 1, "_0=1500000 +y_0=5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas Centric Lambert Conformal\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refe"); add_srs_wkt (p, 2, "rence_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMET"); add_srs_wkt (p, 9, "ER[\"standard_parallel_1\",27.5],PARAMETER[\"standard_pa"); add_srs_wkt (p, 10, "rallel_2\",35],PARAMETER[\"latitude_of_origin\",18],PARA"); add_srs_wkt (p, 11, "METER[\"central_meridian\",-100],PARAMETER[\"false_easti"); add_srs_wkt (p, 12, "ng\",1500000],PARAMETER[\"false_northing\",5000000],UNIT"); add_srs_wkt (p, 13, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EA"); add_srs_wkt (p, 14, "ST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3084\"]]"); p = add_epsg_def_ex (filter, first, last, 3085, "epsg", 3085, "NAD83(HARN) / Texas Centric Albers Equal Area", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x"); add_proj4text (p, 1, "_0=1500000 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Texas Centric Albers Equal Area\""); add_srs_wkt (p, 1, ",GEOGCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Refe"); add_srs_wkt (p, 2, "rence_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Albers_Conic_Equal_Area\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",27.5],PARAMETER[\"standard_paralle"); add_srs_wkt (p, 10, "l_2\",35],PARAMETER[\"latitude_of_center\",18],PARAMETER"); add_srs_wkt (p, 11, "[\"longitude_of_center\",-100],PARAMETER[\"false_easting"); add_srs_wkt (p, 12, "\",1500000],PARAMETER[\"false_northing\",6000000],UNIT[\""); add_srs_wkt (p, 13, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 14, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3085\"]]"); p = add_epsg_def_ex (filter, first, last, 3086, "epsg", 3086, "NAD83 / Florida GDL Albers", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_"); add_proj4text (p, 1, "0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Florida GDL Albers\",GEOGCS[\"NAD83\",D"); add_srs_wkt (p, 1, "ATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4269\"]],PROJECTION[\"Albers_Conic_Equal_"); add_srs_wkt (p, 8, "Area\"],PARAMETER[\"standard_parallel_1\",24],PARAMETER["); add_srs_wkt (p, 9, "\"standard_parallel_2\",31.5],PARAMETER[\"latitude_of_ce"); add_srs_wkt (p, 10, "nter\",24],PARAMETER[\"longitude_of_center\",-84],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",400000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"308"); add_srs_wkt (p, 14, "6\"]]"); p = add_epsg_def_ex (filter, first, last, 3087, "epsg", 3087, "NAD83(HARN) / Florida GDL Albers", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Albers_Conic_Equal_Area", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_"); add_proj4text (p, 1, "0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Florida GDL Albers\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network"); add_srs_wkt (p, 2, "\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Albers_Conic_Equal_Area\"],PARAMETER[\"standard_par"); add_srs_wkt (p, 9, "allel_1\",24],PARAMETER[\"standard_parallel_2\",31.5],PA"); add_srs_wkt (p, 10, "RAMETER[\"latitude_of_center\",24],PARAMETER[\"longitude"); add_srs_wkt (p, 11, "_of_center\",-84],PARAMETER[\"false_easting\",400000],PA"); add_srs_wkt (p, 12, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"3087\"]]"); p = add_epsg_def_ex (filter, first, last, 3088, "epsg", 3088, "NAD83 / Kentucky Single Zone", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666"); add_proj4text (p, 1, "666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 "); add_proj4text (p, 2, "+y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 3, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kentucky Single Zone\",GEOGCS[\"NAD83\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980"); add_srs_wkt (p, 2, "\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],T"); add_srs_wkt (p, 3, "OWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",37.08333"); add_srs_wkt (p, 9, "333333334],PARAMETER[\"standard_parallel_2\",38.66666666"); add_srs_wkt (p, 10, "666666],PARAMETER[\"latitude_of_origin\",36.333333333333"); add_srs_wkt (p, 11, "34],PARAMETER[\"central_meridian\",-85.75],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_easting\",1500000],PARAMETER[\"false_northing\",100"); add_srs_wkt (p, 13, "0000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 14, "S[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"308"); add_srs_wkt (p, 15, "8\"]]"); p = add_epsg_def_ex (filter, first, last, 3089, "epsg", 3089, "NAD83 / Kentucky Single Zone (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666"); add_proj4text (p, 1, "666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 "); add_proj4text (p, 2, "+y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 3, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Kentucky Single Zone (ftUS)\",GEOGCS[\""); add_srs_wkt (p, 1, "NAD83\",DATUM[\"North_American_Datum_1983\",SPHEROID[\"G"); add_srs_wkt (p, 2, "RS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"701"); add_srs_wkt (p, 3, "9\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\""); add_srs_wkt (p, 4, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 5, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 6, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 7, "T],AUTHORITY[\"EPSG\",\"4269\"]],PROJECTION[\"Lambert_Co"); add_srs_wkt (p, 8, "nformal_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",3"); add_srs_wkt (p, 9, "7.08333333333334],PARAMETER[\"standard_parallel_2\",38.6"); add_srs_wkt (p, 10, "6666666666666],PARAMETER[\"latitude_of_origin\",36.33333"); add_srs_wkt (p, 11, "333333334],PARAMETER[\"central_meridian\",-85.75],PARAME"); add_srs_wkt (p, 12, "TER[\"false_easting\",4921250],PARAMETER[\"false_northin"); add_srs_wkt (p, 13, "g\",3280833.333],UNIT[\"US survey foot\",0.3048006096012"); add_srs_wkt (p, 14, "192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS["); add_srs_wkt (p, 15, "\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3089\"]]"); p = add_epsg_def_ex (filter, first, last, 3090, "epsg", 3090, "NAD83(HARN) / Kentucky Single Zone", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666"); add_proj4text (p, 1, "666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 "); add_proj4text (p, 2, "+y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units="); add_proj4text (p, 3, "m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kentucky Single Zone\",GEOGCS[\"N"); add_srs_wkt (p, 1, "AD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Netwo"); add_srs_wkt (p, 2, "rk\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["); add_srs_wkt (p, 4, "\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTH"); add_srs_wkt (p, 6, "ORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS["); add_srs_wkt (p, 7, "\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJEC"); add_srs_wkt (p, 8, "TION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\"standa"); add_srs_wkt (p, 9, "rd_parallel_1\",37.08333333333334],PARAMETER[\"standard_"); add_srs_wkt (p, 10, "parallel_2\",38.66666666666666],PARAMETER[\"latitude_of_"); add_srs_wkt (p, 11, "origin\",36.33333333333334],PARAMETER[\"central_meridian"); add_srs_wkt (p, 12, "\",-85.75],PARAMETER[\"false_easting\",1500000],PARAMETE"); add_srs_wkt (p, 13, "R[\"false_northing\",1000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 14, "[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],"); add_srs_wkt (p, 15, "AUTHORITY[\"EPSG\",\"3090\"]]"); p = add_epsg_def_ex (filter, first, last, 3091, "epsg", 3091, "NAD83(HARN) / Kentucky Single Zone (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Lambert_Conformal_Conic_2SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666"); add_proj4text (p, 1, "666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 "); add_proj4text (p, 2, "+y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0"); add_proj4text (p, 3, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Kentucky Single Zone (ftUS)\",GEO"); add_srs_wkt (p, 1, "GCS[\"NAD83(HARN)\",DATUM[\"NAD83_High_Accuracy_Referenc"); add_srs_wkt (p, 2, "e_Network\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PARAMETER[\""); add_srs_wkt (p, 9, "standard_parallel_1\",37.08333333333334],PARAMETER[\"sta"); add_srs_wkt (p, 10, "ndard_parallel_2\",38.66666666666666],PARAMETER[\"latitu"); add_srs_wkt (p, 11, "de_of_origin\",36.33333333333334],PARAMETER[\"central_me"); add_srs_wkt (p, 12, "ridian\",-85.75],PARAMETER[\"false_easting\",4921250],PA"); add_srs_wkt (p, 13, "RAMETER[\"false_northing\",3280833.333],UNIT[\"US survey"); add_srs_wkt (p, 14, " foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"9003\"]]"); add_srs_wkt (p, 15, ",AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 16, "3091\"]]"); p = add_epsg_def_ex (filter, first, last, 3092, "epsg", 3092, "Tokyo / UTM zone 51N", 0, 0, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=51 +ellps=bessel +towgs84=-146.414,507.3"); add_proj4text (p, 1, "37,680.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / UTM zone 51N\",GEOGCS[\"Tokyo\",DATUM[\""); add_srs_wkt (p, 1, "Tokyo\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-146.414,507.337,"); add_srs_wkt (p, 3, "680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"6301\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4301\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",123],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"3092\"]]"); p = add_epsg_def_ex (filter, first, last, 3093, "epsg", 3093, "Tokyo / UTM zone 52N", 0, 0, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=52 +ellps=bessel +towgs84=-146.414,507.3"); add_proj4text (p, 1, "37,680.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / UTM zone 52N\",GEOGCS[\"Tokyo\",DATUM[\""); add_srs_wkt (p, 1, "Tokyo\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-146.414,507.337,"); add_srs_wkt (p, 3, "680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"6301\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4301\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",129],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"3093\"]]"); p = add_epsg_def_ex (filter, first, last, 3094, "epsg", 3094, "Tokyo / UTM zone 53N", 0, 0, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=53 +ellps=bessel +towgs84=-146.414,507.3"); add_proj4text (p, 1, "37,680.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / UTM zone 53N\",GEOGCS[\"Tokyo\",DATUM[\""); add_srs_wkt (p, 1, "Tokyo\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-146.414,507.337,"); add_srs_wkt (p, 3, "680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"6301\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4301\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",135],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"3094\"]]"); p = add_epsg_def_ex (filter, first, last, 3095, "epsg", 3095, "Tokyo / UTM zone 54N", 0, 0, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=54 +ellps=bessel +towgs84=-146.414,507.3"); add_proj4text (p, 1, "37,680.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / UTM zone 54N\",GEOGCS[\"Tokyo\",DATUM[\""); add_srs_wkt (p, 1, "Tokyo\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-146.414,507.337,"); add_srs_wkt (p, 3, "680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"6301\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4301\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",141],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"3095\"]]"); p = add_epsg_def_ex (filter, first, last, 3096, "epsg", 3096, "Tokyo / UTM zone 55N", 0, 0, "Bessel 1841", "Greenwich", "Tokyo", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=55 +ellps=bessel +towgs84=-146.414,507.3"); add_proj4text (p, 1, "37,680.507,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Tokyo / UTM zone 55N\",GEOGCS[\"Tokyo\",DATUM[\""); add_srs_wkt (p, 1, "Tokyo\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128"); add_srs_wkt (p, 2, ",AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[-146.414,507.337,"); add_srs_wkt (p, 3, "680.507,0,0,0,0],AUTHORITY[\"EPSG\",\"6301\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4301\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",147],PARAMETER[\"scale_factor\",0.9996],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"3096\"]]"); p = add_epsg_def_ex (filter, first, last, 3097, "epsg", 3097, "JGD2000 / UTM zone 51N", 0, 0, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=51 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / UTM zone 51N\",GEOGCS[\"JGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Japanese_Geodetic_Datum_2000\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6612\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4612\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",123],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"3097\"]]"); p = add_epsg_def_ex (filter, first, last, 3098, "epsg", 3098, "JGD2000 / UTM zone 52N", 0, 0, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=52 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / UTM zone 52N\",GEOGCS[\"JGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Japanese_Geodetic_Datum_2000\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6612\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4612\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",129],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"3098\"]]"); p = add_epsg_def_ex (filter, first, last, 3099, "epsg", 3099, "JGD2000 / UTM zone 53N", 0, 0, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=53 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / UTM zone 53N\",GEOGCS[\"JGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Japanese_Geodetic_Datum_2000\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6612\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4612\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",135],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"3099\"]]"); p = add_epsg_def_ex (filter, first, last, 3100, "epsg", 3100, "JGD2000 / UTM zone 54N", 0, 0, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=54 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / UTM zone 54N\",GEOGCS[\"JGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Japanese_Geodetic_Datum_2000\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6612\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4612\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",141],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"3100\"]]"); p = add_epsg_def_ex (filter, first, last, 3101, "epsg", 3101, "JGD2000 / UTM zone 55N", 0, 0, "GRS 1980", "Greenwich", "Japanese_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=55 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"JGD2000 / UTM zone 55N\",GEOGCS[\"JGD2000\",DAT"); add_srs_wkt (p, 1, "UM[\"Japanese_Geodetic_Datum_2000\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6612\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4612\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cent"); add_srs_wkt (p, 9, "ral_meridian\",147],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"3101\"]]"); p = add_epsg_def_ex (filter, first, last, 3102, "epsg", 3102, "American Samoa 1962 / American Samoa Lambert", 0, 0, "Clarke 1866", "Greenwich", "American_Samoa_1962", "Lambert_Conformal_Conic_1SP", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.266666666"); add_proj4text (p, 1, "66667 +lon_0=-170 +k_0=1 +x_0=152400.3048006096 +y_0=951"); add_proj4text (p, 2, "69.31165862332 +ellps=clrk66 +towgs84=-115,118,426,0,0,0"); add_proj4text (p, 3, ",0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"American Samoa 1962 / American Samoa Lambert\","); add_srs_wkt (p, 1, "GEOGCS[\"American Samoa 1962\",DATUM[\"American_Samoa_19"); add_srs_wkt (p, 2, "62\",SPHEROID[\"Clarke 1866\",6378206.4,294.978698213898"); add_srs_wkt (p, 3, "2,AUTHORITY[\"EPSG\",\"7008\"]],TOWGS84[-115,118,426,0,0"); add_srs_wkt (p, 4, ",0,0],AUTHORITY[\"EPSG\",\"6169\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4169\"]],PROJECTION[\"Lambert_Conformal_Conic_1SP\"],PAR"); add_srs_wkt (p, 9, "AMETER[\"latitude_of_origin\",-14.26666666666667],PARAME"); add_srs_wkt (p, 10, "TER[\"central_meridian\",-170],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 11, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_northing\",312234.65],UNIT[\"US survey foot\",0.304800"); add_srs_wkt (p, 13, "6096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST"); add_srs_wkt (p, 14, "],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3102\"]]"); p = add_epsg_def_ex (filter, first, last, 3103, "epsg", 3103, "Mauritania 1999 / UTM zone 28N (deprecated)", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Mauritania_1999", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mauritania 1999 / UTM zone 28N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Mauritania 1999\",DATUM[\"Mauritania_1999\",SPHE"); add_srs_wkt (p, 2, "ROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG\",\"6681\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"4681\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-15],PARAMETER[\"scale_factor\",0.9996],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"3103\"]]"); p = add_epsg_def_ex (filter, first, last, 3104, "epsg", 3104, "Mauritania 1999 / UTM zone 29N (deprecated)", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Mauritania_1999", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mauritania 1999 / UTM zone 29N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Mauritania 1999\",DATUM[\"Mauritania_1999\",SPHE"); add_srs_wkt (p, 2, "ROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG\",\"6681\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"4681\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-9],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"3104\"]]"); p = add_epsg_def_ex (filter, first, last, 3105, "epsg", 3105, "Mauritania 1999 / UTM zone 30N (deprecated)", 0, 0, "Clarke 1880 (RGS)", "Greenwich", "Mauritania_1999", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=30 +ellps=clrk80 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Mauritania 1999 / UTM zone 30N (deprecated)\",G"); add_srs_wkt (p, 1, "EOGCS[\"Mauritania 1999\",DATUM[\"Mauritania_1999\",SPHE"); add_srs_wkt (p, 2, "ROID[\"Clarke 1880 (RGS)\",6378249.145,293.465,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7012\"]],AUTHORITY[\"EPSG\",\"6681\"]],PRIME"); add_srs_wkt (p, 4, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 5, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 6, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 7, "RITY[\"EPSG\",\"4681\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 8, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 9, "tral_meridian\",-3],PARAMETER[\"scale_factor\",0.9996],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",500000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]"); add_srs_wkt (p, 12, "],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHOR"); add_srs_wkt (p, 13, "ITY[\"EPSG\",\"3105\"]]"); p = add_epsg_def_ex (filter, first, last, 3106, "epsg", 3106, "Gulshan 303 / Bangladesh Transverse Mercator", 0, 0, "Everest 1830 (1937 Adjustment)", "Greenwich", "Gulshan_303", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +a=6377276.345 +b=6356075.413140239 +towgs84=283.7,7"); add_proj4text (p, 2, "35.9,261.1,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Gulshan 303 / Bangladesh Transverse Mercator\","); add_srs_wkt (p, 1, "GEOGCS[\"Gulshan 303\",DATUM[\"Gulshan_303\",SPHEROID[\""); add_srs_wkt (p, 2, "Everest 1830 (1937 Adjustment)\",6377276.345,300.8017,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7015\"]],TOWGS84[283.7,735.9,261.1,0,"); add_srs_wkt (p, 4, "0,0,0],AUTHORITY[\"EPSG\",\"6682\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 5, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 6, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 7, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 8, "4682\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\""); add_srs_wkt (p, 9, "latitude_of_origin\",0],PARAMETER[\"central_meridian\",9"); add_srs_wkt (p, 10, "0],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_"); add_srs_wkt (p, 11, "easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 12, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"310"); add_srs_wkt (p, 14, "6\"]]"); p = add_epsg_def_ex (filter, first, last, 3107, "epsg", 3107, "GDA94 / SA Lambert", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-28 +lat_2=-36 +lat_0=-32 +lon_0=135 +x"); add_proj4text (p, 1, "_0=1000000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / SA Lambert\",GEOGCS[\"GDA94\",DATUM[\"G"); add_srs_wkt (p, 1, "eocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4283\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",-28],PARAM"); add_srs_wkt (p, 9, "ETER[\"standard_parallel_2\",-36],PARAMETER[\"latitude_o"); add_srs_wkt (p, 10, "f_origin\",-32],PARAMETER[\"central_meridian\",135],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",1000000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",2000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 14, "THORITY[\"EPSG\",\"3107\"]]"); p = add_epsg_def_ex (filter, first, last, 3108, "epsg", 3108, "ETRS89 / Guernsey Grid", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=49.5 +lon_0=-2.416666666666667 +k=0.9"); add_proj4text (p, 1, "99997 +x_0=47000 +y_0=50000 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Guernsey Grid\",GEOGCS[\"ETRS89\",DATU"); add_srs_wkt (p, 1, "M[\"European_Terrestrial_Reference_System_1989\",SPHEROI"); add_srs_wkt (p, 2, "D[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6"); add_srs_wkt (p, 4, "258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901"); add_srs_wkt (p, 5, "\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG"); add_srs_wkt (p, 6, "\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\""); add_srs_wkt (p, 7, ",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transv"); add_srs_wkt (p, 8, "erse_Mercator\"],PARAMETER[\"latitude_of_origin\",49.5],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",-2.416666666666667],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",0.999997],PARAMETER[\"false_eastin"); add_srs_wkt (p, 11, "g\",47000],PARAMETER[\"false_northing\",50000],UNIT[\"me"); add_srs_wkt (p, 12, "tre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",E"); add_srs_wkt (p, 13, "AST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"3108\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3109, "epsg", 3109, "ETRS89 / Jersey Transverse Mercator", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=49.225 +lon_0=-2.135 +k=0.99999990000"); add_proj4text (p, 1, "00001 +x_0=40000 +y_0=70000 +ellps=GRS80 +towgs84=0,0,0,"); add_proj4text (p, 2, "0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / Jersey Transverse Mercator\",GEOGCS[\""); add_srs_wkt (p, 1, "ETRS89\",DATUM[\"European_Terrestrial_Reference_System_1"); add_srs_wkt (p, 2, "989\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",49.225],PARAMETER[\"central_meridian\",-2.135],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",0.9999999],PARAMETER[\"false_e"); add_srs_wkt (p, 11, "asting\",40000],PARAMETER[\"false_northing\",70000],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 13, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "3109\"]]"); p = add_epsg_def_ex (filter, first, last, 3110, "epsg", 3110, "AGD66 / Vicgrid66", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1966", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-36 +lat_2=-38 +lat_0=-37 +lon_0=145 +x"); add_proj4text (p, 1, "_0=2500000 +y_0=4500000 +ellps=aust_SA +towgs84=-117.808"); add_proj4text (p, 2, ",-51.536,137.784,0.303,0.446,0.234,-0.29 +units=m +no_de"); add_proj4text (p, 3, "fs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / Vicgrid66\",GEOGCS[\"AGD66\",DATUM[\"Au"); add_srs_wkt (p, 1, "stralian_Geodetic_Datum_1966\",SPHEROID[\"Australian Nat"); add_srs_wkt (p, 2, "ional Spheroid\",6378160,298.25,AUTHORITY[\"EPSG\",\"700"); add_srs_wkt (p, 3, "3\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.446,0.234"); add_srs_wkt (p, 4, ",-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 5, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 6, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 7, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 8, ",\"4202\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 9, "PARAMETER[\"standard_parallel_1\",-36],PARAMETER[\"stand"); add_srs_wkt (p, 10, "ard_parallel_2\",-38],PARAMETER[\"latitude_of_origin\",-"); add_srs_wkt (p, 11, "37],PARAMETER[\"central_meridian\",145],PARAMETER[\"fals"); add_srs_wkt (p, 12, "e_easting\",2500000],PARAMETER[\"false_northing\",450000"); add_srs_wkt (p, 13, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPS"); add_srs_wkt (p, 15, "G\",\"3110\"]]"); p = add_epsg_def_ex (filter, first, last, 3111, "epsg", 3111, "GDA94 / Vicgrid94", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-36 +lat_2=-38 +lat_0=-37 +lon_0=145 +x"); add_proj4text (p, 1, "_0=2500000 +y_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / Vicgrid94\",GEOGCS[\"GDA94\",DATUM[\"Ge"); add_srs_wkt (p, 1, "ocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"4283\"]],PROJECTION[\"Lambert_Conformal_C"); add_srs_wkt (p, 8, "onic_2SP\"],PARAMETER[\"standard_parallel_1\",-36],PARAM"); add_srs_wkt (p, 9, "ETER[\"standard_parallel_2\",-38],PARAMETER[\"latitude_o"); add_srs_wkt (p, 10, "f_origin\",-37],PARAMETER[\"central_meridian\",145],PARA"); add_srs_wkt (p, 11, "METER[\"false_easting\",2500000],PARAMETER[\"false_north"); add_srs_wkt (p, 12, "ing\",2500000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 13, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 14, "THORITY[\"EPSG\",\"3111\"]]"); p = add_epsg_def_ex (filter, first, last, 3112, "epsg", 3112, "GDA94 / Geoscience Australia Lambert", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=-18 +lat_2=-36 +lat_0=0 +lon_0=134 +x_0"); add_proj4text (p, 1, "=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +"); add_proj4text (p, 2, "no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / Geoscience Australia Lambert\",GEOGCS[\""); add_srs_wkt (p, 1, "GDA94\",DATUM[\"Geocentric_Datum_of_Australia_1994\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6283\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"L"); add_srs_wkt (p, 8, "ambert_Conformal_Conic_2SP\"],PARAMETER[\"standard_paral"); add_srs_wkt (p, 9, "lel_1\",-18],PARAMETER[\"standard_parallel_2\",-36],PARA"); add_srs_wkt (p, 10, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 11, "dian\",134],PARAMETER[\"false_easting\",0],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"3112\"]]"); p = add_epsg_def_ex (filter, first, last, 3113, "epsg", 3113, "GDA94 / BCSG02", 0, 0, "GRS 1980", "Greenwich", "Geocentric_Datum_of_Australia_1994", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-28 +lon_0=153 +k=0.99999 +x_0=50000 "); add_proj4text (p, 1, "+y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"GDA94 / BCSG02\",GEOGCS[\"GDA94\",DATUM[\"Geoce"); add_srs_wkt (p, 1, "ntric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",-28],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",153],PARAMETER[\"scale_factor\",0.99999],P"); add_srs_wkt (p, 10, "ARAMETER[\"false_easting\",50000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",100000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"900"); add_srs_wkt (p, 12, "1\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AU"); add_srs_wkt (p, 13, "THORITY[\"EPSG\",\"3113\"]]"); p = add_epsg_def_ex (filter, first, last, 3114, "epsg", 3114, "MAGNA-SIRGAS / Colombia Far West zone", 0, 1, "GRS 1980", "Greenwich", "Marco_Geocentrico_Nacional_de_Referencia", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-80.07750791"); add_proj4text (p, 1, "666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towg"); add_proj4text (p, 2, "s84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MAGNA-SIRGAS / Colombia Far West zone\",GEOGCS["); add_srs_wkt (p, 1, "\"MAGNA-SIRGAS\",DATUM[\"Marco_Geocentrico_Nacional_de_R"); add_srs_wkt (p, 2, "eferencia\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 3, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6686\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4686\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",4.596200416666666],PARAMETER[\"central_mer"); add_srs_wkt (p, 10, "idian\",-80.07750791666666],PARAMETER[\"scale_factor\",1"); add_srs_wkt (p, 11, "],PARAMETER[\"false_easting\",1000000],PARAMETER[\"false"); add_srs_wkt (p, 12, "_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EA"); add_srs_wkt (p, 14, "ST],AUTHORITY[\"EPSG\",\"3114\"]]"); p = add_epsg_def_ex (filter, first, last, 3115, "epsg", 3115, "MAGNA-SIRGAS / Colombia West zone", 0, 1, "GRS 1980", "Greenwich", "Marco_Geocentrico_Nacional_de_Referencia", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-77.07750791"); add_proj4text (p, 1, "666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towg"); add_proj4text (p, 2, "s84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MAGNA-SIRGAS / Colombia West zone\",GEOGCS[\"MA"); add_srs_wkt (p, 1, "GNA-SIRGAS\",DATUM[\"Marco_Geocentrico_Nacional_de_Refer"); add_srs_wkt (p, 2, "encia\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6686\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4686\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 9, "_origin\",4.596200416666666],PARAMETER[\"central_meridia"); add_srs_wkt (p, 10, "n\",-77.07750791666666],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",1000000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"3115\"]]"); p = add_epsg_def_ex (filter, first, last, 3116, "epsg", 3116, "MAGNA-SIRGAS / Colombia Bogota zone", 0, 1, "GRS 1980", "Greenwich", "Marco_Geocentrico_Nacional_de_Referencia", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-74.07750791"); add_proj4text (p, 1, "666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towg"); add_proj4text (p, 2, "s84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MAGNA-SIRGAS / Colombia Bogota zone\",GEOGCS[\""); add_srs_wkt (p, 1, "MAGNA-SIRGAS\",DATUM[\"Marco_Geocentrico_Nacional_de_Ref"); add_srs_wkt (p, 2, "erencia\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AU"); add_srs_wkt (p, 3, "THORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHO"); add_srs_wkt (p, 4, "RITY[\"EPSG\",\"6686\"]],PRIMEM[\"Greenwich\",0,AUTHORIT"); add_srs_wkt (p, 5, "Y[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433"); add_srs_wkt (p, 6, ",AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],"); add_srs_wkt (p, 7, "AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4686\"]],P"); add_srs_wkt (p, 8, "ROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_"); add_srs_wkt (p, 9, "of_origin\",4.596200416666666],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",-74.07750791666666],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 11, "PARAMETER[\"false_easting\",1000000],PARAMETER[\"false_n"); add_srs_wkt (p, 12, "orthing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST]"); add_srs_wkt (p, 14, ",AUTHORITY[\"EPSG\",\"3116\"]]"); p = add_epsg_def_ex (filter, first, last, 3117, "epsg", 3117, "MAGNA-SIRGAS / Colombia East Central zone", 0, 1, "GRS 1980", "Greenwich", "Marco_Geocentrico_Nacional_de_Referencia", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-71.07750791"); add_proj4text (p, 1, "666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towg"); add_proj4text (p, 2, "s84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MAGNA-SIRGAS / Colombia East Central zone\",GEO"); add_srs_wkt (p, 1, "GCS[\"MAGNA-SIRGAS\",DATUM[\"Marco_Geocentrico_Nacional_"); add_srs_wkt (p, 2, "de_Referencia\",SPHEROID[\"GRS 1980\",6378137,298.257222"); add_srs_wkt (p, 3, "101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0]"); add_srs_wkt (p, 4, ",AUTHORITY[\"EPSG\",\"6686\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 5, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 6, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 7, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4686"); add_srs_wkt (p, 8, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",4.596200416666666],PARAMETER[\"central"); add_srs_wkt (p, 10, "_meridian\",-71.07750791666666],PARAMETER[\"scale_factor"); add_srs_wkt (p, 11, "\",1],PARAMETER[\"false_easting\",1000000],PARAMETER[\"f"); add_srs_wkt (p, 12, "alse_northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); add_srs_wkt (p, 14, ",EAST],AUTHORITY[\"EPSG\",\"3117\"]]"); p = add_epsg_def_ex (filter, first, last, 3118, "epsg", 3118, "MAGNA-SIRGAS / Colombia East zone", 0, 1, "GRS 1980", "Greenwich", "Marco_Geocentrico_Nacional_de_Referencia", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-68.07750791"); add_proj4text (p, 1, "666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towg"); add_proj4text (p, 2, "s84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"MAGNA-SIRGAS / Colombia East zone\",GEOGCS[\"MA"); add_srs_wkt (p, 1, "GNA-SIRGAS\",DATUM[\"Marco_Geocentrico_Nacional_de_Refer"); add_srs_wkt (p, 2, "encia\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTH"); add_srs_wkt (p, 3, "ORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORI"); add_srs_wkt (p, 4, "TY[\"EPSG\",\"6686\"]],PRIMEM[\"Greenwich\",0,AUTHORITY["); add_srs_wkt (p, 5, "\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,A"); add_srs_wkt (p, 6, "UTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AX"); add_srs_wkt (p, 7, "IS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4686\"]],PRO"); add_srs_wkt (p, 8, "JECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of"); add_srs_wkt (p, 9, "_origin\",4.596200416666666],PARAMETER[\"central_meridia"); add_srs_wkt (p, 10, "n\",-68.07750791666666],PARAMETER[\"scale_factor\",1],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_easting\",1000000],PARAMETER[\"false_nor"); add_srs_wkt (p, 12, "thing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"3118\"]]"); p = add_epsg_def_ex (filter, first, last, 3119, "epsg", 3119, "Douala 1948 / AEF west", 0, 0, "International 1924", "Greenwich", "Douala_1948", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=10.5 +k=0.999 +x_0=1000000 +"); add_proj4text (p, 1, "y_0=1000000 +ellps=intl +towgs84=-206.1,-174.7,-87.7,0,0"); add_proj4text (p, 2, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Douala 1948 / AEF west\",GEOGCS[\"Douala 1948\""); add_srs_wkt (p, 1, ",DATUM[\"Douala_1948\",SPHEROID[\"International 1924\",6"); add_srs_wkt (p, 2, "378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-206.1,"); add_srs_wkt (p, 3, "-174.7,-87.7,0,0,0,0],AUTHORITY[\"EPSG\",\"6192\"]],PRIM"); add_srs_wkt (p, 4, "EM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4192\"]],PROJECTION[\"Transverse_Mercat"); add_srs_wkt (p, 8, "or\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"ce"); add_srs_wkt (p, 9, "ntral_meridian\",10.5],PARAMETER[\"scale_factor\",0.999]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",1000000],PARAMETER[\"false_"); add_srs_wkt (p, 11, "northing\",1000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"3119\"]]"); p = add_epsg_def_ex (filter, first, last, 3120, "epsg", 3120, "Pulkovo 1942(58) / Poland zone I", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Oblique_Stereographic", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=sterea +lat_0=50.625 +lon_0=21.08333333333333 +k=0"); add_proj4text (p, 1, ".9998 +x_0=4637000 +y_0=5467000 +ellps=krass +towgs84=33"); add_proj4text (p, 2, ".4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_d"); add_proj4text (p, 3, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Poland zone I\",GEOGCS[\"Pul"); add_srs_wkt (p, 1, "kovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SPHEROID[\"Kra"); add_srs_wkt (p, 2, "ssowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\""); add_srs_wkt (p, 3, "]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84],"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Greenwich\",0,AUT"); add_srs_wkt (p, 5, "HORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251"); add_srs_wkt (p, 6, "99433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NO"); add_srs_wkt (p, 7, "RTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4179\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"lat"); add_srs_wkt (p, 9, "itude_of_origin\",50.625],PARAMETER[\"central_meridian\""); add_srs_wkt (p, 10, ",21.08333333333333],PARAMETER[\"scale_factor\",0.9998],P"); add_srs_wkt (p, 11, "ARAMETER[\"false_easting\",4637000],PARAMETER[\"false_no"); add_srs_wkt (p, 12, "rthing\",5467000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"3120\"]]"); p = add_epsg_def_ex (filter, first, last, 3121, "epsg", 3121, "PRS92 / Philippines zone 1", 0, 0, "Clarke 1866", "Greenwich", "Philippine_Reference_System_1992", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.06"); add_proj4text (p, 2, "8,4.903,1.578,-1.06 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PRS92 / Philippines zone 1\",GEOGCS[\"PRS92\",D"); add_srs_wkt (p, 1, "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1"); add_srs_wkt (p, 4, ".578,-1.06],AUTHORITY[\"EPSG\",\"6683\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4683\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 10, "dian\",117],PARAMETER[\"scale_factor\",0.99995],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3121\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3122, "epsg", 3122, "PRS92 / Philippines zone 2", 0, 0, "Clarke 1866", "Greenwich", "Philippine_Reference_System_1992", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=119 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.06"); add_proj4text (p, 2, "8,4.903,1.578,-1.06 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PRS92 / Philippines zone 2\",GEOGCS[\"PRS92\",D"); add_srs_wkt (p, 1, "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1"); add_srs_wkt (p, 4, ".578,-1.06],AUTHORITY[\"EPSG\",\"6683\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4683\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 10, "dian\",119],PARAMETER[\"scale_factor\",0.99995],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3122\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3123, "epsg", 3123, "PRS92 / Philippines zone 3", 0, 0, "Clarke 1866", "Greenwich", "Philippine_Reference_System_1992", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=121 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.06"); add_proj4text (p, 2, "8,4.903,1.578,-1.06 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PRS92 / Philippines zone 3\",GEOGCS[\"PRS92\",D"); add_srs_wkt (p, 1, "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1"); add_srs_wkt (p, 4, ".578,-1.06],AUTHORITY[\"EPSG\",\"6683\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4683\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 10, "dian\",121],PARAMETER[\"scale_factor\",0.99995],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3123\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3124, "epsg", 3124, "PRS92 / Philippines zone 4", 0, 0, "Clarke 1866", "Greenwich", "Philippine_Reference_System_1992", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.06"); add_proj4text (p, 2, "8,4.903,1.578,-1.06 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PRS92 / Philippines zone 4\",GEOGCS[\"PRS92\",D"); add_srs_wkt (p, 1, "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1"); add_srs_wkt (p, 4, ".578,-1.06],AUTHORITY[\"EPSG\",\"6683\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4683\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 10, "dian\",123],PARAMETER[\"scale_factor\",0.99995],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3124\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3125, "epsg", 3125, "PRS92 / Philippines zone 5", 0, 0, "Clarke 1866", "Greenwich", "Philippine_Reference_System_1992", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=125 +k=0.99995 +x_0=500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.06"); add_proj4text (p, 2, "8,4.903,1.578,-1.06 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PRS92 / Philippines zone 5\",GEOGCS[\"PRS92\",D"); add_srs_wkt (p, 1, "ATUM[\"Philippine_Reference_System_1992\",SPHEROID[\"Cla"); add_srs_wkt (p, 2, "rke 1866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7008\"]],TOWGS84[-127.62,-67.24,-47.04,-3.068,4.903,1"); add_srs_wkt (p, 4, ".578,-1.06],AUTHORITY[\"EPSG\",\"6683\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4683\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 10, "dian\",125],PARAMETER[\"scale_factor\",0.99995],PARAMETE"); add_srs_wkt (p, 11, "R[\"false_easting\",500000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 13, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"3125\""); add_srs_wkt (p, 14, "]]"); p = add_epsg_def_ex (filter, first, last, 3126, "epsg", 3126, "ETRS89 / ETRS-GK19FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=19 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK19FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",19],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3126\"]]"); p = add_epsg_def_ex (filter, first, last, 3127, "epsg", 3127, "ETRS89 / ETRS-GK20FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=20 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK20FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",20],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3127\"]]"); p = add_epsg_def_ex (filter, first, last, 3128, "epsg", 3128, "ETRS89 / ETRS-GK21FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK21FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",21],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3128\"]]"); p = add_epsg_def_ex (filter, first, last, 3129, "epsg", 3129, "ETRS89 / ETRS-GK22FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=22 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK22FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",22],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3129\"]]"); p = add_epsg_def_ex (filter, first, last, 3130, "epsg", 3130, "ETRS89 / ETRS-GK23FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=23 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK23FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",23],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3130\"]]"); p = add_epsg_def_ex (filter, first, last, 3131, "epsg", 3131, "ETRS89 / ETRS-GK24FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK24FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",24],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3131\"]]"); p = add_epsg_def_ex (filter, first, last, 3132, "epsg", 3132, "ETRS89 / ETRS-GK25FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=25 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK25FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",25],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3132\"]]"); p = add_epsg_def_ex (filter, first, last, 3133, "epsg", 3133, "ETRS89 / ETRS-GK26FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=26 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK26FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",26],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3133\"]]"); p = add_epsg_def_ex (filter, first, last, 3134, "epsg", 3134, "ETRS89 / ETRS-GK27FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK27FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",27],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3134\"]]"); p = add_epsg_def_ex (filter, first, last, 3135, "epsg", 3135, "ETRS89 / ETRS-GK28FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK28FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",28],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3135\"]]"); p = add_epsg_def_ex (filter, first, last, 3136, "epsg", 3136, "ETRS89 / ETRS-GK29FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=29 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK29FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",29],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3136\"]]"); p = add_epsg_def_ex (filter, first, last, 3137, "epsg", 3137, "ETRS89 / ETRS-GK30FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK30FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",30],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3137\"]]"); p = add_epsg_def_ex (filter, first, last, 3138, "epsg", 3138, "ETRS89 / ETRS-GK31FIN", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / ETRS-GK31FIN\",GEOGCS[\"ETRS89\",DATUM"); add_srs_wkt (p, 1, "[\"European_Terrestrial_Reference_System_1989\",SPHEROID"); add_srs_wkt (p, 2, "[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"625"); add_srs_wkt (p, 4, "8\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",31],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 12, "01\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"3138\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_wgs84_00.c��������������������������������������������0000664�0001750�0001750�00000455232�12544707704�020076� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> SPATIALITE_PRIVATE void initialize_epsg_wgs84_00 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list [WGS84] */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 4326, "epsg", 4326, "WGS 84", 1, 1, "WGS 84", "Greenwich", "WGS_1984", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +datum=WGS84 +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\""); add_srs_wkt (p, 1, ",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUT"); add_srs_wkt (p, 2, "HORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 4, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 5, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]]"); p = add_epsg_def_ex (filter, first, last, 32601, "epsg", 32601, "WGS 84 / UTM zone 1N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=1 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 1N\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-177],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32601\"]]"); p = add_epsg_def_ex (filter, first, last, 32602, "epsg", 32602, "WGS 84 / UTM zone 2N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=2 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 2N\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-171],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32602\"]]"); p = add_epsg_def_ex (filter, first, last, 32603, "epsg", 32603, "WGS 84 / UTM zone 3N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=3 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 3N\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-165],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32603\"]]"); p = add_epsg_def_ex (filter, first, last, 32604, "epsg", 32604, "WGS 84 / UTM zone 4N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=4 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 4N\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-159],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32604\"]]"); p = add_epsg_def_ex (filter, first, last, 32605, "epsg", 32605, "WGS 84 / UTM zone 5N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=5 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 5N\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-153],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32605\"]]"); p = add_epsg_def_ex (filter, first, last, 32606, "epsg", 32606, "WGS 84 / UTM zone 6N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=6 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 6N\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-147],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32606\"]]"); p = add_epsg_def_ex (filter, first, last, 32607, "epsg", 32607, "WGS 84 / UTM zone 7N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=7 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 7N\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-141],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32607\"]]"); p = add_epsg_def_ex (filter, first, last, 32608, "epsg", 32608, "WGS 84 / UTM zone 8N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=8 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 8N\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-135],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32608\"]]"); p = add_epsg_def_ex (filter, first, last, 32609, "epsg", 32609, "WGS 84 / UTM zone 9N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=9 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 9N\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-129],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32609\"]]"); p = add_epsg_def_ex (filter, first, last, 32610, "epsg", 32610, "WGS 84 / UTM zone 10N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=10 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 10N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-123],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32610\"]]"); p = add_epsg_def_ex (filter, first, last, 32611, "epsg", 32611, "WGS 84 / UTM zone 11N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=11 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 11N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-117],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32611\"]]"); p = add_epsg_def_ex (filter, first, last, 32612, "epsg", 32612, "WGS 84 / UTM zone 12N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=12 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 12N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-111],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32612\"]]"); p = add_epsg_def_ex (filter, first, last, 32613, "epsg", 32613, "WGS 84 / UTM zone 13N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=13 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 13N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-105],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32613\"]]"); p = add_epsg_def_ex (filter, first, last, 32614, "epsg", 32614, "WGS 84 / UTM zone 14N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=14 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 14N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-99],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32614\"]]"); p = add_epsg_def_ex (filter, first, last, 32615, "epsg", 32615, "WGS 84 / UTM zone 15N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=15 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 15N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-93],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32615\"]]"); p = add_epsg_def_ex (filter, first, last, 32616, "epsg", 32616, "WGS 84 / UTM zone 16N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=16 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 16N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-87],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32616\"]]"); p = add_epsg_def_ex (filter, first, last, 32617, "epsg", 32617, "WGS 84 / UTM zone 17N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 17N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-81],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32617\"]]"); p = add_epsg_def_ex (filter, first, last, 32618, "epsg", 32618, "WGS 84 / UTM zone 18N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 18N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-75],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32618\"]]"); p = add_epsg_def_ex (filter, first, last, 32619, "epsg", 32619, "WGS 84 / UTM zone 19N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 19N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-69],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32619\"]]"); p = add_epsg_def_ex (filter, first, last, 32620, "epsg", 32620, "WGS 84 / UTM zone 20N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 20N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-63],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32620\"]]"); p = add_epsg_def_ex (filter, first, last, 32621, "epsg", 32621, "WGS 84 / UTM zone 21N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 21N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-57],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32621\"]]"); p = add_epsg_def_ex (filter, first, last, 32622, "epsg", 32622, "WGS 84 / UTM zone 22N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 22N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-51],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32622\"]]"); p = add_epsg_def_ex (filter, first, last, 32623, "epsg", 32623, "WGS 84 / UTM zone 23N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 23N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-45],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32623\"]]"); p = add_epsg_def_ex (filter, first, last, 32624, "epsg", 32624, "WGS 84 / UTM zone 24N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=24 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 24N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-39],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32624\"]]"); p = add_epsg_def_ex (filter, first, last, 32625, "epsg", 32625, "WGS 84 / UTM zone 25N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=25 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 25N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-33],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32625\"]]"); p = add_epsg_def_ex (filter, first, last, 32626, "epsg", 32626, "WGS 84 / UTM zone 26N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=26 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 26N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-27],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32626\"]]"); p = add_epsg_def_ex (filter, first, last, 32627, "epsg", 32627, "WGS 84 / UTM zone 27N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=27 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 27N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-21],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32627\"]]"); p = add_epsg_def_ex (filter, first, last, 32628, "epsg", 32628, "WGS 84 / UTM zone 28N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 28N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-15],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32628\"]]"); p = add_epsg_def_ex (filter, first, last, 32629, "epsg", 32629, "WGS 84 / UTM zone 29N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 29N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-9],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32629\"]]"); p = add_epsg_def_ex (filter, first, last, 32630, "epsg", 32630, "WGS 84 / UTM zone 30N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=30 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 30N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-3],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32630\"]]"); p = add_epsg_def_ex (filter, first, last, 32631, "epsg", 32631, "WGS 84 / UTM zone 31N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=31 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 31N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",3],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32631\"]]"); p = add_epsg_def_ex (filter, first, last, 32632, "epsg", 32632, "WGS 84 / UTM zone 32N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 32N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",9],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32632\"]]"); p = add_epsg_def_ex (filter, first, last, 32633, "epsg", 32633, "WGS 84 / UTM zone 33N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 33N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",15],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32633\"]]"); p = add_epsg_def_ex (filter, first, last, 32634, "epsg", 32634, "WGS 84 / UTM zone 34N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=34 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 34N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",21],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32634\"]]"); p = add_epsg_def_ex (filter, first, last, 32635, "epsg", 32635, "WGS 84 / UTM zone 35N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=35 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 35N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",27],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32635\"]]"); p = add_epsg_def_ex (filter, first, last, 32636, "epsg", 32636, "WGS 84 / UTM zone 36N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=36 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 36N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",33],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32636\"]]"); p = add_epsg_def_ex (filter, first, last, 32637, "epsg", 32637, "WGS 84 / UTM zone 37N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 37N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",39],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32637\"]]"); p = add_epsg_def_ex (filter, first, last, 32638, "epsg", 32638, "WGS 84 / UTM zone 38N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 38N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",45],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32638\"]]"); p = add_epsg_def_ex (filter, first, last, 32639, "epsg", 32639, "WGS 84 / UTM zone 39N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 39N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",51],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32639\"]]"); p = add_epsg_def_ex (filter, first, last, 32640, "epsg", 32640, "WGS 84 / UTM zone 40N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=40 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 40N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",57],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32640\"]]"); p = add_epsg_def_ex (filter, first, last, 32641, "epsg", 32641, "WGS 84 / UTM zone 41N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=41 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 41N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",63],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32641\"]]"); p = add_epsg_def_ex (filter, first, last, 32642, "epsg", 32642, "WGS 84 / UTM zone 42N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=42 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 42N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",69],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32642\"]]"); p = add_epsg_def_ex (filter, first, last, 32643, "epsg", 32643, "WGS 84 / UTM zone 43N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=43 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 43N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",75],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32643\"]]"); p = add_epsg_def_ex (filter, first, last, 32644, "epsg", 32644, "WGS 84 / UTM zone 44N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=44 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 44N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",81],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32644\"]]"); p = add_epsg_def_ex (filter, first, last, 32645, "epsg", 32645, "WGS 84 / UTM zone 45N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=45 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 45N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",87],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32645\"]]"); p = add_epsg_def_ex (filter, first, last, 32646, "epsg", 32646, "WGS 84 / UTM zone 46N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=46 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 46N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",93],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32646\"]]"); p = add_epsg_def_ex (filter, first, last, 32647, "epsg", 32647, "WGS 84 / UTM zone 47N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=47 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 47N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",99],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 11, "9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH]"); add_srs_wkt (p, 12, ",AUTHORITY[\"EPSG\",\"32647\"]]"); p = add_epsg_def_ex (filter, first, last, 32648, "epsg", 32648, "WGS 84 / UTM zone 48N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=48 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 48N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",105],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32648\"]]"); p = add_epsg_def_ex (filter, first, last, 32649, "epsg", 32649, "WGS 84 / UTM zone 49N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=49 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 49N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",111],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32649\"]]"); p = add_epsg_def_ex (filter, first, last, 32650, "epsg", 32650, "WGS 84 / UTM zone 50N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=50 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 50N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",117],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32650\"]]"); p = add_epsg_def_ex (filter, first, last, 32651, "epsg", 32651, "WGS 84 / UTM zone 51N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=51 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 51N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",123],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32651\"]]"); p = add_epsg_def_ex (filter, first, last, 32652, "epsg", 32652, "WGS 84 / UTM zone 52N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=52 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 52N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",129],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32652\"]]"); p = add_epsg_def_ex (filter, first, last, 32653, "epsg", 32653, "WGS 84 / UTM zone 53N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=53 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 53N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",135],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32653\"]]"); p = add_epsg_def_ex (filter, first, last, 32654, "epsg", 32654, "WGS 84 / UTM zone 54N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=54 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 54N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",141],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32654\"]]"); p = add_epsg_def_ex (filter, first, last, 32655, "epsg", 32655, "WGS 84 / UTM zone 55N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=55 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 55N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",147],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32655\"]]"); p = add_epsg_def_ex (filter, first, last, 32656, "epsg", 32656, "WGS 84 / UTM zone 56N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=56 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 56N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",153],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32656\"]]"); p = add_epsg_def_ex (filter, first, last, 32657, "epsg", 32657, "WGS 84 / UTM zone 57N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=57 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 57N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",159],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32657\"]]"); p = add_epsg_def_ex (filter, first, last, 32658, "epsg", 32658, "WGS 84 / UTM zone 58N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=58 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 58N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",165],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32658\"]]"); p = add_epsg_def_ex (filter, first, last, 32659, "epsg", 32659, "WGS 84 / UTM zone 59N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=59 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 59N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",171],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32659\"]]"); p = add_epsg_def_ex (filter, first, last, 32660, "epsg", 32660, "WGS 84 / UTM zone 60N", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=60 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 60N\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",177],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 11, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 12, "H],AUTHORITY[\"EPSG\",\"32660\"]]"); p = add_epsg_def_ex (filter, first, last, 32661, "epsg", 32661, "WGS 84 / UPS North (N,E)", 0, 1, "WGS 84", "Greenwich", "WGS_1984", "Polar_Stereographic", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=0 +k=0.994 +x_0="); add_proj4text (p, 1, "2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UPS North (N,E)\",GEOGCS[\"WGS 84\",DA"); add_srs_wkt (p, 1, "TUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.2572235"); add_srs_wkt (p, 2, "63,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"63"); add_srs_wkt (p, 3, "26\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Polar_S"); add_srs_wkt (p, 7, "tereographic\"],PARAMETER[\"latitude_of_origin\",90],PAR"); add_srs_wkt (p, 8, "AMETER[\"central_meridian\",0],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.994],PARAMETER[\"false_easting\",2000000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",2000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"32661\"]]"); p = add_epsg_def_ex (filter, first, last, 32662, "epsg", 32662, "WGS 84 / Plate Carree (deprecated)", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Equirectangular", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +dat"); add_proj4text (p, 1, "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / Plate Carree (deprecated)\",GEOGCS[\"W"); add_srs_wkt (p, 1, "GS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,2"); add_srs_wkt (p, 2, "98.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORI"); add_srs_wkt (p, 5, "TY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"L"); add_srs_wkt (p, 6, "ongitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTIO"); add_srs_wkt (p, 7, "N[\"Equirectangular\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 8, "0],PARAMETER[\"central_meridian\",0],PARAMETER[\"false_e"); add_srs_wkt (p, 9, "asting\",0],PARAMETER[\"false_northing\",0],UNIT[\"metre"); add_srs_wkt (p, 10, "\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS"); add_srs_wkt (p, 11, "[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32662\"]]"); p = add_epsg_def_ex (filter, first, last, 32663, "epsg", 32663, "WGS 84 / World Equidistant Cylindrical (deprecated)", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Equirectangular", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +dat"); add_proj4text (p, 1, "um=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / World Equidistant Cylindrical (depreca"); add_srs_wkt (p, 1, "ted)\",GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"W"); add_srs_wkt (p, 2, "GS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\""); add_srs_wkt (p, 3, "]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,"); add_srs_wkt (p, 4, "AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329"); add_srs_wkt (p, 5, "25199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 6, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"43"); add_srs_wkt (p, 7, "26\"]],PROJECTION[\"Equirectangular\"],PARAMETER[\"latit"); add_srs_wkt (p, 8, "ude_of_origin\",0],PARAMETER[\"central_meridian\",0],PAR"); add_srs_wkt (p, 9, "AMETER[\"false_easting\",0],PARAMETER[\"false_northing\""); add_srs_wkt (p, 10, ",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS["); add_srs_wkt (p, 11, "\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32663"); add_srs_wkt (p, 12, "\"]]"); p = add_epsg_def_ex (filter, first, last, 32664, "epsg", 32664, "WGS 84 / BLM 14N (ftUS)", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=WGS84 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / BLM 14N (ftUS)\",GEOGCS[\"WGS 84\",DAT"); add_srs_wkt (p, 1, "UM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.25722356"); add_srs_wkt (p, 2, "3,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"632"); add_srs_wkt (p, 3, "6\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",-99],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",1640416.67],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 11, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32664\"]]"); p = add_epsg_def_ex (filter, first, last, 32665, "epsg", 32665, "WGS 84 / BLM 15N (ftUS)", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=WGS84 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / BLM 15N (ftUS)\",GEOGCS[\"WGS 84\",DAT"); add_srs_wkt (p, 1, "UM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.25722356"); add_srs_wkt (p, 2, "3,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"632"); add_srs_wkt (p, 3, "6\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",-93],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",1640416.67],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 11, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32665\"]]"); p = add_epsg_def_ex (filter, first, last, 32666, "epsg", 32666, "WGS 84 / BLM 16N (ftUS)", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=WGS84 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / BLM 16N (ftUS)\",GEOGCS[\"WGS 84\",DAT"); add_srs_wkt (p, 1, "UM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.25722356"); add_srs_wkt (p, 2, "3,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"632"); add_srs_wkt (p, 3, "6\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",-87],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",1640416.67],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 11, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32666\"]]"); p = add_epsg_def_ex (filter, first, last, 32667, "epsg", 32667, "WGS 84 / BLM 17N (ftUS)", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.00"); add_proj4text (p, 1, "1016002 +y_0=0 +datum=WGS84 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / BLM 17N (ftUS)\",GEOGCS[\"WGS 84\",DAT"); add_srs_wkt (p, 1, "UM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.25722356"); add_srs_wkt (p, 2, "3,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"632"); add_srs_wkt (p, 3, "6\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 4, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 5, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 6, "EAST],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 7, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 8, "METER[\"central_meridian\",-81],PARAMETER[\"scale_factor"); add_srs_wkt (p, 9, "\",0.9996],PARAMETER[\"false_easting\",1640416.67],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_northing\",0],UNIT[\"US survey foot\",0.304"); add_srs_wkt (p, 11, "8006096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",E"); add_srs_wkt (p, 12, "AST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"32667\"]]"); p = add_epsg_def_ex (filter, first, last, 32701, "epsg", 32701, "WGS 84 / UTM zone 1S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=1 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 1S\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-177],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32701\"]]"); p = add_epsg_def_ex (filter, first, last, 32702, "epsg", 32702, "WGS 84 / UTM zone 2S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=2 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 2S\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-171],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32702\"]]"); p = add_epsg_def_ex (filter, first, last, 32703, "epsg", 32703, "WGS 84 / UTM zone 3S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=3 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 3S\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-165],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32703\"]]"); p = add_epsg_def_ex (filter, first, last, 32704, "epsg", 32704, "WGS 84 / UTM zone 4S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=4 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 4S\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-159],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32704\"]]"); p = add_epsg_def_ex (filter, first, last, 32705, "epsg", 32705, "WGS 84 / UTM zone 5S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=5 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 5S\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-153],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32705\"]]"); p = add_epsg_def_ex (filter, first, last, 32706, "epsg", 32706, "WGS 84 / UTM zone 6S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=6 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 6S\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-147],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32706\"]]"); p = add_epsg_def_ex (filter, first, last, 32707, "epsg", 32707, "WGS 84 / UTM zone 7S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=7 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 7S\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-141],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32707\"]]"); p = add_epsg_def_ex (filter, first, last, 32708, "epsg", 32708, "WGS 84 / UTM zone 8S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=8 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 8S\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-135],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32708\"]]"); p = add_epsg_def_ex (filter, first, last, 32709, "epsg", 32709, "WGS 84 / UTM zone 9S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=9 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 9S\",GEOGCS[\"WGS 84\",DATUM["); add_srs_wkt (p, 1, "\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,A"); add_srs_wkt (p, 2, "UTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-129],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32709\"]]"); p = add_epsg_def_ex (filter, first, last, 32710, "epsg", 32710, "WGS 84 / UTM zone 10S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=10 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 10S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-123],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32710\"]]"); p = add_epsg_def_ex (filter, first, last, 32711, "epsg", 32711, "WGS 84 / UTM zone 11S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=11 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 11S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-117],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32711\"]]"); p = add_epsg_def_ex (filter, first, last, 32712, "epsg", 32712, "WGS 84 / UTM zone 12S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=12 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 12S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-111],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32712\"]]"); p = add_epsg_def_ex (filter, first, last, 32713, "epsg", 32713, "WGS 84 / UTM zone 13S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=13 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 13S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-105],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 9, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32713\"]]"); p = add_epsg_def_ex (filter, first, last, 32714, "epsg", 32714, "WGS 84 / UTM zone 14S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=14 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 14S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-99],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32714\"]]"); p = add_epsg_def_ex (filter, first, last, 32715, "epsg", 32715, "WGS 84 / UTM zone 15S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=15 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 15S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-93],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32715\"]]"); p = add_epsg_def_ex (filter, first, last, 32716, "epsg", 32716, "WGS 84 / UTM zone 16S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=16 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 16S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-87],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32716\"]]"); p = add_epsg_def_ex (filter, first, last, 32717, "epsg", 32717, "WGS 84 / UTM zone 17S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 17S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-81],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32717\"]]"); p = add_epsg_def_ex (filter, first, last, 32718, "epsg", 32718, "WGS 84 / UTM zone 18S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=18 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 18S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-75],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32718\"]]"); p = add_epsg_def_ex (filter, first, last, 32719, "epsg", 32719, "WGS 84 / UTM zone 19S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=19 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 19S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-69],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32719\"]]"); p = add_epsg_def_ex (filter, first, last, 32720, "epsg", 32720, "WGS 84 / UTM zone 20S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=20 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 20S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-63],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32720\"]]"); p = add_epsg_def_ex (filter, first, last, 32721, "epsg", 32721, "WGS 84 / UTM zone 21S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=21 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 21S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-57],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32721\"]]"); p = add_epsg_def_ex (filter, first, last, 32722, "epsg", 32722, "WGS 84 / UTM zone 22S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=22 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 22S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-51],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32722\"]]"); p = add_epsg_def_ex (filter, first, last, 32723, "epsg", 32723, "WGS 84 / UTM zone 23S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=23 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 23S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-45],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32723\"]]"); p = add_epsg_def_ex (filter, first, last, 32724, "epsg", 32724, "WGS 84 / UTM zone 24S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=24 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 24S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-39],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32724\"]]"); p = add_epsg_def_ex (filter, first, last, 32725, "epsg", 32725, "WGS 84 / UTM zone 25S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=25 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 25S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-33],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32725\"]]"); p = add_epsg_def_ex (filter, first, last, 32726, "epsg", 32726, "WGS 84 / UTM zone 26S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=26 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 26S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-27],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32726\"]]"); p = add_epsg_def_ex (filter, first, last, 32727, "epsg", 32727, "WGS 84 / UTM zone 27S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=27 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 27S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-21],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32727\"]]"); p = add_epsg_def_ex (filter, first, last, 32728, "epsg", 32728, "WGS 84 / UTM zone 28S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=28 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 28S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-15],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 9, "0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 10, "false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\""); add_srs_wkt (p, 11, "EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing"); add_srs_wkt (p, 12, "\",NORTH],AUTHORITY[\"EPSG\",\"32728\"]]"); p = add_epsg_def_ex (filter, first, last, 32729, "epsg", 32729, "WGS 84 / UTM zone 29S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=29 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 29S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-9],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32729\"]]"); p = add_epsg_def_ex (filter, first, last, 32730, "epsg", 32730, "WGS 84 / UTM zone 30S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=30 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 30S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",-3],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32730\"]]"); p = add_epsg_def_ex (filter, first, last, 32731, "epsg", 32731, "WGS 84 / UTM zone 31S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=31 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 31S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",3],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32731\"]]"); p = add_epsg_def_ex (filter, first, last, 32732, "epsg", 32732, "WGS 84 / UTM zone 32S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=32 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 32S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",9],PARAMETER[\"scale_factor\",0."); add_srs_wkt (p, 9, "9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"fa"); add_srs_wkt (p, 10, "lse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 11, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32732\"]]"); p = add_epsg_def_ex (filter, first, last, 32733, "epsg", 32733, "WGS 84 / UTM zone 33S", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=33 +south +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / UTM zone 33S\",GEOGCS[\"WGS 84\",DATUM"); add_srs_wkt (p, 1, "[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\""); add_srs_wkt (p, 3, "]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],"); add_srs_wkt (p, 4, "UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAS"); add_srs_wkt (p, 6, "T],AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse"); add_srs_wkt (p, 7, "_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMET"); add_srs_wkt (p, 8, "ER[\"central_meridian\",15],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 9, ".9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"f"); add_srs_wkt (p, 10, "alse_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 11, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 12, ",NORTH],AUTHORITY[\"EPSG\",\"32733\"]]"); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_27.c��������������������������������������������������0000664�0001750�0001750�00000555116�12544707704�017055� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_27 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 5562, "epsg", 5562, "UCS-2000 / Gauss-Kruger zone 4", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / Gauss-Kruger zone 4\",GEOGCS[\"UCS-2"); add_srs_wkt (p, 1, "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, "-141,-78.5,0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",21],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",4500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"5562\"]]"); p = add_epsg_def_ex (filter, first, last, 5563, "epsg", 5563, "UCS-2000 / Gauss-Kruger zone 5", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / Gauss-Kruger zone 5\",GEOGCS[\"UCS-2"); add_srs_wkt (p, 1, "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, "-141,-78.5,0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",27],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",5500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"5563\"]]"); p = add_epsg_def_ex (filter, first, last, 5564, "epsg", 5564, "UCS-2000 / Gauss-Kruger zone 6", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / Gauss-Kruger zone 6\",GEOGCS[\"UCS-2"); add_srs_wkt (p, 1, "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, "-141,-78.5,0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",33],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",6500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"5564\"]]"); p = add_epsg_def_ex (filter, first, last, 5565, "epsg", 5565, "UCS-2000 / Gauss-Kruger zone 7", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / Gauss-Kruger zone 7\",GEOGCS[\"UCS-2"); add_srs_wkt (p, 1, "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, "-141,-78.5,0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",39],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",7500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"5565\"]]"); p = add_epsg_def_ex (filter, first, last, 5566, "epsg", 5566, "UCS-2000 / Gauss-Kruger CM 21E", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / Gauss-Kruger CM 21E\",GEOGCS[\"UCS-2"); add_srs_wkt (p, 1, "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, "-141,-78.5,0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",21],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"5566\"]]"); p = add_epsg_def_ex (filter, first, last, 5567, "epsg", 5567, "UCS-2000 / Gauss-Kruger CM 27E", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / Gauss-Kruger CM 27E\",GEOGCS[\"UCS-2"); add_srs_wkt (p, 1, "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, "-141,-78.5,0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",27],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"5567\"]]"); p = add_epsg_def_ex (filter, first, last, 5568, "epsg", 5568, "UCS-2000 / Gauss-Kruger CM 33E", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / Gauss-Kruger CM 33E\",GEOGCS[\"UCS-2"); add_srs_wkt (p, 1, "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, "-141,-78.5,0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",33],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"5568\"]]"); p = add_epsg_def_ex (filter, first, last, 5569, "epsg", 5569, "UCS-2000 / Gauss-Kruger CM 39E", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / Gauss-Kruger CM 39E\",GEOGCS[\"UCS-2"); add_srs_wkt (p, 1, "000\",DATUM[\"Ukraine_2000\",SPHEROID[\"Krassowsky 1940\""); add_srs_wkt (p, 2, ",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[25,"); add_srs_wkt (p, 3, "-141,-78.5,0,0.35,0.736,0],AUTHORITY[\"EPSG\",\"1077\"]]"); add_srs_wkt (p, 4, ",PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UN"); add_srs_wkt (p, 5, "IT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"91"); add_srs_wkt (p, 6, "22\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"); add_srs_wkt (p, 7, ",AUTHORITY[\"EPSG\",\"5561\"]],PROJECTION[\"Transverse_M"); add_srs_wkt (p, 8, "ercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",39],PARAMETER[\"scale_factor\",1],"); add_srs_wkt (p, 10, "PARAMETER[\"false_easting\",500000],PARAMETER[\"false_no"); add_srs_wkt (p, 11, "rthing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 12, "]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"5569\"]]"); p = add_epsg_def_ex (filter, first, last, 5570, "epsg", 5570, "UCS-2000 / 3-degree Gauss-Kruger zone 7 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 7 (deprec"); add_srs_wkt (p, 1, "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7024\"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5561\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",0],PARAMETER[\"central_meridian\",21],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",75000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"5570\"]]"); p = add_epsg_def_ex (filter, first, last, 5571, "epsg", 5571, "UCS-2000 / 3-degree Gauss-Kruger zone 8 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 8 (deprec"); add_srs_wkt (p, 1, "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7024\"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5561\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",0],PARAMETER[\"central_meridian\",24],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",85000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"5571\"]]"); p = add_epsg_def_ex (filter, first, last, 5572, "epsg", 5572, "UCS-2000 / 3-degree Gauss-Kruger zone 9 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 9 (deprec"); add_srs_wkt (p, 1, "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7024\"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5561\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",0],PARAMETER[\"central_meridian\",27],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",95000"); add_srs_wkt (p, 11, "00],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"5572\"]]"); p = add_epsg_def_ex (filter, first, last, 5573, "epsg", 5573, "UCS-2000 / 3-degree Gauss-Kruger zone 10 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 10 (depre"); add_srs_wkt (p, 1, "cated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHE"); add_srs_wkt (p, 2, "ROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7024\"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5561\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",0],PARAMETER[\"central_meridian\",30],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",10500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"5573\"]]"); p = add_epsg_def_ex (filter, first, last, 5574, "epsg", 5574, "UCS-2000 / 3-degree Gauss-Kruger zone 11 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 11 (depre"); add_srs_wkt (p, 1, "cated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHE"); add_srs_wkt (p, 2, "ROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7024\"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5561\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",0],PARAMETER[\"central_meridian\",33],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",11500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"5574\"]]"); p = add_epsg_def_ex (filter, first, last, 5575, "epsg", 5575, "UCS-2000 / 3-degree Gauss-Kruger zone 12 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 12 (depre"); add_srs_wkt (p, 1, "cated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHE"); add_srs_wkt (p, 2, "ROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7024\"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5561\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",0],PARAMETER[\"central_meridian\",36],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",12500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"5575\"]]"); p = add_epsg_def_ex (filter, first, last, 5576, "epsg", 5576, "UCS-2000 / 3-degree Gauss-Kruger zone 13 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +uni"); add_proj4text (p, 2, "ts=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger zone 13 (depre"); add_srs_wkt (p, 1, "cated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHE"); add_srs_wkt (p, 2, "ROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7024\"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5561\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",0],PARAMETER[\"central_meridian\",39],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",13500"); add_srs_wkt (p, 11, "000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AU"); add_srs_wkt (p, 12, "THORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"5576\"]]"); p = add_epsg_def_ex (filter, first, last, 5577, "epsg", 5577, "UCS-2000 / 3-degree Gauss-Kruger CM 21E (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 21E (deprec"); add_srs_wkt (p, 1, "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7024\"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5561\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",0],PARAMETER[\"central_meridian\",21],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 13, "AST],AUTHORITY[\"EPSG\",\"5577\"]]"); p = add_epsg_def_ex (filter, first, last, 5578, "epsg", 5578, "UCS-2000 / 3-degree Gauss-Kruger CM 24E (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 24E (deprec"); add_srs_wkt (p, 1, "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7024\"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5561\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",0],PARAMETER[\"central_meridian\",24],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 13, "AST],AUTHORITY[\"EPSG\",\"5578\"]]"); p = add_epsg_def_ex (filter, first, last, 5579, "epsg", 5579, "UCS-2000 / 3-degree Gauss-Kruger CM 27E (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 27E (deprec"); add_srs_wkt (p, 1, "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7024\"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5561\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",0],PARAMETER[\"central_meridian\",27],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 13, "AST],AUTHORITY[\"EPSG\",\"5579\"]]"); p = add_epsg_def_ex (filter, first, last, 5580, "epsg", 5580, "UCS-2000 / 3-degree Gauss-Kruger CM 30E (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 30E (deprec"); add_srs_wkt (p, 1, "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7024\"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5561\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",0],PARAMETER[\"central_meridian\",30],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 13, "AST],AUTHORITY[\"EPSG\",\"5580\"]]"); p = add_epsg_def_ex (filter, first, last, 5581, "epsg", 5581, "UCS-2000 / 3-degree Gauss-Kruger CM 33E (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 33E (deprec"); add_srs_wkt (p, 1, "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7024\"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5561\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",0],PARAMETER[\"central_meridian\",33],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 13, "AST],AUTHORITY[\"EPSG\",\"5581\"]]"); p = add_epsg_def_ex (filter, first, last, 5582, "epsg", 5582, "UCS-2000 / 3-degree Gauss-Kruger CM 36E (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 36E (deprec"); add_srs_wkt (p, 1, "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7024\"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5561\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",0],PARAMETER[\"central_meridian\",36],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 13, "AST],AUTHORITY[\"EPSG\",\"5582\"]]"); p = add_epsg_def_ex (filter, first, last, 5583, "epsg", 5583, "UCS-2000 / 3-degree Gauss-Kruger CM 39E (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Ukraine_2000", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units"); add_proj4text (p, 2, "=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"UCS-2000 / 3-degree Gauss-Kruger CM 39E (deprec"); add_srs_wkt (p, 1, "ated)\",GEOGCS[\"UCS-2000\",DATUM[\"Ukraine_2000\",SPHER"); add_srs_wkt (p, 2, "OID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7024\"]],TOWGS84[25,-141,-78.5,0,0.35,0.736,0],AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"1077\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"); add_srs_wkt (p, 5, "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],A"); add_srs_wkt (p, 7, "XIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5561\"]],PR"); add_srs_wkt (p, 8, "OJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_o"); add_srs_wkt (p, 9, "f_origin\",0],PARAMETER[\"central_meridian\",39],PARAMET"); add_srs_wkt (p, 10, "ER[\"scale_factor\",1],PARAMETER[\"false_easting\",50000"); add_srs_wkt (p, 11, "0],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTH"); add_srs_wkt (p, 12, "ORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",E"); add_srs_wkt (p, 13, "AST],AUTHORITY[\"EPSG\",\"5583\"]]"); p = add_epsg_def_ex (filter, first, last, 5588, "epsg", 5588, "NAD27 / New Brunswick Stereographic (NAD27)", 0, 1, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Oblique_Stereographic", "foot", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=3"); add_proj4text (p, 1, "04800 +y_0=304800 +datum=NAD27 +units=ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / New Brunswick Stereographic (NAD27)\",G"); add_srs_wkt (p, 1, "EOGCS[\"NAD27\",DATUM[\"North_American_Datum_1927\",SPHE"); add_srs_wkt (p, 2, "ROID[\"Clarke 1866\",6378206.4,294.9786982138982,AUTHORI"); add_srs_wkt (p, 3, "TY[\"EPSG\",\"7008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4267\"]],PROJECTION[\"Oblique_Stereogra"); add_srs_wkt (p, 8, "phic\"],PARAMETER[\"latitude_of_origin\",46.5],PARAMETER"); add_srs_wkt (p, 9, "[\"central_meridian\",-66.5],PARAMETER[\"scale_factor\","); add_srs_wkt (p, 10, "0.999912],PARAMETER[\"false_easting\",1000000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",1000000],UNIT[\"foot\",0.3048,AUTHOR"); add_srs_wkt (p, 12, "ITY[\"EPSG\",\"9002\"]],AXIS[\"Northing\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Easting\",EAST],AUTHORITY[\"EPSG\",\"5588\"]]"); p = add_epsg_def_ex (filter, first, last, 5589, "epsg", 5589, "Sibun Gorge 1922 / Colony Grid", 0, 0, "Clarke 1858", "Greenwich", "Sibun_Gorge_1922", "Transverse_Mercator", "Clarke's foot", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=17.06124194444444 +lon_0=-88.6318575 "); add_proj4text (p, 1, "+k=1 +x_0=66220.02833082761 +y_0=135779.5099885299 +a=63"); add_proj4text (p, 2, "78293.645208759 +b=6356617.987679838 +to_meter=0.3047972"); add_proj4text (p, 3, "654 +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Sibun Gorge 1922 / Colony Grid\",GEOGCS[\"Sibun"); add_srs_wkt (p, 1, " Gorge 1922\",DATUM[\"Sibun_Gorge_1922\",SPHEROID[\"Clar"); add_srs_wkt (p, 2, "ke 1858\",6378293.645208759,294.2606763692606,AUTHORITY["); add_srs_wkt (p, 3, "\"EPSG\",\"7007\"]],AUTHORITY[\"EPSG\",\"1071\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"5464\"]],PROJECTION[\"Transverse_Mercator"); add_srs_wkt (p, 8, "\"],PARAMETER[\"latitude_of_origin\",17.06124194444444],"); add_srs_wkt (p, 9, "PARAMETER[\"central_meridian\",-88.6318575],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",1],PARAMETER[\"false_easting\",217259.26]"); add_srs_wkt (p, 11, ",PARAMETER[\"false_northing\",445474.83],UNIT[\"Clarke's"); add_srs_wkt (p, 12, " foot\",0.3047972654,AUTHORITY[\"EPSG\",\"9005\"]],AXIS["); add_srs_wkt (p, 13, "\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"E"); add_srs_wkt (p, 14, "PSG\",\"5589\"]]"); p = add_epsg_def_ex (filter, first, last, 5593, "epsg", 5593, "FEH2010", 1, 1, "GRS 1980", "Greenwich", "Fehmarnbelt_Datum_2010", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_de"); add_proj4text (p, 1, "fs"); add_srs_wkt (p, 0, "GEOGCS[\"FEH2010\",DATUM[\"Fehmarnbelt_Datum_2010\",SPHE"); add_srs_wkt (p, 1, "ROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG"); add_srs_wkt (p, 2, "\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"1078\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8"); add_srs_wkt (p, 4, "901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"E"); add_srs_wkt (p, 5, "PSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitu"); add_srs_wkt (p, 6, "de\",EAST],AUTHORITY[\"EPSG\",\"5593\"]]"); p = add_epsg_def_ex (filter, first, last, 5596, "epsg", 5596, "FEH2010 / Fehmarnbelt TM", 0, 0, "GRS 1980", "Greenwich", "Fehmarnbelt_Datum_2010", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"FEH2010 / Fehmarnbelt TM\",GEOGCS[\"FEH2010\",D"); add_srs_wkt (p, 1, "ATUM[\"Fehmarnbelt_Datum_2010\",SPHEROID[\"GRS 1980\",63"); add_srs_wkt (p, 2, "78137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS8"); add_srs_wkt (p, 3, "4[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1078\"]],PRIMEM[\""); add_srs_wkt (p, 4, "Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degre"); add_srs_wkt (p, 5, "e\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXI"); add_srs_wkt (p, 6, "S[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"5593\"]],PROJECTION[\"Transverse_Mercator\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central"); add_srs_wkt (p, 9, "_meridian\",11.33333333333333],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",1],PARAMETER[\"false_easting\",1000000],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 12, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 13, "AUTHORITY[\"EPSG\",\"5596\"]]"); p = add_epsg_def_ex (filter, first, last, 5598, "epsg", 5598, "FEH2010 / Fehmarnbelt TM", 0, 0, "GRS 1980", "Greenwich", "Fehmarnbelt_Datum_2010", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=11.33333333333333 +k=1 +x_0="); add_proj4text (p, 1, "1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +unit"); add_proj4text (p, 2, "s=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"FEH2010 / Fehmarnbelt TM + FCSVR10 height\",P"); add_srs_wkt (p, 1, "ROJCS[\"FEH2010 / Fehmarnbelt TM\",GEOGCS[\"FEH2010\",DA"); add_srs_wkt (p, 2, "TUM[\"Fehmarnbelt_Datum_2010\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 3, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 4, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1078\"]],PRIMEM[\"G"); add_srs_wkt (p, 5, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 6, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 7, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 8, "\"EPSG\",\"5593\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_"); add_srs_wkt (p, 10, "meridian\",11.33333333333333],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 11, ",1],PARAMETER[\"false_easting\",1000000],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9"); add_srs_wkt (p, 13, "001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],"); add_srs_wkt (p, 14, "AUTHORITY[\"EPSG\",\"5596\"]],VERT_CS[\"FCSVR10 height\""); add_srs_wkt (p, 15, ",VERT_DATUM[\"Fehmarnbelt Vertical Reference 2010\",2005"); add_srs_wkt (p, 16, ",AUTHORITY[\"EPSG\",\"1079\"]],UNIT[\"metre\",1,AUTHORIT"); add_srs_wkt (p, 17, "Y[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 18, ",\"5597\"]],AUTHORITY[\"EPSG\",\"5598\"]]"); p = add_epsg_def_ex (filter, first, last, 5623, "epsg", 5623, "NAD27 / Michigan East", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.5 +lon_0=-83.66666666666667 +k=0.9"); add_proj4text (p, 1, "99942857 +x_0=152400.3048006096 +y_0=0 +datum=NAD27 +uni"); add_proj4text (p, 2, "ts=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Michigan East\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",41.5],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "83.66666666666667],PARAMETER[\"scale_factor\",0.99994285"); add_srs_wkt (p, 10, "7],PARAMETER[\"false_easting\",500000],PARAMETER[\"false"); add_srs_wkt (p, 11, "_northing\",0],UNIT[\"US survey foot\",0.304800609601219"); add_srs_wkt (p, 12, "2,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"5623\"]]"); p = add_epsg_def_ex (filter, first, last, 5624, "epsg", 5624, "NAD27 / Michigan Old Central", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.5 +lon_0=-85.75 +k=0.999909091 +x_"); add_proj4text (p, 1, "0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Michigan Old Central\",GEOGCS[\"NAD27\""); add_srs_wkt (p, 1, ",DATUM[\"North_American_Datum_1927\",SPHEROID[\"Clarke 1"); add_srs_wkt (p, 2, "866\",6378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "008\"]],AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4267\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",41.5],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",-85.75],PARAMETER[\"scale_factor\",0.999909091],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",500000],PARAMETER[\"false_nort"); add_srs_wkt (p, 11, "hing\",0],UNIT[\"US survey foot\",0.3048006096012192,AUT"); add_srs_wkt (p, 12, "HORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"5624\"]]"); p = add_epsg_def_ex (filter, first, last, 5625, "epsg", 5625, "NAD27 / Michigan West", 0, 0, "Clarke 1866", "Greenwich", "North_American_Datum_1927", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=41.5 +lon_0=-88.75 +k=0.999909091 +x_"); add_proj4text (p, 1, "0=152400.3048006096 +y_0=0 +datum=NAD27 +units=us-ft +no"); add_proj4text (p, 2, "_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD27 / Michigan West\",GEOGCS[\"NAD27\",DATUM["); add_srs_wkt (p, 1, "\"North_American_Datum_1927\",SPHEROID[\"Clarke 1866\",6"); add_srs_wkt (p, 2, "378206.4,294.9786982138982,AUTHORITY[\"EPSG\",\"7008\"]]"); add_srs_wkt (p, 3, ",AUTHORITY[\"EPSG\",\"6267\"]],PRIMEM[\"Greenwich\",0,AU"); add_srs_wkt (p, 4, "THORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925"); add_srs_wkt (p, 5, "199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",N"); add_srs_wkt (p, 6, "ORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4267"); add_srs_wkt (p, 7, "\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"lat"); add_srs_wkt (p, 8, "itude_of_origin\",41.5],PARAMETER[\"central_meridian\",-"); add_srs_wkt (p, 9, "88.75],PARAMETER[\"scale_factor\",0.999909091],PARAMETER"); add_srs_wkt (p, 10, "[\"false_easting\",500000],PARAMETER[\"false_northing\","); add_srs_wkt (p, 11, "0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],A"); add_srs_wkt (p, 13, "UTHORITY[\"EPSG\",\"5625\"]]"); p = add_epsg_def_ex (filter, first, last, 5627, "epsg", 5627, "ED50 / TM 6 NE", 0, 0, "International 1924", "Greenwich", "European_Datum_1950", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=6 +k=0.9996 +x_0=500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / TM 6 NE\",GEOGCS[\"ED50\",DATUM[\"Europe"); add_srs_wkt (p, 1, "an_Datum_1950\",SPHEROID[\"International 1924\",6378388,"); add_srs_wkt (p, 2, "297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4230\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",6],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"fal"); add_srs_wkt (p, 10, "se_easting\",500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "5627\"]]"); p = add_epsg_def_ex (filter, first, last, 5628, "epsg", 5628, "SWEREF99", 1, 1, "GRS 1980", "Greenwich", "SWEREF99", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +vunit"); add_proj4text (p, 1, "s=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"SWEREF99 + RH2000 height\",GEOGCS[\"SWEREF99\""); add_srs_wkt (p, 1, ",DATUM[\"SWEREF99\",SPHEROID[\"GRS 1980\",6378137,298.25"); add_srs_wkt (p, 2, "7222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,"); add_srs_wkt (p, 3, "0,0],AUTHORITY[\"EPSG\",\"6619\"]],PRIMEM[\"Greenwich\","); add_srs_wkt (p, 4, "0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453"); add_srs_wkt (p, 5, "2925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude"); add_srs_wkt (p, 6, "\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "4619\"]],VERT_CS[\"RH2000 height\",VERT_DATUM[\"Rikets h"); add_srs_wkt (p, 8, "ojdsystem 2000\",2005,AUTHORITY[\"EPSG\",\"5208\"]],UNIT"); add_srs_wkt (p, 9, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",U"); add_srs_wkt (p, 10, "P],AUTHORITY[\"EPSG\",\"5613\"]],AUTHORITY[\"EPSG\",\"56"); add_srs_wkt (p, 11, "28\"]]"); p = add_epsg_def_ex (filter, first, last, 5629, "epsg", 5629, "Moznet / UTM zone 38S", 0, 0, "WGS 84", "Greenwich", "Moznet_ITRF94", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=38 +south +ellps=WGS84 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Moznet / UTM zone 38S\",GEOGCS[\"Moznet\",DATUM"); add_srs_wkt (p, 1, "[\"Moznet_ITRF94\",SPHEROID[\"WGS 84\",6378137,298.25722"); add_srs_wkt (p, 2, "3563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0"); add_srs_wkt (p, 3, "],AUTHORITY[\"EPSG\",\"6130\"]],PRIMEM[\"Greenwich\",0,A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292"); add_srs_wkt (p, 5, "5199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\","); add_srs_wkt (p, 6, "NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"413"); add_srs_wkt (p, 7, "0\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"la"); add_srs_wkt (p, 8, "titude_of_origin\",0],PARAMETER[\"central_meridian\",45]"); add_srs_wkt (p, 9, ",PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",500000],PARAMETER[\"false_northing\",10000000],U"); add_srs_wkt (p, 11, "NIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eas"); add_srs_wkt (p, 12, "ting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"5629\"]]"); p = add_epsg_def_ex (filter, first, last, 5631, "epsg", 5631, "Pulkovo 1942(58) / Gauss-Kruger zone 2 (E-N)", 0, 0, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.8"); add_proj4text (p, 2, "44,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Gauss-Kruger zone 2 (E-N)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SP"); add_srs_wkt (p, 2, "HEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0"); add_srs_wkt (p, 4, ".844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4179\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 10, "dian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",2500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 13, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "5631\"]]"); p = add_epsg_def_ex (filter, first, last, 5632, "epsg", 5632, "PTRA08 / LCC Europe", 0, 1, "GRS 1980", "Greenwich", "Autonomous_Regions_of_Portugal_2008", "Lambert_Conformal_Conic_2SP", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4"); add_proj4text (p, 1, "000000 +y_0=2800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PTRA08 / LCC Europe\",GEOGCS[\"PTRA08\",DATUM[\""); add_srs_wkt (p, 1, "Autonomous_Regions_of_Portugal_2008\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 2, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 3, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1041\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"5013\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35],PARA"); add_srs_wkt (p, 9, "METER[\"standard_parallel_2\",65],PARAMETER[\"latitude_o"); add_srs_wkt (p, 10, "f_origin\",52],PARAMETER[\"central_meridian\",10],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",4000000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",2800000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"5632\"]]"); p = add_epsg_def_ex (filter, first, last, 5633, "epsg", 5633, "PTRA08 / LAEA Europe", 0, 1, "GRS 1980", "Greenwich", "Autonomous_Regions_of_Portugal_2008", "Lambert_Azimuthal_Equal_Area", "metre", "Y", "North", "X", "East"); add_proj4text (p, 0, "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PTRA08 / LAEA Europe\",GEOGCS[\"PTRA08\",DATUM["); add_srs_wkt (p, 1, "\"Autonomous_Regions_of_Portugal_2008\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1041\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"5013\"]],PROJECTION[\"Lambert_Azimut"); add_srs_wkt (p, 8, "hal_Equal_Area\"],PARAMETER[\"latitude_of_center\",52],P"); add_srs_wkt (p, 9, "ARAMETER[\"longitude_of_center\",10],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",4321000],PARAMETER[\"false_northing\",3210000],"); add_srs_wkt (p, 11, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\""); add_srs_wkt (p, 12, ",NORTH],AXIS[\"X\",EAST],AUTHORITY[\"EPSG\",\"5633\"]]"); p = add_epsg_def_ex (filter, first, last, 5634, "epsg", 5634, "REGCAN95 / LCC Europe", 0, 1, "GRS 1980", "Greenwich", "Red_Geodesica_de_Canarias_1995", "Lambert_Conformal_Conic_2SP", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4"); add_proj4text (p, 1, "000000 +y_0=2800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"REGCAN95 / LCC Europe\",GEOGCS[\"REGCAN95\",DAT"); add_srs_wkt (p, 1, "UM[\"Red_Geodesica_de_Canarias_1995\",SPHEROID[\"GRS 198"); add_srs_wkt (p, 2, "0\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],"); add_srs_wkt (p, 3, "TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1035\"]],PRI"); add_srs_wkt (p, 4, "MEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\""); add_srs_wkt (p, 5, "degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]"); add_srs_wkt (p, 6, "],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTH"); add_srs_wkt (p, 7, "ORITY[\"EPSG\",\"4081\"]],PROJECTION[\"Lambert_Conformal"); add_srs_wkt (p, 8, "_Conic_2SP\"],PARAMETER[\"standard_parallel_1\",35],PARA"); add_srs_wkt (p, 9, "METER[\"standard_parallel_2\",65],PARAMETER[\"latitude_o"); add_srs_wkt (p, 10, "f_origin\",52],PARAMETER[\"central_meridian\",10],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",4000000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",2800000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\""); add_srs_wkt (p, 13, "]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"5634\"]]"); p = add_epsg_def_ex (filter, first, last, 5635, "epsg", 5635, "REGCAN95 / LAEA Europe", 0, 1, "GRS 1980", "Greenwich", "Red_Geodesica_de_Canarias_1995", "Lambert_Azimuthal_Equal_Area", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"REGCAN95 / LAEA Europe\",GEOGCS[\"REGCAN95\",DA"); add_srs_wkt (p, 1, "TUM[\"Red_Geodesica_de_Canarias_1995\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1035\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4081\"]],PROJECTION[\"Lambert_Azimutha"); add_srs_wkt (p, 8, "l_Equal_Area\"],PARAMETER[\"latitude_of_center\",52],PAR"); add_srs_wkt (p, 9, "AMETER[\"longitude_of_center\",10],PARAMETER[\"false_eas"); add_srs_wkt (p, 10, "ting\",4321000],PARAMETER[\"false_northing\",3210000],UN"); add_srs_wkt (p, 11, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Nort"); add_srs_wkt (p, 12, "hing\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 13, "\"5635\"]]"); p = add_epsg_def_ex (filter, first, last, 5636, "epsg", 5636, "TUREF / LAEA Europe", 0, 1, "GRS 1980", "Greenwich", "Turkish_National_Reference_Frame", "Lambert_Azimuthal_Equal_Area", "metre", "Y", "North", "X", "East"); add_proj4text (p, 0, "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / LAEA Europe\",GEOGCS[\"TUREF\",DATUM[\""); add_srs_wkt (p, 1, "Turkish_National_Reference_Frame\",SPHEROID[\"GRS 1980\""); add_srs_wkt (p, 2, ",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOW"); add_srs_wkt (p, 3, "GS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM"); add_srs_wkt (p, 4, "[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"de"); add_srs_wkt (p, 5, "gree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],"); add_srs_wkt (p, 6, "AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHOR"); add_srs_wkt (p, 7, "ITY[\"EPSG\",\"5252\"]],PROJECTION[\"Lambert_Azimuthal_E"); add_srs_wkt (p, 8, "qual_Area\"],PARAMETER[\"latitude_of_center\",52],PARAME"); add_srs_wkt (p, 9, "TER[\"longitude_of_center\",10],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",4321000],PARAMETER[\"false_northing\",3210000],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\",NOR"); add_srs_wkt (p, 12, "TH],AXIS[\"X\",EAST],AUTHORITY[\"EPSG\",\"5636\"]]"); p = add_epsg_def_ex (filter, first, last, 5637, "epsg", 5637, "TUREF / LCC Europe", 0, 1, "GRS 1980", "Greenwich", "Turkish_National_Reference_Frame", "Lambert_Conformal_Conic_2SP", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4"); add_proj4text (p, 1, "000000 +y_0=2800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"TUREF / LCC Europe\",GEOGCS[\"TUREF\",DATUM[\"T"); add_srs_wkt (p, 1, "urkish_National_Reference_Frame\",SPHEROID[\"GRS 1980\","); add_srs_wkt (p, 2, "6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWG"); add_srs_wkt (p, 3, "S84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"1057\"]],PRIMEM["); add_srs_wkt (p, 4, "\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"deg"); add_srs_wkt (p, 5, "ree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],A"); add_srs_wkt (p, 6, "XIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORI"); add_srs_wkt (p, 7, "TY[\"EPSG\",\"5252\"]],PROJECTION[\"Lambert_Conformal_Co"); add_srs_wkt (p, 8, "nic_2SP\"],PARAMETER[\"standard_parallel_1\",35],PARAMET"); add_srs_wkt (p, 9, "ER[\"standard_parallel_2\",65],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 10, "rigin\",52],PARAMETER[\"central_meridian\",10],PARAMETER"); add_srs_wkt (p, 11, "[\"false_easting\",4000000],PARAMETER[\"false_northing\""); add_srs_wkt (p, 12, ",2800000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]]"); add_srs_wkt (p, 13, ",AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAST],AUTHORI"); add_srs_wkt (p, 14, "TY[\"EPSG\",\"5637\"]]"); p = add_epsg_def_ex (filter, first, last, 5638, "epsg", 5638, "ISN2004 / LAEA Europe", 0, 1, "GRS 1980", "Greenwich", "Islands_Net_2004", "Lambert_Azimuthal_Equal_Area", "metre", "Y", "North", "X", "East"); add_proj4text (p, 0, "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ISN2004 / LAEA Europe\",GEOGCS[\"ISN2004\",DATU"); add_srs_wkt (p, 1, "M[\"Islands_Net_2004\",SPHEROID[\"GRS 1980\",6378137,298"); add_srs_wkt (p, 2, ".257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0"); add_srs_wkt (p, 3, ",0,0,0],AUTHORITY[\"EPSG\",\"1060\"]],PRIMEM[\"Greenwich"); add_srs_wkt (p, 4, "\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017"); add_srs_wkt (p, 5, "4532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latit"); add_srs_wkt (p, 6, "ude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"5324\"]],PROJECTION[\"Lambert_Azimuthal_Equal_Area\"]"); add_srs_wkt (p, 8, ",PARAMETER[\"latitude_of_center\",52],PARAMETER[\"longit"); add_srs_wkt (p, 9, "ude_of_center\",10],PARAMETER[\"false_easting\",4321000]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_northing\",3210000],UNIT[\"metre\",1,"); add_srs_wkt (p, 11, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Y\",NORTH],AXIS[\"X"); add_srs_wkt (p, 12, "\",EAST],AUTHORITY[\"EPSG\",\"5638\"]]"); p = add_epsg_def_ex (filter, first, last, 5639, "epsg", 5639, "ISN2004 / LCC Europe", 0, 1, "GRS 1980", "Greenwich", "Islands_Net_2004", "Lambert_Conformal_Conic_2SP", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4"); add_proj4text (p, 1, "000000 +y_0=2800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ISN2004 / LCC Europe\",GEOGCS[\"ISN2004\",DATUM"); add_srs_wkt (p, 1, "[\"Islands_Net_2004\",SPHEROID[\"GRS 1980\",6378137,298."); add_srs_wkt (p, 2, "257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,"); add_srs_wkt (p, 3, "0,0,0],AUTHORITY[\"EPSG\",\"1060\"]],PRIMEM[\"Greenwich\""); add_srs_wkt (p, 4, ",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745"); add_srs_wkt (p, 5, "32925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitud"); add_srs_wkt (p, 6, "e\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 7, "5324\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],PAR"); add_srs_wkt (p, 8, "AMETER[\"standard_parallel_1\",35],PARAMETER[\"standard_"); add_srs_wkt (p, 9, "parallel_2\",65],PARAMETER[\"latitude_of_origin\",52],PA"); add_srs_wkt (p, 10, "RAMETER[\"central_meridian\",10],PARAMETER[\"false_easti"); add_srs_wkt (p, 11, "ng\",4000000],PARAMETER[\"false_northing\",2800000],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AXIS[\"Easting\",EAST],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "5639\"]]"); p = add_epsg_def_ex (filter, first, last, 5641, "epsg", 5641, "SIRGAS 2000 / Brazil Mercator", 0, 0, "GRS 1980", "Greenwich", "Sistema_de_Referencia_Geocentrico_para_las_AmericaS_2000", "Mercator_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=merc +lon_0=-43 +lat_ts=-2 +x_0=5000000 +y_0=10000"); add_proj4text (p, 1, "000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"SIRGAS 2000 / Brazil Mercator\",GEOGCS[\"SIRGAS"); add_srs_wkt (p, 1, " 2000\",DATUM[\"Sistema_de_Referencia_Geocentrico_para_l"); add_srs_wkt (p, 2, "as_AmericaS_2000\",SPHEROID[\"GRS 1980\",6378137,298.257"); add_srs_wkt (p, 3, "222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0"); add_srs_wkt (p, 4, ",0],AUTHORITY[\"EPSG\",\"6674\"]],PRIMEM[\"Greenwich\",0"); add_srs_wkt (p, 5, ",AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532"); add_srs_wkt (p, 6, "925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\""); add_srs_wkt (p, 7, ",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"46"); add_srs_wkt (p, 8, "74\"]],PROJECTION[\"Mercator_2SP\"],PARAMETER[\"standard"); add_srs_wkt (p, 9, "_parallel_1\",-2],PARAMETER[\"central_meridian\",-43],PA"); add_srs_wkt (p, 10, "RAMETER[\"false_easting\",5000000],PARAMETER[\"false_nor"); add_srs_wkt (p, 11, "thing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 12, "9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 13, "EPSG\",\"5641\"]]"); p = add_epsg_def_ex (filter, first, last, 5643, "epsg", 5643, "ED50 / SPBA LCC", 0, 0, "International 1924", "Greenwich", "European_Datum_1950", "Lambert_Conformal_Conic_2SP", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=52.66666666666666 +lat_2=54.33333333333"); add_proj4text (p, 1, "334 +lat_0=48 +lon_0=10 +x_0=815000 +y_0=0 +ellps=intl +"); add_proj4text (p, 2, "towgs84=-87,-98,-121,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"ED50 / SPBA LCC\",GEOGCS[\"ED50\",DATUM[\"Europ"); add_srs_wkt (p, 1, "ean_Datum_1950\",SPHEROID[\"International 1924\",6378388"); add_srs_wkt (p, 2, ",297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS84[-87,-98,-121,"); add_srs_wkt (p, 3, "0,0,0,0],AUTHORITY[\"EPSG\",\"6230\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4230\"]],PROJECTION[\"Lambert_Conformal_Conic_2SP\"],"); add_srs_wkt (p, 8, "PARAMETER[\"standard_parallel_1\",52.66666666666666],PAR"); add_srs_wkt (p, 9, "AMETER[\"standard_parallel_2\",54.33333333333334],PARAME"); add_srs_wkt (p, 10, "TER[\"latitude_of_origin\",48],PARAMETER[\"central_merid"); add_srs_wkt (p, 11, "ian\",10],PARAMETER[\"false_easting\",815000],PARAMETER["); add_srs_wkt (p, 12, "\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 13, ",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NOR"); add_srs_wkt (p, 14, "TH],AUTHORITY[\"EPSG\",\"5643\"]]"); p = add_epsg_def_ex (filter, first, last, 5644, "epsg", 5644, "RGR92 / UTM zone 39S", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_Reunion_1992", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=39 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGR92 / UTM zone 39S\",GEOGCS[\"RGR92\",DATUM[\""); add_srs_wkt (p, 1, "Reseau_Geodesique_de_la_Reunion_1992\",SPHEROID[\"GRS 19"); add_srs_wkt (p, 2, "80\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]]"); add_srs_wkt (p, 3, ",TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6627\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"4627\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",51],PARAMETER[\"scale_factor\",0.9996]"); add_srs_wkt (p, 10, ",PARAMETER[\"false_easting\",500000],PARAMETER[\"false_n"); add_srs_wkt (p, 11, "orthing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORT"); add_srs_wkt (p, 13, "H],AUTHORITY[\"EPSG\",\"5644\"]]"); p = add_epsg_def_ex (filter, first, last, 5646, "epsg", 5646, "NAD83 / Vermont (ftUS)", 0, 0, "GRS 1980", "Greenwich", "North_American_Datum_1983", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); add_proj4text (p, 1, "=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83 / Vermont (ftUS)\",GEOGCS[\"NAD83\",DATUM"); add_srs_wkt (p, 1, "[\"North_American_Datum_1983\",SPHEROID[\"GRS 1980\",637"); add_srs_wkt (p, 2, "8137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84"); add_srs_wkt (p, 3, "[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6269\"]],PRIMEM[\"G"); add_srs_wkt (p, 4, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 5, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 6, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 7, "\"EPSG\",\"4269\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 8, "PARAMETER[\"latitude_of_origin\",42.5],PARAMETER[\"centr"); add_srs_wkt (p, 9, "al_meridian\",-72.5],PARAMETER[\"scale_factor\",0.999964"); add_srs_wkt (p, 10, "286],PARAMETER[\"false_easting\",1640416.6667],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"US survey foot\",0.3048006"); add_srs_wkt (p, 12, "096012192,AUTHORITY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST]"); add_srs_wkt (p, 13, ",AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"5646\"]]"); p = add_epsg_def_ex (filter, first, last, 5649, "epsg", 5649, "ETRS89 / UTM zone 31N (zE-N)", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=3 +k=0.9996 +x_0=31500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 31N (zE-N)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9996],PARAMETER[\"false_easting\",31500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"5649\"]]"); p = add_epsg_def_ex (filter, first, last, 5650, "epsg", 5650, "ETRS89 / UTM zone 33N (zE-N)", 0, 0, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=33500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 33N (zE-N)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",33500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"5650\"]]"); p = add_epsg_def_ex (filter, first, last, 5651, "epsg", 5651, "ETRS89 / UTM zone 31N (N-zE)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=3 +k=0.9996 +x_0=31500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 31N (N-zE)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",3],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9996],PARAMETER[\"false_easting\",31500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); add_srs_wkt (p, 13, "ing\",EAST],AUTHORITY[\"EPSG\",\"5651\"]]"); p = add_epsg_def_ex (filter, first, last, 5652, "epsg", 5652, "ETRS89 / UTM zone 32N (N-zE)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=32500000 +y"); add_proj4text (p, 1, "_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 32N (N-zE)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_fa"); add_srs_wkt (p, 10, "ctor\",0.9996],PARAMETER[\"false_easting\",32500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"East"); add_srs_wkt (p, 13, "ing\",EAST],AUTHORITY[\"EPSG\",\"5652\"]]"); p = add_epsg_def_ex (filter, first, last, 5653, "epsg", 5653, "ETRS89 / UTM zone 33N (N-zE)", 0, 1, "GRS 1980", "Greenwich", "European_Terrestrial_Reference_System_1989", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=33500000 +"); add_proj4text (p, 1, "y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"ETRS89 / UTM zone 33N (N-zE)\",GEOGCS[\"ETRS89\""); add_srs_wkt (p, 1, ",DATUM[\"European_Terrestrial_Reference_System_1989\",SP"); add_srs_wkt (p, 2, "HEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EP"); add_srs_wkt (p, 3, "SG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6258\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4258\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",0.9996],PARAMETER[\"false_easting\",33500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Eas"); add_srs_wkt (p, 13, "ting\",EAST],AUTHORITY[\"EPSG\",\"5653\"]]"); p = add_epsg_def_ex (filter, first, last, 5654, "epsg", 5654, "NAD83(HARN) / Vermont (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_High_Accuracy_Reference_Network", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); add_proj4text (p, 1, "=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(HARN) / Vermont (ftUS)\",GEOGCS[\"NAD83(H"); add_srs_wkt (p, 1, "ARN)\",DATUM[\"NAD83_High_Accuracy_Reference_Network\",S"); add_srs_wkt (p, 2, "PHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"E"); add_srs_wkt (p, 3, "PSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG"); add_srs_wkt (p, 4, "\",\"6152\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 5, "\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY["); add_srs_wkt (p, 6, "\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Long"); add_srs_wkt (p, 7, "itude\",EAST],AUTHORITY[\"EPSG\",\"4152\"]],PROJECTION[\""); add_srs_wkt (p, 8, "Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\","); add_srs_wkt (p, 9, "42.5],PARAMETER[\"central_meridian\",-72.5],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.999964286],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "1640416.6667],PARAMETER[\"false_northing\",0],UNIT[\"US "); add_srs_wkt (p, 12, "survey foot\",0.3048006096012192,AUTHORITY[\"EPSG\",\"90"); add_srs_wkt (p, 13, "03\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EP"); add_srs_wkt (p, 14, "SG\",\"5654\"]]"); p = add_epsg_def_ex (filter, first, last, 5655, "epsg", 5655, "NAD83(NSRS2007) / Vermont (ftUS)", 0, 0, "GRS 1980", "Greenwich", "NAD83_National_Spatial_Reference_System_2007", "Transverse_Mercator", "US survey foot", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0"); add_proj4text (p, 1, "=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,"); add_proj4text (p, 2, "0,0 +units=us-ft +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NAD83(NSRS2007) / Vermont (ftUS)\",GEOGCS[\"NAD"); add_srs_wkt (p, 1, "83(NSRS2007)\",DATUM[\"NAD83_National_Spatial_Reference_"); add_srs_wkt (p, 2, "System_2007\",SPHEROID[\"GRS 1980\",6378137,298.25722210"); add_srs_wkt (p, 3, "1,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6759\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4759\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",42.5],PARAMETER[\"central_meridian\",-72"); add_srs_wkt (p, 10, ".5],PARAMETER[\"scale_factor\",0.999964286],PARAMETER[\""); add_srs_wkt (p, 11, "false_easting\",1640416.6667],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",0],UNIT[\"US survey foot\",0.3048006096012192,AUTHORI"); add_srs_wkt (p, 13, "TY[\"EPSG\",\"9003\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 14, "],AUTHORITY[\"EPSG\",\"5655\"]]"); p = add_epsg_def_ex (filter, first, last, 5659, "epsg", 5659, "Monte Mario / TM Emilia-Romagna", 0, 0, "International 1924", "Greenwich", "Monte_Mario", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=500053 +y_0"); add_proj4text (p, 1, "=-3999820 +ellps=intl +towgs84=-104.1,-49.1,-9.9,0.971,-"); add_proj4text (p, 2, "2.917,0.714,-11.68 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Monte Mario / TM Emilia-Romagna\",GEOGCS[\"Mont"); add_srs_wkt (p, 1, "e Mario\",DATUM[\"Monte_Mario\",SPHEROID[\"International"); add_srs_wkt (p, 2, " 1924\",6378388,297,AUTHORITY[\"EPSG\",\"7022\"]],TOWGS8"); add_srs_wkt (p, 3, "4[-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68],AUTHORITY"); add_srs_wkt (p, 4, "[\"EPSG\",\"6265\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\""); add_srs_wkt (p, 5, "EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUT"); add_srs_wkt (p, 6, "HORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS"); add_srs_wkt (p, 7, "[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4265\"]],PROJE"); add_srs_wkt (p, 8, "CTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_o"); add_srs_wkt (p, 9, "rigin\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\""); add_srs_wkt (p, 10, "scale_factor\",0.9996],PARAMETER[\"false_easting\",50005"); add_srs_wkt (p, 11, "3],PARAMETER[\"false_northing\",-3999820],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\""); add_srs_wkt (p, 13, "Y\",NORTH],AUTHORITY[\"EPSG\",\"5659\"]]"); p = add_epsg_def_ex (filter, first, last, 5663, "epsg", 5663, "Pulkovo 1942(58) / Gauss-Kruger zone 3 (E-N)", 0, 0, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / Gauss-Kruger zone 3 (E-N)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_1942_58\",SP"); add_srs_wkt (p, 2, "HEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359,-0.053,0"); add_srs_wkt (p, 4, ".844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4179\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 10, "dian\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"fal"); add_srs_wkt (p, 11, "se_easting\",3500000],PARAMETER[\"false_northing\",0],UN"); add_srs_wkt (p, 12, "IT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"East"); add_srs_wkt (p, 13, "ing\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\","); add_srs_wkt (p, 14, "\"5663\"]]"); p = add_epsg_def_ex (filter, first, last, 5664, "epsg", 5664, "Pulkovo 1942(83) / Gauss-Kruger zone 2 (E-N)", 0, 0, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / Gauss-Kruger zone 2 (E-N)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\",SP"); add_srs_wkt (p, 2, "HEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4178\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",9],PARAMETER[\"sc"); add_srs_wkt (p, 10, "ale_factor\",1],PARAMETER[\"false_easting\",2500000],PAR"); add_srs_wkt (p, 11, "AMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY["); add_srs_wkt (p, 12, "\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northi"); add_srs_wkt (p, 13, "ng\",NORTH],AUTHORITY[\"EPSG\",\"5664\"]]"); p = add_epsg_def_ex (filter, first, last, 5665, "epsg", 5665, "Pulkovo 1942(83) / Gauss-Kruger zone 3 (E-N)", 0, 0, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / Gauss-Kruger zone 3 (E-N)\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_1942_83\",SP"); add_srs_wkt (p, 2, "HEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUTHORITY[\""); add_srs_wkt (p, 4, "EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPS"); add_srs_wkt (p, 5, "G\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHOR"); add_srs_wkt (p, 6, "ITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\""); add_srs_wkt (p, 7, "Longitude\",EAST],AUTHORITY[\"EPSG\",\"4178\"]],PROJECTI"); add_srs_wkt (p, 8, "ON[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_orig"); add_srs_wkt (p, 9, "in\",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"s"); add_srs_wkt (p, 10, "cale_factor\",1],PARAMETER[\"false_easting\",3500000],PA"); add_srs_wkt (p, 11, "RAMETER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"5665\"]]"); p = add_epsg_def_ex (filter, first, last, 5666, "epsg", 5666, "PD/83 / 3-degree Gauss-Kruger zone 3 (E-N)", 0, 0, "Bessel 1841", "Greenwich", "Potsdam_Datum_83", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PD/83 / 3-degree Gauss-Kruger zone 3 (E-N)\",GE"); add_srs_wkt (p, 1, "OGCS[\"PD/83\",DATUM[\"Potsdam_Datum_83\",SPHEROID[\"Bes"); add_srs_wkt (p, 2, "sel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7004\"]],AUTHORITY[\"EPSG\",\"6746\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4746\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_ea"); add_srs_wkt (p, 10, "sting\",3500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"566"); add_srs_wkt (p, 13, "6\"]]"); p = add_epsg_def_ex (filter, first, last, 5667, "epsg", 5667, "PD/83 / 3-degree Gauss-Kruger zone 4 (E-N)", 0, 0, "Bessel 1841", "Greenwich", "Potsdam_Datum_83", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"PD/83 / 3-degree Gauss-Kruger zone 4 (E-N)\",GE"); add_srs_wkt (p, 1, "OGCS[\"PD/83\",DATUM[\"Potsdam_Datum_83\",SPHEROID[\"Bes"); add_srs_wkt (p, 2, "sel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7004\"]],AUTHORITY[\"EPSG\",\"6746\"]],PRIMEM[\"Greenwic"); add_srs_wkt (p, 4, "h\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01"); add_srs_wkt (p, 5, "74532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Lati"); add_srs_wkt (p, 6, "tude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 7, ",\"4746\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETE"); add_srs_wkt (p, 8, "R[\"latitude_of_origin\",0],PARAMETER[\"central_meridian"); add_srs_wkt (p, 9, "\",12],PARAMETER[\"scale_factor\",1],PARAMETER[\"false_e"); add_srs_wkt (p, 10, "asting\",4500000],PARAMETER[\"false_northing\",0],UNIT[\""); add_srs_wkt (p, 11, "metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\""); add_srs_wkt (p, 12, ",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"566"); add_srs_wkt (p, 13, "7\"]]"); p = add_epsg_def_ex (filter, first, last, 5668, "epsg", 5668, "RD/83 / 3-degree Gauss-Kruger zone 4 (E-N)", 0, 0, "Bessel 1841", "Greenwich", "Rauenberg_Datum_83", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RD/83 / 3-degree Gauss-Kruger zone 4 (E-N)\",GE"); add_srs_wkt (p, 1, "OGCS[\"RD/83\",DATUM[\"Rauenberg_Datum_83\",SPHEROID[\"B"); add_srs_wkt (p, 2, "essel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7004\"]],AUTHORITY[\"EPSG\",\"6745\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4745\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",12],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",4500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "5668\"]]"); p = add_epsg_def_ex (filter, first, last, 5669, "epsg", 5669, "RD/83 / 3-degree Gauss-Kruger zone 5 (E-N)", 0, 0, "Bessel 1841", "Greenwich", "Rauenberg_Datum_83", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RD/83 / 3-degree Gauss-Kruger zone 5 (E-N)\",GE"); add_srs_wkt (p, 1, "OGCS[\"RD/83\",DATUM[\"Rauenberg_Datum_83\",SPHEROID[\"B"); add_srs_wkt (p, 2, "essel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 3, "\"7004\"]],AUTHORITY[\"EPSG\",\"6745\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 4, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 5, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 6, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 7, "G\",\"4745\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 8, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 9, "ian\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_easting\",5500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 11, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 12, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 13, "5669\"]]"); p = add_epsg_def_ex (filter, first, last, 5670, "epsg", 5670, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3 (E-N)", 0, 0, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.8"); add_proj4text (p, 2, "44,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3"); add_srs_wkt (p, 1, " (E-N)\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_194"); add_srs_wkt (p, 2, "2_58\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359"); add_srs_wkt (p, 4, ",-0.053,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 8, "RITY[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 9, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",9],PARAMETER[\"scale_factor\",1],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_easting\",3500000],PARAMETER[\"false_northing"); add_srs_wkt (p, 12, "\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXI"); add_srs_wkt (p, 13, "S[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\""); add_srs_wkt (p, 14, "EPSG\",\"5670\"]]"); p = add_epsg_def_ex (filter, first, last, 5671, "epsg", 5671, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4 (E-N)", 0, 0, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4"); add_srs_wkt (p, 1, " (E-N)\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_194"); add_srs_wkt (p, 2, "2_58\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359"); add_srs_wkt (p, 4, ",-0.053,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 8, "RITY[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 9, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",12],PARAMETER[\"scale_factor\",1],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",4500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"5671\"]]"); p = add_epsg_def_ex (filter, first, last, 5672, "epsg", 5672, "Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5 (E-N)", 0, 0, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_58", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0."); add_proj4text (p, 2, "844,-0.84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5"); add_srs_wkt (p, 1, " (E-N)\",GEOGCS[\"Pulkovo 1942(58)\",DATUM[\"Pulkovo_194"); add_srs_wkt (p, 2, "2_58\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7024\"]],TOWGS84[33.4,-146.6,-76.3,-0.359"); add_srs_wkt (p, 4, ",-0.053,0.844,-0.84],AUTHORITY[\"EPSG\",\"6179\"]],PRIME"); add_srs_wkt (p, 5, "M[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"d"); add_srs_wkt (p, 6, "egree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]]"); add_srs_wkt (p, 7, ",AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHO"); add_srs_wkt (p, 8, "RITY[\"EPSG\",\"4179\"]],PROJECTION[\"Transverse_Mercato"); add_srs_wkt (p, 9, "r\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"cen"); add_srs_wkt (p, 10, "tral_meridian\",15],PARAMETER[\"scale_factor\",1],PARAME"); add_srs_wkt (p, 11, "TER[\"false_easting\",5500000],PARAMETER[\"false_northin"); add_srs_wkt (p, 12, "g\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AX"); add_srs_wkt (p, 13, "IS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY["); add_srs_wkt (p, 14, "\"EPSG\",\"5672\"]]"); p = add_epsg_def_ex (filter, first, last, 5673, "epsg", 5673, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3 (E-N)", 0, 0, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_de"); add_proj4text (p, 2, "fs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3"); add_srs_wkt (p, 1, " (E-N)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_194"); add_srs_wkt (p, 2, "2_83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4178\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",9],PARAM"); add_srs_wkt (p, 10, "ETER[\"scale_factor\",1],PARAMETER[\"false_easting\",350"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS"); add_srs_wkt (p, 13, "[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5673\"]]"); p = add_epsg_def_ex (filter, first, last, 5674, "epsg", 5674, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4 (E-N)", 0, 0, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4"); add_srs_wkt (p, 1, " (E-N)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_194"); add_srs_wkt (p, 2, "2_83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4178\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",12],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",45"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 13, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5674\"]]"); p = add_epsg_def_ex (filter, first, last, 5675, "epsg", 5675, "Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5 (E-N)", 0, 0, "Krassowsky 1940", "Greenwich", "Pulkovo_1942_83", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_d"); add_proj4text (p, 2, "efs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5"); add_srs_wkt (p, 1, " (E-N)\",GEOGCS[\"Pulkovo 1942(83)\",DATUM[\"Pulkovo_194"); add_srs_wkt (p, 2, "2_83\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7024\"]],TOWGS84[26,-121,-78,0,0,0,0],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6178\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4178\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",15],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",55"); add_srs_wkt (p, 11, "00000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,"); add_srs_wkt (p, 12, "AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXI"); add_srs_wkt (p, 13, "S[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5675\"]]"); p = add_epsg_def_ex (filter, first, last, 5676, "epsg", 5676, "DHDN / 3-degree Gauss-Kruger zone 2 (E-N)", 0, 0, "Bessel 1841", "Greenwich", "Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +towgs84=598.1,73.7,418.2,0.202,0.045,-2.45"); add_proj4text (p, 2, "5,6.7 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 2 (E-N)\",GEO"); add_srs_wkt (p, 1, "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",6],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",2500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 13, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "5676\"]]"); p = add_epsg_def_ex (filter, first, last, 5677, "epsg", 5677, "DHDN / 3-degree Gauss-Kruger zone 3 (E-N)", 0, 0, "Bessel 1841", "Greenwich", "Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +towgs84=598.1,73.7,418.2,0.202,0.045,-2.45"); add_proj4text (p, 2, "5,6.7 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 3 (E-N)\",GEO"); add_srs_wkt (p, 1, "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",9],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",3500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 13, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "5677\"]]"); p = add_epsg_def_ex (filter, first, last, 5678, "epsg", 5678, "DHDN / 3-degree Gauss-Kruger zone 4 (E-N)", 0, 0, "Bessel 1841", "Greenwich", "Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=598.1,73.7,418.2,0.202,0.045,-2.4"); add_proj4text (p, 2, "55,6.7 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 4 (E-N)\",GEO"); add_srs_wkt (p, 1, "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",12],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",4500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 13, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "5678\"]]"); p = add_epsg_def_ex (filter, first, last, 5679, "epsg", 5679, "DHDN / 3-degree Gauss-Kruger zone 5 (E-N)", 0, 0, "Bessel 1841", "Greenwich", "Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +towgs84=598.1,73.7,418.2,0.202,0.045,-2.4"); add_proj4text (p, 2, "55,6.7 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 5 (E-N)\",GEO"); add_srs_wkt (p, 1, "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",15],PARAMETER[\"scale_factor\",1],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_easting\",5500000],PARAMETER[\"false_northing\",0],UNI"); add_srs_wkt (p, 12, "T[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easti"); add_srs_wkt (p, 13, "ng\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "5679\"]]"); p = add_epsg_def_ex (filter, first, last, 5680, "epsg", 5680, "DHDN / 3-degree Gauss-Kruger zone 1 (E-N)", 0, 0, "Bessel 1841", "Greenwich", "Deutsches_Hauptdreiecksnetz", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=3 +k=1 +x_0=1500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +towgs84=598.1,73.7,418.2,0.202,0.045,-2.45"); add_proj4text (p, 2, "5,6.7 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DHDN / 3-degree Gauss-Kruger zone 1 (E-N)\",GEO"); add_srs_wkt (p, 1, "GCS[\"DHDN\",DATUM[\"Deutsches_Hauptdreiecksnetz\",SPHER"); add_srs_wkt (p, 2, "OID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\""); add_srs_wkt (p, 3, "EPSG\",\"7004\"]],TOWGS84[598.1,73.7,418.2,0.202,0.045,-"); add_srs_wkt (p, 4, "2.455,6.7],AUTHORITY[\"EPSG\",\"6314\"]],PRIMEM[\"Greenw"); add_srs_wkt (p, 5, "ich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0."); add_srs_wkt (p, 6, "0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"La"); add_srs_wkt (p, 7, "titude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPS"); add_srs_wkt (p, 8, "G\",\"4314\"]],PROJECTION[\"Transverse_Mercator\"],PARAM"); add_srs_wkt (p, 9, "ETER[\"latitude_of_origin\",0],PARAMETER[\"central_merid"); add_srs_wkt (p, 10, "ian\",3],PARAMETER[\"scale_factor\",1],PARAMETER[\"false"); add_srs_wkt (p, 11, "_easting\",1500000],PARAMETER[\"false_northing\",0],UNIT"); add_srs_wkt (p, 12, "[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Eastin"); add_srs_wkt (p, 13, "g\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 14, "5680\"]]"); p = add_epsg_def_ex (filter, first, last, 5681, "epsg", 5681, "DB_REF", 1, 1, "Bessel 1841", "Greenwich", "Deutsche_Bahn_Reference_System", "none", "degree", "Latitude", "North", "Longitude", "East"); add_proj4text (p, 0, "+proj=longlat +ellps=bessel +no_defs"); add_srs_wkt (p, 0, "GEOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_Reference_System"); add_srs_wkt (p, 1, "\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"1081\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"5681\"]]"); p = add_epsg_def_ex (filter, first, last, 5682, "epsg", 5682, "DB_REF / 3-degree Gauss-Kruger zone 2 (E-N)", 0, 0, "Bessel 1841", "Greenwich", "Deutsche_Bahn_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DB_REF / 3-degree Gauss-Kruger zone 2 (E-N)\",G"); add_srs_wkt (p, 1, "EOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_Reference_System\""); add_srs_wkt (p, 2, ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"1081\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"5681\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",6],PARAMETER[\"scale_factor\",1],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",2500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"5682\"]]"); p = add_epsg_def_ex (filter, first, last, 5683, "epsg", 5683, "DB_REF / 3-degree Gauss-Kruger zone 3 (E-N)", 0, 0, "Bessel 1841", "Greenwich", "Deutsche_Bahn_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DB_REF / 3-degree Gauss-Kruger zone 3 (E-N)\",G"); add_srs_wkt (p, 1, "EOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_Reference_System\""); add_srs_wkt (p, 2, ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"1081\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"5681\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",9],PARAMETER[\"scale_factor\",1],PARAM"); add_srs_wkt (p, 10, "ETER[\"false_easting\",3500000],PARAMETER[\"false_northi"); add_srs_wkt (p, 11, "ng\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],A"); add_srs_wkt (p, 12, "XIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY"); add_srs_wkt (p, 13, "[\"EPSG\",\"5683\"]]"); p = add_epsg_def_ex (filter, first, last, 5684, "epsg", 5684, "DB_REF / 3-degree Gauss-Kruger zone 4 (E-N)", 0, 0, "Bessel 1841", "Greenwich", "Deutsche_Bahn_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DB_REF / 3-degree Gauss-Kruger zone 4 (E-N)\",G"); add_srs_wkt (p, 1, "EOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_Reference_System\""); add_srs_wkt (p, 2, ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"1081\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"5681\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",12],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",4500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"5684\"]]"); p = add_epsg_def_ex (filter, first, last, 5685, "epsg", 5685, "DB_REF / 3-degree Gauss-Kruger zone 5 (E-N)", 0, 0, "Bessel 1841", "Greenwich", "Deutsche_Bahn_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"DB_REF / 3-degree Gauss-Kruger zone 5 (E-N)\",G"); add_srs_wkt (p, 1, "EOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_Reference_System\""); add_srs_wkt (p, 2, ",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHOR"); add_srs_wkt (p, 3, "ITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EPSG\",\"1081\"]],PR"); add_srs_wkt (p, 4, "IMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT["); add_srs_wkt (p, 5, "\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\""); add_srs_wkt (p, 6, "]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUT"); add_srs_wkt (p, 7, "HORITY[\"EPSG\",\"5681\"]],PROJECTION[\"Transverse_Merca"); add_srs_wkt (p, 8, "tor\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"c"); add_srs_wkt (p, 9, "entral_meridian\",15],PARAMETER[\"scale_factor\",1],PARA"); add_srs_wkt (p, 10, "METER[\"false_easting\",5500000],PARAMETER[\"false_north"); add_srs_wkt (p, 11, "ing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 12, "AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORIT"); add_srs_wkt (p, 13, "Y[\"EPSG\",\"5685\"]]"); p = add_epsg_def_ex (filter, first, last, 5698, "epsg", 5698, "RGF93 / Lambert-93", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_Francais_1993", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0="); add_proj4text (p, 1, "700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"RGF93 / Lambert-93 + NGF-IGN69 height\",PROJC"); add_srs_wkt (p, 1, "S[\"RGF93 / Lambert-93\",GEOGCS[\"RGF93\",DATUM[\"Reseau"); add_srs_wkt (p, 2, "_Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 3, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 4, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 9, "P\"],PARAMETER[\"standard_parallel_1\",49],PARAMETER[\"s"); add_srs_wkt (p, 10, "tandard_parallel_2\",44],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",46.5],PARAMETER[\"central_meridian\",3],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_easting\",700000],PARAMETER[\"false_northing\",660000"); add_srs_wkt (p, 13, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2154\"]"); add_srs_wkt (p, 15, "],VERT_CS[\"NGF-IGN69 height\",VERT_DATUM[\"Nivellement "); add_srs_wkt (p, 16, "General de la France - IGN69\",2005,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 17, "5119\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 18, "AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5720\"]],AUTHORITY["); add_srs_wkt (p, 19, "\"EPSG\",\"5698\"]]"); p = add_epsg_def_ex (filter, first, last, 5699, "epsg", 5699, "RGF93 / Lambert-93", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_Francais_1993", "Lambert_Conformal_Conic_2SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0="); add_proj4text (p, 1, "700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 "); add_proj4text (p, 2, "+units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"RGF93 / Lambert-93 + NGF-IGN78 height\",PROJC"); add_srs_wkt (p, 1, "S[\"RGF93 / Lambert-93\",GEOGCS[\"RGF93\",DATUM[\"Reseau"); add_srs_wkt (p, 2, "_Geodesique_Francais_1993\",SPHEROID[\"GRS 1980\",637813"); add_srs_wkt (p, 3, "7,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,"); add_srs_wkt (p, 4, "0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6171\"]],PRIMEM[\"Gree"); add_srs_wkt (p, 5, "nwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\","); add_srs_wkt (p, 6, "0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\""); add_srs_wkt (p, 7, "Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"E"); add_srs_wkt (p, 8, "PSG\",\"4171\"]],PROJECTION[\"Lambert_Conformal_Conic_2S"); add_srs_wkt (p, 9, "P\"],PARAMETER[\"standard_parallel_1\",49],PARAMETER[\"s"); add_srs_wkt (p, 10, "tandard_parallel_2\",44],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 11, ",46.5],PARAMETER[\"central_meridian\",3],PARAMETER[\"fal"); add_srs_wkt (p, 12, "se_easting\",700000],PARAMETER[\"false_northing\",660000"); add_srs_wkt (p, 13, "0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\""); add_srs_wkt (p, 14, "X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"2154\"]"); add_srs_wkt (p, 15, "],VERT_CS[\"NGF-IGN78 height\",VERT_DATUM[\"Nivellement "); add_srs_wkt (p, 16, "General de la France - IGN78\",2005,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 17, "5120\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],"); add_srs_wkt (p, 18, "AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5721\"]],AUTHORITY["); add_srs_wkt (p, 19, "\"EPSG\",\"5699\"]]"); p = add_epsg_def_ex (filter, first, last, 5700, "epsg", 5700, "NZGD2000 / UTM zone 1S", 0, 0, "GRS 1980", "Greenwich", "New_Zealand_Geodetic_Datum_2000", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=1 +south +ellps=GRS80 +towgs84=0,0,0,0,0"); add_proj4text (p, 1, ",0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"NZGD2000 / UTM zone 1S\",GEOGCS[\"NZGD2000\",DA"); add_srs_wkt (p, 1, "TUM[\"New_Zealand_Geodetic_Datum_2000\",SPHEROID[\"GRS 1"); add_srs_wkt (p, 2, "980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]"); add_srs_wkt (p, 3, "],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6167\"]],P"); add_srs_wkt (p, 4, "RIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT"); add_srs_wkt (p, 5, "[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122"); add_srs_wkt (p, 6, "\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],A"); add_srs_wkt (p, 7, "UTHORITY[\"EPSG\",\"4167\"]],PROJECTION[\"Transverse_Mer"); add_srs_wkt (p, 8, "cator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\""); add_srs_wkt (p, 9, "central_meridian\",-177],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 10, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 11, "e_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 13, "ORTH],AUTHORITY[\"EPSG\",\"5700\"]]"); p = add_epsg_def_ex (filter, first, last, 5707, "epsg", 5707, "NTF (Paris) / Lambert zone I", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +"); add_proj4text (p, 2, "a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm"); add_proj4text (p, 3, "=paris +units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NTF (Paris) / Lambert zone I + NGF-IGN69 heig"); add_srs_wkt (p, 1, "ht\",PROJCS[\"NTF (Paris) / Lambert zone I\",GEOGCS[\"NT"); add_srs_wkt (p, 2, "F (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_Par"); add_srs_wkt (p, 3, "is\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.466021"); add_srs_wkt (p, 4, "2936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60,3"); add_srs_wkt (p, 5, "20,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Paris"); add_srs_wkt (p, 6, "\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"grad\""); add_srs_wkt (p, 7, ",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AXIS["); add_srs_wkt (p, 8, "\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\""); add_srs_wkt (p, 9, "EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Conic_1"); add_srs_wkt (p, 10, "SP\"],PARAMETER[\"latitude_of_origin\",55],PARAMETER[\"c"); add_srs_wkt (p, 11, "entral_meridian\",0],PARAMETER[\"scale_factor\",0.999877"); add_srs_wkt (p, 12, "341],PARAMETER[\"false_easting\",600000],PARAMETER[\"fal"); add_srs_wkt (p, 13, "se_northing\",1200000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 14, "\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORI"); add_srs_wkt (p, 15, "TY[\"EPSG\",\"27571\"]],VERT_CS[\"NGF-IGN69 height\",VER"); add_srs_wkt (p, 16, "T_DATUM[\"Nivellement General de la France - IGN69\",200"); add_srs_wkt (p, 17, "5,AUTHORITY[\"EPSG\",\"5119\"]],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 18, "TY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 19, ",\"5720\"]],AUTHORITY[\"EPSG\",\"5707\"]]"); p = add_epsg_def_ex (filter, first, last, 5708, "epsg", 5708, "NTF (Paris) / Lambert zone IV", 0, 0, "Clarke 1880 (IGN)", "Paris", "Nouvelle_Triangulation_Francaise_Paris", "Lambert_Conformal_Conic_1SP", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000"); add_proj4text (p, 1, "001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.3"); add_proj4text (p, 2, "69 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0"); add_proj4text (p, 3, " +pm=paris +units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"NTF (Paris) / Lambert zone IV + NGF-IGN78 hei"); add_srs_wkt (p, 1, "ght\",PROJCS[\"NTF (Paris) / Lambert zone IV\",GEOGCS[\""); add_srs_wkt (p, 2, "NTF (Paris)\",DATUM[\"Nouvelle_Triangulation_Francaise_P"); add_srs_wkt (p, 3, "aris\",SPHEROID[\"Clarke 1880 (IGN)\",6378249.2,293.4660"); add_srs_wkt (p, 4, "212936269,AUTHORITY[\"EPSG\",\"7011\"]],TOWGS84[-168,-60"); add_srs_wkt (p, 5, ",320,0,0,0,0],AUTHORITY[\"EPSG\",\"6807\"]],PRIMEM[\"Par"); add_srs_wkt (p, 6, "is\",2.33722917,AUTHORITY[\"EPSG\",\"8903\"]],UNIT[\"gra"); add_srs_wkt (p, 7, "d\",0.01570796326794897,AUTHORITY[\"EPSG\",\"9105\"]],AX"); add_srs_wkt (p, 8, "IS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORIT"); add_srs_wkt (p, 9, "Y[\"EPSG\",\"4807\"]],PROJECTION[\"Lambert_Conformal_Con"); add_srs_wkt (p, 10, "ic_1SP\"],PARAMETER[\"latitude_of_origin\",46.85],PARAME"); add_srs_wkt (p, 11, "TER[\"central_meridian\",0],PARAMETER[\"scale_factor\",0"); add_srs_wkt (p, 12, ".99994471],PARAMETER[\"false_easting\",234.358],PARAMETE"); add_srs_wkt (p, 13, "R[\"false_northing\",4185861.369],UNIT[\"metre\",1,AUTHO"); add_srs_wkt (p, 14, "RITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NOR"); add_srs_wkt (p, 15, "TH],AUTHORITY[\"EPSG\",\"27574\"]],VERT_CS[\"NGF-IGN78 h"); add_srs_wkt (p, 16, "eight\",VERT_DATUM[\"Nivellement General de la France - "); add_srs_wkt (p, 17, "IGN78\",2005,AUTHORITY[\"EPSG\",\"5120\"]],UNIT[\"metre\""); add_srs_wkt (p, 18, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORI"); add_srs_wkt (p, 19, "TY[\"EPSG\",\"5721\"]],AUTHORITY[\"EPSG\",\"5708\"]]"); p = add_epsg_def_ex (filter, first, last, 5825, "epsg", 5825, "AGD66 / ACT Standard Grid", 0, 0, "Australian National Spheroid", "Greenwich", "Australian_Geodetic_Datum_1966", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=-35.31773627777778 +lon_0=149.0092948"); add_proj4text (p, 1, "305555 +k=1.000086 +x_0=200000 +y_0=600000 +ellps=aust_S"); add_proj4text (p, 2, "A +towgs84=-117.808,-51.536,137.784,0.303,0.446,0.234,-0"); add_proj4text (p, 3, ".29 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"AGD66 / ACT Standard Grid\",GEOGCS[\"AGD66\",DA"); add_srs_wkt (p, 1, "TUM[\"Australian_Geodetic_Datum_1966\",SPHEROID[\"Austra"); add_srs_wkt (p, 2, "lian National Spheroid\",6378160,298.25,AUTHORITY[\"EPSG"); add_srs_wkt (p, 3, "\",\"7003\"]],TOWGS84[-117.808,-51.536,137.784,0.303,0.4"); add_srs_wkt (p, 4, "46,0.234,-0.29],AUTHORITY[\"EPSG\",\"6202\"]],PRIMEM[\"G"); add_srs_wkt (p, 5, "reenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree"); add_srs_wkt (p, 6, "\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS"); add_srs_wkt (p, 7, "[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY["); add_srs_wkt (p, 8, "\"EPSG\",\"4202\"]],PROJECTION[\"Transverse_Mercator\"],"); add_srs_wkt (p, 9, "PARAMETER[\"latitude_of_origin\",-35.31773627777778],PAR"); add_srs_wkt (p, 10, "AMETER[\"central_meridian\",149.0092948305555],PARAMETER"); add_srs_wkt (p, 11, "[\"scale_factor\",1.000086],PARAMETER[\"false_easting\","); add_srs_wkt (p, 12, "200000],PARAMETER[\"false_northing\",600000],UNIT[\"metr"); add_srs_wkt (p, 13, "e\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 14, "T],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5825\"]"); add_srs_wkt (p, 15, "]"); p = add_epsg_def_ex (filter, first, last, 5832, "epsg", 5832, "DB_REF / 3-degree Gauss-Kruger zone 2 (E-N)", 0, 0, "Bessel 1841", "Greenwich", "Deutsche_Bahn_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"DB_REF / 3-degree Gauss-Kruger zone 2 (E-N) +"); add_srs_wkt (p, 1, " DHHN92 height\",PROJCS[\"DB_REF / 3-degree Gauss-Kruger"); add_srs_wkt (p, 2, " zone 2 (E-N)\",GEOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_"); add_srs_wkt (p, 3, "Reference_System\",SPHEROID[\"Bessel 1841\",6377397.155,"); add_srs_wkt (p, 4, "299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 5, "SG\",\"1081\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 8, "gitude\",EAST],AUTHORITY[\"EPSG\",\"5681\"]],PROJECTION["); add_srs_wkt (p, 9, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",6],PARAMETER[\"scale_"); add_srs_wkt (p, 11, "factor\",1],PARAMETER[\"false_easting\",2500000],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"5682\"]],VERT_CS[\"DHHN92 h"); add_srs_wkt (p, 15, "eight\",VERT_DATUM[\"Deutsches Haupthoehennetz 1992\",20"); add_srs_wkt (p, 16, "05,AUTHORITY[\"EPSG\",\"5181\"]],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 17, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG"); add_srs_wkt (p, 18, "\",\"5783\"]],AUTHORITY[\"EPSG\",\"5832\"]]"); p = add_epsg_def_ex (filter, first, last, 5833, "epsg", 5833, "DB_REF / 3-degree Gauss-Kruger zone 3 (E-N)", 0, 0, "Bessel 1841", "Greenwich", "Deutsche_Bahn_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=bessel +units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"DB_REF / 3-degree Gauss-Kruger zone 3 (E-N) +"); add_srs_wkt (p, 1, " DHHN92 height\",PROJCS[\"DB_REF / 3-degree Gauss-Kruger"); add_srs_wkt (p, 2, " zone 3 (E-N)\",GEOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_"); add_srs_wkt (p, 3, "Reference_System\",SPHEROID[\"Bessel 1841\",6377397.155,"); add_srs_wkt (p, 4, "299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 5, "SG\",\"1081\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 8, "gitude\",EAST],AUTHORITY[\"EPSG\",\"5681\"]],PROJECTION["); add_srs_wkt (p, 9, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",9],PARAMETER[\"scale_"); add_srs_wkt (p, 11, "factor\",1],PARAMETER[\"false_easting\",3500000],PARAMET"); add_srs_wkt (p, 12, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 13, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"5683\"]],VERT_CS[\"DHHN92 h"); add_srs_wkt (p, 15, "eight\",VERT_DATUM[\"Deutsches Haupthoehennetz 1992\",20"); add_srs_wkt (p, 16, "05,AUTHORITY[\"EPSG\",\"5181\"]],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 17, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG"); add_srs_wkt (p, 18, "\",\"5783\"]],AUTHORITY[\"EPSG\",\"5833\"]]"); p = add_epsg_def_ex (filter, first, last, 5834, "epsg", 5834, "DB_REF / 3-degree Gauss-Kruger zone 4 (E-N)", 0, 0, "Bessel 1841", "Greenwich", "Deutsche_Bahn_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"DB_REF / 3-degree Gauss-Kruger zone 4 (E-N) +"); add_srs_wkt (p, 1, " DHHN92 height\",PROJCS[\"DB_REF / 3-degree Gauss-Kruger"); add_srs_wkt (p, 2, " zone 4 (E-N)\",GEOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_"); add_srs_wkt (p, 3, "Reference_System\",SPHEROID[\"Bessel 1841\",6377397.155,"); add_srs_wkt (p, 4, "299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 5, "SG\",\"1081\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 8, "gitude\",EAST],AUTHORITY[\"EPSG\",\"5681\"]],PROJECTION["); add_srs_wkt (p, 9, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",12],PARAMETER[\"scale"); add_srs_wkt (p, 11, "_factor\",1],PARAMETER[\"false_easting\",4500000],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"5684\"]],VERT_CS[\"DHHN92 h"); add_srs_wkt (p, 15, "eight\",VERT_DATUM[\"Deutsches Haupthoehennetz 1992\",20"); add_srs_wkt (p, 16, "05,AUTHORITY[\"EPSG\",\"5181\"]],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 17, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG"); add_srs_wkt (p, 18, "\",\"5783\"]],AUTHORITY[\"EPSG\",\"5834\"]]"); p = add_epsg_def_ex (filter, first, last, 5835, "epsg", 5835, "DB_REF / 3-degree Gauss-Kruger zone 5 (E-N)", 0, 0, "Bessel 1841", "Greenwich", "Deutsche_Bahn_Reference_System", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=bessel +units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"DB_REF / 3-degree Gauss-Kruger zone 5 (E-N) +"); add_srs_wkt (p, 1, " DHHN92 height\",PROJCS[\"DB_REF / 3-degree Gauss-Kruger"); add_srs_wkt (p, 2, " zone 5 (E-N)\",GEOGCS[\"DB_REF\",DATUM[\"Deutsche_Bahn_"); add_srs_wkt (p, 3, "Reference_System\",SPHEROID[\"Bessel 1841\",6377397.155,"); add_srs_wkt (p, 4, "299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],AUTHORITY[\"EP"); add_srs_wkt (p, 5, "SG\",\"1081\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"); add_srs_wkt (p, 7, "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Lon"); add_srs_wkt (p, 8, "gitude\",EAST],AUTHORITY[\"EPSG\",\"5681\"]],PROJECTION["); add_srs_wkt (p, 9, "\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\""); add_srs_wkt (p, 10, ",0],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale"); add_srs_wkt (p, 11, "_factor\",1],PARAMETER[\"false_easting\",5500000],PARAME"); add_srs_wkt (p, 12, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 13, "PSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 14, ",NORTH],AUTHORITY[\"EPSG\",\"5685\"]],VERT_CS[\"DHHN92 h"); add_srs_wkt (p, 15, "eight\",VERT_DATUM[\"Deutsches Haupthoehennetz 1992\",20"); add_srs_wkt (p, 16, "05,AUTHORITY[\"EPSG\",\"5181\"]],UNIT[\"metre\",1,AUTHOR"); add_srs_wkt (p, 17, "ITY[\"EPSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG"); add_srs_wkt (p, 18, "\",\"5783\"]],AUTHORITY[\"EPSG\",\"5835\"]]"); p = add_epsg_def_ex (filter, first, last, 5836, "epsg", 5836, "Yemen NGN96 / UTM zone 37N", 0, 0, "WGS 84", "Greenwich", "Yemen_National_Geodetic_Network_1996", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=37 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Yemen NGN96 / UTM zone 37N\",GEOGCS[\"Yemen NGN"); add_srs_wkt (p, 1, "96\",DATUM[\"Yemen_National_Geodetic_Network_1996\",SPHE"); add_srs_wkt (p, 2, "ROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6163\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4163\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",39],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"5836\"]]"); p = add_epsg_def_ex (filter, first, last, 5837, "epsg", 5837, "Yemen NGN96 / UTM zone 40N", 0, 0, "WGS 84", "Greenwich", "Yemen_National_Geodetic_Network_1996", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=40 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Yemen NGN96 / UTM zone 40N\",GEOGCS[\"Yemen NGN"); add_srs_wkt (p, 1, "96\",DATUM[\"Yemen_National_Geodetic_Network_1996\",SPHE"); add_srs_wkt (p, 2, "ROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6163\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4163\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",57],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9996],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\""); add_srs_wkt (p, 13, ",NORTH],AUTHORITY[\"EPSG\",\"5837\"]]"); p = add_epsg_def_ex (filter, first, last, 5839, "epsg", 5839, "Peru96 / UTM zone 17S", 0, 0, "GRS 1980", "Greenwich", "Peru96", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,"); add_proj4text (p, 1, "0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Peru96 / UTM zone 17S\",GEOGCS[\"Peru96\",DATUM"); add_srs_wkt (p, 1, "[\"Peru96\",SPHEROID[\"GRS 1980\",6378137,298.257222101,"); add_srs_wkt (p, 2, "AUTHORITY[\"EPSG\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUT"); add_srs_wkt (p, 3, "HORITY[\"EPSG\",\"1067\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 4, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 5, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 6, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"5373\"]]"); add_srs_wkt (p, 7, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 8, "e_of_origin\",0],PARAMETER[\"central_meridian\",-81],PAR"); add_srs_wkt (p, 9, "AMETER[\"scale_factor\",0.9996],PARAMETER[\"false_eastin"); add_srs_wkt (p, 10, "g\",500000],PARAMETER[\"false_northing\",10000000],UNIT["); add_srs_wkt (p, 11, "\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting"); add_srs_wkt (p, 12, "\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"5"); add_srs_wkt (p, 13, "839\"]]"); p = add_epsg_def_ex (filter, first, last, 5842, "epsg", 5842, "WGS 84 / TM 12 SE", 0, 0, "WGS 84", "Greenwich", "WGS_1984", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +datum=WGS84 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"WGS 84 / TM 12 SE\",GEOGCS[\"WGS 84\",DATUM[\"W"); add_srs_wkt (p, 1, "GS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTH"); add_srs_wkt (p, 2, "ORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],"); add_srs_wkt (p, 3, "PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNI"); add_srs_wkt (p, 4, "T[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"912"); add_srs_wkt (p, 5, "2\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],"); add_srs_wkt (p, 6, "AUTHORITY[\"EPSG\",\"4326\"]],PROJECTION[\"Transverse_Me"); add_srs_wkt (p, 7, "rcator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER["); add_srs_wkt (p, 8, "\"central_meridian\",12],PARAMETER[\"scale_factor\",0.99"); add_srs_wkt (p, 9, "96],PARAMETER[\"false_easting\",500000],PARAMETER[\"fals"); add_srs_wkt (p, 10, "e_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 11, "\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",N"); add_srs_wkt (p, 12, "ORTH],AUTHORITY[\"EPSG\",\"5842\"]]"); p = add_epsg_def_ex (filter, first, last, 5844, "epsg", 5844, "RGRDC 2005 / Congo TM zone 30", 0, 0, "GRS 1980", "Greenwich", "Reseau_Geodesique_de_la_RDC_2005", "Transverse_Mercator", "metre", "X", "East", "Y", "North"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=0.9999 +x_0=500000 +y_"); add_proj4text (p, 1, "0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "PROJCS[\"RGRDC 2005 / Congo TM zone 30\",GEOGCS[\"RGRDC "); add_srs_wkt (p, 1, "2005\",DATUM[\"Reseau_Geodesique_de_la_RDC_2005\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "1033\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4046\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",30],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9999],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORI"); add_srs_wkt (p, 12, "TY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH"); add_srs_wkt (p, 13, "],AUTHORITY[\"EPSG\",\"5844\"]]"); p = add_epsg_def_ex (filter, first, last, 5845, "epsg", 5845, "SWEREF99 TM", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +"); add_proj4text (p, 1, "units=m +vunits=m +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"SWEREF99 TM + RH2000 height\",PROJCS[\"SWEREF"); add_srs_wkt (p, 1, "99 TM\",GEOGCS[\"SWEREF99\",DATUM[\"SWEREF99\",SPHEROID["); add_srs_wkt (p, 2, "\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 3, "7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"661"); add_srs_wkt (p, 4, "9\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4619\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",15],PARAMETER[\"scale_factor\""); add_srs_wkt (p, 10, ",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\""); add_srs_wkt (p, 11, "false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 12, "\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\",EAS"); add_srs_wkt (p, 13, "T],AUTHORITY[\"EPSG\",\"3006\"]],VERT_CS[\"RH2000 height"); add_srs_wkt (p, 14, "\",VERT_DATUM[\"Rikets hojdsystem 2000\",2005,AUTHORITY["); add_srs_wkt (p, 15, "\"EPSG\",\"5208\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG\","); add_srs_wkt (p, 16, "\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5613\"]]"); add_srs_wkt (p, 17, ",AUTHORITY[\"EPSG\",\"5845\"]]"); p = add_epsg_def_ex (filter, first, last, 5846, "epsg", 5846, "SWEREF99 12 00", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=150000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"SWEREF99 12 00 + RH2000 height\",PROJCS[\"SWE"); add_srs_wkt (p, 1, "REF99 12 00\",GEOGCS[\"SWEREF99\",DATUM[\"SWEREF99\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",12],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",1],PARAMETER[\"false_easting\",150000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"3007\"]],VERT_CS[\"RH2000 hei"); add_srs_wkt (p, 14, "ght\",VERT_DATUM[\"Rikets hojdsystem 2000\",2005,AUTHORI"); add_srs_wkt (p, 15, "TY[\"EPSG\",\"5208\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 16, "\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5613\""); add_srs_wkt (p, 17, "]],AUTHORITY[\"EPSG\",\"5846\"]]"); p = add_epsg_def_ex (filter, first, last, 5847, "epsg", 5847, "SWEREF99 13 30", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=13.5 +k=1 +x_0=150000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"SWEREF99 13 30 + RH2000 height\",PROJCS[\"SWE"); add_srs_wkt (p, 1, "REF99 13 30\",GEOGCS[\"SWEREF99\",DATUM[\"SWEREF99\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",13.5],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",1],PARAMETER[\"false_easting\",150000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"3008\"]],VERT_CS[\"RH2000 he"); add_srs_wkt (p, 14, "ight\",VERT_DATUM[\"Rikets hojdsystem 2000\",2005,AUTHOR"); add_srs_wkt (p, 15, "ITY[\"EPSG\",\"5208\"]],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5613"); add_srs_wkt (p, 17, "\"]],AUTHORITY[\"EPSG\",\"5847\"]]"); p = add_epsg_def_ex (filter, first, last, 5848, "epsg", 5848, "SWEREF99 15 00", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=150000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"SWEREF99 15 00 + RH2000 height\",PROJCS[\"SWE"); add_srs_wkt (p, 1, "REF99 15 00\",GEOGCS[\"SWEREF99\",DATUM[\"SWEREF99\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",15],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",1],PARAMETER[\"false_easting\",150000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"3009\"]],VERT_CS[\"RH2000 hei"); add_srs_wkt (p, 14, "ght\",VERT_DATUM[\"Rikets hojdsystem 2000\",2005,AUTHORI"); add_srs_wkt (p, 15, "TY[\"EPSG\",\"5208\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 16, "\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5613\""); add_srs_wkt (p, 17, "]],AUTHORITY[\"EPSG\",\"5848\"]]"); p = add_epsg_def_ex (filter, first, last, 5849, "epsg", 5849, "SWEREF99 16 30", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=16.5 +k=1 +x_0=150000 +y_0=0"); add_proj4text (p, 1, " +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m "); add_proj4text (p, 2, "+no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"SWEREF99 16 30 + RH2000 height\",PROJCS[\"SWE"); add_srs_wkt (p, 1, "REF99 16 30\",GEOGCS[\"SWEREF99\",DATUM[\"SWEREF99\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",16.5],PARAMETER[\"scale"); add_srs_wkt (p, 10, "_factor\",1],PARAMETER[\"false_easting\",150000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"3010\"]],VERT_CS[\"RH2000 he"); add_srs_wkt (p, 14, "ight\",VERT_DATUM[\"Rikets hojdsystem 2000\",2005,AUTHOR"); add_srs_wkt (p, 15, "ITY[\"EPSG\",\"5208\"]],UNIT[\"metre\",1,AUTHORITY[\"EPS"); add_srs_wkt (p, 16, "G\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5613"); add_srs_wkt (p, 17, "\"]],AUTHORITY[\"EPSG\",\"5849\"]]"); p = add_epsg_def_ex (filter, first, last, 5850, "epsg", 5850, "SWEREF99 18 00", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=150000 +y_0=0 +"); add_proj4text (p, 1, "ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +n"); add_proj4text (p, 2, "o_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"SWEREF99 18 00 + RH2000 height\",PROJCS[\"SWE"); add_srs_wkt (p, 1, "REF99 18 00\",GEOGCS[\"SWEREF99\",DATUM[\"SWEREF99\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",18],PARAMETER[\"scale_f"); add_srs_wkt (p, 10, "actor\",1],PARAMETER[\"false_easting\",150000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 12, "\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting\","); add_srs_wkt (p, 13, "EAST],AUTHORITY[\"EPSG\",\"3011\"]],VERT_CS[\"RH2000 hei"); add_srs_wkt (p, 14, "ght\",VERT_DATUM[\"Rikets hojdsystem 2000\",2005,AUTHORI"); add_srs_wkt (p, 15, "TY[\"EPSG\",\"5208\"]],UNIT[\"metre\",1,AUTHORITY[\"EPSG"); add_srs_wkt (p, 16, "\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"5613\""); add_srs_wkt (p, 17, "]],AUTHORITY[\"EPSG\",\"5850\"]]"); p = add_epsg_def_ex (filter, first, last, 5851, "epsg", 5851, "SWEREF99 14 15", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=14.25 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"SWEREF99 14 15 + RH2000 height\",PROJCS[\"SWE"); add_srs_wkt (p, 1, "REF99 14 15\",GEOGCS[\"SWEREF99\",DATUM[\"SWEREF99\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",14.25],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",1],PARAMETER[\"false_easting\",150000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"3012\"]],VERT_CS[\"RH2000 "); add_srs_wkt (p, 14, "height\",VERT_DATUM[\"Rikets hojdsystem 2000\",2005,AUTH"); add_srs_wkt (p, 15, "ORITY[\"EPSG\",\"5208\"]],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 16, "PSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"56"); add_srs_wkt (p, 17, "13\"]],AUTHORITY[\"EPSG\",\"5851\"]]"); p = add_epsg_def_ex (filter, first, last, 5852, "epsg", 5852, "SWEREF99 15 45", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=15.75 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"SWEREF99 15 45 + RH2000 height\",PROJCS[\"SWE"); add_srs_wkt (p, 1, "REF99 15 45\",GEOGCS[\"SWEREF99\",DATUM[\"SWEREF99\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",15.75],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",1],PARAMETER[\"false_easting\",150000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"3013\"]],VERT_CS[\"RH2000 "); add_srs_wkt (p, 14, "height\",VERT_DATUM[\"Rikets hojdsystem 2000\",2005,AUTH"); add_srs_wkt (p, 15, "ORITY[\"EPSG\",\"5208\"]],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 16, "PSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"56"); add_srs_wkt (p, 17, "13\"]],AUTHORITY[\"EPSG\",\"5852\"]]"); p = add_epsg_def_ex (filter, first, last, 5853, "epsg", 5853, "SWEREF99 17 15", 0, 1, "GRS 1980", "Greenwich", "SWEREF99", "Transverse_Mercator", "metre", "Northing", "North", "Easting", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=17.25 +k=1 +x_0=150000 +y_0="); add_proj4text (p, 1, "0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m"); add_proj4text (p, 2, " +no_defs"); add_srs_wkt (p, 0, "COMPD_CS[\"SWEREF99 17 15 + RH2000 height\",PROJCS[\"SWE"); add_srs_wkt (p, 1, "REF99 17 15\",GEOGCS[\"SWEREF99\",DATUM[\"SWEREF99\",SPH"); add_srs_wkt (p, 2, "EROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPS"); add_srs_wkt (p, 3, "G\",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\""); add_srs_wkt (p, 4, ",\"6619\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 5, "8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\""); add_srs_wkt (p, 6, "EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longit"); add_srs_wkt (p, 7, "ude\",EAST],AUTHORITY[\"EPSG\",\"4619\"]],PROJECTION[\"T"); add_srs_wkt (p, 8, "ransverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0"); add_srs_wkt (p, 9, "],PARAMETER[\"central_meridian\",17.25],PARAMETER[\"scal"); add_srs_wkt (p, 10, "e_factor\",1],PARAMETER[\"false_easting\",150000],PARAME"); add_srs_wkt (p, 11, "TER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 12, "PSG\",\"9001\"]],AXIS[\"Northing\",NORTH],AXIS[\"Easting"); add_srs_wkt (p, 13, "\",EAST],AUTHORITY[\"EPSG\",\"3014\"]],VERT_CS[\"RH2000 "); add_srs_wkt (p, 14, "height\",VERT_DATUM[\"Rikets hojdsystem 2000\",2005,AUTH"); add_srs_wkt (p, 15, "ORITY[\"EPSG\",\"5208\"]],UNIT[\"metre\",1,AUTHORITY[\"E"); add_srs_wkt (p, 16, "PSG\",\"9001\"]],AXIS[\"Up\",UP],AUTHORITY[\"EPSG\",\"56"); add_srs_wkt (p, 17, "13\"]],AUTHORITY[\"EPSG\",\"5853\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/srsinit/epsg_inlined_05.c��������������������������������������������������0000664�0001750�0001750�00000544042�12544707704�017045� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* helper function for srs_init.c -- populating the SPATIAL_REF_SYS table this code was autogenerated by "auto_epsg_ext" on Wed May 27 18:50:23 2015 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite_private.h> #ifndef OMIT_EPSG /* full EPSG initialization enabled */ SPATIALITE_PRIVATE void initialize_epsg_05 (int filter, struct epsg_defs **first, struct epsg_defs **last) { /* initializing the EPSG defs list */ struct epsg_defs *p; p = add_epsg_def_ex (filter, first, last, 2527, "epsg", 2527, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 11", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 11\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",33],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "11500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2527\"]]"); p = add_epsg_def_ex (filter, first, last, 2528, "epsg", 2528, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 12", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 12\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",36],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "12500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2528\"]]"); p = add_epsg_def_ex (filter, first, last, 2529, "epsg", 2529, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 13", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 13\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",39],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "13500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2529\"]]"); p = add_epsg_def_ex (filter, first, last, 2530, "epsg", 2530, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 14", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 14\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",42],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "14500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2530\"]]"); p = add_epsg_def_ex (filter, first, last, 2531, "epsg", 2531, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 15", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 15\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",45],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "15500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2531\"]]"); p = add_epsg_def_ex (filter, first, last, 2532, "epsg", 2532, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 16", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=16500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 16\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",48],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "16500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2532\"]]"); p = add_epsg_def_ex (filter, first, last, 2533, "epsg", 2533, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 17", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=17500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 17\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",51],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "17500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2533\"]]"); p = add_epsg_def_ex (filter, first, last, 2534, "epsg", 2534, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 18", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=18500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 18\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",54],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "18500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2534\"]]"); p = add_epsg_def_ex (filter, first, last, 2535, "epsg", 2535, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 19", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=19500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 19\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",57],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "19500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2535\"]]"); p = add_epsg_def_ex (filter, first, last, 2536, "epsg", 2536, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 20", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=20500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 20\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",60],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "20500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2536\"]]"); p = add_epsg_def_ex (filter, first, last, 2537, "epsg", 2537, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 21", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=21500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 21\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",63],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "21500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2537\"]]"); p = add_epsg_def_ex (filter, first, last, 2538, "epsg", 2538, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 22", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=22500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 22\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",66],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "22500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2538\"]]"); p = add_epsg_def_ex (filter, first, last, 2539, "epsg", 2539, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 23", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=23500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 23\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",69],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "23500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2539\"]]"); p = add_epsg_def_ex (filter, first, last, 2540, "epsg", 2540, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 24", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=24500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 24\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",72],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "24500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2540\"]]"); p = add_epsg_def_ex (filter, first, last, 2541, "epsg", 2541, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 25", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 25\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",75],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "25500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2541\"]]"); p = add_epsg_def_ex (filter, first, last, 2542, "epsg", 2542, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 26", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 26\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",78],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "26500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2542\"]]"); p = add_epsg_def_ex (filter, first, last, 2543, "epsg", 2543, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 27", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 27\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",81],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "27500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2543\"]]"); p = add_epsg_def_ex (filter, first, last, 2544, "epsg", 2544, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 28", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 28\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",84],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "28500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2544\"]]"); p = add_epsg_def_ex (filter, first, last, 2545, "epsg", 2545, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 29", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 29\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",87],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "29500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2545\"]]"); p = add_epsg_def_ex (filter, first, last, 2546, "epsg", 2546, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 30", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 30\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",90],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "30500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2546\"]]"); p = add_epsg_def_ex (filter, first, last, 2547, "epsg", 2547, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 31", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 31\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",93],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "31500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2547\"]]"); p = add_epsg_def_ex (filter, first, last, 2548, "epsg", 2548, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 32", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 32\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",96],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "32500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2548\"]]"); p = add_epsg_def_ex (filter, first, last, 2549, "epsg", 2549, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 33", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0"); add_proj4text (p, 1, " +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-"); add_proj4text (p, 2, "0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 33\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",99],PA"); add_srs_wkt (p, 10, "RAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\","); add_srs_wkt (p, 11, "33500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2549\"]]"); p = add_epsg_def_ex (filter, first, last, 2550, "epsg", 2550, "Samboja / UTM zone 50S (deprecated)", 0, 0, "Bessel 1841", "Greenwich", "Samboja", "Transverse_Mercator", "metre", "Easting", "East", "Northing", "North"); add_proj4text (p, 0, "+proj=utm +zone=50 +south +ellps=bessel +towgs84=-404.78"); add_proj4text (p, 1, ",685.68,45.47,0,0,0,0 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Samboja / UTM zone 50S (deprecated)\",GEOGCS[\""); add_srs_wkt (p, 1, "Samboja\",DATUM[\"Samboja\",SPHEROID[\"Bessel 1841\",637"); add_srs_wkt (p, 2, "7397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS"); add_srs_wkt (p, 3, "84[-404.78,685.68,45.47,0,0,0,0],AUTHORITY[\"EPSG\",\"61"); add_srs_wkt (p, 4, "25\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\""); add_srs_wkt (p, 5, "]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 6, ",\"9108\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\","); add_srs_wkt (p, 7, "EAST],AUTHORITY[\"EPSG\",\"4125\"]],PROJECTION[\"Transve"); add_srs_wkt (p, 8, "rse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARA"); add_srs_wkt (p, 9, "METER[\"central_meridian\",117],PARAMETER[\"scale_factor"); add_srs_wkt (p, 10, "\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER"); add_srs_wkt (p, 11, "[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY"); add_srs_wkt (p, 12, "[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"North"); add_srs_wkt (p, 13, "ing\",NORTH],AUTHORITY[\"EPSG\",\"2550\"]]"); p = add_epsg_def_ex (filter, first, last, 2551, "epsg", 2551, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 34", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 34\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",102],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",34500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2551\"]]"); p = add_epsg_def_ex (filter, first, last, 2552, "epsg", 2552, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 35", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 35\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",105],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",35500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2552\"]]"); p = add_epsg_def_ex (filter, first, last, 2553, "epsg", 2553, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 36", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 36\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",108],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",36500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2553\"]]"); p = add_epsg_def_ex (filter, first, last, 2554, "epsg", 2554, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 37", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 37\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",111],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",37500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2554\"]]"); p = add_epsg_def_ex (filter, first, last, 2555, "epsg", 2555, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 38", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 38\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",114],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",38500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2555\"]]"); p = add_epsg_def_ex (filter, first, last, 2556, "epsg", 2556, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 39", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 39\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",117],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",39500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2556\"]]"); p = add_epsg_def_ex (filter, first, last, 2557, "epsg", 2557, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 40", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 40\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",120],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",40500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2557\"]]"); p = add_epsg_def_ex (filter, first, last, 2558, "epsg", 2558, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 41", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 41\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",123],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",41500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2558\"]]"); p = add_epsg_def_ex (filter, first, last, 2559, "epsg", 2559, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 42", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 42\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",126],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",42500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2559\"]]"); p = add_epsg_def_ex (filter, first, last, 2560, "epsg", 2560, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 43", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 43\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",129],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",43500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2560\"]]"); p = add_epsg_def_ex (filter, first, last, 2561, "epsg", 2561, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 44", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 44\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",132],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",44500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2561\"]]"); p = add_epsg_def_ex (filter, first, last, 2562, "epsg", 2562, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 45", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 45\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",135],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",45500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2562\"]]"); p = add_epsg_def_ex (filter, first, last, 2563, "epsg", 2563, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 46", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=46500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 46\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",138],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",46500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2563\"]]"); p = add_epsg_def_ex (filter, first, last, 2564, "epsg", 2564, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 47", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=47500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 47\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",141],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",47500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2564\"]]"); p = add_epsg_def_ex (filter, first, last, 2565, "epsg", 2565, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 48", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=48500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 48\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",144],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",48500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2565\"]]"); p = add_epsg_def_ex (filter, first, last, 2566, "epsg", 2566, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 49", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=49500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 49\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",147],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",49500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2566\"]]"); p = add_epsg_def_ex (filter, first, last, 2567, "epsg", 2567, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 50", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=50500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 50\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",150],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",50500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2567\"]]"); p = add_epsg_def_ex (filter, first, last, 2568, "epsg", 2568, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 51", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=51500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 51\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",153],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",51500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2568\"]]"); p = add_epsg_def_ex (filter, first, last, 2569, "epsg", 2569, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 52", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=52500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 52\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",156],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",52500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2569\"]]"); p = add_epsg_def_ex (filter, first, last, 2570, "epsg", 2570, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 53", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=53500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 53\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",159],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",53500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2570\"]]"); p = add_epsg_def_ex (filter, first, last, 2571, "epsg", 2571, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 54", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=54500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 54\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",162],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",54500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2571\"]]"); p = add_epsg_def_ex (filter, first, last, 2572, "epsg", 2572, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 55", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=55500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 55\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",165],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",55500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2572\"]]"); p = add_epsg_def_ex (filter, first, last, 2573, "epsg", 2573, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 56", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=56500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 56\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",168],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",56500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2573\"]]"); p = add_epsg_def_ex (filter, first, last, 2574, "epsg", 2574, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 57", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=57500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 57\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",171],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",57500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2574\"]]"); p = add_epsg_def_ex (filter, first, last, 2575, "epsg", 2575, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 58", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=58500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 58\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",174],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",58500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2575\"]]"); p = add_epsg_def_ex (filter, first, last, 2576, "epsg", 2576, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 59", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=59500000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 59\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",177],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",59500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2576\"]]"); p = add_epsg_def_ex (filter, first, last, 2577, "epsg", 2577, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 60 (deprecated)", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60000000 +y_0="); add_proj4text (p, 1, "0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,"); add_proj4text (p, 2, "-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 60 (d"); add_srs_wkt (p, 1, "eprecated)\",GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_194"); add_srs_wkt (p, 2, "2\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY"); add_srs_wkt (p, 3, "[\"EPSG\",\"7024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,"); add_srs_wkt (p, 4, "0.82,-0.12],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Green"); add_srs_wkt (p, 5, "wich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0"); add_srs_wkt (p, 6, ".0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"L"); add_srs_wkt (p, 7, "atitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EP"); add_srs_wkt (p, 8, "SG\",\"4284\"]],PROJECTION[\"Transverse_Mercator\"],PARA"); add_srs_wkt (p, 9, "METER[\"latitude_of_origin\",0],PARAMETER[\"central_meri"); add_srs_wkt (p, 10, "dian\",180],PARAMETER[\"scale_factor\",1],PARAMETER[\"fa"); add_srs_wkt (p, 11, "lse_easting\",60000000],PARAMETER[\"false_northing\",0],"); add_srs_wkt (p, 12, "UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\""); add_srs_wkt (p, 13, ",NORTH],AXIS[\"Y\",EAST],AUTHORITY[\"EPSG\",\"2577\"]]"); p = add_epsg_def_ex (filter, first, last, 2578, "epsg", 2578, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 61", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=61500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 61\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-177],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",61500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2578\"]]"); p = add_epsg_def_ex (filter, first, last, 2579, "epsg", 2579, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 62", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=62500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 62\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-174],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",62500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2579\"]]"); p = add_epsg_def_ex (filter, first, last, 2580, "epsg", 2580, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 63", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=63500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 63\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-171],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",63500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2580\"]]"); p = add_epsg_def_ex (filter, first, last, 2581, "epsg", 2581, "Pulkovo 1942 / 3-degree Gauss-Kruger zone 64", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=64500000 +y_0"); add_proj4text (p, 1, "=0 +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82"); add_proj4text (p, 2, ",-0.12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger zone 64\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",-168],"); add_srs_wkt (p, 10, "PARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",64500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\""); add_srs_wkt (p, 12, ",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS["); add_srs_wkt (p, 13, "\"Y\",EAST],AUTHORITY[\"EPSG\",\"2581\"]]"); p = add_epsg_def_ex (filter, first, last, 2582, "epsg", 2582, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 21E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 21E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",21],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2582\"]]"); p = add_epsg_def_ex (filter, first, last, 2583, "epsg", 2583, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 24E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 24E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",24],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2583\"]]"); p = add_epsg_def_ex (filter, first, last, 2584, "epsg", 2584, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 27E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 27E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",27],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2584\"]]"); p = add_epsg_def_ex (filter, first, last, 2585, "epsg", 2585, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 30E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 30E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",30],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2585\"]]"); p = add_epsg_def_ex (filter, first, last, 2586, "epsg", 2586, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 33E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 33E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",33],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2586\"]]"); p = add_epsg_def_ex (filter, first, last, 2587, "epsg", 2587, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 36E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 36E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",36],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2587\"]]"); p = add_epsg_def_ex (filter, first, last, 2588, "epsg", 2588, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 39E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 39E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",39],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2588\"]]"); p = add_epsg_def_ex (filter, first, last, 2589, "epsg", 2589, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 42E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 42E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",42],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2589\"]]"); p = add_epsg_def_ex (filter, first, last, 2590, "epsg", 2590, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 45E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 45E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",45],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2590\"]]"); p = add_epsg_def_ex (filter, first, last, 2591, "epsg", 2591, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 48E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 48E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",48],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2591\"]]"); p = add_epsg_def_ex (filter, first, last, 2592, "epsg", 2592, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 51E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 51E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",51],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2592\"]]"); p = add_epsg_def_ex (filter, first, last, 2593, "epsg", 2593, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 54E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 54E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",54],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2593\"]]"); p = add_epsg_def_ex (filter, first, last, 2594, "epsg", 2594, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 57E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 57E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",57],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2594\"]]"); p = add_epsg_def_ex (filter, first, last, 2595, "epsg", 2595, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 60E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 60E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",60],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2595\"]]"); p = add_epsg_def_ex (filter, first, last, 2596, "epsg", 2596, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 63E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 63E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",63],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2596\"]]"); p = add_epsg_def_ex (filter, first, last, 2597, "epsg", 2597, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 66E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 66E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",66],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2597\"]]"); p = add_epsg_def_ex (filter, first, last, 2598, "epsg", 2598, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 69E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 69E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",69],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2598\"]]"); p = add_epsg_def_ex (filter, first, last, 2599, "epsg", 2599, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 72E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 72E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",72],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2599\"]]"); p = add_epsg_def_ex (filter, first, last, 2600, "epsg", 2600, "Lietuvos Koordinoei Sistema 1994 (deprecated)", 0, 1, "GRS 1980", "Greenwich", "Lithuania_1994_ETRS89", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9998 +x_0=500000 +y_"); add_proj4text (p, 1, "0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_def"); add_proj4text (p, 2, "s"); add_srs_wkt (p, 0, "PROJCS[\"Lietuvos Koordinoei Sistema 1994 (deprecated)\""); add_srs_wkt (p, 1, ",GEOGCS[\"LKS94\",DATUM[\"Lithuania_1994_ETRS89\",SPHERO"); add_srs_wkt (p, 2, "ID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\""); add_srs_wkt (p, 3, ",\"7019\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\""); add_srs_wkt (p, 4, "6126\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"890"); add_srs_wkt (p, 5, "1\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPS"); add_srs_wkt (p, 6, "G\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude"); add_srs_wkt (p, 7, "\",EAST],AUTHORITY[\"EPSG\",\"4669\"]],PROJECTION[\"Tran"); add_srs_wkt (p, 8, "sverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],P"); add_srs_wkt (p, 9, "ARAMETER[\"central_meridian\",24],PARAMETER[\"scale_fact"); add_srs_wkt (p, 10, "or\",0.9998],PARAMETER[\"false_easting\",500000],PARAMET"); add_srs_wkt (p, 11, "ER[\"false_northing\",0],UNIT[\"metre\",1,AUTHORITY[\"EP"); add_srs_wkt (p, 12, "SG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\",EAST],AUTHO"); add_srs_wkt (p, 13, "RITY[\"EPSG\",\"2600\"]]"); p = add_epsg_def_ex (filter, first, last, 2601, "epsg", 2601, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 75E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 75E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",75],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2601\"]]"); p = add_epsg_def_ex (filter, first, last, 2602, "epsg", 2602, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 78E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 78E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",78],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2602\"]]"); p = add_epsg_def_ex (filter, first, last, 2603, "epsg", 2603, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 81E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 81E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",81],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2603\"]]"); p = add_epsg_def_ex (filter, first, last, 2604, "epsg", 2604, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 84E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 84E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",84],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2604\"]]"); p = add_epsg_def_ex (filter, first, last, 2605, "epsg", 2605, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 87E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 87E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",87],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2605\"]]"); p = add_epsg_def_ex (filter, first, last, 2606, "epsg", 2606, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 90E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 90E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",90],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2606\"]]"); p = add_epsg_def_ex (filter, first, last, 2607, "epsg", 2607, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 93E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 93E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",93],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2607\"]]"); p = add_epsg_def_ex (filter, first, last, 2608, "epsg", 2608, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 96E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 96E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",96],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2608\"]]"); p = add_epsg_def_ex (filter, first, last, 2609, "epsg", 2609, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 99E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +"); add_proj4text (p, 1, "ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0."); add_proj4text (p, 2, "12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 99E\",G"); add_srs_wkt (p, 1, "EOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\""); add_srs_wkt (p, 2, "Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"702"); add_srs_wkt (p, 3, "4\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUT"); add_srs_wkt (p, 4, "HORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHOR"); add_srs_wkt (p, 5, "ITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994"); add_srs_wkt (p, 6, "33,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH"); add_srs_wkt (p, 7, "],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\"]]"); add_srs_wkt (p, 8, ",PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitud"); add_srs_wkt (p, 9, "e_of_origin\",0],PARAMETER[\"central_meridian\",99],PARA"); add_srs_wkt (p, 10, "METER[\"scale_factor\",1],PARAMETER[\"false_easting\",50"); add_srs_wkt (p, 11, "0000],PARAMETER[\"false_northing\",0],UNIT[\"metre\",1,A"); add_srs_wkt (p, 12, "UTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\"Y\""); add_srs_wkt (p, 13, ",EAST],AUTHORITY[\"EPSG\",\"2609\"]]"); p = add_epsg_def_ex (filter, first, last, 2610, "epsg", 2610, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 102E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 102E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",102],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2610\"]]"); p = add_epsg_def_ex (filter, first, last, 2611, "epsg", 2611, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 105E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 105E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",105],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2611\"]]"); p = add_epsg_def_ex (filter, first, last, 2612, "epsg", 2612, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 108E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 108E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",108],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2612\"]]"); p = add_epsg_def_ex (filter, first, last, 2613, "epsg", 2613, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 111E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 111E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",111],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2613\"]]"); p = add_epsg_def_ex (filter, first, last, 2614, "epsg", 2614, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 114E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 114E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",114],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2614\"]]"); p = add_epsg_def_ex (filter, first, last, 2615, "epsg", 2615, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 117E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 117E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",117],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2615\"]]"); p = add_epsg_def_ex (filter, first, last, 2616, "epsg", 2616, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 120E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 120E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",120],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2616\"]]"); p = add_epsg_def_ex (filter, first, last, 2617, "epsg", 2617, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 123E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 123E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",123],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2617\"]]"); p = add_epsg_def_ex (filter, first, last, 2618, "epsg", 2618, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 126E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 126E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",126],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2618\"]]"); p = add_epsg_def_ex (filter, first, last, 2619, "epsg", 2619, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 129E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 129E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",129],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2619\"]]"); p = add_epsg_def_ex (filter, first, last, 2620, "epsg", 2620, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 132E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 132E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",132],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2620\"]]"); p = add_epsg_def_ex (filter, first, last, 2621, "epsg", 2621, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 135E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 135E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",135],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2621\"]]"); p = add_epsg_def_ex (filter, first, last, 2622, "epsg", 2622, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 138E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 138E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",138],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2622\"]]"); p = add_epsg_def_ex (filter, first, last, 2623, "epsg", 2623, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 141E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 141E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",141],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2623\"]]"); p = add_epsg_def_ex (filter, first, last, 2624, "epsg", 2624, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 144E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 144E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",144],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2624\"]]"); p = add_epsg_def_ex (filter, first, last, 2625, "epsg", 2625, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 147E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 147E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",147],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2625\"]]"); p = add_epsg_def_ex (filter, first, last, 2626, "epsg", 2626, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 150E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 150E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",150],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2626\"]]"); p = add_epsg_def_ex (filter, first, last, 2627, "epsg", 2627, "Pulkovo 1942 / 3-degree Gauss-Kruger CM 153E", 0, 1, "Krassowsky 1940", "Greenwich", "Pulkovo_1942", "Transverse_Mercator", "metre", "X", "North", "Y", "East"); add_proj4text (p, 0, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 "); add_proj4text (p, 1, "+ellps=krass +towgs84=23.92,-141.27,-80.9,0,0.35,0.82,-0"); add_proj4text (p, 2, ".12 +units=m +no_defs"); add_srs_wkt (p, 0, "PROJCS[\"Pulkovo 1942 / 3-degree Gauss-Kruger CM 153E\","); add_srs_wkt (p, 1, "GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID["); add_srs_wkt (p, 2, "\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7"); add_srs_wkt (p, 3, "024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],A"); add_srs_wkt (p, 4, "UTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTH"); add_srs_wkt (p, 5, "ORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.017453292519"); add_srs_wkt (p, 6, "9433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NOR"); add_srs_wkt (p, 7, "TH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4284\""); add_srs_wkt (p, 8, "]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latit"); add_srs_wkt (p, 9, "ude_of_origin\",0],PARAMETER[\"central_meridian\",153],P"); add_srs_wkt (p, 10, "ARAMETER[\"scale_factor\",1],PARAMETER[\"false_easting\""); add_srs_wkt (p, 11, ",500000],PARAMETER[\"false_northing\",0],UNIT[\"metre\","); add_srs_wkt (p, 12, "1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",NORTH],AXIS[\""); add_srs_wkt (p, 13, "Y\",EAST],AUTHORITY[\"EPSG\",\"2627\"]]"); } #endif /* full EPSG initialization enabled/disabled */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/control_points/������������������������������������������������������������0000775�0001750�0001750�00000000000�12573314326�015361� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/control_points/Makefile.in�������������������������������������������������0000664�0001750�0001750�00000060645�12573313636�017364� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/control_points ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) control_points_la_LIBADD = am_control_points_la_OBJECTS = \ control_points_la-gaia_control_points.lo \ control_points_la-grass_crs3d.lo \ control_points_la-grass_georef.lo \ control_points_la-grass_georef_tps.lo control_points_la_OBJECTS = $(am_control_points_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = control_points_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(control_points_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(control_points_la_LDFLAGS) \ $(LDFLAGS) -o $@ libcontrol_points_la_LIBADD = am_libcontrol_points_la_OBJECTS = gaia_control_points.lo \ grass_crs3d.lo grass_georef.lo grass_georef_tps.lo libcontrol_points_la_OBJECTS = $(am_libcontrol_points_la_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(control_points_la_SOURCES) $(libcontrol_points_la_SOURCES) DIST_SOURCES = $(control_points_la_SOURCES) \ $(libcontrol_points_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp COPYING DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. EXTRA_DIST = COPYING noinst_HEADERS = grass_crs.h noinst_LTLIBRARIES = libcontrol_points.la control_points.la libcontrol_points_la_SOURCES = gaia_control_points.c grass_crs3d.c \ grass_georef.c grass_georef_tps.c control_points_la_SOURCES = gaia_control_points.c grass_crs3d.c \ grass_georef.c grass_georef_tps.c control_points_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ -DLOADABLE_EXTENSION control_points_la_LDFLAGS = -module control_points_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/control_points/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/control_points/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } control_points.la: $(control_points_la_OBJECTS) $(control_points_la_DEPENDENCIES) $(EXTRA_control_points_la_DEPENDENCIES) $(AM_V_CCLD)$(control_points_la_LINK) $(control_points_la_OBJECTS) $(control_points_la_LIBADD) $(LIBS) libcontrol_points.la: $(libcontrol_points_la_OBJECTS) $(libcontrol_points_la_DEPENDENCIES) $(EXTRA_libcontrol_points_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) $(libcontrol_points_la_OBJECTS) $(libcontrol_points_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/control_points_la-gaia_control_points.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/control_points_la-grass_crs3d.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/control_points_la-grass_georef.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/control_points_la-grass_georef_tps.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaia_control_points.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/grass_crs3d.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/grass_georef.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/grass_georef_tps.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< control_points_la-gaia_control_points.lo: gaia_control_points.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(control_points_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(control_points_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT control_points_la-gaia_control_points.lo -MD -MP -MF $(DEPDIR)/control_points_la-gaia_control_points.Tpo -c -o control_points_la-gaia_control_points.lo `test -f 'gaia_control_points.c' || echo '$(srcdir)/'`gaia_control_points.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/control_points_la-gaia_control_points.Tpo $(DEPDIR)/control_points_la-gaia_control_points.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gaia_control_points.c' object='control_points_la-gaia_control_points.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(control_points_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(control_points_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o control_points_la-gaia_control_points.lo `test -f 'gaia_control_points.c' || echo '$(srcdir)/'`gaia_control_points.c control_points_la-grass_crs3d.lo: grass_crs3d.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(control_points_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(control_points_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT control_points_la-grass_crs3d.lo -MD -MP -MF $(DEPDIR)/control_points_la-grass_crs3d.Tpo -c -o control_points_la-grass_crs3d.lo `test -f 'grass_crs3d.c' || echo '$(srcdir)/'`grass_crs3d.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/control_points_la-grass_crs3d.Tpo $(DEPDIR)/control_points_la-grass_crs3d.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='grass_crs3d.c' object='control_points_la-grass_crs3d.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(control_points_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(control_points_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o control_points_la-grass_crs3d.lo `test -f 'grass_crs3d.c' || echo '$(srcdir)/'`grass_crs3d.c control_points_la-grass_georef.lo: grass_georef.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(control_points_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(control_points_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT control_points_la-grass_georef.lo -MD -MP -MF $(DEPDIR)/control_points_la-grass_georef.Tpo -c -o control_points_la-grass_georef.lo `test -f 'grass_georef.c' || echo '$(srcdir)/'`grass_georef.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/control_points_la-grass_georef.Tpo $(DEPDIR)/control_points_la-grass_georef.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='grass_georef.c' object='control_points_la-grass_georef.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(control_points_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(control_points_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o control_points_la-grass_georef.lo `test -f 'grass_georef.c' || echo '$(srcdir)/'`grass_georef.c control_points_la-grass_georef_tps.lo: grass_georef_tps.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(control_points_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(control_points_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT control_points_la-grass_georef_tps.lo -MD -MP -MF $(DEPDIR)/control_points_la-grass_georef_tps.Tpo -c -o control_points_la-grass_georef_tps.lo `test -f 'grass_georef_tps.c' || echo '$(srcdir)/'`grass_georef_tps.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/control_points_la-grass_georef_tps.Tpo $(DEPDIR)/control_points_la-grass_georef_tps.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='grass_georef_tps.c' object='control_points_la-grass_georef_tps.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(control_points_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(control_points_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o control_points_la-grass_georef_tps.lo `test -f 'grass_georef_tps.c' || echo '$(srcdir)/'`grass_georef_tps.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir 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-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/control_points/grass_crs3d.c�����������������������������������������������0000664�0001750�0001750�00000036071�12544707704�017675� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* grass_crs3d.c -- strictly derived from Grass GIS code: vector/v.rectify/crs3d.c version 4.3, 2015 May 5 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ DISCLAIMER: this source is strictly derived from Grass GIS code and simply contains very trivial adjustments required in order to compile smoothly on libspatialite. NOTE: accordingly to the initial license this file is released under GPL2+ terms ------------------------------------------------------------------------------ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <limits.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #ifdef ENABLE_GCP /* only if ControlPoints enabled */ /* original code from Grass GIS starts here */ /*********************************************************************** crs3d.c written by: Markus Metz based on crs.c - Center for Remote Sensing rectification routines ************************************************************************/ #include "grass_crs.h" /*********************************************************************** FUNCTION PROTOTYPES FOR STATIC (INTERNAL) FUNCTIONS ************************************************************************/ static int calccoef (struct Control_Points_3D *, double *, double *, double *, int); static int calcls (struct Control_Points_3D *, struct MATRIX *, double *, double *, double *, double *, double *, double *); static int exactdet (struct Control_Points_3D *, struct MATRIX *, double *, double *, double *, double *, double *, double *); static int solvemat (struct MATRIX *, double *, double *, double *, double *, double *, double *); static double term (int, double, double, double); /*********************************************************************** TRANSFORM A SINGLE COORDINATE PAIR. ************************************************************************/ GCP_PRIVATE int gcp_CRS_georef_3d (double e1, /* EASTING TO BE TRANSFORMED */ double n1, /* NORTHING TO BE TRANSFORMED */ double z1, /* HEIGHT TO BE TRANSFORMED */ double *e, /* EASTING, TRANSFORMED */ double *n, /* NORTHING, TRANSFORMED */ double *z, /* HEIGHT, TRANSFORMED */ double E[], /* EASTING COEFFICIENTS */ double N[], /* NORTHING COEFFICIENTS */ double Z[], /* HEIGHT COEFFICIENTS */ int order /* ORDER OF TRANSFORMATION TO BE PERFORMED, MUST MATCH THE ORDER USED TO CALCULATE THE COEFFICIENTS */ ) { double e2, n2, z2, en, ez, nz, e3, n3, z3, e2n, e2z, en2, ez2, n2z, nz2, enz; switch (order) { case 1: *e = E[0] + E[1] * e1 + E[2] * n1 + E[3] * z1; *n = N[0] + N[1] * e1 + N[2] * n1 + N[3] * z1; *z = Z[0] + Z[1] * e1 + Z[2] * n1 + Z[3] * z1; break; case 2: e2 = e1 * e1; en = e1 * n1; ez = e1 * z1; n2 = n1 * n1; nz = n1 * z1; z2 = z1 * z1; *e = E[0] + E[1] * e1 + E[2] * n1 + E[3] * z1 + E[4] * e2 + E[5] * en + E[6] * ez + E[7] * n2 + E[8] * nz + E[9] * z2; *n = N[0] + N[1] * e1 + N[2] * n1 + N[3] * z1 + N[4] * e2 + N[5] * en + N[6] * ez + N[7] * n2 + N[8] * nz + N[9] * z2; *z = Z[0] + Z[1] * e1 + Z[2] * n1 + Z[3] * z1 + Z[4] * e2 + Z[5] * en + Z[6] * ez + Z[7] * n2 + Z[8] * nz + Z[9] * z2; break; case 3: e2 = e1 * e1; en = e1 * n1; ez = e1 * z1; n2 = n1 * n1; nz = n1 * z1; z2 = z1 * z1; e3 = e1 * e2; e2n = e2 * n1; e2z = e2 * z1; en2 = e1 * n2; enz = e1 * n1 * z1; ez2 = e1 * z2; n3 = n1 * n2; n2z = n2 * z1; nz2 = n1 * z2; z3 = z1 * z2; *e = E[0] + E[1] * e1 + E[2] * n1 + E[3] * z1 + E[4] * e2 + E[5] * en + E[6] * ez + E[7] * n2 + E[8] * nz + E[9] * z2 + E[10] * e3 + E[11] * e2n + E[12] * e2z + E[13] * en2 + E[14] * enz + E[15] * ez2 + E[16] * n3 + E[17] * n2z + E[18] * nz2 + E[19] * z3; *n = N[0] + N[1] * e1 + N[2] * n1 + N[3] * z1 + N[4] * e2 + N[5] * en + N[6] * ez + N[7] * n2 + N[8] * nz + N[9] * z2 + N[10] * e3 + N[11] * e2n + N[12] * e2z + N[13] * en2 + N[14] * enz + N[15] * ez2 + N[16] * n3 + N[17] * n2z + N[18] * nz2 + N[19] * z3; *z = Z[0] + Z[1] * e1 + Z[2] * n1 + Z[3] * z1 + Z[4] * e2 + Z[5] * en + Z[6] * ez + Z[7] * n2 + Z[8] * nz + Z[9] * z2 + Z[10] * e3 + Z[11] * e2n + Z[12] * e2z + Z[13] * en2 + Z[14] * enz + Z[15] * ez2 + Z[16] * n3 + Z[17] * n2z + Z[18] * nz2 + Z[19] * z3; break; default: return MPARMERR; } return MSUCCESS; } /*********************************************************************** COMPUTE THE FORWARD AND BACKWARD GEOREFFERENCING COEFFICIENTS BASED ON A SET OF CONTROL POINTS ************************************************************************/ GCP_PRIVATE int gcp_CRS_compute_georef_equations_3d (struct Control_Points_3D *cp, double E12[], double N12[], double Z12[], double E21[], double N21[], double Z21[], int order) { double *tempptr; int status; if (order < 1 || order > MAXORDER) return MPARMERR; /* CALCULATE THE FORWARD TRANSFORMATION COEFFICIENTS */ status = calccoef (cp, E12, N12, Z12, order); if (status != MSUCCESS) return status; /* SWITCH THE 1 AND 2 EASTING, NORTHING, AND HEIGHT ARRAYS */ tempptr = cp->e1; cp->e1 = cp->e2; cp->e2 = tempptr; tempptr = cp->n1; cp->n1 = cp->n2; cp->n2 = tempptr; tempptr = cp->z1; cp->z1 = cp->z2; cp->z2 = tempptr; /* CALCULATE THE BACKWARD TRANSFORMATION COEFFICIENTS */ status = calccoef (cp, E21, N21, Z21, order); /* SWITCH THE 1 AND 2 EASTING, NORTHING, AND HEIGHT ARRAYS BACK */ tempptr = cp->e1; cp->e1 = cp->e2; cp->e2 = tempptr; tempptr = cp->n1; cp->n1 = cp->n2; cp->n2 = tempptr; tempptr = cp->z1; cp->z1 = cp->z2; cp->z2 = tempptr; return status; } /*********************************************************************** COMPUTE THE GEOREFFERENCING COEFFICIENTS BASED ON A SET OF CONTROL POINTS ************************************************************************/ static int calccoef (struct Control_Points_3D *cp, double E[], double N[], double Z[], int order) { struct MATRIX m; double *a; double *b; double *c; int numactive; /* NUMBER OF ACTIVE CONTROL POINTS */ int status, i; /* CALCULATE THE NUMBER OF VALID CONTROL POINTS */ for (i = numactive = 0; i < cp->count; i++) { if (cp->status[i] > 0) numactive++; } /* CALCULATE THE MINIMUM NUMBER OF CONTROL POINTS NEEDED TO DETERMINE A TRANSFORMATION OF THIS ORDER */ /* 2D 3D 1st order: 3 4 2nd order: 6 10 3rd order: 10 20 */ m.n = numactive + 1; if (order == 1) m.n = 4; else if (order == 2) m.n = 10; else if (order == 3) m.n = 20; if (numactive < m.n) return MNPTERR; /* INITIALIZE MATRIX */ m.v = calloc (m.n * m.n, sizeof (double)); a = calloc (m.n, sizeof (double)); b = calloc (m.n, sizeof (double)); c = calloc (m.n, sizeof (double)); if (numactive == m.n) status = exactdet (cp, &m, a, b, c, E, N, Z); else status = calcls (cp, &m, a, b, c, E, N, Z); free (m.v); free (a); free (b); free (c); return status; } /*********************************************************************** CALCULATE THE TRANSFORMATION COEFFICIENTS WITH EXACTLY THE MINIMUM NUMBER OF CONTROL POINTS REQUIRED FOR THIS TRANSFORMATION. ************************************************************************/ static int exactdet (struct Control_Points_3D *cp, struct MATRIX *m, double a[], double b[], double c[], double E[], /* EASTING COEFFICIENTS */ double N[], /* NORTHING COEFFICIENTS */ double Z[] /* HEIGHT COEFFICIENTS */ ) { int pntnow, currow, j; currow = 1; for (pntnow = 0; pntnow < cp->count; pntnow++) { if (cp->status[pntnow] > 0) { /* POPULATE MATRIX M */ for (j = 1; j <= m->n; j++) M (currow, j) = term (j, cp->e1[pntnow], cp->n1[pntnow], cp->z1[pntnow]); /* POPULATE MATRIX A AND B */ a[currow - 1] = cp->e2[pntnow]; b[currow - 1] = cp->n2[pntnow]; c[currow - 1] = cp->z2[pntnow]; currow++; } } if (currow - 1 != m->n) return MINTERR; return solvemat (m, a, b, c, E, N, Z); } /*********************************************************************** CALCULATE THE TRANSFORMATION COEFFICIENTS WITH MORE THAN THE MINIMUM NUMBER OF CONTROL POINTS REQUIRED FOR THIS TRANSFORMATION. THIS ROUTINE USES THE LEAST SQUARES METHOD TO COMPUTE THE COEFFICIENTS. ************************************************************************/ static int calcls (struct Control_Points_3D *cp, struct MATRIX *m, double a[], double b[], double c[], double E[], /* EASTING COEFFICIENTS */ double N[], /* NORTHING COEFFICIENTS */ double Z[] /* HEIGHT COEFFICIENTS */ ) { int i, j, n, numactive = 0; /* INITIALIZE THE UPPER HALF OF THE MATRIX AND THE TWO COLUMN VECTORS */ for (i = 1; i <= m->n; i++) { for (j = i; j <= m->n; j++) M (i, j) = 0.0; a[i - 1] = b[i - 1] = c[i - 1] = 0.0; } /* SUM THE UPPER HALF OF THE MATRIX AND THE COLUMN VECTORS ACCORDING TO THE LEAST SQUARES METHOD OF SOLVING OVER DETERMINED SYSTEMS */ for (n = 0; n < cp->count; n++) { if (cp->status[n] > 0) { numactive++; for (i = 1; i <= m->n; i++) { for (j = i; j <= m->n; j++) M (i, j) += term (i, cp->e1[n], cp->n1[n], cp->z1[n]) * term (j, cp->e1[n], cp->n1[n], cp->z1[n]); a[i - 1] += cp->e2[n] * term (i, cp->e1[n], cp->n1[n], cp->z1[n]); b[i - 1] += cp->n2[n] * term (i, cp->e1[n], cp->n1[n], cp->z1[n]); c[i - 1] += cp->z2[n] * term (i, cp->e1[n], cp->n1[n], cp->z1[n]); } } } if (numactive <= m->n) return MINTERR; /* TRANSPOSE VALUES IN UPPER HALF OF M TO OTHER HALF */ for (i = 2; i <= m->n; i++) for (j = 1; j < i; j++) M (i, j) = M (j, i); return solvemat (m, a, b, c, E, N, Z); } /*********************************************************************** CALCULATE THE X/Y TERM BASED ON THE TERM NUMBER ORDER\TERM 1 2 3 4 5 6 7 8 9 10 1 e0n0z0 e1n0z0 e0n1z0 e0n0z1 2 e0n0z0 e1n0z0 e0n1z0 e0n0z1 e2n0z0 e1n1z0 e1n0z1 e0n2z0 e0n1z1 e0n0z2 3 e0n0z0 e1n0z0 e0n1z0 e0n0z1 e2n0z0 e1n1z0 e1n0z1 e0n2z0 e0n1z1 e0n0z2 ORDER\TERM 11 12 13 14 15 16 17 18 19 20 3 e3n0z0 e2n1z0 e2n0z1 e1n2z0 e1n1z1 e1n0z2 e0n3z0 e0n2z1 e0n1z2 e0n0z3 ************************************************************************/ static double term (int term, double e, double n, double z) { switch (term) { /* 1st order */ case 1: return 1.0; case 2: return e; case 3: return n; case 4: return z; /* 2nd order */ case 5: return e * e; case 6: return e * n; case 7: return e * z; case 8: return n * n; case 9: return n * z; case 10: return z * z; /* 3rd order */ case 11: return e * e * e; case 12: return e * e * n; case 13: return e * e * z; case 14: return e * n * n; case 15: return e * n * z; case 16: return e * z * z; case 17: return n * n * n; case 18: return n * n * z; case 19: return n * z * z; case 20: return z * z * z; } return 0.0; } /*********************************************************************** SOLVE FOR THE 'E', 'N' AND 'Z' COEFFICIENTS BY USING A SOMEWHAT MODIFIED GAUSSIAN ELIMINATION METHOD. | M11 M12 ... M1n | | E0 | | a0 | | M21 M22 ... M2n | | E1 | = | a1 | | . . . . | | . | | . | | Mn1 Mn2 ... Mnn | | En-1 | | an-1 | , | M11 M12 ... M1n | | N0 | | b0 | | M21 M22 ... M2n | | N1 | = | b1 | | . . . . | | . | | . | | Mn1 Mn2 ... Mnn | | Nn-1 | | bn-1 | and | M11 M12 ... M1n | | Z0 | | c0 | | M21 M22 ... M2n | | Z1 | = | c1 | | . . . . | | . | | . | | Mn1 Mn2 ... Mnn | | Zn-1 | | cn-1 | ************************************************************************/ static int solvemat (struct MATRIX *m, double a[], double b[], double c[], double E[], double N[], double Z[]) { int i, j, i2, j2, imark; double factor, temp; double pivot; /* ACTUAL VALUE OF THE LARGEST PIVOT CANDIDATE */ for (i = 1; i <= m->n; i++) { j = i; /* find row with largest magnitude value for pivot value */ pivot = M (i, j); imark = i; for (i2 = i + 1; i2 <= m->n; i2++) { temp = fabs (M (i2, j)); if (temp > fabs (pivot)) { pivot = M (i2, j); imark = i2; } } /* if the pivot is very small then the points are nearly co-linear */ /* co-linear points result in an undefined matrix, and nearly */ /* co-linear points results in a solution with rounding error */ if (fabs (pivot) < GRASS_EPSILON) return MUNSOLVABLE; /* if row with highest pivot is not the current row, switch them */ if (imark != i) { for (j2 = 1; j2 <= m->n; j2++) { temp = M (imark, j2); M (imark, j2) = M (i, j2); M (i, j2) = temp; } temp = a[imark - 1]; a[imark - 1] = a[i - 1]; a[i - 1] = temp; temp = b[imark - 1]; b[imark - 1] = b[i - 1]; b[i - 1] = temp; temp = c[imark - 1]; c[imark - 1] = c[i - 1]; c[i - 1] = temp; } /* compute zeros above and below the pivot, and compute values for the rest of the row as well */ for (i2 = 1; i2 <= m->n; i2++) { if (i2 != i) { factor = M (i2, j) / pivot; for (j2 = j; j2 <= m->n; j2++) M (i2, j2) -= factor * M (i, j2); a[i2 - 1] -= factor * a[i - 1]; b[i2 - 1] -= factor * b[i - 1]; c[i2 - 1] -= factor * c[i - 1]; } } } /* SINCE ALL OTHER VALUES IN THE MATRIX ARE ZERO NOW, CALCULATE THE COEFFICIENTS BY DIVIDING THE COLUMN VECTORS BY THE DIAGONAL VALUES. */ for (i = 1; i <= m->n; i++) { E[i - 1] = a[i - 1] / M (i, i); N[i - 1] = b[i - 1] / M (i, i); Z[i - 1] = c[i - 1] / M (i, i); } return MSUCCESS; } #endif /* end including GCP */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/control_points/gaia_control_points.c���������������������������������������0000664�0001750�0001750�00000104574�12544707704�021521� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gaia_control_points.c -- Gaia implementation of RMSE and TPS Control Points version 4.3, 2015 May 5 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ DISCLAIMER: this source is simply intemded as an interface supporting the sources from Grass GIS NOTE: accordingly to the initial license this file is released under GPL2+ terms ------------------------------------------------------------------------------ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include <stdlib.h> #include <stdio.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #ifdef ENABLE_GCP /* only if ControlPoints enabled */ #include <spatialite/sqlite.h> #include <spatialite_private.h> #include <spatialite/gaiageo.h> #include <spatialite/gaiamatrix.h> #include <spatialite/control_points.h> #include "grass_crs.h" #define POLYNOMIAL_MAGIC_START 0x00 #define POLYNOMIAL_MAGIC_DELIMITER 0x6a #define POLYNOMIAL_MAGIC_END 0x63 #define POLYNOMIAL_FIRST_ORDER 0xb1 #define POLYNOMIAL_SECOND_ORDER 0xb2 #define POLYNOMIAL_THIRD_ORDER 0xb3 #define THIN_PLATE_SPLINE 0x3f #define POLYNOMIAL_2D 0x3e #define POLYNOMIAL_3D 0x3d struct cp_coeffs { /* Polynomial Coefficients */ unsigned char type; unsigned char order; double E[20]; double N[20]; double Z[20]; double *Etps; double *Ntps; struct Control_Points grass_cp; }; GAIACP_DECLARE GaiaControlPointsPtr gaiaCreateControlPoints (int allocation_incr, int has3d, int order, int tps) { /* creating a Control Point set container */ struct gaia_control_points *cp = malloc (sizeof (struct gaia_control_points)); if (cp == NULL) return NULL; if (order < 1) order = 1; if (order > 3) order = 3; cp->order = order; cp->has3d = has3d; cp->tps = tps; cp->affine_valid = 0; if (allocation_incr < 64) allocation_incr = 64; cp->allocation_incr = allocation_incr; cp->allocated_items = allocation_incr; cp->count = 0; cp->x0 = malloc (sizeof (double) * allocation_incr); cp->y0 = malloc (sizeof (double) * allocation_incr); cp->x1 = malloc (sizeof (double) * allocation_incr); cp->y1 = malloc (sizeof (double) * allocation_incr); if (has3d) { cp->z0 = malloc (sizeof (double) * allocation_incr); cp->z1 = malloc (sizeof (double) * allocation_incr); } else { cp->z0 = NULL; cp->z1 = NULL; } if (cp->x0 == NULL || cp->y0 == NULL || cp->x1 == NULL || cp->y1 == NULL) goto error; if (has3d && (cp->z0 == NULL || cp->z1 == NULL)) goto error; return (GaiaControlPointsPtr) cp; error: if (cp->x0 != NULL) free (cp->x0); if (cp->y0 != NULL) free (cp->y0); if (cp->z0 != NULL) free (cp->z0); if (cp->x1 != NULL) free (cp->x1); if (cp->y1 != NULL) free (cp->y1); if (cp->z1 != NULL) free (cp->z1); return NULL; } GAIACP_DECLARE int gaiaAddControlPoint3D (GaiaControlPointsPtr cp_handle, double x0, double y0, double z0, double x1, double y1, double z1) { /* inserting a Control Point 3D into the aggregate container */ struct gaia_control_points *cp = (struct gaia_control_points *) cp_handle; if (cp == NULL) return 0; if (cp->has3d == 0) return 0; if (cp->allocated_items == cp->count) { /* increasing the size of coord arrays */ cp->allocated_items += cp->allocation_incr; cp->x0 = realloc (cp->x0, sizeof (double) * cp->allocated_items); cp->y0 = realloc (cp->y0, sizeof (double) * cp->allocated_items); cp->z0 = realloc (cp->z0, sizeof (double) * cp->allocated_items); cp->x1 = realloc (cp->x1, sizeof (double) * cp->allocated_items); cp->y1 = realloc (cp->y1, sizeof (double) * cp->allocated_items); cp->z1 = realloc (cp->z1, sizeof (double) * cp->allocated_items); } if (cp->x0 == NULL || cp->y0 == NULL || cp->x1 == NULL || cp->y1 == NULL || cp->z0 == NULL || cp->z1 == NULL) return 0; cp->x0[cp->count] = x0; cp->y0[cp->count] = y0; cp->z0[cp->count] = z0; cp->x1[cp->count] = x1; cp->y1[cp->count] = y1; cp->z1[cp->count] = z1; cp->count += 1; return 1; } GAIACP_DECLARE int gaiaAddControlPoint2D (GaiaControlPointsPtr cp_handle, double x0, double y0, double x1, double y1) { /* inserting a Control Point 2D into the aggregate container */ struct gaia_control_points *cp = (struct gaia_control_points *) cp_handle; if (cp == NULL) return 0; if (cp->has3d) return 0; if (cp->allocated_items == cp->count) { /* increasing the size of coord arrays */ cp->allocated_items += 1024; cp->x0 = realloc (cp->x0, sizeof (double) * cp->allocated_items); cp->y0 = realloc (cp->y0, sizeof (double) * cp->allocated_items); cp->x1 = realloc (cp->x1, sizeof (double) * cp->allocated_items); cp->y1 = realloc (cp->y1, sizeof (double) * cp->allocated_items); } if (cp->x0 == NULL || cp->y0 == NULL || cp->x1 == NULL || cp->y1 == NULL) return 0; cp->x0[cp->count] = x0; cp->y0[cp->count] = y0; cp->x1[cp->count] = x1; cp->y1[cp->count] = y1; cp->count += 1; return 1; } GAIACP_DECLARE void gaiaFreeControlPoints (GaiaControlPointsPtr cp_handle) { /* memory cleanup */ struct gaia_control_points *cp = (struct gaia_control_points *) cp_handle; if (cp == NULL) return; free (cp->x0); free (cp->y0); free (cp->x1); free (cp->y1); if (cp->has3d) { free (cp->z0); free (cp->z1); } free (cp); } static void copy_control_points_2d (struct gaia_control_points *gaia_cp, struct Control_Points *cp) { /* initializing Grass 2D Control Points */ int i; cp->count = gaia_cp->count; cp->e1 = malloc (sizeof (double) * cp->count); cp->e2 = malloc (sizeof (double) * cp->count); cp->n1 = malloc (sizeof (double) * cp->count); cp->n2 = malloc (sizeof (double) * cp->count); cp->status = malloc (sizeof (double) * cp->count); for (i = 0; i < cp->count; i++) { cp->e1[i] = gaia_cp->x0[i]; cp->e2[i] = gaia_cp->x1[i]; cp->n1[i] = gaia_cp->y0[i]; cp->n2[i] = gaia_cp->y1[i]; cp->status[i] = 1; } } static void copy_control_points_3d (struct gaia_control_points *gaia_cp, struct Control_Points_3D *cp) { /* initializing Grass 2D Control Points */ int i; cp->count = gaia_cp->count; cp->e1 = malloc (sizeof (double) * cp->count); cp->e2 = malloc (sizeof (double) * cp->count); cp->n1 = malloc (sizeof (double) * cp->count); cp->n2 = malloc (sizeof (double) * cp->count); cp->z1 = malloc (sizeof (double) * cp->count); cp->z2 = malloc (sizeof (double) * cp->count); cp->status = malloc (sizeof (double) * cp->count); for (i = 0; i < cp->count; i++) { cp->e1[i] = gaia_cp->x0[i]; cp->e2[i] = gaia_cp->x1[i]; cp->n1[i] = gaia_cp->y0[i]; cp->n2[i] = gaia_cp->y1[i]; cp->z1[i] = gaia_cp->z0[i]; cp->z2[i] = gaia_cp->z1[i]; cp->status[i] = 1; } } static void free_control_points_2d (struct Control_Points *cp) { /* freeing Grass 2D Control Points */ if (cp->e1 != NULL) free (cp->e1); if (cp->e2 != NULL) free (cp->e2); if (cp->n1 != NULL) free (cp->n1); if (cp->n2 != NULL) free (cp->n2); if (cp->status != NULL) free (cp->status); } static void free_control_points_3d (struct Control_Points_3D *cp) { /* freeing Grass 3D Control Points */ if (cp->e1 != NULL) free (cp->e1); if (cp->e2 != NULL) free (cp->e2); if (cp->n1 != NULL) free (cp->n1); if (cp->n2 != NULL) free (cp->n2); if (cp->z1 != NULL) free (cp->z1); if (cp->z2 != NULL) free (cp->z2); if (cp->status != NULL) free (cp->status); } static int blob_encode_3d (double *E, double *N, double *Z, int order, unsigned char **blob, int *blob_sz) { /* creating a BLOB-Polynomial object - 3D */ int i; int max; unsigned char *xblob = NULL; unsigned char *ptr; int xblob_sz; int endian_arch = gaiaEndianArch (); *blob = NULL; *blob_sz = 0; if (order == 2) max = 10; else if (order == 3) max = 20; else max = 4; xblob_sz = 11 + (max * (3 * (sizeof (double) + 1))); xblob = malloc (xblob_sz); if (xblob == NULL) return 0; ptr = xblob; /* encoding the BLOB */ *ptr = POLYNOMIAL_MAGIC_START; /* START signature */ *(ptr + 1) = 1; /* LITTLE ENDIAN */ *(ptr + 2) = POLYNOMIAL_3D; *(ptr + 3) = POLYNOMIAL_MAGIC_DELIMITER; *(ptr + 4) = order; *(ptr + 5) = POLYNOMIAL_MAGIC_DELIMITER; gaiaExport32 (ptr + 6, 0, 1, endian_arch); ptr = xblob + 10; for (i = 0; i < max; i++) { *ptr++ = POLYNOMIAL_MAGIC_DELIMITER; gaiaExport64 (ptr, E[i], 1, endian_arch); ptr += sizeof (double); *ptr++ = POLYNOMIAL_MAGIC_DELIMITER; gaiaExport64 (ptr, N[i], 1, endian_arch); ptr += sizeof (double); *ptr++ = POLYNOMIAL_MAGIC_DELIMITER; gaiaExport64 (ptr, Z[i], 1, endian_arch); ptr += sizeof (double); } *ptr = POLYNOMIAL_MAGIC_END; *blob = xblob; *blob_sz = xblob_sz; return 1; } static int blob_encode_2d (double *E, double *N, unsigned char order, unsigned char **blob, int *blob_sz) { /* creating a BLOB-Polynomial object - 2D */ int i; int max; unsigned char *xblob = NULL; unsigned char *ptr; int xblob_sz; int endian_arch = gaiaEndianArch (); *blob = NULL; *blob_sz = 0; if (order == 2) max = 6; else if (order == 3) max = 10; else max = 3; xblob_sz = 11 + (max * (2 * (sizeof (double) + 1))); xblob = malloc (xblob_sz); if (xblob == NULL) return 0; ptr = xblob; /* encoding the BLOB */ *ptr = POLYNOMIAL_MAGIC_START; /* START signature */ *(ptr + 1) = 1; /* LITTLE ENDIAN */ *(ptr + 2) = POLYNOMIAL_2D; *(ptr + 3) = POLYNOMIAL_MAGIC_DELIMITER; *(ptr + 4) = order; *(ptr + 5) = POLYNOMIAL_MAGIC_DELIMITER; gaiaExport32 (ptr + 6, 0, 1, endian_arch); ptr = xblob + 10; for (i = 0; i < max; i++) { *ptr++ = POLYNOMIAL_MAGIC_DELIMITER; gaiaExport64 (ptr, E[i], 1, endian_arch); ptr += sizeof (double); *ptr++ = POLYNOMIAL_MAGIC_DELIMITER; gaiaExport64 (ptr, N[i], 1, endian_arch); ptr += sizeof (double); } *ptr = POLYNOMIAL_MAGIC_END; *blob = xblob; *blob_sz = xblob_sz; return 1; } static int blob_encode_tps (double *E, double *N, struct Control_Points *cp, unsigned char **blob, int *blob_sz) { /* creating a BLOB-Polynomial object - 2D */ int i; unsigned char *xblob = NULL; unsigned char *ptr; int xblob_sz; int endian_arch = gaiaEndianArch (); *blob = NULL; *blob_sz = 0; xblob_sz = 11 + ((cp->count + 3) * (2 * (sizeof (double) + 1))); xblob_sz += (cp->count * (4 * (sizeof (double) + 1))); xblob = malloc (xblob_sz); if (xblob == NULL) return 0; ptr = xblob; /* encoding the BLOB */ *ptr = POLYNOMIAL_MAGIC_START; /* START signature */ *(ptr + 1) = 1; /* LITTLE ENDIAN */ *(ptr + 2) = THIN_PLATE_SPLINE; *(ptr + 3) = POLYNOMIAL_MAGIC_DELIMITER; *(ptr + 4) = 1; *(ptr + 5) = POLYNOMIAL_MAGIC_DELIMITER; gaiaExport32 (ptr + 6, cp->count, 1, endian_arch); ptr = xblob + 10; for (i = 0; i < cp->count + 3; i++) { *ptr++ = POLYNOMIAL_MAGIC_DELIMITER; gaiaExport64 (ptr, E[i], 1, endian_arch); ptr += sizeof (double); *ptr++ = POLYNOMIAL_MAGIC_DELIMITER; gaiaExport64 (ptr, N[i], 1, endian_arch); ptr += sizeof (double); } for (i = 0; i < cp->count; i++) { *ptr++ = POLYNOMIAL_MAGIC_DELIMITER; gaiaExport64 (ptr, cp->e1[i], 1, endian_arch); ptr += sizeof (double); *ptr++ = POLYNOMIAL_MAGIC_DELIMITER; gaiaExport64 (ptr, cp->n1[i], 1, endian_arch); ptr += sizeof (double); *ptr++ = POLYNOMIAL_MAGIC_DELIMITER; gaiaExport64 (ptr, cp->e2[i], 1, endian_arch); ptr += sizeof (double); *ptr++ = POLYNOMIAL_MAGIC_DELIMITER; gaiaExport64 (ptr, cp->n2[i], 1, endian_arch); ptr += sizeof (double); } *ptr = POLYNOMIAL_MAGIC_END; *blob = xblob; *blob_sz = xblob_sz; return 1; } static int blob_decode (struct cp_coeffs *coeffs, const unsigned char *blob, int blob_sz) { /* decoding a BLOB-Polynomial coeffs object */ int endian; int endian_arch = gaiaEndianArch (); unsigned char type; unsigned char order; int count; int i; int max; int xblob_sz; const unsigned char *ptr = blob; coeffs->Etps = NULL; coeffs->Ntps = NULL; coeffs->grass_cp.count = 0; coeffs->grass_cp.e1 = NULL; coeffs->grass_cp.n1 = NULL; coeffs->grass_cp.e2 = NULL; coeffs->grass_cp.n2 = NULL; coeffs->grass_cp.status = NULL; if (blob == NULL) return 0; if (blob_sz < 11) return 0; if (*ptr != POLYNOMIAL_MAGIC_START) return 0; if (*(ptr + 1) == 1) endian = 1; else if (*(ptr + 1) == 0) endian = 0; else return 0; type = *(ptr + 2); order = *(ptr + 4); coeffs->type = type; coeffs->order = order; if (order < 1 || order > 3) return 0; if (type == THIN_PLATE_SPLINE) max = 0; else if (type == POLYNOMIAL_2D) { if (order == 2) max = 6; else if (order == 3) max = 10; else max = 3; } else if (type == POLYNOMIAL_3D) { if (order == 2) max = 10; else if (order == 3) max = 20; else max = 4; } else return 0; count = gaiaImport32 (ptr + 6, endian, endian_arch); if (type == POLYNOMIAL_3D) xblob_sz = 11 + (max * (3 * (sizeof (double) + 1))); else xblob_sz = 11 + (max * (2 * (sizeof (double) + 1))); if (type == THIN_PLATE_SPLINE) { xblob_sz += ((count + 3) * (2 * (sizeof (double) + 1))); xblob_sz += (count * (4 * (sizeof (double) + 1))); } if (blob_sz != xblob_sz) return 0; ptr = blob + 11; for (i = 0; i < max; i++) { coeffs->E[i] = gaiaImport64 (ptr, endian, endian_arch); ptr += sizeof (double) + 1; coeffs->N[i] = gaiaImport64 (ptr, endian, endian_arch); ptr += sizeof (double) + 1; if (type == POLYNOMIAL_3D) { coeffs->Z[i] = gaiaImport64 (ptr, endian, endian_arch); ptr += sizeof (double) + 1; } } if (type == THIN_PLATE_SPLINE) { /* extracting the Control Points for Grass TPS code */ coeffs->Etps = malloc (sizeof (double) * (3 + count)); coeffs->Ntps = malloc (sizeof (double) * (3 + count)); coeffs->grass_cp.count = count; coeffs->grass_cp.e1 = malloc (sizeof (double) * count); coeffs->grass_cp.n1 = malloc (sizeof (double) * count); coeffs->grass_cp.e2 = malloc (sizeof (double) * count); coeffs->grass_cp.n2 = malloc (sizeof (double) * count); coeffs->grass_cp.status = malloc (sizeof (int) * count); for (i = 0; i < count + 3; i++) { coeffs->Etps[i] = gaiaImport64 (ptr, endian, endian_arch); ptr += sizeof (double) + 1; coeffs->Ntps[i] = gaiaImport64 (ptr, endian, endian_arch); ptr += sizeof (double) + 1; } for (i = 0; i < count; i++) { coeffs->grass_cp.e1[i] = gaiaImport64 (ptr, endian, endian_arch); ptr += sizeof (double) + 1; coeffs->grass_cp.n1[i] = gaiaImport64 (ptr, endian, endian_arch); ptr += sizeof (double) + 1; coeffs->grass_cp.e2[i] = gaiaImport64 (ptr, endian, endian_arch); ptr += sizeof (double) + 1; coeffs->grass_cp.n2[i] = gaiaImport64 (ptr, endian, endian_arch); ptr += sizeof (double) + 1; coeffs->grass_cp.status[i] = 1; } } return 1; } GAIACP_DECLARE int gaiaCreatePolynomialCoeffs (GaiaControlPointsPtr cp_handle, unsigned char **blob, int *blob_sz) { /* * computes the Control Points and return a BLOB-serialized * Polynomial coeffs object */ unsigned char *xblob; int xblob_sz; struct Control_Points cp; struct Control_Points_3D cp3; int ret = 0; int ret2; int use3d; int orthorot = 0; int order = 1; int order_pnts[2][3] = { {3, 6, 10}, {4, 10, 20} }; double E12[20]; double N12[20]; double Z12[20]; double E21[20]; double N21[20]; double Z21[20]; double *E12_t = NULL; double *N12_t = NULL; double *E21_t = NULL; double *N21_t = NULL; struct gaia_control_points *gaia_cp = (struct gaia_control_points *) cp_handle; *blob = NULL; *blob_sz = 0; if (gaia_cp == NULL) return 0; cp.count = 0; cp.e1 = NULL; cp.e2 = NULL; cp.n1 = NULL; cp.n2 = NULL; cp.status = NULL; cp3.count = 0; cp3.e1 = NULL; cp3.e2 = NULL; cp3.n1 = NULL; cp3.n2 = NULL; cp3.z1 = NULL; cp3.z2 = NULL; cp3.status = NULL; use3d = gaia_cp->has3d; order = gaia_cp->order; if (use3d) { /* 3D control points */ copy_control_points_3d (gaia_cp, &cp3); ret = gcp_CRS_compute_georef_equations_3d (&cp3, E12, N12, Z12, E21, N21, Z21, order); } else { /* 2D control points */ copy_control_points_2d (gaia_cp, &cp); if (gaia_cp->tps) ret = gcp_I_compute_georef_equations_tps (&cp, &E12_t, &N12_t, &E21_t, &N21_t); else ret = gcp_I_compute_georef_equations (&cp, E12, N12, E21, N21, order); } switch (ret) { case 0: fprintf (stderr, "Not enough active control points for current order, %d are required.\n", (orthorot ? 3 : order_pnts[use3d != 0][order - 1])); break; case -1: fprintf (stderr, "Poorly placed control points.\nCan not generate the transformation equation.\n"); break; case -2: fprintf (stderr, "Not enough memory to solve for transformation equation\n"); break; case -3: fprintf (stderr, "Invalid order\n"); break; default: break; } if (ret > 0) { if (use3d) ret2 = blob_encode_3d (E12, N12, Z12, order, &xblob, &xblob_sz); else { if (gaia_cp->tps) ret2 = blob_encode_tps (E12_t, N12_t, &cp, &xblob, &xblob_sz); else ret2 = blob_encode_2d (E12, N12, order, &xblob, &xblob_sz); } } if (use3d) free_control_points_3d (&cp3); else free_control_points_2d (&cp); if (E12_t != NULL) free (E12_t); if (N12_t != NULL) free (N12_t); if (E21_t != NULL) free (E21_t); if (N21_t != NULL) free (N21_t); if (ret > 0 && ret2) { *blob = xblob; *blob_sz = xblob_sz; return 1; } return 0; } GAIACP_DECLARE int gaiaPolynomialIsValid (const unsigned char *blob, int blob_sz) { /* checking a BLOB-Polynomial coeffs object for validity */ unsigned char type; unsigned char order; int i; int max; int xblob_sz; int endian; int endian_arch = gaiaEndianArch (); int count; const unsigned char *ptr = blob; if (blob == NULL) return 0; if (blob_sz < 11) return 0; if (*ptr != POLYNOMIAL_MAGIC_START) return 0; if (*(ptr + 1) == 1) endian = 1; else if (*(ptr + 1) == 0) endian = 0; else return 0; type = *(ptr + 2); order = *(ptr + 4); if (order > 3) return 0; if (type == THIN_PLATE_SPLINE) max = 0; else if (type == POLYNOMIAL_2D) { if (order == 2) max = 6; else if (order == 3) max = 10; else max = 3; } else if (type == POLYNOMIAL_3D) { if (order == 2) max = 10; else if (order == 3) max = 20; else max = 4; } else return 0; count = gaiaImport32 (ptr + 6, endian, endian_arch); if (type == POLYNOMIAL_3D) xblob_sz = 11 + (max * (3 * (sizeof (double) + 1))); else xblob_sz = 11 + (max * (2 * (sizeof (double) + 1))); if (type == THIN_PLATE_SPLINE) { xblob_sz += ((count + 3) * (2 * (sizeof (double) + 1))); xblob_sz += (count * (4 * (sizeof (double) + 1))); } if (blob_sz != xblob_sz) return 0; ptr = blob + 10; for (i = 0; i < max; i++) { if (*ptr != POLYNOMIAL_MAGIC_DELIMITER) return 0; ptr++; ptr += sizeof (double); if (*ptr != POLYNOMIAL_MAGIC_DELIMITER) return 0; ptr++; ptr += sizeof (double); if (type == POLYNOMIAL_3D) { if (*ptr != POLYNOMIAL_MAGIC_DELIMITER) return 0; ptr++; ptr += sizeof (double); } } if (type == THIN_PLATE_SPLINE) { for (i = 0; i < count + 3; i++) { if (*ptr != POLYNOMIAL_MAGIC_DELIMITER) return 0; ptr++; ptr += sizeof (double); if (*ptr != POLYNOMIAL_MAGIC_DELIMITER) return 0; ptr++; ptr += sizeof (double); } for (i = 0; i < count; i++) { if (*ptr != POLYNOMIAL_MAGIC_DELIMITER) return 0; ptr++; ptr += sizeof (double); if (*ptr != POLYNOMIAL_MAGIC_DELIMITER) return 0; ptr++; ptr += sizeof (double); if (*ptr != POLYNOMIAL_MAGIC_DELIMITER) return 0; ptr++; ptr += sizeof (double); if (*ptr != POLYNOMIAL_MAGIC_DELIMITER) return 0; ptr++; ptr += sizeof (double); } } if (*ptr != POLYNOMIAL_MAGIC_END) return 0; return 1; } static void clean_tps_coeffs (struct cp_coeffs *cp) { /* memory cleanup - TPS coefficients */ if (cp->Etps != NULL) free (cp->Etps); if (cp->Ntps != NULL) free (cp->Ntps); } GAIACP_DECLARE char * gaiaPolynomialAsText (const unsigned char *blob, int blob_sz) { /* printing a BLOB-Polynomial coeffs object as a text string */ char *text = NULL; struct cp_coeffs coeffs; if (!gaiaPolynomialIsValid (blob, blob_sz)) return NULL; if (!blob_decode (&coeffs, blob, blob_sz)) return NULL; free_control_points_2d (&(coeffs.grass_cp)); /* printing the Polynommial coeffs as text */ if (coeffs.type == POLYNOMIAL_3D) { if (coeffs.order == 3) text = sqlite3_mprintf ("E{%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f}, " "N{%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f}, " "Z{%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f}", coeffs.E[0], coeffs.E[1], coeffs.E[2], coeffs.E[3], coeffs.E[4], coeffs.E[5], coeffs.E[6], coeffs.E[6], coeffs.E[7], coeffs.E[8], coeffs.E[9], coeffs.E[10], coeffs.E[11], coeffs.E[12], coeffs.E[13], coeffs.E[14], coeffs.E[15], coeffs.E[16], coeffs.E[16], coeffs.E[17], coeffs.E[18], coeffs.E[19], coeffs.N[0], coeffs.N[1], coeffs.N[2], coeffs.N[3], coeffs.N[4], coeffs.N[5], coeffs.N[6], coeffs.N[6], coeffs.N[7], coeffs.N[8], coeffs.N[9], coeffs.N[10], coeffs.N[11], coeffs.N[12], coeffs.N[13], coeffs.N[14], coeffs.N[15], coeffs.N[16], coeffs.N[16], coeffs.N[17], coeffs.N[18], coeffs.N[19], coeffs.Z[0], coeffs.Z[1], coeffs.Z[2], coeffs.Z[3], coeffs.Z[4], coeffs.Z[5], coeffs.Z[6], coeffs.Z[6], coeffs.Z[7], coeffs.Z[8], coeffs.Z[9], coeffs.Z[10], coeffs.Z[11], coeffs.Z[12], coeffs.Z[13], coeffs.Z[14], coeffs.Z[15], coeffs.Z[16], coeffs.Z[16], coeffs.Z[17], coeffs.Z[18], coeffs.Z[19]); else if (coeffs.order == 2) text = sqlite3_mprintf ("E{%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f}, " "N{%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f}, " "Z{%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f}", coeffs.E[0], coeffs.E[1], coeffs.E[2], coeffs.E[3], coeffs.E[4], coeffs.E[5], coeffs.E[6], coeffs.E[6], coeffs.E[7], coeffs.E[8], coeffs.E[9], coeffs.N[0], coeffs.N[1], coeffs.N[2], coeffs.N[3], coeffs.N[4], coeffs.N[5], coeffs.N[6], coeffs.N[6], coeffs.N[7], coeffs.N[8], coeffs.N[9], coeffs.Z[0], coeffs.Z[1], coeffs.Z[2], coeffs.Z[3], coeffs.Z[4], coeffs.Z[5], coeffs.Z[6], coeffs.Z[6], coeffs.Z[7], coeffs.Z[8], coeffs.Z[9]); else text = sqlite3_mprintf ("E{%1.10f,%1.10f,%1.10f,%1.10f}, N{%1.10f,%1.10f,%1.10f,%1.10f}, Z{%1.10f,%1.10f,%1.10f,%1.10f}", coeffs.E[0], coeffs.E[1], coeffs.E[2], coeffs.E[3], coeffs.N[0], coeffs.N[1], coeffs.N[2], coeffs.N[3], coeffs.Z[0], coeffs.Z[1], coeffs.Z[2], coeffs.Z[3]); } else { if (coeffs.order == 3) text = sqlite3_mprintf ("E{%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f}, " "N{%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f}", coeffs.E[0], coeffs.E[1], coeffs.E[2], coeffs.E[3], coeffs.E[4], coeffs.E[5], coeffs.E[6], coeffs.E[6], coeffs.E[7], coeffs.E[8], coeffs.E[9], coeffs.N[0], coeffs.N[1], coeffs.N[2], coeffs.N[3], coeffs.N[4], coeffs.N[5], coeffs.N[6], coeffs.N[6], coeffs.N[7], coeffs.N[8], coeffs.N[9]); else if (coeffs.order == 2) text = sqlite3_mprintf ("E{%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f}, " "N{%1.10f,%1.10f,%1.10f,%1.10f,%1.10f,%1.10f}", coeffs.E[0], coeffs.E[1], coeffs.E[2], coeffs.E[3], coeffs.E[4], coeffs.E[5], coeffs.N[0], coeffs.N[1], coeffs.N[2], coeffs.N[3], coeffs.N[4], coeffs.N[5]); else text = sqlite3_mprintf ("E{%1.10f,%1.10f,%1.10f}, N{%1.10f,%1.10f,%1.10f}", coeffs.E[0], coeffs.E[1], coeffs.E[2], coeffs.N[0], coeffs.N[1], coeffs.N[2]); } clean_tps_coeffs (&coeffs); return text; } static void gaia_point_transform3D (struct cp_coeffs *coeffs, double *x, double *y, double *z) { /* Affine Transform 3D */ double x0 = *x; double y0 = *y; double z0 = *z; double x1; double y1; double z1; if (coeffs->type == THIN_PLATE_SPLINE) { gcp_I_georef_tps (x0, y0, &x1, &y1, coeffs->Etps, coeffs->Ntps, &(coeffs->grass_cp), 1); z1 = z0; } else if (coeffs->type == POLYNOMIAL_2D) { gcp_I_georef (x0, y0, &x1, &y1, coeffs->E, coeffs->N, coeffs->order); z1 = z0; } else gcp_CRS_georef_3d (x0, y0, z0, &x1, &y1, &z1, coeffs->E, coeffs->N, coeffs->Z, coeffs->order); *x = x1; *y = y1; *z = z1; } static void gaia_point_transform2D (struct cp_coeffs *coeffs, double *x, double *y) { /* Affine Transform 2D */ double x0 = *x; double y0 = *y; double x1; double y1; if (coeffs->type == THIN_PLATE_SPLINE) gcp_I_georef_tps (x0, y0, &x1, &y1, coeffs->Etps, coeffs->Ntps, &(coeffs->grass_cp), 1); else gcp_I_georef (x0, y0, &x1, &y1, coeffs->E, coeffs->N, coeffs->order); *x = x1; *y = y1; } GAIACP_DECLARE gaiaGeomCollPtr gaiaPolynomialTransformGeometry (gaiaGeomCollPtr geom, const unsigned char *blob, int blob_sz) { /* transforming a Geometry by applying Polynomial coefficients */ int iv; int ib; double x; double y; double z; double m; gaiaPointPtr point; gaiaLinestringPtr line; gaiaLinestringPtr new_line; gaiaPolygonPtr polyg; gaiaPolygonPtr new_polyg; gaiaGeomCollPtr new_geom; gaiaRingPtr i_ring; gaiaRingPtr o_ring; struct cp_coeffs coeffs; if (!gaiaPolynomialIsValid (blob, blob_sz)) return NULL; if (!blob_decode (&coeffs, blob, blob_sz)) return NULL; if (geom == NULL) { free_control_points_2d (&(coeffs.grass_cp)); return NULL; } /* creating the output Geometry */ if (geom->DimensionModel == GAIA_XY_Z) new_geom = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) new_geom = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) new_geom = gaiaAllocGeomCollXYZM (); else new_geom = gaiaAllocGeomColl (); new_geom->Srid = geom->Srid; new_geom->DeclaredType = geom->DeclaredType; /* cloning and transforming all individual items */ point = geom->FirstPoint; while (point) { /* copying POINTs */ if (geom->DimensionModel == GAIA_XY_Z) { x = point->X; y = point->Y; z = point->Z; gaia_point_transform3D (&coeffs, &x, &y, &z); gaiaAddPointToGeomCollXYZ (new_geom, x, y, z); } else if (geom->DimensionModel == GAIA_XY_M) { x = point->X; y = point->Y; m = point->M; gaia_point_transform2D (&coeffs, &x, &y); gaiaAddPointToGeomCollXYM (new_geom, x, y, m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { x = point->X; y = point->Y; z = point->Z; m = point->M; gaia_point_transform3D (&coeffs, &x, &y, &z); gaiaAddPointToGeomCollXYZM (new_geom, x, y, z, m); } else { x = point->X; y = point->Y; gaia_point_transform2D (&coeffs, &x, &y); gaiaAddPointToGeomColl (new_geom, x, y); } point = point->Next; } line = geom->FirstLinestring; while (line) { /* copying LINESTRINGs */ new_line = gaiaAddLinestringToGeomColl (new_geom, line->Points); for (iv = 0; iv < line->Points; iv++) { z = 0.0; m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } if (new_line->DimensionModel == GAIA_XY_Z || new_line->DimensionModel == GAIA_XY_Z_M) gaia_point_transform3D (&coeffs, &x, &y, &z); else gaia_point_transform2D (&coeffs, &x, &y); if (new_line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (new_line->Coords, iv, x, y, z); } else if (new_line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (new_line->Coords, iv, x, y, m); } else if (new_line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (new_line->Coords, iv, x, y, z, m); } else { gaiaSetPoint (new_line->Coords, iv, x, y); } } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* copying POLYGONs */ i_ring = polyg->Exterior; new_polyg = gaiaAddPolygonToGeomColl (new_geom, i_ring->Points, polyg->NumInteriors); o_ring = new_polyg->Exterior; /* copying points for the EXTERIOR RING */ for (iv = 0; iv < o_ring->Points; iv++) { z = 0.0; m = 0.0; if (i_ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (i_ring->Coords, iv, &x, &y, &z); } else if (i_ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (i_ring->Coords, iv, &x, &y, &m); } else if (i_ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (i_ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (i_ring->Coords, iv, &x, &y); } if (o_ring->DimensionModel == GAIA_XY_Z || o_ring->DimensionModel == GAIA_XY_Z_M) gaia_point_transform3D (&coeffs, &x, &y, &z); else gaia_point_transform2D (&coeffs, &x, &y); if (o_ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (o_ring->Coords, iv, x, y, z); } else if (o_ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (o_ring->Coords, iv, x, y, m); } else if (o_ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (o_ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (o_ring->Coords, iv, x, y); } } for (ib = 0; ib < new_polyg->NumInteriors; ib++) { /* copying each INTERIOR RING [if any] */ i_ring = polyg->Interiors + ib; o_ring = gaiaAddInteriorRing (new_polyg, ib, i_ring->Points); for (iv = 0; iv < o_ring->Points; iv++) { z = 0.0; m = 0.0; if (i_ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (i_ring->Coords, iv, &x, &y, &z); } else if (i_ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (i_ring->Coords, iv, &x, &y, &m); } else if (i_ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (i_ring->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (i_ring->Coords, iv, &x, &y); } if (o_ring->DimensionModel == GAIA_XY_Z || o_ring->DimensionModel == GAIA_XY_Z_M) gaia_point_transform3D (&coeffs, &x, &y, &z); else gaia_point_transform2D (&coeffs, &x, &y); if (o_ring->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (o_ring->Coords, iv, x, y, z); } else if (o_ring->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (o_ring->Coords, iv, x, y, m); } else if (o_ring->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (o_ring->Coords, iv, x, y, z, m); } else { gaiaSetPoint (o_ring->Coords, iv, x, y); } } } polyg = polyg->Next; } free_control_points_2d (&(coeffs.grass_cp)); clean_tps_coeffs (&coeffs); return new_geom; } GAIACP_DECLARE int gaiaPolynomialToMatrix (const unsigned char *iblob, int iblob_sz, unsigned char **oblob, int *oblob_sz) { /* * converting a BLOB-Polynomial coeffs object into a * BLOB Affine Transformation matrix */ double a = 1.0; double b = 0.0; double c = 0.0; double d = 0.0; double e = 1.0; double f = 0.0; double g = 0.0; double h = 0.0; double i = 1.0; double xoff = 0.0; double yoff = 0.0; double zoff = 0.0; struct cp_coeffs coeffs; *oblob = NULL; *oblob_sz = 0; if (!gaiaPolynomialIsValid (iblob, iblob_sz)) return 0; if (!blob_decode (&coeffs, iblob, iblob_sz)) return 0; if (coeffs.type == THIN_PLATE_SPLINE) { free_control_points_2d (&(coeffs.grass_cp)); clean_tps_coeffs (&coeffs); return 0; /* Thin Plate Spline coefficients can't be converted */ } if (coeffs.order != 1) return 0; /* only 1st order coefficients can be converted */ /* converting */ if (coeffs.type == POLYNOMIAL_3D) { a = coeffs.E[1]; b = coeffs.E[2]; c = coeffs.E[3]; d = coeffs.N[1]; e = coeffs.N[2]; f = coeffs.N[3]; g = coeffs.Z[1]; h = coeffs.Z[2]; i = coeffs.Z[3]; xoff = coeffs.E[0]; yoff = coeffs.N[0]; zoff = coeffs.Z[0]; } else { a = coeffs.E[1]; b = coeffs.E[2]; d = coeffs.N[1]; e = coeffs.N[2]; xoff = coeffs.E[0]; yoff = coeffs.N[0]; } if (gaia_matrix_create (a, b, c, d, e, f, g, h, i, xoff, yoff, zoff, oblob, oblob_sz)) return 1; return 0; } #endif /* end including GCO */ ������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/control_points/grass_georef_tps.c������������������������������������������0000664�0001750�0001750�00000032012�12544707704�021003� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* grass_georef_tps.c -- strictly derived from Grass GIS code: lib/imagery/georef_tps.c version 4.3, 2015 May 5 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ DISCLAIMER: this source is strictly derived from Grass GIS code and simply contains very trivial adjustments required in order to compile smoothly on libspatialite. NOTE: accordingly to the initial license this file is released under GPL2+ terms ------------------------------------------------------------------------------ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include <stdlib.h> #include <math.h> #include <stdio.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #ifdef ENABLE_GCP /* only if ControlPoints enabled */ /* original code from Grass GIS starts here */ /**************************************************************************** * * MODULE: imagery library * AUTHOR(S): Markus Metz * * PURPOSE: Image processing library * COPYRIGHT: (C) 2013 by the GRASS Development Team * * This program is free software under the GNU General Public * License (>=v2). Read the file COPYING that comes with GRASS * for details. * *****************************************************************************/ #include "grass_crs.h" #ifndef MAX #define MAX(x,y) ((x) > (y) ? (x) : (y)) #endif #ifndef MIN #define MIN(x,y) ((x) < (y) ? (x) : (y)) #endif /*********************************************************************** FUNCTION PROTOTYPES FOR STATIC (INTERNAL) FUNCTIONS ************************************************************************/ static int calccoef (struct Control_Points *, double **, double **); static int calcls (struct Control_Points *, struct MATRIX *, double *, double *, double *, double *); static double tps_base_func (const double x1, const double y1, const double x2, const double y2); static int solvemat (struct MATRIX *, double *, double *, double *, double *); /*********************************************************************** TRANSFORM A SINGLE COORDINATE PAIR. ************************************************************************/ GCP_PRIVATE int gcp_I_georef_tps (double e1, /* EASTING TO BE TRANSFORMED */ double n1, /* NORTHING TO BE TRANSFORMED */ double *e, /* EASTING, TRANSFORMED */ double *n, /* NORTHING, TRANSFORMED */ double *E, /* EASTING COEFFICIENTS */ double *N, /* NORTHING COEFFICIENTS */ struct Control_Points *cp, int fwd) { int i, j; double dist, *pe, *pn; if (fwd) { pe = cp->e1; pn = cp->n1; } else { pe = cp->e2; pn = cp->n2; } /* global affine (1st order poly) */ *e = E[0] + e1 * E[1] + n1 * E[2]; *n = N[0] + e1 * N[1] + n1 * N[2]; for (i = 0, j = 0; i < cp->count; i++) { if (cp->status[i] > 0) { dist = tps_base_func (e1, n1, pe[i], pn[i]); *e += E[j + 3] * dist; *n += N[j + 3] * dist; j++; } } return MSUCCESS; } /*********************************************************************** COMPUTE THE FORWARD AND BACKWARD GEOREFFERENCING COEFFICIENTS BASED ON A SET OF CONTROL POINTS ************************************************************************/ GCP_PRIVATE int gcp_I_compute_georef_equations_tps (struct Control_Points *cp, double **E12tps, double **N12tps, double **E21tps, double **N21tps) { double *tempptr; int numactive; /* NUMBER OF ACTIVE CONTROL POINTS */ int status, i; double xmax, xmin, ymax, ymin; double delx, dely; double xx, yy; double sumx, sumy, sumx2, sumy2, sumxy; double SSxx, SSyy, SSxy; /* CALCULATE THE NUMBER OF VALID CONTROL POINTS */ for (i = numactive = 0; i < cp->count; i++) { if (cp->status[i] > 0) numactive++; } if (numactive < 3) return MNPTERR; if (numactive > 100000) /* arbitrary, admittedly */ return MNPTERR; xmin = xmax = cp->e1[0]; ymin = ymax = cp->n1[0]; sumx = sumy = sumx2 = sumy2 = sumxy = 0.0; for (i = 0; i < cp->count; i++) { if (cp->status[i] > 0) { xx = cp->e1[i]; yy = cp->n1[i]; xmax = MAX (xmax, xx); xmin = MIN (xmin, xx); ymax = MAX (ymax, yy); ymin = MIN (ymin, yy); sumx += xx; sumx2 += xx * xx; sumy += yy; sumy2 += yy * yy; sumxy += xx * yy; } } delx = xmax - xmin; dely = ymax - ymin; SSxx = sumx2 - sumx * sumx / numactive; SSyy = sumy2 - sumy * sumy / numactive; SSxy = sumxy - sumx * sumy / numactive; if (delx < 0.001 * dely || dely < 0.001 * delx || fabs (SSxy * SSxy / (SSxx * SSyy)) > 0.99) { /* points are colinear */ return MUNSOLVABLE; } xmin = xmax = cp->e2[0]; ymin = ymax = cp->n2[0]; sumx = sumy = sumx2 = sumy2 = sumxy = 0.0; for (i = 0; i < cp->count; i++) { if (cp->status[i] > 0) { xx = cp->e2[i]; yy = cp->n2[i]; xmax = MAX (xmax, xx); xmin = MIN (xmin, xx); ymax = MAX (ymax, yy); ymin = MIN (ymin, yy); sumx += xx; sumx2 += xx * xx; sumy += yy; sumy2 += yy * yy; sumxy += xx * yy; } } delx = xmax - xmin; dely = ymax - ymin; SSxx = sumx2 - sumx * sumx / numactive; SSyy = sumy2 - sumy * sumy / numactive; SSxy = sumxy - sumx * sumy / numactive; if (delx < 0.001 * dely || dely < 0.001 * delx || fabs (SSxy * SSxy / (SSxx * SSyy)) > 0.99) { /* points are colinear */ return MUNSOLVABLE; } /* CALCULATE THE FORWARD TRANSFORMATION COEFFICIENTS */ status = calccoef (cp, E12tps, N12tps); if (status != MSUCCESS) return status; /* SWITCH THE 1 AND 2 EASTING AND NORTHING ARRAYS */ tempptr = cp->e1; cp->e1 = cp->e2; cp->e2 = tempptr; tempptr = cp->n1; cp->n1 = cp->n2; cp->n2 = tempptr; /* CALCULATE THE BACKWARD TRANSFORMATION COEFFICIENTS */ status = calccoef (cp, E21tps, N21tps); /* SWITCH THE 1 AND 2 EASTING AND NORTHING ARRAYS BACK */ tempptr = cp->e1; cp->e1 = cp->e2; cp->e2 = tempptr; tempptr = cp->n1; cp->n1 = cp->n2; cp->n2 = tempptr; return status; } /*********************************************************************** COMPUTE THE GEOREFFERENCING COEFFICIENTS BASED ON A SET OF CONTROL POINTS ************************************************************************/ static int calccoef (struct Control_Points *cp, double **E, double **N) { struct MATRIX m; double *a; double *b; int numactive; /* NUMBER OF ACTIVE CONTROL POINTS */ int status, i; /* CALCULATE THE NUMBER OF VALID CONTROL POINTS */ for (i = numactive = 0; i < cp->count; i++) { if (cp->status[i] > 0) numactive++; } /* INITIALIZE MATRIX */ m.n = numactive + 3; m.v = calloc (m.n * m.n, sizeof (double)); if (m.v == NULL) fprintf (stderr, "out of memory - I_compute_georef_equations_tps()\n"); a = calloc (m.n, sizeof (double)); if (a == NULL) fprintf (stderr, "out of memory - I_compute_georef_equations_tps()\n"); b = calloc (m.n, sizeof (double)); if (b == NULL) fprintf (stderr, "out of memory - I_compute_georef_equations_tps()\n"); /* equation coefficients */ *E = calloc (m.n, sizeof (double)); if (*E == NULL) fprintf (stderr, "out of memory - I_compute_georef_equations_tps()\n"); *N = calloc (m.n, sizeof (double)); if (*N == NULL) fprintf (stderr, "out of memory - I_compute_georef_equations_tps()\n"); status = calcls (cp, &m, a, b, *E, *N); free (m.v); free (a); free (b); return status; } /*********************************************************************** CALCULATE THE TRANSFORMATION COEFFICIENTS FOR THIN PLATE SPLINE INTERPOLATION. THIS ROUTINE USES THE LEAST SQUARES METHOD TO COMPUTE THE COEFFICIENTS. ************************************************************************/ static int calcls (struct Control_Points *cp, struct MATRIX *m, double a[], double b[], double E[], /* EASTING COEFFICIENTS */ double N[] /* NORTHING COEFFICIENTS */ ) { int i, j, n, o, numactive = 0; double dist = 0.0, dx, dy; /* INITIALIZE THE MATRIX AND THE TWO COLUMN VECTORS */ for (i = 1; i <= m->n; i++) { for (j = i; j <= m->n; j++) { M (i, j) = 0.0; if (i != j) M (j, i) = 0.0; } a[i - 1] = b[i - 1] = 0.0; } /* SUM THE UPPER HALF OF THE MATRIX AND THE COLUMN VECTORS ACCORDING TO THE LEAST SQUARES METHOD OF SOLVING OVER DETERMINED SYSTEMS */ for (n = 0; n < cp->count; n++) { if (cp->status[n] > 0) { a[numactive + 3] = cp->e2[n]; b[numactive + 3] = cp->n2[n]; numactive++; M (1, numactive + 3) = 1.0; M (2, numactive + 3) = cp->e1[n]; M (3, numactive + 3) = cp->n1[n]; M (numactive + 3, 1) = 1.0; M (numactive + 3, 2) = cp->e1[n]; M (numactive + 3, 3) = cp->n1[n]; } } if (numactive < m->n - 3) return MINTERR; i = 0; for (n = 0; n < cp->count; n++) { if (cp->status[n] > 0) { i++; j = 0; for (o = 0; o <= n; o++) { if (cp->status[o] > 0) { j++; M (i + 3, j + 3) = tps_base_func (cp->e1[n], cp->n1[n], cp->e1[o], cp->n1[o]); if (i != j) M (j + 3, i + 3) = M (i + 3, j + 3); dx = cp->e1[n] - cp->e1[o]; dy = cp->n1[n] - cp->n1[o]; dist += sqrt (dx * dx + dy * dy); } } } } /* regularization dist /= (numactive * numactive); regularization = 0.01 * dist * dist; */ /* set diagonal to regularization, but not the first 3x3 (global affine) */ return solvemat (m, a, b, E, N); } /*********************************************************************** SOLVE FOR THE 'E' AND 'N' COEFFICIENTS BY USING A SOMEWHAT MODIFIED GAUSSIAN ELIMINATION METHOD. | M11 M12 ... M1n | | E0 | | a0 | | M21 M22 ... M2n | | E1 | = | a1 | | . . . . | | . | | . | | Mn1 Mn2 ... Mnn | | En-1 | | an-1 | and | M11 M12 ... M1n | | N0 | | b0 | | M21 M22 ... M2n | | N1 | = | b1 | | . . . . | | . | | . | | Mn1 Mn2 ... Mnn | | Nn-1 | | bn-1 | ************************************************************************/ static int solvemat (struct MATRIX *m, double a[], double b[], double E[], double N[]) { int i, j, i2, j2, imark; double factor, temp; double pivot; /* ACTUAL VALUE OF THE LARGEST PIVOT CANDIDATE */ for (i = 1; i <= m->n; i++) { j = i; /* find row with largest magnitude value for pivot value */ pivot = M (i, j); imark = i; for (i2 = i + 1; i2 <= m->n; i2++) { temp = fabs (M (i2, j)); if (temp > fabs (pivot)) { pivot = M (i2, j); imark = i2; } } /* if the pivot is very small then the points are nearly co-linear */ /* co-linear points result in an undefined matrix, and nearly */ /* co-linear points results in a solution with rounding error */ if (pivot == 0.0) return MUNSOLVABLE; /* if row with highest pivot is not the current row, switch them */ if (imark != i) { for (j2 = 1; j2 <= m->n; j2++) { temp = M (imark, j2); M (imark, j2) = M (i, j2); M (i, j2) = temp; } temp = a[imark - 1]; a[imark - 1] = a[i - 1]; a[i - 1] = temp; temp = b[imark - 1]; b[imark - 1] = b[i - 1]; b[i - 1] = temp; } /* compute zeros above and below the pivot, and compute values for the rest of the row as well */ for (i2 = 1; i2 <= m->n; i2++) { if (i2 != i) { factor = M (i2, j) / pivot; for (j2 = j; j2 <= m->n; j2++) M (i2, j2) -= factor * M (i, j2); a[i2 - 1] -= factor * a[i - 1]; b[i2 - 1] -= factor * b[i - 1]; } } } /* SINCE ALL OTHER VALUES IN THE MATRIX ARE ZERO NOW, CALCULATE THE COEFFICIENTS BY DIVIDING THE COLUMN VECTORS BY THE DIAGONAL VALUES. */ for (i = 1; i <= m->n; i++) { E[i - 1] = a[i - 1] / M (i, i); N[i - 1] = b[i - 1] / M (i, i); } return MSUCCESS; } static double tps_base_func (const double x1, const double y1, const double x2, const double y2) { /* official: r * r * log(r) */ double dist; if ((x1 == x2) && (y1 == y2)) return 0.0; dist = (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1); return dist * log (dist) * 0.5; } #endif /* end including GCO */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/control_points/grass_crs.h�������������������������������������������������0000664�0001750�0001750�00000006345�12544707704�017454� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* grass_crs.h -- private header file required by source file derived from Grass GIS version 4.3, 2015 May 5 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ DISCLAIMER: this source is strictly derived from Grass GIS code and simply contains very trivial adjustments required in order to compile smoothly on libspatialite. NOTE: accordingly to the initial license this file is released under GPL2+ terms ------------------------------------------------------------------------------ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef DOXYGEN_SHOULD_SKIP_THIS #define GCP_PRIVATE __attribute__ ((visibility("hidden"))) #endif /* STRUCTURE FOR USE INTERNALLY WITH THESE FUNCTIONS. THESE FUNCTIONS EXPECT SQUARE MATRICES SO ONLY ONE VARIABLE IS GIVEN (N) FOR THE MATRIX SIZE */ struct MATRIX { int n; /* SIZE OF THIS MATRIX (N x N) */ double *v; }; /* CALCULATE OFFSET INTO ARRAY BASED ON R/C */ #define M(row,col) m->v[(((row)-1)*(m->n))+(col)-1] #define MSUCCESS 1 /* SUCCESS */ #define MNPTERR 0 /* NOT ENOUGH POINTS */ #define MUNSOLVABLE -1 /* NOT SOLVABLE */ #define MMEMERR -2 /* NOT ENOUGH MEMORY */ #define MPARMERR -3 /* PARAMETER ERROR */ #define MINTERR -4 /* INTERNAL ERROR */ #define MAXORDER 3 /* HIGHEST SUPPORTED ORDER OF TRANSFORMATION */ #define GRASS_EPSILON 1.0e-15 struct Control_Points { int count; double *e1; double *n1; double *e2; double *n2; int *status; }; struct Control_Points_3D { int count; double *e1; double *n1; double *z1; double *e2; double *n2; double *z2; int *status; }; GCP_PRIVATE int gcp_CRS_compute_georef_equations_3d (struct Control_Points_3D *, double *, double *, double *, double *, double *, double *, int); GCP_PRIVATE int gcp_I_compute_georef_equations (struct Control_Points *cp, double E12[], double N12[], double E21[], double N21[], int order); GCP_PRIVATE int gcp_I_compute_georef_equations_tps (struct Control_Points *cp, double **E12tps, double **N12tps, double **E21tps, double **N21tps); GCP_PRIVATE int gcp_I_georef (double e1, double n1, double *e, double *n, double E[], double N[], int order); GCP_PRIVATE int gcp_CRS_georef_3d (double e1, double n1, double z1, double *e, double *n, double *z, double E[], double N[], double Z[], int order); GCP_PRIVATE int gcp_I_georef_tps (double e1, double n1, double *e, double *n, double *E, double *N, struct Control_Points *cp, int fwd); �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/control_points/grass_georef.c����������������������������������������������0000664�0001750�0001750�00000031064�12544707704�020123� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* grass_georef.c -- strictly derived from Grass GIS code: lib/imagery/georef.c version 4.3, 2015 May 5 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ DISCLAIMER: this source is strictly derived from Grass GIS code and simply contains very trivial adjustments required in order to compile smoothly on libspatialite. NOTE: accordingly to the initial license this file is released under GPL2+ terms ------------------------------------------------------------------------------ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include <stdio.h> #include <stdlib.h> #include <math.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #ifdef ENABLE_GCP /* only if ControlPoints enabled */ /* original code from Grass GIS starts here */ /**************************************************************************** * * MODULE: imagery library * AUTHOR(S): Original author(s) name(s) unknown - written by CERL * Written By: Brian J. Buckley * * At: The Center for Remote Sensing * Michigan State University * * PURPOSE: Image processing library * COPYRIGHT: (C) 1999, 2005 by the GRASS Development Team * * This program is free software under the GNU General Public * License (>=v2). Read the file COPYING that comes with GRASS * for details. * *****************************************************************************/ /* * Written: 12/19/91 * * Last Update: 12/26/91 Brian J. Buckley * Last Update: 1/24/92 Brian J. Buckley * Added printout of trnfile. Triggered by BDEBUG. * Last Update: 1/27/92 Brian J. Buckley * Fixed bug so that only the active control points were used. * */ #include "grass_crs.h" /*********************************************************************** FUNCTION PROTOTYPES FOR STATIC (INTERNAL) FUNCTIONS ************************************************************************/ static int calccoef (struct Control_Points *, double *, double *, int); static int calcls (struct Control_Points *, struct MATRIX *, double *, double *, double *, double *); static int exactdet (struct Control_Points *, struct MATRIX *, double *, double *, double *, double *); static int solvemat (struct MATRIX *, double *, double *, double *, double *); static double term (int, double, double); /*********************************************************************** TRANSFORM A SINGLE COORDINATE PAIR. ************************************************************************/ GCP_PRIVATE int gcp_I_georef (double e1, /* EASTING TO BE TRANSFORMED */ double n1, /* NORTHING TO BE TRANSFORMED */ double *e, /* EASTING, TRANSFORMED */ double *n, /* NORTHING, TRANSFORMED */ double E[], /* EASTING COEFFICIENTS */ double N[], /* NORTHING COEFFICIENTS */ int order /* ORDER OF TRANSFORMATION TO BE PERFORMED, MUST MATCH THE ORDER USED TO CALCULATE THE COEFFICIENTS */ ) { double e3, e2n, en2, n3, e2, en, n2; switch (order) { case 1: *e = E[0] + E[1] * e1 + E[2] * n1; *n = N[0] + N[1] * e1 + N[2] * n1; break; case 2: e2 = e1 * e1; n2 = n1 * n1; en = e1 * n1; *e = E[0] + E[1] * e1 + E[2] * n1 + E[3] * e2 + E[4] * en + E[5] * n2; *n = N[0] + N[1] * e1 + N[2] * n1 + N[3] * e2 + N[4] * en + N[5] * n2; break; case 3: e2 = e1 * e1; en = e1 * n1; n2 = n1 * n1; e3 = e1 * e2; e2n = e2 * n1; en2 = e1 * n2; n3 = n1 * n2; *e = E[0] + E[1] * e1 + E[2] * n1 + E[3] * e2 + E[4] * en + E[5] * n2 + E[6] * e3 + E[7] * e2n + E[8] * en2 + E[9] * n3; *n = N[0] + N[1] * e1 + N[2] * n1 + N[3] * e2 + N[4] * en + N[5] * n2 + N[6] * e3 + N[7] * e2n + N[8] * en2 + N[9] * n3; break; default: return MPARMERR; } return MSUCCESS; } /*********************************************************************** COMPUTE THE FORWARD AND BACKWARD GEOREFFERENCING COEFFICIENTS BASED ON A SET OF CONTROL POINTS ************************************************************************/ GCP_PRIVATE int gcp_I_compute_georef_equations (struct Control_Points *cp, double E12[], double N12[], double E21[], double N21[], int order) { double *tempptr; int status; if (order < 1 || order > MAXORDER) return MPARMERR; /* CALCULATE THE FORWARD TRANSFORMATION COEFFICIENTS */ status = calccoef (cp, E12, N12, order); if (status != MSUCCESS) return status; /* SWITCH THE 1 AND 2 EASTING AND NORTHING ARRAYS */ tempptr = cp->e1; cp->e1 = cp->e2; cp->e2 = tempptr; tempptr = cp->n1; cp->n1 = cp->n2; cp->n2 = tempptr; /* CALCULATE THE BACKWARD TRANSFORMATION COEFFICIENTS */ status = calccoef (cp, E21, N21, order); /* SWITCH THE 1 AND 2 EASTING AND NORTHING ARRAYS BACK */ tempptr = cp->e1; cp->e1 = cp->e2; cp->e2 = tempptr; tempptr = cp->n1; cp->n1 = cp->n2; cp->n2 = tempptr; return status; } /*********************************************************************** COMPUTE THE GEOREFFERENCING COEFFICIENTS BASED ON A SET OF CONTROL POINTS ************************************************************************/ static int calccoef (struct Control_Points *cp, double E[], double N[], int order) { struct MATRIX m; double *a; double *b; int numactive; /* NUMBER OF ACTIVE CONTROL POINTS */ int status, i; /* CALCULATE THE NUMBER OF VALID CONTROL POINTS */ for (i = numactive = 0; i < cp->count; i++) { if (cp->status[i] > 0) numactive++; } /* CALCULATE THE MINIMUM NUMBER OF CONTROL POINTS NEEDED TO DETERMINE A TRANSFORMATION OF THIS ORDER */ m.n = ((order + 1) * (order + 2)) / 2; if (numactive < m.n) return MNPTERR; /* INITIALIZE MATRIX */ m.v = calloc (m.n * m.n, sizeof (double)); a = calloc (m.n, sizeof (double)); b = calloc (m.n, sizeof (double)); if (numactive == m.n) status = exactdet (cp, &m, a, b, E, N); else status = calcls (cp, &m, a, b, E, N); free (m.v); free (a); free (b); return status; } /*********************************************************************** CALCULATE THE TRANSFORMATION COEFFICIENTS WITH EXACTLY THE MINIMUM NUMBER OF CONTROL POINTS REQUIRED FOR THIS TRANSFORMATION. ************************************************************************/ static int exactdet (struct Control_Points *cp, struct MATRIX *m, double a[], double b[], double E[], /* EASTING COEFFICIENTS */ double N[] /* NORTHING COEFFICIENTS */ ) { int pntnow, currow, j; currow = 1; for (pntnow = 0; pntnow < cp->count; pntnow++) { if (cp->status[pntnow] > 0) { /* POPULATE MATRIX M */ for (j = 1; j <= m->n; j++) M (currow, j) = term (j, cp->e1[pntnow], cp->n1[pntnow]); /* POPULATE MATRIX A AND B */ a[currow - 1] = cp->e2[pntnow]; b[currow - 1] = cp->n2[pntnow]; currow++; } } if (currow - 1 != m->n) return MINTERR; return solvemat (m, a, b, E, N); } /*********************************************************************** CALCULATE THE TRANSFORMATION COEFFICIENTS WITH MORE THAN THE MINIMUM NUMBER OF CONTROL POINTS REQUIRED FOR THIS TRANSFORMATION. THIS ROUTINE USES THE LEAST SQUARES METHOD TO COMPUTE THE COEFFICIENTS. ************************************************************************/ static int calcls (struct Control_Points *cp, struct MATRIX *m, double a[], double b[], double E[], /* EASTING COEFFICIENTS */ double N[] /* NORTHING COEFFICIENTS */ ) { int i, j, n, numactive = 0; /* INITIALIZE THE UPPER HALF OF THE MATRIX AND THE TWO COLUMN VECTORS */ for (i = 1; i <= m->n; i++) { for (j = i; j <= m->n; j++) M (i, j) = 0.0; a[i - 1] = b[i - 1] = 0.0; } /* SUM THE UPPER HALF OF THE MATRIX AND THE COLUMN VECTORS ACCORDING TO THE LEAST SQUARES METHOD OF SOLVING OVER DETERMINED SYSTEMS */ for (n = 0; n < cp->count; n++) { if (cp->status[n] > 0) { numactive++; for (i = 1; i <= m->n; i++) { for (j = i; j <= m->n; j++) M (i, j) += term (i, cp->e1[n], cp->n1[n]) * term (j, cp->e1[n], cp->n1[n]); a[i - 1] += cp->e2[n] * term (i, cp->e1[n], cp->n1[n]); b[i - 1] += cp->n2[n] * term (i, cp->e1[n], cp->n1[n]); } } } if (numactive <= m->n) return MINTERR; /* TRANSPOSE VALUES IN UPPER HALF OF M TO OTHER HALF */ for (i = 2; i <= m->n; i++) for (j = 1; j < i; j++) M (i, j) = M (j, i); return solvemat (m, a, b, E, N); } /*********************************************************************** CALCULATE THE X/Y TERM BASED ON THE TERM NUMBER ORDER\TERM 1 2 3 4 5 6 7 8 9 10 1 e0n0 e1n0 e0n1 2 e0n0 e1n0 e0n1 e2n0 e1n1 e0n2 3 e0n0 e1n0 e0n1 e2n0 e1n1 e0n2 e3n0 e2n1 e1n2 e0n3 ************************************************************************/ static double term (int term, double e, double n) { switch (term) { case 1: return 1.0; case 2: return e; case 3: return n; case 4: return e * e; case 5: return e * n; case 6: return n * n; case 7: return e * e * e; case 8: return e * e * n; case 9: return e * n * n; case 10: return n * n * n; } return 0.0; } /*********************************************************************** SOLVE FOR THE 'E' AND 'N' COEFFICIENTS BY USING A SOMEWHAT MODIFIED GAUSSIAN ELIMINATION METHOD. | M11 M12 ... M1n | | E0 | | a0 | | M21 M22 ... M2n | | E1 | = | a1 | | . . . . | | . | | . | | Mn1 Mn2 ... Mnn | | En-1 | | an-1 | and | M11 M12 ... M1n | | N0 | | b0 | | M21 M22 ... M2n | | N1 | = | b1 | | . . . . | | . | | . | | Mn1 Mn2 ... Mnn | | Nn-1 | | bn-1 | ************************************************************************/ static int solvemat (struct MATRIX *m, double a[], double b[], double E[], double N[]) { int i, j, i2, j2, imark; double factor, temp; double pivot; /* ACTUAL VALUE OF THE LARGEST PIVOT CANDIDATE */ for (i = 1; i <= m->n; i++) { j = i; /* find row with largest magnitude value for pivot value */ pivot = M (i, j); imark = i; for (i2 = i + 1; i2 <= m->n; i2++) { temp = fabs (M (i2, j)); if (temp > fabs (pivot)) { pivot = M (i2, j); imark = i2; } } /* if the pivot is very small then the points are nearly co-linear */ /* co-linear points result in an undefined matrix, and nearly */ /* co-linear points results in a solution with rounding error */ if (pivot == 0.0) return MUNSOLVABLE; /* if row with highest pivot is not the current row, switch them */ if (imark != i) { for (j2 = 1; j2 <= m->n; j2++) { temp = M (imark, j2); M (imark, j2) = M (i, j2); M (i, j2) = temp; } temp = a[imark - 1]; a[imark - 1] = a[i - 1]; a[i - 1] = temp; temp = b[imark - 1]; b[imark - 1] = b[i - 1]; b[i - 1] = temp; } /* compute zeros above and below the pivot, and compute values for the rest of the row as well */ for (i2 = 1; i2 <= m->n; i2++) { if (i2 != i) { factor = M (i2, j) / pivot; for (j2 = j; j2 <= m->n; j2++) M (i2, j2) -= factor * M (i, j2); a[i2 - 1] -= factor * a[i - 1]; b[i2 - 1] -= factor * b[i - 1]; } } } /* SINCE ALL OTHER VALUES IN THE MATRIX ARE ZERO NOW, CALCULATE THE COEFFICIENTS BY DIVIDING THE COLUMN VECTORS BY THE DIAGONAL VALUES. */ for (i = 1; i <= m->n; i++) { E[i - 1] = a[i - 1] / M (i, i); N[i - 1] = b[i - 1] / M (i, i); } return MSUCCESS; } #endif /* end including GCP */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/control_points/Makefile.am�������������������������������������������������0000664�0001750�0001750�00000001241�12544707704�017337� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ AM_CPPFLAGS = @CFLAGS@ AM_CPPFLAGS += -I$(top_srcdir)/src/headers -I. EXTRA_DIST = COPYING noinst_HEADERS = grass_crs.h noinst_LTLIBRARIES = libcontrol_points.la control_points.la libcontrol_points_la_SOURCES = gaia_control_points.c grass_crs3d.c \ grass_georef.c grass_georef_tps.c control_points_la_SOURCES = gaia_control_points.c grass_crs3d.c \ grass_georef.c grass_georef_tps.c control_points_la_CPPFLAGS = @CFLAGS@ control_points_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. control_points_la_CPPFLAGS += -DLOADABLE_EXTENSION control_points_la_LDFLAGS = -module control_points_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/control_points/COPYING�����������������������������������������������������0000664�0001750�0001750�00000043254�12544707704�016350� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. <one line to give the program's name and a brief idea of what it does.> Copyright (C) <year> <name of author> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. <signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/virtualtext/���������������������������������������������������������������0000775�0001750�0001750�00000000000�12573314326�014700� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/virtualtext/virtualtext.c��������������������������������������������������0000664�0001750�0001750�00000124766�12544707704�017403� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* virtualtext.c -- SQLite3 extension [VIRTUAL TABLE accessing CSV/TXT] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) /* MSVC strictly requires this include [off_t] */ #include <sys/types.h> #endif #include <stdlib.h> #include <stdio.h> #include <string.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite/sqlite.h> #include <spatialite/debug.h> #include <spatialite/spatialite.h> #include <spatialite/gaiaaux.h> #include <spatialite/gaiageo.h> #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ #if OMIT_ICONV == 0 /* if ICONV is disabled no TXT support is available */ struct sqlite3_module virtualtext_module; typedef struct VirtualTextStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USED INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ gaiaTextReaderPtr reader; /* the TextReader object */ } VirtualText; typedef VirtualText *VirtualTextPtr; typedef struct VirtualTextConstraintStruct { /* a constraint to be verified for xFilter */ int iColumn; /* Column on left-hand side of constraint */ int op; /* Constraint operator */ char valueType; /* value Type ('I'=int,'D'=double,'T'=text) */ sqlite3_int64 intValue; /* Int64 comparison value */ double dblValue; /* Double comparison value */ char *txtValue; /* Text comparison value */ struct VirtualTextConstraintStruct *next; } VirtualTextConstraint; typedef VirtualTextConstraint *VirtualTextConstraintPtr; typedef struct VirtualTextCursortStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualTextPtr pVtab; /* Virtual table of this cursor */ long current_row; /* the current row ID */ int eof; /* the EOF marker */ VirtualTextConstraintPtr firstConstraint; VirtualTextConstraintPtr lastConstraint; } VirtualTextCursor; typedef VirtualTextCursor *VirtualTextCursorPtr; static void text_clean_integer (char *value) { /* cleaning an integer value */ char last; char buffer[35536]; int len = strlen (value); last = value[len - 1]; if (last == '-' || last == '+') { /* trailing sign; transforming into a leading sign */ *buffer = last; strcpy (buffer + 1, value); buffer[len - 1] = '\0'; strcpy (value, buffer); } } static void text_clean_double (char *value) { /* cleaning an integer value */ char *p; char last; char buffer[35536]; int len = strlen (value); last = value[len - 1]; if (last == '-' || last == '+') { /* trailing sign; transforming into a leading sign */ *buffer = last; strcpy (buffer + 1, value); buffer[len - 1] = '\0'; strcpy (value, buffer); } p = value; while (*p != '\0') { /* transforming COMMAs into POINTs */ if (*p == ',') *p = '.'; p++; } } static int vtxt_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table connected to some TEXT file */ char path[2048]; char encoding[128]; const char *vtable; const char *pEncoding = NULL; int len; gaiaTextReaderPtr text = NULL; const char *pPath = NULL; char field_separator = '\t'; char text_separator = '"'; char decimal_separator = '.'; char first_line_titles = 1; int i; char sql[65535]; int seed; int dup; int idup; char dummyName[4096]; char **col_name = NULL; VirtualTextPtr p_vt; if (pAux) pAux = pAux; /* unused arg warning suppression */ /* checking for TEXTfile PATH */ if (argc >= 5 && argc <= 9) { vtable = argv[1]; pPath = argv[3]; len = strlen (pPath); if ((*(pPath + 0) == '\'' || *(pPath + 0) == '"') && (*(pPath + len - 1) == '\'' || *(pPath + len - 1) == '"')) { /* the path is enclosed between quotes - we need to dequote it */ strcpy (path, pPath + 1); len = strlen (path); *(path + len - 1) = '\0'; } else strcpy (path, pPath); pEncoding = argv[4]; len = strlen (pEncoding); if ((*(pEncoding + 0) == '\'' || *(pEncoding + 0) == '"') && (*(pEncoding + len - 1) == '\'' || *(pEncoding + len - 1) == '"')) { /* the charset-name is enclosed between quotes - we need to dequote it */ strcpy (encoding, pEncoding + 1); len = strlen (encoding); *(encoding + len - 1) = '\0'; } else strcpy (encoding, pEncoding); if (argc >= 6) { if (*(argv[5]) == '0' || *(argv[5]) == 'n' || *(argv[5]) == 'N') first_line_titles = 0; } if (argc >= 7) { if (strcasecmp (argv[6], "COMMA") == 0) decimal_separator = ','; if (strcasecmp (argv[6], "POINT") == 0) decimal_separator = '.'; } if (argc >= 8) { if (strcasecmp (argv[7], "SINGLEQUOTE") == 0) text_separator = '\''; if (strcasecmp (argv[7], "DOUBLEQUOTE") == 0) text_separator = '"'; if (strcasecmp (argv[7], "NONE") == 0) text_separator = '\0'; } if (argc == 9) { if (strlen (argv[8]) == 3) { if (strcasecmp (argv[8], "TAB") == 0) field_separator = '\t'; if (*(argv[8] + 0) == '\'' && *(argv[8] + 2) == '\'') field_separator = *(argv[8] + 1); } } } else { *pzErr = sqlite3_mprintf ("[VirtualText module] CREATE VIRTUAL: illegal arg list\n" "\t\t{ text_path, encoding [, first_row_as_titles [, [decimal_separator [, text_separator, [field_separator] ] ] ] }\n"); return SQLITE_ERROR; } p_vt = (VirtualTextPtr) sqlite3_malloc (sizeof (VirtualText)); if (!p_vt) return SQLITE_NOMEM; p_vt->pModule = &virtualtext_module; p_vt->nRef = 0; p_vt->zErrMsg = NULL; p_vt->db = db; text = gaiaTextReaderAlloc (path, field_separator, text_separator, decimal_separator, first_line_titles, encoding); if (text) { if (gaiaTextReaderParse (text) == 0) { gaiaTextReaderDestroy (text); text = NULL; } } if (!text) { /* something is going the wrong way; creating a stupid default table */ spatialite_e ("VirtualText: invalid data source\n"); sprintf (sql, "CREATE TABLE %s (ROWNO INTEGER)", vtable); if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) { *pzErr = sqlite3_mprintf ("[VirtualText module] cannot build a table from TEXT file\n"); return SQLITE_ERROR; } p_vt->reader = NULL; *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } p_vt->reader = text; /* preparing the COLUMNs for this VIRTUAL TABLE */ sprintf (sql, "CREATE TABLE %s (ROWNO INTEGER", vtable); col_name = malloc (sizeof (char *) * text->max_fields); seed = 0; for (i = 0; i < text->max_fields; i++) { strcat (sql, ", "); sprintf (dummyName, "\"%s\"", text->columns[i].name); dup = 0; for (idup = 0; idup < i; idup++) { if (strcasecmp (dummyName, *(col_name + idup)) == 0) dup = 1; } if (strcasecmp (dummyName, "ROWNO") == 0) dup = 1; if (dup) sprintf (dummyName, "DUPCOL_%d", seed++); len = strlen (dummyName); *(col_name + i) = malloc (len + 1); strcpy (*(col_name + i), dummyName); strcat (sql, dummyName); if (text->columns[i].type == VRTTXT_INTEGER) strcat (sql, " INTEGER"); else if (text->columns[i].type == VRTTXT_DOUBLE) strcat (sql, " DOUBLE"); else strcat (sql, " TEXT"); } strcat (sql, ")"); if (col_name) { /* releasing memory allocation for column names */ for (i = 0; i < text->max_fields; i++) free (*(col_name + i)); free (col_name); } if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) { *pzErr = sqlite3_mprintf ("[VirtualText module] CREATE VIRTUAL: invalid SQL statement \"%s\"", sql); return SQLITE_ERROR; } *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } static int vtxt_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table to some shapefile - simply aliases vshp_create() */ return vtxt_create (db, pAux, argc, argv, ppVTab, pzErr); } static int vtxt_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIndex) { /* best index selection */ int i; int iArg = 0; char str[2048]; char buf[64]; if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ *str = '\0'; for (i = 0; i < pIndex->nConstraint; i++) { if (pIndex->aConstraint[i].usable) { iArg++; pIndex->aConstraintUsage[i].argvIndex = iArg; pIndex->aConstraintUsage[i].omit = 1; sprintf (buf, "%d:%d,", pIndex->aConstraint[i].iColumn, pIndex->aConstraint[i].op); strcat (str, buf); } } if (*str != '\0') { pIndex->idxStr = sqlite3_mprintf ("%s", str); pIndex->needToFreeIdxStr = 1; } return SQLITE_OK; } static int vtxt_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualTextPtr p_vt = (VirtualTextPtr) pVTab; if (p_vt->reader) gaiaTextReaderDestroy (p_vt->reader); sqlite3_free (p_vt); return SQLITE_OK; } static int vtxt_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases vtxt_disconnect() */ return vtxt_disconnect (pVTab); } static int vtxt_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ gaiaTextReaderPtr text; VirtualTextCursorPtr cursor = (VirtualTextCursorPtr) sqlite3_malloc (sizeof (VirtualTextCursor)); if (cursor == NULL) return SQLITE_NOMEM; cursor->pVtab = (VirtualTextPtr) pVTab; cursor->current_row = 0; cursor->eof = 0; cursor->firstConstraint = NULL; cursor->lastConstraint = NULL; *ppCursor = (sqlite3_vtab_cursor *) cursor; text = cursor->pVtab->reader; if (!text) cursor->eof = 1; else { if (!gaiaTextReaderGetRow (text, cursor->current_row)) cursor->eof = 1; } return SQLITE_OK; } static void vtxt_free_constraints (VirtualTextCursorPtr cursor) { /* memory cleanup - cursor constraints */ VirtualTextConstraintPtr pC; VirtualTextConstraintPtr pCn; pC = cursor->firstConstraint; while (pC) { pCn = pC->next; if (pC->txtValue) sqlite3_free (pC->txtValue); sqlite3_free (pC); pC = pCn; } cursor->firstConstraint = NULL; cursor->lastConstraint = NULL; } static int vtxt_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ VirtualTextCursorPtr cursor = (VirtualTextCursorPtr) pCursor; vtxt_free_constraints (cursor); sqlite3_free (cursor); return SQLITE_OK; } static int vtxt_parse_constraint (const char *str, int index, int *iColumn, int *op) { /* parsing a constraint string */ char buf[64]; const char *in = str; char *out = buf; int i = 0; int found = 0; *out = '\0'; while (*in != '\0') { if (*in == ',') { if (index == i) { *out = '\0'; found = 1; break; } i++; in++; continue; } if (index == i) *out++ = *in; in++; } if (!found) return 0; in = buf; for (i = 0; i < (int) strlen (buf); i++) { if (buf[i] == ':') { buf[i] = '\0'; *iColumn = atoi (buf); *op = atoi (buf + i + 1); return 1; } in++; } return 0; } static int vtxt_eval_constraints (VirtualTextCursorPtr cursor) { /* evaluating Filter constraints */ int nCol; int i; char buf[4096]; int type; const char *value = NULL; sqlite3_int64 int_value; double dbl_value; char *txt_value = NULL; int is_int = 0; int is_dbl = 0; int is_txt = 0; gaiaTextReaderPtr text = cursor->pVtab->reader; VirtualTextConstraintPtr pC; if (text->current_line_ready == 0) return SQLITE_ERROR; pC = cursor->firstConstraint; while (pC) { int ok = 0; if (pC->iColumn == 0) { /* the ROWNO column */ int_value = cursor->current_row; is_int = 1; goto eval; } nCol = 1; for (i = 0; i < text->max_fields; i++) { is_int = 0; is_dbl = 0; is_txt = 0; if (nCol == pC->iColumn) { if (!gaiaTextReaderFetchField (text, i, &type, &value)) ; else { if (type == VRTTXT_INTEGER) { strcpy (buf, value); text_clean_integer (buf); #if defined(_WIN32) || defined(__MINGW32__) /* CAVEAT - M$ runtime has non-standard functions for 64 bits */ int_value = _atoi64 (buf); #else int_value = atoll (buf); #endif is_int = 1; } else if (type == VRTTXT_DOUBLE) { strcpy (buf, value); text_clean_double (buf); dbl_value = atof (buf); is_dbl = 1; } else if (type == VRTTXT_TEXT) { txt_value = (char *) value; is_txt = 1; } } goto eval; } nCol++; } return 0; eval: ok = 0; if (pC->valueType == 'I') { if (is_int) { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (int_value == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (int_value > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (int_value <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (int_value < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (int_value >= pC->intValue) ok = 1; break; }; } if (is_dbl) { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (dbl_value == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (dbl_value > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (dbl_value <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (dbl_value < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (dbl_value >= pC->intValue) ok = 1; break; }; } } if (pC->valueType == 'D') { if (is_int) { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (int_value == pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (int_value > pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (int_value <= pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (int_value < pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (int_value >= pC->dblValue) ok = 1; break; }; } if (is_dbl) { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (dbl_value == pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (dbl_value > pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (dbl_value <= pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (dbl_value < pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (dbl_value >= pC->dblValue) ok = 1; break; }; } } if (pC->valueType == 'T') { if (is_txt) { int ret = strcmp (txt_value, pC->txtValue); switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (ret == 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (ret > 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (ret <= 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (ret < 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (ret >= 0) ok = 1; break; }; } } if (txt_value) { free (txt_value); txt_value = NULL; } if (!ok) return 0; pC = pC->next; } if (txt_value) free (txt_value); return 1; } static int vtxt_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ int i; int iColumn; int op; int len; VirtualTextConstraintPtr pC; VirtualTextCursorPtr cursor = (VirtualTextCursorPtr) pCursor; gaiaTextReaderPtr text = cursor->pVtab->reader; if (idxNum) idxNum = idxNum; /* unused arg warning suppression */ /* resetting any previously set filter constraint */ vtxt_free_constraints (cursor); for (i = 0; i < argc; i++) { if (!vtxt_parse_constraint (idxStr, i, &iColumn, &op)) continue; pC = sqlite3_malloc (sizeof (VirtualTextConstraint)); if (!pC) continue; pC->iColumn = iColumn; pC->op = op; pC->valueType = '\0'; pC->txtValue = NULL; pC->next = NULL; if (sqlite3_value_type (argv[i]) == SQLITE_INTEGER) { pC->valueType = 'I'; pC->intValue = sqlite3_value_int64 (argv[i]); } if (sqlite3_value_type (argv[i]) == SQLITE_FLOAT) { pC->valueType = 'D'; pC->dblValue = sqlite3_value_double (argv[i]); } if (sqlite3_value_type (argv[i]) == SQLITE_TEXT) { pC->valueType = 'T'; len = sqlite3_value_bytes (argv[i]) + 1; pC->txtValue = (char *) sqlite3_malloc (len); if (pC->txtValue) strcpy (pC->txtValue, (char *) sqlite3_value_text (argv[i])); } if (cursor->firstConstraint == NULL) cursor->firstConstraint = pC; if (cursor->lastConstraint != NULL) cursor->lastConstraint->next = pC; cursor->lastConstraint = pC; } cursor->current_row = 0; cursor->eof = 0; while (1) { if (!gaiaTextReaderGetRow (text, cursor->current_row)) { cursor->eof = 1; break; } if (vtxt_eval_constraints (cursor)) break; cursor->current_row++; } return SQLITE_OK; } static int vtxt_next (sqlite3_vtab_cursor * pCursor) { /* fetching next row from cursor */ VirtualTextCursorPtr cursor = (VirtualTextCursorPtr) pCursor; gaiaTextReaderPtr text = cursor->pVtab->reader; if (!text) cursor->eof = 1; else { while (1) { cursor->current_row++; if (!gaiaTextReaderGetRow (text, cursor->current_row)) { cursor->eof = 1; break; } if (vtxt_eval_constraints (cursor)) break; } } return SQLITE_OK; } static int vtxt_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualTextCursorPtr cursor = (VirtualTextCursorPtr) pCursor; return cursor->eof; } static int vtxt_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ int nCol = 1; int i; char buf[4096]; int type; const char *value; VirtualTextCursorPtr cursor = (VirtualTextCursorPtr) pCursor; gaiaTextReaderPtr text = cursor->pVtab->reader; if (column == 0) { /* the ROWNO column */ sqlite3_result_int (pContext, cursor->current_row); return SQLITE_OK; } if (text->current_line_ready == 0) return SQLITE_ERROR; for (i = 0; i < text->max_fields; i++) { if (nCol == column) { if (!gaiaTextReaderFetchField (text, i, &type, &value)) sqlite3_result_null (pContext); else { if (type == VRTTXT_INTEGER) { strcpy (buf, value); text_clean_integer (buf); #if defined(_WIN32) || defined(__MINGW32__) /* CAVEAT - M$ runtime has non-standard functions for 64 bits */ sqlite3_result_int64 (pContext, _atoi64 (buf)); #else sqlite3_result_int64 (pContext, atoll (buf)); #endif } else if (type == VRTTXT_DOUBLE) { strcpy (buf, value); text_clean_double (buf); sqlite3_result_double (pContext, atof (buf)); } else if (type == VRTTXT_TEXT) sqlite3_result_text (pContext, value, strlen (value), free); else sqlite3_result_null (pContext); } } nCol++; } return SQLITE_OK; } static int vtxt_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualTextCursorPtr cursor = (VirtualTextCursorPtr) pCursor; *pRowid = cursor->current_row; return SQLITE_OK; } static int vtxt_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ if (pVTab || argc || argv || pRowid) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_READONLY; } static int vtxt_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vtxt_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vtxt_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vtxt_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int sqlite3VirtualTextInit (sqlite3 * db) { int rc = SQLITE_OK; virtualtext_module.iVersion = 1; virtualtext_module.xCreate = &vtxt_create; virtualtext_module.xConnect = &vtxt_connect; virtualtext_module.xBestIndex = &vtxt_best_index; virtualtext_module.xDisconnect = &vtxt_disconnect; virtualtext_module.xDestroy = &vtxt_destroy; virtualtext_module.xOpen = &vtxt_open; virtualtext_module.xClose = &vtxt_close; virtualtext_module.xFilter = &vtxt_filter; virtualtext_module.xNext = &vtxt_next; virtualtext_module.xEof = &vtxt_eof; virtualtext_module.xColumn = &vtxt_column; virtualtext_module.xRowid = &vtxt_rowid; virtualtext_module.xUpdate = &vtxt_update; virtualtext_module.xBegin = &vtxt_begin; virtualtext_module.xSync = &vtxt_sync; virtualtext_module.xCommit = &vtxt_commit; virtualtext_module.xRollback = &vtxt_rollback; virtualtext_module.xFindFunction = NULL; sqlite3_create_module_v2 (db, "VirtualText", &virtualtext_module, NULL, 0); return rc; } SPATIALITE_PRIVATE int virtualtext_extension_init (void *xdb) { sqlite3 *db = (sqlite3 *) xdb; return sqlite3VirtualTextInit (db); } /* ** ** TextReader implementation ** */ static struct vrttxt_row_block * vrttxt_block_alloc () { /* allocating a rows Block */ struct vrttxt_row_block *p = malloc (sizeof (struct vrttxt_row_block)); if (!p) return NULL; p->num_rows = 0; p->min_line_no = -1; p->max_line_no = -1; p->next = NULL; return p; } static void vrttxt_block_destroy (struct vrttxt_row_block *p) { /* destroying a rows Block */ if (p) free (p); } GAIAGEO_DECLARE void gaiaTextReaderDestroy (gaiaTextReaderPtr reader) { /* destroying the main TXT-Reader */ int col; struct vrttxt_row_block *blk; struct vrttxt_row_block *blkN; if (reader) { blk = reader->first; while (blk) { /* destroying the row offset Blocks */ blkN = blk->next; vrttxt_block_destroy (blk); blk = blkN; } /* freeing the input buffers */ if (reader->line_buffer) free (reader->line_buffer); if (reader->field_buffer) free (reader->field_buffer); /* freeing the row offsets array */ if (reader->rows) free (reader->rows); /* closing the input file */ fclose (reader->text_file); for (col = 0; col < VRTTXT_FIELDS_MAX; col++) { /* destroying column headers */ if (reader->columns[col].name != NULL) free (reader->columns[col].name); } gaiaFreeUTF8Converter (reader->toUtf8); free (reader); } } GAIAGEO_DECLARE gaiaTextReaderPtr gaiaTextReaderAlloc (const char *path, char field_separator, char text_separator, char decimal_separator, int first_line_titles, const char *encoding) { /* allocating the main TXT-Reader */ int col; gaiaTextReaderPtr reader; FILE *in = fopen (path, "rb"); /* opening the input file */ if (in == NULL) return NULL; /* allocating and initializing the struct */ reader = malloc (sizeof (gaiaTextReader)); if (!reader) { fclose (in); return NULL; } reader->text_file = in; reader->field_separator = field_separator; reader->text_separator = text_separator; reader->decimal_separator = decimal_separator; reader->first_line_titles = first_line_titles; reader->toUtf8 = gaiaCreateUTF8Converter (encoding); if (reader->toUtf8 == (void *) 0) { fclose (in); return NULL; } reader->error = 0; reader->first = NULL; reader->last = NULL; reader->rows = NULL; reader->num_rows = 0; reader->line_no = 0; reader->max_fields = 0; reader->max_current_field = 0; reader->current_line_ready = 0; reader->current_buf_sz = 1024; reader->line_buffer = malloc (1024); reader->field_buffer = malloc (1024); if (reader->line_buffer == NULL || reader->field_buffer == NULL) { /* insufficient memory: no input buffers */ gaiaTextReaderDestroy (reader); return NULL; } for (col = 0; col < VRTTXT_FIELDS_MAX; col++) { /* initializing column headers */ reader->columns[col].name = NULL; reader->columns[col].type = VRTTXT_NULL; } return reader; } static void vrttxt_line_init (struct vrttxt_line *line, off_t offset) { /* initializing a LINE struct */ line->offset = offset; line->len = 0; line->num_fields = 0; line->error = 0; } static void vrttxt_line_end (struct vrttxt_line *line, off_t offset) { /* completing a Line struct (EndOfLine encountered) */ line->len = offset - line->offset; } static void vrttxt_add_field (struct vrttxt_line *line, off_t offset) { /* adding a Field offset to the current Line */ if (line->num_fields >= VRTTXT_FIELDS_MAX) { line->error = 1; return; } line->field_offsets[line->num_fields] = offset - line->offset; line->num_fields++; } static int vrttxt_is_integer (const char *value) { /* checking if this value can be an INTEGER */ int invalids = 0; int digits = 0; int signs = 0; char last = '\0'; const char *p = value; while (*p != '\0') { last = *p; if (*p >= '0' && *p <= '9') digits++; else if (*p == '+' || *p == '-') signs++; else invalids++; p++; } if (invalids) return 0; /* invalid chars were found */ if (signs > 1) return 0; /* more than a single sign */ if (signs) { if (*value == '+' || *value == '-' || last == '+' || last == '-') ; else return 0; /* sign is not the first/last string char */ } return 1; /* ok, can be a valid INTEGER value */ } static int vrttxt_is_double (const char *value, char decimal_separator) { /* checking if this value can be a DOUBLE */ int invalids = 0; int digits = 0; int signs = 0; int points = 0; char last = '\0'; const char *p = value; while (*p != '\0') { last = *p; if (*p >= '0' && *p <= '9') digits++; else if (*p == '+' || *p == '-') signs++; else { if (decimal_separator == ',') { if (*p == ',') points++; else invalids++; } else { if (*p == '.') points++; else invalids++; } } p++; } if (invalids) return 0; /* invalid chars were found */ if (points > 1) return 0; /* more than a single decimal separator */ if (signs > 1) return 0; /* more than a single sign */ if (signs) { if (*value == '+' || *value == '-' || last == '+' || last == '-') ; else return 0; /* sign is not the first/last string char */ } return 1; /* ok, can be a valid DOUBLE value */ } static int vrttxt_check_type (const char *value, char decimal_separator) { /* checking the Field type */ if (*value == '\0') return VRTTXT_NULL; if (vrttxt_is_integer (value)) return VRTTXT_INTEGER; if (vrttxt_is_double (value, decimal_separator)) return VRTTXT_DOUBLE; return VRTTXT_TEXT; } static int vrttxt_set_column_title (gaiaTextReaderPtr txt, int col_no, const char *name) { /* setting a Column header name */ int err; int ind; char *utf8text; char *str = (char *) name; int len = strlen (str); if (len <= 0) return 0; if (str[0] == txt->text_separator && str[len - 1] == txt->text_separator) { /* cleaning the enclosing quotes */ str[len - 1] = '\0'; str = (char *) (name + 1); len -= 2; if (len <= 0) return 0; } utf8text = gaiaConvertToUTF8 (txt->toUtf8, str, len, &err); if (err) { if (utf8text) free (utf8text); return 0; } else str = utf8text; len = strlen (str); for (ind = 0; ind < len; ind++) { /* masking spaces and so on within the column name */ switch (str[ind]) { case ' ': case '\t': case '-': case '+': case '*': case '/': case '(': case ')': case '[': case ']': case '{': case '}': str[ind] = '_'; break; } } if (txt->columns[col_no].name) free (txt->columns[col_no].name); txt->columns[col_no].name = malloc (len + 1); if (txt->columns[col_no].name == NULL) return 0; strcpy (txt->columns[col_no].name, utf8text); free (utf8text); return 1; } static void vrttxt_add_line (gaiaTextReaderPtr txt, struct vrttxt_line *line) { /* appending a Line offset to the main TXT-Reader */ struct vrttxt_row_block *p_block; struct vrttxt_row *p_row; int ind; int off; int len; int value_type; int column_type; int first_line = 0; if (txt->line_no == 0) first_line = 1; if (line->error) { txt->error = 1; txt->line_no++; return; } if (line->num_fields == 0) { txt->line_no++; return; } p_block = txt->last; if (p_block == NULL) { /* the offset Blocks list is empty: allocating the first Block */ p_block = vrttxt_block_alloc (); if (!p_block) { txt->error = 1; txt->line_no++; return; } if (txt->first == NULL) txt->first = p_block; if (txt->last != NULL) txt->last->next = p_block; txt->last = p_block; } else if (p_block->num_rows >= VRTTXT_BLOCK_MAX) { /* the current offset Block is full: expanding the list */ p_block = vrttxt_block_alloc (); if (!p_block) { txt->error = 1; txt->line_no++; return; } if (txt->first == NULL) txt->first = p_block; if (txt->last != NULL) txt->last->next = p_block; txt->last = p_block; } /* inserting the Row offset into the offset Block */ p_row = p_block->rows + p_block->num_rows; p_block->num_rows++; p_row->line_no = txt->line_no; if (p_block->min_line_no < 0) p_block->min_line_no = p_row->line_no; if (p_block->max_line_no < p_row->line_no) p_block->max_line_no = p_row->line_no; txt->line_no++; p_row->offset = line->offset; p_row->len = line->len; p_row->num_fields = line->num_fields; if (line->num_fields > txt->max_fields) txt->max_fields = line->num_fields; off = 0; for (ind = 0; ind < p_row->num_fields; ind++) { /* setting the corresponding Column (aka Field) header */ len = line->field_offsets[ind] - off; if (len == 0) *(txt->field_buffer) = '\0'; else { /* retrieving the current Field Value */ memcpy (txt->field_buffer, txt->line_buffer + off, len); *(txt->field_buffer + len) = '\0'; } if (txt->first_line_titles && first_line) { /* first line: the current value is the Column Name */ if (!vrttxt_set_column_title (txt, ind, txt->field_buffer)) txt->error = 1; } else { /* plain Field Value */ value_type = vrttxt_check_type (txt->field_buffer, txt->decimal_separator); column_type = txt->columns[ind].type; switch (value_type) { /* checking the Column type */ case VRTTXT_INTEGER: if (column_type == VRTTXT_NULL) txt->columns[ind].type = VRTTXT_INTEGER; break; case VRTTXT_DOUBLE: if (column_type == VRTTXT_NULL || column_type == VRTTXT_INTEGER) txt->columns[ind].type = VRTTXT_DOUBLE; break; case VRTTXT_TEXT: txt->columns[ind].type = VRTTXT_TEXT; break; default: break; }; } off = line->field_offsets[ind] + 1; } } static void vrttxt_line_push (gaiaTextReaderPtr txt, char c) { /* inserting a single char into the dynamically growing buffer */ if (txt->error) return; if ((txt->current_buf_off + 1) >= txt->current_buf_sz) { /* expanding the input buffer */ int new_sz; char *new_buf; /* / allocation strategy: / - the input buffer has an initial size of 1024 bytes / (good for short lines) / - the second step allocates 4196 bytes / - the third step allocates 65536 bytes / (good for medium sized lines) / - after this the buffer allocation will be increased / be 1MB at each step (good for huge sized lines) */ if (txt->current_buf_sz < 4196) new_sz = 4196; else if (txt->current_buf_sz < 65536) new_sz = 65536; else new_sz = txt->current_buf_sz + (1024 * 1024); new_buf = malloc (new_sz); if (!new_buf) { txt->error = 1; return; } txt->current_buf_sz = new_sz; memcpy (new_buf, txt->line_buffer, txt->current_buf_off); free (txt->line_buffer); txt->line_buffer = new_buf; free (txt->field_buffer); txt->field_buffer = malloc (new_sz); if (txt->field_buffer == NULL) { txt->error = 1; return; } } *(txt->line_buffer + txt->current_buf_off) = c; txt->current_buf_off++; /* ensuring that input buffer will be null terminated anyway */ *(txt->line_buffer + txt->current_buf_off) = '\0'; } static void vrttxt_build_line_array (gaiaTextReaderPtr txt) { /* creating the final Line offsets array */ struct vrttxt_row_block *p_block; int i; int cnt = 0; int first_line = 1; if (txt->rows) free (txt->rows); txt->rows = NULL; txt->num_rows = 0; p_block = txt->first; while (p_block) { /* counting how many lines are there */ if (p_block == txt->first && txt->first_line_titles) txt->num_rows += p_block->num_rows - 1; else txt->num_rows += p_block->num_rows; p_block = p_block->next; } txt->rows = malloc (sizeof (struct vrttxt_row *) * txt->num_rows); if (txt->rows == NULL) { /* insufficient memory */ txt->error = 1; return; } p_block = txt->first; while (p_block) { for (i = 0; i < p_block->num_rows; i++) { /* setting Line references into the array */ if (first_line && txt->first_line_titles) { first_line = 0; continue; /* skipping the first line (column names) */ } *(txt->rows + cnt++) = p_block->rows + i; } p_block = p_block->next; } } GAIAGEO_DECLARE int gaiaTextReaderParse (gaiaTextReaderPtr txt) { /* / preliminary parsing / - reading the input file until EOF / - then feeding the Row offsets structs / to be used for any subsequent access */ char name[64]; int ind; int i2; int c; int masked = 0; int token_start = 1; int row_offset = 0; off_t offset = 0; struct vrttxt_line line; vrttxt_line_init (&line, 0); txt->current_buf_off = 0; while ((c = getc (txt->text_file)) != EOF) { if (c == txt->text_separator) { if (masked) masked = 0; else { if (token_start) masked = 1; } vrttxt_line_push (txt, c); if (txt->error) return 0; row_offset++; offset++; continue; } token_start = 0; if (c == '\r') { if (masked) { vrttxt_line_push (txt, c); if (txt->error) return 0; row_offset++; } offset++; continue; } if (c == '\n') { if (masked) { vrttxt_line_push (txt, c); if (txt->error) return 0; row_offset++; offset++; continue; } vrttxt_add_field (&line, offset); vrttxt_line_end (&line, offset); vrttxt_add_line (txt, &line); if (txt->error) return 0; vrttxt_line_init (&line, offset + 1); txt->current_buf_off = 0; token_start = 1; row_offset = 0; offset++; continue; } if (c == txt->field_separator) { if (masked) { vrttxt_line_push (txt, c); if (txt->error) return 0; row_offset++; offset++; continue; } vrttxt_line_push (txt, c); if (txt->error) return 0; row_offset++; vrttxt_add_field (&line, offset); token_start = 1; offset++; continue; } vrttxt_line_push (txt, c); if (txt->error) return 0; row_offset++; offset++; } if (txt->error) return 0; if (txt->first_line_titles) { /* checking for duplicate column names */ for (ind = 0; ind < txt->max_fields; ind++) { for (i2 = 0; i2 < ind; i2++) { if (strcasecmp (txt->columns[i2].name, txt->columns[ind].name) == 0) { sprintf (name, "COL%03d", ind + 1); if (!vrttxt_set_column_title (txt, ind, name)) { txt->error = 1; return 0; } } } } } else { /* setting convenience column names */ for (ind = 0; ind < txt->max_fields; ind++) { sprintf (name, "COL%03d", ind + 1); if (!vrttxt_set_column_title (txt, ind, name)) { txt->error = 1; return 0; } } } if (txt->error) return 0; vrttxt_build_line_array (txt); if (txt->error) return 0; return 1; } GAIAGEO_DECLARE int gaiaTextReaderGetRow (gaiaTextReaderPtr txt, int line_no) { /* reading a Line (identified by relative number */ int i; char c; int masked = 0; int token_start = 1; int fld = 0; int offset = 0; struct vrttxt_row *p_row; txt->current_line_ready = 0; txt->max_current_field = 0; if (line_no < 0 || line_no >= txt->num_rows || txt->rows == NULL) return 0; p_row = *(txt->rows + line_no); if (fseek (txt->text_file, p_row->offset, SEEK_SET) != 0) return 0; if (fread (txt->line_buffer, 1, p_row->len, txt->text_file) != (unsigned int) (p_row->len)) return 0; txt->field_offsets[0] = 0; for (i = 0; i < p_row->len; i++) { /* parsing Fields */ c = *(txt->line_buffer + i); if (c == txt->text_separator) { if (masked) masked = 0; else { if (token_start) masked = 1; } offset++; continue; } token_start = 0; if (c == '\r') { offset++; continue; } if (c == txt->field_separator) { if (masked) { offset++; continue; } txt->field_offsets[fld + 1] = offset + 1; txt->field_lens[fld] = -1; txt->field_lens[fld] = offset - txt->field_offsets[fld]; fld++; txt->max_current_field = fld; token_start = 1; offset++; continue; } offset++; } if (offset > 0) { txt->field_lens[fld] = offset - txt->field_offsets[fld]; fld++; txt->max_current_field = fld; } txt->current_line_ready = 1; return 1; } GAIAGEO_DECLARE int gaiaTextReaderFetchField (gaiaTextReaderPtr txt, int field_idx, int *type, const char **value) { /* fetching a field value */ char *utf8text = NULL; int err; int len; char *str; if (txt->current_line_ready == 0) { *type = VRTTXT_NULL; *value = NULL; return 0; } if (field_idx < 0 || field_idx >= txt->max_fields) { *type = VRTTXT_NULL; *value = NULL; return 0; } if (field_idx < 0 || field_idx >= txt->max_current_field) { *type = VRTTXT_NULL; *value = NULL; return 0; } *type = txt->columns[field_idx].type; if (txt->field_lens[field_idx] == 0) *(txt->field_buffer) = '\0'; memcpy (txt->field_buffer, txt->line_buffer + txt->field_offsets[field_idx], txt->field_lens[field_idx]); *(txt->field_buffer + txt->field_lens[field_idx]) = '\0'; *value = txt->field_buffer; /* sandro 2012-02-01: fixing CR handling for last column [windows] */ if (*(txt->field_buffer) == '\r' && txt->field_lens[field_idx] == 1 && (field_idx + 1) == txt->max_fields) *(txt->field_buffer) = '\0'; if (*(txt->field_buffer) == '\0') *type = VRTTXT_NULL; else if (*type == VRTTXT_TEXT) { /* converting to UTF-8 */ str = (char *) *value; len = strlen (str); if (str[len - 1] == '\r') { /* skipping trailing CR, if any */ str[len - 1] = '\0'; len--; } if (str[0] == txt->text_separator && str[len - 1] == txt->text_separator) { /* cleaning the enclosing quotes */ str[len - 1] = '\0'; str = (char *) (*value + 1); len -= 2; if (len <= 0) { *type = VRTTXT_NULL; *value = NULL; return 1; } } utf8text = gaiaConvertToUTF8 (txt->toUtf8, str, len, &err); if (err) { /* memory cleanup: Kashif Rasul 14 Jan 2010 */ if (utf8text) free (utf8text); *type = VRTTXT_NULL; *value = NULL; return 0; } *value = utf8text; } return 1; } #endif /* ICONV enabled/disabled */ ����������libspatialite-4.3.0a/src/virtualtext/Makefile.in����������������������������������������������������0000664�0001750�0001750�00000047220�12573313636�016675� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/virtualtext ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libvirtualtext_la_LIBADD = am_libvirtualtext_la_OBJECTS = virtualtext.lo libvirtualtext_la_OBJECTS = $(am_libvirtualtext_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = virtualtext_la_LIBADD = am_virtualtext_la_OBJECTS = virtualtext_la-virtualtext.lo virtualtext_la_OBJECTS = $(am_virtualtext_la_OBJECTS) virtualtext_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(virtualtext_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(virtualtext_la_LDFLAGS) \ $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libvirtualtext_la_SOURCES) $(virtualtext_la_SOURCES) DIST_SOURCES = $(libvirtualtext_la_SOURCES) $(virtualtext_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libvirtualtext.la virtualtext.la libvirtualtext_la_SOURCES = virtualtext.c virtualtext_la_SOURCES = virtualtext.c virtualtext_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ -DLOADABLE_EXTENSION virtualtext_la_LDFLAGS = -module virtualtext_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/virtualtext/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/virtualtext/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libvirtualtext.la: $(libvirtualtext_la_OBJECTS) $(libvirtualtext_la_DEPENDENCIES) $(EXTRA_libvirtualtext_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) $(libvirtualtext_la_OBJECTS) $(libvirtualtext_la_LIBADD) $(LIBS) virtualtext.la: $(virtualtext_la_OBJECTS) $(virtualtext_la_DEPENDENCIES) $(EXTRA_virtualtext_la_DEPENDENCIES) $(AM_V_CCLD)$(virtualtext_la_LINK) $(virtualtext_la_OBJECTS) $(virtualtext_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virtualtext.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/virtualtext_la-virtualtext.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< virtualtext_la-virtualtext.lo: virtualtext.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(virtualtext_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(virtualtext_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT virtualtext_la-virtualtext.lo -MD -MP -MF $(DEPDIR)/virtualtext_la-virtualtext.Tpo -c -o virtualtext_la-virtualtext.lo `test -f 'virtualtext.c' || echo '$(srcdir)/'`virtualtext.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/virtualtext_la-virtualtext.Tpo $(DEPDIR)/virtualtext_la-virtualtext.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualtext.c' object='virtualtext_la-virtualtext.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(virtualtext_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(virtualtext_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o virtualtext_la-virtualtext.lo `test -f 'virtualtext.c' || echo '$(srcdir)/'`virtualtext.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir 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-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/virtualtext/Makefile.am����������������������������������������������������0000664�0001750�0001750�00000000731�12544707704�016661� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ AM_CPPFLAGS = @CFLAGS@ AM_CPPFLAGS += -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libvirtualtext.la virtualtext.la libvirtualtext_la_SOURCES = virtualtext.c virtualtext_la_SOURCES = virtualtext.c virtualtext_la_CPPFLAGS = @CFLAGS@ virtualtext_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. virtualtext_la_CPPFLAGS += -DLOADABLE_EXTENSION virtualtext_la_LDFLAGS = -module virtualtext_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda ���������������������������������������libspatialite-4.3.0a/src/geopackage/����������������������������������������������������������������0000775�0001750�0001750�00000000000�12573314326�014373� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/geopackage/Makefile.in�����������������������������������������������������0000664�0001750�0001750�00000162201�12573313636�016365� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/geopackage ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) geopackage_la_LIBADD = am__objects_1 = geopackage_la-gpkg_add_tile_triggers.lo \ geopackage_la-gpkg_get_normal_row.lo \ geopackage_la-gpkg_get_normal_zoom.lo \ geopackage_la-gpkgGetImageType.lo \ geopackage_la-gpkgCreateBaseTables.lo \ geopackage_la-gpkgInsertEpsgSRID.lo \ geopackage_la-gpkgCreateTilesTable.lo \ geopackage_la-gpkgCreateTilesZoomLevel.lo \ geopackage_la-gpkgAddGeometryColumn.lo \ geopackage_la-gpkgMakePoint.lo geopackage_la-gpkgBinary.lo \ geopackage_la-gpkg_add_geometry_triggers.lo \ geopackage_la-gpkg_add_spatial_index.lo \ geopackage_la-gaia_cvt_gpkg.lo am_geopackage_la_OBJECTS = $(am__objects_1) geopackage_la_OBJECTS = $(am_geopackage_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = geopackage_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(geopackage_la_LDFLAGS) \ $(LDFLAGS) -o $@ libgeopackage_la_LIBADD = am__objects_2 = libgeopackage_la-gpkg_add_tile_triggers.lo \ libgeopackage_la-gpkg_get_normal_row.lo \ libgeopackage_la-gpkg_get_normal_zoom.lo \ libgeopackage_la-gpkgGetImageType.lo \ libgeopackage_la-gpkgCreateBaseTables.lo \ libgeopackage_la-gpkgInsertEpsgSRID.lo \ libgeopackage_la-gpkgCreateTilesTable.lo \ libgeopackage_la-gpkgCreateTilesZoomLevel.lo \ libgeopackage_la-gpkgAddGeometryColumn.lo \ libgeopackage_la-gpkgMakePoint.lo \ libgeopackage_la-gpkgBinary.lo \ libgeopackage_la-gpkg_add_geometry_triggers.lo \ libgeopackage_la-gpkg_add_spatial_index.lo \ libgeopackage_la-gaia_cvt_gpkg.lo am_libgeopackage_la_OBJECTS = $(am__objects_2) libgeopackage_la_OBJECTS = $(am_libgeopackage_la_OBJECTS) libgeopackage_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libgeopackage_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(geopackage_la_SOURCES) $(libgeopackage_la_SOURCES) DIST_SOURCES = $(geopackage_la_SOURCES) $(libgeopackage_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = $(GCOV_FLAGS) AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libgeopackage.la geopackage.la SHARED_SOURCES = \ gpkg_add_tile_triggers.c \ gpkg_get_normal_row.c \ gpkg_get_normal_zoom.c \ gpkgGetImageType.c \ gpkgCreateBaseTables.c \ gpkgInsertEpsgSRID.c \ gpkgCreateTilesTable.c \ gpkgCreateTilesZoomLevel.c \ gpkgAddGeometryColumn.c \ gpkgMakePoint.c \ gpkgBinary.c \ gpkg_add_geometry_triggers.c \ gpkg_add_spatial_index.c \ gaia_cvt_gpkg.c libgeopackage_la_SOURCES = $(SHARED_SOURCES) libgeopackage_la_CFLAGS = -fvisibility=hidden geopackage_la_SOURCES = $(SHARED_SOURCES) geopackage_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ -DLOADABLE_EXTENSION -fvisibility=hidden geopackage_la_LDFLAGS = -module geopackage_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = geopackage_internal.h all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/geopackage/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/geopackage/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } geopackage.la: $(geopackage_la_OBJECTS) $(geopackage_la_DEPENDENCIES) $(EXTRA_geopackage_la_DEPENDENCIES) $(AM_V_CCLD)$(geopackage_la_LINK) $(geopackage_la_OBJECTS) $(geopackage_la_LIBADD) $(LIBS) libgeopackage.la: $(libgeopackage_la_OBJECTS) $(libgeopackage_la_DEPENDENCIES) $(EXTRA_libgeopackage_la_DEPENDENCIES) $(AM_V_CCLD)$(libgeopackage_la_LINK) $(libgeopackage_la_OBJECTS) $(libgeopackage_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gaia_cvt_gpkg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkgAddGeometryColumn.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkgBinary.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkgCreateBaseTables.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkgCreateTilesTable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkgCreateTilesZoomLevel.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkgGetImageType.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkgInsertEpsgSRID.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkgMakePoint.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkg_add_geometry_triggers.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkg_add_spatial_index.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkg_add_tile_triggers.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkg_get_normal_row.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geopackage_la-gpkg_get_normal_zoom.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gaia_cvt_gpkg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgAddGeometryColumn.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgBinary.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgGetImageType.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgInsertEpsgSRID.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkgMakePoint.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkg_add_geometry_triggers.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkg_add_spatial_index.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< geopackage_la-gpkg_add_tile_triggers.lo: gpkg_add_tile_triggers.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkg_add_tile_triggers.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkg_add_tile_triggers.Tpo -c -o geopackage_la-gpkg_add_tile_triggers.lo `test -f 'gpkg_add_tile_triggers.c' || echo '$(srcdir)/'`gpkg_add_tile_triggers.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkg_add_tile_triggers.Tpo $(DEPDIR)/geopackage_la-gpkg_add_tile_triggers.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_add_tile_triggers.c' object='geopackage_la-gpkg_add_tile_triggers.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkg_add_tile_triggers.lo `test -f 'gpkg_add_tile_triggers.c' || echo '$(srcdir)/'`gpkg_add_tile_triggers.c geopackage_la-gpkg_get_normal_row.lo: gpkg_get_normal_row.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkg_get_normal_row.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkg_get_normal_row.Tpo -c -o geopackage_la-gpkg_get_normal_row.lo `test -f 'gpkg_get_normal_row.c' || echo '$(srcdir)/'`gpkg_get_normal_row.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkg_get_normal_row.Tpo $(DEPDIR)/geopackage_la-gpkg_get_normal_row.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_get_normal_row.c' object='geopackage_la-gpkg_get_normal_row.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkg_get_normal_row.lo `test -f 'gpkg_get_normal_row.c' || echo '$(srcdir)/'`gpkg_get_normal_row.c geopackage_la-gpkg_get_normal_zoom.lo: gpkg_get_normal_zoom.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkg_get_normal_zoom.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkg_get_normal_zoom.Tpo -c -o geopackage_la-gpkg_get_normal_zoom.lo `test -f 'gpkg_get_normal_zoom.c' || echo '$(srcdir)/'`gpkg_get_normal_zoom.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkg_get_normal_zoom.Tpo $(DEPDIR)/geopackage_la-gpkg_get_normal_zoom.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_get_normal_zoom.c' object='geopackage_la-gpkg_get_normal_zoom.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkg_get_normal_zoom.lo `test -f 'gpkg_get_normal_zoom.c' || echo '$(srcdir)/'`gpkg_get_normal_zoom.c geopackage_la-gpkgGetImageType.lo: gpkgGetImageType.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgGetImageType.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgGetImageType.Tpo -c -o geopackage_la-gpkgGetImageType.lo `test -f 'gpkgGetImageType.c' || echo '$(srcdir)/'`gpkgGetImageType.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgGetImageType.Tpo $(DEPDIR)/geopackage_la-gpkgGetImageType.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgGetImageType.c' object='geopackage_la-gpkgGetImageType.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgGetImageType.lo `test -f 'gpkgGetImageType.c' || echo '$(srcdir)/'`gpkgGetImageType.c geopackage_la-gpkgCreateBaseTables.lo: gpkgCreateBaseTables.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgCreateBaseTables.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgCreateBaseTables.Tpo -c -o geopackage_la-gpkgCreateBaseTables.lo `test -f 'gpkgCreateBaseTables.c' || echo '$(srcdir)/'`gpkgCreateBaseTables.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgCreateBaseTables.Tpo $(DEPDIR)/geopackage_la-gpkgCreateBaseTables.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgCreateBaseTables.c' object='geopackage_la-gpkgCreateBaseTables.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgCreateBaseTables.lo `test -f 'gpkgCreateBaseTables.c' || echo '$(srcdir)/'`gpkgCreateBaseTables.c geopackage_la-gpkgInsertEpsgSRID.lo: gpkgInsertEpsgSRID.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgInsertEpsgSRID.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgInsertEpsgSRID.Tpo -c -o geopackage_la-gpkgInsertEpsgSRID.lo `test -f 'gpkgInsertEpsgSRID.c' || echo '$(srcdir)/'`gpkgInsertEpsgSRID.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgInsertEpsgSRID.Tpo $(DEPDIR)/geopackage_la-gpkgInsertEpsgSRID.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgInsertEpsgSRID.c' object='geopackage_la-gpkgInsertEpsgSRID.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgInsertEpsgSRID.lo `test -f 'gpkgInsertEpsgSRID.c' || echo '$(srcdir)/'`gpkgInsertEpsgSRID.c geopackage_la-gpkgCreateTilesTable.lo: gpkgCreateTilesTable.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgCreateTilesTable.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgCreateTilesTable.Tpo -c -o geopackage_la-gpkgCreateTilesTable.lo `test -f 'gpkgCreateTilesTable.c' || echo '$(srcdir)/'`gpkgCreateTilesTable.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgCreateTilesTable.Tpo $(DEPDIR)/geopackage_la-gpkgCreateTilesTable.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgCreateTilesTable.c' object='geopackage_la-gpkgCreateTilesTable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgCreateTilesTable.lo `test -f 'gpkgCreateTilesTable.c' || echo '$(srcdir)/'`gpkgCreateTilesTable.c geopackage_la-gpkgCreateTilesZoomLevel.lo: gpkgCreateTilesZoomLevel.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgCreateTilesZoomLevel.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgCreateTilesZoomLevel.Tpo -c -o geopackage_la-gpkgCreateTilesZoomLevel.lo `test -f 'gpkgCreateTilesZoomLevel.c' || echo '$(srcdir)/'`gpkgCreateTilesZoomLevel.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgCreateTilesZoomLevel.Tpo $(DEPDIR)/geopackage_la-gpkgCreateTilesZoomLevel.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgCreateTilesZoomLevel.c' object='geopackage_la-gpkgCreateTilesZoomLevel.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgCreateTilesZoomLevel.lo `test -f 'gpkgCreateTilesZoomLevel.c' || echo '$(srcdir)/'`gpkgCreateTilesZoomLevel.c geopackage_la-gpkgAddGeometryColumn.lo: gpkgAddGeometryColumn.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgAddGeometryColumn.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgAddGeometryColumn.Tpo -c -o geopackage_la-gpkgAddGeometryColumn.lo `test -f 'gpkgAddGeometryColumn.c' || echo '$(srcdir)/'`gpkgAddGeometryColumn.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgAddGeometryColumn.Tpo $(DEPDIR)/geopackage_la-gpkgAddGeometryColumn.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgAddGeometryColumn.c' object='geopackage_la-gpkgAddGeometryColumn.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgAddGeometryColumn.lo `test -f 'gpkgAddGeometryColumn.c' || echo '$(srcdir)/'`gpkgAddGeometryColumn.c geopackage_la-gpkgMakePoint.lo: gpkgMakePoint.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgMakePoint.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgMakePoint.Tpo -c -o geopackage_la-gpkgMakePoint.lo `test -f 'gpkgMakePoint.c' || echo '$(srcdir)/'`gpkgMakePoint.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgMakePoint.Tpo $(DEPDIR)/geopackage_la-gpkgMakePoint.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgMakePoint.c' object='geopackage_la-gpkgMakePoint.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgMakePoint.lo `test -f 'gpkgMakePoint.c' || echo '$(srcdir)/'`gpkgMakePoint.c geopackage_la-gpkgBinary.lo: gpkgBinary.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkgBinary.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkgBinary.Tpo -c -o geopackage_la-gpkgBinary.lo `test -f 'gpkgBinary.c' || echo '$(srcdir)/'`gpkgBinary.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkgBinary.Tpo $(DEPDIR)/geopackage_la-gpkgBinary.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgBinary.c' object='geopackage_la-gpkgBinary.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkgBinary.lo `test -f 'gpkgBinary.c' || echo '$(srcdir)/'`gpkgBinary.c geopackage_la-gpkg_add_geometry_triggers.lo: gpkg_add_geometry_triggers.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkg_add_geometry_triggers.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkg_add_geometry_triggers.Tpo -c -o geopackage_la-gpkg_add_geometry_triggers.lo `test -f 'gpkg_add_geometry_triggers.c' || echo '$(srcdir)/'`gpkg_add_geometry_triggers.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkg_add_geometry_triggers.Tpo $(DEPDIR)/geopackage_la-gpkg_add_geometry_triggers.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_add_geometry_triggers.c' object='geopackage_la-gpkg_add_geometry_triggers.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkg_add_geometry_triggers.lo `test -f 'gpkg_add_geometry_triggers.c' || echo '$(srcdir)/'`gpkg_add_geometry_triggers.c geopackage_la-gpkg_add_spatial_index.lo: gpkg_add_spatial_index.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gpkg_add_spatial_index.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gpkg_add_spatial_index.Tpo -c -o geopackage_la-gpkg_add_spatial_index.lo `test -f 'gpkg_add_spatial_index.c' || echo '$(srcdir)/'`gpkg_add_spatial_index.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gpkg_add_spatial_index.Tpo $(DEPDIR)/geopackage_la-gpkg_add_spatial_index.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_add_spatial_index.c' object='geopackage_la-gpkg_add_spatial_index.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gpkg_add_spatial_index.lo `test -f 'gpkg_add_spatial_index.c' || echo '$(srcdir)/'`gpkg_add_spatial_index.c geopackage_la-gaia_cvt_gpkg.lo: gaia_cvt_gpkg.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT geopackage_la-gaia_cvt_gpkg.lo -MD -MP -MF $(DEPDIR)/geopackage_la-gaia_cvt_gpkg.Tpo -c -o geopackage_la-gaia_cvt_gpkg.lo `test -f 'gaia_cvt_gpkg.c' || echo '$(srcdir)/'`gaia_cvt_gpkg.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/geopackage_la-gaia_cvt_gpkg.Tpo $(DEPDIR)/geopackage_la-gaia_cvt_gpkg.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gaia_cvt_gpkg.c' object='geopackage_la-gaia_cvt_gpkg.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(geopackage_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(geopackage_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o geopackage_la-gaia_cvt_gpkg.lo `test -f 'gaia_cvt_gpkg.c' || echo '$(srcdir)/'`gaia_cvt_gpkg.c libgeopackage_la-gpkg_add_tile_triggers.lo: gpkg_add_tile_triggers.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_add_tile_triggers.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Tpo -c -o libgeopackage_la-gpkg_add_tile_triggers.lo `test -f 'gpkg_add_tile_triggers.c' || echo '$(srcdir)/'`gpkg_add_tile_triggers.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Tpo $(DEPDIR)/libgeopackage_la-gpkg_add_tile_triggers.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_add_tile_triggers.c' object='libgeopackage_la-gpkg_add_tile_triggers.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_add_tile_triggers.lo `test -f 'gpkg_add_tile_triggers.c' || echo '$(srcdir)/'`gpkg_add_tile_triggers.c libgeopackage_la-gpkg_get_normal_row.lo: gpkg_get_normal_row.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_get_normal_row.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Tpo -c -o libgeopackage_la-gpkg_get_normal_row.lo `test -f 'gpkg_get_normal_row.c' || echo '$(srcdir)/'`gpkg_get_normal_row.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Tpo $(DEPDIR)/libgeopackage_la-gpkg_get_normal_row.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_get_normal_row.c' object='libgeopackage_la-gpkg_get_normal_row.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_get_normal_row.lo `test -f 'gpkg_get_normal_row.c' || echo '$(srcdir)/'`gpkg_get_normal_row.c libgeopackage_la-gpkg_get_normal_zoom.lo: gpkg_get_normal_zoom.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_get_normal_zoom.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Tpo -c -o libgeopackage_la-gpkg_get_normal_zoom.lo `test -f 'gpkg_get_normal_zoom.c' || echo '$(srcdir)/'`gpkg_get_normal_zoom.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Tpo $(DEPDIR)/libgeopackage_la-gpkg_get_normal_zoom.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_get_normal_zoom.c' object='libgeopackage_la-gpkg_get_normal_zoom.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_get_normal_zoom.lo `test -f 'gpkg_get_normal_zoom.c' || echo '$(srcdir)/'`gpkg_get_normal_zoom.c libgeopackage_la-gpkgGetImageType.lo: gpkgGetImageType.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgGetImageType.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgGetImageType.Tpo -c -o libgeopackage_la-gpkgGetImageType.lo `test -f 'gpkgGetImageType.c' || echo '$(srcdir)/'`gpkgGetImageType.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgGetImageType.Tpo $(DEPDIR)/libgeopackage_la-gpkgGetImageType.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgGetImageType.c' object='libgeopackage_la-gpkgGetImageType.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgGetImageType.lo `test -f 'gpkgGetImageType.c' || echo '$(srcdir)/'`gpkgGetImageType.c libgeopackage_la-gpkgCreateBaseTables.lo: gpkgCreateBaseTables.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgCreateBaseTables.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Tpo -c -o libgeopackage_la-gpkgCreateBaseTables.lo `test -f 'gpkgCreateBaseTables.c' || echo '$(srcdir)/'`gpkgCreateBaseTables.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Tpo $(DEPDIR)/libgeopackage_la-gpkgCreateBaseTables.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgCreateBaseTables.c' object='libgeopackage_la-gpkgCreateBaseTables.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgCreateBaseTables.lo `test -f 'gpkgCreateBaseTables.c' || echo '$(srcdir)/'`gpkgCreateBaseTables.c libgeopackage_la-gpkgInsertEpsgSRID.lo: gpkgInsertEpsgSRID.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgInsertEpsgSRID.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgInsertEpsgSRID.Tpo -c -o libgeopackage_la-gpkgInsertEpsgSRID.lo `test -f 'gpkgInsertEpsgSRID.c' || echo '$(srcdir)/'`gpkgInsertEpsgSRID.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgInsertEpsgSRID.Tpo $(DEPDIR)/libgeopackage_la-gpkgInsertEpsgSRID.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgInsertEpsgSRID.c' object='libgeopackage_la-gpkgInsertEpsgSRID.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgInsertEpsgSRID.lo `test -f 'gpkgInsertEpsgSRID.c' || echo '$(srcdir)/'`gpkgInsertEpsgSRID.c libgeopackage_la-gpkgCreateTilesTable.lo: gpkgCreateTilesTable.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgCreateTilesTable.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Tpo -c -o libgeopackage_la-gpkgCreateTilesTable.lo `test -f 'gpkgCreateTilesTable.c' || echo '$(srcdir)/'`gpkgCreateTilesTable.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Tpo $(DEPDIR)/libgeopackage_la-gpkgCreateTilesTable.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgCreateTilesTable.c' object='libgeopackage_la-gpkgCreateTilesTable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgCreateTilesTable.lo `test -f 'gpkgCreateTilesTable.c' || echo '$(srcdir)/'`gpkgCreateTilesTable.c libgeopackage_la-gpkgCreateTilesZoomLevel.lo: gpkgCreateTilesZoomLevel.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgCreateTilesZoomLevel.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Tpo -c -o libgeopackage_la-gpkgCreateTilesZoomLevel.lo `test -f 'gpkgCreateTilesZoomLevel.c' || echo '$(srcdir)/'`gpkgCreateTilesZoomLevel.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Tpo $(DEPDIR)/libgeopackage_la-gpkgCreateTilesZoomLevel.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgCreateTilesZoomLevel.c' object='libgeopackage_la-gpkgCreateTilesZoomLevel.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgCreateTilesZoomLevel.lo `test -f 'gpkgCreateTilesZoomLevel.c' || echo '$(srcdir)/'`gpkgCreateTilesZoomLevel.c libgeopackage_la-gpkgAddGeometryColumn.lo: gpkgAddGeometryColumn.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgAddGeometryColumn.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgAddGeometryColumn.Tpo -c -o libgeopackage_la-gpkgAddGeometryColumn.lo `test -f 'gpkgAddGeometryColumn.c' || echo '$(srcdir)/'`gpkgAddGeometryColumn.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgAddGeometryColumn.Tpo $(DEPDIR)/libgeopackage_la-gpkgAddGeometryColumn.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgAddGeometryColumn.c' object='libgeopackage_la-gpkgAddGeometryColumn.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgAddGeometryColumn.lo `test -f 'gpkgAddGeometryColumn.c' || echo '$(srcdir)/'`gpkgAddGeometryColumn.c libgeopackage_la-gpkgMakePoint.lo: gpkgMakePoint.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgMakePoint.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgMakePoint.Tpo -c -o libgeopackage_la-gpkgMakePoint.lo `test -f 'gpkgMakePoint.c' || echo '$(srcdir)/'`gpkgMakePoint.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgMakePoint.Tpo $(DEPDIR)/libgeopackage_la-gpkgMakePoint.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgMakePoint.c' object='libgeopackage_la-gpkgMakePoint.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgMakePoint.lo `test -f 'gpkgMakePoint.c' || echo '$(srcdir)/'`gpkgMakePoint.c libgeopackage_la-gpkgBinary.lo: gpkgBinary.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkgBinary.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkgBinary.Tpo -c -o libgeopackage_la-gpkgBinary.lo `test -f 'gpkgBinary.c' || echo '$(srcdir)/'`gpkgBinary.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkgBinary.Tpo $(DEPDIR)/libgeopackage_la-gpkgBinary.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkgBinary.c' object='libgeopackage_la-gpkgBinary.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkgBinary.lo `test -f 'gpkgBinary.c' || echo '$(srcdir)/'`gpkgBinary.c libgeopackage_la-gpkg_add_geometry_triggers.lo: gpkg_add_geometry_triggers.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_add_geometry_triggers.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_add_geometry_triggers.Tpo -c -o libgeopackage_la-gpkg_add_geometry_triggers.lo `test -f 'gpkg_add_geometry_triggers.c' || echo '$(srcdir)/'`gpkg_add_geometry_triggers.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_add_geometry_triggers.Tpo $(DEPDIR)/libgeopackage_la-gpkg_add_geometry_triggers.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_add_geometry_triggers.c' object='libgeopackage_la-gpkg_add_geometry_triggers.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_add_geometry_triggers.lo `test -f 'gpkg_add_geometry_triggers.c' || echo '$(srcdir)/'`gpkg_add_geometry_triggers.c libgeopackage_la-gpkg_add_spatial_index.lo: gpkg_add_spatial_index.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gpkg_add_spatial_index.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gpkg_add_spatial_index.Tpo -c -o libgeopackage_la-gpkg_add_spatial_index.lo `test -f 'gpkg_add_spatial_index.c' || echo '$(srcdir)/'`gpkg_add_spatial_index.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gpkg_add_spatial_index.Tpo $(DEPDIR)/libgeopackage_la-gpkg_add_spatial_index.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gpkg_add_spatial_index.c' object='libgeopackage_la-gpkg_add_spatial_index.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gpkg_add_spatial_index.lo `test -f 'gpkg_add_spatial_index.c' || echo '$(srcdir)/'`gpkg_add_spatial_index.c libgeopackage_la-gaia_cvt_gpkg.lo: gaia_cvt_gpkg.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -MT libgeopackage_la-gaia_cvt_gpkg.lo -MD -MP -MF $(DEPDIR)/libgeopackage_la-gaia_cvt_gpkg.Tpo -c -o libgeopackage_la-gaia_cvt_gpkg.lo `test -f 'gaia_cvt_gpkg.c' || echo '$(srcdir)/'`gaia_cvt_gpkg.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgeopackage_la-gaia_cvt_gpkg.Tpo $(DEPDIR)/libgeopackage_la-gaia_cvt_gpkg.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gaia_cvt_gpkg.c' object='libgeopackage_la-gaia_cvt_gpkg.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgeopackage_la_CFLAGS) $(CFLAGS) -c -o libgeopackage_la-gaia_cvt_gpkg.lo `test -f 'gaia_cvt_gpkg.c' || echo '$(srcdir)/'`gaia_cvt_gpkg.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir 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-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/geopackage/gpkg_add_tile_triggers.c����������������������������������������0000664�0001750�0001750�00000013654�12544707704�021157� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_PRIVATE void fnct_gpkgAddTileTriggers (sqlite3_context * context, int argc __attribute__ ((unused)), sqlite3_value ** argv) { /* SQL function: / gpkgAddTileTriggers(table) / / Adds Geopackage tile table triggers for the named table / returns nothing on success, raises exception on error / */ const unsigned char *table; char *sql_stmt = NULL; sqlite3 *sqlite = NULL; char *errMsg = NULL; int ret = 0; int i = 0; /* Note: the code below relies on there being twelve (or less) varargs, all of which are the table name */ const char *trigger_stmts[] = { "CREATE TRIGGER \"%s_zoom_insert\"\n" "BEFORE INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: zoom_level not specified for table in gpkg_tile_matrix')\n" "WHERE NOT (NEW.zoom_level IN (SELECT zoom_level FROM gpkg_tile_matrix WHERE table_name = \"%s\"));\n" "END", "CREATE TRIGGER \"%s_zoom_update\"\n" "BEFORE UPDATE OF zoom_level ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: zoom_level not specified for table in gpkg_tile_matrix')\n" "WHERE NOT (NEW.zoom_level IN (SELECT zoom_level FROM gpkg_tile_matrix WHERE table_name = \"%s\"));\n" "END", "CREATE TRIGGER \"%s_tile_column_insert\"\n" "BEFORE INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_column cannot be < 0')\n" "WHERE (NEW.tile_column < 0) ;\n" "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_column must be < matrix_width specified for table and zoom level in gpkg_tile_matrix')\n" "WHERE NOT (NEW.tile_column < (SELECT matrix_width FROM gpkg_tile_matrix WHERE table_name = '%s' AND zoom_level = NEW.zoom_level));\n" "END", "CREATE TRIGGER \"%s_tile_column_update\"\n" "BEFORE UPDATE OF tile_column ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_column cannot be < 0')\n" "WHERE (NEW.tile_column < 0) ;\n" "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_column must be < matrix_width specified for table and zoom level in gpkg_tile_matrix')\n" "WHERE NOT (NEW.tile_column < (SELECT matrix_width FROM gpkg_tile_matrix WHERE table_name = '%s' AND zoom_level = NEW.zoom_level));\n" "END", "CREATE TRIGGER \"%s_tile_row_insert\"\n" "BEFORE INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_row cannot be < 0')\n" "WHERE (NEW.tile_row < 0) ;\n" "SELECT RAISE(ABORT, 'insert on table ''%s'' violates constraint: tile_row must be < matrix_height specified for table and zoom level in gpkg_tile_matrix')\n" "WHERE NOT (NEW.tile_row < (SELECT matrix_height FROM gpkg_tile_matrix WHERE table_name = '%s' AND zoom_level = NEW.zoom_level));\n" "END", "CREATE TRIGGER \"%s_tile_row_update\"\n" "BEFORE UPDATE OF tile_row ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_row cannot be < 0')\n" "WHERE (NEW.tile_row < 0) ;\n" "SELECT RAISE(ABORT, 'update on table ''%s'' violates constraint: tile_row must be < matrix_height specified for table and zoom level in gpkg_tile_matrix')\n" "WHERE NOT (NEW.tile_row < (SELECT matrix_height FROM gpkg_tile_matrix WHERE table_name = '%s' AND zoom_level = NEW.zoom_level));\n" "END", NULL }; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_error (context, "gpkgAddTileTriggers() error: argument 1 [table] is not of the String type", -1); return; } table = sqlite3_value_text (argv[0]); for (i = 0; trigger_stmts[i] != NULL; ++i) { sql_stmt = sqlite3_mprintf (trigger_stmts[i], table, table, table, table, table, table, table, table, table, table, table, table); sqlite = sqlite3_context_db_handle (context); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free (sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error (context, errMsg, -1); sqlite3_free (errMsg); return; } } } #endif ������������������������������������������������������������������������������������libspatialite-4.3.0a/src/geopackage/gpkg_add_geometry_triggers.c������������������������������������0000664�0001750�0001750�00000015144�12544707704�022051� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Sandro Furieri (a.furieri@lqt.it) Portions created by the Initial Developer are Copyright (C) 2014-2015 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards (bradh@frogmouth.net) Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include "spatialite/gaiaaux.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_PRIVATE void fnct_gpkgAddGeometryTriggers (sqlite3_context * context, int argc __attribute__ ((unused)), sqlite3_value ** argv) { /* SQL function: / gpkgAddGeometryTriggers(table, column) / / Adds Geopackage geometry table triggers for the named table / returns nothing on success, raises exception on error / */ const char *table; const char *column; char *xtable; char *xcolumn; char *sql_stmt = NULL; sqlite3 *sqlite = NULL; char *errMsg = NULL; int ret = 0; int i = 0; const char *trigger_stmts[] = { "CREATE TRIGGER \"fgti_%s_%s\"\n" "BEFORE INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE (ROLLBACK, 'insert on \"%s\" violates constraint: " "ST_GeometryType(\"%s\") is not assignable from " "gpkg_geometry_columns.geometry_type_name value')\n" "WHERE (SELECT geometry_type_name\n" "FROM gpkg_geometry_columns\n" "WHERE Lower(table_name) = Lower(%Q)\n" "AND Lower(column_name) = Lower(%Q)\n" "AND gpkg_IsAssignable(geometry_type_name, " "ST_GeometryType(NEW.\"%s\")) = 0);\nEND", "CREATE TRIGGER \"fgtu_%s_%s\"\n" "BEFORE UPDATE OF \"%s\" ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE (ROLLBACK, 'update of \"%s\" on \"%s\" violates constraint: " "ST_GeometryType(\"%s\") is not assignable from " "gpkg_geometry_columns.geometry_type_name value')\n" "WHERE (SELECT geometry_type_name\n" "FROM gpkg_geometry_columns\n" "WHERE Lower(table_name) = Lower(%Q) " "AND Lower(column_name) = Lower(%Q) " "AND gpkg_IsAssignable(geometry_type_name, " "ST_GeometryType(NEW.\"%s\")) = 0);\nEND", "CREATE TRIGGER \"fgsi_%s_%s\"\n" "BEFORE INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE (ROLLBACK, 'insert on \"%s\" violates constraint: " "ST_SRID(\"%s\") does not match gpkg_geometry_columns.srs_id value')\n" "WHERE (SELECT srs_id FROM gpkg_geometry_columns\n" "WHERE Lower(table_name) = Lower(%Q) " "AND Lower(column_name) = Lower(%Q) " "AND ST_SRID(NEW.\"%s\") <> srs_id);\nEND", "CREATE TRIGGER \"fgsu_%s_%s\"\n" "BEFORE UPDATE OF \"%s\" ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE (ROLLBACK, 'update of \"%s\" on \"%s\" violates constraint: " "ST_SRID(\"%s\") does not match gpkg_geometry_columns.srs_id value')\n" "WHERE (SELECT srs_id FROM gpkg_geometry_columns\n" "WHERE Lower(table_name) = Lower(%Q) " "AND Lower(column_name) = Lower(%Q) " "AND ST_SRID(NEW.\"%s\") <> srs_id);\nEND", NULL }; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_error (context, "gpkgAddGeometryTriggers() error: argument 1 [table] is not of the String type", -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_error (context, "gpkgAddGeometryTriggers() error: argument 2 [column] is not of the String type", -1); return; } table = (const char *) sqlite3_value_text (argv[0]); column = (const char *) sqlite3_value_text (argv[1]); xtable = gaiaDoubleQuotedSql (table); xcolumn = gaiaDoubleQuotedSql (column); sqlite = sqlite3_context_db_handle (context); for (i = 0; i < 4; i++) { /* inserting the Triggers */ if (i == 0 || i == 2) sql_stmt = sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xtable, table, xcolumn, column, column, xcolumn); else sql_stmt = sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xcolumn, xtable, table, column, xcolumn, column, column, xcolumn); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free (sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error (context, errMsg, -1); sqlite3_free (errMsg); free (xtable); free (xcolumn); return; } } free (xtable); free (xcolumn); /* registering the GPKG extensions */ sql_stmt = sqlite3_mprintf ("INSERT INTO gpkg_extensions " "(table_name, column_name, extension_name, definition, scope) " "VALUES (Lower(%Q), Lower(%Q), 'gpkg_geometry_type_trigger', " "'GeoPackage 1.0 Specification Annex N', 'write-only')", table, column); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free (sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error (context, errMsg, -1); sqlite3_free (errMsg); return; } sql_stmt = sqlite3_mprintf ("INSERT INTO gpkg_extensions " "(table_name, column_name, extension_name, definition, scope) " "VALUES (Lower(%Q), Lower(%Q), 'gpkg_srs_id_trigger', " "'GeoPackage 1.0 Specification Annex N', 'write-only')", table, column); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free (sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error (context, errMsg, -1); sqlite3_free (errMsg); return; } } #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/geopackage/gpkgCreateTilesTable.c������������������������������������������0000664�0001750�0001750�00000013746�12544707704�020523� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_PRIVATE void fnct_gpkgCreateTilesTable (sqlite3_context * context, int argc __attribute__ ((unused)), sqlite3_value ** argv) { /* SQL function: / gpkgCreateTilesTable(table_name, srid, min_x, min_y, max_x, max_y) / / Create a new (empty) Tiles table and the triggers for that table / It also adds in the matching entries into gpkg_contents and gpkg_tile_matrix_set / / TODO: consider adding description and identifier to gpkg_contents / / returns nothing on success, raises exception on error / / This function assumes usual tile conventions, including that the tiles are power-of-two-zoom. / */ const unsigned char *table; int srid = -1; double min_x; double min_y; double max_x; double max_y; char *sql_stmt = NULL; sqlite3 *sqlite = NULL; char *errMsg = NULL; int ret = 0; int i = 0; const char *metaTableSchemas[] = { "INSERT INTO gpkg_contents (table_name, data_type, srs_id, min_x, min_y, max_x, max_y) VALUES (%Q, 'tiles', %i, %f, %f, %f, %f)", "INSERT INTO gpkg_tile_matrix_set (table_name, srs_id, min_x, min_y, max_x, max_y) VALUES (%Q, %i, %f, %f, %f, %f)", NULL }; const char *tableSchemas[] = { "CREATE TABLE %q (\n" "id INTEGER PRIMARY KEY AUTOINCREMENT,\n" "zoom_level INTEGER NOT NULL DEFAULT 0,\n" "tile_column INTEGER NOT NULL DEFAULT 0,\n" "tile_row INTEGER NOT NULL DEFAULT 0,\n" "tile_data BLOB NOT NULL,\n" "UNIQUE (zoom_level, tile_column, tile_row))", "SELECT gpkgAddTileTriggers(%Q)", NULL }; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_error (context, "gpkgCreateTilesTable() error: argument 1 [table] is not of the String type", -1); return; } table = sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_error (context, "gpkgCreateTilesTable() error: argument 2 [srid] is not of the integer type", -1); return; } srid = sqlite3_value_int (argv[1]); if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) { min_x = sqlite3_value_double (argv[2]); } else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { min_x = (double) sqlite3_value_int (argv[2]); } else { sqlite3_result_error (context, "gpkgCreateTilesTable() error: argument 3 [min_x] is not a numeric type", -1); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) { min_y = sqlite3_value_double (argv[3]); } else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { min_y = (double) sqlite3_value_int (argv[3]); } else { sqlite3_result_error (context, "gpkgCreateTilesTable() error: argument 4 [min_y] is not a numeric type", -1); return; } if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) { max_x = sqlite3_value_double (argv[4]); } else if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { max_x = (double) sqlite3_value_int (argv[4]); } else { sqlite3_result_error (context, "gpkgCreateTilesTable() error: argument 5 [max_x] is not a numeric type", -1); return; } if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) { max_y = sqlite3_value_double (argv[5]); } else if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) { max_y = (double) sqlite3_value_int (argv[5]); } else { sqlite3_result_error (context, "gpkgCreateTilesTable() error: argument 6 [max_y] is not a numeric type", -1); return; } sqlite = sqlite3_context_db_handle (context); for (i = 0; metaTableSchemas[i] != NULL; ++i) { sql_stmt = sqlite3_mprintf (metaTableSchemas[i], table, srid, min_x, min_y, max_x, max_y); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free (sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error (context, errMsg, -1); sqlite3_free (errMsg); return; } } for (i = 0; tableSchemas[i] != NULL; ++i) { sql_stmt = sqlite3_mprintf (tableSchemas[i], table); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free (sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error (context, errMsg, -1); sqlite3_free (errMsg); return; } } } #endif ��������������������������libspatialite-4.3.0a/src/geopackage/gpkgInsertEpsgSRID.c��������������������������������������������0000664�0001750�0001750�00000010232�12544707704�020077� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_PRIVATE void fnct_gpkgInsertEpsgSRID (sqlite3_context * context, int argc UNUSED, sqlite3_value ** argv) { /* SQL function: / gpkgInsertEpsgSRID(srid) / / Adds a spatial reference system entry for the specified EPSG identifier / / It is an error to try to add the entry if it already exists (this is often indicated by / the "PRIMARY KEY must be unique" error message) / / returns nothing on success, raises exception on error */ char *sqlcmd = NULL; sqlite3 *sqlite = NULL; sqlite3_stmt *sql_stmt; int ret = 0; int srid; struct epsg_defs *first = NULL; struct epsg_defs *last = NULL; if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) { sqlite3_result_error (context, "gpkgInsertEpsgSRID() error: argument 1 [srid] is not of the integer type", -1); return; } srid = sqlite3_value_int (argv[0]); /* get the EPSG definition for this SRID from our master list */ initialize_epsg (srid, &first, &last); if (first == NULL) { sqlite3_result_error (context, "gpkgInsertEpsgSRID() error: srid is not defined in the EPSG inlined dataset", -1); return; } /* get a context handle */ sqlite = sqlite3_context_db_handle (context); /* add the definition for the SRID */ sqlcmd = "INSERT INTO gpkg_spatial_ref_sys (srs_name, srs_id, organization, " "organization_coordsys_id, definition) VALUES (?, ?, ?, ?, ?)"; ret = sqlite3_prepare_v2 (sqlite, sqlcmd, strlen (sqlcmd), &sql_stmt, NULL); if (ret != SQLITE_OK) { sqlite3_result_error (context, sqlite3_errmsg (sqlite), -1); goto stop; } sqlite3_bind_text (sql_stmt, 1, first->ref_sys_name, strlen (first->ref_sys_name), SQLITE_STATIC); sqlite3_bind_int (sql_stmt, 2, first->srid); sqlite3_bind_text (sql_stmt, 3, first->auth_name, strlen (first->auth_name), SQLITE_STATIC); sqlite3_bind_int (sql_stmt, 4, first->auth_srid); if (strlen (first->srs_wkt) == 0) { sqlite3_bind_text (sql_stmt, 5, "Undefined", 9, SQLITE_STATIC); } else { sqlite3_bind_text (sql_stmt, 5, first->srs_wkt, strlen (first->srs_wkt), SQLITE_STATIC); } ret = sqlite3_step (sql_stmt); if (ret != SQLITE_DONE && ret != SQLITE_ROW) { sqlite3_result_error (context, sqlite3_errmsg (sqlite), -1); goto stop; } stop: if (sql_stmt != NULL) { sqlite3_finalize (sql_stmt); } /* freeing the EPSG defs list */ free_epsg (first); } #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/geopackage/gpkgGetImageType.c����������������������������������������������0000664�0001750�0001750�00000006622�12544707704�017666� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include <spatialite/gaiaexif.h> #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_PRIVATE void fnct_gpkgGetImageType (sqlite3_context * context, int argc UNUSED, sqlite3_value ** argv) { /* SQL function: / gpkgGetImageType(blob) / / Gets the image type (as a string) of the blob argument, or "unknown" if / the image type is not one of the PNG, JPEG, TIFF or WebP format types that / are supported in GeoPackage. This function raises exception on error (e.g. / wrong argument type). / / The result will be one of: / - "png" - for PNG / - "jpeg" - for JPEG / - "tiff" - for TIFF / - "x-webp" - for WebP / These are the mime type for the image format (without the "image/" prefix) / */ unsigned char *p_blob = NULL; int n_bytes = 0; int blobType; if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_error (context, "gpkgGetImageType() error: argument 1 [image blob] is not of the BLOB type", -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); blobType = gaiaGuessBlobType (p_blob, n_bytes); switch (blobType) { case GAIA_TIFF_BLOB: sqlite3_result_text (context, "tiff", strlen ("tiff"), SQLITE_TRANSIENT); break; case GAIA_PNG_BLOB: sqlite3_result_text (context, "png", strlen ("png"), SQLITE_TRANSIENT); break; case GAIA_JPEG_BLOB: sqlite3_result_text (context, "jpeg", strlen ("jpeg"), SQLITE_TRANSIENT); break; case GAIA_WEBP_BLOB: sqlite3_result_text (context, "x-webp", strlen ("x-webp"), SQLITE_TRANSIENT); break; default: sqlite3_result_text (context, "unknown", strlen ("unknown"), SQLITE_TRANSIENT); break; } } #endif ��������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/geopackage/gpkg_get_normal_zoom.c������������������������������������������0000664�0001750�0001750�00000010746�12544707704�020676� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_PRIVATE void fnct_gpkgGetNormalZoom (sqlite3_context * context, int argc UNUSED, sqlite3_value ** argv) { /* SQL function: / gpkgGetNormalZoom(tile_table_name, inverted_zoom_level) / / Gets the normal integer zoom level for data stored in the specified table. / Raises a SQL exception if inverted zoom level is outside the range of / tile_matrix_metadata table normal zoom levels defined for the tile_table / / Note that this function can also be used to convert from a normal zoom level / to an inverted zoom level - this conversion is symmetric. */ const unsigned char *table; int inverted_zoom_level; long max_zoom_level; long normal_zoom_level; char *sql_stmt = NULL; sqlite3 *sqlite = NULL; char *errMsg = NULL; char **results; char *endptr = 0; int rows = 0; int columns = 0; int ret = 0; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_error (context, "gpkgGetNormalZoom() error: argument 1 [tile_table_name] is not of the String type", -1); return; } table = sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_error (context, "gpkgGetNormalZoom() error: argument 2 [inverted zoom level] is not of the integer type", -1); return; } inverted_zoom_level = sqlite3_value_int (argv[1]); sql_stmt = sqlite3_mprintf ("SELECT MAX(zoom_level) FROM gpkg_tile_matrix WHERE table_name=\"%q\"", table); sqlite = sqlite3_context_db_handle (context); ret = sqlite3_get_table (sqlite, sql_stmt, &results, &rows, &columns, &errMsg); sqlite3_free (sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error (context, errMsg, -1); sqlite3_free (errMsg); return; } if ((rows != 1) || (results[1 * columns + 0] == NULL)) { sqlite3_free_table (results); sqlite3_result_error (context, "gpkgGetNormalZoom: tile table not found in gpkg_tile_matrix", -1); sqlite3_free (errMsg); return; } errno = 0; max_zoom_level = strtol (results[1 * columns + 0], &endptr, 10); if ((endptr == results[1 * columns + 0]) || (max_zoom_level < 0) || (errno == ERANGE && max_zoom_level == LONG_MAX) || (errno != 0 && max_zoom_level == 0)) { sqlite3_free_table (results); sqlite3_result_error (context, "gpkgGetNormalZoom: could not parse result (corrupt GeoPackage?)", -1); return; } sqlite3_free_table (results); if ((inverted_zoom_level > max_zoom_level) || (inverted_zoom_level < 0)) { sqlite3_result_error (context, "gpkgGetNormalZoom: input zoom level number outside of valid zoom levels", -1); return; } normal_zoom_level = max_zoom_level - inverted_zoom_level; sqlite3_result_int (context, normal_zoom_level); } #endif ��������������������������libspatialite-4.3.0a/src/geopackage/geopackage_internal.h�������������������������������������������0000664�0001750�0001750�00000003247�12544707704�020460� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <errno.h> #include <limits.h> #include <stdio.h> #include <stddef.h> #include <stdlib.h> #include <string.h> #include <spatialite/sqlite.h> #include "spatialite/debug.h" #include "spatialite.h" #include <spatialite_private.h> #define GEOPACKAGE_HEADER_LEN 8 #define GEOPACKAGE_2D_ENVELOPE_LEN 32 #define GEOPACKAGE_3D_ENVELOPE_LEN 48 #define GEOPACKAGE_4D_ENVELOPE_LEN 64 #define GEOPACKAGE_MAGIC1 0x47 #define GEOPACKAGE_MAGIC2 0x50 #define GEOPACKAGE_VERSION 0x00 #define GEOPACKAGE_WKB_LITTLEENDIAN 0x01 #define GEOPACKAGE_WKB_EXTENDEDGEOMETRY_FLAG (0x01 << 5) #define GEOPACKAGE_WKB_EMPTY_FLAG (0x01 << 4) #define GEOPACKAGE_2D_ENVELOPE 0x01 #define GEOPACKAGE_3D_ENVELOPE 0x02 #define GEOPACKAGE_2DM_ENVELOPE 0x03 #define GEOPACKAGE_3DM_ENVELOPE 0x04 #define GEOPACKAGE_FLAGS_2D_LITTLEENDIAN ((GEOPACKAGE_2D_ENVELOPE << 1) | GEOPACKAGE_WKB_LITTLEENDIAN) #define GEOPACKAGE_FLAGS_2DM_LITTLEENDIAN ((GEOPACKAGE_2DM_ENVELOPE << 1) | GEOPACKAGE_WKB_LITTLEENDIAN) #define GEOPACKAGE_FLAGS_3D_LITTLEENDIAN ((GEOPACKAGE_3D_ENVELOPE << 1) | GEOPACKAGE_WKB_LITTLEENDIAN) #define GEOPACKAGE_FLAGS_3DM_LITTLEENDIAN ((GEOPACKAGE_3DM_ENVELOPE << 1) | GEOPACKAGE_WKB_LITTLEENDIAN) #define GEOPACKAGE_WKB_POINT 1 #define GEOPACKAGE_WKB_POINTZ 1001 #define GEOPACKAGE_WKB_POINTM 2001 #define GEOPACKAGE_WKB_POINTZM 3001 #define GEOPACKAGE_WKB_HEADER_LEN ((sizeof(char) + sizeof(int))) #define GEOPACKAGE_DEFAULT_UNDEFINED_SRID 0 GEOPACKAGE_DECLARE void gpkgSetHeader2DLittleEndian (unsigned char *ptr, int srid, int endian_arch); GEOPACKAGE_DECLARE void gpkgSetHeader2DMbr (unsigned char *ptr, double min_x, double min_y, double max_x, double max_y, int endian_arch); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/geopackage/gpkgCreateTilesZoomLevel.c��������������������������������������0000664�0001750�0001750�00000011224�12544707704�021375� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <math.h> #include "spatialite/geopackage.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_PRIVATE void fnct_gpkgCreateTilesZoomLevel (sqlite3_context * context, int argc __attribute__ ((unused)), sqlite3_value ** argv) { /* SQL function: / gpkgCreateTilesZoomLevel(table_name, zoom_level, extent_width, extent_height) / / Adds a zoom level for the specified table / / returns nothing on success, raises exception on error / / This function assumes usual tile conventions, including that the tiles are power-of-two-zoom, / 256x256 pixels, 1 tile at the top level (zoom level 0). / */ const unsigned char *table; int zoomlevel = 0; int columns = 1; int rows = 1; int tilesize = 256; double extent_height; double extent_width; char *sql_stmt = NULL; sqlite3 *sqlite = NULL; char *errMsg = NULL; int ret = 0; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_error (context, "gpkgCreateTilesZoomLevel() error: argument 1 [table] is not of the String type", -1); return; } table = sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_error (context, "gpkgCreateTilesZoomLevel() error: argument 2 [zoom level] is not of the integer type", -1); return; } zoomlevel = sqlite3_value_int (argv[1]); if (zoomlevel < 0) { sqlite3_result_error (context, "gpkgCreateTilesZoomLevel() error: argument 2 [zoom level] must be >= 0", -1); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { extent_width = (double) sqlite3_value_int (argv[2]); } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) { extent_width = sqlite3_value_double (argv[2]); } else { sqlite3_result_error (context, "gpkgCreateTilesZoomLevel() error: argument 3 [extent_width] is not of a numerical type", -1); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { extent_height = (double) sqlite3_value_int (argv[3]); } else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) { extent_height = sqlite3_value_double (argv[3]); } else { sqlite3_result_error (context, "gpkgCreateTilesZoomLevel() error: argument 4 [extent_height] is not of a numerical type", -1); return; } sqlite = sqlite3_context_db_handle (context); columns = pow (2, zoomlevel); rows = columns; sql_stmt = sqlite3_mprintf ("INSERT INTO gpkg_tile_matrix" "(table_name, zoom_level, matrix_width, matrix_height, tile_width, tile_height, pixel_x_size, pixel_y_size)" "VALUES (%Q, %i, %i, %i, %i, %i, %g, %g)", table, zoomlevel, columns, rows, tilesize, tilesize, extent_width / (tilesize * columns), extent_height / (tilesize * rows)); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free (sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error (context, errMsg, -1); sqlite3_free (errMsg); return; } } #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/geopackage/gpkgAddGeometryColumn.c�����������������������������������������0000664�0001750�0001750�00000015420�12544707704�020720� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <math.h> #include "spatialite/geopackage.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE static char *SUPPORTED_GEOMETRY_TYPES[] = { "GEOMETRY", "POINT", "LINESTRING", "POLYGON", "MULTIPOINT", "MULTILINESTRING", "MULTIPOLYGON", "GEOMCOLLECTION", NULL }; GEOPACKAGE_PRIVATE void fnct_gpkgAddGeometryColumn (sqlite3_context * context, int argc __attribute__ ((unused)), sqlite3_value ** argv) { /* SQL function: / gpkgAddGeomtryColumn(table_name, geometry_column_name, geometry_type, with_z, with_m, srs_id) / / Adds a geometry column to the specified table / geometry_type is a normal WKT name: "GEOMETRY", "POINT", "LINESTRING", "POLYGON", / "MULTIPOINT", "MULTILINESTRING", "MULTIPOLYGON", "GEOMCOLLECTION" / with_z is a flag (0 for no z values, 1 for mandatory z values, 2 for optional z values) / with_m is a flag (0 for no m values, 1 for mandatory m values, 2 for optional m values) / / It also adds a matching entry into gpkg_contents (if not already present) / / returns nothing on success, raises exception on error / / This function assumes usual tile conventions, including that the tiles are power-of-two-zoom, / 256x256 pixels, 1 tile at the top level (zoom level 0). / */ const unsigned char *table; const unsigned char *geometry_column_name; const unsigned char *geometry_type_name = NULL; int with_z; int with_m; int srid; int i = 0; char *sql_stmt = NULL; sqlite3 *sqlite = NULL; char *errMsg = NULL; int ret = 0; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_error (context, "gpkgAddGeometryColumn() error: argument 1 [table] is not of the string type", -1); return; } table = sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_error (context, "gpkgAddGeometryColumn() error: argument 2 [geometry_column_name] is not of the string type", -1); return; } geometry_column_name = sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_error (context, "gpkgAddGeometryColumn() error: argument 3 [geometry_type] is not of the string type", -1); return; } for (i = 0; SUPPORTED_GEOMETRY_TYPES[i] != NULL; ++i) { if (strcasecmp ((const char *) sqlite3_value_text (argv[2]), SUPPORTED_GEOMETRY_TYPES[i]) == 0) { geometry_type_name = (const unsigned char *) SUPPORTED_GEOMETRY_TYPES[i]; break; } } if (geometry_type_name == NULL) { sqlite3_result_error (context, "gpkgAddGeometryColumn() error: argument 3 [geometry_type] not a recognised geometry type", -1); return; } if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER) { sqlite3_result_error (context, "gpkgAddGeometryColumn() error: argument 4 [with_z] is not of the integer type", -1); return; } with_z = (double) sqlite3_value_int (argv[3]); if ((with_z != 0) && (with_z != 1) && (with_z != 2)) { sqlite3_result_error (context, "gpkgAddGeometryColumn() error: argument 4 [with_z] is not a known value (expected 0, 1 or 2)", -1); return; } if (sqlite3_value_type (argv[4]) != SQLITE_INTEGER) { sqlite3_result_error (context, "gpkgAddGeometryColumn() error: argument 5 [with_m] is not of the integer type", -1); return; } with_m = (double) sqlite3_value_int (argv[4]); if ((with_m != 0) && (with_m != 1) && (with_m != 2)) { sqlite3_result_error (context, "gpkgAddGeometryColumn() error: argument 5 [with_m] is not a known value (expected 0, 1 or 2)", -1); return; } if (sqlite3_value_type (argv[5]) != SQLITE_INTEGER) { sqlite3_result_error (context, "gpkgAddGeometryColumn() error: argument 6 [srid] is not of the integer type", -1); return; } srid = sqlite3_value_int (argv[5]); sqlite = sqlite3_context_db_handle (context); sql_stmt = sqlite3_mprintf("INSERT OR IGNORE INTO gpkg_contents " "(table_name, data_type, srs_id, min_x, min_y, max_x, max_y) " "VALUES (%Q, 'feature', %i, NULL, NULL, NULL, NULL)", table, srid); /* Add column definition to metadata table */ sql_stmt = sqlite3_mprintf ("INSERT INTO gpkg_geometry_columns " "(table_name, column_name, geometry_type_name, srs_id, z, m) " "VALUES (%Q, %Q, %Q, %i, %i, %i)", table, geometry_column_name, geometry_type_name, srid, with_z, with_m); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free (sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error (context, errMsg, -1); sqlite3_free (errMsg); return; } /* extend table_name to actually have a geometry column */ sql_stmt = sqlite3_mprintf ("ALTER TABLE %s ADD COLUMN %s %s", table, geometry_column_name, geometry_type_name); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free (sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error (context, errMsg, -1); sqlite3_free (errMsg); return; } /* TODO: add triggers */ } #endif ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/geopackage/gpkgBinary.c����������������������������������������������������0000664�0001750�0001750�00000032421�12544707704�016562� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2014-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE #define GEOPACKAGE_UNUSED() if (argc || argv) argc = argc; GEOPACKAGE_DECLARE void gpkgSetHeader2DLittleEndian (unsigned char *ptr, int srid, int endian_arch) { *ptr = GEOPACKAGE_MAGIC1; *(ptr + 1) = GEOPACKAGE_MAGIC2; *(ptr + 2) = GEOPACKAGE_VERSION; *(ptr + 3) = GEOPACKAGE_FLAGS_2D_LITTLEENDIAN; gaiaExport32 (ptr + 4, srid, 1, endian_arch); /* the SRID */ } GEOPACKAGE_DECLARE void gpkgSetHeader2DMbr (unsigned char *ptr, double min_x, double min_y, double max_x, double max_y, int endian_arch) { gaiaExport64 (ptr, min_x, 1, endian_arch); gaiaExport64 (ptr + sizeof (double), max_x, 1, endian_arch); gaiaExport64 (ptr + 2 * sizeof (double), min_y, 1, endian_arch); gaiaExport64 (ptr + 3 * sizeof (double), max_y, 1, endian_arch); } GEOPACKAGE_DECLARE void gaiaToGPB (gaiaGeomCollPtr geom, unsigned char **result, int *size) { int wkbOnlyLength; unsigned char *wkbOnlyGeometry = NULL; unsigned char *ptr; int endian_arch = gaiaEndianArch (); gaiaToWkb (geom, &wkbOnlyGeometry, &wkbOnlyLength); /* Calculate output size */ /* We only do 2D envelopes (MBR) irrespective of the input geometry dimensions */ *size = GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN; *size += wkbOnlyLength; /* allocate result and fill with "canary" value */ *result = malloc (*size); if (*result == NULL) { return; } memset (*result, 0xD9, *size); ptr = *result; /* build header */ gpkgSetHeader2DLittleEndian (ptr, geom->Srid, endian_arch); /* build MBR */ gpkgSetHeader2DMbr (ptr + GEOPACKAGE_HEADER_LEN, geom->MinX, geom->MinY, geom->MaxX, geom->MaxY, endian_arch); /* copy wkbonly results to result */ memcpy (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN, wkbOnlyGeometry, wkbOnlyLength); free (wkbOnlyGeometry); } GEOPACKAGE_PRIVATE void fnct_ToGPB (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsGPB(BLOB encoded geometry) / / converts the (spatialite) geometry blob into a GeoPackage format geometry blob / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; int len; unsigned char *p_result = NULL; GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) { sqlite3_result_null (context); return; } else { gaiaToGPB (geo, &p_result, &len); if (!p_result) { sqlite3_result_null (context); } else { sqlite3_result_blob (context, p_result, len, free); } } gaiaFreeGeomColl (geo); } static int sanity_check_gpb (const unsigned char *wkb, int size, int *srid, unsigned int *envelope_length) { /* checking type coherency for GeoPackageBinary encoded GEOMETRY */ int little_endian; int endian_arch = gaiaEndianArch (); char flags; int envelope_code; if (size < GEOPACKAGE_HEADER_LEN) { return 0; /* too short to be GPB */ } if ((*(wkb + 0) != GEOPACKAGE_MAGIC1) || (*(wkb + 1) != GEOPACKAGE_MAGIC2)) { return 0; /* doesn't match required signature */ } if (*(wkb + 2) != GEOPACKAGE_VERSION) { return 0; /* we only know how to parse version 1 */ } flags = *(wkb + 3); little_endian = flags & GEOPACKAGE_WKB_LITTLEENDIAN; envelope_code = ((flags >> 1) & 0x07); switch (envelope_code) { case 0: *envelope_length = 0; break; case 1: *envelope_length = 32; break; case 2: case 3: *envelope_length = 48; break; case 4: *envelope_length = 64; break; default: /* illegal value - not valid GeoPackageBinary */ fprintf (stderr, "Unsupported geopackage envelope value: 0x%x\n", envelope_code); return 0; } if (flags & GEOPACKAGE_WKB_EXTENDEDGEOMETRY_FLAG) { fprintf (stderr, "unsupported geopackage binary type (extended geopackage binary)\n"); return 0; } *srid = gaiaImport32 (wkb + 4, little_endian, endian_arch); return 1; } GEOPACKAGE_DECLARE gaiaGeomCollPtr gaiaFromGeoPackageGeometryBlob (const unsigned char *gpb, unsigned int gpb_len) { gaiaGeomCollPtr geo = NULL; int srid = GEOPACKAGE_DEFAULT_UNDEFINED_SRID; unsigned int envelope_length = 0; const unsigned char *wkb; unsigned int wkb_len; if (!sanity_check_gpb (gpb, gpb_len, &srid, &envelope_length)) { return NULL; } wkb = gpb + GEOPACKAGE_HEADER_LEN + envelope_length; wkb_len = gpb_len - (GEOPACKAGE_HEADER_LEN + envelope_length); geo = gaiaFromWkb (wkb, wkb_len); if (geo == NULL) { return NULL; } geo->Srid = srid; return geo; } GEOPACKAGE_PRIVATE void fnct_GeomFromGPB (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeomFromGPB(GPB encoded geometry) / / returns a geometry created by parsing a GeoPackageBinary encoded blob / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; const unsigned char *gpb; unsigned int gpb_len; gaiaGeomCollPtr geo = NULL; GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } gpb = sqlite3_value_blob (argv[0]); gpb_len = sqlite3_value_bytes (argv[0]); geo = gaiaFromGeoPackageGeometryBlob (gpb, gpb_len); if (geo == NULL) { sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkb (geo, &p_result, &len); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } /* Sandro Furieri - 2014-05-19 */ GEOPACKAGE_DECLARE int gaiaIsValidGPB (const unsigned char *gpb, int gpb_len) { /* checks for a valid GPB */ int srid; unsigned int envelope_length; if (gpb == NULL) return 0; return sanity_check_gpb (gpb, gpb_len, &srid, &envelope_length); } GEOPACKAGE_DECLARE int gaiaGetSridFromGPB (const unsigned char *gpb, int gpb_len) { /* extracts the SRID from a valid GPB */ int srid; unsigned int envelope_length; if (gpb == NULL) return -1; if (!sanity_check_gpb (gpb, gpb_len, &srid, &envelope_length)) return -1; return srid; } GEOPACKAGE_DECLARE int gaiaIsEmptyGPB (const unsigned char *gpb, int gpb_len) { /* checks for an empty GPB */ int srid; unsigned int envelope_length; int is_empty; if (gpb == NULL) return -1; if (!sanity_check_gpb (gpb, gpb_len, &srid, &envelope_length)) return -1; is_empty = *(gpb + 3) & GEOPACKAGE_WKB_EMPTY_FLAG; return is_empty; } GEOPACKAGE_DECLARE int gaiaGetEnvelopeFromGPB (const unsigned char *gpb, int gpb_len, double *min_x, double *max_x, double *min_y, double *max_y, int *has_z, double *min_z, double *max_z, int *has_m, double *min_m, double *max_m) { /* attempts to retrieve a full Envelope from a GPB */ gaiaGeomCollPtr geo; double min; double max; if (gpb == NULL) return 0; geo = gaiaFromGeoPackageGeometryBlob (gpb, gpb_len); if (geo == NULL) return 0; /* / defensive programming / / the GPKG seems to be a rather sparse and inconsistent standard / so we'll always ignore the Envelope declared by GPB / and we'll instead recompute 'our' Envelope from scratch */ gaiaMbrGeometry (geo); *min_x = geo->MinX; *max_x = geo->MaxX; *min_y = geo->MinY; *max_y = geo->MaxY; if (geo->DimensionModel == GAIA_XY_Z || geo->DimensionModel == GAIA_XY_Z_M) { *has_z = 1; gaiaZRangeGeometry (geo, &min, &max); *min_z = min; *max_z = max; } else *has_z = 0; if (geo->DimensionModel == GAIA_XY_M || geo->DimensionModel == GAIA_XY_Z_M) { *has_m = 1; gaiaMRangeGeometry (geo, &min, &max); *min_m = min; *max_m = max; } else *has_m = 0; gaiaFreeGeomColl (geo); return 1; } GEOPACKAGE_DECLARE char * gaiaGetGeometryTypeFromGPB (const unsigned char *gpb, int gpb_len) { /* attempts to retrieve the Geometry Type from a GPB */ gaiaGeomCollPtr geo; const char *type = NULL; int len; char *gtype; if (gpb == NULL) return NULL; geo = gaiaFromGeoPackageGeometryBlob (gpb, gpb_len); if (geo == NULL) return NULL; /* / defensive programming / / the GPKG seems to be a rather sparse and inconsistent standard / so we'll always fetch the Geometry Type from 'our' Geometry Type */ switch (gaiaGeometryType (geo)) { case GAIA_POINT: case GAIA_POINTZ: case GAIA_POINTM: case GAIA_POINTZM: type = "POINT"; break; case GAIA_LINESTRING: case GAIA_LINESTRINGZ: case GAIA_LINESTRINGM: case GAIA_LINESTRINGZM: type = "LINESTRING"; break; case GAIA_POLYGON: case GAIA_POLYGONZ: case GAIA_POLYGONM: case GAIA_POLYGONZM: type = "POLYGON"; break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: type = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: type = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: type = "MULTIPOLYGON"; break; case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: type = "GEOMCOLLECTION"; break; }; gaiaFreeGeomColl (geo); if (type == NULL) return NULL; len = strlen (type); gtype = malloc (len + 1); strcpy (gtype, type); return gtype; } GEOPACKAGE_PRIVATE void fnct_GPKG_IsAssignable (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GPKG_IsAssignale(expected_type_name TEXT, actual_type_name TEXT) / / returns: / 1 if the expected type is the same or a super-type of actual type / 0 otherwise */ const char *expected; const char *actual; int ret = 0; GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, ret); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_int (context, ret); return; } expected = (const char *) sqlite3_value_text (argv[0]); actual = (const char *) sqlite3_value_text (argv[1]); if (strcasecmp (expected, actual) == 0) ret = 1; if (strcasecmp (expected, "GEOMETRY") == 0) ret = 1; if (strcasecmp (expected, "MULTIPOINT") == 0 && strcasecmp (actual, "POINT") == 0) ret = 1; if (strcasecmp (expected, "MULTILINESTRING") == 0 && strcasecmp (actual, "LINESTRING") == 0) ret = 1; if (strcasecmp (expected, "MULTIPOLYGON") == 0 && strcasecmp (actual, "POLYGON") == 0) ret = 1; sqlite3_result_int (context, ret); } GEOPACKAGE_PRIVATE void fnct_IsValidGPB (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsValidGPB(GPB encoded geometry) / / check for a valid GPB encoded geometry */ const unsigned char *gpb; unsigned int gpb_len; GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, 0); return; } gpb = sqlite3_value_blob (argv[0]); gpb_len = sqlite3_value_bytes (argv[0]); sqlite3_result_int (context, gaiaIsValidGPB (gpb, gpb_len)); } /* end Sandro Furieri - 2014-05-19 */ #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/geopackage/gpkg_get_normal_row.c�������������������������������������������0000664�0001750�0001750�00000011312�12544707704�020507� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_PRIVATE void fnct_gpkgGetNormalRow (sqlite3_context * context, int argc UNUSED, sqlite3_value ** argv) { /* SQL function: / gpkgGetNormalRow(tile_table_name, normal_zoom_level, inverted_row_number) / / Gets the normal integer row number for the specified table, normal zoom level / and inverted row number. Raises a SQL exception if no zoom level row record in / tile_matrix_metadata / / Note that this function can also be used to convert from a normal row number / to an inverted row number - this conversion is symmetric. */ const unsigned char *table; int zoom_level; int inverted_row_number; int matrix_height; int normal_row_number; char *sql_stmt = NULL; sqlite3 *sqlite = NULL; char *errMsg = NULL; char **results; char *endptr = 0; int rows = 0; int columns = 0; int ret = 0; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_error (context, "gpkgGetNormalRow() error: argument 1 [tile_table_name] is not of the String type", -1); return; } table = sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_error (context, "gpkgGetNormalRow() error: argument 2 [normal zoom level] is not of the integer type", -1); return; } zoom_level = sqlite3_value_int (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_error (context, "gpkgGetNormalRow() error: argument 3 [inverted_row_number] is not of the integer type", -1); return; } inverted_row_number = sqlite3_value_int (argv[2]); sql_stmt = sqlite3_mprintf ("SELECT matrix_height FROM gpkg_tile_matrix WHERE table_name=\"%q\" AND zoom_level=%i", table, zoom_level); sqlite = sqlite3_context_db_handle (context); ret = sqlite3_get_table (sqlite, sql_stmt, &results, &rows, &columns, &errMsg); sqlite3_free (sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error (context, errMsg, -1); sqlite3_free (errMsg); return; } if (rows != 1) { sqlite3_result_error (context, "gpkgGetNormalRow: tile table or zoom level not found", -1); sqlite3_free_table (results); sqlite3_free (errMsg); return; } errno = 0; matrix_height = strtol (results[1 * columns + 0], &endptr, 10); if ((endptr == results[1 * columns + 0]) || (matrix_height < 0) || (errno == ERANGE && matrix_height == INT_MAX) || (errno != 0 && matrix_height == 0)) { sqlite3_free_table (results); sqlite3_result_error (context, "gpkgGetNormalRow: could not parse result (corrupt GeoPackage?)", -1); return; } sqlite3_free_table (results); if ((inverted_row_number >= matrix_height) || (inverted_row_number < 0)) { sqlite3_result_error (context, "gpkgGetNormalRow: row number outside of matrix height range", -1); return; } normal_row_number = matrix_height - inverted_row_number - 1; sqlite3_result_int (context, normal_row_number); } #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/geopackage/gpkgMakePoint.c�������������������������������������������������0000664�0001750�0001750�00000055762�12544707704�017242� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE #define GEOPACKAGE_UNUSED() if (argc || argv) argc = argc; static void gpkgMakePoint (double x, double y, int srid, unsigned char **result, unsigned int *size) { /* build a Blob encoded Geometry representing a POINT */ unsigned char *ptr; int endian_arch = gaiaEndianArch (); /* computing the Blob size and then allocating it */ *size = GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN; *size += GEOPACKAGE_WKB_HEADER_LEN; *size += (sizeof (double) * 2); /* [x,y] coords */ *result = malloc (*size); if (*result == NULL) { return; } memset (*result, 0xD9, *size); ptr = *result; /* setting the Blob value */ gpkgSetHeader2DLittleEndian (ptr, srid, endian_arch); gpkgSetHeader2DMbr (ptr + GEOPACKAGE_HEADER_LEN, x, y, x, y, endian_arch); *(ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN) = GEOPACKAGE_WKB_LITTLEENDIAN; gaiaExport32 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN + 1, GEOPACKAGE_WKB_POINT, 1, endian_arch); gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN + GEOPACKAGE_WKB_HEADER_LEN, x, 1, endian_arch); gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_2D_ENVELOPE_LEN + GEOPACKAGE_WKB_HEADER_LEN + sizeof (double), y, 1, endian_arch); } static void gpkgMakePointZ (double x, double y, double z, int srid, unsigned char **result, unsigned int *size) { /* build a Blob encoded Geometry representing a POINT */ unsigned char *ptr; int endian_arch = gaiaEndianArch (); /* computing the Blob size and then allocating it */ *size = GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN; *size += GEOPACKAGE_WKB_HEADER_LEN; *size += (sizeof (double) * 3); /* [x,y,z] coords */ *result = malloc (*size); if (*result == NULL) { return; } memset (*result, 0xD9, *size); /* just a flag value */ ptr = *result; /* setting the Blob value */ *ptr = GEOPACKAGE_MAGIC1; *(ptr + 1) = GEOPACKAGE_MAGIC2; *(ptr + 2) = GEOPACKAGE_VERSION; *(ptr + 3) = GEOPACKAGE_FLAGS_3D_LITTLEENDIAN; gaiaExport32 (ptr + 4, srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN, x, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + sizeof (double), x, 1, endian_arch); /* MBR - maximum x */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 2 * sizeof (double), y, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 3 * sizeof (double), y, 1, endian_arch); /* MBR - maximum Y */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 4 * sizeof (double), z, 1, endian_arch); /* MBR - maximum Z */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 5 * sizeof (double), z, 1, endian_arch); /* MBR - maximum Z */ *(ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN) = GEOPACKAGE_WKB_LITTLEENDIAN; gaiaExport32 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN + 1, GEOPACKAGE_WKB_POINTZ, 1, endian_arch); gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN + GEOPACKAGE_WKB_HEADER_LEN, x, 1, endian_arch); gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN + GEOPACKAGE_WKB_HEADER_LEN + sizeof (double), y, 1, endian_arch); gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN + GEOPACKAGE_WKB_HEADER_LEN + (2 * sizeof (double)), z, 1, endian_arch); } static void gpkgMakePointM (double x, double y, double m, int srid, unsigned char **result, unsigned int *size) { /* build a Blob encoded Geometry representing a POINT */ unsigned char *ptr; int endian_arch = gaiaEndianArch (); /* computing the Blob size and then allocating it */ *size = GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN; *size += GEOPACKAGE_WKB_HEADER_LEN; *size += (sizeof (double) * 3); /* [x,y,m] coords */ *result = malloc (*size); if (*result == NULL) { return; } memset (*result, 0xD9, *size); /* just a flag value */ ptr = *result; /* setting the Blob value */ *ptr = GEOPACKAGE_MAGIC1; *(ptr + 1) = GEOPACKAGE_MAGIC2; *(ptr + 2) = GEOPACKAGE_VERSION; *(ptr + 3) = GEOPACKAGE_FLAGS_2DM_LITTLEENDIAN; gaiaExport32 (ptr + 4, srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN, x, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + sizeof (double), x, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 2 * sizeof (double), y, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 3 * sizeof (double), y, 1, endian_arch); /* MBR - maximum Y */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 4 * sizeof (double), m, 1, endian_arch); /* MBR - maximum M */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 5 * sizeof (double), m, 1, endian_arch); /* MBR - maximum M */ *(ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN) = GEOPACKAGE_WKB_LITTLEENDIAN; gaiaExport32 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN + 1, GEOPACKAGE_WKB_POINTM, 1, endian_arch); gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN + GEOPACKAGE_WKB_HEADER_LEN, x, 1, endian_arch); gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN + GEOPACKAGE_WKB_HEADER_LEN + sizeof (double), y, 1, endian_arch); gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_3D_ENVELOPE_LEN + GEOPACKAGE_WKB_HEADER_LEN + (2 * sizeof (double)), m, 1, endian_arch); } static void gpkgMakePointZM (double x, double y, double z, double m, int srid, unsigned char **result, unsigned int *size) { /* build a Blob encoded Geometry representing a POINT */ unsigned char *ptr; int endian_arch = gaiaEndianArch (); /* computing the Blob size and then allocating it */ *size = GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN; *size += GEOPACKAGE_WKB_HEADER_LEN; *size += (sizeof (double) * 4); /* [x,y,z,m] coords */ *result = malloc (*size); if (*result == NULL) { return; } memset (*result, 0xD9, *size); /* just a flag value */ ptr = *result; /* setting the Blob value */ *ptr = GEOPACKAGE_MAGIC1; *(ptr + 1) = GEOPACKAGE_MAGIC2; *(ptr + 2) = GEOPACKAGE_VERSION; *(ptr + 3) = GEOPACKAGE_FLAGS_3DM_LITTLEENDIAN; gaiaExport32 (ptr + 4, srid, 1, endian_arch); /* the SRID */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN, x, 1, endian_arch); /* MBR - minimum X */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 1 * sizeof (double), x, 1, endian_arch); /* MBR - maximum X */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 2 * sizeof (double), y, 1, endian_arch); /* MBR - minimum Y */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 3 * sizeof (double), y, 1, endian_arch); /* MBR - maximum Y */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 4 * sizeof (double), z, 1, endian_arch); /* MBR - minimum Z */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 5 * sizeof (double), z, 1, endian_arch); /* MBR - maximum Z */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 6 * sizeof (double), m, 1, endian_arch); /* MBR - minimum M */ gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + 7 * sizeof (double), m, 1, endian_arch); /* MBR - maximum M */ *(ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN) = GEOPACKAGE_WKB_LITTLEENDIAN; gaiaExport32 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN + 1, GEOPACKAGE_WKB_POINTZM, 1, endian_arch); gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN + GEOPACKAGE_WKB_HEADER_LEN, x, 1, endian_arch); gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN + GEOPACKAGE_WKB_HEADER_LEN + sizeof (double), y, 1, endian_arch); gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN + GEOPACKAGE_WKB_HEADER_LEN + (2 * sizeof (double)), z, 1, endian_arch); gaiaExport64 (ptr + GEOPACKAGE_HEADER_LEN + GEOPACKAGE_4D_ENVELOPE_LEN + GEOPACKAGE_WKB_HEADER_LEN + (3 * sizeof (double)), m, 1, endian_arch); } GEOPACKAGE_PRIVATE void fnct_gpkgMakePoint (sqlite3_context * context, int argc UNUSED, sqlite3_value ** argv) { /* SQL function: / gpkgMakePoint(x, y) / / Creates a GeoPackage geometry POINT / / returns nothing on success, raises exception on error */ unsigned int len; int int_value; unsigned char *p_result = NULL; double x; double y; GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = sqlite3_value_double (argv[0]); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { y = sqlite3_value_double (argv[1]); } else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } gpkgMakePoint (x, y, GEOPACKAGE_DEFAULT_UNDEFINED_SRID, &p_result, &len); if (!p_result) { sqlite3_result_null (context); } else { sqlite3_result_blob (context, p_result, len, free); } } GEOPACKAGE_PRIVATE void fnct_gpkgMakePointWithSRID (sqlite3_context * context, int argc UNUSED, sqlite3_value ** argv) { /* SQL function: / gpkgMakePoint(x, y, srid) / / Creates a GeoPackage geometry POINT / / returns nothing on success, raises exception on error */ unsigned int len; int int_value; unsigned char *p_result = NULL; double x; double y; int srid; GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = sqlite3_value_double (argv[0]); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { y = sqlite3_value_double (argv[1]); } else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } srid = sqlite3_value_int (argv[2]); gpkgMakePoint (x, y, srid, &p_result, &len); if (!p_result) { sqlite3_result_null (context); } else { sqlite3_result_blob (context, p_result, len, free); } } GEOPACKAGE_PRIVATE void fnct_gpkgMakePointZ (sqlite3_context * context, int argc UNUSED, sqlite3_value ** argv) { /* SQL function: / gpkgMakePointZ(x, y, z) / / Creates a GeoPackage geometry POINT Z / / returns nothing on success, raises exception on error */ unsigned int len; int int_value; unsigned char *p_result = NULL; double x; double y; double z; GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = sqlite3_value_double (argv[0]); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { y = sqlite3_value_double (argv[1]); } else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) { z = sqlite3_value_double (argv[2]); } else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); z = int_value; } else { sqlite3_result_null (context); return; } gpkgMakePointZ (x, y, z, GEOPACKAGE_DEFAULT_UNDEFINED_SRID, &p_result, &len); if (!p_result) { sqlite3_result_null (context); } else { sqlite3_result_blob (context, p_result, len, free); } } GEOPACKAGE_PRIVATE void fnct_gpkgMakePointZWithSRID (sqlite3_context * context, int argc UNUSED, sqlite3_value ** argv) { /* SQL function: / gpkgMakePointZ(x, y, z, srid) / / Creates a GeoPackage geometry POINT Z / / returns nothing on success, raises exception on error */ unsigned int len; int int_value; unsigned char *p_result = NULL; double x; double y; double z; int srid; GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = sqlite3_value_double (argv[0]); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { y = sqlite3_value_double (argv[1]); } else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) { z = sqlite3_value_double (argv[2]); } else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); z = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } srid = sqlite3_value_int (argv[3]); gpkgMakePointZ (x, y, z, srid, &p_result, &len); if (!p_result) { sqlite3_result_null (context); } else { sqlite3_result_blob (context, p_result, len, free); } } GEOPACKAGE_PRIVATE void fnct_gpkgMakePointM (sqlite3_context * context, int argc UNUSED, sqlite3_value ** argv) { /* SQL function: / gpkgMakePointM(x, y, m) / / Creates a GeoPackage geometry POINT M / / returns nothing on success, raises exception on error */ unsigned int len; int int_value; unsigned char *p_result = NULL; double x; double y; double m; GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = sqlite3_value_double (argv[0]); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { y = sqlite3_value_double (argv[1]); } else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) { m = sqlite3_value_double (argv[2]); } else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); m = int_value; } else { sqlite3_result_null (context); return; } gpkgMakePointM (x, y, m, GEOPACKAGE_DEFAULT_UNDEFINED_SRID, &p_result, &len); if (!p_result) { sqlite3_result_null (context); } else { sqlite3_result_blob (context, p_result, len, free); } } GEOPACKAGE_PRIVATE void fnct_gpkgMakePointMWithSRID (sqlite3_context * context, int argc UNUSED, sqlite3_value ** argv) { /* SQL function: / gpkgMakePointM(x, y, m, srid) / / Creates a GeoPackage geometry POINT M / / returns nothing on success, raises exception on error */ unsigned int len; int int_value; unsigned char *p_result = NULL; double x; double y; double m; int srid; GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = sqlite3_value_double (argv[0]); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { y = sqlite3_value_double (argv[1]); } else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) { m = sqlite3_value_double (argv[2]); } else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); m = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } srid = sqlite3_value_int (argv[3]); gpkgMakePointM (x, y, m, srid, &p_result, &len); if (!p_result) { sqlite3_result_null (context); } else { sqlite3_result_blob (context, p_result, len, free); } } GEOPACKAGE_PRIVATE void fnct_gpkgMakePointZM (sqlite3_context * context, int argc UNUSED, sqlite3_value ** argv) { /* SQL function: / gpkgMakePointM(x, y, z, m) / / Creates a GeoPackage geometry POINT ZM / / returns nothing on success, raises exception on error */ unsigned int len; int int_value; unsigned char *p_result = NULL; double x; double y; double z; double m; GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = sqlite3_value_double (argv[0]); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { y = sqlite3_value_double (argv[1]); } else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) { z = sqlite3_value_double (argv[2]); } else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); z = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) { m = sqlite3_value_double (argv[3]); } else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); m = int_value; } else { sqlite3_result_null (context); return; } gpkgMakePointZM (x, y, z, m, GEOPACKAGE_DEFAULT_UNDEFINED_SRID, &p_result, &len); if (!p_result) { sqlite3_result_null (context); } else { sqlite3_result_blob (context, p_result, len, free); } } GEOPACKAGE_PRIVATE void fnct_gpkgMakePointZMWithSRID (sqlite3_context * context, int argc UNUSED, sqlite3_value ** argv) { /* SQL function: / gpkgMakePointZM(x, y, z, m, srid) / / Creates a GeoPackage geometry POINT ZM / / returns nothing on success, raises exception on error */ unsigned int len; int int_value; unsigned char *p_result = NULL; double x; double y; double z; double m; int srid; GEOPACKAGE_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = sqlite3_value_double (argv[0]); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { y = sqlite3_value_double (argv[1]); } else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) { z = sqlite3_value_double (argv[2]); } else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); z = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) { m = sqlite3_value_double (argv[3]); } else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); m = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } srid = sqlite3_value_int (argv[4]); gpkgMakePointZM (x, y, z, m, srid, &p_result, &len); if (!p_result) { sqlite3_result_null (context); } else { sqlite3_result_blob (context, p_result, len, free); } } #endif ��������������libspatialite-4.3.0a/src/geopackage/Makefile.am�����������������������������������������������������0000664�0001750�0001750�00000001741�12544707704�016356� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������AM_CFLAGS = $(GCOV_FLAGS) AM_CPPFLAGS = @CFLAGS@ AM_CPPFLAGS += -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libgeopackage.la geopackage.la SHARED_SOURCES = \ gpkg_add_tile_triggers.c \ gpkg_get_normal_row.c \ gpkg_get_normal_zoom.c \ gpkgGetImageType.c \ gpkgCreateBaseTables.c \ gpkgInsertEpsgSRID.c \ gpkgCreateTilesTable.c \ gpkgCreateTilesZoomLevel.c \ gpkgAddGeometryColumn.c \ gpkgMakePoint.c \ gpkgBinary.c \ gpkg_add_geometry_triggers.c \ gpkg_add_spatial_index.c \ gaia_cvt_gpkg.c libgeopackage_la_SOURCES = $(SHARED_SOURCES) libgeopackage_la_CFLAGS = -fvisibility=hidden geopackage_la_SOURCES = $(SHARED_SOURCES) geopackage_la_CPPFLAGS = @CFLAGS@ geopackage_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. geopackage_la_CPPFLAGS += -DLOADABLE_EXTENSION geopackage_la_CPPFLAGS += -fvisibility=hidden geopackage_la_LDFLAGS = -module geopackage_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda EXTRA_DIST = geopackage_internal.h �������������������������������libspatialite-4.3.0a/src/geopackage/gpkg_add_spatial_index.c����������������������������������������0000664�0001750�0001750�00000016154�12544707704�021136� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Sandro Furieri (a.furieri@lqt.it) Portions created by the Initial Developer are Copyright (C) 2014-2015 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards (bradh@frogmouth.net) Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include "spatialite/gaiaaux.h" #include "config.h" #include "geopackage_internal.h" #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_PRIVATE void fnct_gpkgAddSpatialIndex (sqlite3_context * context, int argc __attribute__ ((unused)), sqlite3_value ** argv) { /* SQL function: / gpkgAddSpatialIndex(table, column) / / Adds Geopackage SpatialIndex triggers for the named table / and creates the "rtree_<T>_<C> Virtual Table / returns nothing on success, raises exception on error / */ const char *table; const char *column; char *xtable; char *xcolumn; char *sql_stmt = NULL; sqlite3 *sqlite = NULL; char *errMsg = NULL; int ret = 0; int i = 0; const char *trigger_stmts[] = { "CREATE TRIGGER \"rtree_%s_%s_insert\"\n" "AFTER INSERT ON \"%s\"\n" "WHEN (new.\"%s\" NOT NULL AND NOT ST_IsEmpty(NEW.\"%s\"))\n" "BEGIN\n" "INSERT OR REPLACE INTO \"rtree_%s_%s\" VALUES (NEW.ROWID, " "ST_MinX(NEW.\"%s\"), ST_MaxX(NEW.\"%s\"), ST_MinY(NEW.\"%s\"), " "ST_MaxY(NEW.\"%s\"));\nEND", "CREATE TRIGGER \"rtree_%s_%s_update1\"\n" "AFTER UPDATE OF \"%s\" ON \"%s\"\n" "WHEN OLD.ROWID = NEW.ROWID AND " "(NEW.\"%s\" NOT NULL AND NOT ST_IsEmpty(NEW.\"%s\"))\n" "BEGIN\n" "INSERT OR REPLACE INTO \"rtree_%s_%s\" VALUES (NEW.ROWID, " "ST_MinX(NEW.\"%s\"), ST_MaxX(NEW.\"%s\"), ST_MinY(NEW.\"%s\"), " "ST_MaxY(NEW.\"%s\"));\nEND", "CREATE TRIGGER \"rtree_%s_%s_update2\"\n" "AFTER UPDATE OF \"%s\" ON \"%s\"\n" "WHEN OLD.ROWID = NEW.ROWID AND " "(NEW.\"%s\" IS NULL OR ST_IsEmpty(NEW.\"%s\"))\n" "BEGIN\n" "DELETE FROM \"rtree_%s_%s\" WHERE id = OLD.ROWID;\nEND", "CREATE TRIGGER \"rtree_%s_%s_update3\"\n" "AFTER UPDATE OF \"%s\" ON \"%s\"\n" "WHEN OLD.ROWID != NEW.ROWID AND " "(NEW.\"%s\" NOT NULL AND NOT ST_IsEmpty(NEW.\"%s\"))\n" "BEGIN\n" "DELETE FROM \"rtree_%s_%s\" WHERE id = OLD.ROWID;\n" "INSERT OR REPLACE INTO \"rtree_%s_%s\" VALUES (NEW.ROWID, " "ST_MinX(NEW.\"%s\"), ST_MaxX(NEW.\"%s\"), ST_MinY(NEW.\"%s\"), " "ST_MaxY(NEW.\"%s\"));\nEND", "CREATE TRIGGER \"rtree_%s_%s_update4\"\n" "AFTER UPDATE ON \"%s\"\n" "WHEN OLD.ROWID != NEW.ROWID AND " "(NEW.\"%s\" IS NULL OR ST_IsEmpty(NEW.\"%s\"))\n" "BEGIN\n" "DELETE FROM \"rtree_%s_%s\" WHERE id IN (OLD.ROWID, NEW.ROWID);\n" "END", "CREATE TRIGGER \"rtree_%s_%s_delete\"\n" "AFTER DELETE ON \"%s\"" "WHEN old.\"%s\" NOT NULL\n" "BEGIN\n" "DELETE FROM \"rtree_%s_%s\" WHERE id = OLD.ROWID;\nEND", NULL }; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_error (context, "gpkgAddSpatialIndex() error: argument 1 [table] is not of the String type", -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_error (context, "gpkgAddSpatialIndex() error: argument 2 [column] is not of the String type", -1); return; } table = (const char *) sqlite3_value_text (argv[0]); column = (const char *) sqlite3_value_text (argv[1]); xtable = gaiaDoubleQuotedSql (table); xcolumn = gaiaDoubleQuotedSql (column); sqlite = sqlite3_context_db_handle (context); for (i = 0; i < 6; i++) { /* inserting the Triggers */ if (i == 0) sql_stmt = sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xtable, xcolumn, xcolumn, xtable, xcolumn, xcolumn, xcolumn, xcolumn, xcolumn); else if (i == 1) sql_stmt = sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xcolumn, xtable, xcolumn, xcolumn, xtable, xcolumn, xcolumn, xcolumn, xcolumn, xcolumn, xcolumn); else if (i == 2) sql_stmt = sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xcolumn, xtable, xcolumn, xcolumn, xtable, xcolumn); else if (i == 3) sql_stmt = sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xcolumn, xtable, xcolumn, xcolumn, xtable, xcolumn, xtable, xcolumn, xcolumn, xcolumn, xcolumn, xcolumn); else if (i == 4) sql_stmt = sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xtable, xcolumn, xcolumn, xtable, xcolumn); else sql_stmt = sqlite3_mprintf (trigger_stmts[i], xtable, xcolumn, xtable, xcolumn, xtable, xcolumn); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free (sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error (context, errMsg, -1); sqlite3_free (errMsg); free (xtable); free (xcolumn); return; } } /* creating the R*Tree Virtual Table */ sql_stmt = sqlite3_mprintf ("CREATE VIRTUAL TABLE \"rtree_%s_%s\" " "USING rtree(id, minx, maxx, miny, maxy)", xtable, xcolumn); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free (sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error (context, errMsg, -1); sqlite3_free (errMsg); free (xtable); free (xcolumn); return; } free (xtable); free (xcolumn); /* registering the GPKG extensions */ sql_stmt = sqlite3_mprintf ("INSERT INTO gpkg_extensions " "(table_name, column_name, extension_name, definition, scope) " "VALUES (Lower(%Q), Lower(%Q), 'gpkg_rtree_index', " "'GeoPackage 1.0 Specification Annex L', 'write-only')", table, column); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free (sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error (context, errMsg, -1); sqlite3_free (errMsg); return; } } #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/geopackage/gpkgCreateBaseTables.c������������������������������������������0000664�0001750�0001750�00000046632�12544707704�020500� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* GeoPackage extensions for SpatiaLite / SQLite Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is GeoPackage Extensions The Initial Developer of the Original Code is Brad Hards (bradh@frogmouth.net) Portions created by the Initial Developer are Copyright (C) 2012-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "spatialite/geopackage.h" #include "config.h" #include "geopackage_internal.h" #define GAIA_UNUSED() if (argc || argv) argc = argc; #ifdef ENABLE_GEOPACKAGE GEOPACKAGE_PRIVATE void fnct_gpkgCreateBaseTables (sqlite3_context * context, int argc __attribute__ ((unused)), sqlite3_value ** argv) { /* SQL function: / gpkgCreateBaseTables() / / Create base tables for an "empty" GeoPackage / returns nothing on success, raises exception on error / */ char *sql_stmt = NULL; sqlite3 *sqlite = NULL; char *errMsg = NULL; int ret = 0; int i = 0; const char *tableSchemas[] = { "PRAGMA application_id = 1196437808", /* GeoPackage specification Table 18 */ "CREATE TABLE gpkg_spatial_ref_sys (\n" "srs_name TEXT NOT NULL,\n" "srs_id INTEGER NOT NULL PRIMARY KEY,\n" "organization TEXT NOT NULL,\n" "organization_coordsys_id INTEGER NOT NULL,\n" "definition TEXT NOT NULL,\n" "description TEXT\n" ")", /* GeoPackage Section 1.1.2.1.2 */ "INSERT INTO gpkg_spatial_ref_sys (srs_name, srs_id, organization, organization_coordsys_id, definition) VALUES ('Undefined Cartesian', -1, 'NONE', -1, 'Undefined')", "INSERT INTO gpkg_spatial_ref_sys (srs_name, srs_id, organization, organization_coordsys_id, definition) VALUES ('Undefined Geographic', 0, 'NONE', 0, 'Undefined')", "INSERT INTO gpkg_spatial_ref_sys (srs_name, srs_id, organization, organization_coordsys_id, definition) VALUES ('WGS84', 4326, 'epsg', 4326, 'GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]')", /* GeoPackage specification Table 4 / Table 21 */ /* Note that NULL is distinct on UNIQUE columns, so identifier definition isn't quite that far out-there */ "CREATE TABLE gpkg_contents (\n" "table_name TEXT NOT NULL PRIMARY KEY,\n" "data_type TEXT NOT NULL,\n" "identifier TEXT UNIQUE,\n" "description TEXT DEFAULT '',\n" "last_change DATETIME NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ',CURRENT_TIMESTAMP)),\n" "min_x DOUBLE,\n" "min_y DOUBLE,\n" "max_x DOUBLE,\n" "max_y DOUBLE,\n" "srs_id INTEGER,\n" "CONSTRAINT fk_gc_r_srid FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys(srs_id))", /* GeoPackage specification Table 6 / Table 22 */ "CREATE TABLE gpkg_geometry_columns (\n" "table_name TEXT NOT NULL,\n" "column_name TEXT NOT NULL,\n" "geometry_type_name TEXT NOT NULL,\n" "srs_id INTEGER NOT NULL,\n" "z TINYINT NOT NULL,\n" "m TINYINT NOT NULL,\n" "CONSTRAINT pk_geom_cols PRIMARY KEY (table_name, column_name),\n" "CONSTRAINT uk_gc_table_name UNIQUE (table_name),\n" "CONSTRAINT fk_gc_tn FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name),\n" "CONSTRAINT fk_gc_srs FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys (srs_id))", /* GeoPackage specification Table 8 / Table 26 */ "CREATE TABLE gpkg_tile_matrix_set (\n" "table_name TEXT NOT NULL PRIMARY KEY,\n" "srs_id INTEGER NOT NULL,\n" "min_x DOUBLE NOT NULL,\n" "min_y DOUBLE NOT NULL,\n" "max_x DOUBLE NOT NULL,\n" "max_y DOUBLE NOT NULL,\n" "CONSTRAINT fk_gtms_table_name FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name),\n" "CONSTRAINT fk_gtms_srs FOREIGN KEY (srs_id) REFERENCES gpkg_spatial_ref_sys (srs_id))", /* Geopackage specification Table 9 / Table 27 */ /* TODO: figure out if the defaults are required - https://github.com/opengis/geopackage/issues/67 */ "CREATE TABLE gpkg_tile_matrix (\n" "table_name TEXT NOT NULL,\n" "zoom_level INTEGER NOT NULL,\n" "matrix_width INTEGER NOT NULL,\n" "matrix_height INTEGER NOT NULL,\n" "tile_width INTEGER NOT NULL,\n" "tile_height INTEGER NOT NULL,\n" "pixel_x_size DOUBLE NOT NULL,\n" "pixel_y_size DOUBLE NOT NULL,\n" "CONSTRAINT pk_ttm PRIMARY KEY (table_name, zoom_level),\n" "CONSTRAINT fk_tmm_table_name FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name))", /* GeoPackage specification Table 11 / Table 31 */ "CREATE TABLE gpkg_data_columns (\n" "table_name TEXT NOT NULL,\n" "column_name TEXT NOT NULL,\n" "name TEXT,\n" "title TEXT,\n" "description TEXT,\n" "mime_type TEXT,\n" "constraint_name TEXT,\n" "CONSTRAINT pk_gdc PRIMARY KEY (table_name, column_name),\n" "CONSTRAINT fk_gdc_tn FOREIGN KEY (table_name) REFERENCES gpkg_contents(table_name))", /* GeoPackage specification Table 12 / Table 32 */ "CREATE TABLE gpkg_data_column_constraints (\n" "constraint_name TEXT NOT NULL,\n" "constraint_type TEXT NOT NULL,\n" "value TEXT,\n" "min NUMERIC,\n" "minIsInclusive BOOLEAN,\n" "max NUMERIC,\n" "maxIsInclusive BOOLEAN,\n" "description TEXT,\n" "CONSTRAINT gdcc_ntv UNIQUE (constraint_name, constraint_type, value))", /* GeoPackage specification Table 14 / Table 33 */ "CREATE TABLE gpkg_metadata (\n" "id INTEGER CONSTRAINT m_pk PRIMARY KEY ASC NOT NULL UNIQUE,\n" "md_scope TEXT NOT NULL DEFAULT 'dataset',\n" "md_standard_uri TEXT NOT NULL,\n" "mime_type TEXT NOT NULL DEFAULT 'text/xml',\n" "metadata TEXT NOT NULL)", /* GeoPackage specification Table 16 / Table 34 */ "CREATE TABLE gpkg_metadata_reference (\n" "reference_scope TEXT NOT NULL,\n" "table_name TEXT,\n" "column_name TEXT,\n" "row_id_value INTEGER,\n" "timestamp DATETIME NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ',CURRENT_TIMESTAMP)),\n" "md_file_id INTEGER NOT NULL,\n" "md_parent_id INTEGER,\n" "CONSTRAINT crmr_mfi_fk FOREIGN KEY (md_file_id) REFERENCES gpkg_metadata(id),\n" "CONSTRAINT crmr_mpi_fk FOREIGN KEY (md_parent_id) REFERENCES gpkg_metadata(id))", /* GeoPackage specification Table 17 / Table 36 */ "CREATE TABLE gpkg_extensions (\n" "table_name TEXT,\n" "column_name TEXT,\n" "extension_name TEXT NOT NULL,\n" "definition TEXT NOT NULL,\n" "scope TEXT NOT NULL,\n" "CONSTRAINT ge_tce UNIQUE (table_name, column_name, extension_name))", /* Next 10 constraints are from GeoPackage specification Table 37 */ "CREATE TRIGGER 'gpkg_tile_matrix_zoom_level_insert'\n" "BEFORE INSERT ON 'gpkg_tile_matrix'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: zoom_level cannot be less than 0')\n" "WHERE (NEW.zoom_level < 0);\n" "END", "CREATE TRIGGER 'gpkg_tile_matrix_zoom_level_update'\n" "BEFORE UPDATE of zoom_level ON 'gpkg_tile_matrix'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: zoom_level cannot be less than 0')\n" "WHERE (NEW.zoom_level < 0);\n" "END", "CREATE TRIGGER 'gpkg_tile_matrix_matrix_width_insert'\n" "BEFORE INSERT ON 'gpkg_tile_matrix'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: matrix_width cannot be less than 1')\n" "WHERE (NEW.matrix_width < 1);\n" "END", "CREATE TRIGGER 'gpkg_tile_matrix_matrix_width_update'\n" "BEFORE UPDATE OF matrix_width ON 'gpkg_tile_matrix'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: matrix_width cannot be less than 1')\n" "WHERE (NEW.matrix_width < 1);\n" "END", "CREATE TRIGGER 'gpkg_tile_matrix_matrix_height_insert'\n" "BEFORE INSERT ON 'gpkg_tile_matrix'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: matrix_height cannot be less than 1')\n" "WHERE (NEW.matrix_height < 1);\n" "END", "CREATE TRIGGER 'gpkg_tile_matrix_matrix_height_update'\n" "BEFORE UPDATE OF matrix_height ON 'gpkg_tile_matrix'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: matrix_height cannot be less than 1')\n" "WHERE (NEW.matrix_height < 1);\n" "END", "CREATE TRIGGER 'gpkg_tile_matrix_pixel_x_size_insert'\n" "BEFORE INSERT ON 'gpkg_tile_matrix'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: pixel_x_size must be greater than 0')\n" "WHERE NOT (NEW.pixel_x_size > 0);\n" "END", "CREATE TRIGGER 'gpkg_tile_matrix_pixel_x_size_update'\n" "BEFORE UPDATE OF pixel_x_size ON 'gpkg_tile_matrix'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: pixel_x_size must be greater than 0')\n" "WHERE NOT (NEW.pixel_x_size > 0);\n" "END", "CREATE TRIGGER 'gpkg_tile_matrix_pixel_y_size_insert'\n" "BEFORE INSERT ON 'gpkg_tile_matrix'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table ''gpkg_tile_matrix'' violates constraint: pixel_y_size must be greater than 0')\n" "WHERE NOT (NEW.pixel_y_size > 0);\n" "END", "CREATE TRIGGER 'gpkg_tile_matrix_pixel_y_size_update'\n" "BEFORE UPDATE OF pixel_y_size ON 'gpkg_tile_matrix'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table ''gpkg_tile_matrix'' violates constraint: pixel_y_size must be greater than 0')\n" "WHERE NOT (NEW.pixel_y_size > 0);\n" "END", /* Next two constraints are from GeoPackage specification Table 38 */ /* Note the change from catalogue to catalog, per https://github.com/opengis/geopackage/issues/69 */ "CREATE TRIGGER 'gpkg_metadata_md_scope_insert'\n" "BEFORE INSERT ON 'gpkg_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table gpkg_metadata violates constraint: md_scope must be one of undefined | fieldSession | collectionSession | series | dataset | featureType | feature | attributeType | attribute | tile | model | catalog | schema | taxonomy | software | service | collectionHardware | nonGeographicDataset | dimensionGroup')\n" "WHERE NOT(NEW.md_scope IN ('undefined','fieldSession','collectionSession','series','dataset', 'featureType','feature','attributeType','attribute','tile','model', 'catalog','schema','taxonomy','software','service', 'collectionHardware','nonGeographicDataset','dimensionGroup'));\n" "END", "CREATE TRIGGER 'gpkg_metadata_md_scope_update'\n" "BEFORE UPDATE OF 'md_scope' ON 'gpkg_metadata'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table gpkg_metadata violates constraint: md_scope must be one of undefined | fieldSession | collectionSession | series | dataset | featureType | feature | attributeType | attribute | tile | model | catalog | schema | taxonomy | software | service | collectionHardware | nonGeographicDataset | dimensionGroup')\n" "WHERE NOT(NEW.md_scope IN ('undefined','fieldSession','collectionSession','series','dataset', 'featureType','feature','attributeType','attribute','tile','model', 'catalog','schema','taxonomy','software','service', 'collectionHardware','nonGeographicDataset','dimensionGroup'));\n" "END", /* The following eight constraints are from GeoPackage specification Table 39 */ "CREATE TRIGGER 'gpkg_metadata_reference_reference_scope_insert'\n" "BEFORE INSERT ON 'gpkg_metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: reference_scope must be one of \"geopackage\", \"table\", \"column\", \"row\", \"row/col\"')\n" "WHERE NOT NEW.reference_scope IN ('geopackage','table','column','row','row/col');\n" "END", "CREATE TRIGGER 'gpkg_metadata_reference_reference_scope_update'\n" "BEFORE UPDATE OF 'reference_scope' ON 'gpkg_metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: reference_scope must be one of \"geopackage\", \"table\", \"column\", \"row\", \"row/col\"')\n" "WHERE NOT NEW.reference_scope IN ('geopackage','table','column','row','row/col');\n" "END", "CREATE TRIGGER 'gpkg_metadata_reference_column_name_insert'\n" "BEFORE INSERT ON 'gpkg_metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: column name must be NULL when reference_scope is \"geopackage\", \"table\" or \"row\"')\n" "WHERE (NEW.reference_scope IN ('geopackage','table','row') AND NEW.column_name IS NOT NULL);\n" "SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: column name must be defined for the specified table when reference_scope is \"column\" or \"row/col\"')\n" "WHERE (NEW.reference_scope IN ('column','row/col') AND NOT NEW.table_name IN (SELECT name FROM SQLITE_MASTER WHERE type = 'table' AND name = NEW.table_name AND sql LIKE ('%' || NEW.column_name || '%')));\n" "END", "CREATE TRIGGER 'gpkg_metadata_reference_column_name_update'\n" "BEFORE UPDATE OF column_name ON 'gpkg_metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: column name must be NULL when reference_scope is \"geopackage\", \"table\" or \"row\"')\n" "WHERE (NEW.reference_scope IN ('geopackage','table','row') AND NEW.column_nameIS NOT NULL);\n" "SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: column name must be defined for the specified table when reference_scope is \"column\" or \"row/col\"')\n" "WHERE (NEW.reference_scope IN ('column','row/col') AND NOT NEW.table_name IN (SELECT name FROM SQLITE_MASTER WHERE type = 'table' AND name = NEW.table_name AND sql LIKE ('%' || NEW.column_name || '%')));\n" "END", "CREATE TRIGGER 'gpkg_metadata_reference_row_id_value_insert'\n" "BEFORE INSERT ON 'gpkg_metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: row_id_value must be NULL when reference_scope is \"geopackage\", \"table\" or \"column\"')\n" "WHERE NEW.reference_scope IN ('geopackage','table','column') AND NEW.row_id_value IS NOT NULL;\n" "SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: row_id_value must exist in specified table when reference_scope is \"row\" or \"row/col\"')\n" "WHERE NEW.reference_scope IN ('row','row/col') AND NOT EXISTS (SELECT rowid FROM (SELECT NEW.table_name AS table_name) WHERE rowid = NEW.row_id_value);\n" "END", "CREATE TRIGGER 'gpkg_metadata_reference_row_id_value_update'\n" "BEFORE UPDATE OF 'row_id_value' ON 'gpkg_metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: row_id_value must be NULL when reference_scope is \"geopackage\", \"table\" or \"column\"')\n" "WHERE NEW.reference_scope IN ('geopackage','table','column') AND NEW.row_id_value IS NOT NULL;\n" "SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: row_id_value must exist in specified table when reference_scope is \"row\" or \"row/col\"')\n" "WHERE NEW.reference_scope IN ('row','row/col') AND NOT EXISTS (SELECT rowid FROM (SELECT NEW.table_name AS table_name) WHERE rowid = NEW.row_id_value);\n" "END", "CREATE TRIGGER 'gpkg_metadata_reference_timestamp_insert'\n" "BEFORE INSERT ON 'gpkg_metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table gpkg_metadata_reference violates constraint: timestamp must be a valid time in ISO 8601 \"yyyy-mm-ddThh-mm-ss.cccZ\" form')\n" "WHERE NOT (NEW.timestamp GLOB '[1-2][0-9][0-9][0-9]-[0-1][0-9]-[1-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]Z' AND strftime('%s',NEW.timestamp) NOT NULL);\n" "END", "CREATE TRIGGER 'gpkg_metadata_reference_timestamp_update'\n" "BEFORE UPDATE OF 'timestamp' ON 'gpkg_metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table gpkg_metadata_reference violates constraint: timestamp must be a valid time in ISO 8601 \"yyyy-mm-ddThh-mm-ss.cccZ\" form')\n" "WHERE NOT (NEW.timestamp GLOB '[1-2][0-9][0-9][0-9]-[0-1][0-9]-[1-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]Z' AND strftime('%s',NEW.timestamp) NOT NULL);\n" "END", /* the following four constraints probably should be in the GeoPackage spec, but aren't */ "CREATE TRIGGER 'gpkg_geometry_columns_z_insert'\n" "BEFORE INSERT ON 'gpkg_geometry_columns'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table gpkg_geometry_columns violates constraint: z must be one of 0, 1 or 2')\n" "WHERE NOT(NEW.z IN (0, 1, 2));\n" "END", "CREATE TRIGGER 'gpkg_geometry_columns_z_update'\n" "BEFORE UPDATE OF 'z' ON 'gpkg_geometry_columns'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table gpkg_geometry_columns violates constraint: z must be one of 0, 1 or 2')\n" "WHERE NOT NEW.z IN (0, 1, 2);\n" "END", "CREATE TRIGGER 'gpkg_geometry_columns_m_insert'\n" "BEFORE INSERT ON 'gpkg_geometry_columns'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'insert on table gpkg_geometry_columns violates constraint: m must be one of 0, 1 or 2')\n" "WHERE NOT(NEW.m IN (0, 1, 2));\n" "END", "CREATE TRIGGER 'gpkg_geometry_columns_m_update'\n" "BEFORE UPDATE OF 'm' ON 'gpkg_geometry_columns'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on table gpkg_geometry_columns violates constraint: m must be one of 0, 1 or 2')\n" "WHERE NOT NEW.m IN (0, 1, 2);\n" "END", NULL }; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ for (i = 0; tableSchemas[i] != NULL; ++i) { sql_stmt = sqlite3_mprintf ("%s", tableSchemas[i]); sqlite = sqlite3_context_db_handle (context); ret = sqlite3_exec (sqlite, sql_stmt, NULL, NULL, &errMsg); sqlite3_free (sql_stmt); if (ret != SQLITE_OK) { sqlite3_result_error (context, errMsg, -1); sqlite3_free (errMsg); return; } } } #endif ������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/geopackage/gaia_cvt_gpkg.c�������������������������������������������������0000664�0001750�0001750�00000106335�12544707704�017260� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gaia_cvt_gpkg.c -- implements GPKG DB conversion [both directions] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards <bradh@frogmouth.net> Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include "config.h" #ifdef ENABLE_GEOPACKAGE /* enabling GeoPackage extensions */ #include <stdlib.h> #include <string.h> #include <stdio.h> #include <spatialite/sqlite.h> #include <spatialite/debug.h> #include <spatialite.h> #include <spatialite/gaiaaux.h> #include <spatialite/geopackage.h> struct pk_item { /* a struct wrapping a Primary Key item */ int position; char *column; struct pk_item *next; }; struct primary_key { /* a struct wrapping a Primary Key */ struct pk_item *first; struct pk_item *last; int num_items; struct pk_item **array; }; static struct primary_key * alloc_pk () { /* creating an empty Primary Key */ struct primary_key *pk = malloc (sizeof (struct primary_key)); pk->first = NULL; pk->last = NULL; pk->num_items = 0; pk->array = NULL; return pk; } static void destroy_pk (struct primary_key *pk) { /* destroying a Primary Key */ struct pk_item *pi; struct pk_item *pin; if (pk == NULL) return; pi = pk->first; while (pi != NULL) { pin = pi->next; if (pi->column != NULL) free (pi->column); free (pi); pi = pin; } if (pk->array != NULL) free (pk->array); free (pk); } static void add_to_pk (struct primary_key *pk, int position, const char *column) { /* appending an item to a Primary Key */ int len; struct pk_item *pi; if (pk == NULL) return; pi = malloc (sizeof (struct pk_item)); pi->position = position; len = strlen (column); pi->column = malloc (len + 1); strcpy (pi->column, column); pi->next = NULL; if (pk->first == NULL) pk->first = pi; if (pk->last != NULL) pk->last->next = pi; pk->last = pi; pk->num_items += 1; } static void sort_pk (struct primary_key *pk) { /* sorting the PK items by increasing position */ struct pk_item *pi; struct pk_item *pi2; int i; int ok = 1; if (pk == NULL) return; if (pk->array != NULL) free (pk->array); pk->array = NULL; if (pk->num_items <= 0) return; pk->array = malloc (sizeof (struct pk_item *) * pk->num_items); pi = pk->first; i = 0; while (pi != NULL) { /* pre-loading the array */ *(pk->array + i++) = pi; pi = pi->next; } while (ok) { /* bubble sort */ ok = 0; for (i = 1; i < pk->num_items; i++) { pi = *(pk->array + (i - 1)); pi2 = *(pk->array + i); if (pi->position > pi2->position) { /* swapping */ *(pk->array + (i - 1)) = pi2; *(pk->array + i) = pi; ok = 1; } } } } static int create_gpkg_destination (sqlite3 * handle, const char *create_sql, const char *table_name, const char *column_name, const char *geometry_type, int has_z, int has_m, int srid, int spatial_index) { /* attempting to create a GPKG destination table */ int ret; char *sql_err = NULL; char *sql; /* creating the table */ ret = sqlite3_exec (handle, create_sql, NULL, NULL, &sql_err); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE \"%s\" error: %s\n", table_name, sql_err); sqlite3_free (sql_err); return 0; } /* adding the geometry column */ sql = sqlite3_mprintf ("SELECT gpkgAddGeometryColumn(Lower(%Q), Lower(%Q), %Q, %d, %d, %d)", table_name, column_name, geometry_type, has_z, has_m, srid); ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("gpkgAddGeometryColumn \"%s\" error: %s\n", table_name, sql_err); sqlite3_free (sql_err); return 0; } /* adding the geometry triggers */ sql = sqlite3_mprintf ("SELECT gpkgAddGeometryTriggers(Lower(%Q), Lower(%Q))", table_name, column_name); ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("gpkgAddGeometryTriggers \"%s\" error: %s\n", table_name, sql_err); sqlite3_free (sql_err); return 0; } if (spatial_index) { /* adding Spatial Index support */ sql = sqlite3_mprintf ("SELECT gpkgAddSpatialIndex(Lower(%Q), Lower(%Q))", table_name, column_name); ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("gpkgAddSpatialIndex \"%s\" error: %s\n", table_name, sql_err); sqlite3_free (sql_err); return 0; } } return 1; } static int create_spatialite_destination (sqlite3 * handle, const char *create_sql, const char *table_name, const char *column_name, const char *geometry_type, const char *dims, int srid) { /* attempting to create a Spatialite destination table */ int ret; char *sql_err = NULL; char *sql; int i; char **results; int rows; int columns; int ok = 0; /* creating the table */ ret = sqlite3_exec (handle, create_sql, NULL, NULL, &sql_err); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE \"%s\" error: %s\n", table_name, sql_err); sqlite3_free (sql_err); return 0; } /* adding the geometry column */ sql = sqlite3_mprintf ("SELECT AddGeometryColumn(Lower(%Q), Lower(%Q), %d, %Q, %Q)", table_name, column_name, srid, geometry_type, dims); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) ok = atoi (results[(i * columns) + 0]); } sqlite3_free_table (results); if (!ok) { spatialite_e ("AddGeometryColumn \"%s\": error\n", table_name); return 0; } return 1; } static char * prepare_create_table (sqlite3 * handle, const char *table_name, const char *column_name) { /* building a CREATE TABLE statement */ int ret; char *sql; int i; char **results; int rows; int columns; char *create_sql; char *prev_sql; char *xtable; int first = 1; struct primary_key *pk = alloc_pk (); xtable = gaiaDoubleQuotedSql (table_name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; create_sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (", xtable); free (xtable); if (rows < 1) ; else { for (i = 1; i <= rows; i++) { const char *name; const char *type; int not_null; int pk_idx; char *xname; char *xtype; name = results[(i * columns) + 1]; if (strcasecmp (name, column_name) == 0) { /* skipping the geometry column */ continue; } type = results[(i * columns) + 2]; not_null = atoi (results[(i * columns) + 3]); pk_idx = atoi (results[(i * columns) + 5]); if (pk_idx > 0) add_to_pk (pk, pk_idx, name); xname = gaiaDoubleQuotedSql (name); xtype = gaiaDoubleQuotedSql (type); prev_sql = create_sql; if (first) { if (not_null) create_sql = sqlite3_mprintf ("%s\n\t\"%s\" \"%s\" NOT NULL", prev_sql, xname, xtype); else create_sql = sqlite3_mprintf ("%s\n\t\"%s\" \"%s\"", prev_sql, xname, xtype); first = 0; } else { if (not_null) create_sql = sqlite3_mprintf ("%s,\n\t\"%s\" \"%s\" NOT NULL", prev_sql, xname, xtype); else create_sql = sqlite3_mprintf ("%s,\n\t\"%s\" \"%s\"", prev_sql, xname, xtype); } free (xname); free (xtype); sqlite3_free (prev_sql); } } sqlite3_free_table (results); if (pk->num_items > 0) { /* setting up the Primary Key (if any) */ char *pk_name; char *xpk_name; int idx; sort_pk (pk); prev_sql = create_sql; pk_name = sqlite3_mprintf ("pk_%s", table_name); xpk_name = gaiaDoubleQuotedSql (pk_name); sqlite3_free (pk_name); create_sql = sqlite3_mprintf ("%s,\n\tCONSTRAINT \"%s\" PRIMARY KEY (", prev_sql, xpk_name); free (xpk_name); sqlite3_free (prev_sql); for (idx = 0; idx < pk->num_items; idx++) { char *xcolumn; struct pk_item *pi = *(pk->array + idx); prev_sql = create_sql; xcolumn = gaiaDoubleQuotedSql (pi->column); if (idx == 0) create_sql = sqlite3_mprintf ("%s\"%s\"", prev_sql, xcolumn); else create_sql = sqlite3_mprintf ("%s, \"%s\"", prev_sql, xcolumn); free (xcolumn); sqlite3_free (prev_sql); } prev_sql = create_sql; create_sql = sqlite3_mprintf ("%s)", prev_sql); sqlite3_free (prev_sql); } destroy_pk (pk); prev_sql = create_sql; create_sql = sqlite3_mprintf ("%s)", prev_sql); sqlite3_free (prev_sql); return create_sql; } static int create_Spatialite2GPKG_statements (sqlite3 * handle_in, sqlite3 * handle_out, const char *table_name, const char *geometry_column, sqlite3_stmt ** stmt_in, sqlite3_stmt ** stmt_out) { /* attempting to create the IN and OUT prepared stmts */ int ret; char *sql; int i; char **results; int rows; int columns; char *in_sql; char *in2_sql; char *out_sql; char *out2_sql; char *prev_sql; char *prev2_sql; char *xtable; int first_in = 1; int first_out = 1; char *sql_err = NULL; sqlite3_stmt *xstmt_in; sqlite3_stmt *xstmt_out; /* starting a transaction */ ret = sqlite3_exec (handle_out, "BEGIN", NULL, NULL, &sql_err); if (ret != SQLITE_OK) { spatialite_e ("BEGIN TRANSACTION error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } /* building the IN and OUT sql expressions */ xtable = gaiaDoubleQuotedSql (table_name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable); ret = sqlite3_get_table (handle_in, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; in_sql = sqlite3_mprintf ("SELECT"); in2_sql = sqlite3_mprintf ("FROM \"%s\"", xtable); out_sql = sqlite3_mprintf ("INSERT INTO \"%s\" (", xtable); out2_sql = sqlite3_mprintf (") VALUES ("); free (xtable); if (rows < 1) ; else { for (i = 1; i <= rows; i++) { const char *name; char *xname; name = results[(i * columns) + 1]; xname = gaiaDoubleQuotedSql (name); if (strcasecmp (name, geometry_column) == 0) { /* the geometry column */ prev_sql = in_sql; if (first_in) { in_sql = sqlite3_mprintf ("%s AsGPB(\"%s\")", prev_sql, xname); first_in = 0; } else { in_sql = sqlite3_mprintf ("%s, AsGPB(\"%s\")", prev_sql, xname); } sqlite3_free (prev_sql); prev_sql = out_sql; prev2_sql = out2_sql; if (first_out) { out_sql = sqlite3_mprintf ("%s\"%s\"", prev_sql, xname); out2_sql = sqlite3_mprintf ("%s?", prev2_sql); first_out = 0; } else { out_sql = sqlite3_mprintf ("%s, \"%s\"", prev_sql, xname); out2_sql = sqlite3_mprintf ("%s, ?", prev2_sql); } sqlite3_free (prev_sql); sqlite3_free (prev2_sql); free (xname); continue; } prev_sql = in_sql; if (first_in) { in_sql = sqlite3_mprintf ("%s \"%s\"", prev_sql, xname); first_in = 0; } else { in_sql = sqlite3_mprintf ("%s, \"%s\"", prev_sql, xname); } sqlite3_free (prev_sql); prev_sql = out_sql; prev2_sql = out2_sql; if (first_out) { out_sql = sqlite3_mprintf ("%s\"%s\"", prev_sql, xname); out2_sql = sqlite3_mprintf ("%s?", prev2_sql); first_out = 0; } else { out_sql = sqlite3_mprintf ("%s, \"%s\"", prev_sql, xname); out2_sql = sqlite3_mprintf ("%s, ?", prev2_sql); } sqlite3_free (prev_sql); sqlite3_free (prev2_sql); free (xname); } } sqlite3_free_table (results); prev_sql = in_sql; in_sql = sqlite3_mprintf ("%s %s", prev_sql, in2_sql); sqlite3_free (prev_sql); sqlite3_free (in2_sql); prev_sql = out_sql; out_sql = sqlite3_mprintf ("%s%s)", prev_sql, out2_sql); sqlite3_free (prev_sql); sqlite3_free (out2_sql); /* preparing the IN stmt */ ret = sqlite3_prepare_v2 (handle_in, in_sql, strlen (in_sql), &xstmt_in, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "SELECT FROM \"%s\" error: %s\n", table_name, sqlite3_errmsg (handle_in)); goto stop; } /* preparing the OUT stmt */ ret = sqlite3_prepare_v2 (handle_out, out_sql, strlen (out_sql), &xstmt_out, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" error: %s\n", table_name, sqlite3_errmsg (handle_out)); goto stop; } sqlite3_free (in_sql); sqlite3_free (out_sql); *stmt_in = xstmt_in; *stmt_out = xstmt_out; return 1; stop: sqlite3_free (in_sql); sqlite3_free (out_sql); if (xstmt_in != NULL) sqlite3_finalize (xstmt_in); if (xstmt_out != NULL) sqlite3_finalize (xstmt_out); return 0; } static int create_GPKG2Spatialite_statements (sqlite3 * handle_in, sqlite3 * handle_out, const char *table_name, const char *geometry_column, sqlite3_stmt ** stmt_in, sqlite3_stmt ** stmt_out) { /* attempting to create the IN and OUT prepared stmts */ int ret; char *sql; int i; char **results; int rows; int columns; char *in_sql; char *in2_sql; char *out_sql; char *out2_sql; char *prev_sql; char *prev2_sql; char *xtable; int first_in = 1; int first_out = 1; char *sql_err = NULL; sqlite3_stmt *xstmt_in; sqlite3_stmt *xstmt_out; /* starting a transaction */ ret = sqlite3_exec (handle_out, "BEGIN", NULL, NULL, &sql_err); if (ret != SQLITE_OK) { spatialite_e ("BEGIN TRANSACTION error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } /* building the IN and OUT sql expressions */ xtable = gaiaDoubleQuotedSql (table_name); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable); ret = sqlite3_get_table (handle_in, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; in_sql = sqlite3_mprintf ("SELECT"); in2_sql = sqlite3_mprintf ("FROM \"%s\"", xtable); out_sql = sqlite3_mprintf ("INSERT INTO \"%s\" (", xtable); out2_sql = sqlite3_mprintf (") VALUES ("); free (xtable); if (rows < 1) ; else { for (i = 1; i <= rows; i++) { const char *name; char *xname; name = results[(i * columns) + 1]; xname = gaiaDoubleQuotedSql (name); if (strcasecmp (name, geometry_column) == 0) { /* the geometry column */ prev_sql = in_sql; if (first_in) { in_sql = sqlite3_mprintf ("%s GeomFromGPB(\"%s\")", prev_sql, xname); first_in = 0; } else { in_sql = sqlite3_mprintf ("%s, GeomFromGPB(\"%s\")", prev_sql, xname); } sqlite3_free (prev_sql); prev_sql = out_sql; prev2_sql = out2_sql; if (first_out) { out_sql = sqlite3_mprintf ("%s\"%s\"", prev_sql, xname); out2_sql = sqlite3_mprintf ("%s?", prev2_sql); first_out = 0; } else { out_sql = sqlite3_mprintf ("%s, \"%s\"", prev_sql, xname); out2_sql = sqlite3_mprintf ("%s, ?", prev2_sql); } sqlite3_free (prev_sql); sqlite3_free (prev2_sql); free (xname); continue; } prev_sql = in_sql; if (first_in) { in_sql = sqlite3_mprintf ("%s \"%s\"", prev_sql, xname); first_in = 0; } else { in_sql = sqlite3_mprintf ("%s, \"%s\"", prev_sql, xname); } sqlite3_free (prev_sql); prev_sql = out_sql; prev2_sql = out2_sql; if (first_out) { out_sql = sqlite3_mprintf ("%s\"%s\"", prev_sql, xname); out2_sql = sqlite3_mprintf ("%s?", prev2_sql); first_out = 0; } else { out_sql = sqlite3_mprintf ("%s, \"%s\"", prev_sql, xname); out2_sql = sqlite3_mprintf ("%s, ?", prev2_sql); } sqlite3_free (prev_sql); sqlite3_free (prev2_sql); free (xname); } } sqlite3_free_table (results); prev_sql = in_sql; in_sql = sqlite3_mprintf ("%s %s", prev_sql, in2_sql); sqlite3_free (prev_sql); sqlite3_free (in2_sql); prev_sql = out_sql; out_sql = sqlite3_mprintf ("%s%s)", prev_sql, out2_sql); sqlite3_free (prev_sql); sqlite3_free (out2_sql); /* preparing the IN stmt */ ret = sqlite3_prepare_v2 (handle_in, in_sql, strlen (in_sql), &xstmt_in, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "SELECT FROM \"%s\" error: %s\n", table_name, sqlite3_errmsg (handle_in)); goto stop; } /* preparing the OUT stmt */ ret = sqlite3_prepare_v2 (handle_out, out_sql, strlen (out_sql), &xstmt_out, NULL); if (ret != SQLITE_OK) { fprintf (stderr, "INSERT INTO \"%s\" error: %s\n", table_name, sqlite3_errmsg (handle_out)); goto stop; } sqlite3_free (in_sql); sqlite3_free (out_sql); *stmt_in = xstmt_in; *stmt_out = xstmt_out; return 1; stop: sqlite3_free (in_sql); sqlite3_free (out_sql); if (xstmt_in != NULL) sqlite3_finalize (xstmt_in); if (xstmt_out != NULL) sqlite3_finalize (xstmt_out); return 0; } static int do_copy_table (sqlite3 * handle_in, sqlite3 * handle_out, sqlite3_stmt * stmt_in, sqlite3_stmt * stmt_out, const char *table_name) { /* copying all rows from IN and OUT tables */ int ret; char *sql_err = NULL; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt_in); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { int c; int cols = sqlite3_column_count (stmt_in); sqlite3_reset (stmt_out); sqlite3_clear_bindings (stmt_out); for (c = 0; c < cols; c++) { /* binding column values */ switch (sqlite3_column_type (stmt_in, c)) { case SQLITE_INTEGER: sqlite3_bind_int64 (stmt_out, c + 1, sqlite3_column_int64 (stmt_in, c)); break; case SQLITE_FLOAT: sqlite3_bind_double (stmt_out, c + 1, sqlite3_column_double (stmt_in, c)); break; case SQLITE_TEXT: sqlite3_bind_text (stmt_out, c + 1, (const char *) sqlite3_column_text (stmt_in, c), sqlite3_column_bytes (stmt_in, c), SQLITE_STATIC); break; case SQLITE_BLOB: sqlite3_bind_blob (stmt_out, c + 1, sqlite3_column_blob (stmt_in, c), sqlite3_column_bytes (stmt_in, c), SQLITE_STATIC); break; default: sqlite3_bind_null (stmt_out, c + 1); break; }; } ret = sqlite3_step (stmt_out); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { /* an unexpected error occurred */ spatialite_e ("Error while inserting into \"%s\": %s\n", table_name, sqlite3_errmsg (handle_out)); goto stop; } } else { /* an unexpected error occurred */ spatialite_e ("Error while querying from \"%s\": %s\n", table_name, sqlite3_errmsg (handle_in)); goto stop; } } /* committing the still pending transaction */ ret = sqlite3_exec (handle_out, "COMMIT", NULL, NULL, &sql_err); if (ret != SQLITE_OK) { spatialite_e ("COMMIT TRANSACTION error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } return 1; stop: /* invalidating the still pending transaction */ ret = sqlite3_exec (handle_out, "ROLLBACK", NULL, NULL, &sql_err); if (ret != SQLITE_OK) { spatialite_e ("ROLLBACK TRANSACTION error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } return 0; } static int do_insert_content (sqlite3 * handle, const char *table_name, const char *geometry_column, int srid) { /* registering the GPKG table in GPKG_CONTENTS */ char *sql; char *xgeom; char *xtable; int ret; char *sql_err = NULL; xtable = gaiaDoubleQuotedSql (table_name); xgeom = gaiaDoubleQuotedSql (geometry_column); sql = sqlite3_mprintf ("INSERT INTO gpkg_contents (table_name, data_type, " "identifier, description, last_change, min_x, min_y, max_x, max_y, srs_id) " "SELECT Lower(%Q), 'features', Lower(%Q), ' ', " "strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), Min(ST_MinX(\"%s\")), " "Min(ST_MinY(\"%s\")), Max(ST_MaxX(\"%s\")), Max(ST_MaxY(\"%s\")), %d " "FROM \"%s\"", table_name, table_name, xgeom, xgeom, xgeom, xgeom, srid, xtable); free (xgeom); free (xtable); ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("INSERT INTO gpkg_contents error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } return 1; } static int copy_spatialite2GPKG (sqlite3 * handle_in, sqlite3 * handle_out, int legacy) { /* attempting to copy all Geometry Tables */ int ret; const char *sql; int i; char **results; int rows; int columns; char *create_sql; sqlite3_stmt *stmt_in = NULL; sqlite3_stmt *stmt_out = NULL; if (legacy) { sql = "SELECT f_table_name, f_geometry_column, type, " "coord_dimension, srid, spatial_index_enabled " "FROM geometry_columns"; } else { sql = "SELECT f_table_name, f_geometry_column, geometry_type, " "srid, spatial_index_enabled FROM geometry_columns"; } ret = sqlite3_get_table (handle_in, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { const char *table_name = NULL; const char *geometry_column = NULL; const char *geometry_type = NULL; int has_z = 0; int has_m = 0; int srid; int spatial_index; table_name = results[(i * columns) + 0]; geometry_column = results[(i * columns) + 1]; if (legacy) { const char *dims; geometry_type = results[(i * columns) + 2]; if (strcasecmp (geometry_type, "GEOMETRYCOLLECTION") == 0) geometry_type = "GEOMCOLLECTION"; dims = results[(i * columns) + 2]; if (strcasecmp (dims, "XYZ") == 0 || strcasecmp (dims, "XYZM") == 0) has_z = 1; if (strcasecmp (dims, "XYM") == 0 || strcasecmp (dims, "XYZM") == 0) has_m = 1; srid = atoi (results[(i * columns) + 4]); spatial_index = atoi (results[(i * columns) + 5]); } else { int gtype = atoi (results[(i * columns) + 2]); switch (gtype) { case GAIA_POINT: case GAIA_POINTM: case GAIA_POINTZ: case GAIA_POINTZM: geometry_type = "POINT"; break; case GAIA_LINESTRING: case GAIA_LINESTRINGM: case GAIA_LINESTRINGZ: case GAIA_LINESTRINGZM: geometry_type = "LINESTRING"; break; case GAIA_POLYGON: case GAIA_POLYGONM: case GAIA_POLYGONZ: case GAIA_POLYGONZM: geometry_type = "POLYGON"; break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZ: case GAIA_MULTIPOINTZM: geometry_type = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGZM: geometry_type = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONZM: geometry_type = "MULTIPOLYGON"; break; case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONZM: geometry_type = "GEOMCOLLECTION"; break; case 0: case 1000: case 2000: case 3000: geometry_type = "GEOMETRY"; break; }; switch (gtype) { case 2000: case GAIA_POINTM: case GAIA_LINESTRINGM: case GAIA_POLYGONM: case GAIA_MULTIPOINTM: case GAIA_MULTILINESTRINGM: case GAIA_MULTIPOLYGONM: case GAIA_GEOMETRYCOLLECTIONM: has_m = 1; break; case 1000: case GAIA_POINTZ: case GAIA_LINESTRINGZ: case GAIA_POLYGONZ: case GAIA_MULTIPOINTZ: case GAIA_MULTILINESTRINGZ: case GAIA_MULTIPOLYGONZ: case GAIA_GEOMETRYCOLLECTIONZ: has_z = 1; break; case 3000: case GAIA_POINTZM: case GAIA_LINESTRINGZM: case GAIA_POLYGONZM: case GAIA_MULTIPOINTZM: case GAIA_MULTILINESTRINGZM: case GAIA_MULTIPOLYGONZM: case GAIA_GEOMETRYCOLLECTIONZM: has_z = 1; has_m = 1; break; }; srid = atoi (results[(i * columns) + 3]); spatial_index = atoi (results[(i * columns) + 4]); } create_sql = prepare_create_table (handle_in, table_name, geometry_column); if (create_sql == NULL) { /* error: unable to create CREATE TABLE sql statement */ sqlite3_free_table (results); return 0; } if (!create_gpkg_destination (handle_out, create_sql, table_name, geometry_column, geometry_type, has_z, has_m, srid, spatial_index)) { /* error: unable to create the target destination */ sqlite3_free (create_sql); sqlite3_free_table (results); return 0; } sqlite3_free (create_sql); if (!create_Spatialite2GPKG_statements (handle_in, handle_out, table_name, geometry_column, &stmt_in, &stmt_out)) { /* error: unable to create the IN and OUT stmts */ sqlite3_free_table (results); return 0; } if (!do_copy_table (handle_in, handle_out, stmt_in, stmt_out, table_name)) { sqlite3_finalize (stmt_in); sqlite3_finalize (stmt_out); sqlite3_free_table (results); return 0; } sqlite3_finalize (stmt_in); sqlite3_finalize (stmt_out); if (!do_insert_content (handle_out, table_name, geometry_column, srid)) { sqlite3_free_table (results); return 0; } } } sqlite3_free_table (results); return 1; } static int copy_GPKG2Spatialite (sqlite3 * handle_in, sqlite3 * handle_out) { /* attempting to copy all Geometry Tables */ int ret; const char *sql; int i; char **results; int rows; int columns; char *create_sql; sqlite3_stmt *stmt_in = NULL; sqlite3_stmt *stmt_out = NULL; sql = "SELECT table_name, column_name, geometry_type_name, " "srs_id, z, m FROM gpkg_geometry_columns"; ret = sqlite3_get_table (handle_in, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { const char *table_name; const char *geometry_column; const char *geometry_type; int has_z = 0; int has_m = 0; int srid; const char *dims = "XY"; table_name = results[(i * columns) + 0]; geometry_column = results[(i * columns) + 1]; geometry_type = results[(i * columns) + 2]; if (strcasecmp (geometry_type, "GEOMCOLLECTION") == 0) geometry_type = "GEOMETRYCOLLECTION"; srid = atoi (results[(i * columns) + 3]); has_z = atoi (results[(i * columns) + 4]); has_m = atoi (results[(i * columns) + 5]); if (has_z && has_m) dims = "XYZM"; else if (has_z) dims = "XYZ"; else if (has_m) dims = "XYM"; create_sql = prepare_create_table (handle_in, table_name, geometry_column); if (create_sql == NULL) { /* error: unable to create CREATE TABLE sql statement */ sqlite3_free_table (results); return 0; } if (!create_spatialite_destination (handle_out, create_sql, table_name, geometry_column, geometry_type, dims, srid)) { /* error: unable to create the target destination */ sqlite3_free (create_sql); sqlite3_free_table (results); return 0; } sqlite3_free (create_sql); if (!create_GPKG2Spatialite_statements (handle_in, handle_out, table_name, geometry_column, &stmt_in, &stmt_out)) { /* error: unable to create the IN and OUT stmts */ sqlite3_free_table (results); return 0; } if (!do_copy_table (handle_in, handle_out, stmt_in, stmt_out, table_name)) { sqlite3_finalize (stmt_in); sqlite3_finalize (stmt_out); sqlite3_free_table (results); return 0; } sqlite3_finalize (stmt_in); sqlite3_finalize (stmt_out); } } sqlite3_free_table (results); return 1; } static int check_valid_gpkg (sqlite3 * handle) { /* checking for a valid GPKG origin */ int ret; int i; char **results; int rows; int columns; int result; const char *sql; /* checking Metadata tables */ sql = "SELECT CheckGeoPackageMetaData()"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; result = 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) result = atoi (results[(i * columns) + 0]); } sqlite3_free_table (results); if (result != 1) { /* not presenting acceptable Metadata tables */ return 0; } /* testing that at least one Geometry is actually defined */ sql = "SELECT Count(*) FROM gpkg_geometry_columns"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; result = 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) result = atoi (results[(i * columns) + 0]); } sqlite3_free_table (results); if (result <= 0) return 0; return 1; } static int check_valid_spatialite (sqlite3 * handle, int *legacy) { /* checking for a valid SpatiaLite origin */ int ret; int i; char **results; int rows; int columns; int result; const char *sql; /* checking Metadata tables */ sql = "SELECT CheckSpatialMetaData()"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; result = 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) result = atoi (results[(i * columns) + 0]); } sqlite3_free_table (results); if (result == 1 || result == 3) ; else { /* not presenting acceptable Metadata tables */ return 0; } if (result == 1) *legacy = 1; else *legacy = 0; /* testing that at least one Geometry is actually defined */ sql = "SELECT Count(*) FROM geometry_columns"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; result = 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) result = atoi (results[(i * columns) + 0]); } sqlite3_free_table (results); if (result <= 0) return 0; return 1; } static int initialize_gpkg (sqlite3 * handle) { /* attempting to initialize a GPKG destination */ int ret; const char *sql; char *sql_err = NULL; /* creating Metadata tables */ sql = "SELECT gpkgCreateBaseTables()"; ret = sqlite3_exec (handle, sql, NULL, NULL, &sql_err); if (ret != SQLITE_OK) { spatialite_e ("gpkgCreateBaseTables error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } return 1; } static int initialize_spatialite (sqlite3 * handle) { /* attempting to initialize a SpatiaLite destination */ int ret; int i; char **results; int rows; int columns; int result; const char *sql; /* creating Metadata tables */ sql = "SELECT InitSpatialMetaData(1)"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; result = 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) result = atoi (results[(i * columns) + 0]); } sqlite3_free_table (results); return result; } SPATIALITE_DECLARE int gaiaGPKG2Spatialite (sqlite3 * handle_in, const char *gpkg_in_path, sqlite3 * handle_out, const char *splite_out_path) { /* attempting to create a SpatiaLite DB by converting a GPKG DB */ if (handle_in == NULL) goto error; if (!check_valid_gpkg (handle_in)) { /* not a valid IN GPKG: quitting */ spatialite_e ("Invalid GPKG origin:\n\"%s\"\n", gpkg_in_path); goto error; } if (handle_out == NULL) goto error; if (!initialize_spatialite (handle_out)) { /* unable to initialize a valid SpatiaLite DB: quitting */ spatialite_e ("Unable to initialize SpatiaLite destination:\n\"%s\"\n", splite_out_path); goto error; } /* copying/converting all Spatial tables */ if (!copy_GPKG2Spatialite (handle_in, handle_out)) goto error; return 1; error: spatialite_e ("Conversion aborted due to previous error(s)\n"); return 0; } SPATIALITE_DECLARE int gaiaSpatialite2GPKG (sqlite3 * handle_in, const char *splite_in_path, sqlite3 * handle_out, const char *gpkg_out_path) { /* attempting to create a GPKG DB by converting a SpatiaLite DB */ int legacy; if (handle_in == NULL) goto error; if (!check_valid_spatialite (handle_in, &legacy)) { /* not a valid IN GPKG: quitting */ spatialite_e ("Invalid SpatiaLite origin:\n\"%s\"\n", splite_in_path); goto error; } if (handle_out == NULL) goto error; if (!initialize_gpkg (handle_out)) { /* unable to initialize a valid GPKG DB: quitting */ spatialite_e ("Unable to initialize GPKG destination:\n\"%s\"\n", gpkg_out_path); goto error; } /* copying/converting all Spatial tables */ if (!copy_spatialite2GPKG (handle_in, handle_out, legacy)) goto error; return 1; error: spatialite_e ("Conversion aborted due to previous error(s)\n"); return 0; } #endif /* end enabling GeoPackage extensions */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiaexif/������������������������������������������������������������������0000775�0001750�0001750�00000000000�12573314325�014061� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiaexif/Makefile.in�������������������������������������������������������0000664�0001750�0001750�00000046714�12573313636�016066� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/gaiaexif ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) gaiaexif_la_LIBADD = am_gaiaexif_la_OBJECTS = gaiaexif_la-gaia_exif.lo gaiaexif_la_OBJECTS = $(am_gaiaexif_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = gaiaexif_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(gaiaexif_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(gaiaexif_la_LDFLAGS) \ $(LDFLAGS) -o $@ libgaiaexif_la_LIBADD = am_libgaiaexif_la_OBJECTS = gaia_exif.lo libgaiaexif_la_OBJECTS = $(am_libgaiaexif_la_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(gaiaexif_la_SOURCES) $(libgaiaexif_la_SOURCES) DIST_SOURCES = $(gaiaexif_la_SOURCES) $(libgaiaexif_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libgaiaexif.la gaiaexif.la libgaiaexif_la_SOURCES = gaia_exif.c gaiaexif_la_SOURCES = gaia_exif.c gaiaexif_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ -DLOADABLE_EXTENSION gaiaexif_la_LDFLAGS = -module gaiaexif_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gaiaexif/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/gaiaexif/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } gaiaexif.la: $(gaiaexif_la_OBJECTS) $(gaiaexif_la_DEPENDENCIES) $(EXTRA_gaiaexif_la_DEPENDENCIES) $(AM_V_CCLD)$(gaiaexif_la_LINK) $(gaiaexif_la_OBJECTS) $(gaiaexif_la_LIBADD) $(LIBS) libgaiaexif.la: $(libgaiaexif_la_OBJECTS) $(libgaiaexif_la_DEPENDENCIES) $(EXTRA_libgaiaexif_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) $(libgaiaexif_la_OBJECTS) $(libgaiaexif_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaia_exif.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiaexif_la-gaia_exif.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< gaiaexif_la-gaia_exif.lo: gaia_exif.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiaexif_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiaexif_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiaexif_la-gaia_exif.lo -MD -MP -MF $(DEPDIR)/gaiaexif_la-gaia_exif.Tpo -c -o gaiaexif_la-gaia_exif.lo `test -f 'gaia_exif.c' || echo '$(srcdir)/'`gaia_exif.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiaexif_la-gaia_exif.Tpo $(DEPDIR)/gaiaexif_la-gaia_exif.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gaia_exif.c' object='gaiaexif_la-gaia_exif.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiaexif_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiaexif_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiaexif_la-gaia_exif.lo `test -f 'gaia_exif.c' || echo '$(srcdir)/'`gaia_exif.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir 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-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ����������������������������������������������������libspatialite-4.3.0a/src/gaiaexif/gaia_exif.c�������������������������������������������������������0000664�0001750�0001750�00000171416�12544707704�016100� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gaia_exif.c -- Gaia EXIF support version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <sys/types.h> #include <stdlib.h> #include <stdio.h> #include <memory.h> #include <math.h> #include <float.h> #include <string.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite/sqlite.h> #include <spatialite/gaiageo.h> #include <spatialite/gaiaexif.h> #include <spatialite/geopackage.h> #include <spatialite.h> #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ static void exifTagName (char gps, unsigned short tag_id, char *str, int len) { /* returns the canonical name corresponding to an EXIF TAG ID */ int l; char *name = "UNKNOWN"; if (gps) { switch (tag_id) { case 0x00: name = "GPSVersionID"; break; case 0x01: name = "GPSLatitudeRef"; break; case 0x02: name = "GPSLatitude"; break; case 0x03: name = "GPSLongitudeRef"; break; case 0x04: name = "GPSLongitude"; break; case 0x05: name = "GPSAltitudeRef"; break; case 0x06: name = "GPSAltitude"; break; case 0x07: name = "GPSTimeStamp"; break; case 0x08: name = "GPSSatellites"; break; case 0x09: name = "GPSStatus"; break; case 0x0A: name = "GPSMeasureMode"; break; case 0x0B: name = "GPSDOP"; break; case 0x0C: name = "GPSSpeedRef"; break; case 0x0D: name = "GPSSpeed"; break; case 0x0E: name = "GPSTrackRef"; break; case 0x0F: name = "GPSTrack"; break; case 0x10: name = "GPSImgDirectionRef"; break; case 0x11: name = "GPSImgDirection"; break; case 0x12: name = "GPSMapDatum"; break; case 0x13: name = "GPSDestLatitudeRef"; break; case 0x14: name = "GPSDestLatitude"; break; case 0x15: name = "GPSDestLongitudeRef"; break; case 0x16: name = "GPSDestLongitude"; break; case 0x17: name = "GPSDestBearingRef"; break; case 0x18: name = "GPSDestBearing"; break; case 0x19: name = "GPSDestDistanceRef"; break; case 0x1A: name = "GPSDestDistance"; break; case 0x1B: name = "GPSProcessingMethod"; break; case 0x1C: name = "GPSAreaInformation"; break; case 0x1D: name = "GPSDateStamp"; break; case 0x1E: name = "GPSDifferential"; break; }; } else { switch (tag_id) { case 0x000B: name = "ACDComment"; break; case 0x00FE: name = "NewSubFile"; break; case 0x00FF: name = "SubFile"; break; case 0x0100: name = "ImageWidth"; break; case 0x0101: name = "ImageLength"; break; case 0x0102: name = "BitsPerSample"; break; case 0x0103: name = "Compression"; break; case 0x0106: name = "PhotometricInterpretation"; break; case 0x010A: name = "FillOrder"; break; case 0x010D: name = "DocumentName"; break; case 0x010E: name = "ImageDescription"; break; case 0x010F: name = "Make"; break; case 0x0110: name = "Model"; break; case 0x0111: name = "StripOffsets"; break; case 0x0112: name = "Orientation"; break; case 0x0115: name = "SamplesPerPixel"; break; case 0x0116: name = "RowsPerStrip"; break; case 0x0117: name = "StripByteCounts"; break; case 0x0118: name = "MinSampleValue"; break; case 0x0119: name = "MaxSampleValue"; break; case 0x011A: name = "XResolution"; break; case 0x011B: name = "YResolution"; break; case 0x011C: name = "PlanarConfiguration"; break; case 0x011D: name = "PageName"; break; case 0x011E: name = "XPosition"; break; case 0x011F: name = "YPosition"; break; case 0x0120: name = "FreeOffsets"; break; case 0x0121: name = "FreeByteCounts"; break; case 0x0122: name = "GrayResponseUnit"; break; case 0x0123: name = "GrayResponseCurve"; break; case 0x0124: name = "T4Options"; break; case 0x0125: name = "T6Options"; break; case 0x0128: name = "ResolutionUnit"; break; case 0x0129: name = "PageNumber"; break; case 0x012D: name = "TransferFunction"; break; case 0x0131: name = "Software"; break; case 0x0132: name = "DateTime"; break; case 0x013B: name = "Artist"; break; case 0x013C: name = "HostComputer"; break; case 0x013D: name = "Predictor"; break; case 0x013E: name = "WhitePoint"; break; case 0x013F: name = "PrimaryChromaticities"; break; case 0x0140: name = "ColorMap"; break; case 0x0141: name = "HalfToneHints"; break; case 0x0142: name = "TileWidth"; break; case 0x0143: name = "TileLength"; break; case 0x0144: name = "TileOffsets"; break; case 0x0145: name = "TileByteCounts"; break; case 0x014A: name = "SubIFD"; break; case 0x014C: name = "InkSet"; break; case 0x014D: name = "InkNames"; break; case 0x014E: name = "NumberOfInks"; break; case 0x0150: name = "DotRange"; break; case 0x0151: name = "TargetPrinter"; break; case 0x0152: name = "ExtraSample"; break; case 0x0153: name = "SampleFormat"; break; case 0x0154: name = "SMinSampleValue"; break; case 0x0155: name = "SMaxSampleValue"; break; case 0x0156: name = "TransferRange"; break; case 0x0157: name = "ClipPath"; break; case 0x0158: name = "XClipPathUnits"; break; case 0x0159: name = "YClipPathUnits"; break; case 0x015A: name = "Indexed"; break; case 0x015B: name = "JPEGTables"; break; case 0x015F: name = "OPIProxy"; break; case 0x0200: name = "JPEGProc"; break; case 0x0201: name = "JPEGInterchangeFormat"; break; case 0x0202: name = "JPEGInterchangeFormatLength"; break; case 0x0203: name = "JPEGRestartInterval"; break; case 0x0205: name = "JPEGLosslessPredictors"; break; case 0x0206: name = "JPEGPointTransforms"; break; case 0x0207: name = "JPEGQTables"; break; case 0x0208: name = "JPEGDCTables"; break; case 0x0209: name = "JPEGACTables"; break; case 0x0211: name = "YCbCrCoefficients"; break; case 0x0212: name = "YCbCrSubSampling"; break; case 0x0213: name = "YCbCrPositioning"; break; case 0x0214: name = "ReferenceBlackWhite"; break; case 0x02BC: name = "ExtensibleMetadataPlatform"; break; case 0x0301: name = "Gamma"; break; case 0x0302: name = "ICCProfileDescriptor"; break; case 0x0303: name = "SRGBRenderingIntent"; break; case 0x0320: name = "ImageTitle"; break; case 0x5001: name = "ResolutionXUnit"; break; case 0x5002: name = "ResolutionYUnit"; break; case 0x5003: name = "ResolutionXLengthUnit"; break; case 0x5004: name = "ResolutionYLengthUnit"; break; case 0x5005: name = "PrintFlags"; break; case 0x5006: name = "PrintFlagsVersion"; break; case 0x5007: name = "PrintFlagsCrop"; break; case 0x5008: name = "PrintFlagsBleedWidth"; break; case 0x5009: name = "PrintFlagsBleedWidthScale"; break; case 0x500A: name = "HalftoneLPI"; break; case 0x500B: name = "HalftoneLPIUnit"; break; case 0x500C: name = "HalftoneDegree"; break; case 0x500D: name = "HalftoneShape"; break; case 0x500E: name = "HalftoneMisc"; break; case 0x500F: name = "HalftoneScreen"; break; case 0x5010: name = "JPEGQuality"; break; case 0x5011: name = "GridSize"; break; case 0x5012: name = "ThumbnailFormat"; break; case 0x5013: name = "ThumbnailWidth"; break; case 0x5014: name = "ThumbnailHeight"; break; case 0x5015: name = "ThumbnailColorDepth"; break; case 0x5016: name = "ThumbnailPlanes"; break; case 0x5017: name = "ThumbnailRawBytes"; break; case 0x5018: name = "ThumbnailSize"; break; case 0x5019: name = "ThumbnailCompressedSize"; break; case 0x501A: name = "ColorTransferFunction"; break; case 0x501B: name = "ThumbnailData"; break; case 0x5020: name = "ThumbnailImageWidth"; break; case 0x5021: name = "ThumbnailImageHeight"; break; case 0x5022: name = "ThumbnailBitsPerSample"; break; case 0x5023: name = "ThumbnailCompression"; break; case 0x5024: name = "ThumbnailPhotometricInterp"; break; case 0x5025: name = "ThumbnailImageDescription"; break; case 0x5026: name = "ThumbnailEquipMake"; break; case 0x5027: name = "ThumbnailEquipModel"; break; case 0x5028: name = "ThumbnailStripOffsets"; break; case 0x5029: name = "ThumbnailOrientation"; break; case 0x502A: name = "ThumbnailSamplesPerPixel"; break; case 0x502B: name = "ThumbnailRowsPerStrip"; break; case 0x502C: name = "ThumbnailStripBytesCount"; break; case 0x502D: name = "ThumbnailResolutionX"; break; case 0x502E: name = "ThumbnailResolutionY"; break; case 0x502F: name = "ThumbnailPlanarConfig"; break; case 0x5030: name = "ThumbnailResolutionUnit"; break; case 0x5031: name = "ThumbnailTransferFunction"; break; case 0x5032: name = "ThumbnailSoftwareUsed"; break; case 0x5033: name = "ThumbnailDateTime"; break; case 0x5034: name = "ThumbnailArtist"; break; case 0x5035: name = "ThumbnailWhitePoint"; break; case 0x5036: name = "ThumbnailPrimaryChromaticities"; break; case 0x5037: name = "ThumbnailYCbCrCoefficients"; break; case 0x5038: name = "ThumbnailYCbCrSubsampling"; break; case 0x5039: name = "ThumbnailYCbCrPositioning"; break; case 0x503A: name = "ThumbnailRefBlackWhite"; break; case 0x503B: name = "ThumbnailCopyRight"; break; case 0x5090: name = "LuminanceTable"; break; case 0x5091: name = "ChrominanceTable"; break; case 0x5100: name = "FrameDelay"; break; case 0x5101: name = "LoopCount"; break; case 0x5110: name = "PixelUnit"; break; case 0x5111: name = "PixelPerUnitX"; break; case 0x5112: name = "PixelPerUnitY"; break; case 0x5113: name = "PaletteHistogram"; break; case 0x1000: name = "RelatedImageFileFormat"; break; case 0x800D: name = "ImageID"; break; case 0x80E3: name = "Matteing"; break; case 0x80E4: name = "DataType"; break; case 0x80E5: name = "ImageDepth"; break; case 0x80E6: name = "TileDepth"; break; case 0x828D: name = "CFARepeatPatternDim"; break; case 0x828E: name = "CFAPattern"; break; case 0x828F: name = "BatteryLevel"; break; case 0x8298: name = "Copyright"; break; case 0x829A: name = "ExposureTime"; break; case 0x829D: name = "FNumber"; break; case 0x83BB: name = "IPTC/NAA"; break; case 0x84E3: name = "IT8RasterPadding"; break; case 0x84E5: name = "IT8ColorTable"; break; case 0x8649: name = "ImageResourceInformation"; break; case 0x8769: name = "Exif IFD Pointer"; break; case 0x8773: name = "ICC_Profile"; break; case 0x8822: name = "ExposureProgram"; break; case 0x8824: name = "SpectralSensitivity"; break; case 0x8825: name = "GPSInfo IFD Pointer"; break; case 0x8827: name = "ISOSpeedRatings"; break; case 0x8828: name = "OECF"; break; case 0x9000: name = "ExifVersion"; break; case 0x9003: name = "DateTimeOriginal"; break; case 0x9004: name = "DateTimeDigitized"; break; case 0x9101: name = "ComponentsConfiguration"; break; case 0x9102: name = "CompressedBitsPerPixel"; break; case 0x9201: name = "ShutterSpeedValue"; break; case 0x9202: name = "ApertureValue"; break; case 0x9203: name = "BrightnessValue"; break; case 0x9204: name = "ExposureBiasValue"; break; case 0x9205: name = "MaxApertureValue"; break; case 0x9206: name = "SubjectDistance"; break; case 0x9207: name = "MeteringMode"; break; case 0x9208: name = "LightSource"; break; case 0x9209: name = "Flash"; break; case 0x920A: name = "FocalLength"; break; case 0x920B: case 0xA20B: name = "FlashEnergy"; break; case 0x920C: case 0xA20C: name = "SpatialFrequencyResponse"; break; case 0x920D: name = "Noise"; break; case 0x920E: case 0xA20E: name = "FocalPlaneXResolution"; break; case 0x920F: case 0XA20F: name = "FocalPlaneYResolution"; break; case 0x9210: case 0xA210: name = "FocalPlaneResolutionUnit"; break; case 0x9211: name = "ImageNumber"; break; case 0x9212: name = "SecurityClassification"; break; case 0x9213: name = "ImageHistory"; break; case 0x9214: case 0xA214: name = "SubjectLocation"; break; case 0x9215: case 0xA215: name = "ExposureIndex"; break; case 0x9216: name = "TIFF/EPStandardID"; break; case 0x9217: case 0xA217: name = "SensingMethod"; break; case 0x923F: name = "StoNits"; break; case 0x927C: name = "MakerNote"; break; case 0x9286: name = "UserComment"; break; case 0x9290: name = "SubSecTime"; break; case 0x9291: name = "SubSecTimeOriginal"; break; case 0x9292: name = "SubSecTimeDigitized"; break; case 0xA000: name = "FlashpixVersion"; break; case 0xA001: name = "ColorSpace"; break; case 0xA002: name = "ExifImageWidth"; break; case 0xA003: name = "ExifImageLength"; break; case 0xA004: name = "RelatedSoundFile"; break; case 0xA005: name = "Interoperability IFD Pointer"; break; case 0xA20D: name = "Noise"; break; case 0xA211: name = "ImageNumber"; break; case 0xA212: name = "SecurityClassification"; break; case 0xA213: name = "ImageHistory"; break; case 0xA216: name = "TIFF/EPStandardID"; break; case 0xA300: name = "FileSource"; break; case 0xA301: name = "SceneType"; break; case 0xA302: name = "CFAPattern"; break; case 0xA401: name = "CustomRendered"; break; case 0xA402: name = "ExposureMode"; break; case 0xA403: name = "WhiteBalance"; break; case 0xA404: name = "DigitalZoomRatio"; break; case 0xA405: name = "FocalLengthIn35mmFilm"; break; case 0xA406: name = "SceneCaptureType"; break; case 0xA407: name = "GainControl"; break; case 0xA408: name = "Contrast"; break; case 0xA409: name = "Saturation"; break; case 0xA40A: name = "Sharpness"; break; case 0xA40B: name = "DeviceSettingDescription"; break; case 0xA40C: name = "SubjectDistanceRange"; break; case 0xA420: name = "ImageUniqueID"; break; }; } l = strlen (name); if (len > l) strcpy (str, name); else { memset (str, '\0', len); memcpy (str, name, len - 1); } } static unsigned short exifImportU16 (const unsigned char *p, int little_endian, int little_endian_arch) { /* fetches an unsigned 16bit int from BLOB respecting declared endiannes */ union cvt { unsigned char byte[2]; unsigned short short_value; } convert; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 1); convert.byte[1] = *(p + 0); } else { /* Little Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); } else { /* Little Endian data */ convert.byte[0] = *(p + 1); convert.byte[1] = *(p + 0); } } return convert.short_value; } static unsigned int exifImportU32 (const unsigned char *p, int little_endian, int little_endian_arch) { /* fetches an unsigned 32bit int from BLOB respecting declared endiannes */ union cvt { unsigned char byte[4]; unsigned int int_value; } convert; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } else { /* Little Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } else { /* Little Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } } return convert.int_value; } static float exifImportFloat32 (const unsigned char *p, int little_endian, int little_endian_arch) { /* fetches a 32bit FLOAT from BLOB respecting declared endiannes */ union cvt { unsigned char byte[4]; float float_value; } convert; if (little_endian_arch) { /* Litte-Endian architecture [e.g. x86] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } else { /* Little Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } } else { /* Big Endian architecture [e.g. PPC] */ if (!little_endian) { /* Big Endian data */ convert.byte[0] = *(p + 0); convert.byte[1] = *(p + 1); convert.byte[2] = *(p + 2); convert.byte[3] = *(p + 3); } else { /* Little Endian data */ convert.byte[0] = *(p + 3); convert.byte[1] = *(p + 2); convert.byte[2] = *(p + 1); convert.byte[3] = *(p + 0); } } return convert.float_value; } static void exifSetTagValue (gaiaExifTagPtr tag, const unsigned char *blob, int endian_mode, int endian_arch, int app1_offset) { /* setting the TAG value */ int i; int sz = 0; unsigned int offset; const unsigned char *ptr; unsigned short short_value; unsigned int int_value; short sign_short_value; int sign_int_value; float float_value; double double_value; if (tag->Type == 1 || tag->Type == 2 || tag->Type == 6 || tag->Type == 7) sz = tag->Count; if (tag->Type == 3 || tag->Type == 8) sz = tag->Count * 2; if (tag->Type == 4 || tag->Type == 9 || tag->Type == 11) sz = tag->Count * 4; if (tag->Type == 5 || tag->Type == 10 || tag->Type == 12) sz = tag->Count * 8; if (sz <= 4) { /* TAG values is stored within the offset */ ptr = tag->TagOffset; } else { /* jumping to offset */ offset = exifImportU32 (tag->TagOffset, endian_mode, endian_arch); offset += app1_offset + 10; ptr = blob + offset; } if (tag->Type == 1 || tag->Type == 6 || tag->Type == 7) { /* BYTE type */ tag->ByteValue = malloc (tag->Count); memcpy (tag->ByteValue, ptr, tag->Count); } if (tag->Type == 2) { /* STRING type */ tag->StringValue = malloc (tag->Count); memcpy (tag->StringValue, ptr, tag->Count); } if (tag->Type == 3) { /* SHORT type */ tag->ShortValues = malloc (tag->Count * sizeof (unsigned short)); for (i = 0; i < tag->Count; i++) { short_value = exifImportU16 (ptr + (i * 2), endian_mode, endian_arch); *(tag->ShortValues + i) = short_value; } } if (tag->Type == 4) { /* LONG type */ tag->LongValues = malloc (tag->Count * sizeof (unsigned int)); for (i = 0; i < tag->Count; i++) { int_value = exifImportU32 (ptr + (i * 4), endian_mode, endian_arch); *(tag->LongValues + i) = int_value; } } if (tag->Type == 5) { /* RATIONAL type */ tag->LongRationals1 = malloc (tag->Count * sizeof (unsigned int)); tag->LongRationals2 = malloc (tag->Count * sizeof (unsigned int)); for (i = 0; i < tag->Count; i++) { int_value = exifImportU32 (ptr + (i * 8), endian_mode, endian_arch); *(tag->LongRationals1 + i) = int_value; int_value = exifImportU32 (ptr + (i * 8) + 4, endian_mode, endian_arch); *(tag->LongRationals2 + i) = int_value; } } if (tag->Type == 8) { /* SSHORT type */ tag->SignedShortValues = malloc (tag->Count * sizeof (short)); for (i = 0; i < tag->Count; i++) { sign_short_value = gaiaImport16 (ptr + (i * 2), endian_mode, endian_arch); *(tag->SignedShortValues + i) = sign_short_value; } } if (tag->Type == 9) { /* SIGNED LONG type */ tag->SignedLongValues = malloc (tag->Count * sizeof (int)); for (i = 0; i < tag->Count; i++) { sign_int_value = gaiaImport32 (ptr + (i * 4), endian_mode, endian_arch); *(tag->SignedLongValues + i) = sign_int_value; } } if (tag->Type == 10) { /* SIGNED RATIONAL type */ tag->SignedLongRationals1 = malloc (tag->Count * sizeof (int)); tag->SignedLongRationals2 = malloc (tag->Count * sizeof (int)); for (i = 0; i < tag->Count; i++) { sign_int_value = gaiaImport32 (ptr + (i * 8), endian_mode, endian_arch); *(tag->SignedLongRationals1 + i) = sign_int_value; sign_int_value = gaiaImport32 (ptr + (i * 8) + 4, endian_mode, endian_arch); *(tag->SignedLongRationals2 + i) = sign_int_value; } } if (tag->Type == 11) { /* FLOAT type */ tag->FloatValues = malloc (tag->Count * sizeof (float)); for (i = 0; i < tag->Count; i++) { float_value = exifImportFloat32 (ptr + (i * 4), endian_mode, endian_arch); *(tag->FloatValues + i) = float_value; } } if (tag->Type == 12) { /* DOUBLE type */ tag->DoubleValues = malloc (tag->Count * sizeof (double)); for (i = 0; i < tag->Count; i++) { double_value = gaiaImport64 (ptr + (i * 8), endian_mode, endian_arch); *(tag->DoubleValues + i) = double_value; } } } static void exifParseTag (const unsigned char *blob, unsigned int offset, int endian_mode, int endian_arch, gaiaExifTagListPtr list, int gps, int app1_offset) { /* parsing some TAG and inserting into the list */ unsigned short tag_id; unsigned short type; unsigned int count; gaiaExifTagPtr tag; tag_id = exifImportU16 (blob + offset, endian_mode, endian_arch); type = exifImportU16 (blob + offset + 2, endian_mode, endian_arch); count = exifImportU32 (blob + offset + 4, endian_mode, endian_arch); tag = malloc (sizeof (gaiaExifTag)); tag->Gps = (char) gps; tag->TagId = tag_id; tag->Type = type; tag->Count = (unsigned short) count; memcpy (tag->TagOffset, blob + offset + 8, 4); tag->ByteValue = NULL; tag->StringValue = NULL; tag->ShortValues = NULL; tag->LongValues = NULL; tag->LongRationals1 = NULL; tag->LongRationals2 = NULL; tag->SignedShortValues = NULL; tag->SignedLongValues = NULL; tag->SignedLongRationals1 = NULL; tag->SignedLongRationals2 = NULL; tag->FloatValues = NULL; tag->DoubleValues = NULL; exifSetTagValue (tag, blob, endian_mode, endian_arch, app1_offset); tag->Next = NULL; if (!(list->First)) list->First = tag; if (list->Last) (list->Last)->Next = tag; list->Last = tag; (list->NumTags)++; } static void exifExpandIFD (gaiaExifTagListPtr list, const unsigned char *blob, int endian_mode, int endian_arch, int app1_offset) { /* trying to expand the EXIF-IFD */ unsigned int offset; unsigned short items; unsigned short i; gaiaExifTagPtr tag; if (!list) return; tag = list->First; while (tag) { if (tag->TagId == 34665) { /* ok, this one is an IFD pointer */ offset = exifImportU32 (tag->TagOffset, endian_mode, endian_arch); offset += app1_offset + 10; items = exifImportU16 (blob + offset, endian_mode, endian_arch); offset += 2; for (i = 0; i < items; i++) { /* fetching the TAGs */ exifParseTag (blob, offset, endian_mode, endian_arch, list, 0, app1_offset); offset += 12; } } tag = tag->Next; } } static void exifExpandGPS (gaiaExifTagListPtr list, const unsigned char *blob, int endian_mode, int endian_arch, int app1_offset) { /* trying to expand the EXIF-GPS */ unsigned int offset; unsigned short items; unsigned short i; gaiaExifTagPtr tag; if (!list) return; tag = list->First; while (tag) { if (tag->TagId == 34853) { /* ok, this one is a GPSinfo-IFD pointer */ offset = exifImportU32 (tag->TagOffset, endian_mode, endian_arch); offset += app1_offset + 10; items = exifImportU16 (blob + offset, endian_mode, endian_arch); offset += 2; for (i = 0; i < items; i++) { /* fetching the TAGs */ exifParseTag (blob, offset, endian_mode, endian_arch, list, 1, app1_offset); offset += 12; } } tag = tag->Next; } } GAIAEXIF_DECLARE gaiaExifTagListPtr gaiaGetExifTags (const unsigned char *blob, int size) { /* trying to parse a BLOB as an EXIF photo */ gaiaExifTagListPtr list; int endian_arch = gaiaEndianArch (); int endian_mode; unsigned short app1_size; unsigned int offset; unsigned short items; unsigned short i; int app1_offset; gaiaExifTagPtr pT; if (!blob) goto error; if (size < 14) goto error; /* checking for SOI [Start Of Image] */ if (*(blob + 0) == 0xff && *(blob + 1) == 0xd8) ; else goto error; for (app1_offset = 2; app1_offset < size - 1; app1_offset++) { if (*(blob + app1_offset) == 0xff && *(blob + app1_offset + 1) == 0xe1) { /* found APP1 marker */ break; } } if (app1_offset == size - 1) { /* we've reached the end of the file, but not found the marker */ goto error; } /* checking for EXIF identifier */ if (memcmp (blob + app1_offset + 4, "Exif", 4) == 0) ; else goto error; /* checking for Pad */ if (*(blob + app1_offset + 8) == 0x00 && *(blob + app1_offset + 9) == 0x00) ; else goto error; if (memcmp (blob + app1_offset + 10, "II", 2) == 0) endian_mode = GAIA_LITTLE_ENDIAN; else if (memcmp (blob + app1_offset + 10, "MM", 2) == 0) endian_mode = GAIA_BIG_ENDIAN; else goto error; /* OK: this BLOB seems to contain a valid EXIF */ app1_size = exifImportU16 (blob + app1_offset + 2, endian_mode, endian_arch); if ((app1_size + app1_offset + 4) > size) goto error; /* checking for marker */ if (endian_mode == GAIA_BIG_ENDIAN) { if (*(blob + app1_offset + 12) == 0x00 && *(blob + app1_offset + 13) == 0x2a) ; else goto error; } else { if (*(blob + app1_offset + 12) == 0x2a && *(blob + app1_offset + 13) == 0x00) ; else goto error; } /* allocating an EXIF TAG LIST */ list = malloc (sizeof (gaiaExifTagList)); list->First = NULL; list->Last = NULL; list->NumTags = 0; list->TagsArray = NULL; offset = exifImportU32 (blob + app1_offset + 14, endian_mode, endian_arch); offset += app1_offset + 10; /* jump to offset */ items = exifImportU16 (blob + offset, endian_mode, endian_arch); offset += 2; for (i = 0; i < items; i++) { /* fetching the EXIF TAGs */ exifParseTag (blob, offset, endian_mode, endian_arch, list, 0, app1_offset); offset += 12; } /* expanding the IFD and GPS tags */ exifExpandIFD (list, blob, endian_mode, endian_arch, app1_offset); exifExpandGPS (list, blob, endian_mode, endian_arch, app1_offset); if (list->NumTags) { /* organizing the EXIF TAGS as an Array */ list->TagsArray = malloc (sizeof (gaiaExifTagPtr) * list->NumTags); pT = list->First; i = 0; while (pT) { *(list->TagsArray + i++) = pT; pT = pT->Next; } } return list; error: return NULL; } GAIAEXIF_DECLARE void gaiaExifTagsFree (gaiaExifTagListPtr p) { /* memory cleanup; freeing the EXIF TAG list */ gaiaExifTagPtr pT; gaiaExifTagPtr pTn; if (!p) return; pT = p->First; while (pT) { pTn = pT->Next; if (pT->ByteValue) free (pT->ByteValue); if (pT->StringValue) free (pT->StringValue); if (pT->ShortValues) free (pT->ShortValues); if (pT->LongValues) free (pT->LongValues); if (pT->LongRationals1) free (pT->LongRationals1); if (pT->LongRationals2) free (pT->LongRationals2); if (pT->SignedShortValues) free (pT->SignedShortValues); if (pT->SignedLongValues) free (pT->SignedLongValues); if (pT->SignedLongRationals1) free (pT->SignedLongRationals1); if (pT->SignedLongRationals2) free (pT->SignedLongRationals2); if (pT->FloatValues) free (pT->FloatValues); if (pT->DoubleValues) free (pT->DoubleValues); free (pT); pT = pTn; } if (p->TagsArray) free (p->TagsArray); free (p); } GAIAEXIF_DECLARE int gaiaGetExifTagsCount (gaiaExifTagListPtr tag_list) { /* returns the # TAGSs into this list */ return tag_list->NumTags; } GAIAEXIF_DECLARE gaiaExifTagPtr gaiaGetExifTagByPos (gaiaExifTagListPtr tag_list, const int pos) { /* returns the Nth TAG from this list */ if (pos >= 0 && pos < tag_list->NumTags) return *(tag_list->TagsArray + pos); return NULL; } GAIAEXIF_DECLARE gaiaExifTagPtr gaiaGetExifTagById (const gaiaExifTagListPtr tag_list, const unsigned short tag_id) { /* returns a not-GPS TAG identified by its ID */ gaiaExifTagPtr pT = tag_list->First; while (pT) { if (!(pT->Gps) && pT->TagId == tag_id) return pT; pT = pT->Next; } return NULL; } GAIAEXIF_DECLARE gaiaExifTagPtr gaiaGetExifGpsTagById (const gaiaExifTagListPtr tag_list, const unsigned short tag_id) { /* returns a GPS TAG identified by its ID */ gaiaExifTagPtr pT = tag_list->First; while (pT) { if (pT->Gps && pT->TagId == tag_id) return pT; pT = pT->Next; } return NULL; } GAIAEXIF_DECLARE gaiaExifTagPtr gaiaGetExifTagByName (const gaiaExifTagListPtr tag_list, const char *tag_name) { /* returns a TAG identified by its Name */ char name[128]; gaiaExifTagPtr pT = tag_list->First; while (pT) { exifTagName (pT->Gps, pT->TagId, name, 128); if (strcasecmp (name, tag_name) == 0) return pT; pT = pT->Next; } return NULL; } GAIAEXIF_DECLARE unsigned short gaiaExifTagGetId (const gaiaExifTagPtr tag) { /* returns the TAG ID */ return tag->TagId; } GAIAEXIF_DECLARE int gaiaIsExifGpsTag (const gaiaExifTagPtr tag) { /* checks if this one is a GPS tag */ return tag->Gps; } GAIAEXIF_DECLARE void gaiaExifTagGetName (const gaiaExifTagPtr tag, char *str, int len) { /* returns the TAG symbolic Name */ exifTagName (tag->Gps, tag->TagId, str, len); } GAIAEXIF_DECLARE unsigned short gaiaExifTagGetValueType (const gaiaExifTagPtr tag) { /* returns the TAG value Type */ return tag->Type; } GAIAEXIF_DECLARE unsigned short gaiaExifTagGetNumValues (const gaiaExifTagPtr tag) { /* returns the # TAG Values */ return tag->Count; } GAIAEXIF_DECLARE unsigned char gaiaExifTagGetByteValue (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Byte value */ if (ind >= 0 && ind < tag->Count && (tag->Type == 1 || tag->Type == 6 || tag->Type == 7)) { *ok = 1; return *(tag->ByteValue + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE void gaiaExifTagGetStringValue (const gaiaExifTagPtr tag, char *str, int len, int *ok) { /* returns the String value */ int l; if (tag->Type == 2) { *ok = 1; l = strlen (tag->StringValue); if (len > l) strcpy (str, tag->StringValue); else { memset (str, '\0', len); memcpy (str, tag->StringValue, len - 1); } return; } *ok = 0; } GAIAEXIF_DECLARE unsigned short gaiaExifTagGetShortValue (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Short value */ if (ind >= 0 && ind < tag->Count && tag->Type == 3) { *ok = 1; return *(tag->ShortValues + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE unsigned int gaiaExifTagGetLongValue (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Long value */ if (ind >= 0 && ind < tag->Count && tag->Type == 4) { *ok = 1; return *(tag->LongValues + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE unsigned int gaiaExifTagGetRational1Value (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Rational (1) value */ if (ind >= 0 && ind < tag->Count && tag->Type == 5) { *ok = 1; return *(tag->LongRationals1 + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE unsigned int gaiaExifTagGetRational2Value (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Rational (2) value */ if (ind >= 0 && ind < tag->Count && tag->Type == 5) { *ok = 1; return *(tag->LongRationals2 + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE double gaiaExifTagGetRationalValue (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Rational value as Double */ double x; if (ind >= 0 && ind < tag->Count && tag->Type == 5 && *(tag->LongRationals2 + ind)) { *ok = 1; x = (double) (*(tag->LongRationals1 + ind)) / (double) (*(tag->LongRationals2 + ind)); return x; } *ok = 0; return 0; } GAIAEXIF_DECLARE short gaiaExifTagGetSignedShortValue (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Signed Short value */ if (ind >= 0 && ind < tag->Count && tag->Type == 8) { *ok = 1; return *(tag->SignedShortValues + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE int gaiaExifTagGetSignedLongValue (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Signed Long value */ if (ind >= 0 && ind < tag->Count && tag->Type == 9) { *ok = 1; return *(tag->SignedLongValues + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE int gaiaExifTagGetSignedRational1Value (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Signed Rational (1) value */ if (ind >= 0 && ind < tag->Count && tag->Type == 10) { *ok = 1; return *(tag->SignedLongRationals1 + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE int gaiaExifTagGetSignedRational2Value (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Signed Rational (2) value */ if (ind >= 0 && ind < tag->Count && tag->Type == 10) { *ok = 1; return *(tag->SignedLongRationals2 + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE double gaiaExifTagGetSignedRationalValue (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Signed Rational value as Double */ double x; if (ind >= 0 && ind < tag->Count && tag->Type == 10 && *(tag->SignedLongRationals2 + ind)) { *ok = 1; x = (double) (*(tag->SignedLongRationals1 + ind)) / (double) (*(tag->SignedLongRationals2 + ind)); return x; } *ok = 0; return 0; } GAIAEXIF_DECLARE float gaiaExifTagGetFloatValue (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Float value */ if (ind >= 0 && ind < tag->Count && tag->Type == 11) { *ok = 1; return *(tag->FloatValues + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE double gaiaExifTagGetDoubleValue (const gaiaExifTagPtr tag, const int ind, int *ok) { /* returns the Nth Double value */ if (ind >= 0 && ind < tag->Count && tag->Type == 12) { *ok = 1; return *(tag->DoubleValues + ind); } *ok = 0; return 0; } GAIAEXIF_DECLARE void gaiaExifTagGetHumanReadable (const gaiaExifTagPtr tag, char *str, int len, int *ok) { /* returns the Human Readable value */ char *human = ""; char dummy[1024]; int l; int xok; double dblval; switch (tag->TagId) { case 0x0128: /* ResolutionUnit */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 2: human = "Inches"; break; case 3: human = "Centimeters"; break; }; } break; case 0x8822: /* ExposureProgram */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "Not defined"; break; case 1: human = "Manual"; break; case 2: human = "Normal program"; break; case 3: human = "Aperture priority"; break; case 4: human = "Shutter priority"; break; case 5: human = "Creative program (biased toward depth of field)"; break; case 6: human = "Action program (biased toward fast shutter speed)"; break; case 7: human = "Portrait mode (for closeup photos with the background out of focus)"; break; case 8: human = "Landscape mode (for landscape photos with the background in focus)"; break; }; } break; case 0xA402: /* ExposureMode */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "Auto exposure"; break; case 1: human = "Manual exposure"; break; case 2: human = "Auto bracket"; break; }; } break; case 0x0112: /* Orientation */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 1: human = "Normal"; break; case 2: human = "Mirrored"; break; case 3: human = "Upsidedown"; break; case 4: human = "Upsidedown Mirrored"; break; case 5: human = "90 deg Clockwise Mirrored"; break; case 6: human = "90 deg Counterclocwise"; break; case 7: human = "90 deg Counterclocwise Mirrored"; break; case 8: human = "90 deg Mirrored"; break; }; } break; case 0x9207: /* MeteringMode */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 1: human = "Average"; break; case 2: human = "Center Weighted Average"; break; case 3: human = "Spot"; break; case 4: human = "MultiSpot"; break; case 5: human = "MultiSegment"; break; case 6: human = "Partial"; break; case 255: human = "Other"; break; }; } break; case 0xA403: /* WhiteBalance */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "Auto"; break; case 1: human = "Sunny"; break; case 2: human = "Cloudy"; break; case 3: human = "Tungsten"; break; case 4: human = "Fluorescent"; break; case 5: human = "Flash"; break; case 6: human = "Custom"; break; case 129: human = "Manual"; break; }; } break; case 0x9209: /* Flash */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: case 16: case 24: case 32: human = "No Flash"; break; case 1: human = "Flash"; break; case 5: human = "Flash, strobe return light not detected"; break; case 7: human = "Flash, strobe return light detected"; break; case 9: human = "Compulsory Flash"; break; case 13: human = "Compulsory Flash, Return light not detected"; break; case 15: human = "Compulsory Flash, Return light detected"; break; case 25: human = "Flash, Auto-Mode"; break; case 29: human = "Flash, Auto-Mode, Return light not detected"; break; case 31: human = "Flash, Auto-Mode, Return light detected"; break; case 65: human = "Red Eye"; break; case 69: human = "Red Eye, Return light not detected"; break; case 71: human = "Red Eye, Return light detected"; break; case 73: human = "Red Eye, Compulsory Flash"; break; case 77: human = "Red Eye, Compulsory Flash, Return light not detected"; break; case 79: human = "Red Eye, Compulsory Flash, Return light detected"; break; case 89: human = "Red Eye, Auto-Mode"; break; case 93: human = "Red Eye, Auto-Mode, Return light not detected"; break; case 95: human = "Red Eye, Auto-Mode, Return light detected"; break; }; } break; case 0xA217: /* SensingMethod */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 1: human = "Not defined"; break; case 2: human = "One Chip Color Area Sensor"; break; case 3: human = "Two Chip Color Area Sensor"; break; case 4: human = "Three Chip Color Area Sensor"; break; case 5: human = "Color Sequential Area Sensor"; break; case 7: human = "Trilinear Sensor"; break; case 8: human = "Color Sequential Linear Sensor"; break; }; } break; case 0xA406: /* SceneCaptureType */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "Standard"; break; case 1: human = "Landscape"; break; case 2: human = "Portrait"; break; case 3: human = "Night scene"; break; }; } break; case 0xA407: /* GainControl */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "None"; break; case 1: human = "Low gain up"; break; case 2: human = "High gain up"; break; case 3: human = "Low gain down"; break; case 4: human = "High gain down"; break; }; } break; case 0xA408: /* Contrast */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "Normal"; break; case 1: human = "Soft"; break; case 2: human = "Hard"; break; }; } break; case 0xA409: /* Saturation */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "Normal"; break; case 1: human = "Low saturation"; break; case 2: human = "High saturation"; break; }; } break; case 0xA40A: /* Sharpness */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "Normal"; break; case 1: human = "Soft"; break; case 2: human = "Hard"; break; }; } break; case 0xA40C: /* SubjectDistanceRange */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "Unknown"; break; case 1: human = "Macro"; break; case 2: human = "Close view"; break; case 3: human = "Distant view"; break; }; } break; case 0x9208: /* LightSource */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 0: human = "Unknown"; break; case 1: human = "Daylight"; break; case 2: human = "Fluorescent"; break; case 3: human = "Tungsten (incandescent light)"; break; case 4: human = "Flash"; break; case 9: human = "Fine weather"; break; case 10: human = "Cloudy weather"; break; case 11: human = "Shade"; case 12: human = "Daylight fluorescent (D 5700 - 7100K)"; break; case 13: human = "Day white fluorescent (N 4600 - 5400K)"; break; case 14: human = "Cool white fluorescent (W 3900 - 4500K)"; case 15: human = "White fluorescent (WW 3200 - 3700K)"; break; case 17: human = "Standard light A"; break; case 18: human = "Standard light B"; break; case 19: human = "Standard light C"; break; case 20: human = "D55"; break; case 21: human = "D65"; break; case 22: human = "D75"; break; case 23: human = "D50"; break; case 24: human = "ISO studio tungsten"; break; case 255: human = "other light source"; break; }; } break; case 0xA001: /* ColorSpace */ if (tag->Type == 3 && tag->Count == 1) { switch (*(tag->ShortValues + 0)) { case 1: human = "sRGB"; break; case 0xffff: human = "Uncalibrated"; break; }; } break; case 0x8827: /* ISOSpeedRatings */ if (tag->Type == 3 && tag->Count == 1) { sprintf (dummy, "%u ISO", *(tag->ShortValues + 0)); human = dummy; } break; case 0xA002: /* ExifImageWidth */ case 0xA003: /* ExifImageLength */ if (tag->Type == 3 && tag->Count == 1) { sprintf (dummy, "%u pixels", *(tag->ShortValues + 0)); human = dummy; } else if (tag->Type == 4 && tag->Count == 1) { sprintf (dummy, "%u pixels", *(tag->LongValues + 0)); human = dummy; } break; case 0x829A: /* ExposureTime */ if (tag->Type == 5 && tag->Count == 1) { dblval = gaiaExifTagGetRationalValue (tag, 0, &xok); if (xok) { if (dblval < 1.0) { dblval = 1.0 / dblval; sprintf (dummy, "1/%1.0f sec", dblval); human = dummy; } else { sprintf (dummy, "%1.0f sec", dblval); human = dummy; } } } break; case 0x9201: /* ShutterSpeedValue */ if (tag->Type == 10 && tag->Count == 1) { dblval = gaiaExifTagGetSignedRationalValue (tag, 0, &xok); if (xok) { dblval = exp (dblval * log (2)); if (dblval > 1.0) dblval = floor (dblval); if (dblval < 1.0) { dblval = math_round (1.0 / dblval); sprintf (dummy, "%1.0f sec", dblval); human = dummy; } else { sprintf (dummy, "1/%1.0f sec", dblval); human = dummy; } } } break; case 0x829D: /* FNumber */ if (tag->Type == 5 && tag->Count == 1) { dblval = gaiaExifTagGetRationalValue (tag, 0, &xok); if (xok) { sprintf (dummy, "F %1.1f", dblval); human = dummy; } } break; case 0x9202: /* ApertureValue */ case 0x9205: /* MaxApertureValue */ if (tag->Type == 5 && tag->Count == 1) { dblval = gaiaExifTagGetRationalValue (tag, 0, &xok); if (xok) { dblval = exp ((dblval * log (2)) / 2.0); sprintf (dummy, "F %1.1f", dblval); human = dummy; } } break; case 0x920A: /* FocalLength */ if (tag->Type == 5 && tag->Count == 1) { dblval = gaiaExifTagGetRationalValue (tag, 0, &xok); if (xok) { sprintf (dummy, "%1.1f mm", dblval); human = dummy; } } break; case 0xA405: /* FocalLengthIn35mmFilm */ if (tag->Type == 3 && tag->Count == 1) { sprintf (dummy, "%u mm", *(tag->ShortValues + 0)); human = dummy; } break; case 0x9204: /* ExposureBiasValue */ if (tag->Type == 10 && tag->Count == 1) { dblval = gaiaExifTagGetSignedRationalValue (tag, 0, &xok); if (xok) { sprintf (dummy, "%1.2f EV", dblval); human = dummy; } } break; }; l = strlen (human); if (l > 0) { if (len > l) strcpy (str, human); else { memset (str, '\0', len); memcpy (str, human, len - 1); } *ok = 1; return; } *ok = 0; } GAIAEXIF_DECLARE int gaiaGuessBlobType (const unsigned char *blob, int size) { /* returns the BLOB content type */ int jpeg = 0; int exif = 0; int exif_gps = 0; int geom = 1; gaiaExifTagListPtr exif_list; gaiaExifTagPtr pT; unsigned char jpeg1_signature[2]; unsigned char jpeg2_signature[2]; unsigned char jpeg3_signature[4]; unsigned char jfif_signature[4]; unsigned char exif_signature[4]; unsigned char png_signature[8]; unsigned char zip_signature[4]; unsigned char tiff_signature_little[4]; unsigned char tiff_signature_big[4]; unsigned char riff_signature[4]; unsigned char webp_signature[8]; unsigned char jp2_little[12]; unsigned char jp2_big[12]; jpeg1_signature[0] = 0xff; jpeg1_signature[1] = 0xd8; jpeg2_signature[0] = 0xff; jpeg2_signature[1] = 0xd9; jpeg3_signature[0] = 0xff; jpeg3_signature[1] = 0xd8; jpeg3_signature[2] = 0xff; jpeg3_signature[3] = 0xe0; jfif_signature[0] = 0x4a; jfif_signature[1] = 0x46; jfif_signature[2] = 0x49; jfif_signature[3] = 0x46; exif_signature[0] = 0x45; exif_signature[1] = 0x78; exif_signature[2] = 0x69; exif_signature[3] = 0x66; png_signature[0] = 0x89; png_signature[1] = 0x50; png_signature[2] = 0x4e; png_signature[3] = 0x47; png_signature[4] = 0x0d; png_signature[5] = 0x0a; png_signature[6] = 0x1a; png_signature[7] = 0x0a; zip_signature[0] = 0x50; zip_signature[1] = 0x4b; zip_signature[2] = 0x03; zip_signature[3] = 0x04; tiff_signature_little[0] = 'I'; tiff_signature_little[1] = 'I'; tiff_signature_little[2] = 0x2a; tiff_signature_little[3] = 0x00; tiff_signature_big[0] = 'M'; tiff_signature_big[1] = 'M'; tiff_signature_big[2] = 0x00; tiff_signature_big[3] = 0x2a; riff_signature[0] = 'R'; riff_signature[1] = 'I'; riff_signature[2] = 'F'; riff_signature[3] = 'F'; webp_signature[0] = 'W'; webp_signature[1] = 'E'; webp_signature[2] = 'B'; webp_signature[3] = 'P'; webp_signature[4] = 'V'; webp_signature[5] = 'P'; webp_signature[6] = '8'; webp_signature[7] = ' '; jp2_big[0] = 0x00; jp2_big[1] = 0x00; jp2_big[2] = 0x00; jp2_big[3] = 0x0C; jp2_big[4] = 0x6A; jp2_big[5] = 0x50; jp2_big[6] = 0x20; jp2_big[7] = 0x20; jp2_big[8] = 0x0D; jp2_big[9] = 0x0A; jp2_big[10] = 0x87; jp2_big[11] = 0x0A; jp2_little[0] = 0x00; jp2_little[1] = 0x00; jp2_little[2] = 0x0c; jp2_little[3] = 0x00; jp2_little[4] = 0x50; jp2_little[5] = 0x6a; jp2_little[6] = 0x20; jp2_little[7] = 0x20; jp2_little[8] = 0x0a; jp2_little[9] = 0x0d; jp2_little[10] = 0x0a; jp2_little[11] = 0x87; if (size < 1 || !blob) return GAIA_HEX_BLOB; if (size > 4) { if (memcmp (blob, tiff_signature_big, 4) == 0) return GAIA_TIFF_BLOB; if (memcmp (blob, tiff_signature_little, 4) == 0) return GAIA_TIFF_BLOB; } if (size > 5) { if (strncmp ((char *) blob, "%PDF-", 5) == 0) return GAIA_PDF_BLOB; } if (size > 4) { if (memcmp (blob, zip_signature, 4) == 0) return GAIA_ZIP_BLOB; } if (size > 6) { if (strncmp ((char *) blob, "GIF87a", 6) == 0 || strncmp ((char *) blob, "GIF89a", 6) == 0) return GAIA_GIF_BLOB; } if (size > 8) { if (memcmp (blob, png_signature, 8) == 0) return GAIA_PNG_BLOB; } if (size > 12) { if (memcmp (blob, jp2_big, 12) == 0) return GAIA_JP2_BLOB; if (memcmp (blob, jp2_little, 12) == 0) return GAIA_JP2_BLOB; } if (size > 4) { if (memcmp (blob, jpeg1_signature, 2) == 0 && memcmp (blob + size - 2, jpeg2_signature, 2) == 0) jpeg = 1; /* this one is the standard JPEG signature */ if (memcmp (blob, jpeg3_signature, 4) == 0) jpeg = 1; /* another common JPEG signature */ } if (size > 10) { if (memcmp (blob + 6, jfif_signature, 4) == 0) jpeg = 1; /* standard JFIF signature */ if (memcmp (blob + 6, exif_signature, 4) == 0) jpeg = 1; /* standard EXIF signature */ } if (jpeg) { exif_list = gaiaGetExifTags (blob, size); if (exif_list) { exif = 1; pT = exif_list->First; while (pT) { if (pT->Gps) { exif_gps = 1; break; } pT = pT->Next; } gaiaExifTagsFree (exif_list); } } if (jpeg && exif && exif_gps) return GAIA_EXIF_GPS_BLOB; if (jpeg && exif) return GAIA_EXIF_BLOB; if (jpeg) return GAIA_JPEG_BLOB; if (size > 16) { if ((memcmp (blob, riff_signature, 4) == 0) && (memcmp (blob + 8, webp_signature, 8) == 0)) return GAIA_WEBP_BLOB; } /* testing for GEOMETRY */ if (size < 45) geom = 0; else { if (*(blob + 0) != GAIA_MARK_START) geom = 0; if (*(blob + (size - 1)) != GAIA_MARK_END) geom = 0; if (*(blob + 38) != GAIA_MARK_MBR) geom = 0; if (*(blob + 1) == 0 || *(blob + 1) == 1) ; else geom = 0; } if (geom) return GAIA_GEOMETRY_BLOB; #ifdef ENABLE_LIBXML2 /* LIBXML2 enabled: supporting XML documents */ if (gaiaIsValidXmlBlob (blob, size)) return GAIA_XML_BLOB; #endif /* end LIBXML2: supporting XML documents */ #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ if (gaiaIsValidGPB (blob, size)) return GAIA_GPB_BLOB; #endif /* end GEOPACKAGE: supporting GPKG geometries */ return GAIA_HEX_BLOB; } GAIAEXIF_DECLARE int gaiaGetGpsCoords (const unsigned char *blob, int size, double *longitude, double *latitude) { /* returns the ExifGps coords, if they exists */ gaiaExifTagListPtr exif_list; gaiaExifTagPtr pT; char lat_ref = '\0'; char long_ref = '\0'; double lat_degs = -DBL_MAX; double lat_mins = -DBL_MAX; double lat_secs = -DBL_MAX; double long_degs = -DBL_MAX; double long_mins = -DBL_MAX; double long_secs = -DBL_MAX; double dblval; double sign; int ok; if (size < 1 || !blob) return 0; exif_list = gaiaGetExifTags (blob, size); if (exif_list) { pT = exif_list->First; while (pT) { if (pT->Gps && pT->TagId == 0x01) { /* ok, this one is the GPSLatitudeRef tag */ if (pT->Type == 2) lat_ref = *(pT->StringValue); } if (pT->Gps && pT->TagId == 0x03) { /* ok, this one is the GPSLongitudeRef tag */ if (pT->Type == 2) long_ref = *(pT->StringValue); } if (pT->Gps && pT->TagId == 0x02) { /* ok, this one is the GPSLatitude tag */ if (pT->Type == 5 && pT->Count == 3) { dblval = gaiaExifTagGetRationalValue (pT, 0, &ok); if (ok) lat_degs = dblval; dblval = gaiaExifTagGetRationalValue (pT, 1, &ok); if (ok) lat_mins = dblval; dblval = gaiaExifTagGetRationalValue (pT, 2, &ok); if (ok) lat_secs = dblval; } } if (pT->Gps && pT->TagId == 0x04) { /* ok, this one is the GPSLongitude tag */ if (pT->Type == 5 && pT->Count == 3) { dblval = gaiaExifTagGetRationalValue (pT, 0, &ok); if (ok) long_degs = dblval; dblval = gaiaExifTagGetRationalValue (pT, 1, &ok); if (ok) long_mins = dblval; dblval = gaiaExifTagGetRationalValue (pT, 2, &ok); if (ok) long_secs = dblval; } } pT = pT->Next; } gaiaExifTagsFree (exif_list); if ((lat_ref == 'N' || lat_ref == 'S' || long_ref == 'E' || long_ref == 'W') && lat_degs != -DBL_MAX && lat_mins != -DBL_MAX && lat_secs != -DBL_MAX && long_degs != -DBL_MAX && long_mins != -DBL_MAX && long_secs != -DBL_MAX) { if (lat_ref == 'S') sign = -1.0; else sign = 1.0; lat_degs = math_round (lat_degs * 1000000.0); lat_mins = math_round (lat_mins * 1000000.0); lat_secs = math_round (lat_secs * 1000000.0); dblval = math_round (lat_degs + (lat_mins / 60.0) + (lat_secs / 3600.0)) * (sign / 1000000.0); *latitude = dblval; if (long_ref == 'W') sign = -1.0; else sign = 1.0; long_degs = math_round (long_degs * 1000000.0); long_mins = math_round (long_mins * 1000000.0); long_secs = math_round (long_secs * 1000000.0); dblval = math_round (long_degs + (long_mins / 60.0) + (long_secs / 3600.0)) * (sign / 1000000.0); *longitude = dblval; return 1; } } return 0; } GAIAEXIF_DECLARE int gaiaGetGpsLatLong (const unsigned char *blob, int size, char *latlong, int ll_size) { /* returns the ExifGps Latitude and Longitude, if they exists */ gaiaExifTagListPtr exif_list; gaiaExifTagPtr pT; char lat_ref = '\0'; char long_ref = '\0'; double lat_degs = -DBL_MAX; double lat_mins = -DBL_MAX; double lat_secs = -DBL_MAX; double long_degs = -DBL_MAX; double long_mins = -DBL_MAX; double long_secs = -DBL_MAX; double dblval; int ok; char ll[1024]; int len; *latlong = '\0'; if (size < 1 || !blob) return 0; exif_list = gaiaGetExifTags (blob, size); if (exif_list) { pT = exif_list->First; while (pT) { if (pT->Gps && pT->TagId == 0x01) { /* ok, this one is the GPSLatitudeRef tag */ if (pT->Type == 2) lat_ref = *(pT->StringValue); } if (pT->Gps && pT->TagId == 0x03) { /* ok, this one is the GPSLongitudeRef tag */ if (pT->Type == 2) long_ref = *(pT->StringValue); } if (pT->Gps && pT->TagId == 0x02) { /* ok, this one is the GPSLatitude tag */ if (pT->Type == 5 && pT->Count == 3) { dblval = gaiaExifTagGetRationalValue (pT, 0, &ok); if (ok) lat_degs = dblval; dblval = gaiaExifTagGetRationalValue (pT, 1, &ok); if (ok) lat_mins = dblval; dblval = gaiaExifTagGetRationalValue (pT, 2, &ok); if (ok) lat_secs = dblval; } } if (pT->Gps && pT->TagId == 0x04) { /* ok, this one is the GPSLongitude tag */ if (pT->Type == 5 && pT->Count == 3) { dblval = gaiaExifTagGetRationalValue (pT, 0, &ok); if (ok) long_degs = dblval; dblval = gaiaExifTagGetRationalValue (pT, 1, &ok); if (ok) long_mins = dblval; dblval = gaiaExifTagGetRationalValue (pT, 2, &ok); if (ok) long_secs = dblval; } } pT = pT->Next; } gaiaExifTagsFree (exif_list); if ((lat_ref == 'N' || lat_ref == 'S' || long_ref == 'E' || long_ref == 'W') && lat_degs != -DBL_MAX && lat_mins != -DBL_MAX && lat_secs != -DBL_MAX && long_degs != -DBL_MAX && long_mins != -DBL_MAX && long_secs != -DBL_MAX) { sprintf (ll, "%c %1.2f %1.2f %1.2f / %c %1.2f %1.2f %1.2f", lat_ref, lat_degs, lat_mins, lat_secs, long_ref, long_degs, long_mins, long_secs); len = strlen (ll); if (len < ll_size) strcpy (latlong, ll); else { memcpy (latlong, ll, ll_size - 1); latlong[ll_size] = '\0'; } return 1; } } return 0; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiaexif/Makefile.am�������������������������������������������������������0000664�0001750�0001750�00000000672�12544707704�016047� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ AM_CPPFLAGS = @CFLAGS@ AM_CPPFLAGS += -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libgaiaexif.la gaiaexif.la libgaiaexif_la_SOURCES = gaia_exif.c gaiaexif_la_SOURCES = gaia_exif.c gaiaexif_la_CPPFLAGS = @CFLAGS@ gaiaexif_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. gaiaexif_la_CPPFLAGS += -DLOADABLE_EXTENSION gaiaexif_la_LDFLAGS = -module gaiaexif_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda ����������������������������������������������������������������������libspatialite-4.3.0a/src/gaiaaux/�������������������������������������������������������������������0000775�0001750�0001750�00000000000�12573314325�013723� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiaaux/Makefile.in��������������������������������������������������������0000664�0001750�0001750�00000051365�12573313636�015726� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/gaiaaux ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) gaiaaux_la_LIBADD = am__objects_1 = gaiaaux_la-gg_sqlaux.lo gaiaaux_la-gg_utf8.lo am_gaiaaux_la_OBJECTS = $(am__objects_1) gaiaaux_la_OBJECTS = $(am_gaiaaux_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = gaiaaux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(gaiaaux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(gaiaaux_la_LDFLAGS) $(LDFLAGS) -o $@ libgaiaaux_la_LIBADD = am__objects_2 = gg_sqlaux.lo gg_utf8.lo am_libgaiaaux_la_OBJECTS = $(am__objects_2) libgaiaaux_la_OBJECTS = $(am_libgaiaaux_la_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(gaiaaux_la_SOURCES) $(libgaiaaux_la_SOURCES) DIST_SOURCES = $(gaiaaux_la_SOURCES) $(libgaiaaux_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libgaiaaux.la gaiaaux.la GAIAAUX_COMMON_SOURCES = gg_sqlaux.c gg_utf8.c libgaiaaux_la_SOURCES = $(GAIAAUX_COMMON_SOURCES) gaiaaux_la_SOURCES = $(GAIAAUX_COMMON_SOURCES) gaiaaux_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ -DLOADABLE_EXTENSION gaiaaux_la_LDFLAGS = -module gaiaaux_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gaiaaux/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/gaiaaux/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } gaiaaux.la: $(gaiaaux_la_OBJECTS) $(gaiaaux_la_DEPENDENCIES) $(EXTRA_gaiaaux_la_DEPENDENCIES) $(AM_V_CCLD)$(gaiaaux_la_LINK) $(gaiaaux_la_OBJECTS) $(gaiaaux_la_LIBADD) $(LIBS) libgaiaaux.la: $(libgaiaaux_la_OBJECTS) $(libgaiaaux_la_DEPENDENCIES) $(EXTRA_libgaiaaux_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) $(libgaiaaux_la_OBJECTS) $(libgaiaaux_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiaaux_la-gg_sqlaux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gaiaaux_la-gg_utf8.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_sqlaux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gg_utf8.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< gaiaaux_la-gg_sqlaux.lo: gg_sqlaux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiaaux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiaaux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiaaux_la-gg_sqlaux.lo -MD -MP -MF $(DEPDIR)/gaiaaux_la-gg_sqlaux.Tpo -c -o gaiaaux_la-gg_sqlaux.lo `test -f 'gg_sqlaux.c' || echo '$(srcdir)/'`gg_sqlaux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiaaux_la-gg_sqlaux.Tpo $(DEPDIR)/gaiaaux_la-gg_sqlaux.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_sqlaux.c' object='gaiaaux_la-gg_sqlaux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiaaux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiaaux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiaaux_la-gg_sqlaux.lo `test -f 'gg_sqlaux.c' || echo '$(srcdir)/'`gg_sqlaux.c gaiaaux_la-gg_utf8.lo: gg_utf8.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiaaux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiaaux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gaiaaux_la-gg_utf8.lo -MD -MP -MF $(DEPDIR)/gaiaaux_la-gg_utf8.Tpo -c -o gaiaaux_la-gg_utf8.lo `test -f 'gg_utf8.c' || echo '$(srcdir)/'`gg_utf8.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gaiaaux_la-gg_utf8.Tpo $(DEPDIR)/gaiaaux_la-gg_utf8.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gg_utf8.c' object='gaiaaux_la-gg_utf8.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(gaiaaux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gaiaaux_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gaiaaux_la-gg_utf8.lo `test -f 'gg_utf8.c' || echo '$(srcdir)/'`gg_utf8.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir 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-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiaaux/gg_sqlaux.c��������������������������������������������������������0000664�0001750�0001750�00000062641�12544707704�016017� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_sqlaux.c -- SQL ancillary functions version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <sys/types.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <math.h> #include <ctype.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite/sqlite.h> #include <spatialite/gaiaaux.h> #include <spatialite_private.h> #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ /* 64 bit integer: portable format for printf() */ #if defined(_WIN32) && !defined(__MINGW32__) #define FRMT64 "%I64d" #else #define FRMT64 "%lld" #endif GAIAAUX_DECLARE int gaiaIllegalSqlName (const char *name) { /* checks if column-name is an SQL illegal name */ int i; int len; if (!name) return 1; len = strlen (name); if (len == 0) return 1; for (i = 0; i < len; i++) { if (name[i] >= 'a' && name[i] <= 'z') continue; if (name[i] >= 'A' && name[i] <= 'Z') continue; if (name[i] >= '0' && name[i] <= '9') continue; if (name[i] == '_') continue; /* the name contains an illegal char */ return 1; } if (name[0] >= 'a' && name[0] <= 'z') return 0; if (name[0] >= 'A' && name[0] <= 'Z') return 0; /* the first char in the name isn't a letter */ return 1; } GAIAAUX_DECLARE int gaiaIsReservedSqliteName (const char *name) { /* checks if column-name is an SQLite reserved keyword */ char *reserved[] = { "ALL", "ALTER", "AND", "AS", "AUTOINCREMENT", "BETWEEN", "BLOB", "BY", "CASE", "CHECK", "COLLATE", "COMMIT", "CONSTRAINT", "CREATE", "CROSS", "DATE", "DATETIME", "DEFAULT", "DEFERRABLE", "DELETE", "DISTINCT", "DOUBLE", "DROP", "ELSE", "ESCAPE", "EXCEPT", "FOREIGN", "FROM", "FULL", "GLOB", "GROUP", "HAVING", "IN", "INDEX", "INNER", "INSERT", "INTEGER", "INTERSECT", "INTO", "IS", "ISNULL", "JOIN", "KEY", "LEFT", "LIKE", "LIMIT", "MATCH", "NATURAL", "NOT", "NOTNULL", "NULL", "ON", "OR", "ORDER", "OUTER", "PRAGMA", "PRIMARY", "REFERENCES", "REPLACE", "RIGHT", "ROLLBACK", "SELECT", "SET", "TABLE", "TEMP", "TEMPORARY", "THEN", "TEXT", "TIMESTAMP", "TO", "TRANSACTION", "UNION", "UNIQUE", "UPDATE", "USING", "VALUES", "VIEW", "WHEN", "WHERE", NULL }; char **pw = reserved; while (*pw != NULL) { if (strcasecmp (name, *pw) == 0) return 1; pw++; } return 0; } GAIAAUX_DECLARE int gaiaIsReservedSqlName (const char *name) { /* checks if column-name is an SQL reserved keyword */ char *reserved[] = { "ABSOLUTE", "ACTION", "ADD", "AFTER", "ALL", "ALLOCATE", "ALTER", "AND", "ANY", "ARE", "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", "ASYMMETRIC", "AT", "ATOMIC", "AUTHORIZATION", "AVG", "BEFORE", "BEGIN", "BETWEEN", "BIGINT", "BINARY", "BIT", "BIT_LENGTH", "BLOB", "BOOLEAN", "BOTH", "BREADTH", "BY", "CALL", "CALLED", "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG", "CHAR", "CHARACTER", "CHARACTER_LENGTH", "CHAR_LENGTH", "CHECK", "CLOB", "CLOSE", "COALESCE", "COLLATE", "COLLATION", "COLUMN", "COMMIT", "CONDITION", "CONNECT", "CONNECTION", "CONSTRAINT", "CONSTRAINTS", "CONSTRUCTOR", "CONTAINS", "CONTINUE", "CONVERT", "CORRESPONDING", "COUNT", "CREATE", "CROSS", "CUBE", "CURRENT", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP", "CURRENT_PATH", "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", "CURRENT_USER", "CURSOR", "CYCLE", "DATA", "DATE", "DAY", "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFERRABLE", "DEFERRED", "DELETE", "DEPTH", "DEREF", "DESC", "DESCRIBE", "DESCRIPTOR", "DETERMINISTIC", "DIAGNOSTICS", "DISCONNECT", "DISTINCT", "DO", "DOMAIN", "DOUBLE", "DROP", "DYNAMIC", "EACH", "ELEMENT", "ELSE", "ELSEIF", "END", "EQUALS", "ESCAPE", "EXCEPT", "EXCEPTION", "EXEC", "EXECUTE", "EXISTS", "EXIT", "external", "EXTRACT", "FALSE", "FETCH", "FILTER", "FIRST", "FLOAT", "FOR", "FOREIGN", "FOUND", "FREE", "FROM", "FULL", "FUNCTION", "GENERAL", "GET", "GLOBAL", "GO", "GOTO", "GRANT", "GROUP", "GROUPING", "HANDLER", "HAVING", "HOLD", "HOUR", "IDENTITY", "IF", "IMMEDIATE", "IN", "INDICATOR", "INITIALLY", "INNER", "INOUT", "INPUT", "INSENSITIVE", "INSERT", "INT", "INTEGER", "INTERSECT", "INTERVAL", "INTO", "IS", "ISOLATION", "ITERATE", "JOIN", "KEY", "LANGUAGE", "LARGE", "LAST", "LATERAL", "LEADING", "LEAVE", "LEFT", "LEVEL", "LIKE", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", "LOCATOR", "LOOP", "LOWER", "MAP", "MATCH", "MAX", "MEMBER", "MERGE", "METHOD", "MIN", "MINUTE", "MODIFIES", "MODULE", "MONTH", "MULTISET", "NAMES", "NATIONAL", "NATURAL", "NCHAR", "NCLOB", "NEW", "NEXT", "NO", "NONE", "NOT", "NULL", "NULLIF", "NUMERIC", "OBJECT", "OCTET_LENGTH", "OF", "OLD", "ON", "ONLY", "OPEN", "OPTION", "OR", "ORDER", "ORDINALITY", "OUT", "OUTER", "OUTPUT", "OVER", "OVERLAPS", "PAD", "PARAMETER", "PARTIAL", "PARTITION", "PATH", "POSITION", "PRECISION", "PREPARE", "PRESERVE", "PRIMARY", "PRIOR", "PRIVILEGES", "PROCEDURE", "PUBLIC", "RANGE", "READ", "READS", "REAL", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", "RELATIVE", "RELEASE", "REPEAT", "RESIGNAL", "RESTRICT", "RESULT", "RETURN", "RETURNS", "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", "ROUTINE", "ROW", "ROWS", "SAVEPOINT", "SCHEMA", "SCOPE", "SCROLL", "SEARCH", "SECOND", "SECTION", "SELECT", "SENSITIVE", "SESSION", "SESSION_USER", "SET", "SETS", "SIGNAL", "SIMILAR", "SIZE", "SMALLINT", "SOME", "SPACE", "SPECIFIC", "SPECIFICTYPE", "SQL", "SQLCODE", "SQLERROR", "SQLEXCEPTION", "SQLSTATE", "SQLWARNING", "START", "STATE", "STATIC", "SUBMULTISET", "SUBSTRING", "SUM", "SYMMETRIC", "SYSTEM", "SYSTEM_USER", "TABLE", "TABLESAMPLE", "TEMPORARY", "THEN", "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TO", "TRAILING", "TRANSACTION", "TRANSLATE", "TRANSLATION", "TREAT", "TRIGGER", "TRIM", "TRUE", "UNDER", "UNDO", "UNION", "UNIQUE", "UNKNOWN", "UNNEST", "UNTIL", "UPDATE", "UPPER", "USAGE", "USER", "USING", "VALUE", "VALUES", "VARCHAR", "VARYING", "VIEW", "WHEN", "WHENEVER", "WHERE", "WHILE", "WINDOW", "WITH", "WITHIN", "WITHOUT", "WORK", "WRITE", "YEAR", "ZONE", NULL }; char **pw = reserved; while (*pw != NULL) { if (strcasecmp (name, *pw) == 0) return 1; pw++; } return 0; } GAIAAUX_DECLARE char * gaiaDequotedSql (const char *value) { /* / returns a well formatted TEXT value from SQL / 1] if the input string begins and ends with ' sigle quote will be the target / 2] if the input string begins and ends with " double quote will be the target / 3] in any othet case the string will simply be copied */ const char *pi = value; const char *start; const char *end; char *clean; char *po; int len; char target; int mark = 0; if (value == NULL) return NULL; len = strlen (value); clean = malloc (len + 1); if (*(value + 0) == '"' && *(value + len - 1) == '"') target = '"'; else if (*(value + 0) == '\'' && *(value + len - 1) == '\'') target = '\''; else { /* no dequoting; simply copying */ strcpy (clean, value); return clean; } start = value; end = value + len - 1; po = clean; while (*pi != '\0') { if (mark) { if (*pi == target) { *po++ = *pi++; mark = 0; continue; } else { /* error: mismatching quote */ free (clean); return NULL; } } if (*pi == target) { if (pi == start || pi == end) { /* first or last char */ pi++; continue; } /* found a quote marker */ mark = 1; pi++; continue; } *po++ = *pi++; } *po = '\0'; return clean; } GAIAAUX_DECLARE char * gaiaQuotedSql (const char *value, int quote) { /* / returns a well formatted TEXT value for SQL / 1] strips trailing spaces / 2] masks any QUOTE inside the string, appending another QUOTE / 3] works for both SINGLE- and DOUBLE-QUOTE */ const char *p_in; const char *p_end; char qt; char *out; char *p_out; int len = 0; int i; if (!value) return NULL; if (quote == GAIA_SQL_SINGLE_QUOTE) qt = '\''; else if (quote == GAIA_SQL_DOUBLE_QUOTE) qt = '"'; else return NULL; p_end = value; for (i = (strlen (value) - 1); i >= 0; i--) { /* stripping trailing spaces */ p_end = value + i; if (value[i] != ' ') break; } p_in = value; while (p_in <= p_end) { /* computing the output length */ len++; if (*p_in == qt) len++; p_in++; } if (len == 1 && *value == ' ') { /* empty string */ len = 0; } out = malloc (len + 1); if (!out) return NULL; if (len == 0) { /* empty string */ *out = '\0'; return out; } p_out = out; p_in = value; while (p_in <= p_end) { /* creating the output string */ if (*p_in == qt) *p_out++ = qt; *p_out++ = *p_in++; } *p_out = '\0'; return out; } GAIAAUX_DECLARE char * gaiaSingleQuotedSql (const char *value) { /* convenience method supporting SINGLE-QUOTES */ return gaiaQuotedSql (value, GAIA_SQL_SINGLE_QUOTE); } GAIAAUX_DECLARE char * gaiaDoubleQuotedSql (const char *value) { /* convenience method supporting DOUBLE-QUOTES */ return gaiaQuotedSql (value, GAIA_SQL_DOUBLE_QUOTE); } GAIAAUX_DECLARE void gaiaCleanSqlString (char *value) { /* / returns a well formatted TEXT value for SQL / 1] strips trailing spaces / 2] masks any ' inside the string, appending another ' */ char new_value[1024]; char *p; int len; int i; len = strlen (value); for (i = (len - 1); i >= 0; i--) { /* stripping trailing spaces */ if (value[i] == ' ') value[i] = '\0'; else break; } p = new_value; for (i = 0; i < len; i++) { if (value[i] == '\'') *(p++) = '\''; *(p++) = value[i]; } *p = '\0'; strcpy (value, new_value); } GAIAAUX_DECLARE void gaiaInsertIntoSqlLog (sqlite3 * sqlite, const char *user_agent, const char *utf8Sql, sqlite3_int64 * sqllog_pk) { /* inserting an event into the SQL Log */ char *sql_statement; int ret; *sqllog_pk = -1; if (checkSpatialMetaData (sqlite) != 3) { /* CURRENT db-schema (>= 4.0.0) required */ return; } sql_statement = sqlite3_mprintf ("INSERT INTO sql_statements_log " "(id, time_start, user_agent, sql_statement) VALUES (" "NULL, strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), %Q, %Q)", user_agent, utf8Sql); ret = sqlite3_exec (sqlite, sql_statement, NULL, 0, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return; *sqllog_pk = sqlite3_last_insert_rowid (sqlite); } GAIAAUX_DECLARE void gaiaUpdateSqlLog (sqlite3 * sqlite, sqlite3_int64 sqllog_pk, int success, const char *errMsg) { /* completing an event already inserted into the SQL Log */ char *sql_statement; char dummy[64]; if (checkSpatialMetaData (sqlite) != 3) { /* CURRENT db-schema (>= 4.0.0) required */ return; } sprintf (dummy, FRMT64, sqllog_pk); if (success) { sql_statement = sqlite3_mprintf ("UPDATE sql_statements_log SET " "time_end = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), " "success = 1, error_cause = 'success' WHERE id = %s", dummy); } else { sql_statement = sqlite3_mprintf ("UPDATE sql_statements_log SET " "time_end = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), " "success = 0, error_cause = %Q WHERE id = %s", (errMsg == NULL) ? "UNKNOWN" : errMsg, dummy); } sqlite3_exec (sqlite, sql_statement, NULL, 0, NULL); sqlite3_free (sql_statement); } static void consume_blank (const char *p_start, const char **p_end) { /* consuming blanks */ const char *p = p_start; while (1) { if (*p == ' ' || *p == '\t') { p++; continue; } else { *p_end = p; return; } } } static int check_deg_delimiter (const char *p_start, const char **p_end) { /* testing a "degrees" delimiter/qualifier */ unsigned char ctrl1; unsigned char ctrl2; if (*p_start == 'd') { *p_end = p_start + 1; return 1; } ctrl1 = *(p_start + 0); ctrl2 = *(p_start + 1); if (ctrl1 == 0xc2 && ctrl2 == 0xb0) { *p_end = p_start + 2; return 1; } return 0; } static int check_min_delimiter (const char *p_start, const char **p_end) { /* testing a "minutes" delimiter/qualifier */ unsigned char ctrl1; unsigned char ctrl2; unsigned char ctrl3; if (*p_start == '\'') { *p_end = p_start + 1; return 1; } ctrl1 = *(p_start + 0); ctrl2 = *(p_start + 1); ctrl3 = *(p_start + 2); if (ctrl1 == 0xe2 && ctrl2 == 0x80 && ctrl3 == 0xb2) { *p_end = p_start + 3; return 1; } return 0; } static int check_sec_delimiter (const char *p_start, const char **p_end) { /* testing a "seconds" delimiter/qualifier */ unsigned char ctrl1; unsigned char ctrl2; unsigned char ctrl3; if (*p_start == '"') { *p_end = p_start + 1; return 1; } ctrl1 = *(p_start + 0); ctrl2 = *(p_start + 1); ctrl3 = *(p_start + 2); if (ctrl1 == 0xe2 && ctrl2 == 0x80 && ctrl3 == 0xb3) { *p_end = p_start + 3; return 1; } return 0; } static void consume_int (const char *p_start, const char **p_end, int *value) { /* consuming an integer value */ char *buf; int len = 0; const char *p = p_start; while (1) { if (*p >= '0' && *p <= '9') { len++; p++; continue; } else { *p_end = p; break; } } if (len == 0) { *value = 181; return; } buf = malloc (len + 1); memcpy (buf, p_start, len); *(buf + len) = '\0'; *value = atoi (buf); free (buf); } static void consume_float (const char *p_start, const char **p_end, double *value) { /* consuming a double value */ char *buf; int pt = 0; int len = 0; const char *p = p_start; while (1) { if (*p >= '0' && *p <= '9') { len++; p++; continue; } else if (*p == '.' || *p == ',') { len++; pt++; p++; continue; } else { *p_end = p; break; } } if (len == 0 || pt > 1) { *value = 61.0; return; } buf = malloc (len + 1); memcpy (buf, p_start, len); *(buf + len) = '\0'; *value = atof (buf); free (buf); } GAIAAUX_DECLARE int gaiaParseDMS (const char *dms, double *longitude, double *latitude) { /* attempting to parse a DMS string */ double lg; double lt; int lat_d; int lat_m; double lat_s; char lat_prefix = '\0'; int long_d; int long_m; double long_s; char long_prefix = '\0'; const char *p = dms; const char *p_end; if (dms == NULL) return 0; /* attempting to parse the latitude */ consume_blank (p, &p_end); p = p_end; if (*p == 'S' || *p == 'N') { lat_prefix = *p; p++; consume_blank (p, &p_end); p = p_end; } if (*p >= '0' && *p <= '9') { consume_int (p, &p_end, &lat_d); if (lat_d < 0 && lat_d > 90) return 0; p = p_end; } else return 0; consume_blank (p, &p_end); p = p_end; if (check_deg_delimiter (p, &p_end)) p = p_end; else return 0; consume_blank (p, &p_end); p = p_end; if (*p >= '0' && *p <= '9') { consume_int (p, &p_end, &lat_m); if (lat_m < 0 && lat_m >= 60) return 0; p = p_end; } else return 0; consume_blank (p, &p_end); p = p_end; if (check_min_delimiter (p, &p_end)) p = p_end; else return 0; consume_blank (p, &p_end); p = p_end; if (*p >= '0' && *p <= '9') { consume_float (p, &p_end, &lat_s); if (lat_s < 0.0 && lat_s >= 60.0) return 0; p = p_end; } else return 0; consume_blank (p, &p_end); p = p_end; if (check_sec_delimiter (p, &p_end)) p = p_end; else return 0; consume_blank (p, &p_end); p = p_end; if (lat_prefix == '\0') { /* attempting to retrieve the prefix */ if (*p == 'S' || *p == 'N') { lat_prefix = *p; p++; } else return 0; } lt = (double) lat_d + ((double) lat_m / 60.0) + (lat_s / 3600.0); if (lat_prefix == 'S') lt *= -1.0; if (lt < -90.0 || lt > 90.0) return 0; /* attempting to parse the longitude */ consume_blank (p, &p_end); p = p_end; if (*p == 'E' || *p == 'W') { long_prefix = *p; p++; consume_blank (p, &p_end); p = p_end; } if (*p >= '0' && *p <= '9') { consume_int (p, &p_end, &long_d); if (long_d < 0 && long_d > 90) return 0; p = p_end; } else return 0; consume_blank (p, &p_end); p = p_end; if (check_deg_delimiter (p, &p_end)) p = p_end; else return 0; consume_blank (p, &p_end); p = p_end; if (*p >= '0' && *p <= '9') { consume_int (p, &p_end, &long_m); if (long_m < 0 && long_m >= 60) return 0; p = p_end; } else return 0; consume_blank (p, &p_end); p = p_end; if (check_min_delimiter (p, &p_end)) p = p_end; else return 0; consume_blank (p, &p_end); p = p_end; if (*p >= '0' && *p <= '9') { consume_float (p, &p_end, &long_s); if (long_s < 0.0 && long_s >= 60.0) return 0; p = p_end; } else return 0; consume_blank (p, &p_end); p = p_end; if (check_sec_delimiter (p, &p_end)) p = p_end; else return 0; consume_blank (p, &p_end); p = p_end; if (long_prefix == '\0') { /* attempting to retrieve the prefix */ if (*p == 'E' || *p == 'W') { long_prefix = *p; p++; } else return 0; } lg = (double) long_d + ((double) long_m / 60.0) + (long_s / 3600.0); if (long_prefix == 'W') lg *= -1.0; if (lg < -180.0 || lg > 180.0) return 0; *longitude = lg; *latitude = lt; return 1; } GAIAAUX_DECLARE char * gaiaConvertToDMS (double longitude, double latitude) { /* formatting a DMS string */ char *dms0; char *dms; char long_prefix = 'E'; char lat_prefix = 'N'; int long_d; int long_m; int long_s; int lat_d; int lat_m; int lat_s; double val; int len; if (longitude < -180.0 || longitude > 180.0) return NULL; if (latitude < -90.0 || latitude > 90.0) return NULL; if (longitude < 0.0) { long_prefix = 'W'; longitude *= -1.0; } if (latitude < 0.0) { lat_prefix = 'S'; latitude *= -1.0; } long_d = (int) floor (longitude); val = 60.0 * (longitude - (double) long_d); long_m = (int) floor (val); val = 60.0 * (val - (double) long_m); long_s = (int) floor (val); if ((val - (double) long_s) > 0.5) long_s++; lat_d = (int) floor (latitude); val = 60.0 * (latitude - (double) lat_d); lat_m = (int) floor (val); val = 60.0 * (val - (double) lat_m); lat_s = (int) floor (val); if ((val - (double) lat_s) > 0.5) lat_s++; dms0 = sqlite3_mprintf ("%02d°%02d′%02d″%c %03d°%02d′%02d″%c", lat_d, lat_m, lat_s, lat_prefix, long_d, long_m, long_s, long_prefix); len = strlen (dms0); dms = malloc (len + 1); strcpy (dms, dms0); sqlite3_free (dms0); return dms; } /********************************************************************* / / DISCLAIMER / / the following code implementation (URL percent-encoding/-decoding) / simply is a rearranged adaption of this original code released / into the Public Domain: / / http://www.geekhideout.com/urlcode.shtml / *********************************************************************/ static char url_to_hex (char code) { static char hex[] = "0123456789abcdef"; return hex[code & 15]; } GAIAAUX_DECLARE char * gaiaEncodeURL (const char *url) { /* encoding some URL */ char *encoded = NULL; const char *in = url; char *out; int len; if (url == NULL) return NULL; len = strlen (url); if (len == 0) return NULL; encoded = malloc ((len * 3) + 1); out = encoded; while (*in != '\0') { if (isalnum (*in) || *in == '-' || *in == '_' || *in == '.' || *in == '~') *out++ = *in; else if (*in == ' ') *out++ = '+'; else { *out++ = '%'; *out++ = url_to_hex (*in >> 4); *out++ = url_to_hex (*in & 15); } in++; } *out = '\0'; return encoded; } static char url_from_hex (char ch) { return isdigit (ch) ? ch - '0' : tolower (ch) - 'a' + 10; } GAIAAUX_DECLARE char * gaiaDecodeURL (const char *encoded) { /* decoding some URL */ char *url = NULL; const char *in = encoded; char *out; int len; if (encoded == NULL) return NULL; len = strlen (encoded); if (len == 0) return NULL; url = malloc (len + 1); out = url; while (*in != '\0') { if (*in == '%') { if (*(in + 1) && *(in + 2)) { *out++ = url_from_hex (*(in + 1)) << 4 | url_from_hex (*(in + 2)); in += 2; } } else if (*in == '+') *out++ = ' '; else *out++ = *in; in++; } *out = '\0'; return url; } GAIAAUX_DECLARE char * gaiaDirNameFromPath (const char *path) { /* extracting the DirName (if any) from a Path */ const char *in = path; const char *last = NULL; int len = 0; int dirlen; char *name; if (path == NULL) return NULL; while (*in != '\0') { /* parsing the Path */ len++; if (*in == '/' || *in == '\\') { last = in; dirlen = len; } in++; } if (last == NULL) return NULL; /* there is no Dir component */ /* allocating the DirName to be returned */ name = malloc (dirlen + 1); memcpy (name, path, dirlen); *(name + dirlen) = '\0'; return name; } GAIAAUX_DECLARE char * gaiaFullFileNameFromPath (const char *path) { /* extracting the FullFileName (including Extension) from a Path */ const char *in = path; const char *last = path - 1; int len; char *name; if (path == NULL) return NULL; while (*in != '\0') { /* parsing the Path */ if (*in == '/' || *in == '\\') last = in; in++; } len = strlen (last + 1); if (len == 0) return NULL; /* allocating the FullFileName to be returned */ name = malloc (len + 1); strcpy (name, last + 1); return name; } GAIAAUX_DECLARE char * gaiaFileNameFromPath (const char *path) { /* extracting the FileName (excluding Extension) from a Path */ const char *in = path; const char *last = path - 1; int len; char *name; int i; if (path == NULL) return NULL; while (*in != '\0') { /* parsing the Path */ if (*in == '/' || *in == '\\') last = in; in++; } len = strlen (last + 1); if (len == 0) return NULL; /* allocating the FullFileName to be returned */ name = malloc (len + 1); strcpy (name, last + 1); for (i = len - 1; i > 0; i--) { if (*(name + i) == '.') { /* stripping out the extension */ *(name + i) = '\0'; break; } } return name; } GAIAAUX_DECLARE char * gaiaFileExtFromPath (const char *path) { /* extracting the FileExtension (if any) from a Path */ int len; char *name; int i; int pos = -1; if (path == NULL) return NULL; len = strlen (path); for (i = len - 1; i > 0; i--) { if (*(path + i) == '/' || *(path + i) == '\\') break; if (*(path + i) == '.') { /* found an extension */ pos = i; break; } } if (pos <= 0) return NULL; /* allocating the FileExtension to be returned */ len = strlen (path + pos + 1); if (len == 0) return NULL; name = malloc (len + 1); strcpy (name, path + pos + 1); return name; } �����������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/gaiaaux/Makefile.am��������������������������������������������������������0000664�0001750�0001750�00000000775�12544707704�015715� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ AM_CPPFLAGS = @CFLAGS@ AM_CPPFLAGS += -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libgaiaaux.la gaiaaux.la GAIAAUX_COMMON_SOURCES = gg_sqlaux.c gg_utf8.c libgaiaaux_la_SOURCES = $(GAIAAUX_COMMON_SOURCES) gaiaaux_la_SOURCES = $(GAIAAUX_COMMON_SOURCES) gaiaaux_la_CPPFLAGS = @CFLAGS@ gaiaaux_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. gaiaaux_la_CPPFLAGS += -DLOADABLE_EXTENSION gaiaaux_la_LDFLAGS = -module gaiaaux_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda ���libspatialite-4.3.0a/src/gaiaaux/gg_utf8.c����������������������������������������������������������0000664�0001750�0001750�00000011561�12544707704�015363� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* gg_utf8.c -- locale charset handling version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <sys/types.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <errno.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #if OMIT_ICONV == 0 /* ICONV is absolutely required */ #if defined(__MINGW32__) || defined(_WIN32) #define LIBICONV_STATIC #include <iconv.h> #define LIBCHARSET_STATIC #ifdef _MSC_VER /* <localcharset.h> isn't supported on OSGeo4W */ /* applying a tricky workaround to fix this issue */ extern const char *locale_charset (void); #else /* sane Windows - not OSGeo4W */ #include <localcharset.h> #endif /* end localcharset */ #else /* not MINGW32 - WIN32 */ #if defined(__APPLE__) || defined(__ANDROID__) #include <iconv.h> #include <localcharset.h> #else /* neither Mac OsX nor Android */ #include <iconv.h> #include <langinfo.h> #endif #endif #include <spatialite/sqlite.h> #include <spatialite/gaiaaux.h> GAIAAUX_DECLARE const char * gaiaGetLocaleCharset () { /* identifies the locale charset */ #if defined(__MINGW32__) || defined(_WIN32) return locale_charset (); #else /* not MINGW32 - WIN32 */ #if defined(__APPLE__) || defined(__ANDROID__) return locale_charset (); #else /* neither Mac OsX nor Android */ return nl_langinfo (CODESET); #endif #endif } GAIAAUX_DECLARE int gaiaConvertCharset (char **buf, const char *fromCs, const char *toCs) { /* converting a string from a charset to another "on-the-fly" */ char utf8buf[65536]; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else /* not WIN32 */ char *pBuf; #endif size_t len; size_t utf8len; char *pUtf8buf; iconv_t cvt = iconv_open (toCs, fromCs); if (cvt == (iconv_t) (-1)) goto unsupported; len = strlen (*buf); utf8len = 65536; pBuf = *buf; pUtf8buf = utf8buf; if (iconv (cvt, &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) goto error; utf8buf[65536 - utf8len] = '\0'; memcpy (*buf, utf8buf, (65536 - utf8len) + 1); iconv_close (cvt); return 1; error: iconv_close (cvt); unsupported: return 0; } GAIAAUX_DECLARE void * gaiaCreateUTF8Converter (const char *fromCS) { /* creating a UTF8 converter and returning an opaque reference to it */ iconv_t cvt = iconv_open ("UTF-8", fromCS); if (cvt == (iconv_t) (-1)) return NULL; return cvt; } GAIAAUX_DECLARE void gaiaFreeUTF8Converter (void *cvtCS) { /* destroying a UTF8 converter */ if (cvtCS) iconv_close (cvtCS); } GAIAAUX_DECLARE char * gaiaConvertToUTF8 (void *cvtCS, const char *buf, int buflen, int *err) { /* converting a string to UTF8 */ char *utf8buf = 0; #if !defined(__MINGW32__) && defined(_WIN32) const char *pBuf; #else char *pBuf; #endif size_t len; size_t utf8len; int maxlen = buflen * 4; char *pUtf8buf; *err = 0; if (!cvtCS) { *err = 1; return NULL; } utf8buf = malloc (maxlen); len = buflen; utf8len = maxlen; pBuf = (char *) buf; pUtf8buf = utf8buf; if (iconv (cvtCS, &pBuf, &len, &pUtf8buf, &utf8len) == (size_t) (-1)) { free (utf8buf); *err = 1; return NULL; } utf8buf[maxlen - utf8len] = '\0'; return utf8buf; } #endif /* ICONV enabled/disabled */ �����������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/shapefiles/����������������������������������������������������������������0000775�0001750�0001750�00000000000�12573314326�014430� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/shapefiles/Makefile.in�����������������������������������������������������0000664�0001750�0001750�00000051604�12573313636�016426� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/shapefiles ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libshapefiles_la_LIBADD = am_libshapefiles_la_OBJECTS = shapefiles.lo validator.lo libshapefiles_la_OBJECTS = $(am_libshapefiles_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = shapefiles_la_LIBADD = am_shapefiles_la_OBJECTS = shapefiles_la-shapefiles.lo \ shapefiles_la-validator.lo shapefiles_la_OBJECTS = $(am_shapefiles_la_OBJECTS) shapefiles_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(shapefiles_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(shapefiles_la_LDFLAGS) \ $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libshapefiles_la_SOURCES) $(shapefiles_la_SOURCES) DIST_SOURCES = $(libshapefiles_la_SOURCES) $(shapefiles_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libshapefiles.la shapefiles.la libshapefiles_la_SOURCES = shapefiles.c validator.c shapefiles_la_SOURCES = shapefiles.c validator.c shapefiles_la_CPPFLAGS = @CFLAGS@ -I$(top_srcdir)/src/headers -I. \ -DLOADABLE_EXTENSION shapefiles_la_LDFLAGS = -module shapefiles_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/shapefiles/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/shapefiles/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libshapefiles.la: $(libshapefiles_la_OBJECTS) $(libshapefiles_la_DEPENDENCIES) $(EXTRA_libshapefiles_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) $(libshapefiles_la_OBJECTS) $(libshapefiles_la_LIBADD) $(LIBS) shapefiles.la: $(shapefiles_la_OBJECTS) $(shapefiles_la_DEPENDENCIES) $(EXTRA_shapefiles_la_DEPENDENCIES) $(AM_V_CCLD)$(shapefiles_la_LINK) $(shapefiles_la_OBJECTS) $(shapefiles_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shapefiles.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shapefiles_la-shapefiles.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shapefiles_la-validator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/validator.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< shapefiles_la-shapefiles.lo: shapefiles.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(shapefiles_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shapefiles_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shapefiles_la-shapefiles.lo -MD -MP -MF $(DEPDIR)/shapefiles_la-shapefiles.Tpo -c -o shapefiles_la-shapefiles.lo `test -f 'shapefiles.c' || echo '$(srcdir)/'`shapefiles.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/shapefiles_la-shapefiles.Tpo $(DEPDIR)/shapefiles_la-shapefiles.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shapefiles.c' object='shapefiles_la-shapefiles.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(shapefiles_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shapefiles_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shapefiles_la-shapefiles.lo `test -f 'shapefiles.c' || echo '$(srcdir)/'`shapefiles.c shapefiles_la-validator.lo: validator.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(shapefiles_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shapefiles_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shapefiles_la-validator.lo -MD -MP -MF $(DEPDIR)/shapefiles_la-validator.Tpo -c -o shapefiles_la-validator.lo `test -f 'validator.c' || echo '$(srcdir)/'`validator.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/shapefiles_la-validator.Tpo $(DEPDIR)/shapefiles_la-validator.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='validator.c' object='shapefiles_la-validator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(shapefiles_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(shapefiles_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o shapefiles_la-validator.lo `test -f 'validator.c' || echo '$(srcdir)/'`validator.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir 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-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ����������������������������������������������������������������������������������������������������������������������������libspatialite-4.3.0a/src/shapefiles/validator.c�����������������������������������������������������0000664�0001750�0001750�00000261307�12544707704�016516� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* validator.c -- implements geometry validation and repair version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include <sys/stat.h> #include <sys/types.h> #if defined(_WIN32) #include <direct.h> #endif #include <stdlib.h> #include <stdio.h> #include <string.h> #include <time.h> #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include <spatialite/sqlite.h> #include <spatialite/debug.h> #include <spatialite/gaiaaux.h> #include <spatialite/gaiageo.h> #include <spatialite.h> #include <spatialite_private.h> /* 64 bit integer: portable format for printf() */ #if defined(_WIN32) && !defined(__MINGW32__) #define FRMT64 "%I64d" #else #define FRMT64 "%lld" #endif #if defined(_WIN32) && !defined(__MINGW32__) #define strcasecmp _stricmp #endif struct validity_report_row { sqlite3_int64 rowid; int valid; char *warning; char *error; char *extra; struct validity_report_row *next; }; struct validity_report { struct validity_report_row *first; struct validity_report_row *last; int n_rows; int n_nullgeoms; int n_valids; int n_invalids; int n_warnings; }; struct sanitize_report_row { sqlite3_int64 rowid; int repaired; char *warning; char *error; char *summary; struct sanitize_report_row *next; }; struct sanitize_report { struct sanitize_report_row *first; struct sanitize_report_row *last; int n_invalids; int n_repaired; int n_discarded; int n_not_repaired; int input_type; int repaired_type; int discarded_type; }; static int check_table_column (sqlite3 * sqlite, const char *table, const char *geom, int *gtype, int *srid) { /* chacks if a table-column effectively exists */ char *sql; const char *xsql; int ret; int i; char **results; int rows; int columns; int spatial_type = 0; int ok = 0; *gtype = -1; *srid = -2; /* checking the DB layout */ xsql = "SELECT CheckSpatialMetadata()"; ret = sqlite3_get_table (sqlite, xsql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) spatial_type = atoi (results[(i * columns) + 0]); } sqlite3_free_table (results); if (spatial_type == 1 || spatial_type == 3) ; else return 0; /* checking the table-column */ if (spatial_type == 1) xsql = "SELECT type, coord_dimension, srid FROM geometry_columns "; else xsql = "SELECT geometry_type, srid FROM geometry_columns "; sql = sqlite3_mprintf ("%s WHERE Lower(f_table_name) = Lower(%Q) " "AND Lower(f_geometry_column) = Lower(%Q)", xsql, table, geom); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { ok = 1; if (spatial_type == 1) { int ndims; const char *type = results[(i * columns) + 0]; const char *dims = results[(i * columns) + 2]; if (strcasecmp (dims, "XYZM") == 0) ndims = GAIA_XY_Z_M; else if (strcasecmp (dims, "4") == 0) ndims = GAIA_XY_Z_M; else if (strcasecmp (dims, "XYZ") == 0) ndims = GAIA_XY_Z; else if (strcasecmp (dims, "3") == 0) ndims = GAIA_XY_Z; else if (strcasecmp (dims, "XYM") == 0) ndims = GAIA_XY_M; else ndims = GAIA_XY; if (strcasecmp (type, "POINT") == 0) { if (ndims == GAIA_XY_Z_M) *gtype = 3001; else if (ndims == GAIA_XY_Z) *gtype = 1001; else if (ndims == GAIA_XY_M) *gtype = 2001; else *gtype = 1; } if (strcasecmp (type, "LINESTRING") == 0) { if (ndims == GAIA_XY_Z_M) *gtype = 3002; else if (ndims == GAIA_XY_Z) *gtype = 1002; else if (ndims == GAIA_XY_M) *gtype = 2002; else *gtype = 2; } if (strcasecmp (type, "POLYGON") == 0) { if (ndims == GAIA_XY_Z_M) *gtype = 3003; else if (ndims == GAIA_XY_Z) *gtype = 1003; else if (ndims == GAIA_XY_M) *gtype = 2003; else *gtype = 3; } if (strcasecmp (type, "MULTIPOINT") == 0) { if (ndims == GAIA_XY_Z_M) *gtype = 3004; else if (ndims == GAIA_XY_Z) *gtype = 1004; else if (ndims == GAIA_XY_M) *gtype = 2004; else *gtype = 4; } if (strcasecmp (type, "MULTILINESTRING") == 0) { if (ndims == GAIA_XY_Z_M) *gtype = 3005; else if (ndims == GAIA_XY_Z) *gtype = 1005; else if (ndims == GAIA_XY_M) *gtype = 2005; else *gtype = 5; } if (strcasecmp (type, "MULTIPOLYGON") == 0) { if (ndims == GAIA_XY_Z_M) *gtype = 3006; else if (ndims == GAIA_XY_Z) *gtype = 1006; else if (ndims == GAIA_XY_M) *gtype = 2006; else *gtype = 6; } if (strcasecmp (type, "GEOMETRYCOLLECTION") == 0) { if (ndims == GAIA_XY_Z_M) *gtype = 3007; else if (ndims == GAIA_XY_Z) *gtype = 1007; else if (ndims == GAIA_XY_M) *gtype = 2007; else *gtype = 7; } if (strcasecmp (type, "GEOMETRY") == 0) { if (ndims == GAIA_XY_Z_M) *gtype = 3000; else if (ndims == GAIA_XY_Z) *gtype = 1000; else if (ndims == GAIA_XY_M) *gtype = 2000; else *gtype = 0; } *srid = atoi (results[(i * columns) + 1]); } else { *gtype = atoi (results[(i * columns) + 0]); *srid = atoi (results[(i * columns) + 1]); } } } sqlite3_free_table (results); return ok; } #ifdef ENABLE_LWGEOM /* only if LWGEOM is supported */ static struct sanitize_report * alloc_sanitize_report (void) { /* allocating the report container struct */ struct sanitize_report *p = malloc (sizeof (struct sanitize_report)); p->first = NULL; p->last = NULL; p->n_invalids = 0; p->n_repaired = 0; p->n_discarded = 0; p->n_not_repaired = 0; p->input_type = -1; p->repaired_type = -1; p->discarded_type = -1; return p; } static void free_sanitize_report (struct sanitize_report *p) { /* memory cleanup: freeing the report container struct */ struct sanitize_report_row *r; struct sanitize_report_row *rn; r = p->first; while (r) { rn = r->next; if (r->warning != NULL) free (r->warning); if (r->error != NULL) free (r->error); if (r->summary != NULL) free (r->summary); free (r); r = rn; } free (p); } static void addMessageToSanitizeReport (struct sanitize_report *report, sqlite3_int64 rowid, int repaired, const char *error, const char *warning, const char *summary) { /* adding a message to the report */ int len; struct sanitize_report_row *r = malloc (sizeof (struct sanitize_report_row)); r->rowid = rowid; r->repaired = repaired; r->error = NULL; r->warning = NULL; r->summary = NULL; r->next = NULL; if (error) { len = strlen (error); r->error = malloc (len + 1); strcpy (r->error, error); } if (warning) { len = strlen (warning); r->warning = malloc (len + 1); strcpy (r->warning, warning); } if (summary) { len = strlen (summary); r->summary = malloc (len + 1); strcpy (r->summary, summary); } if (!repaired) report->n_not_repaired += 1; else { if (summary == NULL) report->n_repaired += 1; else report->n_discarded += 1; } if (report->first == NULL) report->first = r; if (report->last != NULL) report->last->next = r; report->last = r; } static int eval_type (int old, int new) { /* evaluates the max. common Geometry Type */ int o_dims; int n_dims; int r_dims; int o_type; int n_type; int r_type; int ret; if (old < 0) { /* first evaluation */ return new; } switch (old) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: o_dims = GAIA_XY; break; case 1000: case 1001: case 1002: case 1003: case 1004: case 1005: case 1006: case 1007: o_dims = GAIA_XY_Z; break; case 2000: case 2001: case 2002: case 2003: case 2004: case 2005: case 2006: case 2007: o_dims = GAIA_XY_M; break; case 3000: case 3001: case 3002: case 3003: case 3004: case 3005: case 3006: case 3007: o_dims = GAIA_XY_Z_M; break; default: o_dims = GAIA_XY; break; }; switch (new) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: n_dims = GAIA_XY; break; case 1000: case 1001: case 1002: case 1003: case 1004: case 1005: case 1006: case 1007: n_dims = GAIA_XY_Z; break; case 2000: case 2001: case 2002: case 2003: case 2004: case 2005: case 2006: case 2007: n_dims = GAIA_XY_M; break; case 3000: case 3001: case 3002: case 3003: case 3004: case 3005: case 3006: case 3007: n_dims = GAIA_XY_Z_M; break; default: n_dims = GAIA_XY; break; }; switch (old) { case 0: case 1000: case 2000: case 3000: o_type = -1; break; case 1: case 1001: case 2001: case 3001: o_type = GAIA_POINT; break; case 2: case 1002: case 2002: case 3002: o_type = GAIA_LINESTRING; break; case 3: case 1003: case 2003: case 3003: o_type = GAIA_POLYGON; break; case 4: case 1004: case 2004: case 3004: o_type = GAIA_MULTIPOINT; break; case 5: case 1005: case 2005: case 3005: o_type = GAIA_MULTILINESTRING; break; case 6: case 1006: case 2006: case 3006: o_type = GAIA_MULTIPOLYGON; break; case 7: case 1007: case 2007: case 3007: o_type = GAIA_GEOMETRYCOLLECTION; break; default: o_type = -1; break; }; switch (new) { case 0: case 1000: case 2000: case 3000: n_type = -1; break; case 1: case 1001: case 2001: case 3001: n_type = GAIA_POINT; break; case 2: case 1002: case 2002: case 3002: n_type = GAIA_LINESTRING; break; case 3: case 1003: case 2003: case 3003: n_type = GAIA_POLYGON; break; case 4: case 1004: case 2004: case 3004: n_type = GAIA_MULTIPOINT; break; case 5: case 1005: case 2005: case 3005: n_type = GAIA_MULTILINESTRING; break; case 6: case 1006: case 2006: case 3006: n_type = GAIA_MULTIPOLYGON; break; case 7: case 1007: case 2007: case 3007: n_type = GAIA_GEOMETRYCOLLECTION; break; default: n_type = -1; break; }; if (o_type == n_type) r_type = n_type; else { if ((o_type == GAIA_POINT || n_type == GAIA_POINT) && (o_type == GAIA_MULTIPOINT || n_type == GAIA_MULTIPOINT)) r_type = GAIA_MULTIPOINT; else if ((o_type == GAIA_LINESTRING || n_type == GAIA_LINESTRING) && (o_type == GAIA_LINESTRING || n_type == GAIA_LINESTRING)) r_type = GAIA_MULTILINESTRING; else if ((o_type == GAIA_POLYGON || n_type == GAIA_POLYGON) && (o_type == GAIA_MULTIPOLYGON || n_type == GAIA_MULTIPOLYGON)) r_type = GAIA_MULTIPOLYGON; else r_type = GAIA_GEOMETRYCOLLECTION; } if (o_dims == n_dims) r_dims = n_dims; else { if ((o_dims == GAIA_XY || n_dims == GAIA_XY) && (o_dims == GAIA_XY_Z || n_dims == GAIA_XY_Z)) r_dims = GAIA_XY_Z; if ((o_dims == GAIA_XY || n_dims == GAIA_XY) && (o_dims == GAIA_XY_M || n_dims == GAIA_XY_M)) r_dims = GAIA_XY_M; if ((o_dims == GAIA_XY || n_dims == GAIA_XY) && (o_dims == GAIA_XY_Z_M || n_dims == GAIA_XY_Z_M)) r_dims = GAIA_XY_Z_M; if ((o_dims == GAIA_XY_M || n_dims == GAIA_XY_M) && (o_dims == GAIA_XY_Z || n_dims == GAIA_XY_Z)) r_dims = GAIA_XY_Z_M; if ((o_dims == GAIA_XY_M || n_dims == GAIA_XY_M) && (o_dims == GAIA_XY_Z_M || n_dims == GAIA_XY_Z_M)) r_dims = GAIA_XY_Z_M; if ((o_dims == GAIA_XY_Z || n_dims == GAIA_XY_Z) && (o_dims == GAIA_XY_Z_M || n_dims == GAIA_XY_Z_M)) r_dims = GAIA_XY_Z_M; } switch (r_type) { case GAIA_POINT: switch (r_dims) { case GAIA_XY_Z_M: ret = 3001; break; case GAIA_XY_Z: ret = 1001; break; case GAIA_XY_M: ret = 2001; break; case GAIA_XY: ret = 1; break; }; break; case GAIA_LINESTRING: switch (r_dims) { case GAIA_XY_Z_M: ret = 3002; break; case GAIA_XY_Z: ret = 1002; break; case GAIA_XY_M: ret = 2002; break; case GAIA_XY: ret = 2; break; }; break; case GAIA_POLYGON: switch (r_dims) { case GAIA_XY_Z_M: ret = 3003; break; case GAIA_XY_Z: ret = 1003; break; case GAIA_XY_M: ret = 2003; break; case GAIA_XY: ret = 3; break; }; break; case GAIA_MULTIPOINT: switch (r_dims) { case GAIA_XY_Z_M: ret = 3004; break; case GAIA_XY_Z: ret = 1004; break; case GAIA_XY_M: ret = 2004; break; case GAIA_XY: ret = 4; break; }; break; case GAIA_MULTILINESTRING: switch (r_dims) { case GAIA_XY_Z_M: ret = 3005; break; case GAIA_XY_Z: ret = 1005; break; case GAIA_XY_M: ret = 2005; break; case GAIA_XY: ret = 5; break; }; break; case GAIA_MULTIPOLYGON: switch (r_dims) { case GAIA_XY_Z_M: ret = 3006; break; case GAIA_XY_Z: ret = 1006; break; case GAIA_XY_M: ret = 2006; break; case GAIA_XY: ret = 6; break; }; break; default: switch (r_dims) { case GAIA_XY_Z_M: ret = 3007; break; case GAIA_XY_Z: ret = 1007; break; case GAIA_XY_M: ret = 2007; break; case GAIA_XY: ret = 7; break; }; break; }; return ret; } static int eval_cast_type (int old, int new) { /* determining the appropriate Type Casting (if any) */ int o_type; int n_type; switch (old) { case 0: case 1000: case 2000: case 3000: o_type = -1; break; case 1: case 1001: case 2001: case 3001: o_type = GAIA_POINT; break; case 2: case 1002: case 2002: case 3002: o_type = GAIA_LINESTRING; break; case 3: case 1003: case 2003: case 3003: o_type = GAIA_POLYGON; break; case 4: case 1004: case 2004: case 3004: o_type = GAIA_MULTIPOINT; break; case 5: case 1005: case 2005: case 3005: o_type = GAIA_MULTILINESTRING; break; case 6: case 1006: case 2006: case 3006: o_type = GAIA_MULTIPOLYGON; break; case 7: case 1007: case 2007: case 3007: o_type = GAIA_GEOMETRYCOLLECTION; break; default: o_type = -1; break; }; switch (new) { case 0: case 1000: case 2000: case 3000: n_type = -1; break; case 1: case 1001: case 2001: case 3001: n_type = GAIA_POINT; break; case 2: case 1002: case 2002: case 3002: n_type = GAIA_LINESTRING; break; case 3: case 1003: case 2003: case 3003: n_type = GAIA_POLYGON; break; case 4: case 1004: case 2004: case 3004: n_type = GAIA_MULTIPOINT; break; case 5: case 1005: case 2005: case 3005: n_type = GAIA_MULTILINESTRING; break; case 6: case 1006: case 2006: case 3006: n_type = GAIA_MULTIPOLYGON; break; case 7: case 1007: case 2007: case 3007: n_type = GAIA_GEOMETRYCOLLECTION; break; default: n_type = -1; break; }; if (o_type == n_type) return -1; return n_type; } static int eval_cast_dims (int old, int new) { /* determining the appropriate Dimensions Casting (if any) */ int o_dims; int n_dims; switch (old) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: o_dims = GAIA_XY; break; case 1000: case 1001: case 1002: case 1003: case 1004: case 1005: case 1006: case 1007: o_dims = GAIA_XY_Z; break; case 2000: case 2001: case 2002: case 2003: case 2004: case 2005: case 2006: case 2007: o_dims = GAIA_XY_M; break; case 3000: case 3001: case 3002: case 3003: case 3004: case 3005: case 3006: case 3007: o_dims = GAIA_XY_Z_M; break; default: o_dims = GAIA_XY; break; }; switch (new) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: n_dims = GAIA_XY; break; case 1000: case 1001: case 1002: case 1003: case 1004: case 1005: case 1006: case 1007: n_dims = GAIA_XY_Z; break; case 2000: case 2001: case 2002: case 2003: case 2004: case 2005: case 2006: case 2007: n_dims = GAIA_XY_M; break; case 3000: case 3001: case 3002: case 3003: case 3004: case 3005: case 3006: case 3007: n_dims = GAIA_XY_Z_M; break; default: n_dims = GAIA_XY; break; }; if (o_dims == n_dims) return -1; return n_dims; } static const char * createDiscardedSummary (gaiaGeomCollPtr geom, char *summary) { /* short summary for discarded fragments */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; int pts = 0; int lns = 0; int pgs = 0; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts > 0 && lns == 0 && pgs == 0) sprintf (summary, "%d Poin%s", pts, (pts > 1) ? "ts" : "t"); if (pts == 0 && lns > 0 && pgs == 0) sprintf (summary, "%d Linestrin%s", lns, (lns > 1) ? "gs" : "g"); if (pts == 0 && lns == 0 && pgs > 0) sprintf (summary, "%d Polygo%s", pgs, (pgs > 1) ? "ns" : "n"); if (pts > 0 && lns > 0 && pgs == 0) sprintf (summary, "%d Poin%s; %d Linestrin%s", pts, (pts > 1) ? "ts" : "t", lns, (lns > 1) ? "gs" : "s"); if (pts > 0 && lns == 0 && pgs > 0) sprintf (summary, "%d Poin%s; %d Polygo%s", pts, (pts > 1) ? "ts" : "t", pgs, (pgs > 1) ? "ns" : "n"); if (pts == 0 && lns > 0 && pgs > 0) sprintf (summary, "%d Linestrin%s; %d Polygo%s", lns, (lns > 1) ? "gs" : "g", pgs, (pgs > 1) ? "ns" : "n"); if (pts > 0 && lns > 0 && pgs > 0) sprintf (summary, "%d Poin%s; %d Linestrin%s; %d Polygo%s", pts, (pts > 1) ? "ts" : "t", lns, (lns > 1) ? "gs" : "s", pgs, (pgs > 1) ? "ns" : "n"); return summary; } static int change_geometry_type (sqlite3 * sqlite, const char *table, const char *geometry, int cast_type, int cast_dims) { /* changing the Geometry Type for the whole table/column */ int ret; int i; char **results; int rows; int columns; int spatial_type = 0; const char *xsql; char *sql; sqlite3_stmt *stmt; char *xtable; char *xgeom; const char *xtype; const char *xdims; /* checking the DB layout */ xsql = "SELECT CheckSpatialMetadata()"; ret = sqlite3_get_table (sqlite, xsql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) spatial_type = atoi (results[(i * columns) + 0]); } sqlite3_free_table (results); if (spatial_type == 1 || spatial_type == 3) ; else return 0; /* updating the "geometry_columns" row */ if (spatial_type == 1) sql = sqlite3_mprintf ("UPDATE geometry_columns SET type = ?, " "coord_dimension = ? WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", table, geometry); else sql = sqlite3_mprintf ("UPDATE geometry_columns SET geometry_type = ?, " "coord_dimension = ? WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", table, geometry); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); if (spatial_type == 1) { const char *p_type = "GEOMETRY"; const char *p_dims = "XY"; switch (cast_type) { case GAIA_POINT: p_type = "POINT"; break; case GAIA_LINESTRING: p_type = "LINESTRING"; break; case GAIA_POLYGON: p_type = "POLYGON"; break; case GAIA_MULTIPOINT: p_type = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: p_type = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: p_type = "MULTIPOLYGON"; break; case GAIA_GEOMETRYCOLLECTION: p_type = "GEOMETRYCOLLECTION"; break; }; switch (cast_dims) { case GAIA_XY_Z_M: p_dims = "XYZM"; break; case GAIA_XY_Z: p_dims = "XYZ"; break; case GAIA_XY_M: p_dims = "ZYM"; break; }; sqlite3_bind_text (stmt, 1, p_type, strlen (p_type), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, p_dims, strlen (p_dims), SQLITE_STATIC); } else { int gtype = 0; int ndims = 2; switch (cast_type) { case GAIA_POINT: switch (cast_dims) { case GAIA_XY_Z_M: gtype = 3001; ndims = 4; break; case GAIA_XY_Z: gtype = 1001; ndims = 3; break; case GAIA_XY_M: gtype = 2001; ndims = 3; break; default: gtype = 1; ndims = 2; break; }; break; case GAIA_LINESTRING: switch (cast_dims) { case GAIA_XY_Z_M: gtype = 3002; ndims = 4; break; case GAIA_XY_Z: gtype = 1002; ndims = 3; break; case GAIA_XY_M: gtype = 2002; ndims = 3; break; default: gtype = 2; ndims = 2; break; }; break; case GAIA_POLYGON: switch (cast_dims) { case GAIA_XY_Z_M: gtype = 3003; ndims = 4; break; case GAIA_XY_Z: gtype = 1003; ndims = 3; break; case GAIA_XY_M: gtype = 2003; ndims = 3; break; default: gtype = 3; ndims = 2; break; }; break; case GAIA_MULTIPOINT: switch (cast_dims) { case GAIA_XY_Z_M: gtype = 3004; ndims = 4; break; case GAIA_XY_Z: gtype = 1004; ndims = 3; break; case GAIA_XY_M: gtype = 2004; ndims = 3; break; default: gtype = 4; ndims = 2; break; }; break; case GAIA_MULTILINESTRING: switch (cast_dims) { case GAIA_XY_Z_M: gtype = 3005; ndims = 4; break; case GAIA_XY_Z: gtype = 1005; ndims = 3; break; case GAIA_XY_M: gtype = 2005; ndims = 3; break; default: gtype = 5; ndims = 2; break; }; break; case GAIA_MULTIPOLYGON: switch (cast_dims) { case GAIA_XY_Z_M: gtype = 3006; ndims = 4; break; case GAIA_XY_Z: gtype = 1006; ndims = 3; break; case GAIA_XY_M: gtype = 2006; ndims = 3; break; default: gtype = 6; ndims = 2; break; }; break; case GAIA_GEOMETRYCOLLECTION: switch (cast_dims) { case GAIA_XY_Z_M: gtype = 3007; ndims = 4; break; case GAIA_XY_Z: gtype = 1007; ndims = 3; break; case GAIA_XY_M: gtype = 2007; ndims = 3; break; default: gtype = 7; ndims = 2; break; }; break; }; sqlite3_bind_int (stmt, 1, gtype); sqlite3_bind_int (stmt, 2, ndims); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_finalize (stmt); /* applying type casting to already inserted Geometries */ xtable = gaiaDoubleQuotedSql (table); xgeom = gaiaDoubleQuotedSql (geometry); xtype = "Geometry"; xdims = "XY"; switch (cast_type) { case GAIA_POINT: xtype = "Point"; break; case GAIA_LINESTRING: xtype = "Linestring"; break; case GAIA_POLYGON: xtype = "Polygon"; break; case GAIA_MULTIPOINT: xtype = "MultiPoint"; break; case GAIA_MULTILINESTRING: xtype = "MultiLinestring"; break; case GAIA_MULTIPOLYGON: xtype = "MultiPolygon"; break; case GAIA_GEOMETRYCOLLECTION: xtype = "GeometryCollection"; break; }; switch (cast_dims) { case GAIA_XY_Z_M: xdims = "XYZM"; break; case GAIA_XY_Z: xdims = "XYZ"; break; case GAIA_XY_M: xdims = "XYM"; break; }; sql = sqlite3_mprintf ("UPDATE \"%s\" SET \"%s\" = CastTo%s(CastTo%s(\"%s\"))", xtable, xgeom, xtype, xdims, xgeom); free (xtable); free (xgeom); ret = sqlite3_exec (sqlite, sql, NULL, 0, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); return 0; } return 1; } static void drop_tmp_table (sqlite3 * sqlite, const char *tmp_table) { /* dropping the auxiliary temporary table */ char *sql; char *xtable; int ret; xtable = gaiaDoubleQuotedSql (tmp_table); sql = sqlite3_mprintf ("DROP TABLE \"%s\"", xtable); free (xtable); ret = sqlite3_exec (sqlite, sql, NULL, 0, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); } static void update_repaired (sqlite3 * sqlite, const char *table, const char *geometry, const char *tmp_table, int old_type, int new_type) { /* updating all repaired geometries */ char *sql; int cast_type = -1; int cast_dims = -1; int type; char *xtmp_table; char *xtable; char *xgeom; const char *casttype; const char *castdims; int ret; int is_error = 0; sqlite3_stmt *stmt; sqlite3_stmt *stmt_out; /* determining the final Geometry Type */ type = eval_type (old_type, new_type); if (type != old_type) { /* determining the eventual Castings to be applied */ cast_type = eval_cast_type (old_type, new_type); cast_dims = eval_cast_dims (old_type, new_type); } /* preparing the SELECT statement */ xtmp_table = gaiaDoubleQuotedSql (tmp_table); sql = sqlite3_mprintf ("SELECT ref_rowid, repaired_geometry FROM \"%s\" " "WHERE repaired_geometry IS NOT NULL", xtmp_table); free (xtmp_table); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); goto stop; } /* preparing the UPDATE statement */ xtable = gaiaDoubleQuotedSql (table); xgeom = gaiaDoubleQuotedSql (geometry); switch (new_type) { case 1: casttype = "Point"; castdims = "XY"; break; case 1001: casttype = "Point"; castdims = "XYZ"; break; case 2001: casttype = "Point"; castdims = "XYM"; break; case 3001: casttype = "Point"; castdims = "XYZM"; break; case 2: casttype = "Linestring"; castdims = "XY"; break; case 1002: casttype = "Linestring"; castdims = "XYZ"; break; case 2002: casttype = "Linestring"; castdims = "XYM"; break; case 3002: casttype = "Linestring"; castdims = "XYZM"; break; case 3: casttype = "Polygon"; castdims = "XY"; break; case 1003: casttype = "Polygon"; castdims = "XYZ"; break; case 2003: casttype = "Polygon"; castdims = "XYM"; break; case 3003: casttype = "Polygon"; castdims = "XYZM"; break; case 4: casttype = "MultiPoint"; castdims = "XY"; break; case 1004: casttype = "MultiPoint"; castdims = "XYZ"; break; case 2004: casttype = "MultiPoint"; castdims = "XYM"; break; case 3004: casttype = "MultiPoint"; castdims = "XYZM"; break; case 5: casttype = "MultiLinestring"; castdims = "XY"; break; case 1005: casttype = "MultiLinestring"; castdims = "XYZ"; break; case 2005: casttype = "MultiLinestring"; castdims = "XYM"; break; case 3005: casttype = "MultiLinestring"; castdims = "XYZM"; break; case 6: casttype = "MultiPolygon"; castdims = "XY"; break; case 1006: casttype = "MultiPolygon"; castdims = "XYZ"; break; case 2006: casttype = "MultiPolygon"; castdims = "XYM"; break; case 3006: casttype = "MultiPolygon"; castdims = "XYZM"; break; case 7: casttype = "GeometryCollection"; castdims = "XY"; break; case 1007: casttype = "GeometryCollection"; castdims = "XYZ"; break; case 2007: casttype = "GeometryCollection"; castdims = "XYM"; break; case 3007: casttype = "GeometryCollection"; castdims = "XYZM"; break; case 0: casttype = "Multi"; castdims = "XY"; break; case 1000: casttype = "Multi"; castdims = "XYZ"; break; case 2000: casttype = "Multi"; castdims = "XYM"; break; case 3000: casttype = "Multi"; castdims = "XYZM"; break; default: casttype = "Multi"; castdims = "XY"; break; }; sql = sqlite3_mprintf ("UPDATE \"%s\" SET \"%s\" = CastTo%s(CastTo%s(?)) " "WHERE ROWID = ?", xtable, xgeom, casttype, castdims); free (xtable); free (xgeom); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt_out, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); goto stop; } /* starting a Transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, 0, NULL); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); goto stop; } if (cast_type != -1 || cast_dims != -1) { /* changing the Geometry Type to the whole table/column */ if (!change_geometry_type (sqlite, table, geometry, cast_type, cast_dims)) return; } while (1) { /* scrolling the result set */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing one row from the resultset */ sqlite3_int64 rowid = sqlite3_column_int (stmt, 0); if (sqlite3_column_type (stmt, 1) == SQLITE_BLOB) { const unsigned char *blob = sqlite3_column_blob (stmt, 1); int n_bytes = sqlite3_column_bytes (stmt, 1); /* updating the main table */ sqlite3_reset (stmt_out); sqlite3_clear_bindings (stmt_out); sqlite3_bind_blob (stmt_out, 1, blob, n_bytes, SQLITE_STATIC); sqlite3_bind_int64 (stmt_out, 2, rowid); ret = sqlite3_step (stmt_out); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { is_error = 1; spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); break; } } } else { spatialite_e ("check_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); break; } } sqlite3_finalize (stmt); sqlite3_finalize (stmt_out); if (is_error) { /* Rollback */ ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, 0, NULL); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); goto stop; } goto stop; } else { /* dropping the auxiliary temporary table */ drop_tmp_table (sqlite, tmp_table); /* committing the still pending Transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, 0, NULL); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); goto stop; } } stop: return; } static int sanitize_geometry_column_common (const void *p_cache, sqlite3 * sqlite, const char *table, const char *geom, const char *tmp_table, const char *report_path, int *n_invalids, int *n_repaired, int *n_discarded, int *n_failures, char **err_msg) { #ifdef ENABLE_LWGEOM /* only if LWGEOM is enabled */ /* attempts to repair invalid Geometries from a Geometry Column */ char *sql; char *xtable; char *xgeom; char *xtmp_table; sqlite3_stmt *stmt; sqlite3_stmt *stmt_out; int ret; int gtype; int srid; const char *x_type; const char *x_dims; char num[256]; FILE *out = NULL; const char *p_msg; const char *p_summary; char summary[1024]; int is_error = 0; time_t v_time; struct tm *v_tm; const char *day; const char *month; int len; struct sanitize_report_row *p_r; struct sanitize_report *report = alloc_sanitize_report (); if (err_msg != NULL) *err_msg = NULL; if (!check_table_column (sqlite, table, geom, >ype, &srid)) { spatialite_e ("sanitize_geometry_column error: <%s><%s>\n" "Not defined in \"geometry_columns\"", table, geom); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("sanitize_geometry_column error: <%s><%s>\n" "Not defined in \"geometry_columns\"", table, geom); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } goto stop; } /* decoding Geometry Type and Dimensions */ switch (gtype) { case 0: x_type = "GEOMETRY"; x_dims = "XY"; break; case 1000: x_type = "GEOMETRY"; x_dims = "XYZ"; break; case 2000: x_type = "GEOMETRY"; x_dims = "XYM"; break; case 3000: x_type = "GEOMETRY"; x_dims = "XYZM"; break; case 1: x_type = "POINT"; x_dims = "XY"; break; case 1001: x_type = "POINT"; x_dims = "XYZ"; break; case 2001: x_type = "POINT"; x_dims = "XYM"; break; case 3001: x_type = "POINT"; x_dims = "XYZM"; break; case 2: x_type = "LINESTRING"; x_dims = "XY"; break; case 1002: x_type = "LINESTRING"; x_dims = "XYZ"; break; case 2002: x_type = "LINESTRING"; x_dims = "XYM"; break; case 3002: x_type = "LINESTRING"; x_dims = "XYZM"; break; case 3: x_type = "POLYGON"; x_dims = "XY"; break; case 1003: x_type = "POLYGON"; x_dims = "XYZ"; break; case 2003: x_type = "POLYGON"; x_dims = "XYM"; break; case 3003: x_type = "POLYGON"; x_dims = "XYZM"; break; case 4: x_type = "MULTIPOINT"; x_dims = "XY"; break; case 1004: x_type = "MULTIPOINT"; x_dims = "XYZ"; break; case 2004: x_type = "MULTIPOINT"; x_dims = "XYM"; break; case 3004: x_type = "MULTIPOINT"; x_dims = "XYZM"; break; case 5: x_type = "MULTILINESTRING"; x_dims = "XY"; break; case 1005: x_type = "MULTILINESTRING"; x_dims = "XYZ"; break; case 2005: x_type = "MULTILINESTRING"; x_dims = "XYM"; break; case 3005: x_type = "MULTILINESTRING"; x_dims = "XYZM"; break; case 6: x_type = "MULTIPOLYGON"; x_dims = "XY"; break; case 1006: x_type = "MULTIPOLYGON"; x_dims = "XYZ"; break; case 2006: x_type = "MULTIPOLYGON"; x_dims = "XYM"; break; case 3006: x_type = "MULTIPOLYGON"; x_dims = "XYZM"; break; case 7: x_type = "GEOMETRYCOLLECTION"; x_dims = "XY"; break; case 1007: x_type = "GEOMETRYCOLLECTION"; x_dims = "XYZ"; break; case 2007: x_type = "GEOMETRYCOLLECTION"; x_dims = "XYM"; break; case 3007: x_type = "GEOMETRYCOLLECTION"; x_dims = "XYZM"; break; default: x_type = "UNKNOWN"; x_dims = "UNKNOWN"; break; }; xtable = gaiaDoubleQuotedSql (table); xgeom = gaiaDoubleQuotedSql (geom); sql = sqlite3_mprintf ("SELECT ROWID, \"%s\" FROM \"%s\"", xgeom, xtable); free (xtable); free (xgeom); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } goto stop; } /* creating the auxiliary temporary table */ xtmp_table = gaiaDoubleQuotedSql (tmp_table); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (ref_rowid INTEGER NOT NULL PRIMARY KEY, " "input_geometry BLOB, repaired_geometry BLOB, discarded_geometry BLOB)", xtmp_table); free (xtmp_table); ret = sqlite3_exec (sqlite, sql, NULL, 0, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } goto stop; } /* preparing the INSERT INTO statement */ xtmp_table = gaiaDoubleQuotedSql (tmp_table); sql = sqlite3_mprintf ("INSERT INTO \"%s\" " "(ref_rowid, input_geometry, repaired_geometry, discarded_geometry) " "VALUES (?, ?, ?, ?)", xtmp_table); free (xtmp_table); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt_out, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } goto stop; } /* starting a Transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, 0, NULL); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } goto stop; } /* opening the HTML report */ out = fopen (report_path, "wb"); if (out == NULL) goto stop; while (1) { /* scrolling the result set */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing one row from the resultset */ gaiaGeomCollPtr geom = NULL; sqlite3_int64 rowid = sqlite3_column_int (stmt, 0); if (sqlite3_column_type (stmt, 1) == SQLITE_BLOB) { const unsigned char *blob = sqlite3_column_blob (stmt, 1); int n_bytes = sqlite3_column_bytes (stmt, 1); geom = gaiaFromSpatiaLiteBlobWkb (blob, n_bytes); } if (geom) { /* checking a geometry for validity */ int valret; if (p_cache != NULL) { gaiaResetGeosMsg_r (p_cache); valret = gaiaIsValid_r (p_cache, geom); } else { gaiaResetGeosMsg (); valret = gaiaIsValid (geom); } if (!valret) { unsigned char *blob_geom; int blob_sz_geom; unsigned char *blob_saned; int blob_sz_saned; unsigned char *blob_dscrd; int blob_sz_dscrd; const char *error; const char *warning; gaiaGeomCollPtr repaired; gaiaGeomCollPtr discarded; report->n_invalids += 1; gaiaResetLwGeomMsg (); repaired = gaiaMakeValid (geom); discarded = gaiaMakeValidDiscarded (geom); error = gaiaGetLwGeomErrorMsg (); warning = gaiaGetLwGeomWarningMsg (); if (discarded == NULL) p_summary = NULL; else p_summary = createDiscardedSummary (discarded, summary); addMessageToSanitizeReport (report, rowid, (repaired == NULL) ? 0 : 1, error, warning, p_summary); /* inserting into the auxiliary temporary table */ sqlite3_reset (stmt_out); sqlite3_clear_bindings (stmt_out); sqlite3_bind_int64 (stmt_out, 1, rowid); if (!repaired) { report->input_type = eval_type (report->input_type, gaiaGeometryType (geom)); gaiaToSpatiaLiteBlobWkb (geom, &blob_geom, &blob_sz_geom); sqlite3_bind_blob (stmt_out, 2, blob_geom, blob_sz_geom, free); sqlite3_bind_null (stmt_out, 3); } else { report->repaired_type = eval_type (report->repaired_type, gaiaGeometryType (repaired)); sqlite3_bind_null (stmt_out, 2); gaiaToSpatiaLiteBlobWkb (repaired, &blob_saned, &blob_sz_saned); sqlite3_bind_blob (stmt_out, 3, blob_saned, blob_sz_saned, free); } if (discarded) { report->discarded_type = eval_type (report->discarded_type, gaiaGeometryType (discarded)); gaiaToSpatiaLiteBlobWkb (discarded, &blob_dscrd, &blob_sz_dscrd); sqlite3_bind_blob (stmt_out, 4, blob_dscrd, blob_sz_dscrd, free); } else sqlite3_bind_null (stmt_out, 4); /* inserting into the auxiliary temporary table */ ret = sqlite3_step (stmt_out); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { is_error = 1; spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } break; } if (repaired) gaiaFreeGeomColl (repaired); if (discarded) gaiaFreeGeomColl (discarded); } gaiaFreeGeomColl (geom); } } else { spatialite_e ("check_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } break; } } sqlite3_finalize (stmt); sqlite3_finalize (stmt_out); if (is_error) { /* Rollback */ ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, 0, NULL); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } goto stop; } goto stop; } else { /* committing the still pending Transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, 0, NULL); if (ret != SQLITE_OK) { spatialite_e ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("sanitize_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } goto stop; } } /* generating the HTML header */ fprintf (out, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n"); fprintf (out, "<html>\n\t<head>\n"); fprintf (out, "\t\t<meta content=\"text/html; charset=UTF-8\" http-equiv=\"content-type\">\n"); fprintf (out, "\t\t<title>SpatiaLite Repair Geometries - Table: %s\n", table); fprintf (out, "\t\t\n"); fprintf (out, "\t\n\t\n"); time (&v_time); v_tm = localtime (&v_time); switch (v_tm->tm_wday) { case 0: day = "Sun"; break; case 1: day = "Mon"; break; case 2: day = "Tue"; break; case 3: day = "Wed"; break; case 4: day = "Thu"; break; case 5: day = "Fri"; break; case 6: day = "Sat"; break; }; switch (v_tm->tm_mon) { case 0: month = "Jan"; break; case 1: month = "Feb"; break; case 2: month = "Mar"; break; case 3: month = "Apr"; break; case 4: month = "May"; break; case 5: month = "Jun"; break; case 6: month = "Jul"; break; case 7: month = "Aug"; break; case 8: month = "Sep"; break; case 9: month = "Oct"; break; case 10: month = "Nov"; break; case 11: month = "Dec"; break; }; fprintf (out, "\t\t%d-%s-%d, %s [%02d:%02d:%02d]
\n", v_tm->tm_year + 1900, month, v_tm->tm_mday, day, v_tm->tm_hour, v_tm->tm_min, v_tm->tm_sec); fprintf (out, "\t\t

SpatiaLite Repair Geometries

\n"); /* generating the summary sub-report */ fprintf (out, "\t\t

Summary

\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\t\t\n"); fprintf (out, "\t\t\t\n", table); fprintf (out, "\t\t\t\n", geom); fprintf (out, "\t\t\t\n", x_type); fprintf (out, "\t\t\t\n", x_dims); fprintf (out, "\t\t\t\n", srid); fprintf (out, "\t\t\t\n"); fprintf (out, "\t\t\t\n", report->n_invalids); if (report->n_repaired > 0) fprintf (out, "\t\t\t\n", report->n_repaired); else fprintf (out, "\t\t\t\n"); if (report->n_discarded > 0) fprintf (out, "\t\t\t\n", report->n_discarded); else fprintf (out, "\t\t\t\n"); if (report->n_not_repaired > 0) fprintf (out, "\t\t\t\n", report->n_not_repaired); else fprintf (out, "\t\t\t\n"); fprintf (out, "\t\t\t\n"); if (report->n_not_repaired > 0) { fprintf (out, "\t\t\t\n", tmp_table); } else if (report->n_discarded > 0) { fprintf (out, "\t\t\t\n"); } else if (report->n_repaired > 0) { fprintf (out, "\t\t\t\n"); } else { fprintf (out, "\t\t\t\n"); } fprintf (out, "\t\t
Table / Layer
Table%s
Geometry Column%s
Geometry Type%s
Dimensions%s
SRID%d
Statistics
Invalid Geometries%d
Repaired Geometries (fully recovered)%d
Repaired Geometries (fully recovered)NONE
Repaired Geometries (by discarding fragments)%d
Repaired Geometries (by discarding fragments)NONE
Failures (Not Repaired Geometries)%d
Failures (Not Repaired Geometries)NONE
Suggested Action
This layer contains severly damaged Geometries (beyond any possible repair);
"); fprintf (out, "please manually check the %s table.
This layer contains valid but dubious Geometries;
"); fprintf (out, "a repair action is suggested.
This layer has been successfully repaired and is now completely valid;
"); fprintf (out, "doesn't require any further corrective action.
This layer already was completely valid;
"); fprintf (out, "no corrective action was applied.
\n"); if (report->n_not_repaired != 0) { /* generating the NotRepaired sub-report */ fprintf (out, "\t\t\t
\n\t\t

Not Repaired Geometries

\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\t\t"); fprintf (out, ""); fprintf (out, "\n"); p_r = report->first; while (p_r) { if (p_r->repaired != 0) { p_r = p_r->next; continue; } sprintf (num, FRMT64, p_r->rowid); p_msg = "Unknown cause"; if (p_r->error) p_msg = p_r->error; else if (p_r->warning) p_msg = p_r->warning; fprintf (out, "\t\t\t\n", num, p_msg); p_r = p_r->next; } fprintf (out, "\t\t
ROWIDStatusError Message
%sNot Repaired (beyond possible repair)%s
\n"); } if (report->n_discarded != 0) { /* generating the DiscardedFragments sub-report */ fprintf (out, "\t\t\t
\n\t\t

Repaired Geometries (by discarding fragments)

\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\t\t"); fprintf (out, ""); fprintf (out, "\n"); p_r = report->first; while (p_r) { if (p_r->summary == NULL) { p_r = p_r->next; continue; } sprintf (num, FRMT64, p_r->rowid); fprintf (out, "\t\t\t\n", num, p_r->summary); p_r = p_r->next; } fprintf (out, "\t\t
ROWIDStatusDiscarded fragments summary
%sRepaired by discarding fragments%s
\n"); } /* generating the HTML footer */ fprintf (out, "\t\n\n"); fclose (out); /* post-processing actions */ if (report->n_invalids == 0) { /* we can immediately drop the tmp-table for sure */ drop_tmp_table (sqlite, tmp_table); } if (report->n_repaired > 0 && report->n_discarded == 0 && report->n_not_repaired == 0) { /* we can safely update all repaired geometries, then dropping the tmp_table */ update_repaired (sqlite, table, geom, tmp_table, gtype, report->repaired_type); } if (n_invalids != NULL) *n_invalids = report->n_invalids; if (n_repaired != NULL) *n_repaired = report->n_repaired; if (n_discarded != NULL) *n_discarded = report->n_discarded; if (n_failures != NULL) *n_failures = report->n_not_repaired; free_sanitize_report (report); return 1; stop: free_sanitize_report (report); if (out) fclose (out); #endif /* end LWGEOM conditional */ return 0; } SPATIALITE_DECLARE int sanitize_geometry_column (sqlite3 * sqlite, const char *table, const char *geom, const char *tmp_table, const char *report_path, int *n_invalids, int *n_repaired, int *n_discarded, int *n_failures, char **err_msg) { return sanitize_geometry_column_common (NULL, sqlite, table, geom, tmp_table, report_path, n_invalids, n_repaired, n_discarded, n_failures, err_msg); } SPATIALITE_DECLARE int sanitize_geometry_column_r (const void *p_cache, sqlite3 * sqlite, const char *table, const char *geom, const char *tmp_table, const char *report_path, int *n_invalids, int *n_repaired, int *n_discarded, int *n_failures, char **err_msg) { return sanitize_geometry_column_common (p_cache, sqlite, table, geom, tmp_table, report_path, n_invalids, n_repaired, n_discarded, n_failures, err_msg); } static int sanitize_all_geometry_columns_common (const void *p_cache, sqlite3 * sqlite, const char *tmp_prefix, const char *output_dir, int *x_not_repaired, char **err_msg) { /* attempts to repair invalid Geometries from all Geometry Columns */ const char *sql; int ret; int i; char **results; int rows; int columns; int n_invalids; int n_repaired; int n_discarded; int n_failures; char *report; char *tmp_table; FILE *out = NULL; time_t v_time; struct tm *v_tm; const char *day; const char *month; int sum_not_repaired = 0; if (err_msg != NULL) *err_msg = NULL; /* attempting to create the output directory */ #if defined(_WIN32) _mkdir (output_dir); #else mkdir (output_dir, 0777); #endif /* opening the HTML report */ report = sqlite3_mprintf ("%s/index.html", output_dir); out = fopen (report, "wb"); sqlite3_free (report); if (out == NULL) goto stop; /* generating the HTML header */ fprintf (out, "\n"); fprintf (out, "\n\t\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\tSpatiaLite Repair Geometries - All Tables\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\n\t\n"); time (&v_time); v_tm = localtime (&v_time); switch (v_tm->tm_wday) { case 0: day = "Sun"; break; case 1: day = "Mon"; break; case 2: day = "Tue"; break; case 3: day = "Wed"; break; case 4: day = "Thu"; break; case 5: day = "Fri"; break; case 6: day = "Sat"; break; }; switch (v_tm->tm_mon) { case 0: month = "Jan"; break; case 1: month = "Feb"; break; case 2: month = "Mar"; break; case 3: month = "Apr"; break; case 4: month = "May"; break; case 5: month = "Jun"; break; case 6: month = "Jul"; break; case 7: month = "Aug"; break; case 8: month = "Sep"; break; case 9: month = "Oct"; break; case 10: month = "Nov"; break; case 11: month = "Dec"; break; }; fprintf (out, "\t\t%d-%s-%d, %s [%02d:%02d:%02d]
\n", v_tm->tm_year + 1900, month, v_tm->tm_mday, day, v_tm->tm_hour, v_tm->tm_min, v_tm->tm_sec); fprintf (out, "\t\t

SpatiaLite Repair Geometries

\n"); /* table header */ fprintf (out, "\t\t\n"); fprintf (out, "\t\t\t"); fprintf (out, ""); fprintf (out, ""); fprintf (out, ""); fprintf (out, ""); fprintf (out, ""); fprintf (out, ""); fprintf (out, "\n"); sql = "SELECT f_table_name, f_geometry_column FROM geometry_columns"; ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) goto stop; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { const char *cls_1; const char *cls_2; const char *cls_msg; const char *p_msg; const char *table = results[(i * columns) + 0]; const char *geom = results[(i * columns) + 1]; report = sqlite3_mprintf ("%s/lyr_%04d.html", output_dir, i); tmp_table = sqlite3_mprintf ("%s%s_%s", tmp_prefix, table, geom); if (p_cache != NULL) ret = sanitize_geometry_column_r (p_cache, sqlite, table, geom, tmp_table, report, &n_invalids, &n_repaired, &n_discarded, &n_failures, err_msg); else ret = sanitize_geometry_column (sqlite, table, geom, tmp_table, report, &n_invalids, &n_repaired, &n_discarded, &n_failures, err_msg); sqlite3_free (report); sqlite3_free (tmp_table); fprintf (out, "\t\t\t", i); fprintf (out, "", table, geom); sum_not_repaired += n_failures; if (n_invalids == 0) { p_msg = "NONE: this layer was already fully valid"; cls_msg = "nil"; } else if (n_discarded == 0 && n_failures == 0) { p_msg = "NONE: this layer has been successfully sanitized and is now fully valid"; cls_msg = "ok"; } else if (n_discarded == 0 && n_failures > 0) { p_msg = "Please check all discarded fragments"; cls_msg = "wng"; } else { p_msg = "Manually adjust all Geometries beyond possible repair, then retry"; cls_msg = "err"; } if (n_repaired == 0) cls_1 = "nil"; else cls_1 = "ok"; fprintf (out, "", n_invalids, cls_1, n_repaired); if (n_discarded == 0) cls_1 = "nil"; else cls_1 = "wng"; if (n_failures == 0) cls_2 = "nil"; else cls_2 = "err"; fprintf (out, "", cls_1, n_discarded, cls_2, n_failures); fprintf (out, "\n", cls_msg, p_msg); } } sqlite3_free_table (results); /* generating the HTML footer */ fprintf (out, "\t\t
Show DetailsTableGeometryInvalid GeometriesRepaired GeometriesRepaired Geometries
(by Discarding Fragments)
Repair Failures
(beyond possible repair)
Suggested Action
show%s%s%d%d%d%d%s
\n\t\n\n"); fclose (out); if (x_not_repaired != NULL) *x_not_repaired = sum_not_repaired; return 1; stop: return 0; } SPATIALITE_DECLARE int sanitize_all_geometry_columns (sqlite3 * sqlite, const char *tmp_prefix, const char *output_dir, int *x_not_repaired, char **err_msg) { return sanitize_all_geometry_columns_common (NULL, sqlite, tmp_prefix, output_dir, x_not_repaired, err_msg); } SPATIALITE_DECLARE int sanitize_all_geometry_columns_r (const void *p_cache, sqlite3 * sqlite, const char *tmp_prefix, const char *output_dir, int *x_not_repaired, char **err_msg) { return sanitize_all_geometry_columns_common (p_cache, sqlite, tmp_prefix, output_dir, x_not_repaired, err_msg); } #else /* LIBXML2 isn't enabled */ SPATIALITE_DECLARE int sanitize_all_geometry_columns (sqlite3 * sqlite, const char *tmp_prefix, const char *output_dir, int *x_not_repaired, char **err_msg) { /* LWGEOM isn't enabled: always returning an error */ int len; const char *msg = "Sorry ... libspatialite was built disabling LWGEOM\n" "and is thus unable to support MakeValid"; /* silencing stupid compiler warnings */ if (sqlite == NULL || tmp_prefix == NULL || output_dir == NULL || x_not_repaired == NULL) tmp_prefix = NULL; if (err_msg == NULL) return 0; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); return 0; } SPATIALITE_DECLARE int sanitize_all_geometry_columns_r (const void *p_cache, sqlite3 * sqlite, const char *tmp_prefix, const char *output_dir, int *x_not_repaired, char **err_msg) { /* LWGEOM isn't enabled: always returning an error */ int len; const char *msg = "Sorry ... libspatialite was built disabling LWGEOM\n" "and is thus unable to support MakeValid"; /* silencing stupid compiler warnings */ if (p_cache == NULL || sqlite == NULL || tmp_prefix == NULL || output_dir == NULL || x_not_repaired == NULL) tmp_prefix = NULL; if (err_msg == NULL) return 0; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); return 0; } SPATIALITE_DECLARE int sanitize_geometry_column (sqlite3 * sqlite, const char *table, const char *geom, const char *tmp_table, const char *report_path, int *n_invalids, int *n_repaired, int *n_discarded, int *n_failures, char **err_msg) { /* LWGEOM isn't enabled: always returning an error */ int len; const char *msg = "Sorry ... libspatialite was built disabling LWGEOM\n" "and is thus unable to support MakeValid"; /* silencing stupid compiler warnings */ if (sqlite == NULL || table == NULL || geom == NULL || tmp_table == NULL || report_path == NULL || n_invalids == NULL || n_repaired == NULL || n_discarded == NULL || n_failures == NULL) table = NULL; if (err_msg == NULL) return 0; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); return 0; } SPATIALITE_DECLARE int sanitize_geometry_column_r (const void *p_cache, sqlite3 * sqlite, const char *table, const char *geom, const char *tmp_table, const char *report_path, int *n_invalids, int *n_repaired, int *n_discarded, int *n_failures, char **err_msg) { /* LWGEOM isn't enabled: always returning an error */ int len; const char *msg = "Sorry ... libspatialite was built disabling LWGEOM\n" "and is thus unable to support MakeValid"; /* silencing stupid compiler warnings */ if (p_cache == NULL || sqlite == NULL || table == NULL || geom == NULL || tmp_table == NULL || report_path == NULL || n_invalids == NULL || n_repaired == NULL || n_discarded == NULL || n_failures == NULL) table = NULL; if (err_msg == NULL) return 0; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); return 0; } #endif /* end LWGEOM conditionals */ #ifndef OMIT_GEOS /* only if GEOS is supported */ static struct validity_report * alloc_validity_report (void) { /* allocating the report container struct */ struct validity_report *p = malloc (sizeof (struct validity_report)); p->first = NULL; p->last = NULL; p->n_rows = 0; p->n_nullgeoms = 0; p->n_valids = 0; p->n_invalids = 0; p->n_warnings = 0; return p; } static void free_validity_report (struct validity_report *p) { /* memory cleanup: freeing the report container struct */ struct validity_report_row *r; struct validity_report_row *rn; r = p->first; while (r) { rn = r->next; if (r->warning != NULL) free (r->warning); if (r->error != NULL) free (r->error); if (r->extra != NULL) free (r->extra); free (r); r = rn; } free (p); } static void addMessageToValidityReport (struct validity_report *report, sqlite3_int64 rowid, int valid, const char *error, const char *warning, const char *extra) { /* adding a message to the report */ int len; struct validity_report_row *r = malloc (sizeof (struct validity_report_row)); r->rowid = rowid; r->valid = valid; r->error = NULL; r->warning = NULL; r->extra = NULL; r->next = NULL; if (error) { len = strlen (error); r->error = malloc (len + 1); strcpy (r->error, error); } if (warning) { len = strlen (warning); r->warning = malloc (len + 1); strcpy (r->warning, warning); } if (extra) { len = strlen (extra); r->extra = malloc (len + 1); strcpy (r->extra, extra); } if (!valid) report->n_invalids += 1; else report->n_warnings += 1; if (report->first == NULL) report->first = r; if (report->last != NULL) report->last->next = r; report->last = r; } static int check_geometry_column_common (const void *p_cache, sqlite3 * sqlite, const char *table, const char *geom, const char *report_path, int *n_rows, int *n_invalids, char **err_msg) { /* checks a Geometry Column for validity */ char *sql; char *xtable; char *xgeom; sqlite3_stmt *stmt; int ret; int gtype; int srid; const char *x_type; const char *x_dims; char num[256]; time_t v_time; struct tm *v_tm; const char *day; const char *month; FILE *out = NULL; const char *p_msg; int len; struct validity_report_row *p_r; struct validity_report *report = alloc_validity_report (); if (err_msg != NULL) *err_msg = NULL; if (!check_table_column (sqlite, table, geom, >ype, &srid)) { spatialite_e ("check_geometry_column error: <%s>\n" "Not defined in \"geometry_columns\"", table); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("check_geometry_column error: <%s><%s>\n" "Not defined in \"geometry_columns\"", table, geom); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } goto stop; } /* decoding Geometry Type and Dimensions */ switch (gtype) { case 0: x_type = "GEOMETRY"; x_dims = "XY"; break; case 1000: x_type = "GEOMETRY"; x_dims = "XYZ"; break; case 2000: x_type = "GEOMETRY"; x_dims = "XYM"; break; case 3000: x_type = "GEOMETRY"; x_dims = "XYZM"; break; case 1: x_type = "POINT"; x_dims = "XY"; break; case 1001: x_type = "POINT"; x_dims = "XYZ"; break; case 2001: x_type = "POINT"; x_dims = "XYM"; break; case 3001: x_type = "POINT"; x_dims = "XYZM"; break; case 2: x_type = "LINESTRING"; x_dims = "XY"; break; case 1002: x_type = "LINESTRING"; x_dims = "XYZ"; break; case 2002: x_type = "LINESTRING"; x_dims = "XYM"; break; case 3002: x_type = "LINESTRING"; x_dims = "XYZM"; break; case 3: x_type = "POLYGON"; x_dims = "XY"; break; case 1003: x_type = "POLYGON"; x_dims = "XYZ"; break; case 2003: x_type = "POLYGON"; x_dims = "XYM"; break; case 3003: x_type = "POLYGON"; x_dims = "XYZM"; break; case 4: x_type = "MULTIPOINT"; x_dims = "XY"; break; case 1004: x_type = "MULTIPOINT"; x_dims = "XYZ"; break; case 2004: x_type = "MULTIPOINT"; x_dims = "XYM"; break; case 3004: x_type = "MULTIPOINT"; x_dims = "XYZM"; break; case 5: x_type = "MULTILINESTRING"; x_dims = "XY"; break; case 1005: x_type = "MULTILINESTRING"; x_dims = "XYZ"; break; case 2005: x_type = "MULTILINESTRING"; x_dims = "XYM"; break; case 3005: x_type = "MULTILINESTRING"; x_dims = "XYZM"; break; case 6: x_type = "MULTIPOLYGON"; x_dims = "XY"; break; case 1006: x_type = "MULTIPOLYGON"; x_dims = "XYZ"; break; case 2006: x_type = "MULTIPOLYGON"; x_dims = "XYM"; break; case 3006: x_type = "MULTIPOLYGON"; x_dims = "XYZM"; break; case 7: x_type = "GEOMETRYCOLLECTION"; x_dims = "XY"; break; case 1007: x_type = "GEOMETRYCOLLECTION"; x_dims = "XYZ"; break; case 2007: x_type = "GEOMETRYCOLLECTION"; x_dims = "XYM"; break; case 3007: x_type = "GEOMETRYCOLLECTION"; x_dims = "XYZM"; break; default: x_type = "UNKNOWN"; x_dims = "UNKNOWN"; break; }; xtable = gaiaDoubleQuotedSql (table); xgeom = gaiaDoubleQuotedSql (geom); sql = sqlite3_mprintf ("SELECT ROWID, \"%s\" FROM \"%s\"", xgeom, xtable); free (xtable); free (xgeom); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("check_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("check_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } goto stop; } /* opening the HTML report */ out = fopen (report_path, "wb"); if (out == NULL) goto stop; while (1) { /* scrolling the result set */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing one row from the resultset */ gaiaGeomCollPtr geom = NULL; sqlite3_int64 rowid = sqlite3_column_int (stmt, 0); report->n_rows += 1; if (sqlite3_column_type (stmt, 1) == SQLITE_BLOB) { const unsigned char *blob = sqlite3_column_blob (stmt, 1); int n_bytes = sqlite3_column_bytes (stmt, 1); geom = gaiaFromSpatiaLiteBlobWkb (blob, n_bytes); } if (geom) { /* checking a geometry for validity */ int valid; const char *error; const char *warning; const char *extra; if (p_cache != NULL) { gaiaResetGeosMsg_r (p_cache); valid = gaiaIsValid_r (p_cache, geom); error = gaiaGetGeosErrorMsg_r (p_cache); warning = gaiaGetGeosWarningMsg_r (p_cache); extra = gaiaGetGeosAuxErrorMsg_r (p_cache); } else { gaiaResetGeosMsg (); valid = gaiaIsValid (geom); error = gaiaGetGeosErrorMsg (); warning = gaiaGetGeosWarningMsg (); extra = gaiaGetGeosAuxErrorMsg (); } if (!valid || error || warning) addMessageToValidityReport (report, rowid, valid, error, warning, extra); else report->n_valids += 1; gaiaFreeGeomColl (geom); } else report->n_nullgeoms += 1; } else { spatialite_e ("check_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); if (err_msg != NULL) { char *msg = sqlite3_mprintf ("check_geometry_column error: <%s>\n", sqlite3_errmsg (sqlite)); len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); sqlite3_free (msg); } break; } } sqlite3_finalize (stmt); /* generating the HTML header */ fprintf (out, "\n"); fprintf (out, "\n\t\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\tSpatiaLite Validity Check - Table: %s\n", table); fprintf (out, "\t\t\n"); fprintf (out, "\t\n\t\n"); time (&v_time); v_tm = localtime (&v_time); switch (v_tm->tm_wday) { case 0: day = "Sun"; break; case 1: day = "Mon"; break; case 2: day = "Tue"; break; case 3: day = "Wed"; break; case 4: day = "Thu"; break; case 5: day = "Fri"; break; case 6: day = "Sat"; break; }; switch (v_tm->tm_mon) { case 0: month = "Jan"; break; case 1: month = "Feb"; break; case 2: month = "Mar"; break; case 3: month = "Apr"; break; case 4: month = "May"; break; case 5: month = "Jun"; break; case 6: month = "Jul"; break; case 7: month = "Aug"; break; case 8: month = "Sep"; break; case 9: month = "Oct"; break; case 10: month = "Nov"; break; case 11: month = "Dec"; break; }; fprintf (out, "\t\t%d-%s-%d, %s [%02d:%02d:%02d]
\n", v_tm->tm_year + 1900, month, v_tm->tm_mday, day, v_tm->tm_hour, v_tm->tm_min, v_tm->tm_sec); fprintf (out, "\t\t

SpatiaLite Validity Check

\n"); /* generating the summary sub-report */ fprintf (out, "\t\t

Summary

\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\t\t\n"); fprintf (out, "\t\t\t\n", table); fprintf (out, "\t\t\t\n", geom); fprintf (out, "\t\t\t\n", x_type); fprintf (out, "\t\t\t\n", x_dims); fprintf (out, "\t\t\t\n", srid); fprintf (out, "\t\t\t\n"); fprintf (out, "\t\t\t\n", report->n_rows); if (report->n_nullgeoms > 0) fprintf (out, "\t\t\t\n", report->n_nullgeoms); else fprintf (out, "\t\t\t\n"); fprintf (out, "\t\t\t\n", report->n_valids); if (report->n_warnings > 0) fprintf (out, "\t\t\t\n", report->n_warnings); else fprintf (out, "\t\t\t\n"); if (report->n_invalids > 0) fprintf (out, "\t\t\t\n", report->n_invalids); else fprintf (out, "\t\t\t\n"); fprintf (out, "\t\t\t\n"); if (report->n_invalids > 0) { fprintf (out, "\t\t\t\n"); } else if (report->n_warnings > 0) { fprintf (out, "\t\t\t\n"); } else { fprintf (out, "\t\t\t\n"); } fprintf (out, "\t\t
Table / Layer
Table%s
Geometry Column%s
Geometry Type%s
Dimensions%s
SRID%d
Statistics
Total Rows%d
NULL Geometries%d
NULL GeometriesNONE
Valid Geometries (full valid)%d
Valid Geometries (minor issues)%d
Valid Geometries (minor issues)NONE
Invalid Geometries%d
Invalid GeometriesNONE
Suggested Action
This layer contains invalid Geometries;
"); fprintf (out, "a repair action is urgently required.
This layer contains valid but dubious Geometries;
"); fprintf (out, "a repair action is suggested.
This layer is perfectly valid;
"); fprintf (out, "doesn't require any corrective action.
\n"); if (report->n_invalids > 0) { /* generating the errors sub-report */ fprintf (out, "\t\t\t
\n\t\t

Invalid Geometries List

\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\t\t"); fprintf (out, "\n"); p_r = report->first; while (p_r) { if (p_r->valid != 0) { p_r = p_r->next; continue; } sprintf (num, FRMT64, p_r->rowid); p_msg = "Unknown cause"; if (p_r->error) p_msg = p_r->error; else if (p_r->warning) p_msg = p_r->warning; else if (p_r->extra) p_msg = p_r->extra; fprintf (out, "\t\t\t\n", num, p_msg); p_r = p_r->next; } fprintf (out, "\t\t
ROWIDError Cause
%s%s
\n"); } if (report->n_warnings > 0) { /* generating the warnings sub-report */ fprintf (out, "\t\t\t
\n\t\t

Valid Geometries List (anyway presenting some minor issue)

\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\t\t"); fprintf (out, "\n"); p_r = report->first; while (p_r) { if (p_r->valid != 1) { p_r = p_r->next; continue; } sprintf (num, FRMT64, p_r->rowid); p_msg = "Unknown cause"; if (p_r->error) p_msg = p_r->error; else if (p_r->warning) p_msg = p_r->warning; fprintf (out, "\t\t\t\n", num, p_msg); p_r = p_r->next; } fprintf (out, "\t\t
ROWIDWarning Cause
%s%s
\n"); } /* generating the HTML footer */ fprintf (out, "\t\n\n"); fclose (out); if (n_rows != NULL) *n_rows = report->n_rows; if (n_invalids != NULL) *n_invalids = report->n_invalids; free_validity_report (report); return 1; stop: free_validity_report (report); if (out) fclose (out); return 0; } SPATIALITE_DECLARE int check_geometry_column (sqlite3 * sqlite, const char *table, const char *geom, const char *report_path, int *n_rows, int *n_invalids, char **err_msg) { return check_geometry_column_common (NULL, sqlite, table, geom, report_path, n_rows, n_invalids, err_msg); } SPATIALITE_DECLARE int check_geometry_column_r (const void *p_cache, sqlite3 * sqlite, const char *table, const char *geom, const char *report_path, int *n_rows, int *n_invalids, char **err_msg) { return check_geometry_column_common (p_cache, sqlite, table, geom, report_path, n_rows, n_invalids, err_msg); } static int check_all_geometry_columns_common (const void *p_cache, sqlite3 * sqlite, const char *output_dir, int *x_invalids, char **err_msg) { /* checks all Geometry Columns for validity */ const char *sql; int ret; int i; char **results; int rows; int columns; int n_rows; int n_invalids; char *report; FILE *out = NULL; time_t v_time; struct tm *v_tm; const char *day; const char *month; int sum_invalids = 0; /* attempting to create the output directory */ #if defined(_WIN32) _mkdir (output_dir); #else mkdir (output_dir, 0777); #endif if (err_msg != NULL) *err_msg = NULL; /* opening the HTML report */ report = sqlite3_mprintf ("%s/index.html", output_dir); out = fopen (report, "wb"); sqlite3_free (report); if (out == NULL) goto stop; /* generating the HTML header */ fprintf (out, "\n"); fprintf (out, "\n\t\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\tSpatiaLite Validity Check - All Tables\n"); fprintf (out, "\t\t\n"); fprintf (out, "\t\n\t\n"); time (&v_time); v_tm = localtime (&v_time); switch (v_tm->tm_wday) { case 0: day = "Sun"; break; case 1: day = "Mon"; break; case 2: day = "Tue"; break; case 3: day = "Wed"; break; case 4: day = "Thu"; break; case 5: day = "Fri"; break; case 6: day = "Sat"; break; }; switch (v_tm->tm_mon) { case 0: month = "Jan"; break; case 1: month = "Feb"; break; case 2: month = "Mar"; break; case 3: month = "Apr"; break; case 4: month = "May"; break; case 5: month = "Jun"; break; case 6: month = "Jul"; break; case 7: month = "Aug"; break; case 8: month = "Sep"; break; case 9: month = "Oct"; break; case 10: month = "Nov"; break; case 11: month = "Dec"; break; }; fprintf (out, "\t\t%d-%s-%d, %s [%02d:%02d:%02d]
\n", v_tm->tm_year + 1900, month, v_tm->tm_mday, day, v_tm->tm_hour, v_tm->tm_min, v_tm->tm_sec); fprintf (out, "\t\t

SpatiaLite Validity Check

\n"); /* table header */ fprintf (out, "\t\t\n"); fprintf (out, "\t\t\t"); fprintf (out, ""); fprintf (out, ""); fprintf (out, ""); fprintf (out, ""); fprintf (out, "\n"); sql = "SELECT f_table_name, f_geometry_column FROM geometry_columns"; ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) goto stop; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { const char *table = results[(i * columns) + 0]; const char *geom = results[(i * columns) + 1]; report = sqlite3_mprintf ("%s/lyr_%04d.html", output_dir, i); if (p_cache != NULL) ret = check_geometry_column_r (p_cache, sqlite, table, geom, report, &n_rows, &n_invalids, err_msg); else ret = check_geometry_column (sqlite, table, geom, report, &n_rows, &n_invalids, err_msg); sqlite3_free (report); fprintf (out, "\t\t\t", i); fprintf (out, "", table, geom); sum_invalids += n_invalids; if (n_invalids == 0) { fprintf (out, "", n_rows, n_invalids); fprintf (out, "\n"); } else { fprintf (out, "", n_rows, n_invalids); fprintf (out, "\n"); } } } sqlite3_free_table (results); /* generating the HTML footer */ fprintf (out, "\t\t
Show DetailsTableGeometryTotal RowsInvalid GeometriesSuggested Action
show%s%s%d%dNONE: this layer is fully valid
%d%dRepairing this layer is urgently required
\n\t\n\n"); fclose (out); if (x_invalids != NULL) *x_invalids = sum_invalids; return 1; stop: return 0; } SPATIALITE_DECLARE int check_all_geometry_columns (sqlite3 * sqlite, const char *output_dir, int *x_invalids, char **err_msg) { return check_all_geometry_columns_common (NULL, sqlite, output_dir, x_invalids, err_msg); } SPATIALITE_DECLARE int check_all_geometry_columns_r (const void *p_cache, sqlite3 * sqlite, const char *output_dir, int *x_invalids, char **err_msg) { return check_all_geometry_columns_common (p_cache, sqlite, output_dir, x_invalids, err_msg); } #else SPATIALITE_DECLARE int check_all_geometry_columns (sqlite3 * sqlite, const char *output_dir, int *x_invalids, char **err_msg) { /* GEOS isn't enabled: always returning an error */ int len; const char *msg = "Sorry ... libspatialite was built disabling LWGEOM\n" "and is thus unable to support IsValid"; /* silencing stupid compiler warnings */ if (sqlite == NULL || output_dir == NULL || x_invalids == NULL) output_dir = NULL; if (err_msg == NULL) return 0; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); return 0; } SPATIALITE_DECLARE int check_all_geometry_columns_r (const void *p_cache, sqlite3 * sqlite, const char *output_dir, int *x_invalids, char **err_msg) { /* GEOS isn't enabled: always returning an error */ int len; const char *msg = "Sorry ... libspatialite was built disabling LWGEOM\n" "and is thus unable to support IsValid"; /* silencing stupid compiler warnings */ if (p_cache == NULL || sqlite == NULL || output_dir == NULL || x_invalids == NULL) output_dir = NULL; if (err_msg == NULL) return 0; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); return 0; } SPATIALITE_DECLARE int check_geometry_column (sqlite3 * sqlite, const char *table, const char *geom, const char *report_path, int *n_rows, int *n_invalids, char **err_msg) { /* GEOS isn't enabled: always returning an error */ int len; const char *msg = "Sorry ... libspatialite was built disabling GEOS\n" "and is thus unable to support IsValid"; /* silencing stupid compiler warnings */ if (sqlite == NULL || table == NULL || geom == NULL || report_path == NULL || n_rows == NULL || n_invalids == NULL) table = NULL; if (err_msg == NULL) return 0; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); return 0; } SPATIALITE_DECLARE int check_geometry_column_r (const void *p_cache, sqlite3 * sqlite, const char *table, const char *geom, const char *report_path, int *n_rows, int *n_invalids, char **err_msg) { /* GEOS isn't enabled: always returning an error */ int len; const char *msg = "Sorry ... libspatialite was built disabling GEOS\n" "and is thus unable to support IsValid"; /* silencing stupid compiler warnings */ if (p_cache == NULL || sqlite == NULL || table == NULL || geom == NULL || report_path == NULL || n_rows == NULL || n_invalids == NULL) table = NULL; if (err_msg == NULL) return 0; len = strlen (msg); *err_msg = malloc (len + 1); strcpy (*err_msg, msg); return 0; } #endif /* end GEOS conditionals */ libspatialite-4.3.0a/src/shapefiles/shapefiles.c0000664000175000017500000047560012544707704016657 00000000000000/* shapefiles.c -- implements shapefile support [import - export] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Brad Hards Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) /* MSVC strictly requires this include [off_t] */ #include #endif #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #include #ifndef OMIT_FREEXL #include #endif #if defined(_WIN32) && !defined(__MINGW32__) #define strcasecmp _stricmp #define strncasecmp _strnicmp #endif /* 64 bit integer: portable format for printf() */ #if defined(_WIN32) && !defined(__MINGW32__) #define FRMT64 "%I64d" #else #define FRMT64 "%lld" #endif struct auxdbf_fld { /* auxiliary DBF field struct */ char already_used; gaiaDbfFieldPtr dbf_field; struct auxdbf_fld *next; }; struct auxdbf_list { /* auxiliary DBF struct */ struct auxdbf_fld *first; struct auxdbf_fld *last; }; struct resultset_values { /* a struct wrapping values from a resultset */ int type; sqlite3_int64 int_value; double dbl_value; unsigned char *txt_blob_value; int txt_blob_size; }; struct resultset_comparator { /* object for comparing two rows of the same resultset */ struct resultset_values *previous; struct resultset_values *current; int num_columns; sqlite3_int64 previous_rowid; sqlite3_int64 current_rowid; }; static struct resultset_comparator * create_resultset_comparator (int columns) { /* creating an empty resultset comparator object */ int i; struct resultset_comparator *p = malloc (sizeof (struct resultset_comparator)); p->num_columns = columns; p->previous_rowid = -1; p->current_rowid = -1; p->previous = malloc (sizeof (struct resultset_values) * columns); p->current = malloc (sizeof (struct resultset_values) * columns); for (i = 0; i < columns; i++) { struct resultset_values *value = p->previous + i; value->type = SQLITE_NULL; value->txt_blob_value = NULL; value = p->current + i; value->type = SQLITE_NULL; value->txt_blob_value = NULL; } return p; } static void destroy_resultset_comparator (struct resultset_comparator *ptr) { /* memory cleanup - destroying a resultset comparator object */ int i; if (ptr == NULL) return; for (i = 0; i < ptr->num_columns; i++) { struct resultset_values *value = ptr->previous + i; if (value->txt_blob_value != NULL) free (value->txt_blob_value); value = ptr->current + i; if (value->txt_blob_value != NULL) free (value->txt_blob_value); } if (ptr->previous != NULL) free (ptr->previous); if (ptr->current != NULL) free (ptr->current); free (ptr); } static void save_row_from_resultset (struct resultset_comparator *ptr, sqlite3_stmt * stmt) { /* saving the current row values */ int i; int size; const unsigned char *p; if (ptr == NULL) return; ptr->current_rowid = sqlite3_column_int64 (stmt, 0); for (i = 0; i < ptr->num_columns; i++) { struct resultset_values *value = ptr->current + i; value->type = sqlite3_column_type (stmt, i + 1); switch (value->type) { case SQLITE_INTEGER: value->int_value = sqlite3_column_int64 (stmt, i + 1); break; case SQLITE_FLOAT: value->dbl_value = sqlite3_column_double (stmt, i + 1); break; case SQLITE_TEXT: p = sqlite3_column_text (stmt, i + 1); size = strlen ((const char *) p); value->txt_blob_value = malloc (size + 1); strcpy ((char *) (value->txt_blob_value), (const char *) p); break; case SQLITE_BLOB: p = sqlite3_column_blob (stmt, i + 1); size = sqlite3_column_bytes (stmt, i + 1); value->txt_blob_value = malloc (size); memcpy (value->txt_blob_value, p, size); value->txt_blob_size = size; break; }; } } static int resultset_rows_equals (struct resultset_comparator *ptr) { /* comparing the current and previous row from the resultset */ int i; if (ptr == NULL) return 0; for (i = 0; i < ptr->num_columns; i++) { struct resultset_values *val_prev = ptr->previous + i; struct resultset_values *val_curr = ptr->current + i; if (val_prev->type != val_curr->type) return 0; switch (val_prev->type) { case SQLITE_INTEGER: if (val_prev->int_value != val_curr->int_value) return 0; break; case SQLITE_FLOAT: if (val_prev->dbl_value != val_curr->dbl_value) return 0; break; case SQLITE_TEXT: if (strcmp ((const char *) (val_prev->txt_blob_value), (const char *) (val_curr->txt_blob_value)) != 0) return 0; break; case SQLITE_BLOB: if (val_prev->txt_blob_size != val_curr->txt_blob_size) return 0; if (memcmp (val_prev->txt_blob_value, val_curr->txt_blob_value, val_curr->txt_blob_size) != 0) return 0; break; }; } return 1; } static sqlite3_int64 get_current_resultset_rowid (struct resultset_comparator *ptr) { /* returns the current ROWID */ if (ptr == NULL) return -1; return ptr->current_rowid; } static void reset_resultset_current_row (struct resultset_comparator *ptr) { /* resetting the resultset current row values */ int i; if (ptr == NULL) return; ptr->current_rowid = -1; for (i = 0; i < ptr->num_columns; i++) { struct resultset_values *value = ptr->current + i; value->type = SQLITE_NULL; if (value->txt_blob_value != NULL) free (value->txt_blob_value); value->txt_blob_value = NULL; } } static void swap_resultset_rows (struct resultset_comparator *ptr) { /* resetting the resultset comparator */ int i; if (ptr == NULL) return; ptr->previous_rowid = ptr->current_rowid; ptr->current_rowid = -1; for (i = 0; i < ptr->num_columns; i++) { struct resultset_values *val_prev = ptr->previous + i; struct resultset_values *val_curr = ptr->current + i; if (val_prev->txt_blob_value != NULL) free (val_prev->txt_blob_value); val_prev->type = val_curr->type; val_prev->int_value = val_curr->int_value; val_prev->dbl_value = val_curr->dbl_value; val_prev->txt_blob_value = val_curr->txt_blob_value; val_prev->txt_blob_size = val_curr->txt_blob_size; val_curr->type = SQLITE_NULL; val_curr->txt_blob_value = NULL; } } static struct auxdbf_list * alloc_auxdbf (gaiaDbfListPtr dbf_list) { /* allocating the auxiliary DBF struct */ gaiaDbfFieldPtr fld; struct auxdbf_fld *fld_ex; struct auxdbf_list *auxdbf = malloc (sizeof (struct auxdbf_list)); auxdbf->first = NULL; auxdbf->last = NULL; fld = dbf_list->First; while (fld) { fld_ex = malloc (sizeof (struct auxdbf_fld)); fld_ex->already_used = 0; fld_ex->dbf_field = fld; fld_ex->next = NULL; if (auxdbf->first == NULL) auxdbf->first = fld_ex; if (auxdbf->last != NULL) auxdbf->last->next = fld_ex; auxdbf->last = fld_ex; fld = fld->Next; } return auxdbf; } static void free_auxdbf (struct auxdbf_list *auxdbf) { /* freeing an auxiliary DBF struct */ struct auxdbf_fld *n_fld; struct auxdbf_fld *fld = auxdbf->first; while (fld != NULL) { n_fld = fld->next; free (fld); fld = n_fld; } free (auxdbf); } static gaiaDbfFieldPtr getDbfField (struct auxdbf_list *aux, char *name) { /* find a DBF attribute by name */ struct auxdbf_fld *fld = aux->first; while (fld) { if (strcasecmp (fld->dbf_field->Name, name) == 0) { fld->already_used = 1; return fld->dbf_field; } fld = fld->next; } fld = aux->first; while (fld) { if (fld->already_used) { fld = fld->next; continue; } if (strncasecmp (fld->dbf_field->Name, name, 9) == 0) { fld->already_used = 1; return fld->dbf_field; } fld = fld->next; } return NULL; } #ifndef OMIT_ICONV /* ICONV enabled: supporting SHP */ SPATIALITE_DECLARE int load_shapefile (sqlite3 * sqlite, char *shp_path, char *table, char *charset, int srid, char *column, int coerce2d, int compressed, int verbose, int spatial_index, int *rows, char *err_msg) { return load_shapefile_ex (sqlite, shp_path, table, charset, srid, column, NULL, NULL, coerce2d, compressed, verbose, spatial_index, rows, err_msg); } SPATIALITE_DECLARE int load_shapefile_ex (sqlite3 * sqlite, char *shp_path, char *table, char *charset, int srid, char *g_column, char *gtype, char *pk_column, int coerce2d, int compressed, int verbose, int spatial_index, int *rows, char *err_msg) { return load_shapefile_ex2 (sqlite, shp_path, table, charset, srid, g_column, gtype, pk_column, coerce2d, compressed, verbose, spatial_index, 0, rows, err_msg); } SPATIALITE_DECLARE int load_shapefile_ex2 (sqlite3 * sqlite, char *shp_path, char *table, char *charset, int srid, char *g_column, char *gtype, char *pk_column, int coerce2d, int compressed, int verbose, int spatial_index, int text_dates, int *rows, char *err_msg) { sqlite3_stmt *stmt = NULL; int ret; char *errMsg = NULL; char *sql; char *dummy; int already_exists = 0; int metadata = 0; int sqlError = 0; gaiaShapefilePtr shp = NULL; gaiaDbfFieldPtr dbf_field; int cnt; int col_cnt; int seed; int len; int dup; int idup; int current_row; char **col_name = NULL; unsigned char *blob; int blob_size; char *geom_type; char *txt_dims; char *geo_column = g_column; char *xgtype = gtype; char *qtable = NULL; char *qpk_name = NULL; char *pk_name = NULL; int pk_autoincr = 1; char *xname; int pk_type = SQLITE_INTEGER; int pk_set; gaiaOutBuffer sql_statement; if (!geo_column) geo_column = "Geometry"; if (rows) *rows = -1; if (!xgtype) ; else { if (strcasecmp (xgtype, "LINESTRING") == 0) xgtype = "LINESTRING"; else if (strcasecmp (xgtype, "LINESTRINGZ") == 0) xgtype = "LINESTRINGZ"; else if (strcasecmp (xgtype, "LINESTRINGM") == 0) xgtype = "LINESTRINGM"; else if (strcasecmp (xgtype, "LINESTRINGZM") == 0) xgtype = "LINESTRINGZM"; else if (strcasecmp (xgtype, "MULTILINESTRING") == 0) xgtype = "MULTILINESTRING"; else if (strcasecmp (xgtype, "MULTILINESTRINGZ") == 0) xgtype = "MULTILINESTRINGZ"; else if (strcasecmp (xgtype, "MULTILINESTRINGM") == 0) xgtype = "MULTILINESTRINGM"; else if (strcasecmp (xgtype, "MULTILINESTRINGZM") == 0) xgtype = "MULTILINESTRINGZM"; else if (strcasecmp (xgtype, "POLYGON") == 0) xgtype = "POLYGON"; else if (strcasecmp (xgtype, "POLYGONZ") == 0) xgtype = "POLYGONZ"; else if (strcasecmp (xgtype, "POLYGONM") == 0) xgtype = "POLYGONM"; else if (strcasecmp (xgtype, "POLYGONZM") == 0) xgtype = "POLYGONZM"; else if (strcasecmp (xgtype, "MULTIPOLYGON") == 0) xgtype = "MULTIPOLYGON"; else if (strcasecmp (xgtype, "MULTIPOLYGONZ") == 0) xgtype = "MULTIPOLYGONZ"; else if (strcasecmp (xgtype, "MULTIPOLYGONM") == 0) xgtype = "MULTIPOLYGONM"; else if (strcasecmp (xgtype, "MULTIPOLYGONZM") == 0) xgtype = "MULTIPOLYGONZM"; else xgtype = NULL; } qtable = gaiaDoubleQuotedSql (table); /* checking if TABLE already exists */ sql = sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = 'table' " "AND Lower(name) = Lower(%Q)", table); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); goto clean_up; } while (1) { /* scrolling the result set */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) already_exists = 1; else { spatialite_e ("load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); break; } } sqlite3_finalize (stmt); if (already_exists) { if (!err_msg) spatialite_e ("load shapefile error: table '%s' already exists\n", table); else sprintf (err_msg, "load shapefile error: table '%s' already exists\n", table); if (qtable) free (qtable); if (qpk_name) free (qpk_name); return 0; } /* checking if MetaData GEOMETRY_COLUMNS exists */ sql = "SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'geometry_columns'"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); if (qtable) free (qtable); if (qpk_name) free (qpk_name); return 0; } while (1) { /* scrolling the result set */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) metadata = 1; else { spatialite_e ("load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); break; } } sqlite3_finalize (stmt); shp = gaiaAllocShapefile (); gaiaOpenShpRead (shp, shp_path, charset, "UTF-8"); if (!(shp->Valid)) { if (!err_msg) { spatialite_e ("load shapefile error: cannot open shapefile '%s'\n", shp_path); if (shp->LastError) spatialite_e ("\tcause: %s\n", shp->LastError); } else { char extra[512]; *extra = '\0'; if (shp->LastError) sprintf (extra, "\n\tcause: %s\n", shp->LastError); sprintf (err_msg, "load shapefile error: cannot open shapefile '%s'%s", shp_path, extra); } gaiaFreeShapefile (shp); if (qtable) free (qtable); if (qpk_name) free (qpk_name); return 0; } /* checking for duplicate / illegal column names and antialising them */ col_cnt = 0; dbf_field = shp->Dbf->First; while (dbf_field) { /* counting DBF fields */ col_cnt++; dbf_field = dbf_field->Next; } col_name = malloc (sizeof (char *) * col_cnt); cnt = 0; seed = 0; if (pk_column != NULL) { /* validating the Primary Key column */ dbf_field = shp->Dbf->First; while (dbf_field) { if (strcasecmp (pk_column, dbf_field->Name) == 0) { /* ok, using this field as Primary Key */ pk_name = pk_column; pk_autoincr = 0; switch (dbf_field->Type) { case 'C': pk_type = SQLITE_TEXT; break; case 'N': if (dbf_field->Decimals) pk_type = SQLITE_FLOAT; else { if (dbf_field->Length <= 18) pk_type = SQLITE_INTEGER; else pk_type = SQLITE_FLOAT; } break; case 'D': if (text_dates) pk_type = SQLITE_TEXT; else pk_type = SQLITE_FLOAT; break; case 'F': pk_type = SQLITE_FLOAT; break; case 'L': pk_type = SQLITE_INTEGER; break; }; } dbf_field = dbf_field->Next; } } if (pk_name == NULL) { if (pk_column != NULL) pk_name = pk_column; else pk_name = "PK_UID"; } qpk_name = gaiaDoubleQuotedSql (pk_name); dbf_field = shp->Dbf->First; while (dbf_field) { /* preparing column names */ char *xdummy = NULL; if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dummy = dbf_field->Name; len = strlen (dummy); *(col_name + cnt) = malloc (len + 1); strcpy (*(col_name + cnt), dummy); cnt++; dbf_field = dbf_field->Next; continue; } dummy = dbf_field->Name; dup = 0; for (idup = 0; idup < cnt; idup++) { if (strcasecmp (dummy, *(col_name + idup)) == 0) dup = 1; } if (strcasecmp (dummy, pk_name) == 0) dup = 1; if (strcasecmp (dummy, geo_column) == 0) dup = 1; if (dup) { xdummy = sqlite3_mprintf ("COL_%d", seed++); spatialite_e ("Warning: duplicated fieldName \"%s\" in shapefile \"%s\": " "renaming the second occurence in table \"%s\" as \"%s\".\n", dummy, shp_path, table, xdummy); dummy = xdummy; } len = strlen (dummy); *(col_name + cnt) = malloc (len + 1); strcpy (*(col_name + cnt), dummy); if (xdummy) sqlite3_free (xdummy); cnt++; dbf_field = dbf_field->Next; } if (verbose) spatialite_e ("========\nLoading shapefile at '%s' into SQLite table '%s'\n", shp_path, table); /* starting a transaction */ if (verbose) spatialite_e ("\nBEGIN;\n"); ret = sqlite3_exec (sqlite, "BEGIN", NULL, 0, &errMsg); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load shapefile error: <%s>\n", errMsg); else sprintf (err_msg, "load shapefile error: <%s>\n", errMsg); sqlite3_free (errMsg); sqlError = 1; goto clean_up; } /* creating the Table */ gaiaOutBufferInitialize (&sql_statement); if (pk_type == SQLITE_TEXT) { sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n\"%s\" " "TEXT PRIMARY KEY NOT NULL", qtable, qpk_name); } else if (pk_type == SQLITE_FLOAT) { sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n\"%s\" " "DOUBLE PRIMARY KEY NOT NULL", qtable, qpk_name); } else { if (pk_autoincr) sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n\"%s\" " "INTEGER PRIMARY KEY AUTOINCREMENT", qtable, qpk_name); else sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n\"%s\" " "INTEGER NOT NULL PRIMARY KEY", qtable, qpk_name); } gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); cnt = 0; dbf_field = shp->Dbf->First; while (dbf_field) { if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dbf_field = dbf_field->Next; cnt++; continue; } xname = gaiaDoubleQuotedSql (*(col_name + cnt)); sql = sqlite3_mprintf (",\n\"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); cnt++; switch (dbf_field->Type) { case 'C': gaiaAppendToOutBuffer (&sql_statement, " TEXT"); break; case 'N': if (dbf_field->Decimals) gaiaAppendToOutBuffer (&sql_statement, " DOUBLE"); else { if (dbf_field->Length <= 18) gaiaAppendToOutBuffer (&sql_statement, " INTEGER"); else gaiaAppendToOutBuffer (&sql_statement, " DOUBLE"); } break; case 'D': if (text_dates) gaiaAppendToOutBuffer (&sql_statement, "TEXT"); else gaiaAppendToOutBuffer (&sql_statement, " DOUBLE"); break; case 'F': gaiaAppendToOutBuffer (&sql_statement, " DOUBLE"); break; case 'L': gaiaAppendToOutBuffer (&sql_statement, " INTEGER"); break; }; dbf_field = dbf_field->Next; } if (metadata) gaiaAppendToOutBuffer (&sql_statement, ")"); else { xname = gaiaDoubleQuotedSql (geo_column); sql = sqlite3_mprintf (",\n\"%s\" BLOB)", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { if (verbose) spatialite_e ("%s;\n", sql_statement.Buffer); ret = sqlite3_exec (sqlite, sql_statement.Buffer, NULL, 0, &errMsg); } else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load shapefile error: <%s>\n", errMsg); else sprintf (err_msg, "load shapefile error: <%s>\n", errMsg); sqlite3_free (errMsg); sqlError = 1; goto clean_up; } if (metadata) { /* creating Geometry column */ switch (shp->Shape) { case GAIA_SHP_POINT: case GAIA_SHP_POINTM: case GAIA_SHP_POINTZ: geom_type = "POINT"; break; case GAIA_SHP_MULTIPOINT: case GAIA_SHP_MULTIPOINTM: case GAIA_SHP_MULTIPOINTZ: geom_type = "MULTIPOINT"; break; case GAIA_SHP_POLYLINE: case GAIA_SHP_POLYLINEM: case GAIA_SHP_POLYLINEZ: if (xgtype == NULL) { /* auto-decting if MULTILINESTRING is required */ gaiaShpAnalyze (shp); if (shp->EffectiveType == GAIA_LINESTRING) geom_type = "LINESTRING"; else geom_type = "MULTILINESTRING"; } else { /* user-defined geometry type */ if (strcmp (xgtype, "LINESTRING") == 0) { geom_type = "LINESTRING"; shp->EffectiveType = GAIA_LINESTRING; shp->EffectiveDims = GAIA_XY; } if (strcmp (xgtype, "LINESTRINGZ") == 0) { geom_type = "LINESTRING"; shp->EffectiveType = GAIA_LINESTRING; shp->EffectiveDims = GAIA_XY_Z; } if (strcmp (xgtype, "LINESTRINGM") == 0) { geom_type = "LINESTRING"; shp->EffectiveType = GAIA_LINESTRING; shp->EffectiveDims = GAIA_XY_M; } if (strcmp (xgtype, "LINESTRINGZM") == 0) { geom_type = "LINESTRING"; shp->EffectiveType = GAIA_LINESTRING; shp->EffectiveDims = GAIA_XY_Z_M; } if (strcmp (xgtype, "MULTILINESTRING") == 0) { geom_type = "MULTILINESTRING"; shp->EffectiveType = GAIA_MULTILINESTRING; shp->EffectiveDims = GAIA_XY; } if (strcmp (xgtype, "MULTILINESTRINGZ") == 0) { geom_type = "MULTILINESTRING"; shp->EffectiveType = GAIA_MULTILINESTRING; shp->EffectiveDims = GAIA_XY_Z; } if (strcmp (xgtype, "MULTILINESTRINGM") == 0) { geom_type = "MULTILINESTRING"; shp->EffectiveType = GAIA_MULTILINESTRING; shp->EffectiveDims = GAIA_XY_M; } if (strcmp (xgtype, "MULTILINESTRINGZM") == 0) { geom_type = "MULTILINESTRING"; shp->EffectiveType = GAIA_MULTILINESTRING; shp->EffectiveDims = GAIA_XY_Z_M; } } break; case GAIA_SHP_POLYGON: case GAIA_SHP_POLYGONM: case GAIA_SHP_POLYGONZ: if (xgtype == NULL) { /* auto-decting if MULTIPOLYGON is required */ gaiaShpAnalyze (shp); if (shp->EffectiveType == GAIA_POLYGON) geom_type = "POLYGON"; else geom_type = "MULTIPOLYGON"; } else { /* user-defined geometry type */ if (strcmp (xgtype, "POLYGON") == 0) { geom_type = "POLYGON"; shp->EffectiveType = GAIA_POLYGON; shp->EffectiveDims = GAIA_XY; } if (strcmp (xgtype, "POLYGONZ") == 0) { geom_type = "POLYGON"; shp->EffectiveType = GAIA_POLYGON; shp->EffectiveDims = GAIA_XY_Z; } if (strcmp (xgtype, "POLYGONM") == 0) { geom_type = "POLYGON"; shp->EffectiveType = GAIA_POLYGON; shp->EffectiveDims = GAIA_XY_M; } if (strcmp (xgtype, "POLYGONZM") == 0) { geom_type = "POLYGON"; shp->EffectiveType = GAIA_POLYGON; shp->EffectiveDims = GAIA_XY_Z_M; } if (strcmp (xgtype, "MULTIPOLYGON") == 0) { geom_type = "MULTIPOLYGON"; shp->EffectiveType = GAIA_MULTIPOLYGON; shp->EffectiveDims = GAIA_XY; } if (strcmp (xgtype, "MULTIPOLYGONZ") == 0) { geom_type = "MULTIPOLYGON"; shp->EffectiveType = GAIA_MULTIPOLYGON; shp->EffectiveDims = GAIA_XY_Z; } if (strcmp (xgtype, "MULTIPOLYGONM") == 0) { geom_type = "MULTIPOLYGON"; shp->EffectiveType = GAIA_MULTIPOLYGON; shp->EffectiveDims = GAIA_XY_M; } if (strcmp (xgtype, "MULTIPOLYGONZM") == 0) { geom_type = "MULTIPOLYGON"; shp->EffectiveType = GAIA_MULTIPOLYGON; shp->EffectiveDims = GAIA_XY_Z_M; } } break; }; if (coerce2d) shp->EffectiveDims = GAIA_XY; switch (shp->EffectiveDims) { case GAIA_XY_Z: txt_dims = "XYZ"; break; case GAIA_XY_M: txt_dims = "XYM"; break; case GAIA_XY_Z_M: txt_dims = "XYZM"; break; default: txt_dims = "XY"; break; }; sql = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, %Q, %d, %Q, %Q)", table, geo_column, srid, geom_type, txt_dims); if (verbose) spatialite_e ("%s;\n", sql); ret = sqlite3_exec (sqlite, sql, NULL, 0, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load shapefile error: <%s>\n", errMsg); else sprintf (err_msg, "load shapefile error: <%s>\n", errMsg); sqlite3_free (errMsg); sqlError = 1; goto clean_up; } if (spatial_index) { /* creating the Spatial Index */ sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, %Q)", table, geo_column); ret = sqlite3_exec (sqlite, sql, NULL, 0, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load shapefile error: <%s>\n", errMsg); else sprintf (err_msg, "load shapefile error: <%s>\n", errMsg); sqlite3_free (errMsg); sqlError = 1; goto clean_up; } } } else { /* no Metadata */ if (shp->Shape == GAIA_SHP_POLYLINE || shp->Shape == GAIA_SHP_POLYLINEM || shp->Shape == GAIA_SHP_POLYLINEZ || shp->Shape == GAIA_SHP_POLYGON || shp->Shape == GAIA_SHP_POLYGONM || shp->Shape == GAIA_SHP_POLYGONZ) { /* / fixing anyway the Geometry type for / LINESTRING/MULTILINESTRING or / POLYGON/MULTIPOLYGON */ gaiaShpAnalyze (shp); } } /* preparing the INSERT INTO parametrerized statement */ gaiaOutBufferInitialize (&sql_statement); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (\"%s\",", qtable, qpk_name); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); cnt = 0; dbf_field = shp->Dbf->First; while (dbf_field) { /* columns corresponding to some DBF attribute */ if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dbf_field = dbf_field->Next; cnt++; continue; } xname = gaiaDoubleQuotedSql (*(col_name + cnt++)); sql = sqlite3_mprintf ("\"%s\" ,", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); dbf_field = dbf_field->Next; } xname = gaiaDoubleQuotedSql (geo_column); /* the GEOMETRY column */ sql = sqlite3_mprintf ("\"%s\")\n VALUES (?", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); dbf_field = shp->Dbf->First; while (dbf_field) { /* column values */ if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dbf_field = dbf_field->Next; continue; } gaiaAppendToOutBuffer (&sql_statement, ", ?"); dbf_field = dbf_field->Next; } gaiaAppendToOutBuffer (&sql_statement, ", ?)"); /* the GEOMETRY column */ if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) ret = sqlite3_prepare_v2 (sqlite, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); sqlError = 1; goto clean_up; } current_row = 0; while (1) { /* inserting rows from shapefile */ ret = gaiaReadShpEntity_ex (shp, current_row, srid, text_dates); if (!ret) { if (!(shp->LastError)) /* normal SHP EOF */ break; if (!err_msg) spatialite_e ("%s\n", shp->LastError); else sprintf (err_msg, "%s\n", shp->LastError); sqlError = 1; sqlite3_finalize (stmt); goto clean_up; } current_row++; /* binding query params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); pk_set = 0; cnt = 0; dbf_field = shp->Dbf->First; while (dbf_field) { /* Primary Key value */ if (strcasecmp (pk_name, dbf_field->Name) == 0) { if (pk_type == SQLITE_TEXT) sqlite3_bind_text (stmt, 1, dbf_field->Value->TxtValue, strlen (dbf_field-> Value->TxtValue), SQLITE_STATIC); else if (pk_type == SQLITE_FLOAT) sqlite3_bind_double (stmt, 1, dbf_field->Value->DblValue); else sqlite3_bind_int64 (stmt, 1, dbf_field->Value->IntValue); pk_set = 1; } dbf_field = dbf_field->Next; } if (!pk_set) sqlite3_bind_int (stmt, 1, current_row); cnt = 0; dbf_field = shp->Dbf->First; while (dbf_field) { /* column values */ if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dbf_field = dbf_field->Next; continue; } if (!(dbf_field->Value)) sqlite3_bind_null (stmt, cnt + 2); else { switch (dbf_field->Value->Type) { case GAIA_INT_VALUE: sqlite3_bind_int64 (stmt, cnt + 2, dbf_field->Value->IntValue); break; case GAIA_DOUBLE_VALUE: sqlite3_bind_double (stmt, cnt + 2, dbf_field->Value->DblValue); break; case GAIA_TEXT_VALUE: sqlite3_bind_text (stmt, cnt + 2, dbf_field->Value->TxtValue, strlen (dbf_field-> Value->TxtValue), SQLITE_STATIC); break; default: sqlite3_bind_null (stmt, cnt + 2); break; } } cnt++; dbf_field = dbf_field->Next; } if (shp->Dbf->Geometry) { if (compressed) gaiaToCompressedBlobWkb (shp->Dbf->Geometry, &blob, &blob_size); else gaiaToSpatiaLiteBlobWkb (shp->Dbf->Geometry, &blob, &blob_size); sqlite3_bind_blob (stmt, cnt + 2, blob, blob_size, free); } else { /* handling a NULL-Geometry */ sqlite3_bind_null (stmt, cnt + 2); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { if (!err_msg) spatialite_e ("load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "load shapefile error: <%s>\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); sqlError = 1; goto clean_up; } } sqlite3_finalize (stmt); clean_up: if (qtable) free (qtable); if (qpk_name) free (qpk_name); gaiaFreeShapefile (shp); if (col_name) { /* releasing memory allocation for column names */ for (cnt = 0; cnt < col_cnt; cnt++) free (*(col_name + cnt)); free (col_name); } if (sqlError) { /* some error occurred - ROLLBACK */ if (verbose) spatialite_e ("ROLLBACK;\n"); ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, 0, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("load shapefile error: <%s>\n", errMsg); sqlite3_free (errMsg); } return 0; } else { /* ok - confirming pending transaction - COMMIT */ if (verbose) spatialite_e ("COMMIT;\n"); ret = sqlite3_exec (sqlite, "COMMIT", NULL, 0, &errMsg); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load shapefile error: <%s>\n", errMsg); else sprintf (err_msg, "load shapefile error: <%s>\n", errMsg); sqlite3_free (errMsg); return 0; } if (rows) *rows = current_row; if (verbose) spatialite_e ("\nInserted %d rows into '%s' from SHAPEFILE\n========\n", current_row, table); if (err_msg) sprintf (err_msg, "Inserted %d rows into '%s' from SHAPEFILE", current_row, table); return 1; } } #endif /* end ICONV (SHP) */ static void output_prj_file (sqlite3 * sqlite, char *path, char *table, char *column) { /* exporting [if possible] a .PRJ file */ char **results; int rows; int columns; int i; char *errMsg = NULL; int srid = -1; char *sql; int ret; int rs_srid = 0; int rs_srs_wkt = 0; int rs_srtext = 0; int has_srtext = 0; const char *name; char *srsWkt = NULL; FILE *out; /* step I: retrieving the SRID */ sql = sqlite3_mprintf ("SELECT srid FROM geometry_columns WHERE " "Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", table, column); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("dump shapefile MetaData error: <%s>\n", errMsg); sqlite3_free (errMsg); return; } for (i = 1; i <= rows; i++) { srid = atoi (results[(i * columns) + 0]); } sqlite3_free_table (results); if (srid <= 0) { /* srid still undefined, so we'll read VIEWS_GEOMETRY_COLUMNS */ sql = sqlite3_mprintf ("SELECT srid FROM views_geometry_columns " "JOIN geometry_columns USING (f_table_name, f_geometry_column) " "WHERE Lower(view_name) = Lower(%Q) AND " "Lower(view_geometry) = Lower(%Q)", table, column); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("dump shapefile MetaData error: <%s>\n", errMsg); sqlite3_free (errMsg); return; } for (i = 1; i <= rows; i++) { srid = atoi (results[(i * columns) + 0]); } sqlite3_free_table (results); } if (srid <= 0) return; /* step II: checking if the SRS_WKT or SRTEXT column actually exists */ ret = sqlite3_get_table (sqlite, "PRAGMA table_info(spatial_ref_sys)", &results, &rows, &columns, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("dump shapefile MetaData error: <%s>\n", errMsg); sqlite3_free (errMsg); return; } if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "srid") == 0) rs_srid = 1; if (strcasecmp (name, "srs_wkt") == 0) rs_srs_wkt = 1; if (strcasecmp (name, "srtext") == 0) rs_srtext = 1; } } sqlite3_free_table (results); if (rs_srs_wkt == 1 || rs_srtext == 1) has_srtext = 1; if (rs_srid == 0 || has_srtext == 0) return; /* step III: fetching WKT SRS */ if (rs_srtext) { sql = sqlite3_mprintf ("SELECT srtext FROM spatial_ref_sys " "WHERE srid = %d AND srtext IS NOT NULL", srid); } else { sql = sqlite3_mprintf ("SELECT srs_wkt FROM spatial_ref_sys " "WHERE srid = %d AND srs_wkt IS NOT NULL", srid); } ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("dump shapefile MetaData error: <%s>\n", errMsg); sqlite3_free (errMsg); goto end; } if (rows < 1) ; else { for (i = 1; i <= rows; i++) { char *srs = results[(i * columns) + 0]; int len = strlen (srs); if (srsWkt) free (srsWkt); srsWkt = malloc (len + 1); strcpy (srsWkt, srs); } } sqlite3_free_table (results); if (srsWkt == NULL) goto end; /* step IV: generating the .PRJ file */ sql = sqlite3_mprintf ("%s.prj", path); out = fopen (sql, "wb"); sqlite3_free (sql); if (!out) goto end; fprintf (out, "%s\r\n", srsWkt); fclose (out); end: if (srsWkt) free (srsWkt); return; } #ifndef OMIT_ICONV /* ICONV enabled: supporting SHAPEFILE and DBF */ static int get_default_dbf_fields (sqlite3 * sqlite, const char *xtable, const char *db_prefix, const char *table_name, gaiaDbfListPtr * dbf_export_list) { /* creating DBF field definitions for an empty DBF */ int row = 0; char *sql; sqlite3_stmt *stmt; int ret; int offset = 0; gaiaDbfListPtr list = NULL; if (db_prefix != NULL && table_name != NULL) { char *xprefix = gaiaDoubleQuotedSql (db_prefix); char *xxtable = gaiaDoubleQuotedSql (table_name); sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(\"%s\")", xprefix, xxtable); free (xprefix); free (xxtable); } else sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable); /* / compiling SQL prepared statement */ list = gaiaAllocDbfList (); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto sql_error; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a result set row */ int xtype = SQLITE_TEXT; int length = 60; char *name = (char *) sqlite3_column_text (stmt, 1); const char *type = (const char *) sqlite3_column_text (stmt, 2); if (strcasecmp (type, "INT") == 0 || strcasecmp (type, "INTEGER") == 0 || strcasecmp (type, "SMALLINT") == 0 || strcasecmp (type, "BIGINT") == 0 || strcasecmp (type, "TINYINT") == 0) xtype = SQLITE_INTEGER; if (strcasecmp (type, "DOUBLE") == 0 || strcasecmp (type, "REAL") == 0 || strcasecmp (type, "DOUBLE PRECISION") == 0 || strcasecmp (type, "NUMERIC") == 0 || strcasecmp (type, "FLOAT") == 0) xtype = SQLITE_FLOAT; if (strncasecmp (type, "VARCHAR(", 8) == 0) length = atoi (type + 8); if (strncasecmp (type, "CHAR(", 5) == 0) length = atoi (type + 5); if (xtype == SQLITE_FLOAT) { gaiaAddDbfField (list, name, 'N', offset, 19, 6); offset += 19; } else if (xtype == SQLITE_INTEGER) { gaiaAddDbfField (list, name, 'N', offset, 18, 0); offset += 18; } else { gaiaAddDbfField (list, name, 'C', offset, length, 0); offset += length; } row++; } else goto sql_error; } sqlite3_finalize (stmt); if (row == 0) goto sql_error; *dbf_export_list = list; return 1; sql_error: gaiaFreeDbfList (list); *dbf_export_list = NULL; return 0; } static gaiaVectorLayersListPtr recover_unregistered_geometry (sqlite3 * handle, const char *table, const char *geometry) { /* attempting to recover an unregistered Geometry */ int len; int error = 0; gaiaVectorLayersListPtr list; gaiaVectorLayerPtr lyr; /* allocating a VectorLayersList */ list = malloc (sizeof (gaiaVectorLayersList)); list->First = NULL; list->Last = NULL; list->Current = NULL; lyr = malloc (sizeof (gaiaVectorLayer)); lyr->LayerType = GAIA_VECTOR_UNKNOWN; len = strlen (table); lyr->TableName = malloc (len + 1); strcpy (lyr->TableName, table); len = strlen (geometry); lyr->GeometryName = malloc (len + 1); strcpy (lyr->GeometryName, geometry); lyr->Srid = 0; lyr->GeometryType = GAIA_VECTOR_UNKNOWN; lyr->Dimensions = GAIA_VECTOR_UNKNOWN; lyr->SpatialIndex = GAIA_SPATIAL_INDEX_NONE; lyr->ExtentInfos = NULL; lyr->AuthInfos = NULL; lyr->First = NULL; lyr->Last = NULL; lyr->Next = NULL; list->Current = NULL; if (list->First == NULL) list->First = lyr; if (list->Last != NULL) list->Last->Next = lyr; list->Last = lyr; if (!doComputeFieldInfos (handle, lyr->TableName, lyr->GeometryName, SPATIALITE_STATISTICS_LEGACY, lyr)) error = 1; if (list->First == NULL || error) { gaiaFreeVectorLayersList (list); return NULL; } return list; } static int compute_max_int_length (sqlite3_int64 min, sqlite3_int64 max) { /* determining the buffer size for some INT */ int pos_len = 0; int neg_len = 1; sqlite3_int64 value = max; if (value == 0) pos_len = 1; else { while (value != 0) { pos_len++; value /= 10; } } if (min >= 0) return pos_len; value = min; while (value != 0) { neg_len++; value /= 10; } if (neg_len > pos_len) return neg_len; return pos_len; } static int compute_max_dbl_length (double min, double max) { /* determining the buffer size for some DOUBLE */ int pos_len = 0; int neg_len = 1; sqlite3_int64 value; if (max >= 0.0) value = (sqlite3_int64) floor (max); else value = (sqlite3_int64) ceil (max); while (value != 0) { pos_len++; value /= 10; } if (min >= 0.0) return pos_len + 7; value = (sqlite3_int64) ceil (min); while (value != 0) { neg_len++; value /= 10; } if (neg_len > pos_len) return neg_len + 7; return pos_len + 7; } static void shp_parse_table_name (const char *tn, char **db_prefix, char **table_name) { /* attempting to extract an eventual DB prefix */ int i; int len = strlen (tn); int i_dot = -1; int l_db; int l_tbl; for (i = 0; i < len; i++) { if (tn[i] == '.') { i_dot = i; break; } } if (i_dot >= 1) { l_db = i_dot; l_tbl = len - (i_dot + 1); *db_prefix = malloc (l_db + 1); memset (*db_prefix, '\0', l_db + 1); memcpy (*db_prefix, tn, l_db); *table_name = malloc (l_tbl + 1); strcpy (*table_name, tn + i_dot + 1); return; } *table_name = malloc (len + 1); strcpy (*table_name, tn); } static int get_attached_layer_v4 (sqlite3 * handle, const char *db_prefix, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* creating a VectorLayersList object - v.4.0.0 DB layout */ char *sql; int ret; sqlite3_stmt *stmt; int error = 0; char *xdb; /* querying the vector_layers view */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("SELECT layer_type, table_name, geometry_column, geometry_type, " "srid, spatial_index_enabled FROM \"%s\".vector_layers " "WHERE Lower(table_name) = Lower(%Q) AND " "Lower(geometry_column) = Lower(%Q)", xdb, table, geometry); free (xdb); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ const char *layer_type = (const char *) sqlite3_column_text (stmt, 0); const char *table_name = (const char *) sqlite3_column_text (stmt, 1); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 2); int geometry_type = sqlite3_column_int (stmt, 3); int srid = sqlite3_column_int (stmt, 4); int spatial_index = sqlite3_column_int (stmt, 5); addVectorLayer (list, layer_type, table_name, geometry_column, geometry_type, srid, spatial_index); } else error = 1; } ret = sqlite3_finalize (stmt); stop: if (error) return 0; /* querying the vector_layers_statistics view */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("SELECT table_name, geometry_column, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM \"%s\".vector_layers_statistics " "WHERE Lower(table_name) = Lower(%Q) AND " "Lower(geometry_column) = Lower(%Q)", xdb, table, geometry); free (xdb); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop2; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int is_null = 0; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int count; double min_x; double min_y; double max_x; double max_y; if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) is_null = 1; else count = sqlite3_column_int (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) is_null = 1; else min_x = sqlite3_column_double (stmt, 3); if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) is_null = 1; else min_y = sqlite3_column_double (stmt, 4); if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) is_null = 1; else max_x = sqlite3_column_double (stmt, 5); if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) is_null = 1; else max_y = sqlite3_column_double (stmt, 6); if (!is_null) addVectorLayerExtent (list, table_name, geometry_column, count, min_x, min_y, max_x, max_y); } } ret = sqlite3_finalize (stmt); stop2: /* querying the vector_layers_field_infos view */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("SELECT table_name, geometry_column, ordinal, column_name, " "null_values, integer_values, double_values, text_values, blob_values," "max_size, integer_min, integer_max, double_min, double_max " "FROM \"%s\".vector_layers_field_infos " "WHERE Lower(table_name) = Lower(%Q) AND " "Lower(geometry_column) = Lower(%Q)", xdb, table, geometry); free (xdb); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop4; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int null_max_size = 0; int null_int_range = 0; int null_double_range = 0; int max_size; sqlite3_int64 integer_min; sqlite3_int64 integer_max; double double_min; double double_max; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int ordinal = sqlite3_column_int (stmt, 2); const char *column_name = (const char *) sqlite3_column_text (stmt, 3); int null_values = sqlite3_column_int (stmt, 4); int integer_values = sqlite3_column_int (stmt, 5); int double_values = sqlite3_column_int (stmt, 6); int text_values = sqlite3_column_int (stmt, 7); int blob_values = sqlite3_column_int (stmt, 8); if (sqlite3_column_type (stmt, 9) == SQLITE_NULL) null_max_size = 1; else max_size = sqlite3_column_int (stmt, 9); if (sqlite3_column_type (stmt, 10) == SQLITE_NULL || sqlite3_column_type (stmt, 11) == SQLITE_NULL) null_int_range = 1; else { integer_min = sqlite3_column_int64 (stmt, 10); integer_max = sqlite3_column_int64 (stmt, 11); } if (sqlite3_column_type (stmt, 12) == SQLITE_NULL || sqlite3_column_type (stmt, 13) == SQLITE_NULL) null_double_range = 1; else { double_min = sqlite3_column_double (stmt, 12); double_max = sqlite3_column_double (stmt, 13); } addLayerAttributeField (list, table_name, geometry_column, ordinal, column_name, null_values, integer_values, double_values, text_values, blob_values, null_max_size, max_size, null_int_range, &integer_min, &integer_max, null_double_range, double_min, double_max); } } ret = sqlite3_finalize (stmt); stop4: if (error) return 0; return 1; } static int check_spatial_metadata (const void *handle, const char *db_prefix) { /* internal utility function: / / 0 - if no valid SpatialMetaData were found / 1 - if SpatiaLite-like (legacy) SpatialMetadata were found / 2 - if FDO-OGR-like SpatialMetadata were found / 3 - if SpatiaLite-like (current) SpatialMetadata were found / */ sqlite3 *sqlite = (sqlite3 *) handle; int spatialite_legacy_rs = 0; int spatialite_rs = 0; int fdo_rs = 0; int spatialite_legacy_gc = 0; int spatialite_gc = 0; int fdo_gc = 0; int rs_srid = 0; int auth_name = 0; int auth_srid = 0; int srtext = 0; int ref_sys_name = 0; int proj4text = 0; int f_table_name = 0; int f_geometry_column = 0; int geometry_type = 0; int coord_dimension = 0; int gc_srid = 0; int geometry_format = 0; int type = 0; int spatial_index_enabled = 0; char *sql; int ret; const char *name; int i; char **results; int rows; int columns; char *xdb; /* checking the GEOMETRY_COLUMNS table */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(geometry_columns)", xdb); free (xdb); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto unknown; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "f_table_name") == 0) f_table_name = 1; if (strcasecmp (name, "f_geometry_column") == 0) f_geometry_column = 1; if (strcasecmp (name, "geometry_type") == 0) geometry_type = 1; if (strcasecmp (name, "coord_dimension") == 0) coord_dimension = 1; if (strcasecmp (name, "srid") == 0) gc_srid = 1; if (strcasecmp (name, "geometry_format") == 0) geometry_format = 1; if (strcasecmp (name, "type") == 0) type = 1; if (strcasecmp (name, "spatial_index_enabled") == 0) spatial_index_enabled = 1; } } sqlite3_free_table (results); if (f_table_name && f_geometry_column && type && coord_dimension && gc_srid && spatial_index_enabled) spatialite_legacy_gc = 1; if (f_table_name && f_geometry_column && geometry_type && coord_dimension && gc_srid && spatial_index_enabled) spatialite_gc = 1; if (f_table_name && f_geometry_column && geometry_type && coord_dimension && gc_srid && geometry_format) fdo_gc = 1; /* checking the SPATIAL_REF_SYS table */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(spatial_ref_sys)", xdb); free (xdb); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto unknown; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "srid") == 0) rs_srid = 1; if (strcasecmp (name, "auth_name") == 0) auth_name = 1; if (strcasecmp (name, "auth_srid") == 0) auth_srid = 1; if (strcasecmp (name, "srtext") == 0) srtext = 1; if (strcasecmp (name, "ref_sys_name") == 0) ref_sys_name = 1; if (strcasecmp (name, "proj4text") == 0) proj4text = 1; if (strcasecmp (name, "srtext") == 0) srtext = 1; } } sqlite3_free_table (results); if (rs_srid && auth_name && auth_srid && ref_sys_name && proj4text && srtext) spatialite_rs = 1; if (rs_srid && auth_name && auth_srid && ref_sys_name && proj4text) spatialite_legacy_rs = 1; if (rs_srid && auth_name && auth_srid && srtext) fdo_rs = 1; /* verifying the MetaData format */ if (spatialite_legacy_gc && spatialite_legacy_rs) return 1; if (fdo_gc && fdo_rs) return 2; if (spatialite_gc && spatialite_rs) return 3; unknown: return 0; } static int get_attached_table_layer_legacy (sqlite3 * handle, const char *db_prefix, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* fetching Table-based geometries */ int ret; char *sql; const char *name; int i; char **results; int rows; int columns; int f_table = 0; int f_geometry = 0; int type = 0; int dims = 0; int srid = 0; int spatial_index = 0; sqlite3_stmt *stmt; int error = 0; char *xdb; /* checking the GEOMETRY_COLUMN table */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(geometry_columns)", xdb); free (xdb); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "f_table_name") == 0) f_table = 1; if (strcasecmp (name, "f_geometry_column") == 0) f_geometry = 1; if (strcasecmp (name, "type") == 0) type = 1; if (strcasecmp (name, "coord_dimension") == 0) dims = 1; if (strcasecmp (name, "srid") == 0) srid = 1; if (strcasecmp (name, "spatial_index_enabled") == 0) spatial_index = 1; } } sqlite3_free_table (results); if (f_table && f_geometry && type && dims && srid && spatial_index) ; else return 1; xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column, type, coord_dimension, " "srid, spatial_index_enabled FROM \"%s\".geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", xdb, table, geometry); free (xdb); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); const char *type = (const char *) sqlite3_column_text (stmt, 2); const char *dims = (const char *) sqlite3_column_text (stmt, 3); int srid = sqlite3_column_int (stmt, 4); int spatial_index = sqlite3_column_int (stmt, 5); int geometry_type = -1; if (strcasecmp (type, "POINT") == 0) geometry_type = 1; if (strcasecmp (type, "LINESTRING") == 0) geometry_type = 2; if (strcasecmp (type, "POLYGON") == 0) geometry_type = 3; if (strcasecmp (type, "MULTIPOINT") == 0) geometry_type = 4; if (strcasecmp (type, "MULTILINESTRING") == 0) geometry_type = 5; if (strcasecmp (type, "MULTIPOLYGON") == 0) geometry_type = 6; if (strcasecmp (type, "GEOMETRYCOLLECTION") == 0) geometry_type = 7; if (strcasecmp (type, "GEOMETRY") == 0) geometry_type = 0; if (strcasecmp (dims, "XYZ") == 0 || strcasecmp (dims, "3") == 0) geometry_type += 1000; if (strcasecmp (dims, "XYM") == 0) geometry_type += 2000; if (strcasecmp (dims, "XYZM") == 0 || strcasecmp (dims, "4") == 0) geometry_type += 3000; addVectorLayer (list, "SpatialTable", table_name, geometry_column, geometry_type, srid, spatial_index); } else error = 1; } ret = sqlite3_finalize (stmt); stop: if (error) return 0; return 1; } static int get_attached_view_layer_legacy (sqlite3 * handle, const char *db_prefix, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* fetching View-based geometries */ int ret; char *sql; const char *name; int i; char **results; int rows; int columns; int f_table = 0; int f_geometry = 0; int type = 0; int dims = 0; int srid = 0; int spatial_index = 0; int view_name = 0; int view_geometry = 0; int fvw_table = 0; int fvw_geometry = 0; sqlite3_stmt *stmt; int error = 0; char *xdb; /* checking the GEOMETRY_COLUMN table */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(geometry_columns)", xdb); free (xdb); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "f_table_name") == 0) f_table = 1; if (strcasecmp (name, "f_geometry_column") == 0) f_geometry = 1; if (strcasecmp (name, "type") == 0) type = 1; if (strcasecmp (name, "coord_dimension") == 0) dims = 1; if (strcasecmp (name, "srid") == 0) srid = 1; if (strcasecmp (name, "spatial_index_enabled") == 0) spatial_index = 1; } } sqlite3_free_table (results); if (f_table && f_geometry && type && dims && srid && spatial_index) ; else return 1; /* checking the VIEWS_GEOMETRY_COLUMN table */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(views_geometry_columns)", xdb); free (xdb); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "view_name") == 0) view_name = 1; if (strcasecmp (name, "view_geometry") == 0) view_geometry = 1; if (strcasecmp (name, "f_table_name") == 0) fvw_table = 1; if (strcasecmp (name, "f_geometry_column") == 0) fvw_geometry = 1; } } sqlite3_free_table (results); if (view_name && view_geometry && fvw_table && fvw_geometry) ; else return 1; xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("SELECT a.view_name, a.view_geometry, b.type, b.coord_dimension, " "b.srid, b.spatial_index_enabled FROM \"%s\".views_geometry_columns AS a " "JOIN \"%s\".geometry_columns AS b ON (Lower(a.f_table_name) = Lower(b.f_table_name) " "AND Lower(a.f_geometry_column) = Lower(b.f_geometry_column)) " "WHERE Lower(a.view_name) = Lower(%Q) AND " "Lower(a.view_geometry) = Lower(%Q)", xdb, xdb, table, geometry); free (xdb); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); const char *type = (const char *) sqlite3_column_text (stmt, 2); const char *dims = (const char *) sqlite3_column_text (stmt, 3); int srid = sqlite3_column_int (stmt, 4); int spatial_index = sqlite3_column_int (stmt, 5); int geometry_type = -1; if (strcasecmp (type, "POINT") == 0) geometry_type = 1; if (strcasecmp (type, "LINESTRING") == 0) geometry_type = 2; if (strcasecmp (type, "POLYGON") == 0) geometry_type = 3; if (strcasecmp (type, "MULTIPOINT") == 0) geometry_type = 4; if (strcasecmp (type, "MULTILINESTRING") == 0) geometry_type = 5; if (strcasecmp (type, "MULTIPOLYGON") == 0) geometry_type = 6; if (strcasecmp (type, "GEOMETRYCOLLECTION") == 0) geometry_type = 7; if (strcasecmp (type, "GEOMETRY") == 0) geometry_type = 0; if (strcasecmp (dims, "XYZ") == 0 || strcasecmp (dims, "3") == 0) geometry_type += 1000; if (strcasecmp (dims, "XYM") == 0) geometry_type += 2000; if (strcasecmp (dims, "XYZM") == 0 || strcasecmp (dims, "4") == 0) geometry_type += 3000; addVectorLayer (list, "SpatialView", table_name, geometry_column, geometry_type, srid, spatial_index); } else error = 1; } ret = sqlite3_finalize (stmt); stop: if (error) return 0; return 1; } static int get_attached_table_extent_legacy (sqlite3 * handle, const char *db_prefix, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* fetching Table-based extents */ int ret; char *sql; const char *name; int i; char **results; int rows; int columns; int f_table = 0; int f_geometry = 0; int count = 0; int minx = 0; int miny = 0; int maxx = 0; int maxy = 0; sqlite3_stmt *stmt; char *xdb; /* checking the LAYER_STATISTICS table */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(layer_statistics)", xdb); free (xdb); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "table_name") == 0) f_table = 1; if (strcasecmp (name, "geometry_column") == 0) f_geometry = 1; if (strcasecmp (name, "row_count") == 0) count = 1; if (strcasecmp (name, "extent_min_x") == 0) minx = 1; if (strcasecmp (name, "extent_min_y") == 0) miny = 1; if (strcasecmp (name, "extent_max_x") == 0) maxx = 1; if (strcasecmp (name, "extent_max_y") == 0) maxy = 1; } } sqlite3_free_table (results); if (f_table && f_geometry && count && minx && miny && maxx && maxy) ; else return 1; /* querying the layer_statistics table */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("SELECT table_name, geometry_column, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM \"%s\".layer_statistics " "WHERE Lower(table_name) = Lower(%Q) AND " "Lower(geometry_column) = Lower(%Q)", xdb, table, geometry); free (xdb); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int is_null = 0; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int count; double min_x; double min_y; double max_x; double max_y; if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) is_null = 1; else count = sqlite3_column_int (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) is_null = 1; else min_x = sqlite3_column_double (stmt, 3); if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) is_null = 1; else min_y = sqlite3_column_double (stmt, 4); if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) is_null = 1; else max_x = sqlite3_column_double (stmt, 5); if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) is_null = 1; else max_y = sqlite3_column_double (stmt, 6); if (!is_null) addVectorLayerExtent (list, table_name, geometry_column, count, min_x, min_y, max_x, max_y); } } ret = sqlite3_finalize (stmt); stop: return 1; } static int get_attached_view_extent_legacy (sqlite3 * handle, const char *db_prefix, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* fetching View-based extents */ int ret; char *sql; const char *name; int i; char **results; int rows; int columns; int f_table = 0; int f_geometry = 0; int count = 0; int minx = 0; int miny = 0; int maxx = 0; int maxy = 0; sqlite3_stmt *stmt; char *xdb; /* checking the VIEWS_LAYER_STATISTICS table */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(views_layer_statistics)", xdb); free (xdb); ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "view_name") == 0) f_table = 1; if (strcasecmp (name, "view_geometry") == 0) f_geometry = 1; if (strcasecmp (name, "row_count") == 0) count = 1; if (strcasecmp (name, "extent_min_x") == 0) minx = 1; if (strcasecmp (name, "extent_min_y") == 0) miny = 1; if (strcasecmp (name, "extent_max_x") == 0) maxx = 1; if (strcasecmp (name, "extent_max_y") == 0) maxy = 1; } } sqlite3_free_table (results); if (f_table && f_geometry && count && minx && miny && maxx && maxy) ; else return 1; /* querying the views_layer_statistics table */ xdb = gaiaDoubleQuotedSql (db_prefix); sql = sqlite3_mprintf ("SELECT view_name, view_geometry, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM \"%s\".views_layer_statistics " "WHERE Lower(view_name) = Lower(%Q) AND " "Lower(view_geometry) = Lower(%Q)", xdb, table, geometry); free (xdb); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int is_null = 0; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int count = 0; double min_x = DBL_MAX; double min_y = DBL_MAX; double max_x = 0.0 - DBL_MAX; double max_y = 0.0 - DBL_MAX; if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) is_null = 1; else count = sqlite3_column_int (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) is_null = 1; else min_x = sqlite3_column_double (stmt, 3); if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) is_null = 1; else min_y = sqlite3_column_double (stmt, 4); if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) is_null = 1; else max_x = sqlite3_column_double (stmt, 5); if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) is_null = 1; else max_y = sqlite3_column_double (stmt, 6); if (!is_null) addVectorLayerExtent (list, table_name, geometry_column, count, min_x, min_y, max_x, max_y); } } ret = sqlite3_finalize (stmt); stop: return 1; } static gaiaVectorLayersListPtr attached_layer (sqlite3 * handle, const char *db_prefix, const char *table, const char *geometry) { /* attempting to support a "layer" from within an attached DB */ gaiaVectorLayersListPtr list; int metadata_version; list = malloc (sizeof (gaiaVectorLayersList)); list->First = NULL; list->Last = NULL; list->Current = NULL; metadata_version = check_spatial_metadata (handle, db_prefix); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ if (!get_attached_layer_v4 (handle, db_prefix, table, geometry, list)) { gaiaFreeVectorLayersList (list); return NULL; } if (list->First == NULL) { gaiaFreeVectorLayersList (list); return NULL; } return list; } /* legacy metadata style <= v.3.x.x */ if (!get_attached_table_layer_legacy (handle, db_prefix, table, geometry, list)) goto error; if (!get_attached_view_layer_legacy (handle, db_prefix, table, geometry, list)) goto error; if (!get_attached_table_extent_legacy (handle, db_prefix, table, geometry, list)) goto error; if (!get_attached_view_extent_legacy (handle, db_prefix, table, geometry, list)) goto error; if (list->First == NULL) { gaiaFreeVectorLayersList (list); return NULL; } return list; error: gaiaFreeVectorLayersList (list); return NULL; } SPATIALITE_DECLARE int dump_shapefile (sqlite3 * sqlite, char *table, char *column, char *shp_path, char *charset, char *geom_type, int verbose, int *xrows, char *err_msg) { /* SHAPEFILE dump */ char *sql; char *dummy; int shape = -1; int len; int ret; sqlite3_stmt *stmt; int n_cols = 0; int offset = 0; int i; int rows = 0; char buf[256]; char *xtable; char *xcolumn; const void *blob_value; gaiaShapefilePtr shp = NULL; gaiaDbfListPtr dbf_list; gaiaDbfListPtr dbf_write; gaiaDbfFieldPtr dbf_field; gaiaVectorLayerPtr lyr = NULL; gaiaLayerAttributeFieldPtr fld; gaiaVectorLayersListPtr list; char *db_prefix = NULL; char *table_name = NULL; char *xprefix; char *xxtable; struct auxdbf_list *auxdbf = NULL; if (xrows) *xrows = -1; if (geom_type) { /* normalizing required geometry type */ if (strcasecmp ((char *) geom_type, "POINT") == 0) shape = GAIA_POINT; if (strcasecmp ((char *) geom_type, "LINESTRING") == 0) shape = GAIA_LINESTRING; if (strcasecmp ((char *) geom_type, "POLYGON") == 0) shape = GAIA_POLYGON; if (strcasecmp ((char *) geom_type, "MULTIPOINT") == 0) shape = GAIA_POINT; } /* is the datasource a genuine registered Geometry ?? */ list = gaiaGetVectorLayersList (sqlite, table, column, GAIA_VECTORS_LIST_PESSIMISTIC); if (list == NULL) { /* attempting to recover an unregistered Geometry */ list = recover_unregistered_geometry (sqlite, table, column); } if (list == NULL) { /* attempting to enucleate an eventual DB-prefix */ shp_parse_table_name (table, &db_prefix, &table_name); if (db_prefix != NULL && table_name != NULL) list = attached_layer (sqlite, db_prefix, table_name, column); } if (list != NULL) lyr = list->First; if (lyr == NULL) { gaiaFreeVectorLayersList (list); if (!err_msg) spatialite_e ("Unable to detect GeometryType for \"%s\".\"%s\" ... sorry\n", table, column); else sprintf (err_msg, "Unable to detect GeometryType for \"%s\".\"%s\" ... sorry\n", table, column); return 0; } switch (lyr->GeometryType) { case GAIA_VECTOR_POINT: switch (lyr->Dimensions) { case GAIA_XY: shape = GAIA_POINT; break; case GAIA_XY_Z: shape = GAIA_POINTZ; break; case GAIA_XY_M: shape = GAIA_POINTM; break; case GAIA_XY_Z_M: shape = GAIA_POINTZM; break; }; break; case GAIA_VECTOR_LINESTRING: switch (lyr->Dimensions) { case GAIA_XY: shape = GAIA_LINESTRING; break; case GAIA_XY_Z: shape = GAIA_LINESTRINGZ; break; case GAIA_XY_M: shape = GAIA_LINESTRINGM; break; case GAIA_XY_Z_M: shape = GAIA_LINESTRINGZM; break; }; break; case GAIA_VECTOR_POLYGON: switch (lyr->Dimensions) { case GAIA_XY: shape = GAIA_POLYGON; break; case GAIA_XY_Z: shape = GAIA_POLYGONZ; break; case GAIA_XY_M: shape = GAIA_POLYGONM; break; case GAIA_XY_Z_M: shape = GAIA_POLYGONZM; break; }; break; case GAIA_VECTOR_MULTIPOINT: switch (lyr->Dimensions) { case GAIA_XY: shape = GAIA_MULTIPOINT; break; case GAIA_XY_Z: shape = GAIA_MULTIPOINTZ; break; case GAIA_XY_M: shape = GAIA_MULTIPOINTM; break; case GAIA_XY_Z_M: shape = GAIA_MULTIPOINTZM; break; }; break; case GAIA_VECTOR_MULTILINESTRING: switch (lyr->Dimensions) { case GAIA_XY: shape = GAIA_MULTILINESTRING; break; case GAIA_XY_Z: shape = GAIA_MULTILINESTRINGZ; break; case GAIA_XY_M: shape = GAIA_MULTILINESTRINGM; break; case GAIA_XY_Z_M: shape = GAIA_MULTILINESTRINGZM; break; }; break; case GAIA_VECTOR_MULTIPOLYGON: switch (lyr->Dimensions) { case GAIA_XY: shape = GAIA_MULTIPOLYGON; break; case GAIA_XY_Z: shape = GAIA_MULTIPOLYGONZ; break; case GAIA_XY_M: shape = GAIA_MULTIPOLYGONM; break; case GAIA_XY_Z_M: shape = GAIA_MULTIPOLYGONZM; break; }; break; }; if (shape < 0) { if (!err_msg) spatialite_e ("Unable to detect GeometryType for \"%s\".\"%s\" ... sorry\n", table, column); else sprintf (err_msg, "Unable to detect GeometryType for \"%s\".\"%s\" ... sorry\n", table, column); return 0; } if (verbose) spatialite_e ("========\nDumping SQLite table '%s' into shapefile at '%s'\n", table, shp_path); /* preparing SQL statement */ xtable = gaiaDoubleQuotedSql (table); xcolumn = gaiaDoubleQuotedSql (column); if (shape == GAIA_LINESTRING || shape == GAIA_LINESTRINGZ || shape == GAIA_LINESTRINGM || shape == GAIA_LINESTRINGZM || shape == GAIA_MULTILINESTRING || shape == GAIA_MULTILINESTRINGZ || shape == GAIA_MULTILINESTRINGM || shape == GAIA_MULTILINESTRINGZM) { if (db_prefix != NULL && table_name != NULL) { xprefix = gaiaDoubleQuotedSql (db_prefix); xxtable = gaiaDoubleQuotedSql (table_name); sql = sqlite3_mprintf ("SELECT * FROM \"%s\".\"%s\" WHERE GeometryAliasType(\"%s\") = " "'LINESTRING' OR GeometryAliasType(\"%s\") = 'MULTILINESTRING' " "OR \"%s\" IS NULL", xprefix, xxtable, xcolumn, xcolumn, xcolumn); free (xprefix); free (xxtable); } else sql = sqlite3_mprintf ("SELECT * FROM \"%s\" WHERE GeometryAliasType(\"%s\") = " "'LINESTRING' OR GeometryAliasType(\"%s\") = 'MULTILINESTRING' " "OR \"%s\" IS NULL", xtable, xcolumn, xcolumn, xcolumn); } else if (shape == GAIA_POLYGON || shape == GAIA_POLYGONZ || shape == GAIA_POLYGONM || shape == GAIA_POLYGONZM || shape == GAIA_MULTIPOLYGON || shape == GAIA_MULTIPOLYGONZ || shape == GAIA_MULTIPOLYGONM || shape == GAIA_MULTIPOLYGONZM) { if (db_prefix != NULL && table_name != NULL) { xprefix = gaiaDoubleQuotedSql (db_prefix); xxtable = gaiaDoubleQuotedSql (table_name); sql = sqlite3_mprintf ("SELECT * FROM \"%s\".\"%s\" WHERE GeometryAliasType(\"%s\") = " "'POLYGON' OR GeometryAliasType(\"%s\") = 'MULTIPOLYGON'" "OR \"%s\" IS NULL", xprefix, xxtable, xcolumn, xcolumn, xcolumn); free (xprefix); free (xxtable); } else sql = sqlite3_mprintf ("SELECT * FROM \"%s\" WHERE GeometryAliasType(\"%s\") = " "'POLYGON' OR GeometryAliasType(\"%s\") = 'MULTIPOLYGON'" "OR \"%s\" IS NULL", xtable, xcolumn, xcolumn, xcolumn); } else if (shape == GAIA_MULTIPOINT || shape == GAIA_MULTIPOINTZ || shape == GAIA_MULTIPOINTM || shape == GAIA_MULTIPOINTZM) { if (db_prefix != NULL && table_name != NULL) { xprefix = gaiaDoubleQuotedSql (db_prefix); xxtable = gaiaDoubleQuotedSql (table_name); sql = sqlite3_mprintf ("SELECT * FROM \"%s\".\"%s\" WHERE GeometryAliasType(\"%s\") = " "'POINT' OR GeometryAliasType(\"%s\") = 'MULTIPOINT'" "OR \"%s\" IS NULL", xprefix, xxtable, xcolumn, xcolumn, xcolumn); free (xprefix); free (xxtable); } else sql = sqlite3_mprintf ("SELECT * FROM \"%s\" WHERE GeometryAliasType(\"%s\") = " "'POINT' OR GeometryAliasType(\"%s\") = 'MULTIPOINT'" "OR \"%s\" IS NULL", xtable, xcolumn, xcolumn, xcolumn); } else { if (db_prefix != NULL && table_name != NULL) { xprefix = gaiaDoubleQuotedSql (db_prefix); xxtable = gaiaDoubleQuotedSql (table_name); sql = sqlite3_mprintf ("SELECT * FROM \"%s\".\"%s\" WHERE GeometryAliasType(\"%s\") = " "'POINT' OR \"%s\" IS NULL", xprefix, xxtable, xcolumn, xcolumn); free (xprefix); free (xxtable); } else sql = sqlite3_mprintf ("SELECT * FROM \"%s\" WHERE GeometryAliasType(\"%s\") = " "'POINT' OR \"%s\" IS NULL", xtable, xcolumn, xcolumn); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto sql_error; if (lyr->First == NULL) { /* the datasource is probably empty - zero rows */ if (get_default_dbf_fields (sqlite, xtable, db_prefix, table_name, &dbf_list)) goto continue_exporting; } /* preparing the DBF fields list */ dbf_list = gaiaAllocDbfList (); offset = 0; fld = lyr->First; while (fld) { int sql_type = SQLITE_NULL; int max_len; if (strcasecmp (fld->AttributeFieldName, column) == 0) { /* ignoring the Geometry itself */ fld = fld->Next; continue; } if (fld->IntegerValuesCount > 0 && fld->DoubleValuesCount == 0 && fld->TextValuesCount == 0) { sql_type = SQLITE_INTEGER; max_len = 18; if (fld->IntRange) max_len = compute_max_int_length (fld->IntRange->MinValue, fld->IntRange->MaxValue); } if (fld->DoubleValuesCount > 0 && fld->TextValuesCount == 0) { sql_type = SQLITE_FLOAT; max_len = 19; if (fld->DoubleRange) max_len = compute_max_dbl_length (fld->DoubleRange->MinValue, fld->DoubleRange->MaxValue); } if (fld->TextValuesCount > 0) { sql_type = SQLITE_TEXT; max_len = 254; if (fld->MaxSize) max_len = fld->MaxSize->MaxSize; } if (sql_type == SQLITE_NULL) { /* considering as TEXT(1) */ sql_type = SQLITE_TEXT; max_len = 1; } /* adding a DBF field */ if (sql_type == SQLITE_TEXT) { if (max_len == 0) /* avoiding ZERO-length fields */ max_len = 1; if (max_len > 254) { /* DBF C: max allowed lenght */ max_len = 254; } gaiaAddDbfField (dbf_list, fld->AttributeFieldName, 'C', offset, max_len, 0); offset += max_len; } if (sql_type == SQLITE_FLOAT) { if (max_len > 19) max_len = 19; if (max_len < 8) max_len = 8; gaiaAddDbfField (dbf_list, fld->AttributeFieldName, 'N', offset, max_len, 6); offset += max_len; } if (sql_type == SQLITE_INTEGER) { if (max_len > 18) max_len = 18; gaiaAddDbfField (dbf_list, fld->AttributeFieldName, 'N', offset, max_len, 0); offset += max_len; } fld = fld->Next; } /* resetting SQLite query */ continue_exporting: ret = sqlite3_reset (stmt); if (ret != SQLITE_OK) goto sql_error; /* trying to open shapefile files */ shp = gaiaAllocShapefile (); gaiaOpenShpWrite (shp, shp_path, shape, dbf_list, "UTF-8", charset); if (!(shp->Valid)) goto no_file; /* trying to export the .PRJ file */ output_prj_file (sqlite, shp_path, table, column); while (1) { /* scrolling the result set to dump data into shapefile */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (n_cols == 0) n_cols = sqlite3_column_count (stmt); rows++; dbf_write = gaiaCloneDbfEntity (dbf_list); auxdbf = alloc_auxdbf (dbf_write); for (i = 0; i < n_cols; i++) { if (strcasecmp ((char *) column, (char *) sqlite3_column_name (stmt, i)) == 0) { /* this one is the internal BLOB encoded GEOMETRY to be exported */ if (sqlite3_column_type (stmt, i) != SQLITE_BLOB) { /* this one is a NULL Geometry */ dbf_write->Geometry = NULL; } else { blob_value = sqlite3_column_blob (stmt, i); len = sqlite3_column_bytes (stmt, i); dbf_write->Geometry = gaiaFromSpatiaLiteBlobWkb (blob_value, len); } } dummy = (char *) sqlite3_column_name (stmt, i); dbf_field = getDbfField (auxdbf, dummy); if (!dbf_field) continue; if (sqlite3_column_type (stmt, i) == SQLITE_NULL) { /* handling NULL values */ gaiaSetNullValue (dbf_field); } else { switch (dbf_field->Type) { case 'N': if (sqlite3_column_type (stmt, i) == SQLITE_INTEGER) gaiaSetIntValue (dbf_field, sqlite3_column_int64 (stmt, i)); else if (sqlite3_column_type (stmt, i) == SQLITE_FLOAT) gaiaSetDoubleValue (dbf_field, sqlite3_column_double (stmt, i)); else gaiaSetNullValue (dbf_field); break; case 'C': if (sqlite3_column_type (stmt, i) == SQLITE_TEXT) { dummy = (char *) sqlite3_column_text (stmt, i); gaiaSetStrValue (dbf_field, dummy); } else if (sqlite3_column_type (stmt, i) == SQLITE_INTEGER) { sprintf (buf, FRMT64, sqlite3_column_int64 (stmt, i)); gaiaSetStrValue (dbf_field, buf); } else if (sqlite3_column_type (stmt, i) == SQLITE_FLOAT) { sql = sqlite3_mprintf ("%1.6f", sqlite3_column_double (stmt, i)); gaiaSetStrValue (dbf_field, sql); sqlite3_free (sql); } else gaiaSetNullValue (dbf_field); break; }; } } free_auxdbf (auxdbf); auxdbf = NULL; if (!gaiaWriteShpEntity (shp, dbf_write)) spatialite_e ("shapefile write error\n"); gaiaFreeDbfList (dbf_write); } else goto sql_error; } if (auxdbf != NULL) free_auxdbf (auxdbf); sqlite3_finalize (stmt); gaiaFlushShpHeaders (shp); gaiaFreeShapefile (shp); free (xtable); free (xcolumn); gaiaFreeVectorLayersList (list); if (verbose) spatialite_e ("\nExported %d rows into SHAPEFILE\n========\n", rows); if (xrows) *xrows = rows; if (err_msg) sprintf (err_msg, "Exported %d rows into SHAPEFILE", rows); if (db_prefix != NULL) free (db_prefix); if (table_name != NULL) free (table_name); return 1; sql_error: /* some SQL error occurred */ if (auxdbf != NULL) free_auxdbf (auxdbf); sqlite3_finalize (stmt); free (xtable); free (xcolumn); gaiaFreeVectorLayersList (list); if (dbf_list) gaiaFreeDbfList (dbf_list); if (shp) gaiaFreeShapefile (shp); if (!err_msg) spatialite_e ("SELECT failed: %s", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "SELECT failed: %s", sqlite3_errmsg (sqlite)); if (db_prefix != NULL) free (db_prefix); if (table_name != NULL) free (table_name); return 0; no_file: /* shapefile can't be created/opened */ if (auxdbf != NULL) free_auxdbf (auxdbf); free (xtable); free (xcolumn); gaiaFreeVectorLayersList (list); if (dbf_list) gaiaFreeDbfList (dbf_list); if (shp) gaiaFreeShapefile (shp); if (!err_msg) spatialite_e ("ERROR: unable to open '%s' for writing", shp_path); else sprintf (err_msg, "ERROR: unable to open '%s' for writing", shp_path); if (db_prefix != NULL) free (db_prefix); if (table_name != NULL) free (table_name); return 0; } SPATIALITE_DECLARE int load_dbf (sqlite3 * sqlite, char *dbf_path, char *table, char *charset, int verbose, int *rows, char *err_msg) { return load_dbf_ex (sqlite, dbf_path, table, NULL, charset, verbose, rows, err_msg); } SPATIALITE_DECLARE int load_dbf_ex (sqlite3 * sqlite, char *dbf_path, char *table, char *pk_column, char *charset, int verbose, int *rows, char *err_msg) { return load_dbf_ex2 (sqlite, dbf_path, table, pk_column, charset, verbose, 0, rows, err_msg); } SPATIALITE_DECLARE int load_dbf_ex2 (sqlite3 * sqlite, char *dbf_path, char *table, char *pk_column, char *charset, int verbose, int text_dates, int *rows, char *err_msg) { sqlite3_stmt *stmt; int ret; char *errMsg = NULL; char *sql; char *dummy; char *xname; int already_exists = 0; int sqlError = 0; gaiaDbfPtr dbf = NULL; gaiaDbfFieldPtr dbf_field; int cnt; int col_cnt; int seed; int len; int dup; int idup; int current_row; char **col_name = NULL; int deleted; char *qtable = NULL; char *qpk_name = NULL; char *pk_name = NULL; int pk_autoincr = 1; gaiaOutBuffer sql_statement; int pk_type = SQLITE_INTEGER; int pk_set; qtable = gaiaDoubleQuotedSql (table); if (rows) *rows = -1; /* checking if TABLE already exists */ sql = sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE " "type = 'table' AND Lower(name) = Lower(%Q)", table); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load DBF error: <%s>\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "load DBF error: <%s>\n", sqlite3_errmsg (sqlite)); if (qtable) free (qtable); if (qpk_name) free (qpk_name); return 0; } while (1) { /* scrolling the result set */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) already_exists = 1; else { spatialite_e ("load DBF error: <%s>\n", sqlite3_errmsg (sqlite)); break; } } sqlite3_finalize (stmt); if (already_exists) { if (!err_msg) spatialite_e ("load DBF error: table '%s' already exists\n", table); else sprintf (err_msg, "load DBF error: table '%s' already exists\n", table); if (qtable) free (qtable); if (qpk_name) free (qpk_name); return 0; } dbf = gaiaAllocDbf (); gaiaOpenDbfRead (dbf, dbf_path, charset, "UTF-8"); if (!(dbf->Valid)) { if (!err_msg) { spatialite_e ("load DBF error: cannot open '%s'\n", dbf_path); if (dbf->LastError) spatialite_e ("\tcause: %s\n", dbf->LastError); } else { char extra[512]; *extra = '\0'; if (dbf->LastError) sprintf (extra, "\n\tcause: %s", dbf->LastError); sprintf (err_msg, "load DBF error: cannot open '%s'%s", dbf_path, extra); } gaiaFreeDbf (dbf); if (qtable) free (qtable); if (qpk_name) free (qpk_name); return 0; } /* checking for duplicate / illegal column names and antialising them */ col_cnt = 0; dbf_field = dbf->Dbf->First; while (dbf_field) { /* counting DBF fields */ col_cnt++; dbf_field = dbf_field->Next; } col_name = malloc (sizeof (char *) * col_cnt); cnt = 0; seed = 0; if (pk_column != NULL) { /* validating the Primary Key column */ dbf_field = dbf->Dbf->First; while (dbf_field) { if (strcasecmp (pk_column, dbf_field->Name) == 0) { /* ok, using this field as Primary Key */ pk_name = pk_column; pk_autoincr = 0; switch (dbf_field->Type) { case 'C': pk_type = SQLITE_TEXT; break; case 'N': if (dbf_field->Decimals) pk_type = SQLITE_FLOAT; else { if (dbf_field->Length <= 18) pk_type = SQLITE_INTEGER; else pk_type = SQLITE_FLOAT; } break; case 'D': if (text_dates) pk_type = SQLITE_TEXT; else pk_type = SQLITE_FLOAT; break; case 'F': pk_type = SQLITE_FLOAT; break; case 'L': pk_type = SQLITE_INTEGER; break; }; } dbf_field = dbf_field->Next; } } if (pk_name == NULL) { if (pk_column != NULL) pk_name = pk_column; else pk_name = "PK_UID"; } qpk_name = gaiaDoubleQuotedSql (pk_name); dbf_field = dbf->Dbf->First; while (dbf_field) { /* preparing column names */ char *xdummy = NULL; if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dummy = dbf_field->Name; len = strlen (dummy); *(col_name + cnt) = malloc (len + 1); strcpy (*(col_name + cnt), dummy); cnt++; dbf_field = dbf_field->Next; continue; } dummy = dbf_field->Name; dup = 0; for (idup = 0; idup < cnt; idup++) { if (strcasecmp (dummy, *(col_name + idup)) == 0) dup = 1; } if (dup) { xdummy = sqlite3_mprintf ("COL_%d", seed++); dummy = xdummy; } len = strlen (dummy); *(col_name + cnt) = malloc (len + 1); strcpy (*(col_name + cnt), dummy); if (xdummy) free (xdummy); cnt++; dbf_field = dbf_field->Next; } if (verbose) spatialite_e ("========\nLoading DBF at '%s' into SQLite table '%s'\n", dbf_path, table); /* starting a transaction */ if (verbose) spatialite_e ("\nBEGIN;\n"); ret = sqlite3_exec (sqlite, "BEGIN", NULL, 0, &errMsg); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load DBF error: <%s>\n", errMsg); else sprintf (err_msg, "load DBF error: <%s>\n", errMsg); sqlite3_free (errMsg); sqlError = 1; goto clean_up; } /* creating the Table */ gaiaOutBufferInitialize (&sql_statement); if (pk_type == SQLITE_TEXT) { sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n\"%s\" " "TEXT PRIMARY KEY NOT NULL", qtable, qpk_name); } else if (pk_type == SQLITE_FLOAT) { sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n\"%s\" " "DOUBLE PRIMARY KEY NOT NULL", qtable, qpk_name); } else { if (pk_autoincr) sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n\"%s\" " "INTEGER PRIMARY KEY AUTOINCREMENT", qtable, qpk_name); else sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n\"%s\" " "INTEGER NOT NULL PRIMARY KEY", qtable, qpk_name); } gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); cnt = 0; dbf_field = dbf->Dbf->First; while (dbf_field) { if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dbf_field = dbf_field->Next; cnt++; continue; } xname = gaiaDoubleQuotedSql (*(col_name + cnt)); sql = sqlite3_mprintf (",\n\"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); cnt++; switch (dbf_field->Type) { case 'C': gaiaAppendToOutBuffer (&sql_statement, " TEXT"); break; case 'N': if (dbf_field->Decimals) gaiaAppendToOutBuffer (&sql_statement, " DOUBLE"); else { if (dbf_field->Length <= 18) gaiaAppendToOutBuffer (&sql_statement, " INTEGER"); else gaiaAppendToOutBuffer (&sql_statement, " DOUBLE"); } break; case 'D': if (text_dates) gaiaAppendToOutBuffer (&sql_statement, " TEXT"); else gaiaAppendToOutBuffer (&sql_statement, " DOUBLE"); break; case 'F': gaiaAppendToOutBuffer (&sql_statement, " DOUBLE"); break; case 'L': gaiaAppendToOutBuffer (&sql_statement, " INTEGER"); break; }; dbf_field = dbf_field->Next; } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { if (verbose) spatialite_e ("%s;\n", sql_statement.Buffer); ret = sqlite3_exec (sqlite, sql_statement.Buffer, NULL, 0, &errMsg); } else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load DBF error: <%s>\n", errMsg); else sprintf (err_msg, "load DBF error: <%s>\n", errMsg); sqlite3_free (errMsg); sqlError = 1; goto clean_up; } /* preparing the INSERT INTO parametrerized statement */ sql = sqlite3_mprintf ("INSERT INTO \"%s\" (\"%s\"", qtable, qpk_name); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); cnt = 0; dbf_field = dbf->Dbf->First; while (dbf_field) { /* columns corresponding to some DBF attribute */ if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dbf_field = dbf_field->Next; cnt++; continue; } xname = gaiaDoubleQuotedSql (*(col_name + cnt++)); sql = sqlite3_mprintf (",\"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); dbf_field = dbf_field->Next; } gaiaAppendToOutBuffer (&sql_statement, ")\nVALUES (?"); dbf_field = dbf->Dbf->First; while (dbf_field) { /* column values */ if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dbf_field = dbf_field->Next; continue; } gaiaAppendToOutBuffer (&sql_statement, ", ?"); dbf_field = dbf_field->Next; } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) ret = sqlite3_prepare_v2 (sqlite, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load DBF error: <%s>\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "load DBF error: <%s>\n", sqlite3_errmsg (sqlite)); sqlError = 1; goto clean_up; } current_row = 0; while (1) { /* inserting rows from DBF */ ret = gaiaReadDbfEntity_ex (dbf, current_row, &deleted, text_dates); if (!ret) { if (!(dbf->LastError)) /* normal DBF EOF */ break; if (!err_msg) spatialite_e ("%s\n", dbf->LastError); else sprintf (err_msg, "%s\n", dbf->LastError); sqlError = 1; goto clean_up; } current_row++; if (deleted) { /* skipping DBF deleted row */ continue; } /* binding query params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); pk_set = 0; cnt = 0; dbf_field = dbf->Dbf->First; while (dbf_field) { /* Primary Key value */ if (strcasecmp (pk_name, dbf_field->Name) == 0) { if (pk_type == SQLITE_TEXT) sqlite3_bind_text (stmt, 1, dbf_field->Value->TxtValue, strlen (dbf_field-> Value->TxtValue), SQLITE_STATIC); else if (pk_type == SQLITE_FLOAT) sqlite3_bind_double (stmt, 1, dbf_field->Value->DblValue); else sqlite3_bind_int64 (stmt, 1, dbf_field->Value->IntValue); pk_set = 1; } dbf_field = dbf_field->Next; } if (!pk_set) sqlite3_bind_int (stmt, 1, current_row); cnt = 0; dbf_field = dbf->Dbf->First; while (dbf_field) { /* column values */ if (strcasecmp (pk_name, dbf_field->Name) == 0) { /* skipping the Primary Key field */ dbf_field = dbf_field->Next; continue; } if (!(dbf_field->Value)) sqlite3_bind_null (stmt, cnt + 2); else { switch (dbf_field->Value->Type) { case GAIA_INT_VALUE: sqlite3_bind_int64 (stmt, cnt + 2, dbf_field->Value->IntValue); break; case GAIA_DOUBLE_VALUE: sqlite3_bind_double (stmt, cnt + 2, dbf_field->Value->DblValue); break; case GAIA_TEXT_VALUE: sqlite3_bind_text (stmt, cnt + 2, dbf_field->Value->TxtValue, strlen (dbf_field-> Value->TxtValue), SQLITE_STATIC); break; default: sqlite3_bind_null (stmt, cnt + 2); break; } } cnt++; dbf_field = dbf_field->Next; } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { if (!err_msg) spatialite_e ("load DBF error: <%s>\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "load DBF error: <%s>\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); sqlError = 1; goto clean_up; } } sqlite3_finalize (stmt); clean_up: if (qtable) free (qtable); if (qpk_name) free (qpk_name); gaiaFreeDbf (dbf); if (col_name) { /* releasing memory allocation for column names */ for (cnt = 0; cnt < col_cnt; cnt++) free (*(col_name + cnt)); free (col_name); } if (sqlError) { /* some error occurred - ROLLBACK */ if (verbose) spatialite_e ("ROLLBACK;\n"); ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, 0, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("load DBF error: <%s>\n", errMsg); sqlite3_free (errMsg); }; if (qtable) free (qtable); if (qpk_name) free (qpk_name); return 0; } else { /* ok - confirming pending transaction - COMMIT */ if (verbose) spatialite_e ("COMMIT;\n"); ret = sqlite3_exec (sqlite, "COMMIT", NULL, 0, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("load DBF error: <%s>\n", errMsg); sqlite3_free (errMsg); return 0; } if (rows) *rows = current_row; if (verbose) spatialite_e ("\nInserted %d rows into '%s' from DBF\n========\n", current_row, table); if (err_msg) sprintf (err_msg, "Inserted %d rows into '%s' from DBF", current_row, table); return 1; } } SPATIALITE_DECLARE int dump_dbf (sqlite3 * sqlite, char *table, char *dbf_path, char *charset, char *err_msg) { int rows; return dump_dbf_ex (sqlite, table, dbf_path, charset, &rows, err_msg); } SPATIALITE_DECLARE int dump_dbf_ex (sqlite3 * sqlite, char *table, char *dbf_path, char *charset, int *xrows, char *err_msg) { /* DBF dump */ int rows; int i; char *sql; char *xtable; sqlite3_stmt *stmt; int row1 = 0; int n_cols = 0; int offset = 0; int type; gaiaDbfPtr dbf = NULL; gaiaDbfListPtr dbf_export_list = NULL; gaiaDbfListPtr dbf_list = NULL; gaiaDbfListPtr dbf_write; gaiaDbfFieldPtr dbf_field; int *max_length = NULL; int *sql_type = NULL; char *dummy; char buf[256]; int len; int ret; char *db_prefix = NULL; char *table_name = NULL; struct auxdbf_list *auxdbf = NULL; *xrows = -1; shp_parse_table_name (table, &db_prefix, &table_name); /* / preparing SQL statement */ if (db_prefix != NULL && table_name != NULL) { char *xdb = gaiaDoubleQuotedSql (db_prefix); char *xxtable = gaiaDoubleQuotedSql (table_name); sql = sqlite3_mprintf ("SELECT * FROM \"%s\".\"%s\"", xdb, xxtable); free (xdb); free (xxtable); } else { xtable = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("SELECT * FROM \"%s\"", xtable); } /* / compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto sql_error; rows = 0; while (1) { /* / Pass I - scrolling the result set to compute real DBF attributes' sizes and types */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a result set row */ row1++; if (n_cols == 0) { /* this one is the first row, so we are going to prepare the DBF Fields list */ n_cols = sqlite3_column_count (stmt); dbf_export_list = gaiaAllocDbfList (); max_length = (int *) malloc (sizeof (int) * n_cols); sql_type = (int *) malloc (sizeof (int) * n_cols); for (i = 0; i < n_cols; i++) { /* initializes the DBF export fields */ dummy = (char *) sqlite3_column_name (stmt, i); gaiaAddDbfField (dbf_export_list, dummy, '\0', 0, 0, 0); max_length[i] = 0; sql_type[i] = SQLITE_NULL; } } for (i = 0; i < n_cols; i++) { /* update the DBF export fields analyzing fetched data */ type = sqlite3_column_type (stmt, i); if (type == SQLITE_NULL || type == SQLITE_BLOB) continue; if (type == SQLITE_TEXT) { len = sqlite3_column_bytes (stmt, i); if (len > 254) { /* DBF C type: max allowed length */ len = 254; } sql_type[i] = SQLITE_TEXT; if (len > max_length[i]) max_length[i] = len; } else if (type == SQLITE_FLOAT && sql_type[i] != SQLITE_TEXT) sql_type[i] = SQLITE_FLOAT; /* promoting a numeric column to be DOUBLE */ else if (type == SQLITE_INTEGER && (sql_type[i] == SQLITE_NULL || sql_type[i] == SQLITE_INTEGER)) sql_type[i] = SQLITE_INTEGER; /* promoting a null column to be INTEGER */ if (type == SQLITE_INTEGER && max_length[i] < 18) max_length[i] = 18; if (type == SQLITE_FLOAT && max_length[i] < 24) max_length[i] = 24; } } else goto sql_error; } if (!row1) goto empty_result_set; i = 0; offset = 0; dbf_list = gaiaAllocDbfList (); dbf_field = dbf_export_list->First; while (dbf_field) { /* preparing the final DBF attribute list */ if (sql_type[i] == SQLITE_NULL || sql_type[i] == SQLITE_BLOB) { i++; dbf_field = dbf_field->Next; continue; } if (sql_type[i] == SQLITE_TEXT) { gaiaAddDbfField (dbf_list, dbf_field->Name, 'C', offset, max_length[i], 0); offset += max_length[i]; } if (sql_type[i] == SQLITE_FLOAT) { gaiaAddDbfField (dbf_list, dbf_field->Name, 'N', offset, 19, 6); offset += 19; } if (sql_type[i] == SQLITE_INTEGER) { gaiaAddDbfField (dbf_list, dbf_field->Name, 'N', offset, 18, 0); offset += 18; } i++; dbf_field = dbf_field->Next; } free (max_length); free (sql_type); gaiaFreeDbfList (dbf_export_list); dbf_export_list = NULL; continue_exporting: /* resetting SQLite query */ ret = sqlite3_reset (stmt); if (ret != SQLITE_OK) goto sql_error; /* trying to open the DBF file */ dbf = gaiaAllocDbf (); /* xfering export-list ownership */ dbf->Dbf = dbf_list; dbf_list = NULL; gaiaOpenDbfWrite (dbf, dbf_path, "UTF-8", charset); if (!(dbf->Valid)) goto no_file; while (1) { /* Pass II - scrolling the result set to dump data into DBF */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { rows++; dbf_write = gaiaCloneDbfEntity (dbf->Dbf); auxdbf = alloc_auxdbf (dbf_write); for (i = 0; i < n_cols; i++) { dummy = (char *) sqlite3_column_name (stmt, i); dbf_field = getDbfField (auxdbf, dummy); if (!dbf_field) continue; if (sqlite3_column_type (stmt, i) == SQLITE_NULL || sqlite3_column_type (stmt, i) == SQLITE_BLOB) { /* handling NULL values */ gaiaSetNullValue (dbf_field); } else { switch (dbf_field->Type) { case 'N': if (sqlite3_column_type (stmt, i) == SQLITE_INTEGER) gaiaSetIntValue (dbf_field, sqlite3_column_int64 (stmt, i)); else if (sqlite3_column_type (stmt, i) == SQLITE_FLOAT) gaiaSetDoubleValue (dbf_field, sqlite3_column_double (stmt, i)); else gaiaSetNullValue (dbf_field); break; case 'C': if (sqlite3_column_type (stmt, i) == SQLITE_TEXT) { dummy = (char *) sqlite3_column_text (stmt, i); gaiaSetStrValue (dbf_field, dummy); } else if (sqlite3_column_type (stmt, i) == SQLITE_INTEGER) { sprintf (buf, FRMT64, sqlite3_column_int64 (stmt, i)); gaiaSetStrValue (dbf_field, buf); } else if (sqlite3_column_type (stmt, i) == SQLITE_FLOAT) { sql = sqlite3_mprintf ("%1.6f", sqlite3_column_double (stmt, i)); gaiaSetStrValue (dbf_field, sql); sqlite3_free (sql); } else gaiaSetNullValue (dbf_field); break; }; } } free_auxdbf (auxdbf); auxdbf = NULL; if (!gaiaWriteDbfEntity (dbf, dbf_write)) spatialite_e ("DBF write error\n"); gaiaFreeDbfList (dbf_write); } else goto sql_error; } if (auxdbf != NULL) free_auxdbf (auxdbf); sqlite3_finalize (stmt); gaiaFlushDbfHeader (dbf); gaiaFreeDbf (dbf); free (xtable); if (!err_msg) spatialite_e ("Exported %d rows into the DBF file\n", rows); else sprintf (err_msg, "Exported %d rows into the DBF file\n", rows); if (db_prefix != NULL) free (db_prefix); if (table_name != NULL) free (table_name); *xrows = rows; return 1; sql_error: /* some SQL error occurred */ if (auxdbf != NULL) free_auxdbf (auxdbf); free (xtable); sqlite3_finalize (stmt); if (dbf_export_list) gaiaFreeDbfList (dbf_export_list); if (dbf_list) gaiaFreeDbfList (dbf_list); if (dbf) gaiaFreeDbf (dbf); if (!err_msg) spatialite_e ("dump DBF file error: %s\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "dump DBF file error: %s\n", sqlite3_errmsg (sqlite)); if (db_prefix != NULL) free (db_prefix); if (table_name != NULL) free (table_name); return 0; no_file: /* DBF can't be created/opened */ if (auxdbf != NULL) free_auxdbf (auxdbf); free (xtable); if (dbf_export_list) gaiaFreeDbfList (dbf_export_list); if (dbf_list) gaiaFreeDbfList (dbf_list); if (dbf) gaiaFreeDbf (dbf); if (!err_msg) spatialite_e ("ERROR: unable to open '%s' for writing\n", dbf_path); else sprintf (err_msg, "ERROR: unable to open '%s' for writing\n", dbf_path); if (db_prefix != NULL) free (db_prefix); if (table_name != NULL) free (table_name); return 0; empty_result_set: /* the result set is empty - nothing to do */ if (auxdbf != NULL) free_auxdbf (auxdbf); if (get_default_dbf_fields (sqlite, xtable, db_prefix, table_name, &dbf_list)) goto continue_exporting; free (xtable); sqlite3_finalize (stmt); if (dbf_export_list) gaiaFreeDbfList (dbf_export_list); if (dbf_list) gaiaFreeDbfList (dbf_list); if (dbf) gaiaFreeDbf (dbf); if (!err_msg) spatialite_e ("The SQL SELECT returned an empty result set ... there is nothing to export ...\n"); else sprintf (err_msg, "The SQL SELECT returned an empty result set ... there is nothing to export ...\n"); if (db_prefix != NULL) free (db_prefix); if (table_name != NULL) free (table_name); return 0; } #endif /* end ICONV (SHP and DBF) */ SPATIALITE_DECLARE int is_kml_constant (sqlite3 * sqlite, char *table, char *column) { /* checking a possible column name for KML dump */ char *sql; char *xname; int ret; int k = 1; const char *name; char **results; int rows; int columns; int i; char *errMsg = NULL; xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) return 1; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, column) == 0) k = 0; } } sqlite3_free_table (results); return k; } SPATIALITE_DECLARE int dump_kml (sqlite3 * sqlite, char *table, char *geom_col, char *kml_path, char *name_col, char *desc_col, int precision) { int rows; return dump_kml_ex (sqlite, table, geom_col, kml_path, name_col, desc_col, precision, &rows); } SPATIALITE_DECLARE int dump_kml_ex (sqlite3 * sqlite, char *table, char *geom_col, char *kml_path, char *name_col, char *desc_col, int precision, int *xrows) { /* dumping a geometry table as KML */ char *sql; char *xname; char *xdesc; char *xgeom_col; char *xtable; sqlite3_stmt *stmt = NULL; FILE *out = NULL; int ret; int rows = 0; int is_const = 1; *xrows = -1; /* opening/creating the KML file */ out = fopen (kml_path, "wb"); if (!out) goto no_file; /* preparing SQL statement */ if (name_col == NULL) xname = sqlite3_mprintf ("%Q", "name"); else { is_const = is_kml_constant (sqlite, table, name_col); if (is_const) xname = sqlite3_mprintf ("%Q", name_col); else { xname = gaiaDoubleQuotedSql (name_col); sql = sqlite3_mprintf ("\"%s\"", xname); free (xname); xname = sql; } } if (desc_col == NULL) xdesc = sqlite3_mprintf ("%Q", "description"); else { is_const = is_kml_constant (sqlite, table, desc_col); if (is_const) xdesc = sqlite3_mprintf ("%Q", desc_col); else { xdesc = gaiaDoubleQuotedSql (desc_col); sql = sqlite3_mprintf ("\"%s\"", xdesc); free (xdesc); xdesc = sql; } } xgeom_col = gaiaDoubleQuotedSql (geom_col); xtable = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("SELECT AsKML(%s, %s, %s, %d) FROM \"%s\" " "WHERE \"%s\" IS NOT NULL", xname, xdesc, xgeom_col, precision, xtable, xgeom_col); sqlite3_free (xname); sqlite3_free (xdesc); free (xgeom_col); free (xtable); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto sql_error; while (1) { /* scrolling the result set */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a result set row */ if (rows == 0) { fprintf (out, "\r\n"); fprintf (out, "\r\n"); fprintf (out, "\r\n"); } rows++; fprintf (out, "\t%s\r\n", sqlite3_column_text (stmt, 0)); } else goto sql_error; } if (!rows) goto empty_result_set; fprintf (out, "\r\n"); fprintf (out, "\r\n"); sqlite3_finalize (stmt); fclose (out); *xrows = rows; return 1; sql_error: /* some SQL error occurred */ if (stmt) sqlite3_finalize (stmt); if (out) fclose (out); spatialite_e ("Dump KML error: %s\n", sqlite3_errmsg (sqlite)); return 0; no_file: /* KML file can't be created/opened */ if (stmt) sqlite3_finalize (stmt); if (out) fclose (out); spatialite_e ("ERROR: unable to open '%s' for writing\n", kml_path); return 0; empty_result_set: /* the result set is empty - nothing to do */ if (stmt) sqlite3_finalize (stmt); if (out) fclose (out); spatialite_e ("The SQL SELECT returned an empty result set\n... there is nothing to export ...\n"); return 0; } static int is_table (sqlite3 * sqlite, const char *table) { /* check if this one really is a TABLE */ char *sql; int ret; char **results; int rows; int columns; char *errMsg = NULL; int ok = 0; sql = sqlite3_mprintf ("SELECT tbl_name FROM sqlite_master " "WHERE type = 'table' AND Lower(tbl_name) = Lower(%Q)", table); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("SQLite SQL error: %s\n", errMsg); sqlite3_free (errMsg); return ok; } if (rows < 1) ; else ok = 1; sqlite3_free_table (results); return ok; } SPATIALITE_DECLARE void check_duplicated_rows (sqlite3 * sqlite, char *table, int *dupl_count) { /* Checking a Table for Duplicate rows */ char *sql; int first = 1; char *xname; int pk; int ret; char **results; int rows; int columns; int i; char *errMsg = NULL; sqlite3_stmt *stmt = NULL; gaiaOutBuffer sql_statement; gaiaOutBuffer col_list; *dupl_count = 0; if (is_table (sqlite, table) == 0) { spatialite_e (".chkdupl %s: no such table\n", table); *dupl_count = -1; return; } /* extracting the column names (excluding any Primary Key) */ gaiaOutBufferInitialize (&col_list); xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("SQLite SQL error: %s\n", errMsg); sqlite3_free (errMsg); return; } if (rows < 1) ; else { for (i = 1; i <= rows; i++) { sql = results[(i * columns) + 1]; pk = atoi (results[(i * columns) + 5]); if (!pk) { xname = gaiaDoubleQuotedSql (sql); if (first) { sql = sqlite3_mprintf ("\"%s\"", xname); first = 0; } else sql = sqlite3_mprintf (", \"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&col_list, sql); sqlite3_free (sql); } } } sqlite3_free_table (results); /* preparing the SQL statement */ gaiaOutBufferInitialize (&sql_statement); gaiaAppendToOutBuffer (&sql_statement, "SELECT Count(*) AS \"[dupl-count]\", "); if (col_list.Error == 0 && col_list.Buffer != NULL) gaiaAppendToOutBuffer (&sql_statement, col_list.Buffer); xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("\nFROM \"%s\"\nGROUP BY ", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); if (col_list.Error == 0 && col_list.Buffer != NULL) gaiaAppendToOutBuffer (&sql_statement, col_list.Buffer); gaiaOutBufferReset (&col_list); gaiaAppendToOutBuffer (&sql_statement, "\nHAVING \"[dupl-count]\" > 1"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { ret = sqlite3_prepare_v2 (sqlite, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); return; } } while (1) { /* fetching the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* fetching a row */ *dupl_count += sqlite3_column_int (stmt, 0) - 1; } else { spatialite_e ("SQL error: %s", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return; } } sqlite3_finalize (stmt); if (*dupl_count) spatialite_e ("%d duplicated rows found !!!\n", *dupl_count); else spatialite_e ("No duplicated rows have been identified\n"); } static int do_delete_duplicates2 (sqlite3 * sqlite, sqlite3_int64 rowid, sqlite3_stmt * stmt1) { /* deleting duplicate rows [actual delete] */ int ret; sqlite3_reset (stmt1); sqlite3_clear_bindings (stmt1); sqlite3_bind_int64 (stmt1, 1, rowid); ret = sqlite3_step (stmt1); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); return 0; } return 1; } static int do_delete_duplicates (sqlite3 * sqlite, const char *sql1, const char *sql2, int *count, int transaction) { /* deleting duplicate rows */ struct resultset_comparator *rs_obj = NULL; sqlite3_stmt *stmt1 = NULL; sqlite3_stmt *stmt2 = NULL; int ret; int cnt = 0; char *sql_err = NULL; *count = 0; if (transaction) { /* the complete operation is handled as an unique SQL Transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &sql_err); if (ret != SQLITE_OK) { spatialite_e ("BEGIN TRANSACTION error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } } /* preparing the main SELECT statement */ ret = sqlite3_prepare_v2 (sqlite, sql1, strlen (sql1), &stmt1, NULL); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); return 0; } /* preparing the DELETE statement */ ret = sqlite3_prepare_v2 (sqlite, sql2, strlen (sql2), &stmt2, NULL); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); goto error; } rs_obj = create_resultset_comparator (sqlite3_column_count (stmt1) - 1); while (1) { /* fetching the result set rows */ ret = sqlite3_step (stmt1); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* fetching a row */ save_row_from_resultset (rs_obj, stmt1); if (resultset_rows_equals (rs_obj)) { if (do_delete_duplicates2 (sqlite, get_current_resultset_rowid (rs_obj), stmt2)) { cnt += 1; reset_resultset_current_row (rs_obj); continue; } else goto error; } } else { spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); goto error; } swap_resultset_rows (rs_obj); } sqlite3_finalize (stmt1); sqlite3_finalize (stmt2); destroy_resultset_comparator (rs_obj); if (transaction) { /* confirm the still pending Transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &sql_err); if (ret != SQLITE_OK) { spatialite_e ("COMMIT TRANSACTION error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } } *count = cnt; return 1; error: *count = 0; if (stmt1) sqlite3_finalize (stmt1); if (stmt2) sqlite3_finalize (stmt2); if (transaction) { /* performing a ROLLBACK anyway */ ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, &sql_err); if (ret != SQLITE_OK) { spatialite_e ("ROLLBACK TRANSACTION error: %s\n", sql_err); sqlite3_free (sql_err); return 0; } } return 0; } SPATIALITE_DECLARE void remove_duplicated_rows_ex2 (sqlite3 * sqlite, char *table, int *removed, int transaction) { /* attempting to delete Duplicate rows from a table */ char *sql; char *sql2; int first = 1; char *xname; int pk; int ret; char **results; int rows; int columns; int i; char *errMsg = NULL; int count; gaiaOutBuffer sql_statement; gaiaOutBuffer col_list; if (removed != NULL) *removed = 0; if (is_table (sqlite, table) == 0) { spatialite_e (".remdupl %s: no such table\n", table); if (removed != NULL) *removed = -1; return; } /* extracting the column names (excluding any Primary Key) */ gaiaOutBufferInitialize (&col_list); xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("SQLite SQL error: %s\n", errMsg); sqlite3_free (errMsg); return; } if (rows < 1) ; else { for (i = 1; i <= rows; i++) { sql = results[(i * columns) + 1]; pk = atoi (results[(i * columns) + 5]); if (!pk) { if (first) first = 0; else gaiaAppendToOutBuffer (&col_list, ", "); xname = gaiaDoubleQuotedSql (sql); sql = sqlite3_mprintf ("\"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&col_list, sql); sqlite3_free (sql); } } } sqlite3_free_table (results); /* preparing the SQL statement (identifying duplicated rows) */ gaiaOutBufferInitialize (&sql_statement); gaiaAppendToOutBuffer (&sql_statement, "SELECT ROWID, "); if (col_list.Error == 0 && col_list.Buffer != NULL) gaiaAppendToOutBuffer (&sql_statement, col_list.Buffer); xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("\nFROM \"%s\"\nORDER BY ", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); if (col_list.Error == 0 && col_list.Buffer != NULL) gaiaAppendToOutBuffer (&sql_statement, col_list.Buffer); gaiaOutBufferReset (&col_list); gaiaAppendToOutBuffer (&sql_statement, ", ROWID"); /* preparing the SQL statement [delete] */ xname = gaiaDoubleQuotedSql (table); sql2 = sqlite3_mprintf ("DELETE FROM \"%s\" WHERE ROWID = ?", xname); free (xname); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) sql = sql_statement.Buffer; else sql = "NULL-SELECT"; if (do_delete_duplicates (sqlite, sql, sql2, &count, transaction)) { if (removed == NULL) { if (!count) spatialite_e ("No duplicated rows have been identified\n"); else spatialite_e ("%d duplicated rows deleted from: %s\n", count, table); } else *removed = count; } gaiaOutBufferReset (&sql_statement); sqlite3_free (sql2); } SPATIALITE_DECLARE void remove_duplicated_rows_ex (sqlite3 * sqlite, char *table, int *removed) { /* attempting to delete Duplicate rows from a table */ remove_duplicated_rows_ex2 (sqlite, table, removed, 1); } SPATIALITE_DECLARE void remove_duplicated_rows (sqlite3 * sqlite, char *table) { /* attempting to delete Duplicate rows from a table */ remove_duplicated_rows_ex (sqlite, table, NULL); } static int check_elementary (sqlite3 * sqlite, const char *inTable, const char *geom, const char *outTable, const char *pKey, const char *multiID, char *type, int *srid, char *coordDims) { /* preliminary check for ELEMENTARY GEOMETRIES */ char *sql; char *xtable; int ret; char **results; int rows; int columns; char *errMsg = NULL; int ok = 0; int i; char *gtp; char *dims; int metadata_version = checkSpatialMetaData (sqlite); /* fetching metadata */ if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ sql = sqlite3_mprintf ("SELECT geometry_type, srid " "FROM geometry_columns WHERE Lower(f_table_name) = Lower(%Q) " "AND Lower(f_geometry_column) = Lower(%Q)", inTable, geom); } else { /* legacy metadata style <= v.3.1.0 */ sql = sqlite3_mprintf ("SELECT type, coord_dimension, srid " "FROM geometry_columns WHERE Lower(f_table_name) = Lower(%Q) " "AND Lower(f_geometry_column) = Lower(%Q)", inTable, geom); } ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); return 0; } if (rows < 1) ; else { for (i = 1; i <= rows; i++) { if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ gtp = "UNKNOWN"; dims = "UNKNOWN"; switch (atoi (results[(i * columns) + 0])) { case 0: gtp = "GEOMETRY"; dims = "XY"; break; case 1: gtp = "POINT"; dims = "XY"; break; case 2: gtp = "LINESTRING"; dims = "XY"; break; case 3: gtp = "POLYGON"; dims = "XY"; break; case 4: gtp = "MULTIPOINT"; dims = "XY"; break; case 5: gtp = "MULTILINESTRING"; dims = "XY"; break; case 6: gtp = "MULTIPOLYGON"; dims = "XY"; break; case 7: gtp = "GEOMETRYCOLLECTION"; dims = "XY"; break; case 1000: gtp = "GEOMETRY"; dims = "XYZ"; break; case 1001: gtp = "POINT"; dims = "XYZ"; break; case 1002: gtp = "LINESTRING"; dims = "XYZ"; break; case 1003: gtp = "POLYGON"; dims = "XYZ"; break; case 1004: gtp = "MULTIPOINT"; dims = "XYZ"; break; case 1005: gtp = "MULTILINESTRING"; dims = "XYZ"; break; case 1006: gtp = "MULTIPOLYGON"; dims = "XYZ"; break; case 1007: gtp = "GEOMETRYCOLLECTION"; dims = "XYZ"; break; case 2000: gtp = "GEOMETRY"; dims = "XYM"; break; case 2001: gtp = "POINT"; dims = "XYM"; break; case 2002: gtp = "LINESTRING"; dims = "XYM"; break; case 2003: gtp = "POLYGON"; dims = "XYM"; break; case 2004: gtp = "MULTIPOINT"; dims = "XYM"; break; case 2005: gtp = "MULTILINESTRING"; dims = "XYM"; break; case 2006: gtp = "MULTIPOLYGON"; dims = "XYM"; break; case 2007: gtp = "GEOMETRYCOLLECTION"; dims = "XYM"; break; case 3000: gtp = "GEOMETRY"; dims = "XYZM"; break; case 3001: gtp = "POINT"; dims = "XYZM"; break; case 3002: gtp = "LINESTRING"; dims = "XYZM"; break; case 3003: gtp = "POLYGON"; dims = "XYZM"; break; case 3004: gtp = "MULTIPOINT"; dims = "XYZM"; break; case 3005: gtp = "MULTILINESTRING"; dims = "XYZM"; break; case 3006: gtp = "MULTIPOLYGON"; dims = "XYZM"; break; case 3007: gtp = "GEOMETRYCOLLECTION"; dims = "XYZM"; break; }; *srid = atoi (results[(i * columns) + 1]); } else { /* legacy metadata style <= v.3.1.0 */ gtp = results[(i * columns) + 0]; dims = results[(i * columns) + 1]; *srid = atoi (results[(i * columns) + 2]); } if (strcasecmp (gtp, "POINT") == 0 || strcasecmp (gtp, "MULTIPOINT") == 0) strcpy (type, "POINT"); else if (strcasecmp (gtp, "LINESTRING") == 0 || strcasecmp (gtp, "MULTILINESTRING") == 0) strcpy (type, "LINESTRING"); else if (strcasecmp (gtp, "POLYGON") == 0 || strcasecmp (gtp, "MULTIPOLYGON") == 0) strcpy (type, "POLYGON"); else strcpy (type, "GEOMETRY"); strcpy (coordDims, dims); ok = 1; } } sqlite3_free_table (results); if (!ok) return 0; /* checking if PrimaryKey already exists */ xtable = gaiaDoubleQuotedSql (inTable); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable); free (xtable); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); return 0; } if (rows < 1) ; else { for (i = 1; i <= rows; i++) { if (strcasecmp (pKey, results[(i * columns) + 1]) == 0) ok = 0; } } sqlite3_free_table (results); if (!ok) return 0; /* checking if MultiID already exists */ xtable = gaiaDoubleQuotedSql (inTable); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable); free (xtable); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); return 0; } if (rows < 1) ; else { for (i = 1; i <= rows; i++) { if (strcasecmp (multiID, results[(i * columns) + 1]) == 0) ok = 0; } } sqlite3_free_table (results); if (!ok) return 0; /* cheching if Output Table already exists */ sql = sqlite3_mprintf ("SELECT Count(*) FROM sqlite_master " "WHERE type = 'table' AND Lower(tbl_name) = Lower(%Q)", outTable); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); return 0; } if (rows < 1) ; else { for (i = 1; i <= rows; i++) { if (atoi (results[(i * columns) + 0]) != 0) ok = 0; } } sqlite3_free_table (results); return ok; } static gaiaGeomCollPtr elemGeomFromPoint (gaiaPointPtr pt, int srid) { /* creating a Geometry containing a single Point */ gaiaGeomCollPtr g = NULL; switch (pt->DimensionModel) { case GAIA_XY_Z_M: g = gaiaAllocGeomCollXYZM (); break; case GAIA_XY_Z: g = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: g = gaiaAllocGeomCollXYM (); break; default: g = gaiaAllocGeomColl (); break; }; if (!g) return NULL; g->Srid = srid; g->DeclaredType = GAIA_POINT; switch (pt->DimensionModel) { case GAIA_XY_Z_M: gaiaAddPointToGeomCollXYZM (g, pt->X, pt->Y, pt->Z, pt->M); break; case GAIA_XY_Z: gaiaAddPointToGeomCollXYZ (g, pt->X, pt->Y, pt->Z); break; case GAIA_XY_M: gaiaAddPointToGeomCollXYM (g, pt->X, pt->Y, pt->M); break; default: gaiaAddPointToGeomColl (g, pt->X, pt->Y); break; }; return g; } static gaiaGeomCollPtr elemGeomFromLinestring (gaiaLinestringPtr ln, int srid) { /* creating a Geometry containing a single Linestring */ gaiaGeomCollPtr g = NULL; gaiaLinestringPtr ln2; int iv; double x; double y; double z; double m; switch (ln->DimensionModel) { case GAIA_XY_Z_M: g = gaiaAllocGeomCollXYZM (); break; case GAIA_XY_Z: g = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: g = gaiaAllocGeomCollXYM (); break; default: g = gaiaAllocGeomColl (); break; }; if (!g) return NULL; g->Srid = srid; g->DeclaredType = GAIA_LINESTRING; ln2 = gaiaAddLinestringToGeomColl (g, ln->Points); switch (ln->DimensionModel) { case GAIA_XY_Z_M: for (iv = 0; iv < ln->Points; iv++) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (ln2->Coords, iv, x, y, z, m); } break; case GAIA_XY_Z: for (iv = 0; iv < ln->Points; iv++) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (ln2->Coords, iv, x, y, z); } break; case GAIA_XY_M: for (iv = 0; iv < ln->Points; iv++) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaSetPointXYM (ln2->Coords, iv, x, y, m); } break; default: for (iv = 0; iv < ln->Points; iv++) { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaSetPoint (ln2->Coords, iv, x, y); } break; }; return g; } static gaiaGeomCollPtr elemGeomFromPolygon (gaiaPolygonPtr pg, int srid) { /* creating a Geometry containing a single Polygon */ gaiaGeomCollPtr g = NULL; gaiaPolygonPtr pg2; gaiaRingPtr rng; gaiaRingPtr rng2; int ib; int iv; double x; double y; double z; double m; switch (pg->DimensionModel) { case GAIA_XY_Z_M: g = gaiaAllocGeomCollXYZM (); break; case GAIA_XY_Z: g = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: g = gaiaAllocGeomCollXYM (); break; default: g = gaiaAllocGeomColl (); break; }; if (!g) return NULL; g->Srid = srid; g->DeclaredType = GAIA_POLYGON; rng = pg->Exterior; pg2 = gaiaAddPolygonToGeomColl (g, rng->Points, pg->NumInteriors); rng2 = pg2->Exterior; switch (pg->DimensionModel) { case GAIA_XY_Z_M: for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (rng2->Coords, iv, x, y, z, m); } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; rng2 = gaiaAddInteriorRing (pg2, ib, rng->Points); for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (rng2->Coords, iv, x, y, z, m); } } break; case GAIA_XY_Z: for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (rng2->Coords, iv, x, y, z); } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; rng2 = gaiaAddInteriorRing (pg2, ib, rng->Points); for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (rng2->Coords, iv, x, y, z); } } break; case GAIA_XY_M: for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaSetPointXYM (rng2->Coords, iv, x, y, m); } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; rng2 = gaiaAddInteriorRing (pg2, ib, rng->Points); for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaSetPointXYM (rng2->Coords, iv, x, y, m); } } break; default: for (iv = 0; iv < rng->Points; iv++) { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaSetPoint (rng2->Coords, iv, x, y); } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; rng2 = gaiaAddInteriorRing (pg2, ib, rng->Points); for (iv = 0; iv < rng->Points; iv++) { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaSetPoint (rng2->Coords, iv, x, y); } } break; }; return g; } SPATIALITE_DECLARE void elementary_geometries (sqlite3 * sqlite, char *inTable, char *geometry, char *outTable, char *pKey, char *multiId) { /* attempting to create a derived table surely containing elemetary Geoms */ int rows; elementary_geometries_ex (sqlite, inTable, geometry, outTable, pKey, multiId, &rows); } SPATIALITE_DECLARE void elementary_geometries_ex (sqlite3 * sqlite, char *inTable, char *geometry, char *outTable, char *pKey, char *multiId, int *xrows) { /* attempting to create a derived table surely containing elemetary Geoms */ elementary_geometries_ex2 (sqlite, inTable, geometry, outTable, pKey, multiId, xrows, 1); } SPATIALITE_DECLARE void elementary_geometries_ex2 (sqlite3 * sqlite, char *inTable, char *geometry, char *outTable, char *pKey, char *multiId, int *xrows, int transaction) { /* attempting to create a derived table surely containing elemetary Geoms */ char type[128]; int srid; char dims[64]; char *sql; char *xname; char *xpk; char *xmulti; gaiaOutBuffer sql_statement; gaiaOutBuffer sql2; gaiaOutBuffer sql3; gaiaOutBuffer sql4; char *sql_geom; int ret; int comma = 0; char *errMsg = NULL; int i; char **results; int rows; int columns; int geom_idx = -1; sqlite3_stmt *stmt_in = NULL; sqlite3_stmt *stmt_out = NULL; int n_columns; sqlite3_int64 id = 0; int inserted = 0; if (check_elementary (sqlite, inTable, geometry, outTable, pKey, multiId, type, &srid, dims) == 0) { spatialite_e (".elemgeo: invalid args\n"); *xrows = 0; return; } if (transaction) { /* starts a transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); goto abort; } } gaiaOutBufferInitialize (&sql_statement); gaiaOutBufferInitialize (&sql2); gaiaOutBufferInitialize (&sql3); gaiaOutBufferInitialize (&sql4); gaiaAppendToOutBuffer (&sql_statement, "SELECT "); xname = gaiaDoubleQuotedSql (outTable); xpk = gaiaDoubleQuotedSql (pKey); xmulti = gaiaDoubleQuotedSql (multiId); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (\"%s\", \"%s\", ", xname, xpk, xmulti); free (xname); free (xpk); free (xmulti); gaiaAppendToOutBuffer (&sql2, sql); sqlite3_free (sql); gaiaAppendToOutBuffer (&sql3, ") VALUES (NULL, ?"); xname = gaiaDoubleQuotedSql (outTable); xpk = gaiaDoubleQuotedSql (pKey); xmulti = gaiaDoubleQuotedSql (multiId); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" "\t\"%s\" INTEGER PRIMARY KEY AUTOINCREMENT" ",\n\t\"%s\" INTEGER NOT NULL", xname, xpk, xmulti); free (xname); free (xpk); free (xmulti); gaiaAppendToOutBuffer (&sql4, sql); sqlite3_free (sql); xname = gaiaDoubleQuotedSql (inTable); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); goto abort; } if (rows < 1) ; else { for (i = 1; i <= rows; i++) { xname = gaiaDoubleQuotedSql (results[(i * columns) + 1]); if (comma) sql = sqlite3_mprintf (", \"%s\"", xname); else { comma = 1; sql = sqlite3_mprintf ("\"%s\"", xname); } free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); gaiaAppendToOutBuffer (&sql2, sql); gaiaAppendToOutBuffer (&sql3, ", ?"); sqlite3_free (sql); if (strcasecmp (geometry, results[(i * columns) + 1]) == 0) geom_idx = i - 1; else { xname = gaiaDoubleQuotedSql (results[(i * columns) + 1]); if (atoi (results[(i * columns) + 3]) != 0) sql = sqlite3_mprintf (",\n\t\"%s\" %s NOT NULL", xname, results[(i * columns) + 2]); else sql = sqlite3_mprintf (",\n\t\"%s\" %s", xname, results[(i * columns) + 2]); free (xname); gaiaAppendToOutBuffer (&sql4, sql); sqlite3_free (sql); } } } sqlite3_free_table (results); if (geom_idx < 0) goto abort; xname = gaiaDoubleQuotedSql (inTable); sql = sqlite3_mprintf (" FROM \"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); gaiaAppendToOutBuffer (&sql2, sql3.Buffer); gaiaAppendToOutBuffer (&sql2, ")"); gaiaAppendToOutBuffer (&sql4, ")"); gaiaOutBufferReset (&sql3); sql_geom = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, %Q, %d, %Q, %Q)", outTable, geometry, srid, type, dims); /* creating the output table */ ret = sqlite3_exec (sqlite, sql4.Buffer, NULL, NULL, &errMsg); gaiaOutBufferReset (&sql4); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); goto abort; } /* creating the output Geometry */ ret = sqlite3_exec (sqlite, sql_geom, NULL, NULL, &errMsg); sqlite3_free (sql_geom); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); goto abort; } /* preparing the INPUT statement */ ret = sqlite3_prepare_v2 (sqlite, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt_in, NULL); gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); goto abort; } /* preparing the OUTPUT statement */ ret = sqlite3_prepare_v2 (sqlite, sql2.Buffer, strlen (sql2.Buffer), &stmt_out, NULL); gaiaOutBufferReset (&sql2); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); goto abort; } /* data transfer */ n_columns = sqlite3_column_count (stmt_in); while (1) { ret = sqlite3_step (stmt_in); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { gaiaGeomCollPtr g = gaiaFromSpatiaLiteBlobWkb ((const unsigned char *) sqlite3_column_blob (stmt_in, geom_idx), sqlite3_column_bytes (stmt_in, geom_idx)); if (!g) { /* NULL input geometry */ sqlite3_reset (stmt_out); sqlite3_clear_bindings (stmt_out); sqlite3_bind_int64 (stmt_out, 1, id); sqlite3_bind_null (stmt_out, geom_idx + 2); for (i = 0; i < n_columns; i++) { int type = sqlite3_column_type (stmt_in, i); if (i == geom_idx) continue; switch (type) { case SQLITE_INTEGER: sqlite3_bind_int64 (stmt_out, i + 2, sqlite3_column_int (stmt_in, i)); break; case SQLITE_FLOAT: sqlite3_bind_double (stmt_out, i + 2, sqlite3_column_double (stmt_in, i)); break; case SQLITE_TEXT: sqlite3_bind_text (stmt_out, i + 2, (const char *) sqlite3_column_text (stmt_in, i), sqlite3_column_bytes (stmt_in, i), SQLITE_STATIC); break; case SQLITE_BLOB: sqlite3_bind_blob (stmt_out, i + 2, sqlite3_column_blob (stmt_in, i), sqlite3_column_bytes (stmt_in, i), SQLITE_STATIC); break; case SQLITE_NULL: default: sqlite3_bind_null (stmt_out, i + 2); break; }; } ret = sqlite3_step (stmt_out); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("[OUT]step error: %s\n", sqlite3_errmsg (sqlite)); goto abort; } inserted++; } else { /* separating Elementary Geoms */ gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaGeomCollPtr outGeom; pt = g->FirstPoint; while (pt) { /* separating Points */ outGeom = elemGeomFromPoint (pt, g->Srid); sqlite3_reset (stmt_out); sqlite3_clear_bindings (stmt_out); sqlite3_bind_int64 (stmt_out, 1, id); if (!outGeom) sqlite3_bind_null (stmt_out, geom_idx + 2); else { unsigned char *blob; int size; gaiaToSpatiaLiteBlobWkb (outGeom, &blob, &size); sqlite3_bind_blob (stmt_out, geom_idx + 2, blob, size, free); gaiaFreeGeomColl (outGeom); } for (i = 0; i < n_columns; i++) { int type = sqlite3_column_type (stmt_in, i); if (i == geom_idx) continue; switch (type) { case SQLITE_INTEGER: sqlite3_bind_int64 (stmt_out, i + 2, sqlite3_column_int (stmt_in, i)); break; case SQLITE_FLOAT: sqlite3_bind_double (stmt_out, i + 2, sqlite3_column_double (stmt_in, i)); break; case SQLITE_TEXT: sqlite3_bind_text (stmt_out, i + 2, (const char *) sqlite3_column_text (stmt_in, i), sqlite3_column_bytes (stmt_in, i), SQLITE_STATIC); break; case SQLITE_BLOB: sqlite3_bind_blob (stmt_out, i + 2, sqlite3_column_blob (stmt_in, i), sqlite3_column_bytes (stmt_in, i), SQLITE_STATIC); break; case SQLITE_NULL: default: sqlite3_bind_null (stmt_out, i + 2); break; }; } ret = sqlite3_step (stmt_out); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("[OUT]step error: %s\n", sqlite3_errmsg (sqlite)); goto abort; } inserted++; pt = pt->Next; } ln = g->FirstLinestring; while (ln) { /* separating Linestrings */ outGeom = elemGeomFromLinestring (ln, g->Srid); sqlite3_reset (stmt_out); sqlite3_clear_bindings (stmt_out); sqlite3_bind_int64 (stmt_out, 1, id); if (!outGeom) sqlite3_bind_null (stmt_out, geom_idx + 2); else { unsigned char *blob; int size; gaiaToSpatiaLiteBlobWkb (outGeom, &blob, &size); sqlite3_bind_blob (stmt_out, geom_idx + 2, blob, size, free); gaiaFreeGeomColl (outGeom); } for (i = 0; i < n_columns; i++) { int type = sqlite3_column_type (stmt_in, i); if (i == geom_idx) continue; switch (type) { case SQLITE_INTEGER: sqlite3_bind_int64 (stmt_out, i + 2, sqlite3_column_int (stmt_in, i)); break; case SQLITE_FLOAT: sqlite3_bind_double (stmt_out, i + 2, sqlite3_column_double (stmt_in, i)); break; case SQLITE_TEXT: sqlite3_bind_text (stmt_out, i + 2, (const char *) sqlite3_column_text (stmt_in, i), sqlite3_column_bytes (stmt_in, i), SQLITE_STATIC); break; case SQLITE_BLOB: sqlite3_bind_blob (stmt_out, i + 2, sqlite3_column_blob (stmt_in, i), sqlite3_column_bytes (stmt_in, i), SQLITE_STATIC); break; case SQLITE_NULL: default: sqlite3_bind_null (stmt_out, i + 2); break; }; } ret = sqlite3_step (stmt_out); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("[OUT]step error: %s\n", sqlite3_errmsg (sqlite)); goto abort; } inserted++; ln = ln->Next; } pg = g->FirstPolygon; while (pg) { /* separating Polygons */ outGeom = elemGeomFromPolygon (pg, g->Srid); sqlite3_reset (stmt_out); sqlite3_clear_bindings (stmt_out); sqlite3_bind_int64 (stmt_out, 1, id); if (!outGeom) sqlite3_bind_null (stmt_out, geom_idx + 2); else { unsigned char *blob; int size; gaiaToSpatiaLiteBlobWkb (outGeom, &blob, &size); sqlite3_bind_blob (stmt_out, geom_idx + 2, blob, size, free); gaiaFreeGeomColl (outGeom); } for (i = 0; i < n_columns; i++) { int type = sqlite3_column_type (stmt_in, i); if (i == geom_idx) continue; switch (type) { case SQLITE_INTEGER: sqlite3_bind_int64 (stmt_out, i + 2, sqlite3_column_int (stmt_in, i)); break; case SQLITE_FLOAT: sqlite3_bind_double (stmt_out, i + 2, sqlite3_column_double (stmt_in, i)); break; case SQLITE_TEXT: sqlite3_bind_text (stmt_out, i + 2, (const char *) sqlite3_column_text (stmt_in, i), sqlite3_column_bytes (stmt_in, i), SQLITE_STATIC); break; case SQLITE_BLOB: sqlite3_bind_blob (stmt_out, i + 2, sqlite3_column_blob (stmt_in, i), sqlite3_column_bytes (stmt_in, i), SQLITE_STATIC); break; case SQLITE_NULL: default: sqlite3_bind_null (stmt_out, i + 2); break; }; } ret = sqlite3_step (stmt_out); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("[OUT]step error: %s\n", sqlite3_errmsg (sqlite)); goto abort; } inserted++; pg = pg->Next; } gaiaFreeGeomColl (g); } id++; } else { spatialite_e ("[IN]step error: %s\n", sqlite3_errmsg (sqlite)); goto abort; } } sqlite3_finalize (stmt_in); sqlite3_finalize (stmt_out); if (transaction) { /* commits the transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); goto abort; } } *xrows = inserted; return; abort: if (stmt_in) sqlite3_finalize (stmt_in); if (stmt_out) sqlite3_finalize (stmt_out); if (transaction) { /* rolling bacj the transaction */ ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", errMsg); sqlite3_free (errMsg); } } *xrows = 0; } #ifndef OMIT_FREEXL /* including FreeXL */ SPATIALITE_DECLARE int load_XL (sqlite3 * sqlite, const char *path, const char *table, unsigned int worksheetIndex, int first_titles, unsigned int *rows, char *err_msg) { /* loading an XL spreadsheet as a new DB table */ sqlite3_stmt *stmt; unsigned int current_row; int ret; char *errMsg = NULL; char *xname; char *dummy; char *xdummy; char *sql; int sqlError = 0; const void *xl_handle; unsigned int info; unsigned short columns; unsigned short col; gaiaOutBuffer sql_statement; FreeXL_CellValue cell; int already_exists = 0; *rows = 0; /* checking if TABLE already exists */ sql = sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = 'table' " "AND Lower(name) = Lower(%Q)", table); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load XL error: <%s>\n", sqlite3_errmsg (sqlite)); else sprintf (err_msg, "load XL error: <%s>\n", sqlite3_errmsg (sqlite)); return 0; } while (1) { /* scrolling the result set */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) already_exists = 1; else { spatialite_e ("load XL error: <%s>\n", sqlite3_errmsg (sqlite)); break; } } sqlite3_finalize (stmt); if (already_exists) { if (!err_msg) spatialite_e ("load XL error: table '%s' already exists\n", table); else sprintf (err_msg, "load XL error: table '%s' already exists\n", table); return 0; } /* opening the .XLS file [Workbook] */ ret = freexl_open (path, &xl_handle); if (ret != FREEXL_OK) goto error; /* checking if Password protected */ ret = freexl_get_info (xl_handle, FREEXL_BIFF_PASSWORD, &info); if (ret != FREEXL_OK) goto error; if (info != FREEXL_BIFF_PLAIN) goto error; /* Worksheet entries */ ret = freexl_get_info (xl_handle, FREEXL_BIFF_SHEET_COUNT, &info); if (ret != FREEXL_OK) goto error; if (info == 0) goto error; if (worksheetIndex < info) ; else goto error; ret = freexl_select_active_worksheet (xl_handle, worksheetIndex); if (ret != FREEXL_OK) goto error; ret = freexl_worksheet_dimensions (xl_handle, rows, &columns); if (ret != FREEXL_OK) goto error; /* starting a transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, 0, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("load XL error: %s\n", errMsg); sqlite3_free (errMsg); sqlError = 1; goto clean_up; } /* creating the Table */ gaiaOutBufferInitialize (&sql_statement); xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("CREATE TABLE \"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); gaiaAppendToOutBuffer (&sql_statement, " (\nPK_UID INTEGER PRIMARY KEY AUTOINCREMENT"); for (col = 0; col < columns; col++) { if (first_titles) { /* fetching column names */ for (col = 0; col < columns; col++) { ret = freexl_get_cell_value (xl_handle, 0, col, &cell); if (ret != FREEXL_OK) dummy = sqlite3_mprintf ("col_%d", col); else { if (cell.type == FREEXL_CELL_INT) dummy = sqlite3_mprintf ("%d", cell.value.int_value); else if (cell.type == FREEXL_CELL_DOUBLE) dummy = sqlite3_mprintf ("%1.2f ", cell. value.double_value); else if (cell.type == FREEXL_CELL_TEXT || cell.type == FREEXL_CELL_SST_TEXT || cell.type == FREEXL_CELL_DATE || cell.type == FREEXL_CELL_DATETIME || cell.type == FREEXL_CELL_TIME) { int len = strlen (cell.value.text_value); if (len < 256) dummy = sqlite3_mprintf ("%s", cell. value.text_value); else dummy = sqlite3_mprintf ("col_%d", col); } else dummy = sqlite3_mprintf ("col_%d", col); } xdummy = gaiaDoubleQuotedSql (dummy); sqlite3_free (dummy); sql = sqlite3_mprintf (", \"%s\"", xdummy); free (xdummy); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } } else { /* setting default column names */ for (col = 0; col < columns; col++) { dummy = sqlite3_mprintf ("col_%d", col); xdummy = gaiaDoubleQuotedSql (dummy); sqlite3_free (dummy); sql = sqlite3_mprintf (", \"%s\"", xdummy); free (xdummy); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } } } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { ret = sqlite3_exec (sqlite, sql_statement.Buffer, NULL, 0, &errMsg); gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { spatialite_e ("load XL error: %s\n", errMsg); sqlite3_free (errMsg); sqlError = 1; goto clean_up; } } /* preparing the INSERT INTO parameterized statement */ gaiaOutBufferReset (&sql_statement); xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (PK_UID", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); for (col = 0; col < columns; col++) { if (first_titles) { ret = freexl_get_cell_value (xl_handle, 0, col, &cell); if (ret != FREEXL_OK) dummy = sqlite3_mprintf ("col_%d", col); else { if (cell.type == FREEXL_CELL_INT) dummy = sqlite3_mprintf ("%d", cell.value.int_value); else if (cell.type == FREEXL_CELL_DOUBLE) dummy = sqlite3_mprintf ("%1.2f", cell.value.double_value); else if (cell.type == FREEXL_CELL_TEXT || cell.type == FREEXL_CELL_SST_TEXT || cell.type == FREEXL_CELL_DATE || cell.type == FREEXL_CELL_DATETIME || cell.type == FREEXL_CELL_TIME) { int len = strlen (cell.value.text_value); if (len < 256) dummy = sqlite3_mprintf ("%s", cell.value.text_value); else dummy = sqlite3_mprintf ("col_%d", col); } else dummy = sqlite3_mprintf ("col_%d", col); } xdummy = gaiaDoubleQuotedSql (dummy); sqlite3_free (dummy); sql = sqlite3_mprintf (", \"%s\"", xdummy); free (xdummy); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } else { /* setting default column names */ dummy = sqlite3_mprintf ("col_%d", col); xdummy = gaiaDoubleQuotedSql (dummy); sqlite3_free (dummy); sql = sqlite3_mprintf (", \"%s\"", xdummy); free (xdummy); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } } gaiaAppendToOutBuffer (&sql_statement, ")\nVALUES (NULL"); for (col = 0; col < columns; col++) { /* column values */ gaiaAppendToOutBuffer (&sql_statement, ", ?"); } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { ret = sqlite3_prepare_v2 (sqlite, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { spatialite_e ("load XL error: %s\n", sqlite3_errmsg (sqlite)); sqlError = 1; goto clean_up; } } if (first_titles) current_row = 1; else current_row = 0; while (current_row < *rows) { /* binding query params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); for (col = 0; col < columns; col++) { /* column values */ ret = freexl_get_cell_value (xl_handle, current_row, col, &cell); if (ret != FREEXL_OK) sqlite3_bind_null (stmt, col + 1); else { switch (cell.type) { case FREEXL_CELL_INT: sqlite3_bind_int (stmt, col + 1, cell.value.int_value); break; case FREEXL_CELL_DOUBLE: sqlite3_bind_double (stmt, col + 1, cell.value.double_value); break; case FREEXL_CELL_TEXT: case FREEXL_CELL_SST_TEXT: case FREEXL_CELL_DATE: case FREEXL_CELL_DATETIME: case FREEXL_CELL_TIME: sqlite3_bind_text (stmt, col + 1, cell.value.text_value, strlen (cell.value.text_value), SQLITE_STATIC); break; default: sqlite3_bind_null (stmt, col + 1); break; }; } } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("load XL error: %s\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); sqlError = 1; goto clean_up; } current_row++; } sqlite3_finalize (stmt); clean_up: if (sqlError) { /* some error occurred - ROLLBACK */ ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, 0, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("load XL error: %s\n", errMsg); sqlite3_free (errMsg); } spatialite_e ("XL not loaded\n\n\na ROLLBACK was automatically performed\n"); } else { /* ok - confirming pending transaction - COMMIT */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, 0, &errMsg); if (ret != SQLITE_OK) { if (!err_msg) spatialite_e ("load XL error: %s\n", errMsg); else sprintf (err_msg, "load XL error: %s\n", errMsg); sqlite3_free (errMsg); return 0; } if (first_titles) *rows = *rows - 1; /* allow for header row */ spatialite_e ("XL loaded\n\n%d inserted rows\n", *rows); } freexl_close (xl_handle); return 1; error: freexl_close (xl_handle); if (!err_msg) spatialite_e ("XL datasource '%s' is not valid\n", path); else sprintf (err_msg, "XL datasource '%s' is not valid\n", path); *rows = 0; return 0; } #endif /* FreeXL enabled/disabled */ SPATIALITE_DECLARE int dump_geojson (sqlite3 * sqlite, char *table, char *geom_col, char *outfile_path, int precision, int option) { int rows; return dump_geojson_ex (sqlite, table, geom_col, outfile_path, precision, option, &rows); } SPATIALITE_DECLARE int dump_geojson_ex (sqlite3 * sqlite, char *table, char *geom_col, char *outfile_path, int precision, int option, int *xrows) { /* dumping a geometry table as GeoJSON - Brad Hards 2011-11-09 */ /* sandro furieri 2014-08-30: adding the "int *xrows" argument */ char *sql; char *xgeom_col; char *xtable; sqlite3_stmt *stmt = NULL; FILE *out = NULL; int ret; int rows = 0; *xrows = -1; /* opening/creating the GeoJSON output file */ out = fopen (outfile_path, "wb"); if (!out) goto no_file; /* preparing SQL statement */ xtable = gaiaDoubleQuotedSql (table); xgeom_col = gaiaDoubleQuotedSql (geom_col); sql = sqlite3_mprintf ("SELECT AsGeoJSON(\"%s\", %d, %d) FROM \"%s\" WHERE \"%s\" IS NOT NULL", xgeom_col, precision, option, xtable, xgeom_col); free (xtable); free (xgeom_col); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto sql_error; while (1) { /* scrolling the result set */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) { break; /* end of result set */ } if (ret == SQLITE_ROW) { rows++; fprintf (out, "%s\r\n", sqlite3_column_text (stmt, 0)); } else { goto sql_error; } } if (rows == 0) { goto empty_result_set; } sqlite3_finalize (stmt); fclose (out); *xrows = rows; return 1; sql_error: /* an SQL error occurred */ if (stmt) { sqlite3_finalize (stmt); } if (out) { fclose (out); } spatialite_e ("Dump GeoJSON error: %s\n", sqlite3_errmsg (sqlite)); return 0; no_file: /* Output file could not be created / opened */ if (stmt) { sqlite3_finalize (stmt); } if (out) { fclose (out); } spatialite_e ("ERROR: unable to open '%s' for writing\n", outfile_path); return 0; empty_result_set: /* the result set is empty - nothing to do */ if (stmt) { sqlite3_finalize (stmt); } if (out) { fclose (out); } spatialite_e ("The SQL SELECT returned no data to export...\n"); return 0; } libspatialite-4.3.0a/src/shapefiles/Makefile.am0000664000175000017500000000074612544707704016417 00000000000000 AM_CPPFLAGS = @CFLAGS@ AM_CPPFLAGS += -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libshapefiles.la shapefiles.la libshapefiles_la_SOURCES = shapefiles.c validator.c shapefiles_la_SOURCES = shapefiles.c validator.c shapefiles_la_CPPFLAGS = @CFLAGS@ shapefiles_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. shapefiles_la_CPPFLAGS += -DLOADABLE_EXTENSION shapefiles_la_LDFLAGS = -module shapefiles_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda libspatialite-4.3.0a/src/connection_cache/0000775000175000017500000000000012573314326015567 500000000000000libspatialite-4.3.0a/src/connection_cache/Makefile.in0000664000175000017500000006046512573313636017572 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/connection_cache ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) connection_cache_la_LIBADD = am_connection_cache_la_OBJECTS = connection_cache_la-alloc_cache.lo connection_cache_la_OBJECTS = $(am_connection_cache_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = connection_cache_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(connection_cache_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(connection_cache_la_LDFLAGS) $(LDFLAGS) -o $@ libconnection_cache_la_LIBADD = am_libconnection_cache_la_OBJECTS = alloc_cache.lo libconnection_cache_la_OBJECTS = $(am_libconnection_cache_la_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(connection_cache_la_SOURCES) \ $(libconnection_cache_la_SOURCES) DIST_SOURCES = $(connection_cache_la_SOURCES) \ $(libconnection_cache_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = generator AM_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@ -I$(top_srcdir)/src/headers noinst_HEADERS = cache_aux_1.h cache_aux_2.h cache_aux_3.h noinst_LTLIBRARIES = libconnection_cache.la connection_cache.la libconnection_cache_la_SOURCES = alloc_cache.c connection_cache_la_SOURCES = alloc_cache.c connection_cache_la_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@ \ -I$(top_srcdir)/src/headers -I. -DLOADABLE_EXTENSION connection_cache_la_LDFLAGS = -module connection_cache_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/connection_cache/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/connection_cache/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } connection_cache.la: $(connection_cache_la_OBJECTS) $(connection_cache_la_DEPENDENCIES) $(EXTRA_connection_cache_la_DEPENDENCIES) $(AM_V_CCLD)$(connection_cache_la_LINK) $(connection_cache_la_OBJECTS) $(connection_cache_la_LIBADD) $(LIBS) libconnection_cache.la: $(libconnection_cache_la_OBJECTS) $(libconnection_cache_la_DEPENDENCIES) $(EXTRA_libconnection_cache_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) $(libconnection_cache_la_OBJECTS) $(libconnection_cache_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloc_cache.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connection_cache_la-alloc_cache.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< connection_cache_la-alloc_cache.lo: alloc_cache.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(connection_cache_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connection_cache_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT connection_cache_la-alloc_cache.lo -MD -MP -MF $(DEPDIR)/connection_cache_la-alloc_cache.Tpo -c -o connection_cache_la-alloc_cache.lo `test -f 'alloc_cache.c' || echo '$(srcdir)/'`alloc_cache.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/connection_cache_la-alloc_cache.Tpo $(DEPDIR)/connection_cache_la-alloc_cache.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='alloc_cache.c' object='connection_cache_la-alloc_cache.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(connection_cache_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(connection_cache_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o connection_cache_la-alloc_cache.lo `test -f 'alloc_cache.c' || echo '$(srcdir)/'`alloc_cache.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: 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: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool \ clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/src/connection_cache/generator/0000775000175000017500000000000012573314326017555 500000000000000libspatialite-4.3.0a/src/connection_cache/generator/Makefile.in0000664000175000017500000003016412573313636021551 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/connection_cache/generator ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = README.txt code_generator.c all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/connection_cache/generator/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/connection_cache/generator/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir 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-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/src/connection_cache/generator/code_generator.c0000664000175000017500000000777612544707704022646 00000000000000/* / code_generator / / a tool autogenerating C code for SpatiaLite / [#include snippets for alloc_cache.c] / / version 1.0, 2013 October 30 / / Author: Sandro Furieri a.furieri@lqt.it / / Copyright (C) 2013 Alessandro Furieri / / This program is free software: you can redistribute it and/or modify / it under the terms of the GNU General Public License as published by / the Free Software Foundation, either version 3 of the License, or / (at your option) any later version. / / This program is distributed in the hope that it will be useful, / but WITHOUT ANY WARRANTY; without even the implied warranty of / MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the / GNU General Public License for more details. / / You should have received a copy of the GNU General Public License / along with this program. If not, see . / */ #include #include #include int main (int argc, char *argv[]) { /* this tool autogenerates few #include code snippets required by ../cache_alloc.c the MAX argument corresponds to the max number of concurrent connections supported by libspatialite at runtime. this value is required to be in the range between 4 and 1024 */ int i; int max; FILE *out; /* checking the MAX arg for validity */ if (argc != 2) { fprintf (stderr, "usage: code_generator MAX\n"); return -1; } max = atoi (argv[1]); if (max < 4) { fprintf (stderr, "error: MAX has to be >= 4 !!!!\n"); return -1; } if (max > 1024) { fprintf (stderr, "error: MAX has to be <= 1024 !!!!\n"); return -1; } /* generating "cache_aux_1.h" */ out = fopen ("cache_aux_1.h", "w"); if (out == NULL) { fprintf (stderr, "Unable to create/open \"cache_aux_1.h\"\n"); return -1; } fprintf (out, "#define SPATIALITE_MAX_CONNECTIONS\t%d\n\n", max); fprintf (out, "struct splite_connection\n{\n"); fprintf (out, "/* connections pool */\n"); fprintf (out, "\tvoid *conn_ptr;\n"); fprintf (out, "\tchar *gaia_geos_error_msg;\n"); fprintf (out, "\tchar *gaia_geos_warning_msg;\n"); fprintf (out, "\tchar *gaia_geosaux_error_msg;\n"); fprintf (out, "} splite_connection_pool[" "SPATIALITE_MAX_CONNECTIONS] =\n{\n"); for (i = 0; i < max; i++) { if (i == (max - 1)) fprintf (out, "\t{NULL, NULL, NULL, NULL}\n"); else fprintf (out, "\t{NULL, NULL, NULL, NULL},\n"); } fprintf (out, "};\n"); fclose (out); /* generating "cache_aux_2.h" */ out = fopen ("cache_aux_2.h", "w"); if (out == NULL) { fprintf (stderr, "Unable to create/open \"cache_aux_2.h\"\n"); return -1; } for (i = 0; i < max; i++) { fprintf (out, "static void\n"); fprintf (out, "geos_error_%d (const char *fmt, ...)\n{\n", i); fprintf (out, "\tva_list ap;\n"); fprintf (out, "\tva_start (ap, fmt);\n"); fprintf (out, "\tgeos_error_r (%d, fmt, ap);\n", i); fprintf (out, "\tva_end (ap);\n}\n\n"); } for (i = 0; i < max; i++) { fprintf (out, "static void\n"); fprintf (out, "geos_warning_%d (const char *fmt, ...)\n{\n", i); fprintf (out, "\tva_list ap;\n"); fprintf (out, "\tva_start (ap, fmt);\n"); fprintf (out, "\tgeos_warning_r (%d, fmt, ap);\n", i); fprintf (out, "\tva_end (ap);\n}\n\n"); } fclose (out); /* generating "cache_aux_3.h" */ out = fopen ("cache_aux_3.h", "w"); if (out == NULL) { fprintf (stderr, "Unable to create/open \"cache_aux_3.h\"\n"); return -1; } fprintf (out, "/* initializing all function pointers */\n"); fprintf (out, "\tswitch (cache->pool_index)\n\t{\n"); for (i = 0; i < max; i++) { fprintf (out, "\tcase %d:\n", i); fprintf (out, "\t\tcache->geos_warning = geos_warning_%d;\n", i); fprintf (out, "\t\tcache->geos_error = geos_error_%d;\n", i); fprintf (out, "\t\tbreak;\n"); } fprintf (out, "\t};\n\n"); fclose (out); return 0; } libspatialite-4.3.0a/src/connection_cache/generator/README.txt0000664000175000017500000000174212544707704021203 00000000000000HOW-TO: UPDATE connection_cache.c auto-generated C CODE ============================================================================ When updating is required: every time you wish to change the max number of concurrent connections. the basic default setting supported by any standard distribution always is 64; anyway you could eventually change this to any other valure in the range 4 - 1024 ============================================================================ STEP #1: compiling the C generator tool -------- # cd {libspatialite-source}/src/connection_cache/generator Linux: # gcc code_generator.c -o code_generator Windows [MinGW]: # gcc code_generator.c -o code_generator.exe STEP #3: generating the C code (#include snippets) -------- # rm cache_aux_*.h # ./code_generator MAX at the end of this step several "cache_aux_*.h" files will be generated STEP #4: final setup -------- - copy the generated file into the parent dir: rm ../cache_aux_*.h cp cache_aux_*.h .. libspatialite-4.3.0a/src/connection_cache/generator/Makefile.am0000664000175000017500000000005312544707704021533 00000000000000 EXTRA_DIST = README.txt code_generator.c libspatialite-4.3.0a/src/connection_cache/cache_aux_1.h0000664000175000017500000000367612544707704020040 00000000000000#define SPATIALITE_MAX_CONNECTIONS 64 struct splite_connection { /* connections pool */ void *conn_ptr; char *gaia_geos_error_msg; char *gaia_geos_warning_msg; char *gaia_geosaux_error_msg; } splite_connection_pool[SPATIALITE_MAX_CONNECTIONS] = { {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL} }; libspatialite-4.3.0a/src/connection_cache/cache_aux_3.h0000664000175000017500000001415712544707704020036 00000000000000/* initializing all function pointers */ switch (cache->pool_index) { case 0: cache->geos_warning = geos_warning_0; cache->geos_error = geos_error_0; break; case 1: cache->geos_warning = geos_warning_1; cache->geos_error = geos_error_1; break; case 2: cache->geos_warning = geos_warning_2; cache->geos_error = geos_error_2; break; case 3: cache->geos_warning = geos_warning_3; cache->geos_error = geos_error_3; break; case 4: cache->geos_warning = geos_warning_4; cache->geos_error = geos_error_4; break; case 5: cache->geos_warning = geos_warning_5; cache->geos_error = geos_error_5; break; case 6: cache->geos_warning = geos_warning_6; cache->geos_error = geos_error_6; break; case 7: cache->geos_warning = geos_warning_7; cache->geos_error = geos_error_7; break; case 8: cache->geos_warning = geos_warning_8; cache->geos_error = geos_error_8; break; case 9: cache->geos_warning = geos_warning_9; cache->geos_error = geos_error_9; break; case 10: cache->geos_warning = geos_warning_10; cache->geos_error = geos_error_10; break; case 11: cache->geos_warning = geos_warning_11; cache->geos_error = geos_error_11; break; case 12: cache->geos_warning = geos_warning_12; cache->geos_error = geos_error_12; break; case 13: cache->geos_warning = geos_warning_13; cache->geos_error = geos_error_13; break; case 14: cache->geos_warning = geos_warning_14; cache->geos_error = geos_error_14; break; case 15: cache->geos_warning = geos_warning_15; cache->geos_error = geos_error_15; break; case 16: cache->geos_warning = geos_warning_16; cache->geos_error = geos_error_16; break; case 17: cache->geos_warning = geos_warning_17; cache->geos_error = geos_error_17; break; case 18: cache->geos_warning = geos_warning_18; cache->geos_error = geos_error_18; break; case 19: cache->geos_warning = geos_warning_19; cache->geos_error = geos_error_19; break; case 20: cache->geos_warning = geos_warning_20; cache->geos_error = geos_error_20; break; case 21: cache->geos_warning = geos_warning_21; cache->geos_error = geos_error_21; break; case 22: cache->geos_warning = geos_warning_22; cache->geos_error = geos_error_22; break; case 23: cache->geos_warning = geos_warning_23; cache->geos_error = geos_error_23; break; case 24: cache->geos_warning = geos_warning_24; cache->geos_error = geos_error_24; break; case 25: cache->geos_warning = geos_warning_25; cache->geos_error = geos_error_25; break; case 26: cache->geos_warning = geos_warning_26; cache->geos_error = geos_error_26; break; case 27: cache->geos_warning = geos_warning_27; cache->geos_error = geos_error_27; break; case 28: cache->geos_warning = geos_warning_28; cache->geos_error = geos_error_28; break; case 29: cache->geos_warning = geos_warning_29; cache->geos_error = geos_error_29; break; case 30: cache->geos_warning = geos_warning_30; cache->geos_error = geos_error_30; break; case 31: cache->geos_warning = geos_warning_31; cache->geos_error = geos_error_31; break; case 32: cache->geos_warning = geos_warning_32; cache->geos_error = geos_error_32; break; case 33: cache->geos_warning = geos_warning_33; cache->geos_error = geos_error_33; break; case 34: cache->geos_warning = geos_warning_34; cache->geos_error = geos_error_34; break; case 35: cache->geos_warning = geos_warning_35; cache->geos_error = geos_error_35; break; case 36: cache->geos_warning = geos_warning_36; cache->geos_error = geos_error_36; break; case 37: cache->geos_warning = geos_warning_37; cache->geos_error = geos_error_37; break; case 38: cache->geos_warning = geos_warning_38; cache->geos_error = geos_error_38; break; case 39: cache->geos_warning = geos_warning_39; cache->geos_error = geos_error_39; break; case 40: cache->geos_warning = geos_warning_40; cache->geos_error = geos_error_40; break; case 41: cache->geos_warning = geos_warning_41; cache->geos_error = geos_error_41; break; case 42: cache->geos_warning = geos_warning_42; cache->geos_error = geos_error_42; break; case 43: cache->geos_warning = geos_warning_43; cache->geos_error = geos_error_43; break; case 44: cache->geos_warning = geos_warning_44; cache->geos_error = geos_error_44; break; case 45: cache->geos_warning = geos_warning_45; cache->geos_error = geos_error_45; break; case 46: cache->geos_warning = geos_warning_46; cache->geos_error = geos_error_46; break; case 47: cache->geos_warning = geos_warning_47; cache->geos_error = geos_error_47; break; case 48: cache->geos_warning = geos_warning_48; cache->geos_error = geos_error_48; break; case 49: cache->geos_warning = geos_warning_49; cache->geos_error = geos_error_49; break; case 50: cache->geos_warning = geos_warning_50; cache->geos_error = geos_error_50; break; case 51: cache->geos_warning = geos_warning_51; cache->geos_error = geos_error_51; break; case 52: cache->geos_warning = geos_warning_52; cache->geos_error = geos_error_52; break; case 53: cache->geos_warning = geos_warning_53; cache->geos_error = geos_error_53; break; case 54: cache->geos_warning = geos_warning_54; cache->geos_error = geos_error_54; break; case 55: cache->geos_warning = geos_warning_55; cache->geos_error = geos_error_55; break; case 56: cache->geos_warning = geos_warning_56; cache->geos_error = geos_error_56; break; case 57: cache->geos_warning = geos_warning_57; cache->geos_error = geos_error_57; break; case 58: cache->geos_warning = geos_warning_58; cache->geos_error = geos_error_58; break; case 59: cache->geos_warning = geos_warning_59; cache->geos_error = geos_error_59; break; case 60: cache->geos_warning = geos_warning_60; cache->geos_error = geos_error_60; break; case 61: cache->geos_warning = geos_warning_61; cache->geos_error = geos_error_61; break; case 62: cache->geos_warning = geos_warning_62; cache->geos_error = geos_error_62; break; case 63: cache->geos_warning = geos_warning_63; cache->geos_error = geos_error_63; break; }; libspatialite-4.3.0a/src/connection_cache/Makefile.am0000664000175000017500000000117412544707704017552 00000000000000 SUBDIRS = generator AM_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@ AM_CPPFLAGS += -I$(top_srcdir)/src/headers noinst_HEADERS = cache_aux_1.h cache_aux_2.h cache_aux_3.h noinst_LTLIBRARIES = libconnection_cache.la connection_cache.la libconnection_cache_la_SOURCES = alloc_cache.c connection_cache_la_SOURCES = alloc_cache.c connection_cache_la_CPPFLAGS = @CFLAGS@ @LIBXML2_CFLAGS@ connection_cache_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. connection_cache_la_CPPFLAGS += -DLOADABLE_EXTENSION connection_cache_la_LDFLAGS = -module connection_cache_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda libspatialite-4.3.0a/src/connection_cache/alloc_cache.c0000664000175000017500000004624012544707704020102 00000000000000/* alloc_cache.c -- Gaia spatial support for SQLite version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2013-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #ifdef _WIN32 #include #else #include #endif #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ #include #endif /* end LIBXML2 conditional */ #include #include #include #include #include #include #ifndef OMIT_GEOS /* including GEOS */ #include #endif #ifndef OMIT_PROJ /* including PROJ.4 */ #include #endif #include "cache_aux_1.h" /* GLOBAL variables */ extern char *gaia_geos_error_msg; extern char *gaia_geos_warning_msg; /* GLOBAL semaphores */ int gaia_already_initialized = 0; #ifdef _WIN32 static CRITICAL_SECTION gaia_cache_semaphore; static CRITICAL_SECTION gaia_lwgeom_semaphore; #else static pthread_mutex_t gaia_cache_semaphore = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t gaia_lwgeom_semaphore = PTHREAD_MUTEX_INITIALIZER; #endif #define GAIA_CONN_RESERVED (char *)1 static void setGeosErrorMsg (int pool_index, const char *msg) { /* setting the latest GEOS error message */ struct splite_connection *p = &(splite_connection_pool[pool_index]); int len; if (p->gaia_geos_error_msg != NULL) free (p->gaia_geos_error_msg); p->gaia_geos_error_msg = NULL; if (msg == NULL) return; len = strlen (msg); p->gaia_geos_error_msg = malloc (len + 1); strcpy (p->gaia_geos_error_msg, msg); } static void setGeosWarningMsg (int pool_index, const char *msg) { /* setting the latest GEOS error message */ struct splite_connection *p = &(splite_connection_pool[pool_index]); int len; if (p->gaia_geos_warning_msg != NULL) free (p->gaia_geos_warning_msg); p->gaia_geos_warning_msg = NULL; if (msg == NULL) return; len = strlen (msg); p->gaia_geos_warning_msg = malloc (len + 1); strcpy (p->gaia_geos_warning_msg, msg); } static void setGeosAuxErrorMsg (int pool_index, const char *msg) { /* setting the latest GEOS (auxiliary) error message */ struct splite_connection *p = &(splite_connection_pool[pool_index]); int len; if (p->gaia_geosaux_error_msg != NULL) free (p->gaia_geosaux_error_msg); p->gaia_geosaux_error_msg = NULL; if (msg == NULL) return; len = strlen (msg); p->gaia_geosaux_error_msg = malloc (len + 1); strcpy (p->gaia_geosaux_error_msg, msg); } static void geos_error_r (int pool_index, const char *fmt, va_list ap) { /* reporting some GEOS error - thread safe */ char *msg; msg = sqlite3_vmprintf (fmt, ap); if (msg) { spatialite_e ("GEOS error: %s\n", msg); setGeosErrorMsg (pool_index, msg); sqlite3_free (msg); } else setGeosErrorMsg (pool_index, NULL); } static void geos_warning_r (int pool_index, const char *fmt, va_list ap) { /* reporting some GEOS warning - thread safe */ char *msg; msg = sqlite3_vmprintf (fmt, ap); if (msg) { spatialite_e ("GEOS warning: %s\n", msg); setGeosWarningMsg (pool_index, msg); sqlite3_free (msg); } else setGeosWarningMsg (pool_index, NULL); } #include "cache_aux_2.h" static int find_free_connection () { int i; for (i = 0; i < SPATIALITE_MAX_CONNECTIONS; i++) { struct splite_connection *p = &(splite_connection_pool[i]); if (p->conn_ptr == NULL) { p->conn_ptr = GAIA_CONN_RESERVED; return i; } } spatialite_e ("ERROR: Too many connections: max %d\n", SPATIALITE_MAX_CONNECTIONS); return -1; } static void confirm (int i, void *cache) { /* marking the slot as definitely reserved */ struct splite_connection *p = &(splite_connection_pool[i]); p->conn_ptr = cache; } static void invalidate (int i) { /* definitely releasing the slot */ struct splite_connection *p = &(splite_connection_pool[i]); if (p->gaia_geos_error_msg != NULL) free (p->gaia_geos_error_msg); if (p->gaia_geos_warning_msg != NULL) free (p->gaia_geos_warning_msg); if (p->gaia_geosaux_error_msg != NULL) free (p->gaia_geosaux_error_msg); p->gaia_geos_error_msg = NULL; p->gaia_geos_warning_msg = NULL; p->gaia_geosaux_error_msg = NULL; p->conn_ptr = NULL; } SPATIALITE_DECLARE void * spatialite_alloc_connection () { /* allocating and initializing an empty internal cache */ gaiaOutBufferPtr out; int i; struct splite_internal_cache *cache = NULL; struct splite_geos_cache_item *p; struct splite_xmlSchema_cache_item *p_xmlSchema; int pool_index; /* attempting to implicitly initialize the library */ spatialite_initialize (); /* locking the semaphore */ splite_cache_semaphore_lock (); pool_index = find_free_connection (); if (pool_index < 0) goto done; cache = malloc (sizeof (struct splite_internal_cache)); if (cache == NULL) { invalidate (pool_index); goto done; } cache->magic1 = SPATIALITE_CACHE_MAGIC1; cache->magic2 = SPATIALITE_CACHE_MAGIC2; cache->gpkg_mode = 0; cache->gpkg_amphibious_mode = 0; cache->decimal_precision = -1; cache->GEOS_handle = NULL; cache->PROJ_handle = NULL; cache->pool_index = pool_index; confirm (pool_index, cache); /* initializing the XML error buffers */ out = malloc (sizeof (gaiaOutBuffer)); gaiaOutBufferInitialize (out); cache->xmlParsingErrors = out; out = malloc (sizeof (gaiaOutBuffer)); gaiaOutBufferInitialize (out); cache->xmlSchemaValidationErrors = out; out = malloc (sizeof (gaiaOutBuffer)); gaiaOutBufferInitialize (out); cache->xmlXPathErrors = out; /* initializing the GEOS cache */ p = &(cache->cacheItem1); memset (p->gaiaBlob, '\0', 64); p->gaiaBlobSize = 0; p->crc32 = 0; p->geosGeom = NULL; p->preparedGeosGeom = NULL; p = &(cache->cacheItem2); memset (p->gaiaBlob, '\0', 64); p->gaiaBlobSize = 0; p->crc32 = 0; p->geosGeom = NULL; p->preparedGeosGeom = NULL; for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++) { /* initializing the XmlSchema cache */ p_xmlSchema = &(cache->xmlSchemaCache[i]); p_xmlSchema->timestamp = 0; p_xmlSchema->schemaURI = NULL; p_xmlSchema->schemaDoc = NULL; p_xmlSchema->parserCtxt = NULL; p_xmlSchema->schema = NULL; } #include "cache_aux_3.h" /* initializing GEOS and PROJ.4 handles */ #ifndef OMIT_GEOS /* initializing GEOS */ cache->GEOS_handle = initGEOS_r (cache->geos_warning, cache->geos_error); #endif /* end GEOS */ #ifndef OMIT_PROJ /* initializing the PROJ.4 context */ cache->PROJ_handle = pj_ctx_alloc (); #endif /* end PROJ.4 */ done: /* unlocking the semaphore */ splite_cache_semaphore_unlock (); return cache; } SPATIALITE_PRIVATE void free_internal_cache (struct splite_internal_cache *cache) { /* freeing an internal cache */ struct splite_geos_cache_item *p; #ifndef OMIT_GEOS GEOSContextHandle_t handle = NULL; #endif #ifdef ENABLE_LIBXML2 int i; struct splite_xmlSchema_cache_item *p_xmlSchema; #endif if (cache == NULL) return; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return; #ifndef OMIT_GEOS handle = cache->GEOS_handle; if (handle != NULL) finishGEOS_r (handle); cache->GEOS_handle = NULL; gaiaResetGeosMsg_r (cache); #endif #ifndef OMIT_PROJ if (cache->PROJ_handle != NULL) pj_ctx_free (cache->PROJ_handle); cache->PROJ_handle = NULL; #endif /* freeing the XML error buffers */ gaiaOutBufferReset (cache->xmlParsingErrors); gaiaOutBufferReset (cache->xmlSchemaValidationErrors); gaiaOutBufferReset (cache->xmlXPathErrors); free (cache->xmlParsingErrors); free (cache->xmlSchemaValidationErrors); free (cache->xmlXPathErrors); /* freeing the GEOS cache */ p = &(cache->cacheItem1); splite_free_geos_cache_item_r (cache, p); p = &(cache->cacheItem2); splite_free_geos_cache_item_r (cache, p); #ifdef ENABLE_LIBXML2 for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++) { /* freeing the XmlSchema cache */ p_xmlSchema = &(cache->xmlSchemaCache[i]); splite_free_xml_schema_cache_item (p_xmlSchema); } #endif /* releasing the connection pool object */ invalidate (cache->pool_index); /* freeing the cache itself */ free (cache); } GAIAGEO_DECLARE void gaiaResetGeosMsg_r (const void *p_cache) { /* resets the GEOS error and warning messages */ struct splite_connection *p = NULL; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; if (cache != NULL) { if (cache->magic1 == SPATIALITE_CACHE_MAGIC1 || cache->magic2 == SPATIALITE_CACHE_MAGIC2) p = &(splite_connection_pool[cache->pool_index]); } if (p == NULL) return; if (p->gaia_geos_error_msg != NULL) free (p->gaia_geos_error_msg); if (p->gaia_geos_warning_msg != NULL) free (p->gaia_geos_warning_msg); if (p->gaia_geosaux_error_msg != NULL) free (p->gaia_geosaux_error_msg); p->gaia_geos_error_msg = NULL; p->gaia_geos_warning_msg = NULL; p->gaia_geosaux_error_msg = NULL; } GAIAGEO_DECLARE const char * gaiaGetGeosErrorMsg_r (const void *p_cache) { /* return the latest GEOS error message */ struct splite_connection *p = NULL; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; if (cache != NULL) { if (cache->magic1 == SPATIALITE_CACHE_MAGIC1 || cache->magic2 == SPATIALITE_CACHE_MAGIC2) p = &(splite_connection_pool[cache->pool_index]); } if (p == NULL) return NULL; return p->gaia_geos_error_msg; } GAIAGEO_DECLARE const char * gaiaGetGeosWarningMsg_r (const void *p_cache) { /* return the latest GEOS error message */ struct splite_connection *p = NULL; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; if (cache != NULL) { if (cache->magic1 == SPATIALITE_CACHE_MAGIC1 || cache->magic2 == SPATIALITE_CACHE_MAGIC2) p = &(splite_connection_pool[cache->pool_index]); } if (p == NULL) return NULL; return p->gaia_geos_warning_msg; } GAIAGEO_DECLARE const char * gaiaGetGeosAuxErrorMsg_r (const void *p_cache) { /* return the latest GEOS (auxialiary) error message */ struct splite_connection *p = NULL; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; if (cache != NULL) { if (cache->magic1 == SPATIALITE_CACHE_MAGIC1 || cache->magic2 == SPATIALITE_CACHE_MAGIC2) p = &(splite_connection_pool[cache->pool_index]); } if (p == NULL) return NULL; return p->gaia_geosaux_error_msg; } GAIAGEO_DECLARE void gaiaSetGeosErrorMsg_r (const void *p_cache, const char *msg) { /* setting the latest GEOS error message */ int len; struct splite_connection *p = NULL; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; if (cache != NULL) { if (cache->magic1 == SPATIALITE_CACHE_MAGIC1 || cache->magic2 == SPATIALITE_CACHE_MAGIC2) p = &(splite_connection_pool[cache->pool_index]); } if (p == NULL) return; if (p->gaia_geos_error_msg != NULL) free (p->gaia_geos_error_msg); p->gaia_geos_error_msg = NULL; if (msg == NULL) return; len = strlen (msg); p->gaia_geos_error_msg = malloc (len + 1); strcpy (p->gaia_geos_error_msg, msg); } GAIAGEO_DECLARE void gaiaSetGeosWarningMsg_r (const void *p_cache, const char *msg) { /* setting the latest GEOS error message */ int len; struct splite_connection *p = NULL; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; if (cache != NULL) { if (cache->magic1 == SPATIALITE_CACHE_MAGIC1 || cache->magic2 == SPATIALITE_CACHE_MAGIC2) p = &(splite_connection_pool[cache->pool_index]); } if (p == NULL) return; if (p->gaia_geos_warning_msg != NULL) free (p->gaia_geos_warning_msg); p->gaia_geos_warning_msg = NULL; if (msg == NULL) return; len = strlen (msg); p->gaia_geos_warning_msg = malloc (len + 1); strcpy (p->gaia_geos_warning_msg, msg); } GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg_r (const void *p_cache, const char *msg) { /* setting the latest GEOS (auxiliary) error message */ int len; struct splite_connection *p = NULL; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; if (cache != NULL) { if (cache->magic1 == SPATIALITE_CACHE_MAGIC1 || cache->magic2 == SPATIALITE_CACHE_MAGIC2) p = &(splite_connection_pool[cache->pool_index]); } if (p == NULL) return; if (p->gaia_geosaux_error_msg != NULL) free (p->gaia_geosaux_error_msg); p->gaia_geosaux_error_msg = NULL; if (msg == NULL) return; len = strlen (msg); p->gaia_geosaux_error_msg = malloc (len + 1); strcpy (p->gaia_geosaux_error_msg, msg); } static char * parse_number_from_msg (const char *str) { /* attempting to parse a number from a string */ int sign = 0; int point = 0; int digit = 0; int err = 0; int len; char *res; const char *p = str; while (1) { if (*p == '+' || *p == '-') { sign++; p++; continue; } if (*p == '.') { point++; p++; continue; } if (*p >= '0' && *p <= '9') { p++; digit++; continue; } break; } if (sign > 1) err = 1; if (sign == 1 && *str != '+' && *str != '-') err = 1; if (point > 1) err = 1; if (!digit) err = 1; if (err) return NULL; len = p - str; res = malloc (len + 1); memcpy (res, str, len); *(res + len) = '\0'; return res; } static int check_geos_critical_point (const char *msg, double *x, double *y) { /* attempts to extract an [X,Y] Point coords from within a string */ char *px; char *py; const char *ref = " at or near point "; const char *ref2 = " conflict at "; const char *p = strstr (msg, ref); if (p != NULL) goto ok_ref; p = strstr (msg, ref2); if (p == NULL) return 0; p += strlen (ref2); goto ok_ref2; ok_ref: p += strlen (ref); ok_ref2: px = parse_number_from_msg (p); if (px == NULL) return 0; p += strlen (px) + 1; py = parse_number_from_msg (p); if (py == NULL) { free (px); return 0; } *x = atof (px); *y = atof (py); free (px); free (py); return 1; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg (void) { /* / Attempts to return a Point Geometry extracted from the latest GEOS / error / warning message */ double x; double y; gaiaGeomCollPtr geom; const char *msg = gaia_geos_error_msg; if (msg == NULL) msg = gaia_geos_warning_msg; if (msg == NULL) return NULL; if (!check_geos_critical_point (msg, &x, &y)) return NULL; geom = gaiaAllocGeomColl (); gaiaAddPointToGeomColl (geom, x, y); return geom; } GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg_r (const void *p_cache) { /* / Attempts to return a Point Geometry extracted from the latest GEOS / error / warning message */ double x; double y; gaiaGeomCollPtr geom; const char *msg; struct splite_connection *p = NULL; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; if (cache != NULL) { if (cache->magic1 == SPATIALITE_CACHE_MAGIC1 || cache->magic2 == SPATIALITE_CACHE_MAGIC2) p = &(splite_connection_pool[cache->pool_index]); } if (p == NULL) return NULL; msg = p->gaia_geos_error_msg; if (msg == NULL) msg = p->gaia_geos_warning_msg; if (msg == NULL) return NULL; if (!check_geos_critical_point (msg, &x, &y)) return NULL; geom = gaiaAllocGeomColl (); gaiaAddPointToGeomColl (geom, x, y); return geom; } SPATIALITE_PRIVATE void splite_cache_semaphore_lock (void) { #ifdef _WIN32 EnterCriticalSection (&gaia_cache_semaphore); #else pthread_mutex_lock (&gaia_cache_semaphore); #endif } SPATIALITE_PRIVATE void splite_cache_semaphore_unlock (void) { #ifdef _WIN32 LeaveCriticalSection (&gaia_cache_semaphore); #else pthread_mutex_unlock (&gaia_cache_semaphore); #endif } SPATIALITE_PRIVATE void splite_lwgeom_semaphore_lock (void) { #ifdef _WIN32 EnterCriticalSection (&gaia_lwgeom_semaphore); #else pthread_mutex_lock (&gaia_lwgeom_semaphore); #endif } SPATIALITE_PRIVATE void splite_lwgeom_semaphore_unlock (void) { #ifdef _WIN32 LeaveCriticalSection (&gaia_lwgeom_semaphore); #else pthread_mutex_unlock (&gaia_lwgeom_semaphore); #endif } SPATIALITE_DECLARE void spatialite_initialize (void) { /* initializes the library */ if (gaia_already_initialized) return; #ifdef _WIN32 InitializeCriticalSection (&gaia_cache_semaphore); InitializeCriticalSection (&gaia_lwgeom_semaphore); #endif #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ xmlInitParser (); #endif /* end LIBXML2 conditional */ gaia_already_initialized = 1; } SPATIALITE_DECLARE void spatialite_shutdown (void) { /* finalizes the library */ int i; if (!gaia_already_initialized) return; #ifdef _WIN32 DeleteCriticalSection (&gaia_cache_semaphore); DeleteCriticalSection (&gaia_lwgeom_semaphore); #endif #ifdef ENABLE_LIBXML2 /* only if LIBXML2 is supported */ xmlCleanupParser (); #endif /* end LIBXML2 conditional */ for (i = 0; i < SPATIALITE_MAX_CONNECTIONS; i++) { struct splite_connection *p = &(splite_connection_pool[i]); if (p->conn_ptr != NULL && p->conn_ptr != GAIA_CONN_RESERVED) free_internal_cache (p->conn_ptr); } gaia_already_initialized = 0; } libspatialite-4.3.0a/src/connection_cache/cache_aux_2.h0000664000175000017500000004113012544707704020024 00000000000000static void geos_error_0 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (0, fmt, ap); va_end (ap); } static void geos_error_1 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (1, fmt, ap); va_end (ap); } static void geos_error_2 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (2, fmt, ap); va_end (ap); } static void geos_error_3 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (3, fmt, ap); va_end (ap); } static void geos_error_4 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (4, fmt, ap); va_end (ap); } static void geos_error_5 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (5, fmt, ap); va_end (ap); } static void geos_error_6 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (6, fmt, ap); va_end (ap); } static void geos_error_7 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (7, fmt, ap); va_end (ap); } static void geos_error_8 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (8, fmt, ap); va_end (ap); } static void geos_error_9 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (9, fmt, ap); va_end (ap); } static void geos_error_10 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (10, fmt, ap); va_end (ap); } static void geos_error_11 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (11, fmt, ap); va_end (ap); } static void geos_error_12 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (12, fmt, ap); va_end (ap); } static void geos_error_13 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (13, fmt, ap); va_end (ap); } static void geos_error_14 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (14, fmt, ap); va_end (ap); } static void geos_error_15 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (15, fmt, ap); va_end (ap); } static void geos_error_16 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (16, fmt, ap); va_end (ap); } static void geos_error_17 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (17, fmt, ap); va_end (ap); } static void geos_error_18 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (18, fmt, ap); va_end (ap); } static void geos_error_19 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (19, fmt, ap); va_end (ap); } static void geos_error_20 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (20, fmt, ap); va_end (ap); } static void geos_error_21 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (21, fmt, ap); va_end (ap); } static void geos_error_22 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (22, fmt, ap); va_end (ap); } static void geos_error_23 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (23, fmt, ap); va_end (ap); } static void geos_error_24 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (24, fmt, ap); va_end (ap); } static void geos_error_25 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (25, fmt, ap); va_end (ap); } static void geos_error_26 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (26, fmt, ap); va_end (ap); } static void geos_error_27 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (27, fmt, ap); va_end (ap); } static void geos_error_28 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (28, fmt, ap); va_end (ap); } static void geos_error_29 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (29, fmt, ap); va_end (ap); } static void geos_error_30 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (30, fmt, ap); va_end (ap); } static void geos_error_31 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (31, fmt, ap); va_end (ap); } static void geos_error_32 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (32, fmt, ap); va_end (ap); } static void geos_error_33 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (33, fmt, ap); va_end (ap); } static void geos_error_34 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (34, fmt, ap); va_end (ap); } static void geos_error_35 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (35, fmt, ap); va_end (ap); } static void geos_error_36 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (36, fmt, ap); va_end (ap); } static void geos_error_37 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (37, fmt, ap); va_end (ap); } static void geos_error_38 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (38, fmt, ap); va_end (ap); } static void geos_error_39 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (39, fmt, ap); va_end (ap); } static void geos_error_40 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (40, fmt, ap); va_end (ap); } static void geos_error_41 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (41, fmt, ap); va_end (ap); } static void geos_error_42 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (42, fmt, ap); va_end (ap); } static void geos_error_43 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (43, fmt, ap); va_end (ap); } static void geos_error_44 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (44, fmt, ap); va_end (ap); } static void geos_error_45 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (45, fmt, ap); va_end (ap); } static void geos_error_46 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (46, fmt, ap); va_end (ap); } static void geos_error_47 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (47, fmt, ap); va_end (ap); } static void geos_error_48 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (48, fmt, ap); va_end (ap); } static void geos_error_49 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (49, fmt, ap); va_end (ap); } static void geos_error_50 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (50, fmt, ap); va_end (ap); } static void geos_error_51 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (51, fmt, ap); va_end (ap); } static void geos_error_52 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (52, fmt, ap); va_end (ap); } static void geos_error_53 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (53, fmt, ap); va_end (ap); } static void geos_error_54 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (54, fmt, ap); va_end (ap); } static void geos_error_55 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (55, fmt, ap); va_end (ap); } static void geos_error_56 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (56, fmt, ap); va_end (ap); } static void geos_error_57 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (57, fmt, ap); va_end (ap); } static void geos_error_58 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (58, fmt, ap); va_end (ap); } static void geos_error_59 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (59, fmt, ap); va_end (ap); } static void geos_error_60 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (60, fmt, ap); va_end (ap); } static void geos_error_61 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (61, fmt, ap); va_end (ap); } static void geos_error_62 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (62, fmt, ap); va_end (ap); } static void geos_error_63 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_error_r (63, fmt, ap); va_end (ap); } static void geos_warning_0 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (0, fmt, ap); va_end (ap); } static void geos_warning_1 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (1, fmt, ap); va_end (ap); } static void geos_warning_2 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (2, fmt, ap); va_end (ap); } static void geos_warning_3 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (3, fmt, ap); va_end (ap); } static void geos_warning_4 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (4, fmt, ap); va_end (ap); } static void geos_warning_5 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (5, fmt, ap); va_end (ap); } static void geos_warning_6 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (6, fmt, ap); va_end (ap); } static void geos_warning_7 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (7, fmt, ap); va_end (ap); } static void geos_warning_8 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (8, fmt, ap); va_end (ap); } static void geos_warning_9 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (9, fmt, ap); va_end (ap); } static void geos_warning_10 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (10, fmt, ap); va_end (ap); } static void geos_warning_11 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (11, fmt, ap); va_end (ap); } static void geos_warning_12 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (12, fmt, ap); va_end (ap); } static void geos_warning_13 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (13, fmt, ap); va_end (ap); } static void geos_warning_14 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (14, fmt, ap); va_end (ap); } static void geos_warning_15 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (15, fmt, ap); va_end (ap); } static void geos_warning_16 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (16, fmt, ap); va_end (ap); } static void geos_warning_17 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (17, fmt, ap); va_end (ap); } static void geos_warning_18 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (18, fmt, ap); va_end (ap); } static void geos_warning_19 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (19, fmt, ap); va_end (ap); } static void geos_warning_20 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (20, fmt, ap); va_end (ap); } static void geos_warning_21 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (21, fmt, ap); va_end (ap); } static void geos_warning_22 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (22, fmt, ap); va_end (ap); } static void geos_warning_23 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (23, fmt, ap); va_end (ap); } static void geos_warning_24 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (24, fmt, ap); va_end (ap); } static void geos_warning_25 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (25, fmt, ap); va_end (ap); } static void geos_warning_26 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (26, fmt, ap); va_end (ap); } static void geos_warning_27 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (27, fmt, ap); va_end (ap); } static void geos_warning_28 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (28, fmt, ap); va_end (ap); } static void geos_warning_29 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (29, fmt, ap); va_end (ap); } static void geos_warning_30 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (30, fmt, ap); va_end (ap); } static void geos_warning_31 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (31, fmt, ap); va_end (ap); } static void geos_warning_32 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (32, fmt, ap); va_end (ap); } static void geos_warning_33 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (33, fmt, ap); va_end (ap); } static void geos_warning_34 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (34, fmt, ap); va_end (ap); } static void geos_warning_35 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (35, fmt, ap); va_end (ap); } static void geos_warning_36 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (36, fmt, ap); va_end (ap); } static void geos_warning_37 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (37, fmt, ap); va_end (ap); } static void geos_warning_38 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (38, fmt, ap); va_end (ap); } static void geos_warning_39 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (39, fmt, ap); va_end (ap); } static void geos_warning_40 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (40, fmt, ap); va_end (ap); } static void geos_warning_41 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (41, fmt, ap); va_end (ap); } static void geos_warning_42 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (42, fmt, ap); va_end (ap); } static void geos_warning_43 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (43, fmt, ap); va_end (ap); } static void geos_warning_44 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (44, fmt, ap); va_end (ap); } static void geos_warning_45 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (45, fmt, ap); va_end (ap); } static void geos_warning_46 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (46, fmt, ap); va_end (ap); } static void geos_warning_47 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (47, fmt, ap); va_end (ap); } static void geos_warning_48 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (48, fmt, ap); va_end (ap); } static void geos_warning_49 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (49, fmt, ap); va_end (ap); } static void geos_warning_50 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (50, fmt, ap); va_end (ap); } static void geos_warning_51 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (51, fmt, ap); va_end (ap); } static void geos_warning_52 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (52, fmt, ap); va_end (ap); } static void geos_warning_53 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (53, fmt, ap); va_end (ap); } static void geos_warning_54 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (54, fmt, ap); va_end (ap); } static void geos_warning_55 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (55, fmt, ap); va_end (ap); } static void geos_warning_56 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (56, fmt, ap); va_end (ap); } static void geos_warning_57 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (57, fmt, ap); va_end (ap); } static void geos_warning_58 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (58, fmt, ap); va_end (ap); } static void geos_warning_59 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (59, fmt, ap); va_end (ap); } static void geos_warning_60 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (60, fmt, ap); va_end (ap); } static void geos_warning_61 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (61, fmt, ap); va_end (ap); } static void geos_warning_62 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (62, fmt, ap); va_end (ap); } static void geos_warning_63 (const char *fmt, ...) { va_list ap; va_start (ap, fmt); geos_warning_r (63, fmt, ap); va_end (ap); } libspatialite-4.3.0a/src/spatialite/0000775000175000017500000000000012573314326014444 500000000000000libspatialite-4.3.0a/src/spatialite/Makefile.in0000664000175000017500000020046312573313636016441 00000000000000# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/spatialite ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libsplite_la_LIBADD = am__objects_1 = libsplite_la-mbrcache.lo libsplite_la-spatialite.lo \ libsplite_la-spatialite_init.lo libsplite_la-metatables.lo \ libsplite_la-statistics.lo libsplite_la-extra_tables.lo \ libsplite_la-se_helpers.lo libsplite_la-srid_aux.lo \ libsplite_la-table_cloner.lo libsplite_la-virtualdbf.lo \ libsplite_la-virtualXL.lo libsplite_la-virtualfdo.lo \ libsplite_la-virtualgpkg.lo libsplite_la-virtualbbox.lo \ libsplite_la-virtualspatialindex.lo \ libsplite_la-virtualnetwork.lo libsplite_la-virtualshape.lo \ libsplite_la-virtualxpath.lo libsplite_la-virtualelementary.lo am_libsplite_la_OBJECTS = $(am__objects_1) libsplite_la_OBJECTS = $(am_libsplite_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libsplite_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libsplite_la_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ splite_la_LIBADD = am__objects_2 = splite_la-mbrcache.lo splite_la-spatialite.lo \ splite_la-spatialite_init.lo splite_la-metatables.lo \ splite_la-statistics.lo splite_la-extra_tables.lo \ splite_la-se_helpers.lo splite_la-srid_aux.lo \ splite_la-table_cloner.lo splite_la-virtualdbf.lo \ splite_la-virtualXL.lo splite_la-virtualfdo.lo \ splite_la-virtualgpkg.lo splite_la-virtualbbox.lo \ splite_la-virtualspatialindex.lo splite_la-virtualnetwork.lo \ splite_la-virtualshape.lo splite_la-virtualxpath.lo \ splite_la-virtualelementary.lo am_splite_la_OBJECTS = $(am__objects_2) splite_la_OBJECTS = $(am_splite_la_OBJECTS) splite_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(splite_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libsplite_la_SOURCES) $(splite_la_SOURCES) DIST_SOURCES = $(libsplite_la_SOURCES) $(splite_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GEOSCONFIG = @GEOSCONFIG@ GEOS_CFLAGS = @GEOS_CFLAGS@ GEOS_LDFLAGS = @GEOS_LDFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ \ -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libsplite.la splite.la SPATIALITE_COMMON_SOURCES = mbrcache.c \ spatialite.c \ spatialite_init.c \ metatables.c \ statistics.c \ extra_tables.c \ se_helpers.c \ srid_aux.c \ table_cloner.c \ virtualdbf.c \ virtualXL.c \ virtualfdo.c \ virtualgpkg.c \ virtualbbox.c \ virtualspatialindex.c \ virtualnetwork.c \ virtualshape.c \ virtualxpath.c \ virtualelementary.c libsplite_la_SOURCES = $(SPATIALITE_COMMON_SOURCES) libsplite_la_CFLAGS = -fvisibility=hidden splite_la_SOURCES = $(SPATIALITE_COMMON_SOURCES) splite_la_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ \ -I$(top_srcdir)/src/headers -I. -DLOADABLE_EXTENSION \ -fvisibility=hidden splite_la_LDFLAGS = -module splite_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/spatialite/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/spatialite/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libsplite.la: $(libsplite_la_OBJECTS) $(libsplite_la_DEPENDENCIES) $(EXTRA_libsplite_la_DEPENDENCIES) $(AM_V_CCLD)$(libsplite_la_LINK) $(libsplite_la_OBJECTS) $(libsplite_la_LIBADD) $(LIBS) splite.la: $(splite_la_OBJECTS) $(splite_la_DEPENDENCIES) $(EXTRA_splite_la_DEPENDENCIES) $(AM_V_CCLD)$(splite_la_LINK) $(splite_la_OBJECTS) $(splite_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-extra_tables.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-mbrcache.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-metatables.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-se_helpers.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-spatialite.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-spatialite_init.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-srid_aux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-statistics.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-table_cloner.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualXL.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualbbox.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualdbf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualelementary.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualfdo.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualgpkg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualnetwork.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualshape.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualspatialindex.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsplite_la-virtualxpath.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-extra_tables.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-mbrcache.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-metatables.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-se_helpers.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-spatialite.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-spatialite_init.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-srid_aux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-statistics.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-table_cloner.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualXL.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualbbox.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualdbf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualelementary.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualfdo.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualgpkg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualnetwork.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualshape.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualspatialindex.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splite_la-virtualxpath.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libsplite_la-mbrcache.lo: mbrcache.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-mbrcache.lo -MD -MP -MF $(DEPDIR)/libsplite_la-mbrcache.Tpo -c -o libsplite_la-mbrcache.lo `test -f 'mbrcache.c' || echo '$(srcdir)/'`mbrcache.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-mbrcache.Tpo $(DEPDIR)/libsplite_la-mbrcache.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbrcache.c' object='libsplite_la-mbrcache.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-mbrcache.lo `test -f 'mbrcache.c' || echo '$(srcdir)/'`mbrcache.c libsplite_la-spatialite.lo: spatialite.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-spatialite.lo -MD -MP -MF $(DEPDIR)/libsplite_la-spatialite.Tpo -c -o libsplite_la-spatialite.lo `test -f 'spatialite.c' || echo '$(srcdir)/'`spatialite.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-spatialite.Tpo $(DEPDIR)/libsplite_la-spatialite.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='spatialite.c' object='libsplite_la-spatialite.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-spatialite.lo `test -f 'spatialite.c' || echo '$(srcdir)/'`spatialite.c libsplite_la-spatialite_init.lo: spatialite_init.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-spatialite_init.lo -MD -MP -MF $(DEPDIR)/libsplite_la-spatialite_init.Tpo -c -o libsplite_la-spatialite_init.lo `test -f 'spatialite_init.c' || echo '$(srcdir)/'`spatialite_init.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-spatialite_init.Tpo $(DEPDIR)/libsplite_la-spatialite_init.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='spatialite_init.c' object='libsplite_la-spatialite_init.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-spatialite_init.lo `test -f 'spatialite_init.c' || echo '$(srcdir)/'`spatialite_init.c libsplite_la-metatables.lo: metatables.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-metatables.lo -MD -MP -MF $(DEPDIR)/libsplite_la-metatables.Tpo -c -o libsplite_la-metatables.lo `test -f 'metatables.c' || echo '$(srcdir)/'`metatables.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-metatables.Tpo $(DEPDIR)/libsplite_la-metatables.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='metatables.c' object='libsplite_la-metatables.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-metatables.lo `test -f 'metatables.c' || echo '$(srcdir)/'`metatables.c libsplite_la-statistics.lo: statistics.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-statistics.lo -MD -MP -MF $(DEPDIR)/libsplite_la-statistics.Tpo -c -o libsplite_la-statistics.lo `test -f 'statistics.c' || echo '$(srcdir)/'`statistics.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-statistics.Tpo $(DEPDIR)/libsplite_la-statistics.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='statistics.c' object='libsplite_la-statistics.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-statistics.lo `test -f 'statistics.c' || echo '$(srcdir)/'`statistics.c libsplite_la-extra_tables.lo: extra_tables.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-extra_tables.lo -MD -MP -MF $(DEPDIR)/libsplite_la-extra_tables.Tpo -c -o libsplite_la-extra_tables.lo `test -f 'extra_tables.c' || echo '$(srcdir)/'`extra_tables.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-extra_tables.Tpo $(DEPDIR)/libsplite_la-extra_tables.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='extra_tables.c' object='libsplite_la-extra_tables.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-extra_tables.lo `test -f 'extra_tables.c' || echo '$(srcdir)/'`extra_tables.c libsplite_la-se_helpers.lo: se_helpers.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-se_helpers.lo -MD -MP -MF $(DEPDIR)/libsplite_la-se_helpers.Tpo -c -o libsplite_la-se_helpers.lo `test -f 'se_helpers.c' || echo '$(srcdir)/'`se_helpers.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-se_helpers.Tpo $(DEPDIR)/libsplite_la-se_helpers.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='se_helpers.c' object='libsplite_la-se_helpers.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-se_helpers.lo `test -f 'se_helpers.c' || echo '$(srcdir)/'`se_helpers.c libsplite_la-srid_aux.lo: srid_aux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-srid_aux.lo -MD -MP -MF $(DEPDIR)/libsplite_la-srid_aux.Tpo -c -o libsplite_la-srid_aux.lo `test -f 'srid_aux.c' || echo '$(srcdir)/'`srid_aux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-srid_aux.Tpo $(DEPDIR)/libsplite_la-srid_aux.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='srid_aux.c' object='libsplite_la-srid_aux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-srid_aux.lo `test -f 'srid_aux.c' || echo '$(srcdir)/'`srid_aux.c libsplite_la-table_cloner.lo: table_cloner.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-table_cloner.lo -MD -MP -MF $(DEPDIR)/libsplite_la-table_cloner.Tpo -c -o libsplite_la-table_cloner.lo `test -f 'table_cloner.c' || echo '$(srcdir)/'`table_cloner.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-table_cloner.Tpo $(DEPDIR)/libsplite_la-table_cloner.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='table_cloner.c' object='libsplite_la-table_cloner.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-table_cloner.lo `test -f 'table_cloner.c' || echo '$(srcdir)/'`table_cloner.c libsplite_la-virtualdbf.lo: virtualdbf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualdbf.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualdbf.Tpo -c -o libsplite_la-virtualdbf.lo `test -f 'virtualdbf.c' || echo '$(srcdir)/'`virtualdbf.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualdbf.Tpo $(DEPDIR)/libsplite_la-virtualdbf.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualdbf.c' object='libsplite_la-virtualdbf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualdbf.lo `test -f 'virtualdbf.c' || echo '$(srcdir)/'`virtualdbf.c libsplite_la-virtualXL.lo: virtualXL.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualXL.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualXL.Tpo -c -o libsplite_la-virtualXL.lo `test -f 'virtualXL.c' || echo '$(srcdir)/'`virtualXL.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualXL.Tpo $(DEPDIR)/libsplite_la-virtualXL.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualXL.c' object='libsplite_la-virtualXL.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualXL.lo `test -f 'virtualXL.c' || echo '$(srcdir)/'`virtualXL.c libsplite_la-virtualfdo.lo: virtualfdo.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualfdo.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualfdo.Tpo -c -o libsplite_la-virtualfdo.lo `test -f 'virtualfdo.c' || echo '$(srcdir)/'`virtualfdo.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualfdo.Tpo $(DEPDIR)/libsplite_la-virtualfdo.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualfdo.c' object='libsplite_la-virtualfdo.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualfdo.lo `test -f 'virtualfdo.c' || echo '$(srcdir)/'`virtualfdo.c libsplite_la-virtualgpkg.lo: virtualgpkg.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualgpkg.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualgpkg.Tpo -c -o libsplite_la-virtualgpkg.lo `test -f 'virtualgpkg.c' || echo '$(srcdir)/'`virtualgpkg.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualgpkg.Tpo $(DEPDIR)/libsplite_la-virtualgpkg.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualgpkg.c' object='libsplite_la-virtualgpkg.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualgpkg.lo `test -f 'virtualgpkg.c' || echo '$(srcdir)/'`virtualgpkg.c libsplite_la-virtualbbox.lo: virtualbbox.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualbbox.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualbbox.Tpo -c -o libsplite_la-virtualbbox.lo `test -f 'virtualbbox.c' || echo '$(srcdir)/'`virtualbbox.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualbbox.Tpo $(DEPDIR)/libsplite_la-virtualbbox.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualbbox.c' object='libsplite_la-virtualbbox.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualbbox.lo `test -f 'virtualbbox.c' || echo '$(srcdir)/'`virtualbbox.c libsplite_la-virtualspatialindex.lo: virtualspatialindex.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualspatialindex.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualspatialindex.Tpo -c -o libsplite_la-virtualspatialindex.lo `test -f 'virtualspatialindex.c' || echo '$(srcdir)/'`virtualspatialindex.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualspatialindex.Tpo $(DEPDIR)/libsplite_la-virtualspatialindex.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualspatialindex.c' object='libsplite_la-virtualspatialindex.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualspatialindex.lo `test -f 'virtualspatialindex.c' || echo '$(srcdir)/'`virtualspatialindex.c libsplite_la-virtualnetwork.lo: virtualnetwork.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualnetwork.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualnetwork.Tpo -c -o libsplite_la-virtualnetwork.lo `test -f 'virtualnetwork.c' || echo '$(srcdir)/'`virtualnetwork.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualnetwork.Tpo $(DEPDIR)/libsplite_la-virtualnetwork.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualnetwork.c' object='libsplite_la-virtualnetwork.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualnetwork.lo `test -f 'virtualnetwork.c' || echo '$(srcdir)/'`virtualnetwork.c libsplite_la-virtualshape.lo: virtualshape.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualshape.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualshape.Tpo -c -o libsplite_la-virtualshape.lo `test -f 'virtualshape.c' || echo '$(srcdir)/'`virtualshape.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualshape.Tpo $(DEPDIR)/libsplite_la-virtualshape.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualshape.c' object='libsplite_la-virtualshape.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualshape.lo `test -f 'virtualshape.c' || echo '$(srcdir)/'`virtualshape.c libsplite_la-virtualxpath.lo: virtualxpath.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualxpath.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualxpath.Tpo -c -o libsplite_la-virtualxpath.lo `test -f 'virtualxpath.c' || echo '$(srcdir)/'`virtualxpath.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualxpath.Tpo $(DEPDIR)/libsplite_la-virtualxpath.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualxpath.c' object='libsplite_la-virtualxpath.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualxpath.lo `test -f 'virtualxpath.c' || echo '$(srcdir)/'`virtualxpath.c libsplite_la-virtualelementary.lo: virtualelementary.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -MT libsplite_la-virtualelementary.lo -MD -MP -MF $(DEPDIR)/libsplite_la-virtualelementary.Tpo -c -o libsplite_la-virtualelementary.lo `test -f 'virtualelementary.c' || echo '$(srcdir)/'`virtualelementary.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsplite_la-virtualelementary.Tpo $(DEPDIR)/libsplite_la-virtualelementary.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualelementary.c' object='libsplite_la-virtualelementary.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsplite_la_CFLAGS) $(CFLAGS) -c -o libsplite_la-virtualelementary.lo `test -f 'virtualelementary.c' || echo '$(srcdir)/'`virtualelementary.c splite_la-mbrcache.lo: mbrcache.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-mbrcache.lo -MD -MP -MF $(DEPDIR)/splite_la-mbrcache.Tpo -c -o splite_la-mbrcache.lo `test -f 'mbrcache.c' || echo '$(srcdir)/'`mbrcache.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-mbrcache.Tpo $(DEPDIR)/splite_la-mbrcache.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mbrcache.c' object='splite_la-mbrcache.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-mbrcache.lo `test -f 'mbrcache.c' || echo '$(srcdir)/'`mbrcache.c splite_la-spatialite.lo: spatialite.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-spatialite.lo -MD -MP -MF $(DEPDIR)/splite_la-spatialite.Tpo -c -o splite_la-spatialite.lo `test -f 'spatialite.c' || echo '$(srcdir)/'`spatialite.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-spatialite.Tpo $(DEPDIR)/splite_la-spatialite.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='spatialite.c' object='splite_la-spatialite.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-spatialite.lo `test -f 'spatialite.c' || echo '$(srcdir)/'`spatialite.c splite_la-spatialite_init.lo: spatialite_init.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-spatialite_init.lo -MD -MP -MF $(DEPDIR)/splite_la-spatialite_init.Tpo -c -o splite_la-spatialite_init.lo `test -f 'spatialite_init.c' || echo '$(srcdir)/'`spatialite_init.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-spatialite_init.Tpo $(DEPDIR)/splite_la-spatialite_init.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='spatialite_init.c' object='splite_la-spatialite_init.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-spatialite_init.lo `test -f 'spatialite_init.c' || echo '$(srcdir)/'`spatialite_init.c splite_la-metatables.lo: metatables.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-metatables.lo -MD -MP -MF $(DEPDIR)/splite_la-metatables.Tpo -c -o splite_la-metatables.lo `test -f 'metatables.c' || echo '$(srcdir)/'`metatables.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-metatables.Tpo $(DEPDIR)/splite_la-metatables.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='metatables.c' object='splite_la-metatables.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-metatables.lo `test -f 'metatables.c' || echo '$(srcdir)/'`metatables.c splite_la-statistics.lo: statistics.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-statistics.lo -MD -MP -MF $(DEPDIR)/splite_la-statistics.Tpo -c -o splite_la-statistics.lo `test -f 'statistics.c' || echo '$(srcdir)/'`statistics.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-statistics.Tpo $(DEPDIR)/splite_la-statistics.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='statistics.c' object='splite_la-statistics.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-statistics.lo `test -f 'statistics.c' || echo '$(srcdir)/'`statistics.c splite_la-extra_tables.lo: extra_tables.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-extra_tables.lo -MD -MP -MF $(DEPDIR)/splite_la-extra_tables.Tpo -c -o splite_la-extra_tables.lo `test -f 'extra_tables.c' || echo '$(srcdir)/'`extra_tables.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-extra_tables.Tpo $(DEPDIR)/splite_la-extra_tables.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='extra_tables.c' object='splite_la-extra_tables.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-extra_tables.lo `test -f 'extra_tables.c' || echo '$(srcdir)/'`extra_tables.c splite_la-se_helpers.lo: se_helpers.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-se_helpers.lo -MD -MP -MF $(DEPDIR)/splite_la-se_helpers.Tpo -c -o splite_la-se_helpers.lo `test -f 'se_helpers.c' || echo '$(srcdir)/'`se_helpers.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-se_helpers.Tpo $(DEPDIR)/splite_la-se_helpers.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='se_helpers.c' object='splite_la-se_helpers.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-se_helpers.lo `test -f 'se_helpers.c' || echo '$(srcdir)/'`se_helpers.c splite_la-srid_aux.lo: srid_aux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-srid_aux.lo -MD -MP -MF $(DEPDIR)/splite_la-srid_aux.Tpo -c -o splite_la-srid_aux.lo `test -f 'srid_aux.c' || echo '$(srcdir)/'`srid_aux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-srid_aux.Tpo $(DEPDIR)/splite_la-srid_aux.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='srid_aux.c' object='splite_la-srid_aux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-srid_aux.lo `test -f 'srid_aux.c' || echo '$(srcdir)/'`srid_aux.c splite_la-table_cloner.lo: table_cloner.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-table_cloner.lo -MD -MP -MF $(DEPDIR)/splite_la-table_cloner.Tpo -c -o splite_la-table_cloner.lo `test -f 'table_cloner.c' || echo '$(srcdir)/'`table_cloner.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-table_cloner.Tpo $(DEPDIR)/splite_la-table_cloner.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='table_cloner.c' object='splite_la-table_cloner.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-table_cloner.lo `test -f 'table_cloner.c' || echo '$(srcdir)/'`table_cloner.c splite_la-virtualdbf.lo: virtualdbf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualdbf.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualdbf.Tpo -c -o splite_la-virtualdbf.lo `test -f 'virtualdbf.c' || echo '$(srcdir)/'`virtualdbf.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualdbf.Tpo $(DEPDIR)/splite_la-virtualdbf.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualdbf.c' object='splite_la-virtualdbf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualdbf.lo `test -f 'virtualdbf.c' || echo '$(srcdir)/'`virtualdbf.c splite_la-virtualXL.lo: virtualXL.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualXL.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualXL.Tpo -c -o splite_la-virtualXL.lo `test -f 'virtualXL.c' || echo '$(srcdir)/'`virtualXL.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualXL.Tpo $(DEPDIR)/splite_la-virtualXL.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualXL.c' object='splite_la-virtualXL.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualXL.lo `test -f 'virtualXL.c' || echo '$(srcdir)/'`virtualXL.c splite_la-virtualfdo.lo: virtualfdo.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualfdo.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualfdo.Tpo -c -o splite_la-virtualfdo.lo `test -f 'virtualfdo.c' || echo '$(srcdir)/'`virtualfdo.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualfdo.Tpo $(DEPDIR)/splite_la-virtualfdo.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualfdo.c' object='splite_la-virtualfdo.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualfdo.lo `test -f 'virtualfdo.c' || echo '$(srcdir)/'`virtualfdo.c splite_la-virtualgpkg.lo: virtualgpkg.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualgpkg.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualgpkg.Tpo -c -o splite_la-virtualgpkg.lo `test -f 'virtualgpkg.c' || echo '$(srcdir)/'`virtualgpkg.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualgpkg.Tpo $(DEPDIR)/splite_la-virtualgpkg.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualgpkg.c' object='splite_la-virtualgpkg.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualgpkg.lo `test -f 'virtualgpkg.c' || echo '$(srcdir)/'`virtualgpkg.c splite_la-virtualbbox.lo: virtualbbox.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualbbox.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualbbox.Tpo -c -o splite_la-virtualbbox.lo `test -f 'virtualbbox.c' || echo '$(srcdir)/'`virtualbbox.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualbbox.Tpo $(DEPDIR)/splite_la-virtualbbox.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualbbox.c' object='splite_la-virtualbbox.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualbbox.lo `test -f 'virtualbbox.c' || echo '$(srcdir)/'`virtualbbox.c splite_la-virtualspatialindex.lo: virtualspatialindex.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualspatialindex.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualspatialindex.Tpo -c -o splite_la-virtualspatialindex.lo `test -f 'virtualspatialindex.c' || echo '$(srcdir)/'`virtualspatialindex.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualspatialindex.Tpo $(DEPDIR)/splite_la-virtualspatialindex.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualspatialindex.c' object='splite_la-virtualspatialindex.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualspatialindex.lo `test -f 'virtualspatialindex.c' || echo '$(srcdir)/'`virtualspatialindex.c splite_la-virtualnetwork.lo: virtualnetwork.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualnetwork.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualnetwork.Tpo -c -o splite_la-virtualnetwork.lo `test -f 'virtualnetwork.c' || echo '$(srcdir)/'`virtualnetwork.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualnetwork.Tpo $(DEPDIR)/splite_la-virtualnetwork.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualnetwork.c' object='splite_la-virtualnetwork.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualnetwork.lo `test -f 'virtualnetwork.c' || echo '$(srcdir)/'`virtualnetwork.c splite_la-virtualshape.lo: virtualshape.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualshape.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualshape.Tpo -c -o splite_la-virtualshape.lo `test -f 'virtualshape.c' || echo '$(srcdir)/'`virtualshape.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualshape.Tpo $(DEPDIR)/splite_la-virtualshape.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualshape.c' object='splite_la-virtualshape.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualshape.lo `test -f 'virtualshape.c' || echo '$(srcdir)/'`virtualshape.c splite_la-virtualxpath.lo: virtualxpath.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualxpath.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualxpath.Tpo -c -o splite_la-virtualxpath.lo `test -f 'virtualxpath.c' || echo '$(srcdir)/'`virtualxpath.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualxpath.Tpo $(DEPDIR)/splite_la-virtualxpath.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualxpath.c' object='splite_la-virtualxpath.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualxpath.lo `test -f 'virtualxpath.c' || echo '$(srcdir)/'`virtualxpath.c splite_la-virtualelementary.lo: virtualelementary.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT splite_la-virtualelementary.lo -MD -MP -MF $(DEPDIR)/splite_la-virtualelementary.Tpo -c -o splite_la-virtualelementary.lo `test -f 'virtualelementary.c' || echo '$(srcdir)/'`virtualelementary.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/splite_la-virtualelementary.Tpo $(DEPDIR)/splite_la-virtualelementary.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='virtualelementary.c' object='splite_la-virtualelementary.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(splite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(splite_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o splite_la-virtualelementary.lo `test -f 'virtualelementary.c' || echo '$(srcdir)/'`virtualelementary.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: 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: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir 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-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libspatialite-4.3.0a/src/spatialite/virtualgpkg.c0000664000175000017500000007076512544707704017112 00000000000000/* virtualgpkg.c -- SQLite3 extension [VIRTUAL TABLE accessing GPKG tables] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include /* 64 bit integer: portable format for printf() */ #if defined(_WIN32) && !defined(__MINGW32__) #define FRMT64 "%I64d" #else #define FRMT64 "%lld" #endif #if defined(_WIN32) && !defined(__MINGW32__) #define LONG64_MAX _I64_MAX #define LONG64_MIN _I64_MIN #else #define LONG64_MAX 9223372036854775807LL #define LONG64_MIN (-LONG64_MAX + 1) #endif #ifdef ENABLE_GEOPACKAGE /* only if GeoPackage support is enabled */ struct sqlite3_module my_gpkg_module; typedef struct SqliteValue { /* a multitype storing a column value */ int Type; sqlite3_int64 IntValue; double DoubleValue; char *Text; unsigned char *Blob; int Size; } SqliteValue; typedef SqliteValue *SqliteValuePtr; typedef struct VirtualGPKGStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ char *table; /* the real-table name */ int nColumns; /* the # columns into the table */ char **Column; /* the name for each column */ char **Type; /* the type for each column */ int *NotNull; /* NotNull clause for each column */ SqliteValuePtr *Value; /* the current-row value for each column */ char *GeoColumn; /* name of the Geometry column */ int Srid; /* SRID of the Geometry column */ int GeoType; /* Type of the Geometry column */ } VirtualGPKG; typedef VirtualGPKG *VirtualGPKGPtr; typedef struct VirtualGPKGCursorStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualGPKGPtr pVtab; /* Virtual table of this cursor */ sqlite3_stmt *stmt; sqlite3_int64 current_row; /* the current row ID */ int eof; /* the EOF marker */ } VirtualGPKGCursor; typedef VirtualGPKGCursor *VirtualGPKGCursorPtr; static SqliteValuePtr value_alloc (void) { /* allocates and initialites a Value multitype */ SqliteValuePtr p = malloc (sizeof (SqliteValue)); p->Type = SQLITE_NULL; p->Text = NULL; p->Blob = NULL; return p; } static void value_free (SqliteValuePtr p) { /* freeing a Value multitype */ if (!p) return; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); free (p); } static void value_set_null (SqliteValuePtr p) { /* setting a NULL value to the multitype */ if (!p) return; p->Type = SQLITE_NULL; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Text = NULL; p->Blob = NULL; } static void value_set_int (SqliteValuePtr p, sqlite3_int64 value) { /* setting an INT value to the multitype */ if (!p) return; p->Type = SQLITE_INTEGER; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Text = NULL; p->Blob = NULL; p->IntValue = value; } static void value_set_double (SqliteValuePtr p, double value) { /* setting a DOUBLE value to the multitype */ if (!p) return; p->Type = SQLITE_FLOAT; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Text = NULL; p->Blob = NULL; p->DoubleValue = value; } static void value_set_text (SqliteValuePtr p, const char *value, int size) { /* setting a TEXT value to the multitype */ if (!p) return; p->Type = SQLITE_TEXT; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Blob = NULL; p->Text = malloc (size); memcpy (p->Text, value, size); p->Size = size; } static void value_set_blob (SqliteValuePtr p, const unsigned char *value, int size) { /* setting a BLOB value to the multitype */ if (!p) return; p->Type = SQLITE_BLOB; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Text = NULL; p->Blob = malloc (size); memcpy (p->Blob, value, size); p->Size = size; } static void vgpkg_read_row (VirtualGPKGCursorPtr cursor) { /* trying to read a row from GPKG real-table */ sqlite3_stmt *stmt; int ret; int ic; const char *text; const unsigned char *blob; int size; sqlite3_int64 pk; stmt = cursor->stmt; sqlite3_bind_int64 (stmt, 1, cursor->current_row); ret = sqlite3_step (stmt); if (ret == SQLITE_ROW) { pk = sqlite3_column_int64 (stmt, 0); for (ic = 0; ic < cursor->pVtab->nColumns; ic++) { /* fetching column values */ switch (sqlite3_column_type (stmt, ic + 1)) { case SQLITE_INTEGER: value_set_int (*(cursor->pVtab->Value + ic), sqlite3_column_int64 (stmt, ic + 1)); break; case SQLITE_FLOAT: value_set_double (*(cursor->pVtab->Value + ic), sqlite3_column_double (stmt, ic + 1)); break; case SQLITE_TEXT: text = (char *) sqlite3_column_text (stmt, ic + 1); size = sqlite3_column_bytes (stmt, ic + 1); value_set_text (*(cursor->pVtab->Value + ic), text, size); break; case SQLITE_BLOB: blob = sqlite3_column_blob (stmt, ic + 1); size = sqlite3_column_bytes (stmt, ic + 1); value_set_blob (*(cursor->pVtab->Value + ic), blob, size); break; case SQLITE_NULL: default: value_set_null (*(cursor->pVtab->Value + ic)); break; }; } } else { /* an error occurred */ cursor->eof = 1; return; } cursor->eof = 0; cursor->current_row = pk; } static int vgpkg_insert_row (VirtualGPKGPtr p_vt, sqlite3_int64 * rowid, int argc, sqlite3_value ** argv) { /* trying to insert a row into GPKG real-table */ sqlite3_stmt *stmt; int ret; int i; int ic; char prefix[16]; const char *text; const unsigned char *blob; gaiaOutBuffer sql_statement; int size; char *sql; char buf[256]; char *xname; gaiaOutBufferInitialize (&sql_statement); xname = gaiaDoubleQuotedSql (p_vt->table); sql = sqlite3_mprintf ("INSERT INTO \"%s\" ", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); for (ic = 0; ic < p_vt->nColumns; ic++) { if (ic == 0) strcpy (prefix, "("); else strcpy (prefix, ", "); xname = gaiaDoubleQuotedSql (*(p_vt->Column + ic)); sql = sqlite3_mprintf ("%s%s", prefix, xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } gaiaAppendToOutBuffer (&sql_statement, ") VALUES "); for (ic = 0; ic < p_vt->nColumns; ic++) { if (ic == 0) strcpy (prefix, "("); else strcpy (prefix, ", "); if (strcasecmp (*(p_vt->Column + ic), p_vt->GeoColumn) == 0) { /* this is the geometry column */ sql = sqlite3_mprintf ("%sAsGPB(?)", prefix); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } else { sprintf (buf, "%s?", prefix); gaiaAppendToOutBuffer (&sql_statement, buf); } } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) ret = sqlite3_prepare_v2 (p_vt->db, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) return SQLITE_ERROR; for (i = 2; i < argc; i++) { switch (sqlite3_value_type (argv[i])) { case SQLITE_INTEGER: sqlite3_bind_int64 (stmt, i - 1, sqlite3_value_int64 (argv[i])); break; case SQLITE_FLOAT: sqlite3_bind_double (stmt, i - 1, sqlite3_value_double (argv[i])); break; case SQLITE_TEXT: text = (char *) sqlite3_value_text (argv[i]); size = sqlite3_value_bytes (argv[i]); sqlite3_bind_text (stmt, i - 1, text, size, SQLITE_STATIC); break; case SQLITE_BLOB: blob = sqlite3_value_blob (argv[i]); size = sqlite3_value_bytes (argv[i]); sqlite3_bind_blob (stmt, i - 1, blob, size, SQLITE_STATIC); break; case SQLITE_NULL: default: sqlite3_bind_null (stmt, i - 1); break; }; } sqlite3_finalize (stmt); *rowid = sqlite3_last_insert_rowid (p_vt->db); return SQLITE_OK; } static int vgpkg_update_row (VirtualGPKGPtr p_vt, sqlite3_int64 rowid, int argc, sqlite3_value ** argv) { /* trying to update a row in GPKG real-table */ sqlite3_stmt *stmt; int ret; int i; int ic; char prefix[16]; const char *text; const unsigned char *blob; gaiaOutBuffer sql_statement; int size; char *sql; char buf[256]; char *xname; gaiaOutBufferInitialize (&sql_statement); xname = gaiaDoubleQuotedSql (p_vt->table); sql = sqlite3_mprintf ("UPDATE \"%s\" SET", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); for (ic = 0; ic < p_vt->nColumns; ic++) { if (ic == 0) strcpy (prefix, " "); else strcpy (prefix, ", "); xname = gaiaDoubleQuotedSql (*(p_vt->Column + ic)); if (strcasecmp (*(p_vt->Column + ic), p_vt->GeoColumn) == 0) { /* this is the geometry column */ sql = sqlite3_mprintf ("%s%s = AsGPB(?)", prefix, xname); } else sql = sqlite3_mprintf ("%s%s = ?", prefix, xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } sprintf (buf, " WHERE ROWID = " FRMT64, rowid); gaiaAppendToOutBuffer (&sql_statement, buf); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) ret = sqlite3_prepare_v2 (p_vt->db, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) return SQLITE_ERROR; for (i = 2; i < argc; i++) { switch (sqlite3_value_type (argv[i])) { case SQLITE_INTEGER: sqlite3_bind_int64 (stmt, i - 1, sqlite3_value_int64 (argv[i])); break; case SQLITE_FLOAT: sqlite3_bind_double (stmt, i - 1, sqlite3_value_double (argv[i])); break; case SQLITE_TEXT: text = (char *) sqlite3_value_text (argv[i]); size = sqlite3_value_bytes (argv[i]); sqlite3_bind_text (stmt, i - 1, text, size, SQLITE_STATIC); break; case SQLITE_BLOB: blob = sqlite3_value_blob (argv[i]); size = sqlite3_value_bytes (argv[i]); sqlite3_bind_blob (stmt, i - 1, blob, size, SQLITE_STATIC); break; case SQLITE_NULL: default: sqlite3_bind_null (stmt, i - 1); break; }; } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { sqlite3_finalize (stmt); return ret; } sqlite3_finalize (stmt); return SQLITE_OK; } static int vgpkg_delete_row (VirtualGPKGPtr p_vt, sqlite3_int64 rowid) { /* trying to delete a row from GPKG real-table */ char *sql_statement; char dummy[256]; int ret; char *xname; xname = gaiaDoubleQuotedSql (p_vt->table); sprintf (dummy, FRMT64, rowid); sql_statement = sqlite3_mprintf ("DELETE FROM \"%s\" WHERE ROWID = %s", xname, dummy); free (xname); ret = sqlite3_exec (p_vt->db, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); return ret; } static void free_table (VirtualGPKGPtr p_vt) { /* memory cleanup; freeing the virtual table struct */ int i; if (!p_vt) return; if (p_vt->table) sqlite3_free (p_vt->table); if (p_vt->Column) { for (i = 0; i < p_vt->nColumns; i++) { if (*(p_vt->Column + i)) sqlite3_free (*(p_vt->Column + i)); } sqlite3_free (p_vt->Column); } if (p_vt->Type) { for (i = 0; i < p_vt->nColumns; i++) { if (*(p_vt->Type + i)) sqlite3_free (*(p_vt->Type + i)); } sqlite3_free (p_vt->Type); } if (p_vt->NotNull) sqlite3_free (p_vt->NotNull); if (p_vt->Value) { for (i = 0; i < p_vt->nColumns; i++) { if (*(p_vt->Value + i)) value_free (*(p_vt->Value + i)); } sqlite3_free (p_vt->Value); } if (p_vt->GeoColumn) sqlite3_free (p_vt->GeoColumn); sqlite3_free (p_vt); } static int vgpkg_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table connected to some GPKG table */ char *vtable = NULL; char *table = NULL; int ret; int i; int len; int n_rows; int n_columns; const char *col_name; const char *col_type; int not_null; const char *type; int has_z; int has_m; char **results; char *sql; char prefix[16]; char *xname; gaiaOutBuffer sql_statement; VirtualGPKGPtr p_vt = NULL; if (pAux) pAux = pAux; /* unused arg warning suppression */ gaiaOutBufferInitialize (&sql_statement); /* checking for table_name */ if (argc == 4) { vtable = gaiaDequotedSql ((char *) argv[2]); table = gaiaDequotedSql ((char *) argv[3]); } else { *pzErr = sqlite3_mprintf ("[VirtualGPKG module] CREATE VIRTUAL: illegal arg list {table_name}\n"); goto error; } /* retrieving the base table columns */ xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (db, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto illegal; if (n_rows >= 1) { p_vt = (VirtualGPKGPtr) sqlite3_malloc (sizeof (VirtualGPKG)); if (!p_vt) return SQLITE_NOMEM; p_vt->db = db; p_vt->nRef = 0; p_vt->zErrMsg = NULL; len = strlen (table); p_vt->table = sqlite3_malloc (len + 1); strcpy (p_vt->table, table); p_vt->nColumns = n_rows; p_vt->Column = sqlite3_malloc (sizeof (char *) * n_rows); p_vt->Type = sqlite3_malloc (sizeof (char *) * n_rows); p_vt->NotNull = sqlite3_malloc (sizeof (int) * n_rows); p_vt->Value = sqlite3_malloc (sizeof (SqliteValuePtr) * n_rows); for (i = 0; i < n_rows; i++) { *(p_vt->Column + i) = NULL; *(p_vt->Type + i) = NULL; *(p_vt->NotNull + i) = -1; *(p_vt->Value + i) = value_alloc (); } p_vt->GeoColumn = NULL; p_vt->Srid = -1; p_vt->GeoType = GAIA_UNKNOWN; for (i = 1; i <= n_rows; i++) { col_name = results[(i * n_columns) + 1]; col_type = results[(i * n_columns) + 2]; if (atoi (results[(i * n_columns) + 3]) == 0) not_null = 0; else not_null = 1; len = strlen (col_name); *(p_vt->Column + (i - 1)) = sqlite3_malloc (len + 1); strcpy (*(p_vt->Column + (i - 1)), col_name); len = strlen (col_type); *(p_vt->Type + (i - 1)) = sqlite3_malloc (len + 1); strcpy (*(p_vt->Type + (i - 1)), col_type); *(p_vt->NotNull + (i - 1)) = not_null; } sqlite3_free_table (results); } else goto illegal; /* retrieving the base table columns */ sql = sqlite3_mprintf ("SELECT column_name, geometry_type_name, srs_id, z, m\n" "FROM gpkg_geometry_columns WHERE Upper(table_name) = Upper(%Q)", table); ret = sqlite3_get_table (db, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto illegal; if (n_rows >= 1) { col_name = results[n_columns + 0]; type = results[n_columns + 1]; p_vt->Srid = atoi (results[n_columns + 2]); has_z = atoi (results[n_columns + 3]); has_m = atoi (results[n_columns + 4]); len = strlen (col_name); p_vt->GeoColumn = sqlite3_malloc (len + 1); strcpy (p_vt->GeoColumn, col_name); if (strcasecmp (type, "POINT") == 0) { if (has_z && has_m) p_vt->GeoType = GAIA_POINTZM; else if (has_z) p_vt->GeoType = GAIA_POINTZ; else if (has_m) p_vt->GeoType = GAIA_POINTM; else p_vt->GeoType = GAIA_POINT; } if (strcasecmp (type, "LINESTRING") == 0) { if (has_z && has_m) p_vt->GeoType = GAIA_LINESTRINGZM; else if (has_z) p_vt->GeoType = GAIA_LINESTRINGZ; else if (has_m) p_vt->GeoType = GAIA_LINESTRINGM; else p_vt->GeoType = GAIA_LINESTRING; } if (strcasecmp (type, "POLYGON") == 0) { if (has_z && has_m) p_vt->GeoType = GAIA_POLYGONZM; else if (has_z) p_vt->GeoType = GAIA_POLYGONZ; else if (has_m) p_vt->GeoType = GAIA_POLYGONM; else p_vt->GeoType = GAIA_POLYGON; } if (strcasecmp (type, "MULTIPOINT") == 0) { if (has_z && has_m) p_vt->GeoType = GAIA_MULTIPOINTZM; else if (has_z) p_vt->GeoType = GAIA_MULTIPOINTZ; else if (has_m) p_vt->GeoType = GAIA_MULTIPOINTM; else p_vt->GeoType = GAIA_MULTIPOINT; } if (strcasecmp (type, "MULTILINESTRING") == 0) { if (has_z && has_m) p_vt->GeoType = GAIA_MULTILINESTRINGZM; else if (has_z) p_vt->GeoType = GAIA_MULTILINESTRINGZ; else if (has_m) p_vt->GeoType = GAIA_MULTILINESTRINGM; else p_vt->GeoType = GAIA_MULTILINESTRING; } if (strcasecmp (type, "MULTIPOLYGON") == 0) { if (has_z && has_m) p_vt->GeoType = GAIA_MULTIPOLYGONZM; else if (has_z) p_vt->GeoType = GAIA_MULTIPOLYGONZ; else if (has_m) p_vt->GeoType = GAIA_MULTIPOLYGONM; else p_vt->GeoType = GAIA_MULTIPOLYGON; } if (strcasecmp (type, "GEOMCOLLECTION") == 0) { if (has_z && has_m) p_vt->GeoType = GAIA_GEOMETRYCOLLECTIONZM; else if (has_z) p_vt->GeoType = GAIA_GEOMETRYCOLLECTIONZ; else if (has_m) p_vt->GeoType = GAIA_GEOMETRYCOLLECTIONM; else p_vt->GeoType = GAIA_GEOMETRYCOLLECTION; } sqlite3_free_table (results); } else goto illegal; /* preparing the COLUMNs for this VIRTUAL TABLE */ xname = gaiaDoubleQuotedSql (vtable); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" ", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); for (i = 0; i < p_vt->nColumns; i++) { if (i == 0) strcpy (prefix, "("); else strcpy (prefix, ", "); xname = gaiaDoubleQuotedSql (*(p_vt->Column + i)); if (*(p_vt->NotNull + i)) sql = sqlite3_mprintf ("%s%s %s NOT NULL", prefix, xname, *(p_vt->Type + i)); else sql = sqlite3_mprintf ("%s%s %s", prefix, xname, *(p_vt->Type + i)); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { if (sqlite3_declare_vtab (db, sql_statement.Buffer) != SQLITE_OK) { *pzErr = sqlite3_mprintf ("[VirtualGPKG module] CREATE VIRTUAL: invalid SQL statement \"%s\"", sql); goto error; } gaiaOutBufferReset (&sql_statement); } else goto error; *ppVTab = (sqlite3_vtab *) p_vt; free (vtable); free (table); return SQLITE_OK; illegal: /* something is going the wrong way */ gaiaOutBufferReset (&sql_statement); if (p_vt) free_table (p_vt); *pzErr = sqlite3_mprintf ("[VirtualGPKG module] '%s' isn't a valid GPKG Geometry table\n", table); error: if (vtable) free (vtable); if (table) free (table); gaiaOutBufferReset (&sql_statement); return SQLITE_ERROR; } static int vgpkg_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table to some shapefile - simply aliases vgpkg_create() */ return vgpkg_create (db, pAux, argc, argv, ppVTab, pzErr); } static int vgpkg_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIndex) { /* best index selection */ if (pVTab || pIndex) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vgpkg_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualGPKGPtr p_vt = (VirtualGPKGPtr) pVTab; free_table (p_vt); return SQLITE_OK; } static int vgpkg_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases vgpkg_disconnect() */ return vgpkg_disconnect (pVTab); } static int vgpkg_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ sqlite3_stmt *stmt; gaiaOutBuffer sql_statement; int ret; char *sql; int ic; char *xname; VirtualGPKGCursorPtr cursor = (VirtualGPKGCursorPtr) sqlite3_malloc (sizeof (VirtualGPKGCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->pVtab = (VirtualGPKGPtr) pVTab; gaiaOutBufferInitialize (&sql_statement); gaiaAppendToOutBuffer (&sql_statement, "SELECT ROWID"); for (ic = 0; ic < cursor->pVtab->nColumns; ic++) { value_set_null (*(cursor->pVtab->Value + ic)); xname = gaiaDoubleQuotedSql (*(cursor->pVtab->Column + ic)); if (strcasecmp (*(cursor->pVtab->Column + ic), cursor->pVtab->GeoColumn) == 0) { /* this is the geometry column */ sql = sqlite3_mprintf (",GeomFromGPB(\"%s\")", xname); } else sql = sqlite3_mprintf (",\"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } xname = gaiaDoubleQuotedSql (cursor->pVtab->table); sql = sqlite3_mprintf (" FROM \"%s\" WHERE ROWID >= ?", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) ret = sqlite3_prepare_v2 (cursor->pVtab->db, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { /* an error occurred */ cursor->eof = 1; return SQLITE_ERROR; } cursor->stmt = stmt; cursor->current_row = LONG64_MIN; cursor->eof = 0; *ppCursor = (sqlite3_vtab_cursor *) cursor; vgpkg_read_row (cursor); return SQLITE_OK; } static int vgpkg_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ int ic; VirtualGPKGCursorPtr cursor = (VirtualGPKGCursorPtr) pCursor; for (ic = 0; ic < cursor->pVtab->nColumns; ic++) value_set_null (*(cursor->pVtab->Value + ic)); if (cursor->stmt) sqlite3_finalize (cursor->stmt); sqlite3_free (pCursor); return SQLITE_OK; } static int vgpkg_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ if (pCursor || idxNum || idxStr || argc || argv) pCursor = pCursor; /* unused arg warning suppression */ return SQLITE_OK; } static int vgpkg_next (sqlite3_vtab_cursor * pCursor) { /* fetching next row from cursor */ VirtualGPKGCursorPtr cursor = (VirtualGPKGCursorPtr) pCursor; (cursor->current_row)++; vgpkg_read_row (cursor); return SQLITE_OK; } static int vgpkg_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualGPKGCursorPtr cursor = (VirtualGPKGCursorPtr) pCursor; return cursor->eof; } static int vgpkg_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ VirtualGPKGCursorPtr cursor = (VirtualGPKGCursorPtr) pCursor; SqliteValuePtr value; if (column >= 0 && column < cursor->pVtab->nColumns) { value = *(cursor->pVtab->Value + column); switch (value->Type) { case SQLITE_INTEGER: sqlite3_result_int64 (pContext, value->IntValue); break; case SQLITE_FLOAT: sqlite3_result_double (pContext, value->DoubleValue); break; case SQLITE_TEXT: sqlite3_result_text (pContext, value->Text, value->Size, SQLITE_STATIC); break; case SQLITE_BLOB: sqlite3_result_blob (pContext, value->Blob, value->Size, SQLITE_STATIC); break; default: sqlite3_result_null (pContext); break; }; } else sqlite3_result_null (pContext); return SQLITE_OK; } static int vgpkg_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualGPKGCursorPtr cursor = (VirtualGPKGCursorPtr) pCursor; *pRowid = cursor->current_row; return SQLITE_OK; } static int vgpkg_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ sqlite3_int64 rowid = 0; int ret; VirtualGPKGPtr p_vt = (VirtualGPKGPtr) pVTab; if (argc == 1) { /* performing a DELETE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { rowid = sqlite3_value_int64 (argv[0]); ret = vgpkg_delete_row (p_vt, rowid); } else ret = SQLITE_MISMATCH; } else { if (sqlite3_value_type (argv[0]) == SQLITE_NULL) { /* performing an INSERT */ ret = vgpkg_insert_row (p_vt, &rowid, argc, argv); if (ret == SQLITE_OK) *pRowid = rowid; } else { /* performing an UPDATE */ rowid = sqlite3_value_int64 (argv[0]); ret = vgpkg_update_row (p_vt, rowid, argc, argv); } } return ret; } static int vgpkg_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vgpkg_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vgpkg_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vgpkg_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vgpkg_rename (sqlite3_vtab * pVTab, const char *zNew) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ if (zNew) zNew = zNew; /* unused arg warning suppression */ return SQLITE_ERROR; } static int spliteVirtualGPKGInit (sqlite3 * db) { int rc = SQLITE_OK; my_gpkg_module.iVersion = 1; my_gpkg_module.xCreate = &vgpkg_create; my_gpkg_module.xConnect = &vgpkg_connect; my_gpkg_module.xBestIndex = &vgpkg_best_index; my_gpkg_module.xDisconnect = &vgpkg_disconnect; my_gpkg_module.xDestroy = &vgpkg_destroy; my_gpkg_module.xOpen = &vgpkg_open; my_gpkg_module.xClose = &vgpkg_close; my_gpkg_module.xFilter = &vgpkg_filter; my_gpkg_module.xNext = &vgpkg_next; my_gpkg_module.xEof = &vgpkg_eof; my_gpkg_module.xColumn = &vgpkg_column; my_gpkg_module.xRowid = &vgpkg_rowid; my_gpkg_module.xUpdate = &vgpkg_update; my_gpkg_module.xBegin = &vgpkg_begin; my_gpkg_module.xSync = &vgpkg_sync; my_gpkg_module.xCommit = &vgpkg_commit; my_gpkg_module.xRollback = &vgpkg_rollback; my_gpkg_module.xFindFunction = NULL; my_gpkg_module.xRename = &vgpkg_rename; sqlite3_create_module_v2 (db, "VirtualGPKG", &my_gpkg_module, NULL, 0); return rc; } SPATIALITE_PRIVATE int virtualgpkg_extension_init (void *xdb) { sqlite3 *db = (sqlite3 *) xdb; return spliteVirtualGPKGInit (db); } #endif /* end GEOPACKAGE conditional */ libspatialite-4.3.0a/src/spatialite/statistics.c0000664000175000017500000020035212544707704016730 00000000000000/* statistics.c -- helper functions updating internal statistics version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Pepijn Van Eeckhoudt (implementing Android support) Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #if defined(_WIN32) || defined(WIN32) #include #define isatty _isatty #else #include #endif #include #include #include #include #include #include #ifndef OMIT_GEOS /* including GEOS */ #include #endif #ifndef OMIT_PROJ /* including PROJ.4 */ #include #endif #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ struct field_item_infos { int ordinal; char *col_name; int null_values; int integer_values; int double_values; int text_values; int blob_values; int max_size; int int_minmax_set; int int_min; int int_max; int dbl_minmax_set; double dbl_min; double dbl_max; struct field_item_infos *next; }; struct field_container_infos { struct field_item_infos *first; struct field_item_infos *last; }; static int do_update_layer_statistics_v4 (sqlite3 * sqlite, const char *table, const char *column, int count, int has_coords, double min_x, double min_y, double max_x, double max_y) { /* update GEOMETRY_COLUMNS_STATISTICS Version >= 4.0.0 */ char sql[8192]; int ret; int error = 0; sqlite3_stmt *stmt; strcpy (sql, "INSERT OR REPLACE INTO geometry_columns_statistics "); strcat (sql, "(f_table_name, f_geometry_column, last_verified, "); strcat (sql, "row_count, extent_min_x, extent_min_y, "); strcat (sql, "extent_max_x, extent_max_y) VALUES (?, ?, "); strcat (sql, "strftime('%Y-%m-%dT%H:%M:%fZ', 'now'), ?, ?, ?, ?, ?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return 0; /* binding INSERT params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, count); if (has_coords) { sqlite3_bind_double (stmt, 4, min_x); sqlite3_bind_double (stmt, 5, min_y); sqlite3_bind_double (stmt, 6, max_x); sqlite3_bind_double (stmt, 7, max_y); } else { sqlite3_bind_null (stmt, 4); sqlite3_bind_null (stmt, 5); sqlite3_bind_null (stmt, 6); sqlite3_bind_null (stmt, 7); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else error = 1; ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; return 1; } static int do_update_layer_statistics (sqlite3 * sqlite, const char *table, const char *column, int count, int has_coords, double min_x, double min_y, double max_x, double max_y) { /* update LAYER_STATISTICS [single table/geometry] */ char sql[8192]; int ret; int error = 0; sqlite3_stmt *stmt; int metadata_version = checkSpatialMetaData (sqlite); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ return do_update_layer_statistics_v4 (sqlite, table, column, count, has_coords, min_x, min_y, max_x, max_y); } if (!check_layer_statistics (sqlite)) return 0; strcpy (sql, "INSERT OR REPLACE INTO layer_statistics "); strcat (sql, "(raster_layer, table_name, geometry_column, "); strcat (sql, "row_count, extent_min_x, extent_min_y, "); strcat (sql, "extent_max_x, extent_max_y) "); strcat (sql, "VALUES (0, ?, ?, ?, ?, ?, ?, ?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return 0; /* binding INSERT params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, count); if (has_coords) { sqlite3_bind_double (stmt, 4, min_x); sqlite3_bind_double (stmt, 5, min_y); sqlite3_bind_double (stmt, 6, max_x); sqlite3_bind_double (stmt, 7, max_y); } else { sqlite3_bind_null (stmt, 4); sqlite3_bind_null (stmt, 5); sqlite3_bind_null (stmt, 6); sqlite3_bind_null (stmt, 7); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else error = 1; ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; return 1; } static int do_update_views_layer_statistics_v4 (sqlite3 * sqlite, const char *table, const char *column, int count, int has_coords, double min_x, double min_y, double max_x, double max_y) { /* update VIEWS_GEOMETRY_COLUMNS_STATISTICS Version >= 4.0.0 */ char sql[8192]; int ret; int error = 0; sqlite3_stmt *stmt; strcpy (sql, "INSERT OR REPLACE INTO views_geometry_columns_statistics "); strcat (sql, "(view_name, view_geometry, last_verified, "); strcat (sql, "row_count, extent_min_x, extent_min_y, "); strcat (sql, "extent_max_x, extent_max_y) VALUES (?, ?, "); strcat (sql, "strftime('%Y-%m-%dT%H:%M:%fZ', 'now'), ?, ?, ?, ?, ?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return 0; /* binding INSERT params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, count); if (has_coords) { sqlite3_bind_double (stmt, 4, min_x); sqlite3_bind_double (stmt, 5, min_y); sqlite3_bind_double (stmt, 6, max_x); sqlite3_bind_double (stmt, 7, max_y); } else { sqlite3_bind_null (stmt, 4); sqlite3_bind_null (stmt, 5); sqlite3_bind_null (stmt, 6); sqlite3_bind_null (stmt, 7); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else error = 1; ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; return 1; } static int do_update_views_layer_statistics (sqlite3 * sqlite, const char *table, const char *column, int count, int has_coords, double min_x, double min_y, double max_x, double max_y) { /* update VIEWS_LAYER_STATISTICS [single table/geometry] */ char sql[8192]; int ret; int error = 0; sqlite3_stmt *stmt; int metadata_version = checkSpatialMetaData (sqlite); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ return do_update_views_layer_statistics_v4 (sqlite, table, column, count, has_coords, min_x, min_y, max_x, max_y); } if (!check_views_layer_statistics (sqlite)) return 0; strcpy (sql, "INSERT OR REPLACE INTO views_layer_statistics "); strcat (sql, "(view_name, view_geometry, "); strcat (sql, "row_count, extent_min_x, extent_min_y, "); strcat (sql, "extent_max_x, extent_max_y) "); strcat (sql, "VALUES (?, ?, ?, ?, ?, ?, ?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return 0; /* binding INSERT params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, count); if (has_coords) { sqlite3_bind_double (stmt, 4, min_x); sqlite3_bind_double (stmt, 5, min_y); sqlite3_bind_double (stmt, 6, max_x); sqlite3_bind_double (stmt, 7, max_y); } else { sqlite3_bind_null (stmt, 4); sqlite3_bind_null (stmt, 5); sqlite3_bind_null (stmt, 6); sqlite3_bind_null (stmt, 7); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else error = 1; ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; return 1; } static int do_update_virts_layer_statistics_v4 (sqlite3 * sqlite, const char *table, const char *column, int count, int has_coords, double min_x, double min_y, double max_x, double max_y) { /* update VIRTS_GEOMETRY_COLUMNS_STATISTICS Version >= 4.0.0 */ char sql[8192]; int ret; int error = 0; sqlite3_stmt *stmt; strcpy (sql, "INSERT OR REPLACE INTO virts_geometry_columns_statistics "); strcat (sql, "(virt_name, virt_geometry, last_verified, "); strcat (sql, "row_count, extent_min_x, extent_min_y, "); strcat (sql, "extent_max_x, extent_max_y) VALUES (?, ?, "); strcat (sql, "strftime('%Y-%m-%dT%H:%M:%fZ', 'now'), ?, ?, ?, ?, ?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return 0; /* binding INSERT params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, count); if (has_coords) { sqlite3_bind_double (stmt, 4, min_x); sqlite3_bind_double (stmt, 5, min_y); sqlite3_bind_double (stmt, 6, max_x); sqlite3_bind_double (stmt, 7, max_y); } else { sqlite3_bind_null (stmt, 4); sqlite3_bind_null (stmt, 5); sqlite3_bind_null (stmt, 6); sqlite3_bind_null (stmt, 7); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else error = 1; ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; return 1; } static int do_update_virts_layer_statistics (sqlite3 * sqlite, const char *table, const char *column, int count, int has_coords, double min_x, double min_y, double max_x, double max_y) { /* update VIRTS_LAYER_STATISTICS [single table/geometry] */ char sql[8192]; int ret; int error = 0; sqlite3_stmt *stmt; int metadata_version = checkSpatialMetaData (sqlite); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ return do_update_virts_layer_statistics_v4 (sqlite, table, column, count, has_coords, min_x, min_y, max_x, max_y); } if (!check_virts_layer_statistics (sqlite)) return 0; strcpy (sql, "INSERT OR REPLACE INTO virts_layer_statistics "); strcat (sql, "(virt_name, virt_geometry, "); strcat (sql, "row_count, extent_min_x, extent_min_y, "); strcat (sql, "extent_max_x, extent_max_y) "); strcat (sql, "VALUES (?, ?, ?, ?, ?, ?, ?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return 0; /* binding INSERT params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, count); if (has_coords) { sqlite3_bind_double (stmt, 4, min_x); sqlite3_bind_double (stmt, 5, min_y); sqlite3_bind_double (stmt, 6, max_x); sqlite3_bind_double (stmt, 7, max_y); } else { sqlite3_bind_null (stmt, 4); sqlite3_bind_null (stmt, 5); sqlite3_bind_null (stmt, 6); sqlite3_bind_null (stmt, 7); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else error = 1; ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; return 1; } static void update_field_infos (struct field_container_infos *infos, int ordinal, const char *col_name, const char *type, int size, int count) { /* updating the field container infos */ int len; struct field_item_infos *p = infos->first; while (p) { if (strcasecmp (col_name, p->col_name) == 0) { /* updating an already defined field */ if (strcasecmp (type, "null") == 0) p->null_values += count; if (strcasecmp (type, "integer") == 0) p->integer_values += count; if (strcasecmp (type, "real") == 0) p->double_values += count; if (strcasecmp (type, "text") == 0) { p->text_values += count; if (size > p->max_size) p->max_size = size; } if (strcasecmp (type, "blob") == 0) { p->blob_values += count; if (size > p->max_size) p->max_size = size; } return; } p = p->next; } /* inserting a new field */ p = malloc (sizeof (struct field_item_infos)); p->ordinal = ordinal; len = strlen (col_name); p->col_name = malloc (len + 1); strcpy (p->col_name, col_name); p->null_values = 0; p->integer_values = 0; p->double_values = 0; p->text_values = 0; p->blob_values = 0; p->max_size = -1; p->int_minmax_set = 0; p->int_min = 0; p->int_max = 0; p->dbl_minmax_set = 0; p->dbl_min = 0.0; p->dbl_max = 0.0; p->next = NULL; if (strcasecmp (type, "null") == 0) p->null_values += count; if (strcasecmp (type, "integer") == 0) p->integer_values += count; if (strcasecmp (type, "real") == 0) p->double_values += count; if (strcasecmp (type, "text") == 0) { p->text_values += count; if (size > p->max_size) p->max_size = size; } if (strcasecmp (type, "blob") == 0) { p->blob_values += count; if (size > p->max_size) p->max_size = size; } if (infos->first == NULL) infos->first = p; if (infos->last != NULL) infos->last->next = p; infos->last = p; } static void update_field_infos_int_minmax (struct field_container_infos *infos, const char *col_name, int int_min, int int_max) { /* updating the field container infos - Int MinMax */ struct field_item_infos *p = infos->first; while (p) { if (strcasecmp (col_name, p->col_name) == 0) { p->int_minmax_set = 1; p->int_min = int_min; p->int_max = int_max; return; } p = p->next; } } static void update_field_infos_double_minmax (struct field_container_infos *infos, const char *col_name, double dbl_min, double dbl_max) { /* updating the field container infos - Double MinMax */ struct field_item_infos *p = infos->first; while (p) { if (strcasecmp (col_name, p->col_name) == 0) { p->dbl_minmax_set = 1; p->dbl_min = dbl_min; p->dbl_max = dbl_max; return; } p = p->next; } } static void free_field_infos (struct field_container_infos *infos) { /* memory cleanup - freeing a field infos container */ struct field_item_infos *p = infos->first; struct field_item_infos *pn; while (p) { /* destroying field items */ pn = p->next; if (p->col_name) free (p->col_name); free (p); p = pn; } } static int do_update_field_infos (sqlite3 * sqlite, const char *table, const char *column, struct field_container_infos *infos) { /* update GEOMETRY_COLUMNS_FIELD_INFOS Version >= 4.0.0 */ char sql[8192]; char *sql_statement; int ret; int error = 0; sqlite3_stmt *stmt; struct field_item_infos *p = infos->first; /* deleting any previous row */ sql_statement = sqlite3_mprintf ("DELETE FROM geometry_columns_field_infos " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", table, column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; /* reinserting yet again */ strcpy (sql, "INSERT INTO geometry_columns_field_infos "); strcat (sql, "(f_table_name, f_geometry_column, ordinal, "); strcat (sql, "column_name, null_values, integer_values, "); strcat (sql, "double_values, text_values, blob_values, max_size, "); strcat (sql, "integer_min, integer_max, double_min, double_max) "); strcat (sql, "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return 0; while (p) { /* binding INSERT params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, p->ordinal); sqlite3_bind_text (stmt, 4, p->col_name, strlen (p->col_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 5, p->null_values); sqlite3_bind_int (stmt, 6, p->integer_values); sqlite3_bind_int (stmt, 7, p->double_values); sqlite3_bind_int (stmt, 8, p->text_values); sqlite3_bind_int (stmt, 9, p->blob_values); if (p->max_size < 0) sqlite3_bind_null (stmt, 10); else sqlite3_bind_int (stmt, 10, p->max_size); if (p->int_minmax_set) { sqlite3_bind_int (stmt, 11, p->int_min); sqlite3_bind_int (stmt, 12, p->int_max); } else { sqlite3_bind_null (stmt, 11); sqlite3_bind_null (stmt, 12); } if (p->dbl_minmax_set) { sqlite3_bind_double (stmt, 13, p->dbl_min); sqlite3_bind_double (stmt, 14, p->dbl_max); } else { sqlite3_bind_null (stmt, 13); sqlite3_bind_null (stmt, 14); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else error = 1; p = p->next; } ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; return 1; } static int do_update_views_field_infos (sqlite3 * sqlite, const char *table, const char *column, struct field_container_infos *infos) { /* update VIEW_GEOMETRY_COLUMNS_FIELD_INFOS Version >= 4.0.0 */ char sql[8192]; char *sql_statement; int ret; int error = 0; sqlite3_stmt *stmt; struct field_item_infos *p = infos->first; /* deleting any previous row */ sql_statement = sqlite3_mprintf ("DELETE FROM views_geometry_columns_field_infos " "WHERE Lower(view_name) = Lower(%Q) AND " "Lower(view_geometry) = Lower(%Q)", table, column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; /* reinserting yet again */ strcpy (sql, "INSERT INTO views_geometry_columns_field_infos "); strcat (sql, "(view_name, view_geometry, ordinal, "); strcat (sql, "column_name, null_values, integer_values, "); strcat (sql, "double_values, text_values, blob_values, max_size, "); strcat (sql, "integer_min, integer_max, double_min, double_max) "); strcat (sql, "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return 0; while (p) { /* binding INSERT params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, p->ordinal); sqlite3_bind_text (stmt, 4, p->col_name, strlen (p->col_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 5, p->null_values); sqlite3_bind_int (stmt, 6, p->integer_values); sqlite3_bind_int (stmt, 7, p->double_values); sqlite3_bind_int (stmt, 8, p->text_values); sqlite3_bind_int (stmt, 9, p->blob_values); if (p->max_size < 0) sqlite3_bind_null (stmt, 10); else sqlite3_bind_int (stmt, 10, p->max_size); if (p->int_minmax_set) { sqlite3_bind_int (stmt, 11, p->int_min); sqlite3_bind_int (stmt, 12, p->int_max); } else { sqlite3_bind_null (stmt, 11); sqlite3_bind_null (stmt, 12); } if (p->dbl_minmax_set) { sqlite3_bind_double (stmt, 13, p->dbl_min); sqlite3_bind_double (stmt, 14, p->dbl_max); } else { sqlite3_bind_null (stmt, 13); sqlite3_bind_null (stmt, 14); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else error = 1; p = p->next; } ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; return 1; } static int do_update_virts_field_infos (sqlite3 * sqlite, const char *table, const char *column, struct field_container_infos *infos) { /* update VIRTS_GEOMETRY_COLUMNS_FIELD_INFOS Version >= 4.0.0 */ char sql[8192]; char *sql_statement; int ret; int error = 0; sqlite3_stmt *stmt; struct field_item_infos *p = infos->first; /* deleting any previous row */ sql_statement = sqlite3_mprintf ("DELETE FROM virts_geometry_columns_field_infos " "WHERE Lower(virt_name) = Lower(%Q) AND " "Lower(virt_geometry) = Lower(%Q)", table, column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; /* reinserting yet again */ strcpy (sql, "INSERT INTO virts_geometry_columns_field_infos "); strcat (sql, "(virt_name, virt_geometry, ordinal, "); strcat (sql, "column_name, null_values, integer_values, "); strcat (sql, "double_values, text_values, blob_values, max_size, "); strcat (sql, "integer_min, integer_max, double_min, double_max) "); strcat (sql, "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return 0; while (p) { /* binding INSERT params */ sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, p->ordinal); sqlite3_bind_text (stmt, 4, p->col_name, strlen (p->col_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 5, p->null_values); sqlite3_bind_int (stmt, 6, p->integer_values); sqlite3_bind_int (stmt, 7, p->double_values); sqlite3_bind_int (stmt, 8, p->text_values); sqlite3_bind_int (stmt, 9, p->blob_values); if (p->max_size < 0) sqlite3_bind_null (stmt, 10); else sqlite3_bind_int (stmt, 10, p->max_size); if (p->int_minmax_set) { sqlite3_bind_int (stmt, 11, p->int_min); sqlite3_bind_int (stmt, 12, p->int_max); } else { sqlite3_bind_null (stmt, 11); sqlite3_bind_null (stmt, 12); } if (p->dbl_minmax_set) { sqlite3_bind_double (stmt, 13, p->dbl_min); sqlite3_bind_double (stmt, 14, p->dbl_max); } else { sqlite3_bind_null (stmt, 13); sqlite3_bind_null (stmt, 14); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else error = 1; p = p->next; } ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; return 1; } static int do_compute_minmax (sqlite3 * sqlite, const char *table, struct field_container_infos *infos) { /* Pass2 - computing Integer / Double min/max ranges */ char *quoted; char *sql_statement; int int_min; int int_max; double dbl_min; double dbl_max; int ret; int i; int c; char **results; int rows; int columns; const char *col_name; int is_double; int comma = 0; int empty = 1; gaiaOutBuffer out_buf; struct field_item_infos *ptr; gaiaOutBufferInitialize (&out_buf); gaiaAppendToOutBuffer (&out_buf, "SELECT DISTINCT "); ptr = infos->first; while (ptr) { quoted = gaiaDoubleQuotedSql (ptr->col_name); if (ptr->integer_values >= 0 && ptr->double_values == 0 && ptr->blob_values == 0 && ptr->text_values == 0) { if (comma) sql_statement = sqlite3_mprintf (", 0, %Q, min(\"%s\"), max(\"%s\")", ptr->col_name, quoted, quoted); else { comma = 1; sql_statement = sqlite3_mprintf (" 0, %Q, min(\"%s\"), max(\"%s\")", ptr->col_name, quoted, quoted); } gaiaAppendToOutBuffer (&out_buf, sql_statement); sqlite3_free (sql_statement); empty = 0; } if (ptr->double_values >= 0 && ptr->integer_values == 0 && ptr->blob_values == 0 && ptr->text_values == 0) { if (comma) sql_statement = sqlite3_mprintf (", 1, %Q, min(\"%s\"), max(\"%s\")", ptr->col_name, quoted, quoted); else { comma = 1; sql_statement = sqlite3_mprintf (" 1, %Q, min(\"%s\"), max(\"%s\")", ptr->col_name, quoted, quoted); } gaiaAppendToOutBuffer (&out_buf, sql_statement); sqlite3_free (sql_statement); empty = 0; } free (quoted); ptr = ptr->next; } if (out_buf.Buffer == NULL) return 0; if (empty) { /* no columns to check */ gaiaOutBufferReset (&out_buf); return 1; } quoted = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf (" FROM \"%s\"", quoted); free (quoted); gaiaAppendToOutBuffer (&out_buf, sql_statement); sqlite3_free (sql_statement); /* executing the SQL query */ ret = sqlite3_get_table (sqlite, out_buf.Buffer, &results, &rows, &columns, NULL); gaiaOutBufferReset (&out_buf); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { for (c = 0; c < columns; c += 4) { /* retrieving field infos */ is_double = atoi (results[(i * columns) + c + 0]); col_name = results[(i * columns) + c + 1]; if (results[(i * columns) + c + 2] != NULL && results[(i * columns) + c + 3] != NULL) { if (!is_double) { int_min = atoi (results[(i * columns) + c + 2]); int_max = atoi (results[(i * columns) + c + 3]); update_field_infos_int_minmax (infos, col_name, int_min, int_max); } else { dbl_min = atof (results[(i * columns) + c + 2]); dbl_max = atof (results[(i * columns) + c + 3]); update_field_infos_double_minmax (infos, col_name, dbl_min, dbl_max); } } } } } sqlite3_free_table (results); return 1; } static void copy_attributes_into_layer (struct field_container_infos *infos, gaiaVectorLayerPtr lyr) { /* copying the AttributeField definitions into the VectorLayer */ gaiaLayerAttributeFieldPtr fld; int len; struct field_item_infos *p = infos->first; while (p) { /* adding an AttributeField definition */ fld = malloc (sizeof (gaiaLayerAttributeField)); fld->Ordinal = p->ordinal; len = strlen (p->col_name); fld->AttributeFieldName = malloc (len + 1); strcpy (fld->AttributeFieldName, p->col_name); fld->NullValuesCount = p->null_values; fld->IntegerValuesCount = p->integer_values; fld->DoubleValuesCount = p->double_values; fld->TextValuesCount = p->text_values; fld->BlobValuesCount = p->blob_values; fld->MaxSize = NULL; fld->IntRange = NULL; fld->DoubleRange = NULL; if (p->max_size) { fld->MaxSize = malloc (sizeof (gaiaAttributeFieldMaxSize)); fld->MaxSize->MaxSize = p->max_size; } if (p->int_minmax_set) { fld->IntRange = malloc (sizeof (gaiaAttributeFieldIntRange)); fld->IntRange->MinValue = p->int_min; fld->IntRange->MaxValue = p->int_max; } if (p->dbl_minmax_set) { fld->DoubleRange = malloc (sizeof (gaiaAttributeFieldDoubleRange)); fld->DoubleRange->MinValue = p->dbl_min; fld->DoubleRange->MaxValue = p->dbl_max; } fld->Next = NULL; if (lyr->First == NULL) lyr->First = fld; if (lyr->Last != NULL) lyr->Last->Next = fld; lyr->Last = fld; p = p->next; } } SPATIALITE_PRIVATE int doComputeFieldInfos (void *p_sqlite, const char *table, const char *column, int stat_type, void *p_lyr) { /* computes FIELD_INFOS [single table/geometry] */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; gaiaVectorLayerPtr lyr = (gaiaVectorLayerPtr) p_lyr; char *sql_statement; char *quoted; int ret; int i; int c; char **results; int rows; int columns; int ordinal; const char *col_name; const char *type; const char *sz; int size; int count; int error = 0; int comma = 0; gaiaOutBuffer out_buf; gaiaOutBuffer group_by; struct field_container_infos infos; gaiaOutBufferInitialize (&out_buf); gaiaOutBufferInitialize (&group_by); infos.first = NULL; infos.last = NULL; /* retrieving the column names for the current table */ /* then building the SQL query statement */ quoted = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", quoted); free (quoted); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { gaiaAppendToOutBuffer (&out_buf, "SELECT DISTINCT Count(*)"); gaiaAppendToOutBuffer (&group_by, "GROUP BY"); for (i = 1; i <= rows; i++) { ordinal = atoi (results[(i * columns) + 0]); col_name = results[(i * columns) + 1]; quoted = gaiaDoubleQuotedSql (col_name); sql_statement = sqlite3_mprintf (", %d, %Q AS col_%d, typeof(\"%s\") AS typ_%d, max(length(\"%s\"))", ordinal, col_name, ordinal, quoted, ordinal, quoted); free (quoted); gaiaAppendToOutBuffer (&out_buf, sql_statement); sqlite3_free (sql_statement); if (!comma) { comma = 1; sql_statement = sqlite3_mprintf (" col_%d, typ_%d", ordinal, ordinal); } else sql_statement = sqlite3_mprintf (", col_%d, typ_%d", ordinal, ordinal); gaiaAppendToOutBuffer (&group_by, sql_statement); sqlite3_free (sql_statement); } } sqlite3_free_table (results); if (out_buf.Buffer == NULL) return 0; quoted = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf (" FROM \"%s\" ", quoted); free (quoted); gaiaAppendToOutBuffer (&out_buf, sql_statement); sqlite3_free (sql_statement); gaiaAppendToOutBuffer (&out_buf, group_by.Buffer); gaiaOutBufferReset (&group_by); /* executing the SQL query */ ret = sqlite3_get_table (sqlite, out_buf.Buffer, &results, &rows, &columns, NULL); gaiaOutBufferReset (&out_buf); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { count = atoi (results[(i * columns) + 0]); for (c = 1; c < columns; c += 4) { /* retrieving field infos */ ordinal = atoi (results[(i * columns) + c + 0]); col_name = results[(i * columns) + c + 1]; type = results[(i * columns) + c + 2]; sz = results[(i * columns) + c + 3]; if (sz == NULL) size = -1; else size = atoi (sz); update_field_infos (&infos, ordinal, col_name, type, size, count); } } } sqlite3_free_table (results); /* Pass-2: computing INTEGER and DOUBLE min/max ranges */ if (!error) { if (!do_compute_minmax (sqlite, table, &infos)) error = 1; } switch (stat_type) { case SPATIALITE_STATISTICS_LEGACY: if (!error) copy_attributes_into_layer (&infos, lyr); free_field_infos (&infos); if (error) return 0; return 1; break; case SPATIALITE_STATISTICS_GENUINE: if (!do_update_field_infos (sqlite, table, column, &infos)) error = 1; break; case SPATIALITE_STATISTICS_VIEWS: if (!do_update_views_field_infos (sqlite, table, column, &infos)) error = 1; break; case SPATIALITE_STATISTICS_VIRTS: if (!do_update_virts_field_infos (sqlite, table, column, &infos)) error = 1; break; }; free_field_infos (&infos); if (error) return 0; return 1; } static int do_compute_layer_statistics (sqlite3 * sqlite, const char *table, const char *column, int stat_type) { /* computes LAYER_STATISTICS [single table/geometry] */ int ret; int error = 0; int count; double min_x = DBL_MAX; double min_y = DBL_MAX; double max_x = 0.0 - DBL_MAX; double max_y = 0.0 - DBL_MAX; int has_coords = 1; char *quoted; char *col_quoted; char *sql_statement; sqlite3_stmt *stmt; int metadata_version = checkSpatialMetaData (sqlite); quoted = gaiaDoubleQuotedSql ((const char *) table); col_quoted = gaiaDoubleQuotedSql ((const char *) column); sql_statement = sqlite3_mprintf ("SELECT Count(*), " "Min(MbrMinX(\"%s\")), Min(MbrMinY(\"%s\")), Max(MbrMaxX(\"%s\")), Max(MbrMaxY(\"%s\")) " "FROM \"%s\"", col_quoted, col_quoted, col_quoted, col_quoted, quoted); free (quoted); free (col_quoted); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { count = sqlite3_column_int (stmt, 0); if (sqlite3_column_type (stmt, 1) == SQLITE_NULL) has_coords = 0; else min_x = sqlite3_column_double (stmt, 1); if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) has_coords = 0; else min_y = sqlite3_column_double (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) has_coords = 0; else max_x = sqlite3_column_double (stmt, 3); if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) has_coords = 0; else max_y = sqlite3_column_double (stmt, 4); switch (stat_type) { case SPATIALITE_STATISTICS_GENUINE: if (!do_update_layer_statistics (sqlite, table, column, count, has_coords, min_x, min_y, max_x, max_y)) error = 1; break; case SPATIALITE_STATISTICS_VIEWS: if (!do_update_views_layer_statistics (sqlite, table, column, count, has_coords, min_x, min_y, max_x, max_y)) error = 1; break; case SPATIALITE_STATISTICS_VIRTS: if (!do_update_virts_layer_statistics (sqlite, table, column, count, has_coords, min_x, min_y, max_x, max_y)) error = 1; break; }; } else error = 1; } ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) return 0; if (error) return 0; if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ if (!doComputeFieldInfos (sqlite, table, column, stat_type, NULL)) return 0; } return 1; } static int genuine_layer_statistics_v4 (sqlite3 * sqlite, const char *table, const char *column) { /* updating GEOMETRY_COLUMNS_STATISTICS Version >= 4.0.0 */ char *sql_statement; int ret; const char *f_table_name; const char *f_geometry_column; int i; char **results; int rows; int columns; int error = 0; if (table == NULL && column == NULL) { /* processing any table/geometry found in GEOMETRY_COLUMNS */ sql_statement = sqlite3_mprintf ("SELECT t.f_table_name, t.f_geometry_column " "FROM geometry_columns_time AS t, " "geometry_columns_statistics AS s " "WHERE Lower(s.f_table_name) = Lower(t.f_table_name) AND " "Lower(s.f_geometry_column) = Lower(t.f_geometry_column) AND " "(s.last_verified < t.last_insert OR " "s.last_verified < t.last_update OR " "s.last_verified < t.last_delete OR " "s.last_verified IS NULL)"); } else if (column == NULL) { /* processing any geometry belonging to this table */ sql_statement = sqlite3_mprintf ("SELECT t.f_table_name, t.f_geometry_column " "FROM geometry_columns_time AS t, " "geometry_columns_statistics AS s " "WHERE Lower(t.f_table_name) = Lower(%Q) AND " "Lower(s.f_table_name) = Lower(t.f_table_name) AND " "Lower(s.f_geometry_column) = Lower(t.f_geometry_column) AND " "(s.last_verified < t.last_insert OR " "s.last_verified < t.last_update OR " "s.last_verified < t.last_delete OR " "s.last_verified IS NULL)", table); } else { /* processing a single table/geometry entry */ sql_statement = sqlite3_mprintf ("SELECT t.f_table_name, t.f_geometry_column " "FROM geometry_columns_time AS t, " "geometry_columns_statistics AS s " "WHERE Lower(t.f_table_name) = Lower(%Q) AND " "Lower(t.f_geometry_column) = Lower(%Q) AND " "Lower(s.f_table_name) = Lower(t.f_table_name) AND " "Lower(s.f_geometry_column) = Lower(t.f_geometry_column) AND " "(s.last_verified < t.last_insert OR " "s.last_verified < t.last_update OR " "s.last_verified < t.last_delete OR " "s.last_verified IS NULL)", table, column); } ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { f_table_name = results[(i * columns) + 0]; f_geometry_column = results[(i * columns) + 1]; if (!do_compute_layer_statistics (sqlite, f_table_name, f_geometry_column, SPATIALITE_STATISTICS_GENUINE)) { error = 1; break; } } } sqlite3_free_table (results); if (error) return 0; return 1; } static int genuine_layer_statistics (sqlite3 * sqlite, const char *table, const char *column) { /* updating genuine LAYER_STATISTICS metadata */ char *sql_statement; int ret; const char *f_table_name; const char *f_geometry_column; int i; char **results; int rows; int columns; int error = 0; int metadata_version = checkSpatialMetaData (sqlite); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ return genuine_layer_statistics_v4 (sqlite, table, column); } if (table == NULL && column == NULL) { /* processing any table/geometry found in GEOMETRY_COLUMNS */ sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column " "FROM geometry_columns"); } else if (column == NULL) { /* processing any geometry belonging to this table */ sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q)", table); } else { /* processing a single table/geometry entry */ sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column " "FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) " "AND Lower(f_geometry_column) = Lower(%Q)", table, column); } ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { f_table_name = results[(i * columns) + 0]; f_geometry_column = results[(i * columns) + 1]; if (!do_compute_layer_statistics (sqlite, f_table_name, f_geometry_column, SPATIALITE_STATISTICS_GENUINE)) { error = 1; break; } } } sqlite3_free_table (results); if (error) return 0; return 1; } static int views_layer_statistics (sqlite3 * sqlite, const char *table, const char *column) { /* updating VIEWS_LAYER_STATISTICS metadata */ char *sql_statement; int ret; const char *view_name; const char *view_geometry; int i; char **results; int rows; int columns; int error = 0; if (table == NULL && column == NULL) { /* processing any table/geometry found in VIEWS_GEOMETRY_COLUMNS */ sql_statement = sqlite3_mprintf ("SELECT view_name, view_geometry " "FROM views_geometry_columns"); } else if (column == NULL) { /* processing any geometry belonging to this table */ sql_statement = sqlite3_mprintf ("SELECT view_name, view_geometry " "FROM views_geometry_columns " "WHERE Lower(view_name) = Lower(%Q)", table); } else { /* processing a single table/geometry entry */ sql_statement = sqlite3_mprintf ("SELECT view_name, view_geometry " "FROM views_geometry_columns " "WHERE Lower(view_name) = Lower(%Q) " "AND Lower(view_geometry) = Lower(%Q)", table, column); } ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { view_name = results[(i * columns) + 0]; view_geometry = results[(i * columns) + 1]; if (!do_compute_layer_statistics (sqlite, view_name, view_geometry, SPATIALITE_STATISTICS_VIEWS)) { error = 1; break; } } } sqlite3_free_table (results); if (error) return 0; return 1; } static int virts_layer_statistics (sqlite3 * sqlite, const char *table, const char *column) { /* updating VIRTS_LAYER_STATISTICS metadata */ char *sql_statement; int ret; const char *f_table_name; const char *f_geometry_column; int i; char **results; int rows; int columns; int error = 0; if (table == NULL && column == NULL) { /* processing any table/geometry found in VIRTS_GEOMETRY_COLUMNS */ sql_statement = sqlite3_mprintf ("SELECT virt_name, virt_geometry " "FROM virts_geometry_columns"); } else if (column == NULL) { /* processing any geometry belonging to this table */ sql_statement = sqlite3_mprintf ("SELECT virt_name, virt_geometry " "FROM virts_geometry_columns " "WHERE Lower(virt_name) = Lower(%Q)", table); } else { /* processing a single table/geometry entry */ sql_statement = sqlite3_mprintf ("SELECT virt_name, virt_geometry " "FROM virts_geometry_columns " "WHERE Lower(virt_name) = Lower(%Q) " "AND Lower(virt_geometry) = Lower(%Q)", table, column); } ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { f_table_name = results[(i * columns) + 0]; f_geometry_column = results[(i * columns) + 1]; if (!do_compute_layer_statistics (sqlite, f_table_name, f_geometry_column, SPATIALITE_STATISTICS_VIRTS)) { error = 1; break; } } } sqlite3_free_table (results); if (error) return 0; return 1; } static int has_views_metadata (sqlite3 * sqlite) { /* testing if the VIEWS_GEOMETRY_COLUMNS table exists */ char **results; int rows; int columns; int ret; int i; int defined = 0; ret = sqlite3_get_table (sqlite, "PRAGMA table_info(views_geometry_columns)", &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) defined = 1; } sqlite3_free_table (results); return defined; } static int has_virts_metadata (sqlite3 * sqlite) { /* testing if the VIRTS_GEOMETRY_COLUMNS table exists */ char **results; int rows; int columns; int ret; int i; int defined = 0; ret = sqlite3_get_table (sqlite, "PRAGMA table_info(virts_geometry_columns)", &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) defined = 1; } sqlite3_free_table (results); return defined; } SPATIALITE_DECLARE int update_layer_statistics (sqlite3 * sqlite, const char *table, const char *column) { /* updating LAYER_STATISTICS metadata [main] */ if (!genuine_layer_statistics (sqlite, table, column)) return 0; if (has_views_metadata (sqlite)) { if (!views_layer_statistics (sqlite, table, column)) return 0; } if (has_virts_metadata (sqlite)) { if (!virts_layer_statistics (sqlite, table, column)) return 0; } return 1; } struct drop_params { /* a struct supporting Drop Table */ char **rtrees; int n_rtrees; int is_view; int ok_geometry_columns; int ok_views_geometry_columns; int ok_virts_geometry_columns; int ok_geometry_columns_auth; int ok_geometry_columns_field_infos; int ok_geometry_columns_statistics; int ok_views_geometry_columns_auth; int ok_views_geometry_columns_field_infos; int ok_views_geometry_columns_statistics; int ok_virts_geometry_columns_auth; int ok_virts_geometry_columns_field_infos; int ok_virts_geometry_columns_statistics; int ok_layer_statistics; int ok_views_layer_statistics; int ok_virts_layer_statistics; int ok_layer_params; int ok_layer_sub_classes; int ok_layer_table_layout; }; static int do_drop_table (sqlite3 * sqlite, const char *prefix, const char *table, struct drop_params *aux) { /* performing the actual work */ char *sql; char *q_prefix; char *q_name; int i; if (aux->is_view) { /* dropping a View */ q_name = gaiaDoubleQuotedSql (table); q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DROP VIEW IF EXISTS \"%s\".\"%s\"", q_prefix, q_name); free (q_prefix); free (q_name); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } else { /* dropping a Table */ q_name = gaiaDoubleQuotedSql (table); q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\".\"%s\"", q_prefix, q_name); free (q_prefix); free (q_name); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } for (i = 0; i < aux->n_rtrees; i++) { /* dropping any R*Tree */ q_name = gaiaDoubleQuotedSql (*(aux->rtrees + i)); q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\".\"%s\"", q_prefix, q_name); free (q_prefix); free (q_name); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_layer_params) { /* deleting from LAYER_PARAMS */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DELETE FROM \"%s\".layer_params " "WHERE lower(table_name) = lower(%Q)", q_prefix, table); free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_layer_sub_classes) { /* deleting from LAYER_SUB_CLASSES */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DELETE FROM \"%s\".layer_sub_classes " "WHERE lower(table_name) = lower(%Q)", q_prefix, table); free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_layer_table_layout) { /* deleting from LAYER_TABLE_LAYOUT */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DELETE FROM \"%s\".layer_table_layout " "WHERE lower(table_name) = lower(%Q)", q_prefix, table); free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_geometry_columns_auth) { /* deleting from GEOMETRY_COLUMNS_AUTH */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DELETE FROM \"%s\".geometry_columns_auth " "WHERE lower(f_table_name) = lower(%Q)", q_prefix, table); free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_geometry_columns_field_infos) { /* deleting from GEOMETRY_COLUMNS_FIELD_INFOS */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DELETE FROM \"%s\".geometry_columns_fiels_infos " "WHERE lower(f_table_name) = lower(%Q)", q_prefix, table); free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_geometry_columns_statistics) { /* deleting from GEOMETRY_COLUMNS_STATISTICS */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DELETE FROM \"%s\".geometry_columns_statistics " "WHERE lower(f_table_name) = lower(%Q)", q_prefix, table); free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_views_geometry_columns_auth) { /* deleting from VIEWS_GEOMETRY_COLUMNS_AUTH */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DELETE FROM \"%s\".views_geometry_columns_auth " "WHERE lower(view_name) = lower(%Q)", q_prefix, table); free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_views_geometry_columns_field_infos) { /* deleting from VIEWS_GEOMETRY_COLUMNS_FIELD_INFOS */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DELETE FROM \"%s\".views_geometry_columns_fiels_infos " "WHERE view_name = %Q", q_prefix, table); free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_views_geometry_columns_statistics) { /* deleting from VIEWS_GEOMETRY_COLUMNS_STATISTICS */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DELETE FROM \"%s\".views_geometry_columns_statistics " "WHERE lower(view_name) = lower(%Q)", q_prefix, table); free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_virts_geometry_columns_auth) { /* deleting from VIRTS_GEOMETRY_COLUMNS_AUTH */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DELETE FROM \"%s\".virts_geometry_columns_auth " "WHERE lower(virt_name) = lower(%Q)", q_prefix, table); free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_virts_geometry_columns_field_infos) { /* deleting from VIRTS_GEOMETRY_COLUMNS_FIELD_INFOS */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DELETE FROM \"%s\".virts_geometry_columns_fiels_infos " "WHERE lower(virt_name) = lower(%Q)", q_prefix, table); free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_virts_geometry_columns_statistics) { /* deleting from VIRTS_GEOMETRY_COLUMNS_STATISTICS */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DELETE FROM \"%s\".virts_geometry_columns_statistics " "WHERE lower(virt_name) = lower(%Q)", q_prefix, table); free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_layer_statistics) { /* deleting from LAYER_STATISTICS */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DELETE FROM \"%s\".layer_statistics " "WHERE lower(table_name) = lower(%Q)", q_prefix, table); free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_views_layer_statistics) { /* deleting from VIEWS_LAYER_STATISTICS */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DELETE FROM \"%s\".views_layer_statistics " "WHERE lower(view_name) = lower(%Q)", q_prefix, table); free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_virts_layer_statistics) { /* deleting from VIRTS_LAYER_STATISTICS */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DELETE FROM \"%s\".virts_layer_statistics " "WHERE lower(virt_name) = lower(%Q)", q_prefix, table); free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_geometry_columns) { /* deleting from GEOMETRY_COLUMNS */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DELETE FROM \"%s\".geometry_columns " "WHERE lower(f_table_name) = lower(%Q)", q_prefix, table); free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_views_geometry_columns) { /* deleting from VIEWS_GEOMETRY_COLUMNS */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DELETE FROM \"%s\".views_geometry_columns " "WHERE lower(view_name) = lower(%Q)", q_prefix, table); free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (aux->ok_virts_geometry_columns) { /* deleting from VIEWS_GEOMETRY_COLUMNS */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("DELETE FROM \"%s\".virts_geometry_columns " "WHERE lower(virt_name) = lower(%Q)", q_prefix, table); free (q_prefix); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); } return 1; } static int do_drop_sub_view (sqlite3 * sqlite, const char *prefix, const char *table, struct drop_params *aux) { /* dropping any depending View */ int ret; int i; char **results; int rows; int columns; char *sql; char *q_prefix; struct drop_params aux2; /* initializing the aux params */ aux2.rtrees = NULL; aux2.n_rtrees = 0; aux2.is_view = 1; aux2.ok_geometry_columns = 0; aux2.ok_views_geometry_columns = aux->ok_views_geometry_columns; aux2.ok_virts_geometry_columns = aux->ok_virts_geometry_columns; aux2.ok_geometry_columns_auth = aux->ok_geometry_columns_auth; aux2.ok_geometry_columns_field_infos = aux->ok_geometry_columns_field_infos; aux2.ok_geometry_columns_statistics = aux->ok_geometry_columns_statistics; aux2.ok_views_geometry_columns_auth = aux->ok_views_geometry_columns_auth; aux2.ok_views_geometry_columns_field_infos = aux->ok_views_geometry_columns_field_infos; aux2.ok_views_geometry_columns_statistics = aux->ok_views_geometry_columns_statistics; aux2.ok_virts_geometry_columns_auth = aux->ok_virts_geometry_columns_auth; aux2.ok_virts_geometry_columns_field_infos = aux->ok_virts_geometry_columns_field_infos; aux2.ok_virts_geometry_columns_statistics = aux->ok_virts_geometry_columns_statistics; aux2.ok_layer_statistics = aux->ok_layer_statistics; aux2.ok_views_layer_statistics = aux->ok_views_layer_statistics; aux2.ok_virts_layer_statistics = aux->ok_virts_layer_statistics; aux2.ok_layer_params = aux->ok_layer_params; aux2.ok_layer_sub_classes = aux->ok_layer_sub_classes; aux2.ok_layer_table_layout = aux->ok_layer_table_layout; if (aux->ok_views_geometry_columns == 0) return 1; /* identifying any View depending on the target */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("SELECT view_name FROM \"%s\".views_geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q)", q_prefix, table); free (q_prefix); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { const char *name = results[(i * columns) + 0]; /* dropping the view itself */ if (!do_drop_table (sqlite, prefix, name, &aux2)) return 0; } } sqlite3_free_table (results); return 1; } static int check_drop_layout (sqlite3 * sqlite, const char *prefix, const char *table, struct drop_params *aux) { /* checking the actual DB configuration */ int i; char **results; int rows; int columns; char jolly = '%'; int ret; char *sql; char *q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("SELECT type, name FROM \"%s\".sqlite_master WHERE type = 'table' or type = 'view'", q_prefix); free (q_prefix); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ret = 0; else { ret = 1; for (i = 1; i <= rows; i++) { const char *type = results[(i * columns) + 0]; const char *name = results[(i * columns) + 1]; if (name) { /* checking which tables are actually defined */ if (strcasecmp (name, "geometry_columns") == 0) aux->ok_geometry_columns = 1; if (strcasecmp (name, "views_geometry_columns") == 0) aux->ok_views_geometry_columns = 1; if (strcasecmp (name, "virts_geometry_columns") == 0) aux->ok_virts_geometry_columns = 1; if (strcasecmp (name, "geometry_columns_auth") == 0) aux->ok_geometry_columns_auth = 1; if (strcasecmp (name, "views_geometry_columns_auth") == 0) aux->ok_views_geometry_columns_auth = 1; if (strcasecmp (name, "virts_geometry_columns_auth") == 0) aux->ok_virts_geometry_columns_auth = 1; if (strcasecmp (name, "geometry_columns_statistics") == 0) aux->ok_geometry_columns_statistics = 1; if (strcasecmp (name, "views_geometry_columns_statistics") == 0) aux->ok_views_geometry_columns_statistics = 1; if (strcasecmp (name, "virts_geometry_columns_statistics") == 0) aux->ok_virts_geometry_columns_statistics = 1; if (strcasecmp (name, "geometry_columns_field_infos") == 0) aux->ok_geometry_columns_field_infos = 1; if (strcasecmp (name, "views_geometry_columns_field_infos") == 0) aux->ok_views_geometry_columns_field_infos = 1; if (strcasecmp (name, "virts_geometry_columns_field_infos") == 0) aux->ok_virts_geometry_columns_field_infos = 1; if (strcasecmp (name, "layer_params") == 0) aux->ok_layer_params = 1; if (strcasecmp (name, "layer_statistics") == 0) aux->ok_layer_statistics = 1; if (strcasecmp (name, "layer_sub_classes") == 0) aux->ok_layer_sub_classes = 1; if (strcasecmp (name, "layer_table_layout") == 0) aux->ok_layer_table_layout = 1; if (strcasecmp (name, "views_geometry_columns") == 0) aux->ok_views_geometry_columns = 1; if (strcasecmp (name, "virts_geometry_columns") == 0) aux->ok_virts_geometry_columns = 1; if (strcasecmp (name, "virts_geometry_columns") == 0) aux->ok_virts_geometry_columns = 1; if (strcasecmp (name, table) == 0) { /* checking if the target is a view */ if (strcasecmp (type, "view") == 0) aux->is_view = 1; } } } } sqlite3_free_table (results); if (!ret) return 0; /* identifying any possible R*Tree supporting the main target */ q_prefix = gaiaDoubleQuotedSql (prefix); sql = sqlite3_mprintf ("SELECT name FROM \"%s\".sqlite_master WHERE type = 'table' AND " "Lower(name) IN (SELECT " "Lower('idx_' || f_table_name || '_' || f_geometry_column) " "FROM geometry_columns WHERE Lower(f_table_name) = Lower(%Q)) " "AND sql LIKE('%cvirtual%c') AND sql LIKE('%crtree%c')", q_prefix, table, jolly, jolly, jolly, jolly); free (q_prefix); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { /* allocating the rtrees array */ aux->n_rtrees = rows; aux->rtrees = malloc (sizeof (char **) * aux->n_rtrees); for (i = 1; i <= rows; i++) { const char *name = results[(i * columns) + 0]; int len = strlen (name); *(aux->rtrees + (i - 1)) = malloc (len + 1); strcpy (*(aux->rtrees + (i - 1)), name); } } sqlite3_free_table (results); return 1; } SPATIALITE_DECLARE int gaiaDropTable (sqlite3 * sqlite, const char *table) { return gaiaDropTableEx (sqlite, "main", table); } SPATIALITE_DECLARE int gaiaDropTableEx (sqlite3 * sqlite, const char *prefix, const char *table) { return gaiaDropTableEx2 (sqlite, prefix, table, 1); } SPATIALITE_DECLARE int gaiaDropTableEx2 (sqlite3 * sqlite, const char *prefix, const char *table, int transaction) { /* dropping a Spatial Table and any other related stuff */ int ret; struct drop_params aux; /* initializing the aux params */ aux.rtrees = NULL; aux.n_rtrees = 0; aux.is_view = 0; aux.ok_geometry_columns = 0; aux.ok_views_geometry_columns = 0; aux.ok_virts_geometry_columns = 0; aux.ok_geometry_columns_auth = 0; aux.ok_geometry_columns_field_infos = 0; aux.ok_geometry_columns_statistics = 0; aux.ok_views_geometry_columns_auth = 0; aux.ok_views_geometry_columns_field_infos = 0; aux.ok_views_geometry_columns_statistics = 0; aux.ok_virts_geometry_columns_auth = 0; aux.ok_virts_geometry_columns_field_infos = 0; aux.ok_virts_geometry_columns_statistics = 0; aux.ok_layer_statistics = 0; aux.ok_views_layer_statistics = 0; aux.ok_virts_layer_statistics = 0; aux.ok_layer_params = 0; aux.ok_layer_sub_classes = 0; aux.ok_layer_table_layout = 0; if (prefix == NULL) return 0; if (table == NULL) return 0; if (transaction) { /* the whole operation is a single transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) return 0; } /* checking the actual DB configuration */ if (!check_drop_layout (sqlite, prefix, table, &aux)) goto rollback; /* recursively dropping any depending View */ if (!do_drop_sub_view (sqlite, prefix, table, &aux)) goto rollback; if (!do_drop_table (sqlite, prefix, table, &aux)) goto rollback; if (transaction) { /* committing the still pending transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) goto rollback; } if (aux.rtrees) { /* memory cleanup - rtrees */ int i; for (i = 0; i < aux.n_rtrees; i++) { if (*(aux.rtrees + i) != NULL) free (*(aux.rtrees + i)); } free (aux.rtrees); } return 1; rollback: if (transaction) { /* invalidating the still pending transaction */ sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, NULL); } if (aux.rtrees) { /* memory cleanup - rtrees */ int i; for (i = 0; i < aux.n_rtrees; i++) { if (*(aux.rtrees + i) != NULL) free (*(aux.rtrees + i)); } free (aux.rtrees); } return 0; } libspatialite-4.3.0a/src/spatialite/virtualshape.c0000664000175000017500000007364612544707704017263 00000000000000/* virtualshape.c -- SQLite3 extension [VIRTUAL TABLE accessing Shapefile] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ #ifndef OMIT_ICONV /* if ICONV is disabled no SHP support is available */ static struct sqlite3_module my_shape_module; typedef struct VirtualShapeStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ gaiaShapefilePtr Shp; /* the Shapefile struct */ int Srid; /* the Shapefile SRID */ int text_dates; } VirtualShape; typedef VirtualShape *VirtualShapePtr; typedef struct VirtualShapeConstraintStruct { /* a constraint to be verified for xFilter */ int iColumn; /* Column on left-hand side of constraint */ int op; /* Constraint operator */ char valueType; /* value Type ('I'=int,'D'=double,'T'=text) */ sqlite3_int64 intValue; /* Int64 comparison value */ double dblValue; /* Double comparison value */ char *txtValue; /* Text comparison value */ struct VirtualShapeConstraintStruct *next; } VirtualShapeConstraint; typedef VirtualShapeConstraint *VirtualShapeConstraintPtr; typedef struct VirtualShapeCursorStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualShapePtr pVtab; /* Virtual table of this cursor */ long current_row; /* the current row ID */ int blobSize; unsigned char *blobGeometry; int eof; /* the EOF marker */ VirtualShapeConstraintPtr firstConstraint; VirtualShapeConstraintPtr lastConstraint; } VirtualShapeCursor; typedef VirtualShapeCursor *VirtualShapeCursorPtr; static int vshp_has_metadata (sqlite3 * db, int *geotype) { /* testing the layout of virts_geometry_columns table */ char **results; int ret; int rows; int columns; int i; int ok_virt_name = 0; int ok_virt_geometry = 0; int ok_srid = 0; int ok_geometry_type = 0; int ok_type = 0; int ok_coord_dimension = 0; ret = sqlite3_get_table (db, "PRAGMA table_info(virts_geometry_columns)", &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; for (i = 1; i <= rows; i++) { if (strcasecmp ("virt_name", results[(i * columns) + 1]) == 0) ok_virt_name = 1; if (strcasecmp ("virt_geometry", results[(i * columns) + 1]) == 0) ok_virt_geometry = 1; if (strcasecmp ("srid", results[(i * columns) + 1]) == 0) ok_srid = 1; if (strcasecmp ("geometry_type", results[(i * columns) + 1]) == 0) ok_geometry_type = 1; if (strcasecmp ("type", results[(i * columns) + 1]) == 0) ok_type = 1; if (strcasecmp ("coord_dimension", results[(i * columns) + 1]) == 0) ok_coord_dimension = 1; } sqlite3_free_table (results); if (ok_virt_name && ok_virt_geometry && ok_srid && ok_geometry_type && ok_coord_dimension) { *geotype = 1; return 1; } if (ok_virt_name && ok_virt_geometry && ok_srid && ok_type) { *geotype = 0; return 1; } return 0; } static int vshp_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table connected to some shapefile */ char *sql; VirtualShapePtr p_vt; char path[2048]; char encoding[128]; const char *pEncoding = NULL; int len; const char *pPath = NULL; int srid; gaiaDbfFieldPtr pFld; int cnt; int col_cnt; int seed; int dup; int idup; int text_dates = 0; char *xname; char **col_name = NULL; int geotype; gaiaOutBuffer sql_statement; if (pAux) pAux = pAux; /* unused arg warning suppression */ /* checking for shapefile PATH */ if (argc == 6 || argc == 7) { pPath = argv[3]; len = strlen (pPath); if ((*(pPath + 0) == '\'' || *(pPath + 0) == '"') && (*(pPath + len - 1) == '\'' || *(pPath + len - 1) == '"')) { /* the path is enclosed between quotes - we need to dequote it */ strcpy (path, pPath + 1); len = strlen (path); *(path + len - 1) = '\0'; } else strcpy (path, pPath); pEncoding = argv[4]; len = strlen (pEncoding); if ((*(pEncoding + 0) == '\'' || *(pEncoding + 0) == '"') && (*(pEncoding + len - 1) == '\'' || *(pEncoding + len - 1) == '"')) { /* the charset-name is enclosed between quotes - we need to dequote it */ strcpy (encoding, pEncoding + 1); len = strlen (encoding); *(encoding + len - 1) = '\0'; } else strcpy (encoding, pEncoding); srid = atoi (argv[5]); if (srid < 0) srid = -1; if (argc == 7) text_dates = atoi (argv[6]); } else { *pzErr = sqlite3_mprintf ("[VirtualShape module] CREATE VIRTUAL: illegal arg list {shp_path, encoding, srid}"); return SQLITE_ERROR; } p_vt = (VirtualShapePtr) sqlite3_malloc (sizeof (VirtualShape)); if (!p_vt) return SQLITE_NOMEM; p_vt->pModule = &my_shape_module; p_vt->nRef = 0; p_vt->zErrMsg = NULL; p_vt->db = db; p_vt->Shp = gaiaAllocShapefile (); p_vt->Srid = srid; p_vt->text_dates = text_dates; /* trying to open files etc in order to ensure we actually have a genuine shapefile */ gaiaOpenShpRead (p_vt->Shp, path, encoding, "UTF-8"); if (!(p_vt->Shp->Valid)) { /* something is going the wrong way; creating a stupid default table */ xname = gaiaDoubleQuotedSql ((const char *) argv[2]); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (PKUID INTEGER, Geometry BLOB)", xname); free (xname); if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) { sqlite3_free (sql); *pzErr = sqlite3_mprintf ("[VirtualShape module] cannot build a table from Shapefile\n"); return SQLITE_ERROR; } sqlite3_free (sql); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } if (p_vt->Shp->Shape == 3 || p_vt->Shp->Shape == 13 || p_vt->Shp->Shape == 23 || p_vt->Shp->Shape == 5 || p_vt->Shp->Shape == 15 || p_vt->Shp->Shape == 25) { /* fixing anyway the Geometry type for LINESTRING/MULTILINESTRING or POLYGON/MULTIPOLYGON */ gaiaShpAnalyze (p_vt->Shp); } /* preparing the COLUMNs for this VIRTUAL TABLE */ gaiaOutBufferInitialize (&sql_statement); xname = gaiaDoubleQuotedSql (argv[2]); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (PKUID INTEGER, Geometry BLOB", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); /* checking for duplicate / illegal column names and antialising them */ col_cnt = 0; pFld = p_vt->Shp->Dbf->First; while (pFld) { /* counting DBF fields */ col_cnt++; pFld = pFld->Next; } col_name = malloc (sizeof (char *) * col_cnt); cnt = 0; seed = 0; pFld = p_vt->Shp->Dbf->First; while (pFld) { xname = gaiaDoubleQuotedSql (pFld->Name); dup = 0; for (idup = 0; idup < cnt; idup++) { if (strcasecmp (xname, *(col_name + idup)) == 0) dup = 1; } if (strcasecmp (xname, "\"PKUID\"") == 0) dup = 1; if (strcasecmp (xname, "\"Geometry\"") == 0) dup = 1; if (dup) { free (xname); sql = sqlite3_mprintf ("COL_%d", seed++); xname = gaiaDoubleQuotedSql (sql); sqlite3_free (sql); } if (pFld->Type == 'N') { if (pFld->Decimals > 0 || pFld->Length > 18) sql = sqlite3_mprintf (", \"%s\" DOUBLE", xname); else sql = sqlite3_mprintf (", \"%s\" INTEGER", xname); } else if (pFld->Type == 'F') sql = sqlite3_mprintf (", \"%s\" DOUBLE", xname); else if (pFld->Type == 'D') { if (text_dates) sql = sqlite3_mprintf (", \"%s\" VARCHAR(%d)", xname, pFld->Length); else sql = sqlite3_mprintf (", \"%s\" DOUBLE", xname); } else sql = sqlite3_mprintf (", \"%s\" VARCHAR(%d)", xname, pFld->Length); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); *(col_name + cnt) = xname; cnt++; pFld = pFld->Next; } gaiaAppendToOutBuffer (&sql_statement, ")"); if (col_name) { /* releasing memory allocation for column names */ for (cnt = 0; cnt < col_cnt; cnt++) free (*(col_name + cnt)); free (col_name); } if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { if (sqlite3_declare_vtab (db, sql_statement.Buffer) != SQLITE_OK) { *pzErr = sqlite3_mprintf ("[VirtualShape module] CREATE VIRTUAL: invalid SQL statement \"%s\"", sql_statement.Buffer); gaiaOutBufferReset (&sql_statement); return SQLITE_ERROR; } } gaiaOutBufferReset (&sql_statement); *ppVTab = (sqlite3_vtab *) p_vt; if (vshp_has_metadata (db, &geotype)) { /* registering the Virtual Geometry */ if (geotype) { int xtype = 0; int xdims = 0; switch (p_vt->Shp->EffectiveType) { case GAIA_POINT: switch (p_vt->Shp->EffectiveDims) { case GAIA_XY_Z_M: xtype = 3001; xdims = 4; break; case GAIA_XY_M: xtype = 2001; xdims = 3; break; case GAIA_XY_Z: xtype = 1001; xdims = 3; break; default: xtype = 1; xdims = 2; break; }; break; case GAIA_LINESTRING: switch (p_vt->Shp->EffectiveDims) { case GAIA_XY_Z_M: xtype = 3002; xdims = 4; break; case GAIA_XY_M: xtype = 2002; xdims = 3; break; case GAIA_XY_Z: xtype = 1002; xdims = 3; break; default: xtype = 2; xdims = 2; break; }; break; case GAIA_POLYGON: switch (p_vt->Shp->EffectiveDims) { case GAIA_XY_Z_M: xtype = 3003; xdims = 4; break; case GAIA_XY_M: xtype = 2003; xdims = 3; break; case GAIA_XY_Z: xtype = 1003; xdims = 3; break; default: xtype = 3; xdims = 2; break; }; break; case GAIA_MULTIPOINT: switch (p_vt->Shp->EffectiveDims) { case GAIA_XY_Z_M: xtype = 3004; xdims = 4; break; case GAIA_XY_M: xtype = 2004; xdims = 3; break; case GAIA_XY_Z: xtype = 1004; xdims = 3; break; default: xtype = 4; xdims = 2; break; }; break; case GAIA_MULTILINESTRING: switch (p_vt->Shp->EffectiveDims) { case GAIA_XY_Z_M: xtype = 3005; xdims = 4; break; case GAIA_XY_M: xtype = 2005; xdims = 3; break; case GAIA_XY_Z: xtype = 1005; xdims = 3; break; default: xtype = 5; xdims = 2; break; }; break; case GAIA_MULTIPOLYGON: switch (p_vt->Shp->EffectiveDims) { case GAIA_XY_Z_M: xtype = 3006; xdims = 4; break; case GAIA_XY_M: xtype = 2006; xdims = 3; break; case GAIA_XY_Z: xtype = 1006; xdims = 3; break; default: xtype = 6; xdims = 2; break; }; break; }; sql = sqlite3_mprintf ("INSERT OR IGNORE INTO virts_geometry_columns " "(virt_name, virt_geometry, geometry_type, coord_dimension, srid) " "VALUES (Lower(%Q), 'geometry', %d, %d, %d)", argv[2], xtype, xdims, p_vt->Srid); } else { const char *xgtype = "GEOMETRY"; switch (p_vt->Shp->EffectiveType) { case GAIA_POINT: xgtype = "POINT"; break; case GAIA_LINESTRING: xgtype = "LINESTRING"; break; case GAIA_POLYGON: xgtype = "POLYGON"; break; case GAIA_MULTIPOINT: xgtype = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: xgtype = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: xgtype = "MULTIPOLYGON"; break; }; sql = sqlite3_mprintf ("INSERT OR IGNORE INTO virts_geometry_columns " "(virt_name, virt_geometry, type, srid) " "VALUES (Lower(%Q), 'geometry', %Q, %d)", argv[2], xgtype, p_vt->Srid); } sqlite3_exec (db, sql, NULL, NULL, NULL); sqlite3_free (sql); } if (checkSpatialMetaData (db) == 3) { /* current metadata style >= v.4.0.0 */ /* inserting a row into VIRTS_GEOMETRY_COLUMNS_AUTH */ sql = sqlite3_mprintf ("INSERT OR IGNORE INTO " "virts_geometry_columns_auth (virt_name, virt_geometry, hidden) " "VALUES (Lower(%Q), 'geometry', 0)", argv[2]); sqlite3_exec (db, sql, NULL, NULL, NULL); sqlite3_free (sql); /* inserting a row into GEOMETRY_COLUMNS_STATISTICS */ sql = sqlite3_mprintf ("INSERT OR IGNORE INTO " "virts_geometry_columns_statistics (virt_name, virt_geometry) " "VALUES (Lower(%Q), 'geometry')", argv[2]); sqlite3_exec (db, sql, NULL, NULL, NULL); sqlite3_free (sql); } return SQLITE_OK; } static int vshp_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table to some shapefile - simply aliases vshp_create() */ return vshp_create (db, pAux, argc, argv, ppVTab, pzErr); } static int vshp_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIndex) { /* best index selection */ int i; int iArg = 0; char str[2048]; char buf[64]; if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ *str = '\0'; for (i = 0; i < pIndex->nConstraint; i++) { if (pIndex->aConstraint[i].usable) { iArg++; pIndex->aConstraintUsage[i].argvIndex = iArg; pIndex->aConstraintUsage[i].omit = 1; sprintf (buf, "%d:%d,", pIndex->aConstraint[i].iColumn, pIndex->aConstraint[i].op); strcat (str, buf); } } if (*str != '\0') { pIndex->idxStr = sqlite3_mprintf ("%s", str); pIndex->needToFreeIdxStr = 1; } return SQLITE_OK; } static int vshp_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualShapePtr p_vt = (VirtualShapePtr) pVTab; if (p_vt->Shp) gaiaFreeShapefile (p_vt->Shp); sqlite3_free (p_vt); return SQLITE_OK; } static int vshp_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases vshp_disconnect() */ return vshp_disconnect (pVTab); } static void vshp_read_row (VirtualShapeCursorPtr cursor) { /* trying to read a "row" from shapefile */ int ret; gaiaGeomCollPtr geom; if (!(cursor->pVtab->Shp->Valid)) { cursor->eof = 1; return; } if (cursor->blobGeometry) { free (cursor->blobGeometry); cursor->blobGeometry = NULL; } ret = gaiaReadShpEntity_ex (cursor->pVtab->Shp, cursor->current_row, cursor->pVtab->Srid, cursor->pVtab->text_dates); if (!ret) { if (!(cursor->pVtab->Shp->LastError)) /* normal SHP EOF */ { cursor->eof = 1; return; } /* an error occurred */ spatialite_e ("%s\n", cursor->pVtab->Shp->LastError); cursor->eof = 1; return; } cursor->current_row++; geom = cursor->pVtab->Shp->Dbf->Geometry; if (geom) { /* preparing the BLOB representing Geometry */ gaiaToSpatiaLiteBlobWkb (geom, &(cursor->blobGeometry), &(cursor->blobSize)); } } static int vshp_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ VirtualShapeCursorPtr cursor = (VirtualShapeCursorPtr) sqlite3_malloc (sizeof (VirtualShapeCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->firstConstraint = NULL; cursor->lastConstraint = NULL; cursor->pVtab = (VirtualShapePtr) pVTab; cursor->current_row = 0; cursor->blobGeometry = NULL; cursor->blobSize = 0; cursor->eof = 0; *ppCursor = (sqlite3_vtab_cursor *) cursor; vshp_read_row (cursor); return SQLITE_OK; } static void vshp_free_constraints (VirtualShapeCursorPtr cursor) { /* memory cleanup - cursor constraints */ VirtualShapeConstraintPtr pC; VirtualShapeConstraintPtr pCn; pC = cursor->firstConstraint; while (pC) { pCn = pC->next; if (pC->txtValue) sqlite3_free (pC->txtValue); sqlite3_free (pC); pC = pCn; } cursor->firstConstraint = NULL; cursor->lastConstraint = NULL; } static int vshp_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ VirtualShapeCursorPtr cursor = (VirtualShapeCursorPtr) pCursor; if (cursor->blobGeometry) free (cursor->blobGeometry); vshp_free_constraints (cursor); sqlite3_free (pCursor); return SQLITE_OK; } static int vshp_parse_constraint (const char *str, int index, int *iColumn, int *op) { /* parsing a constraint string */ char buf[64]; const char *in = str; char *out = buf; int i = 0; int found = 0; *out = '\0'; while (*in != '\0') { if (*in == ',') { if (index == i) { *out = '\0'; found = 1; break; } i++; in++; continue; } if (index == i) *out++ = *in; in++; } if (!found) return 0; in = buf; for (i = 0; i < (int) strlen (buf); i++) { if (buf[i] == ':') { buf[i] = '\0'; *iColumn = atoi (buf); *op = atoi (buf + i + 1); return 1; } in++; } return 0; } static int vshp_eval_constraints (VirtualShapeCursorPtr cursor) { /* evaluating Filter constraints */ int nCol; gaiaDbfFieldPtr pFld; VirtualShapeConstraintPtr pC = cursor->firstConstraint; if (pC == NULL) return 1; while (pC) { int ok = 0; if (pC->iColumn == 0) { /* the PRIMARY KEY column */ if (pC->valueType == 'I') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (cursor->current_row == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (cursor->current_row > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (cursor->current_row <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (cursor->current_row < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (cursor->current_row >= pC->intValue) ok = 1; break; }; } goto done; } nCol = 2; pFld = cursor->pVtab->Shp->Dbf->First; while (pFld) { if (nCol == pC->iColumn) { if ((pFld->Value)) { switch (pFld->Value->Type) { case GAIA_INT_VALUE: if (pC->valueType == 'I') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (pFld->Value->IntValue == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (pFld->Value->IntValue > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (pFld->Value->IntValue <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (pFld->Value->IntValue < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (pFld->Value->IntValue >= pC->intValue) ok = 1; break; }; } break; case GAIA_DOUBLE_VALUE: if (pC->valueType == 'I') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (pFld->Value->DblValue == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (pFld->Value->DblValue > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (pFld->Value->DblValue <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (pFld->Value->DblValue < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (pFld->Value->DblValue >= pC->intValue) ok = 1; break; }; } if (pC->valueType == 'D') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (pFld->Value->DblValue == pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (pFld->Value->DblValue > pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (pFld->Value->DblValue <= pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (pFld->Value->DblValue < pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (pFld->Value->DblValue >= pC->dblValue) ok = 1; break; } } break; case GAIA_TEXT_VALUE: if (pC->valueType == 'T' && pC->txtValue) { int ret; ret = strcmp (pFld->Value->TxtValue, pC->txtValue); switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (ret == 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (ret > 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (ret <= 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (ret < 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (ret >= 0) ok = 1; break; }; } break; }; } goto done; } nCol++; pFld = pFld->Next; } done: if (!ok) return 0; pC = pC->next; } return 1; } static int vshp_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ int i; int iColumn; int op; int len; VirtualShapeConstraintPtr pC; VirtualShapeCursorPtr cursor = (VirtualShapeCursorPtr) pCursor; if (idxNum) idxNum = idxNum; /* unused arg warning suppression */ /* resetting any previously set filter constraint */ vshp_free_constraints (cursor); for (i = 0; i < argc; i++) { if (!vshp_parse_constraint (idxStr, i, &iColumn, &op)) continue; pC = sqlite3_malloc (sizeof (VirtualShapeConstraint)); if (!pC) continue; pC->iColumn = iColumn; pC->op = op; pC->valueType = '\0'; pC->txtValue = NULL; pC->next = NULL; if (sqlite3_value_type (argv[i]) == SQLITE_INTEGER) { pC->valueType = 'I'; pC->intValue = sqlite3_value_int64 (argv[i]); } if (sqlite3_value_type (argv[i]) == SQLITE_FLOAT) { pC->valueType = 'D'; pC->dblValue = sqlite3_value_double (argv[i]); } if (sqlite3_value_type (argv[i]) == SQLITE_TEXT) { pC->valueType = 'T'; len = sqlite3_value_bytes (argv[i]) + 1; pC->txtValue = (char *) sqlite3_malloc (len); if (pC->txtValue) strcpy (pC->txtValue, (char *) sqlite3_value_text (argv[i])); } if (cursor->firstConstraint == NULL) cursor->firstConstraint = pC; if (cursor->lastConstraint != NULL) cursor->lastConstraint->next = pC; cursor->lastConstraint = pC; } cursor->current_row = 0; if (cursor->blobGeometry) free (cursor->blobGeometry); cursor->blobGeometry = NULL; cursor->blobSize = 0; cursor->eof = 0; while (1) { vshp_read_row (cursor); if (cursor->eof) break; if (vshp_eval_constraints (cursor)) break; } return SQLITE_OK; } static int vshp_next (sqlite3_vtab_cursor * pCursor) { /* fetching a next row from cursor */ VirtualShapeCursorPtr cursor = (VirtualShapeCursorPtr) pCursor; while (1) { vshp_read_row (cursor); if (cursor->eof) break; if (vshp_eval_constraints (cursor)) break; } return SQLITE_OK; } static int vshp_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualShapeCursorPtr cursor = (VirtualShapeCursorPtr) pCursor; return cursor->eof; } static int vshp_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ int nCol = 2; gaiaGeomCollPtr geom; gaiaDbfFieldPtr pFld; VirtualShapeCursorPtr cursor = (VirtualShapeCursorPtr) pCursor; if (column == 0) { /* the PRIMARY KEY column */ sqlite3_result_int (pContext, cursor->current_row); return SQLITE_OK; } if (column == 1) { /* the GEOMETRY column */ geom = cursor->pVtab->Shp->Dbf->Geometry; if (geom) sqlite3_result_blob (pContext, cursor->blobGeometry, cursor->blobSize, SQLITE_STATIC); else sqlite3_result_null (pContext); return SQLITE_OK; } pFld = cursor->pVtab->Shp->Dbf->First; while (pFld) { /* column values */ if (nCol == column) { if (!(pFld->Value)) sqlite3_result_null (pContext); else { switch (pFld->Value->Type) { case GAIA_INT_VALUE: sqlite3_result_int64 (pContext, pFld->Value->IntValue); break; case GAIA_DOUBLE_VALUE: sqlite3_result_double (pContext, pFld->Value->DblValue); break; case GAIA_TEXT_VALUE: sqlite3_result_text (pContext, pFld->Value->TxtValue, strlen (pFld->Value->TxtValue), SQLITE_STATIC); break; default: sqlite3_result_null (pContext); break; } } break; } nCol++; pFld = pFld->Next; } return SQLITE_OK; } static int vshp_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualShapeCursorPtr cursor = (VirtualShapeCursorPtr) pCursor; *pRowid = cursor->current_row; return SQLITE_OK; } static int vshp_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ if (pVTab || argc || argv || pRowid) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_READONLY; } static int vshp_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vshp_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vshp_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vshp_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vshp_rename (sqlite3_vtab * pVTab, const char *zNew) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ if (zNew) zNew = zNew; /* unused arg warning suppression */ return SQLITE_ERROR; } static int spliteVirtualShapeInit (sqlite3 * db) { int rc = SQLITE_OK; my_shape_module.iVersion = 1; my_shape_module.xCreate = &vshp_create; my_shape_module.xConnect = &vshp_connect; my_shape_module.xBestIndex = &vshp_best_index; my_shape_module.xDisconnect = &vshp_disconnect; my_shape_module.xDestroy = &vshp_destroy; my_shape_module.xOpen = &vshp_open; my_shape_module.xClose = &vshp_close; my_shape_module.xFilter = &vshp_filter; my_shape_module.xNext = &vshp_next; my_shape_module.xEof = &vshp_eof; my_shape_module.xColumn = &vshp_column; my_shape_module.xRowid = &vshp_rowid; my_shape_module.xUpdate = &vshp_update; my_shape_module.xBegin = &vshp_begin; my_shape_module.xSync = &vshp_sync; my_shape_module.xCommit = &vshp_commit; my_shape_module.xRollback = &vshp_rollback; my_shape_module.xFindFunction = NULL; my_shape_module.xRename = &vshp_rename; sqlite3_create_module_v2 (db, "VirtualShape", &my_shape_module, NULL, 0); return rc; } SPATIALITE_PRIVATE int virtualshape_extension_init (void *xdb) { sqlite3 *db = (sqlite3 *) xdb; return spliteVirtualShapeInit (db); } #endif /* ICONV enabled/disabled */ libspatialite-4.3.0a/src/spatialite/virtualelementary.c0000664000175000017500000006641612544707704020325 00000000000000/* virtualelementary.c -- SQLite3 extension [VIRTUAL TABLE Elementary Geometries] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #define strncasecmp _strnicmp #endif /* not WIN32 */ static struct sqlite3_module my_elem_module; /****************************************************************************** / / VirtualTable structs / ******************************************************************************/ typedef struct VirtualElementaryStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ } VirtualElementary; typedef VirtualElementary *VirtualElementaryPtr; typedef struct VirtualElementaryCursorStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualElementaryPtr pVtab; /* Virtual table of this cursor */ int eof; /* the EOF marker */ char *db_prefix; char *f_table_name; char *f_geometry_column; sqlite3_int64 origin_rowid; gaiaGeomCollPtr *geometries; int count; int current; } VirtualElementaryCursor; typedef VirtualElementaryCursor *VirtualElementaryCursorPtr; static int velem_find_geometry (sqlite3 * sqlite, const char *db_prefix, const char *table_name, const char *geom_column, char **real_prefix, char **real_table, char **real_geom) { /* checks if the required Geometry actually defined */ sqlite3_stmt *stmt; char *sql_statement; int ret; int count = 0; char *rt = NULL; char *rg = NULL; if (geom_column == NULL) { if (db_prefix == NULL) { sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column FROM geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q)", table_name); } else { char *quoted_db = gaiaDoubleQuotedSql (db_prefix); sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column FROM \"%s\".geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q)", quoted_db, table_name); free (quoted_db); } } else { if (db_prefix == NULL) { sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column FROM geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) AND " "Upper(f_geometry_column) = Upper(%Q)", table_name, geom_column); } else { char *quoted_db = gaiaDoubleQuotedSql (db_prefix); sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column FROM \"%s\".geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) AND " "Upper(f_geometry_column) = Upper(%Q)", quoted_db, table_name, geom_column); free (quoted_db); } } ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *v = (const char *) sqlite3_column_text (stmt, 0); int len = sqlite3_column_bytes (stmt, 0); if (rt) free (rt); rt = malloc (len + 1); strcpy (rt, v); v = (const char *) sqlite3_column_text (stmt, 1); len = sqlite3_column_bytes (stmt, 1); if (rg) free (rg); rg = malloc (len + 1); strcpy (rg, v); count++; } } sqlite3_finalize (stmt); if (count != 1) return 0; else { int len; if (db_prefix == NULL) db_prefix = "main"; len = strlen (db_prefix); *real_prefix = malloc (len + 1); strcpy (*real_prefix, db_prefix); *real_table = rt; *real_geom = rg; } return 1; } static gaiaGeomCollPtr velem_from_point (gaiaPointPtr pt, int srid) { /* creating a Geometry containing a single Point */ gaiaGeomCollPtr g = NULL; switch (pt->DimensionModel) { case GAIA_XY_Z_M: g = gaiaAllocGeomCollXYZM (); break; case GAIA_XY_Z: g = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: g = gaiaAllocGeomCollXYM (); break; default: g = gaiaAllocGeomColl (); break; }; if (!g) return NULL; g->Srid = srid; g->DeclaredType = GAIA_POINT; switch (pt->DimensionModel) { case GAIA_XY_Z_M: gaiaAddPointToGeomCollXYZM (g, pt->X, pt->Y, pt->Z, pt->M); break; case GAIA_XY_Z: gaiaAddPointToGeomCollXYZ (g, pt->X, pt->Y, pt->Z); break; case GAIA_XY_M: gaiaAddPointToGeomCollXYM (g, pt->X, pt->Y, pt->M); break; default: gaiaAddPointToGeomColl (g, pt->X, pt->Y); break; }; return g; } static gaiaGeomCollPtr velem_from_linestring (gaiaLinestringPtr ln, int srid) { /* creating a Geometry containing a single Linestring */ gaiaGeomCollPtr g = NULL; gaiaLinestringPtr ln2; int iv; double x; double y; double z; double m; switch (ln->DimensionModel) { case GAIA_XY_Z_M: g = gaiaAllocGeomCollXYZM (); break; case GAIA_XY_Z: g = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: g = gaiaAllocGeomCollXYM (); break; default: g = gaiaAllocGeomColl (); break; }; if (!g) return NULL; g->Srid = srid; g->DeclaredType = GAIA_LINESTRING; ln2 = gaiaAddLinestringToGeomColl (g, ln->Points); switch (ln->DimensionModel) { case GAIA_XY_Z_M: for (iv = 0; iv < ln->Points; iv++) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (ln2->Coords, iv, x, y, z, m); } break; case GAIA_XY_Z: for (iv = 0; iv < ln->Points; iv++) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (ln2->Coords, iv, x, y, z); } break; case GAIA_XY_M: for (iv = 0; iv < ln->Points; iv++) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaSetPointXYM (ln2->Coords, iv, x, y, m); } break; default: for (iv = 0; iv < ln->Points; iv++) { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaSetPoint (ln2->Coords, iv, x, y); } break; }; return g; } static gaiaGeomCollPtr velem_from_polygon (gaiaPolygonPtr pg, int srid) { /* creating a Geometry containing a single Polygon */ gaiaGeomCollPtr g = NULL; gaiaPolygonPtr pg2; gaiaRingPtr rng; gaiaRingPtr rng2; int ib; int iv; double x; double y; double z; double m; switch (pg->DimensionModel) { case GAIA_XY_Z_M: g = gaiaAllocGeomCollXYZM (); break; case GAIA_XY_Z: g = gaiaAllocGeomCollXYZ (); break; case GAIA_XY_M: g = gaiaAllocGeomCollXYM (); break; default: g = gaiaAllocGeomColl (); break; }; if (!g) return NULL; g->Srid = srid; g->DeclaredType = GAIA_POLYGON; rng = pg->Exterior; pg2 = gaiaAddPolygonToGeomColl (g, rng->Points, pg->NumInteriors); rng2 = pg2->Exterior; switch (pg->DimensionModel) { case GAIA_XY_Z_M: for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (rng2->Coords, iv, x, y, z, m); } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; rng2 = gaiaAddInteriorRing (pg2, ib, rng->Points); for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (rng2->Coords, iv, x, y, z, m); } } break; case GAIA_XY_Z: for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (rng2->Coords, iv, x, y, z); } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; rng2 = gaiaAddInteriorRing (pg2, ib, rng->Points); for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (rng2->Coords, iv, x, y, z); } } break; case GAIA_XY_M: for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaSetPointXYM (rng2->Coords, iv, x, y, m); } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; rng2 = gaiaAddInteriorRing (pg2, ib, rng->Points); for (iv = 0; iv < rng->Points; iv++) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaSetPointXYM (rng2->Coords, iv, x, y, m); } } break; default: for (iv = 0; iv < rng->Points; iv++) { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaSetPoint (rng2->Coords, iv, x, y); } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; rng2 = gaiaAddInteriorRing (pg2, ib, rng->Points); for (iv = 0; iv < rng->Points; iv++) { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaSetPoint (rng2->Coords, iv, x, y); } } break; }; return g; } static int velem_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table for Elementary Geometries metahandling */ VirtualElementaryPtr p_vt; char *buf; char *vtable; char *xname; if (pAux) pAux = pAux; /* unused arg warning suppression */ if (argc == 3) { vtable = gaiaDequotedSql ((char *) argv[2]); } else { *pzErr = sqlite3_mprintf ("[VirtualElementary module] CREATE VIRTUAL: illegal arg list {void}\n"); return SQLITE_ERROR; } p_vt = (VirtualElementaryPtr) sqlite3_malloc (sizeof (VirtualElementary)); if (!p_vt) return SQLITE_NOMEM; p_vt->db = db; p_vt->pModule = &my_elem_module; p_vt->nRef = 0; p_vt->zErrMsg = NULL; /* preparing the COLUMNs for this VIRTUAL TABLE */ xname = gaiaDoubleQuotedSql (vtable); buf = sqlite3_mprintf ("CREATE TABLE \"%s\" (db_prefix TEXT, " "f_table_name TEXT, f_geometry_column TEXT, " "origin_rowid INTEGER, item_no INTEGER, geometry BLOB)", xname); free (xname); free (vtable); if (sqlite3_declare_vtab (db, buf) != SQLITE_OK) { sqlite3_free (buf); *pzErr = sqlite3_mprintf ("[VirtualElementary module] CREATE VIRTUAL: invalid SQL statement \"%s\"", buf); return SQLITE_ERROR; } sqlite3_free (buf); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } static void velem_reset_cache (VirtualElementaryCursorPtr cursor) { /* cleaning the cursor's cache */ if (cursor->db_prefix != NULL) free (cursor->db_prefix); if (cursor->f_table_name != NULL) free (cursor->f_table_name); if (cursor->f_geometry_column != NULL) free (cursor->f_geometry_column); if (cursor->geometries != NULL) { int i; for (i = 0; i < cursor->count; i++) { gaiaGeomCollPtr geom = *(cursor->geometries + i); gaiaFreeGeomColl (geom); } free (cursor->geometries); } cursor->db_prefix = NULL; cursor->f_table_name = NULL; cursor->f_geometry_column = NULL; cursor->geometries = NULL; cursor->count = 0; cursor->current = 0; } static int velem_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table - simply aliases velem_create() */ return velem_create (db, pAux, argc, argv, ppVTab, pzErr); } static int velem_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIdxInfo) { /* best index selection */ int i; int errors = 0; int err = 1; int db_prefix = 0; int table = 0; int geom = 0; int rowid = 0; if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ for (i = 0; i < pIdxInfo->nConstraint; i++) { /* verifying the constraints */ struct sqlite3_index_constraint *p = &(pIdxInfo->aConstraint[i]); if (p->usable) { if (p->iColumn == 0 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) db_prefix++; else if (p->iColumn == 1 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) table++; else if (p->iColumn == 2 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) geom++; else if (p->iColumn == 3 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) rowid++; else errors++; } } if ((db_prefix == 0 || db_prefix == 1) && table == 1 && (geom == 0 || geom == 1) && rowid == 1 && errors == 0) { /* this one is a valid ElementaryGeometries query */ if (db_prefix == 0) { if (geom == 1) pIdxInfo->idxNum = 1; else pIdxInfo->idxNum = 2; } else { if (geom == 1) pIdxInfo->idxNum = 3; else pIdxInfo->idxNum = 4; } pIdxInfo->estimatedCost = 1.0; for (i = 0; i < pIdxInfo->nConstraint; i++) { if (pIdxInfo->aConstraint[i].usable) { pIdxInfo->aConstraintUsage[i].argvIndex = i + 1; pIdxInfo->aConstraintUsage[i].omit = 1; } } err = 0; } if (err) { /* illegal query */ pIdxInfo->idxNum = 0; } return SQLITE_OK; } static int velem_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualElementaryPtr p_vt = (VirtualElementaryPtr) pVTab; sqlite3_free (p_vt); return SQLITE_OK; } static int velem_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases velem_disconnect() */ return velem_disconnect (pVTab); } static int velem_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ VirtualElementaryCursorPtr cursor = (VirtualElementaryCursorPtr) sqlite3_malloc (sizeof (VirtualElementaryCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->pVtab = (VirtualElementaryPtr) pVTab; cursor->eof = 1; cursor->db_prefix = NULL; cursor->f_table_name = NULL; cursor->f_geometry_column = NULL; cursor->geometries = NULL; cursor->count = 0; cursor->current = 0; *ppCursor = (sqlite3_vtab_cursor *) cursor; return SQLITE_OK; } static int velem_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ VirtualElementaryCursorPtr cursor = (VirtualElementaryCursorPtr) pCursor; velem_reset_cache (cursor); sqlite3_free (pCursor); return SQLITE_OK; } static int velem_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ char *db_prefix = NULL; char *table_name = NULL; char *geom_column = NULL; char *xprefix = NULL; char *xtable = NULL; char *xgeom = NULL; char *table_nameQ; char *geo_nameQ; char *sql_statement; sqlite3_int64 rowid_value; int ok_prefix = 0; int ok_table = 0; int ok_geom = 0; int ok_rowid = 0; int exists; int ret; sqlite3_stmt *stmt = NULL; VirtualElementaryCursorPtr cursor = (VirtualElementaryCursorPtr) pCursor; VirtualElementaryPtr elem = (VirtualElementaryPtr) cursor->pVtab; if (idxStr) idxStr = idxStr; /* unused arg warning suppression */ cursor->eof = 1; if (idxNum == 1 && argc == 3) { /* retrieving the Table/Column/ROWID params */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { table_name = (char *) sqlite3_value_text (argv[0]); ok_table = 1; } if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) { geom_column = (char *) sqlite3_value_text (argv[1]); ok_geom = 1; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { rowid_value = sqlite3_value_int64 (argv[2]); ok_rowid = 1; } if (ok_table && ok_geom && ok_rowid) ; else { /* invalid args */ goto stop; } } if (idxNum == 2 && argc == 2) { /* retrieving the Table/ROWID params */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { table_name = (char *) sqlite3_value_text (argv[0]); ok_table = 1; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { rowid_value = sqlite3_value_int64 (argv[1]); ok_rowid = 1; } if (ok_table && ok_rowid) ; else { /* invalid args */ goto stop; } } if (idxNum == 3 && argc == 4) { /* retrieving the DbPrefix/Table/Column/ROWID params */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { db_prefix = (char *) sqlite3_value_text (argv[0]); ok_prefix = 1; } if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) { table_name = (char *) sqlite3_value_text (argv[1]); ok_table = 1; } if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) { geom_column = (char *) sqlite3_value_text (argv[2]); ok_geom = 1; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { rowid_value = sqlite3_value_int64 (argv[3]); ok_rowid = 1; } if (ok_prefix && ok_table && ok_geom && ok_rowid) ; else { /* invalid args */ goto stop; } } if (idxNum == 4 && argc == 3) { /* retrieving the DbPrefix/Table/ROWID params */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { db_prefix = (char *) sqlite3_value_text (argv[0]); ok_prefix = 1; } if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) { table_name = (char *) sqlite3_value_text (argv[1]); ok_table = 1; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { rowid_value = sqlite3_value_int64 (argv[2]); ok_rowid = 1; } if (ok_prefix && ok_table && ok_rowid) ; else { /* invalid args */ goto stop; } } /* checking if the corresponding Table/Geometry exists */ exists = velem_find_geometry (elem->db, db_prefix, table_name, geom_column, &xprefix, &xtable, &xgeom); if (!exists) goto stop; /* building the basic query */ table_nameQ = gaiaDoubleQuotedSql (xtable); geo_nameQ = gaiaDoubleQuotedSql (xgeom); if (db_prefix == NULL) { sql_statement = sqlite3_mprintf ("SELECT \"%s\" FROM \"%s\" WHERE ROWID = ?", geo_nameQ, table_nameQ); } else { char *quoted_db = gaiaDoubleQuotedSql (db_prefix); sql_statement = sqlite3_mprintf ("SELECT \"%s\" FROM \"%s\".\"%s\" WHERE ROWID = ?", geo_nameQ, quoted_db, table_nameQ); free (quoted_db); } free (geo_nameQ); free (table_nameQ); ret = sqlite3_prepare_v2 (elem->db, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto stop; /* binding stmt params [ROWID] */ sqlite3_bind_int64 (stmt, 1, rowid_value); velem_reset_cache (cursor); cursor->eof = 0; /* caching the ResultSet */ ret = sqlite3_step (stmt); if (ret == SQLITE_ROW) { /* ok, found a corresponding row */ cursor->db_prefix = xprefix; xprefix = NULL; cursor->f_table_name = xtable; xtable = NULL; cursor->f_geometry_column = xgeom; xgeom = NULL; cursor->origin_rowid = rowid_value; cursor->current = 0; if (sqlite3_column_type (stmt, 0) == SQLITE_BLOB) { /* preparing Elementary Geometries */ gaiaGeomCollPtr geom; unsigned char *blob = (unsigned char *) sqlite3_column_blob (stmt, 0); int blob_sz = sqlite3_column_bytes (stmt, 0); geom = gaiaFromSpatiaLiteBlobWkb (blob, blob_sz); if (geom == NULL) cursor->eof = 1; else { int count = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; pt = geom->FirstPoint; while (pt) { count++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { count++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { count++; pg = pg->Next; } cursor->count = count; cursor->geometries = malloc (sizeof (gaiaGeomCollPtr) * count); for (count = 0; count < cursor->count; count++) *(cursor->geometries + count) = NULL; count = 0; pt = geom->FirstPoint; while (pt) { gaiaGeomCollPtr elem = velem_from_point (pt, geom->Srid); *(cursor->geometries + count++) = elem; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { gaiaGeomCollPtr elem = velem_from_linestring (ln, geom->Srid); *(cursor->geometries + count++) = elem; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { gaiaGeomCollPtr elem = velem_from_polygon (pg, geom->Srid); *(cursor->geometries + count++) = elem; pg = pg->Next; } gaiaFreeGeomColl (geom); } } } else cursor->eof = 1; stop: if (stmt != NULL) sqlite3_finalize (stmt); if (xtable) free (xtable); if (xgeom) free (xgeom); if (xprefix) free (xprefix); if (cursor->eof == 1) velem_reset_cache (cursor); return SQLITE_OK; } static int velem_next (sqlite3_vtab_cursor * pCursor) { /* fetching next row from cursor */ VirtualElementaryCursorPtr cursor = (VirtualElementaryCursorPtr) pCursor; if (cursor->geometries == NULL) cursor->eof = 1; else { cursor->current += 1; if (cursor->current >= cursor->count) cursor->eof = 1; } return SQLITE_OK; } static int velem_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualElementaryCursorPtr cursor = (VirtualElementaryCursorPtr) pCursor; return cursor->eof; } static int velem_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ VirtualElementaryCursorPtr cursor = (VirtualElementaryCursorPtr) pCursor; if (column == 0) { /* the "db_prefix" column */ if (cursor->db_prefix == NULL) sqlite3_result_null (pContext); else sqlite3_result_text (pContext, cursor->db_prefix, strlen (cursor->db_prefix), SQLITE_STATIC); } if (column == 1) { /* the "f_table_name" column */ if (cursor->f_table_name == NULL) sqlite3_result_null (pContext); else sqlite3_result_text (pContext, cursor->f_table_name, strlen (cursor->f_table_name), SQLITE_STATIC); } if (column == 2) { /* the "f_geometry_column" column */ if (cursor->f_geometry_column == NULL) sqlite3_result_null (pContext); else sqlite3_result_text (pContext, cursor->f_geometry_column, strlen (cursor->f_geometry_column), SQLITE_STATIC); } if (column == 3) { /* the "origin_rowid" column */ sqlite3_result_int64 (pContext, cursor->origin_rowid); } if (column == 4) { /* the "item_no" column */ sqlite3_result_int (pContext, cursor->current); } if (column == 5) { /* the "geometry" column */ gaiaGeomCollPtr geom = *(cursor->geometries + cursor->current); if (geom == NULL) sqlite3_result_null (pContext); else { unsigned char *blob; int size; gaiaToSpatiaLiteBlobWkb (geom, &blob, &size); sqlite3_result_blob (pContext, blob, size, free); } } return SQLITE_OK; } static int velem_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualElementaryCursorPtr cursor = (VirtualElementaryCursorPtr) pCursor; *pRowid = cursor->current; return SQLITE_OK; } static int velem_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ if (pRowid || argc || argv || pVTab) pRowid = pRowid; /* unused arg warning suppression */ /* read only datasource */ return SQLITE_READONLY; } static int velem_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int velem_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int velem_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int velem_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int velem_rename (sqlite3_vtab * pVTab, const char *zNew) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ if (zNew) zNew = zNew; /* unused arg warning suppression */ return SQLITE_ERROR; } static int spliteVirtualElementaryInit (sqlite3 * db) { int rc = SQLITE_OK; my_elem_module.iVersion = 1; my_elem_module.xCreate = &velem_create; my_elem_module.xConnect = &velem_connect; my_elem_module.xBestIndex = &velem_best_index; my_elem_module.xDisconnect = &velem_disconnect; my_elem_module.xDestroy = &velem_destroy; my_elem_module.xOpen = &velem_open; my_elem_module.xClose = &velem_close; my_elem_module.xFilter = &velem_filter; my_elem_module.xNext = &velem_next; my_elem_module.xEof = &velem_eof; my_elem_module.xColumn = &velem_column; my_elem_module.xRowid = &velem_rowid; my_elem_module.xUpdate = &velem_update; my_elem_module.xBegin = &velem_begin; my_elem_module.xSync = &velem_sync; my_elem_module.xCommit = &velem_commit; my_elem_module.xRollback = &velem_rollback; my_elem_module.xFindFunction = NULL; my_elem_module.xRename = &velem_rename; sqlite3_create_module_v2 (db, "VirtualElementary", &my_elem_module, NULL, 0); return rc; } SPATIALITE_PRIVATE int virtual_elementary_extension_init (void *xdb) { sqlite3 *db = (sqlite3 *) xdb; return spliteVirtualElementaryInit (db); } libspatialite-4.3.0a/src/spatialite/table_cloner.c0000664000175000017500000015453612544707704017203 00000000000000/* table_cloner.c -- Cloning a Table version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #define strncasecmp _strnicmp #endif /* not WIN32 */ struct aux_geometry { /* a Geometry column object */ int type; int dims; int srid; int spatial_index; int cast2multi; int already_existing; }; struct aux_trigger { /* a Trigger object */ char *name; char *sql; int already_existing; struct aux_trigger *next; }; struct aux_fk_columns { /* a Foreign Key Columns object */ char *from; char *to; struct aux_fk_columns *next; }; struct aux_foreign_key { /* a Foreign Key object */ int id; char *name; char *references; char *on_update; char *on_delete; char *match; struct aux_fk_columns *first; struct aux_fk_columns *last; struct aux_foreign_key *next; }; struct aux_index_column { /* an Index Column object */ char *name; struct aux_index_column *next; }; struct aux_index { /* a Table Index object */ char *name; int unique; struct aux_index_column *first; struct aux_index_column *last; struct aux_index *next; }; struct aux_column { /* a Table Column object */ char *name; char *type; int notnull; char *deflt; int pk; int fk; int idx; struct aux_geometry *geometry; int ignore; int already_existing; int mismatching; struct aux_column *next; }; struct aux_pk_column { /* Primary Key Columns */ struct aux_column *column; struct aux_pk_column *next; }; struct aux_cloner { /* the main Cloner object */ sqlite3 *sqlite; char *db_prefix; char *in_table; char *out_table; struct aux_column *first_col; struct aux_column *last_col; struct aux_pk_column *first_pk; struct aux_pk_column *last_pk; struct aux_index *first_idx; struct aux_index *last_idx; struct aux_foreign_key *first_fk; struct aux_foreign_key *last_fk; struct aux_trigger *first_trigger; struct aux_trigger *last_trigger; struct aux_pk_column **sorted_pks; int pk_count; int autoincrement; int resequence; int with_fks; int with_triggers; int append; int already_existing; }; static int create_column (sqlite3 * sqlite, const char *table, struct aux_column *column) { /* creating a further ordinary Column */ char *sql; char *err_msg = NULL; int ret; char *xtable; char *xcolumn; xtable = gaiaDoubleQuotedSql (table); xcolumn = gaiaDoubleQuotedSql (column->name); if (column->notnull) { if (column->deflt != NULL) sql = sqlite3_mprintf ("ALTER TABLE main.\"%s\" " "ADD COLUMN \"%s\" %s NOT NULL DEFAULT %s", xtable, xcolumn, column->type, column->deflt); else sql = sqlite3_mprintf ("ALTER TABLE main.\"%s\" " "ADD COLUMN \"%s\" %s NOT NULL", xtable, xcolumn, column->type); } else { if (column->deflt != NULL) sql = sqlite3_mprintf ("ALTER TABLE main.\"%s\" " "ADD COLUMN \"%s\" %s DEFAULT %s", xtable, xcolumn, column->type, column->deflt); else sql = sqlite3_mprintf ("ALTER TABLE main.\"%s\" " "ADD COLUMN \"%s\" %s", xtable, xcolumn, column->type); } free (xtable); free (xcolumn); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("ALTER TABLE ADD COLUMN error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_geometry (sqlite3 * sqlite, const char *table, struct aux_column *column) { /* creating a further Geometry Column */ char *sql; char *err_msg = NULL; int ret; char *xtable; char *xcolumn; const char *type = "GEOMETRY"; const char *dims = "XY"; int gtype = column->geometry->type; if (column->geometry->cast2multi) { /* promoting to the corresponding MultiType */ switch (column->geometry->type) { case 1: gtype = 4; break; case 1001: gtype = 1004; break; case 2001: gtype = 2004; break; case 3001: gtype = 3004; break; case 2: gtype = 5; break; case 1002: gtype = 1005; break; case 2002: gtype = 2005; break; case 3002: gtype = 3005; break; case 3: gtype = 6; break; case 1003: gtype = 1006; break; case 2003: gtype = 2006; break; case 3003: gtype = 3006; break; }; } switch (gtype) { case 1: type = "POINT"; dims = "XY"; break; case 1001: type = "POINT"; dims = "XYZ"; break; case 2001: type = "POINT"; dims = "XYM"; break; case 3001: type = "POINT"; dims = "XYZM"; break; case 2: type = "LINESTRING"; dims = "XY"; break; case 1002: type = "LINESTRING"; dims = "XYZ"; break; case 2002: type = "LINESTRING"; dims = "XYM"; break; case 3002: type = "LINESTRING"; dims = "XYZM"; break; case 3: type = "POLYGON"; dims = "XY"; break; case 1003: type = "POLYGON"; dims = "XYZ"; break; case 2003: type = "POLYGON"; dims = "XYM"; break; case 3003: type = "POLYGON"; dims = "XYZM"; break; case 4: type = "MULTIPOINT"; dims = "XY"; break; case 1004: type = "MULTIPOINT"; dims = "XYZ"; break; case 2004: type = "MULTIPOINT"; dims = "XYM"; break; case 3004: type = "MULTIPOINT"; dims = "XYZM"; break; case 5: type = "MULTILINESTRING"; dims = "XY"; break; case 1005: type = "MULTILINESTRING"; dims = "XYZ"; break; case 2005: type = "MULTILINESTRING"; dims = "XYM"; break; case 3005: type = "MULTILINESTRING"; dims = "XYZM"; break; case 6: type = "MULTIPOLYGON"; dims = "XY"; break; case 1006: type = "MULTIPOLYGON"; dims = "XYZ"; break; case 2006: type = "MULTIPOLYGON"; dims = "XYM"; break; case 3006: type = "MULTIPOLYGON"; dims = "XYZM"; break; case 7: type = "GEOMETRYCOLLECTION"; dims = "XY"; break; case 1007: type = "GEOMETRYCOLLECTION"; dims = "XYZ"; break; case 2007: type = "GEOMETRYCOLLECTION"; dims = "XYM"; break; case 3007: type = "GEOMETRYCOLLECTION"; dims = "XYZM"; break; case 0: type = "GEOMETRY"; dims = "XY"; break; case 1000: type = "GEOMETRY"; dims = "XYZ"; break; case 2000: type = "GEOMETRY"; dims = "XYM"; break; case 3000: type = "GEOMETRY"; dims = "XYZM"; break; }; xtable = gaiaDoubleQuotedSql (table); xcolumn = gaiaDoubleQuotedSql (column->name); if (column->notnull) { sql = sqlite3_mprintf ("SELECT AddGeometryColumn(Lower(%Q), " "Lower(%Q), %d, %Q, %Q, 1)", xtable, xcolumn, column->geometry->srid, type, dims); } else { sql = sqlite3_mprintf ("SELECT AddGeometryColumn(Lower(%Q), " "Lower(%Q), %d, %Q, %Q)", xtable, xcolumn, column->geometry->srid, type, dims); } free (xtable); free (xcolumn); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("ADD GEOMETRY COLUMN error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } if (column->geometry->spatial_index) { /* creating the corresponding Spatial Index */ xtable = gaiaDoubleQuotedSql (table); xcolumn = gaiaDoubleQuotedSql (column->name); sql = sqlite3_mprintf ("SELECT CreateSpatialIndex(" "Lower(%Q), Lower(%Q))", xtable, xcolumn); free (xtable); free (xcolumn); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE SPATIAL INDEX error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } } return 1; } static int upgrade_output_table (struct aux_cloner *cloner) { /* creating any new Column required by APPEND */ struct aux_column *column = cloner->first_col; while (column != NULL) { if (column->ignore) { /* skipping columns marked to be ignored */ column = column->next; continue; } if (column->already_existing == 0) { if (column->geometry != NULL) { /* creating a Geometry */ if (!create_geometry (cloner->sqlite, cloner->out_table, column)) { spatialite_e ("CloneTable: unable to ADD Geometry COLUMN \"%s\" on Table \"%s\"\n", column->name, cloner->out_table); return 0; } } else { /* creating an ordinary Column */ if (!create_column (cloner->sqlite, cloner->out_table, column)) { spatialite_e ("CloneTable: unable to ADD COLUMN \"%s\" on Table \"%s\"\n", column->name, cloner->out_table); return 0; } } } column = column->next; } return 1; } static void sort_pk_columns (struct aux_cloner *cloner) { /* sorting the PK columns (if required) */ struct aux_pk_column *ppk; int cnt; int ok; if (cloner->pk_count <= 1) return; cloner->sorted_pks = malloc (sizeof (struct aux_pk_column *) * cloner->pk_count); cnt = 0; ppk = cloner->first_pk; while (ppk != NULL) { /* copying pointers to PK cols */ *(cloner->sorted_pks + cnt++) = ppk; ppk = ppk->next; } ok = 1; while (ok) { /* bubble sorting */ ok = 0; for (cnt = 1; cnt < cloner->pk_count; cnt++) { struct aux_pk_column *ppk1 = *(cloner->sorted_pks + cnt - 1); ppk = *(cloner->sorted_pks + cnt); if (ppk1->column->pk > ppk->column->pk) { /* swapping */ *(cloner->sorted_pks + cnt - 1) = ppk; *(cloner->sorted_pks + cnt) = ppk1; ok = 1; } } } } static void adjust_ignore (struct aux_cloner *cloner) { /* adjusting Ignore columns */ struct aux_column *column = cloner->first_col; while (column != NULL) { if (column->ignore) { if (column->pk) column->ignore = 0; if (column->fk && cloner->with_fks) column->ignore = 0; if (column->idx) column->ignore = 0; } column = column->next; } } static const char * get_pk_column (struct aux_cloner *cloner, int index) { /* returning a PK column name (by sorted index) */ struct aux_pk_column *ppk; if (cloner->sorted_pks == NULL) return NULL; if (index < 0 || index >= cloner->pk_count) return NULL; ppk = *(cloner->sorted_pks + index); return ppk->column->name; } static void mark_existing_trigger (struct aux_cloner *cloner, const char *name) { /* marking an existing Trigger */ struct aux_trigger *trigger = cloner->first_trigger; while (trigger != NULL) { if (strcasecmp (trigger->name, name) == 0) { trigger->already_existing = 1; return; } trigger = trigger->next; } } static void check_existing_triggers (struct aux_cloner *cloner) { /* exploring the output table - already existing Triggers */ char *sql; int ret; int i; char **results; int rows; int columns; const char *name; sql = sqlite3_mprintf ("SELECT name FROM main.sqlite_master " "WHERE type = 'trigger' AND Lower(tbl_name) = Lower(%Q)", cloner->in_table); ret = sqlite3_get_table (cloner->sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 0]; mark_existing_trigger (cloner, name); } } sqlite3_free_table (results); } static int create_output_table (struct aux_cloner *cloner) { /* creating the output Table */ char *err_msg = NULL; int ret; struct aux_column *column; struct aux_foreign_key *fk; struct aux_fk_columns *fk_col; struct aux_index *index; struct aux_index_column *idx_column; char *sql; char *prev_sql; char *xtable; char *xcolumn; char *constraint; char *xconstraint; int first = 1; int i; int fk_no; sort_pk_columns (cloner); adjust_ignore (cloner); xtable = gaiaDoubleQuotedSql (cloner->out_table); sql = sqlite3_mprintf ("CREATE TABLE main.\"%s\"", xtable); free (xtable); prev_sql = sql; column = cloner->first_col; while (column != NULL) { if (column->ignore) { /* IGNORE requested */ column = column->next; continue; } if (column->geometry != NULL) { /* skipping any Geometry column */ column = column->next; continue; } if (first) { sql = sqlite3_mprintf ("%s (\n", prev_sql); first = 0; } else sql = sqlite3_mprintf ("%s,\n", prev_sql); sqlite3_free (prev_sql); prev_sql = sql; xcolumn = gaiaDoubleQuotedSql (column->name); if (cloner->pk_count == 1 && column->pk) { /* immediately declaring a single column Primary Key */ if (cloner->autoincrement) { if (column->notnull) { if (column->deflt != NULL) sql = sqlite3_mprintf ("%s\t\"%s\" %s NOT NULL PRIMARY KEY AUTOINCREMENT DEFAULT %s", prev_sql, xcolumn, column->type, column->deflt); else sql = sqlite3_mprintf ("%s\t\"%s\" %s NOT NULL PRIMARY KEY AUTOINCREMENT", prev_sql, xcolumn, column->type); } else { if (column->deflt != NULL) sql = sqlite3_mprintf ("%s\t\"%s\" %s PRIMARY KEY AUTOINCREMENT DEFAULT %s", prev_sql, xcolumn, column->type, column->deflt); else sql = sqlite3_mprintf ("%s\t\"%s\" %s PRIMARY KEY AUTOINCREMENT", prev_sql, xcolumn, column->type); } } else { if (column->notnull) { if (column->deflt != NULL) sql = sqlite3_mprintf ("%s\t\"%s\" %s NOT NULL PRIMARY KEY DEFAULT %s", prev_sql, xcolumn, column->type, column->deflt); else sql = sqlite3_mprintf ("%s\t\"%s\" %s NOT NULL PRIMARY KEY", prev_sql, xcolumn, column->type); } else { if (column->deflt != NULL) sql = sqlite3_mprintf ("%s\t\"%s\" %s PRIMARY KEY DEFAULT %s", prev_sql, xcolumn, column->type, column->deflt); else sql = sqlite3_mprintf ("%s\t\"%s\" %s PRIMARY KEY", prev_sql, xcolumn, column->type); } } free (xcolumn); sqlite3_free (prev_sql); prev_sql = sql; column = column->next; continue; } if (column->notnull) { if (column->deflt != NULL) sql = sqlite3_mprintf ("%s\t\"%s\" %s NOT NULL DEFAULT %s", prev_sql, xcolumn, column->type, column->deflt); else sql = sqlite3_mprintf ("%s\t\"%s\" %s NOT NULL", prev_sql, xcolumn, column->type); } else { if (column->deflt != NULL) sql = sqlite3_mprintf ("%s\t\"%s\" %s DEFAULT %s", prev_sql, xcolumn, column->type, column->deflt); else sql = sqlite3_mprintf ("%s\t\"%s\" %s", prev_sql, xcolumn, column->type); } free (xcolumn); sqlite3_free (prev_sql); prev_sql = sql; column = column->next; } if (cloner->pk_count > 1) { /* declaring a PRIMARY KEY CONSTRAINT */ sql = sqlite3_mprintf ("%s,\n", prev_sql); sqlite3_free (prev_sql); prev_sql = sql; constraint = sqlite3_mprintf ("pk_%s", cloner->out_table); xconstraint = gaiaDoubleQuotedSql (constraint); sqlite3_free (constraint); sql = sqlite3_mprintf ("%s\tCONSTRAINT \"%s\" PRIMARY KEY (", prev_sql, xconstraint); free (xconstraint); sqlite3_free (prev_sql); prev_sql = sql; for (i = 0; i < cloner->pk_count; i++) { xconstraint = gaiaDoubleQuotedSql (get_pk_column (cloner, i)); if (i == 0) sql = sqlite3_mprintf ("%s%s", prev_sql, xconstraint); else sql = sqlite3_mprintf ("%s, %s", prev_sql, xconstraint); free (xconstraint); sqlite3_free (prev_sql); prev_sql = sql; } sql = sqlite3_mprintf ("%s)", prev_sql); sqlite3_free (prev_sql); prev_sql = sql; } if (cloner->with_fks) { /* cloning all Foreign Key definitions */ fk = cloner->first_fk; fk_no = 1; while (fk != NULL) { /* declaring all FOREIGN KEY CONSTRAINTs */ sql = sqlite3_mprintf ("%s,\n", prev_sql); sqlite3_free (prev_sql); prev_sql = sql; constraint = sqlite3_mprintf ("fk_%s_%d", cloner->out_table, fk_no++); xconstraint = gaiaDoubleQuotedSql (constraint); sqlite3_free (constraint); sql = sqlite3_mprintf ("%s\tCONSTRAINT \"%s\" FOREIGN KEY (", prev_sql, xconstraint); free (xconstraint); sqlite3_free (prev_sql); prev_sql = sql; fk_col = fk->first; while (fk_col != NULL) { xconstraint = gaiaDoubleQuotedSql (fk_col->from); if (fk_col == fk->first) sql = sqlite3_mprintf ("%s%s", prev_sql, xconstraint); else sql = sqlite3_mprintf ("%s, %s", prev_sql, xconstraint); free (xconstraint); sqlite3_free (prev_sql); prev_sql = sql; fk_col = fk_col->next; } xtable = gaiaDoubleQuotedSql (fk->references); sql = sqlite3_mprintf ("%s) REFERENCES \"%s\" (", prev_sql, xtable); free (xtable); sqlite3_free (prev_sql); prev_sql = sql; fk_col = fk->first; while (fk_col != NULL) { xconstraint = gaiaDoubleQuotedSql (fk_col->to); if (fk_col == fk->first) sql = sqlite3_mprintf ("%s%s", prev_sql, xconstraint); else sql = sqlite3_mprintf ("%s, %s", prev_sql, xconstraint); free (xconstraint); sqlite3_free (prev_sql); prev_sql = sql; fk_col = fk_col->next; } sql = sqlite3_mprintf ("%s)", prev_sql); sqlite3_free (prev_sql); prev_sql = sql; fk = fk->next; } } sql = sqlite3_mprintf ("%s\n)", prev_sql); sqlite3_free (prev_sql); ret = sqlite3_exec (cloner->sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } column = cloner->first_col; while (column != NULL) { if (column->geometry != NULL && !(column->ignore)) { /* adding a Geometry Column */ if (!create_geometry (cloner->sqlite, cloner->out_table, column)) return 0; } column = column->next; } index = cloner->first_idx; fk_no = 1; while (index != NULL) { /* creating an Index */ constraint = sqlite3_mprintf ("idx_%s_%d", cloner->out_table, fk_no++); xconstraint = gaiaDoubleQuotedSql (constraint); xtable = gaiaDoubleQuotedSql (cloner->out_table); if (index->unique) sql = sqlite3_mprintf ("CREATE UNIQUE INDEX main.\"%s\" ON \"%s\"", xconstraint, xtable); else sql = sqlite3_mprintf ("CREATE INDEX main.\"%s\" ON \"%s\"", xconstraint, xtable); free (xconstraint); free (xtable); prev_sql = sql; idx_column = index->first; first = 1; while (idx_column != NULL) { xcolumn = gaiaDoubleQuotedSql (idx_column->name); if (first) { sql = sqlite3_mprintf ("%s (\"%s\"", prev_sql, xcolumn); first = 0; } else sql = sqlite3_mprintf ("%s, \"%s\"", prev_sql, xcolumn); free (xcolumn); sqlite3_free (prev_sql); prev_sql = sql; idx_column = idx_column->next; } sql = sqlite3_mprintf ("%s)\n", prev_sql); sqlite3_free (prev_sql); ret = sqlite3_exec (cloner->sqlite, sql, NULL, NULL, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } index = index->next; } if (cloner->with_triggers) { struct aux_trigger *trigger; check_existing_triggers (cloner); trigger = cloner->first_trigger; while (trigger != NULL) { if (trigger->already_existing) { /* skipping already defined triggers */ trigger = trigger->next; continue; } /* adding a trigger */ ret = sqlite3_exec (cloner->sqlite, trigger->sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TRIGGER error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } trigger = trigger->next; } } return 1; } static int copy_rows (struct aux_cloner *cloner) { /* copying all rows from the origin into the destination Table */ sqlite3_stmt *stmt_in = NULL; sqlite3_stmt *stmt_out = NULL; int ret; struct aux_column *column; char *sql; char *prev_sql; char *xcolumn; char *xtable; char *xdb_prefix; int first = 1; /* composing the SELECT statement */ sql = sqlite3_mprintf ("SELECT "); prev_sql = sql; column = cloner->first_col; while (column != NULL) { if (column->ignore) { /* skipping columns to be IGNORED */ column = column->next; continue; } xcolumn = gaiaDoubleQuotedSql (column->name); if (first) { sql = sqlite3_mprintf ("%s\"%s\"", prev_sql, xcolumn); first = 0; } else sql = sqlite3_mprintf ("%s, \"%s\"", prev_sql, xcolumn); free (xcolumn); sqlite3_free (prev_sql); prev_sql = sql; column = column->next; } xdb_prefix = gaiaDoubleQuotedSql (cloner->db_prefix); xtable = gaiaDoubleQuotedSql (cloner->in_table); sql = sqlite3_mprintf ("%s FROM \"%s\".\"%s\"", prev_sql, xdb_prefix, xtable); free (xdb_prefix); free (xtable); /* compiling the SELECT FROM statement */ ret = sqlite3_prepare_v2 (cloner->sqlite, sql, strlen (sql), &stmt_in, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("SELECT FROM: \"%s\"\n", sqlite3_errmsg (cloner->sqlite)); goto error; } /* composing the INSERT INTO statement */ xtable = gaiaDoubleQuotedSql (cloner->out_table); sql = sqlite3_mprintf ("INSERT INTO \"%s\" (", xtable); free (xtable); prev_sql = sql; first = 1; column = cloner->first_col; while (column != NULL) { if (column->ignore) { /* skipping columns to be IGNORED */ column = column->next; continue; } xcolumn = gaiaDoubleQuotedSql (column->name); if (first) { sql = sqlite3_mprintf ("%s\"%s\"", prev_sql, xcolumn); first = 0; } else sql = sqlite3_mprintf ("%s, \"%s\"", prev_sql, xcolumn); free (xcolumn); sqlite3_free (prev_sql); prev_sql = sql; column = column->next; } sql = sqlite3_mprintf ("%s) VALUES (", prev_sql); sqlite3_free (prev_sql); prev_sql = sql; first = 1; column = cloner->first_col; while (column != NULL) { if (column->ignore) { /* skipping columns to be IGNORED */ column = column->next; continue; } if (column->geometry != NULL) { /* Geometry column */ if (column->geometry->cast2multi) { /* casting to MultiType */ const char *expr = "CastToMulti(?)"; if (first) { sql = sqlite3_mprintf ("%s%s", prev_sql, expr); first = 0; } else sql = sqlite3_mprintf ("%s, %s", prev_sql, expr); sqlite3_free (prev_sql); prev_sql = sql; column = column->next; continue; } } if (first) { sql = sqlite3_mprintf ("%s?", prev_sql); first = 0; } else sql = sqlite3_mprintf ("%s, ?", prev_sql); sqlite3_free (prev_sql); prev_sql = sql; column = column->next; } sql = sqlite3_mprintf ("%s)", prev_sql); sqlite3_free (prev_sql); /* compiling the INSERT INTO statement */ ret = sqlite3_prepare_v2 (cloner->sqlite, sql, strlen (sql), &stmt_out, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("INSERT INTO: \"%s\"\n", sqlite3_errmsg (cloner->sqlite)); goto error; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt_in); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* copying values between input and output tables */ int pos = 0; sqlite3_reset (stmt_out); sqlite3_clear_bindings (stmt_out); column = cloner->first_col; while (column != NULL) { if (column->ignore) { /* skipping columns to be IGNORED */ column = column->next; continue; } if (cloner->resequence && cloner->pk_count == 1 && cloner->autoincrement && column->pk) { /* resequencing an AUTOINCREMENT PK */ sqlite3_bind_null (stmt_out, pos + 1); pos++; column = column->next; continue; } if (sqlite3_column_type (stmt_in, pos) == SQLITE_INTEGER) sqlite3_bind_int64 (stmt_out, pos + 1, sqlite3_column_int64 (stmt_in, pos)); else if (sqlite3_column_type (stmt_in, pos) == SQLITE_FLOAT) sqlite3_bind_double (stmt_out, pos + 1, sqlite3_column_double (stmt_in, pos)); else if (sqlite3_column_type (stmt_in, pos) == SQLITE_TEXT) sqlite3_bind_text (stmt_out, pos + 1, (const char *) sqlite3_column_text (stmt_in, pos), sqlite3_column_bytes (stmt_in, pos), SQLITE_STATIC); else if (sqlite3_column_type (stmt_in, pos) == SQLITE_BLOB) sqlite3_bind_blob (stmt_out, pos + 1, sqlite3_column_blob (stmt_in, pos), sqlite3_column_bytes (stmt_in, pos), SQLITE_STATIC); else sqlite3_bind_null (stmt_out, pos + 1); pos++; column = column->next; } /* inserting into the output table */ ret = sqlite3_step (stmt_out); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("OUTPUT step error: <%s>\n", sqlite3_errmsg (cloner->sqlite)); goto error; } } else { spatialite_e ("INPUT step error: <%s>\n", sqlite3_errmsg (cloner->sqlite)); goto error; } } sqlite3_finalize (stmt_in); sqlite3_finalize (stmt_out); return 1; error: if (stmt_in != NULL) sqlite3_finalize (stmt_in); if (stmt_out != NULL) sqlite3_finalize (stmt_out); return 0; } static void add_geometry (struct aux_cloner *cloner, const char *name, int type, int dims, int srid, int spatial_index) { /* adding a Geometry Column definition */ struct aux_column *pc = cloner->first_col; while (pc != NULL) { if (strcasecmp (pc->name, name) == 0) { struct aux_geometry *geom = malloc (sizeof (struct aux_geometry)); geom->type = type; geom->dims = dims; geom->srid = srid; geom->spatial_index = spatial_index; geom->cast2multi = 0; geom->already_existing = 0; if (pc->geometry != NULL) free (pc->geometry); pc->geometry = geom; return; } pc = pc->next; } } static void mark_existing_geometry (struct aux_cloner *cloner, const char *name, int type, int dims, int srid) { /* marking an existing Geometry Column definition */ struct aux_column *pc = cloner->first_col; while (pc != NULL) { if (strcasecmp (pc->name, name) == 0) { if (pc->geometry == NULL) { /* gosh, it's not a Geometry */ pc->mismatching = 1; return; } if (pc->geometry->type == type && pc->geometry->dims == dims && pc->geometry->srid == srid) { /* matching arguments: confirmed */ pc->geometry->already_existing = 1; return; } /* different arguments: invalid */ pc->mismatching = 1; return; } pc = pc->next; } } static void add_trigger (struct aux_cloner *cloner, const char *name, const char *sql) { /* adding a Trigger definition */ int len; struct aux_trigger *trigger = malloc (sizeof (struct aux_trigger)); len = strlen (name); trigger->name = malloc (len + 1); strcpy (trigger->name, name); len = strlen (sql); trigger->sql = malloc (len + 1); strcpy (trigger->sql, sql); trigger->already_existing = 0; trigger->next = NULL; /* updating the linked list */ if (cloner->first_trigger == NULL) cloner->first_trigger = trigger; if (cloner->last_trigger != NULL) cloner->last_trigger->next = trigger; cloner->last_trigger = trigger; } static void add_fk_columns (struct aux_foreign_key *fk, struct aux_column *first_col, const char *from, const char *to) { /* adding Columns correspondencies into a Foreign Key definition */ int len; struct aux_column *column; struct aux_fk_columns *col = malloc (sizeof (struct aux_fk_columns)); len = strlen (from); col->from = malloc (len + 1); strcpy (col->from, from); len = strlen (to); col->to = malloc (len + 1); strcpy (col->to, to); col->next = NULL; /* updating the linked list */ if (fk->first == NULL) fk->first = col; if (fk->last != NULL) fk->last->next = col; fk->last = col; /* marking the column as a Foreign Key */ column = first_col; while (column != NULL) { if (strcasecmp (column->name, from) == 0) { column->fk = 1; break; } column = column->next; } } static void add_foreign_key (struct aux_cloner *cloner, int id, const char *references, const char *from, const char *to, const char *on_update, const char *on_delete, const char *match) { /* adding a Foreign Key definition */ int len; struct aux_foreign_key *fk; if (cloner->last_fk != NULL) { if (cloner->last_fk->id == id) { /* continuing with the latest FK */ add_fk_columns (cloner->last_fk, cloner->first_col, from, to); return; } } fk = malloc (sizeof (struct aux_foreign_key)); fk->id = id; fk->name = NULL; len = strlen (references); fk->references = malloc (len + 1); strcpy (fk->references, references); fk->on_update = NULL; fk->on_delete = NULL; fk->match = NULL; if (on_update != NULL) { len = strlen (on_update); fk->on_update = malloc (len + 1); strcpy (fk->on_update, on_update); } if (on_delete != NULL) { len = strlen (on_delete); fk->on_delete = malloc (len + 1); strcpy (fk->on_delete, on_delete); } if (match != NULL) { len = strlen (match); fk->match = malloc (len + 1); strcpy (fk->match, match); } fk->first = NULL; fk->last = NULL; fk->next = NULL; add_fk_columns (fk, cloner->first_col, from, to); /* updating the linked list */ if (cloner->first_fk == NULL) cloner->first_fk = fk; if (cloner->last_fk != NULL) cloner->last_fk->next = fk; cloner->last_fk = fk; } static void add_index_column (struct aux_index *index, struct aux_column *first_col, const char *name) { /* adding a Column into an Index definition */ int len; struct aux_column *col; struct aux_index_column *column = malloc (sizeof (struct aux_index_column)); len = strlen (name); column->name = malloc (len + 1); strcpy (column->name, name); column->next = NULL; /* updating the linked list */ if (index->first == NULL) index->first = column; if (index->last != NULL) index->last->next = column; index->last = column; /* marking the column as a Foreign Key */ col = first_col; while (col != NULL) { if (strcasecmp (col->name, name) == 0) { col->idx = 1; break; } col = col->next; } } static struct aux_index * add_index (struct aux_cloner *cloner, const char *name, int unique) { /* adding an Index definition */ int len; struct aux_index *index = malloc (sizeof (struct aux_index)); len = strlen (name); index->name = malloc (len + 1); strcpy (index->name, name); index->unique = unique; index->first = NULL; index->last = NULL; index->next = NULL; /* updating the linked list */ if (cloner->first_idx == NULL) cloner->first_idx = index; if (cloner->last_idx != NULL) cloner->last_idx->next = index; cloner->last_idx = index; return index; } static void add_column (struct aux_cloner *cloner, const char *name, const char *type, int notnull, const char *deflt, int pk) { /* adding a Column definition */ int len; struct aux_column *column = malloc (sizeof (struct aux_column)); len = strlen (name); column->name = malloc (len + 1); strcpy (column->name, name); len = strlen (type); column->type = malloc (len + 1); strcpy (column->type, type); column->notnull = notnull; if (deflt == NULL) column->deflt = NULL; else { len = strlen (deflt); column->deflt = malloc (len + 1); strcpy (column->deflt, deflt); } column->pk = pk; column->fk = 0; column->idx = 0; column->geometry = NULL; column->ignore = 0; column->already_existing = 0; column->mismatching = 0; column->next = NULL; /* updating the linked list */ if (cloner->first_col == NULL) cloner->first_col = column; if (cloner->last_col != NULL) cloner->last_col->next = column; cloner->last_col = column; if (pk) { struct aux_pk_column *ppk = malloc (sizeof (struct aux_pk_column)); ppk->column = column; ppk->next = NULL; /* updating the linked list */ if (cloner->first_pk == NULL) cloner->first_pk = ppk; if (cloner->last_pk != NULL) cloner->last_pk->next = ppk; cloner->last_pk = ppk; cloner->pk_count += 1; } } static void mark_existing_column (struct aux_cloner *cloner, const char *name) { /* marking an existing Column */ struct aux_column *column = cloner->first_col; while (column != NULL) { if (strcasecmp (column->name, name) == 0) { column->already_existing = 1; return; } column = column->next; } } static int check_input_table_columns (struct aux_cloner *cloner) { /* exploring the input table - Columns */ char *sql; int ret; int i; char **results; int rows; int columns; const char *name; const char *type; int notnull; const char *deflt; int pk; char *xprefix; char *xtable; xprefix = gaiaDoubleQuotedSql (cloner->db_prefix); xtable = gaiaDoubleQuotedSql (cloner->in_table); sql = sqlite3_mprintf ("PRAGMA \"%s\".table_info(\"%s\")", xprefix, xtable); free (xprefix); free (xtable); ret = sqlite3_get_table (cloner->sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; type = results[(i * columns) + 2]; notnull = atoi (results[(i * columns) + 3]); deflt = results[(i * columns) + 4]; pk = atoi (results[(i * columns) + 5]); add_column (cloner, name, type, notnull, deflt, pk); } } sqlite3_free_table (results); if (cloner->first_col == NULL) { spatialite_e ("CloneTable: input table \"%s\".\"%s\" does not exist\n", cloner->db_prefix, cloner->in_table); goto error; } return 1; error: return 0; } static void check_input_table_autoincrement (struct aux_cloner *cloner) { /* exploring the input table AUTOINCREMENT property */ char *sql; int ret; int i; char **results; int rows; int columns; char *xprefix; if (cloner->pk_count != 1) return; xprefix = gaiaDoubleQuotedSql (cloner->db_prefix); sql = sqlite3_mprintf ("SELECT Count(*) FROM \"%s\".sqlite_sequence " "WHERE Lower(name) = Lower(%Q)", xprefix, cloner->in_table); free (xprefix); ret = sqlite3_get_table (cloner->sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { if (atoi (results[(i * columns) + 0]) > 0) cloner->autoincrement = 1; } } sqlite3_free_table (results); } static void check_output_table_columns (struct aux_cloner *cloner) { /* exploring the output table - Columns */ char *sql; int ret; int i; char **results; int rows; int columns; const char *name; char *xtable; xtable = gaiaDoubleQuotedSql (cloner->out_table); sql = sqlite3_mprintf ("PRAGMA main.table_info(\"%s\")", xtable); free (xtable); ret = sqlite3_get_table (cloner->sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; mark_existing_column (cloner, name); } } sqlite3_free_table (results); } static void expand_index (struct aux_cloner *cloner, struct aux_index *index) { /* expanding an Index definitions */ char *sql; int ret; int i; char **results; int rows; int columns; const char *name; char *xprefix; char *xindex; xprefix = gaiaDoubleQuotedSql (cloner->db_prefix); xindex = gaiaDoubleQuotedSql (index->name); sql = sqlite3_mprintf ("PRAGMA \"%s\".index_info(\"%s\")", xprefix, xindex); free (xprefix); free (xindex); ret = sqlite3_get_table (cloner->sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 2]; add_index_column (index, cloner->first_col, name); } } sqlite3_free_table (results); } static void check_input_table_index_defs (struct aux_cloner *cloner) { /* exploring the input table - Index definitions */ char *sql; int ret; int i; char **results; int rows; int columns; const char *name; int unique; char *xprefix; char *xtable; struct aux_index *idx; xprefix = gaiaDoubleQuotedSql (cloner->db_prefix); xtable = gaiaDoubleQuotedSql (cloner->in_table); sql = sqlite3_mprintf ("PRAGMA \"%s\".index_list(\"%s\")", xprefix, xtable); free (xprefix); free (xtable); ret = sqlite3_get_table (cloner->sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strncasecmp (name, "sqlite_autoindex_", 17) == 0) { /* ignoring any AUTOINDEX defined by SQLite */ continue; } unique = atoi (results[(i * columns) + 2]); idx = add_index (cloner, name, unique); expand_index (cloner, idx); } } sqlite3_free_table (results); } static void check_input_table_foreign_keys (struct aux_cloner *cloner) { /* exploring the input table - Foreign Keys */ char *sql; int ret; int i; char **results; int rows; int columns; int id; const char *references; const char *from; const char *to; const char *on_update; const char *on_delete; const char *match; char *xprefix; char *xtable; xprefix = gaiaDoubleQuotedSql (cloner->db_prefix); xtable = gaiaDoubleQuotedSql (cloner->in_table); sql = sqlite3_mprintf ("PRAGMA \"%s\".foreign_key_list(\"%s\")", xprefix, xtable); free (xprefix); free (xtable); ret = sqlite3_get_table (cloner->sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { id = atoi (results[(i * columns) + 0]); references = results[(i * columns) + 2]; from = results[(i * columns) + 3]; to = results[(i * columns) + 4]; on_update = results[(i * columns) + 5]; on_delete = results[(i * columns) + 6]; match = results[(i * columns) + 7]; if (strcasecmp (on_update, "NO ACTION") == 0) on_update = NULL; if (strcasecmp (on_delete, "NO ACTION") == 0) on_delete = NULL; if (strcasecmp (match, "NONE") == 0) match = NULL; add_foreign_key (cloner, id, references, from, to, on_update, on_delete, match); } } sqlite3_free_table (results); } static void check_input_table_triggers (struct aux_cloner *cloner) { /* exploring the input table - Triggers */ char *sql; int ret; int i; char **results; int rows; int columns; const char *name; const char *sqlx; char *xprefix; xprefix = gaiaDoubleQuotedSql (cloner->db_prefix); sql = sqlite3_mprintf ("SELECT name, sql FROM \"%s\".sqlite_master " "WHERE type = 'trigger' AND Lower(tbl_name) = Lower(%Q)", xprefix, cloner->in_table); free (xprefix); ret = sqlite3_get_table (cloner->sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 0]; sqlx = results[(i * columns) + 1]; add_trigger (cloner, name, sqlx); } } sqlite3_free_table (results); } static void check_input_table_geometries (struct aux_cloner *cloner) { /* exploring the input table - Geometries */ char *sql; int ret; int i; char **results; int rows; int columns; const char *name; int type; int dims; int srid; int spatial_index; char *xprefix; xprefix = gaiaDoubleQuotedSql (cloner->db_prefix); sql = sqlite3_mprintf ("SELECT f_geometry_column, geometry_type, " "coord_dimension, srid, spatial_index_enabled " "FROM \"%s\".geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q)", xprefix, cloner->in_table); free (xprefix); ret = sqlite3_get_table (cloner->sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 0]; type = atoi (results[(i * columns) + 1]); dims = atoi (results[(i * columns) + 2]); srid = atoi (results[(i * columns) + 3]); spatial_index = atoi (results[(i * columns) + 4]); add_geometry (cloner, name, type, dims, srid, spatial_index); } } sqlite3_free_table (results); } static void check_output_table_geometries (struct aux_cloner *cloner) { /* exploring the output table - Geometries */ char *sql; int ret; int i; char **results; int rows; int columns; const char *name; int type; int dims; int srid; sql = sqlite3_mprintf ("SELECT f_geometry_column, geometry_type, " "coord_dimension, srid, spatial_index_enabled " "FROM main.geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q)", cloner->out_table); ret = sqlite3_get_table (cloner->sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 0]; type = atoi (results[(i * columns) + 1]); dims = atoi (results[(i * columns) + 2]); srid = atoi (results[(i * columns) + 3]); mark_existing_geometry (cloner, name, type, dims, srid); } } sqlite3_free_table (results); } static void free_trigger (struct aux_trigger *trigger) { /* memory cleanup - destroying a Trigger object */ if (trigger == NULL) return; if (trigger->name != NULL) free (trigger->name); if (trigger->sql != NULL) free (trigger->sql); free (trigger); } static void free_fk_columns (struct aux_fk_columns *col) { /* memory cleanup - destroying a Foreign Key Columns object */ if (col == NULL) return; if (col->from != NULL) free (col->from); if (col->to != NULL) free (col->to); free (col); } static void free_foreign_key (struct aux_foreign_key *fk) { /* memory cleanup - destroying a Foreign Key object */ struct aux_fk_columns *pc; struct aux_fk_columns *pcn; if (fk == NULL) return; if (fk->name != NULL) free (fk->name); if (fk->references != NULL) free (fk->references); if (fk->on_update != NULL) free (fk->on_update); if (fk->on_delete != NULL) free (fk->on_delete); if (fk->match != NULL) free (fk->match); pc = fk->first; while (pc != NULL) { pcn = pc->next; free_fk_columns (pc); pc = pcn; } free (fk); } static void free_index_column (struct aux_index_column *column) { /* memory cleanup - destroying an Index Column object */ if (column == NULL) return; if (column->name != NULL) free (column->name); free (column); } static void free_index (struct aux_index *index) { /* memory cleanup - destroying an Index object */ struct aux_index_column *pc; struct aux_index_column *pcn; if (index == NULL) return; if (index->name != NULL) free (index->name); pc = index->first; while (pc != NULL) { pcn = pc->next; free_index_column (pc); pc = pcn; } free (index); } static void free_column (struct aux_column *column) { /* memory cleanup - destroying a Column object */ if (column == NULL) return; if (column->name != NULL) free (column->name); if (column->type != NULL) free (column->type); if (column->deflt != NULL) free (column->deflt); if (column->geometry != NULL) free (column->geometry); free (column); } static void free_cloner (struct aux_cloner *cloner) { /* memory cleanup - destroying a Cloner object */ struct aux_column *pc; struct aux_column *pcn; struct aux_pk_column *ppk; struct aux_pk_column *ppkn; struct aux_index *pi; struct aux_index *pin; struct aux_foreign_key *pfk; struct aux_foreign_key *pfkn; struct aux_trigger *ptrg; struct aux_trigger *ptrgn; if (cloner == NULL) return; if (cloner->db_prefix != NULL) free (cloner->db_prefix); if (cloner->in_table != NULL) free (cloner->in_table); if (cloner->out_table != NULL) free (cloner->out_table); pc = cloner->first_col; while (pc != NULL) { pcn = pc->next; free_column (pc); pc = pcn; } ppk = cloner->first_pk; while (ppk != NULL) { ppkn = ppk->next; free (ppk); ppk = ppkn; } pi = cloner->first_idx; while (pi != NULL) { pin = pi->next; free_index (pi); pi = pin; } pfk = cloner->first_fk; while (pfk != NULL) { pfkn = pfk->next; free_foreign_key (pfk); pfk = pfkn; } ptrg = cloner->first_trigger; while (ptrg != NULL) { ptrgn = ptrg->next; free_trigger (ptrg); ptrg = ptrgn; } if (cloner->sorted_pks != NULL) free (cloner->sorted_pks); free (cloner); } static int already_existing_table (sqlite3 * sqlite, const char *table) { /* testing if the target Table is already defined */ char *sql; int ret; int i; char **results; int rows; int columns; int count = 0; sql = sqlite3_mprintf ("SELECT Count(*) FROM main.sqlite_master " "WHERE type = 'table' AND Lower(name) = Lower(%Q)", table); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; if (rows < 1) ; else { for (i = 1; i <= rows; i++) count = atoi (results[(i * columns) + 0]); } sqlite3_free_table (results); stop: return count; } SPATIALITE_PRIVATE const void * gaiaAuxClonerCreate (const void *sqlite, const char *db_prefix, const char *in_table, const char *out_table) { /* creating a Cloner object */ int len; struct aux_cloner *cloner; if (checkSpatialMetaData ((sqlite3 *) sqlite) < 3) { spatialite_e ("CloneTable: obsolete DB-layout (< 4.0.0)\n"); return NULL; } cloner = malloc (sizeof (struct aux_cloner)); if (cloner == NULL) return NULL; cloner->sqlite = (sqlite3 *) sqlite; cloner->db_prefix = NULL; cloner->in_table = NULL; cloner->out_table = NULL; len = strlen (db_prefix); cloner->db_prefix = malloc (len + 1); strcpy (cloner->db_prefix, db_prefix); len = strlen (in_table); cloner->in_table = malloc (len + 1); strcpy (cloner->in_table, in_table); len = strlen (out_table); cloner->out_table = malloc (len + 1); strcpy (cloner->out_table, out_table); cloner->first_col = NULL; cloner->last_col = NULL; cloner->first_pk = NULL; cloner->last_pk = NULL; cloner->first_idx = NULL; cloner->last_idx = NULL; cloner->first_fk = NULL; cloner->last_fk = NULL; cloner->first_trigger = NULL; cloner->last_trigger = NULL; cloner->pk_count = 0; cloner->sorted_pks = NULL; cloner->autoincrement = 0; cloner->resequence = 0; cloner->with_fks = 0; cloner->with_triggers = 0; cloner->append = 0; cloner->already_existing = 0; /* exploring the input table - Columns */ if (!check_input_table_columns (cloner)) goto error; /* exploring PRIMARY KEY AUTOINCREMENT */ check_input_table_autoincrement (cloner); /* exploring the input table - Index definitions */ check_input_table_index_defs (cloner); /* exploring the input table - Foreign Key definitions */ check_input_table_foreign_keys (cloner); /* exploring the input table - Trigger definitions */ check_input_table_triggers (cloner); /* exploring the input table - Geometry definitions */ check_input_table_geometries (cloner); if (already_existing_table (cloner->sqlite, out_table)) cloner->already_existing = 1; return cloner; error: free_cloner (cloner); return NULL; } SPATIALITE_PRIVATE void gaiaAuxClonerDestroy (const void *handle) { /* destroying a Cloner object */ struct aux_cloner *cloner = (struct aux_cloner *) handle; if (handle == NULL) return; free_cloner (cloner); } static void ignore_column (struct aux_cloner *cloner, const char *column) { /* marking a Column to be ignored */ struct aux_column *pc = cloner->first_col; while (pc != NULL) { if (strcasecmp (pc->name, column) == 0) { pc->ignore = 1; return; } pc = pc->next; } } static int check_append (struct aux_cloner *cloner) { /* cheching for APPEND validity */ int error = 0; struct aux_column *column = cloner->first_col; while (column != NULL) { if (column->mismatching) error = 1; column = column->next; } if (error) return 0; return 1; } static void cast2multi_column (struct aux_cloner *cloner, const char *column) { /* marking a Geometry Column to be casted to MultiType */ struct aux_column *pc = cloner->first_col; while (pc != NULL) { if (strcasecmp (pc->name, column) == 0 && pc->geometry != NULL) { pc->geometry->cast2multi = 1; return; } pc = pc->next; } } SPATIALITE_PRIVATE void gaiaAuxClonerAddOption (const void *handle, const char *option) { /* parsing an Option */ struct aux_cloner *cloner = (struct aux_cloner *) handle; if (handle == NULL) return; if (strncasecmp (option, "::ignore::", 10) == 0) ignore_column (cloner, option + 10); if (strncasecmp (option, "::cast2multi::", 14) == 0) cast2multi_column (cloner, option + 14); if (strncasecmp (option, "::resequence::", 14) == 0) cloner->resequence = 1; if (strncasecmp (option, "::with-foreign-keys::", 21) == 0) cloner->with_fks = 1; if (strncasecmp (option, "::with-triggers::", 17) == 0) cloner->with_triggers = 1; if (strncasecmp (option, "::append::", 10) == 0) { cloner->append = 1; cloner->resequence = 1; } return; } SPATIALITE_PRIVATE int gaiaAuxClonerCheckValidTarget (const void *handle) { /* checking the Target Table for validity */ struct aux_cloner *cloner = (struct aux_cloner *) handle; if (handle == NULL) return 0; if (cloner->already_existing) { if (cloner->append) { /* exploring the output table - Columns */ check_output_table_columns (cloner); /* exploring the output table - Geometries */ check_output_table_geometries (cloner); /* checking for validity */ if (!check_append (cloner)) { spatialite_e ("CloneTable: output table \"%s\" can't support APPEND\n", cloner->out_table); return 0; } } else { spatialite_e ("CloneTable: output table \"%s\" already exists and APPEND is not enabled\n", cloner->out_table); return 0; } } return 1; } SPATIALITE_PRIVATE int gaiaAuxClonerExecute (const void *handle) { /* executing the actual work */ struct aux_cloner *cloner = (struct aux_cloner *) handle; if (handle == NULL) return 0; if (cloner->already_existing) { /* creating any further column if required */ if (!upgrade_output_table (cloner)) { spatialite_e ("CloneTable: unable to updgrade the output table \"%s\"\n", cloner->out_table); return 0; } } else { /* creating the output table */ if (!create_output_table (cloner)) { spatialite_e ("CloneTable: unable to create the output table \"%s\"\n", cloner->out_table); return 0; } } if (!copy_rows (cloner)) { spatialite_e ("CloneTable: unable to copy Table rows\n"); return 0; } return 1; } libspatialite-4.3.0a/src/spatialite/virtualspatialindex.c0000664000175000017500000006244212544707704020640 00000000000000/* virtualspatialindex.c -- SQLite3 extension [VIRTUAL TABLE RTree metahandler] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #define strncasecmp _strnicmp #endif /* not WIN32 */ static struct sqlite3_module my_spidx_module; /****************************************************************************** / / VirtualTable structs / ******************************************************************************/ typedef struct VirtualSpatialIndexStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ } VirtualSpatialIndex; typedef VirtualSpatialIndex *VirtualSpatialIndexPtr; typedef struct VirtualSpatialIndexCursorStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualSpatialIndexPtr pVtab; /* Virtual table of this cursor */ int eof; /* the EOF marker */ sqlite3_stmt *stmt; sqlite3_int64 CurrentRowId; } VirtualSpatialIndexCursor; typedef VirtualSpatialIndexCursor *VirtualSpatialIndexCursorPtr; static int vspidx_check_view_rtree (sqlite3 * sqlite, const char *table_name, const char *geom_column, char **real_table, char **real_geom) { /* checks if the required RTree is actually defined - SpatialView */ sqlite3_stmt *stmt; char *sql_statement; int ret; int count = 0; char *rt = NULL; char *rg = NULL; /* testing if views_geometry_columns exists */ sql_statement = sqlite3_mprintf ("SELECT tbl_name FROM sqlite_master " "WHERE type = 'table' AND tbl_name = 'views_geometry_columns'"); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count++; } sqlite3_finalize (stmt); if (count != 1) return 0; count = 0; /* attempting to find the RTree Geometry Column */ sql_statement = sqlite3_mprintf ("SELECT a.f_table_name, a.f_geometry_column " "FROM views_geometry_columns AS a " "JOIN geometry_columns AS b ON (" "Upper(a.f_table_name) = Upper(b.f_table_name) AND " "Upper(a.f_geometry_column) = Upper(b.f_geometry_column)) " "WHERE Upper(a.view_name) = Upper(%Q) " "AND Upper(a.view_geometry) = Upper(%Q) AND b.spatial_index_enabled = 1", table_name, geom_column); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *v = (const char *) sqlite3_column_text (stmt, 0); int len = sqlite3_column_bytes (stmt, 0); if (rt) free (rt); rt = malloc (len + 1); strcpy (rt, v); v = (const char *) sqlite3_column_text (stmt, 1); len = sqlite3_column_bytes (stmt, 1); if (rg) free (rg); rg = malloc (len + 1); strcpy (rg, v); count++; } } sqlite3_finalize (stmt); if (count != 1) return 0; if (!validateRowid (sqlite, table_name)) { free (rt); free (rg); return 0; } *real_table = rt; *real_geom = rg; return 1; } static int vspidx_check_rtree (sqlite3 * sqlite, const char *db_prefix, const char *table_name, const char *geom_column, char **real_table, char **real_geom) { /* checks if the required RTree is actually defined */ sqlite3_stmt *stmt; char *sql_statement; int ret; int count = 0; char *rt = NULL; char *rg = NULL; if (db_prefix == NULL) { sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column FROM geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) AND " "Upper(f_geometry_column) = Upper(%Q) AND spatial_index_enabled = 1", table_name, geom_column); } else { char *quoted_db = gaiaDoubleQuotedSql (db_prefix); sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column FROM \"%s\".geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) AND " "Upper(f_geometry_column) = Upper(%Q) AND spatial_index_enabled = 1", quoted_db, table_name, geom_column); free (quoted_db); } ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *v = (const char *) sqlite3_column_text (stmt, 0); int len = sqlite3_column_bytes (stmt, 0); if (rt) free (rt); rt = malloc (len + 1); strcpy (rt, v); v = (const char *) sqlite3_column_text (stmt, 1); len = sqlite3_column_bytes (stmt, 1); if (rg) free (rg); rg = malloc (len + 1); strcpy (rg, v); count++; } } sqlite3_finalize (stmt); if (count != 1) return vspidx_check_view_rtree (sqlite, table_name, geom_column, real_table, real_geom); else { *real_table = rt; *real_geom = rg; } return 1; } static int vspidx_find_view_rtree (sqlite3 * sqlite, const char *db_prefix, const char *table_name, char **real_table, char **real_geom) { /* attempts to find the corresponding RTree Geometry Column - SpatialView */ sqlite3_stmt *stmt; char *sql_statement; int ret; int count = 0; char *rt = NULL; char *rg = NULL; /* testing if views_geometry_columns exists */ if (db_prefix == NULL) { sql_statement = sqlite3_mprintf ("SELECT tbl_name FROM sqlite_master " "WHERE type = 'table' AND tbl_name = 'views_geometry_columns'"); } else { char *quoted_db = gaiaDoubleQuotedSql (db_prefix); sql_statement = sqlite3_mprintf ("SELECT tbl_name FROM \"%s\".sqlite_master " "WHERE type = 'table' AND tbl_name = 'views_geometry_columns'", quoted_db); free (quoted_db); } ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count++; } sqlite3_finalize (stmt); if (count != 1) return 0; count = 0; /* attempting to find the RTree Geometry Column */ if (db_prefix == NULL) { sql_statement = sqlite3_mprintf ("SELECT a.f_table_name, a.f_geometry_column " "FROM views_geometry_columns AS a " "JOIN geometry_columns AS b ON (" "Upper(a.f_table_name) = Upper(b.f_table_name) AND " "Upper(a.f_geometry_column) = Upper(b.f_geometry_column)) " "WHERE Upper(a.view_name) = Upper(%Q) AND b.spatial_index_enabled = 1", table_name); } else { char *quoted_db = gaiaDoubleQuotedSql (db_prefix); sql_statement = sqlite3_mprintf ("SELECT a.f_table_name, a.f_geometry_column " "FROM \"%s\".views_geometry_columns AS a " "JOIN \"%s\".geometry_columns AS b ON (" "Upper(a.f_table_name) = Upper(b.f_table_name) AND " "Upper(a.f_geometry_column) = Upper(b.f_geometry_column)) " "WHERE Upper(a.view_name) = Upper(%Q) AND b.spatial_index_enabled = 1", quoted_db, quoted_db, table_name); free (quoted_db); } ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *v = (const char *) sqlite3_column_text (stmt, 0); int len = sqlite3_column_bytes (stmt, 0); if (rt) free (rt); rt = malloc (len + 1); strcpy (rt, v); v = (const char *) sqlite3_column_text (stmt, 1); len = sqlite3_column_bytes (stmt, 1); if (rg) free (rg); rg = malloc (len + 1); strcpy (rg, v); count++; } } sqlite3_finalize (stmt); if (count != 1) return 0; *real_table = rt; *real_geom = rg; return 1; } static int vspidx_find_rtree (sqlite3 * sqlite, const char *db_prefix, const char *table_name, char **real_table, char **real_geom) { /* attempts to find the corresponding RTree Geometry Column */ sqlite3_stmt *stmt; char *sql_statement; int ret; int count = 0; char *rt = NULL; char *rg = NULL; if (db_prefix == NULL) { sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column FROM geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) AND spatial_index_enabled = 1", table_name); } else { char *quoted_db = gaiaDoubleQuotedSql (db_prefix); sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column FROM \"%s\".geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) AND spatial_index_enabled = 1", quoted_db, table_name); free (quoted_db); } ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *v = (const char *) sqlite3_column_text (stmt, 0); int len = sqlite3_column_bytes (stmt, 0); if (rt) free (rt); rt = malloc (len + 1); strcpy (rt, v); v = (const char *) sqlite3_column_text (stmt, 1); len = sqlite3_column_bytes (stmt, 1); if (rg) free (rg); rg = malloc (len + 1); strcpy (rg, v); count++; } } sqlite3_finalize (stmt); if (count != 1) return vspidx_find_view_rtree (sqlite, db_prefix, table_name, real_table, real_geom); else { *real_table = rt; *real_geom = rg; } return 1; } static void vspidx_parse_table_name (const char *tn, char **db_prefix, char **table_name) { /* attempting to extract an eventual DB prefix */ int i; int len = strlen (tn); int i_dot = -1; if (strncasecmp (tn, "DB=", 3) == 0) { int l_db; int l_tbl; for (i = 3; i < len; i++) { if (tn[i] == '.') { i_dot = i; break; } } if (i_dot > 1) { l_db = i_dot - 3; l_tbl = len - (i_dot + 1); *db_prefix = malloc (l_db + 1); memset (*db_prefix, '\0', l_db + 1); memcpy (*db_prefix, tn + 3, l_db); *table_name = malloc (l_tbl + 1); strcpy (*table_name, tn + i_dot + 1); return; } } *table_name = malloc (len + 1); strcpy (*table_name, tn); } static int vspidx_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table for R*Tree SpatialIndex metahandling */ VirtualSpatialIndexPtr p_vt; char *buf; char *vtable; char *xname; if (pAux) pAux = pAux; /* unused arg warning suppression */ if (argc == 3) { vtable = gaiaDequotedSql ((char *) argv[2]); } else { *pzErr = sqlite3_mprintf ("[VirtualSpatialIndex module] CREATE VIRTUAL: illegal arg list {void}\n"); return SQLITE_ERROR; } p_vt = (VirtualSpatialIndexPtr) sqlite3_malloc (sizeof (VirtualSpatialIndex)); if (!p_vt) return SQLITE_NOMEM; p_vt->db = db; p_vt->pModule = &my_spidx_module; p_vt->nRef = 0; p_vt->zErrMsg = NULL; /* preparing the COLUMNs for this VIRTUAL TABLE */ xname = gaiaDoubleQuotedSql (vtable); buf = sqlite3_mprintf ("CREATE TABLE \"%s\" (f_table_name TEXT, " "f_geometry_column TEXT, search_frame BLOB)", xname); free (xname); free (vtable); if (sqlite3_declare_vtab (db, buf) != SQLITE_OK) { sqlite3_free (buf); *pzErr = sqlite3_mprintf ("[VirtualSpatialIndex module] CREATE VIRTUAL: invalid SQL statement \"%s\"", buf); return SQLITE_ERROR; } sqlite3_free (buf); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } static int vspidx_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table - simply aliases vspidx_create() */ return vspidx_create (db, pAux, argc, argv, ppVTab, pzErr); } static int vspidx_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIdxInfo) { /* best index selection */ int i; int errors = 0; int err = 1; int table = 0; int geom = 0; int mbr = 0; if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ for (i = 0; i < pIdxInfo->nConstraint; i++) { /* verifying the constraints */ struct sqlite3_index_constraint *p = &(pIdxInfo->aConstraint[i]); if (p->usable) { if (p->iColumn == 0 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) table++; else if (p->iColumn == 1 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) geom++; else if (p->iColumn == 2 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) mbr++; else errors++; } } if (table == 1 && (geom == 0 || geom == 1) && mbr == 1 && errors == 0) { /* this one is a valid SpatialIndex query */ if (geom == 1) pIdxInfo->idxNum = 1; else pIdxInfo->idxNum = 2; pIdxInfo->estimatedCost = 1.0; for (i = 0; i < pIdxInfo->nConstraint; i++) { if (pIdxInfo->aConstraint[i].usable) { pIdxInfo->aConstraintUsage[i].argvIndex = i + 1; pIdxInfo->aConstraintUsage[i].omit = 1; } } err = 0; } if (err) { /* illegal query */ pIdxInfo->idxNum = 0; } return SQLITE_OK; } static int vspidx_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualSpatialIndexPtr p_vt = (VirtualSpatialIndexPtr) pVTab; sqlite3_free (p_vt); return SQLITE_OK; } static int vspidx_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases vspidx_disconnect() */ return vspidx_disconnect (pVTab); } static int vspidx_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ VirtualSpatialIndexCursorPtr cursor = (VirtualSpatialIndexCursorPtr) sqlite3_malloc (sizeof (VirtualSpatialIndexCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->pVtab = (VirtualSpatialIndexPtr) pVTab; cursor->stmt = NULL; cursor->eof = 1; *ppCursor = (sqlite3_vtab_cursor *) cursor; return SQLITE_OK; } static int vspidx_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ VirtualSpatialIndexCursorPtr cursor = (VirtualSpatialIndexCursorPtr) pCursor; if (cursor->stmt) sqlite3_finalize (cursor->stmt); sqlite3_free (pCursor); return SQLITE_OK; } static int vspidx_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ char *db_prefix = NULL; char *table_name = NULL; char *geom_column; char *xtable = NULL; char *xgeom = NULL; char *idx_name; char *idx_nameQ; char *sql_statement; gaiaGeomCollPtr geom = NULL; int ok_table = 0; int ok_geom = 0; const unsigned char *blob; int size; int exists; int ret; sqlite3_stmt *stmt; float minx; float miny; float maxx; float maxy; double tic; double tic2; VirtualSpatialIndexCursorPtr cursor = (VirtualSpatialIndexCursorPtr) pCursor; VirtualSpatialIndexPtr spidx = (VirtualSpatialIndexPtr) cursor->pVtab; if (idxStr) idxStr = idxStr; /* unused arg warning suppression */ cursor->eof = 1; if (idxNum == 1 && argc == 3) { /* retrieving the Table/Column/MBR params */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { char *tn = (char *) sqlite3_value_text (argv[0]); vspidx_parse_table_name (tn, &db_prefix, &table_name); ok_table = 1; } if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) { geom_column = (char *) sqlite3_value_text (argv[1]); ok_geom = 1; } if (sqlite3_value_type (argv[2]) == SQLITE_BLOB) { blob = sqlite3_value_blob (argv[2]); size = sqlite3_value_bytes (argv[2]); geom = gaiaFromSpatiaLiteBlobWkb (blob, size); } if (ok_table && ok_geom && geom) ; else { /* invalid args */ goto stop; } } if (idxNum == 2 && argc == 2) { /* retrieving the Table/MBR params */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { char *tn = (char *) sqlite3_value_text (argv[0]); vspidx_parse_table_name (tn, &db_prefix, &table_name); ok_table = 1; } if (sqlite3_value_type (argv[1]) == SQLITE_BLOB) { blob = sqlite3_value_blob (argv[1]); size = sqlite3_value_bytes (argv[1]); geom = gaiaFromSpatiaLiteBlobWkb (blob, size); } if (ok_table && geom) ; else { /* invalid args */ goto stop; } } /* checking if the corresponding R*Tree exists */ if (ok_geom) exists = vspidx_check_rtree (spidx->db, db_prefix, table_name, geom_column, &xtable, &xgeom); else exists = vspidx_find_rtree (spidx->db, db_prefix, table_name, &xtable, &xgeom); if (!exists) goto stop; /* building the RTree query */ idx_name = sqlite3_mprintf ("idx_%s_%s", xtable, xgeom); idx_nameQ = gaiaDoubleQuotedSql (idx_name); if (db_prefix == NULL) { sql_statement = sqlite3_mprintf ("SELECT pkid FROM \"%s\" WHERE " "xmin <= ? AND xmax >= ? AND ymin <= ? AND ymax >= ?", idx_nameQ); } else { char *quoted_db = gaiaDoubleQuotedSql (db_prefix); sql_statement = sqlite3_mprintf ("SELECT pkid FROM \"%s\".\"%s\" WHERE " "xmin <= ? AND xmax >= ? AND ymin <= ? AND ymax >= ?", quoted_db, idx_nameQ); free (quoted_db); } free (idx_nameQ); sqlite3_free (idx_name); ret = sqlite3_prepare_v2 (spidx->db, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto stop; /* binding stmt params [MBR] */ gaiaMbrGeometry (geom); /* adjusting the MBR so to compensate for DOUBLE/FLOAT truncations */ minx = (float) (geom->MinX); miny = (float) (geom->MinY); maxx = (float) (geom->MaxX); maxy = (float) (geom->MaxY); tic = fabs (geom->MinX - minx); tic2 = fabs (geom->MinY - miny); if (tic2 > tic) tic = tic2; tic2 = fabs (geom->MaxX - maxx); if (tic2 > tic) tic = tic2; tic2 = fabs (geom->MaxY - maxy); if (tic2 > tic) tic = tic2; tic *= 2.0; sqlite3_bind_double (stmt, 1, geom->MaxX + tic); sqlite3_bind_double (stmt, 2, geom->MinX - tic); sqlite3_bind_double (stmt, 3, geom->MaxY + tic); sqlite3_bind_double (stmt, 4, geom->MinY - tic); cursor->stmt = stmt; cursor->eof = 0; /* fetching the first ResultSet's row */ ret = sqlite3_step (cursor->stmt); if (ret == SQLITE_ROW) cursor->CurrentRowId = sqlite3_column_int64 (cursor->stmt, 0); else cursor->eof = 1; stop: if (geom) gaiaFreeGeomColl (geom); if (xtable) free (xtable); if (xgeom) free (xgeom); if (db_prefix) free (db_prefix); if (table_name) free (table_name); return SQLITE_OK; } static int vspidx_next (sqlite3_vtab_cursor * pCursor) { /* fetching a next row from cursor */ int ret; VirtualSpatialIndexCursorPtr cursor = (VirtualSpatialIndexCursorPtr) pCursor; ret = sqlite3_step (cursor->stmt); if (ret == SQLITE_ROW) cursor->CurrentRowId = sqlite3_column_int64 (cursor->stmt, 0); else cursor->eof = 1; return SQLITE_OK; } static int vspidx_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualSpatialIndexCursorPtr cursor = (VirtualSpatialIndexCursorPtr) pCursor; return cursor->eof; } static int vspidx_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ VirtualSpatialIndexCursorPtr cursor = (VirtualSpatialIndexCursorPtr) pCursor; if (cursor || column) cursor = cursor; /* unused arg warning suppression */ if (column) column = column; /* unused arg warning suppression */ sqlite3_result_null (pContext); return SQLITE_OK; } static int vspidx_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualSpatialIndexCursorPtr cursor = (VirtualSpatialIndexCursorPtr) pCursor; *pRowid = cursor->CurrentRowId; return SQLITE_OK; } static int vspidx_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ if (pRowid || argc || argv || pVTab) pRowid = pRowid; /* unused arg warning suppression */ /* read only datasource */ return SQLITE_READONLY; } static int vspidx_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vspidx_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vspidx_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vspidx_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vspidx_rename (sqlite3_vtab * pVTab, const char *zNew) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ if (zNew) zNew = zNew; /* unused arg warning suppression */ return SQLITE_ERROR; } static int spliteVirtualSpatialIndexInit (sqlite3 * db) { int rc = SQLITE_OK; my_spidx_module.iVersion = 1; my_spidx_module.xCreate = &vspidx_create; my_spidx_module.xConnect = &vspidx_connect; my_spidx_module.xBestIndex = &vspidx_best_index; my_spidx_module.xDisconnect = &vspidx_disconnect; my_spidx_module.xDestroy = &vspidx_destroy; my_spidx_module.xOpen = &vspidx_open; my_spidx_module.xClose = &vspidx_close; my_spidx_module.xFilter = &vspidx_filter; my_spidx_module.xNext = &vspidx_next; my_spidx_module.xEof = &vspidx_eof; my_spidx_module.xColumn = &vspidx_column; my_spidx_module.xRowid = &vspidx_rowid; my_spidx_module.xUpdate = &vspidx_update; my_spidx_module.xBegin = &vspidx_begin; my_spidx_module.xSync = &vspidx_sync; my_spidx_module.xCommit = &vspidx_commit; my_spidx_module.xRollback = &vspidx_rollback; my_spidx_module.xFindFunction = NULL; my_spidx_module.xRename = &vspidx_rename; sqlite3_create_module_v2 (db, "VirtualSpatialIndex", &my_spidx_module, NULL, 0); return rc; } SPATIALITE_PRIVATE int virtual_spatialindex_extension_init (void *xdb) { sqlite3 *db = (sqlite3 *) xdb; return spliteVirtualSpatialIndexInit (db); } libspatialite-4.3.0a/src/spatialite/srid_aux.c0000664000175000017500000013505712573314102016351 00000000000000/* srid_aux.c -- SRID auxiliary functions version 4.3.0, 2014 December 4 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2014-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: this module has been partly funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale (implementing XML support - ISO Metadata and SLD/SE Styles) */ #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ static int parse_proj4 (const char *proj4, const char *key, char **value) { /* attempts to find a key=value from within a Proj.4 geodetic string */ int len; char keybuf[1024]; const char *p = proj4; *value = NULL; if (proj4 == NULL) return 0; while (1) { /* searching the next key */ if (*p == ' ' || *p == '\t') { p++; continue; } if (*p == '+') { /* key begins here */ const char *v1 = NULL; const char *v2 = NULL; const char *k = p + 1; while (1) { /* searching the key termination */ if (*k == ' ' || *k == '=' || *k == '+' || *k == '\0') break; k++; } len = k - (p + 1); memset (keybuf, '\0', len + 1); memcpy (keybuf, p + 1, len); if (*k == '=') { v1 = v2 = k + 1; while (1) { /* searching the value termination */ if (*v2 == ' ' || *v2 == '+' || *v2 == '\0') break; v2++; } } if (strcasecmp (keybuf, key) == 0) { if (v1 != NULL) { len = v2 - v1; *value = malloc (len + 1); memset (*value, '\0', len + 1); memcpy (*value, v1, len); } return 1; } p = k; if (v1 != NULL) p = v2; continue; } return 0; /* unexpected char */ } } static int is_wkt_key (const char *key) { /* testing for a WKT keyword */ if (strcasecmp (key, "PROJCS") == 0) return 1; if (strcasecmp (key, "GEOGCS") == 0) return 1; if (strcasecmp (key, "PARAMETER") == 0) return 1; if (strcasecmp (key, "DATUM") == 0) return 1; if (strcasecmp (key, "SPHEROID") == 0) return 1; if (strcasecmp (key, "AUTHORITY") == 0) return 1; if (strcasecmp (key, "PRIMEM") == 0) return 1; if (strcasecmp (key, "UNIT") == 0) return 1; if (strcasecmp (key, "PROJECTION") == 0) return 1; if (strcasecmp (key, "TOWGS84") == 0) return 1; if (strcasecmp (key, "AXIS") == 0) return 1; return 0; } static char * check_wkt (const char *wkt, const char *key, char axis, char axis_mode) { /* parsing a WKT string so to find a given key:value */ char mux[16][128]; char *o; const char *p = wkt; int level = 0; int item = 0; int quoted = 0; int i; int axis_no = 0; if (wkt == NULL || key == NULL) return NULL; o = mux[item]; while (*p != '\0') { if (*p == '"') { /* quoted string */ if (quoted) { /* the quoted string ends here */ *o = '\0'; p++; quoted = 0; continue; } else { /* the quoted string starts here */ p++; quoted = 1; continue; } } if (quoted) { /* within a quoted string */ *o++ = *p++; continue; } if (*p == ' ' || *p == '\t' || *p == '\r' || *p == '\n') { /* skipping unquoted whitespaces */ p++; continue; } if (*p == ',') { *o = '\0'; item++; o = mux[item]; p++; continue; } if (*p == '[') { *o = '\0'; if (is_wkt_key (mux[item])) { char save[128]; strcpy (save, mux[item]); item--; if (strcasecmp (key, "AXIS") == 0 && level == 2 && item >= 2) { int len; char *result; if (strcasecmp (mux[0], key) == 0) { axis_no++; if ((axis_no == 1 && axis == SPLITE_AXIS_1) || (axis_no == 2 && axis == SPLITE_AXIS_2)) { if (axis_mode == SPLITE_AXIS_NAME) { len = strlen (mux[1]); result = malloc (len + 1); strcpy (result, mux[1]); return result; } if (axis_mode == SPLITE_AXIS_ORIENTATION) { len = strlen (mux[2]); result = malloc (len + 1); strcpy (result, mux[2]); return result; } } } } if ((strcasecmp (key, "DATUM") == 0 || strcasecmp (key, "SPHEROID") == 0 || strcasecmp (key, "PRIMEM") == 0) && item >= 1) { if (strcasecmp (mux[0], key) == 0) { int len = strlen (mux[1]); char *result = malloc (len + 1); strcpy (result, mux[1]); return result; } } if ((strcasecmp (key, "UNIT") == 0 || strcasecmp (key, "PROJECTION") == 0) && level == 2 && item >= 1) { if (strcasecmp (mux[0], key) == 0) { int len = strlen (mux[1]); char *result = malloc (len + 1); strcpy (result, mux[1]); return result; } } for (i = 0; i <= item; i++) strcpy (mux[0], save); item = 1; o = mux[1]; level++; p++; continue; } else for (i = 0; i <= item; i++) item = 0; o = mux[0]; level++; p++; continue; } if (*p == ']') { *o = '\0'; if (strcasecmp (key, "AXIS") == 0 && level == 2 && item >= 2) { int len; char *result; if (strcasecmp (mux[0], key) == 0) { axis_no++; if ((axis_no == 1 && axis == SPLITE_AXIS_1) || (axis_no == 2 && axis == SPLITE_AXIS_2)) { if (axis_mode == SPLITE_AXIS_NAME) { len = strlen (mux[1]); result = malloc (len + 1); strcpy (result, mux[1]); return result; } if (axis_mode == SPLITE_AXIS_ORIENTATION) { len = strlen (mux[2]); result = malloc (len + 1); strcpy (result, mux[2]); return result; } } } } if ((strcasecmp (key, "DATUM") == 0 || strcasecmp (key, "SPHEROID") == 0 || strcasecmp (key, "PRIMEM") == 0) && item >= 1) { if (strcasecmp (mux[0], key) == 0) { int len = strlen (mux[1]); char *result = malloc (len + 1); strcpy (result, mux[1]); return result; } } if ((strcasecmp (key, "UNIT") == 0 || strcasecmp (key, "PROJECTION") == 0) && level == 2 && item >= 1) { if (strcasecmp (mux[0], key) == 0) { int len = strlen (mux[1]); char *result = malloc (len + 1); strcpy (result, mux[1]); return result; } } for (i = 0; i <= item; i++) item = 0; o = mux[0]; level--; p++; continue; } *o++ = *p++; continue; } return NULL; } static int check_geographic_wkt (const char *wkt, int *geographic) { /* testing WKT: is geographic */ int len; char dummy[16]; const char *p = wkt; if (wkt == NULL) return 0; while (1) { /* skipping whitespaces */ if (*p == ' ' || *p == '\t' || *p == '\r' || *p == '\n') { p++; continue; } break; } len = strlen (p); if (len < 6) return 0; memset (dummy, '\0', 7); memcpy (dummy, p, 6); if (strcasecmp (dummy, "GEOGCS") == 0) *geographic = 1; else *geographic = 0; return 1; } static int check_projected_wkt (const char *wkt, int *projected) { /* testing WKT: is projected */ int len; char dummy[16]; const char *p = wkt; if (wkt == NULL) return 0; while (1) { /* skipping whitespaces */ if (*p == ' ' || *p == '\t' || *p == '\r' || *p == '\n') { p++; continue; } break; } len = strlen (p); if (len < 6) return 0; memset (dummy, '\0', 7); memcpy (dummy, p, 6); if (strcasecmp (dummy, "PROJCS") == 0) *projected = 1; else *projected = 0; return 1; } SPATIALITE_DECLARE int srid_is_geographic (sqlite3 * sqlite, int srid, int *geographic) { /* / checks a SRID definition from the "spatial_ref_sys" table / determining if it is of the geographic type */ int ok = 0; int ret; sqlite3_stmt *stmt = NULL; const char *sql; /* step #1: testing SPATIAL_REF_SYS_AUX */ sql = "SELECT is_geographic FROM spatial_ref_sys_aux WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_INTEGER) { int is_geographic = sqlite3_column_int (stmt, 0); if (is_geographic) *geographic = 1; else *geographic = 0; ok = 1; } } } sqlite3_finalize (stmt); stmt = NULL; if (ok) return 1; } /* step #2: testing WKT */ sql = "SELECT srtext FROM spatial_ref_sys WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { const char *wkt = (const char *) sqlite3_column_text (stmt, 0); if (check_geographic_wkt (wkt, geographic)) ok = 1; } } } sqlite3_finalize (stmt); stmt = NULL; if (ok) return 1; } /* step #3: testing Proj.4 */ sql = "SELECT proj4text FROM spatial_ref_sys WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { const char *proj4 = (const char *) sqlite3_column_text (stmt, 0); char *str = NULL; if (parse_proj4 (proj4, "proj", &str)) { if (strcasecmp (str, "latlong") == 0 || strcasecmp (str, "longlat") == 0) *geographic = 1; else *geographic = 0; ok = 1; } if (str) free (str); } } } sqlite3_finalize (stmt); stmt = NULL; if (ok) return 1; }; return 0; } SPATIALITE_DECLARE int srid_is_projected (sqlite3 * sqlite, int srid, int *projected) { /* / checks a SRID definition from the "spatial_ref_sys" table / determining if it is of the projected type */ int ok = 0; int ret; sqlite3_stmt *stmt = NULL; const char *sql; /* step #1: testing SPATIAL_REF_SYS_AUX */ sql = "SELECT is_geographic FROM spatial_ref_sys_aux WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_INTEGER) { int is_geographic = sqlite3_column_int (stmt, 0); if (is_geographic) *projected = 0; else *projected = 1; ok = 1; } } } sqlite3_finalize (stmt); stmt = NULL; if (ok) return 1; } /* step #2: testing WKT */ sql = "SELECT srtext FROM spatial_ref_sys WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { const char *wkt = (const char *) sqlite3_column_text (stmt, 0); if (check_projected_wkt (wkt, projected)) ok = 1; } } } sqlite3_finalize (stmt); stmt = NULL; if (ok) return 1; } /* step #3: testing Proj.4 */ sql = "SELECT proj4text FROM spatial_ref_sys WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { const char *proj4 = (const char *) sqlite3_column_text (stmt, 0); char *str = NULL; if (parse_proj4 (proj4, "proj", &str)) { if (strcasecmp (str, "latlong") == 0 || strcasecmp (str, "longlat") == 0) *projected = 0; else *projected = 1; ok = 1; } if (str) free (str); } } } sqlite3_finalize (stmt); stmt = NULL; if (ok) return 1; } return 0; } SPATIALITE_DECLARE int srid_has_flipped_axes (sqlite3 * sqlite, int srid, int *flipped) { /* / checks a SRS WKT definition from the "spatial_ref_sys" table / determining if the axes order is X-Y or Y-X */ int ok = 0; int ret; sqlite3_stmt *stmt = NULL; const char *sql; int geographic; char *axis_1_name = NULL; char *axis_1_orientation = NULL; char *axis_2_name = NULL; char *axis_2_orientation = NULL; int ok_from_wkt = 0; /* step #1: testing SPATIAL_REF_SYS_AUX */ sql = "SELECT has_flipped_axes FROM spatial_ref_sys_aux WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_INTEGER) { int has_flipped_axes = sqlite3_column_int (stmt, 0); if (has_flipped_axes) *flipped = 1; else *flipped = 0; ok = 1; } } } sqlite3_finalize (stmt); stmt = NULL; if (ok) return 1; } /* step #2: testing WKT */ axis_1_name = srid_get_axis (sqlite, srid, SPLITE_AXIS_1, SPLITE_AXIS_NAME); axis_1_orientation = srid_get_axis (sqlite, srid, SPLITE_AXIS_1, SPLITE_AXIS_ORIENTATION); axis_2_name = srid_get_axis (sqlite, srid, SPLITE_AXIS_2, SPLITE_AXIS_NAME); axis_2_orientation = srid_get_axis (sqlite, srid, SPLITE_AXIS_2, SPLITE_AXIS_ORIENTATION); if (axis_1_name != NULL && axis_1_orientation != NULL && axis_2_name != NULL && axis_2_orientation != NULL) { if ((strcasecmp (axis_1_orientation, "NORTH") == 0 || strcasecmp (axis_1_orientation, "SOUTH") == 0) && (strcasecmp (axis_2_orientation, "EAST") == 0 || strcasecmp (axis_2_orientation, "WEST") == 0)) *flipped = 1; else *flipped = 0; ok_from_wkt = 1; } if (axis_1_name) free (axis_1_name); if (axis_1_orientation) free (axis_1_orientation); if (axis_2_name) free (axis_2_name); if (axis_2_orientation) free (axis_2_orientation); if (ok_from_wkt) return 1; /* step #3: just assuming that every Geographic SRS has flipped axes */ ret = srid_is_geographic (sqlite, srid, &geographic); if (ret) { if (geographic) *flipped = 1; else *flipped = 0; return 1; } return 0; } SPATIALITE_DECLARE char * srid_get_spheroid (sqlite3 * sqlite, int srid) { /* / checks a SRID definition from the "spatial_ref_sys" table / then returning the corresponding Spheroid name */ char *result = NULL; int ret; sqlite3_stmt *stmt = NULL; const char *sql; /* step #1: testing SPATIAL_REF_SYS_AUX */ sql = "SELECT spheroid FROM spatial_ref_sys_aux WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { int len; const char *spheroid = (const char *) sqlite3_column_text (stmt, 0); len = strlen (spheroid); result = malloc (len + 1); strcpy (result, spheroid); } } } sqlite3_finalize (stmt); stmt = NULL; if (result != NULL) return result; } /* step #2: testing WKT */ sql = "SELECT srtext FROM spatial_ref_sys WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { const char *wkt = (const char *) sqlite3_column_text (stmt, 0); result = check_wkt (wkt, "SPHEROID", 0, 0); } } } sqlite3_finalize (stmt); stmt = NULL; if (result != NULL) return result; } /* step #3: testing Proj.4 */ sql = "SELECT proj4text FROM spatial_ref_sys WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { const char *proj4 = (const char *) sqlite3_column_text (stmt, 0); char *str = NULL; if (parse_proj4 (proj4, "ellps", &str)) { if (strcasecmp (str, "clrk80") == 0) { result = malloc (18); strcpy (result, "Clarke 1880 (RGS)"); } else if (strcasecmp (str, "clrk66") == 0) { result = malloc (12); strcpy (result, "Clarke 1866"); } else if (strcasecmp (str, "GRS80") == 0) { result = malloc (9); strcpy (result, "GRS 1980"); } else if (strcasecmp (str, "WGS84") == 0) { result = malloc (7); strcpy (result, "WGS 84"); } else if (strcasecmp (str, "krass") == 0) { result = malloc (16); strcpy (result, "Krassowsky 1940"); } else if (strcasecmp (str, "intl") == 0) { result = malloc (19); strcpy (result, "International 1924"); } else if (strcasecmp (str, "bess_nam") == 0) { result = malloc (21); strcpy (result, "Bessel Namibia (GLM)"); } else if (strcasecmp (str, "bessel") == 0) { result = malloc (12); strcpy (result, "Bessel 1841"); } else if (strcasecmp (str, "aust_SA") == 0) { result = malloc (29); strcpy (result, "Australian National Spheroid"); } else if (strcasecmp (str, "WGS72") == 0) { result = malloc (9); strcpy (result, "WGS_1972"); } else if (strcasecmp (str, "GRS67") == 0) { result = malloc (9); strcpy (result, "GRS 1967"); } else if (strcasecmp (str, "WGS66") == 0) { result = malloc (7); strcpy (result, "NWL 9D"); } else if (strcasecmp (str, "helmert") == 0) { result = malloc (13); strcpy (result, "Helmert 1906"); } else if (strcasecmp (str, "airy") == 0) { result = malloc (10); strcpy (result, "Airy 1830"); } else if (strcasecmp (str, "mod_airy") == 0) { result = malloc (19); strcpy (result, "Airy Modified 1849"); } else if (strcasecmp (str, "evrstSS") == 0) { result = malloc (31); strcpy (result, "Everest 1830 (1967 Definition)"); } } if (str) free (str); } } } sqlite3_finalize (stmt); stmt = NULL; if (result != NULL) return result; } return NULL; } SPATIALITE_DECLARE char * srid_get_prime_meridian (sqlite3 * sqlite, int srid) { /* / checks a SRID definition from the "spatial_ref_sys" table / then returning the corresponding Prime Meridian name */ char *result = NULL; int ret; sqlite3_stmt *stmt = NULL; const char *sql; /* step #1: testing SPATIAL_REF_SYS_AUX */ sql = "SELECT prime_meridian FROM spatial_ref_sys_aux WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { int len; const char *prime_meridian = (const char *) sqlite3_column_text (stmt, 0); len = strlen (prime_meridian); result = malloc (len + 1); strcpy (result, prime_meridian); } } } sqlite3_finalize (stmt); stmt = NULL; if (result != NULL) return result; } /* step #2: testing WKT */ sql = "SELECT srtext FROM spatial_ref_sys WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { const char *wkt = (const char *) sqlite3_column_text (stmt, 0); result = check_wkt (wkt, "PRIMEM", 0, 0); } } } sqlite3_finalize (stmt); stmt = NULL; if (result != NULL) return result; } /* step #3: testing Proj.4 */ sql = "SELECT proj4text FROM spatial_ref_sys WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { const char *proj4 = (const char *) sqlite3_column_text (stmt, 0); char *str = NULL; if (parse_proj4 (proj4, "pm", &str)) { if (strcasecmp (str, "jakarta") == 0) { result = malloc (8); strcpy (result, "Jakarta"); } else if (strcasecmp (str, "brussels") == 0) { result = malloc (9); strcpy (result, "Brussels"); } else if (strcasecmp (str, "rome") == 0) { result = malloc (5); strcpy (result, "Rome"); } else if (strcasecmp (str, "madrid") == 0) { result = malloc (7); strcpy (result, "Madrid"); } else if (strcasecmp (str, "ferro") == 0) { result = malloc (6); strcpy (result, "Ferro"); } else if (strcasecmp (str, "bern") == 0) { result = malloc (5); strcpy (result, "Bern"); } else if (strcasecmp (str, "bogota") == 0) { result = malloc (7); strcpy (result, "Bogota"); } else if (strcasecmp (str, "lisbon") == 0) { result = malloc (7); strcpy (result, "Lisbon"); } else if (strcasecmp (str, "paris") == 0) { result = malloc (6); strcpy (result, "Paris"); } else if (strcasecmp (str, "stockholm") == 0) { result = malloc (10); strcpy (result, "Stockholm"); } else if (strcasecmp (str, "athens") == 0) { result = malloc (7); strcpy (result, "Athens"); } else if (strcasecmp (str, "oslo") == 0) { result = malloc (5); strcpy (result, "Oslo"); } else if (strcasecmp (str, "2.337208333333333") == 0) { result = malloc (10); strcpy (result, "Paris RGS"); } } if (str) free (str); } } } sqlite3_finalize (stmt); stmt = NULL; if (result != NULL) return result; } return NULL; } SPATIALITE_DECLARE char * srid_get_projection (sqlite3 * sqlite, int srid) { /* / checks a SRID definition from the "spatial_ref_sys" table / then returning the corresponding Projection name */ char *result = NULL; int ret; sqlite3_stmt *stmt = NULL; const char *sql; /* step #1: testing SPATIAL_REF_SYS_AUX */ sql = "SELECT projection FROM spatial_ref_sys_aux WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { int len; const char *projection = (const char *) sqlite3_column_text (stmt, 0); len = strlen (projection); result = malloc (len + 1); strcpy (result, projection); } } } sqlite3_finalize (stmt); stmt = NULL; if (result != NULL) return result; } /* step #2: testing WKT */ sql = "SELECT srtext FROM spatial_ref_sys WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { const char *wkt = (const char *) sqlite3_column_text (stmt, 0); result = check_wkt (wkt, "PROJECTION", 0, 0); } } } sqlite3_finalize (stmt); stmt = NULL; if (result != NULL) return result; } /* step #3: testing Proj.4 */ sql = "SELECT proj4text FROM spatial_ref_sys WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { const char *proj4 = (const char *) sqlite3_column_text (stmt, 0); char *str = NULL; if (parse_proj4 (proj4, "proj", &str)) { if (strcasecmp (str, "tmerc") == 0) { result = malloc (20); strcpy (result, "Transverse_Mercator"); } else if (strcasecmp (str, "utm") == 0) { result = malloc (20); strcpy (result, "Transverse_Mercator"); } else if (strcasecmp (str, "merc") == 0) { result = malloc (13); strcpy (result, "Mercator_1SP"); } else if (strcasecmp (str, "stere") == 0) { result = malloc (20); strcpy (result, "Polar_Stereographic"); } else if (strcasecmp (str, "sterea") == 0) { result = malloc (22); strcpy (result, "Oblique_Stereographic"); } else if (strcasecmp (str, "somerc") == 0) { result = malloc (39); strcpy (result, "Hotine_Oblique_Mercator_Azimuth_Center"); } else if (strcasecmp (str, "omerc") == 0) { result = malloc (39); strcpy (result, "Hotine_Oblique_Mercator_Azimuth_Center"); } else if (strcasecmp (str, "krovak") == 0) { result = malloc (7); strcpy (result, "Krovak"); } else if (strcasecmp (str, "cass") == 0) { result = malloc (16); strcpy (result, "Cassini_Soldner"); } else if (strcasecmp (str, "lcc") == 0) { result = malloc (28); strcpy (result, "Lambert_Conformal_Conic_1SP"); } else if (strcasecmp (str, "lea") == 0) { result = malloc (29); strcpy (result, "Lambert_Azimuthal_Equal_Area"); } else if (strcasecmp (str, "laea") == 0) { result = malloc (29); strcpy (result, "Lambert_Azimuthal_Equal_Area"); } else if (strcasecmp (str, "aea") == 0) { result = malloc (24); strcpy (result, "Albers_Conic_Equal_Area"); } else if (strcasecmp (str, "cea") == 0) { result = malloc (23); strcpy (result, "Cylindrical_Equal_Area"); } else if (strcasecmp (str, "eqc") == 0) { result = malloc (16); strcpy (result, "Equirectangular"); } else if (strcasecmp (str, "poly") == 0) { result = malloc (10); strcpy (result, "Polyconic"); } else if (strcasecmp (str, "nzmg") == 0) { result = malloc (21); strcpy (result, "New_Zealand_Map_Grid"); } else if (strcasecmp (str, "longlat") == 0) { result = malloc (5); strcpy (result, "none"); } } if (str) free (str); } } } sqlite3_finalize (stmt); stmt = NULL; if (result != NULL) return result; } return NULL; } SPATIALITE_DECLARE char * srid_get_datum (sqlite3 * sqlite, int srid) { /* / checks a SRID definition from the "spatial_ref_sys" table / then returning the corresponding Unit name */ char *result = NULL; int ret; sqlite3_stmt *stmt = NULL; const char *sql; /* step #1: testing SPATIAL_REF_SYS_AUX */ sql = "SELECT datum FROM spatial_ref_sys_aux WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { int len; const char *datum = (const char *) sqlite3_column_text (stmt, 0); len = strlen (datum); result = malloc (len + 1); strcpy (result, datum); } } } sqlite3_finalize (stmt); stmt = NULL; if (result != NULL) return result; } /* step #2: testing WKT */ sql = "SELECT srtext FROM spatial_ref_sys WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { const char *wkt = (const char *) sqlite3_column_text (stmt, 0); result = check_wkt (wkt, "DATUM", 0, 0); } } } sqlite3_finalize (stmt); stmt = NULL; if (result != NULL) return result; } /* step #3: testing Proj.4 */ sql = "SELECT proj4text FROM spatial_ref_sys WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { const char *proj4 = (const char *) sqlite3_column_text (stmt, 0); char *str = NULL; if (parse_proj4 (proj4, "datum", &str)) { if (strcasecmp (str, "NAD27") == 0) { result = malloc (26); strcpy (result, "North_American_Datum_1927"); } else if (strcasecmp (str, "NAD83") == 0) { result = malloc (26); strcpy (result, "North_American_Datum_1983"); } else if (strcasecmp (str, "WGS84") == 0) { result = malloc (9); strcpy (result, "WGS_1984"); } else if (strcasecmp (str, "potsdam") == 0) { result = malloc (28); strcpy (result, "Deutsches_Hauptdreiecksnetz"); } else if (strcasecmp (str, "hermannskogel") == 0) { result = malloc (32); strcpy (result, "Militar_Geographische_Institute"); } else if (strcasecmp (str, "nzgd49") == 0) { result = malloc (32); strcpy (result, "New_Zealand_Geodetic_Datum_1949"); } else if (strcasecmp (str, "carthage") == 0) { result = malloc (9); strcpy (result, "Carthage"); } else if (strcasecmp (str, "GGRS87") == 0) { result = malloc (37); strcpy (result, "Greek_Geodetic_Reference_System_1987"); } else if (strcasecmp (str, "ire65") == 0) { result = malloc (5); strcpy (result, "TM65"); } else if (strcasecmp (str, "OSGB36") == 0) { result = malloc (10); strcpy (result, "OSGB_1936"); } } if (str) free (str); } } } sqlite3_finalize (stmt); stmt = NULL; if (result != NULL) return result; } return NULL; } SPATIALITE_DECLARE char * srid_get_unit (sqlite3 * sqlite, int srid) { /* / checks a SRID definition from the "spatial_ref_sys" table / then returning the corresponding Unit name */ char *result = NULL; int ret; sqlite3_stmt *stmt = NULL; const char *sql; /* step #1: testing SPATIAL_REF_SYS_AUX */ sql = "SELECT unit FROM spatial_ref_sys_aux WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { int len; const char *unit = (const char *) sqlite3_column_text (stmt, 0); len = strlen (unit); result = malloc (len + 1); strcpy (result, unit); } } } sqlite3_finalize (stmt); stmt = NULL; if (result != NULL) return result; } /* step #2: testing WKT */ sql = "SELECT srtext FROM spatial_ref_sys WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { const char *wkt = (const char *) sqlite3_column_text (stmt, 0); result = check_wkt (wkt, "UNIT", 0, 0); } } } sqlite3_finalize (stmt); stmt = NULL; if (result != NULL) return result; } /* step #3: testing Proj.4 */ sql = "SELECT proj4text FROM spatial_ref_sys WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { const char *proj4 = (const char *) sqlite3_column_text (stmt, 0); char *str = NULL; if (parse_proj4 (proj4, "units", &str)) { if (strcasecmp (str, "m") == 0) { result = malloc (6); strcpy (result, "metre"); } else if (strcasecmp (str, "us-ft") == 0) { result = malloc (16); strcpy (result, "US survery foot"); } else if (strcasecmp (str, "ft") == 0) { result = malloc (5); strcpy (result, "foot"); } } if (str) free (str); } } } sqlite3_finalize (stmt); stmt = NULL; if (result != NULL) return result; } return NULL; } SPATIALITE_DECLARE char * srid_get_axis (sqlite3 * sqlite, int srid, char axis, char mode) { /* / checks a SRID definition from the "spatial_ref_sys" table / then returning the corresponding Axis name or orientation */ char *result = NULL; int ret; sqlite3_stmt *stmt = NULL; const char *sql; if ((axis == SPLITE_AXIS_1 || axis == SPLITE_AXIS_2) && (mode == SPLITE_AXIS_NAME || mode == SPLITE_AXIS_ORIENTATION)) ; else return NULL; /* step #1: testing SPATIAL_REF_SYS_AUX */ if (axis == SPLITE_AXIS_1 && mode == SPLITE_AXIS_NAME) sql = "SELECT axis_1_name FROM spatial_ref_sys_aux WHERE srid = ?"; if (axis == SPLITE_AXIS_1 && mode == SPLITE_AXIS_ORIENTATION) sql = "SELECT axis_1_orientation FROM spatial_ref_sys_aux WHERE srid = ?"; if (axis == SPLITE_AXIS_2 && mode == SPLITE_AXIS_NAME) sql = "SELECT axis_2_name FROM spatial_ref_sys_aux WHERE srid = ?"; if (axis == SPLITE_AXIS_2 && mode == SPLITE_AXIS_ORIENTATION) sql = "SELECT axis_2_orientation FROM spatial_ref_sys_aux WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { int len; const char *unit = (const char *) sqlite3_column_text (stmt, 0); len = strlen (unit); result = malloc (len + 1); strcpy (result, unit); } } } sqlite3_finalize (stmt); stmt = NULL; if (result != NULL) return result; } /* step #2: testing WKT */ sql = "SELECT srtext FROM spatial_ref_sys WHERE srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret == SQLITE_OK) { sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) { const char *wkt = (const char *) sqlite3_column_text (stmt, 0); result = check_wkt (wkt, "AXIS", axis, mode); } } } sqlite3_finalize (stmt); stmt = NULL; if (result != NULL) return result; } return NULL; } static void getProjParamsFromSpatialReferenceSystemTable (sqlite3 * sqlite, int srid, char **proj_params) { /* retrives the PROJ params from SPATIAL_SYS_REF table, if possible */ char *sql; char **results; int rows; int columns; int i; int ret; int len; const char *proj4text; char *errMsg = NULL; *proj_params = NULL; sql = sqlite3_mprintf ("SELECT proj4text FROM spatial_ref_sys WHERE srid = %d", srid); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("unknown SRID: %d\t<%s>\n", srid, errMsg); sqlite3_free (errMsg); return; } for (i = 1; i <= rows; i++) { proj4text = results[(i * columns)]; if (proj4text != NULL) { len = strlen (proj4text); *proj_params = malloc (len + 1); strcpy (*proj_params, proj4text); } } if (*proj_params == NULL) { spatialite_e ("unknown SRID: %d\n", srid); } sqlite3_free_table (results); } static int coordinates_system_matches (struct epsg_defs *iter, const char *organization, const int organization_coordsys_id) { if (organization == NULL) { /* we didn't have a good lookup on the target database, so use best-efforts lookup */ return ((iter->srid == organization_coordsys_id) && (iter->proj4text != NULL)); } else { return ((strcasecmp (iter->auth_name, organization) == 0) && (iter->auth_srid == organization_coordsys_id) && (iter->proj4text != NULL)); } } static void getProjParamsFromGeopackageTable (sqlite3 * sqlite, int srid, char **proj_params) { char *sql; char **results; int rows; int columns; int ret; int len; char *errMsg = NULL; struct epsg_defs *first = NULL; struct epsg_defs *last = NULL; struct epsg_defs *iter = NULL; const char *organization = NULL; int organization_coordsys_id = -1; *proj_params = NULL; sql = sqlite3_mprintf ("SELECT organization, organization_coordsys_id FROM gpkg_spatial_ref_sys WHERE srs_id = %d", srid); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("unknown SRID: %d\t<%s>\n", srid, errMsg); sqlite3_free (errMsg); return; } if (rows == 0) { printf ("unknown SRID: %d\t(not in local database, ignoring authority and using best efforts...)\n", srid); organization_coordsys_id = srid; } else if (rows == 1) { /* there are 'columns' entries in the header row (result indexes 0 to columns - 1), and our data is the next row */ organization = results[columns]; errno = 0; organization_coordsys_id = strtol (results[columns + 1], NULL, 10); if ((errno != 0) || (organization_coordsys_id == 0)) { spatialite_e ("Invalid organization_coordsys_id format: %s\n", results[columns + 1]); sqlite3_free_table (results); return; } } else if (rows > 1) { spatialite_e ("invalid or corrupt gpkg_spatial_ref_sys table - duplicate entries for : %d\n", srid); sqlite3_free_table (results); return; } if (organization == NULL) { /* best-effort mode */ initialize_epsg (srid, &first, &last); } else { initialize_epsg (GAIA_EPSG_ANY, &first, &last); } iter = first; while (iter) { if (coordinates_system_matches (iter, organization, organization_coordsys_id)) { len = strlen (iter->proj4text); *proj_params = malloc (len + 1); strcpy (*proj_params, iter->proj4text); free_epsg (first); sqlite3_free_table (results); return; } iter = iter->next; } /* if we get here, we didn't find a match */ free_epsg (first); sqlite3_free_table (results); spatialite_e ("unknown SRID: %d\n", srid); } SPATIALITE_PRIVATE void getProjParamsEx (void *p_sqlite, int srid, char **proj_params, int gpkg_amphibious_mode) { /* retrives the PROJ params - generic interface */sqlite3 *sqlite = (sqlite3 *) p_sqlite; *proj_params = NULL; /* searching within "vanilla" spatial_reference_sys */ getProjParamsFromSpatialReferenceSystemTable (sqlite, srid, proj_params); if (*proj_params != NULL) return; /* last opportunity: search within GPKG srs */ getProjParamsFromGeopackageTable (sqlite, srid, proj_params); } SPATIALITE_PRIVATE void getProjParams (void *p_sqlite, int srid, char **proj_params) { /* * retrives the PROJ params from SPATIAL_SYS_REF table, if possible * convenience method - disabling GPKG amphibious mode */ getProjParamsEx (p_sqlite, srid, proj_params, 0); } libspatialite-4.3.0a/src/spatialite/spatialite_init.c0000664000175000017500000000742012544707704017721 00000000000000/* spatialite_init.c -- SQLite3 spatial extension version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Pepijn Van Eeckhoudt (implementing Android support) Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: this module has been partly funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale (exposing liblwgeom APIs as SpatiaLite own SQL functions) */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #ifndef OMIT_GEOS /* including GEOS */ #include #endif #ifndef LOADABLE_EXTENSION /* ordinary library, not loadable-extension */ static int init_spatialite_extension (sqlite3 * db, char **pzErrMsg, const void *pApi) { if (pApi == NULL) pApi = NULL; /* suppressing stupid compiler warnings */ /* setting the POSIX locale for numeric */ setlocale (LC_NUMERIC, "POSIX"); *pzErrMsg = NULL; register_spatialite_sql_functions (db, NULL); init_spatialite_virtualtables (db, NULL); /* setting a timeout handler */ sqlite3_busy_timeout (db, 5000); return 0; } SPATIALITE_DECLARE void spatialite_init (int verbose) { /* used when SQLite initializes as an ordinary lib OBSOLETE - strongly discouraged !!!!! always using spatialite_init_ex() as a replacement is warmly reccomended */ spatialite_initialize (); #ifndef OMIT_GEOS /* initializing GEOS */ initGEOS (geos_warning, geos_error); #endif /* end GEOS */ #ifdef POSTGIS_2_1 /* initializing liblwgeom from PostGIS 2.1.x (or later) */ splite_lwgeom_init (); #endif /* end POSTGIS_2_1 */ sqlite3_auto_extension ((void (*)(void)) init_spatialite_extension); spatialite_splash_screen (verbose); } SPATIALITE_DECLARE void spatialite_cleanup () { /* OBSOLETE - strongly discouraged !!!!! always using spatialite_cleanup_ex() as a replacement is warmly reccomended */ #ifndef OMIT_GEOS finishGEOS (); #endif #ifdef ENABLE_LWGEOM gaiaResetLwGeomMsg (); #endif sqlite3_reset_auto_extension (); } #endif libspatialite-4.3.0a/src/spatialite/metatables.c0000664000175000017500000065646012544707704016676 00000000000000/* metatables.c -- creating the metadata tables and related triggers version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Pepijn Van Eeckhoudt (implementing Android support) Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ struct spatial_index_str { /* a struct to implement a linked list of spatial-indexes */ char ValidRtree; char ValidCache; char *TableName; char *ColumnName; struct spatial_index_str *Next; }; static int testSpatiaLiteHistory (sqlite3 * sqlite) { /* internal utility function: / / checks if the SPATIALITE_HISTORY table already exists / */ int event_id = 0; int table_name = 0; int geometry_column = 0; int event = 0; int timestamp = 0; int ver_sqlite = 0; int ver_splite = 0; char sql[1024]; int ret; const char *name; int i; char **results; int rows; int columns; /* checking the SPATIALITE_HISTORY table */ strcpy (sql, "PRAGMA table_info(spatialite_history)"); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "event_id") == 0) event_id = 1; if (strcasecmp (name, "table_name") == 0) table_name = 1; if (strcasecmp (name, "geometry_column") == 0) geometry_column = 1; if (strcasecmp (name, "event") == 0) event = 1; if (strcasecmp (name, "timestamp") == 0) timestamp = 1; if (strcasecmp (name, "ver_sqlite") == 0) ver_sqlite = 1; if (strcasecmp (name, "ver_splite") == 0) ver_splite = 1; } } sqlite3_free_table (results); if (event_id && table_name && geometry_column && event && timestamp && ver_sqlite && ver_splite) return 1; return 0; } static int checkSpatiaLiteHistory (sqlite3 * sqlite) { /* internal utility function: / / checks if the SPATIALITE_HISTORY table already exists / if not, such table will then be created / */ char sql[1024]; char *errMsg = NULL; int ret; if (testSpatiaLiteHistory (sqlite)) return 1; /* creating the SPATIALITE_HISTORY table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "spatialite_history (\n"); strcat (sql, "event_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\n"); strcat (sql, "table_name TEXT NOT NULL,\n"); strcat (sql, "geometry_column TEXT,\n"); strcat (sql, "event TEXT NOT NULL,\n"); strcat (sql, "timestamp TEXT NOT NULL,\n"); strcat (sql, "ver_sqlite TEXT NOT NULL,\n"); strcat (sql, "ver_splite TEXT NOT NULL)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) return 0; if (testSpatiaLiteHistory (sqlite)) return 1; return 0; } SPATIALITE_PRIVATE void updateSpatiaLiteHistory (void *p_sqlite, const char *table, const char *geom, const char *operation) { /* inserting a row in SPATIALITE_HISTORY */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; char sql[2048]; sqlite3_stmt *stmt = NULL; int ret; if (checkSpatiaLiteHistory (sqlite) == 0) return; strcpy (sql, "INSERT INTO spatialite_history "); strcat (sql, "(event_id, table_name, geometry_column, event, timestamp, "); strcat (sql, "ver_sqlite, ver_splite) VALUES (NULL, ?, ?, ?, "); strcat (sql, "strftime('%Y-%m-%dT%H:%M:%fZ', 'now'), "); strcat (sql, "sqlite_version(), spatialite_version())"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n%s\n", sql, sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); if (!geom) sqlite3_bind_null (stmt, 2); else sqlite3_bind_text (stmt, 2, geom, strlen (geom), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, operation, strlen (operation), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) goto stop; spatialite_e ("SQL error: %s\n", sqlite3_errmsg (sqlite)); stop: if (stmt) sqlite3_finalize (stmt); } static int create_views_geometry_columns (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the VIEWS_GEOMETRY_COLUMNS table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "views_geometry_columns (\n"); strcat (sql, "view_name TEXT NOT NULL,\n"); strcat (sql, "view_geometry TEXT NOT NULL,\n"); strcat (sql, "view_rowid TEXT NOT NULL,\n"); strcat (sql, "f_table_name TEXT NOT NULL,\n"); strcat (sql, "f_geometry_column TEXT NOT NULL,\n"); strcat (sql, "read_only INTEGER NOT NULL,\n"); strcat (sql, "CONSTRAINT pk_geom_cols_views PRIMARY KEY "); strcat (sql, "(view_name, view_geometry),\n"); strcat (sql, "CONSTRAINT fk_views_geom_cols FOREIGN KEY "); strcat (sql, "(f_table_name, f_geometry_column) "); strcat (sql, "REFERENCES geometry_columns "); strcat (sql, "(f_table_name, f_geometry_column) "); strcat (sql, "ON DELETE CASCADE,\n"); strcat (sql, "CONSTRAINT ck_vw_rdonly CHECK (read_only IN "); strcat (sql, "(0,1)))"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating an INDEX supporting the GEOMETRY_COLUMNS FK */ strcpy (sql, "CREATE INDEX IF NOT EXISTS "); strcat (sql, "idx_viewsjoin ON views_geometry_columns\n"); strcat (sql, "(f_table_name, f_geometry_column)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VIEWS_GEOMETRY_COLUMNS triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_view_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "view_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "view_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: \n"); strcat (sql, "view_name value must be lower case')\n"); strcat (sql, "WHERE NEW.view_name <> lower(NEW.view_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_view_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "view_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "view_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "view_name value must be lower case')\n"); strcat (sql, "WHERE NEW.view_name <> lower(NEW.view_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_view_geometry_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "view_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: \n"); strcat (sql, "view_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "view_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.view_geometry <> lower(NEW.view_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_view_geometry_update\n"); strcat (sql, "BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "view_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: \n"); strcat (sql, "view_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "view_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.view_geometry <> lower(NEW.view_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_view_rowid_update\n"); strcat (sql, "BEFORE UPDATE OF 'view_rowid' ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "view_rowid value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "view_rowid value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_rowid LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "view_rowid value must be lower case')\n"); strcat (sql, "WHERE NEW.view_rowid <> lower(NEW.view_rowid);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_view_rowid_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "view_rowid value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_rowid LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: \n"); strcat (sql, "view_rowid value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_rowid LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "view_rowid value must be lower case')\n"); strcat (sql, "WHERE NEW.view_rowid <> lower(NEW.view_rowid);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_f_table_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: \n"); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_f_table_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_table_name' ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_f_geometry_column_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: \n"); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgc_f_geometry_column_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_geometry_column' ON 'views_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_virts_geometry_columns (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the VIRTS_GEOMETRY_COLUMNS table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "virts_geometry_columns (\n"); strcat (sql, "virt_name TEXT NOT NULL,\n"); strcat (sql, "virt_geometry TEXT NOT NULL,\n"); strcat (sql, "geometry_type INTEGER NOT NULL,\n"); strcat (sql, "coord_dimension INTEGER NOT NULL,\n"); strcat (sql, "srid INTEGER NOT NULL,\n"); strcat (sql, "CONSTRAINT pk_geom_cols_virts PRIMARY KEY "); strcat (sql, "(virt_name, virt_geometry),\n"); strcat (sql, "CONSTRAINT fk_vgc_srid FOREIGN KEY "); strcat (sql, "(srid) REFERENCES spatial_ref_sys (srid))"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating an INDEX supporting the SPATIAL_REF_SYS FK */ strcpy (sql, "CREATE INDEX IF NOT EXISTS "); strcat (sql, "idx_virtssrid ON virts_geometry_columns\n"); strcat (sql, "(srid)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VIRTS_GEOMETRY_COLUMNS triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgc_virt_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: "); strcat (sql, "virt_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: "); strcat (sql, "virt_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: \n"); strcat (sql, "virt_name value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_name <> lower(NEW.virt_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgc_virt_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: "); strcat (sql, "virt_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: "); strcat (sql, "virt_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: "); strcat (sql, "virt_name value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_name <> lower(NEW.virt_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgc_virt_geometry_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: "); strcat (sql, "virt_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: \n"); strcat (sql, "virt_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns violates constraint: "); strcat (sql, "virt_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_geometry <> lower(NEW.virt_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgc_virt_geometry_update\n"); strcat (sql, "BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: "); strcat (sql, "virt_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: \n"); strcat (sql, "virt_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns violates constraint: "); strcat (sql, "virt_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_geometry <> lower(NEW.virt_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgc_geometry_type_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'geometry_type must be one of "); strcat (sql, "0,1,2,3,4,5,6,7,"); strcat (sql, "1000,1001,1002,1003,1004,1005,1006,1007,"); strcat (sql, "2000,2001,2002,2003,2004,2005,2006,2007,"); strcat (sql, "3000,3001,3002,3003,3004,3005,3006,3007')\n"); strcat (sql, "WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,"); strcat (sql, "1000,1001,1002,1003,1004,1005,1006,1007,"); strcat (sql, "2000,2001,2002,2003,2004,2005,2006,2007,"); strcat (sql, "3000,3001,3002,3003,3004,3005,3006,3007));\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgc_geometry_type_update\n"); strcat (sql, "BEFORE UPDATE OF 'geometry_type' ON 'virts_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'geometry_type must be one of "); strcat (sql, "0,1,2,3,4,5,6,7,"); strcat (sql, "1000,1001,1002,1003,1004,1005,1006,1007,"); strcat (sql, "2000,2001,2002,2003,2004,2005,2006,2007,"); strcat (sql, "3000,3001,3002,3003,3004,3005,3006,3007')\n"); strcat (sql, "WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,"); strcat (sql, "1000,1001,1002,1003,1004,1005,1006,1007,"); strcat (sql, "2000,2001,2002,2003,2004,2005,2006,2007,"); strcat (sql, "3000,3001,3002,3003,3004,3005,3006,3007));\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgc_coord_dimension_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4')\n"); strcat (sql, "WHERE NOT(NEW.coord_dimension IN (2,3,4));\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgc_coord_dimension_update\n"); strcat (sql, "BEFORE UPDATE OF 'coord_dimension' ON 'virts_geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4')\n"); strcat (sql, "WHERE NOT(NEW.coord_dimension IN (2,3,4));\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_geometry_columns_statistics (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the GEOMETRY_COLUMNS_STATISTICS table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "geometry_columns_statistics (\n"); strcat (sql, "f_table_name TEXT NOT NULL,\n"); strcat (sql, "f_geometry_column TEXT NOT NULL,\n"); strcat (sql, "last_verified TIMESTAMP,\n"); strcat (sql, "row_count INTEGER,\n"); strcat (sql, "extent_min_x DOUBLE,\n"); strcat (sql, "extent_min_y DOUBLE,\n"); strcat (sql, "extent_max_x DOUBLE,\n"); strcat (sql, "extent_max_y DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_gc_statistics PRIMARY KEY "); strcat (sql, "(f_table_name, f_geometry_column),\n"); strcat (sql, "CONSTRAINT fk_gc_statistics FOREIGN KEY "); strcat (sql, "(f_table_name, f_geometry_column) REFERENCES "); strcat (sql, "geometry_columns (f_table_name, f_geometry_column) "); strcat (sql, "ON DELETE CASCADE)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the GEOMETRY_COLUMNS_STATISTICS triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcs_f_table_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: \n"); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcs_f_table_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: "); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcs_f_geometry_column_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: \n"); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_statistics violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcs_f_geometry_column_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: "); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_statistics violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_views_geometry_columns_statistics (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the VIEWS_GEOMETRY_COLUMNS_STATISTICS table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "views_geometry_columns_statistics (\n"); strcat (sql, "view_name TEXT NOT NULL,\n"); strcat (sql, "view_geometry TEXT NOT NULL,\n"); strcat (sql, "last_verified TIMESTAMP,\n"); strcat (sql, "row_count INTEGER,\n"); strcat (sql, "extent_min_x DOUBLE,\n"); strcat (sql, "extent_min_y DOUBLE,\n"); strcat (sql, "extent_max_x DOUBLE,\n"); strcat (sql, "extent_max_y DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_vwgc_statistics PRIMARY KEY "); strcat (sql, "(view_name, view_geometry),\n"); strcat (sql, "CONSTRAINT fk_vwgc_statistics FOREIGN KEY "); strcat (sql, "(view_name, view_geometry) REFERENCES "); strcat (sql, "views_geometry_columns (view_name, view_geometry) "); strcat (sql, "ON DELETE CASCADE)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VIEWS_GEOMETRY_COLUMNS_STATISTICS triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcs_view_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: "); strcat (sql, "view_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: "); strcat (sql, "view_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: \n"); strcat (sql, "view_name value must be lower case')\n"); strcat (sql, "WHERE NEW.view_name <> lower(NEW.view_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcs_view_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: "); strcat (sql, "view_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: "); strcat (sql, "view_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: "); strcat (sql, "view_name value must be lower case')\n"); strcat (sql, "WHERE NEW.view_name <> lower(NEW.view_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcs_view_geometry_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: "); strcat (sql, "view_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: \n"); strcat (sql, "view_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_statistics violates constraint: "); strcat (sql, "view_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.view_geometry <> lower(NEW.view_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcs_view_geometry_update\n"); strcat (sql, "BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: "); strcat (sql, "view_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: \n"); strcat (sql, "view_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_statistics violates constraint: "); strcat (sql, "view_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.view_geometry <> lower(NEW.view_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_virts_geometry_columns_statistics (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the VIRTS_GEOMETRY_COLUMNS_STATISTICS table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "virts_geometry_columns_statistics (\n"); strcat (sql, "virt_name TEXT NOT NULL,\n"); strcat (sql, "virt_geometry TEXT NOT NULL,\n"); strcat (sql, "last_verified TIMESTAMP,\n"); strcat (sql, "row_count INTEGER,\n"); strcat (sql, "extent_min_x DOUBLE,\n"); strcat (sql, "extent_min_y DOUBLE,\n"); strcat (sql, "extent_max_x DOUBLE,\n"); strcat (sql, "extent_max_y DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_vrtgc_statistics PRIMARY KEY "); strcat (sql, "(virt_name, virt_geometry),\n"); strcat (sql, "CONSTRAINT fk_vrtgc_statistics FOREIGN KEY "); strcat (sql, "(virt_name, virt_geometry) REFERENCES "); strcat (sql, "virts_geometry_columns (virt_name, virt_geometry) "); strcat (sql, "ON DELETE CASCADE)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VIRTS_GEOMETRY_COLUMNS_STATISTICS triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcs_virt_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: "); strcat (sql, "virt_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: "); strcat (sql, "virt_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: \n"); strcat (sql, "virt_name value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_name <> lower(NEW.virt_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcs_virt_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: "); strcat (sql, "virt_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: "); strcat (sql, "virt_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: "); strcat (sql, "virt_name value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_name <> lower(NEW.virt_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcs_virt_geometry_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: "); strcat (sql, "virt_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: \n"); strcat (sql, "virt_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_statistics violates constraint: "); strcat (sql, "virt_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_geometry <> lower(NEW.virt_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcs_virt_geometry_update\n"); strcat (sql, "BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns_statistics'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: "); strcat (sql, "virt_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: \n"); strcat (sql, "virt_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_statistics violates constraint: "); strcat (sql, "virt_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_geometry <> lower(NEW.virt_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_geometry_columns_field_infos (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the GEOMETRY_COLUMNS_FIELD_INFOS table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "geometry_columns_field_infos (\n"); strcat (sql, "f_table_name TEXT NOT NULL,\n"); strcat (sql, "f_geometry_column TEXT NOT NULL,\n"); strcat (sql, "ordinal INTEGER NOT NULL,\n"); strcat (sql, "column_name TEXT NOT NULL,\n"); strcat (sql, "null_values INTEGER NOT NULL,\n"); strcat (sql, "integer_values INTEGER NOT NULL,\n"); strcat (sql, "double_values INTEGER NOT NULL,\n"); strcat (sql, "text_values INTEGER NOT NULL,\n"); strcat (sql, "blob_values INTEGER NOT NULL,\n"); strcat (sql, "max_size INTEGER,\n"); strcat (sql, "integer_min INTEGER,\n"); strcat (sql, "integer_max INTEGER,\n"); strcat (sql, "double_min DOUBLE,\n"); strcat (sql, "double_max DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_gcfld_infos PRIMARY KEY "); strcat (sql, "(f_table_name, f_geometry_column, ordinal, column_name),\n"); strcat (sql, "CONSTRAINT fk_gcfld_infos FOREIGN KEY "); strcat (sql, "(f_table_name, f_geometry_column) REFERENCES "); strcat (sql, "geometry_columns (f_table_name, f_geometry_column) "); strcat (sql, "ON DELETE CASCADE)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the GEOMETRY_COLUMNS_FIELD_INFOS triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcfi_f_table_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: \n"); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcfi_f_table_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcfi_f_geometry_column_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: \n"); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcfi_f_geometry_column_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_field_infos violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_views_geometry_columns_field_infos (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the VIEWS_COLUMNS_FIELD_INFOS table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "views_geometry_columns_field_infos (\n"); strcat (sql, "view_name TEXT NOT NULL,\n"); strcat (sql, "view_geometry TEXT NOT NULL,\n"); strcat (sql, "ordinal INTEGER NOT NULL,\n"); strcat (sql, "column_name TEXT NOT NULL,\n"); strcat (sql, "null_values INTEGER NOT NULL,\n"); strcat (sql, "integer_values INTEGER NOT NULL,\n"); strcat (sql, "double_values INTEGER NOT NULL,\n"); strcat (sql, "text_values INTEGER NOT NULL,\n"); strcat (sql, "blob_values INTEGER NOT NULL,\n"); strcat (sql, "max_size INTEGER,\n"); strcat (sql, "integer_min INTEGER,\n"); strcat (sql, "integer_max INTEGER,\n"); strcat (sql, "double_min DOUBLE,\n"); strcat (sql, "double_max DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_vwgcfld_infos PRIMARY KEY "); strcat (sql, "(view_name, view_geometry, ordinal, column_name),\n"); strcat (sql, "CONSTRAINT fk_vwgcfld_infos FOREIGN KEY "); strcat (sql, "(view_name, view_geometry) REFERENCES "); strcat (sql, "views_geometry_columns (view_name, view_geometry) "); strcat (sql, "ON DELETE CASCADE)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VIEWS_COLUMNS_FIELD_INFOS triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcfi_view_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: "); strcat (sql, "view_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: "); strcat (sql, "view_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: \n"); strcat (sql, "view_name value must be lower case')\n"); strcat (sql, "WHERE NEW.view_name <> lower(NEW.view_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcfi_view_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: "); strcat (sql, "view_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: "); strcat (sql, "view_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: "); strcat (sql, "view_name value must be lower case')\n"); strcat (sql, "WHERE NEW.view_name <> lower(NEW.view_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcfi_view_geometry_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: "); strcat (sql, "view_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: \n"); strcat (sql, "view_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_field_infos violates constraint: "); strcat (sql, "view_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.view_geometry <> lower(NEW.view_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcfi_view_geometry_update\n"); strcat (sql, "BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: "); strcat (sql, "view_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: \n"); strcat (sql, "view_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_field_infos violates constraint: "); strcat (sql, "view_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.view_geometry <> lower(NEW.view_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_virts_geometry_columns_field_infos (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the VIRTS_GEOMETRY_COLUMNS_FIELD_INFOS table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "virts_geometry_columns_field_infos (\n"); strcat (sql, "virt_name TEXT NOT NULL,\n"); strcat (sql, "virt_geometry TEXT NOT NULL,\n"); strcat (sql, "ordinal INTEGER NOT NULL,\n"); strcat (sql, "column_name TEXT NOT NULL,\n"); strcat (sql, "null_values INTEGER NOT NULL,\n"); strcat (sql, "integer_values INTEGER NOT NULL,\n"); strcat (sql, "double_values INTEGER NOT NULL,\n"); strcat (sql, "text_values INTEGER NOT NULL,\n"); strcat (sql, "blob_values INTEGER NOT NULL,\n"); strcat (sql, "max_size INTEGER,\n"); strcat (sql, "integer_min INTEGER,\n"); strcat (sql, "integer_max INTEGER,\n"); strcat (sql, "double_min DOUBLE,\n"); strcat (sql, "double_max DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_vrtgcfld_infos PRIMARY KEY "); strcat (sql, "(virt_name, virt_geometry, ordinal, column_name),\n"); strcat (sql, "CONSTRAINT fk_vrtgcfld_infos FOREIGN KEY "); strcat (sql, "(virt_name, virt_geometry) REFERENCES "); strcat (sql, "virts_geometry_columns (virt_name, virt_geometry) "); strcat (sql, "ON DELETE CASCADE)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VIRTS_GEOMETRY_COLUMNS_FIELD_INFOS triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcfi_virt_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: "); strcat (sql, "virt_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: "); strcat (sql, "virt_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: \n"); strcat (sql, "virt_name value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_name <> lower(NEW.virt_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcfi_virt_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: "); strcat (sql, "virt_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: "); strcat (sql, "virt_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: "); strcat (sql, "virt_name value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_name <> lower(NEW.virt_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcfi_virt_geometry_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: "); strcat (sql, "virt_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: \n"); strcat (sql, "virt_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_field_infos violates constraint: "); strcat (sql, "virt_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_geometry <> lower(NEW.virt_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcfi_virt_geometry_update\n"); strcat (sql, "BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns_field_infos'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: "); strcat (sql, "virt_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: \n"); strcat (sql, "virt_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_field_infos violates constraint: "); strcat (sql, "virt_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_geometry <> lower(NEW.virt_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_geometry_columns_times (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the GEOMETRY_COLUMNS_TIME table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "geometry_columns_time (\n"); strcat (sql, "f_table_name TEXT NOT NULL,\n"); strcat (sql, "f_geometry_column TEXT NOT NULL,\n"); strcat (sql, "last_insert TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z',\n"); strcat (sql, "last_update TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z',\n"); strcat (sql, "last_delete TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z',\n"); strcat (sql, "CONSTRAINT pk_gc_time PRIMARY KEY "); strcat (sql, "(f_table_name, f_geometry_column),\n"); strcat (sql, "CONSTRAINT fk_gc_time FOREIGN KEY "); strcat (sql, "(f_table_name, f_geometry_column) "); strcat (sql, "REFERENCES geometry_columns "); strcat (sql, "(f_table_name, f_geometry_column) "); strcat (sql, "ON DELETE CASCADE)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the GEOMETRY_COLUMNS_TIME triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gctm_f_table_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns_time'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: \n"); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gctm_f_table_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_time'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: "); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gctm_f_geometry_column_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns_time'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: \n"); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_time violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gctm_f_geometry_column_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_time'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: "); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_time violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_geometry_columns_auth (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the GEOMETRY_COLUMNS_AUTH table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "geometry_columns_auth (\n"); strcat (sql, "f_table_name TEXT NOT NULL,\n"); strcat (sql, "f_geometry_column TEXT NOT NULL,\n"); strcat (sql, "read_only INTEGER NOT NULL,\n"); strcat (sql, "hidden INTEGER NOT NULL,\n"); strcat (sql, "CONSTRAINT pk_gc_auth PRIMARY KEY "); strcat (sql, "(f_table_name, f_geometry_column),\n"); strcat (sql, "CONSTRAINT fk_gc_auth FOREIGN KEY "); strcat (sql, "(f_table_name, f_geometry_column) "); strcat (sql, "REFERENCES geometry_columns "); strcat (sql, "(f_table_name, f_geometry_column) "); strcat (sql, "ON DELETE CASCADE,\n"); strcat (sql, "CONSTRAINT ck_gc_ronly CHECK (read_only IN "); strcat (sql, "(0,1)),\n"); strcat (sql, "CONSTRAINT ck_gc_hidden CHECK (hidden IN "); strcat (sql, "(0,1)))"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the GEOMETRY_COLUMNS_AUTH triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcau_f_table_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: \n"); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcau_f_table_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: "); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcau_f_geometry_column_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: \n"); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns_auth violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS gcau_f_geometry_column_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: "); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns_auth violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_views_geometry_columns_auth (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the VIEWS_GEOMETRY_COLUMNS_AUTH table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "views_geometry_columns_auth (\n"); strcat (sql, "view_name TEXT NOT NULL,\n"); strcat (sql, "view_geometry TEXT NOT NULL,\n"); strcat (sql, "hidden INTEGER NOT NULL,\n"); strcat (sql, "CONSTRAINT pk_vwgc_auth PRIMARY KEY "); strcat (sql, "(view_name, view_geometry),\n"); strcat (sql, "CONSTRAINT fk_vwgc_auth FOREIGN KEY "); strcat (sql, "(view_name, view_geometry) "); strcat (sql, "REFERENCES views_geometry_columns "); strcat (sql, "(view_name, view_geometry) "); strcat (sql, "ON DELETE CASCADE,\n"); strcat (sql, "CONSTRAINT ck_vwgc_hidden CHECK (hidden IN "); strcat (sql, "(0,1)))"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VIEWS_GEOMETRY_COLUMNS_AUTH triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcau_view_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: "); strcat (sql, "view_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: "); strcat (sql, "view_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: \n"); strcat (sql, "view_name value must be lower case')\n"); strcat (sql, "WHERE NEW.view_name <> lower(NEW.view_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcau_view_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'view_name' ON 'views_geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: "); strcat (sql, "view_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: "); strcat (sql, "view_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: "); strcat (sql, "view_name value must be lower case')\n"); strcat (sql, "WHERE NEW.view_name <> lower(NEW.view_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcau_view_geometry_insert\n"); strcat (sql, "BEFORE INSERT ON 'views_geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: "); strcat (sql, "view_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: \n"); strcat (sql, "view_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on views_geometry_columns_auth violates constraint: "); strcat (sql, "view_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.view_geometry <> lower(NEW.view_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vwgcau_view_geometry_update\n"); strcat (sql, "BEFORE UPDATE OF 'view_geometry' ON 'views_geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: "); strcat (sql, "view_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: \n"); strcat (sql, "view_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.view_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on views_geometry_columns_auth violates constraint: "); strcat (sql, "view_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.view_geometry <> lower(NEW.view_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_virts_geometry_columns_auth (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the VIRTS_GEOMETRY_COLUMNS_AUTH table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "virts_geometry_columns_auth (\n"); strcat (sql, "virt_name TEXT NOT NULL,\n"); strcat (sql, "virt_geometry TEXT NOT NULL,\n"); strcat (sql, "hidden INTEGER NOT NULL,\n"); strcat (sql, "CONSTRAINT pk_vrtgc_auth PRIMARY KEY "); strcat (sql, "(virt_name, virt_geometry),\n"); strcat (sql, "CONSTRAINT fk_vrtgc_auth FOREIGN KEY "); strcat (sql, "(virt_name, virt_geometry) "); strcat (sql, "REFERENCES virts_geometry_columns "); strcat (sql, "(virt_name, virt_geometry) "); strcat (sql, "ON DELETE CASCADE,\n"); strcat (sql, "CONSTRAINT ck_vrtgc_hidden CHECK (hidden IN "); strcat (sql, "(0,1)))"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VIRTS_GEOMETRY_COLUMNS_AUTH triggers */ strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcau_virt_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: "); strcat (sql, "virt_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: "); strcat (sql, "virt_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: \n"); strcat (sql, "virt_name value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_name <> lower(NEW.virt_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcau_virt_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'virt_name' ON 'virts_geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: "); strcat (sql, "virt_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: "); strcat (sql, "virt_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: "); strcat (sql, "virt_name value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_name <> lower(NEW.virt_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcau_virt_geometry_insert\n"); strcat (sql, "BEFORE INSERT ON 'virts_geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: "); strcat (sql, "virt_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: \n"); strcat (sql, "virt_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on virts_geometry_columns_auth violates constraint: "); strcat (sql, "virt_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_geometry <> lower(NEW.virt_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } strcpy (sql, "CREATE TRIGGER IF NOT EXISTS vtgcau_virt_geometry_update\n"); strcat (sql, "BEFORE UPDATE OF 'virt_geometry' ON 'virts_geometry_columns_auth'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: "); strcat (sql, "virt_geometry value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: \n"); strcat (sql, "virt_geometry value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.virt_geometry LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on virts_geometry_columns_auth violates constraint: "); strcat (sql, "virt_geometry value must be lower case')\n"); strcat (sql, "WHERE NEW.virt_geometry <> lower(NEW.virt_geometry);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } static int create_geometry_columns_views (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the VECTOR_LAYERS view */ strcpy (sql, "CREATE VIEW IF NOT EXISTS "); strcat (sql, "vector_layers AS\n"); strcat (sql, "SELECT 'SpatialTable' AS layer_type, "); strcat (sql, "f_table_name AS table_name, "); strcat (sql, "f_geometry_column AS geometry_column, "); strcat (sql, "geometry_type AS geometry_type, "); strcat (sql, "coord_dimension AS coord_dimension, "); strcat (sql, "srid AS srid, "); strcat (sql, "spatial_index_enabled AS spatial_index_enabled\n"); strcat (sql, "FROM geometry_columns\n"); strcat (sql, "UNION\n"); strcat (sql, "SELECT 'SpatialView' AS layer_type, "); strcat (sql, "a.view_name AS table_name, "); strcat (sql, "a.view_geometry AS geometry_column, "); strcat (sql, "b.geometry_type AS geometry_type, "); strcat (sql, "b.coord_dimension AS coord_dimension, "); strcat (sql, "b.srid AS srid, "); strcat (sql, "b.spatial_index_enabled AS spatial_index_enabled\n"); strcat (sql, "FROM views_geometry_columns AS a\n"); strcat (sql, "LEFT JOIN geometry_columns AS b ON ("); strcat (sql, "Upper(a.f_table_name) = Upper(b.f_table_name) AND "); strcat (sql, "Upper(a.f_geometry_column) = Upper(b.f_geometry_column))\n"); strcat (sql, "UNION\n"); strcat (sql, "SELECT 'VirtualShape' AS layer_type, "); strcat (sql, "virt_name AS table_name, "); strcat (sql, "virt_geometry AS geometry_column, "); strcat (sql, "geometry_type AS geometry_type, "); strcat (sql, "coord_dimension AS coord_dimension, "); strcat (sql, "srid AS srid, "); strcat (sql, "0 AS spatial_index_enabled\n"); strcat (sql, "FROM virts_geometry_columns"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VECTOR_LAYERS_AUTH view */ strcpy (sql, "CREATE VIEW IF NOT EXISTS "); strcat (sql, "vector_layers_auth AS\n"); strcat (sql, "SELECT 'SpatialTable' AS layer_type, "); strcat (sql, "f_table_name AS table_name, "); strcat (sql, "f_geometry_column AS geometry_column, "); strcat (sql, "read_only AS read_only, "); strcat (sql, "hidden AS hidden\n"); strcat (sql, "FROM geometry_columns_auth\n"); strcat (sql, "UNION\n"); strcat (sql, "SELECT 'SpatialView' AS layer_type, "); strcat (sql, "a.view_name AS table_name, "); strcat (sql, "a.view_geometry AS geometry_column, "); strcat (sql, "b.read_only AS read_only, "); strcat (sql, "a.hidden AS hidden\n"); strcat (sql, "FROM views_geometry_columns_auth AS a\n"); strcat (sql, "JOIN views_geometry_columns AS b ON ("); strcat (sql, "Upper(a.view_name) = Upper(b.view_name) AND "); strcat (sql, "Upper(a.view_geometry) = Upper(b.view_geometry))\n"); strcat (sql, "UNION\n"); strcat (sql, "SELECT 'VirtualShape' AS layer_type, "); strcat (sql, "virt_name AS table_name, "); strcat (sql, "virt_geometry AS geometry_column, "); strcat (sql, "1 AS read_only, "); strcat (sql, "hidden AS hidden\n"); strcat (sql, "FROM virts_geometry_columns_auth"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VECTOR_LAYERS_STATISTICS view */ strcpy (sql, "CREATE VIEW IF NOT EXISTS "); strcat (sql, "vector_layers_statistics AS\n"); strcat (sql, "SELECT 'SpatialTable' AS layer_type, "); strcat (sql, "f_table_name AS table_name, "); strcat (sql, "f_geometry_column AS geometry_column, "); strcat (sql, "last_verified AS last_verified, "); strcat (sql, "row_count AS row_count, "); strcat (sql, "extent_min_x AS extent_min_x, "); strcat (sql, "extent_min_y AS extent_min_y, "); strcat (sql, "extent_max_x AS extent_max_x, "); strcat (sql, "extent_max_y AS extent_max_y\n"); strcat (sql, "FROM geometry_columns_statistics\n"); strcat (sql, "UNION\n"); strcat (sql, "SELECT 'SpatialView' AS layer_type, "); strcat (sql, "view_name AS table_name, "); strcat (sql, "view_geometry AS geometry_column, "); strcat (sql, "last_verified AS last_verified, "); strcat (sql, "row_count AS row_count, "); strcat (sql, "extent_min_x AS extent_min_x, "); strcat (sql, "extent_min_y AS extent_min_y, "); strcat (sql, "extent_max_x AS extent_max_x, "); strcat (sql, "extent_max_y AS extent_max_y\n"); strcat (sql, "FROM views_geometry_columns_statistics\n"); strcat (sql, "UNION\n"); strcat (sql, "SELECT 'VirtualShape' AS layer_type, "); strcat (sql, "virt_name AS table_name, "); strcat (sql, "virt_geometry AS geometry_column, "); strcat (sql, "last_verified AS last_verified, "); strcat (sql, "row_count AS row_count, "); strcat (sql, "extent_min_x AS extent_min_x, "); strcat (sql, "extent_min_y AS extent_min_y, "); strcat (sql, "extent_max_x AS extent_max_x, "); strcat (sql, "extent_max_y AS extent_max_y\n"); strcat (sql, "FROM virts_geometry_columns_statistics"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the VECTOR_LAYERS_FIELD_INFOS view */ strcpy (sql, "CREATE VIEW IF NOT EXISTS "); strcat (sql, "vector_layers_field_infos AS\n"); strcat (sql, "SELECT 'SpatialTable' AS layer_type, "); strcat (sql, "f_table_name AS table_name, "); strcat (sql, "f_geometry_column AS geometry_column, "); strcat (sql, "ordinal AS ordinal, "); strcat (sql, "column_name AS column_name, "); strcat (sql, "null_values AS null_values, "); strcat (sql, "integer_values AS integer_values, "); strcat (sql, "double_values AS double_values, "); strcat (sql, "text_values AS text_values, "); strcat (sql, "blob_values AS blob_values, "); strcat (sql, "max_size AS max_size, "); strcat (sql, "integer_min AS integer_min, "); strcat (sql, "integer_max AS integer_max, "); strcat (sql, "double_min AS double_min, "); strcat (sql, "double_max double_max\n"); strcat (sql, "FROM geometry_columns_field_infos\n"); strcat (sql, "UNION\n"); strcat (sql, "SELECT 'SpatialView' AS layer_type, "); strcat (sql, "view_name AS table_name, "); strcat (sql, "view_geometry AS geometry_column, "); strcat (sql, "ordinal AS ordinal, "); strcat (sql, "column_name AS column_name, "); strcat (sql, "null_values AS null_values, "); strcat (sql, "integer_values AS integer_values, "); strcat (sql, "double_values AS double_values, "); strcat (sql, "text_values AS text_values, "); strcat (sql, "blob_values AS blob_values, "); strcat (sql, "max_size AS max_size, "); strcat (sql, "integer_min AS integer_min, "); strcat (sql, "integer_max AS integer_max, "); strcat (sql, "double_min AS double_min, "); strcat (sql, "double_max double_max\n"); strcat (sql, "FROM views_geometry_columns_field_infos\n"); strcat (sql, "UNION\n"); strcat (sql, "SELECT 'VirtualShape' AS layer_type, "); strcat (sql, "virt_name AS table_name, "); strcat (sql, "virt_geometry AS geometry_column, "); strcat (sql, "ordinal AS ordinal, "); strcat (sql, "column_name AS column_name, "); strcat (sql, "null_values AS null_values, "); strcat (sql, "integer_values AS integer_values, "); strcat (sql, "double_values AS double_values, "); strcat (sql, "text_values AS text_values, "); strcat (sql, "blob_values AS blob_values, "); strcat (sql, "max_size AS max_size, "); strcat (sql, "integer_min AS integer_min, "); strcat (sql, "integer_max AS integer_max, "); strcat (sql, "double_min AS double_min, "); strcat (sql, "double_max double_max\n"); strcat (sql, "FROM virts_geometry_columns_field_infos"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } SPATIALITE_PRIVATE int check_layer_statistics (void *p_sqlite) { /* / checks the LAYER_STATISTICS table for validity; / if the table doesn't exist, attempts to create */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; char sql[8192]; char **results; int rows; int columns; int ret; int raster_layer = 0; int table_name = 0; int geometry_column = 0; int row_count = 0; int extent_min_x = 0; int extent_min_y = 0; int extent_max_x = 0; int extent_max_y = 0; int i; const char *name; int has_pk = 0; /* checking the LAYER_STATISTICS table */ ret = sqlite3_get_table (sqlite, "PRAGMA table_info(layer_statistics)", &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "raster_layer") == 0) raster_layer = 1; if (strcasecmp (name, "table_name") == 0) table_name = 1; if (strcasecmp (name, "geometry_column") == 0) geometry_column = 1; if (strcasecmp (name, "row_count") == 0) row_count = 1; if (strcasecmp (name, "extent_min_x") == 0) extent_min_x = 1; if (strcasecmp (name, "extent_min_y") == 0) extent_min_y = 1; if (strcasecmp (name, "extent_max_x") == 0) extent_max_x = 1; if (strcasecmp (name, "extent_max_y") == 0) extent_max_y = 1; } } sqlite3_free_table (results); /* LAYER_STATISTICS already exists and has a valid layout */ if (raster_layer && table_name && geometry_column && row_count && extent_min_x && extent_max_x && extent_min_y && extent_max_y) return 1; /* LAYER_STATISTICS already exists, but has an invalid layout */ if (raster_layer || table_name || geometry_column || row_count || extent_min_x || extent_max_x || extent_min_y || extent_max_y) return 0; /* checking if GEOMETRY_COLUMNS has a Primary Key */ ret = sqlite3_get_table (sqlite, "PRAGMA table_info(geometry_columns)", &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 5]; if (atoi (name) != 0) has_pk = 1; } } sqlite3_free_table (results); /* attempting to create LAYER_STATISTICS */ if (has_pk) { /* GEOMETRY_COLUMNS has a Primary Key */ strcpy (sql, "CREATE TABLE layer_statistics (\n"); strcat (sql, "raster_layer INTEGER NOT NULL,\n"); strcat (sql, "table_name TEXT NOT NULL,\n"); strcat (sql, "geometry_column TEXT NOT NULL,\n"); strcat (sql, "row_count INTEGER,\n"); strcat (sql, "extent_min_x DOUBLE,\n"); strcat (sql, "extent_min_y DOUBLE,\n"); strcat (sql, "extent_max_x DOUBLE,\n"); strcat (sql, "extent_max_y DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_layer_statistics PRIMARY KEY "); strcat (sql, "(raster_layer, table_name, geometry_column),\n"); strcat (sql, "CONSTRAINT fk_layer_statistics FOREIGN KEY "); strcat (sql, "(table_name, geometry_column) REFERENCES "); strcat (sql, "geometry_columns (f_table_name, f_geometry_column) "); strcat (sql, "ON DELETE CASCADE)"); } else { /* there is no Primary Key on GEOMETRY_COLUMNS */ strcpy (sql, "CREATE TABLE layer_statistics (\n"); strcat (sql, "raster_layer INTEGER NOT NULL,\n"); strcat (sql, "table_name TEXT NOT NULL,\n"); strcat (sql, "geometry_column TEXT NOT NULL,\n"); strcat (sql, "row_count INTEGER,\n"); strcat (sql, "extent_min_x DOUBLE,\n"); strcat (sql, "extent_min_y DOUBLE,\n"); strcat (sql, "extent_max_x DOUBLE,\n"); strcat (sql, "extent_max_y DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_layer_statistics PRIMARY KEY "); strcat (sql, "(raster_layer, table_name, geometry_column))"); } ret = sqlite3_exec (sqlite, sql, NULL, NULL, NULL); if (ret != SQLITE_OK) return 0; return 1; } SPATIALITE_PRIVATE int check_views_layer_statistics (void *p_sqlite) { /* / checks the VIEWS_LAYER_STATISTICS table for validity; / if the table doesn't exist, attempts to create */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; char sql[8192]; char **results; int rows; int columns; int ret; int view_name = 0; int view_geometry = 0; int row_count = 0; int extent_min_x = 0; int extent_min_y = 0; int extent_max_x = 0; int extent_max_y = 0; int i; const char *name; /* checking the VIEWS_LAYER_STATISTICS table */ ret = sqlite3_get_table (sqlite, "PRAGMA table_info(views_layer_statistics)", &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "view_name") == 0) view_name = 1; if (strcasecmp (name, "view_geometry") == 0) view_geometry = 1; if (strcasecmp (name, "row_count") == 0) row_count = 1; if (strcasecmp (name, "extent_min_x") == 0) extent_min_x = 1; if (strcasecmp (name, "extent_min_y") == 0) extent_min_y = 1; if (strcasecmp (name, "extent_max_x") == 0) extent_max_x = 1; if (strcasecmp (name, "extent_max_y") == 0) extent_max_y = 1; } } sqlite3_free_table (results); /* VIEWS_LAYER_STATISTICS already exists and has a valid layout */ if (view_name && view_geometry && row_count && extent_min_x && extent_max_x && extent_min_y && extent_max_y) return 1; /* VIEWS_LAYER_STATISTICS already exists, but has an invalid layout */ if (view_name || view_geometry || row_count || extent_min_x || extent_max_x || extent_min_y || extent_max_y) return 0; /* attempting to create VIEWS_LAYER_STATISTICS */ strcpy (sql, "CREATE TABLE views_layer_statistics (\n"); strcat (sql, "view_name TEXT NOT NULL,\n"); strcat (sql, "view_geometry TEXT NOT NULL,\n"); strcat (sql, "row_count INTEGER,\n"); strcat (sql, "extent_min_x DOUBLE,\n"); strcat (sql, "extent_min_y DOUBLE,\n"); strcat (sql, "extent_max_x DOUBLE,\n"); strcat (sql, "extent_max_y DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_views_layer_statistics PRIMARY KEY "); strcat (sql, "(view_name, view_geometry),\n"); strcat (sql, "CONSTRAINT fk_views_layer_statistics FOREIGN KEY "); strcat (sql, "(view_name, view_geometry) REFERENCES "); strcat (sql, "views_geometry_columns (view_name, view_geometry) "); strcat (sql, "ON DELETE CASCADE)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, NULL); if (ret != SQLITE_OK) return 0; return 1; } SPATIALITE_PRIVATE int check_virts_layer_statistics (void *p_sqlite) { /* / checks the VIRTS_LAYER_STATISTICS table for validity; / if the table doesn't exist, attempts to create */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; char sql[8192]; char **results; int rows; int columns; int ret; int virt_name = 0; int virt_geometry = 0; int row_count = 0; int extent_min_x = 0; int extent_min_y = 0; int extent_max_x = 0; int extent_max_y = 0; int i; const char *name; /* checking the VIRTS_LAYER_STATISTICS table */ ret = sqlite3_get_table (sqlite, "PRAGMA table_info(virts_layer_statistics)", &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "virt_name") == 0) virt_name = 1; if (strcasecmp (name, "virt_geometry") == 0) virt_geometry = 1; if (strcasecmp (name, "row_count") == 0) row_count = 1; if (strcasecmp (name, "extent_min_x") == 0) extent_min_x = 1; if (strcasecmp (name, "extent_min_y") == 0) extent_min_y = 1; if (strcasecmp (name, "extent_max_x") == 0) extent_max_x = 1; if (strcasecmp (name, "extent_max_y") == 0) extent_max_y = 1; } } sqlite3_free_table (results); /* VIRTS_LAYER_STATISTICS already exists and has a valid layout */ if (virt_name && virt_geometry && row_count && extent_min_x && extent_max_x && extent_min_y && extent_max_y) return 1; /* VIRTS_LAYER_STATISTICS already exists, but has an invalid layout */ if (virt_name || virt_geometry || row_count || extent_min_x || extent_max_x || extent_min_y || extent_max_y) return 0; /* attempting to create VIRTS_LAYER_STATISTICS */ strcpy (sql, "CREATE TABLE virts_layer_statistics (\n"); strcat (sql, "virt_name TEXT NOT NULL,\n"); strcat (sql, "virt_geometry TEXT NOT NULL,\n"); strcat (sql, "row_count INTEGER,\n"); strcat (sql, "extent_min_x DOUBLE,\n"); strcat (sql, "extent_min_y DOUBLE,\n"); strcat (sql, "extent_max_x DOUBLE,\n"); strcat (sql, "extent_max_y DOUBLE,\n"); strcat (sql, "CONSTRAINT pk_virts_layer_statistics PRIMARY KEY "); strcat (sql, "(virt_name, virt_geometry),\n"); strcat (sql, "CONSTRAINT fk_virts_layer_statistics FOREIGN KEY "); strcat (sql, "(virt_name, virt_geometry) REFERENCES "); strcat (sql, "virts_geometry_columns (virt_name, virt_geometry) "); strcat (sql, "ON DELETE CASCADE)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, NULL); if (ret != SQLITE_OK) return 0; return 1; } static int create_sql_statements_log (sqlite3 * sqlite) { char sql[4186]; char *errMsg = NULL; int ret; /* creating the SQL_STATEMENTS_LOG table */ strcpy (sql, "CREATE TABLE IF NOT EXISTS "); strcat (sql, "sql_statements_log (\n"); strcat (sql, "id INTEGER PRIMARY KEY AUTOINCREMENT,\n"); strcat (sql, "time_start TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z',\n"); strcat (sql, "time_end TIMESTAMP NOT NULL DEFAULT '0000-01-01T00:00:00.000Z',\n"); strcat (sql, "user_agent TEXT NOT NULL,\n"); strcat (sql, "sql_statement TEXT NOT NULL,\n"); strcat (sql, "success INTEGER NOT NULL DEFAULT 0,\n"); strcat (sql, "error_cause TEXT NOT NULL DEFAULT 'ABORTED',\n"); strcat (sql, "CONSTRAINT sqllog_success CHECK "); strcat (sql, "(success IN (0,1)))"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } return 1; } SPATIALITE_PRIVATE int createAdvancedMetaData (void *p_sqlite) { /* creating the advanced MetaData tables */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; if (!create_views_geometry_columns (sqlite)) return 0; if (!create_virts_geometry_columns (sqlite)) return 0; if (!create_geometry_columns_statistics (sqlite)) return 0; if (!create_views_geometry_columns_statistics (sqlite)) return 0; if (!create_virts_geometry_columns_statistics (sqlite)) return 0; if (!create_geometry_columns_field_infos (sqlite)) return 0; if (!create_views_geometry_columns_field_infos (sqlite)) return 0; if (!create_virts_geometry_columns_field_infos (sqlite)) return 0; if (!create_geometry_columns_times (sqlite)) return 0; if (!create_geometry_columns_auth (sqlite)) return 0; if (!create_views_geometry_columns_auth (sqlite)) return 0; if (!create_virts_geometry_columns_auth (sqlite)) return 0; if (!create_geometry_columns_views (sqlite)) return 0; if (!create_sql_statements_log (sqlite)) return 0; return 1; } SPATIALITE_PRIVATE int createGeometryColumns (void *p_sqlite) { sqlite3 *sqlite = (sqlite3 *) p_sqlite; char sql[4186]; char *errMsg = NULL; int ret; /* creating the GEOMETRY_COLUMNS table */ strcpy (sql, "CREATE TABLE geometry_columns (\n"); strcat (sql, "f_table_name TEXT NOT NULL,\n"); strcat (sql, "f_geometry_column TEXT NOT NULL,\n"); strcat (sql, "geometry_type INTEGER NOT NULL,\n"); strcat (sql, "coord_dimension INTEGER NOT NULL,\n"); strcat (sql, "srid INTEGER NOT NULL,\n"); strcat (sql, "spatial_index_enabled INTEGER NOT NULL,\n"); strcat (sql, "CONSTRAINT pk_geom_cols PRIMARY KEY "); strcat (sql, "(f_table_name, f_geometry_column),\n"); strcat (sql, "CONSTRAINT fk_gc_srs FOREIGN KEY "); strcat (sql, "(srid) REFERENCES spatial_ref_sys (srid),\n"); strcat (sql, "CONSTRAINT ck_gc_rtree CHECK "); strcat (sql, "(spatial_index_enabled IN (0,1,2)))"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } updateSpatiaLiteHistory (sqlite, "geometry_columns", NULL, "table successfully created"); /* creating an INDEX corresponding to the SRID FK */ strcpy (sql, "CREATE INDEX idx_srid_geocols ON geometry_columns\n"); strcat (sql, "(srid) "); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } /* creating the GEOMETRY_COLUMNS triggers */ strcpy (sql, "CREATE TRIGGER geometry_columns_f_table_name_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: \n"); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } updateSpatiaLiteHistory (sqlite, "geometry_columns", NULL, "trigger 'geometry_columns_f_table_name_insert' successfully created"); strcpy (sql, "CREATE TRIGGER geometry_columns_f_table_name_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_table_name' ON 'geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns violates constraint: "); strcat (sql, "f_table_name value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns violates constraint: "); strcat (sql, "f_table_name value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_table_name LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns violates constraint: "); strcat (sql, "f_table_name value must be lower case')\n"); strcat (sql, "WHERE NEW.f_table_name <> lower(NEW.f_table_name);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } updateSpatiaLiteHistory (sqlite, "geometry_columns", NULL, "trigger 'geometry_columns_f_table_name_update' successfully created"); strcpy (sql, "CREATE TRIGGER geometry_columns_f_geometry_column_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: \n"); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'insert on geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } updateSpatiaLiteHistory (sqlite, "geometry_columns", NULL, "trigger 'geometry_columns_f_geometry_column_insert' successfully created"); strcpy (sql, "CREATE TRIGGER geometry_columns_f_geometry_column_update\n"); strcat (sql, "BEFORE UPDATE OF 'f_geometry_column' ON 'geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must not contain a single quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%''%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must not contain a double quote')\n"); strcat (sql, "WHERE NEW.f_geometry_column LIKE ('%\"%');\n"); strcat (sql, "SELECT RAISE(ABORT,'update on geometry_columns violates constraint: "); strcat (sql, "f_geometry_column value must be lower case')\n"); strcat (sql, "WHERE NEW.f_geometry_column <> lower(NEW.f_geometry_column);\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } updateSpatiaLiteHistory (sqlite, "geometry_columns", NULL, "trigger 'geometry_columns_f_geometry_column_update' successfully created"); strcpy (sql, "CREATE TRIGGER geometry_columns_geometry_type_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'geometry_type must be one of "); strcat (sql, "0,1,2,3,4,5,6,7,"); strcat (sql, "1000,1001,1002,1003,1004,1005,1006,1007,"); strcat (sql, "2000,2001,2002,2003,2004,2005,2006,2007,"); strcat (sql, "3000,3001,3002,3003,3004,3005,3006,3007')\n"); strcat (sql, "WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,"); strcat (sql, "1000,1001,1002,1003,1004,1005,1006,1007,"); strcat (sql, "2000,2001,2002,2003,2004,2005,2006,2007,"); strcat (sql, "3000,3001,3002,3003,3004,3005,3006,3007));\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } updateSpatiaLiteHistory (sqlite, "geometry_columns", NULL, "trigger 'geometry_columns_geometry_type_insert' successfully created"); strcpy (sql, "CREATE TRIGGER geometry_columns_geometry_type_update\n"); strcat (sql, "BEFORE UPDATE OF 'geometry_type' ON 'geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'geometry_type must be one of "); strcat (sql, "0,1,2,3,4,5,6,7,"); strcat (sql, "1000,1001,1002,1003,1004,1005,1006,1007,"); strcat (sql, "2000,2001,2002,2003,2004,2005,2006,2007,"); strcat (sql, "3000,3001,3002,3003,3004,3005,3006,3007')\n"); strcat (sql, "WHERE NOT(NEW.geometry_type IN (0,1,2,3,4,5,6,7,"); strcat (sql, "1000,1001,1002,1003,1004,1005,1006,1007,"); strcat (sql, "2000,2001,2002,2003,2004,2005,2006,2007,"); strcat (sql, "3000,3001,3002,3003,3004,3005,3006,3007));\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } updateSpatiaLiteHistory (sqlite, "geometry_columns", NULL, "trigger 'geometry_columns_geometry_type_update' successfully created"); strcpy (sql, "CREATE TRIGGER geometry_columns_coord_dimension_insert\n"); strcat (sql, "BEFORE INSERT ON 'geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4')\n"); strcat (sql, "WHERE NOT(NEW.coord_dimension IN (2,3,4));\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } updateSpatiaLiteHistory (sqlite, "geometry_columns", NULL, "trigger 'geometry_columns_coord_dimension_insert' successfully created"); strcpy (sql, "CREATE TRIGGER geometry_columns_coord_dimension_update\n"); strcat (sql, "BEFORE UPDATE OF 'coord_dimension' ON 'geometry_columns'\n"); strcat (sql, "FOR EACH ROW BEGIN\n"); strcat (sql, "SELECT RAISE(ABORT,'coord_dimension must be one of 2,3,4')\n"); strcat (sql, "WHERE NOT(NEW.coord_dimension IN (2,3,4));\n"); strcat (sql, "END"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql, errMsg); sqlite3_free (errMsg); return 0; } updateSpatiaLiteHistory (sqlite, "geometry_columns", NULL, "trigger 'geometry_columns_coord_dimension_update' successfully created"); return 1; } SPATIALITE_PRIVATE int upgradeGeometryTriggers (void *p_sqlite) { /* upgrading all triggers for any Spatial Column */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; sqlite3_stmt *stmt = NULL; char *sql_statement; int retcode; int metadata_version = checkSpatialMetaData (sqlite); if (metadata_version < 3) return 0; sql_statement = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column " "FROM geometry_columns"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("upgradeGeometryTriggers: error %d \"%s\"\n", sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); return 0; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *table = (const char *) sqlite3_column_text (stmt, 0); const char *column = (const char *) sqlite3_column_text (stmt, 1); updateGeometryTriggers (sqlite, table, column); retcode = 1; } else { retcode = 0; break; } } ret = sqlite3_finalize (stmt); return retcode; } SPATIALITE_PRIVATE void updateGeometryTriggers (void *p_sqlite, const char *table, const char *column) { /* updates triggers for some Spatial Column */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; int col_index; const char *col_dims; int index; int cached; int dims; char *txt_dims = NULL; int len; char *errMsg = NULL; char *sql_statement; char *raw; char *quoted_trigger; char *quoted_rtree; char *quoted_table; char *quoted_column; char *p_table = NULL; char *p_column = NULL; sqlite3_stmt *stmt; struct spatial_index_str *first_idx = NULL; struct spatial_index_str *last_idx = NULL; struct spatial_index_str *curr_idx; struct spatial_index_str *next_idx; int metadata_version = checkSpatialMetaData (sqlite); if (!getRealSQLnames (sqlite, table, column, &p_table, &p_column)) { spatialite_e ("updateTableTriggers() error: not existing Table or Column\n"); return; } if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ sql_statement = sqlite3_mprintf ("SELECT spatial_index_enabled " "FROM geometry_columns WHERE Lower(f_table_name) = Lower(?) " "AND Lower(f_geometry_column) = Lower(?)"); } else { /* legacy metadata style <= v.3.1.0 */ sql_statement = sqlite3_mprintf ("SELECT spatial_index_enabled, coord_dimension " "FROM geometry_columns WHERE Lower(f_table_name) = Lower(?) " "AND Lower(f_geometry_column) = Lower(?)"); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("updateTableTriggers: error %d \"%s\"\n", sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { col_index = sqlite3_column_int (stmt, 0); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ col_dims = (const char *) sqlite3_column_text (stmt, 1); dims = GAIA_XY; if (strcasecmp (col_dims, "XYZ") == 0) dims = GAIA_XY_Z; if (strcasecmp (col_dims, "XYM") == 0) dims = GAIA_XY_M; if (strcasecmp (col_dims, "XYZM") == 0) dims = GAIA_XY_Z_M; switch (dims) { case GAIA_XY_Z: txt_dims = "XYZ"; break; case GAIA_XY_M: txt_dims = "XYM"; break; case GAIA_XY_Z_M: txt_dims = "XYZM"; break; default: txt_dims = "XY"; break; }; } index = 0; cached = 0; if (col_index == 1) index = 1; if (col_index == 2) cached = 1; /* trying to delete old versions [v2.0, v2.2] triggers[if any] */ raw = sqlite3_mprintf ("gti_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gtu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gsi_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gsu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* end deletion old versions [v2.0, v2.2] triggers[if any] */ /* deleting the old INSERT trigger TYPE [if any] */ raw = sqlite3_mprintf ("ggi_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* inserting the new INSERT trigger TYPE */ raw = sqlite3_mprintf ("ggi_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" BEFORE INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, '%q.%q violates Geometry constraint [geom-type or SRID not allowed]')\n" "WHERE (SELECT geometry_type FROM geometry_columns\n" "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)\n" "AND GeometryConstraints(NEW.\"%s\", geometry_type, srid) = 1) IS NULL;\nEND", quoted_trigger, quoted_table, p_table, p_column, p_table, p_column, quoted_column); free (quoted_trigger); free (quoted_table); free (quoted_column); } else { /* legacy metadata style <= v.3.1.0 */ sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" BEFORE INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, '%q.%q violates Geometry constraint [geom-type or SRID not allowed]')\n" "WHERE (SELECT type FROM geometry_columns\n" "WHERE f_table_name = %Q AND f_geometry_column = %Q\n" "AND GeometryConstraints(NEW.\"%s\", type, srid, %Q) = 1) IS NULL;\nEND", quoted_trigger, quoted_table, p_table, p_column, p_table, p_column, quoted_column, txt_dims); free (quoted_trigger); free (quoted_table); free (quoted_column); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* deleting the old UPDATE trigger TYPE [if any] */ raw = sqlite3_mprintf ("ggu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* inserting the new UPDATE trigger TYPE */ raw = sqlite3_mprintf ("ggu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" BEFORE UPDATE OF \"%s\" ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, '%q.%q violates Geometry constraint [geom-type or SRID not allowed]')\n" "WHERE (SELECT geometry_type FROM geometry_columns\n" "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)\n" "AND GeometryConstraints(NEW.\"%s\", geometry_type, srid) = 1) IS NULL;\nEND", quoted_trigger, quoted_column, quoted_table, p_table, p_column, p_table, p_column, quoted_column); free (quoted_trigger); free (quoted_table); free (quoted_column); } else { /* legacy metadata style <= v.3.1.0 */ sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" BEFORE UPDATE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, '%q.%q violates Geometry constraint [geom-type or SRID not allowed]')\n" "WHERE (SELECT type FROM geometry_columns\n" "WHERE f_table_name = %Q AND f_geometry_column = %Q\n" "AND GeometryConstraints(NEW.\"%s\", type, srid, %Q) = 1) IS NULL;\nEND", quoted_trigger, quoted_table, p_table, p_column, p_table, p_column, quoted_column, txt_dims); free (quoted_trigger); free (quoted_table); free (quoted_column); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* inserting SpatialIndex information into the linked list */ curr_idx = malloc (sizeof (struct spatial_index_str)); len = strlen (p_table); curr_idx->TableName = malloc (len + 1); strcpy (curr_idx->TableName, p_table); len = strlen (p_column); curr_idx->ColumnName = malloc (len + 1); strcpy (curr_idx->ColumnName, p_column); curr_idx->ValidRtree = (char) index; curr_idx->ValidCache = (char) cached; curr_idx->Next = NULL; if (!first_idx) first_idx = curr_idx; if (last_idx) last_idx->Next = curr_idx; last_idx = curr_idx; /* deleting the old INSERT trigger SPATIAL_INDEX [if any] */ raw = sqlite3_mprintf ("gii_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; if (metadata_version == 3) { /* deleting the old UPDATE (timestamp) trigger [if any] */ raw = sqlite3_mprintf ("tmu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* deleting the old INSERT (timestamp) trigger [if any] */ raw = sqlite3_mprintf ("tmi_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* deleting the old DELETE (timestamp) trigger [if any] */ raw = sqlite3_mprintf ("tmd_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; } if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ /* inserting the new UPDATE (timestamp) trigger */ raw = sqlite3_mprintf ("tmu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER UPDATE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "UPDATE geometry_columns_time SET last_update = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now')\n" "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q);\nEND", quoted_trigger, quoted_table, p_table, p_column); free (quoted_trigger); free (quoted_table); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* inserting the new INSERT (timestamp) trigger */ raw = sqlite3_mprintf ("tmi_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "UPDATE geometry_columns_time SET last_insert = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now')\n" "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q);\nEND", quoted_trigger, quoted_table, p_table, p_column); free (quoted_trigger); free (quoted_table); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* inserting the new DELETE (timestamp) trigger */ raw = sqlite3_mprintf ("tmd_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER DELETE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "UPDATE geometry_columns_time SET last_delete = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now')\n" "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q);\nEND", quoted_trigger, quoted_table, p_table, p_column); free (quoted_trigger); free (quoted_table); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; } /* deleting the old INSERT trigger SPATIAL_INDEX [if any] */ raw = sqlite3_mprintf ("gid_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* deleting the old UPDATE trigger SPATIAL_INDEX [if any] */ raw = sqlite3_mprintf ("giu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* deleting the old DELETE trigger SPATIAL_INDEX [if any] */ raw = sqlite3_mprintf ("gid_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* deleting the old INSERT trigger MBR_CACHE [if any] */ raw = sqlite3_mprintf ("gci_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* deleting the old UPDATE trigger MBR_CACHE [if any] */ raw = sqlite3_mprintf ("gcu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* deleting the old UPDATE trigger MBR_CACHE [if any] */ raw = sqlite3_mprintf ("gcd_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted_trigger); free (quoted_trigger); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; if (index) { /* inserting the new INSERT trigger RTree */ if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ raw = sqlite3_mprintf ("gii_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("idx_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "DELETE FROM \"%s\" WHERE pkid=NEW.ROWID;\n" "SELECT RTreeAlign(%Q, NEW.ROWID, NEW.\"%s\");\nEND", quoted_trigger, quoted_table, quoted_rtree, raw, quoted_column); sqlite3_free (raw); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } else { /* legacy metadata style <= v.3.1.0 */ raw = sqlite3_mprintf ("gii_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("idx_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "DELETE FROM \"%s\" WHERE pkid=NEW.ROWID;\n" "SELECT RTreeAlign(%Q, NEW.ROWID, NEW.\"%s\");\nEND", quoted_trigger, quoted_table, quoted_rtree, raw, quoted_column); sqlite3_free (raw); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* inserting the new UPDATE trigger RTree */ if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ raw = sqlite3_mprintf ("giu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("idx_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER UPDATE OF \"%s\" ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "DELETE FROM \"%s\" WHERE pkid=NEW.ROWID;\n" "SELECT RTreeAlign(%Q, NEW.ROWID, NEW.\"%s\");\nEND", quoted_trigger, quoted_column, quoted_table, quoted_rtree, raw, quoted_column); sqlite3_free (raw); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } else { /* legacy metadata style <= v.3.1.0 */ raw = sqlite3_mprintf ("giu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("idx_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER UPDATE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "DELETE FROM \"%s\" WHERE pkid=NEW.ROWID;\n" "SELECT RTreeAlign(%Q, NEW.ROWID, NEW.\"%s\");\nEND", quoted_trigger, quoted_table, quoted_rtree, raw, quoted_column); sqlite3_free (raw); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* inserting the new DELETE trigger RTree */ if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ raw = sqlite3_mprintf ("gid_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("idx_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER DELETE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "DELETE FROM \"%s\" WHERE pkid=OLD.ROWID;\nEND", quoted_trigger, quoted_table, quoted_rtree); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } else { /* legacy metadata style <= v.3.1.0 */ raw = sqlite3_mprintf ("gid_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("idx_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER DELETE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "DELETE FROM \"%s\" WHERE pkid=OLD.ROWID;\nEND", quoted_trigger, quoted_table, quoted_rtree); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; } if (cached) { /* inserting the new INSERT trigger MBRcache */ if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ raw = sqlite3_mprintf ("gci_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("cache_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "INSERT INTO \"%s\" (rowid, mbr) VALUES (NEW.ROWID,\nBuildMbrFilter(" "MbrMinX(NEW.\"%s\"), MbrMinY(NEW.\"%s\"), MbrMaxX(NEW.\"%s\"), MbrMaxY(NEW.\"%s\")));\nEND", quoted_trigger, quoted_table, quoted_rtree, quoted_column, quoted_column, quoted_column, quoted_column); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } else { /* legacy metadata style <= v.3.1.0 */ raw = sqlite3_mprintf ("gci_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("cache_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER INSERT ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "INSERT INTO \"%s\" (rowid, mbr) VALUES (NEW.ROWID,\nBuildMbrFilter(" "MbrMinX(NEW.\"%s\"), MbrMinY(NEW.\"%s\"), MbrMaxX(NEW.\"%s\"), MbrMaxY(NEW.\"%s\")));\nEND", quoted_trigger, quoted_table, quoted_rtree, quoted_column, quoted_column, quoted_column, quoted_column); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* inserting the new UPDATE trigger MBRcache */ if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ raw = sqlite3_mprintf ("gcu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("cache_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER UPDATE OF \"%s\" ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "UPDATE \"%s\" SET mbr = BuildMbrFilter(" "MbrMinX(NEW.\"%s\"), MbrMinY(NEW.\"%s\"), MbrMaxX(NEW.\"%s\"), MbrMaxY(NEW.\"%s\"))\n" "WHERE rowid = NEW.ROWID;\nEND", quoted_trigger, quoted_column, quoted_table, quoted_rtree, quoted_column, quoted_column, quoted_column, quoted_column); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } else { /* legacy metadata style <= v.3.1.0 */ raw = sqlite3_mprintf ("gcu_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("cache_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER UPDATE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "UPDATE \"%s\" SET mbr = BuildMbrFilter(" "MbrMinX(NEW.\"%s\"), MbrMinY(NEW.\"%s\"), MbrMaxX(NEW.\"%s\"), MbrMaxY(NEW.\"%s\"))\n" "WHERE rowid = NEW.ROWID;\nEND", quoted_trigger, quoted_table, quoted_rtree, quoted_column, quoted_column, quoted_column, quoted_column); free (quoted_trigger); free (quoted_rtree); free (quoted_table); free (quoted_column); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* inserting the new DELETE trigger MBRcache */ if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ raw = sqlite3_mprintf ("gcd_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("cache_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER DELETE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "DELETE FROM \"%s\" WHERE rowid = OLD.ROWID;\nEND", quoted_trigger, quoted_table, quoted_rtree); free (quoted_trigger); free (quoted_rtree); free (quoted_table); } else { /* legacy metadata style <= v.3.1.0 */ raw = sqlite3_mprintf ("gcd_%s_%s", p_table, p_column); quoted_trigger = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); raw = sqlite3_mprintf ("cache_%s_%s", p_table, p_column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (p_column); sql_statement = sqlite3_mprintf ("CREATE TRIGGER \"%s\" AFTER DELETE ON \"%s\"\n" "FOR EACH ROW BEGIN\n" "DELETE FROM \"%s\" WHERE rowid = OLD.ROWID;\nEND", quoted_trigger, quoted_table, quoted_rtree); free (quoted_trigger); free (quoted_rtree); free (quoted_table); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; } } } ret = sqlite3_finalize (stmt); /* now we'll adjust any related SpatialIndex as required */ curr_idx = first_idx; while (curr_idx) { if (curr_idx->ValidRtree) { /* building RTree SpatialIndex */ int status; raw = sqlite3_mprintf ("idx_%s_%s", curr_idx->TableName, curr_idx->ColumnName); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("CREATE VIRTUAL TABLE \"%s\" " "USING rtree(pkid, xmin, xmax, ymin, ymax)", quoted_rtree); free (quoted_rtree); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; status = buildSpatialIndexEx (sqlite, (unsigned char *) (curr_idx->TableName), curr_idx->ColumnName); if (status == 0) ; else { if (status == -2) errMsg = sqlite3_mprintf ("SpatialIndex error: a physical column named ROWID shadows the real ROWID"); else errMsg = sqlite3_mprintf ("SpatialIndex error: unable to rebuild the T*Tree"); goto error; } } if (curr_idx->ValidCache) { /* building MbrCache SpatialIndex */ raw = sqlite3_mprintf ("cache_%s_%s", curr_idx->TableName, curr_idx->ColumnName); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql (curr_idx->TableName); quoted_column = gaiaDoubleQuotedSql (curr_idx->ColumnName); sql_statement = sqlite3_mprintf ("CREATE VIRTUAL TABLE \"%s\" " "USING MbrCache(\"%s\", \"%s\")", quoted_rtree, quoted_table, quoted_column); free (quoted_rtree); free (quoted_table); free (quoted_column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; } curr_idx = curr_idx->Next; } goto index_cleanup; error: spatialite_e ("updateTableTriggers: \"%s\"\n", errMsg); sqlite3_free (errMsg); index_cleanup: curr_idx = first_idx; while (curr_idx) { next_idx = curr_idx->Next; if (curr_idx->TableName) free (curr_idx->TableName); if (curr_idx->ColumnName) free (curr_idx->ColumnName); free (curr_idx); curr_idx = next_idx; } if (p_table) free (p_table); if (p_column) free (p_column); } SPATIALITE_PRIVATE void buildSpatialIndex (void *p_sqlite, const unsigned char *table, const char *column) { /* DEPRECATED - always use buildSpatialIndexEx as a safer replacement */ buildSpatialIndexEx (p_sqlite, table, column); } SPATIALITE_PRIVATE int validateRowid (void *p_sqlite, const char *table) { /* check for tables containing a physical column named ROWID */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int rowid = 0; char *sql; int ret; const char *name; int i; char **results; int rows; int columns; char *quoted_table = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", quoted_table); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); free (quoted_table); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "rowid") == 0) rowid = 1; } } sqlite3_free_table (results); if (rowid == 0) return 1; return 0; } SPATIALITE_PRIVATE int buildSpatialIndexEx (void *p_sqlite, const unsigned char *table, const char *column) { /* loading a SpatialIndex [RTree] */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; char *raw; char *quoted_rtree; char *quoted_table; char *quoted_column; char *sql_statement; char *errMsg = NULL; int ret; if (!validateRowid (sqlite, (const char *) table)) { /* a physical column named "rowid" shadows the real ROWID */ spatialite_e ("buildSpatialIndex error: a physical column named ROWID shadows the real ROWID\n"); return -2; } raw = sqlite3_mprintf ("idx_%s_%s", table, column); quoted_rtree = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); quoted_table = gaiaDoubleQuotedSql ((const char *) table); quoted_column = gaiaDoubleQuotedSql (column); sql_statement = sqlite3_mprintf ("INSERT INTO \"%s\" " "(pkid, xmin, xmax, ymin, ymax) " "SELECT ROWID, MbrMinX(\"%s\"), MbrMaxX(\"%s\"), MbrMinY(\"%s\"), MbrMaxY(\"%s\") " "FROM \"%s\" WHERE MbrMinX(\"%s\") IS NOT NULL", quoted_rtree, quoted_column, quoted_column, quoted_column, quoted_column, quoted_table, quoted_column); free (quoted_rtree); free (quoted_table); free (quoted_column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("buildSpatialIndex error: \"%s\"\n", errMsg); sqlite3_free (errMsg); return -1; } return 0; } SPATIALITE_PRIVATE int getRealSQLnames (void *p_sqlite, const char *table, const char *column, char **real_table, char **real_column) { /* attempting to retrieve the "real" table and column names (upper/lowercase) */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; char *p_table = NULL; char *p_column = NULL; char *sql_statement; char *quoted; const char *name; int len; sqlite3_stmt *stmt; int ret; sql_statement = sqlite3_mprintf ("SELECT name " "FROM sqlite_master WHERE type = 'table' " "AND Lower(name) = Lower(?)"); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("real_names: error %d \"%s\"\n", sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { name = (const char *) sqlite3_column_text (stmt, 0); len = sqlite3_column_bytes (stmt, 0); if (p_table) free (p_table); p_table = malloc (len + 1); strcpy (p_table, name); } } sqlite3_finalize (stmt); if (p_table == NULL) return 0; quoted = gaiaDoubleQuotedSql (p_table); sql_statement = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", quoted); free (quoted); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("real_names: error %d \"%s\"\n", sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); free (p_table); return 0; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { name = (const char *) sqlite3_column_text (stmt, 1); len = sqlite3_column_bytes (stmt, 1); if (strcasecmp (name, column) == 0) { if (p_column) free (p_column); p_column = malloc (len + 1); strcpy (p_column, name); } } } sqlite3_finalize (stmt); if (p_column == NULL) { free (p_table); return 0; } *real_table = p_table; *real_column = p_column; return 1; } SPATIALITE_PRIVATE void addLayerAttributeField (void *x_list, const char *table_name, const char *geometry_column, int ordinal, const char *column_name, int null_values, int integer_values, int double_values, int text_values, int blob_values, int null_max_size, int max_size, int null_int_range, void *x_integer_min, void *x_integer_max, int null_double_range, double double_min, double double_max) { /* adding some AttributeFiled to a VectorLayer */ gaiaVectorLayersListPtr list = (gaiaVectorLayersListPtr) x_list; sqlite3_int64 integer_min = *((sqlite3_int64 *) x_integer_min); sqlite3_int64 integer_max = *((sqlite3_int64 *) x_integer_max); gaiaLayerAttributeFieldPtr fld; int len; gaiaVectorLayerPtr lyr = list->Current; if (lyr) { if (strcasecmp (lyr->TableName, table_name) == 0 && strcasecmp (lyr->GeometryName, geometry_column) == 0) goto valid_pointer; } list->Current = NULL; lyr = list->First; while (lyr) { if (strcasecmp (lyr->TableName, table_name) == 0 && strcasecmp (lyr->GeometryName, geometry_column) == 0) { list->Current = lyr; goto valid_pointer; } lyr = lyr->Next; } valid_pointer: lyr = list->Current; if (lyr == NULL) return; fld = malloc (sizeof (gaiaLayerAttributeField)); fld->Ordinal = ordinal; len = strlen (column_name); fld->AttributeFieldName = malloc (len + 1); strcpy (fld->AttributeFieldName, column_name); fld->NullValuesCount = null_values; fld->IntegerValuesCount = integer_values; fld->DoubleValuesCount = double_values; fld->TextValuesCount = text_values; fld->BlobValuesCount = blob_values; fld->MaxSize = NULL; fld->IntRange = NULL; fld->DoubleRange = NULL; if (!null_max_size) { fld->MaxSize = malloc (sizeof (gaiaAttributeFieldMaxSize)); fld->MaxSize->MaxSize = max_size; } if (!null_int_range) { fld->IntRange = malloc (sizeof (gaiaAttributeFieldIntRange)); fld->IntRange->MinValue = integer_min; fld->IntRange->MaxValue = integer_max; } if (!null_double_range) { fld->DoubleRange = malloc (sizeof (gaiaAttributeFieldDoubleRange)); fld->DoubleRange->MinValue = double_min; fld->DoubleRange->MaxValue = double_max; } fld->Next = NULL; if (lyr->First == NULL) lyr->First = fld; if (lyr->Last != NULL) lyr->Last->Next = fld; lyr->Last = fld; } SPATIALITE_PRIVATE void addVectorLayer (void *x_list, const char *layer_type, const char *table_name, const char *geometry_column, int geometry_type, int srid, int spatial_index) { /* adding a Layer to a VectorLayersList */ gaiaVectorLayersListPtr list = (gaiaVectorLayersListPtr) x_list; int len; gaiaVectorLayerPtr lyr = malloc (sizeof (gaiaVectorLayer)); lyr->LayerType = GAIA_VECTOR_UNKNOWN; if (strcasecmp (layer_type, "SpatialTable") == 0) lyr->LayerType = GAIA_VECTOR_TABLE; if (strcasecmp (layer_type, "SpatialView") == 0) lyr->LayerType = GAIA_VECTOR_VIEW; if (strcasecmp (layer_type, "VirtualShape") == 0) lyr->LayerType = GAIA_VECTOR_VIRTUAL; len = strlen (table_name); lyr->TableName = malloc (len + 1); strcpy (lyr->TableName, table_name); len = strlen (geometry_column); lyr->GeometryName = malloc (len + 1); strcpy (lyr->GeometryName, geometry_column); lyr->Srid = srid; switch (geometry_type) { case 0: lyr->GeometryType = GAIA_VECTOR_GEOMETRY; lyr->Dimensions = GAIA_XY; break; case 1000: lyr->GeometryType = GAIA_VECTOR_GEOMETRY; lyr->Dimensions = GAIA_XY_Z; break; case 2000: lyr->GeometryType = GAIA_VECTOR_GEOMETRY; lyr->Dimensions = GAIA_XY_M; break; case 3000: lyr->GeometryType = GAIA_VECTOR_GEOMETRY; lyr->Dimensions = GAIA_XY_Z_M; break; case 1: lyr->GeometryType = GAIA_VECTOR_POINT; lyr->Dimensions = GAIA_XY; break; case 1001: lyr->GeometryType = GAIA_VECTOR_POINT; lyr->Dimensions = GAIA_XY_Z; break; case 2001: lyr->GeometryType = GAIA_VECTOR_POINT; lyr->Dimensions = GAIA_XY_M; break; case 3001: lyr->GeometryType = GAIA_VECTOR_POINT; lyr->Dimensions = GAIA_XY_Z_M; break; case 2: lyr->GeometryType = GAIA_VECTOR_LINESTRING; lyr->Dimensions = GAIA_XY; break; case 1002: lyr->GeometryType = GAIA_VECTOR_LINESTRING; lyr->Dimensions = GAIA_XY_Z; break; case 2002: lyr->GeometryType = GAIA_VECTOR_LINESTRING; lyr->Dimensions = GAIA_XY_M; break; case 3002: lyr->GeometryType = GAIA_VECTOR_LINESTRING; lyr->Dimensions = GAIA_XY_Z_M; break; case 3: lyr->GeometryType = GAIA_VECTOR_POLYGON; lyr->Dimensions = GAIA_XY; break; case 1003: lyr->GeometryType = GAIA_VECTOR_POLYGON; lyr->Dimensions = GAIA_XY_Z; break; case 2003: lyr->GeometryType = GAIA_VECTOR_POLYGON; lyr->Dimensions = GAIA_XY_M; break; case 3003: lyr->GeometryType = GAIA_VECTOR_POLYGON; lyr->Dimensions = GAIA_XY_Z_M; break; case 4: lyr->GeometryType = GAIA_VECTOR_MULTIPOINT; lyr->Dimensions = GAIA_XY; break; case 1004: lyr->GeometryType = GAIA_VECTOR_MULTIPOINT; lyr->Dimensions = GAIA_XY_Z; break; case 2004: lyr->GeometryType = GAIA_VECTOR_MULTIPOINT; lyr->Dimensions = GAIA_XY_M; break; case 3004: lyr->GeometryType = GAIA_VECTOR_MULTIPOINT; lyr->Dimensions = GAIA_XY_Z_M; break; case 5: lyr->GeometryType = GAIA_VECTOR_MULTILINESTRING; lyr->Dimensions = GAIA_XY; break; case 1005: lyr->GeometryType = GAIA_VECTOR_MULTILINESTRING; lyr->Dimensions = GAIA_XY_Z; break; case 2005: lyr->GeometryType = GAIA_VECTOR_MULTILINESTRING; lyr->Dimensions = GAIA_XY_M; break; case 3005: lyr->GeometryType = GAIA_VECTOR_MULTILINESTRING; lyr->Dimensions = GAIA_XY_Z_M; break; case 6: lyr->GeometryType = GAIA_VECTOR_MULTIPOLYGON; lyr->Dimensions = GAIA_XY; break; case 1006: lyr->GeometryType = GAIA_VECTOR_MULTIPOLYGON; lyr->Dimensions = GAIA_XY_Z; break; case 2006: lyr->GeometryType = GAIA_VECTOR_MULTIPOLYGON; lyr->Dimensions = GAIA_XY_M; break; case 3006: lyr->GeometryType = GAIA_VECTOR_MULTIPOLYGON; lyr->Dimensions = GAIA_XY_Z_M; break; case 7: lyr->GeometryType = GAIA_VECTOR_GEOMETRYCOLLECTION; lyr->Dimensions = GAIA_XY; break; case 1007: lyr->GeometryType = GAIA_VECTOR_GEOMETRYCOLLECTION; lyr->Dimensions = GAIA_XY_Z; break; case 2007: lyr->GeometryType = GAIA_VECTOR_GEOMETRYCOLLECTION; lyr->Dimensions = GAIA_XY_M; break; case 3007: lyr->GeometryType = GAIA_VECTOR_GEOMETRYCOLLECTION; lyr->Dimensions = GAIA_XY_Z_M; break; default: lyr->GeometryType = GAIA_VECTOR_UNKNOWN; lyr->Dimensions = GAIA_VECTOR_UNKNOWN; break; }; switch (spatial_index) { case 0: lyr->SpatialIndex = GAIA_SPATIAL_INDEX_NONE; break; case 1: lyr->SpatialIndex = GAIA_SPATIAL_INDEX_RTREE; break; case 2: lyr->SpatialIndex = GAIA_SPATIAL_INDEX_MBRCACHE; break; default: lyr->SpatialIndex = GAIA_VECTOR_UNKNOWN; break; }; lyr->ExtentInfos = NULL; lyr->AuthInfos = NULL; lyr->First = NULL; lyr->Last = NULL; lyr->Next = NULL; list->Current = NULL; if (list->First == NULL) list->First = lyr; if (list->Last != NULL) list->Last->Next = lyr; list->Last = lyr; } SPATIALITE_PRIVATE void addVectorLayerExtent (void *x_list, const char *table_name, const char *geometry_column, int count, double min_x, double min_y, double max_x, double max_y) { /* appending a LayerExtent object to the corresponding VectorLayer */ gaiaVectorLayersListPtr list = (gaiaVectorLayersListPtr) x_list; gaiaVectorLayerPtr lyr = list->First; while (lyr) { if (strcasecmp (lyr->TableName, table_name) == 0 && strcasecmp (lyr->GeometryName, geometry_column) == 0) { lyr->ExtentInfos = malloc (sizeof (gaiaLayerExtent)); lyr->ExtentInfos->Count = count; lyr->ExtentInfos->MinX = min_x; lyr->ExtentInfos->MinY = min_y; lyr->ExtentInfos->MaxX = max_x; lyr->ExtentInfos->MaxY = max_y; return; } lyr = lyr->Next; } } static void addVectorLayerAuth (gaiaVectorLayersListPtr list, const char *table_name, const char *geometry_column, int read_only, int hidden) { /* appending a LayerAuth object to the corresponding VectorLayer */ gaiaVectorLayerPtr lyr = list->First; while (lyr) { if (strcasecmp (lyr->TableName, table_name) == 0 && strcasecmp (lyr->GeometryName, geometry_column) == 0) { gaiaLayerAuthPtr auth = malloc (sizeof (gaiaLayerAuth)); lyr->AuthInfos = auth; auth->IsReadOnly = read_only; auth->IsHidden = hidden; return; } lyr = lyr->Next; } } static void freeLayerAttributeField (gaiaLayerAttributeFieldPtr fld) { /* destroying an AttributeField */ if (fld->AttributeFieldName) free (fld->AttributeFieldName); if (fld->MaxSize) free (fld->MaxSize); if (fld->IntRange) free (fld->IntRange); if (fld->DoubleRange) free (fld->DoubleRange); free (fld); } static void freeVectorLayer (gaiaVectorLayerPtr lyr) { /* destroyng a VectorLayer object */ gaiaLayerAttributeFieldPtr fld; gaiaLayerAttributeFieldPtr fldn; if (!lyr) return; if (lyr->TableName) free (lyr->TableName); if (lyr->GeometryName) free (lyr->GeometryName); if (lyr->ExtentInfos) free (lyr->ExtentInfos); if (lyr->AuthInfos) free (lyr->AuthInfos); fld = lyr->First; while (fld) { fldn = fld->Next; freeLayerAttributeField (fld); fld = fldn; } free (lyr); } SPATIALITE_DECLARE void gaiaFreeVectorLayersList (gaiaVectorLayersListPtr list) { /* destroying a VectorLayersList object */ gaiaVectorLayerPtr lyr; gaiaVectorLayerPtr lyr_n; if (!list) return; lyr = list->First; while (lyr) { /* destroying each layer */ lyr_n = lyr->Next; freeVectorLayer (lyr); lyr = lyr_n; } free (list); } static int gaiaGetVectorLayersList_v4 (sqlite3 * handle, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* creating a VectorLayersList object - v.4.0.0 DB layout */ char *sql; int ret; sqlite3_stmt *stmt; int error = 0; /* querying the vector_layers view */ if (table == NULL) sql = sqlite3_mprintf ("SELECT layer_type, table_name, geometry_column, geometry_type, " "srid, spatial_index_enabled FROM vector_layers"); else { if (geometry == NULL) sql = sqlite3_mprintf ("SELECT layer_type, table_name, geometry_column, geometry_type, " "srid, spatial_index_enabled FROM vector_layers " "WHERE Lower(table_name) = Lower(%Q)", table); else sql = sqlite3_mprintf ("SELECT layer_type, table_name, geometry_column, geometry_type, " "srid, spatial_index_enabled FROM vector_layers " "WHERE Lower(table_name) = Lower(%Q) AND " "Lower(geometry_column) = Lower(%Q)", table, geometry); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ const char *layer_type = (const char *) sqlite3_column_text (stmt, 0); const char *table_name = (const char *) sqlite3_column_text (stmt, 1); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 2); int geometry_type = sqlite3_column_int (stmt, 3); int srid = sqlite3_column_int (stmt, 4); int spatial_index = sqlite3_column_int (stmt, 5); addVectorLayer (list, layer_type, table_name, geometry_column, geometry_type, srid, spatial_index); } else error = 1; } ret = sqlite3_finalize (stmt); stop: if (error) return 0; /* querying the vector_layers_statistics view */ if (table == NULL) sql = sqlite3_mprintf ("SELECT table_name, geometry_column, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM vector_layers_statistics"); else { if (geometry == NULL) sql = sqlite3_mprintf ("SELECT table_name, geometry_column, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM vector_layers_statistics " "WHERE Lower(table_name) = Lower(%Q)", table); else sql = sqlite3_mprintf ("SELECT table_name, geometry_column, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM vector_layers_statistics " "WHERE Lower(table_name) = Lower(%Q) AND " "Lower(geometry_column) = Lower(%Q)", table, geometry); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop2; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int is_null = 0; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int count = 0; double min_x = DBL_MAX; double min_y = DBL_MAX; double max_x = 0.0 - DBL_MAX; double max_y = 0.0 - DBL_MAX; if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) is_null = 1; else count = sqlite3_column_int (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) is_null = 1; else min_x = sqlite3_column_double (stmt, 3); if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) is_null = 1; else min_y = sqlite3_column_double (stmt, 4); if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) is_null = 1; else max_x = sqlite3_column_double (stmt, 5); if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) is_null = 1; else max_y = sqlite3_column_double (stmt, 6); if (!is_null) addVectorLayerExtent (list, table_name, geometry_column, count, min_x, min_y, max_x, max_y); } } ret = sqlite3_finalize (stmt); stop2: /* querying the vector_layers_auth view */ if (table == NULL) sql = sqlite3_mprintf ("SELECT table_name, geometry_column, read_only, hidden " "FROM vector_layers_auth"); else { if (geometry == NULL) sql = sqlite3_mprintf ("SELECT table_name, geometry_column, read_only, hidden " "FROM vector_layers_auth WHERE Lower(table_name) = Lower(%Q)", table, geometry); else sql = sqlite3_mprintf ("SELECT table_name, geometry_column, read_only, hidden " "FROM vector_layers_auth " "WHERE Lower(table_name) = Lower(%Q) AND " "Lower(geometry_column) = Lower(%Q)", table, geometry); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop3; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int is_null = 0; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int read_only; int hidden; if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) is_null = 1; else read_only = sqlite3_column_int (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) is_null = 1; else hidden = sqlite3_column_int (stmt, 3); if (!is_null) addVectorLayerAuth (list, table_name, geometry_column, read_only, hidden); } } ret = sqlite3_finalize (stmt); stop3: /* querying the vector_layers_field_infos view */ if (table == NULL) { /* if no "table" is set, we'll never return AttributeField Infos */ goto stop4; } else { if (geometry == NULL) sql = sqlite3_mprintf ("SELECT table_name, geometry_column, ordinal, column_name, " "null_values, integer_values, double_values, text_values, blob_values," "max_size, integer_min, integer_max, double_min, double_max " "FROM vector_layers_field_infos WHERE Lower(table_name) = Lower(%Q)", table, geometry); else sql = sqlite3_mprintf ("SELECT table_name, geometry_column, ordinal, column_name, " "null_values, integer_values, double_values, text_values, blob_values," "max_size, integer_min, integer_max, double_min, double_max " "FROM vector_layers_field_infos " "WHERE Lower(table_name) = Lower(%Q) AND " "Lower(geometry_column) = Lower(%Q)", table, geometry); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop4; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int null_max_size = 0; int null_int_range = 0; int null_double_range = 0; int max_size = 0; sqlite3_int64 integer_min; sqlite3_int64 integer_max; double double_min = DBL_MAX; double double_max = 0.0 - DBL_MAX; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int ordinal = sqlite3_column_int (stmt, 2); const char *column_name = (const char *) sqlite3_column_text (stmt, 3); int null_values = sqlite3_column_int (stmt, 4); int integer_values = sqlite3_column_int (stmt, 5); int double_values = sqlite3_column_int (stmt, 6); int text_values = sqlite3_column_int (stmt, 7); int blob_values = sqlite3_column_int (stmt, 8); if (sqlite3_column_type (stmt, 9) == SQLITE_NULL) null_max_size = 1; else max_size = sqlite3_column_int (stmt, 9); if (sqlite3_column_type (stmt, 10) == SQLITE_NULL || sqlite3_column_type (stmt, 11) == SQLITE_NULL) null_int_range = 1; else { integer_min = sqlite3_column_int64 (stmt, 10); integer_max = sqlite3_column_int64 (stmt, 11); } if (sqlite3_column_type (stmt, 12) == SQLITE_NULL || sqlite3_column_type (stmt, 13) == SQLITE_NULL) null_double_range = 1; else { double_min = sqlite3_column_double (stmt, 12); double_max = sqlite3_column_double (stmt, 13); } addLayerAttributeField (list, table_name, geometry_column, ordinal, column_name, null_values, integer_values, double_values, text_values, blob_values, null_max_size, max_size, null_int_range, &integer_min, &integer_max, null_double_range, double_min, double_max); } } ret = sqlite3_finalize (stmt); stop4: if (error) return 0; return 1; } static int get_table_layers_legacy (sqlite3 * handle, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* fetching Table-based geometries */ int ret; char *sql; const char *name; int i; char **results; int rows; int columns; int f_table = 0; int f_geometry = 0; int type = 0; int dims = 0; int srid = 0; int spatial_index = 0; sqlite3_stmt *stmt; int error = 0; /* checking the GEOMETRY_COLUMN table */ sql = "PRAGMA table_info(geometry_columns)"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "f_table_name") == 0) f_table = 1; if (strcasecmp (name, "f_geometry_column") == 0) f_geometry = 1; if (strcasecmp (name, "type") == 0) type = 1; if (strcasecmp (name, "coord_dimension") == 0) dims = 1; if (strcasecmp (name, "srid") == 0) srid = 1; if (strcasecmp (name, "spatial_index_enabled") == 0) spatial_index = 1; } } sqlite3_free_table (results); if (f_table && f_geometry && type && dims && srid && spatial_index) ; else return 1; if (table == NULL) sql = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column, type, coord_dimension, " "srid, spatial_index_enabled FROM geometry_columns"); else { if (geometry == NULL) sql = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column, type, coord_dimension, " "srid, spatial_index_enabled FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q)", table); else sql = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column, type, coord_dimension, " "srid, spatial_index_enabled FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", table, geometry); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); const char *type = (const char *) sqlite3_column_text (stmt, 2); const char *dims = (const char *) sqlite3_column_text (stmt, 3); int srid = sqlite3_column_int (stmt, 4); int spatial_index = sqlite3_column_int (stmt, 5); int geometry_type = -1; if (strcasecmp (type, "POINT") == 0) geometry_type = 1; if (strcasecmp (type, "LINESTRING") == 0) geometry_type = 2; if (strcasecmp (type, "POLYGON") == 0) geometry_type = 3; if (strcasecmp (type, "MULTIPOINT") == 0) geometry_type = 4; if (strcasecmp (type, "MULTILINESTRING") == 0) geometry_type = 5; if (strcasecmp (type, "MULTIPOLYGON") == 0) geometry_type = 6; if (strcasecmp (type, "GEOMETRYCOLLECTION") == 0) geometry_type = 7; if (strcasecmp (type, "GEOMETRY") == 0) geometry_type = 0; if (strcasecmp (dims, "XYZ") == 0 || strcasecmp (dims, "3") == 0) geometry_type += 1000; if (strcasecmp (dims, "XYM") == 0) geometry_type += 2000; if (strcasecmp (dims, "XYZM") == 0 || strcasecmp (dims, "4") == 0) geometry_type += 3000; addVectorLayer (list, "SpatialTable", table_name, geometry_column, geometry_type, srid, spatial_index); } else error = 1; } ret = sqlite3_finalize (stmt); stop: if (error) return 0; return 1; } static int get_view_layers_legacy (sqlite3 * handle, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* fetching View-based geometries */ int ret; char *sql; const char *name; int i; char **results; int rows; int columns; int f_table = 0; int f_geometry = 0; int type = 0; int dims = 0; int srid = 0; int spatial_index = 0; int view_name = 0; int view_geometry = 0; int fvw_table = 0; int fvw_geometry = 0; sqlite3_stmt *stmt; int error = 0; /* checking the GEOMETRY_COLUMN table */ sql = "PRAGMA table_info(geometry_columns)"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "f_table_name") == 0) f_table = 1; if (strcasecmp (name, "f_geometry_column") == 0) f_geometry = 1; if (strcasecmp (name, "type") == 0) type = 1; if (strcasecmp (name, "coord_dimension") == 0) dims = 1; if (strcasecmp (name, "srid") == 0) srid = 1; if (strcasecmp (name, "spatial_index_enabled") == 0) spatial_index = 1; } } sqlite3_free_table (results); if (f_table && f_geometry && type && dims && srid && spatial_index) ; else return 1; /* checking the VIEWS_GEOMETRY_COLUMN table */ sql = "PRAGMA table_info(views_geometry_columns)"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "view_name") == 0) view_name = 1; if (strcasecmp (name, "view_geometry") == 0) view_geometry = 1; if (strcasecmp (name, "f_table_name") == 0) fvw_table = 1; if (strcasecmp (name, "f_geometry_column") == 0) fvw_geometry = 1; } } sqlite3_free_table (results); if (view_name && view_geometry && fvw_table && fvw_geometry) ; else return 1; if (table == NULL) sql = sqlite3_mprintf ("SELECT a.view_name, a.view_geometry, b.type, b.coord_dimension, " "b.srid, b.spatial_index_enabled FROM views_geometry_columns AS a " "JOIN geometry_columns AS b ON (Lower(a.f_table_name) = Lower(b.f_table_name) " "AND Lower(a.f_geometry_column) = Lower(b.f_geometry_column))"); else { if (geometry == NULL) sql = sqlite3_mprintf ("SELECT a.view_name, a.view_geometry, b.type, b.coord_dimension, " "b.srid, b.spatial_index_enabled FROM views_geometry_columns AS a " "JOIN geometry_columns AS b ON (Lower(a.f_table_name) = Lower(b.f_table_name) " "AND Lower(a.f_geometry_column) = Lower(b.f_geometry_column)) " "WHERE Lower(a.view_name) = Lower(%Q)", table); else sql = sqlite3_mprintf ("SELECT a.view_name, a.view_geometry, b.type, b.coord_dimension, " "b.srid, b.spatial_index_enabled FROM views_geometry_columns AS a " "JOIN geometry_columns AS b ON (Lower(a.f_table_name) = Lower(b.f_table_name) " "AND Lower(a.f_geometry_column) = Lower(b.f_geometry_column)) " "WHERE Lower(a.view_name) = Lower(%Q) AND " "Lower(a.view_geometry) = Lower(%Q)", table, geometry); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { error = 1; goto stop; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); const char *type = (const char *) sqlite3_column_text (stmt, 2); const char *dims = (const char *) sqlite3_column_text (stmt, 3); int srid = sqlite3_column_int (stmt, 4); int spatial_index = sqlite3_column_int (stmt, 5); int geometry_type = -1; if (strcasecmp (type, "POINT") == 0) geometry_type = 1; if (strcasecmp (type, "LINESTRING") == 0) geometry_type = 2; if (strcasecmp (type, "POLYGON") == 0) geometry_type = 3; if (strcasecmp (type, "MULTIPOINT") == 0) geometry_type = 4; if (strcasecmp (type, "MULTILINESTRING") == 0) geometry_type = 5; if (strcasecmp (type, "MULTIPOLYGON") == 0) geometry_type = 6; if (strcasecmp (type, "GEOMETRYCOLLECTION") == 0) geometry_type = 7; if (strcasecmp (type, "GEOMETRY") == 0) geometry_type = 0; if (strcasecmp (dims, "XYZ") == 0 || strcasecmp (dims, "3") == 0) geometry_type += 1000; if (strcasecmp (dims, "XYM") == 0) geometry_type += 2000; if (strcasecmp (dims, "XYZM") == 0 || strcasecmp (dims, "4") == 0) geometry_type += 3000; addVectorLayer (list, "SpatialView", table_name, geometry_column, geometry_type, srid, spatial_index); } else error = 1; } ret = sqlite3_finalize (stmt); stop: if (error) return 0; return 1; } static int get_table_extent_legacy (sqlite3 * handle, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* fetching Table-based extents */ int ret; char *sql; const char *name; int i; char **results; int rows; int columns; int f_table = 0; int f_geometry = 0; int count = 0; int minx = 0; int miny = 0; int maxx = 0; int maxy = 0; sqlite3_stmt *stmt; /* checking the LAYER_STATISTICS table */ sql = "PRAGMA table_info(layer_statistics)"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "table_name") == 0) f_table = 1; if (strcasecmp (name, "geometry_column") == 0) f_geometry = 1; if (strcasecmp (name, "row_count") == 0) count = 1; if (strcasecmp (name, "extent_min_x") == 0) minx = 1; if (strcasecmp (name, "extent_min_y") == 0) miny = 1; if (strcasecmp (name, "extent_max_x") == 0) maxx = 1; if (strcasecmp (name, "extent_max_y") == 0) maxy = 1; } } sqlite3_free_table (results); if (f_table && f_geometry && count && minx && miny && maxx && maxy) ; else return 1; /* querying the layer_statistics table */ if (table == NULL) sql = sqlite3_mprintf ("SELECT table_name, geometry_column, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM layer_statistics"); else { if (geometry == NULL) sql = sqlite3_mprintf ("SELECT table_name, geometry_column, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM layer_statistics " "WHERE Lower(table_name) = Lower(%Q)", table); else sql = sqlite3_mprintf ("SELECT table_name, geometry_column, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM layer_statistics " "WHERE Lower(table_name) = Lower(%Q) AND " "Lower(geometry_column) = Lower(%Q)", table, geometry); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int is_null = 0; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int count = 0; double min_x = DBL_MAX; double min_y = DBL_MAX; double max_x = 0.0 - DBL_MAX; double max_y = 0.0 - DBL_MAX; if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) is_null = 1; else count = sqlite3_column_int (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) is_null = 1; else min_x = sqlite3_column_double (stmt, 3); if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) is_null = 1; else min_y = sqlite3_column_double (stmt, 4); if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) is_null = 1; else max_x = sqlite3_column_double (stmt, 5); if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) is_null = 1; else max_y = sqlite3_column_double (stmt, 6); if (!is_null) addVectorLayerExtent (list, table_name, geometry_column, count, min_x, min_y, max_x, max_y); } } ret = sqlite3_finalize (stmt); stop: return 1; } static int get_view_extent_legacy (sqlite3 * handle, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* fetching View-based extents */ int ret; char *sql; const char *name; int i; char **results; int rows; int columns; int f_table = 0; int f_geometry = 0; int count = 0; int minx = 0; int miny = 0; int maxx = 0; int maxy = 0; sqlite3_stmt *stmt; /* checking the VIEWS_LAYER_STATISTICS table */ sql = "PRAGMA table_info(views_layer_statistics)"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "view_name") == 0) f_table = 1; if (strcasecmp (name, "view_geometry") == 0) f_geometry = 1; if (strcasecmp (name, "row_count") == 0) count = 1; if (strcasecmp (name, "extent_min_x") == 0) minx = 1; if (strcasecmp (name, "extent_min_y") == 0) miny = 1; if (strcasecmp (name, "extent_max_x") == 0) maxx = 1; if (strcasecmp (name, "extent_max_y") == 0) maxy = 1; } } sqlite3_free_table (results); if (f_table && f_geometry && count && minx && miny && maxx && maxy) ; else return 1; /* querying the views_layer_statistics table */ if (table == NULL) sql = sqlite3_mprintf ("SELECT view_name, view_geometry, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM views_layer_statistics"); else { if (geometry == NULL) sql = sqlite3_mprintf ("SELECT view_name, view_geometry, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM views_layer_statistics " "WHERE Lower(view_name) = Lower(%Q)", table); else sql = sqlite3_mprintf ("SELECT view_name, view_geometry, row_count, extent_min_x, " "extent_min_y, extent_max_x, extent_max_y FROM views_layer_statistics " "WHERE Lower(view_name) = Lower(%Q) AND " "Lower(view_geometry) = Lower(%Q)", table, geometry); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int is_null = 0; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int count = 0; double min_x = DBL_MAX; double min_y = DBL_MAX; double max_x = 0.0 - DBL_MAX; double max_y = 0.0 - DBL_MAX; if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) is_null = 1; else count = sqlite3_column_int (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) is_null = 1; else min_x = sqlite3_column_double (stmt, 3); if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) is_null = 1; else min_y = sqlite3_column_double (stmt, 4); if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) is_null = 1; else max_x = sqlite3_column_double (stmt, 5); if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) is_null = 1; else max_y = sqlite3_column_double (stmt, 6); if (!is_null) addVectorLayerExtent (list, table_name, geometry_column, count, min_x, min_y, max_x, max_y); } } ret = sqlite3_finalize (stmt); stop: return 1; } static int get_table_auth_legacy (sqlite3 * handle, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* fetching Table-based Auth */ int ret; char *sql; const char *name; int i; char **results; int rows; int columns; int f_table = 0; int f_geometry = 0; int read_only = 0; int hidden = 0; sqlite3_stmt *stmt; /* checking the GEOMETRY_COLUMNS_AUTH table */ sql = "PRAGMA table_info(geometry_columns_auth)"; ret = sqlite3_get_table (handle, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "f_table_name") == 0) f_table = 1; if (strcasecmp (name, "f_geometry_column") == 0) f_geometry = 1; if (strcasecmp (name, "read_only") == 0) read_only = 1; if (strcasecmp (name, "hidden") == 0) hidden = 1; } } sqlite3_free_table (results); if (f_table && f_geometry && read_only && hidden) ; else return 1; /* querying the geometry_columns_auth table */ if (table == NULL) sql = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column, read_only, hidden " "FROM geometry_columns_auth"); else { if (geometry == NULL) sql = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column, read_only, hidden " "FROM geometry_columns_auth " "WHERE Lower(f_table_name) = Lower(%Q)", table); else sql = sqlite3_mprintf ("SELECT f_table_name, f_geometry_column, read_only, hidden " "FROM geometry_columns_auth " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", table, geometry); } /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto stop; while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a VectorLayer row */ int is_null = 0; const char *table_name = (const char *) sqlite3_column_text (stmt, 0); const char *geometry_column = (const char *) sqlite3_column_text (stmt, 1); int read_only; int hidden; if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) is_null = 1; else read_only = sqlite3_column_int (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) is_null = 1; else hidden = sqlite3_column_int (stmt, 3); if (!is_null) addVectorLayerAuth (list, table_name, geometry_column, read_only, hidden); } } ret = sqlite3_finalize (stmt); stop: return 1; } static int compute_table_fields_statistics (sqlite3 * handle, const char *table, const char *geometry, gaiaVectorLayersListPtr list) { /* computing field statistics - legacy */ gaiaVectorLayerPtr lyr; lyr = list->First; while (lyr) { /* testing if the Table/Geometry is already defined */ if (geometry == NULL) { if (strcasecmp (lyr->TableName, table) == 0) { if (!doComputeFieldInfos (handle, lyr->TableName, lyr->GeometryName, SPATIALITE_STATISTICS_LEGACY, lyr)) return 0; } } else { if (strcasecmp (lyr->TableName, table) == 0 && strcasecmp (lyr->GeometryName, geometry) == 0) { if (!doComputeFieldInfos (handle, lyr->TableName, lyr->GeometryName, SPATIALITE_STATISTICS_LEGACY, lyr)) return 0; } } lyr = lyr->Next; } return 1; } static int check_v4_statistics (sqlite3 * handle) { /* checking if v.4.0.0 statistics tables are supported */ char *sql_statement; int ret; char **results; int rows; int columns; /* testing the SQL Query */ sql_statement = sqlite3_mprintf ("SELECT g.table_name, g.geometry_column, " "s.row_count, s.extent_min_x, s.extent_min_y, " "s.extent_max_x, s.extent_max_y " "FROM vector_layers AS g " "LEFT JOIN vector_layers_statistics AS s ON " "(g.table_name = s.table_name AND " "g.geometry_column = s.geometry_column) LIMIT 1"); ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; sqlite3_free_table (results); return 1; } static int check_v3_statistics (sqlite3 * handle) { /* checking if v.3.0.0 statistics tables are supported */ char *sql_statement; int ret; char **results; int rows; int columns; if (!check_layer_statistics (handle)) return 0; /* testing the SQL Query - Table-based Geometries */ sql_statement = sqlite3_mprintf ("SELECT g.f_table_name, g.f_geometry_column, " "s.row_count, s.extent_min_x, s.extent_min_y, " "s.extent_max_x, s.extent_max_y " "FROM geometry_columns AS g " "LEFT JOIN layer_statistics AS s ON " "(g.f_table_name = s.table_name AND " "g.f_geometry_column = s.geometry_column) LIMIT 1"); ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; sqlite3_free_table (results); if (!check_views_layer_statistics (handle)) return 0; /* testing the SQL Query - View-based Geometries */ sql_statement = sqlite3_mprintf ("SELECT g.view_name, g.view_geometry, " "s.row_count, s.extent_min_x, s.extent_min_y, " "s.extent_max_x, s.extent_max_y " "FROM views_geometry_columns AS g " "LEFT JOIN views_layer_statistics AS s ON " "(g.view_name = s.view_name AND " "g.view_geometry = s.view_geometry) LIMIT 1"); ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; sqlite3_free_table (results); if (!check_virts_layer_statistics (handle)) return 0; /* testing the SQL Query - VirtualShape-based Geometries */ sql_statement = sqlite3_mprintf ("SELECT g.virt_name, g.virt_geometry, " "s.row_count, s.extent_min_x, s.extent_min_y, " "s.extent_max_x, s.extent_max_y " "FROM virts_geometry_columns AS g " "LEFT JOIN virts_layer_statistics AS s ON " "(g.virt_name = s.virt_name AND " "g.virt_geometry = s.virt_geometry) LIMIT 1"); ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; sqlite3_free_table (results); return 1; } static int check_v2_statistics (sqlite3 * handle) { /* checking if v.2.0.0 statistics tables are supported */ char *sql_statement; int ret; char **results; int rows; int columns; if (!check_layer_statistics (handle)) return 0; /* testing the SQL Query - Table-based Geometries */ sql_statement = sqlite3_mprintf ("SELECT g.f_table_name, g.f_geometry_column, " "s.row_count, s.extent_min_x, s.extent_min_y, " "s.extent_max_x, s.extent_max_y " "FROM geometry_columns AS g " "LEFT JOIN layer_statistics AS s ON " "(g.f_table_name = s.table_name AND " "g.f_geometry_column = s.geometry_column) LIMIT 1"); ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; sqlite3_free_table (results); return 1; } static int optimistic_layer_statistics_v4 (sqlite3 * handle, const char *table, const char *geometry) { /* selective statistics update - v.4.0.0 layout */ char *sql_statement; int ret; const char *f_table_name; const char *f_geometry_column; int i; char **results; int rows; int columns; int error = 0; if (table == NULL && geometry == NULL) { /* processing any table/geometry found in GEOMETRY_COLUMNS */ sql_statement = sqlite3_mprintf ("SELECT g.table_name, g.geometry_column " "FROM vector_layers AS g " "LEFT JOIN vector_layers_statistics AS s ON " "(g.table_name = s.table_name AND " "g.geometry_column = s.geometry_column) " "WHERE s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL"); } else if (geometry == NULL) { /* processing any geometry belonging to this table */ sql_statement = sqlite3_mprintf ("SELECT g.table_name, g.geometry_column " "FROM vector_layers AS g " "LEFT JOIN vector_layers_statistics AS s ON " "(g.table_name = s.table_name AND " "g.geometry_column = s.geometry_column) " "WHERE Lower(g.table_name) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table); } else { /* processing a single table/geometry entry */ sql_statement = sqlite3_mprintf ("SELECT g.table_name, g.geometry_column " "FROM vector_layers AS g " "LEFT JOIN vector_layers_statistics AS s ON " "(g.table_name = s.table_name AND " "g.geometry_column = s.geometry_column) " "WHERE Lower(g.table_name) = Lower(%Q) AND " "Lower(g.geometry_column) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table, geometry); } ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { f_table_name = results[(i * columns) + 0]; f_geometry_column = results[(i * columns) + 1]; if (!update_layer_statistics (handle, f_table_name, f_geometry_column)) { error = 1; break; } } } sqlite3_free_table (results); if (error) return 0; return 1; } static int optimistic_layer_statistics_v3 (sqlite3 * handle, const char *table, const char *geometry) { /* selective statistics update - v.3.0.0 layout */ char *sql_statement; int ret; const char *f_table_name; const char *f_geometry_column; int i; char **results; int rows; int columns; int error = 0; /* genuine Table-based Geometries */ if (table == NULL && geometry == NULL) { /* processing any table/geometry found in GEOMETRY_COLUMNS */ sql_statement = sqlite3_mprintf ("SELECT g.f_table_name, g.f_geometry_column " "FROM geometry_columns AS g " "LEFT JOIN layer_statistics AS s ON " "(g.f_table_name = s.table_name AND " "g.f_geometry_column = s.geometry_column) " "WHERE s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL"); } else if (geometry == NULL) { /* processing any geometry belonging to this table */ sql_statement = sqlite3_mprintf ("SELECT g.f_table_name, g.f_geometry_column " "FROM geometry_columns AS g " "LEFT JOIN layer_statistics AS s ON " "(g.f_table_name = s.table_name AND " "g.f_geometry_column = s.geometry_column) " "WHERE Lower(g.f_table_name) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table); } else { /* processing a single table/geometry entry */ sql_statement = sqlite3_mprintf ("SELECT g.f_table_name, g.f_geometry_column " "FROM geometry_columns AS g " "LEFT JOIN layer_statistics AS s ON " "(g.f_table_name = s.table_name AND " "g.f_geometry_column = s.geometry_column) " "WHERE Lower(g.f_table_name) = Lower(%Q) AND " "Lower(g.f_geometry_column) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table, geometry); } ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { f_table_name = results[(i * columns) + 0]; f_geometry_column = results[(i * columns) + 1]; if (!update_layer_statistics (handle, f_table_name, f_geometry_column)) { error = 1; break; } } } sqlite3_free_table (results); if (error) return 0; /* View Based Geometries */ if (table == NULL && geometry == NULL) { /* processing any table/geometry found in GEOMETRY_COLUMNS */ sql_statement = sqlite3_mprintf ("SELECT g.view_name, g.view_geometry " "FROM views_geometry_columns AS g " "LEFT JOIN views_layer_statistics AS s ON " "(g.view_name = s.view_name AND " "g.view_geometry = s.view_geometry) " "WHERE s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL"); } else if (geometry == NULL) { /* processing any geometry belonging to this table */ sql_statement = sqlite3_mprintf ("SELECT g.view_name, g.view_geometry " "FROM views_geometry_columns AS g " "LEFT JOIN views_layer_statistics AS s ON " "(g.view_name = s.view_name AND " "g.view_geometry = s.view_geometry) " "WHERE Lower(g.view_name) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table); } else { /* processing a single table/geometry entry */ sql_statement = sqlite3_mprintf ("SELECT g.view_name, g.view_geometry " "FROM views_geometry_columns AS g " "LEFT JOIN views_layer_statistics AS s ON " "(g.view_name = s.view_name AND " "g.view_geometry = s.view_geometry) " "WHERE Lower(g.view_name) = Lower(%Q) AND " "Lower(g.view_geometry) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table, geometry); } ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { f_table_name = results[(i * columns) + 0]; f_geometry_column = results[(i * columns) + 1]; if (!update_layer_statistics (handle, f_table_name, f_geometry_column)) { error = 1; break; } } } sqlite3_free_table (results); if (error) return 0; /* VirtualShape Based Geometries */ if (table == NULL && geometry == NULL) { /* processing any table/geometry found in GEOMETRY_COLUMNS */ sql_statement = sqlite3_mprintf ("SELECT g.virt_name, g.virt_geometry " "FROM virts_geometry_columns AS g " "LEFT JOIN virts_layer_statistics AS s ON " "(g.virt_name = s.virt_name AND " "g.virt_geometry = s.virt_geometry) " "WHERE s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL"); } else if (geometry == NULL) { /* processing any geometry belonging to this table */ sql_statement = sqlite3_mprintf ("SELECT g.virt_name, g.virt_geometry " "FROM virts_geometry_columns AS g " "LEFT JOIN virts_layer_statistics AS s ON " "(g.virt_name = s.virt_name AND " "g.virt_geometry = s.virt_geometry) " "WHERE Lower(g.virt_name) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table); } else { /* processing a single table/geometry entry */ sql_statement = sqlite3_mprintf ("SELECT g.virt_name, g.virt_geometry " "FROM virts_geometry_columns AS g " "LEFT JOIN virts_layer_statistics AS s ON " "(g.virt_name = s.virt_name AND " "g.virt_geometry = s.virt_geometry) " "WHERE Lower(g.virt_name) = Lower(%Q) AND " "Lower(g.virt_geometry) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table, geometry); } ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { f_table_name = results[(i * columns) + 0]; f_geometry_column = results[(i * columns) + 1]; if (!update_layer_statistics (handle, f_table_name, f_geometry_column)) { error = 1; break; } } } sqlite3_free_table (results); if (error) return 0; return 1; } static int optimistic_layer_statistics_v2 (sqlite3 * handle, const char *table, const char *geometry) { /* selective statistics update - v.2.0.0 layout */ char *sql_statement; int ret; const char *f_table_name; const char *f_geometry_column; int i; char **results; int rows; int columns; int error = 0; /* genuine Table-based Geometries */ if (table == NULL && geometry == NULL) { /* processing any table/geometry found in GEOMETRY_COLUMNS */ sql_statement = sqlite3_mprintf ("SELECT g.f_table_name, g.f_geometry_column " "FROM geometry_columns AS g " "LEFT JOIN layer_statistics AS s ON " "(g.f_table_name = s.table_name AND " "g.f_geometry_column = s.geometry_column) " "WHERE s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL"); } else if (geometry == NULL) { /* processing any geometry belonging to this table */ sql_statement = sqlite3_mprintf ("SELECT g.f_table_name, g.f_geometry_column " "FROM geometry_columns AS g " "LEFT JOIN layer_statistics AS s ON " "(g.f_table_name = s.table_name AND " "g.f_geometry_column = s.geometry_column) " "WHERE Lower(g.f_table_name) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table); } else { /* processing a single table/geometry entry */ sql_statement = sqlite3_mprintf ("SELECT g.f_table_name, g.f_geometry_column " "FROM geometry_columns AS g " "LEFT JOIN layer_statistics AS s ON " "(g.f_table_name = s.table_name AND " "g.f_geometry_column = s.geometry_column) " "WHERE Lower(g.f_table_name) = Lower(%Q) AND " "Lower(g.f_geometry_column) = Lower(%Q) AND " "(s.row_count IS NULL OR s.extent_min_x IS NULL " "OR s.extent_min_y IS NULL OR s.extent_max_y IS NULL " "OR s.extent_max_y IS NULL)", table, geometry); } ret = sqlite3_get_table (handle, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { f_table_name = results[(i * columns) + 0]; f_geometry_column = results[(i * columns) + 1]; if (!update_layer_statistics (handle, f_table_name, f_geometry_column)) { error = 1; break; } } } sqlite3_free_table (results); if (error) return 0; return 1; } static int optimistic_layer_statistics (sqlite3 * handle, const char *table, const char *geometry) { /* selective statistics update */ if (check_v4_statistics (handle)) return optimistic_layer_statistics_v4 (handle, table, geometry); else if (check_v3_statistics (handle)) return optimistic_layer_statistics_v3 (handle, table, geometry); else if (check_v2_statistics (handle)) return optimistic_layer_statistics_v2 (handle, table, geometry); else return 0; } SPATIALITE_DECLARE gaiaVectorLayersListPtr gaiaGetVectorLayersList (sqlite3 * handle, const char *table, const char *geometry, int mode) { /* creating a VectorLayersList object */ gaiaVectorLayersListPtr list; int metadata_version; if (mode == GAIA_VECTORS_LIST_PESSIMISTIC) { /* updating anyway the statistics before querying */ if (!update_layer_statistics (handle, table, geometry)) return NULL; } if (mode == GAIA_VECTORS_LIST_OPTIMISTIC) { /* selectively updating the statistics before querying */ if (!optimistic_layer_statistics (handle, table, geometry)) { /* failure: defaulting to Pessimistic */ if (!update_layer_statistics (handle, table, geometry)) return NULL; } } /* allocating an empty VectorLayersList */ list = malloc (sizeof (gaiaVectorLayersList)); list->First = NULL; list->Last = NULL; list->Current = NULL; metadata_version = checkSpatialMetaData (handle); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ if (!gaiaGetVectorLayersList_v4 (handle, table, geometry, list)) { gaiaFreeVectorLayersList (list); return NULL; } if (list->First == NULL) { gaiaFreeVectorLayersList (list); return NULL; } return list; } /* legacy metadata style <= v.3.x.x */ if (!get_table_layers_legacy (handle, table, geometry, list)) goto error; if (!get_view_layers_legacy (handle, table, geometry, list)) goto error; if (!get_table_extent_legacy (handle, table, geometry, list)) goto error; if (!get_view_extent_legacy (handle, table, geometry, list)) goto error; if (!get_table_auth_legacy (handle, table, geometry, list)) goto error; if (table != NULL && mode == GAIA_VECTORS_LIST_PESSIMISTIC) { if (!compute_table_fields_statistics (handle, table, geometry, list)) goto error; } if (list->First == NULL) { gaiaFreeVectorLayersList (list); return NULL; } return list; error: gaiaFreeVectorLayersList (list); return NULL; } SPATIALITE_DECLARE gaiaGeomCollPtr gaiaGetLayerExtent (sqlite3 * handle, const char *table, const char *geometry, int mode) { /* attempting to get a Layer Full Extent (Envelope) */ gaiaVectorLayersListPtr list; gaiaVectorLayerPtr lyr; double minx = -DBL_MAX; double miny = -DBL_MAX; double maxx = DBL_MAX; double maxy = DBL_MAX; int srid; gaiaGeomCollPtr bbox; gaiaPolygonPtr polyg; gaiaRingPtr rect; int md = GAIA_VECTORS_LIST_OPTIMISTIC; if (table == NULL) return NULL; if (mode) md = GAIA_VECTORS_LIST_PESSIMISTIC; list = gaiaGetVectorLayersList (handle, table, geometry, md); if (list == NULL) return NULL; lyr = list->First; if (lyr == list->Last && lyr != NULL) { srid = lyr->Srid; if (lyr->ExtentInfos) { minx = lyr->ExtentInfos->MinX; miny = lyr->ExtentInfos->MinY; maxx = lyr->ExtentInfos->MaxX; maxy = lyr->ExtentInfos->MaxY; } } gaiaFreeVectorLayersList (list); if (minx == -DBL_MIN || miny == -DBL_MAX || maxx == DBL_MAX || maxy == DBL_MAX) return NULL; /* building the Envelope */ bbox = gaiaAllocGeomColl (); bbox->Srid = srid; polyg = gaiaAddPolygonToGeomColl (bbox, 5, 0); rect = polyg->Exterior; gaiaSetPoint (rect->Coords, 0, minx, miny); /* vertex # 1 */ gaiaSetPoint (rect->Coords, 1, maxx, miny); /* vertex # 2 */ gaiaSetPoint (rect->Coords, 2, maxx, maxy); /* vertex # 3 */ gaiaSetPoint (rect->Coords, 3, minx, maxy); /* vertex # 4 */ gaiaSetPoint (rect->Coords, 4, minx, miny); /* vertex # 5 [same as vertex # 1 to close the polygon] */ return bbox; } SPATIALITE_DECLARE int gaiaStatisticsInvalidate (sqlite3 * sqlite, const char *table, const char *geometry) { /* attempting to immediately and unconditionally invalidate Statistics */ int metadata_version = checkSpatialMetaData (sqlite); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ int ret; char *errMsg = NULL; char *sql_statement; if (table != NULL && geometry != NULL) sql_statement = sqlite3_mprintf ("UPDATE geometry_columns_time SET " "last_insert = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), " "last_update = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), " "last_delete = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now') " "WHERE Lower(f_table_name) = Lower(%Q) AND " "Lower(f_geometry_column) = Lower(%Q)", table, geometry); else if (table != NULL) sql_statement = sqlite3_mprintf ("UPDATE geometry_columns_time SET " "last_insert = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), " "last_update = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), " "last_delete = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now') " "WHERE Lower(f_table_name) = Lower(%Q)", table); else sql_statement = sqlite3_mprintf ("UPDATE geometry_columns_time SET " "last_insert = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), " "last_update = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now'), " "last_delete = strftime('%%Y-%%m-%%dT%%H:%%M:%%fZ', 'now')"); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s: %s\n", sql_statement, errMsg); sqlite3_free (errMsg); return 0; } return 1; } else return 0; } libspatialite-4.3.0a/src/spatialite/spatialite.c0000664000175000017500000411321712544707704016704 00000000000000/* spatialite.c -- SQLite3 spatial extension version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Pepijn Van Eeckhoudt (implementing Android support) Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: this module has been partly funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale (exposing liblwgeom APIs as SpatiaLite own SQL functions) */ #include #include #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include #include #else #include #endif #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #if defined(_WIN32) || defined(WIN32) #include #define isatty _isatty #else #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef ENABLE_LIBXML2 /* LIBXML2 (and thus WFS) enabled */ #include #endif #ifndef OMIT_FREEXL /* including FreeXL */ #include #endif #ifndef OMIT_GEOS /* including GEOS */ #include #endif #ifndef OMIT_PROJ /* including PROJ.4 */ #include #endif #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ /* 64 bit integer: portable format for printf() */ #if defined(_WIN32) && !defined(__MINGW32__) #define FRMT64 "%I64d" #define FRMT64_WO_PCT "I64d" #else #define FRMT64 "%lld" #define FRMT64_WO_PCT "lld" #endif #define GAIA_UNUSED() if (argc || argv) argc = argc; struct gaia_geom_chain_item { /* a struct used to store a chain item */ gaiaGeomCollPtr geom; struct gaia_geom_chain_item *next; }; struct gaia_geom_chain { /* a struct used to store a dynamic chain of GeometryCollections */ int all_polygs; struct gaia_geom_chain_item *first; struct gaia_geom_chain_item *last; }; #ifndef OMIT_GEOCALLBACKS /* supporting RTree geometry callbacks */ struct gaia_rtree_mbr { /* a struct used by R*Tree GeometryCallback functions [MBR] */ double minx; double miny; double maxx; double maxy; }; #endif /* end RTree geometry callbacks */ struct stddev_str { /* a struct to implement StandardVariation and Variance aggregate functions */ int cleaned; double mean; double quot; double count; }; struct fdo_table { /* a struct to implement a linked-list for FDO-ORG table names */ char *table; struct fdo_table *next; }; struct gpkg_table { /* a struct to implement a linked-list for OGC GeoPackage table names */ char *table; struct gpkg_table *next; }; /* ************************************************************************ ** ** the following code has been integrally copied from SQLite's own sources: ** -/ext/misc/eval.c */ /* ** 2014-11-10 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ****************************************************************************** ** ** This SQLite extension implements SQL function eval() which runs ** SQL statements recursively. */ struct EvalResult { /* ** Structure used to accumulate the output */ char *z; /* Accumulated output */ const char *zSep; /* Separator */ int szSep; /* Size of the separator string */ unsigned int nAlloc; /* Number of bytes allocated for z[] */ int nUsed; /* Number of bytes of z[] actually used */ }; static int eval_callback (void *pCtx, int argc, char **argv, char **colnames) { /* ** Callback from sqlite_exec() for the eval() function. */ struct EvalResult *p = (struct EvalResult *) pCtx; int i; if (colnames == NULL) colnames = NULL; /* silencing stupid compiler warnings */ for (i = 0; i < argc; i++) { const char *z = argv[i] ? argv[i] : ""; size_t sz = strlen (z); if (sz + p->nUsed + p->szSep + 1 > p->nAlloc) { char *zNew; p->nAlloc = p->nAlloc * 2 + sz + p->szSep + 1; zNew = sqlite3_realloc (p->z, p->nAlloc); if (zNew == 0) { sqlite3_free (p->z); memset (p, 0, sizeof (*p)); return 1; } p->z = zNew; } if (p->nUsed > 0) { memcpy (&p->z[p->nUsed], p->zSep, p->szSep); p->nUsed += p->szSep; } memcpy (&p->z[p->nUsed], z, sz); p->nUsed += sz; } return 0; } static void fnct_EvalFunc (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* ** Implementation of the eval(X) and eval(X,Y) SQL functions. ** ** Evaluate the SQL text in X. Return the results, using string ** Y as the separator. If Y is omitted, use a single space character. */ const char *zSql; sqlite3 *db; char *zErr = 0; int rc; struct EvalResult x; memset (&x, 0, sizeof (x)); x.zSep = " "; zSql = (const char *) sqlite3_value_text (argv[0]); if (zSql == 0) return; if (argc > 1) { x.zSep = (const char *) sqlite3_value_text (argv[1]); if (x.zSep == 0) return; } x.szSep = (int) strlen (x.zSep); db = sqlite3_context_db_handle (context); rc = sqlite3_exec (db, zSql, eval_callback, &x, &zErr); if (rc != SQLITE_OK) { sqlite3_result_error (context, zErr, -1); sqlite3_free (zErr); } else if (x.zSep == 0) { sqlite3_result_error_nomem (context); sqlite3_free (x.z); } else { sqlite3_result_text (context, x.z, x.nUsed, sqlite3_free); } } static void fnct_spatialite_version (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / spatialite_version() / / return a text string representing the current SpatiaLite version */ int len; const char *p_result = spatialite_version (); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ len = strlen (p_result); sqlite3_result_text (context, p_result, len, SQLITE_TRANSIENT); } static void fnct_spatialite_target_cpu (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / spatialite_target_cpu() / / return a text string representing the current SpatiaLite Target CPU */ int len; const char *p_result = spatialite_target_cpu (); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ len = strlen (p_result); sqlite3_result_text (context, p_result, len, SQLITE_TRANSIENT); } static void fnct_freexl_version (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / freexl_version() / / return a text string representing the current FreeXL version / or NULL if FreeXL is currently unsupported */ #ifndef OMIT_FREEXL /* FreeXL version */ int len; const char *p_result = freexl_version (); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ len = strlen (p_result); sqlite3_result_text (context, p_result, len, SQLITE_TRANSIENT); #else sqlite3_result_null (context); #endif } static void fnct_geos_version (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / geos_version() / / return a text string representing the current GEOS version / or NULL if GEOS is currently unsupported */ #ifndef OMIT_GEOS /* GEOS version */ int len; const char *p_result = GEOSversion (); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ len = strlen (p_result); sqlite3_result_text (context, p_result, len, SQLITE_TRANSIENT); #else sqlite3_result_null (context); #endif } static void fnct_proj4_version (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / proj4_version() / / return a text string representing the current PROJ.4 version / or NULL if PROJ.4 is currently unsupported */ #ifndef OMIT_PROJ /* PROJ.4 version */ int len; const char *p_result = pj_get_release (); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ len = strlen (p_result); sqlite3_result_text (context, p_result, len, SQLITE_TRANSIENT); #else sqlite3_result_null (context); #endif } static void fnct_has_proj (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasProj() / / return 1 if built including Proj.4; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifndef OMIT_PROJ /* PROJ.4 is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_geos (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasGeos() / / return 1 if built including GEOS; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifndef OMIT_GEOS /* GEOS is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_geos_advanced (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasGeosAdvanced() / / return 1 if built including GEOS-ADVANCED; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifdef GEOS_ADVANCED /* GEOS-ADVANCED is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_geos_trunk (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasGeosTrunk() / / return 1 if built including GEOS-TRUNK; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifdef GEOS_TRUNK /* GEOS-TRUNK is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_lwgeom_version (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / lwgeom_version() / / return a text string representing the current LWGEOM version / or NULL if LWGEOM is currently unsupported */ #ifdef ENABLE_LWGEOM /* LWGEOM version */ int len; const char *p_result = splite_lwgeom_version (); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ len = strlen (p_result); sqlite3_result_text (context, p_result, len, SQLITE_TRANSIENT); #else GAIA_UNUSED (); /* LCOV_EXCL_LINE */ sqlite3_result_null (context); #endif } static void fnct_libxml2_version (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / libxml2_version() / / return a text string representing the current LIBXML2 version / or NULL if LIBXML2 is currently unsupported */ #ifdef ENABLE_LIBXML2 /* LIBXML2 version */ int len; const char *p_result = gaia_libxml2_version (); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ len = strlen (p_result); sqlite3_result_text (context, p_result, len, free); #else GAIA_UNUSED (); /* LCOV_EXCL_LINE */ sqlite3_result_null (context); #endif } static void fnct_has_lwgeom (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasLwGeom() / / return 1 if built including LWGEOM; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifdef ENABLE_LWGEOM /* LWGEOM is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_iconv (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasIconv() / / return 1 if built including ICONV; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifndef OMIT_ICONV /* ICONV is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_math_sql (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasMathSql() / / return 1 if built including MATHSQL; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifndef OMIT_MATHSQL /* MATHSQL is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_geo_callbacks (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasGeoCallbacks() / / return 1 if built enabling GEOCALLBACKS; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifndef OMIT_GEOCALLBACKS /* GEO-CALLBACKS are supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_freeXL (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasFreeXL() / / return 1 if built including FreeXL; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifndef OMIT_FREEXL /* FreeXL is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_epsg (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasEpsg() / / return 1 if built including EPSG; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifndef OMIT_EPSG /* EPSG is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_libxml2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasLibXML2() / / return 1 if built including LIBXML2; otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifdef ENABLE_LIBXML2 /* LIBXML2 is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_has_geopackage (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HasGeoPackage() / / return 1 if built including GeoPackage support (GPKG); otherwise 0 */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE is supported */ sqlite3_result_int (context, 1); #else sqlite3_result_int (context, 0); #endif } static void fnct_GeometryConstraints (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeometryConstraints(BLOBencoded geometry, geometry-type, srid) / GeometryConstraints(BLOBencoded geometry, geometry-type, srid, dimensions) / / checks geometry constraints, returning: / / -1 - if some error occurred / 1 - if geometry constraints validation passes / 0 - if geometry constraints validation fails / */ int little_endian; int endian_arch = gaiaEndianArch (); unsigned char *p_blob = NULL; int n_bytes = 0; int srid; int geom_srid = -1; const char *type; int xtype; int geom_type = -1; int geom_normalized_type; const unsigned char *dimensions; int dims = GAIA_XY; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB || sqlite3_value_type (argv[0]) == SQLITE_NULL) ; else { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) type = (const char *) sqlite3_value_text (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { /* current metadata style >= v.4.0.0 */ type = "UNKNOWN"; switch (sqlite3_value_int (argv[1])) { case 0: type = "GEOMETRY"; dims = GAIA_XY; break; case 1: type = "POINT"; dims = GAIA_XY; break; case 2: type = "LINESTRING"; dims = GAIA_XY; break; case 3: type = "POLYGON"; dims = GAIA_XY; break; case 4: type = "MULTIPOINT"; dims = GAIA_XY; break; case 5: type = "MULTILINESTRING"; dims = GAIA_XY; break; case 6: type = "MULTIPOLYGON"; dims = GAIA_XY; break; case 7: type = "GEOMETRYCOLLECTION"; dims = GAIA_XY; break; case 1000: type = "GEOMETRY"; dims = GAIA_XY_Z; break; case 1001: type = "POINT"; dims = GAIA_XY_Z; break; case 1002: type = "LINESTRING"; dims = GAIA_XY_Z; break; case 1003: type = "POLYGON"; dims = GAIA_XY_Z; break; case 1004: type = "MULTIPOINT"; dims = GAIA_XY_Z; break; case 1005: type = "MULTILINESTRING"; dims = GAIA_XY_Z; break; case 1006: type = "MULTIPOLYGON"; dims = GAIA_XY_Z; break; case 1007: type = "GEOMETRYCOLLECTION"; dims = GAIA_XY_Z; break; case 2000: type = "GEOMETRY"; dims = GAIA_XY_M; break; case 2001: type = "POINT"; dims = GAIA_XY_M; break; case 2002: type = "LINESTRING"; dims = GAIA_XY_M; break; case 2003: type = "POLYGON"; dims = GAIA_XY_M; break; case 2004: type = "MULTIPOINT"; dims = GAIA_XY_M; break; case 2005: type = "MULTILINESTRING"; dims = GAIA_XY_M; break; case 2006: type = "MULTIPOLYGON"; dims = GAIA_XY_M; break; case 2007: type = "GEOMETRYCOLLECTION"; dims = GAIA_XY_M; break; case 3000: type = "GEOMETRY"; dims = GAIA_XY_Z_M; break; case 3001: type = "POINT"; dims = GAIA_XY_Z_M; break; case 3002: type = "LINESTRING"; dims = GAIA_XY_Z_M; break; case 3003: type = "POLYGON"; dims = GAIA_XY_Z_M; break; case 3004: type = "MULTIPOINT"; dims = GAIA_XY_Z_M; break; case 3005: type = "MULTILINESTRING"; dims = GAIA_XY_Z_M; break; case 3006: type = "MULTIPOLYGON"; dims = GAIA_XY_Z_M; break; case 3007: type = "GEOMETRYCOLLECTION"; dims = GAIA_XY_Z_M; break; }; } else { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[2]); else { sqlite3_result_int (context, -1); return; } if (argc == 4) { /* explicit dimensions - supporting XYZM */ dimensions = sqlite3_value_text (argv[3]); if (strcasecmp ((char *) dimensions, "XYZ") == 0) dims = GAIA_XY_Z; else if (strcasecmp ((char *) dimensions, "XYM") == 0) dims = GAIA_XY_M; else if (strcasecmp ((char *) dimensions, "XYZM") == 0) dims = GAIA_XY_Z_M; else dims = GAIA_XY; } if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); } if (p_blob) { /* quick Geometry validation */ if (n_bytes < 45) goto illegal_geometry; /* cannot be an internal BLOB WKB geometry */ if (*(p_blob + 0) != GAIA_MARK_START) goto illegal_geometry; /* failed to recognize START signature */ if (*(p_blob + (n_bytes - 1)) != GAIA_MARK_END) goto illegal_geometry; /* failed to recognize END signature */ if (*(p_blob + 38) != GAIA_MARK_MBR) goto illegal_geometry; /* failed to recognize MBR signature */ if (*(p_blob + 1) == GAIA_LITTLE_ENDIAN) little_endian = 1; else if (*(p_blob + 1) == GAIA_BIG_ENDIAN) little_endian = 0; else goto illegal_geometry; /* unknown encoding; neither little-endian nor big-endian */ geom_type = gaiaImport32 (p_blob + 39, little_endian, endian_arch); geom_srid = gaiaImport32 (p_blob + 2, little_endian, endian_arch); goto valid_geometry; illegal_geometry: sqlite3_result_int (context, -1); return; } valid_geometry: xtype = GAIA_UNKNOWN; if (strcasecmp ((char *) type, "POINT") == 0) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_POINTZ; break; case GAIA_XY_M: xtype = GAIA_POINTM; break; case GAIA_XY_Z_M: xtype = GAIA_POINTZM; break; default: xtype = GAIA_POINT; break; }; } if (strcasecmp ((char *) type, "LINESTRING") == 0) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_LINESTRINGZ; break; case GAIA_XY_M: xtype = GAIA_LINESTRINGM; break; case GAIA_XY_Z_M: xtype = GAIA_LINESTRINGZM; break; default: xtype = GAIA_LINESTRING; break; }; } if (strcasecmp ((char *) type, "POLYGON") == 0) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_POLYGONZ; break; case GAIA_XY_M: xtype = GAIA_POLYGONM; break; case GAIA_XY_Z_M: xtype = GAIA_POLYGONZM; break; default: xtype = GAIA_POLYGON; break; }; } if (strcasecmp ((char *) type, "MULTIPOINT") == 0) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_MULTIPOINTZ; break; case GAIA_XY_M: xtype = GAIA_MULTIPOINTM; break; case GAIA_XY_Z_M: xtype = GAIA_MULTIPOINTZM; break; default: xtype = GAIA_MULTIPOINT; break; }; } if (strcasecmp ((char *) type, "MULTILINESTRING") == 0) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_MULTILINESTRINGZ; break; case GAIA_XY_M: xtype = GAIA_MULTILINESTRINGM; break; case GAIA_XY_Z_M: xtype = GAIA_MULTILINESTRINGZM; break; default: xtype = GAIA_MULTILINESTRING; break; }; } if (strcasecmp ((char *) type, "MULTIPOLYGON") == 0) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_MULTIPOLYGONZ; break; case GAIA_XY_M: xtype = GAIA_MULTIPOLYGONM; break; case GAIA_XY_Z_M: xtype = GAIA_MULTIPOLYGONZM; break; default: xtype = GAIA_MULTIPOLYGON; break; }; } if (strcasecmp ((char *) type, "GEOMETRYCOLLECTION") == 0) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_GEOMETRYCOLLECTIONZ; break; case GAIA_XY_M: xtype = GAIA_GEOMETRYCOLLECTIONM; break; case GAIA_XY_Z_M: xtype = GAIA_GEOMETRYCOLLECTIONZM; break; default: xtype = GAIA_GEOMETRYCOLLECTION; break; }; } switch (geom_type) { /* adjusting COMPRESSED Geometries */ case GAIA_COMPRESSED_LINESTRING: geom_normalized_type = GAIA_LINESTRING; break; case GAIA_COMPRESSED_LINESTRINGZ: geom_normalized_type = GAIA_LINESTRINGZ; break; case GAIA_COMPRESSED_LINESTRINGM: geom_normalized_type = GAIA_LINESTRINGM; break; case GAIA_COMPRESSED_LINESTRINGZM: geom_normalized_type = GAIA_LINESTRINGZM; break; case GAIA_COMPRESSED_POLYGON: geom_normalized_type = GAIA_POLYGON; break; case GAIA_COMPRESSED_POLYGONZ: geom_normalized_type = GAIA_POLYGONZ; break; case GAIA_COMPRESSED_POLYGONM: geom_normalized_type = GAIA_POLYGONM; break; case GAIA_COMPRESSED_POLYGONZM: geom_normalized_type = GAIA_POLYGONZM; break; default: geom_normalized_type = geom_type; break; }; if (strcasecmp ((char *) type, "GEOMETRY") == 0) xtype = -1; if (xtype == GAIA_UNKNOWN) sqlite3_result_int (context, -1); else { ret = 1; if (p_blob) { /* skipping NULL Geometry; this is assumed to be always good */ if (geom_srid != srid) ret = 0; if (xtype == -1) ; else if (xtype != geom_normalized_type) ret = 0; } sqlite3_result_int (context, ret); } } static void fnct_RTreeAlign (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RTreeAlign(RTree-table-name, PKID-value, BLOBencoded geometry) / / attempts to update the associated R*Tree, returning: / / -1 - if some invalid arg was passed / 1 - successful update / 0 - update failure / */ unsigned char *p_blob = NULL; int n_bytes = 0; sqlite3_int64 pkid; const char *rtree_table; char *table_name; int len; char pkv[64]; gaiaGeomCollPtr geom = NULL; int ret; char *sql_statement; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) rtree_table = (const char *) sqlite3_value_text (argv[0]); else { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) pkid = sqlite3_value_int64 (argv[1]); else { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[2]) == SQLITE_BLOB || sqlite3_value_type (argv[2]) == SQLITE_NULL) ; else { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[2]) == SQLITE_BLOB) { p_blob = (unsigned char *) sqlite3_value_blob (argv[2]); n_bytes = sqlite3_value_bytes (argv[2]); geom = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); } if (geom == NULL) { /* NULL geometry: nothing to do */ sqlite3_result_int (context, 1); } else { /* INSERTing into the R*Tree */ if (*(rtree_table + 0) == '"' && *(rtree_table + strlen (rtree_table) - 1) == '"') { /* earlier versions may pass an already quoted name */ char *dequoted_table_name; len = strlen (rtree_table); table_name = malloc (len + 1); strcpy (table_name, rtree_table); dequoted_table_name = gaiaDequotedSql (table_name); free (table_name); if (dequoted_table_name == NULL) { sqlite3_result_int (context, -1); return; } table_name = gaiaDoubleQuotedSql (dequoted_table_name); free (dequoted_table_name); } else table_name = gaiaDoubleQuotedSql (rtree_table); sprintf (pkv, FRMT64, pkid); sql_statement = sqlite3_mprintf ("INSERT INTO \"%s\" (pkid, xmin, ymin, xmax, ymax) " "VALUES (%s, %1.12f, %1.12f, %1.12f, %1.12f)", table_name, pkv, geom->MinX, geom->MinY, geom->MaxX, geom->MaxY); gaiaFreeGeomColl (geom); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); free (table_name); if (ret != SQLITE_OK) sqlite3_result_int (context, 0); else sqlite3_result_int (context, 1); } } static void fnct_IsValidFont (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsValidFont(BLOBencoded font) / / basic version intended to be overloaded by RasterLite-2 / always return 0 (FALSE) / or -1 (INVALID ARGS) / */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } sqlite3_result_int (context, 0); } static void fnct_CheckFontFacename (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CheckFontfaceName(TEXT facename, BLOBencoded font) / / basic version intended to be overloaded by RasterLite-2 / always return NULL / */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } sqlite3_result_int (context, 0); } static void fnct_GetFontFamily (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GetFontFamily(BLOBencoded font) / / basic version intended to be overloaded by RasterLite-2 / always return NULL / */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ sqlite3_result_null (context); } static void fnct_IsFontBold (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsFontBold(BLOBencoded font) / / basic version intended to be overloaded by RasterLite-2 / always return -1 / */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ sqlite3_result_int (context, -1); } static void fnct_IsFontItalic (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsFontItalic(BLOBencoded font) / / basic version intended to be overloaded by RasterLite-2 / always return -1 / */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ sqlite3_result_int (context, -1); } static void fnct_IsValidPixel (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsValidPixel(BLOBencoded pixel, text sample_type, int num_bands) / / basic version intended to be overloaded by RasterLite-2 / always return 0 (FALSE) / or -1 (INVALID ARGS) / */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } sqlite3_result_int (context, 0); } static void fnct_IsValidRasterPalette (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsValidRasterPalette(BLOBencoded palette, text sample_type) / / basic version intended to be overloaded by RasterLite-2 / always return 0 (FALSE) / or -1 (INVALID ARGS) / */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } sqlite3_result_int (context, 0); } static void fnct_IsValidRasterStatistics (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsValidRasterStatistics(text coverage, BLOBencoded statistics) / or / IsValidRasterStatistics(BLOBencoded statistics, text sample_type, int num_bands) / / basic version intended to be overloaded by RasterLite-2 / always return 0 (FALSE) / or -1 (INVALID ARGS) / */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc == 2) { if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } } else { if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } } sqlite3_result_int (context, 0); } static void fnct_IsValidRasterTile (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsValidRasterTile(text coverage, integer level, BLOBencoded tile_odd, / BLOBencoded tile_even) / / basic version intended to be overloaded by RasterLite-2 / always return 0 (FALSE) / or -1 (INVALID ARGS) / */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[2]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[3]) != SQLITE_BLOB && sqlite3_value_type (argv[3]) != SQLITE_NULL) { sqlite3_result_int (context, -1); return; } sqlite3_result_int (context, 0); } static void fnct_IsPopulatedCoverage (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsPopulatedCoverage(text coverage) / / check if a RasterCoverage is already populated / returns 1 if TRUE, 0 if FALSE / -1 on invalid arguments */ const char *coverage; int ret; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } coverage = (const char *) sqlite3_value_text (argv[0]); ret = checkPopulatedCoverage (sqlite, coverage); sqlite3_result_int (context, ret); return; } static int is_without_rowid_table (sqlite3 * sqlite, const char *table) { /* internal utility functions; checks for WITHOUT ROWID tables */ char *sql; char *xtable; int ret; int i; char **results; int rows; int columns; int j; char **results2; int rows2; int columns2; char *errMsg = NULL; int without_rowid = 0; xtable = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("PRAGMA index_list(\"%s\")", xtable); free (xtable); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 1; } for (i = 1; i <= rows; i++) { const char *index = results[(i * columns) + 1]; sql = sqlite3_mprintf ("SELECT count(*) FROM sqlite_master WHERE " "type = 'index' AND Lower(tbl_name) = Lower(%Q) " "AND Lower(name) = Lower(%Q)", table, index); ret = sqlite3_get_table (sqlite, sql, &results2, &rows2, &columns2, &errMsg); sqlite3_free (sql); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 1; } for (j = 1; j <= rows2; j++) { if (atoi (results2[(j * columns2) + 0]) == 0) without_rowid = 1; } sqlite3_free_table (results2); } sqlite3_free_table (results); return without_rowid; } static int checkGeoPackage (sqlite3 * handle) { /* testing for GeoPackage meta-tables */ sqlite3 *sqlite = (sqlite3 *) handle; char sql[1024]; int ret; const char *name; int table_name = 0; int column_name = 0; int geometry_type_name = 0; int srs_id_gc = 0; int has_z = 0; int has_m = 0; int gpkg_gc = 0; int srs_id_srs = 0; int srs_name = 0; int gpkg_srs = 0; int i; char **results; int rows; int columns; /* checking the GPKG_GEOMETRY_COLUMNS table */ strcpy (sql, "PRAGMA table_info(gpkg_geometry_columns)"); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) goto unknown; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "table_name") == 0) table_name = 1; if (strcasecmp (name, "column_name") == 0) column_name = 1; if (strcasecmp (name, "geometry_type_name") == 0) geometry_type_name = 1; if (strcasecmp (name, "srs_id") == 0) srs_id_gc = 1; if (strcasecmp (name, "z") == 0) has_z = 1; if (strcasecmp (name, "m") == 0) has_m = 1; } } sqlite3_free_table (results); if (table_name && column_name && geometry_type_name && srs_id_gc && has_z && has_m) gpkg_gc = 1; /* checking the GPKG_SPATIAL_REF_SYS table */ strcpy (sql, "PRAGMA table_info(gpkg_spatial_ref_sys)"); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) goto unknown; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "srs_id") == 0) srs_id_srs = 1; if (strcasecmp (name, "srs_name") == 0) srs_name = 1; } } sqlite3_free_table (results); if (srs_id_srs && srs_name) gpkg_srs = 1; if (gpkg_gc && gpkg_srs) return 1; unknown: return 0; } SPATIALITE_PRIVATE int checkSpatialMetaData (const void *handle) { /* internal utility function: / / for FDO-OGR interoperability and cross-version seamless compatibility: / tests the SpatialMetadata type, returning: / / 0 - if no valid SpatialMetaData were found / 1 - if SpatiaLite-like (legacy) SpatialMetadata were found / 2 - if FDO-OGR-like SpatialMetadata were found / 3 - if SpatiaLite-like (current) SpatialMetadata were / 4 - if GeoPackage SpatialMetadata were found / */ sqlite3 *sqlite = (sqlite3 *) handle; int spatialite_legacy_rs = 0; int spatialite_rs = 0; int fdo_rs = 0; int spatialite_legacy_gc = 0; int spatialite_gc = 0; int fdo_gc = 0; int rs_srid = 0; int auth_name = 0; int auth_srid = 0; int srtext = 0; int ref_sys_name = 0; int proj4text = 0; int f_table_name = 0; int f_geometry_column = 0; int geometry_type = 0; int coord_dimension = 0; int gc_srid = 0; int geometry_format = 0; int type = 0; int spatial_index_enabled = 0; char sql[1024]; int ret; const char *name; int i; char **results; int rows; int columns; /* checking the GEOMETRY_COLUMNS table */ strcpy (sql, "PRAGMA table_info(geometry_columns)"); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) goto unknown; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "f_table_name") == 0) f_table_name = 1; if (strcasecmp (name, "f_geometry_column") == 0) f_geometry_column = 1; if (strcasecmp (name, "geometry_type") == 0) geometry_type = 1; if (strcasecmp (name, "coord_dimension") == 0) coord_dimension = 1; if (strcasecmp (name, "srid") == 0) gc_srid = 1; if (strcasecmp (name, "geometry_format") == 0) geometry_format = 1; if (strcasecmp (name, "type") == 0) type = 1; if (strcasecmp (name, "spatial_index_enabled") == 0) spatial_index_enabled = 1; } } sqlite3_free_table (results); if (f_table_name && f_geometry_column && type && coord_dimension && gc_srid && spatial_index_enabled) spatialite_legacy_gc = 1; if (f_table_name && f_geometry_column && geometry_type && coord_dimension && gc_srid && spatial_index_enabled) spatialite_gc = 1; if (f_table_name && f_geometry_column && geometry_type && coord_dimension && gc_srid && geometry_format) fdo_gc = 1; /* checking the SPATIAL_REF_SYS table */ strcpy (sql, "PRAGMA table_info(spatial_ref_sys)"); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) goto unknown; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "srid") == 0) rs_srid = 1; if (strcasecmp (name, "auth_name") == 0) auth_name = 1; if (strcasecmp (name, "auth_srid") == 0) auth_srid = 1; if (strcasecmp (name, "srtext") == 0) srtext = 1; if (strcasecmp (name, "ref_sys_name") == 0) ref_sys_name = 1; if (strcasecmp (name, "proj4text") == 0) proj4text = 1; if (strcasecmp (name, "srtext") == 0) srtext = 1; } } sqlite3_free_table (results); if (rs_srid && auth_name && auth_srid && ref_sys_name && proj4text && srtext) spatialite_rs = 1; if (rs_srid && auth_name && auth_srid && ref_sys_name && proj4text) spatialite_legacy_rs = 1; if (rs_srid && auth_name && auth_srid && srtext) fdo_rs = 1; /* verifying the MetaData format */ if (spatialite_legacy_gc && spatialite_legacy_rs) return 1; if (fdo_gc && fdo_rs) return 2; if (spatialite_gc && spatialite_rs) return 3; unknown: if (checkGeoPackage (sqlite)) return 4; return 0; } static void add_fdo_table (struct fdo_table **first, struct fdo_table **last, const char *table, int len) { /* adds an FDO-OGR styled Geometry Table to corresponding linked list */ struct fdo_table *p = malloc (sizeof (struct fdo_table)); p->table = malloc (len + 1); strcpy (p->table, table); p->next = NULL; if (!(*first)) (*first) = p; if ((*last)) (*last)->next = p; (*last) = p; } static void free_fdo_tables (struct fdo_table *first) { /* memory cleanup; destroying the FDO-OGR tables linked list */ struct fdo_table *p; struct fdo_table *pn; p = first; while (p) { pn = p->next; if (p->table) free (p->table); free (p); p = pn; } } static void fnct_AutoFDOStart (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AutoFDOStart(void) / / for FDO-OGR interoperability: / tests the SpatialMetadata type, then automatically / creating a VirtualFDO table for each FDO-OGR main table / declared within FDO-styled SpatialMetadata / */ int ret; const char *name; int i; char **results; int rows; int columns; char *sql_statement; int count = 0; struct fdo_table *first = NULL; struct fdo_table *last = NULL; struct fdo_table *p; int len; char *xname; char *xxname; char *xtable; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (checkSpatialMetaData (sqlite) == 2) { /* ok, creating VirtualFDO tables */ sql_statement = "SELECT DISTINCT f_table_name FROM geometry_columns"; ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) goto error; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 0]; if (name) { len = strlen (name); add_fdo_table (&first, &last, name, len); } } } sqlite3_free_table (results); p = first; while (p) { /* destroying the VirtualFDO table [if existing] */ xxname = sqlite3_mprintf ("fdo_%s", p->table); xname = gaiaDoubleQuotedSql (xxname); sqlite3_free (xxname); sql_statement = sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\"", xname); free (xname); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* creating the VirtualFDO table */ xxname = sqlite3_mprintf ("fdo_%s", p->table); xname = gaiaDoubleQuotedSql (xxname); sqlite3_free (xxname); xtable = gaiaDoubleQuotedSql (p->table); sql_statement = sqlite3_mprintf ("CREATE VIRTUAL TABLE \"%s\" USING VirtualFDO(\"%s\")", xname, xtable); free (xname); free (xtable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; count++; p = p->next; } error: free_fdo_tables (first); sqlite3_result_int (context, count); return; } sqlite3_result_int (context, 0); return; } static void fnct_AutoFDOStop (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AutoFDOStop(void) / / for FDO-OGR interoperability: / tests the SpatialMetadata type, then automatically / removes any VirtualFDO table / */ int ret; const char *name; int i; char **results; int rows; int columns; char *sql_statement; int count = 0; struct fdo_table *first = NULL; struct fdo_table *last = NULL; struct fdo_table *p; int len; char *xname; char *xxname; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (checkSpatialMetaData (sqlite) == 2) { /* ok, removing VirtualFDO tables */ sql_statement = "SELECT DISTINCT f_table_name FROM geometry_columns"; ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) goto error; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 0]; if (name) { len = strlen (name); add_fdo_table (&first, &last, name, len); } } } sqlite3_free_table (results); p = first; while (p) { /* destroying the VirtualFDO table [if existing] */ xxname = sqlite3_mprintf ("fdo_%s", p->table); xname = gaiaDoubleQuotedSql (xxname); sqlite3_free (xxname); sql_statement = sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\"", xname); free (xname); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; count++; p = p->next; } error: free_fdo_tables (first); sqlite3_result_int (context, count); return; } sqlite3_result_int (context, 0); return; } static void fnct_CheckSpatialMetaData (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CheckSpatialMetaData(void) / / for FDO-OGR interoperability: / tests the SpatialMetadata type, returning: / / 0 - if no valid SpatialMetaData were found / 1 - if SpatiaLite-legacy SpatialMetadata were found / 2 - if FDO-OGR-like SpatialMetadata were found / 3 - if SpatiaLite-current SpatialMetadata were found / 4 - if GeoPackage SpatialMetadata were found / */ sqlite3 *sqlite; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ sqlite = sqlite3_context_db_handle (context); ret = checkSpatialMetaData (sqlite); if (ret == 3) { /* trying to create the advanced metadata tables >= v.4.0.0 */ createAdvancedMetaData (sqlite); } sqlite3_result_int (context, ret); return; } static void fnct_InitSpatialMetaData (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / InitSpatialMetaData() / or / InitSpatialMetaData(text mode) / or / InitSpatialMetaData(integer transaction) / or / InitSpatialMetaData(integer transaction, text mode) / / creates the SPATIAL_REF_SYS and GEOMETRY_COLUMNS tables / returns 1 on success / 0 on failure */ char sql[8192]; char *errMsg = NULL; int ret; int transaction = 0; const char *xmode; int mode = GAIA_EPSG_ANY; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc == 1) { if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { xmode = (const char *) sqlite3_value_text (argv[0]); if (strcasecmp (xmode, "NONE") == 0 || strcasecmp (xmode, "EMPTY") == 0) mode = GAIA_EPSG_NONE; if (strcasecmp (xmode, "WGS84") == 0 || strcasecmp (xmode, "WGS84_ONLY") == 0) mode = GAIA_EPSG_WGS84_ONLY; } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) transaction = sqlite3_value_int (argv[0]); else { spatialite_e ("InitSpatialMetaData() error: argument 1 is not of the String or Integer type\n"); sqlite3_result_int (context, 0); return; } } if (argc == 2) { if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) { spatialite_e ("InitSpatialMetaData() error: argument 1 is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("InitSpatialMetaData() error: argument 2 is not of the String type\n"); sqlite3_result_int (context, 0); return; } transaction = sqlite3_value_int (argv[0]); xmode = (const char *) sqlite3_value_text (argv[1]); if (strcasecmp (xmode, "NONE") == 0 || strcasecmp (xmode, "EMPTY") == 0) mode = GAIA_EPSG_NONE; if (strcasecmp (xmode, "WGS84") == 0 || strcasecmp (xmode, "WGS84_ONLY") == 0) mode = GAIA_EPSG_WGS84_ONLY; } if (transaction) { /* starting a Transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; } /* creating the SPATIAL_REF_SYS table */ strcpy (sql, "CREATE TABLE spatial_ref_sys (\n"); strcat (sql, "srid INTEGER NOT NULL PRIMARY KEY,\n"); strcat (sql, "auth_name TEXT NOT NULL,\n"); strcat (sql, "auth_srid INTEGER NOT NULL,\n"); strcat (sql, "ref_sys_name TEXT NOT NULL DEFAULT 'Unknown',\n"); strcat (sql, "proj4text TEXT NOT NULL,\n"); strcat (sql, "srtext TEXT NOT NULL DEFAULT 'Undefined')"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; strcpy (sql, "CREATE UNIQUE INDEX idx_spatial_ref_sys \n"); strcat (sql, "ON spatial_ref_sys (auth_srid, auth_name)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; updateSpatiaLiteHistory (sqlite, "spatial_ref_sys", NULL, "table successfully created"); /* creating the GEOMETRY_COLUMNS table */ if (!createGeometryColumns (sqlite)) goto error; /* creating the GEOM_COLS_REF_SYS view */ strcpy (sql, "CREATE VIEW geom_cols_ref_sys AS\n"); strcat (sql, "SELECT f_table_name, f_geometry_column, geometry_type,\n"); strcat (sql, "coord_dimension, spatial_ref_sys.srid AS srid,\n"); strcat (sql, "auth_name, auth_srid, ref_sys_name, proj4text, srtext\n"); strcat (sql, "FROM geometry_columns, spatial_ref_sys\n"); strcat (sql, "WHERE geometry_columns.srid = spatial_ref_sys.srid"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); updateSpatiaLiteHistory (sqlite, "geom_cols_ref_sys", NULL, "view 'geom_cols_ref_sys' successfully created"); if (ret != SQLITE_OK) goto error; if (spatial_ref_sys_init2 (sqlite, mode, 0)) { if (mode == GAIA_EPSG_NONE) updateSpatiaLiteHistory (sqlite, "spatial_ref_sys", NULL, "table successfully created [empty]"); else updateSpatiaLiteHistory (sqlite, "spatial_ref_sys", NULL, "table successfully populated"); } if (!createAdvancedMetaData (sqlite)) goto error; /* creating the SpatialIndex VIRTUAL TABLE */ strcpy (sql, "CREATE VIRTUAL TABLE SpatialIndex "); strcat (sql, "USING VirtualSpatialIndex()"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; /* creating the ElementaryGeometries VIRTUAL TABLE */ strcpy (sql, "CREATE VIRTUAL TABLE ElementaryGeometries "); strcat (sql, "USING VirtualElementary()"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; if (transaction) { /* confirming the still pending Transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; } sqlite3_result_int (context, 1); return; error: spatialite_e ("InitSpatiaMetaData() error:\"%s\"\n", errMsg); sqlite3_free (errMsg); if (transaction) { /* performing a Rollback */ ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e (" InitSpatiaMetaData() error:\"%s\"\n", errMsg); sqlite3_free (errMsg); } } sqlite3_result_int (context, 0); return; } static void fnct_CloneTable (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CloneTable(text db_prefix, text in_table, text out_table, integer transaction) / CloneTable(text db_prefix, text in_table, text out_table, integer transaction, / ... text option1 ..., ... text option2 ..., text option10) / / cloning a whole table [CREATE and then COPY] / returns 1 on success / 0 on failure (NULL on invalid arguments) */ int ret; char *errMsg = NULL; const char *db_prefix; const char *in_table; const char *out_table; int transaction = 0; int active = 0; const void *cloner = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) db_prefix = (const char *) sqlite3_value_text (argv[0]); else { spatialite_e ("CloneTable() error: argument 1 is not of the String or TEXT type\n"); sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) in_table = (const char *) sqlite3_value_text (argv[1]); else { spatialite_e ("CloneTable() error: argument 2 is not of the String or TEXT type\n"); sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) out_table = (const char *) sqlite3_value_text (argv[2]); else { spatialite_e ("CloneTable() error: argument 3 is not of the String or TEXT type\n"); sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) transaction = sqlite3_value_int (argv[3]); else { spatialite_e ("CloneTable() error: argument 4 is not of the Integer type\n"); sqlite3_result_null (context); return; } /* additional options */ if (argc > 4 && sqlite3_value_type (argv[4]) != SQLITE_TEXT) { spatialite_e ("CloneTable() error: argument 5 is not of the String or TEXT type\n"); sqlite3_result_null (context); return; } if (argc > 5 && sqlite3_value_type (argv[5]) != SQLITE_TEXT) { spatialite_e ("CloneTable() error: argument 6 is not of the String or TEXT type\n"); sqlite3_result_null (context); return; } if (argc > 6 && sqlite3_value_type (argv[6]) != SQLITE_TEXT) { spatialite_e ("CloneTable() error: argument 7 is not of the String or TEXT type\n"); sqlite3_result_null (context); return; } if (argc > 7 && sqlite3_value_type (argv[7]) != SQLITE_TEXT) { spatialite_e ("CloneTable() error: argument 8 is not of the String or TEXT type\n"); sqlite3_result_null (context); return; } if (argc > 8 && sqlite3_value_type (argv[8]) != SQLITE_TEXT) { spatialite_e ("CloneTable() error: argument 9 is not of the String or TEXT type\n"); sqlite3_result_null (context); return; } if (argc > 9 && sqlite3_value_type (argv[9]) != SQLITE_TEXT) { spatialite_e ("CloneTable() error: argument 10 is not of the String or TEXT type\n"); sqlite3_result_null (context); return; } if (argc > 10 && sqlite3_value_type (argv[10]) != SQLITE_TEXT) { spatialite_e ("CloneTable() error: argument 11 is not of the String or TEXT type\n"); sqlite3_result_null (context); return; } if (argc > 11 && sqlite3_value_type (argv[11]) != SQLITE_TEXT) { spatialite_e ("CloneTable() error: argument 12 is not of the String or TEXT type\n"); sqlite3_result_null (context); return; } if (argc > 12 && sqlite3_value_type (argv[12]) != SQLITE_TEXT) { spatialite_e ("CloneTable() error: argument 13 is not of the String or TEXT type\n"); sqlite3_result_null (context); return; } if (argc > 13 && sqlite3_value_type (argv[13]) != SQLITE_TEXT) { spatialite_e ("CloneTable() error: argument 14 is not of the String or TEXT type\n"); sqlite3_result_null (context); return; } cloner = gaiaAuxClonerCreate (sqlite, db_prefix, in_table, out_table); if (cloner == NULL) { sqlite3_result_null (context); return; } /* additional options */ if (argc > 4) gaiaAuxClonerAddOption (cloner, (const char *) sqlite3_value_text (argv[4])); if (argc > 5) gaiaAuxClonerAddOption (cloner, (const char *) sqlite3_value_text (argv[5])); if (argc > 6) gaiaAuxClonerAddOption (cloner, (const char *) sqlite3_value_text (argv[6])); if (argc > 7) gaiaAuxClonerAddOption (cloner, (const char *) sqlite3_value_text (argv[7])); if (argc > 8) gaiaAuxClonerAddOption (cloner, (const char *) sqlite3_value_text (argv[8])); if (argc > 9) gaiaAuxClonerAddOption (cloner, (const char *) sqlite3_value_text (argv[9])); if (argc > 10) gaiaAuxClonerAddOption (cloner, (const char *) sqlite3_value_text (argv[10])); if (argc > 11) gaiaAuxClonerAddOption (cloner, (const char *) sqlite3_value_text (argv[11])); if (argc > 12) gaiaAuxClonerAddOption (cloner, (const char *) sqlite3_value_text (argv[12])); if (argc > 13) gaiaAuxClonerAddOption (cloner, (const char *) sqlite3_value_text (argv[13])); if (!gaiaAuxClonerCheckValidTarget (cloner)) goto error; if (transaction) { /* starting a Transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; } active = 1; if (!gaiaAuxClonerExecute (cloner)) goto error; gaiaAuxClonerDestroy (cloner); updateSpatiaLiteHistory (sqlite, out_table, NULL, "table successfully cloned"); if (transaction) { /* confirming the still pending Transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; } sqlite3_result_int (context, 1); return; error: if (cloner != NULL) gaiaAuxClonerDestroy (cloner); spatialite_e ("CloneTable() error:\"%s\"\n", errMsg); sqlite3_free (errMsg); if (transaction && active) { /* performing a Rollback */ ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("CloneTable() error:\"%s\"\n", errMsg); sqlite3_free (errMsg); } } sqlite3_result_int (context, 0); return; } static void fnct_CheckGeoPackageMetaData (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CheckGeoPackageMetaData(void) / / for OGC GeoPackage interoperability: / tests if GeoPackage metadata tables are found / */ sqlite3 *sqlite; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ sqlite = sqlite3_context_db_handle (context); ret = checkGeoPackage (sqlite); sqlite3_result_int (context, ret); return; } #ifdef ENABLE_GEOPACKAGE /* enabling GeoPackage extensions */ static void add_gpkg_table (struct gpkg_table **first, struct gpkg_table **last, const char *table, int len) { /* adds a GPKG Geometry Table to corresponding linked list */ struct gpkg_table *p = malloc (sizeof (struct gpkg_table)); p->table = malloc (len + 1); strcpy (p->table, table); p->next = NULL; if (!(*first)) (*first) = p; if ((*last)) (*last)->next = p; (*last) = p; } static void free_gpkg_tables (struct gpkg_table *first) { /* memory cleanup; destroying the GPKG tables linked list */ struct gpkg_table *p; struct gpkg_table *pn; p = first; while (p) { pn = p->next; if (p->table) free (p->table); free (p); p = pn; } } static void fnct_AutoGPKGStart (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AutoGPKGStart(void) / / for OCG GeoPackage interoperability: / tests the DB layout, then automatically / creating a VirtualGPKS table for each GPKG main table / declared within gpkg_geometry_colums / */ int ret; const char *name; int i; char **results; int rows; int columns; char *sql_statement; int count = 0; struct gpkg_table *first = NULL; struct gpkg_table *last = NULL; struct gpkg_table *p; int len; char *xname; char *xxname; char *xtable; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (checkGeoPackage (sqlite)) { /* ok, creating VirtualGPKG tables */ sql_statement = "SELECT DISTINCT table_name FROM gpkg_geometry_columns"; ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) goto error; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 0]; if (name) { len = strlen (name); add_gpkg_table (&first, &last, name, len); } } } sqlite3_free_table (results); p = first; while (p) { /* destroying the VirtualGPKG table [if existing] */ xxname = sqlite3_mprintf ("vgpkg_%s", p->table); xname = gaiaDoubleQuotedSql (xxname); sqlite3_free (xxname); sql_statement = sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\"", xname); free (xname); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* creating the VirtualGPKG table */ xxname = sqlite3_mprintf ("vgpkg_%s", p->table); xname = gaiaDoubleQuotedSql (xxname); sqlite3_free (xxname); xtable = gaiaDoubleQuotedSql (p->table); sql_statement = sqlite3_mprintf ("CREATE VIRTUAL TABLE \"%s\" USING VirtualGPKG(\"%s\")", xname, xtable); free (xname); free (xtable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; count++; p = p->next; } error: free_gpkg_tables (first); sqlite3_result_int (context, count); return; } sqlite3_result_int (context, 0); return; } static void fnct_AutoGPKGStop (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AutoGPKGStop(void) / / for OGC GeoPackage interoperability: / tests the DB layout, then automatically removes any VirtualGPKG table / */ int ret; const char *name; int i; char **results; int rows; int columns; char *sql_statement; int count = 0; struct gpkg_table *first = NULL; struct gpkg_table *last = NULL; struct gpkg_table *p; int len; char *xname; char *xxname; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (checkGeoPackage (sqlite)) { /* ok, removing VirtualGPKG tables */ sql_statement = "SELECT DISTINCT table_name FROM gpkg_geometry_columns"; ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) goto error; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 0]; if (name) { len = strlen (name); add_gpkg_table (&first, &last, name, len); } } } sqlite3_free_table (results); p = first; while (p) { /* destroying the VirtualGPKG table [if existing] */ xxname = sqlite3_mprintf ("vgpkg_%s", p->table); xname = gaiaDoubleQuotedSql (xxname); sqlite3_free (xxname); sql_statement = sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\"", xname); free (xname); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; count++; p = p->next; } error: free_gpkg_tables (first); sqlite3_result_int (context, count); return; } sqlite3_result_int (context, 0); return; } #endif /* end enabling GeoPackage extensions */ static void fnct_InsertEpsgSrid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / InsertEpsgSrid(int srid) / / returns 1 on success: 0 on failure */ int srid; int ret; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[0]); else { sqlite3_result_int (context, 0); return; } ret = insert_epsg_srid (sqlite, srid); if (!ret) sqlite3_result_int (context, 0); else sqlite3_result_int (context, 1); } static void fnct_SridIsGeographic (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SridIsGeographic(int srid) / / returns 1 on success: 0 on failure / NULL on invalid argument */ int srid; int ret; int geographic; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[0]); else { sqlite3_result_null (context); return; } ret = srid_is_geographic (sqlite, srid, &geographic); if (!ret) sqlite3_result_null (context); else { if (geographic) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } } static void fnct_SridIsProjected (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SridIsProjected(int srid) / / returns 1 on success: 0 on failure / NULL on invalid argument */ int srid; int ret; int projected; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[0]); else { sqlite3_result_null (context); return; } ret = srid_is_projected (sqlite, srid, &projected); if (!ret) sqlite3_result_null (context); else { if (projected) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } } static void fnct_SridHasFlippedAxes (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SridHasFlippedAxes(int srid) / / returns 1 on success: 0 on failure / NULL on invalid argument */ int srid; int ret; int flipped; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[0]); else { sqlite3_result_null (context); return; } ret = srid_has_flipped_axes (sqlite, srid, &flipped); if (!ret) sqlite3_result_null (context); else { if (flipped) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } } static void fnct_SridGetSpheroid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SridGetSpheroid(int srid) / or / SridGetEllipsoid(int srid) / / returns the name of the Spheroid on success / NULL on failure or on invalid argument */ int srid; char *spheroid = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[0]); else { sqlite3_result_null (context); return; } spheroid = srid_get_spheroid (sqlite, srid); if (spheroid == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, spheroid, strlen (spheroid), free); } static void fnct_SridGetPrimeMeridian (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SridGetPrimeMeridian(int srid) / / returns the name of the Prime Meridian on success / NULL on failure or on invalid argument */ int srid; char *prime_meridian = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[0]); else { sqlite3_result_null (context); return; } prime_meridian = srid_get_prime_meridian (sqlite, srid); if (prime_meridian == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, prime_meridian, strlen (prime_meridian), free); } static void fnct_SridGetProjection (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SridGetProjection(int srid) / / returns the name of the Projection on success / NULL on failure or on invalid argument */ int srid; char *projection = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[0]); else { sqlite3_result_null (context); return; } projection = srid_get_projection (sqlite, srid); if (projection == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, projection, strlen (projection), free); } static void fnct_SridGetDatum (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SridGetDatum(int srid) / / returns the name of the Datum on success / NULL on failure or on invalid argument */ int srid; char *datum = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[0]); else { sqlite3_result_null (context); return; } datum = srid_get_datum (sqlite, srid); if (datum == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, datum, strlen (datum), free); } static void fnct_SridGetUnit (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SridGetUnit(int srid) / / returns the name of the Spheroid on success / NULL on failure or on invalid argument */ int srid; char *unit = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[0]); else { sqlite3_result_null (context); return; } unit = srid_get_unit (sqlite, srid); if (unit == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, unit, strlen (unit), free); } static void common_srid_axis (sqlite3_context * context, int argc, sqlite3_value ** argv, char axis, char mode) { /* commonn implentation - SRID Get Axis */ int srid; char *result = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[0]); else { sqlite3_result_null (context); return; } result = srid_get_axis (sqlite, srid, axis, mode); if (result == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, result, strlen (result), free); } static void fnct_SridGetAxis1Name (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SridGetAxis_1_Name(int srid) / / returns the name of the first Axis on success / NULL on failure or on invalid argument */ common_srid_axis (context, argc, argv, SPLITE_AXIS_1, SPLITE_AXIS_NAME); } static void fnct_SridGetAxis1Orientation (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SridGetAxis_1_Orientation(int srid) / / returns the orientation of the first Axis on success / NULL on failure or on invalid argument */ common_srid_axis (context, argc, argv, SPLITE_AXIS_1, SPLITE_AXIS_ORIENTATION); } static void fnct_SridGetAxis2Name (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SridGetAxis_2_Name(int srid) / / returns the name of the second Axis on success / NULL on failure or on invalid argument */ common_srid_axis (context, argc, argv, SPLITE_AXIS_2, SPLITE_AXIS_NAME); } static void fnct_SridGetAxis2Orientation (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SridGetAxis_2_Orientation(int srid) / / returns the orientation of the second Axis on success / NULL on failure or on invalid argument */ common_srid_axis (context, argc, argv, SPLITE_AXIS_2, SPLITE_AXIS_ORIENTATION); } static int recoverGeomColumn (sqlite3 * sqlite, const char *table, const char *column, int xtype, int dims, int srid) { /* checks if TABLE.COLUMN exists and has the required features */ int ok = 1; int type; sqlite3_stmt *stmt; gaiaGeomCollPtr geom; const void *blob_value; int len; int ret; int i_col; int is_nullable = 1; char *p_table; char *p_column; char *sql_statement; /* testing if NOT NULL */ p_table = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", p_table); free (p_table); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("recoverGeomColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (strcasecmp (column, (const char *) sqlite3_column_text (stmt, 1)) == 0) { if (sqlite3_column_int (stmt, 2) != 0) is_nullable = 0; } } } sqlite3_finalize (stmt); p_table = gaiaDoubleQuotedSql (table); p_column = gaiaDoubleQuotedSql (column); sql_statement = sqlite3_mprintf ("SELECT \"%s\" FROM \"%s\"", p_column, p_table); free (p_table); free (p_column); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("recoverGeomColumn: error %d \"%s\"\n", sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* checking Geometry features */ geom = NULL; for (i_col = 0; i_col < sqlite3_column_count (stmt); i_col++) { if (sqlite3_column_type (stmt, i_col) == SQLITE_NULL) { /* found a NULL geometry */ if (!is_nullable) ok = 0; } else if (sqlite3_column_type (stmt, i_col) != SQLITE_BLOB) ok = 0; else { blob_value = sqlite3_column_blob (stmt, i_col); len = sqlite3_column_bytes (stmt, i_col); geom = gaiaFromSpatiaLiteBlobWkb (blob_value, len); if (!geom) ok = 0; else { if (geom->DimensionModel != dims) ok = 0; if (geom->Srid != srid) ok = 0; type = gaiaGeometryType (geom); if (xtype == -1) ; /* GEOMETRY */ else { if (xtype == type) ; else ok = 0; } gaiaFreeGeomColl (geom); } } } } if (!ok) break; } ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) { spatialite_e ("recoverGeomColumn: error %d \"%s\"\n", sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); return 0; } return ok; } static void fnct_AddGeometryColumn (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AddGeometryColumn(table, column, srid, type [ , dimension [ , not-null ] ] ) / / creates a new COLUMN of given TYPE into TABLE / returns 1 on success / 0 on failure */ const char *table; const char *column; const unsigned char *type; const unsigned char *txt_dims; int xtype; int srid = -1; int dimension = 2; int dims = -1; int auto_dims = -1; char sql[1024]; int ret; int notNull = 0; int metadata_version; sqlite3_stmt *stmt; char *p_table = NULL; char *quoted_table; char *quoted_column; const char *p_type = NULL; const char *p_dims = NULL; int n_type = 0; int n_dims = 0; char *sql_statement; sqlite3 *sqlite = sqlite3_context_db_handle (context); if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("AddGeometryColumn() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("AddGeometryColumn() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { spatialite_e ("AddGeometryColumn() error: argument 3 [SRID] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } srid = sqlite3_value_int (argv[2]); if (sqlite3_value_type (argv[3]) != SQLITE_TEXT) { spatialite_e ("AddGeometryColumn() error: argument 4 [geometry_type] is not of the String type\n"); sqlite3_result_int (context, 0); return; } type = sqlite3_value_text (argv[3]); if (argc > 4) { if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { dimension = sqlite3_value_int (argv[4]); if (dimension == 2) dims = GAIA_XY; if (dimension == 3) dims = GAIA_XY_Z; if (dimension == 4) dims = GAIA_XY_Z_M; } else if (sqlite3_value_type (argv[4]) == SQLITE_TEXT) { txt_dims = sqlite3_value_text (argv[4]); if (strcasecmp ((char *) txt_dims, "XY") == 0) dims = GAIA_XY; if (strcasecmp ((char *) txt_dims, "XYZ") == 0) dims = GAIA_XY_Z; if (strcasecmp ((char *) txt_dims, "XYM") == 0) dims = GAIA_XY_M; if (strcasecmp ((char *) txt_dims, "XYZM") == 0) dims = GAIA_XY_Z_M; } else { spatialite_e ("AddGeometryColumn() error: argument 5 [dimension] is not of the Integer or Text type\n"); sqlite3_result_int (context, 0); return; } } if (argc == 6) { /* optional NOT NULL arg */ if (sqlite3_value_type (argv[5]) != SQLITE_INTEGER) { spatialite_e ("AddGeometryColumn() error: argument 6 [not null] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } notNull = sqlite3_value_int (argv[5]); } xtype = GAIA_UNKNOWN; if (strcasecmp ((char *) type, "POINT") == 0) { auto_dims = GAIA_XY; xtype = GAIA_POINT; } if (strcasecmp ((char *) type, "LINESTRING") == 0) { auto_dims = GAIA_XY; xtype = GAIA_LINESTRING; } if (strcasecmp ((char *) type, "POLYGON") == 0) { auto_dims = GAIA_XY; xtype = GAIA_POLYGON; } if (strcasecmp ((char *) type, "MULTIPOINT") == 0) { auto_dims = GAIA_XY; xtype = GAIA_MULTIPOINT; } if (strcasecmp ((char *) type, "MULTILINESTRING") == 0) { auto_dims = GAIA_XY; xtype = GAIA_MULTILINESTRING; } if (strcasecmp ((char *) type, "MULTIPOLYGON") == 0) { auto_dims = GAIA_XY; xtype = GAIA_MULTIPOLYGON; } if (strcasecmp ((char *) type, "GEOMETRYCOLLECTION") == 0) { auto_dims = GAIA_XY; xtype = GAIA_GEOMETRYCOLLECTION; } if (strcasecmp ((char *) type, "GEOMETRY") == 0) { auto_dims = GAIA_XY; xtype = -1; } if (strcasecmp ((char *) type, "POINTZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_POINT; } if (strcasecmp ((char *) type, "LINESTRINGZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_LINESTRING; } if (strcasecmp ((char *) type, "POLYGONZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_POLYGON; } if (strcasecmp ((char *) type, "MULTIPOINTZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_MULTIPOINT; } if (strcasecmp ((char *) type, "MULTILINESTRINGZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_MULTILINESTRING; } if (strcasecmp ((char *) type, "MULTIPOLYGONZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_MULTIPOLYGON; } if (strcasecmp ((char *) type, "GEOMETRYCOLLECTIONZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_GEOMETRYCOLLECTION; } if (strcasecmp ((char *) type, "GEOMETRYZ") == 0) { auto_dims = GAIA_XY_Z; xtype = -1; } if (strcasecmp ((char *) type, "POINTM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_POINT; } if (strcasecmp ((char *) type, "LINESTRINGM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_LINESTRING; } if (strcasecmp ((char *) type, "POLYGONM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_POLYGON; } if (strcasecmp ((char *) type, "MULTIPOINTM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_MULTIPOINT; } if (strcasecmp ((char *) type, "MULTILINESTRINGM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_MULTILINESTRING; } if (strcasecmp ((char *) type, "MULTIPOLYGONM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_MULTIPOLYGON; } if (strcasecmp ((char *) type, "GEOMETRYCOLLECTIONM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_GEOMETRYCOLLECTION; } if (strcasecmp ((char *) type, "GEOMETRYM") == 0) { auto_dims = GAIA_XY_M; xtype = -1; } if (strcasecmp ((char *) type, "POINTZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_POINT; } if (strcasecmp ((char *) type, "LINESTRINGZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_LINESTRING; } if (strcasecmp ((char *) type, "POLYGONZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_POLYGON; } if (strcasecmp ((char *) type, "MULTIPOINTZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_MULTIPOINT; } if (strcasecmp ((char *) type, "MULTILINESTRINGZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_MULTILINESTRING; } if (strcasecmp ((char *) type, "MULTIPOLYGONZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_MULTIPOLYGON; } if (strcasecmp ((char *) type, "GEOMETRYCOLLECTIONZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_GEOMETRYCOLLECTION; } if (strcasecmp ((char *) type, "GEOMETRYZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = -1; } if (xtype == GAIA_UNKNOWN) { spatialite_e ("AddGeometryColumn() error: argument 4 [geometry_type] has an illegal value\n"); sqlite3_result_int (context, 0); return; } if (dims < 0) dims = auto_dims; if (dims == GAIA_XY || dims == GAIA_XY_Z || dims == GAIA_XY_M || dims == GAIA_XY_Z_M) ; else { spatialite_e ("AddGeometryColumn() error: argument 5 [dimension] ILLEGAL VALUE\n"); sqlite3_result_int (context, 0); return; } if (auto_dims != GAIA_XY && dims != auto_dims) { spatialite_e ("AddGeometryColumn() error: argument 5 [dimension] ILLEGAL VALUE\n"); sqlite3_result_int (context, 0); return; } /* checking if the table exists */ strcpy (sql, "SELECT name FROM sqlite_master WHERE type = 'table' AND Lower(name) = Lower(?)"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (p_table != NULL) sqlite3_free (p_table); p_table = sqlite3_mprintf ("%s", (const char *) sqlite3_column_text (stmt, 0)); } } sqlite3_finalize (stmt); if (!p_table) { spatialite_e ("AddGeometryColumn() error: table '%s' does not exist\n", table); sqlite3_result_int (context, 0); return; } /* checking for WITHOUT ROWID */ if (is_without_rowid_table (sqlite, table)) { spatialite_e ("AddGeometryColumn() error: table '%s' is WITHOUT ROWID\n", table); sqlite3_result_int (context, 0); return; } metadata_version = checkSpatialMetaData (sqlite); if (metadata_version == 1 || metadata_version == 3) ; else { spatialite_e ("AddGeometryColumn() error: unexpected metadata layout\n"); sqlite3_result_int (context, 0); return; } /* trying to add the column */ switch (xtype) { case GAIA_POINT: p_type = "POINT"; break; case GAIA_LINESTRING: p_type = "LINESTRING"; break; case GAIA_POLYGON: p_type = "POLYGON"; break; case GAIA_MULTIPOINT: p_type = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: p_type = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: p_type = "MULTIPOLYGON"; break; case GAIA_GEOMETRYCOLLECTION: p_type = "GEOMETRYCOLLECTION"; break; case -1: p_type = "GEOMETRY"; break; }; quoted_table = gaiaDoubleQuotedSql (p_table); quoted_column = gaiaDoubleQuotedSql (column); if (notNull) { /* adding a NOT NULL clause */ sql_statement = sqlite3_mprintf ("ALTER TABLE \"%s\" ADD COLUMN \"%s\" " "%s NOT NULL DEFAULT ''", quoted_table, quoted_column, p_type); } else sql_statement = sqlite3_mprintf ("ALTER TABLE \"%s\" ADD COLUMN \"%s\" %s ", quoted_table, quoted_column, p_type); free (quoted_table); free (quoted_column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); sqlite3_free (p_table); return; } /* ok, inserting into geometry_columns [Spatial Metadata] */ if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ switch (xtype) { case GAIA_POINT: p_type = "POINT"; break; case GAIA_LINESTRING: p_type = "LINESTRING"; break; case GAIA_POLYGON: p_type = "POLYGON"; break; case GAIA_MULTIPOINT: p_type = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: p_type = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: p_type = "MULTIPOLYGON"; break; case GAIA_GEOMETRYCOLLECTION: p_type = "GEOMETRYCOLLECTION"; break; case -1: p_type = "GEOMETRY"; break; }; switch (dims) { case GAIA_XY: p_dims = "XY"; break; case GAIA_XY_Z: p_dims = "XYZ"; break; case GAIA_XY_M: p_dims = "XYM"; break; case GAIA_XY_Z_M: p_dims = "XYZM"; break; }; sql_statement = sqlite3_mprintf ("INSERT INTO geometry_columns " "(f_table_name, f_geometry_column, type, coord_dimension, srid, " "spatial_index_enabled) VALUES (?, ?, %Q, %Q, ?, 0)", p_type, p_dims); } else { /* current metadata style >= v.4.0.0 */ switch (xtype) { case GAIA_POINT: if (dims == GAIA_XY_Z) n_type = 1001; else if (dims == GAIA_XY_M) n_type = 2001; else if (dims == GAIA_XY_Z_M) n_type = 3001; else n_type = 1; break; case GAIA_LINESTRING: if (dims == GAIA_XY_Z) n_type = 1002; else if (dims == GAIA_XY_M) n_type = 2002; else if (dims == GAIA_XY_Z_M) n_type = 3002; else n_type = 2; break; case GAIA_POLYGON: if (dims == GAIA_XY_Z) n_type = 1003; else if (dims == GAIA_XY_M) n_type = 2003; else if (dims == GAIA_XY_Z_M) n_type = 3003; else n_type = 3; break; case GAIA_MULTIPOINT: if (dims == GAIA_XY_Z) n_type = 1004; else if (dims == GAIA_XY_M) n_type = 2004; else if (dims == GAIA_XY_Z_M) n_type = 3004; else n_type = 4; break; case GAIA_MULTILINESTRING: if (dims == GAIA_XY_Z) n_type = 1005; else if (dims == GAIA_XY_M) n_type = 2005; else if (dims == GAIA_XY_Z_M) n_type = 3005; else n_type = 5; break; case GAIA_MULTIPOLYGON: if (dims == GAIA_XY_Z) n_type = 1006; else if (dims == GAIA_XY_M) n_type = 2006; else if (dims == GAIA_XY_Z_M) n_type = 3006; else n_type = 6; break; case GAIA_GEOMETRYCOLLECTION: if (dims == GAIA_XY_Z) n_type = 1007; else if (dims == GAIA_XY_M) n_type = 2007; else if (dims == GAIA_XY_Z_M) n_type = 3007; else n_type = 7; break; case -1: if (dims == GAIA_XY_Z) n_type = 1000; else if (dims == GAIA_XY_M) n_type = 2000; else if (dims == GAIA_XY_Z_M) n_type = 3000; else n_type = 0; break; }; switch (dims) { case GAIA_XY: n_dims = 2; break; case GAIA_XY_Z: case GAIA_XY_M: n_dims = 3; break; case GAIA_XY_Z_M: n_dims = 4; break; }; sql_statement = sqlite3_mprintf ("INSERT INTO geometry_columns " "(f_table_name, f_geometry_column, geometry_type, coord_dimension, " "srid, spatial_index_enabled) VALUES (Lower(?), Lower(?), %d, %d, ?, 0)", n_type, n_dims); } ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); sqlite3_free (p_table); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, p_table, strlen (p_table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); if (srid < 0) sqlite3_bind_int (stmt, 3, -1); else sqlite3_bind_int (stmt, 3, srid); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("AddGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ /* inserting a row into GEOMETRY_COLUMNS_AUTH */ strcpy (sql, "INSERT OR REPLACE INTO geometry_columns_auth (f_table_name, f_geometry_column, "); strcat (sql, "read_only, hidden) VALUES (Lower(?), Lower(?), 0, 0)"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); sqlite3_free (p_table); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("AddGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); /* inserting a row into GEOMETRY_COLUMNS_STATISTICS */ strcpy (sql, "INSERT OR REPLACE INTO geometry_columns_statistics (f_table_name, f_geometry_column) "); strcat (sql, "VALUES (Lower(?), Lower(?))"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); sqlite3_free (p_table); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("AddGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); /* inserting a row into GEOMETRY_COLUMNS_TIME */ strcpy (sql, "INSERT OR REPLACE INTO geometry_columns_time (f_table_name, f_geometry_column) "); strcat (sql, "VALUES (Lower(?), Lower(?))"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("AddGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); sqlite3_free (p_table); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("AddGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); } updateGeometryTriggers (sqlite, table, column); sqlite3_result_int (context, 1); switch (xtype) { case GAIA_POINT: p_type = "POINT"; break; case GAIA_LINESTRING: p_type = "LINESTRING"; break; case GAIA_POLYGON: p_type = "POLYGON"; break; case GAIA_MULTIPOINT: p_type = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: p_type = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: p_type = "MULTIPOLYGON"; break; case GAIA_GEOMETRYCOLLECTION: p_type = "GEOMETRYCOLLECTION"; break; case -1: p_type = "GEOMETRY"; break; }; switch (dims) { case GAIA_XY: p_dims = "XY"; break; case GAIA_XY_Z: p_dims = "XYZ"; break; case GAIA_XY_M: p_dims = "XYM"; break; case GAIA_XY_Z_M: p_dims = "XYZM"; break; }; sql_statement = sqlite3_mprintf ("Geometry [%s,%s,SRID=%d] successfully created", p_type, p_dims, (srid <= 0) ? -1 : srid); updateSpatiaLiteHistory (sqlite, table, column, sql_statement); sqlite3_free (sql_statement); sqlite3_free (p_table); return; error: sqlite3_result_int (context, 0); sqlite3_free (p_table); return; } static void fnct_RecoverGeometryColumn (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RecoverGeometryColumn(table, column, srid, type , dimension ) / / checks if an existing TABLE.COLUMN satisfies the required geometric features / if yes adds it to SpatialMetaData and enabling triggers / returns 1 on success / 0 on failure */ const char *table; const char *column; const unsigned char *type; int xtype; int xxtype; int srid = -1; const unsigned char *txt_dims; int dimension = 2; int dims = -1; int auto_dims = -1; char sql[1024]; int ret; int metadata_version; sqlite3_stmt *stmt; int exists = 0; const char *p_type = NULL; const char *p_dims = NULL; int n_type; int n_dims; char *sql_statement; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("RecoverGeometryColumn() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("RecoverGeometryColumn() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { spatialite_e ("RecoverGeometryColumn() error: argument 3 [SRID] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } srid = sqlite3_value_int (argv[2]); if (sqlite3_value_type (argv[3]) != SQLITE_TEXT) { spatialite_e ("RecoverGeometryColumn() error: argument 4 [geometry_type] is not of the String type\n"); sqlite3_result_int (context, 0); return; } type = sqlite3_value_text (argv[3]); if (argc == 5) { if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { dimension = sqlite3_value_int (argv[4]); if (dimension == 2) dims = GAIA_XY; if (dimension == 3) dims = GAIA_XY_Z; if (dimension == 4) dims = GAIA_XY_Z_M; } else if (sqlite3_value_type (argv[4]) == SQLITE_TEXT) { txt_dims = sqlite3_value_text (argv[4]); if (strcasecmp ((char *) txt_dims, "XY") == 0) dims = GAIA_XY; if (strcasecmp ((char *) txt_dims, "XYZ") == 0) dims = GAIA_XY_Z; if (strcasecmp ((char *) txt_dims, "XYM") == 0) dims = GAIA_XY_M; if (strcasecmp ((char *) txt_dims, "XYZM") == 0) dims = GAIA_XY_Z_M; } else { spatialite_e ("RecoverGeometryColumn() error: argument 5 [dimension] is not of the Integer or Text type\n"); sqlite3_result_int (context, 0); return; } } xtype = GAIA_UNKNOWN; if (strcasecmp ((char *) type, "POINT") == 0) { auto_dims = GAIA_XY; xtype = GAIA_POINT; } if (strcasecmp ((char *) type, "LINESTRING") == 0) { auto_dims = GAIA_XY; xtype = GAIA_LINESTRING; } if (strcasecmp ((char *) type, "POLYGON") == 0) { auto_dims = GAIA_XY; xtype = GAIA_POLYGON; } if (strcasecmp ((char *) type, "MULTIPOINT") == 0) { auto_dims = GAIA_XY; xtype = GAIA_MULTIPOINT; } if (strcasecmp ((char *) type, "MULTILINESTRING") == 0) { auto_dims = GAIA_XY; xtype = GAIA_MULTILINESTRING; } if (strcasecmp ((char *) type, "MULTIPOLYGON") == 0) { auto_dims = GAIA_XY; xtype = GAIA_MULTIPOLYGON; } if (strcasecmp ((char *) type, "GEOMETRYCOLLECTION") == 0) { auto_dims = GAIA_XY; xtype = GAIA_GEOMETRYCOLLECTION; } if (strcasecmp ((char *) type, "GEOMETRY") == 0) { auto_dims = GAIA_XY; xtype = -1; } if (strcasecmp ((char *) type, "POINTZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_POINT; } if (strcasecmp ((char *) type, "LINESTRINGZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_LINESTRING; } if (strcasecmp ((char *) type, "POLYGONZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_POLYGON; } if (strcasecmp ((char *) type, "MULTIPOINTZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_MULTIPOINT; } if (strcasecmp ((char *) type, "MULTILINESTRINGZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_MULTILINESTRING; } if (strcasecmp ((char *) type, "MULTIPOLYGONZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_MULTIPOLYGON; } if (strcasecmp ((char *) type, "GEOMETRYCOLLECTIONZ") == 0) { auto_dims = GAIA_XY_Z; xtype = GAIA_GEOMETRYCOLLECTION; } if (strcasecmp ((char *) type, "GEOMETRYZ") == 0) { auto_dims = GAIA_XY_Z; xtype = -1; } if (strcasecmp ((char *) type, "POINTM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_POINT; } if (strcasecmp ((char *) type, "LINESTRINGM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_LINESTRING; } if (strcasecmp ((char *) type, "POLYGONM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_POLYGON; } if (strcasecmp ((char *) type, "MULTIPOINTM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_MULTIPOINT; } if (strcasecmp ((char *) type, "MULTILINESTRINGM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_MULTILINESTRING; } if (strcasecmp ((char *) type, "MULTIPOLYGONM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_MULTIPOLYGON; } if (strcasecmp ((char *) type, "GEOMETRYCOLLECTIONM") == 0) { auto_dims = GAIA_XY_M; xtype = GAIA_GEOMETRYCOLLECTION; } if (strcasecmp ((char *) type, "GEOMETRYM") == 0) { auto_dims = GAIA_XY_M; xtype = -1; } if (strcasecmp ((char *) type, "POINTZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_POINT; } if (strcasecmp ((char *) type, "LINESTRINGZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_LINESTRING; } if (strcasecmp ((char *) type, "POLYGONZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_POLYGON; } if (strcasecmp ((char *) type, "MULTIPOINTZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_MULTIPOINT; } if (strcasecmp ((char *) type, "MULTILINESTRINGZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_MULTILINESTRING; } if (strcasecmp ((char *) type, "MULTIPOLYGONZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_MULTIPOLYGON; } if (strcasecmp ((char *) type, "GEOMETRYCOLLECTIONZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = GAIA_GEOMETRYCOLLECTION; } if (strcasecmp ((char *) type, "GEOMETRYZM") == 0) { auto_dims = GAIA_XY_Z_M; xtype = -1; } if (dims < 0) dims = auto_dims; if (xtype == GAIA_UNKNOWN) { spatialite_e ("RecoverGeometryColumn() error: argument 4 [geometry_type] has an illegal value\n"); sqlite3_result_int (context, 0); return; } if (dims == GAIA_XY || dims == GAIA_XY_Z || dims == GAIA_XY_M || dims == GAIA_XY_Z_M) ; else { spatialite_e ("RecoverGeometryColumn() error: argument 5 [dimension] ILLEGAL VALUE\n"); sqlite3_result_int (context, 0); return; } if (auto_dims != GAIA_XY && dims != auto_dims) { spatialite_e ("RecoverGeometryColumn() error: argument 5 [dimension] ILLEGAL VALUE\n"); sqlite3_result_int (context, 0); return; } metadata_version = checkSpatialMetaData (sqlite); if (metadata_version == 1 || metadata_version == 3) ; else { spatialite_e ("RecoverGeometryColumn() error: unexpected metadata layout\n"); sqlite3_result_int (context, 0); return; } /* checking if the table exists */ strcpy (sql, "SELECT name FROM sqlite_master WHERE type = 'table' AND Lower(name) = Lower(?)"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("RecoverGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_TEXT) exists = 1; } } sqlite3_finalize (stmt); if (!exists) { spatialite_e ("RecoverGeometryColumn() error: table '%s' does not exist\n", table); sqlite3_result_int (context, 0); return; } if (is_without_rowid_table (sqlite, table)) { spatialite_e ("RecoverGeometryColumn() error: table '%s' is WITHOUT ROWID\n", table); sqlite3_result_int (context, 0); return; } /* adjusting the actual GeometryType */ xxtype = xtype; xtype = GAIA_UNKNOWN; if (xxtype == GAIA_POINT) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_POINTZ; break; case GAIA_XY_M: xtype = GAIA_POINTM; break; case GAIA_XY_Z_M: xtype = GAIA_POINTZM; break; default: xtype = GAIA_POINT; break; }; } if (xxtype == GAIA_LINESTRING) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_LINESTRINGZ; break; case GAIA_XY_M: xtype = GAIA_LINESTRINGM; break; case GAIA_XY_Z_M: xtype = GAIA_LINESTRINGZM; break; default: xtype = GAIA_LINESTRING; break; }; } if (xxtype == GAIA_POLYGON) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_POLYGONZ; break; case GAIA_XY_M: xtype = GAIA_POLYGONM; break; case GAIA_XY_Z_M: xtype = GAIA_POLYGONZM; break; default: xtype = GAIA_POLYGON; break; }; } if (xxtype == GAIA_MULTIPOINT) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_MULTIPOINTZ; break; case GAIA_XY_M: xtype = GAIA_MULTIPOINTM; break; case GAIA_XY_Z_M: xtype = GAIA_MULTIPOINTZM; break; default: xtype = GAIA_MULTIPOINT; break; }; } if (xxtype == GAIA_MULTILINESTRING) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_MULTILINESTRINGZ; break; case GAIA_XY_M: xtype = GAIA_MULTILINESTRINGM; break; case GAIA_XY_Z_M: xtype = GAIA_MULTILINESTRINGZM; break; default: xtype = GAIA_MULTILINESTRING; break; }; } if (xxtype == GAIA_MULTIPOLYGON) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_MULTIPOLYGONZ; break; case GAIA_XY_M: xtype = GAIA_MULTIPOLYGONM; break; case GAIA_XY_Z_M: xtype = GAIA_MULTIPOLYGONZM; break; default: xtype = GAIA_MULTIPOLYGON; break; }; } if (xxtype == GAIA_GEOMETRYCOLLECTION) { switch (dims) { case GAIA_XY_Z: xtype = GAIA_GEOMETRYCOLLECTIONZ; break; case GAIA_XY_M: xtype = GAIA_GEOMETRYCOLLECTIONM; break; case GAIA_XY_Z_M: xtype = GAIA_GEOMETRYCOLLECTIONZM; break; default: xtype = GAIA_GEOMETRYCOLLECTION; break; }; } if (xxtype == -1) xtype = -1; /* GEOMETRY */ if (!recoverGeomColumn (sqlite, table, column, xtype, dims, srid)) { spatialite_e ("RecoverGeometryColumn(): validation failed\n"); sqlite3_result_int (context, 0); return; } /* deleting anyway any previous definition */ sql_statement = sqlite3_mprintf ("DELETE FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(?) AND " "Lower(f_geometry_column) = Lower(?)"); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("RecoverGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("RecoverGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); if (metadata_version == 1) { /* legacy metadata style <= v.3.1.0 */ switch (xtype) { case GAIA_POINT: case GAIA_POINTZ: case GAIA_POINTM: case GAIA_POINTZM: p_type = "POINT"; break; case GAIA_LINESTRING: case GAIA_LINESTRINGZ: case GAIA_LINESTRINGM: case GAIA_LINESTRINGZM: p_type = "LINESTRING"; break; case GAIA_POLYGON: case GAIA_POLYGONZ: case GAIA_POLYGONM: case GAIA_POLYGONZM: p_type = "POLYGON"; break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: p_type = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: p_type = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: p_type = "MULTIPOLYGON"; break; case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: p_type = "GEOMETRYCOLLECTION"; break; case -1: p_type = "GEOMETRY"; break; }; strcat (sql, "', '"); switch (dims) { case GAIA_XY: p_dims = "XY"; break; case GAIA_XY_Z: p_dims = "XYZ"; break; case GAIA_XY_M: p_dims = "XYM"; break; case GAIA_XY_Z_M: p_dims = "XYZM"; break; }; /* Sandro 2013-01-07 / fixing an issue reported by Peter Aronson [ESRI] sql_statement = sqlite3_mprintf ("INSERT INTO geometry_columns " "(f_table_name, f_geometry_column, type, coord_dimension, srid, " "spatial_index_enabled) VALUES (Lower(?), Lower(?), %Q, %Q, ?, 0)", p_type, p_dims); */ sql_statement = sqlite3_mprintf ("INSERT INTO geometry_columns " "(f_table_name, f_geometry_column, type, coord_dimension, srid, " "spatial_index_enabled) VALUES (?, ?, %Q, %Q, ?, 0)", p_type, p_dims); } else { /* current metadata style >= v.4.0.0 */ switch (xtype) { case GAIA_POINT: n_type = 1; n_dims = 2; break; case GAIA_POINTZ: n_type = 1001; n_dims = 3; break; case GAIA_POINTM: n_type = 2001; n_dims = 3; break; case GAIA_POINTZM: n_type = 3001; n_dims = 4; break; case GAIA_LINESTRING: n_type = 2; n_dims = 2; break; case GAIA_LINESTRINGZ: n_type = 1002; n_dims = 3; break; case GAIA_LINESTRINGM: n_type = 2002; n_dims = 3; break; case GAIA_LINESTRINGZM: n_type = 3002; n_dims = 4; break; case GAIA_POLYGON: n_type = 3; n_dims = 2; break; case GAIA_POLYGONZ: n_type = 1003; n_dims = 3; break; case GAIA_POLYGONM: n_type = 2003; n_dims = 3; break; case GAIA_POLYGONZM: n_type = 3003; n_dims = 4; break; case GAIA_MULTIPOINT: n_type = 4; n_dims = 2; break; case GAIA_MULTIPOINTZ: n_type = 1004; n_dims = 3; break; case GAIA_MULTIPOINTM: n_type = 2004; n_dims = 3; break; case GAIA_MULTIPOINTZM: n_type = 3004; n_dims = 4; break; case GAIA_MULTILINESTRING: n_type = 5; n_dims = 2; break; case GAIA_MULTILINESTRINGZ: n_type = 1005; n_dims = 3; break; case GAIA_MULTILINESTRINGM: n_type = 2005; n_dims = 3; break; case GAIA_MULTILINESTRINGZM: n_type = 3005; n_dims = 4; break; case GAIA_MULTIPOLYGON: n_type = 6; n_dims = 2; break; case GAIA_MULTIPOLYGONZ: n_type = 1006; n_dims = 3; break; case GAIA_MULTIPOLYGONM: n_type = 2006; n_dims = 3; break; case GAIA_MULTIPOLYGONZM: n_type = 3006; n_dims = 4; break; case GAIA_GEOMETRYCOLLECTION: n_type = 7; n_dims = 2; break; case GAIA_GEOMETRYCOLLECTIONZ: n_type = 1007; n_dims = 3; break; case GAIA_GEOMETRYCOLLECTIONM: n_type = 2007; n_dims = 3; break; case GAIA_GEOMETRYCOLLECTIONZM: n_type = 3007; n_dims = 4; break; case -1: switch (dims) { case GAIA_XY: n_type = 0; n_dims = 2; break; case GAIA_XY_Z: n_type = 1000; n_dims = 3; break; case GAIA_XY_M: n_type = 2000; n_dims = 3; break; case GAIA_XY_Z_M: n_type = 3000; n_dims = 4; break; }; break; }; sql_statement = sqlite3_mprintf ("INSERT INTO geometry_columns " "(f_table_name, f_geometry_column, geometry_type, coord_dimension, " "srid, spatial_index_enabled) VALUES (Lower(?), Lower(?), %d, %d, ?, 0)", n_type, n_dims); } ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("RecoverGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); if (srid < 0) sqlite3_bind_int (stmt, 3, -1); else sqlite3_bind_int (stmt, 3, srid); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("RecoverGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); if (metadata_version == 3) { /* current metadata style >= v.4.0.0 */ /* inserting a row into GEOMETRY_COLUMNS_AUTH */ strcpy (sql, "INSERT OR REPLACE INTO geometry_columns_auth (f_table_name, f_geometry_column, "); strcat (sql, "read_only, hidden) VALUES (Lower(?), Lower(?), 0, 0)"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("RecoverGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("RecoverGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); /* inserting a row into GEOMETRY_COLUMNS_STATISTICS */ strcpy (sql, "INSERT OR REPLACE INTO geometry_columns_statistics (f_table_name, f_geometry_column) "); strcat (sql, "VALUES (Lower(?), Lower(?))"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("RecoverGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("RecoverGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); /* inserting a row into GEOMETRY_COLUMNS_TIME */ strcpy (sql, "INSERT OR REPLACE INTO geometry_columns_time (f_table_name, f_geometry_column) "); strcat (sql, "VALUES (Lower(?), Lower(?))"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("RecoverGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, column, strlen (column), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("RecoverGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); } updateGeometryTriggers (sqlite, table, column); sqlite3_result_int (context, 1); switch (xtype) { case GAIA_POINT: case GAIA_POINTZ: case GAIA_POINTM: case GAIA_POINTZM: p_type = "POINT"; break; case GAIA_LINESTRING: case GAIA_LINESTRINGZ: case GAIA_LINESTRINGM: case GAIA_LINESTRINGZM: p_type = "LINESTRING"; break; case GAIA_POLYGON: case GAIA_POLYGONZ: case GAIA_POLYGONM: case GAIA_POLYGONZM: p_type = "POLYGON"; break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: p_type = "MULTIPOINT"; break; case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: p_type = "MULTILINESTRING"; break; case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: p_type = "MULTIPOLYGON"; break; case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: p_type = "GEOMETRYCOLLECTION"; break; case -1: p_type = "GEOMETRY"; break; }; switch (dims) { case GAIA_XY: p_dims = "XY"; break; case GAIA_XY_Z: p_dims = "XYZ"; break; case GAIA_XY_M: p_dims = "XYM"; break; case GAIA_XY_Z_M: p_dims = "XYZM"; break; }; sql_statement = sqlite3_mprintf ("Geometry [%s,%s,SRID=%d] successfully recovered", p_type, p_dims, (srid <= 0) ? -1 : srid); updateSpatiaLiteHistory (sqlite, table, column, sql_statement); sqlite3_free (sql_statement); return; error: sqlite3_result_int (context, 0); return; } static void fnct_DiscardGeometryColumn (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DiscardGeometryColumn(table, column) / / removes TABLE.COLUMN from the Spatial MetaData [thus disabling triggers too] / returns 1 on success / 0 on failure */ const unsigned char *table; const unsigned char *column; char *p_table = NULL; char *p_column = NULL; sqlite3_stmt *stmt; char *sql_statement; char *raw; char *quoted; char *errMsg = NULL; int ret; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("DiscardGeometryColumn() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("DiscardGeometryColumn() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = sqlite3_value_text (argv[1]); sql_statement = sqlite3_mprintf ("DELETE FROM geometry_columns " "WHERE Lower(f_table_name) = Lower(?) " "AND Lower(f_geometry_column) = Lower(?)"); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("DiscardGeometryColumn: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_int (context, 0); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, (const char *) table, strlen ((const char *) table), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, (const char *) column, strlen ((const char *) column), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("DiscardGeometryColumn() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto error; } sqlite3_finalize (stmt); /* removing triggers too */ if (!getRealSQLnames (sqlite, (const char *) table, (const char *) column, &p_table, &p_column)) { spatialite_e ("DiscardGeometryColumn() error: not existing Table or Column\n"); sqlite3_result_int (context, 0); return; } raw = sqlite3_mprintf ("ggi_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("ggu_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gii_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("giu_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gid_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gci_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gcu_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gcd_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("tmi_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("tmu_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("tmd_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* trying to delete old versions [v2.0, v2.2] triggers[if any] */ raw = sqlite3_mprintf ("gti_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gtu_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gsi_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; raw = sqlite3_mprintf ("gsu_%s_%s", p_table, p_column); quoted = gaiaDoubleQuotedSql (raw); sqlite3_free (raw); sql_statement = sqlite3_mprintf ("DROP TRIGGER IF EXISTS main.\"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* end deletion old versions [v2.0, v2.2] triggers[if any] */ sqlite3_result_int (context, 1); updateSpatiaLiteHistory (sqlite, p_table, p_column, "Geometry successfully discarded"); free (p_table); free (p_column); return; error: if (p_table) free (p_table); if (p_column) free (p_column); spatialite_e ("DiscardGeometryColumn() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static int registerVirtual (sqlite3 * sqlite, const char *table) { /* attempting to register a VirtualGeometry */ char gtype[64]; int xtype = -1; int srid = -1; char **results; int ret; int rows; int columns; int i; char *errMsg = NULL; int ok_virt_name = 0; int ok_virt_geometry = 0; int ok_srid = 0; int ok_geometry_type = 0; int ok_type = 0; int ok_coord_dimension = 0; int xdims; char *quoted; char *sql_statement; /* testing the layout of virts_geometry_columns table */ ret = sqlite3_get_table (sqlite, "PRAGMA table_info(virts_geometry_columns)", &results, &rows, &columns, &errMsg); if (ret != SQLITE_OK) { spatialite_e ("RegisterVirtualGeometry() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) { if (strcasecmp ("virt_name", results[(i * columns) + 1]) == 0) ok_virt_name = 1; if (strcasecmp ("virt_geometry", results[(i * columns) + 1]) == 0) ok_virt_geometry = 1; if (strcasecmp ("srid", results[(i * columns) + 1]) == 0) ok_srid = 1; if (strcasecmp ("geometry_type", results[(i * columns) + 1]) == 0) ok_geometry_type = 1; if (strcasecmp ("type", results[(i * columns) + 1]) == 0) ok_type = 1; if (strcasecmp ("coord_dimension", results[(i * columns) + 1]) == 0) ok_coord_dimension = 1; } sqlite3_free_table (results); if (ok_virt_name && ok_virt_geometry && ok_srid && ok_geometry_type && ok_coord_dimension) ; else if (ok_virt_name && ok_virt_geometry && ok_srid && ok_type) ; else return 0; /* determining Geometry Type and dims */ quoted = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("SELECT DISTINCT " "ST_GeometryType(Geometry), ST_Srid(Geometry) FROM \"%s\"", quoted); free (quoted); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("RegisterVirtualGeometry() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) { if (results[(i * columns)] == NULL) *gtype = '\0'; else strcpy (gtype, results[(i * columns)]); if (results[(i * columns) + 1] == NULL) srid = 0; else srid = atoi (results[(i * columns) + 1]); } sqlite3_free_table (results); /* normalized Geometry type */ if (strcmp (gtype, "POINT") == 0) xtype = 1; if (strcmp (gtype, "POINT Z") == 0) xtype = 1001; if (strcmp (gtype, "POINT M") == 0) xtype = 2001; if (strcmp (gtype, "POINT ZM") == 0) xtype = 3001; if (strcmp (gtype, "LINESTRING") == 0) xtype = 2; if (strcmp (gtype, "LINESTRING Z") == 0) xtype = 1002; if (strcmp (gtype, "LINESTRING M") == 0) xtype = 2002; if (strcmp (gtype, "LINESTRING ZM") == 0) xtype = 3002; if (strcmp (gtype, "POLYGON") == 0) xtype = 3; if (strcmp (gtype, "POLYGON Z") == 0) xtype = 1003; if (strcmp (gtype, "POLYGON M") == 0) xtype = 2003; if (strcmp (gtype, "POLYGON ZM") == 0) xtype = 3003; if (strcmp (gtype, "MULTIPOINT") == 0) xtype = 4; if (strcmp (gtype, "MULTIPOINT Z") == 0) xtype = 1004; if (strcmp (gtype, "MULTIPOINT M") == 0) xtype = 2004; if (strcmp (gtype, "MULTIPOINT ZM") == 0) xtype = 3004; if (strcmp (gtype, "MULTILINESTRING") == 0) xtype = 5; if (strcmp (gtype, "MULTILINESTRING Z") == 0) xtype = 1005; if (strcmp (gtype, "MULTILINESTRING M") == 0) xtype = 2005; if (strcmp (gtype, "MULTILINESTRING ZM") == 0) xtype = 3005; if (strcmp (gtype, "MULTIPOLYGON") == 0) xtype = 6; if (strcmp (gtype, "MULTIPOLYGON Z") == 0) xtype = 1006; if (strcmp (gtype, "MULTIPOLYGON M") == 0) xtype = 2006; if (strcmp (gtype, "MULTIPOLYGON ZM") == 0) xtype = 3006; /* updating metadata tables */ xdims = -1; switch (xtype) { case 1: case 2: case 3: case 4: case 5: case 6: xdims = 2; break; case 1001: case 1002: case 1003: case 1004: case 1005: case 1006: case 2001: case 2002: case 2003: case 2004: case 2005: case 2006: xdims = 3; break; case 3001: case 3002: case 3003: case 3004: case 3005: case 3006: xdims = 4; break; }; if (ok_geometry_type) { /* has the "geometry_type" column */ sql_statement = sqlite3_mprintf ("INSERT OR REPLACE INTO virts_geometry_columns " "(virt_name, virt_geometry, geometry_type, coord_dimension, srid) " "VALUES (Lower(%Q), 'geometry', %d, %d, %d)", table, xtype, xdims, srid); } else { /* has the "type" column */ const char *xgtype = "UNKNOWN"; switch (xtype) { case 1: case 1001: case 2001: case 3001: xgtype = "POINT"; break; case 2: case 1002: case 2002: case 3002: xgtype = "LINESTRING"; break; case 3: case 1003: case 2003: case 3003: xgtype = "POLYGON"; break; case 4: case 1004: case 2004: case 3004: xgtype = "MULTIPOINT"; break; case 5: case 1005: case 2005: case 3005: xgtype = "MULTILINESTRING"; break; case 6: case 1006: case 2006: case 3006: xgtype = "MULTIPOLYGON"; break; }; sql_statement = sqlite3_mprintf ("INSERT OR REPLACE INTO virts_geometry_columns " "(virt_name, virt_geometry, type, srid) " "VALUES (Lower(%Q), 'geometry', %Q, %d)", table, xgtype, srid); } ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("RegisterVirtualGeometry() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); return 0; } if (checkSpatialMetaData (sqlite) == 3) { /* current metadata style >= v.4.0.0 */ /* inserting a row into VIRTS_GEOMETRY_COLUMNS_AUTH */ sql_statement = sqlite3_mprintf ("INSERT OR REPLACE INTO " "virts_geometry_columns_auth (virt_name, virt_geometry, hidden) " "VALUES (Lower(%Q), 'geometry', 0)", table); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("RegisterVirtualGeometry() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); return 0; } /* inserting a row into GEOMETRY_COLUMNS_STATISTICS */ sql_statement = sqlite3_mprintf ("INSERT OR REPLACE INTO " "virts_geometry_columns_statistics (virt_name, virt_geometry) " "VALUES (Lower(%Q), 'geometry')", table); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("RegisterVirtualGeometry() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); return 0; } } return 1; } static void fnct_RegisterVirtualGeometry (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterVirtualGeometry(table) / / insert/updates TABLE.COLUMN into the Spatial MetaData [Virtual Table] / returns 1 on success / 0 on failure */ const unsigned char *table; char sql[1024]; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("RegisterVirtualGeometry() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = sqlite3_value_text (argv[0]); if (!registerVirtual (sqlite, (char *) table)) goto error; sqlite3_result_int (context, 1); strcpy (sql, "Virtual Geometry successfully registered"); updateSpatiaLiteHistory (sqlite, (const char *) table, "Geometry", sql); return; error: spatialite_e ("RegisterVirtualGeometry() error\n"); sqlite3_result_int (context, 0); return; } static void fnct_DropVirtualGeometry (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DropVirtualGeometry(table) / / removes TABLE.COLUMN from the Spatial MetaData and DROPs the Virtual Table / returns 1 on success / 0 on failure */ const unsigned char *table; char *sql_statement; char *errMsg = NULL; int ret; char *quoted; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("DropVirtualGeometry() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = sqlite3_value_text (argv[0]); sql_statement = sqlite3_mprintf ("DELETE FROM virts_geometry_columns " "WHERE Lower(virt_name) = Lower(%Q)", table); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; quoted = gaiaDoubleQuotedSql ((const char *) table); sql_statement = sqlite3_mprintf ("DROP TABLE IF EXISTS \"%s\"", quoted); free (quoted); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; sqlite3_result_int (context, 1); updateSpatiaLiteHistory (sqlite, (const char *) table, "Geometry", "Virtual Geometry successfully dropped"); return; error: spatialite_e ("DropVirtualGeometry() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static void fnct_InitFDOSpatialMetaData (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / InitFDOSpatialMetaData(void) / / creates the FDO-styled SPATIAL_REF_SYS and GEOMETRY_COLUMNS tables / returns 1 on success / 0 on failure */ char sql[1024]; char *errMsg = NULL; int ret; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* creating the SPATIAL_REF_SYS tables */ strcpy (sql, "CREATE TABLE spatial_ref_sys (\n"); strcat (sql, "srid INTEGER PRIMARY KEY,\n"); strcat (sql, "auth_name TEXT,\n"); strcat (sql, "auth_srid INTEGER,\n"); strcat (sql, "srtext TEXT)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; /* creating the GEOMETRY_COLUMN tables */ strcpy (sql, "CREATE TABLE geometry_columns (\n"); strcat (sql, "f_table_name TEXT,\n"); strcat (sql, "f_geometry_column TEXT,\n"); strcat (sql, "geometry_type INTEGER,\n"); strcat (sql, "coord_dimension INTEGER,\n"); strcat (sql, "srid INTEGER,\n"); strcat (sql, "geometry_format TEXT)"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; sqlite3_result_int (context, 1); return; error: spatialite_e ("InitFDOSpatiaMetaData() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static int recoverFDOGeomColumn (sqlite3 * sqlite, const unsigned char *table, const unsigned char *column, int xtype, int srid) { /* checks if TABLE.COLUMN exists and has the required features */ int ok = 1; char *sql_statement; int type; sqlite3_stmt *stmt; gaiaGeomCollPtr geom; const void *blob_value; int len; int ret; int i_col; char *xcolumn; char *xtable; xcolumn = gaiaDoubleQuotedSql ((char *) column); xtable = gaiaDoubleQuotedSql ((char *) table); sql_statement = sqlite3_mprintf ("SELECT \"%s\" FROM \"%s\"", xcolumn, xtable); free (xcolumn); free (xtable); /* compiling SQL prepared statement */ ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("recoverFDOGeomColumn: error %d \"%s\"\n", sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); return 0; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* checking Geometry features */ geom = NULL; for (i_col = 0; i_col < sqlite3_column_count (stmt); i_col++) { if (sqlite3_column_type (stmt, i_col) != SQLITE_BLOB) ok = 0; else { blob_value = sqlite3_column_blob (stmt, i_col); len = sqlite3_column_bytes (stmt, i_col); geom = gaiaFromSpatiaLiteBlobWkb (blob_value, len); if (!geom) ok = 0; else { if (geom->Srid != srid) ok = 0; /* normalizing Geometry Type */ switch (gaiaGeometryType (geom)) { case GAIA_POINT: case GAIA_POINTZ: case GAIA_POINTM: case GAIA_POINTZM: type = GAIA_POINT; break; case GAIA_LINESTRING: case GAIA_LINESTRINGZ: case GAIA_LINESTRINGM: case GAIA_LINESTRINGZM: type = GAIA_LINESTRING; break; case GAIA_POLYGON: case GAIA_POLYGONZ: case GAIA_POLYGONM: case GAIA_POLYGONZM: type = GAIA_POLYGON; break; case GAIA_MULTIPOINT: case GAIA_MULTIPOINTZ: case GAIA_MULTIPOINTM: case GAIA_MULTIPOINTZM: type = GAIA_MULTIPOINT; break; case GAIA_MULTILINESTRING: case GAIA_MULTILINESTRINGZ: case GAIA_MULTILINESTRINGM: case GAIA_MULTILINESTRINGZM: type = GAIA_MULTILINESTRING; break; case GAIA_MULTIPOLYGON: case GAIA_MULTIPOLYGONZ: case GAIA_MULTIPOLYGONM: case GAIA_MULTIPOLYGONZM: type = GAIA_MULTIPOLYGON; break; case GAIA_GEOMETRYCOLLECTION: case GAIA_GEOMETRYCOLLECTIONZ: case GAIA_GEOMETRYCOLLECTIONM: case GAIA_GEOMETRYCOLLECTIONZM: type = GAIA_GEOMETRYCOLLECTION; break; default: type = -1; break; }; if (xtype == type) ; else ok = 0; gaiaFreeGeomColl (geom); } } } } if (!ok) break; } ret = sqlite3_finalize (stmt); if (ret != SQLITE_OK) { spatialite_e ("recoverFDOGeomColumn: error %d \"%s\"\n", sqlite3_errcode (sqlite), sqlite3_errmsg (sqlite)); return 0; } return ok; } static void fnct_AddFDOGeometryColumn (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AddFDOGeometryColumn(table, column, srid, geometry_type , dimension, geometry_format ) / / creates a new COLUMN of given TYPE into TABLE / returns 1 on success / 0 on failure */ const char *table; const char *column; const char *format; char xformat[64]; int type; int srid = -1; int dimension = 2; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; int oktbl; char *xtable; char *xcolumn; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("AddFDOGeometryColumn() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("AddFDOGeometryColumn() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { spatialite_e ("AddFDOGeometryColumn() error: argument 3 [SRID] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } srid = sqlite3_value_int (argv[2]); if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER) { spatialite_e ("AddFDOGeometryColumn() error: argument 4 [geometry_type] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } type = sqlite3_value_int (argv[3]); if (sqlite3_value_type (argv[4]) != SQLITE_INTEGER) { spatialite_e ("AddFDOGeometryColumn() error: argument 5 [dimension] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } dimension = sqlite3_value_int (argv[4]); if (sqlite3_value_type (argv[5]) != SQLITE_TEXT) { spatialite_e ("AddFDOGeometryColumn() error: argument 6 [geometry_format] is not of the String type\n"); sqlite3_result_int (context, 0); return; } format = (const char *) sqlite3_value_text (argv[5]); if (type == GAIA_POINT || type == GAIA_LINESTRING || type == GAIA_POLYGON || type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) ; else { spatialite_e ("AddFDOGeometryColumn() error: argument 4 [geometry_type] has an illegal value\n"); sqlite3_result_int (context, 0); return; } if (dimension < 2 || dimension > 4) { spatialite_e ("AddFDOGeometryColumn() error: argument 5 [dimension] current version only accepts dimension=2,3,4\n"); sqlite3_result_int (context, 0); return; } if (strcasecmp (format, "WKT") == 0) strcpy (xformat, "WKT"); else if (strcasecmp (format, "WKB") == 0) strcpy (xformat, "WKB"); else if (strcasecmp (format, "FGF") == 0) strcpy (xformat, "FGF"); else if (strcasecmp (format, "SPATIALITE") == 0) strcpy (xformat, "SPATIALITE"); else { spatialite_e ("AddFDOGeometryColumn() error: argument 6 [geometry_format] has to be one of: WKT,WKB,FGF,SPATIALITE\n"); sqlite3_result_int (context, 0); return; } /* checking if the table exists */ xtable = gaiaDoubleQuotedSql (table); xcolumn = gaiaDoubleQuotedSql (column); sql_statement = sqlite3_mprintf ("SELECT name FROM sqlite_master " "WHERE type = 'table' AND Upper(name) = Upper(%Q)", table); free (xtable); free (xcolumn); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("AddFDOGeometryColumn: \"%s\"\n", errMsg); sqlite3_free (errMsg); return; } oktbl = 0; for (i = 1; i <= rows; i++) oktbl = 1; sqlite3_free_table (results); if (!oktbl) { spatialite_e ("AddFDOGeometryColumn() error: table '%s' does not exist\n", table); sqlite3_result_int (context, 0); return; } /* trying to add the column */ xtable = gaiaDoubleQuotedSql (table); xcolumn = gaiaDoubleQuotedSql (column); sql_statement = sqlite3_mprintf ("ALTER TABLE \"%s\" " "ADD COLUMN \"%s\" BLOB", xtable, xcolumn); free (xtable); free (xcolumn); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /*ok, inserting into geometry_columns [FDO Spatial Metadata] */ sql_statement = sqlite3_mprintf ("INSERT INTO geometry_columns " "(f_table_name, f_geometry_column, geometry_type, " "coord_dimension, srid, geometry_format) VALUES (%Q, %Q, %d, %d, %d, %Q)", table, column, type, dimension, (srid <= 0) ? -1 : srid, xformat); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; sqlite3_result_int (context, 1); return; error: spatialite_e ("AddFDOGeometryColumn() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static void fnct_RecoverFDOGeometryColumn (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RecoverFDOGeometryColumn(table, column, srid, geometry_type , dimension, geometry_format ) / / checks if an existing TABLE.COLUMN satisfies the required geometric features / if yes adds it to FDO-styled SpatialMetaData / returns 1 on success / 0 on failure */ const char *table; const char *column; const char *format; char xformat[64]; int type; int srid = -1; int dimension = 2; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; int ok_tbl; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("RecoverFDOGeometryColumn() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("RecoverFDOGeometryColumn() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { spatialite_e ("RecoverFDOGeometryColumn() error: argument 3 [SRID] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } srid = sqlite3_value_int (argv[2]); if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER) { spatialite_e ("RecoverFDOGeometryColumn() error: argument 4 [geometry_type] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } type = sqlite3_value_int (argv[3]); if (sqlite3_value_type (argv[4]) != SQLITE_INTEGER) { spatialite_e ("RecoverFDOGeometryColumn() error: argument 5 [dimension] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } dimension = sqlite3_value_int (argv[4]); if (sqlite3_value_type (argv[5]) != SQLITE_TEXT) { spatialite_e ("RecoverFDOGeometryColumn() error: argument 6 [geometry_format] is not of the String type\n"); sqlite3_result_int (context, 0); return; } format = (const char *) sqlite3_value_text (argv[5]); if (type == GAIA_POINT || type == GAIA_LINESTRING || type == GAIA_POLYGON || type == GAIA_MULTIPOINT || type == GAIA_MULTILINESTRING || type == GAIA_MULTIPOLYGON || type == GAIA_GEOMETRYCOLLECTION) ; else { spatialite_e ("RecoverFDOGeometryColumn() error: argument 4 [geometry_type] has an illegal value\n"); sqlite3_result_int (context, 0); return; } if (dimension < 2 || dimension > 4) { spatialite_e ("RecoverFDOGeometryColumn() error: argument 5 [dimension] current version only accepts dimension=2,3,4\n"); sqlite3_result_int (context, 0); return; } if (strcasecmp (format, "WKT") == 0) strcpy (xformat, "WKT"); else if (strcasecmp (format, "WKB") == 0) strcpy (xformat, "WKB"); else if (strcasecmp (format, "FGF") == 0) strcpy (xformat, "FGF"); else if (strcasecmp (format, "SPATIALITE") == 0) strcpy (xformat, "SPATIALITE"); else { spatialite_e ("RecoverFDOGeometryColumn() error: argument 6 [geometry_format] has to be one of: WKT,WKB,FGF\n"); sqlite3_result_int (context, 0); return; } /* checking if the table exists */ sql_statement = sqlite3_mprintf ("SELECT name FROM sqlite_master " "WHERE type = 'table' AND Upper(name) = Upper(%Q)", table); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("RecoverFDOGeometryColumn: \"%s\"\n", errMsg); sqlite3_free (errMsg); return; } ok_tbl = 0; for (i = 1; i <= rows; i++) ok_tbl = 1; sqlite3_free_table (results); if (!ok_tbl) { spatialite_e ("RecoverFDOGeometryColumn() error: table '%s' does not exist\n", table); sqlite3_result_int (context, 0); return; } if (!recoverFDOGeomColumn (sqlite, (const unsigned char *) table, (const unsigned char *) column, type, srid)) { spatialite_e ("RecoverFDOGeometryColumn(): validation failed\n"); sqlite3_result_int (context, 0); return; } sql_statement = sqlite3_mprintf ("INSERT INTO geometry_columns " "(f_table_name, f_geometry_column, geometry_type, " "coord_dimension, srid, geometry_format) VALUES (%Q, %Q, %d, %d, %d, %Q)", table, column, type, dimension, (srid <= 0) ? -1 : srid, xformat); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; sqlite3_result_int (context, 1); return; error: spatialite_e ("RecoverFDOGeometryColumn() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static void fnct_DiscardFDOGeometryColumn (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DiscardFDOGeometryColumn(table, column) / / removes TABLE.COLUMN from the Spatial MetaData / returns 1 on success / 0 on failure */ const unsigned char *table; const unsigned char *column; char *sql_statement; char *errMsg = NULL; int ret; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("DiscardFDOGeometryColumn() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("DiscardFDOGeometryColumn() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = sqlite3_value_text (argv[1]); sql_statement = sqlite3_mprintf ("DELETE FROM geometry_columns WHERE Upper(f_table_name) = " "Upper(%Q) AND Upper(f_geometry_column) = Upper(%Q)", table, column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; sqlite3_result_int (context, 1); return; error: spatialite_e ("DiscardFDOGeometryColumn() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static int eval_rtree_entry (int ok_geom, double geom_value, int ok_rtree, double rtree_value) { /* evaluating geom-coord and rtree-coord */ if (!ok_geom && !ok_rtree) return 1; if (ok_geom && ok_rtree) { float g = (float) geom_value; float r = (float) rtree_value; double tic = fabs (geom_value - r) * 2.0; float diff = g - r; if (diff > tic) return 0; return 1; } return 0; } static int check_spatial_index (sqlite3 * sqlite, const unsigned char *table, const unsigned char *geom) { /* attempting to check an R*Tree for consistency */ char *xtable = NULL; char *xgeom = NULL; char *idx_name; char *xidx_name = NULL; char sql[1024]; char *sql_statement; int ret; int is_defined = 0; sqlite3_stmt *stmt; sqlite3_int64 count_geom = 0; sqlite3_int64 count_rtree = 0; sqlite3_int64 count_rev = 0; double g_xmin = DBL_MAX; double g_ymin = DBL_MAX; double g_xmax = 0.0 - DBL_MAX; double g_ymax = 0.0 - DBL_MAX; int ok_g_xmin; int ok_g_ymin; int ok_g_xmax; int ok_g_ymax; double i_xmin = DBL_MAX; double i_ymin = DBL_MAX; double i_xmax = 0.0 - DBL_MAX; double i_ymax = 0.0 - DBL_MAX; int ok_i_xmin; int ok_i_ymin; int ok_i_xmax; int ok_i_ymax; int rowid_column = 0; int without_rowid = 0; if (is_without_rowid_table (sqlite, (char *) table)) { spatialite_e ("check_spatial_index: table \"%s\" is WITHOUT ROWID\n", table); without_rowid = 1; goto err_label; } /* checking if the R*Tree Spatial Index is defined */ sql_statement = sqlite3_mprintf ("SELECT Count(*) FROM geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) " "AND Upper(f_geometry_column) = Upper(%Q) AND spatial_index_enabled = 1", table, geom); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CheckSpatialIndex SQL error: %s\n", sqlite3_errmsg (sqlite)); goto err_label; } while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) is_defined = sqlite3_column_int (stmt, 0); else { spatialite_e ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto err_label; } } sqlite3_finalize (stmt); if (!is_defined) goto err_label; xgeom = gaiaDoubleQuotedSql ((char *) geom); xtable = gaiaDoubleQuotedSql ((char *) table); idx_name = sqlite3_mprintf ("idx_%s_%s", table, geom); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); if (!validateRowid (sqlite, (const char *) table)) { /* a physical column named "rowid" shadows the real ROWID */ rowid_column = 1; goto err_label; } /* counting how many Geometries are set into the main-table */ sql_statement = sqlite3_mprintf ("SELECT Count(*) FROM \"%s\" " "WHERE ST_GeometryType(\"%s\") IS NOT NULL", xtable, xgeom); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CheckSpatialIndex SQL error: %s\n", sqlite3_errmsg (sqlite)); goto err_label; } while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) count_geom = sqlite3_column_int (stmt, 0); else { spatialite_e ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto err_label; } } sqlite3_finalize (stmt); /* counting how many R*Tree entries are defined */ sql_statement = sqlite3_mprintf ("SELECT Count(*) FROM \"%s\"", xidx_name); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CheckSpatialIndex SQL error: %s\n", sqlite3_errmsg (sqlite)); goto err_label; } while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) count_rtree = sqlite3_column_int (stmt, 0); else { spatialite_e ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto err_label; } } sqlite3_finalize (stmt); if (count_geom != count_rtree) { /* unexpected count difference */ goto mismatching_zero; } /* now we'll check the R*Tree against the corresponding geometry-table */ sql_statement = sqlite3_mprintf ("SELECT MbrMinX(g.\"%s\"), MbrMinY(g.\"%s\"), " "MbrMaxX(g.\"%s\"), MbrMaxY(g.\"%s\"), i.xmin, i.ymin, i.xmax, i.ymax\n" "FROM \"%s\" AS i\nLEFT JOIN \"%s\" AS g ON (g.ROWID = i.pkid)", xgeom, xgeom, xgeom, xgeom, xidx_name, xtable); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CheckSpatialIndex SQL error: %s\n", sqlite3_errmsg (sqlite)); goto err_label; } while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { /* checking a row */ count_rev++; ok_g_xmin = 1; ok_g_ymin = 1; ok_g_xmax = 1; ok_g_ymax = 1; ok_i_xmin = 1; ok_i_ymin = 1; ok_i_xmax = 1; ok_i_ymax = 1; if (sqlite3_column_type (stmt, 0) == SQLITE_NULL) ok_g_xmin = 0; else g_xmin = sqlite3_column_double (stmt, 0); if (sqlite3_column_type (stmt, 1) == SQLITE_NULL) ok_g_ymin = 0; else g_ymin = sqlite3_column_double (stmt, 1); if (sqlite3_column_type (stmt, 2) == SQLITE_NULL) ok_g_xmax = 0; else g_xmax = sqlite3_column_double (stmt, 2); if (sqlite3_column_type (stmt, 3) == SQLITE_NULL) ok_g_ymax = 0; else g_ymax = sqlite3_column_double (stmt, 3); if (sqlite3_column_type (stmt, 4) == SQLITE_NULL) ok_i_xmin = 0; else i_xmin = sqlite3_column_double (stmt, 4); if (sqlite3_column_type (stmt, 5) == SQLITE_NULL) ok_i_ymin = 0; else i_ymin = sqlite3_column_double (stmt, 5); if (sqlite3_column_type (stmt, 6) == SQLITE_NULL) ok_i_xmax = 0; else i_xmax = sqlite3_column_double (stmt, 6); if (sqlite3_column_type (stmt, 7) == SQLITE_NULL) ok_i_ymax = 0; else i_ymax = sqlite3_column_double (stmt, 7); if (eval_rtree_entry (ok_g_xmin, g_xmin, ok_i_xmin, i_xmin) == 0) goto mismatching; if (eval_rtree_entry (ok_g_ymin, g_ymin, ok_i_ymin, i_ymin) == 0) goto mismatching; if (eval_rtree_entry (ok_g_xmax, g_xmax, ok_i_xmax, i_xmax) == 0) goto mismatching; if (eval_rtree_entry (ok_g_ymax, g_ymax, ok_i_ymax, i_ymax) == 0) goto mismatching; } else { spatialite_e ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); goto err_label; } } sqlite3_finalize (stmt); if (count_geom != count_rev) goto mismatching; strcpy (sql, "Check SpatialIndex: is valid"); updateSpatiaLiteHistory (sqlite, (const char *) table, (const char *) geom, sql); free (xgeom); free (xtable); free (xidx_name); return 1; mismatching: sqlite3_finalize (stmt); strcpy (sql, "Check SpatialIndex: INCONSISTENCIES detected"); updateSpatiaLiteHistory (sqlite, (const char *) table, (const char *) geom, sql); mismatching_zero: if (xgeom) free (xgeom); if (xtable) free (xtable); if (xidx_name) free (xidx_name); return 0; err_label: if (xgeom) free (xgeom); if (xtable) free (xtable); if (xidx_name) free (xidx_name); if (rowid_column) return -2; if (without_rowid) return -3; return -1; } static int check_any_spatial_index (sqlite3 * sqlite) { /* attempting to check any defined R*Tree for consistency */ const unsigned char *table; const unsigned char *column; int status; char sql[1024]; int ret; int invalid_rtree = 0; sqlite3_stmt *stmt; /* retrieving any defined R*Tree */ strcpy (sql, "SELECT f_table_name, f_geometry_column FROM geometry_columns "); strcat (sql, "WHERE spatial_index_enabled = 1"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("CheckSpatialIndex SQL error: %s\n", sqlite3_errmsg (sqlite)); return -1; } while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { /* checking a single R*Tree */ table = sqlite3_column_text (stmt, 0); column = sqlite3_column_text (stmt, 1); status = check_spatial_index (sqlite, table, column); if (status < 0) { sqlite3_finalize (stmt); return status; } if (status == 0) invalid_rtree = 1; } else { spatialite_e ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return -1; } } sqlite3_finalize (stmt); if (invalid_rtree) return 0; return 1; } static void fnct_CheckSpatialIndex (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CheckSpatialIndex() / CheckSpatialIndex(table, column) / / checks a SpatialIndex for consistency, returning: / 1 - the R*Tree is fully consistent / 0 - the R*Tree is inconsistent / -1 if any physical "ROWID" column exist shadowing the real ROWID / NULL on failure */ const unsigned char *table; const unsigned char *column; int status; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc == 0) { /* no arguments: we must check any defined R*Tree */ status = check_any_spatial_index (sqlite); if (status < 0) { if (status == -2) sqlite3_result_int (context, -1); else sqlite3_result_null (context); } else if (status > 0) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("CheckSpatialIndex() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_null (context); return; } table = sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("CheckSpatialIndex() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_null (context); return; } column = sqlite3_value_text (argv[1]); status = check_spatial_index (sqlite, table, column); if (status == -2) sqlite3_result_int (context, -1); else if (status == -3) sqlite3_result_int (context, -1); else if (status < 0) sqlite3_result_null (context); else if (status > 0) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } static int recover_spatial_index (sqlite3 * sqlite, const unsigned char *table, const unsigned char *geom) { /* attempting to rebuild an R*Tree */ char *sql_statement; char *errMsg = NULL; int ret; char *idx_name; char *xidx_name; char sql[1024]; int is_defined = 0; sqlite3_stmt *stmt; int status; /* checking if the R*Tree Spatial Index is defined */ sql_statement = sqlite3_mprintf ("SELECT Count(*) FROM geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) " "AND Upper(f_geometry_column) = Upper(%Q) AND spatial_index_enabled = 1", table, geom); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("RecoverSpatialIndex SQL error: %s\n", sqlite3_errmsg (sqlite)); return -1; } while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) is_defined = sqlite3_column_int (stmt, 0); else { spatialite_e ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return -1; } } sqlite3_finalize (stmt); if (!is_defined) return -1; /* erasing the R*Tree table */ idx_name = sqlite3_mprintf ("idx_%s_%s", table, geom); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); sql_statement = sqlite3_mprintf ("DELETE FROM \"%s\"", xidx_name); free (xidx_name); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; /* populating the R*Tree table from scratch */ status = buildSpatialIndexEx (sqlite, table, (const char *) geom); if (status == 0) ; else { if (status == -2) { strcpy (sql, "SpatialIndex: a physical column named ROWID shadows the real ROWID"); updateSpatiaLiteHistory (sqlite, (const char *) table, (const char *) geom, sql); } else { strcpy (sql, "SpatialIndex: unable to rebuild the R*Tree"); updateSpatiaLiteHistory (sqlite, (const char *) table, (const char *) geom, sql); } return status; } strcpy (sql, "SpatialIndex: successfully recovered"); updateSpatiaLiteHistory (sqlite, (const char *) table, (const char *) geom, sql); return 1; error: spatialite_e ("RecoverSpatialIndex() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); return 0; } static int recover_any_spatial_index (sqlite3 * sqlite, int no_check) { /* attempting to rebuild any defined R*Tree */ const unsigned char *table; const unsigned char *column; int status; char sql[1024]; int ret; int to_be_fixed; int rowid_column = 0; int without_rowid = 0; sqlite3_stmt *stmt; /* retrieving any defined R*Tree */ strcpy (sql, "SELECT f_table_name, f_geometry_column FROM geometry_columns "); strcat (sql, "WHERE spatial_index_enabled = 1"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("RecoverSpatialIndex SQL error: %s\n", sqlite3_errmsg (sqlite)); return -1; } while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { /* checking a single R*Tree */ table = sqlite3_column_text (stmt, 0); column = sqlite3_column_text (stmt, 1); to_be_fixed = 1; if (!no_check) { status = check_spatial_index (sqlite, table, column); if (status < 0) { /* some unexpected error occurred */ if (status == -2) rowid_column = 1; if (status == -3) without_rowid = 1; goto fatal_error; } else if (status > 0) { /* the Spatial Index is already valid */ to_be_fixed = 0; } } if (to_be_fixed) { /* rebuilding the Spatial Index */ status = recover_spatial_index (sqlite, table, column); if (status < 0) { /* some unexpected error occurred */ if (status == -2) rowid_column = 1; if (status == -3) without_rowid = 1; goto fatal_error; } else if (status == 0) goto error; } } else { spatialite_e ("sqlite3_step() error: %s\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return -1; } } sqlite3_finalize (stmt); return 1; error: sqlite3_finalize (stmt); return 0; fatal_error: sqlite3_finalize (stmt); if (rowid_column) return -2; if (without_rowid) return -3; return -1; } static void fnct_RecoverSpatialIndex (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RecoverSpatialIndex() / RecoverSpatialIndex(no_check) / RecoverSpatialIndex(table, column) / RecoverSpatialIndex(table, column, no_check) / / attempts to rebuild a SpatialIndex, returning: / 1 - on success / 0 - on failure / -1 if any physical "ROWID" column exist shadowing the real ROWID / or if the table was created WITHOUT ROWID / NULL if any syntax error is detected */ const unsigned char *table; const unsigned char *column; int no_check = 0; int status; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc <= 1) { /* no arguments: we must rebuild any defined R*Tree */ if (argc == 1) { if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) no_check = sqlite3_value_int (argv[0]); else { spatialite_e ("RecoverSpatialIndex() error: argument 1 [no_check] is not of the Integer type\n"); sqlite3_result_null (context); return; } } status = recover_any_spatial_index (sqlite, no_check); if (status < 0) { if (status == -2) sqlite3_result_int (context, -1); else if (status == -3) sqlite3_result_int (context, -1); else sqlite3_result_null (context); } else if (status > 0) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("RecoverSpatialIndex() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_null (context); return; } table = sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("RecoverSpatialIndex() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_null (context); return; } column = sqlite3_value_text (argv[1]); if (argc == 3) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) no_check = sqlite3_value_int (argv[2]); else { spatialite_e ("RecoverSpatialIndex() error: argument 2 [no_check] is not of the Integer type\n"); sqlite3_result_null (context); return; } } if (!no_check) { /* checking the current SpatialIndex validity */ status = check_spatial_index (sqlite, table, column); if (status < 0) { /* some unexpected error occurred */ if (status == -2 || status == -3) sqlite3_result_int (context, -1); else sqlite3_result_null (context); return; } else if (status > 0) { /* the Spatial Index is already valid */ sqlite3_result_int (context, 1); return; } } /* rebuilding the Spatial Index */ status = recover_spatial_index (sqlite, table, column); if (status == -2) sqlite3_result_int (context, -1); else if (status < 0) sqlite3_result_null (context); else if (status > 0) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } static void fnct_CheckShadowedRowid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CheckShadowedRowid(table) / / checks if some table has a "rowid" physical column shadowing the real ROWID / 1 - yes, the ROWID is shadowed / 0 - no, the ROWID isn't shadowed / NULL on failure (e.g. not existing table) */ const unsigned char *table; int ret; char sql[128]; sqlite3_stmt *stmt; int exists = 0; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("CheckShadowedRowid() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_null (context); return; } table = sqlite3_value_text (argv[0]); /* checking if the table exists */ strcpy (sql, "SELECT name FROM sqlite_master WHERE type = 'table' AND Lower(name) = Lower(?)"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("CheckShadowedRowid: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_null (context); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, (const char *) table, strlen ((const char *) table), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) exists = 1; } sqlite3_finalize (stmt); if (!exists) sqlite3_result_null (context); else { if (!validateRowid (sqlite, (const char *) table)) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } } static void fnct_CheckWithoutRowid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CheckWithoutRowid(table) / / checks if some table has been created WITHOUT ROWID / 1 - yes, the table is WITHOUT ROWID / 0 - no, the ROWID should be supported / NULL on failure (e.g. not existing table) */ const unsigned char *table; int ret; char sql[128]; sqlite3_stmt *stmt; int exists = 0; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("CheckWithoutRowid() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_null (context); return; } table = sqlite3_value_text (argv[0]); /* checking if the table exists */ strcpy (sql, "SELECT name FROM sqlite_master WHERE type = 'table' AND Lower(name) = Lower(?)"); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("CheckWithoutRowid: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_result_null (context); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, (const char *) table, strlen ((const char *) table), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) exists = 1; } sqlite3_finalize (stmt); if (!exists) sqlite3_result_null (context); else { if (is_without_rowid_table (sqlite, (const char *) table)) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } } static void fnct_CreateSpatialIndex (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CreateSpatialIndex(table, column ) / / creates a SpatialIndex based on Column and Table / returns 1 on success / 0 on failure */ const char *table; const char *column; char *sql_statement; char sql[1024]; char *errMsg = NULL; int ret; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("CreateSpatialIndex() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("CreateSpatialIndex() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); if (is_without_rowid_table (sqlite, table)) { spatialite_e ("CreateSpatialIndex() error: table '%s' is WITHOUT ROWID\n", table); sqlite3_result_int (context, -1); return; } if (!validateRowid (sqlite, table)) { spatialite_e ("CreateSpatialIndex() error: a physical column named ROWID shadows the real ROWID\n"); sqlite3_result_int (context, -1); return; } sql_statement = sqlite3_mprintf ("UPDATE geometry_columns SET spatial_index_enabled = 1 " "WHERE Upper(f_table_name) = Upper(%Q) AND " "Upper(f_geometry_column) = Upper(%Q) AND spatial_index_enabled = 0", table, column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; if (sqlite3_changes (sqlite) == 0) { spatialite_e ("CreateSpatialIndex() error: either \"%s\".\"%s\" isn't a Geometry column or a SpatialIndex is already defined\n", table, column); sqlite3_result_int (context, 0); return; } updateGeometryTriggers (sqlite, table, column); sqlite3_result_int (context, 1); strcpy (sql, "R*Tree Spatial Index successfully created"); updateSpatiaLiteHistory (sqlite, table, column, sql); return; error: spatialite_e ("CreateSpatialIndex() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static void fnct_CreateMbrCache (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CreateMbrCache(table, column ) / / creates an MBR Cache based on Column and Table / returns 1 on success / 0 on failure */ const char *table; const char *column; char *sql_statement; char sql[1024]; char *errMsg = NULL; int ret; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("CreateMbrCache() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("CreateMbrCache() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); sql_statement = sqlite3_mprintf ("UPDATE geometry_columns SET spatial_index_enabled = 2 " "WHERE Upper(f_table_name) = Upper(%Q) " "AND Upper(f_geometry_column) = Upper(%Q) AND spatial_index_enabled = 0", table, column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; if (sqlite3_changes (sqlite) == 0) { spatialite_e ("CreateMbrCache() error: either \"%s\".\"%s\" isn't a Geometry column or a SpatialIndex is already defined\n", table, column); sqlite3_result_int (context, 0); return; } updateGeometryTriggers (sqlite, table, column); sqlite3_result_int (context, 1); strcpy (sql, "MbrCache successfully created"); updateSpatiaLiteHistory (sqlite, table, column, sql); return; error: spatialite_e ("CreateMbrCache() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static void fnct_DisableSpatialIndex (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DisableSpatialIndex(table, column ) / / disables a SpatialIndex based on Column and Table / returns 1 on success / 0 on failure */ const char *table; const char *column; char sql[1024]; char *sql_statement; char *errMsg = NULL; int ret; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("DisableSpatialIndex() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("DisableSpatialIndex() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); sql_statement = sqlite3_mprintf ("UPDATE geometry_columns SET spatial_index_enabled = 0 " "WHERE Upper(f_table_name) = Upper(%Q) AND " "Upper(f_geometry_column) = Upper(%Q) AND spatial_index_enabled <> 0", table, column); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; if (sqlite3_changes (sqlite) == 0) { spatialite_e ("DisableSpatialIndex() error: either \"%s\".\"%s\" isn't a Geometry column or no SpatialIndex is defined\n", table, column); sqlite3_result_int (context, 0); return; } updateGeometryTriggers (sqlite, table, column); sqlite3_result_int (context, 1); strcpy (sql, "SpatialIndex successfully disabled"); updateSpatiaLiteHistory (sqlite, table, column, sql); return; error: spatialite_e ("DisableSpatialIndex() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static void fnct_RebuildGeometryTriggers (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RebuildGeometryTriggers(table, column ) / / rebuilds Geometry Triggers (constraints) based on Column and Table / returns 1 on success / 0 on failure */ const char *table; const char *column; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("RebuildGeometryTriggers() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("RebuildGeometryTriggers() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); sql_statement = sqlite3_mprintf ("SELECT f_table_name FROM geometry_columns " "WHERE Upper(f_table_name) = Upper(%Q) AND Upper(f_geometry_column) = Upper (%Q)", table, column); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) goto error; sqlite3_free_table (results); if (rows <= 0) { spatialite_e ("RebuildGeometryTriggers() error: \"%s\".\"%s\" isn't a Geometry column\n", table, column); sqlite3_result_int (context, 0); return; } updateGeometryTriggers (sqlite, table, column); sqlite3_result_int (context, 1); updateSpatiaLiteHistory (sqlite, table, column, "Geometry Triggers successfully rebuilt"); return; error: spatialite_e ("RebuildGeometryTriggers() error: \"%s\"\n", errMsg); sqlite3_free (errMsg); sqlite3_result_int (context, 0); return; } static void fnct_UpdateLayerStatistics (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UpdateLayerStatistics(table, column ) / / Updates LAYER_STATISTICS [based on Column and Table] / returns 1 on success / 0 on failure */ const char *sql; const char *table = NULL; const char *column = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc >= 1) { if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("UpdateLayerStatistics() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); } if (argc >= 2) { if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("UpdateLayerStatistics() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); } if (!update_layer_statistics (sqlite, table, column)) goto error; sqlite3_result_int (context, 1); sql = "UpdateLayerStatistics"; if (table == NULL) table = "ALL-TABLES"; if (column == NULL) column = "ALL-GEOMETRY-COLUMNS"; updateSpatiaLiteHistory (sqlite, (const char *) table, (const char *) column, sql); return; error: sqlite3_result_int (context, 0); return; } static void fnct_UpgradeGeometryTriggers (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UpgradeGeometryTriggers(transaction TRUE|FALSE) / / Upgrades (reinstalls) all Geometry Triggers - requires a DB > 4.0.0 / returns 1 on success / 0 on failure (NULL on invalid args) */ char *errMsg = NULL; int ret; int transaction = 0; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) { spatialite_e ("UpgradeGeometryTriggers() error: argument 1 [TRANSACTION] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } if (checkSpatialMetaData (sqlite) < 3) { spatialite_e ("UpgradeGeometryTriggers() error: invalid DB Layout (< v.4.0.0)\n"); sqlite3_result_int (context, 0); return; } transaction = sqlite3_value_int (argv[0]); if (transaction) { /* starting a Transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; } if (!upgradeGeometryTriggers (sqlite)) goto error; if (transaction) { /* committing the still pending Transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; } updateSpatiaLiteHistory (sqlite, "ALL-TABLES", NULL, "Upgraded Geometry Triggers"); sqlite3_result_int (context, 1); return; error: if (transaction) { /* performing a Rollback */ ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, &errMsg); if (ret != SQLITE_OK) sqlite3_free (errMsg); } sqlite3_result_int (context, 0); return; } static void fnct_GetLayerExtent (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GetLayerExtent(table) / GetLayerExtent(table, column ) / GetLayerExtent(table, column, pessimistic ) / / Return a Geometry (Envelope) corresponding to the full layer / extent [eventually updating the supporting statistics / NULL on failure */ const char *table = NULL; const char *column = NULL; int pessimistic = 0; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geom; sqlite3 *sqlite = sqlite3_context_db_handle (context); int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (argc >= 1) { if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("GetLayerExtent() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_null (context); return; } table = (const char *) sqlite3_value_text (argv[0]); } if (argc >= 2) { if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("GetLayerExtent() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_null (context); return; } column = (const char *) sqlite3_value_text (argv[1]); } if (argc >= 3) { if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { spatialite_e ("GetLayerExtent() error: argument 3 [OPTIMISTIC/PESSIMISTIC] is not of the Integer type\n"); sqlite3_result_null (context); return; } pessimistic = sqlite3_value_int (argv[2]); } geom = gaiaGetLayerExtent (sqlite, table, column, pessimistic); if (!geom) goto error; /* builds the BLOB geometry to be returned */ gaiaToSpatiaLiteBlobWkbEx (geom, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (geom); return; error: sqlite3_result_null (context); return; } static void fnct_InvalidateLayerStatistics (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / InvalidateLayerStatistics(void) / InvalidateLayerStatistics(table) / InvalidateLayerStatistics(table, column ) / / Immediately and unconditionally invalidates Layer Statistics / returns 1 on success / 0 on failure */ const char *sql; const char *table = NULL; const char *column = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc >= 1) { if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("InvalidateLayerStatistics() error: argument 1 [table_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } table = (const char *) sqlite3_value_text (argv[0]); } if (argc >= 2) { if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { spatialite_e ("InvalidateLayerStatistics() error: argument 2 [column_name] is not of the String type\n"); sqlite3_result_int (context, 0); return; } column = (const char *) sqlite3_value_text (argv[1]); } if (!gaiaStatisticsInvalidate (sqlite, table, column)) goto error; sqlite3_result_int (context, 1); sql = "InvalidateLayerStatistics"; if (table == NULL) table = "ALL-TABLES"; if (column == NULL) column = "ALL-GEOMETRY-COLUMNS"; updateSpatiaLiteHistory (sqlite, (const char *) table, (const char *) column, sql); return; error: sqlite3_result_int (context, 0); return; } static void fnct_CreateRasterCoveragesTable (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CreateRasterCoveragesTable() / / creates the main RasterCoverages table / returns 1 on success / 0 on failure */ sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (!createRasterCoveragesTable (sqlite)) goto error; updateSpatiaLiteHistory (sqlite, "*** Raster Coverages ***", NULL, "Main table successfully created"); sqlite3_result_int (context, 1); return; error: sqlite3_result_int (context, 0); return; } static void fnct_CreateVectorCoveragesTables (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CreateVectorCoveragesTables() / / creates the main VectorCoverages table / returns 1 on success / 0 on failure */ sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (!createVectorCoveragesTable (sqlite)) goto error; updateSpatiaLiteHistory (sqlite, "*** Vector Coverages ***", NULL, "Main table successfully created"); sqlite3_result_int (context, 1); return; error: sqlite3_result_int (context, 0); return; } static void fnct_CreateMetaCatalogTables (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CreateMetaCatalogTables(transaction TRUE|FALSE) / / creates (or re-creates) both "splite_metacatalog" / and "splite_metacatalog_statistics" tables / returns 1 on success / 0 on failure */ char *errMsg = NULL; int ret; int transaction = 0; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) { spatialite_e ("CreateMetaCatalogTables() error: argument 1 [TRANSACTION] is not of the Integer type\n"); sqlite3_result_null (context); return; } transaction = sqlite3_value_int (argv[0]); if (transaction) { /* starting a Transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; } if (!gaiaCreateMetaCatalogTables (sqlite)) goto error; if (transaction) { /* committing the still pending Transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; } updateSpatiaLiteHistory (sqlite, "*** MetaCatalog ***", NULL, "Tables successfully created and initialized"); sqlite3_result_int (context, 1); return; error: if (transaction) { /* performing a Rollback */ ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, &errMsg); if (ret != SQLITE_OK) sqlite3_free (errMsg); } sqlite3_result_int (context, 0); return; } static void fnct_UpdateMetaCatalogStatistics (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UpdateMetaCatalogStatistics(transaction TRUE|FALSE, table, column) / UpdateMetaCatalogStatistics(transaction TRUE|FALSE, master_table, table_name, column_name) / / updates the MetaCatalog statistics / returns 1 on success / 0 on failure */ char *errMsg = NULL; int ret; int transaction = 0; const char *master_table = NULL; const char *table = NULL; const char *column = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) { spatialite_e ("UpdateMetaCatalogStatistics() error: argument 1 [TRANSACTION] is not of the Integer type\n"); sqlite3_result_null (context); return; } transaction = sqlite3_value_int (argv[0]); if (argc == 3) { /* table & column mode */ if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) table = (const char *) sqlite3_value_text (argv[1]); else { spatialite_e ("UpdateMetaCatalogStatistics() error: argument 2 [TABLE_NAME] is not of the Text type\n"); sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) column = (const char *) sqlite3_value_text (argv[2]); else { spatialite_e ("UpdateMetaCatalogStatistics() error: argument 2 [COLUMN_NAME] is not of the Text type\n"); sqlite3_result_null (context); return; } } else { /* master-table & table_name & column_name mode */ if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) master_table = (const char *) sqlite3_value_text (argv[1]); else { spatialite_e ("UpdateMetaCatalogStatistics() error: argument 2 [MASTER_TABLE] is not of the Text type\n"); sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) table = (const char *) sqlite3_value_text (argv[2]); else { spatialite_e ("UpdateMetaCatalogStatistics() error: argument 3 [TABLE_NAME] is not of the Text type\n"); sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_TEXT) column = (const char *) sqlite3_value_text (argv[3]); else { spatialite_e ("UpdateMetaCatalogStatistics() error: argument 3 [COLUMN_NAME] is not of the Text type\n"); sqlite3_result_null (context); return; } } if (transaction) { /* starting a Transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; } if (master_table != NULL) { if (!gaiaUpdateMetaCatalogStatisticsFromMaster (sqlite, master_table, table, column)) goto error; } else { if (!gaiaUpdateMetaCatalogStatistics (sqlite, table, column)) goto error; } if (transaction) { /* committing the still pending Transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, &errMsg); if (ret != SQLITE_OK) goto error; } updateSpatiaLiteHistory (sqlite, "*** MetaCatalog ***", NULL, "Statistics successfully updated"); sqlite3_result_int (context, 1); return; error: if (transaction) { /* performing a Rollback */ ret = sqlite3_exec (sqlite, "ROLLBACK", NULL, NULL, &errMsg); if (ret != SQLITE_OK) sqlite3_free (errMsg); } sqlite3_result_int (context, 0); return; } static gaiaPointPtr simplePoint (gaiaGeomCollPtr geo) { /* helper function / if this GEOMETRY contains only one POINT, and no other elementary geometry / the POINT address will be returned / otherwise NULL will be returned */ int cnt = 0; gaiaPointPtr point; gaiaPointPtr this_point = NULL; if (!geo) return NULL; if (geo->FirstLinestring || geo->FirstPolygon) return NULL; point = geo->FirstPoint; while (point) { /* counting how many POINTs are there */ cnt++; this_point = point; point = point->Next; } if (cnt == 1 && this_point) return this_point; return NULL; } static gaiaLinestringPtr simpleLinestring (gaiaGeomCollPtr geo) { /* helper function / if this GEOMETRY contains only one LINESTRING, and no other elementary geometry / the LINESTRING address will be returned / otherwise NULL will be returned */ int cnt = 0; gaiaLinestringPtr line; gaiaLinestringPtr this_line = NULL; if (!geo) return NULL; if (geo->FirstPoint || geo->FirstPolygon) return NULL; line = geo->FirstLinestring; while (line) { /* counting how many LINESTRINGs are there */ cnt++; this_line = line; line = line->Next; } if (cnt == 1 && this_line) return this_line; return NULL; } static gaiaPolygonPtr simplePolygon (gaiaGeomCollPtr geo) { /* helper function / if this GEOMETRY contains only one POLYGON, and no other elementary geometry / the POLYGON address will be returned / otherwise NULL will be returned */ int cnt = 0; gaiaPolygonPtr polyg; gaiaPolygonPtr this_polyg = NULL; if (!geo) return NULL; if (geo->FirstPoint || geo->FirstLinestring) return NULL; polyg = geo->FirstPolygon; while (polyg) { /* counting how many POLYGONs are there */ cnt++; this_polyg = polyg; polyg = polyg->Next; } if (cnt == 1 && this_polyg) return this_polyg; return NULL; } static void fnct_AsText (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsText(BLOB encoded geometry) / / returns the corresponding WKT encoded value / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; gaiaOutBuffer out_buf; gaiaGeomCollPtr geo = NULL; int decimal_precision = -1; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { decimal_precision = cache->decimal_precision; gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); gaiaOutBufferInitialize (&out_buf); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { if (decimal_precision >= 0) gaiaOutWktEx (&out_buf, geo, decimal_precision); else gaiaOutWkt (&out_buf, geo); if (out_buf.Error || out_buf.Buffer == NULL) sqlite3_result_null (context); else { len = out_buf.WriteOffset; sqlite3_result_text (context, out_buf.Buffer, len, free); out_buf.Buffer = NULL; } } gaiaFreeGeomColl (geo); gaiaOutBufferReset (&out_buf); } static void fnct_AsWkt (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsWkt(BLOB encoded geometry [, Integer precision]) / / returns the corresponding WKT encoded value / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; int precision = 15; gaiaOutBuffer out_buf; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc == 2) { if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) precision = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); gaiaOutBufferInitialize (&out_buf); if (!geo) sqlite3_result_null (context); else { gaiaOutWktStrict (&out_buf, geo, precision); if (out_buf.Error || out_buf.Buffer == NULL) sqlite3_result_null (context); else { len = out_buf.WriteOffset; sqlite3_result_text (context, out_buf.Buffer, len, free); out_buf.Buffer = NULL; } } gaiaFreeGeomColl (geo); gaiaOutBufferReset (&out_buf); } /* / / AsSvg(geometry,[relative], [precision]) implementation / //////////////////////////////////////////////////////////// / / Author: Klaus Foerster klaus.foerster@svg.cc / version 0.9. 2008 September 21 / */ static void fnct_AsSvg (sqlite3_context * context, int argc, sqlite3_value ** argv, int relative, int precision) { /* SQL function: AsSvg(BLOB encoded geometry, [int relative], [int precision]) returns the corresponding SVG encoded value or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; gaiaOutBuffer out_buf; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) { sqlite3_result_null (context); return; } else { /* make sure relative is 0 or 1 */ if (relative > 0) relative = 1; else relative = 0; /* make sure precision is between 0 and 15 - default to 6 if absent */ if (precision > GAIA_SVG_DEFAULT_MAX_PRECISION) precision = GAIA_SVG_DEFAULT_MAX_PRECISION; if (precision < 0) precision = 0; /* produce SVG-notation - actual work is done in gaiageo/gg_wkt.c */ gaiaOutBufferInitialize (&out_buf); gaiaOutSvg (&out_buf, geo, relative, precision); if (out_buf.Error || out_buf.Buffer == NULL) sqlite3_result_null (context); else { len = out_buf.WriteOffset; sqlite3_result_text (context, out_buf.Buffer, len, free); out_buf.Buffer = NULL; } } gaiaFreeGeomColl (geo); gaiaOutBufferReset (&out_buf); } static void fnct_AsSvg1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* called without additional arguments */ fnct_AsSvg (context, argc, argv, GAIA_SVG_DEFAULT_RELATIVE, GAIA_SVG_DEFAULT_PRECISION); } static void fnct_AsSvg2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* called with relative-switch */ if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) fnct_AsSvg (context, argc, argv, sqlite3_value_int (argv[1]), GAIA_SVG_DEFAULT_PRECISION); else sqlite3_result_null (context); } static void fnct_AsSvg3 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* called with relative-switch and precision-argument */ if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER && sqlite3_value_type (argv[2]) == SQLITE_INTEGER) fnct_AsSvg (context, argc, argv, sqlite3_value_int (argv[1]), sqlite3_value_int (argv[2])); else sqlite3_result_null (context); } /* END of Klaus Foerster AsSvg() implementation */ #ifndef OMIT_PROJ /* PROJ.4 is strictly required to support KML */ static void fnct_AsKml1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsKml(BLOB encoded geometry [, Integer precision]) / / returns the corresponding 'bare geom' KML representation / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; gaiaOutBuffer out_buf; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geo_wgs84; char *proj_from; char *proj_to; int precision = 15; void *data = sqlite3_user_data (context); sqlite3 *sqlite = sqlite3_context_db_handle (context); int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (argc == 2) { if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) precision = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } } gaiaOutBufferInitialize (&out_buf); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { if (geo->Srid == 4326) ; /* already WGS84 */ else if (geo->Srid <= 0) { /* unknown SRID: giving up */ sqlite3_result_null (context); goto stop; } else { /* attempting to reproject into WGS84 */ getProjParams (sqlite, geo->Srid, &proj_from); getProjParams (sqlite, 4326, &proj_to); if (proj_to == NULL || proj_from == NULL) { if (proj_from) free (proj_from); if (proj_to) free (proj_to); sqlite3_result_null (context); goto stop; } if (data != NULL) geo_wgs84 = gaiaTransform_r (data, geo, proj_from, proj_to); else geo_wgs84 = gaiaTransform (geo, proj_from, proj_to); free (proj_from); free (proj_to); if (!geo_wgs84) { sqlite3_result_null (context); goto stop; } /* ok, reprojection was successful */ gaiaFreeGeomColl (geo); geo = geo_wgs84; } /* produce KML-notation - actual work is done in gaiageo/gg_wkt.c */ gaiaOutBareKml (&out_buf, geo, precision); if (out_buf.Error || out_buf.Buffer == NULL) sqlite3_result_null (context); else { len = out_buf.WriteOffset; sqlite3_result_text (context, out_buf.Buffer, len, free); out_buf.Buffer = NULL; } } stop: gaiaFreeGeomColl (geo); gaiaOutBufferReset (&out_buf); } static void fnct_AsKml3 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsKml(Anything name, Anything description, BLOB encoded geometry [, Integer precision]) / / returns the corresponding 'full' KML representation / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; gaiaOutBuffer out_buf; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geo_wgs84; sqlite3_int64 int_value; double dbl_value; const char *name; const char *desc; char *name_malloc = NULL; char *desc_malloc = NULL; char dummy[128]; char *xdummy; char *proj_from; char *proj_to; int precision = 15; void *data = sqlite3_user_data (context); sqlite3 *sqlite = sqlite3_context_db_handle (context); int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } switch (sqlite3_value_type (argv[0])) { case SQLITE_TEXT: name = (const char *) sqlite3_value_text (argv[0]); len = strlen (name); name_malloc = malloc (len + 1); strcpy (name_malloc, name); name = name_malloc; break; case SQLITE_INTEGER: int_value = sqlite3_value_int64 (argv[0]); sprintf (dummy, FRMT64, int_value); len = strlen (dummy); name_malloc = malloc (len + 1); strcpy (name_malloc, dummy); name = name_malloc; break; case SQLITE_FLOAT: dbl_value = sqlite3_value_double (argv[0]); xdummy = sqlite3_mprintf ("%1.6f", dbl_value); len = strlen (xdummy); name_malloc = malloc (len + 1); strcpy (name_malloc, xdummy); sqlite3_free (xdummy); name = name_malloc; break; case SQLITE_BLOB: name = "BLOB"; break; default: name = "NULL"; break; }; switch (sqlite3_value_type (argv[1])) { case SQLITE_TEXT: desc = (const char *) sqlite3_value_text (argv[1]); len = strlen (desc); desc_malloc = malloc (len + 1); strcpy (desc_malloc, desc); desc = desc_malloc; break; case SQLITE_INTEGER: int_value = sqlite3_value_int64 (argv[1]); sprintf (dummy, FRMT64, int_value); len = strlen (dummy); desc_malloc = malloc (len + 1); strcpy (desc_malloc, dummy); desc = desc_malloc; break; case SQLITE_FLOAT: dbl_value = sqlite3_value_double (argv[1]); xdummy = sqlite3_mprintf ("%1.6f", dbl_value); len = strlen (xdummy); desc_malloc = malloc (len + 1); strcpy (desc_malloc, xdummy); sqlite3_free (xdummy); desc = desc_malloc; break; case SQLITE_BLOB: desc = "BLOB"; break; default: desc = "NULL"; break; }; gaiaOutBufferInitialize (&out_buf); if (sqlite3_value_type (argv[2]) != SQLITE_BLOB) { sqlite3_result_null (context); goto stop; } p_blob = (unsigned char *) sqlite3_value_blob (argv[2]); n_bytes = sqlite3_value_bytes (argv[2]); if (argc == 4) { if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) precision = sqlite3_value_int (argv[3]); else { sqlite3_result_null (context); goto stop; } } geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { if (geo->Srid == 4326) ; /* already WGS84 */ else if (geo->Srid == 0) { /* unknown SRID: giving up */ sqlite3_result_null (context); goto stop; } else { /* attempting to reproject into WGS84 */ getProjParams (sqlite, geo->Srid, &proj_from); getProjParams (sqlite, 4326, &proj_to); if (proj_to == NULL || proj_from == NULL) { if (proj_from != NULL) free (proj_from); if (proj_to != NULL) free (proj_to); sqlite3_result_null (context); goto stop; } if (data != NULL) geo_wgs84 = gaiaTransform_r (data, geo, proj_from, proj_to); else geo_wgs84 = gaiaTransform (geo, proj_from, proj_to); free (proj_from); free (proj_to); if (!geo_wgs84) { sqlite3_result_null (context); goto stop; } /* ok, reprojection was successful */ gaiaFreeGeomColl (geo); geo = geo_wgs84; } /* produce KML-notation - actual work is done in gaiageo/gg_wkt.c */ gaiaOutFullKml (&out_buf, name, desc, geo, precision); if (out_buf.Error || out_buf.Buffer == NULL) sqlite3_result_null (context); else { len = out_buf.WriteOffset; sqlite3_result_text (context, out_buf.Buffer, len, free); out_buf.Buffer = NULL; } } stop: gaiaFreeGeomColl (geo); if (name_malloc) free (name_malloc); if (desc_malloc) free (desc_malloc); gaiaOutBufferReset (&out_buf); } static void fnct_AsKml (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsKml(Anything name, Anything description, BLOB encoded geometry) / or / AsKml(BLOB encoded geometry) / / returns the corresponding KML representation / or NULL if any error is encountered */ if (argc == 3 || argc == 4) fnct_AsKml3 (context, argc, argv); else fnct_AsKml1 (context, argc, argv); } #endif /* end including PROJ.4 */ static void fnct_AsGml (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsGml(BLOB encoded geometry) / or / AsGml(integer version, BLOB encoded geometry) / or / AsGml(integer version, BLOB encoded geometry, integer precision) / / *version* may be 2 (GML 2.1.2) or 3 (GML 3.1.1) / default *version*: 2 / / *precision* is the number of output decimal digits / default *precision*: 15 / / returns the corresponding GML representation / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; int version = 2; int precision = 15; gaiaOutBuffer out_buf; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (argc == 3) { if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) version = sqlite3_value_int (argv[0]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) precision = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } } else if (argc == 2) { if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER && sqlite3_value_type (argv[1]) == SQLITE_BLOB) { version = sqlite3_value_int (argv[0]); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); } else if (sqlite3_value_type (argv[0]) == SQLITE_BLOB && sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); precision = sqlite3_value_int (argv[1]); } else { sqlite3_result_null (context); return; } } else { if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); } gaiaOutBufferInitialize (&out_buf); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { /* produce GML-notation - actual work is done in gaiageo/gg_wkt.c */ gaiaOutGml (&out_buf, version, precision, geo); if (out_buf.Error || out_buf.Buffer == NULL) sqlite3_result_null (context); else { len = out_buf.WriteOffset; sqlite3_result_text (context, out_buf.Buffer, len, free); out_buf.Buffer = NULL; } } gaiaFreeGeomColl (geo); gaiaOutBufferReset (&out_buf); } static void fnct_AsGeoJSON (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsGeoJSON(BLOB encoded geometry) / or / AsGeoJSON(BLOB encoded geometry, integer precision) / or / AsGeoJSON(BLOB encoded geometry, integer precision, integer options) / / *precision* is the number of output decimal digits / default *precision*: 15 / / *options* may be one of the followings: / 0 = no options [default] / 1 = GeoJSON MBR / 2 = GeoJSON Short CRS (e.g EPSG:4326) / 3 = 1 + 2 (Mbr + shortCrs) / 4 = GeoJSON Long CRS (e.g urn:ogc:def:crs:EPSG::4326) / 5 = 1 + 4 (Mbr + longCrs) / / returns the corresponding GML representation / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; int precision = 15; int options = 0; gaiaOutBuffer out_buf; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_amphibious = cache->gpkg_mode = cache->gpkg_mode;; if (argc == 3) { if (sqlite3_value_type (argv[0]) == SQLITE_BLOB && sqlite3_value_type (argv[1]) == SQLITE_INTEGER && sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); precision = sqlite3_value_int (argv[1]); options = sqlite3_value_int (argv[2]); if (options >= 1 && options <= 5) ; else options = 0; } else { sqlite3_result_null (context); return; } } else if (argc == 2) { if (sqlite3_value_type (argv[0]) == SQLITE_BLOB && sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); precision = sqlite3_value_int (argv[1]); } else { sqlite3_result_null (context); return; } } else { if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); } gaiaOutBufferInitialize (&out_buf); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { /* produce GeoJSON-notation - actual work is done in gaiageo/gg_wkt.c */ gaiaOutGeoJSON (&out_buf, geo, precision, options); if (out_buf.Error || out_buf.Buffer == NULL) sqlite3_result_null (context); else { len = out_buf.WriteOffset; sqlite3_result_text (context, out_buf.Buffer, len, free); out_buf.Buffer = NULL; } } gaiaFreeGeomColl (geo); gaiaOutBufferReset (&out_buf); } static void fnct_AsBinary (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsBinary(BLOB encoded geometry) / / returns the corresponding WKB encoded value / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { gaiaToWkb (geo, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_AsFGF (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsFGF(BLOB encoded geometry) / / returns the corresponding FGF encoded value / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; int coord_dims; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { spatialite_e ("AsFGF() error: argument 2 [geom_coords] is not of the Integer type\n"); sqlite3_result_null (context); return; } coord_dims = sqlite3_value_int (argv[1]); if (coord_dims == 0 || coord_dims == 1 || coord_dims == 2 || coord_dims == 3) ; else { spatialite_e ("AsFGF() error: argument 2 [geom_coords] out of range [0,1,2,3]\n"); sqlite3_result_null (context); return; } geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { gaiaToFgf (geo, &p_result, &len, coord_dims); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_MakePoint1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakePoint(double X, double Y) / alias / ST_Point(double X, double Y) / / builds a POINT / or NULL if any error is encountered */ int len; int int_value; unsigned char *p_result = NULL; double x; double y; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } gaiaMakePoint (x, y, 0, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_MakePoint2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakePoint(double X, double Y, int SRID) / / builds a POINT / or NULL if any error is encountered */ int len; int int_value; unsigned char *p_result = NULL; double x; double y; int srid; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } gaiaMakePoint (x, y, srid, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_MakePointZ1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakePointZ(double X, double Y, double Z) / / builds a POINT Z / or NULL if any error is encountered */ int len; int int_value; unsigned char *p_result = NULL; double x; double y; double z; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) z = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); z = int_value; } else { sqlite3_result_null (context); return; } gaiaMakePointZ (x, y, z, 0, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_MakePointZ2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakePointZ(double X, double Y, double Z, int SRID) / / builds a POINT Z / or NULL if any error is encountered */ int len; int int_value; unsigned char *p_result = NULL; double x; double y; double z; int srid; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) z = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); z = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[3]); else { sqlite3_result_null (context); return; } gaiaMakePointZ (x, y, z, srid, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_MakePointM1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakePointM(double X, double Y, double M) / / builds a POINT M / or NULL if any error is encountered */ int len; int int_value; unsigned char *p_result = NULL; double x; double y; double m; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) m = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); m = int_value; } else { sqlite3_result_null (context); return; } gaiaMakePointM (x, y, m, 0, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_MakePointM2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakePointM(double X, double Y, double M, int SRID) / / builds a POINT M / or NULL if any error is encountered */ int len; int int_value; unsigned char *p_result = NULL; double x; double y; double m; int srid; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) m = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); m = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[3]); else { sqlite3_result_null (context); return; } gaiaMakePointM (x, y, m, srid, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_MakePointZM1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakePointZM(double X, double Y, double Z, double M) / / builds a POINT ZM / or NULL if any error is encountered */ int len; int int_value; unsigned char *p_result = NULL; double x; double y; double z; double m; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) z = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); z = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) m = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); m = int_value; } else { sqlite3_result_null (context); return; } gaiaMakePointZM (x, y, z, m, 0, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_MakePointZM2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakePointZM(double X, double Y, double Z, double M, int SRID) / / builds a POINT / or NULL if any error is encountered */ int len; int int_value; unsigned char *p_result = NULL; double x; double y; double z; double m; int srid; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) z = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); z = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) m = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); m = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[4]); else { sqlite3_result_null (context); return; } gaiaMakePointZM (x, y, z, m, srid, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void addGeomPointToDynamicLine (gaiaDynamicLinePtr dyn, gaiaGeomCollPtr geom) { /* appending a simple-Point Geometry to a Dynamic Line */ int pts; int lns; int pgs; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; if (dyn == NULL) return; if (dyn->Error) return; /* checking if GEOM simply is a POINT */ if (geom == NULL) { dyn->Error = 1; return; } pts = 0; lns = 0; pgs = 0; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 1 && lns == 0 && pgs == 0) ; else { /* failure: not a simple POINT */ dyn->Error = 1; return; } if (dyn->Srid != geom->Srid) { /* failure: SRID mismatch */ dyn->Error = 1; return; } switch (geom->FirstPoint->DimensionModel) { case GAIA_XY_Z_M: gaiaAppendPointZMToDynamicLine (dyn, geom->FirstPoint->X, geom->FirstPoint->Y, geom->FirstPoint->Z, geom->FirstPoint->M); break; case GAIA_XY_Z: gaiaAppendPointZToDynamicLine (dyn, geom->FirstPoint->X, geom->FirstPoint->Y, geom->FirstPoint->Z); break; case GAIA_XY_M: gaiaAppendPointMToDynamicLine (dyn, geom->FirstPoint->X, geom->FirstPoint->Y, geom->FirstPoint->M); break; default: gaiaAppendPointToDynamicLine (dyn, geom->FirstPoint->X, geom->FirstPoint->Y); break; } } static void fnct_MakeLine_step (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeLine(BLOBencoded geom) / / aggregate function - STEP / */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; gaiaDynamicLinePtr *p; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geom) return; p = sqlite3_aggregate_context (context, sizeof (gaiaDynamicLinePtr)); if (!(*p)) { /* this is the first row */ *p = gaiaAllocDynamicLine (); (*p)->Srid = geom->Srid; addGeomPointToDynamicLine (*p, geom); gaiaFreeGeomColl (geom); } else { /* subsequent rows */ addGeomPointToDynamicLine (*p, geom); gaiaFreeGeomColl (geom); } } static gaiaGeomCollPtr geomFromDynamicLine (gaiaDynamicLinePtr dyn) { /* attempting to build a Geometry from a Dynamic Line */ gaiaGeomCollPtr geom = NULL; gaiaLinestringPtr ln = NULL; gaiaPointPtr pt; int iv; int count = 0; int dims = GAIA_XY; if (dyn == NULL) return NULL; if (dyn->Error) return NULL; pt = dyn->First; while (pt) { /* counting points and checking dims */ count++; if (dims == GAIA_XY && pt->DimensionModel != GAIA_XY) dims = pt->DimensionModel; if (dims == GAIA_XY_Z && (pt->DimensionModel == GAIA_XY_M || pt->DimensionModel == GAIA_XY_Z_M)) dims = GAIA_XY_Z_M; if (dims == GAIA_XY_M && (pt->DimensionModel == GAIA_XY_Z || pt->DimensionModel == GAIA_XY_Z_M)) dims = GAIA_XY_Z_M; pt = pt->Next; } if (count < 2) return NULL; switch (dims) { case GAIA_XY_Z_M: geom = gaiaAllocGeomCollXYZM (); ln = gaiaAllocLinestringXYZM (count); break; case GAIA_XY_Z: geom = gaiaAllocGeomCollXYZ (); ln = gaiaAllocLinestringXYZ (count); break; case GAIA_XY_M: geom = gaiaAllocGeomCollXYM (); ln = gaiaAllocLinestringXYM (count); break; default: geom = gaiaAllocGeomColl (); ln = gaiaAllocLinestring (count); break; }; if (geom != NULL && ln != NULL) { gaiaInsertLinestringInGeomColl (geom, ln); geom->Srid = dyn->Srid; } else { if (geom) gaiaFreeGeomColl (geom); if (ln) gaiaFreeLinestring (ln); return NULL; } iv = 0; pt = dyn->First; while (pt) { /* setting linestring points */ if (dims == GAIA_XY_Z_M) { gaiaSetPointXYZM (ln->Coords, iv, pt->X, pt->Y, pt->Z, pt->M); } else if (dims == GAIA_XY_Z) { gaiaSetPointXYZ (ln->Coords, iv, pt->X, pt->Y, pt->Z); } else if (dims == GAIA_XY_M) { gaiaSetPointXYM (ln->Coords, iv, pt->X, pt->Y, pt->M); } else { gaiaSetPoint (ln->Coords, iv, pt->X, pt->Y); } iv++; pt = pt->Next; } return geom; } static void fnct_MakeLine_final (sqlite3_context * context) { /* SQL function: / MakeLine(BLOBencoded geom) / / aggregate function - FINAL / */ gaiaGeomCollPtr result; gaiaDynamicLinePtr *p = sqlite3_aggregate_context (context, 0); int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (!p) { sqlite3_result_null (context); return; } result = geomFromDynamicLine (*p); gaiaFreeDynamicLine (*p); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } static void buildLineFromMultiPoint (sqlite3_context * context, gaiaGeomCollPtr geom, int direction) { /* internal: building a Linestring from a MultiPolygon */ gaiaGeomCollPtr result; gaiaDynamicLinePtr dyn; int n_pts = 0; int n_lns = 0; int n_pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (geom) { pt = geom->FirstPoint; while (pt) { n_pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { n_lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { n_pgs++; pg = pg->Next; } } /* checking if really is a MultiPoint */ if (n_pts >= 2 && n_lns == 0 && n_pgs == 0) ; else { sqlite3_result_null (context); goto end; } dyn = gaiaAllocDynamicLine (); dyn->Srid = geom->Srid; pt = geom->FirstPoint; while (pt) { /* inserting all Points accordingly to required direction */ if (direction) { /* conformant direction */ switch (pt->DimensionModel) { case GAIA_XY_Z_M: gaiaAppendPointZMToDynamicLine (dyn, pt->X, pt->Y, pt->Z, pt->M); break; case GAIA_XY_Z: gaiaAppendPointZToDynamicLine (dyn, pt->X, pt->Y, pt->Z); break; case GAIA_XY_M: gaiaAppendPointMToDynamicLine (dyn, pt->X, pt->Y, pt->M); break; default: gaiaAppendPointToDynamicLine (dyn, pt->X, pt->Y); break; } } else { /* reverse direction */ switch (pt->DimensionModel) { case GAIA_XY_Z_M: gaiaPrependPointZMToDynamicLine (dyn, pt->X, pt->Y, pt->Z, pt->M); break; case GAIA_XY_Z: gaiaPrependPointZToDynamicLine (dyn, pt->X, pt->Y, pt->Z); break; case GAIA_XY_M: gaiaPrependPointMToDynamicLine (dyn, pt->X, pt->Y, pt->M); break; default: gaiaPrependPointToDynamicLine (dyn, pt->X, pt->Y); break; } } pt = pt->Next; } result = geomFromDynamicLine (dyn); gaiaFreeDynamicLine (dyn); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } end: gaiaFreeGeomColl (geom); } static void fnct_MakeLine (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeLine(point-geometry geom1, point-geometry geom2) / or / MakeLine(multipoint geom, boolean direction) / / - builds a SEGMENT joining two POINTs / - the MultiPoint version works exactely as the corresponding aggregate / function, but not requiring aggregation; direction=TRUE direct order, / direction=FALSE reverse order / - or NULL if any error is encountered */ int len; unsigned char *p_blob; int n_bytes; unsigned char *p_result = NULL; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); goto stop; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo1) { sqlite3_result_null (context); goto stop; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { /* expecting a single MultiPoint input */ int direction = sqlite3_value_int (argv[1]); buildLineFromMultiPoint (context, geo1, direction); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); goto stop; } p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo2) { sqlite3_result_null (context); goto stop; } gaiaMakeLine (geo1, geo2, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); stop: if (geo1) gaiaFreeGeomColl (geo1); if (geo2) gaiaFreeGeomColl (geo2); } static void fnct_MakeCircle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeCircle(double cx, double cy, double radius) / or / MakeCircle(double cx, double cy, double radius, int srid) / or / MakeCircle(double cx, double cy, double radius, int srid, double step) / / - builds a Linestring approximating a Circle / - step is the angular distance (in degrees) between points on / the circurmference (by default: every 10 degs) / - or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geom = NULL; int ival; double cx; double cy; double r; int srid = 0; double step = 10.0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[0]); cx = ival; } else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) cx = sqlite3_value_double (argv[0]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[1]); cy = ival; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) cy = sqlite3_value_double (argv[1]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[2]); r = ival; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) r = sqlite3_value_double (argv[2]); else { sqlite3_result_null (context); return; } if (argc >= 4) { if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[3]); else { sqlite3_result_null (context); return; } } if (argc == 5) { if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[4]); step = ival; } else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) step = sqlite3_value_double (argv[4]); else { sqlite3_result_null (context); return; } } geom = gaiaMakeCircle (cx, cy, r, step); if (!geom) sqlite3_result_null (context); else { if (srid != 0) geom->Srid = srid; gaiaToSpatiaLiteBlobWkbEx (geom, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); } if (geom) gaiaFreeGeomColl (geom); } static void fnct_MakeArc (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeArc(double cx, double cy, double radius, double start, double stop) / or / MakeArc(double cx, double cy, double radius, double start, double stop, / int srid) / or / MakeArc(double cx, double cy, double radius, double start, double stop, / int srid, double step) / / - builds a Linestring approximating a Circular Arc / - start and stop are the initial and final angles (in degrees) / - step is the angular distance (in degrees) between points on / the circurmference (by default: every 10 degs) / - or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geom = NULL; int ival; double cx; double cy; double r; double start; double stop; int srid = 0; double step = 10.0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[0]); cx = ival; } else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) cx = sqlite3_value_double (argv[0]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[1]); cy = ival; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) cy = sqlite3_value_double (argv[1]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[2]); r = ival; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) r = sqlite3_value_double (argv[2]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[3]); start = ival; } else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) start = sqlite3_value_double (argv[3]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[4]); stop = ival; } else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) stop = sqlite3_value_double (argv[4]); else { sqlite3_result_null (context); return; } if (argc >= 6) { if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[5]); else { sqlite3_result_null (context); return; } } if (argc == 7) { if (sqlite3_value_type (argv[6]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[6]); step = ival; } else if (sqlite3_value_type (argv[6]) == SQLITE_FLOAT) step = sqlite3_value_double (argv[6]); else { sqlite3_result_null (context); return; } } geom = gaiaMakeArc (cx, cy, r, start, stop, step); if (!geom) sqlite3_result_null (context); else { if (srid != 0) geom->Srid = srid; gaiaToSpatiaLiteBlobWkbEx (geom, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); } if (geom) gaiaFreeGeomColl (geom); } static void fnct_MakeEllipse (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeEllipse(double cx, double cy, double x_axis, double y_axis) / or / MakeEllipse(double cx, double cy, double x_axis, double y_axis, / int srid) / or / MakeEllipse(double cx, double cy, double x_axis, double y_axis, / int srid, double step) / / - builds a Linestring approximating an Ellipse / - step is the angular distance (in degrees) between points on / the ellipse (by default: every 10 degs) / - or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geom = NULL; int ival; double cx; double cy; double x_axis; double y_axis; int srid = 0; double step = 10.0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[0]); cx = ival; } else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) cx = sqlite3_value_double (argv[0]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[1]); cy = ival; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) cy = sqlite3_value_double (argv[1]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[2]); x_axis = ival; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) x_axis = sqlite3_value_double (argv[2]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[3]); y_axis = ival; } else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) y_axis = sqlite3_value_double (argv[3]); else { sqlite3_result_null (context); return; } if (argc >= 5) { if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[4]); else { sqlite3_result_null (context); return; } } if (argc == 6) { if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[5]); step = ival; } else if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) step = sqlite3_value_double (argv[5]); else { sqlite3_result_null (context); return; } } geom = gaiaMakeEllipse (cx, cy, x_axis, y_axis, step); if (!geom) sqlite3_result_null (context); else { if (srid != 0) geom->Srid = srid; gaiaToSpatiaLiteBlobWkbEx (geom, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); } if (geom) gaiaFreeGeomColl (geom); } static void fnct_MakeEllipticArc (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeEllipticArc(double cx, double cy, double x_axis, double y_axis, / double start, double stop) / or / MakeEllipticArc(double cx, double cy, double x_axis, double y_axis, / double start, double stop, int srid) / or / MakeEllipticArc(double cx, double cy, double x_axis, double y_axis, / double start, double stop, int srid, double step) / / - builds a Linestring approximating an Elliptic Arc / - start and stop are the initial and final angles (in degrees) / - step is the angular distance (in degrees) between points on / the ellipse (by default: every 10 degs) / - or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geom = NULL; int ival; double cx; double cy; double x_axis; double y_axis; double start; double stop; int srid = 0; double step = 10.0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[0]); cx = ival; } else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) cx = sqlite3_value_double (argv[0]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[1]); cy = ival; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) cy = sqlite3_value_double (argv[1]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[2]); x_axis = ival; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) x_axis = sqlite3_value_double (argv[2]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[3]); y_axis = ival; } else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) y_axis = sqlite3_value_double (argv[3]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[4]); start = ival; } else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) start = sqlite3_value_double (argv[4]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[5]); stop = ival; } else if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) stop = sqlite3_value_double (argv[5]); else { sqlite3_result_null (context); return; } if (argc >= 7) { if (sqlite3_value_type (argv[6]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[6]); else { sqlite3_result_null (context); return; } } if (argc == 8) { if (sqlite3_value_type (argv[7]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[7]); step = ival; } else if (sqlite3_value_type (argv[7]) == SQLITE_FLOAT) step = sqlite3_value_double (argv[7]); else { sqlite3_result_null (context); return; } } geom = gaiaMakeEllipticArc (cx, cy, x_axis, y_axis, start, stop, step); if (!geom) sqlite3_result_null (context); else { if (srid != 0) geom->Srid = srid; gaiaToSpatiaLiteBlobWkbEx (geom, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); } if (geom) gaiaFreeGeomColl (geom); } static void fnct_MakeCircularSector (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeCircularSector(double cx, double cy, double radius, double start, double stop) / or / MakeCircularSector(double cx, double cy, double radius, double start, double stop, / int srid) / or / MakeCircularSector(double cx, double cy, double radius, double start, double stop, / int srid, double step) / / - builds a Polygon approximating a Circular Sector / - start and stop are the initial and final angles (in degrees) / - step is the angular distance (in degrees) between points on / the circurmference (by default: every 10 degs) / - or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geom = NULL; gaiaGeomCollPtr sector = NULL; int ival; double cx; double cy; double r; double start; double stop; int srid = 0; double step = 10.0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[0]); cx = ival; } else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) cx = sqlite3_value_double (argv[0]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[1]); cy = ival; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) cy = sqlite3_value_double (argv[1]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[2]); r = ival; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) r = sqlite3_value_double (argv[2]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[3]); start = ival; } else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) start = sqlite3_value_double (argv[3]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[4]); stop = ival; } else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) stop = sqlite3_value_double (argv[4]); else { sqlite3_result_null (context); return; } if (argc >= 6) { if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[5]); else { sqlite3_result_null (context); return; } } if (argc == 7) { if (sqlite3_value_type (argv[6]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[6]); step = ival; } else if (sqlite3_value_type (argv[6]) == SQLITE_FLOAT) step = sqlite3_value_double (argv[6]); else { sqlite3_result_null (context); return; } } geom = gaiaMakeArc (cx, cy, r, start, stop, step); if (!geom) sqlite3_result_null (context); else { int ii; int io = 0; double x; double y; gaiaLinestringPtr in = geom->FirstLinestring; gaiaPolygonPtr pg; gaiaRingPtr out; sector = gaiaAllocGeomColl (); pg = gaiaAddPolygonToGeomColl (sector, in->Points + 2, 0); out = pg->Exterior; /* inserting the Centre - first point */ gaiaSetPoint (out->Coords, io, cx, cy); io++; for (ii = 0; ii < in->Points; ii++) { /* copying the Arc's points */ gaiaGetPoint (in->Coords, ii, &x, &y); gaiaSetPoint (out->Coords, io, x, y); io++; } /* inserting the Centre - last point */ gaiaSetPoint (out->Coords, io, cx, cy); if (srid != 0) sector->Srid = srid; gaiaToSpatiaLiteBlobWkbEx (sector, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); } if (geom) gaiaFreeGeomColl (geom); if (sector) gaiaFreeGeomColl (sector); } static void fnct_MakeCircularStripe (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeCircularStripe(double cx, double cy, double radius_1, double radius_2, / double start, double stop) / or / MakeCircularStripe(double cx, double cy, double radius_1, double radius_2, / double start, double stop, int srid) / or / MakeCircularStripe(double cx, double cy, double radius_1, double radius_2, / double start, double stop, int srid, double step) / / - builds a Polygon approximating a Circular Stripe delimited by two / arcs sharing the same Centre-Point but having different radii / - start and stop are the initial and final angles (in degrees) / - step is the angular distance (in degrees) between points on / the circurmference (by default: every 10 degs) / - or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; gaiaGeomCollPtr arc1 = NULL; gaiaGeomCollPtr arc2 = NULL; gaiaGeomCollPtr stripe = NULL; int ival; double cx; double cy; double r1; double r2; double start; double stop; int srid = 0; double step = 10.0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[0]); cx = ival; } else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) cx = sqlite3_value_double (argv[0]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[1]); cy = ival; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) cy = sqlite3_value_double (argv[1]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[2]); r1 = ival; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) r1 = sqlite3_value_double (argv[2]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[3]); r2 = ival; } else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) r2 = sqlite3_value_double (argv[3]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[4]); start = ival; } else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) start = sqlite3_value_double (argv[4]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[5]); stop = ival; } else if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) stop = sqlite3_value_double (argv[5]); else { sqlite3_result_null (context); return; } if (argc >= 7) { if (sqlite3_value_type (argv[6]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[6]); else { sqlite3_result_null (context); return; } } if (argc == 8) { if (sqlite3_value_type (argv[7]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[7]); step = ival; } else if (sqlite3_value_type (argv[7]) == SQLITE_FLOAT) step = sqlite3_value_double (argv[7]); else { sqlite3_result_null (context); return; } } arc1 = gaiaMakeArc (cx, cy, r1, start, stop, step); arc2 = gaiaMakeArc (cx, cy, r2, start, stop, step); if (arc1 == NULL || arc2 == NULL) sqlite3_result_null (context); else { int ii; int io = 0; double x; double y; gaiaLinestringPtr in1 = arc1->FirstLinestring; gaiaLinestringPtr in2 = arc2->FirstLinestring; gaiaPolygonPtr pg; gaiaRingPtr out; stripe = gaiaAllocGeomColl (); pg = gaiaAddPolygonToGeomColl (stripe, in1->Points + in2->Points + 1, 0); out = pg->Exterior; for (ii = 0; ii < in1->Points; ii++) { /* copying the first Arc's points - direct order */ gaiaGetPoint (in1->Coords, ii, &x, &y); gaiaSetPoint (out->Coords, io, x, y); io++; } for (ii = in2->Points - 1; ii >= 0; ii--) { /* copying the second Arc's points - reverse order */ gaiaGetPoint (in2->Coords, ii, &x, &y); gaiaSetPoint (out->Coords, io, x, y); io++; } /* closing the Polygon Ring */ gaiaGetPoint (out->Coords, 0, &x, &y); gaiaSetPoint (out->Coords, io, x, y); if (srid != 0) stripe->Srid = srid; gaiaToSpatiaLiteBlobWkbEx (stripe, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); } if (arc1) gaiaFreeGeomColl (arc1); if (arc2) gaiaFreeGeomColl (arc2); if (stripe) gaiaFreeGeomColl (stripe); } static void fnct_MakeEllipticSector (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeEllipticSector(double cx, double cy, double x_axis, double y_axis, / double start, double stop) / or / MakeEllipticSector(double cx, double cy, double x_axis, double y_axis, / double start, double stop, int srid) / or / MakeEllipticSector(double cx, double cy, double x_axis, double y_axis, / double start, double stop, int srid, double step) / / - builds a Polygon approximating an Elliptic Sector / - start and stop are the initial and final angles (in degrees) / - step is the angular distance (in degrees) between points on / the ellipse (by default: every 10 degs) / - or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geom = NULL; gaiaGeomCollPtr sector = NULL; int ival; double cx; double cy; double x_axis; double y_axis; double start; double stop; int srid = 0; double step = 10.0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[0]); cx = ival; } else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) cx = sqlite3_value_double (argv[0]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[1]); cy = ival; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) cy = sqlite3_value_double (argv[1]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[2]); x_axis = ival; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) x_axis = sqlite3_value_double (argv[2]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[3]); y_axis = ival; } else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) y_axis = sqlite3_value_double (argv[3]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[4]); start = ival; } else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) start = sqlite3_value_double (argv[4]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[5]); stop = ival; } else if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) stop = sqlite3_value_double (argv[5]); else { sqlite3_result_null (context); return; } if (argc >= 7) { if (sqlite3_value_type (argv[6]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[6]); else { sqlite3_result_null (context); return; } } if (argc == 8) { if (sqlite3_value_type (argv[7]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[7]); step = ival; } else if (sqlite3_value_type (argv[7]) == SQLITE_FLOAT) step = sqlite3_value_double (argv[7]); else { sqlite3_result_null (context); return; } } geom = gaiaMakeEllipticArc (cx, cy, x_axis, y_axis, start, stop, step); if (!geom) sqlite3_result_null (context); else { int ii; int io = 0; double x; double y; gaiaLinestringPtr in = geom->FirstLinestring; gaiaPolygonPtr pg; gaiaRingPtr out; sector = gaiaAllocGeomColl (); pg = gaiaAddPolygonToGeomColl (sector, in->Points + 2, 0); out = pg->Exterior; /* inserting the Centre - first point */ gaiaSetPoint (out->Coords, io, cx, cy); io++; for (ii = 0; ii < in->Points; ii++) { /* copying the Arc's points */ gaiaGetPoint (in->Coords, ii, &x, &y); gaiaSetPoint (out->Coords, io, x, y); io++; } /* inserting the Centre - last point */ gaiaSetPoint (out->Coords, io, cx, cy); if (srid != 0) sector->Srid = srid; gaiaToSpatiaLiteBlobWkbEx (sector, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); } if (geom) gaiaFreeGeomColl (geom); if (sector) gaiaFreeGeomColl (sector); } static void fnct_Collect_step (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Collect(BLOBencoded geom) / / aggregate function - STEP / */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; gaiaGeomCollPtr result; gaiaGeomCollPtr *p; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geom) return; p = sqlite3_aggregate_context (context, sizeof (gaiaGeomCollPtr)); if (!(*p)) { /* this is the first row */ *p = geom; } else { /* subsequent rows */ void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaMergeGeometries_r (data, *p, geom); else result = gaiaMergeGeometries (*p, geom); gaiaFreeGeomColl (*p); *p = result; gaiaFreeGeomColl (geom); } } static void fnct_Collect_final (sqlite3_context * context) { /* SQL function: / Collect(BLOBencoded geom) / / aggregate function - FINAL / */ gaiaGeomCollPtr result; gaiaGeomCollPtr *p = sqlite3_aggregate_context (context, 0); int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (!p) { sqlite3_result_null (context); return; } result = *p; if (!result) sqlite3_result_null (context); else if (gaiaIsEmpty (result)) { gaiaFreeGeomColl (result); sqlite3_result_null (context); } else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } static void fnct_Collect (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Collect(geometry geom1, geometry geom2) / / merges two generic GEOMETRIES into a single one / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaMergeGeometries_r (data, geo1, geo2); else result = gaiaMergeGeometries (geo1, geo2); if (!result) sqlite3_result_null (context); else if (gaiaIsEmpty (result)) { gaiaFreeGeomColl (result); sqlite3_result_null (context); } else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void geom_from_text1 (sqlite3_context * context, int argc, sqlite3_value ** argv, short type) { /* SQL function: / GeomFromText(WKT encoded geometry) / / returns the current geometry by parsing WKT encoded string / or NULL if any error is encountered / / if *type* is a negative value can accept any GEOMETRY CLASS / otherwise only requests conforming with required CLASS are valid */ int len; unsigned char *p_result = NULL; const unsigned char *text; gaiaGeomCollPtr geo = NULL; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseWkt (text, type); if (geo == NULL) { sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void geom_from_text2 (sqlite3_context * context, int argc, sqlite3_value ** argv, short type) { /* SQL function: / GeomFromText(WKT encoded geometry, SRID) / / returns the current geometry by parsing WKT encoded string / or NULL if any error is encountered / / if *type* is a negative value can accept any GEOMETRY CLASS / otherwise only requests conforming with required CLASS are valid */ int len; unsigned char *p_result = NULL; const unsigned char *text; gaiaGeomCollPtr geo = NULL; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseWkt (text, type); if (geo == NULL) { sqlite3_result_null (context); return; } geo->Srid = sqlite3_value_int (argv[1]); gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static int check_wkb (const unsigned char *wkb, int size, short type) { /* checking type coherency for WKB encoded GEOMETRY */ int little_endian; int wkb_type; int endian_arch = gaiaEndianArch (); if (size < 5) return 0; /* too short to be a WKB */ if (*(wkb + 0) == 0x01) little_endian = GAIA_LITTLE_ENDIAN; else if (*(wkb + 0) == 0x00) little_endian = GAIA_BIG_ENDIAN; else return 0; /* illegal byte ordering; neither BIG-ENDIAN nor LITTLE-ENDIAN */ wkb_type = gaiaImport32 (wkb + 1, little_endian, endian_arch); if (wkb_type == GAIA_POINT || wkb_type == GAIA_LINESTRING || wkb_type == GAIA_POLYGON || wkb_type == GAIA_MULTIPOINT || wkb_type == GAIA_MULTILINESTRING || wkb_type == GAIA_MULTIPOLYGON || wkb_type == GAIA_GEOMETRYCOLLECTION || wkb_type == GAIA_POINTZ || wkb_type == GAIA_LINESTRINGZ || wkb_type == GAIA_POLYGONZ || wkb_type == GAIA_MULTIPOINTZ || wkb_type == GAIA_MULTILINESTRINGZ || wkb_type == GAIA_MULTIPOLYGONZ || wkb_type == GAIA_GEOMETRYCOLLECTIONZ || wkb_type == GAIA_POINTM || wkb_type == GAIA_LINESTRINGM || wkb_type == GAIA_POLYGONM || wkb_type == GAIA_MULTIPOINTM || wkb_type == GAIA_MULTILINESTRINGM || wkb_type == GAIA_MULTIPOLYGONM || wkb_type == GAIA_GEOMETRYCOLLECTIONM || wkb_type == GAIA_POINTZM || wkb_type == GAIA_LINESTRINGZM || wkb_type == GAIA_POLYGONZM || wkb_type == GAIA_MULTIPOINTZM || wkb_type == GAIA_MULTILINESTRINGZM || wkb_type == GAIA_MULTIPOLYGONZM || wkb_type == GAIA_GEOMETRYCOLLECTIONZM) ; else return 0; /* illegal GEOMETRY CLASS */ if (type < 0) ; /* no restrinction about GEOMETRY CLASS TYPE */ else { if (wkb_type != type) return 0; /* invalid CLASS TYPE for request */ } return 1; } static void geom_from_wkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv, short type) { /* SQL function: / GeomFromWKB(WKB encoded geometry) / / returns the current geometry by parsing a WKB encoded blob / or NULL if any error is encountered / / if *type* is a negative value can accept any GEOMETRY CLASS / otherwise only requests conforming with required CLASS are valid */ int len; int n_bytes; unsigned char *p_result = NULL; const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!check_wkb (wkb, n_bytes, type)) return; geo = gaiaFromWkb (wkb, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void geom_from_wkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv, short type) { /* SQL function: / GeomFromWKB(WKB encoded geometry, SRID) / / returns the current geometry by parsing a WKB encoded blob / or NULL if any error is encountered / / if *type* is a negative value can accept any GEOMETRY CLASS / otherwise only requests conforming with required CLASS are valid */ int len; int n_bytes; unsigned char *p_result = NULL; const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!check_wkb (wkb, n_bytes, type)) return; geo = gaiaFromWkb (wkb, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } geo->Srid = sqlite3_value_int (argv[1]); gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void fnct_GeometryFromFGF1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeomFromFGF(FGF encoded geometry) / / returns the current geometry by parsing an FGF encoded blob / or NULL if any error is encountered / / if *type* is a negative value can accept any GEOMETRY CLASS / otherwise only requests conforming with required CLASS are valid */ int len; int n_bytes; unsigned char *p_result = NULL; const unsigned char *fgf; gaiaGeomCollPtr geo = NULL; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } fgf = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromFgf (fgf, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void fnct_GeometryFromFGF2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeomFromFGF(FGF encoded geometry, SRID) / / returns the current geometry by parsing an FGF encoded string / or NULL if any error is encountered / / if *type* is a negative value can accept any GEOMETRY CLASS / otherwise only requests conforming with required CLASS are valid */ int len; int n_bytes; unsigned char *p_result = NULL; const unsigned char *fgf; gaiaGeomCollPtr geo = NULL; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } fgf = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromFgf (fgf, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } geo->Srid = sqlite3_value_int (argv[1]); gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } /* / the following functions simply readdress the request to geom_from_text?() / setting the appropriate GEOMETRY CLASS TYPE */ static void fnct_GeomFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text1 (context, argc, argv, (short) -1); } static void fnct_GeomFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text2 (context, argc, argv, (short) -1); } static void fnct_GeomCollFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text1 (context, argc, argv, (short) GAIA_GEOMETRYCOLLECTION); } static void fnct_GeomCollFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text2 (context, argc, argv, (short) GAIA_GEOMETRYCOLLECTION); } static void fnct_LineFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text1 (context, argc, argv, (short) GAIA_LINESTRING); } static void fnct_LineFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text2 (context, argc, argv, (short) GAIA_LINESTRING); } static void fnct_PointFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text1 (context, argc, argv, (short) GAIA_POINT); } static void fnct_PointFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text2 (context, argc, argv, (short) GAIA_POINT); } static void fnct_PolyFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text1 (context, argc, argv, (short) GAIA_POLYGON); } static void fnct_PolyFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text2 (context, argc, argv, (short) GAIA_POLYGON); } static void fnct_MLineFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text1 (context, argc, argv, (short) GAIA_MULTILINESTRING); } static void fnct_MLineFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text2 (context, argc, argv, (short) GAIA_MULTILINESTRING); } static void fnct_MPointFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text1 (context, argc, argv, (short) GAIA_MULTIPOINT); } static void fnct_MPointFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text2 (context, argc, argv, (short) GAIA_MULTIPOINT); } static void fnct_MPolyFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text1 (context, argc, argv, (short) GAIA_MULTIPOLYGON); } static void fnct_MPolyFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_text2 (context, argc, argv, (short) GAIA_MULTIPOLYGON); } static void fnct_WktToSql (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_WKTToSQL(WKT encoded geometry) / / returns the current geometry by parsing WKT encoded string / or NULL if any error is encountered / / the SRID is always 0 [SQL/MM function] */ int len; unsigned char *p_result = NULL; const unsigned char *text; gaiaGeomCollPtr geo = NULL; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseWkt (text, -1); if (geo == NULL) { sqlite3_result_null (context); return; } geo->Srid = 0; gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } /* / the following functions simply readdress the request to geom_from_wkb?() / setting the appropriate GEOMETRY CLASS TYPE */ static void fnct_GeomFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb1 (context, argc, argv, (short) -1); } static void fnct_GeomFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb2 (context, argc, argv, (short) -1); } static void fnct_GeomCollFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb1 (context, argc, argv, (short) GAIA_GEOMETRYCOLLECTION); } static void fnct_GeomCollFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb2 (context, argc, argv, (short) GAIA_GEOMETRYCOLLECTION); } static void fnct_LineFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb1 (context, argc, argv, (short) GAIA_LINESTRING); } static void fnct_LineFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb2 (context, argc, argv, (short) GAIA_LINESTRING); } static void fnct_PointFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb1 (context, argc, argv, (short) GAIA_POINT); } static void fnct_PointFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb2 (context, argc, argv, (short) GAIA_POINT); } static void fnct_PolyFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb1 (context, argc, argv, (short) GAIA_POLYGON); } static void fnct_PolyFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb2 (context, argc, argv, (short) GAIA_POLYGON); } static void fnct_MLineFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb1 (context, argc, argv, (short) GAIA_MULTILINESTRING); } static void fnct_MLineFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb2 (context, argc, argv, (short) GAIA_MULTILINESTRING); } static void fnct_MPointFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb1 (context, argc, argv, (short) GAIA_MULTIPOINT); } static void fnct_MPointFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb2 (context, argc, argv, (short) GAIA_MULTIPOINT); } static void fnct_MPolyFromWkb1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb1 (context, argc, argv, (short) GAIA_MULTIPOLYGON); } static void fnct_MPolyFromWkb2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { geom_from_wkb2 (context, argc, argv, (short) GAIA_MULTIPOLYGON); } static void fnct_WkbToSql (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_WKBToSQL(WKB encoded geometry) / / returns the current geometry by parsing a WKB encoded blob / or NULL if any error is encountered / / the SRID is always 0 [SQL/MM function] */ int len; int n_bytes; unsigned char *p_result = NULL; const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!check_wkb (wkb, n_bytes, -1)) return; geo = gaiaFromWkb (wkb, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } geo->Srid = 0; gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void fnct_CompressGeometry (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CompressGeometry(BLOB encoded geometry) / / returns a COMPRESSED geometry [if a valid Geometry was supplied] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { gaiaToCompressedBlobWkb (geo, &p_result, &len); sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_UncompressGeometry (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UncompressGeometry(BLOB encoded geometry) / / returns an UNCOMPRESSED geometry [if a valid Geometry was supplied] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_SanitizeGeometry (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SanitizeGeometry(BLOB encoded geometry) / / returns a SANITIZED geometry [if a valid Geometry was supplied] / or NULL in any other case / / Sanitizing includes: / - repeated vertices suppression / - enforcing ring closure / */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr sanitized = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { sanitized = gaiaSanitize (geo); gaiaToSpatiaLiteBlobWkbEx (sanitized, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); gaiaFreeGeomColl (sanitized); } static void cast_count (gaiaGeomCollPtr geom, int *pts, int *lns, int *pgs) { /* counting elementary geometries */ int n_pts = 0; int n_lns = 0; int n_pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; if (geom) { pt = geom->FirstPoint; while (pt) { n_pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { n_lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { n_pgs++; pg = pg->Next; } } *pts = n_pts; *lns = n_lns; *pgs = n_pgs; } static void fnct_CastAutomagic (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastAutomagic(BLOB encoded geometry) / / accepts on input both a valid SpatiaLite BLOB geometry / or a valid GPKG BLOB geometry, thus returning a SpatiaLite / BLOB geometry / will return NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) { #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ if (gaiaIsValidGPB (p_blob, n_bytes)) { geo = gaiaFromGeoPackageGeometryBlob (p_blob, n_bytes); if (geo == NULL) sqlite3_result_null (context); else { gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } return; } else #endif /* end GEOPACKAGE: supporting GPKG geometries */ sqlite3_result_null (context); } else { gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } } static void fnct_CastToPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToPoint(BLOB encoded geometry) / / returns a POINT-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pts == 1 && lns == 0 && pgs == 0) { geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_POINT; gaiaToSpatiaLiteBlobWkbEx (geom2, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToLinestring (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToLinestring(BLOB encoded geometry) / / returns a LINESTRING-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pts == 0 && lns == 1 && pgs == 0) { geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_LINESTRING; gaiaToSpatiaLiteBlobWkbEx (geom2, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToPolygon (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToPolygon(BLOB encoded geometry) / / returns a POLYGON-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pts == 0 && lns == 0 && pgs == 1) { geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_POLYGON; gaiaToSpatiaLiteBlobWkbEx (geom2, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToMultiPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToMultiPoint(BLOB encoded geometry) / / returns a MULTIPOINT-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pts >= 1 && lns == 0 && pgs == 0) { geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_MULTIPOINT; gaiaToSpatiaLiteBlobWkbEx (geom2, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToMultiLinestring (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToMultiLinestring(BLOB encoded geometry) / / returns a MULTILINESTRING-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pts == 0 && lns >= 1 && pgs == 0) { geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_MULTILINESTRING; gaiaToSpatiaLiteBlobWkbEx (geom2, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToMultiPolygon (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToMultiPolygon(BLOB encoded geometry) / / returns a MULTIPOLYGON-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pts == 0 && lns == 0 && pgs >= 1) { geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_MULTIPOLYGON; gaiaToSpatiaLiteBlobWkbEx (geom2, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToGeometryCollection (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToGeometryCollection(BLOB encoded geometry) / / returns a GEOMETRYCOLLECTION-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pts >= 1 || lns >= 1 || pgs >= 1) { geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_GEOMETRYCOLLECTION; gaiaToSpatiaLiteBlobWkbEx (geom2, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToMulti (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToMulti(BLOB encoded geometry) / / returns a MULTIPOINT, MULTILINESTRING, MULTIPOLYGON or / GEOMETRYCOLLECTION-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pts >= 1 || lns >= 1 || pgs >= 1) { geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; if (pts >= 1 && lns == 0 && pgs == 0) geom2->DeclaredType = GAIA_MULTIPOINT; else if (pts == 0 && lns >= 1 && pgs == 0) geom2->DeclaredType = GAIA_MULTILINESTRING; else if (pts == 0 && lns == 0 && pgs >= 1) geom2->DeclaredType = GAIA_MULTIPOLYGON; else geom2->DeclaredType = GAIA_GEOMETRYCOLLECTION; if (geo->DeclaredType == GAIA_GEOMETRYCOLLECTION) geom2->DeclaredType = GAIA_GEOMETRYCOLLECTION; gaiaToSpatiaLiteBlobWkbEx (geom2, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToSingle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToSingle(BLOB encoded geometry) / / returns a POINT, LINESTRING or POLYGON-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; int ok; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); ok = 0; if (pts == 1 && lns == 0 && pgs == 0) ok = 1; if (pts == 0 && lns == 1 && pgs == 0) ok = 1; if (pts == 0 && lns == 0 && pgs == 1) ok = 1; if (ok) { geom2 = gaiaCloneGeomColl (geo); geom2->Srid = geo->Srid; if (pts == 1) geom2->DeclaredType = GAIA_POINT; else if (lns == 1) geom2->DeclaredType = GAIA_LINESTRING; else geom2->DeclaredType = GAIA_POLYGON; gaiaToSpatiaLiteBlobWkbEx (geom2, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToXY (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToXY(BLOB encoded geometry) / / returns an XY-dimension Geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { geom2 = gaiaCastGeomCollToXY (geo); if (geom2) { geom2->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (geom2, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToXYZ (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToXY(BLOB encoded geometry) / / returns an XY-dimension Geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { geom2 = gaiaCastGeomCollToXYZ (geo); if (geom2) { geom2->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (geom2, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToXYM (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToXY(BLOB encoded geometry) / / returns an XYM-dimension Geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { geom2 = gaiaCastGeomCollToXYM (geo); if (geom2) { geom2->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (geom2, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_CastToXYZM (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToXY(BLOB encoded geometry) / / returns an XYZM-dimension Geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { geom2 = gaiaCastGeomCollToXYZM (geo); if (geom2) { geom2->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (geom2, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_ExtractMultiPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ExtractMultiPoint(BLOB encoded geometry) / / returns a MULTIPOINT-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pts >= 1) { geom2 = gaiaCloneGeomCollPoints (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_MULTIPOINT; gaiaToSpatiaLiteBlobWkbEx (geom2, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_ExtractMultiLinestring (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ExtractMultiLinestring(BLOB encoded geometry) / / returns a MULTILINESTRING-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (lns >= 1) { geom2 = gaiaCloneGeomCollLinestrings (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_MULTILINESTRING; gaiaToSpatiaLiteBlobWkbEx (geom2, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_ExtractMultiPolygon (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ExtractMultiPolygon(BLOB encoded geometry) / / returns a MULTIPOLYGON-type geometry [if conversion is possible] / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; int pts; int lns; int pgs; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { cast_count (geo, &pts, &lns, &pgs); if (pgs >= 1) { geom2 = gaiaCloneGeomCollPolygons (geo); geom2->Srid = geo->Srid; geom2->DeclaredType = GAIA_MULTIPOLYGON; gaiaToSpatiaLiteBlobWkbEx (geom2, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void fnct_Reverse (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_Reverse(BLOB encoded geometry) / / returns a new Geometry: any Linestring or Ring will be in reverse order / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { geom2 = gaiaCloneGeomCollSpecial (geo, GAIA_REVERSE_ORDER); geom2->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (geom2, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (geo); } } static void fnct_ForceLHR (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_ForceLHR(BLOB encoded geometry) / / returns a new Geometry: any Exterior Ring will be in clockwise orientation / and any Interior Ring will be in counter-clockwise orientation / or NULL in any other case */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { geom2 = gaiaCloneGeomCollSpecial (geo, GAIA_LHR_ORDER); geom2->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (geom2, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom2); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (geo); } } static void fnct_Dimension (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Dimension(BLOB encoded geometry) / / returns: / 0 if geometry is a POINT or MULTIPOINT / 1 if geometry is a LINESTRING or MULTILINESTRING / 2 if geometry is a POLYGON or MULTIPOLYGON / 0, 1, 2, for GEOMETRYCOLLECTIONS according to geometries contained inside / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int dim; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { dim = gaiaDimension (geo); sqlite3_result_int (context, dim); } gaiaFreeGeomColl (geo); } static void fnct_CoordDimension (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CoordDimension(BLOB encoded geometry) / / returns: / 'XY', 'XYM', 'XYZ', 'XYZM' / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; char *p_dim = NULL; char *p_result = NULL; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { if (geo->DimensionModel == GAIA_XY) p_dim = "XY"; else if (geo->DimensionModel == GAIA_XY_Z) p_dim = "XYZ"; else if (geo->DimensionModel == GAIA_XY_M) p_dim = "XYM"; else if (geo->DimensionModel == GAIA_XY_Z_M) p_dim = "XYZM"; if (p_dim) { len = strlen (p_dim); p_result = malloc (len + 1); strcpy (p_result, p_dim); } if (!p_result) sqlite3_result_null (context); else { len = strlen (p_result); sqlite3_result_text (context, p_result, len, free); } } gaiaFreeGeomColl (geo); } static void fnct_NDims (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_NDims(BLOB encoded geometry) / / returns: / 2, 3 or 4 / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int result = 0; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { if (geo->DimensionModel == GAIA_XY) result = 2; else if (geo->DimensionModel == GAIA_XY_Z) result = 3; else if (geo->DimensionModel == GAIA_XY_M) result = 3; else if (geo->DimensionModel == GAIA_XY_Z_M) result = 4; sqlite3_result_int (context, result); } gaiaFreeGeomColl (geo); } static void fnct_GeometryType (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeometryType(BLOB encoded geometry) / / returns the class for current geometry: / 'POINT' or 'MULTIPOINT' [Z, M, ZM] / 'LINESTRING' or 'MULTILINESTRING' [Z, M, ZM] / 'POLYGON' or 'MULTIPOLYGON' [Z, M, ZM] / 'GEOMETRYCOLLECTION' [Z, M, ZM] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; int type; char *p_type = NULL; char *p_result = NULL; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) { #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ if (gaiaIsValidGPB (p_blob, n_bytes)) { char *gpb_type = gaiaGetGeometryTypeFromGPB (p_blob, n_bytes); if (gpb_type == NULL) sqlite3_result_null (context); else { len = strlen (gpb_type); sqlite3_result_text (context, gpb_type, len, free); } return; } else #endif /* end GEOPACKAGE: supporting GPKG geometries */ sqlite3_result_null (context); } else { type = gaiaGeometryType (geo); switch (type) { case GAIA_POINT: p_type = "POINT"; break; case GAIA_POINTZ: p_type = "POINT Z"; break; case GAIA_POINTM: p_type = "POINT M"; break; case GAIA_POINTZM: p_type = "POINT ZM"; break; case GAIA_MULTIPOINT: p_type = "MULTIPOINT"; break; case GAIA_MULTIPOINTZ: p_type = "MULTIPOINT Z"; break; case GAIA_MULTIPOINTM: p_type = "MULTIPOINT M"; break; case GAIA_MULTIPOINTZM: p_type = "MULTIPOINT ZM"; break; case GAIA_LINESTRING: case GAIA_COMPRESSED_LINESTRING: p_type = "LINESTRING"; break; case GAIA_LINESTRINGZ: case GAIA_COMPRESSED_LINESTRINGZ: p_type = "LINESTRING Z"; break; case GAIA_LINESTRINGM: case GAIA_COMPRESSED_LINESTRINGM: p_type = "LINESTRING M"; break; case GAIA_LINESTRINGZM: case GAIA_COMPRESSED_LINESTRINGZM: p_type = "LINESTRING ZM"; break; case GAIA_MULTILINESTRING: p_type = "MULTILINESTRING"; break; case GAIA_MULTILINESTRINGZ: p_type = "MULTILINESTRING Z"; break; case GAIA_MULTILINESTRINGM: p_type = "MULTILINESTRING M"; break; case GAIA_MULTILINESTRINGZM: p_type = "MULTILINESTRING ZM"; break; case GAIA_POLYGON: case GAIA_COMPRESSED_POLYGON: p_type = "POLYGON"; break; case GAIA_POLYGONZ: case GAIA_COMPRESSED_POLYGONZ: p_type = "POLYGON Z"; break; case GAIA_POLYGONM: case GAIA_COMPRESSED_POLYGONM: p_type = "POLYGON M"; break; case GAIA_POLYGONZM: case GAIA_COMPRESSED_POLYGONZM: p_type = "POLYGON ZM"; break; case GAIA_MULTIPOLYGON: p_type = "MULTIPOLYGON"; break; case GAIA_MULTIPOLYGONZ: p_type = "MULTIPOLYGON Z"; break; case GAIA_MULTIPOLYGONM: p_type = "MULTIPOLYGON M"; break; case GAIA_MULTIPOLYGONZM: p_type = "MULTIPOLYGON ZM"; break; case GAIA_GEOMETRYCOLLECTION: p_type = "GEOMETRYCOLLECTION"; break; case GAIA_GEOMETRYCOLLECTIONZ: p_type = "GEOMETRYCOLLECTION Z"; break; case GAIA_GEOMETRYCOLLECTIONM: p_type = "GEOMETRYCOLLECTION M"; break; case GAIA_GEOMETRYCOLLECTIONZM: p_type = "GEOMETRYCOLLECTION ZM"; break; }; if (p_type) { len = strlen (p_type); p_result = malloc (len + 1); strcpy (p_result, p_type); } if (!p_result) sqlite3_result_null (context); else { len = strlen (p_result); sqlite3_result_text (context, p_result, len, free); } } gaiaFreeGeomColl (geo); } static void fnct_GeometryAliasType (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeometryAliasType(BLOB encoded geometry) / / returns the alias-class for current geometry: / 'POINT' / 'LINESTRING' / 'POLYGON' / 'MULTIPOINT' / 'MULTILINESTRING' / 'MULTIPOLYGON' / 'GEOMETRYCOLLECTION' / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; int type; char *p_type = NULL; char *p_result = NULL; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { type = gaiaGeometryAliasType (geo); switch (type) { case GAIA_POINT: p_type = "POINT"; break; case GAIA_MULTIPOINT: p_type = "MULTIPOINT"; break; case GAIA_LINESTRING: p_type = "LINESTRING"; break; case GAIA_MULTILINESTRING: p_type = "MULTILINESTRING"; break; case GAIA_POLYGON: p_type = "POLYGON"; break; case GAIA_MULTIPOLYGON: p_type = "MULTIPOLYGON"; break; case GAIA_GEOMETRYCOLLECTION: p_type = "GEOMETRYCOLLECTION"; break; }; if (p_type) { len = strlen (p_type); p_result = malloc (len + 1); strcpy (p_result, p_type); } if (!p_result) sqlite3_result_null (context); else { len = strlen (p_result); sqlite3_result_text (context, p_result, len, free); } } gaiaFreeGeomColl (geo); } static void fnct_SridFromAuthCRS (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SridFromAuthCRS(auth_name, auth_srid) / / returns the SRID / or NULL if any error is encountered */ const unsigned char *auth_name; int auth_srid; int srid = -1; char *sql; char **results; int n_rows; int n_columns; char *err_msg = NULL; int ret; int i; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } auth_name = sqlite3_value_text (argv[0]); auth_srid = sqlite3_value_int (argv[1]); sql = sqlite3_mprintf ("SELECT srid FROM spatial_ref_sys " "WHERE Upper(auth_name) = Upper(%Q) AND auth_srid = %d", auth_name, auth_srid); ret = sqlite3_get_table (sqlite, sql, &results, &n_rows, &n_columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) goto done; if (n_rows >= 1) { for (i = 1; i <= n_rows; i++) srid = atoi (results[(i * n_columns) + 0]); } sqlite3_free_table (results); done: sqlite3_result_int (context, srid); } static void fnct_SRID (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Srid(BLOB encoded geometry) / / returns the SRID / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) { #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ if (gaiaIsValidGPB (p_blob, n_bytes)) { int srid = gaiaGetSridFromGPB (p_blob, n_bytes); sqlite3_result_int (context, srid); } else sqlite3_result_null (context); return; #endif /* end GEOPACKAGE: supporting GPKG geometries */ sqlite3_result_null (context); } else sqlite3_result_int (context, geo->Srid); gaiaFreeGeomColl (geo); } static void fnct_SetSRID (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SetSrid(BLOBencoded geometry, srid) / / returns a new geometry that is the original one received, but with the new SRID [no coordinates translation is applied] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; int srid; unsigned char *p_result = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { geo->Srid = srid; gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &n_bytes, gpkg_mode); sqlite3_result_blob (context, p_result, n_bytes, free); } gaiaFreeGeomColl (geo); } static void fnct_IsEmpty (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsEmpty(BLOB encoded geometry) / / returns: / 1 if this geometry contains no elementary geometries / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) { #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ if (gaiaIsValidGPB (p_blob, n_bytes)) { int is_empty = gaiaIsEmptyGPB (p_blob, n_bytes); sqlite3_result_int (context, is_empty); } else #endif /* end GEOPACKAGE: supporting GPKG geometries */ sqlite3_result_int (context, -1); } else sqlite3_result_int (context, gaiaIsEmpty (geo)); gaiaFreeGeomColl (geo); } static void fnct_Is3D (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Is3D(BLOB encoded geometry) / / returns: / 1 if this geometry has Z coords / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) { #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ if (gaiaIsValidGPB (p_blob, n_bytes)) { double min_x; double max_x; double min_y; double max_y; int has_z; double min_z; double max_z; int has_m; double min_m; double max_m; if (gaiaGetEnvelopeFromGPB (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, &min_z, &max_z, &has_m, &min_m, &max_m)) { sqlite3_result_int (context, has_z); } } else #endif /* end GEOPACKAGE: supporting GPKG geometries */ sqlite3_result_int (context, -1); } else { if (geo->DimensionModel == GAIA_XY_Z || geo->DimensionModel == GAIA_XY_Z_M) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } gaiaFreeGeomColl (geo); } static void fnct_IsMeasured (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsMeasured(BLOB encoded geometry) / / returns: / 1 if this geometry has M coords / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) { #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ if (gaiaIsValidGPB (p_blob, n_bytes)) { double min_x; double max_x; double min_y; double max_y; int has_z; double min_z; double max_z; int has_m; double min_m; double max_m; if (gaiaGetEnvelopeFromGPB (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, &min_z, &max_z, &has_m, &min_m, &max_m)) { sqlite3_result_int (context, has_m); } } else #endif /* end GEOPACKAGE: supporting GPKG geometries */ sqlite3_result_int (context, -1); } else { if (geo->DimensionModel == GAIA_XY_M || geo->DimensionModel == GAIA_XY_Z_M) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } gaiaFreeGeomColl (geo); } static void fnct_MinZ (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_MinZ(BLOB encoded GEMETRY) / / returns the MinZ coordinate for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double min; double max; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) { #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ if (gaiaIsValidGPB (p_blob, n_bytes)) { double min_x; double max_x; double min_y; double max_y; int has_z; double min_z; double max_z; int has_m; double min_m; double max_m; if (gaiaGetEnvelopeFromGPB (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, &min_z, &max_z, &has_m, &min_m, &max_m)) { if (has_z) sqlite3_result_double (context, min_z); else sqlite3_result_null (context); } } else #endif /* end GEOPACKAGE: supporting GPKG geometries */ sqlite3_result_null (context); } else { if (geo->DimensionModel == GAIA_XY_Z || geo->DimensionModel == GAIA_XY_Z_M) { gaiaZRangeGeometry (geo, &min, &max); sqlite3_result_double (context, min); } else sqlite3_result_null (context); gaiaFreeGeomColl (geo); } } static void fnct_MaxZ (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_MaxZ(BLOB encoded GEMETRY) / / returns the MaxZ coordinate for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double min; double max; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) { #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ if (gaiaIsValidGPB (p_blob, n_bytes)) { double min_x; double max_x; double min_y; double max_y; int has_z; double min_z; double max_z; int has_m; double min_m; double max_m; if (gaiaGetEnvelopeFromGPB (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, &min_z, &max_z, &has_m, &min_m, &max_m)) { if (has_z) sqlite3_result_double (context, max_z); else sqlite3_result_null (context); } } else #endif /* end GEOPACKAGE: supporting GPKG geometries */ sqlite3_result_null (context); } else { if (geo->DimensionModel == GAIA_XY_Z || geo->DimensionModel == GAIA_XY_Z_M) { gaiaZRangeGeometry (geo, &min, &max); sqlite3_result_double (context, max); } else sqlite3_result_null (context); gaiaFreeGeomColl (geo); } } static void fnct_MinM (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_MinM(BLOB encoded GEMETRY) / / returns the MinM coordinate for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double min; double max; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) { #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ if (gaiaIsValidGPB (p_blob, n_bytes)) { double min_x; double max_x; double min_y; double max_y; int has_z; double min_z; double max_z; int has_m; double min_m; double max_m; if (gaiaGetEnvelopeFromGPB (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, &min_z, &max_z, &has_m, &min_m, &max_m)) { if (has_m) sqlite3_result_double (context, min_m); else sqlite3_result_null (context); } } else #endif /* end GEOPACKAGE: supporting GPKG geometries */ sqlite3_result_null (context); } else { if (geo->DimensionModel == GAIA_XY_M || geo->DimensionModel == GAIA_XY_Z_M) { gaiaMRangeGeometry (geo, &min, &max); sqlite3_result_double (context, min); } else sqlite3_result_null (context); gaiaFreeGeomColl (geo); } } static void fnct_MaxM (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_MaxM(BLOB encoded GEMETRY) / / returns the MaxM coordinate for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double min; double max; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkb (p_blob, n_bytes); if (!geo) { #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ if (gaiaIsValidGPB (p_blob, n_bytes)) { double min_x; double max_x; double min_y; double max_y; int has_z; double min_z; double max_z; int has_m; double min_m; double max_m; if (gaiaGetEnvelopeFromGPB (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, &min_z, &max_z, &has_m, &min_m, &max_m)) { if (has_m) sqlite3_result_double (context, max_m); else sqlite3_result_null (context); } } else #endif /* end GEOPACKAGE: supporting GPKG geometries */ sqlite3_result_null (context); } else { if (geo->DimensionModel == GAIA_XY_M || geo->DimensionModel == GAIA_XY_Z_M) { gaiaMRangeGeometry (geo, &min, &max); sqlite3_result_double (context, max); } else sqlite3_result_null (context); gaiaFreeGeomColl (geo); } } static void fnct_Envelope (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Envelope(BLOB encoded geometry) / / returns the MBR for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr bbox; gaiaPolygonPtr polyg; gaiaRingPtr rect; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { gaiaMbrGeometry (geo); bbox = gaiaAllocGeomColl (); bbox->Srid = geo->Srid; polyg = gaiaAddPolygonToGeomColl (bbox, 5, 0); rect = polyg->Exterior; gaiaSetPoint (rect->Coords, 0, geo->MinX, geo->MinY); /* vertex # 1 */ gaiaSetPoint (rect->Coords, 1, geo->MaxX, geo->MinY); /* vertex # 2 */ gaiaSetPoint (rect->Coords, 2, geo->MaxX, geo->MaxY); /* vertex # 3 */ gaiaSetPoint (rect->Coords, 3, geo->MinX, geo->MaxY); /* vertex # 4 */ gaiaSetPoint (rect->Coords, 4, geo->MinX, geo->MinY); /* vertex # 5 [same as vertex # 1 to close the polygon] */ gaiaToSpatiaLiteBlobWkbEx (bbox, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (bbox); sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_Expand (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_Expand(BLOB encoded geometry, double amount) / / returns the MBR for current geometry expanded by "amount" in each direction / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr bbox; gaiaPolygonPtr polyg; gaiaRingPtr rect; double tic; int int_value; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) tic = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); tic = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { gaiaMbrGeometry (geo); bbox = gaiaAllocGeomColl (); bbox->Srid = geo->Srid; polyg = gaiaAddPolygonToGeomColl (bbox, 5, 0); rect = polyg->Exterior; gaiaSetPoint (rect->Coords, 0, geo->MinX - tic, geo->MinY - tic); /* vertex # 1 */ gaiaSetPoint (rect->Coords, 1, geo->MaxX + tic, geo->MinY - tic); /* vertex # 2 */ gaiaSetPoint (rect->Coords, 2, geo->MaxX + tic, geo->MaxY + tic); /* vertex # 3 */ gaiaSetPoint (rect->Coords, 3, geo->MinX - tic, geo->MaxY + tic); /* vertex # 4 */ gaiaSetPoint (rect->Coords, 4, geo->MinX - tic, geo->MinY - tic); /* vertex # 5 [same as vertex # 1 to close the polygon] */ gaiaToSpatiaLiteBlobWkbEx (bbox, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (bbox); sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void build_filter_mbr (sqlite3_context * context, int argc, sqlite3_value ** argv, int mode) { /* SQL functions: / BuildMbrFilter(double X1, double Y1, double X2, double Y2) / FilterMBRWithin(double X1, double Y1, double X2, double Y2) / FilterMBRContain(double X1, double Y1, double X2, double Y2) / FilterMBRIntersects(double X1, double Y1, double X2, double Y2) / / builds a generic filter for MBR from two points (identifying a rectangle's diagonal) / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; double x1; double y1; double x2; double y2; int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x1 = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x1 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y1 = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y1 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) x2 = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); x2 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) y2 = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); y2 = int_value; } else { sqlite3_result_null (context); return; } gaiaBuildFilterMbr (x1, y1, x2, y2, mode, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } /* / the following functions simply readdress the request to build_filter_mbr() / setting the appropriate MODe */ static void fnct_BuildMbrFilter (sqlite3_context * context, int argc, sqlite3_value ** argv) { build_filter_mbr (context, argc, argv, GAIA_FILTER_MBR_DECLARE); } static void fnct_FilterMbrWithin (sqlite3_context * context, int argc, sqlite3_value ** argv) { build_filter_mbr (context, argc, argv, GAIA_FILTER_MBR_WITHIN); } static void fnct_FilterMbrContains (sqlite3_context * context, int argc, sqlite3_value ** argv) { build_filter_mbr (context, argc, argv, GAIA_FILTER_MBR_CONTAINS); } static void fnct_FilterMbrIntersects (sqlite3_context * context, int argc, sqlite3_value ** argv) { build_filter_mbr (context, argc, argv, GAIA_FILTER_MBR_INTERSECTS); } static void fnct_BuildMbr1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BuildMBR(double X1, double Y1, double X2, double Y2) / / builds an MBR from two points (identifying a rectangle's diagonal) / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; double x1; double y1; double x2; double y2; int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x1 = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x1 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y1 = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y1 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) x2 = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); x2 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) y2 = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); y2 = int_value; } else { sqlite3_result_null (context); return; } gaiaBuildMbr (x1, y1, x2, y2, -1, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_BuildMbr2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BuildMBR(double X1, double Y1, double X2, double Y2, int SRID) / / builds an MBR from two points (identifying a rectangle's diagonal) / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; double x1; double y1; double x2; double y2; int int_value; int srid; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x1 = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x1 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y1 = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y1 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) x2 = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); x2 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) y2 = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); y2 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[4]); else { sqlite3_result_null (context); return; } gaiaBuildMbr (x1, y1, x2, y2, srid, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_BuildCircleMbr1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BuildCircleMBR(double X, double Y, double radius) / / builds an MBR from two points (identifying a rectangle's diagonal) / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; double x; double y; double radius; int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) radius = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); radius = int_value; } else { sqlite3_result_null (context); return; } gaiaBuildCircleMbr (x, y, radius, -1, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_BuildCircleMbr2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BuildCircleMBR(double X, double Y, double radius, int SRID) / / builds an MBR from two points (identifying a rectangle's diagonal) / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; double x; double y; double radius; int int_value; int srid; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) radius = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); radius = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[3]); else { sqlite3_result_null (context); return; } gaiaBuildCircleMbr (x, y, radius, srid, &p_result, &len); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } static void fnct_Extent_step (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Extent(BLOBencoded geom) / / aggregate function - STEP / */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; double **p; double *max_min; int *srid_check; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geom) return; gaiaMbrGeometry (geom); p = sqlite3_aggregate_context (context, sizeof (double **)); if (!(*p)) { /* this is the first row */ max_min = malloc ((sizeof (double) * 5)); *(max_min + 0) = geom->MinX; *(max_min + 1) = geom->MinY; *(max_min + 2) = geom->MaxX; *(max_min + 3) = geom->MaxY; srid_check = (int *) (max_min + 4); *(srid_check + 0) = geom->Srid; *(srid_check + 1) = geom->Srid; *p = max_min; } else { /* subsequent rows */ max_min = *p; if (geom->MinX < *(max_min + 0)) *(max_min + 0) = geom->MinX; if (geom->MinY < *(max_min + 1)) *(max_min + 1) = geom->MinY; if (geom->MaxX > *(max_min + 2)) *(max_min + 2) = geom->MaxX; if (geom->MaxY > *(max_min + 3)) *(max_min + 3) = geom->MaxY; srid_check = (int *) (max_min + 4); if (*(srid_check + 1) != geom->Srid) *(srid_check + 1) = geom->Srid; } gaiaFreeGeomColl (geom); } static void fnct_Extent_final (sqlite3_context * context) { /* SQL function: / Extent(BLOBencoded geom) / / aggregate function - FINAL / */ gaiaGeomCollPtr result; gaiaPolygonPtr polyg; gaiaRingPtr rect; double *max_min; double minx; double miny; double maxx; double maxy; int *srid_check; double **p = sqlite3_aggregate_context (context, 0); int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (!p) { sqlite3_result_null (context); return; } max_min = *p; if (!max_min) { sqlite3_result_null (context); return; } srid_check = (int *) (max_min + 4); if (*(srid_check + 0) != *(srid_check + 1)) { sqlite3_result_null (context); return; } result = gaiaAllocGeomColl (); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = *(srid_check + 0); polyg = gaiaAddPolygonToGeomColl (result, 5, 0); rect = polyg->Exterior; minx = *(max_min + 0); miny = *(max_min + 1); maxx = *(max_min + 2); maxy = *(max_min + 3); gaiaSetPoint (rect->Coords, 0, minx, miny); /* vertex # 1 */ gaiaSetPoint (rect->Coords, 1, maxx, miny); /* vertex # 2 */ gaiaSetPoint (rect->Coords, 2, maxx, maxy); /* vertex # 3 */ gaiaSetPoint (rect->Coords, 3, minx, maxy); /* vertex # 4 */ gaiaSetPoint (rect->Coords, 4, minx, miny); /* vertex # 5 [same as vertex # 1 to close the polygon] */ gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } free (max_min); } static void fnct_MbrMinX (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MbrMinX(BLOB encoded GEMETRY) / / returns the MinX coordinate for current geometry's MBR / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double coord; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!gaiaGetMbrMinX (p_blob, n_bytes, &coord)) { #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ if (gaiaIsValidGPB (p_blob, n_bytes)) { double min_x; double max_x; double min_y; double max_y; int has_z; double min_z; double max_z; int has_m; double min_m; double max_m; if (gaiaGetEnvelopeFromGPB (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, &min_z, &max_z, &has_m, &min_m, &max_m)) { sqlite3_result_double (context, min_x); } } else #endif /* end GEOPACKAGE: supporting GPKG geometries */ sqlite3_result_null (context); } else sqlite3_result_double (context, coord); } static void fnct_MbrMaxX (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MbrMaxX(BLOB encoded GEMETRY) / / returns the MaxX coordinate for current geometry's MBR / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double coord; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!gaiaGetMbrMaxX (p_blob, n_bytes, &coord)) { #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ if (gaiaIsValidGPB (p_blob, n_bytes)) { double min_x; double max_x; double min_y; double max_y; int has_z; double min_z; double max_z; int has_m; double min_m; double max_m; if (gaiaGetEnvelopeFromGPB (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, &min_z, &max_z, &has_m, &min_m, &max_m)) { sqlite3_result_double (context, max_x); } } else #endif /* end GEOPACKAGE: supporting GPKG geometries */ sqlite3_result_null (context); } else sqlite3_result_double (context, coord); } static void fnct_MbrMinY (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MbrMinY(BLOB encoded GEMETRY) / / returns the MinY coordinate for current geometry's MBR / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double coord; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!gaiaGetMbrMinY (p_blob, n_bytes, &coord)) { #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ if (gaiaIsValidGPB (p_blob, n_bytes)) { double min_x; double max_x; double min_y; double max_y; int has_z; double min_z; double max_z; int has_m; double min_m; double max_m; if (gaiaGetEnvelopeFromGPB (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, &min_z, &max_z, &has_m, &min_m, &max_m)) { sqlite3_result_double (context, min_y); } } else #endif /* end GEOPACKAGE: supporting GPKG geometries */ sqlite3_result_null (context); } else sqlite3_result_double (context, coord); } static void fnct_MbrMaxY (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MbrMaxY(BLOB encoded GEMETRY) / / returns the MaxY coordinate for current geometry's MBR / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double coord; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!gaiaGetMbrMaxY (p_blob, n_bytes, &coord)) { #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ if (gaiaIsValidGPB (p_blob, n_bytes)) { double min_x; double max_x; double min_y; double max_y; int has_z; double min_z; double max_z; int has_m; double min_m; double max_m; if (gaiaGetEnvelopeFromGPB (p_blob, n_bytes, &min_x, &max_x, &min_y, &max_y, &has_z, &min_z, &max_z, &has_m, &min_m, &max_m)) { sqlite3_result_double (context, max_y); } } else #endif /* end GEOPACKAGE: supporting GPKG geometries */ sqlite3_result_null (context); } else sqlite3_result_double (context, coord); } #ifndef OMIT_GEOCALLBACKS /* supporting RTree geometry callbacks */ static void gaia_mbr_del (void *p) { /* freeing data used by R*Tree Geometry Callback */ sqlite3_free (p); } static int fnct_RTreeIntersects (sqlite3_rtree_geometry * p, int nCoord, double *aCoord, int *pRes) { /* R*Tree Geometry callback function: / ... MATCH RTreeIntersects(double x1, double y1, double x2, double y2) */ struct gaia_rtree_mbr *mbr; double xmin; double xmax; double ymin; double ymax; float fminx; float fminy; float fmaxx; float fmaxy; double tic; double tic2; if (p->pUser == 0) { /* first call: we must check args and then initialize the MBR struct */ if (nCoord != 4) return SQLITE_ERROR; if (p->nParam != 4) return SQLITE_ERROR; mbr = (struct gaia_rtree_mbr *) (p->pUser = sqlite3_malloc (sizeof (struct gaia_rtree_mbr))); if (!mbr) return SQLITE_NOMEM; p->xDelUser = gaia_mbr_del; xmin = p->aParam[0]; ymin = p->aParam[1]; xmax = p->aParam[2]; ymax = p->aParam[3]; if (xmin > xmax) { xmin = p->aParam[2]; xmax = p->aParam[0]; } if (ymin > ymax) { ymin = p->aParam[3]; ymax = p->aParam[1]; } /* adjusting the MBR so to compensate for DOUBLE/FLOAT truncations */ fminx = (float) xmin; fminy = (float) ymin; fmaxx = (float) xmax; fmaxy = (float) ymax; tic = fabs (xmin - fminx); tic2 = fabs (ymin - fminy); if (tic2 > tic) tic = tic2; tic2 = fabs (xmax - fmaxx); if (tic2 > tic) tic = tic2; tic2 = fabs (ymax - fmaxy); if (tic2 > tic) tic = tic2; tic *= 2.0; mbr->minx = xmin - tic; mbr->miny = ymin - tic; mbr->maxx = xmax + tic; mbr->maxy = ymax + tic; } mbr = (struct gaia_rtree_mbr *) (p->pUser); xmin = aCoord[0]; xmax = aCoord[1]; ymin = aCoord[2]; ymax = aCoord[3]; *pRes = 1; /* evaluating Intersects relationship */ if (xmin > mbr->maxx) *pRes = 0; if (xmax < mbr->minx) *pRes = 0; if (ymin > mbr->maxy) *pRes = 0; if (ymax < mbr->miny) *pRes = 0; return SQLITE_OK; } static int fnct_RTreeDistWithin (sqlite3_rtree_geometry * p, int nCoord, double *aCoord, int *pRes) { /* R*Tree Geometry callback function: / ... MATCH RTreeDistWithin(double x, double y, double radius) */ struct gaia_rtree_mbr *mbr; double xmin; double xmax; double ymin; double ymax; if (p->pUser == 0) { /* first call: we must check args and then initialize the MBR struct */ if (nCoord != 4) return SQLITE_ERROR; if (p->nParam != 3) return SQLITE_ERROR; mbr = (struct gaia_rtree_mbr *) (p->pUser = sqlite3_malloc (sizeof (struct gaia_rtree_mbr))); if (!mbr) return SQLITE_NOMEM; p->xDelUser = gaia_mbr_del; mbr->minx = p->aParam[0] - p->aParam[2]; mbr->miny = p->aParam[1] - p->aParam[2]; mbr->maxx = p->aParam[0] + p->aParam[2]; mbr->maxy = p->aParam[1] + p->aParam[2]; } mbr = (struct gaia_rtree_mbr *) (p->pUser); xmin = aCoord[0]; xmax = aCoord[1]; ymin = aCoord[2]; ymax = aCoord[3]; *pRes = 1; /* evaluating Intersects relationship */ if (xmin > mbr->maxx) *pRes = 0; if (xmax < mbr->minx) *pRes = 0; if (ymin > mbr->maxy) *pRes = 0; if (ymax < mbr->miny) *pRes = 0; return SQLITE_OK; } #endif /* end RTree geometry callbacks */ static void fnct_X (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / X(BLOB encoded POINT) / / returns the X coordinate for current POINT geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaPointPtr point; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { point = simplePoint (geo); if (!point) sqlite3_result_null (context); else sqlite3_result_double (context, point->X); } gaiaFreeGeomColl (geo); } static void fnct_Y (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Y(BLOB encoded POINT) / / returns the Y coordinate for current POINT geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaPointPtr point; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { point = simplePoint (geo); if (!point) sqlite3_result_null (context); else sqlite3_result_double (context, point->Y); } gaiaFreeGeomColl (geo); } static void fnct_Z (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Z(BLOB encoded POINT) / / returns the Z coordinate for current POINT geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaPointPtr point; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { point = simplePoint (geo); if (!point) sqlite3_result_null (context); else { if (point->DimensionModel == GAIA_XY_Z || point->DimensionModel == GAIA_XY_Z_M) sqlite3_result_double (context, point->Z); else sqlite3_result_null (context); } } gaiaFreeGeomColl (geo); } static void fnct_M (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / M(BLOB encoded POINT) / / returns the M coordinate for current POINT geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaPointPtr point; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { point = simplePoint (geo); if (!point) sqlite3_result_null (context); else { if (point->DimensionModel == GAIA_XY_M || point->DimensionModel == GAIA_XY_Z_M) sqlite3_result_double (context, point->M); else sqlite3_result_null (context); } } gaiaFreeGeomColl (geo); } static void fnct_NumPoints (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / NumPoints(BLOB encoded LINESTRING) / / returns the number of vertices for current LINESTRING geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaLinestringPtr line; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { line = simpleLinestring (geo); if (!line) sqlite3_result_null (context); else sqlite3_result_int (context, line->Points); } gaiaFreeGeomColl (geo); } static void point_n (sqlite3_context * context, int argc, sqlite3_value ** argv, int request) { /* SQL functions: / StartPoint(BLOB encoded LINESTRING geometry) / EndPoint(BLOB encoded LINESTRING geometry) / PointN(BLOB encoded LINESTRING geometry, integer point_no) / / returns the Nth POINT for current LINESTRING geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int vertex; int len; double x; double y; double z; double m; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; gaiaLinestringPtr line; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (request == GAIA_POINTN) { /* PointN() requires point index to be defined as an SQL function argument */ if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } vertex = sqlite3_value_int (argv[1]); } else if (request == GAIA_END_POINT) vertex = -1; /* EndPoint() specifies a negative point index */ else vertex = 1; /* StartPoint() */ p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { line = simpleLinestring (geo); if (!line) sqlite3_result_null (context); else { if (vertex < 0) vertex = line->Points - 1; else vertex -= 1; /* decreasing the point index by 1, because PointN counts starting at index 1 */ if (vertex >= 0 && vertex < line->Points) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, vertex, &x, &y, &z); result = gaiaAllocGeomCollXYZ (); result->Srid = geo->Srid; gaiaAddPointToGeomCollXYZ (result, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, vertex, &x, &y, &m); result = gaiaAllocGeomCollXYM (); result->Srid = geo->Srid; gaiaAddPointToGeomCollXYM (result, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, vertex, &x, &y, &z, &m); result = gaiaAllocGeomCollXYZM (); result->Srid = geo->Srid; gaiaAddPointToGeomCollXYZM (result, x, y, z, m); } else { gaiaGetPoint (line->Coords, vertex, &x, &y); result = gaiaAllocGeomColl (); result->Srid = geo->Srid; gaiaAddPointToGeomColl (result, x, y); } } else result = NULL; if (!result) sqlite3_result_null (context); else { gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (result); sqlite3_result_blob (context, p_result, len, free); } } } gaiaFreeGeomColl (geo); } /* / the following functions simply readdress the request to point_n() / setting the appropriate request mode */ static void fnct_StartPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { point_n (context, argc, argv, GAIA_START_POINT); } static void fnct_EndPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { point_n (context, argc, argv, GAIA_END_POINT); } static void fnct_PointN (sqlite3_context * context, int argc, sqlite3_value ** argv) { point_n (context, argc, argv, GAIA_POINTN); } static void fnct_ExteriorRing (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL functions: / ExteriorRing(BLOB encoded POLYGON geometry) / / returns the EXTERIOR RING for current POLYGON geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int iv; double x; double y; double z; double m; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; gaiaPolygonPtr polyg; gaiaRingPtr ring; gaiaLinestringPtr line; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { polyg = simplePolygon (geo); if (!polyg) sqlite3_result_null (context); else { ring = polyg->Exterior; if (ring->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (ring->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (ring->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); result->Srid = geo->Srid; line = gaiaAddLinestringToGeomColl (result, ring->Points); for (iv = 0; iv < line->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (line->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); gaiaSetPointXYM (line->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); gaiaSetPoint (line->Coords, iv, x, y); } } gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (result); sqlite3_result_blob (context, p_result, len, free); } } gaiaFreeGeomColl (geo); } static void fnct_NumInteriorRings (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / NumInteriorRings(BLOB encoded POLYGON) / / returns the number of INTERIOR RINGS for current POLYGON geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaPolygonPtr polyg; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { polyg = simplePolygon (geo); if (!polyg) sqlite3_result_null (context); else sqlite3_result_int (context, polyg->NumInteriors); } gaiaFreeGeomColl (geo); } static void fnct_InteriorRingN (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL functions: / InteriorRingN(BLOB encoded POLYGON geometry) / / returns the Nth INTERIOR RING for current POLYGON geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int border; int iv; double x; double y; double z; double m; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; gaiaPolygonPtr polyg; gaiaRingPtr ring; gaiaLinestringPtr line; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); border = sqlite3_value_int (argv[1]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { polyg = simplePolygon (geo); if (!polyg) sqlite3_result_null (context); else { if (border >= 1 && border <= polyg->NumInteriors) { ring = polyg->Interiors + (border - 1); if (ring->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (ring->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (ring->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); result->Srid = geo->Srid; line = gaiaAddLinestringToGeomColl (result, ring->Points); for (iv = 0; iv < line->Points; iv++) { if (ring->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (line->Coords, iv, x, y, z); } else if (ring->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring->Coords, iv, &x, &y, &m); gaiaSetPointXYM (line->Coords, iv, x, y, m); } else if (ring->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (line->Coords, iv, x, y, z, m); } else { gaiaGetPoint (ring->Coords, iv, &x, &y); gaiaSetPoint (line->Coords, iv, x, y); } } gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (result); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } } gaiaFreeGeomColl (geo); } static void fnct_NumGeometries (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / NumGeometries(BLOB encoded GEOMETRYCOLLECTION) / / returns the number of elementary geometries for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int cnt = 0; gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { point = geo->FirstPoint; while (point) { /* counts how many points are there */ cnt++; point = point->Next; } line = geo->FirstLinestring; while (line) { /* counts how many linestrings are there */ cnt++; line = line->Next; } polyg = geo->FirstPolygon; while (polyg) { /* counts how many polygons are there */ cnt++; polyg = polyg->Next; } sqlite3_result_int (context, cnt); } gaiaFreeGeomColl (geo); } static void fnct_NPoints (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_NPoints(BLOB encoded GEOMETRYCOLLECTION) / / returns the total number of points/vertices for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int cnt = 0; int ib; gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr rng; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { point = geo->FirstPoint; while (point) { /* counts how many points are there */ cnt++; point = point->Next; } line = geo->FirstLinestring; while (line) { /* counts how many points are there */ cnt += line->Points; line = line->Next; } polyg = geo->FirstPolygon; while (polyg) { /* counts how many points are in the exterior ring */ rng = polyg->Exterior; cnt += rng->Points; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* processing any interior ring */ rng = polyg->Interiors + ib; cnt += rng->Points; } polyg = polyg->Next; } sqlite3_result_int (context, cnt); } gaiaFreeGeomColl (geo); } static void fnct_NRings (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_NRings(BLOB encoded GEOMETRYCOLLECTION) / / returns the total number of rings for current geometry / (this including both interior and exterior rings) / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int cnt = 0; gaiaPolygonPtr polyg; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { polyg = geo->FirstPolygon; while (polyg) { /* counts how many rings are there */ cnt += polyg->NumInteriors + 1; polyg = polyg->Next; } sqlite3_result_int (context, cnt); } gaiaFreeGeomColl (geo); } static int is_single_point (gaiaGeomCollPtr geom) { /* check if this geometry is a simple Point */ int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 1 && lns == 0 && pgs == 0) return 1; return 0; } static int is_single_linestring (gaiaGeomCollPtr geom) { /* check if this geometry is a simple Linestring */ int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 0 && lns == 1 && pgs == 0) return 1; return 0; } static void fnct_AddPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL functions: / ST_AddPoint(BLOB encoded LINESTRING line, BLOB encoded POINT point) / ST_AddPoint(BLOB encoded LINESTRING line, BLOB encoded POINT point, INTEGER position) / / returns a new Linestring by adding a new Point before "position" (zero-based index) / a negative "position" (default) means appending to the end / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaLinestringPtr ln; gaiaLinestringPtr out_ln; gaiaPointPtr pt; int position = -1; gaiaGeomCollPtr line = NULL; gaiaGeomCollPtr point = NULL; gaiaGeomCollPtr out; int len; unsigned char *p_result = NULL; int iv; int out_iv; double x; double y; double m; double z; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); line = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!line) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { gaiaFreeGeomColl (line); sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); point = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!point) { gaiaFreeGeomColl (line); sqlite3_result_null (context); return; } if (argc == 3) { if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_null (context); goto stop; } position = sqlite3_value_int (argv[2]); } if (is_single_linestring (line) && is_single_point (point)) ; else { sqlite3_result_null (context); goto stop; } ln = line->FirstLinestring; pt = point->FirstPoint; if (position >= 0 && position >= ln->Points) { sqlite3_result_null (context); goto stop; } /* creating the output Geometry */ if (line->DimensionModel == GAIA_XY_Z) out = gaiaAllocGeomCollXYZ (); else if (line->DimensionModel == GAIA_XY_M) out = gaiaAllocGeomCollXYM (); else if (line->DimensionModel == GAIA_XY_Z_M) out = gaiaAllocGeomCollXYZM (); else out = gaiaAllocGeomColl (); out->Srid = line->Srid; out->DeclaredType = line->DeclaredType; out_ln = gaiaAddLinestringToGeomColl (out, ln->Points + 1); if (position < 0) { /* appending the new Point */ for (iv = 0; iv < ln->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (out_ln->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaSetPointXYM (out_ln->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (out_ln->Coords, iv, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaSetPoint (out_ln->Coords, iv, x, y); } } /* appending the new Point */ x = pt->X; y = pt->Y; z = pt->Z; m = pt->M; out_iv = ln->Points; if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (out_ln->Coords, out_iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (out_ln->Coords, out_iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (out_ln->Coords, out_iv, x, y, z, m); } else { gaiaSetPoint (out_ln->Coords, out_iv, x, y); } } else { /* inserting the new Point before "position" */ out_iv = 0; for (iv = 0; iv < position; iv++) { /* copying all Points before "position" */ if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (out_ln->Coords, out_iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaSetPointXYM (out_ln->Coords, out_iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (out_ln->Coords, out_iv, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaSetPoint (out_ln->Coords, out_iv, x, y); } out_iv++; } /* inserting the new Point */ x = pt->X; y = pt->Y; z = pt->Z; m = pt->M; if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (out_ln->Coords, out_iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (out_ln->Coords, out_iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (out_ln->Coords, out_iv, x, y, z, m); } else { gaiaSetPoint (out_ln->Coords, out_iv, x, y); } out_iv++; for (iv = position; iv < ln->Points; iv++) { /* copying all Points after "position" */ if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (out_ln->Coords, out_iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaSetPointXYM (out_ln->Coords, out_iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (out_ln->Coords, out_iv, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaSetPoint (out_ln->Coords, out_iv, x, y); } out_iv++; } } gaiaToSpatiaLiteBlobWkbEx (out, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (out); sqlite3_result_blob (context, p_result, len, free); stop: gaiaFreeGeomColl (line); gaiaFreeGeomColl (point); } static void commont_set_point (sqlite3_context * context, gaiaGeomCollPtr line, int position, gaiaGeomCollPtr point) { /* SetPoint - common implementation */ gaiaGeomCollPtr out; gaiaLinestringPtr ln; gaiaLinestringPtr out_ln; gaiaPointPtr pt; unsigned char *p_result = NULL; int len; int iv; double x = 0.0; double y = 0.0; double m = 0.0; double z = 0.0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (is_single_linestring (line) && is_single_point (point)) ; else { sqlite3_result_null (context); goto stop; } ln = line->FirstLinestring; pt = point->FirstPoint; if (position < 0 || position >= ln->Points) { sqlite3_result_null (context); goto stop; } /* creating the output Geometry */ if (line->DimensionModel == GAIA_XY_Z) out = gaiaAllocGeomCollXYZ (); else if (line->DimensionModel == GAIA_XY_M) out = gaiaAllocGeomCollXYM (); else if (line->DimensionModel == GAIA_XY_Z_M) out = gaiaAllocGeomCollXYZM (); else out = gaiaAllocGeomColl (); out->Srid = line->Srid; out->DeclaredType = line->DeclaredType; out_ln = gaiaAddLinestringToGeomColl (out, ln->Points); for (iv = 0; iv < ln->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); } if (iv == position) { /* replacing the new Point */ x = pt->X; y = pt->Y; z = pt->Z; m = pt->M; } if (line->DimensionModel == GAIA_XY_Z) { gaiaSetPointXYZ (out_ln->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaSetPointXYM (out_ln->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaSetPointXYZM (out_ln->Coords, iv, x, y, z, m); } else { gaiaSetPoint (out_ln->Coords, iv, x, y); } } gaiaToSpatiaLiteBlobWkbEx (out, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (out); sqlite3_result_blob (context, p_result, len, free); stop: gaiaFreeGeomColl (line); gaiaFreeGeomColl (point); } static void fnct_SetPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL functions: / ST_SetPoint(BLOB encoded LINESTRING line, INTEGER position, BLOB encoded POINT point) / / returns a new Linestring by replacing the Point at "position" (zero-based index) / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int position; gaiaGeomCollPtr line = NULL; gaiaGeomCollPtr point = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); line = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!line) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { gaiaFreeGeomColl (line); sqlite3_result_null (context); return; } position = sqlite3_value_int (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_BLOB) { gaiaFreeGeomColl (line); sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[2]); n_bytes = sqlite3_value_bytes (argv[2]); point = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!point) { gaiaFreeGeomColl (line); sqlite3_result_null (context); return; } commont_set_point (context, line, position, point); } static void fnct_SetStartPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL functions: / ST_SetStartPoint(BLOB encoded LINESTRING line, BLOB encoded POINT point) / / returns a new Linestring by replacing its StartPoint / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr line = NULL; gaiaGeomCollPtr point = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); line = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!line) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { gaiaFreeGeomColl (line); sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); point = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!point) { gaiaFreeGeomColl (line); sqlite3_result_null (context); return; } commont_set_point (context, line, 0, point); } static void fnct_SetEndPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL functions: / ST_SetEndPoint(BLOB encoded LINESTRING line, BLOB encoded POINT point) / / returns a new Linestring by replacing its EndPoint / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaLinestringPtr ln; gaiaGeomCollPtr line = NULL; gaiaGeomCollPtr point = NULL; int position; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); line = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!line) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { gaiaFreeGeomColl (line); sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); point = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!point) { gaiaFreeGeomColl (line); sqlite3_result_null (context); return; } if (is_single_linestring (line) && is_single_point (point)) ; else { sqlite3_result_null (context); goto stop; } ln = line->FirstLinestring; position = ln->Points - 1; commont_set_point (context, line, position, point); return; stop: gaiaFreeGeomColl (line); gaiaFreeGeomColl (point); } static void fnct_RemovePoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL functions: / ST_RemovePoint(BLOB encoded LINESTRING line, INTEGER position) / / returns a new Linestring by removing the Point at "position" (zero-based index) / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaLinestringPtr ln; gaiaLinestringPtr out_ln; int position; gaiaGeomCollPtr line = NULL; gaiaGeomCollPtr out; int len; unsigned char *p_result = NULL; int iv; int out_iv; double x; double y; double m; double z; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); line = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!line) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); goto stop; } position = sqlite3_value_int (argv[1]); if (!is_single_linestring (line)) { sqlite3_result_null (context); goto stop; } ln = line->FirstLinestring; if (position < 0 || position >= ln->Points) { sqlite3_result_null (context); goto stop; } /* creating the output Geometry */ if (line->DimensionModel == GAIA_XY_Z) out = gaiaAllocGeomCollXYZ (); else if (line->DimensionModel == GAIA_XY_M) out = gaiaAllocGeomCollXYM (); else if (line->DimensionModel == GAIA_XY_Z_M) out = gaiaAllocGeomCollXYZM (); else out = gaiaAllocGeomColl (); out->Srid = line->Srid; out->DeclaredType = line->DeclaredType; out_ln = gaiaAddLinestringToGeomColl (out, ln->Points - 1); out_iv = 0; for (iv = 0; iv < position; iv++) { /* copying all Points before "position" */ if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (out_ln->Coords, out_iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaSetPointXYM (out_ln->Coords, out_iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (out_ln->Coords, out_iv, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaSetPoint (out_ln->Coords, out_iv, x, y); } out_iv++; } for (iv = position + 1; iv < ln->Points; iv++) { /* copying all Points after "position" */ if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (out_ln->Coords, out_iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaSetPointXYM (out_ln->Coords, out_iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (out_ln->Coords, out_iv, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaSetPoint (out_ln->Coords, out_iv, x, y); } out_iv++; } gaiaToSpatiaLiteBlobWkbEx (out, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (out); sqlite3_result_blob (context, p_result, len, free); stop: gaiaFreeGeomColl (line); } static void fnct_MakePolygon (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL functions: / ST_MakePolygon(BLOB encoded LINESTRING line) / ST_MakePolygon(BLOB encoded LINESTRING line, BLOB encoded (MULTI)LINESTING holes) / / returns a new POLYGON from the given exterior and interior rings / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr exterior = NULL; gaiaGeomCollPtr interiors = NULL; gaiaGeomCollPtr out; int len; unsigned char *p_result = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); goto stop; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); exterior = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!exterior) { sqlite3_result_null (context); goto stop; } if (argc == 2) { if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); goto stop; } p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); interiors = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!interiors) { sqlite3_result_null (context); goto stop; } } out = gaiaMakePolygon (exterior, interiors); if (!out) { sqlite3_result_null (context); goto stop; } gaiaToSpatiaLiteBlobWkbEx (out, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (out); sqlite3_result_blob (context, p_result, len, free); stop: gaiaFreeGeomColl (exterior); gaiaFreeGeomColl (interiors); } static int getXYZMSinglePoint (gaiaGeomCollPtr geom, double *x, double *y, double *z, double *m) { /* check if this geometry is a simple Point (returning full coords) */ int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts == 1 && lns == 0 && pgs == 0) ; else return 0; *x = geom->FirstPoint->X; *y = geom->FirstPoint->Y; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_Z_M) *z = geom->FirstPoint->Z; else *z = 0.0; if (geom->DimensionModel == GAIA_XY_M || geom->DimensionModel == GAIA_XY_Z_M) *m = geom->FirstPoint->M; else *m = 0.0; return 1; } static void fnct_SnapToGrid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_SnapToGrid(BLOBencoded geom, double size) / ST_SnapToGrid(BLOBencoded geom, double sizeX, double sizeY) / ST_SnapToGrid(BLOBencoded geom, double originX, double originY, / double sizeX, double sizeY) / / Snap all points of the input geometry to the grid defined by its / origin and cell size. Remove consecutive points falling on the same / cell. Collapsed geometries in a collection are stripped from it. / / / ST_SnapToGrid(BLOBencoded geom, BLOBencoded point, double sizeX, / double sizeY, double sizeZ, double sizeM) / / Snap all points of the input geometry to the grid defined by its / origin (the second argument, must be a point) and cell sizes. / / Specify 0 as size for any dimension you don't want to snap to / a grid. / return NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int int_value; double origin_x = 0.0; double origin_y = 0.0; double origin_z = 0.0; double origin_m = 0.0; double size_x = 0.0; double size_y = 0.0; double size_z = 0.0; double size_m = 0.0; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr point = NULL; gaiaGeomCollPtr result = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc == 2) { /* ST_SnapToGrid(BLOBencoded geom, double size) */ if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); size_x = int_value; size_y = size_x; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { size_x = sqlite3_value_double (argv[1]); size_y = size_x; } else { sqlite3_result_null (context); return; } } if (argc == 3) { /* ST_SnapToGrid(BLOBencoded geom, double sizeX, double sizeY) */ if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); size_x = int_value; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { size_x = sqlite3_value_double (argv[1]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); size_y = int_value; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) { size_y = sqlite3_value_double (argv[2]); } else { sqlite3_result_null (context); return; } } if (argc == 5) { /* / ST_SnapToGrid(BLOBencoded geom, double originX, double originY, / double sizeX, double sizeY) */ if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); origin_x = int_value; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { origin_x = sqlite3_value_double (argv[1]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); origin_y = int_value; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) { origin_y = sqlite3_value_double (argv[2]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); size_x = int_value; } else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) { size_x = sqlite3_value_double (argv[3]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[4]); size_y = int_value; } else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) { size_y = sqlite3_value_double (argv[4]); } else { sqlite3_result_null (context); return; } } if (argc == 6) { /* / ST_SnapToGrid(BLOBencoded geom, BLOBencoded point, double sizeX, / double sizeY, double sizeZ, double sizeM) */ if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); point = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!point) { sqlite3_result_null (context); return; } if (!getXYZMSinglePoint (point, &origin_x, &origin_y, &origin_z, &origin_m)) { gaiaFreeGeomColl (point); sqlite3_result_null (context); return; } gaiaFreeGeomColl (point); if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); size_x = int_value; } else if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) { size_x = sqlite3_value_double (argv[2]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); size_y = int_value; } else if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) { size_y = sqlite3_value_double (argv[3]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[4]); size_z = int_value; } else if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) { size_z = sqlite3_value_double (argv[4]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[5]); size_m = int_value; } else if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) { size_m = sqlite3_value_double (argv[5]); } else { sqlite3_result_null (context); return; } } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { result = gaiaSnapToGrid (geo, origin_x, origin_y, origin_z, origin_m, size_x, size_y, size_z, size_m); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static char garsMapping[24] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' }; static char garsLetterCode (int value) { return garsMapping[value]; } static int garsMappingIndex (const char letter) { int i = 0; for (i = 0; i < 24; ++i) { if (letter == garsMapping[i]) return i; } return -1; } static double garsLetterToDegreesLat (char msd, char lsd) { double high = garsMappingIndex (msd) * 24.0; double low = garsMappingIndex (lsd); if ((high < 0) || (low < 0)) { return -100.0; } return (((high + low) * 0.5) - 90.0); } static void fnct_GARSMbr (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GARSMbr(Text) / / converts the Text (which should be a valid GARS area) to the corresponding / MBR geometry. / This function will return NULL if an error occurs */ const char *text = NULL; int len = 0; unsigned char *p_result = NULL; double x1 = 0.0; double y1 = 0.0; double x2 = 0.0; double y2 = 0.0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = (const char *) sqlite3_value_text (argv[0]); if ((strlen (text) < 5) || (strlen (text) > 7)) { sqlite3_result_null (context); return; } if (strlen (text) == 5) { int numMatch = 0; unsigned int digit100 = 0; char letterMSD = '\0'; char letterLSD = '\0'; numMatch = sscanf (text, "%u%c%c", &digit100, &letterMSD, &letterLSD); if (numMatch != 3) { sqlite3_result_null (context); return; } x1 = ((digit100 - 1) * 0.5) - 180.0; y1 = garsLetterToDegreesLat (letterMSD, letterLSD); if ((x1 < -180.0) || (x1 > 179.5) || (y1 < -90.0) || (y1 > 89.5)) { sqlite3_result_null (context); return; } x2 = x1 + 0.5; y2 = y1 + 0.5; } if (strlen (text) == 6) { unsigned int numMatch = 0; unsigned int digit100 = 0; char letterMSD = '\0'; char letterLSD = '\0'; unsigned int digitSegment = 0; numMatch = sscanf (text, "%u%c%c%u", &digit100, &letterMSD, &letterLSD, &digitSegment); if (numMatch != 4) { sqlite3_result_null (context); return; } if ((digitSegment < 1) || (digitSegment > 4)) { sqlite3_result_null (context); return; } x1 = ((digit100 - 1) * 0.5) - 180.0; if ((digitSegment == 2) || (digitSegment == 4)) { x1 += 0.25; } y1 = garsLetterToDegreesLat (letterMSD, letterLSD); if ((digitSegment == 1) || (digitSegment == 2)) { y1 += 0.25; } if ((x1 < -180.0) || (x1 > 179.75) || (y1 < -90.0) || (y1 > 89.75)) { sqlite3_result_null (context); return; } x2 = x1 + 0.25; y2 = y1 + 0.25; } if (strlen (text) == 7) { unsigned int numMatch = 0; unsigned int digit100 = 0; char letterMSD = '\0'; char letterLSD = '\0'; unsigned int digitAndKeypad = 0; unsigned int digitSegment = 0; unsigned int keypadNumber = 0; numMatch = sscanf (text, "%u%c%c%u", &digit100, &letterMSD, &letterLSD, &digitAndKeypad); if (numMatch != 4) { sqlite3_result_null (context); return; } digitSegment = digitAndKeypad / 10; keypadNumber = digitAndKeypad % 10; if ((digitSegment < 1) || (digitSegment > 4)) { sqlite3_result_null (context); return; } if (keypadNumber < 1) { sqlite3_result_null (context); return; } x1 = ((digit100 - 1) * 0.5) - 180.0; if ((digitSegment == 2) || (digitSegment == 4)) { x1 += 0.25; } y1 = garsLetterToDegreesLat (letterMSD, letterLSD); if ((digitSegment == 1) || (digitSegment == 2)) { y1 += 0.25; } switch (keypadNumber) { case 1: x1 += 0 * 0.25 / 3; y1 += 2 * 0.25 / 3; break; case 2: x1 += 1 * 0.25 / 3; y1 += 2 * 0.25 / 3; break; case 3: x1 += 2 * 0.25 / 3; y1 += 2 * 0.25 / 3; break; case 4: x1 += 0 * 0.25 / 3; y1 += 1 * 0.25 / 3; break; case 5: x1 += 1 * 0.25 / 3; y1 += 1 * 0.25 / 3; break; case 6: x1 += 2 * 0.25 / 3; y1 += 1 * 0.25 / 3; break; case 7: x1 += 0 * 0.25 / 3; y1 += 0 * 0.25 / 3; break; case 8: x1 += 1 * 0.25 / 3; y1 += 0 * 0.25 / 3; break; case 9: x1 += 2 * 0.25 / 3; y1 += 0 * 0.25 / 3; break; } if ((x1 < -180.0) || (x1 >= 180.0) || (y1 < -90.0) || (y1 >= 90.0)) { sqlite3_result_null (context); return; } x2 = x1 + (0.25 / 3); y2 = y1 + (0.25 / 3); } gaiaBuildMbr (x1, y1, x2, y2, 4326, &p_result, &len); if (!p_result) { sqlite3_result_null (context); spatialite_e ("bad p_result\n"); } else sqlite3_result_blob (context, p_result, len, free); } static void fnct_ToGARS (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ToGARS(BLOB encoded POINT) / / returns the Global Area Reference System coordinate area for a given point, / or NULL if an error occurs */ unsigned char *p_blob; int n_bytes; int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaGeomCollPtr geo = NULL; char p_result[8]; int lon_band = 0; double lon_minutes = 0; int segmentNumber = 0; int lat_band = 0; double lat_minutes = 0; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) { sqlite3_result_null (context); return; } gaiaNormalizeLonLat (geo); point = geo->FirstPoint; while (point != NULL) { pts++; point = point->Next; } line = geo->FirstLinestring; while (line != NULL) { lns++; line = line->Next; } polyg = geo->FirstPolygon; while (polyg != NULL) { pgs++; polyg = polyg->Next; } if (pts == 1 && lns == 0 && pgs == 0) point = geo->FirstPoint; else { /* not a single Point */ gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } /* longitude band */ lon_band = 1 + (int) ((point->X + 180.0) * 2); sprintf (p_result, "%03i", lon_band); /* latitude band */ lat_band = (int) ((point->Y + 90.0) * 2); p_result[3] = garsLetterCode (lat_band / 24); p_result[4] = garsLetterCode (lat_band % 24); /* quadrant */ lon_minutes = fmod ((point->X + 180.0), 0.5) * 60.0; if (lon_minutes < 15.0) { segmentNumber = 1; } else { segmentNumber = 2; lon_minutes -= 15.0; } lat_minutes = fmod ((point->Y + 90.0), 0.5) * 60.0; if (lat_minutes < 15.0) { segmentNumber += 2; } else { /* we already have the right segment */ lat_minutes -= 15.0; } sprintf (&(p_result[5]), "%i", segmentNumber); /* area */ segmentNumber = 0; if (lon_minutes >= 10.0) { segmentNumber = 3; } else if (lon_minutes >= 5.0) { segmentNumber = 2; } else { segmentNumber = 1; } if (lat_minutes >= 10.0) { /* nothing to add */ } else if (lat_minutes >= 5.0) { segmentNumber += 3; } else { segmentNumber += 6; } sprintf (&(p_result[6]), "%i", segmentNumber); sqlite3_result_text (context, p_result, 7, SQLITE_TRANSIENT); gaiaFreeGeomColl (geo); } static void fnct_GeometryN (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeometryN(BLOB encoded GEOMETRYCOLLECTION geometry) / / returns the Nth geometry for current GEOMETRYCOLLECTION or MULTIxxxx geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int entity; int len; int cnt = 0; int iv; int ib; double x; double y; double z; double m; gaiaPointPtr point; gaiaLinestringPtr line; gaiaLinestringPtr line2; gaiaPolygonPtr polyg; gaiaPolygonPtr polyg2; gaiaRingPtr ring_in; gaiaRingPtr ring_out; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); entity = sqlite3_value_int (argv[1]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { point = geo->FirstPoint; while (point) { /* counts how many points are there */ cnt++; if (cnt == entity) { /* ok, required elementary geometry is this POINT */ if (point->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (point->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (point->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); result->Srid = geo->Srid; if (point->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (result, point->X, point->Y, point->Z); else if (point->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (result, point->X, point->Y, point->M); else if (point->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (result, point->X, point->Y, point->Z, point->M); else gaiaAddPointToGeomColl (result, point->X, point->Y); goto skip; } point = point->Next; } line = geo->FirstLinestring; while (line) { /* counts how many linestrings are there */ cnt++; if (cnt == entity) { /* ok, required elementary geometry is this LINESTRING */ if (line->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (line->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (line->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); result->Srid = geo->Srid; line2 = gaiaAddLinestringToGeomColl (result, line->Points); for (iv = 0; iv < line2->Points; iv++) { if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (line2->Coords, iv, x, y, z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); gaiaSetPointXYM (line2->Coords, iv, x, y, m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (line2->Coords, iv, x, y, z, m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); gaiaSetPoint (line2->Coords, iv, x, y); } } goto skip; } line = line->Next; } polyg = geo->FirstPolygon; while (polyg) { /* counts how many polygons are there */ cnt++; if (cnt == entity) { /* ok, required elementary geometry is this POLYGON */ if (polyg->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (polyg->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (polyg->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); result->Srid = geo->Srid; ring_in = polyg->Exterior; polyg2 = gaiaAddPolygonToGeomColl (result, ring_in->Points, polyg->NumInteriors); ring_out = polyg2->Exterior; for (iv = 0; iv < ring_out->Points; iv++) { /* copying the exterior ring POINTs */ if (ring_in->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring_in->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (ring_out->Coords, iv, x, y, z); } else if (ring_in->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring_in->Coords, iv, &x, &y, &m); gaiaSetPointXYM (ring_out->Coords, iv, x, y, m); } else if (ring_in->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring_in->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (ring_out->Coords, iv, x, y, z, m); } else { gaiaGetPoint (ring_in->Coords, iv, &x, &y); gaiaSetPoint (ring_out->Coords, iv, x, y); } } for (ib = 0; ib < polyg2->NumInteriors; ib++) { /* processing the interior rings */ ring_in = polyg->Interiors + ib; ring_out = gaiaAddInteriorRing (polyg2, ib, ring_in->Points); for (iv = 0; iv < ring_out->Points; iv++) { if (ring_in->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ring_in->Coords, iv, &x, &y, &z); gaiaSetPointXYZ (ring_out->Coords, iv, x, y, z); } else if (ring_in->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ring_in->Coords, iv, &x, &y, &m); gaiaSetPointXYM (ring_out->Coords, iv, x, y, m); } else if (ring_in->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ring_in->Coords, iv, &x, &y, &z, &m); gaiaSetPointXYZM (ring_out->Coords, iv, x, y, z, m); } else { gaiaGetPoint (ring_in->Coords, iv, &x, &y); gaiaSetPoint (ring_out->Coords, iv, x, y); } } } goto skip; } polyg = polyg->Next; } skip: if (result) { gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (result); sqlite3_result_blob (context, p_result, len, free); } else sqlite3_result_null (context); } gaiaFreeGeomColl (geo); } static void mbrs_eval (sqlite3_context * context, int argc, sqlite3_value ** argv, int request) { /* SQL function: / MBRsomething(BLOB encoded GEOMETRY-1, BLOB encoded GEOMETRY-2) / / returns: / 1 if the required spatial relationship between the two MBRs is TRUE / 0 otherwise / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobMbr (p_blob, n_bytes); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobMbr (p_blob, n_bytes); if (!geo1 || !geo2) sqlite3_result_null (context); else { ret = 0; gaiaMbrGeometry (geo1); gaiaMbrGeometry (geo2); switch (request) { case GAIA_MBR_CONTAINS: ret = gaiaMbrsContains (geo1, geo2); break; case GAIA_MBR_DISJOINT: ret = gaiaMbrsDisjoint (geo1, geo2); break; case GAIA_MBR_EQUAL: ret = gaiaMbrsEqual (geo1, geo2); break; case GAIA_MBR_INTERSECTS: ret = gaiaMbrsIntersects (geo1, geo2); break; case GAIA_MBR_OVERLAPS: ret = gaiaMbrsOverlaps (geo1, geo2); break; case GAIA_MBR_TOUCHES: ret = gaiaMbrsTouches (geo1, geo2); break; case GAIA_MBR_WITHIN: ret = gaiaMbrsWithin (geo1, geo2); break; } if (ret < 0) sqlite3_result_null (context); else sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } /* / the following functions simply readdress the mbr_eval() / setting the appropriate request mode */ static void fnct_MbrContains (sqlite3_context * context, int argc, sqlite3_value ** argv) { mbrs_eval (context, argc, argv, GAIA_MBR_CONTAINS); } static void fnct_MbrDisjoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { mbrs_eval (context, argc, argv, GAIA_MBR_DISJOINT); } static void fnct_MbrEqual (sqlite3_context * context, int argc, sqlite3_value ** argv) { mbrs_eval (context, argc, argv, GAIA_MBR_EQUAL); } static void fnct_MbrIntersects (sqlite3_context * context, int argc, sqlite3_value ** argv) { mbrs_eval (context, argc, argv, GAIA_MBR_INTERSECTS); } static void fnct_EnvIntersects (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_EnvIntersects(Geometry geom, double X1, double Y1, double X2, double Y2) / ST_EnvelopesIntersects(Geometry geom, double X1, double Y1, double X2, double Y2) / / the second MBR is defined by two points (identifying a rectangle's diagonal) / or NULL if any error is encountered */ double x1; double y1; double x2; double y2; int int_value; unsigned char *p_blob; int n_bytes; int ret = 0; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaLinestringPtr ln; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) x1 = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); x1 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) y1 = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); y1 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) x2 = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); x2 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) y2 = sqlite3_value_double (argv[4]); else if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[4]); y2 = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo1) sqlite3_result_null (context); else { gaiaMbrGeometry (geo1); geo2 = gaiaAllocGeomColl (); ln = gaiaAddLinestringToGeomColl (geo2, 2); gaiaSetPoint (ln->Coords, 0, x1, y1); gaiaSetPoint (ln->Coords, 1, x2, y2); gaiaMbrGeometry (geo2); ret = gaiaMbrsIntersects (geo1, geo2); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_MbrOverlaps (sqlite3_context * context, int argc, sqlite3_value ** argv) { mbrs_eval (context, argc, argv, GAIA_MBR_OVERLAPS); } static void fnct_MbrTouches (sqlite3_context * context, int argc, sqlite3_value ** argv) { mbrs_eval (context, argc, argv, GAIA_MBR_TOUCHES); } static void fnct_MbrWithin (sqlite3_context * context, int argc, sqlite3_value ** argv) { mbrs_eval (context, argc, argv, GAIA_MBR_WITHIN); } static void fnct_ShiftCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ShiftCoords(BLOBencoded geometry, shiftX, shiftY) / / returns a new geometry that is the original one received, but with shifted coordinates / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; double shift_x; double shift_y; int int_value; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) shift_x = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); shift_x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) shift_y = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); shift_y = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { gaiaShiftCoords (geo, shift_x, shift_y); gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_Translate (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Translate(BLOBencoded geometry, shiftX, shiftY, shiftZ) / / returns a new geometry that is the original one received, but with shifted coordinates / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; double shift_x; double shift_y; double shift_z; int int_value; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) shift_x = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); shift_x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) shift_y = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); shift_y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) shift_z = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); shift_z = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { gaiaShiftCoords3D (geo, shift_x, shift_y, shift_z); gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_ShiftLongitude (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ShiftLongitude(BLOBencoded geometry) / / returns a new geometry that is the original one received, but with negative / longitudes shifted by 360 / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { gaiaShiftLongitude (geo); gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_NormalizeLonLat (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / NormalizeLonLat (BLOBencoded geometry) / / returns a new geometry that is the original one received, but with longitude / and latitude values shifted into the range [-180 - 180, -90 - 90]. / NULL is returned if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { gaiaNormalizeLonLat (geo); gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_ScaleCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ScaleCoords(BLOBencoded geometry, scale_factor_x [, scale_factor_y]) / / returns a new geometry that is the original one received, but with scaled coordinates / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; double scale_x; double scale_y; int int_value; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) scale_x = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); scale_x = int_value; } else { sqlite3_result_null (context); return; } if (argc == 2) scale_y = scale_x; /* this one is an isotropic scaling request */ else { /* an anisotropic scaling is requested */ if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) scale_y = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); scale_y = int_value; } else { sqlite3_result_null (context); return; } } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { gaiaScaleCoords (geo, scale_x, scale_y); gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_RotateCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RotateCoords(BLOBencoded geometry, angle) / / returns a new geometry that is the original one received, but with rotated coordinates / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; double angle; int int_value; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) angle = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); angle = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { gaiaRotateCoords (geo, angle); gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_ReflectCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ReflectCoords(BLOBencoded geometry, x_axis, y_axis) / / returns a new geometry that is the original one received, but with mirrored coordinates / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; int x_axis; int y_axis; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) x_axis = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) y_axis = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { gaiaReflectCoords (geo, x_axis, y_axis); gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } static void fnct_SwapCoords (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SwapCoords(BLOBencoded geometry) / / returns a new geometry that is the original one received, but with swapped x- and y-coordinate / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { gaiaSwapCoords (geo); gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); if (!p_result) sqlite3_result_null (context); else sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (geo); } SPATIALITE_PRIVATE int getEllipsoidParams (void *p_sqlite, int srid, double *a, double *b, double *rf) { /* / retrieves the PROJ +ellps=xx [+a=xx +b=xx] params /from SPATIAL_SYS_REF table, if possible */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; char *proj4text; char *p_proj; char *p_ellps; char *p_datum; char *p_a; char *p_b; char *p_end; if (srid == 0) { /* / SRID=0 is formally defined as "Undefined Geographic" / so will default to SRID=4326 (WGS84 Long/Lat) */ srid = 4326; } getProjParams (sqlite, srid, &proj4text); if (proj4text == NULL) return 0; /* parsing the proj4text geodesic string */ p_proj = strstr (proj4text, "+proj="); p_datum = strstr (proj4text, "+datum="); p_ellps = strstr (proj4text, "+ellps="); p_a = strstr (proj4text, "+a="); p_b = strstr (proj4text, "+b="); /* checking if +proj=longlat is true */ if (!p_proj) goto invalid; p_end = strchr (p_proj, ' '); if (p_end) *p_end = '\0'; if (strcmp (p_proj + 6, "longlat") != 0) goto invalid; if (p_ellps) { /* trying to retrieve the ellipsoid params by name */ p_end = strchr (p_ellps, ' '); if (p_end) *p_end = '\0'; if (gaiaEllipseParams (p_ellps + 7, a, b, rf)) goto valid; } else if (p_datum) { /* / starting since GDAL 1.9.0 the WGS84 [4326] PROJ.4 def doesn't / declares any longer the "+ellps=" param / in this case we'll attempt to recover using "+datum=". */ p_end = strchr (p_datum, ' '); if (p_end) *p_end = '\0'; if (gaiaEllipseParams (p_datum + 7, a, b, rf)) goto valid; } if (p_a && p_b) { /* trying to retrieve the +a=xx and +b=xx args */ p_end = strchr (p_a, ' '); if (p_end) *p_end = '\0'; p_end = strchr (p_b, ' '); if (p_end) *p_end = '\0'; *a = atof (p_a + 3); *b = atof (p_b + 3); *rf = 1.0 / ((*a - *b) / *a); goto valid; } valid: free (proj4text); return 1; invalid: free (proj4text); return 0; } static void fnct_FromEWKB (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeomFromEWKB(EWKB encoded geometry) / / returns the current geometry by parsing Geos/PostGis EWKB encoded string / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; const unsigned char *text; gaiaGeomCollPtr geo = NULL; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaFromEWKB (text); if (geo == NULL) { sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void fnct_ToEWKB (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsEWKB(BLOB encoded geometry) / / returns a text string corresponding to Geos/PostGIS EWKB notation / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; gaiaOutBuffer out_buf; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) { sqlite3_result_null (context); return; } else { gaiaOutBufferInitialize (&out_buf); gaiaToEWKB (&out_buf, geo); if (out_buf.Error || out_buf.Buffer == NULL) sqlite3_result_null (context); else { len = out_buf.WriteOffset; sqlite3_result_text (context, out_buf.Buffer, len, free); out_buf.Buffer = NULL; } } gaiaFreeGeomColl (geo); gaiaOutBufferReset (&out_buf); } static void fnct_ToEWKT (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsEWKT(BLOB encoded geometry) / / returns the corresponding PostGIS EWKT encoded value / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; gaiaOutBuffer out_buf; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); gaiaOutBufferInitialize (&out_buf); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { gaiaToEWKT (&out_buf, geo); if (out_buf.Error || out_buf.Buffer == NULL) sqlite3_result_null (context); else { len = out_buf.WriteOffset; sqlite3_result_text (context, out_buf.Buffer, len, free); out_buf.Buffer = NULL; } } gaiaFreeGeomColl (geo); gaiaOutBufferReset (&out_buf); } static void fnct_FromEWKT (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeomFromEWKT(EWKT encoded geometry) / / returns the current geometry by parsing EWKT (PostGIS) encoded string / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; const unsigned char *text; gaiaGeomCollPtr geo = NULL; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseEWKT (text); if (geo == NULL) { sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void fnct_FromGeoJSON (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeomFromGeoJSON(GeoJSON encoded geometry) / / returns the current geometry by parsing GeoJSON encoded string / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; const unsigned char *text; gaiaGeomCollPtr geo = NULL; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseGeoJSON (text); if (geo == NULL) { sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void fnct_FromKml (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeomFromKml(KML encoded geometry) / / returns the current geometry by parsing KML encoded string / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; const unsigned char *text; gaiaGeomCollPtr geo = NULL; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseKml (text); if (geo == NULL) { sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void fnct_FromGml (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeomFromGml(GML encoded geometry) / / returns the current geometry by parsing GML encoded string / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; const unsigned char *text; gaiaGeomCollPtr geo = NULL; void *data = sqlite3_user_data (context); sqlite3 *sqlite = sqlite3_context_db_handle (context); int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); if (data != NULL) geo = gaiaParseGml_r (data, text, sqlite); else geo = gaiaParseGml (text, sqlite); if (geo == NULL) { sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkbEx (geo, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geo); sqlite3_result_blob (context, p_result, len, free); } static void fnct_LinesFromRings (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LinesFromRings(BLOBencoded geometry, BOOL multi_linestring) / / returns a new geometry [LINESTRING or MULTILINESTRING] representing / the linearization for current (MULTI)POLYGON geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr geom_new = NULL; int len; int multi_linestring = 0; unsigned char *p_result = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo == NULL) { sqlite3_result_null (context); return; } if (argc == 2) { if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) multi_linestring = sqlite3_value_int (argv[1]); } geom_new = gaiaLinearize (geo, multi_linestring); if (!geom_new) goto invalid; gaiaFreeGeomColl (geo); gaiaToSpatiaLiteBlobWkbEx (geom_new, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom_new); sqlite3_result_blob (context, p_result, len, free); return; invalid: if (geo) gaiaFreeGeomColl (geo); sqlite3_result_null (context); } #ifndef OMIT_GEOS /* including GEOS */ static void fnct_BuildArea (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BuildArea(BLOBencoded geometry) / / Assuming that Geometry represents a set of sparse Linestrings, / this function will attempt to reassemble a single Polygon / (or a set of Polygons) / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo == NULL) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaPolygonize_r (data, geo, 0); else result = gaiaPolygonize (geo, 0); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_Polygonize_step (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Polygonize(BLOBencoded geom) / / aggregate function - STEP / */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; gaiaGeomCollPtr result; gaiaGeomCollPtr *p; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geom) return; p = sqlite3_aggregate_context (context, sizeof (gaiaGeomCollPtr)); if (!(*p)) { /* this is the first row */ *p = geom; } else { /* subsequent rows */ void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaMergeGeometries_r (data, *p, geom); else result = gaiaMergeGeometries (*p, geom); gaiaFreeGeomColl (*p); *p = result; gaiaFreeGeomColl (geom); } } static void fnct_Polygonize_final (sqlite3_context * context) { /* SQL function: / Polygonize(BLOBencoded geom) / / aggregate function - FINAL / */ gaiaGeomCollPtr result; gaiaGeomCollPtr geom; gaiaGeomCollPtr *p = sqlite3_aggregate_context (context, 0); int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (!p) { sqlite3_result_null (context); return; } result = *p; if (!result) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) geom = gaiaPolygonize_r (data, result, 0); else geom = gaiaPolygonize (result, 0); if (geom == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; geom->Srid = result->Srid; gaiaToSpatiaLiteBlobWkbEx (geom, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (geom); } gaiaFreeGeomColl (result); } } #endif /* end including GEOS */ static void fnct_DissolveSegments (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DissolveSegments(BLOBencoded geometry) / / Dissolves any LINESTRING or RING into elementary segments / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaDissolveSegments (geo); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_DissolvePoints (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DissolvePoints(BLOBencoded geometry) / / Dissolves any LINESTRING or RING into elementary Vertices / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaDissolvePoints (geo); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_CollectionExtract (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CollectionExtract(BLOBencoded geometry, Integer type) / / Extracts from a GEOMETRYCOLLECTION any item of the required TYPE / 1=Point - 2=Linestring - 3=Polygon / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; int type; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) type = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } if (type == 1 || type == 2 || type == 3) ; else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo == NULL) sqlite3_result_null (context); else { switch (type) { case 1: result = gaiaExtractPointsFromGeomColl (geo); break; case 2: result = gaiaExtractLinestringsFromGeomColl (geo); break; case 3: result = gaiaExtractPolygonsFromGeomColl (geo); break; }; if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_LocateBetweenMeasures (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL functions: / ST_Locate_Along_Measure(BLOBencoded geometry, Double m_value) / ST_Locate_Between_Measures(BLOBencoded geometry, Double m_start, Double m_end) / / Extracts from a GEOMETRY (supporting M) any Point/Linestring / matching the range of measures / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; double m_start; double m_end; int intval; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) m_start = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { intval = sqlite3_value_int (argv[1]); m_start = intval; } else { sqlite3_result_null (context); return; } if (argc > 2) { if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) m_end = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { intval = sqlite3_value_int (argv[2]); m_end = intval; } else { sqlite3_result_null (context); return; } } else m_end = m_start; p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaLocateBetweenMeasures (geo, m_start, m_end); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } #ifndef OMIT_PROJ /* including PROJ.4 */ static void fnct_Transform (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Transform(BLOBencoded geometry, srid) / / returns a new geometry that is the original one received, but transformed / translated to the new SRID [coordinates translation is applied] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int srid_from; int srid_to; char *proj_from; char *proj_to; void *data = sqlite3_user_data (context); sqlite3 *sqlite = sqlite3_context_db_handle (context); int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) srid_to = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { srid_from = geo->Srid; getProjParamsEx (sqlite, srid_from, &proj_from, gpkg_amphibious); getProjParamsEx (sqlite, srid_to, &proj_to, gpkg_amphibious); if (proj_to == NULL || proj_from == NULL) { if (proj_from) free (proj_from); if (proj_to) free (proj_to); gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } if (data != NULL) result = gaiaTransform_r (data, geo, proj_from, proj_to); else result = gaiaTransform (geo, proj_from, proj_to); free (proj_from); free (proj_to); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = srid_to; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } #endif /* end including PROJ.4 */ #ifndef OMIT_GEOS /* including GEOS */ static void fnct_GEOS_GetLastWarningMsg (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GEOS_GetLastWarningMsg() / / return the most recent GEOS warning message (if any) / return NULL on any other case */ const char *msg; void *data = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (data != NULL) msg = gaiaGetGeosWarningMsg_r (data); else msg = gaiaGetGeosWarningMsg (); if (msg == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); } static void fnct_GEOS_GetLastErrorMsg (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GEOS_GetLastErrorMsg() / / return the most recent GEOS error message (if any) / return NULL on any other case */ const char *msg; void *data = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (data != NULL) msg = gaiaGetGeosErrorMsg_r (data); else msg = gaiaGetGeosErrorMsg (); if (msg == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); } static void fnct_GEOS_GetLastAuxErrorMsg (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GEOS_GetLastAuxErrorMsg() / / return the most recent GEOS error message (if any) / return NULL on any other case */ const char *msg; void *data = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (data != NULL) msg = gaiaGetGeosAuxErrorMsg_r (data); else msg = gaiaGetGeosAuxErrorMsg (); if (msg == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); } static void fnct_GEOS_GetCriticalPointFromMsg (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GEOS_GetCriticalPointFromMsg() / / return a Point Geometry by (possibly) parsing the most recent GEOS error/warning message / return NULL on any other case */ int srid = -1; gaiaGeomCollPtr geom; void *data = sqlite3_user_data (context); int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (argc == 1) { if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } srid = sqlite3_value_int (argv[0]); } if (data != NULL) geom = gaiaCriticalPointFromGEOSmsg_r (data); else geom = gaiaCriticalPointFromGEOSmsg (); if (geom == NULL) sqlite3_result_null (context); else { unsigned char *blob; int len; geom->Srid = srid; gaiaToSpatiaLiteBlobWkbEx (geom, &blob, &len, gpkg_mode); gaiaFreeGeomColl (geom); sqlite3_result_blob (context, blob, len, free); } } static void fnct_IsValidReason (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsValidReason(geom) / ST_IsValidReason(geom) / / return a TEXT string stating if a Geometry is valid / and if not valid, a reason why / return NULL on any other case */ unsigned char *p_blob; int n_bytes; int len; gaiaGeomCollPtr geom; char *str; void *data = sqlite3_user_data (context); int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (data != NULL) str = gaiaIsValidReason_r (data, geom); else str = gaiaIsValidReason (geom); if (str == NULL) sqlite3_result_null (context); else { len = strlen (str); sqlite3_result_text (context, str, len, free); } if (geom != NULL) gaiaFreeGeomColl (geom); } static void fnct_IsValidDetail (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsValidDetail(geom) / ST_IsValidDetail(geom) / / return a Geometry detail causing a Geometry to be invalid / return NULL on any other case */ unsigned char *p_blob; int n_bytes; int len; gaiaGeomCollPtr geom; gaiaGeomCollPtr detail; unsigned char *p_result = NULL; void *data = sqlite3_user_data (context); int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (data != NULL) detail = gaiaIsValidDetail_r (data, geom); else detail = gaiaIsValidDetail (geom); if (detail == NULL) sqlite3_result_null (context); else { detail->Srid = geom->Srid; gaiaToSpatiaLiteBlobWkbEx (detail, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); } if (geom != NULL) gaiaFreeGeomColl (geom); if (detail != NULL) gaiaFreeGeomColl (detail); } static void fnct_Boundary (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Boundary(BLOB encoded geometry) / / returns the combinatorial boundary for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr boundary; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { if (gaiaIsEmpty (geo)) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) boundary = gaiaBoundary_r (data, geo); else boundary = gaiaBoundary (geo); if (!boundary) sqlite3_result_null (context); else { gaiaToSpatiaLiteBlobWkbEx (boundary, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (boundary); sqlite3_result_blob (context, p_result, len, free); } } } gaiaFreeGeomColl (geo); } static void fnct_IsClosed (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsClosed(BLOB encoded LINESTRING or MULTILINESTRING geometry) / / returns: / 1 if this LINESTRING is closed [or if this is a MULTILINESTRING and every LINESTRINGs are closed] / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_int (context, -1); else { sqlite3_result_int (context, gaiaIsClosedGeom (geo)); } gaiaFreeGeomColl (geo); } static void fnct_IsSimple (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsSimple(BLOB encoded GEOMETRY) / / returns: / 1 if this GEOMETRY is simple / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_int (context, -1); else { void *data = sqlite3_user_data (context); if (data != NULL) ret = gaiaIsSimple_r (data, geo); else ret = gaiaIsSimple (geo); if (ret < 0) sqlite3_result_int (context, -1); else sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo); } static void fnct_IsRing (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsRing(BLOB encoded LINESTRING geometry) / / returns: / 1 if this LINESTRING is a valid RING / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; gaiaGeomCollPtr geo = NULL; gaiaLinestringPtr line; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_int (context, -1); else { line = simpleLinestring (geo); if (line == NULL) sqlite3_result_int (context, -1); else { void *data = sqlite3_user_data (context); if (data != NULL) ret = gaiaIsRing_r (data, line); else ret = gaiaIsRing (line); sqlite3_result_int (context, ret); } } gaiaFreeGeomColl (geo); } static void fnct_IsValid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / IsValid(BLOB encoded GEOMETRY) / / returns: / 1 if this GEOMETRY is a valid one / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_int (context, -1); else { void *data = sqlite3_user_data (context); if (data != NULL) ret = gaiaIsValid_r (data, geo); else ret = gaiaIsValid (geo); if (ret < 0) sqlite3_result_int (context, -1); else sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo); } static void length_common (const void *p_cache, sqlite3_context * context, int argc, sqlite3_value ** argv, int is_perimeter) { /* common implementation supporting both ST_Length and ST_Perimeter */ unsigned char *p_blob; int n_bytes; double length = 0.0; int ret; int use_ellipsoid = -1; double a; double b; double rf; gaiaGeomCollPtr geo = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc == 2) { if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } use_ellipsoid = sqlite3_value_int (argv[1]); if (use_ellipsoid != 0) use_ellipsoid = 1; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { if (use_ellipsoid >= 0) { /* attempting to identify the corresponding ellipsoid */ if (getEllipsoidParams (sqlite, geo->Srid, &a, &b, &rf)) { double l; int ib; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr ring; if (use_ellipsoid) { /* measuring on the Ellipsoid */ if (!is_perimeter) { line = geo->FirstLinestring; while (line) { /* Linestrings */ l = gaiaGeodesicTotalLength (a, b, rf, line->DimensionModel, line-> Coords, line-> Points); if (l < 0.0) { length = -1.0; break; } length += l; line = line->Next; } } if (length >= 0) { if (is_perimeter) { /* Polygons */ polyg = geo->FirstPolygon; while (polyg) { /* exterior Ring */ ring = polyg->Exterior; l = gaiaGeodesicTotalLength (a, b, rf, ring-> DimensionModel, ring-> Coords, ring-> Points); if (l < 0.0) { length = -1.0; break; } length += l; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* interior Rings */ ring = polyg->Interiors + ib; l = gaiaGeodesicTotalLength (a, b, rf, ring->DimensionModel, ring->Coords, ring->Points); if (l < 0.0) { length = -1.0; break; } length += l; } if (length < 0.0) break; polyg = polyg->Next; } } } } else { /* measuring on the Great Circle */ if (!is_perimeter) { line = geo->FirstLinestring; while (line) { /* Linestrings */ length += gaiaGreatCircleTotalLength (a, b, line->DimensionModel, line->Coords, line->Points); line = line->Next; } } if (length >= 0) { if (is_perimeter) { /* Polygons */ polyg = geo->FirstPolygon; while (polyg) { /* exterior Ring */ ring = polyg->Exterior; length += gaiaGreatCircleTotalLength (a, b, ring->DimensionModel, ring->Coords, ring->Points); for (ib = 0; ib < polyg->NumInteriors; ib++) { /* interior Rings */ ring = polyg->Interiors + ib; length += gaiaGreatCircleTotalLength (a, b, ring->DimensionModel, ring->Coords, ring->Points); } polyg = polyg->Next; } } } } if (length < 0.0) { /* invalid distance */ sqlite3_result_null (context); } else sqlite3_result_double (context, length); } else sqlite3_result_null (context); goto stop; } else if (p_cache != NULL) ret = gaiaGeomCollLengthOrPerimeter_r (p_cache, geo, is_perimeter, &length); else ret = gaiaGeomCollLengthOrPerimeter (geo, is_perimeter, &length); if (!ret) sqlite3_result_null (context); else sqlite3_result_double (context, length); } stop: gaiaFreeGeomColl (geo); } static void fnct_Length (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_Length(BLOB encoded GEOMETRYCOLLECTION) / ST_Length(BLOB encoded GEOMETRYCOLLECTION, Boolean use_ellipsoid) / / returns the total length for current geometry / or NULL if any error is encountered / / Please note: starting since 4.0.0 this function will ignore / any Polygon (only Linestrings will be considered) / */ void *data = sqlite3_user_data (context); length_common (data, context, argc, argv, 0); } static void fnct_Perimeter (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_Perimeter(BLOB encoded GEOMETRYCOLLECTION) / ST_Perimeter(BLOB encoded GEOMETRYCOLLECTION, Boolean use_ellipsoid) / / returns the total perimeter length for current geometry / or NULL if any error is encountered / / Please note: starting since 4.0.0 this function will ignore / any Linestring (only Polygons will be considered) / */ void *data = sqlite3_user_data (context); length_common (data, context, argc, argv, 1); } static void fnct_Area (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Area(BLOB encoded GEOMETRYCOLLECTION) / / returns the total area for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double area = 0.0; int ret; int use_ellipsoid = -1; #ifdef ENABLE_LWGEOM /* only if LWGEOM is enabled */ double a; double b; double rf; sqlite3 *sqlite = sqlite3_context_db_handle (context); #endif /* end LWGEOM conditional */ gaiaGeomCollPtr geo = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc == 2) { if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } use_ellipsoid = sqlite3_value_int (argv[1]); if (use_ellipsoid != 0) use_ellipsoid = 1; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { if (use_ellipsoid >= 0) { #ifdef ENABLE_LWGEOM /* only if LWGEOM is enabled */ /* attempting to identify the corresponding ellipsoid */ if (getEllipsoidParams (sqlite, geo->Srid, &a, &b, &rf)) ret = gaiaGeodesicArea (geo, a, b, use_ellipsoid, &area); else ret = 0; #else ret = 0; #endif /* end LWGEOM conditional */ } else { void *data = sqlite3_user_data (context); if (data != NULL) ret = gaiaGeomCollArea_r (data, geo, &area); else ret = gaiaGeomCollArea (geo, &area); } if (!ret) sqlite3_result_null (context); else sqlite3_result_double (context, area); } gaiaFreeGeomColl (geo); } static void fnct_Centroid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Centroid(BLOBencoded POLYGON or MULTIPOLYGON geometry) / / returns a POINT representing the centroid for current POLYGON / MULTIPOLYGON geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; int ret; double x; double y; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { if (gaiaIsEmpty (geo)) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) ret = gaiaGeomCollCentroid_r (data, geo, &x, &y); else ret = gaiaGeomCollCentroid (geo, &x, &y); if (!ret) sqlite3_result_null (context); else { result = gaiaAllocGeomColl (); result->Srid = geo->Srid; gaiaAddPointToGeomColl (result, x, y); gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (result); sqlite3_result_blob (context, p_result, len, free); } } } gaiaFreeGeomColl (geo); } static void fnct_PointOnSurface (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / PointOnSurface(BLOBencoded POLYGON or MULTIPOLYGON geometry) / / returns a POINT guaranteed to lie on the Surface / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; double x; double y; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); int posret; if (data != NULL) posret = gaiaGetPointOnSurface_r (data, geo, &x, &y); else posret = gaiaGetPointOnSurface (geo, &x, &y); if (!posret) sqlite3_result_null (context); else { result = gaiaAllocGeomColl (); gaiaAddPointToGeomColl (result, x, y); result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (result); sqlite3_result_blob (context, p_result, len, free); } } gaiaFreeGeomColl (geo); } static void fnct_Simplify (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Simplify(BLOBencoded geometry, tolerance) / / returns a new geometry that is a caricature of the original one received, but simplified using the Douglas-Peuker algorihtm / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int int_value; double tolerance; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) tolerance = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); tolerance = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaGeomCollSimplify_r (data, geo, tolerance); else result = gaiaGeomCollSimplify (geo, tolerance); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_SimplifyPreserveTopology (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SimplifyPreserveTopology(BLOBencoded geometry, tolerance) / / returns a new geometry that is a caricature of the original one received, but simplified using the Douglas-Peuker algorihtm [preserving topology] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int int_value; double tolerance; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) tolerance = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); tolerance = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaGeomCollSimplifyPreserveTopology_r (data, geo, tolerance); else result = gaiaGeomCollSimplifyPreserveTopology (geo, tolerance); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_ConvexHull (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ConvexHull(BLOBencoded geometry) / / returns a new geometry representing the CONVEX HULL for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaConvexHull_r (data, geo); else result = gaiaConvexHull (geo); if (!result) sqlite3_result_null (context); else { gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_Buffer (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Buffer(BLOBencoded geometry, radius) / Buffer(BLOBencoded geometry, radius, quadrantsegments) / / returns a new geometry representing the BUFFER for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; double radius; int int_value; int quadrantsegments = 30; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) radius = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); radius = int_value; } else { sqlite3_result_null (context); return; } if (argc == 3) { if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } quadrantsegments = sqlite3_value_int (argv[2]); if (quadrantsegments <= 0) quadrantsegments = 1; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaGeomCollBuffer_r (data, geo, radius, quadrantsegments); else result = gaiaGeomCollBuffer (geo, radius, quadrantsegments); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_Intersection (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Intersection(BLOBencoded geom1, BLOBencoded geom2) / / returns a new geometry representing the INTERSECTION of both geometries / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaGeometryIntersection_r (data, geo1, geo2); else result = gaiaGeometryIntersection (geo1, geo2); if (!result) sqlite3_result_null (context); else if (gaiaIsEmpty (result)) { gaiaFreeGeomColl (result); sqlite3_result_null (context); } else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static int gaia_union_polygs (gaiaGeomCollPtr geom) { /* testing if this geometry simply contains Polygons */ int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts || lns) return 0; if (!pgs) return 0; return 1; } static void fnct_Union_step (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Union(BLOBencoded geom) / / aggregate function - STEP / */ struct gaia_geom_chain *chain; struct gaia_geom_chain_item *item; unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; struct gaia_geom_chain **p; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geom) return; p = sqlite3_aggregate_context (context, sizeof (struct gaia_geom_chain **)); if (!(*p)) { /* this is the first row */ chain = malloc (sizeof (struct gaia_geom_chain)); *p = chain; item = malloc (sizeof (struct gaia_geom_chain_item)); item->geom = geom; item->next = NULL; chain->all_polygs = gaia_union_polygs (geom); chain->first = item; chain->last = item; } else { /* subsequent rows */ chain = *p; item = malloc (sizeof (struct gaia_geom_chain_item)); item->geom = geom; item->next = NULL; if (!gaia_union_polygs (geom)) chain->all_polygs = 0; chain->last->next = item; chain->last = item; } } static void gaia_free_geom_chain (struct gaia_geom_chain *chain) { struct gaia_geom_chain_item *p = chain->first; struct gaia_geom_chain_item *pn; while (p) { pn = p->next; gaiaFreeGeomColl (p->geom); free (p); p = pn; } free (chain); } static void fnct_Union_final (sqlite3_context * context) { /* SQL function: / Union(BLOBencoded geom) / / aggregate function - FINAL / */ gaiaGeomCollPtr tmp; struct gaia_geom_chain *chain; struct gaia_geom_chain_item *item; gaiaGeomCollPtr aggregate = NULL; gaiaGeomCollPtr result; void *data = sqlite3_user_data (context); struct gaia_geom_chain **p = sqlite3_aggregate_context (context, 0); int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (!p) { sqlite3_result_null (context); return; } chain = *p; /* applying UnaryUnion */ item = chain->first; while (item) { gaiaGeomCollPtr geom = item->geom; if (item == chain->first) { /* initializing the aggregate geometry */ aggregate = geom; item->geom = NULL; item = item->next; continue; } if (data != NULL) tmp = gaiaMergeGeometries_r (data, aggregate, geom); else tmp = gaiaMergeGeometries (aggregate, geom); gaiaFreeGeomColl (aggregate); gaiaFreeGeomColl (geom); item->geom = NULL; aggregate = tmp; item = item->next; } if (data != NULL) result = gaiaUnaryUnion_r (data, aggregate); else result = gaiaUnaryUnion (aggregate); gaiaFreeGeomColl (aggregate); gaia_free_geom_chain (chain); if (result == NULL) sqlite3_result_null (context); else if (gaiaIsEmpty (result)) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); } gaiaFreeGeomColl (result); } static void fnct_Union (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Union(BLOBencoded geom1, BLOBencoded geom2) / / returns a new geometry representing the UNION of both geometries / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaGeometryUnion_r (data, geo1, geo2); else result = gaiaGeometryUnion (geo1, geo2); if (!result) sqlite3_result_null (context); else if (gaiaIsEmpty (result)) { gaiaFreeGeomColl (result); sqlite3_result_null (context); } else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Difference (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Difference(BLOBencoded geom1, BLOBencoded geom2) / / returns a new geometry representing the DIFFERENCE of both geometries / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaGeometryDifference_r (data, geo1, geo2); else result = gaiaGeometryDifference (geo1, geo2); if (!result) sqlite3_result_null (context); else if (gaiaIsEmpty (result)) { gaiaFreeGeomColl (result); sqlite3_result_null (context); } else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_SymDifference (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SymDifference(BLOBencoded geom1, BLOBencoded geom2) / / returns a new geometry representing the SYMMETRIC DIFFERENCE of both geometries / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaGeometrySymDifference_r (data, geo1, geo2); else result = gaiaGeometrySymDifference (geo1, geo2); if (!result) sqlite3_result_null (context); else if (gaiaIsEmpty (result)) { gaiaFreeGeomColl (result); sqlite3_result_null (context); } else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Equals (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Equals(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if the two geometries are "spatially equal" / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { void *data = sqlite3_user_data (context); if (data != NULL) ret = gaiaGeomCollEquals_r (data, geo1, geo2); else ret = gaiaGeomCollEquals (geo1, geo2); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Intersects (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Intersects(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if the two geometries do "spatially intersects" / 0 otherwise / or -1 if any error is encountered */ unsigned char *blob1; unsigned char *blob2; int bytes1; int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); bytes1 = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (blob1, bytes1, gpkg_mode, gpkg_amphibious); blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); bytes2 = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (blob2, bytes2, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { void *data = sqlite3_user_data (context); if (data != NULL) ret = gaiaGeomCollPreparedIntersects (data, geo1, blob1, bytes1, geo2, blob2, bytes2); else ret = gaiaGeomCollIntersects (geo1, geo2); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Disjoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Disjoint(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if the two geometries are "spatially disjoint" / 0 otherwise / or -1 if any error is encountered */ unsigned char *blob1; unsigned char *blob2; int bytes1; int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); bytes1 = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (blob1, bytes1, gpkg_mode, gpkg_amphibious); blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); bytes2 = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (blob2, bytes2, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { void *data = sqlite3_user_data (context); if (data != NULL) ret = gaiaGeomCollPreparedDisjoint (data, geo1, blob1, bytes1, geo2, blob2, bytes2); else ret = gaiaGeomCollDisjoint (geo1, geo2); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Overlaps (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Overlaps(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if the two geometries do "spatially overlaps" / 0 otherwise / or -1 if any error is encountered */ unsigned char *blob1; unsigned char *blob2; int bytes1; int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); bytes1 = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (blob1, bytes1, gpkg_mode, gpkg_amphibious); blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); bytes2 = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (blob2, bytes2, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { void *data = sqlite3_user_data (context); if (data != NULL) ret = gaiaGeomCollPreparedOverlaps (data, geo1, blob1, bytes1, geo2, blob2, bytes2); else ret = gaiaGeomCollOverlaps (geo1, geo2); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Crosses (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Crosses(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if the two geometries do "spatially crosses" / 0 otherwise / or -1 if any error is encountered */ unsigned char *blob1; unsigned char *blob2; int bytes1; int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); bytes1 = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (blob1, bytes1, gpkg_mode, gpkg_amphibious); blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); bytes2 = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (blob2, bytes2, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { void *data = sqlite3_user_data (context); if (data != NULL) ret = gaiaGeomCollPreparedCrosses (data, geo1, blob1, bytes1, geo2, blob2, bytes2); else ret = gaiaGeomCollCrosses (geo1, geo2); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Touches (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Touches(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if the two geometries do "spatially touches" / 0 otherwise / or -1 if any error is encountered */ unsigned char *blob1; unsigned char *blob2; int bytes1; int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); bytes1 = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (blob1, bytes1, gpkg_mode, gpkg_amphibious); blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); bytes2 = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (blob2, bytes2, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { void *data = sqlite3_user_data (context); if (data != NULL) ret = gaiaGeomCollPreparedTouches (data, geo1, blob1, bytes1, geo2, blob2, bytes2); else ret = gaiaGeomCollTouches (geo1, geo2); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Within (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Within(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if GEOM-1 is completely contained within GEOM-2 / 0 otherwise / or -1 if any error is encountered */ unsigned char *blob1; unsigned char *blob2; int bytes1; int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); bytes1 = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (blob1, bytes1, gpkg_mode, gpkg_amphibious); blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); bytes2 = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (blob2, bytes2, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { void *data = sqlite3_user_data (context); if (data != NULL) ret = gaiaGeomCollPreparedWithin (data, geo1, blob1, bytes1, geo2, blob2, bytes2); else ret = gaiaGeomCollWithin (geo1, geo2); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Contains (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Contains(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if GEOM-1 completely contains GEOM-2 / 0 otherwise / or -1 if any error is encountered */ unsigned char *blob1; unsigned char *blob2; int bytes1; int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); bytes1 = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (blob1, bytes1, gpkg_mode, gpkg_amphibious); blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); bytes2 = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (blob2, bytes2, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { void *data = sqlite3_user_data (context); if (data != NULL) ret = gaiaGeomCollPreparedContains (data, geo1, blob1, bytes1, geo2, blob2, bytes2); else ret = gaiaGeomCollContains (geo1, geo2); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Relate (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Relate(BLOBencoded geom1, BLOBencoded geom2, string pattern) / / returns: / 1 if GEOM-1 and GEOM-2 have a spatial relationship as specified by the patternMatrix / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; const unsigned char *pattern; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); pattern = sqlite3_value_text (argv[2]); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { void *data = sqlite3_user_data (context); if (data != NULL) ret = gaiaGeomCollRelate_r (data, geo1, geo2, (char *) pattern); else ret = gaiaGeomCollRelate (geo1, geo2, (char *) pattern); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Distance (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Distance(BLOBencoded geom1, BLOBencoded geom2) / Distance(BLOBencoded geom1, BLOBencoded geom2, Boolen use_ellipsoid) / / returns the distance between GEOM-1 and GEOM-2 */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; double dist; int use_ellipsoid = -1; double a; double b; double rf; int ret; sqlite3 *sqlite = sqlite3_context_db_handle (context); void *data = sqlite3_user_data (context); int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc == 3) { if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } use_ellipsoid = sqlite3_value_int (argv[2]); if (use_ellipsoid != 0) use_ellipsoid = 1; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_null (context); else { if (use_ellipsoid >= 0) { /* attempting to identify the corresponding ellipsoid */ if (getEllipsoidParams (sqlite, geo1->Srid, &a, &b, &rf)) { gaiaGeomCollPtr shortest; if (data != NULL) shortest = gaiaShortestLine_r (data, geo1, geo2); else shortest = gaiaShortestLine (geo1, geo2); if (shortest == NULL) sqlite3_result_null (context); else if (shortest->FirstLinestring == NULL) { gaiaFreeGeomColl (shortest); sqlite3_result_null (context); } else { /* computes the metric distance */ double x0; double y0; double x1; double y1; double z; double m; gaiaLinestringPtr ln = shortest->FirstLinestring; dist = -1.0; if (ln->Points == 2) { if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, 0, &x0, &y0, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, 0, &x0, &y0, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, 0, &x0, &y0, &z, &m); } else { gaiaGetPoint (ln->Coords, 0, &x0, &y0); } if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, 1, &x1, &y1, &z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, 1, &x1, &y1, &m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, 1, &x1, &y1, &z, &m); } else { gaiaGetPoint (ln->Coords, 1, &x1, &y1); } if (use_ellipsoid) dist = gaiaGeodesicDistance (a, b, rf, y0, x0, y1, x1); else { a = 6378137.0; rf = 298.257223563; b = (a * (1.0 - (1.0 / rf))); dist = gaiaGreatCircleDistance (a, b, y0, x0, y1, x1); } if (dist < 0.0) { /* invalid distance */ sqlite3_result_null (context); } else sqlite3_result_double (context, dist); } else sqlite3_result_null (context); gaiaFreeGeomColl (shortest); } } else sqlite3_result_null (context); goto stop; } else { if (data != NULL) ret = gaiaGeomCollDistance_r (data, geo1, geo2, &dist); else ret = gaiaGeomCollDistance (geo1, geo2, &dist); if (!ret) sqlite3_result_null (context); else sqlite3_result_double (context, dist); } } stop: gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_PtDistWithin (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / PtDistWithin(BLOBencoded geom1, BLOBencoded geom2, double dist / [, boolen use_spheroid]) / / returns TRUE if the distance between GEOM-1 and GEOM-2 / is less or equal to dist / / - if both geom1 and geom2 are in the 4326 (WGS84) SRID, / (and does actually contains a single POINT each one) / dist is assumed to be measured in Meters / - in this case the optional arg use_spheroid is / checked to determine if geodesic distance has to be / computed on the sphere (quickest) or on the spheroid / default: use_spheroid = FALSE / / in any other case the "plain" distance is evaluated */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; double ref_dist; int use_spheroid = 0; double x0 = 0.0; double y0 = 0.0; double x1 = 0.0; double y1 = 0.0; int pt0 = 0; int ln0 = 0; int pg0 = 0; int pt1 = 0; int ln1 = 0; int pg1 = 0; double dist; double a; double b; double rf; int ret; void *data = sqlite3_user_data (context); int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER || sqlite3_value_type (argv[2]) == SQLITE_FLOAT) ; else { sqlite3_result_null (context); return; } if (argc == 4) { /* optional use_spheroid arg */ if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int dst = sqlite3_value_int (argv[2]); ref_dist = dst; } else ref_dist = sqlite3_value_double (argv[2]); if (argc == 4) use_spheroid = sqlite3_value_int (argv[3]); if (!geo1 || !geo2) sqlite3_result_null (context); else { if (geo1->Srid == 4326 && geo2->Srid == 4326) { /* checking for single points */ pt = geo1->FirstPoint; while (pt) { x0 = pt->X; y0 = pt->Y; pt0++; pt = pt->Next; } ln = geo1->FirstLinestring; while (ln) { ln0++; ln = ln->Next; } pg = geo1->FirstPolygon; while (pg) { pg0++; pg = pg->Next; } pt = geo2->FirstPoint; while (pt) { x1 = pt->X; y1 = pt->Y; pt1++; pt = pt->Next; } ln = geo2->FirstLinestring; while (ln) { ln1++; ln = ln->Next; } pg = geo2->FirstPolygon; while (pg) { pg1++; pg = pg->Next; } if (pt0 == 1 && pt1 == 1 && ln0 == 0 && ln1 == 0 && pg0 == 0 && pg1 == 0) { /* using geodesic distance */ a = 6378137.0; rf = 298.257223563; b = (a * (1.0 - (1.0 / rf))); if (use_spheroid) { dist = gaiaGeodesicDistance (a, b, rf, y0, x0, y1, x1); if (dist <= ref_dist) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } else { dist = gaiaGreatCircleDistance (a, b, y0, x0, y1, x1); if (dist <= ref_dist) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } goto stop; } } /* defaulting to flat distance */ if (data != NULL) ret = gaiaGeomCollDistance_r (data, geo1, geo2, &dist); else ret = gaiaGeomCollDistance (geo1, geo2, &dist); if (!ret) sqlite3_result_null (context); if (dist <= ref_dist) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } stop: gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } SPATIALITE_PRIVATE void geos_error (const char *fmt, ...) { /* reporting some GEOS error */ va_list ap; char *msg; va_start (ap, fmt); msg = sqlite3_vmprintf (fmt, ap); va_end (ap); if (msg) { spatialite_e ("GEOS error: %s\n", msg); gaiaSetGeosErrorMsg (msg); sqlite3_free (msg); } else gaiaSetGeosErrorMsg (NULL); } SPATIALITE_PRIVATE void geos_warning (const char *fmt, ...) { /* reporting some GEOS warning */ va_list ap; char *msg; va_start (ap, fmt); msg = sqlite3_vmprintf (fmt, ap); va_end (ap); if (msg) { spatialite_e ("GEOS warning: %s\n", msg); gaiaSetGeosWarningMsg (msg); sqlite3_free (msg); } else gaiaSetGeosWarningMsg (NULL); } static void fnct_aux_polygonize (sqlite3_context * context, gaiaGeomCollPtr geom_org, int force_multipolygon, int allow_multipolygon) { /* a common function performing any kind of polygonization op */ gaiaGeomCollPtr geom_new = NULL; int len; unsigned char *p_result = NULL; gaiaPolygonPtr pg; int pgs = 0; void *data = sqlite3_user_data (context); int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (!geom_org) goto invalid; if (data != NULL) geom_new = gaiaPolygonize_r (data, geom_org, force_multipolygon); else geom_new = gaiaPolygonize (geom_org, force_multipolygon); if (!geom_new) goto invalid; gaiaFreeGeomColl (geom_org); pg = geom_new->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pgs > 1 && allow_multipolygon == 0) { /* invalid: a POLYGON is expected !!! */ gaiaFreeGeomColl (geom_new); sqlite3_result_null (context); return; } gaiaToSpatiaLiteBlobWkbEx (geom_new, &p_result, &len, gpkg_mode); gaiaFreeGeomColl (geom_new); sqlite3_result_blob (context, p_result, len, free); return; invalid: if (geom_org) gaiaFreeGeomColl (geom_org); sqlite3_result_null (context); } /* / the following functions performs initial argument checking, / and then readdressing the request to fnct_aux_polygonize() / for actual processing */ static void fnct_BdPolyFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BdPolyFromText(WKT encoded MULTILINESTRING) / / returns the current geometry [POLYGON] by parsing a WKT encoded MULTILINESTRING / or NULL if any error is encountered / */ const unsigned char *text; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseWkt (text, -1); if (geo == NULL) { sqlite3_result_null (context); return; } if (geo->DeclaredType != GAIA_MULTILINESTRING) { gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } geo->Srid = 0; fnct_aux_polygonize (context, geo, 0, 0); return; } static void fnct_BdPolyFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BdPolyFromText(WKT encoded MULTILINESTRING, SRID) / / returns the current geometry [POLYGON] by parsing a WKT encoded MULTILINESTRING / or NULL if any error is encountered / */ const unsigned char *text; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseWkt (text, -1); if (geo == NULL) { sqlite3_result_null (context); return; } if (geo->DeclaredType != GAIA_MULTILINESTRING) { gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } geo->Srid = sqlite3_value_int (argv[1]); fnct_aux_polygonize (context, geo, 0, 0); return; } static void fnct_BdMPolyFromText1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BdMPolyFromText(WKT encoded MULTILINESTRING) / / returns the current geometry [MULTIPOLYGON] by parsing a WKT encoded MULTILINESTRING / or NULL if any error is encountered / */ const unsigned char *text; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseWkt (text, -1); if (geo == NULL) { sqlite3_result_null (context); return; } if (geo->DeclaredType != GAIA_MULTILINESTRING) { gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } geo->Srid = 0; fnct_aux_polygonize (context, geo, 1, 1); return; } static void fnct_BdMPolyFromText2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BdMPolyFromText(WKT encoded MULTILINESTRING, SRID) / / returns the current geometry [MULTIPOLYGON] by parsing a WKT encoded MULTILINESTRING / or NULL if any error is encountered / */ const unsigned char *text; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } text = sqlite3_value_text (argv[0]); geo = gaiaParseWkt (text, -1); if (geo == NULL) { sqlite3_result_null (context); return; } if (geo->DeclaredType != GAIA_MULTILINESTRING) { gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } geo->Srid = sqlite3_value_int (argv[1]); fnct_aux_polygonize (context, geo, 1, 1); return; } static void fnct_BdPolyFromWKB1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BdPolyFromWKB(WKB encoded MULTILINESTRING) / / returns the current geometry [POLYGON] by parsing a WKB encoded MULTILINESTRING / or NULL if any error is encountered / */ int n_bytes; const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!check_wkb (wkb, n_bytes, -1)) return; geo = gaiaFromWkb (wkb, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } if (geo->DeclaredType != GAIA_MULTILINESTRING) { gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } geo->Srid = 0; fnct_aux_polygonize (context, geo, 0, 0); return; } static void fnct_BdPolyFromWKB2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BdPolyFromWKB(WKB encoded MULTILINESTRING) / / returns the current geometry [POLYGON] by parsing a WKB encoded MULTILINESTRING / or NULL if any error is encountered / */ int n_bytes; const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!check_wkb (wkb, n_bytes, -1)) return; geo = gaiaFromWkb (wkb, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } if (geo->DeclaredType != GAIA_MULTILINESTRING) { gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } geo->Srid = sqlite3_value_int (argv[1]); fnct_aux_polygonize (context, geo, 0, 0); return; } static void fnct_BdMPolyFromWKB1 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BdMPolyFromWKB(WKB encoded MULTILINESTRING) / / returns the current geometry [MULTIPOLYGON] by parsing a WKB encoded MULTILINESTRING / or NULL if any error is encountered / */ int n_bytes; const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!check_wkb (wkb, n_bytes, -1)) return; geo = gaiaFromWkb (wkb, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } if (geo->DeclaredType != GAIA_MULTILINESTRING) { gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } geo->Srid = 0; fnct_aux_polygonize (context, geo, 1, 1); return; } static void fnct_BdMPolyFromWKB2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BdMPolyFromWKB(WKB encoded MULTILINESTRING) / / returns the current geometry [MULTIPOLYGON] by parsing a WKB encoded MULTILINESTRING / or NULL if any error is encountered / */ int n_bytes; const unsigned char *wkb; gaiaGeomCollPtr geo = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } wkb = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (!check_wkb (wkb, n_bytes, -1)) return; geo = gaiaFromWkb (wkb, n_bytes); if (geo == NULL) { sqlite3_result_null (context); return; } if (geo->DeclaredType != GAIA_MULTILINESTRING) { gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } geo->Srid = sqlite3_value_int (argv[1]); fnct_aux_polygonize (context, geo, 1, 1); return; } static int check_topo_table (sqlite3 * sqlite, const char *table, int is_view) { /* checking if some Topology-related table/view already exists */ int exists = 0; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sql_statement = sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = '%s'" "AND Upper(name) = Upper(%Q)", (!is_view) ? "table" : "view", table); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) exists = 1; sqlite3_free_table (results); return exists; } static int create_topo_nodes (sqlite3 * sqlite, const char *table, int srid, int dims) { /* creating the topo_nodes table */ char *sql_statement; char *sqltable; char *idx_name; char *xidx_name; int ret; char *err_msg = NULL; sqltable = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" "node_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" "node_code TEXT)", sqltable); free (sqltable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql_statement = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'Geometry', %d, 'POINT', '%s', 1)", table, srid, (dims == GAIA_XY_Z) ? "XYZ" : "XY"); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("AddGeometryColumn '%s'.'Geometry' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql_statement = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'Geometry')", table); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CreateSpatialIndex '%s'.'Geometry' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sqltable = gaiaDoubleQuotedSql (table); idx_name = sqlite3_mprintf ("idx_%s_code", table); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); sql_statement = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (node_code)", xidx_name, sqltable); free (sqltable); free (xidx_name); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("Create Index '%s'('node_code') error: %s\n", sqltable, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_topo_edges (sqlite3 * sqlite, const char *table, int srid, int dims) { /* creating the topo_edges table */ char *sql_statement; char *sqltable; char *idx_name; char *xidx_name; int ret; char *err_msg = NULL; sqltable = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" "edge_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" "node_from_code TEXT,\n" "node_to_code TEXT,\n" "edge_code TEXT)", sqltable); free (sqltable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql_statement = sqlite3_mprintf ("SELECT AddGeometryColumn(%Q, 'Geometry', %d, 'LINESTRING', '%s', 1)", table, srid, (dims == GAIA_XY_Z) ? "XYZ" : "XY"); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("AddGeometryColumn '%s'.'Geometry' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sql_statement = sqlite3_mprintf ("SELECT CreateSpatialIndex(%Q, 'Geometry')", table); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CreateSpatialIndex '%s'.'Geometry' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sqltable = gaiaDoubleQuotedSql (table); idx_name = sqlite3_mprintf ("idx_%s_code", table); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); sql_statement = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (edge_code)", xidx_name, sqltable); free (sqltable); free (xidx_name); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("Create Index '%s'('edge_code') error: %s\n", sqltable, err_msg); sqlite3_free (err_msg); return 0; } sqltable = gaiaDoubleQuotedSql (table); idx_name = sqlite3_mprintf ("idx_%s_from", table); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); sql_statement = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (node_from_code)", xidx_name, sqltable); free (sqltable); free (xidx_name); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("Create Index '%s'('node_from_code') error: %s\n", sqltable, err_msg); sqlite3_free (err_msg); return 0; } sqltable = gaiaDoubleQuotedSql (table); idx_name = sqlite3_mprintf ("idx_%s_to", table); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); sql_statement = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (node_to_code)", xidx_name, sqltable); free (sqltable); free (xidx_name); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("Create Index '%s'('node_to_code') error: %s\n", sqltable, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_topo_faces (sqlite3 * sqlite, const char *table) { /* creating the topo_faces table */ char *sql_statement; char *sqltable; char *idx_name; char *xidx_name; int ret; char *err_msg = NULL; sqltable = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" "face_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" "face_code TEXT)", sqltable); free (sqltable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sqltable = gaiaDoubleQuotedSql (table); idx_name = sqlite3_mprintf ("idx_%s_code", table); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); sql_statement = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (face_code)", xidx_name, sqltable); free (sqltable); free (xidx_name); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("Create Index '%s'('face_code') error: %s\n", sqltable, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_topo_faces_edges (sqlite3 * sqlite, const char *table, const char *table2) { /* creating the topo_faces_edges table */ char *sql_statement; char *sqltable; char *sqltable2; char *idx_name; char *xidx_name; int ret; char *err_msg = NULL; sqltable = gaiaDoubleQuotedSql (table); sqltable2 = gaiaDoubleQuotedSql (table2); sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" "face_id INTEGER NOT NULL,\n" "edge_code TEXT NOT NULL,\n" "orientation TEXT,\n" "CONSTRAINT pk_faces_edges PRIMARY KEY " "(face_id, edge_code),\n" "CONSTRAINT fk_faces_edges FOREIGN KEY " "(face_id) REFERENCES \"%s\" (face_id))\n", sqltable, sqltable2); free (sqltable); free (sqltable2); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sqltable = gaiaDoubleQuotedSql (table); idx_name = sqlite3_mprintf ("idx_%s_edge", table); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); sql_statement = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (edge_code)", xidx_name, sqltable); free (sqltable); free (xidx_name); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("Create Index '%s'('edge_code') error: %s\n", sqltable, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_topo_curves (sqlite3 * sqlite, const char *table) { /* creating the topo_curves table */ char *sql_statement; char *sqltable; char *idx_name; char *xidx_name; int ret; char *err_msg = NULL; sqltable = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" "curve_id INTEGER NOT NULL,\n" "edge_code TEXT NOT NULL,\n" "orientation TEXT,\n" "CONSTRAINT pk_curves PRIMARY KEY " "(curve_id, edge_code))\n", sqltable); free (sqltable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sqltable = gaiaDoubleQuotedSql (table); idx_name = sqlite3_mprintf ("idx_%s_edge", table); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); sql_statement = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (edge_code)", xidx_name, sqltable); free (sqltable); free (xidx_name); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("Create Index '%s'('edge_code') error: %s\n", sqltable, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_topo_surfaces (sqlite3 * sqlite, const char *table) { /* creating the topo_surfaces table */ char *sql_statement; char *sqltable; char *idx_name; char *xidx_name; int ret; char *err_msg = NULL; sqltable = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (\n" "surface_id INTEGER NOT NULL,\n" "face_code TEXT NOT NULL,\n" "orientation TEXT,\n" "CONSTRAINT pk_surfaces PRIMARY KEY " "(surface_id, face_code))", sqltable); free (sqltable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE '%s' error: %s\n", table, err_msg); sqlite3_free (err_msg); return 0; } sqltable = gaiaDoubleQuotedSql (table); idx_name = sqlite3_mprintf ("idx_%s_face", table); xidx_name = gaiaDoubleQuotedSql (idx_name); sqlite3_free (idx_name); sql_statement = sqlite3_mprintf ("CREATE INDEX \"%s\" ON \"%s\" (face_code)", xidx_name, sqltable); free (sqltable); free (xidx_name); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("Create Index '%s'('face_code') error: %s\n", sqltable, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_check_node_codes (sqlite3 * sqlite, const char *view, const char *table_nodes) { /* creating the check node codes VIEW */ char *sql_statement; char *sqltable; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sqltable = gaiaDoubleQuotedSql (table_nodes); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT node_code AS node_code, Count(node_id) AS count\n" "FROM \"%s\"\nGROUP BY node_code\nHAVING count > 1\n", sqlview, sqltable); free (sqlview); free (sqltable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_check_node_geoms (sqlite3 * sqlite, const char *view, const char *table_nodes) { /* creating the check node geoms VIEW */ char *sql_statement; char *sqltable; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sqltable = gaiaDoubleQuotedSql (table_nodes); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT n1.node_id AS node1_id, n1.node_code AS node1_code, " "n2.node_id AS node2_id, n2.node_code AS node2_code\n" "FROM \"%s\" AS n1\nJOIN \"%s\" AS n2 ON (\n" " n1.node_id <> n2.node_id AND\n" " ST_Equals(n1.Geometry, n2.Geometry) = 1 AND\n" " n2.node_id IN (\n SELECT ROWID FROM SpatialIndex\n" " WHERE f_table_name = %Q AND\n search_frame = n1.Geometry))\n", sqlview, sqltable, sqltable, table_nodes); free (sqlview); free (sqltable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_check_edge_codes (sqlite3 * sqlite, const char *view, const char *table_edges) { /* creating the check edge codes VIEW */ char *sql_statement; char *sqltable; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sqltable = gaiaDoubleQuotedSql (table_edges); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT edge_code AS edge_code, Count(edge_id) AS count\n" "FROM \"%s\"\nGROUP BY edge_code\nHAVING count > 1\n", sqlview, sqltable); free (sqlview); free (sqltable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_check_edge_geoms (sqlite3 * sqlite, const char *view, const char *table_edges) { /* creating the check edge geoms VIEW */ char *sql_statement; char *sqltable; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sqltable = gaiaDoubleQuotedSql (table_edges); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT e1.edge_id AS edge1_id, e1.edge_code AS edge1_code, " "e2.edge_id AS edge2_id, e2.edge_code AS edge2_code\n" "FROM \"%s\" AS e1\nJOIN \"%s\" AS e2 ON (\n e1.edge_id <> e2.edge_id AND\n" "NOT (e1.node_from_code = e2.node_from_code " "AND e1.node_to_code = e2.node_to_code) AND\n" " ST_Crosses(e1.Geometry, e2.Geometry) = 1 AND\n" " e2.edge_id IN (\n" " SELECT ROWID FROM SpatialIndex\n" " WHERE f_table_name = %Q AND\n search_frame = e1.Geometry))\n", sqlview, sqltable, sqltable, table_edges); free (sqlview); free (sqltable); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_check_edge_node_geoms (sqlite3 * sqlite, const char *view, const char *table_edges, const char *table_nodes) { /* creating the check edge/node geoms VIEW */ char *sql_statement; char *sql_edges; char *sql_nodes; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sql_edges = gaiaDoubleQuotedSql (table_edges); sql_nodes = gaiaDoubleQuotedSql (table_nodes); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT e.edge_id AS edge_id, n.node_id AS node_id\n" "FROM \"%s\" AS e,\n\"%s\" AS n\n" "WHERE ST_Intersects(e.Geometry, n.Geometry)\n" " AND ST_Equals(ST_StartPoint(e.Geometry), n.Geometry) = 0\n" " AND ST_Equals(ST_EndPoint(e.Geometry), n.Geometry) = 0\n" " AND n.ROWID IN (\n SELECT ROWID FROM SpatialIndex\n" " WHERE f_table_name = %Q\n AND search_frame = e.Geometry);", sqlview, sql_edges, sql_nodes, table_nodes); free (sqlview); free (sql_nodes); free (sql_edges); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_check_face_codes (sqlite3 * sqlite, const char *view, const char *table_faces) { /* creating the check face codes VIEW */ char *sql_statement; char *sqltable; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sqltable = gaiaDoubleQuotedSql (table_faces); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT face_code AS face_code, Count(face_id) AS count\n" "FROM \"%s\"\nGROUP BY face_code\nHAVING count > 1\n", sqlview, sqltable); free (sqltable); free (sqlview); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_faces_resolved (sqlite3 * sqlite, const char *view, const char *faces, const char *faces_edges, const char *edges) { /* creating the Faces Resolved VIEW */ char *sql_statement; char *sql_faces; char *sql_faces_edges; char *sql_edges; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sql_faces = gaiaDoubleQuotedSql (faces); sql_faces_edges = gaiaDoubleQuotedSql (faces_edges); sql_edges = gaiaDoubleQuotedSql (edges); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT f.face_id AS face_id, f.face_code AS face_code, " "ST_Polygonize(e.Geometry) AS Geometry\n" "FROM \"%s\" AS f\nLEFT JOIN \"%s\" AS fe ON (fe.face_id = f.face_id)\n" "LEFT JOIN \"%s\" AS e ON (e.edge_code = fe.edge_code)\n" "GROUP BY f.face_id\n", sqlview, sql_faces, sql_faces_edges, sql_edges); free (sqlview); free (sql_faces); free (sql_faces_edges); free (sql_edges); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_curves_resolved (sqlite3 * sqlite, const char *view, const char *curves, char *edges) { /* creating the Curves Resolved VIEW */ char *sql_statement; char *sql_curves; char *sql_edges; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sql_curves = gaiaDoubleQuotedSql (curves); sql_edges = gaiaDoubleQuotedSql (edges); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\nSELECT c.curve_id AS curve_id, " "CastToMultiLinestring(ST_Collect(e.Geometry)) AS Geometry\n" "FROM \"%s\" AS c\nLEFT JOIN \"%s\" AS e ON (e.edge_code = c.edge_code)\n" "GROUP BY c.curve_id\n", sqlview, sql_curves, sql_edges); free (sqlview); free (sql_edges); free (sql_curves); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_surfaces_resolved (sqlite3 * sqlite, const char *view, const char *surfaces, const char *faces) { /* creating the Surfaces Resolved VIEW */ char *sql_statement; char *sql_surfaces; char *sql_faces; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sql_surfaces = gaiaDoubleQuotedSql (surfaces); sql_faces = gaiaDoubleQuotedSql (faces); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT s.surface_id AS surface_id,\n" " CastToMultipolygon(ST_UnaryUnion(ST_Collect(f.Geometry))) AS Geometry\n" "FROM \"%s\" AS s\n" "LEFT JOIN \"%s\" AS f ON (f.face_code = s.face_code)\n" "GROUP BY s.surface_id\n", sqlview, sql_surfaces, sql_faces); free (sqlview); free (sql_surfaces); free (sql_faces); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_dangling_nodes (sqlite3 * sqlite, const char *view, const char *nodes, const char *edges) { /* creating the Dangling Nodes VIEW */ char *sql_statement; char *sql_nodes; char *sql_edges; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sql_nodes = gaiaDoubleQuotedSql (nodes); sql_edges = gaiaDoubleQuotedSql (edges); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT n.node_id AS node_id\nFROM \"%s\" AS n\n" "LEFT JOIN \"%s\" AS e ON (n.node_code = e.node_from_code)\n" "WHERE e.edge_id IS NULL\nINTERSECT\nSELECT n.node_id AS node_id\n" "FROM \"%s\" AS n\nLEFT JOIN \"%s\" AS e ON (n.node_code = e.node_to_code)\n" "WHERE e.edge_id IS NULL\n", sqlview, sql_nodes, sql_edges, sql_nodes, sql_edges); free (sqlview); free (sql_nodes); free (sql_edges); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_dangling_edges (sqlite3 * sqlite, const char *view, const char *edges, const char *faces_edges, const char *curves) { /* creating the Dangling Edges VIEW */ char *sql_statement; char *sql_edges; char *sql_faces_edges; char *sql_curves; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sql_edges = gaiaDoubleQuotedSql (edges); sql_faces_edges = gaiaDoubleQuotedSql (faces_edges); sql_curves = gaiaDoubleQuotedSql (curves); sql_statement = sqlite3_mprintf ("CREATE VIEW \"%s\" AS\n" "SELECT e.edge_id AS edge_id\nFROM \"%s\" AS e\n" "LEFT JOIN \"%s\" AS f ON (e.edge_code = f.edge_code)\n" "WHERE f.edge_code IS NULL\nINTERSECT\nSELECT e.edge_id AS edge_id\n" "FROM \"%s\" AS e\nLEFT JOIN \"%s\" AS c ON (e.edge_code = c.edge_code)\n" "WHERE c.edge_code IS NULL\n", sqlview, sql_edges, sql_faces_edges, sql_edges, sql_curves); free (sqlview); free (sql_edges); free (sql_faces_edges); free (sql_curves); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_check_edges_from_to (sqlite3 * sqlite, const char *view, const char *edges, const char *nodes) { /* creating the Edges/Nodes [from/to] VIEW */ char skeleton[2048]; char *sql_statement; char *sql_edges; char *sql_nodes; char *sqlview; int ret; char *err_msg = NULL; sqlview = gaiaDoubleQuotedSql (view); sql_edges = gaiaDoubleQuotedSql (edges); sql_nodes = gaiaDoubleQuotedSql (nodes); strcpy (skeleton, "CREATE VIEW \"%s\" AS\n"); strcat (skeleton, "SELECT e.edge_id AS edge_id, n.node_id AS node_id,\n"); strcat (skeleton, " n.node_code AS node_code,\n"); strcat (skeleton, "'Mismatching coords' AS error_cause\n"); strcat (skeleton, "FROM \"%s\" AS e\n"); strcat (skeleton, "JOIN \"%s\" AS n ON "); strcat (skeleton, "(e.node_from_code = n.node_code)\n"); strcat (skeleton, "WHERE ST_Equals(ST_StartPoint(e.Geometry), n.Geometry) = 0\n"); strcat (skeleton, "UNION\n"); strcat (skeleton, "SELECT e.edge_id AS edge_id, n.node_id AS node_id,\n"); strcat (skeleton, " n.node_code AS node_code,\n"); strcat (skeleton, " 'Mismatching coords' AS error_cause\n"); strcat (skeleton, "FROM \"%s\" AS e\n"); strcat (skeleton, "JOIN \"%s\" AS n ON "); strcat (skeleton, "(e.node_to_code = n.node_code)\n"); strcat (skeleton, "WHERE ST_Equals(ST_EndPoint(e.Geometry), n.Geometry) = 0\n"); strcat (skeleton, "UNION\n"); strcat (skeleton, "SELECT e.edge_id AS edge_id, n.node_id AS node_id,\n"); strcat (skeleton, " n.node_code AS node_code,\n"); strcat (skeleton, " 'Unresolved Node reference' AS error_cause\n"); strcat (skeleton, "FROM \"%s\" AS e\n"); strcat (skeleton, "LEFT JOIN \"%s\" AS n ON "); strcat (skeleton, "(e.node_from_code = n.node_code)\n"); strcat (skeleton, "WHERE n.node_id IS NULL\n"); strcat (skeleton, "UNION\n"); strcat (skeleton, "SELECT e.edge_id AS edge_id, n.node_id AS node_id,\n"); strcat (skeleton, " n.node_code AS node_code,\n"); strcat (skeleton, " 'Unresolved Node reference' AS error_cause\n"); strcat (skeleton, "FROM \"%s\" AS e\n"); strcat (skeleton, "LEFT JOIN \"%s\" AS n ON "); strcat (skeleton, "(e.node_to_code = n.node_code)\n"); strcat (skeleton, "WHERE n.node_id IS NULL\n"); sql_statement = sqlite3_mprintf (skeleton, sqlview, sql_edges, sql_nodes, sql_edges, sql_nodes, sql_edges, sql_nodes, sql_edges, sql_nodes); free (sqlview); free (sql_edges); free (sql_nodes); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW '%s' error: %s\n", view, err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_topo_master (sqlite3 * sqlite) { /* creating the topo_master table */ char sql[2048]; int ret; char *err_msg = NULL; /* creating the table */ strcpy (sql, "CREATE TABLE topology_master (\n"); strcat (sql, "nodes TEXT NOT NULL,\n"); strcat (sql, "edges TEXT NOT NULL,\n"); strcat (sql, "faces TEXT NOT NULL,\n"); strcat (sql, "faces_edges TEXT NOT NULL,\n"); strcat (sql, "curves TEXT NOT NULL,\n"); strcat (sql, "surfaces TEXT NOT NULL,\n"); strcat (sql, "check_node_ids TEXT NOT NULL,\n"); strcat (sql, "check_node_geoms TEXT NOT NULL,\n"); strcat (sql, "check_edge_ids TEXT NOT NULL,\n"); strcat (sql, "check_edge_geoms TEXT NOT NULL,\n"); strcat (sql, "check_edge_node_geoms TEXT NOT NULL,\n"); strcat (sql, "check_face_ids TEXT NOT NULL,\n"); strcat (sql, "faces_resolved TEXT NOT NULL,\n"); strcat (sql, "curves_resolved TEXT NOT NULL,\n"); strcat (sql, "surfaces_resolved TEXT NOT NULL,\n"); strcat (sql, "dangling_nodes TEXT NOT NULL,\n"); strcat (sql, "dangling_edges TEXT NOT NULL,\n"); strcat (sql, "check_edges_from_to TEXT NOT NULL,\n"); strcat (sql, "coord_dimension TEXT NOT NULL,\n"); strcat (sql, "srid INTEGER NOT NULL,\n"); strcat (sql, "CONSTRAINT fk_topo_master FOREIGN KEY \n"); strcat (sql, "(srid) REFERENCES spatial_ref_sys (srid))"); ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'topology_master' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int update_topo_master (sqlite3 * sqlite, const char *nodes, const char *edges, const char *faces, const char *faces_edges, const char *curves, const char *surfaces, const char *check_nodes, const char *check_node_geoms, const char *check_edges, const char *check_edge_geoms, const char *check_edge_node_geoms, const char *check_faces, const char *faces_res, const char *curves_res, const char *surfaces_res, const char *dangling_nodes, const char *dangling_edges, const char *check_edges_from_to, int srid, int dims) { /* updating the topo_master table */ char *sql_statement; int ret; char *err_msg = NULL; /* inserting Topology data into MASTER */ sql_statement = sqlite3_mprintf ("INSERT INTO topology_master " "(nodes, edges, faces, faces_edges, curves, surfaces, check_node_ids, " "check_node_geoms, check_edge_ids, check_edge_geoms, check_edge_node_geoms, " "check_face_ids, faces_resolved, curves_resolved, surfaces_resolved, " "dangling_nodes, dangling_edges, check_edges_from_to, coord_dimension, srid) " "VALUES (%Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %d)", nodes, edges, faces, faces_edges, curves, surfaces, check_nodes, check_node_geoms, check_edges, check_edge_geoms, check_edge_node_geoms, check_faces, faces_res, curves_res, surfaces_res, dangling_nodes, dangling_edges, check_edges_from_to, (dims == GAIA_XY_Z) ? "XYZ" : "XY", srid); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("INSERT INTO 'topology_master' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static void fnct_CreateTopologyTables (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CreateTopologyTables(srid, coord_dims) / or / CreateTopologyTables(prefix, srid, coord_dims) / / creates any Topology related table / returns 1 on success / 0 on failure */ const char *prefix = "topo_"; const unsigned char *txt_dims; int srid = -1; int dimension; int dims = -1; char *table_curves; char *table_surfaces; char *table_nodes; char *table_edges; char *table_faces; char *table_faces_edges; char *view_check_node_codes; char *view_check_node_geoms; char *view_check_edge_codes; char *view_check_edge_geoms; char *view_check_edge_node_geoms; char *view_check_face_codes; char *view_faces_resolved; char *view_curves_resolved; char *view_surfaces_resolved; char *view_dangling_nodes; char *view_dangling_edges; char *view_edges_check_from_to; const char *tables[20]; int views[20]; int *p_view; const char **p_tbl; int ok_table; int create_master = 1; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc == 3) { if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { spatialite_e ("CreateTopologyTables() error: argument 1 [table_prefix] is not of the String type\n"); sqlite3_result_int (context, 0); return; } prefix = (char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { spatialite_e ("CreateTopologyTables() error: argument 2 [SRID] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } srid = sqlite3_value_int (argv[1]); if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { dimension = sqlite3_value_int (argv[2]); if (dimension == 2) dims = GAIA_XY; if (dimension == 3) dims = GAIA_XY_Z; } else if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) { txt_dims = sqlite3_value_text (argv[2]); if (strcasecmp ((char *) txt_dims, "XY") == 0) dims = GAIA_XY; if (strcasecmp ((char *) txt_dims, "XYZ") == 0) dims = GAIA_XY_Z; } else { spatialite_e ("CreateTopologyTables() error: argument 3 [dimension] is not of the Integer or Text type\n"); sqlite3_result_int (context, 0); return; } } else { if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) { spatialite_e ("CreateTopologyTables() error: argument 1 [SRID] is not of the Integer type\n"); sqlite3_result_int (context, 0); return; } srid = sqlite3_value_int (argv[0]); if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { dimension = sqlite3_value_int (argv[1]); if (dimension == 2) dims = GAIA_XY; if (dimension == 3) dims = GAIA_XY_Z; } else if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) { txt_dims = sqlite3_value_text (argv[1]); if (strcasecmp ((char *) txt_dims, "XY") == 0) dims = GAIA_XY; if (strcasecmp ((char *) txt_dims, "XYZ") == 0) dims = GAIA_XY_Z; } else { spatialite_e ("CreateTopologyTables() error: argument 2 [dimension] is not of the Integer or Text type\n"); sqlite3_result_int (context, 0); return; } } if (dims == GAIA_XY || dims == GAIA_XY_Z) ; else { spatialite_e ("CreateTopologyTables() error: [dimension] ILLEGAL VALUE\n"); sqlite3_result_int (context, 0); return; } if (srid <= 0) { spatialite_e ("CreateTopologyTables() error: [SRID] ILLEGAL VALUE\n"); sqlite3_result_int (context, 0); return; } /* checking Topology tables */ tables[0] = "topology_master"; views[0] = 0; table_curves = sqlite3_mprintf ("%scurves", prefix); tables[1] = table_curves; views[1] = 0; table_surfaces = sqlite3_mprintf ("%ssurfaces", prefix); tables[2] = table_surfaces; views[2] = 0; table_nodes = sqlite3_mprintf ("%snodes", prefix); tables[3] = table_nodes; views[3] = 0; table_edges = sqlite3_mprintf ("%sedges", prefix); tables[4] = table_edges; views[4] = 0; table_faces = sqlite3_mprintf ("%sfaces", prefix); tables[5] = table_faces; views[5] = 0; table_faces_edges = sqlite3_mprintf ("%sfaces_edges", prefix); tables[6] = table_faces_edges; views[6] = 0; view_check_node_codes = sqlite3_mprintf ("%snodes_check_dupl_codes", prefix); tables[7] = view_check_node_codes; views[7] = 1; view_check_node_geoms = sqlite3_mprintf ("%snodes_check_dupl_geoms", prefix); tables[8] = view_check_node_geoms; views[8] = 1; view_check_edge_codes = sqlite3_mprintf ("%sedges_check_dupl_codes", prefix); tables[9] = view_check_edge_codes; views[9] = 1; view_check_edge_geoms = sqlite3_mprintf ("%sedges_check_intersections", prefix); tables[10] = view_check_edge_geoms; views[10] = 1; view_check_edge_node_geoms = sqlite3_mprintf ("%sedges_check_nodes", prefix); tables[11] = view_check_edge_node_geoms; views[11] = 1; view_check_face_codes = sqlite3_mprintf ("%sfaces_check_dupl_codes", prefix); tables[12] = view_check_face_codes; views[12] = 1; view_faces_resolved = sqlite3_mprintf ("%sfaces_resolved", prefix); tables[13] = view_faces_resolved; views[13] = 1; view_curves_resolved = sqlite3_mprintf ("%scurves_resolved", prefix); tables[14] = view_curves_resolved; views[14] = 1; view_surfaces_resolved = sqlite3_mprintf ("%ssurfaces_resolved", prefix); tables[15] = view_surfaces_resolved; views[15] = 1; view_dangling_nodes = sqlite3_mprintf ("%sdangling_nodes", prefix); tables[16] = view_dangling_nodes; views[16] = 1; view_dangling_edges = sqlite3_mprintf ("%sdangling_edges", prefix); tables[17] = view_dangling_edges; views[17] = 1; view_edges_check_from_to = sqlite3_mprintf ("%sedges_check_from_to", prefix); tables[18] = view_edges_check_from_to; views[18] = 1; tables[19] = NULL; p_view = views; p_tbl = tables; while (*p_tbl != NULL) { ok_table = check_topo_table (sqlite, *p_tbl, *p_view); if (ok_table) { if (strcmp (*p_tbl, "topology_master") == 0) create_master = 0; else { spatialite_e ("CreateTopologyTables() error: table '%s' already exists\n", *p_tbl); goto error; } } p_tbl++; p_view++; } /* creating Topology tables */ if (create_master) { if (!create_topo_master (sqlite)) goto error; } if (!create_topo_nodes (sqlite, table_nodes, srid, dims)) goto error; if (!create_topo_edges (sqlite, table_edges, srid, dims)) goto error; if (!create_topo_faces (sqlite, table_faces)) goto error; if (!create_topo_faces_edges (sqlite, table_faces_edges, table_faces)) goto error; if (!create_topo_curves (sqlite, table_curves)) goto error; if (!create_topo_surfaces (sqlite, table_surfaces)) goto error; if (!create_check_node_codes (sqlite, view_check_node_codes, table_nodes)) goto error; if (!create_check_node_geoms (sqlite, view_check_node_geoms, table_nodes)) goto error; if (!create_check_edge_codes (sqlite, view_check_edge_codes, table_edges)) goto error; if (!create_check_edge_geoms (sqlite, view_check_edge_geoms, table_edges)) goto error; if (!create_check_edge_node_geoms (sqlite, view_check_edge_node_geoms, table_edges, table_nodes)) goto error; if (!create_check_face_codes (sqlite, view_check_face_codes, table_faces)) goto error; if (!create_faces_resolved (sqlite, view_faces_resolved, table_faces, table_faces_edges, table_edges)) goto error; if (!create_curves_resolved (sqlite, view_curves_resolved, table_curves, table_edges)) goto error; if (!create_surfaces_resolved (sqlite, view_surfaces_resolved, table_surfaces, view_faces_resolved)) goto error; if (!create_dangling_nodes (sqlite, view_dangling_nodes, table_nodes, table_edges)) goto error; if (!create_dangling_edges (sqlite, view_dangling_edges, table_edges, table_faces_edges, table_curves)) goto error; if (!create_check_edges_from_to (sqlite, view_edges_check_from_to, table_edges, table_nodes)) goto error; if (!update_topo_master (sqlite, table_nodes, table_edges, table_faces, table_faces_edges, table_curves, table_surfaces, view_check_node_codes, view_check_node_geoms, view_check_edge_codes, view_check_edge_geoms, view_check_edge_node_geoms, view_check_face_codes, view_faces_resolved, view_curves_resolved, view_surfaces_resolved, view_dangling_nodes, view_dangling_edges, view_edges_check_from_to, srid, dims)) goto error; updateSpatiaLiteHistory (sqlite, "*** TOPOLOGY ***", NULL, "Topology tables successfully created"); sqlite3_result_int (context, 1); sqlite3_free (table_curves); sqlite3_free (table_surfaces); sqlite3_free (table_nodes); sqlite3_free (table_edges); sqlite3_free (table_faces); sqlite3_free (table_faces_edges); sqlite3_free (view_check_node_codes); sqlite3_free (view_check_node_geoms); sqlite3_free (view_check_edge_codes); sqlite3_free (view_check_edge_geoms); sqlite3_free (view_check_edge_node_geoms); sqlite3_free (view_check_face_codes); sqlite3_free (view_faces_resolved); sqlite3_free (view_curves_resolved); sqlite3_free (view_surfaces_resolved); sqlite3_free (view_dangling_nodes); sqlite3_free (view_dangling_edges); sqlite3_free (view_edges_check_from_to); return; error: sqlite3_result_int (context, 0); sqlite3_free (table_curves); sqlite3_free (table_surfaces); sqlite3_free (table_nodes); sqlite3_free (table_edges); sqlite3_free (table_faces); sqlite3_free (table_faces_edges); sqlite3_free (view_check_node_codes); sqlite3_free (view_check_node_geoms); sqlite3_free (view_check_edge_codes); sqlite3_free (view_check_edge_geoms); sqlite3_free (view_check_edge_node_geoms); sqlite3_free (view_check_face_codes); sqlite3_free (view_faces_resolved); sqlite3_free (view_curves_resolved); sqlite3_free (view_surfaces_resolved); sqlite3_free (view_dangling_nodes); sqlite3_free (view_dangling_edges); sqlite3_free (view_edges_check_from_to); return; } static void fnct_OffsetCurve (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / OffsetCurve(BLOBencoded geometry, DOUBLE radius) / / returns a new geometry representing the OFFSET-CURVE for current geometry / [a LINESTRING is expected] / or NULL if any error is encountered / / negative radius: right-side / positive radius: left-side */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; double radius; int int_value; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) radius = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); radius = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaOffsetCurve_r (data, geo, radius, 16, 0); else result = gaiaOffsetCurve (geo, radius, 16, 0); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_SingleSidedBuffer (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SingleSidedBuffer(BLOBencoded geometry, radius, left-or-right-side) / / returns a new geometry representing the SingleSided BUFFER / for current geometry [a LINESTRING is expected] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; double radius; int int_value; int left_right; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) radius = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); radius = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) left_right = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaSingleSidedBuffer_r (data, geo, radius, 16, left_right); else result = gaiaSingleSidedBuffer (geo, radius, 16, left_right); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_HausdorffDistance (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / HausdorffDistance(BLOBencoded geom1, BLOBencoded geom2) / / returns the discrete Hausdorff distance between GEOM-1 and GEOM-2 */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; double dist; int ret; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) ret = gaiaHausdorffDistance_r (data, geo1, geo2, &dist); else ret = gaiaHausdorffDistance (geo1, geo2, &dist); if (!ret) sqlite3_result_null (context); sqlite3_result_double (context, dist); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_SharedPaths (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SharedPaths(BLOBencoded geometry1, BLOBencoded geometry2) / / returns a new geometry representing common (shared) Edges / [two LINESTRINGs/MULTILINESTRINGs are expected] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo1 == NULL || geo2 == NULL) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaSharedPaths_r (data, geo1, geo2); else result = gaiaSharedPaths (geo1, geo2); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo1->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Covers (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Covers(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if GEOM-1 "spatially covers" GEOM-2 / 0 otherwise / or -1 if any error is encountered */ unsigned char *blob1; unsigned char *blob2; int bytes1; int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); bytes1 = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (blob1, bytes1, gpkg_mode, gpkg_amphibious); blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); bytes2 = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (blob2, bytes2, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { void *data = sqlite3_user_data (context); if (data != NULL) ret = gaiaGeomCollPreparedCovers (data, geo1, blob1, bytes1, geo2, blob2, bytes2); else ret = gaiaGeomCollCovers (geo1, geo2); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_CoveredBy (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CoveredBy(BLOBencoded geom1, BLOBencoded geom2) / / returns: / 1 if GEOM-1 is "spatially covered by" GEOM-2 / 0 otherwise / or -1 if any error is encountered */ unsigned char *blob1; unsigned char *blob2; int bytes1; int bytes2; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int ret; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } blob1 = (unsigned char *) sqlite3_value_blob (argv[0]); bytes1 = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (blob1, bytes1, gpkg_mode, gpkg_amphibious); blob2 = (unsigned char *) sqlite3_value_blob (argv[1]); bytes2 = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (blob2, bytes2, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_int (context, -1); else { void *data = sqlite3_user_data (context); if (data != NULL) ret = gaiaGeomCollPreparedCoveredBy (data, geo1, blob1, bytes1, geo2, blob2, bytes2); else ret = gaiaGeomCollCoveredBy (geo1, geo2); sqlite3_result_int (context, ret); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_LineInterpolatePoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LineInterpolatePoint(BLOBencoded geometry1, double fraction) / / returns a new geometry representing a point interpolated along a line / [a LINESTRING is expected / fraction ranging from 0.0 to 1.0] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int int_value; double fraction; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) fraction = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); fraction = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo == NULL) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaLineInterpolatePoint_r (data, geo, fraction); else result = gaiaLineInterpolatePoint (geo, fraction); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_LineInterpolateEquidistantPoints (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LineInterpolateEquidistantPointS(BLOBencoded geometry1, double distance) / / returns a new geometry representing a point interpolated along a line / [a LINESTRING is expected / fraction ranging from 0.0 to 1.0] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int int_value; double distance; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) distance = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); distance = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo == NULL) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaLineInterpolateEquidistantPoints_r (data, geo, distance); else result = gaiaLineInterpolateEquidistantPoints (geo, distance); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_LineLocatePoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LineLocatePoint(BLOBencoded geometry1, BLOBencoded geometry2) / / return a number (between 0.0 and 1.0) representing the location / of the closest point on LineString to the given Point, as a fraction / of total 2d line length / / - geom1 is expected to represent some LINESTRING / - geom2 is expected to represent some POINT */ unsigned char *p_blob; int n_bytes; double fraction; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo1 == NULL || geo2 == NULL) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) fraction = gaiaLineLocatePoint_r (data, geo1, geo2); else fraction = gaiaLineLocatePoint (geo1, geo2); if (fraction >= 0.0 && fraction <= 1.0) sqlite3_result_double (context, fraction); else sqlite3_result_null (context); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_LineSubstring (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LineSubstring(BLOBencoded geometry1, double start_fraction, double end_fraction) / / Return a Linestring being a substring of the input one starting and ending at / the given fractions of total 2d length [fractions ranging from 0.0 to 1.0] / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int int_value; double fraction1; double fraction2; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) fraction1 = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); fraction1 = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) fraction2 = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); fraction2 = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo == NULL) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaLineSubstring_r (data, geo, fraction1, fraction2); else result = gaiaLineSubstring (geo, fraction1, fraction2); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_ClosestPoint (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ClosestPoint(BLOBencoded geometry1, BLOBencoded geometry2) / / Returns the Point on geom1 that is closest to geom2 / NULL is returned for invalid arguments (or if distance is ZERO) */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo1 == NULL || geo2 == NULL) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaShortestLine_r (data, geo1, geo2); else result = gaiaShortestLine (geo1, geo2); if (result == NULL) sqlite3_result_null (context); else if (result->FirstLinestring == NULL) { gaiaFreeGeomColl (result); sqlite3_result_null (context); } else { /* builds the BLOB geometry to be returned */ double x; double y; double z; double m; int len; unsigned char *p_result = NULL; gaiaGeomCollPtr pt = NULL; gaiaLinestringPtr ln = result->FirstLinestring; if (ln->DimensionModel == GAIA_XY_Z) pt = gaiaAllocGeomCollXYZ (); else if (ln->DimensionModel == GAIA_XY_M) pt = gaiaAllocGeomCollXYM (); else if (ln->DimensionModel == GAIA_XY_Z_M) pt = gaiaAllocGeomCollXYZM (); else pt = gaiaAllocGeomColl (); if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, 0, &x, &y, &z); gaiaAddPointToGeomCollXYZ (pt, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, 0, &x, &y, &m); gaiaAddPointToGeomCollXYM (pt, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, 0, &x, &y, &z, &m); gaiaAddPointToGeomCollXYZM (pt, x, y, z, m); } else { gaiaGetPoint (ln->Coords, 0, &x, &y); gaiaAddPointToGeomColl (pt, x, y); } pt->Srid = geo1->Srid; gaiaToSpatiaLiteBlobWkbEx (pt, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); gaiaFreeGeomColl (pt); } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_ShortestLine (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ShortestLine(BLOBencoded geometry1, BLOBencoded geometry2) / / Returns the shortest line between two geometries / NULL is returned for invalid arguments (or if distance is ZERO) */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo1 == NULL || geo2 == NULL) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaShortestLine_r (data, geo1, geo2); else result = gaiaShortestLine (geo1, geo2); sqlite3_result_null (context); if (!result) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo1->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Snap (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Snap(BLOBencoded geometry1, BLOBencoded geometry2, double tolerance) / / Returns a new Geometry corresponding to geom1 snapped to geom2 / and using the given tolerance / NULL is returned for invalid arguments (or if distance is ZERO) */ unsigned char *p_blob; int n_bytes; int int_value; double tolerance; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) tolerance = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); tolerance = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo1 == NULL || geo2 == NULL) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaSnap_r (data, geo1, geo2, tolerance); else result = gaiaSnap (geo1, geo2, tolerance); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo1->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_LineMerge (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LineMerge(BLOBencoded geometry) / / Assuming that Geometry represents a set of sparse Linestrings, / this function will attempt to reassemble a single line / (or a set of lines) / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo == NULL) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaLineMerge_r (data, geo); else result = gaiaLineMerge (geo); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_UnaryUnion (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UnaryUnion(BLOBencoded geometry) / / exactly like Union, but using a single Collection / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo == NULL) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaUnaryUnion_r (data, geo); else result = gaiaUnaryUnion (geo); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_SquareGrid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_SquareGrid(BLOBencoded geom, double size) / ST_SquareGrid(BLOBencoded geom, double size, boolean edges_only) / ST_SquareGrid(BLOBencoded geom, double size, boolean edges_only, BLOBencoded origin) / / Builds a regular grid (Square cells) covering the geom. / each cell has the edges's length as defined by the size argument / an arbitrary origin is supported (0,0 is assumed by default) / return NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int int_value; double origin_x = 0.0; double origin_y = 0.0; double size; int edges_only = 0; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr point = NULL; gaiaGeomCollPtr result = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); size = int_value; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { size = sqlite3_value_double (argv[1]); } else { sqlite3_result_null (context); return; } if (size <= 0.0) { /* negative side size */ sqlite3_result_null (context); return; } if (argc >= 3) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) edges_only = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } } if (argc == 4) { if (sqlite3_value_type (argv[3]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[3]); n_bytes = sqlite3_value_bytes (argv[3]); point = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!point) { sqlite3_result_null (context); return; } if (point->FirstLinestring != NULL) goto no_point; if (point->FirstPolygon != NULL) goto no_point; if (point->FirstPoint != NULL) { if (point->FirstPoint == point->LastPoint) { origin_x = point->FirstPoint->X; origin_y = point->FirstPoint->Y; gaiaFreeGeomColl (point); } else goto no_point; } else goto no_point; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (geo->FirstPoint != NULL) goto no_polygon; if (geo->FirstLinestring != NULL) goto no_polygon; if (geo->FirstPolygon == NULL) goto no_polygon; if (data != NULL) result = gaiaSquareGrid_r (data, geo, origin_x, origin_y, size, edges_only); else result = gaiaSquareGrid (geo, origin_x, origin_y, size, edges_only); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); return; no_point: gaiaFreeGeomColl (point); sqlite3_result_null (context); return; no_polygon: gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } static void fnct_TriangularGrid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_TriangularGrid(BLOBencoded geom, double size) / ST_TriangularGrid(BLOBencoded geom, double size, boolean edges_only) / ST_TriangularGrid(BLOBencoded geom, double size, boolean edges_only, BLOBencoded origin) / / Builds a regular grid (Triangular cells) covering the geom. / each cell has the edge's length as defined by the size argument / an arbitrary origin is supported (0,0 is assumed by default) / return NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int int_value; double origin_x = 0.0; double origin_y = 0.0; double size; int edges_only = 0; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr point = NULL; gaiaGeomCollPtr result = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); size = int_value; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { size = sqlite3_value_double (argv[1]); } else { sqlite3_result_null (context); return; } if (size <= 0.0) { /* negative side size */ sqlite3_result_null (context); return; } if (argc >= 3) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) edges_only = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } } if (argc == 4) { if (sqlite3_value_type (argv[3]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[3]); n_bytes = sqlite3_value_bytes (argv[3]); point = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!point) { sqlite3_result_null (context); return; } if (point->FirstLinestring != NULL) goto no_point; if (point->FirstPolygon != NULL) goto no_point; if (point->FirstPoint != NULL) { if (point->FirstPoint == point->LastPoint) { origin_x = point->FirstPoint->X; origin_y = point->FirstPoint->Y; gaiaFreeGeomColl (point); } else goto no_point; } else goto no_point; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (geo->FirstPoint != NULL) goto no_polygon; if (geo->FirstLinestring != NULL) goto no_polygon; if (geo->FirstPolygon == NULL) goto no_polygon; if (data != NULL) result = gaiaTriangularGrid_r (data, geo, origin_x, origin_y, size, edges_only); else result = gaiaTriangularGrid (geo, origin_x, origin_y, size, edges_only); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); return; no_point: gaiaFreeGeomColl (point); sqlite3_result_null (context); return; no_polygon: gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } static void fnct_HexagonalGrid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_HexagonalGrid(BLOBencoded geom, double size) / ST_HexagonalGrid(BLOBencoded geom, double size, boolean edges_only) / ST_HexagonalGrid(BLOBencoded geom, double size, boolean edges_only, BLOBencoded origin) / / Builds a regular grid (Hexagonal cells) covering the geom. / each cell has the edges's length as defined by the size argument / an arbitrary origin is supported (0,0 is assumed by default) / return NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int int_value; double origin_x = 0.0; double origin_y = 0.0; double size; int edges_only = 0; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr point = NULL; gaiaGeomCollPtr result = NULL; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); size = int_value; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) { size = sqlite3_value_double (argv[1]); } else { sqlite3_result_null (context); return; } if (size <= 0.0) { /* negative side size */ sqlite3_result_null (context); return; } if (argc >= 3) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) edges_only = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } } if (argc == 4) { if (sqlite3_value_type (argv[3]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[3]); n_bytes = sqlite3_value_bytes (argv[3]); point = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!point) { sqlite3_result_null (context); return; } if (point->FirstLinestring != NULL) goto no_point; if (point->FirstPolygon != NULL) goto no_point; if (point->FirstPoint != NULL) { if (point->FirstPoint == point->LastPoint) { origin_x = point->FirstPoint->X; origin_y = point->FirstPoint->Y; gaiaFreeGeomColl (point); } else goto no_point; } else goto no_point; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (geo->FirstPoint != NULL) goto no_polygon; if (geo->FirstLinestring != NULL) goto no_polygon; if (geo->FirstPolygon == NULL) goto no_polygon; if (data != NULL) result = gaiaHexagonalGrid_r (data, geo, origin_x, origin_y, size, edges_only); else result = gaiaHexagonalGrid (geo, origin_x, origin_y, size, edges_only); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); return; no_point: gaiaFreeGeomColl (point); sqlite3_result_null (context); return; no_polygon: gaiaFreeGeomColl (geo); sqlite3_result_null (context); return; } static void fnct_LinesCutAtNodes (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LinesCutAtNodes(BLOBencoded geometry1, BLOBencoded geometry2) / / Assuming that Geometry-1 represents a set of arbitray Linestrings, / and that Geometry-2 represents of arbitrary Points, this function / will then attempt to cut lines accordingly to given nodes. / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom1 = NULL; gaiaGeomCollPtr geom2 = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geom2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geom1 == NULL || geom2 == NULL) { if (geom1) gaiaFreeGeomColl (geom1); if (geom2) gaiaFreeGeomColl (geom2); sqlite3_result_null (context); return; } result = gaiaLinesCutAtNodes (geom1, geom2); if (result == NULL) { sqlite3_result_null (context); } else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geom1->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } gaiaFreeGeomColl (geom1); gaiaFreeGeomColl (geom2); } static int cmp_pt_coords (const void *p1, const void *p2) { /* compares two nodes by ID [for QSORT] */ gaiaPointPtr pt1 = *((gaiaPointPtr *) p1); gaiaPointPtr pt2 = *((gaiaPointPtr *) p2); if (pt1->X == pt2->X && pt1->Y == pt2->Y && pt1->Z == pt2->Z) return 0; if (pt1->X > pt2->X) return 1; if (pt1->X == pt2->X && pt1->Y > pt2->Y) return 1; if (pt1->X == pt2->X && pt1->Y == pt2->Y && pt1->Z > pt2->Z) return 1; return -1; } static gaiaGeomCollPtr auxPolygNodes (gaiaGeomCollPtr geom) { /* attempting to identify Ring-Nodes */ gaiaGeomCollPtr result = NULL; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaPointPtr pt; gaiaPointPtr prev_pt; gaiaPointPtr *sorted = NULL; int count = 0; int iv; int ib; double x; double y; double z; double m; /* inserting all Points into a Dynamic Line */ gaiaDynamicLinePtr dyn = gaiaAllocDynamicLine (); pg = geom->FirstPolygon; while (pg) { rng = pg->Exterior; /* CAVEAT: first point needs to be skipped (closed ring) */ for (iv = 1; iv < rng->Points; iv++) { /* exterior ring */ if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaAppendPointZToDynamicLine (dyn, x, y, z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaAppendPointMToDynamicLine (dyn, x, y, m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaAppendPointToDynamicLine (dyn, x, y); } } for (ib = 0; ib < pg->NumInteriors; ib++) { rng = pg->Interiors + ib; /* CAVEAT: first point needs to be skipped (closed ring) */ for (iv = 1; iv < rng->Points; iv++) { /* interior ring */ if (geom->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); gaiaAppendPointZToDynamicLine (dyn, x, y, z); } else if (geom->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); gaiaAppendPointMToDynamicLine (dyn, x, y, m); } else if (geom->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); gaiaAppendPointZMToDynamicLine (dyn, x, y, z, m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); gaiaAppendPointToDynamicLine (dyn, x, y); } } } pg = pg->Next; } pt = dyn->First; while (pt) { /* counting how many points */ count++; pt = pt->Next; } if (count == 0) { gaiaFreeDynamicLine (dyn); return NULL; } /* allocating and initializing an array of pointers */ sorted = malloc (sizeof (gaiaPointPtr) * count); iv = 0; pt = dyn->First; while (pt) { *(sorted + iv++) = pt; pt = pt->Next; } /* sorting points by coords */ qsort (sorted, count, sizeof (gaiaPointPtr), cmp_pt_coords); if (geom->DimensionModel == GAIA_XY_Z) result = gaiaAllocGeomCollXYZ (); else if (geom->DimensionModel == GAIA_XY_M) result = gaiaAllocGeomCollXYM (); else if (geom->DimensionModel == GAIA_XY_Z_M) result = gaiaAllocGeomCollXYZM (); else result = gaiaAllocGeomColl (); result->Srid = geom->Srid; /* identifying nodes */ prev_pt = NULL; for (iv = 0; iv < count; iv++) { pt = *(sorted + iv); if (prev_pt != NULL) { if (prev_pt->X == pt->X && prev_pt->Y == pt->Y && prev_pt->Z == pt->Z) { if (result->LastPoint != NULL) { if (result->LastPoint->X == pt->X && result->LastPoint->Y == pt->Y && result->LastPoint->Z == pt->Z) continue; } /* Node found */ if (result->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (result, pt->X, pt->Y, pt->Z); else if (result->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (result, pt->X, pt->Y, pt->M); else if (result->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (result, pt->X, pt->Y, pt->Z, pt->M); else gaiaAddPointToGeomColl (result, pt->X, pt->Y); } } prev_pt = pt; } if (result->FirstPoint == NULL) { gaiaFreeGeomColl (result); result = NULL; } free (sorted); gaiaFreeDynamicLine (dyn); return result; } static void fnct_RingsCutAtNodes (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RingsCutAtNodes(BLOBencoded geometry) / / This function will attempt to return a collection of lines / representing Polygon/Rings: the input geometry is expected / to be a Polygon or MultiPolygon. / Each Ring will be cut accordingly to any identified "node" / i.e. self-intersections or intersections between two Rings. / / NULL is returned for invalid arguments */ int pts = 0; int lns = 0; int pgs = 0; unsigned char *p_blob; int n_bytes; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaGeomCollPtr geom = NULL; gaiaGeomCollPtr geom1 = NULL; gaiaGeomCollPtr geom2 = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geom == NULL) { sqlite3_result_null (context); return; } /* checking if Geometry is a Polygon or MultiPolyhon */ pt = geom->FirstPoint; while (pt) { pts++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { lns++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pts > 0 || lns > 0 || pgs == 0) { /* not Polygon/MultiPolygon */ gaiaFreeGeomColl (geom); sqlite3_result_null (context); return; } /* transforming Rings into Linestrings */ geom1 = gaiaLinearize (geom, 1); if (geom1 == NULL) { gaiaFreeGeomColl (geom); sqlite3_result_null (context); return; } /* identifying the Nodes */ geom2 = auxPolygNodes (geom); if (geom2 == NULL) { /* there is no need to cut any Ring [no Nodes] */ int len; unsigned char *p_result = NULL; geom1->Srid = geom->Srid; gaiaToSpatiaLiteBlobWkbEx (geom1, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (geom); gaiaFreeGeomColl (geom1); return; } /* attempting to cut Rings */ result = gaiaLinesCutAtNodes (geom1, geom2); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geom->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } gaiaFreeGeomColl (geom); gaiaFreeGeomColl (geom1); gaiaFreeGeomColl (geom2); } #ifdef GEOS_ADVANCED /* GEOS advanced features - 3.4.0 */ static void fnct_DelaunayTriangulation (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DelaunayTriangulation(BLOBencoded geometry) / DelaunayTriangulation(BLOBencoded geometry, boolean onlyEdges) / DelaunayTriangulation(BLOBencoded geometry, boolean onlyEdges, double tolerance) / / Attempts to build a Delaunay Triangulation using all points/vertices / found in the input geometry. / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int int_value; double tolerance = 0.0; int only_edges = 0; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc >= 2) { if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) only_edges = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } } if (argc == 3) { if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) tolerance = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); tolerance = int_value; } else { sqlite3_result_null (context); return; } } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo == NULL) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaDelaunayTriangulation_r (data, geo, tolerance, only_edges); else result = gaiaDelaunayTriangulation (geo, tolerance, only_edges); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_VoronojDiagram (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / VoronojDiagram(BLOBencoded geometry) / VoronojDiagram(BLOBencoded geometry, boolean onlyEdges) / VoronojDiagram(BLOBencoded geometry, boolean onlyEdges, / double extra_frame_size) / VoronojDiagram(BLOBencoded geometry, boolean onlyEdges, / double extra_frame_size, double tolerance) / / Attempts to build a Voronoj Diagram using all points/vertices / found in the input geometry. / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int int_value; double tolerance = 0.0; double extra_frame_size = -1.0; int only_edges = 0; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc >= 2) { if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) only_edges = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } } if (argc >= 3) { if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) extra_frame_size = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); extra_frame_size = int_value; } else { sqlite3_result_null (context); return; } } if (argc == 4) { if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) tolerance = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); tolerance = int_value; } else { sqlite3_result_null (context); return; } } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo == NULL) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaVoronojDiagram_r (data, geo, extra_frame_size, tolerance, only_edges); else result = gaiaVoronojDiagram (geo, extra_frame_size, tolerance, only_edges); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_ConcaveHull (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ConcaveHull(BLOBencoded geometry) / ConcaveHull(BLOBencoded geometry, double factor) / ConcaveHull(BLOBencoded geometry, double factor, boolean allow_holes) / ConcaveHull(BLOBencoded geometry, double factor, / boolean allow_holes, double tolerance) / / Attempts to build a ConcaveHull using all points/vertices / found in the input geometry. / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int int_value; double tolerance = 0.0; double factor = 3.0; int allow_holes = 0; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc >= 2) { if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) factor = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); factor = int_value; } else { sqlite3_result_null (context); return; } } if (argc >= 3) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) allow_holes = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } } if (argc == 4) { if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) tolerance = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); tolerance = int_value; } else { sqlite3_result_null (context); return; } } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo == NULL) sqlite3_result_null (context); else { void *data = sqlite3_user_data (context); if (data != NULL) result = gaiaConcaveHull_r (data, geo, factor, tolerance, allow_holes); else result = gaiaConcaveHull (geo, factor, tolerance, allow_holes); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } #endif /* end GEOS advanced features */ #ifdef ENABLE_LWGEOM /* enabling LWGEOM support */ static void fnct_LWGEOM_GetLastWarningMsg (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LWGEOM_GetLastWarningMsg() / / return the most recent LWGEOM warning message (if any) / return NULL on any other case */ const char *msg; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ msg = gaiaGetLwGeomWarningMsg (); if (msg == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); } static void fnct_LWGEOM_GetLastErrorMsg (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LWGEOM_GetLastErrorMsg() / / return the most recent LWGEOM error message (if any) / return NULL on any other case */ const char *msg; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ msg = gaiaGetLwGeomErrorMsg (); if (msg == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); } static void fnct_MakeValid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeValid(BLOBencoded geometry) / / Attempts to make an invalid geometry valid without loosing vertices. / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaMakeValid (geo); if (result == NULL) { char *msg; const char *lw_err = gaiaGetLwGeomErrorMsg (); if (lw_err) msg = sqlite3_mprintf ("MakeValid error - LWGEOM reports: %s\n", lw_err); else msg = sqlite3_mprintf ("MakeValid error - LWGEOM reports: Unknown Reason\n"); sqlite3_result_error (context, msg, strlen (msg)); sqlite3_free (msg); } else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_MakeValidDiscarded (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MakeValidDiscarded(BLOBencoded geometry) / / Strictly related to MakeValid(); useful to collect any offending item / discarded during the validation process. / NULL is returned for invalid arguments (or if no discarded items are found) */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaMakeValidDiscarded (geo); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_Segmentize (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Segmentize(BLOBencoded geometry, double dist) / / Ensure every segment is at most 'dist' long / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; int int_value; double dist; gaiaGeomCollPtr geo = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) dist = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); dist = int_value; } else { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geo == NULL) sqlite3_result_null (context); else { result = gaiaSegmentize (geo, dist); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = geo->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (geo); } static void fnct_Split (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Split(BLOBencoded input, BLOBencoded blade) / / Returns a collection of geometries resulting by splitting a geometry / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr input = NULL; gaiaGeomCollPtr blade = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); input = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (input == NULL) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); blade = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (blade == NULL) { gaiaFreeGeomColl (input); sqlite3_result_null (context); return; } else { result = gaiaSplit (input, blade); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = input->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (input); gaiaFreeGeomColl (blade); } static void fnct_SplitLeft (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SplitLeft(BLOBencoded input, BLOBencoded blade) / / Returns a collection of geometries resulting by splitting a geometry [left half] / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr input = NULL; gaiaGeomCollPtr blade = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); input = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (input == NULL) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); blade = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (blade == NULL) { gaiaFreeGeomColl (input); sqlite3_result_null (context); return; } else { result = gaiaSplitLeft (input, blade); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = input->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (input); gaiaFreeGeomColl (blade); } static void fnct_SplitRight (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SplitRight(BLOBencoded input, BLOBencoded blade) / / Returns a collection of geometries resulting by splitting a geometry [right half] / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr input = NULL; gaiaGeomCollPtr blade = NULL; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); input = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (input == NULL) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); blade = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (blade == NULL) { gaiaFreeGeomColl (input); sqlite3_result_null (context); return; } else { result = gaiaSplitRight (input, blade); if (result == NULL) sqlite3_result_null (context); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; result->Srid = input->Srid; gaiaToSpatiaLiteBlobWkbEx (result, &p_result, &len, gpkg_mode); sqlite3_result_blob (context, p_result, len, free); gaiaFreeGeomColl (result); } } gaiaFreeGeomColl (input); gaiaFreeGeomColl (blade); } static int getXYSinglePoint (gaiaGeomCollPtr geom, double *x, double *y) { /* check if this geometry is a simple Point (returning 2D coords) */ double z; double m; return getXYZMSinglePoint (geom, x, y, &z, &m); } static void fnct_Azimuth (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Azimuth(BLOBencoded pointA, BLOBencoded pointB) / / Returns the angle in radians from the horizontal of the vector / defined by pointA and pointB. / Angle is computed clockwise from down-to-up: on the clock: / 12=0; 3=PI/2; 6=PI; 9=3PI/2. / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; double x1; double y1; double x2; double y2; double a; double b; double rf; double azimuth; int srid; sqlite3 *sqlite = sqlite3_context_db_handle (context); int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } /* retrieving and validating the first point */ p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geom == NULL) { sqlite3_result_null (context); return; } if (!getXYSinglePoint (geom, &x1, &y1)) { gaiaFreeGeomColl (geom); sqlite3_result_null (context); return; } srid = geom->Srid; gaiaFreeGeomColl (geom); /* retrieving and validating the second point */ p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geom = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geom == NULL) { sqlite3_result_null (context); return; } if (!getXYSinglePoint (geom, &x2, &y2)) { gaiaFreeGeomColl (geom); sqlite3_result_null (context); return; } gaiaFreeGeomColl (geom); if (getEllipsoidParams (sqlite, srid, &a, &b, &rf)) { if (gaiaEllipsoidAzimuth (x1, y1, x2, y2, a, b, &azimuth)) sqlite3_result_double (context, azimuth); else sqlite3_result_null (context); return; } if (gaiaAzimuth (x1, y1, x2, y2, &azimuth)) sqlite3_result_double (context, azimuth); else sqlite3_result_null (context); } static void fnct_Project (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / Project(BLOBencoded point, distance Double, bearing Double) / / Returns a new Point projected from a start point given a / distance and a bearing. / - Point is expected to be Long/Lat / - Distance is in meters / - Bearing is in radians; on the clock: / 12=0; 3=PI/2; 6=PI; 9=3PI/2. / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; double x1; double y1; double x2; double y2; int ival; double distance; double azimuth; double a; double b; double rf; int srid; sqlite3 *sqlite = sqlite3_context_db_handle (context); int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) distance = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[1]); distance = ival; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) azimuth = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { ival = sqlite3_value_int (argv[2]); azimuth = ival; } else { sqlite3_result_null (context); return; } /* retrieving and validating the start point */ p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geom == NULL) { sqlite3_result_null (context); return; } if (!getXYSinglePoint (geom, &x1, &y1)) { gaiaFreeGeomColl (geom); sqlite3_result_null (context); return; } srid = geom->Srid; gaiaFreeGeomColl (geom); if (!getEllipsoidParams (sqlite, srid, &a, &b, &rf)) { sqlite3_result_null (context); return; } if (distance == 0.0) { /* returning the Start Point */ gaiaMakePoint (x1, y1, srid, &p_blob, &n_bytes); if (!p_blob) sqlite3_result_null (context); else sqlite3_result_blob (context, p_blob, n_bytes, free); return; } if (gaiaProjectedPoint (x1, y1, a, b, distance, azimuth, &x2, &y2)) { gaiaMakePoint (x2, y2, srid, &p_blob, &n_bytes); if (!p_blob) sqlite3_result_null (context); else sqlite3_result_blob (context, p_blob, n_bytes, free); } else sqlite3_result_null (context); } static void fnct_GeoHash (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeoHash(BLOBencoded geom) / GeoHash(BLOBencoded geom, Integer precision) / / Returns a GeoHash representation for input geometry / (expected to be in longitude/latitude coords) / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; int precision = 0; char *geo_hash; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc == 2) { if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) precision = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geom == NULL) { sqlite3_result_null (context); return; } geo_hash = gaiaGeoHash (geom, precision); if (geo_hash != NULL) { int len = strlen (geo_hash); sqlite3_result_text (context, geo_hash, len, free); } else sqlite3_result_null (context); gaiaFreeGeomColl (geom); } static char * get_srs_by_srid (sqlite3 * sqlite, int srid, int longsrs) { /* retrieves the short- or long- srs reference for the given srid */ char sql[1024]; int ret; const char *name; int i; char **results; int rows; int columns; int len; char *srs = NULL; if (longsrs) sprintf (sql, "SELECT 'urn:ogc:def:crs:' || auth_name || '::' || auth_srid " "FROM spatial_ref_sys WHERE srid = %d", srid); else sprintf (sql, "SELECT auth_name || ':' || auth_srid " "FROM spatial_ref_sys WHERE srid = %d", srid); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return NULL; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 0]; len = strlen (name); srs = malloc (len + 1); strcpy (srs, name); } } sqlite3_free_table (results); return srs; } static void fnct_AsX3D (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AsX3D(BLOBencoded geom) / AsX3D(BLOBencoded geom, Integer precision) / AsX3D(BLOBencoded geom, Integer precision, Integer options) / AsX3D(BLOBencoded geom, Integer precision, Integer options, Text refid) / / Returns an X3D representation for input geometry / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; int precision = 15; int options = 0; const char *refid = ""; char *srs = NULL; char *x3d; sqlite3 *sqlite = sqlite3_context_db_handle (context); int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc >= 2) { if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) precision = sqlite3_value_int (argv[1]); else { sqlite3_result_null (context); return; } } if (argc >= 3) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) options = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } } if (argc == 4) { if (sqlite3_value_type (argv[3]) == SQLITE_TEXT) refid = (const char *) sqlite3_value_text (argv[3]); else { sqlite3_result_null (context); return; } } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geom = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (geom == NULL) { sqlite3_result_null (context); return; } if (geom->Srid > 0) { int longshort = 0; if (options & 1) longshort = 1; srs = get_srs_by_srid (sqlite, geom->Srid, longshort); } x3d = gaiaAsX3D (geom, srs, precision, options, refid); if (x3d != NULL) { int len = strlen (x3d); sqlite3_result_text (context, x3d, len, free); } else sqlite3_result_null (context); gaiaFreeGeomColl (geom); if (srs) free (srs); } static void fnct_3DDistance (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / 3DDistance(BLOBencoded geom1, BLOBencoded geom2) / / returns the 3D distance between GEOM-1 and GEOM-2 */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; double dist; int ret; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_null (context); else { ret = gaia3DDistance (geo1, geo2, &dist); if (!ret) sqlite3_result_null (context); else sqlite3_result_double (context, dist); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_MaxDistance (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MaxDistance(BLOBencoded geom1, BLOBencoded geom2) / / returns the max 2D distance between GEOM-1 and GEOM-2 */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; double dist; int ret; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_null (context); else { ret = gaiaMaxDistance (geo1, geo2, &dist); if (!ret) sqlite3_result_null (context); else sqlite3_result_double (context, dist); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_3DMaxDistance (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / 3DMaxDistance(BLOBencoded geom1, BLOBencoded geom2) / / returns the max 3D distance between GEOM-1 and GEOM-2 */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geo1 = NULL; gaiaGeomCollPtr geo2 = NULL; double dist; int ret; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); p_blob = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); geo2 = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo1 || !geo2) sqlite3_result_null (context); else { ret = gaia3DMaxDistance (geo1, geo2, &dist); if (!ret) sqlite3_result_null (context); else sqlite3_result_double (context, dist); } gaiaFreeGeomColl (geo1); gaiaFreeGeomColl (geo2); } static void fnct_Node (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_Node(BLOBencoded linestring(s)) / / Returns a new new (Multi)Linestring by re-noding the input linestring(s) / NULL is returned for invalid arguments */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr input; gaiaGeomCollPtr result; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } /* retrieving the input geometry */ p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); input = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (input == NULL) { sqlite3_result_null (context); return; } result = gaiaNodeLines (input); if (result != NULL) { gaiaToSpatiaLiteBlobWkbEx (result, &p_blob, &n_bytes, gpkg_mode); sqlite3_result_blob (context, p_blob, n_bytes, free); gaiaFreeGeomColl (result); } else sqlite3_result_null (context); gaiaFreeGeomColl (input); } static int check_all_linestrings (gaiaGeomCollPtr in) { /* check id this is a collection of Linestrings */ int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; if (in == NULL) return 0; /* checking if we have any POINT */ pt = in->FirstPoint; while (pt) { pts++; pt = pt->Next; } if (pts > 0) return 0; /* checking if we have any POLYGON */ pg = in->FirstPolygon; while (pg) { pgs++; pg = pg->Next; } if (pgs > 0) return 0; /* checking if we have any LINESTRING */ ln = in->FirstLinestring; while (ln) { lns++; ln = ln->Next; } if (lns == 0) return 0; return 1; } static gaiaGeomCollPtr get_nodes (gaiaGeomCollPtr in) { /* extracts all Nodes (Linestring extermities) */ int iv; double x; double y; double m; double z; gaiaLinestringPtr ln; gaiaGeomCollPtr out; if (in == NULL) return NULL; if (in->DimensionModel == GAIA_XY_M) out = gaiaAllocGeomCollXYM (); else if (in->DimensionModel == GAIA_XY_Z) out = gaiaAllocGeomCollXYZ (); else if (in->DimensionModel == GAIA_XY_Z_M) out = gaiaAllocGeomCollXYZM (); else out = gaiaAllocGeomColl (); out->Srid = in->Srid; ln = in->FirstLinestring; while (ln) { /* saving the extreme points - Start */ if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, 0, &x, &y, &z); gaiaAddPointToGeomCollXYZ (out, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, 0, &x, &y, &m); gaiaAddPointToGeomCollXYM (out, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, 0, &x, &y, &z, &m); gaiaAddPointToGeomCollXYZM (out, x, y, z, m); } else { gaiaGetPoint (ln->Coords, 0, &x, &y); gaiaAddPointToGeomColl (out, x, y); } /* saving the extreme points - End */ iv = ln->Points - 1; if (ln->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (ln->Coords, iv, &x, &y, &z); gaiaAddPointToGeomCollXYZ (out, x, y, z); } else if (ln->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (ln->Coords, iv, &x, &y, &m); gaiaAddPointToGeomCollXYM (out, x, y, m); } else if (ln->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (ln->Coords, iv, &x, &y, &z, &m); gaiaAddPointToGeomCollXYZM (out, x, y, z, m); } else { gaiaGetPoint (ln->Coords, iv, &x, &y); gaiaAddPointToGeomColl (out, x, y); } ln = ln->Next; } return out; } static int point_is_defined (gaiaPointPtr in, gaiaGeomCollPtr geom) { /* checking if a Point is already defined */ gaiaPointPtr pt = geom->FirstPoint; while (pt) { if (geom->DimensionModel == GAIA_XY_Z) { if (pt->X == in->X && pt->Y == in->Y && pt->Z == in->Z) return 1; } else if (geom->DimensionModel == GAIA_XY_M) { if (pt->X == in->X && pt->Y == in->Y && pt->M == in->M) return 1; } else if (geom->DimensionModel == GAIA_XY_Z_M) { if (pt->X == in->X && pt->Y == in->Y && pt->Z == in->Z && pt->M == in->M) return 1; } else { if (pt->X == in->X && pt->Y == in->Y) return 1; } pt = pt->Next; } return 0; } static gaiaGeomCollPtr get_self_intersections (gaiaGeomCollPtr in_old, gaiaGeomCollPtr in_new) { /* extracting the self-intersection points */ gaiaPointPtr pt; gaiaGeomCollPtr out; if (in_old->DimensionModel == GAIA_XY_M) out = gaiaAllocGeomCollXYM (); else if (in_old->DimensionModel == GAIA_XY_Z) out = gaiaAllocGeomCollXYZ (); else if (in_old->DimensionModel == GAIA_XY_Z_M) out = gaiaAllocGeomCollXYZM (); else out = gaiaAllocGeomColl (); out->Srid = in_old->Srid; pt = in_new->FirstPoint; while (pt) { int ok1 = point_is_defined (pt, in_old); int ok2 = point_is_defined (pt, out); if (!ok1 && !ok2) { /* inserting a Point into the result collection */ if (out->DimensionModel == GAIA_XY_Z) gaiaAddPointToGeomCollXYZ (out, pt->X, pt->Y, pt->Z); else if (out->DimensionModel == GAIA_XY_M) gaiaAddPointToGeomCollXYM (out, pt->X, pt->Y, pt->M); else if (out->DimensionModel == GAIA_XY_Z_M) gaiaAddPointToGeomCollXYZM (out, pt->X, pt->Y, pt->Z, pt->M); else gaiaAddPointToGeomColl (out, pt->X, pt->Y); } pt = pt->Next; } if (out->FirstPoint == NULL) { /* no self-intersections were found */ gaiaFreeGeomColl (out); return NULL; } return out; } static void fnct_SelfIntersections (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ST_SelfIntersections(BLOBencoded linestring(s)) / / Returns a MultiPoint Geometry representing any self-intersection / found within the input geometry [linestring(s)] / NULL is returned for invalid arguments, or when no self-intersections / were found */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr input; gaiaGeomCollPtr noded; gaiaGeomCollPtr result; gaiaGeomCollPtr nodes_in; gaiaGeomCollPtr nodes_out; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } /* retrieving the input geometry */ p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); input = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (input == NULL) { sqlite3_result_null (context); return; } /* checking the input (Linestrings only) */ if (!check_all_linestrings (input)) { gaiaFreeGeomColl (input); sqlite3_result_null (context); return; } /* extracting all input nodes */ nodes_in = get_nodes (input); noded = gaiaNodeLines (input); gaiaFreeGeomColl (input); /* extracting all output nodes */ nodes_out = get_nodes (noded); gaiaFreeGeomColl (noded); /* identifying the intersections */ result = get_self_intersections (nodes_in, nodes_out); gaiaFreeGeomColl (nodes_in); gaiaFreeGeomColl (nodes_out); if (result != NULL) { result->DeclaredType = GAIA_MULTIPOINT; gaiaToSpatiaLiteBlobWkbEx (result, &p_blob, &n_bytes, gpkg_mode); sqlite3_result_blob (context, p_blob, n_bytes, free); gaiaFreeGeomColl (result); } else sqlite3_result_null (context); } #endif /* end LWGEOM support */ #endif /* end including GEOS */ static int text2double (const unsigned char *str, double *val) { /* checks for a valid number, eventually returning a DOUBLE */ int err = 0; int sign = 0; int decimal = 0; int exp = 0; int expsign = 0; const unsigned char *p = str; while (*p != '\0') { switch (*p) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': break; case '-': case '+': if (!exp) sign++; else expsign++; case '.': decimal++; break; case 'e': case 'E': exp++; break; default: err = 1; break; }; p++; } if (sign > 1 || expsign > 1 || decimal > 1 || (exp == 0 && expsign > 0)) err = 1; if (err) return 0; *val = atof ((const char *) str); return 1; } static void fnct_CastToInteger (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToInteger(generic value) / / returns an INTEGER value [if conversion is possible] / or NULL in any other case */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { sqlite3_int64 val = sqlite3_value_int64 (argv[0]); sqlite3_result_int64 (context, val); return; } if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { sqlite3_int64 val; double dval = sqlite3_value_double (argv[0]); double diff = dval - floor (dval); val = (sqlite3_int64) sqlite3_value_double (argv[0]); if (diff >= 0.5) val++; sqlite3_result_int64 (context, val); return; } if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { const unsigned char *txt = sqlite3_value_text (argv[0]); double dval; if (text2double (txt, &dval)) { sqlite3_int64 val; double dval = sqlite3_value_double (argv[0]); double diff = dval - floor (dval); val = (sqlite3_int64) sqlite3_value_double (argv[0]); if (diff >= 0.5) val++; sqlite3_result_int64 (context, val); return; } } sqlite3_result_null (context); } static void fnct_CastToDouble (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToDouble(generic value) / / returns a DOUBLE value [if conversion is possible] / or NULL in any other case */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { double val = (double) sqlite3_value_int64 (argv[0]); sqlite3_result_double (context, val); return; } if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { double val = sqlite3_value_double (argv[0]); sqlite3_result_double (context, val); return; } if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { const unsigned char *txt = sqlite3_value_text (argv[0]); double val; if (text2double (txt, &val)) { sqlite3_result_double (context, val); return; } } sqlite3_result_null (context); } static void fnct_CastToText (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToText(generic value) / CastToText(generic value, Integer left-aligned-length) / / returns a TEXT value [if conversion is possible] / or NULL in any other case */ char *txt; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { char format[32]; const char *fmt = FRMT64; sqlite3_int64 val; if (argc == 2) { int length; if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } length = sqlite3_value_int (argv[1]); if (length > 0) { sprintf (format, "%%0%d" FRMT64_WO_PCT, length); fmt = format; } } val = sqlite3_value_int64 (argv[0]); txt = sqlite3_mprintf (fmt, val); sqlite3_result_text (context, txt, strlen (txt), sqlite3_free); return; } if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { int i; int len; double val = sqlite3_value_double (argv[0]); char format[32]; const char *fmt = "%1.18f"; if (argc == 2) { int length; if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } length = sqlite3_value_int (argv[1]); if (length > 0) { sprintf (format, "%%0%d.18f", length + 19); fmt = format; } } txt = sqlite3_mprintf (fmt, val); len = strlen (txt); for (i = len - 1; i > 0; i--) { /* suppressing meaningless trailing zeroes */ if (txt[i] >= '1' && txt[i] <= '9') break; if (txt[i] == '.') { txt[i + 1] = '0'; break; } if (txt[i] == '0') txt[i] = '\0'; } sqlite3_result_text (context, txt, strlen (txt), sqlite3_free); return; } if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { int n_bytes; txt = (char *) sqlite3_value_text (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); sqlite3_result_text (context, txt, n_bytes, SQLITE_TRANSIENT); return; } sqlite3_result_null (context); } static int parseHexByte (unsigned char hi, unsigned char lo, unsigned char *val) { /* converting a byte for its Hex representation */ unsigned char x; switch (hi) { case '0': x = 0; break; case '1': x = 16; break; case '2': x = 16 * 2; break; case '3': x = 16 * 3; break; case '4': x = 16 * 4; break; case '5': x = 16 * 5; break; case '6': x = 16 * 6; break; case '7': x = 16 * 7; break; case '8': x = 16 * 8; break; case '9': x = 16 * 9; break; case 'a': case 'A': x = 16 * 10; break; case 'b': case 'B': x = 16 * 11; break; case 'c': case 'C': x = 16 * 12; break; case 'd': case 'D': x = 16 * 13; break; case 'e': case 'E': x = 16 * 14; break; case 'f': case 'F': x = 16 * 15; break; default: return 0; }; switch (lo) { case '0': x += 0; break; case '1': x += 1; break; case '2': x += 2; break; case '3': x += 3; break; case '4': x += 4; break; case '5': x += 5; break; case '6': x += 6; break; case '7': x += 7; break; case '8': x += 8; break; case '9': x += 9; break; case 'a': case 'A': x += 10; break; case 'b': case 'B': x += 11; break; case 'c': case 'C': x += 12; break; case 'd': case 'D': x += 13; break; case 'e': case 'E': x += 14; break; case 'f': case 'F': x += 15; break; default: return 0; }; *val = x; return 1; } static int parseHexString (const unsigned char *in, int in_len, unsigned char **out, int *out_len) { /* parsing an Hexadecimal string */ unsigned char *buf; unsigned char *p_out; unsigned char byteval; int i; int len; *out = NULL; *out_len = 0; if (in == NULL) return 0; len = in_len / 2; if (len * 2 != in_len) /* # digits is an odd number */ return 0; buf = malloc (len); p_out = buf; for (i = 0; i < in_len; i += 2) { if (!parseHexByte (in[i], in[i + 1], &byteval)) goto error; *p_out++ = byteval; } *out = buf; *out_len = len; return 1; error: free (buf); return 0; } static void fnct_CastToBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CastToBlob(generic value) / or / CastToBlob(generic value, boolen hex_input) / / returns a BLOB value [if conversion is possible] / or NULL in any other case */ const unsigned char *p_blob; int n_bytes; int is_hex = 0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc == 2) { if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } is_hex = sqlite3_value_int (argv[1]); } if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (is_hex) { /* attempting to convert Hexadecimal input */ unsigned char *blob; int bytes; if (!parseHexString (p_blob, n_bytes, &blob, &bytes)) { sqlite3_result_null (context); return; } sqlite3_result_blob (context, blob, bytes, free); return; } sqlite3_result_blob (context, p_blob, n_bytes, SQLITE_TRANSIENT); return; } if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { p_blob = sqlite3_value_text (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (is_hex) { /* attempting to convert Hexadecimal input */ unsigned char *blob; int bytes; if (!parseHexString (p_blob, n_bytes, &blob, &bytes)) { sqlite3_result_null (context); return; } sqlite3_result_blob (context, blob, bytes, free); return; } sqlite3_result_blob (context, p_blob, n_bytes, SQLITE_TRANSIENT); return; } sqlite3_result_null (context); } static void fnct_ForceAsNull (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ForceAsNull(generic val1, generic val2) / / returns a NULL value if val1 and val2 are equal / (and exactly of the same type) / return val1 in any other case */ int type1; int type2; const unsigned char *p_blob; int n_bytes; const unsigned char *p_blob2; int n_bytes2; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ type1 = sqlite3_value_type (argv[0]); type2 = sqlite3_value_type (argv[1]); if (type1 == type2) { switch (type1) { case SQLITE_INTEGER: if (sqlite3_value_int64 (argv[0]) == sqlite3_value_int64 (argv[1])) { sqlite3_result_null (context); return; } break; case SQLITE_FLOAT: if (sqlite3_value_double (argv[0]) == sqlite3_value_double (argv[1])) { sqlite3_result_null (context); return; } break; case SQLITE_TEXT: p_blob = sqlite3_value_text (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); p_blob2 = sqlite3_value_text (argv[1]); n_bytes2 = sqlite3_value_bytes (argv[1]); if (n_bytes == n_bytes2) { if (strcasecmp ((const char *) p_blob, (const char *) p_blob2) == 0) { sqlite3_result_null (context); return; } } break; case SQLITE_BLOB: p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); p_blob2 = sqlite3_value_blob (argv[1]); n_bytes2 = sqlite3_value_bytes (argv[1]); if (n_bytes == n_bytes2) { if (memcmp (p_blob, p_blob2, n_bytes) == 0) { sqlite3_result_null (context); return; } } break; case SQLITE_NULL: sqlite3_result_null (context); return; }; } /* returning the first argument */ switch (type1) { case SQLITE_INTEGER: sqlite3_result_int64 (context, sqlite3_value_int64 (argv[0])); break; case SQLITE_FLOAT: sqlite3_result_double (context, sqlite3_value_double (argv[0])); break; case SQLITE_TEXT: p_blob = sqlite3_value_text (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); sqlite3_result_text (context, (const char *) p_blob, n_bytes, SQLITE_TRANSIENT); break; case SQLITE_BLOB: p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); sqlite3_result_blob (context, p_blob, n_bytes, SQLITE_TRANSIENT); break; default: sqlite3_result_null (context); break; }; } static void fnct_CreateUUID (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CreateUUID() / / returns a TEXT value containing an UUID / [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx] */ unsigned char rnd[16]; char uuid[64]; char *p = uuid; int i; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ sqlite3_randomness (16, rnd); for (i = 0; i < 16; i++) { if (i == 4 || i == 6 || i == 8 || i == 10) *p++ = '-'; sprintf (p, "%02x", rnd[i]); p += 2; } *p = '\0'; uuid[14] = '4'; uuid[19] = '8'; sqlite3_result_text (context, uuid, strlen (uuid), SQLITE_TRANSIENT); } static void fnct_MD5Checksum (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MD5Checksum(blob) / / returns a TEXT value containing an hex MD5 checksum / [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] / or / NULL on invalid arguments */ void *md5; char *checksum; const unsigned char *blob; int blob_len; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { blob = sqlite3_value_blob (argv[0]); blob_len = sqlite3_value_bytes (argv[0]); } else if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { blob = sqlite3_value_text (argv[0]); blob_len = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } /* creating an MD5 object */ md5 = gaiaCreateMD5Checksum (); /* evaluating the BLOB */ gaiaUpdateMD5Checksum (md5, blob, blob_len); checksum = gaiaFinalizeMD5Checksum (md5); gaiaFreeMD5Checksum (md5); if (checksum == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, checksum, strlen (checksum), free); } static void fnct_MD5TotalChecksum_step (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / MD5TotalChecksum(BLOB) / / aggregate function - STEP / */ void **p; void *md5; const unsigned char *blob; int blob_len; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { blob = sqlite3_value_blob (argv[0]); blob_len = sqlite3_value_bytes (argv[0]); } else if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) { blob = sqlite3_value_text (argv[0]); blob_len = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } p = sqlite3_aggregate_context (context, sizeof (void *)); if (!(*p)) { /* this is the first row - creating an MD5 object */ md5 = gaiaCreateMD5Checksum (); gaiaUpdateMD5Checksum (md5, blob, blob_len); *p = md5; } else { /* subsequent rows */ md5 = *p; gaiaUpdateMD5Checksum (md5, blob, blob_len); } } static void fnct_MD5TotalChecksum_final (sqlite3_context * context) { /* SQL function: / MD5TotalChecksum(BLOB) / / aggregate function - FINAL / */ void **p; void *md5; char *checksum; p = sqlite3_aggregate_context (context, 0); if (!(*p)) { sqlite3_result_null (context); return; } md5 = *p; checksum = gaiaFinalizeMD5Checksum (md5); gaiaFreeMD5Checksum (md5); if (checksum == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, checksum, strlen (checksum), free); } static void fnct_EncodeURL (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / EncodeURL(text) / / returns a TEXT value containing the percent-encoded URL / or / NULL on invalid arguments */ const char *url; char *encoded; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) url = (const char *) sqlite3_value_text (argv[0]); else { sqlite3_result_null (context); return; } /* encoding the URL */ encoded = gaiaEncodeURL (url); if (encoded == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, encoded, strlen (encoded), free); } static void fnct_DecodeURL (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DecodeURL(text) / / returns a TEXT value containing the URL cleaned from percent-encoding / or / NULL on invalid arguments */ char *url; const char *encoded; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) encoded = (const char *) sqlite3_value_text (argv[0]); else { sqlite3_result_null (context); return; } /* decoding the URL */ url = gaiaDecodeURL (encoded); if (url == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, url, strlen (url), free); } static void fnct_DirNameFromPath (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DirNameFromPath(text) / / returns a TEXT value containing the Directory Name from a Path / or / NULL on invalid arguments */ char *dir; const char *path; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) path = (const char *) sqlite3_value_text (argv[0]); else { sqlite3_result_null (context); return; } /* breaking the Path */ dir = gaiaDirNameFromPath (path); if (dir == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, dir, strlen (dir), free); } static void fnct_FullFileNameFromPath (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / FullFileNameFromPath(text) / / returns a TEXT value containing the Full FileName (including extension) / from a Path / or / NULL on invalid arguments */ char *name; const char *path; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) path = (const char *) sqlite3_value_text (argv[0]); else { sqlite3_result_null (context); return; } /* breaking the Path */ name = gaiaFullFileNameFromPath (path); if (name == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, name, strlen (name), free); } static void fnct_FileNameFromPath (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / FileNameFromPath(text) / / returns a TEXT value containing the FileName (excluding extension) / from a Path / or / NULL on invalid arguments */ char *name; const char *path; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) path = (const char *) sqlite3_value_text (argv[0]); else { sqlite3_result_null (context); return; } /* breaking the Path */ name = gaiaFileNameFromPath (path); if (name == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, name, strlen (name), free); } static void fnct_FileExtFromPath (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / FileExtFromPath(text) / / returns a TEXT value containing the Extension (if any) from a Path / or / NULL on invalid arguments */ char *ext; const char *path; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) path = (const char *) sqlite3_value_text (argv[0]); else { sqlite3_result_null (context); return; } /* breaking the Path */ ext = gaiaFileExtFromPath (path); if (ext == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, ext, strlen (ext), free); } #ifndef OMIT_MATHSQL /* supporting SQL math functions */ static int testInvalidFP (double x) { /* testing if this one is an invalid Floating Point */ #ifdef _WIN32 if (_fpclass (x) == _FPCLASS_NN || _fpclass (x) == _FPCLASS_PN || _fpclass (x) == _FPCLASS_NZ || _fpclass (x) == _FPCLASS_PZ) ; else return 1; #else if (fpclassify (x) == FP_NORMAL || fpclassify (x) == FP_ZERO) ; else return 1; #endif return 0; } static void fnct_math_acos (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / acos(double X) / / Returns the arc cosine of X, that is, the value whose cosine is X / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = acos (sqlite3_value_double (argv[0])); if (testInvalidFP (x)) sqlite3_result_null (context); else sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = acos (x); if (testInvalidFP (x)) sqlite3_result_null (context); else sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_asin (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / asin(double X) / / Returns the arc sine of X, that is, the value whose sine is X / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = asin (sqlite3_value_double (argv[0])); if (testInvalidFP (x)) sqlite3_result_null (context); else sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = asin (x); if (testInvalidFP (x)) sqlite3_result_null (context); else sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_atan (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / atan(double X) / / Returns the arc tangent of X, that is, the value whose tangent is X / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = atan (sqlite3_value_double (argv[0])); sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = atan (x); sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_atan2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / atan2(double Y, double X) / / Returns the principal value of the arc tangent of Y/X, using / the signs of the two arguments to determine the quadrant of / the result. / or NULL if any error is encountered */ int int_value; double x; double y; double t; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); y = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); x = int_value; } else { sqlite3_result_null (context); return; } t = atan2 (y, x); sqlite3_result_double (context, t); } static void fnct_math_ceil (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ceil(double X) / / Returns the smallest integer value not less than X / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = ceil (sqlite3_value_double (argv[0])); sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = ceil (x); sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_cos (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / cos(double X) / / Returns the cosine of X, where X is given in radians / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = cos (sqlite3_value_double (argv[0])); sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = cos (x); sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_cot (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / cot(double X) / / Returns the cotangent of X / or NULL if any error is encountered */ int int_value; double x; double tang; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } tang = tan (x); if (tang == 0.0) { sqlite3_result_null (context); return; } x = 1.0 / tang; sqlite3_result_double (context, x); } static void fnct_math_degrees (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / degrees(double X) / / Returns the argument X, converted from radians to degrees / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } x = x * 57.29577951308232; sqlite3_result_double (context, x); } static void fnct_math_exp (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / exp(double X) / / Returns the value of e (the base of natural logarithms) raised to the power of X / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = exp (sqlite3_value_double (argv[0])); sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = exp (x); sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_floor (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / floor(double X) / / Returns the largest integer value not greater than X / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = floor (sqlite3_value_double (argv[0])); sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = floor (x); sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_logn (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / log(double X) / / Returns the natural logarithm of X; that is, the base-e logarithm of X / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = log (sqlite3_value_double (argv[0])); if (testInvalidFP (x)) sqlite3_result_null (context); else sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = log (x); if (testInvalidFP (x)) sqlite3_result_null (context); else sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_logn2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / log(double B, double X) / / Returns the logarithm of X to the base B / or NULL if any error is encountered */ int int_value; double x = 0.0; double b = 1.0; double log1; double log2; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) b = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); b = int_value; } else { sqlite3_result_null (context); return; } if (x <= 0.0 || b <= 1.0) { sqlite3_result_null (context); return; } log1 = log (x); if (testInvalidFP (log1)) { sqlite3_result_null (context); return; } log2 = log (b); if (testInvalidFP (log2)) { sqlite3_result_null (context); return; } sqlite3_result_double (context, log1 / log2); } static void fnct_math_log_2 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / log2(double X) / / Returns the base-2 logarithm of X / or NULL if any error is encountered */ int int_value; double x; double log1; double log2; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } log1 = log (x); if (testInvalidFP (log1)) { sqlite3_result_null (context); return; } log2 = log (2.0); sqlite3_result_double (context, log1 / log2); } static void fnct_math_log_10 (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / log10(double X) / / Returns the base-10 logarithm of X / or NULL if any error is encountered */ int int_value; double x; double log1; double log2; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } log1 = log (x); if (testInvalidFP (log1)) { sqlite3_result_null (context); return; } log2 = log (10.0); sqlite3_result_double (context, log1 / log2); } static void fnct_math_pi (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / pi(void) / / Returns the value of (pi) */ GAIA_UNUSED (); /* LCOV_EXCL_LINE */ sqlite3_result_double (context, 3.14159265358979323846); } static void fnct_math_pow (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / pow(double X, double Y) / / Returns the value of X raised to the power of Y. / or NULL if any error is encountered */ int int_value; double x; double y; double p; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) y = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); y = int_value; } else { sqlite3_result_null (context); return; } p = pow (x, y); if (testInvalidFP (p)) sqlite3_result_null (context); else sqlite3_result_double (context, p); } static void fnct_math_stddev_step (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / stddev_pop(double X) / stddev_samp(double X) / var_pop(double X) / var_samp(double X) / / aggregate function - STEP / */ struct stddev_str *p; int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else return; p = sqlite3_aggregate_context (context, sizeof (struct stddev_str)); if (!(p->cleaned)) { p->cleaned = 1; p->mean = x; p->quot = 0.0; p->count = 0.0; } p->count += 1.0; p->quot = p->quot + (((p->count - 1.0) * ((x - p->mean) * (x - p->mean))) / p->count); p->mean = p->mean + ((x - p->mean) / p->count); } static void fnct_math_stddev_pop_final (sqlite3_context * context) { /* SQL function: / stddev_pop(double X) / aggregate function - FINAL / */ double x; struct stddev_str *p = sqlite3_aggregate_context (context, 0); if (!p) { sqlite3_result_null (context); return; } x = sqrt (p->quot / p->count); sqlite3_result_double (context, x); } static void fnct_math_stddev_samp_final (sqlite3_context * context) { /* SQL function: / stddev_samp(double X) / aggregate function - FINAL / */ double x; struct stddev_str *p = sqlite3_aggregate_context (context, 0); if (!p) { sqlite3_result_null (context); return; } x = sqrt (p->quot / (p->count - 1.0)); sqlite3_result_double (context, x); } static void fnct_math_var_pop_final (sqlite3_context * context) { /* SQL function: / var_pop(double X) / aggregate function - FINAL / */ double x; struct stddev_str *p = sqlite3_aggregate_context (context, 0); if (!p) { sqlite3_result_null (context); return; } x = p->quot / p->count; sqlite3_result_double (context, x); } static void fnct_math_var_samp_final (sqlite3_context * context) { /* SQL function: / var_samp(double X) / aggregate function - FINAL / */ double x; struct stddev_str *p = sqlite3_aggregate_context (context, 0); if (!p) { sqlite3_result_null (context); return; } x = p->quot / (p->count - 1.0); sqlite3_result_double (context, x); } static void fnct_math_radians (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / radians(double X) / / Returns the argument X, converted from degrees to radians / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } x = x * .0174532925199432958; sqlite3_result_double (context, x); } static void fnct_math_sign (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / sign(double X) / / Returns the sign of the argument as -1, 0, or 1, depending on whether X is negative, zero, or positive / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) x = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; } else { sqlite3_result_null (context); return; } if (x > 0.0) sqlite3_result_double (context, 1.0); else if (x < 0.0) sqlite3_result_double (context, -1.0); else sqlite3_result_double (context, 0.0); } static void fnct_math_sin (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / sin(double X) / / Returns the sine of X, where X is given in radians / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = sin (sqlite3_value_double (argv[0])); sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = sin (x); sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_sqrt (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / sqrt(double X) / / Returns the square root of a non-negative number X / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = sqrt (sqlite3_value_double (argv[0])); if (testInvalidFP (x)) sqlite3_result_null (context); else sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = sqrt (x); if (testInvalidFP (x)) sqlite3_result_null (context); else sqlite3_result_double (context, x); } else sqlite3_result_null (context); } static void fnct_math_tan (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / tan(double X) / / Returns the tangent of X, where X is given in radians / or NULL if any error is encountered */ int int_value; double x; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) { x = tan (sqlite3_value_double (argv[0])); sqlite3_result_double (context, x); } else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); x = int_value; x = tan (x); sqlite3_result_double (context, x); } else sqlite3_result_null (context); } #endif /* end supporting SQL math functions */ static void fnct_GeomFromExifGpsBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeomFromExifGpsBlob(BLOB encoded image) / / returns: / a POINT geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; gaiaGeomCollPtr geom; unsigned char *geoblob; int geosize; double longitude; double latitude; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) gpkg_mode = cache->gpkg_mode; if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (gaiaGetGpsCoords (p_blob, n_bytes, &longitude, &latitude)) { geom = gaiaAllocGeomColl (); geom->Srid = 4326; gaiaAddPointToGeomColl (geom, longitude, latitude); gaiaToSpatiaLiteBlobWkbEx (geom, &geoblob, &geosize, gpkg_mode); gaiaFreeGeomColl (geom); sqlite3_result_blob (context, geoblob, geosize, free); } else sqlite3_result_null (context); } static char * guess_mime_type (const unsigned char *p_blob, int n_bytes) { /* guessing the mime-type corresponding to some BLOB */ int blob_type; const char *mime = NULL; int len; char *string = NULL; blob_type = gaiaGuessBlobType (p_blob, n_bytes); switch (blob_type) { case GAIA_ZIP_BLOB: mime = "application/zip"; break; case GAIA_PDF_BLOB: mime = "application/pdf"; break; case GAIA_TIFF_BLOB: mime = "image/tiff"; break; case GAIA_GIF_BLOB: mime = "image/gif"; break; case GAIA_PNG_BLOB: mime = "image/png"; break; case GAIA_JP2_BLOB: mime = "image/jp2"; break; case GAIA_JPEG_BLOB: case GAIA_EXIF_BLOB: case GAIA_EXIF_GPS_BLOB: mime = "image/jpeg"; break; #ifdef ENABLE_LIBXML2 /* including LIBXML2 */ case GAIA_XML_BLOB: mime = "application/xml"; if (gaiaIsSvgXmlBlob (p_blob, n_bytes)) mime = "image/svg+xml"; break; #endif /* end including LIBXML2 */ }; if (mime != NULL) { len = strlen (mime); string = malloc (len + 1); strcpy (string, mime); } return string; } static void fnct_GetMimeType (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GetMimeType(BLOB) / / returns: / the Mime-Type corresponding to the BLOB / or NULL if any error is encountered or no valid mime is defined */ unsigned char *p_blob; int n_bytes; char *mime = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); mime = guess_mime_type (p_blob, n_bytes); if (mime == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, mime, strlen (mime), free); } static void blob_guess (sqlite3_context * context, int argc, sqlite3_value ** argv, int request) { /* SQL function: / IsGifBlob(BLOB encoded image) / IsPngBlob, IsJpegBlob, IsExifBlob, IsExifGpsBlob, IsTiffBlob, / IsZipBlob, IsPdfBlob, IsJP2Blob, IsGeometryBlob / / returns: / 1 if the required BLOB_TYPE is TRUE / 0 otherwise / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int blob_type; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); blob_type = gaiaGuessBlobType (p_blob, n_bytes); if (request == GAIA_GEOMETRY_BLOB) { if (blob_type == GAIA_GEOMETRY_BLOB) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (request == GAIA_ZIP_BLOB) { if (blob_type == GAIA_ZIP_BLOB) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (request == GAIA_PDF_BLOB) { if (blob_type == GAIA_PDF_BLOB) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (request == GAIA_TIFF_BLOB) { if (blob_type == GAIA_TIFF_BLOB) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (request == GAIA_GIF_BLOB) { if (blob_type == GAIA_GIF_BLOB) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (request == GAIA_PNG_BLOB) { if (blob_type == GAIA_PNG_BLOB) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (request == GAIA_JPEG_BLOB) { if (blob_type == GAIA_JPEG_BLOB || blob_type == GAIA_EXIF_BLOB || blob_type == GAIA_EXIF_GPS_BLOB) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (request == GAIA_EXIF_BLOB) { if (blob_type == GAIA_EXIF_BLOB || blob_type == GAIA_EXIF_GPS_BLOB) { sqlite3_result_int (context, 1); } else sqlite3_result_int (context, 0); return; } if (request == GAIA_EXIF_GPS_BLOB) { if (blob_type == GAIA_EXIF_GPS_BLOB) { sqlite3_result_int (context, 1); } else sqlite3_result_int (context, 0); return; } if (request == GAIA_WEBP_BLOB) { if (blob_type == GAIA_WEBP_BLOB) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } if (request == GAIA_JP2_BLOB) { if (blob_type == GAIA_JP2_BLOB) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); return; } sqlite3_result_int (context, -1); } /* / the following functions simply readdress the blob_guess() / setting the appropriate request mode */ static void fnct_IsGeometryBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_GEOMETRY_BLOB); } static void fnct_IsZipBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_ZIP_BLOB); } static void fnct_IsPdfBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_PDF_BLOB); } static void fnct_IsTiffBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_TIFF_BLOB); } static void fnct_IsGifBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_GIF_BLOB); } static void fnct_IsPngBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_PNG_BLOB); } static void fnct_IsJpegBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_JPEG_BLOB); } static void fnct_IsExifBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_EXIF_BLOB); } static void fnct_IsExifGpsBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_EXIF_GPS_BLOB); } static void fnct_IsWebPBlob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_WEBP_BLOB); } static void fnct_IsJP2Blob (sqlite3_context * context, int argc, sqlite3_value ** argv) { blob_guess (context, argc, argv, GAIA_JP2_BLOB); } static void fnct_BlobFromFile (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BlobFromFile(TEXT filepath) / / returns: / some BLOB on success / or NULL on failure */ unsigned char *p_blob; int n_bytes; int max_blob; int rd; sqlite3 *sqlite = sqlite3_context_db_handle (context); const char *path = NULL; FILE *in = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) path = (const char *) sqlite3_value_text (argv[0]); if (path == NULL) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); in = fopen (path, "rb"); if (in == NULL) { sqlite3_result_null (context); return; } else { /* querying the file length */ if (fseek (in, 0, SEEK_END) < 0) { sqlite3_result_null (context); fclose (in); return; } n_bytes = ftell (in); max_blob = sqlite3_limit (sqlite, SQLITE_LIMIT_LENGTH, -1); if (n_bytes > max_blob) { /* too big; cannot be stored into a BLOB */ sqlite3_result_null (context); fclose (in); return; } rewind (in); p_blob = malloc (n_bytes); /* attempting to load the BLOB from the file */ rd = fread (p_blob, 1, n_bytes, in); fclose (in); if (rd != n_bytes) { /* read error */ free (p_blob); sqlite3_result_null (context); return; } sqlite3_result_blob (context, p_blob, n_bytes, free); } } static void fnct_BlobToFile (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / BlobToFile(BLOB payload, TEXT filepath) / / returns: / 1 on success / or 0 on failure */ unsigned char *p_blob; int n_bytes; const char *path = NULL; FILE *out = NULL; int ret = 1; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, 0); return; } if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) path = (const char *) sqlite3_value_text (argv[1]); if (path == NULL) { sqlite3_result_int (context, 0); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); out = fopen (path, "wb"); if (out == NULL) ret = 0; else { /* exporting the BLOB into the file */ int wr = fwrite (p_blob, 1, n_bytes, out); if (wr != n_bytes) ret = 0; fclose (out); } sqlite3_result_int (context, ret); } static int load_dxf (sqlite3 * db_handle, struct splite_internal_cache *cache, char *filename, int srid, int append, int force_dims, int mode, int special_rings, char *prefix, char *layer_name) { /* scanning a Directory and processing all DXF files */ int ret; gaiaDxfParserPtr dxf = NULL; /* creating a DXF parser */ dxf = gaiaCreateDxfParser (srid, force_dims, prefix, layer_name, special_rings); if (dxf == NULL) { ret = 0; goto stop_dxf; } /* attempting to parse the DXF input file */ if (gaiaParseDxfFile_r (cache, dxf, filename)) { /* loading into the DB */ if (!gaiaLoadFromDxfParser (db_handle, dxf, mode, append)) { ret = 0; spatialite_e ("DB error while loading: %s\n", filename); } } else { ret = 0; spatialite_e ("Unable to parse: %s\n", filename); goto stop_dxf; } spatialite_e ("\n*** DXF file successfully loaded\n"); ret = 1; stop_dxf: /* destroying the DXF parser */ gaiaDestroyDxfParser (dxf); return ret; } static void fnct_ImportDXF (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ImportDXF(TEXT filename) / or / InportDXF(TEXT filename, INT srid, INT append, TEXT dims, / TEXT mode, TEXT special_rings, TEXT table_prefix, / TEXT layer_name) / / returns: / 1 on success / or 0 on failure / NULL on invalid arguments */ int ret; char *filename; int srid = -1; int append = 0; int special_rings = GAIA_DXF_RING_NONE; int mode = GAIA_DXF_IMPORT_BY_LAYER; int force_dims = GAIA_DXF_AUTO_2D_3D; char *prefix = NULL; char *layer_name = NULL; sqlite3 *db_handle = sqlite3_context_db_handle (context); struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } filename = (char *) sqlite3_value_text (argv[0]); if (argc > 7) { const char *value; if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } srid = sqlite3_value_int (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } append = sqlite3_value_int (argv[2]); if (sqlite3_value_type (argv[3]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } value = (const char *) sqlite3_value_text (argv[3]); if (strcasecmp (value, "2D") == 0) force_dims = GAIA_DXF_FORCE_2D; else if (strcasecmp (value, "3D") == 0) force_dims = GAIA_DXF_FORCE_3D; else if (strcasecmp (value, "AUTO") == 0) force_dims = GAIA_DXF_AUTO_2D_3D; else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } value = (const char *) sqlite3_value_text (argv[4]); if (strcasecmp (value, "MIXED") == 0) mode = GAIA_DXF_IMPORT_MIXED; else if (strcasecmp (value, "DISTINCT") == 0) mode = GAIA_DXF_IMPORT_BY_LAYER; else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[5]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } value = (const char *) sqlite3_value_text (argv[5]); if (strcasecmp (value, "LINKED") == 0) special_rings = GAIA_DXF_RING_LINKED; else if (strcasecmp (value, "UNLINKED") == 0) special_rings = GAIA_DXF_RING_UNLINKED; else if (strcasecmp (value, "NONE") == 0) special_rings = GAIA_DXF_RING_NONE; else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[6]) == SQLITE_TEXT) prefix = (char *) sqlite3_value_text (argv[6]); else if (sqlite3_value_type (argv[6]) != SQLITE_NULL) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[7]) == SQLITE_TEXT) layer_name = (char *) sqlite3_value_text (argv[7]); else if (sqlite3_value_type (argv[7]) != SQLITE_NULL) { sqlite3_result_null (context); return; } } ret = load_dxf (db_handle, cache, filename, srid, append, force_dims, mode, special_rings, prefix, layer_name); sqlite3_result_int (context, ret); } static int is_dxf_file (const char *filename) { /* testing if a FileName ends with the expected suffix */ int len = strlen (filename); int off = len - 4; if (off >= 1) { if (strcasecmp (filename + off, ".dxf") == 0) return 1; } return 0; } static int scan_dxf_dir (sqlite3 * db_handle, struct splite_internal_cache *cache, char *dir_path, int srid, int append, int force_dims, int mode, int special_rings, char *prefix, char *layer_name) { /* scanning a Directory and processing all DXF files */ int cnt = 0; char *filepath; #if defined(_WIN32) && !defined(__MINGW32__) /* Visual Studio .NET */ struct _finddata_t c_file; intptr_t hFile; if (_chdir (dir_path) < 0) return 0; if ((hFile = _findfirst ("*.*", &c_file)) == -1L) ; else { while (1) { if ((c_file.attrib & _A_RDONLY) == _A_RDONLY || (c_file.attrib & _A_NORMAL) == _A_NORMAL) { if (is_dxf_file (c_file.name)) { filepath = sqlite3_mprintf ("%s/%s", dir_path, c_file.name); cnt += load_dxf (db_handle, cache, filepath, srid, append, force_dims, mode, special_rings, prefix, layer_name); sqlite3_free (filepath); } } if (_findnext (hFile, &c_file) != 0) break; }; _findclose (hFile); } #else /* not Visual Studio .NET */ struct dirent *entry; DIR *dir = opendir (dir_path); if (!dir) return 0; while (1) { /* scanning dir-entries */ entry = readdir (dir); if (!entry) break; if (is_dxf_file (entry->d_name)) { filepath = sqlite3_mprintf ("%s/%s", dir_path, entry->d_name); cnt += load_dxf (db_handle, cache, filepath, srid, append, force_dims, mode, special_rings, prefix, layer_name); sqlite3_free (filepath); } } closedir (dir); #endif return cnt; } static void fnct_ImportDXFfromDir (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ImportDXFfromDir(TEXT dir_path) / or / InportDXFfromDir(TEXT dir_path, INT srid, INT append, TEXT dims, / TEXT mode, TEXT special_rings, TEXT table_prefix, / TEXT layer_name) / / returns: / 1 on success / or 0 on failure / NULL on invalid arguments */ int ret; char *dir_path; int srid = -1; int append = 0; int special_rings = GAIA_DXF_RING_NONE; int mode = GAIA_DXF_IMPORT_BY_LAYER; int force_dims = GAIA_DXF_AUTO_2D_3D; char *prefix = NULL; char *layer_name = NULL; sqlite3 *db_handle = sqlite3_context_db_handle (context); struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } dir_path = (char *) sqlite3_value_text (argv[0]); if (argc > 7) { const char *value; if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } srid = sqlite3_value_int (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } append = sqlite3_value_int (argv[2]); if (sqlite3_value_type (argv[3]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } value = (const char *) sqlite3_value_text (argv[3]); if (strcasecmp (value, "2D") == 0) force_dims = GAIA_DXF_FORCE_2D; else if (strcasecmp (value, "3D") == 0) force_dims = GAIA_DXF_FORCE_3D; else if (strcasecmp (value, "AUTO") == 0) force_dims = GAIA_DXF_AUTO_2D_3D; else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } value = (const char *) sqlite3_value_text (argv[4]); if (strcasecmp (value, "MIXED") == 0) mode = GAIA_DXF_IMPORT_MIXED; else if (strcasecmp (value, "DISTINCT") == 0) mode = GAIA_DXF_IMPORT_BY_LAYER; else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[5]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } value = (const char *) sqlite3_value_text (argv[5]); if (strcasecmp (value, "LINKED") == 0) special_rings = GAIA_DXF_RING_LINKED; else if (strcasecmp (value, "UNLINKED") == 0) special_rings = GAIA_DXF_RING_UNLINKED; else if (strcasecmp (value, "NONE") == 0) special_rings = GAIA_DXF_RING_NONE; else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[6]) == SQLITE_TEXT) prefix = (char *) sqlite3_value_text (argv[6]); else if (sqlite3_value_type (argv[6]) != SQLITE_NULL) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[7]) == SQLITE_TEXT) layer_name = (char *) sqlite3_value_text (argv[7]); else if (sqlite3_value_type (argv[7]) != SQLITE_NULL) { sqlite3_result_null (context); return; } } ret = scan_dxf_dir (db_handle, cache, dir_path, srid, append, force_dims, mode, special_rings, prefix, layer_name); sqlite3_result_int (context, ret); } static void fnct_ExportDXF (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ExportDXF(TEXT out_dir, TEXT filename, TEXT sql_query, TEXT layer_col_name, / TEXT geom_col_name, TEXT label_col_name, TEXT text_height_col_name, / TEXT text_rotation_col_name, BLOB geom_filter) / or / ExportDXF(TEXT out_dir, TEXT filename, TEXT sql_query, TEXT layer_col_name, / TEXT geom_col_name, TEXT label_col_name, TEXT text_height_col_name, / TEXT text_rotation_col_name, BLOB geom_filter, INT precision) / / returns: / 1 on success / or 0 on failure */ unsigned char *p_blob; int n_bytes; char *path; const char *dir_path = NULL; const char *filename = NULL; FILE *out = NULL; const char *sql_query = NULL; const char *layer_col_name = NULL; const char *geom_col_name = NULL; const char *label_col_name = NULL; const char *text_height_col_name = NULL; const char *text_rotation_col_name = NULL; gaiaGeomCollPtr geom = NULL; int precision = 3; int ret = 1; sqlite3 *db_handle = sqlite3_context_db_handle (context); int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) dir_path = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) filename = (const char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) sql_query = (const char *) sqlite3_value_text (argv[2]); if (sqlite3_value_type (argv[3]) == SQLITE_TEXT) layer_col_name = (const char *) sqlite3_value_text (argv[3]); if (sqlite3_value_type (argv[4]) == SQLITE_TEXT) geom_col_name = (const char *) sqlite3_value_text (argv[4]); if (sqlite3_value_type (argv[5]) == SQLITE_TEXT) label_col_name = (const char *) sqlite3_value_text (argv[5]); if (sqlite3_value_type (argv[6]) == SQLITE_TEXT) text_height_col_name = (const char *) sqlite3_value_text (argv[6]); if (sqlite3_value_type (argv[7]) == SQLITE_TEXT) text_rotation_col_name = (const char *) sqlite3_value_text (argv[7]); if (sqlite3_value_type (argv[8]) == SQLITE_BLOB) { p_blob = (unsigned char *) sqlite3_value_blob (argv[8]); n_bytes = sqlite3_value_bytes (argv[8]); geom = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); } if (argc == 10) { if (sqlite3_value_type (argv[9]) == SQLITE_INTEGER) precision = sqlite3_value_int (argv[9]); } if (dir_path == NULL || filename == NULL || sql_query == NULL || layer_col_name == NULL || geom_col_name == NULL) { sqlite3_result_int (context, 0); if (geom != NULL) gaiaFreeGeomColl (geom); return; } path = sqlite3_mprintf ("%s/%s.dxf", dir_path, filename); out = fopen (path, "wb"); if (out == NULL) { ret = 0; spatialite_e ("ExportDXF error - unable to create \"%s\"\n", path); } else { /* exporting the DXF */ gaiaDxfWriter dxf; gaiaDxfWriterInit (&dxf, out, precision, GAIA_DXF_V12); ret = gaiaExportDxf (&dxf, db_handle, sql_query, layer_col_name, geom_col_name, label_col_name, text_height_col_name, text_rotation_col_name, geom); if (ret > 0) ret = 1; fclose (out); } sqlite3_result_int (context, ret); if (geom != NULL) gaiaFreeGeomColl (geom); sqlite3_free (path); } static void fnct_CheckDuplicateRows (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CheckDuplicateRows(TEXT table) / / returns: / the number of duplicate rows found / NULL on invalid arguments */ char *table; int rows; sqlite3 *db_handle = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } table = (char *) sqlite3_value_text (argv[0]); check_duplicated_rows (db_handle, table, &rows); if (rows < 0) sqlite3_result_null (context); else sqlite3_result_int (context, rows); } static void fnct_RemoveDuplicateRows (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RemoveDuplicateRows(TEXT table) / RemoveDuplicateRows(TEXT table, BOOL transaction) / / returns: / the number of duplicate rows removed / NULL on invalid arguments */ char *table; int transaction = 1; int rows; sqlite3 *db_handle = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } table = (char *) sqlite3_value_text (argv[0]); if (argc == 2) { if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } transaction = sqlite3_value_int (argv[1]); } remove_duplicated_rows_ex2 (db_handle, table, &rows, transaction); if (rows < 0) sqlite3_result_null (context); else sqlite3_result_int (context, rows); } static void fnct_ElementaryGeometries (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ElementaryGeometries(TEXT input_table, TEXT geo_column, TEXT out_table, / TEXT out_pk, TEXT out_multi_id) / ElementaryGeometries(TEXT input_table, TEXT geo_column, TEXT out_table, / TEXT out_pk, TEXT out_multi_id, BOOL transaction) / / returns: / the number of inserted rows / NULL on invalid arguments */ char *in_table; char *geo_column; char *out_table; char *out_pk; char *out_multi_id; int rows; int transaction = 1; sqlite3 *db_handle = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } in_table = (char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } geo_column = (char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } out_table = (char *) sqlite3_value_text (argv[2]); if (sqlite3_value_type (argv[3]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } out_pk = (char *) sqlite3_value_text (argv[3]); if (sqlite3_value_type (argv[4]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } out_multi_id = (char *) sqlite3_value_text (argv[4]); if (argc == 6) { if (sqlite3_value_type (argv[5]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } transaction = sqlite3_value_int (argv[5]); } elementary_geometries_ex2 (db_handle, in_table, geo_column, out_table, out_pk, out_multi_id, &rows, transaction); if (rows <= 0) sqlite3_result_null (context); else sqlite3_result_int (context, rows); } static void fnct_DropGeoTable (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DropGeoTable(TEXT table) / DropGeoTable(TEXT table, BOOL transaction) / DropGeoTable(TEXT db_prefix, TEXT table) / DropGeoTable(TEXT db_prefix, TEXT table, BOOL transaction) / / returns: / 1 on success, 0 on failure / NULL on invalid arguments */ char *db_prefix = "main"; char *table; int transaction = 1; int ret; int cnt; sqlite3 *db_handle = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc == 1) { if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } table = (char *) sqlite3_value_text (argv[0]); } else if (argc >= 2) { if (sqlite3_value_type (argv[0]) == SQLITE_TEXT && sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { table = (char *) sqlite3_value_text (argv[0]); transaction = sqlite3_value_int (argv[1]); } else if (sqlite3_value_type (argv[0]) == SQLITE_TEXT && sqlite3_value_type (argv[1]) == SQLITE_TEXT) { db_prefix = (char *) sqlite3_value_text (argv[0]); table = (char *) sqlite3_value_text (argv[1]); } else { sqlite3_result_null (context); return; } } if (argc == 3) { if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } transaction = sqlite3_value_int (argv[2]); } cnt = sqlite3_total_changes (db_handle); ret = gaiaDropTableEx2 (db_handle, db_prefix, table, transaction); if (ret) { if (sqlite3_total_changes (db_handle) <= cnt) ret = 0; } sqlite3_result_int (context, ret); } #ifndef OMIT_FREEXL /* FREEXL is enabled */ static void fnct_ImportXLS (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ImportXLS(TEXT filename, TEXT table) / ImportXLS(TEXT filename, TEXT table, INT worksheet_index) / ImportXLS(TEXT filename, TEXT table, INT worksheet_index, / INT first_line_titles) / / returns: / the number of inserted rows / NULL on invalid arguments */ const char *filename; const char *table; int widx; unsigned int worksheet_index = 0; int first_line_titles = 0; int ret; unsigned int rows; sqlite3 *db_handle = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } filename = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } table = (const char *) sqlite3_value_text (argv[1]); if (argc > 2) { if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } widx = sqlite3_value_int (argv[2]); if (widx < 0) { sqlite3_result_null (context); return; } worksheet_index = widx; } if (argc > 3) { if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } first_line_titles = sqlite3_value_int (argv[3]); } ret = load_XL (db_handle, filename, table, worksheet_index, first_line_titles, &rows, NULL); if (!ret) sqlite3_result_null (context); else sqlite3_result_int (context, rows); } #endif /* end FREEXL support */ static void fnct_ImportDBF (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ImportDBF(TEXT filename, TEXT table, TEXT charset) / ImportDBF(TEXT filename, TEXT table, TEXT charset, TEXT pk_column) / ImportDBF(TEXT filename, TEXT table, TEXT charset, TEXT pk_column, / INTEGER text_dates) / / returns: / the number of inserted rows / NULL on invalid arguments */ int ret; char *table; char *path; char *charset; char *pk_column = NULL; int text_dates = 0; int rows; sqlite3 *db_handle = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } path = (char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } table = (char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } charset = (char *) sqlite3_value_text (argv[2]); if (argc > 3) { if (sqlite3_value_type (argv[3]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } else pk_column = (char *) sqlite3_value_text (argv[3]); } if (argc > 4) { if (sqlite3_value_type (argv[4]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } else text_dates = sqlite3_value_int (argv[4]); } ret = load_dbf_ex2 (db_handle, path, table, pk_column, charset, 1, text_dates, &rows, NULL); if (rows < 0 || !ret) sqlite3_result_null (context); else sqlite3_result_int (context, rows); } static void fnct_ExportDBF (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ExportDBF(TEXT table, TEXT filename, TEXT charset) / / returns: / the number of exported rows / NULL on invalid arguments */ int ret; char *table; char *path; char *charset; int rows; sqlite3 *db_handle = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } table = (char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } path = (char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } charset = (char *) sqlite3_value_text (argv[2]); ret = dump_dbf_ex (db_handle, table, path, charset, &rows, NULL); if (rows <= 0 || !ret) sqlite3_result_null (context); else sqlite3_result_int (context, rows); } static void fnct_ImportSHP (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ImportSHP(TEXT filename, TEXT table, TEXT charset) / ImportSHP(TEXT filename, TEXT table, TEXT charset, INT srid) / ImportSHP(TEXT filename, TEXT table, TEXT charset, INT srid, / TEXT geom_column) / ImportSHP(TEXT filename, TEXT table, TEXT charset, INT srid, / TEXT geom_column, TEXT pk_column) / ImportSHP(TEXT filename, TEXT table, TEXT charset, INT srid, / TEXT geom_column, TEXT pk_column, TEXT geom_type) / ImportSHP(TEXT filename, TEXT table, TEXT charset, INT srid, / TEXT geom_column, TEXT pk_column, TEXT geom_type, / INT coerce2d) / ImportSHP(TEXT filename, TEXT table, TEXT charset, INT srid, / TEXT geom_column, TEXT pk_column, TEXT geom_type, / INT coerce2d, INT compressed) / ImportSHP(TEXT filename, TEXT table, TEXT charset, INT srid, / TEXT geom_column, TEXT pk_column, TEXT geom_type, / INT coerce2d, INT compressed, INT spatial_index) / ImportSHP(TEXT filename, TEXT table, TEXT charset, INT srid, / TEXT geom_column, TEXT pk_column, TEXT geom_type, / INT coerce2d, INT compressed, INT spatial_index, / INT text_dates) / / returns: / the number of imported rows / NULL on invalid arguments */ int ret; char *table; char *path; char *charset; int srid = -1; int coerce2d = 0; int compressed = 0; int spatial_index = 0; int text_dates = 0; char *pk_column = NULL; char *geo_column = NULL; char *geom_type = NULL; int rows; sqlite3 *db_handle = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } path = (char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } table = (char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } charset = (char *) sqlite3_value_text (argv[2]); if (argc > 3) { if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } else srid = sqlite3_value_int (argv[3]); } if (argc > 4) { if (sqlite3_value_type (argv[4]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } else geo_column = (char *) sqlite3_value_text (argv[4]); } if (argc > 5) { if (sqlite3_value_type (argv[5]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } else pk_column = (char *) sqlite3_value_text (argv[5]); } if (argc > 6) { if (sqlite3_value_type (argv[6]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } else geom_type = (char *) sqlite3_value_text (argv[6]); } if (argc > 7) { if (sqlite3_value_type (argv[7]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } else coerce2d = sqlite3_value_int (argv[7]); } if (argc > 8) { if (sqlite3_value_type (argv[8]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } else compressed = sqlite3_value_int (argv[8]); } if (argc > 9) { if (sqlite3_value_type (argv[9]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } else spatial_index = sqlite3_value_int (argv[9]); } if (argc > 10) { if (sqlite3_value_type (argv[10]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } else text_dates = sqlite3_value_int (argv[10]); } ret = load_shapefile_ex2 (db_handle, path, table, charset, srid, geo_column, geom_type, pk_column, coerce2d, compressed, 1, spatial_index, text_dates, &rows, NULL); if (rows < 0 || !ret) sqlite3_result_null (context); else sqlite3_result_int (context, rows); } static void fnct_ExportSHP (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ExportSHP(TEXT table, TEXT geom_column, TEXT filename, TEXT charset) / ExportSHP(TEXT table, TEXT geom_column, TEXT filename, TEXT charset, / TEXT geom_type) / / returns: / the number of exported rows / NULL on invalid arguments */ int ret; char *table; char *column; char *path; char *charset; char *geom_type = NULL; int rows; sqlite3 *db_handle = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } table = (char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } column = (char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } path = (char *) sqlite3_value_text (argv[2]); if (sqlite3_value_type (argv[3]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } charset = (char *) sqlite3_value_text (argv[3]); if (argc > 4) { if (sqlite3_value_type (argv[4]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } else geom_type = (char *) sqlite3_value_text (argv[4]); } ret = dump_shapefile (db_handle, table, column, path, charset, geom_type, 1, &rows, NULL); if (rows < 0 || !ret) sqlite3_result_null (context); else sqlite3_result_int (context, rows); } static void fnct_ExportKML (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ExportKML(TEXT table, TEXT geom_column, TEXT filename) / ExportKML(TEXT table, TEXT geom_column, TEXT filename, INT precision) / ExportKML(TEXT table, TEXT geom_column, TEXT filename, INT precision, / TEXT name_column) / ExportKML(TEXT table, TEXT geom_column, TEXT filename, INT precision, / TEXT name_column, TEXT description_column) / / returns: / the number of exported rows / NULL on invalid arguments */ int ret; char *table; char *geom_col; char *path; int precision = 8; char *name_col = NULL; char *descr_col = NULL; int rows; sqlite3 *db_handle = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } table = (char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } geom_col = (char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } path = (char *) sqlite3_value_text (argv[2]); if (argc > 3) { if (sqlite3_value_type (argv[3]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } else precision = sqlite3_value_int (argv[3]); } if (argc > 4) { if (sqlite3_value_type (argv[4]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } else name_col = (char *) sqlite3_value_text (argv[4]); } if (argc > 5) { if (sqlite3_value_type (argv[5]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } else descr_col = (char *) sqlite3_value_text (argv[5]); } ret = dump_kml_ex (db_handle, table, geom_col, path, name_col, descr_col, precision, &rows); if (rows < 0 || !ret) sqlite3_result_null (context); else sqlite3_result_int (context, rows); } static void fnct_ExportGeoJSON (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ExportGeoJSON(TEXT table, TEXT geom_column, TEXT filename) / ExportGeoJSON(TEXT table, TEXT geom_column, TEXT filename, / TEXT format) / ExportGeoJSON(TEXT table, TEXT geom_column, TEXT filename, / TEXT format, INT precision) / / returns: / the number of exported rows / NULL on invalid arguments */ int ret; char *table; char *geom_col; char *path; int format = 0; int precision = 8; char *fmt = NULL; int rows; sqlite3 *db_handle = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } table = (char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } geom_col = (char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } path = (char *) sqlite3_value_text (argv[2]); if (argc > 3) { if (sqlite3_value_type (argv[3]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } else { fmt = (char *) sqlite3_value_text (argv[3]); if (strcasecmp (fmt, "none") == 0) format = 0; else if (strcasecmp (fmt, "MBR") == 0) format = 1; else if (strcasecmp (fmt, "withShortCRS") == 0) format = 2; else if (strcasecmp (fmt, "MBRwithShortCRS") == 0) format = 3; else if (strcasecmp (fmt, "withLongCRS") == 0) format = 4; else if (strcasecmp (fmt, "MBRwithLongCRS") == 0) format = 5; else { sqlite3_result_null (context); return; } } } if (argc > 4) { if (sqlite3_value_type (argv[4]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } else precision = sqlite3_value_int (argv[4]); } ret = dump_geojson_ex (db_handle, table, geom_col, path, precision, format, &rows); if (rows < 0 || !ret) sqlite3_result_null (context); else sqlite3_result_int (context, rows); } #ifdef ENABLE_LIBXML2 /* including LIBXML2 */ static void wfs_page_done (int features, void *ptr) { /* WFS progress handler callback */ if (ptr == NULL) ptr = NULL; /* silencing stupid compiler warnings */ if (isatty (1)) spatialite_e ("WFS Features loaded since now: %d\r", features); } static void fnct_ImportWFS (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ImportWFS(TEXT filename_or_url, TEXT layer_name, TEXT table) / ImportWFS(TEXT filename_or_url, TEXT layer_name, TEXT table, / TEXT pk_column) / ImportWFS(TEXT filename_or_url, TEXT layer_name, TEXT table, / TEXT pk_column, INT swap_axes) / ImportWFS(TEXT filename_or_url, TEXT layer_name, TEXT table, / TEXT pk_column, INT swap_axes, INT page_size) / ImportWFS(TEXT filename_or_url, TEXT layer_name, TEXT table, / TEXT pk_column, INT swap_axes, INT page_size, / INT spatial_index) / / returns: / the number of imported rows / NULL on invalid arguments */ int ret; char *path_or_url; char *layer_name; char *table; int swap_axes = 0; int spatial_index = 0; int page_size = -1; char *pk_column = NULL; int rows; sqlite3 *db_handle = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } path_or_url = (char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } layer_name = (char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } table = (char *) sqlite3_value_text (argv[2]); if (argc > 3) { if (sqlite3_value_type (argv[3]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } else pk_column = (char *) sqlite3_value_text (argv[3]); } if (argc > 4) { if (sqlite3_value_type (argv[4]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } else swap_axes = sqlite3_value_int (argv[4]); } if (argc > 5) { if (sqlite3_value_type (argv[5]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } else page_size = sqlite3_value_int (argv[5]); } if (argc > 6) { if (sqlite3_value_type (argv[6]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } else spatial_index = sqlite3_value_int (argv[6]); } ret = load_from_wfs_paged (db_handle, path_or_url, NULL, layer_name, swap_axes, table, pk_column, spatial_index, page_size, &rows, NULL, wfs_page_done, NULL); if (rows < 0 || !ret) sqlite3_result_null (context); else sqlite3_result_int (context, rows); } #endif /* end including LIBXML2 */ static void fnct_CountUnsafeTriggers (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CountUnsafeTriggers() / / returns: / the total count of *unsafe* triggers found / 0 if no dubious trigger has been identifiedfailure */ int ret; int i; char **results; int rows; int columns; const char *sql; sqlite3 *sqlite = sqlite3_context_db_handle (context); int count = 0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* checking all Triggers */ sql = "SELECT Count(*) FROM sqlite_master WHERE " "type IN ('trigger', 'view') AND (sql LIKE '%BlobFromFile%' " "OR sql LIKE '%BlobToFile%' OR sql LIKE '%XB_LoadXML%' " "OR sql LIKE '%XB_StoreXML%' OR sql LIKE '%ImportDXF%' " "OR sql LIKE '%ExportDXF%' OR sql LIKE '%ImportDBF%' " "OR sql LIKE '%ExportDBF%' OR sql LIKE '%ImportSHP%' " "OR sql LIKE '%ExportSHP%' OR sql LIKE '%ExportKML%' " "OR sql LIKE '%ExportGeoJSON%' OR sql LIKE '%eval%' " "OR sql LIKE '%ImportWFS%' OR sql LIKE '%ImportXLS%')"; ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) goto unknown; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { count = atoi (results[(i * columns) + 0]); } } sqlite3_free_table (results); unknown: sqlite3_result_int (context, count); } static void fnct_GeodesicLength (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GeodesicLength(BLOB encoded GEOMETRYCOLLECTION) / / returns the total Geodesic length for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double l; double length = 0.0; double a; double b; double rf; gaiaGeomCollPtr geo = NULL; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr ring; int ib; sqlite3 *sqlite = sqlite3_context_db_handle (context); int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { if (getEllipsoidParams (sqlite, geo->Srid, &a, &b, &rf)) { line = geo->FirstLinestring; while (line) { /* Linestrings */ l = gaiaGeodesicTotalLength (a, b, rf, line->DimensionModel, line->Coords, line->Points); if (l < 0.0) { length = -1.0; break; } length += l; line = line->Next; } if (length >= 0) { /* Polygons */ polyg = geo->FirstPolygon; while (polyg) { /* exterior Ring */ ring = polyg->Exterior; l = gaiaGeodesicTotalLength (a, b, rf, ring->DimensionModel, ring->Coords, ring->Points); if (l < 0.0) { length = -1.0; break; } length += l; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* interior Rings */ ring = polyg->Interiors + ib; l = gaiaGeodesicTotalLength (a, b, rf, ring-> DimensionModel, ring->Coords, ring->Points); if (l < 0.0) { length = -1.0; break; } length += l; } if (length < 0.0) break; polyg = polyg->Next; } } if (length < 0.0) sqlite3_result_null (context); else sqlite3_result_double (context, length); } else sqlite3_result_null (context); gaiaFreeGeomColl (geo); } } static void fnct_GreatCircleLength (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GreatCircleLength(BLOB encoded GEOMETRYCOLLECTION) / / returns the total Great Circle length for current geometry / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; double length = 0.0; double a; double b; double rf; gaiaGeomCollPtr geo = NULL; gaiaLinestringPtr line; gaiaPolygonPtr polyg; gaiaRingPtr ring; int ib; sqlite3 *sqlite = sqlite3_context_db_handle (context); int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); geo = gaiaFromSpatiaLiteBlobWkbEx (p_blob, n_bytes, gpkg_mode, gpkg_amphibious); if (!geo) sqlite3_result_null (context); else { if (getEllipsoidParams (sqlite, geo->Srid, &a, &b, &rf)) { line = geo->FirstLinestring; while (line) { /* Linestrings */ length += gaiaGreatCircleTotalLength (a, b, line->DimensionModel, line->Coords, line->Points); line = line->Next; } if (length >= 0) { /* Polygons */ polyg = geo->FirstPolygon; while (polyg) { /* exterior Ring */ ring = polyg->Exterior; length += gaiaGreatCircleTotalLength (a, b, ring-> DimensionModel, ring->Coords, ring->Points); for (ib = 0; ib < polyg->NumInteriors; ib++) { /* interior Rings */ ring = polyg->Interiors + ib; length += gaiaGreatCircleTotalLength (a, b, ring-> DimensionModel, ring->Coords, ring->Points); } polyg = polyg->Next; } } sqlite3_result_double (context, length); } else sqlite3_result_null (context); gaiaFreeGeomColl (geo); } } static void convertUnit (sqlite3_context * context, int argc, sqlite3_value ** argv, int unit_from, int unit_to) { /* SQL functions: / CvtToKm(), CvtToDm(), CvtToCm(), CvtToMm(), CvtToKmi(), CvtToIn(), CvtToFt(), / CvtToYd(), CvtToMi(), CvtToFath(), CvtToCh(), CvtToLink(), CvtToUsIn(), / CvtToUsFt(), CvtToUsYd(), CvtToUsCh(), CvtToUsMi(), CvtToIndFt(), / CvtToIndYd(), CvtToIndCh(), / CvtFromKm(), CvtFromDm(), CvtFromCm(), CvtFromMm(), CvtFromKmi(), / CvtFromIn(), CvtFromFt(), CvtFromYd(), CvtFromMi(), CvtFromFath(), / CvtFromCh(), CvtFromLink(), CvtFromUsIn(), CvtFromUsFt(), CvtFromUsYd(), / CvtFromUsCh(), CvtFromUsMi(), CvtFromIndFt(), CvtFromIndYd(), / CvtFromIndCh() / / converts a Length from one unit to a different one / or NULL if any error is encountered */ double cvt; double value; int int_value; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) value = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); value = int_value; } else { sqlite3_result_null (context); return; } if (!gaiaConvertLength (value, unit_from, unit_to, &cvt)) sqlite3_result_null (context); else sqlite3_result_double (context, cvt); } static void fnct_cvtToKm (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_KM); } static void fnct_cvtToDm (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_DM); } static void fnct_cvtToCm (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_CM); } static void fnct_cvtToMm (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_MM); } static void fnct_cvtToKmi (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_KMI); } static void fnct_cvtToIn (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_IN); } static void fnct_cvtToFt (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_FT); } static void fnct_cvtToYd (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_YD); } static void fnct_cvtToMi (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_MI); } static void fnct_cvtToFath (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_FATH); } static void fnct_cvtToCh (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_CH); } static void fnct_cvtToLink (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_LINK); } static void fnct_cvtToUsIn (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_US_IN); } static void fnct_cvtToUsFt (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_US_FT); } static void fnct_cvtToUsYd (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_US_YD); } static void fnct_cvtToUsCh (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_US_CH); } static void fnct_cvtToUsMi (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_US_MI); } static void fnct_cvtToIndFt (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_IND_FT); } static void fnct_cvtToIndYd (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_IND_YD); } static void fnct_cvtToIndCh (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_M, GAIA_IND_CH); } static void fnct_cvtFromKm (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_KM, GAIA_M); } static void fnct_cvtFromDm (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_DM, GAIA_M); } static void fnct_cvtFromCm (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_CM, GAIA_M); } static void fnct_cvtFromMm (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_MM, GAIA_M); } static void fnct_cvtFromKmi (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_KMI, GAIA_M); } static void fnct_cvtFromIn (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_IN, GAIA_M); } static void fnct_cvtFromFt (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_FT, GAIA_M); } static void fnct_cvtFromYd (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_YD, GAIA_M); } static void fnct_cvtFromMi (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_MI, GAIA_M); } static void fnct_cvtFromFath (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_FATH, GAIA_M); } static void fnct_cvtFromCh (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_CH, GAIA_M); } static void fnct_cvtFromLink (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_LINK, GAIA_M); } static void fnct_cvtFromUsIn (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_US_IN, GAIA_M); } static void fnct_cvtFromUsFt (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_US_FT, GAIA_M); } static void fnct_cvtFromUsYd (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_US_YD, GAIA_M); } static void fnct_cvtFromUsCh (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_US_CH, GAIA_M); } static void fnct_cvtFromUsMi (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_US_MI, GAIA_M); } static void fnct_cvtFromIndFt (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_IND_FT, GAIA_M); } static void fnct_cvtFromIndYd (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_IND_YD, GAIA_M); } static void fnct_cvtFromIndCh (sqlite3_context * context, int argc, sqlite3_value ** argv) { convertUnit (context, argc, argv, GAIA_IND_CH, GAIA_M); } static void fnct_longFromDMS (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LongitudeFromDMS ( dms_string ) / / return the Longitude (in Decimal Degrees) from a DMS text expression / or NULL if any error is encountered */ const char *dms; double longitude; double latitude; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) dms = (const char *) sqlite3_value_text (argv[0]); else { sqlite3_result_null (context); return; } if (!gaiaParseDMS (dms, &longitude, &latitude)) sqlite3_result_null (context); else sqlite3_result_double (context, longitude); } static void fnct_latFromDMS (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LatitudeFromDMS ( dms_string ) / / return the Latitude (in Decimal Degrees) from a DMS text expression / or NULL if any error is encountered */ const char *dms; double longitude; double latitude; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) dms = (const char *) sqlite3_value_text (argv[0]); else { sqlite3_result_null (context); return; } if (!gaiaParseDMS (dms, &longitude, &latitude)) sqlite3_result_null (context); else sqlite3_result_double (context, latitude); } static void fnct_toDMS (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / LongLatToDMS ( longitude, latitude ) / / return a DMS text expression / or NULL if any error is encountered */ double longitude; double latitude; char *dms; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) longitude = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int value = sqlite3_value_int (argv[0]); longitude = value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) latitude = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int value = sqlite3_value_int (argv[1]); latitude = value; } else { sqlite3_result_null (context); return; } dms = gaiaConvertToDMS (longitude, latitude); if (dms == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, dms, strlen (dms), free); } #ifdef ENABLE_LIBXML2 /* including LIBXML2 */ static void fnct_CreateStylingTables (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CreateStylingTables() / or / CreateStylingTables(bool relaxed) / or / CreateStylingTables(bool relaxed, bool transaction) / / creates any SLD/SE related table / returns 1 on success / 0 on failure, -1 on invalid arguments */ int relaxed = 0; int transaction = 0; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc >= 1) { if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } relaxed = sqlite3_value_int (argv[0]); } if (argc >= 2) { if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } transaction = sqlite3_value_int (argv[1]); } if (!createStylingTables_ex (sqlite, relaxed, transaction)) goto error; updateSpatiaLiteHistory (sqlite, "*** SE Styling ***", NULL, "Styling tables successfully created"); sqlite3_result_int (context, 1); return; error: sqlite3_result_int (context, 0); return; } static void fnct_RegisterExternalGraphic (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterExternalGraphic(String xlink_href, BLOB resource) / or / RegisterExternalGraphic(String xlink_href, BLOB resource, string title, / String abstract, String file_name) / / insert or updates an External Graphic / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *xlink_href; const char *title = NULL; const char *abstract = NULL; const char *file_name = NULL; const unsigned char *p_blob; int n_bytes; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (argc == 5) { /* optional extra args */ if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[3]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[4]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } } xlink_href = (const char *) sqlite3_value_text (argv[0]); p_blob = sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); if (argc == 5) { title = (const char *) sqlite3_value_text (argv[2]); abstract = (const char *) sqlite3_value_text (argv[3]); file_name = (const char *) sqlite3_value_text (argv[4]); } ret = register_external_graphic (sqlite, xlink_href, p_blob, n_bytes, title, abstract, file_name); sqlite3_result_int (context, ret); } static void fnct_UnregisterExternalGraphic (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UnregisterExternalGraphic(String xlink_href) / / removes an External Graphic / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *xlink_href; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } xlink_href = (const char *) sqlite3_value_text (argv[0]); ret = unregister_external_graphic (sqlite, xlink_href); sqlite3_result_int (context, ret); } static void fnct_RegisterVectorCoverage (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterVectorCoverage(Text coverage_name, Text f_table_name, * Text f_geometry_column) / or / RegisterVectorCoverage(Text coverage_name, Text f_table_name, / Text f_geometry_column, Text title, / Text abstract) / / inserts a Vector Coverage / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *coverage_name; const char *f_table_name; const char *f_geometry_column; const char *title = NULL; const char *abstract = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT || sqlite3_value_type (argv[1]) != SQLITE_TEXT || sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } coverage_name = (const char *) sqlite3_value_text (argv[0]); f_table_name = (const char *) sqlite3_value_text (argv[1]); f_geometry_column = (const char *) sqlite3_value_text (argv[2]); if (argc >= 5) { if (sqlite3_value_type (argv[3]) != SQLITE_TEXT || sqlite3_value_type (argv[4]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } title = (const char *) sqlite3_value_text (argv[3]); abstract = (const char *) sqlite3_value_text (argv[4]); } ret = register_vector_coverage (sqlite, coverage_name, f_table_name, f_geometry_column, title, abstract); sqlite3_result_int (context, ret); } static void fnct_UnregisterVectorCoverage (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UnRegisterVectorCoverage(Text coverage_name) / / deletes a Vector Coverage / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *coverage_name; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } coverage_name = (const char *) sqlite3_value_text (argv[0]); ret = unregister_vector_coverage (sqlite, coverage_name); sqlite3_result_int (context, ret); } static void fnct_SetVectorCoverageInfos (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SetVectorCoverageInfos(Text coverage_name, Text title, / Text abstract) / / updates the descriptive infos supporting a Vector Coverage / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *coverage_name; const char *title = NULL; const char *abstract = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT || sqlite3_value_type (argv[1]) != SQLITE_TEXT || sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } coverage_name = (const char *) sqlite3_value_text (argv[0]); title = (const char *) sqlite3_value_text (argv[1]); abstract = (const char *) sqlite3_value_text (argv[2]); ret = set_vector_coverage_infos (sqlite, coverage_name, title, abstract); sqlite3_result_int (context, ret); } static void fnct_RegisterVectorCoverageSrid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterVectorCoverageSrid(Text coverage_name, Integer srid) / / inserts a Vector Coverage alternative SRID / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *coverage_name; int srid; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT || sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } coverage_name = (const char *) sqlite3_value_text (argv[0]); srid = sqlite3_value_int (argv[1]); ret = register_vector_coverage_srid (sqlite, coverage_name, srid); sqlite3_result_int (context, ret); } static void fnct_UnregisterVectorCoverageSrid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UnRegisterVectorCoverageSrid(Text coverage_name, Integer srid) / / deletes a Vector Coverage alternative SRID / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *coverage_name; int srid; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT || sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } coverage_name = (const char *) sqlite3_value_text (argv[0]); srid = sqlite3_value_int (argv[1]); ret = unregister_vector_coverage_srid (sqlite, coverage_name, srid); sqlite3_result_int (context, ret); } static void fnct_RegisterVectorCoverageKeyword (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterVectorCoverageKeyword(Text coverage_name, Text keyword) / / inserts a Vector Coverage Keyword / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *coverage_name; const char *keyword; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT || sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } coverage_name = (const char *) sqlite3_value_text (argv[0]); keyword = (const char *) sqlite3_value_text (argv[1]); ret = register_vector_coverage_keyword (sqlite, coverage_name, keyword); sqlite3_result_int (context, ret); } static void fnct_UnregisterVectorCoverageKeyword (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UnRegisterVectorCoverageSrid(Text coverage_name, Text keyword) / / deletes a Vector Coverage Keyword / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *coverage_name; const char *keyword; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT || sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } coverage_name = (const char *) sqlite3_value_text (argv[0]); keyword = (const char *) sqlite3_value_text (argv[1]); ret = unregister_vector_coverage_keyword (sqlite, coverage_name, keyword); sqlite3_result_int (context, ret); } static void fnct_UpdateVectorCoverageExtent (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UpdateVectorCoverageExtent() / or / UpdateVectorCoverageExtent(Integer transaction) / or / UpdateVectorCoverageExtent(Text coverage_name) / or / UpdateVectorCoverageExtent(Text coverage_name, int transaction) / / updates Vector Coverage Extents / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *coverage_name = NULL; int transaction = 0; sqlite3 *sqlite = sqlite3_context_db_handle (context); struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc >= 1) { if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) coverage_name = (const char *) sqlite3_value_text (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) transaction = sqlite3_value_int (argv[0]); else { sqlite3_result_int (context, -1); return; } } if (argc >= 2) { if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } coverage_name = (const char *) sqlite3_value_text (argv[0]); transaction = sqlite3_value_int (argv[1]); } ret = update_vector_coverage_extent (sqlite, cache, coverage_name, transaction); sqlite3_result_int (context, ret); } static void fnct_RegisterVectorStyle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterVectorStyle(BLOB style) / / inserts a Vector Style / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const unsigned char *p_blob; int n_bytes; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = register_vector_style (sqlite, p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_UnRegisterVectorStyle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UnRegisterVectorStyle(Integer style_id [ , Integer removeAll] ) / or / UnRegisterVectorStyle(Text style_name [ , Integer removeAll] ) / / removes a Vector Style definition / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; int style_id = -1; const char *style_name = NULL; int remove_all = 0; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) style_id = sqlite3_value_int (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) style_name = (const char *) sqlite3_value_text (argv[0]); else { sqlite3_result_int (context, -1); return; } if (argc >= 2) { if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } remove_all = sqlite3_value_int (argv[1]); } ret = unregister_vector_style (sqlite, style_id, style_name, remove_all); sqlite3_result_int (context, ret); } static void fnct_ReloadVectorStyle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ReloadVectorStyle(Integer style_id, BLOB style) / or / ReloadVectorStyle(Text style_name, BLOB style) / / updates a Vector Style / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; int style_id = -1; const char *style_name = NULL; const unsigned char *p_blob; int n_bytes; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) style_id = sqlite3_value_int (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) style_name = (const char *) sqlite3_value_text (argv[0]); else { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); ret = reload_vector_style (sqlite, style_id, style_name, p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_RegisterVectorStyledLayer (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterVectorStyledLayer(String coverage_name, Integer style_id) / or / RegisterVectorStyledLayer(String coverage_name, Text style_name) / / inserts a Vector Styled Layer / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *coverage_name; int style_id = -1; const char *style_name = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } coverage_name = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) style_id = sqlite3_value_int (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) style_name = (const char *) sqlite3_value_text (argv[1]); else { sqlite3_result_int (context, -1); return; } ret = register_vector_styled_layer_ex (sqlite, coverage_name, style_id, style_name); sqlite3_result_int (context, ret); } static void fnct_UnRegisterVectorStyledLayer (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UnRegisterVectorStyledLayer(String coverage_name, Integer style_id) / or / UnRegisterVectorStyledLayer(String coverage_name, Text style_name) / / removes a Vector Styled Layer definition / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *coverage_name; int style_id = -1; const char *style_name = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } coverage_name = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) style_id = sqlite3_value_int (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) style_name = (const char *) sqlite3_value_text (argv[1]); else { sqlite3_result_int (context, -1); return; } ret = unregister_vector_styled_layer (sqlite, coverage_name, style_id, style_name); sqlite3_result_int (context, ret); } static void fnct_RegisterRasterStyle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterRasterStyle(BLOB style) / / inserts a Raster Style / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const unsigned char *p_blob; int n_bytes; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = register_raster_style (sqlite, p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_UnRegisterRasterStyle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UnRegisterRasterStyle(Integer style_id [ , Integer removeAll] ) / or / UnRegisterRasterStyledLayer(Text style_name [ , Integer removeAll] ) / / removes a Raster Style definition / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; int style_id = -1; const char *style_name = NULL; int remove_all = 0; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) style_id = sqlite3_value_int (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) style_name = (const char *) sqlite3_value_text (argv[0]); else { sqlite3_result_int (context, -1); return; } if (argc >= 2) { if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } remove_all = sqlite3_value_int (argv[1]); } ret = unregister_raster_style (sqlite, style_id, style_name, remove_all); sqlite3_result_int (context, ret); } static void fnct_ReloadRasterStyle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ReloadRasterStyle(Integer style_id, BLOB style) / or / ReloadRasterStyle(Text style_name, BLOB style) / / updates a Raster Style / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; int style_id = -1; const char *style_name = NULL; const unsigned char *p_blob; int n_bytes; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) style_id = sqlite3_value_int (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) style_name = (const char *) sqlite3_value_text (argv[0]); else { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); ret = reload_raster_style (sqlite, style_id, style_name, p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_RegisterRasterStyledLayer (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterRasterStyledLayer(String coverage_name, Integer style_id) / or / RegisterRasterStyledLayer(String coverage_name, Text style_name) / / inserts a Raster Styled Layer / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *coverage_name; int style_id = -1; const char *style_name = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } coverage_name = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) style_id = sqlite3_value_int (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) style_name = (const char *) sqlite3_value_text (argv[1]); else { sqlite3_result_int (context, -1); return; } ret = register_raster_styled_layer_ex (sqlite, coverage_name, style_id, style_name); sqlite3_result_int (context, ret); } static void fnct_UnRegisterRasterStyledLayer (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UnRegisterRasterStyledLayer(String coverage_name, Integer style_id) / or / UnRegisterRasterStyledLayer(String coverage_name, Text style_name) / / removes a Raster Styled Layer definition / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *coverage_name; int style_id = -1; const char *style_name = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } coverage_name = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) style_id = sqlite3_value_int (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) style_name = (const char *) sqlite3_value_text (argv[1]); else { sqlite3_result_int (context, -1); return; } ret = unregister_raster_styled_layer (sqlite, coverage_name, style_id, style_name); sqlite3_result_int (context, ret); } static void fnct_RegisterRasterCoverageSrid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterRasterCoverageSrid(Text coverage_name, Integer srid) / / inserts a Raster Coverage alternative SRID / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *coverage_name; int srid; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT || sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } coverage_name = (const char *) sqlite3_value_text (argv[0]); srid = sqlite3_value_int (argv[1]); ret = register_raster_coverage_srid (sqlite, coverage_name, srid); sqlite3_result_int (context, ret); } static void fnct_UnregisterRasterCoverageSrid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UnRegisterRasterCoverageSrid(Text coverage_name, Integer srid) / / deletes a Raster Coverage alternative SRID / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *coverage_name; int srid; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT || sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } coverage_name = (const char *) sqlite3_value_text (argv[0]); srid = sqlite3_value_int (argv[1]); ret = unregister_raster_coverage_srid (sqlite, coverage_name, srid); sqlite3_result_int (context, ret); } static void fnct_RegisterRasterCoverageKeyword (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterRasterCoverageKeyword(Text coverage_name, Text keyword) / / inserts a Raster Coverage Keyword / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *coverage_name; const char *keyword; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT || sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } coverage_name = (const char *) sqlite3_value_text (argv[0]); keyword = (const char *) sqlite3_value_text (argv[1]); ret = register_raster_coverage_keyword (sqlite, coverage_name, keyword); sqlite3_result_int (context, ret); } static void fnct_UnregisterRasterCoverageKeyword (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UnRegisterRasterCoverageKeyword(Text coverage_name, Text keyword) / / deletes a Raster Coverage Keyword / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *coverage_name; const char *keyword; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT || sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } coverage_name = (const char *) sqlite3_value_text (argv[0]); keyword = (const char *) sqlite3_value_text (argv[1]); ret = unregister_raster_coverage_keyword (sqlite, coverage_name, keyword); sqlite3_result_int (context, ret); } static void fnct_UpdateRasterCoverageExtent (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UpdateRasterCoverageExtent() / or / UpdateRasterCoverageExtent(Integer transaction) / or / UpdateRasterCoverageExtent(Text coverage_name) / or / UpdateRasterCoverageExtent(Text coverage_name, int transaction) / / updates Raster Coverage Extents / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *coverage_name = NULL; int transaction = 0; sqlite3 *sqlite = sqlite3_context_db_handle (context); struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc >= 1) { if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) coverage_name = (const char *) sqlite3_value_text (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) transaction = sqlite3_value_int (argv[0]); else { sqlite3_result_int (context, -1); return; } } if (argc >= 2) { if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } coverage_name = (const char *) sqlite3_value_text (argv[0]); transaction = sqlite3_value_int (argv[1]); } ret = update_raster_coverage_extent (sqlite, cache, coverage_name, transaction); sqlite3_result_int (context, ret); } static void fnct_RegisterStyledGroupRaster (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterStyledGroupRaster(String group_name, String coverage_name) / / inserts a Styled Group Raster item / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *group_name = NULL; const char *coverage_name = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT && sqlite3_value_type (argv[1]) == SQLITE_TEXT) { group_name = (const char *) sqlite3_value_text (argv[0]); coverage_name = (const char *) sqlite3_value_text (argv[1]); } else { sqlite3_result_int (context, -1); return; } ret = register_styled_group_ex (sqlite, group_name, NULL, coverage_name); sqlite3_result_int (context, ret); } static void fnct_RegisterStyledGroupVector (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterStyledGroupVector(String group_name, String coverage_name) / / inserts a Styled Group Vector item / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *group_name = NULL; const char *coverage_name = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT && sqlite3_value_type (argv[1]) == SQLITE_TEXT) { group_name = (const char *) sqlite3_value_text (argv[0]); coverage_name = (const char *) sqlite3_value_text (argv[1]); } else { sqlite3_result_int (context, -1); return; } ret = register_styled_group_ex (sqlite, group_name, coverage_name, NULL); sqlite3_result_int (context, ret); } static void fnct_SetStyledGroupLayerPaintOrder (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SetStyledGroupLayerPaintOrder(Integer item_id, Integer paint_order) / / sets the paint order for a Styled Layer within a Styled Group / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; int item_id = -1; int paint_order = -1; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } item_id = sqlite3_value_int (argv[0]); paint_order = sqlite3_value_int (argv[1]); ret = set_styled_group_layer_paint_order (sqlite, item_id, NULL, NULL, NULL, paint_order); sqlite3_result_int (context, ret); } static void fnct_SetStyledGroupVectorPaintOrder (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SetStyledGroupVectorPaintOrder(String group_name, String coverage_name, / Integer paint_order)) / / sets the paint order for a Vector Styled Layer within a Styled Group / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *group_name = NULL; const char *coverage_name = NULL; int paint_order = -1; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT && sqlite3_value_type (argv[1]) == SQLITE_TEXT && sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { group_name = (const char *) sqlite3_value_text (argv[0]); coverage_name = (const char *) sqlite3_value_text (argv[1]); paint_order = sqlite3_value_int (argv[2]); } else { sqlite3_result_int (context, -1); return; } ret = set_styled_group_layer_paint_order (sqlite, -1, group_name, coverage_name, NULL, paint_order); sqlite3_result_int (context, ret); } static void fnct_SetStyledGroupRasterPaintOrder (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SetStyledGroupRasterPaintOrder(String group_name, String coverage_name, / Integer paint_order)) / / sets the paint order for a Raster Styled Layer within a Styled Group / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *group_name = NULL; const char *coverage_name = NULL; int paint_order = -1; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT && sqlite3_value_type (argv[1]) == SQLITE_TEXT && sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { group_name = (const char *) sqlite3_value_text (argv[0]); coverage_name = (const char *) sqlite3_value_text (argv[1]); paint_order = sqlite3_value_int (argv[2]); } else { sqlite3_result_int (context, -1); return; } ret = set_styled_group_layer_paint_order (sqlite, -1, group_name, NULL, coverage_name, paint_order); sqlite3_result_int (context, ret); } static void fnct_SetStyledGroupInfos (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SetStyledGroupInfos(String group_name, String title, / String abstract) / / inserts or updates the descriptive infos supporting a Styled Group / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *group_name; const char *title = NULL; const char *abstract = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } group_name = (const char *) sqlite3_value_text (argv[0]); title = (const char *) sqlite3_value_text (argv[1]); abstract = (const char *) sqlite3_value_text (argv[2]); ret = styled_group_set_infos (sqlite, group_name, title, abstract); sqlite3_result_int (context, ret); } static void fnct_UnRegisterStyledGroup (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UnRegisterStyledGroup(String group_name) / / removes a Styled Group and any related item / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *group_name; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } group_name = (const char *) sqlite3_value_text (argv[0]); ret = unregister_styled_group (sqlite, group_name); sqlite3_result_int (context, ret); } static void fnct_UnRegisterStyledGroupLayer (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UnRegisterStyledGroupLayer(Integer item_id) / / removes a Styled Layer from within a Styled Group / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; int item_id = -1; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } item_id = sqlite3_value_int (argv[0]); ret = unregister_styled_group_layer (sqlite, item_id, NULL, NULL, NULL); sqlite3_result_int (context, ret); } static void fnct_UnRegisterStyledGroupVector (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UnRegisterStyledGroupVector(String group_name, String coverage_name) / / removes a Vector Styled Layer from within a Styled Group / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *group_name = NULL; const char *coverage_name = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT && sqlite3_value_type (argv[1]) == SQLITE_TEXT) { group_name = (const char *) sqlite3_value_text (argv[0]); coverage_name = (const char *) sqlite3_value_text (argv[1]); } else { sqlite3_result_int (context, -1); return; } ret = unregister_styled_group_layer (sqlite, -1, group_name, coverage_name, NULL); sqlite3_result_int (context, ret); } static void fnct_UnRegisterStyledGroupRaster (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UnRegisterStyledGroupRaster(String group_name, String coverage_name) / / removes a Raster Styled Layer from within a Styled Group / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *group_name = NULL; const char *coverage_name = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT && sqlite3_value_type (argv[1]) == SQLITE_TEXT) { group_name = (const char *) sqlite3_value_text (argv[0]); coverage_name = (const char *) sqlite3_value_text (argv[1]); } else { sqlite3_result_int (context, -1); return; } ret = unregister_styled_group_layer (sqlite, -1, group_name, NULL, coverage_name); sqlite3_result_int (context, ret); } static void fnct_RegisterGroupStyle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterGroupStyle(BLOB style) / / inserts a Group Style / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const unsigned char *p_blob; int n_bytes; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = register_group_style_ex (sqlite, p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_UnRegisterGroupStyle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UnRegisterGroupStyle(Integer style_id [ , Integer removeAll] ) / or / UnRegisterGroupStyledLayer(Text style_name [ , Integer removeAll] ) / / removes a Group Style definition / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; int style_id = -1; const char *style_name = NULL; int remove_all = 0; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) style_id = sqlite3_value_int (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) style_name = (const char *) sqlite3_value_text (argv[0]); else { sqlite3_result_int (context, -1); return; } if (argc >= 2) { if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } remove_all = sqlite3_value_int (argv[1]); } ret = unregister_group_style (sqlite, style_id, style_name, remove_all); sqlite3_result_int (context, ret); } static void fnct_ReloadGroupStyle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ReloadGroupStyle(Integer style_id, BLOB style) / or / ReloadGroupStyle(Text style_name, BLOB style) / / updates a Group Style / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; int style_id = -1; const char *style_name = NULL; const unsigned char *p_blob; int n_bytes; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) style_id = sqlite3_value_int (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) style_name = (const char *) sqlite3_value_text (argv[0]); else { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); ret = reload_group_style (sqlite, style_id, style_name, p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_RegisterStyledGroupStyle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterStyleGroupStyle(String group_name, Integer style_id) / or / RegisterStyledGroupStyle(String group_name, Text style_name) / / inserts a Styled Group Style / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *group_name; int style_id = -1; const char *style_name = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } group_name = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) style_id = sqlite3_value_int (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) style_name = (const char *) sqlite3_value_text (argv[1]); else { sqlite3_result_int (context, -1); return; } ret = register_styled_group_style (sqlite, group_name, style_id, style_name); sqlite3_result_int (context, ret); } static void fnct_UnRegisterStyledGroupStyle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / UnRegisterStyledGroupStyle(String group_name, Integer style_id) / or / UnRegisterStyledGroupStyle(String group_name, Text style_name) / / removes a Styled Group Style definition / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *group_name; int style_id = -1; const char *style_name = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } group_name = (const char *) sqlite3_value_text (argv[0]); if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) style_id = sqlite3_value_int (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) style_name = (const char *) sqlite3_value_text (argv[1]); else { sqlite3_result_int (context, -1); return; } ret = unregister_styled_group_style (sqlite, group_name, style_id, style_name); sqlite3_result_int (context, ret); } static void fnct_CreateIsoMetadataTables (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / CreateIsoMetadataTables() / or / CreateIsoMetadataTables(bool relaxed) / / creates any ISO Metadata related table / returns 1 on success / 0 on failure, -1 on invalid arguments */ int relaxed = 0; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (argc == 1) { if (sqlite3_value_type (argv[0]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } relaxed = sqlite3_value_int (argv[0]); } if (!createIsoMetadataTables (sqlite, relaxed)) goto error; updateSpatiaLiteHistory (sqlite, "*** ISO Metadata ***", NULL, "ISO Metadata tables successfully created"); sqlite3_result_int (context, 1); return; error: sqlite3_result_int (context, 0); return; } static void fnct_GetIsoMetadataId (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GetIsoMetadataId(String fileIdentifier) / / return the ID of the row corresponding to "fileIdentifier" / 0 on failure / -1 on invalid argument */ const char *fileIdentifier; sqlite3_int64 id; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } fileIdentifier = (const char *) sqlite3_value_text (argv[0]); if (!get_iso_metadata_id (sqlite, fileIdentifier, &id)) sqlite3_result_int (context, 0); else sqlite3_result_int64 (context, id); } static void fnct_RegisterIsoMetadata (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterIsoMetadata(String scope, BLOB metadata) / or / RegisterIsoMetadata(String scope, BLOB metadata, / Integer id) / or / RegisterIsoMetadata(String scope, BLOB metadata, / String fileIdentifier) / / insert or updates a Raster Styled Layer / returns 1 on success / 0 on failure, -1 on invalid arguments */ int ret; const char *scope; const unsigned char *p_blob; int n_bytes; sqlite3_int64 id = -1; const char *fileIdentifier = NULL; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (argc == 3) { /* optional extra args */ if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER || sqlite3_value_type (argv[2]) == SQLITE_TEXT) ; else { sqlite3_result_int (context, -1); return; } } scope = (const char *) sqlite3_value_text (argv[0]); p_blob = sqlite3_value_blob (argv[1]); n_bytes = sqlite3_value_bytes (argv[1]); if (argc == 3) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) id = sqlite3_value_int64 (argv[2]); if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) fileIdentifier = (const char *) sqlite3_value_text (argv[2]); } ret = register_iso_metadata (sqlite, scope, p_blob, n_bytes, &id, fileIdentifier); sqlite3_result_int (context, ret); } static void fnct_XB_Create (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_Create(BLOB XMLdocument) / XB_Create(BLOB XMLdocument, bool compressed) / XB_Create(BLOB XMLdocument, bool compressed, text SchemaURI) / XB_Create(BLOB XMLdocument, bool compressed, int InternalSchemaURI) / / returns the current XmlBlob by parsing an XMLdocument / or NULL if any error is encountered / / - the XMLdocument should be "well formed" / - if *compressed* is TRUE (default) the XmlBlob would be zipped / - if *SchemaURI* in not NULL then only XMLdocuments successfully / passing a formal Schema Validation will be accepted as valid / - if *InternalSchamaURI* is defined (any numeric value) then an / attempt will be made in order to identify a SchemaURI defined / internally within the XMLDocument itself. / if such internal SchemaURI doesn't exists, or if the formal / Schema Validation fails, NULL will be returned. */ int len; unsigned char *p_result = NULL; const unsigned char *xml; int xml_len; int compressed = 1; int use_internal_schema_uri = 0; const char *schemaURI = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc >= 2) { if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } } if (argc == 3) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) use_internal_schema_uri = 1; else if (sqlite3_value_type (argv[2]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } } xml = (const unsigned char *) sqlite3_value_blob (argv[0]); xml_len = sqlite3_value_bytes (argv[0]); if (argc >= 2) compressed = sqlite3_value_int (argv[1]); if (use_internal_schema_uri) { /* using the SchemaURI internally defined within the XMLDocument */ char *internalSchemaURI = gaiaXmlGetInternalSchemaURI (sqlite3_user_data (context), xml, xml_len); if (internalSchemaURI == NULL) { /* unable to identify the SchemaURI */ p_result = NULL; } else { /* ok, attempting to validate using the internal SchemaURI */ gaiaXmlToBlob (sqlite3_user_data (context), xml, xml_len, compressed, internalSchemaURI, &p_result, &len, NULL, NULL); free (internalSchemaURI); } } else { if (argc == 3) schemaURI = (const char *) sqlite3_value_text (argv[2]); gaiaXmlToBlob (sqlite3_user_data (context), xml, xml_len, compressed, schemaURI, &p_result, &len, NULL, NULL); } if (p_result == NULL) { sqlite3_result_null (context); return; } sqlite3_result_blob (context, p_result, len, free); } static void fnct_XB_LoadXML (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_LoadXML(text path-or-URL) / / returns a generic Text by parsing an XML Document / or NULL if any error is encountered / */ const char *path_or_url; unsigned char *xml; int xml_len; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } path_or_url = (const char *) sqlite3_value_text (argv[0]); /* acquiring the XML Document as a Blob */ ret = gaiaXmlLoad (sqlite3_user_data (context), path_or_url, &xml, &xml_len, NULL); if (!ret || xml == NULL) { sqlite3_result_null (context); return; } sqlite3_result_blob (context, xml, xml_len, free); } static void fnct_XB_GetPayload (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetPayload(XmlBLOB) / XB_GetPayload(XmlBLOB, int format) / / returns the current XMLDocument (as BLOB) by parsing an XmlBLOB / or NULL if any error is encountered / / the returned buffer will be always null-terminated */ const unsigned char *p_blob; int n_bytes; unsigned char *out; int out_len; int indent = -1; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc == 2) { if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (argc == 2) indent = sqlite3_value_int (argv[1]); gaiaXmlFromBlob (p_blob, n_bytes, indent, &out, &out_len); if (out == NULL) { sqlite3_result_null (context); return; } sqlite3_result_blob (context, out, out_len, free); } static void fnct_XB_StoreXML (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_StoreXML(XmlBLOB, text path) / XB_StoreXML(XmlBLOB, taxt path, int format) / / exports the current XMLDocument into an external file by parsing an XmlBLOB / return 1 on success, 0 on failure, -1 on invalid args / */ const unsigned char *p_blob; int n_bytes; const char *path; int indent = -1; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } if (argc == 3) { if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_int (context, -1); return; } } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); path = (const char *) sqlite3_value_text (argv[1]); if (argc == 3) indent = sqlite3_value_int (argv[2]); if (!gaiaXmlStore (p_blob, n_bytes, path, indent)) { sqlite3_result_int (context, 0); return; } sqlite3_result_int (context, 1); } static void fnct_XB_GetDocument (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetDocument(XmlBLOB) / XB_GetDocument(XmlBLOB, int indent) / / returns the current XMLDocument (as UTF-8 TEXT) by parsing an XmlBLOB / or NULL if any error is encountered / / the returned buffer will be always null-terminated */ const unsigned char *p_blob; int n_bytes; char *xml; int len; int indent = -1; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc == 2) { if (sqlite3_value_type (argv[1]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (argc == 2) indent = sqlite3_value_int (argv[1]); xml = gaiaXmlTextFromBlob (p_blob, n_bytes, indent); if (xml == NULL) { sqlite3_result_null (context); return; } len = strlen ((const char *) xml); sqlite3_result_text (context, (char *) xml, len, free); } static void fnct_XB_SchemaValidate (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_SchemaValidate(XmlBLOB, text SchemaURI) / XB_SchemaValidate(XmlBLOB, text SchemaURI, bool compressed) / XB_SchemaValidate(XmlBLOB, int InternalSchemaURI) / XB_SchemaValidate(XmlBLOB, int InternalSchemaURI, bool compressed) / / returns a validated XmlBLOB object if the SchemaValidation was successful / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; const unsigned char *p_blob; int n_bytes; unsigned char *xml; int xml_len; int compressed = 1; const char *schemaURI = NULL; int use_internal_schema_uri = 0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) use_internal_schema_uri = 1; else if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } if (argc == 3) { if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (argc == 3) compressed = sqlite3_value_int (argv[2]); gaiaXmlFromBlob (p_blob, n_bytes, -1, &xml, &xml_len); if (xml == NULL) { sqlite3_result_null (context); return; } if (use_internal_schema_uri) { /* using the SchemaURI internally defined within the XMLDocument */ char *internalSchemaURI = gaiaXmlGetInternalSchemaURI (sqlite3_user_data (context), xml, xml_len); if (internalSchemaURI == NULL) { /* unable to identify the SchemaURI */ p_result = NULL; } else { /* ok, attempting to validate using the internal SchemaURI */ gaiaXmlToBlob (sqlite3_user_data (context), xml, xml_len, compressed, internalSchemaURI, &p_result, &len, NULL, NULL); free (internalSchemaURI); } } else { schemaURI = (const char *) sqlite3_value_text (argv[1]); gaiaXmlToBlob (sqlite3_user_data (context), xml, xml_len, compressed, schemaURI, &p_result, &len, NULL, NULL); } free (xml); if (p_result == NULL) { sqlite3_result_null (context); return; } sqlite3_result_blob (context, p_result, len, free); } static void fnct_XB_Compress (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_Compress(XmlBLOB) / / returns a compressed XmlBLOB object / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; const unsigned char *p_blob; int n_bytes; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); gaiaXmlBlobCompression (p_blob, n_bytes, 1, &p_result, &len); if (p_result == NULL) { sqlite3_result_null (context); return; } sqlite3_result_blob (context, p_result, len, free); } static void fnct_XB_Uncompress (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_Uncompress(XmlBLOB) / / returns an uncompressed XmlBLOB object / or NULL if any error is encountered */ int len; unsigned char *p_result = NULL; const unsigned char *p_blob; int n_bytes; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); gaiaXmlBlobCompression (p_blob, n_bytes, 0, &p_result, &len); if (p_result == NULL) { sqlite3_result_null (context); return; } sqlite3_result_blob (context, p_result, len, free); } static void fnct_XB_IsValid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_IsValid(XmlBLOB) / / returns TRUE if the current BLOB is an XmlBLOB, FALSE if not / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = gaiaIsValidXmlBlob (p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_XB_IsCompressed (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_IsCompressed(XmlBLOB) / / returns TRUE if the current BLOB is a compressed XmlBLOB, / FALSE if it's a valid uncompressed XmlBLOB / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = gaiaIsCompressedXmlBlob (p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_XB_IsSchemaValidated (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_IsSchemaValidated(XmlBLOB) / / returns TRUE if the current BLOB is a Schema validated XmlBLOB, / FALSE if it's a valid but not validated XmlBLOB / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = gaiaIsSchemaValidatedXmlBlob (p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_XB_IsIsoMetadata (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_IsIsoMetadata(XmlBLOB) / / returns TRUE if the current BLOB is an ISO Metadata XmlBLOB, / FALSE if it's a valid XmlBLOB but not an ISO Metadata / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = gaiaIsIsoMetadataXmlBlob (p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_XB_IsSldSeVectorStyle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_IsSldSeVectorStyle(XmlBLOB) / / returns TRUE if the current BLOB is an SLD/SE Vector Style XmlBLOB, / FALSE if it's a valid XmlBLOB but not an SLD/SE Style / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = gaiaIsSldSeVectorStyleXmlBlob (p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_XB_IsSldSeRasterStyle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_IsSldSeRasterStyle(XmlBLOB) / / returns TRUE if the current BLOB is an SLD/SE Raster Style XmlBLOB, / FALSE if it's a valid XmlBLOB but not an SLD/SE Style / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = gaiaIsSldSeRasterStyleXmlBlob (p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_XB_IsSldStyle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_IsSldStyle(XmlBLOB) / / returns TRUE if the current BLOB is an SLD Style XmlBLOB, / FALSE if it's a valid XmlBLOB but not an SLD Style / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = gaiaIsSldStyleXmlBlob (p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_XB_IsSvg (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_IsSvg(XmlBLOB) / / returns TRUE if the current BLOB is an SLD/SE Style XmlBLOB, / FALSE if it's a valid XmlBLOB but not an SLD/SE Style / or -1 if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_int (context, -1); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = gaiaIsSvgXmlBlob (p_blob, n_bytes); sqlite3_result_int (context, ret); } static void fnct_XB_GetDocumentSize (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetDocumentSize(XmlBLOB) / / if the BLOB is a valid XmlBLOB will return the XMLDocument size (in bytes) / or NULL if any error is encountered */ unsigned char *p_blob; int n_bytes; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); ret = gaiaXmlBlobGetDocumentSize (p_blob, n_bytes); if (ret < 0) sqlite3_result_null (context); else sqlite3_result_int (context, ret); } static void fnct_XB_GetSchemaURI (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetSchemaURI(XmlBLOB) / / if the BLOB is a valid XmlBLOB containing a SchemaURI then / the SchemaURI will be returned / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; char *schema_uri; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); schema_uri = gaiaXmlBlobGetSchemaURI (p_blob, n_bytes); if (schema_uri == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, schema_uri, strlen (schema_uri), free); } static void fnct_XB_GetFileId (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetFileId(XmlBLOB) / / if the BLOB is a valid XmlBLOB containing a FileIdentifier then / the FileIdentifier will be returned / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; char *file_identifier; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); file_identifier = gaiaXmlBlobGetFileId (p_blob, n_bytes); if (file_identifier == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, file_identifier, strlen (file_identifier), free); } static void fnct_XB_GetParentId (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetParentId(XmlBLOB) / / if the BLOB is a valid XmlBLOB containing a ParentIdentifier then / the ParentIdentifier will be returned / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; char *parent_identifier; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); parent_identifier = gaiaXmlBlobGetParentId (p_blob, n_bytes); if (parent_identifier == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, parent_identifier, strlen (parent_identifier), free); } static void fnct_XB_SetFileId (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_SetFileId(XmlBLOB, Text value) / / if the BLOB is a valid XmlBLOB of the ISO-Metadata type / already containing a FileID then this function will / return a new XmlBLOB containing the new FileID / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; unsigned char *new_blob; int new_bytes; const char *identifier; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); identifier = (const char *) sqlite3_value_text (argv[1]); if (!gaiaXmlBlobSetFileId (sqlite3_user_data (context), p_blob, n_bytes, identifier, &new_blob, &new_bytes)) sqlite3_result_null (context); else sqlite3_result_blob (context, new_blob, new_bytes, free); } static void fnct_XB_SetParentId (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_SetParentId(XmlBLOB, Text value) / / if the BLOB is a valid XmlBLOB of the ISO-Metadata type / already containing a ParentID then this function will / return a new XmlBLOB containing the new ParentID / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; unsigned char *new_blob; int new_bytes; const char *identifier; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); identifier = (const char *) sqlite3_value_text (argv[1]); if (!gaiaXmlBlobSetParentId (sqlite3_user_data (context), p_blob, n_bytes, identifier, &new_blob, &new_bytes)) sqlite3_result_null (context); else sqlite3_result_blob (context, new_blob, new_bytes, free); } static void fnct_XB_AddFileId (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_AddFileId(XmlBLOB, Text value, Text ns_id, Text uri_id, Text ns_charstr, Text uri_charstr) / / if the BLOB is a valid XmlBLOB of the ISO-Metadata type / not containing a FileID then this function will / return a new XmlBLOB containing the new FileID / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; unsigned char *new_blob; int new_bytes; const char *identifier; const char *ns_id = NULL; const char *uri_id = NULL; const char *ns_charstr = NULL; const char *uri_charstr = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_TEXT || sqlite3_value_type (argv[2]) == SQLITE_NULL) ; else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_TEXT || sqlite3_value_type (argv[3]) == SQLITE_NULL) ; else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_TEXT || sqlite3_value_type (argv[4]) == SQLITE_NULL) ; else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[5]) == SQLITE_TEXT || sqlite3_value_type (argv[5]) == SQLITE_NULL) ; else { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); identifier = (const char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) ns_id = (const char *) sqlite3_value_text (argv[2]); if (sqlite3_value_type (argv[3]) == SQLITE_TEXT) uri_id = (const char *) sqlite3_value_text (argv[3]); if (sqlite3_value_type (argv[4]) == SQLITE_TEXT) ns_charstr = (const char *) sqlite3_value_text (argv[4]); if (sqlite3_value_type (argv[5]) == SQLITE_TEXT) uri_charstr = (const char *) sqlite3_value_text (argv[5]); if (!gaiaXmlBlobAddFileId (sqlite3_user_data (context), p_blob, n_bytes, identifier, ns_id, uri_id, ns_charstr, uri_charstr, &new_blob, &new_bytes)) sqlite3_result_null (context); else sqlite3_result_blob (context, new_blob, new_bytes, free); } static void fnct_XB_AddParentId (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_AddParentId(XmlBLOB, Text value, Text ns_id, Text uri_id, Text ns_charstr, Text url_charstr) / / if the BLOB is a valid XmlBLOB of the ISO-Metadata type / not containing a ParentID then this function will / return a new XmlBLOB containing the new ParentID / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; unsigned char *new_blob; int new_bytes; const char *identifier; const char *ns_id = NULL; const char *uri_id = NULL; const char *ns_charstr = NULL; const char *uri_charstr = NULL; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_TEXT) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_TEXT || sqlite3_value_type (argv[2]) == SQLITE_NULL) ; else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_TEXT || sqlite3_value_type (argv[3]) == SQLITE_NULL) ; else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_TEXT || sqlite3_value_type (argv[4]) == SQLITE_NULL) ; else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[5]) == SQLITE_TEXT || sqlite3_value_type (argv[5]) == SQLITE_NULL) ; else { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); identifier = (const char *) sqlite3_value_text (argv[1]); if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) ns_id = (const char *) sqlite3_value_text (argv[2]); if (sqlite3_value_type (argv[3]) == SQLITE_TEXT) uri_id = (const char *) sqlite3_value_text (argv[3]); if (sqlite3_value_type (argv[4]) == SQLITE_TEXT) ns_charstr = (const char *) sqlite3_value_text (argv[4]); if (sqlite3_value_type (argv[5]) == SQLITE_TEXT) uri_charstr = (const char *) sqlite3_value_text (argv[5]); if (!gaiaXmlBlobAddParentId (sqlite3_user_data (context), p_blob, n_bytes, identifier, ns_id, uri_id, ns_charstr, uri_charstr, &new_blob, &new_bytes)) sqlite3_result_null (context); else sqlite3_result_blob (context, new_blob, new_bytes, free); } static void fnct_XB_GetName (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetName(XmlBLOB) / / if the BLOB is a valid XmlBLOB containing a Name then / the Name will be returned / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; char *name; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); name = gaiaXmlBlobGetName (p_blob, n_bytes); if (name == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, name, strlen (name), free); } static void fnct_XB_GetTitle (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetTitle(XmlBLOB) / / if the BLOB is a valid XmlBLOB containing a Title then / the Title will be returned / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; char *title; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); title = gaiaXmlBlobGetTitle (p_blob, n_bytes); if (title == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, title, strlen (title), free); } static void fnct_XB_GetAbstract (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetAbstract(XmlBLOB) / / if the BLOB is a valid XmlBLOB containing an Abstract then / the Abstract will be returned / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; char *abstract; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); abstract = gaiaXmlBlobGetAbstract (p_blob, n_bytes); if (abstract == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, abstract, strlen (abstract), free); } static void fnct_XB_GetGeometry (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetGeometry(XmlBLOB) / / if the BLOB is a valid XmlBLOB containing a Geometry then / the Geometry will be returned / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; int blob_len; unsigned char *blob; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); gaiaXmlBlobGetGeometry (p_blob, n_bytes, &blob, &blob_len); if (blob == NULL) sqlite3_result_null (context); else sqlite3_result_blob (context, blob, blob_len, free); } static void fnct_XB_GetEncoding (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetEncoding(XmlBLOB) / / if the BLOB is a valid XmlBLOB explicitly defining an encoding then / the charset name will be returned / return NULL on any other case */ const unsigned char *p_blob; int n_bytes; char *encoding; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } p_blob = sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); encoding = gaiaXmlBlobGetEncoding (p_blob, n_bytes); if (encoding == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, encoding, strlen (encoding), free); } static void fnct_XB_GetInternalSchemaURI (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetInternalSchemaURI(XmlDocument) / / if the XMLDocument is valid and it contains an internally / defined SchemaURI then this SchemaURI will be returned / return NULL on any other case */ const unsigned char *xml; int xml_len; char *schema_uri; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } xml = sqlite3_value_blob (argv[0]); xml_len = sqlite3_value_bytes (argv[0]); schema_uri = gaiaXmlGetInternalSchemaURI (sqlite3_user_data (context), xml, xml_len); if (schema_uri == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, schema_uri, strlen (schema_uri), free); } static void fnct_XB_GetLastParseError (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetLastParseError() / / return the most recent XML Parse error/warning (if any) / return NULL on any other case */ char *msg; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ msg = gaiaXmlBlobGetLastParseError (sqlite3_user_data (context)); if (msg == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); } static void fnct_XB_GetLastValidateError (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetLastValidateError() / / return the most recent XML Validate error/warning (if any) / return NULL on any other case */ char *msg; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ msg = gaiaXmlBlobGetLastValidateError (sqlite3_user_data (context)); if (msg == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); } static void fnct_XB_IsValidXPathExpression (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_IsValidXPathExpression(text XPathExpression) / / returns TRUE if the current arg is a valid XPathExpression, / FALSE if it's not / or -1 if any error is encountered */ int ret; const char *xpath; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (sqlite3_value_type (argv[0]) != SQLITE_TEXT) { sqlite3_result_int (context, -1); return; } xpath = (const char *) sqlite3_value_text (argv[0]); ret = gaiaIsValidXPathExpression (sqlite3_user_data (context), xpath); sqlite3_result_int (context, ret); } static void fnct_XB_GetLastXPathError (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_GetLastXPathError() / / return the most recent XML Validate error/warning (if any) / return NULL on any other case */ char *msg; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ msg = gaiaXmlBlobGetLastXPathError (sqlite3_user_data (context)); if (msg == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, msg, strlen (msg), SQLITE_STATIC); } static void fnct_XB_CacheFlush (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / XB_CacheFlush() / / resets the Internal XML Schema Cache to its initial empty state / / returns TRUE on success */ int i; struct splite_xmlSchema_cache_item *p_xmlSchema; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ for (i = 0; i < MAX_XMLSCHEMA_CACHE; i++) { /* freeing the XmlSchema cache */ p_xmlSchema = &(cache->xmlSchemaCache[i]); splite_free_xml_schema_cache_item (p_xmlSchema); } sqlite3_result_int (context, 1); } #endif /* end including LIBXML2 */ static void fnct_AffineTransformMatrix_Create (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ATM_Create() - identity transformation / or / ATM_Create(double a, double b, double d, double e, / double xoff, double yoff) - 2D / or / ATM_Create(double a, double b, double c, double d, / double e, double f, double g, double h, / double i, double xoff, double yoff, / double zoff) - 3D / / returns a BLOB-ATM object or NULL on failure */ double a = 1.0; double b = 0.0; double c = 0.0; double d = 0.0; double e = 1.0; double f = 0.0; double g = 0.0; double h = 0.0; double i = 1.0; double xoff = 0.0; double yoff = 0.0; double zoff = 0.0; int int_value; unsigned char *blob; int blob_sz; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (argc == 6) { /* 2D transform */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) a = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); a = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) b = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); b = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) d = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); d = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) e = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); e = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) xoff = sqlite3_value_double (argv[4]); else if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[4]); xoff = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) yoff = sqlite3_value_double (argv[5]); else if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[5]); yoff = int_value; } else { sqlite3_result_null (context); return; } } else if (argc == 12) { /* 3D transform */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) a = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); a = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) b = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); b = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) c = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); c = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) d = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); d = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[4]) == SQLITE_FLOAT) e = sqlite3_value_double (argv[4]); else if (sqlite3_value_type (argv[4]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[4]); e = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[5]) == SQLITE_FLOAT) f = sqlite3_value_double (argv[5]); else if (sqlite3_value_type (argv[5]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[5]); f = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[6]) == SQLITE_FLOAT) g = sqlite3_value_double (argv[6]); else if (sqlite3_value_type (argv[6]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[6]); g = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[7]) == SQLITE_FLOAT) h = sqlite3_value_double (argv[7]); else if (sqlite3_value_type (argv[7]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[7]); h = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[8]) == SQLITE_FLOAT) i = sqlite3_value_double (argv[8]); else if (sqlite3_value_type (argv[8]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[8]); i = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[9]) == SQLITE_FLOAT) xoff = sqlite3_value_double (argv[6]); else if (sqlite3_value_type (argv[9]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[9]); xoff = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[10]) == SQLITE_FLOAT) yoff = sqlite3_value_double (argv[10]); else if (sqlite3_value_type (argv[10]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[10]); yoff = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[11]) == SQLITE_FLOAT) zoff = sqlite3_value_double (argv[11]); else if (sqlite3_value_type (argv[11]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[11]); zoff = int_value; } else { sqlite3_result_null (context); return; } } /* creating the BLOB-encoded Affine Transform Matrix */ gaia_matrix_create (a, b, c, d, e, f, g, h, i, xoff, yoff, zoff, &blob, &blob_sz); if (blob == NULL) sqlite3_result_null (context); else sqlite3_result_blob (context, blob, blob_sz, free); } static void fnct_AffineTransformMatrix_CreateTranslate (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ATM_CreateTranslate(double tx, double ty) - 2D / or / ATM_CreateTranslate(double tx, double ty, double tz) - 3D / / returns a BLOB-ATM object or NULL on failure */ double a = 1.0; double b = 0.0; double c = 0.0; double d = 0.0; double e = 1.0; double f = 0.0; double g = 0.0; double h = 0.0; double i = 1.0; double xoff = 0.0; double yoff = 0.0; double zoff = 0.0; int int_value; unsigned char *blob; int blob_sz; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (argc == 2) { /* 2D translate */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) xoff = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); xoff = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) yoff = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); yoff = int_value; } else { sqlite3_result_null (context); return; } } else if (argc == 3) { /* 3D translate */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) xoff = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); xoff = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) yoff = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); yoff = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) zoff = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); zoff = int_value; } else { sqlite3_result_null (context); return; } } /* creating the BLOB-encoded Affine Transform Matrix */ gaia_matrix_create (a, b, c, d, e, f, g, h, i, xoff, yoff, zoff, &blob, &blob_sz); if (blob == NULL) sqlite3_result_null (context); else sqlite3_result_blob (context, blob, blob_sz, free); } static void fnct_AffineTransformMatrix_CreateScale (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ATM_CreateScale(double sx, double sy) - 2D / or / ATM_CreateScale(double sx, double sy, double sz - 3D / / returns a BLOB-ATM object or NULL on failure */ double a = 1.0; double b = 0.0; double c = 0.0; double d = 0.0; double e = 1.0; double f = 0.0; double g = 0.0; double h = 0.0; double i = 1.0; double xoff = 0.0; double yoff = 0.0; double zoff = 0.0; int int_value; unsigned char *blob; int blob_sz; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (argc == 2) { /* 2D scale */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) a = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); a = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) e = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); e = int_value; } else { sqlite3_result_null (context); return; } } else if (argc == 3) { /* 3D scale */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) a = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); a = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) e = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); e = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) i = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); i = int_value; } else { sqlite3_result_null (context); return; } } /* creating the BLOB-encoded Affine Transform Matrix */ gaia_matrix_create (a, b, c, d, e, f, g, h, i, xoff, yoff, zoff, &blob, &blob_sz); if (blob == NULL) sqlite3_result_null (context); else sqlite3_result_blob (context, blob, blob_sz, free); } static void fnct_AffineTransformMatrix_CreateRotate (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ATM_CreateRotate(double angleInDegrees) - 2D / or / ATM_CreateZRoll(double angeInDegrees) - 3D / / returns a BLOB-ATM object or NULL on failure */ double a = 1.0; double b = 0.0; double c = 0.0; double d = 0.0; double e = 1.0; double f = 0.0; double g = 0.0; double h = 0.0; double i = 1.0; double xoff = 0.0; double yoff = 0.0; double zoff = 0.0; int int_value; unsigned char *blob; int blob_sz; double angle; double coeff = .0174532925199432958; double rads; double vsin; double vcos; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) angle = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); angle = int_value; } else { sqlite3_result_null (context); return; } rads = angle * coeff; vsin = sin (rads); vcos = cos (rads); a = vcos; b = -vsin; d = vsin; e = vcos; /* creating the BLOB-encoded Affine Transform Matrix */ gaia_matrix_create (a, b, c, d, e, f, g, h, i, xoff, yoff, zoff, &blob, &blob_sz); if (blob == NULL) sqlite3_result_null (context); else sqlite3_result_blob (context, blob, blob_sz, free); } static void fnct_AffineTransformMatrix_CreateXRoll (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ATM_CreateXRoll(double angleInDegrees) - 3D / / returns a BLOB-ATM object or NULL on failure */ double a = 1.0; double b = 0.0; double c = 0.0; double d = 0.0; double e = 1.0; double f = 0.0; double g = 0.0; double h = 0.0; double i = 1.0; double xoff = 0.0; double yoff = 0.0; double zoff = 0.0; int int_value; unsigned char *blob; int blob_sz; double angle; double coeff = .0174532925199432958; double rads; double vsin; double vcos; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) angle = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); angle = int_value; } else { sqlite3_result_null (context); return; } rads = angle * coeff; vsin = sin (rads); vcos = cos (rads); e = vcos; f = -vsin; h = vsin; i = vcos; /* creating the BLOB-encoded Affine Transform Matrix */ gaia_matrix_create (a, b, c, d, e, f, g, h, i, xoff, yoff, zoff, &blob, &blob_sz); if (blob == NULL) sqlite3_result_null (context); else sqlite3_result_blob (context, blob, blob_sz, free); } static void fnct_AffineTransformMatrix_CreateYRoll (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ATM_CreateYRoll(double angleInDegrees) - 3D / / returns a BLOB-ATM object or NULL on failure */ double a = 1.0; double b = 0.0; double c = 0.0; double d = 0.0; double e = 1.0; double f = 0.0; double g = 0.0; double h = 0.0; double i = 1.0; double xoff = 0.0; double yoff = 0.0; double zoff = 0.0; int int_value; unsigned char *blob; int blob_sz; double angle; double coeff = .0174532925199432958; double rads; double vsin; double vcos; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) angle = sqlite3_value_double (argv[0]); else if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[0]); angle = int_value; } else { sqlite3_result_null (context); return; } rads = angle * coeff; vsin = sin (rads); vcos = cos (rads); a = vcos; c = vsin; g = -vsin; i = vcos; /* creating the BLOB-encoded Affine Transform Matrix */ gaia_matrix_create (a, b, c, d, e, f, g, h, i, xoff, yoff, zoff, &blob, &blob_sz); if (blob == NULL) sqlite3_result_null (context); else sqlite3_result_blob (context, blob, blob_sz, free); } static void fnct_AffineTransformMatrix_Multiply (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ATM_Multiply(blob atmA, blob atmB) / / returns a BLOB-ATM object or NULL on failure */ unsigned char *blob; int blob_sz; const unsigned char *iblob1; int iblob1_sz; const unsigned char *iblob2; int iblob2_sz; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { iblob1 = sqlite3_value_blob (argv[0]); iblob1_sz = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_BLOB) { iblob2 = sqlite3_value_blob (argv[1]); iblob2_sz = sqlite3_value_bytes (argv[1]); } else { sqlite3_result_null (context); return; } /* creating the BLOB-encoded Affine Transform Matrix */ gaia_matrix_multiply (iblob1, iblob1_sz, iblob2, iblob2_sz, &blob, &blob_sz); if (blob == NULL) sqlite3_result_null (context); else sqlite3_result_blob (context, blob, blob_sz, free); } static void fnct_AffineTransformMatrix_Translate (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ATM_Translate(blob atm, double tx, double ty) - 2D / or / ATM_Translate(blob atm, double tx, double ty, double tz) - 3D / / returns a BLOB-ATM object or NULL on failure */ double a = 1.0; double b = 0.0; double c = 0.0; double d = 0.0; double e = 1.0; double f = 0.0; double g = 0.0; double h = 0.0; double i = 1.0; double xoff = 0.0; double yoff = 0.0; double zoff = 0.0; int int_value; unsigned char *blob; int blob_sz; const unsigned char *iblob; int iblob_sz; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (argc == 3) { /* 2D translate */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { iblob = sqlite3_value_blob (argv[0]); iblob_sz = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) xoff = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); xoff = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) yoff = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); yoff = int_value; } else { sqlite3_result_null (context); return; } } else if (argc == 4) { /* 3D translate */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { iblob = sqlite3_value_blob (argv[0]); iblob_sz = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) xoff = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); xoff = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) yoff = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); yoff = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) zoff = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); zoff = int_value; } else { sqlite3_result_null (context); return; } } /* creating the BLOB-encoded Affine Transform Matrix */ gaia_matrix_create_multiply (iblob, iblob_sz, a, b, c, d, e, f, g, h, i, xoff, yoff, zoff, &blob, &blob_sz); if (blob == NULL) sqlite3_result_null (context); else sqlite3_result_blob (context, blob, blob_sz, free); } static void fnct_AffineTransformMatrix_Scale (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ATM_Scale(blob atm, double sx, double sy) - 2D / or / ATM_Scale(blob atm, double sx, double sy, double sz) - 3D / / will create a BLOB-encoded Affine Transform Matrix / / returns a BLOB-ATM object or NULL on failure */ double a = 1.0; double b = 0.0; double c = 0.0; double d = 0.0; double e = 1.0; double f = 0.0; double g = 0.0; double h = 0.0; double i = 1.0; double xoff = 0.0; double yoff = 0.0; double zoff = 0.0; int int_value; unsigned char *blob; int blob_sz; const unsigned char *iblob; int iblob_sz; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (argc == 3) { /* 2D scale */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { iblob = sqlite3_value_blob (argv[0]); iblob_sz = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) a = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); a = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) e = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); e = int_value; } else { sqlite3_result_null (context); return; } } else if (argc == 4) { /* 3D scale */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { iblob = sqlite3_value_blob (argv[0]); iblob_sz = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) a = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); a = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[2]) == SQLITE_FLOAT) e = sqlite3_value_double (argv[2]); else if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[2]); e = int_value; } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[3]) == SQLITE_FLOAT) i = sqlite3_value_double (argv[3]); else if (sqlite3_value_type (argv[3]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[3]); i = int_value; } else { sqlite3_result_null (context); return; } } /* creating the BLOB-encoded Affine Transform Matrix */ gaia_matrix_create_multiply (iblob, iblob_sz, a, b, c, d, e, f, g, h, i, xoff, yoff, zoff, &blob, &blob_sz); if (blob == NULL) sqlite3_result_null (context); else sqlite3_result_blob (context, blob, blob_sz, free); } static void fnct_AffineTransformMatrix_Rotate (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ATM_Rotate(blob atm, double angleInDegrees) - 2D / or / ATM_ZRoll(blob atm, double angleInDegrees) - 3D / / will create a BLOB-encoded Affine Transform Matrix / / returns a BLOB-ATM object or NULL on failure */ double a = 1.0; double b = 0.0; double c = 0.0; double d = 0.0; double e = 1.0; double f = 0.0; double g = 0.0; double h = 0.0; double i = 1.0; double xoff = 0.0; double yoff = 0.0; double zoff = 0.0; int int_value; double angle; double coeff = .0174532925199432958; double rads; double vsin; double vcos; unsigned char *blob; int blob_sz; const unsigned char *iblob; int iblob_sz; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { iblob = sqlite3_value_blob (argv[0]); iblob_sz = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) angle = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); angle = int_value; } else { sqlite3_result_null (context); return; } rads = angle * coeff; vsin = sin (rads); vcos = cos (rads); a = vcos; b = -vsin; d = vsin; e = vcos; /* creating the BLOB-encoded Affine Transform Matrix */ gaia_matrix_create_multiply (iblob, iblob_sz, a, b, c, d, e, f, g, h, i, xoff, yoff, zoff, &blob, &blob_sz); if (blob == NULL) sqlite3_result_null (context); else sqlite3_result_blob (context, blob, blob_sz, free); } static void fnct_AffineTransformMatrix_XRoll (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ATM_XRoll(double angleInDegrees, blob atm) - 3D / / will create a BLOB-encoded Affine Transform Matrix / / returns a BLOB-ATM object or NULL on failure */ double a = 1.0; double b = 0.0; double c = 0.0; double d = 0.0; double e = 1.0; double f = 0.0; double g = 0.0; double h = 0.0; double i = 1.0; double xoff = 0.0; double yoff = 0.0; double zoff = 0.0; int int_value; double angle; double coeff = .0174532925199432958; double rads; double vsin; double vcos; unsigned char *blob; int blob_sz; const unsigned char *iblob; int iblob_sz; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { iblob = sqlite3_value_blob (argv[0]); iblob_sz = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) angle = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); angle = int_value; } else { sqlite3_result_null (context); return; } rads = angle * coeff; vsin = sin (rads); vcos = cos (rads); e = vcos; f = -vsin; h = vsin; i = vcos; /* creating the BLOB-encoded Affine Transform Matrix */ gaia_matrix_create_multiply (iblob, iblob_sz, a, b, c, d, e, f, g, h, i, xoff, yoff, zoff, &blob, &blob_sz); if (blob == NULL) sqlite3_result_null (context); else sqlite3_result_blob (context, blob, blob_sz, free); } static void fnct_AffineTransformMatrix_YRoll (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ATM_YRoll(double angleInDegrees, blob atm) - 3D / / will create a BLOB-encoded Affine Transform Matrix / / returns a BLOB-ATM object or NULL on failure */ double a = 1.0; double b = 0.0; double c = 0.0; double d = 0.0; double e = 1.0; double f = 0.0; double g = 0.0; double h = 0.0; double i = 1.0; double xoff = 0.0; double yoff = 0.0; double zoff = 0.0; int int_value; double angle; double coeff = .0174532925199432958; double rads; double vsin; double vcos; unsigned char *blob; int blob_sz; const unsigned char *iblob; int iblob_sz; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { iblob = sqlite3_value_blob (argv[0]); iblob_sz = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) angle = sqlite3_value_double (argv[1]); else if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int_value = sqlite3_value_int (argv[1]); angle = int_value; } else { sqlite3_result_null (context); return; } rads = angle * coeff; vsin = sin (rads); vcos = cos (rads); a = vcos; c = vsin; g = -vsin; i = vcos; /* creating the BLOB-encoded Affine Transform Matrix */ gaia_matrix_create_multiply (iblob, iblob_sz, a, b, c, d, e, f, g, h, i, xoff, yoff, zoff, &blob, &blob_sz); if (blob == NULL) sqlite3_result_null (context); else sqlite3_result_blob (context, blob, blob_sz, free); } static void fnct_AffineTransformMatrix_Determinant (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ATM_Determinant(blob atm) / / will return the Determinant from a BLOB-encoded Affine Transform Matrix / or 0.0 on failure */ const unsigned char *iblob; int iblob_sz; double det = 0.0; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { iblob = sqlite3_value_blob (argv[0]); iblob_sz = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_double (context, det); return; } /* evaluating the Affine Transform Matrix */ det = gaia_matrix_determinant (iblob, iblob_sz); sqlite3_result_double (context, det); } static void fnct_AffineTransformMatrix_IsInvertible (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ATM_IsInvertible(blob atm) / / will return TRUE if the a BLOB-encoded Affine Transform Matrix / is Invertible, FALSE if not / -1 on invalid arguments */ const unsigned char *iblob; int iblob_sz; double det; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { iblob = sqlite3_value_blob (argv[0]); iblob_sz = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_int (context, -1); return; } /* evaluating the Affine Transform Matrix */ det = gaia_matrix_determinant (iblob, iblob_sz); if (det != 0.0) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } static void fnct_AffineTransformMatrix_Invert (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ATM_Invert(blob atm) / / will create an Inverse BLOB-encoded Affine Transform Matrix / / returns a BLOB-ATM object or NULL on failure */ unsigned char *blob; int blob_sz; const unsigned char *iblob; int iblob_sz; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { iblob = sqlite3_value_blob (argv[0]); iblob_sz = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } /* creating the BLOB-encoded Affine Transform Matrix (Inverse) */ gaia_matrix_invert (iblob, iblob_sz, &blob, &blob_sz); if (blob == NULL) sqlite3_result_null (context); else sqlite3_result_blob (context, blob, blob_sz, free); } static void fnct_AffineTransformMatrix_GeometryTransform (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ATM_Transform(blob geom, blob atm [ , int srid] ) / / will create a BLOB-Geometry by applying to the input Geometry all / transformations specified by the Affine Transform Matrix / / returns a BLOB-ATM object or NULL on failure */ unsigned char *blob; int blob_sz; const unsigned char *iblob1; int iblob1_sz; const unsigned char *iblob2; int iblob2_sz; gaiaGeomCollPtr g1; gaiaGeomCollPtr g2; int srid = -9999; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } /* validating the input args */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { iblob1 = sqlite3_value_blob (argv[0]); iblob1_sz = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_BLOB) { iblob2 = sqlite3_value_blob (argv[1]); iblob2_sz = sqlite3_value_bytes (argv[1]); } else { sqlite3_result_null (context); return; } if (argc == 3) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } } /* attempting to parse the BLOB-Geometry */ g1 = gaiaFromSpatiaLiteBlobWkbEx (iblob1, iblob1_sz, gpkg_mode, gpkg_amphibious); if (g1 == NULL) { sqlite3_result_null (context); return; } g2 = gaia_matrix_transform_geometry (g1, iblob2, iblob2_sz); gaiaFreeGeomColl (g1); if (g2 == NULL) { sqlite3_result_null (context); return; } if (srid != -9999) g2->Srid = srid; gaiaToSpatiaLiteBlobWkbEx (g2, &blob, &blob_sz, gpkg_mode); gaiaFreeGeomColl (g2); if (blob == NULL) sqlite3_result_null (context); else sqlite3_result_blob (context, blob, blob_sz, free); } static void fnct_AffineTransformMatrix_IsValid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ATM_IsValid(BLOB matrix) / / returns TRUE if the current BLOB is a valid BLOB-ATM, FALSE if not / or -1 if any error is encountered */ const unsigned char *blob; int blob_sz; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { blob = (const unsigned char *) sqlite3_value_blob (argv[0]); blob_sz = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_int (context, -1); return; } /* verifying the BLOB-Matrix */ ret = gaia_matrix_is_valid (blob, blob_sz); if (ret) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } static void fnct_AffineTransformMatrix_AsText (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / ATM_AsText(BLOB matrix) / / returns a textual representaion of the BLOB-Matrix / or NULL if any error is encountered */ const unsigned char *blob; int blob_sz; char *text; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { blob = (const unsigned char *) sqlite3_value_blob (argv[0]); blob_sz = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } /* retrieving the textual representation from the BLOB-Matrix */ text = gaia_matrix_as_text (blob, blob_sz); if (text == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, text, strlen (text), sqlite3_free); } #ifdef ENABLE_GCP /* only if ControlPoints enabled */ static int get_control_point (gaiaGeomCollPtr geom, double *x, double *y, double *z, int *has3d) { /* checking a Control Point */ gaiaPointPtr pt; if (geom == NULL) return 0; if (geom->FirstLinestring != NULL || geom->FirstPolygon != NULL) return 0; pt = geom->FirstPoint; if (pt == NULL || pt != geom->LastPoint) return 0; if (geom->DimensionModel == GAIA_XY_Z || geom->DimensionModel == GAIA_XY_Z_M) { *has3d = 1; *x = pt->X; *y = pt->Y; *z = pt->Z; } else { *has3d = 0; *x = pt->X; *y = pt->Y; } return 1; } static int check_control_point_dims (GaiaControlPointsPtr cp_handle, int has3d_0, int has3d_1) { /* validating Control Point dimensions */ struct gaia_control_points *cp = (struct gaia_control_points *) cp_handle; if (cp == NULL) return 0; if (has3d_0 != cp->has3d) return 0; if (has3d_1 != cp->has3d) return 0; return 1; } static void fnct_GroundControlPoints_Compute_step (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GCP_Compute(BLOB point1, BLOB point2 [ , int order ] ) / / aggregate function - STEP / */ unsigned char *p_blob0; int n_bytes0; unsigned char *p_blob1; int n_bytes1; gaiaGeomCollPtr geom0 = NULL; gaiaGeomCollPtr geom1 = NULL; double x0; double y0; double z0; double x1; double y1; double z1; int has3d_0; int has3d_1; int order = 1; int tps = 0; GaiaControlPointsPtr *cp; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) != SQLITE_BLOB) { sqlite3_result_null (context); return; } if (argc == 3) { if (sqlite3_value_type (argv[2]) != SQLITE_INTEGER) { sqlite3_result_null (context); return; } order = sqlite3_value_int (argv[2]); if (order >= 1 && order <= 3) ; /* 1st, 2nd or 3rd polynomial order */ else if (order == 0) { /* Thin Plate Splite */ order = 1; tps = 1; } else { sqlite3_result_null (context); return; } } p_blob0 = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes0 = sqlite3_value_bytes (argv[0]); p_blob1 = (unsigned char *) sqlite3_value_blob (argv[1]); n_bytes1 = sqlite3_value_bytes (argv[1]); geom0 = gaiaFromSpatiaLiteBlobWkbEx (p_blob0, n_bytes0, gpkg_mode, gpkg_amphibious); geom1 = gaiaFromSpatiaLiteBlobWkbEx (p_blob1, n_bytes1, gpkg_mode, gpkg_amphibious); if (!get_control_point (geom0, &x0, &y0, &z0, &has3d_0)) goto error; if (!get_control_point (geom1, &x1, &y1, &z1, &has3d_1)) goto error; if (has3d_0 != has3d_1) goto error; cp = sqlite3_aggregate_context (context, sizeof (struct gaia_control_points)); if (*cp == NULL) { /* this is the first row */ *cp = gaiaCreateControlPoints (1024, has3d_0, order, tps); if (has3d_0) gaiaAddControlPoint3D (*cp, x0, y0, z0, x1, y1, z1); else gaiaAddControlPoint2D (*cp, x0, y0, x1, y1); } else { /* subsequent rows */ if (!check_control_point_dims (*cp, has3d_0, has3d_1)) goto error; if (has3d_0) gaiaAddControlPoint3D (*cp, x0, y0, z0, x1, y1, z1); else gaiaAddControlPoint2D (*cp, x0, y0, x1, y1); } gaiaFreeGeomColl (geom0); gaiaFreeGeomColl (geom1); return; error: if (geom0 != NULL) gaiaFreeGeomColl (geom0); if (geom1 != NULL) gaiaFreeGeomColl (geom1); sqlite3_result_null (context); } static void fnct_GroundControlPoints_Compute_final (sqlite3_context * context) { /* SQL function: / GCP_Compute(BLOB point1, BLOB point2 [ , int order ] ) / / aggregate function - FINAL / */ unsigned char *blob = NULL; int blob_sz; int ret; GaiaControlPointsPtr *cp = sqlite3_aggregate_context (context, 0); if (cp == NULL) { sqlite3_result_null (context); return; } ret = gaiaCreatePolynomialCoeffs (*cp, &blob, &blob_sz); if (!ret) sqlite3_result_null (context); else sqlite3_result_blob (context, blob, blob_sz, free); gaiaFreeControlPoints (*cp); } static void fnct_GroundControlPoints_GeometryTransform (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GCP_Transform(blob geom, blob gcp [ , int srid ] ) / / will create a BLOB-Geometry by applying to the input Geometry all / transformations specified by the Polynomial coefficients / / returns a BLOB-ATM object or NULL on failure */ unsigned char *blob; int blob_sz; const unsigned char *iblob1; int iblob1_sz; const unsigned char *iblob2; int iblob2_sz; gaiaGeomCollPtr g1; gaiaGeomCollPtr g2; int srid = -9999; int gpkg_amphibious = 0; int gpkg_mode = 0; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache != NULL) { gpkg_amphibious = cache->gpkg_amphibious_mode; gpkg_mode = cache->gpkg_mode; } /* validating the input args */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { iblob1 = sqlite3_value_blob (argv[0]); iblob1_sz = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } if (sqlite3_value_type (argv[1]) == SQLITE_BLOB) { iblob2 = sqlite3_value_blob (argv[1]); iblob2_sz = sqlite3_value_bytes (argv[1]); } else { sqlite3_result_null (context); return; } if (argc == 3) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER) srid = sqlite3_value_int (argv[2]); else { sqlite3_result_null (context); return; } } /* attempting to parse the BLOB-Geometry */ g1 = gaiaFromSpatiaLiteBlobWkbEx (iblob1, iblob1_sz, gpkg_mode, gpkg_amphibious); if (g1 == NULL) { sqlite3_result_null (context); return; } g2 = gaiaPolynomialTransformGeometry (g1, iblob2, iblob2_sz); gaiaFreeGeomColl (g1); if (g2 == NULL) { sqlite3_result_null (context); return; } if (srid != -9999) g2->Srid = srid; gaiaToSpatiaLiteBlobWkbEx (g2, &blob, &blob_sz, gpkg_mode); gaiaFreeGeomColl (g2); if (blob == NULL) sqlite3_result_null (context); else sqlite3_result_blob (context, blob, blob_sz, free); } static void fnct_GroundControlPoints_IsValid (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GCO_IsValid(BLOB polynomail) / / returns TRUE if the current BLOB is a valid BLOB-GCP, FALSE if not / or -1 if any error is encountered */ const unsigned char *blob; int blob_sz; int ret; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { blob = (const unsigned char *) sqlite3_value_blob (argv[0]); blob_sz = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_int (context, -1); return; } /* verifying the BLOB-Polynomail */ ret = gaiaPolynomialIsValid (blob, blob_sz); if (ret) sqlite3_result_int (context, 1); else sqlite3_result_int (context, 0); } static void fnct_GroundControlPoints_AsText (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GCP_AsText(BLOB polynomail) / / returns a textual representaion of the BLOB-Polynomial / or NULL if any error is encountered */ const unsigned char *blob; int blob_sz; char *text; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { blob = (const unsigned char *) sqlite3_value_blob (argv[0]); blob_sz = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } /* retrieving the textual representation from the BLOB-Matrix */ text = gaiaPolynomialAsText (blob, blob_sz); if (text == NULL) sqlite3_result_null (context); else sqlite3_result_text (context, text, strlen (text), sqlite3_free); } static void fnct_GroundControlPoints_ToATM (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GCP2ATM(BLOB polynomail) / / returns a BLOB-Atm corresponding to a BLOB-Polynomial (first order only) / or NULL if any error is encountered */ const unsigned char *blob; int blob_sz; unsigned char *oblob; int oblob_sz; GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* validating the input args */ if (sqlite3_value_type (argv[0]) == SQLITE_BLOB) { blob = (const unsigned char *) sqlite3_value_blob (argv[0]); blob_sz = sqlite3_value_bytes (argv[0]); } else { sqlite3_result_null (context); return; } /* converting Polynomial coefficients into an Affine Transformation matrix */ if (!gaiaPolynomialToMatrix (blob, blob_sz, &oblob, &oblob_sz)) sqlite3_result_null (context); else sqlite3_result_blob (context, oblob, oblob_sz, free); } #endif /* end including GCP */ #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ static void fnct_enableGpkgMode (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / EnableGpkgMode ( void ) / / returns: nothing */ sqlite3 *sqlite; int ret; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache == NULL) return; sqlite = sqlite3_context_db_handle (context); ret = checkSpatialMetaData (sqlite); if (ret != 4) return; /* not GeoPackage */ cache->gpkg_mode = 1; cache->gpkg_amphibious_mode = 0; } static void fnct_disableGpkgMode (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DisableGpkgMode ( void ) / / returns: nothing */ struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache == NULL) return; cache->gpkg_mode = 0; } static void fnct_getGpkgMode (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GetGpkgMode ( void ) / / returns: TRUE or FALSE */ struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache == NULL) { sqlite3_result_int (context, 0); return; } sqlite3_result_int (context, cache->gpkg_mode); } static void fnct_enableGpkgAmphibiousMode (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / EnableGpkgAmphibiousMode ( void ) / / returns: nothing */ struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache == NULL) return; cache->gpkg_mode = 0; cache->gpkg_amphibious_mode = 1; } static void fnct_disableGpkgAmphibiousMode (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / DisableGpkgAmphibiousMode ( void ) / / returns: nothing */ struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache == NULL) return; cache->gpkg_amphibious_mode = 0; } static void fnct_getGpkgAmphibiousMode (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GetGpkgAmphibiousMode ( void ) / / returns: TRUE or FALSE */ struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache == NULL) { sqlite3_result_int (context, 0); return; } sqlite3_result_int (context, cache->gpkg_amphibious_mode); } #endif /* end GPKG conditional */ static void fnct_setDecimalPrecision (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / SetDecimalPrecision ( int precision ) / a negative precision identifies the default setting / / returns: nothing */ int precision = -1; struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache == NULL) return; if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) precision = sqlite3_value_int (argv[0]); else return; if (precision < 0) precision = -1; else if (precision == 6) precision = -1; else if (precision > 18) precision = 18; cache->decimal_precision = precision; } static void fnct_getDecimalPrecision (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / GetDecimalPrecision ( void ) / / returns: the currently set Decimal Precision */ struct splite_internal_cache *cache = sqlite3_user_data (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ if (cache == NULL) { sqlite3_result_int (context, -1); return; } sqlite3_result_int (context, cache->decimal_precision); } #ifdef LOADABLE_EXTENSION static void splite_close_callback (void *p_cache) { /* / the DB connection has been terminated / / this callback function is expected to be invoked only if / SpatiaLite was loaded as a dynamic extension and will / perform a final clean-up releasing the internal cache / */ struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; if (cache == NULL) return; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return; #ifdef ENABLE_LWGEOM gaiaResetLwGeomMsg (); #endif free_internal_cache (cache); } #endif SPATIALITE_PRIVATE void * register_spatialite_sql_functions (void *p_db, const void *p_cache) { sqlite3 *db = p_db; struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; const char *security_level; #ifdef LOADABLE_EXTENSION /* registering the CLOSE-CALLBACK function */ sqlite3_create_function_v2 (db, "spatialite_version", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_spatialite_version, 0, 0, splite_close_callback); #else sqlite3_create_function_v2 (db, "spatialite_version", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_spatialite_version, 0, 0, 0); #endif sqlite3_create_function_v2 (db, "spatialite_target_cpu", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_spatialite_target_cpu, 0, 0, 0); sqlite3_create_function_v2 (db, "freexl_version", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_freexl_version, 0, 0, 0); sqlite3_create_function_v2 (db, "proj4_version", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_proj4_version, 0, 0, 0); sqlite3_create_function_v2 (db, "geos_version", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_geos_version, 0, 0, 0); sqlite3_create_function_v2 (db, "lwgeom_version", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_lwgeom_version, 0, 0, 0); sqlite3_create_function_v2 (db, "libxml2_version", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_libxml2_version, 0, 0, 0); sqlite3_create_function_v2 (db, "HasProj", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_has_proj, 0, 0, 0); sqlite3_create_function_v2 (db, "HasGeos", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_has_geos, 0, 0, 0); sqlite3_create_function_v2 (db, "HasGeosAdvanced", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_has_geos_advanced, 0, 0, 0); sqlite3_create_function_v2 (db, "HasGeosTrunk", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_has_geos_trunk, 0, 0, 0); sqlite3_create_function_v2 (db, "HasLwGeom", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_has_lwgeom, 0, 0, 0); sqlite3_create_function_v2 (db, "HasMathSql", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_has_math_sql, 0, 0, 0); sqlite3_create_function_v2 (db, "HasGeoCallbacks", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_has_geo_callbacks, 0, 0, 0); sqlite3_create_function_v2 (db, "HasIconv", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_has_iconv, 0, 0, 0); sqlite3_create_function_v2 (db, "HasFreeXL", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_has_freeXL, 0, 0, 0); sqlite3_create_function_v2 (db, "HasEpsg", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_has_epsg, 0, 0, 0); sqlite3_create_function_v2 (db, "HasLibXML2", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_has_libxml2, 0, 0, 0); sqlite3_create_function_v2 (db, "HasGeoPackage", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_has_geopackage, 0, 0, 0); sqlite3_create_function_v2 (db, "GeometryConstraints", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_GeometryConstraints, 0, 0, 0); sqlite3_create_function_v2 (db, "GeometryConstraints", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_GeometryConstraints, 0, 0, 0); sqlite3_create_function_v2 (db, "RTreeAlign", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RTreeAlign, 0, 0, 0); sqlite3_create_function_v2 (db, "IsValidFont", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsValidFont, 0, 0, 0); sqlite3_create_function_v2 (db, "CheckFontFaceName", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CheckFontFacename, 0, 0, 0); sqlite3_create_function_v2 (db, "GetFontFamily", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_GetFontFamily, 0, 0, 0); sqlite3_create_function_v2 (db, "IsFontBold", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsFontBold, 0, 0, 0); sqlite3_create_function_v2 (db, "IsFontItalic", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsFontItalic, 0, 0, 0); sqlite3_create_function_v2 (db, "IsValidPixel", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsValidPixel, 0, 0, 0); sqlite3_create_function_v2 (db, "IsValidRasterPalette", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsValidRasterPalette, 0, 0, 0); sqlite3_create_function_v2 (db, "IsValidRasterStatistics", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsValidRasterStatistics, 0, 0, 0); sqlite3_create_function_v2 (db, "IsValidRasterStatistics", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsValidRasterStatistics, 0, 0, 0); sqlite3_create_function_v2 (db, "IsValidRasterTile", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsValidRasterTile, 0, 0, 0); sqlite3_create_function_v2 (db, "IsPopulatedCoverage", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsPopulatedCoverage, 0, 0, 0); sqlite3_create_function_v2 (db, "CheckSpatialMetaData", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CheckSpatialMetaData, 0, 0, 0); sqlite3_create_function_v2 (db, "CheckGeoPackageMetaData", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CheckGeoPackageMetaData, 0, 0, 0); sqlite3_create_function_v2 (db, "AutoFDOStart", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AutoFDOStart, 0, 0, 0); sqlite3_create_function_v2 (db, "AutoFDOStop", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AutoFDOStop, 0, 0, 0); sqlite3_create_function_v2 (db, "InitFDOSpatialMetaData", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_InitFDOSpatialMetaData, 0, 0, 0); sqlite3_create_function_v2 (db, "AddFDOGeometryColumn", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AddFDOGeometryColumn, 0, 0, 0); sqlite3_create_function_v2 (db, "RecoverFDOGeometryColumn", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RecoverFDOGeometryColumn, 0, 0, 0); sqlite3_create_function_v2 (db, "DiscardFDOGeometryColumn", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_DiscardFDOGeometryColumn, 0, 0, 0); sqlite3_create_function_v2 (db, "InitSpatialMetaData", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_InitSpatialMetaData, 0, 0, 0); sqlite3_create_function_v2 (db, "InitSpatialMetaData", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_InitSpatialMetaData, 0, 0, 0); sqlite3_create_function_v2 (db, "InitSpatialMetaData", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_InitSpatialMetaData, 0, 0, 0); sqlite3_create_function_v2 (db, "InsertEpsgSrid", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_InsertEpsgSrid, 0, 0, 0); sqlite3_create_function_v2 (db, "SridIsGeographic", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_SridIsGeographic, 0, 0, 0); sqlite3_create_function_v2 (db, "SridIsProjected", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_SridIsProjected, 0, 0, 0); sqlite3_create_function_v2 (db, "SridHasFlippedAxes", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_SridHasFlippedAxes, 0, 0, 0); sqlite3_create_function_v2 (db, "SridGetSpheroid", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_SridGetSpheroid, 0, 0, 0); sqlite3_create_function_v2 (db, "SridGetEllipsoid", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_SridGetSpheroid, 0, 0, 0); sqlite3_create_function_v2 (db, "SridGetPrimeMeridian", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_SridGetPrimeMeridian, 0, 0, 0); sqlite3_create_function_v2 (db, "SridGetDatum", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_SridGetDatum, 0, 0, 0); sqlite3_create_function_v2 (db, "SridGetProjection", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_SridGetProjection, 0, 0, 0); sqlite3_create_function_v2 (db, "SridGetUnit", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_SridGetUnit, 0, 0, 0); sqlite3_create_function_v2 (db, "SridGetAxis_1_Name", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_SridGetAxis1Name, 0, 0, 0); sqlite3_create_function_v2 (db, "SridGetAxis_1_Orientation", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_SridGetAxis1Orientation, 0, 0, 0); sqlite3_create_function_v2 (db, "SridGetAxis_2_Name", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_SridGetAxis2Name, 0, 0, 0); sqlite3_create_function_v2 (db, "SridGetAxis_2_Orientation", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_SridGetAxis2Orientation, 0, 0, 0); sqlite3_create_function_v2 (db, "AddGeometryColumn", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AddGeometryColumn, 0, 0, 0); sqlite3_create_function_v2 (db, "AddGeometryColumn", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AddGeometryColumn, 0, 0, 0); sqlite3_create_function_v2 (db, "AddGeometryColumn", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AddGeometryColumn, 0, 0, 0); sqlite3_create_function_v2 (db, "RecoverGeometryColumn", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RecoverGeometryColumn, 0, 0, 0); sqlite3_create_function_v2 (db, "RecoverGeometryColumn", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RecoverGeometryColumn, 0, 0, 0); sqlite3_create_function_v2 (db, "UpgradeGeometryTriggers", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UpgradeGeometryTriggers, 0, 0, 0); sqlite3_create_function_v2 (db, "DiscardGeometryColumn", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_DiscardGeometryColumn, 0, 0, 0); sqlite3_create_function_v2 (db, "RegisterVirtualGeometry", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RegisterVirtualGeometry, 0, 0, 0); sqlite3_create_function_v2 (db, "DropVirtualGeometry", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_DropVirtualGeometry, 0, 0, 0); sqlite3_create_function_v2 (db, "RecoverSpatialIndex", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RecoverSpatialIndex, 0, 0, 0); sqlite3_create_function_v2 (db, "RecoverSpatialIndex", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RecoverSpatialIndex, 0, 0, 0); sqlite3_create_function_v2 (db, "RecoverSpatialIndex", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RecoverSpatialIndex, 0, 0, 0); sqlite3_create_function_v2 (db, "RecoverSpatialIndex", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RecoverSpatialIndex, 0, 0, 0); sqlite3_create_function_v2 (db, "CheckSpatialIndex", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CheckSpatialIndex, 0, 0, 0); sqlite3_create_function_v2 (db, "CheckSpatialIndex", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CheckSpatialIndex, 0, 0, 0); sqlite3_create_function_v2 (db, "CheckShadowedRowid", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CheckShadowedRowid, 0, 0, 0); sqlite3_create_function_v2 (db, "CheckWithoutRowid", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CheckWithoutRowid, 0, 0, 0); sqlite3_create_function_v2 (db, "CreateSpatialIndex", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CreateSpatialIndex, 0, 0, 0); sqlite3_create_function_v2 (db, "CreateMbrCache", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CreateMbrCache, 0, 0, 0); sqlite3_create_function_v2 (db, "DisableSpatialIndex", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_DisableSpatialIndex, 0, 0, 0); sqlite3_create_function_v2 (db, "RebuildGeometryTriggers", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RebuildGeometryTriggers, 0, 0, 0); sqlite3_create_function_v2 (db, "UpdateLayerStatistics", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UpdateLayerStatistics, 0, 0, 0); sqlite3_create_function_v2 (db, "UpdateLayerStatistics", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UpdateLayerStatistics, 0, 0, 0); sqlite3_create_function_v2 (db, "UpdateLayerStatistics", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UpdateLayerStatistics, 0, 0, 0); sqlite3_create_function_v2 (db, "GetLayerExtent", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GetLayerExtent, 0, 0, 0); sqlite3_create_function_v2 (db, "GetLayerExtent", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GetLayerExtent, 0, 0, 0); sqlite3_create_function_v2 (db, "GetLayerExtent", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GetLayerExtent, 0, 0, 0); sqlite3_create_function_v2 (db, "InvalidateLayerStatistics", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_InvalidateLayerStatistics, 0, 0, 0); sqlite3_create_function_v2 (db, "InvalidateLayerStatistics", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_InvalidateLayerStatistics, 0, 0, 0); sqlite3_create_function_v2 (db, "InvalidateLayerStatistics", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_InvalidateLayerStatistics, 0, 0, 0); sqlite3_create_function_v2 (db, "CreateRasterCoveragesTable", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CreateRasterCoveragesTable, 0, 0, 0); sqlite3_create_function_v2 (db, "CreateVectorCoveragesTables", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CreateVectorCoveragesTables, 0, 0, 0); sqlite3_create_function_v2 (db, "CreateMetaCatalogTables", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CreateMetaCatalogTables, 0, 0, 0); sqlite3_create_function_v2 (db, "UpdateMetaCatalogStatistics", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UpdateMetaCatalogStatistics, 0, 0, 0); sqlite3_create_function_v2 (db, "UpdateMetaCatalogStatistics", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UpdateMetaCatalogStatistics, 0, 0, 0); sqlite3_create_function_v2 (db, "AsText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsText, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_AsText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsText, 0, 0, 0); sqlite3_create_function_v2 (db, "AsWkt", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsWkt, 0, 0, 0); sqlite3_create_function_v2 (db, "AsWkt", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsWkt, 0, 0, 0); sqlite3_create_function_v2 (db, "AsSvg", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsSvg1, 0, 0, 0); sqlite3_create_function_v2 (db, "AsSvg", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsSvg2, 0, 0, 0); sqlite3_create_function_v2 (db, "AsSvg", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsSvg3, 0, 0, 0); sqlite3_create_function_v2 (db, "CloneTable", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CloneTable, 0, 0, 0); sqlite3_create_function_v2 (db, "CloneTable", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CloneTable, 0, 0, 0); sqlite3_create_function_v2 (db, "CloneTable", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CloneTable, 0, 0, 0); sqlite3_create_function_v2 (db, "CloneTable", 7, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CloneTable, 0, 0, 0); sqlite3_create_function_v2 (db, "CloneTable", 8, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CloneTable, 0, 0, 0); sqlite3_create_function_v2 (db, "CloneTable", 9, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CloneTable, 0, 0, 0); sqlite3_create_function_v2 (db, "CloneTable", 10, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CloneTable, 0, 0, 0); sqlite3_create_function_v2 (db, "CloneTable", 11, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CloneTable, 0, 0, 0); sqlite3_create_function_v2 (db, "CloneTable", 12, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CloneTable, 0, 0, 0); sqlite3_create_function_v2 (db, "CloneTable", 13, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CloneTable, 0, 0, 0); sqlite3_create_function_v2 (db, "CloneTable", 14, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CloneTable, 0, 0, 0); #ifndef OMIT_PROJ /* PROJ.4 is strictly required to support KML */ sqlite3_create_function_v2 (db, "AsKml", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsKml, 0, 0, 0); sqlite3_create_function_v2 (db, "AsKml", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsKml, 0, 0, 0); sqlite3_create_function_v2 (db, "AsKml", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsKml, 0, 0, 0); sqlite3_create_function_v2 (db, "AsKml", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsKml, 0, 0, 0); #endif /* end including PROJ.4 */ sqlite3_create_function_v2 (db, "AsGml", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsGml, 0, 0, 0); sqlite3_create_function_v2 (db, "AsGml", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsGml, 0, 0, 0); sqlite3_create_function_v2 (db, "AsGml", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsGml, 0, 0, 0); sqlite3_create_function_v2 (db, "GeomFromGml", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_FromGml, 0, 0, 0); sqlite3_create_function_v2 (db, "AsGeoJSON", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsGeoJSON, 0, 0, 0); sqlite3_create_function_v2 (db, "AsGeoJSON", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsGeoJSON, 0, 0, 0); sqlite3_create_function_v2 (db, "AsGeoJSON", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsGeoJSON, 0, 0, 0); sqlite3_create_function_v2 (db, "GeomFromGeoJSON", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_FromGeoJSON, 0, 0, 0); sqlite3_create_function_v2 (db, "GeomFromKml", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_FromKml, 0, 0, 0); sqlite3_create_function_v2 (db, "AsFGF", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsFGF, 0, 0, 0); sqlite3_create_function_v2 (db, "GeomFromEWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_FromEWKB, 0, 0, 0); sqlite3_create_function_v2 (db, "AsEWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ToEWKB, 0, 0, 0); sqlite3_create_function_v2 (db, "AsEWKT", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ToEWKT, 0, 0, 0); sqlite3_create_function_v2 (db, "GeomFromEWKT", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_FromEWKT, 0, 0, 0); sqlite3_create_function_v2 (db, "AsBinary", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsBinary, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_AsBinary", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsBinary, 0, 0, 0); sqlite3_create_function_v2 (db, "GeomFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "GeomFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "GeometryFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "GeometryFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "GeomCollFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomCollFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "GeomCollFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomCollFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "GeometryCollectionFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomCollFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "GeometryCollectionFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomCollFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "PointFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PointFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "PointFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PointFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "LineFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "LineFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "LineStringFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "LineStringFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "PolyFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PolyFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "PolyFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PolyFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "PolygonFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PolyFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "PolygonFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PolyFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "MPointFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPointFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "MPointFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPointFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "MultiPointFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPointFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "MultiPointFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPointFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "MLineFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MLineFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "MLineFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MLineFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "MultiLineStringFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MLineFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "MultiLineStringFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MLineFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "MPolyFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPolyFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "MPolyFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPolyFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "MultiPolygonFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPolyFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "MultiPolygonFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPolyFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "GeomFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "GeomFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "GeometryFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "GeometryFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "GeomCollFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomCollFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "GeomCollFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomCollFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "GeometryCollectionFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomCollFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "GeometryCollectionFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomCollFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "PointFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PointFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "PointFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PointFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "LineFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "LineFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "LineStringFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_LineFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "LineStringFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "PolyFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PolyFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "PolyFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PolyFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "PolygonFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PolyFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "PolygonFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PolyFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "MPointFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPointFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "MPointFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPointFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "MultiPointFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPointFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "MultiPointFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPointFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "MLineFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MLineFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "MLineFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MLineFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "MultiLineStringFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MLineFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "MultiLineStringFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MLineFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "MPolyFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPolyFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "MPolyFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPolyFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "MultiPolygonFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPolyFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "MultiPolygonFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPolyFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_WKTToSQL", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_WktToSql, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeomFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeomFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeometryFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeometryFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeomCollFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomCollFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeomCollFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomCollFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeometryCollectionFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomCollFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeometryCollectionFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomCollFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_PointFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PointFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_PointFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PointFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_LineFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_LineFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_LineStringFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_LineStringFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_PolyFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PolyFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_PolyFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PolyFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_PolygonFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PolyFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_PolygonFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PolyFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MPointFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPointFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MPointFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPointFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MultiPointFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPointFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MultiPointFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPointFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MLineFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MLineFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MLineFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MLineFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MultiLineStringFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MLineFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MultiLineStringFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MLineFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MPolyFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPolyFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MPolyFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPolyFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MultiPolygonFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPolyFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MultiPolygonFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPolyFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_WKBToSQL", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_WkbToSql, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeomFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeomFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeometryFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeometryFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeomCollFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomCollFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeomCollFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomCollFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeometryCollectionFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomCollFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeometryCollectionFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeomCollFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_PointFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PointFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_PointFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PointFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_LineFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_LineFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_LineStringFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_LineStringFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_PolyFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PolyFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_PolyFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PolyFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_PolygonFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PolyFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_PolygonFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PolyFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MPointFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPointFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MPointFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPointFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MultiPointFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPointFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MultiPointFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPointFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MLineFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MLineFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MLineFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MLineFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MultiLineStringFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MLineFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MultiLineStringFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MLineFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MPolyFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPolyFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MPolyFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPolyFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MultiPolygonFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPolyFromWkb1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MultiPolygonFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MPolyFromWkb2, 0, 0, 0); sqlite3_create_function_v2 (db, "GeomFromFGF", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeometryFromFGF1, 0, 0, 0); sqlite3_create_function_v2 (db, "GeomFromFGF", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeometryFromFGF2, 0, 0, 0); sqlite3_create_function_v2 (db, "CompressGeometry", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CompressGeometry, 0, 0, 0); sqlite3_create_function_v2 (db, "UncompressGeometry", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_UncompressGeometry, 0, 0, 0); sqlite3_create_function_v2 (db, "SanitizeGeometry", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SanitizeGeometry, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToInteger", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CastToInteger, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToDouble", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CastToDouble, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CastToText, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CastToText, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToBlob", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CastToBlob, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToBlob", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CastToBlob, 0, 0, 0); sqlite3_create_function_v2 (db, "ForceAsNull", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ForceAsNull, 0, 0, 0); sqlite3_create_function_v2 (db, "CreateUUID", 0, SQLITE_UTF8, 0, fnct_CreateUUID, 0, 0, 0); sqlite3_create_function_v2 (db, "MD5Checksum", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MD5Checksum, 0, 0, 0); sqlite3_create_function_v2 (db, "MD5TotalChecksum", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, 0, fnct_MD5TotalChecksum_step, fnct_MD5TotalChecksum_final, 0); sqlite3_create_function_v2 (db, "EncodeURL", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_EncodeURL, 0, 0, 0); sqlite3_create_function_v2 (db, "DecodeURL", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_DecodeURL, 0, 0, 0); sqlite3_create_function_v2 (db, "DirNameFromPath", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_DirNameFromPath, 0, 0, 0); sqlite3_create_function_v2 (db, "FullFileNameFromPath", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_FullFileNameFromPath, 0, 0, 0); sqlite3_create_function_v2 (db, "FileNameFromPath", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_FileNameFromPath, 0, 0, 0); sqlite3_create_function_v2 (db, "FileExtFromPath", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_FileExtFromPath, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToPoint", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CastToPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToLinestring", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CastToLinestring, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToPolygon", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CastToPolygon, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToMultiPoint", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CastToMultiPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToMultiLinestring", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CastToMultiLinestring, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToMultiPolygon", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CastToMultiPolygon, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToGeometryCollection", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CastToGeometryCollection, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToMulti", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CastToMulti, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Multi", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CastToMulti, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToSingle", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CastToSingle, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToXY", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CastToXY, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToXYZ", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CastToXYZ, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToXYM", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CastToXYM, 0, 0, 0); sqlite3_create_function_v2 (db, "CastToXYZM", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CastToXYZM, 0, 0, 0); sqlite3_create_function_v2 (db, "ExtractMultiPoint", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ExtractMultiPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "ExtractMultiLinestring", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ExtractMultiLinestring, 0, 0, 0); sqlite3_create_function_v2 (db, "ExtractMultiPolygon", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ExtractMultiPolygon, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Reverse", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Reverse, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_ForceLHR", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ForceLHR, 0, 0, 0); sqlite3_create_function_v2 (db, "Dimension", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Dimension, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Dimension", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Dimension, 0, 0, 0); sqlite3_create_function_v2 (db, "CoordDimension", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CoordDimension, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_NDims", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_NDims, 0, 0, 0); sqlite3_create_function_v2 (db, "GeometryType", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeometryType, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeometryType", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeometryType, 0, 0, 0); sqlite3_create_function_v2 (db, "GeometryAliasType", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeometryAliasType, 0, 0, 0); sqlite3_create_function_v2 (db, "SridFromAuthCRS", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_SridFromAuthCRS, 0, 0, 0); sqlite3_create_function_v2 (db, "SRID", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SRID, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_SRID", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SRID, 0, 0, 0); sqlite3_create_function_v2 (db, "SetSRID", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SetSRID, 0, 0, 0); sqlite3_create_function_v2 (db, "IsEmpty", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_IsEmpty, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_IsEmpty", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_IsEmpty, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Is3D", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Is3D, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_IsMeasured", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_IsMeasured, 0, 0, 0); sqlite3_create_function_v2 (db, "Envelope", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Envelope, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Envelope", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Envelope, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Expand", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Expand, 0, 0, 0); sqlite3_create_function_v2 (db, "X", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_X, 0, 0, 0); sqlite3_create_function_v2 (db, "Y", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Y, 0, 0, 0); sqlite3_create_function_v2 (db, "Z", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Z, 0, 0, 0); sqlite3_create_function_v2 (db, "M", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_M, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_X", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_X, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Y", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Y, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Z", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Z, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_M", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_M, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MinX", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MbrMinX, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MinY", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MbrMinY, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MinZ", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MinZ, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MinM", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MinM, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MaxX", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MbrMaxX, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MaxY", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MbrMaxY, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MaxZ", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MaxZ, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MaxM", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MaxM, 0, 0, 0); sqlite3_create_function_v2 (db, "NumPoints", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_NumPoints, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_NumPoints", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_NumPoints, 0, 0, 0); sqlite3_create_function_v2 (db, "StartPoint", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_StartPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "EndPoint", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_EndPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_StartPoint", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_StartPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_EndPoint", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_EndPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "PointN", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PointN, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_PointN", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PointN, 0, 0, 0); sqlite3_create_function_v2 (db, "ExteriorRing", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ExteriorRing, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_ExteriorRing", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ExteriorRing, 0, 0, 0); sqlite3_create_function_v2 (db, "NumInteriorRing", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_NumInteriorRings, 0, 0, 0); sqlite3_create_function_v2 (db, "NumInteriorRings", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_NumInteriorRings, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_NumInteriorRing", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_NumInteriorRings, 0, 0, 0); sqlite3_create_function_v2 (db, "InteriorRingN", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_InteriorRingN, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_InteriorRingN", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_InteriorRingN, 0, 0, 0); sqlite3_create_function_v2 (db, "NumGeometries", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_NumGeometries, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_NumGeometries", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_NumGeometries, 0, 0, 0); sqlite3_create_function_v2 (db, "GeometryN", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeometryN, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeometryN", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeometryN, 0, 0, 0); sqlite3_create_function_v2 (db, "MBRContains", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MbrContains, 0, 0, 0); sqlite3_create_function_v2 (db, "MbrDisjoint", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MbrDisjoint, 0, 0, 0); sqlite3_create_function_v2 (db, "MBREqual", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MbrEqual, 0, 0, 0); sqlite3_create_function_v2 (db, "MbrIntersects", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MbrIntersects, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_EnvIntersects", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MbrIntersects, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_EnvIntersects", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_EnvIntersects, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_EnvelopesIntersects", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MbrIntersects, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_EnvelopesIntersects", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_EnvIntersects, 0, 0, 0); sqlite3_create_function_v2 (db, "MBROverlaps", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MbrOverlaps, 0, 0, 0); sqlite3_create_function_v2 (db, "MbrTouches", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MbrTouches, 0, 0, 0); sqlite3_create_function_v2 (db, "MbrWithin", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MbrWithin, 0, 0, 0); sqlite3_create_function_v2 (db, "ShiftCoords", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ShiftCoords, 0, 0, 0); sqlite3_create_function_v2 (db, "ShiftCoordinates", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ShiftCoords, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Translate", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Translate, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Shift_Longitude", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ShiftLongitude, 0, 0, 0); sqlite3_create_function_v2 (db, "NormalizeLonLat", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_NormalizeLonLat, 0, 0, 0); sqlite3_create_function_v2 (db, "ScaleCoords", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ScaleCoords, 0, 0, 0); sqlite3_create_function_v2 (db, "ScaleCoordinates", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ScaleCoords, 0, 0, 0); sqlite3_create_function_v2 (db, "ScaleCoords", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ScaleCoords, 0, 0, 0); sqlite3_create_function_v2 (db, "ScaleCoordinates", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ScaleCoords, 0, 0, 0); sqlite3_create_function_v2 (db, "RotateCoords", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_RotateCoords, 0, 0, 0); sqlite3_create_function_v2 (db, "RotateCoordinates", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_RotateCoords, 0, 0, 0); sqlite3_create_function_v2 (db, "ReflectCoords", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ReflectCoords, 0, 0, 0); sqlite3_create_function_v2 (db, "ReflectCoordinates", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ReflectCoords, 0, 0, 0); sqlite3_create_function_v2 (db, "SwapCoords", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SwapCoords, 0, 0, 0); sqlite3_create_function_v2 (db, "SwapCoordinates", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SwapCoords, 0, 0, 0); sqlite3_create_function_v2 (db, "BuildMbr", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_BuildMbr1, 0, 0, 0); sqlite3_create_function_v2 (db, "BuildMbr", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_BuildMbr2, 0, 0, 0); sqlite3_create_function_v2 (db, "BuildCircleMbr", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_BuildCircleMbr1, 0, 0, 0); sqlite3_create_function_v2 (db, "BuildCircleMbr", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_BuildCircleMbr2, 0, 0, 0); sqlite3_create_function_v2 (db, "Extent", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, 0, fnct_Extent_step, fnct_Extent_final, 0); sqlite3_create_function_v2 (db, "MbrMinX", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MbrMinX, 0, 0, 0); sqlite3_create_function_v2 (db, "MbrMaxX", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MbrMaxX, 0, 0, 0); sqlite3_create_function_v2 (db, "MbrMinY", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MbrMinY, 0, 0, 0); sqlite3_create_function_v2 (db, "MbrMaxY", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MbrMaxY, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Point", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MakePoint1, 0, 0, 0); sqlite3_create_function_v2 (db, "MakePoint", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MakePoint1, 0, 0, 0); sqlite3_create_function_v2 (db, "MakePoint", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MakePoint2, 0, 0, 0); sqlite3_create_function_v2 (db, "MakePointZ", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MakePointZ1, 0, 0, 0); sqlite3_create_function_v2 (db, "MakePointZ", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MakePointZ2, 0, 0, 0); sqlite3_create_function_v2 (db, "MakePointM", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MakePointM1, 0, 0, 0); sqlite3_create_function_v2 (db, "MakePointM", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MakePointM2, 0, 0, 0); sqlite3_create_function_v2 (db, "MakePointZM", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MakePointZM1, 0, 0, 0); sqlite3_create_function_v2 (db, "MakePointZM", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MakePointZM2, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeLine", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, 0, fnct_MakeLine_step, fnct_MakeLine_final, 0); sqlite3_create_function_v2 (db, "MakeLine", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeLine, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeCircle", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeCircle, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeCircle", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeCircle, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeCircle", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeCircle, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeEllipse", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeEllipse, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeEllipse", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeEllipse, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeEllipse", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeEllipse, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeArc", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeArc, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeArc", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeArc, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeArc", 7, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeArc, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeEllipticArc", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeEllipticArc, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeEllipticArc", 7, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeEllipticArc, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeEllipticArc", 8, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeEllipticArc, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeCircularSector", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeCircularSector, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeCircularSector", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeCircularSector, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeCircularSector", 7, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeCircularSector, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeCircularStripe", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeCircularStripe, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeCircularStripe", 7, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeCircularStripe, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeCircularStripe", 8, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeCircularStripe, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeEllipticSector", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeEllipticSector, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeEllipticSector", 7, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeEllipticSector, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeEllipticSector", 8, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeEllipticSector, 0, 0, 0); sqlite3_create_function_v2 (db, "Collect", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, 0, fnct_Collect_step, fnct_Collect_final, 0); sqlite3_create_function_v2 (db, "Collect", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Collect, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Collect", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, 0, fnct_Collect_step, fnct_Collect_final, 0); sqlite3_create_function_v2 (db, "ST_Collect", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Collect, 0, 0, 0); sqlite3_create_function_v2 (db, "BuildMbrFilter", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_BuildMbrFilter, 0, 0, 0); sqlite3_create_function_v2 (db, "FilterMbrWithin", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_FilterMbrWithin, 0, 0, 0); sqlite3_create_function_v2 (db, "FilterMbrContains", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_FilterMbrContains, 0, 0, 0); sqlite3_create_function_v2 (db, "FilterMbrIntersects", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_FilterMbrIntersects, 0, 0, 0); sqlite3_create_function_v2 (db, "LinesFromRings", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LinesFromRings, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_LinesFromRings", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LinesFromRings, 0, 0, 0); sqlite3_create_function_v2 (db, "LinesFromRings", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LinesFromRings, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_LinesFromRings", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LinesFromRings, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_NPoints", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_NPoints, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_nrings", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_NRings, 0, 0, 0); sqlite3_create_function_v2 (db, "ToGARS", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ToGARS, 0, 0, 0); sqlite3_create_function_v2 (db, "GARSMbr", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_GARSMbr, 0, 0, 0); sqlite3_create_function_v2 (db, "SnapToGrid", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SnapToGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_SnapToGrid", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SnapToGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "SnapToGrid", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SnapToGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_SnapToGrid", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SnapToGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "SnapToGrid", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SnapToGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_SnapToGrid", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SnapToGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "SnapToGrid", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SnapToGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_SnapToGrid", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SnapToGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "AddPoint", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AddPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_AddPoint", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AddPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "AddPoint", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AddPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_AddPoint", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AddPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "RemovePoint", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_RemovePoint, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_RemovePoint", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_RemovePoint, 0, 0, 0); sqlite3_create_function_v2 (db, "SetPoint", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SetPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_SetPoint", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SetPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "SetStartPoint", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SetStartPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_SetStartPoint", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SetStartPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "SetEndPoint", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SetEndPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_SetEndPoint", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SetEndPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "MakePolygon", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakePolygon, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MakePolygon", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakePolygon, 0, 0, 0); sqlite3_create_function_v2 (db, "MakePolygon", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakePolygon, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MakePolygon", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakePolygon, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_Create", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_Create, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_Create", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_Create, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_Create", 12, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_Create, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_CreateTranslate", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_CreateTranslate, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_CreateTranslate", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_CreateTranslate, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_CreateScale", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_CreateScale, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_CreateScale", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_CreateScale, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_CreateRotate", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_CreateRotate, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_CreateXRoll", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_CreateXRoll, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_CreateYRoll", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_CreateYRoll, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_CreateZRoll", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_CreateRotate, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_Multiply", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_Multiply, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_Translate", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_Translate, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_Translate", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_Translate, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_Scale", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_Scale, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_Scale", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_Scale, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_Rotate", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_Rotate, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_XRoll", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_XRoll, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_YRoll", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_YRoll, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_ZRoll", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_Rotate, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_Determinant", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_Determinant, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_IsInvertible", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_IsInvertible, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_Invert", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_Invert, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_IsValid", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_IsValid, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_AsText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AffineTransformMatrix_AsText, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_Transform", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AffineTransformMatrix_GeometryTransform, 0, 0, 0); sqlite3_create_function_v2 (db, "ATM_Transform", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AffineTransformMatrix_GeometryTransform, 0, 0, 0); #ifdef ENABLE_GCP /* only if ControlPoints enabled */ sqlite3_create_function_v2 (db, "GCP_Compute", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, 0, fnct_GroundControlPoints_Compute_step, fnct_GroundControlPoints_Compute_final, 0); sqlite3_create_function_v2 (db, "GCP_Compute", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, 0, fnct_GroundControlPoints_Compute_step, fnct_GroundControlPoints_Compute_final, 0); sqlite3_create_function_v2 (db, "GCP_Transform", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GroundControlPoints_GeometryTransform, 0, 0, 0); sqlite3_create_function_v2 (db, "GCP_Transform", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GroundControlPoints_GeometryTransform, 0, 0, 0); sqlite3_create_function_v2 (db, "GCP_IsValid", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_GroundControlPoints_IsValid, 0, 0, 0); sqlite3_create_function_v2 (db, "GCP_AsText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_GroundControlPoints_AsText, 0, 0, 0); sqlite3_create_function_v2 (db, "GCP2ATM", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_GroundControlPoints_ToATM, 0, 0, 0); #endif /* end including GCP */ #ifndef OMIT_GEOS /* including GEOS */ sqlite3_create_function_v2 (db, "BuildArea", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_BuildArea, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_BuildArea", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_BuildArea, 0, 0, 0); sqlite3_create_function_v2 (db, "Polygonize", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, 0, fnct_Polygonize_step, fnct_Polygonize_final, 0); sqlite3_create_function_v2 (db, "ST_Polygonize", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, 0, fnct_Polygonize_step, fnct_Polygonize_final, 0); #endif /* end including GEOS */ sqlite3_create_function_v2 (db, "DissolveSegments", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_DissolveSegments, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_DissolveSegments", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_DissolveSegments, 0, 0, 0); sqlite3_create_function_v2 (db, "DissolvePoints", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_DissolvePoints, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_DissolvePoints", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_DissolvePoints, 0, 0, 0); sqlite3_create_function_v2 (db, "CollectionExtract", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CollectionExtract, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_CollectionExtract", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CollectionExtract, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Locate_Along_Measure", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LocateBetweenMeasures, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_LocateAlong", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LocateBetweenMeasures, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Locate_Between_Measures", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LocateBetweenMeasures, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_LocateBetween", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LocateBetweenMeasures, 0, 0, 0); #ifndef OMIT_GEOCALLBACKS /* supporting RTree geometry callbacks */ sqlite3_rtree_geometry_callback (db, "RTreeWithin", fnct_RTreeIntersects, 0); sqlite3_rtree_geometry_callback (db, "RTreeContains", fnct_RTreeIntersects, 0); sqlite3_rtree_geometry_callback (db, "RTreeIntersects", fnct_RTreeIntersects, 0); sqlite3_rtree_geometry_callback (db, "RTreeDistWithin", fnct_RTreeDistWithin, 0); #endif /* end RTree geometry callbacks */ /* some BLOB/JPEG/EXIF functions */ sqlite3_create_function_v2 (db, "IsGeometryBlob", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsGeometryBlob, 0, 0, 0); sqlite3_create_function_v2 (db, "IsZipBlob", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsZipBlob, 0, 0, 0); sqlite3_create_function_v2 (db, "IsPdfBlob", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsPdfBlob, 0, 0, 0); sqlite3_create_function_v2 (db, "IsTiffBlob", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsTiffBlob, 0, 0, 0); sqlite3_create_function_v2 (db, "IsGifBlob", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsGifBlob, 0, 0, 0); sqlite3_create_function_v2 (db, "IsPngBlob", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsPngBlob, 0, 0, 0); sqlite3_create_function_v2 (db, "IsJpegBlob", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsJpegBlob, 0, 0, 0); sqlite3_create_function_v2 (db, "IsExifBlob", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsExifBlob, 0, 0, 0); sqlite3_create_function_v2 (db, "IsExifGpsBlob", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsExifGpsBlob, 0, 0, 0); sqlite3_create_function_v2 (db, "IsWebpBlob", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsWebPBlob, 0, 0, 0); sqlite3_create_function_v2 (db, "IsJP2Blob", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsJP2Blob, 0, 0, 0); sqlite3_create_function_v2 (db, "GeomFromExifGpsBlob", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_GeomFromExifGpsBlob, 0, 0, 0); sqlite3_create_function_v2 (db, "GetMimeType", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_GetMimeType, 0, 0, 0); sqlite3_create_function_v2 (db, "CountUnsafeTriggers", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CountUnsafeTriggers, 0, 0, 0); sqlite3_create_function_v2 (db, "CheckDuplicateRows", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CheckDuplicateRows, 0, 0, 0); sqlite3_create_function_v2 (db, "RemoveDuplicateRows", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RemoveDuplicateRows, 0, 0, 0); sqlite3_create_function_v2 (db, "RemoveDuplicateRows", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RemoveDuplicateRows, 0, 0, 0); sqlite3_create_function_v2 (db, "ElementaryGeometries", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ElementaryGeometries, 0, 0, 0); sqlite3_create_function_v2 (db, "ElementaryGeometries", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ElementaryGeometries, 0, 0, 0); sqlite3_create_function_v2 (db, "DropGeoTable", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_DropGeoTable, 0, 0, 0); sqlite3_create_function_v2 (db, "DropGeoTable", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_DropGeoTable, 0, 0, 0); sqlite3_create_function_v2 (db, "DropGeoTable", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_DropGeoTable, 0, 0, 0); /* // enabling BlobFromFile, BlobToFile and XB_LoadXML, XB_StoreXML, // ExportDXF and other import/export functions // // these functions could potentially introduce serious security issues, // most notably when invoked from within some Trigger // - BlobToFile: some arbitrary code, possibly harmfull (e.g. virus or // trojan) could be installed on the local file-system, the user being // completely unaware of this // - BlobFromFile: some file could be maliciously "stolen" from the local // file system and then inseted into the DB // - the same is for XB_LoadXML and XB_StoreXML // - ExportDXF could potentially flood the local file-system by // outputting a huge size of data // // so by default such functions are disabled. // if for any good/legitimate reason the user really wants to enable them // the following environment variable has to be explicitly declared: // // SPATIALITE_SECURITY=relaxed // */ security_level = getenv ("SPATIALITE_SECURITY"); if (security_level == NULL) ; else if (strcasecmp (security_level, "relaxed") == 0) { sqlite3_create_function_v2 (db, "BlobFromFile", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_BlobFromFile, 0, 0, 0); sqlite3_create_function_v2 (db, "BlobToFile", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_BlobToFile, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportDXF", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ImportDXF, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportDXF", 8, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ImportDXF, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportDXFfromDir", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ImportDXFfromDir, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportDXFfromDir", 8, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ImportDXFfromDir, 0, 0, 0); sqlite3_create_function_v2 (db, "ExportDXF", 9, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ExportDXF, 0, 0, 0); sqlite3_create_function_v2 (db, "ExportDXF", 10, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ExportDXF, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportDBF", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportDBF, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportDBF", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportDBF, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportDBF", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportDBF, 0, 0, 0); sqlite3_create_function_v2 (db, "ExportDBF", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ExportDBF, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportSHP", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportSHP, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportSHP", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportSHP, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportSHP", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportSHP, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportSHP", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportSHP, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportSHP", 7, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportSHP, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportSHP", 8, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportSHP, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportSHP", 9, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportSHP, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportSHP", 10, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportSHP, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportSHP", 11, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportSHP, 0, 0, 0); sqlite3_create_function_v2 (db, "ExportSHP", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ExportSHP, 0, 0, 0); sqlite3_create_function_v2 (db, "ExportSHP", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ExportSHP, 0, 0, 0); sqlite3_create_function_v2 (db, "ExportKML", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ExportKML, 0, 0, 0); sqlite3_create_function_v2 (db, "ExportKML", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ExportKML, 0, 0, 0); sqlite3_create_function_v2 (db, "ExportKML", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ExportKML, 0, 0, 0); sqlite3_create_function_v2 (db, "ExportKML", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ExportKML, 0, 0, 0); sqlite3_create_function_v2 (db, "ExportGeoJSON", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ExportGeoJSON, 0, 0, 0); sqlite3_create_function_v2 (db, "ExportGeoJSON", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ExportGeoJSON, 0, 0, 0); sqlite3_create_function_v2 (db, "ExportGeoJSON", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ExportGeoJSON, 0, 0, 0); sqlite3_create_function_v2 (db, "eval", 1, SQLITE_UTF8, 0, fnct_EvalFunc, 0, 0, 0); sqlite3_create_function_v2 (db, "eval", 2, SQLITE_UTF8, 0, fnct_EvalFunc, 0, 0, 0); #ifdef ENABLE_LIBXML2 /* including LIBXML2 */ sqlite3_create_function_v2 (db, "XB_LoadXML", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_XB_LoadXML, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_StoreXML", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_StoreXML, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_StoreXML", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_StoreXML, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportWFS", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportWFS, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportWFS", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportWFS, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportWFS", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportWFS, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportWFS", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportWFS, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportWFS", 7, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportWFS, 0, 0, 0); #endif /* end including LIBXML2 */ #ifndef OMIT_FREEXL /* FREEXL is enabled */ sqlite3_create_function_v2 (db, "ImportXLS", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportXLS, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportXLS", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportXLS, 0, 0, 0); sqlite3_create_function_v2 (db, "ImportXLS", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ImportXLS, 0, 0, 0); #endif /* end FREEXL support */ } /* global settings */ #ifdef ENABLE_GEOPACKAGE /* GEOPACKAGE enabled: supporting GPKG geometries */ sqlite3_create_function_v2 (db, "EnableGpkgMode", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_enableGpkgMode, 0, 0, 0); sqlite3_create_function_v2 (db, "DisableGpkgMode", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_disableGpkgMode, 0, 0, 0); sqlite3_create_function_v2 (db, "GetGpkgMode", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_getGpkgMode, 0, 0, 0); sqlite3_create_function_v2 (db, "EnableGpkgAmphibiousMode", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_enableGpkgAmphibiousMode, 0, 0, 0); sqlite3_create_function_v2 (db, "DisableGpkgAmphibiousMode", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_disableGpkgAmphibiousMode, 0, 0, 0); sqlite3_create_function_v2 (db, "GetGpkgAmphibiousMode", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_getGpkgAmphibiousMode, 0, 0, 0); #endif /* end GPKG conditional */ sqlite3_create_function_v2 (db, "SetDecimalPrecision", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_setDecimalPrecision, 0, 0, 0); sqlite3_create_function_v2 (db, "GetDecimalPrecision", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_getDecimalPrecision, 0, 0, 0); /* some Geodesic functions */ sqlite3_create_function_v2 (db, "GreatCircleLength", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GreatCircleLength, 0, 0, 0); sqlite3_create_function_v2 (db, "GeodesicLength", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeodesicLength, 0, 0, 0); /* some Length Unit conversion functions */ sqlite3_create_function_v2 (db, "CvtToKm", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToKm, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToDm", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToDm, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToCm", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToCm, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToMm", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToMm, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToKmi", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToKmi, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToIn", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToIn, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToFt", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToFt, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToYd", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToYd, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToMi", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToMi, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToFath", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToFath, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToCh", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToCh, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToLink", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToLink, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToUsIn", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToUsIn, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToUsFt", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToUsFt, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToUsYd", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToUsYd, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToUsCh", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToUsCh, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToUsMi", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToUsMi, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToIndFt", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToIndFt, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToIndYd", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToIndYd, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtToIndCh", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtToIndCh, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromKm", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromKm, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromDm", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromDm, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromCm", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromCm, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromMm", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromMm, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromKmi", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromKmi, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromIn", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromIn, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromFt", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromFt, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromYd", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromYd, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromMi", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromMi, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromFath", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromFath, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromCh", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromCh, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromLink", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromLink, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromUsIn", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromUsIn, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromUsFt", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromUsFt, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromUsYd", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromUsYd, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromUsCh", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromUsCh, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromUsMi", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromUsMi, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromIndFt", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromIndFt, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromIndYd", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromIndYd, 0, 0, 0); sqlite3_create_function_v2 (db, "CvtFromIndCh", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_cvtFromIndCh, 0, 0, 0); /* DMS (Degrees/Minutes/Seconds) to DD (decimal degrees) */ sqlite3_create_function_v2 (db, "LongitudeFromDMS", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_longFromDMS, 0, 0, 0); sqlite3_create_function_v2 (db, "LatitudeFromDMS", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_latFromDMS, 0, 0, 0); sqlite3_create_function_v2 (db, "LongLatToDMS", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_toDMS, 0, 0, 0); #ifndef OMIT_MATHSQL /* supporting SQL math functions */ /* some extra math functions */ sqlite3_create_function_v2 (db, "acos", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_acos, 0, 0, 0); sqlite3_create_function_v2 (db, "asin", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_asin, 0, 0, 0); sqlite3_create_function_v2 (db, "atan", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_atan, 0, 0, 0); sqlite3_create_function_v2 (db, "atan2", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_atan2, 0, 0, 0); sqlite3_create_function_v2 (db, "ceil", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_ceil, 0, 0, 0); sqlite3_create_function_v2 (db, "ceiling", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_ceil, 0, 0, 0); sqlite3_create_function_v2 (db, "cos", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_cos, 0, 0, 0); sqlite3_create_function_v2 (db, "cot", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_cot, 0, 0, 0); sqlite3_create_function_v2 (db, "degrees", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_degrees, 0, 0, 0); sqlite3_create_function_v2 (db, "exp", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_exp, 0, 0, 0); sqlite3_create_function_v2 (db, "floor", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_floor, 0, 0, 0); sqlite3_create_function_v2 (db, "ln", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_logn, 0, 0, 0); sqlite3_create_function_v2 (db, "log", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_logn, 0, 0, 0); sqlite3_create_function_v2 (db, "log", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_logn2, 0, 0, 0); sqlite3_create_function_v2 (db, "log2", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_log_2, 0, 0, 0); sqlite3_create_function_v2 (db, "log10", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_log_10, 0, 0, 0); sqlite3_create_function_v2 (db, "pi", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_pi, 0, 0, 0); sqlite3_create_function_v2 (db, "pow", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_pow, 0, 0, 0); sqlite3_create_function_v2 (db, "power", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_pow, 0, 0, 0); sqlite3_create_function_v2 (db, "radians", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_radians, 0, 0, 0); sqlite3_create_function_v2 (db, "sign", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_sign, 0, 0, 0); sqlite3_create_function_v2 (db, "sin", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_sin, 0, 0, 0); sqlite3_create_function_v2 (db, "stddev_pop", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, 0, fnct_math_stddev_step, fnct_math_stddev_pop_final, 0); sqlite3_create_function_v2 (db, "stddev_samp", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, 0, fnct_math_stddev_step, fnct_math_stddev_samp_final, 0); sqlite3_create_function_v2 (db, "sqrt", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_sqrt, 0, 0, 0); sqlite3_create_function_v2 (db, "tan", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_math_tan, 0, 0, 0); sqlite3_create_function_v2 (db, "var_pop", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, 0, fnct_math_stddev_step, fnct_math_var_pop_final, 0); sqlite3_create_function_v2 (db, "var_samp", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, 0, fnct_math_stddev_step, fnct_math_var_samp_final, 0); #endif /* end supporting SQL math functions */ #ifndef OMIT_PROJ /* including PROJ.4 */ sqlite3_create_function_v2 (db, "Transform", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Transform, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Transform", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Transform, 0, 0, 0); #endif /* end including PROJ.4 */ #ifndef OMIT_GEOS /* including GEOS */ sqlite3_create_function_v2 (db, "GEOS_GetLastErrorMsg", 0, SQLITE_UTF8, cache, fnct_GEOS_GetLastErrorMsg, 0, 0, 0); sqlite3_create_function_v2 (db, "GEOS_GetLastWarningMsg", 0, SQLITE_UTF8, cache, fnct_GEOS_GetLastWarningMsg, 0, 0, 0); sqlite3_create_function_v2 (db, "GEOS_GetLastAuxErrorMsg", 0, SQLITE_UTF8, cache, fnct_GEOS_GetLastAuxErrorMsg, 0, 0, 0); sqlite3_create_function_v2 (db, "GEOS_GetCriticalPointFromMsg", 0, SQLITE_UTF8, cache, fnct_GEOS_GetCriticalPointFromMsg, 0, 0, 0); sqlite3_create_function_v2 (db, "GEOS_GetCriticalPointFromMsg", 1, SQLITE_UTF8, cache, fnct_GEOS_GetCriticalPointFromMsg, 0, 0, 0); sqlite3_create_function_v2 (db, "IsValidReason", 1, SQLITE_UTF8, cache, fnct_IsValidReason, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_IsValidReason", 1, SQLITE_UTF8, cache, fnct_IsValidReason, 0, 0, 0); sqlite3_create_function_v2 (db, "IsValidDetail", 1, SQLITE_UTF8, cache, fnct_IsValidDetail, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_IsValidDetail", 1, SQLITE_UTF8, cache, fnct_IsValidDetail, 0, 0, 0); sqlite3_create_function_v2 (db, "Boundary", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Boundary, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Boundary", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Boundary, 0, 0, 0); sqlite3_create_function_v2 (db, "IsClosed", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_IsClosed, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_IsClosed", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_IsClosed, 0, 0, 0); sqlite3_create_function_v2 (db, "IsSimple", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_IsSimple, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_IsSimple", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_IsSimple, 0, 0, 0); sqlite3_create_function_v2 (db, "IsRing", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_IsRing, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_IsRing", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_IsRing, 0, 0, 0); sqlite3_create_function_v2 (db, "IsValid", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_IsValid, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_IsValid", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_IsValid, 0, 0, 0); sqlite3_create_function_v2 (db, "GLength", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Length, 0, 0, 0); sqlite3_create_function_v2 (db, "GLength", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Length, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Length", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Length, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Length", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Length, 0, 0, 0); sqlite3_create_function_v2 (db, "Perimeter", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Perimeter, 0, 0, 0); sqlite3_create_function_v2 (db, "Perimeter", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Perimeter, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Perimeter", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Perimeter, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Perimeter", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Perimeter, 0, 0, 0); sqlite3_create_function_v2 (db, "Area", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Area, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Area", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Area, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Centroid", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Centroid, 0, 0, 0); sqlite3_create_function_v2 (db, "Centroid", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Centroid, 0, 0, 0); sqlite3_create_function_v2 (db, "PointOnSurface", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PointOnSurface, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_PointOnSurface", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PointOnSurface, 0, 0, 0); sqlite3_create_function_v2 (db, "Simplify", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Simplify, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Simplify", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Simplify, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Generalize", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Simplify, 0, 0, 0); sqlite3_create_function_v2 (db, "SimplifyPreserveTopology", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SimplifyPreserveTopology, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_SimplifyPreserveTopology", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SimplifyPreserveTopology, 0, 0, 0); sqlite3_create_function_v2 (db, "ConvexHull", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ConvexHull, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_ConvexHull", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ConvexHull, 0, 0, 0); sqlite3_create_function_v2 (db, "Buffer", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Buffer, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Buffer", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Buffer, 0, 0, 0); sqlite3_create_function_v2 (db, "Buffer", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Buffer, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Buffer", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Buffer, 0, 0, 0); sqlite3_create_function_v2 (db, "Intersection", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Intersection, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Intersection", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Intersection, 0, 0, 0); sqlite3_create_function_v2 (db, "GUnion", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, 0, fnct_Union_step, fnct_Union_final, 0); sqlite3_create_function_v2 (db, "GUnion", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Union, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Union", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, 0, fnct_Union_step, fnct_Union_final, 0); sqlite3_create_function_v2 (db, "ST_Union", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Union, 0, 0, 0); sqlite3_create_function_v2 (db, "Difference", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Difference, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Difference", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Difference, 0, 0, 0); sqlite3_create_function_v2 (db, "SymDifference", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SymDifference, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_SymDifference", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SymDifference, 0, 0, 0); sqlite3_create_function_v2 (db, "Equals", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Equals, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Equals", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Equals, 0, 0, 0); sqlite3_create_function_v2 (db, "Intersects", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Intersects, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Intersects", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Intersects, 0, 0, 0); sqlite3_create_function_v2 (db, "Disjoint", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Disjoint, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Disjoint", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Disjoint, 0, 0, 0); sqlite3_create_function_v2 (db, "Overlaps", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Overlaps, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Overlaps", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Overlaps, 0, 0, 0); sqlite3_create_function_v2 (db, "Crosses", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Crosses, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Crosses", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Crosses, 0, 0, 0); sqlite3_create_function_v2 (db, "Touches", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Touches, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Touches", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Touches, 0, 0, 0); sqlite3_create_function_v2 (db, "Within", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Within, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Within", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Within, 0, 0, 0); sqlite3_create_function_v2 (db, "Contains", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Contains, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Contains", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Contains, 0, 0, 0); sqlite3_create_function_v2 (db, "Relate", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Relate, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Relate", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Relate, 0, 0, 0); sqlite3_create_function_v2 (db, "Distance", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Distance, 0, 0, 0); sqlite3_create_function_v2 (db, "Distance", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Distance, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Distance", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Distance, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Distance", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Distance, 0, 0, 0); sqlite3_create_function_v2 (db, "PtDistWithin", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PtDistWithin, 0, 0, 0); sqlite3_create_function_v2 (db, "PtDistWithin", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_PtDistWithin, 0, 0, 0); sqlite3_create_function_v2 (db, "BdPolyFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_BdPolyFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "BdPolyFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_BdPolyFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "BdMPolyFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_BdMPolyFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "BdMPolyFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_BdMPolyFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "BdPolyFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_BdPolyFromWKB1, 0, 0, 0); sqlite3_create_function_v2 (db, "BdPolyFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_BdPolyFromWKB2, 0, 0, 0); sqlite3_create_function_v2 (db, "BdMPolyFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_BdMPolyFromWKB1, 0, 0, 0); sqlite3_create_function_v2 (db, "BdMPolyFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_BdMPolyFromWKB2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_BdPolyFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_BdPolyFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_BdPolyFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_BdPolyFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_BdMPolyFromText", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_BdMPolyFromText1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_BdMPolyFromText", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_BdMPolyFromText2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_BdPolyFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_BdPolyFromWKB1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_BdPolyFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_BdPolyFromWKB2, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_BdMPolyFromWKB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_BdMPolyFromWKB1, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_BdMPolyFromWKB", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_BdMPolyFromWKB2, 0, 0, 0); sqlite3_create_function_v2 (db, "CreateTopologyTables", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CreateTopologyTables, 0, 0, 0); sqlite3_create_function_v2 (db, "CreateTopologyTables", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CreateTopologyTables, 0, 0, 0); sqlite3_create_function_v2 (db, "OffsetCurve", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_OffsetCurve, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_OffsetCurve", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_OffsetCurve, 0, 0, 0); sqlite3_create_function_v2 (db, "SingleSidedBuffer", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SingleSidedBuffer, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_SingleSidedBuffer", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SingleSidedBuffer, 0, 0, 0); sqlite3_create_function_v2 (db, "HausdorffDistance", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_HausdorffDistance, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_HausdorffDistance", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_HausdorffDistance, 0, 0, 0); sqlite3_create_function_v2 (db, "SharedPaths", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SharedPaths, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_SharedPaths", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SharedPaths, 0, 0, 0); sqlite3_create_function_v2 (db, "Covers", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Covers, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Covers", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Covers, 0, 0, 0); sqlite3_create_function_v2 (db, "CoveredBy", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CoveredBy, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_CoveredBy", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CoveredBy, 0, 0, 0); sqlite3_create_function_v2 (db, "Line_Interpolate_Point", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineInterpolatePoint, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Line_Interpolate_Point", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineInterpolatePoint, 0, 0, 0); sqlite3_create_function_v2 (db, "Line_Interpolate_Equidistant_Points", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineInterpolateEquidistantPoints, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Line_Interpolate_Equidistant_Points", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineInterpolateEquidistantPoints, 0, 0, 0); sqlite3_create_function_v2 (db, "Line_Locate_Point", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineLocatePoint, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Line_Locate_Point", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineLocatePoint, 0, 0, 0); sqlite3_create_function_v2 (db, "Line_Substring", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineSubstring, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Line_Substring", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineSubstring, 0, 0, 0); sqlite3_create_function_v2 (db, "ClosestPoint", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ClosestPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_ClosestPoint", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ClosestPoint, 0, 0, 0); sqlite3_create_function_v2 (db, "ShortestLine", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ShortestLine, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_ShortestLine", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ShortestLine, 0, 0, 0); sqlite3_create_function_v2 (db, "Snap", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Snap, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Snap", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Snap, 0, 0, 0); sqlite3_create_function_v2 (db, "LineMerge", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineMerge, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_LineMerge", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LineMerge, 0, 0, 0); sqlite3_create_function_v2 (db, "UnaryUnion", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_UnaryUnion, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_UnaryUnion", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_UnaryUnion, 0, 0, 0); sqlite3_create_function_v2 (db, "SquareGrid", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SquareGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "SquareGrid", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SquareGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "SquareGrid", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SquareGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_SquareGrid", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SquareGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_SquareGrid", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SquareGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_SquareGrid", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SquareGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "TriangularGrid", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_TriangularGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "TriangularGrid", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_TriangularGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "TriangularGrid", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_TriangularGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_TriangularGrid", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_TriangularGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_TriangularGrid", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_TriangularGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_TriangularGrid", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_TriangularGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "HexagonalGrid", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_HexagonalGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "HexagonalGrid", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_HexagonalGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "HexagonalGrid", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_HexagonalGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_HexagonalGrid", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_HexagonalGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_HexagonalGrid", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_HexagonalGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_HexagonalGrid", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_HexagonalGrid, 0, 0, 0); sqlite3_create_function_v2 (db, "LinesCutAtNodes", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LinesCutAtNodes, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_LinesCutAtNodes", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_LinesCutAtNodes, 0, 0, 0); sqlite3_create_function_v2 (db, "RingsCutAtNodes", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_RingsCutAtNodes, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_RingsCutAtNodes", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_RingsCutAtNodes, 0, 0, 0); #ifdef GEOS_ADVANCED /* GEOS advanced features - 3.4.0 */ sqlite3_create_function_v2 (db, "DelaunayTriangulation", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_DelaunayTriangulation, 0, 0, 0); sqlite3_create_function_v2 (db, "DelaunayTriangulation", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_DelaunayTriangulation, 0, 0, 0); sqlite3_create_function_v2 (db, "DelaunayTriangulation", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_DelaunayTriangulation, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_DelaunayTriangulation", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_DelaunayTriangulation, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_DelaunayTriangulation", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_DelaunayTriangulation, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_DelaunayTriangulation", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_DelaunayTriangulation, 0, 0, 0); sqlite3_create_function_v2 (db, "VoronojDiagram", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_VoronojDiagram, 0, 0, 0); sqlite3_create_function_v2 (db, "VoronojDiagram", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_VoronojDiagram, 0, 0, 0); sqlite3_create_function_v2 (db, "VoronojDiagram", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_VoronojDiagram, 0, 0, 0); sqlite3_create_function_v2 (db, "VoronojDiagram", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_VoronojDiagram, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_VoronojDiagram", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_VoronojDiagram, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_VoronojDiagram", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_VoronojDiagram, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_VoronojDiagram", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_VoronojDiagram, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_VoronojDiagram", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_VoronojDiagram, 0, 0, 0); sqlite3_create_function_v2 (db, "ConcaveHull", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ConcaveHull, 0, 0, 0); sqlite3_create_function_v2 (db, "ConcaveHull", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ConcaveHull, 0, 0, 0); sqlite3_create_function_v2 (db, "ConcaveHull", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ConcaveHull, 0, 0, 0); sqlite3_create_function_v2 (db, "ConcaveHull", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ConcaveHull, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_ConcaveHull", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ConcaveHull, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_ConcaveHull", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ConcaveHull, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_ConcaveHull", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ConcaveHull, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_ConcaveHull", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_ConcaveHull, 0, 0, 0); #endif /* end GEOS advanced features */ #ifdef ENABLE_LWGEOM /* enabling LWGEOM support */ sqlite3_create_function_v2 (db, "LWGEOM_GetLastErrorMsg", 0, SQLITE_UTF8, 0, fnct_LWGEOM_GetLastErrorMsg, 0, 0, 0); sqlite3_create_function_v2 (db, "LWGEOM_GetLastWarningMsg", 0, SQLITE_UTF8, 0, fnct_LWGEOM_GetLastWarningMsg, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeValid", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeValid, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MakeValid", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeValid, 0, 0, 0); sqlite3_create_function_v2 (db, "MakeValidDiscarded", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_MakeValidDiscarded, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MakeValidDiscarded", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MakeValidDiscarded, 0, 0, 0); sqlite3_create_function_v2 (db, "Area", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Area, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Area", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Area, 0, 0, 0); sqlite3_create_function_v2 (db, "Segmentize", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Segmentize, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Segmentize", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Segmentize, 0, 0, 0); sqlite3_create_function_v2 (db, "Azimuth", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Azimuth, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Azimuth", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Azimuth, 0, 0, 0); sqlite3_create_function_v2 (db, "Project", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Project, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Project", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Project, 0, 0, 0); sqlite3_create_function_v2 (db, "GeoHash", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeoHash, 0, 0, 0); sqlite3_create_function_v2 (db, "GeoHash", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeoHash, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeoHash", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeoHash, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_GeoHash", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_GeoHash, 0, 0, 0); sqlite3_create_function_v2 (db, "AsX3D", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsX3D, 0, 0, 0); sqlite3_create_function_v2 (db, "AsX3D", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsX3D, 0, 0, 0); sqlite3_create_function_v2 (db, "AsX3D", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsX3D, 0, 0, 0); sqlite3_create_function_v2 (db, "AsX3D", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsX3D, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_AsX3D", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsX3D, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_AsX3D", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsX3D, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_AsX3D", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsX3D, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_AsX3D", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_AsX3D, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_3DDistance", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_3DDistance, 0, 0, 0); sqlite3_create_function_v2 (db, "MaxDistance", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MaxDistance, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_MaxDistance", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_MaxDistance, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_3DMaxDistance", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_3DMaxDistance, 0, 0, 0); sqlite3_create_function_v2 (db, "Split", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Split, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Split", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Split, 0, 0, 0); sqlite3_create_function_v2 (db, "SplitLeft", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SplitLeft, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_SplitLeft", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SplitLeft, 0, 0, 0); sqlite3_create_function_v2 (db, "SplitRight", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SplitRight, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_SplitRight", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SplitRight, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_Node", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_Node, 0, 0, 0); sqlite3_create_function_v2 (db, "SelfIntersections", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SelfIntersections, 0, 0, 0); sqlite3_create_function_v2 (db, "ST_SelfIntersections", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_SelfIntersections, 0, 0, 0); #endif /* end LWGEOM support */ #endif /* end including GEOS */ #ifdef ENABLE_LIBXML2 /* including LIBXML2 */ sqlite3_create_function_v2 (db, "CreateStylingTables", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CreateStylingTables, 0, 0, 0); sqlite3_create_function_v2 (db, "CreateStylingTables", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CreateStylingTables, 0, 0, 0); sqlite3_create_function_v2 (db, "CreateStylingTables", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CreateStylingTables, 0, 0, 0); sqlite3_create_function (db, "SE_RegisterVectorCoverage", 3, SQLITE_ANY, 0, fnct_RegisterVectorCoverage, 0, 0); sqlite3_create_function (db, "SE_RegisterVectorCoverage", 5, SQLITE_ANY, 0, fnct_RegisterVectorCoverage, 0, 0); sqlite3_create_function (db, "SE_UnRegisterVectorCoverage", 1, SQLITE_ANY, 0, fnct_UnregisterVectorCoverage, 0, 0); sqlite3_create_function (db, "SE_SetVectorCoverageInfos", 3, SQLITE_ANY, 0, fnct_SetVectorCoverageInfos, 0, 0); sqlite3_create_function (db, "SE_RegisterVectorCoverageSrid", 2, SQLITE_ANY, 0, fnct_RegisterVectorCoverageSrid, 0, 0); sqlite3_create_function (db, "SE_UnRegisterVectorCoverageSrid", 2, SQLITE_ANY, 0, fnct_UnregisterVectorCoverageSrid, 0, 0); sqlite3_create_function (db, "SE_RegisterVectorCoverageKeyword", 2, SQLITE_ANY, 0, fnct_RegisterVectorCoverageKeyword, 0, 0); sqlite3_create_function (db, "SE_UnRegisterVectorCoverageKeyword", 2, SQLITE_ANY, 0, fnct_UnregisterVectorCoverageKeyword, 0, 0); sqlite3_create_function (db, "SE_UpdateVectorCoverageExtent", 0, SQLITE_ANY, 0, fnct_UpdateVectorCoverageExtent, 0, 0); sqlite3_create_function (db, "SE_UpdateVectorCoverageExtent", 1, SQLITE_ANY, 0, fnct_UpdateVectorCoverageExtent, 0, 0); sqlite3_create_function (db, "SE_UpdateVectorCoverageExtent", 2, SQLITE_ANY, 0, fnct_UpdateVectorCoverageExtent, 0, 0); sqlite3_create_function_v2 (db, "SE_RegisterExternalGraphic", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RegisterExternalGraphic, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_RegisterExternalGraphic", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RegisterExternalGraphic, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_UnregisterExternalGraphic", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UnregisterExternalGraphic, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_RegisterVectorStyle", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RegisterVectorStyle, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_UnRegisterVectorStyle", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UnRegisterVectorStyle, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_UnRegisterVectorStyle", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UnRegisterVectorStyle, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_ReloadVectorStyle", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ReloadVectorStyle, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_RegisterVectorStyledLayer", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RegisterVectorStyledLayer, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_UnRegisterVectorStyledLayer", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UnRegisterVectorStyledLayer, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_RegisterRasterStyle", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RegisterRasterStyle, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_UnRegisterRasterStyle", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UnRegisterRasterStyle, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_UnRegisterRasterStyle", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UnRegisterRasterStyle, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_ReloadRasterStyle", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ReloadRasterStyle, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_RegisterRasterStyledLayer", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RegisterRasterStyledLayer, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_UnRegisterRasterStyledLayer", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UnRegisterRasterStyledLayer, 0, 0, 0); sqlite3_create_function (db, "SE_RegisterRasterCoverageSrid", 2, SQLITE_ANY, 0, fnct_RegisterRasterCoverageSrid, 0, 0); sqlite3_create_function (db, "SE_UnRegisterRasterCoverageSrid", 2, SQLITE_ANY, 0, fnct_UnregisterRasterCoverageSrid, 0, 0); sqlite3_create_function (db, "SE_RegisterRasterCoverageKeyword", 2, SQLITE_ANY, 0, fnct_RegisterRasterCoverageKeyword, 0, 0); sqlite3_create_function (db, "SE_UnRegisterRasterCoverageKeyword", 2, SQLITE_ANY, 0, fnct_UnregisterRasterCoverageKeyword, 0, 0); sqlite3_create_function (db, "SE_UpdateRasterCoverageExtent", 0, SQLITE_ANY, 0, fnct_UpdateRasterCoverageExtent, 0, 0); sqlite3_create_function (db, "SE_UpdateRasterCoverageExtent", 1, SQLITE_ANY, 0, fnct_UpdateRasterCoverageExtent, 0, 0); sqlite3_create_function (db, "SE_UpdateRasterCoverageExtent", 2, SQLITE_ANY, 0, fnct_UpdateRasterCoverageExtent, 0, 0); sqlite3_create_function_v2 (db, "SE_RegisterStyledGroupRaster", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RegisterStyledGroupRaster, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_RegisterStyledGroupVector", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RegisterStyledGroupVector, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_SetStyledGroupInfos", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_SetStyledGroupInfos, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_UnRegisterStyledGroup", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UnRegisterStyledGroup, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_UnRegisterStyledGroupLayer", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UnRegisterStyledGroupLayer, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_UnRegisterStyledGroupVector", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UnRegisterStyledGroupVector, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_UnRegisterStyledGroupRaster", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UnRegisterStyledGroupRaster, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_SetStyledGroupLayerPaintOrder", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_SetStyledGroupLayerPaintOrder, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_SetStyledGroupVectorPaintOrder", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_SetStyledGroupVectorPaintOrder, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_SetStyledGroupRasterPaintOrder", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_SetStyledGroupRasterPaintOrder, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_RegisterGroupStyle", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RegisterGroupStyle, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_UnRegisterGroupStyle", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UnRegisterGroupStyle, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_UnRegisterGroupStyle", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UnRegisterGroupStyle, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_ReloadGroupStyle", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ReloadGroupStyle, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_RegisterStyledGroupStyle", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RegisterStyledGroupStyle, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_UnRegisterStyledGroupStyle", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_UnRegisterStyledGroupStyle, 0, 0, 0); sqlite3_create_function_v2 (db, "CreateIsoMetadataTables", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CreateIsoMetadataTables, 0, 0, 0); sqlite3_create_function_v2 (db, "CreateIsoMetadataTables", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_CreateIsoMetadataTables, 0, 0, 0); sqlite3_create_function_v2 (db, "GetIsoMetadataId", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_GetIsoMetadataId, 0, 0, 0); sqlite3_create_function_v2 (db, "RegisterIsoMetadata", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RegisterIsoMetadata, 0, 0, 0); sqlite3_create_function_v2 (db, "RegisterIsoMetadata", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RegisterIsoMetadata, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_Create", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_XB_Create, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_Create", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_XB_Create, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_Create", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_XB_Create, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_GetPayload", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_GetPayload, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_GetPayload", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_GetPayload, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_GetDocument", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_GetDocument, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_GetDocument", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_GetDocument, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_SchemaValidate", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_XB_SchemaValidate, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_Compress", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_Compress, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_Uncompress", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_Uncompress, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_IsValid", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_IsValid, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_IsSchemaValidated", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_IsSchemaValidated, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_IsCompressed", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_IsCompressed, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_IsIsoMetadata", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_IsIsoMetadata, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_IsSldSeVectorStyle", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_IsSldSeVectorStyle, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_IsSldSeRasterStyle", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_IsSldSeRasterStyle, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_IsSldStyle", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_IsSldStyle, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_IsSvg", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_IsSvg, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_GetSchemaURI", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_GetSchemaURI, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_GetInternalSchemaURI", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_XB_GetInternalSchemaURI, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_GetFileId", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_GetFileId, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_GetParentId", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_GetParentId, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_SetFileId", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_XB_SetFileId, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_SetParentId", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_XB_SetParentId, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_AddFileId", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_XB_AddFileId, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_AddParentId", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_XB_AddParentId, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_GetName", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_GetName, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_GetTitle", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_GetTitle, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_GetAbstract", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_GetAbstract, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_GetGeometry", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_GetGeometry, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_GetDocumentSize", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_GetDocumentSize, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_GetEncoding", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_XB_GetEncoding, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_GetLastParseError", 0, SQLITE_UTF8, cache, fnct_XB_GetLastParseError, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_GetLastValidateError", 0, SQLITE_UTF8, cache, fnct_XB_GetLastValidateError, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_IsValidXPathExpression", 1, SQLITE_UTF8, cache, fnct_XB_IsValidXPathExpression, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_GetLastXPathError", 0, SQLITE_UTF8, cache, fnct_XB_GetLastXPathError, 0, 0, 0); sqlite3_create_function_v2 (db, "XB_CacheFlush", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_XB_CacheFlush, 0, 0, 0); #endif /* end including LIBXML2 */ #ifdef ENABLE_GEOPACKAGE /* enabling GeoPackage extensions */ sqlite3_create_function_v2 (db, "AutoGPKGStart", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AutoGPKGStart, 0, 0, 0); sqlite3_create_function_v2 (db, "AutoGPKGStop", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AutoGPKGStop, 0, 0, 0); /* not yet finalised geopackage raster functions, plus some convenience API */ sqlite3_create_function_v2 (db, "gpkgCreateBaseTables", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgCreateBaseTables, 0, 0, 0); sqlite3_create_function_v2 (db, "gpkgInsertEpsgSRID", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgInsertEpsgSRID, 0, 0, 0); sqlite3_create_function_v2 (db, "gpkgCreateTilesTable", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgCreateTilesTable, 0, 0, 0); sqlite3_create_function_v2 (db, "gpkgCreateTilesZoomLevel", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgCreateTilesZoomLevel, 0, 0, 0); sqlite3_create_function_v2 (db, "gpkgAddTileTriggers", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgAddTileTriggers, 0, 0, 0); sqlite3_create_function_v2 (db, "gpkgGetNormalZoom", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgGetNormalZoom, 0, 0, 0); sqlite3_create_function_v2 (db, "gpkgGetNormalRow", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgGetNormalRow, 0, 0, 0); sqlite3_create_function_v2 (db, "gpkgGetImageType", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgGetImageType, 0, 0, 0); sqlite3_create_function_v2 (db, "gpkgAddGeometryColumn", 6, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgAddGeometryColumn, 0, 0, 0); sqlite3_create_function_v2 (db, "gpkgAddGeometryTriggers", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgAddGeometryTriggers, 0, 0, 0); sqlite3_create_function_v2 (db, "gpkgAddSpatialIndex", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgAddSpatialIndex, 0, 0, 0); sqlite3_create_function_v2 (db, "gpkgMakePoint", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgMakePoint, 0, 0, 0); sqlite3_create_function_v2 (db, "gpkgMakePoint", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgMakePointWithSRID, 0, 0, 0); sqlite3_create_function_v2 (db, "gpkgMakePointZ", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgMakePointZ, 0, 0, 0); sqlite3_create_function_v2 (db, "gpkgMakePointZ", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgMakePointZWithSRID, 0, 0, 0); sqlite3_create_function_v2 (db, "gpkgMakePointM", 3, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgMakePointM, 0, 0, 0); sqlite3_create_function_v2 (db, "gpkgMakePointM", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgMakePointMWithSRID, 0, 0, 0); sqlite3_create_function_v2 (db, "gpkgMakePointZM", 4, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgMakePointZM, 0, 0, 0); sqlite3_create_function_v2 (db, "gpkgMakePointZM", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_gpkgMakePointZMWithSRID, 0, 0, 0); sqlite3_create_function_v2 (db, "AsGPB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_ToGPB, 0, 0, 0); sqlite3_create_function_v2 (db, "GeomFromGPB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_GeomFromGPB, 0, 0, 0); sqlite3_create_function_v2 (db, "IsValidGPB", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_IsValidGPB, 0, 0, 0); sqlite3_create_function_v2 (db, "GPKG_IsAssignable", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_GPKG_IsAssignable, 0, 0, 0); sqlite3_create_function_v2 (db, "CastAutomagic", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, cache, fnct_CastAutomagic, 0, 0, 0); #endif /* end enabling GeoPackage extensions */ return cache; } SPATIALITE_PRIVATE void init_spatialite_virtualtables (void *p_db, const void *p_cache) { sqlite3 *db = (sqlite3 *) p_db; #ifndef OMIT_ICONV /* when ICONV is disabled SHP/DBF/TXT cannot be supported */ /* initializing the VirtualShape extension */ virtualshape_extension_init (db); /* initializing the VirtualDbf extension */ virtualdbf_extension_init (db); /* initializing the VirtualText extension */ virtualtext_extension_init (db); #ifndef OMIT_FREEXL /* initializing the VirtualXL extension */ virtualXL_extension_init (db); #endif /* FreeXL enabled/disable */ #endif /* ICONV enabled/disabled */ /* initializing the VirtualNetwork extension */ virtualnetwork_extension_init (db); /* initializing the MbrCache extension */ mbrcache_extension_init (db); /* initializing the VirtualFDO extension */ virtualfdo_extension_init (db); /* initializing the VirtualBBox extension */ virtualbbox_extension_init (db, p_cache); /* initializing the VirtualSpatialIndex extension */ virtual_spatialindex_extension_init (db); /* initializing the VirtualElementary extension */ virtual_elementary_extension_init (db); #ifdef ENABLE_GEOPACKAGE /* only if GeoPackage support is enabled */ /* initializing the VirtualFDO extension */ virtualgpkg_extension_init (db); #endif /* end GEOPACKAGE conditional */ #ifdef ENABLE_LIBXML2 /* including LIBXML2 */ /* initializing the VirtualXPath extension */ virtual_xpath_extension_init (db, p_cache); #endif /* LIBXML2 enabled/disable */ } #ifdef LOADABLE_EXTENSION /* loadable-extension only */ SQLITE_EXTENSION_INIT1 static int init_spatialite_extension (sqlite3 * db, char **pzErrMsg, const sqlite3_api_routines * pApi) { void *p_cache = spatialite_alloc_connection (); struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; SQLITE_EXTENSION_INIT2 (pApi); #ifdef POSTGIS_2_1 /* initializing liblwgeom from PostGIS 2.1.x (or later) */ splite_lwgeom_init (); #endif /* end POSTGIS_2_1 */ /* setting the POSIX locale for numeric */ setlocale (LC_NUMERIC, "POSIX"); *pzErrMsg = NULL; register_spatialite_sql_functions (db, cache); init_spatialite_virtualtables (db, p_cache); /* setting a timeout handler */ sqlite3_busy_timeout (db, 5000); return 0; } #endif SPATIALITE_DECLARE void spatialite_init_geos (void) { /* initializes GEOS (or resets to initial state - as required by LWGEOM) */ #ifndef OMIT_GEOS /* initializing GEOS */ initGEOS (geos_warning, geos_error); #endif /* end GEOS */ } SPATIALITE_PRIVATE void spatialite_splash_screen (int verbose) { if (isatty (1)) { /* printing "hello" message only when stdout is on console */ if (verbose) { spatialite_i ("SpatiaLite version ..: %s", spatialite_version ()); spatialite_i ("\tSupported Extensions:\n"); #ifndef OMIT_ICONV /* ICONV is required by SHP/DBF/TXT */ spatialite_i ("\t- 'VirtualShape'\t[direct Shapefile access]\n"); spatialite_i ("\t- 'VirtualDbf'\t\t[direct DBF access]\n"); #ifndef OMIT_FREEXL spatialite_i ("\t- 'VirtualXL'\t\t[direct XLS access]\n"); #endif /* end FreeXL conditional */ spatialite_i ("\t- 'VirtualText'\t\t[direct CSV/TXT access]\n"); #endif /* end ICONV conditional */ spatialite_i ("\t- 'VirtualNetwork'\t[Dijkstra shortest path]\n"); spatialite_i ("\t- 'RTree'\t\t[Spatial Index - R*Tree]\n"); spatialite_i ("\t- 'MbrCache'\t\t[Spatial Index - MBR cache]\n"); spatialite_i ("\t- 'VirtualSpatialIndex'\t[R*Tree metahandler]\n"); spatialite_i ("\t- 'VirtualElementary'\t[ElemGeoms metahandler]\n"); #ifdef ENABLE_LIBXML2 /* VirtualXPath is supported */ spatialite_i ("\t- 'VirtualXPath'\t[XML Path Language - XPath]\n"); #endif /* end including LIBXML2 */ spatialite_i ("\t- 'VirtualFDO'\t\t[FDO-OGR interoperability]\n"); #ifdef ENABLE_GEOPACKAGE /* VirtualGPKG is supported */ spatialite_i ("\t- 'VirtualGPKG'\t[OGC GeoPackage interoperability]\n"); #endif spatialite_i ("\t- 'VirtualBBox'\t\t[BoundingBox tables]\n"); spatialite_i ("\t- 'SpatiaLite'\t\t[Spatial SQL - OGC]\n"); } #ifndef OMIT_PROJ /* PROJ.4 version */ if (verbose) spatialite_i ("PROJ.4 version ......: %s\n", pj_get_release ()); #endif /* end including PROJ.4 */ #ifndef OMIT_GEOS /* GEOS version */ if (verbose) spatialite_i ("GEOS version ........: %s\n", GEOSversion ()); #endif /* end GEOS version */ #ifdef ENABLE_LWGEOM /* LWGEOM version */ if (verbose) spatialite_i ("LWGEOM version ......: %s\n", splite_lwgeom_version ()); #endif /* end LWGEOM version */ if (verbose) spatialite_i ("TARGET CPU ..........: %s\n", spatialite_target_cpu ()); } } #ifndef LOADABLE_EXTENSION SPATIALITE_DECLARE void spatialite_init_ex (sqlite3 * db_handle, const void *p_cache, int verbose) { /* used when SQLite initializes as an ordinary lib */ struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; if (p_cache == NULL) { spatialite_e ("ERROR unable to initialize the SpatiaLite extension: NULL cache !!!\n"); return; } /* setting the POSIX locale for numeric */ setlocale (LC_NUMERIC, "POSIX"); #ifdef POSTGIS_2_1 /* initializing liblwgeom from PostGIS 2.1.x (or later) */ splite_lwgeom_init (); #endif /* end POSTGIS_2_1 */ register_spatialite_sql_functions (db_handle, cache); init_spatialite_virtualtables (db_handle, p_cache); spatialite_splash_screen (verbose); /* setting a timeout handler */ sqlite3_busy_timeout (db_handle, 5000); } SPATIALITE_DECLARE void spatialite_cleanup_ex (const void *ptr) { struct splite_internal_cache *cache = (struct splite_internal_cache *) ptr; if (cache == NULL) return; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return; #ifdef ENABLE_LWGEOM gaiaResetLwGeomMsg (); #endif free_internal_cache (cache); sqlite3_reset_auto_extension (); } #endif /* not built as loadable-extension only */ #ifdef LOADABLE_EXTENSION /* loadable-extension only */ #if !(defined _WIN32) || defined(__MINGW32__) /* MSVC is unable to understand this declaration */ __attribute__ ((visibility ("default"))) #endif SPATIALITE_DECLARE int sqlite3_modspatialite_init (sqlite3 * db, char **pzErrMsg, const sqlite3_api_routines * pApi) { /* SQLite invokes this routine once when it dynamically loads the extension. */ spatialite_initialize (); return init_spatialite_extension (db, pzErrMsg, pApi); } #endif SPATIALITE_DECLARE sqlite3_int64 math_llabs (sqlite3_int64 value) { /* replacing the C99 llabs() function */ return value < 0 ? -value : value; } SPATIALITE_DECLARE double math_round (double value) { /* replacing the C99 round() function */ double min = floor (value); if (fabs (value - min) < 0.5) return min; return min + 1.0; } libspatialite-4.3.0a/src/spatialite/virtualdbf.c0000664000175000017500000005561412544707704016711 00000000000000/* virtualdbf.c -- SQLite3 extension [VIRTUAL TABLE accessing DBF] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ #ifndef OMIT_ICONV /* if ICONV is disabled no DBF support is available */ static struct sqlite3_module my_dbf_module; typedef struct VirtualDbfStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ gaiaDbfPtr dbf; /* the DBF struct */ int text_dates; } VirtualDbf; typedef VirtualDbf *VirtualDbfPtr; typedef struct VirtualDbfConstraintStruct { /* a constraint to be verified for xFilter */ int iColumn; /* Column on left-hand side of constraint */ int op; /* Constraint operator */ char valueType; /* value Type ('I'=int,'D'=double,'T'=text) */ sqlite3_int64 intValue; /* Int64 comparison value */ double dblValue; /* Double comparison value */ char *txtValue; /* Text comparison value */ struct VirtualDbfConstraintStruct *next; } VirtualDbfConstraint; typedef VirtualDbfConstraint *VirtualDbfConstraintPtr; typedef struct VirtualDbfCursorStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualDbfPtr pVtab; /* Virtual table of this cursor */ long current_row; /* the current row ID */ int eof; /* the EOF marker */ VirtualDbfConstraintPtr firstConstraint; VirtualDbfConstraintPtr lastConstraint; } VirtualDbfCursor; typedef VirtualDbfCursor *VirtualDbfCursorPtr; static int vdbf_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table connected to some DBF */ char *sql; VirtualDbfPtr p_vt; char path[2048]; char encoding[128]; const char *pEncoding = NULL; int len; const char *pPath = NULL; gaiaDbfFieldPtr pFld; int cnt; int col_cnt; int seed; int dup; int idup; int text_dates = 0; char *xname; char **col_name = NULL; gaiaOutBuffer sql_statement; if (pAux) pAux = pAux; /* unused arg warning suppression */ /* checking for DBF PATH */ if (argc == 5 || argc == 6) { pPath = argv[3]; len = strlen (pPath); if ((*(pPath + 0) == '\'' || *(pPath + 0) == '"') && (*(pPath + len - 1) == '\'' || *(pPath + len - 1) == '"')) { /* the path is enclosed between quotes - we need to dequote it */ strcpy (path, pPath + 1); len = strlen (path); *(path + len - 1) = '\0'; } else strcpy (path, pPath); pEncoding = argv[4]; len = strlen (pEncoding); if ((*(pEncoding + 0) == '\'' || *(pEncoding + 0) == '"') && (*(pEncoding + len - 1) == '\'' || *(pEncoding + len - 1) == '"')) { /* the charset-name is enclosed between quotes - we need to dequote it */ strcpy (encoding, pEncoding + 1); len = strlen (encoding); *(encoding + len - 1) = '\0'; } else strcpy (encoding, pEncoding); if (argc == 6) text_dates = atoi (argv[5]); } else { *pzErr = sqlite3_mprintf ("[VirtualDbf module] CREATE VIRTUAL: illegal arg list {dbf_path, encoding}"); return SQLITE_ERROR; } p_vt = (VirtualDbfPtr) sqlite3_malloc (sizeof (VirtualDbf)); if (!p_vt) return SQLITE_NOMEM; p_vt->pModule = &my_dbf_module; p_vt->nRef = 0; p_vt->zErrMsg = NULL; p_vt->db = db; p_vt->dbf = gaiaAllocDbf (); p_vt->text_dates = text_dates; /* trying to open file */ gaiaOpenDbfRead (p_vt->dbf, path, encoding, "UTF-8"); if (!(p_vt->dbf->Valid)) { /* something is going the wrong way; creating a stupid default table */ xname = gaiaDoubleQuotedSql ((const char *) argv[2]); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (PKUID INTEGER)", xname); free (xname); if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) { sqlite3_free (sql); *pzErr = sqlite3_mprintf ("[VirtualDbf module] cannot build a table from DBF\n"); return SQLITE_ERROR; } sqlite3_free (sql); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } /* preparing the COLUMNs for this VIRTUAL TABLE */ gaiaOutBufferInitialize (&sql_statement); xname = gaiaDoubleQuotedSql (argv[2]); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (PKUID INTEGER", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); /* checking for duplicate / illegal column names and antialising them */ col_cnt = 0; pFld = p_vt->dbf->Dbf->First; while (pFld) { /* counting DBF fields */ col_cnt++; pFld = pFld->Next; } col_name = malloc (sizeof (char *) * col_cnt); cnt = 0; seed = 0; pFld = p_vt->dbf->Dbf->First; while (pFld) { xname = gaiaDoubleQuotedSql (pFld->Name); dup = 0; for (idup = 0; idup < cnt; idup++) { if (strcasecmp (xname, *(col_name + idup)) == 0) dup = 1; } if (strcasecmp (xname, "\"PKUID\"") == 0) dup = 1; if (dup) { free (xname); sql = sqlite3_mprintf ("COL_%d", seed++); xname = gaiaDoubleQuotedSql (sql); sqlite3_free (sql); } if (pFld->Type == 'N') { if (pFld->Decimals > 0 || pFld->Length > 18) sql = sqlite3_mprintf (", \"%s\" DOUBLE", xname); else sql = sqlite3_mprintf (", \"%s\" INTEGER", xname); } else if (pFld->Type == 'F') sql = sqlite3_mprintf (", \"%s\" DOUBLE", xname); else if (pFld->Type == 'D') { if (text_dates) sql = sqlite3_mprintf (", \"%s\" VARCHAR(%d)", xname, pFld->Length); else sql = sqlite3_mprintf (", \"%s\" DOUBLE", xname); } else sql = sqlite3_mprintf (", \"%s\" VARCHAR(%d)", xname, pFld->Length); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); *(col_name + cnt) = xname; cnt++; pFld = pFld->Next; } gaiaAppendToOutBuffer (&sql_statement, ")"); if (col_name) { /* releasing memory allocation for column names */ for (cnt = 0; cnt < col_cnt; cnt++) free (*(col_name + cnt)); free (col_name); } if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { if (sqlite3_declare_vtab (db, sql_statement.Buffer) != SQLITE_OK) { *pzErr = sqlite3_mprintf ("[VirtualDbf module] CREATE VIRTUAL: invalid SQL statement \"%s\"", sql_statement.Buffer); gaiaOutBufferReset (&sql_statement); return SQLITE_ERROR; } } gaiaOutBufferReset (&sql_statement); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } static int vdbf_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table to some DBF - simply aliases vdbf_create() */ return vdbf_create (db, pAux, argc, argv, ppVTab, pzErr); } static int vdbf_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIndex) { /* best index selection */ int i; int iArg = 0; char str[2048]; char buf[64]; if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ *str = '\0'; for (i = 0; i < pIndex->nConstraint; i++) { if (pIndex->aConstraint[i].usable) { iArg++; pIndex->aConstraintUsage[i].argvIndex = iArg; pIndex->aConstraintUsage[i].omit = 1; sprintf (buf, "%d:%d,", pIndex->aConstraint[i].iColumn, pIndex->aConstraint[i].op); strcat (str, buf); } } if (*str != '\0') { pIndex->idxStr = sqlite3_mprintf ("%s", str); pIndex->needToFreeIdxStr = 1; } return SQLITE_OK; } static int vdbf_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualDbfPtr p_vt = (VirtualDbfPtr) pVTab; if (p_vt->dbf) gaiaFreeDbf (p_vt->dbf); sqlite3_free (p_vt); return SQLITE_OK; } static int vdbf_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases vdbf_disconnect() */ return vdbf_disconnect (pVTab); } static void vdbf_read_row (VirtualDbfCursorPtr cursor, int *deleted_row) { /* trying to read a "row" from DBF */ int ret; int deleted; if (!(cursor->pVtab->dbf->Valid)) { cursor->eof = 1; return; } ret = gaiaReadDbfEntity_ex (cursor->pVtab->dbf, cursor->current_row, &deleted, cursor->pVtab->text_dates); if (!ret) { if (!(cursor->pVtab->dbf->LastError)) /* normal DBF EOF */ { cursor->eof = 1; return; } /* an error occurred */ spatialite_e ("%s\n", cursor->pVtab->dbf->LastError); cursor->eof = 1; return; } cursor->current_row++; *deleted_row = deleted; } static int vdbf_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ int deleted; VirtualDbfCursorPtr cursor = (VirtualDbfCursorPtr) sqlite3_malloc (sizeof (VirtualDbfCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->firstConstraint = NULL; cursor->lastConstraint = NULL; cursor->pVtab = (VirtualDbfPtr) pVTab; cursor->current_row = 0; cursor->eof = 0; *ppCursor = (sqlite3_vtab_cursor *) cursor; while (1) { vdbf_read_row (cursor, &deleted); if (cursor->eof) break; if (!deleted) break; } return SQLITE_OK; } static void vdbf_free_constraints (VirtualDbfCursorPtr cursor) { /* memory cleanup - cursor constraints */ VirtualDbfConstraintPtr pC; VirtualDbfConstraintPtr pCn; pC = cursor->firstConstraint; while (pC) { pCn = pC->next; if (pC->txtValue) sqlite3_free (pC->txtValue); sqlite3_free (pC); pC = pCn; } cursor->firstConstraint = NULL; cursor->lastConstraint = NULL; } static int vdbf_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ VirtualDbfCursorPtr cursor = (VirtualDbfCursorPtr) pCursor; vdbf_free_constraints (cursor); sqlite3_free (pCursor); return SQLITE_OK; } static int vdbf_parse_constraint (const char *str, int index, int *iColumn, int *op) { /* parsing a constraint string */ char buf[64]; const char *in = str; char *out = buf; int i = 0; int found = 0; *out = '\0'; while (*in != '\0') { if (*in == ',') { if (index == i) { *out = '\0'; found = 1; break; } i++; in++; continue; } if (index == i) *out++ = *in; in++; } if (!found) return 0; in = buf; for (i = 0; i < (int) strlen (buf); i++) { if (buf[i] == ':') { buf[i] = '\0'; *iColumn = atoi (buf); *op = atoi (buf + i + 1); return 1; } in++; } return 0; } static int vdbf_eval_constraints (VirtualDbfCursorPtr cursor) { /* evaluating Filter constraints */ int nCol; gaiaDbfFieldPtr pFld; VirtualDbfConstraintPtr pC = cursor->firstConstraint; if (pC == NULL) return 1; while (pC) { int ok = 0; if (pC->iColumn == 0) { /* the PRIMARY KEY column */ if (pC->valueType == 'I') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (cursor->current_row == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (cursor->current_row > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (cursor->current_row <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (cursor->current_row < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (cursor->current_row >= pC->intValue) ok = 1; break; }; } goto done; } nCol = 1; pFld = cursor->pVtab->dbf->Dbf->First; while (pFld) { if (nCol == pC->iColumn) { if ((pFld->Value)) { switch (pFld->Value->Type) { case GAIA_INT_VALUE: if (pC->valueType == 'I') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (pFld->Value->IntValue == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (pFld->Value->IntValue > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (pFld->Value->IntValue <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (pFld->Value->IntValue < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (pFld->Value->IntValue >= pC->intValue) ok = 1; break; }; } break; case GAIA_DOUBLE_VALUE: if (pC->valueType == 'I') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (pFld->Value->DblValue == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (pFld->Value->DblValue > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (pFld->Value->DblValue <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (pFld->Value->DblValue < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (pFld->Value->DblValue >= pC->intValue) ok = 1; break; }; } if (pC->valueType == 'D') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (pFld->Value->DblValue == pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (pFld->Value->DblValue > pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (pFld->Value->DblValue <= pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (pFld->Value->DblValue < pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (pFld->Value->DblValue >= pC->dblValue) ok = 1; break; } } break; case GAIA_TEXT_VALUE: if (pC->valueType == 'T' && pC->txtValue) { int ret; ret = strcmp (pFld->Value->TxtValue, pC->txtValue); switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (ret == 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (ret > 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (ret <= 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (ret < 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (ret >= 0) ok = 1; break; }; } break; }; } goto done; } nCol++; pFld = pFld->Next; } done: if (!ok) return 0; pC = pC->next; } return 1; } static int vdbf_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ int i; int iColumn; int op; int len; int deleted; VirtualDbfConstraintPtr pC; VirtualDbfCursorPtr cursor = (VirtualDbfCursorPtr) pCursor; if (idxNum) idxNum = idxNum; /* unused arg warning suppression */ /* resetting any previously set filter constraint */ vdbf_free_constraints (cursor); for (i = 0; i < argc; i++) { if (!vdbf_parse_constraint (idxStr, i, &iColumn, &op)) continue; pC = sqlite3_malloc (sizeof (VirtualDbfConstraint)); if (!pC) continue; pC->iColumn = iColumn; pC->op = op; pC->valueType = '\0'; pC->txtValue = NULL; pC->next = NULL; if (sqlite3_value_type (argv[i]) == SQLITE_INTEGER) { pC->valueType = 'I'; pC->intValue = sqlite3_value_int64 (argv[i]); } if (sqlite3_value_type (argv[i]) == SQLITE_FLOAT) { pC->valueType = 'D'; pC->dblValue = sqlite3_value_double (argv[i]); } if (sqlite3_value_type (argv[i]) == SQLITE_TEXT) { pC->valueType = 'T'; len = sqlite3_value_bytes (argv[i]) + 1; pC->txtValue = (char *) sqlite3_malloc (len); if (pC->txtValue) strcpy (pC->txtValue, (char *) sqlite3_value_text (argv[i])); } if (cursor->firstConstraint == NULL) cursor->firstConstraint = pC; if (cursor->lastConstraint != NULL) cursor->lastConstraint->next = pC; cursor->lastConstraint = pC; } cursor->current_row = 0; cursor->eof = 0; while (1) { vdbf_read_row (cursor, &deleted); if (cursor->eof) break; if (deleted) continue; if (vdbf_eval_constraints (cursor)) break; } return SQLITE_OK; } static int vdbf_next (sqlite3_vtab_cursor * pCursor) { /* fetching a next row from cursor */ int deleted; VirtualDbfCursorPtr cursor = (VirtualDbfCursorPtr) pCursor; while (1) { vdbf_read_row (cursor, &deleted); if (cursor->eof) break; if (deleted) continue; if (vdbf_eval_constraints (cursor)) break; } return SQLITE_OK; } static int vdbf_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualDbfCursorPtr cursor = (VirtualDbfCursorPtr) pCursor; return cursor->eof; } static int vdbf_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ int nCol = 1; gaiaDbfFieldPtr pFld; VirtualDbfCursorPtr cursor = (VirtualDbfCursorPtr) pCursor; if (column == 0) { /* the PRIMARY KEY column */ sqlite3_result_int (pContext, cursor->current_row); return SQLITE_OK; } pFld = cursor->pVtab->dbf->Dbf->First; while (pFld) { /* column values */ if (nCol == column) { if (!(pFld->Value)) sqlite3_result_null (pContext); else { switch (pFld->Value->Type) { case GAIA_INT_VALUE: sqlite3_result_int64 (pContext, pFld->Value->IntValue); break; case GAIA_DOUBLE_VALUE: sqlite3_result_double (pContext, pFld->Value->DblValue); break; case GAIA_TEXT_VALUE: sqlite3_result_text (pContext, pFld->Value->TxtValue, strlen (pFld->Value->TxtValue), SQLITE_STATIC); break; default: sqlite3_result_null (pContext); break; } } break; } nCol++; pFld = pFld->Next; } return SQLITE_OK; } static int vdbf_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualDbfCursorPtr cursor = (VirtualDbfCursorPtr) pCursor; *pRowid = cursor->current_row; return SQLITE_OK; } static int vdbf_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ if (pVTab || argc || argv || pRowid) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_READONLY; } static int vdbf_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vdbf_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vdbf_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vdbf_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vdbf_rename (sqlite3_vtab * pVTab, const char *zNew) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ if (zNew) zNew = zNew; /* unused arg warning suppression */ return SQLITE_ERROR; } static int spliteVirtualDbfInit (sqlite3 * db) { int rc = SQLITE_OK; my_dbf_module.iVersion = 1; my_dbf_module.xCreate = &vdbf_create; my_dbf_module.xConnect = &vdbf_connect; my_dbf_module.xBestIndex = &vdbf_best_index; my_dbf_module.xDisconnect = &vdbf_disconnect; my_dbf_module.xDestroy = &vdbf_destroy; my_dbf_module.xOpen = &vdbf_open; my_dbf_module.xClose = &vdbf_close; my_dbf_module.xFilter = &vdbf_filter; my_dbf_module.xNext = &vdbf_next; my_dbf_module.xEof = &vdbf_eof; my_dbf_module.xColumn = &vdbf_column; my_dbf_module.xRowid = &vdbf_rowid; my_dbf_module.xUpdate = &vdbf_update; my_dbf_module.xBegin = &vdbf_begin; my_dbf_module.xSync = &vdbf_sync; my_dbf_module.xCommit = &vdbf_commit; my_dbf_module.xRollback = &vdbf_rollback; my_dbf_module.xFindFunction = NULL; my_dbf_module.xRename = &vdbf_rename; sqlite3_create_module_v2 (db, "VirtualDbf", &my_dbf_module, NULL, 0); return rc; } SPATIALITE_PRIVATE int virtualdbf_extension_init (void *xdb) { sqlite3 *db = (sqlite3 *) xdb; return spliteVirtualDbfInit (db); } #endif /* ICONV enabled/disabled */ libspatialite-4.3.0a/src/spatialite/virtualnetwork.c0000664000175000017500000021173712544707704017647 00000000000000/* virtualnetwork.c -- SQLite3 extension [VIRTUAL TABLE Routing - shortest path] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Luigi Costalli luigi.costalli@gmail.com Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include static struct sqlite3_module my_net_module; #define VNET_DIJKSTRA_ALGORITHM 1 #define VNET_A_STAR_ALGORITHM 2 #define VNET_ROUTING_SOLUTION 0xdd #define VNET_RANGE_SOLUTION 0xbb #define VNET_INVALID_SRID -1234 #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ /****************************************************************************** / / VirtualNetwork structs / ******************************************************************************/ typedef struct NetworkArcStruct { /* an ARC */ const struct NetworkNodeStruct *NodeFrom; const struct NetworkNodeStruct *NodeTo; sqlite3_int64 ArcRowid; double Cost; } NetworkArc; typedef NetworkArc *NetworkArcPtr; typedef struct NetworkNodeStruct { /* a NODE */ int InternalIndex; sqlite3_int64 Id; char *Code; double CoordX; double CoordY; int NumArcs; NetworkArcPtr Arcs; } NetworkNode; typedef NetworkNode *NetworkNodePtr; typedef struct NetworkStruct { /* the main NETWORK structure */ int Net64; int AStar; int EndianArch; int MaxCodeLength; int CurrentIndex; int NodeCode; int NumNodes; char *TableName; char *FromColumn; char *ToColumn; char *GeometryColumn; char *NameColumn; double AStarHeuristicCoeff; NetworkNodePtr Nodes; } Network; typedef Network *NetworkPtr; typedef struct ArcSolutionStruct { /* Geometry corresponding to an Arc used by Dijkstra shortest path solution */ sqlite3_int64 ArcRowid; char *FromCode; char *ToCode; sqlite3_int64 FromId; sqlite3_int64 ToId; int Points; double *Coords; int Srid; char *Name; struct ArcSolutionStruct *Next; } ArcSolution; typedef ArcSolution *ArcSolutionPtr; typedef struct RowSolutionStruct { /* a row into the shortest path solution */ NetworkArcPtr Arc; char *Name; struct RowSolutionStruct *Next; } RowSolution; typedef RowSolution *RowSolutionPtr; typedef struct RowNodeSolutionStruct { /* a row into the "within Cost range" solution */ NetworkNodePtr Node; double Cost; int Srid; struct RowNodeSolutionStruct *Next; } RowNodeSolution; typedef RowNodeSolution *RowNodeSolutionPtr; typedef struct SolutionStruct { /* the shortest path solution */ unsigned char Mode; ArcSolutionPtr FirstArc; ArcSolutionPtr LastArc; NetworkNodePtr From; NetworkNodePtr To; double MaxCost; RowSolutionPtr First; RowSolutionPtr Last; RowNodeSolutionPtr FirstNode; RowNodeSolutionPtr LastNode; RowSolutionPtr CurrentRow; RowNodeSolutionPtr CurrentNodeRow; sqlite3_int64 CurrentRowId; double TotalCost; gaiaGeomCollPtr Geometry; } Solution; typedef Solution *SolutionPtr; /****************************************************************************** / / Dijkstra and A* common structs / ******************************************************************************/ typedef struct RoutingNode { int Id; struct RoutingNode **To; NetworkArcPtr *Link; int DimTo; struct RoutingNode *PreviousNode; NetworkNodePtr Node; NetworkArcPtr Arc; double Distance; double HeuristicDistance; int Inspected; } RoutingNode; typedef RoutingNode *RoutingNodePtr; typedef struct RoutingNodes { RoutingNodePtr Nodes; NetworkArcPtr *ArcsBuffer; RoutingNodePtr *NodesBuffer; int Dim; int DimLink; } RoutingNodes; typedef RoutingNodes *RoutingNodesPtr; typedef struct HeapNode { RoutingNodePtr Node; double Distance; } HeapNode; typedef HeapNode *HeapNodePtr; typedef struct RoutingHeapStruct { HeapNodePtr Nodes; int Count; } RoutingHeap; typedef RoutingHeap *RoutingHeapPtr; /****************************************************************************** / / VirtualTable structs / ******************************************************************************/ typedef struct VirtualNetworkStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ NetworkPtr graph; /* the NETWORK structure */ RoutingNodesPtr routing; /* the ROUTING structure */ int currentAlgorithm; /* the currently selected Shortest Path Algorithm */ } VirtualNetwork; typedef VirtualNetwork *VirtualNetworkPtr; typedef struct VirtualNetworkCursortStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualNetworkPtr pVtab; /* Virtual table of this cursor */ SolutionPtr solution; /* the current solution */ int eof; /* the EOF marker */ } VirtualNetworkCursor; typedef VirtualNetworkCursor *VirtualNetworkCursorPtr; /* / / implementation of the Dijkstra Shortest Path algorithm / //////////////////////////////////////////////////////////// / / Author: Luigi Costalli luigi.costalli@gmail.com / version 1.0. 2008 October 21 / */ static RoutingNodesPtr routing_init (NetworkPtr graph) { /* allocating and initializing the ROUTING struct */ int i; int j; int cnt = 0; RoutingNodesPtr nd; RoutingNodePtr ndn; NetworkNodePtr nn; /* allocating the main Nodes struct */ nd = malloc (sizeof (RoutingNodes)); /* allocating and initializing Nodes array */ nd->Nodes = malloc (sizeof (RoutingNode) * graph->NumNodes); nd->Dim = graph->NumNodes; nd->DimLink = 0; /* pre-alloc buffer strategy - GENSCHER 2010-01-05 */ for (i = 0; i < graph->NumNodes; cnt += graph->Nodes[i].NumArcs, i++); nd->NodesBuffer = malloc (sizeof (RoutingNodePtr) * cnt); nd->ArcsBuffer = malloc (sizeof (NetworkArcPtr) * cnt); cnt = 0; for (i = 0; i < graph->NumNodes; i++) { /* initializing the Nodes array */ nn = graph->Nodes + i; ndn = nd->Nodes + i; ndn->Id = nn->InternalIndex; ndn->DimTo = nn->NumArcs; ndn->Node = nn; ndn->To = &(nd->NodesBuffer[cnt]); ndn->Link = &(nd->ArcsBuffer[cnt]); cnt += nn->NumArcs; for (j = 0; j < nn->NumArcs; j++) { /* setting the outcoming Arcs for the current Node */ nd->DimLink++; ndn->To[j] = nd->Nodes + nn->Arcs[j].NodeTo->InternalIndex; ndn->Link[j] = nn->Arcs + j; } } return (nd); } static void routing_free (RoutingNodes * e) { /* memory cleanup; freeing the ROUTING struct */ free (e->ArcsBuffer); free (e->NodesBuffer); free (e->Nodes); free (e); } static RoutingHeapPtr routing_heap_init (int n) { /* allocating and initializing the Heap (min-priority queue) */ RoutingHeapPtr heap = malloc (sizeof (RoutingHeap)); heap->Count = 0; heap->Nodes = malloc (sizeof (HeapNode) * (n + 1)); return heap; } static void routing_heap_free (RoutingHeapPtr heap) { /* freeing the Heap (min-priority queue) */ if (heap->Nodes != NULL) free (heap->Nodes); free (heap); } static void dijkstra_insert (RoutingNodePtr node, HeapNodePtr heap, int size) { /* inserting a new Node and rearranging the heap */ int i; HeapNode tmp; i = size + 1; heap[i].Node = node; heap[i].Distance = node->Distance; if (i / 2 < 1) return; while (heap[i].Distance < heap[i / 2].Distance) { tmp = heap[i]; heap[i] = heap[i / 2]; heap[i / 2] = tmp; i /= 2; if (i / 2 < 1) break; } } static void dijkstra_enqueue (RoutingHeapPtr heap, RoutingNodePtr node) { /* enqueuing a Node into the heap */ dijkstra_insert (node, heap->Nodes, heap->Count); heap->Count += 1; } static void dijkstra_shiftdown (HeapNodePtr heap, int size, int i) { /* rearranging the heap after removing */ int c; HeapNode tmp; for (;;) { c = i * 2; if (c > size) break; if (c < size) { if (heap[c].Distance > heap[c + 1].Distance) ++c; } if (heap[c].Distance < heap[i].Distance) { /* swapping two Nodes */ tmp = heap[c]; heap[c] = heap[i]; heap[i] = tmp; i = c; } else break; } } static RoutingNodePtr dijkstra_remove_min (HeapNodePtr heap, int size) { /* removing the min-priority Node from the heap */ RoutingNodePtr node = heap[1].Node; heap[1] = heap[size]; --size; dijkstra_shiftdown (heap, size, 1); return node; } static RoutingNodePtr routing_dequeue (RoutingHeapPtr heap) { /* dequeuing a Node from the heap */ RoutingNodePtr node = dijkstra_remove_min (heap->Nodes, heap->Count); heap->Count -= 1; return node; } static NetworkArcPtr * dijkstra_shortest_path (RoutingNodesPtr e, NetworkNodePtr pfrom, NetworkNodePtr pto, int *ll) { /* identifying the Shortest Path - Dijkstra's algorithm */ int from; int to; int i; int k; RoutingNodePtr n; RoutingNodePtr p_to; NetworkArcPtr p_link; int cnt; NetworkArcPtr *result; RoutingHeapPtr heap; /* setting From/To */ from = pfrom->InternalIndex; to = pto->InternalIndex; /* initializing the heap */ heap = routing_heap_init (e->DimLink); /* initializing the graph */ for (i = 0; i < e->Dim; i++) { n = e->Nodes + i; n->PreviousNode = NULL; n->Arc = NULL; n->Inspected = 0; n->Distance = DBL_MAX; } /* queuing the From node into the heap */ e->Nodes[from].Distance = 0.0; dijkstra_enqueue (heap, e->Nodes + from); while (heap->Count > 0) { /* Dijsktra loop */ n = routing_dequeue (heap); if (n->Id == to) { /* destination reached */ break; } n->Inspected = 1; for (i = 0; i < n->DimTo; i++) { p_to = *(n->To + i); p_link = *(n->Link + i); if (p_to->Inspected == 0) { if (p_to->Distance == DBL_MAX) { /* queuing a new node into the heap */ p_to->Distance = n->Distance + p_link->Cost; p_to->PreviousNode = n; p_to->Arc = p_link; dijkstra_enqueue (heap, p_to); } else if (p_to->Distance > n->Distance + p_link->Cost) { /* updating an already inserted node */ p_to->Distance = n->Distance + p_link->Cost; p_to->PreviousNode = n; p_to->Arc = p_link; } } } } routing_heap_free (heap); cnt = 0; n = e->Nodes + to; while (n->PreviousNode != NULL) { /* counting how many Arcs are into the Shortest Path solution */ cnt++; n = n->PreviousNode; } /* allocating the solution */ result = malloc (sizeof (NetworkArcPtr) * cnt); k = cnt - 1; n = e->Nodes + to; while (n->PreviousNode != NULL) { /* inserting an Arc into the solution */ result[k] = n->Arc; n = n->PreviousNode; k--; } *ll = cnt; return (result); } /* END of Luigi Costalli Dijkstra Shortest Path implementation */ static RoutingNodePtr * dijkstra_range_analysis (RoutingNodesPtr e, NetworkNodePtr pfrom, double max_cost, int *ll) { /* identifying all Nodes within a given Cost range - Dijkstra's algorithm */ int from; int i; RoutingNodePtr p_to; RoutingNodePtr n; NetworkArcPtr p_link; int cnt; RoutingNodePtr *result; RoutingHeapPtr heap; /* setting From */ from = pfrom->InternalIndex; /* initializing the heap */ heap = routing_heap_init (e->DimLink); /* initializing the graph */ for (i = 0; i < e->Dim; i++) { n = e->Nodes + i; n->PreviousNode = NULL; n->Arc = NULL; n->Inspected = 0; n->Distance = DBL_MAX; } /* queuing the From node into the heap */ e->Nodes[from].Distance = 0.0; dijkstra_enqueue (heap, e->Nodes + from); while (heap->Count > 0) { /* Dijsktra loop */ n = routing_dequeue (heap); n->Inspected = 1; for (i = 0; i < n->DimTo; i++) { p_to = *(n->To + i); p_link = *(n->Link + i); if (p_to->Inspected == 0) { if (p_to->Distance == DBL_MAX) { /* queuing a new node into the heap */ if (n->Distance + p_link->Cost <= max_cost) { p_to->Distance = n->Distance + p_link->Cost; p_to->PreviousNode = n; p_to->Arc = p_link; dijkstra_enqueue (heap, p_to); } } else if (p_to->Distance > n->Distance + p_link->Cost) { /* updating an already inserted node */ p_to->Distance = n->Distance + p_link->Cost; p_to->PreviousNode = n; p_to->Arc = p_link; } } } } routing_heap_free (heap); cnt = 0; for (i = 0; i < e->Dim; i++) { /* counting how many traversed Nodes */ n = e->Nodes + i; if (n->Inspected) cnt++; } /* allocating the solution */ result = malloc (sizeof (NetworkNodePtr) * cnt); cnt = 0; for (i = 0; i < e->Dim; i++) { /* populating the resultset */ n = e->Nodes + i; if (n->Inspected) result[cnt++] = n; } *ll = cnt; return (result); } /* / / implementation of the A* Shortest Path algorithm / */ static void astar_insert (RoutingNodePtr node, HeapNodePtr heap, int size) { /* inserting a new Node and rearranging the heap */ int i; HeapNode tmp; i = size + 1; heap[i].Node = node; heap[i].Distance = node->HeuristicDistance; if (i / 2 < 1) return; while (heap[i].Distance < heap[i / 2].Distance) { tmp = heap[i]; heap[i] = heap[i / 2]; heap[i / 2] = tmp; i /= 2; if (i / 2 < 1) break; } } static void astar_enqueue (RoutingHeapPtr heap, RoutingNodePtr node) { /* enqueuing a Node into the heap */ astar_insert (node, heap->Nodes, heap->Count); heap->Count += 1; } static double astar_heuristic_distance (NetworkNodePtr n1, NetworkNodePtr n2, double coeff) { /* computing the euclidean distance intercurring between two nodes */ double dx = n1->CoordX - n2->CoordX; double dy = n1->CoordY - n2->CoordY; double dist = sqrt ((dx * dx) + (dy * dy)) * coeff; return dist; } static NetworkArcPtr * astar_shortest_path (RoutingNodesPtr e, NetworkNodePtr nodes, NetworkNodePtr pfrom, NetworkNodePtr pto, double heuristic_coeff, int *ll) { /* identifying the Shortest Path - A* algorithm */ int from; int to; int i; int k; RoutingNodePtr pAux; RoutingNodePtr n; RoutingNodePtr p_to; NetworkNodePtr pOrg; NetworkNodePtr pDest; NetworkArcPtr p_link; int cnt; NetworkArcPtr *result; RoutingHeapPtr heap; /* setting From/To */ from = pfrom->InternalIndex; to = pto->InternalIndex; pAux = e->Nodes + from; pOrg = nodes + pAux->Id; pAux = e->Nodes + to; pDest = nodes + pAux->Id; /* initializing the heap */ heap = routing_heap_init (e->DimLink); /* initializing the graph */ for (i = 0; i < e->Dim; i++) { n = e->Nodes + i; n->PreviousNode = NULL; n->Arc = NULL; n->Inspected = 0; n->Distance = DBL_MAX; n->HeuristicDistance = DBL_MAX; } /* queuing the From node into the heap */ e->Nodes[from].Distance = 0.0; e->Nodes[from].HeuristicDistance = astar_heuristic_distance (pOrg, pDest, heuristic_coeff); astar_enqueue (heap, e->Nodes + from); while (heap->Count > 0) { /* A* loop */ n = routing_dequeue (heap); if (n->Id == to) { /* destination reached */ break; } n->Inspected = 1; for (i = 0; i < n->DimTo; i++) { p_to = *(n->To + i); p_link = *(n->Link + i); if (p_to->Inspected == 0) { if (p_to->Distance == DBL_MAX) { /* queuing a new node into the heap */ p_to->Distance = n->Distance + p_link->Cost; pOrg = nodes + p_to->Id; p_to->HeuristicDistance = p_to->Distance + astar_heuristic_distance (pOrg, pDest, heuristic_coeff); p_to->PreviousNode = n; p_to->Arc = p_link; astar_enqueue (heap, p_to); } else if (p_to->Distance > n->Distance + p_link->Cost) { /* updating an already inserted node */ p_to->Distance = n->Distance + p_link->Cost; pOrg = nodes + p_to->Id; p_to->HeuristicDistance = p_to->Distance + astar_heuristic_distance (pOrg, pDest, heuristic_coeff); p_to->PreviousNode = n; p_to->Arc = p_link; } } } } routing_heap_free (heap); cnt = 0; n = e->Nodes + to; while (n->PreviousNode != NULL) { /* counting how many Arcs are into the Shortest Path solution */ cnt++; n = n->PreviousNode; } /* allocating the solution */ result = malloc (sizeof (NetworkArcPtr) * cnt); k = cnt - 1; n = e->Nodes + to; while (n->PreviousNode != NULL) { /* inserting an Arc into the solution */ result[k] = n->Arc; n = n->PreviousNode; k--; } *ll = cnt; return (result); } /* END of A* Shortest Path implementation */ static int cmp_nodes_code (const void *p1, const void *p2) { /* compares two nodes by CODE [for BSEARCH] */ NetworkNodePtr pN1 = (NetworkNodePtr) p1; NetworkNodePtr pN2 = (NetworkNodePtr) p2; return strcmp (pN1->Code, pN2->Code); } static int cmp_nodes_id (const void *p1, const void *p2) { /* compares two nodes by ID [for BSEARCH] */ NetworkNodePtr pN1 = (NetworkNodePtr) p1; NetworkNodePtr pN2 = (NetworkNodePtr) p2; if (pN1->Id == pN2->Id) return 0; if (pN1->Id > pN2->Id) return 1; return -1; } static NetworkNodePtr find_node_by_code (NetworkPtr graph, const char *code) { /* searching a Node (by Code) into the sorted list */ NetworkNodePtr ret; NetworkNode pN; pN.Code = (char *) code; ret = bsearch (&pN, graph->Nodes, graph->NumNodes, sizeof (NetworkNode), cmp_nodes_code); return ret; } static NetworkNodePtr find_node_by_id (NetworkPtr graph, const sqlite3_int64 id) { /* searching a Node (by Id) into the sorted list */ NetworkNodePtr ret; NetworkNode pN; pN.Id = id; ret = bsearch (&pN, graph->Nodes, graph->NumNodes, sizeof (NetworkNode), cmp_nodes_id); return ret; } static void delete_solution (SolutionPtr solution) { /* deleting the current solution */ ArcSolutionPtr pA; ArcSolutionPtr pAn; RowSolutionPtr pR; RowSolutionPtr pRn; RowNodeSolutionPtr pN; RowNodeSolutionPtr pNn; if (!solution) return; pA = solution->FirstArc; while (pA) { pAn = pA->Next; if (pA->FromCode) free (pA->FromCode); if (pA->ToCode) free (pA->ToCode); if (pA->Coords) free (pA->Coords); if (pA->Name) free (pA->Name); free (pA); pA = pAn; } pR = solution->First; while (pR) { pRn = pR->Next; if (pR->Name) free (pR->Name); free (pR); pR = pRn; } pN = solution->FirstNode; while (pN) { pNn = pN->Next; free (pN); pN = pNn; } if (solution->Geometry) gaiaFreeGeomColl (solution->Geometry); free (solution); } static void reset_solution (SolutionPtr solution) { /* resetting the current solution */ ArcSolutionPtr pA; ArcSolutionPtr pAn; RowSolutionPtr pR; RowSolutionPtr pRn; RowNodeSolutionPtr pN; RowNodeSolutionPtr pNn; if (!solution) return; pA = solution->FirstArc; while (pA) { pAn = pA->Next; if (pA->FromCode) free (pA->FromCode); if (pA->ToCode) free (pA->ToCode); if (pA->Coords) free (pA->Coords); free (pA); pA = pAn; } pR = solution->First; while (pR) { pRn = pR->Next; if (pR->Name) free (pR->Name); free (pR); pR = pRn; } pN = solution->FirstNode; while (pN) { pNn = pN->Next; free (pN); pN = pNn; } if (solution->Geometry) gaiaFreeGeomColl (solution->Geometry); solution->FirstArc = NULL; solution->LastArc = NULL; solution->From = NULL; solution->To = NULL; solution->MaxCost = 0.0; solution->First = NULL; solution->Last = NULL; solution->CurrentRow = NULL; solution->CurrentNodeRow = NULL; solution->CurrentRowId = 0; solution->TotalCost = 0.0; solution->Geometry = NULL; } static SolutionPtr alloc_solution (void) { /* allocates and initializes the current solution */ SolutionPtr p = malloc (sizeof (Solution)); p->FirstArc = NULL; p->LastArc = NULL; p->From = NULL; p->To = NULL; p->MaxCost = 0.0; p->First = NULL; p->Last = NULL; p->FirstNode = NULL; p->LastNode = NULL; p->CurrentRow = NULL; p->CurrentNodeRow = NULL; p->CurrentRowId = 0; p->TotalCost = 0.0; p->Geometry = NULL; return p; } static void add_arc_to_solution (SolutionPtr solution, NetworkArcPtr arc) { /* inserts an Arc into the Shortest Path solution */ RowSolutionPtr p = malloc (sizeof (RowSolution)); p->Arc = arc; p->Name = NULL; p->Next = NULL; solution->TotalCost += arc->Cost; if (!(solution->First)) solution->First = p; if (solution->Last) solution->Last->Next = p; solution->Last = p; } static void add_node_to_solution (SolutionPtr solution, RoutingNodePtr node, int srid) { /* inserts a Node into the "within Cost range" solution */ RowNodeSolutionPtr p = malloc (sizeof (RowNodeSolution)); p->Node = node->Node; p->Cost = node->Distance; p->Srid = srid; p->Next = NULL; if (!(solution->FirstNode)) solution->FirstNode = p; if (solution->LastNode) solution->LastNode->Next = p; solution->LastNode = p; } static void set_arc_name_into_solution (SolutionPtr solution, sqlite3_int64 arc_id, const char *name) { /* sets the Name identifyin an Arc into the Solution */ RowSolutionPtr row = solution->First; while (row != NULL) { if (row->Arc->ArcRowid == arc_id) { int len = strlen (name); if (row->Name != NULL) free (row->Name); row->Name = malloc (len + 1); strcpy (row->Name, name); return; } row = row->Next; } } static void add_arc_geometry_to_solution (SolutionPtr solution, sqlite3_int64 arc_id, const char *from_code, const char *to_code, sqlite3_int64 from_id, sqlite3_int64 to_id, int points, double *coords, int srid, const char *name) { /* inserts an Arc Geometry into the Shortest Path solution */ int len; ArcSolutionPtr p = malloc (sizeof (ArcSolution)); p->ArcRowid = arc_id; p->FromCode = NULL; len = strlen (from_code); if (len > 0) { p->FromCode = malloc (len + 1); strcpy (p->FromCode, from_code); } p->ToCode = NULL; len = strlen (to_code); if (len > 0) { p->ToCode = malloc (len + 1); strcpy (p->ToCode, to_code); } p->FromId = from_id; p->ToId = to_id; p->Points = points; p->Coords = coords; p->Srid = srid; if (name == NULL) p->Name = NULL; else { len = strlen (name); p->Name = malloc (len + 1); strcpy (p->Name, name); } p->Next = NULL; if (!(solution->FirstArc)) solution->FirstArc = p; if (solution->LastArc) solution->LastArc->Next = p; solution->LastArc = p; } static void build_solution (sqlite3 * handle, NetworkPtr graph, SolutionPtr solution, NetworkArcPtr * shortest_path, int cnt) { /* formatting the Shortest Path solution */ int i; char *sql; int err; int error = 0; int ret; sqlite3_int64 arc_id; const unsigned char *blob; int size; sqlite3_int64 from_id; sqlite3_int64 to_id; char *from_code; char *to_code; char *name; int tbd; int ind; int base = 0; int block = 128; int how_many; sqlite3_stmt *stmt; char *xfrom; char *xto; char *xgeom; char *xname; char *xtable; gaiaOutBuffer sql_statement; if (cnt > 0) { /* building the solution */ for (i = 0; i < cnt; i++) { add_arc_to_solution (solution, shortest_path[i]); } } if (graph->GeometryColumn == NULL && graph->NameColumn == NULL) { /* completely skipping Geometry */ return; } tbd = cnt; while (tbd > 0) { /* requesting max 128 arcs at each time */ if (tbd < block) how_many = tbd; else how_many = block; /* preparing the Geometry representing this solution [reading arcs] */ gaiaOutBufferInitialize (&sql_statement); if (graph->NameColumn) { /* a Name column is defined */ if (graph->GeometryColumn == NULL) { xfrom = gaiaDoubleQuotedSql (graph->FromColumn); xto = gaiaDoubleQuotedSql (graph->ToColumn); xname = gaiaDoubleQuotedSql (graph->NameColumn); xtable = gaiaDoubleQuotedSql (graph->TableName); sql = sqlite3_mprintf ("SELECT ROWID, \"%s\", \"%s\", NULL, \"%s\" FROM \"%s\" WHERE ROWID IN (", xfrom, xto, xname, xtable); free (xfrom); free (xto); free (xname); free (xtable); } else { xfrom = gaiaDoubleQuotedSql (graph->FromColumn); xto = gaiaDoubleQuotedSql (graph->ToColumn); xgeom = gaiaDoubleQuotedSql (graph->GeometryColumn); xname = gaiaDoubleQuotedSql (graph->NameColumn); xtable = gaiaDoubleQuotedSql (graph->TableName); sql = sqlite3_mprintf ("SELECT ROWID, \"%s\", \"%s\", \"%s\", \"%s\" FROM \"%s\" WHERE ROWID IN (", xfrom, xto, xgeom, xname, xtable); free (xfrom); free (xto); free (xgeom); free (xname); free (xtable); } gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } else { /* no Name column is defined */ xfrom = gaiaDoubleQuotedSql (graph->FromColumn); xto = gaiaDoubleQuotedSql (graph->ToColumn); xgeom = gaiaDoubleQuotedSql (graph->GeometryColumn); xtable = gaiaDoubleQuotedSql (graph->TableName); sql = sqlite3_mprintf ("SELECT ROWID, \"%s\", \"%s\", \"%s\" FROM \"%s\" WHERE ROWID IN (", xfrom, xto, xgeom, xtable); free (xfrom); free (xto); free (xgeom); free (xtable); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } for (i = 0; i < how_many; i++) { if (i == 0) gaiaAppendToOutBuffer (&sql_statement, "?"); else gaiaAppendToOutBuffer (&sql_statement, ",?"); } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) ret = sqlite3_prepare_v2 (handle, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { error = 1; goto abort; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); ind = 1; for (i = 0; i < cnt; i++) { if (i < base) continue; if (i >= (base + how_many)) break; sqlite3_bind_int64 (stmt, ind, shortest_path[i]->ArcRowid); ind++; } while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { arc_id = -1; from_id = -1; to_id = -1; from_code = NULL; to_code = NULL; blob = NULL; size = 0; name = NULL; err = 0; if (sqlite3_column_type (stmt, 0) == SQLITE_INTEGER) arc_id = sqlite3_column_int64 (stmt, 0); else err = 1; if (graph->NodeCode) { /* nodes are identified by TEXT codes */ if (sqlite3_column_type (stmt, 1) == SQLITE_TEXT) from_code = (char *) sqlite3_column_text (stmt, 1); else err = 1; if (sqlite3_column_type (stmt, 2) == SQLITE_TEXT) to_code = (char *) sqlite3_column_text (stmt, 2); else err = 1; } else { /* nodes are identified by INTEGER ids */ if (sqlite3_column_type (stmt, 1) == SQLITE_INTEGER) from_id = sqlite3_column_int64 (stmt, 1); else err = 1; if (sqlite3_column_type (stmt, 2) == SQLITE_INTEGER) to_id = sqlite3_column_int64 (stmt, 2); else err = 1; } if (graph->GeometryColumn != NULL) { if (sqlite3_column_type (stmt, 3) == SQLITE_BLOB) { blob = (const unsigned char *) sqlite3_column_blob (stmt, 3); size = sqlite3_column_bytes (stmt, 3); } else err = 1; } if (graph->NameColumn) { if (sqlite3_column_type (stmt, 4) == SQLITE_TEXT) name = (char *) sqlite3_column_text (stmt, 4); } if (err) error = 1; else if (graph->GeometryColumn != NULL) { /* saving the Arc geometry into the temporary struct */ gaiaGeomCollPtr geom = gaiaFromSpatiaLiteBlobWkb (blob, size); if (geom) { /* OK, we have fetched a valid Geometry */ if (geom->FirstPoint == NULL && geom->FirstPolygon == NULL && geom->FirstLinestring != NULL && geom->FirstLinestring == geom->LastLinestring) { /* Geometry is LINESTRING as expected */ int iv; int points = geom->FirstLinestring->Points; double *coords = malloc (sizeof (double) * (points * 2)); for (iv = 0; iv < points; iv++) { double x; double y; gaiaGetPoint (geom-> FirstLinestring->Coords, iv, &x, &y); *(coords + ((iv * 2) + 0)) = x; *(coords + ((iv * 2) + 1)) = y; } if (from_code == NULL) from_code = ""; if (to_code == NULL) to_code = ""; add_arc_geometry_to_solution (solution, arc_id, from_code, to_code, from_id, to_id, points, coords, geom->Srid, name); } else error = 1; gaiaFreeGeomColl (geom); } else error = 1; } else if (name != NULL) set_arc_name_into_solution (solution, arc_id, name); } } sqlite3_finalize (stmt); tbd -= how_many; base += how_many; } abort: if (shortest_path) free (shortest_path); if (!error && graph->GeometryColumn != NULL) { /* building the Geometry representing the Shortest Path Solution */ gaiaLinestringPtr ln; int tot_pts = 0; RowSolutionPtr pR; ArcSolutionPtr pA; int srid = -1; if (solution->FirstArc) srid = (solution->FirstArc)->Srid; pR = solution->First; while (pR) { pA = solution->FirstArc; while (pA) { /* computing how many vertices do we need to build the LINESTRING */ if (pR->Arc->ArcRowid == pA->ArcRowid) { if (pR == solution->First) tot_pts += pA->Points; else tot_pts += (pA->Points - 1); if (pA->Srid != srid) srid = -1; } pA = pA->Next; } pR = pR->Next; } /* creating the Shortest Path Geometry - LINESTRING */ ln = gaiaAllocLinestring (tot_pts); solution->Geometry = gaiaAllocGeomColl (); solution->Geometry->Srid = srid; gaiaInsertLinestringInGeomColl (solution->Geometry, ln); tot_pts = 0; pR = solution->First; while (pR) { /* building the LINESTRING */ int skip; if (pR == solution->First) skip = 0; /* for first arc we must copy any vertex */ else skip = 1; /* for subsequent arcs we must skip first vertex [already inserted from previous arc] */ pA = solution->FirstArc; while (pA) { if (pR->Arc->ArcRowid == pA->ArcRowid) { /* copying vertices from correspoinding Arc Geometry */ int ini; int iv; int rev; double x; double y; if (graph->NodeCode) { /* nodes are identified by TEXT codes */ if (strcmp (pR->Arc->NodeFrom->Code, pA->ToCode) == 0) rev = 1; else rev = 0; } else { /* nodes are identified by INTEGER ids */ if (pR->Arc->NodeFrom->Id == pA->ToId) rev = 1; else rev = 0; } if (rev) { /* copying Arc vertices in reverse order */ if (skip) ini = pA->Points - 2; else ini = pA->Points - 1; for (iv = ini; iv >= 0; iv--) { x = *(pA->Coords + ((iv * 2) + 0)); y = *(pA->Coords + ((iv * 2) + 1)); gaiaSetPoint (ln->Coords, tot_pts, x, y); tot_pts++; } } else { /* copying Arc vertices in normal order */ if (skip) ini = 1; else ini = 0; for (iv = ini; iv < pA->Points; iv++) { x = *(pA->Coords + ((iv * 2) + 0)); y = *(pA->Coords + ((iv * 2) + 1)); gaiaSetPoint (ln->Coords, tot_pts, x, y); tot_pts++; } } if (pA->Name) { int len = strlen (pA->Name); pR->Name = malloc (len + 1); strcpy (pR->Name, pA->Name); } break; } pA = pA->Next; } pR = pR->Next; } } } static int find_srid (sqlite3 * handle, NetworkPtr graph) { /* attempting to retrieve the appropriate Srid */ sqlite3_stmt *stmt; int ret; int srid = VNET_INVALID_SRID; char *sql; if (graph->GeometryColumn == NULL) return srid; sql = sqlite3_mprintf ("SELECT srid FROM geometry_columns WHERE " "Lower(f_table_name) = Lower(%Q) AND Lower(f_geometry_column) = Lower(%Q)", graph->TableName, graph->GeometryColumn); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) return srid; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) srid = sqlite3_column_int (stmt, 0); } sqlite3_finalize (stmt); return srid; } static void build_range_solution (SolutionPtr solution, RoutingNodePtr * range_nodes, int cnt, int srid) { /* formatting the "within Cost range" solution */ int i; if (cnt > 0) { /* building the solution */ for (i = 0; i < cnt; i++) { add_node_to_solution (solution, range_nodes[i], srid); } } if (range_nodes) free (range_nodes); } static void dijkstra_solve (sqlite3 * handle, NetworkPtr graph, RoutingNodesPtr routing, SolutionPtr solution) { /* computing a Dijkstra Shortest Path solution */ int cnt; NetworkArcPtr *shortest_path = dijkstra_shortest_path (routing, solution->From, solution->To, &cnt); build_solution (handle, graph, solution, shortest_path, cnt); } static void astar_solve (sqlite3 * handle, NetworkPtr graph, RoutingNodesPtr routing, SolutionPtr solution) { /* computing an A* Shortest Path solution */ int cnt; NetworkArcPtr *shortest_path = astar_shortest_path (routing, graph->Nodes, solution->From, solution->To, graph->AStarHeuristicCoeff, &cnt); build_solution (handle, graph, solution, shortest_path, cnt); } static void dijkstra_within_cost_range (RoutingNodesPtr routing, SolutionPtr solution, int srid) { /* computing a Dijkstra "within cost range" solution */ int cnt; RoutingNodePtr *range_nodes = dijkstra_range_analysis (routing, solution->From, solution->MaxCost, &cnt); build_range_solution (solution, range_nodes, cnt, srid); } static void network_free (NetworkPtr p) { /* memory cleanup; freeing any allocation for the network struct */ NetworkNodePtr pN; int i; if (!p) return; for (i = 0; i < p->NumNodes; i++) { pN = p->Nodes + i; if (pN->Code) free (pN->Code); if (pN->Arcs) free (pN->Arcs); } if (p->Nodes) free (p->Nodes); if (p->TableName) free (p->TableName); if (p->FromColumn) free (p->FromColumn); if (p->ToColumn) free (p->ToColumn); if (p->GeometryColumn) free (p->GeometryColumn); if (p->NameColumn) free (p->NameColumn); free (p); } static NetworkPtr network_init (const unsigned char *blob, int size) { /* parsing the HEADER block */ NetworkPtr graph; int net64; int aStar = 0; int nodes; int node_code; int max_code_length; int endian_arch = gaiaEndianArch (); const char *table; const char *from; const char *to; const char *geom; const char *name = NULL; double a_star_coeff = 1.0; int len; const unsigned char *ptr; if (size < 9) return NULL; if (*(blob + 0) == GAIA_NET_START) /* signature - legacy format using 32bit ints */ net64 = 0; else if (*(blob + 0) == GAIA_NET64_START) /* signature - format using 64bit ints */ net64 = 1; else if (*(blob + 0) == GAIA_NET64_A_STAR_START) /* signature - format using 64bit ints AND supporting A* */ { net64 = 1; aStar = 1; } else return NULL; if (*(blob + 1) != GAIA_NET_HEADER) /* signature */ return NULL; nodes = gaiaImport32 (blob + 2, 1, endian_arch); /* # nodes */ if (nodes <= 0) return NULL; if (*(blob + 6) == GAIA_NET_CODE) /* Nodes identified by a TEXT code */ node_code = 1; else if (*(blob + 6) == GAIA_NET_ID) /* Nodes indentified by an INTEGER id */ node_code = 0; else return NULL; max_code_length = *(blob + 7); /* Max TEXT Code length */ if (*(blob + 8) != GAIA_NET_TABLE) /* signature for TABLE NAME */ return NULL; ptr = blob + 9; len = gaiaImport16 (ptr, 1, endian_arch); /* TABLE NAME is varlen */ ptr += 2; table = (char *) ptr; ptr += len; if (*ptr != GAIA_NET_FROM) /* signature for FromNode COLUMN */ return NULL; ptr++; len = gaiaImport16 (ptr, 1, endian_arch); /* FromNode COLUMN is varlen */ ptr += 2; from = (char *) ptr; ptr += len; if (*ptr != GAIA_NET_TO) /* signature for ToNode COLUMN */ return NULL; ptr++; len = gaiaImport16 (ptr, 1, endian_arch); /* ToNode COLUMN is varlen */ ptr += 2; to = (char *) ptr; ptr += len; if (*ptr != GAIA_NET_GEOM) /* signature for Geometry COLUMN */ return NULL; ptr++; len = gaiaImport16 (ptr, 1, endian_arch); /* Geometry COLUMN is varlen */ ptr += 2; geom = (char *) ptr; ptr += len; if (net64) { if (*ptr != GAIA_NET_NAME) /* signature for Name COLUMN - may be empty */ return NULL; ptr++; len = gaiaImport16 (ptr, 1, endian_arch); /* Name COLUMN is varlen */ ptr += 2; name = (char *) ptr; ptr += len; } if (net64 && aStar) { if (*ptr != GAIA_NET_A_STAR_COEFF) /* signature for A* Heuristic Coeff */ return NULL; ptr++; a_star_coeff = gaiaImport64 (ptr, 1, endian_arch); ptr += 8; } if (*ptr != GAIA_NET_END) /* signature */ return NULL; graph = malloc (sizeof (Network)); graph->Net64 = net64; graph->AStar = aStar; graph->EndianArch = endian_arch; graph->CurrentIndex = 0; graph->NodeCode = node_code; graph->MaxCodeLength = max_code_length; graph->NumNodes = nodes; graph->Nodes = malloc (sizeof (NetworkNode) * nodes); len = strlen (table); graph->TableName = malloc (len + 1); strcpy (graph->TableName, table); len = strlen (from); graph->FromColumn = malloc (len + 1); strcpy (graph->FromColumn, from); len = strlen (to); graph->ToColumn = malloc (len + 1); strcpy (graph->ToColumn, to); len = strlen (geom); if (len <= 1) graph->GeometryColumn = NULL; else { graph->GeometryColumn = malloc (len + 1); strcpy (graph->GeometryColumn, geom); } if (!net64) { /* Name column is not supported */ graph->NameColumn = NULL; } else { len = strlen (name); if (len <= 1) graph->NameColumn = NULL; else { graph->NameColumn = malloc (len + 1); strcpy (graph->NameColumn, name); } } graph->AStarHeuristicCoeff = a_star_coeff; return graph; } static int network_block (NetworkPtr graph, const unsigned char *blob, int size) { /* parsing a NETWORK Block */ const unsigned char *in = blob; int nodes; int i; int ia; int index; char code[256]; double x; double y; sqlite3_int64 nodeId = -1; int arcs; NetworkNodePtr pN; NetworkArcPtr pA; int len; sqlite3_int64 arcId; int nodeToIdx; double cost; if (size < 3) goto error; if (*in++ != GAIA_NET_BLOCK) /* signature */ goto error; nodes = gaiaImport16 (in, 1, graph->EndianArch); /* # Nodes */ in += 2; for (i = 0; i < nodes; i++) { /* parsing each node */ if ((size - (in - blob)) < 5) goto error; if (*in++ != GAIA_NET_NODE) /* signature */ goto error; index = gaiaImport32 (in, 1, graph->EndianArch); /* node internal index */ in += 4; if (index < 0 || index >= graph->NumNodes) goto error; if (graph->NodeCode) { /* Nodes are identified by a TEXT Code */ if ((size - (in - blob)) < graph->MaxCodeLength) goto error; memcpy (code, in, graph->MaxCodeLength); in += graph->MaxCodeLength; } else { /* Nodes are identified by an INTEGER Id */ if (graph->Net64) { if ((size - (in - blob)) < 8) goto error; nodeId = gaiaImportI64 (in, 1, graph->EndianArch); /* the Node ID: 64bit */ in += 8; } else { if ((size - (in - blob)) < 4) goto error; nodeId = gaiaImport32 (in, 1, graph->EndianArch); /* the Node ID: 32bit */ in += 4; } } if (graph->AStar) { /* fetching node's X,Y coords */ if ((size - (in - blob)) < 8) goto error; x = gaiaImport64 (in, 1, graph->EndianArch); /* X coord */ in += 8; if ((size - (in - blob)) < 8) goto error; y = gaiaImport64 (in, 1, graph->EndianArch); /* Y coord */ in += 8; } else { x = DBL_MAX; y = DBL_MAX; } if ((size - (in - blob)) < 2) goto error; arcs = gaiaImport16 (in, 1, graph->EndianArch); /* # Arcs */ in += 2; if (arcs < 0) goto error; /* initializing the Node */ pN = graph->Nodes + index; pN->InternalIndex = index; if (graph->NodeCode) { /* Nodes are identified by a TEXT Code */ pN->Id = -1; len = strlen (code); pN->Code = malloc (len + 1); strcpy (pN->Code, code); } else { /* Nodes are identified by an INTEGER Id */ pN->Id = nodeId; pN->Code = NULL; } pN->CoordX = x; pN->CoordY = y; pN->NumArcs = arcs; if (arcs) { /* parsing the Arcs */ pN->Arcs = malloc (sizeof (NetworkArc) * arcs); for (ia = 0; ia < arcs; ia++) { /* parsing each Arc */ if (graph->Net64) { if ((size - (in - blob)) < 22) goto error; } else { if ((size - (in - blob)) < 18) goto error; } if (*in++ != GAIA_NET_ARC) /* signature */ goto error; if (graph->Net64) { arcId = gaiaImportI64 (in, 1, graph->EndianArch); /* # Arc ROWID: 64bit */ in += 8; } else { arcId = gaiaImport32 (in, 1, graph->EndianArch); /* # Arc ROWID: 32bit */ in += 4; } nodeToIdx = gaiaImport32 (in, 1, graph->EndianArch); /* # NodeTo internal index */ in += 4; cost = gaiaImport64 (in, 1, graph->EndianArch); /* # Cost */ in += 8; if (*in++ != GAIA_NET_END) /* signature */ goto error; pA = pN->Arcs + ia; /* initializing the Arc */ if (nodeToIdx < 0 || nodeToIdx >= graph->NumNodes) goto error; pA->NodeFrom = pN; pA->NodeTo = graph->Nodes + nodeToIdx; pA->ArcRowid = arcId; pA->Cost = cost; } } else pN->Arcs = NULL; if ((size - (in - blob)) < 1) goto error; if (*in++ != GAIA_NET_END) /* signature */ goto error; } return 1; error: return 0; } static NetworkPtr load_network (sqlite3 * handle, const char *table) { /* loads the NETWORK struct */ NetworkPtr graph = NULL; sqlite3_stmt *stmt; char *sql; int ret; int header = 1; const unsigned char *blob; int size; char *xname; xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("SELECT NetworkData FROM \"%s\" ORDER BY Id", xname); free (xname); ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto abort; while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_BLOB) { blob = (const unsigned char *) sqlite3_column_blob (stmt, 0); size = sqlite3_column_bytes (stmt, 0); if (header) { /* parsing the HEADER block */ graph = network_init (blob, size); header = 0; } else { /* parsing ordinary Blocks */ if (!graph) { sqlite3_finalize (stmt); goto abort; } if (!network_block (graph, blob, size)) { sqlite3_finalize (stmt); goto abort; } } } else { sqlite3_finalize (stmt); goto abort; } } else { sqlite3_finalize (stmt); goto abort; } } sqlite3_finalize (stmt); return graph; abort: network_free (graph); return NULL; } static int vnet_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table connected to some shapefile */ VirtualNetworkPtr p_vt; int err; int ret; int i; int n_rows; int n_columns; char *vtable = NULL; char *table = NULL; const char *col_name = NULL; char **results; char *err_msg = NULL; char *sql; int ok_id; int ok_data; char *xname; NetworkPtr graph = NULL; if (pAux) pAux = pAux; /* unused arg warning suppression */ /* checking for table_name and geo_column_name */ if (argc == 4) { vtable = gaiaDequotedSql (argv[2]); table = gaiaDequotedSql (argv[3]); } else { *pzErr = sqlite3_mprintf ("[VirtualNetwork module] CREATE VIRTUAL: illegal arg list {NETWORK-DATAtable}\n"); goto error; } /* retrieving the base table columns */ err = 0; ok_id = 0; ok_data = 0; xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (db, sql, &results, &n_rows, &n_columns, &err_msg); sqlite3_free (sql); if (ret != SQLITE_OK) { err = 1; goto illegal; } if (n_rows > 1) { for (i = 1; i <= n_rows; i++) { col_name = results[(i * n_columns) + 1]; if (strcasecmp (col_name, "id") == 0) ok_id = 1; if (strcasecmp (col_name, "networkdata") == 0) ok_data = 1; } sqlite3_free_table (results); if (!ok_id) err = 1; if (!ok_data) err = 1; } else err = 1; illegal: if (err) { /* something is going the wrong way */ *pzErr = sqlite3_mprintf ("[VirtualNetwork module] cannot build a valid NETWORK\n"); return SQLITE_ERROR; } p_vt = (VirtualNetworkPtr) sqlite3_malloc (sizeof (VirtualNetwork)); if (!p_vt) return SQLITE_NOMEM; graph = load_network (db, table); if (!graph) { /* something is going the wrong way */ *pzErr = sqlite3_mprintf ("[VirtualNetwork module] cannot build a valid NETWORK\n"); goto error; } p_vt->db = db; p_vt->graph = graph; p_vt->currentAlgorithm = VNET_DIJKSTRA_ALGORITHM; p_vt->routing = NULL; p_vt->pModule = &my_net_module; p_vt->nRef = 0; p_vt->zErrMsg = NULL; /* preparing the COLUMNs for this VIRTUAL TABLE */ xname = gaiaDoubleQuotedSql (vtable); if (p_vt->graph->NodeCode) { if (p_vt->graph->NameColumn) { sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (Algorithm TEXT, " "ArcRowid INTEGER, NodeFrom TEXT, NodeTo TEXT," " Cost DOUBLE, Geometry BLOB, Name TEXT)", xname); } else { sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (Algorithm TEXT, " "ArcRowid INTEGER, NodeFrom TEXT, NodeTo TEXT," " Cost DOUBLE, Geometry BLOB)", xname); } } else { if (p_vt->graph->NameColumn) { sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (Algorithm TEXT, " "ArcRowid INTEGER, NodeFrom INTEGER, NodeTo INTEGER," " Cost DOUBLE, Geometry BLOB, Name TEXT)", xname); } else { sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (Algorithm TEXT, " "ArcRowid INTEGER, NodeFrom INTEGER, NodeTo INTEGER," " Cost DOUBLE, Geometry BLOB)", xname); } } free (xname); if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) { *pzErr = sqlite3_mprintf ("[VirtualNetwork module] CREATE VIRTUAL: invalid SQL statement \"%s\"", sql); sqlite3_free (sql); goto error; } sqlite3_free (sql); *ppVTab = (sqlite3_vtab *) p_vt; p_vt->routing = routing_init (p_vt->graph); free (table); free (vtable); return SQLITE_OK; error: if (table) free (table); if (vtable) free (vtable); return SQLITE_ERROR; } static int vnet_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table to some shapefile - simply aliases vshp_create() */ return vnet_create (db, pAux, argc, argv, ppVTab, pzErr); } static int vnet_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIdxInfo) { /* best index selection */ int i; int errors = 0; int err = 1; int from = 0; int to = 0; int cost = 0; int i_from = -1; int i_to = -1; int i_cost = -1; if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ for (i = 0; i < pIdxInfo->nConstraint; i++) { /* verifying the constraints */ struct sqlite3_index_constraint *p = &(pIdxInfo->aConstraint[i]); if (p->usable) { if (p->iColumn == 2 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) { from++; i_from = i; } else if (p->iColumn == 3 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) { to++; i_to = i; } else if (p->iColumn == 4 && p->op == SQLITE_INDEX_CONSTRAINT_LE) { cost++; i_cost = i; } else errors++; } } if (from == 1 && to == 1 && errors == 0) { /* this one is a valid Shortest Path query */ if (i_from < i_to) pIdxInfo->idxNum = 1; /* first arg is FROM */ else pIdxInfo->idxNum = 2; /* first arg is TO */ pIdxInfo->estimatedCost = 1.0; for (i = 0; i < pIdxInfo->nConstraint; i++) { if (pIdxInfo->aConstraint[i].usable) { pIdxInfo->aConstraintUsage[i].argvIndex = i + 1; pIdxInfo->aConstraintUsage[i].omit = 1; } } err = 0; } if (from == 1 && cost == 1 && errors == 0) { /* this one is a valid "within cost" query */ if (i_from < i_cost) pIdxInfo->idxNum = 3; /* first arg is FROM */ else pIdxInfo->idxNum = 4; /* first arg is COST */ pIdxInfo->estimatedCost = 1.0; for (i = 0; i < pIdxInfo->nConstraint; i++) { if (pIdxInfo->aConstraint[i].usable) { pIdxInfo->aConstraintUsage[i].argvIndex = i + 1; pIdxInfo->aConstraintUsage[i].omit = 1; } } err = 0; } if (err) { /* illegal query */ pIdxInfo->idxNum = 0; } return SQLITE_OK; } static int vnet_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualNetworkPtr p_vt = (VirtualNetworkPtr) pVTab; if (p_vt->routing) routing_free (p_vt->routing); if (p_vt->graph) network_free (p_vt->graph); sqlite3_free (p_vt); return SQLITE_OK; } static int vnet_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases vshp_disconnect() */ return vnet_disconnect (pVTab); } static void vnet_read_row (VirtualNetworkCursorPtr cursor) { /* trying to read a "row" from Shortest Path solution */ if (cursor->solution->Mode == VNET_RANGE_SOLUTION) { if (cursor->solution->CurrentNodeRow == NULL) cursor->eof = 1; else cursor->eof = 0; } else { if (cursor->solution->CurrentRow == NULL) cursor->eof = 1; else cursor->eof = 0; } return; } static int vnet_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ VirtualNetworkCursorPtr cursor = (VirtualNetworkCursorPtr) sqlite3_malloc (sizeof (VirtualNetworkCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->pVtab = (VirtualNetworkPtr) pVTab; cursor->solution = alloc_solution (); cursor->eof = 0; *ppCursor = (sqlite3_vtab_cursor *) cursor; return SQLITE_OK; } static int vnet_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ VirtualNetworkCursorPtr cursor = (VirtualNetworkCursorPtr) pCursor; delete_solution (cursor->solution); sqlite3_free (pCursor); return SQLITE_OK; } static int vnet_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ int node_code = 0; VirtualNetworkCursorPtr cursor = (VirtualNetworkCursorPtr) pCursor; VirtualNetworkPtr net = (VirtualNetworkPtr) cursor->pVtab; if (idxStr) idxStr = idxStr; /* unused arg warning suppression */ node_code = net->graph->NodeCode; reset_solution (cursor->solution); cursor->eof = 1; if (idxNum == 1 && argc == 2) { /* retrieving the Shortest Path From/To params */ if (node_code) { /* Nodes are identified by TEXT Codes */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) cursor->solution->From = find_node_by_code (net->graph, (char *) sqlite3_value_text (argv[0])); if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) cursor->solution->To = find_node_by_code (net->graph, (char *) sqlite3_value_text (argv[1])); } else { /* Nodes are identified by INT Ids */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) cursor->solution->From = find_node_by_id (net->graph, sqlite3_value_int (argv[0])); if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) cursor->solution->To = find_node_by_id (net->graph, sqlite3_value_int (argv[1])); } } if (idxNum == 2 && argc == 2) { /* retrieving the Shortest Path To/From params */ if (node_code) { /* Nodes are identified by TEXT Codes */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) cursor->solution->To = find_node_by_code (net->graph, (char *) sqlite3_value_text (argv[0])); if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) cursor->solution->From = find_node_by_code (net->graph, (char *) sqlite3_value_text (argv[1])); } else { /* Nodes are identified by INT Ids */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) cursor->solution->To = find_node_by_id (net->graph, sqlite3_value_int (argv[0])); if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) cursor->solution->From = find_node_by_id (net->graph, sqlite3_value_int (argv[1])); } } if (idxNum == 3 && argc == 2) { /* retrieving the From and Cost param */ if (node_code) { /* Nodes are identified by TEXT Codes */ if (sqlite3_value_type (argv[0]) == SQLITE_TEXT) cursor->solution->From = find_node_by_code (net->graph, (char *) sqlite3_value_text (argv[0])); } else { /* Nodes are identified by INT Ids */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) cursor->solution->From = find_node_by_id (net->graph, sqlite3_value_int (argv[0])); } if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) { int cost = sqlite3_value_int (argv[1]); cursor->solution->MaxCost = cost; } else if (sqlite3_value_type (argv[1]) == SQLITE_FLOAT) cursor->solution->MaxCost = sqlite3_value_double (argv[1]); } if (idxNum == 4 && argc == 2) { /* retrieving the From and Cost param */ if (node_code) { /* Nodes are identified by TEXT Codes */ if (sqlite3_value_type (argv[1]) == SQLITE_TEXT) cursor->solution->From = find_node_by_code (net->graph, (char *) sqlite3_value_text (argv[1])); } else { /* Nodes are identified by INT Ids */ if (sqlite3_value_type (argv[1]) == SQLITE_INTEGER) cursor->solution->From = find_node_by_id (net->graph, sqlite3_value_int (argv[1])); } if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { int cost = sqlite3_value_int (argv[0]); cursor->solution->MaxCost = cost; } else if (sqlite3_value_type (argv[0]) == SQLITE_FLOAT) cursor->solution->MaxCost = sqlite3_value_double (argv[0]); } if (cursor->solution->From && cursor->solution->To) { cursor->eof = 0; cursor->solution->Mode = VNET_ROUTING_SOLUTION; if (net->currentAlgorithm == VNET_A_STAR_ALGORITHM) astar_solve (net->db, net->graph, net->routing, cursor->solution); else dijkstra_solve (net->db, net->graph, net->routing, cursor->solution); return SQLITE_OK; } if (cursor->solution->From && cursor->solution->MaxCost > 0.0) { int srid = find_srid (net->db, net->graph); cursor->eof = 0; cursor->solution->Mode = VNET_RANGE_SOLUTION; if (net->currentAlgorithm == VNET_DIJKSTRA_ALGORITHM) { dijkstra_within_cost_range (net->routing, cursor->solution, srid); cursor->solution->CurrentRowId = 0; cursor->solution->CurrentNodeRow = cursor->solution->FirstNode; } return SQLITE_OK; } cursor->eof = 0; cursor->solution->Mode = VNET_ROUTING_SOLUTION; return SQLITE_OK; } static int vnet_next (sqlite3_vtab_cursor * pCursor) { /* fetching a next row from cursor */ VirtualNetworkCursorPtr cursor = (VirtualNetworkCursorPtr) pCursor; if (cursor->solution->Mode == VNET_RANGE_SOLUTION) { cursor->solution->CurrentNodeRow = cursor->solution->CurrentNodeRow->Next; if (!(cursor->solution->CurrentNodeRow)) { cursor->eof = 1; return SQLITE_OK; } } else { if (cursor->solution->CurrentRowId == 0) cursor->solution->CurrentRow = cursor->solution->First; else cursor->solution->CurrentRow = cursor->solution->CurrentRow->Next; if (!(cursor->solution->CurrentRow)) { cursor->eof = 1; return SQLITE_OK; } } (cursor->solution->CurrentRowId)++; vnet_read_row (cursor); return SQLITE_OK; } static int vnet_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualNetworkCursorPtr cursor = (VirtualNetworkCursorPtr) pCursor; return cursor->eof; } static int vnet_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ RowSolutionPtr row; RowNodeSolutionPtr row_node; int node_code = 0; const char *algorithm; VirtualNetworkCursorPtr cursor = (VirtualNetworkCursorPtr) pCursor; VirtualNetworkPtr net = (VirtualNetworkPtr) cursor->pVtab; node_code = net->graph->NodeCode; if (cursor->solution->Mode == VNET_RANGE_SOLUTION) { /* processing "within Cost range" solution */ row_node = cursor->solution->CurrentNodeRow; if (column == 0) { /* the currently used Algorithm */ algorithm = "Dijkstra"; sqlite3_result_text (pContext, algorithm, strlen (algorithm), SQLITE_STATIC); } if (column == 1) { /* the ArcRowId column */ sqlite3_result_null (pContext); } if (column == 2) { /* the NodeFrom column */ if (node_code) sqlite3_result_text (pContext, cursor->solution->From->Code, strlen (cursor->solution->From->Code), SQLITE_STATIC); else sqlite3_result_int64 (pContext, cursor->solution->From->Id); } if (column == 3) { /* the NodeTo column */ if (node_code) sqlite3_result_text (pContext, row_node->Node->Code, strlen (row_node->Node->Code), SQLITE_STATIC); else sqlite3_result_int64 (pContext, row_node->Node->Id); } if (column == 4) { /* the Cost column */ sqlite3_result_double (pContext, row_node->Cost); } if (column == 5) { /* the Geometry column */ if (row_node->Srid == VNET_INVALID_SRID) sqlite3_result_null (pContext); else { int len; unsigned char *p_result = NULL; gaiaGeomCollPtr geom = gaiaAllocGeomColl (); geom->Srid = row_node->Srid; gaiaAddPointToGeomColl (geom, row_node->Node->CoordX, row_node->Node->CoordY); gaiaToSpatiaLiteBlobWkb (geom, &p_result, &len); sqlite3_result_blob (pContext, p_result, len, free); gaiaFreeGeomColl (geom); } } if (column == 6) { /* the [optional] Name column */ sqlite3_result_null (pContext); } } else { /* processing an ordinary Routing (Shortest Path) solution */ if (cursor->solution->CurrentRow == 0) { /* special case: this one is the solution summary */ if (column == 0) { /* the currently used Algorithm */ if (net->currentAlgorithm == VNET_A_STAR_ALGORITHM) algorithm = "A*"; else algorithm = "Dijkstra"; sqlite3_result_text (pContext, algorithm, strlen (algorithm), SQLITE_STATIC); } if (cursor->solution->From == NULL || cursor->solution->To == NULL) { /* empty [uninitialized] solution */ if (column > 0) sqlite3_result_null (pContext); return SQLITE_OK; } if (column == 1) { /* the ArcRowId column */ sqlite3_result_null (pContext); } if (column == 2) { /* the NodeFrom column */ if (node_code) sqlite3_result_text (pContext, cursor->solution->From->Code, strlen (cursor->solution->From-> Code), SQLITE_STATIC); else sqlite3_result_int64 (pContext, cursor->solution->From->Id); } if (column == 3) { /* the NodeTo column */ if (node_code) sqlite3_result_text (pContext, cursor->solution->To->Code, strlen (cursor->solution->To-> Code), SQLITE_STATIC); else sqlite3_result_int64 (pContext, cursor->solution->To->Id); } if (column == 4) { /* the Cost column */ sqlite3_result_double (pContext, cursor->solution->TotalCost); } if (column == 5) { /* the Geometry column */ if (!(cursor->solution->Geometry)) sqlite3_result_null (pContext); else { /* builds the BLOB geometry to be returned */ int len; unsigned char *p_result = NULL; gaiaToSpatiaLiteBlobWkb (cursor->solution->Geometry, &p_result, &len); sqlite3_result_blob (pContext, p_result, len, free); } } if (column == 6) { /* the [optional] Name column */ sqlite3_result_null (pContext); } } else { /* ordinary case: this one is an Arc used by the solution */ row = cursor->solution->CurrentRow; if (column == 0) { /* the currently used Algorithm */ if (net->currentAlgorithm == VNET_A_STAR_ALGORITHM) algorithm = "A*"; else algorithm = "Dijkstra"; sqlite3_result_text (pContext, algorithm, strlen (algorithm), SQLITE_STATIC); } if (column == 1) { /* the ArcRowId column */ sqlite3_result_int64 (pContext, row->Arc->ArcRowid); } if (column == 2) { /* the NodeFrom column */ if (node_code) sqlite3_result_text (pContext, row->Arc->NodeFrom->Code, strlen (row->Arc->NodeFrom-> Code), SQLITE_STATIC); else sqlite3_result_int64 (pContext, row->Arc->NodeFrom->Id); } if (column == 3) { /* the NodeTo column */ if (node_code) sqlite3_result_text (pContext, row->Arc->NodeTo->Code, strlen (row->Arc->NodeTo->Code), SQLITE_STATIC); else sqlite3_result_int64 (pContext, row->Arc->NodeTo->Id); } if (column == 4) { /* the Cost column */ sqlite3_result_double (pContext, row->Arc->Cost); } if (column == 5) { /* the Geometry column */ sqlite3_result_null (pContext); } if (column == 6) { /* the [optional] Name column */ if (row->Name) sqlite3_result_text (pContext, row->Name, strlen (row->Name), SQLITE_STATIC); else sqlite3_result_null (pContext); } } } return SQLITE_OK; } static int vnet_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualNetworkCursorPtr cursor = (VirtualNetworkCursorPtr) pCursor; *pRowid = cursor->solution->CurrentRowId; return SQLITE_OK; } static int vnet_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ VirtualNetworkPtr p_vtab = (VirtualNetworkPtr) pVTab; if (pRowid) pRowid = pRowid; /* unused arg warning suppression */ if (argc == 1) { /* performing a DELETE is forbidden */ return SQLITE_READONLY; } else { if (sqlite3_value_type (argv[0]) == SQLITE_NULL) { /* performing an INSERT is forbidden */ return SQLITE_READONLY; } else { /* performing an UPDATE */ if (argc == 9) { p_vtab->currentAlgorithm = VNET_DIJKSTRA_ALGORITHM; if (sqlite3_value_type (argv[2]) == SQLITE_TEXT) { const unsigned char *algorithm = sqlite3_value_text (argv[2]); if (strcmp ((char *) algorithm, "A*") == 0) p_vtab->currentAlgorithm = VNET_A_STAR_ALGORITHM; if (strcmp ((char *) algorithm, "a*") == 0) p_vtab->currentAlgorithm = VNET_A_STAR_ALGORITHM; } if (p_vtab->graph->AStar == 0) p_vtab->currentAlgorithm = VNET_DIJKSTRA_ALGORITHM; } return SQLITE_OK; } } return SQLITE_READONLY; } static int vnet_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vnet_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vnet_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vnet_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vnet_rename (sqlite3_vtab * pVTab, const char *zNew) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ if (zNew) zNew = zNew; /* unused arg warning suppression */ return SQLITE_ERROR; } static int spliteVirtualNetworkInit (sqlite3 * db) { int rc = SQLITE_OK; my_net_module.iVersion = 1; my_net_module.xCreate = &vnet_create; my_net_module.xConnect = &vnet_connect; my_net_module.xBestIndex = &vnet_best_index; my_net_module.xDisconnect = &vnet_disconnect; my_net_module.xDestroy = &vnet_destroy; my_net_module.xOpen = &vnet_open; my_net_module.xClose = &vnet_close; my_net_module.xFilter = &vnet_filter; my_net_module.xNext = &vnet_next; my_net_module.xEof = &vnet_eof; my_net_module.xColumn = &vnet_column; my_net_module.xRowid = &vnet_rowid; my_net_module.xUpdate = &vnet_update; my_net_module.xBegin = &vnet_begin; my_net_module.xSync = &vnet_sync; my_net_module.xCommit = &vnet_commit; my_net_module.xRollback = &vnet_rollback; my_net_module.xFindFunction = NULL; my_net_module.xRename = &vnet_rename; sqlite3_create_module_v2 (db, "VirtualNetwork", &my_net_module, NULL, 0); return rc; } SPATIALITE_PRIVATE int virtualnetwork_extension_init (void *xdb) { sqlite3 *db = (sqlite3 *) xdb; return spliteVirtualNetworkInit (db); } libspatialite-4.3.0a/src/spatialite/virtualfdo.c0000664000175000017500000016045712544707704016730 00000000000000/* virtualfdo.c -- SQLite3 extension [VIRTUAL TABLE accessing FDO-OGR tables] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include /* constants definining FDO-OGR Geometry formats */ #define FDO_OGR_NONE 0 #define FDO_OGR_WKT 1 #define FDO_OGR_WKB 2 #define FDO_OGR_FGF 3 #define FDO_OGR_SPLITE 4 #ifdef _WIN32 #define strcasecmp _stricmp #define strncasecmp _strnicmp #endif /* not WIN32 */ /* 64 bit integer: portable format for printf() */ #if defined(_WIN32) && !defined(__MINGW32__) #define FRMT64 "%I64d" #else #define FRMT64 "%lld" #endif #if defined(_WIN32) && !defined(__MINGW32__) #define LONG64_MAX _I64_MAX #define LONG64_MIN _I64_MIN #else #define LONG64_MAX 9223372036854775807LL #define LONG64_MIN (-LONG64_MAX + 1) #endif struct sqlite3_module my_fdo_module; typedef struct SqliteValue { /* a multitype storing a column value */ int Type; sqlite3_int64 IntValue; double DoubleValue; char *Text; unsigned char *Blob; int Size; } SqliteValue; typedef SqliteValue *SqliteValuePtr; typedef struct VirtualFDOStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ char *table; /* the real-table name */ int nColumns; /* the # columns into the table */ char **Column; /* the name for each column */ char **Type; /* the type for each column */ int *NotNull; /* NotNull clause for each column */ SqliteValuePtr *Value; /* the current-row value for each column */ int nGeometries; /* # Geometry columns into the table */ char **GeoColumn; /* the name for each Geometry column */ int *Srid; /* the SRID for each Geometry column */ int *GeoType; /* the Type for each Geometry column */ int *Format; /* the Format for each Geometry column */ int *CoordDimensions; /* # Dimensions for each Geometry column */ } VirtualFDO; typedef VirtualFDO *VirtualFDOPtr; typedef struct VirtualFDOCursorStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualFDOPtr pVtab; /* Virtual table of this cursor */ sqlite3_stmt *stmt; sqlite3_int64 current_row; /* the current row ID */ int eof; /* the EOF marker */ } VirtualFDOCursor; typedef VirtualFDOCursor *VirtualFDOCursorPtr; static SqliteValuePtr value_alloc (void) { /* allocates and initialites a Value multitype */ SqliteValuePtr p = malloc (sizeof (SqliteValue)); p->Type = SQLITE_NULL; p->Text = NULL; p->Blob = NULL; return p; } static void value_free (SqliteValuePtr p) { /* freeing a Value multitype */ if (!p) return; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); free (p); } static void value_set_null (SqliteValuePtr p) { /* setting a NULL value to the multitype */ if (!p) return; p->Type = SQLITE_NULL; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Text = NULL; p->Blob = NULL; } static void value_set_int (SqliteValuePtr p, sqlite3_int64 value) { /* setting an INT value to the multitype */ if (!p) return; p->Type = SQLITE_INTEGER; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Text = NULL; p->Blob = NULL; p->IntValue = value; } static void value_set_double (SqliteValuePtr p, double value) { /* setting a DOUBLE value to the multitype */ if (!p) return; p->Type = SQLITE_FLOAT; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Text = NULL; p->Blob = NULL; p->DoubleValue = value; } static void value_set_text (SqliteValuePtr p, const char *value, int size) { /* setting a TEXT value to the multitype */ if (!p) return; p->Type = SQLITE_TEXT; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Blob = NULL; p->Text = malloc (size); memcpy (p->Text, value, size); p->Size = size; } static void value_set_blob (SqliteValuePtr p, const unsigned char *value, int size) { /* setting a BLOB value to the multitype */ if (!p) return; p->Type = SQLITE_BLOB; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Text = NULL; p->Blob = malloc (size); memcpy (p->Blob, value, size); p->Size = size; } static void free_table (VirtualFDOPtr p_vt) { /* memory cleanup; freeing the virtual table struct */ int i; if (!p_vt) return; if (p_vt->table) sqlite3_free (p_vt->table); if (p_vt->Column) { for (i = 0; i < p_vt->nColumns; i++) { if (*(p_vt->Column + i)) sqlite3_free (*(p_vt->Column + i)); } sqlite3_free (p_vt->Column); } if (p_vt->Type) { for (i = 0; i < p_vt->nColumns; i++) { if (*(p_vt->Type + i)) sqlite3_free (*(p_vt->Type + i)); } sqlite3_free (p_vt->Type); } if (p_vt->NotNull) sqlite3_free (p_vt->NotNull); if (p_vt->Value) { for (i = 0; i < p_vt->nColumns; i++) { if (*(p_vt->Value + i)) value_free (*(p_vt->Value + i)); } sqlite3_free (p_vt->Value); } if (p_vt->GeoColumn) { for (i = 0; i < p_vt->nGeometries; i++) { if (*(p_vt->GeoColumn + i)) sqlite3_free (*(p_vt->GeoColumn + i)); } sqlite3_free (p_vt->GeoColumn); } if (p_vt->Srid) sqlite3_free (p_vt->Srid); if (p_vt->GeoType) sqlite3_free (p_vt->GeoType); if (p_vt->Format) sqlite3_free (p_vt->Format); if (p_vt->CoordDimensions) sqlite3_free (p_vt->CoordDimensions); sqlite3_free (p_vt); } static void vfdoOutWkt3D (gaiaOutBufferPtr out_buf, gaiaGeomCollPtr geom) { /* prints the GEOS-WKT-3D representation of current geometry */ int pts = 0; int lns = 0; int pgs = 0; gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; if (!geom) return; point = geom->FirstPoint; while (point) { /* counting how many POINTs are there */ pts++; point = point->Next; } line = geom->FirstLinestring; while (line) { /* counting how many LINESTRINGs are there */ lns++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* counting how many POLYGONs are there */ pgs++; polyg = polyg->Next; } if ((pts + lns + pgs) == 1 && (geom->DeclaredType == GAIA_POINT || geom->DeclaredType == GAIA_LINESTRING || geom->DeclaredType == GAIA_POLYGON)) { /* we have only one elementary geometry */ point = geom->FirstPoint; while (point) { /* processing POINT */ gaiaAppendToOutBuffer (out_buf, "POINT ("); gaiaOutPointZ (out_buf, point); gaiaAppendToOutBuffer (out_buf, ")"); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRING */ gaiaAppendToOutBuffer (out_buf, "LINESTRING ("); gaiaOutLinestringZ (out_buf, line); gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGONZ */ gaiaAppendToOutBuffer (out_buf, "POLYGON ("); gaiaOutPolygonZ (out_buf, polyg); gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } } else { /* we have some kind of complex geometry */ if (pts > 0 && lns == 0 && pgs == 0 && geom->DeclaredType == GAIA_MULTIPOINT) { /* some kind of MULTIPOINT */ gaiaAppendToOutBuffer (out_buf, "MULTIPOINT ("); point = geom->FirstPoint; while (point) { if (point != geom->FirstPoint) gaiaAppendToOutBuffer (out_buf, ", "); gaiaOutPointZ (out_buf, point); point = point->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else if (pts == 0 && lns > 0 && pgs == 0 && geom->DeclaredType == GAIA_MULTILINESTRING) { /* some kind of MULTILINESTRING */ gaiaAppendToOutBuffer (out_buf, "MULTILINESTRING ("); line = geom->FirstLinestring; while (line) { if (line != geom->FirstLinestring) gaiaAppendToOutBuffer (out_buf, ", ("); else gaiaAppendToOutBuffer (out_buf, "("); gaiaOutLinestringZ (out_buf, line); gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else if (pts == 0 && lns == 0 && pgs > 0 && geom->DeclaredType == GAIA_MULTIPOLYGON) { /* some kind of MULTIPOLYGON */ gaiaAppendToOutBuffer (out_buf, "MULTIPOLYGON ("); polyg = geom->FirstPolygon; while (polyg) { if (polyg != geom->FirstPolygon) gaiaAppendToOutBuffer (out_buf, ", ("); else gaiaAppendToOutBuffer (out_buf, "("); gaiaOutPolygonZ (out_buf, polyg); gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } else { /* some kind of GEOMETRYCOLLECTION */ int ie = 0; gaiaAppendToOutBuffer (out_buf, "GEOMETRYCOLLECTION ("); point = geom->FirstPoint; while (point) { /* processing POINTs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ", "); ie++; gaiaAppendToOutBuffer (out_buf, "POINT ("); gaiaOutPointZ (out_buf, point); gaiaAppendToOutBuffer (out_buf, ")"); point = point->Next; } line = geom->FirstLinestring; while (line) { /* processing LINESTRINGs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ", "); ie++; gaiaAppendToOutBuffer (out_buf, "LINESTRING ("); gaiaOutLinestringZ (out_buf, line); gaiaAppendToOutBuffer (out_buf, ")"); line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* processing POLYGONs */ if (ie > 0) gaiaAppendToOutBuffer (out_buf, ", "); ie++; gaiaAppendToOutBuffer (out_buf, "POLYGON ("); gaiaOutPolygonZ (out_buf, polyg); gaiaAppendToOutBuffer (out_buf, ")"); polyg = polyg->Next; } gaiaAppendToOutBuffer (out_buf, ")"); } } } static void vfdoToWkb3D (gaiaGeomCollPtr geom, unsigned char **result, int *size) { /* builds the GEOS-WKB-3D representation for this GEOMETRY */ int ib; int iv; double x; double y; double z = 0.0; double m = 0.0; int entities = 0; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; int type; unsigned char *ptr; gaiaPointPtr pt; gaiaLinestringPtr ln; gaiaPolygonPtr pg; gaiaRingPtr rng; gaiaPointPtr point = NULL; gaiaLinestringPtr line = NULL; gaiaPolygonPtr polyg = NULL; int endian_arch = gaiaEndianArch (); gaiaMbrGeometry (geom); /* how many entities, and of what kind, do we have ? */ pt = geom->FirstPoint; while (pt) { point = pt; entities++; n_points++; pt = pt->Next; } ln = geom->FirstLinestring; while (ln) { line = ln; entities++; n_linestrings++; ln = ln->Next; } pg = geom->FirstPolygon; while (pg) { polyg = pg; entities++; n_polygons++; pg = pg->Next; } *size = 0; *result = NULL; if (n_points == 0 && n_polygons == 0 && n_linestrings == 0) return; /* ok, we can determine the geometry class */ if (n_points == 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTIPOINT) type = GAIA_GEOSWKB_MULTIPOINTZ; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ; else type = GAIA_GEOSWKB_POINTZ; } else if (n_points > 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ; else type = GAIA_GEOSWKB_MULTIPOINTZ; } else if (n_points == 0 && n_linestrings == 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTILINESTRING) type = GAIA_GEOSWKB_MULTILINESTRINGZ; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ; else type = GAIA_GEOSWKB_LINESTRINGZ; } else if (n_points == 0 && n_linestrings > 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ; else type = GAIA_GEOSWKB_MULTILINESTRINGZ; } else if (n_points == 0 && n_linestrings == 0 && n_polygons == 1) { if (geom->DeclaredType == GAIA_MULTIPOLYGON) type = GAIA_GEOSWKB_MULTIPOLYGONZ; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ; else type = GAIA_GEOSWKB_POLYGONZ; } else if (n_points == 0 && n_linestrings == 0 && n_polygons > 1) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) type = GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ; else type = GAIA_GEOSWKB_MULTIPOLYGONZ; } else type = GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ; /* and now we compute the size of WKB */ *size = 5; /* header size */ if (type == GAIA_GEOSWKB_MULTIPOINTZ || type == GAIA_GEOSWKB_MULTILINESTRINGZ || type == GAIA_GEOSWKB_MULTIPOLYGONZ || type == GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ) *size += 4; point = geom->FirstPoint; while (point) { if (type == GAIA_GEOSWKB_MULTIPOINTZ || type == GAIA_GEOSWKB_MULTILINESTRINGZ || type == GAIA_GEOSWKB_MULTIPOLYGONZ || type == GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ) *size += 5; *size += (sizeof (double) * 3); /* three doubles for each POINT */ point = point->Next; } line = geom->FirstLinestring; while (line) { if (type == GAIA_GEOSWKB_MULTIPOINTZ || type == GAIA_GEOSWKB_MULTILINESTRINGZ || type == GAIA_GEOSWKB_MULTIPOLYGONZ || type == GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ) *size += 5; *size += (4 + ((sizeof (double) * 3) * line->Points)); /* # points + [x,y,z] for each vertex */ line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { if (type == GAIA_GEOSWKB_MULTIPOINTZ || type == GAIA_GEOSWKB_MULTILINESTRINGZ || type == GAIA_GEOSWKB_MULTIPOLYGONZ || type == GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ) *size += 5; rng = polyg->Exterior; *size += (8 + ((sizeof (double) * 3) * rng->Points)); /* # rings + # points + [x,y,z] array - exterior ring */ for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; *size += (4 + ((sizeof (double) * 3) * rng->Points)); /* # points + [x,y,z] array - interior ring */ } polyg = polyg->Next; } *result = malloc (*size); ptr = *result; /* and finally we build the WKB */ *ptr = 0x01; /* little endian byte order */ gaiaExport32 (ptr + 1, type, 1, endian_arch); /* the main CLASS TYPE */ ptr += 5; if (type == GAIA_GEOSWKB_MULTIPOINTZ || type == GAIA_GEOSWKB_MULTILINESTRINGZ || type == GAIA_GEOSWKB_MULTIPOLYGONZ || type == GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ) { gaiaExport32 (ptr, entities, 1, endian_arch); /* it's a collection; # entities */ ptr += 4; } point = geom->FirstPoint; while (point) { if (type == GAIA_GEOSWKB_MULTIPOINTZ || type == GAIA_GEOMETRYCOLLECTIONZ) { *ptr = 0x01; /* it's a collection: the CLASS TYPE for this element */ gaiaExport32 (ptr + 1, GAIA_GEOSWKB_POINTZ, 1, endian_arch); ptr += 5; } gaiaExport64 (ptr, point->X, 1, endian_arch); /* X */ gaiaExport64 (ptr + 8, point->Y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 16, point->Z, 1, endian_arch); /* Z */ ptr += 24; point = point->Next; } line = geom->FirstLinestring; while (line) { if (type == GAIA_GEOSWKB_MULTILINESTRINGZ || type == GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ) { *ptr = 0x01; /* it's a collection: the CLASS TYPE for this element */ gaiaExport32 (ptr + 1, GAIA_GEOSWKB_LINESTRINGZ, 1, endian_arch); ptr += 5; } gaiaExport32 (ptr, line->Points, 1, endian_arch); /* # points */ ptr += 4; for (iv = 0; iv < line->Points; iv++) { z = 0.0; m = 0.0; if (line->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (line->Coords, iv, &x, &y, &z); } else if (line->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (line->Coords, iv, &x, &y, &m); } else if (line->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (line->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (line->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, 1, endian_arch); /* X */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y */ gaiaExport64 (ptr + 16, z, 1, endian_arch); /* Z */ ptr += 24; } line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { if (type == GAIA_GEOSWKB_MULTIPOLYGONZ || type == GAIA_GEOSWKB_GEOMETRYCOLLECTIONZ) { *ptr = 0x01; /* it's a collection: the CLASS TYPE for this element */ gaiaExport32 (ptr + 1, GAIA_GEOSWKB_POLYGONZ, 1, endian_arch); ptr += 5; } gaiaExport32 (ptr, polyg->NumInteriors + 1, 1, endian_arch); /* # rings */ rng = polyg->Exterior; gaiaExport32 (ptr + 4, rng->Points, 1, endian_arch); /* # points - exterior ring */ ptr += 8; for (iv = 0; iv < rng->Points; iv++) { z = 0.0; m = 0.0; if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, 1, endian_arch); /* X - exterior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - exterior ring */ gaiaExport64 (ptr + 16, z, 1, endian_arch); /* Z - exterior ring */ ptr += 24; } for (ib = 0; ib < polyg->NumInteriors; ib++) { rng = polyg->Interiors + ib; gaiaExport32 (ptr, rng->Points, 1, endian_arch); /* # points - interior ring */ ptr += 4; for (iv = 0; iv < rng->Points; iv++) { z = 0.0; m = 0.0; if (rng->DimensionModel == GAIA_XY_Z) { gaiaGetPointXYZ (rng->Coords, iv, &x, &y, &z); } else if (rng->DimensionModel == GAIA_XY_M) { gaiaGetPointXYM (rng->Coords, iv, &x, &y, &m); } else if (rng->DimensionModel == GAIA_XY_Z_M) { gaiaGetPointXYZM (rng->Coords, iv, &x, &y, &z, &m); } else { gaiaGetPoint (rng->Coords, iv, &x, &y); } gaiaExport64 (ptr, x, 1, endian_arch); /* X - interior ring */ gaiaExport64 (ptr + 8, y, 1, endian_arch); /* Y - interior ring */ gaiaExport64 (ptr + 16, z, 1, endian_arch); /* Z - exterior ring */ ptr += 24; } } polyg = polyg->Next; } } static int vfdoGeometryType (gaiaGeomCollPtr geom) { /* determinates the Class for this geometry */ gaiaPointPtr point; gaiaLinestringPtr line; gaiaPolygonPtr polyg; int n_points = 0; int n_linestrings = 0; int n_polygons = 0; if (!geom) return GAIA_UNKNOWN; point = geom->FirstPoint; while (point) { /* counts how many points are there */ n_points++; point = point->Next; } line = geom->FirstLinestring; while (line) { /* counts how many linestrings are there */ n_linestrings++; line = line->Next; } polyg = geom->FirstPolygon; while (polyg) { /* counts how many polygons are there */ n_polygons++; polyg = polyg->Next; } if (n_points == 0 && n_linestrings == 0 && n_polygons == 0) return GAIA_UNKNOWN; if (n_points == 1 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTIPOINT) return GAIA_MULTIPOINT; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_POINT; } if (n_points > 0 && n_linestrings == 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_MULTIPOINT; } if (n_points == 0 && n_linestrings == 1 && n_polygons == 0) { if (geom->DeclaredType == GAIA_MULTILINESTRING) return GAIA_MULTILINESTRING; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_LINESTRING; } if (n_points == 0 && n_linestrings > 0 && n_polygons == 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_MULTILINESTRING; } if (n_points == 0 && n_linestrings == 0 && n_polygons == 1) { if (geom->DeclaredType == GAIA_MULTIPOLYGON) return GAIA_MULTIPOLYGON; else if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_POLYGON; } if (n_points == 0 && n_linestrings == 0 && n_polygons > 0) { if (geom->DeclaredType == GAIA_GEOMETRYCOLLECTION) return GAIA_GEOMETRYCOLLECTION; else return GAIA_MULTIPOLYGON; } return GAIA_GEOMETRYCOLLECTION; } static int vfdo_insert_row (VirtualFDOPtr p_vt, sqlite3_int64 * rowid, int argc, sqlite3_value ** argv) { /* trying to insert a row into FDO-OGR real-table */ sqlite3_stmt *stmt; int ret; int i; int ic; int ig; int geom_done; int err_geom = 0; int geom_constraint_err = 0; char prefix[16]; const char *text; const unsigned char *blob; gaiaOutBuffer out_buf; gaiaOutBuffer sql_statement; unsigned char *blob_wkb; int size; char *sql; char buf[256]; char *xname; gaiaGeomCollPtr geom = NULL; gaiaOutBufferInitialize (&sql_statement); xname = gaiaDoubleQuotedSql (p_vt->table); sql = sqlite3_mprintf ("INSERT INTO \"%s\" ", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); for (ic = 0; ic < p_vt->nColumns; ic++) { if (ic == 0) strcpy (prefix, "("); else strcpy (prefix, ", "); xname = gaiaDoubleQuotedSql (*(p_vt->Column + ic)); sql = sqlite3_mprintf ("%s%s", prefix, xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } gaiaAppendToOutBuffer (&sql_statement, ") VALUES "); for (ic = 0; ic < p_vt->nColumns; ic++) { if (ic == 0) strcpy (prefix, "("); else strcpy (prefix, ", "); sprintf (buf, "%s?", prefix); gaiaAppendToOutBuffer (&sql_statement, buf); } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) ret = sqlite3_prepare_v2 (p_vt->db, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) return SQLITE_ERROR; for (i = 2; i < argc; i++) { geom_done = 0; for (ig = 0; ig < p_vt->nGeometries; ig++) { if (strcasecmp (*(p_vt->Column + i - 2), *(p_vt->GeoColumn + ig)) == 0) { /* this one is a Geometry column */ if (sqlite3_value_type (argv[i]) == SQLITE_BLOB) { blob = sqlite3_value_blob (argv[i]); size = sqlite3_value_bytes (argv[i]); geom = gaiaFromSpatiaLiteBlobWkb (blob, size); if (geom) { if (geom->Srid != *(p_vt->Srid + ig)) { /* SRID constraint violation */ geom_constraint_err = 1; goto error; } /* checking for TYPE constraint violation */ if (vfdoGeometryType (geom) != *(p_vt->GeoType + ig)) { /* Geometry TYPE constraint violation */ geom_constraint_err = 1; goto error; } switch (*(p_vt->Format + ig)) { case FDO_OGR_WKT: gaiaOutBufferInitialize (&out_buf); if (*(p_vt->CoordDimensions + ig) == GAIA_XY_Z) vfdoOutWkt3D (&out_buf, geom); else gaiaOutWkt (&out_buf, geom); if (out_buf.Error == 0 && out_buf.Buffer != NULL) { sqlite3_bind_text (stmt, i - 1, out_buf.Buffer, out_buf.WriteOffset, free); out_buf.Buffer = NULL; gaiaOutBufferReset (&out_buf); } else { err_geom = 1; goto error; } break; case FDO_OGR_WKB: if (*(p_vt->CoordDimensions + ig) == GAIA_XY_Z) vfdoToWkb3D (geom, &blob_wkb, &size); else gaiaToWkb (geom, &blob_wkb, &size); if (blob_wkb) sqlite3_bind_blob (stmt, i - 1, blob_wkb, size, free); else { err_geom = 1; goto error; } break; case FDO_OGR_FGF: gaiaToFgf (geom, &blob_wkb, &size, *(p_vt->CoordDimensions + ig)); if (blob_wkb) sqlite3_bind_blob (stmt, i - 1, blob_wkb, size, free); else { err_geom = 1; goto error; } break; case FDO_OGR_SPLITE: gaiaToSpatiaLiteBlobWkb (geom, &blob_wkb, &size); if (blob_wkb) sqlite3_bind_blob (stmt, i - 1, blob_wkb, size, free); else { err_geom = 1; goto error; } break; default: err_geom = 1; goto error; break; }; } else { err_geom = 1; goto error; } } else if (sqlite3_value_type (argv[i]) == SQLITE_NULL) sqlite3_bind_null (stmt, i - 1); else { err_geom = 1; goto error; } geom_done = 1; } } if (geom_done) { if (geom) { /* memory cleanup: Kashif Rasul 14 Jan 2010 */ gaiaFreeGeomColl (geom); geom = NULL; } continue; } switch (sqlite3_value_type (argv[i])) { case SQLITE_INTEGER: sqlite3_bind_int64 (stmt, i - 1, sqlite3_value_int64 (argv[i])); break; case SQLITE_FLOAT: sqlite3_bind_double (stmt, i - 1, sqlite3_value_double (argv[i])); break; case SQLITE_TEXT: text = (char *) sqlite3_value_text (argv[i]); size = sqlite3_value_bytes (argv[i]); sqlite3_bind_text (stmt, i - 1, text, size, SQLITE_STATIC); break; case SQLITE_BLOB: blob = sqlite3_value_blob (argv[i]); size = sqlite3_value_bytes (argv[i]); sqlite3_bind_blob (stmt, i - 1, blob, size, SQLITE_STATIC); break; case SQLITE_NULL: default: sqlite3_bind_null (stmt, i - 1); break; }; } error: if (geom) { /* memory cleanup: Kashif Rasul 14 Jan 2010 */ gaiaFreeGeomColl (geom); } if (err_geom || geom_constraint_err) { sqlite3_finalize (stmt); return SQLITE_CONSTRAINT; } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { sqlite3_finalize (stmt); return ret; } sqlite3_finalize (stmt); *rowid = sqlite3_last_insert_rowid (p_vt->db); return SQLITE_OK; } static int vfdo_update_row (VirtualFDOPtr p_vt, sqlite3_int64 rowid, int argc, sqlite3_value ** argv) { /* trying to update a row in FDO-OGR real-table */ sqlite3_stmt *stmt; int ret; int i; int ic; int ig; int geom_done; int err_geom = 0; int geom_constraint_err = 0; char prefix[16]; const char *text; const unsigned char *blob; gaiaOutBuffer out_buf; gaiaOutBuffer sql_statement; unsigned char *blob_wkb; int size; char *sql; char buf[256]; char *xname; gaiaGeomCollPtr geom = NULL; gaiaOutBufferInitialize (&sql_statement); xname = gaiaDoubleQuotedSql (p_vt->table); sql = sqlite3_mprintf ("UPDATE \"%s\" SET", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); for (ic = 0; ic < p_vt->nColumns; ic++) { if (ic == 0) strcpy (prefix, " "); else strcpy (prefix, ", "); xname = gaiaDoubleQuotedSql (*(p_vt->Column + ic)); sql = sqlite3_mprintf ("%s%s = ?", prefix, xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } sprintf (buf, " WHERE ROWID = " FRMT64, rowid); gaiaAppendToOutBuffer (&sql_statement, buf); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) ret = sqlite3_prepare_v2 (p_vt->db, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) return SQLITE_ERROR; for (i = 2; i < argc; i++) { geom_done = 0; for (ig = 0; ig < p_vt->nGeometries; ig++) { if (strcasecmp (*(p_vt->Column + i - 2), *(p_vt->GeoColumn + ig)) == 0) { /* this one is a Geometry column */ if (sqlite3_value_type (argv[i]) == SQLITE_BLOB) { blob = sqlite3_value_blob (argv[i]); size = sqlite3_value_bytes (argv[i]); geom = gaiaFromSpatiaLiteBlobWkb (blob, size); if (geom) { if (geom->Srid != *(p_vt->Srid + ig)) { /* SRID constraint violation */ geom_constraint_err = 1; goto error; } /* checking for TYPE constraint violation */ if (vfdoGeometryType (geom) != *(p_vt->GeoType + ig)) { /* Geometry TYPE constraint violation */ geom_constraint_err = 1; goto error; } switch (*(p_vt->Format + ig)) { case FDO_OGR_WKT: gaiaOutBufferInitialize (&out_buf); if (*(p_vt->CoordDimensions + ig) == GAIA_XY_Z) vfdoOutWkt3D (&out_buf, geom); else gaiaOutWkt (&out_buf, geom); if (out_buf.Error == 0 && out_buf.Buffer != NULL) { sqlite3_bind_text (stmt, i - 1, out_buf.Buffer, out_buf.WriteOffset, free); out_buf.Buffer = NULL; gaiaOutBufferReset (&out_buf); } else { err_geom = 1; goto error; } break; case FDO_OGR_WKB: if (*(p_vt->CoordDimensions + ig) == GAIA_XY_Z) vfdoToWkb3D (geom, &blob_wkb, &size); else gaiaToWkb (geom, &blob_wkb, &size); if (blob_wkb) sqlite3_bind_blob (stmt, i - 1, blob_wkb, size, free); else { err_geom = 1; goto error; } break; case FDO_OGR_FGF: gaiaToFgf (geom, &blob_wkb, &size, *(p_vt->CoordDimensions + ig)); if (blob_wkb) sqlite3_bind_blob (stmt, i - 1, blob_wkb, size, free); else { err_geom = 1; goto error; } break; case FDO_OGR_SPLITE: gaiaToSpatiaLiteBlobWkb (geom, &blob_wkb, &size); if (blob_wkb) sqlite3_bind_blob (stmt, i - 1, blob_wkb, size, free); else { err_geom = 1; goto error; } break; default: err_geom = 1; goto error; break; }; } else { err_geom = 1; goto error; } } else if (sqlite3_value_type (argv[i]) == SQLITE_NULL) sqlite3_bind_null (stmt, i - 1); else { err_geom = 1; goto error; } geom_done = 1; } } if (geom_done) { gaiaFreeGeomColl (geom); geom = NULL; continue; } switch (sqlite3_value_type (argv[i])) { case SQLITE_INTEGER: sqlite3_bind_int64 (stmt, i - 1, sqlite3_value_int64 (argv[i])); break; case SQLITE_FLOAT: sqlite3_bind_double (stmt, i - 1, sqlite3_value_double (argv[i])); break; case SQLITE_TEXT: text = (char *) sqlite3_value_text (argv[i]); size = sqlite3_value_bytes (argv[i]); sqlite3_bind_text (stmt, i - 1, text, size, SQLITE_STATIC); break; case SQLITE_BLOB: blob = sqlite3_value_blob (argv[i]); size = sqlite3_value_bytes (argv[i]); sqlite3_bind_blob (stmt, i - 1, blob, size, SQLITE_STATIC); break; case SQLITE_NULL: default: sqlite3_bind_null (stmt, i - 1); break; }; } error: gaiaFreeGeomColl (geom); if (err_geom || geom_constraint_err) { sqlite3_finalize (stmt); return SQLITE_CONSTRAINT; } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { sqlite3_finalize (stmt); return ret; } sqlite3_finalize (stmt); return SQLITE_OK; } static int vfdo_delete_row (VirtualFDOPtr p_vt, sqlite3_int64 rowid) { /* trying to delete a row from FDO-OGR real-table */ char *sql_statement; char dummy[256]; int ret; char *xname; xname = gaiaDoubleQuotedSql (p_vt->table); sprintf (dummy, FRMT64, rowid); sql_statement = sqlite3_mprintf ("DELETE FROM \"%s\" WHERE ROWID = %s", xname, dummy); free (xname); ret = sqlite3_exec (p_vt->db, sql_statement, NULL, NULL, NULL); sqlite3_free (sql_statement); return ret; } char * vfdo_convertWKT3D (const char *wkt) { /* converting WKT 3D */ char *out; char *o; const char *p = wkt; int len = strlen (wkt); int extra = 0; while (*p != '\0') { if (strncasecmp (p, "POINT", 5) == 0) { p += 5; extra++; continue; } if (strncasecmp (p, "LINESTRING", 10) == 0) { p += 10; extra++; continue; } if (strncasecmp (p, "POLYGON", 7) == 0) { p += 7; extra++; continue; } if (strncasecmp (p, "MULTIPOINT", 10) == 0) { p += 10; extra++; continue; } if (strncasecmp (p, "MULTILINESTRING", 15) == 0) { p += 15; extra++; continue; } if (strncasecmp (p, "MULTIPOLYGON", 12) == 0) { p += 12; extra++; continue; } if (strncasecmp (p, "GEOMETRYCOLLECTION", 18) == 0) { p += 18; extra++; continue; } p++; } out = malloc (len + extra + 1); o = out; p = wkt; while (*p != '\0') { if (strncasecmp (p, "POINT", 5) == 0) { strcpy (o, "POINTZ"); o += 6; p += 5; continue; } if (strncasecmp (p, "LINESTRING", 10) == 0) { strcpy (o, "LINESTRINGZ"); o += 11; p += 10; continue; } if (strncasecmp (p, "POLYGON", 7) == 0) { strcpy (o, "POLYGONZ"); o += 8; p += 7; continue; } if (strncasecmp (p, "MULTIPOINT", 10) == 0) { strcpy (o, "MULTIPOINTZ"); o += 11; p += 10; continue; } if (strncasecmp (p, "MULTILINESTRING", 15) == 0) { strcpy (o, "MULTILINESTRINGZ"); o += 16; p += 15; continue; } if (strncasecmp (p, "MULTIPOLYGON", 12) == 0) { strcpy (o, "MULTIPOLYGONZ"); o += 13; p += 12; continue; } if (strncasecmp (p, "GEOMETRYCOLLECTION", 18) == 0) { strcpy (o, "GEOMETRYCOLLECTIONZ"); o += 19; p += 18; continue; } *o++ = *p++; } *o = '\0'; return out; } static void vfdo_read_row (VirtualFDOCursorPtr cursor) { /* trying to read a row from FDO-OGR real-table */ sqlite3_stmt *stmt; int ret; int ic; int ig; unsigned char *wkt; const char *text; const unsigned char *blob; unsigned char *xblob; int size; sqlite3_int64 pk; int geom_done; gaiaGeomCollPtr geom; stmt = cursor->stmt; sqlite3_bind_int64 (stmt, 1, cursor->current_row); ret = sqlite3_step (stmt); if (ret == SQLITE_ROW) { pk = sqlite3_column_int64 (stmt, 0); for (ic = 0; ic < cursor->pVtab->nColumns; ic++) { /* fetching column values */ geom_done = 0; for (ig = 0; ig < cursor->pVtab->nGeometries; ig++) { if (strcasecmp (*(cursor->pVtab->Column + ic), *(cursor->pVtab->GeoColumn + ig)) == 0) { /* this one is a Geometry column */ switch (*(cursor->pVtab->Format + ig)) { case FDO_OGR_WKT: if (sqlite3_column_type (stmt, ic + 1) == SQLITE_TEXT) { /* trying to parse a WKT Geometry */ char delete_wkt = 0; wkt = (unsigned char *) sqlite3_column_text (stmt, ic + 1); if (* (cursor->pVtab->CoordDimensions + ig) == GAIA_XY_Z) { wkt = (unsigned char *) vfdo_convertWKT3D ((char *) wkt); if (wkt == NULL) { value_set_null (* (cursor-> pVtab-> Value + ic)); continue; } delete_wkt = 1; } geom = gaiaParseWkt (wkt, -1); if (delete_wkt) free ((void *) wkt); if (!geom) value_set_null (* (cursor->pVtab-> Value + ic)); else { geom->Srid = *(cursor->pVtab->Srid + ig); gaiaToSpatiaLiteBlobWkb (geom, &xblob, &size); if (xblob) { value_set_blob (* (cursor-> pVtab-> Value + ic), xblob, size); free (xblob); } else value_set_null (* (cursor-> pVtab-> Value + ic)); gaiaFreeGeomColl (geom); } } else value_set_null (* (cursor->pVtab->Value + ic)); break; case FDO_OGR_WKB: if (sqlite3_column_type (stmt, ic + 1) == SQLITE_BLOB) { /* trying to parse a WKB Geometry */ blob = sqlite3_column_blob (stmt, ic + 1); size = sqlite3_column_bytes (stmt, ic + 1); geom = gaiaFromWkb (blob, size); if (!geom) value_set_null (* (cursor->pVtab-> Value + ic)); else { geom->Srid = *(cursor->pVtab->Srid + ig); gaiaToSpatiaLiteBlobWkb (geom, &xblob, &size); if (xblob) { value_set_blob (* (cursor-> pVtab-> Value + ic), xblob, size); free (xblob); } else value_set_null (* (cursor-> pVtab-> Value + ic)); gaiaFreeGeomColl (geom); } } else value_set_null (* (cursor->pVtab->Value + ic)); break; case FDO_OGR_FGF: if (sqlite3_column_type (stmt, ic + 1) == SQLITE_BLOB) { /* trying to parse an FGF Geometry */ blob = sqlite3_column_blob (stmt, ic + 1); size = sqlite3_column_bytes (stmt, ic + 1); geom = gaiaFromFgf (blob, size); if (!geom) value_set_null (* (cursor->pVtab-> Value + ic)); else { geom->Srid = *(cursor->pVtab->Srid + ig); gaiaToSpatiaLiteBlobWkb (geom, &xblob, &size); if (xblob) { value_set_blob (* (cursor-> pVtab-> Value + ic), xblob, size); free (xblob); } else value_set_null (* (cursor-> pVtab-> Value + ic)); gaiaFreeGeomColl (geom); } } else value_set_null (* (cursor->pVtab->Value + ic)); break; case FDO_OGR_SPLITE: if (sqlite3_column_type (stmt, ic + 1) == SQLITE_BLOB) { /* trying to parse a SPATIALITE Geometry */ blob = sqlite3_column_blob (stmt, ic + 1); size = sqlite3_column_bytes (stmt, ic + 1); value_set_blob (* (cursor->pVtab->Value + ic), blob, size); } else value_set_null (* (cursor->pVtab->Value + ic)); break; default: value_set_null (*(cursor->pVtab->Value + ic)); break; }; geom_done = 1; } } if (geom_done) continue; switch (sqlite3_column_type (stmt, ic + 1)) { case SQLITE_INTEGER: value_set_int (*(cursor->pVtab->Value + ic), sqlite3_column_int64 (stmt, ic + 1)); break; case SQLITE_FLOAT: value_set_double (*(cursor->pVtab->Value + ic), sqlite3_column_double (stmt, ic + 1)); break; case SQLITE_TEXT: text = (char *) sqlite3_column_text (stmt, ic + 1); size = sqlite3_column_bytes (stmt, ic + 1); value_set_text (*(cursor->pVtab->Value + ic), text, size); break; case SQLITE_BLOB: blob = sqlite3_column_blob (stmt, ic + 1); size = sqlite3_column_bytes (stmt, ic + 1); value_set_blob (*(cursor->pVtab->Value + ic), blob, size); break; case SQLITE_NULL: default: value_set_null (*(cursor->pVtab->Value + ic)); break; }; } } else { /* an error occurred */ cursor->eof = 1; return; } cursor->eof = 0; cursor->current_row = pk; } static int vfdo_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table connected to some FDO-OGR table */ char *vtable = NULL; char *table = NULL; int ret; int i; int len; int n_rows; int n_columns; const char *col_name; const char *col_type; const char *format; int coord_dimension; int not_null; int srid; int type; char **results; char *sql; char prefix[16]; char *xname; gaiaOutBuffer sql_statement; VirtualFDOPtr p_vt = NULL; if (pAux) pAux = pAux; /* unused arg warning suppression */ gaiaOutBufferInitialize (&sql_statement); /* checking for table_name */ if (argc == 4) { vtable = gaiaDequotedSql ((char *) argv[2]); table = gaiaDequotedSql ((char *) argv[3]); } else { *pzErr = sqlite3_mprintf ("[VirtualFDO module] CREATE VIRTUAL: illegal arg list {table_name}\n"); goto error; } /* retrieving the base table columns */ xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (db, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto illegal; if (n_rows >= 1) { p_vt = (VirtualFDOPtr) sqlite3_malloc (sizeof (VirtualFDO)); if (!p_vt) return SQLITE_NOMEM; p_vt->db = db; p_vt->nRef = 0; p_vt->zErrMsg = NULL; len = strlen (table); p_vt->table = sqlite3_malloc (len + 1); strcpy (p_vt->table, table); p_vt->nColumns = n_rows; p_vt->Column = sqlite3_malloc (sizeof (char *) * n_rows); p_vt->Type = sqlite3_malloc (sizeof (char *) * n_rows); p_vt->NotNull = sqlite3_malloc (sizeof (int) * n_rows); p_vt->Value = sqlite3_malloc (sizeof (SqliteValuePtr) * n_rows); for (i = 0; i < n_rows; i++) { *(p_vt->Column + i) = NULL; *(p_vt->Type + i) = NULL; *(p_vt->NotNull + i) = -1; *(p_vt->Value + i) = value_alloc (); } p_vt->nGeometries = 0; p_vt->GeoColumn = NULL; p_vt->Srid = NULL; p_vt->GeoType = NULL; p_vt->Format = NULL; p_vt->CoordDimensions = NULL; for (i = 1; i <= n_rows; i++) { col_name = results[(i * n_columns) + 1]; col_type = results[(i * n_columns) + 2]; if (atoi (results[(i * n_columns) + 3]) == 0) not_null = 0; else not_null = 1; len = strlen (col_name); *(p_vt->Column + (i - 1)) = sqlite3_malloc (len + 1); strcpy (*(p_vt->Column + (i - 1)), col_name); len = strlen (col_type); *(p_vt->Type + (i - 1)) = sqlite3_malloc (len + 1); strcpy (*(p_vt->Type + (i - 1)), col_type); *(p_vt->NotNull + (i - 1)) = not_null; } sqlite3_free_table (results); } else goto illegal; /* retrieving the base table columns */ sql = sqlite3_mprintf ("SELECT f_geometry_column, geometry_type, srid, " "geometry_format, coord_dimension\n" "FROM geometry_columns WHERE Upper(f_table_name) = Upper(%Q)", table); ret = sqlite3_get_table (db, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto illegal; if (n_rows >= 1) { p_vt->nGeometries = n_rows; p_vt->GeoColumn = sqlite3_malloc (sizeof (char *) * n_rows); p_vt->Srid = sqlite3_malloc (sizeof (char *) * n_rows); p_vt->GeoType = sqlite3_malloc (sizeof (int) * n_rows); p_vt->Format = sqlite3_malloc (sizeof (int) * n_rows); p_vt->CoordDimensions = sqlite3_malloc (sizeof (int) * n_rows); for (i = 0; i < n_rows; i++) { *(p_vt->GeoColumn + i) = NULL; *(p_vt->Srid + i) = -1; *(p_vt->GeoType + i) = -1; *(p_vt->Format + i) = FDO_OGR_NONE; *(p_vt->CoordDimensions + i) = GAIA_XY; } for (i = 1; i <= n_rows; i++) { col_name = results[(i * n_columns) + 0]; type = atoi (results[(i * n_columns) + 1]); srid = atoi (results[(i * n_columns) + 2]); format = results[(i * n_columns) + 3]; coord_dimension = atoi (results[(i * n_columns) + 4]); len = strlen (col_name); *(p_vt->GeoColumn + (i - 1)) = sqlite3_malloc (len + 1); strcpy (*(p_vt->GeoColumn + (i - 1)), col_name); *(p_vt->GeoType + (i - 1)) = type; *(p_vt->Srid + (i - 1)) = srid; if (strcasecmp (format, "WKT") == 0) *(p_vt->Format + (i - 1)) = FDO_OGR_WKT; if (strcasecmp (format, "WKB") == 0) *(p_vt->Format + (i - 1)) = FDO_OGR_WKB; if (strcasecmp (format, "FGF") == 0) *(p_vt->Format + (i - 1)) = FDO_OGR_FGF; if (strcasecmp (format, "SPATIALITE") == 0) *(p_vt->Format + (i - 1)) = FDO_OGR_SPLITE; if (coord_dimension == 3) *(p_vt->CoordDimensions + (i - 1)) = GAIA_XY_Z; else if (coord_dimension == 4) *(p_vt->CoordDimensions + (i - 1)) = GAIA_XY_Z_M; else *(p_vt->CoordDimensions + (i - 1)) = GAIA_XY; } sqlite3_free_table (results); } else goto illegal; /* preparing the COLUMNs for this VIRTUAL TABLE */ xname = gaiaDoubleQuotedSql (vtable); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" ", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); for (i = 0; i < p_vt->nColumns; i++) { if (i == 0) strcpy (prefix, "("); else strcpy (prefix, ", "); xname = gaiaDoubleQuotedSql (*(p_vt->Column + i)); if (*(p_vt->NotNull + i)) sql = sqlite3_mprintf ("%s%s %s NOT NULL", prefix, xname, *(p_vt->Type + i)); else sql = sqlite3_mprintf ("%s%s %s", prefix, xname, *(p_vt->Type + i)); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { if (sqlite3_declare_vtab (db, sql_statement.Buffer) != SQLITE_OK) { *pzErr = sqlite3_mprintf ("[VirtualFDO module] CREATE VIRTUAL: invalid SQL statement \"%s\"", sql); goto error; } gaiaOutBufferReset (&sql_statement); } else goto error; *ppVTab = (sqlite3_vtab *) p_vt; free (vtable); free (table); return SQLITE_OK; illegal: /* something is going the wrong way */ gaiaOutBufferReset (&sql_statement); if (p_vt) free_table (p_vt); *pzErr = sqlite3_mprintf ("[VirtualFDO module] '%s' isn't a valid FDO-OGR Geometry table\n", table); error: if (vtable) free (vtable); if (table) free (table); gaiaOutBufferReset (&sql_statement); return SQLITE_ERROR; } static int vfdo_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table to some shapefile - simply aliases vfdo_create() */ return vfdo_create (db, pAux, argc, argv, ppVTab, pzErr); } static int vfdo_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIndex) { /* best index selection */ if (pVTab || pIndex) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vfdo_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualFDOPtr p_vt = (VirtualFDOPtr) pVTab; free_table (p_vt); return SQLITE_OK; } static int vfdo_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases vfdo_disconnect() */ return vfdo_disconnect (pVTab); } static int vfdo_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ sqlite3_stmt *stmt; gaiaOutBuffer sql_statement; int ret; char *sql; int ic; char *xname; VirtualFDOCursorPtr cursor = (VirtualFDOCursorPtr) sqlite3_malloc (sizeof (VirtualFDOCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->pVtab = (VirtualFDOPtr) pVTab; gaiaOutBufferInitialize (&sql_statement); gaiaAppendToOutBuffer (&sql_statement, "SELECT ROWID"); for (ic = 0; ic < cursor->pVtab->nColumns; ic++) { value_set_null (*(cursor->pVtab->Value + ic)); xname = gaiaDoubleQuotedSql (*(cursor->pVtab->Column + ic)); sql = sqlite3_mprintf (",\"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } xname = gaiaDoubleQuotedSql (cursor->pVtab->table); sql = sqlite3_mprintf (" FROM \"%s\" WHERE ROWID >= ?", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) ret = sqlite3_prepare_v2 (cursor->pVtab->db, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { /* an error occurred */ cursor->eof = 1; return SQLITE_ERROR; } cursor->stmt = stmt; cursor->current_row = LONG64_MIN; cursor->eof = 0; *ppCursor = (sqlite3_vtab_cursor *) cursor; vfdo_read_row (cursor); return SQLITE_OK; } static int vfdo_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ int ic; VirtualFDOCursorPtr cursor = (VirtualFDOCursorPtr) pCursor; for (ic = 0; ic < cursor->pVtab->nColumns; ic++) value_set_null (*(cursor->pVtab->Value + ic)); if (cursor->stmt) sqlite3_finalize (cursor->stmt); sqlite3_free (pCursor); return SQLITE_OK; } static int vfdo_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ if (pCursor || idxNum || idxStr || argc || argv) pCursor = pCursor; /* unused arg warning suppression */ return SQLITE_OK; } static int vfdo_next (sqlite3_vtab_cursor * pCursor) { /* fetching next row from cursor */ VirtualFDOCursorPtr cursor = (VirtualFDOCursorPtr) pCursor; (cursor->current_row)++; vfdo_read_row (cursor); return SQLITE_OK; } static int vfdo_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualFDOCursorPtr cursor = (VirtualFDOCursorPtr) pCursor; return cursor->eof; } static int vfdo_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ VirtualFDOCursorPtr cursor = (VirtualFDOCursorPtr) pCursor; SqliteValuePtr value; if (column >= 0 && column < cursor->pVtab->nColumns) { value = *(cursor->pVtab->Value + column); switch (value->Type) { case SQLITE_INTEGER: sqlite3_result_int64 (pContext, value->IntValue); break; case SQLITE_FLOAT: sqlite3_result_double (pContext, value->DoubleValue); break; case SQLITE_TEXT: sqlite3_result_text (pContext, value->Text, value->Size, SQLITE_STATIC); break; case SQLITE_BLOB: sqlite3_result_blob (pContext, value->Blob, value->Size, SQLITE_STATIC); break; default: sqlite3_result_null (pContext); break; }; } else sqlite3_result_null (pContext); return SQLITE_OK; } static int vfdo_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualFDOCursorPtr cursor = (VirtualFDOCursorPtr) pCursor; *pRowid = cursor->current_row; return SQLITE_OK; } static int vfdo_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ sqlite3_int64 rowid = 0; int ret; VirtualFDOPtr p_vt = (VirtualFDOPtr) pVTab; if (argc == 1) { /* performing a DELETE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { rowid = sqlite3_value_int64 (argv[0]); ret = vfdo_delete_row (p_vt, rowid); } else ret = SQLITE_MISMATCH; } else { if (sqlite3_value_type (argv[0]) == SQLITE_NULL) { /* performing an INSERT */ ret = vfdo_insert_row (p_vt, &rowid, argc, argv); if (ret == SQLITE_OK) *pRowid = rowid; } else { /* performing an UPDATE */ rowid = sqlite3_value_int64 (argv[0]); ret = vfdo_update_row (p_vt, rowid, argc, argv); } } return ret; } static int vfdo_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vfdo_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vfdo_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vfdo_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vfdo_rename (sqlite3_vtab * pVTab, const char *zNew) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ if (zNew) zNew = zNew; /* unused arg warning suppression */ return SQLITE_ERROR; } static int spliteVirtualFDOInit (sqlite3 * db) { int rc = SQLITE_OK; my_fdo_module.iVersion = 1; my_fdo_module.xCreate = &vfdo_create; my_fdo_module.xConnect = &vfdo_connect; my_fdo_module.xBestIndex = &vfdo_best_index; my_fdo_module.xDisconnect = &vfdo_disconnect; my_fdo_module.xDestroy = &vfdo_destroy; my_fdo_module.xOpen = &vfdo_open; my_fdo_module.xClose = &vfdo_close; my_fdo_module.xFilter = &vfdo_filter; my_fdo_module.xNext = &vfdo_next; my_fdo_module.xEof = &vfdo_eof; my_fdo_module.xColumn = &vfdo_column; my_fdo_module.xRowid = &vfdo_rowid; my_fdo_module.xUpdate = &vfdo_update; my_fdo_module.xBegin = &vfdo_begin; my_fdo_module.xSync = &vfdo_sync; my_fdo_module.xCommit = &vfdo_commit; my_fdo_module.xRollback = &vfdo_rollback; my_fdo_module.xFindFunction = NULL; my_fdo_module.xRename = &vfdo_rename; sqlite3_create_module_v2 (db, "VirtualFDO", &my_fdo_module, NULL, 0); return rc; } SPATIALITE_PRIVATE int virtualfdo_extension_init (void *xdb) { sqlite3 *db = (sqlite3 *) xdb; return spliteVirtualFDOInit (db); } libspatialite-4.3.0a/src/spatialite/Makefile.am0000664000175000017500000000170512544707704016427 00000000000000 AM_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ AM_CPPFLAGS += -I$(top_srcdir)/src/headers noinst_LTLIBRARIES = libsplite.la splite.la SPATIALITE_COMMON_SOURCES = mbrcache.c \ spatialite.c \ spatialite_init.c \ metatables.c \ statistics.c \ extra_tables.c \ se_helpers.c \ srid_aux.c \ table_cloner.c \ virtualdbf.c \ virtualXL.c \ virtualfdo.c \ virtualgpkg.c \ virtualbbox.c \ virtualspatialindex.c \ virtualnetwork.c \ virtualshape.c \ virtualxpath.c \ virtualelementary.c libsplite_la_SOURCES = $(SPATIALITE_COMMON_SOURCES) libsplite_la_CFLAGS = -fvisibility=hidden splite_la_SOURCES = $(SPATIALITE_COMMON_SOURCES) splite_la_CPPFLAGS = @CFLAGS@ @GEOS_CFLAGS@ @LIBXML2_CFLAGS@ splite_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. splite_la_CPPFLAGS += -DLOADABLE_EXTENSION splite_la_CPPFLAGS += -fvisibility=hidden splite_la_LDFLAGS = -module splite_la_LIBTOOLFLAGS = --tag=disable-static MOSTLYCLEANFILES = *.gcna *.gcno *.gcda libspatialite-4.3.0a/src/spatialite/mbrcache.c0000664000175000017500000011227212544707704016305 00000000000000/* mbrcache.c -- SQLite3 extension [MBR CACHE VIRTUAL TABLE] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ #if defined(_WIN32) && !defined(__MINGW32__) #define LONG64_MAX _I64_MAX #define LONG64_MIN _I64_MIN #else #define LONG64_MAX 9223372036854775807LL #define LONG64_MIN (-LONG64_MAX + 1) #endif static struct sqlite3_module my_mbr_module; /* memory structs used to store the MBR's cache the basic idea is to implement a hierarchy in order to avoid excessive memory fragmentation and achieve better performance - the cache is a linked-list of cache page elements - each cache page contains an array of 32 cache blocks - each cache block contains an array of 32 cache cells so a single cache page con store up to 1024 cache cells */ struct mbr_cache_cell { /* a cached entity */ /* the entity's ROWID */ sqlite3_int64 rowid; /* the MBR */ double minx; double miny; double maxx; double maxy; }; struct mbr_cache_block { /* a block of 32 cached entities */ /* allocation bitmap: the meaning of each bit is: 1 - corresponding cache cell is in use 0 - corresponding cache cell is unused */ unsigned int bitmap; /* the MBR corresponding to this cache block i.e. the combined MBR for any contained cell */ double minx; double miny; double maxx; double maxy; /* the cache cells array */ struct mbr_cache_cell cells[32]; }; struct mbr_cache_page { /* a page containing 32 cached blocks */ /* allocation bitmap: the meaning of each bit is: 1 - corresponding cache block is in full 0 - corresponding cache block is not full */ unsigned int bitmap; /* the MBR corresponding to this cache page i.e. the combined MBR for any contained block */ double minx; double miny; double maxx; double maxy; /* the cache blocks array */ struct mbr_cache_block blocks[32]; /* the min-max rowid for this page */ sqlite3_int64 min_rowid; sqlite3_int64 max_rowid; /* pointer to next element into the cached pages linked list */ struct mbr_cache_page *next; }; struct mbr_cache { /* the MBR's cache implemented as a cache pages linked list */ /* pointers used to handle the cache pages linked list */ struct mbr_cache_page *first; struct mbr_cache_page *last; /* pointer used to identify the current cache page when inserting a new cache cell */ struct mbr_cache_page *current; }; typedef struct MbrCacheStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ struct mbr_cache *cache; /* the MBR's cache */ char *table_name; /* the main table to be cached */ char *column_name; /* the column to be cached */ int error; /* some previous error disables any operation */ } MbrCache; typedef MbrCache *MbrCachePtr; typedef struct MbrCacheCursortStruct { /* extends the sqlite3_vtab_cursor struct */ MbrCachePtr pVtab; /* Virtual table of this cursor */ int eof; /* the EOF marker */ /* positioning parameters while performing a cache search */ struct mbr_cache_page *current_page; int current_block_index; int current_cell_index; struct mbr_cache_cell *current_cell; /* the strategy to use: 0 = sequential scan 1 = find rowid 2 = spatial search */ int strategy; /* the MBR to search for */ double minx; double miny; double maxx; double maxy; /* the MBR search mode: 0 = WITHIN 1 = CONTAIN */ int mbr_mode; } MbrCacheCursor; typedef MbrCacheCursor *MbrCacheCursorPtr; static unsigned int cache_bitmask (int x) { /* return the bitmask corresponding to index X */ switch (x) { case 0: return 0x80000000; case 1: return 0x40000000; case 2: return 0x20000000; case 3: return 0x10000000; case 4: return 0x08000000; case 5: return 0x04000000; case 6: return 0x02000000; case 7: return 0x01000000; case 8: return 0x00800000; case 9: return 0x00400000; case 10: return 0x00200000; case 11: return 0x00100000; case 12: return 0x00080000; case 13: return 0x00040000; case 14: return 0x00020000; case 15: return 0x00010000; case 16: return 0x00008000; case 17: return 0x00004000; case 18: return 0x00002000; case 19: return 0x00001000; case 20: return 0x00000800; case 21: return 0x00000400; case 22: return 0x00000200; case 23: return 0x00000100; case 24: return 0x00000080; case 25: return 0x00000040; case 26: return 0x00000020; case 27: return 0x00000010; case 28: return 0x00000008; case 29: return 0x00000004; case 30: return 0x00000002; case 31: return 0x00000001; }; return 0x00000000; } static struct mbr_cache * cache_alloc (void) { /* allocates and initializes an empty cache struct */ struct mbr_cache *p = malloc (sizeof (struct mbr_cache)); p->first = NULL; p->last = NULL; p->current = NULL; return p; } static struct mbr_cache_page * cache_page_alloc (void) { /* allocates and initializes a cache page */ int i; struct mbr_cache_block *pb; struct mbr_cache_page *p = malloc (sizeof (struct mbr_cache_page)); p->bitmap = 0x00000000; p->next = NULL; p->minx = DBL_MAX; p->miny = DBL_MAX; p->maxx = -DBL_MAX; p->maxy = -DBL_MAX; for (i = 0; i < 32; i++) { pb = p->blocks + i; pb->bitmap = 0x00000000; pb->minx = DBL_MAX; pb->miny = DBL_MAX; pb->maxx = -DBL_MAX; pb->maxy = DBL_MAX; } p->max_rowid = LONG64_MIN; p->min_rowid = LONG64_MAX; return p; } static void cache_destroy (struct mbr_cache *p) { /* memory cleanup; destroying a cache and any page into the cache */ struct mbr_cache_page *pp; struct mbr_cache_page *ppn; if (!p) return; pp = p->first; while (pp) { ppn = pp->next; free (pp); pp = ppn; } free (p); } static int cache_get_free_block (struct mbr_cache_page *pp) { /* scans a cache page, returning the index of the first available block containing a free cell */ int ib; for (ib = 0; ib < 32; ib++) { if ((pp->bitmap & cache_bitmask (ib)) == 0x00000000) return ib; } return -1; } static void cache_fix_page_bitmap (struct mbr_cache_page *pp) { /* updating the cache page bitmap */ int ib; for (ib = 0; ib < 32; ib++) { if (pp->blocks[ib].bitmap == 0xffffffff) { /* all the cells into this block are used; marking the page bitmap */ pp->bitmap |= cache_bitmask (ib); } } } static int cache_get_free_cell (struct mbr_cache_block *pb) { /* scans a cache block, returning the index of the first free cell */ int ic; for (ic = 0; ic < 32; ic++) { if ((pb->bitmap & cache_bitmask (ic)) == 0x00000000) return ic; } return -1; } static struct mbr_cache_page * cache_get_free_page (struct mbr_cache *p) { /* return a pointer to the first cache page containing a free cell */ struct mbr_cache_page *pp; if (!(p->first)) { /* the cache is empty; so we surely need to allocate the first page */ pp = cache_page_alloc (); p->first = pp; p->last = pp; p->current = pp; return pp; } if (p->current) { /* checking if there is at least a free block into the current page */ if (p->current->bitmap != 0xffffffff) return p->current; } pp = p->first; while (pp) { /* scanning the page list in order to discover if there is an existing page not yet completely filled */ if (pp->bitmap != 0xffffffff) { p->current = pp; return pp; } pp = pp->next; } /* we have to allocate a new page */ pp = cache_page_alloc (); p->last->next = pp; p->last = pp; p->current = pp; return pp; } static void cache_insert_cell (struct mbr_cache *p, sqlite3_int64 rowid, double minx, double miny, double maxx, double maxy) { /* inserting a new cell */ struct mbr_cache_page *pp = cache_get_free_page (p); int ib = cache_get_free_block (pp); struct mbr_cache_block *pb = pp->blocks + ib; int ic = cache_get_free_cell (pb); struct mbr_cache_cell *pc = pb->cells + ic; pc->rowid = rowid; pc->minx = minx; pc->miny = miny; pc->maxx = maxx; pc->maxy = maxy; /* marking the cache cell as used into the block bitmap */ pb->bitmap |= cache_bitmask (ic); /* updating the cache block MBR */ if (pb->minx > minx) pb->minx = minx; if (pb->maxx < maxx) pb->maxx = maxx; if (pb->miny > miny) pb->miny = miny; if (pb->maxy < maxy) pb->maxy = maxy; /* updating the cache page MBR */ if (pp->minx > minx) pp->minx = minx; if (pp->maxx < maxx) pp->maxx = maxx; if (pp->miny > miny) pp->miny = miny; if (pp->maxy < maxy) pp->maxy = maxy; /* fixing the cache page bitmap */ cache_fix_page_bitmap (pp); /* updating min-max rowid into the cache page */ if (pp->min_rowid > rowid) pp->min_rowid = rowid; if (pp->max_rowid < rowid) pp->max_rowid = rowid; } static struct mbr_cache * cache_load (sqlite3 * handle, const char *table, const char *column) { /* initial loading the MBR cache retrieving any existing entity from the main table */ sqlite3_stmt *stmt; int ret; char *sql_statement; sqlite3_int64 rowid; double minx; double maxx; double miny; double maxy; int v1; int v2; int v3; int v4; int v5; struct mbr_cache *p_cache; char *xcolumn; char *xtable; xcolumn = gaiaDoubleQuotedSql (column); xtable = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("SELECT ROWID, MbrMinX(\"%s\"), MbrMinY(\"%s\"), " "MbrMaxX(\"%s\"), MbrMaxY(\"%s\") FROM \"%s\"", xcolumn, xcolumn, xcolumn, xcolumn, xtable); free (xcolumn); free (xtable); ret = sqlite3_prepare_v2 (handle, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { /* some error occurred */ spatialite_e ("cache SQL error: %s\n", sqlite3_errmsg (handle)); return NULL; } p_cache = cache_alloc (); while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; if (ret == SQLITE_ROW) { v1 = 0; v2 = 0; v3 = 0; v4 = 0; v5 = 0; if (sqlite3_column_type (stmt, 0) == SQLITE_INTEGER) v1 = 1; if (sqlite3_column_type (stmt, 1) == SQLITE_FLOAT) v2 = 1; if (sqlite3_column_type (stmt, 1) == SQLITE_FLOAT) v3 = 1; if (sqlite3_column_type (stmt, 1) == SQLITE_FLOAT) v4 = 1; if (sqlite3_column_type (stmt, 1) == SQLITE_FLOAT) v5 = 1; if (v1 && v2 && v3 && v4 && v5) { /* ok, this entity is a valid one; inserting them into the MBR's cache */ rowid = sqlite3_column_int (stmt, 0); minx = sqlite3_column_double (stmt, 1); miny = sqlite3_column_double (stmt, 2); maxx = sqlite3_column_double (stmt, 3); maxy = sqlite3_column_double (stmt, 4); cache_insert_cell (p_cache, rowid, minx, miny, maxx, maxy); } } else { /* some unexpected error occurred */ spatialite_e ("sqlite3_step() error: %s\n", sqlite3_errmsg (handle)); sqlite3_finalize (stmt); cache_destroy (p_cache); return NULL; } } /* we have now to finalize the query [memory cleanup] */ sqlite3_finalize (stmt); return p_cache; } static int cache_find_next_cell (struct mbr_cache_page **page, int *i_block, int *i_cell, struct mbr_cache_cell **cell) { /* finding next cached cell */ struct mbr_cache_page *pp = *page; struct mbr_cache_block *pb; struct mbr_cache_cell *pc; int ib; int ic; int sib = *i_block; int sic = *i_cell; while (pp) { for (ib = sib; ib < 32; ib++) { pb = pp->blocks + ib; for (ic = sic; ic < 32; ic++) { if ((pb->bitmap & cache_bitmask (ic)) == 0x00000000) continue; pc = pb->cells + ic; if (pc == *cell) { /* this one is the current cell */ continue; } /* next cell found */ *page = pp; *i_block = ib; *i_cell = ic; *cell = pc; return 1; } sic = 0; } sib = 0; pp = pp->next; } return 0; } static int cache_find_next_mbr (struct mbr_cache_page **page, int *i_block, int *i_cell, struct mbr_cache_cell **cell, double minx, double miny, double maxx, double maxy, int mode) { /* finding next cached cell */ struct mbr_cache_page *pp = *page; struct mbr_cache_block *pb; struct mbr_cache_cell *pc; int ib; int ic; int sib = *i_block; int sic = *i_cell; int ok_mbr; while (pp) { ok_mbr = 0; if (pp->maxx >= minx && pp->minx <= maxx && pp->maxy >= miny && pp->miny <= maxy) ok_mbr = 1; if (ok_mbr) { for (ib = sib; ib < 32; ib++) { pb = pp->blocks + ib; ok_mbr = 0; if (pb->maxx >= minx && pb->minx <= maxx && pb->maxy >= miny && pb->miny <= maxy) ok_mbr = 1; if (ok_mbr) { for (ic = sic; ic < 32; ic++) { if ((pb->bitmap & cache_bitmask (ic)) == 0x00000000) continue; pc = pb->cells + ic; ok_mbr = 0; if (mode == GAIA_FILTER_MBR_INTERSECTS) { /* MBR INTERSECTS */ if (pc->maxx >= minx && pc->minx <= maxx && pc->maxy >= miny && pc->miny <= maxy) ok_mbr = 1; } else if (mode == GAIA_FILTER_MBR_CONTAINS) { /* MBR CONTAINS */ if (minx >= pc->minx && maxx <= pc->maxx && miny >= pc->miny && maxy <= pc->maxy) ok_mbr = 1; } else { /* MBR WITHIN */ if (pc->minx >= minx && pc->maxx <= maxx && pc->miny >= miny && pc->maxy <= maxy) ok_mbr = 1; } if (ok_mbr) { if (pc == *cell) { /* this one is the current cell */ continue; } /* next cell found */ *page = pp; *i_block = ib; *i_cell = ic; *cell = pc; return 1; } } } sic = 0; } } sib = 0; pp = pp->next; } return 0; } static struct mbr_cache_cell * cache_find_by_rowid (struct mbr_cache_page *pp, sqlite3_int64 rowid) { /* trying to find a row by rowid from the Mbr cache */ struct mbr_cache_block *pb; struct mbr_cache_cell *pc; int ib; int ic; while (pp) { if (rowid >= pp->min_rowid && rowid <= pp->max_rowid) { for (ib = 0; ib < 32; ib++) { pb = pp->blocks + ib; for (ic = 0; ic < 32; ic++) { if ((pb->bitmap & cache_bitmask (ic)) == 0x00000000) continue; pc = pb->cells + ic; if (pc->rowid == rowid) return pc; } } } pp = pp->next; } return 0; } static void cache_update_page (struct mbr_cache_page *pp, int i_block) { /* updating the cache block and cache page MBR after a DELETE or UPDATE occurred */ struct mbr_cache_block *pb; struct mbr_cache_cell *pc; int ib; int ic; /* updating the cache block MBR */ pb = pp->blocks + i_block; pb->minx = DBL_MAX; pb->miny = DBL_MAX; pb->maxx = -DBL_MAX; pb->maxy = -DBL_MAX; for (ic = 0; ic < 32; ic++) { if ((pb->bitmap & cache_bitmask (ic)) == 0x00000000) continue; pc = pb->cells + ic; if (pb->minx > pc->minx) pb->minx = pc->minx; if (pb->miny > pc->miny) pb->miny = pc->miny; if (pb->maxx < pc->maxx) pb->maxx = pc->maxx; if (pb->maxy < pc->maxy) pb->maxy = pc->maxy; } /* updating the cache page MBR */ pp->minx = DBL_MAX; pp->miny = DBL_MAX; pp->maxx = -DBL_MAX; pp->maxy = -DBL_MAX; pp->min_rowid = LONG64_MAX; pp->max_rowid = LONG64_MIN; for (ib = 0; ib < 32; ib++) { pb = pp->blocks + ib; for (ic = 0; ic < 32; ic++) { if ((pb->bitmap & cache_bitmask (ic)) == 0x00000000) continue; pc = pb->cells + ic; if (pp->minx > pc->minx) pp->minx = pc->minx; if (pp->miny > pc->miny) pp->miny = pc->miny; if (pp->maxx < pc->maxx) pp->maxx = pc->maxx; if (pp->maxy < pc->maxy) pp->maxy = pc->maxy; if (pp->min_rowid > pc->rowid) pp->min_rowid = pc->rowid; if (pp->max_rowid < pc->rowid) pp->max_rowid = pc->rowid; } } } static int cache_delete_cell (struct mbr_cache_page *pp, sqlite3_int64 rowid) { /* trying to delete a row identified by rowid from the Mbr cache */ struct mbr_cache_block *pb; struct mbr_cache_cell *pc; int ib; int ic; while (pp) { if (rowid >= pp->min_rowid && rowid <= pp->max_rowid) { for (ib = 0; ib < 32; ib++) { pb = pp->blocks + ib; for (ic = 0; ic < 32; ic++) { if ((pb->bitmap & cache_bitmask (ic)) == 0x00000000) continue; pc = pb->cells + ic; if (pc->rowid == rowid) { /* marking the cell as free */ pb->bitmap &= ~(cache_bitmask (ic)); /* marking the block as not full */ pp->bitmap &= ~(cache_bitmask (ib)); /* updating the cache block and cache page MBR */ cache_update_page (pp, ib); return 1; } } } } pp = pp->next; } return 0; } static int cache_update_cell (struct mbr_cache_page *pp, sqlite3_int64 rowid, double minx, double miny, double maxx, double maxy) { /* trying to update a row identified by rowid from the Mbr cache */ struct mbr_cache_block *pb; struct mbr_cache_cell *pc; int ib; int ic; while (pp) { if (rowid >= pp->min_rowid && rowid <= pp->max_rowid) { for (ib = 0; ib < 32; ib++) { pb = pp->blocks + ib; for (ic = 0; ic < 32; ic++) { if ((pb->bitmap & cache_bitmask (ic)) == 0x00000000) continue; pc = pb->cells + ic; if (pc->rowid == rowid) { /* updating the cell MBR */ pc->minx = minx; pc->miny = miny; pc->maxx = maxx; pc->maxy = maxy; /* updating the cache block and cache page MBR */ cache_update_page (pp, ib); return 1; } } } } pp = pp->next; } return 0; } static int mbrc_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table and caches related Geometry column */ int err; int ret; int i; int len; int n_rows; int n_columns; const char *vtable; const char *table; const char *column; const char *col_name; char *xvtable = NULL; char *xtable = NULL; char *xcolumn = NULL; char **results; char *err_msg = NULL; char *sql_statement; int ok_col; MbrCachePtr p_vt; char *xname; if (pAux) pAux = pAux; /* unused arg warning suppression */ p_vt = (MbrCachePtr) sqlite3_malloc (sizeof (MbrCache)); if (!p_vt) return SQLITE_NOMEM; *ppVTab = (sqlite3_vtab *) p_vt; p_vt->pModule = &my_mbr_module; p_vt->nRef = 0; p_vt->zErrMsg = NULL; p_vt->db = db; p_vt->table_name = NULL; p_vt->column_name = NULL; p_vt->cache = NULL; /* checking for table_name and geo_column_name */ if (argc == 5) { vtable = argv[2]; len = strlen (vtable); if ((*(vtable + 0) == '\'' || *(vtable + 0) == '"') && (*(vtable + len - 1) == '\'' || *(vtable + len - 1) == '"')) { /* the VirtualTableName is enclosed between quotes - we need to dequote it */ xvtable = gaiaDequotedSql (vtable); vtable = xvtable; } table = argv[3]; len = strlen (table); if ((*(table + 0) == '\'' || *(table + 0) == '"') && (*(table + len - 1) == '\'' || *(table + len - 1) == '"')) { /* the MainTableName is enclosed between quotes - we need to dequote it */ xtable = gaiaDequotedSql (table); table = xtable; } column = argv[4]; len = strlen (column); if ((*(column + 0) == '\'' || *(column + 0) == '"') && (*(column + len - 1) == '\'' || *(column + len - 1) == '"')) { /* the GeometryColumnName is enclosed between quotes - we need to dequote it */ xcolumn = gaiaDequotedSql (column); column = xcolumn; } len = strlen (table); p_vt->table_name = sqlite3_malloc (len + 1); strcpy (p_vt->table_name, table); len = strlen (column); p_vt->column_name = sqlite3_malloc (len + 1); strcpy (p_vt->column_name, column); if (xtable) free (xtable); if (xcolumn) free (xcolumn); } else { *pzErr = sqlite3_mprintf ("[MbrCache module] CREATE VIRTUAL: illegal arg list {table_name, geo_column_name}"); return SQLITE_ERROR; } /* retrieving the base table columns */ err = 0; ok_col = 0; xname = gaiaDoubleQuotedSql (p_vt->table_name); sql_statement = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (db, sql_statement, &results, &n_rows, &n_columns, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { sqlite3_free (sql_statement); err = 1; goto illegal; } if (n_rows > 1) { for (i = 1; i <= n_rows; i++) { col_name = results[(i * n_columns) + 1]; if (strcasecmp (col_name, p_vt->column_name) == 0) ok_col = 1; } sqlite3_free_table (results); if (!ok_col) err = 1; } else err = 1; illegal: if (err) { /* something is going the wrong way; creating a stupid default table */ xname = gaiaDoubleQuotedSql (vtable); sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (rowid INTEGER, mbr BLOB)", xname); free (xname); if (sqlite3_declare_vtab (db, sql_statement) != SQLITE_OK) { sqlite3_free (sql_statement); *pzErr = sqlite3_mprintf ("[MbrCache module] cannot build the VirtualTable\n"); return SQLITE_ERROR; } sqlite3_free (sql_statement); p_vt->error = 1; *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } p_vt->error = 0; xname = gaiaDoubleQuotedSql (vtable); sql_statement = sqlite3_mprintf ("CREATE TABLE \"%s\" (rowid INTEGER, mbr BLOB)", xname); free (xname); if (sqlite3_declare_vtab (db, sql_statement) != SQLITE_OK) { *pzErr = sqlite3_mprintf ("[MbrCache module] CREATE VIRTUAL: invalid SQL statement \"%s\"", sql_statement); sqlite3_free (sql_statement); return SQLITE_ERROR; } sqlite3_free (sql_statement); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } static int mbrc_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table - simply aliases mbrc_create() */ return mbrc_create (db, pAux, argc, argv, ppVTab, pzErr); } static int mbrc_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIdxInfo) { /* best index selection */ int i; int err = 1; int errors = 0; int mbr = 0; int rowid = 0; if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ for (i = 0; i < pIdxInfo->nConstraint; i++) { /* verifying the constraints */ struct sqlite3_index_constraint *p = &(pIdxInfo->aConstraint[i]); if (p->usable) { if (p->iColumn == 0 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) rowid++; else if (p->iColumn == 1 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) mbr++; else errors++; } } if (mbr == 1 && rowid == 0 && errors == 0) { /* this one is a valid spatially-filtered query */ pIdxInfo->idxNum = 2; for (i = 0; i < pIdxInfo->nConstraint; i++) { pIdxInfo->aConstraintUsage[i].argvIndex = 1; pIdxInfo->aConstraintUsage[i].omit = 1; } err = 0; } if (mbr == 0 && rowid == 1 && errors == 0) { /* this one is a valid rowid-filtered query */ pIdxInfo->idxNum = 1; pIdxInfo->estimatedCost = 1.0; for (i = 0; i < pIdxInfo->nConstraint; i++) { if (pIdxInfo->aConstraint[i].usable) { pIdxInfo->aConstraintUsage[i].argvIndex = 1; pIdxInfo->aConstraintUsage[i].omit = 1; } } err = 0; } if (mbr == 0 && rowid == 0 && errors == 0) { /* this one is a valid unfiltered query */ pIdxInfo->idxNum = 0; err = 0; } if (err) { /* illegal query */ pIdxInfo->idxNum = -1; } return SQLITE_OK; } static int mbrc_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ MbrCachePtr p_vt = (MbrCachePtr) pVTab; if (p_vt->cache) cache_destroy (p_vt->cache); if (p_vt->table_name) sqlite3_free (p_vt->table_name); if (p_vt->column_name) sqlite3_free (p_vt->column_name); sqlite3_free (p_vt); return SQLITE_OK; } static int mbrc_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases mbrc_disconnect() */ return mbrc_disconnect (pVTab); } static void mbrc_read_row_unfiltered (MbrCacheCursorPtr cursor) { /* trying to read the next row from the Mbr cache - unfiltered mode */ struct mbr_cache_page *page = cursor->current_page; struct mbr_cache_cell *cell = cursor->current_cell; int i_block = cursor->current_block_index; int i_cell = cursor->current_cell_index; if (cache_find_next_cell (&page, &i_block, &i_cell, &cell)) { cursor->current_page = page; cursor->current_block_index = i_block; cursor->current_cell_index = i_cell; cursor->current_cell = cell; } else cursor->eof = 1; } static void mbrc_read_row_filtered (MbrCacheCursorPtr cursor) { /* trying to read the next row from the Mbr cache - spatially filter mode */ struct mbr_cache_page *page = cursor->current_page; struct mbr_cache_cell *cell = cursor->current_cell; int i_block = cursor->current_block_index; int i_cell = cursor->current_cell_index; if (cache_find_next_mbr (&page, &i_block, &i_cell, &cell, cursor->minx, cursor->miny, cursor->maxx, cursor->maxy, cursor->mbr_mode)) { cursor->current_page = page; cursor->current_block_index = i_block; cursor->current_cell_index = i_cell; cursor->current_cell = cell; } else cursor->eof = 1; } static void mbrc_read_row_by_rowid (MbrCacheCursorPtr cursor, sqlite3_int64 rowid) { /* trying to find a row by rowid from the Mbr cache */ struct mbr_cache_cell *cell = cache_find_by_rowid (cursor->pVtab->cache->first, rowid); if (cell) cursor->current_cell = cell; else { cursor->current_cell = NULL; cursor->eof = 1; } } static int mbrc_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ MbrCachePtr p_vt = (MbrCachePtr) pVTab; MbrCacheCursorPtr cursor = (MbrCacheCursorPtr) sqlite3_malloc (sizeof (MbrCacheCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->pVtab = p_vt; if (p_vt->error) { cursor->eof = 1; *ppCursor = (sqlite3_vtab_cursor *) cursor; return SQLITE_OK; } if (!(p_vt->cache)) p_vt->cache = cache_load (p_vt->db, p_vt->table_name, p_vt->column_name); cursor->current_page = cursor->pVtab->cache->first; cursor->current_block_index = 0; cursor->current_cell_index = 0; cursor->current_cell = NULL; cursor->eof = 0; *ppCursor = (sqlite3_vtab_cursor *) cursor; return SQLITE_OK; } static int mbrc_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ sqlite3_free (pCursor); return SQLITE_OK; } static int mbrc_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ MbrCacheCursorPtr cursor = (MbrCacheCursorPtr) pCursor; if (idxStr || argc) idxStr = idxStr; /* unused arg warning suppression */ if (cursor->pVtab->error) { cursor->eof = 1; return SQLITE_OK; } cursor->current_page = cursor->pVtab->cache->first; cursor->current_block_index = 0; cursor->current_cell_index = 0; cursor->current_cell = NULL; cursor->eof = 0; cursor->strategy = idxNum; if (idxNum == 0) { /* unfiltered mode */ mbrc_read_row_unfiltered (cursor); return SQLITE_OK; } if (idxNum == 1) { /* filtering by ROWID */ sqlite3_int64 rowid = sqlite3_value_int64 (argv[0]); mbrc_read_row_by_rowid (cursor, rowid); return SQLITE_OK; } if (idxNum == 2) { /* filtering by MBR spatial relation */ unsigned char *p_blob; int n_bytes; double minx; double miny; double maxx; double maxy; int mode; if (sqlite3_value_type (argv[0]) != SQLITE_BLOB) cursor->eof = 1; else { p_blob = (unsigned char *) sqlite3_value_blob (argv[0]); n_bytes = sqlite3_value_bytes (argv[0]); if (gaiaParseFilterMbr (p_blob, n_bytes, &minx, &miny, &maxx, &maxy, &mode)) { if (mode == GAIA_FILTER_MBR_WITHIN || mode == GAIA_FILTER_MBR_CONTAINS || mode == GAIA_FILTER_MBR_INTERSECTS) { cursor->minx = minx; cursor->miny = miny; cursor->maxx = maxx; cursor->maxy = maxy; cursor->mbr_mode = mode; mbrc_read_row_filtered (cursor); } else cursor->eof = 1; } } return SQLITE_OK; } /* illegal query mode */ cursor->eof = 1; return SQLITE_OK; } static int mbrc_next (sqlite3_vtab_cursor * pCursor) { /* fetching a next row from cursor */ MbrCacheCursorPtr cursor = (MbrCacheCursorPtr) pCursor; if (cursor->pVtab->error) { cursor->eof = 1; return SQLITE_OK; } if (cursor->strategy == 0) mbrc_read_row_unfiltered (cursor); else if (cursor->strategy == 2) mbrc_read_row_filtered (cursor); else cursor->eof = 1; return SQLITE_OK; } static int mbrc_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ MbrCacheCursorPtr cursor = (MbrCacheCursorPtr) pCursor; return cursor->eof; } static int mbrc_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ MbrCacheCursorPtr cursor = (MbrCacheCursorPtr) pCursor; if (!(cursor->current_cell)) sqlite3_result_null (pContext); else { if (column == 0) { /* the PRIMARY KEY column */ sqlite3_result_int64 (pContext, cursor->current_cell->rowid); } if (column == 1) { /* the MBR column */ char *envelope = sqlite3_mprintf ("POLYGON((" "%1.2f %1.2f, %1.2f %1.2f, %1.2f %1.2f, %1.2f %1.2f, %1.2f %1.2f))", cursor->current_cell->minx, cursor->current_cell->miny, cursor->current_cell->maxx, cursor->current_cell->miny, cursor->current_cell->maxx, cursor->current_cell->maxy, cursor->current_cell->minx, cursor->current_cell->maxy, cursor->current_cell->minx, cursor->current_cell->miny); sqlite3_result_text (pContext, envelope, strlen (envelope), sqlite3_free); } } return SQLITE_OK; } static int mbrc_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ MbrCacheCursorPtr cursor = (MbrCacheCursorPtr) pCursor; *pRowid = cursor->current_cell->rowid; return SQLITE_OK; } static int mbrc_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ sqlite3_int64 rowid; unsigned char *p_blob; int n_bytes; double minx; double miny; double maxx; double maxy; int mode; int illegal = 0; MbrCachePtr p_vtab = (MbrCachePtr) pVTab; if (pRowid) pRowid = pRowid; /* unused arg warning suppression */ if (p_vtab->error) return SQLITE_OK; if (!(p_vtab->cache)) p_vtab->cache = cache_load (p_vtab->db, p_vtab->table_name, p_vtab->column_name); if (argc == 1) { /* performing a DELETE */ if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER) { rowid = sqlite3_value_int64 (argv[0]); cache_delete_cell (p_vtab->cache->first, rowid); } else illegal = 1; } else { if (sqlite3_value_type (argv[0]) == SQLITE_NULL) { /* performing an INSERT */ if (argc == 4) { if (sqlite3_value_type (argv[2]) == SQLITE_INTEGER && sqlite3_value_type (argv[3]) == SQLITE_BLOB) { rowid = sqlite3_value_int64 (argv[2]); p_blob = (unsigned char *) sqlite3_value_blob (argv[3]); n_bytes = sqlite3_value_bytes (argv[3]); if (gaiaParseFilterMbr (p_blob, n_bytes, &minx, &miny, &maxx, &maxy, &mode)) { if (mode == GAIA_FILTER_MBR_DECLARE) { if (!cache_find_by_rowid (p_vtab->cache->first, rowid)) cache_insert_cell (p_vtab->cache, rowid, minx, miny, maxx, maxy); } else illegal = 1; } else illegal = 1; } else illegal = 1; } else illegal = 1; } else { /* performing an UPDATE */ if (argc == 4) { if (sqlite3_value_type (argv[0]) == SQLITE_INTEGER && sqlite3_value_type (argv[3]) == SQLITE_BLOB) { rowid = sqlite3_value_int64 (argv[0]); p_blob = (unsigned char *) sqlite3_value_blob (argv[3]); n_bytes = sqlite3_value_bytes (argv[3]); if (gaiaParseFilterMbr (p_blob, n_bytes, &minx, &miny, &maxx, &maxy, &mode)) { if (mode == GAIA_FILTER_MBR_DECLARE) cache_update_cell (p_vtab->cache->first, rowid, minx, miny, maxx, maxy); else illegal = 1; } else illegal = 1; } else illegal = 1; } else illegal = 1; } } if (illegal) return SQLITE_MISMATCH; return SQLITE_OK; } static int mbrc_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int mbrc_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int mbrc_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int mbrc_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } int sqlite3MbrCacheInit (sqlite3 * db) { int rc = SQLITE_OK; my_mbr_module.iVersion = 1; my_mbr_module.xCreate = &mbrc_create; my_mbr_module.xConnect = &mbrc_connect; my_mbr_module.xBestIndex = &mbrc_best_index; my_mbr_module.xDisconnect = &mbrc_disconnect; my_mbr_module.xDestroy = &mbrc_destroy; my_mbr_module.xOpen = &mbrc_open; my_mbr_module.xClose = &mbrc_close; my_mbr_module.xFilter = &mbrc_filter; my_mbr_module.xNext = &mbrc_next; my_mbr_module.xEof = &mbrc_eof; my_mbr_module.xColumn = &mbrc_column; my_mbr_module.xRowid = &mbrc_rowid; my_mbr_module.xUpdate = &mbrc_update; my_mbr_module.xBegin = &mbrc_begin; my_mbr_module.xSync = &mbrc_sync; my_mbr_module.xCommit = &mbrc_commit; my_mbr_module.xRollback = &mbrc_rollback; my_mbr_module.xFindFunction = NULL; sqlite3_create_module_v2 (db, "MbrCache", &my_mbr_module, NULL, 0); return rc; } int mbrcache_extension_init (void *xdb) { sqlite3 *db = (sqlite3 *) xdb; return sqlite3MbrCacheInit (db); } libspatialite-4.3.0a/src/spatialite/virtualxpath.c0000664000175000017500000007374412544707704017306 00000000000000/* virtualxpath.c -- SQLite3 extension [VIRTUAL XPath handler] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #ifdef ENABLE_LIBXML2 /* LIBXML2 enabled: supporting XML documents */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #define LONG64_MAX _I64_MAX #define LONG64_MIN _I64_MIN #else #define LONG64_MAX 9223372036854775807LL #define LONG64_MIN (-LONG64_MAX + 1) #endif #include #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #define strncasecmp _strnicmp #endif /* not WIN32 */ static struct sqlite3_module my_xpath_module; /****************************************************************************** / / VirtualTable structs / ******************************************************************************/ typedef struct VirtualXPathStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ const void *p_cache; /* pointer to the internal cache */ char *table; /* the real-table name */ char *column; /* the real-column name */ } VirtualXPath; typedef VirtualXPath *VirtualXPathPtr; typedef struct VirtualXPathCursorStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualXPathPtr pVtab; /* Virtual table of this cursor */ int eof; /* the EOF marker */ sqlite3_stmt *stmt; char *xpathExpr; xmlDocPtr xmlDoc; xmlXPathContextPtr xpathContext; xmlXPathObjectPtr xpathObj; int xpathIdx; sqlite3_int64 current_row; int keyOp1; sqlite3_int64 keyVal1; int keyOp2; sqlite3_int64 keyVal2; } VirtualXPathCursor; typedef VirtualXPathCursor *VirtualXPathCursorPtr; static void vxpath_free_ns (struct vxpath_ns *ns) { /* memory cleanup - destroying a Namespace item */ if (!ns) return; if (ns->Prefix) free (ns->Prefix); if (ns->Href) free (ns->Href); free (ns); } SPATIALITE_PRIVATE void vxpath_free_namespaces (struct vxpath_namespaces *ns_list) { /* memory cleanup - destroying the Namespaces list */ struct vxpath_ns *ns; struct vxpath_ns *nns; if (!ns_list) return; ns = ns_list->First; while (ns) { nns = ns->Next; vxpath_free_ns (ns); ns = nns; } free (ns_list); } static void vxpath_add_ns (struct vxpath_namespaces *ns_list, const char *prefix, const char *href) { /* inserting a further Namespace into the list */ int len; struct vxpath_ns *ns = ns_list->First; while (ns) { /* checking if it's already defined */ if (ns->Prefix == NULL || prefix == NULL) { if (ns->Prefix == NULL && prefix == NULL && strcmp (ns->Href, href) == 0) { /* ok, already defined (default Namespace) */ return; } } else { if (strcmp (ns->Prefix, prefix) == 0 && strcmp (ns->Href, href) == 0) { /* ok, already defined */ return; } } ns = ns->Next; } /* inserting a new Namespace */ ns = malloc (sizeof (struct vxpath_ns)); if (prefix == NULL) ns->Prefix = NULL; else { len = strlen (prefix); ns->Prefix = malloc (len + 1); strcpy (ns->Prefix, prefix); } len = strlen (href); ns->Href = malloc (len + 1); strcpy (ns->Href, href); ns->Next = NULL; if (ns_list->First == NULL) ns_list->First = ns; if (ns_list->Last != NULL) ns_list->Last->Next = ns; ns_list->Last = ns; } static void vxpath_feed_ns (struct vxpath_namespaces *ns_list, xmlNodePtr start) { /* recursively searching for Namespaces */ xmlNodePtr node = start; while (node) { if (node->ns != NULL) { /* a Namespace is defined */ vxpath_add_ns (ns_list, (const char *) (node->ns->prefix), (const char *) (node->ns->href)); } if (node->properties != NULL) { /* exploring the Attribute list */ struct _xmlAttr *attr = node->properties; while (attr) { if (attr->type == XML_ATTRIBUTE_NODE) { if (attr->ns != NULL) { /* a Namespace is defined */ vxpath_add_ns (ns_list, (const char *) (attr->ns-> prefix), (const char *) (attr->ns-> href)); } } attr = attr->next; } } vxpath_feed_ns (ns_list, node->children); node = node->next; } } SPATIALITE_PRIVATE struct vxpath_namespaces * vxpath_get_namespaces (void *p_xml_doc) { /* creating and populating the Namespaces list */ xmlDocPtr xml_doc = (xmlDocPtr) p_xml_doc; xmlNodePtr root = xmlDocGetRootElement (xml_doc); struct vxpath_namespaces *ns_list; ns_list = malloc (sizeof (struct vxpath_namespaces)); ns_list->First = NULL; ns_list->Last = NULL; vxpath_feed_ns (ns_list, root); return ns_list; } static int is_valid_cache (struct splite_internal_cache *cache) { /* testing if the passed cache is a valid one */ if (cache == NULL) return 0; if (cache->magic1 != SPATIALITE_CACHE_MAGIC1 || cache->magic2 != SPATIALITE_CACHE_MAGIC2) return 0; return 1; } static void vxpathError (void *ctx, const char *msg, ...) { /* appending to the current XPath Error buffer */ struct splite_internal_cache *cache = (struct splite_internal_cache *) ctx; gaiaOutBufferPtr buf; char out[65536]; va_list args; if (ctx != NULL) ctx = NULL; /* suppressing stupid compiler warnings (unused args) */ if (!is_valid_cache (cache)) return; buf = (gaiaOutBufferPtr) (cache->xmlXPathErrors); va_start (args, msg); vsnprintf (out, 65536, msg, args); gaiaAppendToOutBuffer (buf, out); va_end (args); } static void vxpathResetXmlErrors (struct splite_internal_cache *cache) { /* resetting the XPath Error buffer */ gaiaOutBufferPtr buf; if (!is_valid_cache (cache)) return; buf = (gaiaOutBufferPtr) (cache->xmlXPathErrors); gaiaOutBufferReset (buf); } GAIAGEO_DECLARE int gaiaIsValidXPathExpression (const void *p_cache, const char *xpath_expr) { struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; xmlXPathCompExprPtr result; xmlGenericErrorFunc xpathError; if (!is_valid_cache (cache)) return 0; xpathError = (xmlGenericErrorFunc) vxpathError; vxpathResetXmlErrors (cache); xmlSetGenericErrorFunc (cache, xpathError); /* testing an XPath expression */ result = xmlXPathCompile ((const xmlChar *) xpath_expr); xmlSetGenericErrorFunc ((void *) stderr, NULL); if (result) { xmlXPathFreeCompExpr (result); return 1; } return 0; } SPATIALITE_PRIVATE int vxpath_eval_expr (const void *p_cache, void *x_xml_doc, const char *xpath_expr, void *x_xpathCtx, void *x_xpathObj) { struct splite_internal_cache *cache = (struct splite_internal_cache *) p_cache; /* evaluating an XPath expression */ xmlDocPtr xml_doc = (xmlDocPtr) x_xml_doc; xmlXPathContextPtr *p_xpathCtx = (xmlXPathContextPtr *) x_xpathCtx; xmlXPathObjectPtr *p_xpathObj = (xmlXPathObjectPtr *) x_xpathObj; xmlXPathObjectPtr xpathObj; xmlXPathContextPtr xpathCtx; xmlGenericErrorFunc xpathError = (xmlGenericErrorFunc) vxpathError; /* attempting to identify all required Namespaces */ struct vxpath_ns *ns; struct vxpath_namespaces *ns_list = vxpath_get_namespaces (xml_doc); if (is_valid_cache (cache)) { vxpathResetXmlErrors (cache); xmlSetGenericErrorFunc (cache, xpathError); } /* creating an XPath context */ xpathCtx = xmlXPathNewContext (xml_doc); if (xpathCtx == NULL) { xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } /* registering all Namespaces */ if (xpathCtx != NULL && ns_list != NULL) { ns = ns_list->First; while (ns) { if (ns->Prefix == NULL) { /* the default Namespace always is "dflt:xx" */ xmlXPathRegisterNs (xpathCtx, (xmlChar *) "dflt", (xmlChar *) ns->Href); } else { /* a fully qualified Namespace */ xmlXPathRegisterNs (xpathCtx, (xmlChar *) ns->Prefix, (xmlChar *) ns->Href); } ns = ns->Next; } } vxpath_free_namespaces (ns_list); /* evaluating the XPath expression */ xpathObj = xmlXPathEvalExpression ((const xmlChar *) xpath_expr, xpathCtx); if (xpathObj != NULL) { xmlNodeSetPtr nodes = xpathObj->nodesetval; int num_nodes = (nodes) ? nodes->nodeNr : 0; if (num_nodes >= 1) { /* OK: match found */ *p_xpathCtx = xpathCtx; *p_xpathObj = xpathObj; xmlSetGenericErrorFunc ((void *) stderr, NULL); return 1; } /* invalid: empty nodeset */ xmlXPathFreeObject (xpathObj); } xmlXPathFreeContext (xpathCtx); xmlSetGenericErrorFunc ((void *) stderr, NULL); return 0; } static void vxpath_read_row (VirtualXPathCursorPtr cursor) { /* trying to read a row from the real-table */ sqlite3_stmt *stmt; int ret; sqlite3_int64 pk; int eof; if (cursor->stmt == NULL || cursor->xpathExpr == NULL) return; if (cursor->xpathObj) xmlXPathFreeObject (cursor->xpathObj); if (cursor->xpathContext) xmlXPathFreeContext (cursor->xpathContext); if (cursor->xmlDoc) xmlFreeDoc (cursor->xmlDoc); cursor->xmlDoc = NULL; cursor->xpathContext = NULL; cursor->xpathObj = NULL; stmt = cursor->stmt; sqlite3_bind_int64 (stmt, 1, cursor->current_row); while (1) { ret = sqlite3_step (stmt); if (ret == SQLITE_ROW) { pk = sqlite3_column_int64 (stmt, 0); /* filtering the PK value */ eof = 0; switch (cursor->keyOp1) { case SQLITE_INDEX_CONSTRAINT_EQ: if (pk > cursor->keyVal1) eof = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (pk >= cursor->keyVal1) eof = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (pk > cursor->keyVal1) eof = 1; break; }; switch (cursor->keyOp2) { case SQLITE_INDEX_CONSTRAINT_EQ: if (pk > cursor->keyVal2) eof = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (pk >= cursor->keyVal2) eof = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (pk > cursor->keyVal2) eof = 1; break; }; if (eof) { cursor->eof = 1; return; } if (sqlite3_column_type (stmt, 1) == SQLITE_BLOB) { xmlDocPtr xml_doc; int xml_len; unsigned char *xml; const unsigned char *blob = sqlite3_column_blob (stmt, 1); int size = sqlite3_column_bytes (stmt, 1); gaiaXmlFromBlob (blob, size, -1, &xml, &xml_len); if (!xml) continue; xml_doc = xmlReadMemory ((const char *) xml, xml_len, "noname.xml", NULL, 0); if (xml_doc != NULL) { xmlXPathContextPtr xpathCtx; xmlXPathObjectPtr xpathObj; if (vxpath_eval_expr (cursor->pVtab->p_cache, xml_doc, cursor->xpathExpr, &xpathCtx, &xpathObj)) { free (xml); if (cursor->xpathObj) xmlXPathFreeObject (cursor->xpathObj); if (cursor->xpathContext) xmlXPathFreeContext (cursor->xpathContext); if (cursor->xmlDoc) xmlFreeDoc (cursor->xmlDoc); cursor->xmlDoc = xml_doc; cursor->xpathContext = xpathCtx; cursor->xpathObj = xpathObj; cursor->xpathIdx = 0; break; } free (xml); xmlFreeDoc (xml_doc); } } } else { /* an error occurred */ cursor->eof = 1; return; } } cursor->eof = 0; cursor->current_row = pk; } static void vxpath_check (sqlite3 * db, const char *table, const char *column, int *okTable, int *okCol) { /* checking if both Table and Column exist */ char **results; char *sql; char *xname; int ret; int i; int n_rows; int n_columns; xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (db, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return; if (n_rows >= 1) { *okTable = 1; for (i = 1; i <= n_rows; i++) { const char *col_name = results[(i * n_columns) + 1]; if (strcasecmp (col_name, column) == 0) *okCol = 1; } } sqlite3_free_table (results); } static int vxpath_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table for XPath */ VirtualXPathPtr p_vt; char *vtable = NULL; char *table = NULL; char *column = NULL; char *xname; char *sql; int okTable = 0; int okCol = 0; if (argc == 5) { vtable = gaiaDequotedSql ((char *) argv[2]); table = gaiaDequotedSql ((char *) argv[3]); column = gaiaDequotedSql ((char *) argv[4]); } else { *pzErr = sqlite3_mprintf ("[VirtualXPath module] CREATE VIRTUAL: illegal arg list {void}\n"); return SQLITE_ERROR; } vxpath_check (db, table, column, &okTable, &okCol); if (!okTable || !okCol) goto illegal; xname = gaiaDoubleQuotedSql (vtable); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (pkid INTEGER, sub INTEGER, " "parent TEXT, node TEXT, attribute TEXT, " "value TEXT, xpath_expr TEXT)", xname); free (xname); if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) { sqlite3_free (sql); *pzErr = sqlite3_mprintf ("[VirtualXPath module] CREATE VIRTUAL: invalid SQL statement \"%s\"", sql); goto error; } sqlite3_free (sql); p_vt = (VirtualXPathPtr) sqlite3_malloc (sizeof (VirtualXPath)); if (!p_vt) return SQLITE_NOMEM; p_vt->db = db; p_vt->p_cache = pAux; if (p_vt->p_cache == NULL) spatialite_e ("VirtualXPath WARNING - no XML cache is available !!!\n"); p_vt->nRef = 0; p_vt->zErrMsg = NULL; p_vt->table = table; p_vt->column = column; *ppVTab = (sqlite3_vtab *) p_vt; free (vtable); return SQLITE_OK; illegal: /* something is going the wrong way */ if (!okTable == 0) *pzErr = sqlite3_mprintf ("[VirtualXPath module] table \"%s\" doesn't exists\n", table); else if (!okCol) *pzErr = sqlite3_mprintf ("[VirtualXPath module] table \"%s\" exists, but has no \"%s\" column\n", table, column); error: return SQLITE_ERROR; } static int vxpath_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table - simply aliases vxpath_create() */ return vxpath_create (db, pAux, argc, argv, ppVTab, pzErr); } static int vxpath_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIdxInfo) { /* best index selection */ int i; int errors = 0; int err = 1; int xpath = 0; if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ for (i = 0; i < pIdxInfo->nConstraint; i++) { /* verifying the constraints */ struct sqlite3_index_constraint *p = &(pIdxInfo->aConstraint[i]); if (p->usable) { if (p->iColumn == 0); else if (p->iColumn == 6 && p->op == SQLITE_INDEX_CONSTRAINT_EQ) xpath++; else errors++; } } if (xpath == 1 && errors == 0) { /* this one is a valid XPath query */ pIdxInfo->idxNum = 1; pIdxInfo->estimatedCost = 1.0; pIdxInfo->idxStr = sqlite3_malloc (pIdxInfo->nConstraint * 2); pIdxInfo->needToFreeIdxStr = 1; for (i = 0; i < pIdxInfo->nConstraint; i++) { struct sqlite3_index_constraint *p = &(pIdxInfo->aConstraint[i]); if (p->usable) { char *pStr = pIdxInfo->idxStr + (i * 2); if (p->iColumn == 6) *pStr = 0; else *pStr = 1; pStr++; *pStr = p->op; pIdxInfo->aConstraintUsage[i].argvIndex = i + 1; pIdxInfo->aConstraintUsage[i].omit = 1; } } err = 0; } if (err) { /* illegal query */ pIdxInfo->idxNum = 0; } return SQLITE_OK; } static int vxpath_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualXPathPtr p_vt = (VirtualXPathPtr) pVTab; free (p_vt->column); free (p_vt->table); sqlite3_free (p_vt); return SQLITE_OK; } static int vxpath_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases vxpath_disconnect() */ return vxpath_disconnect (pVTab); } static int vxpath_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ sqlite3_stmt *stmt; int ret; char *sql; char *xname; char *xcolumn; VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) sqlite3_malloc (sizeof (VirtualXPathCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->pVtab = (VirtualXPathPtr) pVTab; cursor->xmlDoc = NULL; cursor->xpathContext = NULL; cursor->xpathObj = NULL; cursor->xpathExpr = NULL; cursor->stmt = NULL; cursor->keyOp1 = 0; cursor->keyVal1 = 0; cursor->keyOp2 = 0; cursor->keyVal2 = 0; xcolumn = gaiaDoubleQuotedSql (cursor->pVtab->column); xname = gaiaDoubleQuotedSql (cursor->pVtab->table); sql = sqlite3_mprintf ("SELECT ROWID, \"%s\" FROM \"%s\"" " WHERE ROWID >= ?", xcolumn, xname); free (xname); free (xcolumn); ret = sqlite3_prepare_v2 (cursor->pVtab->db, sql, strlen (sql), &stmt, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { /* an error occurred */ cursor->eof = 1; return SQLITE_ERROR; } cursor->stmt = stmt; cursor->current_row = LONG64_MIN; cursor->eof = 0; *ppCursor = (sqlite3_vtab_cursor *) cursor; return SQLITE_OK; } static int vxpath_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) pCursor; if (cursor->stmt) sqlite3_finalize (cursor->stmt); if (cursor->xpathObj) xmlXPathFreeObject (cursor->xpathObj); if (cursor->xpathContext) xmlXPathFreeContext (cursor->xpathContext); if (cursor->xmlDoc) xmlFreeDoc (cursor->xmlDoc); if (cursor->xpathExpr) free (cursor->xpathExpr); sqlite3_free (pCursor); return SQLITE_OK; } static int vxpath_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ int ok = 0; VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) pCursor; if (idxStr) idxStr = idxStr; /* unused arg warning suppression */ cursor->eof = 1; if (idxNum == 1) { int i; cursor->keyOp1 = 0; cursor->keyOp2 = 0; for (i = 0; i < argc; i++) { const char *pStr = idxStr + (i * 2); if (*pStr == 0) { /* retrieving the XPath expression param */ if (sqlite3_value_type (argv[i]) == SQLITE_TEXT) { char *exp = (char *) sqlite3_value_text (argv[i]); if (exp != NULL) { int len = strlen (exp); cursor->xpathExpr = malloc (len + 1); strcpy (cursor->xpathExpr, exp); } ok = 1; } } else { /* evaluating a ROWID contraint */ pStr++; if (cursor->keyOp1 == 0) { cursor->keyOp1 = *pStr; cursor->keyVal1 = sqlite3_value_int64 (argv[i]); } else { cursor->keyOp2 = *pStr; cursor->keyVal2 = sqlite3_value_int64 (argv[i]); } } } } if (!ok) { cursor->eof = 1; return SQLITE_OK; } /* attempting to set a reasonable ROWID */ switch (cursor->keyOp1) { case SQLITE_INDEX_CONSTRAINT_EQ: cursor->current_row = cursor->keyVal1; break; case SQLITE_INDEX_CONSTRAINT_GT: cursor->current_row = cursor->keyVal1 + 1; break; case SQLITE_INDEX_CONSTRAINT_GE: cursor->current_row = cursor->keyVal1; break; }; switch (cursor->keyOp2) { case SQLITE_INDEX_CONSTRAINT_EQ: cursor->current_row = cursor->keyVal2; break; case SQLITE_INDEX_CONSTRAINT_GT: cursor->current_row = cursor->keyVal2 + 1; break; case SQLITE_INDEX_CONSTRAINT_GE: cursor->current_row = cursor->keyVal2; break; }; vxpath_read_row (cursor); return SQLITE_OK; } static int vxpath_next (sqlite3_vtab_cursor * pCursor) { /* fetching a next row from cursor */ VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) pCursor; if (cursor->xpathObj != NULL) { /* we already have a current XPath node-set */ xmlNodeSetPtr nodes = cursor->xpathObj->nodesetval; int num_nodes = (nodes) ? nodes->nodeNr : 0; if ((cursor->xpathIdx + 1) < num_nodes) { /* ok, consuming the current XPath node from the node-set */ cursor->xpathIdx += 1; return SQLITE_OK; } } (cursor->current_row)++; vxpath_read_row (cursor); return SQLITE_OK; } static int vxpath_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) pCursor; return cursor->eof; } static int vxpath_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) pCursor; xmlNodeSetPtr nodeset = cursor->xpathObj->nodesetval; xmlNodePtr node = nodeset->nodeTab[cursor->xpathIdx]; xmlNodePtr parent = node->parent; char *xParent = NULL; char *xNode = NULL; char *xAttribute = NULL; char *xValue = NULL; char *prefix; if (node->type == XML_ELEMENT_NODE) { if (parent != NULL) { if (parent->ns != NULL && parent->name != NULL) { prefix = (char *) (parent->ns->prefix); if (prefix == NULL) prefix = "dflt"; xParent = sqlite3_mprintf ("%s:%s", prefix, parent->name); } else if (parent->name != NULL) xParent = sqlite3_mprintf ("%s", parent->name); } if (node->ns != NULL && node->name != NULL) { prefix = (char *) (node->ns->prefix); if (prefix == NULL) prefix = "dflt"; xNode = sqlite3_mprintf ("%s:%s", prefix, node->name); } else if (node->name != NULL) xNode = sqlite3_mprintf ("%s", node->name); } else if (node->type == XML_ATTRIBUTE_NODE) { if (parent != NULL) { xmlNodePtr granpa = parent->parent; if (granpa != NULL) { if (granpa->ns != NULL && granpa->name != NULL) { prefix = (char *) (granpa->ns->prefix); if (prefix == NULL) prefix = "dflt"; xParent = sqlite3_mprintf ("%s:%s", prefix, granpa->name); } else if (granpa->name != NULL) xParent = sqlite3_mprintf ("%s", granpa->name); } if (parent->ns != NULL && parent->name != NULL) { prefix = (char *) (parent->ns->prefix); if (prefix == NULL) prefix = "dflt"; xNode = sqlite3_mprintf ("%s:%s", prefix, parent->name); } else if (parent->name != NULL) xNode = sqlite3_mprintf ("%s", parent->name); } if (node->ns != NULL && node->name != NULL) { prefix = (char *) (node->ns->prefix); if (prefix == NULL) prefix = "dflt"; xAttribute = sqlite3_mprintf ("%s:%s", prefix, node->name); } else if (node->name != NULL) xAttribute = sqlite3_mprintf ("%s", node->name); if (node->children != NULL) { if (node->children->content != NULL) xValue = sqlite3_mprintf ("%s", node->children->content); } } else if (node->type == XML_TEXT_NODE) { if (parent != NULL) { xmlNodePtr granpa = parent->parent; if (granpa != NULL) { if (granpa->ns != NULL && granpa->name != NULL) { prefix = (char *) (granpa->ns->prefix); if (prefix == NULL) prefix = "dflt"; xParent = sqlite3_mprintf ("%s:%s", prefix, granpa->name); } else if (granpa->name != NULL) xParent = sqlite3_mprintf ("%s", granpa->name); } if (parent->ns != NULL && parent->name != NULL) { prefix = (char *) (parent->ns->prefix); if (prefix == NULL) prefix = "dflt"; xNode = sqlite3_mprintf ("%s:%s", prefix, parent->name); } else if (parent->name != NULL) xNode = sqlite3_mprintf ("%s", parent->name); } if (node->content != NULL) xValue = sqlite3_mprintf ("%s", node->content); } if (column == 0) sqlite3_result_int64 (pContext, cursor->current_row); else if (column == 1) sqlite3_result_int (pContext, cursor->xpathIdx); else if (column == 2) { if (!xParent) sqlite3_result_null (pContext); else sqlite3_result_text (pContext, xParent, strlen (xParent), SQLITE_TRANSIENT); } else if (column == 3) { if (!xNode) sqlite3_result_null (pContext); else sqlite3_result_text (pContext, xNode, strlen (xNode), SQLITE_TRANSIENT); } else if (column == 4) { if (!xAttribute) sqlite3_result_null (pContext); else sqlite3_result_text (pContext, xAttribute, strlen (xAttribute), SQLITE_TRANSIENT); } else if (column == 5) { if (!xValue) sqlite3_result_null (pContext); else sqlite3_result_text (pContext, xValue, strlen (xValue), SQLITE_TRANSIENT); } else if (column == 6) sqlite3_result_text (pContext, cursor->xpathExpr, strlen (cursor->xpathExpr), SQLITE_STATIC); else sqlite3_result_null (pContext); if (xParent) sqlite3_free (xParent); if (xNode) sqlite3_free (xNode); if (xAttribute) sqlite3_free (xAttribute); if (xValue) sqlite3_free (xValue); return SQLITE_OK; } static int vxpath_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualXPathCursorPtr cursor = (VirtualXPathCursorPtr) pCursor; *pRowid = cursor->current_row; return SQLITE_OK; } static int vxpath_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ if (pRowid || argc || argv || pVTab) pRowid = pRowid; /* unused arg warning suppression */ /* read only datasource */ return SQLITE_READONLY; } static int vxpath_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vxpath_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vxpath_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vxpath_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vxpath_rename (sqlite3_vtab * pVTab, const char *zNew) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ if (zNew) zNew = zNew; /* unused arg warning suppression */ return SQLITE_ERROR; } static int spliteVirtualXPathInit (sqlite3 * db, void *p_cache) { int rc = SQLITE_OK; my_xpath_module.iVersion = 1; my_xpath_module.xCreate = &vxpath_create; my_xpath_module.xConnect = &vxpath_connect; my_xpath_module.xBestIndex = &vxpath_best_index; my_xpath_module.xDisconnect = &vxpath_disconnect; my_xpath_module.xDestroy = &vxpath_destroy; my_xpath_module.xOpen = &vxpath_open; my_xpath_module.xClose = &vxpath_close; my_xpath_module.xFilter = &vxpath_filter; my_xpath_module.xNext = &vxpath_next; my_xpath_module.xEof = &vxpath_eof; my_xpath_module.xColumn = &vxpath_column; my_xpath_module.xRowid = &vxpath_rowid; my_xpath_module.xUpdate = &vxpath_update; my_xpath_module.xBegin = &vxpath_begin; my_xpath_module.xSync = &vxpath_sync; my_xpath_module.xCommit = &vxpath_commit; my_xpath_module.xRollback = &vxpath_rollback; my_xpath_module.xFindFunction = NULL; my_xpath_module.xRename = &vxpath_rename; sqlite3_create_module_v2 (db, "VirtualXPath", &my_xpath_module, p_cache, 0); return rc; } SPATIALITE_PRIVATE int virtual_xpath_extension_init (void *xdb, const void *p_cache) { sqlite3 *db = (sqlite3 *) xdb; return spliteVirtualXPathInit (db, (void *) p_cache); } #endif /* end LIBXML2: supporting XML documents */ libspatialite-4.3.0a/src/spatialite/se_helpers.c0000664000175000017500000044745312544707704016706 00000000000000/* se_helpers.c -- SLD/SE helper functions version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: this module has been partly funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale (implementing XML support - ISO Metadata and SLD/SE Styles) */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ #ifdef ENABLE_LIBXML2 /* including LIBXML2 */ static int check_external_graphic (sqlite3 * sqlite, const char *xlink_href) { /* checks if an ExternalGraphic Resource already exists */ int ret; const char *sql; sqlite3_stmt *stmt; int exists = 0; sql = "SELECT xlink_href FROM SE_external_graphics WHERE xlink_href = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("checkExternalGraphic: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, xlink_href, strlen (xlink_href), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) exists = 1; } sqlite3_finalize (stmt); return exists; } SPATIALITE_PRIVATE int register_external_graphic (void *p_sqlite, const char *xlink_href, const unsigned char *p_blob, int n_bytes, const char *title, const char *abstract, const char *file_name) { /* auxiliary function: inserts or updates an ExternalGraphic Resource */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; const char *sql; sqlite3_stmt *stmt; int exists = 0; int extras = 0; int retval = 0; /* checking if already exists */ if (xlink_href == NULL) return 0; exists = check_external_graphic (sqlite, xlink_href); if (title != NULL && abstract != NULL && file_name != NULL) extras = 1; if (exists) { /* update */ if (extras) { /* full infos */ sql = "UPDATE SE_external_graphics " "SET resource = ?, title = ?, abstract = ?, file_name = ? " "WHERE xlink_href = ?"; } else { /* limited basic infos */ sql = "UPDATE SE_external_graphics " "SET resource = ? WHERE xlink_href = ?"; } } else { /* insert */ if (extras) { /* full infos */ sql = "INSERT INTO SE_external_graphics " "(xlink_href, resource, title, abstract, file_name) " "VALUES (?, ?, ?, ?, ?)"; } else { /* limited basic infos */ sql = "INSERT INTO SE_external_graphics " "(xlink_href, resource) VALUES (?, ?)"; } } ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerExternalGraphic: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); if (exists) { /* update */ if (extras) { /* full infos */ sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); sqlite3_bind_text (stmt, 2, title, strlen (title), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, abstract, strlen (abstract), SQLITE_STATIC); sqlite3_bind_text (stmt, 4, file_name, strlen (file_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 5, xlink_href, strlen (xlink_href), SQLITE_STATIC); } else { /* limited basic infos */ sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); sqlite3_bind_text (stmt, 2, xlink_href, strlen (xlink_href), SQLITE_STATIC); } } else { /* insert */ if (extras) { /* full infos */ sqlite3_bind_text (stmt, 1, xlink_href, strlen (xlink_href), SQLITE_STATIC); sqlite3_bind_blob (stmt, 2, p_blob, n_bytes, SQLITE_STATIC); sqlite3_bind_text (stmt, 3, title, strlen (title), SQLITE_STATIC); sqlite3_bind_text (stmt, 4, abstract, strlen (abstract), SQLITE_STATIC); sqlite3_bind_text (stmt, 5, file_name, strlen (file_name), SQLITE_STATIC); } else { /* limited basic infos */ sqlite3_bind_text (stmt, 1, xlink_href, strlen (xlink_href), SQLITE_STATIC); sqlite3_bind_blob (stmt, 2, p_blob, n_bytes, SQLITE_STATIC); } } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("registerExternalGraphic() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } SPATIALITE_PRIVATE int unregister_external_graphic (void *p_sqlite, const char *xlink_href) { /* auxiliary function: deletes an ExternalGraphic Resource */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; const char *sql; sqlite3_stmt *stmt; int exists = 0; int retval = 0; /* checking if already exists */ if (xlink_href == NULL) return 0; exists = check_external_graphic (sqlite, xlink_href); if (!exists) return 0; sql = "DELETE FROM SE_external_graphics WHERE xlink_href = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("unregisterExternalGraphic: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, xlink_href, strlen (xlink_href), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("unregisterExternalGraphic() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } static int vector_style_causes_duplicate_name (sqlite3 * sqlite, sqlite3_int64 id, const unsigned char *p_blob, int n_bytes) { /* auxiliary function: checks for an eventual duplicate name */ int count = 0; int ret; const char *sql; sqlite3_stmt *stmt; sql = "SELECT Count(*) FROM SE_vector_styles " "WHERE Lower(style_name) = Lower(XB_GetName(?)) AND style_id <> ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("VectorStyle duplicate Name: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); sqlite3_bind_int64 (stmt, 2, id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count = sqlite3_column_int (stmt, 0); } sqlite3_finalize (stmt); if (count != 0) return 1; return 0; } SPATIALITE_PRIVATE int register_vector_style (void *p_sqlite, const unsigned char *p_blob, int n_bytes) { /* auxiliary function: inserts a Vector Style definition */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; const char *sql; sqlite3_stmt *stmt; if (p_blob != NULL && n_bytes > 0) { /* attempting to insert the Vector Style */ if (vector_style_causes_duplicate_name (sqlite, -1, p_blob, n_bytes)) return 0; sql = "INSERT INTO SE_vector_styles " "(style_id, style) VALUES (NULL, ?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerVectorStyle: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("registerVectorStyle() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return 0; } sqlite3_finalize (stmt); return 1; } else return 0; } static int check_vector_style_by_id (sqlite3 * sqlite, int style_id) { /* checks if a Vector Style do actually exists - by ID */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sql = "SELECT style_id FROM SE_vector_styles " "WHERE style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Vector Style by ID: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, style_id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count++; } sqlite3_finalize (stmt); if (count == 1) return 1; return 0; stop: return 0; } static int check_vector_style_by_name (sqlite3 * sqlite, const char *style_name, sqlite3_int64 * id) { /* checks if a Vector Style do actually exists - by name */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sqlite3_int64 xid; sql = "SELECT style_id FROM SE_vector_styles " "WHERE Lower(style_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Vector Style by Name: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, style_name, strlen (style_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { xid = sqlite3_column_int64 (stmt, 0); count++; } } sqlite3_finalize (stmt); if (count == 1) { *id = xid; return 1; } return 0; stop: return 0; } static int check_vector_style_refs_by_id (sqlite3 * sqlite, int style_id, int *has_refs) { /* checks if a Vector Style do actually exists - by ID */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; int ref_count = 0; sql = "SELECT s.style_id, l.style_id FROM SE_vector_styles AS s " "LEFT JOIN SE_vector_styled_layers AS l ON (l.style_id = s.style_id) " "WHERE s.style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Vector Style Refs by ID: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, style_id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { count++; if (sqlite3_column_type (stmt, 1) == SQLITE_INTEGER) ref_count++; } } sqlite3_finalize (stmt); if (count >= 1) { if (ref_count > 0) *has_refs = 1; return 1; } return 0; stop: return 0; } static int check_vector_style_refs_by_name (sqlite3 * sqlite, const char *style_name, sqlite3_int64 * id, int *has_refs) { /* checks if a Vector Style do actually exists - by name */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; int ref_count = 0; sqlite3_int64 xid; sql = "SELECT style_id FROM SE_vector_styles " "WHERE Lower(style_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Vector Style Refs by Name: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, style_name, strlen (style_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { xid = sqlite3_column_int64 (stmt, 0); count++; } } sqlite3_finalize (stmt); if (count != 1) return 0; *id = xid; sql = "SELECT s.style_id, l.style_id FROM SE_vector_styles AS s " "LEFT JOIN SE_vector_styled_layers AS l ON (l.style_id = s.style_id) " "WHERE s.style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Vector Style Refs by ID: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int64 (stmt, 1, *id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 1) == SQLITE_INTEGER) ref_count++; } } sqlite3_finalize (stmt); if (ref_count > 0) *has_refs = 1; return 1; return 0; stop: return 0; } static int do_insert_vector_style_layer (sqlite3 * sqlite, const char *coverage_name, sqlite3_int64 id) { /* auxiliary function: really inserting a Vector Styled Layer */ int ret; const char *sql; sqlite3_stmt *stmt; int retval = 0; sql = "INSERT INTO SE_vector_styled_layers " "(coverage_name, style_id) VALUES (?, ?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerVectorStyledLayer: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_int64 (stmt, 2, id); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("registerVectorStyledLayer() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } static int do_delete_vector_style_refs (sqlite3 * sqlite, sqlite3_int64 id) { /* auxiliary function: deleting all Vector Style references */ int ret; const char *sql; sqlite3_stmt *stmt; int retval = 0; sql = "DELETE FROM SE_vector_styled_layers WHERE style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("unregisterVectorStyle: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int64 (stmt, 1, id); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("unregisterVectorStyle() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } static int do_delete_vector_style (sqlite3 * sqlite, sqlite3_int64 id) { /* auxiliary function: really deleting a Vector Style */ int ret; const char *sql; sqlite3_stmt *stmt; int retval = 0; sql = "DELETE FROM SE_vector_styles WHERE style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("unregisterVectorStyle: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int64 (stmt, 1, id); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("unregisterVectorStyle() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } SPATIALITE_PRIVATE int unregister_vector_style (void *p_sqlite, int style_id, const char *style_name, int remove_all) { /* auxiliary function: deletes a Vector Style definition */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; sqlite3_int64 id; int has_refs = 0; if (style_id >= 0) { /* checking if the Vector Style do actually exists */ if (check_vector_style_refs_by_id (sqlite, style_id, &has_refs)) id = style_id; else return 0; if (has_refs) { if (!remove_all) return 0; /* deleting all references */ if (!do_delete_vector_style_refs (sqlite, id)) return 0; } /* deleting the Vector Style */ return do_delete_vector_style (sqlite, id); } else if (style_name != NULL) { /* checking if the Vector Style do actually exists */ if (!check_vector_style_refs_by_name (sqlite, style_name, &id, &has_refs)) return 0; if (has_refs) { if (!remove_all) return 0; /* deleting all references */ if (!do_delete_vector_style_refs (sqlite, id)) return 0; } /* deleting the Vector Style */ return do_delete_vector_style (sqlite, id); } else return 0; } static int do_reload_vector_style (sqlite3 * sqlite, sqlite3_int64 id, const unsigned char *p_blob, int n_bytes) { /* auxiliary function: reloads a Vector Style definition */ int ret; const char *sql; sqlite3_stmt *stmt; if (p_blob != NULL && n_bytes > 0) { /* attempting to update the Vector Style */ sql = "UPDATE SE_vector_styles SET style = ? " "WHERE style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("reloadVectorStyle: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); sqlite3_bind_int64 (stmt, 2, id); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("reloadVectorStyle() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return 0; } sqlite3_finalize (stmt); return 1; } else return 0; } SPATIALITE_PRIVATE int reload_vector_style (void *p_sqlite, int style_id, const char *style_name, const unsigned char *p_blob, int n_bytes) { /* auxiliary function: reloads a Vector Style definition */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; sqlite3_int64 id; if (style_id >= 0) { /* checking if the Vector Style do actually exists */ if (check_vector_style_by_id (sqlite, style_id)) id = style_id; else return 0; /* reloading the Vector Style */ if (vector_style_causes_duplicate_name (sqlite, id, p_blob, n_bytes)) return 0; return do_reload_vector_style (sqlite, id, p_blob, n_bytes); } else if (style_name != NULL) { /* checking if the Vector Style do actually exists */ if (!check_vector_style_by_name (sqlite, style_name, &id)) return 0; /* reloading the Vector Style */ if (vector_style_causes_duplicate_name (sqlite, id, p_blob, n_bytes)) return 0; return do_reload_vector_style (sqlite, id, p_blob, n_bytes); } else return 0; } SPATIALITE_PRIVATE int register_vector_styled_layer_ex (void *p_sqlite, const char *coverage_name, int style_id, const char *style_name) { /* auxiliary function: inserts a Vector Styled Layer definition */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; sqlite3_int64 id; if (coverage_name == NULL) return 0; if (style_id >= 0) { /* checking if the Vector Style do actually exists */ if (check_vector_style_by_id (sqlite, style_id)) id = style_id; else return 0; /* inserting the Vector Styled Layer */ return do_insert_vector_style_layer (sqlite, coverage_name, id); } else if (style_name != NULL) { /* checking if the Vector Style do actually exists */ if (!check_vector_style_by_name (sqlite, style_name, &id)) return 0; /* inserting the Vector Styled Layer */ return do_insert_vector_style_layer (sqlite, coverage_name, id); } else return 0; } SPATIALITE_PRIVATE int register_vector_styled_layer (void *p_sqlite, const char *f_table_name, const char *f_geometry_column, int style_id, const unsigned char *p_blob, int n_bytes) { /* auxiliary function: inserts a Vector Styled Layer definition - DEPRECATED */ if (p_blob != NULL && n_bytes <= 0 && f_geometry_column != NULL) { /* silencing compiler complaints */ p_blob = NULL; n_bytes = 0; f_geometry_column = NULL; } return register_vector_styled_layer_ex (p_sqlite, f_table_name, style_id, NULL); } static int check_vector_styled_layer_by_id (sqlite3 * sqlite, const char *coverage_name, int style_id) { /* checks if a Vector Styled Layer do actually exists - by ID */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sql = "SELECT style_id FROM SE_vector_styled_layers " "WHERE Lower(coverage_name) = Lower(?) AND style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Vector Styled Layer by ID: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_int64 (stmt, 2, style_id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count++; } sqlite3_finalize (stmt); if (count == 1) return 1; return 0; stop: return 0; } static int check_vector_styled_layer_by_name (sqlite3 * sqlite, const char *coverage_name, const char *style_name, sqlite3_int64 * id) { /* checks if a Vector Styled Layer do actually exists - by name */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sqlite3_int64 xid; sql = "SELECT l.style_id FROM SE_vector_styled_layers AS l " "JOIN SE_vector_styles AS s ON (l.style_id = s.style_id) " "WHERE Lower(l.coverage_name) = Lower(?) " "AND Lower(s.style_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Vector Styled Layer by Name: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, style_name, strlen (style_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { xid = sqlite3_column_int64 (stmt, 0); count++; } } sqlite3_finalize (stmt); if (count == 1) { *id = xid; return 1; } return 0; stop: return 0; } static int do_delete_vector_style_layer (sqlite3 * sqlite, const char *coverage_name, sqlite3_int64 id) { /* auxiliary function: really deleting a Vector Styled Layer */ int ret; const char *sql; sqlite3_stmt *stmt; int retval = 0; sql = "DELETE FROM SE_vector_styled_layers " "WHERE Lower(coverage_name) = Lower(?) AND style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("unregisterVectorStyledLayer: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_int64 (stmt, 2, id); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("unregisterVectorStyledLayer() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } SPATIALITE_PRIVATE int unregister_vector_styled_layer (void *p_sqlite, const char *coverage_name, int style_id, const char *style_name) { /* auxiliary function: removes a Vector Styled Layer definition */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; sqlite3_int64 id; if (coverage_name == NULL) return 0; if (style_id >= 0) { /* checking if the Vector Styled Layer do actually exists */ if (check_vector_styled_layer_by_id (sqlite, coverage_name, style_id)) id = style_id; else return 0; /* removing the Vector Styled Layer */ return do_delete_vector_style_layer (sqlite, coverage_name, id); } else if (style_name != NULL) { /* checking if the Vector Styled Layer do actually exists */ if (!check_vector_styled_layer_by_name (sqlite, coverage_name, style_name, &id)) return 0; /* removing the Vector Styled Layer */ return do_delete_vector_style_layer (sqlite, coverage_name, id); } else return 0; } static int raster_style_causes_duplicate_name (sqlite3 * sqlite, sqlite3_int64 id, const unsigned char *p_blob, int n_bytes) { /* auxiliary function: checks for an eventual duplicate name */ int count = 0; int ret; const char *sql; sqlite3_stmt *stmt; sql = "SELECT Count(*) FROM SE_raster_styles " "WHERE Lower(style_name) = Lower(XB_GetName(?)) AND style_id <> ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("RasterStyle duplicate Name: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); sqlite3_bind_int64 (stmt, 2, id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count = sqlite3_column_int (stmt, 0); } sqlite3_finalize (stmt); if (count != 0) return 1; return 0; } SPATIALITE_PRIVATE int register_raster_style (void *p_sqlite, const unsigned char *p_blob, int n_bytes) { /* auxiliary function: inserts a Raster Style definition */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; const char *sql; sqlite3_stmt *stmt; if (p_blob != NULL && n_bytes > 0) { /* attempting to insert the Raster Style */ if (raster_style_causes_duplicate_name (sqlite, -1, p_blob, n_bytes)) return 0; sql = "INSERT INTO SE_raster_styles " "(style_id, style) VALUES (NULL, ?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerRasterStyle: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("registerRasterStyle() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return 0; } sqlite3_finalize (stmt); return 1; } else return 0; } static int do_delete_raster_style_refs (sqlite3 * sqlite, sqlite3_int64 id) { /* auxiliary function: deleting all Raster Style references */ int ret; const char *sql; sqlite3_stmt *stmt; int retval = 0; sql = "DELETE FROM SE_raster_styled_layers WHERE style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("unregisterRasterStyle: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int64 (stmt, 1, id); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("unregisterRasterStyle() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } static int check_raster_style_refs_by_id (sqlite3 * sqlite, int style_id, int *has_refs) { /* checks if a Raster Style do actually exists - by ID */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; int ref_count = 0; sql = "SELECT s.style_id, l.style_id FROM SE_raster_styles AS s " "LEFT JOIN SE_raster_styled_layers AS l ON (l.style_id = s.style_id) " "WHERE s.style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Raster Style Refs by ID: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, style_id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { count++; if (sqlite3_column_type (stmt, 1) == SQLITE_INTEGER) ref_count++; } } sqlite3_finalize (stmt); if (count >= 1) { if (ref_count > 0) *has_refs = 1; return 1; } return 0; stop: return 0; } static int check_raster_style_refs_by_name (sqlite3 * sqlite, const char *style_name, sqlite3_int64 * id, int *has_refs) { /* checks if a Raster Style do actually exists - by name */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; int ref_count = 0; sqlite3_int64 xid; sql = "SELECT style_id FROM SE_raster_styles " "WHERE Lower(style_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Raster Style Refs by Name: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, style_name, strlen (style_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { xid = sqlite3_column_int64 (stmt, 0); count++; } } sqlite3_finalize (stmt); if (count != 1) return 0; *id = xid; sql = "SELECT s.style_id, l.style_id FROM SE_raster_styles AS s " "LEFT JOIN SE_raster_styled_layers AS l ON (l.style_id = s.style_id) " "WHERE s.style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Raster Style Refs by ID: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int64 (stmt, 1, *id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 1) == SQLITE_INTEGER) ref_count++; } } sqlite3_finalize (stmt); if (ref_count > 0) *has_refs = 1; return 1; return 0; stop: return 0; } static int do_delete_raster_style (sqlite3 * sqlite, sqlite3_int64 id) { /* auxiliary function: really deleting a Raster Style */ int ret; const char *sql; sqlite3_stmt *stmt; int retval = 0; sql = "DELETE FROM SE_raster_styles WHERE style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("unregisterRasterStyle: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int64 (stmt, 1, id); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("unregisterRasterStyle() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } SPATIALITE_PRIVATE int unregister_raster_style (void *p_sqlite, int style_id, const char *style_name, int remove_all) { /* auxiliary function: deletes a Raster Style definition */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; sqlite3_int64 id; int has_refs = 0; if (style_id >= 0) { /* checking if the Raster Style do actually exists */ if (check_raster_style_refs_by_id (sqlite, style_id, &has_refs)) id = style_id; else return 0; if (has_refs) { if (!remove_all) return 0; /* deleting all references */ if (!do_delete_raster_style_refs (sqlite, id)) return 0; } /* deleting the Raster Style */ return do_delete_raster_style (sqlite, id); } else if (style_name != NULL) { /* checking if the Raster Style do actually exists */ if (!check_raster_style_refs_by_name (sqlite, style_name, &id, &has_refs)) return 0; if (has_refs) { if (!remove_all) return 0; /* deleting all references */ if (!do_delete_raster_style_refs (sqlite, id)) return 0; } /* deleting the Raster Style */ return do_delete_raster_style (sqlite, id); } else return 0; } static int check_raster_style_by_id (sqlite3 * sqlite, int style_id) { /* checks if a Raster Style do actually exists - by ID */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sql = "SELECT style_id FROM SE_raster_styles " "WHERE style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Raster Style by ID: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, style_id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count++; } sqlite3_finalize (stmt); if (count == 1) return 1; return 0; stop: return 0; } static int check_raster_style_by_name (sqlite3 * sqlite, const char *style_name, sqlite3_int64 * id) { /* checks if a Raster Style do actually exists - by name */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sqlite3_int64 xid; sql = "SELECT style_id FROM SE_raster_styles " "WHERE Lower(style_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Raster Style by Name: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, style_name, strlen (style_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { xid = sqlite3_column_int64 (stmt, 0); count++; } } sqlite3_finalize (stmt); if (count == 1) { *id = xid; return 1; } return 0; stop: return 0; } static int do_reload_raster_style (sqlite3 * sqlite, sqlite3_int64 id, const unsigned char *p_blob, int n_bytes) { /* auxiliary function: reloads a Raster Style definition */ int ret; const char *sql; sqlite3_stmt *stmt; if (p_blob != NULL && n_bytes > 0) { /* attempting to update the Raster Style */ sql = "UPDATE SE_raster_styles SET style = ? " "WHERE style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("reloadRasterStyle: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); sqlite3_bind_int64 (stmt, 2, id); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("reloadRasterStyle() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return 0; } sqlite3_finalize (stmt); return 1; } else return 0; } SPATIALITE_PRIVATE int reload_raster_style (void *p_sqlite, int style_id, const char *style_name, const unsigned char *p_blob, int n_bytes) { /* auxiliary function: reloads a Raster Style definition */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; sqlite3_int64 id; if (style_id >= 0) { /* checking if the Raster Style do actually exists */ if (check_raster_style_by_id (sqlite, style_id)) id = style_id; else return 0; /* reloading the Raster Style */ if (raster_style_causes_duplicate_name (sqlite, id, p_blob, n_bytes)) return 0; return do_reload_raster_style (sqlite, id, p_blob, n_bytes); } else if (style_name != NULL) { /* checking if the Raster Style do actually exists */ if (!check_raster_style_by_name (sqlite, style_name, &id)) return 0; /* reloading the Raster Style */ if (raster_style_causes_duplicate_name (sqlite, id, p_blob, n_bytes)) return 0; return do_reload_raster_style (sqlite, id, p_blob, n_bytes); } else return 0; } static int do_insert_raster_style_layer (sqlite3 * sqlite, const char *coverage_name, sqlite3_int64 id) { /* auxiliary function: really inserting a Raster Styled Layer */ int ret; const char *sql; sqlite3_stmt *stmt; int retval = 0; sql = "INSERT INTO SE_raster_styled_layers " "(coverage_name, style_id) VALUES (?, ?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerRasterStyledLayer: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_int64 (stmt, 2, id); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("registerRasterStyledLayer() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } SPATIALITE_PRIVATE int register_raster_styled_layer_ex (void *p_sqlite, const char *coverage_name, int style_id, const char *style_name) { /* auxiliary function: inserts a Raster Styled Layer definition */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; sqlite3_int64 id; if (coverage_name == NULL) return 0; if (style_id >= 0) { /* checking if the Raster Style do actually exists */ if (check_raster_style_by_id (sqlite, style_id)) id = style_id; else return 0; /* inserting the Raster Styled Layer */ return do_insert_raster_style_layer (sqlite, coverage_name, id); } else if (style_name != NULL) { /* checking if the Raster Style do actually exists */ if (!check_raster_style_by_name (sqlite, style_name, &id)) return 0; /* inserting the Raster Styled Layer */ return do_insert_raster_style_layer (sqlite, coverage_name, id); } else return 0; } SPATIALITE_PRIVATE int register_raster_styled_layer (void *p_sqlite, const char *coverage_name, int style_id, const unsigned char *p_blob, int n_bytes) { /* auxiliary function: inserts a Raster Styled Layer definition - DEPRECATED */ if (p_blob != NULL && n_bytes <= 0) { /* silencing compiler complaints */ p_blob = NULL; n_bytes = 0; } return register_raster_styled_layer_ex (p_sqlite, coverage_name, style_id, NULL); } static int check_raster_styled_layer_by_id (sqlite3 * sqlite, const char *coverage_name, int style_id) { /* checks if a Raster Styled Layer do actually exists - by ID */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sql = "SELECT style_id FROM SE_raster_styled_layers " "WHERE Lower(coverage_name) = Lower(?) AND style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Raster Styled Layer by ID: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_int64 (stmt, 2, style_id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count++; } sqlite3_finalize (stmt); if (count == 1) return 1; return 0; stop: return 0; } static int check_raster_styled_layer_by_name (sqlite3 * sqlite, const char *coverage_name, const char *style_name, sqlite3_int64 * id) { /* checks if a Raster Styled Layer do actually exists - by name */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sqlite3_int64 xid; sql = "SELECT l.style_id FROM SE_raster_styled_layers AS l " "JOIN SE_raster_styles AS s ON (l.style_id = s.style_id) " "WHERE Lower(l.coverage_name) = Lower(?) AND " "Lower(s.style_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Raster Styled Layer by Name: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, style_name, strlen (style_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { xid = sqlite3_column_int64 (stmt, 0); count++; } } sqlite3_finalize (stmt); if (count == 1) { *id = xid; return 1; } return 0; stop: return 0; } static int do_delete_raster_style_layer (sqlite3 * sqlite, const char *coverage_name, sqlite3_int64 id) { /* auxiliary function: really deleting a Raster Styled Layer */ int ret; const char *sql; sqlite3_stmt *stmt; int retval = 0; sql = "DELETE FROM SE_raster_styled_layers " "WHERE Lower(coverage_name) = Lower(?) AND " "style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("unregisterRasterStyledLayer: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_int64 (stmt, 2, id); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("unregisterRasterStyledLayer() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } SPATIALITE_PRIVATE int unregister_raster_styled_layer (void *p_sqlite, const char *coverage_name, int style_id, const char *style_name) { /* auxiliary function: removes a Raster Styled Layer definition */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; sqlite3_int64 id; if (coverage_name == NULL) return 0; if (style_id >= 0) { /* checking if the Raster Styled Layer do actually exists */ if (check_raster_styled_layer_by_id (sqlite, coverage_name, style_id)) id = style_id; else return 0; /* removing the Raster Styled Layer */ return do_delete_raster_style_layer (sqlite, coverage_name, id); } else if (style_name != NULL) { /* checking if the Raster Styled Layer do actually exists */ if (!check_raster_styled_layer_by_name (sqlite, coverage_name, style_name, &id)) return 0; /* removing the Raster Styled Layer */ return do_delete_raster_style_layer (sqlite, coverage_name, id); } else return 0; } static int check_styled_group (sqlite3 * sqlite, const char *group_name) { /* checking if the Group already exists */ int ret; const char *sql; sqlite3_stmt *stmt; int exists = 0; sql = "SELECT group_name FROM SE_styled_groups " "WHERE group_name = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("checkStyledGroup: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) exists = 1; } sqlite3_finalize (stmt); return exists; } static int do_insert_styled_group (sqlite3 * sqlite, const char *group_name, const char *title, const char *abstract) { /* inserting a Styled Group */ int ret; const char *sql; sqlite3_stmt *stmt; int retval = 0; if (title != NULL && abstract != NULL) sql = "INSERT INTO SE_styled_groups (group_name, title, abstract) VALUES (?, ?, ?)"; else sql = "INSERT INTO SE_styled_groups (group_name) VALUES (?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("insertStyledGroup: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); if (title != NULL && abstract != NULL) { sqlite3_bind_text (stmt, 2, title, strlen (title), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, abstract, strlen (abstract), SQLITE_STATIC); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("insertStyledGroup() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; } static int get_next_paint_order (sqlite3 * sqlite, const char *group_name) { /* retrieving the next available Paint Order for a Styled Group */ int ret; const char *sql; sqlite3_stmt *stmt; int paint_order = 0; sql = "SELECT Max(paint_order) FROM SE_styled_group_refs " "WHERE group_name = Lower(?) "; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("nextPaintOrder: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_INTEGER) paint_order = sqlite3_column_int (stmt, 0) + 1; } } sqlite3_finalize (stmt); return paint_order; } static int get_next_paint_order_by_item (sqlite3 * sqlite, int item_id) { /* retrieving the next available Paint Order for a Styled Group - BY ITEM ID */ int ret; const char *sql; sqlite3_stmt *stmt; int paint_order = 0; sql = "SELECT Max(r.paint_order) FROM SE_styled_group_refs AS x " "JOIN SE_styled_groups AS g ON (x.group_name = g.group_name) " "JOIN SE_styled_group_refs AS r ON (r.group_name = g.group_name) " "WHERE x.id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("nextPaintOrderByItem: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, item_id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 0) == SQLITE_INTEGER) paint_order = sqlite3_column_int (stmt, 0) + 1; } } sqlite3_finalize (stmt); return paint_order; } SPATIALITE_PRIVATE int register_styled_group_ex (void *p_sqlite, const char *group_name, const char *vector_coverage_name, const char *raster_coverage_name) { /* auxiliary function: inserts a Styled Group Item */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; const char *sql; sqlite3_stmt *stmt; int exists_group = 0; int retval = 0; int paint_order; if (vector_coverage_name == NULL && raster_coverage_name == NULL) return 0; if (vector_coverage_name != NULL && raster_coverage_name != NULL) return 0; /* checking if the Raster Styled Layer do actually exists */ exists_group = check_styled_group (sqlite, group_name); if (!exists_group) { /* insert group */ retval = do_insert_styled_group (sqlite, group_name, NULL, NULL); if (retval == 0) goto stop; retval = 0; } /* assigning the next paint_order value */ paint_order = get_next_paint_order (sqlite, group_name); /* insert */ if (vector_coverage_name != NULL) { /* vector styled layer */ sql = "INSERT INTO SE_styled_group_refs " "(id, group_name, vector_coverage_name, paint_order) " "VALUES (NULL, ?, ?, ?)"; } else { /* raster styled layer */ sql = "INSERT INTO SE_styled_group_refs " "(id, group_name, raster_coverage_name, paint_order) " "VALUES (NULL, ?, ?, ?)"; } ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerStyledGroupsRefs: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); /* insert */ sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); if (vector_coverage_name != NULL) { /* vector styled layer */ sqlite3_bind_text (stmt, 2, vector_coverage_name, strlen (vector_coverage_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, paint_order); } else { /* raster styled layer */ sqlite3_bind_text (stmt, 2, raster_coverage_name, strlen (raster_coverage_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 3, paint_order); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("registerStyledGroupsRefs() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } SPATIALITE_PRIVATE int register_styled_group (void *p_sqlite, const char *group_name, const char *f_table_name, const char *f_geometry_column, const char *coverage_name, int paint_order) { /* auxiliary function: inserts a Styled Group Item - DEPRECATED */ if (paint_order < 0 || f_geometry_column != NULL) { f_geometry_column = NULL; paint_order = -1; /* silencing compiler complaints */ } return register_styled_group_ex (p_sqlite, group_name, f_table_name, coverage_name); } SPATIALITE_PRIVATE int styled_group_set_infos (void *p_sqlite, const char *group_name, const char *title, const char *abstract) { /* auxiliary function: inserts or updates the Styled Group descriptive infos */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; const char *sql; sqlite3_stmt *stmt; int exists = 0; int retval = 0; if (group_name == NULL) return 0; /* checking if the Raster Styled Layer do actually exists */ exists = check_styled_group (sqlite, group_name); if (!exists) { /* insert group */ retval = do_insert_styled_group (sqlite, group_name, title, abstract); } else { /* update group */ sql = "UPDATE SE_styled_groups SET title = ?, abstract = ? WHERE group_name = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("styledGroupSetInfos: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); if (title == NULL) sqlite3_bind_null (stmt, 1); else sqlite3_bind_text (stmt, 1, title, strlen (title), SQLITE_STATIC); if (abstract == NULL) sqlite3_bind_null (stmt, 2); else sqlite3_bind_text (stmt, 2, abstract, strlen (abstract), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, group_name, strlen (group_name), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("styledGroupSetInfos() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); } return retval; stop: return 0; } static int do_delete_styled_group (sqlite3 * sqlite, const char *group_name) { /* completely removing a Styled Group */ int ret; const char *sql; sqlite3_stmt *stmt; int retval = 0; /* deleting Group Styles */ sql = "DELETE FROM SE_styled_group_styles WHERE Lower(group_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("deleteStyledGroup: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("deleteStyledGroup() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); if (!retval) return 0; /* deleting Group Items */ retval = 0; sql = "DELETE FROM SE_styled_group_refs WHERE Lower(group_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("deleteStyledGroup: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("deleteStyledGroup() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); if (!retval) return 0; /* deleting the Styled Group itself */ retval = 0; sql = "DELETE FROM SE_styled_groups WHERE Lower(group_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("deleteStyledGroup: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("deleteStyledGroup() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; } SPATIALITE_PRIVATE int unregister_styled_group (void *p_sqlite, const char *group_name) { /* auxiliary function: completely removes a Styled Group definition */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; if (group_name == NULL) return 0; /* checking if the Raster Styled Layer do actually exists */ if (!check_styled_group (sqlite, group_name)) return 0; /* removing the Styled Group */ return do_delete_styled_group (sqlite, group_name); } static int check_styled_group_layer_by_id (sqlite3 * sqlite, int id) { /* checks if a Group Layer Item exists */ int ret; const char *sql; sqlite3_stmt *stmt; int exists = 0; sql = "SELECT id FROM SE_styled_group_refs " "WHERE id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("checkStyledGroupItem: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) exists = 1; } sqlite3_finalize (stmt); return exists; } static int check_styled_group_raster (sqlite3 * sqlite, const char *group_name, const char *coverage_name, sqlite3_int64 * id) { /* checks if a Styled Group Layer (Raster) do actually exists */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sqlite3_int64 xid; sql = "SELECT id FROM SE_styled_group_refs WHERE " "Lower(group_name) = Lower(?) AND Lower(raster_coverage_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("checkStyledGroupRasterItem: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, coverage_name, strlen (coverage_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { xid = sqlite3_column_int64 (stmt, 0); count++; } } sqlite3_finalize (stmt); if (count == 1) { *id = xid; return 1; } return 0; stop: return 0; } static int check_styled_group_vector (sqlite3 * sqlite, const char *group_name, const char *coverage_name, sqlite3_int64 * id) { /* checks if a Styled Group Layer (Vector) do actually exists */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sqlite3_int64 xid; sql = "SELECT id FROM SE_styled_group_refs WHERE " "Lower(group_name) = Lower(?) AND Lower(vector_coverage_name) = Lower(?) "; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("checkStyledGroupVectorItem: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, coverage_name, strlen (coverage_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { xid = sqlite3_column_int64 (stmt, 0); count++; } } sqlite3_finalize (stmt); if (count == 1) { *id = xid; return 1; } return 0; stop: return 0; } static int do_update_styled_group_layer_paint_order (sqlite3 * sqlite, sqlite3_int64 id, int paint_order) { /* auxiliary function: really updating a Group Styled Layer Paint Order */ int ret; const char *sql; sqlite3_stmt *stmt; int retval = 0; sql = "UPDATE SE_styled_group_refs SET paint_order = ? " "WHERE id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("updatePaintOrder: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, paint_order); sqlite3_bind_int64 (stmt, 2, id); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("updatePaintOrder error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } SPATIALITE_PRIVATE int set_styled_group_layer_paint_order (void *p_sqlite, int item_id, const char *group_name, const char *vector_coverage_name, const char *raster_coverage_name, int paint_order) { /* auxiliary function: set the Paint Order for a Layer within a Styled Group */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; sqlite3_int64 id; int pos = paint_order; if (vector_coverage_name != NULL && raster_coverage_name != NULL) return 0; if (item_id >= 0) { /* checking if the Layer Item do actually exists */ if (check_styled_group_layer_by_id (sqlite, item_id)) id = item_id; else return 0; if (pos < 0) pos = get_next_paint_order_by_item (sqlite, item_id); /* updating the Styled Group Layer Paint Order */ return do_update_styled_group_layer_paint_order (sqlite, id, pos); } else if (group_name != NULL && raster_coverage_name != NULL) { /* checking if a Raster Layer Item do actually exists */ if (!check_styled_group_raster (sqlite, group_name, raster_coverage_name, &id)) return 0; if (pos < 0) pos = get_next_paint_order (sqlite, group_name); /* updating the Styled Group Layer Paint Order */ return do_update_styled_group_layer_paint_order (sqlite, id, pos); } else if (group_name != NULL && vector_coverage_name != NULL) { /* checking if a Vector Layer Item do actually exists */ if (!check_styled_group_vector (sqlite, group_name, vector_coverage_name, &id)) return 0; if (pos < 0) pos = get_next_paint_order (sqlite, group_name); /* updating the Styled Group Layer Paint Order */ return do_update_styled_group_layer_paint_order (sqlite, id, pos); } else return 0; } static int do_delete_styled_group_layer (sqlite3 * sqlite, sqlite3_int64 id) { /* completely removing a Styled Group */ int ret; const char *sql; sqlite3_stmt *stmt; int retval = 0; sql = "DELETE FROM SE_styled_group_refs WHERE id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("deleteStyledGroupLayer: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int64 (stmt, 1, id); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("deleteStyledGroupLayer() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; } SPATIALITE_PRIVATE int unregister_styled_group_layer (void *p_sqlite, int item_id, const char *group_name, const char *vector_coverage_name, const char *raster_coverage_name) { /* auxiliary function: removing a Layer form within a Styled Group */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; sqlite3_int64 id; if (item_id >= 0) { /* checking if the Layer Item do actually exists */ if (check_styled_group_layer_by_id (sqlite, item_id)) id = item_id; else return 0; /* removing the Styled Group Layer */ return do_delete_styled_group_layer (sqlite, id); } else if (group_name != NULL && raster_coverage_name != NULL) { /* checking if a Raster Layer Item do actually exists */ if (!check_styled_group_raster (sqlite, group_name, raster_coverage_name, &id)) return 0; /* removing the Styled Group Layer */ return do_delete_styled_group_layer (sqlite, id); } else if (group_name != NULL && vector_coverage_name != NULL) { /* checking if a Vector Layer Item do actually exists */ if (!check_styled_group_vector (sqlite, group_name, vector_coverage_name, &id)) return 0; /* removing the Styled Group Layer */ return do_delete_styled_group_layer (sqlite, id); } else return 0; } static int group_style_causes_duplicate_name (sqlite3 * sqlite, sqlite3_int64 id, const unsigned char *p_blob, int n_bytes) { /* auxiliary function: checks for an eventual duplicate name */ int count = 0; int ret; const char *sql; sqlite3_stmt *stmt; sql = "SELECT Count(*) FROM SE_group_styles " "WHERE Lower(style_name) = Lower(XB_GetName(?)) AND style_id <> ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("GroupStyle duplicate Name: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); sqlite3_bind_int64 (stmt, 2, id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count = sqlite3_column_int (stmt, 0); } sqlite3_finalize (stmt); if (count != 0) return 1; return 0; } SPATIALITE_PRIVATE int register_group_style_ex (void *p_sqlite, const unsigned char *p_blob, int n_bytes) { /* auxiliary function: inserts a Group Style definition */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; const char *sql; sqlite3_stmt *stmt; if (p_blob != NULL && n_bytes > 0) { /* attempting to insert the Group Style */ if (group_style_causes_duplicate_name (sqlite, -1, p_blob, n_bytes)) return 0; sql = "INSERT INTO SE_group_styles " "(style_id, style) VALUES (NULL, ?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerGroupStyle: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("registerGroupStyle() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return 0; } sqlite3_finalize (stmt); return 1; } else return 0; } SPATIALITE_PRIVATE int register_group_style (void *p_sqlite, const char *group_name, int style_id, const unsigned char *p_blob, int n_bytes) { /* auxiliary function: inserts a Group Style - DEPRECATED */ if (group_name == NULL || style_id < 0) { /* silencing compiler complaints */ group_name = NULL; style_id = -1; } return register_group_style_ex (p_sqlite, p_blob, n_bytes); } static int do_delete_group_style_refs (sqlite3 * sqlite, sqlite3_int64 id) { /* auxiliary function: deleting all Group Style references */ int ret; const char *sql; sqlite3_stmt *stmt; int retval = 0; sql = "DELETE FROM SE_styled_group_styles WHERE style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("unregisterGroupStyle: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int64 (stmt, 1, id); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("unregisterGroupStyle() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } static int check_group_style_refs_by_id (sqlite3 * sqlite, int style_id, int *has_refs) { /* checks if a Group Style do actually exists - by ID */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; int ref_count = 0; sql = "SELECT s.style_id, l.style_id FROM SE_group_styles AS s " "LEFT JOIN SE_styled_group_styles AS l ON (l.style_id = s.style_id) " "WHERE s.style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Group Style Refs by ID: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, style_id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { count++; if (sqlite3_column_type (stmt, 1) == SQLITE_INTEGER) ref_count++; } } sqlite3_finalize (stmt); if (count == 1) { if (ref_count > 0) *has_refs = 1; return 1; } return 0; stop: return 0; } static int check_group_style_refs_by_name (sqlite3 * sqlite, const char *style_name, sqlite3_int64 * id, int *has_refs) { /* checks if a Group Style do actually exists - by name */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; int ref_count = 0; sqlite3_int64 xid; sql = "SELECT style_id FROM SE_group_styles " "WHERE Lower(style_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Group Style Refs by Name: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, style_name, strlen (style_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { xid = sqlite3_column_int64 (stmt, 0); count++; } } sqlite3_finalize (stmt); if (count != 1) return 0; *id = xid; sql = "SELECT s.style_id, l.style_id FROM SE_group_styles AS s " "LEFT JOIN SE_styled_group_styles AS l ON (l.style_id = s.style_id) " "WHERE s.style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Group Style Refs by ID: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int64 (stmt, 1, *id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { if (sqlite3_column_type (stmt, 1) == SQLITE_INTEGER) ref_count++; } } sqlite3_finalize (stmt); if (ref_count > 0) *has_refs = 1; return 1; return 0; stop: return 0; } static int do_delete_group_style (sqlite3 * sqlite, sqlite3_int64 id) { /* auxiliary function: really deleting a Group Style */ int ret; const char *sql; sqlite3_stmt *stmt; int retval = 0; sql = "DELETE FROM SE_group_styles WHERE style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("unregisterGroupStyle: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int64 (stmt, 1, id); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("unregisterGroupStyle() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } SPATIALITE_PRIVATE int unregister_group_style (void *p_sqlite, int style_id, const char *style_name, int remove_all) { /* auxiliary function: deletes a Group Style definition */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; sqlite3_int64 id; int has_refs = 0; if (style_id >= 0) { /* checking if the Group Style do actually exists */ if (check_group_style_refs_by_id (sqlite, style_id, &has_refs)) id = style_id; else return 0; if (has_refs) { if (!remove_all) return 0; /* deleting all references */ if (!do_delete_group_style_refs (sqlite, id)) return 0; } /* deleting the Group Style */ return do_delete_group_style (sqlite, id); } else if (style_name != NULL) { /* checking if the Group Style do actually exists */ if (!check_group_style_refs_by_name (sqlite, style_name, &id, &has_refs)) return 0; if (has_refs) { if (!remove_all) return 0; /* deleting all references */ if (!do_delete_group_style_refs (sqlite, id)) return 0; } /* deleting the Group Style */ return do_delete_group_style (sqlite, id); } else return 0; } static int check_group_style_by_id (sqlite3 * sqlite, int style_id) { /* checks if a Group Style do actually exists - by ID */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sql = "SELECT style_id FROM SE_group_styles " "WHERE style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Group Style by ID: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int (stmt, 1, style_id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count++; } sqlite3_finalize (stmt); if (count == 1) return 1; return 0; stop: return 0; } static int check_group_style_by_name (sqlite3 * sqlite, const char *style_name, sqlite3_int64 * id) { /* checks if a Group Style do actually exists - by name */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sqlite3_int64 xid; sql = "SELECT style_id FROM SE_group_styles " "WHERE Lower(style_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Group Style by Name: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, style_name, strlen (style_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { xid = sqlite3_column_int64 (stmt, 0); count++; } } sqlite3_finalize (stmt); if (count == 1) { *id = xid; return 1; } return 0; stop: return 0; } static int do_reload_group_style (sqlite3 * sqlite, sqlite3_int64 id, const unsigned char *p_blob, int n_bytes) { /* auxiliary function: reloads a Group Style definition */ int ret; const char *sql; sqlite3_stmt *stmt; if (p_blob != NULL && n_bytes > 0) { /* attempting to update the Group Style */ sql = "UPDATE SE_group_styles SET style = ? " "WHERE style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("reloadGroupStyle: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_blob (stmt, 1, p_blob, n_bytes, SQLITE_STATIC); sqlite3_bind_int64 (stmt, 2, id); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("reloadGroupStyle() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return 0; } sqlite3_finalize (stmt); return 1; } else return 0; } SPATIALITE_PRIVATE int reload_group_style (void *p_sqlite, int style_id, const char *style_name, const unsigned char *p_blob, int n_bytes) { /* auxiliary function: reloads a Group Style definition */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; sqlite3_int64 id; if (style_id >= 0) { /* checking if the Group Style do actually exists */ if (check_group_style_by_id (sqlite, style_id)) id = style_id; else return 0; /* reloading the Group Style */ if (group_style_causes_duplicate_name (sqlite, id, p_blob, n_bytes)) return 0; return do_reload_group_style (sqlite, id, p_blob, n_bytes); } else if (style_name != NULL) { /* checking if the Group Style do actually exists */ if (!check_group_style_by_name (sqlite, style_name, &id)) return 0; /* reloading the Group Style */ if (group_style_causes_duplicate_name (sqlite, id, p_blob, n_bytes)) return 0; return do_reload_group_style (sqlite, id, p_blob, n_bytes); } else return 0; } static int do_insert_styled_group_style (sqlite3 * sqlite, const char *group_name, sqlite3_int64 id) { /* auxiliary function: really inserting a Styled Group Style */ int ret; const char *sql; sqlite3_stmt *stmt; int retval = 0; sql = "INSERT INTO SE_styled_group_styles " "(group_name, style_id) VALUES (?, ?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerStyledGroupStyle: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); sqlite3_bind_int64 (stmt, 2, id); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("registerGroupStyledLayer() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } SPATIALITE_PRIVATE int register_styled_group_style (void *p_sqlite, const char *group_name, int style_id, const char *style_name) { /* auxiliary function: inserts a Styled Group Style definition */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; sqlite3_int64 id; if (group_name == NULL) return 0; if (style_id >= 0) { /* checking if the Group Style do actually exists */ if (check_group_style_by_id (sqlite, style_id)) id = style_id; else return 0; /* inserting the Styled Group Style */ return do_insert_styled_group_style (sqlite, group_name, id); } else if (style_name != NULL) { /* checking if the Group Style do actually exists */ if (!check_group_style_by_name (sqlite, style_name, &id)) return 0; /* inserting the Styled Group Style */ return do_insert_styled_group_style (sqlite, group_name, id); } else return 0; } static int check_styled_group_style_by_id (sqlite3 * sqlite, const char *group_name, int style_id) { /* checks if a Styled Group Style do actually exists - by ID */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sql = "SELECT style_id FROM SE_styled_group_styles " "WHERE Lower(group_name) = Lower(?) AND style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Styled Group Style by ID: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); sqlite3_bind_int64 (stmt, 2, style_id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count++; } sqlite3_finalize (stmt); if (count == 1) return 1; return 0; stop: return 0; } static int check_styled_group_style_by_name (sqlite3 * sqlite, const char *group_name, const char *style_name, sqlite3_int64 * id) { /* checks if a Styled Group Style do actually exists - by name */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sqlite3_int64 xid; sql = "SELECT l.style_id FROM SE_styled_group_styles AS l " "JOIN SE_group_styles AS s ON (l.style_id = s.style_id) " "WHERE Lower(l.group_name) = Lower(?) AND " "Lower(s.style_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Styled Group Style by Name: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, style_name, strlen (style_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { xid = sqlite3_column_int64 (stmt, 0); count++; } } sqlite3_finalize (stmt); if (count == 1) { *id = xid; return 1; } return 0; stop: return 0; } static int do_delete_styled_group_style (sqlite3 * sqlite, const char *group_name, sqlite3_int64 id) { /* auxiliary function: really deleting a Styled Group Style */ int ret; const char *sql; sqlite3_stmt *stmt; int retval = 0; sql = "DELETE FROM SE_styled_group_styles " "WHERE Lower(group_name) = Lower(?) AND " "style_id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("unregisterStyledGroupStyle: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, group_name, strlen (group_name), SQLITE_STATIC); sqlite3_bind_int64 (stmt, 2, id); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("unregisterStyledGroupStyle() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } SPATIALITE_PRIVATE int unregister_styled_group_style (void *p_sqlite, const char *group_name, int style_id, const char *style_name) { /* auxiliary function: removes a Styled Group Style definition */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; sqlite3_int64 id; if (group_name == NULL) return 0; if (style_id >= 0) { /* checking if the Styled Group Style do actually exists */ if (check_styled_group_style_by_id (sqlite, group_name, style_id)) id = style_id; else return 0; /* removing the Styled Group Style */ return do_delete_styled_group_style (sqlite, group_name, id); } else if (style_name != NULL) { /* checking if the Styled Group Style do actually exists */ if (!check_styled_group_style_by_name (sqlite, group_name, style_name, &id)) return 0; /* removing the Styled Group Style */ return do_delete_styled_group_style (sqlite, group_name, id); } else return 0; } SPATIALITE_PRIVATE int register_vector_coverage (void *p_sqlite, const char *coverage_name, const char *f_table_name, const char *f_geometry_column, const char *title, const char *abstract) { /* auxiliary function: inserts a Vector Coverage definition */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; const char *sql; sqlite3_stmt *stmt; if (coverage_name != NULL && f_table_name != NULL && f_geometry_column != NULL && title != NULL && abstract != NULL) { /* attempting to insert the Vector Coverage */ sql = "INSERT INTO vector_coverages " "(coverage_name, f_table_name, f_geometry_column, title, abstract) " "VALUES (Lower(?), Lower(?), Lower(?), ?, ?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerVectorCoverage: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, f_table_name, strlen (f_table_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, f_geometry_column, strlen (f_geometry_column), SQLITE_STATIC); sqlite3_bind_text (stmt, 4, title, strlen (title), SQLITE_STATIC); sqlite3_bind_text (stmt, 5, abstract, strlen (abstract), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("registerVectorCoverage() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return 0; } sqlite3_finalize (stmt); return 1; } else if (coverage_name != NULL && f_table_name != NULL && f_geometry_column != NULL) { /* attempting to insert the Vector Coverage */ sql = "INSERT INTO vector_coverages " "(coverage_name, f_table_name, f_geometry_column) " "VALUES (Lower(?), Lower(?), Lower(?))"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerVectorCoverage: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, f_table_name, strlen (f_table_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, f_geometry_column, strlen (f_geometry_column), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("registerVectorCoverage() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return 0; } sqlite3_finalize (stmt); return 1; } else return 0; } static int check_vector_coverage (sqlite3 * sqlite, const char *coverage_name) { /* checks if a Vector Coverage do actually exists */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sql = "SELECT coverage_name FROM vector_coverages " "WHERE Lower(coverage_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Vector Coverage: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count++; } sqlite3_finalize (stmt); if (count == 1) return 1; return 0; stop: return 0; } static void do_delete_vector_coverage_srid (sqlite3 * sqlite, const char *coverage_name, int srid) { /* auxiliary function: deleting a Vector Coverage alternative SRID */ int ret; const char *sql; sqlite3_stmt *stmt; if (srid < 0) sql = "DELETE FROM vector_coverages_srid " "WHERE Lower(coverage_name) = Lower(?)"; else sql = "DELETE FROM vector_coverages_srid " "WHERE Lower(coverage_name) = Lower(?) AND srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("unregisterVectorCoverageSrid: \"%s\"\n", sqlite3_errmsg (sqlite)); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); if (srid >= 0) sqlite3_bind_int (stmt, 2, srid); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else spatialite_e ("unregisterVectorCoverageSrid() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); } static void do_delete_vector_coverage_keyword (sqlite3 * sqlite, const char *coverage_name, const char *keyword) { /* auxiliary function: deleting an Vector Coverage Keyword */ int ret; const char *sql; sqlite3_stmt *stmt; if (keyword == NULL) sql = "DELETE FROM vector_coverages_keyword " "WHERE Lower(coverage_name) = Lower(?)"; else sql = "DELETE FROM vector_coverages_keyword " "WHERE Lower(coverage_name) = Lower(?) AND Lower(keyword) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("unregisterVectorCoverageKeyword: \"%s\"\n", sqlite3_errmsg (sqlite)); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); if (keyword != NULL) sqlite3_bind_text (stmt, 2, keyword, strlen (keyword), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else spatialite_e ("unregisterVectorCoverageKeyword() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); } static void do_delete_vector_coverage_styled_layers (sqlite3 * sqlite, const char *coverage_name) { /* auxiliary function: deleting all Vector Coverage Styled references */ int ret; const char *sql; sqlite3_stmt *stmt; sql = "DELETE FROM SE_vector_styled_layers WHERE coverage_name = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("unregisterVectorCoverageStyles: \"%s\"\n", sqlite3_errmsg (sqlite)); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else spatialite_e ("unregisterVectorCoverageStyles() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); } static void do_delete_vector_coverage_styled_groups (sqlite3 * sqlite, const char *coverage_name) { /* auxiliary function: deleting all Vector Coverage Styled Group references */ int ret; const char *sql; sqlite3_stmt *stmt; sql = "DELETE FROM SE_styled_group_refs WHERE vector_coverage_name = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("unregisterVectorCoverageGroups: \"%s\"\n", sqlite3_errmsg (sqlite)); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else spatialite_e ("unregisterVectorCoverageGroups() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); } static int do_delete_vector_coverage (sqlite3 * sqlite, const char *coverage_name) { /* auxiliary function: deleting a Vector Coverage */ int ret; const char *sql; sqlite3_stmt *stmt; int retval = 0; sql = "DELETE FROM vector_coverages " "WHERE Lower(coverage_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("unregisterVectorCoverage: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("unregisterVectorCoverage() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } SPATIALITE_PRIVATE int unregister_vector_coverage (void *p_sqlite, const char *coverage_name) { /* auxiliary function: deletes a Vector Coverage definition (and any related) */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; if (coverage_name == NULL) return 0; /* checking if the Vector Coverage do actually exists */ if (!check_vector_coverage (sqlite, coverage_name)) return 0; /* deleting all alternative SRIDs */ do_delete_vector_coverage_srid (sqlite, coverage_name, -1); /* deleting all Keywords */ do_delete_vector_coverage_keyword (sqlite, coverage_name, NULL); /* deleting all Styled Layers */ do_delete_vector_coverage_styled_layers (sqlite, coverage_name); /* deleting all Styled Group references */ do_delete_vector_coverage_styled_groups (sqlite, coverage_name); /* deleting the Vector Coverage itself */ return do_delete_vector_coverage (sqlite, coverage_name); } SPATIALITE_PRIVATE int set_vector_coverage_infos (void *p_sqlite, const char *coverage_name, const char *title, const char *abstract) { /* auxiliary function: updates the descriptive infos supporting a Vector Coverage */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; const char *sql; sqlite3_stmt *stmt; if (coverage_name != NULL && title != NULL && abstract != NULL) { /* attempting to update the Vector Coverage */ sql = "UPDATE vector_coverages SET title = ?, abstract = ? " "WHERE Lower(coverage_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerVectorCoverage: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, title, strlen (title), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, abstract, strlen (abstract), SQLITE_STATIC); sqlite3_bind_text (stmt, 3, coverage_name, strlen (coverage_name), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("setVectorCoverageInfos() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return 0; } sqlite3_finalize (stmt); return 1; } else return 0; } static int check_vector_coverage_srid2 (sqlite3 * sqlite, const char *coverage_name, int srid) { /* checks if a Vector Coverage SRID do actually exists */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sql = "SELECT srid FROM vector_coverages_srid " "WHERE Lower(coverage_name) = Lower(?) AND srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Vector Coverage SRID: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 2, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count++; } sqlite3_finalize (stmt); if (count == 1) return 1; return 0; stop: return 0; } static int check_vector_coverage_srid1 (sqlite3 * sqlite, const char *coverage_name, int srid) { /* checks if a Vector Coverage do actually exists and check its SRID */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; int same_srid = 0; sql = "SELECT c.srid FROM vector_coverages AS v " "JOIN geometry_columns AS c ON (Lower(v.f_table_name) = Lower(c.f_table_name) " "AND Lower(v.f_geometry_column) = Lower(c.f_geometry_column)) " "WHERE Lower(v.coverage_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Vector Coverage SRID: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { int natural_srid = sqlite3_column_int (stmt, 0); if (srid == natural_srid) same_srid++; count++; } } sqlite3_finalize (stmt); if (count == 1 && same_srid == 0) { if (check_vector_coverage_srid2 (sqlite, coverage_name, srid)) return 0; else return 1; } return 0; stop: return 0; } SPATIALITE_PRIVATE int register_vector_coverage_srid (void *p_sqlite, const char *coverage_name, int srid) { /* auxiliary function: inserting a Vector Coverage alternative SRID */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; const char *sql; sqlite3_stmt *stmt; if (coverage_name == NULL) return 0; if (srid <= 0) return 0; /* checking if the Vector Coverage do actually exists */ if (!check_vector_coverage_srid1 (sqlite, coverage_name, srid)) return 0; /* attempting to insert the Vector Coverage alternative SRID */ sql = "INSERT INTO vector_coverages_srid " "(coverage_name, srid) VALUES (Lower(?), ?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerVectorCoverageSrid: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 2, srid); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("registerVectorCoverageSrid() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return 0; } sqlite3_finalize (stmt); return 1; } SPATIALITE_PRIVATE int unregister_vector_coverage_srid (void *p_sqlite, const char *coverage_name, int srid) { /* auxiliary function: deletes a Vector Coverage alternative SRID */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; if (coverage_name == NULL) return 0; /* checking if the Vector Coverage SRID do actually exists */ if (!check_vector_coverage_srid2 (sqlite, coverage_name, srid)) return 0; /* deleting the alternative SRID */ do_delete_vector_coverage_srid (sqlite, coverage_name, srid); return 1; } static int check_vector_coverage_keyword0 (sqlite3 * sqlite, const char *coverage_name) { /* checks if a Vector Coverage do actually exists */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sql = "SELECT coverage_name FROM vector_coverages WHERE Lower(coverage_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Vector Coverage Keyword: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count++; } sqlite3_finalize (stmt); if (count == 0) return 0; return 1; stop: return 0; } static int check_vector_coverage_keyword1 (sqlite3 * sqlite, const char *coverage_name, const char *keyword) { /* checks if a Vector Coverage do actually exists and check the Keyword */ int ret; const char *sql; sqlite3_stmt *stmt; int same_kw = 0; sql = "SELECT keyword FROM vector_coverages_keyword WHERE Lower(coverage_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Vector Coverage Keyword: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *kw = (const char *) sqlite3_column_text (stmt, 0); if (strcasecmp (kw, keyword) == 0) same_kw++; } } sqlite3_finalize (stmt); if (same_kw == 0) { if (!check_vector_coverage_keyword0 (sqlite, coverage_name)) return 0; else return 1; } return 0; stop: return 0; } static int check_vector_coverage_keyword2 (sqlite3 * sqlite, const char *coverage_name, const char *keyword) { /* checks if a Vector Coverage do actually exists and check the Keyword */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sql = "SELECT keyword FROM vector_coverages_keyword " "WHERE Lower(coverage_name) = Lower(?) AND Lower(keyword) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Vector Coverage Keyword: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, keyword, strlen (keyword), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count++; } sqlite3_finalize (stmt); if (count == 0) return 0; return 1; stop: return 0; } SPATIALITE_PRIVATE int register_vector_coverage_keyword (void *p_sqlite, const char *coverage_name, const char *keyword) { /* auxiliary function: inserting a Vector Coverage Keyword */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; const char *sql; sqlite3_stmt *stmt; if (coverage_name == NULL) return 0; if (keyword == NULL) return 0; /* checking if the Vector Coverage do actually exists */ if (!check_vector_coverage_keyword1 (sqlite, coverage_name, keyword)) return 0; /* attempting to insert the Vector Coverage Keyword */ sql = "INSERT INTO vector_coverages_keyword " "(coverage_name, keyword) VALUES (Lower(?), ?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerVectorCoverageKeyword: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, keyword, strlen (keyword), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("registerVectorCoverageKeyword() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return 0; } sqlite3_finalize (stmt); return 1; } SPATIALITE_PRIVATE int unregister_vector_coverage_keyword (void *p_sqlite, const char *coverage_name, const char *keyword) { /* auxiliary function: deletes a Vector Coverage Keyword */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; if (coverage_name == NULL) return 0; if (keyword == NULL) return 0; /* checking if the Vector Coverage Keyword do actually exists */ if (!check_vector_coverage_keyword2 (sqlite, coverage_name, keyword)) return 0; /* deleting the Keyword */ do_delete_vector_coverage_keyword (sqlite, coverage_name, keyword); return 1; } static int do_null_vector_coverage_extents (sqlite3 * sqlite, sqlite3_stmt * stmt_upd_cvg, sqlite3_stmt * stmt_null_srid, const char *coverage_name) { /* setting the main Coverage Extent to NULL */ int ret; sqlite3_reset (stmt_upd_cvg); sqlite3_clear_bindings (stmt_upd_cvg); sqlite3_bind_null (stmt_upd_cvg, 1); sqlite3_bind_null (stmt_upd_cvg, 2); sqlite3_bind_null (stmt_upd_cvg, 3); sqlite3_bind_null (stmt_upd_cvg, 4); sqlite3_bind_null (stmt_upd_cvg, 5); sqlite3_bind_null (stmt_upd_cvg, 6); sqlite3_bind_null (stmt_upd_cvg, 7); sqlite3_bind_null (stmt_upd_cvg, 8); sqlite3_bind_text (stmt_upd_cvg, 9, coverage_name, strlen (coverage_name), SQLITE_STATIC); ret = sqlite3_step (stmt_upd_cvg); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("updateVectorCoverageExtent error: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } /* setting all alternativ Coverage Extent to NULL */ sqlite3_reset (stmt_null_srid); sqlite3_clear_bindings (stmt_null_srid); sqlite3_bind_text (stmt_null_srid, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); ret = sqlite3_step (stmt_null_srid); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("updateVectorCoverageExtent error: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } return 1; } static int do_update_vector_coverage_extents (sqlite3 * sqlite, const void *cache, sqlite3_stmt * stmt_upd_cvg, sqlite3_stmt * stmt_srid, sqlite3_stmt * stmt_upd_srid, const char *coverage_name, int natural_srid, double minx, double miny, double maxx, double maxy) { /* updating the Coverage Extents */ int ret; int geographic = 0; double geo_minx = minx; double geo_miny = miny; double geo_maxx = maxx; double geo_maxy = maxy; char *proj_from = NULL; char *proj_to = NULL; gaiaGeomCollPtr in; gaiaGeomCollPtr out; gaiaPointPtr pt; getProjParams (sqlite, natural_srid, &proj_from); if (proj_from == NULL) goto error; ret = srid_is_geographic (sqlite, natural_srid, &geographic); if (!ret) return 0; if (!geographic) { /* computing the geographic extent */ getProjParams (sqlite, 4326, &proj_to); if (proj_to == NULL) goto error; in = gaiaAllocGeomColl (); in->Srid = natural_srid; gaiaAddPointToGeomColl (in, minx, miny); if (cache != NULL) out = gaiaTransform_r (cache, in, proj_from, proj_to); else out = gaiaTransform (in, proj_from, proj_to); if (out == NULL) { gaiaFreeGeomColl (in); goto error; } pt = out->FirstPoint; if (pt == NULL) { gaiaFreeGeomColl (in); gaiaFreeGeomColl (out); goto error; } geo_minx = pt->X; geo_miny = pt->Y; gaiaFreeGeomColl (in); gaiaFreeGeomColl (out); in = gaiaAllocGeomColl (); in->Srid = natural_srid; gaiaAddPointToGeomColl (in, maxx, maxy); if (cache != NULL) out = gaiaTransform_r (cache, in, proj_from, proj_to); else out = gaiaTransform (in, proj_from, proj_to); if (out == NULL) { gaiaFreeGeomColl (in); goto error; } pt = out->FirstPoint; if (pt == NULL) { gaiaFreeGeomColl (in); gaiaFreeGeomColl (out); goto error; } geo_maxx = pt->X; geo_maxy = pt->Y; gaiaFreeGeomColl (in); gaiaFreeGeomColl (out); free (proj_to); proj_to = NULL; } /* setting the main Coverage Extent */ sqlite3_reset (stmt_upd_cvg); sqlite3_clear_bindings (stmt_upd_cvg); sqlite3_bind_double (stmt_upd_cvg, 1, geo_minx); sqlite3_bind_double (stmt_upd_cvg, 2, geo_miny); sqlite3_bind_double (stmt_upd_cvg, 3, geo_maxx); sqlite3_bind_double (stmt_upd_cvg, 4, geo_maxy); sqlite3_bind_double (stmt_upd_cvg, 5, minx); sqlite3_bind_double (stmt_upd_cvg, 6, miny); sqlite3_bind_double (stmt_upd_cvg, 7, maxx); sqlite3_bind_double (stmt_upd_cvg, 8, maxy); sqlite3_bind_text (stmt_upd_cvg, 9, coverage_name, strlen (coverage_name), SQLITE_STATIC); ret = sqlite3_step (stmt_upd_cvg); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("updateVectorCoverageExtent error: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } /* updating any alternative SRID supporting this Vector Coverage */ sqlite3_reset (stmt_srid); sqlite3_clear_bindings (stmt_srid); sqlite3_bind_text (stmt_srid, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt_srid); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a single alternative SRID Extent */ double alt_minx; double alt_miny; double alt_maxx; double alt_maxy; int srid = sqlite3_column_int (stmt_srid, 0); getProjParams (sqlite, srid, &proj_to); if (proj_to == NULL) goto error; in = gaiaAllocGeomColl (); in->Srid = natural_srid; gaiaAddPointToGeomColl (in, minx, miny); if (cache != NULL) out = gaiaTransform_r (cache, in, proj_from, proj_to); else out = gaiaTransform (in, proj_from, proj_to); if (out == NULL) { gaiaFreeGeomColl (in); goto error; } pt = out->FirstPoint; if (pt == NULL) { gaiaFreeGeomColl (in); gaiaFreeGeomColl (out); goto error; } alt_minx = pt->X; alt_miny = pt->Y; gaiaFreeGeomColl (in); gaiaFreeGeomColl (out); in = gaiaAllocGeomColl (); in->Srid = natural_srid; gaiaAddPointToGeomColl (in, maxx, maxy); if (cache != NULL) out = gaiaTransform_r (cache, in, proj_from, proj_to); else out = gaiaTransform (in, proj_from, proj_to); if (out == NULL) { gaiaFreeGeomColl (in); goto error; } pt = out->FirstPoint; if (pt == NULL) { gaiaFreeGeomColl (in); gaiaFreeGeomColl (out); goto error; } alt_maxx = pt->X; alt_maxy = pt->Y; gaiaFreeGeomColl (in); gaiaFreeGeomColl (out); free (proj_to); proj_to = NULL; /* setting the alternative Srid Extent */ sqlite3_reset (stmt_upd_srid); sqlite3_clear_bindings (stmt_upd_srid); sqlite3_bind_double (stmt_upd_srid, 1, alt_minx); sqlite3_bind_double (stmt_upd_srid, 2, alt_miny); sqlite3_bind_double (stmt_upd_srid, 3, alt_maxx); sqlite3_bind_double (stmt_upd_srid, 4, alt_maxy); sqlite3_bind_text (stmt_upd_srid, 5, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_int (stmt_upd_srid, 6, srid); ret = sqlite3_step (stmt_upd_srid); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("updateVectorCoverageExtent error: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } } else { spatialite_e ("updateVectorCoverageExtent() error: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } } free (proj_from); return 1; error: if (proj_from) free (proj_from); if (proj_to) free (proj_to); return 0; } SPATIALITE_PRIVATE int update_vector_coverage_extent (void *p_sqlite, const void *cache, const char *coverage_name, int transaction) { /* updates one (or all) Vector Coverage Extents */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; char *sql; sqlite3_stmt *stmt = NULL; sqlite3_stmt *stmt_ext = NULL; sqlite3_stmt *stmt_upd_cvg = NULL; sqlite3_stmt *stmt_upd_srid = NULL; sqlite3_stmt *stmt_null_srid = NULL; sqlite3_stmt *stmt_srid = NULL; /* preparing the ancillary SQL statements */ sql = "SELECT srid FROM vector_coverages_srid " "WHERE Lower(coverage_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt_srid, NULL); if (ret != SQLITE_OK) { spatialite_e ("updateVectorCoverageExtent: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } sql = "UPDATE vector_coverages SET geo_minx = ?, geo_miny = ?, " "geo_maxx = ?, geo_maxy = ?, extent_minx = ?, extent_miny = ?, " "extent_maxx = ?, extent_maxy = ? " "WHERE Lower(coverage_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt_upd_cvg, NULL); if (ret != SQLITE_OK) { spatialite_e ("updateVectorCoverageExtent: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } sql = "UPDATE vector_coverages_srid SET extent_minx = NULL, " "extent_miny = NULL, extent_maxx = NULL, extent_maxy = NULL " "WHERE Lower(coverage_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt_null_srid, NULL); if (ret != SQLITE_OK) { spatialite_e ("updateVectorCoverageExtent: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } sql = "UPDATE vector_coverages_srid SET extent_minx = ?, " "extent_miny = ?, extent_maxx = ?, extent_maxy = ? " "WHERE Lower(coverage_name) = Lower(?) AND srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt_upd_srid, NULL); if (ret != SQLITE_OK) { spatialite_e ("updateVectorCoverageExtent: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } /* preparing the main SQL statement */ if (coverage_name == NULL) { sql = "SELECT v.coverage_name, v.f_table_name, v.f_geometry_column, " "c.srid FROM vector_coverages AS v " "JOIN geometry_columns AS c ON (Lower(v.f_table_name) = " "Lower(c.f_table_name) AND Lower(v.f_geometry_column) = " "Lower(c.f_geometry_column))"; } else { sql = "SELECT v.coverage_name, v.f_table_name, v.f_geometry_column, " "c.srid FROM vector_coverages AS v " "JOIN geometry_columns AS c ON (Lower(v.f_table_name) = " "Lower(c.f_table_name) AND Lower(v.f_geometry_column) = " "Lower(c.f_geometry_column)) " "WHERE Lower(v.coverage_name) = Lower(?)"; } ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("updateVectorCoverageExtent: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } if (transaction) { /* starting a Transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) goto error; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); if (coverage_name != NULL) sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a single Vector Coverage */ char *table; char *geom; const char *cvg = (const char *) sqlite3_column_text (stmt, 0); const char *xtable = (const char *) sqlite3_column_text (stmt, 1); const char *xgeom = (const char *) sqlite3_column_text (stmt, 2); int natural_srid = sqlite3_column_int (stmt, 3); table = gaiaDoubleQuotedSql (xtable); geom = gaiaDoubleQuotedSql (xgeom); sql = sqlite3_mprintf ("SELECT Min(MbrMinX(\"%s\")), Min(MbrMinY(\"%s\")), " "Max(MbrMaxX(\"%s\")), Max(MbrMaxY(\"%s\")) " "FROM \"%s\"", geom, geom, geom, geom, table); free (table); free (geom); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt_ext, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("updateVectorCoverageExtent: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { int null_minx = 1; int null_miny = 1; int null_maxx = 1; int null_maxy = 1; double minx; double miny; double maxx; double maxy; if (sqlite3_column_type (stmt_ext, 0) == SQLITE_FLOAT) { minx = sqlite3_column_double (stmt_ext, 0); null_minx = 0; } if (sqlite3_column_type (stmt_ext, 1) == SQLITE_FLOAT) { miny = sqlite3_column_double (stmt_ext, 1); null_miny = 0; } if (sqlite3_column_type (stmt_ext, 2) == SQLITE_FLOAT) { maxx = sqlite3_column_double (stmt_ext, 2); null_maxx = 0; } if (sqlite3_column_type (stmt_ext, 3) == SQLITE_FLOAT) { maxy = sqlite3_column_double (stmt_ext, 3); null_maxy = 0; } if (null_minx || null_miny || null_maxx || null_maxy) ret = do_null_vector_coverage_extents (sqlite, stmt_upd_cvg, stmt_null_srid, cvg); else ret = do_update_vector_coverage_extents (sqlite, cache, stmt_upd_cvg, stmt_srid, stmt_upd_srid, cvg, natural_srid, minx, miny, maxx, maxy); if (!ret) goto error; } else { spatialite_e ("updateVectorCoverageExtent() error: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } } sqlite3_finalize (stmt_ext); stmt_ext = NULL; } else { spatialite_e ("updateVectorCoverageExtent() error: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } } if (transaction) { /* committing the still pending Transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) goto error; } sqlite3_finalize (stmt); sqlite3_finalize (stmt_upd_cvg); sqlite3_finalize (stmt_upd_srid); sqlite3_finalize (stmt_null_srid); sqlite3_finalize (stmt_srid); return 1; error: if (stmt != NULL) sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); if (stmt_upd_cvg != NULL) sqlite3_finalize (stmt_upd_cvg); if (stmt_upd_srid != NULL) sqlite3_finalize (stmt_upd_srid); if (stmt_null_srid != NULL) sqlite3_finalize (stmt_null_srid); if (stmt_srid != NULL) sqlite3_finalize (stmt_srid); return 0; } static int check_raster_coverage_srid2 (sqlite3 * sqlite, const char *coverage_name, int srid) { /* checks if a Raster Coverage SRID do actually exists */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sql = "SELECT srid FROM raster_coverages_srid " "WHERE Lower(coverage_name) = Lower(?) AND srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Raster Coverage SRID: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 2, srid); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count++; } sqlite3_finalize (stmt); if (count == 1) return 1; return 0; stop: return 0; } static int check_raster_coverage_srid1 (sqlite3 * sqlite, const char *coverage_name, int srid) { /* checks if a Raster Coverage do actually exists and check its SRID */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; int same_srid = 0; sql = "SELECT srid FROM raster_coverages " "WHERE Lower(coverage_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Raster Coverage SRID: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { int natural_srid = sqlite3_column_int (stmt, 0); if (srid == natural_srid) same_srid++; count++; } } sqlite3_finalize (stmt); if (count == 1 && same_srid == 0) { if (check_raster_coverage_srid2 (sqlite, coverage_name, srid)) return 0; else return 1; } return 0; stop: return 0; } SPATIALITE_PRIVATE int register_raster_coverage_srid (void *p_sqlite, const char *coverage_name, int srid) { /* auxiliary function: inserting a Raster Coverage alternative SRID */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; const char *sql; sqlite3_stmt *stmt; if (coverage_name == NULL) return 0; if (srid <= 0) return 0; /* checking if the Raster Coverage do actually exists */ if (!check_raster_coverage_srid1 (sqlite, coverage_name, srid)) return 0; /* attempting to insert the Raster Coverage alternative SRID */ sql = "INSERT INTO raster_coverages_srid " "(coverage_name, srid) VALUES (Lower(?), ?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerRasterCoverageSrid: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 2, srid); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("registerRasterCoverageSrid() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return 0; } sqlite3_finalize (stmt); return 1; } static void do_delete_raster_coverage_srid (sqlite3 * sqlite, const char *coverage_name, int srid) { /* auxiliary function: deleting all Raster Coverage alternative SRIDs */ int ret; const char *sql; sqlite3_stmt *stmt; sql = "DELETE FROM raster_coverages_srid " "WHERE Lower(coverage_name) = Lower(?) AND srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("unregisterRasterCoverageSrid: \"%s\"\n", sqlite3_errmsg (sqlite)); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_int (stmt, 2, srid); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else spatialite_e ("unregisterRasterCoverageSrid() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); } SPATIALITE_PRIVATE int unregister_raster_coverage_srid (void *p_sqlite, const char *coverage_name, int srid) { /* auxiliary function: deletes a Raster Coverage alternative SRID */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; if (coverage_name == NULL) return 0; /* checking if the Raster Coverage SRID do actually exists */ if (!check_raster_coverage_srid2 (sqlite, coverage_name, srid)) return 0; /* deleting the alternative SRID */ do_delete_raster_coverage_srid (sqlite, coverage_name, srid); return 1; } static int check_raster_coverage_keyword0 (sqlite3 * sqlite, const char *coverage_name) { /* checks if a Raster Coverage do actually exists */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sql = "SELECT coverage_name FROM raster_coverages WHERE Lower(coverage_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Raster Coverage Keyword: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count++; } sqlite3_finalize (stmt); if (count == 0) return 0; return 1; stop: return 0; } static int check_raster_coverage_keyword1 (sqlite3 * sqlite, const char *coverage_name, const char *keyword) { /* checks if a Raster Coverage do actually exists and check the Keyword */ int ret; const char *sql; sqlite3_stmt *stmt; int same_kw = 0; sql = "SELECT keyword FROM raster_coverages_keyword WHERE Lower(coverage_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Raster Coverage Keyword: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *kw = (const char *) sqlite3_column_text (stmt, 0); if (strcasecmp (kw, keyword) == 0) same_kw++; } } sqlite3_finalize (stmt); if (same_kw == 0) { if (!check_raster_coverage_keyword0 (sqlite, coverage_name)) return 0; else return 1; } return 0; stop: return 0; } static int check_raster_coverage_keyword2 (sqlite3 * sqlite, const char *coverage_name, const char *keyword) { /* checks if a Raster Coverage do actually exists and check the Keyword */ int ret; const char *sql; sqlite3_stmt *stmt; int count = 0; sql = "SELECT keyword FROM raster_coverages_keyword " "WHERE Lower(coverage_name) = Lower(?) AND Lower(keyword) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("check Raster Coverage Keyword: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, keyword, strlen (keyword), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) count++; } sqlite3_finalize (stmt); if (count == 0) return 0; return 1; stop: return 0; } SPATIALITE_PRIVATE int register_raster_coverage_keyword (void *p_sqlite, const char *coverage_name, const char *keyword) { /* auxiliary function: inserting a Raster Coverage Keyword */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; const char *sql; sqlite3_stmt *stmt; if (coverage_name == NULL) return 0; if (keyword == NULL) return 0; /* checking if the Raster Coverage do actually exists */ if (!check_raster_coverage_keyword1 (sqlite, coverage_name, keyword)) return 0; /* attempting to insert the Raster Coverage Keyword */ sql = "INSERT INTO raster_coverages_keyword " "(coverage_name, keyword) VALUES (Lower(?), ?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerRasterCoverageKeyword: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, keyword, strlen (keyword), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("registerRasterCoverageKeyword() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return 0; } sqlite3_finalize (stmt); return 1; } static void do_delete_raster_coverage_keyword (sqlite3 * sqlite, const char *coverage_name, const char *keyword) { /* auxiliary function: deleting all Raster Coverage Keyword */ int ret; const char *sql; sqlite3_stmt *stmt; sql = "DELETE FROM raster_coverages_keyword " "WHERE Lower(coverage_name) = Lower(?) AND Lower(keyword) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("unregisterRasterCoverageKeyword: \"%s\"\n", sqlite3_errmsg (sqlite)); return; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_text (stmt, 2, keyword, strlen (keyword), SQLITE_STATIC); ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else spatialite_e ("unregisterRasterCoverageKeyword() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); } SPATIALITE_PRIVATE int unregister_raster_coverage_keyword (void *p_sqlite, const char *coverage_name, const char *keyword) { /* auxiliary function: deletes a Raster Coverage Keyword */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; if (coverage_name == NULL) return 0; if (keyword == NULL) return 0; /* checking if the Raster Coverage Keyword do actually exists */ if (!check_raster_coverage_keyword2 (sqlite, coverage_name, keyword)) return 0; /* deleting the Keyword */ do_delete_raster_coverage_keyword (sqlite, coverage_name, keyword); return 1; } static int do_null_raster_coverage_extents (sqlite3 * sqlite, sqlite3_stmt * stmt_upd_cvg, sqlite3_stmt * stmt_null_srid, const char *coverage_name) { /* setting the main Coverage Extent to NULL */ int ret; sqlite3_reset (stmt_upd_cvg); sqlite3_clear_bindings (stmt_upd_cvg); sqlite3_bind_null (stmt_upd_cvg, 1); sqlite3_bind_null (stmt_upd_cvg, 2); sqlite3_bind_null (stmt_upd_cvg, 3); sqlite3_bind_null (stmt_upd_cvg, 4); sqlite3_bind_null (stmt_upd_cvg, 5); sqlite3_bind_null (stmt_upd_cvg, 6); sqlite3_bind_null (stmt_upd_cvg, 7); sqlite3_bind_null (stmt_upd_cvg, 8); sqlite3_bind_text (stmt_upd_cvg, 9, coverage_name, strlen (coverage_name), SQLITE_STATIC); ret = sqlite3_step (stmt_upd_cvg); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("updateRasterCoverageExtent error: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } /* setting all alternativ Coverage Extent to NULL */ sqlite3_reset (stmt_null_srid); sqlite3_clear_bindings (stmt_null_srid); sqlite3_bind_text (stmt_null_srid, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); ret = sqlite3_step (stmt_null_srid); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("updateRasterCoverageExtent error: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } return 1; } static int do_update_raster_coverage_extents (sqlite3 * sqlite, const void *cache, sqlite3_stmt * stmt_upd_cvg, sqlite3_stmt * stmt_srid, sqlite3_stmt * stmt_upd_srid, const char *coverage_name, int natural_srid, double minx, double miny, double maxx, double maxy) { /* updating the Coverage Extents */ int ret; int geographic = 0; double geo_minx = minx; double geo_miny = miny; double geo_maxx = maxx; double geo_maxy = maxy; char *proj_from = NULL; char *proj_to = NULL; gaiaGeomCollPtr in; gaiaGeomCollPtr out; gaiaPointPtr pt; getProjParams (sqlite, natural_srid, &proj_from); if (proj_from == NULL) goto error; ret = srid_is_geographic (sqlite, natural_srid, &geographic); if (!ret) return 0; if (!geographic) { /* computing the geographic extent */ getProjParams (sqlite, 4326, &proj_to); if (proj_to == NULL) goto error; in = gaiaAllocGeomColl (); in->Srid = natural_srid; gaiaAddPointToGeomColl (in, minx, miny); if (cache != NULL) out = gaiaTransform_r (cache, in, proj_from, proj_to); else out = gaiaTransform (in, proj_from, proj_to); if (out == NULL) { gaiaFreeGeomColl (in); goto error; } pt = out->FirstPoint; if (pt == NULL) { gaiaFreeGeomColl (in); gaiaFreeGeomColl (out); goto error; } geo_minx = pt->X; geo_miny = pt->Y; gaiaFreeGeomColl (in); gaiaFreeGeomColl (out); in = gaiaAllocGeomColl (); in->Srid = natural_srid; gaiaAddPointToGeomColl (in, maxx, maxy); if (cache != NULL) out = gaiaTransform_r (cache, in, proj_from, proj_to); else out = gaiaTransform (in, proj_from, proj_to); if (out == NULL) { gaiaFreeGeomColl (in); goto error; } pt = out->FirstPoint; if (pt == NULL) { gaiaFreeGeomColl (in); gaiaFreeGeomColl (out); goto error; } geo_maxx = pt->X; geo_maxy = pt->Y; gaiaFreeGeomColl (in); gaiaFreeGeomColl (out); free (proj_to); proj_to = NULL; } /* setting the main Coverage Extent */ sqlite3_reset (stmt_upd_cvg); sqlite3_clear_bindings (stmt_upd_cvg); sqlite3_bind_double (stmt_upd_cvg, 1, geo_minx); sqlite3_bind_double (stmt_upd_cvg, 2, geo_miny); sqlite3_bind_double (stmt_upd_cvg, 3, geo_maxx); sqlite3_bind_double (stmt_upd_cvg, 4, geo_maxy); sqlite3_bind_double (stmt_upd_cvg, 5, minx); sqlite3_bind_double (stmt_upd_cvg, 6, miny); sqlite3_bind_double (stmt_upd_cvg, 7, maxx); sqlite3_bind_double (stmt_upd_cvg, 8, maxy); sqlite3_bind_text (stmt_upd_cvg, 9, coverage_name, strlen (coverage_name), SQLITE_STATIC); ret = sqlite3_step (stmt_upd_cvg); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("updateRasterCoverageExtent error: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } /* updating any alternative SRID supporting this Raster Coverage */ sqlite3_reset (stmt_srid); sqlite3_clear_bindings (stmt_srid); sqlite3_bind_text (stmt_srid, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt_srid); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a single alternative SRID Extent */ double alt_minx; double alt_miny; double alt_maxx; double alt_maxy; int srid = sqlite3_column_int (stmt_srid, 0); getProjParams (sqlite, srid, &proj_to); if (proj_to == NULL) goto error; in = gaiaAllocGeomColl (); in->Srid = natural_srid; gaiaAddPointToGeomColl (in, minx, miny); if (cache != NULL) out = gaiaTransform_r (cache, in, proj_from, proj_to); else out = gaiaTransform (in, proj_from, proj_to); if (out == NULL) { gaiaFreeGeomColl (in); goto error; } pt = out->FirstPoint; if (pt == NULL) { gaiaFreeGeomColl (in); gaiaFreeGeomColl (out); goto error; } alt_minx = pt->X; alt_miny = pt->Y; gaiaFreeGeomColl (in); gaiaFreeGeomColl (out); in = gaiaAllocGeomColl (); in->Srid = natural_srid; gaiaAddPointToGeomColl (in, maxx, maxy); if (cache != NULL) out = gaiaTransform_r (cache, in, proj_from, proj_to); else out = gaiaTransform (in, proj_from, proj_to); if (out == NULL) { gaiaFreeGeomColl (in); goto error; } pt = out->FirstPoint; if (pt == NULL) { gaiaFreeGeomColl (in); gaiaFreeGeomColl (out); goto error; } alt_maxx = pt->X; alt_maxy = pt->Y; gaiaFreeGeomColl (in); gaiaFreeGeomColl (out); free (proj_to); proj_to = NULL; /* setting the alternative Srid Extent */ sqlite3_reset (stmt_upd_srid); sqlite3_clear_bindings (stmt_upd_srid); sqlite3_bind_double (stmt_upd_srid, 1, alt_minx); sqlite3_bind_double (stmt_upd_srid, 2, alt_miny); sqlite3_bind_double (stmt_upd_srid, 3, alt_maxx); sqlite3_bind_double (stmt_upd_srid, 4, alt_maxy); sqlite3_bind_text (stmt_upd_srid, 5, coverage_name, strlen (coverage_name), SQLITE_STATIC); sqlite3_bind_int (stmt_upd_srid, 6, srid); ret = sqlite3_step (stmt_upd_srid); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("updateRasterCoverageExtent error: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } } else { spatialite_e ("updateRasterCoverageExtent() error: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } } free (proj_from); return 1; error: if (proj_from) free (proj_from); if (proj_to) free (proj_to); return 0; } SPATIALITE_PRIVATE int update_raster_coverage_extent (void *p_sqlite, const void *cache, const char *coverage_name, int transaction) { /* updates one (or all) Raster Coverage Extents */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; int ret; char *sql; sqlite3_stmt *stmt = NULL; sqlite3_stmt *stmt_ext = NULL; sqlite3_stmt *stmt_upd_cvg = NULL; sqlite3_stmt *stmt_upd_srid = NULL; sqlite3_stmt *stmt_null_srid = NULL; sqlite3_stmt *stmt_srid = NULL; /* preparing the ancillary SQL statements */ sql = "SELECT srid FROM raster_coverages_srid " "WHERE Lower(coverage_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt_srid, NULL); if (ret != SQLITE_OK) { spatialite_e ("updateRasterCoverageExtent: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } sql = "UPDATE raster_coverages SET geo_minx = ?, geo_miny = ?, " "geo_maxx = ?, geo_maxy = ?, extent_minx = ?, extent_miny = ?, " "extent_maxx = ?, extent_maxy = ? " "WHERE Lower(coverage_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt_upd_cvg, NULL); if (ret != SQLITE_OK) { spatialite_e ("updateRasterCoverageExtent: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } sql = "UPDATE raster_coverages_srid SET extent_minx = NULL, " "extent_miny = NULL, extent_maxx = NULL, extent_maxy = NULL " "WHERE Lower(coverage_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt_null_srid, NULL); if (ret != SQLITE_OK) { spatialite_e ("updateRasterCoverageExtent: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } sql = "UPDATE raster_coverages_srid SET extent_minx = ?, " "extent_miny = ?, extent_maxx = ?, extent_maxy = ? " "WHERE Lower(coverage_name) = Lower(?) AND srid = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt_upd_srid, NULL); if (ret != SQLITE_OK) { spatialite_e ("updateRasterCoverageExtent: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } /* preparing the main SQL statement */ if (coverage_name == NULL) { sql = "SELECT coverage_name, srid FROM raster_coverages"; } else { sql = "SELECT coverage_name, srid FROM raster_coverages " "WHERE Lower(coverage_name) = Lower(?)"; } ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("updateRasterCoverageExtent: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } if (transaction) { /* starting a Transaction */ ret = sqlite3_exec (sqlite, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) goto error; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); if (coverage_name != NULL) sqlite3_bind_text (stmt, 1, coverage_name, strlen (coverage_name), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { /* processing a single Raster Coverage */ char *xtile_table; char *tile_table; const char *cvg = (const char *) sqlite3_column_text (stmt, 0); int natural_srid = sqlite3_column_int (stmt, 1); xtile_table = sqlite3_mprintf ("%s_tiles", cvg); tile_table = gaiaDoubleQuotedSql (xtile_table); sqlite3_free (xtile_table); sql = sqlite3_mprintf ("SELECT Min(MbrMinX(geometry)), Min(MbrMinY(geometry)), " "Max(MbrMaxX(geometry)), Max(MbrMaxY(geometry)) FROM \"%s\"", tile_table); free (tile_table); ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt_ext, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) { spatialite_e ("updateRasterCoverageExtent: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt_ext); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { int null_minx = 1; int null_miny = 1; int null_maxx = 1; int null_maxy = 1; double minx; double miny; double maxx; double maxy; if (sqlite3_column_type (stmt_ext, 0) == SQLITE_FLOAT) { minx = sqlite3_column_double (stmt_ext, 0); null_minx = 0; } if (sqlite3_column_type (stmt_ext, 1) == SQLITE_FLOAT) { miny = sqlite3_column_double (stmt_ext, 1); null_miny = 0; } if (sqlite3_column_type (stmt_ext, 2) == SQLITE_FLOAT) { maxx = sqlite3_column_double (stmt_ext, 2); null_maxx = 0; } if (sqlite3_column_type (stmt_ext, 3) == SQLITE_FLOAT) { maxy = sqlite3_column_double (stmt_ext, 3); null_maxy = 0; } if (null_minx || null_miny || null_maxx || null_maxy) ret = do_null_raster_coverage_extents (sqlite, stmt_upd_cvg, stmt_null_srid, cvg); else ret = do_update_raster_coverage_extents (sqlite, cache, stmt_upd_cvg, stmt_srid, stmt_upd_srid, cvg, natural_srid, minx, miny, maxx, maxy); if (!ret) goto error; } else { spatialite_e ("updateRasterCoverageExtent() error: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } } sqlite3_finalize (stmt_ext); stmt_ext = NULL; } else { spatialite_e ("updateRasterCoverageExtent() error: \"%s\"\n", sqlite3_errmsg (sqlite)); goto error; } } if (transaction) { /* committing the still pending Transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) goto error; } sqlite3_finalize (stmt); sqlite3_finalize (stmt_upd_cvg); sqlite3_finalize (stmt_upd_srid); sqlite3_finalize (stmt_null_srid); sqlite3_finalize (stmt_srid); return 1; error: if (stmt != NULL) sqlite3_finalize (stmt); if (stmt_ext != NULL) sqlite3_finalize (stmt_ext); if (stmt_upd_cvg != NULL) sqlite3_finalize (stmt_upd_cvg); if (stmt_upd_srid != NULL) sqlite3_finalize (stmt_upd_srid); if (stmt_null_srid != NULL) sqlite3_finalize (stmt_null_srid); if (stmt_srid != NULL) sqlite3_finalize (stmt_srid); return 0; } SPATIALITE_PRIVATE int get_iso_metadata_id (void *p_sqlite, const char *fileIdentifier, void *p_id) { /* auxiliary function: return the ID of the row corresponding to "fileIdentifier" */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; sqlite3_int64 *p64 = (sqlite3_int64 *) p_id; sqlite3_int64 id; int ret; const char *sql; sqlite3_stmt *stmt; int ok = 0; sql = "SELECT id FROM ISO_metadata WHERE fileId = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("getIsoMetadataId: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, fileIdentifier, strlen (fileIdentifier), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { ok++; id = sqlite3_column_int64 (stmt, 0); } } sqlite3_finalize (stmt); if (ok == 1) { *p64 = id; return 1; } stop: return 0; } SPATIALITE_PRIVATE int register_iso_metadata (void *p_sqlite, const char *scope, const unsigned char *p_blob, int n_bytes, void *p_id, const char *fileIdentifier) { /* auxiliary function: inserts or updates an ISO Metadata */ sqlite3 *sqlite = (sqlite3 *) p_sqlite; sqlite3_int64 *p64 = (sqlite3_int64 *) p_id; sqlite3_int64 id = *p64; int ret; const char *sql; sqlite3_stmt *stmt; int exists = 0; int retval = 0; if (id >= 0) { /* checking if already exists - by ID */ sql = "SELECT id FROM ISO_metadata WHERE id = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerIsoMetadata: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_int64 (stmt, 1, id); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) exists = 1; } sqlite3_finalize (stmt); } if (fileIdentifier != NULL) { /* checking if already exists - by fileIdentifier */ sql = "SELECT id FROM ISO_metadata WHERE fileId = ?"; ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerIsoMetadata: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); sqlite3_bind_text (stmt, 1, fileIdentifier, strlen (fileIdentifier), SQLITE_STATIC); while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { exists = 1; id = sqlite3_column_int64 (stmt, 0); } } sqlite3_finalize (stmt); } if (exists) { /* update */ sql = "UPDATE ISO_metadata SET md_scope = ?, metadata = ? " "WHERE id = ?"; } else { /* insert */ sql = "INSERT INTO ISO_metadata " "(id, md_scope, metadata) VALUES (?, ?, ?)"; } ret = sqlite3_prepare_v2 (sqlite, sql, strlen (sql), &stmt, NULL); if (ret != SQLITE_OK) { spatialite_e ("registerIsoMetadata: \"%s\"\n", sqlite3_errmsg (sqlite)); goto stop; } sqlite3_reset (stmt); sqlite3_clear_bindings (stmt); if (exists) { /* update */ sqlite3_bind_text (stmt, 1, scope, strlen (scope), SQLITE_STATIC); sqlite3_bind_blob (stmt, 2, p_blob, n_bytes, SQLITE_STATIC); sqlite3_bind_int64 (stmt, 3, id); } else { /* insert */ if (id < 0) sqlite3_bind_null (stmt, 1); else sqlite3_bind_int64 (stmt, 1, id); sqlite3_bind_text (stmt, 2, scope, strlen (scope), SQLITE_STATIC); sqlite3_bind_blob (stmt, 3, p_blob, n_bytes, SQLITE_STATIC); } ret = sqlite3_step (stmt); if (ret == SQLITE_DONE || ret == SQLITE_ROW) retval = 1; else spatialite_e ("registerIsoMetadata() error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt); return retval; stop: return 0; } #endif /* end including LIBXML2 */ libspatialite-4.3.0a/src/spatialite/virtualXL.c0000664000175000017500000006100712544707704016472 00000000000000/* virtualXLc -- SQLite3 extension [VIRTUAL TABLE accessing .XLS] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #ifndef OMIT_FREEXL #include #endif #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ #ifndef OMIT_ICONV /* if ICONV is disabled no XL support is available */ #ifndef OMIT_FREEXL /* FreeXL is disabled */ static struct sqlite3_module my_XL_module; typedef struct VirtualXLStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ const void *XL_handle; /* the XL handle */ unsigned int rows; /* Worksheet #rows */ unsigned short columns; /* Worksheet #columns */ char firstLineTitles; /* 'Y' or 'N' */ } VirtualXL; typedef VirtualXL *VirtualXLPtr; typedef struct VirtualXLConstraintStruct { /* a constraint to be verified for xFilter */ int iColumn; /* Column on left-hand side of constraint */ int op; /* Constraint operator */ char valueType; /* value Type ('I'=int,'D'=double,'T'=text) */ sqlite3_int64 intValue; /* Int64 comparison value */ double dblValue; /* Double comparison value */ char *txtValue; /* Text comparison value */ struct VirtualXLConstraintStruct *next; } VirtualXLConstraint; typedef VirtualXLConstraint *VirtualXLConstraintPtr; typedef struct VirtualXLCursorStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualXLPtr pVtab; /* Virtual table of this cursor */ unsigned int current_row; /* the current row ID */ int eof; /* the EOF marker */ VirtualXLConstraintPtr firstConstraint; VirtualXLConstraintPtr lastConstraint; } VirtualXLCursor; typedef VirtualXLCursor *VirtualXLCursorPtr; static int vXL_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table connected to some XLS file */ char *sql; VirtualXLPtr p_vt; char path[2048]; char firstLineTitles = 'N'; unsigned int worksheet = 0; unsigned int max_worksheet; unsigned int info; unsigned int rows; unsigned short columns; unsigned short col; int len; int ret; const void *handle; const char *pPath = NULL; char *xname; gaiaOutBuffer sql_statement; if (pAux) pAux = pAux; /* unused arg warning suppression */ /* checking for XLS PATH */ if (argc == 4 || argc == 5 || argc == 6) { pPath = argv[3]; len = strlen (pPath); if ((*(pPath + 0) == '\'' || *(pPath + 0) == '"') && (*(pPath + len - 1) == '\'' || *(pPath + len - 1) == '"')) { /* the path is enclosed between quotes - we need to dequote it */ strcpy (path, pPath + 1); len = strlen (path); *(path + len - 1) = '\0'; } else strcpy (path, pPath); if (argc == 5 || argc == 6) worksheet = atoi (argv[4]); if (argc == 6) { if (atoi (argv[5]) == 1) firstLineTitles = 'Y'; } } else { *pzErr = sqlite3_mprintf ("[VirtualXL module] CREATE VIRTUAL: illegal arg list {xls_path [, worksheet_index [, first_line_titles(1/0)]]}"); return SQLITE_ERROR; } /* allocating the main XL module */ p_vt = (VirtualXLPtr) sqlite3_malloc (sizeof (VirtualXL)); if (!p_vt) return SQLITE_NOMEM; p_vt->pModule = &my_XL_module; p_vt->nRef = 0; p_vt->zErrMsg = NULL; p_vt->db = db; p_vt->XL_handle = NULL; p_vt->rows = 0; p_vt->columns = 0; p_vt->firstLineTitles = firstLineTitles; /* opening the .XLS file [Workbook] */ ret = freexl_open (path, &handle); if (ret != FREEXL_OK) { /* free memory */ freexl_close (handle); /* something is going the wrong way; creating a stupid default table */ xname = gaiaDoubleQuotedSql (argv[2]); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (PKUID INTEGER)", xname); free (xname); if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) { sqlite3_free (sql); *pzErr = sqlite3_mprintf ("[VirtualXL module] cannot build a table from XL\n"); return SQLITE_ERROR; } sqlite3_free (sql); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } /* checking if Password Protected [obfuscated] */ freexl_get_info (handle, FREEXL_BIFF_PASSWORD, &info); if (info != FREEXL_BIFF_PLAIN) { /* free memory */ freexl_close (handle); /* Obfuscated: creating a stupid default table */ xname = gaiaDoubleQuotedSql (argv[2]); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (PKUID INTEGER)", xname); free (xname); if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) { sqlite3_free (sql); *pzErr = sqlite3_mprintf ("[VirtualXL module] Password protected [obfuscated] .xls\n"); return SQLITE_ERROR; } sqlite3_free (sql); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } /* querying how many Worksheets are there */ freexl_get_info (handle, FREEXL_BIFF_SHEET_COUNT, &max_worksheet); if (worksheet >= max_worksheet) { /* free memory */ freexl_close (handle); /* no such Worksheet: creating a stupid default table */ xname = gaiaDoubleQuotedSql (argv[2]); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (PKUID INTEGER)", xname); free (xname); if (sqlite3_declare_vtab (db, sql) != SQLITE_OK) { sqlite3_free (sql); *pzErr = sqlite3_mprintf ("[VirtualXL module] no such Worksheet [index=%u]\n", worksheet); return SQLITE_ERROR; } sqlite3_free (sql); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } /* selecting the currently active XL Worksheet */ freexl_select_active_worksheet (handle, worksheet); freexl_worksheet_dimensions (handle, &rows, &columns); p_vt->XL_handle = handle; p_vt->rows = rows; p_vt->columns = columns; /* preparing the COLUMNs for this VIRTUAL TABLE */ gaiaOutBufferInitialize (&sql_statement); xname = gaiaDoubleQuotedSql (argv[2]); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (row_no INTEGER", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); if (firstLineTitles == 'Y') { /* fetching column names */ for (col = 0; col < columns; col++) { FreeXL_CellValue cell; int ret = freexl_get_cell_value (handle, 0, col, &cell); if (ret != FREEXL_OK) sql = sqlite3_mprintf ("col_%d", col); else { if (cell.type == FREEXL_CELL_INT) sql = sqlite3_mprintf ("%d", cell.value.int_value); else if (cell.type == FREEXL_CELL_DOUBLE) sql = sqlite3_mprintf ("%1.2f", cell.value.double_value); else if (cell.type == FREEXL_CELL_TEXT || cell.type == FREEXL_CELL_SST_TEXT || cell.type == FREEXL_CELL_DATE || cell.type == FREEXL_CELL_DATETIME || cell.type == FREEXL_CELL_TIME) { int len = strlen (cell.value.text_value); if (len < 256) sql = sqlite3_mprintf ("%s", cell.value.text_value); else sql = sqlite3_mprintf ("col_%d", col); } else sql = sqlite3_mprintf ("col_%d", col); } xname = gaiaDoubleQuotedSql (sql); sqlite3_free (sql); sql = sqlite3_mprintf (", \"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } } else { /* setting default column names */ for (col = 0; col < columns; col++) { sql = sqlite3_mprintf ("col_%d", col); xname = gaiaDoubleQuotedSql (sql); sqlite3_free (sql); sql = sqlite3_mprintf (", \"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { if (sqlite3_declare_vtab (db, sql_statement.Buffer) != SQLITE_OK) { *pzErr = sqlite3_mprintf ("[VirtualXL module] CREATE VIRTUAL: invalid SQL statement \"%s\"", sql_statement.Buffer); gaiaOutBufferReset (&sql_statement); return SQLITE_ERROR; } } gaiaOutBufferReset (&sql_statement); *ppVTab = (sqlite3_vtab *) p_vt; return SQLITE_OK; } static int vXL_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table to a .xls file - simply aliases vXL_create() */ return vXL_create (db, pAux, argc, argv, ppVTab, pzErr); } static int vXL_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIndex) { /* best index selection */ int i; int iArg = 0; char str[2048]; char buf[64]; if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ *str = '\0'; for (i = 0; i < pIndex->nConstraint; i++) { if (pIndex->aConstraint[i].usable) { iArg++; pIndex->aConstraintUsage[i].argvIndex = iArg; pIndex->aConstraintUsage[i].omit = 1; sprintf (buf, "%d:%d,", pIndex->aConstraint[i].iColumn, pIndex->aConstraint[i].op); strcat (str, buf); } } if (*str != '\0') { pIndex->idxStr = sqlite3_mprintf ("%s", str); pIndex->needToFreeIdxStr = 1; } return SQLITE_OK; } static int vXL_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualXLPtr p_vt = (VirtualXLPtr) pVTab; if (p_vt->XL_handle) freexl_close (p_vt->XL_handle); sqlite3_free (p_vt); return SQLITE_OK; } static int vXL_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases vXL_disconnect() */ return vXL_disconnect (pVTab); } static void vXL_read_row (VirtualXLCursorPtr cursor) { /* trying to read a "row" from XL */ cursor->current_row++; if (cursor->current_row > cursor->pVtab->rows) { cursor->eof = 1; return; } } static int vXL_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ VirtualXLCursorPtr cursor = (VirtualXLCursorPtr) sqlite3_malloc (sizeof (VirtualXLCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->firstConstraint = NULL; cursor->lastConstraint = NULL; cursor->pVtab = (VirtualXLPtr) pVTab; if (cursor->pVtab->firstLineTitles == 'Y') cursor->current_row = 1; else cursor->current_row = 0; cursor->eof = 0; *ppCursor = (sqlite3_vtab_cursor *) cursor; vXL_read_row (cursor); return SQLITE_OK; } static void vXL_free_constraints (VirtualXLCursorPtr cursor) { /* memory cleanup - cursor constraints */ VirtualXLConstraintPtr pC; VirtualXLConstraintPtr pCn; pC = cursor->firstConstraint; while (pC) { pCn = pC->next; if (pC->txtValue) sqlite3_free (pC->txtValue); sqlite3_free (pC); pC = pCn; } cursor->firstConstraint = NULL; cursor->lastConstraint = NULL; } static int vXL_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ VirtualXLCursorPtr cursor = (VirtualXLCursorPtr) pCursor; vXL_free_constraints (cursor); sqlite3_free (pCursor); return SQLITE_OK; } static int vXL_parse_constraint (const char *str, int index, int *iColumn, int *op) { /* parsing a constraint string */ char buf[64]; const char *in = str; char *out = buf; int i = 0; int found = 0; *out = '\0'; while (*in != '\0') { if (*in == ',') { if (index == i) { *out = '\0'; found = 1; break; } i++; in++; continue; } if (index == i) *out++ = *in; in++; } if (!found) return 0; in = buf; for (i = 0; i < (int) strlen (buf); i++) { if (buf[i] == ':') { buf[i] = '\0'; *iColumn = atoi (buf); *op = atoi (buf + i + 1); return 1; } in++; } return 0; } static int vXL_eval_constraints (VirtualXLCursorPtr cursor) { /* evaluating Filter constraints */ FreeXL_CellValue cell; VirtualXLConstraintPtr pC = cursor->firstConstraint; if (pC == NULL) return 1; while (pC) { int ok = 0; if (pC->iColumn == 0) { /* the PRIMARY KEY column */ if (pC->valueType == 'I') { int cur_row = cursor->current_row; if (cursor->pVtab->firstLineTitles == 'Y') cur_row--; switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (cur_row == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (cur_row > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (cur_row <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (cur_row < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (cur_row >= pC->intValue) ok = 1; break; }; } goto done; } if (cursor->pVtab->XL_handle != NULL && cursor->current_row <= cursor->pVtab->rows && pC->iColumn <= cursor->pVtab->columns) freexl_get_cell_value (cursor->pVtab->XL_handle, cursor->current_row - 1, pC->iColumn - 1, &cell); else cell.type = FREEXL_CELL_NULL; if (cell.type == FREEXL_CELL_INT) { if (pC->valueType == 'I') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (cell.value.int_value == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (cell.value.int_value > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (cell.value.int_value <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (cell.value.int_value < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (cell.value.int_value >= pC->intValue) ok = 1; break; }; } if (pC->valueType == 'D') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (cell.value.int_value == pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (cell.value.int_value > pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (cell.value.int_value <= pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (cell.value.int_value < pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (cell.value.int_value >= pC->dblValue) ok = 1; break; }; } } if (cell.type == FREEXL_CELL_DOUBLE) { if (pC->valueType == 'I') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (cell.value.double_value == pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (cell.value.double_value > pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (cell.value.double_value <= pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (cell.value.double_value < pC->intValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (cell.value.double_value >= pC->intValue) ok = 1; break; }; } if (pC->valueType == 'D') { switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (cell.value.double_value == pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (cell.value.double_value > pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (cell.value.double_value <= pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (cell.value.double_value < pC->dblValue) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (cell.value.double_value >= pC->dblValue) ok = 1; break; }; } } if ((cell.type == FREEXL_CELL_TEXT || cell.type == FREEXL_CELL_SST_TEXT || cell.type == FREEXL_CELL_DATE || cell.type == FREEXL_CELL_DATETIME || cell.type == FREEXL_CELL_TIME) && pC->valueType == 'T') { int ret = strcmp (cell.value.text_value, pC->txtValue); switch (pC->op) { case SQLITE_INDEX_CONSTRAINT_EQ: if (ret == 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GT: if (ret > 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LE: if (ret <= 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_LT: if (ret < 0) ok = 1; break; case SQLITE_INDEX_CONSTRAINT_GE: if (ret >= 0) ok = 1; break; }; } done: if (!ok) return 0; pC = pC->next; } return 1; } static int vXL_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ int i; int iColumn; int op; int len; VirtualXLConstraintPtr pC; VirtualXLCursorPtr cursor = (VirtualXLCursorPtr) pCursor; if (idxNum) idxNum = idxNum; /* unused arg warning suppression */ /* resetting any previously set filter constraint */ vXL_free_constraints (cursor); for (i = 0; i < argc; i++) { if (!vXL_parse_constraint (idxStr, i, &iColumn, &op)) continue; pC = sqlite3_malloc (sizeof (VirtualXLConstraint)); if (!pC) continue; pC->iColumn = iColumn; pC->op = op; pC->valueType = '\0'; pC->txtValue = NULL; pC->next = NULL; if (sqlite3_value_type (argv[i]) == SQLITE_INTEGER) { pC->valueType = 'I'; pC->intValue = sqlite3_value_int64 (argv[i]); } if (sqlite3_value_type (argv[i]) == SQLITE_FLOAT) { pC->valueType = 'D'; pC->dblValue = sqlite3_value_double (argv[i]); } if (sqlite3_value_type (argv[i]) == SQLITE_TEXT) { pC->valueType = 'T'; len = sqlite3_value_bytes (argv[i]) + 1; pC->txtValue = (char *) sqlite3_malloc (len); if (pC->txtValue) strcpy (pC->txtValue, (char *) sqlite3_value_text (argv[i])); } if (cursor->firstConstraint == NULL) cursor->firstConstraint = pC; if (cursor->lastConstraint != NULL) cursor->lastConstraint->next = pC; cursor->lastConstraint = pC; } if (cursor->pVtab->firstLineTitles == 'Y') cursor->current_row = 1; else cursor->current_row = 0; cursor->eof = 0; while (1) { vXL_read_row (cursor); if (cursor->eof) break; if (vXL_eval_constraints (cursor)) break; } return SQLITE_OK; } static int vXL_next (sqlite3_vtab_cursor * pCursor) { /* fetching a next row from cursor */ VirtualXLCursorPtr cursor = (VirtualXLCursorPtr) pCursor; while (1) { vXL_read_row (cursor); if (cursor->eof) break; if (vXL_eval_constraints (cursor)) break; } return SQLITE_OK; } static int vXL_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualXLCursorPtr cursor = (VirtualXLCursorPtr) pCursor; return cursor->eof; } static int vXL_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ FreeXL_CellValue cell; VirtualXLCursorPtr cursor = (VirtualXLCursorPtr) pCursor; if (column == 0) { /* the PRIMARY KEY column */ if (cursor->pVtab->firstLineTitles == 'Y') sqlite3_result_int (pContext, cursor->current_row - 1); else sqlite3_result_int (pContext, cursor->current_row); return SQLITE_OK; } if (cursor->pVtab->XL_handle != NULL && cursor->current_row <= cursor->pVtab->rows && column <= cursor->pVtab->columns) freexl_get_cell_value (cursor->pVtab->XL_handle, cursor->current_row - 1, column - 1, &cell); else cell.type = FREEXL_CELL_NULL; switch (cell.type) { case FREEXL_CELL_INT: sqlite3_result_int (pContext, cell.value.int_value); break; case FREEXL_CELL_DOUBLE: sqlite3_result_double (pContext, cell.value.double_value); break; case FREEXL_CELL_TEXT: case FREEXL_CELL_SST_TEXT: case FREEXL_CELL_DATE: case FREEXL_CELL_DATETIME: case FREEXL_CELL_TIME: sqlite3_result_text (pContext, cell.value.text_value, strlen (cell.value.text_value), SQLITE_STATIC); break; default: sqlite3_result_null (pContext); break; }; return SQLITE_OK; } static int vXL_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualXLCursorPtr cursor = (VirtualXLCursorPtr) pCursor; if (cursor->pVtab->firstLineTitles == 'Y') *pRowid = cursor->current_row - 1; else *pRowid = cursor->current_row; return SQLITE_OK; } static int vXL_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ if (pVTab || argc || argv || pRowid) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_READONLY; } static int vXL_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vXL_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vXL_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vXL_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vXL_rename (sqlite3_vtab * pVTab, const char *zNew) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ if (zNew) zNew = zNew; /* unused arg warning suppression */ return SQLITE_ERROR; } static int spliteVirtualXLInit (sqlite3 * db) { int rc = SQLITE_OK; my_XL_module.iVersion = 1; my_XL_module.xCreate = &vXL_create; my_XL_module.xConnect = &vXL_connect; my_XL_module.xBestIndex = &vXL_best_index; my_XL_module.xDisconnect = &vXL_disconnect; my_XL_module.xDestroy = &vXL_destroy; my_XL_module.xOpen = &vXL_open; my_XL_module.xClose = &vXL_close; my_XL_module.xFilter = &vXL_filter; my_XL_module.xNext = &vXL_next; my_XL_module.xEof = &vXL_eof; my_XL_module.xColumn = &vXL_column; my_XL_module.xRowid = &vXL_rowid; my_XL_module.xUpdate = &vXL_update; my_XL_module.xBegin = &vXL_begin; my_XL_module.xSync = &vXL_sync; my_XL_module.xCommit = &vXL_commit; my_XL_module.xRollback = &vXL_rollback; my_XL_module.xFindFunction = NULL; my_XL_module.xRename = &vXL_rename; sqlite3_create_module_v2 (db, "VirtualXL", &my_XL_module, NULL, 0); return rc; } SPATIALITE_PRIVATE int virtualXL_extension_init (void *xdb) { sqlite3 *db = (sqlite3 *) xdb; return spliteVirtualXLInit (db); } #endif /* FreeXL enabled/disabled */ #endif /* ICONV enabled/disabled */ libspatialite-4.3.0a/src/spatialite/virtualbbox.c0000664000175000017500000006535412544707704017112 00000000000000/* virtualbbox.c -- SQLite3 extension [VIRTUAL TABLE accessing BoundingBox tables] version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ----------------------------------------------------------------------------- Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #define strncasecmp _strnicmp #endif /* not WIN32 */ /* 64 bit integer: portable format for printf() */ #if defined(_WIN32) && !defined(__MINGW32__) #define FRMT64 "%I64d" #else #define FRMT64 "%lld" #endif #if defined(_WIN32) && !defined(__MINGW32__) #define LONG64_MAX _I64_MAX #define LONG64_MIN _I64_MIN #else #define LONG64_MAX 9223372036854775807LL #define LONG64_MIN (-LONG64_MAX + 1) #endif static struct sqlite3_module my_bbox_module; typedef struct SqliteValue { /* a multitype storing a column value */ int Type; sqlite3_int64 IntValue; double DoubleValue; char *Text; unsigned char *Blob; int Size; } SqliteValue; typedef SqliteValue *SqliteValuePtr; typedef struct VirtualBBoxStruct { /* extends the sqlite3_vtab struct */ const sqlite3_module *pModule; /* ptr to sqlite module: USED INTERNALLY BY SQLITE */ int nRef; /* # references: USED INTERNALLY BY SQLITE */ char *zErrMsg; /* error message: USE INTERNALLY BY SQLITE */ sqlite3 *db; /* the sqlite db holding the virtual table */ char *table; /* the real-table name */ int nColumns; /* the # columns into the table */ char **Column; /* the name for each column */ char **Type; /* the type for each column */ char *Visible; /* true / false */ SqliteValuePtr *Value; /* the current-row value for each column */ const void *p_cache; /* pointer to the internal cache */ int Srid; /* the SRID for each Geometry column */ char *ColSrid; /* the column containing a SRID definition */ int ForceWGS84; /* always force WGS84 long-lat */ char *MinX; /* name of the MinX input column */ char *MinY; /* name of the MinY input column */ char *MaxX; /* name of the MaxX input column */ char *MaxY; /* name of the MaxY input column */ gaiaGeomCollPtr BBoxGeom; /* current BBOX geometry */ } VirtualBBox; typedef VirtualBBox *VirtualBBoxPtr; typedef struct VirtualBBoxCursorStruct { /* extends the sqlite3_vtab_cursor struct */ VirtualBBoxPtr pVtab; /* Virtual table of this cursor */ sqlite3_stmt *stmt; sqlite3_int64 current_row; /* the current row ID */ int eof; /* the EOF marker */ } VirtualBBoxCursor; typedef VirtualBBoxCursor *VirtualBBoxCursorPtr; static SqliteValuePtr value_alloc (void) { /* allocates and initialites a Value multitype */ SqliteValuePtr p = malloc (sizeof (SqliteValue)); p->Type = SQLITE_NULL; p->Text = NULL; p->Blob = NULL; return p; } static void value_free (SqliteValuePtr p) { /* freeing a Value multitype */ if (!p) return; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); free (p); } static void value_set_null (SqliteValuePtr p) { /* setting a NULL value to the multitype */ if (!p) return; p->Type = SQLITE_NULL; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Text = NULL; p->Blob = NULL; } static void value_set_int (SqliteValuePtr p, sqlite3_int64 value) { /* setting an INT value to the multitype */ if (!p) return; p->Type = SQLITE_INTEGER; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Text = NULL; p->Blob = NULL; p->IntValue = value; } static void value_set_double (SqliteValuePtr p, double value) { /* setting a DOUBLE value to the multitype */ if (!p) return; p->Type = SQLITE_FLOAT; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Text = NULL; p->Blob = NULL; p->DoubleValue = value; } static void value_set_text (SqliteValuePtr p, const char *value, int size) { /* setting a TEXT value to the multitype */ if (!p) return; p->Type = SQLITE_TEXT; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Blob = NULL; p->Text = malloc (size); memcpy (p->Text, value, size); p->Size = size; } static void value_set_blob (SqliteValuePtr p, const unsigned char *value, int size) { /* setting a BLOB value to the multitype */ if (!p) return; p->Type = SQLITE_BLOB; if (p->Text) free (p->Text); if (p->Blob) free (p->Blob); p->Text = NULL; p->Blob = malloc (size); memcpy (p->Blob, value, size); p->Size = size; } static void free_table (VirtualBBoxPtr p_vt) { /* memory cleanup; freeing the virtual table struct */ int i; if (!p_vt) return; if (p_vt->table) sqlite3_free (p_vt->table); if (p_vt->Column) { for (i = 0; i < p_vt->nColumns; i++) { if (*(p_vt->Column + i)) sqlite3_free (*(p_vt->Column + i)); } sqlite3_free (p_vt->Column); } if (p_vt->Type) { for (i = 0; i < p_vt->nColumns; i++) { if (*(p_vt->Type + i)) sqlite3_free (*(p_vt->Type + i)); } sqlite3_free (p_vt->Type); } if (p_vt->Visible) sqlite3_free (p_vt->Visible); if (p_vt->Value) { for (i = 0; i < p_vt->nColumns; i++) { if (*(p_vt->Value + i)) value_free (*(p_vt->Value + i)); } sqlite3_free (p_vt->Value); } if (p_vt->MinX) sqlite3_free (p_vt->MinX); if (p_vt->MinY) sqlite3_free (p_vt->MinY); if (p_vt->MaxX) sqlite3_free (p_vt->MaxX); if (p_vt->MaxY) sqlite3_free (p_vt->MaxY); if (p_vt->ColSrid) sqlite3_free (p_vt->ColSrid); if (p_vt->BBoxGeom) gaiaFreeGeomColl (p_vt->BBoxGeom); sqlite3_free (p_vt); } static void vbbox_read_row (VirtualBBoxCursorPtr cursor) { /* trying to read a row from the BoundingBox real-table */ struct splite_internal_cache *cache = (struct splite_internal_cache *) cursor->pVtab->p_cache; sqlite3_stmt *stmt; int ret; int ic; int icx; const char *text; const unsigned char *blob; int size; sqlite3_int64 pk; double minx = DBL_MAX; double miny = DBL_MAX; double maxx = 0.0 - DBL_MAX; double maxy = 0.0 - DBL_MAX; int srid; char ok_minx = 'N'; char ok_miny = 'N'; char ok_maxx = 'N'; char ok_maxy = 'N'; char ok_srid = 'N'; stmt = cursor->stmt; sqlite3_bind_int64 (stmt, 1, cursor->current_row); ret = sqlite3_step (stmt); if (ret == SQLITE_ROW) { pk = sqlite3_column_int64 (stmt, 0); if (sqlite3_column_type (stmt, 1) == SQLITE_FLOAT) { minx = sqlite3_column_double (stmt, 1); ok_minx = 'Y'; } if (sqlite3_column_type (stmt, 2) == SQLITE_FLOAT) { miny = sqlite3_column_double (stmt, 2); ok_miny = 'Y'; } if (sqlite3_column_type (stmt, 3) == SQLITE_FLOAT) { maxx = sqlite3_column_double (stmt, 3); ok_maxx = 'Y'; } if (sqlite3_column_type (stmt, 4) == SQLITE_FLOAT) { maxy = sqlite3_column_double (stmt, 4); ok_maxy = 'Y'; } if (sqlite3_column_type (stmt, 5) == SQLITE_INTEGER) { srid = sqlite3_column_int (stmt, 5); ok_srid = 'Y'; } if (cursor->pVtab->BBoxGeom) gaiaFreeGeomColl (cursor->pVtab->BBoxGeom); cursor->pVtab->BBoxGeom = NULL; if (ok_minx == 'Y' && ok_miny == 'Y' && ok_maxx == 'Y' && ok_maxy == 'Y') { gaiaGeomCollPtr geom = gaiaAllocGeomColl (); gaiaPolygonPtr pg = gaiaAddPolygonToGeomColl (geom, 5, 0); gaiaRingPtr rng = pg->Exterior; gaiaSetPoint (rng->Coords, 0, minx, miny); gaiaSetPoint (rng->Coords, 1, maxx, miny); gaiaSetPoint (rng->Coords, 2, maxx, maxy); gaiaSetPoint (rng->Coords, 3, minx, maxy); gaiaSetPoint (rng->Coords, 4, minx, miny); if (ok_srid == 'Y') { if (cursor->pVtab->ForceWGS84) { /* converting to WGS84 long-lat */ gaiaGeomCollPtr geom2 = NULL; char *proj_from = NULL; char *proj_to = NULL; geom->Srid = srid; getProjParams (cursor->pVtab->db, srid, &proj_from); getProjParams (cursor->pVtab->db, 4326, &proj_to); if (proj_to == NULL || proj_from == NULL) geom2 = NULL; else #ifndef OMIT_PROJ /* including PROJ.4 */ if (cache != NULL) geom2 = gaiaTransform_r (cache, geom, proj_from, proj_to); else geom2 = gaiaTransform (geom, proj_from, proj_to); #endif /* end including PROJ.4 */ geom2 = NULL; if (geom2 != NULL) geom2->Srid = 4326; cursor->pVtab->BBoxGeom = geom2; gaiaFreeGeomColl (geom); if (proj_from) free (proj_from); if (proj_to) free (proj_to); } else { geom->Srid = srid; cursor->pVtab->BBoxGeom = geom; } } else { geom->Srid = cursor->pVtab->Srid; cursor->pVtab->BBoxGeom = geom; } } icx = 5; for (ic = 0; ic < cursor->pVtab->nColumns; ic++) { if (*(cursor->pVtab->Visible + ic) != 'Y') continue; icx++; switch (sqlite3_column_type (stmt, icx)) { case SQLITE_INTEGER: value_set_int (*(cursor->pVtab->Value + ic), sqlite3_column_int64 (stmt, icx)); break; case SQLITE_FLOAT: value_set_double (*(cursor->pVtab->Value + ic), sqlite3_column_double (stmt, icx)); break; case SQLITE_TEXT: text = (char *) sqlite3_column_text (stmt, icx); size = sqlite3_column_bytes (stmt, icx); value_set_text (*(cursor->pVtab->Value + ic), text, size); break; case SQLITE_BLOB: blob = sqlite3_column_blob (stmt, icx); size = sqlite3_column_bytes (stmt, icx); value_set_blob (*(cursor->pVtab->Value + ic), blob, size); break; case SQLITE_NULL: default: value_set_null (*(cursor->pVtab->Value + ic)); break; }; } } else { /* an error occurred */ cursor->eof = 1; return; } cursor->eof = 0; cursor->current_row = pk; } static int vbbox_create (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* creates the virtual table connected to some BoundingBox table */ char *vtable = NULL; char *table = NULL; char *col_minx = NULL; char *col_miny = NULL; char *col_maxx = NULL; char *col_maxy = NULL; char *col_srid = NULL; char *x_force_wgs84 = NULL; int ret; int i; int i2; int len; int n_rows; int n_columns; const char *col_name; const char *col_type; int force_wgs84; char **results; char *sql; char *xname; gaiaOutBuffer sql_statement; VirtualBBoxPtr p_vt = NULL; if (pAux) pAux = pAux; /* unused arg warning suppression */ gaiaOutBufferInitialize (&sql_statement); /* checking for table_name */ if (argc >= 10) { vtable = gaiaDequotedSql ((char *) argv[2]); table = gaiaDequotedSql ((char *) argv[3]); col_minx = gaiaDequotedSql ((char *) argv[4]); col_miny = gaiaDequotedSql ((char *) argv[5]); col_maxx = gaiaDequotedSql ((char *) argv[6]); col_maxy = gaiaDequotedSql ((char *) argv[7]); col_srid = gaiaDequotedSql ((char *) argv[8]); x_force_wgs84 = gaiaDequotedSql ((char *) argv[9]); } else { *pzErr = sqlite3_mprintf ("[VirtualBBox module] CREATE VIRTUAL: illegal arg list {table_name, col_minx, col_miny, col_maxx, col_maxy, srid, longlat=1|0, columns}\n"); goto error; } if (strcmp (x_force_wgs84, "0") == 0) force_wgs84 = 0; else if (strcmp (x_force_wgs84, "1") == 0) force_wgs84 = 1; else { *pzErr = sqlite3_mprintf ("[VirtualBBox module] CREATE VIRTUAL: illegal arg list {table_name, col_minx, col_miny, col_maxx, col_maxy, srid, longlat=1|0, columns}\n"); goto error; } /* retrieving the base table columns */ xname = gaiaDoubleQuotedSql (table); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xname); free (xname); ret = sqlite3_get_table (db, sql, &results, &n_rows, &n_columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) goto illegal; if (n_rows >= 1) { p_vt = (VirtualBBoxPtr) sqlite3_malloc (sizeof (VirtualBBox)); if (!p_vt) return SQLITE_NOMEM; p_vt->db = db; p_vt->p_cache = pAux; p_vt->nRef = 0; p_vt->zErrMsg = NULL; len = strlen (table); p_vt->table = sqlite3_malloc (len + 1); strcpy (p_vt->table, table); p_vt->nColumns = n_rows; p_vt->Column = sqlite3_malloc (sizeof (char *) * n_rows); p_vt->Type = sqlite3_malloc (sizeof (char *) * n_rows); p_vt->Visible = sqlite3_malloc (sizeof (char *) * n_rows); memset (p_vt->Visible, 'N', n_rows); p_vt->Value = sqlite3_malloc (sizeof (SqliteValuePtr) * n_rows); p_vt->Srid = atoi (col_srid); p_vt->ForceWGS84 = force_wgs84; #ifndef OMIT_PROJ /* including PROJ.4 */ if (p_vt->ForceWGS84) spatialite_e ("VirtualBBOX WARNING - WGS84 is requested, but PROJ4 support is currently disabled\n"); #endif /* end including PROJ.4 */ p_vt->ColSrid = NULL; p_vt->MinX = NULL; p_vt->MinY = NULL; p_vt->MaxX = NULL; p_vt->MaxY = NULL; p_vt->BBoxGeom = NULL; for (i = 0; i < n_rows; i++) { *(p_vt->Column + i) = NULL; *(p_vt->Type + i) = NULL; *(p_vt->Value + i) = value_alloc (); } for (i = 1; i <= n_rows; i++) { col_name = results[(i * n_columns) + 1]; col_type = results[(i * n_columns) + 2]; len = strlen (col_name); if (strcasecmp (col_name, col_minx) == 0) { p_vt->MinX = sqlite3_malloc (len + 1); strcpy (p_vt->MinX, col_name); } if (strcasecmp (col_name, col_miny) == 0) { p_vt->MinY = sqlite3_malloc (len + 1); strcpy (p_vt->MinY, col_name); } if (strcasecmp (col_name, col_maxx) == 0) { p_vt->MaxX = sqlite3_malloc (len + 1); strcpy (p_vt->MaxX, col_name); } if (strcasecmp (col_name, col_maxy) == 0) { p_vt->MaxY = sqlite3_malloc (len + 1); strcpy (p_vt->MaxY, col_name); } if (strcasecmp (col_name, col_srid) == 0) { p_vt->ColSrid = sqlite3_malloc (len + 1); strcpy (p_vt->ColSrid, col_name); } *(p_vt->Column + (i - 1)) = sqlite3_malloc (len + 1); strcpy (*(p_vt->Column + (i - 1)), col_name); len = strlen (col_type); *(p_vt->Type + (i - 1)) = sqlite3_malloc (len + 1); strcpy (*(p_vt->Type + (i - 1)), col_type); for (i2 = 10; i2 < argc; i2++) { char *extra_col = gaiaDequotedSql ((char *) argv[i2]); if (strcasecmp (extra_col, col_name) == 0) *(p_vt->Visible + (i - 1)) = 'Y'; free (extra_col); } } sqlite3_free_table (results); } else { sqlite3_free_table (results); goto illegal; } if (p_vt->MinX == NULL || p_vt->MinY == NULL || p_vt->MaxX == NULL || p_vt->MaxY == NULL) goto illegal; /* preparing the COLUMNs for this VIRTUAL TABLE */ xname = gaiaDoubleQuotedSql (vtable); sql = sqlite3_mprintf ("CREATE TABLE \"%s\" (Geometry Polygon", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); for (i = 0; i < p_vt->nColumns; i++) { if (*(p_vt->Visible + i) != 'Y') continue; xname = gaiaDoubleQuotedSql (*(p_vt->Column + i)); sql = sqlite3_mprintf (", \"%s\" %s", xname, *(p_vt->Type + i)); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } gaiaAppendToOutBuffer (&sql_statement, ")"); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) { if (sqlite3_declare_vtab (db, sql_statement.Buffer) != SQLITE_OK) { *pzErr = sqlite3_mprintf ("[VirtualBBox module] CREATE VIRTUAL: invalid SQL statement \"%s\"", sql); goto error; } gaiaOutBufferReset (&sql_statement); } else goto error; *ppVTab = (sqlite3_vtab *) p_vt; free (vtable); free (table); free (col_minx); free (col_miny); free (col_maxx); free (col_maxy); free (col_srid); free (x_force_wgs84); return SQLITE_OK; illegal: /* something is going the wrong way */ gaiaOutBufferReset (&sql_statement); if (p_vt) free_table (p_vt); *pzErr = sqlite3_mprintf ("[VirtualBBox module] '%s' isn't a valid BoundingBox table\n", table); error: if (vtable) free (vtable); if (table) free (table); if (col_minx) free (col_minx); if (col_miny) free (col_miny); if (col_maxx) free (col_maxx); if (col_maxy) free (col_maxy); if (col_srid) free (col_srid); if (x_force_wgs84) free (x_force_wgs84); gaiaOutBufferReset (&sql_statement); return SQLITE_ERROR; } static int vbbox_connect (sqlite3 * db, void *pAux, int argc, const char *const *argv, sqlite3_vtab ** ppVTab, char **pzErr) { /* connects the virtual table to some shapefile - simply aliases vbbox_create() */ return vbbox_create (db, pAux, argc, argv, ppVTab, pzErr); } static int vbbox_best_index (sqlite3_vtab * pVTab, sqlite3_index_info * pIndex) { /* best index selection */ if (pVTab || pIndex) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vbbox_disconnect (sqlite3_vtab * pVTab) { /* disconnects the virtual table */ VirtualBBoxPtr p_vt = (VirtualBBoxPtr) pVTab; free_table (p_vt); return SQLITE_OK; } static int vbbox_destroy (sqlite3_vtab * pVTab) { /* destroys the virtual table - simply aliases vbbox_disconnect() */ return vbbox_disconnect (pVTab); } static int vbbox_open (sqlite3_vtab * pVTab, sqlite3_vtab_cursor ** ppCursor) { /* opening a new cursor */ sqlite3_stmt *stmt; gaiaOutBuffer sql_statement; int ret; char *sql; int ic; char *xname; VirtualBBoxCursorPtr cursor = (VirtualBBoxCursorPtr) sqlite3_malloc (sizeof (VirtualBBoxCursor)); if (cursor == NULL) return SQLITE_ERROR; cursor->pVtab = (VirtualBBoxPtr) pVTab; gaiaOutBufferInitialize (&sql_statement); gaiaAppendToOutBuffer (&sql_statement, "SELECT ROWID"); xname = gaiaDoubleQuotedSql (cursor->pVtab->MinX); sql = sqlite3_mprintf (",\"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); xname = gaiaDoubleQuotedSql (cursor->pVtab->MinY); sql = sqlite3_mprintf (",\"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); xname = gaiaDoubleQuotedSql (cursor->pVtab->MaxX); sql = sqlite3_mprintf (",\"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); xname = gaiaDoubleQuotedSql (cursor->pVtab->MaxY); sql = sqlite3_mprintf (",\"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); if (cursor->pVtab->ColSrid == NULL) gaiaAppendToOutBuffer (&sql_statement, ",NULL"); else { xname = gaiaDoubleQuotedSql (cursor->pVtab->ColSrid); sql = sqlite3_mprintf (",\"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } for (ic = 0; ic < cursor->pVtab->nColumns; ic++) { value_set_null (*(cursor->pVtab->Value + ic)); if (*(cursor->pVtab->Visible + ic) != 'Y') continue; xname = gaiaDoubleQuotedSql (*(cursor->pVtab->Column + ic)); sql = sqlite3_mprintf (",\"%s\"", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); } xname = gaiaDoubleQuotedSql (cursor->pVtab->table); sql = sqlite3_mprintf (" FROM \"%s\" WHERE ROWID >= ?", xname); free (xname); gaiaAppendToOutBuffer (&sql_statement, sql); sqlite3_free (sql); if (sql_statement.Error == 0 && sql_statement.Buffer != NULL) ret = sqlite3_prepare_v2 (cursor->pVtab->db, sql_statement.Buffer, strlen (sql_statement.Buffer), &stmt, NULL); else ret = SQLITE_ERROR; gaiaOutBufferReset (&sql_statement); if (ret != SQLITE_OK) { /* an error occurred */ cursor->eof = 1; return SQLITE_ERROR; } cursor->stmt = stmt; cursor->current_row = LONG64_MIN; cursor->eof = 0; *ppCursor = (sqlite3_vtab_cursor *) cursor; vbbox_read_row (cursor); return SQLITE_OK; } static int vbbox_close (sqlite3_vtab_cursor * pCursor) { /* closing the cursor */ int ic; VirtualBBoxCursorPtr cursor = (VirtualBBoxCursorPtr) pCursor; for (ic = 0; ic < cursor->pVtab->nColumns; ic++) value_set_null (*(cursor->pVtab->Value + ic)); if (cursor->stmt) sqlite3_finalize (cursor->stmt); sqlite3_free (pCursor); return SQLITE_OK; } static int vbbox_filter (sqlite3_vtab_cursor * pCursor, int idxNum, const char *idxStr, int argc, sqlite3_value ** argv) { /* setting up a cursor filter */ if (pCursor || idxNum || idxStr || argc || argv) pCursor = pCursor; /* unused arg warning suppression */ return SQLITE_OK; } static int vbbox_next (sqlite3_vtab_cursor * pCursor) { /* fetching next row from cursor */ VirtualBBoxCursorPtr cursor = (VirtualBBoxCursorPtr) pCursor; (cursor->current_row)++; vbbox_read_row (cursor); return SQLITE_OK; } static int vbbox_eof (sqlite3_vtab_cursor * pCursor) { /* cursor EOF */ VirtualBBoxCursorPtr cursor = (VirtualBBoxCursorPtr) pCursor; return cursor->eof; } static int vbbox_column (sqlite3_vtab_cursor * pCursor, sqlite3_context * pContext, int column) { /* fetching value for the Nth column */ VirtualBBoxCursorPtr cursor = (VirtualBBoxCursorPtr) pCursor; SqliteValuePtr value; int icol = 0; int icol_ok = 0; if (column == 0) { /* the BBox Geometry */ if (cursor->pVtab->BBoxGeom == NULL) sqlite3_result_null (pContext); else { unsigned char *blob; int size; gaiaToSpatiaLiteBlobWkb (cursor->pVtab->BBoxGeom, &blob, &size); sqlite3_result_blob (pContext, blob, size, free); } return SQLITE_OK; } while (icol < cursor->pVtab->nColumns) { if (*(cursor->pVtab->Visible + icol) != 'Y') { icol++; continue; } icol_ok++; if (icol_ok == column) { value = *(cursor->pVtab->Value + icol); switch (value->Type) { case SQLITE_INTEGER: sqlite3_result_int64 (pContext, value->IntValue); break; case SQLITE_FLOAT: sqlite3_result_double (pContext, value->DoubleValue); break; case SQLITE_TEXT: sqlite3_result_text (pContext, value->Text, value->Size, SQLITE_STATIC); break; case SQLITE_BLOB: sqlite3_result_blob (pContext, value->Blob, value->Size, SQLITE_STATIC); break; default: sqlite3_result_null (pContext); break; }; return SQLITE_OK; } icol++; } sqlite3_result_null (pContext); return SQLITE_OK; } static int vbbox_rowid (sqlite3_vtab_cursor * pCursor, sqlite_int64 * pRowid) { /* fetching the ROWID */ VirtualBBoxCursorPtr cursor = (VirtualBBoxCursorPtr) pCursor; *pRowid = cursor->current_row; return SQLITE_OK; } static int vbbox_update (sqlite3_vtab * pVTab, int argc, sqlite3_value ** argv, sqlite_int64 * pRowid) { /* generic update [INSERT / UPDATE / DELETE */ if (pVTab || argc || argv || pRowid) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_READONLY; } static int vbbox_begin (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vbbox_sync (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vbbox_commit (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vbbox_rollback (sqlite3_vtab * pVTab) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ return SQLITE_OK; } static int vbox_rename (sqlite3_vtab * pVTab, const char *zNew) { /* BEGIN TRANSACTION */ if (pVTab) pVTab = pVTab; /* unused arg warning suppression */ if (zNew) zNew = zNew; /* unused arg warning suppression */ return SQLITE_ERROR; } static int spliteVirtualBBoxInit (sqlite3 * db, void *p_cache) { int rc = SQLITE_OK; my_bbox_module.iVersion = 1; my_bbox_module.xCreate = &vbbox_create; my_bbox_module.xConnect = &vbbox_connect; my_bbox_module.xBestIndex = &vbbox_best_index; my_bbox_module.xDisconnect = &vbbox_disconnect; my_bbox_module.xDestroy = &vbbox_destroy; my_bbox_module.xOpen = &vbbox_open; my_bbox_module.xClose = &vbbox_close; my_bbox_module.xFilter = &vbbox_filter; my_bbox_module.xNext = &vbbox_next; my_bbox_module.xEof = &vbbox_eof; my_bbox_module.xColumn = &vbbox_column; my_bbox_module.xRowid = &vbbox_rowid; my_bbox_module.xUpdate = &vbbox_update; my_bbox_module.xBegin = &vbbox_begin; my_bbox_module.xSync = &vbbox_sync; my_bbox_module.xCommit = &vbbox_commit; my_bbox_module.xRollback = &vbbox_rollback; my_bbox_module.xFindFunction = NULL; my_bbox_module.xRename = &vbox_rename; sqlite3_create_module_v2 (db, "VirtualBBox", &my_bbox_module, p_cache, 0); return rc; } SPATIALITE_PRIVATE int virtualbbox_extension_init (void *xdb, const void *p_cache) { sqlite3 *db = (sqlite3 *) xdb; return spliteVirtualBBoxInit (db, (void *) p_cache); } libspatialite-4.3.0a/src/spatialite/extra_tables.c0000664000175000017500000046203412544707704017222 00000000000000/* extra_tables.c -- Creating all SLD/SE and ISO Metadata extra tables version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ /* CREDITS: this module has been partly funded by: Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale (implementing XML support - ISO Metadata and SLD/SE Styles) */ #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include #include #include #include #ifdef _WIN32 #define strcasecmp _stricmp #endif /* not WIN32 */ static int check_splite_metacatalog (sqlite3 * sqlite) { /* checks if "splite_metacatalog" really exists */ int table_name = 0; int column_name = 0; int table_name2 = 0; int column_name2 = 0; int value = 0; int count = 0; char sql[1024]; int ret; const char *name; int i; char **results; int rows; int columns; /* checking the "splite_metacatalog" table */ strcpy (sql, "PRAGMA table_info(splite_metacatalog)"); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "table_name") == 0) table_name = 1; if (strcasecmp (name, "column_name") == 0) column_name = 1; } } sqlite3_free_table (results); /* checking the "splite_metacatalog_statistics" table */ strcpy (sql, "PRAGMA table_info(splite_metacatalog_statistics)"); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, "table_name") == 0) table_name2 = 1; if (strcasecmp (name, "column_name") == 0) column_name2 = 1; if (strcasecmp (name, "value") == 0) value = 1; if (strcasecmp (name, "count") == 0) count = 1; } } sqlite3_free_table (results); if (table_name && column_name && table_name2 && column_name2 && value && count) return 1; return 0; } static int metacatalog_statistics (sqlite3 * sqlite, sqlite3_stmt * stmt_out, sqlite3_stmt * stmt_del, const char *table, const char *column) { /* auxiliary - updating "splite_metacatalog_statistics" */ char *xtable; char *xcolumn; char *sql_statement; int ret; sqlite3_stmt *stmt_in; xtable = gaiaDoubleQuotedSql (table); xcolumn = gaiaDoubleQuotedSql (column); sql_statement = sqlite3_mprintf ("SELECT \"%s\", Count(*) FROM \"%s\" " "GROUP BY \"%s\"", xcolumn, xtable, xcolumn); free (xcolumn); free (xtable); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt_in, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("Update MetaCatalog Statistics(4) error: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } /* deleting all existing rows */ sqlite3_reset (stmt_del); sqlite3_clear_bindings (stmt_del); sqlite3_bind_text (stmt_del, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt_del, 2, column, strlen (column), SQLITE_STATIC); ret = sqlite3_step (stmt_del); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("populate MetaCatalog Statistics(5) error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt_in); return 0; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt_in); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { sqlite3_reset (stmt_out); sqlite3_clear_bindings (stmt_out); sqlite3_bind_text (stmt_out, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt_out, 2, column, strlen (column), SQLITE_STATIC); switch (sqlite3_column_type (stmt_in, 0)) { case SQLITE_INTEGER: sqlite3_bind_int64 (stmt_out, 3, sqlite3_column_int (stmt_in, 0)); break; case SQLITE_FLOAT: sqlite3_bind_double (stmt_out, 3, sqlite3_column_double (stmt_in, 0)); break; case SQLITE_TEXT: sqlite3_bind_text (stmt_out, 3, (const char *) sqlite3_column_text (stmt_in, 0), sqlite3_column_bytes (stmt_in, 0), SQLITE_STATIC); break; case SQLITE_BLOB: sqlite3_bind_blob (stmt_out, 3, sqlite3_column_blob (stmt_in, 0), sqlite3_column_bytes (stmt_in, 0), SQLITE_STATIC); break; default: sqlite3_bind_null (stmt_out, 3); break; }; sqlite3_bind_int (stmt_out, 4, sqlite3_column_int (stmt_in, 1)); ret = sqlite3_step (stmt_out); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("populate MetaCatalog Statistics(6) error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt_in); return 0; } } } sqlite3_finalize (stmt_in); return 1; } SPATIALITE_DECLARE int gaiaUpdateMetaCatalogStatistics (sqlite3 * sqlite, const char *table, const char *column) { /* Updates the "splite_metacalog_statistics" table */ char *sql_statement; int ret; sqlite3_stmt *stmt_in; sqlite3_stmt *stmt_out; sqlite3_stmt *stmt_del; if (!check_splite_metacatalog (sqlite)) { spatialite_e ("invalid or not existing \"splite_metacatalog_statistics\" table\n"); return 0; } /* updating the MetaCatalog statistics */ sql_statement = sqlite3_mprintf ("SELECT table_name, column_name " "FROM splite_metacatalog WHERE " "Lower(table_name) = Lower(%Q) " "AND Lower(column_name) = Lower(%Q)", table, column); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt_in, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("Update MetaCatalog Statistics(1) error: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sql_statement = "INSERT INTO splite_metacatalog_statistics " "(table_name, column_name, value, count) " "VALUES (?, ?, ?, ?)"; ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt_out, NULL); if (ret != SQLITE_OK) { sqlite3_finalize (stmt_in); spatialite_e ("Update MetaCatalog Statistics(2) error: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sql_statement = "DELETE FROM splite_metacatalog_statistics " "WHERE Lower(table_name) = Lower(?) AND Lower(column_name) = Lower(?)"; ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt_del, NULL); if (ret != SQLITE_OK) { sqlite3_finalize (stmt_in); sqlite3_finalize (stmt_out); spatialite_e ("Update MetaCatalog Statistics(3) error: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt_in); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *table = (const char *) sqlite3_column_text (stmt_in, 0); const char *column = (const char *) sqlite3_column_text (stmt_in, 1); if (!metacatalog_statistics (sqlite, stmt_out, stmt_del, table, column)) { sqlite3_finalize (stmt_in); sqlite3_finalize (stmt_out); sqlite3_finalize (stmt_del); return 0; } } } sqlite3_finalize (stmt_in); sqlite3_finalize (stmt_out); sqlite3_finalize (stmt_del); return 1; } static int check_master_table (sqlite3 * sqlite, const char *master_table, const char *table, const char *column) { /* checks if the Master Table could be accessed */ int table_name = 0; int column_name = 0; char *sql; int ret; char *xmaster; const char *name; int i; char **results; int rows; int columns; /* checking the Master table */ xmaster = gaiaDoubleQuotedSql (master_table); sql = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xmaster); free (xmaster); ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, NULL); sqlite3_free (sql); if (ret != SQLITE_OK) return 0; if (rows < 1) ; else { for (i = 1; i <= rows; i++) { name = results[(i * columns) + 1]; if (strcasecmp (name, table) == 0) table_name = 1; if (strcasecmp (name, column) == 0) column_name = 1; } } sqlite3_free_table (results); if (table_name && column_name) return 1; return 0; } SPATIALITE_DECLARE int gaiaUpdateMetaCatalogStatisticsFromMaster (sqlite3 * sqlite, const char *master_table, const char *table_name, const char *column_name) { /* Updates the "splite_metacalog_statistics" table (using a Master Table) */ int ret; char *sql_statement; sqlite3_stmt *stmt; char *xmaster; char *xtable; char *xcolumn; if (!check_master_table (sqlite, master_table, table_name, column_name)) { spatialite_e ("UpdateMetaCatalogStatisticsFromMaster: mismatching or not existing Master Table\n"); return 0; } /* scanning the Master Table */ xmaster = gaiaDoubleQuotedSql (master_table); xtable = gaiaDoubleQuotedSql (table_name); xcolumn = gaiaDoubleQuotedSql (column_name); sql_statement = sqlite3_mprintf ("SELECT \"%s\", \"%s\" FROM \"%s\"", xtable, xcolumn, xmaster); free (xmaster); free (xtable); free (xcolumn); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("UpdateMetaCatalogStatisticsFromMaster(1) error: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *table = (const char *) sqlite3_column_text (stmt, 0); const char *column = (const char *) sqlite3_column_text (stmt, 1); if (!gaiaUpdateMetaCatalogStatistics (sqlite, table, column)) { sqlite3_finalize (stmt); return 0; } } } sqlite3_finalize (stmt); return 1; } static int check_unique_index (sqlite3 * sqlite, const char *index, const char *column) { /* checks if a column has any Unique constraint - pass two */ char *xindex; char *sql_statement; int ret; sqlite3_stmt *stmt_in; int is_unique = 0; int index_parts = 0; xindex = gaiaDoubleQuotedSql (index); sql_statement = sqlite3_mprintf ("PRAGMA index_info(\"%s\")", xindex); free (xindex); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt_in, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("populate MetaCatalog(8) error: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt_in); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *colname = (const char *) sqlite3_column_text (stmt_in, 2); if (strcasecmp (colname, column) == 0) is_unique = 1; index_parts++; } } sqlite3_finalize (stmt_in); if (index_parts > 1) { /* ignoring any multi-column index */ is_unique = 0; } return is_unique; } static int check_unique (sqlite3 * sqlite, const char *table, const char *column) { /* checks if a column has any Unique constraint */ char *xtable; char *sql_statement; int ret; sqlite3_stmt *stmt_in; int is_unique = 0; xtable = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("PRAGMA index_list(\"%s\")", xtable); free (xtable); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt_in, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("populate MetaCatalog(7) error: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt_in); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *idxname = (const char *) sqlite3_column_text (stmt_in, 1); if (sqlite3_column_int (stmt_in, 2) == 1) { /* Unique Index */ if (check_unique_index (sqlite, idxname, column)) is_unique = 1; } } } sqlite3_finalize (stmt_in); return is_unique; } static int check_foreign_key (sqlite3 * sqlite, const char *table, const char *column) { /* checks if a column is part of any Foreign Key */ char *xtable; char *sql_statement; int ret; sqlite3_stmt *stmt_in; int is_foreign_key = 0; xtable = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("PRAGMA foreign_key_list(\"%s\")", xtable); free (xtable); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt_in, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("populate MetaCatalog(6) error: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt_in); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *colname = (const char *) sqlite3_column_text (stmt_in, 3); if (strcasecmp (colname, column) == 0) is_foreign_key = 1; } } sqlite3_finalize (stmt_in); return is_foreign_key; } static int table_info (sqlite3 * sqlite, sqlite3_stmt * stmt_out, const char *table) { /* auxiliary - populating "splite_metacatalog" */ char *xtable; char *sql_statement; int ret; sqlite3_stmt *stmt_in; xtable = gaiaDoubleQuotedSql (table); sql_statement = sqlite3_mprintf ("PRAGMA table_info(\"%s\")", xtable); free (xtable); ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt_in, NULL); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("populate MetaCatalog(3) error: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt_in); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { int is_foreign_key; int is_unique; sqlite3_reset (stmt_out); sqlite3_clear_bindings (stmt_out); sqlite3_bind_text (stmt_out, 1, table, strlen (table), SQLITE_STATIC); sqlite3_bind_text (stmt_out, 2, (const char *) sqlite3_column_text (stmt_in, 1), sqlite3_column_bytes (stmt_in, 1), SQLITE_STATIC); sqlite3_bind_text (stmt_out, 3, (const char *) sqlite3_column_text (stmt_in, 2), sqlite3_column_bytes (stmt_in, 2), SQLITE_STATIC); sqlite3_bind_int (stmt_out, 4, sqlite3_column_int (stmt_in, 3)); sqlite3_bind_int (stmt_out, 5, sqlite3_column_int (stmt_in, 5)); is_foreign_key = check_foreign_key (sqlite, table, (const char *) sqlite3_column_text (stmt_in, 1)); sqlite3_bind_int (stmt_out, 6, is_foreign_key); is_unique = check_unique (sqlite, table, (const char *) sqlite3_column_text (stmt_in, 1)); sqlite3_bind_int (stmt_out, 7, is_unique); ret = sqlite3_step (stmt_out); if (ret == SQLITE_DONE || ret == SQLITE_ROW) ; else { spatialite_e ("populate MetaCatalog(4) error: \"%s\"\n", sqlite3_errmsg (sqlite)); sqlite3_finalize (stmt_in); return 0; } } } sqlite3_finalize (stmt_in); return 1; } SPATIALITE_DECLARE int gaiaCreateMetaCatalogTables (sqlite3 * sqlite) { /* Creates both "splite_metacatalog" and "splite_metacalog_statistics" tables */ char *sql_statement; char *err_msg = NULL; int ret; sqlite3_stmt *stmt_in; sqlite3_stmt *stmt_out; /* creating "splite_metacatalog" */ sql_statement = "CREATE TABLE splite_metacatalog (\n" "table_name TEXT NOT NULL,\n" "column_name TEXT NOT NULL,\n" "type TEXT NOT NULL,\n" "not_null INTEGER NOT NULL,\n" "primary_key INTEGER NOT NULL,\n" "foreign_key INTEGER NOT NULL,\n" "unique_value INTEGER NOT NULL,\n" "CONSTRAINT pk_splite_metacatalog PRIMARY KEY (table_name, column_name))"; ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE splite_metacatalog - error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating "splite_metacatalog_statistics" */ sql_statement = "CREATE TABLE splite_metacatalog_statistics (\n" "table_name TEXT NOT NULL,\n" "column_name TEXT NOT NULL,\n" "value TEXT,\n" "count INTEGER NOT NULL,\n" "CONSTRAINT pk_splite_metacatalog_statistics PRIMARY KEY (table_name, column_name, value),\n" "CONSTRAINT fk_splite_metacatalog_statistics FOREIGN KEY (table_name, column_name) " "REFERENCES splite_metacatalog (table_name, column_name))"; ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE splite_metacatalog_statistics - error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* populating the MetaCatalog table */ sql_statement = "SELECT name FROM sqlite_master WHERE type = 'table' " "AND sql NOT LIKE 'CREATE VIRTUAL TABLE%'"; ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt_in, NULL); if (ret != SQLITE_OK) { spatialite_e ("populate MetaCatalog(1) error: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } sql_statement = "INSERT INTO splite_metacatalog " "(table_name, column_name, type, not_null, primary_key, foreign_key, unique_value) " "VALUES (?, ?, ?, ?, ?, ?, ?)"; ret = sqlite3_prepare_v2 (sqlite, sql_statement, strlen (sql_statement), &stmt_out, NULL); if (ret != SQLITE_OK) { sqlite3_finalize (stmt_in); spatialite_e ("populate MetaCatalog(2) error: \"%s\"\n", sqlite3_errmsg (sqlite)); return 0; } while (1) { /* scrolling the result set rows */ ret = sqlite3_step (stmt_in); if (ret == SQLITE_DONE) break; /* end of result set */ if (ret == SQLITE_ROW) { const char *table = (const char *) sqlite3_column_text (stmt_in, 0); if (!table_info (sqlite, stmt_out, table)) { sqlite3_finalize (stmt_in); sqlite3_finalize (stmt_out); return 0; } } } sqlite3_finalize (stmt_in); sqlite3_finalize (stmt_out); return 1; } static int check_raster_coverages (sqlite3 * sqlite) { /* checking if the "raster_coverages" table already exists */ int exists = 0; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sql_statement = "SELECT name FROM sqlite_master WHERE type = 'table' " "AND Upper(name) = Upper('raster_coverages')"; ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) exists = 1; sqlite3_free_table (results); return exists; } static int check_raster_coverages_srid (sqlite3 * sqlite) { /* checking if the "raster_coverages_srid" table already exists */ int exists = 0; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sql_statement = "SELECT name FROM sqlite_master WHERE type = 'table' " "AND Upper(name) = Upper('raster_coverages_srid')"; ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) exists = 1; sqlite3_free_table (results); return exists; } static int check_raster_coverages_ref_sys (sqlite3 * sqlite) { /* checking if the "raster_coverages_ref_sys" view already exists */ int exists = 0; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sql_statement = "SELECT name FROM sqlite_master WHERE type = 'view' " "AND Upper(name) = Upper('raster_coverages_ref_sys')"; ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) exists = 1; sqlite3_free_table (results); return exists; } static int check_raster_coverages_keyword (sqlite3 * sqlite) { /* checking if the "raster_coverages_keyword" table already exists */ int exists = 0; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sql_statement = "SELECT name FROM sqlite_master WHERE type = 'table' " "AND Upper(name) = Upper('raster_coverages_keyword')"; ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) exists = 1; sqlite3_free_table (results); return exists; } static int create_raster_coverages (sqlite3 * sqlite) { /* creating the "raster_coverages" table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE raster_coverages (\n" "coverage_name TEXT NOT NULL PRIMARY KEY,\n" "title TEXT NOT NULL DEFAULT '*** missing Title ***',\n" "abstract TEXT NOT NULL DEFAULT '*** missing Abstract ***',\n" "sample_type TEXT NOT NULL DEFAULT '*** undefined ***',\n" "pixel_type TEXT NOT NULL DEFAULT '*** undefined ***',\n" "num_bands INTEGER NOT NULL DEFAULT 1,\n" "compression TEXT NOT NULL DEFAULT 'NONE',\n" "quality INTEGER NOT NULL DEFAULT 100,\n" "tile_width INTEGER NOT NULL DEFAULT 512,\n" "tile_height INTEGER NOT NULL DEFAULT 512,\n" "horz_resolution DOUBLE NOT NULL,\n" "vert_resolution DOUBLE NOT NULL,\n" "srid INTEGER NOT NULL,\n" "nodata_pixel BLOB NOT NULL,\n" "palette BLOB,\n" "statistics BLOB,\n" "geo_minx DOUBLE,\n" "geo_miny DOUBLE,\n" "geo_maxx DOUBLE,\n" "geo_maxy DOUBLE,\n" "extent_minx DOUBLE,\n" "extent_miny DOUBLE,\n" "extent_maxx DOUBLE,\n" "extent_maxy DOUBLE,\n" "strict_resolution INTEGER NOT NULL,\n" "mixed_resolutions INTEGER NOT NULL,\n" "section_paths INTEGER NOT NULL,\n" "section_md5 INTEGER NOT NULL,\n" "section_summary INTEGER NOT NULL,\n" "is_queryable INTEGER,\n" "red_band_index INTEGER,\n" "green_band_index INTEGER,\n" "blue_band_index INTEGER,\n" "nir_band_index INTEGER,\n" "enable_auto_ndvi INTEGER,\n" "CONSTRAINT fk_rc_srs FOREIGN KEY (srid) " "REFERENCES spatial_ref_sys (srid))"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'raster_coverages' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the raster_coverages triggers */ sql = "CREATE TRIGGER raster_coverages_name_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_name_update\n" "BEFORE UPDATE OF 'coverage_name' ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on raster_coverages violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on raster_coverages violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on raster_coverages violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_sample_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "sample_type must be one of ''1-BIT'' | ''2-BIT'' | ''4-BIT'' | " "''INT8'' | ''UINT8'' | ''INT16'' | ''UINT16'' | ''INT32'' | " "''UINT32'' | ''FLOAT'' | ''DOUBLE''')\n" "WHERE NEW.sample_type NOT IN ('1-BIT', '2-BIT', '4-BIT', " "'INT8', 'UINT8', 'INT16', 'UINT16', 'INT32', " "'UINT32', 'FLOAT', 'DOUBLE');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_sample_update\n" "BEFORE UPDATE OF 'sample_type' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "sample_type must be one of ''1-BIT'' | ''2-BIT'' | ''4-BIT'' | " "''INT8'' | ''UINT8'' | ''INT16'' | ''UINT16'' | ''INT32'' | " "''UINT32'' | ''FLOAT'' | ''DOUBLE''')\n" "WHERE NEW.sample_type NOT IN ('1-BIT', '2-BIT', '4-BIT', " "'INT8', 'UINT8', 'INT16', 'UINT16', 'INT32', " "'UINT32', 'FLOAT', 'DOUBLE');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_pixel_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "pixel_type must be one of ''MONOCHROME'' | ''PALETTE'' | " "''GRAYSCALE'' | ''RGB'' | ''MULTIBAND'' | ''DATAGRID''')\n" "WHERE NEW.pixel_type NOT IN ('MONOCHROME', 'PALETTE', " "'GRAYSCALE', 'RGB', 'MULTIBAND', 'DATAGRID');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_pixel_update\n" "BEFORE UPDATE OF 'pixel_type' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "pixel_type must be one of ''MONOCHROME'' | ''PALETTE'' | " "''GRAYSCALE'' | ''RGB'' | ''MULTIBAND'' | ''DATAGRID''')\n" "WHERE NEW.pixel_type NOT IN ('MONOCHROME', 'PALETTE', " "'GRAYSCALE', 'RGB', 'MULTIBAND', 'DATAGRID');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_bands_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "num_bands must be >= 1')\nWHERE NEW.num_bands < 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_bands_update\n" "BEFORE UPDATE OF 'num_bands' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "num_bands must be >= 1')\nWHERE NEW.num_bands < 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_compression_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "compression must be one of ''NONE'' | ''DEFLATE'' | ''DEFLATE_NO'' | " "''LZMA'' | ''LZMA_NO'' | ''PNG'' | ''JPEG'' | ''LOSSY_WEBP'' | " "''LOSSLESS_WEBP'' | ''CCITTFAX4'' | ''CHARLS'' | ''LOSSY_JP2'' | " "''LOSSLESS_JP2''')\n" "WHERE NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', " "'LZMA', 'LZMA_NO', 'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', " "'CCITTFAX4', 'CHARLS', 'LOSSY_JP2', 'LOSSLESS_JP2');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_compression_update\n" "BEFORE UPDATE OF 'compression' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "compression must be one of ''NONE'' | ''DEFLATE'' | ''DEFLATE_NO'' | " "''LZMA'' | ''LZMA_NO'' | ''PNG'' | ''JPEG'' | ''LOSSY_WEBP'' | " "''LOSSLESS_WEBP'' | ''CCITTFAX4'' | ''CHARLS'' | ''LOSSY_JP2'' | " "''LOSSLESS_JP2''')\n" "WHERE NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', " "'LZMA', 'LZMA_NO', 'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', " "'CCITTFAX4', 'CHARLS', 'LOSSY_JP2', 'LOSSLESS_JP2');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_quality_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "quality must be between 0 and 100')\n" "WHERE NEW.quality NOT BETWEEN 0 AND 100;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_quality_update\n" "BEFORE UPDATE OF 'quality' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "quality must be between 0 and 100')\n" "WHERE NEW.quality NOT BETWEEN 0 AND 100;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_tilew_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "tile_width must be an exact multiple of 8 between 256 and 1024')\n" "WHERE CastToInteger(NEW.tile_width) IS NULL OR " "NEW.tile_width NOT BETWEEN 256 AND 1024 OR (NEW.tile_width % 8) <> 0;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_tilew_update\n" "BEFORE UPDATE OF 'tile_width' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "tile_width must be an exact multiple of 8 between 256 and 1024')\n" "WHERE CastToInteger(NEW.tile_width) IS NULL OR " "NEW.tile_width NOT BETWEEN 256 AND 1024 OR (NEW.tile_width % 8) <> 0;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_tileh_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "tile_height must be an exact multiple of 8 between 256 and 1024')\n" "WHERE CastToInteger(NEW.tile_height) IS NULL OR " "NEW.tile_height NOT BETWEEN 256 AND 1024 OR (NEW.tile_height % 8) <> 0;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_tileh_update\n" "BEFORE UPDATE OF 'tile_height' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "tile_height must be an exact multiple of 8 between 256 and 1024')\n" "WHERE CastToInteger(NEW.tile_height) IS NULL OR " "NEW.tile_height NOT BETWEEN 256 AND 1024 OR (NEW.tile_height % 8) <> 0;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_horzres_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "horz_resolution must be positive')\n" "WHERE NEW.horz_resolution IS NOT NULL AND " "(NEW.horz_resolution <= 0.0 OR CastToDouble(NEW.horz_resolution) IS NULL);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_horzres_update\n" "BEFORE UPDATE OF 'horz_resolution' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "horz_resolution must be positive')\n" "WHERE NEW.horz_resolution IS NOT NULL AND " "(NEW.horz_resolution <= 0.0 OR CastToDouble(NEW.horz_resolution) IS NULL);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_vertres_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "vert_resolution must be positive')\n" "WHERE NEW.vert_resolution IS NOT NULL AND " "(NEW.vert_resolution <= 0.0 OR CastToDouble(NEW.vert_resolution) IS NULL);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_vertres_update\n" "BEFORE UPDATE OF 'vert_resolution' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "vert_resolution must be positive')\n" "WHERE NEW.vert_resolution IS NOT NULL AND " "(NEW.vert_resolution <= 0.0 OR CastToDouble(NEW.vert_resolution) IS NULL);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_nodata_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "invalid nodata_pixel')\nWHERE NEW.nodata_pixel IS NOT NULL AND " "IsValidPixel(NEW.nodata_pixel, NEW.sample_type, NEW.num_bands) <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_nodata_update\n" "BEFORE UPDATE OF 'nodata_pixel' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "invalid nodata_pixel')\nWHERE NEW.nodata_pixel IS NOT NULL AND " "IsValidPixel(NEW.nodata_pixel, NEW.sample_type, NEW.num_bands) <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_palette_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "invalid palette')\nWHERE NEW.palette IS NOT NULL AND " "(NEW.pixel_type <> 'PALETTE' OR NEW.num_bands <> 1 OR " "IsValidRasterPalette(NEW.palette, NEW.sample_type) <> 1);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_palette_update\n" "BEFORE UPDATE OF 'palette' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "invalid palette')\nWHERE NEW.palette IS NOT NULL AND " "(NEW.pixel_type <> 'PALETTE' OR NEW.num_bands <> 1 OR " "IsValidRasterPalette(NEW.palette, NEW.sample_type) <> 1);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_statistics_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "invalid statistics')\nWHERE NEW.statistics IS NOT NULL AND " "IsValidRasterStatistics(NEW.statistics, NEW.sample_type, NEW.num_bands) <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_statistics_update\n" "BEFORE UPDATE OF 'statistics' ON 'raster_coverages'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "invalid statistics')\nWHERE NEW.statistics IS NOT NULL AND " "IsValidRasterStatistics(NEW.statistics, NEW.sample_type, NEW.num_bands) <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_monosample_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent MONOCHROME sample_type')\nWHERE NEW.pixel_type = 'MONOCHROME' " "AND NEW.sample_type <> '1-BIT';\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_monosample_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent MONOCHROME sample_type')\nWHERE NEW.pixel_type = 'MONOCHROME' " "AND NEW.sample_type <>'1-BIT';\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_monocompr_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent MONOCHROME compression')\nWHERE NEW.pixel_type = 'MONOCHROME' " "AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', " "'LZMA_NO', 'PNG', 'CCITTFAX4');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_monocompr_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent MONOCHROME compression')\nWHERE NEW.pixel_type = 'MONOCHROME' " "AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', " "'LZMA_NO', 'PNG', 'CCITTFAX4');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_monobands_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent MONOCHROME num_bands')\nWHERE NEW.pixel_type = 'MONOCHROME' " "AND NEW.num_bands <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_monobands_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent MONOCHROME num_bands')\nWHERE NEW.pixel_type = 'MONOCHROME' " "AND NEW.num_bands <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_pltsample_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent PALETTE sample_type')\nWHERE NEW.pixel_type = 'PALETTE' " "AND NEW.sample_type NOT IN ('1-BIT', '2-BIT', '4-BIT', 'UINT8');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_pltsample_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent PALETTE sample_type')\nWHERE NEW.pixel_type = 'PALETTE' " "AND NEW.sample_type NOT IN ('1-BIT', '2-BIT', '4-BIT', 'UINT8');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_pltcompr_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent PALETTE compression')\nWHERE NEW.pixel_type = 'PALETTE' " "AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', " "'LZMA_NO', 'PNG');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_pltcompr_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent PALETTE compression')\nWHERE NEW.pixel_type = 'PALETTE' " "AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', " "'LZMA_NO', 'PNG');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_pltbands_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent PALETTE num_bands')\nWHERE NEW.pixel_type = 'PALETTE' " "AND NEW.num_bands <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_pltbands_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent PALETTE num_bands')\nWHERE NEW.pixel_type = 'PALETTE' " "AND NEW.num_bands <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_graysample_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent GRAYSCALE sample_type')\nWHERE NEW.pixel_type = 'GRAYSCALE' " "AND NEW.sample_type NOT IN ('2-BIT', '4-BIT', 'UINT8');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_graysample_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent GRAYSCALE sample_type')\nWHERE NEW.pixel_type = 'GRAYSCALE' " "AND NEW.sample_type NOT IN ('2-BIT', '4-BIT', 'UINT8');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_graybands_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent GRAYSCALE num_bands')\nWHERE NEW.pixel_type = 'GRAYSCALE' " "AND NEW.num_bands <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_graybands_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent GRAYSCALE num_bands')\nWHERE NEW.pixel_type = 'GRAYSCALE' " "AND NEW.num_bands <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_graycompr_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent GRAYSCALE compression')\nWHERE NEW.pixel_type = " "'GRAYSCALE' AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', " "'LZMA', 'LZMA_NO', 'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', 'CHARLS', " "'LOSSY_JP2', 'LOSSLESS_JP2');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_graycompr_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent GRAYSCALE compression')\nWHERE NEW.pixel_type = " "'GRAYSCALE' AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', " "'LZMA', 'LZMA_NO', 'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', 'CHARLS', " "'LOSSY_JP2', 'LOSSLESS_JP2');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_rgbsample_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent RGB sample_type')\nWHERE NEW.pixel_type = 'RGB' " "AND NEW.sample_type NOT IN ('UINT8', 'UINT16');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_rgbsample_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent RGB sample_type')\nWHERE NEW.pixel_type = 'RGB' " "AND NEW.sample_type NOT IN ('UINT8', 'UINT16');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_rgbcompr_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent RGB compression')\nWHERE NEW.pixel_type = 'RGB' " "AND ((NEW.sample_type = 'UINT8' AND NEW.compression NOT IN (" "'NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', 'LZMA_NO', 'PNG', 'JPEG', " "'LOSSY_WEBP', 'LOSSLESS_WEBP', 'CHARLS', 'LOSSY_JP2', 'LOSSLESS_JP2') " "OR (NEW.sample_type = 'UINT16' AND NEW.compression NOT IN " "('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', 'LZMA_NO', 'PNG', 'CHARLS', " "'LOSSY_JP2', 'LOSSLESS_JP2'))));\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_rgbcompr_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent RGB compression')\nWHERE NEW.pixel_type = 'RGB' " "AND ((NEW.sample_type = 'UINT8' AND NEW.compression NOT IN (" "'NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', 'LZMA_NO', 'PNG', 'JPEG', " "'LOSSY_WEBP', 'LOSSLESS_WEBP', 'CHARLS', 'LOSSY_JP2', 'LOSSLESS_JP2') " "OR (NEW.sample_type = 'UINT16' AND NEW.compression NOT IN " "('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', 'LZMA_NO', 'PNG', 'CHARLS', " "'LOSSY_JP2', 'LOSSLESS_JP2'))));\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_rgbbands_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent RGB num_bands')\nWHERE NEW.pixel_type = 'RGB' " "AND NEW.num_bands <> 3;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_rgbbands_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent RGB num_bands')\nWHERE NEW.pixel_type = 'RGB' " "AND NEW.num_bands <> 3;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_multisample_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent MULTIBAND sample_type')\nWHERE NEW.pixel_type = 'MULTIBAND' " "AND NEW.sample_type NOT IN ('UINT8', 'UINT16');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_multisample_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent MULTIBAND sample_type')\nWHERE NEW.pixel_type = 'MULTIBAND' " "AND NEW.sample_type NOT IN ('UINT8', 'UINT16');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_multicompr_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent MULTIBAND compression')\nWHERE NEW.pixel_type = " "'MULTIBAND' AND ((NEW.num_bands NOT IN (3, 4) AND " "NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', " "'LZMA_NO')) OR " "(NEW.sample_type <> 'UINT16' AND NEW.num_bands IN (3, 4) AND " "NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', " "'LZMA_NO', 'PNG', 'CHARLS', 'LOSSY_WEBP', 'LOSSLESS_WEBP', " "'LOSSY_JP2', 'LOSSLESS_JP2')) OR (NEW.sample_type = 'UINT16' AND " "NEW.num_bands IN (3, 4) AND NEW.compression NOT IN " "('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', 'LZMA_NO', 'PNG', " "'CHARLS', 'LOSSY_JP2', 'LOSSLESS_JP2')));\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_multicompr_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent MULTIBAND compression')\nWHERE NEW.pixel_type = " "'MULTIBAND' AND ((NEW.num_bands NOT IN (3, 4) AND " "NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', " "'LZMA_NO')) OR " "(NEW.sample_type <> 'UINT16' AND NEW.num_bands IN (3, 4) AND " "NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', " "'LZMA_NO', 'PNG', 'CHARLS', 'LOSSY_WEBP', 'LOSSLESS_WEBP', " "'LOSSY_JP2', 'LOSSLESS_JP2')) OR (NEW.sample_type = 'UINT16' AND " "NEW.num_bands IN (3, 4) AND NEW.compression NOT IN " "('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', 'LZMA_NO', 'PNG', " "'CHARLS', 'LOSSY_JP2', 'LOSSLESS_JP2')));\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_multibands_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent MULTIBAND num_bands')\nWHERE NEW.pixel_type = 'MULTIBAND' " "AND NEW.num_bands < 2;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_multibands_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent MULTIBAND num_bands')\nWHERE NEW.pixel_type = 'MULTIBAND' " "AND NEW.num_bands < 2;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_gridsample_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent DATAGRID sample_type')\nWHERE NEW.pixel_type = 'DATAGRID' " "AND NEW.sample_type NOT IN ('INT8', 'UINT8', 'INT16', 'UINT16', " "'INT32', 'UINT32', 'FLOAT', 'DOUBLE');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_gridsample_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent DATAGRID sample_type')\nWHERE NEW.pixel_type = 'DATAGRID' " "AND NEW.sample_type NOT IN ('INT8', 'UINT8', 'INT16', 'UINT16', " "'INT32', 'UINT32', 'FLOAT', 'DOUBLE');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_gridcompr_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent DATAGRID compression')\nWHERE NEW.pixel_type = 'DATAGRID' " "AND (((NEW.sample_type NOT IN ('UINT8', 'UINT16')) AND NEW.compression " "NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', 'LZMA_NO')) OR " "((NEW.sample_type IN ('UINT8', 'UINT16')) AND NEW.compression NOT IN " "('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', 'LZMA_NO', 'PNG', 'CHARLS', " "'LOSSY_JP2', 'LOSSLESS_JP2')));\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_gridcompr_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent DATAGRID compression')\nWHERE NEW.pixel_type = 'DATAGRID' " "AND (((NEW.sample_type NOT IN ('UINT8', 'UINT16')) AND NEW.compression " "NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', 'LZMA_NO')) OR " "((NEW.sample_type IN ('UINT8', 'UINT16')) AND NEW.compression NOT IN " "('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', 'LZMA_NO', 'PNG', 'CHARLS', " "'LOSSY_JP2', 'LOSSLESS_JP2')));\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_gridbands_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent DATAGRID num_bands')\nWHERE NEW.pixel_type = 'DATAGRID' " "AND NEW.num_bands <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_gridbands_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "inconsistent DATAGRID num_bands')\nWHERE NEW.pixel_type = 'DATAGRID' " "AND NEW.num_bands <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_georef_insert\n" "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: " "inconsistent georeferencing infos')\n" "WHERE NOT ((NEW.horz_resolution IS NULL AND NEW.vert_resolution IS NULL " "AND NEW.srid IS NULL) OR (NEW.horz_resolution IS NOT NULL " "AND NEW.vert_resolution IS NOT NULL AND NEW.srid IS NOT NULL));\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_georef_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on raster_coverages violates constraint: " "inconsistent georeferencing infos')\n" "WHERE NOT ((NEW.horz_resolution IS NULL AND NEW.vert_resolution IS NULL " "AND NEW.srid IS NULL) OR (NEW.horz_resolution IS NOT NULL " "AND NEW.vert_resolution IS NOT NULL AND NEW.srid IS NOT NULL));\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_update\n" "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: " "attempting to change the definition of an already populated Coverage')\n" "WHERE IsPopulatedCoverage(OLD.coverage_name) = 1 AND " "((OLD.sample_type <> NEW.sample_type) AND (OLD.pixel_type <> NEW.sample_type) " "OR (OLD.num_bands <> NEW.num_bands) OR (OLD.compression <> NEW.compression) " "OR (OLD.quality <> NEW.quality) OR (OLD.tile_width <> NEW.tile_width) " "OR (OLD.tile_height <> NEW.tile_height) OR (OLD.horz_resolution <> NEW.horz_resolution) " "OR (OLD.vert_resolution <> NEW.vert_resolution) OR " "(OLD.srid <> NEW.srid) OR (OLD.nodata_pixel <> NEW.nodata_pixel));\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_delete\n" "BEFORE DELETE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'delete on raster_coverages violates constraint: " "attempting to delete the definition of an already populated Coverage')\n" "WHERE IsPopulatedCoverage(OLD.coverage_name) = 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the raster_coverages_srid table */ sql = "CREATE TABLE raster_coverages_srid (\n" "coverage_name TEXT NOT NULL,\n" "srid INTEGER NOT NULL,\n" "extent_minx DOUBLE,\n" "extent_miny DOUBLE,\n" "extent_maxx DOUBLE,\n" "extent_maxy DOUBLE,\n" "CONSTRAINT pk_raster_coverages_srid PRIMARY KEY (coverage_name, srid),\n" "CONSTRAINT fk_raster_coverages_srid FOREIGN KEY (coverage_name) " "REFERENCES raster_coverages (coverage_name) ON DELETE CASCADE,\n" "CONSTRAINT fk_raster_srid FOREIGN KEY (srid) " "REFERENCES spatial_ref_sys (srid))"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'raster_coverages_srid' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the raster_coverages_srid triggers */ sql = "CREATE TRIGGER raster_coverages_srid_name_insert\n" "BEFORE INSERT ON 'raster_coverages_srid'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages_srid violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on raster_coverages_srid violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on raster_coverages_srid violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_srid_name_update\n" "BEFORE UPDATE OF 'coverage_name' ON 'raster_coverages_srid'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on raster_coverages_srid violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on raster_coverages_srid violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on raster_coverages_srid violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the raster_coverages_ref_sys view */ sql = "CREATE VIEW raster_coverages_ref_sys AS\n" "SELECT c.coverage_name AS coverage_name, c.title AS title, " "c.abstract AS abstract, c.sample_type AS sample_type, " "c.pixel_type AS pixel_type, c.num_bands AS num_bands, " "c.compression AS compression, c.quality AS quality, " "c.tile_width AS tile_width, c.tile_height AS tile_height, " "c.horz_resolution AS horz_resolution, c.vert_resolution AS vert_resolution, " "c.nodata_pixel AS nodata_pixel, c.palette AS palette, " "c.statistics AS statistics, c.geo_minx AS geo_minx, " "c.geo_miny AS geo_miny, c.geo_maxx AS geo_maxx, " "c.geo_maxy AS geo_maxy, c.extent_minx AS extent_minx, " "c.extent_miny AS extent_miny, c.extent_maxx AS extent_maxx, " "c.extent_maxy AS extent_maxy, c.srid AS srid, 1 AS native_srid, " "s.auth_name AS auth_name, s.auth_srid AS auth_srid, " "s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text, " "c.strict_resolution AS strict_resolution, " "c.mixed_resolutions AS mixed_resolutions, " "c.section_paths AS section_paths, c.section_md5 AS section_md5, " "c.section_summary AS section_summary, c.is_queryable AS is_queryable, " "c.red_band_index, c.green_band_index, c.blue_band_index, " "c.nir_band_index, c.enable_auto_ndvi\n" "FROM raster_coverages AS c\n" "LEFT JOIN spatial_ref_sys AS s ON (c.srid = s.srid)\n" "UNION\nSELECT c.coverage_name AS coverage_name, c.title AS title, " "c.abstract AS abstract, c.sample_type AS sample_type, " "c.pixel_type AS pixel_type, c.num_bands AS num_bands, " "c.compression AS compression, c.quality AS quality, " "c.tile_width AS tile_width, c.tile_height AS tile_height, " "c.horz_resolution AS horz_resolution, c.vert_resolution AS vert_resolution, " "c.nodata_pixel AS nodata_pixel, c.palette AS palette, " "c.statistics AS statistics, c.geo_minx AS geo_minx, " "c.geo_miny AS geo_miny, c.geo_maxx AS geo_maxx, " "c.geo_maxy AS geo_maxy, x.extent_minx AS extent_minx, " "x.extent_miny AS extent_miny, x.extent_maxx AS extent_maxx, " "x.extent_maxy AS extent_maxy, s.srid AS srid, 0 AS native_srid, " "s.auth_name AS auth_name, s.auth_srid AS auth_srid, " "s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text, " "c.strict_resolution AS strict_resolution, " "c.mixed_resolutions AS mixed_resolutions, " "c.section_paths AS section_paths, c.section_md5 AS section_md5, " "c.section_summary AS section_summary, c.is_queryable AS is_queryable, " "c.red_band_index, c.green_band_index, c.blue_band_index, " "c.nir_band_index, c.enable_auto_ndvi\n" "FROM raster_coverages AS c\n" "JOIN raster_coverages_srid AS x ON (c.coverage_name = x.coverage_name)\n" "LEFT JOIN spatial_ref_sys AS s ON (x.srid = s.srid)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW 'raster_coverages_ref_sys' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the raster_coverages_keyword table */ sql = "CREATE TABLE raster_coverages_keyword (\n" "coverage_name TEXT NOT NULL,\n" "keyword TEXT NOT NULL,\n" "CONSTRAINT pk_raster_coverages_keyword PRIMARY KEY (coverage_name, keyword),\n" "CONSTRAINT fk_raster_coverages_keyword FOREIGN KEY (coverage_name) " "REFERENCES raster_coverages (coverage_name) ON DELETE CASCADE)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'raster_coverages_keyword' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the raster_coverages_keyword triggers */ sql = "CREATE TRIGGER raster_coverages_keyword_name_insert\n" "BEFORE INSERT ON 'raster_coverages_keyword'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on raster_coverages_keyword violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on raster_coverages_keyword violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on raster_coverages_keyword violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER raster_coverages_keyword_name_update\n" "BEFORE UPDATE OF 'coverage_name' ON 'raster_coverages_keyword'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on raster_coverages_keyword violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on raster_coverages_keyword violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on raster_coverages_keyword violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } SPATIALITE_PRIVATE int createRasterCoveragesTable (void *p_sqlite) { /* Creating the main RasterCoverages table */ int ok_table; sqlite3 *sqlite = p_sqlite; /* checking if already defined */ ok_table = check_raster_coverages (sqlite); if (ok_table) { spatialite_e ("CreateRasterCoveragesTable() error: table 'raster_coverages' already exists\n"); goto error; } ok_table = check_raster_coverages_srid (sqlite); if (ok_table) { spatialite_e ("CreateRasterCoveragesTable() error: table 'raster_coverages_srid' already exists\n"); goto error; } ok_table = check_raster_coverages_ref_sys (sqlite); if (ok_table) { spatialite_e ("CreateRasterCoveragesTable() error: view 'raster_coverages_ref_sys' already exists\n"); goto error; } ok_table = check_raster_coverages_keyword (sqlite); if (ok_table) { spatialite_e ("CreateRasterCoveragesTable() error: table 'raster_coverages_keyword' already exists\n"); goto error; } /* creating the main RasterCoverages table */ if (!create_raster_coverages (sqlite)) goto error; return 1; error: return 0; } static int check_if_coverage_exists (sqlite3 * sqlite, const char *coverage) { /* checking if a Coverage table already exists */ int exists = 0; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sql_statement = sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = 'table' " "AND Upper(name) = Upper(%Q)", coverage); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) exists = 1; sqlite3_free_table (results); return exists; } SPATIALITE_PRIVATE int checkPopulatedCoverage (void *p_sqlite, const char *coverage_name) { /* checking if a Coverage table is already populated */ int is_populated = 0; char *xname; char *xxname; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sqlite3 *sqlite = p_sqlite; xname = sqlite3_mprintf ("%s_tile_data", coverage_name); if (!check_if_coverage_exists (sqlite, xname)) { sqlite3_free (xname); return 0; } xxname = gaiaDoubleQuotedSql (xname); sqlite3_free (xname); sql_statement = sqlite3_mprintf ("SELECT ROWID FROM \"%s\" LIMIT 10", xxname); free (xxname); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) is_populated = 1; sqlite3_free_table (results); return is_populated; } static int check_vector_coverages (sqlite3 * sqlite) { /* checking if the "vector_coverages" table already exists */ int exists = 0; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sql_statement = "SELECT name FROM sqlite_master WHERE type = 'table' " "AND Upper(name) = Upper('vector_coverages')"; ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) exists = 1; sqlite3_free_table (results); return exists; } static int check_vector_coverages_srid (sqlite3 * sqlite) { /* checking if the "vector_coverages_srid" table already exists */ int exists = 0; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sql_statement = "SELECT name FROM sqlite_master WHERE type = 'table' " "AND Upper(name) = Upper('vector_coverages_srid')"; ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) exists = 1; sqlite3_free_table (results); return exists; } static int check_vector_coverages_ref_sys (sqlite3 * sqlite) { /* checking if the "vector_coverages_ref_sys" view already exists */ int exists = 0; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sql_statement = "SELECT name FROM sqlite_master WHERE type = 'view' " "AND Upper(name) = Upper('vector_coverages_ref_sys')"; ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) exists = 1; sqlite3_free_table (results); return exists; } static int check_vector_coverages_keyword (sqlite3 * sqlite) { /* checking if the "vector_coverages_keyword" table already exists */ int exists = 0; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sql_statement = "SELECT name FROM sqlite_master WHERE type = 'table' " "AND Upper(name) = Upper('vector_coverages_keyword')"; ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) exists = 1; sqlite3_free_table (results); return exists; } static int create_vector_coverages (sqlite3 * sqlite) { /* creating the "vector_coverages" table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE vector_coverages (\n" "coverage_name TEXT NOT NULL PRIMARY KEY,\n" "f_table_name TEXT NOT NULL,\n" "f_geometry_column TEXT NOT NULL,\n" "geo_minx DOUBLE,\n" "geo_miny DOUBLE,\n" "geo_maxx DOUBLE,\n" "geo_maxy DOUBLE,\n" "extent_minx DOUBLE,\n" "extent_miny DOUBLE,\n" "extent_maxx DOUBLE,\n" "extent_maxy DOUBLE,\n" "title TEXT NOT NULL DEFAULT '*** missing Title ***',\n" "abstract TEXT NOT NULL DEFAULT '*** missing Abstract ***',\n" "is_queryable INTEGER,\n" "CONSTRAINT fk_vector_coverages FOREIGN KEY (f_table_name, f_geometry_column) " "REFERENCES geometry_columns (f_table_name, f_geometry_column) " "ON DELETE CASCADE)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'vector_coverages' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the VectorLayers index */ sql = "CREATE UNIQUE INDEX idx_vector_coverages ON vector_coverages " "(f_table_name, f_geometry_column)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX 'idx_vector_coverages' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the vector_coverages triggers */ sql = "CREATE TRIGGER vector_coverages_name_insert\n" "BEFORE INSERT ON 'vector_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on vector_coverages violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on vector_coverages violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on layer_vectors violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER vector_coverages_name_update\n" "BEFORE UPDATE OF 'coverage_name' ON 'vector_coverages'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on vector_coverages violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on vector_coverages violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on vector_coverages violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the vector_coverages_srid table */ sql = "CREATE TABLE vector_coverages_srid (\n" "coverage_name TEXT NOT NULL,\n" "srid INTEGER NOT NULL,\n" "extent_minx DOUBLE,\n" "extent_miny DOUBLE,\n" "extent_maxx DOUBLE,\n" "extent_maxy DOUBLE,\n" "CONSTRAINT pk_vector_coverages_srid PRIMARY KEY (coverage_name, srid),\n" "CONSTRAINT fk_vector_coverages_srid FOREIGN KEY (coverage_name) " "REFERENCES vector_coverages (coverage_name) ON DELETE CASCADE,\n" "CONSTRAINT fk_vector_srid FOREIGN KEY (srid) " "REFERENCES spatial_ref_sys (srid))"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'vector_coverages_srid' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the vector_coverages_srid triggers */ sql = "CREATE TRIGGER vector_coverages_srid_name_insert\n" "BEFORE INSERT ON 'vector_coverages_srid'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on vector_coverages_srid violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on vector_coverages_srid violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on vector_coverages_srid violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER vector_coverages_srid_name_update\n" "BEFORE UPDATE OF 'coverage_name' ON 'vector_coverages_srid'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on vector_coverages_srid violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on vector_coverages_srid violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on vector_coverages_srid violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the vector_coverages_ref_sys view */ sql = "CREATE VIEW vector_coverages_ref_sys AS\n" "SELECT v.coverage_name AS coverage_name, v.title AS title, " "v.abstract AS abstract, v.is_queryable AS is_queryable, " "v.geo_minx AS geo_minx, " "v.geo_miny AS geo_miny, v.geo_maxx AS geo_maxx, " "v.geo_maxy AS geo_may, v.extent_minx AS extent_minx, " "v.extent_miny AS extent_miny, v.extent_maxx AS extent_maxx, " "v.extent_maxy AS extent_maxy, s.srid AS srid, 1 AS native_srid, " "s.auth_name AS auth_name, s.auth_srid AS auth_srid, " "s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text\n" "FROM vector_coverages AS v\n" "JOIN geometry_columns AS x ON (v.f_table_name = x.f_table_name " "AND v.f_geometry_column = x.f_geometry_column)\n" "LEFT JOIN spatial_ref_sys AS s ON (x.srid = s.srid)\n" "UNION\nSELECT v.coverage_name AS coverage_name, v.title AS title, " "v.abstract AS abstract, v.is_queryable AS is_queryable, " "v.geo_minx AS geo_minx, " "v.geo_miny AS geo_miny, v.geo_maxx AS geo_maxx, " "v.geo_maxy AS geo_may, x.extent_minx AS extent_minx, " "x.extent_miny AS extent_miny, x.extent_maxx AS extent_maxx, " "x.extent_maxy AS extent_maxy, s.srid AS srid, 0 AS native_srid, " "s.auth_name AS auth_name, s.auth_srid AS auth_srid, " "s.ref_sys_name AS ref_sys_name, s.proj4text AS proj4text\n" "FROM vector_coverages AS v\n" "JOIN vector_coverages_srid AS x ON (v.coverage_name = x.coverage_name)\n" "LEFT JOIN spatial_ref_sys AS s ON (x.srid = s.srid)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW 'vector_coverages_ref_sys' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the vector_coverages_keyword table */ sql = "CREATE TABLE vector_coverages_keyword (\n" "coverage_name TEXT NOT NULL,\n" "keyword TEXT NOT NULL,\n" "CONSTRAINT pk_vector_coverages_keyword PRIMARY KEY (coverage_name, keyword),\n" "CONSTRAINT fk_vector_coverages_keyword FOREIGN KEY (coverage_name) " "REFERENCES vector_coverages (coverage_name) ON DELETE CASCADE)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'vector_coverages_keyword' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the vector_coverages_keyword triggers */ sql = "CREATE TRIGGER vector_coverages_keyword_name_insert\n" "BEFORE INSERT ON 'vector_coverages_keyword'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on vector_coverages_keyword violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on vector_coverages_keyword violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on vector_coverages_keyword violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER vector_coverages_keyword_name_update\n" "BEFORE UPDATE OF 'coverage_name' ON 'vector_coverages_keyword'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on vector_coverages_keyword violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on vector_coverages_keyword violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on vector_coverages_keyword violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } SPATIALITE_PRIVATE int createVectorCoveragesTable (void *p_sqlite) { /* Creating the main VectorCoverages table */ int ok_table; sqlite3 *sqlite = p_sqlite; /* checking if already defined */ ok_table = check_vector_coverages (sqlite); if (ok_table) { spatialite_e ("CreateVectorCoveragesTable() error: table 'vector_coverages' already exists\n"); goto error; } ok_table = check_vector_coverages_srid (sqlite); if (ok_table) { spatialite_e ("CreateVectorCoveragesTable() error: table 'vector_coverages_srid' already exists\n"); goto error; } ok_table = check_vector_coverages_ref_sys (sqlite); if (ok_table) { spatialite_e ("CreateVectorCoveragesTable() error: view 'vector_coverages_ref_sys' already exists\n"); goto error; } ok_table = check_vector_coverages_keyword (sqlite); if (ok_table) { spatialite_e ("CreateVectorCoveragesTable() error: table 'vector_coverages_keyword' already exists\n"); goto error; } /* creating the main VectorCoverages table */ if (!create_vector_coverages (sqlite)) goto error; return 1; error: return 0; } #ifdef ENABLE_LIBXML2 /* including LIBXML2 */ static int check_styling_table (sqlite3 * sqlite, const char *table, int is_view) { /* checking if some SLD/SE Styling-related table/view already exists */ int exists = 0; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sql_statement = sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = '%s'" "AND Upper(name) = Upper(%Q)", (!is_view) ? "table" : "view", table); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) exists = 1; sqlite3_free_table (results); return exists; } static int create_external_graphics (sqlite3 * sqlite) { /* creating the SE_external_graphics table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE SE_external_graphics (\n" "xlink_href TEXT NOT NULL PRIMARY KEY,\n" "title TEXT NOT NULL DEFAULT '*** undefined ***',\n" "abstract TEXT NOT NULL DEFAULT '*** undefined ***',\n" "resource BLOB NOT NULL,\n" "file_name TEXT NOT NULL DEFAULT '*** undefined ***')"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'SE_external_graphics' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the SE_external_graphics triggers */ sql = "CREATE TRIGGER sextgr_mime_type_insert\n" "BEFORE INSERT ON 'SE_external_graphics'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_external_graphics violates constraint: " "GetMimeType(resource) must be one of ''image/gif'' | ''image/png'' | " "''image/jpeg'' | ''image/svg+xml''')\n" "WHERE GetMimeType(NEW.resource) NOT IN ('image/gif', 'image/png', " "'image/jpeg', 'image/svg+xml');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER sextgr_mime_type_update\n" "BEFORE UPDATE OF 'mime_type' ON 'SE_external_graphics'" "\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT, 'update on SE_external_graphics violates constraint: " "GetMimeType(resource) must be one of ''image/gif'' | ''image/png'' | " "''image/jpeg'' | ''image/svg+xml''')\n" "WHERE GetMimeType(NEW.resource) NOT IN ('image/gif', 'image/png', " "'image/jpeg', 'image/svg+xml');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_fonts (sqlite3 * sqlite) { /* creating the SE_fonts table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE SE_fonts (\n" "font_facename TEXT NOT NULL PRIMARY KEY,\n" "font BLOB NOT NULL)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'SE_fonts' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the SE_fonts triggers */ sql = "CREATE TRIGGER se_font_insert1\n" "BEFORE INSERT ON 'SE_fonts'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_Fonts violates constraint: " "invalid Font')\nWHERE IsValidFont(NEW.font) <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER se_font_insert2\n" "BEFORE INSERT ON 'SE_fonts'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_Fonts violates constraint: " "mismatching FontFacename')\nWHERE " "CheckFontFacename(NEW.font_facename, NEW.font) <> 1;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* rejecting any possible UPDATE */ sql = "CREATE TRIGGER se_font_update\n" "BEFORE UPDATE ON 'SE_fonts'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'UPDATE on SE_Fonts is always forbidden')\n;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_vector_styles (sqlite3 * sqlite, int relaxed) { /* creating the SE_vector_styles table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE SE_vector_styles (\n" "style_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" "style_name TEXT NOT NULL DEFAULT 'missing_name' UNIQUE,\n" "style BLOB NOT NULL)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'SE_vector_styles' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the style Name index */ sql = "CREATE INDEX idx_vector_styles ON SE_vector_styles (style_name)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX 'idx_vector_styles' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the SE_vector_styles triggers */ if (relaxed == 0) { /* strong trigger - imposing XML schema validation */ sql = "CREATE TRIGGER sevector_style_insert\n" "BEFORE INSERT ON 'SE_vector_styles'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_vector_styles violates constraint: " "not a valid SLD/SE Vector Style')\n" "WHERE XB_IsSldSeVectorStyle(NEW.style) <> 1;\n" "SELECT RAISE(ABORT,'insert on SE_vector_styles violates constraint: " "not an XML Schema Validated SLD/SE Vector Style')\n" "WHERE XB_IsSchemaValidated(NEW.style) <> 1;\nEND"; } else { /* relaxed trigger - not imposing XML schema validation */ sql = "CREATE TRIGGER sevector_style_insert\n" "BEFORE INSERT ON 'SE_vector_styles'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_vector_styles violates constraint: " "not a valid SLD/SE Vector Style')\n" "WHERE XB_IsSldSeVectorStyle(NEW.style) <> 1;\nEND"; } ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } if (relaxed == 0) { /* strong trigger - imposing XML schema validation */ sql = "CREATE TRIGGER sevector_style_update\n" "BEFORE UPDATE ON 'SE_vector_styles'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_vector_styles violates constraint: " "not a valid SLD/SE Vector Style')\n" "WHERE XB_IsSldSeVectorStyle(NEW.style) <> 1;\n" "SELECT RAISE(ABORT,'update on SE_vector_styles violates constraint: " "not an XML Schema Validated SLD/SE Vector Style')\n" "WHERE XB_IsSchemaValidated(NEW.style) <> 1;\nEND"; } else { /* relaxed trigger - not imposing XML schema validation */ sql = "CREATE TRIGGER sevector_style_update\n" "BEFORE UPDATE ON 'SE_vector_styles'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_vector_styles violates constraint: " "not a valid SLD/SE Vector Style')\n" "WHERE XB_IsSldSeVectorStyle(NEW.style) <> 1;\nEND"; } ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* automatically setting the style_name after inserting */ sql = "CREATE TRIGGER sevector_style_name_ins\n" "AFTER INSERT ON 'SE_vector_styles'\nFOR EACH ROW BEGIN\n" "UPDATE SE_vector_styles " "SET style_name = XB_GetName(NEW.style) " "WHERE style_id = NEW.style_id;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* automatically setting the style_name after updating */ sql = "CREATE TRIGGER sevector_style_name_upd\n" "AFTER UPDATE OF style ON " "'SE_vector_styles'\nFOR EACH ROW BEGIN\n" "UPDATE SE_vector_styles " "SET style_name = XB_GetName(NEW.style) " "WHERE style_id = NEW.style_id;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_vector_styled_layers (sqlite3 * sqlite) { /* creating the SE_vector_styled_layers table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE SE_vector_styled_layers (\n" "coverage_name TEXT NOT NULL,\n" "style_id INTEGER NOT NULL,\n" "CONSTRAINT pk_sevstl PRIMARY KEY " "(coverage_name, style_id),\n" "CONSTRAINT fk_sevstl_cvg FOREIGN KEY (coverage_name) " "REFERENCES vector_coverages (coverage_name) ON DELETE CASCADE,\n" "CONSTRAINT fk_sevstl_stl FOREIGN KEY (style_id) " "REFERENCES SE_vector_styles (style_id) ON DELETE CASCADE)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'SE_vector_styled_layers' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the style_id index */ sql = "CREATE INDEX idx_sevstl_style ON SE_vector_styled_layers (style_id)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX 'idx_svstl_style' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the SE_vector_styled_layers triggers */ sql = "CREATE TRIGGER sevstl_coverage_name_insert\n" "BEFORE INSERT ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on SE_vector_styled_layers violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER sevstl_coverage_name_update\n" "BEFORE UPDATE OF 'coverage_name' ON 'SE_vector_styled_layers'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on SE_vector_styled_layers violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_raster_styles (sqlite3 * sqlite, int relaxed) { /* creating the SE_raster_styles table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE SE_raster_styles (\n" "style_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" "style_name TEXT NOT NULL DEFAULT 'missing_name' UNIQUE,\n" "style BLOB NOT NULL)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'SE_raster_styles' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the style Name index */ sql = "CREATE INDEX idx_raster_styles ON SE_raster_styles (style_name)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX 'idx_raster_styles' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the SE_raster_styles triggers */ if (relaxed == 0) { /* strong trigger - imposing XML schema validation */ sql = "CREATE TRIGGER seraster_style_insert\n" "BEFORE INSERT ON 'SE_raster_styles'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_raster_styles violates constraint: " "not a valid SLD/SE Raster Style')\n" "WHERE XB_IsSldSeRasterStyle(NEW.style) <> 1;\n" "SELECT RAISE(ABORT,'insert on SE_raster_styles violates constraint: " "not an XML Schema Validated SLD/SE Raster Style')\n" "WHERE XB_IsSchemaValidated(NEW.style) <> 1;\nEND"; } else { /* relaxed trigger - not imposing XML schema validation */ sql = "CREATE TRIGGER seraster_style_insert\n" "BEFORE INSERT ON 'SE_raster_styles'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_raster_styles violates constraint: " "not a valid SLD/SE Raster Style')\n" "WHERE XB_IsSldSeRasterStyle(NEW.style) <> 1;\nEND"; } ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } if (relaxed == 0) { /* strong trigger - imposing XML schema validation */ sql = "CREATE TRIGGER seraster_style_update\n" "BEFORE UPDATE ON 'SE_raster_styles'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_raster_styles violates constraint: " "not a valid SLD/SE Raster Style')\n" "WHERE XB_IsSldSeRasterStyle(NEW.style) <> 1;\n" "SELECT RAISE(ABORT,'update on SE_raster_styles violates constraint: " "not an XML Schema Validated SLD/SE Raster Style')\n" "WHERE XB_IsSchemaValidated(NEW.style) <> 1;\nEND"; } else { /* relaxed trigger - not imposing XML schema validation */ sql = "CREATE TRIGGER seraster_style_update\n" "BEFORE UPDATE ON 'SE_raster_styles'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_raster_styles violates constraint: " "not a valid SLD/SE Raster Style')\n" "WHERE XB_IsSldSeRasterStyle(NEW.style) <> 1;\nEND"; } ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* automatically setting the style_name after inserting */ sql = "CREATE TRIGGER seraster_style_name_ins\n" "AFTER INSERT ON 'SE_raster_styles'\nFOR EACH ROW BEGIN\n" "UPDATE SE_raster_styles " "SET style_name = XB_GetName(NEW.style) " "WHERE style_id = NEW.style_id;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* automatically setting the style_name after updating */ sql = "CREATE TRIGGER seraster_style_name_upd\n" "AFTER UPDATE OF style ON " "'SE_raster_styles'\nFOR EACH ROW BEGIN\n" "UPDATE SE_raster_styles " "SET style_name = XB_GetName(NEW.style) " "WHERE style_id = NEW.style_id;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_raster_styled_layers (sqlite3 * sqlite) { /* creating the SE_raster_styled_layers table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE SE_raster_styled_layers (\n" "coverage_name TEXT NOT NULL,\n" "style_id INTEGER NOT NULL,\n" "CONSTRAINT pk_serstl PRIMARY KEY (coverage_name, style_id),\n" "CONSTRAINT fk_serstl_cov FOREIGN KEY (coverage_name) " "REFERENCES raster_coverages (coverage_name) ON DELETE CASCADE,\n" "CONSTRAINT fk_serstl_stl FOREIGN KEY (style_id) " "REFERENCES SE_raster_styles (style_id) ON DELETE CASCADE)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'SE_raster_styled_layers' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the style_id index */ sql = "CREATE INDEX idx_serstl_style ON SE_raster_styled_layers (style_id)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE INDEX 'idx_serstl_style' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the SE_raster_styled_layers triggers */ sql = "CREATE TRIGGER serstl_coverage_name_insert\n" "BEFORE INSERT ON 'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_raster_styled_layers violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on SE_raster_styled_layers violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on SE_raster_styled_layers violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER serstl_coverage_name_update\n" "BEFORE UPDATE OF 'coverage_name' ON 'SE_raster_styled_layers'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_raster_styled_layers violates constraint: " "coverage_name value must not contain a single quote')\n" "WHERE NEW.coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on SE_raster_styled_layers violates constraint: " "coverage_name value must not contain a double quote')\n" "WHERE NEW.coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on SE_raster_styled_layers violates constraint: " "coverage_name value must be lower case')\n" "WHERE NEW.coverage_name <> lower(NEW.coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_group_styles (sqlite3 * sqlite, int relaxed) { /* creating the SE_group_styles table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE SE_group_styles (\n" "style_id INTEGER PRIMARY KEY AUTOINCREMENT,\n" "style_name TEXT NOT NULL DEFAULT 'missing_name' UNIQUE,\n" "style BLOB NOT NULL)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'SE_group_styles' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the SE_group_styles triggers */ if (relaxed == 0) { /* strong trigger - imposing XML schema validation */ sql = "CREATE TRIGGER segroup_style_insert\n" "BEFORE INSERT ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_group_styles violates constraint: " "not a valid SLD Style')\n" "WHERE XB_IsSldStyle(NEW.style) <> 1;\n" "SELECT RAISE(ABORT,'insert on SE_group_styles violates constraint: " "not an XML Schema Validated SLD Style')\n" "WHERE XB_IsSchemaValidated(NEW.style) <> 1;\nEND"; } else { /* relaxed trigger - not imposing XML schema validation */ sql = "CREATE TRIGGER segroup_style_insert\n" "BEFORE INSERT ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_group_styles violates constraint: " "not a valid SLD Style')\n" "WHERE XB_IsSldStyle(NEW.style) <> 1;\nEND"; } ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } if (relaxed == 0) { /* strong trigger - imposing XML schema validation */ sql = "CREATE TRIGGER segroup_style_update\n" "BEFORE UPDATE ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_group_styles violates constraint: " "not a valid SLD Style')\n" "WHERE XB_IsSldStyle(NEW.style) <> 1;\n" "SELECT RAISE(ABORT,'update on SE_group_styles violates constraint: " "not an XML Schema Validated SLD Style')\n" "WHERE XB_IsSchemaValidated(NEW.style) <> 1;\nEND"; } else { /* relaxed trigger - not imposing XML schema validation */ sql = "CREATE TRIGGER segroup_style_update\n" "BEFORE UPDATE ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_group_styles violates constraint: " "not a valid SLD Raster Style')\n" "WHERE XB_IsSldStyle(NEW.style) <> 1;\nEND"; } ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* automatically setting the style_name after inserting */ sql = "CREATE TRIGGER segroup_style_name_ins\n" "AFTER INSERT ON 'SE_group_styles'\nFOR EACH ROW BEGIN\n" "UPDATE SE_group_styles " "SET style_name = XB_GetName(NEW.style) " "WHERE style_id = NEW.style_id;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* automatically setting the style_name after updating */ sql = "CREATE TRIGGER segroup_style_name_upd\n" "AFTER UPDATE OF style ON " "'SE_group_styles'\nFOR EACH ROW BEGIN\n" "UPDATE SE_group_styles " "SET style_name = XB_GetName(NEW.style) " "WHERE style_id = NEW.style_id;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_styled_groups (sqlite3 * sqlite) { /* creating the SE_styled_groups table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE SE_styled_groups (\n" "group_name TEXT NOT NULL PRIMARY KEY,\n" "title TEXT NOT NULL DEFAULT '*** undefined ***',\n" "abstract TEXT NOT NULL DEFAULT '*** undefined ***')"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'SE_styled_groups' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the SE_styled_groups triggers */ sql = "CREATE TRIGGER segrp_group_name_insert\n" "BEFORE INSERT ON 'SE_styled_groups'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_styled_groups violates constraint: " "group_name value must not contain a single quote')\n" "WHERE NEW.group_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_groups violates constraint: " "group_name value must not contain a double quote')\n" "WHERE NEW.group_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_groups violates constraint: " "group_name value must be lower case')\n" "WHERE NEW.group_name <> lower(NEW.group_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrp_group_name_update\n" "BEFORE UPDATE OF 'group_name' ON 'SE_styled_groups'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_styled_groups violates constraint: " "group_name value must not contain a single quote')\n" "WHERE NEW.group_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on SE_styled_groups violates constraint: " "group_name value must not contain a double quote')\n" "WHERE NEW.group_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on SE_styled_groups violates constraint: " "group_name value must be lower case')\n" "WHERE NEW.group_name <> lower(NEW.group_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_styled_group_refs (sqlite3 * sqlite) { /* creating the SE_styled_group_refs table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE SE_styled_group_refs (\n" "id INTEGER PRIMARY KEY AUTOINCREMENT,\n" "group_name TEXT NOT NULL,\n" "paint_order INTEGER NOT NULL,\n" "vector_coverage_name TEXT,\n" "raster_coverage_name TEXT,\n" "CONSTRAINT fk_se_refs FOREIGN KEY (group_name) " "REFERENCES SE_styled_groups (group_name) " "ON DELETE CASCADE,\n" "CONSTRAINT fk_se_group_vector " "FOREIGN KEY (vector_coverage_name) " "REFERENCES vector_coverages (coverage_name) ON DELETE CASCADE,\n" "CONSTRAINT fk_se_group_raster " "FOREIGN KEY (raster_coverage_name) " "REFERENCES raster_coverages (coverage_name) ON DELETE CASCADE)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'SE_styled_group_refs' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the SE_styled_group_refs triggers */ sql = "CREATE TRIGGER segrrefs_group_name_insert\n" "BEFORE INSERT ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "group_name value must not contain a single quote')\n" "WHERE NEW.group_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "group_name value must not contain a double quote')\n" "WHERE NEW.group_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "group_name value must be lower case')\n" "WHERE NEW.group_name <> lower(NEW.group_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrrefs_group_name_update\n" "BEFORE UPDATE OF 'group_name' ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "group_name value must not contain a single quote')\n" "WHERE NEW.group_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "group_name value must not contain a double quote')\n" "WHERE NEW.group_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "group_name value must be lower case')\n" "WHERE NEW.group_name <> lower(NEW.group_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrrefs_vector_coverage_name_insert\n" "BEFORE INSERT ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "vector_coverage_name value must not contain a single quote')\n" "WHERE NEW.vector_coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "vector_coverage_name value must not contain a double quote')\n" "WHERE NEW.vector_coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "vector_coverage_name value must be lower case')\n" "WHERE NEW.vector_coverage_name <> lower(NEW.vector_coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrrefs_vector_coverage_name_update\n" "BEFORE UPDATE OF 'vector_coverage_name' ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "rastrer_coverage_name value must not contain a single quote')\n" "WHERE NEW.vector_coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "vector_coverage_name value must not contain a double quote')\n" "WHERE NEW.vector_coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "vector_coverage_name value must be lower case')\n" "WHERE NEW.vector_coverage_name <> lower(NEW.vector_coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrrefs_raster_coverage_name_insert\n" "BEFORE INSERT ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "raster_coverage_name value must not contain a single quote')\n" "WHERE NEW.raster_coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "raster_coverage_name value must not contain a double quote')\n" "WHERE NEW.raster_coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "raster_coverage_name value must be lower case')\n" "WHERE NEW.raster_coverage_name <> lower(NEW.raster_coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrrefs_raster_coverage_name_update\n" "BEFORE UPDATE OF 'raster_coverage_name' ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "rastrer_coverage_name value must not contain a single quote')\n" "WHERE NEW.raster_coverage_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "raster_coverage_name value must not contain a double quote')\n" "WHERE NEW.raster_coverage_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "raster_coverage_name value must be lower case')\n" "WHERE NEW.raster_coverage_name <> lower(NEW.raster_coverage_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrrefs_insert_1\n" "BEFORE INSERT ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "cannot reference both Vector and Raster at the same time')\n" "WHERE NEW.vector_coverage_name IS NOT NULL " "AND NEW.raster_coverage_name IS NOT NULL;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrrefs_update_1\n" "BEFORE UPDATE ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "cannot reference both Vector and Raster at the same time')\n" "WHERE NEW.vector_coverage_name IS NOT NULL " "AND NEW.raster_coverage_name IS NOT NULL;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrrefs_insert_2\n" "BEFORE INSERT ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_refs violates constraint: " "either Vector or Raster must be referenced')\n" "WHERE NEW.vector_coverage_name IS NULL " "AND NEW.raster_coverage_name IS NULL;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrrefs_update_2\n" "BEFORE UPDATE ON 'SE_styled_group_refs'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_styled_group_refs violates constraint: " "either Vector or Raster must be referenced')\n" "WHERE NEW.vector_coverage_name IS NULL " "AND NEW.raster_coverage_name IS NULL;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating any Index on SE_styled_group_refs */ sql = "CREATE INDEX idx_SE_styled_vgroups ON " "SE_styled_group_refs " "(vector_coverage_name)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("Create Index 'idx_SE_styled_vgroups' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE INDEX idx_SE_styled_rgroups ON " "SE_styled_group_refs " "(raster_coverage_name)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("Create Index 'idx_SE_styled_rgroups' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE INDEX idx_SE_styled_groups_paint ON " "SE_styled_group_refs " "(group_name, paint_order)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("Create Index 'idx_SE_styled_groups_paint' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_styled_group_styles (sqlite3 * sqlite) { /* creating the SE_styled_group_styles table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE SE_styled_group_styles (\n" "id INTEGER PRIMARY KEY AUTOINCREMENT,\n" "group_name TEXT NOT NULL,\n" "style_id INTEGER NOT NULL,\n" "CONSTRAINT fk_se_grpstl FOREIGN KEY (group_name) " "REFERENCES SE_styled_groups (group_name) " "ON DELETE CASCADE,\n" "CONSTRAINT fk_se_group_style FOREIGN KEY (style_id) " "REFERENCES group_styles (style_id) ON DELETE CASCADE)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'SE_styled_group_styles' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the SE_styled_group_styles triggers */ sql = "CREATE TRIGGER segrpstl_group_name_insert\n" "BEFORE INSERT ON 'SE_styled_group_styles'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_styles violates constraint: " "group_name value must not contain a single quote')\n" "WHERE NEW.group_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_styles violates constraint: " "group_name value must not contain a double quote')\n" "WHERE NEW.group_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'insert on SE_styled_group_styles violates constraint: " "group_name value must be lower case')\n" "WHERE NEW.group_name <> lower(NEW.group_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER segrpstl_group_name_update\n" "BEFORE UPDATE OF 'group_name' ON 'SE_styled_group_styles'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on SE_styled_group_styles violates constraint: " "group_name value must not contain a single quote')\n" "WHERE NEW.group_name LIKE ('%''%');\n" "SELECT RAISE(ABORT,'update on SE_styled_group_styles violates constraint: " "group_name value must not contain a double quote')\n" "WHERE NEW.group_name LIKE ('%\"%');\n" "SELECT RAISE(ABORT,'update on SE_styled_group_styles violates constraint: " "group_name value must be lower case')\n" "WHERE NEW.group_name <> lower(NEW.group_name);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_external_graphics_view (sqlite3 * sqlite) { /* creating the SE_external_graphics_view view */ char *sql_statement; int ret; char *err_msg = NULL; sql_statement = sqlite3_mprintf ("CREATE VIEW SE_external_graphics_view AS\n" "SELECT xlink_href AS xlink_href, title AS title, " "abstract AS abstract, resource AS resource, " "file_name AS file_name, GetMimeType(resource) AS mime_type\n" "FROM SE_external_graphics"); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW 'SE_external_graphics_view' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_fonts_view (sqlite3 * sqlite) { /* creating the SE_fonts_view view */ char *sql_statement; int ret; char *err_msg = NULL; sql_statement = sqlite3_mprintf ("CREATE VIEW SE_fonts_view AS\n" "SELECT font_facename AS font_facename, " "GetFontFamily(font) AS family_name, " "IsFontBold(font) AS bold, IsFontItalic(font) AS italic, " "font AS font\nFROM SE_fonts"); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW 'SE_fonts_view' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_vector_styles_view (sqlite3 * sqlite) { /* creating the SE_vector_styles_view view */ char *sql_statement; int ret; char *err_msg = NULL; sql_statement = sqlite3_mprintf ("CREATE VIEW SE_vector_styles_view AS \n" "SELECT style_name AS name, XB_GetTitle(style) AS title, " "XB_GetAbstract(style) AS abstract, style AS style, " "XB_IsSchemaValidated(style) AS schema_validated, " "XB_GetSchemaURI(style) AS schema_uri\n" "FROM SE_vector_styles"); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW 'SE_vector_styled_layers_view' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_raster_styles_view (sqlite3 * sqlite) { /* creating the SE_raster_styles_view view */ char *sql_statement; int ret; char *err_msg = NULL; sql_statement = sqlite3_mprintf ("CREATE VIEW SE_raster_styles_view AS \n" "SELECT style_name AS name, XB_GetTitle(style) AS title, " "XB_GetAbstract(style) AS abstract, style AS style, " "XB_IsSchemaValidated(style) AS schema_validated, " "XB_GetSchemaURI(style) AS schema_uri\n" "FROM SE_raster_styles"); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW 'SE_raster_styled_layers_view' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_vector_styled_layers_view (sqlite3 * sqlite) { /* creating the SE_vector_styled_layers_view view */ char *sql_statement; int ret; char *err_msg = NULL; sql_statement = sqlite3_mprintf ("CREATE VIEW SE_vector_styled_layers_view AS \n" "SELECT l.coverage_name AS coverage_name, v.f_table_name AS f_table_name, " "v.f_geometry_column AS f_geometry_column, l.style_id AS style_id, " "s.style_name AS name, XB_GetTitle(s.style) AS title, " "XB_GetAbstract(s.style) AS abstract, s.style AS style, " "XB_IsSchemaValidated(s.style) AS schema_validated, " "XB_GetSchemaURI(s.style) AS schema_uri\n" "FROM SE_vector_styled_layers AS l\n" "JOIN vector_coverages AS v ON (l.coverage_name = v.coverage_name) " "JOIN SE_vector_styles AS s ON (l.style_id = s.style_id)"); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW 'SE_vector_styled_layers_view' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_raster_styled_layers_view (sqlite3 * sqlite) { /* creating the SE_raster_styled_layers_view view */ char *sql_statement; int ret; char *err_msg = NULL; sql_statement = sqlite3_mprintf ("CREATE VIEW SE_raster_styled_layers_view AS \n" "SELECT l.coverage_name AS coverage_name, l.style_id AS style_id, " "s.style_name AS name, XB_GetTitle(s.style) AS title, " "XB_GetAbstract(s.style) AS abstract, s.style AS style, " "XB_IsSchemaValidated(s.style) AS schema_validated, " "XB_GetSchemaURI(s.style) AS schema_uri\n" "FROM SE_raster_styled_layers AS l\n" "JOIN SE_raster_styles AS s ON (l.style_id = s.style_id)"); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW 'SE_raster_styled_layers_view' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_styled_groups_view (sqlite3 * sqlite) { /* creating the SE_styled_groups_view view */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE VIEW SE_styled_groups_view AS " "SELECT g.group_name AS group_name, g.title AS group_title, " "g.abstract AS group_abstract, gr.paint_order AS paint_order, " "'vector' AS type, gr.vector_coverage_name AS coverage_name, " "c.f_table_name AS f_table_name, c.f_geometry_column AS f_geometry_column, " "c.srid AS srid FROM SE_styled_groups AS g " "JOIN SE_styled_group_refs AS gr ON (g.group_name = gr.group_name) " "JOIN vector_coverages AS v ON (gr.vector_coverage_name = v.coverage_name) " "JOIN geometry_columns AS c ON (v.f_table_name = c.f_table_name " "AND v.f_geometry_column = c.f_geometry_column) " "UNION SELECT g.group_name AS group_name, g.title AS group_title, " "g.abstract AS group_abstract, gr.paint_order AS paint_order, " "'raster' AS type, gr.raster_coverage_name AS coverage_name, " "NULL AS f_table_name, NULL AS f_geometry_column, " "r.srid AS srid FROM SE_styled_groups AS g " "JOIN SE_styled_group_refs AS gr ON (g.group_name = gr.group_name) " "JOIN raster_coverages AS r ON (gr.raster_coverage_name = r.coverage_name)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW 'SE_styled_groups_view' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_group_styles_view (sqlite3 * sqlite) { /* creating the SE_group_styles_view view */ char *sql_statement; int ret; char *err_msg = NULL; sql_statement = sqlite3_mprintf ("CREATE VIEW SE_group_styles_view AS \n" "SELECT g.group_name AS group_name, b.title AS group_title, " "b.abstract AS group_abstract, s.style_id AS style_id, " "s.style_name AS name, XB_GetTitle(s.style) AS title, " "XB_GetAbstract(s.style) AS abstract, s.style AS style, " "XB_IsSchemaValidated(s.style) AS schema_validated, " "XB_GetSchemaURI(s.style) AS schema_uri\n" "FROM SE_styled_group_styles AS g\n" "JOIN SE_styled_groups AS b ON (g.group_name = b.group_name)\n" "JOIN SE_group_styles AS s ON (g.style_id = s.style_id)"); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW 'SE_group_styles_view' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } SPATIALITE_PRIVATE int createStylingTables_ex (void *p_sqlite, int relaxed, int transaction) { /* Creating the SE Styling tables */ const char *tables[19]; int views[18]; const char **p_tbl; int *p_view; int ok_table; sqlite3 *sqlite = p_sqlite; int ret; if (transaction) { /* starting a Transaction */ ret = sqlite3_exec (p_sqlite, "BEGIN", NULL, NULL, NULL); if (ret != SQLITE_OK) goto error; } /* checking SLD/SE Styling tables */ tables[0] = "SE_external_graphics"; tables[1] = "SE_fonts"; tables[2] = "SE_vector_styles"; tables[3] = "SE_raster_styles"; tables[4] = "SE_group_styles"; tables[5] = "SE_vector_styled_layers"; tables[6] = "SE_raster_styled_layers"; tables[7] = "SE_styled_groups"; tables[8] = "SE_styled_group_refs"; tables[9] = "SE_styled_group_styles"; tables[10] = "SE_external_graphics_view"; tables[11] = "SE_fonts_view"; tables[12] = "SE_vector_styles_view"; tables[13] = "SE_raster_styles_view"; tables[14] = "SE_vector_styled_layers_view"; tables[15] = "SE_raster_styled_layers_view"; tables[16] = "SE_styled_groups_view"; tables[17] = "SE_group_styles_view"; tables[18] = NULL; views[0] = 0; views[1] = 0; views[2] = 0; views[3] = 0; views[4] = 0; views[5] = 0; views[6] = 0; views[7] = 0; views[8] = 0; views[9] = 0; views[10] = 1; views[11] = 1; views[12] = 1; views[13] = 1; views[14] = 1; views[15] = 1; views[16] = 1; views[17] = 1; p_tbl = tables; p_view = views; while (*p_tbl != NULL) { ok_table = check_styling_table (sqlite, *p_tbl, *p_view); if (ok_table) { spatialite_e ("CreateStylingTables() error: table '%s' already exists\n", *p_tbl); goto error; } p_tbl++; p_view++; } /* creating the SLD/SE Styling tables */ if (!check_raster_coverages (sqlite)) { /* creating the main RasterCoverages table as well */ if (!create_raster_coverages (sqlite)) goto error; } if (!check_vector_coverages (sqlite)) { /* creating the main VectorCoverages table as well */ if (!create_vector_coverages (sqlite)) goto error; } if (!create_external_graphics (sqlite)) goto error; if (!create_fonts (sqlite)) goto error; if (!create_vector_styles (sqlite, relaxed)) goto error; if (!create_raster_styles (sqlite, relaxed)) goto error; if (!create_group_styles (sqlite, relaxed)) goto error; if (!create_vector_styled_layers (sqlite)) goto error; if (!create_raster_styled_layers (sqlite)) goto error; if (!create_styled_groups (sqlite)) goto error; if (!create_styled_group_refs (sqlite)) goto error; if (!create_styled_group_styles (sqlite)) goto error; if (!create_external_graphics_view (sqlite)) goto error; if (!create_fonts_view (sqlite)) goto error; if (!create_vector_styles_view (sqlite)) goto error; if (!create_raster_styles_view (sqlite)) goto error; if (!create_vector_styled_layers_view (sqlite)) goto error; if (!create_raster_styled_layers_view (sqlite)) goto error; if (!create_styled_groups_view (sqlite)) goto error; if (!create_group_styles_view (sqlite)) goto error; if (transaction) { /* confirming the still pending Transaction */ ret = sqlite3_exec (sqlite, "COMMIT", NULL, NULL, NULL); if (ret != SQLITE_OK) goto error; } return 1; error: return 0; } SPATIALITE_PRIVATE int createStylingTables (void *p_sqlite, int relaxed) { /* Creating the SE Styling tables */ return createStylingTables_ex (p_sqlite, relaxed, 0); } static int check_iso_metadata_table (sqlite3 * sqlite, const char *table, int is_view) { /* checking if some ISO Metadata-related table/view already exists */ int exists = 0; char *sql_statement; char *errMsg = NULL; int ret; char **results; int rows; int columns; int i; sql_statement = sqlite3_mprintf ("SELECT name FROM sqlite_master WHERE type = '%s'" "AND Upper(name) = Upper(%Q)", (!is_view) ? "table" : "view", table); ret = sqlite3_get_table (sqlite, sql_statement, &results, &rows, &columns, &errMsg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { sqlite3_free (errMsg); return 0; } for (i = 1; i <= rows; i++) exists = 1; sqlite3_free_table (results); return exists; } static int create_iso_metadata (sqlite3 * sqlite, int relaxed) { /* creating the ISO_metadata table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE ISO_metadata (\n" "id INTEGER PRIMARY KEY AUTOINCREMENT,\n" "md_scope TEXT NOT NULL DEFAULT 'dataset',\n" "metadata BLOB NOT NULL DEFAULT (zeroblob(4)),\n" "fileId TEXT,\nparentId TEXT)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'ISO_metadata' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* adding the Geometry column */ sql = "SELECT AddGeometryColumn('ISO_metadata', 'geometry', 4326, 'MULTIPOLYGON', 'XY')"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e (" AddGeometryColumn 'ISO_metadata'.'geometry' error:%s\n", err_msg); sqlite3_free (err_msg); return 0; } /* adding a Spatial Index */ sql = "SELECT CreateSpatialIndex ('ISO_metadata', 'geometry')"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CreateSpatialIndex 'ISO_metadata'.'geometry' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the ISO_metadata triggers */ sql = "CREATE TRIGGER 'ISO_metadata_md_scope_insert'\n" "BEFORE INSERT ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table ISO_metadata violates constraint: " "md_scope must be one of ''undefined'' | ''fieldSession'' | ''collectionSession'' " "| ''series'' | ''dataset'' | ''featureType'' | ''feature'' | ''attributeType'' " "| ''attribute'' | ''tile'' | ''model'' | ''catalogue'' | ''schema'' " "| ''taxonomy'' | ''software'' | ''service'' | ''collectionHardware'' " "| ''nonGeographicDataset'' | ''dimensionGroup''')\n" "WHERE NOT(NEW.md_scope IN ('undefined','fieldSession','collectionSession'," "'series','dataset','featureType','feature','attributeType','attribute'," "'tile','model','catalogue','schema','taxonomy','software','service'," "'collectionHardware','nonGeographicDataset','dimensionGroup'));\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_md_scope_update'\n" "BEFORE UPDATE OF 'md_scope' ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table ISO_metadata violates constraint: " "md_scope must be one of ''undefined'' | ''fieldSession'' | ''collectionSession'' " "| ''series'' | ''dataset'' | ''featureType'' | ''feature'' | ''attributeType'' |" " ''attribute'' | ''tile'' | ''model'' | ''catalogue'' | ''schema'' " "| ''taxonomy'' | ''software'' | ''service'' | ''collectionHardware'' " "| ''nonGeographicDataset'' | ''dimensionGroup''')\n" "WHERE NOT(NEW.md_scope IN ('undefined','fieldSession','collectionSession'," "'series','dataset','featureType','feature','attributeType','attribute'," "'tile','model','catalogue','schema','taxonomy','software','service'," "'collectionHardware','nonGeographicDataset','dimensionGroup'));\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_fileIdentifier_insert'\n" "AFTER INSERT ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" "UPDATE ISO_metadata SET fileId = XB_GetFileId(NEW.metadata), " "parentId = XB_GetParentId(NEW.metadata), " "geometry = XB_GetGeometry(NEW.metadata) WHERE id = NEW.id;\n" "UPDATE ISO_metadata_reference " "SET md_parent_id = GetIsoMetadataId(NEW.parentId) " "WHERE md_file_id = NEW.id;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_fileIdentifier_update'\n" "AFTER UPDATE ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" "UPDATE ISO_metadata SET fileId = XB_GetFileId(NEW.metadata), " "parentId = XB_GetParentId(NEW.metadata), " "geometry = XB_GetGeometry(NEW.metadata) WHERE id = NEW.id;\n" "UPDATE ISO_metadata_reference " "SET md_parent_id = GetIsoMetadataId(NEW.parentId) " "WHERE md_file_id = NEW.id;\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } if (relaxed == 0) { /* strong trigger - imposing XML schema validation */ sql = "CREATE TRIGGER ISO_metadata_insert\n" "BEFORE INSERT ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on ISO_metadata violates constraint: " "not a valid ISO Metadata XML')\n" "WHERE XB_IsIsoMetadata(NEW.metadata) <> 1 AND NEW.id <> 0;\n" "SELECT RAISE(ABORT,'insert on ISO_metadata violates constraint: " "not an XML Schema Validated ISO Metadata')\n" "WHERE XB_IsSchemaValidated(NEW.metadata) <> 1 AND NEW.id <> 0;\nEND"; } else { /* relaxed trigger - not imposing XML schema validation */ sql = "CREATE TRIGGER ISO_metadata_insert\n" "BEFORE INSERT ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'insert on ISO_metadata violates constraint: " "not a valid ISO Metadata XML')\n" "WHERE XB_IsIsoMetadata(NEW.metadata) <> 1 AND NEW.id <> 0;\nEND"; } ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } if (relaxed == 0) { /* strong trigger - imposing XML schema validation */ sql = "CREATE TRIGGER ISO_metadata_update\n" "BEFORE UPDATE ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on ISO_metadata violates constraint: " "not a valid ISO Metadata XML')\n" "WHERE XB_IsIsoMetadata(NEW.metadata) <> 1 AND NEW.id <> 0;\n" "SELECT RAISE(ABORT,'update on ISO_metadata violates constraint: " "not an XML Schema Validated ISO Metadata')\n" "WHERE XB_IsSchemaValidated(NEW.metadata) <> 1 AND NEW.id <> 0;\nEND"; } else { /* relaxed trigger - not imposing XML schema validation */ sql = "CREATE TRIGGER ISO_metadata_update\n" "BEFORE UPDATE ON 'ISO_metadata'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ABORT,'update on ISO_metadata violates constraint: " "not a valid ISO Metadata XML')\n" "WHERE XB_IsIsoMetadata(NEW.metadata) <> 1 AND NEW.id <> 0;\nEND"; } ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating any Index on ISO_metadata */ sql = "CREATE UNIQUE INDEX idx_ISO_metadata_ids ON " "ISO_metadata (fileId)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("Create Index 'idx_ISO_metadata_ids' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE INDEX idx_ISO_metadata_parents ON " "ISO_metadata (parentId)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("Create Index 'idx_ISO_metadata_parents' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_iso_metadata_reference (sqlite3 * sqlite) { /* creating the ISO_metadata_reference table */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE TABLE ISO_metadata_reference (\n" "reference_scope TEXT NOT NULL DEFAULT 'table',\n" "table_name TEXT NOT NULL DEFAULT 'undefined',\n" "column_name TEXT NOT NULL DEFAULT 'undefined',\n" "row_id_value INTEGER NOT NULL DEFAULT 0,\n" "timestamp TEXT NOT NULL DEFAULT (" "strftime('%Y-%m-%dT%H:%M:%fZ',CURRENT_TIMESTAMP)),\n" "md_file_id INTEGER NOT NULL DEFAULT 0,\n" "md_parent_id INTEGER NOT NULL DEFAULT 0,\n" "CONSTRAINT fk_isometa_mfi FOREIGN KEY (md_file_id) " "REFERENCES ISO_metadata(id),\n" "CONSTRAINT fk_isometa_mpi FOREIGN KEY (md_parent_id) " "REFERENCES ISO_metadata(id))"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE TABLE 'ISO_metadata_reference' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating the ISO_metadata_reference triggers */ sql = "CREATE TRIGGER 'ISO_metadata_reference_scope_insert'\n" "BEFORE INSERT ON 'ISO_metadata_reference'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table ISO_metadata_reference violates constraint: " "reference_scope must be one of ''table'' | ''column'' | ''row'' | ''row/col''')\n" "WHERE NOT NEW.reference_scope IN ('table','column','row','row/col');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_reference_scope_update'\n" "BEFORE UPDATE OF 'reference_scope' ON 'ISO_metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table ISO_metadata_reference violates constraint: " "referrence_scope must be one of ''table'' | ''column'' | ''row'' | ''row/col''')\n" "WHERE NOT NEW.reference_scope IN ('table','column','row','row/col');\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_reference_table_name_insert'\n" "BEFORE INSERT ON 'ISO_metadata_reference'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table ISO_metadata_reference violates constraint: " "table_name must be the name of a table in geometry_columns')\n" "WHERE NOT NEW.table_name IN (\n" "SELECT f_table_name AS table_name FROM geometry_columns);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_reference_table_name_update'\n" "BEFORE UPDATE OF 'table_name' ON 'ISO_metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table ISO_metadata_reference violates constraint: " "table_name must be the name of a table in geometry_columns')\n" "WHERE NOT NEW.table_name IN (\n" "SELECT f_table_name AS table_name FROM geometry_columns);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_reference_row_id_value_insert'\n" "BEFORE INSERT ON 'ISO_metadata_reference'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on ISO_table ISO_metadata_reference violates constraint: " "row_id_value must be 0 when reference_scope is ''table'' or ''column''')\n" "WHERE NEW.reference_scope IN ('table','column') AND NEW.row_id_value <> 0;\n" "SELECT RAISE(ROLLBACK, 'insert on table ISO_metadata_reference violates constraint: " "row_id_value must exist in specified table when reference_scope is ''row'' or ''row/col''')\n" "WHERE NEW.reference_scope IN ('row','row/col') AND NOT EXISTS\n" "(SELECT rowid FROM (SELECT NEW.table_name AS table_name) " "WHERE rowid = NEW.row_id_value);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_reference_row_id_value_update'\n" "BEFORE UPDATE OF 'row_id_value' ON 'ISO_metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table ISO_metadata_reference violates constraint: " "row_id_value must be 0 when reference_scope is ''table'' or ''column''')\n" "WHERE NEW.reference_scope IN ('table','column') AND NEW.row_id_value <> 0;\n" "SELECT RAISE(ROLLBACK, 'update on ISO_table metadata_reference violates constraint: " "row_id_value must exist in specified table when reference_scope is ''row'' or ''row/col''')\n" "WHERE NEW.reference_scope IN ('row','row/col') AND NOT EXISTS\n" "(SELECT rowid FROM (SELECT NEW.table_name AS table_name) " "WHERE rowid = NEW.row_id_value);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_reference_timestamp_insert'\n" "BEFORE INSERT ON 'ISO_metadata_reference'\nFOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'insert on table ISO_metadata_reference violates constraint: " "timestamp must be a valid time in ISO 8601 ''yyyy-mm-ddThh:mm:ss.cccZ'' form')\n" "WHERE NOT (NEW.timestamp GLOB'[1-2][0-9][0-9][0-9]-[0-1][0-9]-[1-3][0-9]T" "[0-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]Z' AND strftime('%s'," "NEW.timestamp) NOT NULL);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE TRIGGER 'ISO_metadata_reference_timestamp_update'\n" "BEFORE UPDATE OF 'timestamp' ON 'ISO_metadata_reference'\n" "FOR EACH ROW BEGIN\n" "SELECT RAISE(ROLLBACK, 'update on table ISO_metadata_reference violates constraint: " "timestamp must be a valid time in ISO 8601 ''yyyy-mm-ddThh:mm:ss.cccZ'' form')\n" "WHERE NOT (NEW.timestamp GLOB'[1-2][0-9][0-9][0-9]-[0-1][0-9]-[1-3][0-9]T" "[0-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]Z' AND strftime('%s'," "NEW.timestamp) NOT NULL);\nEND"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } /* creating any Index on ISO_metadata_reference */ sql = "CREATE INDEX idx_ISO_metadata_reference_ids ON " "ISO_metadata_reference (md_file_id)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("Create Index 'idx_ISO_metadata_reference_ids' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } sql = "CREATE INDEX idx_ISO_metadata_reference_parents ON " "ISO_metadata_reference (md_parent_id)"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("Create Index 'idx_ISO_metadata_reference_parents' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_iso_metadata_view (sqlite3 * sqlite) { /* creating the ISO_metadata_view view */ char *sql; int ret; char *err_msg = NULL; sql = "CREATE VIEW ISO_metadata_view AS\n" "SELECT id AS id, md_scope AS md_scope, XB_GetTitle(metadata) AS title, " "XB_GetAbstract(metadata) AS abstract, geometry AS geometry, " "fileId AS fileIdentifier, parentId AS parentIdentifier, metadata AS metadata, " "XB_IsSchemaValidated(metadata) AS schema_validated, " "XB_GetSchemaURI(metadata) AS metadata_schema_URI\n" "FROM ISO_metadata"; ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("CREATE VIEW 'ISO_metadata_view' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } SPATIALITE_PRIVATE int createIsoMetadataTables (void *p_sqlite, int relaxed) { /* Creating the ISO Metadata tables */ const char *tables[4]; int views[3]; const char **p_tbl; int *p_view; int ok_table; int ret; char *err_msg = NULL; sqlite3 *sqlite = p_sqlite; /* checking ISO Metadata tables */ tables[0] = "ISO_metadata"; tables[1] = "ISO_metadata_reference"; tables[2] = "ISO_metadata_view"; tables[3] = NULL; views[0] = 0; views[1] = 0; views[2] = 1; p_tbl = tables; p_view = views; while (*p_tbl != NULL) { ok_table = check_iso_metadata_table (sqlite, *p_tbl, *p_view); if (ok_table) { spatialite_e ("CreateIsoMetadataTables() error: table '%s' already exists\n", *p_tbl); goto error; } p_tbl++; p_view++; } /* creating the ISO Metadata tables */ if (!create_iso_metadata (sqlite, relaxed)) goto error; if (!create_iso_metadata_reference (sqlite)) goto error; if (!create_iso_metadata_view (sqlite)) goto error; /* inserting the default "undef" row into ISO_metadata */ ret = sqlite3_exec (sqlite, "INSERT INTO ISO_metadata (id, md_scope) VALUES (0, 'undefined')", NULL, NULL, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("Insert default 'undefined' ISO_metadata row - error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; error: return 0; } #endif /* end including LIBXML2 */ libspatialite-4.3.0a/src/Makefile.am0000664000175000017500000000417112544707704014270 00000000000000AUTOMAKE_OPTIONS = subdir-objects SUBDIRS = headers \ gaiaaux \ gaiaexif \ gaiageo \ geopackage \ spatialite \ shapefiles \ srsinit \ connection_cache \ virtualtext \ wfs \ dxf \ md5 \ control_points AM_CPPFLAGS = @CFLAGS@ AM_CPPFLAGS += -I$(top_srcdir)/src/headers AM_CPPFLAGS += -I$(top_srcdir) lib_LTLIBRARIES = libspatialite.la mod_spatialite.la libspatialite_la_SOURCES = versioninfo/version.c libspatialite_la_LIBADD = ./gaiaaux/libgaiaaux.la \ ./gaiaexif/libgaiaexif.la \ ./gaiageo/libgaiageo.la \ ./geopackage/libgeopackage.la \ ./spatialite/libsplite.la \ ./shapefiles/libshapefiles.la \ ./dxf/libdxf.la \ ./md5/libmd5.la \ ./control_points/libcontrol_points.la\ ./srsinit/libsrsinit.la \ ./connection_cache/libconnection_cache.la \ ./virtualtext/libvirtualtext.la \ ./wfs/libwfs.la @LIBXML2_LIBS@ if MINGW libspatialite_la_LDFLAGS = -version-info 4:3:0 -no-undefined libspatialite_la_LIBADD += -lm else if ANDROID libspatialite_la_LDFLAGS = -version-info 8:0:1 libspatialite_la_LIBADD += -ldl -lm else libspatialite_la_LDFLAGS = -version-info 8:0:1 libspatialite_la_LIBADD += -lpthread -ldl -lm endif endif mod_spatialite_la_SOURCES = versioninfo/version.c mod_spatialite_la_LIBADD = ./gaiaaux/gaiaaux.la \ ./gaiaexif/gaiaexif.la \ ./gaiageo/gaiageo.la \ ./geopackage/geopackage.la \ ./spatialite/splite.la \ ./shapefiles/shapefiles.la \ ./dxf/dxf.la \ ./md5/md5.la \ ./control_points/control_points.la \ ./srsinit/srsinit.la \ ./connection_cache/connection_cache.la \ ./virtualtext/virtualtext.la \ ./wfs/wfs.la @LIBXML2_LIBS@ mod_spatialite_la_CPPFLAGS = @CFLAGS@ mod_spatialite_la_CPPFLAGS += -I$(top_srcdir)/src/headers -I. mod_spatialite_la_CPPFLAGS += -DLOADABLE_EXTENSION mod_spatialite_la_LIBTOOLFLAGS = --tag=disable-static if MINGW mod_spatialite_la_LDFLAGS = -module -avoid-version -no-undefined mod_spatialite_la_LIBADD += -lm else if ANDROID mod_spatialite_la_LDFLAGS = -module -version-info 8:0:1 mod_spatialite_la_LIBADD += -ldl -lm else mod_spatialite_la_LDFLAGS = -module -version-info 8:0:1 mod_spatialite_la_LIBADD += -lpthread -ldl -lm endif endif MOSTLYCLEANFILES = *.gcna *.gcno *.gcda libspatialite-4.3.0a/src/versioninfo/0000775000175000017500000000000012573314325014645 500000000000000libspatialite-4.3.0a/src/versioninfo/version.c0000664000175000017500000000421012544707704016420 00000000000000/* version.c -- Gaia spatial support for SQLite version 4.3, 2015 June 29 Author: Sandro Furieri a.furieri@lqt.it ------------------------------------------------------------------------------ Version: MPL 1.1/GPL 2.0/LGPL 2.1 The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library The Initial Developer of the Original Code is Alessandro Furieri Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. */ #if defined(_WIN32) && !defined(__MINGW32__) #include "config-msvc.h" #else #include "config.h" #endif #include #include const char spatialiteversion[] = VERSION; const char spatialitetargetcpu[] = TARGET_CPU; SPATIALITE_DECLARE const char * spatialite_version (void) { return spatialiteversion; } SPATIALITE_DECLARE const char * spatialite_target_cpu (void) { return spatialitetargetcpu; } libspatialite-4.3.0a/config.guess0000775000175000017500000012761512544707704013776 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. timestamp='2009-11-20' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner. Please send patches (context # diff format) to and include a ChangeLog # entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 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." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: libspatialite-4.3.0a/Android_3.0.2.mk0000664000175000017500000000213612544707704014075 00000000000000LOCAL_PATH:= $(call my-dir)/.. include ${CLEAR_VARS} LOCAL_SRC_FILES := \ src/gaiaaux/gg_sqlaux.c \ src/gaiaexif/gaia_exif.c \ src/gaiageo/gg_advanced.c \ src/gaiageo/gg_endian.c \ src/gaiageo/gg_ewkt.c \ src/gaiageo/gg_geodesic.c \ src/gaiageo/gg_geoJSON.c \ src/gaiageo/gg_geometries.c \ src/gaiageo/gg_geoscvt.c \ src/gaiageo/gg_gml.c \ src/gaiageo/gg_kml.c \ src/gaiageo/gg_relations.c \ src/gaiageo/gg_transform.c \ src/gaiageo/gg_vanuatu.c \ src/gaiageo/gg_wkb.c \ src/gaiageo/gg_wkt.c \ src/spatialite/mbrcache.c \ src/spatialite/spatialite.c \ src/spatialite/virtualfdo.c \ src/spatialite/virtualnetwork.c \ src/spatialite/virtualspatialindex.c \ src/srsinit/srs_init.c \ src/versioninfo/version.c LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/jni/src/headers \ $(LOCAL_PATH)/src/headers \ $(LOCAL_PATH)/../SQLite LOCAL_MODULE := spatialite LOCAL_LDLIBS := -ldl -llog LOCAL_CFLAGS := \ -fvisibility=hidden \ -DOMIT_GEOCALLBACKS \ -DOMIT_GEOS \ -DOMIT_PROJ \ -DOMIT_EPSG \ -DOMIT_ICONV \ -DVERSION="\"3.0.2\"" include $(BUILD_SHARED_LIBRARY) libspatialite-4.3.0a/nmake.opt0000664000175000017500000000074612544707704013270 00000000000000# Directory tree where SpatiaLite will be installed. INSTDIR=C:\OSGeo4W # Uncomment the first for an optimized build, or the second for debug. OPTFLAGS= /nologo /Ox /fp:precise /W3 /MD /D_CRT_SECURE_NO_WARNINGS \ /DDLL_EXPORT /DYY_NO_UNISTD_H #OPTFLAGS= /nologo /Zi /MD /Fdspatialite.pdb /DDLL_EXPORT # Set the version number for the DLL. Normally we leave this blank since # we want software that is dynamically loading the DLL to have no problem # with version numbers. VERSION= libspatialite-4.3.0a/spatialite-4.3.0.mk0000664000175000017500000002071512544707704014577 00000000000000include $(CLEAR_VARS) # ./configure --enable-lwgeom=no --enable-gcp --enable-examples=no --build=x86_64-pc-linux-gnu --host=arm-linux-eabi # ./configure --build=x86_64-pc-linux-gnu --host=arm-linux-eabi --without-grib --prefix=$PROJECT/external/gdal # 20150607.libspatialite-4.3.0-dev LOCAL_MODULE := spatialite # SQLite flags copied from ASOP common_sqlite_flags := \ -DHAVE_USLEEP=1 \ -DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576 \ -DSQLITE_THREADSAFE=1 \ -DNDEBUG=1 \ -DSQLITE_ENABLE_MEMORY_MANAGEMENT=1 \ -DSQLITE_DEFAULT_AUTOVACUUM=1 \ -DSQLITE_TEMP_STORE=3 \ -DSQLITE_ENABLE_FTS3 \ -DSQLITE_ENABLE_FTS3_BACKWARDS \ -DSQLITE_ENABLE_RTREE=1 \ -DSQLITE_DEFAULT_FILE_FORMAT=4 # spatialite flags # comment out TARGET_CPU in config.h - will be replaced with TARGET_ARCH_ABI spatialite_flags := \ -DOMIT_FREEXL \ -DTARGET_CPU=\"$(TARGET_ARCH_ABI)\" \ -Dfdatasync=fsync \ -DSQLITE_ENABLE_RTREE=1 \ -DENABLE_GCP=1 \ -DENABLE_GEOPACKAGE=1 \ -DENABLE_LIBXML2=1 \ -DSQLITE_OMIT_BUILTIN_TEST=1 LOCAL_CFLAGS := \ $(common_sqlite_flags) \ $(spatialite_flags) # LOCAL_LDLIBS is always ignored for static libraries # LOCAL_LDLIBS := -llog -lz # LOADABLE_EXTENSION must NOT be defined # For Spatialite with VirtualShapes,VirtualXL support iconv is needed # 2014-07-26 - adapted based on ls -1 result in all directories # Note: not included are: /src/gaiageo/ # --> Ewkt.c:2071:24: error: expected ')' before 'yymsp' # - Ewkt.c,geoJSON.c,Gml.c,Kml.c,vanuatuWkt.c # - lex.Ewkt.c,lex.geoJSON.c,lex.Gml.c,lex.Kml.c,lex.VanuatuWkt.c # 20150607 - ENABLE_GCP=1: 'GPL v2.0 or any subsequent version' # 'srsinit/epsg_update' is not included, since it is not needed in the library [tools to create the epsg_inlined_*.c files] LOCAL_C_INCLUDES := \ $(SQLITE_PATH) \ $(SPATIALITE_PATH) \ $(SPATIALITE_PATH)/src/headers \ $(ICONV_PATH)/include \ $(ICONV_PATH)/libcharset/include \ $(GEOS_PATH)/include \ $(GEOS_PATH)/capi \ $(PROJ4_PATH)/src \ $(LZMA_PATH)/src/liblzma/api \ $(XML2_PATH)/include LOCAL_SRC_FILES := \ $(SPATIALITE_PATH)/src/connection_cache/alloc_cache.c \ $(SPATIALITE_PATH)/src/connection_cache/generator/code_generator.c \ $(SPATIALITE_PATH)/src/control_points/gaia_control_points.c \ $(SPATIALITE_PATH)/src/control_points/grass_crs3d.c \ $(SPATIALITE_PATH)/src/control_points/grass_georef.c \ $(SPATIALITE_PATH)/src/control_points/grass_georef_tps.c \ $(SPATIALITE_PATH)/src/dxf/dxf_load_distinct.c \ $(SPATIALITE_PATH)/src/dxf/dxf_loader.c \ $(SPATIALITE_PATH)/src/dxf/dxf_load_mixed.c \ $(SPATIALITE_PATH)/src/dxf/dxf_parser.c \ $(SPATIALITE_PATH)/src/dxf/dxf_writer.c \ $(SPATIALITE_PATH)/src/gaiaaux/gg_sqlaux.c \ $(SPATIALITE_PATH)/src/gaiaaux/gg_utf8.c \ $(SPATIALITE_PATH)/src/gaiaexif/gaia_exif.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_advanced.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_endian.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_ewkt.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_extras.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_geodesic.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_geoJSON.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_geometries.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_geoscvt.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_gml.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_kml.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_lwgeom.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_matrix.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_relations.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_relations_ext.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_shape.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_transform.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_vanuatu.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_voronoj.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_wkb.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_wkt.c \ $(SPATIALITE_PATH)/src/gaiageo/gg_xml.c \ $(SPATIALITE_PATH)/src/geopackage/gaia_cvt_gpkg.c \ $(SPATIALITE_PATH)/src/geopackage/gpkgAddGeometryColumn.c \ $(SPATIALITE_PATH)/src/geopackage/gpkg_add_geometry_triggers.c \ $(SPATIALITE_PATH)/src/geopackage/gpkg_add_spatial_index.c \ $(SPATIALITE_PATH)/src/geopackage/gpkg_add_tile_triggers.c \ $(SPATIALITE_PATH)/src/geopackage/gpkgBinary.c \ $(SPATIALITE_PATH)/src/geopackage/gpkgCreateBaseTables.c \ $(SPATIALITE_PATH)/src/geopackage/gpkgCreateTilesTable.c \ $(SPATIALITE_PATH)/src/geopackage/gpkgCreateTilesZoomLevel.c \ $(SPATIALITE_PATH)/src/geopackage/gpkgGetImageType.c \ $(SPATIALITE_PATH)/src/geopackage/gpkg_get_normal_row.c \ $(SPATIALITE_PATH)/src/geopackage/gpkg_get_normal_zoom.c \ $(SPATIALITE_PATH)/src/geopackage/gpkgInsertEpsgSRID.c \ $(SPATIALITE_PATH)/src/geopackage/gpkgMakePoint.c \ $(SPATIALITE_PATH)/src/md5/gaia_md5.c \ $(SPATIALITE_PATH)/src/md5/md5.c \ $(SPATIALITE_PATH)/src/shapefiles/shapefiles.c \ $(SPATIALITE_PATH)/src/shapefiles/validator.c \ $(SPATIALITE_PATH)/src/spatialite/extra_tables.c \ $(SPATIALITE_PATH)/src/spatialite/mbrcache.c \ $(SPATIALITE_PATH)/src/spatialite/metatables.c \ $(SPATIALITE_PATH)/src/spatialite/se_helpers.c \ $(SPATIALITE_PATH)/src/spatialite/spatialite.c \ $(SPATIALITE_PATH)/src/spatialite/spatialite_init.c \ $(SPATIALITE_PATH)/src/spatialite/srid_aux.c \ $(SPATIALITE_PATH)/src/spatialite/statistics.c \ $(SPATIALITE_PATH)/src/spatialite/table_cloner.c \ $(SPATIALITE_PATH)/src/spatialite/virtualbbox.c \ $(SPATIALITE_PATH)/src/spatialite/virtualdbf.c \ $(SPATIALITE_PATH)/src/spatialite/virtualelementary.c \ $(SPATIALITE_PATH)/src/spatialite/virtualfdo.c \ $(SPATIALITE_PATH)/src/spatialite/virtualgpkg.c \ $(SPATIALITE_PATH)/src/spatialite/virtualnetwork.c \ $(SPATIALITE_PATH)/src/spatialite/virtualshape.c \ $(SPATIALITE_PATH)/src/spatialite/virtualspatialindex.c \ $(SPATIALITE_PATH)/src/spatialite/virtualXL.c \ $(SPATIALITE_PATH)/src/spatialite/virtualxpath.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_00.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_01.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_02.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_03.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_04.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_05.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_06.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_07.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_08.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_09.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_10.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_11.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_12.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_13.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_14.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_15.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_16.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_17.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_18.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_19.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_20.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_21.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_22.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_23.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_24.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_25.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_26.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_27.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_28.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_29.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_30.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_31.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_32.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_33.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_34.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_35.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_36.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_37.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_38.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_39.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_40.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_41.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_42.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_43.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_44.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_45.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_46.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_extra.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_prussian.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_wgs84_00.c \ $(SPATIALITE_PATH)/src/srsinit/epsg_inlined_wgs84_01.c \ $(SPATIALITE_PATH)/src/srsinit/srs_init.c \ $(SPATIALITE_PATH)/src/versioninfo/version.c \ $(SPATIALITE_PATH)/src/virtualtext/virtualtext.c \ $(SPATIALITE_PATH)/src/wfs/wfs_in.c LOCAL_STATIC_LIBRARIES := iconv proj geos libxml2 include $(BUILD_STATIC_LIBRARY) libspatialite-4.3.0a/depcomp0000775000175000017500000004426712544707704013034 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free # Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: libspatialite-4.3.0a/spatialite-sql-latest.html0000664000175000017500000112333212544707704016563 00000000000000 SpatiaLite SQL functions reference list

SpatiaLite 4.3.0          SQL functions reference list

back

SQL Version Info [and build options testing] functions

Function Syntax Summary
spatialite_version spatialite_version( void ) : String returns the current SpatiaLite version as a text string
spatialite_target_cpu spatialite_target_cpu( void ) : String returns the current SpatiaLite Target CPU as a text string
freexl_version freexl_version( void ) : String returns the current FreeXL version as a text string
or NULL if FreeXL is currently unsupported
proj4_version proj4_version( void ) : String returns the current PROJ.4 version as a text string
or NULL if PROJ.4 is currently unsupported
geos_version geos_version( void ) : String returns the current GEOS version as a text string
or NULL if GEOS is currently unsupported
lwgeom_version lwgeom_version( void ) : String returns the current LWGEOM version as a text string
or NULL if LWGEOM is currently unsupported
libxml2_version libxml2_version( void ) : String returns the current LibXML2 version as a text string
or NULL if LibXML2 is currently unsupported
HasIconv HasIconv( void ) : Boolean TRUE if the underlaying library was built enabling ICONV
HasMathSQL HasMathSQL( void ) : Boolean TRUE if the underlaying library was built enabling MATHSQL
HasGeoCallbacks HasGeoCallbacks( void ) : Boolean TRUE if the underlaying library was built enabling GEOCALLBACKS
HasProj HasProj( void ) : Boolean TRUE if the underlaying library was built enabling PROJ
HasGeos HasGeos( void ) : Boolean TRUE if the underlaying library was built enabling GEOS
HasGeosAdvanced HasGeosAdvanced( void ) : Boolean TRUE if the underlaying library was built enabling GEOSADVANCED
HasGeosTrunk HasGeosTrunk( void ) : Boolean TRUE if the underlaying library was built enabling GEOSTRUNK
HasLwGeom HasLwGeom( void ) : Boolean TRUE if the underlaying library was built enabling LWGEOM
HasLibXML2 HasLibXML2( void ) : Boolean TRUE if the underlaying library was built enabling LibXML2
HasEpsg HasEpsg( void ) : Boolean TRUE if the underlaying library was built enabling EPSG
HasFreeXL HasFreeXL( void ) : Boolean TRUE if the underlaying library was built enabling FREEXL
HasGeoPackage HasGeoPackage( void ) : Boolean TRUE if the underlaying library was built enabling GeoPackage support (GPKG))

Generic SQL functions

Function Syntax Summary
CastToInteger CastToInteger( value Generic ) : Integer returns the intput value possibly casted to the Integer data-type: NULL if no conversion is possible.
CastToDouble CastToDouble( value Generic ) : Double precision returns the intput value possibly casted to the Double data-type: NULL if no conversion is possible.
CastToText CastToText( value Generic ) : Text
CastToText( value Generic , zero_pad Integer ) : Text
returns the intput value possibly casted to the Text data-type: NULL if no conversion is possible.
If an optional argument zero_pad is passed and the input value is of the Integer or Double type, then the returned string will be padded using as much trailing ZEROs so to ensure the required length.
CastToBlob CastToBlob( value Generic ) : Blob
CastToBlob( value Generic , hex_input Boolean ) : Blob
returns the intput value possibly casted to the BLOB data-type: if the optional argument hex_input is set to TRUE the input value will be expected to correspond to an HexaDecimal string, e.g. 01ab89EF; if this assumption fails then NULL will be returned.
NULL if no conversion is possible.
ForceAsNull ForceAsNull( val1 Generic , val2 Generic) : Generic if val1 and val2 are equal (and exactly of the same data-type) NULL will be returned; otherwise val1 will be returned absolutely untouched and still preserving its originale data-type.
CreateUUID CreateUUID( void ) : Text returns a Version 4 (random) UUID (Universally unique identifier).
MD5Checksum MD5Checksum( BLOB | TEXT ) : Text returns the MD5 checksum corresponding to the input value.
Will return NULL for non-BLOB or non-TEXT input.
MD5TotalChecksum MD5TotalChecksum( BLOB | TEXT ) : Text returns a cumulative MD5 checksum.
aggregate function
EncodeURL EncodeURL( TEXT ) : Text returns the percent encoded URL corresponding to the input value.
Will return NULL for invalid input.
DecodeURL DecodeURL( TEXT ) : Text returns a plain URL from its corresponding percent encoding.
Will return NULL for invalid input.
DirNameFromPath DirNameFromPath( TEXT ) : Text returns the Directory Name from a relative or absolute Pathname.
Will return NULL for invalid input of for any simple path lacking a Directory.
FullFileNameFromPath FullFileNameFromPath( TEXT ) : Text returns the Full File Name (including an eventual File Extension) from a relative or absolute Pathname.
Will return NULL for invalid input of for any path lacking a File Name.
FileNameFromPath FileNameFromPath( TEXT ) : Text returns the File Name (excluding an eventual File Extension) from a relative or absolute Pathname.
Will return NULL for invalid input of for any path lacking a File Name.
FileExtFromPath FileExtFromPath( TEXT ) : Text returns the File Extension from a relative or absolute Pathname.
Will return NULL for invalid input of for any path lacking a File Name or when no Extension is present.
eval eval( X TEXT [ , Y TEXT ) : Text Evaluate the SQL text in X. Return the results, using string Y as the separator.
If Y is omitted, use a single space character.
Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.

Global settings per connection

Function Syntax Summary
EnableGpkgMode EnableGpkgMode( void ) : void Enables the Geopackage mode
all connections initially start by disabling the GPKG mode, that has always to be explicitly enabled whenever reguired.
Enabling GPKG mode is a supported option only if the currently connected DB-file presents a GPKG layout.
DisableGpkgMode DisableGpkgMode( void ) : void Disables the Geopackage mode
GetGpkgMode GetGpkgMode( void ) : boolean Returns TRUE if the Geopackage mode is currently enabled, otherwise FALSE
EnableGpkgAmphibiousMode EnableGpkgAmphibiousMode( void ) : void Enables the Geopackage amphibious mode
all connections initially start by disabling the amphibious mode, that has always to be explicitly enabled whenever reguired.
Note: GPKG mode and GPKG amphibious mode are mutually exclusive options.
DisableGpkgAmphibiousMode DisableGpkgAmphibiousMode( void ) : void Disables the Geopackage amphibious mode
GetGpkgAmphibiousMode GetGpkgAmphibiousMode( void ) : boolean Returns TRUE if the Geopackage amphibious mode is currently enabled, otherwise FALSE
SetDecimalPrecision SetDecimalPrecision( integer ) : void Explicitly sets the number of decimal digits (precision) to be displayed by ST_AsText() for coordinate values: the standard default setting is 6 decimal digits.
Passing any negative precision will automatically restore the initial default setting.
The spatialite_gui tool will honor this setting for all floating point values to be displayed on the screen.
GetDecimalPrecision GetDecimalPrecision( void ) : integer Returns the currently set decimal precision.
A negative precision identifies the default setting.

SQL math functions

Function Syntax Summary
Abs Abs( x Double precision ) : Double precision returns the absolute value of x
Acos Acos( x Double precision ) : Double precision returns the arc cosine of x, that is, the value whose cosine is x
returns NULL if x is not in the range -1 to 1
Asin Asin( x Double precision ) : Double precision returns the arc sine of x, that is, the value whose sine is x
returns NULL if x is not in the range -1 to 1
Atan Atan( x Double precision ) : Double precision returns the arc tangent of x, that is, the value whose tangent is x
Atan2 Atan2( y Double precision , x Double precision ) : Double precision returns the principal value of the arc tangent of y/x in radians, using the signs of the two arguments to determine the quadrant of the result. The eturn value is in the range[-pi, pi].
Ceil
Ceiling
Ceil( x Double precision ) : Double precision
Ceiling( x Double precision ) : Double precision
returns the smallest integer value not less than x
Cos Cos( x Double precision ) : Double precision returns the cosine of x, where x is given in radians
Cot Cot( x Double precision ) : Double precision returns the cotangent of x, where x is given in radians
Degrees Degrees( x Double precision ) : Double precision returns the argument x, converted from radians to degrees
Exp Exp( x Double precision ) : Double precision returns the value of e (the base of natural logarithms) raised to the power of x
the inverse of this function is Log() (using a single argument only) or Ln()
Floor Floor( x Double precision ) : Double precision returns the largest integer value not greater than x
Ln
Log
Ln( x Double precision ) : Double precision
Log( x Double precision ) : Double precision
returns the natural logarithm of x; that is, the base-e logarithm of x
If x is less than or equal to 0, then NULL is returned
Log Log( b Double precision , x Double precision ) : Double precision returns the logarithm of x to the base b
If x is less than or equal to 0, or if b is less than or equal to 1, then NULL is returned
Log(b, x) is equivalent to Log(x) / Log(b)
Log2 Log2( x Double precision ) : Double precision returns the base-2 logarithm of x
Log2(x) is equivalent to Log(x) / Log(2)
Log10 Log10( x Double precision ) : Double precision returns the base-10 logarithm of x
Log10(x) is equivalent to Log(x) / Log(10)
PI PI( void ) : Double precision returns the value of PI
Pow
Power
Pow( x Double precision , y Double precision ) : Double precision
Power( x Double precision , y Double precision ) : Double precision
returns the value of x raised to the power of y
Radians Radians( x Double precision ) : Double precision returns the argument x, converted from degrees to radians
Sign Sign( x Double precision ) : Double precision returns the sign of the argument as -1, 0, or 1, depending on whether x is negative, zero, or positive.
Sin Sin( x Double precision ) : Double precision returns the sine of x, where x is given in radians
Sqrt Sqrt( x Double precision ) : Double precision returns the square root of a non-negative number x
Stddev_pop Stddev_pop( x Double precision ) : Double precision returns the population standard deviation of the input values
aggregate function
Stddev_samp Stddev_samp( x Double precision ) : Double precision returns the sample standard deviation of the input values
aggregate function
Tan Tan( x Double precision ) : Double precision returns the tangent of x, where x is given in radians
Var_pop Var_pop( x Double precision ) : Double precision returns the population variance of the input values (square of the population standard deviation)
aggregate function
Var_samp Var_samp( x Double precision ) : Double precision returns the sample variance of the input values (square of the sample standard deviation)
aggregate function

SQL functions reporting GEOS / LWGEOM errors and warnings

Function Syntax Summary
GEOS_GetLastWarningMsg GEOS_GetLastWarningMsg( void ) : String GEOS Will return the most recent warning message returned by GEOS (if any).
NULL will be returned if there is no pending GEOS warning.
GEOS_GetLastErrorMsg GEOS_GetLastErrorMsg( void ) : String GEOS Will return the most recent error message returned by GEOS (if any).
NULL will be returned if there is no pending GEOS error.
GEOS_GetLastAuxErrorMsg GEOS_GetLastAuxErrorMsg( void ) : String GEOS Will return the most recent error message (auxiliary) returned by GEOS (if any).
NULL will be returned if there is no pending GEOS (auxiliary) error.
GEOS_GetCriticalPointFromMsg GEOS_GetCriticalPointFromMsg( void ) : Point
GEOS_GetCriticalPointFromMsg( SRID Integer ) : Point
GEOS Will (possibly) return a Point Geometry extracted from the latest error / warning message returned by GEOS.
NULL will be returned if there is no pending GEOS message, or if the current GEOS message doesn't contain a critical Point.
LWGEOM_GetLastWarningMsg LWGEOM_GetLastWarningMsg( void ) : String LWGEOM Will return the most recent warning message returned by LWGEOM (if any).
NULL will be returned if there is no pending LWGEOM warning.
LWGEOM_GetLastErrorMsg LWGEOM_GetLastErrorMsg( void ) : String LWGEOM Will return the most recent error message returned by LWGEOM (if any).
NULL will be returned if there is no pending LWGEOM error.

SQL length/distance unit-conversion functions

Function Syntax Summary
Kilometer CvtToKm( x Double precision ) : Double precision
CvtFromKm( x Double precision ) : Double precision
meters / kilometers
Decimeter CvtToDm( x Double precision ) : Double precision
CvtFromDm( x Double precision ) : Double precision
meters / decimeters
Centimeter CvtToCm( x Double precision ) : Double precision
CvtFromCm( x Double precision ) : Double precision
meters / centimeters
Millimeter CvtToMm( x Double precision ) : Double precision
CvtFromMm( x Double precision ) : Double precision
meters / millimeters
International Nautical Mile CvtToKmi( x Double precision ) : Double precision
CvtFromKmi( x Double precision ) : Double precision
meters / international nautical miles
International Inch CvtToIn( x Double precision ) : Double precision
CvtFromIn( x Double precision ) : Double precision
meters / international inches
International Foot CvtToFt( x Double precision ) : Double precision
CvtFromFt( x Double precision ) : Double precision
meters / international feet
International Yard CvtToYd( x Double precision ) : Double precision
CvtFromYd( x Double precision ) : Double precision
meters / international yards
International Statute Mile CvtToMi( x Double precision ) : Double precision
CvtFromMi( x Double precision ) : Double precision
meters / international statute miles
International Fathom CvtToFath( x Double precision ) : Double precision
CvtFromFath( x Double precision ) : Double precision
meters / international fathoms
International Chain CvtToCh( x Double precision ) : Double precision
CvtFromCh( x Double precision ) : Double precision
meters / international chains
International Link CvtToLink( x Double precision ) : Double precision
CvtFromLink( x Double precision ) : Double precision
meters / international links
U.S. Inch CvtToUsIn( x Double precision ) : Double precision
CvtFromUsIn( x Double precision ) : Double precision
meters / U.S. inches
U.S. Foot CvtToUsFt( x Double precision ) : Double precision
CvtFromUsFt( x Double precision ) : Double precision
meters / U.S. feet
U.S. Yard CvtToUsYd( x Double precision ) : Double precision
CvtFromUsYd( x Double precision ) : Double precision
meters / U.S. yards
U.S. Statute Mile CvtToUsMi( x Double precision ) : Double precision
CvtFromUsMi( x Double precision ) : Double precision
meters / U.S. statute miles
U.S. Chain CvtToUsCh( x Double precision ) : Double precision
CvtFromUsCh( x Double precision ) : Double precision
meters / U.S. chains
Indian Foot CvtToIndFt( x Double precision ) : Double precision
CvtFromIndFt( x Double precision ) : Double precision
meters / indian feet
Indian Yard CvtToIndYd( x Double precision ) : Double precision
CvtFromIndYd( x Double precision ) : Double precision
meters / indian yards
Indian Chain CvtToIndCh( x Double precision ) : Double precision
CvtFromIndCh( x Double precision ) : Double precision
meters / indian chains

SQL conversion functions from DD/DMS notations (longitude/latitude)

Function Syntax Summary
DD to DMS LongLatToDMS( longitude Double precision , latitude Double precision ) : String will return a DMS string (Degrees, Minutes and Seconds) starting from DD (Decimal Degrees) input coordinates
NULL will be returned on invalid input.
DMS to DD LongitudeFromDMS( dms_expression Sting ) : Double precision
LatitudeFromDMS( dms_expression Sting ) : Double precision
will return the DD coordinates from within a DMS expression
NULL will be returned on invalid input.

SQL utility functions for BLOB objects

Function Syntax Summary
IsZipBlob IsZipBlob( content BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid ZIP-compressed file
IsPdfBlob IsPdfBlob( content BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid PDF document
IsGifBlob IsGifBlob( image BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid GIF image
IsPngBlob IsPngBlob( image BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid PNG image
IsTiffBlob IsTiffBlob( image BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid TIFF image
IsJpegBlob IsJpegBlob( image BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid JPEG image
IsExifBlob IsExifBlob( image BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid EXIF image
Please note: any valid EXIF image is a valid JPEG as well
IsExifGpsBlob IsExifGpsBlob( image BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid EXIF-GPS image
Please note: any valid EXIF-GPS image is a valid EXIF and JPEG as well
IsWebpBlob IsWebpBlob( image BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid WebP image
IsJP2Blob IsJP2Blob( image BLOB ) : Integer The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL or not-BLOB argument.
TRUE if this BLOB object corresponds to a valid JP2 [Jpeg2000] image
GetMimeType GetMimeType( payload BLOB ) : String The return type is Text, and could be one of: image/gif, image/png, image/jpeg, image/jp2, image/tiff, image/svg+xml, application/xml, application/zip, application/pdf.
NULL could be returned for an invalid argument or if no valid mime-type is detected.
BlobFromFile BlobFromFile( filepath String ) : BLOB If filepath corresponds to some valid pathname, and the corresponding file can be actually accessed in read mode, then the whole file content will be returned as a BLOB value.
Otherwise NULL will be returned.
Please note: SQLite doesn't support BLOB values bigger than SQLITE_MAX_LENGTH (usually, 1 GB).
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
BlobToFile BlobToFile( payload BLOB , filepath String ) : Integer If payload is of the BLOB-type, and if filepath corresponds to some valid pathname (accessible in write/create mode), then the corresponding file will be created/overwritten so to contain the payload.
The return type is Integer, with a return value of 1 for success, 0 for failure.
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
CountUnsafeTriggers CountUnsafeTriggers( ) : Integer This SQL function checks if the currently connected DB does contain any potentially malicious Trigger; carefully checking this conditions is a minimal precaution expected to be always verified before eventually activating the SPATIALITE_SECURITY=relaxed mode.
The return type is Integer (total count of suspected Triggers); 0 means that the currently connected DB should be considered absolutely safe.

SQL utility functions [non-standard] for geometric objects

Function Syntax OGC
defined
required
module
Summary
GeomFromExifGpsBlob GeomFromExifGpsBlob( image BLOB ) : Geometry base a POINT Geometry will be returned representing the GPS long/lat contained within EXIF-GPS metadata for the BLOB image
NULL will be returned if for any reason it's not possible to build such a POINT
ST_Point ST_Point( x Double precision , y Double precision ) : Geometry base simply an alias-name for MakePoint()
Please note: the SRID argument is never supported by ST_Point()
MakePoint MakePoint( x Double precision , y Double precision , [ , SRID Integer] ) : Geometry base a Geometry will be returned representing the POINT defined by [x y] coordinates
MakePointZ MakePointZ( x Double precision , y Double precision , z Double precision , [ , SRID Integer] ) : Geometry base a Geometry will be returned representing the POINT Z defined by [x y z] coordinates
MakePointM MakePointM( x Double precision , y Double precision , m Double precision , [ , SRID Integer] ) : Geometry base a Geometry will be returned representing the POINT M defined by [x y m] coordinates
MakePointZM MakePointZM( x Double precision , y Double precision , z Double precision , m Double precision [ , SRID Integer] ) : Geometry base a Geometry will be returned representing the POINT ZM defined by [x y z m] coordinates
MakeLine MakeLine( pt1 PointGeometry , pt2 PointGeometry ) : LinestringGeometry base a Linestring Geometry will be returned representing the segment connecting pt1 to pt2
NULL will be returned if any error is encountered
MakeLine MakeLine( geom PointGeometry ) : LinestringGeometry base a Linestring Geometry will be returned connecting all the input Points (accordingly to input sequence)
aggregate function
NULL will be returned if any error is encountered
MakeLine MakeLine( geom MultiPointGeometry , direction Boolean ) : LinestringGeometry base a Linestring Geometry will be returned connecting all the input Points (accordingly to input sequence); direction=FALSE implies reverse order.
Please note: similar to the previuous one, but this one is an ordinary (not aggregate) function; a MultiPoint input is always expected.
NULL will be returned if any error is encountered
MakeCircle MakeCircle( cx Double precision , cy Double precision , radius Double precision [ , SRID Integer [ , step Double precision ] ] ) : Geometry base will return a closed LINESTRING approximating the Circle defined by cx, cy and radius.
The optional argument step if specified defines how many points will be interpolated on the circumference; a point will be set every step degrees.
The implicit default setting corresponds to a point every 10 degrees.
MakeEllipse MakeEllipse( cx Double precision , cy Double precision , x_axis Double precision , y_axis Double precisin [ , SRID Integer [ , step Double precision ] ] ) : Geometry base will return a closed LINESTRING approximating the Ellipse defined by cx, cy and x_axis, y_axis.
The optional argument step if specified defines how many points will be interpolated on the ellipse; a point will be set every step degrees.
The implicit default setting corresponds to a point every 10 degrees.
MakeArc MakeArc( cx Double precision , cy Double precision , radius Double precision , start Double precision , stop Double precision [ , SRID Integer [ , step Double precision ] ] ) : Geometry base will return a LINESTRING approximating the Circular Arc defined by cx, cy and radius; the arc's extremities will be defined by start, stop angles expressed in degrees.
The optional argument step if specified defines how many points will be interpolated on the circumference; a point will be set every step degrees.
The implicit default setting corresponds to a point every 10 degrees.
MakeEllipticArc MakeEllipticArc( cx Double precision , cy Double precision , x_axis Double precision , y_axis Double precision , start Double precision , stop Double precision [ , SRID Integer [ , step Double precision ] ] ) : Geometry base will return a LINESTRING approximating the Elliptic Arc defined by cx, cy and x_axis, y_axis; the arc's extremities will be defined by start, stop angles expressed in degrees.
The optional argument step if specified defines how many points will be interpolated on the ellipse; a point will be set every step degrees.
The implicit default setting corresponds to a point every 10 degrees.
MakeCircularSector MakeCircularSector( cx Double precision , cy Double precision , radius Double precision , start Double precision , stop Double precision [ , SRID Integer [ , step Double precision ] ] ) : Geometry base will return a POLYGON approximating the Circular Sector defined by cx, cy and radius; the arc's extremities will be defined by start, stop angles expressed in degrees.
The optional argument step if specified defines how many points will be interpolated on the circumference; a point will be set every step degrees.
The implicit default setting corresponds to a point every 10 degrees.
MakeEllipticSector MakeEllipticSector( cx Double precision , cy Double precision , x_axis Double precision , y_axis Double precision , start Double precision , stop Double precision [ , SRID Integer [ , step Double precision ] ] ) : Geometry base will return a POLYGON approximating the Elliptic Sector defined by cx, cy and x_axis, y_axis; the arc's extremities will be defined by start, stop angles expressed in degrees.
The optional argument step if specified defines how many points will be interpolated on the ellipse; a point will be set every step degrees.
The implicit default setting corresponds to a point every 10 degrees.
MakeCircularStripe MakeCircularStripe( cx Double precision , cy Double precision , radius_1 Double precision , radius_2 Double precision , start Double precision , stop Double precision [ , SRID Integer [ , step Double precision ] ] ) : Geometry base will return a POLYGON approximating the Circular Stripe delimited by two arcs sharing the same Centre [cx, cy] but having different radii [radius_1, radius_2]; the arc's extremities will be defined by start, stop angles expressed in degrees.
The optional argument step if specified defines how many points will be interpolated on the circumference; a point will be set every step degrees.
The implicit default setting corresponds to a point every 10 degrees.
SquareGrid SquareGrid( geom ArealGeometry , size Double precision [ , edges_only Boolean , [ origing PointGeometry ] ] ) : Geometry
ST_SquareGrid( geom ArealGeometry , size Double precision [ , edges_only Boolean , [ origing PointGeometry ] ] ) : Geometry
GEOS return a grid of square cells (having the edge length of size) precisely covering the input Geometry.
The returned Geometry will usually be of the MultiPolygon type (a collection of Squares), but will be a MultiLinestring if the optional edges_only argument is set to TRUE
If the optional origin argument (expected to be a Point) is not specified then the (0,0) grid origin will be assumed by default.
NULL will be returned if any error is encountered.
TriangularGrid TriangularGrid( geom ArealGeometry , size Double precision [ , edges_only Boolean , [ origing PointGeometry ] ] ) : Geometry
ST_TriangularGrid( geom ArealGeometry , size Double precision [ , edges_only Boolean , [ origing PointGeometry ] ] ) : Geometry
GEOS return a grid of triangular cells (having the edge length of size) precisely covering the input Geometry.
The returned Geometry will usually be of the MultiPolygon type (a collection of Squares), but will be a MultiLinestring if the optional edges_only argument is set to TRUE
If the optional origin argument (expected to be a Point) is not specified then the (0,0) grid origin will be assumed by default.
NULL will be returned if any error is encountered.
HexagonalGrid HexagonalGrid( geom ArealGeometry , size Double precision [ , edges_only Boolean , [ origing PointGeometry ] ] ) : Geometry
ST_HexagonalGrid( geom ArealGeometry , size Double precision [ , edges_only Boolean , [ origing PointGeometry ] ] ) : Geometry
GEOS return a grid of hexagonal cells (having the edge length of size) precisely covering the input Geometry.
The returned Geometry will usually be of the MultiPolygon type (a collection of Squares), but will be a MultiLinestring if the optional edges_only argument is set to TRUE
If the optional origin argument (expected to be a Point) is not specified then the (0,0) grid origin will be assumed by default.
NULL will be returned if any error is encountered.
BuildMbr BuildMbr( x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision [ , SRID Integer] ) : Geometry base [x1 y1] and [x2 y2] are assumed to be Points identifying a line segment; then a Geometry will be returned representing the MBR for this line segment
BuildCircleMbr BuildCircleMbr( x Double precision , y Double precision , radius Double precision [ , SRID Integer] ) : Geometry base [x y] is assumed to be the center of a circle of given radius; then a Geometry will be returned representing the MBR for this circle
Extent Extent( geom Geometry ) : Geometry base return a geometric object representing the bounding box that encloses a set of input values
aggregate function
ToGARS ToGARS( geom Geometry ) : String base geom is expected to represent a POINT (longitude and latitude coordinates); the corresponding GARS area designation code will be returned.
NULL will be returned if any error is encountered.
GARSMbr GARSMbr( code String ) : Geometry base code is assumed to represent a valid GARS area designation code; a Geometry will be returned representing the MBR for the corresponding GARS area.
NULL will be returned if any error is encountered.
MbrMinX MbrMinX( geom Geometry) : Double precision
ST_MinX( geom Geometry) : Double precision
base return the x-coordinate for geom MBR's leftmost side as a double precision number.
NULL will be returned if geom isn't a valid Geometry.
MbrMinY MbrMinY( geom Geometry) : Double precision
ST_MinY( geom Geometry) : Double precision
base return the y-coordinate for geom MBR's lowermost side as a double precision number.
NULL will be returned if geom isn't a valid Geometry.
MbrMaxX MbrMaxX( geom Geometry) : Double precision
ST_MaxX( geom Geometry) : Double precision
base return the x-coordinate for geom MBR's rightmost side as a double precision number.
NULL will be returned if geom isn't a valid Geometry.
MbrMaxY MbrMaxY( geom Geometry) : Double precision
ST_MaxY( geom Geometry) : Double precision
base return the y-coordinate for geom MBR's uppermost side as a double precision number.
NULL will be returned if geom isn't a valid Geometry.
MinZ ST_MinZ( geom Geometry) : Double precision base return the minimum Z-coordinate value for geom as a double precision number.
NULL will be returned if geom isn't a valid Geometry or if geom has no Z dimension.
MaxZ ST_MaxZ( geom Geometry) : Double precision base return the maximum Z-coordinate value for geom as a double precision number.
NULL will be returned if geom isn't a valid Geometry or if geom has no Z dimension.
MinM ST_MinM( geom Geometry) : Double precision base return the minimum M-coordinate value for geom as a double precision number.
NULL will be returned if geom isn't a valid Geometry or if geom has no M dimension.
MaxM ST_MaxM( geom Geometry) : Double precision base return the maximum M-coordinate value for geom as a double precision number.
NULL will be returned if geom isn't a valid Geometry or if geom has no M dimension.

SQL functions for constructing a geometric object given its Well-known Text Representation

Function Syntax OGC
defined
required
module
Summary
GeomFromText GeomFromText( wkt String [ , SRID Integer] ) : Geometry
ST_GeomFromText( wkt String [ , SRID Integer] ) : Geometry
X base construct a geometric object given its Well-known text Representation
ST_WKTToSQL ST_WKTToSQL( wkt String ) : Geometry base SQL/MM compliant: simply an alias name for ST_GeomFromText
Please note: SRID=0 is always assumed.
PointFromText PointFromText( wktPoint String [ , SRID Integer] ) : Point
ST_PointFromText( wktPoint String [ , SRID Integer] ) : Point
X base construct a Point
LineFromText
LineStringFromText
LineFromText( wktLineString String [ , SRID Integer] ) : Linestring
ST_LineFromText( wktLineString String [ , SRID Integer] ) : Linestring
LineStringFromText( wktLineString String [ , SRID Integer] ) : Linestring
ST_LineStringFromText( wktLineString String [ , SRID Integer] ) : Linestring
X base construct a Linestring
PolyFromText
PolygonFromText
PolyFromText( wktPolygon String [ , SRID Integer] ) : Polygon
ST_PolyFromText( wktPolygon String [ , SRID Integer] ) : Polygon
PolygonFromText( wktPolygon String [ , SRID Integer] ) : Polygon
ST_PolygonFromText( wktPolygon String [ , SRID Integer] ) : Polygon
X base construct a Polygon
MPointFromText
MultiPointFromText
MPointFromText( wktMultiPoint String [ , SRID Integer] ) : MultiPoint
ST_MPointFromText( wktMultiPoint String [ , SRID Integer] ) : MultiPoint
MultiPointFromText( wktMultiPoint String [ , SRID Integer] ) : MultiPoint
ST_MultiPointFromText( wktMultiPoint String [ , SRID Integer] ) : MultiPoint
X base construct a MultiPoint
MLineFromText
MultiLineStringFromText
MLineFromText( wktMultiLineString String [ , SRID Integer] ) : MultiLinestring
ST_MLineFromText( wktMultiLineString String [ , SRID Integer] ) : MultiLinestring
MultiLineStringFromText( wktMultiLineString String [ , SRID Integer] ) : MultiLinestring
ST_MultiLineStringFromText( wktMultiLineString String [ , SRID Integer] ) : MultiLinestring
X base construct a MultiLinestring
MPolyFromText
MultiPolygonFromText
MPolyFromText( wktMultiPolygon String [ , SRID Integer] ) : MultiPolygon
ST_MPolyFromText( wktMultiPolygon String [ , SRID Integer] ) : MultiPolygon
MultiPolygonFromText( wktMultiPolygon String [ , SRID Integer] ) : MultiPolygon
ST_MultiPolygonFromText( wktMultiPolygon String [ , SRID Integer] ) : MultiPolygon
X base construct a MultiPolygon
GeomCollFromText
GeometryCollectionFromText
GeomCollFromText( wktGeometryCollection String [ , SRID Integer] ) : GeometryCollection
ST_GeomCollFromText( wktGeometryCollection String [ , SRID Integer] ) : GeometryCollection
GeometryCollectionFromText( wktGeometryCollection String [ , SRID Integer] ) : GeometryCollection
ST_GeometryCollectionFromText( wktGeometryCollection String [ , SRID Integer] ) : GeometryCollection
X base construct a GeometryCollection
BdPolyFromText BdPolyFromText( wktMultilinestring String [ , SRID Integer] ) : Polygon
ST_BdPolyFromText( wktMultilinestring String [ , SRID Integer] ) : Polygon
X GEOS Construct a Polygon given an arbitrary collection of closed linestrings as a MultiLineString text representation.
see also: BuildArea(), Polygonize()
BdMPolyFromText BdMPolyFromText( wktMultilinestring String [ , SRID Integer] ) : MultiPolygon
ST_BdMPolyFromText( wktMultilinestring String [ , SRID Integer] ) : MultiPolygon
X GEOS Construct a MultiPolygon given an arbitrary collection of closed linestrings as a MultiLineString text representation.
see also: BuildArea(), Polygonize()

SQL functions for constructing a geometric object given its Well-known Binary Representation

Function Syntax OGC
defined
required
module
Summary
GeomFromWKB GeomFromWKB( wkbGeometry Binary [ , SRID Integer] ) : Geometry
ST_GeomFromWKB( wkbGeometry Binary [ , SRID Integer] ) : Geometry
X base construct a geometric object given its Well-known binary Representation
ST_WKBToSQL ST_WKBToSQL( wkbGeometry Binary ) : Geometry base SQL/MM compliant: simply an alias name for ST_GeomFromWKB
Please note: SRID=0 is always assumed.
PointFromWKB PointFromWKB( wkbPoint Binary [ , SRID Integer] ) : Point
ST_PointFromWKB( wkbPoint Binary [ , SRID Integer] ) : Point
X base construct a Point
LineFromWKB
LineStringFromWKB
LineFromWKB( wkbLineString Binary [ , SRID Integer] ) : Linestring
ST_LineFromWKB( wkbLineString Binary [ , SRID Integer] ) : Linestring
LineStringFromText( wkbLineString Binary [ , SRID Integer] ) : Linestring
ST_LineStringFromText( wkbLineString Binary [ , SRID Integer] ) : Linestring
X base construct a Linestring
PolyFromWKB
PolygonFromWKB
PolyFromWKB( wkbPolygon Binary [ , SRID Integer] ) : Polygon
ST_PolyFromWKB( wkbPolygon Binary [ , SRID Integer] ) : Polygon
PolygonFromWKB( wkbPolygon Binary [ , SRID Integer] ) : Polygon
ST_PolygonFromWKB( wkbPolygon Binary [ , SRID Integer] ) : Polygon
X base construct a Polygon
MPointFromWKB
MultiPointFromWKB
MPointFromWKB( wkbMultiPoint Binary [ , SRID Integer] ) : MultiPoint
ST_MPointFromWKB( wkbMultiPoint Binary [ , SRID Integer] ) : MultiPoint
MultiPointFromWKB( wkbMultiPoint Binary [ , SRID Integer] ) : MultiPoint ST_MultiPointFromWKB( wkbMultiPoint Binary [ , SRID Integer] ) : MultiPoint
X base construct a MultiPoint
MLineFromWKB
MultiLineStringFromWKB
MLineFromWKB( wkbMultiLineString Binary [ , SRID Integer] ) : MultiLinestring
ST_MLineFromWKB( wkbMultiLineString Binary [ , SRID Integer] ) : MultiLinestring
MultiLineStringFromWKB( wkbMultiLineString Binary [ , SRID Integer] ) : MultiLinestring
ST_MultiLineStringFromWKB( wkbMultiLineString Binary [ , SRID Integer] ) : MultiLinestring
X base construct a MultiLinestring
MPolyFromWKB
MultiPolygonFromWKB
MPolyFromWKB( wkbMultiPolygon Binary [ , SRID Integer] ) : MultiPolygon
ST_MPolyFromWKB( wkbMultiPolygon Binary [ , SRID Integer] ) : MultiPolygon
MultiPolygonFromWKB( wkbMultiPolygon Binary [ , SRID Integer] ) : MultiPolygon
ST_MultiPolygonFromWKB( wkbMultiPolygon Binary [ , SRID Integer] ) : MultiPolygon
X base construct a MultiPolygon
GeomCollFromWKB
GeometryCollectionFromWKB
GeomCollFromWKB( wkbGeometryCollection Binary [ , SRID Integer] ) : GeometryCollection
ST_GeomCollFromWKB( wkbGeometryCollection Binary [ , SRID Integer] ) : GeometryCollection
GeometryCollectionFromWKB( wkbGeometryCollection Binary [ , SRID Integer] ) : GeometryCollection
ST_GeometryCollectionFromWKB( wkbGeometryCollection Binary [ , SRID Integer] ) : GeometryCollection
X base construct a GeometryCollection
BdPolyFromWKB BdPolyFromWKB( wkbMultilinestring Binary [ , SRID Integer] ) : Polygon
ST_BdPolyFromWKB( wkbMultilinestring Binary [ , SRID Integer] ) : Polygon
X GEOS Construct a Polygon given an arbitrary collection of closed linestrings as a MultiLineString binary representation.
see also: BuildArea(), Polygonize()
BdMPolyFromWKB BdMPolyFromWKB( wkbMultilinestring Binary [ , SRID Integer] ) : MultiPolygon
ST_BdMPolyFromWKB( wkbMultilinestring Binary [ , SRID Integer] ) : MultiPolygon
X GEOS Construct a MultiPolygon given an arbitrary collection of closed linestrings as a MultiLineString binary representation.
see also: BuildArea(), Polygonize()

SQL functions for obtaining the Well-known Text / Well-known Binary Representation of a geometric object

Function Syntax OGC
defined
required
module
Summary
AsText AsText( geom Geometry ) : String
ST_AsText( geom Geometry ) : String
X base returns the Well-known Text representation
AsWKT AsWKT( geom Geometry [ , precision Integer ] ) : String base returns the Well-known Text representation
always return strictly conformant 2D WKT
AsBinary AsBinary( geom Geometry ) : Binary
ST_AsBinary( geom Geometry ) : Binary
X base returns the Well-known Binary representation

SQL functions supporting exotic geometric formats

Function Syntax OGC
defined
required
module
Summary
AsSVG AsSVG( geom Geometry [ , relative Integer [ , precision Integer ] ] ) : String base returns the SVG [Scalable Vector Graphics] representation
AsKml AsKml( geom Geometry [ , precision Integer ] ) : String
AsKml( name String, description String, geom Geometry [ , precision Integer ] ) : String
PROJ.4 returns the KML [Keyhole Markup Language] representation
The first form will simply generate the geometry element: the second form will generate a complete KML entity
GeomFromKml GeomFromKml( KmlGeometry String ) : Geometry base construct a geometric object given its KML Representation
AsGml AsGml( geom Geometry [ , precision Integer ] ) : String
AsGml( version Integer, geom Geometry [ , precision Integer ] ) : String
base returns the GML [Geography Markup Language] representation
If version = 3 than GML 3.x is generated, otherwise the output format will be GML 2.x
GeomFromGML GeomFromGML( gmlGeometry String ) : Geometry base construct a geometric object given its GML Representation
AsGeoJSON AsGeoJSON( geom Geometry [ , precision Integer [ , options Integer ] ] ) : String base returns the GeoJSON [Geographic JavaScript Object Notation] representation
options can assume the following values:
  • 0 no options [default]
  • 1 GeoJSON BoundingBox
  • 2 GeoJSON CRS [short version]
  • 3 BoundingBox + short CRS
  • 4 GeoJSON CRS [long version]
  • 5 BoundingBox + long CRS
GeomFromGeoJSON GeomFromGeoJSON( geoJSONGeometry String ) : Geometry base construct a geometric object given its GeoJSON Representation
AsEWKB AsEWKB( geom Geometry ) : String base returns the EWKB [Extended Well Known Binary] representation (PostGIS compatibility)
GeomFromEWKB GeomFromEWKB( ewkbGeometry String ) : Geometry base construct a geometric object given its EWKB Representation
AsEWKT AsEWKT( geom Geometry ) : String base returns the EWKT [Extended Well Known Text] representation (PostGIS compatibility)
GeomFromEWKT GeomFromEWKT( ewktGeometry String ) : Geometry base construct a geometric object given its EWKT Representation
AsFGF AsFGF( geom Geometry ) : Binary base returns the FGF [FDO Geometry Binary Format] representation
GeomFromFGF GeomFromFGF( fgfGeometry Binary [ , SRID Integer] ) : Geometry base construct a geometric object given its FGF binary Representation

SQL functions on type Geometry

Function Syntax OGC
defined
required
module
Summary
Dimension Dimension( geom Geometry ) : Integer
ST_Dimension( geom Geometry ) : Integer
X base returns the dimension of the geometric object, which is less than or equal to the dimension of the coordinate space
CoordDimension CoordDimension( geom Geometry ) : String base returns the dimension model used by the geometric object as:
'XY', 'XYZ', 'XYM' or 'XYZM'
NDims ST_NDims( geom Geometry ) : Integer base returns the number of dimensions used by the geometric object as:
2, 3 or 4
Is3D ST_Is3D( geom Geometry ) : Integer base Checks if geom has the Z dimension.
The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and -1 for UNKNOWN corresponding to a function invocation on invalid arguments.
IsMeasured ST_IsMeasured( geom Geometry ) : Integer base Check if geom has the M dimension.
The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and -1 for UNKNOWN corresponding to a function invocation on invalid arguments.
GeometryType GeometryType( geom Geometry ) : String
ST_GeometryType( geom Geometry ) : String
X base returns the name of the instantiable subtype of Geometry of which this geometric object is a member, as a string
SRID SRID( geom Geometry ) : Integer
ST_SRID( geom Geometry ) : Integer
X base returns the Spatial Reference System ID for this geometric object
SetSRID SetSRID( geom Geometry , SRID Integer ) : Integer base directly sets the Spatial Reference System ID for this geometric object [no reprojection is applied]
The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
IsEmpty IsEmpty( geom Geometry ) : Integer
ST_IsEmpty( geom Geometry ) : Integer
X base The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if this geometric object corresponds to the empty set
IsSimple IsSimple( geom Geometry ) : Integer
ST_IsSimple( geom Geometry ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if this geometric object is simple, as defined in the Geometry Model
IsValid IsValid( geom Geometry ) : Integer
ST_IsValid( geom Geometry ) : Integer
GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if this geometric object does not contains any topological error
IsValidReason IsValidReason( geom Geometry ) : String
ST_IsValidReason( geom Geometry ) : String
GEOS Will return a TEXT string stating if a Geometry is valid and if not valid, a reason why.
NULL will be returned on invalid arguments.
IsValidDetail IsValidDetail( geom Geometry ) : Geometry
ST_IsValidDetail( geom Geometry ) : Geometry
GEOS Will return a Geometry detail (usually a POINT) causing invalidity.
NULL will be returned on invalid arguments, or in the case of a valid Geometry.
Boundary Boundary( geom Geometry ) : Geometry
ST_Boundary( geom Geometry ) : Geometry
X GEOS returns a geometric object that is the combinatorial boundary of g as defined in the Geometry Model
Envelope Envelope( geom Geometry ) : Geometry
ST_Envelope( geom Geometry ) : Geometry
X base returns the rectangle bounding g as a Polygon. The Polygon is defined by the corner points of the bounding box [(MINX, MINY),(MAXX, MINY), (MAXX, MAXY), (MINX, MAXY), (MINX, MINY)].
Expand ST_Expand( geom Geometry , amount Double precision ) : Geometry base returns the rectangle bounding g as a Polygon. The bounding rectangle is expanded in all directions by an amount specified by the second argument.
NPoints ST_NPoints( geom Geometry ) : Integer base return the total number of Points (this including any Linestring/Polygon vertex).
NRings ST_NRings( geom Geometry ) : Integer base return the total number of Rings (this including both Exterior and Interior Rings).
Reverse ST_Reverse( geom Geometry ) : Geometry base returns a new Geometry [if a valid Geometry was supplied], or NULL in any other case.
Any Linestring or Ring will be in reverse order (first vertex will be the last one, and last vertex will be the first one).
ForceLHR ST_ForceLHR( geom Geometry ) : Geometry base returns a new Geometry [if a valid Geometry was supplied], or NULL in any other case.
Any Polygon Ring will be oriented accordingly to Left Hand Rule (Exterior Ring will be clockwise oriented, and Interior Rings will be counter-clockwise oriented).

SQL functions attempting to repair malformed Geometries

Function Syntax OGC
defined
required
module
Summary
SanitizeGeometry SanitizeGeometry( geom Geometry ) : geom Geometry base returns a (possibly) sanitized Geometry [if a valid Geometry was supplied], or NULL in any other case
Please note: current implementations only affects:
  • repeated vertices suppression
  • Ring's closure enforcement

SQL Geometry-compression functions

Function Syntax OGC
defined
required
module
Summary
CompressGeometry CompressGeometry( geom Geometry ) : geom Geometry base returns a compressed Geometry [if a valid Geometry was supplied], or NULL in any other case
Please note: geometry compression only affects LINESTRINGs and POLYGONs, not POINTs
UncompressGeometry UncompressGeometry( geom Geometry ) : geom Geometry base returns an uncompressed Geometry [if a valid Geometry was supplied], or NULL in any other case

SQL Geometry-type casting functions

Function Syntax OGC
defined
required
module
Summary
CastToPoint CastToPoint( geom Geometry ) : geom Geometry base returns a POINT-type Geometry [if type-conversion is possible], or NULL in any other case
can be applied to any Geometry containing only a single POINT and no other elementary sub-geometry
CastToLinestring CastToLinestring( geom Geometry ) : geom Geometry base returns a LINESTRING-type Geometry [if type-conversion is possible], or NULL in any other case
can be applied to any Geometry containing only a single LINESTRING and no other elementary sub-geometry
CastToPolygon CastToPolygon( geom Geometry ) : geom Geometry base returns a POLYGON-type Geometry [if type-conversion is possible], or NULL in any other case
can be applied to any Geometry containing only a single POLYGON and no other elementary sub-geometry
CastToMultiPoint CastToMultiPoint( geom Geometry ) : geom Geometry base returns a MULTIPOINT-type Geometry [if type-conversion is possible], or NULL in any other case
can be applied to any Geometry containing one or more POINT(s) and no other elementary sub-geometry
CastToMultiLinestring CastToMultiLinestring( geom Geometry ) : geom Geometry base returns a MULTILINESTRING-type Geometry [if type-conversion is possible], or NULL in any other case
can be applied to any Geometry containing one or more LINESTRING(s) and no other elementary sub-geometry
CastToMultiPolygon CastToMultiPolygon( geom Geometry ) : geom Geometry base returns a MULTIPOLYGON-type Geometry [if type-conversion is possible], or NULL in any other case
can be applied to any Geometry containing one or more POLYGON(s) and no other elementary sub-geometry
CastToGeometyCollection CastToGeometryCollection( geom Geometry ) : geom Geometry base returns a GEOMETRYCOLLECTION-type Geometry [if type-conversion is possible], or NULL in any other case
can be applied to any valid Geometry
CastToMulti CastToMulti( geom Geometry ) : geom Geometry
ST_Multi( geom Geometry ) : geom Geometry
base returns a MULTIPOINT-, MULTILINESTRING- or MULTIPOLYGON-type Geometry [if type-conversion is possible], or NULL in any other case
  • a MULTIPOINT will be returned for a Geometry containing one or more POINT(s) and no other elementary sub-geometry
  • a MULTILINESTRING will be returned for a Geometry containing one or more LINESTRING(s) and no other elementary sub-geometry
  • a MULTIPOLYGON will be returned for a Geometry containing one or more POLYGON(s) and no other elementary sub-geometry
  • a GEOMETRYCOLLECTION will be returned for any other valid Geometry
CastToSingle CastToSingle( geom Geometry ) : geom Geometry base returns a POINT-, LINESTRING- or POLYGON-type Geometry [if type-conversion is possible], or NULL in any other case
  • a POINT will be returned for a Geometry containing only a single POINT and no other elementary sub-geometry
  • a LINESTRING will be returned for a Geometry containing only a single LINESTRING and no other elementary sub-geometry
  • a POLYGON will be returned for a Geometry containing only a single POLYGON and no other elementary sub-geometry

SQL Space-dimensions casting functions

Function Syntax OGC
defined
required
module
Summary
CastToXY CastToXY( geom Geometry ) : geom Geometry base returns a Geometry using the [XY] space dimension
CastToXYZ CastToXYZ( geom Geometry ) : geom Geometry base returns a Geometry using the [XYZ] space dimension
CastToXYM CastToXYM( geom Geometry ) : geom Geometry base returns a Geometry using the [XYZM] space dimension
CastToXYZM CastToXYZM( geom Geometry ) : geom Geometry base returns a Geometry using the [XYZM] space dimension

SQL functions on type Point

Function Syntax OGC
defined
required
module
Summary
X X( pt Point ) : Double precision
ST_X( pt Point ) : Double precision
X base return the x-coordinate of Point p as a double precision number
Y Y( pt Point ) : Double precision
ST_Y( pt Point ) : Double precision
X base return the y-coordinate of Point p as a double precision number
Z Z( pt Point ) : Double precision
ST_Z( pt Point ) : Double precision
X base return the z-coordinate of Point p as a double precision number
or NULL is no z-coordinate is available
M M( pt Point ) : Double precision
ST_M( pt Point ) : Double precision
X base return the m-coordinate of Point p as a double precision number
or NULL is no m-coordinate is available

SQL functions on type Curve [Linestring or Ring]

Function Syntax OGC
defined
required
module
Summary
StartPoint StartPoint( c Curve ) : Point
ST_StartPoint( c Curve ) : Point
X base return a Point containing the first Point of c
EndPoint EndPoint( c Curve ) : Point
ST_EndPoint( c Curve ) : Point
X base return a Point containing the last Point of c
Length GLength( c Curve ) : Double precision
OpenGis name for this function is Length(), but it conflicts with an SQLite reserved keyword

ST_Length( c Curve ) : Double precision
X GEOS return the length of c
Starting since v.4.0.0 this function will simply consider Linestrings and MultiLinestrings, ignoring any Polygon or MultiPolygon
GLength( c Curve , use_ellipsoid Boolean ) : Double precision
ST_Length( c Curve , use_ellipsoid Boolean ) : Double precision
X GEOS return the length of c (measured in meters).
If the use_ellipsoid argument is set to TRUE the precise (but slower) length will be computed on the Ellipsoid, otherwise will be computed on the Great Cicle (approximative, but faster).
This function only supports Long/Lat coordinates, and will return NULL for any planar CRS
Starting since v.4.0.0 this function will simply consider Linestrings and MultiLinestrings, ignoring any Polygon or MultiPolygon
Perimeter Perimeter( s Surface ) : Double precision ST_Perimeter( s Surface ) : Double precision X GEOS return the perimeter of s
Starting since v.4.0.0 this function will simply consider Polygons and MultiPolygons, ignoring any Linestring or MultiLinestring
Perimeter( s Surface , use_ellipsoid Boolean ) : Double precision
ST_Perimeter( s Surface , use_ellipsoid Boolean ) : Double precision
X GEOS return the perimeter of s (measured in meters).
If the use_ellipsoid argument is set to TRUE the precise (but slower) perimeter will be computed on the Ellipsoid, otherwise will be computed on the Great Cicle (approximative, but faster).
This function only supports Long/Lat coordinates, and will return NULL for any planar CRS
Starting since v.4.0.0 this function will simply consider Polygons and MultiPolygons, ignoring any Linestring or MultiLinestring
Geodesic Length GeodesicLength( c Curve ) : Double precision base If [and only if] the SRID associated with c is a geographic one [i.e. one using longitude and latitude angles], then returns the length of c measured on the Ellipsoid [such length is always expressed in meters]
Otherwise NULL will be returned
Please note: measuring lengths on the Ellipsoid requires complex geodesic calculations, and thus is an intrinsically slow and time consuming task
Great Circle Length GreatCircleLength( c Curve ) : Double precision base If [and only if] the SRID associated with c is a geographic one [i.e. one using longitude and latitude angles], then returns the length of c measured on the Great Circle [such length is always expressed in meters]
Otherwise NULL will be returned
Please note: lengths measured on the Great Circle are less precise than lengths measured on the Ellipsoid using complex geodesic calculations; but they are by far quickest to compute
IsClosed IsClosed( c Curve ) : Integer
ST_IsClosed( c Curve ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;
return TRUE if c is closed, i.e., if StartPoint(c) = EndPoint(c)
IsRing IsRing( c Curve ) : Integer
ST_IsRing( c Curve ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
return TRUE if c is a ring, i.e., if c is closed and simple. A simple Curve does not pass through the same Point more than once.
PointOnSurface PointOnSurface( s Surface/Curve ) : Point
ST_PointOnSurface( s Surface/Curve ) : Point
X GEOS return a Point guaranteed to lie on the Surface (or Curve)
Simplify Simplify( c Curve , tolerance Double precision ) : Curve
ST_Simplify( c Curve , tolerance Double precision ) : Curve
ST_Generalize( c Curve , tolerance Double precision ) : Curve
GEOS return a geometric object representing a simplified version of c applying the Douglas-Peukert algorithm with given tolerance
SimplifyPreserveTopology SimplifyPreserveTopology( c Curve , tolerance Double precision ) : Curve
ST_SimplifyPreserveTopology( c Curve , tolerance Double precision ) : Curve
GEOS return a geometric object representing a simplified version of c applying the Douglas-Peukert algorithm with given tolerance and respecting topology

SQL functions on type LineString

Function Syntax OGC
defined
required
module
Summary
NumPoints NumPoints( line LineString ) : Integer
ST_NumPoints( line LineString ) : Integer
X base return the number of Points in the LineString
PointN PointN( line LineString , n Integer ) : Point
ST_PointN( line LineString , n Integer ) : Point
X base return a Point containing Point n of line
AddPoint AddPoint( line LineString , point Point [ , position Integer ] ) : Linestring
ST_AddPoint( line LineString , point Point [ , position Integer ] ) : Linestring
base returns a new Linestring by adding a new Point into the input Linestring immediately before position (zero-based index).
A negative position (default) means appending the new Point to the end of the input Linestring.
NULL will be returned if any error is encountered.
SetPoint SetPoint( line LineString , position Integer , point Point ) : Linestring
ST_SetPoint( line LineString , position Integer , point Point ) : Linestring
base returns a new Linestring by replacing the Point at position (zero-based index).
NULL will be returned if any error is encountered.
SetStartPoint SetStartPoint( line LineString , point Point ) : Linestring
ST_SetStartPoint( line LineString , point Point ) : Linestring
base returns a new Linestring by replacing its StartPoint.
NULL will be returned if any error is encountered.
SetEndPoint SetEndPoint( line LineString , point Point ) : Linestring
ST_SetEndtPoint( line LineString , point Point ) : Linestring
base returns a new Linestring by replacing its EndPoint.
NULL will be returned if any error is encountered.
RemovePoint RemovePoint( line LineString , position Integer ) : Linestring
ST_RemovePoint( line LineString , position Integer ) : Linestring
base returns a new Linestring by removing the Point at position (zero-based index).
NULL will be returned if any error is encountered.

SQL functions on type Surface [Polygon or Ring]

Function Syntax OGC
defined
required
module
Summary
Centroid Centroid( s Surface ) : Point
ST_Centroid( s Surface ) : Point
X GEOS return the centroid of s, which may lie outside s
Area Area( s Surface ) : Double precision
ST_Area( s Surface ) : Double precision
X GEOS return the area of s
Area( s Surface , use_ellipsoid Boolean ) : Double precision
ST_Area( s Surface , use_ellipsoid Boolean ) : Double precision
X LWGEOM return the area of s (measured in meters).
If the use_ellipsoid argument is set to TRUE the precise (but slower) area will be computed on the Ellipsoid, otherwise will be computed on the Sphere (approximative, but faster).
This function only supports Long/Lat coordinates, and will return NULL for any planar CRS

SQL functions on type Polygon

Function Syntax OGC
defined
required module Summary
ExteriorRing ExteriorRing( polyg Polygon ) : LineString
ST_ExteriorRing( polyg Polygon ) : LineString
X base return the exteriorRing of p
NumInteriorRing
NumInteriorRings
NumInteriorRing( polyg Polygon ) : Integer
NumInteriorRings( polyg Polygon ) : Integer
ST_NumInteriorRing( polyg Polygon ) : Integer
X base return the number of interiorRings
InteriorRingN InteriorRingN( polyg Polygon , n Integer ) : LineString
ST_InteriorRingN( polyg Polygon , n Integer ) : LineString
X base return the nth interiorRing. The order of Rings is not geometrically significant.

SQL functions on type GeomCollection

Function Syntax OGC
defined
required
module
Summary
NumGeometries NumGeometries( geom GeomCollection ) : Integer
ST_NumGeometries( geom GeomCollection ) : Integer
X base return the number of individual Geometries
GeometryN GeometryN( geom GeomCollection , n Integer ) : Geometry
ST_GeometryN( geom GeomCollection , n Integer ) : Geometry
X base return the nth geometric object in the collection. The order of the elements in the collection is not geometrically significant.

SQL functions that test approximate spatial relationships via MBRs

Function Syntax OGC
defined
required
module
Summary
MbrEqual MbrEqual( geom1 Geometry , geom2 Geometry ) : Integer base The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if g1 and g2 have equal MBRs
MbrDisjoint MbrDisjoint( geom1 Geometry , geom2 Geometry ) : Integer base The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if the intersection of g1 and g2 MBRs is the empty set
MbrTouches MbrTouches( geom1 Geometry , geom2 Geometry ) : Integer base The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if the only Points in common between g1 and g2 MBRs lie in the union of the boundaries of g1 and g2
MbrWithin MbrWithin( geom1 Geometry , geom2 Geometry ) : Integer base The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if g1 MBR is completely contained in g2 MBR
MbrOverlaps MbrOverlaps( geom1 Geometry , geom2 Geometry ) : Integer base The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if the intersection of g1 and g2 MBRs results in a value of the same dimension as g1 and g2 that is different from both g1 and g2
MbrIntersects MbrIntersects( geom1 Geometry , geom2 Geometry ) : Integer base The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;
convenience predicate: TRUE if the intersection of g1 and g2 MBRs is not empty
EnvelopesIntersects ST_EnvIntersects( geom1 Geometry , geom2 Geometry ) : Integer
ST_EnvelopesIntersects( geom1 Geometry , geom2 Geometry ) : Integer
ST_EnvIntersects( geom1 Geometry , x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision ) : Integer
ST_EnvelopesIntersects( geom1 Geometry , x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision ) : Integer
base The first form simply is an alias name for MbrIntersects; the other form allows to define the second MBR by two extreme points [x1, y1] and [x2, y2].
The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on invalid arguments;
convenience predicate: TRUE if the intersection of both MBRs is not empty
MbrContains MbrContains( geom1 Geometry , geom2 Geometry ) : Integer base The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;
convenience predicate: TRUE if g2 MBR is completely contained in g1 MBR

SQL functions that test spatial relationships

Function Syntax OGC
defined
required
module
Summary
Equals Equals( geom1 Geometry , geom2 Geometry ) : Integer
ST_Equals( geom1 Geometry , geom2 Geometry ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if g1 and g2 are equal
Disjoint Disjoint( geom1 Geometry , geom2 Geometry ) : Integer
ST_Disjoint( geom1 Geometry , geom2 Geometry ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if the intersection of g1 and g2 is the empty set
Touches Touches( geom1 Geometry , geom2 Geometry ) : Integer
ST_Touches( geom1 Geometry , geom2 Geometry ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if the only Points in common between g1 and g2 lie in the union of the boundaries of g1 and g2
Within Within( geom1 Geometry , geom2 Geometry ) : Integer
ST_Within( geom1 Geometry , geom2 Geometry ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if g1 is completely contained in g2
Overlaps Overlaps( geom1 Geometry , geom2 Geometry ) : Integer
ST_Overlaps( geom1 Geometry , geom2 Geometry ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if the intersection of g1 and g2 results in a value of the same dimension as g1 and g2 that is different from both g1 and g2
Crosses Crosses( geom1 Geometry , geom2 Geometry ) : Integer
ST_Crosses( geom1 Geometry , geom2 Geometry ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
TRUE if the intersection of g1 and g2 results in a value whose dimension is less than the maximum dimension of g1 and g2 and the intersection value includes Points interior to both g1 and g2, and the intersection value is not equal to either g1 or g2
Intersects Intersects( geom1 Geometry , geom2 Geometry ) : Integer
ST_Intersects( geom1 Geometry , geom2 Geometry ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;
convenience predicate: TRUE if the intersection of g1 and g2 is not empty
Contains Contains( geom1 Geometry , geom2 Geometry ) : Integer
ST_Contains( geom1 Geometry , geom2 Geometry ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;
convenience predicate: TRUE if g2 is completely contained in g1
Covers Covers( geom1 Geometry , geom2 Geometry ) : Integer
ST_Covers( geom1 Geometry , geom2 Geometry ) : Integer
GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;
convenience predicate: TRUE if g1 completely covers g2
CoveredBy CoveredBy( geom1 Geometry , geom2 Geometry ) : Integer
ST_CoveredBy( geom1 Geometry , geom2 Geometry ) : Integer
GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;
convenience predicate: TRUE if g1 is completely covered by g2
Relate Relate( geom1 Geometry , geom2 Geometry , patternMatrix String ) : Integer
ST_Relate( geom1 Geometry , geom2 Geometry , patternMatrix String ) : Integer
X GEOS The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments;
returns TRUE if the spatial relationship specified by the patternMatrix holds

SQL functions for distance relationships

Function Syntax OGC
defined
required
module
Summary
Distance Distance( geom1 Geometry , geom2 Geometry ) : Double precision
ST_Distance( geom1 Geometry , geom2 Geometry ) : Double precision
X GEOS return the distance between geom1 and geom2 (always measured in CRS units).
Distance( geom1 Geometry , geom2 Geometry , use_ellipsoid Boolean ) : Double precision
ST_Distance( geom1 Geometry , geom2 Geometry , use_ellipsoid Boolean ) : Double precision
X GEOS return the distance between geom1 and geom2 (measured in meters).
If the use_ellipsoid argument is set to TRUE the precise (but slower) distance will be computed on the Ellipsoid, otherwise will be computed on the Great Cicle (approximative, but faster).
This function only supports Long/Lat coordinates, and will return NULL for any planar CRS
PtDistWithin PtDistWithin( geom1 Geometry , geom2 Geometry, range Double precision [, use_spheroid Integer ] ) : Integer PROJ.4 return TRUE (1) if the distance between geom1 and geom2 is within the given range.
Usually distances are expressed in the length unit corresponding to the geoms own SRID: but if both geoms are simple POINTs and their SRID is 4326 (i.e. WGS84), then distances are expressed in meters.
In this later case the optional arg use_spheroid can be used to select the distance algorithm to be used: is use_spheroid = 1 the slowest but most accurate geodesic distance will be evaluated: in any other case the simplest great circle distance will be used instead

SQL functions that implement spatial operators

Function Syntax OGC
defined
required
module
Summary
Intersection Intersection( geom1 Geometry , geom2 Geometry ) : Geometry
ST_Intersection( geom1 Geometry , geom2 Geometry ) : Geometry
X GEOS return a geometric object that is the intersection of geometric objects geom1 and geom2
Difference Difference( geom1 Geometry , geom2 Geometry ) : Geometry
ST_Difference( geom1 Geometry , geom2 Geometry ) : Geometry
X GEOS return a geometric object that is the closure of the set difference of geom1 and geom2
GUnion GUnion( geom1 Geometry , geom2 Geometry ) : Geometry
OpenGis name for this function is Union(), but it conflicts with an SQLite reserved keyword

ST_Union( geom1 Geometry , geom2 Geometry ) : Geometry
X GEOS return a geometric object that is the set union of geom1 and geom2
GUnion GUnion( geom Geometry ) : Geometry
ST_Union( geom Geometry ) : Geometry
X GEOS return a geometric object that is the set union of input values aggregate function
SymDifference SymDifference( geom1 Geometry , geom2 Geometry ) : Geometry
ST_SymDifference( geom1 Geometry , geom2 Geometry ) : Geometry
X GEOS return a geometric object that is the closure of the set symmetric difference of geom1 and geom2 (logical XOR of space)
Buffer Buffer( geom Geometry , dist Double precision [ , quadrantsegments Integer ] ) : Geometry
ST_Buffer( geom Geometry , dist Double precision [ , quadrantsegments Integer ] ) : Geometry
X GEOS return a geometric object defined by buffering a distance d around geom, where dist is in the distance units for the Spatial Reference of geom.
the optional quadrantsegments argument specifies the number of segments used to approximate a quarter circle (default is 30).
ConvexHull ConvexHull( geom Geometry ) : Geometry
ST_ConvexHull( geom Geometry ) : Geometry
X GEOS return a geometric object that is the convex hull of geom

SQL functions that implement spatial operators
[GEOS specific features]

HausdorffDistance HausdorffDistance( geom1 Geometry , geom2 Geometry ) : Double precision
ST_HausdorffDistance( geom1 Geometry , geom2 Geometry ) : Double precision
GEOS return the Hausdorff distance between geom1 and geom2
learn more
OffestCurve OffsetCurve( geom Curve , radius Double precision ) : Curve
ST_OffsetCurve( geom Curve , radius Double precision ) : Curve
GEOS return a geometric object representing the corresponding left-sided (positive radius) or right-sided (negative radius) offset curve
NULL is returned whenever is not possible deriving an offset curve from the original geometry
[a single not-closed LINESTRING is expected as input]
SingleSidedBuffer SingleSidedBuffer( geom Curve , radius Double precision , left_or_right Integer ) : Curve
ST_SingleSidedBuffer( geom Curve , radius Double precision , left_or_right Integer ) : Curve
GEOS return a geometric object representing the corresponding left- (or right-sided) single-sided buffer
NULL is returned whenever is not possible deriving a single-sided buffer from the original geometry
[a single not-closed LINESTRING is expected as input]
SharedPaths SharedPaths( geom1 Geometry , geom2 Geomety ) : Geometry
ST_SharedPaths( geom1 Geometry , geom2 Geomety ) : Geometry
GEOS return a geometric object (of the MULTILINESTRING type) representing any common lines shared by both geometries
NULL is returned is no common line exists
Line_Interpolate_Point Line_Interpolate_Point( line Curve , fraction Double precision ) : Point
ST_Line_Interpolate_Point( line Curve , fraction Double precision ) : Point
GEOS return a point interpolated along a line.
Second argument (between 0.0 and 1.0) representing fraction of total length of linestring the point has to be located.
NULL is returned for invalid arguments
Line_Interpolate_Equidistant_Points Line_Interpolate_Equidistant_Points( line Curve , distance Double precision) : MultiPoint
ST_Line_Interpolate_Equidistant_Points( line Curve , distance Double precision ) : MultiPoint
GEOS return a set of equidistant points interpolated along a line; the returned geometry always corresponds to a MULTIPOINT supporting the M coordinate (representing the progressive distance for each interpolated Point).
Second argument represents the regular distance between interpolated points.
NULL is returned for invalid arguments
Line_Locate_Point Line_Locate_Point( line Curve , point Point ) : Double precision
ST_Line_Locate_Point( line Curve , point Point ) : Double precision
GEOS return a number (between 0.0 and 1.0) representing the location of the closest point on LineString to the given Point, as a fraction of total 2d line length.
NULL is returned for invalid arguments
Line_Substring Line_Substring( line Curve , start_fraction Double precision , end_fraction Double precision ) : Curve
ST_Line_Substring( line Curve , start_fraction Double precision , end_fraction Double precision ) : Curve
GEOS Return a Linestring being a substring of the input one starting and ending at the given fractions of total 2d length.
Second and third arguments are expected to be in the range between 0.0 and 1.0.
NULL is returned for invalid arguments
ClosestPoint ClosesetPoint( geom1 Geometry , geom2 Geometry ) : Point
ST_ClosesetPoint( geom1 Geometry , geom2 Geometry ) : Point
GEOS Returns the Point on geom1 that is closest to geom2.
NULL is returned for invalid arguments (or if distance is ZERO)
ShortestLine ShortestLine( geom1 Geometry , geom2 Geometry ) : Curve
ST_ShortestLine( geom1 Geometry , geom2 Geometry ) : Curve
GEOS Returns the shortest line between two geometries.
NULL is returned for invalid arguments (or if distance is ZERO)
Snap Snap( geom1 Geometry , geom2 Geometry , tolerance Double precision ) : Geometry
ST_Snap( geom1 Geometry , geom2 Geometry , tolerance Double precision ) : Geometry
GEOS Returns a new Geometry representing a modified geom1, so to "snap" vertices and segments to geom2 vertices; a snap distance tolerance is used to control where snapping is performed.
NULL is returned for invalid arguments
Collect Collect( geom1 Geometry , geom2 Geometry ) : Geometry
ST_Collect( geom1 Geometry , geom2 Geometry ) : Geometry
GEOS a generic Geometry (possibly a GEOMETRYCOLLECTION) will be returned merging geom1 and geom2
NULL will be returned if any error is encountered
Collect Collect( geom Geometry ) : Geometry
ST_Collect( geom Geometry ) : Geometry
GEOS a generic Geometry (possibly a GEOMETRYCOLLECTION) will be returned merging input Geometries all together
aggregate function
NULL will be returned if any error is encountered
LineMerge LineMerge( geom Geometry ) : Geometry
ST_LineMerge( geom Geometry ) : Geometry
GEOS a Geometry (actually corresponding to a LINESTRING or MULTILINESTRING) will be returned.
The input Geometry is expected to represent a LINESTRING or a MULTILINESTRING.
The input Geometry can be an arbitrary collection of sparse line fragments: this function will then try to (possibly) reassemble them into one (or more) Linestring(s).
NULL will be returned if any error is encountered
BuildArea BuildArea( geom Geometry ) : Geometry
ST_BuildArea( geom Geometry ) : Geometry
GEOS a Geometry (actually corresponding to a POLYGON or MULTIPOLYGON) will be returned.
The input Geometry is expected to represent a LINESTRING or a MULTILINESTRING.
The input Geometry can be an arbitrary collection of sparse Linestrings: this function will then try to (possibly) reassemble them into one (or more) polygon(s).
NULL will be returned if any error is encountered
Polygonize Polygonize( geom Geometry ) : Geometry
ST_Polygonize( geom Geometry ) : Geometry
GEOS Exactly the same as ST_BuildArea, but implemented as an aggregate function.
NULL will be returned if any error is encountered
MakePolygon MakePolygon( geom1 Geometry [ , geom2 Geometry ] ) : Geometry
ST_MakePolygon( geom1 Geometry [ , geom2 Geometry ] ) : Geometry
base Kind of lightweight/simplified ST_BuildArea: the first input Geometry is always expected to represent a closed LINESTRING assumed to identify the output polygon's Exterior Ring.
The second input Geometry (if any) is expected to be a LINESTRING or MULTILINESTRING identifying any polygon's Interior Ring (and all them are expected to be correctly closed).
Please note well: this function doesn't perform any internal topology check, so it could possibly return an invalid polygon on invalid input.
NULL will be returned if any error is encountered
UnaryUnion UnaryUnion( geom Geometry ) : Geometry
ST_UnaryUnion( geom Geometry ) : Geometry
GEOS Exactely the same as ST_Union, but applied to a single Geometry.
(set union of elementary Geometries within a MULTI- or GEOMETRYCOLLECTION complex Geometry)
NULL will be returned if any error is encountered
DissolveSegments DissolveSegments( geom Geometry ) : Geometry
ST_DissolveSegments( geom Geometry ) : Geometry
base a Geometry (actually corresponding to a LINESTRING, MULTILINESTRING or GEOMETRYCOLLECTION) will be returned.
The input Geometry is arbitrary: any POINT will remain unaffected, but any LINESTRING or RING will be dissolved into elementary segments.
NULL will be returned if any error is encountered
DissolvePoints DissolvePoints( geom Geometry ) : Geometry
ST_DissolvePoints( geom Geometry ) : Geometry
base a Geometry (actually corresponding to a POINT or MULTIPOINT) will be returned.
The input Geometry is arbitrary: any POINT will remain unaffected, but any LINESTRING or RING will be dissolved into elementary Points corresponding to each Vertex.
NULL will be returned if any error is encountered
LinesFromRings LinesFromRings( geom Geometry ) : Geometry
ST_LinesFromRings( geom Geometry ) : Geometry
base a Geometry (actually corresponding to a LINESTRING or MULTILINESTRING) will be returned.
The input Geometry is expected to be a POLYGON or MULTIPOLYGON; any RING will then be transformed into the corresponding LINESTRING.
NULL will be returned if any error is encountered
LinesCutAtNodes LinesCutAtNodes( geom1 Geometry , geom2 Geometry ) : Geometry
ST_LinesCutAtNodes( geom1 Geometry , geom2 Geometry ) : Geometry
base a Geometry (actually corresponding to a LINESTRING or MULTILINESTRING) will be returned.
The first input Geometry is expected to be a LINESTRING or MULTILINESTRING (Lines); the second input Geometry is expected to be a POINT or MULTIPOINT (Nodes).
any Line will then be possibly split in two halves where some vertex exactly intercepts a Node.
NULL will be returned if any error is encountered
RingsCutAtNodes RingsCutAtNodes( geom Geometry ) : Geometry
ST_RingsCutAtNodes( geom Geometry ) : Geometry
base a Geometry (actually corresponding to a LINESTRING or MULTILINESTRING) will be returned.
The input Geometry is expected to be a POLYGON or MULTIPOLYGON (Rings); any self-intersection or intersection between Rings is assumed to represent a Node.
any Ring will then be possibly split in two halves where some vertex exactly intercepts a Node.
NULL will be returned if any error is encountered
CollectionExtract CollectionExtract( geom Geometry , type Integer ) : Geometry
ST_CollectionExtract( geom Geometry , type Integer ) : Geometry
base Given any arbitrary GEOMETRY will return a derived geometry consisting only of the specified type. Sub-geometries that are not the specified type are ignored.
  • 1 = POINT-type
  • 2 = LINESTRING-type
  • 3 = POLYGON-type
NULL will be returned if any error is encountered (or when no item of required type is found)
The Type of the returned Geometry could be e.g. POINT or MULTIPOINT depending on actual items count.
ExtractMultiPoint ExtractMultiPoint( geom Geometry ) : Geometry base Given any arbitrary GEOMETRY will return a derived MULTIPOINT geometry. Sub-geometries not being of the POINT type will be ignored.
NULL will be returned if any error is encountered (or when no POINT is found).
ExtractMultiLinestring ExtractMultiLinestring( geom Geometry ) : Geometry base Given any arbitrary GEOMETRY will return a derived MULTILINESTRING geometry. Sub-geometries not being of the LINESTRING type will be ignored.
NULL will be returned if any error is encountered (or when no LINESTRING is found).
ExtractMultiPolygon ExtractMultiPolygon( geom Geometry ) : Geometry base Given any arbitrary GEOMETRY will return a derived MULTIPOLYGON geometry. Sub-geometries not being of the POLYGON type will be ignored.
NULL will be returned if any error is encountered (or when no POLYGON is found).
LocateAlongMeasure ST_Locate_Along_Measure( geom Geometry , m_value Double precision ) : Geometry
ST_LocateAlong( geom Geometry , m_value Double precision ) : Geometry
base Return a derived geometry collection value with elements that match the specified measure.
NULL will be returned if any error is encountered (or when no element corresponding to the given measure is found).
Please note: NULL will be returned if geom doesn't contain M-dimension, or if geom contains a Polygon, or if geom is a GeometryCollection.
LocateBetweenMeasures ST_Locate_Between_Measures( geom Geometry , m_start Double precision , m_end Double precision ) : Geometry
ST_LocateBetween( geom Geometry , m_start Double precision , m_end Double precision ) : Geometry
base Return a derived geometry collection value with elements that match the specified range of measures.
NULL will be returned if any error is encountered (or when no element corresponding to the given range of measures is found).
Please note: NULL will be returned if geom doesn't contain M-dimension, or if geom contains a Polygon, or if geom is a GeometryCollection.

SQL functions that implement spatial operators
[GEOS advanced features]

Function Syntax OGC
defined
required
module
Summary
DelaunayTriangulation DelaunayTriangulation( geom Geometry [ , edges_only Boolean [ , tolerance Double precision ] ] ) : Geometry
ST_DelaunayTriangulation( geom Geometry [ , edges_only Boolean [ , tolerance Double precision ] ] ) : Geometry
GEOS-advanced return a geometric object representing the Delaunay Triangulation corresponding to the input Geometry
The input Geometry could have any arbitrary type; eventually all Linestring's / Polygon's vertices will be dissolved into Points, so to implicitly always get a MultiPoint.
The returned Geometry will usually be of the MultiPolygon type (a collection of Triangles), but will be a MultiLinestring if the optional edges_only argument is set to TRUE
The optional argument tolerance is intended to normalize the input Geometry, suppressing repeated (or too close) Points.
NULL is returned on failure.
VoronojDiagram VoronojDiagram( geom Geometry [ , edges_only Boolean [ , frame_extra_size Double precision [ , tolerance Double precision ] ] ] ) : Geometry
ST_VoronojDiagram( geom Geometry [ , edges_only Boolean [ , frame_extra_size Double precision [ , tolerance Double precision ] ] ] ) : Geometry
GEOS-advanced return a geometric object representing the Voronoj Diagram corresponding to the input Geometry
The input Geometry could have any arbitrary type; eventually all Linestring's / Polygon's vertices will be dissolved into Points, so to implicitly always get a MultiPoint.
The returned Geometry will usually be of the MultiPolygon type, but will be a MultiLinestring if the optional edges_only argument is set to TRUE
The optional argument extra_frame_size allows to arbitrarily set the percent extension of the bounding frame: the default value is 5%.
The optional argument tolerance is intended to normalize the input Geometry, suppressing repeated (or too close) Points.
NULL is returned on failure.
ConcaveHull ConcaveHull( geom Geometry [ , factor Double precision [ , allow_holes Boolean [ , tolerance Double precision ] ] ] ) : Geometry
ST_ConcaveHull( geom Geometry [ , factor Double precision [ , allow_holes Boolean [ , tolerance Double precision ] ] ] ) : Geometry
GEOS-advanced return a geometric object representing the ConcaveHull corresponding to the input Geometry
The input Geometry could have any arbitrary type; eventually all Linestring's / Polygon's vertices will be dissolved into Points, so to implicitly always get a MultiPoint.
The returned Geometry will always be of the Polygon or MultiPolygon type.
The default factor applies a filtering; by declaring some lower factor you can get a more aggressive filtering effect.
By setting the optional allow_holes argument to TRUE all interior holes will be preserved.
The optional argument tolerance is intended to normalize the input Geometry, suppressing repeated (or too close) Points.
NULL is returned on failure.

SQL functions that implement spatial operators
[LWGEOM features]

Function Syntax OGC
defined
required
module
Summary
MakeValid MakeValid( geom Geometry ) : Geometry
ST_MakeValid( geom Geometry ) : Geometry
LWGEOM return a geometric object representing the repaired version of the input Geometry.
If the input Geometry was already valid, then it will be returned exactly as it was.
NULL is returned on failure.
MakeValidDiscarded MakeValidDiscarded( geom Geometry ) : Geometry
ST_MakeValidDiscarded( geom Geometry ) : Geometry
LWGEOM return a geometric object containing all elements that would be eventually discarded by ST_MakeValid() while validating the same input Geometry.
NULL is returned on failure, or if no discarded item exists.
Segmentize Segmentize( geom Geometry, dist Double precision ) : Geometry
ST_Segmentize( geom Geometry , dist Double precision ) : Geometry
LWGEOM return a new Geometry corresponding to the input Geometry; as much Linestring / Ring vertices as required will be eventually interpolated so to ensure that no segment will be longer than dist.
NULL is returned on failure.
Split Split( geom Geometry, blade Geometry ) : Geometry
ST_Split( geom Geometry , blade Geometry ) : Geometry
LWGEOM return a new Geometry collecting all items resulting by splitting the input Geometry by the blade.
NULL is returned on failure.
SplitLeft SplitLeft( geom Geometry, blade Geometry ) : Geometry
ST_SplitLeft( geom Geometry , blade Geometry ) : Geometry
LWGEOM return a new Geometry collecting all items resulting by splitting the input Geometry by the blade and falling on the left side.
All items not affected by the split operation (i.e. not intersecting the blade) will be returned into the left collection.
NULL is returned on failure.
SplitRight SplitRight( geom Geometry, blade Geometry ) : Geometry
ST_SplitRight( geom Geometry , blade Geometry ) : Geometry
LWGEOM return a new Geometry collecting all items resulting by splitting the input Geometry by the blade and falling on the right side.
NULL is returned on failure (or if the right side is empty).
Azimuth Azimuth( pt1 Geometry, pt2 Geometry ) : Double precision
ST_Azimuth( pt1 Geometry , pt2 Geometry ) : Double precision
LWGEOM return the angle (in radians) from the horizontal of the vector defined by pt1 and pt2.
Both pt1 and pt2 are expected to be simple Points.
Starting since 4.1.0 if both points supports long/lat coords the returned Azimuth will be precisely computed on the ellipsoid.
NULL is returned on failure.
On the clock: 12=0; 3=PI/2; 6=PI; 9=3PI/2
Project Project( start_point Geometry, distance Double precision, azimuth Double precision ) : Geometry
ST_Project( start_point Geometry, distance Double precision, azimuth Double precision ) : Geometry
LWGEOM return a new Point projected from a start point using a bearing and distance.
start_point is expected to be simple long/lat Point.
distance is expected to be measured in meters; azimuth (aka bearing or heading) has the same identical meaning as in ST_Azimuth().
NULL is returned on failure or on invalid arguments.
SnapToGrid SnapToGrid( geom Geometry , size Double precision ) : Geometry
SnapToGrid( geom Geometry , size_x Double precision , size_y Double precision ) : Geometry
SnapToGrid( geom Geometry , origin_x Double precision , origin_y Double precision , size_x Double precision , size_y Double precision ) : Geometry
SnapToGrid( geom Geometry , origin Geometry , size_x Double precision , size_y Double precision , size_z Double precision , size_m Double precision ) : Geometry
ST_SnapToGrid( geom Geometry , size Double precision ) : Geometry
ST_SnapToGrid( geom Geometry , size_x Double precision , size_y Double precision ) ) : Geometry
ST_SnapToGrid( geom Geometry , origin_x Double precision , origin_y Double precision , size_x Double precision , size_y Double precision ) ) : Geometry
ST_SnapToGrid( geom Geometry , origin Geometry , size_x Double precision , size_y Double precision , size_z Double precision , size_m Double precision ) : Geometry
base return a new Geometry corresponding to the input Geometry; all points and vertices will be snapped to the grid defined by its origin and size(s).
Removes all consecutive points falling on the same cell.
All collapsed geometries will be stripped from the returned Geometry.
NULL is returned on failure.
GeoHash GeoHash( geom Geometry ) : String
ST_GeoHash( geom Geometry ) : String
LWGEOM Return a GeoHash representation (geohash.org) of the geometry.
A GeoHash encodes a point into a text form that is sortable and searchable based on prefixing.
ST_GeoHash will not work with geometries that are not in geographic (lon/lat) coordinates
AsX3D AsX3D( geom Geometry ) : String
AsX3D( geom Geometry , precision Integer ) : String
AsX3D( geom Geometry , precision Integer , options Integer ) : String
AsX3D( geom Geometry , precision Integer , options Integer , refid String ) : String
ST_AsX3D( geom Geometry ) : String
ST_AsX3D( geom Geometry , precision Integer ) : String
ST_AsX3D( geom Geometry , precision Integer , options Integer ) : String
ST_AsX3D( geom Geometry , precision Integer , options Integer , refid String ) : String
LWGEOM Returns a geometry as an X3D XML formatted node element.
MaxDistance MaxDistance( geom1 Geometry , geom2 Geometry ) : Double precision
ST_MaxDistance( geom1 Geometry , geom2 Geometry ) : Double precision
LWGEOM return the max distance between geom1 and geom2
3DDistance ST_3DDistance( geom1 Geometry , geom2 Geometry ) : Double precision LWGEOM return the 3D-distance between geom1 and geom2 (Z coordinates will be considered)
3DMaxDistance ST_3DMaxDistance( geom1 Geometry , geom2 Geometry ) : Double precision LWGEOM return the max 3D-distance between geom1 and geom2 (Z coordinates will be considered)
ST_Node ST_Node( geom Geometry ) : Geometry LWGEOM Fully nodes a set of linestrings using the least possible number of nodes while preserving all of the input ones.
NULL will be returned if the input Geometry isn't a set of linestrings or if any other error occurs.
SelfIntersections SelfIntersections( geom Geometry ) : Geometry
ST_SelfIntersections( geom Geometry ) : Geometry
LWGEOM Returns a MultiPoint Geometry representing any self-intersection found within the input geometry [expected to be of the Linestring or MultiLinestring type].
NULL will be returned for invalid arguments, or when no self-intersections were found.

SQL functions for coordinate transformations

Function Syntax OGC
defined
required
module
Summary
Transform Transform( geom Geometry , newSRID Integer ) : Geometry
ST_Transform( geom Geometry , newSRID Integer ) : Geometry
PROJ.4 return a geometric object obtained by reprojecting coordinates into the Reference System identified by newSRID
SridFromAuthCRS SridFromAuthCRS( auth_name String , auth_SRID Integer ) : Integer base return the internal SRID corresponding to auth_name and auth_SRID
-1 will be returned if no such CRS is defined
ShiftCoords
ShiftCoordinates
ShiftCoords( geom Geometry , shiftX Double precision , shiftY Double precision ) : Geometry
ShiftCoordinates( geom Geometry , shiftX Double precision , shiftY Double precision ) : Geometry
base return a geometric object obtained by translating coordinates according to shiftX and shiftY values
ST_Translate ST_Translate( geom Geometry , shiftX Double precision , shiftY Double precision , shiftZ Double precision ) : Geometry base return a geometric object obtained by translating coordinates according to shiftX, shiftY and shiftZ values
ST_Shift_Longitude ST_Shift_Longitude( geom Geometry ) : Geometry base return a geometric object obtained by translating any negative longitude by 360.
Only meaningful for geographic (longitude/latitude) coordinates.
Negative longitudes (-180/0) will be shifted by 360, thus allowing to represent longitudes in the 0/360 range and effectively crossing the International Date Line.
NormalizeLonLat NormalizeLonLat( geom Geometry ) : Geometry base return a geometric object obtained by normalizing any longitude in the range [-180 / +180] and any latitude in the range [-90 / + 90].
Only meaningful for geographic (longitude/latitude) coordinates.
ScaleCoords
ScaleCoordinates
ScaleCoords( geom Geometry , scaleX Double precision [ , scaleY Double precision ] ) : Geometry
ScaleCoordinates( geom Geometry , scaleX Double precision [ , scaleY Double precision ] ) : Geometry
base return a geometric object obtained by scaling coordinates according to scaleX and scaleY values
if only one scale factor is specified, then an isotropic scaling occurs [i.e. the same scale factor is applied to both axis]
otherwise an anisotropic scaling occurs [i.e. each axis is scaled according to its own scale factor]
RotateCoords
RotateCoordinates
RotateCoords( geom Geometry , angleInDegrees Double precision ) : Geometry
RotateCoordinates( geom Geometry , angleInDegrees Double precision ) : Geometry
base return a geometric object obtained by rotating coordinates according to angleInDegrees value.
Positive angle = clockwise rotation.
Negative angle = counterclockwise rotation.
ReflectCoords
ReflectCoordinates
ReflectCoords( geom Geometry , xAxis Integer , yAxis Integer ) : Geometry
ReflectCoordinates( geom Geometry , xAxis Integer , yAxis Integer ) : Geometry
base return a geometric object obtained by reflecting coordinates according to xAxis and yAxis switches
i.e. if xAxis is 0 (FALSE), then x-coordinates remains untouched; otherwise x-coordinates will be reflected
SwapCoords
SwapCoordinates
SwapCoords( geom Geometry ) : Geometry
SwapCoordinates( geom Geometry ) : Geometry
base return a geometric object obtained by swapping x- and y-coordinates

SQL functions supporting Affine Transformations and Ground Control Points

Function Syntax OGC
defined
required
module
Summary
ATM_Create ATM_Create( void ) : AffineMatrix
ATM_Create( a Integer , b Integer , d Integer , e Integer , xoff Integer , yoff Integer ] ) : AffineMatrix
ATM_Create( a Integer , b Integer , c Integer , d Integer , e Integer , f Integer , g Integer , h Integer , i Integer , xoff Integer , yoff Integer , zoff Integer ] ) : AffineMatrix
base return a BLOB-encoded Affine Transformation matrix.
  • the first form (no arguments) will return an Identity matrix.
  • the second and third forms will respectively return a fully initialized 2D or 3D Affine Transformation matrix.

will return NULL on invalid arguments.
ATM_CreateTranslate ATM_CreateTranslate( tx Double precision , ty Double precision ] ) : AffineMatrix
ATM_CreateTranslate( tx Double precision , ty Double precision , tz Double precision ] ) : AffineMatrix
base return a BLOB-encoded Affine Transformation matrix representing a 2D or 3D Translate transformation.
will return NULL on invalid arguments.
ATM_CreateScale ATM_CreateScale( sx Double precision , sy Double precision ] ) : AffineMatrix
ATM_CreateScale( sx Double precision , sy Double precision , sz Double precision ] ) : AffineMatrix
base return a BLOB-encoded Affine Transformation matrix representing a 2D or 3D Scale transformation.
will return NULL on invalid arguments.
ATM_CreateRotate ATM_CreateRotate( angleInDegrees Double precision ] ) : AffineMatrix
ATM_CreateZRoll( angleInDegrees Double precision ] ) : AffineMatrix
base return a BLOB-encoded Affine Transformation matrix representing a Rotate transformation (along the Z axis).
will return NULL on invalid argument.
ATM_CreateXRoll ATM_CreateXRoll( angleInDegrees Double precision ] ) : AffineMatrix base return a BLOB-encoded Affine Transformation matrix representing a Rotate transformation (along the X axis).
will return NULL on invalid argument.
ATM_CreateYRoll ATM_CreateYRoll( angleInDegrees Double precision ] ) : AffineMatrix base return a BLOB-encoded Affine Transformation matrix representing a Rotate transformation (along the Y axis).
will return NULL on invalid argument.
ATM_Multiply ATM_Multiply( matrixA AffineMatrix , matrixB AffineMatrix ) : AffineMatrix base return a BLOB-encoded Affine Transformation matrix representing the result of multiplying matrixA by matrixB.
will return NULL on invalid arguments.
ATM_Translate ATM_Translate( matrix AffineMatrix , tx Double precision , ty Double precision ] ) : AffineMatrix
ATM_CreateTranslate( matrix AffineMatrix , tx Double precision , ty Double precision , tz Double precision ] ) : AffineMatrix
base return a BLOB-encoded Affine Transformation matrix by chaining a further 2D or 3D Translate to a previous transformation matrix.
will return NULL on invalid arguments.
ATM_Scale ATM_Scale( matrix AffineMatrix , sx Double precision , sy Double precision ] ) : AffineMatrix
ATM_Scale( matrix AffineMatrix , sx Double precision , sy Double precision , sz Double precision ] ) : AffineMatrix
base return a BLOB-encoded Affine Transformation matrix by chaining a further 2D or 3D Scale to a previous transformation matrix.
will return NULL on invalid arguments.
ATM_Rotate ATM_Rotate( matrix AffineMatrix , angleInDegrees Double precision ] ) : AffineMatrix
ATM_ZRoll( matrix AffineMatrix , angleInDegrees Double precision ] ) : AffineMatrix
base return a BLOB-encoded Affine Transformation matrix by chaining a further Rotate (along the Z axis) to a previous transformation matrix.
will return NULL on invalid argument.
ATM_XRoll ATM_XRoll( matrix AffineMatrix , angleInDegrees Double precision ] ) : AffineMatrix base return a BLOB-encoded Affine Transformation matrix by chaining a further Rotate (along the X axis) to a previous transformation matrix.
will return NULL on invalid argument.
ATM_YRoll ATM_YRoll( matrix AffineMatrix , angleInDegrees Double precision ] ) : AffineMatrix base return a BLOB-encoded Affine Transformation matrix by chaining a further Rotate (along the Y axis) to a previous transformation matrix.
will return NULL on invalid argument.
ATM_Determinant ATM_Determinant( matrix AffineMatrix ] ) : Double precision base return the Determinant from an Affine Transformation matrix.
will return 0.0 on invalid argument.
ATM_IsInvertible ATM_IsInvertible( matrix AffineMatrix ] ) : Integer base return 1 if the Affine Transformation matrix can be inverted, 0 if not.
will return -1 on invalid argument.
ATM_Invert ATM_Invert( matrix AffineMatrix ] ) : AffineMatrix base return an inverted Affine Transformation matrix.
will return NULL on invalid argument.
ATM_IsValid ATM_IsValid( matrix AffineMatrix ] ) : Integer base return 1 if the BLOB argument really contains a valid Affine Transformation matrix, 0 if not.
will return -1 on invalid argument.
ATM_AsText ATM_AsText( matrix AffineMatrix ] ) : Text base return a serialized text string corresponding to an Affine Transformation matrix.
will return NULL on invalid argument.
ATM_Transform ATM_Transform( geom Geometry , matrix AffineMatrix [ , newSRID Integer ] ) : Geometry base return a geometric object obtained by applying an Affine Transformation; if the optional arg newSRID is defined then the returned Geometry will assume the corresponding Reference System, otherwise it will preserve the same Reference System of the input Geometry.
will return NULL on invalid arguments.
GCP_Compute GCP_Compute( pointA Geometry , pointB Geometry [ order Integer] ) : PolynomialCoeffs GrassGis code
GPLv2+
return BLOB-encoded objects containing Polynomial coefficients computed from a set of matching Ground Control Points pairs.
  • pointA corresponds to the origin Reference System; pointB corresponds to the destination target.
  • the input Geometries must be of the Point type and must have the same dimensions
  • if the points have XYZ or XYZM dimensions then 3D coeffs will be returned, otherwise 2D coeffs will be return.
  • the optional order argument can assume the following values:
    • 0: a set of 2D coeffs will be returned by applying the Thin Plate Spline method.
    • 1: (default setting) a set of 2D or 3D Polynomial coeffs of the 1st order will be returned.
    • 2: a set of 2D or 3D Polynomial coeffs of the 2nd order will be returned.
    • 3: a set of 2D or 3D Polynomial coeffs of the 3rd order will be returned.

will return NULL on invalid arguments
aggreagate function
GCP_IsValid GCP_IsValid( matrix PolynomialCoeffs ] ) : Integer GrassGis code
GPLv2+
return 1 if the BLOB argument really contains valid Polynomial coeffs, 0 if not.
will return -1 on invalid argument.
GCP_AsText GCP_AsText( matrix PolynomialCoeffs ] ) : Text GrassGis code
GPLv2+
return a serialized text string corresponding to the Polynomial coeffs.
will return NULL on invalid argument.
GCP2ATM GCP2ATM( matrix PolynomialCoeffs ] ) : AffineMatrix GrassGis code
GPLv2+
return an Affine Transformation matrix corresponding to the Polynomial coeffs.
Only a set of Polynomial coeffs of the 1st order can be converted to an Affine Transformation matrix.
will return NULL on invalid argument.
GCP_Transform GCP_Transform( geom Geometry , coeffs PolynomialCoeffs [ , newSRID Integer ] ) : Geometry GrassGis code
GPLv2+
return a geometric object obtained by applying a Transformation based on Polynomial coefficients of the 1st, 2nd or 3rd order; if the optional arg newSRID is defined then the returned Geometry will assume the corresponding Reference System, otherwise it will preserve the same Reference System of the input Geometry.
will return NULL on invalid arguments.

SQL functions for Spatial-MetaData and Spatial-Index handling

Function Syntax OGC
defined
required
module
Summary
InitSpatialMetaData InitSpatialMetaData( void ) : Integer
InitSpatialMetaData( transaction Integer ) : Integer
InitSpatialMetaData( mode String ) : Integer
InitSpatialMetaData( transaction Integer , mode String ) : Integer
base Creates the geometry_columns and spatial_ref_sys metadata tables
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
  • if the optional argument transaction is set to TRUE the whole operation will be handled as a single Transaction (faster): the default setting is transaction=FALSE (slower, but safer).
  • if the optional argument mode is not specified then any possible ESPG SRID definition will be inserted into the spatial_ref_sys table.
  • if the mode arg 'WGS84' (alias 'WGS84_ONLY') is specified, then only WGS84-related EPSG SRIDs will be inserted
  • if the mode arg 'NONE' (alias 'EMPTY') is specified, no EPSG SRID will be inserted at all
InsertEpsgSrid InsertEpsgSrid( srid Integer ) : Integer base Attempts to insert into spatial_ref_sys the EPSG definition uniquely identified by srid
[the corresponding EPSG SRID definition will be copied from the inlined dataset defined in libspatialite]
the return type is Integer, with a return value of 1 for success or 0 for failure
AddGeometryColumn AddGeometryColumn( table String , column String , srid Integer , geom_type String [ , dimension String [ , not_null Integer ] ] ) : Integer X base Creates a new geometry column updating the Spatial Metadata tables and creating any required trigger in order to enforce constraints
geom_type has to be one of the followings:
  • 'POINT', 'POINTZ', 'POINTM', 'POINTZM'
  • 'LINESTRING', 'LINESTRINGZ', 'LINESTRINGM', 'LINESTRINGZM'
  • 'POLYGON', 'POLYGONZ', 'POLYGONM', 'POLYGONZM'
  • 'MULTIPOINT', 'MULTIPOINTZ', 'MULTIPOINTM', 'MULTIPOINTZM'
  • 'MULTILINESTRING', 'MULTILINESTRINGZ', 'MULTILINESTRINGM', 'MULTILINESTRINGZM'
  • 'MULTIPOLYGON', 'MULTIPOLYGONZ', 'MULTIPOLYGONM', 'MULTIPOLYGONZM'
  • 'GEOMETRYCOLLECTION', 'GEOMETRYCOLLECTIONZ', 'GEOMETRYCOLLECTIONZM', 'GEOMETRYCOLLECTIONZM'
  • 'GEOMETRY', 'GEOMETRYZ', 'GEOMETRYM', 'GEOMETRYZM'
dimension has to be one of the followings:
  • 'XY' or 2: 2D points, identified by X and Y coordinates
  • 'XYM': 2D points, identified by X and Y coordinates. Each point stores an M-value (measure) as well
  • 'XYZ' or 3: 3D points, identified by X, Y and Z coordinates
  • 'XYZM' or 4: 3D points, identified by X, Y and Z coordinates. Each point stores an M-value (measure) as well
Please note: the dimension argument is optional; anyway, if specified, iy's expected to be consistent with the declared geom_type
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
the optional 6th arg [not_null] is a non-standard extension required by the peculiar SQLite arch:
  • if set to 0 [false], then the Geometry column will accept NULL values as well. This is the default behaviour
  • if set to any <> 0 value [true], then the Geometry will be defined using a NOT NULL clause
RecoverGeometryColumn RecoverGeometryColumn( table String , column String , srid Integer , geom_type String [ , dimension Integer ] ) : Integer base Validates an existing ordinary column in order to possibly transform it in a real geometry column, thus updating the Spatial Metadata tables and creating any required trigger in order to enforce constraints
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
DiscardGeometryColumn DiscardGeometryColumn( table String , column String ) : Integer base Removes a geometry column from Spatial MetaData tables and drops any related trigger
the column itself still continues to exist untouched as an ordinary, unconstrained column
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
RegisterVirtualGeometry RegisterVirtualGeometry( table String ) : Integer base Registers a VirtualShape table into Spatial MetaData tables; the VirtualShape table should be previously created by invoking CREATE VIRTUAL TABLE ... USING VirtualShape(...)
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
DropVirtualGeometry DropVirtualGeometry( table String ) : Integer base Removes a VirtualShape table from Spatial MetaData tables, dropping the VirtualShape table as well.
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
CreateSpatialIndex CreateSpatialIndex( table String , column String ) : Integer base Builds an RTree Spatial Index on a geometry column, creating any required trigger required in order to enforce full data coherency between the main table and Spatial Index
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
-1 will be returned if any physical column named "rowid" (caseless) shadowing the real ROWID is detected.
CreateMbrCache CreateMbrCache( table String , column String ) : Integer base Builds an MbrCache on a geometry column, creating any required trigger required in order to enforce full data coherency between the main table and the MbrCache
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
DisableSpatialIndex DisableSpatialIndex( table String , column String ) : Integer base Disables an RTree Spatial Index or MbrCache, removing any related trigger
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
CheckShadowedRowid CheckShadowedRowid( table String ) : Integer base Checks if some table has a physical column named "rowid" (caseless) shadowing the real ROWID.
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
NULL will be returned if the requested table doesn't exist.
CheckWithoutRowid CheckWithoutRowid( table String ) : Integer base Checks if some table was created by specifying a WITHOUT ROWID clause.
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
NULL will be returned if the requested table doesn't exist.
CheckSpatialIndex CheckSpatialIndex( void ) : Integer
CheckSpatialIndex( table String , column String ) : Integer
base Checks an RTree Spatial Index for validity and consistency
  • if no arguments are passed, then any RTree defined into geometry_columns will be checked
  • otherwise only the RTree corresponding to table and column will be checked

the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
NULL will be returned if the requested RTree doesn't exist
-1 will be returned if any physical column named "rowid" (caseless) shadowing the real ROWID is detected.
RecoverSpatialIndex RecoverSpatialIndex( [ no_check : Integer ] ) : Integer
RecoverSpatialIndex( table String , column String [ , no_check : Integer ] ) : Integer
base Recovers a (possibly broken) RTree Spatial Index
  • if no arguments are passed, then any RTree defined into geometry_columns will be recovered
  • otherwise only the RTree corresponding to table and column will be recovered
  • the optional argument no_check will be interpreted as follows:
    • if no_check = FALSE (default) the RTree will be checked first: and only an invalid RTree will be then actually rebuilt
    • if no_check = TRUE the RTree will be unconditionally rebuilt from scratch

the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
NULL will be returned if the requested RTree doesn't exist
-1 will be returned if any physical column named "rowid" (caseless) shadowing the real ROWID is detected.
InvalidateLayerStatistics InvalidateLayerStatistics( [ void ) : Integer
InvalidateLayerStatistics( table String [ , column String ] ) : Integer
base Immediately and unconditionally invalidates the internal Layer Statistics
  • if no arguments are passed, then internal statistics will be invalidated for any possible Geometry Column defined in the current DB
  • otherwise statistics will be updated only for Geometry Columns corresponding to the given table

the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
Please note: will effectively work only on behalf DB-files supporting the more recent metatables layout introduced starting since version 4.x; in any other case will always return an error and no action will happen.
UpdateLayerStatistics UpdateLayerStatistics( [ void ) : Integer
UpdateLayerStatistics( table String [ , column String ] ) : Integer
base Updates the internal Layer Statistics [Feature Count and Total Extent]
  • if no arguments are passed, then internal statistics will be updated for any possible Geometry Column defined in the current DB
  • otherwise statistics will be updated only for Geometry Columns corresponding to the given table

the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
GetLayerExtent GetLayerExtent( table String [ , column String [ , mode Boolean] ] ) : Geometry base Return the Envelope corresponding to the Total Extent (bounding box] of some Layer; if the Table/Layer only contains a single Geometry column passing the column name isn't strictly required.
The returned extent will be retrieved from the Statistics tables:
  • if the third argument mode is set to TRUEa PESSIMISTIC strategy will be applied, i.e. an attempt will be made in order to update the Statistics tables before returning the Envelope.
  • otherwise the returned Envelope will simply reflect the current values stored into the Statics tables as they are (OPTIMISTIC strategy, adopted by default).

NULL will be returned if any error occurs or if the required table isn't a Layer.
CreateTopologyTables CreateTopologyTables( SRID Integer , dims : String ) : Integer
CreateTopologyTables( prefix String , SRID Integer , dims : String ) : Integer
base Creates a set of Topology tables
  • SRID argument is mandatory
  • dims argument must be 'XY' or 'XYZ':
    2 or 3 are valid aliases
  • the optional argument prefix can be used to support more Topology sets on the same DB:
    if omitted a "topo_" prefix will be assumed by default

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure)
CreateRasterCoveragesTable CreateRasterCoveragesTable( void ) : Integer base Creates the raster_coverages table required by RasterLite-2
the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure)
CreateVectorCoveragesTables CreateVectorCoveragesTables( void ) : Integer base Creates the vector_coverages and vector_coverages_srid tables required by RasterLite-2
the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure)
RebuildGeometryTriggers RebuildGeometryTriggers( table_name String , geometry_column_name String ) : integer base This function will reinstall all geometry-related Triggers for the named table.
the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure)
UpgradeGeometryTriggers UpgradeGeometryTriggers( transaction Integer ) : integer base This function will upgrade all geometry-related Triggers to the latest version (all DB tables declaring at least one Geometry will be affected by the upgrade).
If the transaction argument is set to TRUE then the whole upgrade will be safely executed within an internally defined SQL transaction.
Please note: DB-files created using obsolete versions of SpatiaLite (< 4.0.0) will not be upgraded.
the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure)

SQL functions supporting the MetaCatalog and related Statistics

Function Syntax OGC
defined
required
module
Summary
CreateMetaCatalogTables CreateMetaCatalogTables( transaction Integer ) : Integer base Creates both splite_metacatalog and splite_metacatalog_statistics tables; splite_metacatalog will be populated so to describe every table/column currently defined within the DB.
if the first argument transaction is set to TRUE the whole operation will be handled as a single Transaction (faster): the default setting is transaction=FALSE (slower, but safer).
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
UpdateMetaCatalogStatistics UpdateMetaCatalogStatistics( transaction Integer , table_name String , column_name String ) : Integer
UpdateMetaCatalogStatistics( transaction Integer , master_table String , table_name String , column_name String ) : Integer
base Updates the splite_metacatalog_statistics table by computing the statistic summary for the required table/column.
if the first argument transaction is set to TRUE the whole operation will be handled as a single Transaction (faster): the default setting is transaction=FALSE (slower, but safer).
the first form (using three arguments) will simply attempt to update the statistic summary for a single table/column as identified by their names: a matching row is expected to be found in splite_metacatalog.
the second form (using four arguments) allows to update the statistic summary for many table/columns in a single pass.
in this case master_table should identify an existing table: table_name and column_name should identify two columns belonging to this tables.
the statistic summary for every table/columns fetched from the master table will then be updated: any mismatching table/column will be simply ignored.
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE

SQL functions supporting SLD/SE Styled Layers

Function Syntax OGC
defined
required
module
Summary
CreateStylingTables CreateStylingTables() : Integer
CreateStylingTables( relaxed Integer ) : Integer
CreateStylingTables( relaxed Integer , transaction Integer ) : Integer
libxml2 Creates a set of tables supporting SLD/SE Styled Layers.
  • if the optional argument relaxed is explicitly set as TRUE then a relaxed version of the validating Triggers will be installed (not checking for strict XSD schema validation).
  • if the optional argument transaction is explicitly set as TRUE then the whole operation will be atomically confined within a monolithic SQL transaction

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
Please note: will implicitly invoke CreateRasterCoverages() if the raster_coverages table has not yet been created.
SE_RegisterVectorCoverage SE_RegisterVectorCoverage( coverage_name String , f_table_name String , f_geometry_column Sting ) : Integer
SE_RegisterVectorCoverage( coverage_name String , f_table_name String , f_geometry_column Sting , title String , abstract String ) : Integer
libxml2 Creates a Vector Coverage based on an already existing Spatial Table.
  • coverage_name is the symbolic name uniquely identifying each Vector Coverage (Primary Key).
  • f_table_name and f_geometry_column are expected to match a corresponding entry in the geometry_columns table.
  • the optional arguments title and abstract could be eventually specified for better human readability.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_UnregisterVectorCoverage SE_UnregisterVectorCoverage( coverage_name String ) : Integer libxml2 Completely removes an already defined Vector Coverage this including any furher depency; the underlying Spatial Table will be absolutely unaffected.
  • coverage_name must identify an existing Vector Coverage.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_SetVectorCoverageInfos SE_SetVectorCoverageInfos( coverage_name String , title String , abstract String ) : Integer libxml2 Updates the descriptive infos associated to a Vector Coverage.
  • coverage_name must identify an existing Vector Coverage.
  • title and abstract represent the descriptive infos to be set.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_RegisterVectorCoverageSrid SE_RegisterVectorCoverageSrid( coverage_name String , srid Integer ) : Integer libxml2 Adds an alternative SRID to an already defined Vector Coverage.
  • coverage_name must identify an existing Vector Coverage.
  • srid is expected to match a corresponding entry in the spatial_ref_sys table.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_UnregisterVectorCoverageSrid SE_UnregisterVectorCoverageSrid( coverage_name String , srid Integer ) : Integer libxml2 Removes an already defined alternative SRID from a Vector Coverage.
  • coverage_name and srid must identify some previously defined alternative SRID.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_UpdateVectorCoverageExtent SE_UpdateVectorCoverageExtent() : Integer
SE_UpdateVectorCoverageExtent( transaction Integer ) : Integer
SE_UpdateVectorCoverageExtent( coverage_name String ) : Integer
SE_UpdateVectorCoverageExtent( coverage_name String , transaction Integer ) : Integer
libxml2 Updates the Extent boundary supporting a Vector Coverage, this including any eventually defined alternative SRID.
  • if the optional coverage_name argument is set then only that single Vector Coverage will be updated; otherwise all registered Vector Coverages will be processed in a single pass (may require a long time).
  • if the optional transaction argument is set to TRUE then the whole operation will be internally handled as a single SQL Transaction.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_RegisterVectorCoverageKeyword SE_RegisterVectorCoverageeKeyword( coverage_name String , keyword String ) : Integer libxml2 Adds a keyword to an already defined Vector Coverage.
  • coverage_name must identify an existing Vector Coverage.
  • keyword must not be already defined for the same Coverage.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_UnregisterVectorCoverageKeyword SE_UnregisterVectorCoverageKeyword( coverage_name String , keyword String ) : Integer libxml2 Removes an already defined keyword from a Vector Coverage.
  • coverage_name and keyword must identify some previously defined keyword.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_RegisterExternalGraphic SE_RegisterExternalGraphic( xlink_href String , resource BLOB ) : Integer
SE_RegisterExternalGraphic( xlink_href String , resource BLOB , title String , abstract String , file_name String ) : Integer
libxml2 Inserts (or updates) an External Graphic Resource.
  • xlink_href uniquely identifies each Resource (Primary Key).
  • resource is expected to be a BLOB containing an image/gif, image/png, image/jpeg or image/svg+xml payload.
  • the optional arguments title, abstract and file_name could be eventually specified for better human readability.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_UnregisterExternalGraphic SE_UnregisterExternalGraphic( xlink_href String ) : Integer libxml2 Deletes an already existing External Graphic Resource.
  • xlink_href the External Resource to be deleted.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_RegisterVectorStyle SE_RegisterVectorStyle( style BLOB ) : Integer libxml2 Inserts a new Vector Style definition.
  • style is expected to be an XmlBLOB containing a valid SLD/SE Style of the Vector type.
    If CreatedStylingTables() was invoked without specifying the relaxed option this XmlBLOB is expected to have successfully passed a formal XML Schema Validation.
    The registered Style will be identified either by its unique Style ID or by its Style Name automatically retrieved from SLD/SE XML.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_UnregisterVectorStyle SE_UnregisterVectorStyle( style_id Integer [ , remove_all Integer ] ) : Integer
SE_UnregisterVectorStyle( style_name Text [ , remove_all Integer ] ) : Integer
libxml2 Removes an already registered Vector Style definition.
  • The Style to be removed could be referenced either by its unique Style Id or by its Style Name.
    Anyway any attempt to remove a Style identified by its Name will be rejected if the if two (or more) Styles share the same Name thus causing ambiguity.
  • when the optional argument remove_all is explicitly set to TRUE the Style will be removed even if it's already referenced by some VectorStyledLayer and all dependings references will be removed at the same time.
    In any other case any attempt to unregister a Style already referenced by one (or more) VectorStyleLayer will be rejected.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_ReloadVectorStyle SE_ReloadVectorStyle( style_id Integer , style BLOB ) : Integer
SE_ReloadVectorStyle( style_name Text , style BLOB ) : Integer
libxml2 Updates an already existing Vector Style definition.
  • style is expected to be an XmlBLOB containing a valid SLD/SE Style of the Vector type.
    If CreatedStylingTables() was invoked without specifying the relaxed option this XmlBLOB is expected to have successfully passed a formal XML Schema Validation.
    The updated Style will continue to be identified by its current unique Style ID but the Style Name will be automatically updated accordingly to SLD/SE XML.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_RegisterVectorStyledLayer SE_RegisterVectorStyledLayer( coverage_name String , style_id Integer ) : Integer
SE_RegisterVectorStyledLayer( coverage_name String , style_name Text ) : Integer
libxml2 Associates a Vector Style to a Vector Styled Layer.
  • coverage_name must identify an existing Vector Layer.
  • An already registered Style can be referenced either by its unique Stile ID or by its Name; anyway a reference by Name could eventually fail if the Name is ambiguous (duplicate).

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_UnregisterVectorStyledLayer SE_UnregisterVectorStyledLayer( coverage_name String , style_id Integer ) : Integer
SE_UnregisterVectorStyledLayer( coverage_name String , style_name Text ) : Integer
libxml2 Removes an association between a Vector Style and a Vector Styled Layer.
  • coverage_name must identify an existing Vector Layer.
  • An already associated Style can be referenced either by its unique Stile ID or by its Name; anyway a reference by Name could eventually fail if the Name is ambiguous (duplicate).

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_RegisterRasterStyle SE_RegisterRasterStyle( style BLOB ) : Integer libxml2 Inserts a new Raster Style definition.
  • style is expected to be an XmlBLOB containing a valid SLD/SE Style of the Raster type.
    If CreatedStylingTables() was invoked without specifying the relaxed option this XmlBLOB is expected to have successfully passed a formal XML Schema Validation.
    The registered Style will be identified either by its unique Style ID or by its Style Name automatically retrieved from SLD/SE XML.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_UnregisterRasterStyle SE_UnregisterRasterStyle( style_id Integer [ , remove_all Integer ] ) : Integer
SE_UnregisterRasterStyle( style_name Text [ , remove_all Integer ] ) : Integer
libxml2 Removes an already registered Raster Style definition.
  • The Style to be removed could be referenced either by its unique Style Id or by its Style Name.
    Anyway any attempt to remove a Style identified by its Name will be rejected if the if two (or more) Styles share the same Name thus causing ambiguity.
  • when the optional argument remove_all is explicitly set to TRUE the Style will be removed even if it's already referenced by some RasterStyledLayer and all dependings references will be removed at the same time.
    In any other case any attempt to unregister a Style already referenced by one (or more) RasterStyleLayer will be rejected.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_ReloadRasterStyle SE_ReloadRasterStyle( style_id Integer , style BLOB ) : Integer
SE_ReloadRasterStyle( style_name Text , style BLOB ) : Integer
libxml2 Updates an already existing Raster Style definition.
  • style is expected to be an XmlBLOB containing a valid SLD/SE Style of the Raster type.
    If CreatedStylingTables() was invoked without specifying the relaxed option this XmlBLOB is expected to have successfully passed a formal XML Schema Validation.
    The updated Style will continue to be identified by its current unique Style ID but the Style Name will be automatically updated accordingly to SLD/SE XML.
  • <

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_RegisterRasterStyledLayer SE_RegisterRasterStyledLayer( coverage_name String , style_id Integer ) : Integer
SE_RegisterRasterStyledLayer( coverage_name String , style_name Text ) : Integer
libxml2 Associates a Raster Style to a Raster Styled Layer.
  • coverage_name must identify an existing Raster Layer.
  • An already registered Style can be referenced either by its unique Stile ID or by its Name; anyway a reference by Name could eventually fail if the Name is ambiguous (duplicate).

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_UnregisterRasterStyledLayer SE_UnregisterRasterStyledLayer( coverage_name String , style_id Integer ) : Integer
SE_UnregisterRasterStyledLayer( coverage_name String , style_name Text ) : Integer
libxml2 Removes an association between a Raster Style and a Raster Styled Layer.
  • coverage_name must identify an existing Raster Layer.
  • An already associated Style can be referenced either by its unique Stile ID or by its Name; anyway a reference by Name could eventually fail if the Name is ambiguous (duplicate).

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_RegisterRasterCoverageSrid SE_RegisterRasterCoverageSrid( coverage_name String , srid Integer ) : Integer libxml2 Adds an alternative SRID to an already defined Raster Coverage.
  • coverage_name must identify an existing Raster Coverage.
  • srid is expected to match a corresponding entry in the spatial_ref_sys table.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_UnregisterRasterCoverageSrid SE_UnregisterRasterCoverageSrid( coverage_name String , srid Integer ) : Integer libxml2 Removes an already defined alternative SRID from a Raster Coverage.
  • coverage_name and srid must identify some previously defined alternative SRID.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_UpdateRasterCoverageExtent SE_UpdateRasterCoverageExtent() : Integer
SE_UpdateRasterCoverageExtent( transaction Integer ) : Integer
SE_UpdateRasterCoverageExtent( coverage_name String ) : Integer
SE_UpdateRasterCoverageExtent( coverage_name String , transaction Integer ) : Integer
libxml2 Updates the Extent boundary supporting a Raster Coverage, this including any eventually defined alternative SRID.
  • if the optional coverage_name argument is set then only that single Raster Coverage will be updated; otherwise all registered Raster Coverages will be processed in a single pass (may require a long time).
  • if the optional transaction argument is set to TRUE then the whole operation will be internally handled as a single SQL Transaction.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_RegisterRasterCoverageKeyword SE_RegisterRasterCoverageKeyword( coverage_name String , keyword String ) : Integer libxml2 Adds a keyword to an already defined Raster Coverage.
  • coverage_name must identify an existing Raster Coverage.
  • keyword must not be already defined for the same Coverage.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_UnregisterRasterCoverageKeyword SE_UnregisterRasterCoverageKeyword( coverage_name String , keyword String ) : Integer libxml2 Removes an already defined keyword from a Raster Coverage.
  • coverage_name and keyword must identify some previously defined keyword.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_SetStyledGroupInfos SE_SetStyledGroupInfos( group_name String , title String , abstract String ) : Integer libxml2 Inserts (or updates) the descriptive infos associated to a Styled Group.
  • group_name must identify a Styled Group: if the Styled Group doesn't yet exists it will be implicitly created.
  • title and abstract represent the descriptive infos to be set.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_UnregisterStyledGroup SE_UnregisterStyledGroup( group_name String ) : Integer libxml2 Completely removes a Styled Group and any related item.
  • group_name must identify an existing Styled Group.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_RegisterStyledGroupVector SE_RegisterStyledGroupVector( group_name String , coverage_name String ) : Integer libxml2 Registers a Vector Layer within a Styled Group.
  • group_name must identify a Styled Group: if the Styled Group doesn't yet exists it will be implicitly created.
  • coverage_name must identify an existing Vector Layer.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_RegisterStyledGroupRaster SE_RegisterStyledGroupRaster( group_name String , coverage_name String ) : Integer libxml2 Registers a Raster Layer within a Styled Group.
  • group_name must identify a Styled Group: if the Styled Group doesn't yet exists it will be implicitly created.
  • coverage_name must identify an existing Raster Layer.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_SetStyledGroupLayerPaintOrder SE_SetStyledGroupLayerPaintOrder( item_id Integer , paint_order Integer ) : Integer libxml2 Explictly assigns the paint_order for a Raster or Vector Layer within a Styled Group.
  • If paint_order is a negative value then the next available order position will be automatically assigned (top level).
    Please note: the painting order will always follow the Painter rule, i.e. a lower paint-order value will always be painted before painting any higher value.
  • An already defined Vector or Raster Layer Item within a Styled Group can always be referenced its unique item_id.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_SetStyledGroupVectorPaintOrder SE_SetStyledGroupVectorPaintOrder( group_name Text , coverage_name String , paint_order Integer ) : Integer libxml2 Explictly assigns the paint_order for a Vector Layer within a Styled Group.
  • If paint_order is a negative value then the next available order position will be automatically assigned (top level).
    Please note: the painting order will always follow the Painter rule, i.e. a lower paint-order value will always be painted before painting any higher value.
  • An already defined Vector Layer Item can be safely referenced by its Name.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_SetStyledGroupRasterPaintOrder SE_SetStyledGroupRasterPaintOrder( group_name Text , coverage_name String , paint_order Integer ) : Integer libxml2 Explictly assigns the paint_order for a Raster Layer within a Styled Group.
  • If paint_order is a negative value then the next available order position will be automatically assigned (top level).
    Please note: the painting order will always follow the Painter rule, i.e. a lower paint-order value will always be painted before painting any higher value.
  • An already defined Raster Layer Item can be safely referenced by its Name.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_UnregisterStyledGroupLayer SE_UnregisterStyledGroupLayer( item_id Integer ) : Integer libxml2 Removes a reference to a Raster or Vector Layer from within a Styled Group.
  • An already defined Vector or Raster Layer Item within a Styled Group can always be referenced its unique item_id.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_UnregisterStyledGroupVector SE_UnregisterStyledGroupVector( group_name Text , coverage_name String ) : Integer libxml2 Removes a reference to a Vector Layer from within a Styled Group.
  • An already defined Vector Layer Item can be safely referenced by its Name.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_UnregisterStyledGroupRaster SE_UnregisterStyledGroupRaster( group_name Text , coverage_name String ) : Integer libxml2 Removes a reference to a Raster Layer from within a Styled Group.
  • An already defined Raster Layer Item can be safely referenced by its Name.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_RegisterGroupStyle SE_RegisterGroupStyle( style BLOB ) : Integer libxml2 Inserts a new Group Style definition.
  • style is expected to be an XmlBLOB containing a valid SLD complex Style.
    If CreatedStylingTables() was invoked without specifying the relaxed option this XmlBLOB is expected to have successfully passed a formal XML Schema Validation.
    The registered Style will be identified either by its unique Style ID or by its unique Style Name automatically retrieved from SLD/SE XML.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_UnregisterGroupStyle SE_UnregisterGroupStyle( style_id Integer [ , remove_all Integer ] ) : Integer
SE_UnregisterGroupStyle( style_name Text [ , remove_all Integer ] ) : Integer
libxml2 Removes an already registered Group Style definition.
  • The Style to be removed could be referenced either by its unique Style Id or by its Style Name.
    Anyway any attempt to remove a Style identified by its Name will be rejected if the if two (or more) Styles share the same Name thus causing ambiguity.
  • when the optional argument remove_all is explicitly set to TRUE the Style will be removed even if it's already referenced by some RasterStyledLayer and all dependings references will be removed at the same time.
    In any other case any attempt to unregister a Style already referenced by one (or more) RasterStyleLayer will be rejected.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_ReloadGroupStyle SE_ReloadGroupStyle( style_id Integer , style BLOB ) : Integer
SE_ReloadGroupStyle( style_name Text , style BLOB ) : Integer
libxml2 Updates an already existing Group Style definition.
  • style is expected to be an XmlBLOB containing a valid SLD complex Style.
    If CreatedStylingTables() was invoked without specifying the relaxed option this XmlBLOB is expected to have successfully passed a formal XML Schema Validation.
    The updated Style will continue to be identified by its current unique Style ID but the Style Name will be automatically updated accordingly to SLD/SE XML.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_RegisterStyledGroupStyle SE_RegisterStyledGroupStyle( group_name String , style_id Integer ) : Integer
SE_RegisterStyledGroupStyle( group_name String , style_name Text ) : Integer
libxml2 Associates a Group Style to a Styled Group.
  • group_name must identify an existing Styled Group.
  • An already registered Style can be referenced either by its unique Stile ID or by its Name; anyway a reference by Name could eventually fail if the Name is ambiguous (duplicate).

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
SE_UnregisterStyledGroupStyle SE_UnregisterStyledGroupStyle( group_name String , style_id Integer ) : Integer
SE_UnregisterStyledGroupStyle( group_name String , style_name Text ) : Integer
libxml2 Removes an association between a Group Style and a Styled Group.
  • group_name must identify an existing Styled Group.
  • An already associated Style can be referenced either by its unique Stile ID or by its Name; anyway a reference by Name could eventually fail if the Name is ambiguous (duplicate).

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.

SQL functions supporting ISO Metadata

Function Syntax OGC
defined
required
module
Summary
CreateIsoMetadataTables CreateIsoMetadataTables() : Integer
CreateIsoMetadataTables( relaxed Integer ) : Integer
libxml2 Creates a set of tables supporting ISO Metadata.
  • if the optional argument relaxed is specified (any value), then a relaxed version of the validating Triggers will be installed.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
RegisterIsoMetadata RegisterIsoMetadata( scope String , metadata BLOB ) : Integer
RegisterIsoMetadata( scope String , metadata BLOB , id Integer ) : Integer
RegisterIsoMetadata( scope String , metadata BLOB , fileIdentifier String ) : Integer
libxml2 Inserts (or updates) an ISO Metadata definition.
  • scope can be one of undefined, fieldSession, collectionSession, series, dataset, featureType, feature, attributeType, attribute, tile, model, catalogue, schema, taxonomy, software, service, collectionHardware, nonGeographicDataset, dimensionGroup.
  • metadata is expected to be a valid XmlBLOB storing some IsoMetadata payload.
  • the first form (two arguments only) always performs an INSERT; if one the optional arguments id or fileIdentifier an UPDATE could be eventually performed if a corresponding metadata row is already defined.

the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.
GetIsoMetadataId GetIsoMetadataId( fileIdentifier String ) : Integer libxml2 Return the unique id corresponding to the ISO Metadata definition identified by fileIdentifier.
If no corresponding ISO Metadata definition exists, this function will always return ZERO; -1 will be returned for invalid arguments.

SQL functions implementing FDO/OGR compatibility

Function Syntax OGC
defined
required
module
Summary
CheckSpatialMetaData CheckSpatialMetaData( void ) : Integer base Checks the Spatial Metadata type, then returning:
  • 0 - if the geometry_columns or spatial_ref_sys table does not exists, or if their actual layout doesn't corresponds to any known implementation
  • 1 - if both tables exist, and their layout is the one previously used by SpatiaLite legacy (older versions including 3.1.0 any earlier)
  • 2 - if both tables exist, and their layout is the one used by FDO/OGR
  • 3 - if both tables exist, and their layout is the one currently used by SpatiaLite (4.0.0 or any subsequent version)
  • 4 - if the DB layout is the one defined by the OGC GPKG specification (GeoPackage)
AutoFDOStart AutoFDOStart( void ) : Integer base This function will inspect the Spatial Metadata, then automatically creating/refreshing a VirtualFDO wrapper for each FDO/OGR geometry table
the return type is Integer [how many VirtualFDO tables have been created]
AutoFDOStop AutoFDOStop( void ) : Integer base This function will inspect the Spatial Metadata, then automatically destroying any VirtualFDO wrapper found
the return type is Integer [how many VirtualFDO tables have been destroyed]
InitFDOSpatialMetaData InitFDOSpatialMetaData( void ) : Integer base Creates the geometry_columns and spatial_ref_sys metadata tables
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
Please note: Spatial Metadata created using this function will have the FDO/OGR layout, and not the standard SpatiaLite layout
AddFDOGeometryColumn AddFDOGeometryColumn( table String , column String , srid Integer , geom_type Integer , dimension Integer, geometry_format String ) : Integer base Creates a new geometry column updating the FDO/OGR Spatial Metadata tables
geom_type has to be one of the followings:
  • 1 POINT
  • 2 LINESTRING
  • 3 POLYGON
  • 4 MULTIPOINT
  • 5 MULTILINESTRING
  • 6 MULTIPOLYGON
  • 7 GEOMETRYCOLLECTION
dimension may be 2, 3 or 4, accordingly to OGR/FDO specs
geometry_format has to be one of the followings:
  • 'WBT'
  • 'WKT'
  • 'FGF'

the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
RecoverFDOGeometryColumn RecoverFDOGeometryColumn( table String , column String , srid Integer , geom_type String , dimension Integer, geometry_format String ) : Integer base Validates an existing ordinary column in order to possibly transform it in a real geometry column, thus updating the FDO/OGR Spatial Metadata tables
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE
DiscardFDOGeometryColumn DiscardFDOGeometryColumn( table String , column String ) : Integer base Removes a geometry column from FDO/OGR Spatial MetaData tables
the column itself still continues to exist untouched as an ordinary column
the return type is Integer, with a return value of 1 for TRUE or 0 for FALSE

SQL functions implementing OGC GeoPackage compatibility

Function Syntax OGC
defined
required
module
Summary
CheckGeoPackageMetaData CheckGeoPackageMetaData( void ) : Integer base This function will inspect the DB layout checking if it corresponds to the GPKG own style
the return type is Integer, with a return value of 1 for TRUE, 0 for FALSE
AutoGPKGStart AutoGPKGStart( void ) : Integer GeoPackage This function will inspect the DB layout, then automatically creating/refreshing a VirtualGPKG wrapper for each GPKG geometry table
the return type is Integer [how many VirtualGPKG tables have been created]
AutoGPKGStop AutoGPKGStop( void ) : Integer GeoPackage This function will inspect the DB layout, then automatically destroying any VirtualGPKG wrapper found
the return type is Integer [how many VirtualGPKG tables have been destroyed]
gpkgCreateBaseTables gpkgCreateBaseTables( void ) : void GeoPackage This function will create base tables for an "empty" GeoPackage
returns nothing on success, raises exception on error
gpkgInsertEpsgSRID gpkgInsertEpsgSRID( srid Integer ) : void GeoPackage This function will add a spatial reference system entry for the specified EPSG identifier; it is an error to try to add the entry if it already exists
returns nothing on success, raises exception on error
gpkgCreateTilesTable gpkgCreateTilesTable( tile_table_name String , srid Integer , min_x Double precision , min_y Double precision , max_x Double precision , max_y Double precision ) : void GeoPackage This function will create a new (empty) Tiles table and the triggers for that table; It also adds in the matching entries into gpkg_contents and gpkg_tile_matrix_set.
This function assumes usual tile conventions, including that the tiles are power-of-two-zoom.
returns nothing on success, raises exception on error
gpkgCreateTilesZoomLevel gpkgCreateTilesZoomLevel( tile_table_name String, zoom_level Integer , extent_width Double precision , extent_height Double precision ) : void GeoPackage This function will add a zoom level for the specified table.
This function assumes usual tile conventions, including that the tiles are power-of-two-zoom, 256x256 pixels, 1 tile at the top level (zoom level 0).
returns nothing on success, raises exception on error
gpkgAddTileTriggers gpkgAddTileTriggers( tile_table_name String ) : void GeoPackage This function will add Geopackage tile table triggers for the named table.
returns nothing on success, raises exception on error
gpkgGetNormalZoom gpkgGetNormalZoom( tile_table_name String , inverted_zoom_level Integer ) : Integer GeoPackage This function will return the normal integer zoom level for data stored in the specified table.
Note that this function can also be used to convert from a normal zoom level to an inverted zoom level - this conversion is symmetric.
Raises a SQL exception if inverted zoom level is outside the range of tile_matrix_metadata table normal zoom levels defined for the tile_table
gpkgGetNormalRow gpkgGetNormalRow( tile_table_name String , normal_zoom_level Integer , inverted_row_number Integer ) : Integer GeoPackage This function will return the normal integer row number for the specified table, normal zoom level and inverted row number.
Note that this function can also be used to convert from a normal row number to an inverted row number - this conversion is symmetric.
Raises a SQL exception if no zoom level row record in tile_matrix_metadata
gpkgGetImageType gpkgGetImageType( image Blob ) : String GeoPackage This function will return the image type (as a string) of the blob argument, or "unknown" if the image type is not one of the PNG, JPEG, TIFF or WebP format types that are supported in GeoPackage. The result will be one of:
  • "png" for PNG
  • "jpeg" for JPEG
  • "tiff" for TIFF
  • "x-webp" for WebP
These are the mime type for the image format (without the "image/" prefix).
This function raises exception on error (e.g. wrong argument type).
gpkgAddGeometryColumn gpkgAddGeomtryColumn( table_name Sting, geometry_column_name String , geometry_type String , with_z Integer , with_m Integer , srs_id Integer ) : void GeoPackage Adds a geometry column to the specified table:
  • geometry_type is a normal WKT name:
    • "GEOMETRY"
    • "POINT"
    • "LINESTRING"
    • "POLYGON"
    • "MULTIPOINT"
    • "MULTILINESTRING"
    • "MULTIPOLYGON"
    • "GEOMCOLLECTION"
  • with_z is a flag (0 for no z values, 1 for mandatory z values, 2 for optional z values)
  • with_m is a flag (0 for no m values, 1 for mandatory m values, 2 for optional m values)

returns nothing on success, raises exception on error
gpkgAddGeometryTriggers gpkgAddGeometryTriggers( table_name String , geometry_column_name String ) : void GeoPackage This function will add Geopackage geometry table triggers for the named table.
returns nothing on success, raises exception on error
gpkgAddSpatialIndex gpkgAddSpatialIndex( table_name String , geometry_column_name String ) : void GeoPackage This function will add Geopackage Spatial Index support for the named table.
returns nothing on success, raises exception on error
gpkgMakePoint gpkgMakePoint (x Double precision , y Double precision ) : GPKG Blob Geometry
gpkgMakePoint (x Double precision , y Double precision , srid Integer ) : GPKG Blob Geometry
GeoPackage This function will create a GeoPackage geometry POINT.
Raises a SQL exception on error
gpkgMakePointZ gpkgMakePointZ (x Double precision , y Double precision , z Double precision ) : GPKG Blob Geometry
gpkgMakePointZ (x Double precision , y Double precision , z Double precision , srid Integer ) : GPKG Blob Geometry
GeoPackage This function will create a GeoPackage geometry POINT Z.
Raises a SQL exception on error
gpkgMakePointM gpkgMakePointM (x Double precision , y Double precision , m Double precision ) : GPKG Blob Geometry
gpkgMakePointM (x Double precision , y Double precision , m Double precision , srid Integer ) : GPKG Blob Geometry
GeoPackage This function will create a GeoPackage geometry POINT M.
Raises a SQL exception on error
gpkgMakePointZM gpkgMakePointZM (x Double precision , y Double precision , z Double precision , m Double precision ) : GPKG Blob Geometry
gpkgMakePointZM (x Double precision , y Double precision , z Double precision , m Double precision , srid Integer ) : GPKG Blob Geometry
GeoPackage This function will create a GeoPackage geometry POINT ZM.
Raises a SQL exception on error
IsValidGPB IsValidGPB( geom Blob ) : Integer GeoPackage This function will inspect a BLOB then checking if it really corresponds to a GPKG own Geometry
the return type is Integer, with a return value of 1 for TRUE, 0 for FALSE
AsGPB AsGPB( geom BLOB encoded geometry ) : GPKG Blob Geometry GeoPackage This function will convert a SpatiaLite geometry blob into a GeoPackage format geometry blob.
Will return NULL if any error is encountered
GeomFromGPB GeomFromGPB( geom GPKG Blob Geometry ) : BLOB encoded geometry GeoPackage This function will convert a GeoPackage format geometry blob into a SpatiaLite geometry blob.
Will return NULL if any error is encountered
CastAutomagic CastAutomagic( geom Blob ) : BLOB encoded geometry GeoPackage This function will indifferently accept on input:
  • a SpatiaLite own BLOB Geometry
  • a GPKG own BLOB Geometry
then returning a SpatiaLite own BLOB geometry.
Will return NULL if any error is encountered or on invalid / mismatching argument
GPKG_IsAssignable GPKG_IsAssignable( expected_type_name String , actual_type_name String ) : Integer GeoPackage This function will check if expected_type is the same or is a super-type of actual_type; this function is required by the standard implementation of GPKG Geometry validation Triggers.
the return type is Integer, with a return value of 1 for TRUE, 0 for FALSE

SQL functions for MbrCache-based queries

Function Syntax OGC
defined
required
module
Summary
FilterMbrWithin FilterMbrWithin( x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision ) base Retrieves from an MbrCache any entity whose MBR falls within the rectangle identified by extreme points x1 y1 and x2 y2
FilterMbrContains FilterMbrContains( x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision ) base Retrieves from an MbrCache any entity whose MBR contains the rectangle identified by extreme points x1 y1 and x2 y2
FilterMbrIntersects FilterMbrIntersects( x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision ) base Retrieves from an MbrCache any entity whose MBR intersects the rectangle identified by extreme points x1 y1 and x2 y2
BuildMbrFilter BuildMbrFilter( x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision ) base Creates an MBR identified by extreme points x1 y1 and x2 y2
This fuction is used internally by triggers related to MbrCache management, and is not intended for any other usage

SQL functions for R*Tree-based queries (Geometry Callbacks)

Function Syntax OGC
defined
required
module
Summary
RTreeIntersects RTreeIntersects( x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision ) geocallbacks Retrieves from an R*Tree Spatial Index any entity whose MBR intersect the rectangle identified by extreme points x1 y1 and x2 y2
RTreeWithin RTreeWithin( x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision ) geocallbacks Deprecated function
Still maintained so to avoid backward compatibility issues, but now simply is an alias-name for RTreeIntersects
RTreeContains RTreeContains( x1 Double precision , y1 Double precision , x2 Double precision , y2 Double precision ) geocallbacks Deprecated function
Still maintained so to avoid backward compatibility issues, but now simply is an alias-name for RTreeIntersects
RTreeDistWithin RTreeDistWithin( x Double precision , y Double precision , radius Double precision ) geocallbacks Retrieves from an R*Tree Spatial Index any entity whose MBR intersect the square circumscribed on the given circle (x y center, radius)

SQL functions supporting XmlBLOB

Function Syntax OGC
defined
required
module
Summary
XB_Create XB_Create( xmlPayload BLOB ) : XmlBLOB
XB_Create( xmlPayload BLOB , compressed Boolean ) : XmlBLOB
XB_Create( xmlPayload BLOB , compressed Boolean , schemaURI Text ) : XmlBLOB
XB_Create( xmlPayload BLOB , compressed Boolean , internalSchemaURI Boolean ) : XmlBLOB
libxml2 Construct an XmlBLOB object starting from an XmlDocument.
  • If compressed is set to TRUE the XmlBlob object will be compressed (default setting).
  • If schemaURI is specified then the XmlDocument will be validated against the given Schema (default setting is skipping any XML validation).
  • If internalSchemaURI is set (any value), then the XmlDocument will be validated againt the Schema URI internally defined within the XmlDocument itself (if any).

NULL will be returned for not well-formed XmlDocuments, or when XML validation is required but XmlDocument fails to pass validation for any reason.
XB_GetPayload XB_GetPayload( xmlObject XmlBLOB [ , indent Integer ] ) : BLOB libxml2 Extracts a generic BLOB from an XmlBLOB object, exactly corresponding to the original XmlDocument and fully preserving the original character encoding.
If the optional argument indent is set to some positive value then the returned XmlDocument will be nicely formatted and properly indented by the required factor; ZERO will cause the whole XmlDocument to be returned as a single line. (default setting is negative indenting, i.e. not reformatting at all).
NULL will be returned for any invalid input (not a valid XmlBLOB object).
XB_GetDocument XB_GetDocument( xmlObject XmlBLOB [ , indent Integer ] ) : String libxml2 Extracts an XmlDocument from an XmlBLOB object; the returned XmlDocument will always be UTF-8 encoded (TEXT), irrespectively from the original internal encoding declaration.
If the optional argument indent is set to some positive value then the returned XmlDocument will be nicely formatted and properly indented by the required factor; ZERO will cause the whole XmlDocument to be returned as a single line. (default setting is negative indenting, i.e. not reformatting at all).
NULL will be returned for any invalid input (not a valid XmlBLOB object).
XB_SchemaValidate XB_SchemaValidate( xmlObject XmlBLOB , schemaURI Text [ , compressed Boolean ] ) : XmlBLOB
XB_SchemaValidate( xmlObject XmlBLOB , internalSchemaURI Boolean [ , compressed Boolean ] ) : XmlBLOB
libxml2 Construct an XML validated XmlBLOB object starting from an XmlDocument.
  • If compressed is set to TRUE the XmlBlob object will be compressed (default setting).
  • If schemaURI is specified then the XmlDocument will be validated against the given Schema (default setting is skipping any XML validation).
  • If internalSchemaURI is set (any value), then the XmlDocument will be validated againt the Schema URI internally defined within the XmlDocument itself (if any).

NULL will be returned if the input XmlBLOB fails to pass validation for any reason.
XB_Compress XB_Compress( xmlObject XmlBLOB ) : XmlBLOB libxml2 A new compressed XmlBLOB object will be returned.
If the input XmlBLOB is already compressed this one is a harmless no-op.
NULL will be returned for any invalid input (not a valid XmlBLOB object).
XB_Uncompress XB_Uncompress( xmlObject XmlBLOB ) : XmlBLOB libxml2 A new uncompressed XmlBLOB object will be returned.
If the input XmlBLOB is already uncompressed this one is a harmless no-op.
NULL will be returned for any invalid input (not a valid XmlBLOB object).
XB_IsValid XB_IsValid( xmlObject XmlBLOB ) : Integer libxml2 The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
XB_IsCompressed XB_IsCompressed( xmlObject XmlBLOB ) : Integer libxml2 The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
XB_IsSchemaValidated XB_IsSchemaValidated( xmlObject XmlBLOB ) : Integer libxml2 The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
XB_IsIsoMetadata XB_IsIsoMetadata( xmlObject XmlBLOB ) : Integer libxml2 The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
XB_IsSldSeVectorStyle XB_IsSldSeVectorStyle( xmlObject XmlBLOB ) : Integer libxml2 The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
XB_IsSldSeRasterStyle XB_IsSldSeRasterStyle( xmlObject XmlBLOB ) : Integer libxml2 The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
XB_IsSvg XB_IsSvg( xmlObject XmlBLOB ) : Integer libxml2 The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
XB_GetDocumentSize XB_GetDocumentSize( xmlObject XmlBLOB ) : Integer libxml2 Will return the size in bytes of the corresponding uncompressed XmlDocument.
NULL will be returned for any invalid input (not a valid XmlBLOB object).
XB_GetEncoding XB_GetEncoding( xmlObject XmlBLOB ) : String libxml2 Will return the character encoding internally declared by the XmlDocument corresponding to the input XmlBLOB.
NULL will be returned for any invalid input (not a valid XmlBLOB object), or when the XmlDocument doesn't explicitly declares any encoding.
XB_GetSchemaURI XB_GetSchemaURI( xmlObject XmlBLOB ) : String libxml2 Will return the Schema URI effectively used to validate an XmlBLOB.
NULL will be returned for any invalid input (not a valid XmlBLOB object), or when the XmlBLOB isn't validated.
XB_GetInternalSchemaURI XB_GetInternalSchemaURI( xmlPayload BLOB ) : String libxml2 Will return the Schema URI internally declared by the input XmlDocument (xsi:noNamespeceSchemaLocation or xsi:schemaLocation).
NULL will be returned for any invalid input (not a valid XmlBLOB object), or when the XmlDocument doesn't declares any Schema at all.
XB_GetFileId XB_GetFileId( xmlObject XmlBLOB ) : String libxml2 Will return the FileIdentifier defined within the XmlBLOB (if any).
NULL will be returned for any invalid input (not a valid XmlBLOB object), or when no FileIdentifier is defined.
Supported only on ISO Metadata XML Documents.
XB_SetFileId XB_SetFileId( xmlObject XmlBLOB , fileId String ) : XmlBLOB libxml2 Will return a new XmlBLOB by replacing the FileIdentifier value.
The input XmlBLOB is expected to be of the ISO Metadata type and must containt an already defined FileIdentifier.
NULL will be returned for any invalid input.
XB_AddFileId XB_AddFileId( xmlObject XmlBLOB , fileId String , IdNameSpacePrefix String , IdNameSpaceURI String , CsNameSpacePrefix String , CsNameSpaceURI String ) : XmlBLOB libxml2 Will return a new XmlBLOB by inserting a FileIdentifier value.
The input XmlBLOB is expected to be of the ISO Metadata type and must not containt an already defined FileIdentifier.
IdNameSpacePrefix and IdNameSpaceURI are expected to represent the namespace (if any) corresponding to the <fileIdentifier> tag (could be eventually NULL).
CsNameSpacePrefix and CsNameSpaceURI are expected to represent the namespace (if any) corresponding to the <CharacterString> tag (could be eventually NULL).
NULL will be returned for any invalid input.
XB_GetParentId XB_GetParentId( xmlObject XmlBLOB ) : String libxml2 Will return the ParentIdentifier defined within the XmlBLOB (if any).
NULL will be returned for any invalid input (not a valid XmlBLOB object), or when no ParentIdentifier is defined.
Supported only on ISO Metadata XML Documents.
XB_SetParentId XB_SetParentId( xmlObject XmlBLOB , parentId String ) : XmlBLOB libxml2 Will return a new XmlBLOB by replacing the ParentIdentifier value.
The input XmlBLOB is expected to be of the ISO Metadata type and must containt an already defined ParentIdentifier.
NULL will be returned for any invalid input.
XB_AddParentId XB_AddParentId( xmlObject XmlBLOB , parentId String , IdNameSpacePrefix String , IdNameSpaceURI String , CsNameSpacePrefix String , CsNameSpaceURI String ) : XmlBLOB libxml2 Will return a new XmlBLOB by inserting a ParentIdentifier value.
The input XmlBLOB is expected to be of the ISO Metadata type and must not containt an already defined ParentIdentifier.
IdNameSpacePrefix and IdNameSpaceURI are expected to represent the namespace (if any) corresponding to the <parentIdentifier> tag (could be eventually NULL).
CsNameSpacePrefix and CsNameSpaceURI are expected to represent the namespace (if any) corresponding to the <CharacterString> tag (could be eventually NULL).
NULL will be returned for any invalid input.
XB_GetTitle XB_GetTitle( xmlObject XmlBLOB ) : String libxml2 Will return the Title defined within the XmlBLOB (if any).
NULL will be returned for any invalid input (not a valid XmlBLOB object), or when no Title is defined.
Supported only on ISO Metadata and SLD/SE Styles.
XB_GetAbstract XB_GetAbstract( xmlObject XmlBLOB ) : String libxml2 Will return the Abstract defined within the XmlBLOB (if any).
NULL will be returned for any invalid input (not a valid XmlBLOB object), or when no Abstract is defined.
Supported only on ISO Metadata and SLD/SE Styles.
XB_GetGeometry XB_GetGeometry( xmlObject XmlBLOB ) : Geometry libxml2 Will return the Geometry (Bounding Box) defined within the XmlBLOB (if any).
NULL will be returned for any invalid input (not a valid XmlBLOB object), or when no Bounding Box is defined.
Supported only on ISO Metadata XML Documents.
XB_GetLastParseError XB_GetLastParseError( void ) : String libxml2 Will return the most recent XML parsing error (if any).
NULL will be returned if there is no pending parsing error.
XB_GetLastValidateError XB_GetLastValidateError( void ) : String libxml2 Will return the most recent XML validating error (if any).
NULL will be returned if there is no pending validating error.
XB_IsValidXPathExpression XB_IsValidXPathExpression( expr Text ) : Integer libxml2 The return type is Integer, with a return value of 1 for TRUE, 0 for FALSE, and –1 for UNKNOWN corresponding to a function invocation on NULL arguments.
XB_GetLastXPathError XB_GetLastXPathError( void ) : String libxml2 Will return the most recent XPath error (if any).
NULL will be returned if there is no pending XPath error.
XB_CacheFlush XB_CacheFlush( void ) : Boolean libxml2 Reset the internal XML Schema cache to its initial empty state.
XB_LoadXML XB_LoadXML( filepath-or-URL String ) : BLOB libxml2 If filepath-or-URL corresponds to some valid local pathname, and the corresponding file (expected to contain a well-formed XML Document) can be actually accessed in read mode, then the whole file content will be returned as a BLOB value.
This function is even able to acces a remote XML Document identified by an URL.
Otherwise NULL will be returned.
Please note: SQLite doesn't support BLOB values bigger than SQLITE_MAX_LENGTH (usually, 1 GB).
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
Please see: CountUnsafeTriggers()
XB_StoreXML XB_StoreXML( XmlObject XmlBLOB , filepath String ) : Integer
XB_StoreXML( XmlObject XmlBLOB , filepath String , indent Integer ) : Integer
libxml2 If XmlObject is of the XmlBLOB-type, and if filepath corresponds to some valid pathname (accessible in write/create mode), then the corresponding file will be created/overwritten so to contain the corresponding XML Document (fully preserving the original character encoding).
If the optional argument indent is set to some positive value then the returned XmlDocument will be nicely formatted and properly indented by the required factor; ZERO will cause the whole XmlDocument to be returned as a single line. (default setting is negative indenting, i.e. not reformatting at all).
The return type is Integer, with a return value of 1 for success, 0 for failure and -1 for invalid arguments.
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
Please see: CountUnsafeTriggers()

SQL functions supporting SRID inspection

Function Syntax Summary
SridIsGeographic SridIsGeographic( SRID Integer ) : Integer Will inspect the SRID definitions checking if the SRID is of the Geographic type;
will return 1 (i.e. TRUE) or 0 (i.e. FALSE).
NULL will be returned on invalid argument or if the SRID is undefined.
SridIsProjected SridIsProjected( SRID Integer ) : Integer Will inspect the SRID definitions checking if the SRID is of the Projected type;
will return 1 (i.e. TRUE) or 0 (i.e. FALSE).
NULL will be returned on invalid argument or if the SRID is undefined.
SridHasFlippedAxes SridHasFlippedAxes( SRID Integer ) : Integer Will inspect the SRID definitions checking if the SRID requires a flipped Axes configuration: i.e. Y,X instead of the most usual X,Y;
will return 1 (i.e. TRUE) or 0 (i.e. FALSE).
NULL will be returned on invalid argument or if the SRID is undefined.
SridGetSpheroid SridGetSpheroid( SRID Integer ) : Text
SridGetEllipsoid( SRID Integer ) : Text
Will inspect the SRID definitions then returning the appropriate Spheroid name.
NULL will be returned on invalid argument or if the SRID is undefined.
SridGetPrimeMeridian SridGetPrimeMeridian( SRID Integer ) : Text Will inspect the SRID definitions then returning the appropriate Prime Meridian name.
NULL will be returned on invalid argument or if the SRID is undefined.
SridGetDatum SridGetDatum( SRID Integer ) : Text Will inspect the SRID definitions then returning the appropriate Datum name.
NULL will be returned on invalid argument or if the SRID is undefined.
SridGetUnit SridGetUnit( SRID Integer ) : Text Will inspect the SRID definitions then returning the appropriate Unit name.
NULL will be returned on invalid argument or if the SRID is undefined.
SridGetProjection SridGetProjection( SRID Integer ) : Text Will inspect the SRID definitions then returning the appropriate Projection name.
NULL will be returned on invalid argument or if the SRID is undefined.
SridGetAxis_1_Name SridGetAxis_1_Name( SRID Integer ) : Text Will inspect the SRID definitions then returning the appropriate Name for its first axis.
NULL will be returned on invalid argument or if the SRID is undefined.
SridGetAxis_1_Orientation SridGetAxis_1_Orientation( SRID Integer ) : Text Will inspect the SRID definitions then returning the appropriate Orientation for its first axis.
NULL will be returned on invalid argument or if the SRID is undefined.
SridGetAxis_2_Name SridGetAxis_2_Name( SRID Integer ) : Text Will inspect the SRID definitions then returning the appropriate Name for its second axis.
NULL will be returned on invalid argument or if the SRID is undefined.
SridGetAxis_2_Orientation SridGetAxis_2_Orientation( SRID Integer ) : Text Will inspect the SRID definitions then returning the appropriate Orientation for its second axis.
NULL will be returned on invalid argument or if the SRID is undefined.

miscellaneous advanced SQL functions

Function Syntax Summary
CloneTable CloneTable( db-prefix Text , input_table Text , output_table Text , transaction Integer ) : Integer
CloneTable( db-prefix Text , input_table Text , output_table Text , transaction Integer , option_1 Text [ , ... , option_10 Text ] ) : Integer
Will clone (i.e. create+copy) an origin table into a destination table: the origin could be eventually located into some attached DB, but the destination is always assumed to be located into the primary DB.
  • Mandatory arguments:
    • db-prefix corresponding to the origin; the primary DB always corresponds to the main prefix.
    • input_table name of the origin table
    • output_table name of the destination table
    • transaction a boolean values stating if the whole operation has to be atomically confined within a monolithic SQL transaction
  • Optional arguments: a maximum of 10 further options could be eventually specified. Valid options are:
    • ::with-foreign-keys::
    • ::with-triggers::
    • ::resequence::
    • ::append::
    • ::ignore::column_name
    • ::cast2multi::geometry_column

Will return 0 (i.e. FALSE) on failure, any other value (i.e. TRUE) on success. NULL will be returned on invalid arguments.
CheckDuplicateRows CheckDuplicateRows( table Text ) : Integer Will check if the given table does contain duplicate rows, i.e. rows presenting identical values for all columns (ignoring any Primary Key column).
Will return the total number of duplicate rows found.
NULL will be returned on invalid arguments.
RemoveDuplicateRows RemoveDuplicateRows( table Text ) : Integer
RemoveDuplicateRows( table Text , transaction Boolean ) : Integer
Will remove all duplicate rows from the given table preserving only a songle occurrence.
The optional argument transaction determines if an internal SQL Transaction should be automatically started or not (the default setting if not explicitly overridden is TRUE).
Will return the total number of deleted rows.
NULL will be returned on invalid arguments.
ElementaryGeometries ElementaryGeometries( in_table Text , geom_column Text , out_table Text , out_pk Text , out_multi_id Text ) : Integer
ElementaryGeometries( in_table Text , geom_column Text , out_table Text , out_pk Text , out_multi_id Text , transaction Boolean ) : Integer
Will create a new out_table directly corresponding to in_table. The output table will be arranged in such a way that each row will always contain an elementary Geometry; so each time that a MULTI-type Geometry is found in the input table it will be split into mamy distinct rows.
out_pk is the name to be set for the output Primary Key, and out_multi_id is the name to be set for a second column within the output table where to store the original Primary Key.
The optional argument transaction determines if an internal SQL Transaction should be automatically started or not (the default setting if not explicitly overridden is TRUE).
Will return the total number of rows inserted into the output table.
NULL will be returned on invalid arguments.
DropGeoTable DropGeoTable( table Text ) : Integer
DropGeoTable( table Text , transaction Boolean ) : Integer
DropGeoTable( db-prefix Text , table Text ) : Integer
DropGeoTable( db-prefix Text , table Text , transaction Boolean ) : Integer
Will completely remove a Geometry Table (or Spatial View) this including any eventual SpatialIndex, metadata and statistics definitions an alike.
The optional argument transaction determines if an internal SQL Transaction should be automatically started or not (the default setting if not explicitly overridden is TRUE).
Will return 0 (i.e. FALSE) on failure, any other value (i.e. TRUE) on success..
NULL will be returned on invalid arguments.
ImportSHP ImportSHP( filename Text , table Text , charset Text ) : Integer
ImportSHP( filename Text , table Text , charset Text [ , srid Integer [ , geom_column Text [ , pk_column Text [ , geometry_type Text [ , coerce2D Integer [ , compressed Integer [ , spatial_index Integer [ , text_dats Integer ] ] ] ] ] ] ] ] ) : Integer
Will import an external Shapfile into an internal Table:
  • Mandatory arguments:
    • filename absolute or relative path leading to the Shapefile (omitting any .shp, .shx or .dbf suffix).
    • table name of the table to be created.
    • charset the character encoding adopted by the DBF member, as e.g. UTF-8 or CP1252
  • Optional arguments:
    • srid EPSG SRID value; -1 by default.
    • geom_column name to assigned to the Geometry column; Geometry by default.
    • pk_column name of a DBF column to be used in the Primary Key role; an INTEGER AUTOINCREMENT PK will be created by default.
    • geometry_type one between: AUTO, POINT|Z|M|ZM, LINESTRING|Z|M|ZM, POLYGON|Z|M|ZM, MULTIPOINT|Z|M|ZM, LINESTRING|Z|M|ZM, MULTIPOLYGON|Z|M|ZM; by default AUTO.
    • coerce2D boolean flag: casting to 2D or not; 0 by default.
    • compressed boolean flag; compressed geometries or not; 0 by default.
    • spatial_index boolean flag: immediately building a Spatial Index or not; 0 by default.
    • text_dates boolean flag: interpreting DBF dates as plaintext or not: 0 by default (i.e. as Julian Day).

Will return the total number of imported rows.
NULL will be returned on invalid arguments.
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
ExportSHP ExportSHP( table Text , geom_column Text , filename Text , charset Text ) : Integer
ExportSHP( table Text , geom_column Text , filename Text , charset Text , geom_type Text) : Integer
Will export an internal Table as an external Shapefile:
  • table name of the table to be exported.
  • geom_column name of the Geometry column.
  • filename absolute or relative path leading to the Shapefile (omitting any .shp, .shx or .dbf suffix).
  • charset the character encoding adopted by the DBF member, as e.g. UTF-8 or CP1252
  • the optional argument geom_type is useful when exporting unregistered Geometries, and can be one between: POINT, LINESTRING, POLYGON or MULTUPOINT.

Will return the total number of exported rows.
NULL will be returned on invalid arguments.
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
ImportDBF ImportDBF( filename Text , table Text , charset Text ) : Integer
ImportDBF( filename Text , table Text , charset Text [ , pk_column Text [ , text_dats Integer ] ] ) : Integer
Will import an external DBF file into an internal Table:
  • Mandatory arguments:
    • filename absolute or relative path leading to the DBF (including the .dbf suffix).
    • table name of the table to be created.
    • charset the character encoding adopted by the DBF, as e.g. UTF-8 or CP1252
  • Optional arguments:
    • pk_column name of a DBF column to be used in the Primary Key role; an INTEGER AUTOINCREMENT PK will be created by default.
    • text_dates boolean flag: interpreting DBF dates as plaintext or not: 0 by default (i.e. as Julian Day).

Will return the total number of imported rows.
NULL will be returned on invalid arguments.
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
ExportDBF ExportDBF( table Text , filename Text , charset Text ) : Integer Will export an internal Table as an external DBF file:
  • table name of the table to be exported.
  • filename absolute or relative path leading to the DBF (including the .dbf suffix).
  • charset the character encoding adopted by the DBF, as e.g. UTF-8 or CP1252

Will return the total number of exported rows.
NULL will be returned on invalid arguments.
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
ExportKML ExportKML( table Text , geo_column Text , filename Text ) : Integer
ExportKML( table Text , geo_column Text , filename Text [ , precision Integer [ , name_column Text [ , description Text ] ] ] ) : Integer
Will export an internal Table as an external KML file:
  • Mandatory aguments:
    • table name of the table to be exported.
    • geom_column name of the Geometry column.
    • filename absolute or relative path leading to the KML file.
  • Optional aguments:
    • precision number of decimal digits to be exported; 8 by default.
    • name_column name of the table's column containing KML names.
    • description_column name of the table's column containing KML descriptions.

Will return the total number of exported rows.
NULL will be returned on invalid arguments.
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
ExportGeoJSON ExportGeoJSON( table Text , geo_column Text , filename Text ) : Integer
ExportGeoJSON( table Text , geo_column Text , filename Text [ , format Text [ , precision Integer ] ] ) : Integer
Will export an internal Table as an external GeoJSON file:
  • Mandatory aguments:
    • table name of the table to be exported.
    • geom_column name of the Geometry column.
    • filename absolute or relative path leading to the GeoJSON file.
  • Optional aguments:
    • format specifies one of the several alternative GeoJSON formats; allowed values are none, MBR, withShortCRS, MBRwithShortCRS, withLongCRS or MBRwithLongCRS.
    • precision number of decimal digits to be exported; 8 by default.

Will return the total number of exported rows.
NULL will be returned on invalid arguments.
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
ImportXLS ImportXLS( filename Text , table Text ) : Integer
ImportXLS( filename Text , table Text [ , worksheet_index Integer [ , first_line_titles Integer ] ] ) : Integer
Will import an external spreadsheet file (Microsoft .xls format) into an internal Table:
  • Mandatory arguments:
    • filename absolute or relative path leading to the spreadsheet file.
    • table name of the table to be created.
  • Optional arguments:
    • worksheet_index a positive integer selecting the target worksheet in the case of a multi-sheet: 0 by default..
    • first_line_titles boolean flag: the first line of the worksheet contains column names or not: 0 by default.

Will return the total number of imported rows.
NULL will be returned on invalid arguments.
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
ImportWFS ImportWFS( filename_or_url Text , layer_name Text , table Text ) : Integer
ImportXLS( filename_or_url Text , layer_name Text , table Text [ , pk_column Text [ , swap_axes Integer [ , page_size Integer [ , spatial_index Integer ] ] ] ] ) : Integer
Will import data from a WFS datasource:
  • Mandatory arguments:
    • filename_or_url absolute or relative path leading to the WFS file.
      Alternatively an URL corresponding to a WFS service.
    • layer_name name of the WFS layer.
    • table name of the table to be created.
  • Optional arguments:
    • pk_column name of a WFS column to be used in the Primary Key role; an INTEGER AUTOINCREMENT PK will be created by default.
    • swap_axes boolean flag: swapping the X and Y axes or not: 0 by default.
    • page_size : how many features for each WFS paged requests; a negative number or zero if you don't intend to activate WFS paging. -1 by default.
    • spatial_index boolean flag: immediately building a Spatial Index or not; 0 by default.

Will return the total number of imported rows.
NULL will be returned on invalid arguments.
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
ImportDXF ImportDXF( filename String ) : Integer
ImportDXF( filename String [ , srid Integer, append Integer, dimensions Text, mode Text , special_rings Text , table_prefix Text , layer_name Text ] ) : Integer
Will import an external DXF file.
  • filename absolute or relative path leading to the DXF file.
  • srid EPSG SRID value; -1 by default.
  • append boolean flag: enabling or not append mode: 0 by default.
  • dimensions one between AUTO, 2D or 3D.
  • mode one between DISTINCT or MIXED.
  • special_rings one between NONE, LINKED or UNLINKED.
  • table_prefix: a prefix for table names; NULL if no prefix is required.
  • layer_name: name of a single DXF layer to be imported: NULL will import all layers found.
Will return 0 (i.e. FALSE) on failure, any other value (i.e. TRUE) on success.
NULL will be returned on invalid arguments.
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
ImportDXFfromDir ImportDXFfromDir( dir_path String ) : Integer
ImportDXFfromDir( dir_path String [ , srid Integer, append Integer, dimensions Text, mode Text , special_rings Text , table_prefix Text , layer_name Text ] ) : Integer
Will import all DXF files found within a given Directory.
  • dir_path absolute or relative path leading to a directory containing all the *.dxf files to be imported.
  • srid EPSG SRID value; -1 by default.
  • append boolean flag: enabling or not append mode: 0 by default.
  • dimensions one between AUTO, 2D or 3D.
  • mode one between DISTINCT or MIXED.
  • special_rings one between NONE, LINKED or UNLINKED.
  • table_prefix: a prefix for table names; NULL if no prefix is required.
  • layer_name: name of a single DXF layer to be imported: NULL will import all layers found.
Will return 0 (i.e. FALSE) on failure, any other value (i.e. TRUE) on success.
NULL will be returned on invalid arguments.
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
ExportDXF ExportDXF( out_dir String , filename String , sql_query String , layer_col_name String , geom_col_name String , label_col_name String , text_height_col_name String , text_rotation_col_name String , geom_filter Geometry [ , precision Integer ] ) : Integer Will export a whole DXF file.
  • The output file path is controlled by out_dir and filename.
  • sql_query is a complete SQL Statement returning the dataset to be exported.
  • layer_col_name, geom_col_name, label_col_name, text_height_col_name and text_rotation_col_name must specify the corresponding column names within the resultset returned by sql_query (label_col_name, text_height_col_name and text_rotation_col_name could be eventually NULL).
  • geom_filter acts as a spatial filter selecting which entities have to be exported (could be NULL).
  • the optional argument precision specificies how many decimal digits are required for coordinate values: if not specified the default is 3.
Will return 0 (i.e. FALSE) on failure, any other value (i.e. TRUE) on success.
Please note well: this SQL function open the doors to many potential security issues, and thus is always disabled by default.
Explicitly setting the environment variable SPATIALITE_SECURITY=relaxed is absolutely required in order to effectively enable this function.
back libspatialite-4.3.0a/Makefile.am0000664000175000017500000000126612544707704013503 00000000000000ACLOCAL_AMFLAGS = -I m4 AUTOMAKE_OPTIONS = dist-zip foreign EXTRA_DIST = makefile.vc nmake.opt Android_3.0.2.mk Android_4.3.0.mk \ spatialite-4.3.0.mk mainpage.doxy README.coverage \ spatialite-sql-latest.html config-msvc.h if ENABLE_EXAMPLES EXAMPLES = examples endif SUBDIRS = src test $(EXAMPLES) pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = spatialite.pc coverage-init: lcov --directory src --capture --initial --output-file libspatialite_cov.info coverage:: lcov --rc lcov_branch_coverage=1 --directory src --output-file libspatialite_cov.info --capture genhtml --rc lcov_branch_coverage=1 -o covresults libspatialite_cov.info MOSTLYCLEANFILES = libspatialite_cov.info libspatialite-4.3.0a/install-sh0000775000175000017500000003253712544707704013460 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: libspatialite-4.3.0a/configure0000775000175000017500000236633612573313635013372 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for libspatialite 4.3.0a. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and a.furieri@lqt.it $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libspatialite' PACKAGE_TARNAME='libspatialite' PACKAGE_VERSION='4.3.0a' PACKAGE_STRING='libspatialite 4.3.0a' PACKAGE_BUGREPORT='a.furieri@lqt.it' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS ANDROID_FALSE ANDROID_TRUE MACOSX_FALSE MACOSX_TRUE MINGW_FALSE MINGW_TRUE ENABLE_EXAMPLES_FALSE ENABLE_EXAMPLES_TRUE ENABLE_GEOPACKAGE_FALSE ENABLE_GEOPACKAGE_TRUE LIBXML2_LIBS LIBXML2_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG GEOS_CFLAGS GEOS_LDFLAGS GEOSCONFIG LIBOBJS CXXCPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB ac_ct_AR AR NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED LIBTOOL OBJDUMP DLLTOOL AS host_os host_vendor host_cpu host build_os build_vendor build_cpu build LN_S am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE ac_ct_CXX CXXFLAGS CXX EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_maintainer_mode enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_gnu_ld with_sysroot enable_libtool_lock enable_mathsql enable_geocallbacks enable_proj enable_iconv enable_freexl enable_epsg enable_geos with_geosconfig enable_gcp enable_geosadvanced enable_lwgeom enable_libxml2 enable_geopackage enable_gcov enable_examples ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP CXX CXXFLAGS CCC CXXCPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR LIBXML2_CFLAGS LIBXML2_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures libspatialite 4.3.0a to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/libspatialite] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of libspatialite 4.3.0a:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-mathsql enables SQL math functions [default=yes] --enable-geocallbacks enables geometry callbacks [default=no] --enable-proj enables PROJ.4 inclusion [default=yes] --enable-iconv enables ICONV inclusion [default=yes] --enable-freexl enables FreeXL inclusion [default=yes] --enable-epsg enables full EPSG dataset support [default=yes] --enable-geos enables GEOS inclusion [default=yes] --enable-gcp enables Control Points (from Grass GIS) [default=no] --enable-geosadvanced enables GEOS advanced features [default=yes] --enable-lwgeom enables LWGEOM support [default=no] --enable-libxml2 enables libxml2 inclusion [default=yes] --enable-geopackage enables GeoPackage support [default=yes] --enable-gcov turn on code coverage analysis tools --enable-examples enables building examples [default=yes] 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 both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot=DIR Search for dependent libraries within DIR (or the compiler's sysroot if not specified). --with-geosconfig=FILE specify an alternative geos-config file Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path LIBXML2_CFLAGS C compiler flags for LIBXML2, overriding pkg-config LIBXML2_LIBS linker flags for LIBXML2, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF libspatialite configure 4.3.0a generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## ------------------------------- ## ## Report this to a.furieri@lqt.it ## ## ------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_link # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by libspatialite $as_me 4.3.0a, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.15' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='libspatialite' VERSION='4.3.0a' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. # 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}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE ac_config_headers="$ac_config_headers config.h" # enabling huge-file support (64 bit file pointers) $as_echo "#define _LARGE_FILE 1" >>confdefs.h $as_echo "#define _FILE_OFFSET_BITS 64" >>confdefs.h $as_echo "#define _LARGEFILE_SOURCE 1" >>confdefs.h # disabling debug support $as_echo "#define NDEBUG 1" >>confdefs.h # config depending options # Checks for header files. DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; 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= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # 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. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; 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. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF else as_fn_error $? "cannot find stdlib.h, bailing out" "$LINENO" 5 fi done for ac_header in stdio.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdio.h" "ac_cv_header_stdio_h" "$ac_includes_default" if test "x$ac_cv_header_stdio_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDIO_H 1 _ACEOF else as_fn_error $? "cannot find stdio.h, bailing out" "$LINENO" 5 fi done for ac_header in string.h do : ac_fn_c_check_header_mongrel "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default" if test "x$ac_cv_header_string_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRING_H 1 _ACEOF else as_fn_error $? "cannot find string.h, bailing out" "$LINENO" 5 fi done for ac_header in memory.h do : ac_fn_c_check_header_mongrel "$LINENO" "memory.h" "ac_cv_header_memory_h" "$ac_includes_default" if test "x$ac_cv_header_memory_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_MEMORY_H 1 _ACEOF else as_fn_error $? "cannot find memory.h, bailing out" "$LINENO" 5 fi done for ac_header in math.h do : ac_fn_c_check_header_mongrel "$LINENO" "math.h" "ac_cv_header_math_h" "$ac_includes_default" if test "x$ac_cv_header_math_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_MATH_H 1 _ACEOF else as_fn_error $? "cannot find math.h, bailing out" "$LINENO" 5 fi done for ac_header in float.h do : ac_fn_c_check_header_mongrel "$LINENO" "float.h" "ac_cv_header_float_h" "$ac_includes_default" if test "x$ac_cv_header_float_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FLOAT_H 1 _ACEOF else as_fn_error $? "cannot find float.h, bailing out" "$LINENO" 5 fi done for ac_header in fcntl.h do : ac_fn_c_check_header_mongrel "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default" if test "x$ac_cv_header_fcntl_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FCNTL_H 1 _ACEOF else as_fn_error $? "cannot find fcntl.h, bailing out" "$LINENO" 5 fi done for ac_header in inttypes.h do : ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default" if test "x$ac_cv_header_inttypes_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_INTTYPES_H 1 _ACEOF else as_fn_error $? "cannot find inttypes.h, bailing out" "$LINENO" 5 fi done for ac_header in stddef.h do : ac_fn_c_check_header_mongrel "$LINENO" "stddef.h" "ac_cv_header_stddef_h" "$ac_includes_default" if test "x$ac_cv_header_stddef_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDDEF_H 1 _ACEOF else as_fn_error $? "cannot find stddef.h, bailing out" "$LINENO" 5 fi done for ac_header in stdint.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" if test "x$ac_cv_header_stdint_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H 1 _ACEOF else as_fn_error $? "cannot find stdint.h, bailing out" "$LINENO" 5 fi done for ac_header in sys/time.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default" if test "x$ac_cv_header_sys_time_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_TIME_H 1 _ACEOF else as_fn_error $? "cannot find sys/time.h, bailing out" "$LINENO" 5 fi done for ac_header in unistd.h do : ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" if test "x$ac_cv_header_unistd_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_UNISTD_H 1 _ACEOF else as_fn_error $? "cannot find unistd.h, bailing out" "$LINENO" 5 fi done for ac_header in sqlite3.h do : ac_fn_c_check_header_mongrel "$LINENO" "sqlite3.h" "ac_cv_header_sqlite3_h" "$ac_includes_default" if test "x$ac_cv_header_sqlite3_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SQLITE3_H 1 _ACEOF else as_fn_error $? "cannot find sqlite3.h, bailing out" "$LINENO" 5 fi done for ac_header in sqlite3ext.h do : ac_fn_c_check_header_mongrel "$LINENO" "sqlite3ext.h" "ac_cv_header_sqlite3ext_h" "$ac_includes_default" if test "x$ac_cv_header_sqlite3ext_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SQLITE3EXT_H 1 _ACEOF else as_fn_error $? "cannot find sqlite3ext.h, bailing out" "$LINENO" 5 fi done for ac_header in zlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" if test "x$ac_cv_header_zlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ZLIB_H 1 _ACEOF else as_fn_error $? "cannot find zlib.h, bailing out" "$LINENO" 5 fi done # Checks for programs. ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CXX_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # 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. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; 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. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # 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. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; 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. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS"; then ac_cv_prog_AS="$AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AS="${ac_tool_prefix}as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AS=$ac_cv_prog_AS if test -n "$AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 $as_echo "$AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AS"; then ac_ct_AS=$AS # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AS"; then ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AS="as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AS=$ac_cv_prog_ac_ct_AS if test -n "$ac_ct_AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 $as_echo "$ac_ct_AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AS" = x; then AS="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AS=$ac_ct_AS fi else AS="$ac_cv_prog_AS" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi ;; esac test -z "$AS" && AS=as test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$OBJDUMP" && OBJDUMP=objdump case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4.2' macro_revision='1.3337' ltmain="$ac_aux_dir/ltmain.sh" # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case "$ECHO" in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; 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 # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # 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` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test "$GCC" != yes; then reload_cmds=false fi ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) 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 lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' 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 \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 $as_echo "${with_sysroot}" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*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 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $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 lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi 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 : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" 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 : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _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 lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf # Set options enable_dlopen=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## 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_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' lt_prog_compiler_pic='-Xcompiler -fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) # 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\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no 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 inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='${wl}--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in 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' 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~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # 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 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' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes 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 link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' 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 # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' 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 export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test x"$lt_cv_prog_compiler__b" = xyes; then archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test "$lt_cv_irix_exported_symbol" = yes; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([A-Za-z]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux 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' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) 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 ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; 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 hardcode_into_libs=yes ;; haiku*) version_type=linux need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" 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=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) 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' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-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' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux 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 ;; *nto* | *qnx*) version_type=qnx 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='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) 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=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux 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 case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux 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 fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. 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}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux 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 ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if ${ac_cv_prog_CXXCPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu else _lt_caught_CXX_error=yes fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= compiler_needs_object_CXX=no export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no inherit_rpath_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds reload_flag_CXX=$reload_flag reload_cmds_CXX=$reload_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes file_list_spec_CXX='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec_CXX='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath__CXX fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath__CXX fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' fi archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_CXX=' ' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=yes file_list_spec_CXX='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' enable_shared_with_static_runtimes_CXX=yes # Don't use ranlib old_postinstall_cmds_CXX='chmod 644 $oldlib' postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec_CXX='`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_CXX='' fi link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" if test "$lt_cv_apple_cc_single_mod" != "yes"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi else ld_shlibs_CXX=no fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; haiku*) archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs_CXX=yes ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: inherit_rpath_CXX=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [1-5].* | *pgcpp\ [1-5].*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) ld_shlibs_CXX=yes ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no hardcode_direct_absolute_CXX=yes archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else ld_shlibs_CXX=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) case $host in osf3*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; esac hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ '"$old_archive_cmds_CXX" reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ '"$reload_cmds_CXX" ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## 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... # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; esac if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken case $host_os in interix[3-9]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac compiler_lib_search_dirs_CXX= if test -n "${compiler_lib_search_path_CXX}"; then compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_CXX='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static_CXX= ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix[4-9]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) # IBM XL 8.0, 9.0 on PPC and BlueGene lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes fi else lt_cv_prog_compiler_static_works_CXX=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' ;; esac ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no with_gnu_ld_CXX=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc_CXX=no else lt_cv_archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 $as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux 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' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) 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 ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; 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 hardcode_into_libs=yes ;; haiku*) version_type=linux need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" 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=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) 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' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-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' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux 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 ;; *nto* | *qnx*) version_type=qnx 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='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) 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=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux 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 case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux 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 fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. 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}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux 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 ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || test -n "$runpath_var_CXX" || test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 $as_echo "$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink || test "$inherit_rpath_CXX" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_commands="$ac_config_commands libtool" # Only expand once: # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __cplusplus /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this sort of thing. */ char tx; char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" if test "x$ac_cv_type_off_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define off_t long int _ACEOF fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } if ${ac_cv_header_time+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_time=yes else ac_cv_header_time=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 $as_echo "$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } if ${ac_cv_struct_tm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { struct tm tm; int *p = &tm.tm_sec; return !p; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_struct_tm=time.h else ac_cv_struct_tm=sys/time.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 $as_echo "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then $as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working volatile" >&5 $as_echo_n "checking for working volatile... " >&6; } if ${ac_cv_c_volatile+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { volatile int x; int * volatile y = (int *) 0; return !x && !y; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_volatile=yes else ac_cv_c_volatile=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5 $as_echo "$ac_cv_c_volatile" >&6; } if test $ac_cv_c_volatile = no; then $as_echo "#define volatile /**/" >>confdefs.h fi # Checks for library functions. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 $as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } if ${ac_cv_func_lstat_dereferences_slashed_symlink+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then if test "$cross_compiling" = yes; then : ac_cv_func_lstat_dereferences_slashed_symlink=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_lstat_dereferences_slashed_symlink=yes else ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi else # If the `ln -s' command failed, then we probably don't even # have an lstat function. ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f conftest.sym conftest.file fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 $as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && cat >>confdefs.h <<_ACEOF #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 _ACEOF if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then case " $LIBOBJS " in *" lstat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat accepts an empty string" >&5 $as_echo_n "checking whether lstat accepts an empty string... " >&6; } if ${ac_cv_func_lstat_empty_string_bug+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_lstat_empty_string_bug=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; return lstat ("", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_lstat_empty_string_bug=no else ac_cv_func_lstat_empty_string_bug=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_empty_string_bug" >&5 $as_echo "$ac_cv_func_lstat_empty_string_bug" >&6; } if test $ac_cv_func_lstat_empty_string_bug = yes; then case " $LIBOBJS " in *" lstat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; esac cat >>confdefs.h <<_ACEOF #define HAVE_LSTAT_EMPTY_STRING_BUG 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 $as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } if ${ac_cv_func_lstat_dereferences_slashed_symlink+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then if test "$cross_compiling" = yes; then : ac_cv_func_lstat_dereferences_slashed_symlink=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_lstat_dereferences_slashed_symlink=yes else ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi else # If the `ln -s' command failed, then we probably don't even # have an lstat function. ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f conftest.sym conftest.file fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 $as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && cat >>confdefs.h <<_ACEOF #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 _ACEOF if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then case " $LIBOBJS " in *" lstat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5 $as_echo_n "checking for working memcmp... " >&6; } if ${ac_cv_func_memcmp_working+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_memcmp_working=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Some versions of memcmp are not 8-bit clean. */ char c0 = '\100', c1 = '\200', c2 = '\201'; if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) return 1; /* The Next x86 OpenStep bug shows up only when comparing 16 bytes or more and with at least one buffer not starting on a 4-byte boundary. William Lewis provided this test program. */ { char foo[21]; char bar[21]; int i; for (i = 0; i < 4; i++) { char *a = foo + i; char *b = bar + i; strcpy (a, "--------01111111"); strcpy (b, "--------10000000"); if (memcmp (a, b, 16) >= 0) return 1; } return 0; } ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_memcmp_working=yes else ac_cv_func_memcmp_working=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5 $as_echo "$ac_cv_func_memcmp_working" >&6; } test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in *" memcmp.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat accepts an empty string" >&5 $as_echo_n "checking whether stat accepts an empty string... " >&6; } if ${ac_cv_func_stat_empty_string_bug+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_stat_empty_string_bug=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; return stat ("", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_stat_empty_string_bug=no else ac_cv_func_stat_empty_string_bug=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_stat_empty_string_bug" >&5 $as_echo "$ac_cv_func_stat_empty_string_bug" >&6; } if test $ac_cv_func_stat_empty_string_bug = yes; then case " $LIBOBJS " in *" stat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS stat.$ac_objext" ;; esac cat >>confdefs.h <<_ACEOF #define HAVE_STAT_EMPTY_STRING_BUG 1 _ACEOF fi for ac_func in strftime do : ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime" if test "x$ac_cv_func_strftime" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRFTIME 1 _ACEOF else # strftime is in -lintl on SCO UNIX. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5 $as_echo_n "checking for strftime in -lintl... " >&6; } if ${ac_cv_lib_intl_strftime+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char strftime (); int main () { return strftime (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_strftime=yes else ac_cv_lib_intl_strftime=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_strftime" >&5 $as_echo "$ac_cv_lib_intl_strftime" >&6; } if test "x$ac_cv_lib_intl_strftime" = xyes; then : $as_echo "#define HAVE_STRFTIME 1" >>confdefs.h LIBS="-lintl $LIBS" fi fi done for ac_func in memset sqrt strcasecmp strerror strncasecmp strstr fdatasync ftruncate getcwd gettimeofday localtime_r memmove strerror do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done # Checks for installed libraries { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_prepare_v2 in -lsqlite3" >&5 $as_echo_n "checking for sqlite3_prepare_v2 in -lsqlite3... " >&6; } if ${ac_cv_lib_sqlite3_sqlite3_prepare_v2+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsqlite3 -lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char sqlite3_prepare_v2 (); int main () { return sqlite3_prepare_v2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_sqlite3_sqlite3_prepare_v2=yes else ac_cv_lib_sqlite3_sqlite3_prepare_v2=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_prepare_v2" >&5 $as_echo "$ac_cv_lib_sqlite3_sqlite3_prepare_v2" >&6; } if test "x$ac_cv_lib_sqlite3_sqlite3_prepare_v2" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSQLITE3 1 _ACEOF LIBS="-lsqlite3 $LIBS" else as_fn_error $? "'libsqlite3' is required but it doesn't seem to be installed on this system." "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflateInit_ in -lz" >&5 $as_echo_n "checking for inflateInit_ in -lz... " >&6; } if ${ac_cv_lib_z_inflateInit_+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz -lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char inflateInit_ (); int main () { return inflateInit_ (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_z_inflateInit_=yes else ac_cv_lib_z_inflateInit_=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflateInit_" >&5 $as_echo "$ac_cv_lib_z_inflateInit_" >&6; } if test "x$ac_cv_lib_z_inflateInit_" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBZ 1 _ACEOF LIBS="-lz $LIBS" else as_fn_error $? "'libz' is required but it doesn't seem to be installed on this system." "$LINENO" 5 fi ac_config_files="$ac_config_files Makefile src/Makefile src/headers/Makefile src/gaiaaux/Makefile src/gaiaexif/Makefile src/gaiageo/Makefile src/gaiageo/flex/Makefile src/gaiageo/lemon/Makefile src/gaiageo/lemon/lemon_src/Makefile src/geopackage/Makefile src/spatialite/Makefile src/shapefiles/Makefile src/dxf/Makefile src/md5/Makefile src/control_points/Makefile src/srsinit/Makefile src/srsinit/epsg_update/Makefile src/connection_cache/Makefile src/connection_cache/generator/Makefile src/virtualtext/Makefile src/wfs/Makefile test/Makefile test/sql_stmt_tests/Makefile test/sql_stmt_geos_tests/Makefile test/sql_stmt_geosadvanced_tests/Makefile test/sql_stmt_geopackage_tests/Makefile test/sql_stmt_proj_tests/Makefile test/sql_stmt_mathsql_tests/Makefile test/sql_stmt_lwgeom_tests/Makefile test/sql_stmt_libxml2_tests/Makefile test/sql_stmt_security_tests/Makefile test/sql_stmt_xmlsec_tests/Makefile test/sql_stmt_freexl_tests/Makefile test/sql_stmt_cache_tests/Makefile test/sql_stmt_nocache_tests/Makefile examples/Makefile Doxyfile spatialite.pc" # exporting the TARGET_CPU string splite_cpu=`$CC -dumpmachine` cat >>confdefs.h <<_ACEOF #define TARGET_CPU "$splite_cpu" _ACEOF #----------------------------------------------------------------------- # --enable-mathsql # # Check whether --enable-mathsql was given. if test "${enable_mathsql+set}" = set; then : enableval=$enable_mathsql; else enable_mathsql=yes fi if test x"$enable_mathsql" != "xyes"; then $as_echo "#define OMIT_MATHSQL 1" >>confdefs.h fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-geocallbacks # # Check whether --enable-geocallbacks was given. if test "${enable_geocallbacks+set}" = set; then : enableval=$enable_geocallbacks; else enable_geocallbacks=no fi if test x"$enable_geocallbacks" == "xyes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_rtree_geometry_callback in -lsqlite3" >&5 $as_echo_n "checking for sqlite3_rtree_geometry_callback in -lsqlite3... " >&6; } if ${ac_cv_lib_sqlite3_sqlite3_rtree_geometry_callback+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsqlite3 -lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char sqlite3_rtree_geometry_callback (); int main () { return sqlite3_rtree_geometry_callback (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_sqlite3_sqlite3_rtree_geometry_callback=yes else ac_cv_lib_sqlite3_sqlite3_rtree_geometry_callback=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_rtree_geometry_callback" >&5 $as_echo "$ac_cv_lib_sqlite3_sqlite3_rtree_geometry_callback" >&6; } if test "x$ac_cv_lib_sqlite3_sqlite3_rtree_geometry_callback" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSQLITE3 1 _ACEOF LIBS="-lsqlite3 $LIBS" else as_fn_error $? "obsolete 'libsqlite3' (< v.3.7.3). please retry specifying: --disable-geocallbacks" "$LINENO" 5 fi else $as_echo "#define OMIT_GEOCALLBACKS 1" >>confdefs.h fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-proj # # Check whether --enable-proj was given. if test "${enable_proj+set}" = set; then : enableval=$enable_proj; else enable_proj=yes fi if test x"$enable_proj" != "xno"; then for ac_header in proj_api.h do : ac_fn_c_check_header_mongrel "$LINENO" "proj_api.h" "ac_cv_header_proj_api_h" "$ac_includes_default" if test "x$ac_cv_header_proj_api_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PROJ_API_H 1 _ACEOF else as_fn_error $? "cannot find proj_api.h, bailing out" "$LINENO" 5 fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pj_init_plus" >&5 $as_echo_n "checking for library containing pj_init_plus... " >&6; } if ${ac_cv_search_pj_init_plus+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pj_init_plus (); int main () { return pj_init_plus (); ; return 0; } _ACEOF for ac_lib in '' proj; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib -lm $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_pj_init_plus=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_pj_init_plus+:} false; then : break fi done if ${ac_cv_search_pj_init_plus+:} false; then : else ac_cv_search_pj_init_plus=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pj_init_plus" >&5 $as_echo "$ac_cv_search_pj_init_plus" >&6; } ac_res=$ac_cv_search_pj_init_plus if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else as_fn_error $? "'libproj' is required but it doesn't seem to be installed on this system." "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pj_init_ctx" >&5 $as_echo_n "checking for library containing pj_init_ctx... " >&6; } if ${ac_cv_search_pj_init_ctx+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pj_init_ctx (); int main () { return pj_init_ctx (); ; return 0; } _ACEOF for ac_lib in '' proj; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib -lm $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_pj_init_ctx=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_pj_init_ctx+:} false; then : break fi done if ${ac_cv_search_pj_init_ctx+:} false; then : else ac_cv_search_pj_init_ctx=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pj_init_ctx" >&5 $as_echo "$ac_cv_search_pj_init_ctx" >&6; } ac_res=$ac_cv_search_pj_init_ctx if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else as_fn_error $? "'libproj' is required but the version on this system does not support the required features (Version 4.8.0 or later is needed)." "$LINENO" 5 fi else $as_echo "#define OMIT_PROJ 1" >>confdefs.h fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-iconv # # Check whether --enable-iconv was given. if test "${enable_iconv+set}" = set; then : enableval=$enable_iconv; else enable_iconv=yes fi if test x"$enable_iconv" != "xno"; then for ac_header in iconv.h do : ac_fn_c_check_header_mongrel "$LINENO" "iconv.h" "ac_cv_header_iconv_h" "$ac_includes_default" if test "x$ac_cv_header_iconv_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ICONV_H 1 _ACEOF else as_fn_error $? "cannot find iconv.h, bailing out" "$LINENO" 5 fi done # on some systems "iconv()" lives in libc. On others it lives in libiconv # on older systems "libiconv()" lives in libiconv { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing iconv" >&5 $as_echo_n "checking for library containing iconv... " >&6; } if ${ac_cv_search_iconv+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char iconv (); int main () { return iconv (); ; return 0; } _ACEOF for ac_lib in '' iconv; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_iconv=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_iconv+:} false; then : break fi done if ${ac_cv_search_iconv+:} false; then : else ac_cv_search_iconv=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_iconv" >&5 $as_echo "$ac_cv_search_iconv" >&6; } ac_res=$ac_cv_search_iconv if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing libiconv" >&5 $as_echo_n "checking for library containing libiconv... " >&6; } if ${ac_cv_search_libiconv+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char libiconv (); int main () { return libiconv (); ; return 0; } _ACEOF for ac_lib in '' iconv; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_libiconv=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_libiconv+:} false; then : break fi done if ${ac_cv_search_libiconv+:} false; then : else ac_cv_search_libiconv=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_libiconv" >&5 $as_echo "$ac_cv_search_libiconv" >&6; } ac_res=$ac_cv_search_libiconv if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else as_fn_error $? "'libiconv' is required but it doesn't seem to be installed on this system." "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing locale_charset" >&5 $as_echo_n "checking for library containing locale_charset... " >&6; } if ${ac_cv_search_locale_charset+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char locale_charset (); int main () { return locale_charset (); ; return 0; } _ACEOF for ac_lib in '' charset; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_locale_charset=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_locale_charset+:} false; then : break fi done if ${ac_cv_search_locale_charset+:} false; then : else ac_cv_search_locale_charset=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_locale_charset" >&5 $as_echo "$ac_cv_search_locale_charset" >&6; } ac_res=$ac_cv_search_locale_charset if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_langinfo" >&5 $as_echo_n "checking for library containing nl_langinfo... " >&6; } if ${ac_cv_search_nl_langinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char nl_langinfo (); int main () { return nl_langinfo (); ; return 0; } _ACEOF for ac_lib in '' c; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_nl_langinfo=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_nl_langinfo+:} false; then : break fi done if ${ac_cv_search_nl_langinfo+:} false; then : else ac_cv_search_nl_langinfo=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nl_langinfo" >&5 $as_echo "$ac_cv_search_nl_langinfo" >&6; } ac_res=$ac_cv_search_nl_langinfo if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else as_fn_error $? "'libcharset' is required but it doesn't seem to be installed on this system." "$LINENO" 5 fi fi else $as_echo "#define OMIT_ICONV 1" >>confdefs.h fi #----------------------------------------------------------------------- # --enable-freexl # # Check whether --enable-freexl was given. if test "${enable_freexl+set}" = set; then : enableval=$enable_freexl; else enable_freexl=yes fi if test x"$enable_freexl" != "xno"; then for ac_header in freexl.h do : ac_fn_c_check_header_mongrel "$LINENO" "freexl.h" "ac_cv_header_freexl_h" "$ac_includes_default" if test "x$ac_cv_header_freexl_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FREEXL_H 1 _ACEOF else as_fn_error $? "cannot find freexl.h, bailing out" "$LINENO" 5 fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing freexl_version" >&5 $as_echo_n "checking for library containing freexl_version... " >&6; } if ${ac_cv_search_freexl_version+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char freexl_version (); int main () { return freexl_version (); ; return 0; } _ACEOF for ac_lib in '' freexl; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib -lm $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_freexl_version=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_freexl_version+:} false; then : break fi done if ${ac_cv_search_freexl_version+:} false; then : else ac_cv_search_freexl_version=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_freexl_version" >&5 $as_echo "$ac_cv_search_freexl_version" >&6; } ac_res=$ac_cv_search_freexl_version if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else as_fn_error $? "could not find 'freexl' (or obsolete 'freexl' < v.1.0.1 found)." "$LINENO" 5 fi else $as_echo "#define OMIT_FREEXL 1" >>confdefs.h fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-epsg # # Check whether --enable-epsg was given. if test "${enable_epsg+set}" = set; then : enableval=$enable_epsg; else enable_epsg=yes fi if test x"$enable_epsg" != "xyes"; then $as_echo "#define OMIT_EPSG 1" >>confdefs.h fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-geos # # Check whether --enable-geos was given. if test "${enable_geos+set}" = set; then : enableval=$enable_geos; else enable_geos=yes fi if test x"$enable_geos" != "xno"; then #----------------------------------------------------------------------- # --with-geosconfig # # Check whether --with-geosconfig was given. if test "${with_geosconfig+set}" = set; then : withval=$with_geosconfig; GEOSCONFIG="$withval" else GEOSCONFIG="" fi if test "x$GEOSCONFIG" = "x"; then # GEOSCONFIG was not specified, so search within the current path # Extract the first word of "geos-config", so it can be a program name with args. set dummy geos-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GEOSCONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $GEOSCONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_GEOSCONFIG="$GEOSCONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GEOSCONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GEOSCONFIG=$ac_cv_path_GEOSCONFIG if test -n "$GEOSCONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GEOSCONFIG" >&5 $as_echo "$GEOSCONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # If we couldn't find geos-config, display an error if test "x$GEOSCONFIG" = "x"; then as_fn_error $? "could not find geos-config within the current path. You may need to try re-running configure with a --with-geosconfig parameter." "$LINENO" 5 fi else # GEOSCONFIG was specified; display a message to the user if test "x$GEOSCONFIG" = "xyes"; then as_fn_error $? "you must specify a parameter to --with-geosconfig, e.g. --with-geosconfig=/path/to/geos-config" "$LINENO" 5 else if test -f $GEOSCONFIG; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using user-specified geos-config file: $GEOSCONFIG" >&5 $as_echo "Using user-specified geos-config file: $GEOSCONFIG" >&6; } else as_fn_error $? "the user-specified geos-config file $GEOSCONFIG does not exist" "$LINENO" 5 fi fi fi # Extract the linker and include flags GEOS_LDFLAGS=`$GEOSCONFIG --ldflags` GEOS_CFLAGS=-I`$GEOSCONFIG --includes` # Ensure that we can parse geos_c.h CPPFLAGS_SAVE="$CPPFLAGS" CPPFLAGS="$GEOS_CFLAGS" for ac_header in geos_c.h do : ac_fn_c_check_header_mongrel "$LINENO" "geos_c.h" "ac_cv_header_geos_c_h" "$ac_includes_default" if test "x$ac_cv_header_geos_c_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GEOS_C_H 1 _ACEOF else as_fn_error $? "could not find geos_c.h - you may need to specify the directory of a geos-config file using --with-geosconfig" "$LINENO" 5 fi done CPPFLAGS="$CPPFLAGS_SAVE" # Ensure we can link against libgeos_c LIBS_SAVE="$LIBS" LIBS="$GEOS_LDFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing GEOSCoveredBy" >&5 $as_echo_n "checking for library containing GEOSCoveredBy... " >&6; } if ${ac_cv_search_GEOSCoveredBy+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char GEOSCoveredBy (); int main () { return GEOSCoveredBy (); ; return 0; } _ACEOF for ac_lib in '' geos_c; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_GEOSCoveredBy=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_GEOSCoveredBy+:} false; then : break fi done if ${ac_cv_search_GEOSCoveredBy+:} false; then : else ac_cv_search_GEOSCoveredBy=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_GEOSCoveredBy" >&5 $as_echo "$ac_cv_search_GEOSCoveredBy" >&6; } ac_res=$ac_cv_search_GEOSCoveredBy if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else as_fn_error $? "could not find libgeos_c (or obsolete 'libgeos_c' < v.3.3.0 found) - you may need to specify the directory of a geos-config file using --with-geosconfig" "$LINENO" 5 fi LIBS="$LIBS_SAVE" LIBS="$LIBS $GEOS_LDFLAGS -lgeos_c" #----------------------------------------------------------------------- # --enable-controlpoints # # Check whether --enable-gcp was given. if test "${enable_gcp+set}" = set; then : enableval=$enable_gcp; else enable_gcp=no fi if test x"$enable_gcp" != "xno"; then $as_echo "#define ENABLE_GCP 1" >>confdefs.h fi #----------------------------------------------------------------------- # --enable-geosadvanced # # Check whether --enable-geosadvanced was given. if test "${enable_geosadvanced+set}" = set; then : enableval=$enable_geosadvanced; else enable_geosadvanced=yes fi if test x"$enable_geosadvanced" != "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing GEOSDelaunayTriangulation" >&5 $as_echo_n "checking for library containing GEOSDelaunayTriangulation... " >&6; } if ${ac_cv_search_GEOSDelaunayTriangulation+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char GEOSDelaunayTriangulation (); int main () { return GEOSDelaunayTriangulation (); ; return 0; } _ACEOF for ac_lib in '' geos_c; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_GEOSDelaunayTriangulation=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_GEOSDelaunayTriangulation+:} false; then : break fi done if ${ac_cv_search_GEOSDelaunayTriangulation+:} false; then : else ac_cv_search_GEOSDelaunayTriangulation=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_GEOSDelaunayTriangulation" >&5 $as_echo "$ac_cv_search_GEOSDelaunayTriangulation" >&6; } ac_res=$ac_cv_search_GEOSDelaunayTriangulation if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else as_fn_error $? "'libgeos_c' (>= v.3.4.0) is required but it doesn't seem to be installed on this system." "$LINENO" 5 fi $as_echo "#define GEOS_ADVANCED 1" >>confdefs.h fi #----------------------------------------------------------------------- # --enable-lwgeom # # Check whether --enable-lwgeom was given. if test "${enable_lwgeom+set}" = set; then : enableval=$enable_lwgeom; else enable_lwgeom=no fi if test x"$enable_lwgeom" != "xno"; then for ac_header in liblwgeom.h do : ac_fn_c_check_header_mongrel "$LINENO" "liblwgeom.h" "ac_cv_header_liblwgeom_h" "$ac_includes_default" if test "x$ac_cv_header_liblwgeom_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBLWGEOM_H 1 _ACEOF else as_fn_error $? "cannot find liblwgeom.h, bailing out" "$LINENO" 5 fi done _save_libs="$LIBS" LIBS=$LIBS' -llwgeom -lgeos_c' cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main() { return lwgeom_make_valid(); return 0; } void lwgeom_init_allocators(void) { return; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : $as_echo "#define ENABLE_LWGEOM 1" >>confdefs.h else as_fn_error $? "'liblwgeom' doesn't seem to be installed on this system; unsupported lwgeom_make_valid()." "$LINENO" 5 fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$_save_libs" LIBS=$LIBS' -llwgeom -lgeos_c' # # testing for PostGIS 2.1 - lwgeom_set_handlers # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lwgeom_set_handlers" >&5 $as_echo_n "checking for library containing lwgeom_set_handlers... " >&6; } if ${ac_cv_search_lwgeom_set_handlers+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char lwgeom_set_handlers (); int main () { return lwgeom_set_handlers (); ; return 0; } _ACEOF for ac_lib in '' geos_c; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_lwgeom_set_handlers=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_lwgeom_set_handlers+:} false; then : break fi done if ${ac_cv_search_lwgeom_set_handlers+:} false; then : else ac_cv_search_lwgeom_set_handlers=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lwgeom_set_handlers" >&5 $as_echo "$ac_cv_search_lwgeom_set_handlers" >&6; } ac_res=$ac_cv_search_lwgeom_set_handlers if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" $as_echo "#define POSTGIS_2_1 1" >>confdefs.h fi fi else $as_echo "#define OMIT_GEOS 1" >>confdefs.h fi #----------------------------------------------------------------------- # --enable-libxml2 # # Check whether --enable-libxml2 was given. if test "${enable_libxml2+set}" = set; then : enableval=$enable_libxml2; else enable_libxml2=yes fi if test x"$enable_libxml2" != "xno"; then if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBXML2" >&5 $as_echo_n "checking for LIBXML2... " >&6; } if test -n "$LIBXML2_CFLAGS"; then pkg_cv_LIBXML2_CFLAGS="$LIBXML2_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libxml-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBXML2_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LIBXML2_LIBS"; then pkg_cv_LIBXML2_LIBS="$LIBXML2_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libxml-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBXML2_LIBS=`$PKG_CONFIG --libs "libxml-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBXML2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libxml-2.0" 2>&1` else LIBXML2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libxml-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBXML2_PKG_ERRORS" >&5 as_fn_error $? "'libxml2' is required but it doesn't seem to be installed on this system." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "'libxml2' is required but it doesn't seem to be installed on this system." "$LINENO" 5 else LIBXML2_CFLAGS=$pkg_cv_LIBXML2_CFLAGS LIBXML2_LIBS=$pkg_cv_LIBXML2_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi $as_echo "#define ENABLE_LIBXML2 1" >>confdefs.h fi #----------------------------------------------------------------------- # --enable-geopackage # # Check whether --enable-geopackage was given. if test "${enable_geopackage+set}" = set; then : enableval=$enable_geopackage; else enable_geopackage=yes fi if test x"$enable_geopackage" != "xno"; then $as_echo "#define ENABLE_GEOPACKAGE 1" >>confdefs.h fi if test x"$enable_geopackage" == "xyes"; then ENABLE_GEOPACKAGE_TRUE= ENABLE_GEOPACKAGE_FALSE='#' else ENABLE_GEOPACKAGE_TRUE='#' ENABLE_GEOPACKAGE_FALSE= fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-gcov # # Check whether --enable-gcov was given. if test "${enable_gcov+set}" = set; then : enableval=$enable_gcov; fi if test "x$enable_gcov" = "xyes"; then CFLAGS=$CFLAGS" -fprofile-arcs -ftest-coverage -g" GCOV_FLAGS="-lgcov" fi #----------------------------------------------------------------------- #----------------------------------------------------------------------- # --enable-examples # # Check whether --enable-examples was given. if test "${enable_examples+set}" = set; then : enableval=$enable_examples; else enable_examples=yes fi if test x"$enable_examples" != "xno"; then ENABLE_EXAMPLES_TRUE= ENABLE_EXAMPLES_FALSE='#' else ENABLE_EXAMPLES_TRUE='#' ENABLE_EXAMPLES_FALSE= fi #----------------------------------------------------------------------- # Checking for MinGW if test "$target_alias" = "mingw32"; then MINGW_TRUE= MINGW_FALSE='#' else MINGW_TRUE='#' MINGW_FALSE= fi # Checking for Mac OsX if test "$target_alias" = "macosx"; then MACOSX_TRUE= MACOSX_FALSE='#' else MACOSX_TRUE='#' MACOSX_FALSE= fi # Checking for Android if test "$target_alias" = "android"; then ANDROID_TRUE= ANDROID_FALSE='#' else ANDROID_TRUE='#' ANDROID_FALSE= fi cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_GEOPACKAGE_TRUE}" && test -z "${ENABLE_GEOPACKAGE_FALSE}"; then as_fn_error $? "conditional \"ENABLE_GEOPACKAGE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_EXAMPLES_TRUE}" && test -z "${ENABLE_EXAMPLES_FALSE}"; then as_fn_error $? "conditional \"ENABLE_EXAMPLES\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${MINGW_TRUE}" && test -z "${MINGW_FALSE}"; then as_fn_error $? "conditional \"MINGW\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${MACOSX_TRUE}" && test -z "${MACOSX_FALSE}"; then as_fn_error $? "conditional \"MACOSX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ANDROID_TRUE}" && test -z "${ANDROID_FALSE}"; then as_fn_error $? "conditional \"ANDROID\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by libspatialite $as_me 4.3.0a, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ libspatialite config.status 4.3.0a configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' 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"`' 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"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' 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"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld_CXX='`$ECHO "$hardcode_libdir_flag_spec_ld_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in AS \ DLLTOOL \ OBJDUMP \ SHELL \ ECHO \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ 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 \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ reload_flag_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_static_CXX \ lt_cv_prog_compiler_c_o_CXX \ export_dynamic_flag_spec_CXX \ whole_archive_flag_spec_CXX \ compiler_needs_object_CXX \ with_gnu_ld_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX \ file_list_spec_CXX \ compiler_lib_search_dirs_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ reload_cmds_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ export_symbols_cmds_CXX \ prelink_cmds_CXX \ postlink_cmds_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/headers/Makefile") CONFIG_FILES="$CONFIG_FILES src/headers/Makefile" ;; "src/gaiaaux/Makefile") CONFIG_FILES="$CONFIG_FILES src/gaiaaux/Makefile" ;; "src/gaiaexif/Makefile") CONFIG_FILES="$CONFIG_FILES src/gaiaexif/Makefile" ;; "src/gaiageo/Makefile") CONFIG_FILES="$CONFIG_FILES src/gaiageo/Makefile" ;; "src/gaiageo/flex/Makefile") CONFIG_FILES="$CONFIG_FILES src/gaiageo/flex/Makefile" ;; "src/gaiageo/lemon/Makefile") CONFIG_FILES="$CONFIG_FILES src/gaiageo/lemon/Makefile" ;; "src/gaiageo/lemon/lemon_src/Makefile") CONFIG_FILES="$CONFIG_FILES src/gaiageo/lemon/lemon_src/Makefile" ;; "src/geopackage/Makefile") CONFIG_FILES="$CONFIG_FILES src/geopackage/Makefile" ;; "src/spatialite/Makefile") CONFIG_FILES="$CONFIG_FILES src/spatialite/Makefile" ;; "src/shapefiles/Makefile") CONFIG_FILES="$CONFIG_FILES src/shapefiles/Makefile" ;; "src/dxf/Makefile") CONFIG_FILES="$CONFIG_FILES src/dxf/Makefile" ;; "src/md5/Makefile") CONFIG_FILES="$CONFIG_FILES src/md5/Makefile" ;; "src/control_points/Makefile") CONFIG_FILES="$CONFIG_FILES src/control_points/Makefile" ;; "src/srsinit/Makefile") CONFIG_FILES="$CONFIG_FILES src/srsinit/Makefile" ;; "src/srsinit/epsg_update/Makefile") CONFIG_FILES="$CONFIG_FILES src/srsinit/epsg_update/Makefile" ;; "src/connection_cache/Makefile") CONFIG_FILES="$CONFIG_FILES src/connection_cache/Makefile" ;; "src/connection_cache/generator/Makefile") CONFIG_FILES="$CONFIG_FILES src/connection_cache/generator/Makefile" ;; "src/virtualtext/Makefile") CONFIG_FILES="$CONFIG_FILES src/virtualtext/Makefile" ;; "src/wfs/Makefile") CONFIG_FILES="$CONFIG_FILES src/wfs/Makefile" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; "test/sql_stmt_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_tests/Makefile" ;; "test/sql_stmt_geos_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_geos_tests/Makefile" ;; "test/sql_stmt_geosadvanced_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_geosadvanced_tests/Makefile" ;; "test/sql_stmt_geopackage_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_geopackage_tests/Makefile" ;; "test/sql_stmt_proj_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_proj_tests/Makefile" ;; "test/sql_stmt_mathsql_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_mathsql_tests/Makefile" ;; "test/sql_stmt_lwgeom_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_lwgeom_tests/Makefile" ;; "test/sql_stmt_libxml2_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_libxml2_tests/Makefile" ;; "test/sql_stmt_security_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_security_tests/Makefile" ;; "test/sql_stmt_xmlsec_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_xmlsec_tests/Makefile" ;; "test/sql_stmt_freexl_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_freexl_tests/Makefile" ;; "test/sql_stmt_cache_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_cache_tests/Makefile" ;; "test/sql_stmt_nocache_tests/Makefile") CONFIG_FILES="$CONFIG_FILES test/sql_stmt_nocache_tests/Makefile" ;; "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; "Doxyfile") CONFIG_FILES="$CONFIG_FILES Doxyfile" ;; "spatialite.pc") CONFIG_FILES="$CONFIG_FILES spatialite.pc" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # 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. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="CXX " # ### BEGIN LIBTOOL CONFIG # Assembler program. AS=$lt_AS # DLL creation program. DLLTOOL=$lt_DLLTOOL # Object dumper program. OBJDUMP=$lt_OBJDUMP # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and in which our libraries should be installed. lt_sysroot=$lt_sysroot # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # 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 # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects postdep_objects=$lt_postdep_objects predeps=$lt_predeps postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) if test x"$xsi_shell" = xyes; then sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ func_dirname ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ } # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_basename ()$/,/^} # func_basename /c\ func_basename ()\ {\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ func_dirname_and_basename ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ func_stripname ()\ {\ \ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ \ # positional parameters, so assign one to ordinary parameter first.\ \ func_stripname_result=${3}\ \ func_stripname_result=${func_stripname_result#"${1}"}\ \ func_stripname_result=${func_stripname_result%"${2}"}\ } # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ func_split_long_opt ()\ {\ \ func_split_long_opt_name=${1%%=*}\ \ func_split_long_opt_arg=${1#*=}\ } # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ func_split_short_opt ()\ {\ \ func_split_short_opt_arg=${1#??}\ \ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ } # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ func_lo2o ()\ {\ \ case ${1} in\ \ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ \ *) func_lo2o_result=${1} ;;\ \ esac\ } # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_xform ()$/,/^} # func_xform /c\ func_xform ()\ {\ func_xform_result=${1%.*}.lo\ } # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_arith ()$/,/^} # func_arith /c\ func_arith ()\ {\ func_arith_result=$(( $* ))\ } # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_len ()$/,/^} # func_len /c\ func_len ()\ {\ func_len_result=${#1}\ } # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$lt_shell_append" = xyes; then sed -e '/^func_append ()$/,/^} # func_append /c\ func_append ()\ {\ eval "${1}+=\\${2}"\ } # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ func_append_quoted ()\ {\ \ func_quote_for_eval "${2}"\ \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ } # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 $as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} fi mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD=$lt_LD_CXX # How to create reloadable object files. reload_flag=$lt_reload_flag_CXX reload_cmds=$lt_reload_cmds_CXX # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX # A language specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU compiler? with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_CXX # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_CXX # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # 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_CXX # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_CXX # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_CXX # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds_CXX # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_CXX postdep_objects=$lt_postdep_objects_CXX predeps=$lt_predeps_CXX postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # ### END LIBTOOL TAG CONFIG: CXX _LT_EOF ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi #----------------------------------------------------------------------- # printing an eventual message reporting about GPL escalation #----------------------------------------------------------------------- gpl_escalation=no; if test x"$enable_lwgeom" != "xno"; then gpl_escalation=yes fi if test x"$enable_gcp" != "xno"; then gpl_escalation=yes fi if test x"$gpl_escalation" != xno; then echo echo echo "==============================================================" echo " IMPORTANT NOTICE" echo "==============================================================" echo "You have selected --enable-lwgeom and/or --enable-gcp" echo echo "Both modules strictly depend on code released under the GPLv2+" echo "license, wich is virally infective by definition." echo "Consequently the copy of libspatialite you are going to build" echo "if configured this way *must* be released under the GPLv2+ license." echo echo "If you wish better preserving the initial MPL tri-license you" echo "simply have to reconfigure by specifying the following options:" echo " --disable-lwgeom --disable-gcp" echo "==============================================================" fi libspatialite-4.3.0a/config-msvc.h0000664000175000017500000001562712544707704014041 00000000000000/* config.h. Generated from config.h.in by configure. */ /* config.h.in. Generated from configure.ac by autoheader. */ /* / Sandro: manually adjusted so to support the MSVC compiler / using the OsGeo4W libraries */ /* Should be defined in order to enable GCP support. */ /* #undef ENABLE_GCP */ /* Should be defined in order to enable GeoPackage support. */ /* #undef ENABLE_GEOPACKAGE */ /* Should be defined in order to enable LIBXML2 support. */ #define ENABLE_LIBXML2 1 /* Should be defined in order to enable LWGEOM support. */ /* #undef ENABLE_LWGEOM */ /* Should be defined in order to enable GEOS_ADVANCED support. */ #define GEOS_ADVANCED 1 /* Should be defined in order to enable GEOS_TRUNK experimental support. */ /* #undef GEOS_TRUNK */ /* Define to 1 if you have the header file. */ #define HAVE_DLFCN_H 1 /* Define to 1 if you have the header file. */ #define HAVE_FCNTL_H 1 /* Define to 1 if you have the `fdatasync' function. */ #define HAVE_FDATASYNC 1 /* Define to 1 if you have the header file. */ #define HAVE_FLOAT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_FREEXL_H 1 /* Define to 1 if you have the `ftruncate' function. */ #define HAVE_FTRUNCATE 1 /* Define to 1 if you have the header file. */ #define HAVE_GEOS_C_H 1 /* Define to 1 if you have the `getcwd' function. */ #define HAVE_GETCWD 1 /* Define to 1 if you have the `gettimeofday' function. */ #define HAVE_GETTIMEOFDAY 1 /* Define to 1 if you have the header file. */ #define HAVE_ICONV_H 1 /* Define to 1 if you have the header file. */ #define HAVE_INTTYPES_H 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_LIBLWGEOM_H */ /* Define to 1 if you have the `sqlite3' library (-lsqlite3). */ #define HAVE_LIBSQLITE3 1 /* Define to 1 if you have the `z' library (-lz). */ #define HAVE_LIBZ 1 /* Define to 1 if you have the `localtime_r' function. */ #define HAVE_LOCALTIME_R 1 /* Define to 1 if `lstat' has the bug that it succeeds when given the zero-length file name argument. */ /* #undef HAVE_LSTAT_EMPTY_STRING_BUG */ /* Define to 1 if you have the header file. */ #define HAVE_MATH_H 1 /* Define to 1 if you have the `memmove' function. */ #define HAVE_MEMMOVE 1 /* Define to 1 if you have the header file. */ #define HAVE_MEMORY_H 1 /* Define to 1 if you have the `memset' function. */ #define HAVE_MEMSET 1 /* Define to 1 if you have the header file. */ #define HAVE_PROJ_API_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SQLITE3EXT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SQLITE3_H 1 /* Define to 1 if you have the `sqrt' function. */ /* #undef HAVE_SQRT */ /* Define to 1 if `stat' has the bug that it succeeds when given the zero-length file name argument. */ /* #undef HAVE_STAT_EMPTY_STRING_BUG */ /* Define to 1 if you have the header file. */ #define HAVE_STDDEF_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDINT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDIO_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDLIB_H 1 /* Define to 1 if you have the `strcasecmp' function. */ #define HAVE_STRCASECMP 1 /* Define to 1 if you have the `strerror' function. */ #define HAVE_STRERROR 1 /* Define to 1 if you have the `strftime' function. */ #define HAVE_STRFTIME 1 /* Define to 1 if you have the header file. */ #define HAVE_STRINGS_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STRING_H 1 /* Define to 1 if you have the `strncasecmp' function. */ #define HAVE_STRNCASECMP 1 /* Define to 1 if you have the `strstr' function. */ #define HAVE_STRSTR 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_STAT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_TIME_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_TYPES_H 1 /* Define to 1 if you have the header file. */ #define HAVE_UNISTD_H 1 /* Define to 1 if you have the header file. */ #define HAVE_ZLIB_H 1 /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #define LT_OBJDIR ".libs/" /* Must be defined in order to disable debug mode. */ #define NDEBUG 1 /* Should be defined in order to disable EPSG full support. */ /* #undef OMIT_EPSG */ /* Should be defined in order to disable FREEXL support. */ /* #undef OMIT_FREEXL */ /* Should be defined in order to disable GEOCALLBACKS support. */ #define OMIT_GEOCALLBACKS 1 /* Should be defined in order to disable GEOS support. */ /* #undef OMIT_GEOS */ /* Should be defined in order to disable ICONV support. */ /* #undef OMIT_ICONV */ /* Should be defined in order to disable MATHSQL support. */ /* #undef OMIT_MATHSQL */ /* Should be defined in order to disable PROJ.4 support. */ /* #undef OMIT_PROJ */ /* Name of package */ #define PACKAGE "libspatialite" /* Define to the address where bug reports for this package should be sent. */ #define PACKAGE_BUGREPORT "a.furieri@lqt.it" /* Define to the full name of this package. */ #define PACKAGE_NAME "libspatialite" /* Define to the full name and version of this package. */ #define PACKAGE_STRING "libspatialite 4.3.0-RC1" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "libspatialite" /* Define to the home page for this package. */ #define PACKAGE_URL "" /* Define to the version of this package. */ #define PACKAGE_VERSION "4.3.0" /* Should be defined when linking liblwgeom from PostGIS 2.1 (or later). */ /* #undefine POSTGIS_2_1 */ /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 /* Should contain a text-string describing the intended target CPU */ #define TARGET_CPU "Win32" /* Define to 1 if you can safely include both and . */ #define TIME_WITH_SYS_TIME 1 /* Define to 1 if your declares `struct tm'. */ /* #undef TM_IN_SYS_TIME */ /* Version number of package */ #define VERSION "4.3.0-RC1" /* Must be =64 in order to enable huge-file support. */ #define _FILE_OFFSET_BITS 64 /* Must be defined in order to enable huge-file support. */ #define _LARGEFILE_SOURCE 1 /* Must be defined in order to enable huge-file support. */ #define _LARGE_FILE 1 /* Define to empty if `const' does not conform to ANSI C. */ /* #undef const */ /* Define to `long int' if does not define. */ /* #undef off_t */ /* Define to `unsigned int' if does not define. */ /* #undef size_t */ /* Define to empty if the keyword `volatile' does not work. Warning: valid code using `volatile' can become incorrect without. Disable with care. */ /* #undef volatile */ libspatialite-4.3.0a/Android_4.3.0.mk0000664000175000017500000000136412544707704014101 00000000000000# ------------------- # Android_4.3.0.mk # [from 'jni/' directory] # ndk-build clean # ndk-build # ------------------- LOCAL_PATH := $(call my-dir) JSQLITE_PATH := javasqlite-20120209 SPATIALITE_PATH := libspatialite-4.3.0 GEOS_PATH := geos-3.4.2 PROJ4_PATH := proj-4.9.1 SQLITE_PATH := sqlite-amalgamation-3081002 ICONV_PATH := libiconv-1.13.1 XML2_PATH := libxml2-2.9.1 LZMA_PATH := xz-5.1.3alpha include $(LOCAL_PATH)/iconv-1.13.1.mk include $(LOCAL_PATH)/sqlite-3081002.mk include $(LOCAL_PATH)/proj4-4.9.1.mk include $(LOCAL_PATH)/geos-3.4.2.mk include $(LOCAL_PATH)/libxml2-2.9.1.mk include $(LOCAL_PATH)/lzma-xz-5.1.3a.mk include $(LOCAL_PATH)/spatialite-4.3.0.mk include $(LOCAL_PATH)/jsqlite-20120209.mk $(call import-module,android/cpufeatures) libspatialite-4.3.0a/ltmain.sh0000664000175000017500000105204012544707704013264 00000000000000 # libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 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. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --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 # --version print version information # -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1ubuntu1 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . # GNU libtool home page: . # General help using GNU software: . PROGRAM=libtool PACKAGE=libtool VERSION="2.4.2 Debian-2.4.2-1ubuntu1" TIMESTAMP="" package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_dirname may be replaced by extended shell implementation # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_basename may be replaced by extended shell implementation # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` } # func_dirname_and_basename may be replaced by extended shell implementation # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname may be replaced by extended shell implementation # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' # Sed substitution that converts a w32 file name or path # which contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "$my_tmpdir" } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_tr_sh # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_version # Echo version message to standard output and exit. func_version () { $opt_debug $SED -n '/(C)/!b go :more /\./!{ N s/\n# / / b more } :go /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $opt_debug $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $opt_debug $SED -n '/^# Usage:/,/# Report bugs to/ { :print s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } /^# .* home page:/b print /^# General help using/b print ' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $opt_debug func_error "missing argument for $1." exit_cmd=exit } # func_split_short_opt shortopt # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. func_split_short_opt () { my_sed_short_opt='1s/^\(..\).*$/\1/;q' my_sed_short_rest='1s/^..\(.*\)$/\1/;q' func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` } # func_split_short_opt may be replaced by extended shell implementation # func_split_long_opt longopt # Set func_split_long_opt_name and func_split_long_opt_arg shell # variables after splitting LONGOPT at the `=' sign. func_split_long_opt () { my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^--[^=]*=//' func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` } # func_split_long_opt may be replaced by extended shell implementation exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. nonopt= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "${1}=\$${1}\${2}" } # func_append may be replaced by extended shell implementation # func_append_quoted var value # Quote VALUE and append to the end of shell variable VAR, separated # by a space. func_append_quoted () { func_quote_for_eval "${2}" eval "${1}=\$${1}\\ \$func_quote_for_eval_result" } # func_append_quoted may be replaced by extended shell implementation # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "${@}"` } # func_arith may be replaced by extended shell implementation # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` } # func_len may be replaced by extended shell implementation # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_lo2o may be replaced by extended shell implementation # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_xform may be replaced by extended shell implementation # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Option defaults: opt_debug=: opt_dry_run=false opt_config=false opt_preserve_dup_deps=false opt_features=false opt_finish=false opt_help=false opt_help_all=false opt_silent=: opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false # Parse options once, thoroughly. This comes as soon as possible in the # script to make things like `--version' happen as quickly as we can. { # this just eases exit handling while test $# -gt 0; do opt="$1" shift case $opt in --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) opt_config=: func_config ;; --dlopen|-dlopen) optarg="$1" opt_dlopen="${opt_dlopen+$opt_dlopen }$optarg" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) opt_features=: func_features ;; --finish) opt_finish=: set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help_all=: opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_mode="$optarg" case $optarg in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) 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" ;; --silent|--quiet) opt_silent=: func_append preserve_args " $opt" opt_verbose=false ;; --verbose|-v) opt_verbose=: func_append preserve_args " $opt" opt_silent=false ;; --tag) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_tag="$optarg" func_append preserve_args " $opt $optarg" func_enable_tag "$optarg" shift ;; -\?|-h) func_usage ;; --help) func_help ;; --version) func_version ;; # Separate optargs to long options: --*=*) func_split_long_opt "$opt" set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-n*|-v*) func_split_short_opt "$opt" set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done # Validate options: # save first non-option argument if test "$#" -gt 0; then nonopt="$opt" shift fi # preserve --debug test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test "$opt_mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$opt_mode' for more information." } # Bail if the options were screwed $exit_cmd $EXIT_FAILURE } ## ----------- ## ## Main. ## ## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case "$lt_sysroot:$1" in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result="=$func_stripname_result" ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$lt_sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $opt_debug # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result="" if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result" ; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $opt_debug if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $opt_debug # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $opt_debug if test -z "$2" && test -n "$1" ; then func_error "Could not determine host file name corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result="$1" fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $opt_debug if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " \`$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result="$3" fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $opt_debug case $4 in $1 ) func_to_host_path_result="$3$func_to_host_path_result" ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via `$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $opt_debug $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $opt_debug case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result="$1" } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result="$func_convert_core_msys_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via `$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $opt_debug if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd="func_convert_path_${func_stripname_result}" fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $opt_debug func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result="$1" } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_msys_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "\`$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument \`$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and \`=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # 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 $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename="" if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname" ; then func_basename "$dlprefile_dlname" dlprefile_dlbasename="$func_basename_result" else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename" ; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # 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*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $opt_debug sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $opt_debug match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive which possess that section. Heuristic: eliminate # all those which have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $opt_debug if func_cygming_gnu_implib_p "$1" ; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1" ; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result="" fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { 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+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir="$arg" prev= continue ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -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" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps ; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -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" else func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." else echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # 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 continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test "$prefer_static_libs" = yes || test "$prefer_static_libs,$installed" = "built,no"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib="$l" done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$lt_sysroot$libdir" absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi case "$host" in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then 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 [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # 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 age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. func_append verstring ":${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # 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= dep_rpath= rpath="$finalize_rpath" test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd1 in $cmds; do IFS="$save_ifs" # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test "$try_normal_branch" = yes \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=${output_objdir}/${output_la}.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " ${wl}-bind_at_load" func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; 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" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" 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" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) func_append RM " $arg"; rmforce=yes ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then odir="$objdir" else odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" test "$opt_mode" = uninstall && odir="$dir" # Remember odir for removal later, being careful to avoid duplicates if test "$opt_mode" = clean; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case "$opt_mode" in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 libspatialite-4.3.0a/compile0000755000175000017500000001624512453220421013007 00000000000000#! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2012-10-14.11; # UTC # Copyright (C) 1999-2014 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi if test -f "$dir/lib$lib.a"; then found=yes lib=$dir/lib$lib.a break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: libspatialite-4.3.0a/COPYING0000664000175000017500000006305012544707704012501 00000000000000 MOZILLA PUBLIC LICENSE Version 1.1 --------------- 1. Definitions. 1.0.1. "Commercial Use" means distribution or otherwise making the Covered Code available to a third party. 1.1. "Contributor" means each entity that creates or contributes to the creation of Modifications. 1.2. "Contributor Version" means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. 1.3. "Covered Code" means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. 1.4. "Electronic Distribution Mechanism" means a mechanism generally accepted in the software development community for the electronic transfer of data. 1.5. "Executable" means Covered Code in any form other than Source Code. 1.6. "Initial Developer" means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. 1.7. "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. 1.8. "License" means this document. 1.8.1. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. 1.9. "Modifications" means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. B. Any new file that contains any part of the Original Code or previous Modifications. 1.10. "Original Code" means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. 1.10.1. "Patent Claims" means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. 1.11. "Source Code" means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. 1.12. "You" (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. 2. Source Code License. 2.1. The Initial Developer Grant. The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. 2.2. Contributor Grant. Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. 3. Distribution Obligations. 3.1. Application of License. The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. 3.2. Availability of Source Code. Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. 3.3. Description of Modifications. You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. 3.4. Intellectual Property Matters (a) Third Party Claims. If Contributor has knowledge that a license under a third party's intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled "LEGAL" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. (b) Contributor APIs. If Contributor's Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. (c) Representations. Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor's Modifications are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. 3.5. Required Notices. You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients' rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. 3.6. Distribution of Executable Versions. You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. 3.7. Larger Works. You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. 4. Inability to Comply Due to Statute or Regulation. If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. 5. Application of this License. This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. 6. Versions of the License. 6.1. New Versions. Netscape Communications Corporation ("Netscape") may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. 6.2. Effect of New Versions. Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Netscape. No one other than Netscape has the right to modify the terms applicable to Covered Code created under this License. 6.3. Derivative Works. If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", "MPL", "NPL" or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the Mozilla Public License and Netscape Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) 7. DISCLAIMER OF WARRANTY. COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. 8. TERMINATION. 8.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. 8.2. If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You file such action is referred to as "Participant") alleging that: (a) such Participant's Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. (b) any software, hardware, or device, other than such Participant's Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. 8.3. If You assert a patent infringement claim against Participant alleging that such Participant's Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. 8.4. In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. 9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. 10. U.S. GOVERNMENT END USERS. The Covered Code is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. 11. MISCELLANEOUS. This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. 12. RESPONSIBILITY FOR CLAIMS. As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. 13. MULTIPLE-LICENSED CODE. Initial Developer may designate portions of the Covered Code as "Multiple-Licensed". "Multiple-Licensed" means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the NPL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. EXHIBIT A -Mozilla Public License. ``The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is the SpatiaLite library. The Initial Developer of the Original Code is Alessandro Furieri. Portions created by the Initial Developer are Copyright (C) 2008 the Initial Developer. All Rights Reserved. Contributor(s): Klaus Foerster [AsSvg()] Luigi Costalli [Dijkstra's shortest path algorithm] The Vanuatu Team - University of Toronto [WKT parser] Supervisor: Greg Wilson [you can find the complete team composition in gg_wkt.c] Alternatively, the contents of this file may be used under the terms of either the GNU General Public License Version 2 or later (the "GPL"), or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which case the provisions of the GPL or the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of either the GPL or the LGPL, and not to allow others to use your version of this file under the terms of the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL or the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under the terms of any one of the MPL, the GPL or the LGPL. [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.]